@charset "UTF-8";
/*!
 * CoreUI Pro - Dashboard UI Kit
 * @version v2.1.16
 * @link https://coreui.io/pro/
 * Copyright (c) 2018 creativeLabs Łukasz Holeczek
 */
/*!
 * Bootstrap v4.3.1 (https://getbootstrap.com/)
 * Copyright 2011-2019 The Bootstrap Authors
 * Copyright 2011-2019 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
:root {
  --blue: #20a8d8;
  --indigo: #6610f2;
  --purple: #6f42c1;
  --pink: #e83e8c;
  --red: #f86c6b;
  --orange: #f8cb00;
  --yellow: #ffc107;
  --green: #4dbd74;
  --teal: #20c997;
  --cyan: #17a2b8;
  --white: #fff;
  --gray: #73818f;
  --gray-dark: #2f353a;
  --light-blue: #63c2de;
  --primary: #20a8d8;
  --secondary: #c8ced3;
  --success: #4dbd74;
  --info: #63c2de;
  --warning: #ffc107;
  --danger: #f86c6b;
  --light: #f0f3f5;
  --dark: #2f353a;
  --breakpoint-xs: 0;
  --breakpoint-sm: 576px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 992px;
  --breakpoint-xl: 1200px;
  --font-family-sans-serif: -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-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  font-family: sans-serif;
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
  display: block;
}
body {
  margin: 0;
  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-size: 0.875rem;
  font-weight: 400;
  line-height: 1.5;
  color: #23282c;
  text-align: left;
  background-color: #e4e5e6;
}
[tabindex="-1"]:focus {
  outline: 0 !important;
}
hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}
h1, h2, h3, h4, h5, h6 {
  margin-top: 0;
  margin-bottom: 0.5rem;
}
p {
  margin-top: 0;
  margin-bottom: 1rem;
}
abbr[title],
abbr[data-original-title] {
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
  cursor: help;
  border-bottom: 0;
  -webkit-text-decoration-skip-ink: none;
          text-decoration-skip-ink: none;
}
address {
  margin-bottom: 1rem;
  font-style: normal;
  line-height: inherit;
}
ol,
ul,
dl {
  margin-top: 0;
  margin-bottom: 1rem;
}
ol ol,
ul ul,
ol ul,
ul ol {
  margin-bottom: 0;
}
dt {
  font-weight: 700;
}
dd {
  margin-bottom: 0.5rem;
  margin-left: 0;
}
blockquote {
  margin: 0 0 1rem;
}
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: #20a8d8;
  text-decoration: none;
  background-color: transparent;
}
a:hover {
  color: #167495;
  text-decoration: underline;
}
a:not([href]):not([tabindex]) {
  color: inherit;
  text-decoration: none;
}
a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
  color: inherit;
  text-decoration: none;
}
a:not([href]):not([tabindex]):focus {
  outline: 0;
}
pre,
code,
kbd,
samp {
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 1em;
}
pre {
  margin-top: 0;
  margin-bottom: 1rem;
  overflow: auto;
}
figure {
  margin: 0 0 1rem;
}
img {
  vertical-align: middle;
  border-style: none;
}
svg {
  overflow: hidden;
  vertical-align: middle;
}
table {
  border-collapse: collapse;
}
caption {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  color: #73818f;
  text-align: left;
  caption-side: bottom;
}
th {
  text-align: inherit;
}
label {
  display: inline-block;
  margin-bottom: 0.5rem;
}
button {
  border-radius: 0;
}
button:focus {
  outline: 1px dotted;
  outline: 5px auto -webkit-focus-ring-color;
}
input,
button,
select,
optgroup,
textarea {
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}
button,
input {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
select {
  word-wrap: normal;
}
button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}
button:not(:disabled),
[type=button]:not(:disabled),
[type=reset]:not(:disabled),
[type=submit]:not(:disabled) {
  cursor: pointer;
}
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;
  padding: 0;
  margin: 0;
  border: 0;
}
legend {
  display: block;
  width: 100%;
  max-width: 100%;
  padding: 0;
  margin-bottom: 0.5rem;
  font-size: 1.5rem;
  line-height: inherit;
  color: 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-decoration {
  -webkit-appearance: none;
}
::-webkit-file-upload-button {
  font: inherit;
  -webkit-appearance: button;
}
output {
  display: inline-block;
}
summary {
  display: list-item;
  cursor: pointer;
}
template {
  display: none;
}
[hidden] {
  display: none !important;
}
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  margin-bottom: 0.5rem;
  font-weight: 500;
  line-height: 1.2;
}
h1, .h1 {
  font-size: 2.1875rem;
}
h2, .h2 {
  font-size: 1.75rem;
}
h3, .h3 {
  font-size: 1.53125rem;
}
h4, .h4 {
  font-size: 1.3125rem;
}
h5, .h5 {
  font-size: 1.09375rem;
}
h6, .h6 {
  font-size: 0.875rem;
}
.lead {
  font-size: 1.09375rem;
  font-weight: 300;
}
.display-1 {
  font-size: 6rem;
  font-weight: 300;
  line-height: 1.2;
}
.display-2 {
  font-size: 5.5rem;
  font-weight: 300;
  line-height: 1.2;
}
.display-3 {
  font-size: 4.5rem;
  font-weight: 300;
  line-height: 1.2;
}
.display-4 {
  font-size: 3.5rem;
  font-weight: 300;
  line-height: 1.2;
}
hr {
  margin-top: 1rem;
  margin-bottom: 1rem;
  border: 0;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
}
small,
.small {
  font-size: 80%;
  font-weight: 400;
}
mark,
.mark {
  padding: 0.2em;
  background-color: #fcf8e3;
}
.list-unstyled {
  padding-left: 0;
  list-style: none;
}
.list-inline {
  padding-left: 0;
  list-style: none;
}
.list-inline-item {
  display: inline-block;
}
.list-inline-item:not(:last-child) {
  margin-right: 0.5rem;
}
.initialism {
  font-size: 90%;
  text-transform: uppercase;
}
.blockquote {
  margin-bottom: 1rem;
  font-size: 1.09375rem;
}
.blockquote-footer {
  display: block;
  font-size: 80%;
  color: #73818f;
}
.blockquote-footer::before {
  content: "— ";
}
.img-fluid {
  max-width: 100%;
  height: auto;
}
.img-thumbnail {
  padding: 0.25rem;
  background-color: #e4e5e6;
  border: 1px solid #c8ced3;
  border-radius: 0.25rem;
  max-width: 100%;
  height: auto;
}
.figure {
  display: inline-block;
}
.figure-img {
  margin-bottom: 0.5rem;
  line-height: 1;
}
.figure-caption {
  font-size: 90%;
  color: #73818f;
}
code {
  font-size: 87.5%;
  color: #e83e8c;
  word-break: break-word;
}
a > code {
  color: inherit;
}
kbd {
  padding: 0.2rem 0.4rem;
  font-size: 87.5%;
  color: #fff;
  background-color: #23282c;
  border-radius: 0.2rem;
}
kbd kbd {
  padding: 0;
  font-size: 100%;
  font-weight: 700;
}
pre {
  display: block;
  font-size: 87.5%;
  color: #23282c;
}
pre code {
  font-size: inherit;
  color: inherit;
  word-break: normal;
}
.pre-scrollable {
  max-height: 340px;
  overflow-y: scroll;
}
.container {
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 576px) {
  .container {
    max-width: 540px;
  }
}
@media (min-width: 768px) {
  .container {
    max-width: 720px;
  }
}
@media (min-width: 992px) {
  .container {
    max-width: 960px;
  }
}
@media (min-width: 1200px) {
  .container {
    max-width: 1140px;
  }
}
.container-fluid {
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}
.row {
  display: flex;
  flex-wrap: wrap;
  margin-right: -15px;
  margin-left: -15px;
}
.no-gutters {
  margin-right: 0;
  margin-left: 0;
}
.no-gutters > .col,
.no-gutters > [class*=col-] {
  padding-right: 0;
  padding-left: 0;
}
.col-xl,
.col-xl-auto, .col-xl-12, .col-xl-11, .col-xl-10, .col-xl-9, .col-xl-8, .col-xl-7, .col-xl-6, .col-xl-5, .col-xl-4, .col-xl-3, .col-xl-2, .col-xl-1, .col-lg,
.col-lg-auto, .col-lg-12, .col-lg-11, .col-lg-10, .col-lg-9, .col-lg-8, .col-lg-7, .col-lg-6, .col-lg-5, .col-lg-4, .col-lg-3, .col-lg-2, .col-lg-1, .col-md,
.col-md-auto, .col-md-12, .col-md-11, .col-md-10, .col-md-9, .col-md-8, .col-md-7, .col-md-6, .col-md-5, .col-md-4, .col-md-3, .col-md-2, .col-md-1, .col-sm,
.col-sm-auto, .col-sm-12, .col-sm-11, .col-sm-10, .col-sm-9, .col-sm-8, .col-sm-7, .col-sm-6, .col-sm-5, .col-sm-4, .col-sm-3, .col-sm-2, .col-sm-1, .col,
.col-auto, .col-12, .col-11, .col-10, .col-9, .col-8, .col-7, .col-6, .col-5, .col-4, .col-3, .col-2, .col-1 {
  position: relative;
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
}
.col {
  flex-basis: 0;
  flex-grow: 1;
  max-width: 100%;
}
.col-auto {
  flex: 0 0 auto;
  width: auto;
  max-width: 100%;
}
.col-1 {
  flex: 0 0 8.3333333333%;
  max-width: 8.3333333333%;
}
.col-2 {
  flex: 0 0 16.6666666667%;
  max-width: 16.6666666667%;
}
.col-3 {
  flex: 0 0 25%;
  max-width: 25%;
}
.col-4 {
  flex: 0 0 33.3333333333%;
  max-width: 33.3333333333%;
}
.col-5 {
  flex: 0 0 41.6666666667%;
  max-width: 41.6666666667%;
}
.col-6 {
  flex: 0 0 50%;
  max-width: 50%;
}
.col-7 {
  flex: 0 0 58.3333333333%;
  max-width: 58.3333333333%;
}
.col-8 {
  flex: 0 0 66.6666666667%;
  max-width: 66.6666666667%;
}
.col-9 {
  flex: 0 0 75%;
  max-width: 75%;
}
.col-10 {
  flex: 0 0 83.3333333333%;
  max-width: 83.3333333333%;
}
.col-11 {
  flex: 0 0 91.6666666667%;
  max-width: 91.6666666667%;
}
.col-12 {
  flex: 0 0 100%;
  max-width: 100%;
}
.order-first {
  order: -1;
}
.order-last {
  order: 13;
}
.order-0 {
  order: 0;
}
.order-1 {
  order: 1;
}
.order-2 {
  order: 2;
}
.order-3 {
  order: 3;
}
.order-4 {
  order: 4;
}
.order-5 {
  order: 5;
}
.order-6 {
  order: 6;
}
.order-7 {
  order: 7;
}
.order-8 {
  order: 8;
}
.order-9 {
  order: 9;
}
.order-10 {
  order: 10;
}
.order-11 {
  order: 11;
}
.order-12 {
  order: 12;
}
.offset-1 {
  margin-left: 8.3333333333%;
}
.offset-2 {
  margin-left: 16.6666666667%;
}
.offset-3 {
  margin-left: 25%;
}
.offset-4 {
  margin-left: 33.3333333333%;
}
.offset-5 {
  margin-left: 41.6666666667%;
}
.offset-6 {
  margin-left: 50%;
}
.offset-7 {
  margin-left: 58.3333333333%;
}
.offset-8 {
  margin-left: 66.6666666667%;
}
.offset-9 {
  margin-left: 75%;
}
.offset-10 {
  margin-left: 83.3333333333%;
}
.offset-11 {
  margin-left: 91.6666666667%;
}
@media (min-width: 576px) {
  .col-sm {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
  }

  .col-sm-auto {
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
  }

  .col-sm-1 {
    flex: 0 0 8.3333333333%;
    max-width: 8.3333333333%;
  }

  .col-sm-2 {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }

  .col-sm-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }

  .col-sm-4 {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }

  .col-sm-5 {
    flex: 0 0 41.6666666667%;
    max-width: 41.6666666667%;
  }

  .col-sm-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .col-sm-7 {
    flex: 0 0 58.3333333333%;
    max-width: 58.3333333333%;
  }

  .col-sm-8 {
    flex: 0 0 66.6666666667%;
    max-width: 66.6666666667%;
  }

  .col-sm-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }

  .col-sm-10 {
    flex: 0 0 83.3333333333%;
    max-width: 83.3333333333%;
  }

  .col-sm-11 {
    flex: 0 0 91.6666666667%;
    max-width: 91.6666666667%;
  }

  .col-sm-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .order-sm-first {
    order: -1;
  }

  .order-sm-last {
    order: 13;
  }

  .order-sm-0 {
    order: 0;
  }

  .order-sm-1 {
    order: 1;
  }

  .order-sm-2 {
    order: 2;
  }

  .order-sm-3 {
    order: 3;
  }

  .order-sm-4 {
    order: 4;
  }

  .order-sm-5 {
    order: 5;
  }

  .order-sm-6 {
    order: 6;
  }

  .order-sm-7 {
    order: 7;
  }

  .order-sm-8 {
    order: 8;
  }

  .order-sm-9 {
    order: 9;
  }

  .order-sm-10 {
    order: 10;
  }

  .order-sm-11 {
    order: 11;
  }

  .order-sm-12 {
    order: 12;
  }

  .offset-sm-0 {
    margin-left: 0;
  }

  .offset-sm-1 {
    margin-left: 8.3333333333%;
  }

  .offset-sm-2 {
    margin-left: 16.6666666667%;
  }

  .offset-sm-3 {
    margin-left: 25%;
  }

  .offset-sm-4 {
    margin-left: 33.3333333333%;
  }

  .offset-sm-5 {
    margin-left: 41.6666666667%;
  }

  .offset-sm-6 {
    margin-left: 50%;
  }

  .offset-sm-7 {
    margin-left: 58.3333333333%;
  }

  .offset-sm-8 {
    margin-left: 66.6666666667%;
  }

  .offset-sm-9 {
    margin-left: 75%;
  }

  .offset-sm-10 {
    margin-left: 83.3333333333%;
  }

  .offset-sm-11 {
    margin-left: 91.6666666667%;
  }
}
@media (min-width: 768px) {
  .col-md {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
  }

  .col-md-auto {
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
  }

  .col-md-1 {
    flex: 0 0 8.3333333333%;
    max-width: 8.3333333333%;
  }

  .col-md-2 {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }

  .col-md-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }

  .col-md-4 {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }

  .col-md-5 {
    flex: 0 0 41.6666666667%;
    max-width: 41.6666666667%;
  }

  .col-md-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .col-md-7 {
    flex: 0 0 58.3333333333%;
    max-width: 58.3333333333%;
  }

  .col-md-8 {
    flex: 0 0 66.6666666667%;
    max-width: 66.6666666667%;
  }

  .col-md-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }

  .col-md-10 {
    flex: 0 0 83.3333333333%;
    max-width: 83.3333333333%;
  }

  .col-md-11 {
    flex: 0 0 91.6666666667%;
    max-width: 91.6666666667%;
  }

  .col-md-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .order-md-first {
    order: -1;
  }

  .order-md-last {
    order: 13;
  }

  .order-md-0 {
    order: 0;
  }

  .order-md-1 {
    order: 1;
  }

  .order-md-2 {
    order: 2;
  }

  .order-md-3 {
    order: 3;
  }

  .order-md-4 {
    order: 4;
  }

  .order-md-5 {
    order: 5;
  }

  .order-md-6 {
    order: 6;
  }

  .order-md-7 {
    order: 7;
  }

  .order-md-8 {
    order: 8;
  }

  .order-md-9 {
    order: 9;
  }

  .order-md-10 {
    order: 10;
  }

  .order-md-11 {
    order: 11;
  }

  .order-md-12 {
    order: 12;
  }

  .offset-md-0 {
    margin-left: 0;
  }

  .offset-md-1 {
    margin-left: 8.3333333333%;
  }

  .offset-md-2 {
    margin-left: 16.6666666667%;
  }

  .offset-md-3 {
    margin-left: 25%;
  }

  .offset-md-4 {
    margin-left: 33.3333333333%;
  }

  .offset-md-5 {
    margin-left: 41.6666666667%;
  }

  .offset-md-6 {
    margin-left: 50%;
  }

  .offset-md-7 {
    margin-left: 58.3333333333%;
  }

  .offset-md-8 {
    margin-left: 66.6666666667%;
  }

  .offset-md-9 {
    margin-left: 75%;
  }

  .offset-md-10 {
    margin-left: 83.3333333333%;
  }

  .offset-md-11 {
    margin-left: 91.6666666667%;
  }
}
@media (min-width: 992px) {
  .col-lg {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
  }

  .col-lg-auto {
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
  }

  .col-lg-1 {
    flex: 0 0 8.3333333333%;
    max-width: 8.3333333333%;
  }

  .col-lg-2 {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }

  .col-lg-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }

  .col-lg-4 {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }

  .col-lg-5 {
    flex: 0 0 41.6666666667%;
    max-width: 41.6666666667%;
  }

  .col-lg-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .col-lg-7 {
    flex: 0 0 58.3333333333%;
    max-width: 58.3333333333%;
  }

  .col-lg-8 {
    flex: 0 0 66.6666666667%;
    max-width: 66.6666666667%;
  }

  .col-lg-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }

  .col-lg-10 {
    flex: 0 0 83.3333333333%;
    max-width: 83.3333333333%;
  }

  .col-lg-11 {
    flex: 0 0 91.6666666667%;
    max-width: 91.6666666667%;
  }

  .col-lg-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .order-lg-first {
    order: -1;
  }

  .order-lg-last {
    order: 13;
  }

  .order-lg-0 {
    order: 0;
  }

  .order-lg-1 {
    order: 1;
  }

  .order-lg-2 {
    order: 2;
  }

  .order-lg-3 {
    order: 3;
  }

  .order-lg-4 {
    order: 4;
  }

  .order-lg-5 {
    order: 5;
  }

  .order-lg-6 {
    order: 6;
  }

  .order-lg-7 {
    order: 7;
  }

  .order-lg-8 {
    order: 8;
  }

  .order-lg-9 {
    order: 9;
  }

  .order-lg-10 {
    order: 10;
  }

  .order-lg-11 {
    order: 11;
  }

  .order-lg-12 {
    order: 12;
  }

  .offset-lg-0 {
    margin-left: 0;
  }

  .offset-lg-1 {
    margin-left: 8.3333333333%;
  }

  .offset-lg-2 {
    margin-left: 16.6666666667%;
  }

  .offset-lg-3 {
    margin-left: 25%;
  }

  .offset-lg-4 {
    margin-left: 33.3333333333%;
  }

  .offset-lg-5 {
    margin-left: 41.6666666667%;
  }

  .offset-lg-6 {
    margin-left: 50%;
  }

  .offset-lg-7 {
    margin-left: 58.3333333333%;
  }

  .offset-lg-8 {
    margin-left: 66.6666666667%;
  }

  .offset-lg-9 {
    margin-left: 75%;
  }

  .offset-lg-10 {
    margin-left: 83.3333333333%;
  }

  .offset-lg-11 {
    margin-left: 91.6666666667%;
  }
}
@media (min-width: 1200px) {
  .col-xl {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
  }

  .col-xl-auto {
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
  }

  .col-xl-1 {
    flex: 0 0 8.3333333333%;
    max-width: 8.3333333333%;
  }

  .col-xl-2 {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
  }

  .col-xl-3 {
    flex: 0 0 25%;
    max-width: 25%;
  }

  .col-xl-4 {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
  }

  .col-xl-5 {
    flex: 0 0 41.6666666667%;
    max-width: 41.6666666667%;
  }

  .col-xl-6 {
    flex: 0 0 50%;
    max-width: 50%;
  }

  .col-xl-7 {
    flex: 0 0 58.3333333333%;
    max-width: 58.3333333333%;
  }

  .col-xl-8 {
    flex: 0 0 66.6666666667%;
    max-width: 66.6666666667%;
  }

  .col-xl-9 {
    flex: 0 0 75%;
    max-width: 75%;
  }

  .col-xl-10 {
    flex: 0 0 83.3333333333%;
    max-width: 83.3333333333%;
  }

  .col-xl-11 {
    flex: 0 0 91.6666666667%;
    max-width: 91.6666666667%;
  }

  .col-xl-12 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .order-xl-first {
    order: -1;
  }

  .order-xl-last {
    order: 13;
  }

  .order-xl-0 {
    order: 0;
  }

  .order-xl-1 {
    order: 1;
  }

  .order-xl-2 {
    order: 2;
  }

  .order-xl-3 {
    order: 3;
  }

  .order-xl-4 {
    order: 4;
  }

  .order-xl-5 {
    order: 5;
  }

  .order-xl-6 {
    order: 6;
  }

  .order-xl-7 {
    order: 7;
  }

  .order-xl-8 {
    order: 8;
  }

  .order-xl-9 {
    order: 9;
  }

  .order-xl-10 {
    order: 10;
  }

  .order-xl-11 {
    order: 11;
  }

  .order-xl-12 {
    order: 12;
  }

  .offset-xl-0 {
    margin-left: 0;
  }

  .offset-xl-1 {
    margin-left: 8.3333333333%;
  }

  .offset-xl-2 {
    margin-left: 16.6666666667%;
  }

  .offset-xl-3 {
    margin-left: 25%;
  }

  .offset-xl-4 {
    margin-left: 33.3333333333%;
  }

  .offset-xl-5 {
    margin-left: 41.6666666667%;
  }

  .offset-xl-6 {
    margin-left: 50%;
  }

  .offset-xl-7 {
    margin-left: 58.3333333333%;
  }

  .offset-xl-8 {
    margin-left: 66.6666666667%;
  }

  .offset-xl-9 {
    margin-left: 75%;
  }

  .offset-xl-10 {
    margin-left: 83.3333333333%;
  }

  .offset-xl-11 {
    margin-left: 91.6666666667%;
  }
}
.table {
  width: 100%;
  margin-bottom: 1rem;
  color: #23282c;
}
.table th,
.table td {
  padding: 0.75rem;
  vertical-align: top;
  border-top: 1px solid #c8ced3;
}
.table thead th {
  vertical-align: bottom;
  border-bottom: 2px solid #c8ced3;
}
.table tbody + tbody {
  border-top: 2px solid #c8ced3;
}
.table-sm th,
.table-sm td {
  padding: 0.3rem;
}
.table-bordered {
  border: 1px solid #c8ced3;
}
.table-bordered th,
.table-bordered td {
  border: 1px solid #c8ced3;
}
.table-bordered thead th,
.table-bordered thead td {
  border-bottom-width: 2px;
}
.table-borderless th,
.table-borderless td,
.table-borderless thead th,
.table-borderless tbody + tbody {
  border: 0;
}
.table-striped tbody tr:nth-of-type(odd) {
  background-color: rgba(0, 0, 0, 0.05);
}
.table-hover tbody tr:hover {
  color: #23282c;
  background-color: rgba(0, 0, 0, 0.075);
}
.table-primary,
.table-primary > th,
.table-primary > td {
  background-color: #c1e7f4;
}
.table-primary th,
.table-primary td,
.table-primary thead th,
.table-primary tbody + tbody {
  border-color: #8bd2eb;
}
.table-hover .table-primary:hover {
  background-color: #abdff0;
}
.table-hover .table-primary:hover > td,
.table-hover .table-primary:hover > th {
  background-color: #abdff0;
}
.table-secondary,
.table-secondary > th,
.table-secondary > td {
  background-color: #f0f1f3;
}
.table-secondary th,
.table-secondary td,
.table-secondary thead th,
.table-secondary tbody + tbody {
  border-color: #e2e6e8;
}
.table-hover .table-secondary:hover {
  background-color: #e2e4e8;
}
.table-hover .table-secondary:hover > td,
.table-hover .table-secondary:hover > th {
  background-color: #e2e4e8;
}
.table-success,
.table-success > th,
.table-success > td {
  background-color: #cdedd8;
}
.table-success th,
.table-success td,
.table-success thead th,
.table-success tbody + tbody {
  border-color: #a2ddb7;
}
.table-hover .table-success:hover {
  background-color: #bae6c9;
}
.table-hover .table-success:hover > td,
.table-hover .table-success:hover > th {
  background-color: #bae6c9;
}
.table-info,
.table-info > th,
.table-info > td {
  background-color: #d3eef6;
}
.table-info th,
.table-info td,
.table-info thead th,
.table-info tbody + tbody {
  border-color: #aedfee;
}
.table-hover .table-info:hover {
  background-color: #bee6f2;
}
.table-hover .table-info:hover > td,
.table-hover .table-info:hover > th {
  background-color: #bee6f2;
}
.table-warning,
.table-warning > th,
.table-warning > td {
  background-color: #ffeeba;
}
.table-warning th,
.table-warning td,
.table-warning thead th,
.table-warning tbody + tbody {
  border-color: #ffdf7e;
}
.table-hover .table-warning:hover {
  background-color: #ffe8a1;
}
.table-hover .table-warning:hover > td,
.table-hover .table-warning:hover > th {
  background-color: #ffe8a1;
}
.table-danger,
.table-danger > th,
.table-danger > td {
  background-color: #fdd6d6;
}
.table-danger th,
.table-danger td,
.table-danger thead th,
.table-danger tbody + tbody {
  border-color: #fbb3b2;
}
.table-hover .table-danger:hover {
  background-color: #fcbebe;
}
.table-hover .table-danger:hover > td,
.table-hover .table-danger:hover > th {
  background-color: #fcbebe;
}
.table-light,
.table-light > th,
.table-light > td {
  background-color: #fbfcfc;
}
.table-light th,
.table-light td,
.table-light thead th,
.table-light tbody + tbody {
  border-color: #f7f9fa;
}
.table-hover .table-light:hover {
  background-color: #ecf1f1;
}
.table-hover .table-light:hover > td,
.table-hover .table-light:hover > th {
  background-color: #ecf1f1;
}
.table-dark,
.table-dark > th,
.table-dark > td {
  background-color: #c5c6c8;
}
.table-dark th,
.table-dark td,
.table-dark thead th,
.table-dark tbody + tbody {
  border-color: #939699;
}
.table-hover .table-dark:hover {
  background-color: #b8b9bc;
}
.table-hover .table-dark:hover > td,
.table-hover .table-dark:hover > th {
  background-color: #b8b9bc;
}
.table-active,
.table-active > th,
.table-active > td {
  background-color: rgba(0, 0, 0, 0.075);
}
.table-hover .table-active:hover {
  background-color: rgba(0, 0, 0, 0.075);
}
.table-hover .table-active:hover > td,
.table-hover .table-active:hover > th {
  background-color: rgba(0, 0, 0, 0.075);
}
.table .thead-dark th {
  color: #fff;
  background-color: #2f353a;
  border-color: #40484f;
}
.table .thead-light th {
  color: #5c6873;
  background-color: #e4e7ea;
  border-color: #c8ced3;
}
.table-dark {
  color: #fff;
  background-color: #2f353a;
}
.table-dark th,
.table-dark td,
.table-dark thead th {
  border-color: #40484f;
}
.table-dark.table-bordered {
  border: 0;
}
.table-dark.table-striped tbody tr:nth-of-type(odd) {
  background-color: rgba(255, 255, 255, 0.05);
}
.table-dark.table-hover tbody tr:hover {
  color: #fff;
  background-color: rgba(255, 255, 255, 0.075);
}
@media (max-width: 575.98px) {
  .table-responsive-sm {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .table-responsive-sm > .table-bordered {
    border: 0;
  }
}
@media (max-width: 767.98px) {
  .table-responsive-md {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .table-responsive-md > .table-bordered {
    border: 0;
  }
}
@media (max-width: 991.98px) {
  .table-responsive-lg {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .table-responsive-lg > .table-bordered {
    border: 0;
  }
}
@media (max-width: 1199.98px) {
  .table-responsive-xl {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .table-responsive-xl > .table-bordered {
    border: 0;
  }
}
.table-responsive {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.table-responsive > .table-bordered {
  border: 0;
}
.form-control {
  display: block;
  width: 100%;
  height: calc(1.5em + 0.75rem + 2px);
  padding: 0.375rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.5;
  color: #5c6873;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid #e4e7ea;
  border-radius: 0.25rem;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .form-control {
    transition: none;
  }
}
.form-control::-ms-expand {
  background-color: transparent;
  border: 0;
}
.form-control:focus {
  color: #5c6873;
  background-color: #fff;
  border-color: #8ad4ee;
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(32, 168, 216, 0.25);
}
.form-control::-moz-placeholder {
  color: #73818f;
  opacity: 1;
}
.form-control:-ms-input-placeholder {
  color: #73818f;
  opacity: 1;
}
.form-control::placeholder {
  color: #73818f;
  opacity: 1;
}
.form-control:disabled, .form-control[readonly] {
  background-color: #e4e7ea;
  opacity: 1;
}
select.form-control:focus::-ms-value {
  color: #5c6873;
  background-color: #fff;
}
.form-control-file,
.form-control-range {
  display: block;
  width: 100%;
}
.col-form-label {
  padding-top: calc(0.375rem + 1px);
  padding-bottom: calc(0.375rem + 1px);
  margin-bottom: 0;
  font-size: inherit;
  line-height: 1.5;
}
.col-form-label-lg {
  padding-top: calc(0.5rem + 1px);
  padding-bottom: calc(0.5rem + 1px);
  font-size: 1.09375rem;
  line-height: 1.5;
}
.col-form-label-sm {
  padding-top: calc(0.25rem + 1px);
  padding-bottom: calc(0.25rem + 1px);
  font-size: 0.765625rem;
  line-height: 1.5;
}
.form-control-plaintext {
  display: block;
  width: 100%;
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
  margin-bottom: 0;
  line-height: 1.5;
  color: #23282c;
  background-color: transparent;
  border: solid transparent;
  border-width: 1px 0;
}
.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {
  padding-right: 0;
  padding-left: 0;
}
.form-control-sm {
  height: calc(1.5em + 0.5rem + 2px);
  padding: 0.25rem 0.5rem;
  font-size: 0.765625rem;
  line-height: 1.5;
  border-radius: 0.2rem;
}
.form-control-lg {
  height: calc(1.5em + 1rem + 2px);
  padding: 0.5rem 1rem;
  font-size: 1.09375rem;
  line-height: 1.5;
  border-radius: 0.3rem;
}
select.form-control[size], select.form-control[multiple] {
  height: auto;
}
textarea.form-control {
  height: auto;
}
.form-group {
  margin-bottom: 1rem;
}
.form-text {
  display: block;
  margin-top: 0.25rem;
}
.form-row {
  display: flex;
  flex-wrap: wrap;
  margin-right: -5px;
  margin-left: -5px;
}
.form-row > .col,
.form-row > [class*=col-] {
  padding-right: 5px;
  padding-left: 5px;
}
.form-check {
  position: relative;
  display: block;
  padding-left: 1.25rem;
}
.form-check-input {
  position: absolute;
  margin-top: 0.3rem;
  margin-left: -1.25rem;
}
.form-check-input:disabled ~ .form-check-label {
  color: #73818f;
}
.form-check-label {
  margin-bottom: 0;
}
.form-check-inline {
  display: inline-flex;
  align-items: center;
  padding-left: 0;
  margin-right: 0.75rem;
}
.form-check-inline .form-check-input {
  position: static;
  margin-top: 0;
  margin-right: 0.3125rem;
  margin-left: 0;
}
.valid-feedback {
  display: none;
  width: 100%;
  margin-top: 0.25rem;
  font-size: 80%;
  color: #4dbd74;
}
.valid-tooltip {
  position: absolute;
  top: 100%;
  z-index: 5;
  display: none;
  max-width: 100%;
  padding: 0.25rem 0.5rem;
  margin-top: 0.1rem;
  font-size: 0.765625rem;
  line-height: 1.5;
  color: #fff;
  background-color: rgba(77, 189, 116, 0.9);
  border-radius: 0.25rem;
}
.was-validated .form-control:valid, .form-control.is-valid {
  border-color: #4dbd74;
  padding-right: calc(1.5em + 0.75rem);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%234dbd74' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: center right calc(0.375em + 0.1875rem);
  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}
.was-validated .form-control:valid:focus, .form-control.is-valid:focus {
  border-color: #4dbd74;
  box-shadow: 0 0 0 0.2rem rgba(77, 189, 116, 0.25);
}
.was-validated .form-control:valid ~ .valid-feedback,
.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,
.form-control.is-valid ~ .valid-tooltip {
  display: block;
}
.was-validated textarea.form-control:valid, textarea.form-control.is-valid {
  padding-right: calc(1.5em + 0.75rem);
  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
}
.was-validated .custom-select:valid, .custom-select.is-valid {
  border-color: #4dbd74;
  padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);
  background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%232f353a' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%234dbd74' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}
.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {
  border-color: #4dbd74;
  box-shadow: 0 0 0 0.2rem rgba(77, 189, 116, 0.25);
}
.was-validated .custom-select:valid ~ .valid-feedback,
.was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback,
.custom-select.is-valid ~ .valid-tooltip {
  display: block;
}
.was-validated .form-control-file:valid ~ .valid-feedback,
.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback,
.form-control-file.is-valid ~ .valid-tooltip {
  display: block;
}
.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {
  color: #4dbd74;
}
.was-validated .form-check-input:valid ~ .valid-feedback,
.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,
.form-check-input.is-valid ~ .valid-tooltip {
  display: block;
}
.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {
  color: #4dbd74;
}
.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {
  border-color: #4dbd74;
}
.was-validated .custom-control-input:valid ~ .valid-feedback,
.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,
.custom-control-input.is-valid ~ .valid-tooltip {
  display: block;
}
.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {
  border-color: #72cb91;
  background-color: #72cb91;
}
.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.2rem rgba(77, 189, 116, 0.25);
}
.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {
  border-color: #4dbd74;
}
.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {
  border-color: #4dbd74;
}
.was-validated .custom-file-input:valid ~ .valid-feedback,
.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,
.custom-file-input.is-valid ~ .valid-tooltip {
  display: block;
}
.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {
  border-color: #4dbd74;
  box-shadow: 0 0 0 0.2rem rgba(77, 189, 116, 0.25);
}
.invalid-feedback {
  display: none;
  width: 100%;
  margin-top: 0.25rem;
  font-size: 80%;
  color: #f86c6b;
}
.invalid-tooltip {
  position: absolute;
  top: 100%;
  z-index: 5;
  display: none;
  max-width: 100%;
  padding: 0.25rem 0.5rem;
  margin-top: 0.1rem;
  font-size: 0.765625rem;
  line-height: 1.5;
  color: #fff;
  background-color: rgba(248, 108, 107, 0.9);
  border-radius: 0.25rem;
}
.was-validated .form-control:invalid, .form-control.is-invalid {
  border-color: #f86c6b;
  padding-right: calc(1.5em + 0.75rem);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23f86c6b' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23f86c6b' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E");
  background-repeat: no-repeat;
  background-position: center right calc(0.375em + 0.1875rem);
  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}
.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {
  border-color: #f86c6b;
  box-shadow: 0 0 0 0.2rem rgba(248, 108, 107, 0.25);
}
.was-validated .form-control:invalid ~ .invalid-feedback,
.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,
.form-control.is-invalid ~ .invalid-tooltip {
  display: block;
}
.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {
  padding-right: calc(1.5em + 0.75rem);
  background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);
}
.was-validated .custom-select:invalid, .custom-select.is-invalid {
  border-color: #f86c6b;
  padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem);
  background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%232f353a' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23f86c6b' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23f86c6b' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}
.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {
  border-color: #f86c6b;
  box-shadow: 0 0 0 0.2rem rgba(248, 108, 107, 0.25);
}
.was-validated .custom-select:invalid ~ .invalid-feedback,
.was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback,
.custom-select.is-invalid ~ .invalid-tooltip {
  display: block;
}
.was-validated .form-control-file:invalid ~ .invalid-feedback,
.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback,
.form-control-file.is-invalid ~ .invalid-tooltip {
  display: block;
}
.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {
  color: #f86c6b;
}
.was-validated .form-check-input:invalid ~ .invalid-feedback,
.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,
.form-check-input.is-invalid ~ .invalid-tooltip {
  display: block;
}
.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {
  color: #f86c6b;
}
.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {
  border-color: #f86c6b;
}
.was-validated .custom-control-input:invalid ~ .invalid-feedback,
.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,
.custom-control-input.is-invalid ~ .invalid-tooltip {
  display: block;
}
.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {
  border-color: #fa9c9c;
  background-color: #fa9c9c;
}
.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.2rem rgba(248, 108, 107, 0.25);
}
.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {
  border-color: #f86c6b;
}
.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {
  border-color: #f86c6b;
}
.was-validated .custom-file-input:invalid ~ .invalid-feedback,
.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,
.custom-file-input.is-invalid ~ .invalid-tooltip {
  display: block;
}
.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {
  border-color: #f86c6b;
  box-shadow: 0 0 0 0.2rem rgba(248, 108, 107, 0.25);
}
.form-inline {
  display: flex;
  flex-flow: row wrap;
  align-items: center;
}
.form-inline .form-check {
  width: 100%;
}
@media (min-width: 576px) {
  .form-inline label {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0;
  }
  .form-inline .form-group {
    display: flex;
    flex: 0 0 auto;
    flex-flow: row wrap;
    align-items: center;
    margin-bottom: 0;
  }
  .form-inline .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .form-inline .form-control-plaintext {
    display: inline-block;
  }
  .form-inline .input-group,
.form-inline .custom-select {
    width: auto;
  }
  .form-inline .form-check {
    display: flex;
    align-items: center;
    justify-content: center;
    width: auto;
    padding-left: 0;
  }
  .form-inline .form-check-input {
    position: relative;
    flex-shrink: 0;
    margin-top: 0;
    margin-right: 0.25rem;
    margin-left: 0;
  }
  .form-inline .custom-control {
    align-items: center;
    justify-content: center;
  }
  .form-inline .custom-control-label {
    margin-bottom: 0;
  }
}
.btn {
  display: inline-block;
  font-weight: 400;
  color: #23282c;
  text-align: center;
  vertical-align: middle;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  background-color: transparent;
  border: 1px solid transparent;
  padding: 0.375rem 0.75rem;
  font-size: 0.875rem;
  line-height: 1.5;
  border-radius: 0.25rem;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .btn {
    transition: none;
  }
}
.btn:hover {
  color: #23282c;
  text-decoration: none;
}
.btn:focus, .btn.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(32, 168, 216, 0.25);
}
.btn.disabled, .btn:disabled {
  opacity: 0.65;
}
a.btn.disabled,
fieldset:disabled a.btn {
  pointer-events: none;
}
.btn-primary {
  color: #fff;
  background-color: #20a8d8;
  border-color: #20a8d8;
}
.btn-primary:hover {
  color: #fff;
  background-color: #1b8eb7;
  border-color: #1985ac;
}
.btn-primary:focus, .btn-primary.focus {
  box-shadow: 0 0 0 0.2rem rgba(65, 181, 222, 0.5);
}
.btn-primary.disabled, .btn-primary:disabled {
  color: #fff;
  background-color: #20a8d8;
  border-color: #20a8d8;
}
.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, .show > .btn-primary.dropdown-toggle {
  color: #fff;
  background-color: #1985ac;
  border-color: #187da0;
}
.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-primary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(65, 181, 222, 0.5);
}
.btn-secondary {
  color: #23282c;
  background-color: #c8ced3;
  border-color: #c8ced3;
}
.btn-secondary:hover {
  color: #23282c;
  background-color: #b3bbc2;
  border-color: #acb5bc;
}
.btn-secondary:focus, .btn-secondary.focus {
  box-shadow: 0 0 0 0.2rem rgba(175, 181, 186, 0.5);
}
.btn-secondary.disabled, .btn-secondary:disabled {
  color: #23282c;
  background-color: #c8ced3;
  border-color: #c8ced3;
}
.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, .show > .btn-secondary.dropdown-toggle {
  color: #23282c;
  background-color: #acb5bc;
  border-color: #a5aeb7;
}
.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-secondary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(175, 181, 186, 0.5);
}
.btn-success {
  color: #fff;
  background-color: #4dbd74;
  border-color: #4dbd74;
}
.btn-success:hover {
  color: #fff;
  background-color: #3ea662;
  border-color: #3a9d5d;
}
.btn-success:focus, .btn-success.focus {
  box-shadow: 0 0 0 0.2rem rgba(104, 199, 137, 0.5);
}
.btn-success.disabled, .btn-success:disabled {
  color: #fff;
  background-color: #4dbd74;
  border-color: #4dbd74;
}
.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, .show > .btn-success.dropdown-toggle {
  color: #fff;
  background-color: #3a9d5d;
  border-color: #379457;
}
.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, .show > .btn-success.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(104, 199, 137, 0.5);
}
.btn-info {
  color: #23282c;
  background-color: #63c2de;
  border-color: #63c2de;
}
.btn-info:hover {
  color: #23282c;
  background-color: #43b6d7;
  border-color: #39b2d5;
}
.btn-info:focus, .btn-info.focus {
  box-shadow: 0 0 0 0.2rem rgba(89, 171, 195, 0.5);
}
.btn-info.disabled, .btn-info:disabled {
  color: #23282c;
  background-color: #63c2de;
  border-color: #63c2de;
}
.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, .show > .btn-info.dropdown-toggle {
  color: #fff;
  background-color: #39b2d5;
  border-color: #2eadd3;
}
.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus, .show > .btn-info.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(89, 171, 195, 0.5);
}
.btn-warning {
  color: #23282c;
  background-color: #ffc107;
  border-color: #ffc107;
}
.btn-warning:hover {
  color: #23282c;
  background-color: #e0a800;
  border-color: #d39e00;
}
.btn-warning:focus, .btn-warning.focus {
  box-shadow: 0 0 0 0.2rem rgba(222, 170, 13, 0.5);
}
.btn-warning.disabled, .btn-warning:disabled {
  color: #23282c;
  background-color: #ffc107;
  border-color: #ffc107;
}
.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active, .show > .btn-warning.dropdown-toggle {
  color: #23282c;
  background-color: #d39e00;
  border-color: #c69500;
}
.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-warning.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(222, 170, 13, 0.5);
}
.btn-danger {
  color: #fff;
  background-color: #f86c6b;
  border-color: #f86c6b;
}
.btn-danger:hover {
  color: #fff;
  background-color: #f64846;
  border-color: #f63c3a;
}
.btn-danger:focus, .btn-danger.focus {
  box-shadow: 0 0 0 0.2rem rgba(249, 130, 129, 0.5);
}
.btn-danger.disabled, .btn-danger:disabled {
  color: #fff;
  background-color: #f86c6b;
  border-color: #f86c6b;
}
.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, .show > .btn-danger.dropdown-toggle {
  color: #fff;
  background-color: #f63c3a;
  border-color: #f5302e;
}
.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-danger.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(249, 130, 129, 0.5);
}
.btn-light {
  color: #23282c;
  background-color: #f0f3f5;
  border-color: #f0f3f5;
}
.btn-light:hover {
  color: #23282c;
  background-color: #d9e1e6;
  border-color: #d1dbe1;
}
.btn-light:focus, .btn-light.focus {
  box-shadow: 0 0 0 0.2rem rgba(209, 213, 215, 0.5);
}
.btn-light.disabled, .btn-light:disabled {
  color: #23282c;
  background-color: #f0f3f5;
  border-color: #f0f3f5;
}
.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active, .show > .btn-light.dropdown-toggle {
  color: #23282c;
  background-color: #d1dbe1;
  border-color: #cad4dc;
}
.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus, .show > .btn-light.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(209, 213, 215, 0.5);
}
.btn-dark {
  color: #fff;
  background-color: #2f353a;
  border-color: #2f353a;
}
.btn-dark:hover {
  color: #fff;
  background-color: #1e2225;
  border-color: #181b1e;
}
.btn-dark:focus, .btn-dark.focus {
  box-shadow: 0 0 0 0.2rem rgba(78, 83, 88, 0.5);
}
.btn-dark.disabled, .btn-dark:disabled {
  color: #fff;
  background-color: #2f353a;
  border-color: #2f353a;
}
.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active, .show > .btn-dark.dropdown-toggle {
  color: #fff;
  background-color: #181b1e;
  border-color: #121517;
}
.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-dark.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(78, 83, 88, 0.5);
}
.btn-outline-primary {
  color: #20a8d8;
  border-color: #20a8d8;
}
.btn-outline-primary:hover {
  color: #fff;
  background-color: #20a8d8;
  border-color: #20a8d8;
}
.btn-outline-primary:focus, .btn-outline-primary.focus {
  box-shadow: 0 0 0 0.2rem rgba(32, 168, 216, 0.5);
}
.btn-outline-primary.disabled, .btn-outline-primary:disabled {
  color: #20a8d8;
  background-color: transparent;
}
.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active, .show > .btn-outline-primary.dropdown-toggle {
  color: #fff;
  background-color: #20a8d8;
  border-color: #20a8d8;
}
.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-primary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(32, 168, 216, 0.5);
}
.btn-outline-secondary {
  color: #c8ced3;
  border-color: #c8ced3;
}
.btn-outline-secondary:hover {
  color: #23282c;
  background-color: #c8ced3;
  border-color: #c8ced3;
}
.btn-outline-secondary:focus, .btn-outline-secondary.focus {
  box-shadow: 0 0 0 0.2rem rgba(200, 206, 211, 0.5);
}
.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {
  color: #c8ced3;
  background-color: transparent;
}
.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, .show > .btn-outline-secondary.dropdown-toggle {
  color: #23282c;
  background-color: #c8ced3;
  border-color: #c8ced3;
}
.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-secondary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(200, 206, 211, 0.5);
}
.btn-outline-success {
  color: #4dbd74;
  border-color: #4dbd74;
}
.btn-outline-success:hover {
  color: #fff;
  background-color: #4dbd74;
  border-color: #4dbd74;
}
.btn-outline-success:focus, .btn-outline-success.focus {
  box-shadow: 0 0 0 0.2rem rgba(77, 189, 116, 0.5);
}
.btn-outline-success.disabled, .btn-outline-success:disabled {
  color: #4dbd74;
  background-color: transparent;
}
.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active, .show > .btn-outline-success.dropdown-toggle {
  color: #fff;
  background-color: #4dbd74;
  border-color: #4dbd74;
}
.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-success.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(77, 189, 116, 0.5);
}
.btn-outline-info {
  color: #63c2de;
  border-color: #63c2de;
}
.btn-outline-info:hover {
  color: #23282c;
  background-color: #63c2de;
  border-color: #63c2de;
}
.btn-outline-info:focus, .btn-outline-info.focus {
  box-shadow: 0 0 0 0.2rem rgba(99, 194, 222, 0.5);
}
.btn-outline-info.disabled, .btn-outline-info:disabled {
  color: #63c2de;
  background-color: transparent;
}
.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active, .show > .btn-outline-info.dropdown-toggle {
  color: #23282c;
  background-color: #63c2de;
  border-color: #63c2de;
}
.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-info.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(99, 194, 222, 0.5);
}
.btn-outline-warning {
  color: #ffc107;
  border-color: #ffc107;
}
.btn-outline-warning:hover {
  color: #23282c;
  background-color: #ffc107;
  border-color: #ffc107;
}
.btn-outline-warning:focus, .btn-outline-warning.focus {
  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
}
.btn-outline-warning.disabled, .btn-outline-warning:disabled {
  color: #ffc107;
  background-color: transparent;
}
.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active, .show > .btn-outline-warning.dropdown-toggle {
  color: #23282c;
  background-color: #ffc107;
  border-color: #ffc107;
}
.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-warning.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
}
.btn-outline-danger {
  color: #f86c6b;
  border-color: #f86c6b;
}
.btn-outline-danger:hover {
  color: #fff;
  background-color: #f86c6b;
  border-color: #f86c6b;
}
.btn-outline-danger:focus, .btn-outline-danger.focus {
  box-shadow: 0 0 0 0.2rem rgba(248, 108, 107, 0.5);
}
.btn-outline-danger.disabled, .btn-outline-danger:disabled {
  color: #f86c6b;
  background-color: transparent;
}
.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active, .show > .btn-outline-danger.dropdown-toggle {
  color: #fff;
  background-color: #f86c6b;
  border-color: #f86c6b;
}
.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-danger.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(248, 108, 107, 0.5);
}
.btn-outline-light {
  color: #f0f3f5;
  border-color: #f0f3f5;
}
.btn-outline-light:hover {
  color: #23282c;
  background-color: #f0f3f5;
  border-color: #f0f3f5;
}
.btn-outline-light:focus, .btn-outline-light.focus {
  box-shadow: 0 0 0 0.2rem rgba(240, 243, 245, 0.5);
}
.btn-outline-light.disabled, .btn-outline-light:disabled {
  color: #f0f3f5;
  background-color: transparent;
}
.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active, .show > .btn-outline-light.dropdown-toggle {
  color: #23282c;
  background-color: #f0f3f5;
  border-color: #f0f3f5;
}
.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-light.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(240, 243, 245, 0.5);
}
.btn-outline-dark {
  color: #2f353a;
  border-color: #2f353a;
}
.btn-outline-dark:hover {
  color: #fff;
  background-color: #2f353a;
  border-color: #2f353a;
}
.btn-outline-dark:focus, .btn-outline-dark.focus {
  box-shadow: 0 0 0 0.2rem rgba(47, 53, 58, 0.5);
}
.btn-outline-dark.disabled, .btn-outline-dark:disabled {
  color: #2f353a;
  background-color: transparent;
}
.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active, .show > .btn-outline-dark.dropdown-toggle {
  color: #fff;
  background-color: #2f353a;
  border-color: #2f353a;
}
.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-dark.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(47, 53, 58, 0.5);
}
.btn-link {
  font-weight: 400;
  color: #20a8d8;
  text-decoration: none;
}
.btn-link:hover {
  color: #167495;
  text-decoration: underline;
}
.btn-link:focus, .btn-link.focus {
  text-decoration: underline;
  box-shadow: none;
}
.btn-link:disabled, .btn-link.disabled {
  color: #73818f;
  pointer-events: none;
}
.btn-lg, .btn-group-lg > .btn {
  padding: 0.5rem 1rem;
  font-size: 1.09375rem;
  line-height: 1.5;
  border-radius: 0.3rem;
}
.btn-sm, .btn-group-sm > .btn {
  padding: 0.25rem 0.5rem;
  font-size: 0.765625rem;
  line-height: 1.5;
  border-radius: 0.2rem;
}
.btn-block {
  display: block;
  width: 100%;
}
.btn-block + .btn-block {
  margin-top: 0.5rem;
}
input[type=submit].btn-block,
input[type=reset].btn-block,
input[type=button].btn-block {
  width: 100%;
}
.fade {
  transition: opacity 0.15s linear;
}
@media (prefers-reduced-motion: reduce) {
  .fade {
    transition: none;
  }
}
.fade:not(.show) {
  opacity: 0;
}
.collapse:not(.show) {
  display: none;
}
.collapsing {
  position: relative;
  height: 0;
  overflow: hidden;
  transition: height 0.35s ease;
}
@media (prefers-reduced-motion: reduce) {
  .collapsing {
    transition: none;
  }
}
.dropup,
.dropright,
.dropdown,
.dropleft {
  position: relative;
}
.dropdown-toggle {
  white-space: nowrap;
}
.dropdown-toggle::after {
  display: inline-block;
  margin-left: 0.255em;
  vertical-align: 0.255em;
  content: "";
  border-top: 0.3em solid;
  border-right: 0.3em solid transparent;
  border-bottom: 0;
  border-left: 0.3em solid transparent;
}
.dropdown-toggle:empty::after {
  margin-left: 0;
}
.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  display: none;
  float: left;
  min-width: 10rem;
  padding: 0 0;
  margin: 0.125rem 0 0;
  font-size: 0.875rem;
  color: #23282c;
  text-align: left;
  list-style: none;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid #222222;
  border-radius: 0.25rem;
}
.dropdown-menu-left {
  right: auto;
  left: 0;
}
.dropdown-menu-right {
  right: 0;
  left: auto;
}
@media (min-width: 576px) {
  .dropdown-menu-sm-left {
    right: auto;
    left: 0;
  }

  .dropdown-menu-sm-right {
    right: 0;
    left: auto;
  }
}
@media (min-width: 768px) {
  .dropdown-menu-md-left {
    right: auto;
    left: 0;
  }

  .dropdown-menu-md-right {
    right: 0;
    left: auto;
  }
}
@media (min-width: 992px) {
  .dropdown-menu-lg-left {
    right: auto;
    left: 0;
  }

  .dropdown-menu-lg-right {
    right: 0;
    left: auto;
  }
}
@media (min-width: 1200px) {
  .dropdown-menu-xl-left {
    right: auto;
    left: 0;
  }

  .dropdown-menu-xl-right {
    right: 0;
    left: auto;
  }
}
.dropup .dropdown-menu {
  top: auto;
  bottom: 100%;
  margin-top: 0;
  margin-bottom: 0.125rem;
}
.dropup .dropdown-toggle::after {
  display: inline-block;
  margin-left: 0.255em;
  vertical-align: 0.255em;
  content: "";
  border-top: 0;
  border-right: 0.3em solid transparent;
  border-bottom: 0.3em solid;
  border-left: 0.3em solid transparent;
}
.dropup .dropdown-toggle:empty::after {
  margin-left: 0;
}
.dropright .dropdown-menu {
  top: 0;
  right: auto;
  left: 100%;
  margin-top: 0;
  margin-left: 0.125rem;
}
.dropright .dropdown-toggle::after {
  display: inline-block;
  margin-left: 0.255em;
  vertical-align: 0.255em;
  content: "";
  border-top: 0.3em solid transparent;
  border-right: 0;
  border-bottom: 0.3em solid transparent;
  border-left: 0.3em solid;
}
.dropright .dropdown-toggle:empty::after {
  margin-left: 0;
}
.dropright .dropdown-toggle::after {
  vertical-align: 0;
}
.dropleft .dropdown-menu {
  top: 0;
  right: 100%;
  left: auto;
  margin-top: 0;
  margin-right: 0.125rem;
}
.dropleft .dropdown-toggle::after {
  display: inline-block;
  margin-left: 0.255em;
  vertical-align: 0.255em;
  content: "";
}
.dropleft .dropdown-toggle::after {
  display: none;
}
.dropleft .dropdown-toggle::before {
  display: inline-block;
  margin-right: 0.255em;
  vertical-align: 0.255em;
  content: "";
  border-top: 0.3em solid transparent;
  border-right: 0.3em solid;
  border-bottom: 0.3em solid transparent;
}
.dropleft .dropdown-toggle:empty::after {
  margin-left: 0;
}
.dropleft .dropdown-toggle::before {
  vertical-align: 0;
}
.dropdown-menu[x-placement^=top], .dropdown-menu[x-placement^=right], .dropdown-menu[x-placement^=bottom], .dropdown-menu[x-placement^=left] {
  right: auto;
  bottom: auto;
}
.dropdown-divider {
  height: 0;
  margin: 0.5rem 0;
  overflow: hidden;
  border-top: 1px solid #e4e7ea;
}
.dropdown-item {
  display: block;
  width: 100%;
  padding: 0.25rem 1.5rem;
  clear: both;
  font-weight: 400;
  color: #23282c;
  text-align: inherit;
  white-space: nowrap;
  background-color: transparent;
  border: 0;
}
.dropdown-item:first-child {
  border-top-left-radius: calc(0.25rem - 1px);
  border-top-right-radius: calc(0.25rem - 1px);
}
.dropdown-item:last-child {
  border-bottom-right-radius: calc(0.25rem - 1px);
  border-bottom-left-radius: calc(0.25rem - 1px);
}
.dropdown-item:hover, .dropdown-item:focus {
  color: #181b1e;
  text-decoration: none;
  background-color: #f0f3f5;
}
.dropdown-item.active, .dropdown-item:active {
  color: #fff;
  text-decoration: none;
  background-color: #20a8d8;
}
.dropdown-item.disabled, .dropdown-item:disabled {
  color: #73818f;
  pointer-events: none;
  background-color: transparent;
}
.dropdown-menu.show {
  display: block;
}
.dropdown-header {
  display: block;
  padding: 0 1.5rem;
  margin-bottom: 0;
  font-size: 0.765625rem;
  color: #73818f;
  white-space: nowrap;
}
.dropdown-item-text {
  display: block;
  padding: 0.25rem 1.5rem;
  color: #23282c;
}
.btn-group,
.btn-group-vertical {
  position: relative;
  display: inline-flex;
  vertical-align: middle;
}
.btn-group > .btn,
.btn-group-vertical > .btn {
  position: relative;
  flex: 1 1 auto;
}
.btn-group > .btn:hover,
.btn-group-vertical > .btn:hover {
  z-index: 1;
}
.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,
.btn-group-vertical > .btn:focus,
.btn-group-vertical > .btn:active,
.btn-group-vertical > .btn.active {
  z-index: 1;
}
.btn-toolbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
}
.btn-toolbar .input-group {
  width: auto;
}
.btn-group > .btn:not(:first-child),
.btn-group > .btn-group:not(:first-child) {
  margin-left: -1px;
}
.btn-group > .btn:not(:last-child):not(.dropdown-toggle),
.btn-group > .btn-group:not(:last-child) > .btn {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.btn-group > .btn:not(:first-child),
.btn-group > .btn-group:not(:first-child) > .btn {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.dropdown-toggle-split {
  padding-right: 0.5625rem;
  padding-left: 0.5625rem;
}
.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropright .dropdown-toggle-split::after {
  margin-left: 0;
}
.dropleft .dropdown-toggle-split::before {
  margin-right: 0;
}
.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {
  padding-right: 0.375rem;
  padding-left: 0.375rem;
}
.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {
  padding-right: 0.75rem;
  padding-left: 0.75rem;
}
.btn-group-vertical {
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}
.btn-group-vertical > .btn,
.btn-group-vertical > .btn-group {
  width: 100%;
}
.btn-group-vertical > .btn:not(:first-child),
.btn-group-vertical > .btn-group:not(:first-child) {
  margin-top: -1px;
}
.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),
.btn-group-vertical > .btn-group:not(:last-child) > .btn {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn:not(:first-child),
.btn-group-vertical > .btn-group:not(:first-child) > .btn {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.btn-group-toggle > .btn,
.btn-group-toggle > .btn-group > .btn {
  margin-bottom: 0;
}
.btn-group-toggle > .btn input[type=radio],
.btn-group-toggle > .btn input[type=checkbox],
.btn-group-toggle > .btn-group > .btn input[type=radio],
.btn-group-toggle > .btn-group > .btn input[type=checkbox] {
  position: absolute;
  clip: rect(0, 0, 0, 0);
  pointer-events: none;
}
.input-group {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  width: 100%;
}
.input-group > .form-control,
.input-group > .form-control-plaintext,
.input-group > .custom-select,
.input-group > .custom-file {
  position: relative;
  flex: 1 1 auto;
  width: 1%;
  margin-bottom: 0;
}
.input-group > .form-control + .form-control,
.input-group > .form-control + .custom-select,
.input-group > .form-control + .custom-file,
.input-group > .form-control-plaintext + .form-control,
.input-group > .form-control-plaintext + .custom-select,
.input-group > .form-control-plaintext + .custom-file,
.input-group > .custom-select + .form-control,
.input-group > .custom-select + .custom-select,
.input-group > .custom-select + .custom-file,
.input-group > .custom-file + .form-control,
.input-group > .custom-file + .custom-select,
.input-group > .custom-file + .custom-file {
  margin-left: -1px;
}
.input-group > .form-control:focus,
.input-group > .custom-select:focus,
.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {
  z-index: 3;
}
.input-group > .custom-file .custom-file-input:focus {
  z-index: 4;
}
.input-group > .form-control:not(:last-child),
.input-group > .custom-select:not(:last-child) {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.input-group > .form-control:not(:first-child),
.input-group > .custom-select:not(:first-child) {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.input-group > .custom-file {
  display: flex;
  align-items: center;
}
.input-group > .custom-file:not(:last-child) .custom-file-label, .input-group > .custom-file:not(:last-child) .custom-file-label::after {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.input-group > .custom-file:not(:first-child) .custom-file-label {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.input-group-prepend,
.input-group-append {
  display: flex;
}
.input-group-prepend .btn,
.input-group-append .btn {
  position: relative;
  z-index: 2;
}
.input-group-prepend .btn:focus,
.input-group-append .btn:focus {
  z-index: 3;
}
.input-group-prepend .btn + .btn,
.input-group-prepend .btn + .input-group-text,
.input-group-prepend .input-group-text + .input-group-text,
.input-group-prepend .input-group-text + .btn,
.input-group-append .btn + .btn,
.input-group-append .btn + .input-group-text,
.input-group-append .input-group-text + .input-group-text,
.input-group-append .input-group-text + .btn {
  margin-left: -1px;
}
.input-group-prepend {
  margin-right: -1px;
}
.input-group-append {
  margin-left: -1px;
}
.input-group-text {
  display: flex;
  align-items: center;
  padding: 0.375rem 0.75rem;
  margin-bottom: 0;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.5;
  color: #5c6873;
  text-align: center;
  white-space: nowrap;
  background-color: #f0f3f5;
  border: 1px solid #e4e7ea;
  border-radius: 0.25rem;
}
.input-group-text input[type=radio],
.input-group-text input[type=checkbox] {
  margin-top: 0;
}
.input-group-lg > .form-control:not(textarea),
.input-group-lg > .custom-select {
  height: calc(1.5em + 1rem + 2px);
}
.input-group-lg > .form-control,
.input-group-lg > .custom-select,
.input-group-lg > .input-group-prepend > .input-group-text,
.input-group-lg > .input-group-append > .input-group-text,
.input-group-lg > .input-group-prepend > .btn,
.input-group-lg > .input-group-append > .btn {
  padding: 0.5rem 1rem;
  font-size: 1.09375rem;
  line-height: 1.5;
  border-radius: 0.3rem;
}
.input-group-sm > .form-control:not(textarea),
.input-group-sm > .custom-select {
  height: calc(1.5em + 0.5rem + 2px);
}
.input-group-sm > .form-control,
.input-group-sm > .custom-select,
.input-group-sm > .input-group-prepend > .input-group-text,
.input-group-sm > .input-group-append > .input-group-text,
.input-group-sm > .input-group-prepend > .btn,
.input-group-sm > .input-group-append > .btn {
  padding: 0.25rem 0.5rem;
  font-size: 0.765625rem;
  line-height: 1.5;
  border-radius: 0.2rem;
}
.input-group-lg > .custom-select,
.input-group-sm > .custom-select {
  padding-right: 1.75rem;
}
.input-group > .input-group-prepend > .btn,
.input-group > .input-group-prepend > .input-group-text,
.input-group > .input-group-append:not(:last-child) > .btn,
.input-group > .input-group-append:not(:last-child) > .input-group-text,
.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.input-group > .input-group-append > .btn,
.input-group > .input-group-append > .input-group-text,
.input-group > .input-group-prepend:not(:first-child) > .btn,
.input-group > .input-group-prepend:not(:first-child) > .input-group-text,
.input-group > .input-group-prepend:first-child > .btn:not(:first-child),
.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.custom-control {
  position: relative;
  display: block;
  min-height: 1.3125rem;
  padding-left: 1.5rem;
}
.custom-control-inline {
  display: inline-flex;
  margin-right: 1rem;
}
.custom-control-input {
  position: absolute;
  z-index: -1;
  opacity: 0;
}
.custom-control-input:checked ~ .custom-control-label::before {
  color: #fff;
  border-color: #20a8d8;
  background-color: #20a8d8;
}
.custom-control-input:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.2rem rgba(32, 168, 216, 0.25);
}
.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {
  border-color: #8ad4ee;
}
.custom-control-input:not(:disabled):active ~ .custom-control-label::before {
  color: #fff;
  background-color: #b6e4f4;
  border-color: #b6e4f4;
}
.custom-control-input:disabled ~ .custom-control-label {
  color: #73818f;
}
.custom-control-input:disabled ~ .custom-control-label::before {
  background-color: #e4e7ea;
}
.custom-control-label {
  position: relative;
  margin-bottom: 0;
  vertical-align: top;
}
.custom-control-label::before {
  position: absolute;
  top: 0.15625rem;
  left: -1.5rem;
  display: block;
  width: 1rem;
  height: 1rem;
  pointer-events: none;
  content: "";
  background-color: #fff;
  border: #8f9ba6 solid 1px;
}
.custom-control-label::after {
  position: absolute;
  top: 0.15625rem;
  left: -1.5rem;
  display: block;
  width: 1rem;
  height: 1rem;
  content: "";
  background: no-repeat 50%/50% 50%;
}
.custom-checkbox .custom-control-label::before {
  border-radius: 0.25rem;
}
.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e");
}
.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {
  border-color: #20a8d8;
  background-color: #20a8d8;
}
.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e");
}
.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {
  background-color: rgba(32, 168, 216, 0.5);
}
.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {
  background-color: rgba(32, 168, 216, 0.5);
}
.custom-radio .custom-control-label::before {
  border-radius: 50%;
}
.custom-radio .custom-control-input:checked ~ .custom-control-label::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}
.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {
  background-color: rgba(32, 168, 216, 0.5);
}
.custom-switch {
  padding-left: 2.25rem;
}
.custom-switch .custom-control-label::before {
  left: -2.25rem;
  width: 1.75rem;
  pointer-events: all;
  border-radius: 0.5rem;
}
.custom-switch .custom-control-label::after {
  top: calc(0.15625rem + 2px);
  left: calc(-2.25rem + 2px);
  width: calc(1rem - 4px);
  height: calc(1rem - 4px);
  background-color: #8f9ba6;
  border-radius: 0.5rem;
  transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .custom-switch .custom-control-label::after {
    transition: none;
  }
}
.custom-switch .custom-control-input:checked ~ .custom-control-label::after {
  background-color: #fff;
  transform: translateX(0.75rem);
}
.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {
  background-color: rgba(32, 168, 216, 0.5);
}
.custom-select {
  display: inline-block;
  width: 100%;
  height: calc(1.5em + 0.75rem + 2px);
  padding: 0.375rem 1.75rem 0.375rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.5;
  color: #5c6873;
  vertical-align: middle;
  background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%232f353a' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px;
  background-color: #fff;
  border: 1px solid #e4e7ea;
  border-radius: 0.25rem;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
.custom-select:focus {
  border-color: #8ad4ee;
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(32, 168, 216, 0.25);
}
.custom-select:focus::-ms-value {
  color: #5c6873;
  background-color: #fff;
}
.custom-select[multiple], .custom-select[size]:not([size="1"]) {
  height: auto;
  padding-right: 0.75rem;
  background-image: none;
}
.custom-select:disabled {
  color: #73818f;
  background-color: #e4e7ea;
}
.custom-select::-ms-expand {
  display: none;
}
.custom-select-sm {
  height: calc(1.5em + 0.5rem + 2px);
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  padding-left: 0.5rem;
  font-size: 0.765625rem;
}
.custom-select-lg {
  height: calc(1.5em + 1rem + 2px);
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 1rem;
  font-size: 1.09375rem;
}
.custom-file {
  position: relative;
  display: inline-block;
  width: 100%;
  height: calc(1.5em + 0.75rem + 2px);
  margin-bottom: 0;
}
.custom-file-input {
  position: relative;
  z-index: 2;
  width: 100%;
  height: calc(1.5em + 0.75rem + 2px);
  margin: 0;
  opacity: 0;
}
.custom-file-input:focus ~ .custom-file-label {
  border-color: #8ad4ee;
  box-shadow: 0 0 0 0.2rem rgba(32, 168, 216, 0.25);
}
.custom-file-input:disabled ~ .custom-file-label {
  background-color: #e4e7ea;
}
.custom-file-input:lang(en) ~ .custom-file-label::after {
  content: "Browse";
}
.custom-file-input ~ .custom-file-label[data-browse]::after {
  content: attr(data-browse);
}
.custom-file-label {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1;
  height: calc(1.5em + 0.75rem + 2px);
  padding: 0.375rem 0.75rem;
  font-weight: 400;
  line-height: 1.5;
  color: #5c6873;
  background-color: #fff;
  border: 1px solid #e4e7ea;
  border-radius: 0.25rem;
}
.custom-file-label::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
  display: block;
  height: calc(1.5em + 0.75rem);
  padding: 0.375rem 0.75rem;
  line-height: 1.5;
  color: #5c6873;
  content: "Browse";
  background-color: #f0f3f5;
  border-left: inherit;
  border-radius: 0 0.25rem 0.25rem 0;
}
.custom-range {
  width: 100%;
  height: calc(1rem + 0.4rem);
  padding: 0;
  background-color: transparent;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
.custom-range:focus {
  outline: none;
}
.custom-range:focus::-webkit-slider-thumb {
  box-shadow: 0 0 0 1px #e4e5e6, 0 0 0 0.2rem rgba(32, 168, 216, 0.25);
}
.custom-range:focus::-moz-range-thumb {
  box-shadow: 0 0 0 1px #e4e5e6, 0 0 0 0.2rem rgba(32, 168, 216, 0.25);
}
.custom-range:focus::-ms-thumb {
  box-shadow: 0 0 0 1px #e4e5e6, 0 0 0 0.2rem rgba(32, 168, 216, 0.25);
}
.custom-range::-moz-focus-outer {
  border: 0;
}
.custom-range::-webkit-slider-thumb {
  width: 1rem;
  height: 1rem;
  margin-top: -0.25rem;
  background-color: #20a8d8;
  border: 0;
  border-radius: 1rem;
  -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  -webkit-appearance: none;
          appearance: none;
}
@media (prefers-reduced-motion: reduce) {
  .custom-range::-webkit-slider-thumb {
    -webkit-transition: none;
    transition: none;
  }
}
.custom-range::-webkit-slider-thumb:active {
  background-color: #b6e4f4;
}
.custom-range::-webkit-slider-runnable-track {
  width: 100%;
  height: 0.5rem;
  color: transparent;
  cursor: pointer;
  background-color: #c8ced3;
  border-color: transparent;
  border-radius: 1rem;
}
.custom-range::-moz-range-thumb {
  width: 1rem;
  height: 1rem;
  background-color: #20a8d8;
  border: 0;
  border-radius: 1rem;
  -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  -moz-appearance: none;
       appearance: none;
}
@media (prefers-reduced-motion: reduce) {
  .custom-range::-moz-range-thumb {
    -moz-transition: none;
    transition: none;
  }
}
.custom-range::-moz-range-thumb:active {
  background-color: #b6e4f4;
}
.custom-range::-moz-range-track {
  width: 100%;
  height: 0.5rem;
  color: transparent;
  cursor: pointer;
  background-color: #c8ced3;
  border-color: transparent;
  border-radius: 1rem;
}
.custom-range::-ms-thumb {
  width: 1rem;
  height: 1rem;
  margin-top: 0;
  margin-right: 0.2rem;
  margin-left: 0.2rem;
  background-color: #20a8d8;
  border: 0;
  border-radius: 1rem;
  -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  appearance: none;
}
@media (prefers-reduced-motion: reduce) {
  .custom-range::-ms-thumb {
    -ms-transition: none;
    transition: none;
  }
}
.custom-range::-ms-thumb:active {
  background-color: #b6e4f4;
}
.custom-range::-ms-track {
  width: 100%;
  height: 0.5rem;
  color: transparent;
  cursor: pointer;
  background-color: transparent;
  border-color: transparent;
  border-width: 0.5rem;
}
.custom-range::-ms-fill-lower {
  background-color: #c8ced3;
  border-radius: 1rem;
}
.custom-range::-ms-fill-upper {
  margin-right: 15px;
  background-color: #c8ced3;
  border-radius: 1rem;
}
.custom-range:disabled::-webkit-slider-thumb {
  background-color: #8f9ba6;
}
.custom-range:disabled::-webkit-slider-runnable-track {
  cursor: default;
}
.custom-range:disabled::-moz-range-thumb {
  background-color: #8f9ba6;
}
.custom-range:disabled::-moz-range-track {
  cursor: default;
}
.custom-range:disabled::-ms-thumb {
  background-color: #8f9ba6;
}
.custom-control-label::before,
.custom-file-label,
.custom-select {
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .custom-control-label::before,
.custom-file-label,
.custom-select {
    transition: none;
  }
}
.nav {
  display: flex;
  flex-wrap: wrap;
  padding-left: 0;
  margin-bottom: 0;
  list-style: none;
}
.nav-link {
  display: block;
  padding: 0.5rem 1rem;
}
.nav-link:hover, .nav-link:focus {
  text-decoration: none;
}
.nav-link.disabled {
  color: #73818f;
  pointer-events: none;
  cursor: default;
}
.nav-tabs {
  border-bottom: 1px solid #c8ced3;
}
.nav-tabs .nav-item {
  margin-bottom: -1px;
}
.nav-tabs .nav-link {
  border: 1px solid transparent;
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
}
.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
  border-color: #c8ced3 #c8ced3 #c8ced3;
}
.nav-tabs .nav-link.disabled {
  color: #73818f;
  background-color: transparent;
  border-color: transparent;
}
.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link {
  color: #23282c;
  background-color: #fff;
  border-color: #c8ced3 #c8ced3 #fff;
}
.nav-tabs .dropdown-menu {
  margin-top: -1px;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.nav-pills .nav-link {
  border-radius: 0.25rem;
}
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
  color: #fff;
  background-color: #20a8d8;
}
.nav-fill .nav-item {
  flex: 1 1 auto;
  text-align: center;
}
.nav-justified .nav-item {
  flex-basis: 0;
  flex-grow: 1;
  text-align: center;
}
.tab-content > .tab-pane {
  display: none;
}
.tab-content > .active {
  display: block;
}
.navbar {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 1rem;
}
.navbar > .container,
.navbar > .container-fluid {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
}
.navbar-brand {
  display: inline-block;
  padding-top: 0.3359375rem;
  padding-bottom: 0.3359375rem;
  margin-right: 1rem;
  font-size: 1.09375rem;
  line-height: inherit;
  white-space: nowrap;
}
.navbar-brand:hover, .navbar-brand:focus {
  text-decoration: none;
}
.navbar-nav {
  display: flex;
  flex-direction: column;
  padding-left: 0;
  margin-bottom: 0;
  list-style: none;
}
.navbar-nav .nav-link {
  padding-right: 0;
  padding-left: 0;
}
.navbar-nav .dropdown-menu {
  position: static;
  float: none;
}
.navbar-text {
  display: inline-block;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.navbar-collapse {
  flex-basis: 100%;
  flex-grow: 1;
  align-items: center;
}
.navbar-toggler {
  padding: 0.25rem 0.75rem;
  font-size: 1.09375rem;
  line-height: 1;
  background-color: transparent;
  border: 1px solid transparent;
  border-radius: 0.25rem;
}
.navbar-toggler:hover, .navbar-toggler:focus {
  text-decoration: none;
}
.navbar-toggler-icon {
  display: inline-block;
  width: 1.5em;
  height: 1.5em;
  vertical-align: middle;
  content: "";
  background: no-repeat center center;
  background-size: 100% 100%;
}
@media (max-width: 575.98px) {
  .navbar-expand-sm > .container,
.navbar-expand-sm > .container-fluid {
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 576px) {
  .navbar-expand-sm {
    flex-flow: row nowrap;
    justify-content: flex-start;
  }
  .navbar-expand-sm .navbar-nav {
    flex-direction: row;
  }
  .navbar-expand-sm .navbar-nav .dropdown-menu {
    position: absolute;
  }
  .navbar-expand-sm .navbar-nav .nav-link {
    padding-right: 0.5rem;
    padding-left: 0.5rem;
  }
  .navbar-expand-sm > .container,
.navbar-expand-sm > .container-fluid {
    flex-wrap: nowrap;
  }
  .navbar-expand-sm .navbar-collapse {
    display: flex !important;
    flex-basis: auto;
  }
  .navbar-expand-sm .navbar-toggler {
    display: none;
  }
}
@media (max-width: 767.98px) {
  .navbar-expand-md > .container,
.navbar-expand-md > .container-fluid {
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 768px) {
  .navbar-expand-md {
    flex-flow: row nowrap;
    justify-content: flex-start;
  }
  .navbar-expand-md .navbar-nav {
    flex-direction: row;
  }
  .navbar-expand-md .navbar-nav .dropdown-menu {
    position: absolute;
  }
  .navbar-expand-md .navbar-nav .nav-link {
    padding-right: 0.5rem;
    padding-left: 0.5rem;
  }
  .navbar-expand-md > .container,
.navbar-expand-md > .container-fluid {
    flex-wrap: nowrap;
  }
  .navbar-expand-md .navbar-collapse {
    display: flex !important;
    flex-basis: auto;
  }
  .navbar-expand-md .navbar-toggler {
    display: none;
  }
}
@media (max-width: 991.98px) {
  .navbar-expand-lg > .container,
.navbar-expand-lg > .container-fluid {
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 992px) {
  .navbar-expand-lg {
    flex-flow: row nowrap;
    justify-content: flex-start;
  }
  .navbar-expand-lg .navbar-nav {
    flex-direction: row;
  }
  .navbar-expand-lg .navbar-nav .dropdown-menu {
    position: absolute;
  }
  .navbar-expand-lg .navbar-nav .nav-link {
    padding-right: 0.5rem;
    padding-left: 0.5rem;
  }
  .navbar-expand-lg > .container,
.navbar-expand-lg > .container-fluid {
    flex-wrap: nowrap;
  }
  .navbar-expand-lg .navbar-collapse {
    display: flex !important;
    flex-basis: auto;
  }
  .navbar-expand-lg .navbar-toggler {
    display: none;
  }
}
@media (max-width: 1199.98px) {
  .navbar-expand-xl > .container,
.navbar-expand-xl > .container-fluid {
    padding-right: 0;
    padding-left: 0;
  }
}
@media (min-width: 1200px) {
  .navbar-expand-xl {
    flex-flow: row nowrap;
    justify-content: flex-start;
  }
  .navbar-expand-xl .navbar-nav {
    flex-direction: row;
  }
  .navbar-expand-xl .navbar-nav .dropdown-menu {
    position: absolute;
  }
  .navbar-expand-xl .navbar-nav .nav-link {
    padding-right: 0.5rem;
    padding-left: 0.5rem;
  }
  .navbar-expand-xl > .container,
.navbar-expand-xl > .container-fluid {
    flex-wrap: nowrap;
  }
  .navbar-expand-xl .navbar-collapse {
    display: flex !important;
    flex-basis: auto;
  }
  .navbar-expand-xl .navbar-toggler {
    display: none;
  }
}
.navbar-expand {
  flex-flow: row nowrap;
  justify-content: flex-start;
}
.navbar-expand > .container,
.navbar-expand > .container-fluid {
  padding-right: 0;
  padding-left: 0;
}
.navbar-expand .navbar-nav {
  flex-direction: row;
}
.navbar-expand .navbar-nav .dropdown-menu {
  position: absolute;
}
.navbar-expand .navbar-nav .nav-link {
  padding-right: 0.5rem;
  padding-left: 0.5rem;
}
.navbar-expand > .container,
.navbar-expand > .container-fluid {
  flex-wrap: nowrap;
}
.navbar-expand .navbar-collapse {
  display: flex !important;
  flex-basis: auto;
}
.navbar-expand .navbar-toggler {
  display: none;
}
.navbar-light .navbar-brand {
  color: rgba(0, 0, 0, 0.9);
}
.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {
  color: rgba(0, 0, 0, 0.9);
}
.navbar-light .navbar-nav .nav-link {
  color: rgba(0, 0, 0, 0.5);
}
.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {
  color: rgba(0, 0, 0, 0.7);
}
.navbar-light .navbar-nav .nav-link.disabled {
  color: rgba(0, 0, 0, 0.3);
}
.navbar-light .navbar-nav .show > .nav-link,
.navbar-light .navbar-nav .active > .nav-link,
.navbar-light .navbar-nav .nav-link.show,
.navbar-light .navbar-nav .nav-link.active {
  color: rgba(0, 0, 0, 0.9);
}
.navbar-light .navbar-toggler {
  color: rgba(0, 0, 0, 0.5);
  border-color: rgba(0, 0, 0, 0.1);
}
.navbar-light .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
.navbar-light .navbar-text {
  color: rgba(0, 0, 0, 0.5);
}
.navbar-light .navbar-text a {
  color: rgba(0, 0, 0, 0.9);
}
.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {
  color: rgba(0, 0, 0, 0.9);
}
.navbar-dark .navbar-brand {
  color: #fff;
}
.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {
  color: #fff;
}
.navbar-dark .navbar-nav .nav-link {
  color: rgba(255, 255, 255, 0.5);
}
.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {
  color: rgba(255, 255, 255, 0.75);
}
.navbar-dark .navbar-nav .nav-link.disabled {
  color: rgba(255, 255, 255, 0.25);
}
.navbar-dark .navbar-nav .show > .nav-link,
.navbar-dark .navbar-nav .active > .nav-link,
.navbar-dark .navbar-nav .nav-link.show,
.navbar-dark .navbar-nav .nav-link.active {
  color: #fff;
}
.navbar-dark .navbar-toggler {
  color: rgba(255, 255, 255, 0.5);
  border-color: rgba(255, 255, 255, 0.1);
}
.navbar-dark .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
.navbar-dark .navbar-text {
  color: rgba(255, 255, 255, 0.5);
}
.navbar-dark .navbar-text a {
  color: #fff;
}
.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {
  color: #fff;
}
.card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  word-wrap: break-word;
  background-color: #fff;
  background-clip: border-box;
  border: 1px solid #c8ced3;
  border-radius: 0.25rem;
}
.card > hr {
  margin-right: 0;
  margin-left: 0;
}
.card > .list-group:first-child .list-group-item:first-child {
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
}
.card > .list-group:last-child .list-group-item:last-child {
  border-bottom-right-radius: 0.25rem;
  border-bottom-left-radius: 0.25rem;
}
.card-body {
  flex: 1 1 auto;
  padding: 1.25rem;
}
.card-title {
  margin-bottom: 0.75rem;
}
.card-subtitle {
  margin-top: -0.375rem;
  margin-bottom: 0;
}
.card-text:last-child {
  margin-bottom: 0;
}
.card-link:hover {
  text-decoration: none;
}
.card-link + .card-link {
  margin-left: 1.25rem;
}
.card-header {
  padding: 0.75rem 1.25rem;
  margin-bottom: 0;
  background-color: #f0f3f5;
  border-bottom: 1px solid #c8ced3;
}
.card-header:first-child {
  border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;
}
.card-header + .list-group .list-group-item:first-child {
  border-top: 0;
}
.card-footer {
  padding: 0.75rem 1.25rem;
  background-color: #f0f3f5;
  border-top: 1px solid #c8ced3;
}
.card-footer:last-child {
  border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);
}
.card-header-tabs {
  margin-right: -0.625rem;
  margin-bottom: -0.75rem;
  margin-left: -0.625rem;
  border-bottom: 0;
}
.card-header-pills {
  margin-right: -0.625rem;
  margin-left: -0.625rem;
}
.card-img-overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 1.25rem;
}
.card-img {
  width: 100%;
  border-radius: calc(0.25rem - 1px);
}
.card-img-top {
  width: 100%;
  border-top-left-radius: calc(0.25rem - 1px);
  border-top-right-radius: calc(0.25rem - 1px);
}
.card-img-bottom {
  width: 100%;
  border-bottom-right-radius: calc(0.25rem - 1px);
  border-bottom-left-radius: calc(0.25rem - 1px);
}
.card-deck {
  display: flex;
  flex-direction: column;
}
.card-deck .card {
  margin-bottom: 15px;
}
@media (min-width: 576px) {
  .card-deck {
    flex-flow: row wrap;
    margin-right: -15px;
    margin-left: -15px;
  }
  .card-deck .card {
    display: flex;
    flex: 1 0 0%;
    flex-direction: column;
    margin-right: 15px;
    margin-bottom: 0;
    margin-left: 15px;
  }
}
.card-group {
  display: flex;
  flex-direction: column;
}
.card-group > .card {
  margin-bottom: 15px;
}
@media (min-width: 576px) {
  .card-group {
    flex-flow: row wrap;
  }
  .card-group > .card {
    flex: 1 0 0%;
    margin-bottom: 0;
  }
  .card-group > .card + .card {
    margin-left: 0;
    border-left: 0;
  }
  .card-group > .card:not(:last-child) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
  }
  .card-group > .card:not(:last-child) .card-img-top,
.card-group > .card:not(:last-child) .card-header {
    border-top-right-radius: 0;
  }
  .card-group > .card:not(:last-child) .card-img-bottom,
.card-group > .card:not(:last-child) .card-footer {
    border-bottom-right-radius: 0;
  }
  .card-group > .card:not(:first-child) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
  }
  .card-group > .card:not(:first-child) .card-img-top,
.card-group > .card:not(:first-child) .card-header {
    border-top-left-radius: 0;
  }
  .card-group > .card:not(:first-child) .card-img-bottom,
.card-group > .card:not(:first-child) .card-footer {
    border-bottom-left-radius: 0;
  }
}
.card-columns .card {
  margin-bottom: 0.75rem;
}
@media (min-width: 576px) {
  .card-columns {
    -moz-column-count: 3;
         column-count: 3;
    -moz-column-gap: 1.25rem;
         column-gap: 1.25rem;
    orphans: 1;
    widows: 1;
  }
  .card-columns .card {
    display: inline-block;
    width: 100%;
  }
}
.accordion > .card {
  overflow: hidden;
}
.accordion > .card:not(:first-of-type) .card-header:first-child {
  border-radius: 0;
}
.accordion > .card:not(:first-of-type):not(:last-of-type) {
  border-bottom: 0;
  border-radius: 0;
}
.accordion > .card:first-of-type {
  border-bottom: 0;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.accordion > .card:last-of-type {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.accordion > .card .card-header {
  margin-bottom: -1px;
}
.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  padding: 0.75rem 1rem;
  margin-bottom: 1.5rem;
  list-style: none;
  background-color: #fff;
  border-radius: 0;
}
.breadcrumb-item + .breadcrumb-item {
  padding-left: 0.5rem;
}
.breadcrumb-item + .breadcrumb-item::before {
  display: inline-block;
  padding-right: 0.5rem;
  color: #73818f;
  content: "/";
}
.breadcrumb-item + .breadcrumb-item:hover::before {
  text-decoration: underline;
}
.breadcrumb-item + .breadcrumb-item:hover::before {
  text-decoration: none;
}
.breadcrumb-item.active {
  color: #73818f;
}
.pagination {
  display: flex;
  padding-left: 0;
  list-style: none;
  border-radius: 0.25rem;
}
.page-link {
  position: relative;
  display: block;
  padding: 0.5rem 0.75rem;
  margin-left: -1px;
  line-height: 1.25;
  color: #20a8d8;
  background-color: #fff;
  border: 1px solid #c8ced3;
}
.page-link:hover {
  z-index: 2;
  color: #167495;
  text-decoration: none;
  background-color: #e4e7ea;
  border-color: #c8ced3;
}
.page-link:focus {
  z-index: 2;
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(32, 168, 216, 0.25);
}
.page-item:first-child .page-link {
  margin-left: 0;
  border-top-left-radius: 0.25rem;
  border-bottom-left-radius: 0.25rem;
}
.page-item:last-child .page-link {
  border-top-right-radius: 0.25rem;
  border-bottom-right-radius: 0.25rem;
}
.page-item.active .page-link {
  z-index: 1;
  color: #fff;
  background-color: #20a8d8;
  border-color: #20a8d8;
}
.page-item.disabled .page-link {
  color: #73818f;
  pointer-events: none;
  cursor: auto;
  background-color: #fff;
  border-color: #c8ced3;
}
.pagination-lg .page-link {
  padding: 0.75rem 1.5rem;
  font-size: 1.09375rem;
  line-height: 1.5;
}
.pagination-lg .page-item:first-child .page-link {
  border-top-left-radius: 0.3rem;
  border-bottom-left-radius: 0.3rem;
}
.pagination-lg .page-item:last-child .page-link {
  border-top-right-radius: 0.3rem;
  border-bottom-right-radius: 0.3rem;
}
.pagination-sm .page-link {
  padding: 0.25rem 0.5rem;
  font-size: 0.765625rem;
  line-height: 1.5;
}
.pagination-sm .page-item:first-child .page-link {
  border-top-left-radius: 0.2rem;
  border-bottom-left-radius: 0.2rem;
}
.pagination-sm .page-item:last-child .page-link {
  border-top-right-radius: 0.2rem;
  border-bottom-right-radius: 0.2rem;
}
.badge {
  display: inline-block;
  padding: 0.25em 0.4em;
  font-size: 75%;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: 0.25rem;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .badge {
    transition: none;
  }
}
a.badge:hover, a.badge:focus {
  text-decoration: none;
}
.badge:empty {
  display: none;
}
.btn .badge {
  position: relative;
  top: -1px;
}
.badge-pill {
  padding-right: 0.6em;
  padding-left: 0.6em;
  border-radius: 10rem;
}
.badge-primary {
  color: #fff;
  background-color: #20a8d8;
}
a.badge-primary:hover, a.badge-primary:focus {
  color: #fff;
  background-color: #1985ac;
}
a.badge-primary:focus, a.badge-primary.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(32, 168, 216, 0.5);
}
.badge-secondary {
  color: #23282c;
  background-color: #c8ced3;
}
a.badge-secondary:hover, a.badge-secondary:focus {
  color: #23282c;
  background-color: #acb5bc;
}
a.badge-secondary:focus, a.badge-secondary.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(200, 206, 211, 0.5);
}
.badge-success {
  color: #fff;
  background-color: #4dbd74;
}
a.badge-success:hover, a.badge-success:focus {
  color: #fff;
  background-color: #3a9d5d;
}
a.badge-success:focus, a.badge-success.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(77, 189, 116, 0.5);
}
.badge-info {
  color: #23282c;
  background-color: #63c2de;
}
a.badge-info:hover, a.badge-info:focus {
  color: #23282c;
  background-color: #39b2d5;
}
a.badge-info:focus, a.badge-info.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(99, 194, 222, 0.5);
}
.badge-warning {
  color: #23282c;
  background-color: #ffc107;
}
a.badge-warning:hover, a.badge-warning:focus {
  color: #23282c;
  background-color: #d39e00;
}
a.badge-warning:focus, a.badge-warning.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
}
.badge-danger {
  color: #fff;
  background-color: #f86c6b;
}
a.badge-danger:hover, a.badge-danger:focus {
  color: #fff;
  background-color: #f63c3a;
}
a.badge-danger:focus, a.badge-danger.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(248, 108, 107, 0.5);
}
.badge-light {
  color: #23282c;
  background-color: #f0f3f5;
}
a.badge-light:hover, a.badge-light:focus {
  color: #23282c;
  background-color: #d1dbe1;
}
a.badge-light:focus, a.badge-light.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(240, 243, 245, 0.5);
}
.badge-dark {
  color: #fff;
  background-color: #2f353a;
}
a.badge-dark:hover, a.badge-dark:focus {
  color: #fff;
  background-color: #181b1e;
}
a.badge-dark:focus, a.badge-dark.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(47, 53, 58, 0.5);
}
.jumbotron {
  padding: 2rem 1rem;
  margin-bottom: 2rem;
  background-color: #e4e7ea;
  border-radius: 0.3rem;
}
@media (min-width: 576px) {
  .jumbotron {
    padding: 4rem 2rem;
  }
}
.jumbotron-fluid {
  padding-right: 0;
  padding-left: 0;
  border-radius: 0;
}
.alert {
  position: relative;
  padding: 0.75rem 1.25rem;
  margin-bottom: 1rem;
  border: 1px solid transparent;
  border-radius: 0.25rem;
}
.alert-heading {
  color: inherit;
}
.alert-link {
  font-weight: 700;
}
.alert-dismissible {
  padding-right: 3.8125rem;
}
.alert-dismissible .close {
  position: absolute;
  top: 0;
  right: 0;
  padding: 0.75rem 1.25rem;
  color: inherit;
}
.alert-primary {
  color: #115770;
  background-color: #d2eef7;
  border-color: #c1e7f4;
}
.alert-primary hr {
  border-top-color: #abdff0;
}
.alert-primary .alert-link {
  color: #0a3544;
}
.alert-secondary {
  color: #686b6e;
  background-color: #f4f5f6;
  border-color: #f0f1f3;
}
.alert-secondary hr {
  border-top-color: #e2e4e8;
}
.alert-secondary .alert-link {
  color: #4f5254;
}
.alert-success {
  color: #28623c;
  background-color: #dbf2e3;
  border-color: #cdedd8;
}
.alert-success hr {
  border-top-color: #bae6c9;
}
.alert-success .alert-link {
  color: #193e26;
}
.alert-info {
  color: #336573;
  background-color: #e0f3f8;
  border-color: #d3eef6;
}
.alert-info hr {
  border-top-color: #bee6f2;
}
.alert-info .alert-link {
  color: #234650;
}
.alert-warning {
  color: #856404;
  background-color: #fff3cd;
  border-color: #ffeeba;
}
.alert-warning hr {
  border-top-color: #ffe8a1;
}
.alert-warning .alert-link {
  color: #533f03;
}
.alert-danger {
  color: #813838;
  background-color: #fee2e1;
  border-color: #fdd6d6;
}
.alert-danger hr {
  border-top-color: #fcbebe;
}
.alert-danger .alert-link {
  color: #5d2929;
}
.alert-light {
  color: #7d7e7f;
  background-color: #fcfdfd;
  border-color: #fbfcfc;
}
.alert-light hr {
  border-top-color: #ecf1f1;
}
.alert-light .alert-link {
  color: #646565;
}
.alert-dark {
  color: #181c1e;
  background-color: #d5d7d8;
  border-color: #c5c6c8;
}
.alert-dark hr {
  border-top-color: #b8b9bc;
}
.alert-dark .alert-link {
  color: #010202;
}
@-webkit-keyframes progress-bar-stripes {
  from {
    background-position: 1rem 0;
  }
  to {
    background-position: 0 0;
  }
}
@keyframes progress-bar-stripes {
  from {
    background-position: 1rem 0;
  }
  to {
    background-position: 0 0;
  }
}
.progress {
  display: flex;
  height: 1rem;
  overflow: hidden;
  font-size: 0.65625rem;
  background-color: #f0f3f5;
  border-radius: 0.25rem;
}
.progress-bar {
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: #fff;
  text-align: center;
  white-space: nowrap;
  background-color: #20a8d8;
  transition: width 0.6s ease;
}
@media (prefers-reduced-motion: reduce) {
  .progress-bar {
    transition: none;
  }
}
.progress-bar-striped {
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  background-size: 1rem 1rem;
}
.progress-bar-animated {
  -webkit-animation: progress-bar-stripes 1s linear infinite;
          animation: progress-bar-stripes 1s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .progress-bar-animated {
    -webkit-animation: none;
            animation: none;
  }
}
.media {
  display: flex;
  align-items: flex-start;
}
.media-body {
  flex: 1;
}
.list-group {
  display: flex;
  flex-direction: column;
  padding-left: 0;
  margin-bottom: 0;
}
.list-group-item-action {
  width: 100%;
  color: #5c6873;
  text-align: inherit;
}
.list-group-item-action:hover, .list-group-item-action:focus {
  z-index: 1;
  color: #5c6873;
  text-decoration: none;
  background-color: #f0f3f5;
}
.list-group-item-action:active {
  color: #23282c;
  background-color: #e4e7ea;
}
.list-group-item {
  position: relative;
  display: block;
  padding: 0.75rem 1.25rem;
  margin-bottom: -1px;
  background-color: #fff;
  border: 1px solid rgba(0, 0, 0, 0.125);
}
.list-group-item:first-child {
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
}
.list-group-item:last-child {
  margin-bottom: 0;
  border-bottom-right-radius: 0.25rem;
  border-bottom-left-radius: 0.25rem;
}
.list-group-item.disabled, .list-group-item:disabled {
  color: #73818f;
  pointer-events: none;
  background-color: #fff;
}
.list-group-item.active {
  z-index: 2;
  color: #fff;
  background-color: #20a8d8;
  border-color: #20a8d8;
}
.list-group-horizontal {
  flex-direction: row;
}
.list-group-horizontal .list-group-item {
  margin-right: -1px;
  margin-bottom: 0;
}
.list-group-horizontal .list-group-item:first-child {
  border-top-left-radius: 0.25rem;
  border-bottom-left-radius: 0.25rem;
  border-top-right-radius: 0;
}
.list-group-horizontal .list-group-item:last-child {
  margin-right: 0;
  border-top-right-radius: 0.25rem;
  border-bottom-right-radius: 0.25rem;
  border-bottom-left-radius: 0;
}
@media (min-width: 576px) {
  .list-group-horizontal-sm {
    flex-direction: row;
  }
  .list-group-horizontal-sm .list-group-item {
    margin-right: -1px;
    margin-bottom: 0;
  }
  .list-group-horizontal-sm .list-group-item:first-child {
    border-top-left-radius: 0.25rem;
    border-bottom-left-radius: 0.25rem;
    border-top-right-radius: 0;
  }
  .list-group-horizontal-sm .list-group-item:last-child {
    margin-right: 0;
    border-top-right-radius: 0.25rem;
    border-bottom-right-radius: 0.25rem;
    border-bottom-left-radius: 0;
  }
}
@media (min-width: 768px) {
  .list-group-horizontal-md {
    flex-direction: row;
  }
  .list-group-horizontal-md .list-group-item {
    margin-right: -1px;
    margin-bottom: 0;
  }
  .list-group-horizontal-md .list-group-item:first-child {
    border-top-left-radius: 0.25rem;
    border-bottom-left-radius: 0.25rem;
    border-top-right-radius: 0;
  }
  .list-group-horizontal-md .list-group-item:last-child {
    margin-right: 0;
    border-top-right-radius: 0.25rem;
    border-bottom-right-radius: 0.25rem;
    border-bottom-left-radius: 0;
  }
}
@media (min-width: 992px) {
  .list-group-horizontal-lg {
    flex-direction: row;
  }
  .list-group-horizontal-lg .list-group-item {
    margin-right: -1px;
    margin-bottom: 0;
  }
  .list-group-horizontal-lg .list-group-item:first-child {
    border-top-left-radius: 0.25rem;
    border-bottom-left-radius: 0.25rem;
    border-top-right-radius: 0;
  }
  .list-group-horizontal-lg .list-group-item:last-child {
    margin-right: 0;
    border-top-right-radius: 0.25rem;
    border-bottom-right-radius: 0.25rem;
    border-bottom-left-radius: 0;
  }
}
@media (min-width: 1200px) {
  .list-group-horizontal-xl {
    flex-direction: row;
  }
  .list-group-horizontal-xl .list-group-item {
    margin-right: -1px;
    margin-bottom: 0;
  }
  .list-group-horizontal-xl .list-group-item:first-child {
    border-top-left-radius: 0.25rem;
    border-bottom-left-radius: 0.25rem;
    border-top-right-radius: 0;
  }
  .list-group-horizontal-xl .list-group-item:last-child {
    margin-right: 0;
    border-top-right-radius: 0.25rem;
    border-bottom-right-radius: 0.25rem;
    border-bottom-left-radius: 0;
  }
}
.list-group-flush .list-group-item {
  border-right: 0;
  border-left: 0;
  border-radius: 0;
}
.list-group-flush .list-group-item:last-child {
  margin-bottom: -1px;
}
.list-group-flush:first-child .list-group-item:first-child {
  border-top: 0;
}
.list-group-flush:last-child .list-group-item:last-child {
  margin-bottom: 0;
  border-bottom: 0;
}
.list-group-item-primary {
  color: #115770;
  background-color: #c1e7f4;
}
.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {
  color: #115770;
  background-color: #abdff0;
}
.list-group-item-primary.list-group-item-action.active {
  color: #fff;
  background-color: #115770;
  border-color: #115770;
}
.list-group-item-secondary {
  color: #686b6e;
  background-color: #f0f1f3;
}
.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {
  color: #686b6e;
  background-color: #e2e4e8;
}
.list-group-item-secondary.list-group-item-action.active {
  color: #fff;
  background-color: #686b6e;
  border-color: #686b6e;
}
.list-group-item-success {
  color: #28623c;
  background-color: #cdedd8;
}
.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {
  color: #28623c;
  background-color: #bae6c9;
}
.list-group-item-success.list-group-item-action.active {
  color: #fff;
  background-color: #28623c;
  border-color: #28623c;
}
.list-group-item-info {
  color: #336573;
  background-color: #d3eef6;
}
.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {
  color: #336573;
  background-color: #bee6f2;
}
.list-group-item-info.list-group-item-action.active {
  color: #fff;
  background-color: #336573;
  border-color: #336573;
}
.list-group-item-warning {
  color: #856404;
  background-color: #ffeeba;
}
.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {
  color: #856404;
  background-color: #ffe8a1;
}
.list-group-item-warning.list-group-item-action.active {
  color: #fff;
  background-color: #856404;
  border-color: #856404;
}
.list-group-item-danger {
  color: #813838;
  background-color: #fdd6d6;
}
.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {
  color: #813838;
  background-color: #fcbebe;
}
.list-group-item-danger.list-group-item-action.active {
  color: #fff;
  background-color: #813838;
  border-color: #813838;
}
.list-group-item-light {
  color: #7d7e7f;
  background-color: #fbfcfc;
}
.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {
  color: #7d7e7f;
  background-color: #ecf1f1;
}
.list-group-item-light.list-group-item-action.active {
  color: #fff;
  background-color: #7d7e7f;
  border-color: #7d7e7f;
}
.list-group-item-dark {
  color: #181c1e;
  background-color: #c5c6c8;
}
.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {
  color: #181c1e;
  background-color: #b8b9bc;
}
.list-group-item-dark.list-group-item-action.active {
  color: #fff;
  background-color: #181c1e;
  border-color: #181c1e;
}
.close {
  float: right;
  font-size: 1.3125rem;
  font-weight: 700;
  line-height: 1;
  color: #000;
  text-shadow: 0 1px 0 #fff;
  opacity: 0.5;
}
.close:hover {
  color: #000;
  text-decoration: none;
}
.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {
  opacity: 0.75;
}
button.close {
  padding: 0;
  background-color: transparent;
  border: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
a.close.disabled {
  pointer-events: none;
}
.toast {
  max-width: 350px;
  overflow: hidden;
  font-size: 0.875rem;
  background-color: rgba(255, 255, 255, 0.85);
  background-clip: padding-box;
  border: 1px solid rgba(0, 0, 0, 0.1);
  box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  opacity: 0;
  border-radius: 0.25rem;
}
.toast:not(:last-child) {
  margin-bottom: 0.75rem;
}
.toast.showing {
  opacity: 1;
}
.toast.show {
  display: block;
  opacity: 1;
}
.toast.hide {
  display: none;
}
.toast-header {
  display: flex;
  align-items: center;
  padding: 0.25rem 0.75rem;
  color: #73818f;
  background-color: rgba(255, 255, 255, 0.85);
  background-clip: padding-box;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}
.toast-body {
  padding: 0.75rem;
}
.modal-open {
  overflow: hidden;
}
.modal-open .modal {
  overflow-x: hidden;
  overflow-y: auto;
}
.modal {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1050;
  display: none;
  width: 100%;
  height: 100%;
  overflow: hidden;
  outline: 0;
}
.modal-dialog {
  position: relative;
  width: auto;
  margin: 0.5rem;
  pointer-events: none;
}
.modal.fade .modal-dialog {
  transition: transform 0.3s ease-out;
  transform: translate(0, -50px);
}
@media (prefers-reduced-motion: reduce) {
  .modal.fade .modal-dialog {
    transition: none;
  }
}
.modal.show .modal-dialog {
  transform: none;
}
.modal-dialog-scrollable {
  display: flex;
  max-height: calc(100% - 1rem);
}
.modal-dialog-scrollable .modal-content {
  max-height: calc(100vh - 1rem);
  overflow: hidden;
}
.modal-dialog-scrollable .modal-header,
.modal-dialog-scrollable .modal-footer {
  flex-shrink: 0;
}
.modal-dialog-scrollable .modal-body {
  overflow-y: auto;
}
.modal-dialog-centered {
  display: flex;
  align-items: center;
  min-height: calc(100% - 1rem);
}
.modal-dialog-centered::before {
  display: block;
  height: calc(100vh - 1rem);
  content: "";
}
.modal-dialog-centered.modal-dialog-scrollable {
  flex-direction: column;
  justify-content: center;
  height: 100%;
}
.modal-dialog-centered.modal-dialog-scrollable .modal-content {
  max-height: none;
}
.modal-dialog-centered.modal-dialog-scrollable::before {
  content: none;
}
.modal-content {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  pointer-events: auto;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 0.3rem;
  outline: 0;
}
.modal-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1040;
  width: 100vw;
  height: 100vh;
  background-color: #000;
}
.modal-backdrop.fade {
  opacity: 0;
}
.modal-backdrop.show {
  opacity: 0.5;
}
.modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 1rem 1rem;
  border-bottom: 1px solid #c8ced3;
  border-top-left-radius: 0.3rem;
  border-top-right-radius: 0.3rem;
}
.modal-header .close {
  padding: 1rem 1rem;
  margin: -1rem -1rem -1rem auto;
}
.modal-title {
  margin-bottom: 0;
  line-height: 1.5;
}
.modal-body {
  position: relative;
  flex: 1 1 auto;
  padding: 1rem;
}
.modal-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 1rem;
  border-top: 1px solid #c8ced3;
  border-bottom-right-radius: 0.3rem;
  border-bottom-left-radius: 0.3rem;
}
.modal-footer > :not(:first-child) {
  margin-left: 0.25rem;
}
.modal-footer > :not(:last-child) {
  margin-right: 0.25rem;
}
.modal-scrollbar-measure {
  position: absolute;
  top: -9999px;
  width: 50px;
  height: 50px;
  overflow: scroll;
}
@media (min-width: 576px) {
  .modal-dialog {
    max-width: 500px;
    margin: 1.75rem auto;
  }

  .modal-dialog-scrollable {
    max-height: calc(100% - 3.5rem);
  }
  .modal-dialog-scrollable .modal-content {
    max-height: calc(100vh - 3.5rem);
  }

  .modal-dialog-centered {
    min-height: calc(100% - 3.5rem);
  }
  .modal-dialog-centered::before {
    height: calc(100vh - 3.5rem);
  }

  .modal-sm {
    max-width: 300px;
  }
}
@media (min-width: 992px) {
  .modal-lg,
.modal-xl {
    max-width: 800px;
  }
}
@media (min-width: 1200px) {
  .modal-xl {
    max-width: 1140px;
  }
}
.tooltip {
  position: absolute;
  z-index: 1070;
  display: block;
  margin: 0;
  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-style: normal;
  font-weight: 400;
  line-height: 1.5;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  letter-spacing: normal;
  word-break: normal;
  word-spacing: normal;
  white-space: normal;
  line-break: auto;
  font-size: 0.765625rem;
  word-wrap: break-word;
  opacity: 0;
}
.tooltip.show {
  opacity: 0.9;
}
.tooltip .arrow {
  position: absolute;
  display: block;
  width: 0.8rem;
  height: 0.4rem;
}
.tooltip .arrow::before {
  position: absolute;
  content: "";
  border-color: transparent;
  border-style: solid;
}
.bs-tooltip-top, .bs-tooltip-auto[x-placement^=top] {
  padding: 0.4rem 0;
}
.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=top] .arrow {
  bottom: 0;
}
.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=top] .arrow::before {
  top: 0;
  border-width: 0.4rem 0.4rem 0;
  border-top-color: #000;
}
.bs-tooltip-right, .bs-tooltip-auto[x-placement^=right] {
  padding: 0 0.4rem;
}
.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=right] .arrow {
  left: 0;
  width: 0.4rem;
  height: 0.8rem;
}
.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=right] .arrow::before {
  right: 0;
  border-width: 0.4rem 0.4rem 0.4rem 0;
  border-right-color: #000;
}
.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=bottom] {
  padding: 0.4rem 0;
}
.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=bottom] .arrow {
  top: 0;
}
.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=bottom] .arrow::before {
  bottom: 0;
  border-width: 0 0.4rem 0.4rem;
  border-bottom-color: #000;
}
.bs-tooltip-left, .bs-tooltip-auto[x-placement^=left] {
  padding: 0 0.4rem;
}
.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=left] .arrow {
  right: 0;
  width: 0.4rem;
  height: 0.8rem;
}
.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=left] .arrow::before {
  left: 0;
  border-width: 0.4rem 0 0.4rem 0.4rem;
  border-left-color: #000;
}
.tooltip-inner {
  max-width: 200px;
  padding: 0.25rem 0.5rem;
  color: #fff;
  text-align: center;
  background-color: #000;
  border-radius: 0.25rem;
}
.popover {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1060;
  display: block;
  max-width: 276px;
  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-style: normal;
  font-weight: 400;
  line-height: 1.5;
  text-align: left;
  text-align: start;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  letter-spacing: normal;
  word-break: normal;
  word-spacing: normal;
  white-space: normal;
  line-break: auto;
  font-size: 0.765625rem;
  word-wrap: break-word;
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 0.3rem;
}
.popover .arrow {
  position: absolute;
  display: block;
  width: 1rem;
  height: 0.5rem;
  margin: 0 0.3rem;
}
.popover .arrow::before, .popover .arrow::after {
  position: absolute;
  display: block;
  content: "";
  border-color: transparent;
  border-style: solid;
}
.bs-popover-top, .bs-popover-auto[x-placement^=top] {
  margin-bottom: 0.5rem;
}
.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=top] > .arrow {
  bottom: calc((0.5rem + 1px) * -1);
}
.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=top] > .arrow::before {
  bottom: 0;
  border-width: 0.5rem 0.5rem 0;
  border-top-color: rgba(0, 0, 0, 0.25);
}
.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=top] > .arrow::after {
  bottom: 1px;
  border-width: 0.5rem 0.5rem 0;
  border-top-color: #fff;
}
.bs-popover-right, .bs-popover-auto[x-placement^=right] {
  margin-left: 0.5rem;
}
.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=right] > .arrow {
  left: calc((0.5rem + 1px) * -1);
  width: 0.5rem;
  height: 1rem;
  margin: 0.3rem 0;
}
.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=right] > .arrow::before {
  left: 0;
  border-width: 0.5rem 0.5rem 0.5rem 0;
  border-right-color: rgba(0, 0, 0, 0.25);
}
.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=right] > .arrow::after {
  left: 1px;
  border-width: 0.5rem 0.5rem 0.5rem 0;
  border-right-color: #fff;
}
.bs-popover-bottom, .bs-popover-auto[x-placement^=bottom] {
  margin-top: 0.5rem;
}
.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=bottom] > .arrow {
  top: calc((0.5rem + 1px) * -1);
}
.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=bottom] > .arrow::before {
  top: 0;
  border-width: 0 0.5rem 0.5rem 0.5rem;
  border-bottom-color: rgba(0, 0, 0, 0.25);
}
.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=bottom] > .arrow::after {
  top: 1px;
  border-width: 0 0.5rem 0.5rem 0.5rem;
  border-bottom-color: #fff;
}
.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=bottom] .popover-header::before {
  position: absolute;
  top: 0;
  left: 50%;
  display: block;
  width: 1rem;
  margin-left: -0.5rem;
  content: "";
  border-bottom: 1px solid #f7f7f7;
}
.bs-popover-left, .bs-popover-auto[x-placement^=left] {
  margin-right: 0.5rem;
}
.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=left] > .arrow {
  right: calc((0.5rem + 1px) * -1);
  width: 0.5rem;
  height: 1rem;
  margin: 0.3rem 0;
}
.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=left] > .arrow::before {
  right: 0;
  border-width: 0.5rem 0 0.5rem 0.5rem;
  border-left-color: rgba(0, 0, 0, 0.25);
}
.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=left] > .arrow::after {
  right: 1px;
  border-width: 0.5rem 0 0.5rem 0.5rem;
  border-left-color: #fff;
}
.popover-header {
  padding: 0.5rem 0.75rem;
  margin-bottom: 0;
  font-size: 0.875rem;
  background-color: #f7f7f7;
  border-bottom: 1px solid #ebebeb;
  border-top-left-radius: calc(0.3rem - 1px);
  border-top-right-radius: calc(0.3rem - 1px);
}
.popover-header:empty {
  display: none;
}
.popover-body {
  padding: 0.5rem 0.75rem;
  color: #23282c;
}
.carousel {
  position: relative;
}
.carousel.pointer-event {
  touch-action: pan-y;
}
.carousel-inner {
  position: relative;
  width: 100%;
  overflow: hidden;
}
.carousel-inner::after {
  display: block;
  clear: both;
  content: "";
}
.carousel-item {
  position: relative;
  display: none;
  float: left;
  width: 100%;
  margin-right: -100%;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  transition: transform 0.6s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .carousel-item {
    transition: none;
  }
}
.carousel-item.active,
.carousel-item-next,
.carousel-item-prev {
  display: block;
}
.carousel-item-next:not(.carousel-item-left),
.active.carousel-item-right {
  transform: translateX(100%);
}
.carousel-item-prev:not(.carousel-item-right),
.active.carousel-item-left {
  transform: translateX(-100%);
}
.carousel-fade .carousel-item {
  opacity: 0;
  transition-property: opacity;
  transform: none;
}
.carousel-fade .carousel-item.active,
.carousel-fade .carousel-item-next.carousel-item-left,
.carousel-fade .carousel-item-prev.carousel-item-right {
  z-index: 1;
  opacity: 1;
}
.carousel-fade .active.carousel-item-left,
.carousel-fade .active.carousel-item-right {
  z-index: 0;
  opacity: 0;
  transition: 0s 0.6s opacity;
}
@media (prefers-reduced-motion: reduce) {
  .carousel-fade .active.carousel-item-left,
.carousel-fade .active.carousel-item-right {
    transition: none;
  }
}
.carousel-control-prev,
.carousel-control-next {
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 15%;
  color: #fff;
  text-align: center;
  opacity: 0.5;
  transition: opacity 0.15s ease;
}
@media (prefers-reduced-motion: reduce) {
  .carousel-control-prev,
.carousel-control-next {
    transition: none;
  }
}
.carousel-control-prev:hover, .carousel-control-prev:focus,
.carousel-control-next:hover,
.carousel-control-next:focus {
  color: #fff;
  text-decoration: none;
  outline: 0;
  opacity: 0.9;
}
.carousel-control-prev {
  left: 0;
}
.carousel-control-next {
  right: 0;
}
.carousel-control-prev-icon,
.carousel-control-next-icon {
  display: inline-block;
  width: 20px;
  height: 20px;
  background: no-repeat 50%/100% 100%;
}
.carousel-control-prev-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e");
}
.carousel-control-next-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e");
}
.carousel-indicators {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 15;
  display: flex;
  justify-content: center;
  padding-left: 0;
  margin-right: 15%;
  margin-left: 15%;
  list-style: none;
}
.carousel-indicators li {
  box-sizing: content-box;
  flex: 0 1 auto;
  width: 30px;
  height: 3px;
  margin-right: 3px;
  margin-left: 3px;
  text-indent: -999px;
  cursor: pointer;
  background-color: #fff;
  background-clip: padding-box;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  opacity: 0.5;
  transition: opacity 0.6s ease;
}
@media (prefers-reduced-motion: reduce) {
  .carousel-indicators li {
    transition: none;
  }
}
.carousel-indicators .active {
  opacity: 1;
}
.carousel-caption {
  position: absolute;
  right: 15%;
  bottom: 20px;
  left: 15%;
  z-index: 10;
  padding-top: 20px;
  padding-bottom: 20px;
  color: #fff;
  text-align: center;
}
@-webkit-keyframes spinner-border {
  to {
    transform: rotate(360deg);
  }
}
@keyframes spinner-border {
  to {
    transform: rotate(360deg);
  }
}
.spinner-border {
  display: inline-block;
  width: 2rem;
  height: 2rem;
  vertical-align: text-bottom;
  border: 0.25em solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  -webkit-animation: spinner-border 0.75s linear infinite;
          animation: spinner-border 0.75s linear infinite;
}
.spinner-border-sm {
  width: 1rem;
  height: 1rem;
  border-width: 0.2em;
}
@-webkit-keyframes spinner-grow {
  0% {
    transform: scale(0);
  }
  50% {
    opacity: 1;
  }
}
@keyframes spinner-grow {
  0% {
    transform: scale(0);
  }
  50% {
    opacity: 1;
  }
}
.spinner-grow {
  display: inline-block;
  width: 2rem;
  height: 2rem;
  vertical-align: text-bottom;
  background-color: currentColor;
  border-radius: 50%;
  opacity: 0;
  -webkit-animation: spinner-grow 0.75s linear infinite;
          animation: spinner-grow 0.75s linear infinite;
}
.spinner-grow-sm {
  width: 1rem;
  height: 1rem;
}
.align-baseline {
  vertical-align: baseline !important;
}
.align-top {
  vertical-align: top !important;
}
.align-middle {
  vertical-align: middle !important;
}
.align-bottom {
  vertical-align: bottom !important;
}
.align-text-bottom {
  vertical-align: text-bottom !important;
}
.align-text-top {
  vertical-align: text-top !important;
}
.bg-primary {
  background-color: #20a8d8 !important;
}
a.bg-primary:hover, a.bg-primary:focus,
button.bg-primary:hover,
button.bg-primary:focus {
  background-color: #1985ac !important;
}
.bg-secondary {
  background-color: #c8ced3 !important;
}
a.bg-secondary:hover, a.bg-secondary:focus,
button.bg-secondary:hover,
button.bg-secondary:focus {
  background-color: #acb5bc !important;
}
.bg-success {
  background-color: #4dbd74 !important;
}
a.bg-success:hover, a.bg-success:focus,
button.bg-success:hover,
button.bg-success:focus {
  background-color: #3a9d5d !important;
}
.bg-info {
  background-color: #63c2de !important;
}
a.bg-info:hover, a.bg-info:focus,
button.bg-info:hover,
button.bg-info:focus {
  background-color: #39b2d5 !important;
}
.bg-warning {
  background-color: #ffc107 !important;
}
a.bg-warning:hover, a.bg-warning:focus,
button.bg-warning:hover,
button.bg-warning:focus {
  background-color: #d39e00 !important;
}
.bg-danger {
  background-color: #f86c6b !important;
}
a.bg-danger:hover, a.bg-danger:focus,
button.bg-danger:hover,
button.bg-danger:focus {
  background-color: #f63c3a !important;
}
.bg-light {
  background-color: #f0f3f5 !important;
}
a.bg-light:hover, a.bg-light:focus,
button.bg-light:hover,
button.bg-light:focus {
  background-color: #d1dbe1 !important;
}
.bg-dark {
  background-color: #2f353a !important;
}
a.bg-dark:hover, a.bg-dark:focus,
button.bg-dark:hover,
button.bg-dark:focus {
  background-color: #181b1e !important;
}
.bg-white {
  background-color: #fff !important;
}
.bg-transparent {
  background-color: transparent !important;
}
.border {
  border: 1px solid #c8ced3 !important;
}
.border-top {
  border-top: 1px solid #c8ced3 !important;
}
.border-right {
  border-right: 1px solid #c8ced3 !important;
}
.border-bottom {
  border-bottom: 1px solid #c8ced3 !important;
}
.border-left {
  border-left: 1px solid #c8ced3 !important;
}
.border-0 {
  border: 0 !important;
}
.border-top-0 {
  border-top: 0 !important;
}
.border-right-0 {
  border-right: 0 !important;
}
.border-bottom-0 {
  border-bottom: 0 !important;
}
.border-left-0 {
  border-left: 0 !important;
}
.border-primary {
  border-color: #20a8d8 !important;
}
.border-secondary {
  border-color: #c8ced3 !important;
}
.border-success {
  border-color: #4dbd74 !important;
}
.border-info {
  border-color: #63c2de !important;
}
.border-warning {
  border-color: #ffc107 !important;
}
.border-danger {
  border-color: #f86c6b !important;
}
.border-light {
  border-color: #f0f3f5 !important;
}
.border-dark {
  border-color: #2f353a !important;
}
.border-white {
  border-color: #fff !important;
}
.rounded-sm {
  border-radius: 0.2rem !important;
}
.rounded {
  border-radius: 0.25rem !important;
}
.rounded-top {
  border-top-left-radius: 0.25rem !important;
  border-top-right-radius: 0.25rem !important;
}
.rounded-right {
  border-top-right-radius: 0.25rem !important;
  border-bottom-right-radius: 0.25rem !important;
}
.rounded-bottom {
  border-bottom-right-radius: 0.25rem !important;
  border-bottom-left-radius: 0.25rem !important;
}
.rounded-left {
  border-top-left-radius: 0.25rem !important;
  border-bottom-left-radius: 0.25rem !important;
}
.rounded-lg {
  border-radius: 0.3rem !important;
}
.rounded-circle {
  border-radius: 50% !important;
}
.rounded-pill {
  border-radius: 50rem !important;
}
.rounded-0 {
  border-radius: 0 !important;
}
.clearfix::after {
  display: block;
  clear: both;
  content: "";
}
.d-none {
  display: none !important;
}
.d-inline {
  display: inline !important;
}
.d-inline-block {
  display: inline-block !important;
}
.d-block {
  display: block !important;
}
.d-table {
  display: table !important;
}
.d-table-row {
  display: table-row !important;
}
.d-table-cell {
  display: table-cell !important;
}
.d-flex {
  display: flex !important;
}
.d-inline-flex {
  display: inline-flex !important;
}
@media (min-width: 576px) {
  .d-sm-none {
    display: none !important;
  }

  .d-sm-inline {
    display: inline !important;
  }

  .d-sm-inline-block {
    display: inline-block !important;
  }

  .d-sm-block {
    display: block !important;
  }

  .d-sm-table {
    display: table !important;
  }

  .d-sm-table-row {
    display: table-row !important;
  }

  .d-sm-table-cell {
    display: table-cell !important;
  }

  .d-sm-flex {
    display: flex !important;
  }

  .d-sm-inline-flex {
    display: inline-flex !important;
  }
}
@media (min-width: 768px) {
  .d-md-none {
    display: none !important;
  }

  .d-md-inline {
    display: inline !important;
  }

  .d-md-inline-block {
    display: inline-block !important;
  }

  .d-md-block {
    display: block !important;
  }

  .d-md-table {
    display: table !important;
  }

  .d-md-table-row {
    display: table-row !important;
  }

  .d-md-table-cell {
    display: table-cell !important;
  }

  .d-md-flex {
    display: flex !important;
  }

  .d-md-inline-flex {
    display: inline-flex !important;
  }
}
@media (min-width: 992px) {
  .d-lg-none {
    display: none !important;
  }

  .d-lg-inline {
    display: inline !important;
  }

  .d-lg-inline-block {
    display: inline-block !important;
  }

  .d-lg-block {
    display: block !important;
  }

  .d-lg-table {
    display: table !important;
  }

  .d-lg-table-row {
    display: table-row !important;
  }

  .d-lg-table-cell {
    display: table-cell !important;
  }

  .d-lg-flex {
    display: flex !important;
  }

  .d-lg-inline-flex {
    display: inline-flex !important;
  }
}
@media (min-width: 1200px) {
  .d-xl-none {
    display: none !important;
  }

  .d-xl-inline {
    display: inline !important;
  }

  .d-xl-inline-block {
    display: inline-block !important;
  }

  .d-xl-block {
    display: block !important;
  }

  .d-xl-table {
    display: table !important;
  }

  .d-xl-table-row {
    display: table-row !important;
  }

  .d-xl-table-cell {
    display: table-cell !important;
  }

  .d-xl-flex {
    display: flex !important;
  }

  .d-xl-inline-flex {
    display: inline-flex !important;
  }
}
@media print {
  .d-print-none {
    display: none !important;
  }

  .d-print-inline {
    display: inline !important;
  }

  .d-print-inline-block {
    display: inline-block !important;
  }

  .d-print-block {
    display: block !important;
  }

  .d-print-table {
    display: table !important;
  }

  .d-print-table-row {
    display: table-row !important;
  }

  .d-print-table-cell {
    display: table-cell !important;
  }

  .d-print-flex {
    display: flex !important;
  }

  .d-print-inline-flex {
    display: inline-flex !important;
  }
}
.embed-responsive {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  overflow: hidden;
}
.embed-responsive::before {
  display: block;
  content: "";
}
.embed-responsive .embed-responsive-item,
.embed-responsive iframe,
.embed-responsive embed,
.embed-responsive object,
.embed-responsive video {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.embed-responsive-21by9::before {
  padding-top: 42.8571428571%;
}
.embed-responsive-16by9::before {
  padding-top: 56.25%;
}
.embed-responsive-4by3::before {
  padding-top: 75%;
}
.embed-responsive-1by1::before {
  padding-top: 100%;
}
.embed-responsive-21by9::before {
  padding-top: 42.8571428571%;
}
.embed-responsive-16by9::before {
  padding-top: 56.25%;
}
.embed-responsive-4by3::before {
  padding-top: 75%;
}
.embed-responsive-1by1::before {
  padding-top: 100%;
}
.flex-row {
  flex-direction: row !important;
}
.flex-column {
  flex-direction: column !important;
}
.flex-row-reverse {
  flex-direction: row-reverse !important;
}
.flex-column-reverse {
  flex-direction: column-reverse !important;
}
.flex-wrap {
  flex-wrap: wrap !important;
}
.flex-nowrap {
  flex-wrap: nowrap !important;
}
.flex-wrap-reverse {
  flex-wrap: wrap-reverse !important;
}
.flex-fill {
  flex: 1 1 auto !important;
}
.flex-grow-0 {
  flex-grow: 0 !important;
}
.flex-grow-1 {
  flex-grow: 1 !important;
}
.flex-shrink-0 {
  flex-shrink: 0 !important;
}
.flex-shrink-1 {
  flex-shrink: 1 !important;
}
.justify-content-start {
  justify-content: flex-start !important;
}
.justify-content-end {
  justify-content: flex-end !important;
}
.justify-content-center {
  justify-content: center !important;
}
.justify-content-between {
  justify-content: space-between !important;
}
.justify-content-around {
  justify-content: space-around !important;
}
.align-items-start {
  align-items: flex-start !important;
}
.align-items-end {
  align-items: flex-end !important;
}
.align-items-center {
  align-items: center !important;
}
.align-items-baseline {
  align-items: baseline !important;
}
.align-items-stretch {
  align-items: stretch !important;
}
.align-content-start {
  align-content: flex-start !important;
}
.align-content-end {
  align-content: flex-end !important;
}
.align-content-center {
  align-content: center !important;
}
.align-content-between {
  align-content: space-between !important;
}
.align-content-around {
  align-content: space-around !important;
}
.align-content-stretch {
  align-content: stretch !important;
}
.align-self-auto {
  align-self: auto !important;
}
.align-self-start {
  align-self: flex-start !important;
}
.align-self-end {
  align-self: flex-end !important;
}
.align-self-center {
  align-self: center !important;
}
.align-self-baseline {
  align-self: baseline !important;
}
.align-self-stretch {
  align-self: stretch !important;
}
@media (min-width: 576px) {
  .flex-sm-row {
    flex-direction: row !important;
  }

  .flex-sm-column {
    flex-direction: column !important;
  }

  .flex-sm-row-reverse {
    flex-direction: row-reverse !important;
  }

  .flex-sm-column-reverse {
    flex-direction: column-reverse !important;
  }

  .flex-sm-wrap {
    flex-wrap: wrap !important;
  }

  .flex-sm-nowrap {
    flex-wrap: nowrap !important;
  }

  .flex-sm-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }

  .flex-sm-fill {
    flex: 1 1 auto !important;
  }

  .flex-sm-grow-0 {
    flex-grow: 0 !important;
  }

  .flex-sm-grow-1 {
    flex-grow: 1 !important;
  }

  .flex-sm-shrink-0 {
    flex-shrink: 0 !important;
  }

  .flex-sm-shrink-1 {
    flex-shrink: 1 !important;
  }

  .justify-content-sm-start {
    justify-content: flex-start !important;
  }

  .justify-content-sm-end {
    justify-content: flex-end !important;
  }

  .justify-content-sm-center {
    justify-content: center !important;
  }

  .justify-content-sm-between {
    justify-content: space-between !important;
  }

  .justify-content-sm-around {
    justify-content: space-around !important;
  }

  .align-items-sm-start {
    align-items: flex-start !important;
  }

  .align-items-sm-end {
    align-items: flex-end !important;
  }

  .align-items-sm-center {
    align-items: center !important;
  }

  .align-items-sm-baseline {
    align-items: baseline !important;
  }

  .align-items-sm-stretch {
    align-items: stretch !important;
  }

  .align-content-sm-start {
    align-content: flex-start !important;
  }

  .align-content-sm-end {
    align-content: flex-end !important;
  }

  .align-content-sm-center {
    align-content: center !important;
  }

  .align-content-sm-between {
    align-content: space-between !important;
  }

  .align-content-sm-around {
    align-content: space-around !important;
  }

  .align-content-sm-stretch {
    align-content: stretch !important;
  }

  .align-self-sm-auto {
    align-self: auto !important;
  }

  .align-self-sm-start {
    align-self: flex-start !important;
  }

  .align-self-sm-end {
    align-self: flex-end !important;
  }

  .align-self-sm-center {
    align-self: center !important;
  }

  .align-self-sm-baseline {
    align-self: baseline !important;
  }

  .align-self-sm-stretch {
    align-self: stretch !important;
  }
}
@media (min-width: 768px) {
  .flex-md-row {
    flex-direction: row !important;
  }

  .flex-md-column {
    flex-direction: column !important;
  }

  .flex-md-row-reverse {
    flex-direction: row-reverse !important;
  }

  .flex-md-column-reverse {
    flex-direction: column-reverse !important;
  }

  .flex-md-wrap {
    flex-wrap: wrap !important;
  }

  .flex-md-nowrap {
    flex-wrap: nowrap !important;
  }

  .flex-md-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }

  .flex-md-fill {
    flex: 1 1 auto !important;
  }

  .flex-md-grow-0 {
    flex-grow: 0 !important;
  }

  .flex-md-grow-1 {
    flex-grow: 1 !important;
  }

  .flex-md-shrink-0 {
    flex-shrink: 0 !important;
  }

  .flex-md-shrink-1 {
    flex-shrink: 1 !important;
  }

  .justify-content-md-start {
    justify-content: flex-start !important;
  }

  .justify-content-md-end {
    justify-content: flex-end !important;
  }

  .justify-content-md-center {
    justify-content: center !important;
  }

  .justify-content-md-between {
    justify-content: space-between !important;
  }

  .justify-content-md-around {
    justify-content: space-around !important;
  }

  .align-items-md-start {
    align-items: flex-start !important;
  }

  .align-items-md-end {
    align-items: flex-end !important;
  }

  .align-items-md-center {
    align-items: center !important;
  }

  .align-items-md-baseline {
    align-items: baseline !important;
  }

  .align-items-md-stretch {
    align-items: stretch !important;
  }

  .align-content-md-start {
    align-content: flex-start !important;
  }

  .align-content-md-end {
    align-content: flex-end !important;
  }

  .align-content-md-center {
    align-content: center !important;
  }

  .align-content-md-between {
    align-content: space-between !important;
  }

  .align-content-md-around {
    align-content: space-around !important;
  }

  .align-content-md-stretch {
    align-content: stretch !important;
  }

  .align-self-md-auto {
    align-self: auto !important;
  }

  .align-self-md-start {
    align-self: flex-start !important;
  }

  .align-self-md-end {
    align-self: flex-end !important;
  }

  .align-self-md-center {
    align-self: center !important;
  }

  .align-self-md-baseline {
    align-self: baseline !important;
  }

  .align-self-md-stretch {
    align-self: stretch !important;
  }
}
@media (min-width: 992px) {
  .flex-lg-row {
    flex-direction: row !important;
  }

  .flex-lg-column {
    flex-direction: column !important;
  }

  .flex-lg-row-reverse {
    flex-direction: row-reverse !important;
  }

  .flex-lg-column-reverse {
    flex-direction: column-reverse !important;
  }

  .flex-lg-wrap {
    flex-wrap: wrap !important;
  }

  .flex-lg-nowrap {
    flex-wrap: nowrap !important;
  }

  .flex-lg-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }

  .flex-lg-fill {
    flex: 1 1 auto !important;
  }

  .flex-lg-grow-0 {
    flex-grow: 0 !important;
  }

  .flex-lg-grow-1 {
    flex-grow: 1 !important;
  }

  .flex-lg-shrink-0 {
    flex-shrink: 0 !important;
  }

  .flex-lg-shrink-1 {
    flex-shrink: 1 !important;
  }

  .justify-content-lg-start {
    justify-content: flex-start !important;
  }

  .justify-content-lg-end {
    justify-content: flex-end !important;
  }

  .justify-content-lg-center {
    justify-content: center !important;
  }

  .justify-content-lg-between {
    justify-content: space-between !important;
  }

  .justify-content-lg-around {
    justify-content: space-around !important;
  }

  .align-items-lg-start {
    align-items: flex-start !important;
  }

  .align-items-lg-end {
    align-items: flex-end !important;
  }

  .align-items-lg-center {
    align-items: center !important;
  }

  .align-items-lg-baseline {
    align-items: baseline !important;
  }

  .align-items-lg-stretch {
    align-items: stretch !important;
  }

  .align-content-lg-start {
    align-content: flex-start !important;
  }

  .align-content-lg-end {
    align-content: flex-end !important;
  }

  .align-content-lg-center {
    align-content: center !important;
  }

  .align-content-lg-between {
    align-content: space-between !important;
  }

  .align-content-lg-around {
    align-content: space-around !important;
  }

  .align-content-lg-stretch {
    align-content: stretch !important;
  }

  .align-self-lg-auto {
    align-self: auto !important;
  }

  .align-self-lg-start {
    align-self: flex-start !important;
  }

  .align-self-lg-end {
    align-self: flex-end !important;
  }

  .align-self-lg-center {
    align-self: center !important;
  }

  .align-self-lg-baseline {
    align-self: baseline !important;
  }

  .align-self-lg-stretch {
    align-self: stretch !important;
  }
}
@media (min-width: 1200px) {
  .flex-xl-row {
    flex-direction: row !important;
  }

  .flex-xl-column {
    flex-direction: column !important;
  }

  .flex-xl-row-reverse {
    flex-direction: row-reverse !important;
  }

  .flex-xl-column-reverse {
    flex-direction: column-reverse !important;
  }

  .flex-xl-wrap {
    flex-wrap: wrap !important;
  }

  .flex-xl-nowrap {
    flex-wrap: nowrap !important;
  }

  .flex-xl-wrap-reverse {
    flex-wrap: wrap-reverse !important;
  }

  .flex-xl-fill {
    flex: 1 1 auto !important;
  }

  .flex-xl-grow-0 {
    flex-grow: 0 !important;
  }

  .flex-xl-grow-1 {
    flex-grow: 1 !important;
  }

  .flex-xl-shrink-0 {
    flex-shrink: 0 !important;
  }

  .flex-xl-shrink-1 {
    flex-shrink: 1 !important;
  }

  .justify-content-xl-start {
    justify-content: flex-start !important;
  }

  .justify-content-xl-end {
    justify-content: flex-end !important;
  }

  .justify-content-xl-center {
    justify-content: center !important;
  }

  .justify-content-xl-between {
    justify-content: space-between !important;
  }

  .justify-content-xl-around {
    justify-content: space-around !important;
  }

  .align-items-xl-start {
    align-items: flex-start !important;
  }

  .align-items-xl-end {
    align-items: flex-end !important;
  }

  .align-items-xl-center {
    align-items: center !important;
  }

  .align-items-xl-baseline {
    align-items: baseline !important;
  }

  .align-items-xl-stretch {
    align-items: stretch !important;
  }

  .align-content-xl-start {
    align-content: flex-start !important;
  }

  .align-content-xl-end {
    align-content: flex-end !important;
  }

  .align-content-xl-center {
    align-content: center !important;
  }

  .align-content-xl-between {
    align-content: space-between !important;
  }

  .align-content-xl-around {
    align-content: space-around !important;
  }

  .align-content-xl-stretch {
    align-content: stretch !important;
  }

  .align-self-xl-auto {
    align-self: auto !important;
  }

  .align-self-xl-start {
    align-self: flex-start !important;
  }

  .align-self-xl-end {
    align-self: flex-end !important;
  }

  .align-self-xl-center {
    align-self: center !important;
  }

  .align-self-xl-baseline {
    align-self: baseline !important;
  }

  .align-self-xl-stretch {
    align-self: stretch !important;
  }
}
.float-left {
  float: left !important;
}
.float-right {
  float: right !important;
}
.float-none {
  float: none !important;
}
@media (min-width: 576px) {
  .float-sm-left {
    float: left !important;
  }

  .float-sm-right {
    float: right !important;
  }

  .float-sm-none {
    float: none !important;
  }
}
@media (min-width: 768px) {
  .float-md-left {
    float: left !important;
  }

  .float-md-right {
    float: right !important;
  }

  .float-md-none {
    float: none !important;
  }
}
@media (min-width: 992px) {
  .float-lg-left {
    float: left !important;
  }

  .float-lg-right {
    float: right !important;
  }

  .float-lg-none {
    float: none !important;
  }
}
@media (min-width: 1200px) {
  .float-xl-left {
    float: left !important;
  }

  .float-xl-right {
    float: right !important;
  }

  .float-xl-none {
    float: none !important;
  }
}
.overflow-auto {
  overflow: auto !important;
}
.overflow-hidden {
  overflow: hidden !important;
}
.position-static {
  position: static !important;
}
.position-relative {
  position: relative !important;
}
.position-absolute {
  position: absolute !important;
}
.position-fixed {
  position: fixed !important;
}
.position-sticky {
  position: sticky !important;
}
.fixed-top {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1030;
}
.fixed-bottom {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1030;
}
@supports (position: sticky) {
  .sticky-top {
    position: sticky;
    top: 0;
    z-index: 1020;
  }
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.sr-only-focusable:active, .sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  overflow: visible;
  clip: auto;
  white-space: normal;
}
.shadow-sm {
  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
}
.shadow {
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
}
.shadow-lg {
  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;
}
.shadow-none {
  box-shadow: none !important;
}
.w-25 {
  width: 25% !important;
}
.w-50 {
  width: 50% !important;
}
.w-75 {
  width: 75% !important;
}
.w-100 {
  width: 100% !important;
}
.w-auto {
  width: auto !important;
}
.h-25 {
  height: 25% !important;
}
.h-50 {
  height: 50% !important;
}
.h-75 {
  height: 75% !important;
}
.h-100 {
  height: 100% !important;
}
.h-auto {
  height: auto !important;
}
.mw-100 {
  max-width: 100% !important;
}
.mh-100 {
  max-height: 100% !important;
}
.min-vw-100 {
  min-width: 100vw !important;
}
.min-vh-100 {
  min-height: 100vh !important;
}
.vw-100 {
  width: 100vw !important;
}
.vh-100 {
  height: 100vh !important;
}
.stretched-link::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  pointer-events: auto;
  content: "";
  background-color: rgba(0, 0, 0, 0);
}
.m-0 {
  margin: 0 !important;
}
.mt-0,
.my-0 {
  margin-top: 0 !important;
}
.mr-0,
.mx-0 {
  margin-right: 0 !important;
}
.mb-0,
.my-0 {
  margin-bottom: 0 !important;
}
.ml-0,
.mx-0 {
  margin-left: 0 !important;
}
.m-1 {
  margin: 0.25rem !important;
}
.mt-1,
.my-1 {
  margin-top: 0.25rem !important;
}
.mr-1,
.mx-1 {
  margin-right: 0.25rem !important;
}
.mb-1,
.my-1 {
  margin-bottom: 0.25rem !important;
}
.ml-1,
.mx-1 {
  margin-left: 0.25rem !important;
}
.m-2 {
  margin: 0.5rem !important;
}
.mt-2,
.my-2 {
  margin-top: 0.5rem !important;
}
.mr-2,
.mx-2 {
  margin-right: 0.5rem !important;
}
.mb-2,
.my-2 {
  margin-bottom: 0.5rem !important;
}
.ml-2,
.mx-2 {
  margin-left: 0.5rem !important;
}
.m-3 {
  margin: 1rem !important;
}
.mt-3,
.my-3 {
  margin-top: 1rem !important;
}
.mr-3,
.mx-3 {
  margin-right: 1rem !important;
}
.mb-3,
.my-3 {
  margin-bottom: 1rem !important;
}
.ml-3,
.mx-3 {
  margin-left: 1rem !important;
}
.m-4 {
  margin: 1.5rem !important;
}
.mt-4,
.my-4 {
  margin-top: 1.5rem !important;
}
.mr-4,
.mx-4 {
  margin-right: 1.5rem !important;
}
.mb-4,
.my-4 {
  margin-bottom: 1.5rem !important;
}
.ml-4,
.mx-4 {
  margin-left: 1.5rem !important;
}
.m-5 {
  margin: 3rem !important;
}
.mt-5,
.my-5 {
  margin-top: 3rem !important;
}
.mr-5,
.mx-5 {
  margin-right: 3rem !important;
}
.mb-5,
.my-5 {
  margin-bottom: 3rem !important;
}
.ml-5,
.mx-5 {
  margin-left: 3rem !important;
}
.p-0 {
  padding: 0 !important;
}
.pt-0,
.py-0 {
  padding-top: 0 !important;
}
.pr-0,
.px-0 {
  padding-right: 0 !important;
}
.pb-0,
.py-0 {
  padding-bottom: 0 !important;
}
.pl-0,
.px-0 {
  padding-left: 0 !important;
}
.p-1 {
  padding: 0.25rem !important;
}
.pt-1,
.py-1 {
  padding-top: 0.25rem !important;
}
.pr-1,
.px-1 {
  padding-right: 0.25rem !important;
}
.pb-1,
.py-1 {
  padding-bottom: 0.25rem !important;
}
.pl-1,
.px-1 {
  padding-left: 0.25rem !important;
}
.p-2 {
  padding: 0.5rem !important;
}
.pt-2,
.py-2 {
  padding-top: 0.5rem !important;
}
.pr-2,
.px-2 {
  padding-right: 0.5rem !important;
}
.pb-2,
.py-2 {
  padding-bottom: 0.5rem !important;
}
.pl-2,
.px-2 {
  padding-left: 0.5rem !important;
}
.p-3 {
  padding: 1rem !important;
}
.pt-3,
.py-3 {
  padding-top: 1rem !important;
}
.pr-3,
.px-3 {
  padding-right: 1rem !important;
}
.pb-3,
.py-3 {
  padding-bottom: 1rem !important;
}
.pl-3,
.px-3 {
  padding-left: 1rem !important;
}
.p-4 {
  padding: 1.5rem !important;
}
.pt-4,
.py-4 {
  padding-top: 1.5rem !important;
}
.pr-4,
.px-4 {
  padding-right: 1.5rem !important;
}
.pb-4,
.py-4 {
  padding-bottom: 1.5rem !important;
}
.pl-4,
.px-4 {
  padding-left: 1.5rem !important;
}
.p-5 {
  padding: 3rem !important;
}
.pt-5,
.py-5 {
  padding-top: 3rem !important;
}
.pr-5,
.px-5 {
  padding-right: 3rem !important;
}
.pb-5,
.py-5 {
  padding-bottom: 3rem !important;
}
.pl-5,
.px-5 {
  padding-left: 3rem !important;
}
.m-n1 {
  margin: -0.25rem !important;
}
.mt-n1,
.my-n1 {
  margin-top: -0.25rem !important;
}
.mr-n1,
.mx-n1 {
  margin-right: -0.25rem !important;
}
.mb-n1,
.my-n1 {
  margin-bottom: -0.25rem !important;
}
.ml-n1,
.mx-n1 {
  margin-left: -0.25rem !important;
}
.m-n2 {
  margin: -0.5rem !important;
}
.mt-n2,
.my-n2 {
  margin-top: -0.5rem !important;
}
.mr-n2,
.mx-n2 {
  margin-right: -0.5rem !important;
}
.mb-n2,
.my-n2 {
  margin-bottom: -0.5rem !important;
}
.ml-n2,
.mx-n2 {
  margin-left: -0.5rem !important;
}
.m-n3 {
  margin: -1rem !important;
}
.mt-n3,
.my-n3 {
  margin-top: -1rem !important;
}
.mr-n3,
.mx-n3 {
  margin-right: -1rem !important;
}
.mb-n3,
.my-n3 {
  margin-bottom: -1rem !important;
}
.ml-n3,
.mx-n3 {
  margin-left: -1rem !important;
}
.m-n4 {
  margin: -1.5rem !important;
}
.mt-n4,
.my-n4 {
  margin-top: -1.5rem !important;
}
.mr-n4,
.mx-n4 {
  margin-right: -1.5rem !important;
}
.mb-n4,
.my-n4 {
  margin-bottom: -1.5rem !important;
}
.ml-n4,
.mx-n4 {
  margin-left: -1.5rem !important;
}
.m-n5 {
  margin: -3rem !important;
}
.mt-n5,
.my-n5 {
  margin-top: -3rem !important;
}
.mr-n5,
.mx-n5 {
  margin-right: -3rem !important;
}
.mb-n5,
.my-n5 {
  margin-bottom: -3rem !important;
}
.ml-n5,
.mx-n5 {
  margin-left: -3rem !important;
}
.m-auto {
  margin: auto !important;
}
.mt-auto,
.my-auto {
  margin-top: auto !important;
}
.mr-auto,
.mx-auto {
  margin-right: auto !important;
}
.mb-auto,
.my-auto {
  margin-bottom: auto !important;
}
.ml-auto,
.mx-auto {
  margin-left: auto !important;
}
@media (min-width: 576px) {
  .m-sm-0 {
    margin: 0 !important;
  }

  .mt-sm-0,
.my-sm-0 {
    margin-top: 0 !important;
  }

  .mr-sm-0,
.mx-sm-0 {
    margin-right: 0 !important;
  }

  .mb-sm-0,
.my-sm-0 {
    margin-bottom: 0 !important;
  }

  .ml-sm-0,
.mx-sm-0 {
    margin-left: 0 !important;
  }

  .m-sm-1 {
    margin: 0.25rem !important;
  }

  .mt-sm-1,
.my-sm-1 {
    margin-top: 0.25rem !important;
  }

  .mr-sm-1,
.mx-sm-1 {
    margin-right: 0.25rem !important;
  }

  .mb-sm-1,
.my-sm-1 {
    margin-bottom: 0.25rem !important;
  }

  .ml-sm-1,
.mx-sm-1 {
    margin-left: 0.25rem !important;
  }

  .m-sm-2 {
    margin: 0.5rem !important;
  }

  .mt-sm-2,
.my-sm-2 {
    margin-top: 0.5rem !important;
  }

  .mr-sm-2,
.mx-sm-2 {
    margin-right: 0.5rem !important;
  }

  .mb-sm-2,
.my-sm-2 {
    margin-bottom: 0.5rem !important;
  }

  .ml-sm-2,
.mx-sm-2 {
    margin-left: 0.5rem !important;
  }

  .m-sm-3 {
    margin: 1rem !important;
  }

  .mt-sm-3,
.my-sm-3 {
    margin-top: 1rem !important;
  }

  .mr-sm-3,
.mx-sm-3 {
    margin-right: 1rem !important;
  }

  .mb-sm-3,
.my-sm-3 {
    margin-bottom: 1rem !important;
  }

  .ml-sm-3,
.mx-sm-3 {
    margin-left: 1rem !important;
  }

  .m-sm-4 {
    margin: 1.5rem !important;
  }

  .mt-sm-4,
.my-sm-4 {
    margin-top: 1.5rem !important;
  }

  .mr-sm-4,
.mx-sm-4 {
    margin-right: 1.5rem !important;
  }

  .mb-sm-4,
.my-sm-4 {
    margin-bottom: 1.5rem !important;
  }

  .ml-sm-4,
.mx-sm-4 {
    margin-left: 1.5rem !important;
  }

  .m-sm-5 {
    margin: 3rem !important;
  }

  .mt-sm-5,
.my-sm-5 {
    margin-top: 3rem !important;
  }

  .mr-sm-5,
.mx-sm-5 {
    margin-right: 3rem !important;
  }

  .mb-sm-5,
.my-sm-5 {
    margin-bottom: 3rem !important;
  }

  .ml-sm-5,
.mx-sm-5 {
    margin-left: 3rem !important;
  }

  .p-sm-0 {
    padding: 0 !important;
  }

  .pt-sm-0,
.py-sm-0 {
    padding-top: 0 !important;
  }

  .pr-sm-0,
.px-sm-0 {
    padding-right: 0 !important;
  }

  .pb-sm-0,
.py-sm-0 {
    padding-bottom: 0 !important;
  }

  .pl-sm-0,
.px-sm-0 {
    padding-left: 0 !important;
  }

  .p-sm-1 {
    padding: 0.25rem !important;
  }

  .pt-sm-1,
.py-sm-1 {
    padding-top: 0.25rem !important;
  }

  .pr-sm-1,
.px-sm-1 {
    padding-right: 0.25rem !important;
  }

  .pb-sm-1,
.py-sm-1 {
    padding-bottom: 0.25rem !important;
  }

  .pl-sm-1,
.px-sm-1 {
    padding-left: 0.25rem !important;
  }

  .p-sm-2 {
    padding: 0.5rem !important;
  }

  .pt-sm-2,
.py-sm-2 {
    padding-top: 0.5rem !important;
  }

  .pr-sm-2,
.px-sm-2 {
    padding-right: 0.5rem !important;
  }

  .pb-sm-2,
.py-sm-2 {
    padding-bottom: 0.5rem !important;
  }

  .pl-sm-2,
.px-sm-2 {
    padding-left: 0.5rem !important;
  }

  .p-sm-3 {
    padding: 1rem !important;
  }

  .pt-sm-3,
.py-sm-3 {
    padding-top: 1rem !important;
  }

  .pr-sm-3,
.px-sm-3 {
    padding-right: 1rem !important;
  }

  .pb-sm-3,
.py-sm-3 {
    padding-bottom: 1rem !important;
  }

  .pl-sm-3,
.px-sm-3 {
    padding-left: 1rem !important;
  }

  .p-sm-4 {
    padding: 1.5rem !important;
  }

  .pt-sm-4,
.py-sm-4 {
    padding-top: 1.5rem !important;
  }

  .pr-sm-4,
.px-sm-4 {
    padding-right: 1.5rem !important;
  }

  .pb-sm-4,
.py-sm-4 {
    padding-bottom: 1.5rem !important;
  }

  .pl-sm-4,
.px-sm-4 {
    padding-left: 1.5rem !important;
  }

  .p-sm-5 {
    padding: 3rem !important;
  }

  .pt-sm-5,
.py-sm-5 {
    padding-top: 3rem !important;
  }

  .pr-sm-5,
.px-sm-5 {
    padding-right: 3rem !important;
  }

  .pb-sm-5,
.py-sm-5 {
    padding-bottom: 3rem !important;
  }

  .pl-sm-5,
.px-sm-5 {
    padding-left: 3rem !important;
  }

  .m-sm-n1 {
    margin: -0.25rem !important;
  }

  .mt-sm-n1,
.my-sm-n1 {
    margin-top: -0.25rem !important;
  }

  .mr-sm-n1,
.mx-sm-n1 {
    margin-right: -0.25rem !important;
  }

  .mb-sm-n1,
.my-sm-n1 {
    margin-bottom: -0.25rem !important;
  }

  .ml-sm-n1,
.mx-sm-n1 {
    margin-left: -0.25rem !important;
  }

  .m-sm-n2 {
    margin: -0.5rem !important;
  }

  .mt-sm-n2,
.my-sm-n2 {
    margin-top: -0.5rem !important;
  }

  .mr-sm-n2,
.mx-sm-n2 {
    margin-right: -0.5rem !important;
  }

  .mb-sm-n2,
.my-sm-n2 {
    margin-bottom: -0.5rem !important;
  }

  .ml-sm-n2,
.mx-sm-n2 {
    margin-left: -0.5rem !important;
  }

  .m-sm-n3 {
    margin: -1rem !important;
  }

  .mt-sm-n3,
.my-sm-n3 {
    margin-top: -1rem !important;
  }

  .mr-sm-n3,
.mx-sm-n3 {
    margin-right: -1rem !important;
  }

  .mb-sm-n3,
.my-sm-n3 {
    margin-bottom: -1rem !important;
  }

  .ml-sm-n3,
.mx-sm-n3 {
    margin-left: -1rem !important;
  }

  .m-sm-n4 {
    margin: -1.5rem !important;
  }

  .mt-sm-n4,
.my-sm-n4 {
    margin-top: -1.5rem !important;
  }

  .mr-sm-n4,
.mx-sm-n4 {
    margin-right: -1.5rem !important;
  }

  .mb-sm-n4,
.my-sm-n4 {
    margin-bottom: -1.5rem !important;
  }

  .ml-sm-n4,
.mx-sm-n4 {
    margin-left: -1.5rem !important;
  }

  .m-sm-n5 {
    margin: -3rem !important;
  }

  .mt-sm-n5,
.my-sm-n5 {
    margin-top: -3rem !important;
  }

  .mr-sm-n5,
.mx-sm-n5 {
    margin-right: -3rem !important;
  }

  .mb-sm-n5,
.my-sm-n5 {
    margin-bottom: -3rem !important;
  }

  .ml-sm-n5,
.mx-sm-n5 {
    margin-left: -3rem !important;
  }

  .m-sm-auto {
    margin: auto !important;
  }

  .mt-sm-auto,
.my-sm-auto {
    margin-top: auto !important;
  }

  .mr-sm-auto,
.mx-sm-auto {
    margin-right: auto !important;
  }

  .mb-sm-auto,
.my-sm-auto {
    margin-bottom: auto !important;
  }

  .ml-sm-auto,
.mx-sm-auto {
    margin-left: auto !important;
  }
}
@media (min-width: 768px) {
  .m-md-0 {
    margin: 0 !important;
  }

  .mt-md-0,
.my-md-0 {
    margin-top: 0 !important;
  }

  .mr-md-0,
.mx-md-0 {
    margin-right: 0 !important;
  }

  .mb-md-0,
.my-md-0 {
    margin-bottom: 0 !important;
  }

  .ml-md-0,
.mx-md-0 {
    margin-left: 0 !important;
  }

  .m-md-1 {
    margin: 0.25rem !important;
  }

  .mt-md-1,
.my-md-1 {
    margin-top: 0.25rem !important;
  }

  .mr-md-1,
.mx-md-1 {
    margin-right: 0.25rem !important;
  }

  .mb-md-1,
.my-md-1 {
    margin-bottom: 0.25rem !important;
  }

  .ml-md-1,
.mx-md-1 {
    margin-left: 0.25rem !important;
  }

  .m-md-2 {
    margin: 0.5rem !important;
  }

  .mt-md-2,
.my-md-2 {
    margin-top: 0.5rem !important;
  }

  .mr-md-2,
.mx-md-2 {
    margin-right: 0.5rem !important;
  }

  .mb-md-2,
.my-md-2 {
    margin-bottom: 0.5rem !important;
  }

  .ml-md-2,
.mx-md-2 {
    margin-left: 0.5rem !important;
  }

  .m-md-3 {
    margin: 1rem !important;
  }

  .mt-md-3,
.my-md-3 {
    margin-top: 1rem !important;
  }

  .mr-md-3,
.mx-md-3 {
    margin-right: 1rem !important;
  }

  .mb-md-3,
.my-md-3 {
    margin-bottom: 1rem !important;
  }

  .ml-md-3,
.mx-md-3 {
    margin-left: 1rem !important;
  }

  .m-md-4 {
    margin: 1.5rem !important;
  }

  .mt-md-4,
.my-md-4 {
    margin-top: 1.5rem !important;
  }

  .mr-md-4,
.mx-md-4 {
    margin-right: 1.5rem !important;
  }

  .mb-md-4,
.my-md-4 {
    margin-bottom: 1.5rem !important;
  }

  .ml-md-4,
.mx-md-4 {
    margin-left: 1.5rem !important;
  }

  .m-md-5 {
    margin: 3rem !important;
  }

  .mt-md-5,
.my-md-5 {
    margin-top: 3rem !important;
  }

  .mr-md-5,
.mx-md-5 {
    margin-right: 3rem !important;
  }

  .mb-md-5,
.my-md-5 {
    margin-bottom: 3rem !important;
  }

  .ml-md-5,
.mx-md-5 {
    margin-left: 3rem !important;
  }

  .p-md-0 {
    padding: 0 !important;
  }

  .pt-md-0,
.py-md-0 {
    padding-top: 0 !important;
  }

  .pr-md-0,
.px-md-0 {
    padding-right: 0 !important;
  }

  .pb-md-0,
.py-md-0 {
    padding-bottom: 0 !important;
  }

  .pl-md-0,
.px-md-0 {
    padding-left: 0 !important;
  }

  .p-md-1 {
    padding: 0.25rem !important;
  }

  .pt-md-1,
.py-md-1 {
    padding-top: 0.25rem !important;
  }

  .pr-md-1,
.px-md-1 {
    padding-right: 0.25rem !important;
  }

  .pb-md-1,
.py-md-1 {
    padding-bottom: 0.25rem !important;
  }

  .pl-md-1,
.px-md-1 {
    padding-left: 0.25rem !important;
  }

  .p-md-2 {
    padding: 0.5rem !important;
  }

  .pt-md-2,
.py-md-2 {
    padding-top: 0.5rem !important;
  }

  .pr-md-2,
.px-md-2 {
    padding-right: 0.5rem !important;
  }

  .pb-md-2,
.py-md-2 {
    padding-bottom: 0.5rem !important;
  }

  .pl-md-2,
.px-md-2 {
    padding-left: 0.5rem !important;
  }

  .p-md-3 {
    padding: 1rem !important;
  }

  .pt-md-3,
.py-md-3 {
    padding-top: 1rem !important;
  }

  .pr-md-3,
.px-md-3 {
    padding-right: 1rem !important;
  }

  .pb-md-3,
.py-md-3 {
    padding-bottom: 1rem !important;
  }

  .pl-md-3,
.px-md-3 {
    padding-left: 1rem !important;
  }

  .p-md-4 {
    padding: 1.5rem !important;
  }

  .pt-md-4,
.py-md-4 {
    padding-top: 1.5rem !important;
  }

  .pr-md-4,
.px-md-4 {
    padding-right: 1.5rem !important;
  }

  .pb-md-4,
.py-md-4 {
    padding-bottom: 1.5rem !important;
  }

  .pl-md-4,
.px-md-4 {
    padding-left: 1.5rem !important;
  }

  .p-md-5 {
    padding: 3rem !important;
  }

  .pt-md-5,
.py-md-5 {
    padding-top: 3rem !important;
  }

  .pr-md-5,
.px-md-5 {
    padding-right: 3rem !important;
  }

  .pb-md-5,
.py-md-5 {
    padding-bottom: 3rem !important;
  }

  .pl-md-5,
.px-md-5 {
    padding-left: 3rem !important;
  }

  .m-md-n1 {
    margin: -0.25rem !important;
  }

  .mt-md-n1,
.my-md-n1 {
    margin-top: -0.25rem !important;
  }

  .mr-md-n1,
.mx-md-n1 {
    margin-right: -0.25rem !important;
  }

  .mb-md-n1,
.my-md-n1 {
    margin-bottom: -0.25rem !important;
  }

  .ml-md-n1,
.mx-md-n1 {
    margin-left: -0.25rem !important;
  }

  .m-md-n2 {
    margin: -0.5rem !important;
  }

  .mt-md-n2,
.my-md-n2 {
    margin-top: -0.5rem !important;
  }

  .mr-md-n2,
.mx-md-n2 {
    margin-right: -0.5rem !important;
  }

  .mb-md-n2,
.my-md-n2 {
    margin-bottom: -0.5rem !important;
  }

  .ml-md-n2,
.mx-md-n2 {
    margin-left: -0.5rem !important;
  }

  .m-md-n3 {
    margin: -1rem !important;
  }

  .mt-md-n3,
.my-md-n3 {
    margin-top: -1rem !important;
  }

  .mr-md-n3,
.mx-md-n3 {
    margin-right: -1rem !important;
  }

  .mb-md-n3,
.my-md-n3 {
    margin-bottom: -1rem !important;
  }

  .ml-md-n3,
.mx-md-n3 {
    margin-left: -1rem !important;
  }

  .m-md-n4 {
    margin: -1.5rem !important;
  }

  .mt-md-n4,
.my-md-n4 {
    margin-top: -1.5rem !important;
  }

  .mr-md-n4,
.mx-md-n4 {
    margin-right: -1.5rem !important;
  }

  .mb-md-n4,
.my-md-n4 {
    margin-bottom: -1.5rem !important;
  }

  .ml-md-n4,
.mx-md-n4 {
    margin-left: -1.5rem !important;
  }

  .m-md-n5 {
    margin: -3rem !important;
  }

  .mt-md-n5,
.my-md-n5 {
    margin-top: -3rem !important;
  }

  .mr-md-n5,
.mx-md-n5 {
    margin-right: -3rem !important;
  }

  .mb-md-n5,
.my-md-n5 {
    margin-bottom: -3rem !important;
  }

  .ml-md-n5,
.mx-md-n5 {
    margin-left: -3rem !important;
  }

  .m-md-auto {
    margin: auto !important;
  }

  .mt-md-auto,
.my-md-auto {
    margin-top: auto !important;
  }

  .mr-md-auto,
.mx-md-auto {
    margin-right: auto !important;
  }

  .mb-md-auto,
.my-md-auto {
    margin-bottom: auto !important;
  }

  .ml-md-auto,
.mx-md-auto {
    margin-left: auto !important;
  }
}
@media (min-width: 992px) {
  .m-lg-0 {
    margin: 0 !important;
  }

  .mt-lg-0,
.my-lg-0 {
    margin-top: 0 !important;
  }

  .mr-lg-0,
.mx-lg-0 {
    margin-right: 0 !important;
  }

  .mb-lg-0,
.my-lg-0 {
    margin-bottom: 0 !important;
  }

  .ml-lg-0,
.mx-lg-0 {
    margin-left: 0 !important;
  }

  .m-lg-1 {
    margin: 0.25rem !important;
  }

  .mt-lg-1,
.my-lg-1 {
    margin-top: 0.25rem !important;
  }

  .mr-lg-1,
.mx-lg-1 {
    margin-right: 0.25rem !important;
  }

  .mb-lg-1,
.my-lg-1 {
    margin-bottom: 0.25rem !important;
  }

  .ml-lg-1,
.mx-lg-1 {
    margin-left: 0.25rem !important;
  }

  .m-lg-2 {
    margin: 0.5rem !important;
  }

  .mt-lg-2,
.my-lg-2 {
    margin-top: 0.5rem !important;
  }

  .mr-lg-2,
.mx-lg-2 {
    margin-right: 0.5rem !important;
  }

  .mb-lg-2,
.my-lg-2 {
    margin-bottom: 0.5rem !important;
  }

  .ml-lg-2,
.mx-lg-2 {
    margin-left: 0.5rem !important;
  }

  .m-lg-3 {
    margin: 1rem !important;
  }

  .mt-lg-3,
.my-lg-3 {
    margin-top: 1rem !important;
  }

  .mr-lg-3,
.mx-lg-3 {
    margin-right: 1rem !important;
  }

  .mb-lg-3,
.my-lg-3 {
    margin-bottom: 1rem !important;
  }

  .ml-lg-3,
.mx-lg-3 {
    margin-left: 1rem !important;
  }

  .m-lg-4 {
    margin: 1.5rem !important;
  }

  .mt-lg-4,
.my-lg-4 {
    margin-top: 1.5rem !important;
  }

  .mr-lg-4,
.mx-lg-4 {
    margin-right: 1.5rem !important;
  }

  .mb-lg-4,
.my-lg-4 {
    margin-bottom: 1.5rem !important;
  }

  .ml-lg-4,
.mx-lg-4 {
    margin-left: 1.5rem !important;
  }

  .m-lg-5 {
    margin: 3rem !important;
  }

  .mt-lg-5,
.my-lg-5 {
    margin-top: 3rem !important;
  }

  .mr-lg-5,
.mx-lg-5 {
    margin-right: 3rem !important;
  }

  .mb-lg-5,
.my-lg-5 {
    margin-bottom: 3rem !important;
  }

  .ml-lg-5,
.mx-lg-5 {
    margin-left: 3rem !important;
  }

  .p-lg-0 {
    padding: 0 !important;
  }

  .pt-lg-0,
.py-lg-0 {
    padding-top: 0 !important;
  }

  .pr-lg-0,
.px-lg-0 {
    padding-right: 0 !important;
  }

  .pb-lg-0,
.py-lg-0 {
    padding-bottom: 0 !important;
  }

  .pl-lg-0,
.px-lg-0 {
    padding-left: 0 !important;
  }

  .p-lg-1 {
    padding: 0.25rem !important;
  }

  .pt-lg-1,
.py-lg-1 {
    padding-top: 0.25rem !important;
  }

  .pr-lg-1,
.px-lg-1 {
    padding-right: 0.25rem !important;
  }

  .pb-lg-1,
.py-lg-1 {
    padding-bottom: 0.25rem !important;
  }

  .pl-lg-1,
.px-lg-1 {
    padding-left: 0.25rem !important;
  }

  .p-lg-2 {
    padding: 0.5rem !important;
  }

  .pt-lg-2,
.py-lg-2 {
    padding-top: 0.5rem !important;
  }

  .pr-lg-2,
.px-lg-2 {
    padding-right: 0.5rem !important;
  }

  .pb-lg-2,
.py-lg-2 {
    padding-bottom: 0.5rem !important;
  }

  .pl-lg-2,
.px-lg-2 {
    padding-left: 0.5rem !important;
  }

  .p-lg-3 {
    padding: 1rem !important;
  }

  .pt-lg-3,
.py-lg-3 {
    padding-top: 1rem !important;
  }

  .pr-lg-3,
.px-lg-3 {
    padding-right: 1rem !important;
  }

  .pb-lg-3,
.py-lg-3 {
    padding-bottom: 1rem !important;
  }

  .pl-lg-3,
.px-lg-3 {
    padding-left: 1rem !important;
  }

  .p-lg-4 {
    padding: 1.5rem !important;
  }

  .pt-lg-4,
.py-lg-4 {
    padding-top: 1.5rem !important;
  }

  .pr-lg-4,
.px-lg-4 {
    padding-right: 1.5rem !important;
  }

  .pb-lg-4,
.py-lg-4 {
    padding-bottom: 1.5rem !important;
  }

  .pl-lg-4,
.px-lg-4 {
    padding-left: 1.5rem !important;
  }

  .p-lg-5 {
    padding: 3rem !important;
  }

  .pt-lg-5,
.py-lg-5 {
    padding-top: 3rem !important;
  }

  .pr-lg-5,
.px-lg-5 {
    padding-right: 3rem !important;
  }

  .pb-lg-5,
.py-lg-5 {
    padding-bottom: 3rem !important;
  }

  .pl-lg-5,
.px-lg-5 {
    padding-left: 3rem !important;
  }

  .m-lg-n1 {
    margin: -0.25rem !important;
  }

  .mt-lg-n1,
.my-lg-n1 {
    margin-top: -0.25rem !important;
  }

  .mr-lg-n1,
.mx-lg-n1 {
    margin-right: -0.25rem !important;
  }

  .mb-lg-n1,
.my-lg-n1 {
    margin-bottom: -0.25rem !important;
  }

  .ml-lg-n1,
.mx-lg-n1 {
    margin-left: -0.25rem !important;
  }

  .m-lg-n2 {
    margin: -0.5rem !important;
  }

  .mt-lg-n2,
.my-lg-n2 {
    margin-top: -0.5rem !important;
  }

  .mr-lg-n2,
.mx-lg-n2 {
    margin-right: -0.5rem !important;
  }

  .mb-lg-n2,
.my-lg-n2 {
    margin-bottom: -0.5rem !important;
  }

  .ml-lg-n2,
.mx-lg-n2 {
    margin-left: -0.5rem !important;
  }

  .m-lg-n3 {
    margin: -1rem !important;
  }

  .mt-lg-n3,
.my-lg-n3 {
    margin-top: -1rem !important;
  }

  .mr-lg-n3,
.mx-lg-n3 {
    margin-right: -1rem !important;
  }

  .mb-lg-n3,
.my-lg-n3 {
    margin-bottom: -1rem !important;
  }

  .ml-lg-n3,
.mx-lg-n3 {
    margin-left: -1rem !important;
  }

  .m-lg-n4 {
    margin: -1.5rem !important;
  }

  .mt-lg-n4,
.my-lg-n4 {
    margin-top: -1.5rem !important;
  }

  .mr-lg-n4,
.mx-lg-n4 {
    margin-right: -1.5rem !important;
  }

  .mb-lg-n4,
.my-lg-n4 {
    margin-bottom: -1.5rem !important;
  }

  .ml-lg-n4,
.mx-lg-n4 {
    margin-left: -1.5rem !important;
  }

  .m-lg-n5 {
    margin: -3rem !important;
  }

  .mt-lg-n5,
.my-lg-n5 {
    margin-top: -3rem !important;
  }

  .mr-lg-n5,
.mx-lg-n5 {
    margin-right: -3rem !important;
  }

  .mb-lg-n5,
.my-lg-n5 {
    margin-bottom: -3rem !important;
  }

  .ml-lg-n5,
.mx-lg-n5 {
    margin-left: -3rem !important;
  }

  .m-lg-auto {
    margin: auto !important;
  }

  .mt-lg-auto,
.my-lg-auto {
    margin-top: auto !important;
  }

  .mr-lg-auto,
.mx-lg-auto {
    margin-right: auto !important;
  }

  .mb-lg-auto,
.my-lg-auto {
    margin-bottom: auto !important;
  }

  .ml-lg-auto,
.mx-lg-auto {
    margin-left: auto !important;
  }
}
@media (min-width: 1200px) {
  .m-xl-0 {
    margin: 0 !important;
  }

  .mt-xl-0,
.my-xl-0 {
    margin-top: 0 !important;
  }

  .mr-xl-0,
.mx-xl-0 {
    margin-right: 0 !important;
  }

  .mb-xl-0,
.my-xl-0 {
    margin-bottom: 0 !important;
  }

  .ml-xl-0,
.mx-xl-0 {
    margin-left: 0 !important;
  }

  .m-xl-1 {
    margin: 0.25rem !important;
  }

  .mt-xl-1,
.my-xl-1 {
    margin-top: 0.25rem !important;
  }

  .mr-xl-1,
.mx-xl-1 {
    margin-right: 0.25rem !important;
  }

  .mb-xl-1,
.my-xl-1 {
    margin-bottom: 0.25rem !important;
  }

  .ml-xl-1,
.mx-xl-1 {
    margin-left: 0.25rem !important;
  }

  .m-xl-2 {
    margin: 0.5rem !important;
  }

  .mt-xl-2,
.my-xl-2 {
    margin-top: 0.5rem !important;
  }

  .mr-xl-2,
.mx-xl-2 {
    margin-right: 0.5rem !important;
  }

  .mb-xl-2,
.my-xl-2 {
    margin-bottom: 0.5rem !important;
  }

  .ml-xl-2,
.mx-xl-2 {
    margin-left: 0.5rem !important;
  }

  .m-xl-3 {
    margin: 1rem !important;
  }

  .mt-xl-3,
.my-xl-3 {
    margin-top: 1rem !important;
  }

  .mr-xl-3,
.mx-xl-3 {
    margin-right: 1rem !important;
  }

  .mb-xl-3,
.my-xl-3 {
    margin-bottom: 1rem !important;
  }

  .ml-xl-3,
.mx-xl-3 {
    margin-left: 1rem !important;
  }

  .m-xl-4 {
    margin: 1.5rem !important;
  }

  .mt-xl-4,
.my-xl-4 {
    margin-top: 1.5rem !important;
  }

  .mr-xl-4,
.mx-xl-4 {
    margin-right: 1.5rem !important;
  }

  .mb-xl-4,
.my-xl-4 {
    margin-bottom: 1.5rem !important;
  }

  .ml-xl-4,
.mx-xl-4 {
    margin-left: 1.5rem !important;
  }

  .m-xl-5 {
    margin: 3rem !important;
  }

  .mt-xl-5,
.my-xl-5 {
    margin-top: 3rem !important;
  }

  .mr-xl-5,
.mx-xl-5 {
    margin-right: 3rem !important;
  }

  .mb-xl-5,
.my-xl-5 {
    margin-bottom: 3rem !important;
  }

  .ml-xl-5,
.mx-xl-5 {
    margin-left: 3rem !important;
  }

  .p-xl-0 {
    padding: 0 !important;
  }

  .pt-xl-0,
.py-xl-0 {
    padding-top: 0 !important;
  }

  .pr-xl-0,
.px-xl-0 {
    padding-right: 0 !important;
  }

  .pb-xl-0,
.py-xl-0 {
    padding-bottom: 0 !important;
  }

  .pl-xl-0,
.px-xl-0 {
    padding-left: 0 !important;
  }

  .p-xl-1 {
    padding: 0.25rem !important;
  }

  .pt-xl-1,
.py-xl-1 {
    padding-top: 0.25rem !important;
  }

  .pr-xl-1,
.px-xl-1 {
    padding-right: 0.25rem !important;
  }

  .pb-xl-1,
.py-xl-1 {
    padding-bottom: 0.25rem !important;
  }

  .pl-xl-1,
.px-xl-1 {
    padding-left: 0.25rem !important;
  }

  .p-xl-2 {
    padding: 0.5rem !important;
  }

  .pt-xl-2,
.py-xl-2 {
    padding-top: 0.5rem !important;
  }

  .pr-xl-2,
.px-xl-2 {
    padding-right: 0.5rem !important;
  }

  .pb-xl-2,
.py-xl-2 {
    padding-bottom: 0.5rem !important;
  }

  .pl-xl-2,
.px-xl-2 {
    padding-left: 0.5rem !important;
  }

  .p-xl-3 {
    padding: 1rem !important;
  }

  .pt-xl-3,
.py-xl-3 {
    padding-top: 1rem !important;
  }

  .pr-xl-3,
.px-xl-3 {
    padding-right: 1rem !important;
  }

  .pb-xl-3,
.py-xl-3 {
    padding-bottom: 1rem !important;
  }

  .pl-xl-3,
.px-xl-3 {
    padding-left: 1rem !important;
  }

  .p-xl-4 {
    padding: 1.5rem !important;
  }

  .pt-xl-4,
.py-xl-4 {
    padding-top: 1.5rem !important;
  }

  .pr-xl-4,
.px-xl-4 {
    padding-right: 1.5rem !important;
  }

  .pb-xl-4,
.py-xl-4 {
    padding-bottom: 1.5rem !important;
  }

  .pl-xl-4,
.px-xl-4 {
    padding-left: 1.5rem !important;
  }

  .p-xl-5 {
    padding: 3rem !important;
  }

  .pt-xl-5,
.py-xl-5 {
    padding-top: 3rem !important;
  }

  .pr-xl-5,
.px-xl-5 {
    padding-right: 3rem !important;
  }

  .pb-xl-5,
.py-xl-5 {
    padding-bottom: 3rem !important;
  }

  .pl-xl-5,
.px-xl-5 {
    padding-left: 3rem !important;
  }

  .m-xl-n1 {
    margin: -0.25rem !important;
  }

  .mt-xl-n1,
.my-xl-n1 {
    margin-top: -0.25rem !important;
  }

  .mr-xl-n1,
.mx-xl-n1 {
    margin-right: -0.25rem !important;
  }

  .mb-xl-n1,
.my-xl-n1 {
    margin-bottom: -0.25rem !important;
  }

  .ml-xl-n1,
.mx-xl-n1 {
    margin-left: -0.25rem !important;
  }

  .m-xl-n2 {
    margin: -0.5rem !important;
  }

  .mt-xl-n2,
.my-xl-n2 {
    margin-top: -0.5rem !important;
  }

  .mr-xl-n2,
.mx-xl-n2 {
    margin-right: -0.5rem !important;
  }

  .mb-xl-n2,
.my-xl-n2 {
    margin-bottom: -0.5rem !important;
  }

  .ml-xl-n2,
.mx-xl-n2 {
    margin-left: -0.5rem !important;
  }

  .m-xl-n3 {
    margin: -1rem !important;
  }

  .mt-xl-n3,
.my-xl-n3 {
    margin-top: -1rem !important;
  }

  .mr-xl-n3,
.mx-xl-n3 {
    margin-right: -1rem !important;
  }

  .mb-xl-n3,
.my-xl-n3 {
    margin-bottom: -1rem !important;
  }

  .ml-xl-n3,
.mx-xl-n3 {
    margin-left: -1rem !important;
  }

  .m-xl-n4 {
    margin: -1.5rem !important;
  }

  .mt-xl-n4,
.my-xl-n4 {
    margin-top: -1.5rem !important;
  }

  .mr-xl-n4,
.mx-xl-n4 {
    margin-right: -1.5rem !important;
  }

  .mb-xl-n4,
.my-xl-n4 {
    margin-bottom: -1.5rem !important;
  }

  .ml-xl-n4,
.mx-xl-n4 {
    margin-left: -1.5rem !important;
  }

  .m-xl-n5 {
    margin: -3rem !important;
  }

  .mt-xl-n5,
.my-xl-n5 {
    margin-top: -3rem !important;
  }

  .mr-xl-n5,
.mx-xl-n5 {
    margin-right: -3rem !important;
  }

  .mb-xl-n5,
.my-xl-n5 {
    margin-bottom: -3rem !important;
  }

  .ml-xl-n5,
.mx-xl-n5 {
    margin-left: -3rem !important;
  }

  .m-xl-auto {
    margin: auto !important;
  }

  .mt-xl-auto,
.my-xl-auto {
    margin-top: auto !important;
  }

  .mr-xl-auto,
.mx-xl-auto {
    margin-right: auto !important;
  }

  .mb-xl-auto,
.my-xl-auto {
    margin-bottom: auto !important;
  }

  .ml-xl-auto,
.mx-xl-auto {
    margin-left: auto !important;
  }
}
.text-monospace {
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important;
}
.text-justify {
  text-align: justify !important;
}
.text-wrap {
  white-space: normal !important;
}
.text-nowrap {
  white-space: nowrap !important;
}
.text-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.text-left {
  text-align: left !important;
}
.text-right {
  text-align: right !important;
}
.text-center {
  text-align: center !important;
}
@media (min-width: 576px) {
  .text-sm-left {
    text-align: left !important;
  }

  .text-sm-right {
    text-align: right !important;
  }

  .text-sm-center {
    text-align: center !important;
  }
}
@media (min-width: 768px) {
  .text-md-left {
    text-align: left !important;
  }

  .text-md-right {
    text-align: right !important;
  }

  .text-md-center {
    text-align: center !important;
  }
}
@media (min-width: 992px) {
  .text-lg-left {
    text-align: left !important;
  }

  .text-lg-right {
    text-align: right !important;
  }

  .text-lg-center {
    text-align: center !important;
  }
}
@media (min-width: 1200px) {
  .text-xl-left {
    text-align: left !important;
  }

  .text-xl-right {
    text-align: right !important;
  }

  .text-xl-center {
    text-align: center !important;
  }
}
.text-lowercase {
  text-transform: lowercase !important;
}
.text-uppercase {
  text-transform: uppercase !important;
}
.text-capitalize {
  text-transform: capitalize !important;
}
.font-weight-light {
  font-weight: 300 !important;
}
.font-weight-lighter {
  font-weight: lighter !important;
}
.font-weight-normal {
  font-weight: 400 !important;
}
.font-weight-bold {
  font-weight: 700 !important;
}
.font-weight-bolder {
  font-weight: bolder !important;
}
.font-italic {
  font-style: italic !important;
}
.text-white {
  color: #fff !important;
}
.text-primary {
  color: #20a8d8 !important;
}
a.text-primary:hover, a.text-primary:focus {
  color: #167495 !important;
}
.text-secondary {
  color: #c8ced3 !important;
}
a.text-secondary:hover, a.text-secondary:focus {
  color: #9ea8b1 !important;
}
.text-success {
  color: #4dbd74 !important;
}
a.text-success:hover, a.text-success:focus {
  color: #338a52 !important;
}
.text-info {
  color: #63c2de !important;
}
a.text-info:hover, a.text-info:focus {
  color: #2ba6ca !important;
}
.text-warning {
  color: #ffc107 !important;
}
a.text-warning:hover, a.text-warning:focus {
  color: #ba8b00 !important;
}
.text-danger {
  color: #f86c6b !important;
}
a.text-danger:hover, a.text-danger:focus {
  color: #f52322 !important;
}
.text-light {
  color: #f0f3f5 !important;
}
a.text-light:hover, a.text-light:focus {
  color: #c2ced6 !important;
}
.text-dark {
  color: #2f353a !important;
}
a.text-dark:hover, a.text-dark:focus {
  color: #0d0e10 !important;
}
.text-body {
  color: #23282c !important;
}
.text-muted {
  color: #73818f !important;
}
.text-black-50 {
  color: rgba(0, 0, 0, 0.5) !important;
}
.text-white-50 {
  color: rgba(255, 255, 255, 0.5) !important;
}
.text-hide {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}
.text-decoration-none {
  text-decoration: none !important;
}
.text-break {
  word-break: break-word !important;
  overflow-wrap: break-word !important;
}
.text-reset {
  color: inherit !important;
}
.visible {
  visibility: visible !important;
}
.invisible {
  visibility: hidden !important;
}
@media print {
  *,
*::before,
*::after {
    text-shadow: none !important;
    box-shadow: none !important;
  }

  a:not(.btn) {
    text-decoration: underline;
  }

  abbr[title]::after {
    content: " (" attr(title) ")";
  }

  pre {
    white-space: pre-wrap !important;
  }

  pre,
blockquote {
    border: 1px solid #8f9ba6;
    page-break-inside: avoid;
  }

  thead {
    display: table-header-group;
  }

  tr,
img {
    page-break-inside: avoid;
  }

  p,
h2,
h3 {
    orphans: 3;
    widows: 3;
  }

  h2,
h3 {
    page-break-after: avoid;
  }

  @page {
    size: a3;
  }
  body {
    min-width: 992px !important;
  }

  .container {
    min-width: 992px !important;
  }

  .navbar {
    display: none;
  }

  .badge {
    border: 1px solid #000;
  }

  .table {
    border-collapse: collapse !important;
  }
  .table td,
.table th {
    background-color: #fff !important;
  }

  .table-bordered th,
.table-bordered td {
    border: 1px solid #c8ced3 !important;
  }

  .table-dark {
    color: inherit;
  }
  .table-dark th,
.table-dark td,
.table-dark thead th,
.table-dark tbody + tbody {
    border-color: #c8ced3;
  }

  .table .thead-dark th {
    color: inherit;
    border-color: #c8ced3;
  }
}
.animated {
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
}
.animated.infinite {
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
}
.animated.hinge {
  -webkit-animation-duration: 2s;
          animation-duration: 2s;
}
@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.fadeIn {
  -webkit-animation-name: fadeIn;
          animation-name: fadeIn;
}
.ps {
  overflow: hidden !important;
  touch-action: auto;
  -ms-overflow-style: none;
  overflow-anchor: none;
}
.ps__rail-x {
  position: absolute;
  bottom: 0;
  display: none;
  height: 15px;
  opacity: 0;
  transition: background-color 0.2s linear, opacity 0.2s linear;
}
.ps__rail-y {
  position: absolute;
  right: 0;
  display: none;
  width: 15px;
  opacity: 0;
  transition: background-color 0.2s linear, opacity 0.2s linear;
}
.ps--active-x > .ps__rail-x,
.ps--active-y > .ps__rail-y {
  display: block;
  background-color: transparent;
}
.ps:hover > .ps__rail-x,
.ps:hover > .ps__rail-y,
.ps--focus > .ps__rail-x,
.ps--focus > .ps__rail-y,
.ps--scrolling-x > .ps__rail-x,
.ps--scrolling-y > .ps__rail-y {
  opacity: 0.6;
}
.ps__rail-x:hover,
.ps__rail-y:hover,
.ps__rail-x:focus,
.ps__rail-y:focus {
  background-color: #eee;
  opacity: 0.9;
}
/*
 * Scrollbar thumb styles
 */
.ps__thumb-x {
  position: absolute;
  bottom: 2px;
  height: 6px;
  background-color: #aaa;
  border-radius: 6px;
  transition: background-color 0.2s linear, height 0.2s ease-in-out;
}
.ps__thumb-y {
  position: absolute;
  right: 2px;
  width: 6px;
  background-color: #aaa;
  border-radius: 6px;
  transition: background-color 0.2s linear, width 0.2s ease-in-out;
}
.ps__rail-x:hover > .ps__thumb-x,
.ps__rail-x:focus > .ps__thumb-x {
  height: 11px;
  background-color: #999;
}
.ps__rail-y:hover > .ps__thumb-y,
.ps__rail-y:focus > .ps__thumb-y {
  width: 11px;
  background-color: #999;
}
@supports (-ms-overflow-style: none) {
  .ps {
    overflow: auto !important;
  }
}
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .ps {
    overflow: auto !important;
  }
}
.aside-menu {
  z-index: 1019;
  width: 250px;
  color: #2f353a;
  background: #fff;
  border-left: 1px solid #c8ced3;
}
.aside-menu .nav-tabs {
  border-color: #c8ced3;
}
.aside-menu .nav-tabs .nav-link {
  padding: 0.75rem 1rem;
  color: #23282c;
  border-top: 0;
  border-radius: 0;
}
.aside-menu .nav-tabs .nav-link.active {
  color: #20a8d8;
  border-right-color: #c8ced3;
  border-left-color: #c8ced3;
}
.aside-menu .nav-tabs .nav-item:first-child .nav-link {
  border-left: 0;
}
.aside-menu .tab-content {
  position: relative;
  overflow-x: hidden;
  overflow-y: auto;
  border: 0;
  border-top: 1px solid #c8ced3;
  -ms-overflow-style: -ms-autohiding-scrollbar;
}
.aside-menu .tab-content::-webkit-scrollbar {
  width: 10px;
  margin-left: -10px;
  -webkit-appearance: none;
          appearance: none;
}
.aside-menu .tab-content::-webkit-scrollbar-track {
  background-color: white;
  border-right: 1px solid #f2f2f2;
  border-left: 1px solid #f2f2f2;
}
.aside-menu .tab-content::-webkit-scrollbar-thumb {
  height: 50px;
  background-color: #e6e6e6;
  background-clip: content-box;
  border-color: transparent;
  border-style: solid;
  border-width: 1px 2px;
}
.aside-menu .tab-content .tab-pane {
  padding: 0;
}
.avatar {
  position: relative;
  display: inline-block;
  width: 36px;
  height: 36px;
}
.avatar .avatar-status {
  position: absolute;
  right: 0;
  bottom: 0;
  display: block;
  width: 10px;
  height: 10px;
  border: 1px solid #fff;
  border-radius: 50em;
}
.avatar > img {
  vertical-align: initial;
}
.avatar-lg {
  position: relative;
  display: inline-block;
  width: 72px;
  height: 72px;
}
.avatar-lg .avatar-status {
  position: absolute;
  right: 0;
  bottom: 0;
  display: block;
  width: 12px;
  height: 12px;
  border: 1px solid #fff;
  border-radius: 50em;
}
.avatar-sm {
  position: relative;
  display: inline-block;
  width: 24px;
  height: 24px;
}
.avatar-sm .avatar-status {
  position: absolute;
  right: 0;
  bottom: 0;
  display: block;
  width: 8px;
  height: 8px;
  border: 1px solid #fff;
  border-radius: 50em;
}
.avatar-xs {
  position: relative;
  display: inline-block;
  width: 20px;
  height: 20px;
}
.avatar-xs .avatar-status {
  position: absolute;
  right: 0;
  bottom: 0;
  display: block;
  width: 8px;
  height: 8px;
  border: 1px solid #fff;
  border-radius: 50em;
}
.avatars-stack .avatar {
  margin-right: -18px;
  transition: margin-right 0.25s;
}
.avatars-stack .avatar:hover {
  margin-right: 0;
}
.avatars-stack .avatar-lg {
  margin-right: -36px;
}
.avatars-stack .avatar-sm {
  margin-right: -12px;
}
.avatars-stack .avatar-xs {
  margin-right: -10px;
}
.badge-pill {
  border-radius: 10rem;
}
.breadcrumb-menu {
  margin-left: auto;
}
.breadcrumb-menu::before {
  display: none;
}
.breadcrumb-menu .btn-group {
  vertical-align: top;
}
.breadcrumb-menu .btn {
  padding: 0 0.75rem;
  color: #73818f;
  vertical-align: top;
  border: 0;
}
.breadcrumb-menu .btn:hover, .breadcrumb-menu .btn.active {
  color: #23282c;
  background: transparent;
}
.breadcrumb-menu .open .btn {
  color: #23282c;
  background: transparent;
}
.breadcrumb-menu .dropdown-menu {
  min-width: 180px;
  line-height: 1.5;
}
*[dir=rtl] .breadcrumb-menu {
  margin-right: auto;
  margin-left: initial;
}
.breadcrumb {
  position: relative;
  border-radius: 0;
  border-bottom: 1px solid #c8ced3;
}
*[dir=rtl] .breadcrumb-item::before {
  padding-right: 0;
  padding-left: 0.5rem;
}
*[dir=rtl] .breadcrumb-item {
  padding-right: 0.5rem;
  padding-left: 0;
}
.brand-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  margin-bottom: 1.5rem;
  word-wrap: break-word;
  background-color: #fff;
  background-clip: border-box;
  border: 1px solid #c8ced3;
  border-radius: 0.25rem;
}
.brand-card-header {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 6rem;
  border-radius: 0.25rem 0.25rem 0 0;
}
.brand-card-header i {
  font-size: 2rem;
  color: #fff;
}
.brand-card-header .chart-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.brand-card-body {
  display: flex;
  flex-direction: row;
  padding: 0.75rem 0;
  text-align: center;
}
.brand-card-body > * {
  flex: 1;
  padding: 0.1875rem 0;
}
.brand-card-body > *:not(:last-child) {
  border-right: 1px solid #c8ced3;
}
*[dir=rtl] .brand-card-body > *:not(:last-child) {
  border-right: 0;
  border-left: 1px solid #c8ced3;
}
.btn-brand {
  border: 0;
}
.btn-brand i {
  display: inline-block;
  width: 2.0625rem;
  margin: -0.375rem -0.75rem;
  line-height: 2.0625rem;
  text-align: center;
  background-color: rgba(0, 0, 0, 0.2);
  border-radius: 0.25rem;
}
.btn-brand i + span {
  margin-left: 1.5rem;
}
.btn-brand.btn-lg i, .btn-group-lg > .btn-brand.btn i {
  width: 2.640625rem;
  margin: -0.5rem -1rem;
  line-height: 2.640625rem;
  border-radius: 0.3rem;
}
.btn-brand.btn-lg i + span, .btn-group-lg > .btn-brand.btn i + span {
  margin-left: 2rem;
}
.btn-brand.btn-sm i, .btn-group-sm > .btn-brand.btn i {
  width: 1.6484375rem;
  margin: -0.25rem -0.5rem;
  line-height: 1.6484375rem;
  border-radius: 0.2rem;
}
.btn-brand.btn-sm i + span, .btn-group-sm > .btn-brand.btn i + span {
  margin-left: 1rem;
}
.btn-brand.btn-square i {
  border-radius: 0;
}
.btn-facebook {
  color: #fff;
  background-color: #3b5998;
  border-color: #3b5998;
}
.btn-facebook:hover {
  color: #fff;
  background-color: #30497c;
  border-color: #2d4373;
}
.btn-facebook:focus, .btn-facebook.focus {
  box-shadow: 0 0 0 0.2rem rgba(88, 114, 167, 0.5);
}
.btn-facebook.disabled, .btn-facebook:disabled {
  color: #fff;
  background-color: #3b5998;
  border-color: #3b5998;
}
.btn-facebook:not(:disabled):not(.disabled):active, .btn-facebook:not(:disabled):not(.disabled).active, .show > .btn-facebook.dropdown-toggle {
  color: #fff;
  background-color: #2d4373;
  border-color: #293e6a;
}
.btn-facebook:not(:disabled):not(.disabled):active:focus, .btn-facebook:not(:disabled):not(.disabled).active:focus, .show > .btn-facebook.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(88, 114, 167, 0.5);
}
.btn-twitter {
  color: #fff;
  background-color: #00aced;
  border-color: #00aced;
}
.btn-twitter:hover {
  color: #fff;
  background-color: #0090c7;
  border-color: #0087ba;
}
.btn-twitter:focus, .btn-twitter.focus {
  box-shadow: 0 0 0 0.2rem rgba(38, 184, 240, 0.5);
}
.btn-twitter.disabled, .btn-twitter:disabled {
  color: #fff;
  background-color: #00aced;
  border-color: #00aced;
}
.btn-twitter:not(:disabled):not(.disabled):active, .btn-twitter:not(:disabled):not(.disabled).active, .show > .btn-twitter.dropdown-toggle {
  color: #fff;
  background-color: #0087ba;
  border-color: #007ead;
}
.btn-twitter:not(:disabled):not(.disabled):active:focus, .btn-twitter:not(:disabled):not(.disabled).active:focus, .show > .btn-twitter.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(38, 184, 240, 0.5);
}
.btn-linkedin {
  color: #fff;
  background-color: #4875b4;
  border-color: #4875b4;
}
.btn-linkedin:hover {
  color: #fff;
  background-color: #3d6399;
  border-color: #395d90;
}
.btn-linkedin:focus, .btn-linkedin.focus {
  box-shadow: 0 0 0 0.2rem rgba(99, 138, 191, 0.5);
}
.btn-linkedin.disabled, .btn-linkedin:disabled {
  color: #fff;
  background-color: #4875b4;
  border-color: #4875b4;
}
.btn-linkedin:not(:disabled):not(.disabled):active, .btn-linkedin:not(:disabled):not(.disabled).active, .show > .btn-linkedin.dropdown-toggle {
  color: #fff;
  background-color: #395d90;
  border-color: #365786;
}
.btn-linkedin:not(:disabled):not(.disabled):active:focus, .btn-linkedin:not(:disabled):not(.disabled).active:focus, .show > .btn-linkedin.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(99, 138, 191, 0.5);
}
.btn-google-plus {
  color: #fff;
  background-color: #d34836;
  border-color: #d34836;
}
.btn-google-plus:hover {
  color: #fff;
  background-color: #ba3929;
  border-color: #b03626;
}
.btn-google-plus:focus, .btn-google-plus.focus {
  box-shadow: 0 0 0 0.2rem rgba(218, 99, 84, 0.5);
}
.btn-google-plus.disabled, .btn-google-plus:disabled {
  color: #fff;
  background-color: #d34836;
  border-color: #d34836;
}
.btn-google-plus:not(:disabled):not(.disabled):active, .btn-google-plus:not(:disabled):not(.disabled).active, .show > .btn-google-plus.dropdown-toggle {
  color: #fff;
  background-color: #b03626;
  border-color: #a53324;
}
.btn-google-plus:not(:disabled):not(.disabled):active:focus, .btn-google-plus:not(:disabled):not(.disabled).active:focus, .show > .btn-google-plus.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(218, 99, 84, 0.5);
}
.btn-flickr {
  color: #fff;
  background-color: #ff0084;
  border-color: #ff0084;
}
.btn-flickr:hover {
  color: #fff;
  background-color: #d90070;
  border-color: #cc006a;
}
.btn-flickr:focus, .btn-flickr.focus {
  box-shadow: 0 0 0 0.2rem rgba(255, 38, 150, 0.5);
}
.btn-flickr.disabled, .btn-flickr:disabled {
  color: #fff;
  background-color: #ff0084;
  border-color: #ff0084;
}
.btn-flickr:not(:disabled):not(.disabled):active, .btn-flickr:not(:disabled):not(.disabled).active, .show > .btn-flickr.dropdown-toggle {
  color: #fff;
  background-color: #cc006a;
  border-color: #bf0063;
}
.btn-flickr:not(:disabled):not(.disabled):active:focus, .btn-flickr:not(:disabled):not(.disabled).active:focus, .show > .btn-flickr.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(255, 38, 150, 0.5);
}
.btn-tumblr {
  color: #fff;
  background-color: #32506d;
  border-color: #32506d;
}
.btn-tumblr:hover {
  color: #fff;
  background-color: #263d53;
  border-color: #22364a;
}
.btn-tumblr:focus, .btn-tumblr.focus {
  box-shadow: 0 0 0 0.2rem rgba(81, 106, 131, 0.5);
}
.btn-tumblr.disabled, .btn-tumblr:disabled {
  color: #fff;
  background-color: #32506d;
  border-color: #32506d;
}
.btn-tumblr:not(:disabled):not(.disabled):active, .btn-tumblr:not(:disabled):not(.disabled).active, .show > .btn-tumblr.dropdown-toggle {
  color: #fff;
  background-color: #22364a;
  border-color: #1e3041;
}
.btn-tumblr:not(:disabled):not(.disabled):active:focus, .btn-tumblr:not(:disabled):not(.disabled).active:focus, .show > .btn-tumblr.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(81, 106, 131, 0.5);
}
.btn-xing {
  color: #fff;
  background-color: #026466;
  border-color: #026466;
}
.btn-xing:hover {
  color: #fff;
  background-color: #013f40;
  border-color: #013334;
}
.btn-xing:focus, .btn-xing.focus {
  box-shadow: 0 0 0 0.2rem rgba(40, 123, 125, 0.5);
}
.btn-xing.disabled, .btn-xing:disabled {
  color: #fff;
  background-color: #026466;
  border-color: #026466;
}
.btn-xing:not(:disabled):not(.disabled):active, .btn-xing:not(:disabled):not(.disabled).active, .show > .btn-xing.dropdown-toggle {
  color: #fff;
  background-color: #013334;
  border-color: #012727;
}
.btn-xing:not(:disabled):not(.disabled):active:focus, .btn-xing:not(:disabled):not(.disabled).active:focus, .show > .btn-xing.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(40, 123, 125, 0.5);
}
.btn-github {
  color: #fff;
  background-color: #4183c4;
  border-color: #4183c4;
}
.btn-github:hover {
  color: #fff;
  background-color: #3570aa;
  border-color: #3269a0;
}
.btn-github:focus, .btn-github.focus {
  box-shadow: 0 0 0 0.2rem rgba(94, 150, 205, 0.5);
}
.btn-github.disabled, .btn-github:disabled {
  color: #fff;
  background-color: #4183c4;
  border-color: #4183c4;
}
.btn-github:not(:disabled):not(.disabled):active, .btn-github:not(:disabled):not(.disabled).active, .show > .btn-github.dropdown-toggle {
  color: #fff;
  background-color: #3269a0;
  border-color: #2f6397;
}
.btn-github:not(:disabled):not(.disabled):active:focus, .btn-github:not(:disabled):not(.disabled).active:focus, .show > .btn-github.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(94, 150, 205, 0.5);
}
.btn-html5 {
  color: #fff;
  background-color: #e34f26;
  border-color: #e34f26;
}
.btn-html5:hover {
  color: #fff;
  background-color: #c9401a;
  border-color: #be3c18;
}
.btn-html5:focus, .btn-html5.focus {
  box-shadow: 0 0 0 0.2rem rgba(231, 105, 71, 0.5);
}
.btn-html5.disabled, .btn-html5:disabled {
  color: #fff;
  background-color: #e34f26;
  border-color: #e34f26;
}
.btn-html5:not(:disabled):not(.disabled):active, .btn-html5:not(:disabled):not(.disabled).active, .show > .btn-html5.dropdown-toggle {
  color: #fff;
  background-color: #be3c18;
  border-color: #b23917;
}
.btn-html5:not(:disabled):not(.disabled):active:focus, .btn-html5:not(:disabled):not(.disabled).active:focus, .show > .btn-html5.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(231, 105, 71, 0.5);
}
.btn-openid {
  color: #23282c;
  background-color: #f78c40;
  border-color: #f78c40;
}
.btn-openid:hover {
  color: #fff;
  background-color: #f5761b;
  border-color: #f56f0f;
}
.btn-openid:focus, .btn-openid.focus {
  box-shadow: 0 0 0 0.2rem rgba(215, 125, 61, 0.5);
}
.btn-openid.disabled, .btn-openid:disabled {
  color: #23282c;
  background-color: #f78c40;
  border-color: #f78c40;
}
.btn-openid:not(:disabled):not(.disabled):active, .btn-openid:not(:disabled):not(.disabled).active, .show > .btn-openid.dropdown-toggle {
  color: #fff;
  background-color: #f56f0f;
  border-color: #ed680a;
}
.btn-openid:not(:disabled):not(.disabled):active:focus, .btn-openid:not(:disabled):not(.disabled).active:focus, .show > .btn-openid.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(215, 125, 61, 0.5);
}
.btn-stack-overflow {
  color: #fff;
  background-color: #fe7a15;
  border-color: #fe7a15;
}
.btn-stack-overflow:hover {
  color: #fff;
  background-color: #ec6701;
  border-color: #df6101;
}
.btn-stack-overflow:focus, .btn-stack-overflow.focus {
  box-shadow: 0 0 0 0.2rem rgba(254, 142, 56, 0.5);
}
.btn-stack-overflow.disabled, .btn-stack-overflow:disabled {
  color: #fff;
  background-color: #fe7a15;
  border-color: #fe7a15;
}
.btn-stack-overflow:not(:disabled):not(.disabled):active, .btn-stack-overflow:not(:disabled):not(.disabled).active, .show > .btn-stack-overflow.dropdown-toggle {
  color: #fff;
  background-color: #df6101;
  border-color: #d25c01;
}
.btn-stack-overflow:not(:disabled):not(.disabled):active:focus, .btn-stack-overflow:not(:disabled):not(.disabled).active:focus, .show > .btn-stack-overflow.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(254, 142, 56, 0.5);
}
.btn-youtube {
  color: #fff;
  background-color: #b00;
  border-color: #b00;
}
.btn-youtube:hover {
  color: #fff;
  background-color: #950000;
  border-color: #880000;
}
.btn-youtube:focus, .btn-youtube.focus {
  box-shadow: 0 0 0 0.2rem rgba(197, 38, 38, 0.5);
}
.btn-youtube.disabled, .btn-youtube:disabled {
  color: #fff;
  background-color: #b00;
  border-color: #b00;
}
.btn-youtube:not(:disabled):not(.disabled):active, .btn-youtube:not(:disabled):not(.disabled).active, .show > .btn-youtube.dropdown-toggle {
  color: #fff;
  background-color: #880000;
  border-color: #7b0000;
}
.btn-youtube:not(:disabled):not(.disabled):active:focus, .btn-youtube:not(:disabled):not(.disabled).active:focus, .show > .btn-youtube.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(197, 38, 38, 0.5);
}
.btn-css3 {
  color: #fff;
  background-color: #0170ba;
  border-color: #0170ba;
}
.btn-css3:hover {
  color: #fff;
  background-color: #015994;
  border-color: #015187;
}
.btn-css3:focus, .btn-css3.focus {
  box-shadow: 0 0 0 0.2rem rgba(39, 133, 196, 0.5);
}
.btn-css3.disabled, .btn-css3:disabled {
  color: #fff;
  background-color: #0170ba;
  border-color: #0170ba;
}
.btn-css3:not(:disabled):not(.disabled):active, .btn-css3:not(:disabled):not(.disabled).active, .show > .btn-css3.dropdown-toggle {
  color: #fff;
  background-color: #015187;
  border-color: #014a7b;
}
.btn-css3:not(:disabled):not(.disabled):active:focus, .btn-css3:not(:disabled):not(.disabled).active:focus, .show > .btn-css3.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(39, 133, 196, 0.5);
}
.btn-dribbble {
  color: #fff;
  background-color: #ea4c89;
  border-color: #ea4c89;
}
.btn-dribbble:hover {
  color: #fff;
  background-color: #e62a72;
  border-color: #e51e6b;
}
.btn-dribbble:focus, .btn-dribbble.focus {
  box-shadow: 0 0 0 0.2rem rgba(237, 103, 155, 0.5);
}
.btn-dribbble.disabled, .btn-dribbble:disabled {
  color: #fff;
  background-color: #ea4c89;
  border-color: #ea4c89;
}
.btn-dribbble:not(:disabled):not(.disabled):active, .btn-dribbble:not(:disabled):not(.disabled).active, .show > .btn-dribbble.dropdown-toggle {
  color: #fff;
  background-color: #e51e6b;
  border-color: #dc1a65;
}
.btn-dribbble:not(:disabled):not(.disabled):active:focus, .btn-dribbble:not(:disabled):not(.disabled).active:focus, .show > .btn-dribbble.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(237, 103, 155, 0.5);
}
.btn-instagram {
  color: #fff;
  background-color: #517fa4;
  border-color: #517fa4;
}
.btn-instagram:hover {
  color: #fff;
  background-color: #446b8a;
  border-color: #406582;
}
.btn-instagram:focus, .btn-instagram.focus {
  box-shadow: 0 0 0 0.2rem rgba(107, 146, 178, 0.5);
}
.btn-instagram.disabled, .btn-instagram:disabled {
  color: #fff;
  background-color: #517fa4;
  border-color: #517fa4;
}
.btn-instagram:not(:disabled):not(.disabled):active, .btn-instagram:not(:disabled):not(.disabled).active, .show > .btn-instagram.dropdown-toggle {
  color: #fff;
  background-color: #406582;
  border-color: #3c5e79;
}
.btn-instagram:not(:disabled):not(.disabled):active:focus, .btn-instagram:not(:disabled):not(.disabled).active:focus, .show > .btn-instagram.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(107, 146, 178, 0.5);
}
.btn-pinterest {
  color: #fff;
  background-color: #cb2027;
  border-color: #cb2027;
}
.btn-pinterest:hover {
  color: #fff;
  background-color: #aa1b21;
  border-color: #9f191f;
}
.btn-pinterest:focus, .btn-pinterest.focus {
  box-shadow: 0 0 0 0.2rem rgba(211, 65, 71, 0.5);
}
.btn-pinterest.disabled, .btn-pinterest:disabled {
  color: #fff;
  background-color: #cb2027;
  border-color: #cb2027;
}
.btn-pinterest:not(:disabled):not(.disabled):active, .btn-pinterest:not(:disabled):not(.disabled).active, .show > .btn-pinterest.dropdown-toggle {
  color: #fff;
  background-color: #9f191f;
  border-color: #94171c;
}
.btn-pinterest:not(:disabled):not(.disabled):active:focus, .btn-pinterest:not(:disabled):not(.disabled).active:focus, .show > .btn-pinterest.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(211, 65, 71, 0.5);
}
.btn-vk {
  color: #fff;
  background-color: #45668e;
  border-color: #45668e;
}
.btn-vk:hover {
  color: #fff;
  background-color: #385474;
  border-color: #344d6c;
}
.btn-vk:focus, .btn-vk.focus {
  box-shadow: 0 0 0 0.2rem rgba(97, 125, 159, 0.5);
}
.btn-vk.disabled, .btn-vk:disabled {
  color: #fff;
  background-color: #45668e;
  border-color: #45668e;
}
.btn-vk:not(:disabled):not(.disabled):active, .btn-vk:not(:disabled):not(.disabled).active, .show > .btn-vk.dropdown-toggle {
  color: #fff;
  background-color: #344d6c;
  border-color: #304763;
}
.btn-vk:not(:disabled):not(.disabled):active:focus, .btn-vk:not(:disabled):not(.disabled).active:focus, .show > .btn-vk.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(97, 125, 159, 0.5);
}
.btn-yahoo {
  color: #fff;
  background-color: #400191;
  border-color: #400191;
}
.btn-yahoo:hover {
  color: #fff;
  background-color: #2f016b;
  border-color: #2a015e;
}
.btn-yahoo:focus, .btn-yahoo.focus {
  box-shadow: 0 0 0 0.2rem rgba(93, 39, 162, 0.5);
}
.btn-yahoo.disabled, .btn-yahoo:disabled {
  color: #fff;
  background-color: #400191;
  border-color: #400191;
}
.btn-yahoo:not(:disabled):not(.disabled):active, .btn-yahoo:not(:disabled):not(.disabled).active, .show > .btn-yahoo.dropdown-toggle {
  color: #fff;
  background-color: #2a015e;
  border-color: #240152;
}
.btn-yahoo:not(:disabled):not(.disabled):active:focus, .btn-yahoo:not(:disabled):not(.disabled).active:focus, .show > .btn-yahoo.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(93, 39, 162, 0.5);
}
.btn-behance {
  color: #fff;
  background-color: #1769ff;
  border-color: #1769ff;
}
.btn-behance:hover {
  color: #fff;
  background-color: #0055f0;
  border-color: #0050e3;
}
.btn-behance:focus, .btn-behance.focus {
  box-shadow: 0 0 0 0.2rem rgba(58, 128, 255, 0.5);
}
.btn-behance.disabled, .btn-behance:disabled {
  color: #fff;
  background-color: #1769ff;
  border-color: #1769ff;
}
.btn-behance:not(:disabled):not(.disabled):active, .btn-behance:not(:disabled):not(.disabled).active, .show > .btn-behance.dropdown-toggle {
  color: #fff;
  background-color: #0050e3;
  border-color: #004cd6;
}
.btn-behance:not(:disabled):not(.disabled):active:focus, .btn-behance:not(:disabled):not(.disabled).active:focus, .show > .btn-behance.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(58, 128, 255, 0.5);
}
.btn-dropbox {
  color: #fff;
  background-color: #007ee5;
  border-color: #007ee5;
}
.btn-dropbox:hover {
  color: #fff;
  background-color: #0069bf;
  border-color: #0062b2;
}
.btn-dropbox:focus, .btn-dropbox.focus {
  box-shadow: 0 0 0 0.2rem rgba(38, 145, 233, 0.5);
}
.btn-dropbox.disabled, .btn-dropbox:disabled {
  color: #fff;
  background-color: #007ee5;
  border-color: #007ee5;
}
.btn-dropbox:not(:disabled):not(.disabled):active, .btn-dropbox:not(:disabled):not(.disabled).active, .show > .btn-dropbox.dropdown-toggle {
  color: #fff;
  background-color: #0062b2;
  border-color: #005ba5;
}
.btn-dropbox:not(:disabled):not(.disabled):active:focus, .btn-dropbox:not(:disabled):not(.disabled).active:focus, .show > .btn-dropbox.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(38, 145, 233, 0.5);
}
.btn-reddit {
  color: #fff;
  background-color: #ff4500;
  border-color: #ff4500;
}
.btn-reddit:hover {
  color: #fff;
  background-color: #d93b00;
  border-color: #cc3700;
}
.btn-reddit:focus, .btn-reddit.focus {
  box-shadow: 0 0 0 0.2rem rgba(255, 97, 38, 0.5);
}
.btn-reddit.disabled, .btn-reddit:disabled {
  color: #fff;
  background-color: #ff4500;
  border-color: #ff4500;
}
.btn-reddit:not(:disabled):not(.disabled):active, .btn-reddit:not(:disabled):not(.disabled).active, .show > .btn-reddit.dropdown-toggle {
  color: #fff;
  background-color: #cc3700;
  border-color: #bf3400;
}
.btn-reddit:not(:disabled):not(.disabled):active:focus, .btn-reddit:not(:disabled):not(.disabled).active:focus, .show > .btn-reddit.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(255, 97, 38, 0.5);
}
.btn-spotify {
  color: #fff;
  background-color: #7ab800;
  border-color: #7ab800;
}
.btn-spotify:hover {
  color: #fff;
  background-color: #619200;
  border-color: #588500;
}
.btn-spotify:focus, .btn-spotify.focus {
  box-shadow: 0 0 0 0.2rem rgba(142, 195, 38, 0.5);
}
.btn-spotify.disabled, .btn-spotify:disabled {
  color: #fff;
  background-color: #7ab800;
  border-color: #7ab800;
}
.btn-spotify:not(:disabled):not(.disabled):active, .btn-spotify:not(:disabled):not(.disabled).active, .show > .btn-spotify.dropdown-toggle {
  color: #fff;
  background-color: #588500;
  border-color: #507800;
}
.btn-spotify:not(:disabled):not(.disabled):active:focus, .btn-spotify:not(:disabled):not(.disabled).active:focus, .show > .btn-spotify.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(142, 195, 38, 0.5);
}
.btn-vine {
  color: #fff;
  background-color: #00bf8f;
  border-color: #00bf8f;
}
.btn-vine:hover {
  color: #fff;
  background-color: #009972;
  border-color: #008c69;
}
.btn-vine:focus, .btn-vine.focus {
  box-shadow: 0 0 0 0.2rem rgba(38, 201, 160, 0.5);
}
.btn-vine.disabled, .btn-vine:disabled {
  color: #fff;
  background-color: #00bf8f;
  border-color: #00bf8f;
}
.btn-vine:not(:disabled):not(.disabled):active, .btn-vine:not(:disabled):not(.disabled).active, .show > .btn-vine.dropdown-toggle {
  color: #fff;
  background-color: #008c69;
  border-color: #007f5f;
}
.btn-vine:not(:disabled):not(.disabled):active:focus, .btn-vine:not(:disabled):not(.disabled).active:focus, .show > .btn-vine.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(38, 201, 160, 0.5);
}
.btn-foursquare {
  color: #fff;
  background-color: #1073af;
  border-color: #1073af;
}
.btn-foursquare:hover {
  color: #fff;
  background-color: #0d5c8c;
  border-color: #0c5480;
}
.btn-foursquare:focus, .btn-foursquare.focus {
  box-shadow: 0 0 0 0.2rem rgba(52, 136, 187, 0.5);
}
.btn-foursquare.disabled, .btn-foursquare:disabled {
  color: #fff;
  background-color: #1073af;
  border-color: #1073af;
}
.btn-foursquare:not(:disabled):not(.disabled):active, .btn-foursquare:not(:disabled):not(.disabled).active, .show > .btn-foursquare.dropdown-toggle {
  color: #fff;
  background-color: #0c5480;
  border-color: #0b4d75;
}
.btn-foursquare:not(:disabled):not(.disabled):active:focus, .btn-foursquare:not(:disabled):not(.disabled).active:focus, .show > .btn-foursquare.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(52, 136, 187, 0.5);
}
.btn-vimeo {
  color: #23282c;
  background-color: #aad450;
  border-color: #aad450;
}
.btn-vimeo:hover {
  color: #23282c;
  background-color: #9bcc32;
  border-color: #93c130;
}
.btn-vimeo:focus, .btn-vimeo.focus {
  box-shadow: 0 0 0 0.2rem rgba(150, 186, 75, 0.5);
}
.btn-vimeo.disabled, .btn-vimeo:disabled {
  color: #23282c;
  background-color: #aad450;
  border-color: #aad450;
}
.btn-vimeo:not(:disabled):not(.disabled):active, .btn-vimeo:not(:disabled):not(.disabled).active, .show > .btn-vimeo.dropdown-toggle {
  color: #23282c;
  background-color: #93c130;
  border-color: #8bb72d;
}
.btn-vimeo:not(:disabled):not(.disabled):active:focus, .btn-vimeo:not(:disabled):not(.disabled).active:focus, .show > .btn-vimeo.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(150, 186, 75, 0.5);
}
*[dir=rtl] .btn-group > .btn:not(:first-child),
*[dir=rtl] .btn-group > .btn-group:not(:first-child) {
  margin-right: -1px;
}
*[dir=rtl] .btn-group > .btn:not(:last-child):not(.dropdown-toggle),
*[dir=rtl] .btn-group > .btn-group:not(:last-child) > .btn {
  border-radius: 0.25rem;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
*[dir=rtl] .btn-group > .btn:not(:first-child),
*[dir=rtl] .btn-group > .btn-group:not(:first-child) > .btn {
  border-radius: 0.25rem;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
*[dir=rtl] .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.btn-transparent {
  color: #fff;
  background-color: transparent;
  border-color: transparent;
}
.btn [class^=icon-],
.btn [class*=" icon-"] {
  display: inline-block;
  margin-top: -2px;
  vertical-align: middle;
}
.btn-pill {
  border-radius: 50em;
}
.btn-square {
  border-radius: 0;
}
.btn-ghost-primary {
  color: #20a8d8;
  background-color: transparent;
  background-image: none;
  border-color: transparent;
}
.btn-ghost-primary:hover {
  color: #fff;
  background-color: #20a8d8;
  border-color: #20a8d8;
}
.btn-ghost-primary:focus, .btn-ghost-primary.focus {
  box-shadow: 0 0 0 0.2rem rgba(32, 168, 216, 0.5);
}
.btn-ghost-primary.disabled, .btn-ghost-primary:disabled {
  color: #20a8d8;
  background-color: transparent;
  border-color: transparent;
}
.btn-ghost-primary:not(:disabled):not(.disabled):active, .btn-ghost-primary:not(:disabled):not(.disabled).active, .show > .btn-ghost-primary.dropdown-toggle {
  color: #fff;
  background-color: #20a8d8;
  border-color: #20a8d8;
}
.btn-ghost-primary:not(:disabled):not(.disabled):active:focus, .btn-ghost-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-ghost-primary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(32, 168, 216, 0.5);
}
.btn-ghost-secondary {
  color: #c8ced3;
  background-color: transparent;
  background-image: none;
  border-color: transparent;
}
.btn-ghost-secondary:hover {
  color: #23282c;
  background-color: #c8ced3;
  border-color: #c8ced3;
}
.btn-ghost-secondary:focus, .btn-ghost-secondary.focus {
  box-shadow: 0 0 0 0.2rem rgba(200, 206, 211, 0.5);
}
.btn-ghost-secondary.disabled, .btn-ghost-secondary:disabled {
  color: #c8ced3;
  background-color: transparent;
  border-color: transparent;
}
.btn-ghost-secondary:not(:disabled):not(.disabled):active, .btn-ghost-secondary:not(:disabled):not(.disabled).active, .show > .btn-ghost-secondary.dropdown-toggle {
  color: #23282c;
  background-color: #c8ced3;
  border-color: #c8ced3;
}
.btn-ghost-secondary:not(:disabled):not(.disabled):active:focus, .btn-ghost-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-ghost-secondary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(200, 206, 211, 0.5);
}
.btn-ghost-success {
  color: #4dbd74;
  background-color: transparent;
  background-image: none;
  border-color: transparent;
}
.btn-ghost-success:hover {
  color: #fff;
  background-color: #4dbd74;
  border-color: #4dbd74;
}
.btn-ghost-success:focus, .btn-ghost-success.focus {
  box-shadow: 0 0 0 0.2rem rgba(77, 189, 116, 0.5);
}
.btn-ghost-success.disabled, .btn-ghost-success:disabled {
  color: #4dbd74;
  background-color: transparent;
  border-color: transparent;
}
.btn-ghost-success:not(:disabled):not(.disabled):active, .btn-ghost-success:not(:disabled):not(.disabled).active, .show > .btn-ghost-success.dropdown-toggle {
  color: #fff;
  background-color: #4dbd74;
  border-color: #4dbd74;
}
.btn-ghost-success:not(:disabled):not(.disabled):active:focus, .btn-ghost-success:not(:disabled):not(.disabled).active:focus, .show > .btn-ghost-success.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(77, 189, 116, 0.5);
}
.btn-ghost-info {
  color: #63c2de;
  background-color: transparent;
  background-image: none;
  border-color: transparent;
}
.btn-ghost-info:hover {
  color: #23282c;
  background-color: #63c2de;
  border-color: #63c2de;
}
.btn-ghost-info:focus, .btn-ghost-info.focus {
  box-shadow: 0 0 0 0.2rem rgba(99, 194, 222, 0.5);
}
.btn-ghost-info.disabled, .btn-ghost-info:disabled {
  color: #63c2de;
  background-color: transparent;
  border-color: transparent;
}
.btn-ghost-info:not(:disabled):not(.disabled):active, .btn-ghost-info:not(:disabled):not(.disabled).active, .show > .btn-ghost-info.dropdown-toggle {
  color: #23282c;
  background-color: #63c2de;
  border-color: #63c2de;
}
.btn-ghost-info:not(:disabled):not(.disabled):active:focus, .btn-ghost-info:not(:disabled):not(.disabled).active:focus, .show > .btn-ghost-info.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(99, 194, 222, 0.5);
}
.btn-ghost-warning {
  color: #ffc107;
  background-color: transparent;
  background-image: none;
  border-color: transparent;
}
.btn-ghost-warning:hover {
  color: #23282c;
  background-color: #ffc107;
  border-color: #ffc107;
}
.btn-ghost-warning:focus, .btn-ghost-warning.focus {
  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
}
.btn-ghost-warning.disabled, .btn-ghost-warning:disabled {
  color: #ffc107;
  background-color: transparent;
  border-color: transparent;
}
.btn-ghost-warning:not(:disabled):not(.disabled):active, .btn-ghost-warning:not(:disabled):not(.disabled).active, .show > .btn-ghost-warning.dropdown-toggle {
  color: #23282c;
  background-color: #ffc107;
  border-color: #ffc107;
}
.btn-ghost-warning:not(:disabled):not(.disabled):active:focus, .btn-ghost-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-ghost-warning.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
}
.btn-ghost-danger {
  color: #f86c6b;
  background-color: transparent;
  background-image: none;
  border-color: transparent;
}
.btn-ghost-danger:hover {
  color: #fff;
  background-color: #f86c6b;
  border-color: #f86c6b;
}
.btn-ghost-danger:focus, .btn-ghost-danger.focus {
  box-shadow: 0 0 0 0.2rem rgba(248, 108, 107, 0.5);
}
.btn-ghost-danger.disabled, .btn-ghost-danger:disabled {
  color: #f86c6b;
  background-color: transparent;
  border-color: transparent;
}
.btn-ghost-danger:not(:disabled):not(.disabled):active, .btn-ghost-danger:not(:disabled):not(.disabled).active, .show > .btn-ghost-danger.dropdown-toggle {
  color: #fff;
  background-color: #f86c6b;
  border-color: #f86c6b;
}
.btn-ghost-danger:not(:disabled):not(.disabled):active:focus, .btn-ghost-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-ghost-danger.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(248, 108, 107, 0.5);
}
.btn-ghost-light {
  color: #f0f3f5;
  background-color: transparent;
  background-image: none;
  border-color: transparent;
}
.btn-ghost-light:hover {
  color: #23282c;
  background-color: #f0f3f5;
  border-color: #f0f3f5;
}
.btn-ghost-light:focus, .btn-ghost-light.focus {
  box-shadow: 0 0 0 0.2rem rgba(240, 243, 245, 0.5);
}
.btn-ghost-light.disabled, .btn-ghost-light:disabled {
  color: #f0f3f5;
  background-color: transparent;
  border-color: transparent;
}
.btn-ghost-light:not(:disabled):not(.disabled):active, .btn-ghost-light:not(:disabled):not(.disabled).active, .show > .btn-ghost-light.dropdown-toggle {
  color: #23282c;
  background-color: #f0f3f5;
  border-color: #f0f3f5;
}
.btn-ghost-light:not(:disabled):not(.disabled):active:focus, .btn-ghost-light:not(:disabled):not(.disabled).active:focus, .show > .btn-ghost-light.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(240, 243, 245, 0.5);
}
.btn-ghost-dark {
  color: #2f353a;
  background-color: transparent;
  background-image: none;
  border-color: transparent;
}
.btn-ghost-dark:hover {
  color: #fff;
  background-color: #2f353a;
  border-color: #2f353a;
}
.btn-ghost-dark:focus, .btn-ghost-dark.focus {
  box-shadow: 0 0 0 0.2rem rgba(47, 53, 58, 0.5);
}
.btn-ghost-dark.disabled, .btn-ghost-dark:disabled {
  color: #2f353a;
  background-color: transparent;
  border-color: transparent;
}
.btn-ghost-dark:not(:disabled):not(.disabled):active, .btn-ghost-dark:not(:disabled):not(.disabled).active, .show > .btn-ghost-dark.dropdown-toggle {
  color: #fff;
  background-color: #2f353a;
  border-color: #2f353a;
}
.btn-ghost-dark:not(:disabled):not(.disabled):active:focus, .btn-ghost-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-ghost-dark.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(47, 53, 58, 0.5);
}
.callout {
  position: relative;
  padding: 0 1rem;
  margin: 1rem 0;
  border-left: 4px solid #c8ced3;
  border-radius: 0.25rem;
}
.callout .chart-wrapper {
  position: absolute;
  top: 10px;
  left: 50%;
  float: right;
  width: 50%;
}
.callout-bordered {
  border: 1px solid #c8ced3;
  border-left-width: 4px;
}
.callout code {
  border-radius: 0.25rem;
}
.callout h4 {
  margin-top: 0;
  margin-bottom: 0.25rem;
}
.callout p:last-child {
  margin-bottom: 0;
}
.callout + .callout {
  margin-top: -0.25rem;
}
.callout-primary {
  border-left-color: #20a8d8;
}
.callout-primary h4 {
  color: #20a8d8;
}
.callout-secondary {
  border-left-color: #c8ced3;
}
.callout-secondary h4 {
  color: #c8ced3;
}
.callout-success {
  border-left-color: #4dbd74;
}
.callout-success h4 {
  color: #4dbd74;
}
.callout-info {
  border-left-color: #63c2de;
}
.callout-info h4 {
  color: #63c2de;
}
.callout-warning {
  border-left-color: #ffc107;
}
.callout-warning h4 {
  color: #ffc107;
}
.callout-danger {
  border-left-color: #f86c6b;
}
.callout-danger h4 {
  color: #f86c6b;
}
.callout-light {
  border-left-color: #f0f3f5;
}
.callout-light h4 {
  color: #f0f3f5;
}
.callout-dark {
  border-left-color: #2f353a;
}
.callout-dark h4 {
  color: #2f353a;
}
*[dir=rtl] .callout {
  border-right: 4px solid #c8ced3;
  border-left: 0;
}
*[dir=rtl] .callout.callout-primary {
  border-right-color: #20a8d8;
}
*[dir=rtl] .callout.callout-secondary {
  border-right-color: #c8ced3;
}
*[dir=rtl] .callout.callout-success {
  border-right-color: #4dbd74;
}
*[dir=rtl] .callout.callout-info {
  border-right-color: #63c2de;
}
*[dir=rtl] .callout.callout-warning {
  border-right-color: #ffc107;
}
*[dir=rtl] .callout.callout-danger {
  border-right-color: #f86c6b;
}
*[dir=rtl] .callout.callout-light {
  border-right-color: #f0f3f5;
}
*[dir=rtl] .callout.callout-dark {
  border-right-color: #2f353a;
}
*[dir=rtl] .callout .chart-wrapper {
  left: 0;
  float: left;
}
.card {
  margin-bottom: 1.5rem;
}
.card.bg-primary {
  border-color: #187da0;
}
.card.bg-primary .card-header {
  background-color: #1e9ecb;
  border-color: #187da0;
}
.card.bg-secondary {
  border-color: #a5aeb7;
}
.card.bg-secondary .card-header {
  background-color: #c0c6cc;
  border-color: #a5aeb7;
}
.card.bg-success {
  border-color: #379457;
}
.card.bg-success .card-header {
  background-color: #44b76c;
  border-color: #379457;
}
.card.bg-info {
  border-color: #2eadd3;
}
.card.bg-info .card-header {
  background-color: #56bddb;
  border-color: #2eadd3;
}
.card.bg-warning {
  border-color: #c69500;
}
.card.bg-warning .card-header {
  background-color: #f7b900;
  border-color: #c69500;
}
.card.bg-danger {
  border-color: #f5302e;
}
.card.bg-danger .card-header {
  background-color: #f75d5c;
  border-color: #f5302e;
}
.card.bg-light {
  border-color: #cad4dc;
}
.card.bg-light .card-header {
  background-color: #e7ecef;
  border-color: #cad4dc;
}
.card.bg-dark {
  border-color: #121517;
}
.card.bg-dark .card-header {
  background-color: #282d32;
  border-color: #121517;
}
.card.drag,
.card .drag {
  cursor: move;
}
.card-placeholder {
  background: rgba(0, 0, 0, 0.025);
  border: 1px dashed #c8ced3;
}
.card-header > i {
  margin-right: 0.5rem;
}
.card-header .nav-tabs {
  margin-top: -0.75rem;
  margin-bottom: -0.75rem;
  border-bottom: 0;
}
.card-header .nav-tabs .nav-item {
  border-top: 0;
}
.card-header .nav-tabs .nav-link {
  padding: 0.75rem 0.625rem;
  color: #73818f;
  border-top: 0;
}
.card-header .nav-tabs .nav-link.active {
  color: #23282c;
  background: #fff;
}
*[dir=rtl] .card-header > i {
  margin-right: 0;
  margin-left: 0.5rem;
}
.card-header-icon-bg {
  display: inline-block;
  width: 2.8125rem;
  padding: 0.75rem 0;
  margin: -0.75rem 1.25rem -0.75rem -1.25rem;
  line-height: inherit;
  color: #23282c;
  text-align: center;
  background: transparent;
  border-right: 1px solid #c8ced3;
}
.card-header-actions {
  display: inline-block;
  float: right;
  margin-right: -0.25rem;
}
*[dir=rtl] .card-header-actions {
  float: left;
  margin-right: auto;
  margin-left: -0.25rem;
}
.card-header-action {
  padding: 0 0.25rem;
  color: #73818f;
}
.card-header-action:hover {
  color: #23282c;
  text-decoration: none;
}
.card-accent-primary {
  border-top-color: #20a8d8;
  border-top-width: 2px;
}
.card-accent-secondary {
  border-top-color: #c8ced3;
  border-top-width: 2px;
}
.card-accent-success {
  border-top-color: #4dbd74;
  border-top-width: 2px;
}
.card-accent-info {
  border-top-color: #63c2de;
  border-top-width: 2px;
}
.card-accent-warning {
  border-top-color: #ffc107;
  border-top-width: 2px;
}
.card-accent-danger {
  border-top-color: #f86c6b;
  border-top-width: 2px;
}
.card-accent-light {
  border-top-color: #f0f3f5;
  border-top-width: 2px;
}
.card-accent-dark {
  border-top-color: #2f353a;
  border-top-width: 2px;
}
.card-full {
  margin-top: -1rem;
  margin-right: -15px;
  margin-left: -15px;
  border: 0;
  border-bottom: 1px solid #c8ced3;
}
@media (min-width: 576px) {
  .card-columns.cols-2 {
    -moz-column-count: 2;
         column-count: 2;
  }
}
.chart-wrapper canvas {
  width: 100%;
}
base-chart.chart {
  display: block;
}
canvas {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}
.chartjs-tooltip {
  position: absolute;
  z-index: 1021;
  display: flex;
  flex-direction: column;
  padding: 0.25rem 0.5rem;
  color: #fff;
  pointer-events: none;
  background: rgba(0, 0, 0, 0.7);
  opacity: 0;
  transition: all 0.25s ease;
  transform: translate(-50%, 0);
  border-radius: 0.25rem;
}
.chartjs-tooltip .tooltip-header {
  margin-bottom: 0.5rem;
}
.chartjs-tooltip .tooltip-header-item {
  font-size: 0.765625rem;
  font-weight: 700;
}
.chartjs-tooltip .tooltip-body-item {
  display: flex;
  align-items: center;
  font-size: 0.765625rem;
  white-space: nowrap;
}
.chartjs-tooltip .tooltip-body-item-color {
  display: inline-block;
  width: 0.875rem;
  height: 0.875rem;
  margin-right: 0.875rem;
}
.chartjs-tooltip .tooltip-body-item-value {
  padding-left: 1rem;
  margin-left: auto;
  font-weight: 700;
}
.dropdown-item {
  position: relative;
  padding: 10px 20px;
  border-bottom: 1px solid #222222;
}
.dropdown-item:last-child {
  border-bottom: 0;
}
.dropdown-item i {
  display: inline-block;
  width: 20px;
  margin-right: 10px;
  margin-left: -10px;
  color: #73818f;
  text-align: center;
}
.dropdown-item .badge {
  position: absolute;
  right: 10px;
  margin-top: 2px;
}
.dropdown-header {
  padding: 8px 20px;
  background: #e4e7ea;
  border-bottom: 1px solid #222222;
}
.dropdown-header .btn {
  margin-top: -7px;
  color: #73818f;
}
.dropdown-header .btn:hover {
  color: #23282c;
}
.dropdown-header .btn.pull-right {
  margin-right: -20px;
}
.dropdown-menu-lg {
  width: 250px;
}
.app-header .navbar-nav .dropdown-menu {
  position: absolute;
}
.app-header .navbar-nav .dropdown-menu-right {
  right: 0;
  left: auto;
}
.app-header .navbar-nav .dropdown-menu-left {
  right: auto;
  left: 0;
}
*[dir=rtl] .dropdown-toggle::before {
  margin-right: 0;
  margin-left: 0.255em;
}
*[dir=rtl] .dropdown-toggle::after {
  margin-right: 0.255em;
  margin-left: 0;
}
.app-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  padding: 0 1rem;
  color: #23282c;
  background: #f0f3f5;
  border-top: 1px solid #c8ced3;
}
.row.row-equal {
  padding-right: 7.5px;
  padding-left: 7.5px;
  margin-right: -15px;
  margin-left: -15px;
}
.row.row-equal [class*=col-] {
  padding-right: 7.5px;
  padding-left: 7.5px;
}
.main .container-fluid {
  padding: 0 30px;
}
.app-header {
  position: relative;
  flex-direction: row;
  height: 55px;
  padding: 0;
  margin: 0;
  background-color: #fff;
  border-bottom: 1px solid #c8ced3;
}
.app-header .navbar-brand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 155px;
  height: 55px;
  padding: 0;
  margin-right: 0;
  background-color: transparent;
}
.app-header .navbar-brand .navbar-brand-minimized {
  display: none;
}
.app-header .navbar-toggler {
  min-width: 50px;
  padding: 0.25rem 0;
}
.app-header .navbar-toggler:hover .navbar-toggler-icon {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='%232f353a' stroke-width='2.25' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}
.app-header .navbar-toggler-icon {
  height: 23px;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='%2373818f' stroke-width='2.25' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}
.app-header .navbar-nav {
  flex-direction: row;
  align-items: center;
}
.app-header .nav-item {
  position: relative;
  min-width: 50px;
  margin: 0;
  text-align: center;
}
.app-header .nav-item button {
  margin: 0 auto;
}
.app-header .nav-item .nav-link {
  padding-top: 0;
  padding-bottom: 0;
  background: 0;
  border: 0;
}
.app-header .nav-item .nav-link .badge {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -16px;
  margin-left: 0;
}
.app-header .nav-item .nav-link > .img-avatar, .app-header .nav-item .avatar.nav-link > img {
  height: 35px;
  margin: 0 10px;
}
.app-header .dropdown-menu {
  padding-bottom: 0;
  line-height: 1.5;
}
.app-header .dropdown-item {
  min-width: 180px;
}
.navbar-nav .nav-link {
  color: #73818f;
}
.navbar-nav .nav-link:hover, .navbar-nav .nav-link:focus {
  color: #2f353a;
}
.navbar-nav .open > .nav-link, .navbar-nav .open > .nav-link:hover, .navbar-nav .open > .nav-link:focus,
.navbar-nav .active > .nav-link,
.navbar-nav .active > .nav-link:hover,
.navbar-nav .active > .nav-link:focus,
.navbar-nav .nav-link.open,
.navbar-nav .nav-link.open:hover,
.navbar-nav .nav-link.open:focus,
.navbar-nav .nav-link.active,
.navbar-nav .nav-link.active:hover,
.navbar-nav .nav-link.active:focus {
  color: #2f353a;
}
.navbar-divider {
  background-color: rgba(0, 0, 0, 0.075);
}
@media (min-width: 992px) {
  .brand-minimized .app-header .navbar-brand {
    width: 50px;
    background-color: transparent;
  }
  .brand-minimized .app-header .navbar-brand .navbar-brand-full {
    display: none;
  }
  .brand-minimized .app-header .navbar-brand .navbar-brand-minimized {
    display: block;
  }
}
.input-group-prepend,
.input-group-append {
  white-space: nowrap;
  vertical-align: middle;
}
*[dir=rtl] .input-group > .form-control,
*[dir=rtl] .input-group > .custom-select {
  border-radius: 0.25rem;
}
*[dir=rtl] .input-group > .form-control:not(:last-child),
*[dir=rtl] .input-group > .custom-select:not(:last-child) {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
*[dir=rtl] .input-group > .form-control:not(:first-child),
*[dir=rtl] .input-group > .custom-select:not(:first-child) {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
*[dir=rtl] .input-group-prepend {
  margin-left: -1px;
}
*[dir=rtl] .input-group-append {
  margin-right: -1px;
}
*[dir=rtl] .input-group > .input-group-prepend > .btn,
*[dir=rtl] .input-group > .input-group-prepend > .input-group-text,
*[dir=rtl] .input-group > .input-group-append:not(:last-child) > .btn,
*[dir=rtl] .input-group > .input-group-append:not(:last-child) > .input-group-text,
*[dir=rtl] .input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
*[dir=rtl] .input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
  border-radius: 0.25rem;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
*[dir=rtl] .input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
*[dir=rtl] .input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
*[dir=rtl] .input-group > .input-group-append > .btn,
*[dir=rtl] .input-group > .input-group-append > .input-group-text,
*[dir=rtl] .input-group > .input-group-prepend:not(:first-child) > .btn,
*[dir=rtl] .input-group > .input-group-prepend:not(:first-child) > .input-group-text,
*[dir=rtl] .input-group > .input-group-prepend:first-child > .btn:not(:first-child),
*[dir=rtl] .input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {
  border-radius: 0.25rem;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
*[dir=rtl] .input-group > .input-group-prepend:first-child > .btn:not(:first-child),
*[dir=rtl] .input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.img-avatar, .avatar > img,
.img-circle {
  max-width: 100%;
  height: auto;
  border-radius: 50em;
}
.list-group-accent .list-group-item {
  margin-bottom: 1px;
  border-top: 0;
  border-right: 0;
  border-bottom: 0;
  border-radius: 0;
}
.list-group-accent .list-group-item.list-group-item-divider {
  position: relative;
}
.list-group-accent .list-group-item.list-group-item-divider::before {
  position: absolute;
  bottom: -1px;
  left: 5%;
  width: 90%;
  height: 1px;
  content: "";
  background-color: #e4e7ea;
}
.list-group-item-accent-primary {
  border-left: 4px solid #20a8d8;
}
.list-group-item-accent-secondary {
  border-left: 4px solid #c8ced3;
}
.list-group-item-accent-success {
  border-left: 4px solid #4dbd74;
}
.list-group-item-accent-info {
  border-left: 4px solid #63c2de;
}
.list-group-item-accent-warning {
  border-left: 4px solid #ffc107;
}
.list-group-item-accent-danger {
  border-left: 4px solid #f86c6b;
}
.list-group-item-accent-light {
  border-left: 4px solid #f0f3f5;
}
.list-group-item-accent-dark {
  border-left: 4px solid #2f353a;
}
.modal-primary .modal-content {
  border-color: #20a8d8;
}
.modal-primary .modal-header {
  color: #fff;
  background-color: #20a8d8;
}
.modal-secondary .modal-content {
  border-color: #c8ced3;
}
.modal-secondary .modal-header {
  color: #fff;
  background-color: #c8ced3;
}
.modal-success .modal-content {
  border-color: #4dbd74;
}
.modal-success .modal-header {
  color: #fff;
  background-color: #4dbd74;
}
.modal-info .modal-content {
  border-color: #63c2de;
}
.modal-info .modal-header {
  color: #fff;
  background-color: #63c2de;
}
.modal-warning .modal-content {
  border-color: #ffc107;
}
.modal-warning .modal-header {
  color: #fff;
  background-color: #ffc107;
}
.modal-danger .modal-content {
  border-color: #f86c6b;
}
.modal-danger .modal-header {
  color: #fff;
  background-color: #f86c6b;
}
.modal-light .modal-content {
  border-color: #f0f3f5;
}
.modal-light .modal-header {
  color: #fff;
  background-color: #f0f3f5;
}
.modal-dark .modal-content {
  border-color: #2f353a;
}
.modal-dark .modal-header {
  color: #fff;
  background-color: #2f353a;
}
.nav-tabs .nav-link {
  color: #73818f;
}
.nav-tabs .nav-link:hover {
  cursor: pointer;
}
.tab-content {
  margin-top: -1px;
  background: #fff;
  border: 1px solid #c8ced3;
  border-radius: 0 0 0.25rem 0.25rem;
}
.tab-content .tab-pane {
  padding: 1rem;
}
.card-block .tab-content {
  margin-top: 0;
  border: 0;
}
.nav-fill .nav-link {
  background-color: #fff;
  border-color: #c8ced3;
}
.nav-fill .nav-link + .nav-link {
  margin-left: -1px;
}
.nav-fill .nav-link.active {
  margin-top: -1px;
  border-top: 2px solid #20a8d8;
}
*[dir=rtl] .nav {
  padding-right: 0;
}
.progress-xs {
  height: 4px;
}
.progress-sm {
  height: 8px;
}
.progress-white {
  background-color: rgba(255, 255, 255, 0.2);
}
.progress-white .progress-bar {
  background-color: #fff;
}
.progress-group {
  display: flex;
  flex-flow: row wrap;
  margin-bottom: 1rem;
}
.progress-group-prepend {
  flex: 0 0 100px;
  align-self: center;
}
.progress-group-icon {
  margin: 0 1rem 0 0.25rem;
  font-size: 1.09375rem;
}
.progress-group-text {
  font-size: 0.765625rem;
  color: #73818f;
}
.progress-group-header {
  display: flex;
  flex-basis: 100%;
  align-items: flex-end;
  margin-bottom: 0.25rem;
}
.progress-group-bars {
  flex-grow: 1;
  align-self: center;
}
.progress-group-bars .progress:not(:last-child) {
  margin-bottom: 2px;
}
.progress-group-header + .progress-group-bars {
  flex-basis: 100%;
}
.sidebar {
  display: flex;
  flex-direction: column;
  padding: 0;
  color: #fff;
  background: #2f353a;
}
.sidebar .sidebar-close {
  position: absolute;
  right: 0;
  display: none;
  padding: 0 1rem;
  font-size: 24px;
  font-weight: 800;
  line-height: 55px;
  color: #fff;
  background: 0;
  border: 0;
  opacity: 0.8;
}
.sidebar .sidebar-close:hover {
  opacity: 1;
}
.sidebar .sidebar-header {
  flex: 0 0 auto;
  padding: 0.75rem 1rem;
  text-align: center;
  background: rgba(0, 0, 0, 0.2);
}
.sidebar .sidebar-form .form-control {
  color: #fff;
  background: #181b1e;
  border: 0;
}
.sidebar .sidebar-form .form-control::-moz-placeholder {
  color: rgba(255, 255, 255, 0.7);
}
.sidebar .sidebar-form .form-control:-ms-input-placeholder {
  color: rgba(255, 255, 255, 0.7);
}
.sidebar .sidebar-form .form-control::placeholder {
  color: rgba(255, 255, 255, 0.7);
}
.sidebar .sidebar-scroll {
  position: relative;
  flex: 1;
  overflow-x: hidden;
  overflow-y: auto;
  width: 300px;
}
.sidebar .sidebar-nav {
  position: relative;
  flex: 1;
  width: 300px;
}
.sidebar > .sidebar-nav {
  overflow-x: hidden;
  overflow-y: auto;
}
.sidebar .nav {
  width: 300px;
  flex-direction: column;
  min-height: 100%;
  padding: 0;
}
.sidebar .nav-title {
  padding: 0.75rem 1rem;
  font-size: 80%;
  font-weight: 700;
  color: #e4e7ea;
  text-transform: uppercase;
}
.sidebar .nav-divider {
  height: 10px;
}
.sidebar .nav-item {
  position: relative;
  margin: 0;
  transition: background 0.3s ease-in-out;
}
.sidebar .nav-dropdown-items {
  max-height: 0;
  padding: 0;
  margin: 0;
  overflow-y: hidden;
  transition: max-height 0.3s ease-in-out;
}
.sidebar .nav-dropdown-items .nav-item {
  padding: 0;
  list-style: none;
}
.sidebar .nav-link {
  display: block;
  padding: 0.75rem 1rem;
  color: #fff;
  text-decoration: none;
  background: transparent;
}
.sidebar .nav-link .nav-icon {
  display: inline-block;
  width: 1.09375rem;
  margin: 0 0.5rem 0 0;
  font-size: 0.875rem;
  color: #73818f;
  text-align: center;
}
.sidebar .nav-link .badge {
  float: right;
  margin-top: 2px;
}
.sidebar .nav-link.active {
  color: #fff;
  background: #3a4248;
}
.sidebar .nav-link.active .nav-icon {
  color: #20a8d8;
}
.sidebar .nav-link:hover {
  color: #fff;
  background: #20a8d8;
}
.sidebar .nav-link:hover .nav-icon {
  color: #fff;
}
.sidebar .nav-link:hover.nav-dropdown-toggle::before {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='%23fff' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E");
}
.sidebar .nav-link.disabled {
  color: #b3b3b3;
  cursor: default;
  background: transparent;
}
.sidebar .nav-link.disabled .nav-icon {
  color: #73818f;
}
.sidebar .nav-link.disabled:hover {
  color: #b3b3b3;
}
.sidebar .nav-link.disabled:hover .nav-icon {
  color: #73818f;
}
.sidebar .nav-link.disabled:hover.nav-dropdown-toggle::before {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='%23fff' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E");
}
.sidebar .nav-link.nav-link-primary {
  background: #20a8d8;
}
.sidebar .nav-link.nav-link-primary .nav-icon {
  color: rgba(255, 255, 255, 0.7);
}
.sidebar .nav-link.nav-link-primary:hover {
  background: #1d97c2;
}
.sidebar .nav-link.nav-link-primary:hover i {
  color: #fff;
}
.sidebar .nav-link.nav-link-secondary {
  background: #c8ced3;
}
.sidebar .nav-link.nav-link-secondary .nav-icon {
  color: rgba(255, 255, 255, 0.7);
}
.sidebar .nav-link.nav-link-secondary:hover {
  background: #bac1c8;
}
.sidebar .nav-link.nav-link-secondary:hover i {
  color: #fff;
}
.sidebar .nav-link.nav-link-success {
  background: #4dbd74;
}
.sidebar .nav-link.nav-link-success .nav-icon {
  color: rgba(255, 255, 255, 0.7);
}
.sidebar .nav-link.nav-link-success:hover {
  background: #41af67;
}
.sidebar .nav-link.nav-link-success:hover i {
  color: #fff;
}
.sidebar .nav-link.nav-link-info {
  background: #63c2de;
}
.sidebar .nav-link.nav-link-info .nav-icon {
  color: rgba(255, 255, 255, 0.7);
}
.sidebar .nav-link.nav-link-info:hover {
  background: #4ebada;
}
.sidebar .nav-link.nav-link-info:hover i {
  color: #fff;
}
.sidebar .nav-link.nav-link-warning {
  background: #ffc107;
}
.sidebar .nav-link.nav-link-warning .nav-icon {
  color: rgba(255, 255, 255, 0.7);
}
.sidebar .nav-link.nav-link-warning:hover {
  background: #edb100;
}
.sidebar .nav-link.nav-link-warning:hover i {
  color: #fff;
}
.sidebar .nav-link.nav-link-danger {
  background: #f86c6b;
}
.sidebar .nav-link.nav-link-danger .nav-icon {
  color: rgba(255, 255, 255, 0.7);
}
.sidebar .nav-link.nav-link-danger:hover {
  background: #f75453;
}
.sidebar .nav-link.nav-link-danger:hover i {
  color: #fff;
}
.sidebar .nav-link.nav-link-light {
  background: #f0f3f5;
}
.sidebar .nav-link.nav-link-light .nav-icon {
  color: rgba(255, 255, 255, 0.7);
}
.sidebar .nav-link.nav-link-light:hover {
  background: #e1e7eb;
}
.sidebar .nav-link.nav-link-light:hover i {
  color: #fff;
}
.sidebar .nav-link.nav-link-dark {
  background: #2f353a;
}
.sidebar .nav-link.nav-link-dark .nav-icon {
  color: rgba(255, 255, 255, 0.7);
}
.sidebar .nav-link.nav-link-dark:hover {
  background: #24282c;
}
.sidebar .nav-link.nav-link-dark:hover i {
  color: #fff;
}
.sidebar .nav-dropdown-toggle {
  position: relative;
}
.sidebar .nav-dropdown-toggle::before {
  position: absolute;
  top: 50%;
  right: 1rem;
  display: block;
  width: 8px;
  height: 8px;
  padding: 0;
  margin-top: -4px;
  content: "";
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='%2373818f' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  transition: transform 0.3s;
}
.sidebar .nav-dropdown-toggle .badge {
  margin-right: 16px;
}
.sidebar .nav-dropdown.open {
  background: rgba(0, 0, 0, 0.2);
}
.sidebar .nav-dropdown.open > .nav-dropdown-items {
  max-height: 1500px;
}
.sidebar .nav-dropdown.open .nav-link {
  color: #fff;
  border-left: 0;
}
.sidebar .nav-dropdown.open .nav-link.disabled {
  color: #b3b3b3;
  background: transparent;
}
.sidebar .nav-dropdown.open .nav-link.disabled:hover {
  color: #b3b3b3;
}
.sidebar .nav-dropdown.open .nav-link.disabled:hover .nav-icon {
  color: #73818f;
}
.sidebar .nav-dropdown.open > .nav-dropdown-toggle::before {
  transform: rotate(-90deg);
}
.sidebar .nav-dropdown.open .nav-dropdown.open {
  border-left: 0;
}
.sidebar .nav-label {
  display: block;
  padding: 0.09375rem 1rem;
  color: #e4e7ea;
}
.sidebar .nav-label:hover {
  color: #fff;
  text-decoration: none;
}
.sidebar .nav-label .nav-icon {
  width: 20px;
  margin: -3px 0.5rem 0 0;
  font-size: 10px;
  color: #73818f;
  text-align: center;
  vertical-align: middle;
}
.sidebar .progress {
  background-color: #515c64 !important;
}
.sidebar .sidebar-footer {
  flex: 0 0 auto;
  padding: 0.75rem 1rem;
  background: rgba(0, 0, 0, 0.2);
}
.sidebar .sidebar-minimizer {
  position: relative;
  flex: 0 0 50px;
  cursor: pointer;
  background-color: rgba(0, 0, 0, 0.2);
  border: 0;
}
.sidebar .sidebar-minimizer::before {
  position: absolute;
  top: 0;
  right: 0;
  width: 50px;
  height: 50px;
  content: "";
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='%2373818f' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 12.5px;
  transition: 0.3s;
}
.sidebar .sidebar-minimizer:focus, .sidebar .sidebar-minimizer.focus {
  outline: 0;
}
.sidebar .sidebar-minimizer:hover {
  background-color: rgba(0, 0, 0, 0.3);
}
.sidebar .sidebar-minimizer:hover::before {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 14'%3E%3Cpath fill='%23fff' d='M9.148 2.352l-4.148 4.148 4.148 4.148q0.148 0.148 0.148 0.352t-0.148 0.352l-1.297 1.297q-0.148 0.148-0.352 0.148t-0.352-0.148l-5.797-5.797q-0.148-0.148-0.148-0.352t0.148-0.352l5.797-5.797q0.148-0.148 0.352-0.148t0.352 0.148l1.297 1.297q0.148 0.148 0.148 0.352t-0.148 0.352z'/%3E%3C/svg%3E");
}
@media (min-width: 992px) {
  .sidebar-compact .sidebar .sidebar-nav {
    width: 150px;
  }
  .sidebar-compact .sidebar .nav {
    width: 150px;
  }
  .sidebar-compact .sidebar .d-compact-none {
    display: none;
  }
  .sidebar-compact .sidebar .nav-title {
    text-align: center;
  }
  .sidebar-compact .sidebar .nav-item {
    width: 150px;
    border-left: 0;
  }
  .sidebar-compact .sidebar .nav-link {
    text-align: center;
  }
  .sidebar-compact .sidebar .nav-link .nav-icon {
    display: block;
    width: 100%;
    margin: 0.25rem 0;
    font-size: 24px;
  }
  .sidebar-compact .sidebar .nav-link .badge {
    position: absolute;
    top: 18px;
    right: 10px;
  }
  .sidebar-compact .sidebar .nav-link.nav-dropdown-toggle::before {
    top: 30px;
  }

  .sidebar-minimized .sidebar {
    z-index: 1019;
  }
  .sidebar-minimized .sidebar .sidebar-scroll {
    overflow: visible;
    width: 50px;
  }
  .sidebar-minimized .sidebar .sidebar-nav {
    overflow: visible;
    width: 50px;
  }
  .sidebar-minimized .sidebar .nav {
    width: 50px;
  }
  .sidebar-minimized .sidebar .d-minimized-none,
.sidebar-minimized .sidebar .nav-divider,
.sidebar-minimized .sidebar .nav-label,
.sidebar-minimized .sidebar .nav-title,
.sidebar-minimized .sidebar .sidebar-footer,
.sidebar-minimized .sidebar .sidebar-form,
.sidebar-minimized .sidebar .sidebar-header {
    display: none;
  }
  .sidebar-minimized .sidebar .sidebar-minimizer {
    position: fixed;
    bottom: 0;
    width: 50px;
    height: 50px;
    background-color: #24282c;
  }
  .sidebar-minimized .sidebar .sidebar-nav {
    padding-bottom: 50px;
  }
  .sidebar-minimized .sidebar .sidebar-minimizer::before {
    width: 100%;
    transform: rotate(-180deg);
  }
  .sidebar-minimized .sidebar .nav-item {
    width: 50px;
    overflow: hidden;
  }
  .sidebar-minimized .sidebar .nav-item:hover {
    width: 350px;
    overflow: visible;
  }
  .sidebar-minimized .sidebar .nav-item:hover > .nav-link {
    background: #20a8d8;
  }
  .sidebar-minimized .sidebar .nav-item:hover > .nav-link .nav-icon {
    color: #fff;
  }
  .sidebar-minimized .sidebar .nav-item:hover .nav-link.disabled,
.sidebar-minimized .sidebar .nav-item:hover .nav-link :disabled {
    background: #2f353a;
  }
  .sidebar-minimized .sidebar .nav-item:hover .nav-link.disabled .nav-icon,
.sidebar-minimized .sidebar .nav-item:hover .nav-link :disabled .nav-icon {
    color: #73818f;
  }
  .sidebar-minimized .sidebar section :not(.nav-dropdown-items) > .nav-item:last-child::after {
    display: block;
    margin-bottom: 50px;
    content: "";
  }
  .sidebar-minimized .sidebar .nav-link {
    position: relative;
    padding-left: 0;
    margin: 0;
    white-space: nowrap;
    border-left: 0;
  }
  .sidebar-minimized .sidebar .nav-link .nav-icon {
    display: block;
    float: left;
    width: 50px;
    font-size: 18px;
  }
  .sidebar-minimized .sidebar .nav-link .badge {
    position: absolute;
    right: 15px;
    display: none;
  }
  .sidebar-minimized .sidebar .nav-link:hover {
    width: 350px;
    background: #20a8d8;
  }
  .sidebar-minimized .sidebar .nav-link:hover .badge {
    display: inline;
  }
  .sidebar-minimized .sidebar .nav-link.nav-dropdown-toggle::before {
    display: none;
  }
  .sidebar-minimized .sidebar .nav-dropdown-items .nav-item {
    width: 300px;
  }
  .sidebar-minimized .sidebar .nav-dropdown-items .nav-item .nav-link {
    width: 300px;
  }
  .sidebar-minimized .sidebar .nav > .nav-dropdown > .nav-dropdown-items {
    display: none;
    max-height: 1000px;
    background: #2f353a;
  }
  .sidebar-minimized .sidebar .nav > .nav-dropdown:hover {
    background: #20a8d8;
  }
  .sidebar-minimized .sidebar .nav > .nav-dropdown:hover > .nav-dropdown-items {
    position: absolute;
    left: 50px;
    display: inline;
  }

  *[dir=rtl] .sidebar-minimized .sidebar .nav {
    list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
  }
  *[dir=rtl] .sidebar-minimized .sidebar .nav .divider {
    height: 0;
  }
  *[dir=rtl] .sidebar-minimized .sidebar .sidebar-minimizer::before {
    width: 100%;
    transform: rotate(0deg);
  }
  *[dir=rtl] .sidebar-minimized .sidebar .nav-link {
    padding-right: 0;
  }
  *[dir=rtl] .sidebar-minimized .sidebar .nav-link .nav-icon {
    float: right;
  }
  *[dir=rtl] .sidebar-minimized .sidebar .nav-link .badge {
    right: auto;
    left: 15px;
  }
  *[dir=rtl] .sidebar-minimized .sidebar .nav-link:hover .badge {
    display: inline;
  }
  *[dir=rtl] .sidebar-minimized .sidebar .nav > .nav-dropdown > .nav-dropdown-items {
    display: none;
    max-height: 1000px;
    background: #2f353a;
  }
  *[dir=rtl] .sidebar-minimized .sidebar .nav > .nav-dropdown:hover {
    background: #20a8d8;
  }
  *[dir=rtl] .sidebar-minimized .sidebar .nav > .nav-dropdown:hover > .nav-dropdown-items {
    position: absolute;
    left: 0;
    display: inline;
  }
}
*[dir=rtl] .sidebar .nav-dropdown-toggle::before {
  position: absolute;
  right: auto;
  left: 1rem;
  transform: rotate(180deg);
}
*[dir=rtl] .sidebar .nav-dropdown.open > .nav-dropdown-toggle::before {
  transform: rotate(270deg);
}
*[dir=rtl] .sidebar .nav-link .nav-icon {
  margin: 0 0 0 0.5rem;
}
*[dir=rtl] .sidebar .nav-link .badge {
  float: left;
  margin-top: 2px;
}
*[dir=rtl] .sidebar .nav-link.nav-dropdown-toggle .badge {
  margin-right: auto;
  margin-left: 16px;
}
*[dir=rtl] .sidebar .sidebar-minimizer::before {
  right: auto;
  left: 0;
  transform: rotate(180deg);
}
*[dir=rtl] .sidebar-toggler {
  margin-right: 0 !important;
}
.switch {
  display: inline-block;
  width: 40px;
  height: 26px;
}
.switch-input {
  display: none;
}
.switch-slider {
  position: relative;
  display: block;
  height: inherit;
  cursor: pointer;
  background-color: #fff;
  border: 1px solid #c8ced3;
  transition: 0.15s ease-out;
  border-radius: 0.25rem;
}
.switch-slider::before {
  position: absolute;
  top: 2px;
  left: 2px;
  box-sizing: border-box;
  width: 20px;
  height: 20px;
  content: "";
  background-color: #fff;
  border: 1px solid #c8ced3;
  transition: 0.15s ease-out;
  border-radius: 0.125rem;
}
.switch-input:checked ~ .switch-slider::before {
  transform: translateX(14px);
}
.switch-input:disabled ~ .switch-slider {
  cursor: not-allowed;
  opacity: 0.5;
}
.switch-lg {
  width: 48px;
  height: 30px;
}
.switch-lg .switch-slider {
  font-size: 12px;
}
.switch-lg .switch-slider::before {
  width: 24px;
  height: 24px;
}
.switch-lg .switch-slider::after {
  font-size: 12px;
}
.switch-lg .switch-input:checked ~ .switch-slider::before {
  transform: translateX(18px);
}
.switch-sm {
  width: 32px;
  height: 22px;
}
.switch-sm .switch-slider {
  font-size: 8px;
}
.switch-sm .switch-slider::before {
  width: 16px;
  height: 16px;
}
.switch-sm .switch-slider::after {
  font-size: 8px;
}
.switch-sm .switch-input:checked ~ .switch-slider::before {
  transform: translateX(10px);
}
.switch-label {
  width: 48px;
}
.switch-label .switch-slider::before {
  z-index: 2;
}
.switch-label .switch-slider::after {
  position: absolute;
  top: 50%;
  right: 1px;
  z-index: 1;
  width: 50%;
  margin-top: -0.5em;
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  color: #c8ced3;
  text-align: center;
  text-transform: uppercase;
  content: attr(data-unchecked);
  transition: inherit;
}
.switch-label .switch-input:checked ~ .switch-slider::before {
  transform: translateX(22px);
}
.switch-label .switch-input:checked ~ .switch-slider::after {
  left: 1px;
  color: #fff;
  content: attr(data-checked);
}
.switch-label.switch-lg {
  width: 56px;
  height: 30px;
}
.switch-label.switch-lg .switch-slider {
  font-size: 12px;
}
.switch-label.switch-lg .switch-slider::before {
  width: 24px;
  height: 24px;
}
.switch-label.switch-lg .switch-slider::after {
  font-size: 12px;
}
.switch-label.switch-lg .switch-input:checked ~ .switch-slider::before {
  transform: translateX(26px);
}
.switch-label.switch-sm {
  width: 40px;
  height: 22px;
}
.switch-label.switch-sm .switch-slider {
  font-size: 8px;
}
.switch-label.switch-sm .switch-slider::before {
  width: 16px;
  height: 16px;
}
.switch-label.switch-sm .switch-slider::after {
  font-size: 8px;
}
.switch-label.switch-sm .switch-input:checked ~ .switch-slider::before {
  transform: translateX(18px);
}
.switch-3d .switch-slider {
  background-color: #f0f3f5;
  border-radius: 50em;
}
.switch-3d .switch-slider::before {
  top: -1px;
  left: -1px;
  width: 26px;
  height: 26px;
  border: 0;
  border-radius: 50em;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
}
.switch-3d.switch-lg {
  width: 48px;
  height: 30px;
}
.switch-3d.switch-lg .switch-slider::before {
  width: 30px;
  height: 30px;
}
.switch-3d.switch-lg .switch-input:checked ~ .switch-slider::before {
  transform: translateX(18px);
}
.switch-3d.switch-sm {
  width: 32px;
  height: 22px;
}
.switch-3d.switch-sm .switch-slider::before {
  width: 22px;
  height: 22px;
}
.switch-3d.switch-sm .switch-input:checked ~ .switch-slider::before {
  transform: translateX(10px);
}
.switch-primary .switch-input:checked + .switch-slider {
  background-color: #20a8d8;
  border-color: #1985ac;
}
.switch-primary .switch-input:checked + .switch-slider::before {
  border-color: #1985ac;
}
.switch-outline-primary .switch-input:checked + .switch-slider {
  background-color: #fff;
  border-color: #20a8d8;
}
.switch-outline-primary .switch-input:checked + .switch-slider::before {
  border-color: #20a8d8;
}
.switch-outline-primary .switch-input:checked + .switch-slider::after {
  color: #20a8d8;
}
.switch-outline-primary-alt .switch-input:checked + .switch-slider {
  background-color: #fff;
  border-color: #20a8d8;
}
.switch-outline-primary-alt .switch-input:checked + .switch-slider::before {
  background-color: #20a8d8;
  border-color: #20a8d8;
}
.switch-outline-primary-alt .switch-input:checked + .switch-slider::after {
  color: #20a8d8;
}
.switch-secondary .switch-input:checked + .switch-slider {
  background-color: #c8ced3;
  border-color: #acb5bc;
}
.switch-secondary .switch-input:checked + .switch-slider::before {
  border-color: #acb5bc;
}
.switch-outline-secondary .switch-input:checked + .switch-slider {
  background-color: #fff;
  border-color: #c8ced3;
}
.switch-outline-secondary .switch-input:checked + .switch-slider::before {
  border-color: #c8ced3;
}
.switch-outline-secondary .switch-input:checked + .switch-slider::after {
  color: #c8ced3;
}
.switch-outline-secondary-alt .switch-input:checked + .switch-slider {
  background-color: #fff;
  border-color: #c8ced3;
}
.switch-outline-secondary-alt .switch-input:checked + .switch-slider::before {
  background-color: #c8ced3;
  border-color: #c8ced3;
}
.switch-outline-secondary-alt .switch-input:checked + .switch-slider::after {
  color: #c8ced3;
}
.switch-success .switch-input:checked + .switch-slider {
  background-color: #4dbd74;
  border-color: #3a9d5d;
}
.switch-success .switch-input:checked + .switch-slider::before {
  border-color: #3a9d5d;
}
.switch-outline-success .switch-input:checked + .switch-slider {
  background-color: #fff;
  border-color: #4dbd74;
}
.switch-outline-success .switch-input:checked + .switch-slider::before {
  border-color: #4dbd74;
}
.switch-outline-success .switch-input:checked + .switch-slider::after {
  color: #4dbd74;
}
.switch-outline-success-alt .switch-input:checked + .switch-slider {
  background-color: #fff;
  border-color: #4dbd74;
}
.switch-outline-success-alt .switch-input:checked + .switch-slider::before {
  background-color: #4dbd74;
  border-color: #4dbd74;
}
.switch-outline-success-alt .switch-input:checked + .switch-slider::after {
  color: #4dbd74;
}
.switch-info .switch-input:checked + .switch-slider {
  background-color: #63c2de;
  border-color: #39b2d5;
}
.switch-info .switch-input:checked + .switch-slider::before {
  border-color: #39b2d5;
}
.switch-outline-info .switch-input:checked + .switch-slider {
  background-color: #fff;
  border-color: #63c2de;
}
.switch-outline-info .switch-input:checked + .switch-slider::before {
  border-color: #63c2de;
}
.switch-outline-info .switch-input:checked + .switch-slider::after {
  color: #63c2de;
}
.switch-outline-info-alt .switch-input:checked + .switch-slider {
  background-color: #fff;
  border-color: #63c2de;
}
.switch-outline-info-alt .switch-input:checked + .switch-slider::before {
  background-color: #63c2de;
  border-color: #63c2de;
}
.switch-outline-info-alt .switch-input:checked + .switch-slider::after {
  color: #63c2de;
}
.switch-warning .switch-input:checked + .switch-slider {
  background-color: #ffc107;
  border-color: #d39e00;
}
.switch-warning .switch-input:checked + .switch-slider::before {
  border-color: #d39e00;
}
.switch-outline-warning .switch-input:checked + .switch-slider {
  background-color: #fff;
  border-color: #ffc107;
}
.switch-outline-warning .switch-input:checked + .switch-slider::before {
  border-color: #ffc107;
}
.switch-outline-warning .switch-input:checked + .switch-slider::after {
  color: #ffc107;
}
.switch-outline-warning-alt .switch-input:checked + .switch-slider {
  background-color: #fff;
  border-color: #ffc107;
}
.switch-outline-warning-alt .switch-input:checked + .switch-slider::before {
  background-color: #ffc107;
  border-color: #ffc107;
}
.switch-outline-warning-alt .switch-input:checked + .switch-slider::after {
  color: #ffc107;
}
.switch-danger .switch-input:checked + .switch-slider {
  background-color: #f86c6b;
  border-color: #f63c3a;
}
.switch-danger .switch-input:checked + .switch-slider::before {
  border-color: #f63c3a;
}
.switch-outline-danger .switch-input:checked + .switch-slider {
  background-color: #fff;
  border-color: #f86c6b;
}
.switch-outline-danger .switch-input:checked + .switch-slider::before {
  border-color: #f86c6b;
}
.switch-outline-danger .switch-input:checked + .switch-slider::after {
  color: #f86c6b;
}
.switch-outline-danger-alt .switch-input:checked + .switch-slider {
  background-color: #fff;
  border-color: #f86c6b;
}
.switch-outline-danger-alt .switch-input:checked + .switch-slider::before {
  background-color: #f86c6b;
  border-color: #f86c6b;
}
.switch-outline-danger-alt .switch-input:checked + .switch-slider::after {
  color: #f86c6b;
}
.switch-light .switch-input:checked + .switch-slider {
  background-color: #f0f3f5;
  border-color: #d1dbe1;
}
.switch-light .switch-input:checked + .switch-slider::before {
  border-color: #d1dbe1;
}
.switch-outline-light .switch-input:checked + .switch-slider {
  background-color: #fff;
  border-color: #f0f3f5;
}
.switch-outline-light .switch-input:checked + .switch-slider::before {
  border-color: #f0f3f5;
}
.switch-outline-light .switch-input:checked + .switch-slider::after {
  color: #f0f3f5;
}
.switch-outline-light-alt .switch-input:checked + .switch-slider {
  background-color: #fff;
  border-color: #f0f3f5;
}
.switch-outline-light-alt .switch-input:checked + .switch-slider::before {
  background-color: #f0f3f5;
  border-color: #f0f3f5;
}
.switch-outline-light-alt .switch-input:checked + .switch-slider::after {
  color: #f0f3f5;
}
.switch-dark .switch-input:checked + .switch-slider {
  background-color: #2f353a;
  border-color: #181b1e;
}
.switch-dark .switch-input:checked + .switch-slider::before {
  border-color: #181b1e;
}
.switch-outline-dark .switch-input:checked + .switch-slider {
  background-color: #fff;
  border-color: #2f353a;
}
.switch-outline-dark .switch-input:checked + .switch-slider::before {
  border-color: #2f353a;
}
.switch-outline-dark .switch-input:checked + .switch-slider::after {
  color: #2f353a;
}
.switch-outline-dark-alt .switch-input:checked + .switch-slider {
  background-color: #fff;
  border-color: #2f353a;
}
.switch-outline-dark-alt .switch-input:checked + .switch-slider::before {
  background-color: #2f353a;
  border-color: #2f353a;
}
.switch-outline-dark-alt .switch-input:checked + .switch-slider::after {
  color: #2f353a;
}
.switch-pill .switch-slider {
  border-radius: 50em;
}
.switch-pill .switch-slider::before {
  border-radius: 50em;
}
.table-outline {
  border: 1px solid #c8ced3;
}
.table-outline td {
  vertical-align: middle;
}
.table-align-middle td {
  vertical-align: middle;
}
.table-clear td {
  border: 0;
}
@media all and (-ms-high-contrast: none) {
  html {
    display: flex;
    flex-direction: column;
  }
}
.app,
app-dashboard,
app-root {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
.app-header {
  flex: 0 0 55px;
}
.app-footer {
  flex: 0 0 50px;
}
.app-body {
  display: flex;
  flex-direction: row;
  flex-grow: 1;
  overflow-x: hidden;
}
.app-body .main {
  flex: 1;
  min-width: 0;
}
.app-body .sidebar {
  flex: 0 0 300px;
  order: -1;
}
.app-body .aside-menu {
  flex: 0 0 250px;
}
html:not([dir=rtl]) .sidebar {
  margin-left: -300px;
}
html:not([dir=rtl]) .aside-menu {
  right: 0;
  margin-right: -250px;
}
html[dir=rtl] .sidebar {
  margin-right: -300px;
}
html[dir=rtl] .aside-menu {
  left: 0;
  margin-left: -250px;
}
@media (min-width: 992px) {
  .header-fixed .app-header {
    position: fixed;
    z-index: 1020;
    width: 100%;
  }
  .header-fixed .app-body {
    margin-top: 55px;
  }

  .sidebar-fixed .sidebar {
    position: fixed;
    z-index: 1019;
    width: 300px;
    height: 100vh;
  }

  .sidebar-fixed .app-header + .app-body .sidebar {
    height: calc(100vh - 55px);
  }

  .sidebar-compact .sidebar {
    flex: 0 0 150px;
  }
  .sidebar-compact.sidebar-fixed .sidebar {
    width: 150px;
  }
  .sidebar-compact .sidebar-minimizer {
    display: none;
  }

  .sidebar-minimized .sidebar {
    flex: 0 0 50px;
  }
  .sidebar-minimized.sidebar-fixed .sidebar {
    width: 50px;
  }

  .sidebar-off-canvas .sidebar {
    position: fixed;
    z-index: 1019;
    height: 100%;
  }

  .sidebar-off-canvas .app-header + .app-body .sidebar {
    height: calc(100vh - 55px);
  }

  html:not([dir=rtl]) .sidebar-compact .sidebar {
    margin-left: -150px;
  }
  html:not([dir=rtl]) .sidebar-minimized .sidebar {
    margin-left: -50px;
  }

  html[dir=rtl] .sidebar-compact .sidebar {
    margin-right: -150px;
  }
  html[dir=rtl] .sidebar-minimized .sidebar {
    margin-right: -50px;
  }

  .aside-menu-fixed .aside-menu {
    position: fixed;
    height: 100%;
  }
  .aside-menu-fixed .aside-menu .tab-content {
    height: calc(100vh - 2.375rem - 55px);
  }

  .aside-menu-fixed .app-header + .app-body .aside-menu {
    height: calc(100vh - 55px);
  }

  .aside-menu-off-canvas .aside-menu {
    position: fixed;
    z-index: 1019;
    height: 100%;
  }

  .aside-menu-off-canvas .app-header + .app-body .aside-menu {
    height: calc(100vh - 55px);
  }

  html:not([dir=rtl]) .aside-menu-fixed .aside-menu,
html:not([dir=rtl]) .aside-menu-off-canvas .aside-menu {
    right: 0;
  }

  html[dir=rtl] .aside-menu-fixed .aside-menu,
html[dir=rtl] .aside-menu-off-canvas .aside-menu {
    left: 0;
  }
}
.breadcrumb-fixed .main {
  padding-top: 3.875rem;
}
.breadcrumb-fixed .breadcrumb {
  position: fixed;
  top: 55px;
  right: 0;
  left: 0;
  z-index: 1017;
}
html:not([dir=rtl]) .sidebar-show .sidebar,
html:not([dir=rtl]) .sidebar-show .sidebar {
  margin-left: 0;
}
html:not([dir=rtl]) .aside-menu-show .aside-menu,
html:not([dir=rtl]) .aside-menu-show .aside-menu {
  margin-right: 0;
}
html[dir=rtl] .sidebar-show .sidebar,
html[dir=rtl] .sidebar-show .sidebar {
  margin-right: 0;
}
html[dir=rtl] .aside-menu-show .aside-menu,
html[dir=rtl] .aside-menu-show .aside-menu {
  margin-left: 0;
}
@-webkit-keyframes opacity {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes opacity {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@media (max-width: 575.98px) {
  .sidebar-show .main,
.aside-menu-show .main {
    position: relative;
  }
  .sidebar-show .main::before,
.aside-menu-show .main::before {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1018;
    width: 100%;
    height: 100%;
    content: "";
    background: rgba(0, 0, 0, 0.7);
    -webkit-animation: opacity 0.25s;
            animation: opacity 0.25s;
  }
}
@media (min-width: 576px) {
  html:not([dir=rtl]) .sidebar-sm-show .sidebar,
html:not([dir=rtl]) .sidebar-show .sidebar {
    margin-left: 0;
  }
  html:not([dir=rtl]) .sidebar-sm-show.sidebar-fixed .main,
html:not([dir=rtl]) .sidebar-sm-show.sidebar-fixed .app-footer,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed .main,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed .app-footer {
    margin-left: 300px;
  }
  html:not([dir=rtl]) .sidebar-sm-show.sidebar-fixed.sidebar-compact .main,
html:not([dir=rtl]) .sidebar-sm-show.sidebar-fixed.sidebar-compact .app-footer,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed.sidebar-compact .main,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
    margin-left: 150px;
  }
}
@media (min-width: 576px) and (max-width: 991.98px) {
  html:not([dir=rtl]) .sidebar-sm-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir=rtl]) .sidebar-sm-show.sidebar-fixed.sidebar-minimized .app-footer,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
    margin-left: 300px;
  }
}
@media (min-width: 576px) and (min-width: 992px) {
  html:not([dir=rtl]) .sidebar-sm-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir=rtl]) .sidebar-sm-show.sidebar-fixed.sidebar-minimized .app-footer,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
    margin-left: 50px;
  }
}
@media (min-width: 576px) {
  html:not([dir=rtl]) .sidebar-sm-show.breadcrumb-fixed .breadcrumb,
html:not([dir=rtl]) .sidebar-show.breadcrumb-fixed .breadcrumb {
    left: 300px;
  }
  html:not([dir=rtl]) .sidebar-sm-show.breadcrumb-fixed.sidebar-compact .breadcrumb,
html:not([dir=rtl]) .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
    left: 150px;
  }
  html:not([dir=rtl]) .sidebar-sm-show.breadcrumb-fixed.sidebar-minimized .breadcrumb,
html:not([dir=rtl]) .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
    left: 50px;
  }
}
@media (min-width: 576px) {
  html:not([dir=rtl]) .aside-menu-show .aside-menu,
html:not([dir=rtl]) .aside-menu-sm-show .aside-menu {
    margin-right: 0;
  }
  html:not([dir=rtl]) .aside-menu-show.aside-menu-fixed .main,
html:not([dir=rtl]) .aside-menu-show.aside-menu-fixed .app-footer,
html:not([dir=rtl]) .aside-menu-sm-show.aside-menu-fixed .main,
html:not([dir=rtl]) .aside-menu-sm-show.aside-menu-fixed .app-footer {
    margin-right: 250px;
  }
  html:not([dir=rtl]) .aside-menu-show.breadcrumb-fixed .breadcrumb,
html:not([dir=rtl]) .aside-menu-sm-show.breadcrumb-fixed .breadcrumb {
    right: 250px;
  }
}
@media (min-width: 576px) {
  html[dir=rtl] .sidebar-sm-show .sidebar,
html[dir=rtl] .sidebar-show .sidebar {
    margin-right: 0;
  }
  html[dir=rtl] .sidebar-sm-show.sidebar-fixed .main,
html[dir=rtl] .sidebar-sm-show.sidebar-fixed .app-footer,
html[dir=rtl] .sidebar-show.sidebar-fixed .main,
html[dir=rtl] .sidebar-show.sidebar-fixed .app-footer {
    margin-right: 300px;
  }
  html[dir=rtl] .sidebar-sm-show.sidebar-fixed.sidebar-compact .main,
html[dir=rtl] .sidebar-sm-show.sidebar-fixed.sidebar-compact .app-footer,
html[dir=rtl] .sidebar-show.sidebar-fixed.sidebar-compact .main,
html[dir=rtl] .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
    margin-right: 150px;
  }
}
@media (min-width: 576px) and (max-width: 991.98px) {
  html[dir=rtl] .sidebar-sm-show.sidebar-fixed.sidebar-minimized .main,
html[dir=rtl] .sidebar-sm-show.sidebar-fixed.sidebar-minimized .app-footer,
html[dir=rtl] .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html[dir=rtl] .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
    margin-right: 300px;
  }
}
@media (min-width: 576px) and (min-width: 992px) {
  html[dir=rtl] .sidebar-sm-show.sidebar-fixed.sidebar-minimized .main,
html[dir=rtl] .sidebar-sm-show.sidebar-fixed.sidebar-minimized .app-footer,
html[dir=rtl] .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html[dir=rtl] .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
    margin-right: 50px;
  }
}
@media (min-width: 576px) {
  html[dir=rtl] .sidebar-sm-show.breadcrumb-fixed .breadcrumb,
html[dir=rtl] .sidebar-show.breadcrumb-fixed .breadcrumb {
    right: 300px;
  }
  html[dir=rtl] .sidebar-sm-show.breadcrumb-fixed.sidebar-compact .breadcrumb,
html[dir=rtl] .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
    right: 150px;
  }
  html[dir=rtl] .sidebar-sm-show.breadcrumb-fixed.sidebar-minimized .breadcrumb,
html[dir=rtl] .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
    right: 50px;
  }
}
@media (min-width: 576px) {
  html[dir=rtl] .aside-menu-show .aside-menu,
html[dir=rtl] .aside-menu-sm-show .aside-menu {
    margin-left: 0;
  }
  html[dir=rtl] .aside-menu-show.aside-menu-fixed .main,
html[dir=rtl] .aside-menu-show.aside-menu-fixed .app-footer,
html[dir=rtl] .aside-menu-sm-show.aside-menu-fixed .main,
html[dir=rtl] .aside-menu-sm-show.aside-menu-fixed .app-footer {
    margin-left: 250px;
  }
  html[dir=rtl] .aside-menu-show.breadcrumb-fixed .breadcrumb,
html[dir=rtl] .aside-menu-sm-show.breadcrumb-fixed .breadcrumb {
    left: 250px;
  }
}
@media (min-width: 576px) {
  @-webkit-keyframes opacity {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
  }
  @keyframes opacity {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
  }
}
@media (min-width: 768px) {
  html:not([dir=rtl]) .sidebar-md-show .sidebar,
html:not([dir=rtl]) .sidebar-show .sidebar {
    margin-left: 0;
  }
  html:not([dir=rtl]) .sidebar-md-show.sidebar-fixed .main,
html:not([dir=rtl]) .sidebar-md-show.sidebar-fixed .app-footer,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed .main,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed .app-footer {
    margin-left: 300px;
  }
  html:not([dir=rtl]) .sidebar-md-show.sidebar-fixed.sidebar-compact .main,
html:not([dir=rtl]) .sidebar-md-show.sidebar-fixed.sidebar-compact .app-footer,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed.sidebar-compact .main,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
    margin-left: 150px;
  }
}
@media (min-width: 768px) and (max-width: 991.98px) {
  html:not([dir=rtl]) .sidebar-md-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir=rtl]) .sidebar-md-show.sidebar-fixed.sidebar-minimized .app-footer,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
    margin-left: 300px;
  }
}
@media (min-width: 768px) and (min-width: 992px) {
  html:not([dir=rtl]) .sidebar-md-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir=rtl]) .sidebar-md-show.sidebar-fixed.sidebar-minimized .app-footer,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
    margin-left: 50px;
  }
}
@media (min-width: 768px) {
  html:not([dir=rtl]) .sidebar-md-show.breadcrumb-fixed .breadcrumb,
html:not([dir=rtl]) .sidebar-show.breadcrumb-fixed .breadcrumb {
    left: 300px;
  }
  html:not([dir=rtl]) .sidebar-md-show.breadcrumb-fixed.sidebar-compact .breadcrumb,
html:not([dir=rtl]) .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
    left: 150px;
  }
  html:not([dir=rtl]) .sidebar-md-show.breadcrumb-fixed.sidebar-minimized .breadcrumb,
html:not([dir=rtl]) .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
    left: 50px;
  }
}
@media (min-width: 768px) {
  html:not([dir=rtl]) .aside-menu-show .aside-menu,
html:not([dir=rtl]) .aside-menu-md-show .aside-menu {
    margin-right: 0;
  }
  html:not([dir=rtl]) .aside-menu-show.aside-menu-fixed .main,
html:not([dir=rtl]) .aside-menu-show.aside-menu-fixed .app-footer,
html:not([dir=rtl]) .aside-menu-md-show.aside-menu-fixed .main,
html:not([dir=rtl]) .aside-menu-md-show.aside-menu-fixed .app-footer {
    margin-right: 250px;
  }
  html:not([dir=rtl]) .aside-menu-show.breadcrumb-fixed .breadcrumb,
html:not([dir=rtl]) .aside-menu-md-show.breadcrumb-fixed .breadcrumb {
    right: 250px;
  }
}
@media (min-width: 768px) {
  html[dir=rtl] .sidebar-md-show .sidebar,
html[dir=rtl] .sidebar-show .sidebar {
    margin-right: 0;
  }
  html[dir=rtl] .sidebar-md-show.sidebar-fixed .main,
html[dir=rtl] .sidebar-md-show.sidebar-fixed .app-footer,
html[dir=rtl] .sidebar-show.sidebar-fixed .main,
html[dir=rtl] .sidebar-show.sidebar-fixed .app-footer {
    margin-right: 300px;
  }
  html[dir=rtl] .sidebar-md-show.sidebar-fixed.sidebar-compact .main,
html[dir=rtl] .sidebar-md-show.sidebar-fixed.sidebar-compact .app-footer,
html[dir=rtl] .sidebar-show.sidebar-fixed.sidebar-compact .main,
html[dir=rtl] .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
    margin-right: 150px;
  }
}
@media (min-width: 768px) and (max-width: 991.98px) {
  html[dir=rtl] .sidebar-md-show.sidebar-fixed.sidebar-minimized .main,
html[dir=rtl] .sidebar-md-show.sidebar-fixed.sidebar-minimized .app-footer,
html[dir=rtl] .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html[dir=rtl] .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
    margin-right: 300px;
  }
}
@media (min-width: 768px) and (min-width: 992px) {
  html[dir=rtl] .sidebar-md-show.sidebar-fixed.sidebar-minimized .main,
html[dir=rtl] .sidebar-md-show.sidebar-fixed.sidebar-minimized .app-footer,
html[dir=rtl] .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html[dir=rtl] .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
    margin-right: 50px;
  }
}
@media (min-width: 768px) {
  html[dir=rtl] .sidebar-md-show.breadcrumb-fixed .breadcrumb,
html[dir=rtl] .sidebar-show.breadcrumb-fixed .breadcrumb {
    right: 300px;
  }
  html[dir=rtl] .sidebar-md-show.breadcrumb-fixed.sidebar-compact .breadcrumb,
html[dir=rtl] .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
    right: 150px;
  }
  html[dir=rtl] .sidebar-md-show.breadcrumb-fixed.sidebar-minimized .breadcrumb,
html[dir=rtl] .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
    right: 50px;
  }
}
@media (min-width: 768px) {
  html[dir=rtl] .aside-menu-show .aside-menu,
html[dir=rtl] .aside-menu-md-show .aside-menu {
    margin-left: 0;
  }
  html[dir=rtl] .aside-menu-show.aside-menu-fixed .main,
html[dir=rtl] .aside-menu-show.aside-menu-fixed .app-footer,
html[dir=rtl] .aside-menu-md-show.aside-menu-fixed .main,
html[dir=rtl] .aside-menu-md-show.aside-menu-fixed .app-footer {
    margin-left: 250px;
  }
  html[dir=rtl] .aside-menu-show.breadcrumb-fixed .breadcrumb,
html[dir=rtl] .aside-menu-md-show.breadcrumb-fixed .breadcrumb {
    left: 250px;
  }
}
@media (min-width: 768px) {
  @-webkit-keyframes opacity {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
  }
  @keyframes opacity {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
  }
}
@media (min-width: 992px) {
  html:not([dir=rtl]) .sidebar-lg-show .sidebar,
html:not([dir=rtl]) .sidebar-show .sidebar {
    margin-left: 0;
  }
  html:not([dir=rtl]) .sidebar-lg-show.sidebar-fixed .main,
html:not([dir=rtl]) .sidebar-lg-show.sidebar-fixed .app-footer,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed .main,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed .app-footer {
    margin-left: 300px;
  }
  html:not([dir=rtl]) .sidebar-lg-show.sidebar-fixed.sidebar-compact .main,
html:not([dir=rtl]) .sidebar-lg-show.sidebar-fixed.sidebar-compact .app-footer,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed.sidebar-compact .main,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
    margin-left: 150px;
  }
}
@media (min-width: 992px) and (max-width: 991.98px) {
  html:not([dir=rtl]) .sidebar-lg-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir=rtl]) .sidebar-lg-show.sidebar-fixed.sidebar-minimized .app-footer,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
    margin-left: 300px;
  }
}
@media (min-width: 992px) and (min-width: 992px) {
  html:not([dir=rtl]) .sidebar-lg-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir=rtl]) .sidebar-lg-show.sidebar-fixed.sidebar-minimized .app-footer,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
    margin-left: 50px;
  }
}
@media (min-width: 992px) {
  html:not([dir=rtl]) .sidebar-lg-show.breadcrumb-fixed .breadcrumb,
html:not([dir=rtl]) .sidebar-show.breadcrumb-fixed .breadcrumb {
    left: 300px;
  }
  html:not([dir=rtl]) .sidebar-lg-show.breadcrumb-fixed.sidebar-compact .breadcrumb,
html:not([dir=rtl]) .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
    left: 150px;
  }
  html:not([dir=rtl]) .sidebar-lg-show.breadcrumb-fixed.sidebar-minimized .breadcrumb,
html:not([dir=rtl]) .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
    left: 50px;
  }
}
@media (min-width: 992px) {
  html:not([dir=rtl]) .aside-menu-show .aside-menu,
html:not([dir=rtl]) .aside-menu-lg-show .aside-menu {
    margin-right: 0;
  }
  html:not([dir=rtl]) .aside-menu-show.aside-menu-fixed .main,
html:not([dir=rtl]) .aside-menu-show.aside-menu-fixed .app-footer,
html:not([dir=rtl]) .aside-menu-lg-show.aside-menu-fixed .main,
html:not([dir=rtl]) .aside-menu-lg-show.aside-menu-fixed .app-footer {
    margin-right: 250px;
  }
  html:not([dir=rtl]) .aside-menu-show.breadcrumb-fixed .breadcrumb,
html:not([dir=rtl]) .aside-menu-lg-show.breadcrumb-fixed .breadcrumb {
    right: 250px;
  }
}
@media (min-width: 992px) {
  html[dir=rtl] .sidebar-lg-show .sidebar,
html[dir=rtl] .sidebar-show .sidebar {
    margin-right: 0;
  }
  html[dir=rtl] .sidebar-lg-show.sidebar-fixed .main,
html[dir=rtl] .sidebar-lg-show.sidebar-fixed .app-footer,
html[dir=rtl] .sidebar-show.sidebar-fixed .main,
html[dir=rtl] .sidebar-show.sidebar-fixed .app-footer {
    margin-right: 300px;
  }
  html[dir=rtl] .sidebar-lg-show.sidebar-fixed.sidebar-compact .main,
html[dir=rtl] .sidebar-lg-show.sidebar-fixed.sidebar-compact .app-footer,
html[dir=rtl] .sidebar-show.sidebar-fixed.sidebar-compact .main,
html[dir=rtl] .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
    margin-right: 150px;
  }
}
@media (min-width: 992px) and (max-width: 991.98px) {
  html[dir=rtl] .sidebar-lg-show.sidebar-fixed.sidebar-minimized .main,
html[dir=rtl] .sidebar-lg-show.sidebar-fixed.sidebar-minimized .app-footer,
html[dir=rtl] .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html[dir=rtl] .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
    margin-right: 300px;
  }
}
@media (min-width: 992px) and (min-width: 992px) {
  html[dir=rtl] .sidebar-lg-show.sidebar-fixed.sidebar-minimized .main,
html[dir=rtl] .sidebar-lg-show.sidebar-fixed.sidebar-minimized .app-footer,
html[dir=rtl] .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html[dir=rtl] .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
    margin-right: 50px;
  }
}
@media (min-width: 992px) {
  html[dir=rtl] .sidebar-lg-show.breadcrumb-fixed .breadcrumb,
html[dir=rtl] .sidebar-show.breadcrumb-fixed .breadcrumb {
    right: 300px;
  }
  html[dir=rtl] .sidebar-lg-show.breadcrumb-fixed.sidebar-compact .breadcrumb,
html[dir=rtl] .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
    right: 150px;
  }
  html[dir=rtl] .sidebar-lg-show.breadcrumb-fixed.sidebar-minimized .breadcrumb,
html[dir=rtl] .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
    right: 50px;
  }
}
@media (min-width: 992px) {
  html[dir=rtl] .aside-menu-show .aside-menu,
html[dir=rtl] .aside-menu-lg-show .aside-menu {
    margin-left: 0;
  }
  html[dir=rtl] .aside-menu-show.aside-menu-fixed .main,
html[dir=rtl] .aside-menu-show.aside-menu-fixed .app-footer,
html[dir=rtl] .aside-menu-lg-show.aside-menu-fixed .main,
html[dir=rtl] .aside-menu-lg-show.aside-menu-fixed .app-footer {
    margin-left: 250px;
  }
  html[dir=rtl] .aside-menu-show.breadcrumb-fixed .breadcrumb,
html[dir=rtl] .aside-menu-lg-show.breadcrumb-fixed .breadcrumb {
    left: 250px;
  }
}
@media (min-width: 992px) {
  @-webkit-keyframes opacity {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
  }
  @keyframes opacity {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
  }
}
@media (min-width: 1200px) {
  html:not([dir=rtl]) .sidebar-xl-show .sidebar,
html:not([dir=rtl]) .sidebar-show .sidebar {
    margin-left: 0;
  }
  html:not([dir=rtl]) .sidebar-xl-show.sidebar-fixed .main,
html:not([dir=rtl]) .sidebar-xl-show.sidebar-fixed .app-footer,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed .main,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed .app-footer {
    margin-left: 300px;
  }
  html:not([dir=rtl]) .sidebar-xl-show.sidebar-fixed.sidebar-compact .main,
html:not([dir=rtl]) .sidebar-xl-show.sidebar-fixed.sidebar-compact .app-footer,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed.sidebar-compact .main,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
    margin-left: 150px;
  }
}
@media (min-width: 1200px) and (max-width: 991.98px) {
  html:not([dir=rtl]) .sidebar-xl-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir=rtl]) .sidebar-xl-show.sidebar-fixed.sidebar-minimized .app-footer,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
    margin-left: 300px;
  }
}
@media (min-width: 1200px) and (min-width: 992px) {
  html:not([dir=rtl]) .sidebar-xl-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir=rtl]) .sidebar-xl-show.sidebar-fixed.sidebar-minimized .app-footer,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html:not([dir=rtl]) .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
    margin-left: 50px;
  }
}
@media (min-width: 1200px) {
  html:not([dir=rtl]) .sidebar-xl-show.breadcrumb-fixed .breadcrumb,
html:not([dir=rtl]) .sidebar-show.breadcrumb-fixed .breadcrumb {
    left: 300px;
  }
  html:not([dir=rtl]) .sidebar-xl-show.breadcrumb-fixed.sidebar-compact .breadcrumb,
html:not([dir=rtl]) .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
    left: 150px;
  }
  html:not([dir=rtl]) .sidebar-xl-show.breadcrumb-fixed.sidebar-minimized .breadcrumb,
html:not([dir=rtl]) .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
    left: 50px;
  }
}
@media (min-width: 1200px) {
  html:not([dir=rtl]) .aside-menu-show .aside-menu,
html:not([dir=rtl]) .aside-menu-xl-show .aside-menu {
    margin-right: 0;
  }
  html:not([dir=rtl]) .aside-menu-show.aside-menu-fixed .main,
html:not([dir=rtl]) .aside-menu-show.aside-menu-fixed .app-footer,
html:not([dir=rtl]) .aside-menu-xl-show.aside-menu-fixed .main,
html:not([dir=rtl]) .aside-menu-xl-show.aside-menu-fixed .app-footer {
    margin-right: 250px;
  }
  html:not([dir=rtl]) .aside-menu-show.breadcrumb-fixed .breadcrumb,
html:not([dir=rtl]) .aside-menu-xl-show.breadcrumb-fixed .breadcrumb {
    right: 250px;
  }
}
@media (min-width: 1200px) {
  html[dir=rtl] .sidebar-xl-show .sidebar,
html[dir=rtl] .sidebar-show .sidebar {
    margin-right: 0;
  }
  html[dir=rtl] .sidebar-xl-show.sidebar-fixed .main,
html[dir=rtl] .sidebar-xl-show.sidebar-fixed .app-footer,
html[dir=rtl] .sidebar-show.sidebar-fixed .main,
html[dir=rtl] .sidebar-show.sidebar-fixed .app-footer {
    margin-right: 300px;
  }
  html[dir=rtl] .sidebar-xl-show.sidebar-fixed.sidebar-compact .main,
html[dir=rtl] .sidebar-xl-show.sidebar-fixed.sidebar-compact .app-footer,
html[dir=rtl] .sidebar-show.sidebar-fixed.sidebar-compact .main,
html[dir=rtl] .sidebar-show.sidebar-fixed.sidebar-compact .app-footer {
    margin-right: 150px;
  }
}
@media (min-width: 1200px) and (max-width: 991.98px) {
  html[dir=rtl] .sidebar-xl-show.sidebar-fixed.sidebar-minimized .main,
html[dir=rtl] .sidebar-xl-show.sidebar-fixed.sidebar-minimized .app-footer,
html[dir=rtl] .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html[dir=rtl] .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
    margin-right: 300px;
  }
}
@media (min-width: 1200px) and (min-width: 992px) {
  html[dir=rtl] .sidebar-xl-show.sidebar-fixed.sidebar-minimized .main,
html[dir=rtl] .sidebar-xl-show.sidebar-fixed.sidebar-minimized .app-footer,
html[dir=rtl] .sidebar-show.sidebar-fixed.sidebar-minimized .main,
html[dir=rtl] .sidebar-show.sidebar-fixed.sidebar-minimized .app-footer {
    margin-right: 50px;
  }
}
@media (min-width: 1200px) {
  html[dir=rtl] .sidebar-xl-show.breadcrumb-fixed .breadcrumb,
html[dir=rtl] .sidebar-show.breadcrumb-fixed .breadcrumb {
    right: 300px;
  }
  html[dir=rtl] .sidebar-xl-show.breadcrumb-fixed.sidebar-compact .breadcrumb,
html[dir=rtl] .sidebar-show.breadcrumb-fixed.sidebar-compact .breadcrumb {
    right: 150px;
  }
  html[dir=rtl] .sidebar-xl-show.breadcrumb-fixed.sidebar-minimized .breadcrumb,
html[dir=rtl] .sidebar-show.breadcrumb-fixed.sidebar-minimized .breadcrumb {
    right: 50px;
  }
}
@media (min-width: 1200px) {
  html[dir=rtl] .aside-menu-show .aside-menu,
html[dir=rtl] .aside-menu-xl-show .aside-menu {
    margin-left: 0;
  }
  html[dir=rtl] .aside-menu-show.aside-menu-fixed .main,
html[dir=rtl] .aside-menu-show.aside-menu-fixed .app-footer,
html[dir=rtl] .aside-menu-xl-show.aside-menu-fixed .main,
html[dir=rtl] .aside-menu-xl-show.aside-menu-fixed .app-footer {
    margin-left: 250px;
  }
  html[dir=rtl] .aside-menu-show.breadcrumb-fixed .breadcrumb,
html[dir=rtl] .aside-menu-xl-show.breadcrumb-fixed .breadcrumb {
    left: 250px;
  }
}
@media (min-width: 1200px) {
  @-webkit-keyframes opacity {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
  }
  @keyframes opacity {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
  }
}
.footer-fixed .app-footer {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1020;
  height: 50px;
}
.footer-fixed .app-body {
  margin-bottom: 50px;
}
.app-header,
.app-footer,
.sidebar,
.main,
.aside-menu {
  transition: margin-left 0.25s, margin-right 0.25s, width 0.25s, flex 0.25s;
}
.sidebar-nav {
  transition: width 0.25s;
}
.breadcrumb {
  transition: left 0.25s, right 0.25s, width 0.25s;
}
@media (max-width: 991.98px) {
  .app-header {
    position: fixed;
    z-index: 1020;
    width: 100%;
    text-align: center;
    background-color: #fff;
  }
  .app-header .navbar-toggler {
    color: #fff;
  }
  .app-header .navbar-brand {
    position: absolute;
    top: 0;
    left: 50%;
    margin-left: -77.5px;
  }

  .app-body {
    margin-top: 55px;
  }

  .sidebar {
    position: fixed;
    z-index: 1019;
    width: 300px;
    height: calc(100vh - 55px);
  }

  .sidebar-minimizer {
    display: none;
  }

  .aside-menu {
    position: fixed;
    height: 100%;
  }
}
hr.transparent {
  border-top: 1px solid transparent;
}
.bg-primary,
.bg-success,
.bg-info,
.bg-warning,
.bg-danger,
.bg-dark {
  color: #fff;
}
.bg-facebook {
  background-color: #3b5998 !important;
}
a.bg-facebook:hover, a.bg-facebook:focus,
button.bg-facebook:hover,
button.bg-facebook:focus {
  background-color: #2d4373 !important;
}
.bg-twitter {
  background-color: #00aced !important;
}
a.bg-twitter:hover, a.bg-twitter:focus,
button.bg-twitter:hover,
button.bg-twitter:focus {
  background-color: #0087ba !important;
}
.bg-linkedin {
  background-color: #4875b4 !important;
}
a.bg-linkedin:hover, a.bg-linkedin:focus,
button.bg-linkedin:hover,
button.bg-linkedin:focus {
  background-color: #395d90 !important;
}
.bg-google-plus {
  background-color: #d34836 !important;
}
a.bg-google-plus:hover, a.bg-google-plus:focus,
button.bg-google-plus:hover,
button.bg-google-plus:focus {
  background-color: #b03626 !important;
}
.bg-flickr {
  background-color: #ff0084 !important;
}
a.bg-flickr:hover, a.bg-flickr:focus,
button.bg-flickr:hover,
button.bg-flickr:focus {
  background-color: #cc006a !important;
}
.bg-tumblr {
  background-color: #32506d !important;
}
a.bg-tumblr:hover, a.bg-tumblr:focus,
button.bg-tumblr:hover,
button.bg-tumblr:focus {
  background-color: #22364a !important;
}
.bg-xing {
  background-color: #026466 !important;
}
a.bg-xing:hover, a.bg-xing:focus,
button.bg-xing:hover,
button.bg-xing:focus {
  background-color: #013334 !important;
}
.bg-github {
  background-color: #4183c4 !important;
}
a.bg-github:hover, a.bg-github:focus,
button.bg-github:hover,
button.bg-github:focus {
  background-color: #3269a0 !important;
}
.bg-html5 {
  background-color: #e34f26 !important;
}
a.bg-html5:hover, a.bg-html5:focus,
button.bg-html5:hover,
button.bg-html5:focus {
  background-color: #be3c18 !important;
}
.bg-openid {
  background-color: #f78c40 !important;
}
a.bg-openid:hover, a.bg-openid:focus,
button.bg-openid:hover,
button.bg-openid:focus {
  background-color: #f56f0f !important;
}
.bg-stack-overflow {
  background-color: #fe7a15 !important;
}
a.bg-stack-overflow:hover, a.bg-stack-overflow:focus,
button.bg-stack-overflow:hover,
button.bg-stack-overflow:focus {
  background-color: #df6101 !important;
}
.bg-youtube {
  background-color: #b00 !important;
}
a.bg-youtube:hover, a.bg-youtube:focus,
button.bg-youtube:hover,
button.bg-youtube:focus {
  background-color: #880000 !important;
}
.bg-css3 {
  background-color: #0170ba !important;
}
a.bg-css3:hover, a.bg-css3:focus,
button.bg-css3:hover,
button.bg-css3:focus {
  background-color: #015187 !important;
}
.bg-dribbble {
  background-color: #ea4c89 !important;
}
a.bg-dribbble:hover, a.bg-dribbble:focus,
button.bg-dribbble:hover,
button.bg-dribbble:focus {
  background-color: #e51e6b !important;
}
.bg-instagram {
  background-color: #517fa4 !important;
}
a.bg-instagram:hover, a.bg-instagram:focus,
button.bg-instagram:hover,
button.bg-instagram:focus {
  background-color: #406582 !important;
}
.bg-pinterest {
  background-color: #cb2027 !important;
}
a.bg-pinterest:hover, a.bg-pinterest:focus,
button.bg-pinterest:hover,
button.bg-pinterest:focus {
  background-color: #9f191f !important;
}
.bg-vk {
  background-color: #45668e !important;
}
a.bg-vk:hover, a.bg-vk:focus,
button.bg-vk:hover,
button.bg-vk:focus {
  background-color: #344d6c !important;
}
.bg-yahoo {
  background-color: #400191 !important;
}
a.bg-yahoo:hover, a.bg-yahoo:focus,
button.bg-yahoo:hover,
button.bg-yahoo:focus {
  background-color: #2a015e !important;
}
.bg-behance {
  background-color: #1769ff !important;
}
a.bg-behance:hover, a.bg-behance:focus,
button.bg-behance:hover,
button.bg-behance:focus {
  background-color: #0050e3 !important;
}
.bg-dropbox {
  background-color: #007ee5 !important;
}
a.bg-dropbox:hover, a.bg-dropbox:focus,
button.bg-dropbox:hover,
button.bg-dropbox:focus {
  background-color: #0062b2 !important;
}
.bg-reddit {
  background-color: #ff4500 !important;
}
a.bg-reddit:hover, a.bg-reddit:focus,
button.bg-reddit:hover,
button.bg-reddit:focus {
  background-color: #cc3700 !important;
}
.bg-spotify {
  background-color: #7ab800 !important;
}
a.bg-spotify:hover, a.bg-spotify:focus,
button.bg-spotify:hover,
button.bg-spotify:focus {
  background-color: #588500 !important;
}
.bg-vine {
  background-color: #00bf8f !important;
}
a.bg-vine:hover, a.bg-vine:focus,
button.bg-vine:hover,
button.bg-vine:focus {
  background-color: #008c69 !important;
}
.bg-foursquare {
  background-color: #1073af !important;
}
a.bg-foursquare:hover, a.bg-foursquare:focus,
button.bg-foursquare:hover,
button.bg-foursquare:focus {
  background-color: #0c5480 !important;
}
.bg-vimeo {
  background-color: #aad450 !important;
}
a.bg-vimeo:hover, a.bg-vimeo:focus,
button.bg-vimeo:hover,
button.bg-vimeo:focus {
  background-color: #93c130 !important;
}
.bg-blue {
  background-color: #20a8d8 !important;
}
a.bg-blue:hover, a.bg-blue:focus,
button.bg-blue:hover,
button.bg-blue:focus {
  background-color: #1985ac !important;
}
.bg-indigo {
  background-color: #6610f2 !important;
}
a.bg-indigo:hover, a.bg-indigo:focus,
button.bg-indigo:hover,
button.bg-indigo:focus {
  background-color: #510bc4 !important;
}
.bg-purple {
  background-color: #6f42c1 !important;
}
a.bg-purple:hover, a.bg-purple:focus,
button.bg-purple:hover,
button.bg-purple:focus {
  background-color: #59339d !important;
}
.bg-pink {
  background-color: #e83e8c !important;
}
a.bg-pink:hover, a.bg-pink:focus,
button.bg-pink:hover,
button.bg-pink:focus {
  background-color: #d91a72 !important;
}
.bg-red {
  background-color: #f86c6b !important;
}
a.bg-red:hover, a.bg-red:focus,
button.bg-red:hover,
button.bg-red:focus {
  background-color: #f63c3a !important;
}
.bg-orange {
  background-color: #f8cb00 !important;
}
a.bg-orange:hover, a.bg-orange:focus,
button.bg-orange:hover,
button.bg-orange:focus {
  background-color: #c5a100 !important;
}
.bg-yellow {
  background-color: #ffc107 !important;
}
a.bg-yellow:hover, a.bg-yellow:focus,
button.bg-yellow:hover,
button.bg-yellow:focus {
  background-color: #d39e00 !important;
}
.bg-green {
  background-color: #4dbd74 !important;
}
a.bg-green:hover, a.bg-green:focus,
button.bg-green:hover,
button.bg-green:focus {
  background-color: #3a9d5d !important;
}
.bg-teal {
  background-color: #20c997 !important;
}
a.bg-teal:hover, a.bg-teal:focus,
button.bg-teal:hover,
button.bg-teal:focus {
  background-color: #199d76 !important;
}
.bg-cyan {
  background-color: #17a2b8 !important;
}
a.bg-cyan:hover, a.bg-cyan:focus,
button.bg-cyan:hover,
button.bg-cyan:focus {
  background-color: #117a8b !important;
}
.bg-white {
  background-color: #fff !important;
}
a.bg-white:hover, a.bg-white:focus,
button.bg-white:hover,
button.bg-white:focus {
  background-color: #e6e6e6 !important;
}
.bg-gray {
  background-color: #73818f !important;
}
a.bg-gray:hover, a.bg-gray:focus,
button.bg-gray:hover,
button.bg-gray:focus {
  background-color: #5c6873 !important;
}
.bg-gray-dark {
  background-color: #2f353a !important;
}
a.bg-gray-dark:hover, a.bg-gray-dark:focus,
button.bg-gray-dark:hover,
button.bg-gray-dark:focus {
  background-color: #181b1e !important;
}
.bg-light-blue {
  background-color: #63c2de !important;
}
a.bg-light-blue:hover, a.bg-light-blue:focus,
button.bg-light-blue:hover,
button.bg-light-blue:focus {
  background-color: #39b2d5 !important;
}
.bg-gray-100 {
  background-color: #f0f3f5 !important;
}
a.bg-gray-100:hover, a.bg-gray-100:focus,
button.bg-gray-100:hover,
button.bg-gray-100:focus {
  background-color: #d1dbe1 !important;
}
.bg-gray-200 {
  background-color: #e4e7ea !important;
}
a.bg-gray-200:hover, a.bg-gray-200:focus,
button.bg-gray-200:hover,
button.bg-gray-200:focus {
  background-color: #c7ced4 !important;
}
.bg-gray-300 {
  background-color: #c8ced3 !important;
}
a.bg-gray-300:hover, a.bg-gray-300:focus,
button.bg-gray-300:hover,
button.bg-gray-300:focus {
  background-color: #acb5bc !important;
}
.bg-gray-400 {
  background-color: #acb4bc !important;
}
a.bg-gray-400:hover, a.bg-gray-400:focus,
button.bg-gray-400:hover,
button.bg-gray-400:focus {
  background-color: #909ba5 !important;
}
.bg-gray-500 {
  background-color: #8f9ba6 !important;
}
a.bg-gray-500:hover, a.bg-gray-500:focus,
button.bg-gray-500:hover,
button.bg-gray-500:focus {
  background-color: #73828f !important;
}
.bg-gray-600 {
  background-color: #73818f !important;
}
a.bg-gray-600:hover, a.bg-gray-600:focus,
button.bg-gray-600:hover,
button.bg-gray-600:focus {
  background-color: #5c6873 !important;
}
.bg-gray-700 {
  background-color: #5c6873 !important;
}
a.bg-gray-700:hover, a.bg-gray-700:focus,
button.bg-gray-700:hover,
button.bg-gray-700:focus {
  background-color: #454e57 !important;
}
.bg-gray-800 {
  background-color: #2f353a !important;
}
a.bg-gray-800:hover, a.bg-gray-800:focus,
button.bg-gray-800:hover,
button.bg-gray-800:focus {
  background-color: #181b1e !important;
}
.bg-gray-900 {
  background-color: #23282c !important;
}
a.bg-gray-900:hover, a.bg-gray-900:focus,
button.bg-gray-900:hover,
button.bg-gray-900:focus {
  background-color: #0c0e10 !important;
}
.bg-box {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
}
.b-a-0 {
  border: 0 !important;
}
.b-t-0 {
  border-top: 0 !important;
}
.b-r-0 {
  border-right: 0 !important;
}
.b-b-0 {
  border-bottom: 0 !important;
}
.b-l-0 {
  border-left: 0 !important;
}
.b-a-1 {
  border: 1px solid #c8ced3;
}
.b-t-1 {
  border-top: 1px solid #c8ced3;
}
.b-r-1 {
  border-right: 1px solid #c8ced3;
}
.b-b-1 {
  border-bottom: 1px solid #c8ced3;
}
.b-l-1 {
  border-left: 1px solid #c8ced3;
}
.b-a-2 {
  border: 2px solid #c8ced3;
}
.b-t-2 {
  border-top: 2px solid #c8ced3;
}
.b-r-2 {
  border-right: 2px solid #c8ced3;
}
.b-b-2 {
  border-bottom: 2px solid #c8ced3;
}
.b-l-2 {
  border-left: 2px solid #c8ced3;
}
@media (max-width: 575.98px) {
  .d-down-none {
    display: none !important;
  }
}
@media (max-width: 767.98px) {
  .d-sm-down-none {
    display: none !important;
  }
}
@media (max-width: 991.98px) {
  .d-md-down-none {
    display: none !important;
  }
}
@media (max-width: 1199.98px) {
  .d-lg-down-none {
    display: none !important;
  }
}
.d-xl-down-none {
  display: none !important;
}
body {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
}
.font-xs {
  font-size: 0.75rem !important;
}
.font-sm {
  font-size: 0.85rem !important;
}
.font-lg {
  font-size: 1rem !important;
}
.font-xl {
  font-size: 1.25rem !important;
}
.font-2xl {
  font-size: 1.5rem !important;
}
.font-3xl {
  font-size: 1.75rem !important;
}
.font-4xl {
  font-size: 2rem !important;
}
.font-5xl {
  font-size: 2.5rem !important;
}
.text-value {
  font-size: 1.3125rem;
  font-weight: 600;
}
.text-value-sm {
  font-size: 1.09375rem;
  font-weight: 600;
}
.text-value-lg {
  font-size: 1.53125rem;
  font-weight: 600;
}
.text-white .text-muted {
  color: rgba(255, 255, 255, 0.6) !important;
}
.email-app {
  display: flex;
  flex-direction: row;
  background: #fff;
  border: 1px solid #c8ced3;
}
.email-app nav {
  flex: 0 0 200px;
  padding: 1rem;
  border-right: 1px solid #c8ced3;
}
.email-app nav .btn-block {
  margin-bottom: 15px;
}
.email-app nav .nav {
  flex-direction: column;
}
.email-app nav .nav-item {
  position: relative;
}
.email-app nav .nav-item:hover {
  background-color: #f0f3f5;
}
.email-app nav .nav-item a:focus {
  outline: #c8ced3 auto 0.2rem;
}
.email-app nav .nav-link {
  color: #23282c;
  border-bottom: 1px solid #c8ced3;
}
.email-app nav .nav-link i {
  width: 20px;
  margin: 0 10px 0 0;
  font-size: 14px;
  text-align: center;
}
.email-app nav .nav-link .badge {
  float: right;
  margin-top: 4px;
  margin-left: 10px;
}
.email-app main {
  flex: 1;
  min-width: 0;
  padding: 1rem;
}
.email-app .inbox .toolbar {
  padding-bottom: 1rem;
  border-bottom: 1px solid #c8ced3;
}
.email-app .inbox .messages {
  padding: 0;
  list-style: none;
}
.email-app .inbox .message {
  position: relative;
  padding: 1rem 1rem 1rem 2rem;
  cursor: pointer;
  border-bottom: 1px solid #c8ced3;
}
.email-app .inbox .message:hover {
  background-color: #f0f3f5;
}
.email-app .inbox .message .actions {
  position: absolute;
  left: 0;
  display: flex;
  flex-direction: column;
}
.email-app .inbox .message .actions .action {
  width: 2rem;
  margin-bottom: 0.5rem;
  color: #c8ced3;
  text-align: center;
}
.email-app .inbox .message a {
  color: #23282c;
}
.email-app .inbox .message a:hover {
  text-decoration: none;
}
.email-app .inbox .message a:focus {
  outline: #c8ced3 auto 0.2rem;
}
.email-app .inbox .message.unread .header,
.email-app .inbox .message.unread .title {
  font-weight: 700;
}
.email-app .inbox .message .header {
  display: flex;
  flex-direction: row;
  margin-bottom: 0.5rem;
}
.email-app .inbox .message .header .date {
  margin-left: auto;
}
.email-app .inbox .message .title {
  margin-bottom: 0.5rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.email-app .inbox .message .description {
  font-size: 12px;
}
.email-app .message .toolbar {
  padding-bottom: 1rem;
  border-bottom: 1px solid #c8ced3;
}
.email-app .message .details .title {
  padding: 1rem 0;
  font-weight: 700;
}
.email-app .message .details .header {
  display: flex;
  padding: 1rem 0;
  margin: 1rem 0;
  border-top: 1px solid #c8ced3;
  border-bottom: 1px solid #c8ced3;
}
.email-app .message .details .header .avatar {
  width: 40px;
  height: 40px;
  margin-right: 1rem;
}
.email-app .message .details .header .from {
  align-self: center;
  font-size: 12px;
  color: #73818f;
}
.email-app .message .details .header .from span {
  display: block;
  font-weight: 700;
}
.email-app .message .details .header .date {
  margin-left: auto;
}
.email-app .message .details .attachments {
  padding: 1rem 0;
  margin-bottom: 1rem;
  border-top: 3px solid #f0f3f5;
  border-bottom: 3px solid #f0f3f5;
}
.email-app .message .details .attachments .attachment {
  display: flex;
  align-self: center;
  margin: 0.5rem 0;
  font-size: 12px;
}
.email-app .message .details .attachments .attachment .badge {
  margin: 0 0.5rem;
  line-height: inherit;
}
.email-app .message .details .attachments .attachment .menu {
  margin-left: auto;
}
.email-app .message .details .attachments .attachment .menu a {
  padding: 0 0.5rem;
  font-size: 14px;
  color: #c8ced3;
}
@media (max-width: 767.98px) {
  .email-app {
    flex-direction: column;
  }
  .email-app nav {
    flex: 0 0 100%;
  }
}
@media (max-width: 575.98px) {
  .email-app .message .header {
    flex-flow: row wrap;
  }
  .email-app .message .header .date {
    flex: 0 0 100%;
  }
}
*[dir=rtl] {
  direction: rtl;
  unicode-bidi: embed;
}
*[dir=rtl] body {
  text-align: right;
}
*[dir=rtl] .dropdown-item {
  text-align: right;
}
*[dir=rtl] .dropdown-item i {
  margin-right: -10px;
  margin-left: 10px;
}
*[dir=rtl] .dropdown-item .badge {
  right: auto;
  left: 10px;
}
*[dir=rtl] .float-left {
  float: right !important;
}
*[dir=rtl] .float-right {
  float: left !important;
}
*[dir=rtl] .mr-0,
*[dir=rtl] .mx-0 {
  margin-right: 0 !important;
  margin-left: 0 !important;
}
*[dir=rtl] .ml-0,
*[dir=rtl] .mx-0 {
  margin-right: 0 !important;
  margin-left: 0 !important;
}
*[dir=rtl] .mr-1,
*[dir=rtl] .mx-1 {
  margin-right: 0 !important;
  margin-left: 0.25rem !important;
}
*[dir=rtl] .ml-1,
*[dir=rtl] .mx-1 {
  margin-right: 0.25rem !important;
  margin-left: 0 !important;
}
*[dir=rtl] .mr-2,
*[dir=rtl] .mx-2 {
  margin-right: 0 !important;
  margin-left: 0.5rem !important;
}
*[dir=rtl] .ml-2,
*[dir=rtl] .mx-2 {
  margin-right: 0.5rem !important;
  margin-left: 0 !important;
}
*[dir=rtl] .mr-3,
*[dir=rtl] .mx-3 {
  margin-right: 0 !important;
  margin-left: 1rem !important;
}
*[dir=rtl] .ml-3,
*[dir=rtl] .mx-3 {
  margin-right: 1rem !important;
  margin-left: 0 !important;
}
*[dir=rtl] .mr-4,
*[dir=rtl] .mx-4 {
  margin-right: 0 !important;
  margin-left: 1.5rem !important;
}
*[dir=rtl] .ml-4,
*[dir=rtl] .mx-4 {
  margin-right: 1.5rem !important;
  margin-left: 0 !important;
}
*[dir=rtl] .mr-5,
*[dir=rtl] .mx-5 {
  margin-right: 0 !important;
  margin-left: 3rem !important;
}
*[dir=rtl] .ml-5,
*[dir=rtl] .mx-5 {
  margin-right: 3rem !important;
  margin-left: 0 !important;
}
*[dir=rtl] .pr-0,
*[dir=rtl] .px-0 {
  padding-right: 0 !important;
  padding-left: 0 !important;
}
*[dir=rtl] .pl-0,
*[dir=rtl] .px-0 {
  padding-right: 0 !important;
  padding-left: 0 !important;
}
*[dir=rtl] .pr-1,
*[dir=rtl] .px-1 {
  padding-right: 0 !important;
  padding-left: 0.25rem !important;
}
*[dir=rtl] .pl-1,
*[dir=rtl] .px-1 {
  padding-right: 0.25rem !important;
  padding-left: 0 !important;
}
*[dir=rtl] .pr-2,
*[dir=rtl] .px-2 {
  padding-right: 0 !important;
  padding-left: 0.5rem !important;
}
*[dir=rtl] .pl-2,
*[dir=rtl] .px-2 {
  padding-right: 0.5rem !important;
  padding-left: 0 !important;
}
*[dir=rtl] .pr-3,
*[dir=rtl] .px-3 {
  padding-right: 0 !important;
  padding-left: 1rem !important;
}
*[dir=rtl] .pl-3,
*[dir=rtl] .px-3 {
  padding-right: 1rem !important;
  padding-left: 0 !important;
}
*[dir=rtl] .pr-4,
*[dir=rtl] .px-4 {
  padding-right: 0 !important;
  padding-left: 1.5rem !important;
}
*[dir=rtl] .pl-4,
*[dir=rtl] .px-4 {
  padding-right: 1.5rem !important;
  padding-left: 0 !important;
}
*[dir=rtl] .pr-5,
*[dir=rtl] .px-5 {
  padding-right: 0 !important;
  padding-left: 3rem !important;
}
*[dir=rtl] .pl-5,
*[dir=rtl] .px-5 {
  padding-right: 3rem !important;
  padding-left: 0 !important;
}
*[dir=rtl] .mr-n1,
*[dir=rtl] .mx-n1 {
  margin-right: 0 !important;
  margin-left: -0.25rem !important;
}
*[dir=rtl] .ml-n1,
*[dir=rtl] .mx-n1 {
  margin-right: -0.25rem !important;
  margin-left: 0 !important;
}
*[dir=rtl] .mr-n2,
*[dir=rtl] .mx-n2 {
  margin-right: 0 !important;
  margin-left: -0.5rem !important;
}
*[dir=rtl] .ml-n2,
*[dir=rtl] .mx-n2 {
  margin-right: -0.5rem !important;
  margin-left: 0 !important;
}
*[dir=rtl] .mr-n3,
*[dir=rtl] .mx-n3 {
  margin-right: 0 !important;
  margin-left: -1rem !important;
}
*[dir=rtl] .ml-n3,
*[dir=rtl] .mx-n3 {
  margin-right: -1rem !important;
  margin-left: 0 !important;
}
*[dir=rtl] .mr-n4,
*[dir=rtl] .mx-n4 {
  margin-right: 0 !important;
  margin-left: -1.5rem !important;
}
*[dir=rtl] .ml-n4,
*[dir=rtl] .mx-n4 {
  margin-right: -1.5rem !important;
  margin-left: 0 !important;
}
*[dir=rtl] .mr-n5,
*[dir=rtl] .mx-n5 {
  margin-right: 0 !important;
  margin-left: -3rem !important;
}
*[dir=rtl] .ml-n5,
*[dir=rtl] .mx-n5 {
  margin-right: -3rem !important;
  margin-left: 0 !important;
}
*[dir=rtl] .mr-auto,
*[dir=rtl] .mx-auto {
  margin-left: auto !important;
}
*[dir=rtl] .ml-auto,
*[dir=rtl] .mx-auto {
  margin-right: auto !important;
}
@media (min-width: 576px) {
  *[dir=rtl] .mr-sm-0,
*[dir=rtl] .mx-sm-0 {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .ml-sm-0,
*[dir=rtl] .mx-sm-0 {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-sm-1,
*[dir=rtl] .mx-sm-1 {
    margin-right: 0 !important;
    margin-left: 0.25rem !important;
  }
  *[dir=rtl] .ml-sm-1,
*[dir=rtl] .mx-sm-1 {
    margin-right: 0.25rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-sm-2,
*[dir=rtl] .mx-sm-2 {
    margin-right: 0 !important;
    margin-left: 0.5rem !important;
  }
  *[dir=rtl] .ml-sm-2,
*[dir=rtl] .mx-sm-2 {
    margin-right: 0.5rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-sm-3,
*[dir=rtl] .mx-sm-3 {
    margin-right: 0 !important;
    margin-left: 1rem !important;
  }
  *[dir=rtl] .ml-sm-3,
*[dir=rtl] .mx-sm-3 {
    margin-right: 1rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-sm-4,
*[dir=rtl] .mx-sm-4 {
    margin-right: 0 !important;
    margin-left: 1.5rem !important;
  }
  *[dir=rtl] .ml-sm-4,
*[dir=rtl] .mx-sm-4 {
    margin-right: 1.5rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-sm-5,
*[dir=rtl] .mx-sm-5 {
    margin-right: 0 !important;
    margin-left: 3rem !important;
  }
  *[dir=rtl] .ml-sm-5,
*[dir=rtl] .mx-sm-5 {
    margin-right: 3rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .pr-sm-0,
*[dir=rtl] .px-sm-0 {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .pl-sm-0,
*[dir=rtl] .px-sm-0 {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .pr-sm-1,
*[dir=rtl] .px-sm-1 {
    padding-right: 0 !important;
    padding-left: 0.25rem !important;
  }
  *[dir=rtl] .pl-sm-1,
*[dir=rtl] .px-sm-1 {
    padding-right: 0.25rem !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .pr-sm-2,
*[dir=rtl] .px-sm-2 {
    padding-right: 0 !important;
    padding-left: 0.5rem !important;
  }
  *[dir=rtl] .pl-sm-2,
*[dir=rtl] .px-sm-2 {
    padding-right: 0.5rem !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .pr-sm-3,
*[dir=rtl] .px-sm-3 {
    padding-right: 0 !important;
    padding-left: 1rem !important;
  }
  *[dir=rtl] .pl-sm-3,
*[dir=rtl] .px-sm-3 {
    padding-right: 1rem !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .pr-sm-4,
*[dir=rtl] .px-sm-4 {
    padding-right: 0 !important;
    padding-left: 1.5rem !important;
  }
  *[dir=rtl] .pl-sm-4,
*[dir=rtl] .px-sm-4 {
    padding-right: 1.5rem !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .pr-sm-5,
*[dir=rtl] .px-sm-5 {
    padding-right: 0 !important;
    padding-left: 3rem !important;
  }
  *[dir=rtl] .pl-sm-5,
*[dir=rtl] .px-sm-5 {
    padding-right: 3rem !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .mr-sm-n1,
*[dir=rtl] .mx-sm-n1 {
    margin-right: 0 !important;
    margin-left: -0.25rem !important;
  }
  *[dir=rtl] .ml-sm-n1,
*[dir=rtl] .mx-sm-n1 {
    margin-right: -0.25rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-sm-n2,
*[dir=rtl] .mx-sm-n2 {
    margin-right: 0 !important;
    margin-left: -0.5rem !important;
  }
  *[dir=rtl] .ml-sm-n2,
*[dir=rtl] .mx-sm-n2 {
    margin-right: -0.5rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-sm-n3,
*[dir=rtl] .mx-sm-n3 {
    margin-right: 0 !important;
    margin-left: -1rem !important;
  }
  *[dir=rtl] .ml-sm-n3,
*[dir=rtl] .mx-sm-n3 {
    margin-right: -1rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-sm-n4,
*[dir=rtl] .mx-sm-n4 {
    margin-right: 0 !important;
    margin-left: -1.5rem !important;
  }
  *[dir=rtl] .ml-sm-n4,
*[dir=rtl] .mx-sm-n4 {
    margin-right: -1.5rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-sm-n5,
*[dir=rtl] .mx-sm-n5 {
    margin-right: 0 !important;
    margin-left: -3rem !important;
  }
  *[dir=rtl] .ml-sm-n5,
*[dir=rtl] .mx-sm-n5 {
    margin-right: -3rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-sm-auto,
*[dir=rtl] .mx-sm-auto {
    margin-left: auto !important;
  }
  *[dir=rtl] .ml-sm-auto,
*[dir=rtl] .mx-sm-auto {
    margin-right: auto !important;
  }
}
@media (min-width: 768px) {
  *[dir=rtl] .mr-md-0,
*[dir=rtl] .mx-md-0 {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .ml-md-0,
*[dir=rtl] .mx-md-0 {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-md-1,
*[dir=rtl] .mx-md-1 {
    margin-right: 0 !important;
    margin-left: 0.25rem !important;
  }
  *[dir=rtl] .ml-md-1,
*[dir=rtl] .mx-md-1 {
    margin-right: 0.25rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-md-2,
*[dir=rtl] .mx-md-2 {
    margin-right: 0 !important;
    margin-left: 0.5rem !important;
  }
  *[dir=rtl] .ml-md-2,
*[dir=rtl] .mx-md-2 {
    margin-right: 0.5rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-md-3,
*[dir=rtl] .mx-md-3 {
    margin-right: 0 !important;
    margin-left: 1rem !important;
  }
  *[dir=rtl] .ml-md-3,
*[dir=rtl] .mx-md-3 {
    margin-right: 1rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-md-4,
*[dir=rtl] .mx-md-4 {
    margin-right: 0 !important;
    margin-left: 1.5rem !important;
  }
  *[dir=rtl] .ml-md-4,
*[dir=rtl] .mx-md-4 {
    margin-right: 1.5rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-md-5,
*[dir=rtl] .mx-md-5 {
    margin-right: 0 !important;
    margin-left: 3rem !important;
  }
  *[dir=rtl] .ml-md-5,
*[dir=rtl] .mx-md-5 {
    margin-right: 3rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .pr-md-0,
*[dir=rtl] .px-md-0 {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .pl-md-0,
*[dir=rtl] .px-md-0 {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .pr-md-1,
*[dir=rtl] .px-md-1 {
    padding-right: 0 !important;
    padding-left: 0.25rem !important;
  }
  *[dir=rtl] .pl-md-1,
*[dir=rtl] .px-md-1 {
    padding-right: 0.25rem !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .pr-md-2,
*[dir=rtl] .px-md-2 {
    padding-right: 0 !important;
    padding-left: 0.5rem !important;
  }
  *[dir=rtl] .pl-md-2,
*[dir=rtl] .px-md-2 {
    padding-right: 0.5rem !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .pr-md-3,
*[dir=rtl] .px-md-3 {
    padding-right: 0 !important;
    padding-left: 1rem !important;
  }
  *[dir=rtl] .pl-md-3,
*[dir=rtl] .px-md-3 {
    padding-right: 1rem !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .pr-md-4,
*[dir=rtl] .px-md-4 {
    padding-right: 0 !important;
    padding-left: 1.5rem !important;
  }
  *[dir=rtl] .pl-md-4,
*[dir=rtl] .px-md-4 {
    padding-right: 1.5rem !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .pr-md-5,
*[dir=rtl] .px-md-5 {
    padding-right: 0 !important;
    padding-left: 3rem !important;
  }
  *[dir=rtl] .pl-md-5,
*[dir=rtl] .px-md-5 {
    padding-right: 3rem !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .mr-md-n1,
*[dir=rtl] .mx-md-n1 {
    margin-right: 0 !important;
    margin-left: -0.25rem !important;
  }
  *[dir=rtl] .ml-md-n1,
*[dir=rtl] .mx-md-n1 {
    margin-right: -0.25rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-md-n2,
*[dir=rtl] .mx-md-n2 {
    margin-right: 0 !important;
    margin-left: -0.5rem !important;
  }
  *[dir=rtl] .ml-md-n2,
*[dir=rtl] .mx-md-n2 {
    margin-right: -0.5rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-md-n3,
*[dir=rtl] .mx-md-n3 {
    margin-right: 0 !important;
    margin-left: -1rem !important;
  }
  *[dir=rtl] .ml-md-n3,
*[dir=rtl] .mx-md-n3 {
    margin-right: -1rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-md-n4,
*[dir=rtl] .mx-md-n4 {
    margin-right: 0 !important;
    margin-left: -1.5rem !important;
  }
  *[dir=rtl] .ml-md-n4,
*[dir=rtl] .mx-md-n4 {
    margin-right: -1.5rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-md-n5,
*[dir=rtl] .mx-md-n5 {
    margin-right: 0 !important;
    margin-left: -3rem !important;
  }
  *[dir=rtl] .ml-md-n5,
*[dir=rtl] .mx-md-n5 {
    margin-right: -3rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-md-auto,
*[dir=rtl] .mx-md-auto {
    margin-left: auto !important;
  }
  *[dir=rtl] .ml-md-auto,
*[dir=rtl] .mx-md-auto {
    margin-right: auto !important;
  }
}
@media (min-width: 992px) {
  *[dir=rtl] .mr-lg-0,
*[dir=rtl] .mx-lg-0 {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .ml-lg-0,
*[dir=rtl] .mx-lg-0 {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-lg-1,
*[dir=rtl] .mx-lg-1 {
    margin-right: 0 !important;
    margin-left: 0.25rem !important;
  }
  *[dir=rtl] .ml-lg-1,
*[dir=rtl] .mx-lg-1 {
    margin-right: 0.25rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-lg-2,
*[dir=rtl] .mx-lg-2 {
    margin-right: 0 !important;
    margin-left: 0.5rem !important;
  }
  *[dir=rtl] .ml-lg-2,
*[dir=rtl] .mx-lg-2 {
    margin-right: 0.5rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-lg-3,
*[dir=rtl] .mx-lg-3 {
    margin-right: 0 !important;
    margin-left: 1rem !important;
  }
  *[dir=rtl] .ml-lg-3,
*[dir=rtl] .mx-lg-3 {
    margin-right: 1rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-lg-4,
*[dir=rtl] .mx-lg-4 {
    margin-right: 0 !important;
    margin-left: 1.5rem !important;
  }
  *[dir=rtl] .ml-lg-4,
*[dir=rtl] .mx-lg-4 {
    margin-right: 1.5rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-lg-5,
*[dir=rtl] .mx-lg-5 {
    margin-right: 0 !important;
    margin-left: 3rem !important;
  }
  *[dir=rtl] .ml-lg-5,
*[dir=rtl] .mx-lg-5 {
    margin-right: 3rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .pr-lg-0,
*[dir=rtl] .px-lg-0 {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .pl-lg-0,
*[dir=rtl] .px-lg-0 {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .pr-lg-1,
*[dir=rtl] .px-lg-1 {
    padding-right: 0 !important;
    padding-left: 0.25rem !important;
  }
  *[dir=rtl] .pl-lg-1,
*[dir=rtl] .px-lg-1 {
    padding-right: 0.25rem !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .pr-lg-2,
*[dir=rtl] .px-lg-2 {
    padding-right: 0 !important;
    padding-left: 0.5rem !important;
  }
  *[dir=rtl] .pl-lg-2,
*[dir=rtl] .px-lg-2 {
    padding-right: 0.5rem !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .pr-lg-3,
*[dir=rtl] .px-lg-3 {
    padding-right: 0 !important;
    padding-left: 1rem !important;
  }
  *[dir=rtl] .pl-lg-3,
*[dir=rtl] .px-lg-3 {
    padding-right: 1rem !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .pr-lg-4,
*[dir=rtl] .px-lg-4 {
    padding-right: 0 !important;
    padding-left: 1.5rem !important;
  }
  *[dir=rtl] .pl-lg-4,
*[dir=rtl] .px-lg-4 {
    padding-right: 1.5rem !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .pr-lg-5,
*[dir=rtl] .px-lg-5 {
    padding-right: 0 !important;
    padding-left: 3rem !important;
  }
  *[dir=rtl] .pl-lg-5,
*[dir=rtl] .px-lg-5 {
    padding-right: 3rem !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .mr-lg-n1,
*[dir=rtl] .mx-lg-n1 {
    margin-right: 0 !important;
    margin-left: -0.25rem !important;
  }
  *[dir=rtl] .ml-lg-n1,
*[dir=rtl] .mx-lg-n1 {
    margin-right: -0.25rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-lg-n2,
*[dir=rtl] .mx-lg-n2 {
    margin-right: 0 !important;
    margin-left: -0.5rem !important;
  }
  *[dir=rtl] .ml-lg-n2,
*[dir=rtl] .mx-lg-n2 {
    margin-right: -0.5rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-lg-n3,
*[dir=rtl] .mx-lg-n3 {
    margin-right: 0 !important;
    margin-left: -1rem !important;
  }
  *[dir=rtl] .ml-lg-n3,
*[dir=rtl] .mx-lg-n3 {
    margin-right: -1rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-lg-n4,
*[dir=rtl] .mx-lg-n4 {
    margin-right: 0 !important;
    margin-left: -1.5rem !important;
  }
  *[dir=rtl] .ml-lg-n4,
*[dir=rtl] .mx-lg-n4 {
    margin-right: -1.5rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-lg-n5,
*[dir=rtl] .mx-lg-n5 {
    margin-right: 0 !important;
    margin-left: -3rem !important;
  }
  *[dir=rtl] .ml-lg-n5,
*[dir=rtl] .mx-lg-n5 {
    margin-right: -3rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-lg-auto,
*[dir=rtl] .mx-lg-auto {
    margin-left: auto !important;
  }
  *[dir=rtl] .ml-lg-auto,
*[dir=rtl] .mx-lg-auto {
    margin-right: auto !important;
  }
}
@media (min-width: 1200px) {
  *[dir=rtl] .mr-xl-0,
*[dir=rtl] .mx-xl-0 {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .ml-xl-0,
*[dir=rtl] .mx-xl-0 {
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-xl-1,
*[dir=rtl] .mx-xl-1 {
    margin-right: 0 !important;
    margin-left: 0.25rem !important;
  }
  *[dir=rtl] .ml-xl-1,
*[dir=rtl] .mx-xl-1 {
    margin-right: 0.25rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-xl-2,
*[dir=rtl] .mx-xl-2 {
    margin-right: 0 !important;
    margin-left: 0.5rem !important;
  }
  *[dir=rtl] .ml-xl-2,
*[dir=rtl] .mx-xl-2 {
    margin-right: 0.5rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-xl-3,
*[dir=rtl] .mx-xl-3 {
    margin-right: 0 !important;
    margin-left: 1rem !important;
  }
  *[dir=rtl] .ml-xl-3,
*[dir=rtl] .mx-xl-3 {
    margin-right: 1rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-xl-4,
*[dir=rtl] .mx-xl-4 {
    margin-right: 0 !important;
    margin-left: 1.5rem !important;
  }
  *[dir=rtl] .ml-xl-4,
*[dir=rtl] .mx-xl-4 {
    margin-right: 1.5rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-xl-5,
*[dir=rtl] .mx-xl-5 {
    margin-right: 0 !important;
    margin-left: 3rem !important;
  }
  *[dir=rtl] .ml-xl-5,
*[dir=rtl] .mx-xl-5 {
    margin-right: 3rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .pr-xl-0,
*[dir=rtl] .px-xl-0 {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .pl-xl-0,
*[dir=rtl] .px-xl-0 {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .pr-xl-1,
*[dir=rtl] .px-xl-1 {
    padding-right: 0 !important;
    padding-left: 0.25rem !important;
  }
  *[dir=rtl] .pl-xl-1,
*[dir=rtl] .px-xl-1 {
    padding-right: 0.25rem !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .pr-xl-2,
*[dir=rtl] .px-xl-2 {
    padding-right: 0 !important;
    padding-left: 0.5rem !important;
  }
  *[dir=rtl] .pl-xl-2,
*[dir=rtl] .px-xl-2 {
    padding-right: 0.5rem !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .pr-xl-3,
*[dir=rtl] .px-xl-3 {
    padding-right: 0 !important;
    padding-left: 1rem !important;
  }
  *[dir=rtl] .pl-xl-3,
*[dir=rtl] .px-xl-3 {
    padding-right: 1rem !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .pr-xl-4,
*[dir=rtl] .px-xl-4 {
    padding-right: 0 !important;
    padding-left: 1.5rem !important;
  }
  *[dir=rtl] .pl-xl-4,
*[dir=rtl] .px-xl-4 {
    padding-right: 1.5rem !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .pr-xl-5,
*[dir=rtl] .px-xl-5 {
    padding-right: 0 !important;
    padding-left: 3rem !important;
  }
  *[dir=rtl] .pl-xl-5,
*[dir=rtl] .px-xl-5 {
    padding-right: 3rem !important;
    padding-left: 0 !important;
  }
  *[dir=rtl] .mr-xl-n1,
*[dir=rtl] .mx-xl-n1 {
    margin-right: 0 !important;
    margin-left: -0.25rem !important;
  }
  *[dir=rtl] .ml-xl-n1,
*[dir=rtl] .mx-xl-n1 {
    margin-right: -0.25rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-xl-n2,
*[dir=rtl] .mx-xl-n2 {
    margin-right: 0 !important;
    margin-left: -0.5rem !important;
  }
  *[dir=rtl] .ml-xl-n2,
*[dir=rtl] .mx-xl-n2 {
    margin-right: -0.5rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-xl-n3,
*[dir=rtl] .mx-xl-n3 {
    margin-right: 0 !important;
    margin-left: -1rem !important;
  }
  *[dir=rtl] .ml-xl-n3,
*[dir=rtl] .mx-xl-n3 {
    margin-right: -1rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-xl-n4,
*[dir=rtl] .mx-xl-n4 {
    margin-right: 0 !important;
    margin-left: -1.5rem !important;
  }
  *[dir=rtl] .ml-xl-n4,
*[dir=rtl] .mx-xl-n4 {
    margin-right: -1.5rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-xl-n5,
*[dir=rtl] .mx-xl-n5 {
    margin-right: 0 !important;
    margin-left: -3rem !important;
  }
  *[dir=rtl] .ml-xl-n5,
*[dir=rtl] .mx-xl-n5 {
    margin-right: -3rem !important;
    margin-left: 0 !important;
  }
  *[dir=rtl] .mr-xl-auto,
*[dir=rtl] .mx-xl-auto {
    margin-left: auto !important;
  }
  *[dir=rtl] .ml-xl-auto,
*[dir=rtl] .mx-xl-auto {
    margin-right: auto !important;
  }
}
.ie-custom-properties {
  blue: #20a8d8;
  indigo: #6610f2;
  purple: #6f42c1;
  pink: #e83e8c;
  red: #f86c6b;
  orange: #f8cb00;
  yellow: #ffc107;
  green: #4dbd74;
  teal: #20c997;
  cyan: #17a2b8;
  white: #fff;
  gray: #73818f;
  gray-dark: #2f353a;
  light-blue: #63c2de;
  primary: #20a8d8;
  secondary: #c8ced3;
  success: #4dbd74;
  info: #63c2de;
  warning: #ffc107;
  danger: #f86c6b;
  light: #f0f3f5;
  dark: #2f353a;
  breakpoint-xs: 0;
  breakpoint-sm: 576px;
  breakpoint-md: 768px;
  breakpoint-lg: 992px;
  breakpoint-xl: 1200px;
}
.was-validated .form-control:valid,
.form-control.is-valid {
  background-position: right calc(0.375em + 0.1875rem) center;
}
.was-validated .form-control:invalid,
.form-control.is-invalid {
  background-position: right calc(0.375em + 0.1875rem) center;
}
/*
 *  Usage:
 *
      <div class="sk-rotating-plane"></div>
 *
 */
.sk-rotating-plane {
  width: 40px;
  height: 40px;
  background-color: #333;
  margin: 40px auto;
  -webkit-animation: sk-rotatePlane 1.2s infinite ease-in-out;
          animation: sk-rotatePlane 1.2s infinite ease-in-out;
}
@-webkit-keyframes sk-rotatePlane {
  0% {
    transform: perspective(120px) rotateX(0deg) rotateY(0deg);
  }
  50% {
    transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
  }
  100% {
    transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
  }
}
@keyframes sk-rotatePlane {
  0% {
    transform: perspective(120px) rotateX(0deg) rotateY(0deg);
  }
  50% {
    transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
  }
  100% {
    transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
  }
}
/*
 *  Usage:
 *
      <div class="sk-double-bounce">
        <div class="sk-child sk-double-bounce1"></div>
        <div class="sk-child sk-double-bounce2"></div>
      </div>
 *
 */
.sk-double-bounce {
  width: 40px;
  height: 40px;
  position: relative;
  margin: 40px auto;
}
.sk-double-bounce .sk-child {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: #333;
  opacity: 0.6;
  position: absolute;
  top: 0;
  left: 0;
  -webkit-animation: sk-doubleBounce 2s infinite ease-in-out;
          animation: sk-doubleBounce 2s infinite ease-in-out;
}
.sk-double-bounce .sk-double-bounce2 {
  -webkit-animation-delay: -1s;
          animation-delay: -1s;
}
@-webkit-keyframes sk-doubleBounce {
  0%, 100% {
    transform: scale(0);
  }
  50% {
    transform: scale(1);
  }
}
@keyframes sk-doubleBounce {
  0%, 100% {
    transform: scale(0);
  }
  50% {
    transform: scale(1);
  }
}
/*
 *  Usage:
 *
      <div class="sk-wave">
        <div class="sk-rect sk-rect1"></div>
        <div class="sk-rect sk-rect2"></div>
        <div class="sk-rect sk-rect3"></div>
        <div class="sk-rect sk-rect4"></div>
        <div class="sk-rect sk-rect5"></div>
      </div>
 *
 */
.sk-wave {
  margin: 40px auto;
  width: 50px;
  height: 40px;
  text-align: center;
  font-size: 10px;
}
.sk-wave .sk-rect {
  background-color: #333;
  height: 100%;
  width: 6px;
  display: inline-block;
  -webkit-animation: sk-waveStretchDelay 1.2s infinite ease-in-out;
          animation: sk-waveStretchDelay 1.2s infinite ease-in-out;
}
.sk-wave .sk-rect1 {
  -webkit-animation-delay: -1.2s;
          animation-delay: -1.2s;
}
.sk-wave .sk-rect2 {
  -webkit-animation-delay: -1.1s;
          animation-delay: -1.1s;
}
.sk-wave .sk-rect3 {
  -webkit-animation-delay: -1s;
          animation-delay: -1s;
}
.sk-wave .sk-rect4 {
  -webkit-animation-delay: -0.9s;
          animation-delay: -0.9s;
}
.sk-wave .sk-rect5 {
  -webkit-animation-delay: -0.8s;
          animation-delay: -0.8s;
}
@-webkit-keyframes sk-waveStretchDelay {
  0%, 40%, 100% {
    transform: scaleY(0.4);
  }
  20% {
    transform: scaleY(1);
  }
}
@keyframes sk-waveStretchDelay {
  0%, 40%, 100% {
    transform: scaleY(0.4);
  }
  20% {
    transform: scaleY(1);
  }
}
/*
 *  Usage:
 *
      <div class="sk-wandering-cubes">
        <div class="sk-cube sk-cube1"></div>
        <div class="sk-cube sk-cube2"></div>
      </div>
 *
 */
.sk-wandering-cubes {
  margin: 40px auto;
  width: 40px;
  height: 40px;
  position: relative;
}
.sk-wandering-cubes .sk-cube {
  background-color: #333;
  width: 10px;
  height: 10px;
  position: absolute;
  top: 0;
  left: 0;
  -webkit-animation: sk-wanderingCube 1.8s ease-in-out -1.8s infinite both;
          animation: sk-wanderingCube 1.8s ease-in-out -1.8s infinite both;
}
.sk-wandering-cubes .sk-cube2 {
  -webkit-animation-delay: -0.9s;
          animation-delay: -0.9s;
}
@-webkit-keyframes sk-wanderingCube {
  0% {
    transform: rotate(0deg);
  }
  25% {
    transform: translateX(30px) rotate(-90deg) scale(0.5);
  }
  50% {
    /* Hack to make FF rotate in the right direction */
    transform: translateX(30px) translateY(30px) rotate(-179deg);
  }
  50.1% {
    transform: translateX(30px) translateY(30px) rotate(-180deg);
  }
  75% {
    transform: translateX(0) translateY(30px) rotate(-270deg) scale(0.5);
  }
  100% {
    transform: rotate(-360deg);
  }
}
@keyframes sk-wanderingCube {
  0% {
    transform: rotate(0deg);
  }
  25% {
    transform: translateX(30px) rotate(-90deg) scale(0.5);
  }
  50% {
    /* Hack to make FF rotate in the right direction */
    transform: translateX(30px) translateY(30px) rotate(-179deg);
  }
  50.1% {
    transform: translateX(30px) translateY(30px) rotate(-180deg);
  }
  75% {
    transform: translateX(0) translateY(30px) rotate(-270deg) scale(0.5);
  }
  100% {
    transform: rotate(-360deg);
  }
}
/*
 *  Usage:
 *
      <div class="sk-spinner sk-spinner-pulse"></div>
 *
 */
.sk-spinner-pulse {
  width: 40px;
  height: 40px;
  margin: 40px auto;
  background-color: #333;
  border-radius: 100%;
  -webkit-animation: sk-pulseScaleOut 1s infinite ease-in-out;
          animation: sk-pulseScaleOut 1s infinite ease-in-out;
}
@-webkit-keyframes sk-pulseScaleOut {
  0% {
    transform: scale(0);
  }
  100% {
    transform: scale(1);
    opacity: 0;
  }
}
@keyframes sk-pulseScaleOut {
  0% {
    transform: scale(0);
  }
  100% {
    transform: scale(1);
    opacity: 0;
  }
}
/*
 *  Usage:
 *
      <div class="sk-chasing-dots">
        <div class="sk-child sk-dot1"></div>
        <div class="sk-child sk-dot2"></div>
      </div>
 *
 */
.sk-chasing-dots {
  margin: 40px auto;
  width: 40px;
  height: 40px;
  position: relative;
  text-align: center;
  -webkit-animation: sk-chasingDotsRotate 2s infinite linear;
          animation: sk-chasingDotsRotate 2s infinite linear;
}
.sk-chasing-dots .sk-child {
  width: 60%;
  height: 60%;
  display: inline-block;
  position: absolute;
  top: 0;
  background-color: #333;
  border-radius: 100%;
  -webkit-animation: sk-chasingDotsBounce 2s infinite ease-in-out;
          animation: sk-chasingDotsBounce 2s infinite ease-in-out;
}
.sk-chasing-dots .sk-dot2 {
  top: auto;
  bottom: 0;
  -webkit-animation-delay: -1s;
          animation-delay: -1s;
}
@-webkit-keyframes sk-chasingDotsRotate {
  100% {
    transform: rotate(360deg);
  }
}
@keyframes sk-chasingDotsRotate {
  100% {
    transform: rotate(360deg);
  }
}
@-webkit-keyframes sk-chasingDotsBounce {
  0%, 100% {
    transform: scale(0);
  }
  50% {
    transform: scale(1);
  }
}
@keyframes sk-chasingDotsBounce {
  0%, 100% {
    transform: scale(0);
  }
  50% {
    transform: scale(1);
  }
}
/*
 *  Usage:
 *
      <div class="sk-three-bounce">
        <div class="sk-child sk-bounce1"></div>
        <div class="sk-child sk-bounce2"></div>
        <div class="sk-child sk-bounce3"></div>
      </div>
 *
 */
.sk-three-bounce {
  margin: 40px auto;
  width: 80px;
  text-align: center;
}
.sk-three-bounce .sk-child {
  width: 20px;
  height: 20px;
  background-color: #333;
  border-radius: 100%;
  display: inline-block;
  -webkit-animation: sk-three-bounce 1.4s ease-in-out 0s infinite both;
          animation: sk-three-bounce 1.4s ease-in-out 0s infinite both;
}
.sk-three-bounce .sk-bounce1 {
  -webkit-animation-delay: -0.32s;
          animation-delay: -0.32s;
}
.sk-three-bounce .sk-bounce2 {
  -webkit-animation-delay: -0.16s;
          animation-delay: -0.16s;
}
@-webkit-keyframes sk-three-bounce {
  0%, 80%, 100% {
    transform: scale(0);
  }
  40% {
    transform: scale(1);
  }
}
@keyframes sk-three-bounce {
  0%, 80%, 100% {
    transform: scale(0);
  }
  40% {
    transform: scale(1);
  }
}
/*
 *  Usage:
 *
      <div class="sk-circle">
        <div class="sk-circle1 sk-child"></div>
        <div class="sk-circle2 sk-child"></div>
        <div class="sk-circle3 sk-child"></div>
        <div class="sk-circle4 sk-child"></div>
        <div class="sk-circle5 sk-child"></div>
        <div class="sk-circle6 sk-child"></div>
        <div class="sk-circle7 sk-child"></div>
        <div class="sk-circle8 sk-child"></div>
        <div class="sk-circle9 sk-child"></div>
        <div class="sk-circle10 sk-child"></div>
        <div class="sk-circle11 sk-child"></div>
        <div class="sk-circle12 sk-child"></div>
      </div>
 *
 */
.sk-circle {
  margin: 40px auto;
  width: 40px;
  height: 40px;
  position: relative;
}
.sk-circle .sk-child {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.sk-circle .sk-child:before {
  content: "";
  display: block;
  margin: 0 auto;
  width: 15%;
  height: 15%;
  background-color: #333;
  border-radius: 100%;
  -webkit-animation: sk-circleBounceDelay 1.2s infinite ease-in-out both;
          animation: sk-circleBounceDelay 1.2s infinite ease-in-out both;
}
.sk-circle .sk-circle2 {
  transform: rotate(30deg);
}
.sk-circle .sk-circle3 {
  transform: rotate(60deg);
}
.sk-circle .sk-circle4 {
  transform: rotate(90deg);
}
.sk-circle .sk-circle5 {
  transform: rotate(120deg);
}
.sk-circle .sk-circle6 {
  transform: rotate(150deg);
}
.sk-circle .sk-circle7 {
  transform: rotate(180deg);
}
.sk-circle .sk-circle8 {
  transform: rotate(210deg);
}
.sk-circle .sk-circle9 {
  transform: rotate(240deg);
}
.sk-circle .sk-circle10 {
  transform: rotate(270deg);
}
.sk-circle .sk-circle11 {
  transform: rotate(300deg);
}
.sk-circle .sk-circle12 {
  transform: rotate(330deg);
}
.sk-circle .sk-circle2:before {
  -webkit-animation-delay: -1.1s;
          animation-delay: -1.1s;
}
.sk-circle .sk-circle3:before {
  -webkit-animation-delay: -1s;
          animation-delay: -1s;
}
.sk-circle .sk-circle4:before {
  -webkit-animation-delay: -0.9s;
          animation-delay: -0.9s;
}
.sk-circle .sk-circle5:before {
  -webkit-animation-delay: -0.8s;
          animation-delay: -0.8s;
}
.sk-circle .sk-circle6:before {
  -webkit-animation-delay: -0.7s;
          animation-delay: -0.7s;
}
.sk-circle .sk-circle7:before {
  -webkit-animation-delay: -0.6s;
          animation-delay: -0.6s;
}
.sk-circle .sk-circle8:before {
  -webkit-animation-delay: -0.5s;
          animation-delay: -0.5s;
}
.sk-circle .sk-circle9:before {
  -webkit-animation-delay: -0.4s;
          animation-delay: -0.4s;
}
.sk-circle .sk-circle10:before {
  -webkit-animation-delay: -0.3s;
          animation-delay: -0.3s;
}
.sk-circle .sk-circle11:before {
  -webkit-animation-delay: -0.2s;
          animation-delay: -0.2s;
}
.sk-circle .sk-circle12:before {
  -webkit-animation-delay: -0.1s;
          animation-delay: -0.1s;
}
@-webkit-keyframes sk-circleBounceDelay {
  0%, 80%, 100% {
    transform: scale(0);
  }
  40% {
    transform: scale(1);
  }
}
@keyframes sk-circleBounceDelay {
  0%, 80%, 100% {
    transform: scale(0);
  }
  40% {
    transform: scale(1);
  }
}
/*
 *  Usage:
 *
      <div class="sk-cube-grid">
        <div class="sk-cube sk-cube1"></div>
        <div class="sk-cube sk-cube2"></div>
        <div class="sk-cube sk-cube3"></div>
        <div class="sk-cube sk-cube4"></div>
        <div class="sk-cube sk-cube5"></div>
        <div class="sk-cube sk-cube6"></div>
        <div class="sk-cube sk-cube7"></div>
        <div class="sk-cube sk-cube8"></div>
        <div class="sk-cube sk-cube9"></div>
      </div>
 *
 */
.sk-cube-grid {
  width: 40px;
  height: 40px;
  margin: 40px auto;
  /*
   * Spinner positions
   * 1 2 3
   * 4 5 6
   * 7 8 9
   */
}
.sk-cube-grid .sk-cube {
  width: 33.33%;
  height: 33.33%;
  background-color: #333;
  float: left;
  -webkit-animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out;
          animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out;
}
.sk-cube-grid .sk-cube1 {
  -webkit-animation-delay: 0.2s;
          animation-delay: 0.2s;
}
.sk-cube-grid .sk-cube2 {
  -webkit-animation-delay: 0.3s;
          animation-delay: 0.3s;
}
.sk-cube-grid .sk-cube3 {
  -webkit-animation-delay: 0.4s;
          animation-delay: 0.4s;
}
.sk-cube-grid .sk-cube4 {
  -webkit-animation-delay: 0.1s;
          animation-delay: 0.1s;
}
.sk-cube-grid .sk-cube5 {
  -webkit-animation-delay: 0.2s;
          animation-delay: 0.2s;
}
.sk-cube-grid .sk-cube6 {
  -webkit-animation-delay: 0.3s;
          animation-delay: 0.3s;
}
.sk-cube-grid .sk-cube7 {
  -webkit-animation-delay: 0s;
          animation-delay: 0s;
}
.sk-cube-grid .sk-cube8 {
  -webkit-animation-delay: 0.1s;
          animation-delay: 0.1s;
}
.sk-cube-grid .sk-cube9 {
  -webkit-animation-delay: 0.2s;
          animation-delay: 0.2s;
}
@-webkit-keyframes sk-cubeGridScaleDelay {
  0%, 70%, 100% {
    transform: scale3D(1, 1, 1);
  }
  35% {
    transform: scale3D(0, 0, 1);
  }
}
@keyframes sk-cubeGridScaleDelay {
  0%, 70%, 100% {
    transform: scale3D(1, 1, 1);
  }
  35% {
    transform: scale3D(0, 0, 1);
  }
}
/*
 *  Usage:
 *
      <div class="sk-fading-circle">
        <div class="sk-circle1 sk-circle"></div>
        <div class="sk-circle2 sk-circle"></div>
        <div class="sk-circle3 sk-circle"></div>
        <div class="sk-circle4 sk-circle"></div>
        <div class="sk-circle5 sk-circle"></div>
        <div class="sk-circle6 sk-circle"></div>
        <div class="sk-circle7 sk-circle"></div>
        <div class="sk-circle8 sk-circle"></div>
        <div class="sk-circle9 sk-circle"></div>
        <div class="sk-circle10 sk-circle"></div>
        <div class="sk-circle11 sk-circle"></div>
        <div class="sk-circle12 sk-circle"></div>
      </div>
 *
 */
.sk-fading-circle {
  margin: 40px auto;
  width: 40px;
  height: 40px;
  position: relative;
}
.sk-fading-circle .sk-circle {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.sk-fading-circle .sk-circle:before {
  content: "";
  display: block;
  margin: 0 auto;
  width: 15%;
  height: 15%;
  background-color: #333;
  border-radius: 100%;
  -webkit-animation: sk-circleFadeDelay 1.2s infinite ease-in-out both;
          animation: sk-circleFadeDelay 1.2s infinite ease-in-out both;
}
.sk-fading-circle .sk-circle2 {
  transform: rotate(30deg);
}
.sk-fading-circle .sk-circle3 {
  transform: rotate(60deg);
}
.sk-fading-circle .sk-circle4 {
  transform: rotate(90deg);
}
.sk-fading-circle .sk-circle5 {
  transform: rotate(120deg);
}
.sk-fading-circle .sk-circle6 {
  transform: rotate(150deg);
}
.sk-fading-circle .sk-circle7 {
  transform: rotate(180deg);
}
.sk-fading-circle .sk-circle8 {
  transform: rotate(210deg);
}
.sk-fading-circle .sk-circle9 {
  transform: rotate(240deg);
}
.sk-fading-circle .sk-circle10 {
  transform: rotate(270deg);
}
.sk-fading-circle .sk-circle11 {
  transform: rotate(300deg);
}
.sk-fading-circle .sk-circle12 {
  transform: rotate(330deg);
}
.sk-fading-circle .sk-circle2:before {
  -webkit-animation-delay: -1.1s;
          animation-delay: -1.1s;
}
.sk-fading-circle .sk-circle3:before {
  -webkit-animation-delay: -1s;
          animation-delay: -1s;
}
.sk-fading-circle .sk-circle4:before {
  -webkit-animation-delay: -0.9s;
          animation-delay: -0.9s;
}
.sk-fading-circle .sk-circle5:before {
  -webkit-animation-delay: -0.8s;
          animation-delay: -0.8s;
}
.sk-fading-circle .sk-circle6:before {
  -webkit-animation-delay: -0.7s;
          animation-delay: -0.7s;
}
.sk-fading-circle .sk-circle7:before {
  -webkit-animation-delay: -0.6s;
          animation-delay: -0.6s;
}
.sk-fading-circle .sk-circle8:before {
  -webkit-animation-delay: -0.5s;
          animation-delay: -0.5s;
}
.sk-fading-circle .sk-circle9:before {
  -webkit-animation-delay: -0.4s;
          animation-delay: -0.4s;
}
.sk-fading-circle .sk-circle10:before {
  -webkit-animation-delay: -0.3s;
          animation-delay: -0.3s;
}
.sk-fading-circle .sk-circle11:before {
  -webkit-animation-delay: -0.2s;
          animation-delay: -0.2s;
}
.sk-fading-circle .sk-circle12:before {
  -webkit-animation-delay: -0.1s;
          animation-delay: -0.1s;
}
@-webkit-keyframes sk-circleFadeDelay {
  0%, 39%, 100% {
    opacity: 0;
  }
  40% {
    opacity: 1;
  }
}
@keyframes sk-circleFadeDelay {
  0%, 39%, 100% {
    opacity: 0;
  }
  40% {
    opacity: 1;
  }
}
/*
 *  Usage:
 *
      <div class="sk-folding-cube">
        <div class="sk-cube1 sk-cube"></div>
        <div class="sk-cube2 sk-cube"></div>
        <div class="sk-cube4 sk-cube"></div>
        <div class="sk-cube3 sk-cube"></div>
      </div>
 *
 */
.sk-folding-cube {
  margin: 40px auto;
  width: 40px;
  height: 40px;
  position: relative;
  transform: rotateZ(45deg);
}
.sk-folding-cube .sk-cube {
  float: left;
  width: 50%;
  height: 50%;
  position: relative;
  transform: scale(1.1);
}
.sk-folding-cube .sk-cube:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #333;
  -webkit-animation: sk-foldCubeAngle 2.4s infinite linear both;
          animation: sk-foldCubeAngle 2.4s infinite linear both;
  transform-origin: 100% 100%;
}
.sk-folding-cube .sk-cube2 {
  transform: scale(1.1) rotateZ(90deg);
}
.sk-folding-cube .sk-cube3 {
  transform: scale(1.1) rotateZ(180deg);
}
.sk-folding-cube .sk-cube4 {
  transform: scale(1.1) rotateZ(270deg);
}
.sk-folding-cube .sk-cube2:before {
  -webkit-animation-delay: 0.3s;
          animation-delay: 0.3s;
}
.sk-folding-cube .sk-cube3:before {
  -webkit-animation-delay: 0.6s;
          animation-delay: 0.6s;
}
.sk-folding-cube .sk-cube4:before {
  -webkit-animation-delay: 0.9s;
          animation-delay: 0.9s;
}
@-webkit-keyframes sk-foldCubeAngle {
  0%, 10% {
    transform: perspective(140px) rotateX(-180deg);
    opacity: 0;
  }
  25%, 75% {
    transform: perspective(140px) rotateX(0deg);
    opacity: 1;
  }
  90%, 100% {
    transform: perspective(140px) rotateY(180deg);
    opacity: 0;
  }
}
@keyframes sk-foldCubeAngle {
  0%, 10% {
    transform: perspective(140px) rotateX(-180deg);
    opacity: 0;
  }
  25%, 75% {
    transform: perspective(140px) rotateX(0deg);
    opacity: 1;
  }
  90%, 100% {
    transform: perspective(140px) rotateY(180deg);
    opacity: 0;
  }
}
/* Work Sans Start --------------------------------------  */
.work-sans-light, .default-light {
  font-family: work-sans, sans-serif;
  font-weight: 300;
  font-style: normal;
}
.work-sans-regular, .default-regular, .custom-edit-section-description, .no-results-body, .custom-dropdown:enabled:hover, .custom-dropdown, .custom-dropdown-menu-item, .modal-description, body, .custom-error-text, .custom-section-subtext, .custom-textfield, .nav-item-label {
  font-family: work-sans, sans-serif;
  font-weight: 400;
  font-style: normal;
}
.work-sans-medium, .default-medium, .custom-dropdown-label, .modal-sub-subtitle-text, .modal-sub-subtitle, .custom-list-item-subtext, .custom-search-results-header, .custom-upload-text, .custom-card-label-title, .custom-toggle, .custom-radio-label, .custom-switch-container, .text-link-helper, .custom-textfield:focus {
  font-family: work-sans, sans-serif;
  font-weight: 500;
  font-style: normal;
}
.work-sans-semi-bold, .default-semi-bold, a, .warning-message, .custom-edit-section-title, .modal-sub-subtitle-text span, .menu-added, .custom-label, .text-link, .custom-button, .nav-item-notification-pill {
  font-family: work-sans, sans-serif;
  font-weight: 600;
  font-style: normal;
}
.work-sans-bold, .default-bold, .custom-section-list-title, .no-results-title, .custom-dropdown-menu-header, .modal-subtitle, .modal-title, .custom-list-item-text, .custom-card-label-text, .main-title, h3, .custom-modal-section-header-text, .custom-section-subtitle, .custom-section-title, .custom-headline, li.nav-item.active .nav-item-label {
  font-family: work-sans, sans-serif;
  font-weight: 700;
  font-style: normal;
}
.work-sans-extra-bold, .default-extra-bold {
  font-family: work-sans, sans-serif;
  font-weight: 800;
  font-style: normal;
}
/* ---------------------------------------- Work Sans End */
/* Rajdhani Start --------------------------------------  */
.rajdhani-light {
  font-family: rajdhani, sans-serif;
  font-weight: 300;
  font-style: normal;
}
.rajdhani-regular {
  font-family: rajdhani, sans-serif;
  font-weight: 400;
  font-style: normal;
}
.rajdhani-medium {
  font-family: rajdhani, sans-serif;
  font-weight: 500;
  font-style: normal;
}
.rajdhani-semi-bold {
  font-family: rajdhani, sans-serif;
  font-weight: 600;
  font-style: normal;
}
.rajdhani-bold {
  font-family: rajdhani, sans-serif;
  font-weight: 700;
  font-style: normal;
}
.rajdhani-bold {
  font-family: rajdhani, sans-serif;
  font-weight: 800;
  font-style: normal;
}
/* ---------------------------------------- Rajdhani End */
/* based on angular-toastr css https://github.com/Foxandxss/angular-toastr/blob/cb508fe6801d6b288d3afc525bb40fee1b101650/dist/angular-toastr.css */
/* position */
.toast-center-center {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.toast-top-center {
  top: 0;
  right: 0;
  width: 100%;
}
.toast-bottom-center {
  bottom: 0;
  right: 0;
  width: 100%;
}
.toast-top-full-width {
  top: 0;
  right: 0;
  width: 100%;
}
.toast-bottom-full-width {
  bottom: 0;
  right: 0;
  width: 100%;
}
.toast-top-left {
  top: 12px;
  left: 12px;
}
.toast-top-right {
  top: 12px;
  right: 12px;
}
.toast-bottom-right {
  right: 12px;
  bottom: 12px;
}
.toast-bottom-left {
  bottom: 12px;
  left: 12px;
}
/* toast styles */
.toast-title {
  font-weight: bold;
}
.toast-message {
  word-wrap: break-word;
}
.toast-message a,
.toast-message label {
  color: #FFFFFF;
}
.toast-message a:hover {
  color: #CCCCCC;
  text-decoration: none;
}
.toast-close-button {
  position: relative;
  right: -0.3em;
  top: -0.3em;
  float: right;
  font-size: 20px;
  font-weight: bold;
  color: #FFFFFF;
  text-shadow: 0 1px 0 #ffffff;
  /* opacity: 0.8; */
}
.toast-close-button:hover,
.toast-close-button:focus {
  color: #000000;
  text-decoration: none;
  cursor: pointer;
  opacity: 0.4;
}
/*Additional properties for button version
 iOS requires the button element instead of an anchor tag.
 If you want the anchor version, it requires `href="#"`.*/
button.toast-close-button {
  padding: 0;
  cursor: pointer;
  background: transparent;
  border: 0;
}
.toast-container {
  pointer-events: none;
  position: fixed;
  z-index: 999999;
}
.toast-container * {
  box-sizing: border-box;
}
.toast-container .ngx-toastr {
  position: relative;
  overflow: hidden;
  margin: 0 0 6px;
  padding: 15px 15px 15px 50px;
  width: 300px;
  border-radius: 3px 3px 3px 3px;
  background-position: 15px center;
  background-repeat: no-repeat;
  background-size: 24px;
  box-shadow: 0 0 12px #999999;
  color: #FFFFFF;
}
.toast-container .ngx-toastr:hover {
  box-shadow: 0 0 12px #000000;
  opacity: 1;
  cursor: pointer;
}
/* https://github.com/FortAwesome/Font-Awesome-Pro/blob/master/advanced-options/raw-svg/regular/info-circle.svg */
.toast-info {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgb(255,255,255)' d='M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z'/%3E%3C/svg%3E");
}
/* https://github.com/FortAwesome/Font-Awesome-Pro/blob/master/advanced-options/raw-svg/regular/times-circle.svg */
.toast-error {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgb(255,255,255)' d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z'/%3E%3C/svg%3E");
}
/* https://github.com/FortAwesome/Font-Awesome-Pro/blob/master/advanced-options/raw-svg/regular/check.svg */
.toast-success {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgb(255,255,255)' d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3E%3C/svg%3E");
}
/* https://github.com/FortAwesome/Font-Awesome-Pro/blob/master/advanced-options/raw-svg/regular/exclamation-triangle.svg */
.toast-warning {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512' width='576' height='512'%3E%3Cpath fill='rgb(255,255,255)' d='M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z'/%3E%3C/svg%3E");
}
.toast-container.toast-top-center .ngx-toastr,
.toast-container.toast-bottom-center .ngx-toastr {
  width: 300px;
  margin-left: auto;
  margin-right: auto;
}
.toast-container.toast-top-full-width .ngx-toastr,
.toast-container.toast-bottom-full-width .ngx-toastr {
  width: 96%;
  margin-left: auto;
  margin-right: auto;
}
.ngx-toastr {
  background-color: #030303;
  pointer-events: auto;
}
.toast-success {
  background-color: #51A351;
}
.toast-error {
  background-color: #BD362F;
}
.toast-info {
  background-color: #2F96B4;
}
.toast-warning {
  background-color: #F89406;
}
.toast-progress {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 4px;
  background-color: #000000;
  opacity: 0.4;
}
/* Responsive Design */
@media all and (max-width: 240px) {
  .toast-container .ngx-toastr.div {
    padding: 8px 8px 8px 50px;
    width: 11em;
  }

  .toast-container .toast-close-button {
    right: -0.2em;
    top: -0.2em;
  }
}
@media all and (min-width: 241px) and (max-width: 480px) {
  .toast-container .ngx-toastr.div {
    padding: 8px 8px 8px 50px;
    width: 18em;
  }

  .toast-container .toast-close-button {
    right: -0.2em;
    top: -0.2em;
  }
}
@media all and (min-width: 481px) and (max-width: 768px) {
  .toast-container .ngx-toastr.div {
    padding: 15px 15px 15px 50px;
    width: 25em;
  }
}
.main {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
}
.zero-letter-spacing, .custom-card-label-text, .custom-card-label-title, .custom-button, body, h3, .custom-error-text, .custom-modal-section-header-text, .custom-section-subtext, .custom-section-subtitle, .custom-section-title, .custom-headline {
  letter-spacing: 0;
}
/* Work Sans Start --------------------------------------  */
.work-sans-light, .default-light {
  font-family: work-sans, sans-serif;
  font-weight: 300;
  font-style: normal;
}
.work-sans-regular, .default-regular, .custom-edit-section-description, .no-results-body, .custom-dropdown:enabled:hover, .custom-dropdown, .custom-dropdown-menu-item, .modal-description, body, .custom-error-text, .custom-section-subtext, .custom-textfield, .nav-item-label {
  font-family: work-sans, sans-serif;
  font-weight: 400;
  font-style: normal;
}
.work-sans-medium, .default-medium, .custom-dropdown-label, .modal-sub-subtitle-text, .modal-sub-subtitle, .custom-list-item-subtext, .custom-search-results-header, .custom-upload-text, .custom-card-label-title, .custom-toggle, .custom-radio-label, .custom-switch-container, .text-link-helper, .custom-textfield:focus {
  font-family: work-sans, sans-serif;
  font-weight: 500;
  font-style: normal;
}
.work-sans-semi-bold, .default-semi-bold, a, .warning-message, .custom-edit-section-title, .modal-sub-subtitle-text span, .menu-added, .custom-label, .text-link, .custom-button, .nav-item-notification-pill {
  font-family: work-sans, sans-serif;
  font-weight: 600;
  font-style: normal;
}
.work-sans-bold, .default-bold, .custom-section-list-title, .no-results-title, .custom-dropdown-menu-header, .modal-subtitle, .modal-title, .custom-list-item-text, .custom-card-label-text, .main-title, h3, .custom-modal-section-header-text, .custom-section-subtitle, .custom-section-title, .custom-headline, li.nav-item.active .nav-item-label {
  font-family: work-sans, sans-serif;
  font-weight: 700;
  font-style: normal;
}
.work-sans-extra-bold, .default-extra-bold {
  font-family: work-sans, sans-serif;
  font-weight: 800;
  font-style: normal;
}
/* ---------------------------------------- Work Sans End */
/* Rajdhani Start --------------------------------------  */
.rajdhani-light {
  font-family: rajdhani, sans-serif;
  font-weight: 300;
  font-style: normal;
}
.rajdhani-regular {
  font-family: rajdhani, sans-serif;
  font-weight: 400;
  font-style: normal;
}
.rajdhani-medium {
  font-family: rajdhani, sans-serif;
  font-weight: 500;
  font-style: normal;
}
.rajdhani-semi-bold {
  font-family: rajdhani, sans-serif;
  font-weight: 600;
  font-style: normal;
}
.rajdhani-bold {
  font-family: rajdhani, sans-serif;
  font-weight: 700;
  font-style: normal;
}
.rajdhani-bold {
  font-family: rajdhani, sans-serif;
  font-weight: 800;
  font-style: normal;
}
/* ---------------------------------------- Rajdhani End */
.main {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
}
.zero-letter-spacing, .custom-card-label-text, .custom-card-label-title, .custom-button, body, h3, .custom-error-text, .custom-modal-section-header-text, .custom-section-subtext, .custom-section-subtitle, .custom-section-title, .custom-headline {
  letter-spacing: 0;
}
.sidebar {
  width: 300px !important;
}
.app-body .sidebar-show ~ .main {
  margin-left: 300px !important;
}
.app-body .sidebar-hide ~ .main {
  margin-left: 0 !important;
}
.style-nav {
  background-color: #2c4058;
  padding: 2rem;
}
.nav-ul {
  padding: 0;
}
.nav-item {
  list-style: none;
  padding: 0.75rem 1rem;
  color: #C3C9D0;
  border-radius: 0.625rem;
  cursor: pointer;
  margin: 0.25rem 0.5rem;
}
.nav-item.active {
  background-color: #333333;
  color: #FCFCFC;
}
.nav-item.passive-selection {
  background-color: rgba(255, 255, 255, 0.1);
  color: #FCFCFC;
}
.nav-item.passive-selection .nav-item-label {
  height: 2.25rem;
  line-height: 2.25rem;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nav-item.passive-selection .nav-item-label.multi-line-label {
  line-height: 1.125rem;
}
.nav-item-label {
  font-size: 1rem;
  text-align: left;
  vertical-align: top;
  padding-left: 0.5rem;
  color: #333333;
}
li.nav-item.active .nav-item-label {
  color: #FCFCFC;
}
li.nav-item.active .nav-bar-icon {
  display: none;
}
li.nav-item.active .nav-bar-icon-filled {
  display: inline-block;
  opacity: 1;
}
.nav-bar-icon, .nav-bar-icon-filled {
  height: 100%;
  width: 1.5rem;
  display: inline-block;
  opacity: 0.7;
}
.nav-bar-icon-filled {
  display: none;
}
.nav-item:hover:not(.active) {
  background-color: #DADBDE;
}
.nav-item:hover .nav-bar-icon {
  opacity: 1;
}
.nav-item-notification-pill {
  background-color: #FA5555;
  color: #FCFCFC;
  display: inline-block;
  text-align: center;
  line-height: 0.625rem;
  font-size: 0.75rem;
  padding: 0.25rem 0.375rem;
  vertical-align: middle;
  border-radius: 1.125rem;
  min-width: 1.5rem;
  float: right;
  margin-top: 0.2rem;
}
/* Text_Field_Start ----------------------------------------------- */
.custom-textfield {
  color: #333333;
  height: 2.5rem;
  width: -webkit-fill-available;
  border: 0;
  font-size: 0.875rem;
  border-radius: 0;
  line-height: 1rem;
  text-align: left;
  border-bottom: 1px solid #EAEAEA;
  padding: 0.8125rem 0rem;
}
.custom-textfield:-moz-read-only {
  outline: none;
  border-radius: 0;
  border: 0;
  box-shadow: none;
  background-color: #F2F2F2;
}
.custom-textfield:read-only {
  outline: none;
  border-radius: 0;
  border: 0;
  box-shadow: none;
  background-color: #F2F2F2;
}
.custom-textfield:-moz-read-only:focus {
  outline: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background-color: #F2F2F2;
}
.custom-textfield:read-only:focus {
  outline: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background-color: #F2F2F2;
}
.custom-textfield:focus {
  color: #333333;
  outline: none;
  border-radius: 0;
  border-bottom: 1px solid #333333;
  -webkit-box-shadow: none;
}
/* ------------------------------------------------- Text_Field_End */
/* Text_Start ----------------------------------------------- */
.custom-headline {
  font-size: 2rem;
  color: #222222;
  text-align: left;
  opacity: 1;
}
.custom-section-title {
  font-size: 1.5rem;
  color: #222222;
  text-align: left;
  opacity: 1;
}
.custom-section-subtitle {
  color: #222222;
  font-size: 1rem;
  text-align: left;
  opacity: 1;
}
.custom-section-subtext {
  color: #737680;
  font-size: 1rem;
  line-height: 1.125rem;
  text-align: left;
  opacity: 1;
}
.custom-modal-section-header-text {
  color: #222222;
  font-size: 1rem;
  text-align: left;
  opacity: 1;
}
.custom-error-text {
  color: #FA5555;
  font-size: 0.625rem;
  text-align: left;
  opacity: 1;
}
h3 {
  color: #222222;
  text-align: left;
  font-size: 1.125rem;
  opacity: 1;
}
body {
  color: #222222;
  text-align: left;
  font-size: 0.875rem;
  opacity: 1;
}
.main-title {
  font-size: 2.3rem;
  margin-bottom: 2rem;
  line-height: normal;
}
.divider {
  background-color: #EAEAEA;
  height: 1px;
  width: 100%;
}
.divider.black {
  background-color: #333333;
}
/* ------------------------------------------------- Text_End */
/* Buttons_Start -------------------------------------------- */
.custom-button {
  padding: 0.75rem 1rem;
  margin: 0;
  border: none;
  border-radius: 0.625rem;
  line-height: 1.125rem;
  opacity: 1;
  height: 2.75rem;
  font-size: 0.875rem;
  text-align: center;
  vertical-align: middle;
  transition: background 0.8s;
  cursor: pointer;
}
.custom-button img {
  margin-right: 0.75rem;
  width: 1.5rem;
  height: 1.5rem;
}
.custom-button img {
  margin-right: 0.5rem;
  height: 100%;
}
.custom-button:focus {
  outline: none;
}
.custom-button .show-on-hover {
  display: none;
}
.custom-button:hover .hide-on-hover {
  display: none;
}
.custom-button:hover .show-on-hover {
  display: inline-block;
}
.custom-button:active {
  background-color: #C3C9D0;
  background-size: 100%;
  transition: background 0s;
}
.preferred-button {
  background-color: #FFCE00;
  color: #333333;
}
.icon-button-icon {
  margin-right: 0.625rem;
  height: 100%;
}
.rounded-icon-button {
  height: 2rem;
  width: 2rem;
  padding: 0.4rem;
  border-radius: 50%;
}
.rounded-icon-button .icon-button-icon {
  margin: 0;
}
.preferred-button:hover {
  background-color: #FFCE00;
}
.preferred-button.disabled {
  background-color: #EAEAEA;
}
.neutral-button {
  background-color: #333333;
  color: #FCFCFC;
}
.neutral-button:hover {
  background-color: #DADBDE;
}
.neutral-button.disabled {
  background-color: #F2F2F2;
  opacity: 0.5;
}
.grey-button {
  background-color: #EAEAEA;
  color: #333333;
}
.grey-button:hover {
  background-color: #CCCCCC;
}
.dark-neutral-button {
  background-color: #b9b9b9;
  color: #FCFCFC;
}
.dark-neutral-button:hover {
  background-color: #737680;
}
.dark-neutral-button.disabled {
  background-color: #F2F2F2;
}
.outlined-button {
  background-color: #FCFCFC;
  color: #222222;
}
.outlined-button:hover {
  background-color: #F2F2F2;
}
.outlined-button.disabled {
  background-color: #C3C9D0;
  border: none;
}
.destructive-button {
  background-color: #FCFCFC;
  color: #FA5555;
  border: 0.124rem solid #FA5555;
}
.destructive-button:hover {
  background-color: #FA5555;
  color: #FCFCFC;
}
.destructive-button.disabled {
  background-color: #C3C9D0;
  color: #222222;
  border: none;
}
.text-button {
  background-color: #FCFCFC;
  color: #888888;
}
.back-button {
  padding: 0.75rem 1rem 0.75rem 0;
  background-color: #FCFCFC;
  color: #222222;
  opacity: 0.5;
}
.back-button img {
  margin-right: 0.25rem;
}
.back-button:hover {
  opacity: 1;
  background-color: #FCFCFC;
}
.text-link-helper {
  font-size: 0.875rem;
  line-height: 1.125rem;
  text-align: left;
  color: #2c4058;
}
.inline-text-link {
  display: inline-block;
  margin: 0 0.5rem;
}
.text-link {
  color: #333333 !important;
}
.text-link.disabled {
  color: #C3C9D0;
}
.text-link.disabled:hover {
  text-decoration: none;
  cursor: none;
}
.text-link:hover {
  text-decoration: underline;
  cursor: pointer;
}
.text-link.destructive-link {
  color: #FA5555;
}
.text-link.destructive-link.disabled {
  color: #FA555533;
}
.bordered-button, .outlined-button {
  border: 0.124rem solid #DADBDE;
}
.full-width-button {
  width: 100%;
}
.in-button-loading {
  display: inline-block;
  position: relative;
  vertical-align: middle;
  width: 1.5rem;
  height: 100%;
}
.in-button-loading app-loading .loading-container {
  background-color: transparent !important;
}
.ripple {
  position: relative;
  overflow: hidden;
  transform: translate3d(0, 0, 0);
}
.ripple:after {
  content: "";
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  pointer-events: none;
  background-image: radial-gradient(circle, #000 10%, transparent 10.01%);
  background-repeat: no-repeat;
  background-position: 50%;
  transform: scale(10, 10);
  opacity: 0;
  transition: transform 0.2s, opacity 0.5s;
}
.ripple:active:after {
  transform: scale(0, 0);
  opacity: 0.2;
  transition: 0s;
}
/* ---------------------------------------------- Buttons_End */
/* Labels_Start -------------------------------------------- */
.custom-label {
  padding: 0.125rem 0.4rem;
  border: none;
  border-radius: 0.3rem;
  line-height: 1.125rem;
  opacity: 1;
  height: 1.25rem;
  font-size: 0.625rem;
  text-align: center;
  vertical-align: middle;
  letter-spacing: 0.6px;
  text-transform: uppercase;
}
.preferred-label {
  background-color: #2c4058;
  color: #FCFCFC;
}
.positive-label {
  background-color: #B1E7E2;
  color: #00504B;
}
.neutral-label {
  background-color: #DADBDE;
  color: #222222;
}
.negative-label {
  background-color: #F28872;
  color: #FCFCFC;
}
/* ---------------------------------------------- Labels_End */
/* Toggle_Switch_Start ------------------------------------- */
.custom-switch-container {
  font-size: 0.875rem;
  line-height: 1.5rem;
  text-align: left;
  color: #333333;
}
.custom-switch-container img {
  height: 1rem;
  width: 1rem;
  margin-left: 1.5rem;
  opacity: 0.5;
}
.custom-switch-container label {
  margin-left: 1rem;
}
/* The switch - the box around the slider */
.custom-switch {
  flex-shrink: 0;
  position: relative;
  display: inline-block;
  width: 2.875rem;
  height: 1.5rem;
  margin-left: 1.125rem;
}
/* Hide default HTML checkbox */
.custom-switch input {
  opacity: 0;
  width: 0;
  height: 0;
}
/* The slider */
.custom-slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #e8e8e8;
  transition: 0.4s;
  border-radius: 34px;
}
.custom-slider:hover {
  background-color: #DADBDE;
}
.custom-slider:before {
  position: absolute;
  content: "";
  height: 1.25rem;
  width: 1.25rem;
  top: 0.1rem;
  left: 0.15rem;
  background-color: #FCFCFC;
  transition: 0.4s;
  border-radius: 50%;
}
input:checked + .custom-slider {
  background-color: #2c4058;
}
input:focus + .custom-slider {
  outline: none;
}
input:checked + .custom-slider:before {
  transform: translateX(1.375rem);
}
/* --------------------------------------- Toggle_Switch_End */
/* Radio_Start --------------------------------------------- */
.custom-radio-form {
  vertical-align: middle;
}
.custom-radio-label {
  font-size: 0.875rem;
  line-height: 1rem;
  text-align: left;
  margin-left: 0.375rem;
  vertical-align: middle;
  margin-bottom: 0;
}
.custom-radio {
  height: 1.25rem;
  width: 1.25rem;
  vertical-align: middle;
}
.custom-radio-option {
  padding: 0.5rem 0;
  display: flex;
  align-items: center;
}
.custom-radio-option-inline {
  display: inline-block;
  padding: 0 1rem;
}
.custom-radio-option input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
}
.custom-custom-radio {
  display: inline-block;
  height: 1.25rem;
  width: 1.25rem;
  vertical-align: middle;
  background-color: #F2F2F2;
  border-radius: 50%;
  flex-shrink: 0;
}
.custom-radio-option.disabled input {
  cursor: not-allowed;
}
.custom-radio-option.disabled:hover .custom-custom-radio {
  background: #F2F2F2;
}
.custom-radio-option:hover .custom-custom-radio {
  background-color: #DADBDE;
}
.custom-radio-option input:checked ~ .custom-custom-radio {
  background-color: #2c4058;
}
.custom-custom-radio:after {
  content: "";
  position: absolute;
  display: none;
}
.custom-radio-option input:checked ~ .custom-custom-radio:after {
  display: block;
}
.custom-radio-option .custom-custom-radio:after {
  position: relative;
  top: 0.4375rem;
  left: 0.4375rem;
  width: 0.375rem;
  height: 0.375rem;
  border-radius: 50%;
  background: #FCFCFC;
}
/* ----------------------------------------------- Radio_End */
/* Toggle_Start -------------------------------------------- */
.custom-toggle {
  border-radius: 2px;
  background-color: #F2F2F2;
  height: 2rem;
  width: 2rem;
  text-align: center;
  font-size: 0.875rem;
  line-height: 1rem;
  padding: 0.5625rem 0;
}
.custom-toggle:hover {
  background-color: #DADBDE;
}
.custom-toggle.active {
  background-color: #2c4058;
  color: #FCFCFC;
}
/* ---------------------------------------------- Toggle_End */
/* Cards_Start --------------------------------------------- */
.custom-card {
  width: 14rem;
  height: 10rem;
  min-width: 14rem;
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
  margin-bottom: 1rem !important;
  opacity: 1;
  background-size: cover;
  background-position: top;
  cursor: pointer;
}
.card.custom-card:hover .custom-card-label {
  background-color: #DADBDE;
  opacity: 1;
  height: 5rem;
  transition: 0.25s ease-in-out;
}
.custom-card-label {
  height: 4.5rem;
  background: #F2F2F2 0 0 no-repeat padding-box;
  opacity: 0.9;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-left: 1rem;
  padding-right: 1rem;
  margin-top: auto;
}
.custom-card-radius-top, .custom-card {
  border-top-left-radius: 0.625rem;
  border-top-right-radius: 0.625rem;
}
.custom-card-radius-bottom, .custom-card, .custom-card-label {
  border-bottom-left-radius: 0.625rem;
  border-bottom-right-radius: 0.625rem;
}
.custom-card-label-title {
  text-align: left;
  font-size: 0.875rem;
  color: #737680;
  opacity: 1;
}
.custom-card-label-text {
  font-size: 1.3rem;
  text-align: left;
  color: #222222;
  opacity: 1;
}
.card-deck {
  margin: 1.5rem 0 0 0;
}
.custom-card-deck {
  margin: 1.5rem 0 0 0;
  overflow-y: hidden;
  max-height: 20rem;
  overflow-x: auto;
  white-space: nowrap;
  display: flex;
  flex-wrap: nowrap;
  padding-bottom: 0.25rem;
}
.custom-card-deck .card {
  display: inline-flex !important;
}
.custom-card-with-bottom-margin {
  margin-bottom: 1rem !important;
}
/* ----------------------------------------------- Cards_End */
/* Media_Upload_Start -------------------------------------- */
.custom-upload-area {
  border: 1px dashed #DADBDE;
  border-radius: 0.625rem;
  background-color: #F8F8F8;
  width: 100%;
  display: table;
}
.custom-upload-form {
  text-align: center;
  display: table-cell;
  vertical-align: middle;
}
.custom-upload-icon {
  height: 1.5rem;
  margin: 1.5rem auto auto;
  display: block;
}
.custom-upload-text {
  display: block;
  padding-top: 1rem;
  font-size: 0.875rem;
  line-height: 1rem;
}
.custom-upload-label {
  color: #388EFC;
}
.custom-upload-label:hover {
  text-decoration: underline;
  cursor: pointer;
}
.secondary-upload-text {
  padding-top: 0.5rem;
  color: #737680;
  margin-bottom: 1.5rem;
}
.custom-file-input {
  display: none;
}
.custom-upload-list-container {
  width: 100%;
  padding: 1.25rem 0;
}
.custom-upload-list {
  list-style: none;
  display: inline-flex;
  padding: 0;
  margin-left: -0.75rem;
}
.modal-custom-upload-list {
  list-style: none;
  display: list-item;
  padding: 0;
  overflow-y: auto;
  max-height: 15rem;
  margin-left: -0.75rem;
}
.custom-upload-button {
  border: 0;
  background-color: transparent;
  cursor: pointer;
}
.custom-upload-button:focus {
  outline: none;
}
.custom-upload-button-icon {
  height: 1.25rem;
  background-color: transparent;
  filter: invert(49%) sepia(8%) saturate(428%) hue-rotate(189deg) brightness(92%) contrast(86%);
}
.custom-upload-preview.error .custom-remove-upload-button {
  display: none;
}
.custom-upload-preview.error .custom-refresh-upload-button {
  display: inline-block;
}
.custom-upload-preview.success .custom-remove-upload-button {
  display: inline-block;
}
.custom-upload-preview.success .custom-refresh-upload-button {
  display: none;
}
/* ---------------------------------------- Media_Upload_End */
/* Lists_Start --------------------------------------------- */
.custom-search-results {
  width: 100%;
  border-radius: 0.625rem;
  background-color: #FDFDFD;
  border: 1px solid #707070;
  margin: 0.625rem;
  max-height: 33vh;
}
.custom-results-container {
  overflow: scroll;
  max-height: 26vh;
  display: block;
}
.custom-search-results-header {
  padding: 1.5625rem 0 1rem 0;
  display: block;
  font-size: 1rem;
  line-height: 1.125rem;
  text-align: left;
  border-bottom: 1px solid #F2F2F2;
  width: calc(100% - 4rem);
  margin: 0 2rem;
}
.custom-list {
  list-style: none;
  padding: 0 1rem 0.5rem 1rem;
  margin: 0;
}
.custom-list-item-image {
  height: 3rem;
  width: 3rem;
  margin: 0 0 0 0.75rem;
  border-radius: 0.25rem;
}
.custom-list-item-image-icon {
  height: 3rem;
  width: 3rem;
  margin: 0 0 0 0.75rem;
  border-radius: 0.25rem;
  background-color: #F2F2F2;
  padding: 0.75rem;
}
.custom-list-item-text-container {
  padding: 0 1rem;
  display: inline-block;
  width: calc(100% - 4rem);
  vertical-align: middle;
}
.custom-list-item-text {
  font-size: 0.875rem;
  line-height: 1.125rem;
  display: flex;
}
.custom-list-item-subtext {
  font-size: 0.625rem;
  line-height: 0.75rem;
  display: flex;
}
.custom-list-item {
  padding: 0.75rem 0;
}
.custom-list-item:hover {
  background-color: #F8F8F8;
  cursor: pointer;
  border-radius: 0.25rem;
}
.custom-list-item.inactive:hover {
  background-color: #FDFDFD;
}
.custom-list-item.active {
  background-color: #DEECFF;
  cursor: text !important;
}
.menu-list-container {
  max-height: 30rem;
  padding-top: 1rem;
  width: 100%;
  display: block;
  background: #FCFCFC;
}
.menu-list-item {
  padding: 0.75rem 1rem;
  color: #333333;
  display: flex;
  flex-direction: row;
  align-items: center;
  box-sizing: border-box;
  cursor: pointer;
  background: #FCFCFC;
  z-index: 99;
  box-shadow: 0 0 2px 2px rgba(218, 220, 222, 0.7);
  border-radius: 0.625rem;
  margin: 1rem 0;
}
.menu-list-item.disabled {
  cursor: not-allowed;
  background-color: #e8e8e8;
}
/* ----------------------------------------------- Lists_End */
/* Image_Start --------------------------------------------- */
.custom-profile-image {
  display: inline-block;
  border-radius: 50%;
  height: 5.625rem;
  width: 5.625rem;
  background-color: #F2F2F2;
  cursor: pointer;
}
.custom-profile-image-padding {
  padding: 1.75rem;
}
/* ----------------------------------------------- Image_End */
/* Popper_Start --------------------------------------------- */
.custom-popper-content {
  border: none !important;
  border-radius: 0.625rem !important;
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2) !important;
}
/* ----------------------------------------------- Popper_End */
/* Modal_Start --------------------------------------------- */
.sticky-header-container {
  background-color: #FFFFFF;
  position: sticky;
  top: 0;
  right: 0;
  left: 0;
  padding: 1.5rem 1.5rem 0 1.5rem;
}
.sticky-body-container {
  overflow-y: scroll;
  padding: 0 1.5rem;
}
.sticky-footer-container {
  background: linear-gradient(rgba(255, 255, 255, 0.75), rgba(255, 255, 255, 0.9), white, #FCFCFC, #FCFCFC);
  position: sticky;
  bottom: 0;
  right: 0;
  left: 0;
  padding: 0 0 1.5rem 0;
  z-index: 10;
}
.sticky-footer-container.modal-footer-flex-end {
  padding-top: 3rem;
}
.modal-form-negative-padding {
  margin: 0 -1.5rem;
}
.modal-body {
  max-height: calc(100vh - 3rem);
  overflow-y: auto;
  padding: 1.5rem;
}
.modal-body.sticky {
  padding: 0;
}
.modal-header {
  display: block;
  padding: 0 0 1.25rem 0;
  border-bottom: 1px solid #DADBDE;
}
.modal-title {
  display: block;
  font-size: 1.5rem;
  flex: 1;
  color: #333333;
}
.modal-description {
  display: block;
  font-size: 0.875rem;
  flex: 0 1 auto;
  overflow-y: scroll;
  color: #333333;
}
.modal-subtitle {
  display: block;
  font-size: 1.125rem;
  line-height: 2rem;
  color: #333333;
}
.modal-sub-subtitle {
  font-size: 0.875rem;
  text-align: left;
  color: #333333;
}
.modal-sub-subtitle-text {
  display: inline-block;
  width: 50%;
  color: #737680;
}
.modal-sub-subtitle-text span {
  display: inline-block;
  color: #333333;
}
.inline-subtitle {
  display: inline-block;
  min-width: 50%;
}
.modal-subtitle-action {
  float: right;
  top: -0.5rem;
  position: relative;
  text-align: right;
}
.footer-button {
  display: flex;
  justify-content: flex-end;
  margin: 1rem 0 1rem 0;
  float: right;
}
.modal-footer-flex-end {
  display: flex;
  justify-content: flex-end;
}
.modal-divider {
  width: 100%;
  border-bottom: 1px solid #DADBDE;
  margin: 0.5rem 0;
}
.insight-info-modal {
  height: 32rem;
  overflow-y: auto;
  padding: 1.5rem;
  background-color: #FCFCFC;
}
.create-guide-modal {
  min-height: 80vh;
  max-height: 90vh;
  overflow-y: auto;
  padding: 1.5rem;
  background-color: #FCFCFC;
}
.rearrange-assets-modal {
  min-height: 20rem;
  max-height: 52rem;
  overflow-y: auto;
  padding: 1.5rem;
  background-color: #FCFCFC;
}
.reorder-action-container {
  max-height: 35rem;
}
.add-place-modal {
  min-height: 75vh;
  max-height: 95vh;
  overflow-y: auto;
  padding: 1.5rem;
  background-color: #FCFCFC;
}
.edit-guide-feature-modal {
  min-height: 45vh;
  max-height: 95vh;
  overflow-y: auto;
  padding: 1.5rem;
  background-color: #FCFCFC;
}
/* ----------------------------------------------- Modal_End */
/* Drop_Down_Menu_Start ------------------------------------ */
.custom-dropdown-menu {
  border-radius: 0.625rem;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  overflow: visible;
  border-color: #DADBDE;
}
.custom-dropdown-menu-header {
  padding-top: 1rem;
  border-bottom: 1px solid #222222;
  padding-bottom: 3px;
  font-size: 16px;
  margin-left: 1rem;
  margin-right: 1rem;
}
.custom-dropdown-menu-item {
  border: none;
  width: 100%;
  min-width: 200px;
  max-width: 320px;
  background-color: #FCFCFC;
  text-align: left;
  border-radius: 0.625rem;
  padding: 0.625rem 1rem;
}
.custom-item-sizing, .custom-dropdown-menu-header, .custom-dropdown-menu-item {
  min-width: 200px;
  max-width: 400px;
}
.custom-dropdown-menu-item:hover {
  background-color: #F8F8F8;
}
.custom-dropdown-menu-item:focus {
  outline: none;
  background-color: #DADBDE;
}
.custom-dropdown-menu-remove {
  color: #FA5555;
}
/* -------------------------------------- Drop_Down_Menu_End */
/* Drop_Down_Start ----------------------------------------- */
.custom-dropdown {
  padding: 0 0.75rem 0 0.875rem;
  width: 100%;
  height: 2.5rem;
  border-radius: 0.625rem;
  background-color: #F2F2F2;
  color: #222222;
  font-size: 0.875rem;
  line-height: 1.125rem;
  border: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url(/src/assets/icons/light/drop-down.svg);
  background-position-x: calc(100% - 0.7rem);
  background-position-y: center;
  background-repeat: no-repeat;
  background-size: 1.5rem;
}
.custom-dropdown:focus {
  outline: none;
}
.custom-dropdown:enabled:hover {
  background-color: #FCFCFC;
  border: 1px solid #222222;
  color: #222222;
}
.custom-dropdown:disabled, .custom-textfield:disabled, .custom-switch-input:disabled, .custom-slider.disabled {
  opacity: 0.5;
}
.custom-dropdown:disabled:hover, .custom-textfield:disabled:hover, .custom-switch-input:disabled:hover, .custom-slider.disabled:hover {
  cursor: not-allowed;
}
.custom-dropdown-label {
  font-size: 0.8rem;
  line-height: 1rem;
  color: #222222;
}
/* ------------------------------------------- Drop_Down_End */
/* No_Results_Start ----------------------------------------- */
.no-results-container {
  margin: 6rem auto auto auto;
  width: 40%;
  height: 18rem;
  display: block;
}
.no-results-title {
  font-size: 1.5rem;
  line-height: 3rem;
  color: #333333;
}
.no-results-body {
  font-size: 1rem;
  line-height: 1.125rem;
  color: #737680;
}
.no-results-button {
  margin: 1.5rem 0 0 0;
}
/* ------------------------------------------- No_Results_End */
/* Edit_Section_Start ----------------------------------------- */
.custom-edit-section-title {
  font-size: 1rem;
  color: #333333;
}
.custom-edit-section-description {
  font-size: 0.875rem;
  color: #737680;
}
.custom-edit-section-button-container {
  display: block;
}
.custom-edit-section-button-container .custom-button {
  margin: 0 0.5rem 0 0;
}
.custom-section-container {
  position: relative;
  margin-top: 0.5rem;
}
.custom-section-header {
  display: block;
  width: 100%;
}
.custom-section-body {
  display: block;
  width: 100%;
}
.custom-section-header-button-container {
  display: inline-block;
  float: right;
}
.custom-section-list-title {
  display: inline-block;
  font-size: 1rem;
  line-height: 1.5rem;
  color: #333333;
}
/* ------------------------------------------- Edit_Section_End */
/* Tooltip_Start ----------------------------------------- */
.inline-tooltip {
  height: 0.75rem;
  width: 0.75rem;
}
.inline-tooltip:focus {
  outline: none;
}
.datatable-action-button img {
  height: 100%;
  width: 100%;
  opacity: 0.5;
}
.inline-tooltip img {
  height: 100%;
  width: 100%;
  opacity: 0.5;
}
.inline-tooltip {
  outline: none;
  display: inline-block;
  padding: 0;
  background-color: transparent;
  border: none;
  cursor: pointer;
  margin: 0 0.25rem;
}
.inline-tooltip:hover img {
  opacity: 1;
}
/* ------------------------------------------- Tooltip_End */
/* Warning_Start ----------------------------------------- */
.warning-message {
  margin: 0.5rem 1.5rem;
  padding: 0.75rem 1rem;
  background-color: #FFD74BCC;
  border-radius: 0.5rem;
  text-align: left;
  color: #333333;
}
.warning-message .tooltip-container {
  float: right;
}
/* ------------------------------------------- Warning_End */
a {
  text-decoration: underline;
  color: #333333;
}
/* Colors for the ripple elements.*/
/* stylelint-disable-next-line material/theme-mixin-api */
/* stylelint-disable-next-line material/theme-mixin-api */
/* stylelint-disable material/no-prefixes */
/* stylelint-enable */
.mat-badge-content {
  font-weight: 600;
  font-size: 12px;
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-badge-small .mat-badge-content {
  font-size: 9px;
}
.mat-badge-large .mat-badge-content {
  font-size: 24px;
}
.mat-h1, .mat-headline, .mat-typography h1 {
  font: 400 24px/32px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
  margin: 0 0 16px;
}
.mat-h2, .mat-title, .mat-typography h2 {
  font: 500 20px/32px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
  margin: 0 0 16px;
}
.mat-h3, .mat-subheading-2, .mat-typography h3 {
  font: 400 16px/28px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
  margin: 0 0 16px;
}
.mat-h4, .mat-subheading-1, .mat-typography h4 {
  font: 400 15px/24px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
  margin: 0 0 16px;
}
.mat-h5, .mat-typography h5 {
  font: 400 calc(14px * 0.83)/20px Roboto, "Helvetica Neue", sans-serif;
  margin: 0 0 12px;
}
.mat-h6, .mat-typography h6 {
  font: 400 calc(14px * 0.67)/20px Roboto, "Helvetica Neue", sans-serif;
  margin: 0 0 12px;
}
.mat-body-strong, .mat-body-2 {
  font: 500 14px/24px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-body, .mat-body-1, .mat-typography {
  font: 400 14px/20px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-body p, .mat-body-1 p, .mat-typography p {
  margin: 0 0 12px;
}
.mat-small, .mat-caption {
  font: 400 12px/20px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-display-4, .mat-typography .mat-display-4 {
  font: 300 112px/112px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: -0.05em;
  margin: 0 0 56px;
}
.mat-display-3, .mat-typography .mat-display-3 {
  font: 400 56px/56px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: -0.02em;
  margin: 0 0 64px;
}
.mat-display-2, .mat-typography .mat-display-2 {
  font: 400 45px/48px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: -0.005em;
  margin: 0 0 64px;
}
.mat-display-1, .mat-typography .mat-display-1 {
  font: 400 34px/40px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
  margin: 0 0 64px;
}
.mat-bottom-sheet-container {
  font: 400 14px/20px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-button, .mat-raised-button, .mat-icon-button, .mat-stroked-button,
.mat-flat-button, .mat-fab, .mat-mini-fab {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 14px;
  font-weight: 500;
}
.mat-button-toggle {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-card {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-card-title {
  font-size: 24px;
  font-weight: 500;
}
.mat-card-header .mat-card-title {
  font-size: 20px;
}
.mat-card-subtitle,
.mat-card-content {
  font-size: 14px;
}
.mat-checkbox {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-checkbox-layout .mat-checkbox-label {
  line-height: 24px;
}
.mat-chip {
  font-size: 14px;
  font-weight: 500;
}
.mat-chip .mat-chip-trailing-icon.mat-icon,
.mat-chip .mat-chip-remove.mat-icon {
  font-size: 18px;
}
.mat-table {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-header-cell {
  font-size: 12px;
  font-weight: 500;
}
.mat-cell, .mat-footer-cell {
  font-size: 14px;
}
.mat-calendar {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-calendar-body {
  font-size: 13px;
}
.mat-calendar-body-label,
.mat-calendar-period-button {
  font-size: 14px;
  font-weight: 500;
}
.mat-calendar-table-header th {
  font-size: 11px;
  font-weight: 400;
}
.mat-dialog-title {
  font: 500 20px/32px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-expansion-panel-header {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 15px;
  font-weight: 400;
}
.mat-expansion-panel-content {
  font: 400 14px/20px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-form-field {
  font-size: inherit;
  font-weight: 400;
  line-height: 1.125;
  font-family: Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-form-field-wrapper {
  padding-bottom: 1.34375em;
}
.mat-form-field-prefix .mat-icon,
.mat-form-field-suffix .mat-icon {
  font-size: 150%;
  line-height: 1.125;
}
.mat-form-field-prefix .mat-icon-button,
.mat-form-field-suffix .mat-icon-button {
  height: 1.5em;
  width: 1.5em;
}
.mat-form-field-prefix .mat-icon-button .mat-icon,
.mat-form-field-suffix .mat-icon-button .mat-icon {
  height: 1.125em;
  line-height: 1.125;
}
.mat-form-field-infix {
  padding: 0.5em 0;
  border-top: 0.84375em solid transparent;
}
.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,
.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-1.34375em) scale(0.75);
  width: 133.3333333333%;
}
.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-1.34374em) scale(0.75);
  width: 133.3333433333%;
}
.mat-form-field-label-wrapper {
  top: -0.84375em;
  padding-top: 0.84375em;
}
.mat-form-field-label {
  top: 1.34375em;
}
.mat-form-field-underline {
  bottom: 1.34375em;
}
.mat-form-field-subscript-wrapper {
  font-size: 75%;
  margin-top: 0.6666666667em;
  top: calc(100% - 1.7916666667em);
}
.mat-form-field-appearance-legacy .mat-form-field-wrapper {
  padding-bottom: 1.25em;
}
.mat-form-field-appearance-legacy .mat-form-field-infix {
  padding: 0.4375em 0;
}
.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,
.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);
  -ms-transform: translateY(-1.28125em) scale(0.75);
  width: 133.3333333333%;
}
.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);
  -ms-transform: translateY(-1.28124em) scale(0.75);
  width: 133.3333433333%;
}
.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);
  -ms-transform: translateY(-1.28123em) scale(0.75);
  width: 133.3333533333%;
}
.mat-form-field-appearance-legacy .mat-form-field-label {
  top: 1.28125em;
}
.mat-form-field-appearance-legacy .mat-form-field-underline {
  bottom: 1.25em;
}
.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper {
  margin-top: 0.5416666667em;
  top: calc(100% - 1.6666666667em);
}
@media print {
  .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,
.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {
    transform: translateY(-1.28122em) scale(0.75);
  }
  .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {
    transform: translateY(-1.28121em) scale(0.75);
  }
  .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {
    transform: translateY(-1.2812em) scale(0.75);
  }
}
.mat-form-field-appearance-fill .mat-form-field-infix {
  padding: 0.25em 0 0.75em 0;
}
.mat-form-field-appearance-fill .mat-form-field-label {
  top: 1.09375em;
  margin-top: -0.5em;
}
.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,
.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-0.59375em) scale(0.75);
  width: 133.3333333333%;
}
.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-0.59374em) scale(0.75);
  width: 133.3333433333%;
}
.mat-form-field-appearance-outline .mat-form-field-infix {
  padding: 1em 0 1em 0;
}
.mat-form-field-appearance-outline .mat-form-field-label {
  top: 1.84375em;
  margin-top: -0.25em;
}
.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,
.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-1.59375em) scale(0.75);
  width: 133.3333333333%;
}
.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {
  transform: translateY(-1.59374em) scale(0.75);
  width: 133.3333433333%;
}
.mat-grid-tile-header,
.mat-grid-tile-footer {
  font-size: 14px;
}
.mat-grid-tile-header .mat-line,
.mat-grid-tile-footer .mat-line {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  box-sizing: border-box;
}
.mat-grid-tile-header .mat-line:nth-child(n+2),
.mat-grid-tile-footer .mat-line:nth-child(n+2) {
  font-size: 12px;
}
input.mat-input-element {
  margin-top: -0.0625em;
}
.mat-menu-item {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 14px;
  font-weight: 400;
}
.mat-paginator,
.mat-paginator-page-size .mat-select-trigger {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 12px;
}
.mat-radio-button {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-select {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-select-trigger {
  height: 1.125em;
}
.mat-slide-toggle-content {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-slider-thumb-label-text {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 12px;
  font-weight: 500;
}
.mat-stepper-vertical, .mat-stepper-horizontal {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-step-label {
  font-size: 14px;
  font-weight: 400;
}
.mat-step-sub-label-error {
  font-weight: normal;
}
.mat-step-label-error {
  font-size: 14px;
}
.mat-step-label-selected {
  font-size: 14px;
  font-weight: 500;
}
.mat-tab-group {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-tab-label, .mat-tab-link {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 14px;
  font-weight: 500;
}
.mat-toolbar,
.mat-toolbar h1,
.mat-toolbar h2,
.mat-toolbar h3,
.mat-toolbar h4,
.mat-toolbar h5,
.mat-toolbar h6 {
  font: 500 20px/32px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
  margin: 0;
}
.mat-tooltip {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 10px;
  padding-top: 6px;
  padding-bottom: 6px;
}
.mat-tooltip-handset {
  font-size: 14px;
  padding-top: 8px;
  padding-bottom: 8px;
}
.mat-list-item {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-list-option {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-list-base .mat-list-item {
  font-size: 16px;
}
.mat-list-base .mat-list-item .mat-line {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  box-sizing: border-box;
}
.mat-list-base .mat-list-item .mat-line:nth-child(n+2) {
  font-size: 14px;
}
.mat-list-base .mat-list-option {
  font-size: 16px;
}
.mat-list-base .mat-list-option .mat-line {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  box-sizing: border-box;
}
.mat-list-base .mat-list-option .mat-line:nth-child(n+2) {
  font-size: 14px;
}
.mat-list-base .mat-subheader {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 14px;
  font-weight: 500;
}
.mat-list-base[dense] .mat-list-item {
  font-size: 12px;
}
.mat-list-base[dense] .mat-list-item .mat-line {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  box-sizing: border-box;
}
.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2) {
  font-size: 12px;
}
.mat-list-base[dense] .mat-list-option {
  font-size: 12px;
}
.mat-list-base[dense] .mat-list-option .mat-line {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  box-sizing: border-box;
}
.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2) {
  font-size: 12px;
}
.mat-list-base[dense] .mat-subheader {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 12px;
  font-weight: 500;
}
.mat-option {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 16px;
}
.mat-optgroup-label {
  font: 500 14px/24px Roboto, "Helvetica Neue", sans-serif;
  letter-spacing: normal;
}
.mat-simple-snackbar {
  font-family: Roboto, "Helvetica Neue", sans-serif;
  font-size: 14px;
}
.mat-simple-snackbar-action {
  line-height: 1;
  font-family: inherit;
  font-size: inherit;
  font-weight: 500;
}
.mat-tree {
  font-family: Roboto, "Helvetica Neue", sans-serif;
}
.mat-tree-node,
.mat-nested-tree-node {
  font-weight: 400;
  font-size: 14px;
}
.mat-ripple {
  overflow: hidden;
  position: relative;
}
.mat-ripple:not(:empty) {
  transform: translateZ(0);
}
.mat-ripple.mat-ripple-unbounded {
  overflow: visible;
}
.mat-ripple-element {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  transition: opacity, transform 0ms cubic-bezier(0, 0, 0.2, 1);
  transform: scale(0);
}
.cdk-high-contrast-active .mat-ripple-element {
  display: none;
}
.cdk-visually-hidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  outline: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
}
.cdk-overlay-container, .cdk-global-overlay-wrapper {
  pointer-events: none;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}
.cdk-overlay-container {
  position: fixed;
  z-index: 1000;
}
.cdk-overlay-container:empty {
  display: none;
}
.cdk-global-overlay-wrapper {
  display: flex;
  position: absolute;
  z-index: 1000;
}
.cdk-overlay-pane {
  position: absolute;
  pointer-events: auto;
  box-sizing: border-box;
  z-index: 1000;
  display: flex;
  max-width: 100%;
  max-height: 100%;
}
.cdk-overlay-backdrop {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  pointer-events: auto;
  -webkit-tap-highlight-color: transparent;
  transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);
  opacity: 0;
}
.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {
  opacity: 1;
}
@media screen and (-ms-high-contrast: active) {
  .cdk-overlay-backdrop.cdk-overlay-backdrop-showing {
    opacity: 0.6;
  }
}
.cdk-overlay-dark-backdrop {
  background: rgba(0, 0, 0, 0.32);
}
.cdk-overlay-transparent-backdrop, .cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {
  opacity: 0;
}
.cdk-overlay-connected-position-bounding-box {
  position: absolute;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  min-width: 1px;
  min-height: 1px;
}
.cdk-global-scrollblock {
  position: fixed;
  width: 100%;
  overflow-y: scroll;
}
@-webkit-keyframes cdk-text-field-autofill-start {
  /*!*/
}
@keyframes cdk-text-field-autofill-start {
  /*!*/
}
@-webkit-keyframes cdk-text-field-autofill-end {
  /*!*/
}
@keyframes cdk-text-field-autofill-end {
  /*!*/
}
.cdk-text-field-autofill-monitored:-webkit-autofill {
  -webkit-animation: cdk-text-field-autofill-start 0s 1ms;
          animation: cdk-text-field-autofill-start 0s 1ms;
}
.cdk-text-field-autofill-monitored:not(:-webkit-autofill) {
  -webkit-animation: cdk-text-field-autofill-end 0s 1ms;
          animation: cdk-text-field-autofill-end 0s 1ms;
}
textarea.cdk-textarea-autosize {
  resize: none;
}
textarea.cdk-textarea-autosize-measuring {
  padding: 2px 0 !important;
  box-sizing: content-box !important;
  height: auto !important;
  overflow: hidden !important;
}
textarea.cdk-textarea-autosize-measuring-firefox {
  padding: 2px 0 !important;
  box-sizing: content-box !important;
  height: 0 !important;
}
.mat-focus-indicator {
  position: relative;
}
.mat-mdc-focus-indicator {
  position: relative;
}
.mat-ripple-element {
  background-color: rgba(0, 0, 0, 0.1);
}
.mat-option {
  color: rgba(0, 0, 0, 0.87);
}
.mat-option:hover:not(.mat-option-disabled), .mat-option:focus:not(.mat-option-disabled) {
  background: rgba(0, 0, 0, 0.04);
}
.mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {
  background: rgba(0, 0, 0, 0.04);
}
.mat-option.mat-active {
  background: rgba(0, 0, 0, 0.04);
  color: rgba(0, 0, 0, 0.87);
}
.mat-option.mat-option-disabled {
  color: rgba(0, 0, 0, 0.38);
}
.mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {
  color: #2c4058;
}
.mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {
  color: #ff4081;
}
.mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {
  color: #f44336;
}
.mat-optgroup-label {
  color: rgba(0, 0, 0, 0.54);
}
.mat-optgroup-disabled .mat-optgroup-label {
  color: rgba(0, 0, 0, 0.38);
}
.mat-pseudo-checkbox {
  color: rgba(0, 0, 0, 0.54);
}
.mat-pseudo-checkbox::after {
  color: #fafafa;
}
.mat-pseudo-checkbox-disabled {
  color: #b0b0b0;
}
.mat-primary .mat-pseudo-checkbox-checked,
.mat-primary .mat-pseudo-checkbox-indeterminate {
  background: #2c4058;
}
.mat-pseudo-checkbox-checked,
.mat-pseudo-checkbox-indeterminate,
.mat-accent .mat-pseudo-checkbox-checked,
.mat-accent .mat-pseudo-checkbox-indeterminate {
  background: #ff4081;
}
.mat-warn .mat-pseudo-checkbox-checked,
.mat-warn .mat-pseudo-checkbox-indeterminate {
  background: #f44336;
}
.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,
.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled {
  background: #b0b0b0;
}
.mat-app-background {
  background-color: #fafafa;
  color: rgba(0, 0, 0, 0.87);
}
.mat-elevation-z0 {
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z1 {
  box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z2 {
  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z3 {
  box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z4 {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z5 {
  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z6 {
  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z7 {
  box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z8 {
  box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z9 {
  box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z10 {
  box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z11 {
  box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z12 {
  box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z13 {
  box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z14 {
  box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z15 {
  box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z16 {
  box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z17 {
  box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z18 {
  box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z19 {
  box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z20 {
  box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z21 {
  box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z22 {
  box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z23 {
  box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);
}
.mat-elevation-z24 {
  box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);
}
.mat-theme-loaded-marker {
  display: none;
}
.mat-autocomplete-panel {
  background: white;
  color: rgba(0, 0, 0, 0.87);
}
.mat-autocomplete-panel:not([class*=mat-elevation-z]) {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
}
.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover) {
  background: white;
}
.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled) {
  color: rgba(0, 0, 0, 0.87);
}
.mat-badge-content {
  color: #fcfcfc;
  background: #2c4058;
}
.cdk-high-contrast-active .mat-badge-content {
  outline: solid 1px;
  border-radius: 0;
}
.mat-badge-accent .mat-badge-content {
  background: #ff4081;
  color: white;
}
.mat-badge-warn .mat-badge-content {
  color: white;
  background: #f44336;
}
.mat-badge {
  position: relative;
}
.mat-badge-hidden .mat-badge-content {
  display: none;
}
.mat-badge-disabled .mat-badge-content {
  background: #b9b9b9;
  color: rgba(0, 0, 0, 0.38);
}
.mat-badge-content {
  position: absolute;
  text-align: center;
  display: inline-block;
  border-radius: 50%;
  transition: transform 200ms ease-in-out;
  transform: scale(0.6);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  pointer-events: none;
}
.ng-animate-disabled .mat-badge-content,
.mat-badge-content._mat-animation-noopable {
  transition: none;
}
.mat-badge-content.mat-badge-active {
  transform: none;
}
.mat-badge-small .mat-badge-content {
  width: 16px;
  height: 16px;
  line-height: 16px;
}
.mat-badge-small.mat-badge-above .mat-badge-content {
  top: -8px;
}
.mat-badge-small.mat-badge-below .mat-badge-content {
  bottom: -8px;
}
.mat-badge-small.mat-badge-before .mat-badge-content {
  left: -16px;
}
[dir=rtl] .mat-badge-small.mat-badge-before .mat-badge-content {
  left: auto;
  right: -16px;
}
.mat-badge-small.mat-badge-after .mat-badge-content {
  right: -16px;
}
[dir=rtl] .mat-badge-small.mat-badge-after .mat-badge-content {
  right: auto;
  left: -16px;
}
.mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {
  left: -8px;
}
[dir=rtl] .mat-badge-small.mat-badge-overlap.mat-badge-before .mat-badge-content {
  left: auto;
  right: -8px;
}
.mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: -8px;
}
[dir=rtl] .mat-badge-small.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: auto;
  left: -8px;
}
.mat-badge-medium .mat-badge-content {
  width: 22px;
  height: 22px;
  line-height: 22px;
}
.mat-badge-medium.mat-badge-above .mat-badge-content {
  top: -11px;
}
.mat-badge-medium.mat-badge-below .mat-badge-content {
  bottom: -11px;
}
.mat-badge-medium.mat-badge-before .mat-badge-content {
  left: -22px;
}
[dir=rtl] .mat-badge-medium.mat-badge-before .mat-badge-content {
  left: auto;
  right: -22px;
}
.mat-badge-medium.mat-badge-after .mat-badge-content {
  right: -22px;
}
[dir=rtl] .mat-badge-medium.mat-badge-after .mat-badge-content {
  right: auto;
  left: -22px;
}
.mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {
  left: -11px;
}
[dir=rtl] .mat-badge-medium.mat-badge-overlap.mat-badge-before .mat-badge-content {
  left: auto;
  right: -11px;
}
.mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: -11px;
}
[dir=rtl] .mat-badge-medium.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: auto;
  left: -11px;
}
.mat-badge-large .mat-badge-content {
  width: 28px;
  height: 28px;
  line-height: 28px;
}
.mat-badge-large.mat-badge-above .mat-badge-content {
  top: -14px;
}
.mat-badge-large.mat-badge-below .mat-badge-content {
  bottom: -14px;
}
.mat-badge-large.mat-badge-before .mat-badge-content {
  left: -28px;
}
[dir=rtl] .mat-badge-large.mat-badge-before .mat-badge-content {
  left: auto;
  right: -28px;
}
.mat-badge-large.mat-badge-after .mat-badge-content {
  right: -28px;
}
[dir=rtl] .mat-badge-large.mat-badge-after .mat-badge-content {
  right: auto;
  left: -28px;
}
.mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {
  left: -14px;
}
[dir=rtl] .mat-badge-large.mat-badge-overlap.mat-badge-before .mat-badge-content {
  left: auto;
  right: -14px;
}
.mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: -14px;
}
[dir=rtl] .mat-badge-large.mat-badge-overlap.mat-badge-after .mat-badge-content {
  right: auto;
  left: -14px;
}
.mat-bottom-sheet-container {
  box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);
  background: white;
  color: rgba(0, 0, 0, 0.87);
}
.mat-button, .mat-icon-button, .mat-stroked-button {
  color: inherit;
  background: transparent;
}
.mat-button.mat-primary, .mat-icon-button.mat-primary, .mat-stroked-button.mat-primary {
  color: #2c4058;
}
.mat-button.mat-accent, .mat-icon-button.mat-accent, .mat-stroked-button.mat-accent {
  color: #ff4081;
}
.mat-button.mat-warn, .mat-icon-button.mat-warn, .mat-stroked-button.mat-warn {
  color: #f44336;
}
.mat-button.mat-primary.mat-button-disabled, .mat-button.mat-accent.mat-button-disabled, .mat-button.mat-warn.mat-button-disabled, .mat-button.mat-button-disabled.mat-button-disabled, .mat-icon-button.mat-primary.mat-button-disabled, .mat-icon-button.mat-accent.mat-button-disabled, .mat-icon-button.mat-warn.mat-button-disabled, .mat-icon-button.mat-button-disabled.mat-button-disabled, .mat-stroked-button.mat-primary.mat-button-disabled, .mat-stroked-button.mat-accent.mat-button-disabled, .mat-stroked-button.mat-warn.mat-button-disabled, .mat-stroked-button.mat-button-disabled.mat-button-disabled {
  color: rgba(0, 0, 0, 0.26);
}
.mat-button.mat-primary .mat-button-focus-overlay, .mat-icon-button.mat-primary .mat-button-focus-overlay, .mat-stroked-button.mat-primary .mat-button-focus-overlay {
  background-color: #2c4058;
}
.mat-button.mat-accent .mat-button-focus-overlay, .mat-icon-button.mat-accent .mat-button-focus-overlay, .mat-stroked-button.mat-accent .mat-button-focus-overlay {
  background-color: #ff4081;
}
.mat-button.mat-warn .mat-button-focus-overlay, .mat-icon-button.mat-warn .mat-button-focus-overlay, .mat-stroked-button.mat-warn .mat-button-focus-overlay {
  background-color: #f44336;
}
.mat-button.mat-button-disabled .mat-button-focus-overlay, .mat-icon-button.mat-button-disabled .mat-button-focus-overlay, .mat-stroked-button.mat-button-disabled .mat-button-focus-overlay {
  background-color: transparent;
}
.mat-button .mat-ripple-element, .mat-icon-button .mat-ripple-element, .mat-stroked-button .mat-ripple-element {
  opacity: 0.1;
  background-color: currentColor;
}
.mat-button-focus-overlay {
  background: black;
}
.mat-stroked-button:not(.mat-button-disabled) {
  border-color: rgba(0, 0, 0, 0.12);
}
.mat-flat-button, .mat-raised-button, .mat-fab, .mat-mini-fab {
  color: rgba(0, 0, 0, 0.87);
  background-color: white;
}
.mat-flat-button.mat-primary, .mat-raised-button.mat-primary, .mat-fab.mat-primary, .mat-mini-fab.mat-primary {
  color: #fcfcfc;
}
.mat-flat-button.mat-accent, .mat-raised-button.mat-accent, .mat-fab.mat-accent, .mat-mini-fab.mat-accent {
  color: white;
}
.mat-flat-button.mat-warn, .mat-raised-button.mat-warn, .mat-fab.mat-warn, .mat-mini-fab.mat-warn {
  color: white;
}
.mat-flat-button.mat-primary.mat-button-disabled, .mat-flat-button.mat-accent.mat-button-disabled, .mat-flat-button.mat-warn.mat-button-disabled, .mat-flat-button.mat-button-disabled.mat-button-disabled, .mat-raised-button.mat-primary.mat-button-disabled, .mat-raised-button.mat-accent.mat-button-disabled, .mat-raised-button.mat-warn.mat-button-disabled, .mat-raised-button.mat-button-disabled.mat-button-disabled, .mat-fab.mat-primary.mat-button-disabled, .mat-fab.mat-accent.mat-button-disabled, .mat-fab.mat-warn.mat-button-disabled, .mat-fab.mat-button-disabled.mat-button-disabled, .mat-mini-fab.mat-primary.mat-button-disabled, .mat-mini-fab.mat-accent.mat-button-disabled, .mat-mini-fab.mat-warn.mat-button-disabled, .mat-mini-fab.mat-button-disabled.mat-button-disabled {
  color: rgba(0, 0, 0, 0.26);
}
.mat-flat-button.mat-primary, .mat-raised-button.mat-primary, .mat-fab.mat-primary, .mat-mini-fab.mat-primary {
  background-color: #2c4058;
}
.mat-flat-button.mat-accent, .mat-raised-button.mat-accent, .mat-fab.mat-accent, .mat-mini-fab.mat-accent {
  background-color: #ff4081;
}
.mat-flat-button.mat-warn, .mat-raised-button.mat-warn, .mat-fab.mat-warn, .mat-mini-fab.mat-warn {
  background-color: #f44336;
}
.mat-flat-button.mat-primary.mat-button-disabled, .mat-flat-button.mat-accent.mat-button-disabled, .mat-flat-button.mat-warn.mat-button-disabled, .mat-flat-button.mat-button-disabled.mat-button-disabled, .mat-raised-button.mat-primary.mat-button-disabled, .mat-raised-button.mat-accent.mat-button-disabled, .mat-raised-button.mat-warn.mat-button-disabled, .mat-raised-button.mat-button-disabled.mat-button-disabled, .mat-fab.mat-primary.mat-button-disabled, .mat-fab.mat-accent.mat-button-disabled, .mat-fab.mat-warn.mat-button-disabled, .mat-fab.mat-button-disabled.mat-button-disabled, .mat-mini-fab.mat-primary.mat-button-disabled, .mat-mini-fab.mat-accent.mat-button-disabled, .mat-mini-fab.mat-warn.mat-button-disabled, .mat-mini-fab.mat-button-disabled.mat-button-disabled {
  background-color: rgba(0, 0, 0, 0.12);
}
.mat-flat-button.mat-primary .mat-ripple-element, .mat-raised-button.mat-primary .mat-ripple-element, .mat-fab.mat-primary .mat-ripple-element, .mat-mini-fab.mat-primary .mat-ripple-element {
  background-color: rgba(252, 252, 252, 0.1);
}
.mat-flat-button.mat-accent .mat-ripple-element, .mat-raised-button.mat-accent .mat-ripple-element, .mat-fab.mat-accent .mat-ripple-element, .mat-mini-fab.mat-accent .mat-ripple-element {
  background-color: rgba(255, 255, 255, 0.1);
}
.mat-flat-button.mat-warn .mat-ripple-element, .mat-raised-button.mat-warn .mat-ripple-element, .mat-fab.mat-warn .mat-ripple-element, .mat-mini-fab.mat-warn .mat-ripple-element {
  background-color: rgba(255, 255, 255, 0.1);
}
.mat-stroked-button:not([class*=mat-elevation-z]), .mat-flat-button:not([class*=mat-elevation-z]) {
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
}
.mat-raised-button:not([class*=mat-elevation-z]) {
  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
}
.mat-raised-button:not(.mat-button-disabled):active:not([class*=mat-elevation-z]) {
  box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);
}
.mat-raised-button.mat-button-disabled:not([class*=mat-elevation-z]) {
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
}
.mat-fab:not([class*=mat-elevation-z]), .mat-mini-fab:not([class*=mat-elevation-z]) {
  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);
}
.mat-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]), .mat-mini-fab:not(.mat-button-disabled):active:not([class*=mat-elevation-z]) {
  box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);
}
.mat-fab.mat-button-disabled:not([class*=mat-elevation-z]), .mat-mini-fab.mat-button-disabled:not([class*=mat-elevation-z]) {
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
}
.mat-button-toggle-standalone,
.mat-button-toggle-group {
  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
}
.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,
.mat-button-toggle-group-appearance-standard {
  box-shadow: none;
}
.mat-button-toggle {
  color: rgba(0, 0, 0, 0.38);
}
.mat-button-toggle .mat-button-toggle-focus-overlay {
  background-color: rgba(0, 0, 0, 0.12);
}
.mat-button-toggle-appearance-standard {
  color: rgba(0, 0, 0, 0.87);
  background: white;
}
.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {
  background-color: black;
}
.mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {
  border-left: solid 1px rgba(0, 0, 0, 0.12);
}
[dir=rtl] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {
  border-left: none;
  border-right: solid 1px rgba(0, 0, 0, 0.12);
}
.mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical .mat-button-toggle + .mat-button-toggle {
  border-left: none;
  border-right: none;
  border-top: solid 1px rgba(0, 0, 0, 0.12);
}
.mat-button-toggle-checked {
  background-color: #e0e0e0;
  color: rgba(0, 0, 0, 0.54);
}
.mat-button-toggle-checked.mat-button-toggle-appearance-standard {
  color: rgba(0, 0, 0, 0.87);
}
.mat-button-toggle-disabled {
  color: rgba(0, 0, 0, 0.26);
  background-color: #eeeeee;
}
.mat-button-toggle-disabled.mat-button-toggle-appearance-standard {
  background: white;
}
.mat-button-toggle-disabled.mat-button-toggle-checked {
  background-color: #bdbdbd;
}
.mat-button-toggle-standalone.mat-button-toggle-appearance-standard,
.mat-button-toggle-group-appearance-standard {
  border: solid 1px rgba(0, 0, 0, 0.12);
}
.mat-button-toggle-appearance-standard .mat-button-toggle-label-content {
  line-height: 48px;
}
.mat-card {
  background: white;
  color: rgba(0, 0, 0, 0.87);
}
.mat-card:not([class*=mat-elevation-z]) {
  box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);
}
.mat-card.mat-card-flat:not([class*=mat-elevation-z]) {
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
}
.mat-card-subtitle {
  color: rgba(0, 0, 0, 0.54);
}
.mat-checkbox-frame {
  border-color: rgba(0, 0, 0, 0.54);
}
.mat-checkbox-checkmark {
  fill: #fafafa;
}
.mat-checkbox-checkmark-path {
  stroke: #fafafa !important;
}
.mat-checkbox-mixedmark {
  background-color: #fafafa;
}
.mat-checkbox-indeterminate.mat-primary .mat-checkbox-background, .mat-checkbox-checked.mat-primary .mat-checkbox-background {
  background-color: #2c4058;
}
.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background, .mat-checkbox-checked.mat-accent .mat-checkbox-background {
  background-color: #ff4081;
}
.mat-checkbox-indeterminate.mat-warn .mat-checkbox-background, .mat-checkbox-checked.mat-warn .mat-checkbox-background {
  background-color: #f44336;
}
.mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background, .mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background {
  background-color: #b0b0b0;
}
.mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame {
  border-color: #b0b0b0;
}
.mat-checkbox-disabled .mat-checkbox-label {
  color: rgba(0, 0, 0, 0.54);
}
.mat-checkbox .mat-ripple-element {
  background-color: black;
}
.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element,
.mat-checkbox:active:not(.mat-checkbox-disabled).mat-primary .mat-ripple-element {
  background: #2c4058;
}
.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element,
.mat-checkbox:active:not(.mat-checkbox-disabled).mat-accent .mat-ripple-element {
  background: #ff4081;
}
.mat-checkbox-checked:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element,
.mat-checkbox:active:not(.mat-checkbox-disabled).mat-warn .mat-ripple-element {
  background: #f44336;
}
.mat-chip.mat-standard-chip {
  background-color: #e0e0e0;
  color: rgba(0, 0, 0, 0.87);
}
.mat-chip.mat-standard-chip .mat-chip-remove {
  color: rgba(0, 0, 0, 0.87);
  opacity: 0.4;
}
.mat-chip.mat-standard-chip:not(.mat-chip-disabled):active {
  box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);
}
.mat-chip.mat-standard-chip:not(.mat-chip-disabled) .mat-chip-remove:hover {
  opacity: 0.54;
}
.mat-chip.mat-standard-chip.mat-chip-disabled {
  opacity: 0.4;
}
.mat-chip.mat-standard-chip::after {
  background: black;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary {
  background-color: #2c4058;
  color: #fcfcfc;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-chip-remove {
  color: #fcfcfc;
  opacity: 0.4;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-primary .mat-ripple-element {
  background-color: rgba(252, 252, 252, 0.1);
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn {
  background-color: #f44336;
  color: white;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-chip-remove {
  color: white;
  opacity: 0.4;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-warn .mat-ripple-element {
  background-color: rgba(255, 255, 255, 0.1);
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent {
  background-color: #ff4081;
  color: white;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-chip-remove {
  color: white;
  opacity: 0.4;
}
.mat-chip.mat-standard-chip.mat-chip-selected.mat-accent .mat-ripple-element {
  background-color: rgba(255, 255, 255, 0.1);
}
.mat-table {
  background: white;
}
.mat-table thead, .mat-table tbody, .mat-table tfoot,
mat-header-row, mat-row, mat-footer-row,
[mat-header-row], [mat-row], [mat-footer-row],
.mat-table-sticky {
  background: inherit;
}
mat-row, mat-header-row, mat-footer-row,
th.mat-header-cell, td.mat-cell, td.mat-footer-cell {
  border-bottom-color: rgba(0, 0, 0, 0.12);
}
.mat-header-cell {
  color: rgba(0, 0, 0, 0.54);
}
.mat-cell, .mat-footer-cell {
  color: rgba(0, 0, 0, 0.87);
}
.mat-calendar-arrow {
  border-top-color: rgba(0, 0, 0, 0.54);
}
.mat-datepicker-toggle,
.mat-datepicker-content .mat-calendar-next-button,
.mat-datepicker-content .mat-calendar-previous-button {
  color: rgba(0, 0, 0, 0.54);
}
.mat-calendar-table-header {
  color: rgba(0, 0, 0, 0.38);
}
.mat-calendar-table-header-divider::after {
  background: rgba(0, 0, 0, 0.12);
}
.mat-calendar-body-label {
  color: rgba(0, 0, 0, 0.54);
}
.mat-calendar-body-cell-content,
.mat-date-range-input-separator {
  color: rgba(0, 0, 0, 0.87);
  border-color: transparent;
}
.mat-calendar-body-disabled > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {
  color: rgba(0, 0, 0, 0.38);
}
.mat-form-field-disabled .mat-date-range-input-separator {
  color: rgba(0, 0, 0, 0.38);
}
.mat-calendar-body-in-preview {
  color: rgba(0, 0, 0, 0.24);
}
.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {
  border-color: rgba(0, 0, 0, 0.38);
}
.mat-calendar-body-disabled > .mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {
  border-color: rgba(0, 0, 0, 0.18);
}
.mat-calendar-body-in-range::before {
  background: rgba(44, 64, 88, 0.2);
}
.mat-calendar-body-comparison-identical,
.mat-calendar-body-in-comparison-range::before {
  background: rgba(249, 171, 0, 0.2);
}
.mat-calendar-body-comparison-bridge-start::before,
[dir=rtl] .mat-calendar-body-comparison-bridge-end::before {
  background: linear-gradient(to right, rgba(44, 64, 88, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);
}
.mat-calendar-body-comparison-bridge-end::before,
[dir=rtl] .mat-calendar-body-comparison-bridge-start::before {
  background: linear-gradient(to left, rgba(44, 64, 88, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);
}
.mat-calendar-body-in-range > .mat-calendar-body-comparison-identical,
.mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after {
  background: #a8dab5;
}
.mat-calendar-body-comparison-identical.mat-calendar-body-selected,
.mat-calendar-body-in-comparison-range > .mat-calendar-body-selected {
  background: #46a35e;
}
.mat-calendar-body-selected {
  background-color: #2c4058;
  color: #fcfcfc;
}
.mat-calendar-body-disabled > .mat-calendar-body-selected {
  background-color: rgba(44, 64, 88, 0.4);
}
.mat-calendar-body-today.mat-calendar-body-selected {
  box-shadow: inset 0 0 0 1px #fcfcfc;
}
.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),
.cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),
.cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {
  background-color: rgba(44, 64, 88, 0.3);
}
.mat-datepicker-content {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
  background-color: white;
  color: rgba(0, 0, 0, 0.87);
}
.mat-datepicker-content.mat-accent .mat-calendar-body-in-range::before {
  background: rgba(255, 64, 129, 0.2);
}
.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,
.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range::before {
  background: rgba(249, 171, 0, 0.2);
}
.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start::before,
.mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end::before {
  background: linear-gradient(to right, rgba(255, 64, 129, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);
}
.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end::before,
.mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start::before {
  background: linear-gradient(to left, rgba(255, 64, 129, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);
}
.mat-datepicker-content.mat-accent .mat-calendar-body-in-range > .mat-calendar-body-comparison-identical,
.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after {
  background: #a8dab5;
}
.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,
.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range > .mat-calendar-body-selected {
  background: #46a35e;
}
.mat-datepicker-content.mat-accent .mat-calendar-body-selected {
  background-color: #ff4081;
  color: white;
}
.mat-datepicker-content.mat-accent .mat-calendar-body-disabled > .mat-calendar-body-selected {
  background-color: rgba(255, 64, 129, 0.4);
}
.mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected {
  box-shadow: inset 0 0 0 1px white;
}
.mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),
.mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),
.mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {
  background-color: rgba(255, 64, 129, 0.3);
}
.mat-datepicker-content.mat-warn .mat-calendar-body-in-range::before {
  background: rgba(244, 67, 54, 0.2);
}
.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,
.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range::before {
  background: rgba(249, 171, 0, 0.2);
}
.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start::before,
.mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end::before {
  background: linear-gradient(to right, rgba(244, 67, 54, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);
}
.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end::before,
.mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start::before {
  background: linear-gradient(to left, rgba(244, 67, 54, 0.2) 50%, rgba(249, 171, 0, 0.2) 50%);
}
.mat-datepicker-content.mat-warn .mat-calendar-body-in-range > .mat-calendar-body-comparison-identical,
.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after {
  background: #a8dab5;
}
.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,
.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range > .mat-calendar-body-selected {
  background: #46a35e;
}
.mat-datepicker-content.mat-warn .mat-calendar-body-selected {
  background-color: #f44336;
  color: white;
}
.mat-datepicker-content.mat-warn .mat-calendar-body-disabled > .mat-calendar-body-selected {
  background-color: rgba(244, 67, 54, 0.4);
}
.mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected {
  box-shadow: inset 0 0 0 1px white;
}
.mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),
.mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),
.mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active > .mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {
  background-color: rgba(244, 67, 54, 0.3);
}
.mat-datepicker-content-touch {
  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
}
.mat-datepicker-toggle-active {
  color: #2c4058;
}
.mat-datepicker-toggle-active.mat-accent {
  color: #ff4081;
}
.mat-datepicker-toggle-active.mat-warn {
  color: #f44336;
}
.mat-date-range-input-inner[disabled] {
  color: rgba(0, 0, 0, 0.38);
}
.mat-dialog-container {
  box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);
  background: white;
  color: rgba(0, 0, 0, 0.87);
}
.mat-divider {
  border-top-color: rgba(0, 0, 0, 0.12);
}
.mat-divider-vertical {
  border-right-color: rgba(0, 0, 0, 0.12);
}
.mat-expansion-panel {
  background: white;
  color: rgba(0, 0, 0, 0.87);
}
.mat-expansion-panel:not([class*=mat-elevation-z]) {
  box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
}
.mat-action-row {
  border-top-color: rgba(0, 0, 0, 0.12);
}
.mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]), .mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]), .mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]) {
  background: rgba(0, 0, 0, 0.04);
}
@media (hover: none) {
  .mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover {
    background: white;
  }
}
.mat-expansion-panel-header-title {
  color: rgba(0, 0, 0, 0.87);
}
.mat-expansion-panel-header-description,
.mat-expansion-indicator::after {
  color: rgba(0, 0, 0, 0.54);
}
.mat-expansion-panel-header[aria-disabled=true] {
  color: rgba(0, 0, 0, 0.26);
}
.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,
.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description {
  color: inherit;
}
.mat-expansion-panel-header {
  height: 48px;
}
.mat-expansion-panel-header.mat-expanded {
  height: 64px;
}
.mat-form-field-label {
  color: rgba(0, 0, 0, 0.6);
}
.mat-hint {
  color: rgba(0, 0, 0, 0.6);
}
.mat-form-field.mat-focused .mat-form-field-label {
  color: #2c4058;
}
.mat-form-field.mat-focused .mat-form-field-label.mat-accent {
  color: #ff4081;
}
.mat-form-field.mat-focused .mat-form-field-label.mat-warn {
  color: #f44336;
}
.mat-focused .mat-form-field-required-marker {
  color: #ff4081;
}
.mat-form-field-ripple {
  background-color: rgba(0, 0, 0, 0.87);
}
.mat-form-field.mat-focused .mat-form-field-ripple {
  background-color: #2c4058;
}
.mat-form-field.mat-focused .mat-form-field-ripple.mat-accent {
  background-color: #ff4081;
}
.mat-form-field.mat-focused .mat-form-field-ripple.mat-warn {
  background-color: #f44336;
}
.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix::after {
  color: #2c4058;
}
.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix::after {
  color: #ff4081;
}
.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix::after {
  color: #f44336;
}
.mat-form-field.mat-form-field-invalid .mat-form-field-label {
  color: #f44336;
}
.mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,
.mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker {
  color: #f44336;
}
.mat-form-field.mat-form-field-invalid .mat-form-field-ripple,
.mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent {
  background-color: #f44336;
}
.mat-error {
  color: #f44336;
}
.mat-form-field-appearance-legacy .mat-form-field-label {
  color: rgba(0, 0, 0, 0.54);
}
.mat-form-field-appearance-legacy .mat-hint {
  color: rgba(0, 0, 0, 0.54);
}
.mat-form-field-appearance-legacy .mat-form-field-underline {
  background-color: rgba(0, 0, 0, 0.42);
}
.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline {
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);
  background-size: 4px 100%;
  background-repeat: repeat-x;
}
.mat-form-field-appearance-standard .mat-form-field-underline {
  background-color: rgba(0, 0, 0, 0.42);
}
.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline {
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.42) 33%, transparent 0%);
  background-size: 4px 100%;
  background-repeat: repeat-x;
}
.mat-form-field-appearance-fill .mat-form-field-flex {
  background-color: rgba(0, 0, 0, 0.04);
}
.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex {
  background-color: rgba(0, 0, 0, 0.02);
}
.mat-form-field-appearance-fill .mat-form-field-underline::before {
  background-color: rgba(0, 0, 0, 0.42);
}
.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label {
  color: rgba(0, 0, 0, 0.38);
}
.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline::before {
  background-color: transparent;
}
.mat-form-field-appearance-outline .mat-form-field-outline {
  color: rgba(0, 0, 0, 0.12);
}
.mat-form-field-appearance-outline .mat-form-field-outline-thick {
  color: rgba(0, 0, 0, 0.87);
}
.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick {
  color: #2c4058;
}
.mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick {
  color: #ff4081;
}
.mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick {
  color: #f44336;
}
.mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick {
  color: #f44336;
}
.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label {
  color: rgba(0, 0, 0, 0.38);
}
.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {
  color: rgba(0, 0, 0, 0.06);
}
.mat-icon.mat-primary {
  color: #2c4058;
}
.mat-icon.mat-accent {
  color: #ff4081;
}
.mat-icon.mat-warn {
  color: #f44336;
}
.mat-form-field-type-mat-native-select .mat-form-field-infix::after {
  color: rgba(0, 0, 0, 0.54);
}
.mat-input-element:disabled,
.mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {
  color: rgba(0, 0, 0, 0.38);
}
.mat-input-element {
  caret-color: #2c4058;
}
.mat-input-element::-moz-placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-input-element:-ms-input-placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-input-element::placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-input-element::-moz-placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-input-element::-webkit-input-placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-input-element:-ms-input-placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-form-field.mat-accent .mat-input-element {
  caret-color: #ff4081;
}
.mat-form-field.mat-warn .mat-input-element,
.mat-form-field-invalid .mat-input-element {
  caret-color: #f44336;
}
.mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {
  color: #f44336;
}
.mat-list-base .mat-list-item {
  color: rgba(0, 0, 0, 0.87);
}
.mat-list-base .mat-list-option {
  color: rgba(0, 0, 0, 0.87);
}
.mat-list-base .mat-subheader {
  color: rgba(0, 0, 0, 0.54);
}
.mat-list-item-disabled {
  background-color: #eeeeee;
}
.mat-list-option:hover, .mat-list-option:focus,
.mat-nav-list .mat-list-item:hover,
.mat-nav-list .mat-list-item:focus,
.mat-action-list .mat-list-item:hover,
.mat-action-list .mat-list-item:focus {
  background: rgba(0, 0, 0, 0.04);
}
.mat-list-single-selected-option, .mat-list-single-selected-option:hover, .mat-list-single-selected-option:focus {
  background: rgba(0, 0, 0, 0.12);
}
.mat-menu-panel {
  background: white;
}
.mat-menu-panel:not([class*=mat-elevation-z]) {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
}
.mat-menu-item {
  background: transparent;
  color: rgba(0, 0, 0, 0.87);
}
.mat-menu-item[disabled], .mat-menu-item[disabled]::after,
.mat-menu-item[disabled] .mat-icon-no-color {
  color: rgba(0, 0, 0, 0.38);
}
.mat-menu-item .mat-icon-no-color,
.mat-menu-item-submenu-trigger::after {
  color: rgba(0, 0, 0, 0.54);
}
.mat-menu-item:hover:not([disabled]),
.mat-menu-item.cdk-program-focused:not([disabled]),
.mat-menu-item.cdk-keyboard-focused:not([disabled]),
.mat-menu-item-highlighted:not([disabled]) {
  background: rgba(0, 0, 0, 0.04);
}
.mat-paginator {
  background: white;
}
.mat-paginator,
.mat-paginator-page-size .mat-select-trigger {
  color: rgba(0, 0, 0, 0.54);
}
.mat-paginator-decrement,
.mat-paginator-increment {
  border-top: 2px solid rgba(0, 0, 0, 0.54);
  border-right: 2px solid rgba(0, 0, 0, 0.54);
}
.mat-paginator-first,
.mat-paginator-last {
  border-top: 2px solid rgba(0, 0, 0, 0.54);
}
.mat-icon-button[disabled] .mat-paginator-decrement,
.mat-icon-button[disabled] .mat-paginator-increment,
.mat-icon-button[disabled] .mat-paginator-first,
.mat-icon-button[disabled] .mat-paginator-last {
  border-color: rgba(0, 0, 0, 0.38);
}
.mat-paginator-container {
  min-height: 56px;
}
.mat-progress-bar-background {
  fill: #bbdefb;
}
.mat-progress-bar-buffer {
  background-color: #bbdefb;
}
.mat-progress-bar-fill::after {
  background-color: #2c4058;
}
.mat-progress-bar.mat-accent .mat-progress-bar-background {
  fill: #ff80ab;
}
.mat-progress-bar.mat-accent .mat-progress-bar-buffer {
  background-color: #ff80ab;
}
.mat-progress-bar.mat-accent .mat-progress-bar-fill::after {
  background-color: #ff4081;
}
.mat-progress-bar.mat-warn .mat-progress-bar-background {
  fill: #ffcdd2;
}
.mat-progress-bar.mat-warn .mat-progress-bar-buffer {
  background-color: #ffcdd2;
}
.mat-progress-bar.mat-warn .mat-progress-bar-fill::after {
  background-color: #f44336;
}
.mat-progress-spinner circle, .mat-spinner circle {
  stroke: #2c4058;
}
.mat-progress-spinner.mat-accent circle, .mat-spinner.mat-accent circle {
  stroke: #ff4081;
}
.mat-progress-spinner.mat-warn circle, .mat-spinner.mat-warn circle {
  stroke: #f44336;
}
.mat-radio-outer-circle {
  border-color: rgba(0, 0, 0, 0.54);
}
.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle {
  border-color: #2c4058;
}
.mat-radio-button.mat-primary .mat-radio-inner-circle,
.mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple, .mat-radio-button.mat-primary:active .mat-radio-persistent-ripple {
  background-color: #2c4058;
}
.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle {
  border-color: #ff4081;
}
.mat-radio-button.mat-accent .mat-radio-inner-circle,
.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple, .mat-radio-button.mat-accent:active .mat-radio-persistent-ripple {
  background-color: #ff4081;
}
.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle {
  border-color: #f44336;
}
.mat-radio-button.mat-warn .mat-radio-inner-circle,
.mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple), .mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple, .mat-radio-button.mat-warn:active .mat-radio-persistent-ripple {
  background-color: #f44336;
}
.mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,
.mat-radio-button.mat-radio-disabled .mat-radio-outer-circle {
  border-color: rgba(0, 0, 0, 0.38);
}
.mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,
.mat-radio-button.mat-radio-disabled .mat-radio-inner-circle {
  background-color: rgba(0, 0, 0, 0.38);
}
.mat-radio-button.mat-radio-disabled .mat-radio-label-content {
  color: rgba(0, 0, 0, 0.38);
}
.mat-radio-button .mat-ripple-element {
  background-color: black;
}
.mat-select-value {
  color: rgba(0, 0, 0, 0.87);
}
.mat-select-placeholder {
  color: rgba(0, 0, 0, 0.42);
}
.mat-select-disabled .mat-select-value {
  color: rgba(0, 0, 0, 0.38);
}
.mat-select-arrow {
  color: rgba(0, 0, 0, 0.54);
}
.mat-select-panel {
  background: white;
}
.mat-select-panel:not([class*=mat-elevation-z]) {
  box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
}
.mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple) {
  background: rgba(0, 0, 0, 0.12);
}
.mat-form-field.mat-focused.mat-primary .mat-select-arrow {
  color: #2c4058;
}
.mat-form-field.mat-focused.mat-accent .mat-select-arrow {
  color: #ff4081;
}
.mat-form-field.mat-focused.mat-warn .mat-select-arrow {
  color: #f44336;
}
.mat-form-field .mat-select.mat-select-invalid .mat-select-arrow {
  color: #f44336;
}
.mat-form-field .mat-select.mat-select-disabled .mat-select-arrow {
  color: rgba(0, 0, 0, 0.38);
}
.mat-drawer-container {
  background-color: #fafafa;
  color: rgba(0, 0, 0, 0.87);
}
.mat-drawer {
  background-color: white;
  color: rgba(0, 0, 0, 0.87);
}
.mat-drawer.mat-drawer-push {
  background-color: white;
}
.mat-drawer:not(.mat-drawer-side) {
  box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);
}
.mat-drawer-side {
  border-right: solid 1px rgba(0, 0, 0, 0.12);
}
.mat-drawer-side.mat-drawer-end {
  border-left: solid 1px rgba(0, 0, 0, 0.12);
  border-right: none;
}
[dir=rtl] .mat-drawer-side {
  border-left: solid 1px rgba(0, 0, 0, 0.12);
  border-right: none;
}
[dir=rtl] .mat-drawer-side.mat-drawer-end {
  border-left: none;
  border-right: solid 1px rgba(0, 0, 0, 0.12);
}
.mat-drawer-backdrop.mat-drawer-shown {
  background-color: rgba(0, 0, 0, 0.6);
}
.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb {
  background-color: #ff4081;
}
.mat-slide-toggle.mat-checked .mat-slide-toggle-bar {
  background-color: rgba(255, 64, 129, 0.54);
}
.mat-slide-toggle.mat-checked .mat-ripple-element {
  background-color: #ff4081;
}
.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb {
  background-color: #2c4058;
}
.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar {
  background-color: rgba(44, 64, 88, 0.54);
}
.mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element {
  background-color: #2c4058;
}
.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb {
  background-color: #f44336;
}
.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar {
  background-color: rgba(244, 67, 54, 0.54);
}
.mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element {
  background-color: #f44336;
}
.mat-slide-toggle:not(.mat-checked) .mat-ripple-element {
  background-color: black;
}
.mat-slide-toggle-thumb {
  box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);
  background-color: #fafafa;
}
.mat-slide-toggle-bar {
  background-color: rgba(0, 0, 0, 0.38);
}
.mat-slider-track-background {
  background-color: rgba(0, 0, 0, 0.26);
}
.mat-primary .mat-slider-track-fill,
.mat-primary .mat-slider-thumb,
.mat-primary .mat-slider-thumb-label {
  background-color: #2c4058;
}
.mat-primary .mat-slider-thumb-label-text {
  color: #fcfcfc;
}
.mat-primary .mat-slider-focus-ring {
  background-color: rgba(44, 64, 88, 0.2);
}
.mat-accent .mat-slider-track-fill,
.mat-accent .mat-slider-thumb,
.mat-accent .mat-slider-thumb-label {
  background-color: #ff4081;
}
.mat-accent .mat-slider-thumb-label-text {
  color: white;
}
.mat-accent .mat-slider-focus-ring {
  background-color: rgba(255, 64, 129, 0.2);
}
.mat-warn .mat-slider-track-fill,
.mat-warn .mat-slider-thumb,
.mat-warn .mat-slider-thumb-label {
  background-color: #f44336;
}
.mat-warn .mat-slider-thumb-label-text {
  color: white;
}
.mat-warn .mat-slider-focus-ring {
  background-color: rgba(244, 67, 54, 0.2);
}
.mat-slider:hover .mat-slider-track-background,
.cdk-focused .mat-slider-track-background {
  background-color: rgba(0, 0, 0, 0.38);
}
.mat-slider-disabled .mat-slider-track-background,
.mat-slider-disabled .mat-slider-track-fill,
.mat-slider-disabled .mat-slider-thumb {
  background-color: rgba(0, 0, 0, 0.26);
}
.mat-slider-disabled:hover .mat-slider-track-background {
  background-color: rgba(0, 0, 0, 0.26);
}
.mat-slider-min-value .mat-slider-focus-ring {
  background-color: rgba(0, 0, 0, 0.12);
}
.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,
.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label {
  background-color: rgba(0, 0, 0, 0.87);
}
.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,
.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label {
  background-color: rgba(0, 0, 0, 0.26);
}
.mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb {
  border-color: rgba(0, 0, 0, 0.26);
  background-color: transparent;
}
.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb, .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb {
  border-color: rgba(0, 0, 0, 0.38);
}
.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb, .mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb {
  border-color: rgba(0, 0, 0, 0.26);
}
.mat-slider-has-ticks .mat-slider-wrapper::after {
  border-color: rgba(0, 0, 0, 0.7);
}
.mat-slider-horizontal .mat-slider-ticks {
  background-image: repeating-linear-gradient(to right, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);
  background-image: -moz-repeating-linear-gradient(0.0001deg, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);
}
.mat-slider-vertical .mat-slider-ticks {
  background-image: repeating-linear-gradient(to bottom, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7) 2px, transparent 0, transparent);
}
.mat-step-header.cdk-keyboard-focused, .mat-step-header.cdk-program-focused, .mat-step-header:hover {
  background-color: rgba(0, 0, 0, 0.04);
}
@media (hover: none) {
  .mat-step-header:hover {
    background: none;
  }
}
.mat-step-header .mat-step-label,
.mat-step-header .mat-step-optional {
  color: rgba(0, 0, 0, 0.54);
}
.mat-step-header .mat-step-icon {
  background-color: rgba(0, 0, 0, 0.54);
  color: #fcfcfc;
}
.mat-step-header .mat-step-icon-selected,
.mat-step-header .mat-step-icon-state-done,
.mat-step-header .mat-step-icon-state-edit {
  background-color: #2c4058;
  color: #fcfcfc;
}
.mat-step-header.mat-accent .mat-step-icon {
  color: white;
}
.mat-step-header.mat-accent .mat-step-icon-selected,
.mat-step-header.mat-accent .mat-step-icon-state-done,
.mat-step-header.mat-accent .mat-step-icon-state-edit {
  background-color: #ff4081;
  color: white;
}
.mat-step-header.mat-warn .mat-step-icon {
  color: white;
}
.mat-step-header.mat-warn .mat-step-icon-selected,
.mat-step-header.mat-warn .mat-step-icon-state-done,
.mat-step-header.mat-warn .mat-step-icon-state-edit {
  background-color: #f44336;
  color: white;
}
.mat-step-header .mat-step-icon-state-error {
  background-color: transparent;
  color: #f44336;
}
.mat-step-header .mat-step-label.mat-step-label-active {
  color: rgba(0, 0, 0, 0.87);
}
.mat-step-header .mat-step-label.mat-step-label-error {
  color: #f44336;
}
.mat-stepper-horizontal, .mat-stepper-vertical {
  background-color: white;
}
.mat-stepper-vertical-line::before {
  border-left-color: rgba(0, 0, 0, 0.12);
}
.mat-horizontal-stepper-header::before,
.mat-horizontal-stepper-header::after,
.mat-stepper-horizontal-line {
  border-top-color: rgba(0, 0, 0, 0.12);
}
.mat-horizontal-stepper-header {
  height: 72px;
}
.mat-stepper-label-position-bottom .mat-horizontal-stepper-header,
.mat-vertical-stepper-header {
  padding: 24px 24px;
}
.mat-stepper-vertical-line::before {
  top: -16px;
  bottom: -16px;
}
.mat-stepper-label-position-bottom .mat-horizontal-stepper-header::after, .mat-stepper-label-position-bottom .mat-horizontal-stepper-header::before {
  top: 36px;
}
.mat-stepper-label-position-bottom .mat-stepper-horizontal-line {
  top: 36px;
}
.mat-sort-header-arrow {
  color: #757575;
}
.mat-tab-nav-bar,
.mat-tab-header {
  border-bottom: 1px solid rgba(0, 0, 0, 0.12);
}
.mat-tab-group-inverted-header .mat-tab-nav-bar,
.mat-tab-group-inverted-header .mat-tab-header {
  border-top: 1px solid rgba(0, 0, 0, 0.12);
  border-bottom: none;
}
.mat-tab-label, .mat-tab-link {
  color: rgba(0, 0, 0, 0.87);
}
.mat-tab-label.mat-tab-disabled, .mat-tab-link.mat-tab-disabled {
  color: rgba(0, 0, 0, 0.38);
}
.mat-tab-header-pagination-chevron {
  border-color: rgba(0, 0, 0, 0.87);
}
.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {
  border-color: rgba(0, 0, 0, 0.38);
}
.mat-tab-group[class*=mat-background-] .mat-tab-header,
.mat-tab-nav-bar[class*=mat-background-] {
  border-bottom: none;
  border-top: none;
}
.mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {
  background-color: rgba(187, 222, 251, 0.3);
}
.mat-tab-group.mat-primary .mat-ink-bar, .mat-tab-nav-bar.mat-primary .mat-ink-bar {
  background-color: #2c4058;
}
.mat-tab-group.mat-primary.mat-background-primary > .mat-tab-header .mat-ink-bar, .mat-tab-group.mat-primary.mat-background-primary > .mat-tab-link-container .mat-ink-bar, .mat-tab-nav-bar.mat-primary.mat-background-primary > .mat-tab-header .mat-ink-bar, .mat-tab-nav-bar.mat-primary.mat-background-primary > .mat-tab-link-container .mat-ink-bar {
  background-color: #fcfcfc;
}
.mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {
  background-color: rgba(255, 128, 171, 0.3);
}
.mat-tab-group.mat-accent .mat-ink-bar, .mat-tab-nav-bar.mat-accent .mat-ink-bar {
  background-color: #ff4081;
}
.mat-tab-group.mat-accent.mat-background-accent > .mat-tab-header .mat-ink-bar, .mat-tab-group.mat-accent.mat-background-accent > .mat-tab-link-container .mat-ink-bar, .mat-tab-nav-bar.mat-accent.mat-background-accent > .mat-tab-header .mat-ink-bar, .mat-tab-nav-bar.mat-accent.mat-background-accent > .mat-tab-link-container .mat-ink-bar {
  background-color: white;
}
.mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {
  background-color: rgba(255, 205, 210, 0.3);
}
.mat-tab-group.mat-warn .mat-ink-bar, .mat-tab-nav-bar.mat-warn .mat-ink-bar {
  background-color: #f44336;
}
.mat-tab-group.mat-warn.mat-background-warn > .mat-tab-header .mat-ink-bar, .mat-tab-group.mat-warn.mat-background-warn > .mat-tab-link-container .mat-ink-bar, .mat-tab-nav-bar.mat-warn.mat-background-warn > .mat-tab-header .mat-ink-bar, .mat-tab-nav-bar.mat-warn.mat-background-warn > .mat-tab-link-container .mat-ink-bar {
  background-color: white;
}
.mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {
  background-color: rgba(187, 222, 251, 0.3);
}
.mat-tab-group.mat-background-primary > .mat-tab-header, .mat-tab-group.mat-background-primary > .mat-tab-link-container, .mat-tab-group.mat-background-primary > .mat-tab-header-pagination, .mat-tab-nav-bar.mat-background-primary > .mat-tab-header, .mat-tab-nav-bar.mat-background-primary > .mat-tab-link-container, .mat-tab-nav-bar.mat-background-primary > .mat-tab-header-pagination {
  background-color: #2c4058;
}
.mat-tab-group.mat-background-primary > .mat-tab-header .mat-tab-label, .mat-tab-group.mat-background-primary > .mat-tab-link-container .mat-tab-link, .mat-tab-nav-bar.mat-background-primary > .mat-tab-header .mat-tab-label, .mat-tab-nav-bar.mat-background-primary > .mat-tab-link-container .mat-tab-link {
  color: #fcfcfc;
}
.mat-tab-group.mat-background-primary > .mat-tab-header .mat-tab-label.mat-tab-disabled, .mat-tab-group.mat-background-primary > .mat-tab-link-container .mat-tab-link.mat-tab-disabled, .mat-tab-nav-bar.mat-background-primary > .mat-tab-header .mat-tab-label.mat-tab-disabled, .mat-tab-nav-bar.mat-background-primary > .mat-tab-link-container .mat-tab-link.mat-tab-disabled {
  color: rgba(252, 252, 252, 0.4);
}
.mat-tab-group.mat-background-primary > .mat-tab-header-pagination .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-primary > .mat-tab-header-pagination .mat-tab-header-pagination-chevron {
  border-color: #fcfcfc;
}
.mat-tab-group.mat-background-primary > .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-primary > .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {
  border-color: rgba(252, 252, 252, 0.4);
}
.mat-tab-group.mat-background-primary > .mat-tab-header .mat-ripple-element,
.mat-tab-group.mat-background-primary > .mat-tab-link-container .mat-ripple-element, .mat-tab-nav-bar.mat-background-primary > .mat-tab-header .mat-ripple-element,
.mat-tab-nav-bar.mat-background-primary > .mat-tab-link-container .mat-ripple-element {
  background-color: rgba(252, 252, 252, 0.12);
}
.mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {
  background-color: rgba(255, 128, 171, 0.3);
}
.mat-tab-group.mat-background-accent > .mat-tab-header, .mat-tab-group.mat-background-accent > .mat-tab-link-container, .mat-tab-group.mat-background-accent > .mat-tab-header-pagination, .mat-tab-nav-bar.mat-background-accent > .mat-tab-header, .mat-tab-nav-bar.mat-background-accent > .mat-tab-link-container, .mat-tab-nav-bar.mat-background-accent > .mat-tab-header-pagination {
  background-color: #ff4081;
}
.mat-tab-group.mat-background-accent > .mat-tab-header .mat-tab-label, .mat-tab-group.mat-background-accent > .mat-tab-link-container .mat-tab-link, .mat-tab-nav-bar.mat-background-accent > .mat-tab-header .mat-tab-label, .mat-tab-nav-bar.mat-background-accent > .mat-tab-link-container .mat-tab-link {
  color: white;
}
.mat-tab-group.mat-background-accent > .mat-tab-header .mat-tab-label.mat-tab-disabled, .mat-tab-group.mat-background-accent > .mat-tab-link-container .mat-tab-link.mat-tab-disabled, .mat-tab-nav-bar.mat-background-accent > .mat-tab-header .mat-tab-label.mat-tab-disabled, .mat-tab-nav-bar.mat-background-accent > .mat-tab-link-container .mat-tab-link.mat-tab-disabled {
  color: rgba(255, 255, 255, 0.4);
}
.mat-tab-group.mat-background-accent > .mat-tab-header-pagination .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-accent > .mat-tab-header-pagination .mat-tab-header-pagination-chevron {
  border-color: white;
}
.mat-tab-group.mat-background-accent > .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-accent > .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {
  border-color: rgba(255, 255, 255, 0.4);
}
.mat-tab-group.mat-background-accent > .mat-tab-header .mat-ripple-element,
.mat-tab-group.mat-background-accent > .mat-tab-link-container .mat-ripple-element, .mat-tab-nav-bar.mat-background-accent > .mat-tab-header .mat-ripple-element,
.mat-tab-nav-bar.mat-background-accent > .mat-tab-link-container .mat-ripple-element {
  background-color: rgba(255, 255, 255, 0.12);
}
.mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled), .mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),
.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled) {
  background-color: rgba(255, 205, 210, 0.3);
}
.mat-tab-group.mat-background-warn > .mat-tab-header, .mat-tab-group.mat-background-warn > .mat-tab-link-container, .mat-tab-group.mat-background-warn > .mat-tab-header-pagination, .mat-tab-nav-bar.mat-background-warn > .mat-tab-header, .mat-tab-nav-bar.mat-background-warn > .mat-tab-link-container, .mat-tab-nav-bar.mat-background-warn > .mat-tab-header-pagination {
  background-color: #f44336;
}
.mat-tab-group.mat-background-warn > .mat-tab-header .mat-tab-label, .mat-tab-group.mat-background-warn > .mat-tab-link-container .mat-tab-link, .mat-tab-nav-bar.mat-background-warn > .mat-tab-header .mat-tab-label, .mat-tab-nav-bar.mat-background-warn > .mat-tab-link-container .mat-tab-link {
  color: white;
}
.mat-tab-group.mat-background-warn > .mat-tab-header .mat-tab-label.mat-tab-disabled, .mat-tab-group.mat-background-warn > .mat-tab-link-container .mat-tab-link.mat-tab-disabled, .mat-tab-nav-bar.mat-background-warn > .mat-tab-header .mat-tab-label.mat-tab-disabled, .mat-tab-nav-bar.mat-background-warn > .mat-tab-link-container .mat-tab-link.mat-tab-disabled {
  color: rgba(255, 255, 255, 0.4);
}
.mat-tab-group.mat-background-warn > .mat-tab-header-pagination .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-warn > .mat-tab-header-pagination .mat-tab-header-pagination-chevron {
  border-color: white;
}
.mat-tab-group.mat-background-warn > .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron, .mat-tab-nav-bar.mat-background-warn > .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {
  border-color: rgba(255, 255, 255, 0.4);
}
.mat-tab-group.mat-background-warn > .mat-tab-header .mat-ripple-element,
.mat-tab-group.mat-background-warn > .mat-tab-link-container .mat-ripple-element, .mat-tab-nav-bar.mat-background-warn > .mat-tab-header .mat-ripple-element,
.mat-tab-nav-bar.mat-background-warn > .mat-tab-link-container .mat-ripple-element {
  background-color: rgba(255, 255, 255, 0.12);
}
.mat-toolbar {
  background: whitesmoke;
  color: rgba(0, 0, 0, 0.87);
}
.mat-toolbar.mat-primary {
  background: #2c4058;
  color: #fcfcfc;
}
.mat-toolbar.mat-accent {
  background: #ff4081;
  color: white;
}
.mat-toolbar.mat-warn {
  background: #f44336;
  color: white;
}
.mat-toolbar .mat-form-field-underline,
.mat-toolbar .mat-form-field-ripple,
.mat-toolbar .mat-focused .mat-form-field-ripple {
  background-color: currentColor;
}
.mat-toolbar .mat-form-field-label,
.mat-toolbar .mat-focused .mat-form-field-label,
.mat-toolbar .mat-select-value,
.mat-toolbar .mat-select-arrow,
.mat-toolbar .mat-form-field.mat-focused .mat-select-arrow {
  color: inherit;
}
.mat-toolbar .mat-input-element {
  caret-color: currentColor;
}
.mat-toolbar-multiple-rows {
  min-height: 64px;
}
.mat-toolbar-row, .mat-toolbar-single-row {
  height: 64px;
}
@media (max-width: 599px) {
  .mat-toolbar-multiple-rows {
    min-height: 56px;
  }

  .mat-toolbar-row, .mat-toolbar-single-row {
    height: 56px;
  }
}
.mat-tooltip {
  background: rgba(97, 97, 97, 0.9);
}
.mat-tree {
  background: white;
}
.mat-tree-node,
.mat-nested-tree-node {
  color: rgba(0, 0, 0, 0.87);
}
.mat-tree-node {
  min-height: 48px;
}
.mat-snack-bar-container {
  color: rgba(255, 255, 255, 0.7);
  background: #323232;
  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);
}
.mat-simple-snackbar-action {
  color: #ff4081;
}
app-default-layout {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
.app-body {
  background-color: #FCFCFC;
}
.app-body .main {
  flex: 1;
  min-width: 0;
  min-height: 100vh;
}
body {
  overflow-y: scroll;
  -ms-overflow-style: none;
  overflow-x: hidden;
}
::-webkit-scrollbar {
  width: 0;
  /* Remove scrollbar space */
  height: 0;
  /* Remove scrollbar space */
  background: transparent;
  /* Optional: just make scrollbar invisible */
}
hr {
  background-color: #DADBDE;
}
.main-content {
  padding-top: 3.25rem;
  padding-left: 3rem;
  padding-right: 3rem;
  overflow: scroll;
  height: 100%;
}
.no-margin {
  margin: 0;
}
.auto-margin {
  margin: auto;
}
.md-drppicker {
  margin-top: 0 !important;
  overflow: unset !important;
  padding: 0 !important;
}
.md-drppicker .btn {
  color: #222222 !important;
  background-color: #FFCE00 !important;
  outline: none;
}
.md-drppicker td.active {
  color: #222222 !important;
  background-color: #FFCE00 !important;
  outline: none;
}
.md-drppicker .ranges ul li button {
  outline: none;
}
.md-drppicker .ranges ul li button.active {
  color: #222222 !important;
  background-color: #FFCE00 !important;
  outline: none;
}
.no-padding {
  padding: 0;
}
.pt-8px {
  padding-top: 0.5rem;
}
.pb-8px {
  padding-bottom: 0.5rem;
}
.pb-16px {
  padding-bottom: 1rem;
}
.mt-none {
  margin-top: 0rem;
}
.mt-8px {
  margin-top: 0.5rem;
}
.mt-10px {
  margin-top: 0.625rem;
}
.mt-14px {
  margin-top: 0.875rem;
}
.mt-16px {
  margin-top: 1rem;
}
.mt-20px {
  margin-top: 1.25rem;
}
.mt-24px {
  margin-top: 1.5rem;
}
.mt-28px {
  margin-top: 1.75rem;
}
.mt-48px {
  margin-top: 3rem;
}
.mb-none {
  margin-bottom: 0;
}
.mb-16px {
  margin-bottom: 1rem;
}
.mb-20px {
  margin-bottom: 1.25rem;
}
.mb-24px {
  margin-bottom: 1.5rem;
}
.mb-32px {
  margin-bottom: 2rem;
}
.lh-80p {
  line-height: 80%;
}
.flex-container {
  display: flex;
}
.flex-inline {
  display: inline-flex;
}
.flex-wrap-content {
  flex-wrap: wrap;
}
.flex-content-end {
  justify-content: flex-end;
}
.flex-align-end {
  align-items: flex-end;
}
.align-self-center {
  align-self: center;
}
.float-left {
  float: left;
}
.float-right {
  float: right;
}
.no-padding {
  padding: 0;
}
.pt-8px {
  padding-top: 0.5rem;
}
.pt-16px {
  padding-top: 1rem;
}
.pt-24px {
  padding-top: 1.5rem;
}
.pb-8px {
  padding-bottom: 0.5rem;
}
.mt-none {
  margin-top: 0rem;
}
.mt-2px {
  margin-top: 0.125rem;
}
.mt-4px {
  margin-top: 0.25rem;
}
.mt-6px {
  margin-top: 0.375rem;
}
.mt-8px {
  margin-top: 0.5rem;
}
.mt-10px {
  margin-top: 0.625rem;
}
.mt-12px {
  margin-top: 0.75rem;
}
.mt-14px {
  margin-top: 0.875rem;
}
.mt-16px {
  margin-top: 1rem;
}
.mt-20px {
  margin-top: 1.25rem;
}
.mt-24px {
  margin-top: 1.5rem;
}
.mt-28px {
  margin-top: 1.75rem;
}
.mt-32px {
  margin-top: 2rem;
}
.mt-40px {
  margin-top: 2.5rem;
}
.mt-48px {
  margin-top: 3rem;
}
.ml-8px {
  margin-left: 0.5rem;
}
.ml-12px {
  margin-left: 0.75rem;
}
.ml-16px {
  margin-left: 1rem;
}
.ml-16px-force {
  margin-left: 1rem !important;
}
.mr-6px {
  margin-right: 0.375rem;
}
.mr-10px {
  margin-right: 0.625rem;
}
.mb-16px {
  margin-bottom: 1rem;
}
.mb-20px {
  margin-bottom: 1.25rem;
}
.mb-24px {
  margin-bottom: 1.5rem;
}
.mb-32px {
  margin-bottom: 2rem;
}
.mb-64px {
  margin-bottom: 4rem;
}
.mb-96px {
  margin-bottom: 6rem;
}
.lh-80p {
  line-height: 80%;
}
.d-none {
  display: none;
}
.flex-container {
  display: flex;
}
.flex-space-between {
  justify-content: space-between;
}
.flex-inline {
  display: inline-flex;
}
.flex-wrap-content {
  flex-wrap: wrap;
}
.flex-content-end {
  justify-content: flex-end;
}
.flex-align-end {
  align-items: flex-end;
}
.flex-justify-center {
  justify-content: center;
}
.flex-align-center {
  align-items: center;
}
.flex-fill {
  flex: 1;
}
.full-centered-text {
  text-align: center;
  width: 100%;
}
.align-self-flex-end {
  align-self: flex-end;
}
.align-self-center {
  align-self: center;
}
.float-left {
  float: left;
}
.float-right {
  float: right;
}
.float-down {
  float: bottom;
}
.float-up {
  float: top;
}
.h100p {
  height: 100%;
}
.h50vh {
  height: 50vh;
}
.w100p {
  width: 100%;
}
.inline-block {
  display: inline-block;
}
.block {
  display: block;
}
.modal-content {
  border-radius: 10px !important;
  border: unset;
  overflow: hidden;
}
.blurred-background {
  -webkit-backdrop-filter: blur(2px);
          backdrop-filter: blur(2px);
}
.toast-container .custom-toast.ngx-toastr.toast-success {
  background-color: #63D58F;
}
.toast-container .custom-toast.ngx-toastr.toast-info {
  background-color: #888888;
}
.toast-container .custom-toast.ngx-toastr.toast-warning {
  background-color: #FFD74B;
}
.toast-container .custom-toast.ngx-toastr.toast-error {
  background-color: #F28872;
}
.ellipsis-nowrap-text {
  width: 100%;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow-x: hidden;
}
.live-view-modal-landscape .modal-xl {
  max-width: 95vw;
  max-height: 90vh;
}
.live-view-modal-portrait .modal-xl {
  max-width: 65vw;
  max-height: 95vh;
}
.tooltip {
  font-size: 0.9rem;
  z-index: 1052 !important;
}
.show.tooltip {
  opacity: 1;
  z-index: 1052 !important;
}
.cdk-overlay-container {
  z-index: 1052;
}
.tooltip.tooltip-top,
.tooltip.tooltip-bottom,
.tooltip.tooltip-left,
.tooltip.tooltip-right {
  z-index: 100000;
}
.animating {
  -webkit-animation: 0.75s flicker-white-color infinite alternate;
          animation: 0.75s flicker-white-color infinite alternate;
}
.dark-animation.animating {
  -webkit-animation: 0.75s flicker-dark-color infinite alternate;
          animation: 0.75s flicker-dark-color infinite alternate;
}
@-webkit-keyframes flicker-white-color {
  0% {
    background-color: rgba(255, 255, 255, 0.1);
  }
  10% {
    background-color: rgba(255, 255, 255, 0.2);
  }
  20% {
    background-color: rgba(255, 255, 255, 0.3);
  }
  30% {
    background-color: rgba(255, 255, 255, 0.4);
  }
  40% {
    background-color: rgba(255, 255, 255, 0.5);
  }
  50% {
    background-color: rgba(255, 255, 255, 0.6);
  }
  60% {
    background-color: rgba(255, 255, 255, 0.5);
  }
  70% {
    background-color: rgba(255, 255, 255, 0.4);
  }
  80% {
    background-color: rgba(255, 255, 255, 0.3);
  }
  90% {
    background-color: rgba(255, 255, 255, 0.2);
  }
  100% {
    background-color: rgba(255, 255, 255, 0.1);
  }
}
@keyframes flicker-white-color {
  0% {
    background-color: rgba(255, 255, 255, 0.1);
  }
  10% {
    background-color: rgba(255, 255, 255, 0.2);
  }
  20% {
    background-color: rgba(255, 255, 255, 0.3);
  }
  30% {
    background-color: rgba(255, 255, 255, 0.4);
  }
  40% {
    background-color: rgba(255, 255, 255, 0.5);
  }
  50% {
    background-color: rgba(255, 255, 255, 0.6);
  }
  60% {
    background-color: rgba(255, 255, 255, 0.5);
  }
  70% {
    background-color: rgba(255, 255, 255, 0.4);
  }
  80% {
    background-color: rgba(255, 255, 255, 0.3);
  }
  90% {
    background-color: rgba(255, 255, 255, 0.2);
  }
  100% {
    background-color: rgba(255, 255, 255, 0.1);
  }
}
@-webkit-keyframes flicker-dark-color {
  0% {
    background-color: rgba(200, 200, 200, 0.1);
  }
  10% {
    background-color: rgba(200, 200, 200, 0.2);
  }
  20% {
    background-color: rgba(200, 200, 200, 0.3);
  }
  30% {
    background-color: rgba(200, 200, 200, 0.4);
  }
  40% {
    background-color: rgba(200, 200, 200, 0.5);
  }
  50% {
    background-color: rgba(200, 200, 200, 0.6);
  }
  60% {
    background-color: rgba(200, 200, 200, 0.5);
  }
  70% {
    background-color: rgba(200, 200, 200, 0.4);
  }
  80% {
    background-color: rgba(200, 200, 200, 0.3);
  }
  90% {
    background-color: rgba(200, 200, 200, 0.2);
  }
  100% {
    background-color: rgba(200, 200, 200, 0.1);
  }
}
@keyframes flicker-dark-color {
  0% {
    background-color: rgba(200, 200, 200, 0.1);
  }
  10% {
    background-color: rgba(200, 200, 200, 0.2);
  }
  20% {
    background-color: rgba(200, 200, 200, 0.3);
  }
  30% {
    background-color: rgba(200, 200, 200, 0.4);
  }
  40% {
    background-color: rgba(200, 200, 200, 0.5);
  }
  50% {
    background-color: rgba(200, 200, 200, 0.6);
  }
  60% {
    background-color: rgba(200, 200, 200, 0.5);
  }
  70% {
    background-color: rgba(200, 200, 200, 0.4);
  }
  80% {
    background-color: rgba(200, 200, 200, 0.3);
  }
  90% {
    background-color: rgba(200, 200, 200, 0.2);
  }
  100% {
    background-color: rgba(200, 200, 200, 0.1);
  }
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3N0eWxlcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2NvcmV1aS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC9ib290c3RyYXAuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvX3Jvb3Quc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvX3JlYm9vdC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC9fdmFyaWFibGVzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvYm9vdHN0cmFwL3ZlbmRvci9fcmZzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvdmFyaWFibGVzL19jb2xvcnMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy92YXJpYWJsZXMvYm9vdHN0cmFwL192YXJpYWJsZXMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvbWl4aW5zL19ob3Zlci5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC9fdHlwZS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC9taXhpbnMvX2xpc3RzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvYm9vdHN0cmFwL19pbWFnZXMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvbWl4aW5zL19pbWFnZS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC9taXhpbnMvX2JvcmRlci1yYWRpdXMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvX2NvZGUuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvX2dyaWQuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvbWl4aW5zL19ncmlkLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvYm9vdHN0cmFwL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvbWl4aW5zL19ncmlkLWZyYW1ld29yay5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC9fdGFibGVzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvYm9vdHN0cmFwL21peGlucy9fdGFibGUtcm93LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvYm9vdHN0cmFwL19mb3Jtcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC9taXhpbnMvX3RyYW5zaXRpb24uc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvbWl4aW5zL19mb3Jtcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC9taXhpbnMvX2dyYWRpZW50cy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC9fYnV0dG9ucy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC9taXhpbnMvX2J1dHRvbnMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvX3RyYW5zaXRpb25zLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvYm9vdHN0cmFwL19kcm9wZG93bi5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC9taXhpbnMvX2NhcmV0LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvYm9vdHN0cmFwL21peGlucy9fbmF2LWRpdmlkZXIuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvX2J1dHRvbi1ncm91cC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC9faW5wdXQtZ3JvdXAuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvX2N1c3RvbS1mb3Jtcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC9fbmF2LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvYm9vdHN0cmFwL19uYXZiYXIuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvX2NhcmQuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvX2JyZWFkY3J1bWIuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvX3BhZ2luYXRpb24uc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvbWl4aW5zL19wYWdpbmF0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvYm9vdHN0cmFwL19iYWRnZS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC9taXhpbnMvX2JhZGdlLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvYm9vdHN0cmFwL19qdW1ib3Ryb24uc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvX2FsZXJ0LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvYm9vdHN0cmFwL21peGlucy9fYWxlcnQuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvX3Byb2dyZXNzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvYm9vdHN0cmFwL19tZWRpYS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC9fbGlzdC1ncm91cC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC9taXhpbnMvX2xpc3QtZ3JvdXAuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvX2Nsb3NlLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvYm9vdHN0cmFwL190b2FzdHMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvX21vZGFsLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvYm9vdHN0cmFwL190b29sdGlwLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvYm9vdHN0cmFwL21peGlucy9fcmVzZXQtdGV4dC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC9fcG9wb3Zlci5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC9fY2Fyb3VzZWwuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvbWl4aW5zL19jbGVhcmZpeC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC9fc3Bpbm5lcnMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvdXRpbGl0aWVzL19hbGlnbi5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC9taXhpbnMvX2JhY2tncm91bmQtdmFyaWFudC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC91dGlsaXRpZXMvX2JhY2tncm91bmQuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvdXRpbGl0aWVzL19ib3JkZXJzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvYm9vdHN0cmFwL3V0aWxpdGllcy9fZGlzcGxheS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC91dGlsaXRpZXMvX2VtYmVkLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvYm9vdHN0cmFwL3V0aWxpdGllcy9fZmxleC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC91dGlsaXRpZXMvX2Zsb2F0LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvYm9vdHN0cmFwL3V0aWxpdGllcy9fb3ZlcmZsb3cuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvdXRpbGl0aWVzL19wb3NpdGlvbi5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC91dGlsaXRpZXMvX3NjcmVlbnJlYWRlcnMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvbWl4aW5zL19zY3JlZW4tcmVhZGVyLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvYm9vdHN0cmFwL3V0aWxpdGllcy9fc2hhZG93cy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC91dGlsaXRpZXMvX3NpemluZy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC91dGlsaXRpZXMvX3N0cmV0Y2hlZC1saW5rLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvYm9vdHN0cmFwL3V0aWxpdGllcy9fc3BhY2luZy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC91dGlsaXRpZXMvX3RleHQuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvbWl4aW5zL190ZXh0LXRydW5jYXRlLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvYm9vdHN0cmFwL21peGlucy9fdGV4dC1lbXBoYXNpcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC9taXhpbnMvX3RleHQtaGlkZS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2Jvb3RzdHJhcC91dGlsaXRpZXMvX3Zpc2liaWxpdHkuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9ib290c3RyYXAvX3ByaW50LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvX2FuaW1hdGUuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy92ZW5kb3JzL19wZXJmZWN0LXNjcm9sbGJhci5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL19hc2lkZS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL192YXJpYWJsZXMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9taXhpbnMvX2JvcmRlcnMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9fYXZhdGFycy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL21peGlucy9fYXZhdGFycy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL19iYWRnZS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL19icmVhZGNydW1iLW1lbnUuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9fYnJlYWRjcnVtYi5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL19icmFuZC1jYXJkLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvX2JyYW5kLWJ1dHRvbnMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9fYnV0dG9uLWdyb3VwLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvX2J1dHRvbnMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9taXhpbnMvX2J1dHRvbnMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9fY2FsbG91dC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL19jYXJkLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvbWl4aW5zL19jYXJkLWFjY2VudC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL19jaGFydHMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9fZHJvcGRvd24uc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9fZm9vdGVyLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvX2dyaWQuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9faGVhZGVyLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvX2lucHV0LWdyb3VwLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvX2ltYWdlcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL19saXN0LWdyb3VwLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvbWl4aW5zL19saXN0LWdyb3VwLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvX21vZGFsLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvX25hdi5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL19wcm9ncmVzcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL19wcm9ncmVzcy1ncm91cC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL19zaWRlYmFyLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvbWl4aW5zL19zaWRlYmFyLXdpZHRoLnNjc3MiLCIuLi8uLi9fdmFyaWFibGVzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvX3N3aXRjaGVzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvbWl4aW5zL19zd2l0Y2hlcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL190YWJsZXMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AY29yZXVpL2NvcmV1aS1wcm8vc2Nzcy9fbGF5b3V0LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvX290aGVycy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL3V0aWxpdGllcy9fYmFja2dyb3VuZC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL3V0aWxpdGllcy9fYm9yZGVycy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL3V0aWxpdGllcy9fZGlzcGxheS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL3V0aWxpdGllcy9fdHlwb2dyYXBoeS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL2FwcHMvZW1haWwvX2VtYWlsLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNvcmV1aS9jb3JldWktcHJvL3Njc3MvX3J0bC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL19pZS1jdXN0b20tcHJvcGVydGllcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bjb3JldWkvY29yZXVpLXByby9zY3NzL19maXhlcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3NwaW5raXQvc2Nzcy9zcGlubmVycy8xLXJvdGF0aW5nLXBsYW5lLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3BpbmtpdC9zY3NzL192YXJpYWJsZXMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zcGlua2l0L3Njc3Mvc3Bpbm5lcnMvMi1kb3VibGUtYm91bmNlLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3BpbmtpdC9zY3NzL3NwaW5uZXJzLzMtd2F2ZS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3NwaW5raXQvc2Nzcy9zcGlubmVycy80LXdhbmRlcmluZy1jdWJlcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3NwaW5raXQvc2Nzcy9zcGlubmVycy81LXB1bHNlLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3BpbmtpdC9zY3NzL3NwaW5uZXJzLzYtY2hhc2luZy1kb3RzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3BpbmtpdC9zY3NzL3NwaW5uZXJzLzctdGhyZWUtYm91bmNlLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3BpbmtpdC9zY3NzL3NwaW5uZXJzLzgtY2lyY2xlLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3BpbmtpdC9zY3NzL3NwaW5uZXJzLzktY3ViZS1ncmlkLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3BpbmtpdC9zY3NzL3NwaW5uZXJzLzEwLWZhZGluZy1jaXJjbGUuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zcGlua2l0L3Njc3Mvc3Bpbm5lcnMvMTEtZm9sZGluZy1jdWJlLnNjc3MiLCIuLi8uLi9fZm9udC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25neC10b2FzdHIvdG9hc3RyLmNzcyIsIi4uLy4uL19jdXN0b20uc2NzcyIsIi4uLy4uL3N0eWxlc2hlZXQuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AYW5ndWxhci9tYXRlcmlhbC9fdGhlbWluZy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQjtBQ0FoQjs7Ozs7RUFBQTtBQ0FBOzs7OztFQUFBO0FDQUE7RUFHSSxlQUFBO0VBQUEsaUJBQUE7RUFBQSxpQkFBQTtFQUFBLGVBQUE7RUFBQSxjQUFBO0VBQUEsaUJBQUE7RUFBQSxpQkFBQTtFQUFBLGdCQUFBO0VBQUEsZUFBQTtFQUFBLGVBQUE7RUFBQSxhQUFBO0VBQUEsZUFBQTtFQUFBLG9CQUFBO0VBQUEscUJBQUE7RUFJQSxrQkFBQTtFQUFBLG9CQUFBO0VBQUEsa0JBQUE7RUFBQSxlQUFBO0VBQUEsa0JBQUE7RUFBQSxpQkFBQTtFQUFBLGdCQUFBO0VBQUEsZUFBQTtFQUlBLGtCQUFBO0VBQUEsc0JBQUE7RUFBQSxzQkFBQTtFQUFBLHNCQUFBO0VBQUEsdUJBQUE7RUFLRiwrTUFBQTtFQUNBLDZHQUFBO0FIMEJGO0FJekJBOzs7RUFHRSxzQkFBQTtBSjRCRjtBSXpCQTtFQUNFLHVCQUFBO0VBQ0EsaUJBQUE7RUFDQSw4QkFBQTtFQUNBLDZDQUFBO0FKNEJGO0FJdEJBO0VBQ0UsY0FBQTtBSnlCRjtBSWZBO0VBQ0UsU0FBQTtFQUNBLGtNQ2lPNEI7RUNqSnhCLG1CQXRDYTtFRnhDakIsZ0JDME80QjtFRHpPNUIsZ0JDOE80QjtFRDdPNUIsY0d0Q1U7RUh1Q1YsZ0JBQUE7RUFDQSx5Qkl4Q2dDO0FSMERsQztBSVZBO0VBQ0UscUJBQUE7QUphRjtBSUpBO0VBQ0UsdUJBQUE7RUFDQSxTQUFBO0VBQ0EsaUJBQUE7QUpPRjtBSU1BO0VBQ0UsYUFBQTtFQUNBLHFCQ2dONEI7QUxuTjlCO0FJVUE7RUFDRSxhQUFBO0VBQ0EsbUJDb0YwQjtBTDNGNUI7QUlrQkE7O0VBRUUsMEJBQUE7RUFDQSx5Q0FBQTtVQUFBLGlDQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0Esc0NBQUE7VUFBQSw4QkFBQTtBSmZGO0FJa0JBO0VBQ0UsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLG9CQUFBO0FKZkY7QUlrQkE7OztFQUdFLGFBQUE7RUFDQSxtQkFBQTtBSmZGO0FJa0JBOzs7O0VBSUUsZ0JBQUE7QUpmRjtBSWtCQTtFQUNFLGdCQ2lKNEI7QUxoSzlCO0FJa0JBO0VBQ0UscUJBQUE7RUFDQSxjQUFBO0FKZkY7QUlrQkE7RUFDRSxnQkFBQTtBSmZGO0FJa0JBOztFQUVFLG1CQ29JNEI7QUxuSjlCO0FJa0JBO0VFcEZJLGNBQUE7QU5zRUo7QUl1QkE7O0VBRUUsa0JBQUE7RUUvRkUsY0FBQTtFRmlHRixjQUFBO0VBQ0Esd0JBQUE7QUpwQkY7QUl1QkE7RUFBTSxlQUFBO0FKbkJOO0FJb0JBO0VBQU0sV0FBQTtBSmhCTjtBSXVCQTtFQUNFLGNDWHdDO0VEWXhDLHFCQ1h3QztFRFl4Qyw2QkFBQTtBSnBCRjtBU3hKRTtFTCtLRSxjQ2RzQztFRGV0QywwQkNkc0M7QUxOMUM7QUk4QkE7RUFDRSxjQUFBO0VBQ0EscUJBQUE7QUozQkY7QVM3SkU7RUwyTEUsY0FBQTtFQUNBLHFCQUFBO0FKM0JKO0FJOEJFO0VBQ0UsVUFBQTtBSjVCSjtBSXFDQTs7OztFQUlFLGlHQ29ENEI7RUN6TTFCLGNBQUE7QU5vSEo7QUlxQ0E7RUFFRSxhQUFBO0VBRUEsbUJBQUE7RUFFQSxjQUFBO0FKckNGO0FJNkNBO0VBRUUsZ0JBQUE7QUozQ0Y7QUltREE7RUFDRSxzQkFBQTtFQUNBLGtCQUFBO0FKaERGO0FJbURBO0VBR0UsZ0JBQUE7RUFDQSxzQkFBQTtBSmxERjtBSTBEQTtFQUNFLHlCQUFBO0FKdkRGO0FJMERBO0VBQ0Usb0JDMkU0QjtFRDFFNUIsdUJDMEU0QjtFRHpFNUIsY0d2UVU7RUh3UVYsZ0JBQUE7RUFDQSxvQkFBQTtBSnZERjtBSTBEQTtFQUdFLG1CQUFBO0FKekRGO0FJaUVBO0VBRUUscUJBQUE7RUFDQSxxQkM0SnNDO0FMM054QztBSXFFQTtFQUVFLGdCQUFBO0FKbkVGO0FJMEVBO0VBQ0UsbUJBQUE7RUFDQSwwQ0FBQTtBSnZFRjtBSTBFQTs7Ozs7RUFLRSxTQUFBO0VBQ0Esb0JBQUE7RUV0UEUsa0JBQUE7RUZ3UEYsb0JBQUE7QUp2RUY7QUkwRUE7O0VBRUUsaUJBQUE7QUp2RUY7QUkwRUE7O0VBRUUsb0JBQUE7QUp2RUY7QUk2RUE7RUFDRSxpQkFBQTtBSjFFRjtBSWlGQTs7OztFQUlFLDBCQUFBO0FKOUVGO0FJdUZJOzs7O0VBQ0UsZUFBQTtBSmpGTjtBSXVGQTs7OztFQUlFLFVBQUE7RUFDQSxrQkFBQTtBSnBGRjtBSXVGQTs7RUFFRSxzQkFBQTtFQUNBLFVBQUE7QUpwRkY7QUl3RkE7Ozs7RUFTRSwyQkFBQTtBSjFGRjtBSTZGQTtFQUNFLGNBQUE7RUFFQSxnQkFBQTtBSjNGRjtBSThGQTtFQU1FLFlBQUE7RUFFQSxVQUFBO0VBQ0EsU0FBQTtFQUNBLFNBQUE7QUpqR0Y7QUlzR0E7RUFDRSxjQUFBO0VBQ0EsV0FBQTtFQUNBLGVBQUE7RUFDQSxVQUFBO0VBQ0EscUJBQUE7RUVsU0ksaUJBdENhO0VGMFVqQixvQkFBQTtFQUNBLGNBQUE7RUFDQSxtQkFBQTtBSm5HRjtBSXNHQTtFQUNFLHdCQUFBO0FKbkdGO0FJdUdBOztFQUVFLFlBQUE7QUpwR0Y7QUl1R0E7RUFLRSxvQkFBQTtFQUNBLHdCQUFBO0FKeEdGO0FJK0dBO0VBQ0Usd0JBQUE7QUo1R0Y7QUlvSEE7RUFDRSxhQUFBO0VBQ0EsMEJBQUE7QUpqSEY7QUl3SEE7RUFDRSxxQkFBQTtBSnJIRjtBSXdIQTtFQUNFLGtCQUFBO0VBQ0EsZUFBQTtBSnJIRjtBSXdIQTtFQUNFLGFBQUE7QUpySEY7QUkwSEE7RUFDRSx3QkFBQTtBSnZIRjtBVXBXQTs7RUFFRSxxQkxpUzRCO0VLL1I1QixnQkxpUzRCO0VLaFM1QixnQkxpUzRCO0FMcUU5QjtBVWxXQTtFSmdITSxvQkF0Q2E7QU40Um5CO0FVcldBO0VKK0dNLGtCQXRDYTtBTmdTbkI7QVV4V0E7RUo4R00scUJBdENhO0FOb1NuQjtBVTNXQTtFSjZHTSxvQkF0Q2E7QU53U25CO0FVOVdBO0VKNEdNLHFCQXRDYTtBTjRTbkI7QVVqWEE7RUoyR00sbUJBdENhO0FOZ1RuQjtBVW5YQTtFSnlHTSxxQkF0Q2E7RUlqRWpCLGdCTG1TNEI7QUxtRjlCO0FVbFhBO0VKbUdNLGVBdENhO0VJM0RqQixnQkxzUjRCO0VLclI1QixnQkw2UTRCO0FMd0c5QjtBVW5YQTtFSjhGTSxpQkF0Q2E7RUl0RGpCLGdCTGtSNEI7RUtqUjVCLGdCTHdRNEI7QUw4RzlCO0FVcFhBO0VKeUZNLGlCQXRDYTtFSWpEakIsZ0JMOFE0QjtFSzdRNUIsZ0JMbVE0QjtBTG9IOUI7QVVyWEE7RUpvRk0saUJBdENhO0VJNUNqQixnQkwwUTRCO0VLelE1QixnQkw4UDRCO0FMMEg5QjtBVWhYQTtFQUNFLGdCTDBFTztFS3pFUCxtQkx5RU87RUt4RVAsU0FBQTtFQUNBLHdDQUFBO0FWbVhGO0FVM1dBOztFSk1JLGNBQUE7RUlIRixnQkxzTjRCO0FMd0o5QjtBVTNXQTs7RUFFRSxjTDhQNEI7RUs3UDVCLHlCTHNRNEI7QUx3RzlCO0FVdFdBO0VDL0VFLGVBQUE7RUFDQSxnQkFBQTtBWHliRjtBVXRXQTtFQ3BGRSxlQUFBO0VBQ0EsZ0JBQUE7QVg4YkY7QVV4V0E7RUFDRSxxQkFBQTtBVjJXRjtBVXpXRTtFQUNFLG9CTGdQMEI7QUwySDlCO0FValdBO0VKakNJLGNBQUE7RUltQ0YseUJBQUE7QVZvV0Y7QVVoV0E7RUFDRSxtQkxpQk87RUNGSCxxQkF0Q2E7QU4yWG5CO0FVaFdBO0VBQ0UsY0FBQTtFSjdDRSxjQUFBO0VJK0NGLGNIN0dVO0FQZ2RaO0FValdFO0VBQ0UsYUFBQTtBVm1XSjtBWXRkQTtFQ0lFLGVBQUE7RUFHQSxZQUFBO0Fib2RGO0FZcmRBO0VBQ0UsZ0JQKytCa0M7RU85K0JsQyx5QkpGZ0M7RUlHaEMseUJBQUE7RUVYRSxzQlRxTzBCO0VRL041QixlQUFBO0VBR0EsWUFBQTtBYjZkRjtBWS9jQTtFQUVFLHFCQUFBO0FaaWRGO0FZOWNBO0VBQ0UscUJBQUE7RUFDQSxjQUFBO0FaaWRGO0FZOWNBO0VOa0NJLGNBQUE7RU1oQ0YsY0w5QlU7QVArZVo7QWV4ZkE7RVR1RUksZ0JBQUE7RVNyRUYsY1JnQ1c7RVEvQlgsc0JBQUE7QWYyZkY7QWV4ZkU7RUFDRSxjQUFBO0FmMGZKO0FlcmZBO0VBQ0Usc0JBQUE7RVQwREUsZ0JBQUE7RVN4REYsV1JiVTtFUWNWLHlCUkpVO0VPUlIscUJUdU8wQjtBTDhSOUI7QWVyZkU7RUFDRSxVQUFBO0VUa0RBLGVBQUE7RVNoREEsZ0JWb1EwQjtBTG1QOUI7QWVqZkE7RUFDRSxjQUFBO0VUeUNFLGdCQUFBO0VTdkNGLGNScEJVO0FQd2dCWjtBZWpmRTtFVG9DRSxrQkFBQTtFU2xDQSxjQUFBO0VBQ0Esa0JBQUE7QWZtZko7QWU5ZUE7RUFDRSxpQlZ3aUNrQztFVXZpQ2xDLGtCQUFBO0FmaWZGO0FnQjFoQkU7RUNBQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7QWpCOGhCRjtBa0IzZUk7RUZ2REY7SUNZSSxnQlo2TGlCO0VMNlZyQjtBQUNGO0FrQmhmSTtFRnZERjtJQ1lJLGdCWjZMaUI7RUxrV3JCO0FBQ0Y7QWtCcmZJO0VGdkRGO0lDWUksZ0JaNkxpQjtFTHVXckI7QUFDRjtBa0IxZkk7RUZ2REY7SUNZSSxpQlo2TGlCO0VMNFdyQjtBQUNGO0FnQjFpQkU7RUNaQSxXQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7QWpCMGpCRjtBZ0J4aUJFO0VDSkEsYUFBQTtFQUNBLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0FqQmdqQkY7QWdCemlCRTtFQUNFLGVBQUE7RUFDQSxjQUFBO0FoQjRpQko7QWdCMWlCSTs7RUFFRSxnQkFBQTtFQUNBLGVBQUE7QWhCNGlCTjtBbUI3a0JFOzs7Ozs7RUFDRSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0FuQnFsQko7QW1CbGtCTTtFQUNFLGFBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtBbkJxa0JSO0FtQm5rQk07RUFDRSxjQUFBO0VBQ0EsV0FBQTtFQUNBLGVBQUE7QW5Cc2tCUjtBbUJsa0JRO0VGRk4sdUJBQUE7RUFJQSx3QkFBQTtBakJxa0JGO0FtQnZrQlE7RUZGTix3QkFBQTtFQUlBLHlCQUFBO0FqQjBrQkY7QW1CNWtCUTtFRkZOLGFBQUE7RUFJQSxjQUFBO0FqQitrQkY7QW1CamxCUTtFRkZOLHdCQUFBO0VBSUEseUJBQUE7QWpCb2xCRjtBbUJ0bEJRO0VGRk4sd0JBQUE7RUFJQSx5QkFBQTtBakJ5bEJGO0FtQjNsQlE7RUZGTixhQUFBO0VBSUEsY0FBQTtBakI4bEJGO0FtQmhtQlE7RUZGTix3QkFBQTtFQUlBLHlCQUFBO0FqQm1tQkY7QW1Ccm1CUTtFRkZOLHdCQUFBO0VBSUEseUJBQUE7QWpCd21CRjtBbUIxbUJRO0VGRk4sYUFBQTtFQUlBLGNBQUE7QWpCNm1CRjtBbUIvbUJRO0VGRk4sd0JBQUE7RUFJQSx5QkFBQTtBakJrbkJGO0FtQnBuQlE7RUZGTix3QkFBQTtFQUlBLHlCQUFBO0FqQnVuQkY7QW1Cem5CUTtFRkZOLGNBQUE7RUFJQSxlQUFBO0FqQjRuQkY7QW1Cem5CTTtFQUF3QixTQUFBO0FuQjZuQjlCO0FtQjNuQk07RUFBdUIsU0FBQTtBbkIrbkI3QjtBbUI1bkJRO0VBQXdCLFFBRGI7QW5CaW9CbkI7QW1CaG9CUTtFQUF3QixRQURiO0FuQnFvQm5CO0FtQnBvQlE7RUFBd0IsUUFEYjtBbkJ5b0JuQjtBbUJ4b0JRO0VBQXdCLFFBRGI7QW5CNm9CbkI7QW1CNW9CUTtFQUF3QixRQURiO0FuQmlwQm5CO0FtQmhwQlE7RUFBd0IsUUFEYjtBbkJxcEJuQjtBbUJwcEJRO0VBQXdCLFFBRGI7QW5CeXBCbkI7QW1CeHBCUTtFQUF3QixRQURiO0FuQjZwQm5CO0FtQjVwQlE7RUFBd0IsUUFEYjtBbkJpcUJuQjtBbUJocUJRO0VBQXdCLFFBRGI7QW5CcXFCbkI7QW1CcHFCUTtFQUF3QixTQURiO0FuQnlxQm5CO0FtQnhxQlE7RUFBd0IsU0FEYjtBbkI2cUJuQjtBbUI1cUJRO0VBQXdCLFNBRGI7QW5CaXJCbkI7QW1CMXFCVTtFRlRSLDBCQUFBO0FqQnVyQkY7QW1COXFCVTtFRlRSLDJCQUFBO0FqQjJyQkY7QW1CbHJCVTtFRlRSLGdCQUFBO0FqQityQkY7QW1CdHJCVTtFRlRSLDJCQUFBO0FqQm1zQkY7QW1CMXJCVTtFRlRSLDJCQUFBO0FqQnVzQkY7QW1COXJCVTtFRlRSLGdCQUFBO0FqQjJzQkY7QW1CbHNCVTtFRlRSLDJCQUFBO0FqQitzQkY7QW1CdHNCVTtFRlRSLDJCQUFBO0FqQm10QkY7QW1CMXNCVTtFRlRSLGdCQUFBO0FqQnV0QkY7QW1COXNCVTtFRlRSLDJCQUFBO0FqQjJ0QkY7QW1CbHRCVTtFRlRSLDJCQUFBO0FqQit0QkY7QWtCcHRCSTtFQzlCRTtJQUNFLGFBQUE7SUFDQSxZQUFBO0lBQ0EsZUFBQTtFbkJzdkJOOztFbUJwdkJJO0lBQ0UsY0FBQTtJQUNBLFdBQUE7SUFDQSxlQUFBO0VuQnV2Qk47O0VtQm52Qk07SUZGTix1QkFBQTtJQUlBLHdCQUFBO0VqQnN2QkE7O0VtQnh2Qk07SUZGTix3QkFBQTtJQUlBLHlCQUFBO0VqQjJ2QkE7O0VtQjd2Qk07SUZGTixhQUFBO0lBSUEsY0FBQTtFakJnd0JBOztFbUJsd0JNO0lGRk4sd0JBQUE7SUFJQSx5QkFBQTtFakJxd0JBOztFbUJ2d0JNO0lGRk4sd0JBQUE7SUFJQSx5QkFBQTtFakIwd0JBOztFbUI1d0JNO0lGRk4sYUFBQTtJQUlBLGNBQUE7RWpCK3dCQTs7RW1CanhCTTtJRkZOLHdCQUFBO0lBSUEseUJBQUE7RWpCb3hCQTs7RW1CdHhCTTtJRkZOLHdCQUFBO0lBSUEseUJBQUE7RWpCeXhCQTs7RW1CM3hCTTtJRkZOLGFBQUE7SUFJQSxjQUFBO0VqQjh4QkE7O0VtQmh5Qk07SUZGTix3QkFBQTtJQUlBLHlCQUFBO0VqQm15QkE7O0VtQnJ5Qk07SUZGTix3QkFBQTtJQUlBLHlCQUFBO0VqQnd5QkE7O0VtQjF5Qk07SUZGTixjQUFBO0lBSUEsZUFBQTtFakI2eUJBOztFbUIxeUJJO0lBQXdCLFNBQUE7RW5COHlCNUI7O0VtQjV5Qkk7SUFBdUIsU0FBQTtFbkJnekIzQjs7RW1CN3lCTTtJQUF3QixRQURiO0VuQmt6QmpCOztFbUJqekJNO0lBQXdCLFFBRGI7RW5Cc3pCakI7O0VtQnJ6Qk07SUFBd0IsUUFEYjtFbkIwekJqQjs7RW1CenpCTTtJQUF3QixRQURiO0VuQjh6QmpCOztFbUI3ekJNO0lBQXdCLFFBRGI7RW5CazBCakI7O0VtQmowQk07SUFBd0IsUUFEYjtFbkJzMEJqQjs7RW1CcjBCTTtJQUF3QixRQURiO0VuQjAwQmpCOztFbUJ6MEJNO0lBQXdCLFFBRGI7RW5CODBCakI7O0VtQjcwQk07SUFBd0IsUUFEYjtFbkJrMUJqQjs7RW1CajFCTTtJQUF3QixRQURiO0VuQnMxQmpCOztFbUJyMUJNO0lBQXdCLFNBRGI7RW5CMDFCakI7O0VtQnoxQk07SUFBd0IsU0FEYjtFbkI4MUJqQjs7RW1CNzFCTTtJQUF3QixTQURiO0VuQmsyQmpCOztFbUIzMUJRO0lGVFIsY0FBQTtFakJ3MkJBOztFbUIvMUJRO0lGVFIsMEJBQUE7RWpCNDJCQTs7RW1CbjJCUTtJRlRSLDJCQUFBO0VqQmczQkE7O0VtQnYyQlE7SUZUUixnQkFBQTtFakJvM0JBOztFbUIzMkJRO0lGVFIsMkJBQUE7RWpCdzNCQTs7RW1CLzJCUTtJRlRSLDJCQUFBO0VqQjQzQkE7O0VtQm4zQlE7SUZUUixnQkFBQTtFakJnNEJBOztFbUJ2M0JRO0lGVFIsMkJBQUE7RWpCbzRCQTs7RW1CMzNCUTtJRlRSLDJCQUFBO0VqQnc0QkE7O0VtQi8zQlE7SUZUUixnQkFBQTtFakI0NEJBOztFbUJuNEJRO0lGVFIsMkJBQUE7RWpCZzVCQTs7RW1CdjRCUTtJRlRSLDJCQUFBO0VqQm81QkE7QUFDRjtBa0IxNEJJO0VDOUJFO0lBQ0UsYUFBQTtJQUNBLFlBQUE7SUFDQSxlQUFBO0VuQjI2Qk47O0VtQno2Qkk7SUFDRSxjQUFBO0lBQ0EsV0FBQTtJQUNBLGVBQUE7RW5CNDZCTjs7RW1CeDZCTTtJRkZOLHVCQUFBO0lBSUEsd0JBQUE7RWpCMjZCQTs7RW1CNzZCTTtJRkZOLHdCQUFBO0lBSUEseUJBQUE7RWpCZzdCQTs7RW1CbDdCTTtJRkZOLGFBQUE7SUFJQSxjQUFBO0VqQnE3QkE7O0VtQnY3Qk07SUZGTix3QkFBQTtJQUlBLHlCQUFBO0VqQjA3QkE7O0VtQjU3Qk07SUZGTix3QkFBQTtJQUlBLHlCQUFBO0VqQis3QkE7O0VtQmo4Qk07SUZGTixhQUFBO0lBSUEsY0FBQTtFakJvOEJBOztFbUJ0OEJNO0lGRk4sd0JBQUE7SUFJQSx5QkFBQTtFakJ5OEJBOztFbUIzOEJNO0lGRk4sd0JBQUE7SUFJQSx5QkFBQTtFakI4OEJBOztFbUJoOUJNO0lGRk4sYUFBQTtJQUlBLGNBQUE7RWpCbTlCQTs7RW1CcjlCTTtJRkZOLHdCQUFBO0lBSUEseUJBQUE7RWpCdzlCQTs7RW1CMTlCTTtJRkZOLHdCQUFBO0lBSUEseUJBQUE7RWpCNjlCQTs7RW1CLzlCTTtJRkZOLGNBQUE7SUFJQSxlQUFBO0VqQmsrQkE7O0VtQi85Qkk7SUFBd0IsU0FBQTtFbkJtK0I1Qjs7RW1CaitCSTtJQUF1QixTQUFBO0VuQnErQjNCOztFbUJsK0JNO0lBQXdCLFFBRGI7RW5CdStCakI7O0VtQnQrQk07SUFBd0IsUUFEYjtFbkIyK0JqQjs7RW1CMStCTTtJQUF3QixRQURiO0VuQisrQmpCOztFbUI5K0JNO0lBQXdCLFFBRGI7RW5CbS9CakI7O0VtQmwvQk07SUFBd0IsUUFEYjtFbkJ1L0JqQjs7RW1CdC9CTTtJQUF3QixRQURiO0VuQjIvQmpCOztFbUIxL0JNO0lBQXdCLFFBRGI7RW5CKy9CakI7O0VtQjkvQk07SUFBd0IsUUFEYjtFbkJtZ0NqQjs7RW1CbGdDTTtJQUF3QixRQURiO0VuQnVnQ2pCOztFbUJ0Z0NNO0lBQXdCLFFBRGI7RW5CMmdDakI7O0VtQjFnQ007SUFBd0IsU0FEYjtFbkIrZ0NqQjs7RW1COWdDTTtJQUF3QixTQURiO0VuQm1oQ2pCOztFbUJsaENNO0lBQXdCLFNBRGI7RW5CdWhDakI7O0VtQmhoQ1E7SUZUUixjQUFBO0VqQjZoQ0E7O0VtQnBoQ1E7SUZUUiwwQkFBQTtFakJpaUNBOztFbUJ4aENRO0lGVFIsMkJBQUE7RWpCcWlDQTs7RW1CNWhDUTtJRlRSLGdCQUFBO0VqQnlpQ0E7O0VtQmhpQ1E7SUZUUiwyQkFBQTtFakI2aUNBOztFbUJwaUNRO0lGVFIsMkJBQUE7RWpCaWpDQTs7RW1CeGlDUTtJRlRSLGdCQUFBO0VqQnFqQ0E7O0VtQjVpQ1E7SUZUUiwyQkFBQTtFakJ5akNBOztFbUJoakNRO0lGVFIsMkJBQUE7RWpCNmpDQTs7RW1CcGpDUTtJRlRSLGdCQUFBO0VqQmlrQ0E7O0VtQnhqQ1E7SUZUUiwyQkFBQTtFakJxa0NBOztFbUI1akNRO0lGVFIsMkJBQUE7RWpCeWtDQTtBQUNGO0FrQi9qQ0k7RUM5QkU7SUFDRSxhQUFBO0lBQ0EsWUFBQTtJQUNBLGVBQUE7RW5CZ21DTjs7RW1COWxDSTtJQUNFLGNBQUE7SUFDQSxXQUFBO0lBQ0EsZUFBQTtFbkJpbUNOOztFbUI3bENNO0lGRk4sdUJBQUE7SUFJQSx3QkFBQTtFakJnbUNBOztFbUJsbUNNO0lGRk4sd0JBQUE7SUFJQSx5QkFBQTtFakJxbUNBOztFbUJ2bUNNO0lGRk4sYUFBQTtJQUlBLGNBQUE7RWpCMG1DQTs7RW1CNW1DTTtJRkZOLHdCQUFBO0lBSUEseUJBQUE7RWpCK21DQTs7RW1Cam5DTTtJRkZOLHdCQUFBO0lBSUEseUJBQUE7RWpCb25DQTs7RW1CdG5DTTtJRkZOLGFBQUE7SUFJQSxjQUFBO0VqQnluQ0E7O0VtQjNuQ007SUZGTix3QkFBQTtJQUlBLHlCQUFBO0VqQjhuQ0E7O0VtQmhvQ007SUZGTix3QkFBQTtJQUlBLHlCQUFBO0VqQm1vQ0E7O0VtQnJvQ007SUZGTixhQUFBO0lBSUEsY0FBQTtFakJ3b0NBOztFbUIxb0NNO0lGRk4sd0JBQUE7SUFJQSx5QkFBQTtFakI2b0NBOztFbUIvb0NNO0lGRk4sd0JBQUE7SUFJQSx5QkFBQTtFakJrcENBOztFbUJwcENNO0lGRk4sY0FBQTtJQUlBLGVBQUE7RWpCdXBDQTs7RW1CcHBDSTtJQUF3QixTQUFBO0VuQndwQzVCOztFbUJ0cENJO0lBQXVCLFNBQUE7RW5CMHBDM0I7O0VtQnZwQ007SUFBd0IsUUFEYjtFbkI0cENqQjs7RW1CM3BDTTtJQUF3QixRQURiO0VuQmdxQ2pCOztFbUIvcENNO0lBQXdCLFFBRGI7RW5Cb3FDakI7O0VtQm5xQ007SUFBd0IsUUFEYjtFbkJ3cUNqQjs7RW1CdnFDTTtJQUF3QixRQURiO0VuQjRxQ2pCOztFbUIzcUNNO0lBQXdCLFFBRGI7RW5CZ3JDakI7O0VtQi9xQ007SUFBd0IsUUFEYjtFbkJvckNqQjs7RW1CbnJDTTtJQUF3QixRQURiO0VuQndyQ2pCOztFbUJ2ckNNO0lBQXdCLFFBRGI7RW5CNHJDakI7O0VtQjNyQ007SUFBd0IsUUFEYjtFbkJnc0NqQjs7RW1CL3JDTTtJQUF3QixTQURiO0VuQm9zQ2pCOztFbUJuc0NNO0lBQXdCLFNBRGI7RW5Cd3NDakI7O0VtQnZzQ007SUFBd0IsU0FEYjtFbkI0c0NqQjs7RW1CcnNDUTtJRlRSLGNBQUE7RWpCa3RDQTs7RW1CenNDUTtJRlRSLDBCQUFBO0VqQnN0Q0E7O0VtQjdzQ1E7SUZUUiwyQkFBQTtFakIwdENBOztFbUJqdENRO0lGVFIsZ0JBQUE7RWpCOHRDQTs7RW1CcnRDUTtJRlRSLDJCQUFBO0VqQmt1Q0E7O0VtQnp0Q1E7SUZUUiwyQkFBQTtFakJzdUNBOztFbUI3dENRO0lGVFIsZ0JBQUE7RWpCMHVDQTs7RW1CanVDUTtJRlRSLDJCQUFBO0VqQjh1Q0E7O0VtQnJ1Q1E7SUZUUiwyQkFBQTtFakJrdkNBOztFbUJ6dUNRO0lGVFIsZ0JBQUE7RWpCc3ZDQTs7RW1CN3VDUTtJRlRSLDJCQUFBO0VqQjB2Q0E7O0VtQmp2Q1E7SUZUUiwyQkFBQTtFakI4dkNBO0FBQ0Y7QWtCcHZDSTtFQzlCRTtJQUNFLGFBQUE7SUFDQSxZQUFBO0lBQ0EsZUFBQTtFbkJxeENOOztFbUJueENJO0lBQ0UsY0FBQTtJQUNBLFdBQUE7SUFDQSxlQUFBO0VuQnN4Q047O0VtQmx4Q007SUZGTix1QkFBQTtJQUlBLHdCQUFBO0VqQnF4Q0E7O0VtQnZ4Q007SUZGTix3QkFBQTtJQUlBLHlCQUFBO0VqQjB4Q0E7O0VtQjV4Q007SUZGTixhQUFBO0lBSUEsY0FBQTtFakIreENBOztFbUJqeUNNO0lGRk4sd0JBQUE7SUFJQSx5QkFBQTtFakJveUNBOztFbUJ0eUNNO0lGRk4sd0JBQUE7SUFJQSx5QkFBQTtFakJ5eUNBOztFbUIzeUNNO0lGRk4sYUFBQTtJQUlBLGNBQUE7RWpCOHlDQTs7RW1CaHpDTTtJRkZOLHdCQUFBO0lBSUEseUJBQUE7RWpCbXpDQTs7RW1CcnpDTTtJRkZOLHdCQUFBO0lBSUEseUJBQUE7RWpCd3pDQTs7RW1CMXpDTTtJRkZOLGFBQUE7SUFJQSxjQUFBO0VqQjZ6Q0E7O0VtQi96Q007SUZGTix3QkFBQTtJQUlBLHlCQUFBO0VqQmswQ0E7O0VtQnAwQ007SUZGTix3QkFBQTtJQUlBLHlCQUFBO0VqQnUwQ0E7O0VtQnowQ007SUZGTixjQUFBO0lBSUEsZUFBQTtFakI0MENBOztFbUJ6MENJO0lBQXdCLFNBQUE7RW5CNjBDNUI7O0VtQjMwQ0k7SUFBdUIsU0FBQTtFbkIrMEMzQjs7RW1CNTBDTTtJQUF3QixRQURiO0VuQmkxQ2pCOztFbUJoMUNNO0lBQXdCLFFBRGI7RW5CcTFDakI7O0VtQnAxQ007SUFBd0IsUUFEYjtFbkJ5MUNqQjs7RW1CeDFDTTtJQUF3QixRQURiO0VuQjYxQ2pCOztFbUI1MUNNO0lBQXdCLFFBRGI7RW5CaTJDakI7O0VtQmgyQ007SUFBd0IsUUFEYjtFbkJxMkNqQjs7RW1CcDJDTTtJQUF3QixRQURiO0VuQnkyQ2pCOztFbUJ4MkNNO0lBQXdCLFFBRGI7RW5CNjJDakI7O0VtQjUyQ007SUFBd0IsUUFEYjtFbkJpM0NqQjs7RW1CaDNDTTtJQUF3QixRQURiO0VuQnEzQ2pCOztFbUJwM0NNO0lBQXdCLFNBRGI7RW5CeTNDakI7O0VtQngzQ007SUFBd0IsU0FEYjtFbkI2M0NqQjs7RW1CNTNDTTtJQUF3QixTQURiO0VuQmk0Q2pCOztFbUIxM0NRO0lGVFIsY0FBQTtFakJ1NENBOztFbUI5M0NRO0lGVFIsMEJBQUE7RWpCMjRDQTs7RW1CbDRDUTtJRlRSLDJCQUFBO0VqQis0Q0E7O0VtQnQ0Q1E7SUZUUixnQkFBQTtFakJtNUNBOztFbUIxNENRO0lGVFIsMkJBQUE7RWpCdTVDQTs7RW1COTRDUTtJRlRSLDJCQUFBO0VqQjI1Q0E7O0VtQmw1Q1E7SUZUUixnQkFBQTtFakIrNUNBOztFbUJ0NUNRO0lGVFIsMkJBQUE7RWpCbTZDQTs7RW1CMTVDUTtJRlRSLDJCQUFBO0VqQnU2Q0E7O0VtQjk1Q1E7SUZUUixnQkFBQTtFakIyNkNBOztFbUJsNkNRO0lGVFIsMkJBQUE7RWpCKzZDQTs7RW1CdDZDUTtJRlRSLDJCQUFBO0VqQm03Q0E7QUFDRjtBb0JqK0NBO0VBQ0UsV0FBQTtFQUNBLG1CZjJITztFZTFIUCxjYk1VO0FQNjlDWjtBb0JoK0NFOztFQUVFLGdCZjhVMEI7RWU3VTFCLG1CQUFBO0VBQ0EsNkJBQUE7QXBCaytDSjtBb0IvOUNFO0VBQ0Usc0JBQUE7RUFDQSxnQ0FBQTtBcEJpK0NKO0FvQjk5Q0U7RUFDRSw2QkFBQTtBcEJnK0NKO0FvQnQ5Q0U7O0VBRUUsZWZ3VDBCO0FMaXFDOUI7QW9CaDlDQTtFQUNFLHlCQUFBO0FwQm05Q0Y7QW9CajlDRTs7RUFFRSx5QkFBQTtBcEJtOUNKO0FvQi84Q0k7O0VBRUUsd0JBQUE7QXBCaTlDTjtBb0IzOENFOzs7O0VBSUUsU0FBQTtBcEI4OENKO0FvQnI4Q0U7RUFDRSxxQ2ZvUjBCO0FMb3JDOUI7QVN2Z0RFO0VXMkVJLGNiMUVNO0VhMkVOLHNDZnlRd0I7QUx1ckM5QjtBcUJsaERJOzs7RUFHRSx5QkQyRitCO0FwQjA3Q3JDO0FxQmpoRE07Ozs7RUFJRSxxQkRtRnlFO0FwQmc4Q2pGO0FTeGhERTtFWWlCTSx5QkFKZTtBckIrZ0R2QjtBcUJ6Z0RROztFQUVFLHlCQVJhO0FyQm1oRHZCO0FxQnRpREk7OztFQUdFLHlCRDJGK0I7QXBCODhDckM7QXFCcmlETTs7OztFQUlFLHFCRG1GeUU7QXBCbzlDakY7QVM1aURFO0VZaUJNLHlCQUplO0FyQm1pRHZCO0FxQjdoRFE7O0VBRUUseUJBUmE7QXJCdWlEdkI7QXFCMWpESTs7O0VBR0UseUJEMkYrQjtBcEJrK0NyQztBcUJ6akRNOzs7O0VBSUUscUJEbUZ5RTtBcEJ3K0NqRjtBU2hrREU7RVlpQk0seUJBSmU7QXJCdWpEdkI7QXFCampEUTs7RUFFRSx5QkFSYTtBckIyakR2QjtBcUI5a0RJOzs7RUFHRSx5QkQyRitCO0FwQnMvQ3JDO0FxQjdrRE07Ozs7RUFJRSxxQkRtRnlFO0FwQjQvQ2pGO0FTcGxERTtFWWlCTSx5QkFKZTtBckIya0R2QjtBcUJya0RROztFQUVFLHlCQVJhO0FyQitrRHZCO0FxQmxtREk7OztFQUdFLHlCRDJGK0I7QXBCMGdEckM7QXFCam1ETTs7OztFQUlFLHFCRG1GeUU7QXBCZ2hEakY7QVN4bURFO0VZaUJNLHlCQUplO0FyQitsRHZCO0FxQnpsRFE7O0VBRUUseUJBUmE7QXJCbW1EdkI7QXFCdG5ESTs7O0VBR0UseUJEMkYrQjtBcEI4aERyQztBcUJybkRNOzs7O0VBSUUscUJEbUZ5RTtBcEJvaURqRjtBUzVuREU7RVlpQk0seUJBSmU7QXJCbW5EdkI7QXFCN21EUTs7RUFFRSx5QkFSYTtBckJ1bkR2QjtBcUIxb0RJOzs7RUFHRSx5QkQyRitCO0FwQmtqRHJDO0FxQnpvRE07Ozs7RUFJRSxxQkRtRnlFO0FwQndqRGpGO0FTaHBERTtFWWlCTSx5QkFKZTtBckJ1b0R2QjtBcUJqb0RROztFQUVFLHlCQVJhO0FyQjJvRHZCO0FxQjlwREk7OztFQUdFLHlCRDJGK0I7QXBCc2tEckM7QXFCN3BETTs7OztFQUlFLHFCRG1GeUU7QXBCNGtEakY7QVNwcURFO0VZaUJNLHlCQUplO0FyQjJwRHZCO0FxQnJwRFE7O0VBRUUseUJBUmE7QXJCK3BEdkI7QXFCbHJESTs7O0VBR0Usc0NoQndWd0I7QUw2MUM5QjtBU2xyREU7RVlpQk0sc0NBSmU7QXJCeXFEdkI7QXFCbnFEUTs7RUFFRSxzQ0FSYTtBckI2cUR2QjtBb0JybERJO0VBQ0UsV2IvR007RWFnSE4seUJidkdNO0Vhd0dOLHFCZjJQd0I7QUw2MUM5QjtBb0JubERJO0VBQ0UsY2IvR007RWFnSE4seUJickhNO0Vhc0hOLHFCYnJITTtBUDBzRFo7QW9CaGxEQTtFQUNFLFdiL0hVO0VhZ0lWLHlCYnZIVTtBUDBzRFo7QW9CamxERTs7O0VBR0UscUJmdU8wQjtBTDQyQzlCO0FvQmhsREU7RUFDRSxTQUFBO0FwQmtsREo7QW9COWtESTtFQUNFLDJDZjJOd0I7QUxxM0M5QjtBU3J0REU7RVc0SU0sV2JySkk7RWFzSkosNENmcU5zQjtBTHUzQzlCO0FrQjVwREk7RUVpR0E7SUFFSSxjQUFBO0lBQ0EsV0FBQTtJQUNBLGdCQUFBO0lBQ0EsaUNBQUE7RXBCOGpETjtFb0IzakRNO0lBQ0UsU0FBQTtFcEI2akRSO0FBQ0Y7QWtCeHFESTtFRWlHQTtJQUVJLGNBQUE7SUFDQSxXQUFBO0lBQ0EsZ0JBQUE7SUFDQSxpQ0FBQTtFcEJ5a0ROO0VvQnRrRE07SUFDRSxTQUFBO0VwQndrRFI7QUFDRjtBa0JuckRJO0VFaUdBO0lBRUksY0FBQTtJQUNBLFdBQUE7SUFDQSxnQkFBQTtJQUNBLGlDQUFBO0VwQm9sRE47RW9CamxETTtJQUNFLFNBQUE7RXBCbWxEUjtBQUNGO0FrQjlyREk7RUVpR0E7SUFFSSxjQUFBO0lBQ0EsV0FBQTtJQUNBLGdCQUFBO0lBQ0EsaUNBQUE7RXBCK2xETjtFb0I1bERNO0lBQ0UsU0FBQTtFcEI4bERSO0FBQ0Y7QW9CeG1ESTtFQUVJLGNBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQ0FBQTtBcEJ5bURSO0FvQnRtRFE7RUFDRSxTQUFBO0FwQndtRFY7QXNCcnhEQTtFQUNFLGNBQUE7RUFDQSxXQUFBO0VBQ0EsbUNqQnFlc0M7RWlCcGV0Qyx5QkFBQTtFaEJxSEksbUJBdENhO0VnQjVFakIsZ0JqQjhRNEI7RWlCN1E1QixnQmpCa1I0QjtFaUJqUjVCLGNmSlU7RWVLVixzQmZiVTtFZWNWLDRCQUFBO0VBQ0EseUJBQUE7RVJiRSxzQlRxTzBCO0VrQnBPeEIsd0VEa0JKO0F0Qm14REY7QXVCaHlESTtFRExKO0lDTU0sZ0JBQUE7RXZCbXlESjtBQUNGO0FzQnJ4REU7RUFDRSw2QkFBQTtFQUNBLFNBQUE7QXRCdXhESjtBd0J2eURFO0VBQ0UsY2pCSFE7RWlCSVIsc0JqQlpRO0VpQmFSLHFCbkJnZG9DO0VtQi9jcEMsVUFBQTtFQUtFLGlEbkJnWHdCO0FMcTdDOUI7QXNCdnhERTtFQUNFLGNmM0JRO0VlNkJSLFVBQUE7QXRCd3hESjtBc0IzeERFO0VBQ0UsY2YzQlE7RWU2QlIsVUFBQTtBdEJ3eERKO0FzQjN4REU7RUFDRSxjZjNCUTtFZTZCUixVQUFBO0F0Qnd4REo7QXNCaHhERTtFQUVFLHlCZjNDUTtFZTZDUixVQUFBO0F0Qmd4REo7QXNCM3dERTtFQU1FLGNmbkRRO0Vlb0RSLHNCZjVEUTtBUHEwRFo7QXNCcHdEQTs7RUFFRSxjQUFBO0VBQ0EsV0FBQTtBdEJ1d0RGO0FzQjd2REE7RUFDRSxpQ0FBQTtFQUNBLG9DQUFBO0VBQ0EsZ0JBQUE7RWhCWkUsa0JBQUE7RWdCY0YsZ0JqQjBNNEI7QUxzakQ5QjtBc0I3dkRBO0VBQ0UsK0JBQUE7RUFDQSxrQ0FBQTtFaEJvQ0kscUJBdENhO0VnQklqQixnQmpCdUk0QjtBTHluRDlCO0FzQjd2REE7RUFDRSxnQ0FBQTtFQUNBLG1DQUFBO0VoQjZCSSxzQkF0Q2E7RWdCV2pCLGdCakJpSTRCO0FMK25EOUI7QXNCdnZEQTtFQUNFLGNBQUE7RUFDQSxXQUFBO0VBQ0EscUJqQjhRNEI7RWlCN1E1Qix3QmpCNlE0QjtFaUI1UTVCLGdCQUFBO0VBQ0EsZ0JqQjZLNEI7RWlCNUs1QixjZnZHVTtFZXdHViw2QkFBQTtFQUNBLHlCQUFBO0VBQ0EsbUJBQUE7QXRCMHZERjtBc0J4dkRFO0VBRUUsZ0JBQUE7RUFDQSxlQUFBO0F0Qnl2REo7QXNCN3VEQTtFQUNFLGtDakJzV3NDO0VpQnJXdEMsdUJBQUE7RWhCWEksc0JBdENhO0VnQm1EakIsZ0JqQnlGNEI7RVNoTzFCLHFCVHVPMEI7QUxpcEQ5QjtBc0I3dURBO0VBQ0UsZ0NqQitWc0M7RWlCOVZ0QyxvQkFBQTtFaEJuQkkscUJBdENhO0VnQjJEakIsZ0JqQmdGNEI7RVMvTjFCLHFCVHNPMEI7QUwwcEQ5QjtBc0IzdURFO0VBRUUsWUFBQTtBdEI2dURKO0FzQnp1REE7RUFDRSxZQUFBO0F0QjR1REY7QXNCcHVEQTtFQUNFLG1CakJvVnNDO0FMbTVDeEM7QXNCcHVEQTtFQUNFLGNBQUE7RUFDQSxtQmpCcVVzQztBTGs2Q3hDO0FzQi90REE7RUFDRSxhQUFBO0VBQ0EsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7QXRCa3VERjtBc0JodURFOztFQUVFLGtCQUFBO0VBQ0EsaUJBQUE7QXRCa3VESjtBc0J6dERBO0VBQ0Usa0JBQUE7RUFDQSxjQUFBO0VBQ0EscUJqQjBTc0M7QUxrN0N4QztBc0J6dERBO0VBQ0Usa0JBQUE7RUFDQSxrQmpCc1NzQztFaUJyU3RDLHFCQUFBO0F0QjR0REY7QXNCMXRERTtFQUNFLGNmM01RO0FQdTZEWjtBc0J4dERBO0VBQ0UsZ0JBQUE7QXRCMnRERjtBc0J4dERBO0VBQ0Usb0JBQUE7RUFDQSxtQkFBQTtFQUNBLGVBQUE7RUFDQSxxQmpCeVJzQztBTGs4Q3hDO0FzQnh0REU7RUFDRSxnQkFBQTtFQUNBLGFBQUE7RUFDQSx1QmpCb1JvQztFaUJuUnBDLGNBQUE7QXRCMHRESjtBd0JyNkRFO0VBQ0UsYUFBQTtFQUNBLFdBQUE7RUFDQSxtQm5Cb2RvQztFQzVhcEMsY0FBQTtFa0J0Q0EsY0ZtTnFDO0F0QnF0RHpDO0F3QnI2REU7RUFDRSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0EsYUFBQTtFQUNBLGVBQUE7RUFDQSx1QkFBQTtFQUNBLGtCQUFBO0VsQm1GRSxzQkF0Q2E7RWtCM0NmLGdCbkJrUDBCO0VtQmpQMUIsV0FBQTtFQUNBLHlDQUFBO0VWM0NBLHNCVHFPMEI7QUwrdUQ5QjtBd0JwNkRJO0VBRUUscUJGOExtQztFRTNMakMsb0NuQmdiZ0M7RW1CL2FoQyw0UEYwTHdEO0VFekx4RCw0QkFBQTtFQUNBLDJEQUFBO0VBQ0EsZ0VBQUE7QXhCbzZEUjtBd0JqNkRNO0VBQ0UscUJGbUxpQztFRWxMakMsaURBQUE7QXhCbTZEUjtBd0JoNkRNOzs7RUFFRSxjQUFBO0F4Qm02RFI7QXdCNTVESTtFQUdJLG9DbkJ3WmdDO0VtQnZaaEMsa0ZBQUE7QXhCNjVEUjtBd0J2NURJO0VBRUUscUJGMEptQztFRXZKakMsc0RuQnFlb0M7RW1CcGVwQyw2Z0JBQUE7QXhCdTVEUjtBd0JwNURNO0VBQ0UscUJGa0ppQztFRWpKakMsaURBQUE7QXhCczVEUjtBd0JuNURNOzs7RUFFRSxjQUFBO0F4QnM1RFI7QXdCNzRETTs7O0VBRUUsY0FBQTtBeEJpNURSO0F3Qno0RE07RUFDRSxjRndIaUM7QXRCb3hEekM7QXdCejRETTs7O0VBRUUsY0FBQTtBeEI0NERSO0F3QnA0RE07RUFDRSxjRjBHaUM7QXRCNnhEekM7QXdCcjREUTtFQUNFLHFCRnVHK0I7QXRCZ3lEekM7QXdCbjRETTs7O0VBRUUsY0FBQTtBeEJzNERSO0F3Qmw0RFE7RUFDRSxxQkFBQTtFQ25KTix5QkRvSjJCO0F4Qm80RC9CO0F3Qi8zRFE7RUFDRSxpREFBQTtBeEJpNERWO0F3QjkzRFE7RUFDRSxxQkFWcUI7QXhCMDREL0I7QXdCdDNETTtFQUNFLHFCQXJCdUI7QXhCODREL0I7QXdCdDNETTs7O0VBRUUsY0FBQTtBeEJ5M0RSO0F3QnIzRFE7RUFDRSxxQkEvQnFCO0VBZ0NyQixpREFBQTtBeEJ1M0RWO0F3QnBoRUU7RUFDRSxhQUFBO0VBQ0EsV0FBQTtFQUNBLG1CbkJvZG9DO0VDNWFwQyxjQUFBO0VrQnRDQSxjRm1OcUM7QXRCbzBEekM7QXdCcGhFRTtFQUNFLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7RUFDQSxhQUFBO0VBQ0EsZUFBQTtFQUNBLHVCQUFBO0VBQ0Esa0JBQUE7RWxCbUZFLHNCQXRDYTtFa0IzQ2YsZ0JuQmtQMEI7RW1CalAxQixXQUFBO0VBQ0EsMENBQUE7RVYzQ0Esc0JUcU8wQjtBTDgxRDlCO0F3Qm5oRUk7RUFFRSxxQkY4TG1DO0VFM0xqQyxvQ25CZ2JnQztFbUIvYWhDLHNTRjBMd0Q7RUV6THhELDRCQUFBO0VBQ0EsMkRBQUE7RUFDQSxnRUFBQTtBeEJtaEVSO0F3QmhoRU07RUFDRSxxQkZtTGlDO0VFbExqQyxrREFBQTtBeEJraEVSO0F3Qi9nRU07OztFQUVFLGNBQUE7QXhCa2hFUjtBd0IzZ0VJO0VBR0ksb0NuQndaZ0M7RW1CdlpoQyxrRkFBQTtBeEI0Z0VSO0F3QnRnRUk7RUFFRSxxQkYwSm1DO0VFdkpqQyxzRG5CcWVvQztFbUJwZXBDLHVqQkFBQTtBeEJzZ0VSO0F3Qm5nRU07RUFDRSxxQkZrSmlDO0VFakpqQyxrREFBQTtBeEJxZ0VSO0F3QmxnRU07OztFQUVFLGNBQUE7QXhCcWdFUjtBd0I1L0RNOzs7RUFFRSxjQUFBO0F4QmdnRVI7QXdCeC9ETTtFQUNFLGNGd0hpQztBdEJtNER6QztBd0J4L0RNOzs7RUFFRSxjQUFBO0F4QjIvRFI7QXdCbi9ETTtFQUNFLGNGMEdpQztBdEI0NER6QztBd0JwL0RRO0VBQ0UscUJGdUcrQjtBdEIrNER6QztBd0JsL0RNOzs7RUFFRSxjQUFBO0F4QnEvRFI7QXdCai9EUTtFQUNFLHFCQUFBO0VDbkpOLHlCRG9KMkI7QXhCbS9EL0I7QXdCOStEUTtFQUNFLGtEQUFBO0F4QmcvRFY7QXdCNytEUTtFQUNFLHFCQVZxQjtBeEJ5L0QvQjtBd0JyK0RNO0VBQ0UscUJBckJ1QjtBeEI2L0QvQjtBd0JyK0RNOzs7RUFFRSxjQUFBO0F4QncrRFI7QXdCcCtEUTtFQUNFLHFCQS9CcUI7RUFnQ3JCLGtEQUFBO0F4QnMrRFY7QXNCLzVEQTtFQUNFLGFBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0F0Qms2REY7QXNCNzVERTtFQUNFLFdBQUE7QXRCKzVESjtBa0I3bUVJO0VJbU5BO0lBQ0UsYUFBQTtJQUNBLG1CQUFBO0lBQ0EsdUJBQUE7SUFDQSxnQkFBQTtFdEI2NURKO0VzQno1REU7SUFDRSxhQUFBO0lBQ0EsY0FBQTtJQUNBLG1CQUFBO0lBQ0EsbUJBQUE7SUFDQSxnQkFBQTtFdEIyNURKO0VzQnY1REU7SUFDRSxxQkFBQTtJQUNBLFdBQUE7SUFDQSxzQkFBQTtFdEJ5NURKO0VzQnI1REU7SUFDRSxxQkFBQTtFdEJ1NURKO0VzQnA1REU7O0lBRUUsV0FBQTtFdEJzNURKO0VzQmo1REU7SUFDRSxhQUFBO0lBQ0EsbUJBQUE7SUFDQSx1QkFBQTtJQUNBLFdBQUE7SUFDQSxlQUFBO0V0Qm01REo7RXNCajVERTtJQUNFLGtCQUFBO0lBQ0EsY0FBQTtJQUNBLGFBQUE7SUFDQSxxQmpCMkxrQztJaUIxTGxDLGNBQUE7RXRCbTVESjtFc0JoNURFO0lBQ0UsbUJBQUE7SUFDQSx1QkFBQTtFdEJrNURKO0VzQmg1REU7SUFDRSxnQkFBQTtFdEJrNURKO0FBQ0Y7QTBCbnRFQTtFQUNFLHFCQUFBO0VBRUEsZ0JyQmtSNEI7RXFCalI1QixjbkJHVTtFbUJGVixrQkFBQTtFQUNBLHNCQUFBO0VBQ0EseUJBQUE7S0FBQSxzQkFBQTtNQUFBLHFCQUFBO1VBQUEsaUJBQUE7RUFDQSw2QkFBQTtFQUNBLDZCQUFBO0VDc0ZBLHlCQUFBO0VyQjBCSSxtQkF0Q2E7RXFCY2pCLGdCdEJ5TDRCO0VTM1IxQixzQlRxTzBCO0VrQnBPeEIscUlHV0o7QTFCd3RFRjtBdUI5dEVJO0VHTEo7SUhNTSxnQkFBQTtFdkJpdUVKO0FBQ0Y7QVNsdUVFO0VpQlFFLGNuQlBRO0VtQlFSLHFCQUFBO0ExQjZ0RUo7QTBCMXRFRTtFQUVFLFVBQUE7RUFDQSxpRHJCMlcwQjtBTGczRDlCO0EwQnZ0RUU7RUFFRSxhckI4WTBCO0FMMDBEOUI7QTBCenNFQTs7RUFFRSxvQkFBQTtBMUIyc0VGO0EwQmxzRUU7RUNyREEsV0FBQTtFRkFFLHlCcEJ5RVc7RXNCdkViLHFCdEJ1RWE7QUxvckVmO0FTdnZFRTtFa0JBRSxXQUFBO0VGTkEseUJFRDJEO0VBUzNELHFCQVRxRztBM0Jtd0V6RztBMkJ2dkVFO0VBTUksZ0RBQUE7QTNCb3ZFTjtBMkIvdUVFO0VBRUUsV0FBQTtFQUNBLHlCdEJnRFc7RXNCL0NYLHFCdEIrQ1c7QUxpc0VmO0EyQnp1RUU7RUFHRSxXQUFBO0VBQ0EseUJBdEMrSTtFQTBDL0kscUJBMUN5TDtBM0JneEU3TDtBMkJwdUVJO0VBS0ksZ0RBQUE7QTNCa3VFUjtBMEI3dEVFO0VDckRBLGNBQUE7RUZBRSx5QnBCeUVXO0VzQnZFYixxQnRCdUVhO0FMK3NFZjtBU2x4RUU7RWtCQUUsY0FBQTtFRk5BLHlCRUQyRDtFQVMzRCxxQkFUcUc7QTNCOHhFekc7QTJCbHhFRTtFQU1JLGlEQUFBO0EzQit3RU47QTJCMXdFRTtFQUVFLGNBQUE7RUFDQSx5QnRCZ0RXO0VzQi9DWCxxQnRCK0NXO0FMNHRFZjtBMkJwd0VFO0VBR0UsY0FBQTtFQUNBLHlCQXRDK0k7RUEwQy9JLHFCQTFDeUw7QTNCMnlFN0w7QTJCL3ZFSTtFQUtJLGlEQUFBO0EzQjZ2RVI7QTBCeHZFRTtFQ3JEQSxXQUFBO0VGQUUseUJwQnlFVztFc0J2RWIscUJ0QnVFYTtBTDB1RWY7QVM3eUVFO0VrQkFFLFdBQUE7RUZOQSx5QkVEMkQ7RUFTM0QscUJBVHFHO0EzQnl6RXpHO0EyQjd5RUU7RUFNSSxpREFBQTtBM0IweUVOO0EyQnJ5RUU7RUFFRSxXQUFBO0VBQ0EseUJ0QmdEVztFc0IvQ1gscUJ0QitDVztBTHV2RWY7QTJCL3hFRTtFQUdFLFdBQUE7RUFDQSx5QkF0QytJO0VBMEMvSSxxQkExQ3lMO0EzQnMwRTdMO0EyQjF4RUk7RUFLSSxpREFBQTtBM0J3eEVSO0EwQm54RUU7RUNyREEsY0FBQTtFRkFFLHlCcEJ5RVc7RXNCdkViLHFCdEJ1RWE7QUxxd0VmO0FTeDBFRTtFa0JBRSxjQUFBO0VGTkEseUJFRDJEO0VBUzNELHFCQVRxRztBM0JvMUV6RztBMkJ4MEVFO0VBTUksZ0RBQUE7QTNCcTBFTjtBMkJoMEVFO0VBRUUsY0FBQTtFQUNBLHlCdEJnRFc7RXNCL0NYLHFCdEIrQ1c7QUxreEVmO0EyQjF6RUU7RUFHRSxXQUFBO0VBQ0EseUJBdEMrSTtFQTBDL0kscUJBMUN5TDtBM0JpMkU3TDtBMkJyekVJO0VBS0ksZ0RBQUE7QTNCbXpFUjtBMEI5eUVFO0VDckRBLGNBQUE7RUZBRSx5QnBCeUVXO0VzQnZFYixxQnRCdUVhO0FMZ3lFZjtBU24yRUU7RWtCQUUsY0FBQTtFRk5BLHlCRUQyRDtFQVMzRCxxQkFUcUc7QTNCKzJFekc7QTJCbjJFRTtFQU1JLGdEQUFBO0EzQmcyRU47QTJCMzFFRTtFQUVFLGNBQUE7RUFDQSx5QnRCZ0RXO0VzQi9DWCxxQnRCK0NXO0FMNnlFZjtBMkJyMUVFO0VBR0UsY0FBQTtFQUNBLHlCQXRDK0k7RUEwQy9JLHFCQTFDeUw7QTNCNDNFN0w7QTJCaDFFSTtFQUtJLGdEQUFBO0EzQjgwRVI7QTBCejBFRTtFQ3JEQSxXQUFBO0VGQUUseUJwQnlFVztFc0J2RWIscUJ0QnVFYTtBTDJ6RWY7QVM5M0VFO0VrQkFFLFdBQUE7RUZOQSx5QkVEMkQ7RUFTM0QscUJBVHFHO0EzQjA0RXpHO0EyQjkzRUU7RUFNSSxpREFBQTtBM0IyM0VOO0EyQnQzRUU7RUFFRSxXQUFBO0VBQ0EseUJ0QmdEVztFc0IvQ1gscUJ0QitDVztBTHcwRWY7QTJCaDNFRTtFQUdFLFdBQUE7RUFDQSx5QkF0QytJO0VBMEMvSSxxQkExQ3lMO0EzQnU1RTdMO0EyQjMyRUk7RUFLSSxpREFBQTtBM0J5MkVSO0EwQnAyRUU7RUNyREEsY0FBQTtFRkFFLHlCcEJ5RVc7RXNCdkViLHFCdEJ1RWE7QUxzMUVmO0FTejVFRTtFa0JBRSxjQUFBO0VGTkEseUJFRDJEO0VBUzNELHFCQVRxRztBM0JxNkV6RztBMkJ6NUVFO0VBTUksaURBQUE7QTNCczVFTjtBMkJqNUVFO0VBRUUsY0FBQTtFQUNBLHlCdEJnRFc7RXNCL0NYLHFCdEIrQ1c7QUxtMkVmO0EyQjM0RUU7RUFHRSxjQUFBO0VBQ0EseUJBdEMrSTtFQTBDL0kscUJBMUN5TDtBM0JrN0U3TDtBMkJ0NEVJO0VBS0ksaURBQUE7QTNCbzRFUjtBMEIvM0VFO0VDckRBLFdBQUE7RUZBRSx5QnBCeUVXO0VzQnZFYixxQnRCdUVhO0FMaTNFZjtBU3A3RUU7RWtCQUUsV0FBQTtFRk5BLHlCRUQyRDtFQVMzRCxxQkFUcUc7QTNCZzhFekc7QTJCcDdFRTtFQU1JLDhDQUFBO0EzQmk3RU47QTJCNTZFRTtFQUVFLFdBQUE7RUFDQSx5QnRCZ0RXO0VzQi9DWCxxQnRCK0NXO0FMODNFZjtBMkJ0NkVFO0VBR0UsV0FBQTtFQUNBLHlCQXRDK0k7RUEwQy9JLHFCQTFDeUw7QTNCNjhFN0w7QTJCajZFSTtFQUtJLDhDQUFBO0EzQis1RVI7QTBCcDVFRTtFQ0pBLGN0QmtCYTtFc0JqQmIscUJ0QmlCYTtBTDI0RWY7QVM5OEVFO0VrQnFERSxXQUxnRDtFQU1oRCx5QnRCYVc7RXNCWlgscUJ0QllXO0FMZzVFZjtBMkJ6NUVFO0VBRUUsZ0RBQUE7QTNCMDVFSjtBMkJ2NUVFO0VBRUUsY3RCRVc7RXNCRFgsNkJBQUE7QTNCdzVFSjtBMkJyNUVFO0VBR0UsV0FBQTtFQUNBLHlCdEJOVztFc0JPWCxxQnRCUFc7QUw0NUVmO0EyQm41RUk7RUFLSSxnREFBQTtBM0JpNUVSO0EwQjc2RUU7RUNKQSxjdEJrQmE7RXNCakJiLHFCdEJpQmE7QUxvNkVmO0FTditFRTtFa0JxREUsY0FMZ0Q7RUFNaEQseUJ0QmFXO0VzQlpYLHFCdEJZVztBTHk2RWY7QTJCbDdFRTtFQUVFLGlEQUFBO0EzQm03RUo7QTJCaDdFRTtFQUVFLGN0QkVXO0VzQkRYLDZCQUFBO0EzQmk3RUo7QTJCOTZFRTtFQUdFLGNBQUE7RUFDQSx5QnRCTlc7RXNCT1gscUJ0QlBXO0FMcTdFZjtBMkI1NkVJO0VBS0ksaURBQUE7QTNCMDZFUjtBMEJ0OEVFO0VDSkEsY3RCa0JhO0VzQmpCYixxQnRCaUJhO0FMNjdFZjtBU2hnRkU7RWtCcURFLFdBTGdEO0VBTWhELHlCdEJhVztFc0JaWCxxQnRCWVc7QUxrOEVmO0EyQjM4RUU7RUFFRSxnREFBQTtBM0I0OEVKO0EyQno4RUU7RUFFRSxjdEJFVztFc0JEWCw2QkFBQTtBM0IwOEVKO0EyQnY4RUU7RUFHRSxXQUFBO0VBQ0EseUJ0Qk5XO0VzQk9YLHFCdEJQVztBTDg4RWY7QTJCcjhFSTtFQUtJLGdEQUFBO0EzQm04RVI7QTBCLzlFRTtFQ0pBLGN0QmtCYTtFc0JqQmIscUJ0QmlCYTtBTHM5RWY7QVN6aEZFO0VrQnFERSxjQUxnRDtFQU1oRCx5QnRCYVc7RXNCWlgscUJ0QllXO0FMMjlFZjtBMkJwK0VFO0VBRUUsZ0RBQUE7QTNCcStFSjtBMkJsK0VFO0VBRUUsY3RCRVc7RXNCRFgsNkJBQUE7QTNCbStFSjtBMkJoK0VFO0VBR0UsY0FBQTtFQUNBLHlCdEJOVztFc0JPWCxxQnRCUFc7QUx1K0VmO0EyQjk5RUk7RUFLSSxnREFBQTtBM0I0OUVSO0EwQngvRUU7RUNKQSxjdEJrQmE7RXNCakJiLHFCdEJpQmE7QUwrK0VmO0FTbGpGRTtFa0JxREUsY0FMZ0Q7RUFNaEQseUJ0QmFXO0VzQlpYLHFCdEJZVztBTG8vRWY7QTJCNy9FRTtFQUVFLCtDQUFBO0EzQjgvRUo7QTJCMy9FRTtFQUVFLGN0QkVXO0VzQkRYLDZCQUFBO0EzQjQvRUo7QTJCei9FRTtFQUdFLGNBQUE7RUFDQSx5QnRCTlc7RXNCT1gscUJ0QlBXO0FMZ2dGZjtBMkJ2L0VJO0VBS0ksK0NBQUE7QTNCcS9FUjtBMEJqaEZFO0VDSkEsY3RCa0JhO0VzQmpCYixxQnRCaUJhO0FMd2dGZjtBUzNrRkU7RWtCcURFLFdBTGdEO0VBTWhELHlCdEJhVztFc0JaWCxxQnRCWVc7QUw2Z0ZmO0EyQnRoRkU7RUFFRSxpREFBQTtBM0J1aEZKO0EyQnBoRkU7RUFFRSxjdEJFVztFc0JEWCw2QkFBQTtBM0JxaEZKO0EyQmxoRkU7RUFHRSxXQUFBO0VBQ0EseUJ0Qk5XO0VzQk9YLHFCdEJQVztBTHloRmY7QTJCaGhGSTtFQUtJLGlEQUFBO0EzQjhnRlI7QTBCMWlGRTtFQ0pBLGN0QmtCYTtFc0JqQmIscUJ0QmlCYTtBTGlpRmY7QVNwbUZFO0VrQnFERSxjQUxnRDtFQU1oRCx5QnRCYVc7RXNCWlgscUJ0QllXO0FMc2lGZjtBMkIvaUZFO0VBRUUsaURBQUE7QTNCZ2pGSjtBMkI3aUZFO0VBRUUsY3RCRVc7RXNCRFgsNkJBQUE7QTNCOGlGSjtBMkIzaUZFO0VBR0UsY0FBQTtFQUNBLHlCdEJOVztFc0JPWCxxQnRCUFc7QUxrakZmO0EyQnppRkk7RUFLSSxpREFBQTtBM0J1aUZSO0EwQm5rRkU7RUNKQSxjdEJrQmE7RXNCakJiLHFCdEJpQmE7QUwwakZmO0FTN25GRTtFa0JxREUsV0FMZ0Q7RUFNaEQseUJ0QmFXO0VzQlpYLHFCdEJZVztBTCtqRmY7QTJCeGtGRTtFQUVFLDhDQUFBO0EzQnlrRko7QTJCdGtGRTtFQUVFLGN0QkVXO0VzQkRYLDZCQUFBO0EzQnVrRko7QTJCcGtGRTtFQUdFLFdBQUE7RUFDQSx5QnRCTlc7RXNCT1gscUJ0QlBXO0FMMmtGZjtBMkJsa0ZJO0VBS0ksOENBQUE7QTNCZ2tGUjtBMEJqbEZBO0VBQ0UsZ0JyQjhNNEI7RXFCN001QixjckI2RndDO0VxQjVGeEMscUJyQjZGd0M7QUx1L0UxQztBU3ZwRkU7RWlCc0VFLGNyQjJGc0M7RXFCMUZ0QywwQnJCMkZzQztBTHkvRTFDO0EwQmpsRkU7RUFFRSwwQnJCc0ZzQztFcUJyRnRDLGdCQUFBO0ExQmtsRko7QTBCL2tGRTtFQUVFLGNuQnBGUTtFbUJxRlIsb0JBQUE7QTFCZ2xGSjtBMEJya0ZBO0VDTEUsb0JBQUE7RXJCMEJJLHFCQXRDYTtFcUJjakIsZ0J0QjZINEI7RVMvTjFCLHFCVHNPMEI7QUwyOEU5QjtBMEJ4a0ZBO0VDVEUsdUJBQUE7RXJCMEJJLHNCQXRDYTtFcUJjakIsZ0J0QjhINEI7RVNoTzFCLHFCVHVPMEI7QUxpOUU5QjtBMEJ0a0ZBO0VBQ0UsY0FBQTtFQUNBLFdBQUE7QTFCeWtGRjtBMEJ0a0ZFO0VBQ0Usa0JyQnVUMEI7QUxpeEU5QjtBMEJoa0ZFOzs7RUFDRSxXQUFBO0ExQnFrRko7QTRCM3NGQTtFTE1NLGdDS0xKO0E1QjhzRkY7QXVCcHNGSTtFS1hKO0lMWU0sZ0JBQUE7RXZCdXNGSjtBQUNGO0E0Qmp0RkU7RUFDRSxVQUFBO0E1Qm10Rko7QTRCOXNGRTtFQUNFLGFBQUE7QTVCaXRGSjtBNEI3c0ZBO0VBQ0Usa0JBQUE7RUFDQSxTQUFBO0VBQ0EsZ0JBQUE7RUxYSSw2QktZSjtBNUJndEZGO0F1QnZ0Rkk7RUtHSjtJTEZNLGdCQUFBO0V2QjB0Rko7QUFDRjtBNkJ0dUZBOzs7O0VBSUUsa0JBQUE7QTdCeXVGRjtBNkJ0dUZBO0VBQ0UsbUJBQUE7QTdCeXVGRjtBOEJydEZJO0VBQ0UscUJBQUE7RUFDQSxvQnpCME53QjtFeUJ6TnhCLHVCekJ3TndCO0V5QnZOeEIsV0FBQTtFQWhDSix1QkFBQTtFQUNBLHFDQUFBO0VBQ0EsZ0JBQUE7RUFDQSxvQ0FBQTtBOUJ3dkZGO0E4Qm5zRkk7RUFDRSxjQUFBO0E5QnFzRk47QTZCL3VGQTtFQUNFLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLE9BQUE7RUFDQSxheEJpcEJrQztFd0JocEJsQyxhQUFBO0VBQ0EsV0FBQTtFQUNBLGdCeEJ1dEJrQztFd0J0dEJsQyxZQUFBO0VBQ0Esb0JBQUE7RXZCc0dJLG1CQXRDYTtFdUI5RGpCLGN0QmRVO0VzQmVWLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxzQnRCM0JVO0VzQjRCViw0QkFBQTtFQUNBLHlCQUFBO0VmM0JFLHNCVHFPMEI7QUx5aUY5QjtBNkIxdUZJO0VBQ0UsV0FBQTtFQUNBLE9BQUE7QTdCNnVGTjtBNkIxdUZJO0VBQ0UsUUFBQTtFQUNBLFVBQUE7QTdCNnVGTjtBa0JqdUZJO0VXbkJBO0lBQ0UsV0FBQTtJQUNBLE9BQUE7RTdCd3ZGSjs7RTZCcnZGRTtJQUNFLFFBQUE7SUFDQSxVQUFBO0U3Qnd2Rko7QUFDRjtBa0I3dUZJO0VXbkJBO0lBQ0UsV0FBQTtJQUNBLE9BQUE7RTdCbXdGSjs7RTZCaHdGRTtJQUNFLFFBQUE7SUFDQSxVQUFBO0U3Qm13Rko7QUFDRjtBa0J4dkZJO0VXbkJBO0lBQ0UsV0FBQTtJQUNBLE9BQUE7RTdCOHdGSjs7RTZCM3dGRTtJQUNFLFFBQUE7SUFDQSxVQUFBO0U3Qjh3Rko7QUFDRjtBa0Jud0ZJO0VXbkJBO0lBQ0UsV0FBQTtJQUNBLE9BQUE7RTdCeXhGSjs7RTZCdHhGRTtJQUNFLFFBQUE7SUFDQSxVQUFBO0U3Qnl4Rko7QUFDRjtBNkJseEZFO0VBQ0UsU0FBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0VBQ0EsdUJ4Qm9yQmdDO0FMZ21FcEM7QThCbnpGSTtFQUNFLHFCQUFBO0VBQ0Esb0J6QjBOd0I7RXlCek54Qix1QnpCd053QjtFeUJ2TnhCLFdBQUE7RUF6QkosYUFBQTtFQUNBLHFDQUFBO0VBQ0EsMEJBQUE7RUFDQSxvQ0FBQTtBOUIrMEZGO0E4Qmp5Rkk7RUFDRSxjQUFBO0E5Qm15Rk47QTZCeHhGRTtFQUNFLE1BQUE7RUFDQSxXQUFBO0VBQ0EsVUFBQTtFQUNBLGFBQUE7RUFDQSxxQnhCc3FCZ0M7QUxxbkVwQztBOEJ4MEZJO0VBQ0UscUJBQUE7RUFDQSxvQnpCME53QjtFeUJ6TnhCLHVCekJ3TndCO0V5QnZOeEIsV0FBQTtFQWxCSixtQ0FBQTtFQUNBLGVBQUE7RUFDQSxzQ0FBQTtFQUNBLHdCQUFBO0E5QjYxRkY7QThCdHpGSTtFQUNFLGNBQUE7QTlCd3pGTjtBNkJueUZJO0VBQ0UsaUJBQUE7QTdCcXlGTjtBNkIveEZFO0VBQ0UsTUFBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0VBQ0EsYUFBQTtFQUNBLHNCeEJxcEJnQztBTDZvRXBDO0E4QmgyRkk7RUFDRSxxQkFBQTtFQUNBLG9CekIwTndCO0V5QnpOeEIsdUJ6QndOd0I7RXlCdk54QixXQUFBO0E5QmsyRk47QThCdjFGTTtFQUNFLGFBQUE7QTlCeTFGUjtBOEJ0MUZNO0VBQ0UscUJBQUE7RUFDQSxxQnpCdU1zQjtFeUJ0TXRCLHVCekJxTXNCO0V5QnBNdEIsV0FBQTtFQTlCTixtQ0FBQTtFQUNBLHlCQUFBO0VBQ0Esc0NBQUE7QTlCdTNGRjtBOEJ0MUZJO0VBQ0UsY0FBQTtBOUJ3MUZOO0E2Qmx6Rkk7RUFDRSxpQkFBQTtBN0JvekZOO0E2QjV5RkU7RUFJRSxXQUFBO0VBQ0EsWUFBQTtBN0I0eUZKO0E2QnZ5RkE7RUU5R0UsU0FBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSw2QkFBQTtBL0J5NUZGO0E2QnZ5RkE7RUFDRSxjQUFBO0VBQ0EsV0FBQTtFQUNBLHVCQUFBO0VBQ0EsV0FBQTtFQUNBLGdCeEI0SjRCO0V3QjNKNUIsY3RCbkhVO0VzQm9IVixtQkFBQTtFQUNBLG1CQUFBO0VBQ0EsNkJBQUE7RUFDQSxTQUFBO0E3QjB5RkY7QTZCcnlGSTtFZjNIQSwyQ1R5dUJnQztFU3h1QmhDLDRDVHd1QmdDO0FMMnJFcEM7QTZCcnlGSTtFZmpIQSwrQ1QydEJnQztFUzF0QmhDLDhDVDB0QmdDO0FMK3JFcEM7QVN0NkZFO0VvQm1JRSxjeEIwbUJnQztFd0J6bUJoQyxxQkFBQTtFSjlJQSx5QmxCRFE7QVBzN0ZaO0E2Qm55RkU7RUFFRSxXdEJ2SlE7RXNCd0pSLHFCQUFBO0VKckpBLHlCcEIrTzBCO0FMMnNGOUI7QTZCanlGRTtFQUVFLGN0QnZKUTtFc0J3SlIsb0JBQUE7RUFDQSw2QkFBQTtBN0JreUZKO0E2QjF4RkE7RUFDRSxjQUFBO0E3QjZ4RkY7QTZCenhGQTtFQUNFLGNBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0V2QnBESSxzQkF0Q2E7RXVCNEZqQixjdEIzS1U7RXNCNEtWLG1CQUFBO0E3QjR4RkY7QTZCeHhGQTtFQUNFLGNBQUE7RUFDQSx1QkFBQTtFQUNBLGN0QmhMVTtBUDI4Rlo7QWdDcjlGQTs7RUFFRSxrQkFBQTtFQUNBLG9CQUFBO0VBQ0Esc0JBQUE7QWhDdzlGRjtBZ0N0OUZFOztFQUNFLGtCQUFBO0VBQ0EsY0FBQTtBaEN5OUZKO0FTeDlGRTs7RXVCSUksVUFBQTtBaEN3OUZOO0FnQ3Q5Rkk7Ozs7RUFHRSxVQUFBO0FoQ3k5Rk47QWdDbjlGQTtFQUNFLGFBQUE7RUFDQSxlQUFBO0VBQ0EsMkJBQUE7QWhDczlGRjtBZ0NwOUZFO0VBQ0UsV0FBQTtBaENzOUZKO0FnQ2g5RkU7O0VBRUUsaUJBQUE7QWhDbTlGSjtBZ0MvOEZFOztFbEJ4QkUsMEJrQjBCNkI7RWxCekI3Qiw2QmtCeUI2QjtBaENrOUZqQztBZ0MvOEZFOztFbEJmRSx5QmtCaUI0QjtFbEJoQjVCLDRCa0JnQjRCO0FoQ2s5RmhDO0FnQ2w4RkE7RUFDRSx3QkFBQTtFQUNBLHVCQUFBO0FoQ3E4RkY7QWdDbjhGRTtFQUdFLGNBQUE7QWhDbThGSjtBZ0NoOEZFO0VBQ0UsZUFBQTtBaENrOEZKO0FnQzk3RkE7RUFDRSx1QkFBQTtFQUNBLHNCQUFBO0FoQ2k4RkY7QWdDOTdGQTtFQUNFLHNCQUFBO0VBQ0EscUJBQUE7QWhDaThGRjtBZ0M3NkZBO0VBQ0Usc0JBQUE7RUFDQSx1QkFBQTtFQUNBLHVCQUFBO0FoQ2c3RkY7QWdDOTZGRTs7RUFFRSxXQUFBO0FoQ2c3Rko7QWdDNzZGRTs7RUFFRSxnQkFBQTtBaEMrNkZKO0FnQzM2RkU7O0VsQmxHRSw2QmtCb0c4QjtFbEJuRzlCLDRCa0JtRzhCO0FoQzg2RmxDO0FnQzM2RkU7O0VsQnJIRSx5QmtCdUgyQjtFbEJ0SDNCLDBCa0JzSDJCO0FoQzg2Ri9CO0FnQzU1RkU7O0VBRUUsZ0JBQUE7QWhDKzVGSjtBZ0M3NUZJOzs7O0VBRUUsa0JBQUE7RUFDQSxzQkFBQTtFQUNBLG9CQUFBO0FoQ2k2Rk47QWlDMWpHQTtFQUNFLGtCQUFBO0VBQ0EsYUFBQTtFQUNBLGVBQUE7RUFDQSxvQkFBQTtFQUNBLFdBQUE7QWpDNmpHRjtBaUMzakdFOzs7O0VBSUUsa0JBQUE7RUFDQSxjQUFBO0VBR0EsU0FBQTtFQUNBLGdCQUFBO0FqQzJqR0o7QWlDempHSTs7Ozs7Ozs7Ozs7O0VBR0UsaUJBQUE7QWpDb2tHTjtBaUMvakdFOzs7RUFHRSxVQUFBO0FqQ2lrR0o7QWlDN2pHRTtFQUNFLFVBQUE7QWpDK2pHSjtBaUMxakdJOztFbkJ4QkEsMEJtQndCa0Q7RW5CdkJsRCw2Qm1CdUJrRDtBakMrakd0RDtBaUM5akdJOztFbkJYQSx5Qm1CV2tEO0VuQlZsRCw0Qm1CVWtEO0FqQ21rR3REO0FpQzlqR0U7RUFDRSxhQUFBO0VBQ0EsbUJBQUE7QWpDZ2tHSjtBaUM5akdJO0VuQmxDQSwwQm1CbUM0RTtFbkJsQzVFLDZCbUJrQzRFO0FqQ2lrR2hGO0FpQ2hrR0k7RW5CdEJBLHlCbUJzQnFFO0VuQnJCckUsNEJtQnFCcUU7QWpDb2tHekU7QWlDempHQTs7RUFFRSxhQUFBO0FqQzRqR0Y7QWlDdmpHRTs7RUFDRSxrQkFBQTtFQUNBLFVBQUE7QWpDMGpHSjtBaUN4akdJOztFQUNFLFVBQUE7QWpDMmpHTjtBaUN2akdFOzs7Ozs7OztFQUlFLGlCQUFBO0FqQzZqR0o7QWlDempHQTtFQUF1QixrQkFBQTtBakM2akd2QjtBaUM1akdBO0VBQXNCLGlCQUFBO0FqQ2drR3RCO0FpQ3hqR0E7RUFDRSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSx5QkFBQTtFQUNBLGdCQUFBO0UzQnNCSSxtQkF0Q2E7RTJCa0JqQixnQjVCZ0w0QjtFNEIvSzVCLGdCNUJvTDRCO0U0Qm5MNUIsYzFCbEdVO0UwQm1HVixrQkFBQTtFQUNBLG1CQUFBO0VBQ0EseUIxQjNHVTtFMEI0R1YseUJBQUE7RW5CNUdFLHNCVHFPMEI7QUxtOEY5QjtBaUN4akdFOztFQUVFLGFBQUE7QWpDMGpHSjtBaUNoakdBOztFQUVFLGdDNUI2V3NDO0FMc3NGeEM7QWlDaGpHQTs7Ozs7O0VBTUUsb0JBQUE7RTNCYkkscUJBdENhO0UyQnFEakIsZ0I1QnNGNEI7RVMvTjFCLHFCVHNPMEI7QUx1OUY5QjtBaUNoakdBOztFQUVFLGtDNUIyVnNDO0FMd3RGeEM7QWlDaGpHQTs7Ozs7O0VBTUUsdUJBQUE7RTNCOUJJLHNCQXRDYTtFMkJzRWpCLGdCNUJzRTRCO0VTaE8xQixxQlR1TzBCO0FMdStGOUI7QWlDaGpHQTs7RUFFRSxzQkFBQTtBakNtakdGO0FpQ3hpR0E7Ozs7OztFbkIzSkksMEJtQmlLMkI7RW5CaEszQiw2Qm1CZ0syQjtBakM0aUcvQjtBaUN6aUdBOzs7Ozs7RW5CdEpJLHlCbUI0SjBCO0VuQjNKMUIsNEJtQjJKMEI7QWpDNmlHOUI7QWtDbnVHQTtFQUNFLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLHFCQUFBO0VBQ0Esb0JBQUE7QWxDc3VHRjtBa0NudUdBO0VBQ0Usb0JBQUE7RUFDQSxrQjdCcWZzQztBTGl2RnhDO0FrQ251R0E7RUFDRSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxVQUFBO0FsQ3N1R0Y7QWtDcHVHRTtFQUNFLFczQnhCUTtFMkJ5QlIscUI3QnlOMEI7RW9CL08xQix5QnBCK08wQjtBTDhnRzlCO0FrQ2x1R0U7RUFLSSxpRDdCZ1d3QjtBTGc0RjlCO0FrQzV0R0U7RUFDRSxxQjdCcWJvQztBTHl5RnhDO0FrQzN0R0U7RUFDRSxXM0I1Q1E7RTJCNkNSLHlCN0I4ZTRDO0U2QjdlNUMscUI3QjZlNEM7QUxndkZoRDtBa0N4dEdJO0VBQ0UsYzNCN0NNO0FQdXdHWjtBa0N4dEdNO0VBQ0UseUIzQnBESTtBUDh3R1o7QWtDaHRHQTtFQUNFLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTtBbENtdEdGO0FrQ2h0R0U7RUFDRSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxhQUFBO0VBQ0EsY0FBQTtFQUNBLFc3QjBib0M7RTZCemJwQyxZN0J5Ym9DO0U2QnhicEMsb0JBQUE7RUFDQSxXQUFBO0VBQ0Esc0IzQmhGUTtFMkJpRlIseUJBQUE7QWxDa3RHSjtBa0M3c0dFO0VBQ0Usa0JBQUE7RUFDQSxlQUFBO0VBQ0EsYUFBQTtFQUNBLGNBQUE7RUFDQSxXN0IyYW9DO0U2QjFhcEMsWTdCMGFvQztFNkJ6YXBDLFdBQUE7RUFDQSxpQ0FBQTtBbEMrc0dKO0FrQ3JzR0U7RXBCdEdFLHNCVHFPMEI7QUwwa0c5QjtBa0Nwc0dJO0VBQ0UsNk03QmtiMEM7QUxveEZoRDtBa0Nqc0dJO0VBQ0UscUI3QjhId0I7RW9CL08xQix5QnBCK08wQjtBTHNrRzlCO0FrQ2hzR0k7RUFDRSwwSjdCMmFpRDtBTHV4RnZEO0FrQzdyR0k7RUFDRSx5QzdCb1owQztBTDJ5RmhEO0FrQzdyR0k7RUFDRSx5QzdCaVowQztBTDh5RmhEO0FrQ3JyR0U7RUFFRSxrQjdCMFo0QztBTDZ4RmhEO0FrQ25yR0k7RUFDRSx1SjdCc1owQztBTCt4RmhEO0FrQ2hyR0k7RUFDRSx5QzdCMFgwQztBTHd6RmhEO0FrQ3hxR0E7RUFDRSxxQkFBQTtBbEMycUdGO0FrQ3hxR0k7RUFDRSxjQUFBO0VBQ0EsYzdCa1kwQztFNkJqWTFDLG1CQUFBO0VBRUEscUI3QmdZMEM7QUx5eUZoRDtBa0N0cUdJO0VBQ0UsMkJBQUE7RUFDQSwwQkFBQTtFQUNBLHVCN0IyWDBDO0U2QjFYMUMsd0I3QjBYMEM7RTZCelgxQyx5QjNCOUtNO0UyQmdMTixxQjdCc1gwQztFa0J6aUIxQyx5SVdvTEE7QWxDdXFHTjtBdUJ0MUdJO0VXdUtBO0lYdEtFLGdCQUFBO0V2QnkxR0o7QUFDRjtBa0N2cUdJO0VBQ0Usc0IzQjdMTTtFMkI4TE4sOEJBQUE7QWxDeXFHTjtBa0NwcUdJO0VBQ0UseUM3QitVMEM7QUx1MUZoRDtBa0MxcEdBO0VBQ0UscUJBQUE7RUFDQSxXQUFBO0VBQ0EsbUM3QndSc0M7RTZCdlJ0QywwQ0FBQTtFNUJ4RkksbUJBdENhO0U0QmlJakIsZ0I3QmlFNEI7RTZCaEU1QixnQjdCcUU0QjtFNkJwRTVCLGMzQmpOVTtFMkJrTlYsc0JBQUE7RUFDQSw2TTdCbVdrQztFNkJsV2xDLHNCM0I1TlU7RTJCNk5WLHlCQUFBO0VwQjNORSxzQlRxTzBCO0U2QlA1Qix3QkFBQTtLQUFBLHFCQUFBO1VBQUEsZ0JBQUE7QWxDMnBHRjtBa0N6cEdFO0VBQ0UscUI3QjBQb0M7RTZCelBwQyxVQUFBO0VBSUUsaUQ3Qm1XOEI7QUxxekZwQztBa0NycEdJO0VBTUUsYzNCek9NO0UyQjBPTixzQjNCbFBNO0FQbzRHWjtBa0M5b0dFO0VBRUUsWUFBQTtFQUNBLHNCN0JtSTBCO0U2QmxJMUIsc0JBQUE7QWxDK29HSjtBa0M1b0dFO0VBQ0UsYzNCdlBRO0UyQndQUix5QjNCNVBRO0FQMDRHWjtBa0Mxb0dFO0VBQ0UsYUFBQTtBbEM0b0dKO0FrQ3hvR0E7RUFDRSxrQzdCbU9zQztFNkJsT3RDLG9CN0IySDRCO0U2QjFINUIsdUI3QjBINEI7RTZCekg1QixvQjdCMEg0QjtFQzFReEIsc0JBdENhO0FOazBHbkI7QWtDeG9HQTtFQUNFLGdDN0I0TnNDO0U2QjNOdEMsbUI3QndINEI7RTZCdkg1QixzQjdCdUg0QjtFNkJ0SDVCLGtCN0J1SDRCO0VDL1F4QixxQkF0Q2E7QU4wMEduQjtBa0Nub0dBO0VBQ0Usa0JBQUE7RUFDQSxxQkFBQTtFQUNBLFdBQUE7RUFDQSxtQzdCME1zQztFNkJ6TXRDLGdCQUFBO0FsQ3NvR0Y7QWtDbm9HQTtFQUNFLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxtQzdCa01zQztFNkJqTXRDLFNBQUE7RUFDQSxVQUFBO0FsQ3NvR0Y7QWtDcG9HRTtFQUNFLHFCN0IrS29DO0U2QjlLcEMsaUQ3Qm9GMEI7QUxrakc5QjtBa0Nub0dFO0VBQ0UseUIzQmhUUTtBUHE3R1o7QWtDam9HSTtFQUNFLGlCN0JvVWE7QUwrekZuQjtBa0MvbkdFO0VBQ0UsMEJBQUE7QWxDaW9HSjtBa0M3bkdBO0VBQ0Usa0JBQUE7RUFDQSxNQUFBO0VBQ0EsUUFBQTtFQUNBLE9BQUE7RUFDQSxVQUFBO0VBQ0EsbUM3Qm9Lc0M7RTZCbkt0Qyx5QkFBQTtFQUVBLGdCN0JsRDRCO0U2Qm1ENUIsZ0I3QjlDNEI7RTZCK0M1QixjM0JwVVU7RTJCcVVWLHNCM0I3VVU7RTJCOFVWLHlCQUFBO0VwQjVVRSxzQlRxTzBCO0FMdXVHOUI7QWtDNW5HRTtFQUNFLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtFQUNBLGNBQUE7RUFDQSw2QjdCOElvQztFNkI3SXBDLHlCQUFBO0VBQ0EsZ0I3QjlEMEI7RTZCK0QxQixjM0JwVlE7RTJCcVZSLGlCQUFBO0VUMVZBLHlCbEJEUTtFMkI2VlIsb0JBQUE7RXBCN1ZBLGtDb0I4VnVCO0FsQzhuRzNCO0FrQ3BuR0E7RUFDRSxXQUFBO0VBQ0EsMkJBQUE7RUFDQSxVQUFBO0VBQ0EsNkJBQUE7RUFDQSx3QkFBQTtLQUFBLHFCQUFBO1VBQUEsZ0JBQUE7QWxDdW5HRjtBa0NybkdFO0VBQ0UsYUFBQTtBbEN1bkdKO0FrQ25uR0k7RUFBMEIsb0U3QjhPZTtBTHc0RjdDO0FrQ3JuR0k7RUFBMEIsb0U3QjZPZTtBTDI0RjdDO0FrQ3ZuR0k7RUFBMEIsb0U3QjRPZTtBTDg0RjdDO0FrQ3ZuR0U7RUFDRSxTQUFBO0FsQ3luR0o7QWtDdG5HRTtFQUNFLFc3QjhOeUM7RTZCN056QyxZN0I2TnlDO0U2QjVOekMsb0JBQUE7RVQvWEEseUJwQitPMEI7RTZCa0oxQixTN0I2TnlDO0VTL2xCekMsbUJUZ21CeUM7RWtCL2xCdkMsb0hXb1lGO0VYcFlFLDRHV29ZRjtFQUNBLHdCQUFBO1VBQUEsZ0JBQUE7QWxDdW5HSjtBdUJ2L0dJO0VXdVhGO0lYdFhJLHdCQUFBO0lBQUEsZ0JBQUE7RXZCMC9HSjtBQUNGO0FrQzFuR0k7RVR2WUEseUJwQm1tQnlDO0FMaTZGN0M7QWtDeG5HRTtFQUNFLFc3QnVNZ0M7RTZCdE1oQyxjN0J1TWdDO0U2QnRNaEMsa0JBQUE7RUFDQSxlN0JzTWdDO0U2QnJNaEMseUIzQmhaUTtFMkJpWlIseUJBQUE7RXBCblpBLG1CVHlsQmdDO0FMcTdGcEM7QWtDdG5HRTtFQUNFLFc3Qm1NeUM7RTZCbE16QyxZN0JrTXlDO0VvQjNsQnpDLHlCcEIrTzBCO0U2QjRLMUIsUzdCbU15QztFUy9sQnpDLG1CVGdtQnlDO0VrQi9sQnZDLGlIVzhaRjtFWDlaRSw0R1c4WkY7RUFDQSxxQkFBQTtPQUFBLGdCQUFBO0FsQ3VuR0o7QXVCamhISTtFV2taRjtJWGpaSSxxQkFBQTtJQUFBLGdCQUFBO0V2Qm9oSEo7QUFDRjtBa0MxbkdJO0VUamFBLHlCcEJtbUJ5QztBTDI3RjdDO0FrQ3huR0U7RUFDRSxXN0I2S2dDO0U2QjVLaEMsYzdCNktnQztFNkI1S2hDLGtCQUFBO0VBQ0EsZTdCNEtnQztFNkIzS2hDLHlCM0IxYVE7RTJCMmFSLHlCQUFBO0VwQjdhQSxtQlR5bEJnQztBTCs4RnBDO0FrQ3RuR0U7RUFDRSxXN0J5S3lDO0U2QnhLekMsWTdCd0t5QztFNkJ2S3pDLGFBQUE7RUFDQSxvQjdCdkQwQjtFNkJ3RDFCLG1CN0J4RDBCO0VvQjlYMUIseUJwQitPMEI7RTZCeU0xQixTN0JzS3lDO0VTL2xCekMsbUJUZ21CeUM7RWtCL2xCdkMsZ0hXMmJGO0VYM2JFLDRHVzJiRjtFQUNBLGdCQUFBO0FsQ3VuR0o7QXVCOWlISTtFVzRhRjtJWDNhSSxvQkFBQTtJQUFBLGdCQUFBO0V2QmlqSEo7QUFDRjtBa0MxbkdJO0VUOWJBLHlCcEJtbUJ5QztBTHc5RjdDO0FrQ3huR0U7RUFDRSxXN0JnSmdDO0U2Qi9JaEMsYzdCZ0pnQztFNkIvSWhDLGtCQUFBO0VBQ0EsZTdCK0lnQztFNkI5SWhDLDZCQUFBO0VBQ0EseUJBQUE7RUFDQSxvQkFBQTtBbEMwbkdKO0FrQ3RuR0U7RUFDRSx5QjNCOWNRO0VPRlIsbUJUeWxCZ0M7QUxnL0ZwQztBa0NybkdFO0VBQ0Usa0JBQUE7RUFDQSx5QjNCcGRRO0VPRlIsbUJUeWxCZ0M7QUxxL0ZwQztBa0NubkdJO0VBQ0UseUIzQnhkTTtBUDZrSFo7QWtDbG5HSTtFQUNFLGVBQUE7QWxDb25HTjtBa0NqbkdJO0VBQ0UseUIzQmhlTTtBUG1sSFo7QWtDaG5HSTtFQUNFLGVBQUE7QWxDa25HTjtBa0MvbUdJO0VBQ0UseUIzQnhlTTtBUHlsSFo7QWtDNW1HQTs7O0VYaGZNLDRHV21mSjtBbEMrbUdGO0F1QjdsSEk7RVcyZUo7OztJWDFlTSxnQkFBQTtFdkJrbUhKO0FBQ0Y7QW1DMW1IQTtFQUNFLGFBQUE7RUFDQSxlQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7QW5DNm1IRjtBbUMxbUhBO0VBQ0UsY0FBQTtFQUNBLG9CQUFBO0FuQzZtSEY7QVM1bUhFO0UwQkVFLHFCQUFBO0FuQzZtSEo7QW1Dem1IRTtFQUNFLGM1QmJRO0U0QmNSLG9CQUFBO0VBQ0EsZUFBQTtBbkMybUhKO0FtQ25tSEE7RUFDRSxnQ0FBQTtBbkNzbUhGO0FtQ3BtSEU7RUFDRSxtQkFBQTtBbkNzbUhKO0FtQ25tSEU7RUFDRSw2QkFBQTtFckIzQkEsK0JUNE4wQjtFUzNOMUIsZ0NUMk4wQjtBTHM2RzlCO0FTaG9IRTtFMEI2QkkscUMzQndCOEI7QVI4a0hwQztBbUNubUhJO0VBQ0UsYzVCdkNNO0U0QndDTiw2QkFBQTtFQUNBLHlCQUFBO0FuQ3FtSE47QW1Dam1IRTs7RUFFRSxjNUI1Q1E7RTRCNkNSLHNCNUJ2RFE7RTRCd0RSLGtDM0JhZ0M7QVJzbEhwQztBbUNobUhFO0VBRUUsZ0JBQUE7RXJCbERBLHlCcUJvRDJCO0VyQm5EM0IsMEJxQm1EMkI7QW5DaW1IL0I7QW1DdmxIRTtFckJ2RUUsc0JUcU8wQjtBTDY3RzlCO0FtQ3ZsSEU7O0VBRUUsVzVCL0VRO0U0QmdGUix5QjlCa0swQjtBTHU3RzlCO0FtQy9rSEU7RUFDRSxjQUFBO0VBQ0Esa0JBQUE7QW5Da2xISjtBbUM3a0hFO0VBQ0UsYUFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtBbkNnbEhKO0FtQ3RrSEU7RUFDRSxhQUFBO0FuQ3lrSEo7QW1DdmtIRTtFQUNFLGNBQUE7QW5DeWtISjtBb0M3cUhBO0VBQ0Usa0JBQUE7RUFDQSxhQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsOEJBQUE7RUFDQSxvQkFBQTtBcENnckhGO0FvQzVxSEU7O0VBRUUsYUFBQTtFQUNBLGVBQUE7RUFDQSxtQkFBQTtFQUNBLDhCQUFBO0FwQzhxSEo7QW9DcnFIQTtFQUNFLHFCQUFBO0VBQ0EseUIvQm9xQmtDO0UrQm5xQmxDLDRCL0JtcUJrQztFK0JscUJsQyxrQi9Cb0ZPO0VDRkgscUJBdENhO0U4QjFDakIsb0JBQUE7RUFDQSxtQkFBQTtBcEN3cUhGO0FTeHNIRTtFMkJtQ0UscUJBQUE7QXBDd3FISjtBb0MvcEhBO0VBQ0UsYUFBQTtFQUNBLHNCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7QXBDa3FIRjtBb0NocUhFO0VBQ0UsZ0JBQUE7RUFDQSxlQUFBO0FwQ2txSEo7QW9DL3BIRTtFQUNFLGdCQUFBO0VBQ0EsV0FBQTtBcENpcUhKO0FvQ3hwSEE7RUFDRSxxQkFBQTtFQUNBLG1CL0IybEJrQztFK0IxbEJsQyxzQi9CMGxCa0M7QUxpa0dwQztBb0Mvb0hBO0VBQ0UsZ0JBQUE7RUFDQSxZQUFBO0VBR0EsbUJBQUE7QXBDZ3BIRjtBb0M1b0hBO0VBQ0Usd0JBQUE7RTlCbUJJLHFCQXRDYTtFOEJxQmpCLGNBQUE7RUFDQSw2QkFBQTtFQUNBLDZCQUFBO0V0QjNHRSxzQlRxTzBCO0FMc2hIOUI7QVNodkhFO0UyQm9HRSxxQkFBQTtBcEMrb0hKO0FvQ3pvSEE7RUFDRSxxQkFBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSxXQUFBO0VBQ0EsbUNBQUE7RUFDQSwwQkFBQTtBcEM0b0hGO0FrQnBzSEk7RWtCb0VJOztJQUVFLGdCQUFBO0lBQ0EsZUFBQTtFcENvb0hSO0FBQ0Y7QWtCenRISTtFa0IrRUE7SUFVSSxxQkFBQTtJQUNBLDJCQUFBO0VwQ29vSE47RW9DbG9ITTtJQUNFLG1CQUFBO0VwQ29vSFI7RW9DbG9IUTtJQUNFLGtCQUFBO0VwQ29vSFY7RW9Dam9IUTtJQUNFLHFCL0J5aUJ3QjtJK0J4aUJ4QixvQi9Cd2lCd0I7RUwybEdsQztFb0M5bkhNOztJQUVFLGlCQUFBO0VwQ2dvSFI7RW9DN25ITTtJQUNFLHdCQUFBO0lBR0EsZ0JBQUE7RXBDNm5IUjtFb0MxbkhNO0lBQ0UsYUFBQTtFcEM0bkhSO0FBQ0Y7QWtCdnVISTtFa0JvRUk7O0lBRUUsZ0JBQUE7SUFDQSxlQUFBO0VwQ3NxSFI7QUFDRjtBa0IzdkhJO0VrQitFQTtJQVVJLHFCQUFBO0lBQ0EsMkJBQUE7RXBDc3FITjtFb0NwcUhNO0lBQ0UsbUJBQUE7RXBDc3FIUjtFb0NwcUhRO0lBQ0Usa0JBQUE7RXBDc3FIVjtFb0NucUhRO0lBQ0UscUIvQnlpQndCO0krQnhpQnhCLG9CL0J3aUJ3QjtFTDZuR2xDO0VvQ2hxSE07O0lBRUUsaUJBQUE7RXBDa3FIUjtFb0MvcEhNO0lBQ0Usd0JBQUE7SUFHQSxnQkFBQTtFcEMrcEhSO0VvQzVwSE07SUFDRSxhQUFBO0VwQzhwSFI7QUFDRjtBa0J6d0hJO0VrQm9FSTs7SUFFRSxnQkFBQTtJQUNBLGVBQUE7RXBDd3NIUjtBQUNGO0FrQjd4SEk7RWtCK0VBO0lBVUkscUJBQUE7SUFDQSwyQkFBQTtFcEN3c0hOO0VvQ3RzSE07SUFDRSxtQkFBQTtFcEN3c0hSO0VvQ3RzSFE7SUFDRSxrQkFBQTtFcEN3c0hWO0VvQ3JzSFE7SUFDRSxxQi9CeWlCd0I7SStCeGlCeEIsb0IvQndpQndCO0VMK3BHbEM7RW9DbHNITTs7SUFFRSxpQkFBQTtFcENvc0hSO0VvQ2pzSE07SUFDRSx3QkFBQTtJQUdBLGdCQUFBO0VwQ2lzSFI7RW9DOXJITTtJQUNFLGFBQUE7RXBDZ3NIUjtBQUNGO0FrQjN5SEk7RWtCb0VJOztJQUVFLGdCQUFBO0lBQ0EsZUFBQTtFcEMwdUhSO0FBQ0Y7QWtCL3pISTtFa0IrRUE7SUFVSSxxQkFBQTtJQUNBLDJCQUFBO0VwQzB1SE47RW9DeHVITTtJQUNFLG1CQUFBO0VwQzB1SFI7RW9DeHVIUTtJQUNFLGtCQUFBO0VwQzB1SFY7RW9DdnVIUTtJQUNFLHFCL0J5aUJ3QjtJK0J4aUJ4QixvQi9Cd2lCd0I7RUxpc0dsQztFb0NwdUhNOztJQUVFLGlCQUFBO0VwQ3N1SFI7RW9DbnVITTtJQUNFLHdCQUFBO0lBR0EsZ0JBQUE7RXBDbXVIUjtFb0NodUhNO0lBQ0UsYUFBQTtFcENrdUhSO0FBQ0Y7QW9DM3dISTtFQVVJLHFCQUFBO0VBQ0EsMkJBQUE7QXBDb3dIUjtBb0M3d0hROztFQUVFLGdCQUFBO0VBQ0EsZUFBQTtBcEMrd0hWO0FvQ3Z3SFE7RUFDRSxtQkFBQTtBcEN5d0hWO0FvQ3Z3SFU7RUFDRSxrQkFBQTtBcEN5d0haO0FvQ3R3SFU7RUFDRSxxQi9CeWlCd0I7RStCeGlCeEIsb0IvQndpQndCO0FMZ3VHcEM7QW9DbndIUTs7RUFFRSxpQkFBQTtBcENxd0hWO0FvQ2x3SFE7RUFDRSx3QkFBQTtFQUdBLGdCQUFBO0FwQ2t3SFY7QW9DL3ZIUTtFQUNFLGFBQUE7QXBDaXdIVjtBb0NudkhFO0VBQ0UseUIvQjZoQmdDO0FMeXRHcEM7QVN4NkhFO0UyQnFMSSx5Qi9CMGhCOEI7QUw0dEdwQztBb0NqdkhJO0VBQ0UseUIvQmtoQjhCO0FMaXVHcEM7QVM5NkhFO0UyQjhMTSx5Qi9CZ2hCNEI7QUxtdUdwQztBb0NodkhNO0VBQ0UseUIvQjhnQjRCO0FMb3VHcEM7QW9DOXVISTs7OztFQUlFLHlCL0JxZ0I4QjtBTDJ1R3BDO0FvQzV1SEU7RUFDRSx5Qi9COGZnQztFK0I3ZmhDLGdDL0JrZ0JnQztBTDR1R3BDO0FvQzN1SEU7RUFDRSx3UC9CNmZnQztBTGd2R3BDO0FvQzF1SEU7RUFDRSx5Qi9CcWZnQztBTHV2R3BDO0FvQzN1SEk7RUFDRSx5Qi9CcWY4QjtBTHd2R3BDO0FTdjhIRTtFMkI2Tk0seUIvQmtmNEI7QUwydkdwQztBb0NydUhFO0VBQ0UsVzdCblBRO0FQMjlIWjtBUzk4SEU7RTJCeU9JLFc3QnRQTTtBUDg5SFo7QW9DbnVISTtFQUNFLCtCL0J1ZDhCO0FMOHdHcEM7QVNwOUhFO0UyQmtQTSxnQy9CcWQ0QjtBTGd4R3BDO0FvQ2x1SE07RUFDRSxnQy9CbWQ0QjtBTGl4R3BDO0FvQ2h1SEk7Ozs7RUFJRSxXN0IzUU07QVA2K0haO0FvQzl0SEU7RUFDRSwrQi9CbWNnQztFK0JsY2hDLHNDL0J1Y2dDO0FMeXhHcEM7QW9DN3RIRTtFQUNFLDhQL0JrY2dDO0FMNnhHcEM7QW9DNXRIRTtFQUNFLCtCL0IwYmdDO0FMb3lHcEM7QW9DN3RISTtFQUNFLFc3QjNSTTtBUDAvSFo7QVM3K0hFO0UyQmlSTSxXN0I5Ukk7QVA2L0haO0FxQzUvSEE7RUFDRSxrQkFBQTtFQUNBLGFBQUE7RUFDQSxzQkFBQTtFQUNBLFlBQUE7RUFDQSxxQkFBQTtFQUNBLHNCOUJQVTtFOEJRViwyQkFBQTtFQUNBLHlCQUFBO0V2QlBFLHNCVHFPMEI7QUxreUg5QjtBcUM3L0hFO0VBQ0UsZUFBQTtFQUNBLGNBQUE7QXJDKy9ISjtBcUMzL0hJO0V2QlBBLCtCVDROMEI7RVMzTjFCLGdDVDJOMEI7QUwweUg5QjtBcUN6L0hJO0V2QkNBLG1DVDhNMEI7RVM3TTFCLGtDVDZNMEI7QUw4eUg5QjtBcUN2L0hBO0VBR0UsY0FBQTtFQUNBLGdCaEMrd0JrQztBTHl1R3BDO0FxQ3AvSEE7RUFDRSxzQmhDeXdCa0M7QUw4dUdwQztBcUNwL0hBO0VBQ0UscUJBQUE7RUFDQSxnQkFBQTtBckN1L0hGO0FxQ3AvSEE7RUFDRSxnQkFBQTtBckN1L0hGO0FTOWhJRTtFNEI0Q0UscUJBQUE7QXJDcy9ISjtBcUNuL0hFO0VBQ0Usb0JoQ3d2QmdDO0FMNnZHcEM7QXFDNytIQTtFQUNFLHdCQUFBO0VBQ0EsZ0JBQUE7RUFFQSx5QjlCbkVVO0U4Qm9FVixnQ0FBQTtBckMrK0hGO0FxQzcrSEU7RXZCdEVFLDBEdUJ1RXVCO0FyQysrSDNCO0FxQzMrSEk7RUFDRSxhQUFBO0FyQzYrSE47QXFDeCtIQTtFQUNFLHdCQUFBO0VBQ0EseUI5Qm5GVTtFOEJvRlYsNkJBQUE7QXJDMitIRjtBcUN6K0hFO0V2QnRGRSwwRHVCdUZ1QjtBckMyK0gzQjtBcUNsK0hBO0VBQ0UsdUJBQUE7RUFDQSx1QkFBQTtFQUNBLHNCQUFBO0VBQ0EsZ0JBQUE7QXJDcStIRjtBcUNsK0hBO0VBQ0UsdUJBQUE7RUFDQSxzQkFBQTtBckNxK0hGO0FxQ2orSEE7RUFDRSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLE9BQUE7RUFDQSxnQmhDc3NCa0M7QUw4eEdwQztBcUNqK0hBO0VBQ0UsV0FBQTtFdkJ2SEUsa0NUbXpCZ0M7QUx5eUdwQztBcUNoK0hBO0VBQ0UsV0FBQTtFdkJwSEUsMkNUMHlCZ0M7RVN6eUJoQyw0Q1R5eUJnQztBTCt5R3BDO0FxQ2orSEE7RUFDRSxXQUFBO0V2QjNHRSwrQ1Q0eEJnQztFUzN4QmhDLDhDVDJ4QmdDO0FMcXpHcEM7QXFDLzlIQTtFQUNFLGFBQUE7RUFDQSxzQkFBQTtBckNrK0hGO0FxQ2grSEU7RUFDRSxtQmhDNnFCZ0M7QUxxekdwQztBa0J6aklJO0VtQmtGSjtJQVNJLG1CQUFBO0lBQ0EsbUJBQUE7SUFDQSxrQkFBQTtFckNrK0hGO0VxQ2grSEU7SUFDRSxhQUFBO0lBRUEsWUFBQTtJQUNBLHNCQUFBO0lBQ0Esa0JoQ2dxQjhCO0lnQy9wQjlCLGdCQUFBO0lBQ0EsaUJoQzhwQjhCO0VMbTBHbEM7QUFDRjtBcUN4OUhBO0VBQ0UsYUFBQTtFQUNBLHNCQUFBO0FyQzI5SEY7QXFDdjlIRTtFQUNFLG1CaEM2b0JnQztBTDQwR3BDO0FrQmhsSUk7RW1CZ0hKO0lBV0ksbUJBQUE7RXJDeTlIRjtFcUN0OUhFO0lBRUUsWUFBQTtJQUNBLGdCQUFBO0VyQ3U5SEo7RXFDcjlISTtJQUNFLGNBQUE7SUFDQSxjQUFBO0VyQ3U5SE47RXFDbDlITTtJdkJqTEosMEJ1QmtMbUM7SXZCakxuQyw2QnVCaUxtQztFckNxOUhyQztFcUNuOUhROztJQUdFLDBCQUFBO0VyQ285SFY7RXFDbDlIUTs7SUFHRSw2QkFBQTtFckNtOUhWO0VxQy84SE07SXZCbExKLHlCdUJtTGtDO0l2QmxMbEMsNEJ1QmtMa0M7RXJDazlIcEM7RXFDaDlIUTs7SUFHRSx5QkFBQTtFckNpOUhWO0VxQy84SFE7O0lBR0UsNEJBQUE7RXJDZzlIVjtBQUNGO0FxQ244SEU7RUFDRSxzQmhDb2tCZ0M7QUxrNEdwQztBa0J6bklJO0VtQmlMSjtJQU1JLG9CaENnbEJnQztTZ0NobEJoQyxlaENnbEJnQztJZ0Mva0JoQyx3QmhDZ2xCZ0M7U2dDaGxCaEMsbUJoQ2dsQmdDO0lnQy9rQmhDLFVBQUE7SUFDQSxTQUFBO0VyQ3M4SEY7RXFDcDhIRTtJQUNFLHFCQUFBO0lBQ0EsV0FBQTtFckNzOEhKO0FBQ0Y7QXFDNTdIRTtFQUNFLGdCQUFBO0FyQys3SEo7QXFDNTdITTtFdkJwUUYsZ0J1QnFRMkI7QXJDODdIL0I7QXFDMzdITTtFQUNFLGdCQUFBO0V2QnpRSixnQnVCMFEyQjtBckM2N0gvQjtBcUN6N0hJO0VBQ0UsZ0JBQUE7RXZCeFBGLDZCdUJ5UGdDO0V2QnhQaEMsNEJ1QndQZ0M7QXJDNDdIcEM7QXFDejdISTtFdkIxUUEseUJ1QjJRNkI7RXZCMVE3QiwwQnVCMFE2QjtBckM0N0hqQztBcUN6N0hJO0VBQ0UsbUJBQUE7QXJDMjdITjtBc0N4dElBO0VBQ0UsYUFBQTtFQUNBLGVBQUE7RUFDQSxxQkFBQTtFQUNBLHFCOUIyQmdDO0U4QjFCaEMsZ0JBQUE7RUFDQSxzQjlCd0JnQztFTXpCOUIsZ0JOMkI4QjtBUmtzSWxDO0FzQ3R0SUU7RUFDRSxvQmpDa2dDZ0M7QUx1dEdwQztBc0N2dElJO0VBQ0UscUJBQUE7RUFDQSxxQmpDOC9COEI7RWlDNy9COUIsYy9CUk07RStCU04sWWpDbWdDOEI7QUxzdEdwQztBc0Mvc0lFO0VBQ0UsMEJBQUE7QXRDaXRJSjtBc0M5c0lFO0VBQ0UscUJBQUE7QXRDZ3RJSjtBc0M3c0lFO0VBQ0UsYy9CNUJRO0FQMnVJWjtBdUNydklBO0VBQ0UsYUFBQTtFNUJHQSxlQUFBO0VBQ0EsZ0JBQUE7RUdBRSxzQlRxTzBCO0FMa2hJOUI7QXVDdHZJQTtFQUNFLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLHVCQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQmxDd3dCa0M7RWtDdndCbEMsY2xDK0p3QztFa0M5SnhDLHNCaENWVTtFZ0NXVix5QkFBQTtBdkN5dklGO0F1Q3Z2SUU7RUFDRSxVQUFBO0VBQ0EsY2xDMkpzQztFa0MxSnRDLHFCQUFBO0VBQ0EseUJoQ2RRO0VnQ2VSLHFCaENkUTtBUHV3SVo7QXVDdHZJRTtFQUNFLFVBQUE7RUFDQSxVbENpd0JnQztFa0Nod0JoQyxpRGxDMlcwQjtBTDY0SDlCO0F1Q2x2SUk7RUFDRSxjQUFBO0V6QkNGLCtCVHVNMEI7RVN0TTFCLGtDVHNNMEI7QUwraUk5QjtBdUNsdklJO0V6QmxCQSxnQ1RxTjBCO0VTcE4xQixtQ1RvTjBCO0FMbWpJOUI7QXVDanZJRTtFQUNFLFVBQUE7RUFDQSxXaEMzQ1E7RWdDNENSLHlCbENzTTBCO0VrQ3JNMUIscUJsQ3FNMEI7QUw4aUk5QjtBdUNodklFO0VBQ0UsY2hDMUNRO0VnQzJDUixvQkFBQTtFQUVBLFlBQUE7RUFDQSxzQmhDckRRO0VnQ3NEUixxQmhDbERRO0FQbXlJWjtBd0N2eUlFO0VBQ0UsdUJBQUE7RWxDMkhFLHFCQXRDYTtFa0NuRmYsZ0JuQzhOMEI7QUw0a0k5QjtBd0NyeUlNO0UxQndCRiw4QlR3TTBCO0VTdk0xQixpQ1R1TTBCO0FMeWtJOUI7QXdDcHlJTTtFMUJLRiwrQlRzTjBCO0VTck4xQixrQ1RxTjBCO0FMNmtJOUI7QXdDcnpJRTtFQUNFLHVCQUFBO0VsQzJIRSxzQkF0Q2E7RWtDbkZmLGdCbkMrTjBCO0FMeWxJOUI7QXdDbnpJTTtFMUJ3QkYsOEJUeU0wQjtFU3hNMUIsaUNUd00wQjtBTHNsSTlCO0F3Q2x6SU07RTFCS0YsK0JUdU4wQjtFU3ROMUIsa0NUc04wQjtBTDBsSTlCO0F5Q2owSUE7RUFDRSxxQkFBQTtFQUNBLHFCQUFBO0VuQ2lFRSxjQUFBO0VtQy9ERixnQnBDbVI0QjtFb0NsUjVCLGNBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esd0JBQUE7RTNCUkUsc0JUcU8wQjtFa0JwT3hCLHFJa0JTSjtBekNvMElGO0F1QngwSUk7RWtCTko7SWxCT00sZ0JBQUE7RXZCMjBJSjtBQUNGO0FTeDBJRTtFZ0NHSSxxQkFBQTtBekN3MElOO0F5Q24wSUU7RUFDRSxhQUFBO0F6Q3MwSUo7QXlDajBJQTtFQUNFLGtCQUFBO0VBQ0EsU0FBQTtBekNvMElGO0F5Qzd6SUE7RUFDRSxvQnBDZzNCa0M7RW9DLzJCbEMsbUJwQysyQmtDO0VTbjVCaEMsb0JUczVCZ0M7QUwrOEdwQztBeUN4eklFO0VDakRBLFdBQUE7RUFDQSx5QnJDNkVhO0FMZ3lJZjtBUy8xSUU7RWlDVkksV0FBQTtFQUNBLHlCQUFBO0ExQzQySU47QTBDejJJSTtFQUVFLFVBQUE7RUFDQSxnREFBQTtBMUMwMklOO0F5Q3IwSUU7RUNqREEsY0FBQTtFQUNBLHlCckM2RWE7QUw2eUlmO0FTNTJJRTtFaUNWSSxjQUFBO0VBQ0EseUJBQUE7QTFDeTNJTjtBMEN0M0lJO0VBRUUsVUFBQTtFQUNBLGlEQUFBO0ExQ3UzSU47QXlDbDFJRTtFQ2pEQSxXQUFBO0VBQ0EseUJyQzZFYTtBTDB6SWY7QVN6M0lFO0VpQ1ZJLFdBQUE7RUFDQSx5QkFBQTtBMUNzNElOO0EwQ240SUk7RUFFRSxVQUFBO0VBQ0EsZ0RBQUE7QTFDbzRJTjtBeUMvMUlFO0VDakRBLGNBQUE7RUFDQSx5QnJDNkVhO0FMdTBJZjtBU3Q0SUU7RWlDVkksY0FBQTtFQUNBLHlCQUFBO0ExQ201SU47QTBDaDVJSTtFQUVFLFVBQUE7RUFDQSxnREFBQTtBMUNpNUlOO0F5QzUySUU7RUNqREEsY0FBQTtFQUNBLHlCckM2RWE7QUxvMUlmO0FTbjVJRTtFaUNWSSxjQUFBO0VBQ0EseUJBQUE7QTFDZzZJTjtBMEM3NUlJO0VBRUUsVUFBQTtFQUNBLCtDQUFBO0ExQzg1SU47QXlDejNJRTtFQ2pEQSxXQUFBO0VBQ0EseUJyQzZFYTtBTGkySWY7QVNoNklFO0VpQ1ZJLFdBQUE7RUFDQSx5QkFBQTtBMUM2NklOO0EwQzE2SUk7RUFFRSxVQUFBO0VBQ0EsaURBQUE7QTFDMjZJTjtBeUN0NElFO0VDakRBLGNBQUE7RUFDQSx5QnJDNkVhO0FMODJJZjtBUzc2SUU7RWlDVkksY0FBQTtFQUNBLHlCQUFBO0ExQzA3SU47QTBDdjdJSTtFQUVFLFVBQUE7RUFDQSxpREFBQTtBMUN3N0lOO0F5Q241SUU7RUNqREEsV0FBQTtFQUNBLHlCckM2RWE7QUwyM0lmO0FTMTdJRTtFaUNWSSxXQUFBO0VBQ0EseUJBQUE7QTFDdThJTjtBMENwOElJO0VBRUUsVUFBQTtFQUNBLDhDQUFBO0ExQ3E4SU47QTJDbDlJQTtFQUNFLGtCQUFBO0VBQ0EsbUJ0QzB5QmtDO0VzQ3h5QmxDLHlCcENFVTtFT0RSLHFCVHNPMEI7QUw4dUk5QjtBa0I3NUlJO0V5QjVESjtJQVFJLGtCQUFBO0UzQ3E5SUY7QUFDRjtBMkNsOUlBO0VBQ0UsZ0JBQUE7RUFDQSxlQUFBO0U3QlRFLGdCNkJVcUI7QTNDcTlJekI7QTRDaCtJQTtFQUNFLGtCQUFBO0VBQ0Esd0JBQUE7RUFDQSxtQnZDbThCa0M7RXVDbDhCbEMsNkJBQUE7RTlCSEUsc0JUcU8wQjtBTGt3STlCO0E0Qy85SUE7RUFFRSxjQUFBO0E1Q2krSUY7QTRDNzlJQTtFQUNFLGdCdkN3UTRCO0FMd3RJOUI7QTRDeDlJQTtFQUNFLHdCQUFBO0E1QzI5SUY7QTRDeDlJRTtFQUNFLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLFFBQUE7RUFDQSx3QkFBQTtFQUNBLGNBQUE7QTVDMDlJSjtBNENoOUlFO0VDOUNBLGNEK0NxSDtFbkIxQ25ILHlCbUIwQ3VCO0VDN0N6QixxQkQ2Q3FFO0E1Q3E5SXZFO0E2Q2hnSkU7RUFDRSx5QkFBQTtBN0NrZ0pKO0E2Qy8vSUU7RUFDRSxjQUFBO0E3Q2lnSko7QTRDNTlJRTtFQzlDQSxjRCtDcUg7RW5CMUNuSCx5Qm1CMEN1QjtFQzdDekIscUJENkNxRTtBNUNpK0l2RTtBNkM1Z0pFO0VBQ0UseUJBQUE7QTdDOGdKSjtBNkMzZ0pFO0VBQ0UsY0FBQTtBN0M2Z0pKO0E0Q3grSUU7RUM5Q0EsY0QrQ3FIO0VuQjFDbkgseUJtQjBDdUI7RUM3Q3pCLHFCRDZDcUU7QTVDNitJdkU7QTZDeGhKRTtFQUNFLHlCQUFBO0E3QzBoSko7QTZDdmhKRTtFQUNFLGNBQUE7QTdDeWhKSjtBNENwL0lFO0VDOUNBLGNEK0NxSDtFbkIxQ25ILHlCbUIwQ3VCO0VDN0N6QixxQkQ2Q3FFO0E1Q3kvSXZFO0E2Q3BpSkU7RUFDRSx5QkFBQTtBN0NzaUpKO0E2Q25pSkU7RUFDRSxjQUFBO0E3Q3FpSko7QTRDaGdKRTtFQzlDQSxjRCtDcUg7RW5CMUNuSCx5Qm1CMEN1QjtFQzdDekIscUJENkNxRTtBNUNxZ0p2RTtBNkNoakpFO0VBQ0UseUJBQUE7QTdDa2pKSjtBNkMvaUpFO0VBQ0UsY0FBQTtBN0NpakpKO0E0QzVnSkU7RUM5Q0EsY0QrQ3FIO0VuQjFDbkgseUJtQjBDdUI7RUM3Q3pCLHFCRDZDcUU7QTVDaWhKdkU7QTZDNWpKRTtFQUNFLHlCQUFBO0E3QzhqSko7QTZDM2pKRTtFQUNFLGNBQUE7QTdDNmpKSjtBNEN4aEpFO0VDOUNBLGNEK0NxSDtFbkIxQ25ILHlCbUIwQ3VCO0VDN0N6QixxQkQ2Q3FFO0E1QzZoSnZFO0E2Q3hrSkU7RUFDRSx5QkFBQTtBN0Mwa0pKO0E2Q3ZrSkU7RUFDRSxjQUFBO0E3Q3lrSko7QTRDcGlKRTtFQzlDQSxjRCtDcUg7RW5CMUNuSCx5Qm1CMEN1QjtFQzdDekIscUJENkNxRTtBNUN5aUp2RTtBNkNwbEpFO0VBQ0UseUJBQUE7QTdDc2xKSjtBNkNubEpFO0VBQ0UsY0FBQTtBN0NxbEpKO0E4QzdsSkU7RUFDRTtJQUFPLDJCQUFBO0U5Q2ltSlQ7RThDaG1KRTtJQUFLLHdCQUFBO0U5Q21tSlA7QUFDRjtBOEN0bUpFO0VBQ0U7SUFBTywyQkFBQTtFOUNpbUpUO0U4Q2htSkU7SUFBSyx3QkFBQTtFOUNtbUpQO0FBQ0Y7QThDaG1KQTtFQUNFLGFBQUE7RUFDQSxZekM0OEJrQztFeUMzOEJsQyxnQkFBQTtFeENvSEkscUJBdENhO0V3QzVFakIseUJ2Q1JVO0VPQVIsc0JUcU8wQjtBTHM0STlCO0E4QzlsSkE7RUFDRSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSx1QkFBQTtFQUNBLFd2Q25CVTtFdUNvQlYsa0JBQUE7RUFDQSxtQkFBQTtFQUNBLHlCekNtOEJrQztFa0J0OUI5QiwyQnVCb0JKO0E5Q2ltSkY7QXVCaG5KSTtFdUJPSjtJdkJOTSxnQkFBQTtFdkJtbkpKO0FBQ0Y7QThDbm1KQTtFckJjRSxxTUFBQTtFcUJaQSwwQkFBQTtBOUNzbUpGO0E4Q2xtSkU7RUFDRSwwREFBQTtVQUFBLGtEQUFBO0E5Q3FtSko7QThDbm1KSTtFQUhGO0lBSUksdUJBQUE7WUFBQSxlQUFBO0U5Q3NtSko7QUFDRjtBK0M5b0pBO0VBQ0UsYUFBQTtFQUNBLHVCQUFBO0EvQ2lwSkY7QStDOW9KQTtFQUNFLE9BQUE7QS9DaXBKRjtBZ0RucEpBO0VBQ0UsYUFBQTtFQUNBLHNCQUFBO0VBR0EsZUFBQTtFQUNBLGdCQUFBO0FoRG9wSkY7QWdEM29KQTtFQUNFLFdBQUE7RUFDQSxjekNWVTtFeUNXVixtQkFBQTtBaEQ4b0pGO0FTcHBKRTtFdUNVRSxVQUFBO0VBQ0EsY3pDaEJRO0V5Q2lCUixxQkFBQTtFQUNBLHlCekN4QlE7QVBxcUpaO0FnRDFvSkU7RUFDRSxjekNwQlE7RXlDcUJSLHlCekM1QlE7QVB3cUpaO0FnRG5vSkE7RUFDRSxrQkFBQTtFQUNBLGNBQUE7RUFDQSx3QkFBQTtFQUVBLG1CQUFBO0VBRUEsc0J6Qy9DVTtFeUNnRFYsc0NBQUE7QWhEb29KRjtBZ0Rsb0pFO0VsQ3ZDRSwrQlQ0TjBCO0VTM04xQixnQ1QyTjBCO0FMaTlJOUI7QWdEbG9KRTtFQUNFLGdCQUFBO0VsQzlCQSxtQ1Q4TTBCO0VTN00xQixrQ1Q2TTBCO0FMczlJOUI7QWdEbG9KRTtFQUVFLGN6Q3REUTtFeUN1RFIsb0JBQUE7RUFDQSxzQnpDL0RRO0FQa3NKWjtBZ0QvbkpFO0VBQ0UsVUFBQTtFQUNBLFd6Q3JFUTtFeUNzRVIseUIzQzRLMEI7RTJDM0sxQixxQjNDMkswQjtBTHM5STlCO0FnRHBuSkk7RUFDRSxtQkFBQTtBaER1bkpOO0FnRHJuSk07RUFDRSxrQkFBQTtFQUNBLGdCQUFBO0FoRHVuSlI7QWdEcm5KUTtFbEMzREosK0JUdU0wQjtFU3RNMUIsa0NUc00wQjtFUzFMMUIsMEJrQ2dEdUM7QWhEd25KM0M7QWdEcm5KUTtFQUNFLGVBQUE7RWxDL0VOLGdDVHFOMEI7RVNwTjFCLG1DVG9OMEI7RVM5SzFCLDRCa0MwQ3lDO0FoRHduSjdDO0FrQmxxSkk7RThCMkJBO0lBQ0UsbUJBQUE7RWhEMm9KSjtFZ0R6b0pJO0lBQ0Usa0JBQUE7SUFDQSxnQkFBQTtFaEQyb0pOO0VnRHpvSk07SWxDM0RKLCtCVHVNMEI7SVN0TTFCLGtDVHNNMEI7SVMxTDFCLDBCa0NnRHVDO0VoRDRvSnpDO0VnRHpvSk07SUFDRSxlQUFBO0lsQy9FTixnQ1RxTjBCO0lTcE4xQixtQ1RvTjBCO0lTOUsxQiw0QmtDMEN5QztFaEQ0b0ozQztBQUNGO0FrQnZySkk7RThCMkJBO0lBQ0UsbUJBQUE7RWhEK3BKSjtFZ0Q3cEpJO0lBQ0Usa0JBQUE7SUFDQSxnQkFBQTtFaEQrcEpOO0VnRDdwSk07SWxDM0RKLCtCVHVNMEI7SVN0TTFCLGtDVHNNMEI7SVMxTDFCLDBCa0NnRHVDO0VoRGdxSnpDO0VnRDdwSk07SUFDRSxlQUFBO0lsQy9FTixnQ1RxTjBCO0lTcE4xQixtQ1RvTjBCO0lTOUsxQiw0QmtDMEN5QztFaERncUozQztBQUNGO0FrQjNzSkk7RThCMkJBO0lBQ0UsbUJBQUE7RWhEbXJKSjtFZ0RqckpJO0lBQ0Usa0JBQUE7SUFDQSxnQkFBQTtFaERtckpOO0VnRGpySk07SWxDM0RKLCtCVHVNMEI7SVN0TTFCLGtDVHNNMEI7SVMxTDFCLDBCa0NnRHVDO0VoRG9ySnpDO0VnRGpySk07SUFDRSxlQUFBO0lsQy9FTixnQ1RxTjBCO0lTcE4xQixtQ1RvTjBCO0lTOUsxQiw0QmtDMEN5QztFaERvckozQztBQUNGO0FrQi90Skk7RThCMkJBO0lBQ0UsbUJBQUE7RWhEdXNKSjtFZ0Ryc0pJO0lBQ0Usa0JBQUE7SUFDQSxnQkFBQTtFaER1c0pOO0VnRHJzSk07SWxDM0RKLCtCVHVNMEI7SVN0TTFCLGtDVHNNMEI7SVMxTDFCLDBCa0NnRHVDO0VoRHdzSnpDO0VnRHJzSk07SUFDRSxlQUFBO0lsQy9FTixnQ1RxTjBCO0lTcE4xQixtQ1RvTjBCO0lTOUsxQiw0QmtDMEN5QztFaER3c0ozQztBQUNGO0FnRDNySkU7RUFDRSxlQUFBO0VBQ0EsY0FBQTtFbENqSEEsZ0JrQ2tIdUI7QWhENnJKM0I7QWdEM3JKSTtFQUNFLG1CQUFBO0FoRDZySk47QWdEeHJKSTtFQUNFLGFBQUE7QWhEMHJKTjtBZ0RyckpJO0VBQ0UsZ0JBQUE7RUFDQSxnQkFBQTtBaER1ckpOO0FpRDN6SkU7RUFDRSxjRCtJc0U7RUM5SXRFLHlCRDhJdUM7QWhEZ3JKM0M7QVNuekpFO0V3Q1BNLGNEMElrRTtFQ3pJbEUseUJBQUE7QWpENnpKUjtBaUQxekpNO0VBQ0UsVzFDWEk7RTBDWUoseUJEb0lrRTtFQ25JbEUscUJEbUlrRTtBaER5ckoxRTtBaUR6MEpFO0VBQ0UsY0QrSXNFO0VDOUl0RSx5QkQ4SXVDO0FoRDhySjNDO0FTajBKRTtFd0NQTSxjRDBJa0U7RUN6SWxFLHlCQUFBO0FqRDIwSlI7QWlEeDBKTTtFQUNFLFcxQ1hJO0UwQ1lKLHlCRG9Ja0U7RUNuSWxFLHFCRG1Ja0U7QWhEdXNKMUU7QWlEdjFKRTtFQUNFLGNEK0lzRTtFQzlJdEUseUJEOEl1QztBaEQ0c0ozQztBUy8wSkU7RXdDUE0sY0QwSWtFO0VDeklsRSx5QkFBQTtBakR5MUpSO0FpRHQxSk07RUFDRSxXMUNYSTtFMENZSix5QkRvSWtFO0VDbklsRSxxQkRtSWtFO0FoRHF0SjFFO0FpRHIySkU7RUFDRSxjRCtJc0U7RUM5SXRFLHlCRDhJdUM7QWhEMHRKM0M7QVM3MUpFO0V3Q1BNLGNEMElrRTtFQ3pJbEUseUJBQUE7QWpEdTJKUjtBaURwMkpNO0VBQ0UsVzFDWEk7RTBDWUoseUJEb0lrRTtFQ25JbEUscUJEbUlrRTtBaERtdUoxRTtBaURuM0pFO0VBQ0UsY0QrSXNFO0VDOUl0RSx5QkQ4SXVDO0FoRHd1SjNDO0FTMzJKRTtFd0NQTSxjRDBJa0U7RUN6SWxFLHlCQUFBO0FqRHEzSlI7QWlEbDNKTTtFQUNFLFcxQ1hJO0UwQ1lKLHlCRG9Ja0U7RUNuSWxFLHFCRG1Ja0U7QWhEaXZKMUU7QWlEajRKRTtFQUNFLGNEK0lzRTtFQzlJdEUseUJEOEl1QztBaERzdkozQztBU3ozSkU7RXdDUE0sY0QwSWtFO0VDeklsRSx5QkFBQTtBakRtNEpSO0FpRGg0Sk07RUFDRSxXMUNYSTtFMENZSix5QkRvSWtFO0VDbklsRSxxQkRtSWtFO0FoRCt2SjFFO0FpRC80SkU7RUFDRSxjRCtJc0U7RUM5SXRFLHlCRDhJdUM7QWhEb3dKM0M7QVN2NEpFO0V3Q1BNLGNEMElrRTtFQ3pJbEUseUJBQUE7QWpEaTVKUjtBaUQ5NEpNO0VBQ0UsVzFDWEk7RTBDWUoseUJEb0lrRTtFQ25JbEUscUJEbUlrRTtBaEQ2d0oxRTtBaUQ3NUpFO0VBQ0UsY0QrSXNFO0VDOUl0RSx5QkQ4SXVDO0FoRGt4SjNDO0FTcjVKRTtFd0NQTSxjRDBJa0U7RUN6SWxFLHlCQUFBO0Fq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Qzd5QmxDLGdDQUFBO0V0QzdIRSw4QlQ2TjBCO0VTNU4xQiwrQlQ0TjBCO0FMMjNKOUI7QW9EeDlKRTtFQUNFLGtCL0N5eUJnQztFK0N2eUJoQyw4QkFBQTtBcER5OUpKO0FvRHA5SkE7RUFDRSxnQkFBQTtFQUNBLGdCL0N3STRCO0FMKzBKOUI7QW9EbDlKQTtFQUNFLGtCQUFBO0VBR0EsY0FBQTtFQUNBLGEvQyt2QmtDO0FMb3RJcEM7QW9ELzhKQTtFQUNFLGFBQUE7RUFDQSxtQkFBQTtFQUNBLHlCQUFBO0VBQ0EsYS9DdXZCa0M7RStDdHZCbEMsNkJBQUE7RXRDL0lFLGtDVCtNMEI7RVM5TTFCLGlDVDhNMEI7QUxvNUo5QjtBb0RoOUpFO0VBQXVCLG9CQUFBO0FwRG05SnpCO0FvRGw5SkU7RUFBc0IscUJBQUE7QXBEcTlKeEI7QW9EajlKQTtFQUNFLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7QXBEbzlKRjtBa0JqbEtJO0VrQ21JRjtJQUNFLGdCL0M0dkJnQztJK0MzdkJoQyxvQkFBQTtFcERrOUpGOztFb0QvOEpBO0lBQ0UsK0JBQUE7RXBEazlKRjtFb0RoOUpFO0lBQ0UsZ0NBQUE7RXBEazlKSjs7RW9EOThKQTtJQUNFLCtCQUFBO0VwRGk5SkY7RW9ELzhKRTtJQUNFLDRCQUFBO0VwRGk5Sko7O0VvRHo4SkE7SUFBWSxnQi9DcXVCc0I7RUx3dUlsQztBQUNGO0FrQjFtS0k7RWtDZ0tGOztJQUVFLGdCL0M2dEJnQztFTGd2SWxDO0FBQ0Y7QWtCaG5LSTtFa0N1S0Y7SUFBWSxpQi9DdXRCc0I7RUxzdklsQztBQUNGO0FxRGhyS0E7RUFDRSxrQkFBQTtFQUNBLGFoRHdxQmtDO0VnRHZxQmxDLGNBQUE7RUFDQSxTaEQ2MEJrQztFaURqMUJsQyxrTWpEK1E0QjtFaUQ3UTVCLGtCQUFBO0VBQ0EsZ0JqRHVSNEI7RWlEdFI1QixnQmpEMlI0QjtFaUQxUjVCLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxxQkFBQTtFQUNBLGlCQUFBO0VBQ0Esb0JBQUE7RUFDQSxzQkFBQTtFQUNBLGtCQUFBO0VBQ0Esb0JBQUE7RUFDQSxtQkFBQTtFQUNBLGdCQUFBO0VoRGdISSxzQkF0Q2E7RStDOUVqQixxQkFBQTtFQUNBLFVBQUE7QXJENHJLRjtBcUQxcktFO0VBQVMsWWhEaTBCeUI7QUw0M0lwQztBcUQzcktFO0VBQ0Usa0JBQUE7RUFDQSxjQUFBO0VBQ0EsYWhEaTBCZ0M7RWdEaDBCaEMsY2hEaTBCZ0M7QUw0M0lwQztBcUQzcktJO0VBQ0Usa0JBQUE7RUFDQSxXQUFBO0VBQ0EseUJBQUE7RUFDQSxtQkFBQTtBckQ2cktOO0FxRHhyS0E7RUFDRSxpQkFBQTtBckQycktGO0FxRHpyS0U7RUFDRSxTQUFBO0FyRDJyS0o7QXFEenJLSTtFQUNFLE1BQUE7RUFDQSw2QkFBQTtFQUNBLHNCOUMxQk07QVBxdEtaO0FxRHRyS0E7RUFDRSxpQkFBQTtBckR5cktGO0FxRHZyS0U7RUFDRSxPQUFBO0VBQ0EsYWhEbXlCZ0M7RWdEbHlCaEMsY2hEaXlCZ0M7QUx3NUlwQztBcUR2cktJO0VBQ0UsUUFBQTtFQUNBLG9DQUFBO0VBQ0Esd0I5QzFDTTtBUG11S1o7QXFEcHJLQTtFQUNFLGlCQUFBO0FyRHVyS0Y7QXFEcnJLRTtFQUNFLE1BQUE7QXJEdXJLSjtBcURycktJO0VBQ0UsU0FBQTtFQUNBLDZCQUFBO0VBQ0EseUI5Q3hETTtBUCt1S1o7QXFEbHJLQTtFQUNFLGlCQUFBO0FyRHFyS0Y7QXFEbnJLRTtFQUNFLFFBQUE7RUFDQSxhaERxd0JnQztFZ0Rwd0JoQyxjaERtd0JnQztBTGs3SXBDO0FxRG5yS0k7RUFDRSxPQUFBO0VBQ0Esb0NBQUE7RUFDQSx1QjlDeEVNO0FQNnZLWjtBcURocUtBO0VBQ0UsZ0JoRCt0QmtDO0VnRDl0QmxDLHVCQUFBO0VBQ0EsVzlDM0dVO0U4QzRHVixrQkFBQTtFQUNBLHNCOUNsR1U7RU9UUixzQlRxTzBCO0FMMGlLOUI7QXVEcHhLQTtFQUNFLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxhbERzcUJrQztFa0RycUJsQyxjQUFBO0VBQ0EsZ0JsRCsxQmtDO0VpRHAyQmxDLGtNakQrUTRCO0VpRDdRNUIsa0JBQUE7RUFDQSxnQmpEdVI0QjtFaUR0UjVCLGdCakQyUjRCO0VpRDFSNUIsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLHFCQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLHNCQUFBO0VBQ0Esa0JBQUE7RUFDQSxvQkFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7RWhEZ0hJLHNCQXRDYTtFaUQ3RWpCLHFCQUFBO0VBQ0Esc0JoRFZVO0VnRFdWLDRCQUFBO0VBQ0Esb0NBQUE7RXpDVkUscUJUc08wQjtBTHNrSzlCO0F1RDl4S0U7RUFDRSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxXbEQ4MUJnQztFa0Q3MUJoQyxjbEQ4MUJnQztFa0Q3MUJoQyxnQkFBQTtBdkRneUtKO0F1RDl4S0k7RUFFRSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxXQUFBO0VBQ0EseUJBQUE7RUFDQSxtQkFBQTtBdkQreEtOO0F1RDF4S0E7RUFDRSxxQmxEKzBCa0M7QUw4OElwQztBdUQzeEtFO0VBQ0UsaUNBQUE7QXZENnhLSjtBdUQzeEtJO0VBQ0UsU0FBQTtFQUNBLDZCQUFBO0VBQ0EscUNsRDAwQjhCO0FMbTlJcEM7QXVEMXhLSTtFQUNFLFdsRHFMd0I7RWtEcEx4Qiw2QkFBQTtFQUNBLHNCaERqRE07QVA2MEtaO0F1RHZ4S0E7RUFDRSxtQmxEMnpCa0M7QUwrOUlwQztBdUR4eEtFO0VBQ0UsK0JBQUE7RUFDQSxhbER1ekJnQztFa0R0ekJoQyxZbERxekJnQztFa0RwekJoQyxnQkFBQTtBdkQweEtKO0F1RHh4S0k7RUFDRSxPQUFBO0VBQ0Esb0NBQUE7RUFDQSx1Q2xEbXpCOEI7QUx1K0lwQztBdUR2eEtJO0VBQ0UsU2xEOEp3QjtFa0Q3SnhCLG9DQUFBO0VBQ0Esd0JoRHhFTTtBUGkyS1o7QXVEcHhLQTtFQUNFLGtCbERveUJrQztBTG0vSXBDO0F1RHJ4S0U7RUFDRSw4QkFBQTtBdkR1eEtKO0F1RHJ4S0k7RUFDRSxNQUFBO0VBQ0Esb0NBQUE7RUFDQSx3Q2xEK3hCOEI7QUx3L0lwQztBdURweEtJO0VBQ0UsUWxEMEl3QjtFa0R6SXhCLG9DQUFBO0VBQ0EseUJoRDVGTTtBUGszS1o7QXVEanhLRTtFQUNFLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLFNBQUE7RUFDQSxjQUFBO0VBQ0EsV2xEMndCZ0M7RWtEMXdCaEMsb0JBQUE7RUFDQSxXQUFBO0VBQ0EsZ0NBQUE7QXZEbXhLSjtBdUQvd0tBO0VBQ0Usb0JsRG93QmtDO0FMOGdKcEM7QXVEaHhLRTtFQUNFLGdDQUFBO0VBQ0EsYWxEZ3dCZ0M7RWtEL3ZCaEMsWWxEOHZCZ0M7RWtEN3ZCaEMsZ0JBQUE7QXZEa3hLSjtBdURoeEtJO0VBQ0UsUUFBQTtFQUNBLG9DQUFBO0VBQ0Esc0NsRDR2QjhCO0FMc2hKcEM7QXVEL3dLSTtFQUNFLFVsRHVHd0I7RWtEdEd4QixvQ0FBQTtFQUNBLHVCaEQvSE07QVBnNUtaO0F1RDN2S0E7RUFDRSx1QkFBQTtFQUNBLGdCQUFBO0VqRDNCSSxtQkF0Q2E7RWlEb0VqQix5QmxEOHNCa0M7RWtEN3NCbEMsZ0NBQUE7RXpDaEpFLDBDeUNpSm9CO0V6Q2hKcEIsMkN5Q2dKb0I7QXZEOHZLeEI7QXVEM3ZLRTtFQUNFLGFBQUE7QXZENnZLSjtBdUR6dktBO0VBQ0UsdUJBQUE7RUFDQSxjaEQ1SlU7QVB3NUtaO0F3RHg1S0E7RUFDRSxrQkFBQTtBeEQyNUtGO0F3RHg1S0E7RUFDRSxtQkFBQTtBeEQyNUtGO0F3RHg1S0E7RUFDRSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxnQkFBQTtBeEQyNUtGO0F5RGw3S0U7RUFDRSxjQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7QXpEbzdLSjtBd0Q1NUtBO0VBQ0Usa0JBQUE7RUFDQSxhQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLG1DQUFBO1VBQUEsMkJBQUE7RWpDNUJJLHNDaUM2Qko7QXhEKzVLRjtBdUJ2N0tJO0VpQ2lCSjtJakNoQk0sZ0JBQUE7RXZCMDdLSjtBQUNGO0F3RGo2S0E7OztFQUdFLGNBQUE7QXhEbzZLRjtBd0RqNktBOztFQUVFLDJCQUFBO0F4RG82S0Y7QXdEajZLQTs7RUFFRSw0QkFBQTtBeERvNktGO0F3RDM1S0U7RUFDRSxVQUFBO0VBQ0EsNEJBQUE7RUFDQSxlQUFBO0F4RDg1S0o7QXdEMzVLRTs7O0VBR0UsVUFBQTtFQUNBLFVBQUE7QXhENjVLSjtBd0QxNUtFOztFQUVFLFVBQUE7RUFDQSxVQUFBO0VqQ3RFRSwyQmlDdUVGO0F4RDQ1S0o7QXVCOTlLSTtFaUM4REY7O0lqQzdESSxnQkFBQTtFdkJrK0tKO0FBQ0Y7QXdEejVLQTs7RUFFRSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtFQUVBLGFBQUE7RUFDQSxtQkFBQTtFQUNBLHVCQUFBO0VBQ0EsVW5EODdCbUM7RW1ENzdCbkMsV2pEOUZVO0VpRCtGVixrQkFBQTtFQUNBLFluRDQ3Qm1DO0VrQnpoQy9CLDhCaUM4Rko7QXhEMjVLRjtBdUJwL0tJO0VpQzJFSjs7SWpDMUVNLGdCQUFBO0V2QncvS0o7QUFDRjtBU3IvS0U7OztFK0N3RkUsV2pEckdRO0VpRHNHUixxQkFBQTtFQUNBLFVBQUE7RUFDQSxZbkRxN0JpQztBTDYrSXJDO0F3RC81S0E7RUFDRSxPQUFBO0F4RGs2S0Y7QXdENzVLQTtFQUNFLFFBQUE7QXhEZzZLRjtBd0R6NUtBOztFQUVFLHFCQUFBO0VBQ0EsV25EODZCbUM7RW1ENzZCbkMsWW5ENjZCbUM7RW1ENTZCbkMsbUNBQUE7QXhENDVLRjtBd0QxNUtBO0VBQ0UsbU1uRDI2Qm1DO0FMay9JckM7QXdEMzVLQTtFQUNFLG1NbkR5NkJtQztBTHEvSXJDO0F3RHI1S0E7RUFDRSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsT0FBQTtFQUNBLFdBQUE7RUFDQSxhQUFBO0VBQ0EsdUJBQUE7RUFDQSxlQUFBO0VBRUEsaUJuRG80Qm1DO0VtRG40Qm5DLGdCbkRtNEJtQztFbURsNEJuQyxnQkFBQTtBeER1NUtGO0F3RHI1S0U7RUFDRSx1QkFBQTtFQUNBLGNBQUE7RUFDQSxXbkRrNEJpQztFbURqNEJqQyxXbkRrNEJpQztFbURqNEJqQyxpQm5EbTRCaUM7RW1EbDRCakMsZ0JuRGs0QmlDO0VtRGo0QmpDLG1CQUFBO0VBQ0EsZUFBQTtFQUNBLHNCakRwS1E7RWlEcUtSLDRCQUFBO0VBRUEsa0NBQUE7RUFDQSxxQ0FBQTtFQUNBLFlBQUE7RWpDdEtFLDZCaUN1S0Y7QXhEczVLSjtBdUJ4akxJO0VpQ21KRjtJakNsSkksZ0JBQUE7RXZCMmpMSjtBQUNGO0F3RHg1S0U7RUFDRSxVQUFBO0F4RDA1S0o7QXdEajVLQTtFQUNFLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFlBQUE7RUFDQSxTQUFBO0VBQ0EsV0FBQTtFQUNBLGlCQUFBO0VBQ0Esb0JBQUE7RUFDQSxXakQvTFU7RWlEZ01WLGtCQUFBO0F4RG81S0Y7QTBEbmxMQTtFQUNFO0lBQUsseUJBQUE7RTFEdWxMTDtBQUNGO0EwRHpsTEE7RUFDRTtJQUFLLHlCQUFBO0UxRHVsTEw7QUFDRjtBMERybExBO0VBQ0UscUJBQUE7RUFDQSxXckQ4aUNzQjtFcUQ3aUN0QixZckQ2aUNzQjtFcUQ1aUN0QiwyQkFBQTtFQUNBLGlDQUFBO0VBQ0EsK0JBQUE7RUFFQSxrQkFBQTtFQUNBLHVEQUFBO1VBQUEsK0NBQUE7QTFEc2xMRjtBMERubExBO0VBQ0UsV3JEdWlDd0I7RXFEdGlDeEIsWXJEc2lDd0I7RXFEcmlDeEIsbUJyRHVpQ3dCO0FMK2lKMUI7QTBEL2tMQTtFQUNFO0lBQ0UsbUJBQUE7RTFEa2xMRjtFMERobExBO0lBQ0UsVUFBQTtFMURrbExGO0FBQ0Y7QTBEeGxMQTtFQUNFO0lBQ0UsbUJBQUE7RTFEa2xMRjtFMERobExBO0lBQ0UsVUFBQTtFMURrbExGO0FBQ0Y7QTBEL2tMQTtFQUNFLHFCQUFBO0VBQ0EsV3JEK2dDc0I7RXFEOWdDdEIsWXJEOGdDc0I7RXFEN2dDdEIsMkJBQUE7RUFDQSw4QkFBQTtFQUVBLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLHFEQUFBO1VBQUEsNkNBQUE7QTFEZ2xMRjtBMEQ3a0xBO0VBQ0UsV3JEd2dDd0I7RXFEdmdDeEIsWXJEdWdDd0I7QUx5a0oxQjtBMkRub0xBO0VBQXFCLG1DQUFBO0EzRHVvTHJCO0EyRHRvTEE7RUFBcUIsOEJBQUE7QTNEMG9MckI7QTJEem9MQTtFQUFxQixpQ0FBQTtBM0Q2b0xyQjtBMkQ1b0xBO0VBQXFCLGlDQUFBO0EzRGdwTHJCO0EyRC9vTEE7RUFBcUIsc0NBQUE7QTNEbXBMckI7QTJEbHBMQTtFQUFxQixtQ0FBQTtBM0RzcExyQjtBNER4cExFO0VBQ0Usb0NBQUE7QTVEMnBMSjtBU2pwTEU7OztFbURMSSxvQ0FBQTtBNUQ0cExOO0E0RGxxTEU7RUFDRSxvQ0FBQTtBNURxcUxKO0FTM3BMRTs7O0VtRExJLG9DQUFBO0E1RHNxTE47QTRENXFMRTtFQUNFLG9DQUFBO0E1RCtxTEo7QVNycUxFOzs7RW1ETEksb0NBQUE7QTVEZ3JMTjtBNER0ckxFO0VBQ0Usb0NBQUE7QTVEeXJMSjtBUy9xTEU7OztFbURMSSxvQ0FBQTtBNUQwckxOO0E0RGhzTEU7RUFDRSxvQ0FBQTtBNURtc0xKO0FTenJMRTs7O0VtRExJLG9DQUFBO0E1RG9zTE47QTREMXNMRTtFQUNFLG9DQUFBO0E1RDZzTEo7QVNuc0xFOzs7RW1ETEksb0NBQUE7QTVEOHNMTjtBNERwdExFO0VBQ0Usb0NBQUE7QTVEdXRMSjtBUzdzTEU7OztFbURMSSxvQ0FBQTtBNUR3dExOO0E0RDl0TEU7RUFDRSxvQ0FBQTtBNURpdUxKO0FTdnRMRTs7O0VtRExJLG9DQUFBO0E1RGt1TE47QTZEanVMQTtFQUNFLGlDQUFBO0E3RG91TEY7QTZEanVMQTtFQUNFLHdDQUFBO0E3RG91TEY7QThEL3VMQTtFQUFrQixvQ0FBQTtBOURtdkxsQjtBOERsdkxBO0VBQWtCLHdDQUFBO0E5RHN2TGxCO0E4RHJ2TEE7RUFBa0IsMENBQUE7QTlEeXZMbEI7QThEeHZMQTtFQUFrQiwyQ0FBQTtBOUQ0dkxsQjtBOEQzdkxBO0VBQWtCLHlDQUFBO0E5RCt2TGxCO0E4RDd2TEE7RUFBbUIsb0JBQUE7QTlEaXdMbkI7QThEaHdMQTtFQUFtQix3QkFBQTtBOURvd0xuQjtBOERud0xBO0VBQW1CLDBCQUFBO0E5RHV3TG5CO0E4RHR3TEE7RUFBbUIsMkJBQUE7QTlEMHdMbkI7QThEendMQTtFQUFtQix5QkFBQTtBOUQ2d0xuQjtBOEQxd0xFO0VBQ0UsZ0NBQUE7QTlENndMSjtBOEQ5d0xFO0VBQ0UsZ0NBQUE7QTlEaXhMSjtBOERseExFO0VBQ0UsZ0NBQUE7QTlEcXhMSjtBOER0eExFO0VBQ0UsZ0NBQUE7QTlEeXhMSjtBOEQxeExFO0VBQ0UsZ0NBQUE7QTlENnhMSjtBOEQ5eExFO0VBQ0UsZ0NBQUE7QTlEaXlMSjtBOERseUxFO0VBQ0UsZ0NBQUE7QTlEcXlMSjtBOER0eUxFO0VBQ0UsZ0NBQUE7QTlEeXlMSjtBOERyeUxBO0VBQ0UsNkJBQUE7QTlEd3lMRjtBOERqeUxBO0VBQ0UsZ0NBQUE7QTlEb3lMRjtBOERqeUxBO0VBQ0UsaUNBQUE7QTlEb3lMRjtBOERqeUxBO0VBQ0UsMENBQUE7RUFDQSwyQ0FBQTtBOURveUxGO0E4RGp5TEE7RUFDRSwyQ0FBQTtFQUNBLDhDQUFBO0E5RG95TEY7QThEanlMQTtFQUNFLDhDQUFBO0VBQ0EsNkNBQUE7QTlEb3lMRjtBOERqeUxBO0VBQ0UsMENBQUE7RUFDQSw2Q0FBQTtBOURveUxGO0E4RGp5TEE7RUFDRSxnQ0FBQTtBOURveUxGO0E4RGp5TEE7RUFDRSw2QkFBQTtBOURveUxGO0E4RGp5TEE7RUFDRSwrQkFBQTtBOURveUxGO0E4RGp5TEE7RUFDRSwyQkFBQTtBOURveUxGO0F5RDUyTEU7RUFDRSxjQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7QXpEKzJMSjtBK0R4MkxNO0VBQXdCLHdCQUFBO0EvRDQyTDlCO0ErRDUyTE07RUFBd0IsMEJBQUE7QS9EZzNMOUI7QStEaDNMTTtFQUF3QixnQ0FBQTtBL0RvM0w5QjtBK0RwM0xNO0VBQXdCLHlCQUFBO0EvRHczTDlCO0ErRHgzTE07RUFBd0IseUJBQUE7QS9ENDNMOUI7QStENTNMTTtFQUF3Qiw2QkFBQTtBL0RnNEw5QjtBK0RoNExNO0VBQXdCLDhCQUFBO0EvRG80TDlCO0ErRHA0TE07RUFBd0Isd0JBQUE7QS9EdzRMOUI7QStEeDRMTTtFQUF3QiwrQkFBQTtBL0Q0NEw5QjtBa0IzMUxJO0U2Q2pERTtJQUF3Qix3QkFBQTtFL0RpNUw1Qjs7RStEajVMSTtJQUF3QiwwQkFBQTtFL0RxNUw1Qjs7RStEcjVMSTtJQUF3QixnQ0FBQTtFL0R5NUw1Qjs7RStEejVMSTtJQUF3Qix5QkFBQTtFL0Q2NUw1Qjs7RStENzVMSTtJQUF3Qix5QkFBQTtFL0RpNkw1Qjs7RStEajZMSTtJQUF3Qiw2QkFBQTtFL0RxNkw1Qjs7RStEcjZMSTtJQUF3Qiw4QkFBQTtFL0R5Nkw1Qjs7RStEejZMSTtJQUF3Qix3QkFBQTtFL0Q2Nkw1Qjs7RStENzZMSTtJQUF3QiwrQkFBQTtFL0RpN0w1QjtBQUNGO0FrQmo0TEk7RTZDakRFO0lBQXdCLHdCQUFBO0UvRHM3TDVCOztFK0R0N0xJO0lBQXdCLDBCQUFBO0UvRDA3TDVCOztFK0QxN0xJO0lBQXdCLGdDQUFBO0UvRDg3TDVCOztFK0Q5N0xJO0lBQXdCLHlCQUFBO0UvRGs4TDVCOztFK0RsOExJO0lBQXdCLHlCQUFBO0UvRHM4TDVCOztFK0R0OExJO0lBQXdCLDZCQUFBO0UvRDA4TDVCOztFK0QxOExJO0lBQXdCLDhCQUFBO0UvRDg4TDVCOztFK0Q5OExJO0lBQXdCLHdCQUFBO0UvRGs5TDVCOztFK0RsOUxJO0lBQXdCLCtCQUFBO0UvRHM5TDVCO0FBQ0Y7QWtCdDZMSTtFNkNqREU7SUFBd0Isd0JBQUE7RS9EMjlMNUI7O0UrRDM5TEk7SUFBd0IsMEJBQUE7RS9EKzlMNUI7O0UrRC85TEk7SUFBd0IsZ0NBQUE7RS9EbStMNUI7O0UrRG4rTEk7SUFBd0IseUJBQUE7RS9EdStMNUI7O0UrRHYrTEk7SUFBd0IseUJBQUE7RS9EMitMNUI7O0UrRDMrTEk7SUFBd0IsNkJBQUE7RS9EKytMNUI7O0UrRC8rTEk7SUFBd0IsOEJBQUE7RS9EbS9MNUI7O0UrRG4vTEk7SUFBd0Isd0JBQUE7RS9EdS9MNUI7O0UrRHYvTEk7SUFBd0IsK0JBQUE7RS9EMi9MNUI7QUFDRjtBa0IzOExJO0U2Q2pERTtJQUF3Qix3QkFBQTtFL0RnZ001Qjs7RStEaGdNSTtJQUF3QiwwQkFBQTtFL0RvZ001Qjs7RStEcGdNSTtJQUF3QixnQ0FBQTtFL0R3Z001Qjs7RStEeGdNSTtJQUF3Qix5QkFBQTtFL0Q0Z001Qjs7RStENWdNSTtJQUF3Qix5QkFBQTtFL0RnaE01Qjs7RStEaGhNSTtJQUF3Qiw2QkFBQTtFL0RvaE01Qjs7RStEcGhNSTtJQUF3Qiw4QkFBQTtFL0R3aE01Qjs7RStEeGhNSTtJQUF3Qix3QkFBQTtFL0Q0aE01Qjs7RStENWhNSTtJQUF3QiwrQkFBQTtFL0RnaU01QjtBQUNGO0ErRHZoTUE7RUFFSTtJQUFxQix3QkFBQTtFL0R5aE12Qjs7RStEemhNRTtJQUFxQiwwQkFBQTtFL0Q2aE12Qjs7RStEN2hNRTtJQUFxQixnQ0FBQTtFL0RpaU12Qjs7RStEamlNRTtJQUFxQix5QkFBQTtFL0RxaU12Qjs7RStEcmlNRTtJQUFxQix5QkFBQTtFL0R5aU12Qjs7RStEemlNRTtJQUFxQiw2QkFBQTtFL0Q2aU12Qjs7RStEN2lNRTtJQUFxQiw4QkFBQTtFL0Rpak12Qjs7RStEampNRTtJQUFxQix3QkFBQTtFL0Rxak12Qjs7RStEcmpNRTtJQUFxQiwrQkFBQTtFL0R5ak12QjtBQUNGO0FnRS9rTUE7RUFDRSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxXQUFBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBO0FoRWlsTUY7QWdFL2tNRTtFQUNFLGNBQUE7RUFDQSxXQUFBO0FoRWlsTUo7QWdFOWtNRTs7Ozs7RUFLRSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxTQUFBO0VBQ0EsT0FBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsU0FBQTtBaEVnbE1KO0FnRXZrTUk7RUFDRSwyQkFBQTtBaEUwa01OO0FnRTNrTUk7RUFDRSxtQkFBQTtBaEU4a01OO0FnRS9rTUk7RUFDRSxnQkFBQTtBaEVrbE1OO0FnRW5sTUk7RUFDRSxpQkFBQTtBaEVzbE1OO0FnRXZsTUk7RUFDRSwyQkFBQTtBaEUwbE1OO0FnRTNsTUk7RUFDRSxtQkFBQTtBaEU4bE1OO0FnRS9sTUk7RUFDRSxnQkFBQTtBaEVrbU1OO0FnRW5tTUk7RUFDRSxpQkFBQTtBaEVzbU1OO0FpRS9uTUk7RUFBZ0MsOEJBQUE7QWpFbW9NcEM7QWlFbG9NSTtFQUFnQyxpQ0FBQTtBakVzb01wQztBaUVyb01JO0VBQWdDLHNDQUFBO0FqRXlvTXBDO0FpRXhvTUk7RUFBZ0MseUNBQUE7QWpFNG9NcEM7QWlFMW9NSTtFQUE4QiwwQkFBQTtBakU4b01sQztBaUU3b01JO0VBQThCLDRCQUFBO0FqRWlwTWxDO0FpRWhwTUk7RUFBOEIsa0NBQUE7QWpFb3BNbEM7QWlFbnBNSTtFQUE4Qix5QkFBQTtBakV1cE1sQztBaUV0cE1JO0VBQThCLHVCQUFBO0FqRTBwTWxDO0FpRXpwTUk7RUFBOEIsdUJBQUE7QWpFNnBNbEM7QWlFNXBNSTtFQUE4Qix5QkFBQTtBakVncU1sQztBaUUvcE1JO0VBQThCLHlCQUFBO0FqRW1xTWxDO0FpRWpxTUk7RUFBb0Msc0NBQUE7QWpFcXFNeEM7QWlFcHFNSTtFQUFvQyxvQ0FBQTtBakV3cU14QztBaUV2cU1JO0VBQW9DLGtDQUFBO0FqRTJxTXhDO0FpRTFxTUk7RUFBb0MseUNBQUE7QWpFOHFNeEM7QWlFN3FNSTtFQUFvQyx3Q0FBQTtBakVpck14QztBaUUvcU1JO0VBQWlDLGtDQUFBO0FqRW1yTXJDO0FpRWxyTUk7RUFBaUMsZ0NBQUE7QWpFc3JNckM7QWlFcnJNSTtFQUFpQyw4QkFBQTtBakV5ck1yQztBaUV4ck1JO0VBQWlDLGdDQUFBO0FqRTRyTXJDO0FpRTNyTUk7RUFBaUMsK0JBQUE7QWpFK3JNckM7QWlFN3JNSTtFQUFrQyxvQ0FBQTtBakVpc010QztBaUVoc01JO0VBQWtDLGtDQUFBO0FqRW9zTXRDO0FpRW5zTUk7RUFBa0MsZ0NBQUE7QWpFdXNNdEM7QWlFdHNNSTtFQUFrQyx1Q0FBQTtBakUwc010QztBaUV6c01JO0VBQWtDLHNDQUFBO0FqRTZzTXRDO0FpRTVzTUk7RUFBa0MsaUNBQUE7QWpFZ3RNdEM7QWlFOXNNSTtFQUFnQywyQkFBQTtBakVrdE1wQztBaUVqdE1JO0VBQWdDLGlDQUFBO0FqRXF0TXBDO0FpRXB0TUk7RUFBZ0MsK0JBQUE7QWpFd3RNcEM7QWlFdnRNSTtFQUFnQyw2QkFBQTtBakUydE1wQztBaUUxdE1JO0VBQWdDLCtCQUFBO0FqRTh0TXBDO0FpRTd0TUk7RUFBZ0MsOEJBQUE7QWpFaXVNcEM7QWtCcnRNSTtFK0NsREE7SUFBZ0MsOEJBQUE7RWpFNHdNbEM7O0VpRTN3TUU7SUFBZ0MsaUNBQUE7RWpFK3dNbEM7O0VpRTl3TUU7SUFBZ0Msc0NBQUE7RWpFa3hNbEM7O0VpRWp4TUU7SUFBZ0MseUNBQUE7RWpFcXhNbEM7O0VpRW54TUU7SUFBOEIsMEJBQUE7RWpFdXhNaEM7O0VpRXR4TUU7SUFBOEIsNEJBQUE7RWpFMHhNaEM7O0VpRXp4TUU7SUFBOEIsa0NBQUE7RWpFNnhNaEM7O0VpRTV4TUU7SUFBOEIseUJBQUE7RWpFZ3lNaEM7O0VpRS94TUU7SUFBOEIsdUJBQUE7RWpFbXlNaEM7O0VpRWx5TUU7SUFBOEIsdUJBQUE7RWpFc3lNaEM7O0VpRXJ5TUU7SUFBOEIseUJBQUE7RWpFeXlNaEM7O0VpRXh5TUU7SUFBOEIseUJBQUE7RWpFNHlNaEM7O0VpRTF5TUU7SUFBb0Msc0NBQUE7RWpFOHlNdEM7O0VpRTd5TUU7SUFBb0Msb0NBQUE7RWpFaXpNdEM7O0VpRWh6TUU7SUFBb0Msa0NBQUE7RWpFb3pNdEM7O0VpRW56TUU7SUFBb0MseUNBQUE7RWpFdXpNdEM7O0VpRXR6TUU7SUFBb0Msd0NBQUE7RWpFMHpNdEM7O0VpRXh6TUU7SUFBaUMsa0NBQUE7RWpFNHpNbkM7O0VpRTN6TUU7SUFBaUMsZ0NBQUE7RWpFK3pNbkM7O0VpRTl6TUU7SUFBaUMsOEJBQUE7RWpFazBNbkM7O0VpRWowTUU7SUFBaUMsZ0NBQUE7RWpFcTBNbkM7O0VpRXAwTUU7SUFBaUMsK0JBQUE7RWpFdzBNbkM7O0VpRXQwTUU7SUFBa0Msb0NBQUE7RWpFMDBNcEM7O0VpRXowTUU7SUFBa0Msa0NBQUE7RWpFNjBNcEM7O0VpRTUwTUU7SUFBa0MsZ0NBQUE7RWpFZzFNcEM7O0VpRS8wTUU7SUFBa0MsdUNBQUE7RWpFbTFNcEM7O0VpRWwxTUU7SUFBa0Msc0NBQUE7RWpFczFNcEM7O0VpRXIxTUU7SUFBa0MsaUNBQUE7RWpFeTFNcEM7O0VpRXYxTUU7SUFBZ0MsMkJBQUE7RWpFMjFNbEM7O0VpRTExTUU7SUFBZ0MsaUNBQUE7RWpFODFNbEM7O0VpRTcxTUU7SUFBZ0MsK0JBQUE7RWpFaTJNbEM7O0VpRWgyTUU7SUFBZ0MsNkJBQUE7RWpFbzJNbEM7O0VpRW4yTUU7SUFBZ0MsK0JBQUE7RWpFdTJNbEM7O0VpRXQyTUU7SUFBZ0MsOEJBQUE7RWpFMDJNbEM7QUFDRjtBa0IvMU1JO0UrQ2xEQTtJQUFnQyw4QkFBQTtFakVxNU1sQzs7RWlFcDVNRTtJQUFnQyxpQ0FBQTtFakV3NU1sQzs7RWlFdjVNRTtJQUFnQyxzQ0FBQTtFakUyNU1sQzs7RWlFMTVNRTtJQUFnQyx5Q0FBQTtFakU4NU1sQzs7RWlFNTVNRTtJQUE4QiwwQkFBQTtFakVnNk1oQzs7RWlFLzVNRTtJQUE4Qiw0QkFBQTtFakVtNk1oQzs7RWlFbDZNRTtJQUE4QixrQ0FBQTtFakVzNk1oQzs7RWlFcjZNRTtJQUE4Qix5QkFBQTtFakV5Nk1oQzs7RWlFeDZNRTtJQUE4Qix1QkFBQTtFakU0Nk1oQzs7RWlFMzZNRTtJQUE4Qix1QkFBQTtFakUrNk1oQzs7RWlFOTZNRTtJQUE4Qix5QkFBQTtFakVrN01oQzs7RWlFajdNRTtJQUE4Qix5QkFBQTtFakVxN01oQzs7RWlFbjdNRTtJQUFvQyxzQ0FBQTtFakV1N010Qzs7RWlFdDdNRTtJQUFvQyxvQ0FBQTtFakUwN010Qzs7RWlFejdNRTtJQUFvQyxrQ0FBQTtFakU2N010Qzs7RWlFNTdNRTtJQUFvQyx5Q0FBQTtFakVnOE10Qzs7RWlFLzdNRTtJQUFvQyx3Q0FBQTtFakVtOE10Qzs7RWlFajhNRTtJQUFpQyxrQ0FBQTtFakVxOE1uQzs7RWlFcDhNRTtJQUFpQyxnQ0FBQTtFakV3OE1uQzs7RWlFdjhNRTtJQUFpQyw4QkFBQTtFakUyOE1uQzs7RWlFMThNRTtJQUFpQyxnQ0FBQTtFakU4OE1uQzs7RWlFNzhNRTtJQUFpQywrQkFBQTtFakVpOU1uQzs7RWlFLzhNRTtJQUFrQyxvQ0FBQTtFakVtOU1wQzs7RWlFbDlNRTtJQUFrQyxrQ0FBQTtFakVzOU1wQzs7RWlFcjlNRTtJQUFrQyxnQ0FBQTtFakV5OU1wQzs7RWlFeDlNRTtJQUFrQyx1Q0FBQTtFakU0OU1wQzs7RWlFMzlNRTtJQUFrQyxzQ0FBQTtFakUrOU1wQzs7RWlFOTlNRTtJQUFrQyxpQ0FBQTtFakVrK01wQzs7RWlFaCtNRTtJQUFnQywyQkFBQTtFakVvK01sQzs7RWlFbitNRTtJQUFnQyxpQ0FBQTtFakV1K01sQzs7RWlFdCtNRTtJQUFnQywrQkFBQTtFakUwK01sQzs7RWlFeitNRTtJQUFnQyw2QkFBQTtFakU2K01sQzs7RWlFNStNRTtJQUFnQywrQkFBQTtFakVnL01sQzs7RWlFLytNRTtJQUFnQyw4QkFBQTtFakVtL01sQztBQUNGO0FrQngrTUk7RStDbERBO0lBQWdDLDhCQUFBO0VqRThoTmxDOztFaUU3aE5FO0lBQWdDLGlDQUFBO0VqRWlpTmxDOztFaUVoaU5FO0lBQWdDLHNDQUFBO0VqRW9pTmxDOztFaUVuaU5FO0lBQWdDLHlDQUFBO0VqRXVpTmxDOztFaUVyaU5FO0lBQThCLDBCQUFBO0VqRXlpTmhDOztFaUV4aU5FO0lBQThCLDRCQUFBO0VqRTRpTmhDOztFaUUzaU5FO0lBQThCLGtDQUFBO0VqRStpTmhDOztFaUU5aU5FO0lBQThCLHlCQUFBO0VqRWtqTmhDOztFaUVqak5FO0lBQThCLHVCQUFBO0VqRXFqTmhDOztFaUVwak5FO0lBQThCLHVCQUFBO0VqRXdqTmhDOztFaUV2ak5FO0lBQThCLHlCQUFBO0VqRTJqTmhDOztFaUUxak5FO0lBQThCLHlCQUFBO0VqRThqTmhDOztFaUU1ak5FO0lBQW9DLHNDQUFBO0VqRWdrTnRDOztFaUUvak5FO0lBQW9DLG9DQUFBO0VqRW1rTnRDOztFaUVsa05FO0lBQW9DLGtDQUFBO0VqRXNrTnRDOztFaUVya05FO0lBQW9DLHlDQUFBO0VqRXlrTnRDOztFaUV4a05FO0lBQW9DLHdDQUFBO0VqRTRrTnRDOztFaUUxa05FO0lBQWlDLGtDQUFBO0VqRThrTm5DOztFaUU3a05FO0lBQWlDLGdDQUFBO0VqRWlsTm5DOztFaUVobE5FO0lBQWlDLDhCQUFBO0VqRW9sTm5DOztFaUVubE5FO0lBQWlDLGdDQUFBO0VqRXVsTm5DOztFaUV0bE5FO0lBQWlDLCtCQUFBO0VqRTBsTm5DOztFaUV4bE5FO0lBQWtDLG9DQUFBO0VqRTRsTnBDOztFaUUzbE5FO0lBQWtDLGtDQUFBO0VqRStsTnBDOztFaUU5bE5FO0lBQWtDLGdDQUFBO0VqRWttTnBDOztFaUVqbU5FO0lBQWtDLHVDQUFBO0VqRXFtTnBDOztFaUVwbU5FO0lBQWtDLHNDQUFBO0VqRXdtTnBDOztFaUV2bU5FO0lBQWtDLGlDQUFBO0VqRTJtTnBDOztFaUV6bU5FO0lBQWdDLDJCQUFBO0VqRTZtTmxDOztFaUU1bU5FO0lBQWdDLGlDQUFBO0VqRWduTmxDOztFaUUvbU5FO0lBQWdDLCtCQUFBO0VqRW1uTmxDOztFaUVsbk5FO0lBQWdDLDZCQUFBO0VqRXNuTmxDOztFaUVybk5FO0lBQWdDLCtCQUFBO0VqRXluTmxDOztFaUV4bk5FO0lBQWdDLDhCQUFBO0VqRTRuTmxDO0FBQ0Y7QWtCam5OSTtFK0NsREE7SUFBZ0MsOEJBQUE7RWpFdXFObEM7O0VpRXRxTkU7SUFBZ0MsaUNBQUE7RWpFMHFObEM7O0VpRXpxTkU7SUFBZ0Msc0NBQUE7RWpFNnFObEM7O0VpRTVxTkU7SUFBZ0MseUNBQUE7RWpFZ3JObEM7O0VpRTlxTkU7SUFBOEIsMEJBQUE7RWpFa3JOaEM7O0VpRWpyTkU7SUFBOEIsNEJBQUE7RWpFcXJOaEM7O0VpRXByTkU7SUFBOEIsa0NBQUE7RWpFd3JOaEM7O0VpRXZyTkU7SUFBOEIseUJBQUE7RWpFMnJOaEM7O0VpRTFyTkU7SUFBOEIsdUJBQUE7RWpFOHJOaEM7O0VpRTdyTkU7SUFBOEIsdUJBQUE7RWpFaXNOaEM7O0VpRWhzTkU7SUFBOEIseUJBQUE7RWpFb3NOaEM7O0VpRW5zTkU7SUFBOEIseUJBQUE7RWpFdXNOaEM7O0VpRXJzTkU7SUFBb0Msc0NBQUE7RWpFeXNOdEM7O0VpRXhzTkU7SUFBb0Msb0NBQUE7RWpFNHNOdEM7O0VpRTNzTkU7SUFBb0Msa0NBQUE7RWpFK3NOdEM7O0VpRTlzTkU7SUFBb0MseUNBQUE7RWpFa3ROdEM7O0VpRWp0TkU7SUFBb0Msd0NBQUE7RWpFcXROdEM7O0VpRW50TkU7SUFBaUMsa0NBQUE7RWpFdXRObkM7O0VpRXR0TkU7SUFBaUMsZ0NBQUE7RWpFMHRObkM7O0VpRXp0TkU7SUFBaUMsOEJBQUE7RWpFNnRObkM7O0VpRTV0TkU7SUFBaUMsZ0NBQUE7RWpFZ3VObkM7O0VpRS90TkU7SUFBaUMsK0JBQUE7RWpFbXVObkM7O0VpRWp1TkU7SUFBa0Msb0NBQUE7RWpFcXVOcEM7O0VpRXB1TkU7SUFBa0Msa0NBQUE7RWpFd3VOcEM7O0VpRXZ1TkU7SUFBa0MsZ0NBQUE7RWpFMnVOcEM7O0VpRTF1TkU7SUFBa0MsdUNBQUE7RWpFOHVOcEM7O0VpRTd1TkU7SUFBa0Msc0NBQUE7RWpFaXZOcEM7O0VpRWh2TkU7SUFBa0MsaUNBQUE7RWpFb3ZOcEM7O0VpRWx2TkU7SUFBZ0MsMkJBQUE7RWpFc3ZObEM7O0VpRXJ2TkU7SUFBZ0MsaUNBQUE7RWpFeXZObEM7O0VpRXh2TkU7SUFBZ0MsK0JBQUE7RWpFNHZObEM7O0VpRTN2TkU7SUFBZ0MsNkJBQUE7RWpFK3ZObEM7O0VpRTl2TkU7SUFBZ0MsK0JBQUE7RWpFa3dObEM7O0VpRWp3TkU7SUFBZ0MsOEJBQUE7RWpFcXdObEM7QUFDRjtBa0Voek5JO0VBQXdCLHNCQUFBO0FsRW16TjVCO0FrRWx6Tkk7RUFBd0IsdUJBQUE7QWxFc3pONUI7QWtFcnpOSTtFQUF3QixzQkFBQTtBbEV5ek41QjtBa0Jyd05JO0VnRHREQTtJQUF3QixzQkFBQTtFbEVnME4xQjs7RWtFL3pORTtJQUF3Qix1QkFBQTtFbEVtME4xQjs7RWtFbDBORTtJQUF3QixzQkFBQTtFbEVzME4xQjtBQUNGO0FrQm54Tkk7RWdEdERBO0lBQXdCLHNCQUFBO0VsRTYwTjFCOztFa0U1ME5FO0lBQXdCLHVCQUFBO0VsRWcxTjFCOztFa0UvME5F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O0VBRUUsNkJBQUE7QTFFcWtPVjtBMEVua09ROztFQUVFLCtCQUFBO0ExRXNrT1Y7QTBFcGtPUTs7RUFFRSxnQ0FBQTtBMUV1a09WO0EwRXJrT1E7O0VBRUUsOEJBQUE7QTFFd2tPVjtBMEV2bE9RO0VBQWdDLHVCQUFBO0ExRTJsT3hDO0EwRTFsT1E7O0VBRUUsMkJBQUE7QTFFNmxPVjtBMEUzbE9ROztFQUVFLDZCQUFBO0ExRThsT1Y7QTBFNWxPUTs7RUFFRSw4QkFBQTtBMUUrbE9WO0EwRTdsT1E7O0VBRUUsNEJBQUE7QTFFZ21PVjtBMEUvbU9RO0VBQWdDLHlCQUFBO0ExRW1uT3hDO0EwRWxuT1E7O0VBRUUsNkJBQUE7QTFFcW5PVjtBMEVubk9ROztFQUVFLCtCQUFBO0ExRXNuT1Y7QTBFcG5PUTs7RUFFRSxnQ0FBQTtBMUV1bk9WO0EwRXJuT1E7O0VBRUUsOEJBQUE7QTFFd25PVjtBMEV2b09RO0VBQWdDLHVCQUFBO0ExRTJvT3hDO0EwRTFvT1E7O0VBRUUsMkJBQUE7QTFFNm9PVjtBMEUzb09ROztFQUVFLDZCQUFBO0ExRThvT1Y7QTBFNW9PUTs7RUFFRSw4QkFBQTtBMUUrb09WO0EwRTdvT1E7O0VBRUUsNEJBQUE7QTFFZ3BPVjtBMEUvcE9RO0VBQWdDLHFCQUFBO0ExRW1xT3hDO0EwRWxxT1E7O0VBRUUseUJBQUE7QTFFcXFPVjtBMEVucU9ROztFQUVFLDJCQUFBO0ExRXNxT1Y7QTBFcHFPUTs7RUFFRSw0QkFBQTtBMUV1cU9WO0EwRXJxT1E7O0VBRUUsMEJBQUE7QTFFd3FPVjtBMEV2ck9RO0VBQWdDLDJCQUFBO0ExRTJyT3hDO0EwRTFyT1E7O0VBRUUsK0JBQUE7QTFFNnJPVjtBMEUzck9ROztFQUVFLGlDQUFBO0ExRThyT1Y7QTBFNXJPUTs7RUFFRSxrQ0FBQTtBMUUrck9WO0EwRTdyT1E7O0VBRUUsZ0NBQUE7QTFFZ3NPVjtBMEUvc09RO0VBQWdDLDBCQUFBO0ExRW10T3hDO0EwRWx0T1E7O0VBRUUsOEJBQUE7QTFFcXRPVjtBMEVudE9ROztFQUVFLGdDQUFBO0ExRXN0T1Y7QTBFcHRPUTs7RUFFRSxpQ0FBQTtBMUV1dE9WO0EwRXJ0T1E7O0VBRUUsK0JBQUE7QTFFd3RPVjtBMEV2dU9RO0VBQWdDLHdCQUFBO0ExRTJ1T3hDO0EwRTF1T1E7O0VBRUUsNEJBQUE7QTFFNnVPVjtBMEUzdU9ROztFQUVFLDhCQUFBO0ExRTh1T1Y7QTBFNXVPUTs7RUFFRSwrQkFBQTtBMUUrdU9WO0EwRTd1T1E7O0VBRUUsNkJBQUE7QTFFZ3ZPVjtBMEUvdk9RO0VBQWdDLDBCQUFBO0ExRW13T3hDO0EwRWx3T1E7O0VBRUUsOEJBQUE7QTFFcXdPVjtBMEVud09ROztFQUVFLGdDQUFBO0ExRXN3T1Y7QTBFcHdPUTs7RUFFRSxpQ0FBQTtBMUV1d09WO0EwRXJ3T1E7O0VBRUUsK0JBQUE7QTFFd3dPVjtBMEV2eE9RO0VBQWdDLHdCQUFBO0ExRTJ4T3hDO0EwRTF4T1E7O0VBRUUsNEJBQUE7QTFFNnhPVjtBMEUzeE9ROztFQUVFLDhCQUFBO0ExRTh4T1Y7QTBFNXhPUTs7RUFFRSwrQkFBQTtBMUUreE9WO0EwRTd4T1E7O0VBRUUsNkJBQUE7QTFFZ3lPVjtBMEV4eE9RO0VBQXdCLDJCQUFBO0ExRTR4T2hDO0EwRTN4T1E7O0VBRUUsK0JBQUE7QTFFOHhPVjtBMEU1eE9ROztFQUVFLGlDQUFBO0ExRSt4T1Y7QTBFN3hPUTs7RUFFRSxrQ0FBQTtBMUVneU9WO0EwRTl4T1E7O0VBRUUsZ0NBQUE7QTFFaXlPVjtBMEVoek9RO0VBQXdCLDBCQUFBO0ExRW96T2hDO0EwRW56T1E7O0VBRUUsOEJBQUE7QTFFc3pPVjtBMEVwek9ROztFQUVFLGdDQUFBO0ExRXV6T1Y7QTBFcnpPUTs7RUFFRSxpQ0FBQTtBMUV3ek9WO0EwRXR6T1E7O0VBRUUsK0JBQUE7QTFFeXpPVjtBMEV4ME9RO0VBQXdCLHdCQUFBO0ExRTQwT2hDO0EwRTMwT1E7O0VBRUUsNEJBQUE7QTFFODBPVjtBMEU1ME9ROztFQUVFLDhCQUFBO0ExRSswT1Y7QTBFNzBPUTs7RUFFRSwrQkFBQTtBMUVnMU9WO0EwRTkwT1E7O0VBRUUsNkJBQUE7QTFFaTFPVjtBMEVoMk9RO0VBQXdCLDBCQUFBO0ExRW8yT2hDO0EwRW4yT1E7O0VBRUUsOEJBQUE7QTFFczJPVjtBMEVwMk9ROztFQUVFLGdDQUFBO0ExRXUyT1Y7QTBFcjJPUTs7RUFFRSxpQ0FBQTtBMUV3Mk9WO0EwRXQyT1E7O0VBRUUsK0JBQUE7QTFFeTJPVjtBMEV4M09RO0VBQXdCLHdCQUFBO0ExRTQzT2hDO0EwRTMzT1E7O0VBRUUsNEJBQUE7QTFFODNPVjtBMEU1M09ROztFQUVFLDhCQUFBO0ExRSszT1Y7QTBFNzNPUTs7RUFFRSwrQkFBQTtBMUVnNE9WO0EwRTkzT1E7O0VBRUUsNkJBQUE7QTFFaTRPVjtBMEUzM09JO0VBQW1CLHVCQUFBO0ExRSszT3ZCO0EwRTkzT0k7O0VBRUUsMkJBQUE7QTFFaTRPTjtBMEUvM09JOztFQUVFLDZCQUFBO0ExRWs0T047QTBFaDRPSTs7RUFFRSw4QkFBQTtBMUVtNE9OO0EwRWo0T0k7O0VBRUUsNEJBQUE7QTFFbzRPTjtBa0I3NE9JO0V3RGxESTtJQUFnQyxvQkFBQTtFMUVvOE90Qzs7RTBFbjhPTTs7SUFFRSx3QkFBQTtFMUVzOE9SOztFMEVwOE9NOztJQUVFLDBCQUFBO0UxRXU4T1I7O0UwRXI4T007O0lBRUUsMkJBQUE7RTFFdzhPUjs7RTBFdDhPTTs7SUFFRSx5QkFBQTtFMUV5OE9SOztFMEV4OU9NO0lBQWdDLDBCQUFBO0UxRTQ5T3RDOztFMEUzOU9NOztJQUVFLDhCQUFBO0UxRTg5T1I7O0UwRTU5T007O0lBRUUsZ0NBQUE7RTFFKzlPUjs7RTBFNzlPTTs7SUFFRSxpQ0FBQTtFMUVnK09SOztFMEU5OU9NOztJQUVFLCtCQUFBO0UxRWkrT1I7O0UwRWgvT007SUFBZ0MseUJBQUE7RTFFby9PdEM7O0UwRW4vT007O0lBRUUsNkJBQUE7RTFFcy9PUjs7RTBFcC9PTTs7SUFFRSwrQkFBQTtFMUV1L09SOztFMEVyL09NOztJQUVFLGdDQUFBO0UxRXcvT1I7O0UwRXQvT007O0lBRUUsOEJBQUE7RTFFeS9PUjs7RTBFeGdQTTtJQUFnQyx1QkFBQTtFMUU0Z1B0Qzs7RTBFM2dQTTs7SUFFRSwyQkFBQTtFMUU4Z1BSOztFMEU1Z1BNOztJQUVFLDZCQUFBO0UxRStnUFI7O0UwRTdnUE07O0lBRUUsOEJBQUE7RTFFZ2hQUjs7RTBFOWdQTTs7SUFFRSw0QkFBQTtFMUVpaFBSOztFMEVoaVBNO0lBQWdDLHlCQUFBO0UxRW9pUHRDOztFMEVuaVBNOztJQUVFLDZCQUFBO0UxRXNpUFI7O0UwRXBpUE07O0lBRUUsK0JBQUE7RTFFdWlQUjs7RTBFcmlQTTs7SUFFRSxnQ0FBQTtFMUV3aVBSOztFMEV0aVBNOztJQUVFLDhCQUFBO0UxRXlpUFI7O0UwRXhqUE07SUFBZ0MsdUJBQUE7RTFFNGpQdEM7O0UwRTNqUE07O0lBRUUsMkJBQUE7RTFFOGpQUjs7RTBFNWpQTTs7SUFFRSw2QkFBQTtFMUUralBSOztFMEU3alBNOztJQUVFLDhCQUFBO0UxRWdrUFI7O0UwRTlqUE07O0lBRUUsNEJBQUE7RTFFaWtQUjs7RTBFaGxQTTtJQUFnQyxxQkFBQTtFMUVvbFB0Qzs7RTBFbmxQTTs7SUFFRSx5QkFBQTtFMUVzbFBSOztFMEVwbFBNOztJQUVFLDJCQUFBO0UxRXVsUFI7O0UwRXJsUE07O0lBRUUsNEJBQUE7RTFFd2xQUjs7RTBFdGxQTTs7SUFFRSwwQkFBQTtFMUV5bFBSOztFMEV4bVBNO0lBQWdDLDJCQUFBO0UxRTRtUHRDOztFMEUzbVBNOztJQUVFLCtCQUFBO0UxRThtUFI7O0UwRTVtUE07O0lBRUUsaUNBQUE7RTFFK21QUjs7RTBFN21QTTs7SUFFRSxrQ0FBQTtFMUVnblBSOztFMEU5bVBNOztJQUVFLGdDQUFBO0UxRWluUFI7O0UwRWhvUE07SUFBZ0MsMEJBQUE7RTFFb29QdEM7O0UwRW5vUE07O0lBRUUsOEJBQUE7RTFFc29QUjs7RTBFcG9QTTs7SUFFRSxnQ0FBQTtFMUV1b1BSOztFMEVyb1BNOztJQUVFLGlDQUFBO0UxRXdvUFI7O0UwRXRvUE07O0lBRUUsK0JBQUE7RTFFeW9QUjs7RTBFeHBQTTtJQUFnQyx3QkFBQTtFMUU0cFB0Qzs7RTBFM3BQTTs7SUFFRSw0QkFBQTtFMUU4cFBSOztFMEU1cFBNOztJQUVFLDhCQUFBO0UxRStwUFI7O0UwRTdwUE07O0lBRUUsK0JBQUE7RTFFZ3FQUjs7RTBFOXBQTTs7SUFFRSw2QkFBQTtFMUVpcVBSOztFMEVoclBNO0lBQWdDLDBCQUFBO0UxRW9yUHRDOztFMEVuclBNOztJQUVFLDhCQUFBO0UxRXNyUFI7O0UwRXByUE07O0lBRUUsZ0NBQUE7RTFFdXJQUjs7RTBFcnJQTTs7SUFFRSxpQ0FBQTtFMUV3clBSOztFMEV0clBNOztJQUVFLCtCQUFBO0UxRXlyUFI7O0UwRXhzUE07SUFBZ0Msd0JBQUE7RTFFNHNQdEM7O0UwRTNzUE07O0lBRUUsNEJBQUE7RTFFOHNQUjs7RTBFNXNQTTs7SUFFRSw4QkFBQTtFMUUrc1BSOztFMEU3c1BNOztJQUVFLCtCQUFBO0UxRWd0UFI7O0UwRTlzUE07O0lBRUUsNkJBQUE7RTFFaXRQUjs7RTBFenNQTTtJQUF3QiwyQkFBQTtFMUU2c1A5Qjs7RTBFNXNQTTs7SUFFRSwrQkFBQTtFMUUrc1BSOztFMEU3c1BNOztJQUVFLGlDQUFBO0UxRWd0UFI7O0UwRTlzUE07O0lBRUUsa0NBQUE7RTFFaXRQUjs7RTBFL3NQTTs7SUFFRSxnQ0FBQTtFMUVrdFBSOztFMEVqdVBNO0lBQXdCLDBCQUFBO0UxRXF1UDlCOztFMEVwdVBNOztJQUVFLDhCQUFBO0UxRXV1UFI7O0UwRXJ1UE07O0lBRUUsZ0NBQUE7RTFFd3VQUjs7RTBFdHVQTTs7SUFFRSxpQ0FBQTtFMUV5dVBSOztFMEV2dVBNOztJQUVFLCtCQUFBO0UxRTB1UFI7O0UwRXp2UE07SUFBd0Isd0JBQUE7RTFFNnZQOUI7O0UwRTV2UE07O0lBRUUsNEJBQUE7RTFFK3ZQUjs7RTBFN3ZQTTs7SUFFRSw4QkFBQTtFMUVnd1BSOztFMEU5dlBNOztJQUVFLCtCQUFBO0UxRWl3UFI7O0UwRS92UE07O0lBRUUsNkJBQUE7RTFFa3dQUjs7RTBFanhQTTtJQUF3QiwwQkFBQTtFMUVxeFA5Qjs7RTBFcHhQTTs7SUFFRSw4QkFBQTtFMUV1eFBSOztFMEVyeFBNOztJQUVFLGdDQUFBO0UxRXd4UFI7O0UwRXR4UE07O0lBRUUsaUNBQUE7RTFFeXhQUjs7RTBFdnhQTTs7SUFFRSwrQkFBQTtFMUUweFBSOztFMEV6eVBNO0lBQXdCLHdCQUFBO0UxRTZ5UDlCOztFMEU1eVBNOztJQUVFLDRCQUFBO0UxRSt5UFI7O0UwRTd5UE07O0lBRUUsOEJBQUE7RTFFZ3pQUjs7RTBFOXlQTTs7SUFFRSwrQkFBQTtFMUVpelBSOztFMEUveVBNOztJQUVFLDZCQUFBO0UxRWt6UFI7O0UwRTV5UEU7SUFBbUIsdUJBQUE7RTFFZ3pQckI7O0UwRS95UEU7O0lBRUUsMkJBQUE7RTFFa3pQSjs7RTBFaHpQRTs7SUFFRSw2QkFBQTtFMUVtelBKOztFMEVqelBFOztJQUVFLDhCQUFBO0UxRW96UEo7O0UwRWx6UEU7O0lBRUUsNEJBQUE7RTFFcXpQSjtBQUNGO0FrQi96UEk7RXdEbERJO0lBQWdDLG9CQUFBO0UxRXEzUHRDOztFMEVwM1BNOztJQUVFLHdCQUFBO0UxRXUzUFI7O0UwRXIzUE07O0lBRUUsMEJBQUE7RTFFdzNQUjs7RTBFdDNQTTs7SUFFRSwyQkFBQTtFMUV5M1BSOztFMEV2M1BNOztJQUVFLHlCQUFBO0UxRTAzUFI7O0UwRXo0UE07SUFBZ0MsMEJBQUE7RTFFNjRQdEM7O0UwRTU0UE07O0lBRUUsOEJBQUE7RTFFKzRQUjs7RTBFNzRQTTs7SUFFRSxnQ0FBQTtFMUVnNVBSOztFMEU5NFBNOztJQUVFLGlDQUFBO0UxRWk1UFI7O0UwRS80UE07O0lBRUUsK0JBQUE7RTFFazVQUjs7RTBFajZQTTtJQUFnQyx5QkFBQTtFMUVxNlB0Qzs7RTBFcDZQTTs7SUFFRSw2QkFBQTtFMUV1NlBSOztFMEVyNlBNOztJQUVFLCtCQUFBO0UxRXc2UFI7O0UwRXQ2UE07O0lBRUUsZ0NBQUE7RTFFeTZQUjs7RTBFdjZQTTs7SUFFRSw4QkFBQTtFMUUwNlBSOztFMEV6N1BNO0lBQWdDLHVCQUFBO0UxRTY3UHRDOztFMEU1N1BNOztJQUVFLDJCQUFBO0UxRSs3UFI7O0UwRTc3UE07O0lBRUUsNkJBQUE7RTFFZzhQUjs7RTBFOTdQTTs7SUFFRSw4QkFBQTtFMUVpOFBSOztFMEUvN1BNOztJQUVFLDRCQUFBO0UxRWs4UFI7O0UwRWo5UE07SUFBZ0MseUJBQUE7RTFFcTlQdEM7O0UwRXA5UE07O0lBRUUsNkJBQUE7RTFFdTlQUjs7RTBFcjlQTTs7SUFFRSwrQkFBQTtFMUV3OVBSOztFMEV0OVBNOztJQUVFLGdDQUFBO0UxRXk5UFI7O0UwRXY5UE07O0lBRUUsOEJBQUE7RTFFMDlQUjs7RTBFeitQTTtJQUFnQyx1QkFBQTtFMUU2K1B0Qzs7RTBFNStQTTs7SUFFRSwyQkFBQTtFMUUrK1BSOztFMEU3K1BNOztJQUVFLDZCQUFBO0UxRWcvUFI7O0UwRTkrUE07O0lBRUUsOEJBQUE7RTFFaS9QUjs7RTBFLytQTTs7SUFFRSw0QkFBQTtFMUVrL1BSOztFMEVqZ1FNO0lBQWdDLHFCQUFBO0UxRXFnUXRDOztFMEVwZ1FNOztJQUVFLHlCQUFBO0UxRXVnUVI7O0UwRXJnUU07O0lBRUUsMkJBQUE7RTFFd2dRUjs7RTBFdGdRTTs7SUFFRSw0QkFBQTtFMUV5Z1FSOztFMEV2Z1FNOztJQUVFLDBCQUFBO0UxRTBnUVI7O0UwRXpoUU07SUFBZ0MsMkJBQUE7RTFFNmhRdEM7O0UwRTVoUU07O0lBRUUsK0JBQUE7RTFFK2hRUjs7RTBFN2hRTTs7SUFFRSxpQ0FBQTtFMUVnaVFSOztFMEU5aFFNOztJQUVFLGtDQUFBO0UxRWlpUVI7O0UwRS9oUU07O0lBRUUsZ0NBQUE7RTFFa2lRUjs7RTBFampRTTtJQUFnQywwQkFBQTtFMUVxalF0Qzs7RTBFcGpRTTs7SUFFRSw4QkFBQTtFMUV1alFSOztFMEVyalFNOztJQUVFLGdDQUFBO0UxRXdqUVI7O0UwRXRqUU07O0lBRUUsaUNBQUE7RTFFeWpRUjs7RTBFdmpRTTs7SUFFRSwrQkFBQTtFMUUwalFSOztFMEV6a1FNO0lBQWdDLHdCQUFBO0UxRTZrUXRDOztFMEU1a1FNOztJQUVFLDRCQUFBO0UxRStrUVI7O0UwRTdrUU07O0lBRUUsOEJBQUE7RTFFZ2xRUjs7RTBFOWtRTTs7SUFFRSwrQkFBQTtFMUVpbFFSOztFMEUva1FNOztJQUVFLDZCQUFBO0UxRWtsUVI7O0UwRWptUU07SUFBZ0MsMEJBQUE7RTFFcW1RdEM7O0UwRXBtUU07O0lBRUUsOEJBQUE7RTFFdW1RUjs7RTBFcm1RTTs7SUFFRSxnQ0FBQTtFMUV3bVFSOztFMEV0bVFNOztJQUVFLGlDQUFBO0UxRXltUVI7O0UwRXZtUU07O0lBRUUsK0JBQUE7RTFFMG1RUjs7RTBFem5RTTtJQUFnQyx3QkFBQTtFMUU2blF0Qzs7RTBFNW5RTTs7SUFFRSw0QkFBQTtFMUUrblFSOztFMEU3blFNOztJQUVFLDhCQUFBO0UxRWdvUVI7O0UwRTluUU07O0lBRUUsK0JBQUE7RTFFaW9RUjs7RTBFL25RTTs7SUFFRSw2QkFBQTtFMUVrb1FSOztFMEUxblFNO0lBQXdCLDJCQUFBO0UxRThuUTlCOztFMEU3blFNOztJQUVFLCtCQUFBO0UxRWdvUVI7O0UwRTluUU07O0lBRUUsaUNBQUE7RTFFaW9RUjs7RTBFL25RTTs7SUFFRSxrQ0FBQTtFMUVrb1FSOztFMEVob1FNOztJQUVFLGdDQUFBO0UxRW1vUVI7O0UwRWxwUU07SUFBd0IsMEJBQUE7RTFFc3BROUI7O0UwRXJwUU07O0lBRUUsOEJBQUE7RTFFd3BRUjs7RTBFdHBRTTs7SUFFRSxnQ0FBQTtFMUV5cFFSOztFMEV2cFFNOztJQUVFLGlDQUFBO0UxRTBwUVI7O0UwRXhwUU07O0lBRUUsK0JBQUE7RTFFMnBRUjs7RTBFMXFRTTtJQUF3Qix3QkFBQTtFMUU4cVE5Qjs7RTBFN3FRTTs7SUFFRSw0QkFBQTtFMUVnclFSOztFMEU5cVFNOztJQUVFLDhCQUFBO0UxRWlyUVI7O0UwRS9xUU07O0lBRUUsK0JBQUE7RTFFa3JRUjs7RTBFaHJRTTs7SUFFRSw2QkFBQTtFMUVtclFSOztFMEVsc1FNO0lBQXdCLDBCQUFBO0UxRXNzUTlCOztFMEVyc1FNOztJQUVFLDhCQUFBO0UxRXdzUVI7O0UwRXRzUU07O0lBRUUsZ0NBQUE7RTFFeXNRUjs7RTBFdnNRTTs7SUFFRSxpQ0FBQTtFMUUwc1FSOztFMEV4c1FNOztJQUVFLCtCQUFBO0UxRTJzUVI7O0UwRTF0UU07SUFBd0Isd0JBQUE7RTFFOHRROUI7O0UwRTd0UU07O0lBRUUsNEJBQUE7RTFFZ3VRUjs7RTBFOXRRTTs7SUFFRSw4QkFBQTtFMUVpdVFSOztFMEUvdFFNOztJQUVFLCtCQUFBO0UxRWt1UVI7O0UwRWh1UU07O0lBRUUsNkJBQUE7RTFFbXVRUjs7RTBFN3RRRTtJQUFtQix1QkFBQTtFMUVpdVFyQjs7RTBFaHVRRTs7SUFFRSwyQkFBQTtFMUVtdVFKOztFMEVqdVFFOztJQUVFLDZCQUFBO0UxRW91UUo7O0UwRWx1UUU7O0lBRUUsOEJBQUE7RTFFcXVRSjs7RTBFbnVRRTs7SUFFRSw0QkFBQTtFMUVzdVFKO0FBQ0Y7QWtCaHZRSTtFd0RsREk7SUFBZ0Msb0JBQUE7RTFFc3lRdEM7O0UwRXJ5UU07O0lBRUUsd0JBQUE7RTFFd3lRUjs7RTBFdHlRTTs7SUFFRSwwQkFBQTtFMUV5eVFSOztFMEV2eVFNOztJQUVFLDJCQUFBO0UxRTB5UVI7O0UwRXh5UU07O0lBRUUseUJBQUE7RTFFMnlRUjs7RTBFMXpRTTtJQUFnQywwQkFBQTtFMUU4elF0Qzs7RTBFN3pRTTs7SUFFRSw4QkFBQTtFMUVnMFFSOztFMEU5elFNOztJQUVFLGdDQUFBO0UxRWkwUVI7O0UwRS96UU07O0lBRUUsaUNBQUE7RTFFazBRUjs7RTBFaDBRTTs7SUFFRSwrQkFBQTtFMUVtMFFSOztFMEVsMVFNO0lBQWdDLHlCQUFBO0UxRXMxUXRDOztFMEVyMVFNOztJQUVFLDZCQUFBO0UxRXcxUVI7O0UwRXQxUU07O0lBRUUsK0JBQUE7RTFFeTFRUjs7RTBFdjFRTTs7SUFFRSxnQ0FBQTtFMUUwMVFSOztFMEV4MVFNOztJQUVFLDhCQUFBO0UxRTIxUVI7O0UwRTEyUU07SUFBZ0MsdUJBQUE7RTFFODJRdEM7O0UwRTcyUU07O0lBRUUsMkJBQUE7RTFFZzNRUjs7RTBFOTJRTTs7SUFFRSw2QkFBQTtFMUVpM1FSOztFMEUvMlFNOztJQUVFLDhCQUFBO0UxRWszUVI7O0UwRWgzUU07O0lBRUUsNEJBQUE7RTFFbTNRUjs7RTBFbDRRTTtJQUFnQyx5QkFBQTtFMUVzNFF0Qzs7RTBFcjRRTTs7SUFFRSw2QkFBQTtFMUV3NFFSOztFMEV0NFFNOztJQUVFLCtCQUFBO0UxRXk0UVI7O0UwRXY0UU07O0lBRUUsZ0NBQUE7RTFFMDRRUjs7RTBFeDRRTTs7SUFFRSw4QkFBQTtFMUUyNFFSOztFMEUxNVFNO0lBQWdDLHVCQUFBO0UxRTg1UXRDOztFMEU3NVFNOztJQUVFLDJCQUFBO0UxRWc2UVI7O0UwRTk1UU07O0lBRUUsNkJBQUE7RTFFaTZRUjs7RTBFLzVRTTs7SUFFRSw4QkFBQTtFMUVrNlFSOztFMEVoNlFNOztJQUVFLDRCQUFBO0UxRW02UVI7O0UwRWw3UU07SUFBZ0MscUJBQUE7RTFFczdRdEM7O0UwRXI3UU07O0lBRUUseUJBQUE7RTFFdzdRUjs7RTBFdDdRTTs7SUFFRSwyQkFBQTtFMUV5N1FSOztFMEV2N1FNOztJQUVFLDRCQUFBO0UxRTA3UVI7O0UwRXg3UU07O0lBRUUsMEJBQUE7RTFFMjdRUjs7RTBFMThRTTtJQUFnQywyQkFBQTtFMUU4OFF0Qzs7RTBFNzhRTTs7SUFFRSwrQkFBQTtFMUVnOVFSOztFMEU5OFFNOztJQUVFLGlDQUFBO0UxRWk5UVI7O0UwRS84UU07O0lBRUUsa0NBQUE7RTFFazlRUjs7RTBFaDlRTTs7SUFFRSxnQ0FBQTtFMUVtOVFSOztFMEVsK1FNO0lBQWdDLDBCQUFBO0UxRXMrUXRDOztFMEVyK1FNOztJQUVFLDhCQUFBO0UxRXcrUVI7O0UwRXQrUU07O0lBRUUsZ0NBQUE7RTFFeStRUjs7RTBFditRTTs7SUFFRSxpQ0FBQTtFMUUwK1FSOztFMEV4K1FNOztJQUVFLCtCQUFBO0UxRTIrUVI7O0UwRTEvUU07SUFBZ0Msd0JBQUE7RTFFOC9RdEM7O0UwRTcvUU07O0lBRUUsNEJBQUE7RTFFZ2dSUjs7RTBFOS9RTTs7SUFFRSw4QkFBQTtFMUVpZ1JSOztFMEUvL1FNOztJQUVFLCtCQUFBO0UxRWtnUlI7O0UwRWhnUk07O0lBRUUsNkJBQUE7RTFFbWdSUjs7RTBFbGhSTTtJQUFnQywwQkFBQTtFMUVzaFJ0Qzs7RTBFcmhSTTs7SUFFRSw4QkFBQTtFMUV3aFJSOztFMEV0aFJNOztJQUVFLGdDQUFBO0UxRXloUlI7O0UwRXZoUk07O0lBRUUsaUNBQUE7RTFFMGhSUjs7RTBFeGhSTTs7SUFFRSwrQkFBQTtFMUUyaFJSOztFMEUxaVJNO0lBQWdDLHdCQUFBO0UxRThpUnRDOztFMEU3aVJNOztJQUVFLDRCQUFBO0UxRWdqUlI7O0UwRTlpUk07O0lBRUUsOEJBQUE7RTFFaWpSUjs7RTBFL2lSTTs7SUFFRSwrQkFBQTtFMUVralJSOztFMEVoalJNOztJQUVFLDZCQUFBO0UxRW1qUlI7O0UwRTNpUk07SUFBd0IsMkJBQUE7RTFFK2lSOUI7O0UwRTlpUk07O0lBRUUsK0JBQUE7RTFFaWpSUjs7RTBFL2lSTTs7SUFFRSxpQ0FBQTtFMUVralJSOztFMEVoalJNOztJQUVFLGtDQUFBO0UxRW1qUlI7O0UwRWpqUk07O0lBRUUsZ0NBQUE7RTFFb2pSUjs7RTBFbmtSTTtJQUF3QiwwQkFBQTtFMUV1a1I5Qjs7RTBFdGtSTTs7SUFFRSw4QkFBQTtFMUV5a1JSOztFMEV2a1JNOztJQUVFLGdDQUFBO0UxRTBrUlI7O0UwRXhrUk07O0lBRUUsaUNBQUE7RTFFMmtSUjs7RTBFemtSTTs7SUFFRSwrQkFBQTtFMUU0a1JSOztFMEUzbFJNO0lBQXdCLHdCQUFBO0UxRStsUjlCOztFMEU5bFJNOztJQUVFLDRCQUFBO0UxRWltUlI7O0UwRS9sUk07O0lBRUUsOEJBQUE7RTFFa21SUjs7RTBFaG1STTs7SUFFRSwrQkFBQTtFMUVtbVJSOztFMEVqbVJNOztJQUVFLDZCQUFBO0UxRW9tUlI7O0UwRW5uUk07SUFBd0IsMEJBQUE7RTFFdW5SOUI7O0UwRXRuUk07O0lBRUUsOEJBQUE7RTFFeW5SUjs7RTBFdm5STTs7SUFFRSxnQ0FBQTtFMUUwblJSOztFMEV4blJNOztJQUVFLGlDQUFBO0UxRTJuUlI7O0UwRXpuUk07O0lBRUUsK0JBQUE7RTFFNG5SUjs7RTBFM29STTtJQUF3Qix3QkFBQTtFMUUrb1I5Qjs7RTBFOW9STTs7SUFFRSw0QkFBQTtFMUVpcFJSOztFMEUvb1JNOztJQUVFLDhCQUFBO0UxRWtwUlI7O0UwRWhwUk07O0lBRUUsK0JBQUE7RTFFbXBSUjs7RTBFanBSTTs7SUFFRSw2QkFBQTtFMUVvcFJSOztFMEU5b1JFO0lBQW1CLHVCQUFBO0UxRWtwUnJCOztFMEVqcFJFOztJQUVFLDJCQUFBO0UxRW9wUko7O0UwRWxwUkU7O0lBRUUsNkJBQUE7RTFFcXBSSjs7RTBFbnBSRTs7SUFFRSw4QkFBQTtFMUVzcFJKOztFMEVwcFJFOztJQUVFLDRCQUFBO0UxRXVwUko7QUFDRjtBa0JqcVJJO0V3RGxESTtJQUFnQyxvQkFBQTtFMUV1dFJ0Qzs7RTBFdHRSTTs7SUFFRSx3QkFBQTtFMUV5dFJSOztFMEV2dFJNOztJQUVFLDBCQUFBO0UxRTB0UlI7O0UwRXh0Uk07O0lBRUUsMkJBQUE7RTFFMnRSUjs7RTBFenRSTTs7SUFFRSx5QkFBQTtFMUU0dFJSOztFMEUzdVJNO0lBQWdDLDBCQUFBO0UxRSt1UnRDOztFMEU5dVJNOztJQUVFLDhCQUFBO0UxRWl2UlI7O0UwRS91Uk07O0lBRUUsZ0NBQUE7RTFFa3ZSUjs7RTBFaHZSTTs7SUFFRSxpQ0FBQTtFMUVtdlJSOztFMEVqdlJNOztJQUVFLCtCQUFBO0UxRW92UlI7O0UwRW53Uk07SUFBZ0MseUJBQUE7RTFFdXdSdEM7O0UwRXR3Uk07O0lBRUUsNkJBQUE7RTFFeXdSUjs7RTBFdndSTTs7SUFFRSwrQkFBQTtFMUUwd1JSOztFMEV4d1JNOztJQUVFLGdDQUFBO0UxRTJ3UlI7O0UwRXp3Uk07O0lBRUUsOEJBQUE7RTFFNHdSUjs7RTBFM3hSTTtJQUFnQyx1QkFBQTtFMUUreFJ0Qzs7RTBFOXhSTTs7SUFFRSwyQkFBQTtFMUVpeVJSOztFMEUveFJNOztJQUVFLDZCQUFBO0UxRWt5UlI7O0UwRWh5Uk07O0lBRUUsOEJBQUE7RTFFbXlSUjs7RTBFanlSTTs7SUFFRSw0QkFBQTtFMUVveVJSOztFMEVuelJNO0lBQWdDLHlCQUFBO0UxRXV6UnRDOztFMEV0elJNOztJQUVFLDZCQUFBO0UxRXl6UlI7O0UwRXZ6Uk07O0lBRUUsK0JBQUE7RTFFMHpSUjs7RTBFeHpSTTs7SUFFRSxnQ0FBQTtFMUUyelJSOztFMEV6elJNOztJQUVFLDhCQUFBO0UxRTR6UlI7O0UwRTMwUk07SUFBZ0MsdUJBQUE7RTFFKzBSdEM7O0UwRTkwUk07O0lBRUUsMkJBQUE7RTFFaTFSUjs7RTBFLzBSTTs7SUFFRSw2QkFBQTtFMUVrMVJSOztFMEVoMVJNOztJQUVFLDhCQUFBO0UxRW0xUlI7O0UwRWoxUk07O0lBRUUsNEJBQUE7RTFFbzFSUjs7RTBFbjJSTTtJQUFnQyxxQkFBQTtFMUV1MlJ0Qzs7RTBFdDJSTTs7SUFFRSx5QkFBQTtFMUV5MlJSOztFMEV2MlJNOztJQUVFLDJCQUFBO0UxRTAyUlI7O0UwRXgyUk07O0lBRUUsNEJBQUE7RTFFMjJSUjs7RTBFejJSTTs7SUFFRSwwQkFBQTtFMUU0MlJSOztFMEUzM1JNO0lBQWdDLDJCQUFBO0UxRSszUnRDOztFMEU5M1JNOztJQUVFLCtCQUFBO0UxRWk0UlI7O0UwRS8zUk07O0lBRUUsaUNBQUE7RTFFazRSUjs7RTBFaDRSTTs7SUFFRSxrQ0FBQTtFMUVtNFJSOztFMEVqNFJNOztJQUVFLGdDQUFBO0UxRW80UlI7O0UwRW41Uk07SUFBZ0MsMEJBQUE7RTFFdTVSdEM7O0UwRXQ1Uk07O0lBRUUsOEJBQUE7RTFFeTVSUjs7RTBFdjVSTTs7SUFFRSxnQ0FBQTtFMUUwNVJSOztFMEV4NVJNOztJQUVFLGlDQUFBO0UxRTI1UlI7O0UwRXo1Uk07O0lBRUUsK0JBQUE7RTFFNDVSUjs7RTBFMzZSTTtJQUFnQyx3QkFBQTtFMUUrNlJ0Qzs7RTBFOTZSTTs7SUFFRSw0QkFBQTtFMUVpN1JSOztFMEUvNlJNOztJQUVFLDhCQUFBO0UxRWs3UlI7O0UwRWg3Uk07O0lBRUUsK0JBQUE7RTFFbTdSUjs7RTBFajdSTTs7SUFFRSw2QkFBQTtFMUVvN1JSOztFMEVuOFJNO0lBQWdDLDBCQUFBO0UxRXU4UnRDOztFMEV0OFJNOztJQUVFLDhCQUFBO0UxRXk4UlI7O0UwRXY4Uk07O0lBRUUsZ0NBQUE7RTFFMDhSUjs7RTBFeDhSTTs7SUFFRSxpQ0FBQTtFMUUyOFJSOztFMEV6OFJNOztJQUVFLCtCQUFBO0UxRTQ4UlI7O0UwRTM5Uk07SUFBZ0Msd0JBQUE7RTFFKzlSdEM7O0UwRTk5Uk07O0lBRUUsNEJBQUE7RTFFaStSUjs7RTBFLzlSTTs7SUFFRSw4QkFBQTtFMUVrK1JSOztFMEVoK1JNOztJQUVFLCtCQUFBO0UxRW0rUlI7O0UwRWorUk07O0lBRUUsNkJBQUE7RTFFbytSUjs7RTBFNTlSTTtJQUF3QiwyQkFBQTtFMUVnK1I5Qjs7RTBFLzlSTTs7SUFFRSwrQkFBQTtFMUVrK1JSOztFMEVoK1JNOztJQUVFLGlDQUFBO0UxRW0rUlI7O0UwRWorUk07O0lBRUUsa0NBQUE7RTFFbytSUjs7RTBFbCtSTTs7SUFFRSxnQ0FBQTtFMUVxK1JSOztFMEVwL1JNO0lBQXdCLDBCQUFBO0UxRXcvUjlCOztFMEV2L1JNOztJQUVFLDhCQUFBO0UxRTAvUlI7O0UwRXgvUk07O0lBRUUsZ0NBQUE7RTFFMi9SUjs7RTBFei9STTs7SUFFRSxpQ0FBQTtFMUU0L1JSOztFMEUxL1JNOztJQUVFLCtCQUFBO0UxRTYvUlI7O0UwRTVnU007SUFBd0Isd0JBQUE7RTFFZ2hTOUI7O0UwRS9nU007O0lBRUUsNEJBQUE7RTFFa2hTUjs7RTBFaGhTTTs7SUFFRSw4QkFBQTtFMUVtaFNSOztFMEVqaFNNOztJQUVFLCtCQUFBO0UxRW9oU1I7O0UwRWxoU007O0lBRUUsNkJBQUE7RTFFcWhTUjs7RTBFcGlTTTtJQUF3QiwwQkFBQTtFMUV3aVM5Qjs7RTBFdmlTTTs7SUFFRSw4QkFBQTtFMUUwaVNSOztFMEV4aVNNOztJQUVFLGdDQUFBO0UxRTJpU1I7O0UwRXppU007O0lBRUUsaUNBQUE7RTFFNGlTUjs7RTBFMWlTTTs7SUFFRSwrQkFBQTtFMUU2aVNSOztFMEU1alNNO0lBQXdCLHdCQUFBO0UxRWdrUzlCOztFMEUvalNNOztJQUVFLDRCQUFBO0UxRWtrU1I7O0UwRWhrU007O0lBRUUsOEJBQUE7RTFFbWtTUjs7RTBFamtTTTs7SUFFRSwrQkFBQTtFMUVva1NSOztFMEVsa1NNOztJQUVFLDZCQUFBO0UxRXFrU1I7O0UwRS9qU0U7SUFBbUIsdUJBQUE7RTFFbWtTckI7O0UwRWxrU0U7O0lBRUUsMkJBQUE7RTFFcWtTSjs7RTBFbmtTRTs7SUFFRSw2QkFBQTtFMUVza1NKOztFMEVwa1NFOztJQUVFLDhCQUFBO0UxRXVrU0o7O0UwRXJrU0U7O0lBRUUsNEJBQUE7RTFFd2tTSjtBQUNGO0EyRXhvU0E7RUFBa0IsNEdBQUE7QTNFMm9TbEI7QTJFdm9TQTtFQUFpQiw4QkFBQTtBM0Uyb1NqQjtBMkUxb1NBO0VBQWlCLDhCQUFBO0EzRThvU2pCO0EyRTdvU0E7RUFBaUIsOEJBQUE7QTNFaXBTakI7QTJFaHBTQTtFQ1RFLGdCQUFBO0VBQ0EsdUJBQUE7RUFDQSxtQkFBQTtBNUU2cFNGO0EyRTlvU0k7RUFBd0IsMkJBQUE7QTNFa3BTNUI7QTJFanBTSTtFQUF3Qiw0QkFBQTtBM0VxcFM1QjtBMkVwcFNJO0VBQXdCLDZCQUFBO0EzRXdwUzVCO0FrQm5uU0k7RXlEdkNBO0lBQXdCLDJCQUFBO0UzRStwUzFCOztFMkU5cFNFO0lBQXdCLDRCQUFBO0UzRWtxUzFCOztFMkVqcVNFO0lBQXdCLDZCQUFBO0UzRXFxUzFCO0FBQ0Y7QWtCam9TSTtFeUR2Q0E7SUFBd0IsMkJBQUE7RTNFNHFTMUI7O0UyRTNxU0U7SUFBd0IsNEJBQUE7RTNFK3FTMUI7O0UyRTlxU0U7SUFBd0IsNkJBQUE7RTNFa3JTMUI7QUFDRjtBa0I5b1NJO0V5RHZDQTtJQUF3QiwyQkFBQTtFM0V5clMxQjs7RTJFeHJTRTtJQUF3Qiw0QkFBQTtFM0U0clMxQjs7RTJFM3JTRTtJQUF3Qiw2QkFBQTtFM0UrclMxQjtBQUNGO0FrQjNwU0k7RXlEdkNBO0lBQXdCLDJCQUFBO0UzRXNzUzFCOztFMkVyc1NFO0lBQXdCLDRCQUFBO0UzRXlzUzFCOztFMkV4c1NFO0lBQXdCLDZCQUFBO0UzRTRzUzFCO0FBQ0Y7QTJFdnNTQTtFQUFtQixvQ0FBQTtBM0Uwc1NuQjtBMkV6c1NBO0VBQW1CLG9DQUFBO0EzRTZzU25CO0EyRTVzU0E7RUFBbUIscUNBQUE7QTNFZ3RTbkI7QTJFNXNTQTtFQUF1QiwyQkFBQTtBM0VndFN2QjtBMkUvc1NBO0VBQXVCLCtCQUFBO0EzRW10U3ZCO0EyRWx0U0E7RUFBdUIsMkJBQUE7QTNFc3RTdkI7QTJFcnRTQTtFQUF1QiwyQkFBQTtBM0V5dFN2QjtBMkV4dFNBO0VBQXVCLDhCQUFBO0EzRTR0U3ZCO0EyRTN0U0E7RUFBdUIsNkJBQUE7QTNFK3RTdkI7QTJFM3RTQTtFQUFjLHNCQUFBO0EzRSt0U2Q7QTZFdHdTRTtFQUNFLHlCQUFBO0E3RXl3U0o7QVMvdlNFO0VvRUxNLHlCQUFBO0E3RXd3U1I7QTZFOXdTRTtFQUNFLHlCQUFBO0E3RWl4U0o7QVN2d1NFO0VvRUxNLHlCQUFBO0E3RWd4U1I7QTZFdHhTRTtFQUNFLHlCQUFBO0E3RXl4U0o7QVMvd1NFO0VvRUxNLHlCQUFBO0E3RXd4U1I7QTZFOXhTRTtFQUNFLHlCQUFBO0E3RWl5U0o7QVN2eFNFO0VvRUxNLHlCQUFBO0E3RWd5U1I7QTZFdHlTRTtFQUNFLHlCQUFBO0E3RXl5U0o7QVMveFNFO0VvRUxNLHlCQUFBO0E3RXd5U1I7QTZFOXlTRTtFQUNFLHlCQUFBO0E3RWl6U0o7QVN2eVNFO0VvRUxNLHlCQUFBO0E3RWd6U1I7QTZFdHpTRTtFQUNFLHlCQUFBO0E3RXl6U0o7QVMveVNFO0VvRUxNLHlCQUFBO0E3RXd6U1I7QTZFOXpTRTtFQUNFLHlCQUFBO0E3RWkwU0o7QVN2elNFO0VvRUxNLHlCQUFBO0E3RWcwU1I7QTJFenhTQTtFQUFhLHlCQUFBO0EzRTZ4U2I7QTJFNXhTQTtFQUFjLHlCQUFBO0EzRWd5U2Q7QTJFOXhTQTtFQUFpQixvQ0FBQTtBM0VreVNqQjtBMkVqeVNBO0VBQWlCLDBDQUFBO0EzRXF5U2pCO0EyRWp5U0E7RUd2REUsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsaUJBQUE7RUFDQSw2QkFBQTtFQUNBLFNBQUE7QTlFNDFTRjtBMkVyeVNBO0VBQXdCLGdDQUFBO0EzRXl5U3hCO0EyRXZ5U0E7RUFDRSxpQ0FBQTtFQUNBLG9DQUFBO0EzRTB5U0Y7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QnZGWixxQnBCdUZZO0FQaXdUaEI7QTJCajFURTtFQUdFLFdBQUE7RUFDQSx5QkF0QytJO0VBMEMvSSxxQkExQ3lMO0EzQnczVDdMO0EyQjUwVEk7RUFLSSxnREFBQTtBM0IwMFRSO0E0RngwVEU7RWpFbERBLFdBQUE7RUZBRSx5QmxCaUhZO0VvQi9HZCxxQnBCK0djO0FQK3dUaEI7QVMxM1RFO0VrQkFFLFdBQUE7RUZOQSx5QkVEMkQ7RUFTM0QscUJBVHFHO0EzQnM0VHpHO0EyQjEzVEU7RUFNSSxnREFBQTtBM0J1M1ROO0EyQmwzVEU7RUFFRSxXQUFBO0VBQ0EseUJwQndGWTtFb0J2RloscUJwQnVGWTtBUDR4VGhCO0EyQjUyVEU7RUFHRSxXQUFBO0VBQ0EseUJBdEMrSTtFQTBDL0kscUJBMUN5TDtBM0JtNVQ3TDtBMkJ2MlRJO0VBS0ksZ0RBQUE7QTNCcTJUUjtBNEZuMlRFO0VqRWxEQSxXQUFBO0VGQUUseUJsQmlIWTtFb0IvR2QscUJwQitHYztBUDB5VGhCO0FTcjVURTtFa0JBRSxXQUFBO0VGTkEseUJFRDJEO0VBUzNELHFCQVRxRztBM0JpNlR6RztBMkJyNVRFO0VBTUksZ0RBQUE7QTNCazVUTjtBMkI3NFRFO0VBRUUsV0FBQTtFQUNBLHlCcEJ3Rlk7RW9CdkZaLHFCcEJ1Rlk7QVB1elRoQjtBMkJ2NFRFO0VBR0UsV0FBQTtFQUNBLHlCQXRDK0k7RUEwQy9JLHFCQTFDeUw7QTNCODZUN0w7QTJCbDRUSTtFQUtJLGdEQUFBO0EzQmc0VFI7QTRGOTNURTtFakVsREEsV0FBQTtFRkFFLHlCbEJpSFk7RW9CL0dkLHFCcEIrR2M7QVBxMFRoQjtBU2g3VEU7RWtCQUUsV0FBQTtFRk5BLHlCRUQyRDtFQVMzRCxxQkFUcUc7QTNCNDdUekc7QTJCaDdURTtFQU1JLCtDQUFBO0EzQjY2VE47QTJCeDZURTtFQUVFLFdBQUE7RUFDQSx5QnBCd0ZZO0VvQnZGWixxQnBCdUZZO0FQazFUaEI7QTJCbDZURTtFQUdFLFdBQUE7RUFDQSx5QkF0QytJO0VBMEMvSSxxQkExQ3lMO0EzQnk4VDdMO0EyQjc1VEk7RUFLSSwrQ0FBQTtBM0IyNVRSO0E0Rno1VEU7RWpFbERBLFdBQUE7RUZBRSx5QmxCaUhZO0VvQi9HZCxxQnBCK0djO0FQZzJUaEI7QVMzOFRFO0VrQkFFLFdBQUE7RUZOQSx5QkVEMkQ7RUFTM0QscUJBVHFHO0EzQnU5VHpHO0EyQjM4VEU7RUFNSSxnREFBQTtBM0J3OFROO0EyQm44VEU7RUFFRSxXQUFBO0VBQ0EseUJwQndGWTtFb0J2RloscUJwQnVGWTtBUDYyVGhCO0EyQjc3VEU7RUFHRSxXQUFBO0VBQ0EseUJBdEMrSTtFQTBDL0kscUJBMUN5TDtBM0JvK1Q3TDtBMkJ4N1RJO0VBS0ksZ0RBQUE7QTNCczdUUjtBNEZwN1RFO0VqRWxEQSxXQUFBO0VGQUUseUJsQmlIWTtFb0IvR2QscUJwQitHYztBUDIzVGhCO0FTdCtURTtFa0JBRSxXQUFBO0VGTkEseUJFRDJEO0VBUzNELHFCQVRxRztBM0JrL1R6RztBMkJ0K1RFO0VBTUksZ0RBQUE7QTNCbStUTjtBMkI5OVRFO0VBRUUsV0FBQTtFQUNBLHlCcEJ3Rlk7RW9CdkZaLHFCcEJ1Rlk7QVB3NFRoQjtBMkJ4OVRFO0VBR0UsV0FBQTtFQUNBLHlCQXRDK0k7RUEwQy9JLHFCQTFDeUw7QTNCKy9UN0w7QTJCbjlUSTtFQUtJLGdEQUFBO0EzQmk5VFI7QTRGLzhURTtFakVsREEsV0FBQTtFRkFFLHlCbEJpSFk7RW9CL0dkLHFCcEIrR2M7QVBzNVRoQjtBU2pnVUU7RWtCQUUsV0FBQTtFRk5BLHlCRUQyRDtFQVMzRCxxQkFUcUc7QTNCNmdVekc7QTJCamdVRTtFQU1JLGdEQUFBO0EzQjgvVE47QTJCei9URTtFQUVFLFdBQUE7RUFDQSx5QnBCd0ZZO0VvQnZGWixxQnBCdUZZO0FQbTZUaEI7QTJCbi9URTtFQUdFLFdBQUE7RUFDQSx5QkF0QytJO0VBMEMvSSxxQkExQ3lMO0EzQjBoVTdMO0EyQjkrVEk7RUFLSSxnREFBQTtBM0I0K1RSO0E0RjErVEU7RWpFbERBLFdBQUE7RUZBRSx5QmxCaUhZO0VvQi9HZCxxQnBCK0djO0FQaTdUaEI7QVM1aFVFO0VrQkFFLFdBQUE7RUZOQSx5QkVEMkQ7RUFTM0QscUJBVHFHO0EzQndpVXpHO0EyQjVoVUU7RUFNSSxnREFBQTtBM0J5aFVOO0EyQnBoVUU7RUFFRSxXQUFBO0VBQ0EseUJwQndGWTtFb0J2RloscUJwQnVGWTtBUDg3VGhCO0EyQjlnVUU7RUFHRSxXQUFBO0VBQ0EseUJBdEMrSTtFQTBDL0kscUJBMUN5TDtBM0JxalU3TDtBMkJ6Z1VJO0VBS0ksZ0RBQUE7QTNCdWdVUjtBNEZyZ1VFO0VqRWxEQSxXQUFBO0VGQUUseUJsQmlIWTtFb0IvR2QscUJwQitHYztBUDQ4VGhCO0FTdmpVRTtFa0JBRSxXQUFBO0VGTkEseUJFRDJEO0VBUzNELHFCQVRxRztBM0Jta1V6RztBMkJ2alVFO0VBTUksZ0RBQUE7QTNCb2pVTjtBMkIvaVVFO0VBRUUsV0FBQTtFQUNBLHlCcEJ3Rlk7RW9CdkZaLHFCcEJ1Rlk7QVB5OVRoQjtBMkJ6aVVFO0VBR0UsV0FBQTtFQUNBLHlCQXRDK0k7RUEwQy9JLHFCQTFDeUw7QTNCZ2xVN0w7QTJCcGlVSTtFQUtJLGdEQUFBO0EzQmtpVVI7QTRGaGlVRTtFakVsREEsY0FBQTtFRkFFLHlCbEJpSFk7RW9CL0dkLHFCcEIrR2M7QVB1K1RoQjtBU2xsVUU7RWtCQUUsV0FBQTtFRk5BLHlCRUQyRDtFQVMzRCxxQkFUcUc7QTNCOGxVekc7QTJCbGxVRTtFQU1JLGdEQUFBO0EzQitrVU47QTJCMWtVRTtFQUVFLGNBQUE7RUFDQSx5QnBCd0ZZO0VvQnZGWixxQnBCdUZZO0FQby9UaEI7QTJCcGtVRTtFQUdFLFdBQUE7RUFDQSx5QkF0QytJO0VBMEMvSSxxQkExQ3lMO0EzQjJtVTdMO0EyQi9qVUk7RUFLSSxnREFBQTtBM0I2alVSO0E0RjNqVUU7RWpFbERBLFdBQUE7RUZBRSx5QmxCaUhZO0VvQi9HZCxxQnBCK0djO0FQa2dVaEI7QVM3bVVFO0VrQkFFLFdBQUE7RUZOQSx5QkVEMkQ7RUFTM0QscUJBVHFHO0EzQnluVXpHO0EyQjdtVUU7RUFNSSxnREFBQTtBM0IwbVVOO0EyQnJtVUU7RUFFRSxXQUFBO0VBQ0EseUJwQndGWTtFb0J2RloscUJwQnVGWTtBUCtnVWhCO0EyQi9sVUU7RUFHRSxXQUFBO0VBQ0EseUJBdEMrSTtFQTBDL0kscUJBMUN5TDtBM0Jzb1U3TDtBMkIxbFVJO0VBS0ksZ0RBQUE7QTNCd2xVUjtBNEZ0bFVFO0VqRWxEQSxXQUFBO0VGQUUsc0JsQmlIWTtFb0IvR2Qsa0JwQitHYztBUDZoVWhCO0FTeG9VRTtFa0JBRSxXQUFBO0VGTkEseUJFRDJEO0VBUzNELHFCQVRxRztBM0JvcFV6RztBMkJ4b1VFO0VBTUksK0NBQUE7QTNCcW9VTjtBMkJob1VFO0VBRUUsV0FBQTtFQUNBLHNCcEJ3Rlk7RW9CdkZaLGtCcEJ1Rlk7QVAwaVVoQjtBMkIxblVFO0VBR0UsV0FBQTtFQUNBLHlCQXRDK0k7RUEwQy9JLHFCQTFDeUw7QTNCaXFVN0w7QTJCcm5VSTtFQUtJLCtDQUFBO0EzQm1uVVI7QTRGam5VRTtFakVsREEsV0FBQTtFRkFFLHlCbEJpSFk7RW9CL0dkLHFCcEIrR2M7QVB3alVoQjtBU25xVUU7RWtCQUUsV0FBQTtFRk5BLHlCRUQyRDtFQVMzRCxxQkFUcUc7QTNCK3FVekc7QTJCbnFVRTtFQU1JLGdEQUFBO0EzQmdxVU47QTJCM3BVRTtFQUVFLFdBQUE7RUFDQSx5QnBCd0ZZO0VvQnZGWixxQnBCdUZZO0FQcWtVaEI7QTJCcnBVRTtFQUdFLFdBQUE7RUFDQSx5QkF0QytJO0VBMEMvSSxxQkExQ3lMO0EzQjRyVTdMO0EyQmhwVUk7RUFLSSxnREFBQTtBM0I4b1VSO0E0RjVvVUU7RWpFbERBLFdBQUE7RUZBRSx5QmxCaUhZO0VvQi9HZCxxQnBCK0djO0FQbWxVaEI7QVM5clVFO0VrQkFFLFdBQUE7RUZOQSx5QkVEMkQ7RUFTM0QscUJBVHFHO0EzQjBzVXpHO0EyQjlyVUU7RUFNSSxpREFBQTtBM0IyclVOO0EyQnRyVUU7RUFFRSxXQUFBO0VBQ0EseUJwQndGWTtFb0J2RloscUJwQnVGWTtBUGdtVWhCO0EyQmhyVUU7RUFHRSxXQUFBO0VBQ0EseUJBdEMrSTtFQTBDL0kscUJBMUN5TDtBM0J1dFU3TDtBMkIzcVVJO0VBS0ksaURBQUE7QTNCeXFVUjtBNEZ2cVVFO0VqRWxEQSxXQUFBO0VGQUUseUJsQmlIWTtFb0IvR2QscUJwQitHYztBUDhtVWhCO0FTenRVRTtFa0JBRSxXQUFBO0VGTkEseUJFRDJEO0VBUzNELHFCQVRxRztBM0JxdVV6RztBMkJ6dFVFO0VBTUksaURBQUE7QTNCc3RVTjtBMkJqdFVFO0VBRUUsV0FBQTtFQUNBLHlCcEJ3Rlk7RW9CdkZaLHFCcEJ1Rlk7QVAyblVoQjtBMkIzc1VFO0VBR0UsV0FBQTtFQUNBLHlCQXRDK0k7RUEwQy9JLHFCQTFDeUw7QTNCa3ZVN0w7QTJCdHNVSTtFQUtJLGlEQUFBO0EzQm9zVVI7QTRGbHNVRTtFakVsREEsV0FBQTtFRkFFLHlCbEJpSFk7RW9CL0dkLHFCcEIrR2M7QVB5b1VoQjtBU3B2VUU7RWtCQUUsV0FBQTtFRk5BLHlCRUQyRDtFQVMzRCxxQkFUcUc7QTNCZ3dVekc7QTJCcHZVRTtFQU1JLCtDQUFBO0EzQml2VU47QTJCNXVVRTtFQUVFLFdBQUE7RUFDQSx5QnBCd0ZZO0VvQnZGWixxQnBCdUZZO0FQc3BVaEI7QTJCdHVVRTtFQUdFLFdBQUE7RUFDQSx5QkF0QytJO0VBMEMvSSxxQkExQ3lMO0EzQjZ3VTdMO0EyQmp1VUk7RUFLSSwrQ0FBQTtBM0IrdFVSO0E0Rjd0VUU7RWpFbERBLFdBQUE7RUZBRSx5QmxCaUhZO0VvQi9HZCxxQnBCK0djO0FQb3FVaEI7QVMvd1VFO0VrQkFFLFdBQUE7RUZOQSx5QkVEMkQ7RUFTM0QscUJBVHFHO0EzQjJ4VXpHO0EyQi93VUU7RUFNSSxnREFBQTtBM0I0d1VOO0EyQnZ3VUU7RUFFRSxXQUFBO0VBQ0EseUJwQndGWTtFb0J2RloscUJwQnVGWTtBUGlyVWhCO0EyQmp3VUU7RUFHRSxXQUFBO0VBQ0EseUJBdEMrSTtFQTBDL0kscUJBMUN5TDtBM0J3eVU3TDtBMkI1dlVJO0VBS0ksZ0RBQUE7QTNCMHZVUjtBNEZ4dlVFO0VqRWxEQSxXQUFBO0VGQUUseUJsQmlIWTtFb0IvR2QscUJwQitHYztBUCtyVWhCO0FTMXlVRTtFa0JBRSxXQUFBO0VGTkEseUJFRDJEO0VBUzNELHFCQVRxRztBM0JzelV6RztBMkIxeVVFO0VBTUksK0NBQUE7QTNCdXlVTjtBMkJseVVFO0VBRUUsV0FBQTtFQUNBLHlCcEJ3Rlk7RW9CdkZaLHFCcEJ1Rlk7QVA0c1VoQjtBMkI1eFVFO0VBR0UsV0FBQTtFQUNBLHlCQXRDK0k7RUEwQy9JLHFCQTFDeUw7QTNCbTBVN0w7QTJCdnhVSTtFQUtJLCtDQUFBO0EzQnF4VVI7QTRGbnhVRTtFakVsREEsV0FBQTtFRkFFLHlCbEJpSFk7RW9CL0dkLHFCcEIrR2M7QVAwdFVoQjtBU3IwVUU7RWtCQUUsV0FBQTtFRk5BLHlCRUQyRDtFQVMzRCxxQkFUcUc7QTNCaTFVekc7QTJCcjBVRTtFQU1JLGdEQUFBO0EzQmswVU47QTJCN3pVRTtFQUVFLFdBQUE7RUFDQSx5QnBCd0ZZO0VvQnZGWixxQnBCdUZZO0FQdXVVaEI7QTJCdnpVRTtFQUdFLFdBQUE7RUFDQSx5QkF0QytJO0VBMEMvSSxxQkExQ3lMO0EzQjgxVTdMO0EyQmx6VUk7RUFLSSxnREFBQTtBM0JnelVSO0E0Rjl5VUU7RWpFbERBLFdBQUE7RUZBRSx5QmxCaUhZO0VvQi9HZCxxQnBCK0djO0FQcXZVaEI7QVNoMlVFO0VrQkFFLFdBQUE7RUZOQSx5QkVEMkQ7RUFTM0QscUJBVHFHO0EzQjQyVXpHO0EyQmgyVUU7RUFNSSxnREFBQTtBM0I2MVVOO0EyQngxVUU7RUFFRSxXQUFBO0VBQ0EseUJwQndGWTtFb0J2RloscUJwQnVGWTtBUGt3VWhCO0EyQmwxVUU7RUFHRSxXQUFBO0VBQ0EseUJBdEMrSTtFQTBDL0kscUJBMUN5TDtBM0J5M1U3TDtBMkI3MFVJO0VBS0ksZ0RBQUE7QTNCMjBVUjtBNEZ6MFVFO0VqRWxEQSxXQUFBO0VGQUUseUJsQmlIWTtFb0IvR2QscUJwQitHYztBUGd4VWhCO0FTMzNVRTtFa0JBRSxXQUFBO0VGTkEseUJFRDJEO0VBUzNELHFCQVRxRztBM0J1NFV6RztBMkIzM1VFO0VBTUksK0NBQUE7QTNCdzNVTjtBMkJuM1VFO0VBRUUsV0FBQTtFQUNBLHlCcEJ3Rlk7RW9CdkZaLHFCcEJ1Rlk7QVA2eFVoQjtBMkI3MlVFO0VBR0UsV0FBQTtFQUNBLHlCQXRDK0k7RUEwQy9JLHFCQTFDeUw7QTNCbzVVN0w7QTJCeDJVSTtFQUtJLCtDQUFBO0EzQnMyVVI7QTRGcDJVRTtFakVsREEsV0FBQTtFRkFFLHlCbEJpSFk7RW9CL0dkLHFCcEIrR2M7QVAyeVVoQjtBU3Q1VUU7RWtCQUUsV0FBQTtFRk5BLHlCRUQyRDtFQVMzRCxxQkFUcUc7QTNCazZVekc7QTJCdDVVRTtFQU1JLGdEQUFBO0EzQm01VU47QTJCOTRVRTtFQUVFLFdBQUE7RUFDQSx5QnBCd0ZZO0VvQnZGWixxQnBCdUZZO0FQd3pVaEI7QTJCeDRVRTtFQUdFLFdBQUE7RUFDQSx5QkF0QytJO0VBMEMvSSxxQkExQ3lMO0EzQis2VTdMO0EyQm40VUk7RUFLSSxnREFBQTtBM0JpNFVSO0E0Ri8zVUU7RWpFbERBLFdBQUE7RUZBRSx5QmxCaUhZO0VvQi9HZCxxQnBCK0djO0FQczBVaEI7QVNqN1VFO0VrQkFFLFdBQUE7RUZOQSx5QkVEMkQ7RUFTM0QscUJBVHFHO0EzQjY3VXpHO0EyQmo3VUU7RUFNSSxnREFBQTtBM0I4NlVOO0EyQno2VUU7RUFFRSxXQUFBO0VBQ0EseUJwQndGWTtFb0J2RloscUJwQnVGWTtBUG0xVWhCO0EyQm42VUU7RUFHRSxXQUFBO0VBQ0EseUJBdEMrSTtFQTBDL0kscUJBMUN5TDtBM0IwOFU3TDtBMkI5NVVJO0VBS0ksZ0RBQUE7QTNCNDVVUjtBNEYxNVVFO0VqRWxEQSxXQUFBO0VGQUUseUJsQmlIWTtFb0IvR2QscUJwQitHYztBUGkyVWhCO0FTNThVRTtFa0JBRSxXQUFBO0VGTkEseUJFRDJEO0VBUzNELHFCQVRxRztBM0J3OVV6RztBMkI1OFVFO0VBTUksZ0RBQUE7QTNCeThVTjtBMkJwOFVFO0VBRUUsV0FBQTtFQUNBLHlCcEJ3Rlk7RW9CdkZaLHFCcEJ1Rlk7QVA4MlVoQjtBMkI5N1VFO0VBR0UsV0FBQTtFQUNBLHlCQXRDK0k7RUEwQy9JLHFCQTFDeUw7QTNCcStVN0w7QTJCejdVSTtFQUtJLGdEQUFBO0EzQnU3VVI7QTRGcjdVRTtFakVsREEsY0FBQTtFRkFFLHlCbEJpSFk7RW9CL0dkLHFCcEIrR2M7QVA0M1VoQjtBU3YrVUU7RWtCQUUsY0FBQTtFRk5BLHlCRUQyRDtFQVMzRCxxQkFUcUc7QTNCbS9Vekc7QTJCditVRTtFQU1JLGdEQUFBO0EzQm8rVU47QTJCLzlVRTtFQUVFLGNBQUE7RUFDQSx5QnBCd0ZZO0VvQnZGWixxQnBCdUZZO0FQeTRVaEI7QTJCejlVRTtFQUdFLGNBQUE7RUFDQSx5QkF0QytJO0VBMEMvSSxxQkExQ3lMO0EzQmdnVjdMO0EyQnA5VUk7RUFLSSxnREFBQTtBM0JrOVVSO0E2Rm5nVkk7O0VBRUUsa0JBQUE7QTdGc2dWTjtBNkZsZ1ZJOztFL0VOQSxzQlRxTzBCO0VTdk0xQix5QitFckI4QjtFL0VzQjlCLDRCK0V0QjhCO0E3RnFnVmxDO0E2RmxnVkk7O0UvRVpBLHNCVHFPMEI7RVNyTjFCLDBCK0VEK0I7RS9FRS9CLDZCK0VGK0I7QTdGcWdWbkM7QTZGbGdWSTtFL0VZQSx5QitFWDhCO0UvRVk5Qiw0QitFWjhCO0UvRUg5QiwwQitFSStCO0UvRUgvQiw2QitFRytCO0E3RnNnVm5DO0E4RjNoVkE7RUFDRSxXQUFBO0VBQ0EsNkJBQUE7RUFDQSx5QkFBQTtBOUY4aFZGO0E4RjFoVkU7O0VBRUUscUJBQUE7RUFDQSxnQkFBQTtFQUNBLHNCQUFBO0E5RjZoVko7QThGemhWQTtFQUNFLG1CQUFBO0E5RjRoVkY7QThGemhWQTtFQUNFLGdCQUFBO0E5RjRoVkY7QThGeGhWRTtFQzNCQSxjMUY4RWE7RTBGN0ViLDZCQUFBO0VBQ0Esc0JBQUE7RUFDQSx5QkFBQTtBL0Z1alZGO0ErRnJqVkU7RUFDRSxXQVA4QztFQVE5Qyx5QjFGdUVXO0UwRnRFWCxxQjFGc0VXO0FMaS9VZjtBK0ZwalZFO0VBRUUsZ0RBQUE7QS9GcWpWSjtBK0ZsalZFO0VBRUUsYzFGNERXO0UwRjNEWCw2QkFBQTtFQUNBLHlCQUFBO0EvRm1qVko7QStGaGpWRTtFQUdFLFdBQUE7RUFDQSx5QjFGbURXO0UwRmxEWCxxQjFGa0RXO0FMOC9VZjtBK0Y5aVZJO0VBS0ksZ0RBQUE7QS9GNGlWUjtBOEZwalZFO0VDM0JBLGMxRjhFYTtFMEY3RWIsNkJBQUE7RUFDQSxzQkFBQTtFQUNBLHlCQUFBO0EvRm1sVkY7QStGamxWRTtFQUNFLGNBUDhDO0VBUTlDLHlCMUZ1RVc7RTBGdEVYLHFCMUZzRVc7QUw2Z1ZmO0ErRmhsVkU7RUFFRSxpREFBQTtBL0ZpbFZKO0ErRjlrVkU7RUFFRSxjMUY0RFc7RTBGM0RYLDZCQUFBO0VBQ0EseUJBQUE7QS9GK2tWSjtBK0Y1a1ZFO0VBR0UsY0FBQTtFQUNBLHlCMUZtRFc7RTBGbERYLHFCMUZrRFc7QUwwaFZmO0ErRjFrVkk7RUFLSSxpREFBQTtBL0Z3a1ZSO0E4RmhsVkU7RUMzQkEsYzFGOEVhO0UwRjdFYiw2QkFBQTtFQUNBLHNCQUFBO0VBQ0EseUJBQUE7QS9GK21WRjtBK0Y3bVZFO0VBQ0UsV0FQOEM7RUFROUMseUIxRnVFVztFMEZ0RVgscUIxRnNFVztBTHlpVmY7QStGNW1WRTtFQUVFLGdEQUFBO0EvRjZtVko7QStGMW1WRTtFQUVFLGMxRjREVztFMEYzRFgsNkJBQUE7RUFDQSx5QkFBQTtBL0YybVZKO0ErRnhtVkU7RUFHRSxXQUFBO0VBQ0EseUIxRm1EVztFMEZsRFgscUIxRmtEVztBTHNqVmY7QStGdG1WSTtFQUtJLGdEQUFBO0EvRm9tVlI7QThGNW1WRTtFQzNCQSxjMUY4RWE7RTBGN0ViLDZCQUFBO0VBQ0Esc0JBQUE7RUFDQSx5QkFBQTtBL0Yyb1ZGO0ErRnpvVkU7RUFDRSxjQVA4QztFQVE5Qyx5QjFGdUVXO0UwRnRFWCxxQjFGc0VXO0FMcWtWZjtBK0Z4b1ZFO0VBRUUsZ0RBQUE7QS9GeW9WSjtBK0Z0b1ZFO0VBRUUsYzFGNERXO0UwRjNEWCw2QkFBQTtFQUNBLHlCQUFBO0EvRnVvVko7QStGcG9WRTtFQUdFLGNBQUE7RUFDQSx5QjFGbURXO0UwRmxEWCxxQjFGa0RXO0FMa2xWZjtBK0Zsb1ZJO0VBS0ksZ0RBQUE7QS9GZ29WUjtBOEZ4b1ZFO0VDM0JBLGMxRjhFYTtFMEY3RWIsNkJBQUE7RUFDQSxzQkFBQTtFQUNBLHlCQUFBO0EvRnVxVkY7QStGcnFWRTtFQUNFLGNBUDhDO0VBUTlDLHlCMUZ1RVc7RTBGdEVYLHFCMUZzRVc7QUxpbVZmO0ErRnBxVkU7RUFFRSwrQ0FBQTtBL0ZxcVZKO0ErRmxxVkU7RUFFRSxjMUY0RFc7RTBGM0RYLDZCQUFBO0VBQ0EseUJBQUE7QS9GbXFWSjtBK0ZocVZFO0VBR0UsY0FBQTtFQUNBLHlCMUZtRFc7RTBGbERYLHFCMUZrRFc7QUw4bVZmO0ErRjlwVkk7RUFLSSwrQ0FBQTtBL0Y0cFZSO0E4RnBxVkU7RUMzQkEsYzFGOEVhO0UwRjdFYiw2QkFBQTtFQUNBLHNCQUFBO0VBQ0EseUJBQUE7QS9GbXNWRjtBK0Zqc1ZFO0VBQ0UsV0FQOEM7RUFROUMseUIxRnVFVztFMEZ0RVgscUIxRnNFVztBTDZuVmY7QStGaHNWRTtFQUVFLGlEQUFBO0EvRmlzVko7QStGOXJWRTtFQUVFLGMxRjREVztFMEYzRFgsNkJBQUE7RUFDQSx5QkFBQTtBL0YrclZKO0ErRjVyVkU7RUFHRSxXQUFBO0VBQ0EseUIxRm1EVztFMEZsRFgscUIxRmtEVztBTDBvVmY7QStGMXJWSTtFQUtJLGlEQUFBO0EvRndyVlI7QThGaHNWRTtFQzNCQSxjMUY4RWE7RTBGN0ViLDZCQUFBO0VBQ0Esc0JBQUE7RUFDQSx5QkFBQTtBL0YrdFZGO0ErRjd0VkU7RUFDRSxjQVA4QztFQVE5Qyx5QjFGdUVXO0UwRnRFWCxxQjFGc0VXO0FMeXBWZjtBK0Y1dFZFO0VBRUUsaURBQUE7QS9GNnRWSjtBK0YxdFZFO0VBRUUsYzFGNERXO0UwRjNEWCw2QkFBQTtFQUNBLHlCQUFBO0EvRjJ0Vko7QStGeHRWRTtFQUdFLGNBQUE7RUFDQSx5QjFGbURXO0UwRmxEWCxxQjFGa0RXO0FMc3FWZjtBK0Z0dFZJO0VBS0ksaURBQUE7QS9Gb3RWUjtBOEY1dFZFO0VDM0JBLGMxRjhFYTtFMEY3RWIsNkJBQUE7RUFDQSxzQkFBQTtFQUNBLHlCQUFBO0EvRjJ2VkY7QStGenZWRTtFQUNFLFdBUDhDO0VBUTlDLHlCMUZ1RVc7RTBGdEVYLHFCMUZzRVc7QUxxclZmO0ErRnh2VkU7RUFFRSw4Q0FBQTtBL0Z5dlZKO0ErRnR2VkU7RUFFRSxjMUY0RFc7RTBGM0RYLDZCQUFBO0VBQ0EseUJBQUE7QS9GdXZWSjtBK0ZwdlZFO0VBR0UsV0FBQTtFQUNBLHlCMUZtRFc7RTBGbERYLHFCMUZrRFc7QUxrc1ZmO0ErRmx2Vkk7RUFLSSw4Q0FBQTtBL0ZndlZSO0FnR2h4VkE7RUFDRSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0VBQ0EsOEJBQUE7RUFHRSxzQjNGK04wQjtBTGtqVjlCO0FnRzl3VkU7RUFDRSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtFQUNBLFVBQUE7QWhHZ3hWSjtBZ0c1d1ZBO0VBQ0UseUJBQUE7RUFDQSxzQkFBQTtBaEcrd1ZGO0FnRzd3VkE7RUFDRSxzQjNGOE00QjtBTGtrVjlCO0FnRzl3VkE7RUFDRSxhQUFBO0VBQ0Esc0JBQUE7QWhHaXhWRjtBZ0cvd1ZBO0VBQ0UsZ0JBQUE7QWhHa3hWRjtBZ0doeFZBO0VBQ0Usb0JBQUE7QWhHbXhWRjtBZ0czd1ZFO0VBQ0UsMEIzRmdDVztBTDh1VmY7QWdHNXdWSTtFQUNFLGMzRjZCUztBTGl2VmY7QWdHbHhWRTtFQUNFLDBCM0ZnQ1c7QUxxdlZmO0FnR254Vkk7RUFDRSxjM0Y2QlM7QUx3dlZmO0FnR3p4VkU7RUFDRSwwQjNGZ0NXO0FMNHZWZjtBZ0cxeFZJO0VBQ0UsYzNGNkJTO0FMK3ZWZjtBZ0doeVZFO0VBQ0UsMEIzRmdDVztBTG13VmY7QWdHanlWSTtFQUNFLGMzRjZCUztBTHN3VmY7QWdHdnlWRTtFQUNFLDBCM0ZnQ1c7QUwwd1ZmO0FnR3h5Vkk7RUFDRSxjM0Y2QlM7QUw2d1ZmO0FnRzl5VkU7RUFDRSwwQjNGZ0NXO0FMaXhWZjtBZ0cveVZJO0VBQ0UsYzNGNkJTO0FMb3hWZjtBZ0dyelZFO0VBQ0UsMEIzRmdDVztBTHd4VmY7QWdHdHpWSTtFQUNFLGMzRjZCUztBTDJ4VmY7QWdHNXpWRTtFQUNFLDBCM0ZnQ1c7QUwreFZmO0FnRzd6Vkk7RUFDRSxjM0Y2QlM7QUxreVZmO0FnR3h6VkU7RUFDRSwrQkFBQTtFQUNBLGNBQUE7QWhHMnpWSjtBZ0d4elZNO0VBQ0UsMkIzRmdCTztBTDB5VmY7QWdHM3pWTTtFQUNFLDJCM0ZnQk87QUw2eVZmO0FnRzl6Vk07RUFDRSwyQjNGZ0JPO0FMZ3pWZjtBZ0dqMFZNO0VBQ0UsMkIzRmdCTztBTG16VmY7QWdHcDBWTTtFQUNFLDJCM0ZnQk87QUxzelZmO0FnR3YwVk07RUFDRSwyQjNGZ0JPO0FMeXpWZjtBZ0cxMFZNO0VBQ0UsMkIzRmdCTztBTDR6VmY7QWdHNzBWTTtFQUNFLDJCM0ZnQk87QUwrelZmO0FnRzMwVkk7RUFDRSxPQUFBO0VBQ0EsV0FBQTtBaEc2MFZOO0FpR2w1VkE7RUFDRSxxQkFBQTtBakdxNVZGO0FpR2o1Vkk7RUFDRSxxQkFBQTtBakdtNVZOO0FpR2w1Vk07RUFDRSx5QkFBQTtFQUNBLHFCQUFBO0FqR281VlI7QWlHeDVWSTtFQUNFLHFCQUFBO0FqRzA1Vk47QWlHejVWTTtFQUNFLHlCQUFBO0VBQ0EscUJBQUE7QWpHMjVWUjtBaUcvNVZJO0VBQ0UscUJBQUE7QWpHaTZWTjtBaUdoNlZNO0VBQ0UseUJBQUE7RUFDQSxxQkFBQTtBakdrNlZSO0FpR3Q2Vkk7RUFDRSxxQkFBQTtBakd3NlZOO0FpR3Y2Vk07RUFDRSx5QkFBQTtFQUNBLHFCQUFBO0FqR3k2VlI7QWlHNzZWSTtFQUNFLHFCQUFBO0FqRys2Vk47QWlHOTZWTTtFQUNFLHlCQUFBO0VBQ0EscUJBQUE7QWpHZzdWUjtBaUdwN1ZJO0VBQ0UscUJBQUE7QWpHczdWTjtBaUdyN1ZNO0VBQ0UseUJBQUE7RUFDQSxxQkFBQTtBakd1N1ZSO0FpRzM3Vkk7RUFDRSxxQkFBQTtBakc2N1ZOO0FpRzU3Vk07RUFDRSx5QkFBQTtFQUNBLHFCQUFBO0FqRzg3VlI7QWlHbDhWSTtFQUNFLHFCQUFBO0FqR284Vk47QWlHbjhWTTtFQUNFLHlCQUFBO0VBQ0EscUJBQUE7QWpHcThWUjtBaUdoOFZFOztFQUVFLFlBQUE7QWpHazhWSjtBaUc5N1ZBO0VBQ0UsZ0NBQUE7RUFDQSwwQkFBQTtBakdpOFZGO0FpRzc3VkU7RUFDRSxvQkFBQTtBakdnOFZKO0FpRzc3VkU7RUFDRSxvQkFBQTtFQUNBLHVCQUFBO0VBQ0EsZ0JBQUE7QWpHKzdWSjtBaUc3N1ZJO0VBQ0UsYUFBQTtBakcrN1ZOO0FpRzU3Vkk7RUFDRSx5QkFBQTtFQUNBLGMxRi9CTTtFMEZnQ04sYUFBQTtBakc4N1ZOO0FpRzU3Vk07RUFDRSxjMUZoQ0k7RTBGaUNKLGdCQUFBO0FqRzg3VlI7QWlHeDdWQTtFQUNFLGVBQUE7RUFDQSxtQkFBQTtBakcyN1ZGO0FpR3g3VkE7RUFDRSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSwwQ0FBQTtFQUNBLG9CQUFBO0VBQ0EsYzFGbERVO0UwRm1EVixrQkFBQTtFQUNBLHVCYnVIb0M7RWF0SHBDLCtCQUFBO0FqRzI3VkY7QWlHeDdWQTtFQUNFLHFCQUFBO0VBQ0EsWUFBQTtFQUNBLHNCQUFBO0FqRzI3VkY7QWlHdjdWRTtFQUNFLFdBQUE7RUFDQSxrQkFBQTtFQUNBLHFCQUFBO0FqRzA3Vko7QWlHdDdWQTtFQUNFLGtCQUFBO0VBQ0EsYzFGM0VVO0FQb2dXWjtBaUd2N1ZFO0VBQ0UsYzFGM0VRO0UwRjRFUixxQkFBQTtBakd5N1ZKO0FpR2w3VkU7RUMvRkEseUI3RjhFYTtFNkY3RWIscUJBQUE7QWxHcWhXRjtBaUd2N1ZFO0VDL0ZBLHlCN0Y4RWE7RTZGN0ViLHFCQUFBO0FsRzBoV0Y7QWlHNTdWRTtFQy9GQSx5QjdGOEVhO0U2RjdFYixxQkFBQTtBbEcraFdGO0FpR2o4VkU7RUMvRkEseUI3RjhFYTtFNkY3RWIscUJBQUE7QWxHb2lXRjtBaUd0OFZFO0VDL0ZBLHlCN0Y4RWE7RTZGN0ViLHFCQUFBO0FsR3lpV0Y7QWlHMzhWRTtFQy9GQSx5QjdGOEVhO0U2RjdFYixxQkFBQTtBbEc4aVdGO0FpR2g5VkU7RUMvRkEseUI3RjhFYTtFNkY3RWIscUJBQUE7QWxHbWpXRjtBaUdyOVZFO0VD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N3NXRTtFQUNFLG1CQUFBO0VBQ0EsbUJBQUE7QXZHK3NXSjtBdUc1c1dFO0VBQ0Usa0JBQUE7RUFDQSxlQUFBO0VBQ0EsU0FBQTtFQUNBLGtCQUFBO0F2RzhzV0o7QXVHNXNXSTtFQUNFLGNBQUE7QXZHOHNXTjtBdUczc1dJO0VBQ0UsY0FBQTtFQUNBLGlCQUFBO0VBQ0EsYUFBQTtFQUNBLFNBQUE7QXZHNnNXTjtBdUczc1dNO0VBQ0Usa0JBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLGlCQUFBO0VBQ0EsY0FBQTtBdkc2c1dSO0F1RzFzV007RUFDRSxZQUFBO0VBQ0EsY0FBQTtBdkc0c1dSO0F1R3ZzV0U7RUFDRSxpQkFBQTtFQUNBLGdCbEdtTjBCO0FMcy9WOUI7QXVHdHNXRTtFQUNFLGdCQUFBO0F2R3dzV0o7QXVHM3JXRTtFQUNFLGNoR3JGUTtBUG14V1o7QVM3d1dFO0U4RmtGSSxjaEd0Rk07QVBveFdaO0FTendXRTs7Ozs7Ozs7OztFOEZvRkksY2hHL0ZNO0FQZ3lXWjtBdUc1cldBO0VBQ0Usc0NBQUE7QXZHK3JXRjtBa0JwdldJO0VxRjJERTtJQUNFLFduQnpGOEI7SW1CMEY5Qiw2Qm5CN0Y4QjtFcEYweFdwQztFdUcxcldNO0lBQ0UsYUFBQTtFdkc0cldSO0V1R3pyV007SUFDRSxjQUFBO0V2RzJyV1I7QUFDRjtBd0c3eldBOztFQUVFLG1CQUFBO0VBQ0Esc0JBQUE7QXhHK3pXRjtBd0d0eldJOztFMUZQQSxzQlRxTzBCO0FMNmxXOUI7QXdHeHpXTTs7RTFGb0JGLHlCMEZuQmdDO0UxRm9CaEMsNEIwRnBCZ0M7QXhHNHpXcEM7QXdHMXpXTTs7RTFGR0YsMEIwRkZpQztFMUZHakMsNkIwRkhpQztBeEc4eldyQztBd0d6eldFO0VBQ0UsaUJBQUE7QXhHMnpXSjtBd0d6eldFO0VBQ0Usa0JBQUE7QXhHMnpXSjtBd0dseldFOzs7Ozs7RTFGaENFLHNCVHFPMEI7RVN2TTFCLHlCMEZTNEI7RTFGUjVCLDRCMEZRNEI7QXhHcXpXaEM7QXdHbHpXRTs7RTFGMUJFLDBCMEY0QjZCO0UxRjNCN0IsNkIwRjJCNkI7QXhHcXpXakM7QXdHbHpXRTs7Ozs7O0UxRi9DRSxzQlRxTzBCO0VTck4xQiwwQjBGc0M2QjtFMUZyQzdCLDZCMEZxQzZCO0F4R3F6V2pDO0F3R2x6V0U7O0UxRjNCRSx5QjBGNkI0QjtFMUY1QjVCLDRCMEY0QjRCO0F4R3F6V2hDO0F5R3IzV0E7O0VBRUUsZUFBQTtFQUNBLFlBQUE7RUFDQSxtQkFBQTtBekd3M1dGO0EwR3YzV0U7RUFDRSxrQkFBQTtFQUNBLGFBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RTVGSkEsZ0I0Rkt1QjtBMUcwM1czQjtBMEd4M1dJO0VBQ0Usa0JBQUE7QTFHMDNXTjtBMEd4M1dNO0VBQ0Usa0JBQUE7RUFDQSxZQUFBO0VBQ0EsUUFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0EsV0FBQTtFQUNBLHlCbkdoQkk7QVAwNFdaO0EyRzc0V0U7RUFDRSw4QkFBQTtBM0dnNVdKO0EyR2o1V0U7RUFDRSw4QkFBQTtBM0dvNVdKO0EyR3I1V0U7RUFDRSw4QkFBQTtBM0d3NVdKO0EyR3o1V0U7RUFDRSw4QkFBQTtBM0c0NVdKO0EyRzc1V0U7RUFDRSw4QkFBQTtBM0dnNldKO0EyR2o2V0U7RUFDRSw4QkFBQTtBM0dvNldKO0EyR3I2V0U7RUFDRSw4QkFBQTtBM0d3NldKO0EyR3o2V0U7RUFDRSw4QkFBQTtBM0c0NldKO0E0Rzc2V0k7RUFDRSxxQnZHMkVTO0FMcTJXZjtBNEc3NldJO0VBQ0UsV0FBQTtFQUNBLHlCdkdzRVM7QUx5MldmO0E0R3I3V0k7RUFDRSxxQnZHMkVTO0FMNjJXZjtBNEdyN1dJO0VBQ0UsV0FBQTtFQUNBLHlCdkdzRVM7QUxpM1dmO0E0Rzc3V0k7RUFDRSxxQnZHMkVTO0FMcTNXZjtBNEc3N1dJO0VBQ0UsV0FBQTtFQUNBLHlCdkdzRVM7QUx5M1dmO0E0R3I4V0k7RUFDRSxxQnZHMkVTO0FMNjNXZjtBNEdyOFdJO0VBQ0UsV0FBQTtFQUNBLHlCdkdzRVM7QUxpNFdmO0E0Rzc4V0k7RUFDRSxxQnZHMkVTO0FMcTRXZjtBNEc3OFdJO0VBQ0UsV0FBQTtFQUNBLHlCdkdzRVM7QUx5NFdmO0E0R3I5V0k7RUFDRSxxQnZHMkVTO0FMNjRXZjtBNEdyOVdJO0VBQ0UsV0FBQTtFQUNBLHlCdkdzRVM7QUxpNVdmO0E0Rzc5V0k7RUFDRSxxQnZHMkVTO0FMcTVXZjtBNEc3OVdJO0VBQ0UsV0FBQTtFQUNBLHlCdkdzRVM7QUx5NVdmO0E0R3IrV0k7RUFDRSxxQnZHMkVTO0FMNjVXZjtBNEdyK1dJO0VBQ0UsV0FBQTtFQUNBLHlCdkdzRVM7QUxpNldmO0E2Ry8rV0U7RUFDRSxjdEdRUTtBUDArV1o7QTZHai9XSTtFQUNFLGVBQUE7QTdHbS9XTjtBNkc5K1dBO0VBQ0UsZ0JBQUE7RUFDQSxnQnRHUlU7RXNHU1YseUJBQUE7RS9GUEUsa0MrRlFxQjtBN0dpL1d6QjtBNkcvK1dFO0VBQ0UsYXhHaUhLO0FMZzRXVDtBNkc1K1dFO0VBQ0UsYUFBQTtFQUNBLFNBQUE7QTdHKytXSjtBNkcxK1dFO0VBQ0Usc0JBQUE7RUFDQSxxQnRHdkJRO0FQb2dYWjtBNkczK1dFO0VBQ0UsaUJBQUE7QTdHNitXSjtBNkczK1dFO0VBQ0UsZ0JBQUE7RUFFQSw2QkFBQTtBN0c0K1dKO0E2R3QrV0U7RUFDRSxnQkFBQTtBN0d5K1dKO0E4R3RoWEE7RUFDRSxXQUFBO0E5R3loWEY7QThHdGhYQTtFQUNFLFdBQUE7QTlHeWhYRjtBOEdyaFhBO0VBQ0UsMENBQUE7QTlHd2hYRjtBOEd2aFhFO0VBQ0Usc0JBQUE7QTlHeWhYSjtBK0dyaVhBO0VBQ0UsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUIxRzhITztBTDA2V1Q7QStHcmlYQTtFQUNFLGVBQUE7RUFDQSxrQkFBQTtBL0d3aVhGO0ErR3JpWEE7RUFDRSx3QkFBQTtFQUNBLHFCMUd5UTRCO0FMK3hXOUI7QStHcmlYQTtFQUNFLHNCMUdzUTRCO0UwR3JRNUIsY3hHUlU7QVBnalhaO0ErR3JpWEE7RUFDRSxhQUFBO0VBQ0EsZ0JBQUE7RUFDQSxxQkFBQTtFQUNBLHNCQUFBO0EvR3dpWEY7QStHcmlYQTtFQUNFLFlBQUE7RUFDQSxrQkFBQTtBL0d3aVhGO0ErR3RpWEU7RUFDRSxrQkFBQTtBL0d3aVhKO0ErR3BpWEE7RUFDRSxnQkFBQTtBL0d1aVhGO0FnSDVrWEE7RUFDRSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSxVNUIwQ29DO0U0QnpDcEMsVzVCOENvQztFNEI3Q3BDLG1CekdNVTtBUHlrWFo7QWdINWtYRTtFQUNFLGtCQUFBO0VBQ0EsUUFBQTtFQUNBLGFBQUE7RUFDQSxlQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUI1QkVrQztFNEJEbEMsVzVCa0NrQztFNEJqQ2xDLGFBQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtBaEg4a1hKO0FnSDVrWEk7RUFDRSxVQUFBO0FoSDhrWE47QWdIdmtYRTtFQUNFLGNBQUE7RUFDQSxxQkFBQTtFQUNBLGtCQUFBO0VBQ0EsOEI1QnlCa0M7QXBGZ2pYdEM7QWdIdGtYRTtFQUNFLFc1QjZCa0M7RTRCNUJsQyxtQjVCMkJrQztFNEIxQmxDLFM1QnlCa0M7QXBGK2lYdEM7QWdIdGtYSTtFQUNFLCtCNUJ5QmdDO0FwRitpWHRDO0FnSHprWEk7RUFDRSwrQjVCeUJnQztBcEYraVh0QztBZ0h6a1hJO0VBQ0UsK0I1QnlCZ0M7QXBGK2lYdEM7QWdIcGtYRTtFQUNFLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUNwQ0EsWUNaWTtBbEh1blhoQjtBZ0hua1hFO0VBQ0Usa0JBQUE7RUFDQSxPQUFBO0VDMUNBLFlDWlk7QWxING5YaEI7QWdIbGtYRTtFQUNFLGtCQUFBO0VBQ0EsZ0JBQUE7QWhIb2tYSjtBZ0hqa1hFO0VDbkRFLFlDWlk7RUZpRVosc0JBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7QWhIbWtYSjtBZ0hoa1hFO0VBQ0UscUJBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjekd2RVE7RXlHd0VSLHlCQUFBO0FoSGtrWEo7QWdIL2pYRTtFQUNFLFlBQUE7QWhIaWtYSjtBZ0g5alhFO0VBQ0Usa0JBQUE7RUFDQSxTQUFBO0VBQ0EsdUNBQUE7QWhIZ2tYSjtBZ0g3alhFO0VBQ0UsYUFBQTtFQUNBLFVBQUE7RUFDQSxTQUFBO0VBQ0Esa0JBQUE7RUFDQSx1Q0FBQTtBaEgralhKO0FnSDdqWEk7RUFDRSxVQUFBO0VBQ0EsZ0JBQUE7QWhIK2pYTjtBZ0gzalhFO0VBQ0UsY0FBQTtFQUNBLHFCQUFBO0VBQ0EsVzVCN0JrQztFNEI4QmxDLHFCQUFBO0VBQ0EsdUI1QjlCa0M7QXBGMmxYdEM7QWdIdmpYSTtFQUNFLHFCQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLG1CeEc3RjRCO0V3RzhGNUIsY3pHOUdNO0V5RytHTixrQkFBQTtBaEh5alhOO0FnSHRqWEk7RUFDRSxZQUFBO0VBQ0EsZUFBQTtBaEh3alhOO0FnSHJqWEk7RUFDRSxXNUIxQ2dDO0U0QjJDaEMsbUI1QjFDZ0M7QXBGaW1YdEM7QWdIcGpYTTtFQUNFLGM1QjdDOEI7QXBGbW1YdEM7QWdIbGpYSTtFQUNFLFc1QnpEZ0M7RTRCMERoQyxtQjVCekRnQztBcEY2bVh0QztBZ0hqalhNO0VBQ0UsVzVCNUQ4QjtBcEYrbVh0QztBZ0hoalhNO0VBQ0Usa2I1QjdDOEI7QXBGK2xYdEM7QWdIOWlYSTtFQUNFLGM1QjdEa0M7RTRCOERsQyxlNUIyRFk7RTRCMURaLHVCQUFBO0FoSGdqWE47QWdIN2lYTTtFQUNFLGN6R3RKSTtBUHFzWFo7QWdINWlYTTtFQUNFLGM1QnZFZ0M7QXBGcW5YeEM7QWdIM2lYUTtFQUNFLGN6RzlKRTtBUDJzWFo7QWdIMWlYUTtFQUNFLGtiNUJwRTRCO0FwRmduWHRDO0FnSHRpWE07RUFDRSxtQjNHcEdPO0FMNG9YZjtBZ0h2aVhRO0VBQ0UsK0JBQUE7QWhIeWlYVjtBZ0h2aVhRO0VBQ0UsbUJBQUE7QWhIeWlYVjtBZ0h4aVhVO0VBQ0UsV0FBQTtBaEgwaVhaO0FnSGxqWE07RUFDRSxtQjNHcEdPO0FMd3BYZjtBZ0hualhRO0VBQ0UsK0JBQUE7QWhIcWpYVjtBZ0hualhRO0VBQ0UsbUJBQUE7QWhIcWpYVjtBZ0hwalhVO0VBQ0UsV0FBQTtBaEhzalhaO0FnSDlqWE07RUFDRSxtQjNHcEdPO0FMb3FYZjtBZ0gvalhRO0VBQ0UsK0JBQUE7QWhIaWtYVjtBZ0gvalhRO0VBQ0UsbUJBQUE7QWhIaWtYVjtBZ0hoa1hVO0VBQ0UsV0FBQTtBaEhra1haO0FnSDFrWE07RUFDRSxtQjNHcEdPO0FMZ3JYZjtBZ0gza1hRO0VBQ0UsK0JBQUE7QWhINmtYVjtBZ0gza1hRO0VBQ0UsbUJBQUE7QWhINmtYVjtBZ0g1a1hVO0VBQ0UsV0FBQTtBaEg4a1haO0FnSHRsWE07RUFDRSxtQjNHcEdPO0FMNHJYZjtBZ0h2bFhRO0VBQ0UsK0JBQUE7QWhIeWxYVjtBZ0h2bFhRO0VBQ0UsbUJBQUE7QWhIeWxYVjtBZ0h4bFhVO0VBQ0UsV0FBQTtBaEgwbFhaO0FnSGxtWE07RUFDRSxtQjNHcEdPO0FMd3NYZjtBZ0hubVhRO0VBQ0UsK0JBQUE7QWhIcW1YVjtBZ0hubVhRO0VBQ0UsbUJBQUE7QWhIcW1YVjtBZ0hwbVhVO0VBQ0UsV0FBQTtBaEhzbVhaO0FnSDltWE07RUFDRSxtQjNHcEdPO0FMb3RYZjtBZ0gvbVhRO0VBQ0UsK0JBQUE7QWhIaW5YVjtBZ0gvbVhRO0VBQ0UsbUJBQUE7QWhIaW5YVjtBZ0hoblhVO0VBQ0UsV0FBQTtBaEhrblhaO0FnSDFuWE07RUFDRSxtQjNHcEdPO0FMZ3VYZjtBZ0gzblhRO0VBQ0UsK0JBQUE7QWhINm5YVjtBZ0gzblhRO0VBQ0UsbUJBQUE7QWhINm5YVjtBZ0g1blhVO0VBQ0UsV0FBQTtBaEg4blhaO0FnSHZuWEU7RUFDRSxrQkFBQTtBaEh5blhKO0FnSHZuWEk7RUFDRSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxXNUIxSGdDO0U0QjJIaEMsY0FBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLHFiNUJ4R2dDO0U0QnlHaEMsNEJBQUE7RUFDQSwyQkFBQTtFQUNBLDBCQUFBO0FoSHluWE47QWdIdG5YSTtFQUNFLGtCQUFBO0FoSHduWE47QWdIcG5YRTtFQUNFLDhCNUJ2SGtDO0FwRjZ1WHRDO0FnSGpuWEk7RUFDRSxrQkFBQTtBaEhtblhOO0FnSGhuWEk7RUFDRSxXNUJsSWdDO0U0Qm1JaEMsY0FBQTtBaEhrblhOO0FnSGhuWE07RUFDRSxjNUIzSWdDO0U0QjRJaEMsdUJBQUE7QWhIa25YUjtBZ0hoblhRO0VBQ0UsYzVCL0k4QjtBcEZpd1h4QztBZ0hoblhVO0VBQ0UsY3pHck9BO0FQdTFYWjtBZ0g1bVhJO0VBQ0UseUJBQUE7QWhIOG1YTjtBZ0gzbVhJO0VBQ0UsY0FBQTtBaEg2bVhOO0FnSHptWEU7RUFDRSxjQUFBO0VBQ0Esd0JBQUE7RUFDQSxjekczUFE7QVBzMlhaO0FnSHptWEk7RUFDRSxXNUJqTmdDO0U0QmtOaEMscUJBQUE7QWhIMm1YTjtBZ0h4bVhJO0VBQ0UsV0FBQTtFQUNBLHVCQUFBO0VBQ0EsZUFBQTtFQUNBLGN6R2xRTTtFeUdtUU4sa0JBQUE7RUFDQSxzQkFBQTtBaEgwbVhOO0FnSHJtWEk7RUFDRSxvQ0FBQTtBaEh1bVhOO0FnSG5tWEU7RUFDRSxjQUFBO0VBQ0EscUJBQUE7RUFDQSw4QjVCOUtrQztBcEZteFh0QztBZ0hqbVhFO0VBQ0Usa0JBQUE7RUFDQSxjQUFBO0VBQ0EsZUFBQTtFQUNBLG9DNUI5S2tDO0U0QitLbEMsU0FBQTtBaEhtbVhKO0FnSGhtWEk7RUFDRSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxRQUFBO0VBQ0EsVzVCdkxnQztFNEJ3TGhDLFk1QnhMZ0M7RTRCeUxoQyxXQUFBO0VBQ0EscWI1QnRMZ0M7RTRCdUxoQyw0QkFBQTtFQUNBLDJCQUFBO0VBQ0EsdUJBQUE7RUFDQSxnQkFBQTtBaEhrbVhOO0FnSC9sWEk7RUFFRSxVQUFBO0FoSGdtWE47QWdIN2xYSTtFQUNFLG9DNUJsTWdDO0FwRml5WHRDO0FnSDlsWE07RUFDRSxrYjVCbE04QjtBcEZreVh0QztBa0JqMlhJO0U4RjBRRTtJQ3ZURixZN0JrQ2tDO0VwRmkzWHBDO0VnSHhsWEk7SUMzVEYsWTdCa0NrQztFcEZvM1hwQztFZ0h2bFhJO0lBQ0UsYUFBQTtFaEh5bFhOO0VnSHRsWEk7SUFDRSxrQkFBQTtFaEh3bFhOO0VnSHJsWEk7SUFDRSxZNUJ0UzhCO0k0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O0UrQi9HaEMsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EsYzVHM0VNO0U0RzRFTixrQkFBQTtFQUNBLHlCQUFBO0VBQ0EsNkJBQUE7RUFDQSxtQkFBQTtBbkhrb1lOO0FtSDduWUk7RUFDRSwyQkFBQTtBbkgrbllOO0FtSDduWUk7RUFDRSxTQUFBO0VBQ0EsV0FBQTtFQUNBLDJCQUFBO0FuSCtuWU47QW1IMW5ZRTtFQ3JHQSxXaEN5TW9DO0VnQ3hNcEMsWWhDZ01vQztBcEZraVl0QztBb0hodVlFO0VBQ0UsZWhDOExrQztBcEZvaVl0QztBb0hodVlJO0VBQ0UsV0FBQTtFQUNBLFlBQUE7QXBIa3VZTjtBb0hodVlJO0VBQ0UsZWhDdUxnQztBcEYyaVl0QztBb0g3dFlJO0VBQ0UsMkJBQUE7QXBIK3RZTjtBbUh2b1lFO0VDekdBLFdoQzBNb0M7RWdDek1wQyxZaENvTW9DO0FwRitpWXRDO0FvSGp2WUU7RUFDRSxjaENrTWtDO0FwRmlqWXRDO0FvSGp2WUk7RUFDRSxXQUFBO0VBQ0EsWUFBQTtBcEhtdllOO0FvSGp2WUk7RUFDRSxjaEMyTGdDO0FwRndqWXRDO0FvSDl1WUk7RUFDRSwyQkFBQTtBcEhndllOO0FtSDlvWUU7RUFDRSx5QjVHaEhRO0U0R2lIUixtQkFBQTtBbkhpcFlKO0FtSC9vWUk7RUFDRSxTQUFBO0VBQ0EsVUFBQTtFQUNBLFcvQm1FZ0M7RStCbEVoQyxZL0JrRWdDO0UrQmpFaEMsU0FBQTtFQUNBLG1CQUFBO0VBQ0Esd0NBQUE7QW5IaXBZTjtBbUg1b1lFO0VDNUdBLFdoQ3lLb0M7RWdDeEtwQyxZaEN5S29DO0FwRmtsWXRDO0FvSHp2WUU7RUFDRSxXaENzS2tDO0VnQ3JLbEMsWWhDcUtrQztBcEZzbFl0QztBb0h2dllJO0VBQ0UsMkJBQUE7QXBIeXZZTjtBbUhucFlFO0VDaEhBLFdoQzZLb0M7RWdDNUtwQyxZaEM2S29DO0FwRnlsWXRDO0FvSHB3WUU7RUFDRSxXaEMwS2tDO0VnQ3pLbEMsWWhDeUtrQztBcEY2bFl0QztBb0hsd1lJO0VBQ0UsMkJBQUE7QXBIb3dZTjtBb0g5dllFO0VBQ0UseUIvR3NDVztFK0dyQ1gscUJBQUE7QXBIaXdZSjtBb0gvdllJO0VBQ0UscUJBQUE7QXBIaXdZTjtBb0gzdllFO0VBQ0Usc0I3R2pEUTtFNkdrRFIscUIvRzBCVztBTG91WWY7QW9INXZZSTtFQUNFLHFCL0d1QlM7QUx1dVlmO0FvSDV2WUk7RUFDRSxjL0dvQlM7QUwwdVlmO0FvSHh2WUU7RUFDRSxzQjdHL0RRO0U2R2dFUixxQi9HWVc7QUwrdVlmO0FvSHp2WUk7RUFDRSx5Qi9HU1M7RStHUlQscUIvR1FTO0FMbXZZZjtBb0h6dllJO0VBQ0UsYy9HS1M7QUxzdllmO0FvSDd4WUU7RUFDRSx5Qi9Hc0NXO0UrR3JDWCxxQkFBQTtBcEhneVlKO0FvSDl4WUk7RUFDRSxxQkFBQTtBcEhneVlOO0FvSDF4WUU7RUFDRSxzQjdHakRRO0U2R2tEUixxQi9HMEJXO0FMbXdZZjtBb0gzeFlJO0VBQ0UscUIvR3VCUztBTHN3WWY7QW9IM3hZSTtFQUNFLGMvR29CUztBTHl3WWY7QW9IdnhZRTtFQUNFLHNCN0cvRFE7RTZHZ0VSLHFCL0dZVztBTDh3WWY7QW9IeHhZSTtFQUNFLHlCL0dTUztFK0dSVCxxQi9HUVM7QUxreFlmO0FvSHh4WUk7RUFDRSxjL0dLUztBTHF4WWY7QW9INXpZRTtFQUNFLHlCL0dzQ1c7RStHckNYLHFCQUFBO0FwSCt6WUo7QW9IN3pZSTtFQUNFLHFCQUFBO0FwSCt6WU47QW9IenpZRTtFQUNFLHNCN0dqRFE7RTZHa0RSLHFCL0cwQlc7QUxreVlmO0FvSDF6WUk7RUFDRSxxQi9HdUJTO0FMcXlZZjtBb0gxellJO0VBQ0UsYy9Hb0JTO0FMd3lZZjtBb0h0ellFO0VBQ0Usc0I3Ry9EUTtFNkdnRVIscUIvR1lXO0FMNnlZZjtBb0h2ellJO0VBQ0UseUIvR1NTO0UrR1JULHFCL0dRUztBTGl6WWY7QW9IdnpZSTtFQUNFLGMvR0tTO0FMb3pZZjtBb0gzMVlFO0VBQ0UseUIvR3NDVztFK0dyQ1gscUJBQUE7QXBIODFZSjtBb0g1MVlJO0VBQ0UscUJBQUE7QXBIODFZTjtBb0h4MVlFO0VBQ0Usc0I3R2pEUTtFNkdrRFIscUIvRzBCVztBTGkwWWY7QW9IejFZSTtFQUNFLHFCL0d1QlM7QUxvMFlmO0FvSHoxWUk7RUFDRSxjL0dvQlM7QUx1MFlmO0FvSHIxWUU7RUFDRSxzQjdHL0RRO0U2R2dFUixxQi9HWVc7QUw0MFlmO0FvSHQxWUk7RUFDRSx5Qi9HU1M7RStHUlQscUIvR1FTO0FMZzFZZjtBb0h0MVlJO0VBQ0UsYy9HS1M7QUxtMVlmO0FvSDEzWUU7RUFDRSx5Qi9Hc0NXO0UrR3JDWCxxQkFBQTtBcEg2M1lKO0FvSDMzWUk7RUFDRSxxQkFBQTtBcEg2M1lOO0FvSHYzWUU7RUFDRSxzQjdHakRRO0U2R2tEUixxQi9HMEJXO0FMZzJZZjtBb0h4M1lJO0VBQ0UscUIvR3VCUztBTG0yWWY7QW9IeDNZSTtFQUNFLGMvR29CUztBTHMyWWY7QW9IcDNZRTtFQUNFLHNCN0cvRFE7RTZHZ0VSLHFCL0dZVztBTDIyWWY7QW9IcjNZSTtFQUNFLHlCL0dTUztFK0dSVCxxQi9HUVM7QUwrMllmO0FvSHIzWUk7RUFDRSxjL0dLUztBTGszWWY7QW9IejVZRTtFQUNFLHlCL0dzQ1c7RStHckNYLHFCQUFBO0FwSDQ1WUo7QW9IMTVZSTtFQUNFLHFCQUFBO0FwSDQ1WU47QW9IdDVZRTtFQUNFLHNCN0dqRFE7RTZHa0RSLHFCL0cwQlc7QUwrM1lmO0FvSHY1WUk7RUFDRSxxQi9HdUJTO0FMazRZZjtBb0h2NVlJO0VBQ0UsYy9Hb0JTO0FMcTRZZjtBb0huNVlFO0VBQ0Usc0I3Ry9EUTtFNkdnRVIscUIvR1lXO0FMMDRZZjtBb0hwNVlJO0VBQ0UseUIvR1NTO0UrR1JULHFCL0dRUztBTDg0WWY7QW9IcDVZSTtFQUNFLGMvR0tTO0FMaTVZZjtBb0h4N1lFO0VBQ0UseUIvR3NDVztFK0dyQ1gscUJBQUE7QXBIMjdZSjtBb0h6N1lJO0VBQ0UscUJBQUE7QXBIMjdZTjtBb0hyN1lFO0VBQ0Usc0I3R2pEUTtFNkdrRFIscUIvRzBCVztBTDg1WWY7QW9IdDdZSTtFQUNFLHFCL0d1QlM7QUxpNllmO0FvSHQ3WUk7RUFDRSxjL0dvQlM7QUxvNllmO0FvSGw3WUU7RUFDRSxzQjdHL0RRO0U2R2dFUixxQi9HWVc7QUx5NllmO0FvSG43WUk7RUFDRSx5Qi9HU1M7RStHUlQscUIvR1FTO0FMNjZZZjtBb0huN1lJO0VBQ0UsYy9HS1M7QUxnN1lmO0FvSHY5WUU7RUFDRSx5Qi9Hc0NXO0UrR3JDWCxxQkFBQTtBcEgwOVlKO0FvSHg5WUk7RUFDRSxxQkFBQTtBcEgwOVlOO0FvSHA5WUU7RUFDRSxzQjdHakRRO0U2R2tEUixxQi9HMEJXO0FMNjdZZjtBb0hyOVlJO0VBQ0UscUIvR3VCUztBTGc4WWY7QW9IcjlZSTtFQUNFLGMvR29CUztBTG04WWY7QW9IajlZRTtFQUNFLHNCN0cvRFE7RTZHZ0VSLHFCL0dZVztBTHc4WWY7QW9IbDlZSTtFQUNFLHlCL0dTUztFK0dSVCxxQi9HUVM7QUw0OFlmO0FvSGw5WUk7RUFDRSxjL0dLUztBTCs4WWY7QW1IejNZRTtFQUNFLG1CQUFBO0FuSDQzWUo7QW1IMTNZSTtFQUNFLG1CQUFBO0FuSDQzWU47QXFIcmlaQTtFQUNFLHlCQUFBO0FySHdpWkY7QXFIdGlaRTtFQUNFLHNCQUFBO0FySHdpWko7QXFIbGlaRTtFQUNFLHNCQUFBO0FySHFpWko7QXFIaGlaRTtFQUNFLFNBQUE7QXJIbWlaSjtBc0hualpBO0VBQ0U7SUFDRSxhQUFBO0lBQ0Esc0JBQUE7RXRIc2paRjtBQUNGO0FzSGpqWkE7OztFQUdFLGFBQUE7RUFDQSxzQkFBQTtFQUNBLGlCQUFBO0F0SG1qWkY7QXNIaGpaQTtFQUNFLGNBQUE7QXRIbWpaRjtBc0hoalpBO0VBQ0UsY0FBQTtBdEhtalpGO0FzSGhqWkE7RUFDRSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7QXRIbWpaRjtBc0hqalpFO0VBQ0UsT0FBQTtFQUNBLFlBQUE7QXRIbWpaSjtBc0hoalpFO0VBRUUsZUFBQTtFQUVBLFNBQUE7QXRIZ2paSjtBc0g3aVpFO0VBRUUsZUFBQTtBdEg4aVpKO0FzSHppWkU7RUFDRSxtQkFBQTtBdEg0aVpKO0FzSDFpWkU7RUFDRSxRQUFBO0VBQ0Esb0JBQUE7QXRINGlaSjtBc0h4aVpFO0VBQ0Usb0JBQUE7QXRIMmlaSjtBc0h6aVpFO0VBQ0UsT0FBQTtFQUNBLG1CQUFBO0F0SDJpWko7QWtCaGpaSTtFb0djQTtJQUNFLGVBQUE7SUFDQSxhakgwbEI4QjtJaUh6bEI5QixXQUFBO0V0SHNpWko7RXNIcGlaRTtJQUNFLGdCbEM5RGdDO0VwRm9tWnBDOztFc0gvaFpFO0lBQ0UsZUFBQTtJQUNBLGFBQUE7SUFDQSxZSnZGVTtJSXdGVixhQUFBO0V0SGtpWko7O0VzSDloWkU7SUFDRSwwQkFBQTtFdEhpaVpKOztFc0g1aFpFO0lBQ0UsZUFBQTtFdEgraFpKO0VzSDNoWkk7SUFDRSxZbEMxRDhCO0VwRnVsWnBDO0VzSDFoWkU7SUFDRSxhQUFBO0V0SDRoWko7O0VzSHZoWkU7SUFDRSxjQUFBO0V0SDBoWko7RXNIdGhaSTtJQUNFLFdsQzNFOEI7RXBGbW1acEM7O0VzSGxoWkU7SUFDRSxlQUFBO0lBQ0EsYUFBQTtJQUNBLFlBQUE7RXRIcWhaSjs7RXNIaGhaRTtJQUNFLDBCQUFBO0V0SG1oWko7O0VzSDdnWkk7SUFDRSxtQkFBQTtFdEhnaFpOO0VzSDVnWkk7SUFDRSxrQkFBQTtFdEg4Z1pOOztFc0h4Z1pJO0lBQ0Usb0JBQUE7RXRIMmdaTjtFc0h2Z1pJO0lBQ0UsbUJBQUE7RXRIeWdaTjs7RXNIaGdaRTtJQUNFLGVBQUE7SUFDQSxZQUFBO0V0SG1nWko7RXNIamdaSTtJQUNFLHFDQUFBO0V0SG1nWk47O0VzSDcvWUU7SUFDRSwwQkFBQTtFdEhnZ1pKOztFc0gzL1lFO0lBQ0UsZUFBQTtJQUNBLGFBQUE7SUFDQSxZQUFBO0V0SDgvWUo7O0VzSHovWUU7SUFDRSwwQkFBQTtFdEg0L1lKOztFc0hyL1lJOztJQUNFLFFBQUE7RXRIeS9ZTjs7RXNIbC9ZSTs7SUFDRSxPQUFBO0V0SHMvWU47QUFDRjtBc0g3K1lFO0VBRUUscUJBRG9CO0F0SCsrWXhCO0FzSDMrWUU7RUFDRSxlQUFBO0VBQ0EsU2xDbk5rQztFa0NvTmxDLFFBQUE7RUFDQSxPQUFBO0VBQ0EsYUFBQTtBdEg2K1lKO0FzSG4rWVE7O0VBQ0UsY0FBQTtBdEh1K1lWO0FzSHQ3WVE7O0VBQ0UsZUFBQTtBdEh5N1lWO0FzSHA2WVE7O0VBQ0UsZUFBQTtBdEh3NllWO0FzSHYzWVE7O0VBQ0UsY0FBQTtBdEgwM1lWO0FzSHQyWU07RUFDRTtJQUFPLFVBQUE7RXRIMDJZYjtFc0h6MllNO0lBQU8sVUFBQTtFdEg0MlliO0FBQ0Y7QXNILzJZTTtFQUNFO0lBQU8sVUFBQTtFdEgwMlliO0VzSHoyWU07SUFBTyxVQUFBO0V0SDQyWWI7QUFDRjtBa0J2cVpJO0VvRytUTTs7SUFDRSxrQkFBQTtFdEg0MllWO0VzSDMyWVU7O0lBQ0Usa0JBQUE7SUFDQSxNQUFBO0lBQ0EsT0FBQTtJQUNBLGFBQUE7SUFDQSxXQUFBO0lBQ0EsWUFBQTtJQUNBLFdBQUE7SUFDQSw4QkFBQTtJQUNBLGdDQUFBO1lBQUEsd0JBQUE7RXRIODJZWjtBQUNGO0FrQnRzWkk7RW9Hc0xJOztJQUNFLGNBQUE7RXRIcWhaUjtFc0hqaFpVOzs7O0lBRUUsa0JKdFBFO0VsSDJ3WmQ7RXNIbGhaWTs7OztJQUVFLGtCbEM3TXNCO0VwRm11WnBDO0FBQ0Y7QWtCNXNaSTtFb0cwTFk7Ozs7SUFFRSxrQkpsUUY7RWxIeXhaZDtBQUNGO0FrQmp1Wkk7RW9HNk1ZOzs7O0lBRUUsaUJsQzVOb0I7RXBGcXZacEM7QUFDRjtBa0J6dVpJO0VvR3FOUTs7SUFDRSxXSi9RRTtFbEh1eVpkO0VzSHJoWlk7O0lBQ0UsV2xDck9zQjtFcEY2dlpwQztFc0hwaFpZOztJQUNFLFVsQzVPc0I7RXBGbXdacEM7QUFDRjtBa0J2dlpJO0VvR3dPSTs7SUFDRSxlQUFBO0V0SG1oWlI7RXNIL2daVTs7OztJQUVFLG1CbENoS3dCO0VwRm1yWnBDO0VzSC9nWlU7O0lBQ0UsWWxDckt3QjtFcEZ1clpwQztBQUNGO0FrQnZ3Wkk7RW9HOFBJOztJQUNFLGVBQUE7RXRINmdaUjtFc0h6Z1pVOzs7O0lBRUUsbUJKOVRFO0VsSDIwWmQ7RXNIMWdaWTs7OztJQUVFLG1CbENyUnNCO0VwRm15WnBDO0FBQ0Y7QWtCNXdaSTtFb0drUVk7Ozs7SUFFRSxtQkoxVUY7RWxIeTFaZDtBQUNGO0FrQmp5Wkk7RW9HcVJZOzs7O0lBRUUsa0JsQ3BTb0I7RXBGcXpacEM7QUFDRjtBa0J6eVpJO0VvRzZSUTs7SUFDRSxZSnZWRTtFbEh1MlpkO0VzSDdnWlk7O0lBQ0UsWWxDN1NzQjtFcEY2elpwQztFc0g1Z1pZOztJQUNFLFdsQ3BUc0I7RXBGbTBacEM7QUFDRjtBa0J2elpJO0VvR2dUSTs7SUFDRSxjQUFBO0V0SDJnWlI7RXNIdmdaVTs7OztJQUVFLGtCbEN4T3dCO0VwRm12WnBDO0VzSHZnWlU7O0lBQ0UsV2xDN093QjtFcEZ1dlpwQztBQUNGO0FrQnYwWkk7RW9HcVVFO0lBQ0U7TUFBTyxVQUFBO0l0SHNnWlg7SXNIcmdaSTtNQUFPLFVBQUE7SXRId2daWDtFQUNGO0VzSDNnWkk7SUFDRTtNQUFPLFVBQUE7SXRIc2daWDtJc0hyZ1pJO01BQU8sVUFBQTtJdEh3Z1pYO0VBQ0Y7QUFDRjtBa0JqMVpJO0VvR3NMSTs7SUFDRSxjQUFBO0V0SCtwWlI7RXNIM3BaVTs7OztJQUVFLGtCSnRQRTtFbEhxNVpkO0VzSDVwWlk7Ozs7SUFFRSxrQmxDN01zQjtFcEY2MlpwQztBQUNGO0FrQnQxWkk7RW9HMExZOzs7O0lBRUUsa0JKbFFGO0VsSG02WmQ7QUFDRjtBa0IzMlpJO0VvRzZNWTs7OztJQUVFLGlCbEM1Tm9CO0VwRiszWnBDO0FBQ0Y7QWtCbjNaSTtFb0dxTlE7O0lBQ0UsV0ovUUU7RWxIaTdaZDtFc0gvcFpZOztJQUNFLFdsQ3JPc0I7RXBGdTRacEM7RXNIOXBaWTs7SUFDRSxVbEM1T3NCO0VwRjY0WnBDO0FBQ0Y7QWtCajRaSTtFb0d3T0k7O0lBQ0UsZUFBQTtFdEg2cFpSO0VzSHpwWlU7Ozs7SUFFRSxtQmxDaEt3QjtFcEY2elpwQztFc0h6cFpVOztJQUNFLFlsQ3JLd0I7RXBGaTBacEM7QUFDRjtBa0JqNVpJO0VvRzhQSTs7SUFDRSxlQUFBO0V0SHVwWlI7RXNIbnBaVTs7OztJQUVFLG1CSjlURTtFbEhxOVpkO0VzSHBwWlk7Ozs7SUFFRSxtQmxDclJzQjtFcEY2NlpwQztBQUNGO0FrQnQ1Wkk7RW9Ha1FZOzs7O0lBRUUsbUJKMVVGO0VsSG0rWmQ7QUFDRjtBa0IzNlpJO0VvR3FSWTs7OztJQUVFLGtCbENwU29CO0VwRis3WnBDO0FBQ0Y7QWtCbjdaSTtFb0c2UlE7O0lBQ0UsWUp2VkU7RWxIaS9aZDtFc0h2cFpZOztJQUNFLFlsQzdTc0I7RXBGdThacEM7RXNIdHBaWTs7SUFDRSxXbENwVHNCO0VwRjY4WnBDO0FBQ0Y7QWtCajhaSTtFb0dnVEk7O0lBQ0UsY0FBQTtFdEhxcFpSO0VzSGpwWlU7Ozs7SUFFRSxrQmxDeE93QjtFcEY2M1pwQztFc0hqcFpVOztJQUNFLFdsQzdPd0I7RXBGaTRacEM7QUFDRjtBa0JqOVpJO0VvR3FVRTtJQUNFO01BQU8sVUFBQTtJdEhncFpYO0lzSC9vWkk7TUFBTyxVQUFBO0l0SGtwWlg7RUFDRjtFc0hycFpJO0lBQ0U7TUFBTyxVQUFBO0l0SGdwWlg7SXNIL29aSTtNQUFPLFVBQUE7SXRIa3BaWDtFQUNGO0FBQ0Y7QWtCMzlaSTtFb0dzTEk7O0lBQ0UsY0FBQTtFdEh5eVpSO0VzSHJ5WlU7Ozs7SUFFRSxrQkp0UEU7RWxIK2hhZDtFc0h0eVpZOzs7O0lBRUUsa0JsQzdNc0I7RXBGdS9acEM7QUFDRjtBa0JoK1pJO0VvRzBMWTs7OztJQUVFLGtCSmxRRjtFbEg2aWFkO0FBQ0Y7QWtCci9aSTtFb0c2TVk7Ozs7SUFFRSxpQmxDNU5vQjtFcEZ5Z2FwQztBQUNGO0FrQjcvWkk7RW9HcU5ROztJQUNFLFdKL1FFO0VsSDJqYWQ7RXNIenlaWTs7SUFDRSxXbENyT3NCO0VwRmloYXBDO0VzSHh5Wlk7O0lBQ0UsVWxDNU9zQjtFcEZ1aGFwQztBQUNGO0FrQjNnYUk7RW9Hd09JOztJQUNFLGVBQUE7RXRIdXlaUjtFc0hueVpVOzs7O0lBRUUsbUJsQ2hLd0I7RXBGdThacEM7RXNIbnlaVTs7SUFDRSxZbENyS3dCO0VwRjI4WnBDO0FBQ0Y7QWtCM2hhSTtFb0c4UEk7O0lBQ0UsZUFBQTtFdEhpeVpSO0VzSDd4WlU7Ozs7SUFFRSxtQko5VEU7RWxIK2xhZDtFc0g5eFpZOzs7O0lBRUUsbUJsQ3JSc0I7RXBGdWphcEM7QUFDRjtBa0JoaWFJO0VvR2tRWTs7OztJQUVFLG1CSjFVRjtFbEg2bWFkO0FBQ0Y7QWtCcmphSTtFb0dxUlk7Ozs7SUFFRSxrQmxDcFNvQjtFcEZ5a2FwQztBQUNGO0FrQjdqYUk7RW9HNlJROztJQUNFLFlKdlZFO0VsSDJuYWQ7RXNIanlaWTs7SUFDRSxZbEM3U3NCO0VwRmlsYXBDO0VzSGh5Wlk7O0lBQ0UsV2xDcFRzQjtFcEZ1bGFwQztBQUNGO0FrQjNrYUk7RW9HZ1RJOztJQUNFLGNBQUE7RXRIK3haUjtFc0gzeFpVOzs7O0lBRUUsa0JsQ3hPd0I7RXBGdWdhcEM7RXNIM3haVTs7SUFDRSxXbEM3T3dCO0VwRjJnYXBDO0FBQ0Y7QWtCM2xhSTtFb0dxVUU7SUFDRTtNQUFPLFVBQUE7SXRIMHhaWDtJc0h6eFpJO01BQU8sVUFBQTtJdEg0eFpYO0VBQ0Y7RXNIL3haSTtJQUNFO01BQU8sVUFBQTtJdEgweFpYO0lzSHp4Wkk7TUFBTyxVQUFBO0l0SDR4Wlg7RUFDRjtBQUNGO0FrQnJtYUk7RW9Hc0xJOztJQUNFLGNBQUE7RXRIbTdaUjtFc0gvNlpVOzs7O0lBRUUsa0JKdFBFO0VsSHlxYWQ7RXNIaDdaWTs7OztJQUVFLGtCbEM3TXNCO0VwRmlvYXBDO0FBQ0Y7QWtCMW1hSTtFb0cwTFk7Ozs7SUFFRSxrQkpsUUY7RWxIdXJhZDtBQUNGO0FrQi9uYUk7RW9HNk1ZOzs7O0lBRUUsaUJsQzVOb0I7RXBGbXBhcEM7QUFDRjtBa0J2b2FJO0VvR3FOUTs7SUFDRSxXSi9RRTtFbEhxc2FkO0VzSG43Wlk7O0lBQ0UsV2xDck9zQjtFcEYycGFwQztFc0hsN1pZOztJQUNFLFVsQzVPc0I7RXBGaXFhcEM7QUFDRjtBa0JycGFJO0VvR3dPSTs7SUFDRSxlQUFBO0V0SGk3WlI7RXNINzZaVTs7OztJQUVFLG1CbENoS3dCO0VwRmlsYXBDO0VzSDc2WlU7O0lBQ0UsWWxDckt3QjtFcEZxbGFwQztBQUNGO0FrQnJxYUk7RW9HOFBJOztJQUNFLGVBQUE7RXRIMjZaUjtFc0h2NlpVOzs7O0lBRUUsbUJKOVRFO0VsSHl1YWQ7RXNIeDZaWTs7OztJQUVFLG1CbENyUnNCO0VwRmlzYXBDO0FBQ0Y7QWtCMXFhSTtFb0drUVk7Ozs7SUFFRSxtQkoxVUY7RWxIdXZhZDtBQUNGO0FrQi9yYUk7RW9HcVJZOzs7O0lBRUUsa0JsQ3BTb0I7RXBGbXRhcEM7QUFDRjtBa0J2c2FJO0VvRzZSUTs7SUFDRSxZSnZWRTtFbEhxd2FkO0VzSDM2Wlk7O0lBQ0UsWWxDN1NzQjtFcEYydGFwQztFc0gxNlpZOztJQUNFLFdsQ3BUc0I7RXBGaXVhcEM7QUFDRjtBa0JydGFJO0VvR2dUSTs7SUFDRSxjQUFBO0V0SHk2WlI7RXNIcjZaVTs7OztJQUVFLGtCbEN4T3dCO0VwRmlwYXBDO0VzSHI2WlU7O0lBQ0UsV2xDN093QjtFcEZxcGFwQztBQUNGO0FrQnJ1YUk7RW9HcVVFO0lBQ0U7TUFBTyxVQUFBO0l0SG82Wlg7SXNIbjZaSTtNQUFPLFVBQUE7SXRIczZaWDtFQUNGO0VzSHo2Wkk7SUFDRTtNQUFPLFVBQUE7SXRIbzZaWDtJc0huNlpJO01BQU8sVUFBQTtJdEhzNlpYO0VBQ0Y7QUFDRjtBc0gzNFpFO0VBQ0UsZUFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsT0FBQTtFQUNBLGFqSGlRZ0M7RWlIaFFoQyxZbEMzUWtDO0FwRndwYXRDO0FzSDE0WkU7RUFDRSxtQmxDL1FrQztBcEYycGF0QztBc0hyNFpBOzs7OztFQUtFLDBFQUFBO0F0SHc0WkY7QXNIdDRaQTtFQUNFLHVCQUFBO0F0SHk0WkY7QXNIdjRaQTtFQUNFLGdEQUFBO0F0SDA0WkY7QWtCN3ZhSTtFb0cwWEY7SUFDRSxlQUFBO0lBQ0EsYWpIaU9nQztJaUhoT2hDLFdBQUE7SUFDQSxrQkFBQTtJQUVFLHNCbEN0YmdDO0VwRjR6YXBDO0VzSGg0WkU7SUFJSSxXQUFBO0V0SCszWk47RXNIMzNaRTtJQUNFLGtCQUFBO0lBQ0EsTUFBQTtJQUNBLFNBQUE7SUFDQSxvQkFBQTtFdEg2M1pKOztFc0h6M1pBO0lBQ0UsZ0JsQzlja0M7RXBGMDBhcEM7O0VzSHozWkE7SUFDRSxlQUFBO0lBQ0EsYUFBQTtJQUNBLFlKbmVZO0lJb2VaLDBCQUFBO0V0SDQzWkY7O0VzSHozWkE7SUFDRSxhQUFBO0V0SDQzWkY7O0VzSHozWkE7SUFDRSxlQUFBO0lBQ0EsWUFBQTtFdEg0M1pGO0FBQ0Y7QXVINTJhQTtFQUNFLGlDQUFBO0F2SDgyYUY7QXdIaDNhQTs7Ozs7O0VBTUUsV0FBQTtBeEhtM2FGO0E0RHAzYUU7RUFDRSxvQ0FBQTtBNUR1M2FKO0FTNzJhRTs7O0VtRExJLG9DQUFBO0E1RHczYU47QTREOTNhRTtFQUNFLG9DQUFBO0E1RGk0YUo7QVN2M2FFOzs7RW1ETEksb0NBQUE7QTVEazRhTjtBNER4NGFFO0VBQ0Usb0NBQUE7QTVEMjRhSjtBU2o0YUU7OztFbURMSSxvQ0FBQTtBNUQ0NGFOO0E0RGw1YUU7RUFDRSxvQ0FBQTtBNURxNWFKO0FTMzRhRTs7O0VtRExJLG9DQUFBO0E1RHM1YU47QTRENTVhRTtFQUNFLG9DQUFBO0E1RCs1YUo7QVNyNWFFOzs7RW1ETEksb0NBQUE7QTVEZzZhTjtBNER0NmFFO0VBQ0Usb0NBQUE7QTVEeTZhSjtBUy81YUU7OztFbURMSSxvQ0FBQTtBNUQwNmFOO0E0RGg3YUU7RUFDRSxvQ0FBQTtBNURtN2FKO0FTejZhRTs7O0VtRExJLG9DQUFBO0E1RG83YU47QTREMTdhRTtFQUNFLG9DQUFBO0E1RDY3YUo7QVNuN2FFOzs7RW1ETEksb0NBQUE7QTVEODdhTjtBNERwOGFFO0VBQ0Usb0NBQUE7QTVEdThhSjtBUzc3YUU7OztFbURMSSxvQ0FBQTtBNUR3OGFOO0E0RDk4YUU7RUFDRSxvQ0FBQTtBNURpOWFKO0FTdjhhRTs7O0VtRExJLG9DQUFBO0E1RGs5YU47QTREeDlhRTtFQUNFLG9DQUFBO0E1RDI5YUo7QVNqOWFFOzs7RW1ETEksb0NBQUE7QTVENDlhTjtBNERsK2FFO0VBQ0UsaUNBQUE7QTVEcSthSjtBUzM5YUU7OztFbURMSSxvQ0FBQTtBNURzK2FOO0E0RDUrYUU7RUFDRSxvQ0FBQTtBNUQrK2FKO0FTcithRTs7O0VtRExJLG9DQUFBO0E1RGcvYU47QTREdC9hRTtFQUNFLG9DQUFBO0E1RHkvYUo7QVMvK2FFOzs7RW1ETEksb0NBQUE7QTVEMC9hTjtBNERoZ2JFO0VBQ0Usb0NBQUE7QTVEbWdiSjtBU3ovYUU7OztFbURMSSxvQ0FBQTtBNURvZ2JOO0E0RDFnYkU7RUFDRSxvQ0FBQTtBNUQ2Z2JKO0FTbmdiRTs7O0VtRExJLG9DQUFBO0E1RDhnYk47QTREcGhiRTtFQUNFLG9DQUFBO0E1RHVoYko7QVM3Z2JFOzs7RW1ETEksb0NBQUE7QTVEd2hiTjtBNEQ5aGJFO0VBQ0Usb0NBQUE7QTVEaWliSjtBU3ZoYkU7OztFbURMSSxvQ0FBQTtBNURraWJOO0E0RHhpYkU7RUFDRSxvQ0FBQTtBNUQyaWJKO0FTamliRTs7O0VtRExJLG9DQUFBO0E1RDRpYk47QTREbGpiRTtFQUNFLG9DQUFBO0E1RHFqYko7QVMzaWJFOzs7RW1ETEksb0NBQUE7QTVEc2piTjtBNEQ1amJFO0VBQ0Usb0NBQUE7QTVEK2piSjtBU3JqYkU7OztFbURMSSxvQ0FBQTtBNURna2JOO0E0RHRrYkU7RUFDRSxvQ0FBQTtBNUR5a2JKO0FTL2piRTs7O0VtRExJLG9DQUFBO0E1RDBrYk47QTREaGxiRTtFQUNFLG9DQUFBO0E1RG1sYko7QVN6a2JFOzs7RW1ETEksb0NBQUE7QTVEb2xiTjtBNEQxbGJFO0VBQ0Usb0NBQUE7QTVENmxiSjtBU25sYkU7OztFbURMSSxvQ0FBQTtBNUQ4bGJOO0E0RHBtYkU7RUFDRSxvQ0FBQTtBNUR1bWJKO0FTN2xiRTs7O0VtRExJLG9DQUFBO0E1RHdtYk47QTREOW1iRTtFQUNFLG9DQUFBO0E1RGluYko7QVN2bWJFOzs7RW1ETEksb0NBQUE7QTVEa25iTjtBNER4bmJFO0VBQ0Usb0NBQUE7QTVEMm5iSjtBU2puYkU7OztFbURMSSxvQ0FBQTtBNUQ0bmJOO0E0RGxvYkU7RUFDRSxvQ0FBQTtBNURxb2JKO0FTM25iRTs7O0VtRExJLG9DQUFBO0E1RHNvYk47QTRENW9iRTtFQUNFLG9DQUFBO0E1RCtvYko7QVNyb2JFOzs7RW1ETEksb0NBQUE7QTVEZ3BiTjtBNER0cGJFO0VBQ0Usb0NBQUE7QTVEeXBiSjtBUy9vYkU7OztFbURMSSxvQ0FBQTtBNUQwcGJOO0E0RGhxYkU7RUFDRSxvQ0FBQTtBNURtcWJKO0FTenBiRTs7O0VtRExJLG9DQUFBO0E1RG9xYk47QTREMXFiRTtFQUNFLG9DQUFBO0E1RDZxYko7QVNucWJFOzs7RW1ETEksb0NBQUE7QTVEOHFiTjtBNERwcmJFO0VBQ0Usb0NBQUE7QTVEdXJiSjtBUzdxYkU7OztFbURMSSxvQ0FBQTtBNUR3cmJOO0E0RDlyYkU7RUFDRSxvQ0FBQTtBNURpc2JKO0FTdnJiRTs7O0VtRExJLG9DQUFBO0E1RGtzYk47QTREeHNiRTtFQUNFLG9DQUFBO0E1RDJzYko7QVNqc2JFOzs7RW1ETEksb0NBQUE7QTVENHNiTjtBNERsdGJFO0VBQ0UsaUNBQUE7QTVEcXRiSjtBUzNzYkU7OztFbURMSSxvQ0FBQTtBNURzdGJOO0E0RDV0YkU7RUFDRSxvQ0FBQTtBNUQrdGJKO0FTcnRiRTs7O0VtRExJLG9DQUFBO0E1RGd1Yk47QTREdHViRTtFQUNFLG9DQUFBO0E1RHl1Yko7QVMvdGJFOzs7RW1ETEksb0NBQUE7QTVEMHViTjtBNERodmJFO0VBQ0Usb0NBQUE7QTVEbXZiSjtBU3p1YkU7OztFbURMSSxvQ0FBQTtBNURvdmJOO0E0RDF2YkU7RUFDRSxvQ0FBQTtBNUQ2dmJKO0FTbnZiRTs7O0VtRExJLG9DQUFBO0E1RDh2Yk47QTREcHdiRTtFQUNFLG9DQUFBO0E1RHV3Yko7QVM3dmJFOzs7RW1ETEksb0NBQUE7QTVEd3diTjtBNEQ5d2JFO0VBQ0Usb0NBQUE7QTVEaXhiSjtBU3Z3YkU7OztFbURMSSxvQ0FBQTtBNURreGJOO0E0RHh4YkU7RUFDRSxvQ0FBQTtBNUQyeGJKO0FTanhiRTs7O0VtRExJLG9DQUFBO0E1RDR4Yk47QTREbHliRTtFQUNFLG9DQUFBO0E1RHF5Yko7QVMzeGJFOzs7RW1ETEksb0NBQUE7QTVEc3liTjtBNEQ1eWJFO0VBQ0Usb0NBQUE7QTVEK3liSjtBU3J5YkU7OztFbURMSSxvQ0FBQTtBNURnemJOO0E0RHR6YkU7RUFDRSxvQ0FBQTtBNUR5emJKO0FTL3liRTs7O0VtRExJLG9DQUFBO0E1RDB6Yk47QTREaDBiRTtFQUNFLG9DQUFBO0E1RG0wYko7QVN6emJFOzs7RW1ETEksb0NBQUE7QTVEbzBiTjtBNEQxMGJFO0VBQ0Usb0NBQUE7QTVENjBiSjtBU24wYkU7OztFbURMSSxvQ0FBQTtBNUQ4MGJOO0F3SHAwYkE7RUFDRSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSx1QkFBQTtFQUNBLGFBQUE7RUFDQSxjQUFBO0F4SHUwYkY7QXlINTFiTTtFQUF5QixvQkFBQTtBekhnMmIvQjtBeUgvMWJNO0VBQXlCLHdCQUFBO0F6SG0yYi9CO0F5SGwyYk07RUFBeUIsMEJBQUE7QXpIczJiL0I7QXlIcjJiTTtFQUF5QiwyQkFBQTtBekh5MmIvQjtBeUh4MmJNO0VBQXlCLHlCQUFBO0F6SDQyYi9CO0F5SDEyYk07RUFBeUIseUJBQUE7QXpIODJiL0I7QXlINzJiTTtFQUF5Qiw2QkFBQTtBekhpM2IvQjtBeUhoM2JNO0VBQXlCLCtCQUFBO0F6SG8zYi9CO0F5SG4zYk07RUFBeUIsZ0NBQUE7QXpIdTNiL0I7QXlIdDNiTTtFQUF5Qiw4QkFBQTtBekgwM2IvQjtBeUg5M2JNO0VBQXlCLHlCQUFBO0F6SGs0Yi9CO0F5SGo0Yk07RUFBeUIsNkJBQUE7QXpIcTRiL0I7QXlIcDRiTTtFQUF5QiwrQkFBQTtBekh3NGIvQjtBeUh2NGJNO0VBQXlCLGdDQUFBO0F6SDI0Yi9CO0F5SDE0Yk07RUFBeUIsOEJBQUE7QXpIODRiL0I7QWtCcDFiSTtFd0dqRUE7SUFBZ0Msd0JBQUE7RTFIMDVibEM7QUFDRjtBa0IxMWJJO0V3R2pFQTtJQUFnQyx3QkFBQTtFMUgrNWJsQztBQUNGO0FrQi8xYkk7RXdHakVBO0lBQWdDLHdCQUFBO0UxSG82YmxDO0FBQ0Y7QWtCcDJiSTtFd0dqRUE7SUFBZ0Msd0JBQUE7RTFIeTZibEM7QUFDRjtBMEgxNmJJO0VBQWdD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QUFBO0VBQ0Esc0JBQUE7RUFDQSwyQkFBQTtFQUNBLGVBQUE7QS9Jb2xnQkY7QStJamxnQkU7RUFDQSxxQkFBQTtFQUNBLGFBQUE7RUFDQSxjQUFBO0EvSW1sZ0JGO0ErSS9rZ0JBO0VBQ0Usb0JBQUE7RUFDQSxZQUFBO0EvSWtsZ0JGO0ErSS9rZ0JBO0VBQ0UsYUFBQTtBL0lrbGdCRjtBK0kva2dCQTtFQUNFLGFBQUE7QS9Ja2xnQkY7QStJL2tnQkE7RUFDRSxhQUFBO0EvSWtsZ0JGO0ErSS9rZ0JBO0VBQ0UscUJBQUE7QS9Ja2xnQkY7QStJL2tnQkE7RUFDRSx5QjdCNVJpQjtFNkI2UmpCLHFCQUFBO0VBQ0EseUJBQUE7QS9Ja2xnQkY7QStJL2tnQkE7RUFDRSx5QjdCN1FhO0U2QjhRYixjN0JoUlk7QWxIazJnQmQ7QStJL2tnQkE7RUFDRSxzQkFBQTtFQUNBLFlBQUE7QS9Ja2xnQkY7QStJL2tnQkE7RUFDRSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtBL0lrbGdCRjtBK0kva2dCQTtFQUNFLFNBQUE7QS9Ja2xnQkY7QStJL2tnQkE7RUFDRSx5QjdCbFNhO0FsSG8zZ0JmO0ErSS9rZ0JBO0VBQ0UseUI3QjFTaUI7QWxINDNnQm5CO0ErSS9rZ0JBO0VBQ0UseUI3QjVTWTtFNkI2U1osYzdCNVNZO0FsSDgzZ0JkO0ErSS9rZ0JBO0VBQ0UseUI3QnJVaUI7QWxIdTVnQm5CO0ErSS9rZ0JBO0VBQ0UseUI3QjFVbUI7RTZCMlVuQixZQUFBO0EvSWtsZ0JGO0ErSS9rZ0JBO0VBQ0UseUI3QjVUaUI7RTZCNlRqQixjN0IzVFk7QWxINjRnQmQ7QStJL2tnQkE7RUFDRSx5QjdCbFVXO0FsSG81Z0JiO0ErSS9rZ0JBO0VBQ0UseUI3QnJWZ0I7RTZCc1ZoQixjN0I1Vlk7QWxIODZnQmQ7QStJL2tnQkE7RUFDRSx5QjdCelZzQjtBbEgyNmdCeEI7QStJL2tnQkE7RUFDRSx5QjdCaldtQjtBbEhtN2dCckI7QStJL2tnQkE7RUFDRSx5QjdCeFdZO0U2QnlXWixjN0I5Vlk7QWxIZzdnQmQ7QStJOWtnQkE7RUFDRSx5QjdCM1dtQjtBbEg0N2dCckI7QStJOWtnQkE7RUFDRSx5QjdCN1dpQjtFNkI4V2pCLFlBQUE7QS9JaWxnQkY7QStJOWtnQkE7RUFDRSx5QjdCdlhZO0U2QndYWixjN0IvV1U7RTZCZ1hWLDhCQUFBO0EvSWlsZ0JGO0ErSTlrZ0JBO0VBQ0UseUI3QnBYVTtFNkJxWFYsYzdCOVhZO0FsSCs4Z0JkO0ErSTlrZ0JBO0VBQ0UseUI3QjdYaUI7RTZCOFhqQixjN0J4WFk7RTZCeVhaLFlBQUE7QS9JaWxnQkY7QStJOWtnQkE7RUFDRSx5QjdCL1dZO0U2QmdYWixjN0JsWGdCO0FsSG04Z0JsQjtBK0k3a2dCQTtFQUNFLCtCQUFBO0VBQ0EseUI3Qi9ZWTtFNkJnWlosYzdCcllZO0U2QnNZWixZQUFBO0EvSWdsZ0JGO0ErSTdrZ0JBO0VBQ0UscUJBQUE7QS9JZ2xnQkY7QStJN2tnQkE7RUFDRSxVQUFBO0VBQ0EseUI3QjFaWTtBbEgwK2dCZDtBK0k3a2dCQTtFQUNFLG1CQUFBO0VBQ0EscUJBQUE7RUFDQSxnQkFBQTtFQUNBLGM3QnJhbUI7QWxIcS9nQnJCO0ErSTVrZ0JBO0VBQ0UscUJBQUE7RUFDQSxnQkFBQTtBL0kra2dCRjtBK0k1a2dCQTtFQUNFLHlCQUFBO0EvSStrZ0JGO0ErSTNrZ0JBO0VBQ0UsYzdCM2FpQjtBbEh5L2dCbkI7QStJM2tnQkE7RUFDRSxxQkFBQTtFQUNBLFlBQUE7QS9JOGtnQkY7QStJM2tnQkE7RUFDRSwwQkFBQTtFQUNBLGVBQUE7QS9JOGtnQkY7QStJM2tnQkE7RUFDRSxjN0JyYlU7QWxIbWdoQlo7QStJM2tnQkE7RUFDRSxnQjdCMWJnQjtBbEh3Z2hCbEI7QStJM2tnQkE7RUFDRSw4QkFBQTtBL0k4a2dCRjtBK0kza2dCQTtFQUNFLFdBQUE7QS9JOGtnQkY7QStJM2tnQkE7RUFDRSxxQkFBQTtFQUNBLGtCQUFBO0VBQ0Esc0JBQUE7RUFDQSxhQUFBO0VBQ0EsWUFBQTtBL0k4a2dCRjtBK0kza2dCQTtFQUNFLHdDQUFBO0EvSThrZ0JGO0ErSTNrZ0JBO0VBQ0Usa0JBQUE7RUFDQSxnQkFBQTtFQUNBLCtCQUFBO0EvSThrZ0JGO0ErSTVrZ0JFO0VBQ0UsV0FBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxvQkFBQTtFQUNBLHVFQUFBO0VBQ0EsNEJBQUE7RUFDQSx3QkFBQTtFQUNBLHdCQUFBO0VBQ0EsVUFBQTtFQUNBLHdDQUFBO0EvSThrZ0JKO0ErSTNrZ0JFO0VBQ0Usc0JBQUE7RUFDQSxZQUFBO0VBQ0EsY0FBQTtBL0k2a2dCSjtBK0l6a2dCQSwrREFBQTtBQUdBLDhEQUFBO0FBQ0E7RUFDRSx3QkFBQTtFQUNBLFlBQUE7RUFDQSxxQkFBQTtFQUNBLHFCQUFBO0VBQ0EsVUFBQTtFQUNBLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0Esc0JBQUE7RUFDQSxxQkFBQTtFQUNBLHlCQUFBO0EvSTBrZ0JGO0ErSXRrZ0JBO0VBQ0UseUI3QjlnQm1CO0U2QitnQm5CLGM3QjNnQlk7QWxIb2xoQmQ7QStJdGtnQkE7RUFDRSx5QjdCbmdCZ0I7RTZCb2dCaEIsYzdCbmdCWTtBbEg0a2hCZDtBK0l0a2dCQTtFQUNFLHlCN0JoaEJpQjtFNkJpaEJqQixjN0IxZ0JZO0FsSG1saEJkO0ErSXRrZ0JBO0VBQ0UseUI3QjNnQmE7RTZCNGdCYixjN0IxaEJZO0FsSG1taEJkO0ErSXRrZ0JBLDhEQUFBO0FBRUEsOERBQUE7QUFDQTtFQUNFLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQkFBQTtFQUNBLGM3QjVnQlk7QWxIb2xoQmQ7QStJcmtnQkU7RUFDRSxZQUFBO0VBQ0EsV0FBQTtFQUNBLG1CQUFBO0VBQ0EsWUFBQTtBL0l1a2dCSjtBK0lwa2dCRTtFQUNFLGlCQUFBO0EvSXNrZ0JKO0ErSWxrZ0JBLDJDQUFBO0FBQ0E7RUFDRSxjQUFBO0VBQ0Esa0JBQUE7RUFDQSxxQkFBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0VBQ0EscUJBQUE7QS9JcWtnQkY7QStJbGtnQkEsK0JBQUE7QUFDQTtFQUNFLFVBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtBL0lxa2dCRjtBK0lsa2dCQSxlQUFBO0FBQ0E7RUFDRSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxNQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EseUI3QjFrQnVCO0U2QjRrQnZCLGdCQUFBO0VBQ0EsbUJBQUE7QS9JcWtnQkY7QStJbGtnQkE7RUFDRSx5QjdCL2tCaUI7QWxIb3BoQm5CO0ErSWxrZ0JBO0VBQ0Usa0JBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtFQUNBLGNBQUE7RUFDQSxXQUFBO0VBQ0EsYUFBQTtFQUNBLHlCN0I3bEJZO0U2QitsQlosZ0JBQUE7RUFDQSxrQkFBQTtBL0lxa2dCRjtBK0lsa2dCQTtFQUNFLHlCN0J4bUJtQjtBbEg2cWhCckI7QStJbGtnQkE7RUFDRSxhQUFBO0EvSXFrZ0JGO0ErSWxrZ0JBO0VBR0UsK0JBQUE7QS9JcWtnQkY7QStJbGtnQkEsOERBQUE7QUFFQSw4REFBQTtBQUNBO0VBQ0Usc0JBQUE7QS9Jb2tnQkY7QStJamtnQkE7RUFDRSxtQkFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxxQkFBQTtFQUNBLHNCQUFBO0VBQ0EsZ0JBQUE7QS9Jb2tnQkY7QStJaGtnQkE7RUFDRSxlQUFBO0VBQ0EsY0FBQTtFQUNBLHNCQUFBO0EvSW1rZ0JGO0ErSWhrZ0JBO0VBQ0UsaUJBQUE7RUFDQSxhQUFBO0VBQ0EsbUJBQUE7QS9JbWtnQkY7QStJaGtnQkE7RUFDRSxxQkFBQTtFQUNBLGVBQUE7QS9JbWtnQkY7QStJaGtnQkE7RUFDRSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxlQUFBO0EvSW1rZ0JGO0ErSWhrZ0JBO0VBQ0UscUJBQUE7RUFDQSxlQUFBO0VBQ0EsY0FBQTtFQUNBLHNCQUFBO0VBQ0EseUI3QjNwQm1CO0U2QjRwQm5CLGtCQUFBO0VBQ0EsY0FBQTtBL0lta2dCRjtBK0loa2dCQTtFQUNFLG1CQUFBO0EvSW1rZ0JGO0ErSWhrZ0JBO0VBQ0UsbUI3QnJxQm1CO0FsSHd1aEJyQjtBK0loa2dCQTtFQUNFLHlCN0J4cUJpQjtBbEgydWhCbkI7QStJaGtnQkE7RUFDRSx5QjdCcHJCbUI7QWxIdXZoQnJCO0ErSWhrZ0JBO0VBQ0UsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsYUFBQTtBL0lta2dCRjtBK0loa2dCQTtFQUNFLGNBQUE7QS9JbWtnQkY7QStJaGtnQkE7RUFDRSxrQkFBQTtFQUNBLGNBQUE7RUFDQSxlQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQjdCcHNCWTtBbEh1d2hCZDtBK0loa2dCQSw4REFBQTtBQUVBLDhEQUFBO0FBQ0E7RUFDRSxrQkFBQTtFQUNBLHlCN0J6c0JtQjtFNkIwc0JuQixZQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTtFQUNBLG9CQUFBO0EvSWtrZ0JGO0ErSTlqZ0JBO0VBQ0UseUI3Qm50QmlCO0FsSG94aEJuQjtBK0k5amdCQTtFQUNFLHlCN0IvdEJtQjtFNkJndUJuQixjN0I1dEJZO0FsSDZ4aEJkO0ErSTlqZ0JBLDhEQUFBO0FBR0EsOERBQUE7QUFFQTtFQUNFLFlBQUE7RUFDQSxhQUFBO0VBQ0EsZ0JBQUE7RUFDQSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSx5QkFBQTtFQUNBLDhCQUFBO0VBQ0EsVUFBQTtFQUNBLHNCQUFBO0VBQ0Esd0JBQUE7RUFDQSxlQUFBO0EvSThqZ0JGO0ErSXpqZ0JBO0VBQ0UseUI3Qmp2QmlCO0U2Qmt2QmpCLFVBQUE7RUFDQSxZQUFBO0VBQ0EsNkJBQUE7QS9JNGpnQkY7QStJempnQkE7RUFDRSxjQUFBO0VBQ0EsNkNBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLHNCQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7QS9JNGpnQkY7QStJeGpnQkE7RUFDRSxnQ0FBQTtFQUNBLGlDQUFBO0EvSTJqZ0JGO0ErSXhqZ0JBO0VBQ0UsbUNBQUE7RUFDQSxvQ0FBQTtBL0kyamdCRjtBK0l4amdCQTtFQUdFLGdCQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsVUFBQTtBL0l5amdCRjtBK0l0amdCQTtFQUdFLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjN0JyeEJZO0U2QnN4QlosVUFBQTtBL0l1amdCRjtBK0lwamdCQTtFQUNFLG9CQUFBO0EvSXVqZ0JGO0ErSXBqZ0JBO0VBQ0Usb0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTtFQUNBLGFBQUE7RUFDQSxpQkFBQTtFQUNBLHVCQUFBO0EvSXVqZ0JGO0ErSXBqZ0JBO0VBQ0UsK0JBQUE7QS9JdWpnQkY7QStJcGpnQkE7RUFDRSw4QkFBQTtBL0l1amdCRjtBK0luamdCQSw4REFBQTtBQUdBLDhEQUFBO0FBQ0E7RUFDRSwwQkFBQTtFQUNBLHVCQUFBO0VBQ0EseUI3QmwwQmdCO0U2Qm0wQmhCLFdBQUE7RUFDQSxjQUFBO0EvSW9qZ0JGO0ErSWpqZ0JBO0VBQ0Usa0JBQUE7RUFDQSxtQkFBQTtFQUNBLHNCQUFBO0EvSW9qZ0JGO0ErSWpqZ0JBO0VBQ0UsY0FBQTtFQUNBLHdCQUFBO0VBQ0EsY0FBQTtBL0lvamdCRjtBK0lqamdCQTtFQUNFLGNBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0EsaUJBQUE7QS9Jb2pnQkY7QStJaGpnQkE7RUFDRSxjN0JudEJ3QjtBbEhzd2hCMUI7QStJaGpnQkE7RUFDRSwwQkFBQTtFQUNBLGVBQUE7QS9JbWpnQkY7QStJaGpnQkE7RUFDRSxtQkFBQTtFQUNBLGM3QmgyQnNCO0U2QmkyQnRCLHFCQUFBO0EvSW1qZ0JGO0ErSWhqZ0JBO0VBQ0UsYUFBQTtBL0ltamdCRjtBK0loamdCQTtFQUNFLFdBQUE7RUFDQSxrQkFBQTtBL0ltamdCRjtBK0loamdCQTtFQUNFLGdCQUFBO0VBQ0Esb0JBQUE7RUFDQSxVQUFBO0VBQ0EscUJBQUE7QS9JbWpnQkY7QStJaGpnQkE7RUFDRSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxxQkFBQTtBL0ltamdCRjtBK0loamdCQTtFQUNFLFNBQUE7RUFDQSw2QkFBQTtFQUNBLGVBQUE7QS9JbWpnQkY7QStJaGpnQkE7RUFDRSxhQUFBO0EvSW1qZ0JGO0ErSWhqZ0JBO0VBQ0UsZUFBQTtFQUNBLDZCQUFBO0VBQ0EsNkZBQUE7QS9JbWpnQkY7QStJaGpnQkE7RUFDRSxhQUFBO0EvSW1qZ0JGO0ErSWhqZ0JBO0VBQ0UscUJBQUE7QS9JbWpnQkY7QStJaGpnQkE7RUFDRSxxQkFBQTtBL0ltamdCRjtBK0loamdCQTtFQUNFLGFBQUE7QS9JbWpnQkY7QStJaGpnQkEsOERBQUE7QUFFQSw4REFBQTtBQUNBO0VBQ0UsV0FBQTtFQUNBLHVCQUFBO0VBQ0EseUI3Qnp4QnNCO0U2QjB4QnRCLHlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtBL0lramdCRjtBK0kvaWdCQTtFQUNFLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0EvSWtqZ0JGO0ErSS9pZ0JBO0VBQ0UsMkJBQUE7RUFDQSxjQUFBO0VBQ0EsZUFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQ0FBQTtFQUNBLHdCQUFBO0VBQ0EsY0FBQTtBL0lramdCRjtBK0k5aWdCQTtFQUNFLGdCQUFBO0VBQ0EsMkJBQUE7RUFDQSxTQUFBO0EvSWlqZ0JGO0ErSTlpZ0JBO0VBQ0UsWUFBQTtFQUNBLFdBQUE7RUFDQSxxQkFBQTtFQUNBLHNCQUFBO0EvSWlqZ0JGO0ErSTlpZ0JBO0VBQ0UsWUFBQTtFQUNBLFdBQUE7RUFDQSxxQkFBQTtFQUNBLHNCQUFBO0VBQ0EseUI3Qmo5Qm1CO0U2Qms5Qm5CLGdCQUFBO0EvSWlqZ0JGO0ErSTlpZ0JBO0VBQ0UsZUFBQTtFQUNBLHFCQUFBO0VBQ0Esd0JBQUE7RUFDQSxzQkFBQTtBL0lpamdCRjtBK0k5aWdCQTtFQUNFLG1CQUFBO0VBQ0EscUJBQUE7RUFDQSxhQUFBO0EvSWlqZ0JGO0ErSTdpZ0JBO0VBQ0UsbUJBQUE7RUFDQSxvQkFBQTtFQUNBLGFBQUE7QS9JZ2pnQkY7QStJNWlnQkE7RUFDRSxrQkFBQTtBL0kraWdCRjtBK0k1aWdCQTtFQUNFLHlCN0JqL0JnQjtFNkJrL0JoQixlQUFBO0VBQ0Esc0JBQUE7QS9JK2lnQkY7QStJNWlnQkE7RUFDRSx5QjdCdjJCc0I7QWxIczVoQnhCO0ErSTVpZ0JBO0VBQ0UseUI3QngyQmtCO0U2QnkyQmxCLHVCQUFBO0EvSStpZ0JGO0ErSTNpZ0JBO0VBQ0UsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLFdBQUE7RUFDQSxjQUFBO0VBQ0EsbUI3QnRnQ1k7QWxIb2ppQmQ7QStJM2lnQkE7RUFDRSxxQkFBQTtFQUNBLGM3Qm4vQlk7RTZCby9CWixhQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLHNCQUFBO0VBQ0EsZUFBQTtFQUNBLG1CN0JqaENZO0U2QmtoQ1osV0FBQTtFQUNBLGdEQUFBO0VBQ0EsdUJBQUE7RUFDQSxjQUFBO0EvSThpZ0JGO0ErSTNpZ0JBO0VBQ0UsbUJBQUE7RUFDQSx5QjdCeGhDdUI7QWxIc2tpQnpCO0ErSXZpZ0JBLDhEQUFBO0FBRUEsOERBQUE7QUFDQTtFQUNFLHFCQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7RUFDQSx5QjdCdGlDbUI7RTZCdWlDbkIsZUFBQTtBL0l5aWdCRjtBK0l0aWdCQTtFQUNFLGdCQUFBO0EvSXlpZ0JGO0ErSXRpZ0JBLDhEQUFBO0FBRUEsK0RBQUE7QUFFQTtFQUNFLHVCQUFBO0VBQ0Esa0NBQUE7RUFDQSxxREFBQTtBL0l1aWdCRjtBK0lwaWdCQSwrREFBQTtBQUVBLDhEQUFBO0FBRUE7RUFDRSx5QkFBQTtFQUNBLGdCQUFBO0VBQ0EsTUFBQTtFQUNBLFFBQUE7RUFDQSxPQUFBO0VBQ0EsK0JBQUE7QS9JcWlnQkY7QStJbGlnQkE7RUFDRSxrQkFBQTtFQUNBLGlCQUFBO0EvSXFpZ0JGO0ErSWxpZ0JBO0VBQ0UseUdBQUE7RUFDQSxnQkFBQTtFQUNBLFNBQUE7RUFDQSxRQUFBO0VBQ0EsT0FBQTtFQUNBLHFCQUFBO0VBQ0EsV0FBQTtBL0lxaWdCRjtBK0lsaWdCQTtFQUNFLGlCQUFBO0EvSXFpZ0JGO0ErSWxpZ0JBO0VBQ0UsaUJBQUE7QS9JcWlnQkY7QStJbGlnQkE7RUFDRSw4QkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtBL0lxaWdCRjtBK0lsaWdCQTtFQUNFLFVBQUE7QS9JcWlnQkY7QStJbGlnQkE7RUFDRSxjQUFBO0VBQ0Esc0JBQUE7RUFDQSxnQ0FBQTtBL0lxaWdCRjtBK0lsaWdCQTtFQUNFLGNBQUE7RUFDQSxpQkFBQTtFQUNBLE9BQUE7RUFDQSxjN0IzbENZO0FsSGdvaUJkO0ErSWppZ0JBO0VBQ0UsY0FBQTtFSDNoQ1ksbUJBQUE7RUc2aENaLGNBQUE7RUFDQSxrQkFBQTtFQUNBLGM3QnBtQ1k7QWxId29pQmQ7QStJaGlnQkE7RUFDRSxjQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTtFQUNBLGM3QjVtQ1k7QWxIK29pQmQ7QStJL2hnQkE7RUFDRSxtQkFBQTtFQUNBLGdCQUFBO0VBQ0EsYzdCbm5DWTtBbEhxcGlCZDtBK0k5aGdCQTtFQUNFLHFCQUFBO0VBQ0EsVUFBQTtFQUNBLGM3QjNvQ3NCO0FsSDRxaUJ4QjtBK0k3aGdCQTtFQUNFLHFCQUFBO0VBQ0EsYzdCaG9DWTtBbEhncWlCZDtBK0k1aGdCQTtFQUNFLHFCQUFBO0VBQ0EsY0FBQTtBL0kraGdCRjtBK0k1aGdCQTtFQUNFLFlBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtBL0kraGdCRjtBK0k1aGdCQTtFQUNFLGFBQUE7RUFDQSx5QkFBQTtFQUNBLHFCQUFBO0VBQ0EsWUFBQTtBL0kraGdCRjtBK0k1aGdCQTtFQUNFLGFBQUE7RUFDQSx5QkFBQTtBL0kraGdCRjtBK0k1aGdCQTtFQUNFLFdBQUE7RUFDQSxnQ0FBQTtFQUNBLGdCQUFBO0EvSStoZ0JGO0ErSTNoZ0JBO0VBQ0UsYUFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtFQUNBLHlCN0J0cUNZO0FsSG9zaUJkO0ErSTNoZ0JBO0VBQ0UsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtFQUNBLHlCN0I5cUNZO0FsSDRzaUJkO0ErSTNoZ0JBO0VBQ0UsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtFQUNBLHlCN0J0ckNZO0FsSG90aUJkO0ErSTNoZ0JBO0VBQ0UsaUJBQUE7QS9JOGhnQkY7QStJM2hnQkE7RUFDRSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0VBQ0EseUI3QmxzQ1k7QWxIZ3VpQmQ7QStJM2hnQkE7RUFDRSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxlQUFBO0VBQ0EseUI3QjFzQ1k7QWxId3VpQmQ7QStJM2hnQkEsOERBQUE7QUFFQSw4REFBQTtBQUNBO0VBQ0UsdUJBQUE7RUFDQSwwQkFBQTtFQUFBLHVCQUFBO0VBQUEsa0JBQUE7RUFDQSxpQkFBQTtFQUNBLHFCN0J6dUNpQjtBbEhzd2lCbkI7QStJMWhnQkE7RUFDRSxpQkFBQTtFQUNBLGdDQUFBO0VBQ0EsbUJBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtBL0k2aGdCRjtBK0l4aGdCQTtFQUNFLFlBQUE7RUFDQSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLHlCN0Jod0NZO0U2Qml3Q1osZ0JBQUE7RUFDQSx1QkFBQTtFQUNBLHNCQUFBO0EvSTJoZ0JGO0ErSXRoZ0JBO0VBQ0UsZ0JBQUE7RUFDQSxnQkFBQTtBL0l5aGdCRjtBK0l0aGdCQTtFQUNFLHlCN0I3d0NnQjtBbEhzeWlCbEI7QStJdGhnQkE7RUFDRSxhQUFBO0VBQ0EseUI3Qi93Q2lCO0FsSHd5aUJuQjtBK0l0aGdCQTtFQUNFLGM3Qjl3Q1U7QWxIdXlpQlo7QStJdGhnQkEsOERBQUE7QUFFQSw4REFBQTtBQUNBO0VBQ0UsNkJBQUE7RUFDQSxXQUFBO0VBQ0EsY0FBQTtFQUNBLHVCQUFBO0VBQ0EseUI3Qi94Q21CO0U2Qmd5Q25CLGM3Qnh4Q1k7RTZCeXhDWixtQkFBQTtFQUNBLHFCQUFBO0VBQ0EsWUFBQTtFQUdBLHdCQUFBO0VBQ0EscUJBQUE7RUFFQSw0REFBQTtFQUNBLDBDQUFBO0VBQ0EsNkJBQUE7RUFDQSw0QkFBQTtFQUNBLHVCQUFBO0EvSXFoZ0JGO0ErSWxoZ0JBO0VBQ0UsYUFBQTtBL0lxaGdCRjtBK0lsaGdCQTtFQUNFLHlCN0J4ekNZO0U2Qnl6Q1oseUJBQUE7RUFDQSxjN0IveUNZO0FsSG8waUJkO0ErSWpoZ0JBO0VBQ0UsWUFBQTtBL0lvaGdCRjtBK0lqaGdCQTtFQUNFLG1CQUFBO0EvSW9oZ0JGO0ErSWpoZ0JBO0VBQ0UsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLGM3Qjl6Q1k7QWxIazFpQmQ7QStJaGhnQkEsOERBQUE7QUFHQSwrREFBQTtBQUVBO0VBQ0UsMkJBQUE7RUFDQSxVQUFBO0VBQ0EsYUFBQTtFQUNBLGNBQUE7QS9JZ2hnQkY7QStJN2dnQkE7RUFDRSxpQkFBQTtFQUNBLGlCQUFBO0VBQ0EsYzdCcDBDWTtBbEhvMWlCZDtBK0k1Z2dCQTtFQUNFLGVBQUE7RUFDQSxxQkFBQTtFQUNBLGM3QjUxQ3NCO0FsSDIyaUJ4QjtBK0kzZ2dCQTtFQUNFLG9CQUFBO0EvSThnZ0JGO0ErSTNnZ0JBLCtEQUFBO0FBR0EsaUVBQUE7QUFFQTtFQUNFLGVBQUE7RUFDQSxjN0IxMUNZO0FsSHEyaUJkO0ErSXZnZ0JBO0VBQ0UsbUJBQUE7RUFDQSxjN0JqM0NzQjtBbEgyM2lCeEI7QStJdGdnQkE7RUFDRSxjQUFBO0EvSXlnZ0JGO0ErSXRnZ0JBO0VBQ0Usb0JBQUE7QS9JeWdnQkY7QStJdGdnQkE7RUFDRSxrQkFBQTtFQUNBLGtCQUFBO0EvSXlnZ0JGO0ErSXRnZ0JBO0VBQ0UsY0FBQTtFQUNBLFdBQUE7QS9JeWdnQkY7QStJdGdnQkE7RUFDRSxjQUFBO0VBQ0EsV0FBQTtBL0l5Z2dCRjtBK0l0Z2dCQTtFQUNFLHFCQUFBO0VBQ0EsWUFBQTtBL0l5Z2dCRjtBK0l0Z2dCQTtFQUNFLHFCQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsYzdCcDRDWTtBbEg2NGlCZDtBK0lyZ2dCQSxpRUFBQTtBQUdBLDREQUFBO0FBRUE7RUFDRSxlQUFBO0VBQ0EsY0FBQTtBL0lxZ2dCRjtBK0lsZ2dCQTtFQUNFLGFBQUE7QS9JcWdnQkY7QStJbGdnQkE7RUFDRSxZQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7QS9JcWdnQkY7QStJbGdnQkE7RUFDRSxZQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7QS9JcWdnQkY7QStJbGdnQkE7RUFDRSxhQUFBO0VBQ0EscUJBQUE7RUFDQSxVQUFBO0VBQ0EsNkJBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0EvSXFnZ0JGO0ErSWxnZ0JBO0VBQ0UsVUFBQTtBL0lxZ2dCRjtBK0lsZ2dCQSw0REFBQTtBQUdBLDREQUFBO0FBRUE7RUFDRSxxQkFBQTtFQUNBLHFCQUFBO0VBQ0EsMkI3Qjc3Q2dCO0U2Qjg3Q2hCLHFCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjN0IzN0NZO0FsSDY3aUJkO0ErSTkvZkE7RUFDRSxZQUFBO0EvSWlnZ0JGO0ErSTkvZkEsNERBQUE7QUFJQTtFQUNFLDBCQUFBO0VBQ0EsYzdCejhDWTtBbEh1OGlCZDtBZ0p2dmZBLG1DQUFBO0FBK0lBLHlEQUFBO0FBb2JBLHlEQUFBO0FBMDBEQSwyQ0FBQTtBQTZDQSxxQkFBQTtBQS9pREU7RUFDRSxnQkF2TG9CO0VBd0xwQixlQXpMa0I7RUEwTGxCLGlEQUFBO0FoSm8zZEo7QWdKajNkRTtFQUVFLGNBQUE7QWhKbTNkSjtBZ0poM2RFO0VBQ0UsZUFBQTtBaEptM2RKO0FnSnJzZUU7RUEvVkUsd0RBQUE7RUFZRixzQkFBQTtFQXFWRSxnQkFBQTtBaEp5c2VKO0FnSnRzZUU7RUFwV0Usd0RBQUE7RUFZRixzQkFBQTtFQTBWRSxnQkFBQTtBaEowc2VKO0FnSnZzZUU7RUF6V0Usd0RBQUE7RUFZRixzQkFBQTtFQStWRSxnQkFBQTtBaEoyc2VKO0FnSnhzZUU7RUE5V0Usd0RBQUE7RUFZRixzQkFBQTtFQW9XRSxnQkFBQTtBaEo0c2VKO0FnSnRzZUU7RUF0WEUscUVBQUE7RUErWEEsZ0JBQUE7QWhKa3NlSjtBZ0ovcmVFO0VBbFlFLHFFQUFBO0VBMllBLGdCQUFBO0FoSjJyZUo7QWdKeHJlRTtFQTlZRSx3REFBQTtFQVlGLHNCQUFBO0FoSitqZkY7QWdKenJlRTtFQWxaRSx3REFBQTtFQVlGLHNCQUFBO0FoSm9rZkY7QWdKM3JlSTtFQUNFLGdCQUFBO0FoSjZyZU47QWdKenJlRTtFQTFaRSx3REFBQTtFQVlGLHNCQUFBO0FoSjRrZkY7QWdKMXJlRTtFQTlaRSwwREFBQTtFQVlGLHVCQUFBO0VBb1pFLGdCQUFBO0FoSjhyZUo7QWdKM3JlRTtFQW5hRSx3REFBQTtFQVlGLHVCQUFBO0VBeVpFLGdCQUFBO0FoSityZUo7QWdKNXJlRTtFQXhhRSx3REFBQTtFQVlGLHdCQUFBO0VBOFpFLGdCQUFBO0FoSmdzZUo7QWdKN3JlRTtFQTdhRSx3REFBQTtFQVlGLHNCQUFBO0VBbWFFLGdCQUFBO0FoSmlzZUo7QWdKbjVkRTtFQTd0QkUsd0RBQUE7RUFZRixzQkFBQTtBaEp5bWZGO0FnSjF0ZEU7O0VBR0ksaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7QWhKNHRkTjtBZ0pyaGRFO0VBQ0UsaURBQUE7QWhKd2hkSjtBZ0p4OWNFO0VBQ0UsaURBQUE7QWhKMjljSjtBZ0p4OWNFO0VBRUksZUFBQTtFQUNBLGdCQUFBO0FoSjA5Y047QWdKdDljRTtFQUNFLGVBQUE7QWhKeTljSjtBZ0p0OWNFOztFQUVFLGVBQUE7QWhKeTljSjtBZ0o3MWNFO0VBQ0UsaURBQUE7QWhKZzJjSjtBZ0o1MWNFO0VBQ0UsaUJBQUE7QWhKKzFjSjtBZ0o1dWNFO0VBQ0UsZUFBQTtFQUNBLGdCQUFBO0FoSit1Y0o7QWdKN3VjSTs7RUFFRSxlQTNGc0I7QWhKMDBjNUI7QWdKeG9jRTtFQUNFLGlEQUFBO0FoSjJvY0o7QWdKeG9jRTtFQUNFLGVBQUE7RUFDQSxnQkFBQTtBaEoyb2NKO0FnSnhvY0U7RUFDRSxlQUFBO0FoSjJvY0o7QWdKNTdiRTtFQUNFLGlEQUFBO0FoSis3Yko7QWdKNTdiRTtFQUNFLGVBakwwQjtBaEpnbmM5QjtBZ0o1N2JFOztFQUdJLGVBQUE7RUFDQSxnQkFBQTtBaEo4N2JOO0FnSjE3YkU7RUFFSSxlQTdMaUM7RUE4TGpDLGdCQUFBO0FoSjQ3Yk47QWdKMTJiRTtFQXoxREUsd0RBQUE7RUFZRixzQkFBQTtBaEo0cmZGO0FnSm52YkU7RUFFSSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtBaEpxdmJOO0FnSmp2YkU7RUE3OURFLHdEQUFBO0VBWUYsc0JBQUE7QWhKdXNmRjtBZ0psa1dFO0VBMXBKRSxrQkFlVTtFQWRWLGdCQWVZO0VBZFosa0JBZVk7RUFkWixpREFlWTtFQUdkLHNCQUFBO0FoSitzZkY7QWdKdGtXRTtFQUNFLHlCQVB1QjtBaEpnbFczQjtBZ0pua1dJOztFQUNFLGVBdkIyQjtFQXdCM0Isa0JBdHBKVTtBaEo2dGZoQjtBZ0pua1dJOztFQUNFLGFBQUE7RUFDQSxZQUFBO0FoSnNrV047QWdKcGtXTTs7RUFDRSxlQUFBO0VBQ0Esa0JBaHFKUTtBaEp1dWZoQjtBZ0psa1dFO0VBQ0UsZ0JBQUE7RUFFQSx1Q0FBQTtBaEpva1dKO0FnSmhrV0k7O0VBdEVGLDZDQUFBO0VBRUEsc0JBQUE7QWhKMG9XRjtBZ0o5aldJO0VBOUVGLDZDQUFBO0VBRUEsc0JBQUE7QWhKOG9XRjtBZ0ozaldFO0VBQ0UsZUFBQTtFQUNBLHNCQW5FaUI7QWhKaW9XckI7QWdKM2pXRTtFQUNFLGNBQUE7QWhKOGpXSjtBZ0ozaldFO0VBR0UsaUJBaEV1QjtBaEo0blczQjtBZ0p6aldFO0VBQ0UsY0EvRW9CO0VBZ0ZwQiwwQkF6RXFCO0VBNkVyQixnQ0FBQTtBaEp5aldKO0FnSnZrWEk7RUFDRSxzQkFKcUI7QWhKOGtYM0I7QWdKdmtYSTtFQUNFLG1CQUFBO0FoSnlrWE47QWdKcmtYTTs7RUExREosb0ZBQUE7RUFJQSxpREFBQTtFQUdBLHNCQUFBO0FoSjhuWEY7QWdKcGtYTTtFQWpFSixzRkFBQTtFQUlBLGlEQUFBO0VBR0Esc0JBQUE7QWhKbW9YRjtBZ0pqa1hNO0VBekVKLHNGQUFBO0VBSUEsaURBQUE7RUFHQSxzQkFBQTtBaEp3b1hGO0FnSi9qWEk7RUFDRSxjQUFBO0FoSmlrWE47QWdKOWpYSTtFQUdFLGNBekNxQjtBaEp1bVgzQjtBZ0ozalhJO0VBQ0UsMEJBakRtQjtFQXFEbkIsZ0NBQUE7QWhKMGpYTjtBZ0pwalhFO0VBR007O0lBeEZOLDZDQUFBO0VoSitvWEE7RWdKaGpYTTtJQS9GTiw2Q0FBQTtFaEprcFhBO0VnSjNpWE07SUF2R04sNENBQUE7RWhKcXBYQTtBQUNGO0FnSnZ3WEk7RUFDRSwwQkFBQTtBaEp5d1hOO0FnSnR3WEk7RUFDRSxjQUFBO0VBQ0Esa0JBVDJCO0FoSml4WGpDO0FnSnB3WE07O0VBakNKLDZDQUFBO0VBRUEsc0JBQUE7QWhKd3lYRjtBZ0pod1hNO0VBMUNKLDZDQUFBO0VBRUEsc0JBQUE7QWhKNHlYRjtBZ0p4N1dJO0VBQ0Usb0JBQUE7QWhKMjdXTjtBZ0p4N1dJO0VBQ0UsY0FBQTtFQUNBLG1CQVQ4QjtBaEptOFdwQztBZ0p0N1dNOztFQXhDSiw2Q0FBQTtFQUVBLHNCQUFBO0FoSmkrV0Y7QWdKbDdXTTtFQWpESiw2Q0FBQTtFQUVBLHNCQUFBO0FoSnErV0Y7QWdKN3hiRTs7RUFHRSxlQUFBO0FoSit4Yko7QWdKaDFiRTs7RUFSQSxtQkFBQTtFQUNBLGdCQUFBO0VBQ0EsdUJBQUE7RUFRRSxjQUFBO0VBQ0Esc0JBQUE7QWhKcTFiSjtBZ0psMWJJOztFQUNFLGVBeUNxQjtBaEo0eWIzQjtBZ0p6bGJFO0VBQ0UscUJBQUE7QWhKNGxiSjtBZ0pqNmFFO0VBRUksaURBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7QWhKbTZhTjtBZ0poMWFFOztFQUdJLGlEQUFBO0VBQ0EsZUFBQTtBaEprMWFOO0FnSi9tYUU7RUFDRSxpREFBQTtBaEprbmFKO0FnSm5oYUU7RUFDRSxpREFBQTtBaEpzaGFKO0FnSm5oYUU7RUFDRSxlQUFBO0FoSnNoYUo7QWdKLzBaRTtFQUNFLGlEQUFBO0FoSmsxWko7QWdKanBaRTtFQUVJLGlEQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0FoSm1wWk47QWdKaC9ZRTtFQUNFLGlEQUFBO0FoSm0vWUo7QWdKaC9ZRTtFQUVJLGVBQUE7RUFDQSxnQkFBQTtBaEprL1lOO0FnSjkrWUU7RUFDRSxtQkFBQTtBaEppL1lKO0FnSjkrWUU7RUFDRSxlQUFBO0FoSmkvWUo7QWdKOStZRTtFQUVJLGVBQUE7RUFDQSxnQkFBQTtBaEpnL1lOO0FnSjF2WUU7RUFDRSxpREFBQTtBaEo2dllKO0FnSjF2WUU7RUFFSSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtBaEo0dllOO0FnSi9uWUU7Ozs7Ozs7RUF4ekhFLHdEQUFBO0VBWUYsc0JBQUE7RUFvekhFLFNBQUE7QWhKbW9ZSjtBZ0poa1lFO0VBQ0UsaURBQUE7RUFDQSxlQXJCb0I7RUFzQnBCLGdCQXJCMkI7RUFzQjNCLG1CQXRCMkI7QWhKeWxZL0I7QWdKaGtZRTtFQUNFLGVBdkI0QjtFQXdCNUIsZ0JBdEJBO0VBdUJBLG1CQXZCQTtBaEowbFlKO0FnSjltYkU7RUFDRSxpREFIWTtBaEpvbmJoQjtBZ0o5bWJFO0VBQ0UsaURBUFk7QWhKd25iaEI7QWdKNW1iSTtFQUNFLGVBQUE7QWhKK21iTjtBZ0p2OGJFO0VBUkEsbUJBQUE7RUFDQSxnQkFBQTtFQUNBLHVCQUFBO0VBUUUsY0FBQTtFQUNBLHNCQUFBO0FoSjI4Yko7QWdKeDhiSTtFQUNFLGVBa1Z1QjtBaEp3bmI3QjtBZ0pybmJJO0VBQ0UsZUFBQTtBaEp1bmJOO0FnSnA5YkU7RUFSQSxtQkFBQTtFQUNBLGdCQUFBO0VBQ0EsdUJBQUE7RUFRRSxjQUFBO0VBQ0Esc0JBQUE7QWhKdzliSjtBZ0pyOWJJO0VBQ0UsZUF1VnVCO0FoSmdvYjdCO0FnSjduYkk7RUFDRSxpREFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtBaEorbmJOO0FnSnpuYkk7RUFDRSxlQUFBO0FoSjRuYk47QWdKditiRTtFQVJBLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSx1QkFBQTtFQVFFLGNBQUE7RUFDQSxzQkFBQTtBaEoyK2JKO0FnSngrYkk7RUFDRSxlQXFXdUI7QWhKcW9iN0I7QWdKbG9iSTtFQUNFLGVBQUE7QWhKb29iTjtBZ0pwL2JFO0VBUkEsbUJBQUE7RUFDQSxnQkFBQTtFQUNBLHVCQUFBO0VBUUUsY0FBQTtFQUNBLHNCQUFBO0FoSncvYko7QWdKci9iSTtFQUNFLGVBMFd1QjtBaEo2b2I3QjtBZ0oxb2JJO0VBQ0UsaURBeDZFWTtFQXk2RVosZUFBQTtFQUNBLGdCQUFBO0FoSjRvYk47QWdKMTlmRTtFQUVJLGlEQUFBO0VBQ0EsZUFBQTtBaEo0OWZOO0FnSi82ZkU7RUE5R0Usd0RBQUE7RUFZRixzQkFBQTtBaEpzaGdCRjtBZ0pqbVlFO0VBRUksaURBQUE7RUFDQSxlQUFBO0FoSm1tWU47QWdKL2xZRTtFQUNFLGNBQUE7RUFFRSxvQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7QWhKaW1ZTjtBZ0o3d1dFO0VBQ0UsaURBQUE7QWhKZ3hXSjtBZ0o3d1dFOztFQUVFLGdCQUFBO0VBQ0EsZUFBQTtBaEpneFdKO0FnSmwwZ0JFO0VBQ0UsZ0JBQUE7RUFJQSxrQkFBQTtBaEprMGdCSjtBZ0ozemdCSTtFQUNFLHdCQUFBO0FoSjZ6Z0JOO0FnSnp6Z0JFO0VBQ0UsaUJBQUE7QWhKNHpnQko7QWdKenpnQkU7RUFDRSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0Esb0JBQUE7RUFFQSw2REFBQTtFQUNBLG1CQUFBO0FoSjJ6Z0JKO0FnSjEzakJJO0VBbWtERSxhQUFBO0FoSjB6Z0JOO0FnSng1akJFO0VBQ0UsU0FBQTtFQUNBLG1CQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFHQSxVQUFBO0VBR0Esd0JBQUE7RUFDQSxxQkFBQTtBaEp1NWpCSjtBZ0pyaWtCRTtFQUVFLG9CQUFBO0VBR0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtBaEpxaWtCSjtBZ0pqaWtCRTtFQUNFLGVBQUE7RUFDQSxhQTNCNEI7QWhKK2prQmhDO0FnSmxpa0JJO0VBR0UsYUFBQTtBaEpraWtCTjtBZ0oxaGtCRTtFQUNFLGFBQUE7RUFDQSxrQkFBQTtFQUNBLGFBMUNrQjtBaEp1a2tCdEI7QWdKemhrQkU7RUFHRSxrQkFBQTtFQUNBLG9CQUFBO0VBQ0Esc0JBQUE7RUFDQSxhQXBEa0I7RUF3RGxCLGFBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7QWhKdWhrQko7QWdKcGhrQkU7RUFFRSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxTQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFFQSxhQXBFMkI7RUFxRTNCLG9CQUFBO0VBQ0Esd0NBQUE7RUFDQSwwREFBQTtFQUNBLFVBQUE7QWhKcWhrQko7QWdKbmhrQkk7RUFDRSxVQUFBO0FoSnFoa0JOO0FnSi9na0JNO0VBUEY7SUFRSSxZQUFBO0VoSmtoa0JOO0FBQ0Y7QWdKOWdrQkU7RUFDRSwrQkFyRm1DO0FoSnNta0J2QztBZ0p6Z2tCSTtFQUNFLFVBQUE7QWhKNGdrQk47QWdKdGdrQkU7RUFDRSxrQkFBQTtFQUNBLGFBMUdrQjtFQStHbEIsYUFBQTtFQUlBLHNCQUFBO0VBR0EsY0FBQTtFQUNBLGVBQUE7QWhKZ2drQko7QWdKNS9qQkU7RUFDRSxlQUFBO0VBS0EsV0FBQTtFQUtBLGtCQUFBO0FoSnUvakJKO0FnSjk1akJFO0VBQTBDLElBQUE7QWhKazZqQjVDO0FnSmw2akJFO0VBQTBDLElBQUE7QWhKazZqQjVDO0FnSmo2akJFO0VBQXdDLElBQUE7QWhKbzZqQjFDO0FnSnA2akJFO0VBQXdDLElBQUE7QWhKbzZqQjFDO0FnSmw2akJFO0VBRUUsdURBQUE7VUFBQSwrQ0FBQTtBaEptNmpCSjtBZ0poNmpCRTtFQUVFLHFEQUFBO1VBQUEsNkNBQUE7QWhKazZqQko7QWdKNzVqQkU7RUFDRSxZQUFBO0FoSmc2akJKO0FnSjE1akJFO0VBcUJBLHlCQUFBO0VBQ0Esa0NBQUE7RUFwQkUsdUJBQUE7RUFDQSwyQkFBQTtBaEo4NWpCSjtBZ0pyNWpCRTtFQVNBLHlCQUFBO0VBQ0Esa0NBQUE7RUFSRSxvQkFBQTtBaEp5NWpCSjtBZ0ozd2dCRTtFQUNFLGtCQUFBO0FoSjh3Z0JKO0FnSmp3V0U7RUFDRSxrQkFBQTtBaEpvd1dKO0FnSmg3Z0JFO0VBSUksb0NBQUE7QWhKZzdnQk47QWdKNXJnQkU7RUFDRSwwQkFBQTtBaEorcmdCSjtBZ0o3cmdCSTtFQUVFLCtCQUFBO0FoSjhyZ0JOO0FnSjFyZ0JJO0VBQ0UsK0JBQUE7QWhKNHJnQk47QWdKenJnQkk7RUFDRSwrQkFBQTtFQUNBLDBCQUFBO0FoSjJyZ0JOO0FnSnhyZ0JJO0VBQ0UsMEJBQUE7QWhKMHJnQk47QWdKdHJnQkU7RUFDRSxjQUFBO0FoSnlyZ0JKO0FnSnRyZ0JFO0VBQ0UsY0FBQTtBaEp5cmdCSjtBZ0p0cmdCRTtFQUNFLGNBQUE7QWhKeXJnQko7QWdKOW9nQkU7RUFDRSwwQkFBQTtBaEppcGdCSjtBZ0o5b2dCRTtFQUNFLDBCQUFBO0FoSmlwZ0JKO0FnSi9sZ0JFO0VBQ0UsMEJBQUE7QWhKa21nQko7QWdKaG1nQkk7RUFDRSxjQUFBO0FoSmttZ0JOO0FnSjlsZ0JFO0VBQ0UsY0FaZTtBaEo2bWdCbkI7QWdKOWxnQkU7O0VBRUUsbUJBQUE7QWhKaW1nQko7QWdKemxnQkU7Ozs7RUFJRSxtQkFBQTtBaEo0bGdCSjtBZ0p6bGdCRTs7RUFFRSxtQkFBQTtBaEo0bGdCSjtBZ0p2bGdCSTs7RUFDRSxtQkF4Q2E7QWhKbW9nQm5CO0FnSnA0V0U7RUFJRSx5QkFBQTtFQUNBLDBCQUFBO0FoSm80V0o7QWdKNzNXSTtFQW40TUYsd0hBQUE7QWhKb3dqQkY7QWdKajRXSTtFQW40TUYseUhBQUE7QWhKd3dqQkY7QWdKcjRXSTtFQW40TUYseUhBQUE7QWhKNHdqQkY7QWdKejRXSTtFQW40TUYseUhBQUE7QWhKZ3hqQkY7QWdKNzRXSTtFQW40TUYsMEhBQUE7QWhKb3hqQkY7QWdKajVXSTtFQW40TUYsMEhBQUE7QWhKd3hqQkY7QWdKcjVXSTtFQW40TUYsMkhBQUE7QWhKNHhqQkY7QWdKejVXSTtFQW40TUYsMkhBQUE7QWhKZ3lqQkY7QWdKNzVXSTtFQW40TUYsMkhBQUE7QWhKb3lqQkY7QWdKajZXSTtFQW40TUYsMkhBQUE7QWhKd3lqQkY7QWdKcjZXSTtFQW40TUYsNEhBQUE7QWhKNHlqQkY7QWdKejZXSTtFQW40TUYsNEhBQUE7QWhKZ3pqQkY7QWdKNzZXSTtFQW40TUYsNEhBQUE7QWhKb3pqQkY7QWdKajdXSTtFQW40TUYsNEhBQUE7QWhKd3pqQkY7QWdKcjdXSTtF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dGFJO0VBQ0UscUNBYmM7QWhKeXVhcEI7QWdKeHRhTTtFQUNFLDBCQWpCaUI7QWhKMnVhekI7QWdKdnRhTTtFQUNFLDZCQUFBO0FoSnl0YVI7QWdKcDZaSTtFQUNFLDBCQVRZO0FoSmc3WmxCO0FnSnA2Wkk7RUFDRSwwQkFaa0I7QWhKazdaeEI7QWdKbDZaTTtFQUNFLGNBaEJrQjtBaEpvN1oxQjtBZ0pqNlpNO0VBQ0UsY0FuQmlCO0FoSnM3WnpCO0FnSmg2Wk07RUFDRSxjQXRCZTtBaEp3N1p2QjtBZ0o1NVpNO0VBQ0UsY0E3QmU7QWhKMjdadkI7QWdKejVaTTtFQUNFLDBCQXhDaUI7QWhKbThaekI7QWdKeDVaTTtFQUNFLDBCQXRDbUI7QWhKZzhaM0I7QWdKM3BlSTtFQUNFLGNBQUE7QWhKOHBlTjtBZ0ozcGVJO0VBQ0UsY0FBQTtBaEo2cGVOO0FnSjFwZUk7RUFDRSxjQUFBO0FoSjRwZU47QWdKaGplRTtFQUNFLDBCQUFBO0FoSm1qZUo7QWdKaGplRTs7RUFFRSwwQkFBQTtBaEptamVKO0FnSmhqZUU7RUFDRSxvQkFBQTtBaEptamVKO0FnSjVtZUU7RUE0REksMEJBQUE7QWhKbWplTjtBZ0ovbWVFO0VBNERJLDBCQUFBO0FoSm1qZU47QWdKL21lRTtFQTRESSwwQkFBQTtBaEptamVOO0FnSjNtZUU7RUF3REksMEJBQUE7QWhKc2plTjtBZ0oxbWVFO0VBb0RJLDBCQUFBO0FoSnlqZU47QWdKem1lRTtFQWdESSwwQkFBQTtBaEo0amVOO0FnSnppZUU7RUFDRSxvQkFBQTtBaEo0aWVKO0FnSnppZUU7O0VBRUUsb0JBQUE7QWhKNGllSjtBZ0p6aWVFO0VBQ0UsY0FBQTtBaEo0aWVKO0FnSnYvZEk7RUFDRSwwQkFBQTtBaEowL2ROO0FnSnYvZEk7RUFDRSwwQkFBQTtBaEp5L2ROO0FnSnQvZEk7RUFDRSwwQkFBQTtBaEp3L2ROO0FnSnAvZEU7RUFDRSx5QkFBQTtBaEp1L2RKO0FnSmovZEk7Ozs7O0VBQ0UsK0JBQUE7QWhKdy9kTjtBZ0puL2RJO0VBQ0UsK0JBQUE7QWhKcy9kTjtBZ0o5NWRFO0VBRUUs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dTZuQkY7RUFyNm5CQTtJQUNFLDBDQUFBO0VBdTZuQkY7RUFyNm5CQTtJQUNFLDBDQUFBO0VBdTZuQkY7RUFyNm5CQTtJQUNFLDBDQUFBO0VBdTZuQkY7RUFyNm5CQTtJQUNFLDBDQUFBO0VBdTZuQkY7RUFyNm5CQTtJQUNFLDBDQUFBO0VBdTZuQkY7RUFyNm5CQTtJQUNFLDBDQUFBO0VBdTZuQkY7QUFDRjtBQXg4bkJBO0VBQ0U7SUFDRSwwQ0FBQTtFQXU2bkJGO0VBcjZuQkE7SUFDRSwwQ0FBQTtFQXU2bkJGO0VBcjZuQkE7SUFDRSwwQ0FBQTtFQXU2bkJGO0VBcjZuQkE7SUFDRSwwQ0FBQTtFQXU2bkJGO0VBcjZuQkE7SUFDRSwwQ0FBQTtFQXU2bkJGO0VBcjZuQkE7SUFDRSwwQ0FBQTtFQXU2bkJGO0VBcjZuQkE7SUFDRSwwQ0FBQTtFQXU2bkJGO0VBcjZuQkE7SUFDRSwwQ0FBQTtFQXU2bkJGO0VBcjZuQkE7SUFDRSwwQ0FBQTtFQXU2bkJGO0VBcjZuQkE7SUFDRSwwQ0FBQTtFQXU2bkJGO0VBcjZuQkE7SUFDRSwwQ0FBQTtFQXU2bkJGO0FBQ0YiLCJmaWxlIjoic3R5bGVzLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJZiB5b3Ugd2FudCB0byBvdmVycmlkZSB2YXJpYWJsZXMgZG8gaXQgaGVyZVxuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuXG4vLyBJbXBvcnQgc3R5bGVzIHdpdGggZGVmYXVsdCBsYXlvdXQuXG5AaW1wb3J0ICd+QGNvcmV1aS9jb3JldWktcHJvL3Njc3MvY29yZXVpJztcblxuLy8gU3BpbmtpdFxuQGltcG9ydCAnfnNwaW5raXQvc2Nzcy9zcGlua2l0LnNjc3MnO1xuXG4vLyBJbXBvcnQgRm9udFxuQGltcG9ydCAnZm9udCc7XG5cbi8vIEltcG9ydCB0b2FzdCBzdHlsZVxuQGltcG9ydCAnfm5neC10b2FzdHIvdG9hc3RyJztcblxuLy8gSWYgeW91IHdhbnQgdG8gYWRkIHNvbWV0aGluZyBkbyBpdCBoZXJlIC0gbXVzdCBiZSBiZWxvdyBhbGwgb3RoZXIgaW1wb3J0ZWQgc3R5bGVzXG5AaW1wb3J0IFwiY3VzdG9tXCI7XG5AaW1wb3J0IFwic3R5bGVzaGVldFwiO1xuQGltcG9ydCBcIm1hdGVyaWFsXCI7XG5cbmFwcC1kZWZhdWx0LWxheW91dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xufVxuXG4uYXBwLWJvZHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbn1cblxuLmFwcC1ib2R5IC5tYWluIHtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbn1cblxuYm9keSB7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG59XG5cbjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogMDsgIC8qIFJlbW92ZSBzY3JvbGxiYXIgc3BhY2UgKi9cbiAgaGVpZ2h0OiAwOyAvKiBSZW1vdmUgc2Nyb2xsYmFyIHNwYWNlICovXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyAgLyogT3B0aW9uYWw6IGp1c3QgbWFrZSBzY3JvbGxiYXIgaW52aXNpYmxlICovXG59XG5cbmhyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGhvdmVyLWdyYXktY29sb3I7XG59XG5cbi5tYWluLWNvbnRlbnQge1xuICBwYWRkaW5nLXRvcDogJG1haW4tcGFkZGluZy10b3A7XG4gIHBhZGRpbmctbGVmdDogJG1haW4tcGFkZGluZy1sZWZ0O1xuICBwYWRkaW5nLXJpZ2h0OiAkbWFpbi1wYWRkaW5nLXJpZ2h0O1xuICBvdmVyZmxvdzogc2Nyb2xsO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5uby1tYXJnaW4ge1xuICBtYXJnaW46IDA7XG59XG5cbi5hdXRvLW1hcmdpbiB7XG4gIG1hcmdpbjogYXV0bztcbn1cblxuLy8gRGF0ZSBwaWNrZXIgLSBwaWVyY2UgZG93bndhcmRzIHRvIGNoYW5nZSBkYXRlcGlja2VyIGNzc1xuLm1kLWRycHBpY2tlciB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbn1cblxuLm1kLWRycHBpY2tlciAuYnRuIHtcbiAgY29sb3I6ICRibGFjay1jb2xvciAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAka3J1Z28teWVsbG93ICFpbXBvcnRhbnQ7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5tZC1kcnBwaWNrZXIgdGQuYWN0aXZlIHtcbiAgY29sb3I6ICRibGFjay1jb2xvciAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAka3J1Z28teWVsbG93ICFpbXBvcnRhbnQ7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5tZC1kcnBwaWNrZXIgLnJhbmdlcyB1bCBsaSBidXR0b24ge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4ubWQtZHJwcGlja2VyIC5yYW5nZXMgdWwgbGkgYnV0dG9uLmFjdGl2ZSB7XG4gIGNvbG9yOiAkYmxhY2stY29sb3IgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGtydWdvLXllbGxvdyAhaW1wb3J0YW50O1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4vLyBwYWRkaW5nIGFuZCBtYXJnaW5zXG4ubm8tcGFkZGluZyB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5wdC04cHgge1xuICBwYWRkaW5nLXRvcDogMC41cmVtO1xufVxuXG4ucGItOHB4IHtcbiAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbn1cblxuLnBiLTE2cHgge1xuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbn1cblxuLm10LW5vbmUge1xuICBtYXJnaW4tdG9wOiAwLjByZW07XG59XG5cbi5tdC04cHgge1xuICBtYXJnaW4tdG9wOiAwLjVyZW07XG59XG5cbi5tdC0xMHB4IHtcbiAgbWFyZ2luLXRvcDogMC42MjVyZW07XG59XG5cbi5tdC0xNHB4IHtcbiAgbWFyZ2luLXRvcDogMC44NzVyZW07XG59XG5cbi5tdC0xNnB4IHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbn1cblxuLm10LTIwcHgge1xuICBtYXJnaW4tdG9wOiAxLjI1cmVtO1xufVxuXG4ubXQtMjRweCB7XG4gIG1hcmdpbi10b3A6IDEuNXJlbTtcbn1cblxuLm10LTI4cHgge1xuICBtYXJnaW4tdG9wOiAxLjc1cmVtO1xufVxuXG4ubXQtNDhweCB7XG4gIG1hcmdpbi10b3A6IDNyZW07XG59XG5cbi5tYi1ub25lIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm1iLTE2cHgge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4ubWItMjBweCB7XG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XG59XG5cbi5tYi0yNHB4IHtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xufVxuXG4ubWItMzJweCB7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG59XG5cbi5saC04MHAge1xuICBsaW5lLWhlaWdodDogODAlO1xufVxuXG4vLyBGbGV4aW5nXG4uZmxleC1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uZmxleC1pbmxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbn1cblxuLmZsZXgtd3JhcC1jb250ZW50IHtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4uZmxleC1jb250ZW50LWVuZCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi5mbGV4LWFsaWduLWVuZCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbn1cblxuLy8gQWxpZ25cbi5hbGlnbi1zZWxmLWNlbnRlciB7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cblxuLy8gRmxvYXRcbi5mbG9hdC1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5mbG9hdC1yaWdodCB7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLm5vLXBhZGRpbmcge1xuICBwYWRkaW5nOiAwO1xufVxuXG4ucHQtOHB4IHtcbiAgcGFkZGluZy10b3A6IDAuNXJlbTtcbn1cblxuLnB0LTE2cHgge1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbn1cblxuLnB0LTI0cHgge1xuICBwYWRkaW5nLXRvcDogMS41cmVtO1xufVxuXG4ucGItOHB4IHtcbiAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbn1cblxuLm10LW5vbmUge1xuICBtYXJnaW4tdG9wOiAwLjByZW07XG59XG5cbi5tdC0ycHgge1xuICBtYXJnaW4tdG9wOiAwLjEyNXJlbTtcbn1cblxuLm10LTRweCB7XG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XG59XG5cbi5tdC02cHgge1xuICBtYXJnaW4tdG9wOiAwLjM3NXJlbTtcbn1cblxuLm10LThweCB7XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbn1cblxuLm10LTEwcHgge1xuICBtYXJnaW4tdG9wOiAwLjYyNXJlbTtcbn1cblxuLm10LTEycHgge1xuICBtYXJnaW4tdG9wOiAwLjc1cmVtO1xufVxuXG4ubXQtMTRweCB7XG4gIG1hcmdpbi10b3A6IDAuODc1cmVtO1xufVxuXG4ubXQtMTZweCB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG59XG5cbi5tdC0yMHB4IHtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbn1cblxuLm10LTI0cHgge1xuICBtYXJnaW4tdG9wOiAxLjVyZW07XG59XG5cbi5tdC0yOHB4IHtcbiAgbWFyZ2luLXRvcDogMS43NXJlbTtcbn1cblxuLm10LTMycHgge1xuICBtYXJnaW4tdG9wOiAycmVtO1xufVxuXG4ubXQtNDBweCB7XG4gIG1hcmdpbi10b3A6IDIuNXJlbTtcbn1cblxuLm10LTQ4cHgge1xuICBtYXJnaW4tdG9wOiAzcmVtO1xufVxuXG4ubWwtOHB4IHtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbn1cblxuLm1sLTEycHgge1xuICBtYXJnaW4tbGVmdDogMC43NXJlbTtcbn1cblxuLm1sLTE2cHgge1xuICBtYXJnaW4tbGVmdDogMXJlbTtcbn1cblxuLm1sLTE2cHgtZm9yY2Uge1xuICBtYXJnaW4tbGVmdDogMXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubXItNnB4IHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjM3NXJlbTtcbn1cblxuLm1yLTEwcHgge1xuICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xufVxuXG4ubWItMTZweCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5tYi0yMHB4IHtcbiAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcbn1cblxuLm1iLTI0cHgge1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG59XG5cbi5tYi0zMnB4IHtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cblxuLm1iLTY0cHgge1xuICBtYXJnaW4tYm90dG9tOiA0cmVtO1xufVxuXG4ubWItOTZweCB7XG4gIG1hcmdpbi1ib3R0b206IDZyZW07XG59XG5cbi5saC04MHAge1xuICBsaW5lLWhlaWdodDogODAlO1xufVxuXG4vLyBEaXNwbGF5XG4uZC1ub25lIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gRmxleGluZ1xuLmZsZXgtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLmZsZXgtc3BhY2UtYmV0d2VlbiB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLmZsZXgtaW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG5cbi5mbGV4LXdyYXAtY29udGVudCB7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLmZsZXgtY29udGVudC1lbmQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4uZmxleC1hbGlnbi1lbmQge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG59XG5cbi5mbGV4LWp1c3RpZnktY2VudGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXJcbn1cblxuLmZsZXgtYWxpZ24tY2VudGVyIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlclxufVxuXG4uZmxleC1maWxsIHtcbiAgZmxleDogMTtcbn1cblxuLmZ1bGwtY2VudGVyZWQtdGV4dCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi8vIEFsaWduXG4uYWxpZ24tc2VsZi1mbGV4LWVuZCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xufVxuXG4uYWxpZ24tc2VsZi1jZW50ZXIge1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5cbi8vIEZsb2F0XG4uZmxvYXQtbGVmdCB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4uZmxvYXQtcmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5mbG9hdC1kb3duIHtcbiAgZmxvYXQ6IGJvdHRvbVxufVxuXG4uZmxvYXQtdXAge1xuICBmbG9hdDogdG9wO1xufVxuXG4vLyBTaXppbmdcbi5oMTAwcCB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmg1MHZoIHtcbiAgaGVpZ2h0OiA1MHZoO1xufVxuXG4udzEwMHAge1xuICB3aWR0aDogMTAwJVxufVxuXG4vLyBCbG9ja1xuLmlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5tb2RhbC1jb250ZW50IHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnQ7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogMTBweCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxMHB4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogdW5zZXQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5ibHVycmVkLWJhY2tncm91bmQge1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMnB4KTtcbn1cblxuLy8gVG9hc3RyXG5cbi50b2FzdC1jb250YWluZXIgLmN1c3RvbS10b2FzdC5uZ3gtdG9hc3RyLnRvYXN0LXN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9hc3RyLXN1Y2Nlc3MtY29sb3I7XG59XG5cbi50b2FzdC1jb250YWluZXIgLmN1c3RvbS10b2FzdC5uZ3gtdG9hc3RyLnRvYXN0LWluZm8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9hc3RyLWluZm8tY29sb3I7XG59XG5cbi50b2FzdC1jb250YWluZXIgLmN1c3RvbS10b2FzdC5uZ3gtdG9hc3RyLnRvYXN0LXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9hc3RyLXdhcm5pbmctY29sb3I7XG59XG5cbi50b2FzdC1jb250YWluZXIgLmN1c3RvbS10b2FzdC5uZ3gtdG9hc3RyLnRvYXN0LWVycm9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHRvYXN0ci1lcnJvci1jb2xvcjtcbn1cblxuLy8gVGV4dCB3cmFwcGluZ1xuXG4uZWxsaXBzaXMtbm93cmFwLXRleHQge1xuICB3aWR0aDogMTAwJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbn1cblxuLmxpdmUtdmlldy1tb2RhbC1sYW5kc2NhcGUgLm1vZGFsLXhsIHtcbiAgbWF4LXdpZHRoOiA5NXZ3O1xuICBtYXgtaGVpZ2h0OiA5MHZoO1xufVxuXG4ubGl2ZS12aWV3LW1vZGFsLXBvcnRyYWl0IC5tb2RhbC14bCB7XG4gIG1heC13aWR0aDogNjV2dztcbiAgbWF4LWhlaWdodDogOTV2aDtcbn1cblxuLy8gdG9vbHRpcCBzdHlsaW5nIG5lZWRzIHRvIGJlIGluIHRoZSBnbG9iYWwgc3R5bGVzaGVldFxuLnRvb2x0aXAge1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgei1pbmRleDogMTA1MiAhaW1wb3J0YW50O1xufVxuXG4uc2hvdy50b29sdGlwIHtcbiAgb3BhY2l0eTogMTtcbiAgei1pbmRleDogMTA1MiAhaW1wb3J0YW50O1xufVxuXG4uY2RrLW92ZXJsYXktY29udGFpbmVyIHtcbiAgei1pbmRleDogMTA1Mjtcbn1cblxuLnRvb2x0aXAudG9vbHRpcC10b3AsXG4udG9vbHRpcC50b29sdGlwLWJvdHRvbSxcbi50b29sdGlwLnRvb2x0aXAtbGVmdCxcbi50b29sdGlwLnRvb2x0aXAtcmlnaHQge1xuICB6LWluZGV4OiAxMDAwMDA7XG59XG5cbi8vIEFuaW1hdGluZ1xuXG4uYW5pbWF0aW5nIHtcbiAgYW5pbWF0aW9uOiAwLjc1cyBmbGlja2VyLXdoaXRlLWNvbG9yIGluZmluaXRlIGFsdGVybmF0ZTtcbn1cblxuLmRhcmstYW5pbWF0aW9uLmFuaW1hdGluZyB7XG4gIGFuaW1hdGlvbjogMC43NXMgZmxpY2tlci1kYXJrLWNvbG9yIGluZmluaXRlIGFsdGVybmF0ZTtcbn1cblxuQGtleWZyYW1lcyBmbGlja2VyLXdoaXRlLWNvbG9yIHtcbiAgMCUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgfVxuICAxMCUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgfVxuICAyMCUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgfVxuICAzMCUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbiAgfVxuICA0MCUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgfVxuICA1MCUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcbiAgfVxuICA2MCUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgfVxuICA3MCUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbiAgfVxuICA4MCUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgfVxuICA5MCUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgfVxuICAxMDAlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmbGlja2VyLWRhcmstY29sb3Ige1xuICAwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsIDIwMCwgMjAwLCAwLjEpO1xuICB9XG4gIDEwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsIDIwMCwgMjAwLCAwLjIpO1xuICB9XG4gIDIwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsIDIwMCwgMjAwLCAwLjMpO1xuICB9XG4gIDMwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsIDIwMCwgMjAwLCAwLjQpO1xuICB9XG4gIDQwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsIDIwMCwgMjAwLCAwLjUpO1xuICB9XG4gIDUwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsIDIwMCwgMjAwLCAwLjYpO1xuICB9XG4gIDYwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsIDIwMCwgMjAwLCAwLjUpO1xuICB9XG4gIDcwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsIDIwMCwgMjAwLCAwLjQpO1xuICB9XG4gIDgwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsIDIwMCwgMjAwLCAwLjMpO1xuICB9XG4gIDkwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsIDIwMCwgMjAwLCAwLjIpO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjAwLCAyMDAsIDIwMCwgMC4xKTtcbiAgfVxufVxuXG4iLCIvKiFcbiAqIENvcmVVSSBQcm8gLSBEYXNoYm9hcmQgVUkgS2l0XG4gKiBAdmVyc2lvbiB2Mi4xLjE2XG4gKiBAbGluayBodHRwczovL2NvcmV1aS5pby9wcm8vXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTggY3JlYXRpdmVMYWJzIMWBdWthc3ogSG9sZWN6ZWtcbiAqL1xuXG4vLyBPdmVycmlkZSBCb29zdHJhcCB2YXJpYWJsZXNcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcblxuLy8gSW1wb3J0IEJvb3RzdHJhcCBzb3VyY2UgZmlsZXNcbkBpbXBvcnQgXCJib290c3RyYXAvYm9vdHN0cmFwXCI7IC8vIGZyb20gYm9vdHN0cmFwIG5vZGVfbW9kdWxlc1xuXG4vLyBNaXhpbnNcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLy8gQW5pbWF0aW9uc1xuQGltcG9ydCBcImFuaW1hdGVcIjtcblxuLy8gVmVuZG9yc1xuQGltcG9ydCBcInZlbmRvcnNcIjtcblxuLy8gQ29tcG9uZW50c1xuQGltcG9ydCBcImFzaWRlXCI7XG5AaW1wb3J0IFwiYXZhdGFyc1wiO1xuQGltcG9ydCBcImJhZGdlXCI7XG5AaW1wb3J0IFwiYnJlYWRjcnVtYi1tZW51XCI7XG5AaW1wb3J0IFwiYnJlYWRjcnVtYlwiO1xuQGltcG9ydCBcImJyYW5kLWNhcmRcIjtcbkBpbXBvcnQgXCJicmFuZC1idXR0b25zXCI7XG5AaW1wb3J0IFwiYnV0dG9uLWdyb3VwXCI7XG5AaW1wb3J0IFwiYnV0dG9uc1wiO1xuQGltcG9ydCBcImNhbGxvdXRcIjtcbkBpbXBvcnQgXCJjYXJkXCI7XG5AaW1wb3J0IFwiY2hhcnRzXCI7XG5AaW1wb3J0IFwiZHJvcGRvd25cIjtcbkBpbXBvcnQgXCJmb290ZXJcIjtcbkBpbXBvcnQgXCJncmlkXCI7XG5AaW1wb3J0IFwiaGVhZGVyXCI7XG5AaW1wb3J0IFwiaW5wdXQtZ3JvdXBcIjtcbkBpbXBvcnQgXCJpbWFnZXNcIjtcbkBpbXBvcnQgXCJsaXN0LWdyb3VwXCI7XG5AaW1wb3J0IFwibW9kYWxcIjtcbkBpbXBvcnQgXCJuYXZcIjtcbkBpbXBvcnQgXCJwcm9ncmVzc1wiO1xuQGltcG9ydCBcInByb2dyZXNzLWdyb3VwXCI7XG5AaW1wb3J0IFwic2lkZWJhclwiO1xuQGltcG9ydCBcInN3aXRjaGVzXCI7XG5AaW1wb3J0IFwidGFibGVzXCI7XG5AaW1wb3J0IFwid2lkZ2V0c1wiO1xuXG4vLyBMYXlvdXQgT3B0aW9uc1xuQGltcG9ydCBcImxheW91dFwiO1xuXG5AaW1wb3J0IFwib3RoZXJzXCI7XG5cbi8vIFV0aWxpdHkgY2xhc3Nlc1xuQGltcG9ydCBcInV0aWxpdGllc1wiO1xuXG4vLyBBcHBzXG5AaW1wb3J0IFwiYXBwc1wiO1xuXG4vLyBSaWdodC10by1sZWZ0XG5AaW1wb3J0IFwicnRsXCI7XG5cbi8vIEN1c3RvbSBQcm9wZXJ0aWVzIHN1cHBvcnQgZm9yIEludGVybmV0IEV4cGxvcmVyXG5AaW1wb3J0IFwiaWUtY3VzdG9tLXByb3BlcnRpZXNcIjtcblxuLy8gdGVtcCBmaXhlc1xuQGltcG9ydCBcImZpeGVzXCI7XG4iLCIvKiFcbiAqIEJvb3RzdHJhcCB2NC4zLjEgKGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS8pXG4gKiBDb3B5cmlnaHQgMjAxMS0yMDE5IFRoZSBCb290c3RyYXAgQXV0aG9yc1xuICogQ29weXJpZ2h0IDIwMTEtMjAxOSBUd2l0dGVyLCBJbmMuXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxuICovXG5cbkBpbXBvcnQgXCJmdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcbkBpbXBvcnQgXCJyb290XCI7XG5AaW1wb3J0IFwicmVib290XCI7XG5AaW1wb3J0IFwidHlwZVwiO1xuQGltcG9ydCBcImltYWdlc1wiO1xuQGltcG9ydCBcImNvZGVcIjtcbkBpbXBvcnQgXCJncmlkXCI7XG5AaW1wb3J0IFwidGFibGVzXCI7XG5AaW1wb3J0IFwiZm9ybXNcIjtcbkBpbXBvcnQgXCJidXR0b25zXCI7XG5AaW1wb3J0IFwidHJhbnNpdGlvbnNcIjtcbkBpbXBvcnQgXCJkcm9wZG93blwiO1xuQGltcG9ydCBcImJ1dHRvbi1ncm91cFwiO1xuQGltcG9ydCBcImlucHV0LWdyb3VwXCI7XG5AaW1wb3J0IFwiY3VzdG9tLWZvcm1zXCI7XG5AaW1wb3J0IFwibmF2XCI7XG5AaW1wb3J0IFwibmF2YmFyXCI7XG5AaW1wb3J0IFwiY2FyZFwiO1xuQGltcG9ydCBcImJyZWFkY3J1bWJcIjtcbkBpbXBvcnQgXCJwYWdpbmF0aW9uXCI7XG5AaW1wb3J0IFwiYmFkZ2VcIjtcbkBpbXBvcnQgXCJqdW1ib3Ryb25cIjtcbkBpbXBvcnQgXCJhbGVydFwiO1xuQGltcG9ydCBcInByb2dyZXNzXCI7XG5AaW1wb3J0IFwibWVkaWFcIjtcbkBpbXBvcnQgXCJsaXN0LWdyb3VwXCI7XG5AaW1wb3J0IFwiY2xvc2VcIjtcbkBpbXBvcnQgXCJ0b2FzdHNcIjtcbkBpbXBvcnQgXCJtb2RhbFwiO1xuQGltcG9ydCBcInRvb2x0aXBcIjtcbkBpbXBvcnQgXCJwb3BvdmVyXCI7XG5AaW1wb3J0IFwiY2Fyb3VzZWxcIjtcbkBpbXBvcnQgXCJzcGlubmVyc1wiO1xuQGltcG9ydCBcInV0aWxpdGllc1wiO1xuQGltcG9ydCBcInByaW50XCI7XG4iLCI6cm9vdCB7XG4gIC8vIEN1c3RvbSB2YXJpYWJsZSB2YWx1ZXMgb25seSBzdXBwb3J0IFNhc3NTY3JpcHQgaW5zaWRlIGAje31gLlxuICBAZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkY29sb3JzIHtcbiAgICAtLSN7JGNvbG9yfTogI3skdmFsdWV9O1xuICB9XG5cbiAgQGVhY2ggJGNvbG9yLCAkdmFsdWUgaW4gJHRoZW1lLWNvbG9ycyB7XG4gICAgLS0jeyRjb2xvcn06ICN7JHZhbHVlfTtcbiAgfVxuXG4gIEBlYWNoICRicCwgJHZhbHVlIGluICRncmlkLWJyZWFrcG9pbnRzIHtcbiAgICAtLWJyZWFrcG9pbnQtI3skYnB9OiAjeyR2YWx1ZX07XG4gIH1cblxuICAvLyBVc2UgYGluc3BlY3RgIGZvciBsaXN0cyBzbyB0aGF0IHF1b3RlZCBpdGVtcyBrZWVwIHRoZSBxdW90ZXMuXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vc2Fzcy9zYXNzL2lzc3Vlcy8yMzgzI2lzc3VlY29tbWVudC0zMzYzNDkxNzJcbiAgLS1mb250LWZhbWlseS1zYW5zLXNlcmlmOiAje2luc3BlY3QoJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWYpfTtcbiAgLS1mb250LWZhbWlseS1tb25vc3BhY2U6ICN7aW5zcGVjdCgkZm9udC1mYW1pbHktbW9ub3NwYWNlKX07XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBhdC1ydWxlLW5vLXZlbmRvci1wcmVmaXgsIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudCwgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlLCBwcm9wZXJ0eS1uby12ZW5kb3ItcHJlZml4XG5cbi8vIFJlYm9vdFxuLy9cbi8vIE5vcm1hbGl6YXRpb24gb2YgSFRNTCBlbGVtZW50cywgbWFudWFsbHkgZm9ya2VkIGZyb20gTm9ybWFsaXplLmNzcyB0byByZW1vdmVcbi8vIHN0eWxlcyB0YXJnZXRpbmcgaXJyZWxldmFudCBicm93c2VycyB3aGlsZSBhcHBseWluZyBuZXcgc3R5bGVzLlxuLy9cbi8vIE5vcm1hbGl6ZSBpcyBsaWNlbnNlZCBNSVQuIGh0dHBzOi8vZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3NcblxuXG4vLyBEb2N1bWVudFxuLy9cbi8vIDEuIENoYW5nZSBmcm9tIGBib3gtc2l6aW5nOiBjb250ZW50LWJveGAgc28gdGhhdCBgd2lkdGhgIGlzIG5vdCBhZmZlY3RlZCBieSBgcGFkZGluZ2Agb3IgYGJvcmRlcmAuXG4vLyAyLiBDaGFuZ2UgdGhlIGRlZmF1bHQgZm9udCBmYW1pbHkgaW4gYWxsIGJyb3dzZXJzLlxuLy8gMy4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuLy8gNC4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4vLyA1LiBDaGFuZ2UgdGhlIGRlZmF1bHQgdGFwIGhpZ2hsaWdodCB0byBiZSBjb21wbGV0ZWx5IHRyYW5zcGFyZW50IGluIGlPUy5cblxuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxufVxuXG5odG1sIHtcbiAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC8vIDJcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8vIDNcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvLyA0XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgkYmxhY2ssIDApOyAvLyA1XG59XG5cbi8vIFNoaW0gZm9yIFwibmV3XCIgSFRNTDUgc3RydWN0dXJhbCBlbGVtZW50cyB0byBkaXNwbGF5IGNvcnJlY3RseSAoSUUxMCwgb2xkZXIgYnJvd3NlcnMpXG4vLyBUT0RPOiByZW1vdmUgaW4gdjVcbi8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1saXN0LWNvbW1hLW5ld2xpbmUtYWZ0ZXJcbmFydGljbGUsIGFzaWRlLCBmaWdjYXB0aW9uLCBmaWd1cmUsIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1haW4sIG5hdiwgc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyBCb2R5XG4vL1xuLy8gMS4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuLy8gMi4gQXMgYSBiZXN0IHByYWN0aWNlLCBhcHBseSBhIGRlZmF1bHQgYGJhY2tncm91bmQtY29sb3JgLlxuLy8gMy4gU2V0IGFuIGV4cGxpY2l0IGluaXRpYWwgdGV4dC1hbGlnbiB2YWx1ZSBzbyB0aGF0IHdlIGNhbiBsYXRlciB1c2Vcbi8vICAgIHRoZSBgaW5oZXJpdGAgdmFsdWUgb24gdGhpbmdzIGxpa2UgYDx0aD5gIGVsZW1lbnRzLlxuXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyAvLyAxXG4gIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYmFzZTtcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRmb250LXNpemUtYmFzZSk7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYmFzZTtcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xuICBjb2xvcjogJGJvZHktY29sb3I7XG4gIHRleHQtYWxpZ246IGxlZnQ7IC8vIDNcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJvZHktYmc7IC8vIDJcbn1cblxuLy8gU3VwcHJlc3MgdGhlIGZvY3VzIG91dGxpbmUgb24gZWxlbWVudHMgdGhhdCBjYW5ub3QgYmUgYWNjZXNzZWQgdmlhIGtleWJvYXJkLlxuLy8gVGhpcyBwcmV2ZW50cyBhbiB1bndhbnRlZCBmb2N1cyBvdXRsaW5lIGZyb20gYXBwZWFyaW5nIGFyb3VuZCBlbGVtZW50cyB0aGF0XG4vLyBtaWdodCBzdGlsbCByZXNwb25kIHRvIHBvaW50ZXIgZXZlbnRzLlxuLy9cbi8vIENyZWRpdDogaHR0cHM6Ly9naXRodWIuY29tL3N1aXRjc3MvYmFzZVxuW3RhYmluZGV4PVwiLTFcIl06Zm9jdXMge1xuICBvdXRsaW5lOiAwICFpbXBvcnRhbnQ7XG59XG5cblxuLy8gQ29udGVudCBncm91cGluZ1xuLy9cbi8vIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4vLyAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLy8gMVxuICBoZWlnaHQ6IDA7IC8vIDFcbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8vIDJcbn1cblxuXG4vL1xuLy8gVHlwb2dyYXBoeVxuLy9cblxuLy8gUmVtb3ZlIHRvcCBtYXJnaW5zIGZyb20gaGVhZGluZ3Ncbi8vXG4vLyBCeSBkZWZhdWx0LCBgPGgxPmAtYDxoNj5gIGFsbCByZWNlaXZlIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMuIFdlIG51a2UgdGhlIHRvcFxuLy8gbWFyZ2luIGZvciBlYXNpZXIgY29udHJvbCB3aXRoaW4gdHlwZSBzY2FsZXMgYXMgaXQgYXZvaWRzIG1hcmdpbiBjb2xsYXBzaW5nLlxuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNlbGVjdG9yLWxpc3QtY29tbWEtbmV3bGluZS1hZnRlclxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206ICRoZWFkaW5ncy1tYXJnaW4tYm90dG9tO1xufVxuXG4vLyBSZXNldCBtYXJnaW5zIG9uIHBhcmFncmFwaHNcbi8vXG4vLyBTaW1pbGFybHksIHRoZSB0b3AgbWFyZ2luIG9uIGA8cD5gcyBnZXQgcmVzZXQuIEhvd2V2ZXIsIHdlIGFsc28gcmVzZXQgdGhlXG4vLyBib3R0b20gbWFyZ2luIHRvIHVzZSBgcmVtYCB1bml0cyBpbnN0ZWFkIG9mIGBlbWAuXG5wIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xufVxuXG4vLyBBYmJyZXZpYXRpb25zXG4vL1xuLy8gMS4gRHVwbGljYXRlIGJlaGF2aW9yIHRvIHRoZSBkYXRhLSogYXR0cmlidXRlIGZvciBvdXIgdG9vbHRpcCBwbHVnaW5cbi8vIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4vLyAzLiBBZGQgZXhwbGljaXQgY3Vyc29yIHRvIGluZGljYXRlIGNoYW5nZWQgYmVoYXZpb3IuXG4vLyA0LiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gRmlyZWZveCAzOS0uXG4vLyA1LiBQcmV2ZW50IHRoZSB0ZXh0LWRlY29yYXRpb24gdG8gYmUgc2tpcHBlZC5cblxuYWJiclt0aXRsZV0sXG5hYmJyW2RhdGEtb3JpZ2luYWwtdGl0bGVdIHsgLy8gMVxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLy8gMlxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8vIDJcbiAgY3Vyc29yOiBoZWxwOyAvLyAzXG4gIGJvcmRlci1ib3R0b206IDA7IC8vIDRcbiAgdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rOiBub25lOyAvLyA1XG59XG5cbmFkZHJlc3Mge1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5vbCxcbnVsLFxuZGwge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG5vbCBvbCxcbnVsIHVsLFxub2wgdWwsXG51bCBvbCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbmR0IHtcbiAgZm9udC13ZWlnaHQ6ICRkdC1mb250LXdlaWdodDtcbn1cblxuZGQge1xuICBtYXJnaW4tYm90dG9tOiAuNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDA7IC8vIFVuZG8gYnJvd3NlciBkZWZhdWx0XG59XG5cbmJsb2NrcXVvdGUge1xuICBtYXJnaW46IDAgMCAxcmVtO1xufVxuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkZXI7IC8vIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmlcbn1cblxuc21hbGwge1xuICBAaW5jbHVkZSBmb250LXNpemUoODAlKTsgLy8gQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnNcbn1cblxuLy9cbi8vIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuLy8gYWxsIGJyb3dzZXJzLlxuLy9cblxuc3ViLFxuc3VwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBAaW5jbHVkZSBmb250LXNpemUoNzUlKTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHsgYm90dG9tOiAtLjI1ZW07IH1cbnN1cCB7IHRvcDogLS41ZW07IH1cblxuXG4vL1xuLy8gTGlua3Ncbi8vXG5cbmEge1xuICBjb2xvcjogJGxpbmstY29sb3I7XG4gIHRleHQtZGVjb3JhdGlvbjogJGxpbmstZGVjb3JhdGlvbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8vIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cblxuICBAaW5jbHVkZSBob3ZlciB7XG4gICAgY29sb3I6ICRsaW5rLWhvdmVyLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogJGxpbmstaG92ZXItZGVjb3JhdGlvbjtcbiAgfVxufVxuXG4vLyBBbmQgdW5kbyB0aGVzZSBzdHlsZXMgZm9yIHBsYWNlaG9sZGVyIGxpbmtzL25hbWVkIGFuY2hvcnMgKHdpdGhvdXQgaHJlZilcbi8vIHdoaWNoIGhhdmUgbm90IGJlZW4gbWFkZSBleHBsaWNpdGx5IGtleWJvYXJkLWZvY3VzYWJsZSAod2l0aG91dCB0YWJpbmRleCkuXG4vLyBJdCB3b3VsZCBiZSBtb3JlIHN0cmFpZ2h0Zm9yd2FyZCB0byBqdXN0IHVzZSBhW2hyZWZdIGluIHByZXZpb3VzIGJsb2NrLCBidXQgdGhhdFxuLy8gY2F1c2VzIHNwZWNpZmljaXR5IGlzc3VlcyBpbiBtYW55IG90aGVyIHN0eWxlcyB0aGF0IGFyZSB0b28gY29tcGxleCB0byBmaXguXG4vLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xOTQwMlxuXG5hOm5vdChbaHJlZl0pOm5vdChbdGFiaW5kZXhdKSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cbn1cblxuXG4vL1xuLy8gQ29kZVxuLy9cblxucHJlLFxuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTtcbiAgQGluY2x1ZGUgZm9udC1zaXplKDFlbSk7IC8vIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbn1cblxucHJlIHtcbiAgLy8gUmVtb3ZlIGJyb3dzZXIgZGVmYXVsdCB0b3AgbWFyZ2luXG4gIG1hcmdpbi10b3A6IDA7XG4gIC8vIFJlc2V0IGJyb3dzZXIgZGVmYXVsdCBvZiBgMWVtYCB0byB1c2UgYHJlbWBzXG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIC8vIERvbid0IGFsbG93IGNvbnRlbnQgdG8gYnJlYWsgb3V0c2lkZVxuICBvdmVyZmxvdzogYXV0bztcbn1cblxuXG4vL1xuLy8gRmlndXJlc1xuLy9cblxuZmlndXJlIHtcbiAgLy8gQXBwbHkgYSBjb25zaXN0ZW50IG1hcmdpbiBzdHJhdGVneSAobWF0Y2hlcyBvdXIgdHlwZSBzdHlsZXMpLlxuICBtYXJnaW46IDAgMCAxcmVtO1xufVxuXG5cbi8vXG4vLyBJbWFnZXMgYW5kIGNvbnRlbnRcbi8vXG5cbmltZyB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJvcmRlci1zdHlsZTogbm9uZTsgLy8gUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC0uXG59XG5cbnN2ZyB7XG4gIC8vIFdvcmthcm91bmQgZm9yIHRoZSBTVkcgb3ZlcmZsb3cgYnVnIGluIElFMTAvMTEgaXMgc3RpbGwgcmVxdWlyZWQuXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzI2ODc4XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cblxuLy9cbi8vIFRhYmxlc1xuLy9cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyAvLyBQcmV2ZW50IGRvdWJsZSBib3JkZXJzXG59XG5cbmNhcHRpb24ge1xuICBwYWRkaW5nLXRvcDogJHRhYmxlLWNlbGwtcGFkZGluZztcbiAgcGFkZGluZy1ib3R0b206ICR0YWJsZS1jZWxsLXBhZGRpbmc7XG4gIGNvbG9yOiAkdGFibGUtY2FwdGlvbi1jb2xvcjtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY2FwdGlvbi1zaWRlOiBib3R0b207XG59XG5cbnRoIHtcbiAgLy8gTWF0Y2hlcyBkZWZhdWx0IGA8dGQ+YCBhbGlnbm1lbnQgYnkgaW5oZXJpdGluZyBmcm9tIHRoZSBgPGJvZHk+YCwgb3IgdGhlXG4gIC8vIGNsb3Nlc3QgcGFyZW50IHdpdGggYSBzZXQgYHRleHQtYWxpZ25gLlxuICB0ZXh0LWFsaWduOiBpbmhlcml0O1xufVxuXG5cbi8vXG4vLyBGb3Jtc1xuLy9cblxubGFiZWwge1xuICAvLyBBbGxvdyBsYWJlbHMgdG8gdXNlIGBtYXJnaW5gIGZvciBzcGFjaW5nLlxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206ICRsYWJlbC1tYXJnaW4tYm90dG9tO1xufVxuXG4vLyBSZW1vdmUgdGhlIGRlZmF1bHQgYGJvcmRlci1yYWRpdXNgIHRoYXQgbWFjT1MgQ2hyb21lIGFkZHMuXG4vL1xuLy8gRGV0YWlscyBhdCBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzI0MDkzXG5idXR0b24ge1xuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJvcGVydHktYmxhY2tsaXN0XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi8vIFdvcmsgYXJvdW5kIGEgRmlyZWZveC9JRSBidWcgd2hlcmUgdGhlIHRyYW5zcGFyZW50IGBidXR0b25gIGJhY2tncm91bmRcbi8vIHJlc3VsdHMgaW4gYSBsb3NzIG9mIHRoZSBkZWZhdWx0IGBidXR0b25gIGZvY3VzIHN0eWxlcy5cbi8vXG4vLyBDcmVkaXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9zdWl0Y3NzL2Jhc2UvXG5idXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiAxcHggZG90dGVkO1xuICBvdXRsaW5lOiA1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG59XG5cbmlucHV0LFxuYnV0dG9uLFxuc2VsZWN0LFxub3B0Z3JvdXAsXG50ZXh0YXJlYSB7XG4gIG1hcmdpbjogMDsgLy8gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpXG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBAaW5jbHVkZSBmb250LXNpemUoaW5oZXJpdCk7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG5idXR0b24sXG5pbnB1dCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvLyBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlXG59XG5cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyAvLyBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3hcbn1cblxuLy8gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB3b3JkLXdyYXAgaW4gU2FmYXJpLlxuLy9cbi8vIERldGFpbHMgYXQgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8yNDk5MFxuc2VsZWN0IHtcbiAgd29yZC13cmFwOiBub3JtYWw7XG59XG5cblxuLy8gMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4vLyAgICBjb250cm9scyBpbiBBbmRyb2lkIDQuXG4vLyAyLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sIC8vIDFcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvLyAyXG59XG5cbi8vIE9waW5pb25hdGVkOiBhZGQgXCJoYW5kXCIgY3Vyc29yIHRvIG5vbi1kaXNhYmxlZCBidXR0b24gZWxlbWVudHMuXG5AaWYgJGVuYWJsZS1wb2ludGVyLWN1cnNvci1mb3ItYnV0dG9ucyB7XG4gIGJ1dHRvbixcbiAgW3R5cGU9XCJidXR0b25cIl0sXG4gIFt0eXBlPVwicmVzZXRcIl0sXG4gIFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAmOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cbn1cblxuLy8gUmVtb3ZlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBmcm9tIEZpcmVmb3gsIGJ1dCBkb24ndCByZXN0b3JlIHRoZSBvdXRsaW5lIGxpa2UgTm9ybWFsaXplLlxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbmlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLVxuICBwYWRkaW5nOiAwOyAvLyAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtXG59XG5cblxuaW5wdXRbdHlwZT1cImRhdGVcIl0sXG5pbnB1dFt0eXBlPVwidGltZVwiXSxcbmlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbmlucHV0W3R5cGU9XCJtb250aFwiXSB7XG4gIC8vIFJlbW92ZSB0aGUgZGVmYXVsdCBhcHBlYXJhbmNlIG9mIHRlbXBvcmFsIGlucHV0cyB0byBhdm9pZCBhIE1vYmlsZSBTYWZhcmlcbiAgLy8gYnVnIHdoZXJlIHNldHRpbmcgYSBjdXN0b20gbGluZS1oZWlnaHQgcHJldmVudHMgdGV4dCBmcm9tIGJlaW5nIHZlcnRpY2FsbHlcbiAgLy8gY2VudGVyZWQgd2l0aGluIHRoZSBpbnB1dC5cbiAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk4NDhcbiAgLy8gYW5kIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTEyNjZcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBsaXN0Ym94O1xufVxuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyAvLyBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFLlxuICAvLyBUZXh0YXJlYXMgc2hvdWxkIHJlYWxseSBvbmx5IHJlc2l6ZSB2ZXJ0aWNhbGx5IHNvIHRoZXkgZG9uJ3QgYnJlYWsgdGhlaXIgKGhvcml6b250YWwpIGNvbnRhaW5lcnMuXG4gIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbmZpZWxkc2V0IHtcbiAgLy8gQnJvd3NlcnMgc2V0IGEgZGVmYXVsdCBgbWluLXdpZHRoOiBtaW4tY29udGVudDtgIG9uIGZpZWxkc2V0cyxcbiAgLy8gdW5saWtlIGUuZy4gYDxkaXY+YHMsIHdoaWNoIGhhdmUgYG1pbi13aWR0aDogMDtgIGJ5IGRlZmF1bHQuXG4gIC8vIFNvIHdlIHJlc2V0IHRoYXQgdG8gZW5zdXJlIGZpZWxkc2V0cyBiZWhhdmUgbW9yZSBsaWtlIGEgc3RhbmRhcmQgYmxvY2sgZWxlbWVudC5cbiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTIzNTlcbiAgLy8gYW5kIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlLyN0aGUtZmllbGRzZXQtYW5kLWxlZ2VuZC1lbGVtZW50c1xuICBtaW4td2lkdGg6IDA7XG4gIC8vIFJlc2V0IHRoZSBkZWZhdWx0IG91dGxpbmUgYmVoYXZpb3Igb2YgZmllbGRzZXRzIHNvIHRoZXkgZG9uJ3QgYWZmZWN0IHBhZ2UgbGF5b3V0LlxuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8gMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbi8vIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbmxlZ2VuZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlOyAvLyAxXG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbi1ib3R0b206IC41cmVtO1xuICBAaW5jbHVkZSBmb250LXNpemUoMS41cmVtKTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0OyAvLyAyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8vIDFcbn1cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8vIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG59XG5cbi8vIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLy8gVGhpcyBvdmVycmlkZXMgdGhlIGV4dHJhIHJvdW5kZWQgY29ybmVycyBvbiBzZWFyY2ggaW5wdXRzIGluIGlPUyBzbyB0aGF0IG91clxuICAvLyBgLmZvcm0tY29udHJvbGAgY2xhc3MgY2FuIHByb3Blcmx5IHN0eWxlIHRoZW0uIE5vdGUgdGhhdCB0aGlzIGNhbm5vdCBzaW1wbHlcbiAgLy8gYmUgYWRkZWQgdG8gYC5mb3JtLWNvbnRyb2xgIGFzIGl0J3Mgbm90IHNwZWNpZmljIGVub3VnaC4gRm9yIGRldGFpbHMsIHNlZVxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzExNTg2LlxuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLy8gMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLy9cbi8vIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbi8vXG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vL1xuLy8gMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbi8vIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbi8vXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICBmb250OiBpbmhlcml0OyAvLyAyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvLyAxXG59XG5cbi8vXG4vLyBDb3JyZWN0IGVsZW1lbnQgZGlzcGxheXNcbi8vXG5cbm91dHB1dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTsgLy8gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzXG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lOyAvLyBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRVxufVxuXG4vLyBBbHdheXMgaGlkZSBhbiBlbGVtZW50IHdpdGggdGhlIGBoaWRkZW5gIEhUTUwgYXR0cmlidXRlIChmcm9tIFB1cmVDU1MpLlxuLy8gTmVlZGVkIGZvciBwcm9wZXIgZGlzcGxheSBpbiBJRSAxMC0uXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cbiIsIi8vIFZhcmlhYmxlc1xuLy9cbi8vIFZhcmlhYmxlcyBzaG91bGQgZm9sbG93IHRoZSBgJGNvbXBvbmVudC1zdGF0ZS1wcm9wZXJ0eS1zaXplYCBmb3JtdWxhIGZvclxuLy8gY29uc2lzdGVudCBuYW1pbmcuIEV4OiAkbmF2LWxpbmstZGlzYWJsZWQtY29sb3IgYW5kICRtb2RhbC1jb250ZW50LWJveC1zaGFkb3cteHMuXG5cbi8vIENvbG9yIHN5c3RlbVxuXG4kd2hpdGU6ICAgICNmZmYgIWRlZmF1bHQ7XG4kZ3JheS0xMDA6ICNmOGY5ZmEgIWRlZmF1bHQ7XG4kZ3JheS0yMDA6ICNlOWVjZWYgIWRlZmF1bHQ7XG4kZ3JheS0zMDA6ICNkZWUyZTYgIWRlZmF1bHQ7XG4kZ3JheS00MDA6ICNjZWQ0ZGEgIWRlZmF1bHQ7XG4kZ3JheS01MDA6ICNhZGI1YmQgIWRlZmF1bHQ7XG4kZ3JheS02MDA6ICM2Yzc1N2QgIWRlZmF1bHQ7XG4kZ3JheS03MDA6ICM0OTUwNTcgIWRlZmF1bHQ7XG4kZ3JheS04MDA6ICMzNDNhNDAgIWRlZmF1bHQ7XG4kZ3JheS05MDA6ICMyMTI1MjkgIWRlZmF1bHQ7XG4kYmxhY2s6ICAgICMwMDAgIWRlZmF1bHQ7XG5cbiRncmF5czogKCkgIWRlZmF1bHQ7XG4vLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtZGVmYXVsdFxuJGdyYXlzOiBtYXAtbWVyZ2UoXG4gIChcbiAgICBcIjEwMFwiOiAkZ3JheS0xMDAsXG4gICAgXCIyMDBcIjogJGdyYXktMjAwLFxuICAgIFwiMzAwXCI6ICRncmF5LTMwMCxcbiAgICBcIjQwMFwiOiAkZ3JheS00MDAsXG4gICAgXCI1MDBcIjogJGdyYXktNTAwLFxuICAgIFwiNjAwXCI6ICRncmF5LTYwMCxcbiAgICBcIjcwMFwiOiAkZ3JheS03MDAsXG4gICAgXCI4MDBcIjogJGdyYXktODAwLFxuICAgIFwiOTAwXCI6ICRncmF5LTkwMFxuICApLFxuICAkZ3JheXNcbik7XG5cbiRibHVlOiAgICAjMDA3YmZmICFkZWZhdWx0O1xuJGluZGlnbzogICM2NjEwZjIgIWRlZmF1bHQ7XG4kcHVycGxlOiAgIzZmNDJjMSAhZGVmYXVsdDtcbiRwaW5rOiAgICAjZTgzZThjICFkZWZhdWx0O1xuJHJlZDogICAgICNkYzM1NDUgIWRlZmF1bHQ7XG4kb3JhbmdlOiAgI2ZkN2UxNCAhZGVmYXVsdDtcbiR5ZWxsb3c6ICAjZmZjMTA3ICFkZWZhdWx0O1xuJGdyZWVuOiAgICMyOGE3NDUgIWRlZmF1bHQ7XG4kdGVhbDogICAgIzIwYzk5NyAhZGVmYXVsdDtcbiRjeWFuOiAgICAjMTdhMmI4ICFkZWZhdWx0O1xuXG4kY29sb3JzOiAoKSAhZGVmYXVsdDtcbi8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzY3NzL2RvbGxhci12YXJpYWJsZS1kZWZhdWx0XG4kY29sb3JzOiBtYXAtbWVyZ2UoXG4gIChcbiAgICBcImJsdWVcIjogICAgICAgJGJsdWUsXG4gICAgXCJpbmRpZ29cIjogICAgICRpbmRpZ28sXG4gICAgXCJwdXJwbGVcIjogICAgICRwdXJwbGUsXG4gICAgXCJwaW5rXCI6ICAgICAgICRwaW5rLFxuICAgIFwicmVkXCI6ICAgICAgICAkcmVkLFxuICAgIFwib3JhbmdlXCI6ICAgICAkb3JhbmdlLFxuICAgIFwieWVsbG93XCI6ICAgICAkeWVsbG93LFxuICAgIFwiZ3JlZW5cIjogICAgICAkZ3JlZW4sXG4gICAgXCJ0ZWFsXCI6ICAgICAgICR0ZWFsLFxuICAgIFwiY3lhblwiOiAgICAgICAkY3lhbixcbiAgICBcIndoaXRlXCI6ICAgICAgJHdoaXRlLFxuICAgIFwiZ3JheVwiOiAgICAgICAkZ3JheS02MDAsXG4gICAgXCJncmF5LWRhcmtcIjogICRncmF5LTgwMFxuICApLFxuICAkY29sb3JzXG4pO1xuXG4kcHJpbWFyeTogICAgICAgJGJsdWUgIWRlZmF1bHQ7XG4kc2Vjb25kYXJ5OiAgICAgJGdyYXktNjAwICFkZWZhdWx0O1xuJHN1Y2Nlc3M6ICAgICAgICRncmVlbiAhZGVmYXVsdDtcbiRpbmZvOiAgICAgICAgICAkY3lhbiAhZGVmYXVsdDtcbiR3YXJuaW5nOiAgICAgICAkeWVsbG93ICFkZWZhdWx0O1xuJGRhbmdlcjogICAgICAgICRyZWQgIWRlZmF1bHQ7XG4kbGlnaHQ6ICAgICAgICAgJGdyYXktMTAwICFkZWZhdWx0O1xuJGRhcms6ICAgICAgICAgICRncmF5LTgwMCAhZGVmYXVsdDtcblxuJHRoZW1lLWNvbG9yczogKCkgIWRlZmF1bHQ7XG4vLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2Nzcy9kb2xsYXItdmFyaWFibGUtZGVmYXVsdFxuJHRoZW1lLWNvbG9yczogbWFwLW1lcmdlKFxuICAoXG4gICAgXCJwcmltYXJ5XCI6ICAgICRwcmltYXJ5LFxuICAgIFwic2Vjb25kYXJ5XCI6ICAkc2Vjb25kYXJ5LFxuICAgIFwic3VjY2Vzc1wiOiAgICAkc3VjY2VzcyxcbiAgICBcImluZm9cIjogICAgICAgJGluZm8sXG4gICAgXCJ3YXJuaW5nXCI6ICAgICR3YXJuaW5nLFxuICAgIFwiZGFuZ2VyXCI6ICAgICAkZGFuZ2VyLFxuICAgIFwibGlnaHRcIjogICAgICAkbGlnaHQsXG4gICAgXCJkYXJrXCI6ICAgICAgICRkYXJrXG4gICksXG4gICR0aGVtZS1jb2xvcnNcbik7XG5cbi8vIFNldCBhIHNwZWNpZmljIGp1bXAgcG9pbnQgZm9yIHJlcXVlc3RpbmcgY29sb3IganVtcHNcbiR0aGVtZS1jb2xvci1pbnRlcnZhbDogICAgICA4JSAhZGVmYXVsdDtcblxuLy8gVGhlIHlpcSBsaWdodG5lc3MgdmFsdWUgdGhhdCBkZXRlcm1pbmVzIHdoZW4gdGhlIGxpZ2h0bmVzcyBvZiBjb2xvciBjaGFuZ2VzIGZyb20gXCJkYXJrXCIgdG8gXCJsaWdodFwiLiBBY2NlcHRhYmxlIHZhbHVlcyBhcmUgYmV0d2VlbiAwIGFuZCAyNTUuXG4keWlxLWNvbnRyYXN0ZWQtdGhyZXNob2xkOiAgMTUwICFkZWZhdWx0O1xuXG4vLyBDdXN0b21pemUgdGhlIGxpZ2h0IGFuZCBkYXJrIHRleHQgY29sb3JzIGZvciB1c2UgaW4gb3VyIFlJUSBjb2xvciBjb250cmFzdCBmdW5jdGlvbi5cbiR5aXEtdGV4dC1kYXJrOiAgICAgICAgICAgICAkZ3JheS05MDAgIWRlZmF1bHQ7XG4keWlxLXRleHQtbGlnaHQ6ICAgICAgICAgICAgJHdoaXRlICFkZWZhdWx0O1xuXG5cbi8vIE9wdGlvbnNcbi8vXG4vLyBRdWlja2x5IG1vZGlmeSBnbG9iYWwgc3R5bGluZyBieSBlbmFibGluZyBvciBkaXNhYmxpbmcgb3B0aW9uYWwgZmVhdHVyZXMuXG5cbiRlbmFibGUtY2FyZXQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuJGVuYWJsZS1yb3VuZGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kZW5hYmxlLXNoYWRvd3M6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kZW5hYmxlLWdyYWRpZW50czogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kZW5hYmxlLXRyYW5zaXRpb25zOiAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRlbmFibGUtcHJlZmVycy1yZWR1Y2VkLW1vdGlvbi1tZWRpYS1xdWVyeTogICB0cnVlICFkZWZhdWx0O1xuJGVuYWJsZS1ob3Zlci1tZWRpYS1xdWVyeTogICAgICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0OyAvLyBEZXByZWNhdGVkLCBubyBsb25nZXIgYWZmZWN0cyBhbnkgY29tcGlsZWQgQ1NTXG4kZW5hYmxlLWdyaWQtY2xhc3NlczogICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRlbmFibGUtcG9pbnRlci1jdXJzb3ItZm9yLWJ1dHRvbnM6ICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuJGVuYWJsZS1wcmludC1zdHlsZXM6ICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kZW5hYmxlLXJlc3BvbnNpdmUtZm9udC1zaXplczogICAgICAgICAgICAgICAgZmFsc2UgIWRlZmF1bHQ7XG4kZW5hYmxlLXZhbGlkYXRpb24taWNvbnM6ICAgICAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRlbmFibGUtZGVwcmVjYXRpb24tbWVzc2FnZXM6ICAgICAgICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuXG5cbi8vIFNwYWNpbmdcbi8vXG4vLyBDb250cm9sIHRoZSBkZWZhdWx0IHN0eWxpbmcgb2YgbW9zdCBCb290c3RyYXAgZWxlbWVudHMgYnkgbW9kaWZ5aW5nIHRoZXNlXG4vLyB2YXJpYWJsZXMuIE1vc3RseSBmb2N1c2VkIG9uIHNwYWNpbmcuXG4vLyBZb3UgY2FuIGFkZCBtb3JlIGVudHJpZXMgdG8gdGhlICRzcGFjZXJzIG1hcCwgc2hvdWxkIHlvdSBuZWVkIG1vcmUgdmFyaWF0aW9uLlxuXG4kc3BhY2VyOiAxcmVtICFkZWZhdWx0O1xuJHNwYWNlcnM6ICgpICFkZWZhdWx0O1xuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWRlZmF1bHRcbiRzcGFjZXJzOiBtYXAtbWVyZ2UoXG4gIChcbiAgICAwOiAwLFxuICAgIDE6ICgkc3BhY2VyICogLjI1KSxcbiAgICAyOiAoJHNwYWNlciAqIC41KSxcbiAgICAzOiAkc3BhY2VyLFxuICAgIDQ6ICgkc3BhY2VyICogMS41KSxcbiAgICA1OiAoJHNwYWNlciAqIDMpXG4gICksXG4gICRzcGFjZXJzXG4pO1xuXG4vLyBUaGlzIHZhcmlhYmxlIGFmZmVjdHMgdGhlIGAuaC0qYCBhbmQgYC53LSpgIGNsYXNzZXMuXG4kc2l6ZXM6ICgpICFkZWZhdWx0O1xuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWRlZmF1bHRcbiRzaXplczogbWFwLW1lcmdlKFxuICAoXG4gICAgMjU6IDI1JSxcbiAgICA1MDogNTAlLFxuICAgIDc1OiA3NSUsXG4gICAgMTAwOiAxMDAlLFxuICAgIGF1dG86IGF1dG9cbiAgKSxcbiAgJHNpemVzXG4pO1xuXG5cbi8vIEJvZHlcbi8vXG4vLyBTZXR0aW5ncyBmb3IgdGhlIGA8Ym9keT5gIGVsZW1lbnQuXG5cbiRib2R5LWJnOiAgICAgICAgICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XG4kYm9keS1jb2xvcjogICAgICAgICAgICAgICAgJGdyYXktOTAwICFkZWZhdWx0O1xuXG5cbi8vIExpbmtzXG4vL1xuLy8gU3R5bGUgYW5jaG9yIGVsZW1lbnRzLlxuXG4kbGluay1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVtZS1jb2xvcihcInByaW1hcnlcIikgIWRlZmF1bHQ7XG4kbGluay1kZWNvcmF0aW9uOiAgICAgICAgICAgICAgICAgICAgICAgICBub25lICFkZWZhdWx0O1xuJGxpbmstaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgZGFya2VuKCRsaW5rLWNvbG9yLCAxNSUpICFkZWZhdWx0O1xuJGxpbmstaG92ZXItZGVjb3JhdGlvbjogICAgICAgICAgICAgICAgICAgdW5kZXJsaW5lICFkZWZhdWx0O1xuLy8gRGFya2VuIHBlcmNlbnRhZ2UgZm9yIGxpbmtzIHdpdGggYC50ZXh0LSpgIGNsYXNzIChlLmcuIGAudGV4dC1zdWNjZXNzYClcbiRlbXBoYXNpemVkLWxpbmstaG92ZXItZGFya2VuLXBlcmNlbnRhZ2U6IDE1JSAhZGVmYXVsdDtcblxuLy8gUGFyYWdyYXBoc1xuLy9cbi8vIFN0eWxlIHAgZWxlbWVudC5cblxuJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tOiAgIDFyZW0gIWRlZmF1bHQ7XG5cblxuLy8gR3JpZCBicmVha3BvaW50c1xuLy9cbi8vIERlZmluZSB0aGUgbWluaW11bSBkaW1lbnNpb25zIGF0IHdoaWNoIHlvdXIgbGF5b3V0IHdpbGwgY2hhbmdlLFxuLy8gYWRhcHRpbmcgdG8gZGlmZmVyZW50IHNjcmVlbiBzaXplcywgZm9yIHVzZSBpbiBtZWRpYSBxdWVyaWVzLlxuXG4kZ3JpZC1icmVha3BvaW50czogKFxuICB4czogMCxcbiAgc206IDU3NnB4LFxuICBtZDogNzY4cHgsXG4gIGxnOiA5OTJweCxcbiAgeGw6IDEyMDBweFxuKSAhZGVmYXVsdDtcblxuQGluY2x1ZGUgX2Fzc2VydC1hc2NlbmRpbmcoJGdyaWQtYnJlYWtwb2ludHMsIFwiJGdyaWQtYnJlYWtwb2ludHNcIik7XG5AaW5jbHVkZSBfYXNzZXJ0LXN0YXJ0cy1hdC16ZXJvKCRncmlkLWJyZWFrcG9pbnRzLCBcIiRncmlkLWJyZWFrcG9pbnRzXCIpO1xuXG5cbi8vIEdyaWQgY29udGFpbmVyc1xuLy9cbi8vIERlZmluZSB0aGUgbWF4aW11bSB3aWR0aCBvZiBgLmNvbnRhaW5lcmAgZm9yIGRpZmZlcmVudCBzY3JlZW4gc2l6ZXMuXG5cbiRjb250YWluZXItbWF4LXdpZHRoczogKFxuICBzbTogNTQwcHgsXG4gIG1kOiA3MjBweCxcbiAgbGc6IDk2MHB4LFxuICB4bDogMTE0MHB4XG4pICFkZWZhdWx0O1xuXG5AaW5jbHVkZSBfYXNzZXJ0LWFzY2VuZGluZygkY29udGFpbmVyLW1heC13aWR0aHMsIFwiJGNvbnRhaW5lci1tYXgtd2lkdGhzXCIpO1xuXG5cbi8vIEdyaWQgY29sdW1uc1xuLy9cbi8vIFNldCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgYW5kIHNwZWNpZnkgdGhlIHdpZHRoIG9mIHRoZSBndXR0ZXJzLlxuXG4kZ3JpZC1jb2x1bW5zOiAgICAgICAgICAgICAgICAxMiAhZGVmYXVsdDtcbiRncmlkLWd1dHRlci13aWR0aDogICAgICAgICAgIDMwcHggIWRlZmF1bHQ7XG5cblxuLy8gQ29tcG9uZW50c1xuLy9cbi8vIERlZmluZSBjb21tb24gcGFkZGluZyBhbmQgYm9yZGVyIHJhZGl1cyBzaXplcyBhbmQgbW9yZS5cblxuJGxpbmUtaGVpZ2h0LWxnOiAgICAgICAgICAgICAgMS41ICFkZWZhdWx0O1xuJGxpbmUtaGVpZ2h0LXNtOiAgICAgICAgICAgICAgMS41ICFkZWZhdWx0O1xuXG4kYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAxcHggIWRlZmF1bHQ7XG4kYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAkZ3JheS0zMDAgIWRlZmF1bHQ7XG5cbiRib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgIC4yNXJlbSAhZGVmYXVsdDtcbiRib3JkZXItcmFkaXVzLWxnOiAgICAgICAgICAgIC4zcmVtICFkZWZhdWx0O1xuJGJvcmRlci1yYWRpdXMtc206ICAgICAgICAgICAgLjJyZW0gIWRlZmF1bHQ7XG5cbiRyb3VuZGVkLXBpbGw6ICAgICAgICAgICAgICAgIDUwcmVtICFkZWZhdWx0O1xuXG4kYm94LXNoYWRvdy1zbTogICAgICAgICAgICAgICAwIC4xMjVyZW0gLjI1cmVtIHJnYmEoJGJsYWNrLCAuMDc1KSAhZGVmYXVsdDtcbiRib3gtc2hhZG93OiAgICAgICAgICAgICAgICAgIDAgLjVyZW0gMXJlbSByZ2JhKCRibGFjaywgLjE1KSAhZGVmYXVsdDtcbiRib3gtc2hhZG93LWxnOiAgICAgICAgICAgICAgIDAgMXJlbSAzcmVtIHJnYmEoJGJsYWNrLCAuMTc1KSAhZGVmYXVsdDtcblxuJGNvbXBvbmVudC1hY3RpdmUtY29sb3I6ICAgICAgJHdoaXRlICFkZWZhdWx0O1xuJGNvbXBvbmVudC1hY3RpdmUtYmc6ICAgICAgICAgdGhlbWUtY29sb3IoXCJwcmltYXJ5XCIpICFkZWZhdWx0O1xuXG4kY2FyZXQtd2lkdGg6ICAgICAgICAgICAgICAgICAuM2VtICFkZWZhdWx0O1xuJGNhcmV0LXZlcnRpY2FsLWFsaWduOiAgICAgICAgJGNhcmV0LXdpZHRoICogLjg1ICFkZWZhdWx0O1xuJGNhcmV0LXNwYWNpbmc6ICAgICAgICAgICAgICAgJGNhcmV0LXdpZHRoICogLjg1ICFkZWZhdWx0O1xuXG4kdHJhbnNpdGlvbi1iYXNlOiAgICAgICAgICAgICBhbGwgLjJzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuJHRyYW5zaXRpb24tZmFkZTogICAgICAgICAgICAgb3BhY2l0eSAuMTVzIGxpbmVhciAhZGVmYXVsdDtcbiR0cmFuc2l0aW9uLWNvbGxhcHNlOiAgICAgICAgIGhlaWdodCAuMzVzIGVhc2UgIWRlZmF1bHQ7XG5cbiRlbWJlZC1yZXNwb25zaXZlLWFzcGVjdC1yYXRpb3M6ICgpICFkZWZhdWx0O1xuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWRlZmF1bHRcbiRlbWJlZC1yZXNwb25zaXZlLWFzcGVjdC1yYXRpb3M6IGpvaW4oXG4gIChcbiAgICAoMjEgOSksXG4gICAgKDE2IDkpLFxuICAgICg0IDMpLFxuICAgICgxIDEpLFxuICApLFxuICAkZW1iZWQtcmVzcG9uc2l2ZS1hc3BlY3QtcmF0aW9zXG4pO1xuXG4vLyBUeXBvZ3JhcGh5XG4vL1xuLy8gRm9udCwgbGluZS1oZWlnaHQsIGFuZCBjb2xvciBmb3IgYm9keSB0ZXh0LCBoZWFkaW5ncywgYW5kIG1vcmUuXG5cbi8vIHN0eWxlbGludC1kaXNhYmxlIHZhbHVlLWtleXdvcmQtY2FzZVxuJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6ICAgICAgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBBcmlhbCwgXCJOb3RvIFNhbnNcIiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiICFkZWZhdWx0O1xuJGZvbnQtZmFtaWx5LW1vbm9zcGFjZTogICAgICAgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBNb25hY28sIENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcbiRmb250LWZhbWlseS1iYXNlOiAgICAgICAgICAgICRmb250LWZhbWlseS1zYW5zLXNlcmlmICFkZWZhdWx0O1xuLy8gc3R5bGVsaW50LWVuYWJsZSB2YWx1ZS1rZXl3b3JkLWNhc2VcblxuJGZvbnQtc2l6ZS1iYXNlOiAgICAgICAgICAgICAgMXJlbSAhZGVmYXVsdDsgLy8gQXNzdW1lcyB0aGUgYnJvd3NlciBkZWZhdWx0LCB0eXBpY2FsbHkgYDE2cHhgXG4kZm9udC1zaXplLWxnOiAgICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAxLjI1ICFkZWZhdWx0O1xuJGZvbnQtc2l6ZS1zbTogICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICogLjg3NSAhZGVmYXVsdDtcblxuJGZvbnQtd2VpZ2h0LWxpZ2h0ZXI6ICAgICAgICAgbGlnaHRlciAhZGVmYXVsdDtcbiRmb250LXdlaWdodC1saWdodDogICAgICAgICAgIDMwMCAhZGVmYXVsdDtcbiRmb250LXdlaWdodC1ub3JtYWw6ICAgICAgICAgIDQwMCAhZGVmYXVsdDtcbiRmb250LXdlaWdodC1ib2xkOiAgICAgICAgICAgIDcwMCAhZGVmYXVsdDtcbiRmb250LXdlaWdodC1ib2xkZXI6ICAgICAgICAgIGJvbGRlciAhZGVmYXVsdDtcblxuJGZvbnQtd2VpZ2h0LWJhc2U6ICAgICAgICAgICAgJGZvbnQtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcbiRsaW5lLWhlaWdodC1iYXNlOiAgICAgICAgICAgIDEuNSAhZGVmYXVsdDtcblxuJGgxLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICogMi41ICFkZWZhdWx0O1xuJGgyLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICogMiAhZGVmYXVsdDtcbiRoMy1mb250LXNpemU6ICAgICAgICAgICAgICAgICRmb250LXNpemUtYmFzZSAqIDEuNzUgIWRlZmF1bHQ7XG4kaDQtZm9udC1zaXplOiAgICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAxLjUgIWRlZmF1bHQ7XG4kaDUtZm9udC1zaXplOiAgICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAxLjI1ICFkZWZhdWx0O1xuJGg2LWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICFkZWZhdWx0O1xuXG4kaGVhZGluZ3MtbWFyZ2luLWJvdHRvbTogICAgICAkc3BhY2VyIC8gMiAhZGVmYXVsdDtcbiRoZWFkaW5ncy1mb250LWZhbWlseTogICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kaGVhZGluZ3MtZm9udC13ZWlnaHQ6ICAgICAgICA1MDAgIWRlZmF1bHQ7XG4kaGVhZGluZ3MtbGluZS1oZWlnaHQ6ICAgICAgICAxLjIgIWRlZmF1bHQ7XG4kaGVhZGluZ3MtY29sb3I6ICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4kZGlzcGxheTEtc2l6ZTogICAgICAgICAgICAgICA2cmVtICFkZWZhdWx0O1xuJGRpc3BsYXkyLXNpemU6ICAgICAgICAgICAgICAgNS41cmVtICFkZWZhdWx0O1xuJGRpc3BsYXkzLXNpemU6ICAgICAgICAgICAgICAgNC41cmVtICFkZWZhdWx0O1xuJGRpc3BsYXk0LXNpemU6ICAgICAgICAgICAgICAgMy41cmVtICFkZWZhdWx0O1xuXG4kZGlzcGxheTEtd2VpZ2h0OiAgICAgICAgICAgICAzMDAgIWRlZmF1bHQ7XG4kZGlzcGxheTItd2VpZ2h0OiAgICAgICAgICAgICAzMDAgIWRlZmF1bHQ7XG4kZGlzcGxheTMtd2VpZ2h0OiAgICAgICAgICAgICAzMDAgIWRlZmF1bHQ7XG4kZGlzcGxheTQtd2VpZ2h0OiAgICAgICAgICAgICAzMDAgIWRlZmF1bHQ7XG4kZGlzcGxheS1saW5lLWhlaWdodDogICAgICAgICAkaGVhZGluZ3MtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRsZWFkLWZvbnQtc2l6ZTogICAgICAgICAgICAgICRmb250LXNpemUtYmFzZSAqIDEuMjUgIWRlZmF1bHQ7XG4kbGVhZC1mb250LXdlaWdodDogICAgICAgICAgICAzMDAgIWRlZmF1bHQ7XG5cbiRzbWFsbC1mb250LXNpemU6ICAgICAgICAgICAgIDgwJSAhZGVmYXVsdDtcblxuJHRleHQtbXV0ZWQ6ICAgICAgICAgICAgICAgICAgJGdyYXktNjAwICFkZWZhdWx0O1xuXG4kYmxvY2txdW90ZS1zbWFsbC1jb2xvcjogICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG4kYmxvY2txdW90ZS1zbWFsbC1mb250LXNpemU6ICAkc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuJGJsb2NrcXVvdGUtZm9udC1zaXplOiAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICogMS4yNSAhZGVmYXVsdDtcblxuJGhyLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgcmdiYSgkYmxhY2ssIC4xKSAhZGVmYXVsdDtcbiRoci1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICRib3JkZXItd2lkdGggIWRlZmF1bHQ7XG5cbiRtYXJrLXBhZGRpbmc6ICAgICAgICAgICAgICAgIC4yZW0gIWRlZmF1bHQ7XG5cbiRkdC1mb250LXdlaWdodDogICAgICAgICAgICAgICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4ka2JkLWJveC1zaGFkb3c6ICAgICAgICAgICAgICBpbnNldCAwIC0uMXJlbSAwIHJnYmEoJGJsYWNrLCAuMjUpICFkZWZhdWx0O1xuJG5lc3RlZC1rYmQtZm9udC13ZWlnaHQ6ICAgICAgJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbiRsaXN0LWlubGluZS1wYWRkaW5nOiAgICAgICAgIC41cmVtICFkZWZhdWx0O1xuXG4kbWFyay1iZzogICAgICAgICAgICAgICAgICAgICAjZmNmOGUzICFkZWZhdWx0O1xuXG4kaHItbWFyZ2luLXk6ICAgICAgICAgICAgICAgICAkc3BhY2VyICFkZWZhdWx0O1xuXG5cbi8vIFRhYmxlc1xuLy9cbi8vIEN1c3RvbWl6ZXMgdGhlIGAudGFibGVgIGNvbXBvbmVudCB3aXRoIGJhc2ljIHZhbHVlcywgZWFjaCB1c2VkIGFjcm9zcyBhbGwgdGFibGUgdmFyaWF0aW9ucy5cblxuJHRhYmxlLWNlbGwtcGFkZGluZzogICAgICAgICAgLjc1cmVtICFkZWZhdWx0O1xuJHRhYmxlLWNlbGwtcGFkZGluZy1zbTogICAgICAgLjNyZW0gIWRlZmF1bHQ7XG5cbiR0YWJsZS1jb2xvcjogICAgICAgICAgICAgICAgICRib2R5LWNvbG9yICFkZWZhdWx0O1xuJHRhYmxlLWJnOiAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiR0YWJsZS1hY2NlbnQtYmc6ICAgICAgICAgICAgIHJnYmEoJGJsYWNrLCAuMDUpICFkZWZhdWx0O1xuJHRhYmxlLWhvdmVyLWNvbG9yOiAgICAgICAgICAgJHRhYmxlLWNvbG9yICFkZWZhdWx0O1xuJHRhYmxlLWhvdmVyLWJnOiAgICAgICAgICAgICAgcmdiYSgkYmxhY2ssIC4wNzUpICFkZWZhdWx0O1xuJHRhYmxlLWFjdGl2ZS1iZzogICAgICAgICAgICAgJHRhYmxlLWhvdmVyLWJnICFkZWZhdWx0O1xuXG4kdGFibGUtYm9yZGVyLXdpZHRoOiAgICAgICAgICAkYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJHRhYmxlLWJvcmRlci1jb2xvcjogICAgICAgICAgJGJvcmRlci1jb2xvciAhZGVmYXVsdDtcblxuJHRhYmxlLWhlYWQtYmc6ICAgICAgICAgICAgICAgJGdyYXktMjAwICFkZWZhdWx0O1xuJHRhYmxlLWhlYWQtY29sb3I6ICAgICAgICAgICAgJGdyYXktNzAwICFkZWZhdWx0O1xuXG4kdGFibGUtZGFyay1jb2xvcjogICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XG4kdGFibGUtZGFyay1iZzogICAgICAgICAgICAgICAkZ3JheS04MDAgIWRlZmF1bHQ7XG4kdGFibGUtZGFyay1hY2NlbnQtYmc6ICAgICAgICByZ2JhKCR3aGl0ZSwgLjA1KSAhZGVmYXVsdDtcbiR0YWJsZS1kYXJrLWhvdmVyLWNvbG9yOiAgICAgICR0YWJsZS1kYXJrLWNvbG9yICFkZWZhdWx0O1xuJHRhYmxlLWRhcmstaG92ZXItYmc6ICAgICAgICAgcmdiYSgkd2hpdGUsIC4wNzUpICFkZWZhdWx0O1xuJHRhYmxlLWRhcmstYm9yZGVyLWNvbG9yOiAgICAgbGlnaHRlbigkdGFibGUtZGFyay1iZywgNy41JSkgIWRlZmF1bHQ7XG4kdGFibGUtZGFyay1jb2xvcjogICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XG5cbiR0YWJsZS1zdHJpcGVkLW9yZGVyOiAgICAgICAgIG9kZCAhZGVmYXVsdDtcblxuJHRhYmxlLWNhcHRpb24tY29sb3I6ICAgICAgICAgJHRleHQtbXV0ZWQgIWRlZmF1bHQ7XG5cbiR0YWJsZS1iZy1sZXZlbDogICAgICAgICAgICAgIC05ICFkZWZhdWx0O1xuJHRhYmxlLWJvcmRlci1sZXZlbDogICAgICAgICAgLTYgIWRlZmF1bHQ7XG5cblxuLy8gQnV0dG9ucyArIEZvcm1zXG4vL1xuLy8gU2hhcmVkIHZhcmlhYmxlcyB0aGF0IGFyZSByZWFzc2lnbmVkIHRvIGAkaW5wdXQtYCBhbmQgYCRidG4tYCBzcGVjaWZpYyB2YXJpYWJsZXMuXG5cbiRpbnB1dC1idG4tcGFkZGluZy15OiAgICAgICAgIC4zNzVyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLXBhZGRpbmcteDogICAgICAgICAuNzVyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLWZvbnQtZmFtaWx5OiAgICAgICBudWxsICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1mb250LXNpemU6ICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1saW5lLWhlaWdodDogICAgICAgJGxpbmUtaGVpZ2h0LWJhc2UgIWRlZmF1bHQ7XG5cbiRpbnB1dC1idG4tZm9jdXMtd2lkdGg6ICAgICAgIC4ycmVtICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1mb2N1cy1jb2xvcjogICAgICAgcmdiYSgkY29tcG9uZW50LWFjdGl2ZS1iZywgLjI1KSAhZGVmYXVsdDtcbiRpbnB1dC1idG4tZm9jdXMtYm94LXNoYWRvdzogIDAgMCAwICRpbnB1dC1idG4tZm9jdXMtd2lkdGggJGlucHV0LWJ0bi1mb2N1cy1jb2xvciAhZGVmYXVsdDtcblxuJGlucHV0LWJ0bi1wYWRkaW5nLXktc206ICAgICAgLjI1cmVtICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1wYWRkaW5nLXgtc206ICAgICAgLjVyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLWZvbnQtc2l6ZS1zbTogICAgICAkZm9udC1zaXplLXNtICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1saW5lLWhlaWdodC1zbTogICAgJGxpbmUtaGVpZ2h0LXNtICFkZWZhdWx0O1xuXG4kaW5wdXQtYnRuLXBhZGRpbmcteS1sZzogICAgICAuNXJlbSAhZGVmYXVsdDtcbiRpbnB1dC1idG4tcGFkZGluZy14LWxnOiAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLWZvbnQtc2l6ZS1sZzogICAgICAkZm9udC1zaXplLWxnICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1saW5lLWhlaWdodC1sZzogICAgJGxpbmUtaGVpZ2h0LWxnICFkZWZhdWx0O1xuXG4kaW5wdXQtYnRuLWJvcmRlci13aWR0aDogICAgICAkYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuXG5cbi8vIEJ1dHRvbnNcbi8vXG4vLyBGb3IgZWFjaCBvZiBCb290c3RyYXAncyBidXR0b25zLCBkZWZpbmUgdGV4dCwgYmFja2dyb3VuZCwgYW5kIGJvcmRlciBjb2xvci5cblxuJGJ0bi1wYWRkaW5nLXk6ICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1wYWRkaW5nLXkgIWRlZmF1bHQ7XG4kYnRuLXBhZGRpbmcteDogICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteCAhZGVmYXVsdDtcbiRidG4tZm9udC1mYW1pbHk6ICAgICAgICAgICAgICRpbnB1dC1idG4tZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kYnRuLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAkaW5wdXQtYnRuLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRidG4tbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICRpbnB1dC1idG4tbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRidG4tcGFkZGluZy15LXNtOiAgICAgICAgICAgICRpbnB1dC1idG4tcGFkZGluZy15LXNtICFkZWZhdWx0O1xuJGJ0bi1wYWRkaW5nLXgtc206ICAgICAgICAgICAgJGlucHV0LWJ0bi1wYWRkaW5nLXgtc20gIWRlZmF1bHQ7XG4kYnRuLWZvbnQtc2l6ZS1zbTogICAgICAgICAgICAkaW5wdXQtYnRuLWZvbnQtc2l6ZS1zbSAhZGVmYXVsdDtcbiRidG4tbGluZS1oZWlnaHQtc206ICAgICAgICAgICRpbnB1dC1idG4tbGluZS1oZWlnaHQtc20gIWRlZmF1bHQ7XG5cbiRidG4tcGFkZGluZy15LWxnOiAgICAgICAgICAgICRpbnB1dC1idG4tcGFkZGluZy15LWxnICFkZWZhdWx0O1xuJGJ0bi1wYWRkaW5nLXgtbGc6ICAgICAgICAgICAgJGlucHV0LWJ0bi1wYWRkaW5nLXgtbGcgIWRlZmF1bHQ7XG4kYnRuLWZvbnQtc2l6ZS1sZzogICAgICAgICAgICAkaW5wdXQtYnRuLWZvbnQtc2l6ZS1sZyAhZGVmYXVsdDtcbiRidG4tbGluZS1oZWlnaHQtbGc6ICAgICAgICAgICRpbnB1dC1idG4tbGluZS1oZWlnaHQtbGcgIWRlZmF1bHQ7XG5cbiRidG4tYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICRpbnB1dC1idG4tYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuXG4kYnRuLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGJ0bi1ib3gtc2hhZG93OiAgICAgICAgICAgICAgaW5zZXQgMCAxcHggMCByZ2JhKCR3aGl0ZSwgLjE1KSwgMCAxcHggMXB4IHJnYmEoJGJsYWNrLCAuMDc1KSAhZGVmYXVsdDtcbiRidG4tZm9jdXMtd2lkdGg6ICAgICAgICAgICAgICRpbnB1dC1idG4tZm9jdXMtd2lkdGggIWRlZmF1bHQ7XG4kYnRuLWZvY3VzLWJveC1zaGFkb3c6ICAgICAgICAkaW5wdXQtYnRuLWZvY3VzLWJveC1zaGFkb3cgIWRlZmF1bHQ7XG4kYnRuLWRpc2FibGVkLW9wYWNpdHk6ICAgICAgICAuNjUgIWRlZmF1bHQ7XG4kYnRuLWFjdGl2ZS1ib3gtc2hhZG93OiAgICAgICBpbnNldCAwIDNweCA1cHggcmdiYSgkYmxhY2ssIC4xMjUpICFkZWZhdWx0O1xuXG4kYnRuLWxpbmstZGlzYWJsZWQtY29sb3I6ICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG5cbiRidG4tYmxvY2stc3BhY2luZy15OiAgICAgICAgIC41cmVtICFkZWZhdWx0O1xuXG4vLyBBbGxvd3MgZm9yIGN1c3RvbWl6aW5nIGJ1dHRvbiByYWRpdXMgaW5kZXBlbmRlbnRseSBmcm9tIGdsb2JhbCBib3JkZXIgcmFkaXVzXG4kYnRuLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAkYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcbiRidG4tYm9yZGVyLXJhZGl1cy1sZzogICAgICAgICRib3JkZXItcmFkaXVzLWxnICFkZWZhdWx0O1xuJGJ0bi1ib3JkZXItcmFkaXVzLXNtOiAgICAgICAgJGJvcmRlci1yYWRpdXMtc20gIWRlZmF1bHQ7XG5cbiRidG4tdHJhbnNpdGlvbjogICAgICAgICAgICAgIGNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsIGJhY2tncm91bmQtY29sb3IgLjE1cyBlYXNlLWluLW91dCwgYm9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsIGJveC1zaGFkb3cgLjE1cyBlYXNlLWluLW91dCAhZGVmYXVsdDtcblxuXG4vLyBGb3Jtc1xuXG4kbGFiZWwtbWFyZ2luLWJvdHRvbTogICAgICAgICAgICAgICAgICAgLjVyZW0gIWRlZmF1bHQ7XG5cbiRpbnB1dC1wYWRkaW5nLXk6ICAgICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteSAhZGVmYXVsdDtcbiRpbnB1dC1wYWRkaW5nLXg6ICAgICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteCAhZGVmYXVsdDtcbiRpbnB1dC1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJGlucHV0LWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICRpbnB1dC1idG4tZm9udC1zaXplICFkZWZhdWx0O1xuJGlucHV0LWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICRmb250LXdlaWdodC1iYXNlICFkZWZhdWx0O1xuJGlucHV0LWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICRpbnB1dC1idG4tbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRpbnB1dC1wYWRkaW5nLXktc206ICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteS1zbSAhZGVmYXVsdDtcbiRpbnB1dC1wYWRkaW5nLXgtc206ICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteC1zbSAhZGVmYXVsdDtcbiRpbnB1dC1mb250LXNpemUtc206ICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLWZvbnQtc2l6ZS1zbSAhZGVmYXVsdDtcbiRpbnB1dC1saW5lLWhlaWdodC1zbTogICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLWxpbmUtaGVpZ2h0LXNtICFkZWZhdWx0O1xuXG4kaW5wdXQtcGFkZGluZy15LWxnOiAgICAgICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1wYWRkaW5nLXktbGcgIWRlZmF1bHQ7XG4kaW5wdXQtcGFkZGluZy14LWxnOiAgICAgICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1wYWRkaW5nLXgtbGcgIWRlZmF1bHQ7XG4kaW5wdXQtZm9udC1zaXplLWxnOiAgICAgICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1mb250LXNpemUtbGcgIWRlZmF1bHQ7XG4kaW5wdXQtbGluZS1oZWlnaHQtbGc6ICAgICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1saW5lLWhlaWdodC1sZyAhZGVmYXVsdDtcblxuJGlucHV0LWJnOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcbiRpbnB1dC1kaXNhYmxlZC1iZzogICAgICAgICAgICAgICAgICAgICAkZ3JheS0yMDAgIWRlZmF1bHQ7XG5cbiRpbnB1dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAkZ3JheS03MDAgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgJGdyYXktNDAwICFkZWZhdWx0O1xuJGlucHV0LWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICAgICRpbnB1dC1idG4tYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJGlucHV0LWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgIGluc2V0IDAgMXB4IDFweCByZ2JhKCRibGFjaywgLjA3NSkgIWRlZmF1bHQ7XG5cbiRpbnB1dC1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcbiRpbnB1dC1ib3JkZXItcmFkaXVzLWxnOiAgICAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cy1sZyAhZGVmYXVsdDtcbiRpbnB1dC1ib3JkZXItcmFkaXVzLXNtOiAgICAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cy1zbSAhZGVmYXVsdDtcblxuJGlucHV0LWZvY3VzLWJnOiAgICAgICAgICAgICAgICAgICAgICAgICRpbnB1dC1iZyAhZGVmYXVsdDtcbiRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICBsaWdodGVuKCRjb21wb25lbnQtYWN0aXZlLWJnLCAyNSUpICFkZWZhdWx0O1xuJGlucHV0LWZvY3VzLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICRpbnB1dC1jb2xvciAhZGVmYXVsdDtcbiRpbnB1dC1mb2N1cy13aWR0aDogICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLWZvY3VzLXdpZHRoICFkZWZhdWx0O1xuJGlucHV0LWZvY3VzLWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgICRpbnB1dC1idG4tZm9jdXMtYm94LXNoYWRvdyAhZGVmYXVsdDtcblxuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAgICAgICAgICAgICAgICRncmF5LTYwMCAhZGVmYXVsdDtcbiRpbnB1dC1wbGFpbnRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAkYm9keS1jb2xvciAhZGVmYXVsdDtcblxuJGlucHV0LWhlaWdodC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICRpbnB1dC1ib3JkZXItd2lkdGggKiAyICFkZWZhdWx0O1xuXG4kaW5wdXQtaGVpZ2h0LWlubmVyOiAgICAgICAgICAgICAgICAgICAgY2FsYygjeyRpbnB1dC1saW5lLWhlaWdodCAqIDFlbX0gKyAjeyRpbnB1dC1wYWRkaW5nLXkgKiAyfSkgIWRlZmF1bHQ7XG4kaW5wdXQtaGVpZ2h0LWlubmVyLWhhbGY6ICAgICAgICAgICAgICAgY2FsYygjeyRpbnB1dC1saW5lLWhlaWdodCAqIC41ZW19ICsgI3skaW5wdXQtcGFkZGluZy15fSkgIWRlZmF1bHQ7XG4kaW5wdXQtaGVpZ2h0LWlubmVyLXF1YXJ0ZXI6ICAgICAgICAgICAgY2FsYygjeyRpbnB1dC1saW5lLWhlaWdodCAqIC4yNWVtfSArICN7JGlucHV0LXBhZGRpbmcteSAvIDJ9KSAhZGVmYXVsdDtcblxuJGlucHV0LWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGMoI3skaW5wdXQtbGluZS1oZWlnaHQgKiAxZW19ICsgI3skaW5wdXQtcGFkZGluZy15ICogMn0gKyAjeyRpbnB1dC1oZWlnaHQtYm9yZGVyfSkgIWRlZmF1bHQ7XG4kaW5wdXQtaGVpZ2h0LXNtOiAgICAgICAgICAgICAgICAgICAgICAgY2FsYygjeyRpbnB1dC1saW5lLWhlaWdodC1zbSAqIDFlbX0gKyAjeyRpbnB1dC1idG4tcGFkZGluZy15LXNtICogMn0gKyAjeyRpbnB1dC1oZWlnaHQtYm9yZGVyfSkgIWRlZmF1bHQ7XG4kaW5wdXQtaGVpZ2h0LWxnOiAgICAgICAgICAgICAgICAgICAgICAgY2FsYygjeyRpbnB1dC1saW5lLWhlaWdodC1sZyAqIDFlbX0gKyAjeyRpbnB1dC1idG4tcGFkZGluZy15LWxnICogMn0gKyAjeyRpbnB1dC1oZWlnaHQtYm9yZGVyfSkgIWRlZmF1bHQ7XG5cbiRpbnB1dC10cmFuc2l0aW9uOiAgICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3IgLjE1cyBlYXNlLWluLW91dCwgYm94LXNoYWRvdyAuMTVzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4kZm9ybS10ZXh0LW1hcmdpbi10b3A6ICAgICAgICAgICAgICAgICAgLjI1cmVtICFkZWZhdWx0O1xuXG4kZm9ybS1jaGVjay1pbnB1dC1ndXR0ZXI6ICAgICAgICAgICAgICAgMS4yNXJlbSAhZGVmYXVsdDtcbiRmb3JtLWNoZWNrLWlucHV0LW1hcmdpbi15OiAgICAgICAgICAgICAuM3JlbSAhZGVmYXVsdDtcbiRmb3JtLWNoZWNrLWlucHV0LW1hcmdpbi14OiAgICAgICAgICAgICAuMjVyZW0gIWRlZmF1bHQ7XG5cbiRmb3JtLWNoZWNrLWlubGluZS1tYXJnaW4teDogICAgICAgICAgICAuNzVyZW0gIWRlZmF1bHQ7XG4kZm9ybS1jaGVjay1pbmxpbmUtaW5wdXQtbWFyZ2luLXg6ICAgICAgLjMxMjVyZW0gIWRlZmF1bHQ7XG5cbiRmb3JtLWdyaWQtZ3V0dGVyLXdpZHRoOiAgICAgICAgICAgICAgICAxMHB4ICFkZWZhdWx0O1xuJGZvcm0tZ3JvdXAtbWFyZ2luLWJvdHRvbTogICAgICAgICAgICAgIDFyZW0gIWRlZmF1bHQ7XG5cbiRpbnB1dC1ncm91cC1hZGRvbi1jb2xvcjogICAgICAgICAgICAgICAkaW5wdXQtY29sb3IgIWRlZmF1bHQ7XG4kaW5wdXQtZ3JvdXAtYWRkb24tYmc6ICAgICAgICAgICAgICAgICAgJGdyYXktMjAwICFkZWZhdWx0O1xuJGlucHV0LWdyb3VwLWFkZG9uLWJvcmRlci1jb2xvcjogICAgICAgICRpbnB1dC1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG5cbiRjdXN0b20tZm9ybXMtdHJhbnNpdGlvbjogICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsIGJvcmRlci1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LCBib3gtc2hhZG93IC4xNXMgZWFzZS1pbi1vdXQgIWRlZmF1bHQ7XG5cbiRjdXN0b20tY29udHJvbC1ndXR0ZXI6ICAgICAgICAgICAgICAgICAuNXJlbSAhZGVmYXVsdDtcbiRjdXN0b20tY29udHJvbC1zcGFjZXIteDogICAgICAgICAgICAgICAxcmVtICFkZWZhdWx0O1xuXG4kY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLXNpemU6ICAgICAgICAgMXJlbSAhZGVmYXVsdDtcbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYmc6ICAgICAgICAgICAkaW5wdXQtYmcgIWRlZmF1bHQ7XG5cbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYmctc2l6ZTogICAgICA1MCUgNTAlICFkZWZhdWx0O1xuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1ib3gtc2hhZG93OiAgICRpbnB1dC1ib3gtc2hhZG93ICFkZWZhdWx0O1xuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1ib3JkZXItY29sb3I6ICRncmF5LTUwMCAhZGVmYXVsdDtcbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoOiAkaW5wdXQtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuXG4kY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWRpc2FibGVkLWJnOiAgICAgICAgICAkaW5wdXQtZGlzYWJsZWQtYmcgIWRlZmF1bHQ7XG4kY3VzdG9tLWNvbnRyb2wtbGFiZWwtZGlzYWJsZWQtY29sb3I6ICAgICAgICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG5cbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1jb2xvcjogICAgICAgICRjb21wb25lbnQtYWN0aXZlLWNvbG9yICFkZWZhdWx0O1xuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1jaGVja2VkLWJnOiAgICAgICAgICAgJGNvbXBvbmVudC1hY3RpdmUtYmcgIWRlZmF1bHQ7XG4kY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWNoZWNrZWQtZGlzYWJsZWQtYmc6ICByZ2JhKHRoZW1lLWNvbG9yKFwicHJpbWFyeVwiKSwgLjUpICFkZWZhdWx0O1xuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1jaGVja2VkLWJveC1zaGFkb3c6ICAgbm9uZSAhZGVmYXVsdDtcbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1ib3JkZXItY29sb3I6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1iZyAhZGVmYXVsdDtcblxuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1mb2N1cy1ib3gtc2hhZG93OiAgICAgJGlucHV0LWZvY3VzLWJveC1zaGFkb3cgIWRlZmF1bHQ7XG4kY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWZvY3VzLWJvcmRlci1jb2xvcjogICAkaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuXG4kY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWFjdGl2ZS1jb2xvcjogICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1jb2xvciAhZGVmYXVsdDtcbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYWN0aXZlLWJnOiAgICAgICAgICAgIGxpZ2h0ZW4oJGNvbXBvbmVudC1hY3RpdmUtYmcsIDM1JSkgIWRlZmF1bHQ7XG4kY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWFjdGl2ZS1ib3gtc2hhZG93OiAgICBub25lICFkZWZhdWx0O1xuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1hY3RpdmUtYm9yZGVyLWNvbG9yOiAgJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1hY3RpdmUtYmcgIWRlZmF1bHQ7XG5cbiRjdXN0b20tY2hlY2tib3gtaW5kaWNhdG9yLWJvcmRlci1yYWRpdXM6ICAgICAgICRib3JkZXItcmFkaXVzICFkZWZhdWx0O1xuJGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItaWNvbi1jaGVja2VkOiAgICAgICAgc3RyLXJlcGxhY2UodXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA4IDgnJTNlJTNjcGF0aCBmaWxsPScjeyRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1jb2xvcn0nIGQ9J002LjU2NC43NWwtMy41OSAzLjYxMi0xLjUzOC0xLjU1TDAgNC4yNiAyLjk3NCA3LjI1IDggMi4xOTN6Jy8lM2UlM2Mvc3ZnJTNlXCIpLCBcIiNcIiwgXCIlMjNcIikgIWRlZmF1bHQ7XG5cbiRjdXN0b20tY2hlY2tib3gtaW5kaWNhdG9yLWluZGV0ZXJtaW5hdGUtYmc6ICAgICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1iZyAhZGVmYXVsdDtcbiRjdXN0b20tY2hlY2tib3gtaW5kaWNhdG9yLWluZGV0ZXJtaW5hdGUtY29sb3I6ICAgICAgICAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWNoZWNrZWQtY29sb3IgIWRlZmF1bHQ7XG4kY3VzdG9tLWNoZWNrYm94LWluZGljYXRvci1pY29uLWluZGV0ZXJtaW5hdGU6ICAgICAgICAgc3RyLXJlcGxhY2UodXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA0IDQnJTNlJTNjcGF0aCBzdHJva2U9JyN7JGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItaW5kZXRlcm1pbmF0ZS1jb2xvcn0nIGQ9J00wIDJoNCcvJTNlJTNjL3N2ZyUzZVwiKSwgXCIjXCIsIFwiJTIzXCIpICFkZWZhdWx0O1xuJGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItaW5kZXRlcm1pbmF0ZS1ib3gtc2hhZG93OiAgIG5vbmUgIWRlZmF1bHQ7XG4kY3VzdG9tLWNoZWNrYm94LWluZGljYXRvci1pbmRldGVybWluYXRlLWJvcmRlci1jb2xvcjogJGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItaW5kZXRlcm1pbmF0ZS1iZyAhZGVmYXVsdDtcblxuJGN1c3RvbS1yYWRpby1pbmRpY2F0b3ItYm9yZGVyLXJhZGl1czogICAgICAgICAgNTAlICFkZWZhdWx0O1xuJGN1c3RvbS1yYWRpby1pbmRpY2F0b3ItaWNvbi1jaGVja2VkOiAgICAgICAgICAgc3RyLXJlcGxhY2UodXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9Jy00IC00IDggOCclM2UlM2NjaXJjbGUgcj0nMycgZmlsbD0nI3skY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWNoZWNrZWQtY29sb3J9Jy8lM2UlM2Mvc3ZnJTNlXCIpLCBcIiNcIiwgXCIlMjNcIikgIWRlZmF1bHQ7XG5cbiRjdXN0b20tc3dpdGNoLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3Itc2l6ZSAqIDEuNzUgIWRlZmF1bHQ7XG4kY3VzdG9tLXN3aXRjaC1pbmRpY2F0b3ItYm9yZGVyLXJhZGl1czogICAgICAgICAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLXNpemUgLyAyICFkZWZhdWx0O1xuJGN1c3RvbS1zd2l0Y2gtaW5kaWNhdG9yLXNpemU6ICAgICAgICAgICAgICAgICAgY2FsYygjeyRjdXN0b20tY29udHJvbC1pbmRpY2F0b3Itc2l6ZX0gLSAjeyRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoICogNH0pICFkZWZhdWx0O1xuXG4kY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXk6ICAgICAgICAgICAkaW5wdXQtcGFkZGluZy15ICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtcGFkZGluZy14OiAgICAgICAgICAgJGlucHV0LXBhZGRpbmcteCAhZGVmYXVsdDtcbiRjdXN0b20tc2VsZWN0LWZvbnQtZmFtaWx5OiAgICAgICAgICRpbnB1dC1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRjdXN0b20tc2VsZWN0LWZvbnQtc2l6ZTogICAgICAgICAgICRpbnB1dC1mb250LXNpemUgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1oZWlnaHQ6ICAgICAgICAgICAgICAkaW5wdXQtaGVpZ2h0ICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yLXBhZGRpbmc6ICAgMXJlbSAhZGVmYXVsdDsgLy8gRXh0cmEgcGFkZGluZyB0byBhY2NvdW50IGZvciB0aGUgcHJlc2VuY2Ugb2YgdGhlIGJhY2tncm91bmQtaW1hZ2UgYmFzZWQgaW5kaWNhdG9yXG4kY3VzdG9tLXNlbGVjdC1mb250LXdlaWdodDogICAgICAgICAkaW5wdXQtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1saW5lLWhlaWdodDogICAgICAgICAkaW5wdXQtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1jb2xvcjogICAgICAgICAgICAgICAkaW5wdXQtY29sb3IgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1kaXNhYmxlZC1jb2xvcjogICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1iZzogICAgICAgICAgICAgICAgICAkaW5wdXQtYmcgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1kaXNhYmxlZC1iZzogICAgICAgICAkZ3JheS0yMDAgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1iZy1zaXplOiAgICAgICAgICAgICA4cHggMTBweCAhZGVmYXVsdDsgLy8gSW4gcGl4ZWxzIGJlY2F1c2UgaW1hZ2UgZGltZW5zaW9uc1xuJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yLWNvbG9yOiAgICAgJGdyYXktODAwICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yOiAgICAgICAgICAgc3RyLXJlcGxhY2UodXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA0IDUnJTNlJTNjcGF0aCBmaWxsPScjeyRjdXN0b20tc2VsZWN0LWluZGljYXRvci1jb2xvcn0nIGQ9J00yIDBMMCAyaDR6bTAgNUwwIDNoNHonLyUzZSUzYy9zdmclM2VcIiksIFwiI1wiLCBcIiUyM1wiKSAhZGVmYXVsdDtcbiRjdXN0b20tc2VsZWN0LWJhY2tncm91bmQ6ICAgICAgICAgICRjdXN0b20tc2VsZWN0LWluZGljYXRvciBuby1yZXBlYXQgcmlnaHQgJGN1c3RvbS1zZWxlY3QtcGFkZGluZy14IGNlbnRlciAvICRjdXN0b20tc2VsZWN0LWJnLXNpemUgIWRlZmF1bHQ7IC8vIFVzZWQgc28gd2UgY2FuIGhhdmUgbXVsdGlwbGUgYmFja2dyb3VuZCBlbGVtZW50cyAoZS5nLiwgYXJyb3cgYW5kIGZlZWRiYWNrIGljb24pXG5cbiRjdXN0b20tc2VsZWN0LWZlZWRiYWNrLWljb24tcGFkZGluZy1yaWdodDogY2FsYygoMWVtICsgI3syICogJGN1c3RvbS1zZWxlY3QtcGFkZGluZy15fSkgKiAzIC8gNCArICN7JGN1c3RvbS1zZWxlY3QtcGFkZGluZy14ICsgJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yLXBhZGRpbmd9KSAhZGVmYXVsdDtcbiRjdXN0b20tc2VsZWN0LWZlZWRiYWNrLWljb24tcG9zaXRpb246ICAgICAgY2VudGVyIHJpZ2h0ICgkY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXggKyAkY3VzdG9tLXNlbGVjdC1pbmRpY2F0b3ItcGFkZGluZykgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1mZWVkYmFjay1pY29uLXNpemU6ICAgICAgICAgICRpbnB1dC1oZWlnaHQtaW5uZXItaGFsZiAkaW5wdXQtaGVpZ2h0LWlubmVyLWhhbGYgIWRlZmF1bHQ7XG5cbiRjdXN0b20tc2VsZWN0LWJvcmRlci13aWR0aDogICAgICAgICRpbnB1dC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1ib3JkZXItY29sb3I6ICAgICAgICAkaW5wdXQtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtYm9yZGVyLXJhZGl1czogICAgICAgJGJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1ib3gtc2hhZG93OiAgICAgICAgICBpbnNldCAwIDFweCAycHggcmdiYSgkYmxhY2ssIC4wNzUpICFkZWZhdWx0O1xuXG4kY3VzdG9tLXNlbGVjdC1mb2N1cy1ib3JkZXItY29sb3I6ICAkaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtZm9jdXMtd2lkdGg6ICAgICAgICAgJGlucHV0LWZvY3VzLXdpZHRoICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtZm9jdXMtYm94LXNoYWRvdzogICAgMCAwIDAgJGN1c3RvbS1zZWxlY3QtZm9jdXMtd2lkdGggJGlucHV0LWJ0bi1mb2N1cy1jb2xvciAhZGVmYXVsdDtcblxuJGN1c3RvbS1zZWxlY3QtcGFkZGluZy15LXNtOiAgICAgICAgJGlucHV0LXBhZGRpbmcteS1zbSAhZGVmYXVsdDtcbiRjdXN0b20tc2VsZWN0LXBhZGRpbmcteC1zbTogICAgICAgICRpbnB1dC1wYWRkaW5nLXgtc20gIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1mb250LXNpemUtc206ICAgICAgICAkaW5wdXQtZm9udC1zaXplLXNtICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtaGVpZ2h0LXNtOiAgICAgICAgICAgJGlucHV0LWhlaWdodC1zbSAhZGVmYXVsdDtcblxuJGN1c3RvbS1zZWxlY3QtcGFkZGluZy15LWxnOiAgICAgICAgJGlucHV0LXBhZGRpbmcteS1sZyAhZGVmYXVsdDtcbiRjdXN0b20tc2VsZWN0LXBhZGRpbmcteC1sZzogICAgICAgICRpbnB1dC1wYWRkaW5nLXgtbGcgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1mb250LXNpemUtbGc6ICAgICAgICAkaW5wdXQtZm9udC1zaXplLWxnICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtaGVpZ2h0LWxnOiAgICAgICAgICAgJGlucHV0LWhlaWdodC1sZyAhZGVmYXVsdDtcblxuJGN1c3RvbS1yYW5nZS10cmFjay13aWR0aDogICAgICAgICAgMTAwJSAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2UtdHJhY2staGVpZ2h0OiAgICAgICAgIC41cmVtICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS10cmFjay1jdXJzb3I6ICAgICAgICAgcG9pbnRlciAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2UtdHJhY2stYmc6ICAgICAgICAgICAgICRncmF5LTMwMCAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2UtdHJhY2stYm9yZGVyLXJhZGl1czogIDFyZW0gIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXRyYWNrLWJveC1zaGFkb3c6ICAgICBpbnNldCAwIC4yNXJlbSAuMjVyZW0gcmdiYSgkYmxhY2ssIC4xKSAhZGVmYXVsdDtcblxuJGN1c3RvbS1yYW5nZS10aHVtYi13aWR0aDogICAgICAgICAgICAgICAgICAgMXJlbSAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2UtdGh1bWItaGVpZ2h0OiAgICAgICAgICAgICAgICAgICRjdXN0b20tcmFuZ2UtdGh1bWItd2lkdGggIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXRodW1iLWJnOiAgICAgICAgICAgICAgICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1iZyAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2UtdGh1bWItYm9yZGVyOiAgICAgICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXRodW1iLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAxcmVtICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS10aHVtYi1ib3gtc2hhZG93OiAgICAgICAgICAgICAgMCAuMXJlbSAuMjVyZW0gcmdiYSgkYmxhY2ssIC4xKSAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2UtdGh1bWItZm9jdXMtYm94LXNoYWRvdzogICAgICAgIDAgMCAwIDFweCAkYm9keS1iZywgJGlucHV0LWZvY3VzLWJveC1zaGFkb3cgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXRodW1iLWZvY3VzLWJveC1zaGFkb3ctd2lkdGg6ICAkaW5wdXQtZm9jdXMtd2lkdGggIWRlZmF1bHQ7IC8vIEZvciBmb2N1cyBib3ggc2hhZG93IGlzc3VlIGluIElFL0VkZ2VcbiRjdXN0b20tcmFuZ2UtdGh1bWItYWN0aXZlLWJnOiAgICAgICAgICAgICAgIGxpZ2h0ZW4oJGNvbXBvbmVudC1hY3RpdmUtYmcsIDM1JSkgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXRodW1iLWRpc2FibGVkLWJnOiAgICAgICAgICAgICAkZ3JheS01MDAgIWRlZmF1bHQ7XG5cbiRjdXN0b20tZmlsZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICRpbnB1dC1oZWlnaHQgIWRlZmF1bHQ7XG4kY3VzdG9tLWZpbGUtaGVpZ2h0LWlubmVyOiAgICAgICAgICAkaW5wdXQtaGVpZ2h0LWlubmVyICFkZWZhdWx0O1xuJGN1c3RvbS1maWxlLWZvY3VzLWJvcmRlci1jb2xvcjogICAgJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1mb2N1cy1ib3gtc2hhZG93OiAgICAgICRpbnB1dC1mb2N1cy1ib3gtc2hhZG93ICFkZWZhdWx0O1xuJGN1c3RvbS1maWxlLWRpc2FibGVkLWJnOiAgICAgICAgICAgJGlucHV0LWRpc2FibGVkLWJnICFkZWZhdWx0O1xuXG4kY3VzdG9tLWZpbGUtcGFkZGluZy15OiAgICAgICAgICAgICAkaW5wdXQtcGFkZGluZy15ICFkZWZhdWx0O1xuJGN1c3RvbS1maWxlLXBhZGRpbmcteDogICAgICAgICAgICAgJGlucHV0LXBhZGRpbmcteCAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1saW5lLWhlaWdodDogICAgICAgICAgICRpbnB1dC1saW5lLWhlaWdodCAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1mb250LWZhbWlseTogICAgICAgICAgICRpbnB1dC1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1mb250LXdlaWdodDogICAgICAgICAgICRpbnB1dC1mb250LXdlaWdodCAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1jb2xvcjogICAgICAgICAgICAgICAgICRpbnB1dC1jb2xvciAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1iZzogICAgICAgICAgICAgICAgICAgICRpbnB1dC1iZyAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1ib3JkZXItd2lkdGg6ICAgICAgICAgICRpbnB1dC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kY3VzdG9tLWZpbGUtYm9yZGVyLWNvbG9yOiAgICAgICAgICAkaW5wdXQtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGN1c3RvbS1maWxlLWJvcmRlci1yYWRpdXM6ICAgICAgICAgJGlucHV0LWJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG4kY3VzdG9tLWZpbGUtYm94LXNoYWRvdzogICAgICAgICAgICAkaW5wdXQtYm94LXNoYWRvdyAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1idXR0b24tY29sb3I6ICAgICAgICAgICRjdXN0b20tZmlsZS1jb2xvciAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1idXR0b24tYmc6ICAgICAgICAgICAgICRpbnB1dC1ncm91cC1hZGRvbi1iZyAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS10ZXh0OiAoXG4gIGVuOiBcIkJyb3dzZVwiXG4pICFkZWZhdWx0O1xuXG5cbi8vIEZvcm0gdmFsaWRhdGlvblxuXG4kZm9ybS1mZWVkYmFjay1tYXJnaW4tdG9wOiAgICAgICAgICAkZm9ybS10ZXh0LW1hcmdpbi10b3AgIWRlZmF1bHQ7XG4kZm9ybS1mZWVkYmFjay1mb250LXNpemU6ICAgICAgICAgICAkc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuJGZvcm0tZmVlZGJhY2stdmFsaWQtY29sb3I6ICAgICAgICAgdGhlbWUtY29sb3IoXCJzdWNjZXNzXCIpICFkZWZhdWx0O1xuJGZvcm0tZmVlZGJhY2staW52YWxpZC1jb2xvcjogICAgICAgdGhlbWUtY29sb3IoXCJkYW5nZXJcIikgIWRlZmF1bHQ7XG5cbiRmb3JtLWZlZWRiYWNrLWljb24tdmFsaWQtY29sb3I6ICAgICRmb3JtLWZlZWRiYWNrLXZhbGlkLWNvbG9yICFkZWZhdWx0O1xuJGZvcm0tZmVlZGJhY2staWNvbi12YWxpZDogICAgICAgICAgc3RyLXJlcGxhY2UodXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA4IDgnJTNlJTNjcGF0aCBmaWxsPScjeyRmb3JtLWZlZWRiYWNrLWljb24tdmFsaWQtY29sb3J9JyBkPSdNMi4zIDYuNzNMLjYgNC41M2MtLjQtMS4wNC40Ni0xLjQgMS4xLS44bDEuMSAxLjQgMy40LTMuOGMuNi0uNjMgMS42LS4yNyAxLjIuN2wtNCA0LjZjLS40My41LS44LjQtMS4xLjF6Jy8lM2UlM2Mvc3ZnJTNlXCIpLCBcIiNcIiwgXCIlMjNcIikgIWRlZmF1bHQ7XG4kZm9ybS1mZWVkYmFjay1pY29uLWludmFsaWQtY29sb3I6ICAkZm9ybS1mZWVkYmFjay1pbnZhbGlkLWNvbG9yICFkZWZhdWx0O1xuJGZvcm0tZmVlZGJhY2staWNvbi1pbnZhbGlkOiAgICAgICAgc3RyLXJlcGxhY2UodXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGZpbGw9JyN7JGZvcm0tZmVlZGJhY2staWNvbi1pbnZhbGlkLWNvbG9yfScgdmlld0JveD0nLTIgLTIgNyA3JyUzZSUzY3BhdGggc3Ryb2tlPScjeyRmb3JtLWZlZWRiYWNrLWljb24taW52YWxpZC1jb2xvcn0nIGQ9J00wIDBsMyAzbTAtM0wwIDMnLyUzZSUzY2NpcmNsZSByPScuNScvJTNlJTNjY2lyY2xlIGN4PSczJyByPScuNScvJTNlJTNjY2lyY2xlIGN5PSczJyByPScuNScvJTNlJTNjY2lyY2xlIGN4PSczJyBjeT0nMycgcj0nLjUnLyUzZSUzYy9zdmclM0VcIiksIFwiI1wiLCBcIiUyM1wiKSAhZGVmYXVsdDtcblxuJGZvcm0tdmFsaWRhdGlvbi1zdGF0ZXM6ICgpICFkZWZhdWx0O1xuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWRlZmF1bHRcbiRmb3JtLXZhbGlkYXRpb24tc3RhdGVzOiBtYXAtbWVyZ2UoXG4gIChcbiAgICBcInZhbGlkXCI6IChcbiAgICAgIFwiY29sb3JcIjogJGZvcm0tZmVlZGJhY2stdmFsaWQtY29sb3IsXG4gICAgICBcImljb25cIjogJGZvcm0tZmVlZGJhY2staWNvbi12YWxpZFxuICAgICksXG4gICAgXCJpbnZhbGlkXCI6IChcbiAgICAgIFwiY29sb3JcIjogJGZvcm0tZmVlZGJhY2staW52YWxpZC1jb2xvcixcbiAgICAgIFwiaWNvblwiOiAkZm9ybS1mZWVkYmFjay1pY29uLWludmFsaWRcbiAgICApLFxuICApLFxuICAkZm9ybS12YWxpZGF0aW9uLXN0YXRlc1xuKTtcblxuLy8gWi1pbmRleCBtYXN0ZXIgbGlzdFxuLy9cbi8vIFdhcm5pbmc6IEF2b2lkIGN1c3RvbWl6aW5nIHRoZXNlIHZhbHVlcy4gVGhleSdyZSB1c2VkIGZvciBhIGJpcmQncyBleWUgdmlld1xuLy8gb2YgY29tcG9uZW50cyBkZXBlbmRlbnQgb24gdGhlIHotYXhpcyBhbmQgYXJlIGRlc2lnbmVkIHRvIGFsbCB3b3JrIHRvZ2V0aGVyLlxuXG4kemluZGV4LWRyb3Bkb3duOiAgICAgICAgICAgICAgICAgICAxMDAwICFkZWZhdWx0O1xuJHppbmRleC1zdGlja3k6ICAgICAgICAgICAgICAgICAgICAgMTAyMCAhZGVmYXVsdDtcbiR6aW5kZXgtZml4ZWQ6ICAgICAgICAgICAgICAgICAgICAgIDEwMzAgIWRlZmF1bHQ7XG4kemluZGV4LW1vZGFsLWJhY2tkcm9wOiAgICAgICAgICAgICAxMDQwICFkZWZhdWx0O1xuJHppbmRleC1tb2RhbDogICAgICAgICAgICAgICAgICAgICAgMTA1MCAhZGVmYXVsdDtcbiR6aW5kZXgtcG9wb3ZlcjogICAgICAgICAgICAgICAgICAgIDEwNjAgIWRlZmF1bHQ7XG4kemluZGV4LXRvb2x0aXA6ICAgICAgICAgICAgICAgICAgICAxMDcwICFkZWZhdWx0O1xuXG5cbi8vIE5hdnNcblxuJG5hdi1saW5rLXBhZGRpbmcteTogICAgICAgICAgICAgICAgLjVyZW0gIWRlZmF1bHQ7XG4kbmF2LWxpbmstcGFkZGluZy14OiAgICAgICAgICAgICAgICAxcmVtICFkZWZhdWx0O1xuJG5hdi1saW5rLWRpc2FibGVkLWNvbG9yOiAgICAgICAgICAgJGdyYXktNjAwICFkZWZhdWx0O1xuXG4kbmF2LXRhYnMtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAkZ3JheS0zMDAgIWRlZmF1bHQ7XG4kbmF2LXRhYnMtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAkYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJG5hdi10YWJzLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgJGJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG4kbmF2LXRhYnMtbGluay1ob3Zlci1ib3JkZXItY29sb3I6ICAkZ3JheS0yMDAgJGdyYXktMjAwICRuYXYtdGFicy1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kbmF2LXRhYnMtbGluay1hY3RpdmUtY29sb3I6ICAgICAgICAkZ3JheS03MDAgIWRlZmF1bHQ7XG4kbmF2LXRhYnMtbGluay1hY3RpdmUtYmc6ICAgICAgICAgICAkYm9keS1iZyAhZGVmYXVsdDtcbiRuYXYtdGFicy1saW5rLWFjdGl2ZS1ib3JkZXItY29sb3I6ICRncmF5LTMwMCAkZ3JheS0zMDAgJG5hdi10YWJzLWxpbmstYWN0aXZlLWJnICFkZWZhdWx0O1xuXG4kbmF2LXBpbGxzLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAkYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcbiRuYXYtcGlsbHMtbGluay1hY3RpdmUtY29sb3I6ICAgICAgICRjb21wb25lbnQtYWN0aXZlLWNvbG9yICFkZWZhdWx0O1xuJG5hdi1waWxscy1saW5rLWFjdGl2ZS1iZzogICAgICAgICAgJGNvbXBvbmVudC1hY3RpdmUtYmcgIWRlZmF1bHQ7XG5cbiRuYXYtZGl2aWRlci1jb2xvcjogICAgICAgICAgICAgICAgICRncmF5LTIwMCAhZGVmYXVsdDtcbiRuYXYtZGl2aWRlci1tYXJnaW4teTogICAgICAgICAgICAgICRzcGFjZXIgLyAyICFkZWZhdWx0O1xuXG5cbi8vIE5hdmJhclxuXG4kbmF2YmFyLXBhZGRpbmcteTogICAgICAgICAgICAgICAgICAkc3BhY2VyIC8gMiAhZGVmYXVsdDtcbiRuYXZiYXItcGFkZGluZy14OiAgICAgICAgICAgICAgICAgICRzcGFjZXIgIWRlZmF1bHQ7XG5cbiRuYXZiYXItbmF2LWxpbmstcGFkZGluZy14OiAgICAgICAgIC41cmVtICFkZWZhdWx0O1xuXG4kbmF2YmFyLWJyYW5kLWZvbnQtc2l6ZTogICAgICAgICAgICAkZm9udC1zaXplLWxnICFkZWZhdWx0O1xuLy8gQ29tcHV0ZSB0aGUgbmF2YmFyLWJyYW5kIHBhZGRpbmcteSBzbyB0aGUgbmF2YmFyLWJyYW5kIHdpbGwgaGF2ZSB0aGUgc2FtZSBoZWlnaHQgYXMgbmF2YmFyLXRleHQgYW5kIG5hdi1saW5rXG4kbmF2LWxpbmstaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAkbGluZS1oZWlnaHQtYmFzZSArICRuYXYtbGluay1wYWRkaW5nLXkgKiAyICFkZWZhdWx0O1xuJG5hdmJhci1icmFuZC1oZWlnaHQ6ICAgICAgICAgICAgICAgJG5hdmJhci1icmFuZC1mb250LXNpemUgKiAkbGluZS1oZWlnaHQtYmFzZSAhZGVmYXVsdDtcbiRuYXZiYXItYnJhbmQtcGFkZGluZy15OiAgICAgICAgICAgICgkbmF2LWxpbmstaGVpZ2h0IC0gJG5hdmJhci1icmFuZC1oZWlnaHQpIC8gMiAhZGVmYXVsdDtcblxuJG5hdmJhci10b2dnbGVyLXBhZGRpbmcteTogICAgICAgICAgLjI1cmVtICFkZWZhdWx0O1xuJG5hdmJhci10b2dnbGVyLXBhZGRpbmcteDogICAgICAgICAgLjc1cmVtICFkZWZhdWx0O1xuJG5hdmJhci10b2dnbGVyLWZvbnQtc2l6ZTogICAgICAgICAgJGZvbnQtc2l6ZS1sZyAhZGVmYXVsdDtcbiRuYXZiYXItdG9nZ2xlci1ib3JkZXItcmFkaXVzOiAgICAgICRidG4tYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcblxuJG5hdmJhci1kYXJrLWNvbG9yOiAgICAgICAgICAgICAgICAgcmdiYSgkd2hpdGUsIC41KSAhZGVmYXVsdDtcbiRuYXZiYXItZGFyay1ob3Zlci1jb2xvcjogICAgICAgICAgIHJnYmEoJHdoaXRlLCAuNzUpICFkZWZhdWx0O1xuJG5hdmJhci1kYXJrLWFjdGl2ZS1jb2xvcjogICAgICAgICAgJHdoaXRlICFkZWZhdWx0O1xuJG5hdmJhci1kYXJrLWRpc2FibGVkLWNvbG9yOiAgICAgICAgcmdiYSgkd2hpdGUsIC4yNSkgIWRlZmF1bHQ7XG4kbmF2YmFyLWRhcmstdG9nZ2xlci1pY29uLWJnOiAgICAgICBzdHItcmVwbGFjZSh1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHZpZXdCb3g9JzAgMCAzMCAzMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzZSUzY3BhdGggc3Ryb2tlPScjeyRuYXZiYXItZGFyay1jb2xvcn0nIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIGQ9J000IDdoMjJNNCAxNWgyMk00IDIzaDIyJy8lM2UlM2Mvc3ZnJTNlXCIpLCBcIiNcIiwgXCIlMjNcIikgIWRlZmF1bHQ7XG4kbmF2YmFyLWRhcmstdG9nZ2xlci1ib3JkZXItY29sb3I6ICByZ2JhKCR3aGl0ZSwgLjEpICFkZWZhdWx0O1xuXG4kbmF2YmFyLWxpZ2h0LWNvbG9yOiAgICAgICAgICAgICAgICByZ2JhKCRibGFjaywgLjUpICFkZWZhdWx0O1xuJG5hdmJhci1saWdodC1ob3Zlci1jb2xvcjogICAgICAgICAgcmdiYSgkYmxhY2ssIC43KSAhZGVmYXVsdDtcbiRuYXZiYXItbGlnaHQtYWN0aXZlLWNvbG9yOiAgICAgICAgIHJnYmEoJGJsYWNrLCAuOSkgIWRlZmF1bHQ7XG4kbmF2YmFyLWxpZ2h0LWRpc2FibGVkLWNvbG9yOiAgICAgICByZ2JhKCRibGFjaywgLjMpICFkZWZhdWx0O1xuJG5hdmJhci1saWdodC10b2dnbGVyLWljb24tYmc6ICAgICAgc3RyLXJlcGxhY2UodXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB2aWV3Qm94PScwIDAgMzAgMzAnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM2UlM2NwYXRoIHN0cm9rZT0nI3skbmF2YmFyLWxpZ2h0LWNvbG9yfScgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1taXRlcmxpbWl0PScxMCcgZD0nTTQgN2gyMk00IDE1aDIyTTQgMjNoMjInLyUzZSUzYy9zdmclM2VcIiksIFwiI1wiLCBcIiUyM1wiKSAhZGVmYXVsdDtcbiRuYXZiYXItbGlnaHQtdG9nZ2xlci1ib3JkZXItY29sb3I6IHJnYmEoJGJsYWNrLCAuMSkgIWRlZmF1bHQ7XG5cbiRuYXZiYXItbGlnaHQtYnJhbmQtY29sb3I6ICAgICAgICAgICAgICAgICRuYXZiYXItbGlnaHQtYWN0aXZlLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1saWdodC1icmFuZC1ob3Zlci1jb2xvcjogICAgICAgICAgJG5hdmJhci1saWdodC1hY3RpdmUtY29sb3IgIWRlZmF1bHQ7XG4kbmF2YmFyLWRhcmstYnJhbmQtY29sb3I6ICAgICAgICAgICAgICAgICAkbmF2YmFyLWRhcmstYWN0aXZlLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1kYXJrLWJyYW5kLWhvdmVyLWNvbG9yOiAgICAgICAgICAgJG5hdmJhci1kYXJrLWFjdGl2ZS1jb2xvciAhZGVmYXVsdDtcblxuXG4vLyBEcm9wZG93bnNcbi8vXG4vLyBEcm9wZG93biBtZW51IGNvbnRhaW5lciBhbmQgY29udGVudHMuXG5cbiRkcm9wZG93bi1taW4td2lkdGg6ICAgICAgICAgICAgICAgIDEwcmVtICFkZWZhdWx0O1xuJGRyb3Bkb3duLXBhZGRpbmcteTogICAgICAgICAgICAgICAgLjVyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3BhY2VyOiAgICAgICAgICAgICAgICAgICAuMTI1cmVtICFkZWZhdWx0O1xuJGRyb3Bkb3duLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICFkZWZhdWx0O1xuJGRyb3Bkb3duLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgJGJvZHktY29sb3IgIWRlZmF1bHQ7XG4kZHJvcGRvd24tYmc6ICAgICAgICAgICAgICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XG4kZHJvcGRvd24tYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICByZ2JhKCRibGFjaywgLjE1KSAhZGVmYXVsdDtcbiRkcm9wZG93bi1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICRib3JkZXItcmFkaXVzICFkZWZhdWx0O1xuJGRyb3Bkb3duLWJvcmRlci13aWR0aDogICAgICAgICAgICAgJGJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRkcm9wZG93bi1pbm5lci1ib3JkZXItcmFkaXVzOiAgICAgIGNhbGMoI3skZHJvcGRvd24tYm9yZGVyLXJhZGl1c30gLSAjeyRkcm9wZG93bi1ib3JkZXItd2lkdGh9KSAhZGVmYXVsdDtcbiRkcm9wZG93bi1kaXZpZGVyLWJnOiAgICAgICAgICAgICAgICRncmF5LTIwMCAhZGVmYXVsdDtcbiRkcm9wZG93bi1kaXZpZGVyLW1hcmdpbi15OiAgICAgICAgICRuYXYtZGl2aWRlci1tYXJnaW4teSAhZGVmYXVsdDtcbiRkcm9wZG93bi1ib3gtc2hhZG93OiAgICAgICAgICAgICAgIDAgLjVyZW0gMXJlbSByZ2JhKCRibGFjaywgLjE3NSkgIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1saW5rLWNvbG9yOiAgICAgICAgICAgICAgICRncmF5LTkwMCAhZGVmYXVsdDtcbiRkcm9wZG93bi1saW5rLWhvdmVyLWNvbG9yOiAgICAgICAgIGRhcmtlbigkZ3JheS05MDAsIDUlKSAhZGVmYXVsdDtcbiRkcm9wZG93bi1saW5rLWhvdmVyLWJnOiAgICAgICAgICAgICRncmF5LTEwMCAhZGVmYXVsdDtcblxuJGRyb3Bkb3duLWxpbmstYWN0aXZlLWNvbG9yOiAgICAgICAgJGNvbXBvbmVudC1hY3RpdmUtY29sb3IgIWRlZmF1bHQ7XG4kZHJvcGRvd24tbGluay1hY3RpdmUtYmc6ICAgICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1iZyAhZGVmYXVsdDtcblxuJGRyb3Bkb3duLWxpbmstZGlzYWJsZWQtY29sb3I6ICAgICAgJGdyYXktNjAwICFkZWZhdWx0O1xuXG4kZHJvcGRvd24taXRlbS1wYWRkaW5nLXk6ICAgICAgICAgICAuMjVyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24taXRlbS1wYWRkaW5nLXg6ICAgICAgICAgICAxLjVyZW0gIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1oZWFkZXItY29sb3I6ICAgICAgICAgICAgICRncmF5LTYwMCAhZGVmYXVsdDtcblxuXG4vLyBQYWdpbmF0aW9uXG5cbiRwYWdpbmF0aW9uLXBhZGRpbmcteTogICAgICAgICAgICAgIC41cmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tcGFkZGluZy14OiAgICAgICAgICAgICAgLjc1cmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tcGFkZGluZy15LXNtOiAgICAgICAgICAgLjI1cmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tcGFkZGluZy14LXNtOiAgICAgICAgICAgLjVyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1wYWRkaW5nLXktbGc6ICAgICAgICAgICAuNzVyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1wYWRkaW5nLXgtbGc6ICAgICAgICAgICAxLjVyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1saW5lLWhlaWdodDogICAgICAgICAgICAxLjI1ICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1jb2xvcjogICAgICAgICAgICAgICAgICAkbGluay1jb2xvciAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWJnOiAgICAgICAgICAgICAgICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWJvcmRlci13aWR0aDogICAgICAgICAgICRib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1ib3JkZXItY29sb3I6ICAgICAgICAgICAkZ3JheS0zMDAgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWZvY3VzLWJveC1zaGFkb3c6ICAgICAgICRpbnB1dC1idG4tZm9jdXMtYm94LXNoYWRvdyAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWZvY3VzLW91dGxpbmU6ICAgICAgICAgIDAgIWRlZmF1bHQ7XG5cbiRwYWdpbmF0aW9uLWhvdmVyLWNvbG9yOiAgICAgICAgICAgICRsaW5rLWhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taG92ZXItYmc6ICAgICAgICAgICAgICAgJGdyYXktMjAwICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taG92ZXItYm9yZGVyLWNvbG9yOiAgICAgJGdyYXktMzAwICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1hY3RpdmUtY29sb3I6ICAgICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1jb2xvciAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWFjdGl2ZS1iZzogICAgICAgICAgICAgICRjb21wb25lbnQtYWN0aXZlLWJnICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tYWN0aXZlLWJvcmRlci1jb2xvcjogICAgJHBhZ2luYXRpb24tYWN0aXZlLWJnICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1kaXNhYmxlZC1jb2xvcjogICAgICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1kaXNhYmxlZC1iZzogICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1kaXNhYmxlZC1ib3JkZXItY29sb3I6ICAkZ3JheS0zMDAgIWRlZmF1bHQ7XG5cblxuLy8gSnVtYm90cm9uXG5cbiRqdW1ib3Ryb24tcGFkZGluZzogICAgICAgICAgICAgICAgIDJyZW0gIWRlZmF1bHQ7XG4kanVtYm90cm9uLWNvbG9yOiAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGp1bWJvdHJvbi1iZzogICAgICAgICAgICAgICAgICAgICAgJGdyYXktMjAwICFkZWZhdWx0O1xuXG5cbi8vIENhcmRzXG5cbiRjYXJkLXNwYWNlci15OiAgICAgICAgICAgICAgICAgICAgIC43NXJlbSAhZGVmYXVsdDtcbiRjYXJkLXNwYWNlci14OiAgICAgICAgICAgICAgICAgICAgIDEuMjVyZW0gIWRlZmF1bHQ7XG4kY2FyZC1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICAkYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJGNhcmQtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAgJGJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG4kY2FyZC1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAgICByZ2JhKCRibGFjaywgLjEyNSkgIWRlZmF1bHQ7XG4kY2FyZC1pbm5lci1ib3JkZXItcmFkaXVzOiAgICAgICAgICBjYWxjKCN7JGNhcmQtYm9yZGVyLXJhZGl1c30gLSAjeyRjYXJkLWJvcmRlci13aWR0aH0pICFkZWZhdWx0O1xuJGNhcmQtY2FwLWJnOiAgICAgICAgICAgICAgICAgICAgICAgcmdiYSgkYmxhY2ssIC4wMykgIWRlZmF1bHQ7XG4kY2FyZC1jYXAtY29sb3I6ICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNhcmQtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjYXJkLWJnOiAgICAgICAgICAgICAgICAgICAgICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcblxuJGNhcmQtaW1nLW92ZXJsYXktcGFkZGluZzogICAgICAgICAgMS4yNXJlbSAhZGVmYXVsdDtcblxuJGNhcmQtZ3JvdXAtbWFyZ2luOiAgICAgICAgICAgICAgICAgJGdyaWQtZ3V0dGVyLXdpZHRoIC8gMiAhZGVmYXVsdDtcbiRjYXJkLWRlY2stbWFyZ2luOiAgICAgICAgICAgICAgICAgICRjYXJkLWdyb3VwLW1hcmdpbiAhZGVmYXVsdDtcblxuJGNhcmQtY29sdW1ucy1jb3VudDogICAgICAgICAgICAgICAgMyAhZGVmYXVsdDtcbiRjYXJkLWNvbHVtbnMtZ2FwOiAgICAgICAgICAgICAgICAgIDEuMjVyZW0gIWRlZmF1bHQ7XG4kY2FyZC1jb2x1bW5zLW1hcmdpbjogICAgICAgICAgICAgICAkY2FyZC1zcGFjZXIteSAhZGVmYXVsdDtcblxuXG4vLyBUb29sdGlwc1xuXG4kdG9vbHRpcC1mb250LXNpemU6ICAgICAgICAgICAgICAgICAkZm9udC1zaXplLXNtICFkZWZhdWx0O1xuJHRvb2x0aXAtbWF4LXdpZHRoOiAgICAgICAgICAgICAgICAgMjAwcHggIWRlZmF1bHQ7XG4kdG9vbHRpcC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XG4kdG9vbHRpcC1iZzogICAgICAgICAgICAgICAgICAgICAgICAkYmxhY2sgIWRlZmF1bHQ7XG4kdG9vbHRpcC1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcbiR0b29sdGlwLW9wYWNpdHk6ICAgICAgICAgICAgICAgICAgIC45ICFkZWZhdWx0O1xuJHRvb2x0aXAtcGFkZGluZy15OiAgICAgICAgICAgICAgICAgLjI1cmVtICFkZWZhdWx0O1xuJHRvb2x0aXAtcGFkZGluZy14OiAgICAgICAgICAgICAgICAgLjVyZW0gIWRlZmF1bHQ7XG4kdG9vbHRpcC1tYXJnaW46ICAgICAgICAgICAgICAgICAgICAwICFkZWZhdWx0O1xuXG4kdG9vbHRpcC1hcnJvdy13aWR0aDogICAgICAgICAgICAgICAuOHJlbSAhZGVmYXVsdDtcbiR0b29sdGlwLWFycm93LWhlaWdodDogICAgICAgICAgICAgIC40cmVtICFkZWZhdWx0O1xuJHRvb2x0aXAtYXJyb3ctY29sb3I6ICAgICAgICAgICAgICAgJHRvb2x0aXAtYmcgIWRlZmF1bHQ7XG5cbi8vIEZvcm0gdG9vbHRpcHMgbXVzdCBjb21lIGFmdGVyIHJlZ3VsYXIgdG9vbHRpcHNcbiRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtcGFkZGluZy15OiAgICAgJHRvb2x0aXAtcGFkZGluZy15ICFkZWZhdWx0O1xuJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1wYWRkaW5nLXg6ICAgICAkdG9vbHRpcC1wYWRkaW5nLXggIWRlZmF1bHQ7XG4kZm9ybS1mZWVkYmFjay10b29sdGlwLWZvbnQtc2l6ZTogICAgICR0b29sdGlwLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtbGluZS1oZWlnaHQ6ICAgJGxpbmUtaGVpZ2h0LWJhc2UgIWRlZmF1bHQ7XG4kZm9ybS1mZWVkYmFjay10b29sdGlwLW9wYWNpdHk6ICAgICAgICR0b29sdGlwLW9wYWNpdHkgIWRlZmF1bHQ7XG4kZm9ybS1mZWVkYmFjay10b29sdGlwLWJvcmRlci1yYWRpdXM6ICR0b29sdGlwLWJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG5cblxuLy8gUG9wb3ZlcnNcblxuJHBvcG92ZXItZm9udC1zaXplOiAgICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1zbSAhZGVmYXVsdDtcbiRwb3BvdmVyLWJnOiAgICAgICAgICAgICAgICAgICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcbiRwb3BvdmVyLW1heC13aWR0aDogICAgICAgICAgICAgICAgIDI3NnB4ICFkZWZhdWx0O1xuJHBvcG92ZXItYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgJGJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRwb3BvdmVyLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgIHJnYmEoJGJsYWNrLCAuMikgIWRlZmF1bHQ7XG4kcG9wb3Zlci1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cy1sZyAhZGVmYXVsdDtcbiRwb3BvdmVyLWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgIDAgLjI1cmVtIC41cmVtIHJnYmEoJGJsYWNrLCAuMikgIWRlZmF1bHQ7XG5cbiRwb3BvdmVyLWhlYWRlci1iZzogICAgICAgICAgICAgICAgIGRhcmtlbigkcG9wb3Zlci1iZywgMyUpICFkZWZhdWx0O1xuJHBvcG92ZXItaGVhZGVyLWNvbG9yOiAgICAgICAgICAgICAgJGhlYWRpbmdzLWNvbG9yICFkZWZhdWx0O1xuJHBvcG92ZXItaGVhZGVyLXBhZGRpbmcteTogICAgICAgICAgLjVyZW0gIWRlZmF1bHQ7XG4kcG9wb3Zlci1oZWFkZXItcGFkZGluZy14OiAgICAgICAgICAuNzVyZW0gIWRlZmF1bHQ7XG5cbiRwb3BvdmVyLWJvZHktY29sb3I6ICAgICAgICAgICAgICAgICRib2R5LWNvbG9yICFkZWZhdWx0O1xuJHBvcG92ZXItYm9keS1wYWRkaW5nLXk6ICAgICAgICAgICAgJHBvcG92ZXItaGVhZGVyLXBhZGRpbmcteSAhZGVmYXVsdDtcbiRwb3BvdmVyLWJvZHktcGFkZGluZy14OiAgICAgICAgICAgICRwb3BvdmVyLWhlYWRlci1wYWRkaW5nLXggIWRlZmF1bHQ7XG5cbiRwb3BvdmVyLWFycm93LXdpZHRoOiAgICAgICAgICAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kcG9wb3Zlci1hcnJvdy1oZWlnaHQ6ICAgICAgICAgICAgICAuNXJlbSAhZGVmYXVsdDtcbiRwb3BvdmVyLWFycm93LWNvbG9yOiAgICAgICAgICAgICAgICRwb3BvdmVyLWJnICFkZWZhdWx0O1xuXG4kcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjogICAgICAgICBmYWRlLWluKCRwb3BvdmVyLWJvcmRlci1jb2xvciwgLjA1KSAhZGVmYXVsdDtcblxuXG4vLyBUb2FzdHNcblxuJHRvYXN0LW1heC13aWR0aDogICAgICAgICAgICAgICAgICAgMzUwcHggIWRlZmF1bHQ7XG4kdG9hc3QtcGFkZGluZy14OiAgICAgICAgICAgICAgICAgICAuNzVyZW0gIWRlZmF1bHQ7XG4kdG9hc3QtcGFkZGluZy15OiAgICAgICAgICAgICAgICAgICAuMjVyZW0gIWRlZmF1bHQ7XG4kdG9hc3QtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAuODc1cmVtICFkZWZhdWx0O1xuJHRvYXN0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiR0b2FzdC1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgIHJnYmEoJHdoaXRlLCAuODUpICFkZWZhdWx0O1xuJHRvYXN0LWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgMXB4ICFkZWZhdWx0O1xuJHRvYXN0LWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgcmdiYSgwLCAwLCAwLCAuMSkgIWRlZmF1bHQ7XG4kdG9hc3QtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAuMjVyZW0gIWRlZmF1bHQ7XG4kdG9hc3QtYm94LXNoYWRvdzogICAgICAgICAgICAgICAgICAwIC4yNXJlbSAuNzVyZW0gcmdiYSgkYmxhY2ssIC4xKSAhZGVmYXVsdDtcblxuJHRvYXN0LWhlYWRlci1jb2xvcjogICAgICAgICAgICAgICAgJGdyYXktNjAwICFkZWZhdWx0O1xuJHRvYXN0LWhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgcmdiYSgkd2hpdGUsIC44NSkgIWRlZmF1bHQ7XG4kdG9hc3QtaGVhZGVyLWJvcmRlci1jb2xvcjogICAgICAgICByZ2JhKDAsIDAsIDAsIC4wNSkgIWRlZmF1bHQ7XG5cblxuLy8gQmFkZ2VzXG5cbiRiYWRnZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgIDc1JSAhZGVmYXVsdDtcbiRiYWRnZS1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJGJhZGdlLXBhZGRpbmcteTogICAgICAgICAgICAgICAgICAgLjI1ZW0gIWRlZmF1bHQ7XG4kYmFkZ2UtcGFkZGluZy14OiAgICAgICAgICAgICAgICAgICAuNGVtICFkZWZhdWx0O1xuJGJhZGdlLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgJGJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG5cbiRiYWRnZS10cmFuc2l0aW9uOiAgICAgICAgICAgICAgICAgICRidG4tdHJhbnNpdGlvbiAhZGVmYXVsdDtcbiRiYWRnZS1mb2N1cy13aWR0aDogICAgICAgICAgICAgICAgICRpbnB1dC1idG4tZm9jdXMtd2lkdGggIWRlZmF1bHQ7XG5cbiRiYWRnZS1waWxsLXBhZGRpbmcteDogICAgICAgICAgICAgIC42ZW0gIWRlZmF1bHQ7XG4vLyBVc2UgYSBoaWdoZXIgdGhhbiBub3JtYWwgdmFsdWUgdG8gZW5zdXJlIGNvbXBsZXRlbHkgcm91bmRlZCBlZGdlcyB3aGVuXG4vLyBjdXN0b21pemluZyBwYWRkaW5nIG9yIGZvbnQtc2l6ZSBvbiBsYWJlbHMuXG4kYmFkZ2UtcGlsbC1ib3JkZXItcmFkaXVzOiAgICAgICAgICAxMHJlbSAhZGVmYXVsdDtcblxuXG4vLyBNb2RhbHNcblxuLy8gUGFkZGluZyBhcHBsaWVkIHRvIHRoZSBtb2RhbCBib2R5XG4kbW9kYWwtaW5uZXItcGFkZGluZzogICAgICAgICAgICAgICAxcmVtICFkZWZhdWx0O1xuXG4kbW9kYWwtZGlhbG9nLW1hcmdpbjogICAgICAgICAgICAgICAuNXJlbSAhZGVmYXVsdDtcbiRtb2RhbC1kaWFsb2ctbWFyZ2luLXktc20tdXA6ICAgICAgIDEuNzVyZW0gIWRlZmF1bHQ7XG5cbiRtb2RhbC10aXRsZS1saW5lLWhlaWdodDogICAgICAgICAgICRsaW5lLWhlaWdodC1iYXNlICFkZWZhdWx0O1xuXG4kbW9kYWwtY29udGVudC1jb2xvcjogICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJG1vZGFsLWNvbnRlbnQtYmc6ICAgICAgICAgICAgICAgICAgJHdoaXRlICFkZWZhdWx0O1xuJG1vZGFsLWNvbnRlbnQtYm9yZGVyLWNvbG9yOiAgICAgICAgcmdiYSgkYmxhY2ssIC4yKSAhZGVmYXVsdDtcbiRtb2RhbC1jb250ZW50LWJvcmRlci13aWR0aDogICAgICAgICRib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kbW9kYWwtY29udGVudC1ib3JkZXItcmFkaXVzOiAgICAgICAkYm9yZGVyLXJhZGl1cy1sZyAhZGVmYXVsdDtcbiRtb2RhbC1jb250ZW50LWJveC1zaGFkb3cteHM6ICAgICAgIDAgLjI1cmVtIC41cmVtIHJnYmEoJGJsYWNrLCAuNSkgIWRlZmF1bHQ7XG4kbW9kYWwtY29udGVudC1ib3gtc2hhZG93LXNtLXVwOiAgICAwIC41cmVtIDFyZW0gcmdiYSgkYmxhY2ssIC41KSAhZGVmYXVsdDtcblxuJG1vZGFsLWJhY2tkcm9wLWJnOiAgICAgICAgICAgICAgICAgJGJsYWNrICFkZWZhdWx0O1xuJG1vZGFsLWJhY2tkcm9wLW9wYWNpdHk6ICAgICAgICAgICAgLjUgIWRlZmF1bHQ7XG4kbW9kYWwtaGVhZGVyLWJvcmRlci1jb2xvcjogICAgICAgICAkYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJG1vZGFsLWZvb3Rlci1ib3JkZXItY29sb3I6ICAgICAgICAgJG1vZGFsLWhlYWRlci1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kbW9kYWwtaGVhZGVyLWJvcmRlci13aWR0aDogICAgICAgICAkbW9kYWwtY29udGVudC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kbW9kYWwtZm9vdGVyLWJvcmRlci13aWR0aDogICAgICAgICAkbW9kYWwtaGVhZGVyLWJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRtb2RhbC1oZWFkZXItcGFkZGluZy15OiAgICAgICAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kbW9kYWwtaGVhZGVyLXBhZGRpbmcteDogICAgICAgICAgICAxcmVtICFkZWZhdWx0O1xuJG1vZGFsLWhlYWRlci1wYWRkaW5nOiAgICAgICAgICAgICAgJG1vZGFsLWhlYWRlci1wYWRkaW5nLXkgJG1vZGFsLWhlYWRlci1wYWRkaW5nLXggIWRlZmF1bHQ7IC8vIEtlZXAgdGhpcyBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcblxuJG1vZGFsLXhsOiAgICAgICAgICAgICAgICAgICAgICAgICAgMTE0MHB4ICFkZWZhdWx0O1xuJG1vZGFsLWxnOiAgICAgICAgICAgICAgICAgICAgICAgICAgODAwcHggIWRlZmF1bHQ7XG4kbW9kYWwtbWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICA1MDBweCAhZGVmYXVsdDtcbiRtb2RhbC1zbTogICAgICAgICAgICAgICAgICAgICAgICAgIDMwMHB4ICFkZWZhdWx0O1xuXG4kbW9kYWwtZmFkZS10cmFuc2Zvcm06ICAgICAgICAgICAgICB0cmFuc2xhdGUoMCwgLTUwcHgpICFkZWZhdWx0O1xuJG1vZGFsLXNob3ctdHJhbnNmb3JtOiAgICAgICAgICAgICAgbm9uZSAhZGVmYXVsdDtcbiRtb2RhbC10cmFuc2l0aW9uOiAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybSAuM3MgZWFzZS1vdXQgIWRlZmF1bHQ7XG5cblxuLy8gQWxlcnRzXG4vL1xuLy8gRGVmaW5lIGFsZXJ0IGNvbG9ycywgYm9yZGVyIHJhZGl1cywgYW5kIHBhZGRpbmcuXG5cbiRhbGVydC1wYWRkaW5nLXk6ICAgICAgICAgICAgICAgICAgIC43NXJlbSAhZGVmYXVsdDtcbiRhbGVydC1wYWRkaW5nLXg6ICAgICAgICAgICAgICAgICAgIDEuMjVyZW0gIWRlZmF1bHQ7XG4kYWxlcnQtbWFyZ2luLWJvdHRvbTogICAgICAgICAgICAgICAxcmVtICFkZWZhdWx0O1xuJGFsZXJ0LWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgJGJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG4kYWxlcnQtbGluay1mb250LXdlaWdodDogICAgICAgICAgICAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbiRhbGVydC1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICRib3JkZXItd2lkdGggIWRlZmF1bHQ7XG5cbiRhbGVydC1iZy1sZXZlbDogICAgICAgICAgICAgICAgICAgIC0xMCAhZGVmYXVsdDtcbiRhbGVydC1ib3JkZXItbGV2ZWw6ICAgICAgICAgICAgICAgIC05ICFkZWZhdWx0O1xuJGFsZXJ0LWNvbG9yLWxldmVsOiAgICAgICAgICAgICAgICAgNiAhZGVmYXVsdDtcblxuXG4vLyBQcm9ncmVzcyBiYXJzXG5cbiRwcm9ncmVzcy1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtZm9udC1zaXplOiAgICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAuNzUgIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtYmc6ICAgICAgICAgICAgICAgICAgICAgICAkZ3JheS0yMDAgIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAkYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcbiRwcm9ncmVzcy1ib3gtc2hhZG93OiAgICAgICAgICAgICAgIGluc2V0IDAgLjFyZW0gLjFyZW0gcmdiYSgkYmxhY2ssIC4xKSAhZGVmYXVsdDtcbiRwcm9ncmVzcy1iYXItY29sb3I6ICAgICAgICAgICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcbiRwcm9ncmVzcy1iYXItYmc6ICAgICAgICAgICAgICAgICAgIHRoZW1lLWNvbG9yKFwicHJpbWFyeVwiKSAhZGVmYXVsdDtcbiRwcm9ncmVzcy1iYXItYW5pbWF0aW9uLXRpbWluZzogICAgIDFzIGxpbmVhciBpbmZpbml0ZSAhZGVmYXVsdDtcbiRwcm9ncmVzcy1iYXItdHJhbnNpdGlvbjogICAgICAgICAgIHdpZHRoIC42cyBlYXNlICFkZWZhdWx0O1xuXG5cbi8vIExpc3QgZ3JvdXBcblxuJGxpc3QtZ3JvdXAtY29sb3I6ICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWJnOiAgICAgICAgICAgICAgICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWJvcmRlci1jb2xvcjogICAgICAgICAgIHJnYmEoJGJsYWNrLCAuMTI1KSAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWJvcmRlci13aWR0aDogICAgICAgICAgICRib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kbGlzdC1ncm91cC1ib3JkZXItcmFkaXVzOiAgICAgICAgICAkYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcblxuJGxpc3QtZ3JvdXAtaXRlbS1wYWRkaW5nLXk6ICAgICAgICAgLjc1cmVtICFkZWZhdWx0O1xuJGxpc3QtZ3JvdXAtaXRlbS1wYWRkaW5nLXg6ICAgICAgICAgMS4yNXJlbSAhZGVmYXVsdDtcblxuJGxpc3QtZ3JvdXAtaG92ZXItYmc6ICAgICAgICAgICAgICAgJGdyYXktMTAwICFkZWZhdWx0O1xuJGxpc3QtZ3JvdXAtYWN0aXZlLWNvbG9yOiAgICAgICAgICAgJGNvbXBvbmVudC1hY3RpdmUtY29sb3IgIWRlZmF1bHQ7XG4kbGlzdC1ncm91cC1hY3RpdmUtYmc6ICAgICAgICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1iZyAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWFjdGl2ZS1ib3JkZXItY29sb3I6ICAgICRsaXN0LWdyb3VwLWFjdGl2ZS1iZyAhZGVmYXVsdDtcblxuJGxpc3QtZ3JvdXAtZGlzYWJsZWQtY29sb3I6ICAgICAgICAgJGdyYXktNjAwICFkZWZhdWx0O1xuJGxpc3QtZ3JvdXAtZGlzYWJsZWQtYmc6ICAgICAgICAgICAgJGxpc3QtZ3JvdXAtYmcgIWRlZmF1bHQ7XG5cbiRsaXN0LWdyb3VwLWFjdGlvbi1jb2xvcjogICAgICAgICAgICRncmF5LTcwMCAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWFjdGlvbi1ob3Zlci1jb2xvcjogICAgICRsaXN0LWdyb3VwLWFjdGlvbi1jb2xvciAhZGVmYXVsdDtcblxuJGxpc3QtZ3JvdXAtYWN0aW9uLWFjdGl2ZS1jb2xvcjogICAgJGJvZHktY29sb3IgIWRlZmF1bHQ7XG4kbGlzdC1ncm91cC1hY3Rpb24tYWN0aXZlLWJnOiAgICAgICAkZ3JheS0yMDAgIWRlZmF1bHQ7XG5cblxuLy8gSW1hZ2UgdGh1bWJuYWlsc1xuXG4kdGh1bWJuYWlsLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAuMjVyZW0gIWRlZmF1bHQ7XG4kdGh1bWJuYWlsLWJnOiAgICAgICAgICAgICAgICAgICAgICAkYm9keS1iZyAhZGVmYXVsdDtcbiR0aHVtYm5haWwtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICRib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kdGh1bWJuYWlsLWJvcmRlci1jb2xvcjogICAgICAgICAgICAkZ3JheS0zMDAgIWRlZmF1bHQ7XG4kdGh1bWJuYWlsLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAkYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcbiR0aHVtYm5haWwtYm94LXNoYWRvdzogICAgICAgICAgICAgIDAgMXB4IDJweCByZ2JhKCRibGFjaywgLjA3NSkgIWRlZmF1bHQ7XG5cblxuLy8gRmlndXJlc1xuXG4kZmlndXJlLWNhcHRpb24tZm9udC1zaXplOiAgICAgICAgICA5MCUgIWRlZmF1bHQ7XG4kZmlndXJlLWNhcHRpb24tY29sb3I6ICAgICAgICAgICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG5cblxuLy8gQnJlYWRjcnVtYnNcblxuJGJyZWFkY3J1bWItcGFkZGluZy15OiAgICAgICAgICAgICAgLjc1cmVtICFkZWZhdWx0O1xuJGJyZWFkY3J1bWItcGFkZGluZy14OiAgICAgICAgICAgICAgMXJlbSAhZGVmYXVsdDtcbiRicmVhZGNydW1iLWl0ZW0tcGFkZGluZzogICAgICAgICAgIC41cmVtICFkZWZhdWx0O1xuXG4kYnJlYWRjcnVtYi1tYXJnaW4tYm90dG9tOiAgICAgICAgICAxcmVtICFkZWZhdWx0O1xuXG4kYnJlYWRjcnVtYi1iZzogICAgICAgICAgICAgICAgICAgICAkZ3JheS0yMDAgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1kaXZpZGVyLWNvbG9yOiAgICAgICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1hY3RpdmUtY29sb3I6ICAgICAgICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1kaXZpZGVyOiAgICAgICAgICAgICAgICBxdW90ZShcIi9cIikgIWRlZmF1bHQ7XG5cbiRicmVhZGNydW1iLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICRib3JkZXItcmFkaXVzICFkZWZhdWx0O1xuXG5cbi8vIENhcm91c2VsXG5cbiRjYXJvdXNlbC1jb250cm9sLWNvbG9yOiAgICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtY29udHJvbC13aWR0aDogICAgICAgICAgICAgMTUlICFkZWZhdWx0O1xuJGNhcm91c2VsLWNvbnRyb2wtb3BhY2l0eTogICAgICAgICAgIC41ICFkZWZhdWx0O1xuJGNhcm91c2VsLWNvbnRyb2wtaG92ZXItb3BhY2l0eTogICAgIC45ICFkZWZhdWx0O1xuJGNhcm91c2VsLWNvbnRyb2wtdHJhbnNpdGlvbjogICAgICAgIG9wYWNpdHkgLjE1cyBlYXNlICFkZWZhdWx0O1xuXG4kY2Fyb3VzZWwtaW5kaWNhdG9yLXdpZHRoOiAgICAgICAgICAgMzBweCAhZGVmYXVsdDtcbiRjYXJvdXNlbC1pbmRpY2F0b3ItaGVpZ2h0OiAgICAgICAgICAzcHggIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtaW5kaWNhdG9yLWhpdC1hcmVhLWhlaWdodDogMTBweCAhZGVmYXVsdDtcbiRjYXJvdXNlbC1pbmRpY2F0b3Itc3BhY2VyOiAgICAgICAgICAzcHggIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtaW5kaWNhdG9yLWFjdGl2ZS1iZzogICAgICAgJHdoaXRlICFkZWZhdWx0O1xuJGNhcm91c2VsLWluZGljYXRvci10cmFuc2l0aW9uOiAgICAgIG9wYWNpdHkgLjZzIGVhc2UgIWRlZmF1bHQ7XG5cbiRjYXJvdXNlbC1jYXB0aW9uLXdpZHRoOiAgICAgICAgICAgICA3MCUgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtY2FwdGlvbi1jb2xvcjogICAgICAgICAgICAgJHdoaXRlICFkZWZhdWx0O1xuXG4kY2Fyb3VzZWwtY29udHJvbC1pY29uLXdpZHRoOiAgICAgICAgMjBweCAhZGVmYXVsdDtcblxuJGNhcm91c2VsLWNvbnRyb2wtcHJldi1pY29uLWJnOiAgICAgIHN0ci1yZXBsYWNlKHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBmaWxsPScjeyRjYXJvdXNlbC1jb250cm9sLWNvbG9yfScgdmlld0JveD0nMCAwIDggOCclM2UlM2NwYXRoIGQ9J001LjI1IDBsLTQgNCA0IDQgMS41LTEuNS0yLjUtMi41IDIuNS0yLjUtMS41LTEuNXonLyUzZSUzYy9zdmclM2VcIiksIFwiI1wiLCBcIiUyM1wiKSAhZGVmYXVsdDtcbiRjYXJvdXNlbC1jb250cm9sLW5leHQtaWNvbi1iZzogICAgICBzdHItcmVwbGFjZSh1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgZmlsbD0nI3skY2Fyb3VzZWwtY29udHJvbC1jb2xvcn0nIHZpZXdCb3g9JzAgMCA4IDgnJTNlJTNjcGF0aCBkPSdNMi43NSAwbC0xLjUgMS41IDIuNSAyLjUtMi41IDIuNSAxLjUgMS41IDQtNC00LTR6Jy8lM2UlM2Mvc3ZnJTNlXCIpLCBcIiNcIiwgXCIlMjNcIikgIWRlZmF1bHQ7XG5cbiRjYXJvdXNlbC10cmFuc2l0aW9uLWR1cmF0aW9uOiAgICAgICAuNnMgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtdHJhbnNpdGlvbjogICAgICAgICAgICAgICAgdHJhbnNmb3JtICRjYXJvdXNlbC10cmFuc2l0aW9uLWR1cmF0aW9uIGVhc2UtaW4tb3V0ICFkZWZhdWx0OyAvLyBEZWZpbmUgdHJhbnNmb3JtIHRyYW5zaXRpb24gZmlyc3QgaWYgdXNpbmcgbXVsdGlwbGUgdHJhbnNpdGlvbnMgKGUuZy4sIGB0cmFuc2Zvcm0gMnMgZWFzZSwgb3BhY2l0eSAuNXMgZWFzZS1vdXRgKVxuXG5cbi8vIFNwaW5uZXJzXG5cbiRzcGlubmVyLXdpZHRoOiAgICAgICAgIDJyZW0gIWRlZmF1bHQ7XG4kc3Bpbm5lci1oZWlnaHQ6ICAgICAgICAkc3Bpbm5lci13aWR0aCAhZGVmYXVsdDtcbiRzcGlubmVyLWJvcmRlci13aWR0aDogIC4yNWVtICFkZWZhdWx0O1xuXG4kc3Bpbm5lci13aWR0aC1zbTogICAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kc3Bpbm5lci1oZWlnaHQtc206ICAgICAgICRzcGlubmVyLXdpZHRoLXNtICFkZWZhdWx0O1xuJHNwaW5uZXItYm9yZGVyLXdpZHRoLXNtOiAuMmVtICFkZWZhdWx0O1xuXG5cbi8vIENsb3NlXG5cbiRjbG9zZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICRmb250LXNpemUtYmFzZSAqIDEuNSAhZGVmYXVsdDtcbiRjbG9zZS1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJGNsb3NlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgJGJsYWNrICFkZWZhdWx0O1xuJGNsb3NlLXRleHQtc2hhZG93OiAgICAgICAgICAgICAgICAgMCAxcHggMCAkd2hpdGUgIWRlZmF1bHQ7XG5cblxuLy8gQ29kZVxuXG4kY29kZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICA4Ny41JSAhZGVmYXVsdDtcbiRjb2RlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICRwaW5rICFkZWZhdWx0O1xuXG4ka2JkLXBhZGRpbmcteTogICAgICAgICAgICAgICAgICAgICAuMnJlbSAhZGVmYXVsdDtcbiRrYmQtcGFkZGluZy14OiAgICAgICAgICAgICAgICAgICAgIC40cmVtICFkZWZhdWx0O1xuJGtiZC1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAgJGNvZGUtZm9udC1zaXplICFkZWZhdWx0O1xuJGtiZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgJHdoaXRlICFkZWZhdWx0O1xuJGtiZC1iZzogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdyYXktOTAwICFkZWZhdWx0O1xuXG4kcHJlLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAkZ3JheS05MDAgIWRlZmF1bHQ7XG4kcHJlLXNjcm9sbGFibGUtbWF4LWhlaWdodDogICAgICAgICAzNDBweCAhZGVmYXVsdDtcblxuXG4vLyBVdGlsaXRpZXNcblxuJGRpc3BsYXlzOiBub25lLCBpbmxpbmUsIGlubGluZS1ibG9jaywgYmxvY2ssIHRhYmxlLCB0YWJsZS1yb3csIHRhYmxlLWNlbGwsIGZsZXgsIGlubGluZS1mbGV4ICFkZWZhdWx0O1xuJG92ZXJmbG93czogYXV0bywgaGlkZGVuICFkZWZhdWx0O1xuJHBvc2l0aW9uczogc3RhdGljLCByZWxhdGl2ZSwgYWJzb2x1dGUsIGZpeGVkLCBzdGlja3kgIWRlZmF1bHQ7XG5cblxuLy8gUHJpbnRpbmdcblxuJHByaW50LXBhZ2Utc2l6ZTogICAgICAgICAgICAgICAgICAgYTMgIWRlZmF1bHQ7XG4kcHJpbnQtYm9keS1taW4td2lkdGg6ICAgICAgICAgICAgICBtYXAtZ2V0KCRncmlkLWJyZWFrcG9pbnRzLCBcImxnXCIpICFkZWZhdWx0O1xuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgcHJvcGVydHktYmxhY2tsaXN0LCBzY3NzL2RvbGxhci12YXJpYWJsZS1kZWZhdWx0XG5cbi8vIFNDU1MgUkZTIG1peGluXG4vL1xuLy8gQXV0b21hdGVkIGZvbnQtcmVzaXppbmdcbi8vXG4vLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvcmZzXG5cbi8vIENvbmZpZ3VyYXRpb25cblxuLy8gQmFzZSBmb250IHNpemVcbiRyZnMtYmFzZS1mb250LXNpemU6IDEuMjVyZW0gIWRlZmF1bHQ7XG4kcmZzLWZvbnQtc2l6ZS11bml0OiByZW0gIWRlZmF1bHQ7XG5cbi8vIEJyZWFrcG9pbnQgYXQgd2hlcmUgZm9udC1zaXplIHN0YXJ0cyBkZWNyZWFzaW5nIGlmIHNjcmVlbiB3aWR0aCBpcyBzbWFsbGVyXG4kcmZzLWJyZWFrcG9pbnQ6IDEyMDBweCAhZGVmYXVsdDtcbiRyZnMtYnJlYWtwb2ludC11bml0OiBweCAhZGVmYXVsdDtcblxuLy8gUmVzaXplIGZvbnQtc2l6ZSBiYXNlZCBvbiBzY3JlZW4gaGVpZ2h0IGFuZCB3aWR0aFxuJHJmcy10d28tZGltZW5zaW9uYWw6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBGYWN0b3Igb2YgZGVjcmVhc2VcbiRyZnMtZmFjdG9yOiAxMCAhZGVmYXVsdDtcblxuQGlmIHR5cGUtb2YoJHJmcy1mYWN0b3IpICE9IFwibnVtYmVyXCIgb3IgJHJmcy1mYWN0b3IgPD0gMSB7XG4gIEBlcnJvciBcImAjeyRyZnMtZmFjdG9yfWAgaXMgbm90IGEgdmFsaWQgICRyZnMtZmFjdG9yLCBpdCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxLlwiO1xufVxuXG4vLyBHZW5lcmF0ZSBlbmFibGUgb3IgZGlzYWJsZSBjbGFzc2VzLiBQb3NzaWJpbGl0aWVzOiBmYWxzZSwgXCJlbmFibGVcIiBvciBcImRpc2FibGVcIlxuJHJmcy1jbGFzczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIDEgcmVtID0gJHJmcy1yZW0tdmFsdWUgcHhcbiRyZnMtcmVtLXZhbHVlOiAxNiAhZGVmYXVsdDtcblxuLy8gU2FmYXJpIGlmcmFtZSByZXNpemUgYnVnOiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9yZnMvaXNzdWVzLzE0XG4kcmZzLXNhZmFyaS1pZnJhbWUtcmVzaXplLWJ1Zy1maXg6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBEaXNhYmxlIFJGUyBieSBzZXR0aW5nICRlbmFibGUtcmVzcG9uc2l2ZS1mb250LXNpemVzIHRvIGZhbHNlXG4kZW5hYmxlLXJlc3BvbnNpdmUtZm9udC1zaXplczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gQ2FjaGUgJHJmcy1iYXNlLWZvbnQtc2l6ZSB1bml0XG4kcmZzLWJhc2UtZm9udC1zaXplLXVuaXQ6IHVuaXQoJHJmcy1iYXNlLWZvbnQtc2l6ZSk7XG5cbi8vIFJlbW92ZSBweC11bml0IGZyb20gJHJmcy1iYXNlLWZvbnQtc2l6ZSBmb3IgY2FsY3VsYXRpb25zXG5AaWYgJHJmcy1iYXNlLWZvbnQtc2l6ZS11bml0ID09IFwicHhcIiB7XG4gICRyZnMtYmFzZS1mb250LXNpemU6ICRyZnMtYmFzZS1mb250LXNpemUgLyAoJHJmcy1iYXNlLWZvbnQtc2l6ZSAqIDAgKyAxKTtcbn1cbkBlbHNlIGlmICRyZnMtYmFzZS1mb250LXNpemUtdW5pdCA9PSBcInJlbVwiIHtcbiAgJHJmcy1iYXNlLWZvbnQtc2l6ZTogJHJmcy1iYXNlLWZvbnQtc2l6ZSAvICgkcmZzLWJhc2UtZm9udC1zaXplICogMCArIDEgLyAkcmZzLXJlbS12YWx1ZSk7XG59XG5cbi8vIENhY2hlICRyZnMtYnJlYWtwb2ludCB1bml0IHRvIHByZXZlbnQgbXVsdGlwbGUgY2FsbHNcbiRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlOiB1bml0KCRyZnMtYnJlYWtwb2ludCk7XG5cbi8vIFJlbW92ZSB1bml0IGZyb20gJHJmcy1icmVha3BvaW50IGZvciBjYWxjdWxhdGlvbnNcbkBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZSA9PSBcInB4XCIge1xuICAkcmZzLWJyZWFrcG9pbnQ6ICRyZnMtYnJlYWtwb2ludCAvICgkcmZzLWJyZWFrcG9pbnQgKiAwICsgMSk7XG59XG5AZWxzZSBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZSA9PSBcInJlbVwiIG9yICRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlID09IFwiZW1cIiB7XG4gICRyZnMtYnJlYWtwb2ludDogJHJmcy1icmVha3BvaW50IC8gKCRyZnMtYnJlYWtwb2ludCAqIDAgKyAxIC8gJHJmcy1yZW0tdmFsdWUpO1xufVxuXG4vLyBSZXNwb25zaXZlIGZvbnQtc2l6ZSBtaXhpblxuQG1peGluIHJmcygkZnMsICRpbXBvcnRhbnQ6IGZhbHNlKSB7XG4gIC8vIENhY2hlICRmcyB1bml0XG4gICRmcy11bml0OiBpZih0eXBlLW9mKCRmcykgPT0gXCJudW1iZXJcIiwgdW5pdCgkZnMpLCBmYWxzZSk7XG5cbiAgLy8gQWRkICFpbXBvcnRhbnQgc3VmZml4IGlmIG5lZWRlZFxuICAkcmZzLXN1ZmZpeDogaWYoJGltcG9ydGFudCwgXCIgIWltcG9ydGFudFwiLCBcIlwiKTtcblxuICAvLyBJZiAkZnMgaXNuJ3QgYSBudW1iZXIgKGxpa2UgaW5oZXJpdCkgb3IgJGZzIGhhcyBhIHVuaXQgKG5vdCBweCBvciByZW0sIGxpa2UgMS41ZW0pIG9yICQgaXMgMCwganVzdCBwcmludCB0aGUgdmFsdWVcbiAgQGlmIG5vdCAkZnMtdW5pdCBvciAkZnMtdW5pdCAhPSBcIlwiIGFuZCAkZnMtdW5pdCAhPSBcInB4XCIgYW5kICRmcy11bml0ICE9IFwicmVtXCIgb3IgJGZzID09IDAge1xuICAgIGZvbnQtc2l6ZTogI3skZnN9I3skcmZzLXN1ZmZpeH07XG4gIH1cbiAgQGVsc2Uge1xuICAgIC8vIFZhcmlhYmxlcyBmb3Igc3RvcmluZyBzdGF0aWMgYW5kIGZsdWlkIHJlc2NhbGluZ1xuICAgICRyZnMtc3RhdGljOiBudWxsO1xuICAgICRyZnMtZmx1aWQ6IG51bGw7XG5cbiAgICAvLyBSZW1vdmUgcHgtdW5pdCBmcm9tICRmcyBmb3IgY2FsY3VsYXRpb25zXG4gICAgQGlmICRmcy11bml0ID09IFwicHhcIiB7XG4gICAgICAkZnM6ICRmcyAvICgkZnMgKiAwICsgMSk7XG4gICAgfVxuICAgIEBlbHNlIGlmICRmcy11bml0ID09IFwicmVtXCIge1xuICAgICAgJGZzOiAkZnMgLyAoJGZzICogMCArIDEgLyAkcmZzLXJlbS12YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gU2V0IGRlZmF1bHQgZm9udC1zaXplXG4gICAgQGlmICRyZnMtZm9udC1zaXplLXVuaXQgPT0gcmVtIHtcbiAgICAgICRyZnMtc3RhdGljOiAjeyRmcyAvICRyZnMtcmVtLXZhbHVlfXJlbSN7JHJmcy1zdWZmaXh9O1xuICAgIH1cbiAgICBAZWxzZSBpZiAkcmZzLWZvbnQtc2l6ZS11bml0ID09IHB4IHtcbiAgICAgICRyZnMtc3RhdGljOiAjeyRmc31weCN7JHJmcy1zdWZmaXh9O1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAZXJyb3IgXCJgI3skcmZzLWZvbnQtc2l6ZS11bml0fWAgaXMgbm90IGEgdmFsaWQgdW5pdCBmb3IgJHJmcy1mb250LXNpemUtdW5pdC4gVXNlIGBweGAgb3IgYHJlbWAuXCI7XG4gICAgfVxuXG4gICAgLy8gT25seSBhZGQgbWVkaWEgcXVlcnkgaWYgZm9udC1zaXplIGlzIGJpZ2dlciBhcyB0aGUgbWluaW11bSBmb250LXNpemVcbiAgICAvLyBJZiAkcmZzLWZhY3RvciA9PSAxLCBubyByZXNjYWxpbmcgd2lsbCB0YWtlIHBsYWNlXG4gICAgQGlmICRmcyA+ICRyZnMtYmFzZS1mb250LXNpemUgYW5kICRlbmFibGUtcmVzcG9uc2l2ZS1mb250LXNpemVzIHtcbiAgICAgICRtaW4td2lkdGg6IG51bGw7XG4gICAgICAkdmFyaWFibGUtdW5pdDogbnVsbDtcblxuICAgICAgLy8gQ2FsY3VsYXRlIG1pbmltdW0gZm9udC1zaXplIGZvciBnaXZlbiBmb250LXNpemVcbiAgICAgICRmcy1taW46ICRyZnMtYmFzZS1mb250LXNpemUgKyAoJGZzIC0gJHJmcy1iYXNlLWZvbnQtc2l6ZSkgLyAkcmZzLWZhY3RvcjtcblxuICAgICAgLy8gQ2FsY3VsYXRlIGRpZmZlcmVuY2UgYmV0d2VlbiBnaXZlbiBmb250LXNpemUgYW5kIG1pbmltdW0gZm9udC1zaXplIGZvciBnaXZlbiBmb250LXNpemVcbiAgICAgICRmcy1kaWZmOiAkZnMgLSAkZnMtbWluO1xuXG4gICAgICAvLyBCYXNlIGZvbnQtc2l6ZSBmb3JtYXR0aW5nXG4gICAgICAvLyBObyBuZWVkIHRvIGNoZWNrIGlmIHRoZSB1bml0IGlzIHZhbGlkLCBiZWNhdXNlIHdlIGRpZCB0aGF0IGJlZm9yZVxuICAgICAgJG1pbi13aWR0aDogaWYoJHJmcy1mb250LXNpemUtdW5pdCA9PSByZW0sICN7JGZzLW1pbiAvICRyZnMtcmVtLXZhbHVlfXJlbSwgI3skZnMtbWlufXB4KTtcblxuICAgICAgLy8gSWYgdHdvLWRpbWVuc2lvbmFsLCB1c2Ugc21hbGxlc3Qgb2Ygc2NyZWVuIHdpZHRoIGFuZCBoZWlnaHRcbiAgICAgICR2YXJpYWJsZS11bml0OiBpZigkcmZzLXR3by1kaW1lbnNpb25hbCwgdm1pbiwgdncpO1xuXG4gICAgICAvLyBDYWxjdWxhdGUgdGhlIHZhcmlhYmxlIHdpZHRoIGJldHdlZW4gMCBhbmQgJHJmcy1icmVha3BvaW50XG4gICAgICAkdmFyaWFibGUtd2lkdGg6ICN7JGZzLWRpZmYgKiAxMDAgLyAkcmZzLWJyZWFrcG9pbnR9I3skdmFyaWFibGUtdW5pdH07XG5cbiAgICAgIC8vIFNldCB0aGUgY2FsY3VsYXRlZCBmb250LXNpemUuXG4gICAgICAkcmZzLWZsdWlkOiBjYWxjKCN7JG1pbi13aWR0aH0gKyAjeyR2YXJpYWJsZS13aWR0aH0pICN7JHJmcy1zdWZmaXh9O1xuICAgIH1cblxuICAgIC8vIFJlbmRlcmluZ1xuICAgIEBpZiAkcmZzLWZsdWlkID09IG51bGwge1xuICAgICAgLy8gT25seSByZW5kZXIgc3RhdGljIGZvbnQtc2l6ZSBpZiBubyBmbHVpZCBmb250LXNpemUgaXMgYXZhaWxhYmxlXG4gICAgICBmb250LXNpemU6ICRyZnMtc3RhdGljO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkbXEtdmFsdWU6IG51bGw7XG5cbiAgICAgIC8vIFJGUyBicmVha3BvaW50IGZvcm1hdHRpbmdcbiAgICAgIEBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdCA9PSBlbSBvciAkcmZzLWJyZWFrcG9pbnQtdW5pdCA9PSByZW0ge1xuICAgICAgICAkbXEtdmFsdWU6ICN7JHJmcy1icmVha3BvaW50IC8gJHJmcy1yZW0tdmFsdWV9I3skcmZzLWJyZWFrcG9pbnQtdW5pdH07XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdCA9PSBweCB7XG4gICAgICAgICRtcS12YWx1ZTogI3skcmZzLWJyZWFrcG9pbnR9cHg7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBlcnJvciBcImAjeyRyZnMtYnJlYWtwb2ludC11bml0fWAgaXMgbm90IGEgdmFsaWQgdW5pdCBmb3IgJHJmcy1icmVha3BvaW50LXVuaXQuIFVzZSBgcHhgLCBgZW1gIG9yIGByZW1gLlwiO1xuICAgICAgfVxuXG4gICAgICBAaWYgJHJmcy1jbGFzcyA9PSBcImRpc2FibGVcIiB7XG4gICAgICAgIC8vIEFkZGluZyBhbiBleHRyYSBjbGFzcyBpbmNyZWFzZXMgc3BlY2lmaWNpdHksXG4gICAgICAgIC8vIHdoaWNoIHByZXZlbnRzIHRoZSBtZWRpYSBxdWVyeSB0byBvdmVycmlkZSB0aGUgZm9udCBzaXplXG4gICAgICAgICYsXG4gICAgICAgIC5kaXNhYmxlLXJlc3BvbnNpdmUtZm9udC1zaXplICYsXG4gICAgICAgICYuZGlzYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZSB7XG4gICAgICAgICAgZm9udC1zaXplOiAkcmZzLXN0YXRpYztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBmb250LXNpemU6ICRyZnMtc3RhdGljO1xuICAgICAgfVxuXG4gICAgICBAaWYgJHJmcy10d28tZGltZW5zaW9uYWwge1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogI3skbXEtdmFsdWV9KSwgKG1heC1oZWlnaHQ6ICN7JG1xLXZhbHVlfSkge1xuICAgICAgICAgIEBpZiAkcmZzLWNsYXNzID09IFwiZW5hYmxlXCIge1xuICAgICAgICAgICAgLmVuYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZSAmLFxuICAgICAgICAgICAgJi5lbmFibGUtcmVzcG9uc2l2ZS1mb250LXNpemUge1xuICAgICAgICAgICAgICBmb250LXNpemU6ICRyZnMtZmx1aWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHJmcy1mbHVpZDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgJHJmcy1zYWZhcmktaWZyYW1lLXJlc2l6ZS1idWctZml4IHtcbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBsZW5ndGgtemVyby1uby11bml0XG4gICAgICAgICAgICBtaW4td2lkdGg6IDB2dztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6ICN7JG1xLXZhbHVlfSkge1xuICAgICAgICAgIEBpZiAkcmZzLWNsYXNzID09IFwiZW5hYmxlXCIge1xuICAgICAgICAgICAgLmVuYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZSAmLFxuICAgICAgICAgICAgJi5lbmFibGUtcmVzcG9uc2l2ZS1mb250LXNpemUge1xuICAgICAgICAgICAgICBmb250LXNpemU6ICRyZnMtZmx1aWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHJmcy1mbHVpZDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgJHJmcy1zYWZhcmktaWZyYW1lLXJlc2l6ZS1idWctZml4IHtcbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBsZW5ndGgtemVyby1uby11bml0XG4gICAgICAgICAgICBtaW4td2lkdGg6IDB2dztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gVGhlIGZvbnQtc2l6ZSAmIHJlc3BvbnNpdmUtZm9udC1zaXplIG1peGluIHVzZXMgUkZTIHRvIHJlc2NhbGUgZm9udCBzaXplc1xuQG1peGluIGZvbnQtc2l6ZSgkZnMsICRpbXBvcnRhbnQ6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIHJmcygkZnMsICRpbXBvcnRhbnQpO1xufVxuXG5AbWl4aW4gcmVzcG9uc2l2ZS1mb250LXNpemUoJGZzLCAkaW1wb3J0YW50OiBmYWxzZSkge1xuICBAaW5jbHVkZSByZnMoJGZzLCAkaW1wb3J0YW50KTtcbn1cbiIsIi8vIENvbG9yIHN5c3RlbVxyXG4vLyBzdHlsZWxpbnQtZGlzYWJsZVxyXG5cclxuJHdoaXRlOiAgICAgI2ZmZiAhZGVmYXVsdDtcclxuJGdyYXktYmFzZTogIzE4MWIxZSAhZGVmYXVsdDtcclxuJGdyYXktMTAwOiAgI2YwZjNmNSAhZGVmYXVsdDsgLy8gbGlnaHRlbigkZ3JheS1iYXNlLCA4NSUpO1xyXG4kZ3JheS0yMDA6ICAjZTRlN2VhICFkZWZhdWx0OyAvLyBsaWdodGVuKCRncmF5LWJhc2UsIDgwJSk7XHJcbiRncmF5LTMwMDogICNjOGNlZDMgIWRlZmF1bHQ7IC8vIGxpZ2h0ZW4oJGdyYXktYmFzZSwgNzAlKTtcclxuJGdyYXktNDAwOiAgI2FjYjRiYyAhZGVmYXVsdDsgLy8gbGlnaHRlbigkZ3JheS1iYXNlLCA2MCUpO1xyXG4kZ3JheS01MDA6ICAjOGY5YmE2ICFkZWZhdWx0OyAvLyBsaWdodGVuKCRncmF5LWJhc2UsIDUwJSk7XHJcbiRncmF5LTYwMDogICM3MzgxOGYgIWRlZmF1bHQ7IC8vIGxpZ2h0ZW4oJGdyYXktYmFzZSwgNDAlKTtcclxuJGdyYXktNzAwOiAgIzVjNjg3MyAhZGVmYXVsdDsgLy8gbGlnaHRlbigkZ3JheS1iYXNlLCAzMCUpO1xyXG4kZ3JheS04MDA6ICAjMmYzNTNhICFkZWZhdWx0OyAvLyBsaWdodGVuKCRncmF5LWJhc2UsIDEwJSk7XHJcbiRncmF5LTkwMDogICMyMzI4MmMgIWRlZmF1bHQ7IC8vIGxpZ2h0ZW4oJGdyYXktYmFzZSwgNSUpO1xyXG4kYmxhY2s6ICAgICAjMDAwICFkZWZhdWx0O1xyXG5cclxuJGdyYXlzOiAoKSAhZGVmYXVsdDtcclxuJGdyYXlzOiBtYXAtbWVyZ2UoXHJcbiAgKFxyXG4gICAgXCIxMDBcIjogJGdyYXktMTAwLFxyXG4gICAgXCIyMDBcIjogJGdyYXktMjAwLFxyXG4gICAgXCIzMDBcIjogJGdyYXktMzAwLFxyXG4gICAgXCI0MDBcIjogJGdyYXktNDAwLFxyXG4gICAgXCI1MDBcIjogJGdyYXktNTAwLFxyXG4gICAgXCI2MDBcIjogJGdyYXktNjAwLFxyXG4gICAgXCI3MDBcIjogJGdyYXktNzAwLFxyXG4gICAgXCI4MDBcIjogJGdyYXktODAwLFxyXG4gICAgXCI5MDBcIjogJGdyYXktOTAwXHJcbiAgKSxcclxuICAkZ3JheXNcclxuKTtcclxuXHJcbiRibHVlOiAgICAgICAjMjBhOGQ4ICFkZWZhdWx0O1xyXG4kaW5kaWdvOiAgICAgIzY2MTBmMiAhZGVmYXVsdDtcclxuJHB1cnBsZTogICAgICM2ZjQyYzEgIWRlZmF1bHQ7XHJcbiRwaW5rOiAgICAgICAjZTgzZThjICFkZWZhdWx0O1xyXG4kcmVkOiAgICAgICAgI2Y4NmM2YiAhZGVmYXVsdDtcclxuJG9yYW5nZTogICAgICNmOGNiMDAgIWRlZmF1bHQ7XHJcbiR5ZWxsb3c6ICAgICAjZmZjMTA3ICFkZWZhdWx0O1xyXG4kZ3JlZW46ICAgICAgIzRkYmQ3NCAhZGVmYXVsdDtcclxuJHRlYWw6ICAgICAgICMyMGM5OTcgIWRlZmF1bHQ7XHJcbiRjeWFuOiAgICAgICAjMTdhMmI4ICFkZWZhdWx0O1xyXG4kbGlnaHQtYmx1ZTogIzYzYzJkZSAhZGVmYXVsdDtcclxuXHJcbiRjb2xvcnM6ICgpICFkZWZhdWx0O1xyXG4kY29sb3JzOiBtYXAtbWVyZ2UoXHJcbiAgKFxyXG4gICAgXCJibHVlXCI6ICAgICAgICRibHVlLFxyXG4gICAgXCJpbmRpZ29cIjogICAgICRpbmRpZ28sXHJcbiAgICBcInB1cnBsZVwiOiAgICAgJHB1cnBsZSxcclxuICAgIFwicGlua1wiOiAgICAgICAkcGluayxcclxuICAgIFwicmVkXCI6ICAgICAgICAkcmVkLFxyXG4gICAgXCJvcmFuZ2VcIjogICAgICRvcmFuZ2UsXHJcbiAgICBcInllbGxvd1wiOiAgICAgJHllbGxvdyxcclxuICAgIFwiZ3JlZW5cIjogICAgICAkZ3JlZW4sXHJcbiAgICBcInRlYWxcIjogICAgICAgJHRlYWwsXHJcbiAgICBcImN5YW5cIjogICAgICAgJGN5YW4sXHJcbiAgICBcImxpZ2h0LWJsdWVcIjogJGxpZ2h0LWJsdWUsXHJcbiAgICBcIndoaXRlXCI6ICAgICAgJHdoaXRlLFxyXG4gICAgXCJncmF5XCI6ICAgICAgICRncmF5LTYwMCxcclxuICAgIFwiZ3JheS1kYXJrXCI6ICAkZ3JheS04MDBcclxuICApLFxyXG4gICRjb2xvcnNcclxuKTtcclxuXHJcbiRwcmltYXJ5OiAgICAgICAkYmx1ZSAhZGVmYXVsdDtcclxuJHNlY29uZGFyeTogICAgICRncmF5LTMwMCAhZGVmYXVsdDtcclxuJHN1Y2Nlc3M6ICAgICAgICRncmVlbiAhZGVmYXVsdDtcclxuJGluZm86ICAgICAgICAgICRsaWdodC1ibHVlICFkZWZhdWx0O1xyXG4kd2FybmluZzogICAgICAgJHllbGxvdyAhZGVmYXVsdDtcclxuJGRhbmdlcjogICAgICAgICRyZWQgIWRlZmF1bHQ7XHJcbiRsaWdodDogICAgICAgICAkZ3JheS0xMDAgIWRlZmF1bHQ7XHJcbiRkYXJrOiAgICAgICAgICAkZ3JheS04MDAgIWRlZmF1bHQ7XHJcblxyXG4kdGhlbWUtY29sb3JzOiAoKSAhZGVmYXVsdDtcclxuJHRoZW1lLWNvbG9yczogbWFwLW1lcmdlKFxyXG4gIChcclxuICAgIFwicHJpbWFyeVwiOiAgICAkcHJpbWFyeSxcclxuICAgIFwic2Vjb25kYXJ5XCI6ICAkc2Vjb25kYXJ5LFxyXG4gICAgXCJzdWNjZXNzXCI6ICAgICRzdWNjZXNzLFxyXG4gICAgXCJpbmZvXCI6ICAgICAgICRpbmZvLFxyXG4gICAgXCJ3YXJuaW5nXCI6ICAgICR3YXJuaW5nLFxyXG4gICAgXCJkYW5nZXJcIjogICAgICRkYW5nZXIsXHJcbiAgICBcImxpZ2h0XCI6ICAgICAgJGxpZ2h0LFxyXG4gICAgXCJkYXJrXCI6ICAgICAgICRkYXJrXHJcbiAgKSxcclxuICAkdGhlbWUtY29sb3JzXHJcbik7XHJcblxyXG4vLyBCcmFuZCBDb2xvcnNcclxuXHJcbiRmYWNlYm9vazogICAgICAgIzNiNTk5OCAhZGVmYXVsdDtcclxuJHR3aXR0ZXI6ICAgICAgICAjMDBhY2VkICFkZWZhdWx0O1xyXG4kbGlua2VkaW46ICAgICAgICM0ODc1YjQgIWRlZmF1bHQ7XHJcbiRnb29nbGUtcGx1czogICAgI2QzNDgzNiAhZGVmYXVsdDtcclxuJGZsaWNrcjogICAgICAgICAjZmYwMDg0ICFkZWZhdWx0O1xyXG4kdHVtYmxyOiAgICAgICAgICMzMjUwNmQgIWRlZmF1bHQ7XHJcbiR4aW5nOiAgICAgICAgICAgIzAyNjQ2NiAhZGVmYXVsdDtcclxuJGdpdGh1YjogICAgICAgICAjNDE4M2M0ICFkZWZhdWx0O1xyXG4kaHRtbDU6ICAgICAgICAgICNlMzRmMjYgIWRlZmF1bHQ7XHJcbiRvcGVuaWQ6ICAgICAgICAgI2Y3OGM0MCAhZGVmYXVsdDtcclxuJHN0YWNrLW92ZXJmbG93OiAjZmU3YTE1ICFkZWZhdWx0O1xyXG4keW91dHViZTogICAgICAgICNiMDAgIWRlZmF1bHQ7XHJcbiRjc3MzOiAgICAgICAgICAgIzAxNzBiYSAhZGVmYXVsdDtcclxuJGRyaWJiYmxlOiAgICAgICAjZWE0Yzg5ICFkZWZhdWx0O1xyXG4kZ29vZ2xlLXBsdXM6ICAgICNiYjRiMzkgIWRlZmF1bHQ7XHJcbiRpbnN0YWdyYW06ICAgICAgIzUxN2ZhNCAhZGVmYXVsdDtcclxuJHBpbnRlcmVzdDogICAgICAjY2IyMDI3ICFkZWZhdWx0O1xyXG4kdms6ICAgICAgICAgICAgICM0NTY2OGUgIWRlZmF1bHQ7XHJcbiR5YWhvbzogICAgICAgICAgIzQwMDE5MSAhZGVmYXVsdDtcclxuJGJlaGFuY2U6ICAgICAgICAjMTc2OWZmICFkZWZhdWx0O1xyXG4kZHJvcGJveDogICAgICAgICMwMDdlZTUgIWRlZmF1bHQ7XHJcbiRyZWRkaXQ6ICAgICAgICAgI2ZmNDUwMCAhZGVmYXVsdDtcclxuJHNwb3RpZnk6ICAgICAgICAjN2FiODAwICFkZWZhdWx0O1xyXG4kdmluZTogICAgICAgICAgICMwMGJmOGYgIWRlZmF1bHQ7XHJcbiRmb3Vyc3F1YXJlOiAgICAgIzEwNzNhZiAhZGVmYXVsdDtcclxuJHZpbWVvOiAgICAgICAgICAjYWFkNDUwICFkZWZhdWx0O1xyXG5cclxuJGJyYW5kcy1jb2xvcnM6ICgpICFkZWZhdWx0O1xyXG4kYnJhbmRzLWNvbG9yczogbWFwLW1lcmdlKChcclxuICBcImZhY2Vib29rXCI6ICAgICAgICRmYWNlYm9vayxcclxuICBcInR3aXR0ZXJcIjogICAgICAgICR0d2l0dGVyLFxyXG4gIFwibGlua2VkaW5cIjogICAgICAgJGxpbmtlZGluLFxyXG4gIFwiZ29vZ2xlLXBsdXNcIjogICAgJGdvb2dsZS1wbHVzLFxyXG4gIFwiZmxpY2tyXCI6ICAgICAgICAgJGZsaWNrcixcclxuICBcInR1bWJsclwiOiAgICAgICAgICR0dW1ibHIsXHJcbiAgXCJ4aW5nXCI6ICAgICAgICAgICAkeGluZyxcclxuICBcImdpdGh1YlwiOiAgICAgICAgICRnaXRodWIsXHJcbiAgXCJodG1sNVwiOiAgICAgICAgICAkaHRtbDUsXHJcbiAgXCJvcGVuaWRcIjogICAgICAgICAkb3BlbmlkLFxyXG4gIFwic3RhY2stb3ZlcmZsb3dcIjogJHN0YWNrLW92ZXJmbG93LFxyXG4gIFwieW91dHViZVwiOiAgICAgICAgJHlvdXR1YmUsXHJcbiAgXCJjc3MzXCI6ICAgICAgICAgICAkY3NzMyxcclxuICBcImRyaWJiYmxlXCI6ICAgICAgICRkcmliYmJsZSxcclxuICBcImluc3RhZ3JhbVwiOiAgICAgICRpbnN0YWdyYW0sXHJcbiAgXCJwaW50ZXJlc3RcIjogICAgICAkcGludGVyZXN0LFxyXG4gIFwidmtcIjogICAgICAgICAgICAgJHZrLFxyXG4gIFwieWFob29cIjogICAgICAgICAgJHlhaG9vLFxyXG4gIFwiYmVoYW5jZVwiOiAgICAgICAgJGJlaGFuY2UsXHJcbiAgXCJkcm9wYm94XCI6ICAgICAgICAkZHJvcGJveCxcclxuICBcInJlZGRpdFwiOiAgICAgICAgICRyZWRkaXQsXHJcbiAgXCJzcG90aWZ5XCI6ICAgICAgICAkc3BvdGlmeSxcclxuICBcInZpbmVcIjogICAgICAgICAgICR2aW5lLFxyXG4gIFwiZm91cnNxdWFyZVwiOiAgICAgJGZvdXJzcXVhcmUsXHJcbiAgXCJ2aW1lb1wiOiAgICAgICAgICAkdmltZW9cclxuKSwgJGJyYW5kcy1jb2xvcnMpO1xyXG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZVxyXG4vLyBCb290c3RyYXAgb3ZlcnJpZGVzXHJcblxyXG4vLyBPcHRpb25zXHJcbi8vXHJcbi8vIFF1aWNrbHkgbW9kaWZ5IGdsb2JhbCBzdHlsaW5nIGJ5IGVuYWJsaW5nIG9yIGRpc2FibGluZyBvcHRpb25hbCBmZWF0dXJlcy5cclxuXHJcbiRlbmFibGUtdHJhbnNpdGlvbnM6ICAgICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8gQm9keVxyXG4vL1xyXG4vLyBTZXR0aW5ncyBmb3IgdGhlIGA8Ym9keT5gIGVsZW1lbnQuXHJcblxyXG4kYm9keS1iZzogICAgICAgICAgICAgICAgICAgICAgICAgI2U0ZTVlNiAhZGVmYXVsdDtcclxuJGJvZHktY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICRncmF5LTkwMCAhZGVmYXVsdDtcclxuXHJcbi8vIENvbXBvbmVudHNcclxuLy9cclxuLy8gRGVmaW5lIGNvbW1vbiBwYWRkaW5nIGFuZCBib3JkZXIgcmFkaXVzIHNpemVzIGFuZCBtb3JlLlxyXG5cclxuJGJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICRncmF5LTMwMCAhZGVmYXVsdDtcclxuXHJcbi8vIFR5cG9ncmFwaHlcclxuLy9cclxuLy8gRm9udCwgbGluZS1oZWlnaHQsIGFuZCBjb2xvciBmb3IgYm9keSB0ZXh0LCBoZWFkaW5ncywgYW5kIG1vcmUuXHJcblxyXG4kZm9udC1zaXplLWJhc2U6ICAgICAgICAgICAgICAgICAgLjg3NXJlbSAhZGVmYXVsdDtcclxuXHJcbi8vIEJyZWFkY3J1bWJzXHJcblxyXG4kYnJlYWRjcnVtYi1iZzogICAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcclxuJGJyZWFkY3J1bWItbWFyZ2luLWJvdHRvbTogICAgICAgIDEuNXJlbSAhZGVmYXVsdDtcclxuJGJyZWFkY3J1bWItYm9yZGVyLXJhZGl1czogICAgICAgIDAgIWRlZmF1bHQ7XHJcblxyXG4vLyBDYXJkc1xyXG5cclxuJGNhcmQtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICRncmF5LTMwMCAhZGVmYXVsdDtcclxuJGNhcmQtY2FwLWJnOiAgICAgICAgICAgICAgICAgICAgICRncmF5LTEwMCAhZGVmYXVsdDtcclxuXHJcbi8vIERyb3Bkb3duc1xyXG5cclxuJGRyb3Bkb3duLXBhZGRpbmcteTogICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XHJcbiRkcm9wZG93bi1ib3JkZXItY29sb3I6ICAgICAgICAgICAkZ3JheS0zMDAgIWRlZmF1bHQ7XHJcbiRkcm9wZG93bi1kaXZpZGVyLWJnOiAgICAgICAgICAgICAkZ3JheS0yMDAgIWRlZmF1bHQ7XHJcbiRkcm9wZG93bi1pY29uLWNvbG9yOiAgICAgICAgICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XHJcblxyXG4vLyBCdXR0b25zXHJcblxyXG4kYnRuLXNlY29uZGFyeS1ib3JkZXI6ICAgICAgICAgICAgJGdyYXktMzAwICFkZWZhdWx0O1xyXG5cclxuLy8gUHJvZ3Jlc3MgYmFyc1xyXG5cclxuJHByb2dyZXNzLWJnOiAgICAgICAgICAgICAgICAgICAgICRncmF5LTEwMCAhZGVmYXVsdDtcclxuXHJcbi8vIFRhYmxlc1xyXG5cclxuJHRhYmxlLWJnLWFjY2VudDogICAgICAgICAgICAgICAgICRncmF5LTEwMCAhZGVmYXVsdDtcclxuJHRhYmxlLWJnLWhvdmVyOiAgICAgICAgICAgICAgICAgICRncmF5LTEwMCAhZGVmYXVsdDtcclxuXHJcbi8vIEZvcm1zXHJcblxyXG4kaW5wdXQtZ3JvdXAtYWRkb24tYmc6ICAgICAgICAgICAgJGdyYXktMTAwICFkZWZhdWx0O1xyXG4kaW5wdXQtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgJGdyYXktMjAwICFkZWZhdWx0O1xyXG4kaW5wdXQtZ3JvdXAtYWRkb24tYm9yZGVyLWNvbG9yOiAgJGdyYXktMjAwICFkZWZhdWx0O1xyXG5cclxuLy8gTmF2c1xyXG5cclxuJG5hdi10YWJzLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgJGJvcmRlci1jb2xvciAhZGVmYXVsdDtcclxuJG5hdi10YWJzLWxpbmstY29sb3I6ICAgICAgICAgICAgICAgJGdyYXktNjAwICFkZWZhdWx0O1xyXG4kbmF2LXRhYnMtbGluay1ob3Zlci1ib3JkZXItY29sb3I6ICAkbmF2LXRhYnMtYm9yZGVyLWNvbG9yICRuYXYtdGFicy1ib3JkZXItY29sb3IgJG5hdi10YWJzLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcclxuJG5hdi10YWJzLWxpbmstYWN0aXZlLWNvbG9yOiAgICAgICAgJGJvZHktY29sb3IgIWRlZmF1bHQ7XHJcbiRuYXYtdGFicy1saW5rLWFjdGl2ZS1iZzogICAgICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcclxuJG5hdi10YWJzLWxpbmstYWN0aXZlLWJvcmRlci1jb2xvcjogJGdyYXktMzAwICRncmF5LTMwMCAkbmF2LXRhYnMtbGluay1hY3RpdmUtYmcgIWRlZmF1bHQ7XHJcblxyXG4kdGFiLWNvbnRlbnQtYmc6ICAgICAgICAgICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XHJcbiIsIi8vIEhvdmVyIG1peGluIGFuZCBgJGVuYWJsZS1ob3Zlci1tZWRpYS1xdWVyeWAgYXJlIGRlcHJlY2F0ZWQuXG4vL1xuLy8gT3JpZ2luYWxseSBhZGRlZCBkdXJpbmcgb3VyIGFscGhhcyBhbmQgbWFpbnRhaW5lZCBkdXJpbmcgYmV0YXMsIHRoaXMgbWl4aW4gd2FzXG4vLyBkZXNpZ25lZCB0byBwcmV2ZW50IGA6aG92ZXJgIHN0aWNraW5lc3Mgb24gaU9TLWFuIGlzc3VlIHdoZXJlIGhvdmVyIHN0eWxlc1xuLy8gd291bGQgcGVyc2lzdCBhZnRlciBpbml0aWFsIHRvdWNoLlxuLy9cbi8vIEZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB3ZSd2ZSBrZXB0IHRoZXNlIG1peGlucyBhbmQgdXBkYXRlZCB0aGVtIHRvXG4vLyBhbHdheXMgcmV0dXJuIHRoZWlyIHJlZ3VsYXIgcHNldWRvLWNsYXNzZXMgaW5zdGVhZCBvZiBhIHNoaW1tZWQgbWVkaWEgcXVlcnkuXG4vL1xuLy8gSXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMjUxOTVcblxuQG1peGluIGhvdmVyIHtcbiAgJjpob3ZlciB7IEBjb250ZW50OyB9XG59XG5cbkBtaXhpbiBob3Zlci1mb2N1cyB7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBwbGFpbi1ob3Zlci1mb2N1cyB7XG4gICYsXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBob3Zlci1mb2N1cy1hY3RpdmUge1xuICAmOmhvdmVyLFxuICAmOmZvY3VzLFxuICAmOmFjdGl2ZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudCwgc2VsZWN0b3ItbGlzdC1jb21tYS1uZXdsaW5lLWFmdGVyXG5cbi8vXG4vLyBIZWFkaW5nc1xuLy9cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNixcbi5oMSwgLmgyLCAuaDMsIC5oNCwgLmg1LCAuaDYge1xuICBtYXJnaW4tYm90dG9tOiAkaGVhZGluZ3MtbWFyZ2luLWJvdHRvbTtcbiAgZm9udC1mYW1pbHk6ICRoZWFkaW5ncy1mb250LWZhbWlseTtcbiAgZm9udC13ZWlnaHQ6ICRoZWFkaW5ncy1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRoZWFkaW5ncy1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRoZWFkaW5ncy1jb2xvcjtcbn1cblxuaDEsIC5oMSB7IEBpbmNsdWRlIGZvbnQtc2l6ZSgkaDEtZm9udC1zaXplKTsgfVxuaDIsIC5oMiB7IEBpbmNsdWRlIGZvbnQtc2l6ZSgkaDItZm9udC1zaXplKTsgfVxuaDMsIC5oMyB7IEBpbmNsdWRlIGZvbnQtc2l6ZSgkaDMtZm9udC1zaXplKTsgfVxuaDQsIC5oNCB7IEBpbmNsdWRlIGZvbnQtc2l6ZSgkaDQtZm9udC1zaXplKTsgfVxuaDUsIC5oNSB7IEBpbmNsdWRlIGZvbnQtc2l6ZSgkaDUtZm9udC1zaXplKTsgfVxuaDYsIC5oNiB7IEBpbmNsdWRlIGZvbnQtc2l6ZSgkaDYtZm9udC1zaXplKTsgfVxuXG4ubGVhZCB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkbGVhZC1mb250LXNpemUpO1xuICBmb250LXdlaWdodDogJGxlYWQtZm9udC13ZWlnaHQ7XG59XG5cbi8vIFR5cGUgZGlzcGxheSBjbGFzc2VzXG4uZGlzcGxheS0xIHtcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRkaXNwbGF5MS1zaXplKTtcbiAgZm9udC13ZWlnaHQ6ICRkaXNwbGF5MS13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkZGlzcGxheS1saW5lLWhlaWdodDtcbn1cbi5kaXNwbGF5LTIge1xuICBAaW5jbHVkZSBmb250LXNpemUoJGRpc3BsYXkyLXNpemUpO1xuICBmb250LXdlaWdodDogJGRpc3BsYXkyLXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRkaXNwbGF5LWxpbmUtaGVpZ2h0O1xufVxuLmRpc3BsYXktMyB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZGlzcGxheTMtc2l6ZSk7XG4gIGZvbnQtd2VpZ2h0OiAkZGlzcGxheTMtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGRpc3BsYXktbGluZS1oZWlnaHQ7XG59XG4uZGlzcGxheS00IHtcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRkaXNwbGF5NC1zaXplKTtcbiAgZm9udC13ZWlnaHQ6ICRkaXNwbGF5NC13ZWlnaHQ7XG4gIGxpbmUtaGVpZ2h0OiAkZGlzcGxheS1saW5lLWhlaWdodDtcbn1cblxuXG4vL1xuLy8gSG9yaXpvbnRhbCBydWxlc1xuLy9cblxuaHIge1xuICBtYXJnaW4tdG9wOiAkaHItbWFyZ2luLXk7XG4gIG1hcmdpbi1ib3R0b206ICRoci1tYXJnaW4teTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItdG9wOiAkaHItYm9yZGVyLXdpZHRoIHNvbGlkICRoci1ib3JkZXItY29sb3I7XG59XG5cblxuLy9cbi8vIEVtcGhhc2lzXG4vL1xuXG5zbWFsbCxcbi5zbWFsbCB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkc21hbGwtZm9udC1zaXplKTtcbiAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ub3JtYWw7XG59XG5cbm1hcmssXG4ubWFyayB7XG4gIHBhZGRpbmc6ICRtYXJrLXBhZGRpbmc7XG4gIGJhY2tncm91bmQtY29sb3I6ICRtYXJrLWJnO1xufVxuXG5cbi8vXG4vLyBMaXN0c1xuLy9cblxuLmxpc3QtdW5zdHlsZWQge1xuICBAaW5jbHVkZSBsaXN0LXVuc3R5bGVkO1xufVxuXG4vLyBJbmxpbmUgdHVybnMgbGlzdCBpdGVtcyBpbnRvIGlubGluZS1ibG9ja1xuLmxpc3QtaW5saW5lIHtcbiAgQGluY2x1ZGUgbGlzdC11bnN0eWxlZDtcbn1cbi5saXN0LWlubGluZS1pdGVtIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAkbGlzdC1pbmxpbmUtcGFkZGluZztcbiAgfVxufVxuXG5cbi8vXG4vLyBNaXNjXG4vL1xuXG4vLyBCdWlsZHMgb24gYGFiYnJgXG4uaW5pdGlhbGlzbSB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSg5MCUpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4vLyBCbG9ja3F1b3Rlc1xuLmJsb2NrcXVvdGUge1xuICBtYXJnaW4tYm90dG9tOiAkc3BhY2VyO1xuICBAaW5jbHVkZSBmb250LXNpemUoJGJsb2NrcXVvdGUtZm9udC1zaXplKTtcbn1cblxuLmJsb2NrcXVvdGUtZm9vdGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkYmxvY2txdW90ZS1zbWFsbC1mb250LXNpemUpO1xuICBjb2xvcjogJGJsb2NrcXVvdGUtc21hbGwtY29sb3I7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlxcMjAxNFxcMDBBMFwiOyAvLyBlbSBkYXNoLCBuYnNwXG4gIH1cbn1cbiIsIi8vIExpc3RzXG5cbi8vIFVuc3R5bGVkIGtlZXBzIGxpc3QgaXRlbXMgYmxvY2sgbGV2ZWwsIGp1c3QgcmVtb3ZlcyBkZWZhdWx0IGJyb3dzZXIgcGFkZGluZyBhbmQgbGlzdC1zdHlsZVxuQG1peGluIGxpc3QtdW5zdHlsZWQge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4iLCIvLyBSZXNwb25zaXZlIGltYWdlcyAoZW5zdXJlIGltYWdlcyBkb24ndCBzY2FsZSBiZXlvbmQgdGhlaXIgcGFyZW50cylcbi8vXG4vLyBUaGlzIGlzIHB1cnBvc2VmdWxseSBvcHQtaW4gdmlhIGFuIGV4cGxpY2l0IGNsYXNzIHJhdGhlciB0aGFuIGJlaW5nIHRoZSBkZWZhdWx0IGZvciBhbGwgYDxpbWc+YHMuXG4vLyBXZSBwcmV2aW91c2x5IHRyaWVkIHRoZSBcImltYWdlcyBhcmUgcmVzcG9uc2l2ZSBieSBkZWZhdWx0XCIgYXBwcm9hY2ggaW4gQm9vdHN0cmFwIHYyLFxuLy8gYW5kIGFiYW5kb25lZCBpdCBpbiBCb290c3RyYXAgdjMgYmVjYXVzZSBpdCBicmVha3MgbG90cyBvZiB0aGlyZC1wYXJ0eSB3aWRnZXRzIChpbmNsdWRpbmcgR29vZ2xlIE1hcHMpXG4vLyB3aGljaCB3ZXJlbid0IGV4cGVjdGluZyB0aGUgaW1hZ2VzIHdpdGhpbiB0aGVtc2VsdmVzIHRvIGJlIGludm9sdW50YXJpbHkgcmVzaXplZC5cbi8vIFNlZSBhbHNvIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTgxNzhcbi5pbWctZmx1aWQge1xuICBAaW5jbHVkZSBpbWctZmx1aWQ7XG59XG5cblxuLy8gSW1hZ2UgdGh1bWJuYWlsc1xuLmltZy10aHVtYm5haWwge1xuICBwYWRkaW5nOiAkdGh1bWJuYWlsLXBhZGRpbmc7XG4gIGJhY2tncm91bmQtY29sb3I6ICR0aHVtYm5haWwtYmc7XG4gIGJvcmRlcjogJHRodW1ibmFpbC1ib3JkZXItd2lkdGggc29saWQgJHRodW1ibmFpbC1ib3JkZXItY29sb3I7XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJHRodW1ibmFpbC1ib3JkZXItcmFkaXVzKTtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdygkdGh1bWJuYWlsLWJveC1zaGFkb3cpO1xuXG4gIC8vIEtlZXAgdGhlbSBhdCBtb3N0IDEwMCUgd2lkZVxuICBAaW5jbHVkZSBpbWctZmx1aWQ7XG59XG5cbi8vXG4vLyBGaWd1cmVzXG4vL1xuXG4uZmlndXJlIHtcbiAgLy8gRW5zdXJlcyB0aGUgY2FwdGlvbidzIHRleHQgYWxpZ25zIHdpdGggdGhlIGltYWdlLlxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5maWd1cmUtaW1nIHtcbiAgbWFyZ2luLWJvdHRvbTogJHNwYWNlciAvIDI7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uZmlndXJlLWNhcHRpb24ge1xuICBAaW5jbHVkZSBmb250LXNpemUoJGZpZ3VyZS1jYXB0aW9uLWZvbnQtc2l6ZSk7XG4gIGNvbG9yOiAkZmlndXJlLWNhcHRpb24tY29sb3I7XG59XG4iLCIvLyBJbWFnZSBNaXhpbnNcbi8vIC0gUmVzcG9uc2l2ZSBpbWFnZVxuLy8gLSBSZXRpbmEgaW1hZ2VcblxuXG4vLyBSZXNwb25zaXZlIGltYWdlXG4vL1xuLy8gS2VlcCBpbWFnZXMgZnJvbSBzY2FsaW5nIGJleW9uZCB0aGUgd2lkdGggb2YgdGhlaXIgcGFyZW50cy5cblxuQG1peGluIGltZy1mbHVpZCB7XG4gIC8vIFBhcnQgMTogU2V0IGEgbWF4aW11bSByZWxhdGl2ZSB0byB0aGUgcGFyZW50XG4gIG1heC13aWR0aDogMTAwJTtcbiAgLy8gUGFydCAyOiBPdmVycmlkZSB0aGUgaGVpZ2h0IHRvIGF1dG8sIG90aGVyd2lzZSBpbWFnZXMgd2lsbCBiZSBzdHJldGNoZWRcbiAgLy8gd2hlbiBzZXR0aW5nIGEgd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGUgb24gdGhlIGltZyBlbGVtZW50LlxuICBoZWlnaHQ6IGF1dG87XG59XG5cblxuLy8gUmV0aW5hIGltYWdlXG4vL1xuLy8gU2hvcnQgcmV0aW5hIG1peGluIGZvciBzZXR0aW5nIGJhY2tncm91bmQtaW1hZ2UgYW5kIC1zaXplLlxuXG5AbWl4aW4gaW1nLXJldGluYSgkZmlsZS0xeCwgJGZpbGUtMngsICR3aWR0aC0xeCwgJGhlaWdodC0xeCkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJGZpbGUtMXgpO1xuXG4gIC8vIEF1dG9wcmVmaXhlciB0YWtlcyBjYXJlIG9mIGFkZGluZyAtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW8gYW5kIC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW8sXG4gIC8vIGJ1dCBkb2Vzbid0IGNvbnZlcnQgZHBweD0+ZHBpLlxuICAvLyBUaGVyZSdzIG5vIHN1Y2ggdGhpbmcgYXMgdW5wcmVmaXhlZCBtaW4tZGV2aWNlLXBpeGVsLXJhdGlvIHNpbmNlIGl0J3Mgbm9uc3RhbmRhcmQuXG4gIC8vIENvbXBhdGliaWxpdHkgaW5mbzogaHR0cHM6Ly9jYW5pdXNlLmNvbS8jZmVhdD1jc3MtbWVkaWEtcmVzb2x1dGlvblxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgLy8gSUU5LTExIGRvbid0IHN1cHBvcnQgZHBweFxuICAgIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IDJkcHB4KSB7IC8vIFN0YW5kYXJkaXplZFxuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgkZmlsZS0yeCk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAkd2lkdGgtMXggJGhlaWdodC0xeDtcbiAgfVxuICBAaW5jbHVkZSBkZXByZWNhdGUoXCJgaW1nLXJldGluYSgpYFwiLCBcInY0LjMuMFwiLCBcInY1XCIpO1xufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgcHJvcGVydHktYmxhY2tsaXN0XG4vLyBTaW5nbGUgc2lkZSBib3JkZXItcmFkaXVzXG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzLCAkZmFsbGJhY2stYm9yZGVyLXJhZGl1czogZmFsc2UpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgfVxuICBAZWxzZSBpZiAkZmFsbGJhY2stYm9yZGVyLXJhZGl1cyAhPSBmYWxzZSB7XG4gICAgYm9yZGVyLXJhZGl1czogJGZhbGxiYWNrLWJvcmRlci1yYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGl1cztcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaXVzO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGl1cztcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzKCRyYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzKCRyYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMoJHJhZGl1cykge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaXVzO1xuICB9XG59XG4iLCIvLyBJbmxpbmUgY29kZVxuY29kZSB7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkY29kZS1mb250LXNpemUpO1xuICBjb2xvcjogJGNvZGUtY29sb3I7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG5cbiAgLy8gU3RyZWFtbGluZSB0aGUgc3R5bGUgd2hlbiBpbnNpZGUgYW5jaG9ycyB0byBhdm9pZCBicm9rZW4gdW5kZXJsaW5lIGFuZCBtb3JlXG4gIGEgPiAmIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxufVxuXG4vLyBVc2VyIGlucHV0IHR5cGljYWxseSBlbnRlcmVkIHZpYSBrZXlib2FyZFxua2JkIHtcbiAgcGFkZGluZzogJGtiZC1wYWRkaW5nLXkgJGtiZC1wYWRkaW5nLXg7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgka2JkLWZvbnQtc2l6ZSk7XG4gIGNvbG9yOiAka2JkLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAka2JkLWJnO1xuICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLXNtKTtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdygka2JkLWJveC1zaGFkb3cpO1xuXG4gIGtiZCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMTAwJSk7XG4gICAgZm9udC13ZWlnaHQ6ICRuZXN0ZWQta2JkLWZvbnQtd2VpZ2h0O1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3cobm9uZSk7XG4gIH1cbn1cblxuLy8gQmxvY2tzIG9mIGNvZGVcbnByZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBAaW5jbHVkZSBmb250LXNpemUoJGNvZGUtZm9udC1zaXplKTtcbiAgY29sb3I6ICRwcmUtY29sb3I7XG5cbiAgLy8gQWNjb3VudCBmb3Igc29tZSBjb2RlIG91dHB1dHMgdGhhdCBwbGFjZSBjb2RlIHRhZ3MgaW4gcHJlIHRhZ3NcbiAgY29kZSB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKGluaGVyaXQpO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgfVxufVxuXG4vLyBFbmFibGUgc2Nyb2xsYWJsZSBibG9ja3Mgb2YgY29kZVxuLnByZS1zY3JvbGxhYmxlIHtcbiAgbWF4LWhlaWdodDogJHByZS1zY3JvbGxhYmxlLW1heC1oZWlnaHQ7XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cbiIsIi8vIENvbnRhaW5lciB3aWR0aHNcbi8vXG4vLyBTZXQgdGhlIGNvbnRhaW5lciB3aWR0aCwgYW5kIG92ZXJyaWRlIGl0IGZvciBmaXhlZCBuYXZiYXJzIGluIG1lZGlhIHF1ZXJpZXMuXG5cbkBpZiAkZW5hYmxlLWdyaWQtY2xhc3NlcyB7XG4gIC5jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1ha2UtY29udGFpbmVyKCk7XG4gICAgQGluY2x1ZGUgbWFrZS1jb250YWluZXItbWF4LXdpZHRocygpO1xuICB9XG59XG5cbi8vIEZsdWlkIGNvbnRhaW5lclxuLy9cbi8vIFV0aWxpemVzIHRoZSBtaXhpbiBtZWFudCBmb3IgZml4ZWQgd2lkdGggY29udGFpbmVycywgYnV0IHdpdGggMTAwJSB3aWR0aCBmb3Jcbi8vIGZsdWlkLCBmdWxsIHdpZHRoIGxheW91dHMuXG5cbkBpZiAkZW5hYmxlLWdyaWQtY2xhc3NlcyB7XG4gIC5jb250YWluZXItZmx1aWQge1xuICAgIEBpbmNsdWRlIG1ha2UtY29udGFpbmVyKCk7XG4gIH1cbn1cblxuLy8gUm93XG4vL1xuLy8gUm93cyBjb250YWluIGFuZCBjbGVhciB0aGUgZmxvYXRzIG9mIHlvdXIgY29sdW1ucy5cblxuQGlmICRlbmFibGUtZ3JpZC1jbGFzc2VzIHtcbiAgLnJvdyB7XG4gICAgQGluY2x1ZGUgbWFrZS1yb3coKTtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgbmVnYXRpdmUgbWFyZ2luIGZyb20gZGVmYXVsdCAucm93LCB0aGVuIHRoZSBob3Jpem9udGFsIHBhZGRpbmdcbiAgLy8gZnJvbSBhbGwgaW1tZWRpYXRlIGNoaWxkcmVuIGNvbHVtbnMgKHRvIHByZXZlbnQgcnVuYXdheSBzdHlsZSBpbmhlcml0YW5jZSkuXG4gIC5uby1ndXR0ZXJzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgICA+IC5jb2wsXG4gICAgPiBbY2xhc3MqPVwiY29sLVwiXSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cbiAgfVxufVxuXG4vLyBDb2x1bW5zXG4vL1xuLy8gQ29tbW9uIHN0eWxlcyBmb3Igc21hbGwgYW5kIGxhcmdlIGdyaWQgY29sdW1uc1xuXG5AaWYgJGVuYWJsZS1ncmlkLWNsYXNzZXMge1xuICBAaW5jbHVkZSBtYWtlLWdyaWQtY29sdW1ucygpO1xufVxuIiwiLy8vIEdyaWQgc3lzdGVtXG4vL1xuLy8gR2VuZXJhdGUgc2VtYW50aWMgZ3JpZCBjb2x1bW5zIHdpdGggdGhlc2UgbWl4aW5zLlxuXG5AbWl4aW4gbWFrZS1jb250YWluZXIoJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAkZ3V0dGVyIC8gMjtcbiAgcGFkZGluZy1sZWZ0OiAkZ3V0dGVyIC8gMjtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuXG4vLyBGb3IgZWFjaCBicmVha3BvaW50LCBkZWZpbmUgdGhlIG1heGltdW0gd2lkdGggb2YgdGhlIGNvbnRhaW5lciBpbiBhIG1lZGlhIHF1ZXJ5XG5AbWl4aW4gbWFrZS1jb250YWluZXItbWF4LXdpZHRocygkbWF4LXdpZHRoczogJGNvbnRhaW5lci1tYXgtd2lkdGhzLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEBlYWNoICRicmVha3BvaW50LCAkY29udGFpbmVyLW1heC13aWR0aCBpbiAkbWF4LXdpZHRocyB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBtYXgtd2lkdGg6ICRjb250YWluZXItbWF4LXdpZHRoO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWFrZS1yb3coJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLXJpZ2h0OiAtJGd1dHRlciAvIDI7XG4gIG1hcmdpbi1sZWZ0OiAtJGd1dHRlciAvIDI7XG59XG5cbkBtaXhpbiBtYWtlLWNvbC1yZWFkeSgkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvLyBQcmV2ZW50IGNvbHVtbnMgZnJvbSBiZWNvbWluZyB0b28gbmFycm93IHdoZW4gYXQgc21hbGxlciBncmlkIHRpZXJzIGJ5XG4gIC8vIGFsd2F5cyBzZXR0aW5nIGB3aWR0aDogMTAwJTtgLiBUaGlzIHdvcmtzIGJlY2F1c2Ugd2UgdXNlIGBmbGV4YCB2YWx1ZXNcbiAgLy8gbGF0ZXIgb24gdG8gb3ZlcnJpZGUgdGhpcyBpbml0aWFsIHdpZHRoLlxuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogJGd1dHRlciAvIDI7XG4gIHBhZGRpbmctbGVmdDogJGd1dHRlciAvIDI7XG59XG5cbkBtaXhpbiBtYWtlLWNvbCgkc2l6ZSwgJGNvbHVtbnM6ICRncmlkLWNvbHVtbnMpIHtcbiAgZmxleDogMCAwIHBlcmNlbnRhZ2UoJHNpemUgLyAkY29sdW1ucyk7XG4gIC8vIEFkZCBhIGBtYXgtd2lkdGhgIHRvIGVuc3VyZSBjb250ZW50IHdpdGhpbiBlYWNoIGNvbHVtbiBkb2VzIG5vdCBibG93IG91dFxuICAvLyB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbi4gQXBwbGllcyB0byBJRTEwKyBhbmQgRmlyZWZveC4gQ2hyb21lIGFuZCBTYWZhcmlcbiAgLy8gZG8gbm90IGFwcGVhciB0byByZXF1aXJlIHRoaXMuXG4gIG1heC13aWR0aDogcGVyY2VudGFnZSgkc2l6ZSAvICRjb2x1bW5zKTtcbn1cblxuQG1peGluIG1ha2UtY29sLW9mZnNldCgkc2l6ZSwgJGNvbHVtbnM6ICRncmlkLWNvbHVtbnMpIHtcbiAgJG51bTogJHNpemUgLyAkY29sdW1ucztcbiAgbWFyZ2luLWxlZnQ6IGlmKCRudW0gPT0gMCwgMCwgcGVyY2VudGFnZSgkbnVtKSk7XG59XG4iLCIvLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxuLy9cbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcbi8vXG4vLyAgICAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpXG4vL1xuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwpKVxuLy8gICAgbWRcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRuICE9IG51bGwgYW5kICRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgNTc2cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtaW4gIT0gMCwgJG1pbiwgbnVsbCk7XG59XG5cbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIGxhcmdlc3QgKGxhc3QpIGJyZWFrcG9pbnQuXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyBjYWxjdWxhdGVkIGFzIHRoZSBtaW5pbXVtIG9mIHRoZSBuZXh0IG9uZSBsZXNzIDAuMDJweFxuLy8gdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA3NjcuOThweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEByZXR1cm4gaWYoJG5leHQsIGJyZWFrcG9pbnQtbWluKCRuZXh0LCAkYnJlYWtwb2ludHMpIC0gLjAyLCBudWxsKTtcbn1cblxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIi1zbVwiXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWluIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRsb3dlciwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJHVwcGVyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZyYW1ld29yayBncmlkIGdlbmVyYXRpb25cbi8vXG4vLyBVc2VkIG9ubHkgYnkgQm9vdHN0cmFwIHRvIGdlbmVyYXRlIHRoZSBjb3JyZWN0IG51bWJlciBvZiBncmlkIGNsYXNzZXMgZ2l2ZW5cbi8vIGFueSB2YWx1ZSBvZiBgJGdyaWQtY29sdW1uc2AuXG5cbkBtaXhpbiBtYWtlLWdyaWQtY29sdW1ucygkY29sdW1uczogJGdyaWQtY29sdW1ucywgJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIC8vIENvbW1vbiBwcm9wZXJ0aWVzIGZvciBhbGwgYnJlYWtwb2ludHNcbiAgJWdyaWQtY29sdW1uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1yaWdodDogJGd1dHRlciAvIDI7XG4gICAgcGFkZGluZy1sZWZ0OiAkZ3V0dGVyIC8gMjtcbiAgfVxuXG4gIEBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRicmVha3BvaW50cykge1xuICAgICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKTtcblxuICAgIC8vIEFsbG93IGNvbHVtbnMgdG8gc3RyZXRjaCBmdWxsIHdpZHRoIGJlbG93IHRoZWlyIGJyZWFrcG9pbnRzXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY29sdW1ucyB7XG4gICAgICAuY29sI3skaW5maXh9LSN7JGl9IHtcbiAgICAgICAgQGV4dGVuZCAlZ3JpZC1jb2x1bW47XG4gICAgICB9XG4gICAgfVxuICAgIC5jb2wjeyRpbmZpeH0sXG4gICAgLmNvbCN7JGluZml4fS1hdXRvIHtcbiAgICAgIEBleHRlbmQgJWdyaWQtY29sdW1uO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQsICRicmVha3BvaW50cykge1xuICAgICAgLy8gUHJvdmlkZSBiYXNpYyBgLmNvbC17YnB9YCBjbGFzc2VzIGZvciBlcXVhbC13aWR0aCBmbGV4Ym94IGNvbHVtbnNcbiAgICAgIC5jb2wjeyRpbmZpeH0ge1xuICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICAgIC5jb2wjeyRpbmZpeH0tYXV0byB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyAvLyBSZXNldCBlYXJsaWVyIGdyaWQgdGllcnNcbiAgICAgIH1cblxuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY29sdW1ucyB7XG4gICAgICAgIC5jb2wjeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICAgIEBpbmNsdWRlIG1ha2UtY29sKCRpLCAkY29sdW1ucyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLm9yZGVyI3skaW5maXh9LWZpcnN0IHsgb3JkZXI6IC0xOyB9XG5cbiAgICAgIC5vcmRlciN7JGluZml4fS1sYXN0IHsgb3JkZXI6ICRjb2x1bW5zICsgMTsgfVxuXG4gICAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICRjb2x1bW5zIHtcbiAgICAgICAgLm9yZGVyI3skaW5maXh9LSN7JGl9IHsgb3JkZXI6ICRpOyB9XG4gICAgICB9XG5cbiAgICAgIC8vIGAkY29sdW1ucyAtIDFgIGJlY2F1c2Ugb2Zmc2V0dGluZyBieSB0aGUgd2lkdGggb2YgYW4gZW50aXJlIHJvdyBpc24ndCBwb3NzaWJsZVxuICAgICAgQGZvciAkaSBmcm9tIDAgdGhyb3VnaCAoJGNvbHVtbnMgLSAxKSB7XG4gICAgICAgIEBpZiBub3QgKCRpbmZpeCA9PSBcIlwiIGFuZCAkaSA9PSAwKSB7IC8vIEF2b2lkIGVtaXR0aW5nIHVzZWxlc3MgLm9mZnNldC0wXG4gICAgICAgICAgLm9mZnNldCN7JGluZml4fS0jeyRpfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtYWtlLWNvbC1vZmZzZXQoJGksICRjb2x1bW5zKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBCYXNpYyBCb290c3RyYXAgdGFibGVcbi8vXG5cbi50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAkc3BhY2VyO1xuICBjb2xvcjogJHRhYmxlLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmc7IC8vIFJlc2V0IGZvciBuZXN0aW5nIHdpdGhpbiBwYXJlbnRzIHdpdGggYGJhY2tncm91bmQtY29sb3JgLlxuXG4gIHRoLFxuICB0ZCB7XG4gICAgcGFkZGluZzogJHRhYmxlLWNlbGwtcGFkZGluZztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIGJvcmRlci10b3A6ICR0YWJsZS1ib3JkZXItd2lkdGggc29saWQgJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgfVxuXG4gIHRoZWFkIHRoIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIGJvcmRlci1ib3R0b206ICgyICogJHRhYmxlLWJvcmRlci13aWR0aCkgc29saWQgJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgfVxuXG4gIHRib2R5ICsgdGJvZHkge1xuICAgIGJvcmRlci10b3A6ICgyICogJHRhYmxlLWJvcmRlci13aWR0aCkgc29saWQgJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgfVxufVxuXG5cbi8vXG4vLyBDb25kZW5zZWQgdGFibGUgdy8gaGFsZiBwYWRkaW5nXG4vL1xuXG4udGFibGUtc20ge1xuICB0aCxcbiAgdGQge1xuICAgIHBhZGRpbmc6ICR0YWJsZS1jZWxsLXBhZGRpbmctc207XG4gIH1cbn1cblxuXG4vLyBCb3JkZXIgdmVyc2lvbnNcbi8vXG4vLyBBZGQgb3IgcmVtb3ZlIGJvcmRlcnMgYWxsIGFyb3VuZCB0aGUgdGFibGUgYW5kIGJldHdlZW4gYWxsIHRoZSBjb2x1bW5zLlxuXG4udGFibGUtYm9yZGVyZWQge1xuICBib3JkZXI6ICR0YWJsZS1ib3JkZXItd2lkdGggc29saWQgJHRhYmxlLWJvcmRlci1jb2xvcjtcblxuICB0aCxcbiAgdGQge1xuICAgIGJvcmRlcjogJHRhYmxlLWJvcmRlci13aWR0aCBzb2xpZCAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICB9XG5cbiAgdGhlYWQge1xuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDIgKiAkdGFibGUtYm9yZGVyLXdpZHRoO1xuICAgIH1cbiAgfVxufVxuXG4udGFibGUtYm9yZGVybGVzcyB7XG4gIHRoLFxuICB0ZCxcbiAgdGhlYWQgdGgsXG4gIHRib2R5ICsgdGJvZHkge1xuICAgIGJvcmRlcjogMDtcbiAgfVxufVxuXG4vLyBaZWJyYS1zdHJpcGluZ1xuLy9cbi8vIERlZmF1bHQgemVicmEtc3RyaXBlIHN0eWxlcyAoYWx0ZXJuYXRpbmcgZ3JheSBhbmQgdHJhbnNwYXJlbnQgYmFja2dyb3VuZHMpXG5cbi50YWJsZS1zdHJpcGVkIHtcbiAgdGJvZHkgdHI6bnRoLW9mLXR5cGUoI3skdGFibGUtc3RyaXBlZC1vcmRlcn0pIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYWNjZW50LWJnO1xuICB9XG59XG5cblxuLy8gSG92ZXIgZWZmZWN0XG4vL1xuLy8gUGxhY2VkIGhlcmUgc2luY2UgaXQgaGFzIHRvIGNvbWUgYWZ0ZXIgdGhlIHBvdGVudGlhbCB6ZWJyYSBzdHJpcGluZ1xuXG4udGFibGUtaG92ZXIge1xuICB0Ym9keSB0ciB7XG4gICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgY29sb3I6ICR0YWJsZS1ob3Zlci1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1ob3Zlci1iZztcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBUYWJsZSBiYWNrZ3JvdW5kc1xuLy9cbi8vIEV4YWN0IHNlbGVjdG9ycyBiZWxvdyByZXF1aXJlZCB0byBvdmVycmlkZSBgLnRhYmxlLXN0cmlwZWRgIGFuZCBwcmV2ZW50XG4vLyBpbmhlcml0YW5jZSB0byBuZXN0ZWQgdGFibGVzLlxuXG5AZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkdGhlbWUtY29sb3JzIHtcbiAgQGluY2x1ZGUgdGFibGUtcm93LXZhcmlhbnQoJGNvbG9yLCB0aGVtZS1jb2xvci1sZXZlbCgkY29sb3IsICR0YWJsZS1iZy1sZXZlbCksIHRoZW1lLWNvbG9yLWxldmVsKCRjb2xvciwgJHRhYmxlLWJvcmRlci1sZXZlbCkpO1xufVxuXG5AaW5jbHVkZSB0YWJsZS1yb3ctdmFyaWFudChhY3RpdmUsICR0YWJsZS1hY3RpdmUtYmcpO1xuXG5cbi8vIERhcmsgc3R5bGVzXG4vL1xuLy8gU2FtZSB0YWJsZSBtYXJrdXAsIGJ1dCBpbnZlcnRlZCBjb2xvciBzY2hlbWU6IGRhcmsgYmFja2dyb3VuZCBhbmQgbGlnaHQgdGV4dC5cblxuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWR1cGxpY2F0ZS1zZWxlY3RvcnNcbi50YWJsZSB7XG4gIC50aGVhZC1kYXJrIHtcbiAgICB0aCB7XG4gICAgICBjb2xvcjogJHRhYmxlLWRhcmstY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtZGFyay1iZztcbiAgICAgIGJvcmRlci1jb2xvcjogJHRhYmxlLWRhcmstYm9yZGVyLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC50aGVhZC1saWdodCB7XG4gICAgdGgge1xuICAgICAgY29sb3I6ICR0YWJsZS1oZWFkLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWhlYWQtYmc7XG4gICAgICBib3JkZXItY29sb3I6ICR0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgfVxuICB9XG59XG5cbi50YWJsZS1kYXJrIHtcbiAgY29sb3I6ICR0YWJsZS1kYXJrLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtZGFyay1iZztcblxuICB0aCxcbiAgdGQsXG4gIHRoZWFkIHRoIHtcbiAgICBib3JkZXItY29sb3I6ICR0YWJsZS1kYXJrLWJvcmRlci1jb2xvcjtcbiAgfVxuXG4gICYudGFibGUtYm9yZGVyZWQge1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gICYudGFibGUtc3RyaXBlZCB7XG4gICAgdGJvZHkgdHI6bnRoLW9mLXR5cGUob2RkKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtZGFyay1hY2NlbnQtYmc7XG4gICAgfVxuICB9XG5cbiAgJi50YWJsZS1ob3ZlciB7XG4gICAgdGJvZHkgdHIge1xuICAgICAgQGluY2x1ZGUgaG92ZXIge1xuICAgICAgICBjb2xvcjogJHRhYmxlLWRhcmstaG92ZXItY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1kYXJrLWhvdmVyLWJnO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIFJlc3BvbnNpdmUgdGFibGVzXG4vL1xuLy8gR2VuZXJhdGUgc2VyaWVzIG9mIGAudGFibGUtcmVzcG9uc2l2ZS0qYCBjbGFzc2VzIGZvciBjb25maWd1cmluZyB0aGUgc2NyZWVuXG4vLyBzaXplIG9mIHdoZXJlIHlvdXIgdGFibGUgd2lsbCBvdmVyZmxvdy5cblxuLnRhYmxlLXJlc3BvbnNpdmUge1xuICBAZWFjaCAkYnJlYWtwb2ludCBpbiBtYXAta2V5cygkZ3JpZC1icmVha3BvaW50cykge1xuICAgICRuZXh0OiBicmVha3BvaW50LW5leHQoJGJyZWFrcG9pbnQsICRncmlkLWJyZWFrcG9pbnRzKTtcbiAgICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJG5leHQsICRncmlkLWJyZWFrcG9pbnRzKTtcblxuICAgICYjeyRpbmZpeH0ge1xuICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRicmVha3BvaW50KSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuXG4gICAgICAgIC8vIFByZXZlbnQgZG91YmxlIGJvcmRlciBvbiBob3Jpem9udGFsIHNjcm9sbCBkdWUgdG8gdXNlIG9mIGBkaXNwbGF5OiBibG9jaztgXG4gICAgICAgID4gLnRhYmxlLWJvcmRlcmVkIHtcbiAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIFRhYmxlc1xuXG5AbWl4aW4gdGFibGUtcm93LXZhcmlhbnQoJHN0YXRlLCAkYmFja2dyb3VuZCwgJGJvcmRlcjogbnVsbCkge1xuICAvLyBFeGFjdCBzZWxlY3RvcnMgYmVsb3cgcmVxdWlyZWQgdG8gb3ZlcnJpZGUgYC50YWJsZS1zdHJpcGVkYCBhbmQgcHJldmVudFxuICAvLyBpbmhlcml0YW5jZSB0byBuZXN0ZWQgdGFibGVzLlxuICAudGFibGUtI3skc3RhdGV9IHtcbiAgICAmLFxuICAgID4gdGgsXG4gICAgPiB0ZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICBAaWYgJGJvcmRlciAhPSBudWxsIHtcbiAgICAgIHRoLFxuICAgICAgdGQsXG4gICAgICB0aGVhZCB0aCxcbiAgICAgIHRib2R5ICsgdGJvZHkge1xuICAgICAgICBib3JkZXItY29sb3I6ICRib3JkZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVzIGZvciBgLnRhYmxlLWhvdmVyYFxuICAvLyBOb3RlOiB0aGlzIGlzIG5vdCBhdmFpbGFibGUgZm9yIGNlbGxzIG9yIHJvd3Mgd2l0aGluIGB0aGVhZGAgb3IgYHRmb290YC5cbiAgLnRhYmxlLWhvdmVyIHtcbiAgICAkaG92ZXItYmFja2dyb3VuZDogZGFya2VuKCRiYWNrZ3JvdW5kLCA1JSk7XG5cbiAgICAudGFibGUtI3skc3RhdGV9IHtcbiAgICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhvdmVyLWJhY2tncm91bmQ7XG5cbiAgICAgICAgPiB0ZCxcbiAgICAgICAgPiB0aCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhvdmVyLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZVxuXG4vL1xuLy8gVGV4dHVhbCBmb3JtIGNvbnRyb2xzXG4vL1xuXG4uZm9ybS1jb250cm9sIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRpbnB1dC1oZWlnaHQ7XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nLXkgJGlucHV0LXBhZGRpbmcteDtcbiAgZm9udC1mYW1pbHk6ICRpbnB1dC1mb250LWZhbWlseTtcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRpbnB1dC1mb250LXNpemUpO1xuICBmb250LXdlaWdodDogJGlucHV0LWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGlucHV0LWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmc7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuXG4gIC8vIE5vdGU6IFRoaXMgaGFzIG5vIGVmZmVjdCBvbiA8c2VsZWN0PnMgaW4gc29tZSBicm93c2VycywgZHVlIHRvIHRoZSBsaW1pdGVkIHN0eWxhYmlsaXR5IG9mIGA8c2VsZWN0PmBzIGluIENTUy5cbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkaW5wdXQtYm9yZGVyLXJhZGl1cywgMCk7XG5cbiAgQGluY2x1ZGUgYm94LXNoYWRvdygkaW5wdXQtYm94LXNoYWRvdyk7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oJGlucHV0LXRyYW5zaXRpb24pO1xuXG4gIC8vIFVuc3R5bGUgdGhlIGNhcmV0IG9uIGA8c2VsZWN0PmBzIGluIElFMTArLlxuICAmOjotbXMtZXhwYW5kIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICAvLyBDdXN0b21pemUgdGhlIGA6Zm9jdXNgIHN0YXRlIHRvIGltaXRhdGUgbmF0aXZlIFdlYktpdCBzdHlsZXMuXG4gIEBpbmNsdWRlIGZvcm0tY29udHJvbC1mb2N1cygpO1xuXG4gIC8vIFBsYWNlaG9sZGVyXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yO1xuICAgIC8vIE92ZXJyaWRlIEZpcmVmb3gncyB1bnVzdWFsIGRlZmF1bHQgb3BhY2l0eTsgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzExNTI2LlxuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAvLyBEaXNhYmxlZCBhbmQgcmVhZC1vbmx5IGlucHV0c1xuICAvL1xuICAvLyBIVE1MNSBzYXlzIHRoYXQgY29udHJvbHMgdW5kZXIgYSBmaWVsZHNldCA+IGxlZ2VuZDpmaXJzdC1jaGlsZCB3b24ndCBiZVxuICAvLyBkaXNhYmxlZCBpZiB0aGUgZmllbGRzZXQgaXMgZGlzYWJsZWQuIER1ZSB0byBpbXBsZW1lbnRhdGlvbiBkaWZmaWN1bHR5LCB3ZVxuICAvLyBkb24ndCBob25vciB0aGF0IGVkZ2UgY2FzZTsgd2Ugc3R5bGUgdGhlbSBhcyBkaXNhYmxlZCBhbnl3YXkuXG4gICY6ZGlzYWJsZWQsXG4gICZbcmVhZG9ubHldIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtZGlzYWJsZWQtYmc7XG4gICAgLy8gaU9TIGZpeCBmb3IgdW5yZWFkYWJsZSBkaXNhYmxlZCBjb250ZW50OyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xMTY1NS5cbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbnNlbGVjdC5mb3JtLWNvbnRyb2wge1xuICAmOmZvY3VzOjotbXMtdmFsdWUge1xuICAgIC8vIFN1cHByZXNzIHRoZSBuZXN0ZWQgZGVmYXVsdCB3aGl0ZSB0ZXh0IG9uIGJsdWUgYmFja2dyb3VuZCBoaWdobGlnaHQgZ2l2ZW4gdG9cbiAgICAvLyB0aGUgc2VsZWN0ZWQgb3B0aW9uIHRleHQgd2hlbiB0aGUgKHN0aWxsIGNsb3NlZCkgPHNlbGVjdD4gcmVjZWl2ZXMgZm9jdXNcbiAgICAvLyBpbiBJRSBhbmQgKHVuZGVyIGNlcnRhaW4gY29uZGl0aW9ucykgRWRnZSwgYXMgaXQgbG9va3MgYmFkIGFuZCBjYW5ub3QgYmUgbWFkZSB0b1xuICAgIC8vIG1hdGNoIHRoZSBhcHBlYXJhbmNlIG9mIHRoZSBuYXRpdmUgd2lkZ2V0LlxuICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzE5Mzk4LlxuICAgIGNvbG9yOiAkaW5wdXQtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJnO1xuICB9XG59XG5cbi8vIE1ha2UgZmlsZSBpbnB1dHMgYmV0dGVyIG1hdGNoIHRleHQgaW5wdXRzIGJ5IGZvcmNpbmcgdGhlbSB0byBuZXcgbGluZXMuXG4uZm9ybS1jb250cm9sLWZpbGUsXG4uZm9ybS1jb250cm9sLXJhbmdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5cbi8vXG4vLyBMYWJlbHNcbi8vXG5cbi8vIEZvciB1c2Ugd2l0aCBob3Jpem9udGFsIGFuZCBpbmxpbmUgZm9ybXMsIHdoZW4geW91IG5lZWQgdGhlIGxhYmVsIChvciBsZWdlbmQpXG4vLyB0ZXh0IHRvIGFsaWduIHdpdGggdGhlIGZvcm0gY29udHJvbHMuXG4uY29sLWZvcm0tbGFiZWwge1xuICBwYWRkaW5nLXRvcDogY2FsYygjeyRpbnB1dC1wYWRkaW5nLXl9ICsgI3skaW5wdXQtYm9yZGVyLXdpZHRofSk7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKCN7JGlucHV0LXBhZGRpbmcteX0gKyAjeyRpbnB1dC1ib3JkZXItd2lkdGh9KTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgLy8gT3ZlcnJpZGUgdGhlIGA8bGFiZWw+LzxsZWdlbmQ+YCBkZWZhdWx0XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZShpbmhlcml0KTsgLy8gT3ZlcnJpZGUgdGhlIGA8bGVnZW5kPmAgZGVmYXVsdFxuICBsaW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0O1xufVxuXG4uY29sLWZvcm0tbGFiZWwtbGcge1xuICBwYWRkaW5nLXRvcDogY2FsYygjeyRpbnB1dC1wYWRkaW5nLXktbGd9ICsgI3skaW5wdXQtYm9yZGVyLXdpZHRofSk7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKCN7JGlucHV0LXBhZGRpbmcteS1sZ30gKyAjeyRpbnB1dC1ib3JkZXItd2lkdGh9KTtcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRpbnB1dC1mb250LXNpemUtbGcpO1xuICBsaW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0LWxnO1xufVxuXG4uY29sLWZvcm0tbGFiZWwtc20ge1xuICBwYWRkaW5nLXRvcDogY2FsYygjeyRpbnB1dC1wYWRkaW5nLXktc219ICsgI3skaW5wdXQtYm9yZGVyLXdpZHRofSk7XG4gIHBhZGRpbmctYm90dG9tOiBjYWxjKCN7JGlucHV0LXBhZGRpbmcteS1zbX0gKyAjeyRpbnB1dC1ib3JkZXItd2lkdGh9KTtcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRpbnB1dC1mb250LXNpemUtc20pO1xuICBsaW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0LXNtO1xufVxuXG5cbi8vIFJlYWRvbmx5IGNvbnRyb2xzIGFzIHBsYWluIHRleHRcbi8vXG4vLyBBcHBseSBjbGFzcyB0byBhIHJlYWRvbmx5IGlucHV0IHRvIG1ha2UgaXQgYXBwZWFyIGxpa2UgcmVndWxhciBwbGFpblxuLy8gdGV4dCAod2l0aG91dCBhbnkgYm9yZGVyLCBiYWNrZ3JvdW5kIGNvbG9yLCBmb2N1cyBpbmRpY2F0b3IpXG5cbi5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXRvcDogJGlucHV0LXBhZGRpbmcteTtcbiAgcGFkZGluZy1ib3R0b206ICRpbnB1dC1wYWRkaW5nLXk7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8vIG1hdGNoIGlucHV0cyBpZiB0aGlzIGNsYXNzIGNvbWVzIG9uIGlucHV0cyB3aXRoIGRlZmF1bHQgbWFyZ2luc1xuICBsaW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0O1xuICBjb2xvcjogJGlucHV0LXBsYWludGV4dC1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci13aWR0aDogJGlucHV0LWJvcmRlci13aWR0aCAwO1xuXG4gICYuZm9ybS1jb250cm9sLXNtLFxuICAmLmZvcm0tY29udHJvbC1sZyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbn1cblxuXG4vLyBGb3JtIGNvbnRyb2wgc2l6aW5nXG4vL1xuLy8gQnVpbGQgb24gYC5mb3JtLWNvbnRyb2xgIHdpdGggbW9kaWZpZXIgY2xhc3NlcyB0byBkZWNyZWFzZSBvciBpbmNyZWFzZSB0aGVcbi8vIGhlaWdodCBhbmQgZm9udC1zaXplIG9mIGZvcm0gY29udHJvbHMuXG4vL1xuLy8gUmVwZWF0ZWQgaW4gYF9pbnB1dF9ncm91cC5zY3NzYCB0byBhdm9pZCBTYXNzIGV4dGVuZCBpc3N1ZXMuXG5cbi5mb3JtLWNvbnRyb2wtc20ge1xuICBoZWlnaHQ6ICRpbnB1dC1oZWlnaHQtc207XG4gIHBhZGRpbmc6ICRpbnB1dC1wYWRkaW5nLXktc20gJGlucHV0LXBhZGRpbmcteC1zbTtcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRpbnB1dC1mb250LXNpemUtc20pO1xuICBsaW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0LXNtO1xuICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRpbnB1dC1ib3JkZXItcmFkaXVzLXNtKTtcbn1cblxuLmZvcm0tY29udHJvbC1sZyB7XG4gIGhlaWdodDogJGlucHV0LWhlaWdodC1sZztcbiAgcGFkZGluZzogJGlucHV0LXBhZGRpbmcteS1sZyAkaW5wdXQtcGFkZGluZy14LWxnO1xuICBAaW5jbHVkZSBmb250LXNpemUoJGlucHV0LWZvbnQtc2l6ZS1sZyk7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQtbGc7XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGlucHV0LWJvcmRlci1yYWRpdXMtbGcpO1xufVxuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZHVwbGljYXRlLXNlbGVjdG9yc1xuc2VsZWN0LmZvcm0tY29udHJvbCB7XG4gICZbc2l6ZV0sXG4gICZbbXVsdGlwbGVdIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cblxudGV4dGFyZWEuZm9ybS1jb250cm9sIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vLyBGb3JtIGdyb3Vwc1xuLy9cbi8vIERlc2lnbmVkIHRvIGhlbHAgd2l0aCB0aGUgb3JnYW5pemF0aW9uIGFuZCBzcGFjaW5nIG9mIHZlcnRpY2FsIGZvcm1zLiBGb3Jcbi8vIGhvcml6b250YWwgZm9ybXMsIHVzZSB0aGUgcHJlZGVmaW5lZCBncmlkIGNsYXNzZXMuXG5cbi5mb3JtLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogJGZvcm0tZ3JvdXAtbWFyZ2luLWJvdHRvbTtcbn1cblxuLmZvcm0tdGV4dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAkZm9ybS10ZXh0LW1hcmdpbi10b3A7XG59XG5cblxuLy8gRm9ybSBncmlkXG4vL1xuLy8gU3BlY2lhbCByZXBsYWNlbWVudCBmb3Igb3VyIGdyaWQgc3lzdGVtJ3MgYC5yb3dgIGZvciB0aWdodGVyIGZvcm0gbGF5b3V0cy5cblxuLmZvcm0tcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW4tcmlnaHQ6IC0kZm9ybS1ncmlkLWd1dHRlci13aWR0aCAvIDI7XG4gIG1hcmdpbi1sZWZ0OiAtJGZvcm0tZ3JpZC1ndXR0ZXItd2lkdGggLyAyO1xuXG4gID4gLmNvbCxcbiAgPiBbY2xhc3MqPVwiY29sLVwiXSB7XG4gICAgcGFkZGluZy1yaWdodDogJGZvcm0tZ3JpZC1ndXR0ZXItd2lkdGggLyAyO1xuICAgIHBhZGRpbmctbGVmdDogJGZvcm0tZ3JpZC1ndXR0ZXItd2lkdGggLyAyO1xuICB9XG59XG5cblxuLy8gQ2hlY2tib3hlcyBhbmQgcmFkaW9zXG4vL1xuLy8gSW5kZW50IHRoZSBsYWJlbHMgdG8gcG9zaXRpb24gcmFkaW9zL2NoZWNrYm94ZXMgYXMgaGFuZ2luZyBjb250cm9scy5cblxuLmZvcm0tY2hlY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6ICRmb3JtLWNoZWNrLWlucHV0LWd1dHRlcjtcbn1cblxuLmZvcm0tY2hlY2staW5wdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbi10b3A6ICRmb3JtLWNoZWNrLWlucHV0LW1hcmdpbi15O1xuICBtYXJnaW4tbGVmdDogLSRmb3JtLWNoZWNrLWlucHV0LWd1dHRlcjtcblxuICAmOmRpc2FibGVkIH4gLmZvcm0tY2hlY2stbGFiZWwge1xuICAgIGNvbG9yOiAkdGV4dC1tdXRlZDtcbiAgfVxufVxuXG4uZm9ybS1jaGVjay1sYWJlbCB7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8vIE92ZXJyaWRlIGRlZmF1bHQgYDxsYWJlbD5gIGJvdHRvbSBtYXJnaW5cbn1cblxuLmZvcm0tY2hlY2staW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmctbGVmdDogMDsgLy8gT3ZlcnJpZGUgYmFzZSAuZm9ybS1jaGVja1xuICBtYXJnaW4tcmlnaHQ6ICRmb3JtLWNoZWNrLWlubGluZS1tYXJnaW4teDtcblxuICAvLyBVbmRvIC5mb3JtLWNoZWNrLWlucHV0IGRlZmF1bHRzIGFuZCBhZGQgc29tZSBgbWFyZ2luLXJpZ2h0YC5cbiAgLmZvcm0tY2hlY2staW5wdXQge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6ICRmb3JtLWNoZWNrLWlubGluZS1pbnB1dC1tYXJnaW4teDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuXG5cbi8vIEZvcm0gdmFsaWRhdGlvblxuLy9cbi8vIFByb3ZpZGUgZmVlZGJhY2sgdG8gdXNlcnMgd2hlbiBmb3JtIGZpZWxkIHZhbHVlcyBhcmUgdmFsaWQgb3IgaW52YWxpZC4gV29ya3Ncbi8vIHByaW1hcmlseSBmb3IgY2xpZW50LXNpZGUgdmFsaWRhdGlvbiB2aWEgc2NvcGVkIGA6aW52YWxpZGAgYW5kIGA6dmFsaWRgXG4vLyBwc2V1ZG8tY2xhc3NlcyBidXQgYWxzbyBpbmNsdWRlcyBgLmlzLWludmFsaWRgIGFuZCBgLmlzLXZhbGlkYCBjbGFzc2VzIGZvclxuLy8gc2VydmVyIHNpZGUgdmFsaWRhdGlvbi5cblxuQGVhY2ggJHN0YXRlLCAkZGF0YSBpbiAkZm9ybS12YWxpZGF0aW9uLXN0YXRlcyB7XG4gIEBpbmNsdWRlIGZvcm0tdmFsaWRhdGlvbi1zdGF0ZSgkc3RhdGUsIG1hcC1nZXQoJGRhdGEsIGNvbG9yKSwgbWFwLWdldCgkZGF0YSwgaWNvbikpO1xufVxuXG4vLyBJbmxpbmUgZm9ybXNcbi8vXG4vLyBNYWtlIGZvcm1zIGFwcGVhciBpbmxpbmUoLWJsb2NrKSBieSBhZGRpbmcgdGhlIGAuZm9ybS1pbmxpbmVgIGNsYXNzLiBJbmxpbmVcbi8vIGZvcm1zIGJlZ2luIHN0YWNrZWQgb24gZXh0cmEgc21hbGwgKG1vYmlsZSkgZGV2aWNlcyBhbmQgdGhlbiBnbyBpbmxpbmUgd2hlblxuLy8gdmlld3BvcnRzIHJlYWNoIDw3NjhweC5cbi8vXG4vLyBSZXF1aXJlcyB3cmFwcGluZyBpbnB1dHMgYW5kIGxhYmVscyB3aXRoIGAuZm9ybS1ncm91cGAgZm9yIHByb3BlciBkaXNwbGF5IG9mXG4vLyBkZWZhdWx0IEhUTUwgZm9ybSBjb250cm9scyBhbmQgb3VyIGN1c3RvbSBmb3JtIGNvbnRyb2xzIChlLmcuLCBpbnB1dCBncm91cHMpLlxuXG4uZm9ybS1pbmxpbmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyAvLyBQcmV2ZW50IHNob3J0ZXIgZWxlbWVudHMgZnJvbSBncm93aW5nIHRvIHNhbWUgaGVpZ2h0IGFzIG90aGVycyAoZS5nLiwgc21hbGwgYnV0dG9ucyBncm93aW5nIHRvIG5vcm1hbCBzaXplZCBidXR0b24gaGVpZ2h0KVxuXG4gIC8vIEJlY2F1c2Ugd2UgdXNlIGZsZXgsIHRoZSBpbml0aWFsIHNpemluZyBvZiBjaGVja2JveGVzIGlzIGNvbGxhcHNlZCBhbmRcbiAgLy8gZG9lc24ndCBvY2N1cHkgdGhlIGZ1bGwtd2lkdGggKHdoaWNoIGlzIHdoYXQgd2Ugd2FudCBmb3IgeHMgZ3JpZCB0aWVyKSxcbiAgLy8gc28gd2UgZm9yY2UgdGhhdCBoZXJlLlxuICAuZm9ybS1jaGVjayB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBLaWNrIGluIHRoZSBpbmxpbmVcbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChzbSkge1xuICAgIGxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC8vIElubGluZS1ibG9jayBhbGwgdGhlIHRoaW5ncyBmb3IgXCJpbmxpbmVcIlxuICAgIC5mb3JtLWdyb3VwIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAvLyBBbGxvdyBmb2xrcyB0byAqbm90KiB1c2UgYC5mb3JtLWdyb3VwYFxuICAgIC5mb3JtLWNvbnRyb2wge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IGF1dG87IC8vIFByZXZlbnQgbGFiZWxzIGZyb20gc3RhY2tpbmcgYWJvdmUgaW5wdXRzIGluIGAuZm9ybS1ncm91cGBcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLy8gTWFrZSBzdGF0aWMgY29udHJvbHMgYmVoYXZlIGxpa2UgcmVndWxhciBvbmVzXG4gICAgLmZvcm0tY29udHJvbC1wbGFpbnRleHQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC5pbnB1dC1ncm91cCxcbiAgICAuY3VzdG9tLXNlbGVjdCB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgZGVmYXVsdCBtYXJnaW4gb24gcmFkaW9zL2NoZWNrYm94ZXMgdGhhdCB3ZXJlIHVzZWQgZm9yIHN0YWNraW5nLCBhbmRcbiAgICAvLyB0aGVuIHVuZG8gdGhlIGZsb2F0aW5nIG9mIHJhZGlvcyBhbmQgY2hlY2tib3hlcyB0byBtYXRjaC5cbiAgICAuZm9ybS1jaGVjayB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgfVxuICAgIC5mb3JtLWNoZWNrLWlucHV0IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogJGZvcm0tY2hlY2staW5wdXQtbWFyZ2luLXg7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG5cbiAgICAuY3VzdG9tLWNvbnRyb2wge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbiAgICAuY3VzdG9tLWNvbnRyb2wtbGFiZWwge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIHByb3BlcnR5LWJsYWNrbGlzdFxuQG1peGluIHRyYW5zaXRpb24oJHRyYW5zaXRpb24uLi4pIHtcbiAgQGlmICRlbmFibGUtdHJhbnNpdGlvbnMge1xuICAgIEBpZiBsZW5ndGgoJHRyYW5zaXRpb24pID09IDAge1xuICAgICAgdHJhbnNpdGlvbjogJHRyYW5zaXRpb24tYmFzZTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xuICAgIH1cbiAgfVxuXG4gIEBpZiAkZW5hYmxlLXByZWZlcnMtcmVkdWNlZC1tb3Rpb24tbWVkaWEtcXVlcnkge1xuICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm9ybSBjb250cm9sIGZvY3VzIHN0YXRlXG4vL1xuLy8gR2VuZXJhdGUgYSBjdXN0b21pemVkIGZvY3VzIHN0YXRlIGFuZCBmb3IgYW55IGlucHV0IHdpdGggdGhlIHNwZWNpZmllZCBjb2xvcixcbi8vIHdoaWNoIGRlZmF1bHRzIHRvIHRoZSBgJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcmAgdmFyaWFibGUuXG4vL1xuLy8gV2UgaGlnaGx5IGVuY291cmFnZSB5b3UgdG8gbm90IGN1c3RvbWl6ZSB0aGUgZGVmYXVsdCB2YWx1ZSwgYnV0IGluc3RlYWQgdXNlXG4vLyB0aGlzIHRvIHR3ZWFrIGNvbG9ycyBvbiBhbiBhcy1uZWVkZWQgYmFzaXMuIFRoaXMgYWVzdGhldGljIGNoYW5nZSBpcyBiYXNlZCBvblxuLy8gV2ViS2l0J3MgZGVmYXVsdCBzdHlsZXMsIGJ1dCBhcHBsaWNhYmxlIHRvIGEgd2lkZXIgcmFuZ2Ugb2YgYnJvd3NlcnMuIEl0c1xuLy8gdXNhYmlsaXR5IGFuZCBhY2Nlc3NpYmlsaXR5IHNob3VsZCBiZSB0YWtlbiBpbnRvIGFjY291bnQgd2l0aCBhbnkgY2hhbmdlLlxuLy9cbi8vIEV4YW1wbGUgdXNhZ2U6IGNoYW5nZSB0aGUgZGVmYXVsdCBibHVlIGJvcmRlciBhbmQgc2hhZG93IHRvIHdoaXRlIGZvciBiZXR0ZXJcbi8vIGNvbnRyYXN0IGFnYWluc3QgYSBkYXJrIGdyYXkgYmFja2dyb3VuZC5cbkBtaXhpbiBmb3JtLWNvbnRyb2wtZm9jdXMoKSB7XG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkaW5wdXQtZm9jdXMtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWZvY3VzLWJnO1xuICAgIGJvcmRlci1jb2xvcjogJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgICBvdXRsaW5lOiAwO1xuICAgIC8vIEF2b2lkIHVzaW5nIG1peGluIHNvIHdlIGNhbiBwYXNzIGN1c3RvbSBmb2N1cyBzaGFkb3cgcHJvcGVybHlcbiAgICBAaWYgJGVuYWJsZS1zaGFkb3dzIHtcbiAgICAgIGJveC1zaGFkb3c6ICRpbnB1dC1ib3gtc2hhZG93LCAkaW5wdXQtZm9jdXMtYm94LXNoYWRvdztcbiAgICB9IEBlbHNlIHtcbiAgICAgIGJveC1zaGFkb3c6ICRpbnB1dC1mb2N1cy1ib3gtc2hhZG93O1xuICAgIH1cbiAgfVxufVxuXG5cbkBtaXhpbiBmb3JtLXZhbGlkYXRpb24tc3RhdGUoJHN0YXRlLCAkY29sb3IsICRpY29uKSB7XG4gIC4jeyRzdGF0ZX0tZmVlZGJhY2sge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogJGZvcm0tZmVlZGJhY2stbWFyZ2luLXRvcDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoJGZvcm0tZmVlZGJhY2stZm9udC1zaXplKTtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG5cbiAgLiN7JHN0YXRlfS10b29sdGlwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IC8vIENvbnRhaW4gdG8gcGFyZW50IHdoZW4gcG9zc2libGVcbiAgICBwYWRkaW5nOiAkZm9ybS1mZWVkYmFjay10b29sdGlwLXBhZGRpbmcteSAkZm9ybS1mZWVkYmFjay10b29sdGlwLXBhZGRpbmcteDtcbiAgICBtYXJnaW4tdG9wOiAuMXJlbTtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9ybS1mZWVkYmFjay10b29sdGlwLWxpbmUtaGVpZ2h0O1xuICAgIGNvbG9yOiBjb2xvci15aXEoJGNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRjb2xvciwgJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1vcGFjaXR5KTtcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtYm9yZGVyLXJhZGl1cyk7XG4gIH1cblxuICAuZm9ybS1jb250cm9sIHtcbiAgICAud2FzLXZhbGlkYXRlZCAmOiN7JHN0YXRlfSxcbiAgICAmLmlzLSN7JHN0YXRlfSB7XG4gICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcblxuICAgICAgQGlmICRlbmFibGUtdmFsaWRhdGlvbi1pY29ucyB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRpbnB1dC1oZWlnaHQtaW5uZXI7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRpY29uO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgcmlnaHQgJGlucHV0LWhlaWdodC1pbm5lci1xdWFydGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6ICRpbnB1dC1oZWlnaHQtaW5uZXItaGFsZiAkaW5wdXQtaGVpZ2h0LWlubmVyLWhhbGY7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgJGlucHV0LWZvY3VzLXdpZHRoIHJnYmEoJGNvbG9yLCAuMjUpO1xuICAgICAgfVxuXG4gICAgICB+IC4jeyRzdGF0ZX0tZmVlZGJhY2ssXG4gICAgICB+IC4jeyRzdGF0ZX0tdG9vbHRpcCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcbiAgdGV4dGFyZWEuZm9ybS1jb250cm9sIHtcbiAgICAud2FzLXZhbGlkYXRlZCAmOiN7JHN0YXRlfSxcbiAgICAmLmlzLSN7JHN0YXRlfSB7XG4gICAgICBAaWYgJGVuYWJsZS12YWxpZGF0aW9uLWljb25zIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGlucHV0LWhlaWdodC1pbm5lcjtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wICRpbnB1dC1oZWlnaHQtaW5uZXItcXVhcnRlciByaWdodCAkaW5wdXQtaGVpZ2h0LWlubmVyLXF1YXJ0ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmN1c3RvbS1zZWxlY3Qge1xuICAgIC53YXMtdmFsaWRhdGVkICY6I3skc3RhdGV9LFxuICAgICYuaXMtI3skc3RhdGV9IHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuXG4gICAgICBAaWYgJGVuYWJsZS12YWxpZGF0aW9uLWljb25zIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGN1c3RvbS1zZWxlY3QtZmVlZGJhY2staWNvbi1wYWRkaW5nLXJpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY3VzdG9tLXNlbGVjdC1iYWNrZ3JvdW5kLCAkaWNvbiAkY3VzdG9tLXNlbGVjdC1iZyBuby1yZXBlYXQgJGN1c3RvbS1zZWxlY3QtZmVlZGJhY2staWNvbi1wb3NpdGlvbiAvICRjdXN0b20tc2VsZWN0LWZlZWRiYWNrLWljb24tc2l6ZTtcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAkaW5wdXQtZm9jdXMtd2lkdGggcmdiYSgkY29sb3IsIC4yNSk7XG4gICAgICB9XG5cbiAgICAgIH4gLiN7JHN0YXRlfS1mZWVkYmFjayxcbiAgICAgIH4gLiN7JHN0YXRlfS10b29sdGlwIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICAuZm9ybS1jb250cm9sLWZpbGUge1xuICAgIC53YXMtdmFsaWRhdGVkICY6I3skc3RhdGV9LFxuICAgICYuaXMtI3skc3RhdGV9IHtcbiAgICAgIH4gLiN7JHN0YXRlfS1mZWVkYmFjayxcbiAgICAgIH4gLiN7JHN0YXRlfS10b29sdGlwIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmZvcm0tY2hlY2staW5wdXQge1xuICAgIC53YXMtdmFsaWRhdGVkICY6I3skc3RhdGV9LFxuICAgICYuaXMtI3skc3RhdGV9IHtcbiAgICAgIH4gLmZvcm0tY2hlY2stbGFiZWwge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgfVxuXG4gICAgICB+IC4jeyRzdGF0ZX0tZmVlZGJhY2ssXG4gICAgICB+IC4jeyRzdGF0ZX0tdG9vbHRpcCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jdXN0b20tY29udHJvbC1pbnB1dCB7XG4gICAgLndhcy12YWxpZGF0ZWQgJjojeyRzdGF0ZX0sXG4gICAgJi5pcy0jeyRzdGF0ZX0ge1xuICAgICAgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWwge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgfiAuI3skc3RhdGV9LWZlZWRiYWNrLFxuICAgICAgfiAuI3skc3RhdGV9LXRvb2x0aXAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiBsaWdodGVuKCRjb2xvciwgMTAlKTtcbiAgICAgICAgICBAaW5jbHVkZSBncmFkaWVudC1iZyhsaWdodGVuKCRjb2xvciwgMTAlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRpbnB1dC1mb2N1cy13aWR0aCByZ2JhKCRjb2xvciwgLjI1KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KDpjaGVja2VkKSB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIGN1c3RvbSBmaWxlXG4gIC5jdXN0b20tZmlsZS1pbnB1dCB7XG4gICAgLndhcy12YWxpZGF0ZWQgJjojeyRzdGF0ZX0sXG4gICAgJi5pcy0jeyRzdGF0ZX0ge1xuICAgICAgfiAuY3VzdG9tLWZpbGUtbGFiZWwge1xuICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgIH1cblxuICAgICAgfiAuI3skc3RhdGV9LWZlZWRiYWNrLFxuICAgICAgfiAuI3skc3RhdGV9LXRvb2x0aXAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIH4gLmN1c3RvbS1maWxlLWxhYmVsIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAkaW5wdXQtZm9jdXMtd2lkdGggcmdiYSgkY29sb3IsIC4yNSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEdyYWRpZW50c1xuXG5AbWl4aW4gZ3JhZGllbnQtYmcoJGNvbG9yKSB7XG4gIEBpZiAkZW5hYmxlLWdyYWRpZW50cyB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIG1peCgkYm9keS1iZywgJGNvbG9yLCAxNSUpLCAkY29sb3IpIHJlcGVhdC14O1xuICB9IEBlbHNlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8gSG9yaXpvbnRhbCBncmFkaWVudCwgZnJvbSBsZWZ0IHRvIHJpZ2h0XG4vL1xuLy8gQ3JlYXRlcyB0d28gY29sb3Igc3RvcHMsIHN0YXJ0IGFuZCBlbmQsIGJ5IHNwZWNpZnlpbmcgYSBjb2xvciBhbmQgcG9zaXRpb24gZm9yIGVhY2ggY29sb3Igc3RvcC5cbkBtaXhpbiBncmFkaWVudC14KCRzdGFydC1jb2xvcjogJGdyYXktNzAwLCAkZW5kLWNvbG9yOiAkZ3JheS04MDAsICRzdGFydC1wZXJjZW50OiAwJSwgJGVuZC1wZXJjZW50OiAxMDAlKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cblxuLy8gVmVydGljYWwgZ3JhZGllbnQsIGZyb20gdG9wIHRvIGJvdHRvbVxuLy9cbi8vIENyZWF0ZXMgdHdvIGNvbG9yIHN0b3BzLCBzdGFydCBhbmQgZW5kLCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgYW5kIHBvc2l0aW9uIGZvciBlYWNoIGNvbG9yIHN0b3AuXG5AbWl4aW4gZ3JhZGllbnQteSgkc3RhcnQtY29sb3I6ICRncmF5LTcwMCwgJGVuZC1jb2xvcjogJGdyYXktODAwLCAkc3RhcnQtcGVyY2VudDogMCUsICRlbmQtcGVyY2VudDogMTAwJSkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuXG5AbWl4aW4gZ3JhZGllbnQtZGlyZWN0aW9uYWwoJHN0YXJ0LWNvbG9yOiAkZ3JheS03MDAsICRlbmQtY29sb3I6ICRncmF5LTgwMCwgJGRlZzogNDVkZWcpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRkZWcsICRzdGFydC1jb2xvciwgJGVuZC1jb2xvcik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cbkBtaXhpbiBncmFkaWVudC14LXRocmVlLWNvbG9ycygkc3RhcnQtY29sb3I6ICRibHVlLCAkbWlkLWNvbG9yOiAkcHVycGxlLCAkY29sb3Itc3RvcDogNTAlLCAkZW5kLWNvbG9yOiAkcmVkKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yLCAkbWlkLWNvbG9yICRjb2xvci1zdG9wLCAkZW5kLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbkBtaXhpbiBncmFkaWVudC15LXRocmVlLWNvbG9ycygkc3RhcnQtY29sb3I6ICRibHVlLCAkbWlkLWNvbG9yOiAkcHVycGxlLCAkY29sb3Itc3RvcDogNTAlLCAkZW5kLWNvbG9yOiAkcmVkKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkc3RhcnQtY29sb3IsICRtaWQtY29sb3IgJGNvbG9yLXN0b3AsICRlbmQtY29sb3IpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuQG1peGluIGdyYWRpZW50LXJhZGlhbCgkaW5uZXItY29sb3I6ICRncmF5LTcwMCwgJG91dGVyLWNvbG9yOiAkZ3JheS04MDApIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgJGlubmVyLWNvbG9yLCAkb3V0ZXItY29sb3IpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuQG1peGluIGdyYWRpZW50LXN0cmlwZWQoJGNvbG9yOiByZ2JhKCR3aGl0ZSwgLjE1KSwgJGFuZ2xlOiA0NWRlZykge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGFuZ2xlLCAkY29sb3IgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgJGNvbG9yIDUwJSwgJGNvbG9yIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcblxuLy9cbi8vIEJhc2Ugc3R5bGVzXG4vL1xuXG4uYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogJGJ0bi1mb250LWZhbWlseTtcbiAgZm9udC13ZWlnaHQ6ICRidG4tZm9udC13ZWlnaHQ7XG4gIGNvbG9yOiAkYm9keS1jb2xvcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogJGJ0bi1ib3JkZXItd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gIEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRidG4tcGFkZGluZy15LCAkYnRuLXBhZGRpbmcteCwgJGJ0bi1mb250LXNpemUsICRidG4tbGluZS1oZWlnaHQsICRidG4tYm9yZGVyLXJhZGl1cyk7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oJGJ0bi10cmFuc2l0aW9uKTtcblxuICBAaW5jbHVkZSBob3ZlciB7XG4gICAgY29sb3I6ICRib2R5LWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gICY6Zm9jdXMsXG4gICYuZm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm94LXNoYWRvdzogJGJ0bi1mb2N1cy1ib3gtc2hhZG93O1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgY29tZXMgZmlyc3Qgc28gYWN0aXZlIGNhbiBwcm9wZXJseSByZXN0eWxlXG4gICYuZGlzYWJsZWQsXG4gICY6ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6ICRidG4tZGlzYWJsZWQtb3BhY2l0eTtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KG5vbmUpO1xuICB9XG5cbiAgJjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsXG4gICY6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlIHtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KCRidG4tYWN0aXZlLWJveC1zaGFkb3cpO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICBAaW5jbHVkZSBib3gtc2hhZG93KCRidG4tZm9jdXMtYm94LXNoYWRvdywgJGJ0bi1hY3RpdmUtYm94LXNoYWRvdyk7XG4gICAgfVxuICB9XG59XG5cbi8vIEZ1dHVyZS1wcm9vZiBkaXNhYmxpbmcgb2YgY2xpY2tzIG9uIGA8YT5gIGVsZW1lbnRzXG5hLmJ0bi5kaXNhYmxlZCxcbmZpZWxkc2V0OmRpc2FibGVkIGEuYnRuIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cblxuLy9cbi8vIEFsdGVybmF0ZSBidXR0b25zXG4vL1xuXG5AZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkdGhlbWUtY29sb3JzIHtcbiAgLmJ0bi0jeyRjb2xvcn0ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbi12YXJpYW50KCR2YWx1ZSwgJHZhbHVlKTtcbiAgfVxufVxuXG5AZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkdGhlbWUtY29sb3JzIHtcbiAgLmJ0bi1vdXRsaW5lLSN7JGNvbG9yfSB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLW91dGxpbmUtdmFyaWFudCgkdmFsdWUpO1xuICB9XG59XG5cblxuLy9cbi8vIExpbmsgYnV0dG9uc1xuLy9cblxuLy8gTWFrZSBhIGJ1dHRvbiBsb29rIGFuZCBiZWhhdmUgbGlrZSBhIGxpbmtcbi5idG4tbGluayB7XG4gIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbm9ybWFsO1xuICBjb2xvcjogJGxpbmstY29sb3I7XG4gIHRleHQtZGVjb3JhdGlvbjogJGxpbmstZGVjb3JhdGlvbjtcblxuICBAaW5jbHVkZSBob3ZlciB7XG4gICAgY29sb3I6ICRsaW5rLWhvdmVyLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogJGxpbmstaG92ZXItZGVjb3JhdGlvbjtcbiAgfVxuXG4gICY6Zm9jdXMsXG4gICYuZm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogJGxpbmstaG92ZXItZGVjb3JhdGlvbjtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG5cbiAgJjpkaXNhYmxlZCxcbiAgJi5kaXNhYmxlZCB7XG4gICAgY29sb3I6ICRidG4tbGluay1kaXNhYmxlZC1jb2xvcjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuXG4gIC8vIE5vIG5lZWQgZm9yIGFuIGFjdGl2ZSBzdGF0ZSBoZXJlXG59XG5cblxuLy9cbi8vIEJ1dHRvbiBTaXplc1xuLy9cblxuLmJ0bi1sZyB7XG4gIEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRidG4tcGFkZGluZy15LWxnLCAkYnRuLXBhZGRpbmcteC1sZywgJGJ0bi1mb250LXNpemUtbGcsICRidG4tbGluZS1oZWlnaHQtbGcsICRidG4tYm9yZGVyLXJhZGl1cy1sZyk7XG59XG5cbi5idG4tc20ge1xuICBAaW5jbHVkZSBidXR0b24tc2l6ZSgkYnRuLXBhZGRpbmcteS1zbSwgJGJ0bi1wYWRkaW5nLXgtc20sICRidG4tZm9udC1zaXplLXNtLCAkYnRuLWxpbmUtaGVpZ2h0LXNtLCAkYnRuLWJvcmRlci1yYWRpdXMtc20pO1xufVxuXG5cbi8vXG4vLyBCbG9jayBidXR0b25cbi8vXG5cbi5idG4tYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG5cbiAgLy8gVmVydGljYWxseSBzcGFjZSBvdXQgbXVsdGlwbGUgYmxvY2sgYnV0dG9uc1xuICArIC5idG4tYmxvY2sge1xuICAgIG1hcmdpbi10b3A6ICRidG4tYmxvY2stc3BhY2luZy15O1xuICB9XG59XG5cbi8vIFNwZWNpZmljaXR5IG92ZXJyaWRlc1xuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJidXR0b25cIl0ge1xuICAmLmJ0bi1ibG9jayB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbiIsIi8vIEJ1dHRvbiB2YXJpYW50c1xuLy9cbi8vIEVhc2lseSBwdW1wIG91dCBkZWZhdWx0IHN0eWxlcywgYXMgd2VsbCBhcyA6aG92ZXIsIDpmb2N1cywgOmFjdGl2ZSxcbi8vIGFuZCBkaXNhYmxlZCBvcHRpb25zIGZvciBhbGwgYnV0dG9uc1xuXG5AbWl4aW4gYnV0dG9uLXZhcmlhbnQoJGJhY2tncm91bmQsICRib3JkZXIsICRob3Zlci1iYWNrZ3JvdW5kOiBkYXJrZW4oJGJhY2tncm91bmQsIDcuNSUpLCAkaG92ZXItYm9yZGVyOiBkYXJrZW4oJGJvcmRlciwgMTAlKSwgJGFjdGl2ZS1iYWNrZ3JvdW5kOiBkYXJrZW4oJGJhY2tncm91bmQsIDEwJSksICRhY3RpdmUtYm9yZGVyOiBkYXJrZW4oJGJvcmRlciwgMTIuNSUpKSB7XG4gIGNvbG9yOiBjb2xvci15aXEoJGJhY2tncm91bmQpO1xuICBAaW5jbHVkZSBncmFkaWVudC1iZygkYmFja2dyb3VuZCk7XG4gIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdygkYnRuLWJveC1zaGFkb3cpO1xuXG4gIEBpbmNsdWRlIGhvdmVyIHtcbiAgICBjb2xvcjogY29sb3IteWlxKCRob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICBAaW5jbHVkZSBncmFkaWVudC1iZygkaG92ZXItYmFja2dyb3VuZCk7XG4gICAgYm9yZGVyLWNvbG9yOiAkaG92ZXItYm9yZGVyO1xuICB9XG5cbiAgJjpmb2N1cyxcbiAgJi5mb2N1cyB7XG4gICAgLy8gQXZvaWQgdXNpbmcgbWl4aW4gc28gd2UgY2FuIHBhc3MgY3VzdG9tIGZvY3VzIHNoYWRvdyBwcm9wZXJseVxuICAgIEBpZiAkZW5hYmxlLXNoYWRvd3Mge1xuICAgICAgYm94LXNoYWRvdzogJGJ0bi1ib3gtc2hhZG93LCAwIDAgMCAkYnRuLWZvY3VzLXdpZHRoIHJnYmEobWl4KGNvbG9yLXlpcSgkYmFja2dyb3VuZCksICRib3JkZXIsIDE1JSksIC41KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRidG4tZm9jdXMtd2lkdGggcmdiYShtaXgoY29sb3IteWlxKCRiYWNrZ3JvdW5kKSwgJGJvcmRlciwgMTUlKSwgLjUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIERpc2FibGVkIGNvbWVzIGZpcnN0IHNvIGFjdGl2ZSBjYW4gcHJvcGVybHkgcmVzdHlsZVxuICAmLmRpc2FibGVkLFxuICAmOmRpc2FibGVkIHtcbiAgICBjb2xvcjogY29sb3IteWlxKCRiYWNrZ3JvdW5kKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBib3JkZXItY29sb3I6ICRib3JkZXI7XG4gICAgLy8gUmVtb3ZlIENTUyBncmFkaWVudHMgaWYgdGhleSdyZSBlbmFibGVkXG4gICAgQGlmICRlbmFibGUtZ3JhZGllbnRzIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsXG4gICY6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLFxuICAuc2hvdyA+ICYuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBjb2xvcjogY29sb3IteWlxKCRhY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjdGl2ZS1iYWNrZ3JvdW5kO1xuICAgIEBpZiAkZW5hYmxlLWdyYWRpZW50cyB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOyAvLyBSZW1vdmUgdGhlIGdyYWRpZW50IGZvciB0aGUgcHJlc3NlZC9hY3RpdmUgc3RhdGVcbiAgICB9XG4gICAgYm9yZGVyLWNvbG9yOiAkYWN0aXZlLWJvcmRlcjtcblxuICAgICY6Zm9jdXMge1xuICAgICAgLy8gQXZvaWQgdXNpbmcgbWl4aW4gc28gd2UgY2FuIHBhc3MgY3VzdG9tIGZvY3VzIHNoYWRvdyBwcm9wZXJseVxuICAgICAgQGlmICRlbmFibGUtc2hhZG93cyBhbmQgJGJ0bi1hY3RpdmUtYm94LXNoYWRvdyAhPSBub25lIHtcbiAgICAgICAgYm94LXNoYWRvdzogJGJ0bi1hY3RpdmUtYm94LXNoYWRvdywgMCAwIDAgJGJ0bi1mb2N1cy13aWR0aCByZ2JhKG1peChjb2xvci15aXEoJGJhY2tncm91bmQpLCAkYm9yZGVyLCAxNSUpLCAuNSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgJGJ0bi1mb2N1cy13aWR0aCByZ2JhKG1peChjb2xvci15aXEoJGJhY2tncm91bmQpLCAkYm9yZGVyLCAxNSUpLCAuNSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBidXR0b24tb3V0bGluZS12YXJpYW50KCRjb2xvciwgJGNvbG9yLWhvdmVyOiBjb2xvci15aXEoJGNvbG9yKSwgJGFjdGl2ZS1iYWNrZ3JvdW5kOiAkY29sb3IsICRhY3RpdmUtYm9yZGVyOiAkY29sb3IpIHtcbiAgY29sb3I6ICRjb2xvcjtcbiAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG5cbiAgQGluY2x1ZGUgaG92ZXIge1xuICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjdGl2ZS1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1jb2xvcjogJGFjdGl2ZS1ib3JkZXI7XG4gIH1cblxuICAmOmZvY3VzLFxuICAmLmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAkYnRuLWZvY3VzLXdpZHRoIHJnYmEoJGNvbG9yLCAuNSk7XG4gIH1cblxuICAmLmRpc2FibGVkLFxuICAmOmRpc2FibGVkIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgJjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsXG4gICY6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLFxuICAuc2hvdyA+ICYuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBjb2xvcjogY29sb3IteWlxKCRhY3RpdmUtYmFja2dyb3VuZCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjdGl2ZS1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1jb2xvcjogJGFjdGl2ZS1ib3JkZXI7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIC8vIEF2b2lkIHVzaW5nIG1peGluIHNvIHdlIGNhbiBwYXNzIGN1c3RvbSBmb2N1cyBzaGFkb3cgcHJvcGVybHlcbiAgICAgIEBpZiAkZW5hYmxlLXNoYWRvd3MgYW5kICRidG4tYWN0aXZlLWJveC1zaGFkb3cgIT0gbm9uZSB7XG4gICAgICAgIGJveC1zaGFkb3c6ICRidG4tYWN0aXZlLWJveC1zaGFkb3csIDAgMCAwICRidG4tZm9jdXMtd2lkdGggcmdiYSgkY29sb3IsIC41KTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAkYnRuLWZvY3VzLXdpZHRoIHJnYmEoJGNvbG9yLCAuNSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIEJ1dHRvbiBzaXplc1xuQG1peGluIGJ1dHRvbi1zaXplKCRwYWRkaW5nLXksICRwYWRkaW5nLXgsICRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJGJvcmRlci1yYWRpdXMpIHtcbiAgcGFkZGluZzogJHBhZGRpbmcteSAkcGFkZGluZy14O1xuICBAaW5jbHVkZSBmb250LXNpemUoJGZvbnQtc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gIC8vIE1hbnVhbGx5IGRlY2xhcmUgdG8gcHJvdmlkZSBhbiBvdmVycmlkZSB0byB0aGUgYnJvd3NlciBkZWZhdWx0XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMsIDApO1xufVxuIiwiLmZhZGUge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKCR0cmFuc2l0aW9uLWZhZGUpO1xuXG4gICY6bm90KC5zaG93KSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4uY29sbGFwc2Uge1xuICAmOm5vdCguc2hvdykge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmNvbGxhcHNpbmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbigkdHJhbnNpdGlvbi1jb2xsYXBzZSk7XG59XG4iLCIvLyBUaGUgZHJvcGRvd24gd3JhcHBlciAoYDxkaXY+YClcbi5kcm9wdXAsXG4uZHJvcHJpZ2h0LFxuLmRyb3Bkb3duLFxuLmRyb3BsZWZ0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZHJvcGRvd24tdG9nZ2xlIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAvLyBHZW5lcmF0ZSB0aGUgY2FyZXQgYXV0b21hdGljYWxseVxuICBAaW5jbHVkZSBjYXJldDtcbn1cblxuLy8gVGhlIGRyb3Bkb3duIG1lbnVcbi5kcm9wZG93bi1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICR6aW5kZXgtZHJvcGRvd247XG4gIGRpc3BsYXk6IG5vbmU7IC8vIG5vbmUgYnkgZGVmYXVsdCwgYnV0IGJsb2NrIG9uIFwib3BlblwiIG9mIHRoZSBtZW51XG4gIGZsb2F0OiBsZWZ0O1xuICBtaW4td2lkdGg6ICRkcm9wZG93bi1taW4td2lkdGg7XG4gIHBhZGRpbmc6ICRkcm9wZG93bi1wYWRkaW5nLXkgMDtcbiAgbWFyZ2luOiAkZHJvcGRvd24tc3BhY2VyIDAgMDsgLy8gb3ZlcnJpZGUgZGVmYXVsdCB1bFxuICBAaW5jbHVkZSBmb250LXNpemUoJGRyb3Bkb3duLWZvbnQtc2l6ZSk7XG4gIGNvbG9yOiAkZHJvcGRvd24tY29sb3I7XG4gIHRleHQtYWxpZ246IGxlZnQ7IC8vIEVuc3VyZXMgcHJvcGVyIGFsaWdubWVudCBpZiBwYXJlbnQgaGFzIGl0IGNoYW5nZWQgKGUuZy4sIG1vZGFsIGZvb3RlcilcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRyb3Bkb3duLWJnO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBib3JkZXI6ICRkcm9wZG93bi1ib3JkZXItd2lkdGggc29saWQgJGRyb3Bkb3duLWJvcmRlci1jb2xvcjtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkZHJvcGRvd24tYm9yZGVyLXJhZGl1cyk7XG4gIEBpbmNsdWRlIGJveC1zaGFkb3coJGRyb3Bkb3duLWJveC1zaGFkb3cpO1xufVxuXG5AZWFjaCAkYnJlYWtwb2ludCBpbiBtYXAta2V5cygkZ3JpZC1icmVha3BvaW50cykge1xuICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicmVha3BvaW50KSB7XG4gICAgJGluZml4OiBicmVha3BvaW50LWluZml4KCRicmVha3BvaW50LCAkZ3JpZC1icmVha3BvaW50cyk7XG5cbiAgICAuZHJvcGRvd24tbWVudSN7JGluZml4fS1sZWZ0IHtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgbGVmdDogMDtcbiAgICB9XG5cbiAgICAuZHJvcGRvd24tbWVudSN7JGluZml4fS1yaWdodCB7XG4gICAgICByaWdodDogMDtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbi8vIEFsbG93IGZvciBkcm9wZG93bnMgdG8gZ28gYm90dG9tIHVwIChha2EsIGRyb3B1cC1tZW51KVxuLy8gSnVzdCBhZGQgLmRyb3B1cCBhZnRlciB0aGUgc3RhbmRhcmQgLmRyb3Bkb3duIGNsYXNzIGFuZCB5b3UncmUgc2V0LlxuLmRyb3B1cCB7XG4gIC5kcm9wZG93bi1tZW51IHtcbiAgICB0b3A6IGF1dG87XG4gICAgYm90dG9tOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogJGRyb3Bkb3duLXNwYWNlcjtcbiAgfVxuXG4gIC5kcm9wZG93bi10b2dnbGUge1xuICAgIEBpbmNsdWRlIGNhcmV0KHVwKTtcbiAgfVxufVxuXG4uZHJvcHJpZ2h0IHtcbiAgLmRyb3Bkb3duLW1lbnUge1xuICAgIHRvcDogMDtcbiAgICByaWdodDogYXV0bztcbiAgICBsZWZ0OiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWxlZnQ6ICRkcm9wZG93bi1zcGFjZXI7XG4gIH1cblxuICAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBAaW5jbHVkZSBjYXJldChyaWdodCk7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgdmVydGljYWwtYWxpZ246IDA7XG4gICAgfVxuICB9XG59XG5cbi5kcm9wbGVmdCB7XG4gIC5kcm9wZG93bi1tZW51IHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDEwMCU7XG4gICAgbGVmdDogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1yaWdodDogJGRyb3Bkb3duLXNwYWNlcjtcbiAgfVxuXG4gIC5kcm9wZG93bi10b2dnbGUge1xuICAgIEBpbmNsdWRlIGNhcmV0KGxlZnQpO1xuICAgICY6OmJlZm9yZSB7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogMDtcbiAgICB9XG4gIH1cbn1cblxuLy8gV2hlbiBlbmFibGVkIFBvcHBlci5qcywgcmVzZXQgYmFzaWMgZHJvcGRvd24gcG9zaXRpb25cbi8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kdXBsaWNhdGUtc2VsZWN0b3JzXG4uZHJvcGRvd24tbWVudSB7XG4gICZbeC1wbGFjZW1lbnRePVwidG9wXCJdLFxuICAmW3gtcGxhY2VtZW50Xj1cInJpZ2h0XCJdLFxuICAmW3gtcGxhY2VtZW50Xj1cImJvdHRvbVwiXSxcbiAgJlt4LXBsYWNlbWVudF49XCJsZWZ0XCJdIHtcbiAgICByaWdodDogYXV0bztcbiAgICBib3R0b206IGF1dG87XG4gIH1cbn1cblxuLy8gRGl2aWRlcnMgKGJhc2ljYWxseSBhbiBgPGhyPmApIHdpdGhpbiB0aGUgZHJvcGRvd25cbi5kcm9wZG93bi1kaXZpZGVyIHtcbiAgQGluY2x1ZGUgbmF2LWRpdmlkZXIoJGRyb3Bkb3duLWRpdmlkZXItYmcsICRkcm9wZG93bi1kaXZpZGVyLW1hcmdpbi15KTtcbn1cblxuLy8gTGlua3MsIGJ1dHRvbnMsIGFuZCBtb3JlIHdpdGhpbiB0aGUgZHJvcGRvd24gbWVudVxuLy9cbi8vIGA8YnV0dG9uPmAtc3BlY2lmaWMgc3R5bGVzIGFyZSBkZW5vdGVkIHdpdGggYC8vIEZvciA8YnV0dG9uPnNgXG4uZHJvcGRvd24taXRlbSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTsgLy8gRm9yIGA8YnV0dG9uPmBzXG4gIHBhZGRpbmc6ICRkcm9wZG93bi1pdGVtLXBhZGRpbmcteSAkZHJvcGRvd24taXRlbS1wYWRkaW5nLXg7XG4gIGNsZWFyOiBib3RoO1xuICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbiAgY29sb3I6ICRkcm9wZG93bi1saW5rLWNvbG9yO1xuICB0ZXh0LWFsaWduOiBpbmhlcml0OyAvLyBGb3IgYDxidXR0b24+YHNcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgLy8gcHJldmVudCBsaW5rcyBmcm9tIHJhbmRvbWx5IGJyZWFraW5nIG9udG8gbmV3IGxpbmVzXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAvLyBGb3IgYDxidXR0b24+YHNcbiAgYm9yZGVyOiAwOyAvLyBGb3IgYDxidXR0b24+YHNcblxuICAvLyBQcmV2ZW50IGRyb3Bkb3duIG92ZXJmbG93IGlmIHRoZXJlJ3Mgbm8gcGFkZGluZ1xuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL3B1bGwvMjc3MDNcbiAgQGlmICRkcm9wZG93bi1wYWRkaW5nLXkgPT0gMCB7XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cygkZHJvcGRvd24taW5uZXItYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIEBpbmNsdWRlIGJvcmRlci1ib3R0b20tcmFkaXVzKCRkcm9wZG93bi1pbm5lci1ib3JkZXItcmFkaXVzKTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgY29sb3I6ICRkcm9wZG93bi1saW5rLWhvdmVyLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBAaW5jbHVkZSBncmFkaWVudC1iZygkZHJvcGRvd24tbGluay1ob3Zlci1iZyk7XG4gIH1cblxuICAmLmFjdGl2ZSxcbiAgJjphY3RpdmUge1xuICAgIGNvbG9yOiAkZHJvcGRvd24tbGluay1hY3RpdmUtY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIEBpbmNsdWRlIGdyYWRpZW50LWJnKCRkcm9wZG93bi1saW5rLWFjdGl2ZS1iZyk7XG4gIH1cblxuICAmLmRpc2FibGVkLFxuICAmOmRpc2FibGVkIHtcbiAgICBjb2xvcjogJGRyb3Bkb3duLWxpbmstZGlzYWJsZWQtY29sb3I7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgLy8gUmVtb3ZlIENTUyBncmFkaWVudHMgaWYgdGhleSdyZSBlbmFibGVkXG4gICAgQGlmICRlbmFibGUtZ3JhZGllbnRzIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi5kcm9wZG93bi1tZW51LnNob3cge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLy8gRHJvcGRvd24gc2VjdGlvbiBoZWFkZXJzXG4uZHJvcGRvd24taGVhZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6ICRkcm9wZG93bi1wYWRkaW5nLXkgJGRyb3Bkb3duLWl0ZW0tcGFkZGluZy14O1xuICBtYXJnaW4tYm90dG9tOiAwOyAvLyBmb3IgdXNlIHdpdGggaGVhZGluZyBlbGVtZW50c1xuICBAaW5jbHVkZSBmb250LXNpemUoJGZvbnQtc2l6ZS1zbSk7XG4gIGNvbG9yOiAkZHJvcGRvd24taGVhZGVyLWNvbG9yO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyAvLyBhcyB3aXRoID4gbGkgPiBhXG59XG5cbi8vIERyb3Bkb3duIHRleHRcbi5kcm9wZG93bi1pdGVtLXRleHQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJGRyb3Bkb3duLWl0ZW0tcGFkZGluZy15ICRkcm9wZG93bi1pdGVtLXBhZGRpbmcteDtcbiAgY29sb3I6ICRkcm9wZG93bi1saW5rLWNvbG9yO1xufVxuIiwiQG1peGluIGNhcmV0LWRvd24ge1xuICBib3JkZXItdG9wOiAkY2FyZXQtd2lkdGggc29saWQ7XG4gIGJvcmRlci1yaWdodDogJGNhcmV0LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAwO1xuICBib3JkZXItbGVmdDogJGNhcmV0LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG5AbWl4aW4gY2FyZXQtdXAge1xuICBib3JkZXItdG9wOiAwO1xuICBib3JkZXItcmlnaHQ6ICRjYXJldC13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogJGNhcmV0LXdpZHRoIHNvbGlkO1xuICBib3JkZXItbGVmdDogJGNhcmV0LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG5AbWl4aW4gY2FyZXQtcmlnaHQge1xuICBib3JkZXItdG9wOiAkY2FyZXQtd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogMDtcbiAgYm9yZGVyLWJvdHRvbTogJGNhcmV0LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItbGVmdDogJGNhcmV0LXdpZHRoIHNvbGlkO1xufVxuXG5AbWl4aW4gY2FyZXQtbGVmdCB7XG4gIGJvcmRlci10b3A6ICRjYXJldC13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiAkY2FyZXQtd2lkdGggc29saWQ7XG4gIGJvcmRlci1ib3R0b206ICRjYXJldC13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuQG1peGluIGNhcmV0KCRkaXJlY3Rpb246IGRvd24pIHtcbiAgQGlmICRlbmFibGUtY2FyZXQge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1sZWZ0OiAkY2FyZXQtc3BhY2luZztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiAkY2FyZXQtdmVydGljYWwtYWxpZ247XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgQGlmICRkaXJlY3Rpb24gPT0gZG93biB7XG4gICAgICAgIEBpbmNsdWRlIGNhcmV0LWRvd247XG4gICAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gdXAge1xuICAgICAgICBAaW5jbHVkZSBjYXJldC11cDtcbiAgICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSByaWdodCB7XG4gICAgICAgIEBpbmNsdWRlIGNhcmV0LXJpZ2h0O1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJGNhcmV0LXNwYWNpbmc7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiAkY2FyZXQtdmVydGljYWwtYWxpZ247XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIEBpbmNsdWRlIGNhcmV0LWxlZnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjplbXB0eTo6YWZ0ZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBIb3Jpem9udGFsIGRpdmlkZXJzXG4vL1xuLy8gRGl2aWRlcnMgKGJhc2ljYWxseSBhbiBocikgd2l0aGluIGRyb3Bkb3ducyBhbmQgbmF2IGxpc3RzXG5cbkBtaXhpbiBuYXYtZGl2aWRlcigkY29sb3I6ICRuYXYtZGl2aWRlci1jb2xvciwgJG1hcmdpbi15OiAkbmF2LWRpdmlkZXItbWFyZ2luLXkpIHtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW46ICRtYXJnaW4teSAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yO1xufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlXG5cbi8vIE1ha2UgdGhlIGRpdiBiZWhhdmUgbGlrZSBhIGJ1dHRvblxuLmJ0bi1ncm91cCxcbi5idG4tZ3JvdXAtdmVydGljYWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvLyBtYXRjaCAuYnRuIGFsaWdubWVudCBnaXZlbiBmb250LXNpemUgaGFjayBhYm92ZVxuXG4gID4gLmJ0biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuXG4gICAgLy8gQnJpbmcgdGhlIGhvdmVyLCBmb2N1c2VkLCBhbmQgXCJhY3RpdmVcIiBidXR0b25zIHRvIHRoZSBmcm9udCB0byBvdmVybGF5XG4gICAgLy8gdGhlIGJvcmRlcnMgcHJvcGVybHlcbiAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICB6LWluZGV4OiAxO1xuICAgIH1cbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlLFxuICAgICYuYWN0aXZlIHtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuICB9XG59XG5cbi8vIE9wdGlvbmFsOiBHcm91cCBtdWx0aXBsZSBidXR0b24gZ3JvdXBzIHRvZ2V0aGVyIGZvciBhIHRvb2xiYXJcbi5idG4tdG9vbGJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXG4gIC5pbnB1dC1ncm91cCB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLmJ0bi1ncm91cCB7XG4gIC8vIFByZXZlbnQgZG91YmxlIGJvcmRlcnMgd2hlbiBidXR0b25zIGFyZSBuZXh0IHRvIGVhY2ggb3RoZXJcbiAgPiAuYnRuOm5vdCg6Zmlyc3QtY2hpbGQpLFxuICA+IC5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1sZWZ0OiAtJGJ0bi1ib3JkZXItd2lkdGg7XG4gIH1cblxuICAvLyBSZXNldCByb3VuZGVkIGNvcm5lcnNcbiAgPiAuYnRuOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpLFxuICA+IC5idG4tZ3JvdXA6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4ge1xuICAgIEBpbmNsdWRlIGJvcmRlci1yaWdodC1yYWRpdXMoMCk7XG4gIH1cblxuICA+IC5idG46bm90KDpmaXJzdC1jaGlsZCksXG4gID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKSA+IC5idG4ge1xuICAgIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygwKTtcbiAgfVxufVxuXG4vLyBTaXppbmdcbi8vXG4vLyBSZW1peCB0aGUgZGVmYXVsdCBidXR0b24gc2l6aW5nIGNsYXNzZXMgaW50byBuZXcgb25lcyBmb3IgZWFzaWVyIG1hbmlwdWxhdGlvbi5cblxuLmJ0bi1ncm91cC1zbSA+IC5idG4geyBAZXh0ZW5kIC5idG4tc207IH1cbi5idG4tZ3JvdXAtbGcgPiAuYnRuIHsgQGV4dGVuZCAuYnRuLWxnOyB9XG5cblxuLy9cbi8vIFNwbGl0IGJ1dHRvbiBkcm9wZG93bnNcbi8vXG5cbi5kcm9wZG93bi10b2dnbGUtc3BsaXQge1xuICBwYWRkaW5nLXJpZ2h0OiAkYnRuLXBhZGRpbmcteCAqIC43NTtcbiAgcGFkZGluZy1sZWZ0OiAkYnRuLXBhZGRpbmcteCAqIC43NTtcblxuICAmOjphZnRlcixcbiAgLmRyb3B1cCAmOjphZnRlcixcbiAgLmRyb3ByaWdodCAmOjphZnRlciB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICAuZHJvcGxlZnQgJjo6YmVmb3JlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbn1cblxuLmJ0bi1zbSArIC5kcm9wZG93bi10b2dnbGUtc3BsaXQge1xuICBwYWRkaW5nLXJpZ2h0OiAkYnRuLXBhZGRpbmcteC1zbSAqIC43NTtcbiAgcGFkZGluZy1sZWZ0OiAkYnRuLXBhZGRpbmcteC1zbSAqIC43NTtcbn1cblxuLmJ0bi1sZyArIC5kcm9wZG93bi10b2dnbGUtc3BsaXQge1xuICBwYWRkaW5nLXJpZ2h0OiAkYnRuLXBhZGRpbmcteC1sZyAqIC43NTtcbiAgcGFkZGluZy1sZWZ0OiAkYnRuLXBhZGRpbmcteC1sZyAqIC43NTtcbn1cblxuXG4vLyBUaGUgY2xpY2thYmxlIGJ1dHRvbiBmb3IgdG9nZ2xpbmcgdGhlIG1lbnVcbi8vIFNldCB0aGUgc2FtZSBpbnNldCBzaGFkb3cgYXMgdGhlIDphY3RpdmUgc3RhdGVcbi5idG4tZ3JvdXAuc2hvdyAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdygkYnRuLWFjdGl2ZS1ib3gtc2hhZG93KTtcblxuICAvLyBTaG93IG5vIHNoYWRvdyBmb3IgYC5idG4tbGlua2Agc2luY2UgaXQgaGFzIG5vIG90aGVyIGJ1dHRvbiBzdHlsZXMuXG4gICYuYnRuLWxpbmsge1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3cobm9uZSk7XG4gIH1cbn1cblxuXG4vL1xuLy8gVmVydGljYWwgYnV0dG9uIGdyb3Vwc1xuLy9cblxuLmJ0bi1ncm91cC12ZXJ0aWNhbCB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICA+IC5idG4sXG4gID4gLmJ0bi1ncm91cCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICA+IC5idG46bm90KDpmaXJzdC1jaGlsZCksXG4gID4gLmJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLXRvcDogLSRidG4tYm9yZGVyLXdpZHRoO1xuICB9XG5cbiAgLy8gUmVzZXQgcm91bmRlZCBjb3JuZXJzXG4gID4gLmJ0bjpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSxcbiAgPiAuYnRuLWdyb3VwOm5vdCg6bGFzdC1jaGlsZCkgPiAuYnRuIHtcbiAgICBAaW5jbHVkZSBib3JkZXItYm90dG9tLXJhZGl1cygwKTtcbiAgfVxuXG4gID4gLmJ0bjpub3QoOmZpcnN0LWNoaWxkKSxcbiAgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0biB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoMCk7XG4gIH1cbn1cblxuXG4vLyBDaGVja2JveCBhbmQgcmFkaW8gb3B0aW9uc1xuLy9cbi8vIEluIG9yZGVyIHRvIHN1cHBvcnQgdGhlIGJyb3dzZXIncyBmb3JtIHZhbGlkYXRpb24gZmVlZGJhY2ssIHBvd2VyZWQgYnkgdGhlXG4vLyBgcmVxdWlyZWRgIGF0dHJpYnV0ZSwgd2UgaGF2ZSB0byBcImhpZGVcIiB0aGUgaW5wdXRzIHZpYSBgY2xpcGAuIFdlIGNhbm5vdCB1c2Vcbi8vIGBkaXNwbGF5OiBub25lO2Agb3IgYHZpc2liaWxpdHk6IGhpZGRlbjtgIGFzIHRoYXQgYWxzbyBoaWRlcyB0aGUgcG9wb3Zlci5cbi8vIFNpbXBseSB2aXN1YWxseSBoaWRpbmcgdGhlIGlucHV0cyB2aWEgYG9wYWNpdHlgIHdvdWxkIGxlYXZlIHRoZW0gY2xpY2thYmxlIGluXG4vLyBjZXJ0YWluIGNhc2VzIHdoaWNoIGlzIHByZXZlbnRlZCBieSB1c2luZyBgY2xpcGAgYW5kIGBwb2ludGVyLWV2ZW50c2AuXG4vLyBUaGlzIHdheSwgd2UgZW5zdXJlIGEgRE9NIGVsZW1lbnQgaXMgdmlzaWJsZSB0byBwb3NpdGlvbiB0aGUgcG9wb3ZlciBmcm9tLlxuLy9cbi8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvcHVsbC8xMjc5NCBhbmRcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzE0NTU5IGZvciBtb3JlIGluZm9ybWF0aW9uLlxuXG4uYnRuLWdyb3VwLXRvZ2dsZSB7XG4gID4gLmJ0bixcbiAgPiAuYnRuLWdyb3VwID4gLmJ0biB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgLy8gT3ZlcnJpZGUgZGVmYXVsdCBgPGxhYmVsPmAgdmFsdWVcblxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbiAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlXG5cbi8vXG4vLyBCYXNlIHN0eWxlc1xuLy9cblxuLmlucHV0LWdyb3VwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7IC8vIEZvciBmb3JtIHZhbGlkYXRpb24gZmVlZGJhY2tcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIHdpZHRoOiAxMDAlO1xuXG4gID4gLmZvcm0tY29udHJvbCxcbiAgPiAuZm9ybS1jb250cm9sLXBsYWludGV4dCxcbiAgPiAuY3VzdG9tLXNlbGVjdCxcbiAgPiAuY3VzdG9tLWZpbGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLy8gRm9yIGZvY3VzIHN0YXRlJ3Mgei1pbmRleFxuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIC8vIEFkZCB3aWR0aCAxJSBhbmQgZmxleC1iYXNpcyBhdXRvIHRvIGVuc3VyZSB0aGF0IGJ1dHRvbiB3aWxsIG5vdCB3cmFwIG91dFxuICAgIC8vIHRoZSBjb2x1bW4uIEFwcGxpZXMgdG8gSUUgRWRnZSsgYW5kIEZpcmVmb3guIENocm9tZSBkb2VzIG5vdCByZXF1aXJlIHRoaXMuXG4gICAgd2lkdGg6IDElO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICArIC5mb3JtLWNvbnRyb2wsXG4gICAgKyAuY3VzdG9tLXNlbGVjdCxcbiAgICArIC5jdXN0b20tZmlsZSB7XG4gICAgICBtYXJnaW4tbGVmdDogLSRpbnB1dC1ib3JkZXItd2lkdGg7XG4gICAgfVxuICB9XG5cbiAgLy8gQnJpbmcgdGhlIFwiYWN0aXZlXCIgZm9ybSBjb250cm9sIHRvIHRoZSB0b3Agb2Ygc3Vycm91bmRpbmcgZWxlbWVudHNcbiAgPiAuZm9ybS1jb250cm9sOmZvY3VzLFxuICA+IC5jdXN0b20tc2VsZWN0OmZvY3VzLFxuICA+IC5jdXN0b20tZmlsZSAuY3VzdG9tLWZpbGUtaW5wdXQ6Zm9jdXMgfiAuY3VzdG9tLWZpbGUtbGFiZWwge1xuICAgIHotaW5kZXg6IDM7XG4gIH1cblxuICAvLyBCcmluZyB0aGUgY3VzdG9tIGZpbGUgaW5wdXQgYWJvdmUgdGhlIGxhYmVsXG4gID4gLmN1c3RvbS1maWxlIC5jdXN0b20tZmlsZS1pbnB1dDpmb2N1cyB7XG4gICAgei1pbmRleDogNDtcbiAgfVxuXG4gID4gLmZvcm0tY29udHJvbCxcbiAgPiAuY3VzdG9tLXNlbGVjdCB7XG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHsgQGluY2x1ZGUgYm9yZGVyLXJpZ2h0LXJhZGl1cygwKTsgfVxuICAgICY6bm90KDpmaXJzdC1jaGlsZCkgeyBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoMCk7IH1cbiAgfVxuXG4gIC8vIEN1c3RvbSBmaWxlIGlucHV0cyBoYXZlIG1vcmUgY29tcGxleCBtYXJrdXAsIHRodXMgcmVxdWlyaW5nIGRpZmZlcmVudFxuICAvLyBib3JkZXItcmFkaXVzIG92ZXJyaWRlcy5cbiAgPiAuY3VzdG9tLWZpbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICY6bm90KDpsYXN0LWNoaWxkKSAuY3VzdG9tLWZpbGUtbGFiZWwsXG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIC5jdXN0b20tZmlsZS1sYWJlbDo6YWZ0ZXIgeyBAaW5jbHVkZSBib3JkZXItcmlnaHQtcmFkaXVzKDApOyB9XG4gICAgJjpub3QoOmZpcnN0LWNoaWxkKSAuY3VzdG9tLWZpbGUtbGFiZWwgeyBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoMCk7IH1cbiAgfVxufVxuXG5cbi8vIFByZXBlbmQgYW5kIGFwcGVuZFxuLy9cbi8vIFdoaWxlIGl0IHJlcXVpcmVzIG9uZSBleHRyYSBsYXllciBvZiBIVE1MIGZvciBlYWNoLCBkZWRpY2F0ZWQgcHJlcGVuZCBhbmRcbi8vIGFwcGVuZCBlbGVtZW50cyBhbGxvdyB1cyB0byAxKSBiZSBsZXNzIGNsZXZlciwgMikgc2ltcGxpZnkgb3VyIHNlbGVjdG9ycywgYW5kXG4vLyAzKSBzdXBwb3J0IEhUTUw1IGZvcm0gdmFsaWRhdGlvbi5cblxuLmlucHV0LWdyb3VwLXByZXBlbmQsXG4uaW5wdXQtZ3JvdXAtYXBwZW5kIHtcbiAgZGlzcGxheTogZmxleDtcblxuICAvLyBFbnN1cmUgYnV0dG9ucyBhcmUgYWx3YXlzIGFib3ZlIGlucHV0cyBmb3IgbW9yZSB2aXN1YWxseSBwbGVhc2luZyBib3JkZXJzLlxuICAvLyBUaGlzIGlzbid0IG5lZWRlZCBmb3IgYC5pbnB1dC1ncm91cC10ZXh0YCBzaW5jZSBpdCBzaGFyZXMgdGhlIHNhbWUgYm9yZGVyLWNvbG9yXG4gIC8vIGFzIG91ciBpbnB1dHMuXG4gIC5idG4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICB6LWluZGV4OiAzO1xuICAgIH1cbiAgfVxuXG4gIC5idG4gKyAuYnRuLFxuICAuYnRuICsgLmlucHV0LWdyb3VwLXRleHQsXG4gIC5pbnB1dC1ncm91cC10ZXh0ICsgLmlucHV0LWdyb3VwLXRleHQsXG4gIC5pbnB1dC1ncm91cC10ZXh0ICsgLmJ0biB7XG4gICAgbWFyZ2luLWxlZnQ6IC0kaW5wdXQtYm9yZGVyLXdpZHRoO1xuICB9XG59XG5cbi5pbnB1dC1ncm91cC1wcmVwZW5kIHsgbWFyZ2luLXJpZ2h0OiAtJGlucHV0LWJvcmRlci13aWR0aDsgfVxuLmlucHV0LWdyb3VwLWFwcGVuZCB7IG1hcmdpbi1sZWZ0OiAtJGlucHV0LWJvcmRlci13aWR0aDsgfVxuXG5cbi8vIFRleHR1YWwgYWRkb25zXG4vL1xuLy8gU2VydmVzIGFzIGEgY2F0Y2gtYWxsIGVsZW1lbnQgZm9yIGFueSB0ZXh0IG9yIHJhZGlvL2NoZWNrYm94IGlucHV0IHlvdSB3aXNoXG4vLyB0byBwcmVwZW5kIG9yIGFwcGVuZCB0byBhbiBpbnB1dC5cblxuLmlucHV0LWdyb3VwLXRleHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAkaW5wdXQtcGFkZGluZy15ICRpbnB1dC1wYWRkaW5nLXg7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8vIEFsbG93IHVzZSBvZiA8bGFiZWw+IGVsZW1lbnRzIGJ5IG92ZXJyaWRpbmcgb3VyIGRlZmF1bHQgbWFyZ2luLWJvdHRvbVxuICBAaW5jbHVkZSBmb250LXNpemUoJGlucHV0LWZvbnQtc2l6ZSk7IC8vIE1hdGNoIGlucHV0c1xuICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6ICRpbnB1dC1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRpbnB1dC1ncm91cC1hZGRvbi1jb2xvcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtZ3JvdXAtYWRkb24tYmc7XG4gIGJvcmRlcjogJGlucHV0LWJvcmRlci13aWR0aCBzb2xpZCAkaW5wdXQtZ3JvdXAtYWRkb24tYm9yZGVyLWNvbG9yO1xuICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRpbnB1dC1ib3JkZXItcmFkaXVzKTtcblxuICAvLyBOdWtlIGRlZmF1bHQgbWFyZ2lucyBmcm9tIGNoZWNrYm94ZXMgYW5kIHJhZGlvcyB0byB2ZXJ0aWNhbGx5IGNlbnRlciB3aXRoaW4uXG4gIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcbiAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG59XG5cblxuLy8gU2l6aW5nXG4vL1xuLy8gUmVtaXggdGhlIGRlZmF1bHQgZm9ybSBjb250cm9sIHNpemluZyBjbGFzc2VzIGludG8gbmV3IG9uZXMgZm9yIGVhc2llclxuLy8gbWFuaXB1bGF0aW9uLlxuXG4uaW5wdXQtZ3JvdXAtbGcgPiAuZm9ybS1jb250cm9sOm5vdCh0ZXh0YXJlYSksXG4uaW5wdXQtZ3JvdXAtbGcgPiAuY3VzdG9tLXNlbGVjdCB7XG4gIGhlaWdodDogJGlucHV0LWhlaWdodC1sZztcbn1cblxuLmlucHV0LWdyb3VwLWxnID4gLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cC1sZyA+IC5jdXN0b20tc2VsZWN0LFxuLmlucHV0LWdyb3VwLWxnID4gLmlucHV0LWdyb3VwLXByZXBlbmQgPiAuaW5wdXQtZ3JvdXAtdGV4dCxcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1hcHBlbmQgPiAuaW5wdXQtZ3JvdXAtdGV4dCxcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1wcmVwZW5kID4gLmJ0bixcbi5pbnB1dC1ncm91cC1sZyA+IC5pbnB1dC1ncm91cC1hcHBlbmQgPiAuYnRuIHtcbiAgcGFkZGluZzogJGlucHV0LXBhZGRpbmcteS1sZyAkaW5wdXQtcGFkZGluZy14LWxnO1xuICBAaW5jbHVkZSBmb250LXNpemUoJGlucHV0LWZvbnQtc2l6ZS1sZyk7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQtbGc7XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGlucHV0LWJvcmRlci1yYWRpdXMtbGcpO1xufVxuXG4uaW5wdXQtZ3JvdXAtc20gPiAuZm9ybS1jb250cm9sOm5vdCh0ZXh0YXJlYSksXG4uaW5wdXQtZ3JvdXAtc20gPiAuY3VzdG9tLXNlbGVjdCB7XG4gIGhlaWdodDogJGlucHV0LWhlaWdodC1zbTtcbn1cblxuLmlucHV0LWdyb3VwLXNtID4gLmZvcm0tY29udHJvbCxcbi5pbnB1dC1ncm91cC1zbSA+IC5jdXN0b20tc2VsZWN0LFxuLmlucHV0LWdyb3VwLXNtID4gLmlucHV0LWdyb3VwLXByZXBlbmQgPiAuaW5wdXQtZ3JvdXAtdGV4dCxcbi5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1hcHBlbmQgPiAuaW5wdXQtZ3JvdXAtdGV4dCxcbi5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1wcmVwZW5kID4gLmJ0bixcbi5pbnB1dC1ncm91cC1zbSA+IC5pbnB1dC1ncm91cC1hcHBlbmQgPiAuYnRuIHtcbiAgcGFkZGluZzogJGlucHV0LXBhZGRpbmcteS1zbSAkaW5wdXQtcGFkZGluZy14LXNtO1xuICBAaW5jbHVkZSBmb250LXNpemUoJGlucHV0LWZvbnQtc2l6ZS1zbSk7XG4gIGxpbmUtaGVpZ2h0OiAkaW5wdXQtbGluZS1oZWlnaHQtc207XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGlucHV0LWJvcmRlci1yYWRpdXMtc20pO1xufVxuXG4uaW5wdXQtZ3JvdXAtbGcgPiAuY3VzdG9tLXNlbGVjdCxcbi5pbnB1dC1ncm91cC1zbSA+IC5jdXN0b20tc2VsZWN0IHtcbiAgcGFkZGluZy1yaWdodDogJGN1c3RvbS1zZWxlY3QtcGFkZGluZy14ICsgJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yLXBhZGRpbmc7XG59XG5cblxuLy8gUHJlcGVuZCBhbmQgYXBwZW5kIHJvdW5kZWQgY29ybmVyc1xuLy9cbi8vIFRoZXNlIHJ1bGVzZXRzIG11c3QgY29tZSBhZnRlciB0aGUgc2l6aW5nIG9uZXMgdG8gcHJvcGVybHkgb3ZlcnJpZGUgc20gYW5kIGxnXG4vLyBib3JkZXItcmFkaXVzIHZhbHVlcyB3aGVuIGV4dGVuZGluZy4gVGhleSdyZSBtb3JlIHNwZWNpZmljIHRoYW4gd2UnZCBsaWtlXG4vLyB3aXRoIHRoZSBgLmlucHV0LWdyb3VwID5gIHBhcnQsIGJ1dCB3aXRob3V0IGl0LCB3ZSBjYW5ub3Qgb3ZlcnJpZGUgdGhlIHNpemluZy5cblxuXG4uaW5wdXQtZ3JvdXAgPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZCA+IC5idG4sXG4uaW5wdXQtZ3JvdXAgPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZCA+IC5pbnB1dC1ncm91cC10ZXh0LFxuLmlucHV0LWdyb3VwID4gLmlucHV0LWdyb3VwLWFwcGVuZDpub3QoOmxhc3QtY2hpbGQpID4gLmJ0bixcbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1hcHBlbmQ6bm90KDpsYXN0LWNoaWxkKSA+IC5pbnB1dC1ncm91cC10ZXh0LFxuLmlucHV0LWdyb3VwID4gLmlucHV0LWdyb3VwLWFwcGVuZDpsYXN0LWNoaWxkID4gLmJ0bjpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSxcbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1hcHBlbmQ6bGFzdC1jaGlsZCA+IC5pbnB1dC1ncm91cC10ZXh0Om5vdCg6bGFzdC1jaGlsZCkge1xuICBAaW5jbHVkZSBib3JkZXItcmlnaHQtcmFkaXVzKDApO1xufVxuXG4uaW5wdXQtZ3JvdXAgPiAuaW5wdXQtZ3JvdXAtYXBwZW5kID4gLmJ0bixcbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1hcHBlbmQgPiAuaW5wdXQtZ3JvdXAtdGV4dCxcbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1wcmVwZW5kOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0bixcbi5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1wcmVwZW5kOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmlucHV0LWdyb3VwLXRleHQsXG4uaW5wdXQtZ3JvdXAgPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZDpmaXJzdC1jaGlsZCA+IC5idG46bm90KDpmaXJzdC1jaGlsZCksXG4uaW5wdXQtZ3JvdXAgPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZDpmaXJzdC1jaGlsZCA+IC5pbnB1dC1ncm91cC10ZXh0Om5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKDApO1xufVxuIiwiLy8gRW1iZWRkZWQgaWNvbnMgZnJvbSBPcGVuIEljb25pYy5cbi8vIFJlbGVhc2VkIHVuZGVyIE1JVCBhbmQgY29weXJpZ2h0IDIwMTQgV2F5YnVyeS5cbi8vIGh0dHBzOi8vdXNlaWNvbmljLmNvbS9vcGVuXG5cblxuLy8gQ2hlY2tib3hlcyBhbmQgcmFkaW9zXG4vL1xuLy8gQmFzZSBjbGFzcyB0YWtlcyBjYXJlIG9mIGFsbCB0aGUga2V5IGJlaGF2aW9yYWwgYXNwZWN0cy5cblxuLmN1c3RvbS1jb250cm9sIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWluLWhlaWdodDogJGZvbnQtc2l6ZS1iYXNlICogJGxpbmUtaGVpZ2h0LWJhc2U7XG4gIHBhZGRpbmctbGVmdDogJGN1c3RvbS1jb250cm9sLWd1dHRlciArICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3Itc2l6ZTtcbn1cblxuLmN1c3RvbS1jb250cm9sLWlubGluZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBtYXJnaW4tcmlnaHQ6ICRjdXN0b20tY29udHJvbC1zcGFjZXIteDtcbn1cblxuLmN1c3RvbS1jb250cm9sLWlucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAtMTsgLy8gUHV0IHRoZSBpbnB1dCBiZWhpbmQgdGhlIGxhYmVsIHNvIGl0IGRvZXNuJ3Qgb3ZlcmxheSB0ZXh0XG4gIG9wYWNpdHk6IDA7XG5cbiAgJjpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgIGNvbG9yOiAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWNoZWNrZWQtY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWNoZWNrZWQtYm9yZGVyLWNvbG9yO1xuICAgIEBpbmNsdWRlIGdyYWRpZW50LWJnKCRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1iZyk7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWNoZWNrZWQtYm94LXNoYWRvdyk7XG4gIH1cblxuICAmOmZvY3VzIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgIC8vIHRoZSBtaXhpbiBpcyBub3QgdXNlZCBoZXJlIHRvIG1ha2Ugc3VyZSB0aGVyZSBpcyBmZWVkYmFja1xuICAgIEBpZiAkZW5hYmxlLXNoYWRvd3Mge1xuICAgICAgYm94LXNoYWRvdzogJGlucHV0LWJveC1zaGFkb3csICRpbnB1dC1mb2N1cy1ib3gtc2hhZG93O1xuICAgIH0gQGVsc2Uge1xuICAgICAgYm94LXNoYWRvdzogJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1mb2N1cy1ib3gtc2hhZG93O1xuICAgIH1cbiAgfVxuXG4gICY6Zm9jdXM6bm90KDpjaGVja2VkKSB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICBib3JkZXItY29sb3I6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItZm9jdXMtYm9yZGVyLWNvbG9yO1xuICB9XG5cbiAgJjpub3QoOmRpc2FibGVkKTphY3RpdmUgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgY29sb3I6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYWN0aXZlLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYWN0aXZlLWJnO1xuICAgIGJvcmRlci1jb2xvcjogJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1hY3RpdmUtYm9yZGVyLWNvbG9yO1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1hY3RpdmUtYm94LXNoYWRvdyk7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICB+IC5jdXN0b20tY29udHJvbC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGN1c3RvbS1jb250cm9sLWxhYmVsLWRpc2FibGVkLWNvbG9yO1xuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWRpc2FibGVkLWJnO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBDdXN0b20gY29udHJvbCBpbmRpY2F0b3JzXG4vL1xuLy8gQnVpbGQgdGhlIGN1c3RvbSBjb250cm9scyBvdXQgb2YgcHNldWRvLWVsZW1lbnRzLlxuXG4uY3VzdG9tLWNvbnRyb2wtbGFiZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cbiAgLy8gQmFja2dyb3VuZC1jb2xvciBhbmQgKHdoZW4gZW5hYmxlZCkgZ3JhZGllbnRcbiAgJjo6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAoJGZvbnQtc2l6ZS1iYXNlICogJGxpbmUtaGVpZ2h0LWJhc2UgLSAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLXNpemUpIC8gMjtcbiAgICBsZWZ0OiAtKCRjdXN0b20tY29udHJvbC1ndXR0ZXIgKyAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLXNpemUpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLXNpemU7XG4gICAgaGVpZ2h0OiAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLXNpemU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWJnO1xuICAgIGJvcmRlcjogJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1ib3JkZXItY29sb3Igc29saWQgJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1ib3JkZXItd2lkdGg7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWJveC1zaGFkb3cpO1xuICB9XG5cbiAgLy8gRm9yZWdyb3VuZCAoaWNvbilcbiAgJjo6YWZ0ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6ICgkZm9udC1zaXplLWJhc2UgKiAkbGluZS1oZWlnaHQtYmFzZSAtICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3Itc2l6ZSkgLyAyO1xuICAgIGxlZnQ6IC0oJGN1c3RvbS1jb250cm9sLWd1dHRlciArICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3Itc2l6ZSk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3Itc2l6ZTtcbiAgICBoZWlnaHQ6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3Itc2l6ZTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGJhY2tncm91bmQ6IG5vLXJlcGVhdCA1MCUgLyAjeyRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYmctc2l6ZX07XG4gIH1cbn1cblxuXG4vLyBDaGVja2JveGVzXG4vL1xuLy8gVHdlYWsganVzdCBhIGZldyB0aGluZ3MgZm9yIGNoZWNrYm94ZXMuXG5cbi5jdXN0b20tY2hlY2tib3gge1xuICAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkY3VzdG9tLWNoZWNrYm94LWluZGljYXRvci1ib3JkZXItcmFkaXVzKTtcbiAgfVxuXG4gIC5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkY3VzdG9tLWNoZWNrYm94LWluZGljYXRvci1pY29uLWNoZWNrZWQ7XG4gICAgfVxuICB9XG5cbiAgLmN1c3RvbS1jb250cm9sLWlucHV0OmluZGV0ZXJtaW5hdGUgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWwge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBib3JkZXItY29sb3I6ICRjdXN0b20tY2hlY2tib3gtaW5kaWNhdG9yLWluZGV0ZXJtaW5hdGUtYm9yZGVyLWNvbG9yO1xuICAgICAgQGluY2x1ZGUgZ3JhZGllbnQtYmcoJGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItaW5kZXRlcm1pbmF0ZS1iZyk7XG4gICAgICBAaW5jbHVkZSBib3gtc2hhZG93KCRjdXN0b20tY2hlY2tib3gtaW5kaWNhdG9yLWluZGV0ZXJtaW5hdGUtYm94LXNoYWRvdyk7XG4gICAgfVxuICAgICY6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRjdXN0b20tY2hlY2tib3gtaW5kaWNhdG9yLWljb24taW5kZXRlcm1pbmF0ZTtcbiAgICB9XG4gIH1cblxuICAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6ZGlzYWJsZWQge1xuICAgICY6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1kaXNhYmxlZC1iZztcbiAgICB9XG4gICAgJjppbmRldGVybWluYXRlIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1jaGVja2VkLWRpc2FibGVkLWJnO1xuICAgIH1cbiAgfVxufVxuXG4vLyBSYWRpb3Ncbi8vXG4vLyBUd2VhayBqdXN0IGEgZmV3IHRoaW5ncyBmb3IgcmFkaW9zLlxuXG4uY3VzdG9tLXJhZGlvIHtcbiAgLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9wZXJ0eS1ibGFja2xpc3RcbiAgICBib3JkZXItcmFkaXVzOiAkY3VzdG9tLXJhZGlvLWluZGljYXRvci1ib3JkZXItcmFkaXVzO1xuICB9XG5cbiAgLmN1c3RvbS1jb250cm9sLWlucHV0OmNoZWNrZWQgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWwge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRjdXN0b20tcmFkaW8taW5kaWNhdG9yLWljb24tY2hlY2tlZDtcbiAgICB9XG4gIH1cblxuICAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6ZGlzYWJsZWQge1xuICAgICY6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1kaXNhYmxlZC1iZztcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBzd2l0Y2hlc1xuLy9cbi8vIFR3ZWFrIGEgZmV3IHRoaW5ncyBmb3Igc3dpdGNoZXNcblxuLmN1c3RvbS1zd2l0Y2gge1xuICBwYWRkaW5nLWxlZnQ6ICRjdXN0b20tc3dpdGNoLXdpZHRoICsgJGN1c3RvbS1jb250cm9sLWd1dHRlcjtcblxuICAuY3VzdG9tLWNvbnRyb2wtbGFiZWwge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBsZWZ0OiAtKCRjdXN0b20tc3dpdGNoLXdpZHRoICsgJGN1c3RvbS1jb250cm9sLWd1dHRlcik7XG4gICAgICB3aWR0aDogJGN1c3RvbS1zd2l0Y2gtd2lkdGg7XG4gICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb3BlcnR5LWJsYWNrbGlzdFxuICAgICAgYm9yZGVyLXJhZGl1czogJGN1c3RvbS1zd2l0Y2gtaW5kaWNhdG9yLWJvcmRlci1yYWRpdXM7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgdG9wOiBjYWxjKCN7KCgkZm9udC1zaXplLWJhc2UgKiAkbGluZS1oZWlnaHQtYmFzZSAtICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3Itc2l6ZSkgLyAyKX0gKyAjeyRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoICogMn0pO1xuICAgICAgbGVmdDogY2FsYygjey0oJGN1c3RvbS1zd2l0Y2gtd2lkdGggKyAkY3VzdG9tLWNvbnRyb2wtZ3V0dGVyKX0gKyAjeyRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoICogMn0pO1xuICAgICAgd2lkdGg6ICRjdXN0b20tc3dpdGNoLWluZGljYXRvci1zaXplO1xuICAgICAgaGVpZ2h0OiAkY3VzdG9tLXN3aXRjaC1pbmRpY2F0b3Itc2l6ZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYm9yZGVyLWNvbG9yO1xuICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb3BlcnR5LWJsYWNrbGlzdFxuICAgICAgYm9yZGVyLXJhZGl1czogJGN1c3RvbS1zd2l0Y2gtaW5kaWNhdG9yLWJvcmRlci1yYWRpdXM7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zZm9ybSAuMTVzIGVhc2UtaW4tb3V0LCAkY3VzdG9tLWZvcm1zLXRyYW5zaXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIC5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2VkIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWJnO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRjdXN0b20tc3dpdGNoLXdpZHRoIC0gJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1zaXplKTtcbiAgICB9XG4gIH1cblxuICAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6ZGlzYWJsZWQge1xuICAgICY6Y2hlY2tlZCB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1kaXNhYmxlZC1iZztcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBTZWxlY3Rcbi8vXG4vLyBSZXBsYWNlcyB0aGUgYnJvd3NlciBkZWZhdWx0IHNlbGVjdCB3aXRoIGEgY3VzdG9tIG9uZSwgbW9zdGx5IHB1bGxlZCBmcm9tXG4vLyBodHRwczovL3ByaW1lci5naXRodWIuaW8vLlxuLy9cblxuLmN1c3RvbS1zZWxlY3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRjdXN0b20tc2VsZWN0LWhlaWdodDtcbiAgcGFkZGluZzogJGN1c3RvbS1zZWxlY3QtcGFkZGluZy15ICgkY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXggKyAkY3VzdG9tLXNlbGVjdC1pbmRpY2F0b3ItcGFkZGluZykgJGN1c3RvbS1zZWxlY3QtcGFkZGluZy15ICRjdXN0b20tc2VsZWN0LXBhZGRpbmcteDtcbiAgZm9udC1mYW1pbHk6ICRjdXN0b20tc2VsZWN0LWZvbnQtZmFtaWx5O1xuICBAaW5jbHVkZSBmb250LXNpemUoJGN1c3RvbS1zZWxlY3QtZm9udC1zaXplKTtcbiAgZm9udC13ZWlnaHQ6ICRjdXN0b20tc2VsZWN0LWZvbnQtd2VpZ2h0O1xuICBsaW5lLWhlaWdodDogJGN1c3RvbS1zZWxlY3QtbGluZS1oZWlnaHQ7XG4gIGNvbG9yOiAkY3VzdG9tLXNlbGVjdC1jb2xvcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYmFja2dyb3VuZDogJGN1c3RvbS1zZWxlY3QtYmFja2dyb3VuZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGN1c3RvbS1zZWxlY3QtYmc7XG4gIGJvcmRlcjogJGN1c3RvbS1zZWxlY3QtYm9yZGVyLXdpZHRoIHNvbGlkICRjdXN0b20tc2VsZWN0LWJvcmRlci1jb2xvcjtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkY3VzdG9tLXNlbGVjdC1ib3JkZXItcmFkaXVzLCAwKTtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdygkY3VzdG9tLXNlbGVjdC1ib3gtc2hhZG93KTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAmOmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRjdXN0b20tc2VsZWN0LWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgICBvdXRsaW5lOiAwO1xuICAgIEBpZiAkZW5hYmxlLXNoYWRvd3Mge1xuICAgICAgYm94LXNoYWRvdzogJGN1c3RvbS1zZWxlY3QtYm94LXNoYWRvdywgJGN1c3RvbS1zZWxlY3QtZm9jdXMtYm94LXNoYWRvdztcbiAgICB9IEBlbHNlIHtcbiAgICAgIGJveC1zaGFkb3c6ICRjdXN0b20tc2VsZWN0LWZvY3VzLWJveC1zaGFkb3c7XG4gICAgfVxuXG4gICAgJjo6LW1zLXZhbHVlIHtcbiAgICAgIC8vIEZvciB2aXN1YWwgY29uc2lzdGVuY3kgd2l0aCBvdGhlciBwbGF0Zm9ybXMvYnJvd3NlcnMsXG4gICAgICAvLyBzdXBwcmVzcyB0aGUgZGVmYXVsdCB3aGl0ZSB0ZXh0IG9uIGJsdWUgYmFja2dyb3VuZCBoaWdobGlnaHQgZ2l2ZW4gdG9cbiAgICAgIC8vIHRoZSBzZWxlY3RlZCBvcHRpb24gdGV4dCB3aGVuIHRoZSAoc3RpbGwgY2xvc2VkKSA8c2VsZWN0PiByZWNlaXZlcyBmb2N1c1xuICAgICAgLy8gaW4gSUUgYW5kICh1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMpIEVkZ2UuXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8xOTM5OC5cbiAgICAgIGNvbG9yOiAkaW5wdXQtY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmc7XG4gICAgfVxuICB9XG5cbiAgJlttdWx0aXBsZV0sXG4gICZbc2l6ZV06bm90KFtzaXplPVwiMVwiXSkge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nLXJpZ2h0OiAkY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGNvbG9yOiAkY3VzdG9tLXNlbGVjdC1kaXNhYmxlZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLXNlbGVjdC1kaXNhYmxlZC1iZztcbiAgfVxuXG4gIC8vIEhpZGVzIHRoZSBkZWZhdWx0IGNhcmV0IGluIElFMTFcbiAgJjo6LW1zLWV4cGFuZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uY3VzdG9tLXNlbGVjdC1zbSB7XG4gIGhlaWdodDogJGN1c3RvbS1zZWxlY3QtaGVpZ2h0LXNtO1xuICBwYWRkaW5nLXRvcDogJGN1c3RvbS1zZWxlY3QtcGFkZGluZy15LXNtO1xuICBwYWRkaW5nLWJvdHRvbTogJGN1c3RvbS1zZWxlY3QtcGFkZGluZy15LXNtO1xuICBwYWRkaW5nLWxlZnQ6ICRjdXN0b20tc2VsZWN0LXBhZGRpbmcteC1zbTtcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRjdXN0b20tc2VsZWN0LWZvbnQtc2l6ZS1zbSk7XG59XG5cbi5jdXN0b20tc2VsZWN0LWxnIHtcbiAgaGVpZ2h0OiAkY3VzdG9tLXNlbGVjdC1oZWlnaHQtbGc7XG4gIHBhZGRpbmctdG9wOiAkY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXktbGc7XG4gIHBhZGRpbmctYm90dG9tOiAkY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXktbGc7XG4gIHBhZGRpbmctbGVmdDogJGN1c3RvbS1zZWxlY3QtcGFkZGluZy14LWxnO1xuICBAaW5jbHVkZSBmb250LXNpemUoJGN1c3RvbS1zZWxlY3QtZm9udC1zaXplLWxnKTtcbn1cblxuXG4vLyBGaWxlXG4vL1xuLy8gQ3VzdG9tIGZpbGUgaW5wdXQuXG5cbi5jdXN0b20tZmlsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAkY3VzdG9tLWZpbGUtaGVpZ2h0O1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uY3VzdG9tLWZpbGUtaW5wdXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6ICRjdXN0b20tZmlsZS1oZWlnaHQ7XG4gIG1hcmdpbjogMDtcbiAgb3BhY2l0eTogMDtcblxuICAmOmZvY3VzIH4gLmN1c3RvbS1maWxlLWxhYmVsIHtcbiAgICBib3JkZXItY29sb3I6ICRjdXN0b20tZmlsZS1mb2N1cy1ib3JkZXItY29sb3I7XG4gICAgYm94LXNoYWRvdzogJGN1c3RvbS1maWxlLWZvY3VzLWJveC1zaGFkb3c7XG4gIH1cblxuICAmOmRpc2FibGVkIH4gLmN1c3RvbS1maWxlLWxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLWZpbGUtZGlzYWJsZWQtYmc7XG4gIH1cblxuICBAZWFjaCAkbGFuZywgJHZhbHVlIGluICRjdXN0b20tZmlsZS10ZXh0IHtcbiAgICAmOmxhbmcoI3skbGFuZ30pIH4gLmN1c3RvbS1maWxlLWxhYmVsOjphZnRlciB7XG4gICAgICBjb250ZW50OiAkdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgfiAuY3VzdG9tLWZpbGUtbGFiZWxbZGF0YS1icm93c2VdOjphZnRlciB7XG4gICAgY29udGVudDogYXR0cihkYXRhLWJyb3dzZSk7XG4gIH1cbn1cblxuLmN1c3RvbS1maWxlLWxhYmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuICBoZWlnaHQ6ICRjdXN0b20tZmlsZS1oZWlnaHQ7XG4gIHBhZGRpbmc6ICRjdXN0b20tZmlsZS1wYWRkaW5nLXkgJGN1c3RvbS1maWxlLXBhZGRpbmcteDtcbiAgZm9udC1mYW1pbHk6ICRjdXN0b20tZmlsZS1mb250LWZhbWlseTtcbiAgZm9udC13ZWlnaHQ6ICRjdXN0b20tZmlsZS1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6ICRjdXN0b20tZmlsZS1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRjdXN0b20tZmlsZS1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGN1c3RvbS1maWxlLWJnO1xuICBib3JkZXI6ICRjdXN0b20tZmlsZS1ib3JkZXItd2lkdGggc29saWQgJGN1c3RvbS1maWxlLWJvcmRlci1jb2xvcjtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkY3VzdG9tLWZpbGUtYm9yZGVyLXJhZGl1cyk7XG4gIEBpbmNsdWRlIGJveC1zaGFkb3coJGN1c3RvbS1maWxlLWJveC1zaGFkb3cpO1xuXG4gICY6OmFmdGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICB6LWluZGV4OiAzO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogJGN1c3RvbS1maWxlLWhlaWdodC1pbm5lcjtcbiAgICBwYWRkaW5nOiAkY3VzdG9tLWZpbGUtcGFkZGluZy15ICRjdXN0b20tZmlsZS1wYWRkaW5nLXg7XG4gICAgbGluZS1oZWlnaHQ6ICRjdXN0b20tZmlsZS1saW5lLWhlaWdodDtcbiAgICBjb2xvcjogJGN1c3RvbS1maWxlLWJ1dHRvbi1jb2xvcjtcbiAgICBjb250ZW50OiBcIkJyb3dzZVwiO1xuICAgIEBpbmNsdWRlIGdyYWRpZW50LWJnKCRjdXN0b20tZmlsZS1idXR0b24tYmcpO1xuICAgIGJvcmRlci1sZWZ0OiBpbmhlcml0O1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMCAkY3VzdG9tLWZpbGUtYm9yZGVyLXJhZGl1cyAkY3VzdG9tLWZpbGUtYm9yZGVyLXJhZGl1cyAwKTtcbiAgfVxufVxuXG4vLyBSYW5nZVxuLy9cbi8vIFN0eWxlIHJhbmdlIGlucHV0cyB0aGUgc2FtZSBhY3Jvc3MgYnJvd3NlcnMuIFZlbmRvci1zcGVjaWZpYyBydWxlcyBmb3IgcHNldWRvXG4vLyBlbGVtZW50cyBjYW5ub3QgYmUgbWl4ZWQuIEFzIHN1Y2gsIHRoZXJlIGFyZSBubyBzaGFyZWQgc3R5bGVzIGZvciBmb2N1cyBvclxuLy8gYWN0aXZlIHN0YXRlcyBvbiBwcmVmaXhlZCBzZWxlY3RvcnMuXG5cbi5jdXN0b20tcmFuZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBjYWxjKCN7JGN1c3RvbS1yYW5nZS10aHVtYi1oZWlnaHR9ICsgI3skY3VzdG9tLXJhbmdlLXRodW1iLWZvY3VzLWJveC1zaGFkb3ctd2lkdGggKiAyfSk7XG4gIHBhZGRpbmc6IDA7IC8vIE5lZWQgdG8gcmVzZXQgcGFkZGluZ1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgLy8gUHNldWRvLWVsZW1lbnRzIG11c3QgYmUgc3BsaXQgYWNyb3NzIG11bHRpcGxlIHJ1bGVzZXRzIHRvIGhhdmUgYW4gZWZmZWN0LlxuICAgIC8vIE5vIGJveC1zaGFkb3coKSBtaXhpbiBmb3IgZm9jdXMgYWNjZXNzaWJpbGl0eS5cbiAgICAmOjotd2Via2l0LXNsaWRlci10aHVtYiB7IGJveC1zaGFkb3c6ICRjdXN0b20tcmFuZ2UtdGh1bWItZm9jdXMtYm94LXNoYWRvdzsgfVxuICAgICY6Oi1tb3otcmFuZ2UtdGh1bWIgICAgIHsgYm94LXNoYWRvdzogJGN1c3RvbS1yYW5nZS10aHVtYi1mb2N1cy1ib3gtc2hhZG93OyB9XG4gICAgJjo6LW1zLXRodW1iICAgICAgICAgICAgeyBib3gtc2hhZG93OiAkY3VzdG9tLXJhbmdlLXRodW1iLWZvY3VzLWJveC1zaGFkb3c7IH1cbiAgfVxuXG4gICY6Oi1tb3otZm9jdXMtb3V0ZXIge1xuICAgIGJvcmRlcjogMDtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICB3aWR0aDogJGN1c3RvbS1yYW5nZS10aHVtYi13aWR0aDtcbiAgICBoZWlnaHQ6ICRjdXN0b20tcmFuZ2UtdGh1bWItaGVpZ2h0O1xuICAgIG1hcmdpbi10b3A6ICgkY3VzdG9tLXJhbmdlLXRyYWNrLWhlaWdodCAtICRjdXN0b20tcmFuZ2UtdGh1bWItaGVpZ2h0KSAvIDI7IC8vIFdlYmtpdCBzcGVjaWZpY1xuICAgIEBpbmNsdWRlIGdyYWRpZW50LWJnKCRjdXN0b20tcmFuZ2UtdGh1bWItYmcpO1xuICAgIGJvcmRlcjogJGN1c3RvbS1yYW5nZS10aHVtYi1ib3JkZXI7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkY3VzdG9tLXJhbmdlLXRodW1iLWJvcmRlci1yYWRpdXMpO1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coJGN1c3RvbS1yYW5nZS10aHVtYi1ib3gtc2hhZG93KTtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKCRjdXN0b20tZm9ybXMtdHJhbnNpdGlvbik7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICY6YWN0aXZlIHtcbiAgICAgIEBpbmNsdWRlIGdyYWRpZW50LWJnKCRjdXN0b20tcmFuZ2UtdGh1bWItYWN0aXZlLWJnKTtcbiAgICB9XG4gIH1cblxuICAmOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XG4gICAgd2lkdGg6ICRjdXN0b20tcmFuZ2UtdHJhY2std2lkdGg7XG4gICAgaGVpZ2h0OiAkY3VzdG9tLXJhbmdlLXRyYWNrLWhlaWdodDtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7IC8vIFdoeT9cbiAgICBjdXJzb3I6ICRjdXN0b20tcmFuZ2UtdHJhY2stY3Vyc29yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tcmFuZ2UtdHJhY2stYmc7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRjdXN0b20tcmFuZ2UtdHJhY2stYm9yZGVyLXJhZGl1cyk7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygkY3VzdG9tLXJhbmdlLXRyYWNrLWJveC1zaGFkb3cpO1xuICB9XG5cbiAgJjo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgd2lkdGg6ICRjdXN0b20tcmFuZ2UtdGh1bWItd2lkdGg7XG4gICAgaGVpZ2h0OiAkY3VzdG9tLXJhbmdlLXRodW1iLWhlaWdodDtcbiAgICBAaW5jbHVkZSBncmFkaWVudC1iZygkY3VzdG9tLXJhbmdlLXRodW1iLWJnKTtcbiAgICBib3JkZXI6ICRjdXN0b20tcmFuZ2UtdGh1bWItYm9yZGVyO1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGN1c3RvbS1yYW5nZS10aHVtYi1ib3JkZXItcmFkaXVzKTtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KCRjdXN0b20tcmFuZ2UtdGh1bWItYm94LXNoYWRvdyk7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbigkY3VzdG9tLWZvcm1zLXRyYW5zaXRpb24pO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICBAaW5jbHVkZSBncmFkaWVudC1iZygkY3VzdG9tLXJhbmdlLXRodW1iLWFjdGl2ZS1iZyk7XG4gICAgfVxuICB9XG5cbiAgJjo6LW1vei1yYW5nZS10cmFjayB7XG4gICAgd2lkdGg6ICRjdXN0b20tcmFuZ2UtdHJhY2std2lkdGg7XG4gICAgaGVpZ2h0OiAkY3VzdG9tLXJhbmdlLXRyYWNrLWhlaWdodDtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY3Vyc29yOiAkY3VzdG9tLXJhbmdlLXRyYWNrLWN1cnNvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLXJhbmdlLXRyYWNrLWJnO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7IC8vIEZpcmVmb3ggc3BlY2lmaWM/XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkY3VzdG9tLXJhbmdlLXRyYWNrLWJvcmRlci1yYWRpdXMpO1xuICAgIEBpbmNsdWRlIGJveC1zaGFkb3coJGN1c3RvbS1yYW5nZS10cmFjay1ib3gtc2hhZG93KTtcbiAgfVxuXG4gICY6Oi1tcy10aHVtYiB7XG4gICAgd2lkdGg6ICRjdXN0b20tcmFuZ2UtdGh1bWItd2lkdGg7XG4gICAgaGVpZ2h0OiAkY3VzdG9tLXJhbmdlLXRodW1iLWhlaWdodDtcbiAgICBtYXJnaW4tdG9wOiAwOyAvLyBFZGdlIHNwZWNpZmljXG4gICAgbWFyZ2luLXJpZ2h0OiAkY3VzdG9tLXJhbmdlLXRodW1iLWZvY3VzLWJveC1zaGFkb3ctd2lkdGg7IC8vIFdvcmthcm91bmQgdGhhdCBvdmVyZmxvd2VkIGJveC1zaGFkb3cgaXMgaGlkZGVuLlxuICAgIG1hcmdpbi1sZWZ0OiAkY3VzdG9tLXJhbmdlLXRodW1iLWZvY3VzLWJveC1zaGFkb3ctd2lkdGg7ICAvLyBXb3JrYXJvdW5kIHRoYXQgb3ZlcmZsb3dlZCBib3gtc2hhZG93IGlzIGhpZGRlbi5cbiAgICBAaW5jbHVkZSBncmFkaWVudC1iZygkY3VzdG9tLXJhbmdlLXRodW1iLWJnKTtcbiAgICBib3JkZXI6ICRjdXN0b20tcmFuZ2UtdGh1bWItYm9yZGVyO1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGN1c3RvbS1yYW5nZS10aHVtYi1ib3JkZXItcmFkaXVzKTtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KCRjdXN0b20tcmFuZ2UtdGh1bWItYm94LXNoYWRvdyk7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbigkY3VzdG9tLWZvcm1zLXRyYW5zaXRpb24pO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICBAaW5jbHVkZSBncmFkaWVudC1iZygkY3VzdG9tLXJhbmdlLXRodW1iLWFjdGl2ZS1iZyk7XG4gICAgfVxuICB9XG5cbiAgJjo6LW1zLXRyYWNrIHtcbiAgICB3aWR0aDogJGN1c3RvbS1yYW5nZS10cmFjay13aWR0aDtcbiAgICBoZWlnaHQ6ICRjdXN0b20tcmFuZ2UtdHJhY2staGVpZ2h0O1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjdXJzb3I6ICRjdXN0b20tcmFuZ2UtdHJhY2stY3Vyc29yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkY3VzdG9tLXJhbmdlLXRodW1iLWhlaWdodCAvIDI7XG4gICAgQGluY2x1ZGUgYm94LXNoYWRvdygkY3VzdG9tLXJhbmdlLXRyYWNrLWJveC1zaGFkb3cpO1xuICB9XG5cbiAgJjo6LW1zLWZpbGwtbG93ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tcmFuZ2UtdHJhY2stYmc7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkY3VzdG9tLXJhbmdlLXRyYWNrLWJvcmRlci1yYWRpdXMpO1xuICB9XG5cbiAgJjo6LW1zLWZpbGwtdXBwZXIge1xuICAgIG1hcmdpbi1yaWdodDogMTVweDsgLy8gYXJiaXRyYXJ5P1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20tcmFuZ2UtdHJhY2stYmc7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkY3VzdG9tLXJhbmdlLXRyYWNrLWJvcmRlci1yYWRpdXMpO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgJjo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGN1c3RvbS1yYW5nZS10aHVtYi1kaXNhYmxlZC1iZztcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFjayB7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuXG4gICAgJjo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLXJhbmdlLXRodW1iLWRpc2FibGVkLWJnO1xuICAgIH1cblxuICAgICY6Oi1tb3otcmFuZ2UtdHJhY2sge1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cblxuICAgICY6Oi1tcy10aHVtYiB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLXJhbmdlLXRodW1iLWRpc2FibGVkLWJnO1xuICAgIH1cbiAgfVxufVxuXG4uY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSxcbi5jdXN0b20tZmlsZS1sYWJlbCxcbi5jdXN0b20tc2VsZWN0IHtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbigkY3VzdG9tLWZvcm1zLXRyYW5zaXRpb24pO1xufVxuIiwiLy8gQmFzZSBjbGFzc1xuLy9cbi8vIEtpY2tzdGFydCBhbnkgbmF2aWdhdGlvbiBjb21wb25lbnQgd2l0aCBhIHNldCBvZiBzdHlsZSByZXNldHMuIFdvcmtzIHdpdGhcbi8vIGA8bmF2PmBzIG9yIGA8dWw+YHMuXG5cbi5uYXYge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLm5hdi1saW5rIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6ICRuYXYtbGluay1wYWRkaW5nLXkgJG5hdi1saW5rLXBhZGRpbmcteDtcblxuICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gRGlzYWJsZWQgc3RhdGUgbGlnaHRlbnMgdGV4dFxuICAmLmRpc2FibGVkIHtcbiAgICBjb2xvcjogJG5hdi1saW5rLWRpc2FibGVkLWNvbG9yO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgfVxufVxuXG4vL1xuLy8gVGFic1xuLy9cblxuLm5hdi10YWJzIHtcbiAgYm9yZGVyLWJvdHRvbTogJG5hdi10YWJzLWJvcmRlci13aWR0aCBzb2xpZCAkbmF2LXRhYnMtYm9yZGVyLWNvbG9yO1xuXG4gIC5uYXYtaXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogLSRuYXYtdGFicy1ib3JkZXItd2lkdGg7XG4gIH1cblxuICAubmF2LWxpbmsge1xuICAgIGJvcmRlcjogJG5hdi10YWJzLWJvcmRlci13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cygkbmF2LXRhYnMtYm9yZGVyLXJhZGl1cyk7XG5cbiAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6ICRuYXYtdGFicy1saW5rLWhvdmVyLWJvcmRlci1jb2xvcjtcbiAgICB9XG5cbiAgICAmLmRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiAkbmF2LWxpbmstZGlzYWJsZWQtY29sb3I7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG5cbiAgLm5hdi1saW5rLmFjdGl2ZSxcbiAgLm5hdi1pdGVtLnNob3cgLm5hdi1saW5rIHtcbiAgICBjb2xvcjogJG5hdi10YWJzLWxpbmstYWN0aXZlLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXYtdGFicy1saW5rLWFjdGl2ZS1iZztcbiAgICBib3JkZXItY29sb3I6ICRuYXYtdGFicy1saW5rLWFjdGl2ZS1ib3JkZXItY29sb3I7XG4gIH1cblxuICAuZHJvcGRvd24tbWVudSB7XG4gICAgLy8gTWFrZSBkcm9wZG93biBib3JkZXIgb3ZlcmxhcCB0YWIgYm9yZGVyXG4gICAgbWFyZ2luLXRvcDogLSRuYXYtdGFicy1ib3JkZXItd2lkdGg7XG4gICAgLy8gUmVtb3ZlIHRoZSB0b3Agcm91bmRlZCBjb3JuZXJzIGhlcmUgc2luY2UgdGhlcmUgaXMgYSBoYXJkIGVkZ2UgYWJvdmUgdGhlIG1lbnVcbiAgICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cygwKTtcbiAgfVxufVxuXG5cbi8vXG4vLyBQaWxsc1xuLy9cblxuLm5hdi1waWxscyB7XG4gIC5uYXYtbGluayB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkbmF2LXBpbGxzLWJvcmRlci1yYWRpdXMpO1xuICB9XG5cbiAgLm5hdi1saW5rLmFjdGl2ZSxcbiAgLnNob3cgPiAubmF2LWxpbmsge1xuICAgIGNvbG9yOiAkbmF2LXBpbGxzLWxpbmstYWN0aXZlLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXYtcGlsbHMtbGluay1hY3RpdmUtYmc7XG4gIH1cbn1cblxuXG4vL1xuLy8gSnVzdGlmaWVkIHZhcmlhbnRzXG4vL1xuXG4ubmF2LWZpbGwge1xuICAubmF2LWl0ZW0ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG4ubmF2LWp1c3RpZmllZCB7XG4gIC5uYXYtaXRlbSB7XG4gICAgZmxleC1iYXNpczogMDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cblxuLy8gVGFiYmFibGUgdGFic1xuLy9cbi8vIEhpZGUgdGFiYmFibGUgcGFuZXMgdG8gc3RhcnQsIHNob3cgdGhlbSB3aGVuIGAuYWN0aXZlYFxuXG4udGFiLWNvbnRlbnQge1xuICA+IC50YWItcGFuZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICA+IC5hY3RpdmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4iLCIvLyBDb250ZW50c1xuLy9cbi8vIE5hdmJhclxuLy8gTmF2YmFyIGJyYW5kXG4vLyBOYXZiYXIgbmF2XG4vLyBOYXZiYXIgdGV4dFxuLy8gTmF2YmFyIGRpdmlkZXJcbi8vIFJlc3BvbnNpdmUgbmF2YmFyXG4vLyBOYXZiYXIgcG9zaXRpb25cbi8vIE5hdmJhciB0aGVtZXNcblxuXG4vLyBOYXZiYXJcbi8vXG4vLyBQcm92aWRlIGEgc3RhdGljIG5hdmJhciBmcm9tIHdoaWNoIHdlIGV4cGFuZCB0byBjcmVhdGUgZnVsbC13aWR0aCwgZml4ZWQsIGFuZFxuLy8gb3RoZXIgbmF2YmFyIHZhcmlhdGlvbnMuXG5cbi5uYXZiYXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDsgLy8gYWxsb3cgdXMgdG8gZG8gdGhlIGxpbmUgYnJlYWsgZm9yIGNvbGxhcHNpbmcgY29udGVudFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IC8vIHNwYWNlIG91dCBicmFuZCBmcm9tIGxvZ29cbiAgcGFkZGluZzogJG5hdmJhci1wYWRkaW5nLXkgJG5hdmJhci1wYWRkaW5nLXg7XG5cbiAgLy8gQmVjYXVzZSBmbGV4IHByb3BlcnRpZXMgYXJlbid0IGluaGVyaXRlZCwgd2UgbmVlZCB0byByZWRlY2xhcmUgdGhlc2UgZmlyc3RcbiAgLy8gZmV3IHByb3BlcnRpZXMgc28gdGhhdCBjb250ZW50IG5lc3RlZCB3aXRoaW4gYmVoYXZlIHByb3Blcmx5LlxuICA+IC5jb250YWluZXIsXG4gID4gLmNvbnRhaW5lci1mbHVpZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cbn1cblxuXG4vLyBOYXZiYXIgYnJhbmRcbi8vXG4vLyBVc2VkIGZvciBicmFuZCwgcHJvamVjdCwgb3Igc2l0ZSBuYW1lcy5cblxuLm5hdmJhci1icmFuZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy10b3A6ICRuYXZiYXItYnJhbmQtcGFkZGluZy15O1xuICBwYWRkaW5nLWJvdHRvbTogJG5hdmJhci1icmFuZC1wYWRkaW5nLXk7XG4gIG1hcmdpbi1yaWdodDogJG5hdmJhci1wYWRkaW5nLXg7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkbmF2YmFyLWJyYW5kLWZvbnQtc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbn1cblxuXG4vLyBOYXZiYXIgbmF2XG4vL1xuLy8gQ3VzdG9tIG5hdmJhciBuYXZpZ2F0aW9uIChkb2Vzbid0IHJlcXVpcmUgYC5uYXZgLCBidXQgZG9lcyBtYWtlIHVzZSBvZiBgLm5hdi1saW5rYCkuXG5cbi5uYXZiYXItbmF2IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgLy8gY2Fubm90IHVzZSBgaW5oZXJpdGAgdG8gZ2V0IHRoZSBgLm5hdmJhcmBzIHZhbHVlXG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAubmF2LWxpbmsge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG5cbiAgLmRyb3Bkb3duLW1lbnUge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cbn1cblxuXG4vLyBOYXZiYXIgdGV4dFxuLy9cbi8vXG5cbi5uYXZiYXItdGV4dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZy10b3A6ICRuYXYtbGluay1wYWRkaW5nLXk7XG4gIHBhZGRpbmctYm90dG9tOiAkbmF2LWxpbmstcGFkZGluZy15O1xufVxuXG5cbi8vIFJlc3BvbnNpdmUgbmF2YmFyXG4vL1xuLy8gQ3VzdG9tIHN0eWxlcyBmb3IgcmVzcG9uc2l2ZSBjb2xsYXBzaW5nIGFuZCB0b2dnbGluZyBvZiBuYXZiYXIgY29udGVudHMuXG4vLyBQb3dlcmVkIGJ5IHRoZSBjb2xsYXBzZSBCb290c3RyYXAgSmF2YVNjcmlwdCBwbHVnaW4uXG5cbi8vIFdoZW4gY29sbGFwc2VkLCBwcmV2ZW50IHRoZSB0b2dnbGVhYmxlIG5hdmJhciBjb250ZW50cyBmcm9tIGFwcGVhcmluZyBpblxuLy8gdGhlIGRlZmF1bHQgZmxleGJveCByb3cgb3JpZW50YXRpb24uIFJlcXVpcmVzIHRoZSB1c2Ugb2YgYGZsZXgtd3JhcDogd3JhcGBcbi8vIG9uIHRoZSBgLm5hdmJhcmAgcGFyZW50LlxuLm5hdmJhci1jb2xsYXBzZSB7XG4gIGZsZXgtYmFzaXM6IDEwMCU7XG4gIGZsZXgtZ3JvdzogMTtcbiAgLy8gRm9yIGFsd2F5cyBleHBhbmRlZCBvciBleHRyYSBmdWxsIG5hdmJhcnMsIGVuc3VyZSBjb250ZW50IGFsaWducyBpdHNlbGZcbiAgLy8gcHJvcGVybHkgdmVydGljYWxseS4gQ2FuIGJlIGVhc2lseSBvdmVycmlkZGVuIHdpdGggZmxleCB1dGlsaXRpZXMuXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi8vIEJ1dHRvbiBmb3IgdG9nZ2xpbmcgdGhlIG5hdmJhciB3aGVuIGluIGl0cyBjb2xsYXBzZWQgc3RhdGVcbi5uYXZiYXItdG9nZ2xlciB7XG4gIHBhZGRpbmc6ICRuYXZiYXItdG9nZ2xlci1wYWRkaW5nLXkgJG5hdmJhci10b2dnbGVyLXBhZGRpbmcteDtcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRuYXZiYXItdG9nZ2xlci1mb250LXNpemUpO1xuICBsaW5lLWhlaWdodDogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8vIHJlbW92ZSBkZWZhdWx0IGJ1dHRvbiBzdHlsZVxuICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7IC8vIHJlbW92ZSBkZWZhdWx0IGJ1dHRvbiBzdHlsZVxuICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRuYXZiYXItdG9nZ2xlci1ib3JkZXItcmFkaXVzKTtcblxuICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG59XG5cbi8vIEtlZXAgYXMgYSBzZXBhcmF0ZSBlbGVtZW50IHNvIGZvbGtzIGNhbiBlYXNpbHkgb3ZlcnJpZGUgaXQgd2l0aCBhbm90aGVyIGljb25cbi8vIG9yIGltYWdlIGZpbGUgYXMgbmVlZGVkLlxuLm5hdmJhci10b2dnbGVyLWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxLjVlbTtcbiAgaGVpZ2h0OiAxLjVlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgY29udGVudDogXCJcIjtcbiAgYmFja2dyb3VuZDogbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xufVxuXG4vLyBHZW5lcmF0ZSBzZXJpZXMgb2YgYC5uYXZiYXItZXhwYW5kLSpgIHJlc3BvbnNpdmUgY2xhc3NlcyBmb3IgY29uZmlndXJpbmdcbi8vIHdoZXJlIHlvdXIgbmF2YmFyIGNvbGxhcHNlcy5cbi5uYXZiYXItZXhwYW5kIHtcbiAgQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRicmVha3BvaW50LCAkZ3JpZC1icmVha3BvaW50cyk7XG4gICAgJGluZml4OiBicmVha3BvaW50LWluZml4KCRuZXh0LCAkZ3JpZC1icmVha3BvaW50cyk7XG5cbiAgICAmI3skaW5maXh9IHtcbiAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkYnJlYWtwb2ludCkge1xuICAgICAgICA+IC5jb250YWluZXIsXG4gICAgICAgID4gLmNvbnRhaW5lci1mbHVpZCB7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmV4dCkge1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyBub3dyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblxuICAgICAgICAubmF2YmFyLW5hdiB7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgICAgICAgIC5kcm9wZG93bi1tZW51IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAubmF2LWxpbmsge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJG5hdmJhci1uYXYtbGluay1wYWRkaW5nLXg7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRuYXZiYXItbmF2LWxpbmstcGFkZGluZy14O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZvciBuZXN0aW5nIGNvbnRhaW5lcnMsIGhhdmUgdG8gcmVkZWNsYXJlIGZvciBhbGlnbm1lbnQgcHVycG9zZXNcbiAgICAgICAgPiAuY29udGFpbmVyLFxuICAgICAgICA+IC5jb250YWluZXItZmx1aWQge1xuICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm5hdmJhci1jb2xsYXBzZSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OyAvLyBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuXG4gICAgICAgICAgLy8gQ2hhbmdlcyBmbGV4LWJhc2VzIHRvIGF1dG8gYmVjYXVzZSBvZiBhbiBJRTEwIGJ1Z1xuICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAubmF2YmFyLXRvZ2dsZXIge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG4vLyBOYXZiYXIgdGhlbWVzXG4vL1xuLy8gU3R5bGVzIGZvciBzd2l0Y2hpbmcgYmV0d2VlbiBuYXZiYXJzIHdpdGggbGlnaHQgb3IgZGFyayBiYWNrZ3JvdW5kLlxuXG4vLyBEYXJrIGxpbmtzIGFnYWluc3QgYSBsaWdodCBiYWNrZ3JvdW5kXG4ubmF2YmFyLWxpZ2h0IHtcbiAgLm5hdmJhci1icmFuZCB7XG4gICAgY29sb3I6ICRuYXZiYXItbGlnaHQtYnJhbmQtY29sb3I7XG5cbiAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICBjb2xvcjogJG5hdmJhci1saWdodC1icmFuZC1ob3Zlci1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubmF2YmFyLW5hdiB7XG4gICAgLm5hdi1saW5rIHtcbiAgICAgIGNvbG9yOiAkbmF2YmFyLWxpZ2h0LWNvbG9yO1xuXG4gICAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkbmF2YmFyLWxpZ2h0LWhvdmVyLWNvbG9yO1xuICAgICAgfVxuXG4gICAgICAmLmRpc2FibGVkIHtcbiAgICAgICAgY29sb3I6ICRuYXZiYXItbGlnaHQtZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNob3cgPiAubmF2LWxpbmssXG4gICAgLmFjdGl2ZSA+IC5uYXYtbGluayxcbiAgICAubmF2LWxpbmsuc2hvdyxcbiAgICAubmF2LWxpbmsuYWN0aXZlIHtcbiAgICAgIGNvbG9yOiAkbmF2YmFyLWxpZ2h0LWFjdGl2ZS1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubmF2YmFyLXRvZ2dsZXIge1xuICAgIGNvbG9yOiAkbmF2YmFyLWxpZ2h0LWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJG5hdmJhci1saWdodC10b2dnbGVyLWJvcmRlci1jb2xvcjtcbiAgfVxuXG4gIC5uYXZiYXItdG9nZ2xlci1pY29uIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAkbmF2YmFyLWxpZ2h0LXRvZ2dsZXItaWNvbi1iZztcbiAgfVxuXG4gIC5uYXZiYXItdGV4dCB7XG4gICAgY29sb3I6ICRuYXZiYXItbGlnaHQtY29sb3I7XG4gICAgYSB7XG4gICAgICBjb2xvcjogJG5hdmJhci1saWdodC1hY3RpdmUtY29sb3I7XG5cbiAgICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRuYXZiYXItbGlnaHQtYWN0aXZlLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBXaGl0ZSBsaW5rcyBhZ2FpbnN0IGEgZGFyayBiYWNrZ3JvdW5kXG4ubmF2YmFyLWRhcmsge1xuICAubmF2YmFyLWJyYW5kIHtcbiAgICBjb2xvcjogJG5hdmJhci1kYXJrLWJyYW5kLWNvbG9yO1xuXG4gICAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xuICAgICAgY29sb3I6ICRuYXZiYXItZGFyay1icmFuZC1ob3Zlci1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubmF2YmFyLW5hdiB7XG4gICAgLm5hdi1saW5rIHtcbiAgICAgIGNvbG9yOiAkbmF2YmFyLWRhcmstY29sb3I7XG5cbiAgICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRuYXZiYXItZGFyay1ob3Zlci1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgJi5kaXNhYmxlZCB7XG4gICAgICAgIGNvbG9yOiAkbmF2YmFyLWRhcmstZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNob3cgPiAubmF2LWxpbmssXG4gICAgLmFjdGl2ZSA+IC5uYXYtbGluayxcbiAgICAubmF2LWxpbmsuc2hvdyxcbiAgICAubmF2LWxpbmsuYWN0aXZlIHtcbiAgICAgIGNvbG9yOiAkbmF2YmFyLWRhcmstYWN0aXZlLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5uYXZiYXItdG9nZ2xlciB7XG4gICAgY29sb3I6ICRuYXZiYXItZGFyay1jb2xvcjtcbiAgICBib3JkZXItY29sb3I6ICRuYXZiYXItZGFyay10b2dnbGVyLWJvcmRlci1jb2xvcjtcbiAgfVxuXG4gIC5uYXZiYXItdG9nZ2xlci1pY29uIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAkbmF2YmFyLWRhcmstdG9nZ2xlci1pY29uLWJnO1xuICB9XG5cbiAgLm5hdmJhci10ZXh0IHtcbiAgICBjb2xvcjogJG5hdmJhci1kYXJrLWNvbG9yO1xuICAgIGEge1xuICAgICAgY29sb3I6ICRuYXZiYXItZGFyay1hY3RpdmUtY29sb3I7XG5cbiAgICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRuYXZiYXItZGFyay1hY3RpdmUtY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvL1xuLy8gQmFzZSBzdHlsZXNcbi8vXG5cbi5jYXJkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtaW4td2lkdGg6IDA7IC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvcHVsbC8yMjc0MCNpc3N1ZWNvbW1lbnQtMzA1ODY4MTA2XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNhcmQtYmc7XG4gIGJhY2tncm91bmQtY2xpcDogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiAkY2FyZC1ib3JkZXItd2lkdGggc29saWQgJGNhcmQtYm9yZGVyLWNvbG9yO1xuICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRjYXJkLWJvcmRlci1yYWRpdXMpO1xuXG4gID4gaHIge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gID4gLmxpc3QtZ3JvdXA6Zmlyc3QtY2hpbGQge1xuICAgIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGQge1xuICAgICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoJGNhcmQtYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuICB9XG5cbiAgPiAubGlzdC1ncm91cDpsYXN0LWNoaWxkIHtcbiAgICAubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1yYWRpdXMoJGNhcmQtYm9yZGVyLXJhZGl1cyk7XG4gICAgfVxuICB9XG59XG5cbi5jYXJkLWJvZHkge1xuICAvLyBFbmFibGUgYGZsZXgtZ3JvdzogMWAgZm9yIGRlY2tzIGFuZCBncm91cHMgc28gdGhhdCBjYXJkIGJsb2NrcyB0YWtlIHVwXG4gIC8vIGFzIG11Y2ggc3BhY2UgYXMgcG9zc2libGUsIGVuc3VyaW5nIGZvb3RlcnMgYXJlIGFsaWduZWQgdG8gdGhlIGJvdHRvbS5cbiAgZmxleDogMSAxIGF1dG87XG4gIHBhZGRpbmc6ICRjYXJkLXNwYWNlci14O1xuICBjb2xvcjogJGNhcmQtY29sb3I7XG59XG5cbi5jYXJkLXRpdGxlIHtcbiAgbWFyZ2luLWJvdHRvbTogJGNhcmQtc3BhY2VyLXk7XG59XG5cbi5jYXJkLXN1YnRpdGxlIHtcbiAgbWFyZ2luLXRvcDogLSRjYXJkLXNwYWNlci15IC8gMjtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmNhcmQtdGV4dDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmNhcmQtbGluayB7XG4gIEBpbmNsdWRlIGhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICArIC5jYXJkLWxpbmsge1xuICAgIG1hcmdpbi1sZWZ0OiAkY2FyZC1zcGFjZXIteDtcbiAgfVxufVxuXG4vL1xuLy8gT3B0aW9uYWwgdGV4dHVhbCBjYXBzXG4vL1xuXG4uY2FyZC1oZWFkZXIge1xuICBwYWRkaW5nOiAkY2FyZC1zcGFjZXIteSAkY2FyZC1zcGFjZXIteDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgLy8gUmVtb3ZlcyB0aGUgZGVmYXVsdCBtYXJnaW4tYm90dG9tIG9mIDxoTj5cbiAgY29sb3I6ICRjYXJkLWNhcC1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNhcmQtY2FwLWJnO1xuICBib3JkZXItYm90dG9tOiAkY2FyZC1ib3JkZXItd2lkdGggc29saWQgJGNhcmQtYm9yZGVyLWNvbG9yO1xuXG4gICY6Zmlyc3QtY2hpbGQge1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGNhcmQtaW5uZXItYm9yZGVyLXJhZGl1cyAkY2FyZC1pbm5lci1ib3JkZXItcmFkaXVzIDAgMCk7XG4gIH1cblxuICArIC5saXN0LWdyb3VwIHtcbiAgICAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgfVxuICB9XG59XG5cbi5jYXJkLWZvb3RlciB7XG4gIHBhZGRpbmc6ICRjYXJkLXNwYWNlci15ICRjYXJkLXNwYWNlci14O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FyZC1jYXAtYmc7XG4gIGJvcmRlci10b3A6ICRjYXJkLWJvcmRlci13aWR0aCBzb2xpZCAkY2FyZC1ib3JkZXItY29sb3I7XG5cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKDAgMCAkY2FyZC1pbm5lci1ib3JkZXItcmFkaXVzICRjYXJkLWlubmVyLWJvcmRlci1yYWRpdXMpO1xuICB9XG59XG5cblxuLy9cbi8vIEhlYWRlciBuYXZzXG4vL1xuXG4uY2FyZC1oZWFkZXItdGFicyB7XG4gIG1hcmdpbi1yaWdodDogLSRjYXJkLXNwYWNlci14IC8gMjtcbiAgbWFyZ2luLWJvdHRvbTogLSRjYXJkLXNwYWNlci15O1xuICBtYXJnaW4tbGVmdDogLSRjYXJkLXNwYWNlci14IC8gMjtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbn1cblxuLmNhcmQtaGVhZGVyLXBpbGxzIHtcbiAgbWFyZ2luLXJpZ2h0OiAtJGNhcmQtc3BhY2VyLXggLyAyO1xuICBtYXJnaW4tbGVmdDogLSRjYXJkLXNwYWNlci14IC8gMjtcbn1cblxuLy8gQ2FyZCBpbWFnZVxuLmNhcmQtaW1nLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcGFkZGluZzogJGNhcmQtaW1nLW92ZXJsYXktcGFkZGluZztcbn1cblxuLmNhcmQtaW1nIHtcbiAgd2lkdGg6IDEwMCU7IC8vIFJlcXVpcmVkIGJlY2F1c2Ugd2UgdXNlIGZsZXhib3ggYW5kIHRoaXMgaW5oZXJlbnRseSBhcHBsaWVzIGFsaWduLXNlbGY6IHN0cmV0Y2hcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkY2FyZC1pbm5lci1ib3JkZXItcmFkaXVzKTtcbn1cblxuLy8gQ2FyZCBpbWFnZSBjYXBzXG4uY2FyZC1pbWctdG9wIHtcbiAgd2lkdGg6IDEwMCU7IC8vIFJlcXVpcmVkIGJlY2F1c2Ugd2UgdXNlIGZsZXhib3ggYW5kIHRoaXMgaW5oZXJlbnRseSBhcHBsaWVzIGFsaWduLXNlbGY6IHN0cmV0Y2hcbiAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoJGNhcmQtaW5uZXItYm9yZGVyLXJhZGl1cyk7XG59XG5cbi5jYXJkLWltZy1ib3R0b20ge1xuICB3aWR0aDogMTAwJTsgLy8gUmVxdWlyZWQgYmVjYXVzZSB3ZSB1c2UgZmxleGJveCBhbmQgdGhpcyBpbmhlcmVudGx5IGFwcGxpZXMgYWxpZ24tc2VsZjogc3RyZXRjaFxuICBAaW5jbHVkZSBib3JkZXItYm90dG9tLXJhZGl1cygkY2FyZC1pbm5lci1ib3JkZXItcmFkaXVzKTtcbn1cblxuXG4vLyBDYXJkIGRlY2tcblxuLmNhcmQtZGVjayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgLmNhcmQge1xuICAgIG1hcmdpbi1ib3R0b206ICRjYXJkLWRlY2stbWFyZ2luO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChzbSkge1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgbWFyZ2luLXJpZ2h0OiAtJGNhcmQtZGVjay1tYXJnaW47XG4gICAgbWFyZ2luLWxlZnQ6IC0kY2FyZC1kZWNrLW1hcmdpbjtcblxuICAgIC5jYXJkIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAvLyBGbGV4YnVncyAjNDogaHR0cHM6Ly9naXRodWIuY29tL3BoaWxpcHdhbHRvbi9mbGV4YnVncyNmbGV4YnVnLTRcbiAgICAgIGZsZXg6IDEgMCAwJTtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBtYXJnaW4tcmlnaHQ6ICRjYXJkLWRlY2stbWFyZ2luO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgLy8gT3ZlcnJpZGUgdGhlIGRlZmF1bHRcbiAgICAgIG1hcmdpbi1sZWZ0OiAkY2FyZC1kZWNrLW1hcmdpbjtcbiAgICB9XG4gIH1cbn1cblxuXG4vL1xuLy8gQ2FyZCBncm91cHNcbi8vXG5cbi5jYXJkLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAvLyBUaGUgY2hpbGQgc2VsZWN0b3IgYWxsb3dzIG5lc3RlZCBgLmNhcmRgIHdpdGhpbiBgLmNhcmQtZ3JvdXBgXG4gIC8vIHRvIGRpc3BsYXkgcHJvcGVybHkuXG4gID4gLmNhcmQge1xuICAgIG1hcmdpbi1ib3R0b206ICRjYXJkLWdyb3VwLW1hcmdpbjtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoc20pIHtcbiAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xuICAgIC8vIFRoZSBjaGlsZCBzZWxlY3RvciBhbGxvd3MgbmVzdGVkIGAuY2FyZGAgd2l0aGluIGAuY2FyZC1ncm91cGBcbiAgICAvLyB0byBkaXNwbGF5IHByb3Blcmx5LlxuICAgID4gLmNhcmQge1xuICAgICAgLy8gRmxleGJ1Z3MgIzQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9waGlsaXB3YWx0b24vZmxleGJ1Z3MjZmxleGJ1Zy00XG4gICAgICBmbGV4OiAxIDAgMCU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICArIC5jYXJkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgfVxuXG4gICAgICAvLyBIYW5kbGUgcm91bmRlZCBjb3JuZXJzXG4gICAgICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICBAaW5jbHVkZSBib3JkZXItcmlnaHQtcmFkaXVzKDApO1xuXG4gICAgICAgICAgLmNhcmQtaW1nLXRvcCxcbiAgICAgICAgICAuY2FyZC1oZWFkZXIge1xuICAgICAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb3BlcnR5LWJsYWNrbGlzdFxuICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIC5jYXJkLWltZy1ib3R0b20sXG4gICAgICAgICAgLmNhcmQtZm9vdGVyIHtcbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9wZXJ0eS1ibGFja2xpc3RcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygwKTtcblxuICAgICAgICAgIC5jYXJkLWltZy10b3AsXG4gICAgICAgICAgLmNhcmQtaGVhZGVyIHtcbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9wZXJ0eS1ibGFja2xpc3RcbiAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIC5jYXJkLWltZy1ib3R0b20sXG4gICAgICAgICAgLmNhcmQtZm9vdGVyIHtcbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9wZXJ0eS1ibGFja2xpc3RcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLy9cbi8vIENvbHVtbnNcbi8vXG5cbi5jYXJkLWNvbHVtbnMge1xuICAuY2FyZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGNhcmQtY29sdW1ucy1tYXJnaW47XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHNtKSB7XG4gICAgY29sdW1uLWNvdW50OiAkY2FyZC1jb2x1bW5zLWNvdW50O1xuICAgIGNvbHVtbi1nYXA6ICRjYXJkLWNvbHVtbnMtZ2FwO1xuICAgIG9ycGhhbnM6IDE7XG4gICAgd2lkb3dzOiAxO1xuXG4gICAgLmNhcmQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvLyBEb24ndCBsZXQgdGhlbSB2ZXJ0aWNhbGx5IHNwYW4gbXVsdGlwbGUgY29sdW1uc1xuICAgICAgd2lkdGg6IDEwMCU7IC8vIERvbid0IGxldCB0aGVpciB3aWR0aCBjaGFuZ2VcbiAgICB9XG4gIH1cbn1cblxuXG4vL1xuLy8gQWNjb3JkaW9uXG4vL1xuXG4uYWNjb3JkaW9uIHtcbiAgPiAuY2FyZCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICY6bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gICAgICAuY2FyZC1oZWFkZXI6Zmlyc3QtY2hpbGQge1xuICAgICAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKDApO1xuICAgICAgfVxuXG4gICAgICAmOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICBAaW5jbHVkZSBib3JkZXItYm90dG9tLXJhZGl1cygwKTtcbiAgICB9XG5cbiAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cygwKTtcbiAgICB9XG5cbiAgICAuY2FyZC1oZWFkZXIge1xuICAgICAgbWFyZ2luLWJvdHRvbTogLSRjYXJkLWJvcmRlci13aWR0aDtcbiAgICB9XG4gIH1cbn1cbiIsIi5icmVhZGNydW1iIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBwYWRkaW5nOiAkYnJlYWRjcnVtYi1wYWRkaW5nLXkgJGJyZWFkY3J1bWItcGFkZGluZy14O1xuICBtYXJnaW4tYm90dG9tOiAkYnJlYWRjcnVtYi1tYXJnaW4tYm90dG9tO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJlYWRjcnVtYi1iZztcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkYnJlYWRjcnVtYi1ib3JkZXItcmFkaXVzKTtcbn1cblxuLmJyZWFkY3J1bWItaXRlbSB7XG4gIC8vIFRoZSBzZXBhcmF0b3IgYmV0d2VlbiBicmVhZGNydW1icyAoYnkgZGVmYXVsdCwgYSBmb3J3YXJkLXNsYXNoOiBcIi9cIilcbiAgKyAuYnJlYWRjcnVtYi1pdGVtIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRicmVhZGNydW1iLWl0ZW0tcGFkZGluZztcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8vIFN1cHByZXNzIHVuZGVybGluaW5nIG9mIHRoZSBzZXBhcmF0b3IgaW4gbW9kZXJuIGJyb3dzZXJzXG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkYnJlYWRjcnVtYi1pdGVtLXBhZGRpbmc7XG4gICAgICBjb2xvcjogJGJyZWFkY3J1bWItZGl2aWRlci1jb2xvcjtcbiAgICAgIGNvbnRlbnQ6ICRicmVhZGNydW1iLWRpdmlkZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gSUU5LTExIGhhY2sgdG8gcHJvcGVybHkgaGFuZGxlIGh5cGVybGluayB1bmRlcmxpbmVzIGZvciBicmVhZGNydW1icyBidWlsdFxuICAvLyB3aXRob3V0IGA8dWw+YHMuIFRoZSBgOjpiZWZvcmVgIHBzZXVkby1lbGVtZW50IGdlbmVyYXRlcyBhbiBlbGVtZW50XG4gIC8vICp3aXRoaW4qIHRoZSAuYnJlYWRjcnVtYi1pdGVtIGFuZCB0aGVyZWJ5IGluaGVyaXRzIHRoZSBgdGV4dC1kZWNvcmF0aW9uYC5cbiAgLy9cbiAgLy8gVG8gdHJpY2sgSUUgaW50byBzdXBwcmVzc2luZyB0aGUgdW5kZXJsaW5lLCB3ZSBnaXZlIHRoZSBwc2V1ZG8tZWxlbWVudCBhblxuICAvLyB1bmRlcmxpbmUgYW5kIHRoZW4gaW1tZWRpYXRlbHkgcmVtb3ZlIGl0LlxuICArIC5icmVhZGNydW1iLWl0ZW06aG92ZXI6OmJlZm9yZSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWR1cGxpY2F0ZS1zZWxlY3RvcnNcbiAgKyAuYnJlYWRjcnVtYi1pdGVtOmhvdmVyOjpiZWZvcmUge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gICYuYWN0aXZlIHtcbiAgICBjb2xvcjogJGJyZWFkY3J1bWItYWN0aXZlLWNvbG9yO1xuICB9XG59XG4iLCIucGFnaW5hdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIEBpbmNsdWRlIGxpc3QtdW5zdHlsZWQoKTtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygpO1xufVxuXG4ucGFnZS1saW5rIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogJHBhZ2luYXRpb24tcGFkZGluZy15ICRwYWdpbmF0aW9uLXBhZGRpbmcteDtcbiAgbWFyZ2luLWxlZnQ6IC0kcGFnaW5hdGlvbi1ib3JkZXItd2lkdGg7XG4gIGxpbmUtaGVpZ2h0OiAkcGFnaW5hdGlvbi1saW5lLWhlaWdodDtcbiAgY29sb3I6ICRwYWdpbmF0aW9uLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnaW5hdGlvbi1iZztcbiAgYm9yZGVyOiAkcGFnaW5hdGlvbi1ib3JkZXItd2lkdGggc29saWQgJHBhZ2luYXRpb24tYm9yZGVyLWNvbG9yO1xuXG4gICY6aG92ZXIge1xuICAgIHotaW5kZXg6IDI7XG4gICAgY29sb3I6ICRwYWdpbmF0aW9uLWhvdmVyLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnaW5hdGlvbi1ob3Zlci1iZztcbiAgICBib3JkZXItY29sb3I6ICRwYWdpbmF0aW9uLWhvdmVyLWJvcmRlci1jb2xvcjtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIHotaW5kZXg6IDI7XG4gICAgb3V0bGluZTogJHBhZ2luYXRpb24tZm9jdXMtb3V0bGluZTtcbiAgICBib3gtc2hhZG93OiAkcGFnaW5hdGlvbi1mb2N1cy1ib3gtc2hhZG93O1xuICB9XG59XG5cbi5wYWdlLWl0ZW0ge1xuICAmOmZpcnN0LWNoaWxkIHtcbiAgICAucGFnZS1saW5rIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKCRib3JkZXItcmFkaXVzKTtcbiAgICB9XG4gIH1cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICAucGFnZS1saW5rIHtcbiAgICAgIEBpbmNsdWRlIGJvcmRlci1yaWdodC1yYWRpdXMoJGJvcmRlci1yYWRpdXMpO1xuICAgIH1cbiAgfVxuXG4gICYuYWN0aXZlIC5wYWdlLWxpbmsge1xuICAgIHotaW5kZXg6IDE7XG4gICAgY29sb3I6ICRwYWdpbmF0aW9uLWFjdGl2ZS1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnaW5hdGlvbi1hY3RpdmUtYmc7XG4gICAgYm9yZGVyLWNvbG9yOiAkcGFnaW5hdGlvbi1hY3RpdmUtYm9yZGVyLWNvbG9yO1xuICB9XG5cbiAgJi5kaXNhYmxlZCAucGFnZS1saW5rIHtcbiAgICBjb2xvcjogJHBhZ2luYXRpb24tZGlzYWJsZWQtY29sb3I7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgLy8gT3BpbmlvbmF0ZWQ6IHJlbW92ZSB0aGUgXCJoYW5kXCIgY3Vyc29yIHNldCBwcmV2aW91c2x5IGZvciAucGFnZS1saW5rXG4gICAgY3Vyc29yOiBhdXRvO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwYWdpbmF0aW9uLWRpc2FibGVkLWJnO1xuICAgIGJvcmRlci1jb2xvcjogJHBhZ2luYXRpb24tZGlzYWJsZWQtYm9yZGVyLWNvbG9yO1xuICB9XG59XG5cblxuLy9cbi8vIFNpemluZ1xuLy9cblxuLnBhZ2luYXRpb24tbGcge1xuICBAaW5jbHVkZSBwYWdpbmF0aW9uLXNpemUoJHBhZ2luYXRpb24tcGFkZGluZy15LWxnLCAkcGFnaW5hdGlvbi1wYWRkaW5nLXgtbGcsICRmb250LXNpemUtbGcsICRsaW5lLWhlaWdodC1sZywgJGJvcmRlci1yYWRpdXMtbGcpO1xufVxuXG4ucGFnaW5hdGlvbi1zbSB7XG4gIEBpbmNsdWRlIHBhZ2luYXRpb24tc2l6ZSgkcGFnaW5hdGlvbi1wYWRkaW5nLXktc20sICRwYWdpbmF0aW9uLXBhZGRpbmcteC1zbSwgJGZvbnQtc2l6ZS1zbSwgJGxpbmUtaGVpZ2h0LXNtLCAkYm9yZGVyLXJhZGl1cy1zbSk7XG59XG4iLCIvLyBQYWdpbmF0aW9uXG5cbkBtaXhpbiBwYWdpbmF0aW9uLXNpemUoJHBhZGRpbmcteSwgJHBhZGRpbmcteCwgJGZvbnQtc2l6ZSwgJGxpbmUtaGVpZ2h0LCAkYm9yZGVyLXJhZGl1cykge1xuICAucGFnZS1saW5rIHtcbiAgICBwYWRkaW5nOiAkcGFkZGluZy15ICRwYWRkaW5nLXg7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKCRmb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG4gIH1cblxuICAucGFnZS1pdGVtIHtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIC5wYWdlLWxpbmsge1xuICAgICAgICBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoJGJvcmRlci1yYWRpdXMpO1xuICAgICAgfVxuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgLnBhZ2UtbGluayB7XG4gICAgICAgIEBpbmNsdWRlIGJvcmRlci1yaWdodC1yYWRpdXMoJGJvcmRlci1yYWRpdXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gQmFzZSBjbGFzc1xuLy9cbi8vIFJlcXVpcmVzIG9uZSBvZiB0aGUgY29udGV4dHVhbCwgY29sb3IgbW9kaWZpZXIgY2xhc3NlcyBmb3IgYGNvbG9yYCBhbmRcbi8vIGBiYWNrZ3JvdW5kLWNvbG9yYC5cblxuLmJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAkYmFkZ2UtcGFkZGluZy15ICRiYWRnZS1wYWRkaW5nLXg7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkYmFkZ2UtZm9udC1zaXplKTtcbiAgZm9udC13ZWlnaHQ6ICRiYWRnZS1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRiYWRnZS1ib3JkZXItcmFkaXVzKTtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbigkYmFkZ2UtdHJhbnNpdGlvbik7XG5cbiAgQGF0LXJvb3QgYSN7Jn0ge1xuICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBFbXB0eSBiYWRnZXMgY29sbGFwc2UgYXV0b21hdGljYWxseVxuICAmOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi8vIFF1aWNrIGZpeCBmb3IgYmFkZ2VzIGluIGJ1dHRvbnNcbi5idG4gLmJhZGdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0b3A6IC0xcHg7XG59XG5cbi8vIFBpbGwgYmFkZ2VzXG4vL1xuLy8gTWFrZSB0aGVtIGV4dHJhIHJvdW5kZWQgd2l0aCBhIG1vZGlmaWVyIHRvIHJlcGxhY2UgdjMncyBiYWRnZXMuXG5cbi5iYWRnZS1waWxsIHtcbiAgcGFkZGluZy1yaWdodDogJGJhZGdlLXBpbGwtcGFkZGluZy14O1xuICBwYWRkaW5nLWxlZnQ6ICRiYWRnZS1waWxsLXBhZGRpbmcteDtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkYmFkZ2UtcGlsbC1ib3JkZXItcmFkaXVzKTtcbn1cblxuLy8gQ29sb3JzXG4vL1xuLy8gQ29udGV4dHVhbCB2YXJpYXRpb25zIChsaW5rZWQgYmFkZ2VzIGdldCBkYXJrZXIgb24gOmhvdmVyKS5cblxuQGVhY2ggJGNvbG9yLCAkdmFsdWUgaW4gJHRoZW1lLWNvbG9ycyB7XG4gIC5iYWRnZS0jeyRjb2xvcn0ge1xuICAgIEBpbmNsdWRlIGJhZGdlLXZhcmlhbnQoJHZhbHVlKTtcbiAgfVxufVxuIiwiQG1peGluIGJhZGdlLXZhcmlhbnQoJGJnKSB7XG4gIGNvbG9yOiBjb2xvci15aXEoJGJnKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJnO1xuXG4gIEBhdC1yb290IGEjeyZ9IHtcbiAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICBjb2xvcjogY29sb3IteWlxKCRiZyk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGJnLCAxMCUpO1xuICAgIH1cblxuICAgICY6Zm9jdXMsXG4gICAgJi5mb2N1cyB7XG4gICAgICBvdXRsaW5lOiAwO1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgJGJhZGdlLWZvY3VzLXdpZHRoIHJnYmEoJGJnLCAuNSk7XG4gICAgfVxuICB9XG59XG4iLCIuanVtYm90cm9uIHtcbiAgcGFkZGluZzogJGp1bWJvdHJvbi1wYWRkaW5nICgkanVtYm90cm9uLXBhZGRpbmcgLyAyKTtcbiAgbWFyZ2luLWJvdHRvbTogJGp1bWJvdHJvbi1wYWRkaW5nO1xuICBjb2xvcjogJGp1bWJvdHJvbi1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGp1bWJvdHJvbi1iZztcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy1sZyk7XG5cbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChzbSkge1xuICAgIHBhZGRpbmc6ICgkanVtYm90cm9uLXBhZGRpbmcgKiAyKSAkanVtYm90cm9uLXBhZGRpbmc7XG4gIH1cbn1cblxuLmp1bWJvdHJvbi1mbHVpZCB7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygwKTtcbn1cbiIsIi8vXG4vLyBCYXNlIHN0eWxlc1xuLy9cblxuLmFsZXJ0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAkYWxlcnQtcGFkZGluZy15ICRhbGVydC1wYWRkaW5nLXg7XG4gIG1hcmdpbi1ib3R0b206ICRhbGVydC1tYXJnaW4tYm90dG9tO1xuICBib3JkZXI6ICRhbGVydC1ib3JkZXItd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGFsZXJ0LWJvcmRlci1yYWRpdXMpO1xufVxuXG4vLyBIZWFkaW5ncyBmb3IgbGFyZ2VyIGFsZXJ0c1xuLmFsZXJ0LWhlYWRpbmcge1xuICAvLyBTcGVjaWZpZWQgdG8gcHJldmVudCBjb25mbGljdHMgb2YgY2hhbmdpbmcgJGhlYWRpbmdzLWNvbG9yXG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG4vLyBQcm92aWRlIGNsYXNzIGZvciBsaW5rcyB0aGF0IG1hdGNoIGFsZXJ0c1xuLmFsZXJ0LWxpbmsge1xuICBmb250LXdlaWdodDogJGFsZXJ0LWxpbmstZm9udC13ZWlnaHQ7XG59XG5cblxuLy8gRGlzbWlzc2libGUgYWxlcnRzXG4vL1xuLy8gRXhwYW5kIHRoZSByaWdodCBwYWRkaW5nIGFuZCBhY2NvdW50IGZvciB0aGUgY2xvc2UgYnV0dG9uJ3MgcG9zaXRpb25pbmcuXG5cbi5hbGVydC1kaXNtaXNzaWJsZSB7XG4gIHBhZGRpbmctcmlnaHQ6ICRjbG9zZS1mb250LXNpemUgKyAkYWxlcnQtcGFkZGluZy14ICogMjtcblxuICAvLyBBZGp1c3QgY2xvc2UgbGluayBwb3NpdGlvblxuICAuY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgcGFkZGluZzogJGFsZXJ0LXBhZGRpbmcteSAkYWxlcnQtcGFkZGluZy14O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG59XG5cblxuLy8gQWx0ZXJuYXRlIHN0eWxlc1xuLy9cbi8vIEdlbmVyYXRlIGNvbnRleHR1YWwgbW9kaWZpZXIgY2xhc3NlcyBmb3IgY29sb3JpemluZyB0aGUgYWxlcnQuXG5cbkBlYWNoICRjb2xvciwgJHZhbHVlIGluICR0aGVtZS1jb2xvcnMge1xuICAuYWxlcnQtI3skY29sb3J9IHtcbiAgICBAaW5jbHVkZSBhbGVydC12YXJpYW50KHRoZW1lLWNvbG9yLWxldmVsKCRjb2xvciwgJGFsZXJ0LWJnLWxldmVsKSwgdGhlbWUtY29sb3ItbGV2ZWwoJGNvbG9yLCAkYWxlcnQtYm9yZGVyLWxldmVsKSwgdGhlbWUtY29sb3ItbGV2ZWwoJGNvbG9yLCAkYWxlcnQtY29sb3ItbGV2ZWwpKTtcbiAgfVxufVxuIiwiQG1peGluIGFsZXJ0LXZhcmlhbnQoJGJhY2tncm91bmQsICRib3JkZXIsICRjb2xvcikge1xuICBjb2xvcjogJGNvbG9yO1xuICBAaW5jbHVkZSBncmFkaWVudC1iZygkYmFja2dyb3VuZCk7XG4gIGJvcmRlci1jb2xvcjogJGJvcmRlcjtcblxuICBociB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogZGFya2VuKCRib3JkZXIsIDUlKTtcbiAgfVxuXG4gIC5hbGVydC1saW5rIHtcbiAgICBjb2xvcjogZGFya2VuKCRjb2xvciwgMTAlKTtcbiAgfVxufVxuIiwiLy8gRGlzYWJsZSBhbmltYXRpb24gaWYgdHJhbnNpdGlvbnMgYXJlIGRpc2FibGVkXG5AaWYgJGVuYWJsZS10cmFuc2l0aW9ucyB7XG4gIEBrZXlmcmFtZXMgcHJvZ3Jlc3MtYmFyLXN0cmlwZXMge1xuICAgIGZyb20geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkcHJvZ3Jlc3MtaGVpZ2h0IDA7IH1cbiAgICB0byB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgMDsgfVxuICB9XG59XG5cbi5wcm9ncmVzcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogJHByb2dyZXNzLWhlaWdodDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgLy8gZm9yY2Ugcm91bmRlZCBjb3JuZXJzIGJ5IGNyb3BwaW5nIGl0XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkcHJvZ3Jlc3MtZm9udC1zaXplKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLWJnO1xuICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRwcm9ncmVzcy1ib3JkZXItcmFkaXVzKTtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdygkcHJvZ3Jlc3MtYm94LXNoYWRvdyk7XG59XG5cbi5wcm9ncmVzcy1iYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY29sb3I6ICRwcm9ncmVzcy1iYXItY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByb2dyZXNzLWJhci1iZztcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbigkcHJvZ3Jlc3MtYmFyLXRyYW5zaXRpb24pO1xufVxuXG4ucHJvZ3Jlc3MtYmFyLXN0cmlwZWQge1xuICBAaW5jbHVkZSBncmFkaWVudC1zdHJpcGVkKCk7XG4gIGJhY2tncm91bmQtc2l6ZTogJHByb2dyZXNzLWhlaWdodCAkcHJvZ3Jlc3MtaGVpZ2h0O1xufVxuXG5AaWYgJGVuYWJsZS10cmFuc2l0aW9ucyB7XG4gIC5wcm9ncmVzcy1iYXItYW5pbWF0ZWQge1xuICAgIGFuaW1hdGlvbjogcHJvZ3Jlc3MtYmFyLXN0cmlwZXMgJHByb2dyZXNzLWJhci1hbmltYXRpb24tdGltaW5nO1xuXG4gICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi5tZWRpYSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxuXG4ubWVkaWEtYm9keSB7XG4gIGZsZXg6IDE7XG59XG4iLCIvLyBCYXNlIGNsYXNzXG4vL1xuLy8gRWFzaWx5IHVzYWJsZSBvbiA8dWw+LCA8b2w+LCBvciA8ZGl2Pi5cblxuLmxpc3QtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gIC8vIE5vIG5lZWQgdG8gc2V0IGxpc3Qtc3R5bGU6IG5vbmU7IHNpbmNlIC5saXN0LWdyb3VwLWl0ZW0gaXMgYmxvY2sgbGV2ZWxcbiAgcGFkZGluZy1sZWZ0OiAwOyAvLyByZXNldCBwYWRkaW5nIGJlY2F1c2UgdWwgYW5kIG9sXG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cblxuLy8gSW50ZXJhY3RpdmUgbGlzdCBpdGVtc1xuLy9cbi8vIFVzZSBhbmNob3Igb3IgYnV0dG9uIGVsZW1lbnRzIGluc3RlYWQgb2YgYGxpYHMgb3IgYGRpdmBzIHRvIGNyZWF0ZSBpbnRlcmFjdGl2ZVxuLy8gbGlzdCBpdGVtcy4gSW5jbHVkZXMgYW4gZXh0cmEgYC5hY3RpdmVgIG1vZGlmaWVyIGNsYXNzIGZvciBzZWxlY3RlZCBpdGVtcy5cblxuLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb24ge1xuICB3aWR0aDogMTAwJTsgLy8gRm9yIGA8YnV0dG9uPmBzIChhbmNob3JzIGJlY29tZSAxMDAlIGJ5IGRlZmF1bHQgdGhvdWdoKVxuICBjb2xvcjogJGxpc3QtZ3JvdXAtYWN0aW9uLWNvbG9yO1xuICB0ZXh0LWFsaWduOiBpbmhlcml0OyAvLyBGb3IgYDxidXR0b24+YHMgKGFuY2hvcnMgaW5oZXJpdClcblxuICAvLyBIb3ZlciBzdGF0ZVxuICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgei1pbmRleDogMTsgLy8gUGxhY2UgaG92ZXIvZm9jdXMgaXRlbXMgYWJvdmUgdGhlaXIgc2libGluZ3MgZm9yIHByb3BlciBib3JkZXIgc3R5bGluZ1xuICAgIGNvbG9yOiAkbGlzdC1ncm91cC1hY3Rpb24taG92ZXItY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRsaXN0LWdyb3VwLWhvdmVyLWJnO1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIGNvbG9yOiAkbGlzdC1ncm91cC1hY3Rpb24tYWN0aXZlLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRsaXN0LWdyb3VwLWFjdGlvbi1hY3RpdmUtYmc7XG4gIH1cbn1cblxuXG4vLyBJbmRpdmlkdWFsIGxpc3QgaXRlbXNcbi8vXG4vLyBVc2Ugb24gYGxpYHMgb3IgYGRpdmBzIHdpdGhpbiB0aGUgYC5saXN0LWdyb3VwYCBwYXJlbnQuXG5cbi5saXN0LWdyb3VwLWl0ZW0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAkbGlzdC1ncm91cC1pdGVtLXBhZGRpbmcteSAkbGlzdC1ncm91cC1pdGVtLXBhZGRpbmcteDtcbiAgLy8gUGxhY2UgdGhlIGJvcmRlciBvbiB0aGUgbGlzdCBpdGVtcyBhbmQgbmVnYXRpdmUgbWFyZ2luIHVwIGZvciBiZXR0ZXIgc3R5bGluZ1xuICBtYXJnaW4tYm90dG9tOiAtJGxpc3QtZ3JvdXAtYm9yZGVyLXdpZHRoO1xuICBjb2xvcjogJGxpc3QtZ3JvdXAtY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6ICRsaXN0LWdyb3VwLWJnO1xuICBib3JkZXI6ICRsaXN0LWdyb3VwLWJvcmRlci13aWR0aCBzb2xpZCAkbGlzdC1ncm91cC1ib3JkZXItY29sb3I7XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoJGxpc3QtZ3JvdXAtYm9yZGVyLXJhZGl1cyk7XG4gIH1cblxuICAmOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1yYWRpdXMoJGxpc3QtZ3JvdXAtYm9yZGVyLXJhZGl1cyk7XG4gIH1cblxuICAmLmRpc2FibGVkLFxuICAmOmRpc2FibGVkIHtcbiAgICBjb2xvcjogJGxpc3QtZ3JvdXAtZGlzYWJsZWQtY29sb3I7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGxpc3QtZ3JvdXAtZGlzYWJsZWQtYmc7XG4gIH1cblxuICAvLyBJbmNsdWRlIGJvdGggaGVyZSBmb3IgYDxhPmBzIGFuZCBgPGJ1dHRvbj5gc1xuICAmLmFjdGl2ZSB7XG4gICAgei1pbmRleDogMjsgLy8gUGxhY2UgYWN0aXZlIGl0ZW1zIGFib3ZlIHRoZWlyIHNpYmxpbmdzIGZvciBwcm9wZXIgYm9yZGVyIHN0eWxpbmdcbiAgICBjb2xvcjogJGxpc3QtZ3JvdXAtYWN0aXZlLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRsaXN0LWdyb3VwLWFjdGl2ZS1iZztcbiAgICBib3JkZXItY29sb3I6ICRsaXN0LWdyb3VwLWFjdGl2ZS1ib3JkZXItY29sb3I7XG4gIH1cbn1cblxuXG4vLyBIb3Jpem9udGFsXG4vL1xuLy8gQ2hhbmdlIHRoZSBsYXlvdXQgb2YgbGlzdCBncm91cCBpdGVtcyBmcm9tIHZlcnRpY2FsIChkZWZhdWx0KSB0byBob3Jpem9udGFsLlxuXG5AZWFjaCAkYnJlYWtwb2ludCBpbiBtYXAta2V5cygkZ3JpZC1icmVha3BvaW50cykge1xuICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicmVha3BvaW50KSB7XG4gICAgJGluZml4OiBicmVha3BvaW50LWluZml4KCRicmVha3BvaW50LCAkZ3JpZC1icmVha3BvaW50cyk7XG5cbiAgICAubGlzdC1ncm91cC1ob3Jpem9udGFsI3skaW5maXh9IHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAgIC5saXN0LWdyb3VwLWl0ZW0ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0kbGlzdC1ncm91cC1ib3JkZXItd2lkdGg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKCRsaXN0LWdyb3VwLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzKDApO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJpZ2h0LXJhZGl1cygkbGlzdC1ncm91cC1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICBAaW5jbHVkZSBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzKDApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLy8gRmx1c2ggbGlzdCBpdGVtc1xuLy9cbi8vIFJlbW92ZSBib3JkZXJzIGFuZCBib3JkZXItcmFkaXVzIHRvIGtlZXAgbGlzdCBncm91cCBpdGVtcyBlZGdlLXRvLWVkZ2UuIE1vc3Rcbi8vIHVzZWZ1bCB3aXRoaW4gb3RoZXIgY29tcG9uZW50cyAoZS5nLiwgY2FyZHMpLlxuXG4ubGlzdC1ncm91cC1mbHVzaCB7XG4gIC5saXN0LWdyb3VwLWl0ZW0ge1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKDApO1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IC0kbGlzdC1ncm91cC1ib3JkZXItd2lkdGg7XG4gICAgfVxuICB9XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIENvbnRleHR1YWwgdmFyaWFudHNcbi8vXG4vLyBBZGQgbW9kaWZpZXIgY2xhc3NlcyB0byBjaGFuZ2UgdGV4dCBhbmQgYmFja2dyb3VuZCBjb2xvciBvbiBpbmRpdmlkdWFsIGl0ZW1zLlxuLy8gT3JnYW5pemF0aW9uYWxseSwgdGhpcyBtdXN0IGNvbWUgYWZ0ZXIgdGhlIGA6aG92ZXJgIHN0YXRlcy5cblxuQGVhY2ggJGNvbG9yLCAkdmFsdWUgaW4gJHRoZW1lLWNvbG9ycyB7XG4gIEBpbmNsdWRlIGxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KCRjb2xvciwgdGhlbWUtY29sb3ItbGV2ZWwoJGNvbG9yLCAtOSksIHRoZW1lLWNvbG9yLWxldmVsKCRjb2xvciwgNikpO1xufVxuIiwiLy8gTGlzdCBHcm91cHNcblxuQG1peGluIGxpc3QtZ3JvdXAtaXRlbS12YXJpYW50KCRzdGF0ZSwgJGJhY2tncm91bmQsICRjb2xvcikge1xuICAubGlzdC1ncm91cC1pdGVtLSN7JHN0YXRlfSB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICAgICYubGlzdC1ncm91cC1pdGVtLWFjdGlvbiB7XG4gICAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkYmFja2dyb3VuZCwgNSUpO1xuICAgICAgfVxuXG4gICAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuY2xvc2Uge1xuICBmbG9hdDogcmlnaHQ7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkY2xvc2UtZm9udC1zaXplKTtcbiAgZm9udC13ZWlnaHQ6ICRjbG9zZS1mb250LXdlaWdodDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGNvbG9yOiAkY2xvc2UtY29sb3I7XG4gIHRleHQtc2hhZG93OiAkY2xvc2UtdGV4dC1zaGFkb3c7XG4gIG9wYWNpdHk6IC41O1xuXG4gIC8vIE92ZXJyaWRlIDxhPidzIGhvdmVyIHN0eWxlXG4gIEBpbmNsdWRlIGhvdmVyIHtcbiAgICBjb2xvcjogJGNsb3NlLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gICY6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkge1xuICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgIG9wYWNpdHk6IC43NTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQWRkaXRpb25hbCBwcm9wZXJ0aWVzIGZvciBidXR0b24gdmVyc2lvblxuLy8gaU9TIHJlcXVpcmVzIHRoZSBidXR0b24gZWxlbWVudCBpbnN0ZWFkIG9mIGFuIGFuY2hvciB0YWcuXG4vLyBJZiB5b3Ugd2FudCB0aGUgYW5jaG9yIHZlcnNpb24sIGl0IHJlcXVpcmVzIGBocmVmPVwiI1wiYC5cbi8vIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9FdmVudHMvY2xpY2sjU2FmYXJpX01vYmlsZVxuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlXG5idXR0b24uY2xvc2Uge1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG4vLyBGdXR1cmUtcHJvb2YgZGlzYWJsaW5nIG9mIGNsaWNrcyBvbiBgPGE+YCBlbGVtZW50c1xuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlXG5hLmNsb3NlLmRpc2FibGVkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4iLCIudG9hc3Qge1xuICBtYXgtd2lkdGg6ICR0b2FzdC1tYXgtd2lkdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47IC8vIGNoZWFwIHJvdW5kZWQgY29ybmVycyBvbiBuZXN0ZWQgaXRlbXNcbiAgQGluY2x1ZGUgZm9udC1zaXplKCR0b2FzdC1mb250LXNpemUpO1xuICBjb2xvcjogJHRvYXN0LWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9hc3QtYmFja2dyb3VuZC1jb2xvcjtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgYm9yZGVyOiAkdG9hc3QtYm9yZGVyLXdpZHRoIHNvbGlkICR0b2FzdC1ib3JkZXItY29sb3I7XG4gIGJveC1zaGFkb3c6ICR0b2FzdC1ib3gtc2hhZG93O1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIG9wYWNpdHk6IDA7XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJHRvYXN0LWJvcmRlci1yYWRpdXMpO1xuXG4gICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHRvYXN0LXBhZGRpbmcteDtcbiAgfVxuXG4gICYuc2hvd2luZyB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gICYuc2hvdyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gICYuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4udG9hc3QtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogJHRvYXN0LXBhZGRpbmcteSAkdG9hc3QtcGFkZGluZy14O1xuICBjb2xvcjogJHRvYXN0LWhlYWRlci1jb2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHRvYXN0LWhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBib3JkZXItYm90dG9tOiAkdG9hc3QtYm9yZGVyLXdpZHRoIHNvbGlkICR0b2FzdC1oZWFkZXItYm9yZGVyLWNvbG9yO1xufVxuXG4udG9hc3QtYm9keSB7XG4gIHBhZGRpbmc6ICR0b2FzdC1wYWRkaW5nLXg7IC8vIGFwcGx5IHRvIGJvdGggdmVydGljYWwgYW5kIGhvcml6b250YWxcbn1cbiIsIi8vIC5tb2RhbC1vcGVuICAgICAgLSBib2R5IGNsYXNzIGZvciBraWxsaW5nIHRoZSBzY3JvbGxcbi8vIC5tb2RhbCAgICAgICAgICAgLSBjb250YWluZXIgdG8gc2Nyb2xsIHdpdGhpblxuLy8gLm1vZGFsLWRpYWxvZyAgICAtIHBvc2l0aW9uaW5nIHNoZWxsIGZvciB0aGUgYWN0dWFsIG1vZGFsXG4vLyAubW9kYWwtY29udGVudCAgIC0gYWN0dWFsIG1vZGFsIHcvIGJnIGFuZCBjb3JuZXJzIGFuZCBzdHVmZlxuXG5cbi5tb2RhbC1vcGVuIHtcbiAgLy8gS2lsbCB0aGUgc2Nyb2xsIG9uIHRoZSBib2R5XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgLm1vZGFsIHtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgfVxufVxuXG4vLyBDb250YWluZXIgdGhhdCB0aGUgbW9kYWwgc2Nyb2xscyB3aXRoaW5cbi5tb2RhbCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAkemluZGV4LW1vZGFsO1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAvLyBQcmV2ZW50IENocm9tZSBvbiBXaW5kb3dzIGZyb20gYWRkaW5nIGEgZm9jdXMgb3V0bGluZS4gRm9yIGRldGFpbHMsIHNlZVxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvcHVsbC8xMDk1MS5cbiAgb3V0bGluZTogMDtcbiAgLy8gV2UgZGVsaWJlcmF0ZWx5IGRvbid0IHVzZSBgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO2AgZHVlIHRvIGFcbiAgLy8gZ25hcmx5IGlPUyBTYWZhcmkgYnVnOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4MzQyXG4gIC8vIFNlZSBhbHNvIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9pc3N1ZXMvMTc2OTVcbn1cblxuLy8gU2hlbGwgZGl2IHRvIHBvc2l0aW9uIHRoZSBtb2RhbCB3aXRoIGJvdHRvbSBwYWRkaW5nXG4ubW9kYWwtZGlhbG9nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogYXV0bztcbiAgbWFyZ2luOiAkbW9kYWwtZGlhbG9nLW1hcmdpbjtcbiAgLy8gYWxsb3cgY2xpY2tzIHRvIHBhc3MgdGhyb3VnaCBmb3IgY3VzdG9tIGNsaWNrIGhhbmRsaW5nIHRvIGNsb3NlIG1vZGFsXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gIC8vIFdoZW4gZmFkaW5nIGluIHRoZSBtb2RhbCwgYW5pbWF0ZSBpdCB0byBzbGlkZSBkb3duXG4gIC5tb2RhbC5mYWRlICYge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oJG1vZGFsLXRyYW5zaXRpb24pO1xuICAgIHRyYW5zZm9ybTogJG1vZGFsLWZhZGUtdHJhbnNmb3JtO1xuICB9XG4gIC5tb2RhbC5zaG93ICYge1xuICAgIHRyYW5zZm9ybTogJG1vZGFsLXNob3ctdHJhbnNmb3JtO1xuICB9XG59XG5cbi5tb2RhbC1kaWFsb2ctc2Nyb2xsYWJsZSB7XG4gIGRpc3BsYXk6IGZsZXg7IC8vIElFMTAvMTFcbiAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gI3skbW9kYWwtZGlhbG9nLW1hcmdpbiAqIDJ9KTtcblxuICAubW9kYWwtY29udGVudCB7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtICN7JG1vZGFsLWRpYWxvZy1tYXJnaW4gKiAyfSk7IC8vIElFMTAvMTFcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLm1vZGFsLWhlYWRlcixcbiAgLm1vZGFsLWZvb3RlciB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gIH1cblxuICAubW9kYWwtYm9keSB7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgfVxufVxuXG4ubW9kYWwtZGlhbG9nLWNlbnRlcmVkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWluLWhlaWdodDogY2FsYygxMDAlIC0gI3skbW9kYWwtZGlhbG9nLW1hcmdpbiAqIDJ9KTtcblxuICAvLyBFbnN1cmUgYG1vZGFsLWRpYWxvZy1jZW50ZXJlZGAgZXh0ZW5kcyB0aGUgZnVsbCBoZWlnaHQgb2YgdGhlIHZpZXcgKElFMTAvMTEpXG4gICY6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogYmxvY2s7IC8vIElFMTBcbiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAjeyRtb2RhbC1kaWFsb2ctbWFyZ2luICogMn0pO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cblxuICAvLyBFbnN1cmUgYC5tb2RhbC1ib2R5YCBzaG93cyBzY3JvbGxiYXIgKElFMTAvMTEpXG4gICYubW9kYWwtZGlhbG9nLXNjcm9sbGFibGUge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgLm1vZGFsLWNvbnRlbnQge1xuICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gQWN0dWFsIG1vZGFsXG4ubW9kYWwtY29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6IDEwMCU7IC8vIEVuc3VyZSBgLm1vZGFsLWNvbnRlbnRgIGV4dGVuZHMgdGhlIGZ1bGwgd2lkdGggb2YgdGhlIHBhcmVudCBgLm1vZGFsLWRpYWxvZ2BcbiAgLy8gY291bnRlcmFjdCB0aGUgcG9pbnRlci1ldmVudHM6IG5vbmU7IGluIHRoZSAubW9kYWwtZGlhbG9nXG4gIGNvbG9yOiAkbW9kYWwtY29udGVudC1jb2xvcjtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIGJhY2tncm91bmQtY29sb3I6ICRtb2RhbC1jb250ZW50LWJnO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBib3JkZXI6ICRtb2RhbC1jb250ZW50LWJvcmRlci13aWR0aCBzb2xpZCAkbW9kYWwtY29udGVudC1ib3JkZXItY29sb3I7XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJG1vZGFsLWNvbnRlbnQtYm9yZGVyLXJhZGl1cyk7XG4gIEBpbmNsdWRlIGJveC1zaGFkb3coJG1vZGFsLWNvbnRlbnQtYm94LXNoYWRvdy14cyk7XG4gIC8vIFJlbW92ZSBmb2N1cyBvdXRsaW5lIGZyb20gb3BlbmVkIG1vZGFsXG4gIG91dGxpbmU6IDA7XG59XG5cbi8vIE1vZGFsIGJhY2tncm91bmRcbi5tb2RhbC1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAkemluZGV4LW1vZGFsLWJhY2tkcm9wO1xuICB3aWR0aDogMTAwdnc7XG4gIGhlaWdodDogMTAwdmg7XG4gIGJhY2tncm91bmQtY29sb3I6ICRtb2RhbC1iYWNrZHJvcC1iZztcblxuICAvLyBGYWRlIGZvciBiYWNrZHJvcFxuICAmLmZhZGUgeyBvcGFjaXR5OiAwOyB9XG4gICYuc2hvdyB7IG9wYWNpdHk6ICRtb2RhbC1iYWNrZHJvcC1vcGFjaXR5OyB9XG59XG5cbi8vIE1vZGFsIGhlYWRlclxuLy8gVG9wIHNlY3Rpb24gb2YgdGhlIG1vZGFsIHcvIHRpdGxlIGFuZCBkaXNtaXNzXG4ubW9kYWwtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IC8vIHNvIHRoZSBjbG9zZSBidG4gYWx3YXlzIHN0YXlzIG9uIHRoZSB1cHBlciByaWdodCBjb3JuZXJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyAvLyBQdXQgbW9kYWwgaGVhZGVyIGVsZW1lbnRzICh0aXRsZSBhbmQgZGlzbWlzcykgb24gb3Bwb3NpdGUgZW5kc1xuICBwYWRkaW5nOiAkbW9kYWwtaGVhZGVyLXBhZGRpbmc7XG4gIGJvcmRlci1ib3R0b206ICRtb2RhbC1oZWFkZXItYm9yZGVyLXdpZHRoIHNvbGlkICRtb2RhbC1oZWFkZXItYm9yZGVyLWNvbG9yO1xuICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cygkbW9kYWwtY29udGVudC1ib3JkZXItcmFkaXVzKTtcblxuICAuY2xvc2Uge1xuICAgIHBhZGRpbmc6ICRtb2RhbC1oZWFkZXItcGFkZGluZztcbiAgICAvLyBhdXRvIG9uIHRoZSBsZWZ0IGZvcmNlIGljb24gdG8gdGhlIHJpZ2h0IGV2ZW4gd2hlbiB0aGVyZSBpcyBubyAubW9kYWwtdGl0bGVcbiAgICBtYXJnaW46ICgtJG1vZGFsLWhlYWRlci1wYWRkaW5nLXkpICgtJG1vZGFsLWhlYWRlci1wYWRkaW5nLXgpICgtJG1vZGFsLWhlYWRlci1wYWRkaW5nLXkpIGF1dG87XG4gIH1cbn1cblxuLy8gVGl0bGUgdGV4dCB3aXRoaW4gaGVhZGVyXG4ubW9kYWwtdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBsaW5lLWhlaWdodDogJG1vZGFsLXRpdGxlLWxpbmUtaGVpZ2h0O1xufVxuXG4vLyBNb2RhbCBib2R5XG4vLyBXaGVyZSBhbGwgbW9kYWwgY29udGVudCByZXNpZGVzIChzaWJsaW5nIG9mIC5tb2RhbC1oZWFkZXIgYW5kIC5tb2RhbC1mb290ZXIpXG4ubW9kYWwtYm9keSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLy8gRW5hYmxlIGBmbGV4LWdyb3c6IDFgIHNvIHRoYXQgdGhlIGJvZHkgdGFrZSB1cCBhcyBtdWNoIHNwYWNlIGFzIHBvc3NpYmxlXG4gIC8vIHdoZW4gc2hvdWxkIHRoZXJlIGJlIGEgZml4ZWQgaGVpZ2h0IG9uIGAubW9kYWwtZGlhbG9nYC5cbiAgZmxleDogMSAxIGF1dG87XG4gIHBhZGRpbmc6ICRtb2RhbC1pbm5lci1wYWRkaW5nO1xufVxuXG4vLyBGb290ZXIgKGZvciBhY3Rpb25zKVxuLm1vZGFsLWZvb3RlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8vIHZlcnRpY2FsbHkgY2VudGVyXG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IC8vIFJpZ2h0IGFsaWduIGJ1dHRvbnMgd2l0aCBmbGV4IHByb3BlcnR5IGJlY2F1c2UgdGV4dC1hbGlnbiBkb2Vzbid0IHdvcmsgb24gZmxleCBpdGVtc1xuICBwYWRkaW5nOiAkbW9kYWwtaW5uZXItcGFkZGluZztcbiAgYm9yZGVyLXRvcDogJG1vZGFsLWZvb3Rlci1ib3JkZXItd2lkdGggc29saWQgJG1vZGFsLWZvb3Rlci1ib3JkZXItY29sb3I7XG4gIEBpbmNsdWRlIGJvcmRlci1ib3R0b20tcmFkaXVzKCRtb2RhbC1jb250ZW50LWJvcmRlci1yYWRpdXMpO1xuXG4gIC8vIEVhc2lseSBwbGFjZSBtYXJnaW4gYmV0d2VlbiBmb290ZXIgZWxlbWVudHNcbiAgPiA6bm90KDpmaXJzdC1jaGlsZCkgeyBtYXJnaW4tbGVmdDogLjI1cmVtOyB9XG4gID4gOm5vdCg6bGFzdC1jaGlsZCkgeyBtYXJnaW4tcmlnaHQ6IC4yNXJlbTsgfVxufVxuXG4vLyBNZWFzdXJlIHNjcm9sbGJhciB3aWR0aCBmb3IgcGFkZGluZyBib2R5IGR1cmluZyBtb2RhbCBzaG93L2hpZGVcbi5tb2RhbC1zY3JvbGxiYXItbWVhc3VyZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtOTk5OXB4O1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBvdmVyZmxvdzogc2Nyb2xsO1xufVxuXG4vLyBTY2FsZSB1cCB0aGUgbW9kYWxcbkBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoc20pIHtcbiAgLy8gQXV0b21hdGljYWxseSBzZXQgbW9kYWwncyB3aWR0aCBmb3IgbGFyZ2VyIHZpZXdwb3J0c1xuICAubW9kYWwtZGlhbG9nIHtcbiAgICBtYXgtd2lkdGg6ICRtb2RhbC1tZDtcbiAgICBtYXJnaW46ICRtb2RhbC1kaWFsb2ctbWFyZ2luLXktc20tdXAgYXV0bztcbiAgfVxuXG4gIC5tb2RhbC1kaWFsb2ctc2Nyb2xsYWJsZSB7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gI3skbW9kYWwtZGlhbG9nLW1hcmdpbi15LXNtLXVwICogMn0pO1xuXG4gICAgLm1vZGFsLWNvbnRlbnQge1xuICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtICN7JG1vZGFsLWRpYWxvZy1tYXJnaW4teS1zbS11cCAqIDJ9KTtcbiAgICB9XG4gIH1cblxuICAubW9kYWwtZGlhbG9nLWNlbnRlcmVkIHtcbiAgICBtaW4taGVpZ2h0OiBjYWxjKDEwMCUgLSAjeyRtb2RhbC1kaWFsb2ctbWFyZ2luLXktc20tdXAgKiAyfSk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gI3skbW9kYWwtZGlhbG9nLW1hcmdpbi15LXNtLXVwICogMn0pO1xuICAgIH1cbiAgfVxuXG4gIC5tb2RhbC1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KCRtb2RhbC1jb250ZW50LWJveC1zaGFkb3ctc20tdXApO1xuICB9XG5cbiAgLm1vZGFsLXNtIHsgbWF4LXdpZHRoOiAkbW9kYWwtc207IH1cbn1cblxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xuICAubW9kYWwtbGcsXG4gIC5tb2RhbC14bCB7XG4gICAgbWF4LXdpZHRoOiAkbW9kYWwtbGc7XG4gIH1cbn1cblxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCh4bCkge1xuICAubW9kYWwteGwgeyBtYXgtd2lkdGg6ICRtb2RhbC14bDsgfVxufVxuIiwiLy8gQmFzZSBjbGFzc1xuLnRvb2x0aXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6ICR6aW5kZXgtdG9vbHRpcDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogJHRvb2x0aXAtbWFyZ2luO1xuICAvLyBPdXIgcGFyZW50IGVsZW1lbnQgY2FuIGJlIGFyYml0cmFyeSBzaW5jZSB0b29sdGlwcyBhcmUgYnkgZGVmYXVsdCBpbnNlcnRlZCBhcyBhIHNpYmxpbmcgb2YgdGhlaXIgdGFyZ2V0IGVsZW1lbnQuXG4gIC8vIFNvIHJlc2V0IG91ciBmb250IGFuZCB0ZXh0IHByb3BlcnRpZXMgdG8gYXZvaWQgaW5oZXJpdGluZyB3ZWlyZCB2YWx1ZXMuXG4gIEBpbmNsdWRlIHJlc2V0LXRleHQoKTtcbiAgQGluY2x1ZGUgZm9udC1zaXplKCR0b29sdGlwLWZvbnQtc2l6ZSk7XG4gIC8vIEFsbG93IGJyZWFraW5nIHZlcnkgbG9uZyB3b3JkcyBzbyB0aGV5IGRvbid0IG92ZXJmbG93IHRoZSB0b29sdGlwJ3MgYm91bmRzXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgb3BhY2l0eTogMDtcblxuICAmLnNob3cgeyBvcGFjaXR5OiAkdG9vbHRpcC1vcGFjaXR5OyB9XG5cbiAgLmFycm93IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6ICR0b29sdGlwLWFycm93LXdpZHRoO1xuICAgIGhlaWdodDogJHRvb2x0aXAtYXJyb3ctaGVpZ2h0O1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICB9XG4gIH1cbn1cblxuLmJzLXRvb2x0aXAtdG9wIHtcbiAgcGFkZGluZzogJHRvb2x0aXAtYXJyb3ctaGVpZ2h0IDA7XG5cbiAgLmFycm93IHtcbiAgICBib3R0b206IDA7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgdG9wOiAwO1xuICAgICAgYm9yZGVyLXdpZHRoOiAkdG9vbHRpcC1hcnJvdy1oZWlnaHQgKCR0b29sdGlwLWFycm93LXdpZHRoIC8gMikgMDtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICR0b29sdGlwLWFycm93LWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG4uYnMtdG9vbHRpcC1yaWdodCB7XG4gIHBhZGRpbmc6IDAgJHRvb2x0aXAtYXJyb3ctaGVpZ2h0O1xuXG4gIC5hcnJvdyB7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogJHRvb2x0aXAtYXJyb3ctaGVpZ2h0O1xuICAgIGhlaWdodDogJHRvb2x0aXAtYXJyb3ctd2lkdGg7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3JkZXItd2lkdGg6ICgkdG9vbHRpcC1hcnJvdy13aWR0aCAvIDIpICR0b29sdGlwLWFycm93LWhlaWdodCAoJHRvb2x0aXAtYXJyb3ctd2lkdGggLyAyKSAwO1xuICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkdG9vbHRpcC1hcnJvdy1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuLmJzLXRvb2x0aXAtYm90dG9tIHtcbiAgcGFkZGluZzogJHRvb2x0aXAtYXJyb3ctaGVpZ2h0IDA7XG5cbiAgLmFycm93IHtcbiAgICB0b3A6IDA7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwICgkdG9vbHRpcC1hcnJvdy13aWR0aCAvIDIpICR0b29sdGlwLWFycm93LWhlaWdodDtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR0b29sdGlwLWFycm93LWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG4uYnMtdG9vbHRpcC1sZWZ0IHtcbiAgcGFkZGluZzogMCAkdG9vbHRpcC1hcnJvdy1oZWlnaHQ7XG5cbiAgLmFycm93IHtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogJHRvb2x0aXAtYXJyb3ctaGVpZ2h0O1xuICAgIGhlaWdodDogJHRvb2x0aXAtYXJyb3ctd2lkdGg7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJvcmRlci13aWR0aDogKCR0b29sdGlwLWFycm93LXdpZHRoIC8gMikgMCAoJHRvb2x0aXAtYXJyb3ctd2lkdGggLyAyKSAkdG9vbHRpcC1hcnJvdy1oZWlnaHQ7XG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogJHRvb2x0aXAtYXJyb3ctY29sb3I7XG4gICAgfVxuICB9XG59XG5cbi5icy10b29sdGlwLWF1dG8ge1xuICAmW3gtcGxhY2VtZW50Xj1cInRvcFwiXSB7XG4gICAgQGV4dGVuZCAuYnMtdG9vbHRpcC10b3A7XG4gIH1cbiAgJlt4LXBsYWNlbWVudF49XCJyaWdodFwiXSB7XG4gICAgQGV4dGVuZCAuYnMtdG9vbHRpcC1yaWdodDtcbiAgfVxuICAmW3gtcGxhY2VtZW50Xj1cImJvdHRvbVwiXSB7XG4gICAgQGV4dGVuZCAuYnMtdG9vbHRpcC1ib3R0b207XG4gIH1cbiAgJlt4LXBsYWNlbWVudF49XCJsZWZ0XCJdIHtcbiAgICBAZXh0ZW5kIC5icy10b29sdGlwLWxlZnQ7XG4gIH1cbn1cblxuLy8gV3JhcHBlciBmb3IgdGhlIHRvb2x0aXAgY29udGVudFxuLnRvb2x0aXAtaW5uZXIge1xuICBtYXgtd2lkdGg6ICR0b29sdGlwLW1heC13aWR0aDtcbiAgcGFkZGluZzogJHRvb2x0aXAtcGFkZGluZy15ICR0b29sdGlwLXBhZGRpbmcteDtcbiAgY29sb3I6ICR0b29sdGlwLWNvbG9yO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICR0b29sdGlwLWJnO1xuICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCR0b29sdGlwLWJvcmRlci1yYWRpdXMpO1xufVxuIiwiQG1peGluIHJlc2V0LXRleHQge1xuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJhc2U7XG4gIC8vIFdlIGRlbGliZXJhdGVseSBkbyBOT1QgcmVzZXQgZm9udC1zaXplIG9yIHdvcmQtd3JhcC5cbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xuICB0ZXh0LWFsaWduOiBsZWZ0OyAvLyBGYWxsYmFjayBmb3Igd2hlcmUgYHN0YXJ0YCBpcyBub3Qgc3VwcG9ydGVkXG4gIHRleHQtYWxpZ246IHN0YXJ0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgd29yZC1icmVhazogbm9ybWFsO1xuICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgbGluZS1icmVhazogYXV0bztcbn1cbiIsIi5wb3BvdmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICR6aW5kZXgtcG9wb3ZlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1heC13aWR0aDogJHBvcG92ZXItbWF4LXdpZHRoO1xuICAvLyBPdXIgcGFyZW50IGVsZW1lbnQgY2FuIGJlIGFyYml0cmFyeSBzaW5jZSB0b29sdGlwcyBhcmUgYnkgZGVmYXVsdCBpbnNlcnRlZCBhcyBhIHNpYmxpbmcgb2YgdGhlaXIgdGFyZ2V0IGVsZW1lbnQuXG4gIC8vIFNvIHJlc2V0IG91ciBmb250IGFuZCB0ZXh0IHByb3BlcnRpZXMgdG8gYXZvaWQgaW5oZXJpdGluZyB3ZWlyZCB2YWx1ZXMuXG4gIEBpbmNsdWRlIHJlc2V0LXRleHQoKTtcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRwb3BvdmVyLWZvbnQtc2l6ZSk7XG4gIC8vIEFsbG93IGJyZWFraW5nIHZlcnkgbG9uZyB3b3JkcyBzbyB0aGV5IGRvbid0IG92ZXJmbG93IHRoZSBwb3BvdmVyJ3MgYm91bmRzXG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHBvcG92ZXItYmc7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGJvcmRlcjogJHBvcG92ZXItYm9yZGVyLXdpZHRoIHNvbGlkICRwb3BvdmVyLWJvcmRlci1jb2xvcjtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkcG9wb3Zlci1ib3JkZXItcmFkaXVzKTtcbiAgQGluY2x1ZGUgYm94LXNoYWRvdygkcG9wb3Zlci1ib3gtc2hhZG93KTtcblxuICAuYXJyb3cge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogJHBvcG92ZXItYXJyb3ctd2lkdGg7XG4gICAgaGVpZ2h0OiAkcG9wb3Zlci1hcnJvdy1oZWlnaHQ7XG4gICAgbWFyZ2luOiAwICRib3JkZXItcmFkaXVzLWxnO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIH1cbiAgfVxufVxuXG4uYnMtcG9wb3Zlci10b3Age1xuICBtYXJnaW4tYm90dG9tOiAkcG9wb3Zlci1hcnJvdy1oZWlnaHQ7XG5cbiAgPiAuYXJyb3cge1xuICAgIGJvdHRvbTogY2FsYygoI3skcG9wb3Zlci1hcnJvdy1oZWlnaHR9ICsgI3skcG9wb3Zlci1ib3JkZXItd2lkdGh9KSAqIC0xKTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBib3R0b206IDA7XG4gICAgICBib3JkZXItd2lkdGg6ICRwb3BvdmVyLWFycm93LWhlaWdodCAoJHBvcG92ZXItYXJyb3ctd2lkdGggLyAyKSAwO1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHBvcG92ZXItYXJyb3ctb3V0ZXItY29sb3I7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgYm90dG9tOiAkcG9wb3Zlci1ib3JkZXItd2lkdGg7XG4gICAgICBib3JkZXItd2lkdGg6ICRwb3BvdmVyLWFycm93LWhlaWdodCAoJHBvcG92ZXItYXJyb3ctd2lkdGggLyAyKSAwO1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHBvcG92ZXItYXJyb3ctY29sb3I7XG4gICAgfVxuICB9XG59XG5cbi5icy1wb3BvdmVyLXJpZ2h0IHtcbiAgbWFyZ2luLWxlZnQ6ICRwb3BvdmVyLWFycm93LWhlaWdodDtcblxuICA+IC5hcnJvdyB7XG4gICAgbGVmdDogY2FsYygoI3skcG9wb3Zlci1hcnJvdy1oZWlnaHR9ICsgI3skcG9wb3Zlci1ib3JkZXItd2lkdGh9KSAqIC0xKTtcbiAgICB3aWR0aDogJHBvcG92ZXItYXJyb3ctaGVpZ2h0O1xuICAgIGhlaWdodDogJHBvcG92ZXItYXJyb3ctd2lkdGg7XG4gICAgbWFyZ2luOiAkYm9yZGVyLXJhZGl1cy1sZyAwOyAvLyBtYWtlIHN1cmUgdGhlIGFycm93IGRvZXMgbm90IHRvdWNoIHRoZSBwb3BvdmVyJ3Mgcm91bmRlZCBjb3JuZXJzXG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJvcmRlci13aWR0aDogKCRwb3BvdmVyLWFycm93LXdpZHRoIC8gMikgJHBvcG92ZXItYXJyb3ctaGVpZ2h0ICgkcG9wb3Zlci1hcnJvdy13aWR0aCAvIDIpIDA7XG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRwb3BvdmVyLWFycm93LW91dGVyLWNvbG9yO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGxlZnQ6ICRwb3BvdmVyLWJvcmRlci13aWR0aDtcbiAgICAgIGJvcmRlci13aWR0aDogKCRwb3BvdmVyLWFycm93LXdpZHRoIC8gMikgJHBvcG92ZXItYXJyb3ctaGVpZ2h0ICgkcG9wb3Zlci1hcnJvdy13aWR0aCAvIDIpIDA7XG4gICAgICBib3JkZXItcmlnaHQtY29sb3I6ICRwb3BvdmVyLWFycm93LWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG4uYnMtcG9wb3Zlci1ib3R0b20ge1xuICBtYXJnaW4tdG9wOiAkcG9wb3Zlci1hcnJvdy1oZWlnaHQ7XG5cbiAgPiAuYXJyb3cge1xuICAgIHRvcDogY2FsYygoI3skcG9wb3Zlci1hcnJvdy1oZWlnaHR9ICsgI3skcG9wb3Zlci1ib3JkZXItd2lkdGh9KSAqIC0xKTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICB0b3A6IDA7XG4gICAgICBib3JkZXItd2lkdGg6IDAgKCRwb3BvdmVyLWFycm93LXdpZHRoIC8gMikgJHBvcG92ZXItYXJyb3ctaGVpZ2h0ICgkcG9wb3Zlci1hcnJvdy13aWR0aCAvIDIpO1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHBvcG92ZXItYXJyb3ctb3V0ZXItY29sb3I7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgdG9wOiAkcG9wb3Zlci1ib3JkZXItd2lkdGg7XG4gICAgICBib3JkZXItd2lkdGg6IDAgKCRwb3BvdmVyLWFycm93LXdpZHRoIC8gMikgJHBvcG92ZXItYXJyb3ctaGVpZ2h0ICgkcG9wb3Zlci1hcnJvdy13aWR0aCAvIDIpO1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHBvcG92ZXItYXJyb3ctY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhpcyB3aWxsIHJlbW92ZSB0aGUgcG9wb3Zlci1oZWFkZXIncyBib3JkZXIganVzdCBiZWxvdyB0aGUgYXJyb3dcbiAgLnBvcG92ZXItaGVhZGVyOjpiZWZvcmUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogNTAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAkcG9wb3Zlci1hcnJvdy13aWR0aDtcbiAgICBtYXJnaW4tbGVmdDogLSRwb3BvdmVyLWFycm93LXdpZHRoIC8gMjtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGJvcmRlci1ib3R0b206ICRwb3BvdmVyLWJvcmRlci13aWR0aCBzb2xpZCAkcG9wb3Zlci1oZWFkZXItYmc7XG4gIH1cbn1cblxuLmJzLXBvcG92ZXItbGVmdCB7XG4gIG1hcmdpbi1yaWdodDogJHBvcG92ZXItYXJyb3ctaGVpZ2h0O1xuXG4gID4gLmFycm93IHtcbiAgICByaWdodDogY2FsYygoI3skcG9wb3Zlci1hcnJvdy1oZWlnaHR9ICsgI3skcG9wb3Zlci1ib3JkZXItd2lkdGh9KSAqIC0xKTtcbiAgICB3aWR0aDogJHBvcG92ZXItYXJyb3ctaGVpZ2h0O1xuICAgIGhlaWdodDogJHBvcG92ZXItYXJyb3ctd2lkdGg7XG4gICAgbWFyZ2luOiAkYm9yZGVyLXJhZGl1cy1sZyAwOyAvLyBtYWtlIHN1cmUgdGhlIGFycm93IGRvZXMgbm90IHRvdWNoIHRoZSBwb3BvdmVyJ3Mgcm91bmRlZCBjb3JuZXJzXG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3JkZXItd2lkdGg6ICgkcG9wb3Zlci1hcnJvdy13aWR0aCAvIDIpIDAgKCRwb3BvdmVyLWFycm93LXdpZHRoIC8gMikgJHBvcG92ZXItYXJyb3ctaGVpZ2h0O1xuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRwb3BvdmVyLWFycm93LW91dGVyLWNvbG9yO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIHJpZ2h0OiAkcG9wb3Zlci1ib3JkZXItd2lkdGg7XG4gICAgICBib3JkZXItd2lkdGg6ICgkcG9wb3Zlci1hcnJvdy13aWR0aCAvIDIpIDAgKCRwb3BvdmVyLWFycm93LXdpZHRoIC8gMikgJHBvcG92ZXItYXJyb3ctaGVpZ2h0O1xuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRwb3BvdmVyLWFycm93LWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG4uYnMtcG9wb3Zlci1hdXRvIHtcbiAgJlt4LXBsYWNlbWVudF49XCJ0b3BcIl0ge1xuICAgIEBleHRlbmQgLmJzLXBvcG92ZXItdG9wO1xuICB9XG4gICZbeC1wbGFjZW1lbnRePVwicmlnaHRcIl0ge1xuICAgIEBleHRlbmQgLmJzLXBvcG92ZXItcmlnaHQ7XG4gIH1cbiAgJlt4LXBsYWNlbWVudF49XCJib3R0b21cIl0ge1xuICAgIEBleHRlbmQgLmJzLXBvcG92ZXItYm90dG9tO1xuICB9XG4gICZbeC1wbGFjZW1lbnRePVwibGVmdFwiXSB7XG4gICAgQGV4dGVuZCAuYnMtcG9wb3Zlci1sZWZ0O1xuICB9XG59XG5cblxuLy8gT2Zmc2V0IHRoZSBwb3BvdmVyIHRvIGFjY291bnQgZm9yIHRoZSBwb3BvdmVyIGFycm93XG4ucG9wb3Zlci1oZWFkZXIge1xuICBwYWRkaW5nOiAkcG9wb3Zlci1oZWFkZXItcGFkZGluZy15ICRwb3BvdmVyLWhlYWRlci1wYWRkaW5nLXg7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8vIFJlc2V0IHRoZSBkZWZhdWx0IGZyb20gUmVib290XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZm9udC1zaXplLWJhc2UpO1xuICBjb2xvcjogJHBvcG92ZXItaGVhZGVyLWNvbG9yO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcG9wb3Zlci1oZWFkZXItYmc7XG4gIGJvcmRlci1ib3R0b206ICRwb3BvdmVyLWJvcmRlci13aWR0aCBzb2xpZCBkYXJrZW4oJHBvcG92ZXItaGVhZGVyLWJnLCA1JSk7XG4gICRvZmZzZXQtYm9yZGVyLXdpZHRoOiBjYWxjKCN7JGJvcmRlci1yYWRpdXMtbGd9IC0gI3skcG9wb3Zlci1ib3JkZXItd2lkdGh9KTtcbiAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoJG9mZnNldC1ib3JkZXItd2lkdGgpO1xuXG4gICY6ZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnBvcG92ZXItYm9keSB7XG4gIHBhZGRpbmc6ICRwb3BvdmVyLWJvZHktcGFkZGluZy15ICRwb3BvdmVyLWJvZHktcGFkZGluZy14O1xuICBjb2xvcjogJHBvcG92ZXItYm9keS1jb2xvcjtcbn1cbiIsIi8vIE5vdGVzIG9uIHRoZSBjbGFzc2VzOlxuLy9cbi8vIDEuIC5jYXJvdXNlbC5wb2ludGVyLWV2ZW50IHNob3VsZCBpZGVhbGx5IGJlIHBhbi15ICh0byBhbGxvdyBmb3IgdXNlcnMgdG8gc2Nyb2xsIHZlcnRpY2FsbHkpXG4vLyAgICBldmVuIHdoZW4gdGhlaXIgc2Nyb2xsIGFjdGlvbiBzdGFydGVkIG9uIGEgY2Fyb3VzZWwsIGJ1dCBmb3IgY29tcGF0aWJpbGl0eSAod2l0aCBGaXJlZm94KVxuLy8gICAgd2UncmUgcHJldmVudGluZyBhbGwgYWN0aW9ucyBpbnN0ZWFkXG4vLyAyLiBUaGUgLmNhcm91c2VsLWl0ZW0tbGVmdCBhbmQgLmNhcm91c2VsLWl0ZW0tcmlnaHQgaXMgdXNlZCB0byBpbmRpY2F0ZSB3aGVyZVxuLy8gICAgdGhlIGFjdGl2ZSBzbGlkZSBpcyBoZWFkaW5nLlxuLy8gMy4gLmFjdGl2ZS5jYXJvdXNlbC1pdGVtIGlzIHRoZSBjdXJyZW50IHNsaWRlLlxuLy8gNC4gLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLWxlZnQgYW5kIC5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1yaWdodCBpcyB0aGUgY3VycmVudFxuLy8gICAgc2xpZGUgaW4gaXRzIGluLXRyYW5zaXRpb24gc3RhdGUuIE9ubHkgb25lIG9mIHRoZXNlIG9jY3VycyBhdCBhIHRpbWUuXG4vLyA1LiAuY2Fyb3VzZWwtaXRlbS1uZXh0LmNhcm91c2VsLWl0ZW0tbGVmdCBhbmQgLmNhcm91c2VsLWl0ZW0tcHJldi5jYXJvdXNlbC1pdGVtLXJpZ2h0XG4vLyAgICBpcyB0aGUgdXBjb21pbmcgc2xpZGUgaW4gdHJhbnNpdGlvbi5cblxuLmNhcm91c2VsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2Fyb3VzZWwucG9pbnRlci1ldmVudCB7XG4gIHRvdWNoLWFjdGlvbjogcGFuLXk7XG59XG5cbi5jYXJvdXNlbC1pbm5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIEBpbmNsdWRlIGNsZWFyZml4KCk7XG59XG5cbi5jYXJvdXNlbC1pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBub25lO1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1yaWdodDogLTEwMCU7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbigkY2Fyb3VzZWwtdHJhbnNpdGlvbik7XG59XG5cbi5jYXJvdXNlbC1pdGVtLmFjdGl2ZSxcbi5jYXJvdXNlbC1pdGVtLW5leHQsXG4uY2Fyb3VzZWwtaXRlbS1wcmV2IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5jYXJvdXNlbC1pdGVtLW5leHQ6bm90KC5jYXJvdXNlbC1pdGVtLWxlZnQpLFxuLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLXJpZ2h0IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xufVxuXG4uY2Fyb3VzZWwtaXRlbS1wcmV2Om5vdCguY2Fyb3VzZWwtaXRlbS1yaWdodCksXG4uYWN0aXZlLmNhcm91c2VsLWl0ZW0tbGVmdCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG59XG5cblxuLy9cbi8vIEFsdGVybmF0ZSB0cmFuc2l0aW9uc1xuLy9cblxuLmNhcm91c2VsLWZhZGUge1xuICAuY2Fyb3VzZWwtaXRlbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5O1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gIC5jYXJvdXNlbC1pdGVtLmFjdGl2ZSxcbiAgLmNhcm91c2VsLWl0ZW0tbmV4dC5jYXJvdXNlbC1pdGVtLWxlZnQsXG4gIC5jYXJvdXNlbC1pdGVtLXByZXYuY2Fyb3VzZWwtaXRlbS1yaWdodCB7XG4gICAgei1pbmRleDogMTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLWxlZnQsXG4gIC5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1yaWdodCB7XG4gICAgei1pbmRleDogMDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oMHMgJGNhcm91c2VsLXRyYW5zaXRpb24tZHVyYXRpb24gb3BhY2l0eSk7XG4gIH1cbn1cblxuXG4vL1xuLy8gTGVmdC9yaWdodCBjb250cm9scyBmb3IgbmF2XG4vL1xuXG4uY2Fyb3VzZWwtY29udHJvbC1wcmV2LFxuLmNhcm91c2VsLWNvbnRyb2wtbmV4dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBib3R0b206IDA7XG4gIHotaW5kZXg6IDE7XG4gIC8vIFVzZSBmbGV4IGZvciBhbGlnbm1lbnQgKDEtMylcbiAgZGlzcGxheTogZmxleDsgLy8gMS4gYWxsb3cgZmxleCBzdHlsZXNcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLy8gMi4gdmVydGljYWxseSBjZW50ZXIgY29udGVudHNcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8vIDMuIGhvcml6b250YWxseSBjZW50ZXIgY29udGVudHNcbiAgd2lkdGg6ICRjYXJvdXNlbC1jb250cm9sLXdpZHRoO1xuICBjb2xvcjogJGNhcm91c2VsLWNvbnRyb2wtY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgb3BhY2l0eTogJGNhcm91c2VsLWNvbnRyb2wtb3BhY2l0eTtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbigkY2Fyb3VzZWwtY29udHJvbC10cmFuc2l0aW9uKTtcblxuICAvLyBIb3Zlci9mb2N1cyBzdGF0ZVxuICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgY29sb3I6ICRjYXJvdXNlbC1jb250cm9sLWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIG9wYWNpdHk6ICRjYXJvdXNlbC1jb250cm9sLWhvdmVyLW9wYWNpdHk7XG4gIH1cbn1cbi5jYXJvdXNlbC1jb250cm9sLXByZXYge1xuICBsZWZ0OiAwO1xuICBAaWYgJGVuYWJsZS1ncmFkaWVudHMge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgkYmxhY2ssIC4yNSksIHJnYmEoJGJsYWNrLCAuMDAxKSk7XG4gIH1cbn1cbi5jYXJvdXNlbC1jb250cm9sLW5leHQge1xuICByaWdodDogMDtcbiAgQGlmICRlbmFibGUtZ3JhZGllbnRzIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMjcwZGVnLCByZ2JhKCRibGFjaywgLjI1KSwgcmdiYSgkYmxhY2ssIC4wMDEpKTtcbiAgfVxufVxuXG4vLyBJY29ucyBmb3Igd2l0aGluXG4uY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb24sXG4uY2Fyb3VzZWwtY29udHJvbC1uZXh0LWljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAkY2Fyb3VzZWwtY29udHJvbC1pY29uLXdpZHRoO1xuICBoZWlnaHQ6ICRjYXJvdXNlbC1jb250cm9sLWljb24td2lkdGg7XG4gIGJhY2tncm91bmQ6IG5vLXJlcGVhdCA1MCUgLyAxMDAlIDEwMCU7XG59XG4uY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb24ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAkY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb24tYmc7XG59XG4uY2Fyb3VzZWwtY29udHJvbC1uZXh0LWljb24ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiAkY2Fyb3VzZWwtY29udHJvbC1uZXh0LWljb24tYmc7XG59XG5cblxuLy8gT3B0aW9uYWwgaW5kaWNhdG9yIHBpcHNcbi8vXG4vLyBBZGQgYW4gb3JkZXJlZCBsaXN0IHdpdGggdGhlIGZvbGxvd2luZyBjbGFzcyBhbmQgYWRkIGEgbGlzdCBpdGVtIGZvciBlYWNoXG4vLyBzbGlkZSB5b3VyIGNhcm91c2VsIGhvbGRzLlxuXG4uY2Fyb3VzZWwtaW5kaWNhdG9ycyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nLWxlZnQ6IDA7IC8vIG92ZXJyaWRlIDxvbD4gZGVmYXVsdFxuICAvLyBVc2UgdGhlIC5jYXJvdXNlbC1jb250cm9sJ3Mgd2lkdGggYXMgbWFyZ2luIHNvIHdlIGRvbid0IG92ZXJsYXkgdGhvc2VcbiAgbWFyZ2luLXJpZ2h0OiAkY2Fyb3VzZWwtY29udHJvbC13aWR0aDtcbiAgbWFyZ2luLWxlZnQ6ICRjYXJvdXNlbC1jb250cm9sLXdpZHRoO1xuICBsaXN0LXN0eWxlOiBub25lO1xuXG4gIGxpIHtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICB3aWR0aDogJGNhcm91c2VsLWluZGljYXRvci13aWR0aDtcbiAgICBoZWlnaHQ6ICRjYXJvdXNlbC1pbmRpY2F0b3ItaGVpZ2h0O1xuICAgIG1hcmdpbi1yaWdodDogJGNhcm91c2VsLWluZGljYXRvci1zcGFjZXI7XG4gICAgbWFyZ2luLWxlZnQ6ICRjYXJvdXNlbC1pbmRpY2F0b3Itc3BhY2VyO1xuICAgIHRleHQtaW5kZW50OiAtOTk5cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjYXJvdXNlbC1pbmRpY2F0b3ItYWN0aXZlLWJnO1xuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgLy8gVXNlIHRyYW5zcGFyZW50IGJvcmRlcnMgdG8gaW5jcmVhc2UgdGhlIGhpdCBhcmVhIGJ5IDEwcHggb24gdG9wIGFuZCBib3R0b20uXG4gICAgYm9yZGVyLXRvcDogJGNhcm91c2VsLWluZGljYXRvci1oaXQtYXJlYS1oZWlnaHQgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogJGNhcm91c2VsLWluZGljYXRvci1oaXQtYXJlYS1oZWlnaHQgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgb3BhY2l0eTogLjU7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbigkY2Fyb3VzZWwtaW5kaWNhdG9yLXRyYW5zaXRpb24pO1xuICB9XG5cbiAgLmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5cbi8vIE9wdGlvbmFsIGNhcHRpb25zXG4vL1xuLy9cblxuLmNhcm91c2VsLWNhcHRpb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAoMTAwJSAtICRjYXJvdXNlbC1jYXB0aW9uLXdpZHRoKSAvIDI7XG4gIGJvdHRvbTogMjBweDtcbiAgbGVmdDogKDEwMCUgLSAkY2Fyb3VzZWwtY2FwdGlvbi13aWR0aCkgLyAyO1xuICB6LWluZGV4OiAxMDtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICBjb2xvcjogJGNhcm91c2VsLWNhcHRpb24tY29sb3I7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbiIsIkBtaXhpbiBjbGVhcmZpeCgpIHtcbiAgJjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cbn1cbiIsIi8vXG4vLyBSb3RhdGluZyBib3JkZXJcbi8vXG5cbkBrZXlmcmFtZXMgc3Bpbm5lci1ib3JkZXIge1xuICB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH1cbn1cblxuLnNwaW5uZXItYm9yZGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogJHNwaW5uZXItd2lkdGg7XG4gIGhlaWdodDogJHNwaW5uZXItaGVpZ2h0O1xuICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gIGJvcmRlcjogJHNwaW5uZXItYm9yZGVyLXdpZHRoIHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb3BlcnR5LWJsYWNrbGlzdFxuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGFuaW1hdGlvbjogc3Bpbm5lci1ib3JkZXIgLjc1cyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbi5zcGlubmVyLWJvcmRlci1zbSB7XG4gIHdpZHRoOiAkc3Bpbm5lci13aWR0aC1zbTtcbiAgaGVpZ2h0OiAkc3Bpbm5lci1oZWlnaHQtc207XG4gIGJvcmRlci13aWR0aDogJHNwaW5uZXItYm9yZGVyLXdpZHRoLXNtO1xufVxuXG4vL1xuLy8gR3Jvd2luZyBjaXJjbGVcbi8vXG5cbkBrZXlmcmFtZXMgc3Bpbm5lci1ncm93IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5zcGlubmVyLWdyb3cge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAkc3Bpbm5lci13aWR0aDtcbiAgaGVpZ2h0OiAkc3Bpbm5lci1oZWlnaHQ7XG4gIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJvcGVydHktYmxhY2tsaXN0XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb3BhY2l0eTogMDtcbiAgYW5pbWF0aW9uOiBzcGlubmVyLWdyb3cgLjc1cyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbi5zcGlubmVyLWdyb3ctc20ge1xuICB3aWR0aDogJHNwaW5uZXItd2lkdGgtc207XG4gIGhlaWdodDogJHNwaW5uZXItaGVpZ2h0LXNtO1xufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5cbi5hbGlnbi1iYXNlbGluZSAgICB7IHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZSAhaW1wb3J0YW50OyB9IC8vIEJyb3dzZXIgZGVmYXVsdFxuLmFsaWduLXRvcCAgICAgICAgIHsgdmVydGljYWwtYWxpZ246IHRvcCAhaW1wb3J0YW50OyB9XG4uYWxpZ24tbWlkZGxlICAgICAgeyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7IH1cbi5hbGlnbi1ib3R0b20gICAgICB7IHZlcnRpY2FsLWFsaWduOiBib3R0b20gIWltcG9ydGFudDsgfVxuLmFsaWduLXRleHQtYm90dG9tIHsgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tICFpbXBvcnRhbnQ7IH1cbi5hbGlnbi10ZXh0LXRvcCAgICB7IHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcCAhaW1wb3J0YW50OyB9XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnRcblxuLy8gQ29udGV4dHVhbCBiYWNrZ3JvdW5kc1xuXG5AbWl4aW4gYmctdmFyaWFudCgkcGFyZW50LCAkY29sb3IpIHtcbiAgI3skcGFyZW50fSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7XG4gIH1cbiAgYSN7JHBhcmVudH0sXG4gIGJ1dHRvbiN7JHBhcmVudH0ge1xuICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkY29sb3IsIDEwJSkgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGJnLWdyYWRpZW50LXZhcmlhbnQoJHBhcmVudCwgJGNvbG9yKSB7XG4gICN7JHBhcmVudH0ge1xuICAgIGJhY2tncm91bmQ6ICRjb2xvciBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCBtaXgoJGJvZHktYmcsICRjb2xvciwgMTUlKSwgJGNvbG9yKSByZXBlYXQteCAhaW1wb3J0YW50O1xuICB9XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnRcblxuQGVhY2ggJGNvbG9yLCAkdmFsdWUgaW4gJHRoZW1lLWNvbG9ycyB7XG4gIEBpbmNsdWRlIGJnLXZhcmlhbnQoXCIuYmctI3skY29sb3J9XCIsICR2YWx1ZSk7XG59XG5cbkBpZiAkZW5hYmxlLWdyYWRpZW50cyB7XG4gIEBlYWNoICRjb2xvciwgJHZhbHVlIGluICR0aGVtZS1jb2xvcnMge1xuICAgIEBpbmNsdWRlIGJnLWdyYWRpZW50LXZhcmlhbnQoXCIuYmctZ3JhZGllbnQtI3skY29sb3J9XCIsICR2YWx1ZSk7XG4gIH1cbn1cblxuLmJnLXdoaXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlICFpbXBvcnRhbnQ7XG59XG5cbi5iZy10cmFuc3BhcmVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBwcm9wZXJ0eS1ibGFja2xpc3QsIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuXG4vL1xuLy8gQm9yZGVyXG4vL1xuXG4uYm9yZGVyICAgICAgICAgeyBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvciAhaW1wb3J0YW50OyB9XG4uYm9yZGVyLXRvcCAgICAgeyBib3JkZXItdG9wOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRib3JkZXItY29sb3IgIWltcG9ydGFudDsgfVxuLmJvcmRlci1yaWdodCAgIHsgYm9yZGVyLXJpZ2h0OiAkYm9yZGVyLXdpZHRoIHNvbGlkICRib3JkZXItY29sb3IgIWltcG9ydGFudDsgfVxuLmJvcmRlci1ib3R0b20gIHsgYm9yZGVyLWJvdHRvbTogJGJvcmRlci13aWR0aCBzb2xpZCAkYm9yZGVyLWNvbG9yICFpbXBvcnRhbnQ7IH1cbi5ib3JkZXItbGVmdCAgICB7IGJvcmRlci1sZWZ0OiAkYm9yZGVyLXdpZHRoIHNvbGlkICRib3JkZXItY29sb3IgIWltcG9ydGFudDsgfVxuXG4uYm9yZGVyLTAgICAgICAgIHsgYm9yZGVyOiAwICFpbXBvcnRhbnQ7IH1cbi5ib3JkZXItdG9wLTAgICAgeyBib3JkZXItdG9wOiAwICFpbXBvcnRhbnQ7IH1cbi5ib3JkZXItcmlnaHQtMCAgeyBib3JkZXItcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxuLmJvcmRlci1ib3R0b20tMCB7IGJvcmRlci1ib3R0b206IDAgIWltcG9ydGFudDsgfVxuLmJvcmRlci1sZWZ0LTAgICB7IGJvcmRlci1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cblxuQGVhY2ggJGNvbG9yLCAkdmFsdWUgaW4gJHRoZW1lLWNvbG9ycyB7XG4gIC5ib3JkZXItI3skY29sb3J9IHtcbiAgICBib3JkZXItY29sb3I6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5ib3JkZXItd2hpdGUge1xuICBib3JkZXItY29sb3I6ICR3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4vL1xuLy8gQm9yZGVyLXJhZGl1c1xuLy9cblxuLnJvdW5kZWQtc20ge1xuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cy1zbSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZCB7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLXRvcCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cyAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC1yaWdodCB7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cyAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXMgIWltcG9ydGFudDtcbn1cblxuLnJvdW5kZWQtYm90dG9tIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLWxlZnQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cyAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1cyAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC1sZyB7XG4gIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzLWxnICFpbXBvcnRhbnQ7XG59XG5cbi5yb3VuZGVkLWNpcmNsZSB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC1waWxsIHtcbiAgYm9yZGVyLXJhZGl1czogJHJvdW5kZWQtcGlsbCAhaW1wb3J0YW50O1xufVxuXG4ucm91bmRlZC0wIHtcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5cbi8vXG4vLyBVdGlsaXRpZXMgZm9yIGNvbW1vbiBgZGlzcGxheWAgdmFsdWVzXG4vL1xuXG5AZWFjaCAkYnJlYWtwb2ludCBpbiBtYXAta2V5cygkZ3JpZC1icmVha3BvaW50cykge1xuICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicmVha3BvaW50KSB7XG4gICAgJGluZml4OiBicmVha3BvaW50LWluZml4KCRicmVha3BvaW50LCAkZ3JpZC1icmVha3BvaW50cyk7XG5cbiAgICBAZWFjaCAkdmFsdWUgaW4gJGRpc3BsYXlzIHtcbiAgICAgIC5kI3skaW5maXh9LSN7JHZhbHVlfSB7IGRpc3BsYXk6ICR2YWx1ZSAhaW1wb3J0YW50OyB9XG4gICAgfVxuICB9XG59XG5cblxuLy9cbi8vIFV0aWxpdGllcyBmb3IgdG9nZ2xpbmcgYGRpc3BsYXlgIGluIHByaW50XG4vL1xuXG5AbWVkaWEgcHJpbnQge1xuICBAZWFjaCAkdmFsdWUgaW4gJGRpc3BsYXlzIHtcbiAgICAuZC1wcmludC0jeyR2YWx1ZX0geyBkaXNwbGF5OiAkdmFsdWUgIWltcG9ydGFudDsgfVxuICB9XG59XG4iLCIvLyBDcmVkaXQ6IE5pY29sYXMgR2FsbGFnaGVyIGFuZCBTVUlUIENTUy5cblxuLmVtYmVkLXJlc3BvbnNpdmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAmOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cblxuICAuZW1iZWQtcmVzcG9uc2l2ZS1pdGVtLFxuICBpZnJhbWUsXG4gIGVtYmVkLFxuICBvYmplY3QsXG4gIHZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXI6IDA7XG4gIH1cbn1cblxuQGVhY2ggJGVtYmVkLXJlc3BvbnNpdmUtYXNwZWN0LXJhdGlvIGluICRlbWJlZC1yZXNwb25zaXZlLWFzcGVjdC1yYXRpb3Mge1xuICAkZW1iZWQtcmVzcG9uc2l2ZS1hc3BlY3QtcmF0aW8teDogbnRoKCRlbWJlZC1yZXNwb25zaXZlLWFzcGVjdC1yYXRpbywgMSk7XG4gICRlbWJlZC1yZXNwb25zaXZlLWFzcGVjdC1yYXRpby15OiBudGgoJGVtYmVkLXJlc3BvbnNpdmUtYXNwZWN0LXJhdGlvLCAyKTtcblxuICAuZW1iZWQtcmVzcG9uc2l2ZS0jeyRlbWJlZC1yZXNwb25zaXZlLWFzcGVjdC1yYXRpby14fWJ5I3skZW1iZWQtcmVzcG9uc2l2ZS1hc3BlY3QtcmF0aW8teX0ge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBwYWRkaW5nLXRvcDogcGVyY2VudGFnZSgkZW1iZWQtcmVzcG9uc2l2ZS1hc3BlY3QtcmF0aW8teSAvICRlbWJlZC1yZXNwb25zaXZlLWFzcGVjdC1yYXRpby14KTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuXG4vLyBGbGV4IHZhcmlhdGlvblxuLy9cbi8vIEN1c3RvbSBzdHlsZXMgZm9yIGFkZGl0aW9uYWwgZmxleCBhbGlnbm1lbnQgb3B0aW9ucy5cblxuQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCkge1xuICAgICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkYnJlYWtwb2ludCwgJGdyaWQtYnJlYWtwb2ludHMpO1xuXG4gICAgLmZsZXgjeyRpbmZpeH0tcm93ICAgICAgICAgICAgeyBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7IH1cbiAgICAuZmxleCN7JGluZml4fS1jb2x1bW4gICAgICAgICB7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDsgfVxuICAgIC5mbGV4I3skaW5maXh9LXJvdy1yZXZlcnNlICAgIHsgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlICFpbXBvcnRhbnQ7IH1cbiAgICAuZmxleCN7JGluZml4fS1jb2x1bW4tcmV2ZXJzZSB7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZSAhaW1wb3J0YW50OyB9XG5cbiAgICAuZmxleCN7JGluZml4fS13cmFwICAgICAgICAgeyBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDsgfVxuICAgIC5mbGV4I3skaW5maXh9LW5vd3JhcCAgICAgICB7IGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7IH1cbiAgICAuZmxleCN7JGluZml4fS13cmFwLXJldmVyc2UgeyBmbGV4LXdyYXA6IHdyYXAtcmV2ZXJzZSAhaW1wb3J0YW50OyB9XG4gICAgLmZsZXgjeyRpbmZpeH0tZmlsbCAgICAgICAgIHsgZmxleDogMSAxIGF1dG8gIWltcG9ydGFudDsgfVxuICAgIC5mbGV4I3skaW5maXh9LWdyb3ctMCAgICAgICB7IGZsZXgtZ3JvdzogMCAhaW1wb3J0YW50OyB9XG4gICAgLmZsZXgjeyRpbmZpeH0tZ3Jvdy0xICAgICAgIHsgZmxleC1ncm93OiAxICFpbXBvcnRhbnQ7IH1cbiAgICAuZmxleCN7JGluZml4fS1zaHJpbmstMCAgICAgeyBmbGV4LXNocmluazogMCAhaW1wb3J0YW50OyB9XG4gICAgLmZsZXgjeyRpbmZpeH0tc2hyaW5rLTEgICAgIHsgZmxleC1zaHJpbms6IDEgIWltcG9ydGFudDsgfVxuXG4gICAgLmp1c3RpZnktY29udGVudCN7JGluZml4fS1zdGFydCAgIHsganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cbiAgICAuanVzdGlmeS1jb250ZW50I3skaW5maXh9LWVuZCAgICAgeyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cbiAgICAuanVzdGlmeS1jb250ZW50I3skaW5maXh9LWNlbnRlciAgeyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OyB9XG4gICAgLmp1c3RpZnktY29udGVudCN7JGluZml4fS1iZXR3ZWVuIHsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7IH1cbiAgICAuanVzdGlmeS1jb250ZW50I3skaW5maXh9LWFyb3VuZCAgeyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZCAhaW1wb3J0YW50OyB9XG5cbiAgICAuYWxpZ24taXRlbXMjeyRpbmZpeH0tc3RhcnQgICAgeyBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XG4gICAgLmFsaWduLWl0ZW1zI3skaW5maXh9LWVuZCAgICAgIHsgYWxpZ24taXRlbXM6IGZsZXgtZW5kICFpbXBvcnRhbnQ7IH1cbiAgICAuYWxpZ24taXRlbXMjeyRpbmZpeH0tY2VudGVyICAgeyBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7IH1cbiAgICAuYWxpZ24taXRlbXMjeyRpbmZpeH0tYmFzZWxpbmUgeyBhbGlnbi1pdGVtczogYmFzZWxpbmUgIWltcG9ydGFudDsgfVxuICAgIC5hbGlnbi1pdGVtcyN7JGluZml4fS1zdHJldGNoICB7IGFsaWduLWl0ZW1zOiBzdHJldGNoICFpbXBvcnRhbnQ7IH1cblxuICAgIC5hbGlnbi1jb250ZW50I3skaW5maXh9LXN0YXJ0ICAgeyBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IH1cbiAgICAuYWxpZ24tY29udGVudCN7JGluZml4fS1lbmQgICAgIHsgYWxpZ24tY29udGVudDogZmxleC1lbmQgIWltcG9ydGFudDsgfVxuICAgIC5hbGlnbi1jb250ZW50I3skaW5maXh9LWNlbnRlciAgeyBhbGlnbi1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDsgfVxuICAgIC5hbGlnbi1jb250ZW50I3skaW5maXh9LWJldHdlZW4geyBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFpbXBvcnRhbnQ7IH1cbiAgICAuYWxpZ24tY29udGVudCN7JGluZml4fS1hcm91bmQgIHsgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kICFpbXBvcnRhbnQ7IH1cbiAgICAuYWxpZ24tY29udGVudCN7JGluZml4fS1zdHJldGNoIHsgYWxpZ24tY29udGVudDogc3RyZXRjaCAhaW1wb3J0YW50OyB9XG5cbiAgICAuYWxpZ24tc2VsZiN7JGluZml4fS1hdXRvICAgICB7IGFsaWduLXNlbGY6IGF1dG8gIWltcG9ydGFudDsgfVxuICAgIC5hbGlnbi1zZWxmI3skaW5maXh9LXN0YXJ0ICAgIHsgYWxpZ24tc2VsZjogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XG4gICAgLmFsaWduLXNlbGYjeyRpbmZpeH0tZW5kICAgICAgeyBhbGlnbi1zZWxmOiBmbGV4LWVuZCAhaW1wb3J0YW50OyB9XG4gICAgLmFsaWduLXNlbGYjeyRpbmZpeH0tY2VudGVyICAgeyBhbGlnbi1zZWxmOiBjZW50ZXIgIWltcG9ydGFudDsgfVxuICAgIC5hbGlnbi1zZWxmI3skaW5maXh9LWJhc2VsaW5lIHsgYWxpZ24tc2VsZjogYmFzZWxpbmUgIWltcG9ydGFudDsgfVxuICAgIC5hbGlnbi1zZWxmI3skaW5maXh9LXN0cmV0Y2ggIHsgYWxpZ24tc2VsZjogc3RyZXRjaCAhaW1wb3J0YW50OyB9XG4gIH1cbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuXG5AZWFjaCAkYnJlYWtwb2ludCBpbiBtYXAta2V5cygkZ3JpZC1icmVha3BvaW50cykge1xuICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicmVha3BvaW50KSB7XG4gICAgJGluZml4OiBicmVha3BvaW50LWluZml4KCRicmVha3BvaW50LCAkZ3JpZC1icmVha3BvaW50cyk7XG5cbiAgICAuZmxvYXQjeyRpbmZpeH0tbGVmdCAgeyBmbG9hdDogbGVmdCAhaW1wb3J0YW50OyB9XG4gICAgLmZsb2F0I3skaW5maXh9LXJpZ2h0IHsgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cbiAgICAuZmxvYXQjeyRpbmZpeH0tbm9uZSAgeyBmbG9hdDogbm9uZSAhaW1wb3J0YW50OyB9XG4gIH1cbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuXG5AZWFjaCAkdmFsdWUgaW4gJG92ZXJmbG93cyB7XG4gIC5vdmVyZmxvdy0jeyR2YWx1ZX0geyBvdmVyZmxvdzogJHZhbHVlICFpbXBvcnRhbnQ7IH1cbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuXG4vLyBDb21tb24gdmFsdWVzXG5AZWFjaCAkcG9zaXRpb24gaW4gJHBvc2l0aW9ucyB7XG4gIC5wb3NpdGlvbi0jeyRwb3NpdGlvbn0geyBwb3NpdGlvbjogJHBvc2l0aW9uICFpbXBvcnRhbnQ7IH1cbn1cblxuLy8gU2hvcnRoYW5kXG5cbi5maXhlZC10b3Age1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICR6aW5kZXgtZml4ZWQ7XG59XG5cbi5maXhlZC1ib3R0b20ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICR6aW5kZXgtZml4ZWQ7XG59XG5cbi5zdGlja3ktdG9wIHtcbiAgQHN1cHBvcnRzIChwb3NpdGlvbjogc3RpY2t5KSB7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICB0b3A6IDA7XG4gICAgei1pbmRleDogJHppbmRleC1zdGlja3k7XG4gIH1cbn1cbiIsIi8vXG4vLyBTY3JlZW5yZWFkZXJzXG4vL1xuXG4uc3Itb25seSB7XG4gIEBpbmNsdWRlIHNyLW9ubHkoKTtcbn1cblxuLnNyLW9ubHktZm9jdXNhYmxlIHtcbiAgQGluY2x1ZGUgc3Itb25seS1mb2N1c2FibGUoKTtcbn1cbiIsIi8vIE9ubHkgZGlzcGxheSBjb250ZW50IHRvIHNjcmVlbiByZWFkZXJzXG4vL1xuLy8gU2VlOiBodHRwczovL2ExMXlwcm9qZWN0LmNvbS9wb3N0cy9ob3ctdG8taGlkZS1jb250ZW50L1xuLy8gU2VlOiBodHRwczovL2h1Z29naXJhdWRlbC5jb20vMjAxNi8xMC8xMy9jc3MtaGlkZS1hbmQtc2Vlay9cblxuQG1peGluIHNyLW9ubHkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBib3JkZXI6IDA7XG59XG5cbi8vIFVzZSBpbiBjb25qdW5jdGlvbiB3aXRoIC5zci1vbmx5IHRvIG9ubHkgZGlzcGxheSBjb250ZW50IHdoZW4gaXQncyBmb2N1c2VkLlxuLy9cbi8vIFVzZWZ1bCBmb3IgXCJTa2lwIHRvIG1haW4gY29udGVudFwiIGxpbmtzOyBzZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSLzIwMTMvTk9URS1XQ0FHMjAtVEVDSFMtMjAxMzA5MDUvRzFcbi8vXG4vLyBDcmVkaXQ6IEhUTUw1IEJvaWxlcnBsYXRlXG5cbkBtaXhpbiBzci1vbmx5LWZvY3VzYWJsZSB7XG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBjbGlwOiBhdXRvO1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIH1cbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuXG4uc2hhZG93LXNtIHsgYm94LXNoYWRvdzogJGJveC1zaGFkb3ctc20gIWltcG9ydGFudDsgfVxuLnNoYWRvdyB7IGJveC1zaGFkb3c6ICRib3gtc2hhZG93ICFpbXBvcnRhbnQ7IH1cbi5zaGFkb3ctbGcgeyBib3gtc2hhZG93OiAkYm94LXNoYWRvdy1sZyAhaW1wb3J0YW50OyB9XG4uc2hhZG93LW5vbmUgeyBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IH1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuXG4vLyBXaWR0aCBhbmQgaGVpZ2h0XG5cbkBlYWNoICRwcm9wLCAkYWJicmV2IGluICh3aWR0aDogdywgaGVpZ2h0OiBoKSB7XG4gIEBlYWNoICRzaXplLCAkbGVuZ3RoIGluICRzaXplcyB7XG4gICAgLiN7JGFiYnJldn0tI3skc2l6ZX0geyAjeyRwcm9wfTogJGxlbmd0aCAhaW1wb3J0YW50OyB9XG4gIH1cbn1cblxuLm13LTEwMCB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4ubWgtMTAwIHsgbWF4LWhlaWdodDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbi8vIFZpZXdwb3J0IGFkZGl0aW9uYWwgaGVscGVyc1xuXG4ubWluLXZ3LTEwMCB7IG1pbi13aWR0aDogMTAwdncgIWltcG9ydGFudDsgfVxuLm1pbi12aC0xMDAgeyBtaW4taGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50OyB9XG5cbi52dy0xMDAgeyB3aWR0aDogMTAwdncgIWltcG9ydGFudDsgfVxuLnZoLTEwMCB7IGhlaWdodDogMTAwdmggIWltcG9ydGFudDsgfVxuIiwiLy9cbi8vIFN0cmV0Y2hlZCBsaW5rXG4vL1xuXG4uc3RyZXRjaGVkLWxpbmsge1xuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAxO1xuICAgIC8vIEp1c3QgaW4gY2FzZSBgcG9pbnRlci1ldmVudHM6IG5vbmVgIGlzIHNldCBvbiBhIHBhcmVudFxuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgLy8gSUUxMCBidWdmaXgsIHNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xNjk0Nzk2Ny9pZTEwLWhvdmVyLXBzZXVkby1jbGFzcy1kb2VzbnQtd29yay13aXRob3V0LWJhY2tncm91bmQtY29sb3JcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICB9XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnRcblxuLy8gTWFyZ2luIGFuZCBQYWRkaW5nXG5cbkBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQpIHtcbiAgICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJGJyZWFrcG9pbnQsICRncmlkLWJyZWFrcG9pbnRzKTtcblxuICAgIEBlYWNoICRwcm9wLCAkYWJicmV2IGluIChtYXJnaW46IG0sIHBhZGRpbmc6IHApIHtcbiAgICAgIEBlYWNoICRzaXplLCAkbGVuZ3RoIGluICRzcGFjZXJzIHtcbiAgICAgICAgLiN7JGFiYnJldn0jeyRpbmZpeH0tI3skc2l6ZX0geyAjeyRwcm9wfTogJGxlbmd0aCAhaW1wb3J0YW50OyB9XG4gICAgICAgIC4jeyRhYmJyZXZ9dCN7JGluZml4fS0jeyRzaXplfSxcbiAgICAgICAgLiN7JGFiYnJldn15I3skaW5maXh9LSN7JHNpemV9IHtcbiAgICAgICAgICAjeyRwcm9wfS10b3A6ICRsZW5ndGggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAuI3skYWJicmV2fXIjeyRpbmZpeH0tI3skc2l6ZX0sXG4gICAgICAgIC4jeyRhYmJyZXZ9eCN7JGluZml4fS0jeyRzaXplfSB7XG4gICAgICAgICAgI3skcHJvcH0tcmlnaHQ6ICRsZW5ndGggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAuI3skYWJicmV2fWIjeyRpbmZpeH0tI3skc2l6ZX0sXG4gICAgICAgIC4jeyRhYmJyZXZ9eSN7JGluZml4fS0jeyRzaXplfSB7XG4gICAgICAgICAgI3skcHJvcH0tYm90dG9tOiAkbGVuZ3RoICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLiN7JGFiYnJldn1sI3skaW5maXh9LSN7JHNpemV9LFxuICAgICAgICAuI3skYWJicmV2fXgjeyRpbmZpeH0tI3skc2l6ZX0ge1xuICAgICAgICAgICN7JHByb3B9LWxlZnQ6ICRsZW5ndGggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5lZ2F0aXZlIG1hcmdpbnMgKGUuZy4sIHdoZXJlIGAubWItbjFgIGlzIG5lZ2F0aXZlIHZlcnNpb24gb2YgYC5tYi0xYClcbiAgICBAZWFjaCAkc2l6ZSwgJGxlbmd0aCBpbiAkc3BhY2VycyB7XG4gICAgICBAaWYgJHNpemUgIT0gMCB7XG4gICAgICAgIC5tI3skaW5maXh9LW4jeyRzaXplfSB7IG1hcmdpbjogLSRsZW5ndGggIWltcG9ydGFudDsgfVxuICAgICAgICAubXQjeyRpbmZpeH0tbiN7JHNpemV9LFxuICAgICAgICAubXkjeyRpbmZpeH0tbiN7JHNpemV9IHtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAtJGxlbmd0aCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIC5tciN7JGluZml4fS1uI3skc2l6ZX0sXG4gICAgICAgIC5teCN7JGluZml4fS1uI3skc2l6ZX0ge1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRsZW5ndGggIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgICAubWIjeyRpbmZpeH0tbiN7JHNpemV9LFxuICAgICAgICAubXkjeyRpbmZpeH0tbiN7JHNpemV9IHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAtJGxlbmd0aCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIC5tbCN7JGluZml4fS1uI3skc2l6ZX0sXG4gICAgICAgIC5teCN7JGluZml4fS1uI3skc2l6ZX0ge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtJGxlbmd0aCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU29tZSBzcGVjaWFsIG1hcmdpbiB1dGlsc1xuICAgIC5tI3skaW5maXh9LWF1dG8geyBtYXJnaW46IGF1dG8gIWltcG9ydGFudDsgfVxuICAgIC5tdCN7JGluZml4fS1hdXRvLFxuICAgIC5teSN7JGluZml4fS1hdXRvIHtcbiAgICAgIG1hcmdpbi10b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG4gICAgLm1yI3skaW5maXh9LWF1dG8sXG4gICAgLm14I3skaW5maXh9LWF1dG8ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5tYiN7JGluZml4fS1hdXRvLFxuICAgIC5teSN7JGluZml4fS1hdXRvIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG4gICAgLm1sI3skaW5maXh9LWF1dG8sXG4gICAgLm14I3skaW5maXh9LWF1dG8ge1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuXG4vL1xuLy8gVGV4dFxuLy9cblxuLnRleHQtbW9ub3NwYWNlIHsgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vc3BhY2UgIWltcG9ydGFudDsgfVxuXG4vLyBBbGlnbm1lbnRcblxuLnRleHQtanVzdGlmeSAgeyB0ZXh0LWFsaWduOiBqdXN0aWZ5ICFpbXBvcnRhbnQ7IH1cbi50ZXh0LXdyYXAgICAgIHsgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50OyB9XG4udGV4dC1ub3dyYXAgICB7IHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDsgfVxuLnRleHQtdHJ1bmNhdGUgeyBAaW5jbHVkZSB0ZXh0LXRydW5jYXRlOyB9XG5cbi8vIFJlc3BvbnNpdmUgYWxpZ25tZW50XG5cbkBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQpIHtcbiAgICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJGJyZWFrcG9pbnQsICRncmlkLWJyZWFrcG9pbnRzKTtcblxuICAgIC50ZXh0I3skaW5maXh9LWxlZnQgICB7IHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsgfVxuICAgIC50ZXh0I3skaW5maXh9LXJpZ2h0ICB7IHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7IH1cbiAgICAudGV4dCN7JGluZml4fS1jZW50ZXIgeyB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgfVxuICB9XG59XG5cbi8vIFRyYW5zZm9ybWF0aW9uXG5cbi50ZXh0LWxvd2VyY2FzZSAgeyB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlICFpbXBvcnRhbnQ7IH1cbi50ZXh0LXVwcGVyY2FzZSAgeyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFpbXBvcnRhbnQ7IH1cbi50ZXh0LWNhcGl0YWxpemUgeyB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZSAhaW1wb3J0YW50OyB9XG5cbi8vIFdlaWdodCBhbmQgaXRhbGljc1xuXG4uZm9udC13ZWlnaHQtbGlnaHQgICB7IGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtbGlnaHQgIWltcG9ydGFudDsgfVxuLmZvbnQtd2VpZ2h0LWxpZ2h0ZXIgeyBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWxpZ2h0ZXIgIWltcG9ydGFudDsgfVxuLmZvbnQtd2VpZ2h0LW5vcm1hbCAgeyBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbCAhaW1wb3J0YW50OyB9XG4uZm9udC13ZWlnaHQtYm9sZCAgICB7IGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZCAhaW1wb3J0YW50OyB9XG4uZm9udC13ZWlnaHQtYm9sZGVyICB7IGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZGVyICFpbXBvcnRhbnQ7IH1cbi5mb250LWl0YWxpYyAgICAgICAgIHsgZm9udC1zdHlsZTogaXRhbGljICFpbXBvcnRhbnQ7IH1cblxuLy8gQ29udGV4dHVhbCBjb2xvcnNcblxuLnRleHQtd2hpdGUgeyBjb2xvcjogJHdoaXRlICFpbXBvcnRhbnQ7IH1cblxuQGVhY2ggJGNvbG9yLCAkdmFsdWUgaW4gJHRoZW1lLWNvbG9ycyB7XG4gIEBpbmNsdWRlIHRleHQtZW1waGFzaXMtdmFyaWFudChcIi50ZXh0LSN7JGNvbG9yfVwiLCAkdmFsdWUpO1xufVxuXG4udGV4dC1ib2R5IHsgY29sb3I6ICRib2R5LWNvbG9yICFpbXBvcnRhbnQ7IH1cbi50ZXh0LW11dGVkIHsgY29sb3I6ICR0ZXh0LW11dGVkICFpbXBvcnRhbnQ7IH1cblxuLnRleHQtYmxhY2stNTAgeyBjb2xvcjogcmdiYSgkYmxhY2ssIC41KSAhaW1wb3J0YW50OyB9XG4udGV4dC13aGl0ZS01MCB7IGNvbG9yOiByZ2JhKCR3aGl0ZSwgLjUpICFpbXBvcnRhbnQ7IH1cblxuLy8gTWlzY1xuXG4udGV4dC1oaWRlIHtcbiAgQGluY2x1ZGUgdGV4dC1oaWRlKCRpZ25vcmUtd2FybmluZzogdHJ1ZSk7XG59XG5cbi50ZXh0LWRlY29yYXRpb24tbm9uZSB7IHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi50ZXh0LWJyZWFrIHtcbiAgd29yZC1icmVhazogYnJlYWstd29yZCAhaW1wb3J0YW50OyAvLyBJRSAmIDwgRWRnZSAxOFxuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XG59XG5cbi8vIFJlc2V0XG5cbi50ZXh0LXJlc2V0IHsgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDsgfVxuIiwiLy8gVGV4dCB0cnVuY2F0ZVxuLy8gUmVxdWlyZXMgaW5saW5lLWJsb2NrIG9yIGJsb2NrIGZvciBwcm9wZXIgc3R5bGluZ1xuXG5AbWl4aW4gdGV4dC10cnVuY2F0ZSgpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnRcblxuLy8gVHlwb2dyYXBoeVxuXG5AbWl4aW4gdGV4dC1lbXBoYXNpcy12YXJpYW50KCRwYXJlbnQsICRjb2xvcikge1xuICAjeyRwYXJlbnR9IHtcbiAgICBjb2xvcjogJGNvbG9yICFpbXBvcnRhbnQ7XG4gIH1cbiAgQGlmICRlbXBoYXNpemVkLWxpbmstaG92ZXItZGFya2VuLXBlcmNlbnRhZ2UgIT0gMCB7XG4gICAgYSN7JHBhcmVudH0ge1xuICAgICAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xuICAgICAgICBjb2xvcjogZGFya2VuKCRjb2xvciwgJGVtcGhhc2l6ZWQtbGluay1ob3Zlci1kYXJrZW4tcGVyY2VudGFnZSkgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIENTUyBpbWFnZSByZXBsYWNlbWVudFxuQG1peGluIHRleHQtaGlkZSgkaWdub3JlLXdhcm5pbmc6IGZhbHNlKSB7XG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBmb250LWZhbWlseS1uby1taXNzaW5nLWdlbmVyaWMtZmFtaWx5LWtleXdvcmRcbiAgZm9udDogMC8wIGE7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG5cbiAgQGluY2x1ZGUgZGVwcmVjYXRlKFwiYHRleHQtaGlkZSgpYFwiLCBcInY0LjEuMFwiLCBcInY1XCIsICRpZ25vcmUtd2FybmluZyk7XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnRcblxuLy9cbi8vIFZpc2liaWxpdHkgdXRpbGl0aWVzXG4vL1xuXG4udmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLmludmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50LCBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcblxuLy8gU291cmNlOiBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBQcmludCBzdHlsZXMuXG4vLyBJbmxpbmVkIHRvIGF2b2lkIHRoZSBhZGRpdGlvbmFsIEhUVFAgcmVxdWVzdDpcbi8vIGh0dHBzOi8vd3d3LnBocGllZC5jb20vZGVsYXktbG9hZGluZy15b3VyLXByaW50LWNzcy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBpZiAkZW5hYmxlLXByaW50LXN0eWxlcyB7XG4gIEBtZWRpYSBwcmludCB7XG4gICAgKixcbiAgICAqOjpiZWZvcmUsXG4gICAgKjo6YWZ0ZXIge1xuICAgICAgLy8gQm9vdHN0cmFwIHNwZWNpZmljOyBjb21tZW50IG91dCBgY29sb3JgIGFuZCBgYmFja2dyb3VuZGBcbiAgICAgIC8vY29sb3I6ICRibGFjayAhaW1wb3J0YW50OyAvLyBCbGFjayBwcmludHMgZmFzdGVyXG4gICAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgLy9iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIGEge1xuICAgICAgJjpub3QoLmJ0bikge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBCb290c3RyYXAgc3BlY2lmaWM7IGNvbW1lbnQgdGhlIGZvbGxvd2luZyBzZWxlY3RvciBvdXRcbiAgICAvL2FbaHJlZl06OmFmdGVyIHtcbiAgICAvLyAgY29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7XG4gICAgLy99XG5cbiAgICBhYmJyW3RpdGxlXTo6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgKFwiIGF0dHIodGl0bGUpIFwiKVwiO1xuICAgIH1cblxuICAgIC8vIEJvb3RzdHJhcCBzcGVjaWZpYzsgY29tbWVudCB0aGUgZm9sbG93aW5nIHNlbGVjdG9yIG91dFxuICAgIC8vXG4gICAgLy8gRG9uJ3Qgc2hvdyBsaW5rcyB0aGF0IGFyZSBmcmFnbWVudCBpZGVudGlmaWVycyxcbiAgICAvLyBvciB1c2UgdGhlIGBqYXZhc2NyaXB0OmAgcHNldWRvIHByb3RvY29sXG4gICAgLy9cblxuICAgIC8vYVtocmVmXj1cIiNcIl06OmFmdGVyLFxuICAgIC8vYVtocmVmXj1cImphdmFzY3JpcHQ6XCJdOjphZnRlciB7XG4gICAgLy8gY29udGVudDogXCJcIjtcbiAgICAvL31cblxuICAgIHByZSB7XG4gICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgcHJlLFxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoIHNvbGlkICRncmF5LTUwMDsgLy8gQm9vdHN0cmFwIGN1c3RvbSBjb2RlOyB1c2luZyBgJGJvcmRlci13aWR0aGAgaW5zdGVhZCBvZiAxcHhcbiAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAvL1xuICAgIC8vIFByaW50aW5nIFRhYmxlczpcbiAgICAvLyBodHRwOi8vY3NzLWRpc2N1c3MuaW5jdXRpby5jb20vd2lraS9QcmludGluZ19UYWJsZXNcbiAgICAvL1xuXG4gICAgdGhlYWQge1xuICAgICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwO1xuICAgIH1cblxuICAgIHRyLFxuICAgIGltZyB7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgcCxcbiAgICBoMixcbiAgICBoMyB7XG4gICAgICBvcnBoYW5zOiAzO1xuICAgICAgd2lkb3dzOiAzO1xuICAgIH1cblxuICAgIGgyLFxuICAgIGgzIHtcbiAgICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkO1xuICAgIH1cblxuICAgIC8vIEJvb3RzdHJhcCBzcGVjaWZpYyBjaGFuZ2VzIHN0YXJ0XG5cbiAgICAvLyBTcGVjaWZ5IGEgc2l6ZSBhbmQgbWluLXdpZHRoIHRvIG1ha2UgcHJpbnRpbmcgY2xvc2VyIGFjcm9zcyBicm93c2Vycy5cbiAgICAvLyBXZSBkb24ndCBzZXQgbWFyZ2luIGhlcmUgYmVjYXVzZSBpdCBicmVha3MgYHNpemVgIGluIENocm9tZS4gV2UgYWxzb1xuICAgIC8vIGRvbid0IHVzZSBgIWltcG9ydGFudGAgb24gYHNpemVgIGFzIGl0IGJyZWFrcyBpbiBDaHJvbWUuXG4gICAgQHBhZ2Uge1xuICAgICAgc2l6ZTogJHByaW50LXBhZ2Utc2l6ZTtcbiAgICB9XG4gICAgYm9keSB7XG4gICAgICBtaW4td2lkdGg6ICRwcmludC1ib2R5LW1pbi13aWR0aCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAuY29udGFpbmVyIHtcbiAgICAgIG1pbi13aWR0aDogJHByaW50LWJvZHktbWluLXdpZHRoICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLy8gQm9vdHN0cmFwIGNvbXBvbmVudHNcbiAgICAubmF2YmFyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5iYWRnZSB7XG4gICAgICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGJsYWNrO1xuICAgIH1cblxuICAgIC50YWJsZSB7XG4gICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlICFpbXBvcnRhbnQ7XG5cbiAgICAgIHRkLFxuICAgICAgdGgge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudGFibGUtYm9yZGVyZWQge1xuICAgICAgdGgsXG4gICAgICB0ZCB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRncmF5LTMwMCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC50YWJsZS1kYXJrIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuXG4gICAgICB0aCxcbiAgICAgIHRkLFxuICAgICAgdGhlYWQgdGgsXG4gICAgICB0Ym9keSArIHRib2R5IHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC50YWJsZSAudGhlYWQtZGFyayB0aCB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIGJvcmRlci1jb2xvcjogJHRhYmxlLWJvcmRlci1jb2xvcjtcbiAgICB9XG5cbiAgICAvLyBCb290c3RyYXAgc3BlY2lmaWMgY2hhbmdlcyBlbmRcbiAgfVxufVxuIiwiLy8gc2Nzcy1saW50OmRpc2FibGUgYWxsXHJcbi5hbmltYXRlZCB7XHJcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcclxuICAvLyBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xyXG59XHJcblxyXG4uYW5pbWF0ZWQuaW5maW5pdGUge1xyXG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xyXG59XHJcblxyXG4uYW5pbWF0ZWQuaGluZ2Uge1xyXG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMnM7XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgZmFkZUluIHtcclxuICBmcm9tIHtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG5cclxuICB0byB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gIH1cclxufVxyXG5cclxuLmZhZGVJbiB7XHJcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbjtcclxufVxyXG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQsIHByb3BlcnR5LW5vLXZlbmRvci1wcmVmaXhcclxuLnBzIHtcclxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XHJcbiAgLW1zLXRvdWNoLWFjdGlvbjogYXV0bztcclxuICB0b3VjaC1hY3Rpb246IGF1dG87XHJcbiAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xyXG4gIG92ZXJmbG93LWFuY2hvcjogbm9uZTtcclxufVxyXG5cclxuLnBzX19yYWlsLXgge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3R0b206IDA7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICBoZWlnaHQ6IDE1cHg7XHJcbiAgb3BhY2l0eTogMDtcclxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4ycyBsaW5lYXIsIG9wYWNpdHkgLjJzIGxpbmVhcjtcclxufVxyXG5cclxuLnBzX19yYWlsLXkge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICByaWdodDogMDtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIHdpZHRoOiAxNXB4O1xyXG4gIG9wYWNpdHk6IDA7XHJcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnMgbGluZWFyLCBvcGFjaXR5IC4ycyBsaW5lYXI7XHJcbn1cclxuXHJcbi5wcy0tYWN0aXZlLXggPiAucHNfX3JhaWwteCxcclxuLnBzLS1hY3RpdmUteSA+IC5wc19fcmFpbC15IHtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxufVxyXG5cclxuLnBzOmhvdmVyID4gLnBzX19yYWlsLXgsXHJcbi5wczpob3ZlciA+IC5wc19fcmFpbC15LFxyXG4ucHMtLWZvY3VzID4gLnBzX19yYWlsLXgsXHJcbi5wcy0tZm9jdXMgPiAucHNfX3JhaWwteSxcclxuLnBzLS1zY3JvbGxpbmcteCA+IC5wc19fcmFpbC14LFxyXG4ucHMtLXNjcm9sbGluZy15ID4gLnBzX19yYWlsLXkge1xyXG4gIG9wYWNpdHk6IC42O1xyXG59XHJcblxyXG4ucHNfX3JhaWwteDpob3ZlcixcclxuLnBzX19yYWlsLXk6aG92ZXIsXHJcbi5wc19fcmFpbC14OmZvY3VzLFxyXG4ucHNfX3JhaWwteTpmb2N1cyB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcclxuICBvcGFjaXR5OiAuOTtcclxufVxyXG5cclxuLypcclxuICogU2Nyb2xsYmFyIHRodW1iIHN0eWxlc1xyXG4gKi9cclxuLnBzX190aHVtYi14IHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYm90dG9tOiAycHg7XHJcbiAgaGVpZ2h0OiA2cHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FhYTtcclxuICBib3JkZXItcmFkaXVzOiA2cHg7XHJcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnMgbGluZWFyLCBoZWlnaHQgLjJzIGVhc2UtaW4tb3V0O1xyXG59XHJcblxyXG4ucHNfX3RodW1iLXkge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICByaWdodDogMnB4O1xyXG4gIHdpZHRoOiA2cHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FhYTtcclxuICBib3JkZXItcmFkaXVzOiA2cHg7XHJcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnMgbGluZWFyLCB3aWR0aCAuMnMgZWFzZS1pbi1vdXQ7XHJcbn1cclxuXHJcbi5wc19fcmFpbC14OmhvdmVyID4gLnBzX190aHVtYi14LFxyXG4ucHNfX3JhaWwteDpmb2N1cyA+IC5wc19fdGh1bWIteCB7XHJcbiAgaGVpZ2h0OiAxMXB4O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM5OTk7XHJcbn1cclxuXHJcbi5wc19fcmFpbC15OmhvdmVyID4gLnBzX190aHVtYi15LFxyXG4ucHNfX3JhaWwteTpmb2N1cyA+IC5wc19fdGh1bWIteSB7XHJcbiAgd2lkdGg6IDExcHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk5OTtcclxufVxyXG5cclxuQHN1cHBvcnRzICgtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmUpIHtcclxuICAucHMge1xyXG4gICAgb3ZlcmZsb3c6IGF1dG8gIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuXHJcbkBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSB7XHJcbiAgLnBzIHtcclxuICAgIG92ZXJmbG93OiBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcbiIsIi5hc2lkZS1tZW51IHtcclxuICB6LWluZGV4OiAkemluZGV4LXN0aWNreSAtIDE7XHJcbiAgd2lkdGg6ICRhc2lkZS1tZW51LXdpZHRoO1xyXG4gIGNvbG9yOiAkYXNpZGUtbWVudS1jb2xvcjtcclxuICBiYWNrZ3JvdW5kOiAkYXNpZGUtbWVudS1iZztcclxuICBAaW5jbHVkZSBib3JkZXJzKCRhc2lkZS1tZW51LWJvcmRlcnMpO1xyXG5cclxuICAubmF2LXRhYnMge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xyXG4gICAgLm5hdi1saW5rIHtcclxuICAgICAgcGFkZGluZzogJGFzaWRlLW1lbnUtbmF2LXBhZGRpbmcteSAkYXNpZGUtbWVudS1uYXYtcGFkZGluZy14O1xyXG4gICAgICBjb2xvcjogJGJvZHktY29sb3I7XHJcbiAgICAgIGJvcmRlci10b3A6IDA7XHJcbiAgICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMCk7XHJcbiAgICAgICYuYWN0aXZlIHtcclxuICAgICAgICBjb2xvcjogdGhlbWUtY29sb3IoXCJwcmltYXJ5XCIpO1xyXG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJGJvcmRlci1jb2xvcjtcclxuICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJGJvcmRlci1jb2xvcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLm5hdi1pdGVtOmZpcnN0LWNoaWxkIHtcclxuICAgICAgLm5hdi1saW5rIHtcclxuICAgICAgICBib3JkZXItbGVmdDogMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnRhYi1jb250ZW50IHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgICBib3JkZXI6IDA7XHJcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyO1xyXG5cclxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcclxuICAgICAgd2lkdGg6IDEwcHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcclxuICAgICAgYXBwZWFyYW5jZTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAmOjotd2Via2l0LXNjcm9sbGJhci1idXR0b24geyAgICB9XHJcblxyXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRhc2lkZS1tZW51LWJnLCA1JSk7XHJcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIGRhcmtlbigkYXNpZGUtbWVudS1iZywgNSUpO1xyXG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGRhcmtlbigkYXNpZGUtbWVudS1iZywgNSUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLXBpZWNlIHsgICAgfVxyXG5cclxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcclxuICAgICAgaGVpZ2h0OiA1MHB4O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGFzaWRlLW1lbnUtYmcsIDEwJSk7XHJcbiAgICAgIGJhY2tncm91bmQtY2xpcDogY29udGVudC1ib3g7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICAgIGJvcmRlci13aWR0aDogMXB4IDJweDtcclxuICAgIH1cclxuXHJcbiAgICAudGFiLXBhbmUge1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBJbXBvcnQgQ29yZVVJIGRlZmF1bHQgY29sb3JzXHJcbkBpbXBvcnQgXCJ2YXJpYWJsZXMvY29sb3JzXCI7XHJcblxyXG4vLyBDdXN0b21pemVkIEJvb3RzdHJhcCB2YXJpYWJsZXNcclxuQGltcG9ydCBcInZhcmlhYmxlcy9ib290c3RyYXAvdmFyaWFibGVzXCI7XHJcblxyXG4vLyBJbXBvcnQgQm9vdHN0cmFwIHZhcmlhYmxlcyBhZnRlciBjdXN0b21pemF0aW9uIGZvciB1c2UgYmVsb3dcclxuQGltcG9ydCBcImJvb3RzdHJhcC9mdW5jdGlvbnNcIjsgLy8gZnJvbSBib290c3RyYXAgbm9kZV9tb2R1bGVzXHJcbkBpbXBvcnQgXCJib290c3RyYXAvdmFyaWFibGVzXCI7IC8vIGZyb20gYm9vdHN0cmFwIG5vZGVfbW9kdWxlc1xyXG5cclxuLy8gQ29yZVVJIFZhcmlhYmxlc1xyXG5cclxuLy8gc3R5bGVsaW50LWRpc2FibGVcclxuJGVuYWJsZS1zaWRlYmFyLW5hdi1yb3VuZGVkOiAgICAgICAgICBmYWxzZSAhZGVmYXVsdDtcclxuJGxheW91dC10cmFuc2l0aW9uLXNwZWVkOiAgICAgICAgICAgICAuMjVzICFkZWZhdWx0O1xyXG5cclxuLy8gTmF2YmFyXHJcblxyXG4kbmF2YmFyLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgIDU1cHggIWRlZmF1bHQ7XHJcbiRuYXZiYXItYmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcclxuJG5hdmJhci1ib3JkZXI6IChcclxuICBib3R0b206IChcclxuICAgIHNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxcHgsXHJcbiAgICBzdHlsZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgc29saWQsXHJcbiAgICBjb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGJvcmRlci1jb2xvclxyXG4gIClcclxuKSAgIWRlZmF1bHQ7XHJcbiRuYXZiYXItYnJhbmQtd2lkdGg6ICAgICAgICAgICAgICAgICAgMTU1cHggIWRlZmF1bHQ7XHJcbiRuYXZiYXItYnJhbmQtYmc6ICAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XHJcbiRuYXZiYXItYnJhbmQtYm9yZGVyOiAgICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcclxuXHJcbiRuYXZiYXItYnJhbmQtbWluaW1pemVkLXdpZHRoOiAgICAgICAgNTBweCAhZGVmYXVsdDtcclxuJG5hdmJhci1icmFuZC1taW5pbWl6ZWQtYmc6ICAgICAgICAgICAkbmF2YmFyLWJyYW5kLWJnICFkZWZhdWx0O1xyXG4kbmF2YmFyLWJyYW5kLW1pbmltaXplZC1ib3JkZXI6ICAgICAgICRuYXZiYXItYnJhbmQtYm9yZGVyICFkZWZhdWx0O1xyXG5cclxuJG5hdmJhci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XHJcbiRuYXZiYXItaG92ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgJGdyYXktODAwICFkZWZhdWx0O1xyXG4kbmF2YmFyLWFjdGl2ZS1jb2xvcjogICAgICAgICAgICAgICAgICRncmF5LTgwMCAhZGVmYXVsdDtcclxuJG5hdmJhci1kaXNhYmxlZC1jb2xvcjogICAgICAgICAgICAgICAkZ3JheS0zMDAgIWRlZmF1bHQ7XHJcblxyXG4kbmF2YmFyLXRvZ2dsZXItaWNvbjogICAgICAgICAgICAgICAgIHN0ci1yZXBsYWNlKHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHZpZXdCb3g9JzAgMCAzMCAzMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggc3Ryb2tlPScjeyRuYXZiYXItY29sb3J9JyBzdHJva2Utd2lkdGg9JzIuMjUnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLW1pdGVybGltaXQ9JzEwJyBkPSdNNCA3aDIyTTQgMTVoMjJNNCAyM2gyMicvJTNFJTNDL3N2ZyUzRVwiKSwgXCIjXCIsIFwiJTIzXCIpICFkZWZhdWx0O1xyXG4kbmF2YmFyLXRvZ2dsZXItaWNvbi1ob3ZlcjogICAgICAgICAgIHN0ci1yZXBsYWNlKHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHZpZXdCb3g9JzAgMCAzMCAzMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggc3Ryb2tlPScjeyRuYXZiYXItaG92ZXItY29sb3J9JyBzdHJva2Utd2lkdGg9JzIuMjUnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLW1pdGVybGltaXQ9JzEwJyBkPSdNNCA3aDIyTTQgMTVoMjJNNCAyM2gyMicvJTNFJTNDL3N2ZyUzRVwiKSwgXCIjXCIsIFwiJTIzXCIpICFkZWZhdWx0O1xyXG5cclxuLy8gU2lkZWJhclxyXG5cclxuJHNpZGViYXItd2lkdGg6ICAgICAgICAgICAgICAgICAgICAgICAyMDBweCAhZGVmYXVsdDtcclxuJHNpZGViYXItcGFkZGluZzogICAgICAgICAgICAgICAgICAgICAwICFkZWZhdWx0O1xyXG4kc2lkZWJhci1taW5pbWl6ZWQtd2lkdGg6ICAgICAgICAgICAgIDUwcHggIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLW1pbmltaXplZC1oZWlnaHQ6ICAgICAgICAgICAgJHNpZGViYXItbWluaW1pemVkLXdpZHRoICFkZWZhdWx0O1xyXG4kc2lkZWJhci1jb21wYWN0LXdpZHRoOiAgICAgICAgICAgICAgIDE1MHB4ICFkZWZhdWx0O1xyXG4kc2lkZWJhci1jb21wYWN0LWhlaWdodDogICAgICAgICAgICAgICRzaWRlYmFyLWNvbXBhY3Qtd2lkdGggIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcclxuJHNpZGViYXItYmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAkZ3JheS04MDAgIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLWJvcmRlcnM6ICAgICAgICAgICAgICAgICAgICAgbm9uZSAhZGVmYXVsdDtcclxuJG1vYmlsZS1zaWRlYmFyLXdpZHRoOiAgICAgICAgICAgICAgICAyMjBweCAhZGVmYXVsdDtcclxuXHJcbi8vIFNpZGViYXIgSGVhZGVyXHJcblxyXG4kc2lkZWJhci1oZWFkZXItaGVpZ2h0OiAgICAgICAgICAgICAgIGF1dG8gIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLWhlYWRlci1iZzogICAgICAgICAgICAgICAgICAgcmdiYSgwLDAsMCwuMikgIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLWhlYWRlci1wYWRkaW5nLXk6ICAgICAgICAgICAgLjc1cmVtICFkZWZhdWx0O1xyXG4kc2lkZWJhci1oZWFkZXItcGFkZGluZy14OiAgICAgICAgICAgIDFyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLyBTaWRlYmFyIEZvcm1cclxuXHJcbiRzaWRlYmFyLWZvcm0tYm9yZGVyOiAgICAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcclxuJHNpZGViYXItZm9ybS1iZzogICAgICAgICAgICAgICAgICAgICBkYXJrZW4oJHNpZGViYXItYmcsMTAlKSAhZGVmYXVsdDtcclxuJHNpZGViYXItZm9ybS1jb2xvcjogICAgICAgICAgICAgICAgICAjZmZmICFkZWZhdWx0O1xyXG4kc2lkZWJhci1mb3JtLXBsYWNlaG9sZGVyLWNvbG9yOiAgICAgIHJnYmEoMjU1LDI1NSwyNTUsLjcpICFkZWZhdWx0O1xyXG5cclxuLy8gU2lkZWJhciBOYXZpZ2F0aW9uXHJcblxyXG4kc2lkZWJhci1uYXYtY29sb3I6ICAgICAgICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLW5hdi10aXRsZS1wYWRkaW5nLXk6ICAgICAgICAgLjc1cmVtICFkZWZhdWx0O1xyXG4kc2lkZWJhci1uYXYtdGl0bGUtcGFkZGluZy14OiAgICAgICAgIDFyZW0gIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLW5hdi10aXRsZS1jb2xvcjogICAgICAgICAgICAgJGdyYXktMjAwICFkZWZhdWx0O1xyXG4kc2lkZWJhci1uYXYtbGluay1wYWRkaW5nLXk6ICAgICAgICAgIC43NXJlbSAhZGVmYXVsdDtcclxuJHNpZGViYXItbmF2LWxpbmstcGFkZGluZy14OiAgICAgICAgICAxcmVtICFkZWZhdWx0O1xyXG4kc2lkZWJhci1uYXYtbGluay1jb2xvcjogICAgICAgICAgICAgICNmZmYgIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLW5hdi1saW5rLWJnOiAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLW5hdi1saW5rLWljb24tY29sb3I6ICAgICAgICAgJGdyYXktNjAwICFkZWZhdWx0O1xyXG4kc2lkZWJhci1uYXYtbGluay1ib3JkZXJzOiAgICAgICAgICAgIDAgIWRlZmF1bHQ7XHJcblxyXG4kc2lkZWJhci1uYXYtbGluay1ob3Zlci1jb2xvcjogICAgICAgICNmZmYgIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLW5hdi1saW5rLWhvdmVyLWJnOiAgICAgICAgICAgdGhlbWUtY29sb3IoXCJwcmltYXJ5XCIpICFkZWZhdWx0O1xyXG4kc2lkZWJhci1uYXYtbGluay1ob3Zlci1pY29uLWNvbG9yOiAgICNmZmYgIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLW5hdi1saW5rLWhvdmVyLWJvcmRlcnM6ICAgICAgMCAhZGVmYXVsdDtcclxuXHJcbiRzaWRlYmFyLW5hdi1saW5rLWFjdGl2ZS1jb2xvcjogICAgICAgI2ZmZiAhZGVmYXVsdDtcclxuJHNpZGViYXItbmF2LWxpbmstYWN0aXZlLWJnOiAgICAgICAgICBsaWdodGVuKCRzaWRlYmFyLWJnLCA1JSkgIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLW5hdi1saW5rLWFjdGl2ZS1pY29uLWNvbG9yOiAgdGhlbWUtY29sb3IoXCJwcmltYXJ5XCIpICFkZWZhdWx0O1xyXG4kc2lkZWJhci1uYXYtbGluay1hY3RpdmUtYm9yZGVyczogICAgIDAgIWRlZmF1bHQ7XHJcblxyXG4kc2lkZWJhci1uYXYtbGluay1kaXNhYmxlZC1jb2xvcjogICAgICAgZGFya2VuKCNmZmYsIDMwJSkgIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLW5hdi1saW5rLWRpc2FibGVkLWJnOiAgICAgICAgICAkc2lkZWJhci1iZyAhZGVmYXVsdDtcclxuJHNpZGViYXItbmF2LWxpbmstZGlzYWJsZWQtaWNvbi1jb2xvcjogICRzaWRlYmFyLW5hdi1saW5rLWljb24tY29sb3IgIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLW5hdi1saW5rLWRpc2FibGVkLWJvcmRlcnM6ICAgICAwICFkZWZhdWx0O1xyXG5cclxuJHNpZGViYXItbmF2LWRyb3Bkb3duLWNvbG9yOiAgICAgICAgICAjZmZmICFkZWZhdWx0O1xyXG4kc2lkZWJhci1uYXYtZHJvcGRvd24tYmc6ICAgICAgICAgICAgIHJnYmEoMCwwLDAsLjIpICFkZWZhdWx0O1xyXG4kc2lkZWJhci1uYXYtZHJvcGRvd24tYm9yZGVyczogICAgICAgIDAgIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLW5hdi1kcm9wZG93bi1pbmRpY2F0b3ItY29sb3I6JGdyYXktNjAwICFkZWZhdWx0O1xyXG4kc2lkZWJhci1uYXYtZHJvcGRvd24taW5kaWNhdG9yOiAgICAgIHN0ci1yZXBsYWNlKHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDExIDE0JyUzRSUzQ3BhdGggZmlsbD0nI3skc2lkZWJhci1uYXYtZHJvcGRvd24taW5kaWNhdG9yLWNvbG9yfScgZD0nTTkuMTQ4IDIuMzUybC00LjE0OCA0LjE0OCA0LjE0OCA0LjE0OHEwLjE0OCAwLjE0OCAwLjE0OCAwLjM1MnQtMC4xNDggMC4zNTJsLTEuMjk3IDEuMjk3cS0wLjE0OCAwLjE0OC0wLjM1MiAwLjE0OHQtMC4zNTItMC4xNDhsLTUuNzk3LTUuNzk3cS0wLjE0OC0wLjE0OC0wLjE0OC0wLjM1MnQwLjE0OC0wLjM1Mmw1Ljc5Ny01Ljc5N3EwLjE0OC0wLjE0OCAwLjM1Mi0wLjE0OHQwLjM1MiAwLjE0OGwxLjI5NyAxLjI5N3EwLjE0OCAwLjE0OCAwLjE0OCAwLjM1MnQtMC4xNDggMC4zNTJ6Jy8lM0UlM0Mvc3ZnJTNFXCIpLCBcIiNcIiwgXCIlMjNcIikgIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLW5hdi1kcm9wZG93bi1pbmRpY2F0b3ItaG92ZXItY29sb3I6JHNpZGViYXItbmF2LWxpbmstaG92ZXItY29sb3I7XHJcbiRzaWRlYmFyLW5hdi1kcm9wZG93bi1pbmRpY2F0b3ItaG92ZXI6c3RyLXJlcGxhY2UodXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTEgMTQnJTNFJTNDcGF0aCBmaWxsPScjeyRzaWRlYmFyLW5hdi1kcm9wZG93bi1pbmRpY2F0b3ItaG92ZXItY29sb3J9JyBkPSdNOS4xNDggMi4zNTJsLTQuMTQ4IDQuMTQ4IDQuMTQ4IDQuMTQ4cTAuMTQ4IDAuMTQ4IDAuMTQ4IDAuMzUydC0wLjE0OCAwLjM1MmwtMS4yOTcgMS4yOTdxLTAuMTQ4IDAuMTQ4LTAuMzUyIDAuMTQ4dC0wLjM1Mi0wLjE0OGwtNS43OTctNS43OTdxLTAuMTQ4LTAuMTQ4LTAuMTQ4LTAuMzUydDAuMTQ4LTAuMzUybDUuNzk3LTUuNzk3cTAuMTQ4LTAuMTQ4IDAuMzUyLTAuMTQ4dDAuMzUyIDAuMTQ4bDEuMjk3IDEuMjk3cTAuMTQ4IDAuMTQ4IDAuMTQ4IDAuMzUydC0wLjE0OCAwLjM1MnonLyUzRSUzQy9zdmclM0VcIiksIFwiI1wiLCBcIiUyM1wiKSAhZGVmYXVsdDtcclxuXHJcbi8vIFNpZGViYXIgRm9vdGVyXHJcblxyXG4kc2lkZWJhci1mb290ZXItaGVpZ2h0OiAgICAgICAgICAgICAgIGF1dG8gIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLWZvb3Rlci1iZzogICAgICAgICAgICAgICAgICAgcmdiYSgwLDAsMCwuMikgIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLWZvb3Rlci1wYWRkaW5nLXk6ICAgICAgICAgICAgLjc1cmVtICFkZWZhdWx0O1xyXG4kc2lkZWJhci1mb290ZXItcGFkZGluZy14OiAgICAgICAgICAgIDFyZW0gIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLWZvb3Rlci1ib3JkZXJzOiAgICAgICAgICAgICAgMCAhZGVmYXVsdDtcclxuXHJcbi8vIFNpZGViYXIgTWluaW1pemVyXHJcblxyXG4kc2lkZWJhci1taW5pbWl6ZXItaGVpZ2h0OiAgICAgICAgICAgIDUwcHggIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLW1pbmltaXplci1iZzogICAgICAgICAgICAgICAgcmdiYSgwLDAsMCwuMikgIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLW1pbmltaXplci1ib3JkZXJzOiAgICAgICAgICAgMCAhZGVmYXVsdDtcclxuJHNpZGViYXItbWluaW1pemVyLWluZGljYXRvci1jb2xvcjogICAkZ3JheS02MDAgIWRlZmF1bHQ7XHJcbiRzaWRlYmFyLW1pbmltaXplci1pbmRpY2F0b3I6ICAgICAgICAgc3RyLXJlcGxhY2UodXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTEgMTQnJTNFJTNDcGF0aCBmaWxsPScjeyRzaWRlYmFyLW1pbmltaXplci1pbmRpY2F0b3ItY29sb3J9JyBkPSdNOS4xNDggMi4zNTJsLTQuMTQ4IDQuMTQ4IDQuMTQ4IDQuMTQ4cTAuMTQ4IDAuMTQ4IDAuMTQ4IDAuMzUydC0wLjE0OCAwLjM1MmwtMS4yOTcgMS4yOTdxLTAuMTQ4IDAuMTQ4LTAuMzUyIDAuMTQ4dC0wLjM1Mi0wLjE0OGwtNS43OTctNS43OTdxLTAuMTQ4LTAuMTQ4LTAuMTQ4LTAuMzUydDAuMTQ4LTAuMzUybDUuNzk3LTUuNzk3cTAuMTQ4LTAuMTQ4IDAuMzUyLTAuMTQ4dDAuMzUyIDAuMTQ4bDEuMjk3IDEuMjk3cTAuMTQ4IDAuMTQ4IDAuMTQ4IDAuMzUydC0wLjE0OCAwLjM1MnonLyUzRSUzQy9zdmclM0VcIiksIFwiI1wiLCBcIiUyM1wiKSAhZGVmYXVsdDtcclxuJHNpZGViYXItbWluaW1pemVyLWhvdmVyLWJnOiAgICAgICAgICByZ2JhKDAsMCwwLC4zKSAhZGVmYXVsdDtcclxuJHNpZGViYXItbWluaW1pemVyLWhvdmVyLWluZGljYXRvci1jb2xvcjokc2lkZWJhci1uYXYtbGluay1ob3Zlci1jb2xvciAhZGVmYXVsdDtcclxuJHNpZGViYXItbWluaW1pemVyLWhvdmVyLWluZGljYXRvcjogICBzdHItcmVwbGFjZSh1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxMSAxNCclM0UlM0NwYXRoIGZpbGw9JyN7JHNpZGViYXItbWluaW1pemVyLWhvdmVyLWluZGljYXRvci1jb2xvcn0nIGQ9J005LjE0OCAyLjM1MmwtNC4xNDggNC4xNDggNC4xNDggNC4xNDhxMC4xNDggMC4xNDggMC4xNDggMC4zNTJ0LTAuMTQ4IDAuMzUybC0xLjI5NyAxLjI5N3EtMC4xNDggMC4xNDgtMC4zNTIgMC4xNDh0LTAuMzUyLTAuMTQ4bC01Ljc5Ny01Ljc5N3EtMC4xNDgtMC4xNDgtMC4xNDgtMC4zNTJ0MC4xNDgtMC4zNTJsNS43OTctNS43OTdxMC4xNDgtMC4xNDggMC4zNTItMC4xNDh0MC4zNTIgMC4xNDhsMS4yOTcgMS4yOTdxMC4xNDggMC4xNDggMC4xNDggMC4zNTJ0LTAuMTQ4IDAuMzUyeicvJTNFJTNDL3N2ZyUzRVwiKSwgXCIjXCIsIFwiJTIzXCIpICFkZWZhdWx0O1xyXG5cclxuLy8gQnJlYWRjcnVtYlxyXG4kYnJlYWRjcnVtYi1ib3JkZXJzOiAoXHJcbiAgYm90dG9tOiAoXHJcbiAgICBzaXplOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMXB4LFxyXG4gICAgc3R5bGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvbGlkLFxyXG4gICAgY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRib3JkZXItY29sb3JcclxuICApXHJcbikgIWRlZmF1bHQ7XHJcblxyXG4vLyBCcmVhZGNydW1iIG1lbnVcclxuJGJyZWFkY3J1bWItbWVudS1jb2xvcjogICAgICAgICAgICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XHJcblxyXG4vLyBBc2lkZVxyXG5cclxuJGFzaWRlLW1lbnUtd2lkdGg6ICAgICAgICAgICAgICAgICAgICAyNTBweCAhZGVmYXVsdDtcclxuJGFzaWRlLW1lbnUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAkZ3JheS04MDAgIWRlZmF1bHQ7XHJcbiRhc2lkZS1tZW51LWJnOiAgICAgICAgICAgICAgICAgICAgICAgI2ZmZiAhZGVmYXVsdDtcclxuJGFzaWRlLW1lbnUtYm9yZGVyczogKFxyXG4gIGxlZnQ6IChcclxuICAgIHNpemU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxcHgsXHJcbiAgICBzdHlsZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgc29saWQsXHJcbiAgICBjb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGJvcmRlci1jb2xvclxyXG4gIClcclxuKSAhZGVmYXVsdDtcclxuXHJcbiRhc2lkZS1tZW51LW5hdi1wYWRkaW5nLXk6ICAgICAgICAgICAgLjc1cmVtICFkZWZhdWx0O1xyXG4kYXNpZGUtbWVudS1uYXYtcGFkZGluZy14OiAgICAgICAgICAgIDFyZW0gIWRlZmF1bHQ7XHJcblxyXG4vLyBGb290ZXJcclxuXHJcbiRmb290ZXItaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgNTBweCAhZGVmYXVsdDtcclxuJGZvb3Rlci1iZzogICAgICAgICAgICAgICAgICAgICAgICAgICAkZ3JheS0xMDAgIWRlZmF1bHQ7XHJcbiRmb290ZXItY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgJGJvZHktY29sb3IgIWRlZmF1bHQ7XHJcbiRmb290ZXItYm9yZGVyczogKFxyXG4gIHRvcDogKFxyXG4gICAgc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDFweCxcclxuICAgIHN0eWxlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2xpZCxcclxuICAgIGNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYm9yZGVyLWNvbG9yXHJcbiAgKVxyXG4pICFkZWZhdWx0O1xyXG5cclxuLy8gQXZhdGFyc1xyXG5cclxuJGF2YXRhci13aWR0aDogICAgICAgICAgICAgICAgICAgICAgICAzNnB4ICFkZWZhdWx0O1xyXG4kYXZhdGFyLXN0YXR1cy13aWR0aDogICAgICAgICAgICAgICAgIDEwcHggIWRlZmF1bHQ7XHJcblxyXG4kYXZhdGFyLWxnLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgIDcycHggIWRlZmF1bHQ7XHJcbiRhdmF0YXItbGctc3RhdHVzLXdpZHRoOiAgICAgICAgICAgICAgMTJweCAhZGVmYXVsdDtcclxuXHJcbiRhdmF0YXItc20td2lkdGg6ICAgICAgICAgICAgICAgICAgICAgMjRweCAhZGVmYXVsdDtcclxuJGF2YXRhci1zbS1zdGF0dXMtd2lkdGg6ICAgICAgICAgICAgICA4cHggIWRlZmF1bHQ7XHJcblxyXG4kYXZhdGFyLXhzLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgIDIwcHggIWRlZmF1bHQ7XHJcbiRhdmF0YXIteHMtc3RhdHVzLXdpZHRoOiAgICAgICAgICAgICAgOHB4ICFkZWZhdWx0O1xyXG5cclxuJGF2YXRhci1zdGF0dXMtYm9yZGVyLWNvbG9yOiAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XHJcblxyXG4vLyBDYXJkc1xyXG5cclxuJGNhcmQtaWNvbi1iZzogICAgICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudCAhZGVmYXVsdDtcclxuJGNhcmQtaWNvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgICAkYm9keS1jb2xvciAhZGVmYXVsdDtcclxuXHJcbi8vIFN3aXRjaGVzXHJcblxyXG4kc3dpdGNoLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgIDQwcHggIWRlZmF1bHQ7XHJcbiRzd2l0Y2gtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICAgMjZweCAhZGVmYXVsdDtcclxuJHN3aXRjaC1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgICAxMHB4ICFkZWZhdWx0O1xyXG5cclxuJHN3aXRjaC1sZy13aWR0aDogICAgICAgICAgICAgICAgICAgICA0OHB4ICFkZWZhdWx0O1xyXG4kc3dpdGNoLWxnLWhlaWdodDogICAgICAgICAgICAgICAgICAgIDMwcHggIWRlZmF1bHQ7XHJcbiRzd2l0Y2gtbGctZm9udC1zaXplOiAgICAgICAgICAgICAgICAgMTJweCAhZGVmYXVsdDtcclxuXHJcbiRzd2l0Y2gtc20td2lkdGg6ICAgICAgICAgICAgICAgICAgICAgMzJweCAhZGVmYXVsdDtcclxuJHN3aXRjaC1zbS1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgICAyMnB4ICFkZWZhdWx0O1xyXG4kc3dpdGNoLXNtLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgIDhweCAhZGVmYXVsdDtcclxuXHJcbiRzd2l0Y2gtbGFiZWwtd2lkdGg6ICAgICAgICAgICAgICAgICAgNDhweCAhZGVmYXVsdDtcclxuJHN3aXRjaC1sYWJlbC1sZy13aWR0aDogICAgICAgICAgICAgICA1NnB4ICFkZWZhdWx0O1xyXG4kc3dpdGNoLWxhYmVsLXNtLXdpZHRoOiAgICAgICAgICAgICAgIDQwcHggIWRlZmF1bHQ7XHJcblxyXG4kc3dpdGNoLWhhbmRsZS1tYXJnaW46ICAgICAgICAgICAgICAgIDJweCAhZGVmYXVsdDtcclxuXHJcbiRzd2l0Y2gtYmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJHdoaXRlICFkZWZhdWx0O1xyXG4kc3dpdGNoLWhhbmRsZS1iZzogICAgICAgICAgICAgICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcclxuXHJcbi8vIExpc3QgZ3JvdXAgd2l0aCBhY2NlbnRcclxuJGxpc3QtZ3JvdXAtYWNjZW50LWRpdmlkZXItYmc6ICAgICAgICAkZ3JheS0yMDAgIWRlZmF1bHQ7XHJcblxyXG4vLyBDdXJzb3JcclxuJGN1cnNvci1kaXNhYmxlZDogZGVmYXVsdCAhZGVmYXVsdDtcclxuXHJcbi8vIEJyZWFrcG9pbnRzIGZvciBtb2JpbGVcclxuJGJyZWFrcG9pbnQtbW9iaWxlLXVwOiBsZyAhZGVmYXVsdDtcclxuJGJyZWFrcG9pbnQtbW9iaWxlLWRvd246IG1kICFkZWZhdWx0O1xyXG4iLCJAbWl4aW4gYm9yZGVycygkYm9yZGVycykge1xyXG4gIEBlYWNoICRib3JkZXIgaW4gJGJvcmRlcnMge1xyXG4gICAgJGRpcmVjdGlvbjogbnRoKCRib3JkZXIsIDEpO1xyXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gXCJhbGxcIiB7XHJcbiAgICAgICRzaXplOiBtYXAtZ2V0KG1hcC1nZXQoJGJvcmRlcnMsICRkaXJlY3Rpb24pLCBzaXplKTtcclxuICAgICAgJHN0eWxlOiBtYXAtZ2V0KG1hcC1nZXQoJGJvcmRlcnMsICRkaXJlY3Rpb24pLCBzdHlsZSk7XHJcbiAgICAgICRjb2xvcjogbWFwLWdldChtYXAtZ2V0KCRib3JkZXJzLCAkZGlyZWN0aW9uKSwgY29sb3IpO1xyXG4gICAgICBib3JkZXI6ICRzaXplICRzdHlsZSAkY29sb3I7XHJcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJ0b3BcIiB7XHJcbiAgICAgICRzaXplOiBtYXAtZ2V0KG1hcC1nZXQoJGJvcmRlcnMsICRkaXJlY3Rpb24pLCBzaXplKTtcclxuICAgICAgJHN0eWxlOiBtYXAtZ2V0KG1hcC1nZXQoJGJvcmRlcnMsICRkaXJlY3Rpb24pLCBzdHlsZSk7XHJcbiAgICAgICRjb2xvcjogbWFwLWdldChtYXAtZ2V0KCRib3JkZXJzLCAkZGlyZWN0aW9uKSwgY29sb3IpO1xyXG4gICAgICBib3JkZXItdG9wOiAkc2l6ZSAkc3R5bGUgJGNvbG9yO1xyXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IFwicmlnaHRcIiB7XHJcbiAgICAgICRzaXplOiBtYXAtZ2V0KG1hcC1nZXQoJGJvcmRlcnMsICRkaXJlY3Rpb24pLCBzaXplKTtcclxuICAgICAgJHN0eWxlOiBtYXAtZ2V0KG1hcC1nZXQoJGJvcmRlcnMsICRkaXJlY3Rpb24pLCBzdHlsZSk7XHJcbiAgICAgICRjb2xvcjogbWFwLWdldChtYXAtZ2V0KCRib3JkZXJzLCAkZGlyZWN0aW9uKSwgY29sb3IpO1xyXG4gICAgICBib3JkZXItcmlnaHQ6ICRzaXplICRzdHlsZSAkY29sb3I7XHJcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJib3R0b21cIiB7XHJcbiAgICAgICRzaXplOiBtYXAtZ2V0KG1hcC1nZXQoJGJvcmRlcnMsICRkaXJlY3Rpb24pLCBzaXplKTtcclxuICAgICAgJHN0eWxlOiBtYXAtZ2V0KG1hcC1nZXQoJGJvcmRlcnMsICRkaXJlY3Rpb24pLCBzdHlsZSk7XHJcbiAgICAgICRjb2xvcjogbWFwLWdldChtYXAtZ2V0KCRib3JkZXJzLCAkZGlyZWN0aW9uKSwgY29sb3IpO1xyXG4gICAgICBib3JkZXItYm90dG9tOiAkc2l6ZSAkc3R5bGUgJGNvbG9yO1xyXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IFwibGVmdFwiIHtcclxuICAgICAgJHNpemU6IG1hcC1nZXQobWFwLWdldCgkYm9yZGVycywgJGRpcmVjdGlvbiksIHNpemUpO1xyXG4gICAgICAkc3R5bGU6IG1hcC1nZXQobWFwLWdldCgkYm9yZGVycywgJGRpcmVjdGlvbiksIHN0eWxlKTtcclxuICAgICAgJGNvbG9yOiBtYXAtZ2V0KG1hcC1nZXQoJGJvcmRlcnMsICRkaXJlY3Rpb24pLCBjb2xvcik7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiAkc2l6ZSAkc3R5bGUgJGNvbG9yO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIuYXZhdGFyIHtcclxuICBAaW5jbHVkZSBhdmF0YXIoJGF2YXRhci13aWR0aCwkYXZhdGFyLXN0YXR1cy13aWR0aCk7XHJcblxyXG4gID4gaW1nIHtcclxuICAgIEBleHRlbmQgLmltZy1hdmF0YXI7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogaW5pdGlhbDtcclxuICB9XHJcbn1cclxuXHJcbi5hdmF0YXItbGcge1xyXG4gIEBpbmNsdWRlIGF2YXRhcigkYXZhdGFyLWxnLXdpZHRoLCRhdmF0YXItbGctc3RhdHVzLXdpZHRoKTtcclxufVxyXG5cclxuLmF2YXRhci1zbSB7XHJcbiAgQGluY2x1ZGUgYXZhdGFyKCRhdmF0YXItc20td2lkdGgsJGF2YXRhci1zbS1zdGF0dXMtd2lkdGgpO1xyXG59XHJcblxyXG4uYXZhdGFyLXhzIHtcclxuICBAaW5jbHVkZSBhdmF0YXIoJGF2YXRhci14cy13aWR0aCwkYXZhdGFyLXhzLXN0YXR1cy13aWR0aCk7XHJcbn1cclxuXHJcbi5hdmF0YXJzLXN0YWNrIHtcclxuXHJcbiAgLmF2YXRhciB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IC0gKCRhdmF0YXItd2lkdGggLyAyKTtcclxuICAgIHRyYW5zaXRpb246IG1hcmdpbi1yaWdodCAkbGF5b3V0LXRyYW5zaXRpb24tc3BlZWQ7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5hdmF0YXItbGcge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAtICgkYXZhdGFyLWxnLXdpZHRoIC8gMik7XHJcbiAgfVxyXG5cclxuICAuYXZhdGFyLXNtIHtcclxuICAgIG1hcmdpbi1yaWdodDogLSAoJGF2YXRhci1zbS13aWR0aCAvIDIpO1xyXG4gIH1cclxuXHJcbiAgLmF2YXRhci14cyB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IC0gKCRhdmF0YXIteHMtd2lkdGggLyAyKTtcclxuICB9XHJcbn1cclxuIiwiQG1peGluIGF2YXRhcigkd2lkdGgsICRzdGF0dXMtd2lkdGgpIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHdpZHRoOiAkd2lkdGg7XHJcbiAgaGVpZ2h0OiAkd2lkdGg7XHJcblxyXG4gIC5hdmF0YXItc3RhdHVzIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB3aWR0aDogJHN0YXR1cy13aWR0aDtcclxuICAgIGhlaWdodDogJHN0YXR1cy13aWR0aDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRhdmF0YXItc3RhdHVzLWJvcmRlci1jb2xvcjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwZW07XHJcbiAgfVxyXG59XHJcbiIsIi5iYWRnZS1waWxsIHtcclxuICBib3JkZXItcmFkaXVzOiAkYmFkZ2UtcGlsbC1ib3JkZXItcmFkaXVzO1xyXG59XHJcbiIsIi5icmVhZGNydW1iLW1lbnUge1xyXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICB9XHJcblxyXG4gIC5idG4tZ3JvdXAge1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICB9XHJcblxyXG4gIC5idG4ge1xyXG4gICAgcGFkZGluZzogMCAkaW5wdXQtYnRuLXBhZGRpbmcteDtcclxuICAgIGNvbG9yOiAkYnJlYWRjcnVtYi1tZW51LWNvbG9yO1xyXG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgIGJvcmRlcjogMDtcclxuXHJcbiAgICAmOmhvdmVyLFxyXG4gICAgJi5hY3RpdmUge1xyXG4gICAgICBjb2xvcjogJGJvZHktY29sb3I7XHJcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm9wZW4ge1xyXG4gICAgLmJ0biB7XHJcbiAgICAgIGNvbG9yOiAkYm9keS1jb2xvcjtcclxuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuZHJvcGRvd24tbWVudSB7XHJcbiAgICBtaW4td2lkdGg6IDE4MHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xyXG4gIH1cclxufVxyXG5cclxuLy8gUmlnaHQtdG8tTGVmdCBTdXBwb3J0XHJcbipbZGlyPVwicnRsXCJdIHtcclxuICAuYnJlYWRjcnVtYi1tZW51IHtcclxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICAgIG1hcmdpbi1sZWZ0OiBpbml0aWFsO1xyXG4gIH1cclxufVxyXG4iLCIuYnJlYWRjcnVtYiB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGJyZWFkY3J1bWItYm9yZGVyLXJhZGl1cyk7XHJcbiAgQGluY2x1ZGUgYm9yZGVycygkYnJlYWRjcnVtYi1ib3JkZXJzKTtcclxufVxyXG5cclxuKltkaXI9XCJydGxcIl0ge1xyXG4gIC5icmVhZGNydW1iLWl0ZW06OmJlZm9yZSB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAkYnJlYWRjcnVtYi1pdGVtLXBhZGRpbmc7XHJcbiAgfVxyXG4gIC5icmVhZGNydW1iLWl0ZW0ge1xyXG4gICAgcGFkZGluZy1yaWdodDogJGJyZWFkY3J1bWItaXRlbS1wYWRkaW5nO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gIH1cclxufVxyXG4iLCIvL1xyXG4vLyBCYXNlIHN0eWxlc1xyXG4vL1xyXG5cclxuLmJyYW5kLWNhcmQge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgbWluLXdpZHRoOiAwO1xyXG4gIG1hcmdpbi1ib3R0b206ICgkc3BhY2VyICogMS41KTtcclxuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNhcmQtYmc7XHJcbiAgYmFja2dyb3VuZC1jbGlwOiBib3JkZXItYm94O1xyXG4gIGJvcmRlcjogJGNhcmQtYm9yZGVyLXdpZHRoIHNvbGlkICRjYXJkLWJvcmRlci1jb2xvcjtcclxuICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRjYXJkLWJvcmRlci1yYWRpdXMpO1xyXG59XHJcblxyXG4uYnJhbmQtY2FyZC1oZWFkZXIge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgaGVpZ2h0OiA2cmVtO1xyXG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGNhcmQtYm9yZGVyLXJhZGl1cyAkY2FyZC1ib3JkZXItcmFkaXVzIDAgMCk7XHJcblxyXG4gIGkge1xyXG4gICAgZm9udC1zaXplOiAycmVtO1xyXG4gICAgY29sb3I6ICNmZmY7XHJcbiAgfVxyXG5cclxuICAuY2hhcnQtd3JhcHBlciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgfVxyXG59XHJcblxyXG4uYnJhbmQtY2FyZC1ib2R5IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgcGFkZGluZzogJGNhcmQtc3BhY2VyLXkgMDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gID4gKiB7XHJcbiAgICBmbGV4OiAxO1xyXG4gICAgcGFkZGluZzogKCRjYXJkLXNwYWNlci15ICogLjI1KSAwO1xyXG4gIH1cclxuXHJcbiAgPiAqOm5vdCg6bGFzdC1jaGlsZCkge1xyXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICB9XHJcbn1cclxuXHJcbi8vIHN0eWxlbGludC1kaXNhYmxlIHNlbGVjdG9yLW1heC11bml2ZXJzYWxcclxuLy8gUmlnaHQtdG8tTGVmdCBTdXBwb3J0XHJcbipbZGlyPVwicnRsXCJdIHtcclxuICAuYnJhbmQtY2FyZC1ib2R5IHtcclxuICAgID4gKjpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xyXG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vXHJcbi8vIEJhc2Ugc3R5bGVzXHJcbi8vXHJcblxyXG4uYnRuLWJyYW5kIHtcclxuICBib3JkZXI6IDA7XHJcbiAgaSB7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICB3aWR0aDogKCgkYnRuLXBhZGRpbmcteSAqIDIpICsgKCRmb250LXNpemUtYmFzZSAqICRidG4tbGluZS1oZWlnaHQpKTtcclxuICAgIG1hcmdpbjogKC0gJGJ0bi1wYWRkaW5nLXkpICgtICRidG4tcGFkZGluZy14KTtcclxuICAgIGxpbmUtaGVpZ2h0OiAoKCRidG4tcGFkZGluZy15ICogMikgKyAoJGZvbnQtc2l6ZS1iYXNlICogJGJ0bi1saW5lLWhlaWdodCkpO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAuMik7XHJcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRidG4tYm9yZGVyLXJhZGl1cyk7XHJcbiAgfVxyXG5cclxuICBpICsgc3BhbiB7XHJcbiAgICBtYXJnaW4tbGVmdDogKCRidG4tcGFkZGluZy14ICogMik7XHJcbiAgfVxyXG5cclxuICAmLmJ0bi1sZyB7XHJcbiAgICBpIHtcclxuICAgICAgd2lkdGg6ICgoJGJ0bi1wYWRkaW5nLXktbGcgKiAyKSArICgkZm9udC1zaXplLWxnICogJGJ0bi1saW5lLWhlaWdodC1sZykpO1xyXG4gICAgICBtYXJnaW46ICgtICRidG4tcGFkZGluZy15LWxnKSAoLSAkYnRuLXBhZGRpbmcteC1sZyk7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAoKCRidG4tcGFkZGluZy15LWxnICogMikgKyAoJGZvbnQtc2l6ZS1sZyAqICRidG4tbGluZS1oZWlnaHQtbGcpKTtcclxuICAgICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkYnRuLWJvcmRlci1yYWRpdXMtbGcpO1xyXG4gICAgfVxyXG5cclxuICAgIGkgKyBzcGFuIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6ICgkYnRuLXBhZGRpbmcteC1sZyAqIDIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5idG4tc20ge1xyXG4gICAgaSB7XHJcbiAgICAgIHdpZHRoOiAoKCRidG4tcGFkZGluZy15LXNtICogMikgKyAoJGZvbnQtc2l6ZS1zbSAqICRidG4tbGluZS1oZWlnaHQtc20pKTtcclxuICAgICAgbWFyZ2luOiAoLSAkYnRuLXBhZGRpbmcteS1zbSkgKC0gJGJ0bi1wYWRkaW5nLXgtc20pO1xyXG4gICAgICBsaW5lLWhlaWdodDogKCgkYnRuLXBhZGRpbmcteS1zbSAqIDIpICsgKCRmb250LXNpemUtc20gKiAkYnRuLWxpbmUtaGVpZ2h0LXNtKSk7XHJcbiAgICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGJ0bi1ib3JkZXItcmFkaXVzLXNtKTtcclxuICAgIH1cclxuXHJcbiAgICBpICsgc3BhbiB7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAoJGJ0bi1wYWRkaW5nLXgtc20gKiAyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuYnRuLXNxdWFyZSBpIHtcclxuICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4vL1xyXG4vLyBWYXJpYW50c1xyXG4vL1xyXG5cclxuQGVhY2ggJGNvbG9yLCAkdmFsdWUgaW4gJGJyYW5kcy1jb2xvcnMge1xyXG4gIC5idG4tI3skY29sb3J9IHtcclxuICAgIEBpbmNsdWRlIGJ1dHRvbi12YXJpYW50KCR2YWx1ZSwgJHZhbHVlKTtcclxuICB9XHJcbn1cclxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3Itbm8tcXVhbGlmeWluZy10eXBlXHJcblxyXG4qW2Rpcj1cInJ0bFwiXSB7XHJcbiAgLmJ0bi1ncm91cCB7XHJcbiAgICAvLyBQcmV2ZW50IGRvdWJsZSBib3JkZXJzIHdoZW4gYnV0dG9ucyBhcmUgbmV4dCB0byBlYWNoIG90aGVyXHJcbiAgICA+IC5idG46bm90KDpmaXJzdC1jaGlsZCksXHJcbiAgICA+IC5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCkge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IC0kYnRuLWJvcmRlci13aWR0aDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBSZXNldCByb3VuZGVkIGNvcm5lcnNcclxuICAgID4gLmJ0bjpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSxcclxuICAgID4gLmJ0bi1ncm91cDpub3QoOmxhc3QtY2hpbGQpID4gLmJ0biB7XHJcbiAgICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMsIDApO1xyXG4gICAgICBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoMCk7XHJcbiAgICB9XHJcblxyXG4gICAgPiAuYnRuOm5vdCg6Zmlyc3QtY2hpbGQpLFxyXG4gICAgPiAuYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmJ0biB7XHJcbiAgICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMsIDApO1xyXG4gICAgICBAaW5jbHVkZSBib3JkZXItcmlnaHQtcmFkaXVzKDApO1xyXG4gICAgfVxyXG5cclxuICAgID4gLmJ0bjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSB7XHJcbiAgICAgIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygwKTtcclxuICAgICAgQGluY2x1ZGUgYm9yZGVyLXJpZ2h0LXJhZGl1cygwKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy9idXR0b24ge1xyXG4vLyAgQGV4dGVuZCAuYnRuO1xyXG4vL31cclxuXHJcbi5idG4tdHJhbnNwYXJlbnQge1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi5idG4ge1xyXG4gIFtjbGFzc149XCJpY29uLVwiXSxcclxuICBbY2xhc3MqPVwiIGljb24tXCJdIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIG1hcmdpbi10b3A6IC0ycHg7XHJcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gIH1cclxufVxyXG5cclxuLmJ0bi1waWxsIHtcclxuICBib3JkZXItcmFkaXVzOiA1MGVtO1xyXG59XHJcblxyXG4uYnRuLXNxdWFyZSB7XHJcbiAgYm9yZGVyLXJhZGl1czogMDtcclxufVxyXG5cclxuQGVhY2ggJGNvbG9yLCAkdmFsdWUgaW4gJHRoZW1lLWNvbG9ycyB7XHJcbiAgLmJ0bi1naG9zdC0jeyRjb2xvcn0ge1xyXG4gICAgQGluY2x1ZGUgYnV0dG9uLWdob3N0LXZhcmlhbnQoJHZhbHVlKTtcclxuICB9XHJcbn1cclxuIiwiQG1peGluIGJ1dHRvbi1naG9zdC12YXJpYW50KCRjb2xvciwgJGNvbG9yLWhvdmVyOiBjb2xvci15aXEoJGNvbG9yKSwgJGFjdGl2ZS1iYWNrZ3JvdW5kOiAkY29sb3IsICRhY3RpdmUtYm9yZGVyOiAkY29sb3IpIHtcclxuICBjb2xvcjogJGNvbG9yO1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XHJcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHJcbiAgJjpob3ZlciB7XHJcbiAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjdGl2ZS1iYWNrZ3JvdW5kO1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYWN0aXZlLWJvcmRlcjtcclxuICB9XHJcblxyXG4gICY6Zm9jdXMsXHJcbiAgJi5mb2N1cyB7XHJcbiAgICBib3gtc2hhZG93OiAwIDAgMCAkYnRuLWZvY3VzLXdpZHRoIHJnYmEoJGNvbG9yLCAuNSk7XHJcbiAgfVxyXG5cclxuICAmLmRpc2FibGVkLFxyXG4gICY6ZGlzYWJsZWQge1xyXG4gICAgY29sb3I6ICRjb2xvcjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICB9XHJcblxyXG4gICY6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLFxyXG4gICY6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLFxyXG4gIC5zaG93ID4gJi5kcm9wZG93bi10b2dnbGUge1xyXG4gICAgY29sb3I6IGNvbG9yLXlpcSgkYWN0aXZlLWJhY2tncm91bmQpO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjdGl2ZS1iYWNrZ3JvdW5kO1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYWN0aXZlLWJvcmRlcjtcclxuXHJcbiAgICAmOmZvY3VzIHtcclxuICAgICAgLy8gQXZvaWQgdXNpbmcgbWl4aW4gc28gd2UgY2FuIHBhc3MgY3VzdG9tIGZvY3VzIHNoYWRvdyBwcm9wZXJseVxyXG4gICAgICBAaWYgJGVuYWJsZS1zaGFkb3dzIGFuZCAkYnRuLWFjdGl2ZS1ib3gtc2hhZG93ICE9IG5vbmUge1xyXG4gICAgICAgIGJveC1zaGFkb3c6ICRidG4tYWN0aXZlLWJveC1zaGFkb3csIDAgMCAwICRidG4tZm9jdXMtd2lkdGggcmdiYSgkY29sb3IsIC41KTtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgJGJ0bi1mb2N1cy13aWR0aCByZ2JhKCRjb2xvciwgLjUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vXHJcbi8vIEJhc2Ugc3R5bGVzXHJcbi8vXHJcblxyXG4uY2FsbG91dCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIHBhZGRpbmc6IDAgJHNwYWNlcjtcclxuICBtYXJnaW46ICRzcGFjZXIgMDtcclxuICBib3JkZXItbGVmdDogNHB4IHNvbGlkICRib3JkZXItY29sb3I7XHJcblxyXG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xyXG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XHJcbiAgfVxyXG5cclxuICAuY2hhcnQtd3JhcHBlciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDEwcHg7XHJcbiAgICBsZWZ0OiA1MCU7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICB3aWR0aDogNTAlO1xyXG4gIH1cclxufVxyXG5cclxuLmNhbGxvdXQtYm9yZGVyZWQge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XHJcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDRweDtcclxufVxyXG4uY2FsbG91dCBjb2RlIHtcclxuICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcclxufVxyXG4uY2FsbG91dCBoNCB7XHJcbiAgbWFyZ2luLXRvcDogMDtcclxuICBtYXJnaW4tYm90dG9tOiAuMjVyZW07XHJcbn1cclxuLmNhbGxvdXQgcDpsYXN0LWNoaWxkIHtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcbi5jYWxsb3V0ICsgLmNhbGxvdXQge1xyXG4gIG1hcmdpbi10b3A6IC0gLjI1cmVtO1xyXG59XHJcblxyXG4vL1xyXG4vLyBWYXJpYW50c1xyXG4vL1xyXG5cclxuQGVhY2ggJGNvbG9yLCAkdmFsdWUgaW4gJHRoZW1lLWNvbG9ycyB7XHJcbiAgLmNhbGxvdXQtI3skY29sb3J9IHtcclxuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAkdmFsdWU7XHJcblxyXG4gICAgaDQge1xyXG4gICAgICBjb2xvcjogJHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gUmlnaHQtdG8tTGVmdCBTdXBwb3J0XHJcbipbZGlyPVwicnRsXCJdIHtcclxuICAuY2FsbG91dCB7XHJcbiAgICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xyXG4gICAgYm9yZGVyLWxlZnQ6IDA7XHJcblxyXG4gICAgQGVhY2ggJGNvbG9yLCAkdmFsdWUgaW4gJHRoZW1lLWNvbG9ycyB7XHJcbiAgICAgICYuY2FsbG91dC0jeyRjb2xvcn0ge1xyXG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmNoYXJ0LXdyYXBwZXIge1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICBmbG9hdDogbGVmdDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLmNhcmQge1xyXG4gIG1hcmdpbi1ib3R0b206ICgkc3BhY2VyICogMS41KTtcclxuXHJcbiAgLy8gQ2FyZHMgd2l0aCBjb2xvciBhY2NlbnRcclxuICBAZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkdGhlbWUtY29sb3JzIHtcclxuICAgICYuYmctI3skY29sb3J9IHtcclxuICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oJHZhbHVlLCAxMi41JSk7XHJcbiAgICAgIC5jYXJkLWhlYWRlciB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCR2YWx1ZSwgMyUpO1xyXG4gICAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCR2YWx1ZSwgMTIuNSUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmRyYWcsXHJcbiAgLmRyYWcge1xyXG4gICAgY3Vyc29yOiBtb3ZlO1xyXG4gIH1cclxufVxyXG5cclxuLmNhcmQtcGxhY2Vob2xkZXIge1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgLjAyNSk7XHJcbiAgYm9yZGVyOiAxcHggZGFzaGVkICRncmF5LTMwMDtcclxufVxyXG5cclxuLmNhcmQtaGVhZGVyIHtcclxuICA+IGkge1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAkc3BhY2VyIC8gMjtcclxuICB9XHJcblxyXG4gIC5uYXYtdGFicyB7XHJcbiAgICBtYXJnaW4tdG9wOiAtJGNhcmQtc3BhY2VyLXk7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAtJGNhcmQtc3BhY2VyLXk7XHJcbiAgICBib3JkZXItYm90dG9tOiAwO1xyXG5cclxuICAgIC5uYXYtaXRlbSB7XHJcbiAgICAgIGJvcmRlci10b3A6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLm5hdi1saW5rIHtcclxuICAgICAgcGFkZGluZzogJGNhcmQtc3BhY2VyLXkgKCRjYXJkLXNwYWNlci14IC8gMik7XHJcbiAgICAgIGNvbG9yOiAkdGV4dC1tdXRlZDtcclxuICAgICAgYm9yZGVyLXRvcDogMDtcclxuXHJcbiAgICAgICYuYWN0aXZlIHtcclxuICAgICAgICBjb2xvcjogJGJvZHktY29sb3I7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuKltkaXI9XCJydGxcIl0gLmNhcmQtaGVhZGVyID4gaSB7XHJcbiAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gIG1hcmdpbi1sZWZ0OiAkc3BhY2VyIC8gMjtcclxufVxyXG5cclxuLmNhcmQtaGVhZGVyLWljb24tYmcge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB3aWR0aDogKCRjYXJkLXNwYWNlci15ICogMikgKyAoJGZvbnQtc2l6ZS1iYXNlICogJGxpbmUtaGVpZ2h0LWJhc2UpO1xyXG4gIHBhZGRpbmc6ICRjYXJkLXNwYWNlci15IDA7XHJcbiAgbWFyZ2luOiAoLSAkY2FyZC1zcGFjZXIteSkgJGNhcmQtc3BhY2VyLXggKC0gJGNhcmQtc3BhY2VyLXkpICgtICRjYXJkLXNwYWNlci14KTtcclxuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcclxuICBjb2xvcjogJGNhcmQtaWNvbi1jb2xvcjtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgYmFja2dyb3VuZDogJGNhcmQtaWNvbi1iZztcclxuICBib3JkZXItcmlnaHQ6ICRjYXJkLWJvcmRlci13aWR0aCBzb2xpZCAkY2FyZC1ib3JkZXItY29sb3I7XHJcbn1cclxuXHJcbi5jYXJkLWhlYWRlci1hY3Rpb25zIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgZmxvYXQ6IHJpZ2h0O1xyXG4gIG1hcmdpbi1yaWdodDogLSAoJHNwYWNlciAvIDQpO1xyXG59XHJcblxyXG4qW2Rpcj1cInJ0bFwiXSB7XHJcbiAgLmNhcmQtaGVhZGVyLWFjdGlvbnMge1xyXG4gICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICBtYXJnaW4tbGVmdDogLSAoJHNwYWNlciAvIDQpO1xyXG4gIH1cclxufVxyXG5cclxuLmNhcmQtaGVhZGVyLWFjdGlvbiB7XHJcbiAgcGFkZGluZzogMCAoJHNwYWNlciAvIDQpO1xyXG4gIGNvbG9yOiAkZ3JheS02MDA7XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgY29sb3I6ICRib2R5LWNvbG9yO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIENhcmRzIHdpdGggY29sb3IgYWNjZW50XHJcbkBlYWNoICRjb2xvciwgJHZhbHVlIGluICR0aGVtZS1jb2xvcnMge1xyXG4gIC5jYXJkLWFjY2VudC0jeyRjb2xvcn0ge1xyXG4gICAgQGluY2x1ZGUgY2FyZC1hY2NlbnQtdmFyaWFudCgkdmFsdWUpO1xyXG4gIH1cclxufVxyXG5cclxuLmNhcmQtZnVsbCB7XHJcbiAgbWFyZ2luLXRvcDogLSAkc3BhY2VyO1xyXG4gIG1hcmdpbi1yaWdodDogLSAkZ3JpZC1ndXR0ZXItd2lkdGggLyAyO1xyXG4gIG1hcmdpbi1sZWZ0OiAtICRncmlkLWd1dHRlci13aWR0aCAvIDI7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGJvcmRlci1ib3R0b206ICRjYXJkLWJvcmRlci13aWR0aCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xyXG59XHJcblxyXG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHNtKSB7XHJcbiAgLmNhcmQtY29sdW1ucyB7XHJcblxyXG4gICAgJi5jb2xzLTIge1xyXG4gICAgICBjb2x1bW4tY291bnQ6IDI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIkBtaXhpbiBjYXJkLWFjY2VudC12YXJpYW50KCRjb2xvcikge1xyXG4gIGJvcmRlci10b3AtY29sb3I6ICRjb2xvcjtcclxuICBib3JkZXItdG9wLXdpZHRoOiAycHg7XHJcbn1cclxuIiwiLmNoYXJ0LXdyYXBwZXIgY2FudmFzIHtcclxuICB3aWR0aDogMTAwJTtcclxufVxyXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGUsIHNlbGVjdG9yLXR5cGUtbm8tdW5rbm93blxyXG5iYXNlLWNoYXJ0LmNoYXJ0IHtcclxuICBkaXNwbGF5OiBibG9jaztcclxufVxyXG5cclxuY2FudmFzIHtcclxuICB1c2VyLXNlbGVjdDogbm9uZTtcclxufVxyXG5cclxuLmNoYXJ0anMtdG9vbHRpcCB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIHotaW5kZXg6ICR6aW5kZXgtc3RpY2t5ICsgMTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgcGFkZGluZzogKCRzcGFjZXIgKiAuMjUpICgkc3BhY2VyICogLjUpO1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgLjcpO1xyXG4gIG9wYWNpdHk6IDA7XHJcbiAgdHJhbnNpdGlvbjogYWxsICRsYXlvdXQtdHJhbnNpdGlvbi1zcGVlZCBlYXNlO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApO1xyXG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMpO1xyXG5cclxuICAudG9vbHRpcC1oZWFkZXIge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogKCRzcGFjZXIgKiAuNSk7XHJcbiAgfVxyXG5cclxuICAudG9vbHRpcC1oZWFkZXItaXRlbSB7XHJcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtc207XHJcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XHJcbiAgfVxyXG5cclxuICAudG9vbHRpcC1ib2R5LWl0ZW0ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6ICRmb250LXNpemUtc207XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIH1cclxuXHJcbiAgLnRvb2x0aXAtYm9keS1pdGVtLWNvbG9yIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHdpZHRoOiAkZm9udC1zaXplLWJhc2U7XHJcbiAgICBoZWlnaHQ6ICRmb250LXNpemUtYmFzZTtcclxuICAgIG1hcmdpbi1yaWdodDogJGZvbnQtc2l6ZS1iYXNlO1xyXG4gIH1cclxuXHJcbiAgLnRvb2x0aXAtYm9keS1pdGVtLXZhbHVlIHtcclxuICAgIHBhZGRpbmctbGVmdDogJHNwYWNlcjtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgZm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xyXG4gIH1cclxufVxyXG4iLCIvLyBMaW5rcywgYnV0dG9ucywgYW5kIG1vcmUgd2l0aGluIHRoZSBkcm9wZG93biBtZW51XHJcbi5kcm9wZG93bi1pdGVtIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgcGFkZGluZzogMTBweCAyMHB4O1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZHJvcGRvd24tYm9yZGVyLWNvbG9yO1xyXG5cclxuICAmOmxhc3QtY2hpbGQge1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMDtcclxuICB9XHJcblxyXG4gIGkge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgd2lkdGg6IDIwcHg7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICBtYXJnaW4tbGVmdDogLTEwcHg7XHJcbiAgICBjb2xvcjogJGRyb3Bkb3duLWljb24tY29sb3I7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICAuYmFkZ2Uge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgcmlnaHQ6IDEwcHg7XHJcbiAgICBtYXJnaW4tdG9wOiAycHg7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBEcm9wZG93biBzZWN0aW9uIGhlYWRlcnNcclxuLmRyb3Bkb3duLWhlYWRlciB7XHJcbiAgcGFkZGluZzogOHB4IDIwcHg7XHJcbiAgYmFja2dyb3VuZDogJGRyb3Bkb3duLWRpdmlkZXItYmc7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRkcm9wZG93bi1ib3JkZXItY29sb3I7XHJcblxyXG4gIC5idG4ge1xyXG4gICAgbWFyZ2luLXRvcDogLTdweDtcclxuICAgIGNvbG9yOiAkZHJvcGRvd24taGVhZGVyLWNvbG9yO1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBjb2xvcjogJGJvZHktY29sb3I7XHJcbiAgICB9XHJcblxyXG4gICAgJi5wdWxsLXJpZ2h0IHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAtMjBweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5kcm9wZG93bi1tZW51LWxnIHtcclxuICB3aWR0aDogMjUwcHg7XHJcbn1cclxuLmFwcC1oZWFkZXIge1xyXG4gIC5uYXZiYXItbmF2IHtcclxuICAgIC5kcm9wZG93bi1tZW51IHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgfVxyXG4gICAgLy8gTWVudSBwb3NpdGlvbmluZ1xyXG4gICAgLy9cclxuICAgIC8vIEFkZCBleHRyYSBjbGFzcyB0byBgLmRyb3Bkb3duLW1lbnVgIHRvIGZsaXAgdGhlIGFsaWdubWVudCBvZiB0aGUgZHJvcGRvd25cclxuICAgIC8vIG1lbnUgd2l0aCB0aGUgcGFyZW50LlxyXG4gICAgLmRyb3Bkb3duLW1lbnUtcmlnaHQge1xyXG4gICAgICByaWdodDogMDtcclxuICAgICAgbGVmdDogYXV0bzsgLy8gUmVzZXQgdGhlIGRlZmF1bHQgZnJvbSBgLmRyb3Bkb3duLW1lbnVgXHJcbiAgICB9XHJcblxyXG4gICAgLmRyb3Bkb3duLW1lbnUtbGVmdCB7XHJcbiAgICAgIHJpZ2h0OiBhdXRvO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuKltkaXI9XCJydGxcIl0ge1xyXG4gIC5kcm9wZG93bi10b2dnbGUge1xyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4gICAgICBtYXJnaW4tbGVmdDogJGNhcmV0LXNwYWNpbmc7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6ICRjYXJldC1zcGFjaW5nO1xyXG4gICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLmFwcC1mb290ZXIge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgcGFkZGluZzogMCAkc3BhY2VyO1xyXG4gIGNvbG9yOiAkZm9vdGVyLWNvbG9yO1xyXG4gIGJhY2tncm91bmQ6ICRmb290ZXItYmc7XHJcbiAgQGluY2x1ZGUgYm9yZGVycygkZm9vdGVyLWJvcmRlcnMpO1xyXG59XHJcbiIsIi5yb3cucm93LWVxdWFsIHtcclxuICBwYWRkaW5nLXJpZ2h0OiAoJGdyaWQtZ3V0dGVyLXdpZHRoIC8gNCk7XHJcbiAgcGFkZGluZy1sZWZ0OiAoJGdyaWQtZ3V0dGVyLXdpZHRoIC8gNCk7XHJcbiAgbWFyZ2luLXJpZ2h0OiAoJGdyaWQtZ3V0dGVyLXdpZHRoIC8gLTIpO1xyXG4gIG1hcmdpbi1sZWZ0OiAoJGdyaWQtZ3V0dGVyLXdpZHRoIC8gLTIpO1xyXG5cclxuICBbY2xhc3MqPVwiY29sLVwiXSB7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAoJGdyaWQtZ3V0dGVyLXdpZHRoIC8gNCk7XHJcbiAgICBwYWRkaW5nLWxlZnQ6ICgkZ3JpZC1ndXR0ZXItd2lkdGggLyA0KTtcclxuICB9XHJcbn1cclxuXHJcbi5tYWluIC5jb250YWluZXItZmx1aWQge1xyXG4gIHBhZGRpbmc6IDAgMzBweDtcclxufVxyXG4iLCIuYXBwLWhlYWRlciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgaGVpZ2h0OiAkbmF2YmFyLWhlaWdodDtcclxuICBwYWRkaW5nOiAwO1xyXG4gIG1hcmdpbjogMDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2YmFyLWJnO1xyXG4gIEBpbmNsdWRlIGJvcmRlcnMoJG5hdmJhci1ib3JkZXIpO1xyXG5cclxuICAubmF2YmFyLWJyYW5kIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgd2lkdGg6ICRuYXZiYXItYnJhbmQtd2lkdGg7XHJcbiAgICBoZWlnaHQ6ICRuYXZiYXItaGVpZ2h0O1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIG1hcmdpbi1yaWdodDogMDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXZiYXItYnJhbmQtYmc7XHJcbiAgICBAaW5jbHVkZSBib3JkZXJzKCRuYXZiYXItYnJhbmQtYm9yZGVyKTtcclxuXHJcbiAgICAubmF2YmFyLWJyYW5kLW1pbmltaXplZCB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubmF2YmFyLXRvZ2dsZXIge1xyXG4gICAgbWluLXdpZHRoOiA1MHB4O1xyXG4gICAgcGFkZGluZzogJG5hdmJhci10b2dnbGVyLXBhZGRpbmcteSAwO1xyXG5cclxuICAgICY6aG92ZXIgLm5hdmJhci10b2dnbGVyLWljb24ge1xyXG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkbmF2YmFyLXRvZ2dsZXItaWNvbi1ob3ZlcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5uYXZiYXItdG9nZ2xlci1pY29uIHtcclxuICAgIGhlaWdodDogMjNweDtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6ICRuYXZiYXItdG9nZ2xlci1pY29uO1xyXG4gIH1cclxuXHJcbiAgLm5hdmJhci1uYXYge1xyXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgfVxyXG5cclxuICAubmF2LWl0ZW0ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWluLXdpZHRoOiA1MHB4O1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xyXG4gICAgfVxyXG5cclxuICAgIC5uYXYtbGluayB7XHJcbiAgICAgIHBhZGRpbmctdG9wOiAwO1xyXG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcclxuICAgICAgYmFja2dyb3VuZDogMDtcclxuICAgICAgYm9yZGVyOiAwO1xyXG5cclxuICAgICAgLmJhZGdlIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgbGVmdDogNTAlO1xyXG4gICAgICAgIG1hcmdpbi10b3A6IC0xNnB4O1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICB9XHJcblxyXG4gICAgICA+IC5pbWctYXZhdGFyIHtcclxuICAgICAgICBoZWlnaHQ6ICRuYXZiYXItaGVpZ2h0IC0gMjBweDtcclxuICAgICAgICBtYXJnaW46IDAgMTBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmRyb3Bkb3duLW1lbnUge1xyXG4gICAgcGFkZGluZy1ib3R0b206IDA7XHJcbiAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWJhc2U7XHJcbiAgfVxyXG5cclxuICAuZHJvcGRvd24taXRlbSB7XHJcbiAgICBtaW4td2lkdGg6IDE4MHB4O1xyXG4gIH1cclxufVxyXG5cclxuLy8gLm5hdmJhci1icmFuZCB7XHJcbi8vICAgY29sb3I6ICRuYXZiYXItYWN0aXZlLWNvbG9yO1xyXG4vL1xyXG4vLyAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcclxuLy8gICAgIGNvbG9yOiAkbmF2YmFyLWFjdGl2ZS1jb2xvcjtcclxuLy8gICB9XHJcbi8vIH1cclxuXHJcbi5uYXZiYXItbmF2IHtcclxuICAubmF2LWxpbmsge1xyXG4gICAgY29sb3I6ICRuYXZiYXItY29sb3I7XHJcblxyXG4gICAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xyXG4gICAgICBjb2xvcjogJG5hdmJhci1ob3Zlci1jb2xvcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5vcGVuID4gLm5hdi1saW5rLFxyXG4gIC5hY3RpdmUgPiAubmF2LWxpbmssXHJcbiAgLm5hdi1saW5rLm9wZW4sXHJcbiAgLm5hdi1saW5rLmFjdGl2ZSB7XHJcbiAgICBAaW5jbHVkZSBwbGFpbi1ob3Zlci1mb2N1cyB7XHJcbiAgICAgIGNvbG9yOiAkbmF2YmFyLWFjdGl2ZS1jb2xvcjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5uYXZiYXItZGl2aWRlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAuMDc1KTtcclxufVxyXG5cclxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludC1tb2JpbGUtdXApIHtcclxuICAuYnJhbmQtbWluaW1pemVkIHtcclxuICAgIC5hcHAtaGVhZGVyIHtcclxuICAgICAgLm5hdmJhci1icmFuZCB7XHJcbiAgICAgICAgd2lkdGg6ICRuYXZiYXItYnJhbmQtbWluaW1pemVkLXdpZHRoO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXZiYXItYnJhbmQtbWluaW1pemVkLWJnO1xyXG4gICAgICAgIEBpbmNsdWRlIGJvcmRlcnMoJG5hdmJhci1icmFuZC1taW5pbWl6ZWQtYm9yZGVyKTtcclxuXHJcbiAgICAgICAgLm5hdmJhci1icmFuZC1mdWxsIHtcclxuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAubmF2YmFyLWJyYW5kLW1pbmltaXplZCB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLmlucHV0LWdyb3VwLXByZXBlbmQsXHJcbi5pbnB1dC1ncm91cC1hcHBlbmQge1xyXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgLy8gTWF0Y2ggdGhlIGlucHV0c1xyXG59XHJcblxyXG4vL1xyXG4vLyBSVEwgU3VwcG9ydFxyXG4vL1xyXG4qW2Rpcj1cInJ0bFwiXSB7XHJcblxyXG4gIC5pbnB1dC1ncm91cCB7XHJcbiAgICA+IC5mb3JtLWNvbnRyb2wsXHJcbiAgICA+IC5jdXN0b20tc2VsZWN0IHtcclxuICAgICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkaW5wdXQtYm9yZGVyLXJhZGl1cywgMCk7XHJcbiAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKDApO1xyXG4gICAgICB9XHJcbiAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xyXG4gICAgICAgIEBpbmNsdWRlIGJvcmRlci1yaWdodC1yYWRpdXMoMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5pbnB1dC1ncm91cC1wcmVwZW5kIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAtJGlucHV0LWJvcmRlci13aWR0aDtcclxuICB9XHJcbiAgLmlucHV0LWdyb3VwLWFwcGVuZCB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IC0kaW5wdXQtYm9yZGVyLXdpZHRoO1xyXG4gIH1cclxuXHJcbiAgLy8gUHJlcGVuZCBhbmQgYXBwZW5kIHJvdW5kZWQgY29ybmVyc1xyXG4gIC8vXHJcbiAgLy8gVGhlc2UgcnVsZXNldHMgbXVzdCBjb21lIGFmdGVyIHRoZSBzaXppbmcgb25lcyB0byBwcm9wZXJseSBvdmVycmlkZSBzbSBhbmQgbGdcclxuICAvLyBib3JkZXItcmFkaXVzIHZhbHVlcyB3aGVuIGV4dGVuZGluZy4gVGhleSdyZSBtb3JlIHNwZWNpZmljIHRoYW4gd2UnZCBsaWtlXHJcbiAgLy8gd2l0aCB0aGUgYC5pbnB1dC1ncm91cCA+YCBwYXJ0LCBidXQgd2l0aG91dCBpdCwgd2UgY2Fubm90IG92ZXJyaWRlIHRoZSBzaXppbmcuXHJcblxyXG4gIC5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1wcmVwZW5kID4gLmJ0bixcclxuICAuaW5wdXQtZ3JvdXAgPiAuaW5wdXQtZ3JvdXAtcHJlcGVuZCA+IC5pbnB1dC1ncm91cC10ZXh0LFxyXG4gIC5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1hcHBlbmQ6bm90KDpsYXN0LWNoaWxkKSA+IC5idG4sXHJcbiAgLmlucHV0LWdyb3VwID4gLmlucHV0LWdyb3VwLWFwcGVuZDpub3QoOmxhc3QtY2hpbGQpID4gLmlucHV0LWdyb3VwLXRleHQsXHJcbiAgLmlucHV0LWdyb3VwID4gLmlucHV0LWdyb3VwLWFwcGVuZDpsYXN0LWNoaWxkID4gLmJ0bjpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSxcclxuICAuaW5wdXQtZ3JvdXAgPiAuaW5wdXQtZ3JvdXAtYXBwZW5kOmxhc3QtY2hpbGQgPiAuaW5wdXQtZ3JvdXAtdGV4dDpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGlucHV0LWJvcmRlci1yYWRpdXMsIDApO1xyXG4gICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKDApO1xyXG4gIH1cclxuXHJcbiAgLmlucHV0LWdyb3VwID4gLmlucHV0LWdyb3VwLWFwcGVuZDpsYXN0LWNoaWxkID4gLmJ0bjpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJvcGRvd24tdG9nZ2xlKSxcclxuICAuaW5wdXQtZ3JvdXAgPiAuaW5wdXQtZ3JvdXAtYXBwZW5kOmxhc3QtY2hpbGQgPiAuaW5wdXQtZ3JvdXAtdGV4dDpub3QoOmxhc3QtY2hpbGQpIHtcclxuICAgIEBpbmNsdWRlIGJvcmRlci1yaWdodC1yYWRpdXMoMCk7XHJcbiAgfVxyXG5cclxuICAuaW5wdXQtZ3JvdXAgPiAuaW5wdXQtZ3JvdXAtYXBwZW5kID4gLmJ0bixcclxuICAuaW5wdXQtZ3JvdXAgPiAuaW5wdXQtZ3JvdXAtYXBwZW5kID4gLmlucHV0LWdyb3VwLXRleHQsXHJcbiAgLmlucHV0LWdyb3VwID4gLmlucHV0LWdyb3VwLXByZXBlbmQ6bm90KDpmaXJzdC1jaGlsZCkgPiAuYnRuLFxyXG4gIC5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1wcmVwZW5kOm5vdCg6Zmlyc3QtY2hpbGQpID4gLmlucHV0LWdyb3VwLXRleHQsXHJcbiAgLmlucHV0LWdyb3VwID4gLmlucHV0LWdyb3VwLXByZXBlbmQ6Zmlyc3QtY2hpbGQgPiAuYnRuOm5vdCg6Zmlyc3QtY2hpbGQpLFxyXG4gIC5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1wcmVwZW5kOmZpcnN0LWNoaWxkID4gLmlucHV0LWdyb3VwLXRleHQ6bm90KDpmaXJzdC1jaGlsZCkge1xyXG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkaW5wdXQtYm9yZGVyLXJhZGl1cywgMCk7XHJcbiAgICBAaW5jbHVkZSBib3JkZXItcmlnaHQtcmFkaXVzKDApO1xyXG4gIH1cclxuXHJcbiAgLmlucHV0LWdyb3VwID4gLmlucHV0LWdyb3VwLXByZXBlbmQ6Zmlyc3QtY2hpbGQgPiAuYnRuOm5vdCg6Zmlyc3QtY2hpbGQpLFxyXG4gIC5pbnB1dC1ncm91cCA+IC5pbnB1dC1ncm91cC1wcmVwZW5kOmZpcnN0LWNoaWxkID4gLmlucHV0LWdyb3VwLXRleHQ6bm90KDpmaXJzdC1jaGlsZCkge1xyXG4gICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKDApO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiLmltZy1hdmF0YXIsXHJcbi5pbWctY2lyY2xlIHtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwZW07XHJcbn1cclxuIiwiLy8gTGlzdCBpdGVtcyB3aXRoIGFjY2VudFxyXG4vL1xyXG4vLyBSZW1vdmUgdG9wLCBib3R0b21lIGFuZCByaWdodCBib3JkZXJzIGFuZCBib3JkZXItcmFkaXVzLlxyXG5cclxuLmxpc3QtZ3JvdXAtYWNjZW50IHtcclxuICAubGlzdC1ncm91cC1pdGVtIHtcclxuICAgIG1hcmdpbi1ib3R0b206IDFweDtcclxuICAgIGJvcmRlci10b3A6IDA7XHJcbiAgICBib3JkZXItcmlnaHQ6IDA7XHJcbiAgICBib3JkZXItYm90dG9tOiAwO1xyXG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygwKTtcclxuXHJcbiAgICAmLmxpc3QtZ3JvdXAtaXRlbS1kaXZpZGVyIHtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICAgJjo6YmVmb3JlIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgYm90dG9tOiAtMXB4O1xyXG4gICAgICAgIGxlZnQ6IDUlO1xyXG4gICAgICAgIHdpZHRoOiA5MCU7XHJcbiAgICAgICAgaGVpZ2h0OiAxcHg7XHJcbiAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlzdC1ncm91cC1hY2NlbnQtZGl2aWRlci1iZztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gQ29udGV4dHVhbCB2YXJpYW50c1xyXG4vL1xyXG4vLyBBZGQgbW9kaWZpZXIgY2xhc3NlcyB0byBjaGFuZ2UgYm9yZGVyIGNvbG9yIG9uIGluZGl2aWR1YWwgaXRlbXMuXHJcblxyXG5AZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkdGhlbWUtY29sb3JzIHtcclxuICBAaW5jbHVkZSBsaXN0LWdyb3VwLWl0ZW0tYWNjZW50LXZhcmlhbnQoJGNvbG9yLCAkdmFsdWUpO1xyXG59XHJcbiIsIi8vIExpc3QgR3JvdXBzXHJcblxyXG5AbWl4aW4gbGlzdC1ncm91cC1pdGVtLWFjY2VudC12YXJpYW50KCRzdGF0ZSwgJGNvbG9yKSB7XHJcbiAgLmxpc3QtZ3JvdXAtaXRlbS1hY2NlbnQtI3skc3RhdGV9IHtcclxuICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgJGNvbG9yO1xyXG4gIH1cclxufVxyXG4iLCJAZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkdGhlbWUtY29sb3JzIHtcclxuICAubW9kYWwtI3skY29sb3J9IHtcclxuXHJcbiAgICAubW9kYWwtY29udGVudCB7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogJHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC5tb2RhbC1oZWFkZXIge1xyXG4gICAgICBjb2xvcjogI2ZmZjtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIubmF2LXRhYnMge1xyXG4gIC5uYXYtbGluayB7XHJcbiAgICBjb2xvcjogJG5hdi10YWJzLWxpbmstY29sb3I7XHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLnRhYi1jb250ZW50IHtcclxuICBtYXJnaW4tdG9wOiAtMXB4O1xyXG4gIGJhY2tncm91bmQ6ICR0YWItY29udGVudC1iZztcclxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xyXG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMCAwICRib3JkZXItcmFkaXVzICRib3JkZXItcmFkaXVzKTtcclxuXHJcbiAgLnRhYi1wYW5lIHtcclxuICAgIHBhZGRpbmc6ICRzcGFjZXI7XHJcbiAgfVxyXG59XHJcblxyXG4uY2FyZC1ibG9jayB7XHJcbiAgLnRhYi1jb250ZW50IHtcclxuICAgIG1hcmdpbi10b3A6IDA7XHJcbiAgICBib3JkZXI6IDA7XHJcbiAgfVxyXG59XHJcblxyXG4ubmF2LWZpbGwge1xyXG4gIC5uYXYtbGluayB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xyXG4gIH1cclxuICAubmF2LWxpbmsgKyAubmF2LWxpbmsge1xyXG4gICAgbWFyZ2luLWxlZnQ6IC0xcHg7XHJcbiAgfVxyXG4gIC5uYXYtbGluay5hY3RpdmUge1xyXG4gICAgbWFyZ2luLXRvcDogLTFweDtcclxuICAgIC8vIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICRwcmltYXJ5O1xyXG4gIH1cclxufVxyXG5cclxuLy8gUmlnaHQtdG8tTGVmdCBTdXBwb3J0XHJcbipbZGlyPVwicnRsXCJdIHtcclxuICAubmF2IHtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XHJcbiAgfVxyXG59XHJcbiIsIi5wcm9ncmVzcy14cyB7XHJcbiAgaGVpZ2h0OiA0cHg7XHJcbn1cclxuXHJcbi5wcm9ncmVzcy1zbSB7XHJcbiAgaGVpZ2h0OiA4cHg7XHJcbn1cclxuXHJcbi8vIFdoaXRlIHByb2dyZXNzIGJhclxyXG4ucHJvZ3Jlc3Mtd2hpdGUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgLjIpO1xyXG4gIC5wcm9ncmVzcy1iYXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcclxuICB9XHJcbn1cclxuIiwiLnByb2dyZXNzLWdyb3VwIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XHJcbiAgbWFyZ2luLWJvdHRvbTogJHNwYWNlcjtcclxufVxyXG5cclxuLnByb2dyZXNzLWdyb3VwLXByZXBlbmQge1xyXG4gIGZsZXg6IDAgMCAxMDBweDtcclxuICBhbGlnbi1zZWxmOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5wcm9ncmVzcy1ncm91cC1pY29uIHtcclxuICBtYXJnaW46IDAgJHNwYWNlciAwICgkc3BhY2VyICogLjI1KTtcclxuICBmb250LXNpemU6ICRmb250LXNpemUtbGc7XHJcbn1cclxuXHJcbi5wcm9ncmVzcy1ncm91cC10ZXh0IHtcclxuICBmb250LXNpemU6ICRmb250LXNpemUtc207XHJcbiAgY29sb3I6ICRncmF5LTYwMDtcclxufVxyXG5cclxuLnByb2dyZXNzLWdyb3VwLWhlYWRlciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWJhc2lzOiAxMDAlO1xyXG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuICBtYXJnaW4tYm90dG9tOiAoJHNwYWNlciAqIC4yNSk7XHJcbn1cclxuXHJcbi5wcm9ncmVzcy1ncm91cC1iYXJzIHtcclxuICBmbGV4LWdyb3c6IDE7XHJcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xyXG5cclxuICAucHJvZ3Jlc3M6bm90KDpsYXN0LWNoaWxkKSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XHJcbiAgfVxyXG59XHJcblxyXG4ucHJvZ3Jlc3MtZ3JvdXAtaGVhZGVyICsgLnByb2dyZXNzLWdyb3VwLWJhcnMge1xyXG4gIGZsZXgtYmFzaXM6IDEwMCU7XHJcbn1cclxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LWNsYXNzLCBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnQsIHNlbGVjdG9yLW1heC1jb21wb3VuZC1zZWxlY3RvcnMsIGZ1bmN0aW9uLXVybC1xdW90ZXMsIHNlbGVjdG9yLW1heC1jb21iaW5hdG9yc1xyXG4uc2lkZWJhciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIHBhZGRpbmc6ICRzaWRlYmFyLXBhZGRpbmc7XHJcbiAgY29sb3I6ICRzaWRlYmFyLWNvbG9yO1xyXG4gIGJhY2tncm91bmQ6ICRzaWRlYmFyLWJnO1xyXG4gIEBpbmNsdWRlIGJvcmRlcnMoJHNpZGViYXItYm9yZGVycyk7XHJcblxyXG4gIC5zaWRlYmFyLWNsb3NlIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIHBhZGRpbmc6IDAgJHNwYWNlcjtcclxuICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgICBsaW5lLWhlaWdodDogJG5hdmJhci1oZWlnaHQ7XHJcbiAgICBjb2xvcjogJHNpZGViYXItY29sb3I7XHJcbiAgICBiYWNrZ3JvdW5kOiAwO1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgb3BhY2l0eTogLjg7XHJcblxyXG4gICAgJjpob3ZlciB7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBXaWxsIGJlIGFkZGVkIHNvb25cclxuICAvLyAuc2lkZWJhci1icmFuZCB7IH1cclxuXHJcbiAgLnNpZGViYXItaGVhZGVyIHtcclxuICAgIGZsZXg6IDAgMCAkc2lkZWJhci1oZWFkZXItaGVpZ2h0O1xyXG4gICAgcGFkZGluZzogJHNpZGViYXItaGVhZGVyLXBhZGRpbmcteSAkc2lkZWJhci1oZWFkZXItcGFkZGluZy14O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgYmFja2dyb3VuZDogJHNpZGViYXItaGVhZGVyLWJnO1xyXG4gIH1cclxuXHJcbiAgLnNpZGViYXItZm9ybSAuZm9ybS1jb250cm9sIHtcclxuICAgIGNvbG9yOiAkc2lkZWJhci1mb3JtLWNvbG9yO1xyXG4gICAgYmFja2dyb3VuZDogJHNpZGViYXItZm9ybS1iZztcclxuICAgIGJvcmRlcjogJHNpZGViYXItZm9ybS1ib3JkZXI7XHJcblxyXG4gICAgJjo6cGxhY2Vob2xkZXIge1xyXG4gICAgICBjb2xvcjogJHNpZGViYXItZm9ybS1wbGFjZWhvbGRlci1jb2xvcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zaWRlYmFyLXNjcm9sbCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBmbGV4OiAxO1xyXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgIEBpbmNsdWRlIHNpZGViYXItd2lkdGgoJHNpZGViYXItYm9yZGVycywgJHNpZGViYXItd2lkdGgpO1xyXG4gIH1cclxuXHJcbiAgLnNpZGViYXItbmF2IHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGZsZXg6IDE7XHJcbiAgICBAaW5jbHVkZSBzaWRlYmFyLXdpZHRoKCRzaWRlYmFyLWJvcmRlcnMsICRzaWRlYmFyLXdpZHRoKTtcclxuICB9XHJcblxyXG4gID4gLnNpZGViYXItbmF2IHtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgfVxyXG5cclxuICAubmF2IHtcclxuICAgIEBpbmNsdWRlIHNpZGViYXItd2lkdGgoJHNpZGViYXItYm9yZGVycywgJHNpZGViYXItd2lkdGgpO1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gIH1cclxuXHJcbiAgLm5hdi10aXRsZSB7XHJcbiAgICBwYWRkaW5nOiAkc2lkZWJhci1uYXYtdGl0bGUtcGFkZGluZy15ICRzaWRlYmFyLW5hdi10aXRsZS1wYWRkaW5nLXg7XHJcbiAgICBmb250LXNpemU6IDgwJTtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICBjb2xvcjogJHNpZGViYXItbmF2LXRpdGxlLWNvbG9yO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICB9XHJcblxyXG4gIC5uYXYtZGl2aWRlciB7XHJcbiAgICBoZWlnaHQ6IDEwcHg7XHJcbiAgfVxyXG5cclxuICAubmF2LWl0ZW0ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAuM3MgZWFzZS1pbi1vdXQ7XHJcbiAgfVxyXG5cclxuICAubmF2LWRyb3Bkb3duLWl0ZW1zIHtcclxuICAgIG1heC1oZWlnaHQ6IDA7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xyXG4gICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAuM3MgZWFzZS1pbi1vdXQ7XHJcblxyXG4gICAgLm5hdi1pdGVtIHtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5uYXYtbGluayB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHBhZGRpbmc6ICRzaWRlYmFyLW5hdi1saW5rLXBhZGRpbmcteSAkc2lkZWJhci1uYXYtbGluay1wYWRkaW5nLXg7XHJcbiAgICBjb2xvcjogJHNpZGViYXItbmF2LWxpbmstY29sb3I7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBiYWNrZ3JvdW5kOiAkc2lkZWJhci1uYXYtbGluay1iZztcclxuICAgIEBpbmNsdWRlIGJvcmRlcnMoJHNpZGViYXItbmF2LWxpbmstYm9yZGVycyk7XHJcbiAgICBAaWYgJGVuYWJsZS1zaWRlYmFyLW5hdi1yb3VuZGVkIHtcclxuICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XHJcbiAgICB9XHJcblxyXG4gICAgLm5hdi1pY29uIHtcclxuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICB3aWR0aDogKCRmb250LXNpemUtYmFzZSAqIDEuMjUpO1xyXG4gICAgICBtYXJnaW46IDAgKCRzaWRlYmFyLW5hdi1saW5rLXBhZGRpbmcteCAvIDIpIDAgMDtcclxuICAgICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XHJcbiAgICAgIGNvbG9yOiAkc2lkZWJhci1uYXYtbGluay1pY29uLWNvbG9yO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLmJhZGdlIHtcclxuICAgICAgZmxvYXQ6IHJpZ2h0O1xyXG4gICAgICBtYXJnaW4tdG9wOiAycHg7XHJcbiAgICB9XHJcblxyXG4gICAgJi5hY3RpdmUge1xyXG4gICAgICBjb2xvcjogJHNpZGViYXItbmF2LWxpbmstYWN0aXZlLWNvbG9yO1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkc2lkZWJhci1uYXYtbGluay1hY3RpdmUtYmc7XHJcbiAgICAgIEBpbmNsdWRlIGJvcmRlcnMoJHNpZGViYXItbmF2LWxpbmstYWN0aXZlLWJvcmRlcnMpO1xyXG5cclxuICAgICAgLm5hdi1pY29uIHtcclxuICAgICAgICBjb2xvcjogJHNpZGViYXItbmF2LWxpbmstYWN0aXZlLWljb24tY29sb3I7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgY29sb3I6ICRzaWRlYmFyLW5hdi1saW5rLWhvdmVyLWNvbG9yO1xyXG4gICAgICBiYWNrZ3JvdW5kOiAkc2lkZWJhci1uYXYtbGluay1ob3Zlci1iZztcclxuICAgICAgQGluY2x1ZGUgYm9yZGVycygkc2lkZWJhci1uYXYtbGluay1ob3Zlci1ib3JkZXJzKTtcclxuXHJcbiAgICAgIC5uYXYtaWNvbiB7XHJcbiAgICAgICAgY29sb3I6ICRzaWRlYmFyLW5hdi1saW5rLWhvdmVyLWljb24tY29sb3I7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYubmF2LWRyb3Bkb3duLXRvZ2dsZTo6YmVmb3JlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkc2lkZWJhci1uYXYtZHJvcGRvd24taW5kaWNhdG9yLWhvdmVyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5kaXNhYmxlZCB7XHJcbiAgICAgIGNvbG9yOiAkc2lkZWJhci1uYXYtbGluay1kaXNhYmxlZC1jb2xvcjtcclxuICAgICAgY3Vyc29yOiAkY3Vyc29yLWRpc2FibGVkO1xyXG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgICAgQGluY2x1ZGUgYm9yZGVycygkc2lkZWJhci1uYXYtbGluay1kaXNhYmxlZC1ib3JkZXJzKTtcclxuXHJcbiAgICAgIC5uYXYtaWNvbiB7XHJcbiAgICAgICAgY29sb3I6ICRzaWRlYmFyLW5hdi1saW5rLWRpc2FibGVkLWljb24tY29sb3I7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiAkc2lkZWJhci1uYXYtbGluay1kaXNhYmxlZC1jb2xvcjtcclxuICAgICAgICBAaW5jbHVkZSBib3JkZXJzKCRzaWRlYmFyLW5hdi1saW5rLWhvdmVyLWJvcmRlcnMpO1xyXG5cclxuICAgICAgICAubmF2LWljb24ge1xyXG4gICAgICAgICAgY29sb3I6ICRzaWRlYmFyLW5hdi1saW5rLWRpc2FibGVkLWljb24tY29sb3I7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLm5hdi1kcm9wZG93bi10b2dnbGU6OmJlZm9yZSB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkc2lkZWJhci1uYXYtZHJvcGRvd24taW5kaWNhdG9yLWhvdmVyO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBlYWNoICRjb2xvciwgJHZhbHVlIGluICR0aGVtZS1jb2xvcnMge1xyXG4gICAgICAmLm5hdi1saW5rLSN7JGNvbG9yfSB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogJHZhbHVlO1xyXG4gICAgICAgIC5uYXYtaWNvbiB7XHJcbiAgICAgICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAuNyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogZGFya2VuKCR2YWx1ZSwgNSUpO1xyXG4gICAgICAgICAgaSB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm5hdi1kcm9wZG93bi10b2dnbGUge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiA1MCU7XHJcbiAgICAgIHJpZ2h0OiAkc2lkZWJhci1uYXYtbGluay1wYWRkaW5nLXg7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICB3aWR0aDogOHB4O1xyXG4gICAgICBoZWlnaHQ6IDhweDtcclxuICAgICAgcGFkZGluZzogMDtcclxuICAgICAgbWFyZ2luLXRvcDogLTRweDtcclxuICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogJHNpZGViYXItbmF2LWRyb3Bkb3duLWluZGljYXRvcjtcclxuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzO1xyXG4gICAgfVxyXG5cclxuICAgIC5iYWRnZSB7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMTZweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5uYXYtZHJvcGRvd24ub3BlbiB7XHJcbiAgICBiYWNrZ3JvdW5kOiAkc2lkZWJhci1uYXYtZHJvcGRvd24tYmc7XHJcbiAgICBAaW5jbHVkZSBib3JkZXJzKCRzaWRlYmFyLW5hdi1kcm9wZG93bi1ib3JkZXJzKTtcclxuICAgIEBpZiAkZW5hYmxlLXNpZGViYXItbmF2LXJvdW5kZWQge1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcclxuICAgIH1cclxuICAgID4gLm5hdi1kcm9wZG93bi1pdGVtcyB7XHJcbiAgICAgIG1heC1oZWlnaHQ6IDE1MDBweDtcclxuICAgIH1cclxuXHJcbiAgICAubmF2LWxpbmsge1xyXG4gICAgICBjb2xvcjogJHNpZGViYXItbmF2LWRyb3Bkb3duLWNvbG9yO1xyXG4gICAgICBib3JkZXItbGVmdDogMDtcclxuXHJcbiAgICAgICYuZGlzYWJsZWQge1xyXG4gICAgICAgIGNvbG9yOiAkc2lkZWJhci1uYXYtbGluay1kaXNhYmxlZC1jb2xvcjtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICBjb2xvcjogJHNpZGViYXItbmF2LWxpbmstZGlzYWJsZWQtY29sb3I7XHJcblxyXG4gICAgICAgICAgLm5hdi1pY29uIHtcclxuICAgICAgICAgICAgY29sb3I6ICRzaWRlYmFyLW5hdi1saW5rLWRpc2FibGVkLWljb24tY29sb3I7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgPiAubmF2LWRyb3Bkb3duLXRvZ2dsZTo6YmVmb3JlIHtcclxuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcclxuICAgIH1cclxuXHJcbiAgICAubmF2LWRyb3Bkb3duLm9wZW4ge1xyXG4gICAgICBib3JkZXItbGVmdDogMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5uYXYtbGFiZWwge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBwYWRkaW5nOiAoJHNpZGViYXItbmF2LWxpbmstcGFkZGluZy15IC8gOCkgJHNpZGViYXItbmF2LWxpbmstcGFkZGluZy14O1xyXG4gICAgY29sb3I6ICRzaWRlYmFyLW5hdi10aXRsZS1jb2xvcjtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgY29sb3I6ICRzaWRlYmFyLWNvbG9yO1xyXG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLm5hdi1pY29uIHtcclxuICAgICAgd2lkdGg6IDIwcHg7XHJcbiAgICAgIG1hcmdpbjogLTNweCAoJHNpZGViYXItbmF2LWxpbmstcGFkZGluZy14IC8gMikgMCAwO1xyXG4gICAgICBmb250LXNpemU6IDEwcHg7XHJcbiAgICAgIGNvbG9yOiAkc2lkZWJhci1uYXYtbGluay1pY29uLWNvbG9yO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgKGxpZ2h0bmVzcyggJHNpZGViYXItYmcgKSA8IDQwKSB7XHJcbiAgICAucHJvZ3Jlc3Mge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRzaWRlYmFyLWJnLCAxNSUpICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuc2lkZWJhci1mb290ZXIge1xyXG4gICAgZmxleDogMCAwICRzaWRlYmFyLWZvb3Rlci1oZWlnaHQ7XHJcbiAgICBwYWRkaW5nOiAkc2lkZWJhci1mb290ZXItcGFkZGluZy15ICRzaWRlYmFyLWZvb3Rlci1wYWRkaW5nLXg7XHJcbiAgICBiYWNrZ3JvdW5kOiAkc2lkZWJhci1mb290ZXItYmc7XHJcbiAgICBAaW5jbHVkZSBib3JkZXJzKCRzaWRlYmFyLWZvb3Rlci1ib3JkZXJzKTtcclxuICB9XHJcblxyXG4gIC5zaWRlYmFyLW1pbmltaXplciB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBmbGV4OiAwIDAgJHNpZGViYXItbWluaW1pemVyLWhlaWdodDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRzaWRlYmFyLW1pbmltaXplci1iZztcclxuICAgIGJvcmRlcjogMDtcclxuICAgIEBpbmNsdWRlIGJvcmRlcnMoJHNpZGViYXItbWluaW1pemVyLWJvcmRlcnMpO1xyXG5cclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICByaWdodDogMDtcclxuICAgICAgd2lkdGg6ICRzaWRlYmFyLW1pbmltaXplci1oZWlnaHQ7XHJcbiAgICAgIGhlaWdodDogJHNpZGViYXItbWluaW1pemVyLWhlaWdodDtcclxuICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogJHNpZGViYXItbWluaW1pemVyLWluZGljYXRvcjtcclxuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xyXG4gICAgICBiYWNrZ3JvdW5kLXNpemU6ICRzaWRlYmFyLW1pbmltaXplci1oZWlnaHQgLyA0O1xyXG4gICAgICB0cmFuc2l0aW9uOiAuM3M7XHJcbiAgICB9XHJcblxyXG4gICAgJjpmb2N1cyxcclxuICAgICYuZm9jdXMge1xyXG4gICAgICBvdXRsaW5lOiAwO1xyXG4gICAgfVxyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2lkZWJhci1taW5pbWl6ZXItaG92ZXItYmc7XHJcbiAgICAgICY6OmJlZm9yZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJHNpZGViYXItbWluaW1pemVyLWhvdmVyLWluZGljYXRvcjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludC1tb2JpbGUtdXApIHtcclxuICAuc2lkZWJhci1jb21wYWN0IHtcclxuICAgIC5zaWRlYmFyIHtcclxuICAgICAgLnNpZGViYXItbmF2IHtcclxuICAgICAgICBAaW5jbHVkZSBzaWRlYmFyLXdpZHRoKCRzaWRlYmFyLWJvcmRlcnMsICRzaWRlYmFyLWNvbXBhY3Qtd2lkdGgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAubmF2IHtcclxuICAgICAgICBAaW5jbHVkZSBzaWRlYmFyLXdpZHRoKCRzaWRlYmFyLWJvcmRlcnMsICRzaWRlYmFyLWNvbXBhY3Qtd2lkdGgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuZC1jb21wYWN0LW5vbmUge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5uYXYtdGl0bGUge1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgLm5hdi1pdGVtIHtcclxuICAgICAgICB3aWR0aDogJHNpZGViYXItY29tcGFjdC13aWR0aDtcclxuICAgICAgICBib3JkZXItbGVmdDogMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLm5hdi1saW5rIHtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG4gICAgICAgIC5uYXYtaWNvbiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgICAgbWFyZ2luOiAkc3BhY2VyIC8gNCAwO1xyXG4gICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmJhZGdlIHtcclxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgIHRvcDogMThweDtcclxuICAgICAgICAgIHJpZ2h0OiAxMHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJi5uYXYtZHJvcGRvd24tdG9nZ2xlIHtcclxuXHJcbiAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICB0b3A6IDMwcHg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBNaW5pbWl6ZWQgU2lkZWJhclxyXG4gIC5zaWRlYmFyLW1pbmltaXplZCB7XHJcbiAgICAuc2lkZWJhciB7XHJcbiAgICAgIHotaW5kZXg6ICR6aW5kZXgtc3RpY2t5IC0gMTtcclxuXHJcbiAgICAgIC5zaWRlYmFyLXNjcm9sbCB7XHJcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbiAgICAgICAgQGluY2x1ZGUgc2lkZWJhci13aWR0aCgkc2lkZWJhci1ib3JkZXJzLCAkc2lkZWJhci1taW5pbWl6ZWQtd2lkdGgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuc2lkZWJhci1uYXYge1xyXG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG4gICAgICAgIEBpbmNsdWRlIHNpZGViYXItd2lkdGgoJHNpZGViYXItYm9yZGVycywgJHNpZGViYXItbWluaW1pemVkLXdpZHRoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLm5hdiB7XHJcbiAgICAgICAgQGluY2x1ZGUgc2lkZWJhci13aWR0aCgkc2lkZWJhci1ib3JkZXJzLCAkc2lkZWJhci1taW5pbWl6ZWQtd2lkdGgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuZC1taW5pbWl6ZWQtbm9uZSxcclxuICAgICAgLm5hdi1kaXZpZGVyLFxyXG4gICAgICAubmF2LWxhYmVsLFxyXG4gICAgICAubmF2LXRpdGxlLFxyXG4gICAgICAuc2lkZWJhci1mb290ZXIsXHJcbiAgICAgIC5zaWRlYmFyLWZvcm0sXHJcbiAgICAgIC5zaWRlYmFyLWhlYWRlciB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gVGVtcG9yYXJ5IGZpeCBmb3IgdGhpcyBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL2NvcmV1aS9jb3JldWktZnJlZS1ib290c3RyYXAtYWRtaW4tdGVtcGxhdGUvaXNzdWVzLzQwNFxyXG4gICAgICAvLyBUb0RvOiBmaW5kIGJldHRlciBzb2x1dGlvblxyXG4gICAgICAuc2lkZWJhci1taW5pbWl6ZXIge1xyXG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgICBib3R0b206IDA7XHJcbiAgICAgICAgd2lkdGg6ICRzaWRlYmFyLW1pbmltaXplZC13aWR0aDtcclxuICAgICAgICBoZWlnaHQ6ICRzaWRlYmFyLW1pbmltaXplci1oZWlnaHQ7XHJcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRzaWRlYmFyLWJnLCA1JSk7XHJcbiAgICAgIH1cclxuICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUgbm8tZHVwbGljYXRlLXNlbGVjdG9yc1xyXG4gICAgICAuc2lkZWJhci1uYXYge1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkc2lkZWJhci1taW5pbWl6ZXItaGVpZ2h0O1xyXG4gICAgICB9XHJcbiAgICAgIC8vIFRlbXBvcmFyeSBmaXggZW5kXHJcblxyXG4gICAgICAuc2lkZWJhci1taW5pbWl6ZXI6OmJlZm9yZSB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTE4MGRlZyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5uYXYtaXRlbSB7XHJcbiAgICAgICAgd2lkdGg6ICRzaWRlYmFyLW1pbmltaXplZC13aWR0aDtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgIHdpZHRoOiAkc2lkZWJhci13aWR0aCArICRzaWRlYmFyLW1pbmltaXplZC13aWR0aDtcclxuICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xyXG5cclxuICAgICAgICAgID4gLm5hdi1saW5rIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNpZGViYXItbmF2LWxpbmstaG92ZXItYmc7XHJcblxyXG4gICAgICAgICAgICAubmF2LWljb24ge1xyXG4gICAgICAgICAgICAgIGNvbG9yOiAkc2lkZWJhci1uYXYtbGluay1ob3Zlci1jb2xvcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLm5hdi1saW5rIHtcclxuXHJcbiAgICAgICAgICAgICYuZGlzYWJsZWQsXHJcbiAgICAgICAgICAgIDpkaXNhYmxlZCB7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNpZGViYXItbmF2LWxpbmstZGlzYWJsZWQtYmc7XHJcblxyXG4gICAgICAgICAgICAgIC5uYXYtaWNvbiB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNpZGViYXItbmF2LWxpbmstZGlzYWJsZWQtaWNvbi1jb2xvcjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLy8gdGVtcCBmaXggZm9yIHZ1ZSB2ZXJzaW9uXHJcbiAgICAgIHNlY3Rpb24ge1xyXG4gICAgICAgIDpub3QoLm5hdi1kcm9wZG93bi1pdGVtcykgPiB7XHJcbiAgICAgICAgICAubmF2LWl0ZW06bGFzdC1jaGlsZDo6YWZ0ZXIge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJHNpZGViYXItbWluaW1pemVyLWhlaWdodDtcclxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLy8gdGVtcCBmaXggZW5kXHJcblxyXG4gICAgICAubmF2LWxpbmsge1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XHJcblxyXG4gICAgICAgIC5uYXYtaWNvbiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICAgICAgd2lkdGg6ICRzaWRlYmFyLW1pbmltaXplZC1oZWlnaHQ7XHJcbiAgICAgICAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuYmFkZ2Uge1xyXG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgICAgcmlnaHQ6IDE1cHg7XHJcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICB3aWR0aDogJHNpZGViYXItd2lkdGggKyAkc2lkZWJhci1taW5pbWl6ZWQtd2lkdGg7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2lkZWJhci1uYXYtbGluay1ob3Zlci1iZztcclxuXHJcbiAgICAgICAgICAuYmFkZ2Uge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmLm5hdi1kcm9wZG93bi10b2dnbGU6OmJlZm9yZSB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLm5hdi1kcm9wZG93bi1pdGVtcyB7XHJcbiAgICAgICAgLm5hdi1pdGVtIHtcclxuICAgICAgICAgIHdpZHRoOiAkc2lkZWJhci13aWR0aDtcclxuXHJcbiAgICAgICAgICAubmF2LWxpbmsge1xyXG4gICAgICAgICAgICB3aWR0aDogJHNpZGViYXItd2lkdGg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAubmF2ID4gLm5hdi1kcm9wZG93biB7XHJcbiAgICAgICAgPiAubmF2LWRyb3Bkb3duLWl0ZW1zIHtcclxuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDAwcHg7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2lkZWJhci1iZztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6aG92ZXIge1xyXG4gICAgICAgICAgYmFja2dyb3VuZDogJHNpZGViYXItbmF2LWxpbmstaG92ZXItYmc7XHJcbiAgICAgICAgICA+IC5uYXYtZHJvcGRvd24taXRlbXMge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgICAgIGxlZnQ6ICRzaWRlYmFyLW1pbmltaXplZC13aWR0aDtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgKltkaXI9XCJydGxcIl0ge1xyXG4gICAgLnNpZGViYXItbWluaW1pemVkIHtcclxuICAgICAgLnNpZGViYXIge1xyXG4gICAgICAgIC5uYXYge1xyXG4gICAgICAgICAgbGlzdC1zdHlsZS1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBQUFBQVAvLy95SDVCQUVBQUFBQUxBQUFBQUFCQUFFQUFBSUJSQUE3XCIpO1xyXG4gICAgICAgICAgLmRpdmlkZXIge1xyXG4gICAgICAgICAgICBoZWlnaHQ6IDA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLy5kLW1pbmltaXplZC1ub25lLFxyXG4gICAgICAgIC8vLm5hdi1kaXZpZGVyLFxyXG4gICAgICAgIC8vLm5hdi1sYWJlbCxcclxuICAgICAgICAvLy5uYXYtdGl0bGUsXHJcbiAgICAgICAgLy8uc2lkZWJhci1mb290ZXIsXHJcbiAgICAgICAgLy8uc2lkZWJhci1mb3JtLFxyXG4gICAgICAgIC8vLnNpZGViYXItaGVhZGVyIHtcclxuICAgICAgICAvLyAgZGlzcGxheTogbm9uZTtcclxuICAgICAgICAvL31cclxuXHJcbiAgICAgICAgLnNpZGViYXItbWluaW1pemVyOjpiZWZvcmUge1xyXG4gICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5uYXYtbGluayB7XHJcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG5cclxuICAgICAgICAgIC5uYXYtaWNvbiB7XHJcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAuYmFkZ2Uge1xyXG4gICAgICAgICAgICByaWdodDogYXV0bztcclxuICAgICAgICAgICAgbGVmdDogMTVweDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmOmhvdmVyIHtcclxuICAgICAgICAgICAgLmJhZGdlIHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5uYXYgPiAubmF2LWRyb3Bkb3duIHtcclxuICAgICAgICAgID4gLm5hdi1kcm9wZG93bi1pdGVtcyB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMDBweDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNpZGViYXItYmc7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzaWRlYmFyLW5hdi1saW5rLWhvdmVyLWJnO1xyXG4gICAgICAgICAgICA+IC5uYXYtZHJvcGRvd24taXRlbXMge1xyXG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuKltkaXI9XCJydGxcIl0ge1xyXG4gIC5zaWRlYmFyIHtcclxuICAgIC5uYXYtZHJvcGRvd24tdG9nZ2xlOjpiZWZvcmUge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHJpZ2h0OiBhdXRvO1xyXG4gICAgICBsZWZ0OiAkc2lkZWJhci1uYXYtbGluay1wYWRkaW5nLXg7XHJcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XHJcbiAgICB9XHJcblxyXG4gICAgLm5hdi1kcm9wZG93bi5vcGVuIHtcclxuICAgICAgPiAubmF2LWRyb3Bkb3duLXRvZ2dsZTo6YmVmb3JlIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm5hdi1saW5rIHtcclxuICAgICAgLm5hdi1pY29uIHtcclxuICAgICAgICBtYXJnaW46IDAgMCAwICgkc2lkZWJhci1uYXYtbGluay1wYWRkaW5nLXggLyAyKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmJhZGdlIHtcclxuICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICBtYXJnaW4tdG9wOiAycHg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubmF2LWxpbmsubmF2LWRyb3Bkb3duLXRvZ2dsZSB7XHJcbiAgICAgIC5iYWRnZSAge1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcclxuICAgICAgICBtYXJnaW4tbGVmdDogMTZweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zaWRlYmFyLW1pbmltaXplcjo6YmVmb3JlIHtcclxuICAgICAgcmlnaHQ6IGF1dG87XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBUZW1wIGZpeCBmb3IgcnRsIHNpZGViYXItdG9nZ2xlclxyXG4gIC8vIFRvRG86IGZpbmQgYmV0dGVyIHNvbHV0aW9uXHJcbiAgLnNpZGViYXItdG9nZ2xlciB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcclxuICB9XHJcbn1cclxuIiwiQG1peGluIHNpZGViYXItd2lkdGgoJGJvcmRlcnMsICR3aWR0aCkge1xyXG4gICRzaWRlYmFyLXdpZHRoOiAkd2lkdGg7XHJcblxyXG4gIEBlYWNoICRib3JkZXIgaW4gJGJvcmRlcnMge1xyXG4gICAgJGRpcmVjdGlvbjogbnRoKCRib3JkZXIsIDEpO1xyXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gXCJhbGxcIiB7XHJcbiAgICAgICRzaXplOiBtYXAtZ2V0KG1hcC1nZXQoJGJvcmRlcnMsICRkaXJlY3Rpb24pLCBzaXplKTtcclxuICAgICAgJHNpZGViYXItd2lkdGg6ICgkc2lkZWJhci13aWR0aCAtICgyICogJHNpemUpKTtcclxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcInJpZ2h0XCIge1xyXG4gICAgICAkc2l6ZTogbWFwLWdldChtYXAtZ2V0KCRib3JkZXJzLCAkZGlyZWN0aW9uKSwgc2l6ZSk7XHJcbiAgICAgICRzaWRlYmFyLXdpZHRoOiAkc2lkZWJhci13aWR0aCAtICRzaXplO1xyXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IFwibGVmdFwiIHtcclxuICAgICAgJHNpemU6IG1hcC1nZXQobWFwLWdldCgkYm9yZGVycywgJGRpcmVjdGlvbiksIHNpemUpO1xyXG4gICAgICAkc2lkZWJhci13aWR0aDogJHNpZGViYXItd2lkdGggLSAkc2l6ZTtcclxuICAgIH1cclxuICAgIHdpZHRoOiAkc2lkZWJhci13aWR0aDtcclxuICB9XHJcbn1cclxuIiwiLy8gVmFyaWFibGUgb3ZlcnJpZGVzXG5cbi8vIEdsb2JhbCBDb25zdGFudHNcbiRzaWRlYmFyLXdpZHRoOiAzMDBweDtcbiRtYWluLXBhZGRpbmctdG9wOiAzLjI1cmVtO1xuJG1haW4tcGFkZGluZy1sZWZ0OiAzcmVtO1xuJG1haW4tcGFkZGluZy1yaWdodDogM3JlbTtcblxuLy8gRGVmYXVsdCBDb2xvcnNcbiRiYWNrZ3JvdW5kLWNvbG9yOiAjRkNGQ0ZDO1xuJHByaW1hcnktYmx1ZS1jb2xvcjogIzJjNDA1ODtcbiRob3Zlci1ibHVlLWNvbG9yOiAjMzg1MjcxO1xuJGxpZ2h0LWJsdWUtY29sb3I6ICM0ZDVlNzI7XG4kZGFyay1ibHVlLWNvbG9yOiAjMTcyOTNFO1xuJHdoaXRlLWNvbG9yOiAjRkNGQ0ZDO1xuJG9mZi13aGl0ZS1jb2xvcjogI0Y4RjhGODtcbiRleHRyYS1saWdodC1ncmV5LWNvbG9yOiAjZThlOGU4O1xuJGRlZmF1bHQtZ3JheS1jb2xvcjogI0YyRjJGMjtcbiRob3Zlci1ncmF5LWNvbG9yOiAjREFEQkRFO1xuJGxpZ2h0LWdyZXktY29sb3I6ICNDM0M5RDA7XG4kZGFyay1ncmF5LWNvbG9yOiAjYjliOWI5O1xuJGV4dHJhLWRhcmstZ3JheS1jb2xvcjogIzczNzY4MDtcbiRsaWdodC1yZWQtY29sb3I6ICNGQTU1NTUzMztcbiRyZWQtY29sb3I6ICNGQTU1NTU7XG4kb2ZmLXJlZC1jb2xvcjogIzk4NDU0NTtcbiRibGFjay1jb2xvcjogIzIyMjIyMjtcbiR0dXJxdW9pc2UtY29sb3I6ICNCMUU3RTI7XG4kb2NlYW4tY29sb3I6ICMwMDUwNEI7XG4kc2FsbW9uLWNvbG9yOiAjRjI4ODcyO1xuJGFjdGl2ZS1jb2xvcjogIzMxYmY1ZDtcbiRpbmFjdGl2ZS1jb2xvcjogIzczNzY4MDtcbiRncmVlbi1jb2xvcjogIzYzRDU4RjtcbiR5ZWxsb3ctY29sb3I6ICNGRkQ3NEI7XG4keWVsbG93LWNvbG9yLTgwOiAjRkZENzRCQ0M7XG5cbiRrcnVnby1ncmV5OiAjQ0NDQ0NDO1xuJGtydWdvLWxpZ2h0LWdyZXk6ICNFQUVBRUE7XG4ka3J1Z28tZGFyay1ncmV5OiAjODg4ODg4O1xuJGtydWdvLWJsYWNrOiAjMzMzMzMzO1xuJGtydWdvLXdoaXRlOiAjRkNGQ0ZDO1xuJGtydWdvLXllbGxvdzogI0ZGQ0UwMDtcbiRrcnVnby1yZWQ6ICNGQTQ1NDU7XG5cblxuJHByaW1hcnktY29sb3I6ICRwcmltYXJ5LWJsdWUtY29sb3I7XG4kc2Vjb25kYXJ5LWNvbG9yOiAkd2hpdGUtY29sb3I7XG4kcHJpbWFyeS10ZXh0LWNvbG9yOiAka3J1Z28tYmxhY2s7XG4kbGlnaHQtdGV4dC1jb2xvcjogJHdoaXRlLWNvbG9yO1xuXG4vLyBOYXYgSXRlbXNcbiRuYXYtYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktYmx1ZS1jb2xvcjtcbiRuYXYtaG92ZXItY29sb3I6ICRsaWdodC1ibHVlLWNvbG9yO1xuJG5hdi1hY3RpdmUtdGV4dC1jb2xvcjogJHdoaXRlLWNvbG9yO1xuJG5hdi1hY3RpdmUtYmFja2dyb3VuZC1jb2xvcjogJGRhcmstYmx1ZS1jb2xvcjtcbiRuYXYtaW5hY3RpdmUtdGV4dC1jb2xvcjogJGxpZ2h0LWdyZXktY29sb3I7XG4kbmF2LW5vdGlmaWNhdGlvbi1waWxsLWNvbG9yOiAkcmVkLWNvbG9yO1xuXG4vLyBCdXR0b24gSXRlbXNcbiRidXR0b24td2hpdGUtdGV4dC1jb2xvcjogJHdoaXRlLWNvbG9yO1xuJGJ1dHRvbi1ibGFjay10ZXh0LWNvbG9yOiAkYmxhY2stY29sb3I7XG4kYnV0dG9uLXByZWZlcnJlZC1ob3Zlci1jb2xvcjogJGhvdmVyLWJsdWUtY29sb3I7XG4kYnV0dG9uLW5ldXRyYWwtY29sb3I6ICRkZWZhdWx0LWdyYXktY29sb3I7XG4kYnV0dG9uLW5ldXRyYWwtaG92ZXItY29sb3I6ICRob3Zlci1ncmF5LWNvbG9yO1xuJGJ1dHRvbi1kYXJrLW5ldXRyYWwtY29sb3I6ICRkYXJrLWdyYXktY29sb3I7XG4kYnV0dG9uLWRhcmstbmV1dHJhbC1ob3Zlci1jb2xvcjogJGV4dHJhLWRhcmstZ3JheS1jb2xvcjtcbiRidXR0b24tb3V0bGluZWQtaG92ZXItY29sb3I6ICRkZWZhdWx0LWdyYXktY29sb3I7XG4kYnV0dG9uLWJvcmRlci1jb2xvcjogJGhvdmVyLWdyYXktY29sb3I7XG4kYnV0dG9uLXRleHQtY29sb3I6ICR3aGl0ZS1jb2xvcjtcbiRidXR0b24tdGV4dC1ob3Zlci1jb2xvcjogJG9mZi13aGl0ZS1jb2xvcjtcblxuLy8gTGFiZWwgSXRlbXNcbiRsYWJlbC1wb3NpdGl2ZS1jb2xvcjogJHR1cnF1b2lzZS1jb2xvcjtcbiRsYWJlbC1wb3NpdGl2ZS10ZXh0LWNvbG9yOiAkb2NlYW4tY29sb3I7XG4kbGFiZWwtbmV1dHJhbC1jb2xvcjogJGhvdmVyLWdyYXktY29sb3I7XG4kbGFiZWwtbmV1dHJhbC10ZXh0LWNvbG9yOiAkYmxhY2stY29sb3I7XG4kbGFiZWwtbmVnYXRpdmUtY29sb3I6ICRzYWxtb24tY29sb3I7XG4kbGFiZWwtbmVnYXRpdmUtdGV4dC1jb2xvcjogJHdoaXRlLWNvbG9yO1xuXG4vLyBUYWJzXG4kbWF0ZXJpYWw6IChcbiAgNTA6ICNlM2YyZmQsXG4gIDEwMDogI2JiZGVmYixcbiAgMjAwOiAjOTBjYWY5LFxuICAzMDA6ICM2NGI1ZjYsXG4gIDQwMDogIzQyYTVmNSxcbiAgNTAwOiAkcHJpbWFyeS1jb2xvcixcbiAgNjAwOiAjMWU4OGU1LFxuICA3MDA6ICMxOTc2ZDIsXG4gIDgwMDogIzE1NjVjMCxcbiAgOTAwOiAjMGQ0N2ExLFxuICBBMTAwOiAjODJiMWZmLFxuICBBMjAwOiAjNDQ4YWZmLFxuICBBNDAwOiAjMjk3OWZmLFxuICBBNzAwOiAjMjk2MmZmLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkcHJpbWFyeS10ZXh0LWNvbG9yLFxuICAgIDEwMDogJHByaW1hcnktdGV4dC1jb2xvcixcbiAgICAyMDA6ICRwcmltYXJ5LXRleHQtY29sb3IsXG4gICAgMzAwOiAkcHJpbWFyeS10ZXh0LWNvbG9yLFxuICAgIDQwMDogJHByaW1hcnktdGV4dC1jb2xvcixcbiAgICA1MDA6ICRsaWdodC10ZXh0LWNvbG9yLFxuICAgIDYwMDogJGxpZ2h0LXRleHQtY29sb3IsXG4gICAgNzAwOiAkbGlnaHQtdGV4dC1jb2xvcixcbiAgICA4MDA6ICRsaWdodC10ZXh0LWNvbG9yLFxuICAgIDkwMDogJGxpZ2h0LXRleHQtY29sb3IsXG4gICAgQTEwMDogJHByaW1hcnktdGV4dC1jb2xvcixcbiAgICBBMjAwOiAkbGlnaHQtdGV4dC1jb2xvcixcbiAgICBBNDAwOiAkbGlnaHQtdGV4dC1jb2xvcixcbiAgICBBNzAwOiAkbGlnaHQtdGV4dC1jb2xvcixcbiAgKVxuKTtcblxuLy8gRHJvcCBEb3duXG4kZHJvcGRvd24tYmFzZS1jb2xvcjogJGRlZmF1bHQtZ3JheS1jb2xvcjtcbiRkcm9wZG93bi1ob3Zlci1jb2xvcjogJHdoaXRlLWNvbG9yO1xuJGRyb3Bkb3duLXRleHQtY29sb3I6ICRibGFjay1jb2xvcjtcbiRkcm9wZG93bi1ib3JkZXItY29sb3I6ICRibGFjay1jb2xvcjtcbiRkcm9wZG93bi1ob3Zlci1jb2xvcjogJHdoaXRlLWNvbG9yO1xuJGRyb3Bkb3duLWhvdmVyLWJvcmRlci1jb2xvcjogJGJsYWNrLWNvbG9yO1xuJGRyb3Bkb3duLWhvdmVyLXRleHQtY29sb3I6ICRibGFjay1jb2xvcjtcblxuLy8gUGlsbHNcbiRwaWxsLXRleHQtY29sb3I6ICRibGFjay1jb2xvcjtcbiRwaWxsLXRleHQtYWN0aXZlLWNvbG9yOiAkYmxhY2stY29sb3I7XG4kcGlsbC1kZWZhdWx0LWNvbG9yOiAkZGVmYXVsdC1ncmF5LWNvbG9yO1xuJHBpbGwtaG92ZXItY29sb3I6ICRob3Zlci1ncmF5LWNvbG9yO1xuJHBpbGwtYWN0aXZlLWNvbG9yOiAka3J1Z28tbGlnaHQtZ3JleTtcblxuLy8gQ2hlY2tib3hlc1xuJGNoZWNrYm94LWJhc2UtY29sb3I6ICRrcnVnby13aGl0ZTtcbiRjaGVja2JveC1ob3Zlci1jb2xvcjogJGtydWdvLXdoaXRlO1xuJGNoZWNrYm94LWNoZWNrbWFyay1jb2xvcjogJGtydWdvLWJsYWNrO1xuJGNoZWNrYm94LWNoZWNrZWQtY29sb3I6ICRrcnVnby13aGl0ZTtcblxuLy8gU3dpdGNoZXNcbiRzd2l0Y2gtYmFzZS1jb2xvcjogJGV4dHJhLWxpZ2h0LWdyZXktY29sb3I7XG4kc3dpdGNoLWhvdmVyLWNvbG9yOiAkaG92ZXItZ3JheS1jb2xvcjtcbiRzd2l0Y2gtYWN0aXZhdGVkLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcblxuLy8gUmFkaW9cbiRyYWRpby1iYXNlLWNvbG9yOiAkZGVmYXVsdC1ncmF5LWNvbG9yO1xuJHJhZGlvLWhvdmVyLWNvbG9yOiAkaG92ZXItZ3JheS1jb2xvcjtcbiRyYWRpby1hY3RpdmF0ZWQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXG4vLyBUb2dnbGVcbiR0b2dnbGUtYmFzZS1jb2xvcjogJGRlZmF1bHQtZ3JheS1jb2xvcjtcbiR0b2dnbGUtaG92ZXItY29sb3I6ICRob3Zlci1ncmF5LWNvbG9yO1xuJHRvZ2dsZS1hY3RpdmF0ZWQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuXG4vLyBNZWRpYSBVcGxvYWRcbiRtZWRpYS11cGxvYWQtYm9yZGVyOiAkaG92ZXItZ3JheS1jb2xvcjtcbiRtZWRpYS11cGxvYWQtYmFja2dyb3VuZDogJG9mZi13aGl0ZS1jb2xvcjtcbiRtZWRpYS11cGxvYWQtYmx1ZS1jb2xvcjogIzM4OEVGQztcbiRtZWRpYS11cGxvYWQtZ3JleS1jb2xvcjogJGV4dHJhLWRhcmstZ3JheS1jb2xvcjtcbiRtZWRpYS1uYW1lLWNvbG9yOiAjQTJBMkEyO1xuJG1lZGlhLXNpemUtY29sb3I6ICNBMkEyQTI7XG4kbWVkaWEtZXJyb3ItY29sb3I6ICRyZWQtY29sb3I7XG5cbi8vIExpc3RzXG4kbGlzdC1iYWNrZ3JvdW5kLWNvbG9yOiAjRkRGREZEO1xuJGxpc3QtYm9yZGVyLWNvbG9yOiAjNzA3MDcwO1xuJGxpc3QtaG92ZXItY29sb3I6ICRvZmYtd2hpdGUtY29sb3I7XG4kbGlzdC1hY3RpdmUtY29sb3I6ICNERUVDRkY7XG5cbi8vIENhcmRzXG4kY2FyZC1iYXNlLWNvbG9yOiAjOUZBMkFEO1xuJGNhcmQtYmFubmVyLWNvbG9yOiAkZGVmYXVsdC1ncmF5LWNvbG9yO1xuJGNhcmQtaG92ZXItY29sb3I6ICRob3Zlci1ncmF5LWNvbG9yO1xuJGNhcmQtdGl0bGUtY29sb3I6ICRleHRyYS1kYXJrLWdyYXktY29sb3I7XG4kY2FyZC10ZXh0LWNvbG9yOiAkYmxhY2stY29sb3I7XG5cbi8vIFRvYXN0clxuJHRvYXN0ci1zdWNjZXNzLWNvbG9yOiAkZ3JlZW4tY29sb3I7XG4kdG9hc3RyLWluZm8tY29sb3I6ICRrcnVnby1kYXJrLWdyZXk7XG4kdG9hc3RyLXdhcm5pbmctY29sb3I6ICR5ZWxsb3ctY29sb3I7XG4kdG9hc3RyLWVycm9yLWNvbG9yOiAkc2FsbW9uLWNvbG9yO1xuXG4vLyBMb2FkaW5nXG4kcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQtY29sb3I6ICRvZmYtd2hpdGUtY29sb3I7XG4kcHJvZ3Jlc3MtYmFyLXByb2dyZXNzLWNvbG9yOiAkcHJpbWFyeS1ibHVlLWNvbG9yO1xuJHByb2dyZXNzLWJhci1lcnJvci1jb2xvcjogJHJlZC1jb2xvcjtcbiRwcm9ncmVzcy1iYXItc3VjY2Vzcy1jb2xvcjogJGdyZWVuLWNvbG9yO1xuXG4vLyBUZXh0ZmllbGRcbiR0ZXh0ZmllbGQtZmlsbC1jb2xvcjogJGRlZmF1bHQtZ3JheS1jb2xvcjtcbiR0ZXh0ZmllbGQtZm9jdXMtYm9yZGVyLWNvbG9yOiAkYmxhY2stY29sb3I7XG4kdGV4dGZpZWxkLWZvY3VzLWZpbGwtY29sb3I6ICR3aGl0ZS1jb2xvcjtcbiR0ZXh0ZmllbGQtZXJyb3ItcmVkLWNvbG9yOiAkcmVkLWNvbG9yO1xuXG4vLyBEYXRhdGFibGVcbiRkYXRhdGFibGUtaG92ZXItYmFja2dyb3VuZDogJGxpZ2h0LWdyZXktY29sb3I7XG4kZGF0YXRhYmxlLW5lc3RlZC1yb3ctYmFja2dyb3VuZDogJGV4dHJhLWxpZ2h0LWdyZXktY29sb3I7XG4kZGF0YXRhYmxlLW5lc3RlZC1yb3ctYm9yZGVyOiAkcHJpbWFyeS1ibHVlLWNvbG9yO1xuJGRhdGF0YWJsZS1mb290ZXItdGV4dDogJGV4dHJhLWRhcmstZ3JheS1jb2xvcjtcbiRkYXRhdGFibGUtcGFnaW5hdGlvbi1ncmV5OiAkZGVmYXVsdC1ncmF5LWNvbG9yO1xuJGRhdGF0YWJsZS1wYWdpbmF0aW9uLWhvdmVyOiAkaG92ZXItZ3JheS1jb2xvcjtcbiRkYXRhdGFibGUtcGFnaW5hdGlvbi1zZWxlY3RlZC1jb2xvcjogJHByaW1hcnktYmx1ZS1jb2xvcjtcbiRkYXRhdGFibGUtcGFnaW5hdGlvbi1hY3RpdmUtdGV4dDogJHdoaXRlLWNvbG9yO1xuJGRhdGF0YWJsZS1wYWdpbmF0aW9uLWRpc2FibGVkOiAkb2ZmLXdoaXRlLWNvbG9yO1xuXG4vLyBTY3JvbGxiYXJcbiRzY3JvbGxiYXItYmctY29sb3I6ICR3aGl0ZS1jb2xvcjtcbiRzY3JvbGxiYXItY29sb3I6ICRsaWdodC1ibHVlLWNvbG9yO1xuIiwiLy9cclxuLy8gQmFzZSBzdHlsZXNcclxuLy9cclxuXHJcbi5zd2l0Y2gge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB3aWR0aDogJHN3aXRjaC13aWR0aDtcclxuICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xyXG59XHJcblxyXG4uc3dpdGNoLWlucHV0IHtcclxuICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4uc3dpdGNoLXNsaWRlciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIGhlaWdodDogaW5oZXJpdDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJHN3aXRjaC1iZztcclxuICBib3JkZXI6ICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICB0cmFuc2l0aW9uOiAuMTVzIGVhc2Utb3V0O1xyXG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMpO1xyXG5cclxuICAmOjpiZWZvcmUge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAkc3dpdGNoLWhhbmRsZS1tYXJnaW47XHJcbiAgICBsZWZ0OiAkc3dpdGNoLWhhbmRsZS1tYXJnaW47XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0IC0gKCRzd2l0Y2gtaGFuZGxlLW1hcmdpbiAqIDIpIC0gKCRib3JkZXItd2lkdGggKiAyKTtcclxuICAgIGhlaWdodDogJHN3aXRjaC1oZWlnaHQgLSAoJHN3aXRjaC1oYW5kbGUtbWFyZ2luICogMikgLSAoJGJvcmRlci13aWR0aCAqIDIpO1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRzd2l0Y2gtaGFuZGxlLWJnO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIHRyYW5zaXRpb246IC4xNXMgZWFzZS1vdXQ7XHJcbiAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzIC8gMik7XHJcbiAgfVxyXG59XHJcblxyXG4uc3dpdGNoLWlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXNsaWRlciB7XHJcbiAgJjo6YmVmb3JlIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkc3dpdGNoLXdpZHRoIC0gJHN3aXRjaC1oZWlnaHQpO1xyXG4gIH1cclxufVxyXG5cclxuLnN3aXRjaC1pbnB1dDpkaXNhYmxlZCB+IC5zd2l0Y2gtc2xpZGVyIHtcclxuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG4gIG9wYWNpdHk6IC41O1xyXG59XHJcblxyXG4vL1xyXG4vLyBTd2l0Y2ggU2l6ZXNcclxuLy9cclxuXHJcbi5zd2l0Y2gtbGcge1xyXG4gIEBpbmNsdWRlIHN3aXRjaC1zaXplKCRzd2l0Y2gtbGctd2lkdGgsICRzd2l0Y2gtbGctaGVpZ2h0LCAkc3dpdGNoLWxnLWZvbnQtc2l6ZSwgJHN3aXRjaC1oYW5kbGUtbWFyZ2luKTtcclxufVxyXG5cclxuLnN3aXRjaC1zbSB7XHJcbiAgQGluY2x1ZGUgc3dpdGNoLXNpemUoJHN3aXRjaC1zbS13aWR0aCwgJHN3aXRjaC1zbS1oZWlnaHQsICRzd2l0Y2gtc20tZm9udC1zaXplLCAkc3dpdGNoLWhhbmRsZS1tYXJnaW4pO1xyXG59XHJcblxyXG4vL1xyXG4vLyBTd2l0Y2ggd2l0aCBsYWJlbFxyXG4vL1xyXG4uc3dpdGNoLWxhYmVsIHtcclxuICB3aWR0aDogJHN3aXRjaC1sYWJlbC13aWR0aDtcclxuXHJcbiAgLnN3aXRjaC1zbGlkZXIge1xyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgei1pbmRleDogMjtcclxuICAgIH1cclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDUwJTtcclxuICAgICAgcmlnaHQ6IDFweDtcclxuICAgICAgei1pbmRleDogMTtcclxuICAgICAgd2lkdGg6IDUwJTtcclxuICAgICAgbWFyZ2luLXRvcDogLS41ZW07XHJcbiAgICAgIGZvbnQtc2l6ZTogJHN3aXRjaC1mb250LXNpemU7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xyXG4gICAgICBjb2xvcjogJGdyYXktMzAwO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS11bmNoZWNrZWQpO1xyXG4gICAgICB0cmFuc2l0aW9uOiBpbmhlcml0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLnN3aXRjaC1pbnB1dDpjaGVja2VkIH4gLnN3aXRjaC1zbGlkZXIge1xyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRzd2l0Y2gtbGFiZWwtd2lkdGggLSAkc3dpdGNoLWhlaWdodCk7XHJcbiAgICB9XHJcbiAgICAmOjphZnRlciB7XHJcbiAgICAgIGxlZnQ6IDFweDtcclxuICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1jaGVja2VkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFNpemVzXHJcbiAgJi5zd2l0Y2gtbGcge1xyXG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUoJHN3aXRjaC1sYWJlbC1sZy13aWR0aCwgJHN3aXRjaC1sZy1oZWlnaHQsICRzd2l0Y2gtbGctZm9udC1zaXplLCAkc3dpdGNoLWhhbmRsZS1tYXJnaW4pO1xyXG4gIH1cclxuXHJcbiAgJi5zd2l0Y2gtc20ge1xyXG4gICAgQGluY2x1ZGUgc3dpdGNoLXNpemUoJHN3aXRjaC1sYWJlbC1zbS13aWR0aCwgJHN3aXRjaC1zbS1oZWlnaHQsICRzd2l0Y2gtc20tZm9udC1zaXplLCAkc3dpdGNoLWhhbmRsZS1tYXJnaW4pO1xyXG4gIH1cclxufVxyXG5cclxuLy9cclxuLy8gU3dpdGNoIDNkXHJcbi8vXHJcblxyXG4uc3dpdGNoLTNkIHtcclxuICAuc3dpdGNoLXNsaWRlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JheS0xMDA7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MGVtO1xyXG5cclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIHRvcDogLTFweDtcclxuICAgICAgbGVmdDogLTFweDtcclxuICAgICAgd2lkdGg6ICRzd2l0Y2gtaGVpZ2h0O1xyXG4gICAgICBoZWlnaHQ6ICRzd2l0Y2gtaGVpZ2h0O1xyXG4gICAgICBib3JkZXI6IDA7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwZW07XHJcbiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDVweCByZ2JhKDAsIDAsIDAsIC4zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFNpemVzXHJcbiAgJi5zd2l0Y2gtbGcge1xyXG4gICAgQGluY2x1ZGUgc3dpdGNoLTNkLXNpemUoJHN3aXRjaC1sZy13aWR0aCwgJHN3aXRjaC1sZy1oZWlnaHQpO1xyXG4gIH1cclxuXHJcbiAgJi5zd2l0Y2gtc20ge1xyXG4gICAgQGluY2x1ZGUgc3dpdGNoLTNkLXNpemUoJHN3aXRjaC1zbS13aWR0aCwgJHN3aXRjaC1zbS1oZWlnaHQpO1xyXG4gIH1cclxufVxyXG5cclxuLy9cclxuLy8gU3dpdGNoIFZhcmlhbnRzXHJcbi8vXHJcblxyXG5AZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkdGhlbWUtY29sb3JzIHtcclxuICAvL25vcm1hbCBzdHlsZVxyXG4gIC5zd2l0Y2gtI3skY29sb3J9IHtcclxuICAgIEBpbmNsdWRlIHN3aXRjaC12YXJpYW50KCR2YWx1ZSk7XHJcbiAgfVxyXG4gIC8vb3V0bGluZSBzdHlsZVxyXG4gIC5zd2l0Y2gtb3V0bGluZS0jeyRjb2xvcn0ge1xyXG4gICAgQGluY2x1ZGUgc3dpdGNoLW91dGxpbmUtdmFyaWFudCgkdmFsdWUpO1xyXG4gIH1cclxuICAvL291dGxpbmUgYWx0ZXJuYXRpdmUgc3R5bGVcclxuICAuc3dpdGNoLW91dGxpbmUtI3skY29sb3J9LWFsdCB7XHJcbiAgICBAaW5jbHVkZSBzd2l0Y2gtb3V0bGluZS12YXJpYW50LWFsdCgkdmFsdWUpO1xyXG4gIH1cclxufVxyXG5cclxuLy9cclxuLy8gUGlsbCBTdHlsZVxyXG4vL1xyXG5cclxuLnN3aXRjaC1waWxsIHtcclxuICAuc3dpdGNoLXNsaWRlciB7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MGVtO1xyXG5cclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwZW07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIkBtaXhpbiBzd2l0Y2gtc2l6ZSgkd2lkdGgsICRoZWlnaHQsICRmb250LXNpemUsICRoYW5kbGUtbWFyZ2luKSB7XHJcbiAgd2lkdGg6ICR3aWR0aDtcclxuICBoZWlnaHQ6ICRoZWlnaHQ7XHJcblxyXG4gIC5zd2l0Y2gtc2xpZGVyIHtcclxuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcclxuXHJcbiAgICAmOjpiZWZvcmUge1xyXG4gICAgICB3aWR0aDogJGhlaWdodCAtICgkaGFuZGxlLW1hcmdpbiAqIDIpIC0gKCRib3JkZXItd2lkdGggKiAyKTtcclxuICAgICAgaGVpZ2h0OiAkaGVpZ2h0IC0gKCRoYW5kbGUtbWFyZ2luICogMikgLSAoJGJvcmRlci13aWR0aCAqIDIpO1xyXG4gICAgfVxyXG4gICAgJjo6YWZ0ZXIge1xyXG4gICAgICBmb250LXNpemU6ICRmb250LXNpemU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuc3dpdGNoLWlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXNsaWRlciB7XHJcbiAgICAmOjpiZWZvcmUge1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHdpZHRoIC0gJGhlaWdodCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gc3dpdGNoLTNkLXNpemUoJHdpZHRoLCAkaGVpZ2h0KSB7XHJcbiAgd2lkdGg6ICR3aWR0aDtcclxuICBoZWlnaHQ6ICRoZWlnaHQ7XHJcblxyXG4gIC5zd2l0Y2gtc2xpZGVyOjpiZWZvcmUge1xyXG4gICAgd2lkdGg6ICRoZWlnaHQ7XHJcbiAgICBoZWlnaHQ6ICRoZWlnaHQ7XHJcbiAgfVxyXG5cclxuICAuc3dpdGNoLWlucHV0OmNoZWNrZWQgfiAuc3dpdGNoLXNsaWRlciB7XHJcbiAgICAmOjpiZWZvcmUge1xyXG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJHdpZHRoIC0gJGhlaWdodCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gc3dpdGNoLXZhcmlhbnQoJGNvbG9yKSB7XHJcbiAgLnN3aXRjaC1pbnB1dDpjaGVja2VkICsgLnN3aXRjaC1zbGlkZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xyXG4gICAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oJGNvbG9yLCAxMCUpO1xyXG5cclxuICAgICY6OmJlZm9yZSB7XHJcbiAgICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCRjb2xvciwgMTAlKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBzd2l0Y2gtb3V0bGluZS12YXJpYW50KCRjb2xvcikge1xyXG4gIC5zd2l0Y2gtaW5wdXQ6Y2hlY2tlZCArIC5zd2l0Y2gtc2xpZGVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICRzd2l0Y2gtYmc7XHJcbiAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcclxuXHJcbiAgICAmOjpiZWZvcmUge1xyXG4gICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcclxuICAgIH1cclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgY29sb3I6ICRjb2xvcjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBzd2l0Y2gtb3V0bGluZS12YXJpYW50LWFsdCgkY29sb3IpIHtcclxuICAuc3dpdGNoLWlucHV0OmNoZWNrZWQgKyAuc3dpdGNoLXNsaWRlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3dpdGNoLWJnO1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XHJcblxyXG4gICAgJjo6YmVmb3JlIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xyXG4gICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcclxuICAgIH1cclxuICAgICY6OmFmdGVyIHtcclxuICAgICAgY29sb3I6ICRjb2xvcjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLnRhYmxlLW91dGxpbmUge1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICR0YWJsZS1ib3JkZXItY29sb3I7XHJcblxyXG4gIHRkIHtcclxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgfVxyXG59XHJcblxyXG4udGFibGUtYWxpZ24tbWlkZGxlIHtcclxuXHJcbiAgdGQge1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICB9XHJcbn1cclxuXHJcbi50YWJsZS1jbGVhciB7XHJcbiAgdGQge1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gIH1cclxufVxyXG4iLCIvLyBJRTEwJjExIEZsZXhib3ggZml4XHJcbkBtZWRpYSBhbGwgYW5kICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSkge1xyXG4gIGh0bWwge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgfVxyXG59XHJcblxyXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci10eXBlLW5vLXVua25vd24sIG5vLWR1cGxpY2F0ZS1zZWxlY3RvcnMsIHNlbGVjdG9yLW5vLXF1YWxpZnlpbmctdHlwZSwgc2VsZWN0b3ItbWF4LWNvbWJpbmF0b3JzXHJcbi8vIGFwcC1kYXNoYm9hcmQgYW5kIGFwcC1yb290IGFyZSBBbmd1bGFyMisgc2VsZWN0b3JzLiBZb3UgY2FuIGFkZCBoZXJlIHlvdXIgb3duIHNlbGVjdG9ycyBpZiB5b3UgbmVlZC5cclxuLmFwcCxcclxuYXBwLWRhc2hib2FyZCxcclxuYXBwLXJvb3Qge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBtaW4taGVpZ2h0OiAxMDB2aDtcclxufVxyXG5cclxuLmFwcC1oZWFkZXIge1xyXG4gIGZsZXg6IDAgMCAkbmF2YmFyLWhlaWdodDtcclxufVxyXG5cclxuLmFwcC1mb290ZXIge1xyXG4gIGZsZXg6IDAgMCAkZm9vdGVyLWhlaWdodDtcclxufVxyXG5cclxuLmFwcC1ib2R5IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgZmxleC1ncm93OiAxO1xyXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuXHJcbiAgLm1haW4ge1xyXG4gICAgZmxleDogMTtcclxuICAgIG1pbi13aWR0aDogMDtcclxuICB9XHJcblxyXG4gIC5zaWRlYmFyIHtcclxuICAgIC8vICRzaWRlYmFyLXdpZHRoIGlzIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uc1xyXG4gICAgZmxleDogMCAwICRzaWRlYmFyLXdpZHRoO1xyXG4gICAgLy8gcHV0IHRoZSBuYXYgb24gdGhlIGxlZnRcclxuICAgIG9yZGVyOiAtMTtcclxuICB9XHJcblxyXG4gIC5hc2lkZS1tZW51IHtcclxuICAgIC8vICRhc2lkZS1tZW51LXdpZHRoIGlzIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uc1xyXG4gICAgZmxleDogMCAwICRhc2lkZS1tZW51LXdpZHRoO1xyXG4gIH1cclxufVxyXG5cclxuaHRtbDpub3QoW2Rpcj1cInJ0bFwiXSkge1xyXG4gIC5zaWRlYmFyIHtcclxuICAgIG1hcmdpbi1sZWZ0OiAtICRzaWRlYmFyLXdpZHRoO1xyXG4gIH1cclxuICAuYXNpZGUtbWVudSB7XHJcbiAgICByaWdodDogMDtcclxuICAgIG1hcmdpbi1yaWdodDogLSAkYXNpZGUtbWVudS13aWR0aDtcclxuICB9XHJcbn1cclxuaHRtbFtkaXI9XCJydGxcIl0ge1xyXG4gIC5zaWRlYmFyIHtcclxuICAgIG1hcmdpbi1yaWdodDogLSAkc2lkZWJhci13aWR0aDtcclxuICB9XHJcbiAgLmFzaWRlLW1lbnUge1xyXG4gICAgbGVmdDogMDtcclxuICAgIG1hcmdpbi1sZWZ0OiAtICRhc2lkZS1tZW51LXdpZHRoO1xyXG4gIH1cclxufVxyXG5cclxuQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludC1tb2JpbGUtdXApIHtcclxuICAvL1xyXG4gIC8vIEhlYWRlclxyXG4gIC8vXHJcbiAgLmhlYWRlci1maXhlZCB7XHJcbiAgICAuYXBwLWhlYWRlciB7XHJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgei1pbmRleDogJHppbmRleC1zdGlja3k7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgfVxyXG4gICAgLmFwcC1ib2R5IHtcclxuICAgICAgbWFyZ2luLXRvcDogJG5hdmJhci1oZWlnaHQ7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vXHJcbiAgLy8gU2lkZWJhclxyXG4gIC8vXHJcbiAgLnNpZGViYXItZml4ZWQge1xyXG4gICAgLnNpZGViYXIge1xyXG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgIHotaW5kZXg6ICR6aW5kZXgtc3RpY2t5IC0gMTtcclxuICAgICAgd2lkdGg6ICRzaWRlYmFyLXdpZHRoO1xyXG4gICAgICBoZWlnaHQ6IDEwMHZoO1xyXG4gICAgfVxyXG4gIH1cclxuICAuc2lkZWJhci1maXhlZCB7XHJcbiAgICAuYXBwLWhlYWRlciArIC5hcHAtYm9keSAuc2lkZWJhciB7XHJcbiAgICAgIGhlaWdodDogY2FsYygxMDB2aCAtICN7JG5hdmJhci1oZWlnaHR9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zaWRlYmFyLWNvbXBhY3Qge1xyXG4gICAgLnNpZGViYXIge1xyXG4gICAgICBmbGV4OiAwIDAgJHNpZGViYXItY29tcGFjdC13aWR0aDtcclxuICAgIH1cclxuXHJcbiAgICAmLnNpZGViYXItZml4ZWQge1xyXG4gICAgICAuc2lkZWJhciB7XHJcbiAgICAgICAgd2lkdGg6ICRzaWRlYmFyLWNvbXBhY3Qtd2lkdGg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5zaWRlYmFyLW1pbmltaXplciB7XHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuc2lkZWJhci1taW5pbWl6ZWQge1xyXG4gICAgLnNpZGViYXIge1xyXG4gICAgICBmbGV4OiAwIDAgJHNpZGViYXItbWluaW1pemVkLXdpZHRoO1xyXG4gICAgfVxyXG5cclxuICAgICYuc2lkZWJhci1maXhlZCB7XHJcbiAgICAgIC5zaWRlYmFyIHtcclxuICAgICAgICB3aWR0aDogJHNpZGViYXItbWluaW1pemVkLXdpZHRoO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuc2lkZWJhci1vZmYtY2FudmFzIHtcclxuICAgIC5zaWRlYmFyIHtcclxuICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICB6LWluZGV4OiAkemluZGV4LXN0aWNreSAtIDE7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zaWRlYmFyLW9mZi1jYW52YXMge1xyXG4gICAgLmFwcC1oZWFkZXIgKyAuYXBwLWJvZHkgLnNpZGViYXIge1xyXG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAjeyRuYXZiYXItaGVpZ2h0fSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBodG1sOm5vdChbZGlyPVwicnRsXCJdKSB7XHJcbiAgICAuc2lkZWJhci1jb21wYWN0IHtcclxuICAgICAgLnNpZGViYXIge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtICRzaWRlYmFyLWNvbXBhY3Qtd2lkdGg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC5zaWRlYmFyLW1pbmltaXplZCB7XHJcbiAgICAgIC5zaWRlYmFyIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogLSAkc2lkZWJhci1taW5pbWl6ZWQtd2lkdGg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgaHRtbFtkaXI9XCJydGxcIl0ge1xyXG4gICAgLnNpZGViYXItY29tcGFjdCB7XHJcbiAgICAgIC5zaWRlYmFyIHtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0gJHNpZGViYXItY29tcGFjdC13aWR0aDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLnNpZGViYXItbWluaW1pemVkIHtcclxuICAgICAgLnNpZGViYXIge1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogLSAkc2lkZWJhci1taW5pbWl6ZWQtd2lkdGg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vXHJcbiAgLy8gQXNpZGUgTWVudVxyXG4gIC8vXHJcbiAgLmFzaWRlLW1lbnUtZml4ZWQge1xyXG4gICAgLmFzaWRlLW1lbnUge1xyXG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgIGhlaWdodDogMTAwJTtcclxuXHJcbiAgICAgIC50YWItY29udGVudCB7XHJcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gI3skYXNpZGUtbWVudS1uYXYtcGFkZGluZy15ICogMiArICRmb250LXNpemUtYmFzZX0gLSAjeyRuYXZiYXItaGVpZ2h0fSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5hc2lkZS1tZW51LWZpeGVkIHtcclxuICAgIC5hcHAtaGVhZGVyICsgLmFwcC1ib2R5IC5hc2lkZS1tZW51IHtcclxuICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gI3skbmF2YmFyLWhlaWdodH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLmFzaWRlLW1lbnUtb2ZmLWNhbnZhcyB7XHJcbiAgICAuYXNpZGUtbWVudSB7XHJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgei1pbmRleDogJHppbmRleC1zdGlja3kgLSAxO1xyXG4gICAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAuYXNpZGUtbWVudS1vZmYtY2FudmFzIHtcclxuICAgIC5hcHAtaGVhZGVyICsgLmFwcC1ib2R5IC5hc2lkZS1tZW51IHtcclxuICAgICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gI3skbmF2YmFyLWhlaWdodH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaHRtbDpub3QoW2Rpcj1cInJ0bFwiXSkge1xyXG4gICAgLmFzaWRlLW1lbnUtZml4ZWQsXHJcbiAgICAuYXNpZGUtbWVudS1vZmYtY2FudmFzIHtcclxuICAgICAgLmFzaWRlLW1lbnUge1xyXG4gICAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGh0bWxbZGlyPVwicnRsXCJdIHtcclxuICAgIC5hc2lkZS1tZW51LWZpeGVkLFxyXG4gICAgLmFzaWRlLW1lbnUtb2ZmLWNhbnZhcyB7XHJcbiAgICAgIC5hc2lkZS1tZW51IHtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vL1xyXG4vLyBCcmVhZGNydW1iXHJcbi8vXHJcbi5icmVhZGNydW1iLWZpeGVkIHtcclxuICAubWFpbiB7XHJcbiAgICAkYnJlYWRjcnVtYi1oZWlnaHQ6IDIgKiAkYnJlYWRjcnVtYi1wYWRkaW5nLXkgKyAkZm9udC1zaXplLWJhc2UgKyAxLjUgKiAkc3BhY2VyO1xyXG4gICAgcGFkZGluZy10b3A6ICRicmVhZGNydW1iLWhlaWdodDtcclxuICB9XHJcblxyXG4gIC5icmVhZGNydW1iIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHRvcDogJG5hdmJhci1oZWlnaHQ7XHJcbiAgICByaWdodDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB6LWluZGV4OiAkemluZGV4LXN0aWNreSAtIDM7XHJcbiAgfVxyXG59XHJcblxyXG5AZWFjaCAkYnJlYWtwb2ludCBpbiBtYXAta2V5cygkZ3JpZC1icmVha3BvaW50cykge1xyXG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQpIHtcclxuICAgICRpbmZpeDogYnJlYWtwb2ludC1pbmZpeCgkYnJlYWtwb2ludCwgJGdyaWQtYnJlYWtwb2ludHMpO1xyXG4gICAgaHRtbDpub3QoW2Rpcj1cInJ0bFwiXSkge1xyXG4gICAgICAuc2lkZWJhciN7JGluZml4fS1zaG93LFxyXG4gICAgICAuc2lkZWJhci1zaG93IHtcclxuICAgICAgICAuc2lkZWJhciB7XHJcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgQGlmICRicmVha3BvaW50ICE9IFwieHNcIiB7XHJcbiAgICAgICAgICAmLnNpZGViYXItZml4ZWQge1xyXG4gICAgICAgICAgICAubWFpbixcclxuICAgICAgICAgICAgLmFwcC1mb290ZXIge1xyXG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2lkZWJhci13aWR0aDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLnNpZGViYXItY29tcGFjdCB7XHJcbiAgICAgICAgICAgICAgLm1haW4sXHJcbiAgICAgICAgICAgICAgLmFwcC1mb290ZXIge1xyXG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRzaWRlYmFyLWNvbXBhY3Qtd2lkdGg7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYuc2lkZWJhci1taW5pbWl6ZWQge1xyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkYnJlYWtwb2ludC1tb2JpbGUtZG93bikge1xyXG4gICAgICAgICAgICAgICAgLm1haW4sXHJcbiAgICAgICAgICAgICAgICAuYXBwLWZvb3RlciB7XHJcbiAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkc2lkZWJhci13aWR0aDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludC1tb2JpbGUtdXApIHtcclxuICAgICAgICAgICAgICAgIC5tYWluLFxyXG4gICAgICAgICAgICAgICAgLmFwcC1mb290ZXIge1xyXG4gICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogJHNpZGViYXItbWluaW1pemVkLXdpZHRoO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgJi5icmVhZGNydW1iLWZpeGVkIHtcclxuICAgICAgICAgICAgLmJyZWFkY3J1bWIge1xyXG4gICAgICAgICAgICAgIGxlZnQ6ICRzaWRlYmFyLXdpZHRoO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYuc2lkZWJhci1jb21wYWN0IHtcclxuICAgICAgICAgICAgICAuYnJlYWRjcnVtYiB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAkc2lkZWJhci1jb21wYWN0LXdpZHRoO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAmLnNpZGViYXItbWluaW1pemVkIHtcclxuICAgICAgICAgICAgICAuYnJlYWRjcnVtYiB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0OiAkc2lkZWJhci1taW5pbWl6ZWQtd2lkdGg7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAuYXNpZGUtbWVudS1zaG93LFxyXG4gICAgICAuYXNpZGUtbWVudSN7JGluZml4fS1zaG93IHtcclxuICAgICAgICAuYXNpZGUtbWVudSB7XHJcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAkYnJlYWtwb2ludCAhPSBcInhzXCIge1xyXG4gICAgICAgICAgJi5hc2lkZS1tZW51LWZpeGVkIHtcclxuICAgICAgICAgICAgLm1haW4sXHJcbiAgICAgICAgICAgIC5hcHAtZm9vdGVyIHtcclxuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRhc2lkZS1tZW51LXdpZHRoO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAmLmJyZWFkY3J1bWItZml4ZWQge1xyXG4gICAgICAgICAgICAuYnJlYWRjcnVtYiB7XHJcbiAgICAgICAgICAgICAgcmlnaHQ6ICRhc2lkZS1tZW51LXdpZHRoO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaHRtbFtkaXI9XCJydGxcIl0ge1xyXG4gICAgICAuc2lkZWJhciN7JGluZml4fS1zaG93LFxyXG4gICAgICAuc2lkZWJhci1zaG93IHtcclxuICAgICAgICAuc2lkZWJhciB7XHJcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAkYnJlYWtwb2ludCAhPSBcInhzXCIge1xyXG4gICAgICAgICAgJi5zaWRlYmFyLWZpeGVkIHtcclxuICAgICAgICAgICAgLm1haW4sXHJcbiAgICAgICAgICAgIC5hcHAtZm9vdGVyIHtcclxuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRzaWRlYmFyLXdpZHRoO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYuc2lkZWJhci1jb21wYWN0IHtcclxuICAgICAgICAgICAgICAubWFpbixcclxuICAgICAgICAgICAgICAuYXBwLWZvb3RlciB7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRzaWRlYmFyLWNvbXBhY3Qtd2lkdGg7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYuc2lkZWJhci1taW5pbWl6ZWQge1xyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkYnJlYWtwb2ludC1tb2JpbGUtZG93bikge1xyXG4gICAgICAgICAgICAgICAgLm1haW4sXHJcbiAgICAgICAgICAgICAgICAuYXBwLWZvb3RlciB7XHJcbiAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHNpZGViYXItd2lkdGg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQtbW9iaWxlLXVwKSB7XHJcbiAgICAgICAgICAgICAgICAubWFpbixcclxuICAgICAgICAgICAgICAgIC5hcHAtZm9vdGVyIHtcclxuICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkc2lkZWJhci1taW5pbWl6ZWQtd2lkdGg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAmLmJyZWFkY3J1bWItZml4ZWQge1xyXG4gICAgICAgICAgICAuYnJlYWRjcnVtYiB7XHJcbiAgICAgICAgICAgICAgcmlnaHQ6ICRzaWRlYmFyLXdpZHRoO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICYuc2lkZWJhci1jb21wYWN0IHtcclxuICAgICAgICAgICAgICAuYnJlYWRjcnVtYiB7XHJcbiAgICAgICAgICAgICAgICByaWdodDogJHNpZGViYXItY29tcGFjdC13aWR0aDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgJi5zaWRlYmFyLW1pbmltaXplZCB7XHJcbiAgICAgICAgICAgICAgLmJyZWFkY3J1bWIge1xyXG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRzaWRlYmFyLW1pbmltaXplZC13aWR0aDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5hc2lkZS1tZW51LXNob3csXHJcbiAgICAgIC5hc2lkZS1tZW51I3skaW5maXh9LXNob3cge1xyXG4gICAgICAgIC5hc2lkZS1tZW51IHtcclxuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAaWYgJGJyZWFrcG9pbnQgIT0gXCJ4c1wiIHtcclxuICAgICAgICAgICYuYXNpZGUtbWVudS1maXhlZCB7XHJcbiAgICAgICAgICAgIC5tYWluLFxyXG4gICAgICAgICAgICAuYXBwLWZvb3RlciB7XHJcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRhc2lkZS1tZW51LXdpZHRoO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAmLmJyZWFkY3J1bWItZml4ZWQge1xyXG4gICAgICAgICAgICAuYnJlYWRjcnVtYiB7XHJcbiAgICAgICAgICAgICAgbGVmdDogJGFzaWRlLW1lbnUtd2lkdGg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc2lkZWJhciN7JGluZml4fS1zaG93LFxyXG4gICAgLmFzaWRlLW1lbnUjeyRpbmZpeH0tc2hvdyB7XHJcbiAgICAgIEBrZXlmcmFtZXMgb3BhY2l0eSB7XHJcbiAgICAgICAgMCUgICB7IG9wYWNpdHk6IDA7IH1cclxuICAgICAgICAxMDAlIHsgb3BhY2l0eTogMTsgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBAaWYgJGJyZWFrcG9pbnQgPT0gXCJ4c1wiIHtcclxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oeHMpIHtcclxuICAgICAgICAgIC5tYWluIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgICAgICAgbGVmdDogMDtcclxuICAgICAgICAgICAgICB6LWluZGV4OiAkemluZGV4LXN0aWNreSAtIDI7XHJcbiAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAuNyk7XHJcbiAgICAgICAgICAgICAgYW5pbWF0aW9uOiBvcGFjaXR5ICRsYXlvdXQtdHJhbnNpdGlvbi1zcGVlZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy9cclxuLy8gRm9vdGVyXHJcbi8vXHJcbi5mb290ZXItZml4ZWQge1xyXG4gIC5hcHAtZm9vdGVyIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHotaW5kZXg6ICR6aW5kZXgtc3RpY2t5O1xyXG4gICAgaGVpZ2h0OiAkZm9vdGVyLWhlaWdodDtcclxuICB9XHJcblxyXG4gIC5hcHAtYm9keSB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAkZm9vdGVyLWhlaWdodDtcclxuICB9XHJcbn1cclxuXHJcbi8vXHJcbi8vIEFuaW1hdGlvbnNcclxuLy9cclxuLmFwcC1oZWFkZXIsXHJcbi5hcHAtZm9vdGVyLFxyXG4uc2lkZWJhcixcclxuLm1haW4sXHJcbi5hc2lkZS1tZW51IHtcclxuICB0cmFuc2l0aW9uOiBtYXJnaW4tbGVmdCAkbGF5b3V0LXRyYW5zaXRpb24tc3BlZWQsIG1hcmdpbi1yaWdodCAkbGF5b3V0LXRyYW5zaXRpb24tc3BlZWQsIHdpZHRoICRsYXlvdXQtdHJhbnNpdGlvbi1zcGVlZCwgZmxleCAkbGF5b3V0LXRyYW5zaXRpb24tc3BlZWQ7XHJcbn1cclxuLnNpZGViYXItbmF2IHtcclxuICB0cmFuc2l0aW9uOiB3aWR0aCAkbGF5b3V0LXRyYW5zaXRpb24tc3BlZWQ7XHJcbn1cclxuLmJyZWFkY3J1bWIge1xyXG4gIHRyYW5zaXRpb246IGxlZnQgJGxheW91dC10cmFuc2l0aW9uLXNwZWVkLCByaWdodCAkbGF5b3V0LXRyYW5zaXRpb24tc3BlZWQsIHdpZHRoICRsYXlvdXQtdHJhbnNpdGlvbi1zcGVlZDtcclxufVxyXG5cclxuLy9cclxuLy8gTW9iaWxlIGxheW91dFxyXG4vL1xyXG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJGJyZWFrcG9pbnQtbW9iaWxlLWRvd24pIHtcclxuICAuYXBwLWhlYWRlciB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB6LWluZGV4OiAkemluZGV4LXN0aWNreTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgQGlmICRuYXZiYXItYnJhbmQtYmcgPT0gdHJhbnNwYXJlbnQge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbmF2YmFyLWJnO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRuYXZiYXItYnJhbmQtYmc7XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBib3JkZXJzKCRuYXZiYXItYnJhbmQtYm9yZGVyKTtcclxuXHJcbiAgICAubmF2YmFyLXRvZ2dsZXIge1xyXG4gICAgICBAaWYgKGxpZ2h0bmVzcyggJG5hdmJhci1icmFuZC1iZyApID4gNDApIHtcclxuICAgICAgICBjb2xvcjogJG5hdmJhci1jb2xvcjtcclxuICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubmF2YmFyLWJyYW5kIHtcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIGxlZnQ6IDUwJTtcclxuICAgICAgbWFyZ2luLWxlZnQ6IC0gKCRuYXZiYXItYnJhbmQtd2lkdGggLyAyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5hcHAtYm9keSB7XHJcbiAgICBtYXJnaW4tdG9wOiAkbmF2YmFyLWhlaWdodDtcclxuICB9XHJcblxyXG4gIC5zaWRlYmFyIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHotaW5kZXg6ICR6aW5kZXgtc3RpY2t5IC0gMTtcclxuICAgIHdpZHRoOiAkc2lkZWJhci13aWR0aDtcclxuICAgIGhlaWdodDogY2FsYygxMDB2aCAtICN7JG5hdmJhci1oZWlnaHR9KTtcclxuICB9XHJcblxyXG4gIC5zaWRlYmFyLW1pbmltaXplciB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG4gIH1cclxuXHJcbiAgLmFzaWRlLW1lbnUge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gIH1cclxufVxyXG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcclxuaHIudHJhbnNwYXJlbnQge1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcclxufVxyXG4iLCIuYmctcHJpbWFyeSxcclxuLmJnLXN1Y2Nlc3MsXHJcbi5iZy1pbmZvLFxyXG4uYmctd2FybmluZyxcclxuLmJnLWRhbmdlcixcclxuLmJnLWRhcmsge1xyXG4gIGNvbG9yOiAjZmZmO1xyXG59XHJcblxyXG5AZWFjaCAkY29sb3IsICR2YWx1ZSBpbiAkYnJhbmRzLWNvbG9ycyB7XHJcbiAgQGluY2x1ZGUgYmctdmFyaWFudChcIi5iZy0jeyRjb2xvcn1cIiwgJHZhbHVlKTtcclxufVxyXG5cclxuQGVhY2ggJGNvbG9yLCAkdmFsdWUgaW4gJGNvbG9ycyB7XHJcbiAgQGluY2x1ZGUgYmctdmFyaWFudChcIi5iZy0jeyRjb2xvcn1cIiwgJHZhbHVlKTtcclxufVxyXG5cclxuQGVhY2ggJGNvbG9yLCAkdmFsdWUgaW4gJGdyYXlzIHtcclxuICBAaW5jbHVkZSBiZy12YXJpYW50KFwiLmJnLWdyYXktI3skY29sb3J9XCIsICR2YWx1ZSk7XHJcbn1cclxuXHJcbi5iZy1ib3gge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICB3aWR0aDogKCRzcGFjZXIgKiAyLjUpO1xyXG4gIGhlaWdodDogKCRzcGFjZXIgKiAyLjUpO1xyXG59XHJcbiIsIi8vYm9yZGVyXHJcbi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxyXG5AZWFjaCAkcHJvcCwgJGFiYnJldiBpbiAoYm9yZGVyOiBiKSB7XHJcbiAgQGVhY2ggJHNpemUgaW4gKDAsMSwyKSB7XHJcbiAgICBAaWYgJHNpemUgPT0gMCB7XHJcbiAgICAgIC4jeyRhYmJyZXZ9LWEtI3skc2l6ZX0geyAjeyRwcm9wfTogMCAhaW1wb3J0YW50OyB9IC8vIGEgPSBBbGwgc2lkZXNcclxuICAgICAgLiN7JGFiYnJldn0tdC0jeyRzaXplfSB7ICN7JHByb3B9LXRvcDogMCAhaW1wb3J0YW50OyB9XHJcbiAgICAgIC4jeyRhYmJyZXZ9LXItI3skc2l6ZX0geyAjeyRwcm9wfS1yaWdodDogMCAhaW1wb3J0YW50OyB9XHJcbiAgICAgIC4jeyRhYmJyZXZ9LWItI3skc2l6ZX0geyAjeyRwcm9wfS1ib3R0b206IDAgIWltcG9ydGFudDsgfVxyXG4gICAgICAuI3skYWJicmV2fS1sLSN7JHNpemV9IHsgI3skcHJvcH0tbGVmdDogMCAhaW1wb3J0YW50OyB9XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgLiN7JGFiYnJldn0tYS0jeyRzaXplfSB7ICN7JHByb3B9OiAkc2l6ZSAqICRib3JkZXItd2lkdGggc29saWQgJGJvcmRlci1jb2xvcjsgfSAvLyBhID0gQWxsIHNpZGVzXHJcbiAgICAgIC4jeyRhYmJyZXZ9LXQtI3skc2l6ZX0geyAjeyRwcm9wfS10b3A6ICRzaXplICogJGJvcmRlci13aWR0aCBzb2xpZCAkYm9yZGVyLWNvbG9yOyB9XHJcbiAgICAgIC4jeyRhYmJyZXZ9LXItI3skc2l6ZX0geyAjeyRwcm9wfS1yaWdodDogJHNpemUgKiAkYm9yZGVyLXdpZHRoIHNvbGlkICRib3JkZXItY29sb3I7IH1cclxuICAgICAgLiN7JGFiYnJldn0tYi0jeyRzaXplfSB7ICN7JHByb3B9LWJvdHRvbTogJHNpemUgKiAkYm9yZGVyLXdpZHRoIHNvbGlkICRib3JkZXItY29sb3I7IH1cclxuICAgICAgLiN7JGFiYnJldn0tbC0jeyRzaXplfSB7ICN7JHByb3B9LWxlZnQ6ICRzaXplICogJGJvcmRlci13aWR0aCBzb2xpZCAkYm9yZGVyLWNvbG9yOyB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi8vXHJcbi8vIFV0aWxpdGllcyBmb3IgY29tbW9uIGBkaXNwbGF5YCB2YWx1ZXNcclxuLy9cclxuLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XHJcbkBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRicmVha3BvaW50KSB7XHJcbiAgICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJGJyZWFrcG9pbnQsICRncmlkLWJyZWFrcG9pbnRzKTtcclxuXHJcbiAgICAuZCN7JGluZml4fS1kb3duLW5vbmUgICAgICAgICB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxyXG4gICAgLy8gLmQjeyRpbmZpeH0taW5saW5lICAgICAgIHsgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7IH1cclxuICAgIC8vIC5kI3skaW5maXh9LWlubGluZS1ibG9jayB7IGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50OyB9XHJcbiAgICAvLyAuZCN7JGluZml4fS1ibG9jayAgICAgICAgeyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XHJcbiAgICAvLyAuZCN7JGluZml4fS10YWJsZSAgICAgICAgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XHJcbiAgICAvLyAuZCN7JGluZml4fS10YWJsZS1jZWxsICAgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cclxuICAgIC8vIC5kI3skaW5maXh9LWZsZXggICAgICAgICB7IGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsgfVxyXG4gICAgLy8gLmQjeyRpbmZpeH0taW5saW5lLWZsZXggIHsgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDsgfVxyXG4gIH1cclxufVxyXG4iLCJib2R5IHtcclxuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xyXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG59XHJcblxyXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnRcclxuLmZvbnQteHMge1xyXG4gIGZvbnQtc2l6ZTogLjc1cmVtICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5mb250LXNtIHtcclxuICBmb250LXNpemU6IC44NXJlbSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZm9udC1sZyB7XHJcbiAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5mb250LXhsIHtcclxuICBmb250LXNpemU6IDEuMjVyZW0gIWltcG9ydGFudDtcclxufVxyXG5cclxuLmZvbnQtMnhsIHtcclxuICBmb250LXNpemU6IDEuNXJlbSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZm9udC0zeGwge1xyXG4gIGZvbnQtc2l6ZTogMS43NXJlbSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZm9udC00eGwge1xyXG4gIGZvbnQtc2l6ZTogMnJlbSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uZm9udC01eGwge1xyXG4gIGZvbnQtc2l6ZTogMi41cmVtICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi50ZXh0LXZhbHVlIHtcclxuICBmb250LXNpemU6ICgkZm9udC1zaXplLWJhc2UgKiAxLjUpO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuLnRleHQtdmFsdWUtc20ge1xyXG4gIGZvbnQtc2l6ZTogKCRmb250LXNpemUtYmFzZSAqIDEuMjUpO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuXHJcbi50ZXh0LXZhbHVlLWxnIHtcclxuICBmb250LXNpemU6ICgkZm9udC1zaXplLWJhc2UgKiAxLjc1KTtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG59XHJcblxyXG4udGV4dC13aGl0ZSAudGV4dC1tdXRlZCB7XHJcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgLjYpICFpbXBvcnRhbnQ7XHJcbn1cclxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItbWF4LWNvbXBvdW5kLXNlbGVjdG9ycywgc2VsZWN0b3ItbWF4LWNsYXNzLCBzZWxlY3Rvci1tYXgtY29tYmluYXRvcnNcclxuLmVtYWlsLWFwcCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gIGJhY2tncm91bmQ6ICRjYXJkLWJnO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XHJcblxyXG4gIG5hdiB7XHJcbiAgICBmbGV4OiAwIDAgMjAwcHg7XHJcbiAgICBwYWRkaW5nOiAkc3BhY2VyO1xyXG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcclxuXHJcbiAgICAuYnRuLWJsb2NrIHtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxuICAgIH1cclxuXHJcbiAgICAubmF2IHtcclxuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIH1cclxuXHJcbiAgICAubmF2LWl0ZW0ge1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICY6aG92ZXIge1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsaXN0LWdyb3VwLWhvdmVyLWJnO1xyXG4gICAgICB9XHJcbiAgICAgIGE6Zm9jdXMge1xyXG4gICAgICAgIG91dGxpbmU6ICRib3JkZXItY29sb3IgYXV0byAuMnJlbTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5uYXYtbGluayB7XHJcbiAgICAgIGNvbG9yOiAkYm9keS1jb2xvcjtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XHJcblxyXG4gICAgICBpIHtcclxuICAgICAgICB3aWR0aDogMjBweDtcclxuICAgICAgICBtYXJnaW46IDAgMTBweCAwIDA7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmJhZGdlIHtcclxuICAgICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtYWluIHtcclxuICAgIGZsZXg6IDE7XHJcbiAgICBtaW4td2lkdGg6IDA7XHJcbiAgICBwYWRkaW5nOiAkc3BhY2VyO1xyXG4gIH1cclxuXHJcbiAgLmluYm94IHtcclxuICAgIC50b29sYmFyIHtcclxuICAgICAgcGFkZGluZy1ib3R0b206ICRzcGFjZXI7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWNvbG9yO1xyXG4gICAgfVxyXG5cclxuICAgIC5tZXNzYWdlcyB7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLm1lc3NhZ2Uge1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgIHBhZGRpbmc6ICRzcGFjZXIgJHNwYWNlciAkc3BhY2VyICgyICogJHNwYWNlcik7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XHJcblxyXG4gICAgICAmOmhvdmVyIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlzdC1ncm91cC1ob3Zlci1iZztcclxuICAgICAgfVxyXG5cclxuICAgICAgLmFjdGlvbnMge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICBsZWZ0OiAwO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcbiAgICAgICAgLmFjdGlvbiB7XHJcbiAgICAgICAgICB3aWR0aDogMiAqICRzcGFjZXI7XHJcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkc3BhY2VyIC8gMjtcclxuICAgICAgICAgIGNvbG9yOiAkZ3JheS0zMDA7XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBhIHtcclxuICAgICAgICBjb2xvcjogJGJvZHktY29sb3I7XHJcbiAgICAgICAgJjpob3ZlciB7XHJcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICY6Zm9jdXMge1xyXG4gICAgICAgICAgb3V0bGluZTogJGJvcmRlci1jb2xvciBhdXRvIC4ycmVtO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJi51bnJlYWQge1xyXG4gICAgICAgIC5oZWFkZXIsXHJcbiAgICAgICAgLnRpdGxlIHtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5oZWFkZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAoJHNwYWNlciAvIDIpO1xyXG4gICAgICAgIC8vIC5mcm9tIHsgfVxyXG5cclxuICAgICAgICAuZGF0ZSB7XHJcbiAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC50aXRsZSB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogKCRzcGFjZXIgLyAyKTtcclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5kZXNjcmlwdGlvbiB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubWVzc2FnZSB7XHJcbiAgICAudG9vbGJhciB7XHJcbiAgICAgIHBhZGRpbmctYm90dG9tOiAkc3BhY2VyO1xyXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1jb2xvcjtcclxuICAgIH1cclxuXHJcbiAgICAuZGV0YWlscyB7XHJcbiAgICAgIC50aXRsZSB7XHJcbiAgICAgICAgcGFkZGluZzogJHNwYWNlciAwO1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYm9sZDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmhlYWRlciB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBwYWRkaW5nOiAkc3BhY2VyIDA7XHJcbiAgICAgICAgbWFyZ2luOiAkc3BhY2VyIDA7XHJcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XHJcblxyXG4gICAgICAgIC5hdmF0YXIge1xyXG4gICAgICAgICAgd2lkdGg6IDQwcHg7XHJcbiAgICAgICAgICBoZWlnaHQ6IDQwcHg7XHJcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRzcGFjZXI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuZnJvbSB7XHJcbiAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XHJcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgICBjb2xvcjogJHRleHQtbXV0ZWQ7XHJcblxyXG4gICAgICAgICAgc3BhbiB7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuZGF0ZSB7XHJcbiAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5hdHRhY2htZW50cyB7XHJcbiAgICAgICAgcGFkZGluZzogJHNwYWNlciAwO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRzcGFjZXI7XHJcbiAgICAgICAgYm9yZGVyLXRvcDogM3B4IHNvbGlkICRncmF5LTEwMDtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgJGdyYXktMTAwO1xyXG5cclxuICAgICAgICAuYXR0YWNobWVudCB7XHJcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xyXG4gICAgICAgICAgbWFyZ2luOiAoJHNwYWNlciAvIDIpIDA7XHJcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcblxyXG4gICAgICAgICAgLmJhZGdlIHtcclxuICAgICAgICAgICAgbWFyZ2luOiAwICgkc3BhY2VyIC8gMik7XHJcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC5tZW51IHtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcblxyXG4gICAgICAgICAgICBhIHtcclxuICAgICAgICAgICAgICBwYWRkaW5nOiAwICgkc3BhY2VyIC8gMik7XHJcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgICAgICAgIGNvbG9yOiAkYm9yZGVyLWNvbG9yO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oc20pIHtcclxuICAuZW1haWwtYXBwIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBuYXYge1xyXG4gICAgICBmbGV4OiAwIDAgMTAwJTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bih4cykge1xyXG4gIC5lbWFpbC1hcHAge1xyXG4gICAgLm1lc3NhZ2Uge1xyXG4gICAgICAuaGVhZGVyIHtcclxuICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG4gICAgICAgIC5kYXRlIHtcclxuICAgICAgICAgIGZsZXg6IDAgMCAxMDAlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnRcclxuLy9cclxuLy8gUlRMIFN1cHBvcnRcclxuLy9cclxuKltkaXI9XCJydGxcIl0ge1xyXG4gIGRpcmVjdGlvbjogcnRsO1xyXG4gIHVuaWNvZGUtYmlkaTogZW1iZWQ7XHJcblxyXG4gIGJvZHkge1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgfVxyXG5cclxuICAvLyBEcm9wZG93blxyXG4gIC5kcm9wZG93bi1pdGVtIHtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cclxuICAgIGkge1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xMHB4O1xyXG4gICAgICBtYXJnaW4tbGVmdDogMTBweDtcclxuICAgIH1cclxuXHJcbiAgICAuYmFkZ2Uge1xyXG4gICAgICByaWdodDogYXV0bztcclxuICAgICAgbGVmdDogMTBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEZsb2F0XHJcbiAgLmZsb2F0LWxlZnQge1xyXG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG4gIC5mbG9hdC1yaWdodCB7XHJcbiAgICBmbG9hdDogbGVmdCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLy8gTWFyZ2luIGFuZCBQYWRkaW5nXHJcbiAgQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGJyZWFrcG9pbnQpIHtcclxuICAgICAgJGluZml4OiBicmVha3BvaW50LWluZml4KCRicmVha3BvaW50LCAkZ3JpZC1icmVha3BvaW50cyk7XHJcblxyXG4gICAgICBAZWFjaCAkcHJvcCwgJGFiYnJldiBpbiAobWFyZ2luOiBtLCBwYWRkaW5nOiBwKSB7XHJcbiAgICAgICAgQGVhY2ggJHNpemUsICRsZW5ndGggaW4gJHNwYWNlcnMge1xyXG4gICAgICAgICAgLiN7JGFiYnJldn1yI3skaW5maXh9LSN7JHNpemV9LFxyXG4gICAgICAgICAgLiN7JGFiYnJldn14I3skaW5maXh9LSN7JHNpemV9IHtcclxuICAgICAgICAgICAgI3skcHJvcH0tcmlnaHQ6IDAgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgI3skcHJvcH0tbGVmdDogJGxlbmd0aCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLiN7JGFiYnJldn1sI3skaW5maXh9LSN7JHNpemV9LFxyXG4gICAgICAgICAgLiN7JGFiYnJldn14I3skaW5maXh9LSN7JHNpemV9IHtcclxuICAgICAgICAgICAgI3skcHJvcH0tcmlnaHQ6ICRsZW5ndGggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgI3skcHJvcH0tbGVmdDogMCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gTmVnYXRpdmUgbWFyZ2lucyAoZS5nLiwgd2hlcmUgYC5tYi1uMWAgaXMgbmVnYXRpdmUgdmVyc2lvbiBvZiBgLm1iLTFgKVxyXG4gICAgICBAZWFjaCAkc2l6ZSwgJGxlbmd0aCBpbiAkc3BhY2VycyB7XHJcbiAgICAgICAgQGlmICRzaXplICE9IDAge1xyXG4gICAgICAgICAgLm1yI3skaW5maXh9LW4jeyRzaXplfSxcclxuICAgICAgICAgIC5teCN7JGluZml4fS1uI3skc2l6ZX0ge1xyXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0kbGVuZ3RoICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAubWwjeyRpbmZpeH0tbiN7JHNpemV9LFxyXG4gICAgICAgICAgLm14I3skaW5maXh9LW4jeyRzaXplfSB7XHJcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLSRsZW5ndGggIWltcG9ydGFudDtcclxuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFNvbWUgc3BlY2lhbCBtYXJnaW4gdXRpbHNcclxuICAgICAgLm1yI3skaW5maXh9LWF1dG8sXHJcbiAgICAgIC5teCN7JGluZml4fS1hdXRvIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcbiAgICAgIC5tbCN7JGluZml4fS1hdXRvLFxyXG4gICAgICAubXgjeyRpbmZpeH0tYXV0byB7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIi5pZS1jdXN0b20tcHJvcGVydGllcyB7XHJcbiAgLy8gQ3VzdG9tIHZhcmlhYmxlIHZhbHVlcyBvbmx5IHN1cHBvcnQgU2Fzc1NjcmlwdCBpbnNpZGUgYCN7fWAuXHJcbiAgQGVhY2ggJGNvbG9yLCAkdmFsdWUgaW4gJGNvbG9ycyB7XHJcbiAgICAjeyRjb2xvcn06ICN7JHZhbHVlfTtcclxuICB9XHJcblxyXG4gIEBlYWNoICRjb2xvciwgJHZhbHVlIGluICR0aGVtZS1jb2xvcnMge1xyXG4gICAgI3skY29sb3J9OiAjeyR2YWx1ZX07XHJcbiAgfVxyXG5cclxuICBAZWFjaCAkYnAsICR2YWx1ZSBpbiAkZ3JpZC1icmVha3BvaW50cyB7XHJcbiAgICBicmVha3BvaW50LSN7JGJwfTogI3skdmFsdWV9O1xyXG4gIH1cclxufVxyXG4iLCIvLyBjc3NuYW5vIHByb2R1Y2VzIGltcHJvcGVyIG91dHB1dCBpbiBwb3N0Y3NzLW5vcm1hbGl6ZS1wb3NpdGlvbnNcclxuLy8gY2xlYW4tY3NzXHJcbi8vIHRoaXMgaXMgYSB0ZW1wIGZpeCB0byBhdm9pZCB0aGUgaXNzdWUgd2hlcmVcclxuLy8gaW5wdXQ6XHJcbi8vIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciByaWdodCAkaW5wdXQtaGVpZ2h0LWlubmVyLXF1YXJ0ZXI7XHJcbi8vIHByb2R1Y2VzIG91dHB1dDpcclxuLy8gYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAkaW5wdXQtaGVpZ2h0LWlubmVyLXF1YXJ0ZXI7XHJcblxyXG4ud2FzLXZhbGlkYXRlZCAuZm9ybS1jb250cm9sOnZhbGlkLFxyXG4uZm9ybS1jb250cm9sLmlzLXZhbGlkIHtcclxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAkaW5wdXQtaGVpZ2h0LWlubmVyLXF1YXJ0ZXIgY2VudGVyO1xyXG59XHJcblxyXG4ud2FzLXZhbGlkYXRlZCAuZm9ybS1jb250cm9sOmludmFsaWQsXHJcbi5mb3JtLWNvbnRyb2wuaXMtaW52YWxpZCB7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgJGlucHV0LWhlaWdodC1pbm5lci1xdWFydGVyIGNlbnRlcjtcclxufVxyXG4iLCIvKlxuICogIFVzYWdlOlxuICpcbiAgICAgIDxkaXYgY2xhc3M9XCJzay1yb3RhdGluZy1wbGFuZVwiPjwvZGl2PlxuICpcbiAqL1xuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuXG4uc2stcm90YXRpbmctcGxhbmUge1xuICB3aWR0aDogJHNwaW5raXQtc2l6ZTtcbiAgaGVpZ2h0OiAkc3BpbmtpdC1zaXplO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3BpbmtpdC1zcGlubmVyLWNvbG9yO1xuICBtYXJnaW46ICRzcGlua2l0LXNwaW5uZXItbWFyZ2luO1xuICBhbmltYXRpb246IHNrLXJvdGF0ZVBsYW5lIDEuMnMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XG59XG5cbkBrZXlmcmFtZXMgc2stcm90YXRlUGxhbmUge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMjBweCkgcm90YXRlWCgwZGVnKSByb3RhdGVZKDBkZWcpO1xuICB9IDUwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMjBweCkgcm90YXRlWCgtMTgwLjFkZWcpIHJvdGF0ZVkoMGRlZyk7XG4gIH0gMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxMjBweCkgcm90YXRlWCgtMTgwZGVnKSByb3RhdGVZKC0xNzkuOWRlZyk7XG4gIH1cbn1cbiIsIiRzcGlua2l0LXNwaW5uZXItbWFyZ2luOiA0MHB4IGF1dG8gIWRlZmF1bHQ7XG4kc3BpbmtpdC1zaXplOiA0MHB4ICFkZWZhdWx0O1xuJHNwaW5raXQtc3Bpbm5lci1jb2xvcjogIzMzMyAhZGVmYXVsdDtcbiIsIi8qXG4gKiAgVXNhZ2U6XG4gKlxuICAgICAgPGRpdiBjbGFzcz1cInNrLWRvdWJsZS1ib3VuY2VcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNrLWNoaWxkIHNrLWRvdWJsZS1ib3VuY2UxXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzay1jaGlsZCBzay1kb3VibGUtYm91bmNlMlwiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gKlxuICovXG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5cbi5zay1kb3VibGUtYm91bmNlIHtcbiAgd2lkdGg6ICRzcGlua2l0LXNpemU7XG4gIGhlaWdodDogJHNwaW5raXQtc2l6ZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46ICRzcGlua2l0LXNwaW5uZXItbWFyZ2luO1xuXG4gIC5zay1jaGlsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3BpbmtpdC1zcGlubmVyLWNvbG9yO1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYW5pbWF0aW9uOiBzay1kb3VibGVCb3VuY2UgMi4wcyBpbmZpbml0ZSBlYXNlLWluLW91dDtcbiAgfVxuXG4gIC5zay1kb3VibGUtYm91bmNlMiB7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAtMS4wcztcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNrLWRvdWJsZUJvdW5jZSB7XG4gIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgwKSB9XG4gIDUwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4wKSB9XG59XG4iLCIvKlxuICogIFVzYWdlOlxuICpcbiAgICAgIDxkaXYgY2xhc3M9XCJzay13YXZlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzay1yZWN0IHNrLXJlY3QxXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzay1yZWN0IHNrLXJlY3QyXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzay1yZWN0IHNrLXJlY3QzXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzay1yZWN0IHNrLXJlY3Q0XCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzay1yZWN0IHNrLXJlY3Q1XCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAqXG4gKi9cbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcblxuLnNrLXdhdmUge1xuICAkcmVjdENvdW50OiA1O1xuICAkYW5pbWF0aW9uRHVyYXRpb246IDEuMnM7XG4gICRkZWxheVJhbmdlOiAwLjRzO1xuXG4gIG1hcmdpbjogJHNwaW5raXQtc3Bpbm5lci1tYXJnaW47XG4gIHdpZHRoOiAkc3BpbmtpdC1zaXplICogMS4yNTtcbiAgaGVpZ2h0OiAkc3BpbmtpdC1zaXplO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTBweDtcblxuICAuc2stcmVjdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNwaW5raXQtc3Bpbm5lci1jb2xvcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDZweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYW5pbWF0aW9uOiBzay13YXZlU3RyZXRjaERlbGF5ICRhbmltYXRpb25EdXJhdGlvbiBpbmZpbml0ZSBlYXNlLWluLW91dDtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJHJlY3RDb3VudCB7XG4gICAgLnNrLXJlY3QjeyRpfSB7IGFuaW1hdGlvbi1kZWxheTogLSAkYW5pbWF0aW9uRHVyYXRpb24gKyAkZGVsYXlSYW5nZSAvICgkcmVjdENvdW50IC0gMSkgKiAoJGkgLSAxKTsgfVxuICB9XG59XG5cbkBrZXlmcmFtZXMgc2std2F2ZVN0cmV0Y2hEZWxheSB7XG4gIDAlLCA0MCUsIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlWSgwLjQpIH1cbiAgMjAlIHsgdHJhbnNmb3JtOiBzY2FsZVkoMS4wKSB9XG59XG4iLCIvKlxuICogIFVzYWdlOlxuICpcbiAgICAgIDxkaXYgY2xhc3M9XCJzay13YW5kZXJpbmctY3ViZXNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNrLWN1YmUgc2stY3ViZTFcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNrLWN1YmUgc2stY3ViZTJcIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICpcbiAqL1xuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuXG4uc2std2FuZGVyaW5nLWN1YmVzIHtcbiAgJGFuaW1hdGlvbkR1cmF0aW9uOiAxLjhzO1xuXG4gIG1hcmdpbjogJHNwaW5raXQtc3Bpbm5lci1tYXJnaW47XG4gIHdpZHRoOiAkc3BpbmtpdC1zaXplO1xuICBoZWlnaHQ6ICRzcGlua2l0LXNpemU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAuc2stY3ViZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNwaW5raXQtc3Bpbm5lci1jb2xvcjtcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGFuaW1hdGlvbjogc2std2FuZGVyaW5nQ3ViZSAkYW5pbWF0aW9uRHVyYXRpb24gZWFzZS1pbi1vdXQgI3stJGFuaW1hdGlvbkR1cmF0aW9ufSBpbmZpbml0ZSBib3RoO1xuICB9XG5cbiAgLnNrLWN1YmUyIHtcbiAgICBhbmltYXRpb24tZGVsYXk6IC0kYW5pbWF0aW9uRHVyYXRpb24gLyAyO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2std2FuZGVyaW5nQ3ViZSB7XG4gICRjdWJlRGlzdGFuY2U6IDMwcHg7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfSAyNSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgkY3ViZURpc3RhbmNlKSByb3RhdGUoLTkwZGVnKSBzY2FsZSgwLjUpO1xuICB9IDUwJSB7XG4gICAgLyogSGFjayB0byBtYWtlIEZGIHJvdGF0ZSBpbiB0aGUgcmlnaHQgZGlyZWN0aW9uICovXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKCRjdWJlRGlzdGFuY2UpIHRyYW5zbGF0ZVkoJGN1YmVEaXN0YW5jZSkgcm90YXRlKC0xNzlkZWcpO1xuICB9IDUwLjElIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoJGN1YmVEaXN0YW5jZSkgdHJhbnNsYXRlWSgkY3ViZURpc3RhbmNlKSByb3RhdGUoLTE4MGRlZyk7XG4gIH0gNzUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgdHJhbnNsYXRlWSgkY3ViZURpc3RhbmNlKSByb3RhdGUoLTI3MGRlZykgc2NhbGUoMC41KTtcbiAgfSAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMzYwZGVnKTtcbiAgfVxufVxuIiwiLypcbiAqICBVc2FnZTpcbiAqXG4gICAgICA8ZGl2IGNsYXNzPVwic2stc3Bpbm5lciBzay1zcGlubmVyLXB1bHNlXCI+PC9kaXY+XG4gKlxuICovXG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5cbi5zay1zcGlubmVyLXB1bHNlIHtcbiAgd2lkdGg6ICRzcGlua2l0LXNpemU7XG4gIGhlaWdodDogJHNwaW5raXQtc2l6ZTtcbiAgbWFyZ2luOiAkc3BpbmtpdC1zcGlubmVyLW1hcmdpbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNwaW5raXQtc3Bpbm5lci1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgYW5pbWF0aW9uOiBzay1wdWxzZVNjYWxlT3V0IDEuMHMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XG59XG5cbkBrZXlmcmFtZXMgc2stcHVsc2VTY2FsZU91dCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICB9IDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG4iLCIvKlxuICogIFVzYWdlOlxuICpcbiAgICAgIDxkaXYgY2xhc3M9XCJzay1jaGFzaW5nLWRvdHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNrLWNoaWxkIHNrLWRvdDFcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNrLWNoaWxkIHNrLWRvdDJcIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICpcbiAqL1xuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuXG4uc2stY2hhc2luZy1kb3RzIHtcbiAgJGFuaW1hdGlvbkR1cmF0aW9uOiAyLjBzO1xuXG4gIG1hcmdpbjogJHNwaW5raXQtc3Bpbm5lci1tYXJnaW47XG4gIHdpZHRoOiAkc3BpbmtpdC1zaXplO1xuICBoZWlnaHQ6ICRzcGlua2l0LXNpemU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBhbmltYXRpb246IHNrLWNoYXNpbmdEb3RzUm90YXRlICRhbmltYXRpb25EdXJhdGlvbiBpbmZpbml0ZSBsaW5lYXI7XG5cbiAgLnNrLWNoaWxkIHtcbiAgICB3aWR0aDogNjAlO1xuICAgIGhlaWdodDogNjAlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzcGlua2l0LXNwaW5uZXItY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICBhbmltYXRpb246IHNrLWNoYXNpbmdEb3RzQm91bmNlICRhbmltYXRpb25EdXJhdGlvbiBpbmZpbml0ZSBlYXNlLWluLW91dDtcbiAgfVxuXG4gIC5zay1kb3QyIHtcbiAgICB0b3A6IGF1dG87XG4gICAgYm90dG9tOiAwO1xuICAgIGFuaW1hdGlvbi1kZWxheTogLSAkYW5pbWF0aW9uRHVyYXRpb24vMjtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNrLWNoYXNpbmdEb3RzUm90YXRlIHtcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNrLWNoYXNpbmdEb3RzQm91bmNlIHtcbiAgMCUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIH0gNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMCk7XG4gIH1cbn1cbiIsIi8qXG4gKiAgVXNhZ2U6XG4gKlxuICAgICAgPGRpdiBjbGFzcz1cInNrLXRocmVlLWJvdW5jZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2stY2hpbGQgc2stYm91bmNlMVwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2stY2hpbGQgc2stYm91bmNlMlwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2stY2hpbGQgc2stYm91bmNlM1wiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gKlxuICovXG4gQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuXG4uc2stdGhyZWUtYm91bmNlIHtcbiAgJGFuaW1hdGlvbkR1cmF0aW9uOiAxLjRzO1xuICAkZGVsYXlSYW5nZTogMC4zMnM7XG4gIG1hcmdpbjogJHNwaW5raXQtc3Bpbm5lci1tYXJnaW47XG4gIHdpZHRoOiAkc3BpbmtpdC1zaXplICogMjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIC5zay1jaGlsZCB7XG4gICAgd2lkdGg6ICRzcGlua2l0LXNpemUgLyAyO1xuICAgIGhlaWdodDogJHNwaW5raXQtc2l6ZSAvIDI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNwaW5raXQtc3Bpbm5lci1jb2xvcjtcblxuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGFuaW1hdGlvbjogc2stdGhyZWUtYm91bmNlICRhbmltYXRpb25EdXJhdGlvbiBlYXNlLWluLW91dCAwcyBpbmZpbml0ZSBib3RoO1xuICB9XG5cbiAgLnNrLWJvdW5jZTEgeyBhbmltYXRpb24tZGVsYXk6IC0kZGVsYXlSYW5nZTsgfVxuICAuc2stYm91bmNlMiB7IGFuaW1hdGlvbi1kZWxheTogLSRkZWxheVJhbmdlIC8gMjsgfVxufVxuXG5Aa2V5ZnJhbWVzIHNrLXRocmVlLWJvdW5jZSB7XG4gIDAlLCA4MCUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gIH0gNDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMCk7XG4gIH1cbn1cbiIsIi8qXG4gKiAgVXNhZ2U6XG4gKlxuICAgICAgPGRpdiBjbGFzcz1cInNrLWNpcmNsZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2stY2lyY2xlMSBzay1jaGlsZFwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2stY2lyY2xlMiBzay1jaGlsZFwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2stY2lyY2xlMyBzay1jaGlsZFwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2stY2lyY2xlNCBzay1jaGlsZFwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2stY2lyY2xlNSBzay1jaGlsZFwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2stY2lyY2xlNiBzay1jaGlsZFwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2stY2lyY2xlNyBzay1jaGlsZFwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2stY2lyY2xlOCBzay1jaGlsZFwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2stY2lyY2xlOSBzay1jaGlsZFwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2stY2lyY2xlMTAgc2stY2hpbGRcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNrLWNpcmNsZTExIHNrLWNoaWxkXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzay1jaXJjbGUxMiBzay1jaGlsZFwiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gKlxuICovXG5AaW1wb3J0IFwiLi4vdmFyaWFibGVzXCI7XG5cbi5zay1jaXJjbGUge1xuICAkY2lyY2xlQ291bnQ6IDEyO1xuICAkYW5pbWF0aW9uRHVyYXRpb246IDEuMnM7XG5cbiAgbWFyZ2luOiAkc3BpbmtpdC1zcGlubmVyLW1hcmdpbjtcbiAgd2lkdGg6ICRzcGlua2l0LXNpemU7XG4gIGhlaWdodDogJHNwaW5raXQtc2l6ZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC5zay1jaGlsZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgfVxuXG4gIC5zay1jaGlsZDpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHdpZHRoOiAxNSU7XG4gICAgaGVpZ2h0OiAxNSU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNwaW5raXQtc3Bpbm5lci1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIGFuaW1hdGlvbjogc2stY2lyY2xlQm91bmNlRGVsYXkgJGFuaW1hdGlvbkR1cmF0aW9uIGluZmluaXRlIGVhc2UtaW4tb3V0IGJvdGg7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRjaXJjbGVDb3VudCB7XG4gICAgLnNrLWNpcmNsZSN7JGl9IHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnIC8gJGNpcmNsZUNvdW50ICogKCRpIC0gMSkpOyB9XG4gIH1cblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRjaXJjbGVDb3VudCB7XG4gICAgLnNrLWNpcmNsZSN7JGl9OmJlZm9yZSB7IGFuaW1hdGlvbi1kZWxheTogLSAkYW5pbWF0aW9uRHVyYXRpb24gKyAkYW5pbWF0aW9uRHVyYXRpb24gLyAkY2lyY2xlQ291bnQgKiAoJGkgLSAxKTsgfVxuICB9XG59XG5cbkBrZXlmcmFtZXMgc2stY2lyY2xlQm91bmNlRGVsYXkge1xuICAwJSwgODAlLCAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgwKSB9XG4gIDQwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4wKSB9XG59XG4iLCIvKlxuICogIFVzYWdlOlxuICpcbiAgICAgIDxkaXYgY2xhc3M9XCJzay1jdWJlLWdyaWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNrLWN1YmUgc2stY3ViZTFcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNrLWN1YmUgc2stY3ViZTJcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNrLWN1YmUgc2stY3ViZTNcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNrLWN1YmUgc2stY3ViZTRcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNrLWN1YmUgc2stY3ViZTVcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNrLWN1YmUgc2stY3ViZTZcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNrLWN1YmUgc2stY3ViZTdcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNrLWN1YmUgc2stY3ViZThcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNrLWN1YmUgc2stY3ViZTlcIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICpcbiAqL1xuQGltcG9ydCBcIi4uL3ZhcmlhYmxlc1wiO1xuXG4uc2stY3ViZS1ncmlkIHtcbiAgJGRlbGF5UmFuZ2U6IDAuNHM7XG5cbiAgd2lkdGg6ICRzcGlua2l0LXNpemU7XG4gIGhlaWdodDogJHNwaW5raXQtc2l6ZTtcbiAgbWFyZ2luOiAkc3BpbmtpdC1zcGlubmVyLW1hcmdpbjtcblxuICAuc2stY3ViZSB7XG4gICAgd2lkdGg6IDMzLjMzJTtcbiAgICBoZWlnaHQ6IDMzLjMzJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3BpbmtpdC1zcGlubmVyLWNvbG9yO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGFuaW1hdGlvbjogc2stY3ViZUdyaWRTY2FsZURlbGF5IDEuM3MgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XG4gIH1cblxuICAvKlxuICAgKiBTcGlubmVyIHBvc2l0aW9uc1xuICAgKiAxIDIgM1xuICAgKiA0IDUgNlxuICAgKiA3IDggOVxuICAgKi9cblxuICAuc2stY3ViZTEgeyBhbmltYXRpb24tZGVsYXk6ICRkZWxheVJhbmdlICogMC41MCB9XG4gIC5zay1jdWJlMiB7IGFuaW1hdGlvbi1kZWxheTogJGRlbGF5UmFuZ2UgKiAwLjc1IH1cbiAgLnNrLWN1YmUzIHsgYW5pbWF0aW9uLWRlbGF5OiAkZGVsYXlSYW5nZSB9XG4gIC5zay1jdWJlNCB7IGFuaW1hdGlvbi1kZWxheTogJGRlbGF5UmFuZ2UgKiAwLjI1IH1cbiAgLnNrLWN1YmU1IHsgYW5pbWF0aW9uLWRlbGF5OiAkZGVsYXlSYW5nZSAqIDAuNTAgfVxuICAuc2stY3ViZTYgeyBhbmltYXRpb24tZGVsYXk6ICRkZWxheVJhbmdlICogMC43NSB9XG4gIC5zay1jdWJlNyB7IGFuaW1hdGlvbi1kZWxheTogMC4wcyB9XG4gIC5zay1jdWJlOCB7IGFuaW1hdGlvbi1kZWxheTogJGRlbGF5UmFuZ2UgKiAwLjI1IH1cbiAgLnNrLWN1YmU5IHsgYW5pbWF0aW9uLWRlbGF5OiAkZGVsYXlSYW5nZSAqIDAuNTAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNrLWN1YmVHcmlkU2NhbGVEZWxheSB7XG4gIDAlLCA3MCUsIDEwMCUgeyB0cmFuc2Zvcm06c2NhbGUzRCgxLjAsIDEuMCwgMS4wKSB9XG4gIDM1JSAgICAgICAgICAgeyB0cmFuc2Zvcm06c2NhbGUzRCgwLjAsIDAuMCwgMS4wKSB9XG59XG4iLCIvKlxuICogIFVzYWdlOlxuICpcbiAgICAgIDxkaXYgY2xhc3M9XCJzay1mYWRpbmctY2lyY2xlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzay1jaXJjbGUxIHNrLWNpcmNsZVwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2stY2lyY2xlMiBzay1jaXJjbGVcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNrLWNpcmNsZTMgc2stY2lyY2xlXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzay1jaXJjbGU0IHNrLWNpcmNsZVwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2stY2lyY2xlNSBzay1jaXJjbGVcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNrLWNpcmNsZTYgc2stY2lyY2xlXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzay1jaXJjbGU3IHNrLWNpcmNsZVwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2stY2lyY2xlOCBzay1jaXJjbGVcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNrLWNpcmNsZTkgc2stY2lyY2xlXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzay1jaXJjbGUxMCBzay1jaXJjbGVcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNrLWNpcmNsZTExIHNrLWNpcmNsZVwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2stY2lyY2xlMTIgc2stY2lyY2xlXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAqXG4gKi9cbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcblxuLnNrLWZhZGluZy1jaXJjbGUge1xuICAkY2lyY2xlQ291bnQ6IDEyO1xuICAkYW5pbWF0aW9uRHVyYXRpb246IDEuMnM7XG5cbiAgbWFyZ2luOiAkc3BpbmtpdC1zcGlubmVyLW1hcmdpbjtcbiAgd2lkdGg6ICRzcGlua2l0LXNpemU7XG4gIGhlaWdodDogJHNwaW5raXQtc2l6ZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC5zay1jaXJjbGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gIH1cblxuICAuc2stY2lyY2xlOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgd2lkdGg6IDE1JTtcbiAgICBoZWlnaHQ6IDE1JTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3BpbmtpdC1zcGlubmVyLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgYW5pbWF0aW9uOiBzay1jaXJjbGVGYWRlRGVsYXkgJGFuaW1hdGlvbkR1cmF0aW9uIGluZmluaXRlIGVhc2UtaW4tb3V0IGJvdGg7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRjaXJjbGVDb3VudCB7XG4gICAgLnNrLWNpcmNsZSN7JGl9IHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnIC8gJGNpcmNsZUNvdW50ICogKCRpIC0gMSkpOyB9XG4gIH1cblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRjaXJjbGVDb3VudCB7XG4gICAgLnNrLWNpcmNsZSN7JGl9OmJlZm9yZSB7IGFuaW1hdGlvbi1kZWxheTogLSAkYW5pbWF0aW9uRHVyYXRpb24gKyAkYW5pbWF0aW9uRHVyYXRpb24gLyAkY2lyY2xlQ291bnQgKiAoJGkgLSAxKTsgfVxuICB9XG5cbn1cblxuQGtleWZyYW1lcyBzay1jaXJjbGVGYWRlRGVsYXkge1xuICAwJSwgMzklLCAxMDAlIHsgb3BhY2l0eTogMCB9XG4gIDQwJSB7IG9wYWNpdHk6IDEgfVxufVxuIiwiLypcbiAqICBVc2FnZTpcbiAqXG4gICAgICA8ZGl2IGNsYXNzPVwic2stZm9sZGluZy1jdWJlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzay1jdWJlMSBzay1jdWJlXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzay1jdWJlMiBzay1jdWJlXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzay1jdWJlNCBzay1jdWJlXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzay1jdWJlMyBzay1jdWJlXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAqXG4gKi9cbkBpbXBvcnQgXCIuLi92YXJpYWJsZXNcIjtcblxuLnNrLWZvbGRpbmctY3ViZSB7XG4gICRjdWJlQ291bnQ6IDQ7XG4gICRhbmltYXRpb25EdXJhdGlvbjogMi40cztcbiAgJGRlbGF5UmFuZ2U6ICRhbmltYXRpb25EdXJhdGlvbi8yO1xuXG4gIG1hcmdpbjogJHNwaW5raXQtc3Bpbm5lci1tYXJnaW47XG4gIHdpZHRoOiAkc3BpbmtpdC1zaXplO1xuICBoZWlnaHQ6ICRzcGlua2l0LXNpemU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNmb3JtOiByb3RhdGVaKDQ1ZGVnKTtcblxuICAuc2stY3ViZSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBoZWlnaHQ6IDUwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICB9XG5cbiAgLnNrLWN1YmU6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzcGlua2l0LXNwaW5uZXItY29sb3I7XG4gICAgYW5pbWF0aW9uOiBzay1mb2xkQ3ViZUFuZ2xlICRhbmltYXRpb25EdXJhdGlvbiBpbmZpbml0ZSBsaW5lYXIgYm90aDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiAxMDAlIDEwMCU7XG4gIH1cblxuICAvLyBSb3RhdGlvbiAvIGFuZ2xlXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGN1YmVDb3VudCB7XG4gICAgLnNrLWN1YmUjeyRpfSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSkgcm90YXRlWig5MGRlZyAqICgkaSAtIDEpKTtcbiAgICB9XG4gIH1cblxuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRjdWJlQ291bnQge1xuICAgIC5zay1jdWJlI3skaX06YmVmb3JlIHtcbiAgICAgIGFuaW1hdGlvbi1kZWxheTogJGRlbGF5UmFuZ2UgLyAkY3ViZUNvdW50ICogKCRpIC0gMSk7XG4gICAgfVxuICB9XG59XG5cbkBrZXlmcmFtZXMgc2stZm9sZEN1YmVBbmdsZSB7XG4gIDAlLCAxMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoMTQwcHgpIHJvdGF0ZVgoLTE4MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfSAyNSUsIDc1JSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxNDBweCkgcm90YXRlWCgwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9IDkwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSgxNDBweCkgcm90YXRlWSgxODBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cbiIsIi8qIFdvcmsgU2FucyBTdGFydCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgKi9cblxuLndvcmstc2Fucy1saWdodCB7XG4gIGZvbnQtZmFtaWx5OiB3b3JrLXNhbnMsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLndvcmstc2Fucy1yZWd1bGFyIHtcbiAgZm9udC1mYW1pbHk6IHdvcmstc2Fucywgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4ud29yay1zYW5zLW1lZGl1bSB7XG4gIGZvbnQtZmFtaWx5OiB3b3JrLXNhbnMsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLndvcmstc2Fucy1zZW1pLWJvbGQge1xuICBmb250LWZhbWlseTogd29yay1zYW5zLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbi53b3JrLXNhbnMtYm9sZCB7XG4gIGZvbnQtZmFtaWx5OiB3b3JrLXNhbnMsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLndvcmstc2Fucy1leHRyYS1ib2xkIHtcbiAgZm9udC1mYW1pbHk6IHdvcmstc2Fucywgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBXb3JrIFNhbnMgRW5kICovXG5cbi8qIFJhamRoYW5pIFN0YXJ0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAqL1xuXG4ucmFqZGhhbmktbGlnaHQge1xuICBmb250LWZhbWlseTogcmFqZGhhbmksIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLnJhamRoYW5pLXJlZ3VsYXIge1xuICBmb250LWZhbWlseTogcmFqZGhhbmksIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLnJhamRoYW5pLW1lZGl1bSB7XG4gIGZvbnQtZmFtaWx5OiByYWpkaGFuaSwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4ucmFqZGhhbmktc2VtaS1ib2xkIHtcbiAgZm9udC1mYW1pbHk6IHJhamRoYW5pLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbi5yYWpkaGFuaS1ib2xkIHtcbiAgZm9udC1mYW1pbHk6IHJhamRoYW5pLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbi5yYWpkaGFuaS1ib2xkIHtcbiAgZm9udC1mYW1pbHk6IHJhamRoYW5pLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogODAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUmFqZGhhbmkgRW5kICovXG5cbi8vIERlZmF1bHQgRm9udFxuXG4uZGVmYXVsdC1saWdodCB7XG4gIEBleHRlbmQgLndvcmstc2Fucy1saWdodDtcbn1cblxuLmRlZmF1bHQtcmVndWxhciB7XG4gIEBleHRlbmQgLndvcmstc2Fucy1yZWd1bGFyO1xufVxuXG4uZGVmYXVsdC1tZWRpdW0ge1xuICBAZXh0ZW5kIC53b3JrLXNhbnMtbWVkaXVtO1xufVxuXG4uZGVmYXVsdC1zZW1pLWJvbGQge1xuICBAZXh0ZW5kIC53b3JrLXNhbnMtc2VtaS1ib2xkO1xufVxuXG4uZGVmYXVsdC1ib2xkIHtcbiAgQGV4dGVuZCAud29yay1zYW5zLWJvbGQ7XG59XG5cbi5kZWZhdWx0LWV4dHJhLWJvbGQge1xuICBAZXh0ZW5kIC53b3JrLXNhbnMtZXh0cmEtYm9sZDtcbn1cblxuLy8gc2l6ZXMgLSBtaXhpbiBhbGxvd3MgeW91IHRvIGNodW5rIHRoaXMgaW50byBhbm90aGVyIGNsYXNzIHdpdGggQGluY2x1ZGVcbkBtaXhpbiBmMTJweCB7Zm9udC1zaXplOiAwLjc1cmVtO31cbkBtaXhpbiBmMTRweCB7Zm9udC1zaXplOiAwLjg3NXJlbTt9XG5AbWl4aW4gZjE2cHgge2ZvbnQtc2l6ZTogMXJlbTt9XG5AbWl4aW4gZjE4cHgge2ZvbnQtc2l6ZTogMS4xMjVyZW07fVxuQG1peGluIGYyMHB4IHtmb250LXNpemU6IDEuMjVyZW07fVxuQG1peGluIGYyNHB4IHtmb250LXNpemU6IDEuNXJlbTt9XG5AbWl4aW4gZjMycHgge2ZvbnQtc2l6ZTogMnJlbTt9XG5AbWl4aW4gZjQwcHgge2ZvbnQtc2l6ZTogMi41cmVtO31cbkBtaXhpbiBmNDhweCB7Zm9udC1zaXplOiAzcmVtO31cbiIsIi8qIGJhc2VkIG9uIGFuZ3VsYXItdG9hc3RyIGNzcyBodHRwczovL2dpdGh1Yi5jb20vRm94YW5keHNzL2FuZ3VsYXItdG9hc3RyL2Jsb2IvY2I1MDhmZTY4MDFkNmIyODhkM2FmYzUyNWJiNDBmZWUxYjEwMTY1MC9kaXN0L2FuZ3VsYXItdG9hc3RyLmNzcyAqL1xuXG4vKiBwb3NpdGlvbiAqL1xuLnRvYXN0LWNlbnRlci1jZW50ZXIge1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cbi50b2FzdC10b3AtY2VudGVyIHtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG4udG9hc3QtYm90dG9tLWNlbnRlciB7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnRvYXN0LXRvcC1mdWxsLXdpZHRoIHtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG59XG4udG9hc3QtYm90dG9tLWZ1bGwtd2lkdGgge1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbn1cbi50b2FzdC10b3AtbGVmdCB7XG4gIHRvcDogMTJweDtcbiAgbGVmdDogMTJweDtcbn1cbi50b2FzdC10b3AtcmlnaHQge1xuICB0b3A6IDEycHg7XG4gIHJpZ2h0OiAxMnB4O1xufVxuLnRvYXN0LWJvdHRvbS1yaWdodCB7XG4gIHJpZ2h0OiAxMnB4O1xuICBib3R0b206IDEycHg7XG59XG4udG9hc3QtYm90dG9tLWxlZnQge1xuICBib3R0b206IDEycHg7XG4gIGxlZnQ6IDEycHg7XG59XG5cbi8qIHRvYXN0IHN0eWxlcyAqL1xuLnRvYXN0LXRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4udG9hc3QtbWVzc2FnZSB7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cbi50b2FzdC1tZXNzYWdlIGEsXG4udG9hc3QtbWVzc2FnZSBsYWJlbCB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnRvYXN0LW1lc3NhZ2UgYTpob3ZlciB7XG4gIGNvbG9yOiAjQ0NDQ0NDO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4udG9hc3QtY2xvc2UtYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICByaWdodDogLTAuM2VtO1xuICB0b3A6IC0wLjNlbTtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogI0ZGRkZGRjtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgI2ZmZmZmZjtcbiAgLyogb3BhY2l0eTogMC44OyAqL1xufVxuLnRvYXN0LWNsb3NlLWJ1dHRvbjpob3Zlcixcbi50b2FzdC1jbG9zZS1idXR0b246Zm9jdXMge1xuICBjb2xvcjogIzAwMDAwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi8qQWRkaXRpb25hbCBwcm9wZXJ0aWVzIGZvciBidXR0b24gdmVyc2lvblxuIGlPUyByZXF1aXJlcyB0aGUgYnV0dG9uIGVsZW1lbnQgaW5zdGVhZCBvZiBhbiBhbmNob3IgdGFnLlxuIElmIHlvdSB3YW50IHRoZSBhbmNob3IgdmVyc2lvbiwgaXQgcmVxdWlyZXMgYGhyZWY9XCIjXCJgLiovXG5idXR0b24udG9hc3QtY2xvc2UtYnV0dG9uIHtcbiAgcGFkZGluZzogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xufVxuLnRvYXN0LWNvbnRhaW5lciB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDk5OTk5OTtcbn1cbi50b2FzdC1jb250YWluZXIgKiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4udG9hc3QtY29udGFpbmVyIC5uZ3gtdG9hc3RyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtYXJnaW46IDAgMCA2cHg7XG4gIHBhZGRpbmc6IDE1cHggMTVweCAxNXB4IDUwcHg7XG4gIHdpZHRoOiAzMDBweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4IDNweCAzcHggM3B4O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxNXB4IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAyNHB4O1xuICBib3gtc2hhZG93OiAwIDAgMTJweCAjOTk5OTk5O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi50b2FzdC1jb250YWluZXIgLm5neC10b2FzdHI6aG92ZXIge1xuICBib3gtc2hhZG93OiAwIDAgMTJweCAjMDAwMDAwO1xuICBvcGFjaXR5OiAxO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4vKiBodHRwczovL2dpdGh1Yi5jb20vRm9ydEF3ZXNvbWUvRm9udC1Bd2Vzb21lLVByby9ibG9iL21hc3Rlci9hZHZhbmNlZC1vcHRpb25zL3Jhdy1zdmcvcmVndWxhci9pbmZvLWNpcmNsZS5zdmcgKi9cbi50b2FzdC1pbmZvIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgNTEyIDUxMicgd2lkdGg9JzUxMicgaGVpZ2h0PSc1MTInJTNFJTNDcGF0aCBmaWxsPSdyZ2IoMjU1LDI1NSwyNTUpJyBkPSdNMjU2IDhDMTE5LjA0MyA4IDggMTE5LjA4MyA4IDI1NmMwIDEzNi45OTcgMTExLjA0MyAyNDggMjQ4IDI0OHMyNDgtMTExLjAwMyAyNDgtMjQ4QzUwNCAxMTkuMDgzIDM5Mi45NTcgOCAyNTYgOHptMCAxMTBjMjMuMTk2IDAgNDIgMTguODA0IDQyIDQycy0xOC44MDQgNDItNDIgNDItNDItMTguODA0LTQyLTQyIDE4LjgwNC00MiA0Mi00MnptNTYgMjU0YzAgNi42MjctNS4zNzMgMTItMTIgMTJoLTg4Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDEydi02NGgtMTJjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTI0YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoNjRjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYxMDBoMTJjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnYyNHonLyUzRSUzQy9zdmclM0VcIik7XG59XG4vKiBodHRwczovL2dpdGh1Yi5jb20vRm9ydEF3ZXNvbWUvRm9udC1Bd2Vzb21lLVByby9ibG9iL21hc3Rlci9hZHZhbmNlZC1vcHRpb25zL3Jhdy1zdmcvcmVndWxhci90aW1lcy1jaXJjbGUuc3ZnICovXG4udG9hc3QtZXJyb3Ige1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMiclM0UlM0NwYXRoIGZpbGw9J3JnYigyNTUsMjU1LDI1NSknIGQ9J00yNTYgOEMxMTkgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5MyA4IDI1NiA4em0xMjEuNiAzMTMuMWM0LjcgNC43IDQuNyAxMi4zIDAgMTdMMzM4IDM3Ny42Yy00LjcgNC43LTEyLjMgNC43LTE3IDBMMjU2IDMxMmwtNjUuMSA2NS42Yy00LjcgNC43LTEyLjMgNC43LTE3IDBMMTM0LjQgMzM4Yy00LjctNC43LTQuNy0xMi4zIDAtMTdsNjUuNi02NS02NS42LTY1LjFjLTQuNy00LjctNC43LTEyLjMgMC0xN2wzOS42LTM5LjZjNC43LTQuNyAxMi4zLTQuNyAxNyAwbDY1IDY1LjcgNjUuMS02NS42YzQuNy00LjcgMTIuMy00LjcgMTcgMGwzOS42IDM5LjZjNC43IDQuNyA0LjcgMTIuMyAwIDE3TDMxMiAyNTZsNjUuNiA2NS4xeicvJTNFJTNDL3N2ZyUzRVwiKTtcbn1cbi8qIGh0dHBzOi8vZ2l0aHViLmNvbS9Gb3J0QXdlc29tZS9Gb250LUF3ZXNvbWUtUHJvL2Jsb2IvbWFzdGVyL2FkdmFuY2VkLW9wdGlvbnMvcmF3LXN2Zy9yZWd1bGFyL2NoZWNrLnN2ZyAqL1xuLnRvYXN0LXN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMiclM0UlM0NwYXRoIGZpbGw9J3JnYigyNTUsMjU1LDI1NSknIGQ9J00xNzMuODk4IDQzOS40MDRsLTE2Ni40LTE2Ni40Yy05Ljk5Ny05Ljk5Ny05Ljk5Ny0yNi4yMDYgMC0zNi4yMDRsMzYuMjAzLTM2LjIwNGM5Ljk5Ny05Ljk5OCAyNi4yMDctOS45OTggMzYuMjA0IDBMMTkyIDMxMi42OSA0MzIuMDk1IDcyLjU5NmM5Ljk5Ny05Ljk5NyAyNi4yMDctOS45OTcgMzYuMjA0IDBsMzYuMjAzIDM2LjIwNGM5Ljk5NyA5Ljk5NyA5Ljk5NyAyNi4yMDYgMCAzNi4yMDRsLTI5NC40IDI5NC40MDFjLTkuOTk4IDkuOTk3LTI2LjIwNyA5Ljk5Ny0zNi4yMDQtLjAwMXonLyUzRSUzQy9zdmclM0VcIik7XG59XG4vKiBodHRwczovL2dpdGh1Yi5jb20vRm9ydEF3ZXNvbWUvRm9udC1Bd2Vzb21lLVByby9ibG9iL21hc3Rlci9hZHZhbmNlZC1vcHRpb25zL3Jhdy1zdmcvcmVndWxhci9leGNsYW1hdGlvbi10cmlhbmdsZS5zdmcgKi9cbi50b2FzdC13YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgNTc2IDUxMicgd2lkdGg9JzU3NicgaGVpZ2h0PSc1MTInJTNFJTNDcGF0aCBmaWxsPSdyZ2IoMjU1LDI1NSwyNTUpJyBkPSdNNTY5LjUxNyA0NDAuMDEzQzU4Ny45NzUgNDcyLjAwNyA1NjQuODA2IDUxMiA1MjcuOTQgNTEySDQ4LjA1NGMtMzYuOTM3IDAtNTkuOTk5LTQwLjA1NS00MS41NzctNzEuOTg3TDI0Ni40MjMgMjMuOTg1YzE4LjQ2Ny0zMi4wMDkgNjQuNzItMzEuOTUxIDgzLjE1NCAwbDIzOS45NCA0MTYuMDI4ek0yODggMzU0Yy0yNS40MDUgMC00NiAyMC41OTUtNDYgNDZzMjAuNTk1IDQ2IDQ2IDQ2IDQ2LTIwLjU5NSA0Ni00Ni0yMC41OTUtNDYtNDYtNDZ6bS00My42NzMtMTY1LjM0Nmw3LjQxOCAxMzZjLjM0NyA2LjM2NCA1LjYwOSAxMS4zNDYgMTEuOTgyIDExLjM0Nmg0OC41NDZjNi4zNzMgMCAxMS42MzUtNC45ODIgMTEuOTgyLTExLjM0Nmw3LjQxOC0xMzZjLjM3NS02Ljg3NC01LjA5OC0xMi42NTQtMTEuOTgyLTEyLjY1NGgtNjMuMzgzYy02Ljg4NCAwLTEyLjM1NiA1Ljc4LTExLjk4MSAxMi42NTR6Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xufVxuLnRvYXN0LWNvbnRhaW5lci50b2FzdC10b3AtY2VudGVyIC5uZ3gtdG9hc3RyLFxuLnRvYXN0LWNvbnRhaW5lci50b2FzdC1ib3R0b20tY2VudGVyIC5uZ3gtdG9hc3RyIHtcbiAgd2lkdGg6IDMwMHB4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLnRvYXN0LWNvbnRhaW5lci50b2FzdC10b3AtZnVsbC13aWR0aCAubmd4LXRvYXN0cixcbi50b2FzdC1jb250YWluZXIudG9hc3QtYm90dG9tLWZ1bGwtd2lkdGggLm5neC10b2FzdHIge1xuICB3aWR0aDogOTYlO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLm5neC10b2FzdHIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDMwMzAzO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cbi50b2FzdC1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzUxQTM1MTtcbn1cbi50b2FzdC1lcnJvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNCRDM2MkY7XG59XG4udG9hc3QtaW5mbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyRjk2QjQ7XG59XG4udG9hc3Qtd2FybmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGODk0MDY7XG59XG4udG9hc3QtcHJvZ3Jlc3Mge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgaGVpZ2h0OiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi8qIFJlc3BvbnNpdmUgRGVzaWduICovXG5AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiAyNDBweCkge1xuICAudG9hc3QtY29udGFpbmVyIC5uZ3gtdG9hc3RyLmRpdiB7XG4gICAgcGFkZGluZzogOHB4IDhweCA4cHggNTBweDtcbiAgICB3aWR0aDogMTFlbTtcbiAgfVxuICAudG9hc3QtY29udGFpbmVyIC50b2FzdC1jbG9zZS1idXR0b24ge1xuICAgIHJpZ2h0OiAtMC4yZW07XG4gICAgdG9wOiAtMC4yZW07XG4gIH1cbn1cbkBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDI0MXB4KSBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnRvYXN0LWNvbnRhaW5lciAubmd4LXRvYXN0ci5kaXYge1xuICAgIHBhZGRpbmc6IDhweCA4cHggOHB4IDUwcHg7XG4gICAgd2lkdGg6IDE4ZW07XG4gIH1cbiAgLnRvYXN0LWNvbnRhaW5lciAudG9hc3QtY2xvc2UtYnV0dG9uIHtcbiAgICByaWdodDogLTAuMmVtO1xuICAgIHRvcDogLTAuMmVtO1xuICB9XG59XG5AbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiA0ODFweCkgYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC50b2FzdC1jb250YWluZXIgLm5neC10b2FzdHIuZGl2IHtcbiAgICBwYWRkaW5nOiAxNXB4IDE1cHggMTVweCA1MHB4O1xuICAgIHdpZHRoOiAyNWVtO1xuICB9XG59XG4iLCIvLyBSZXF1aXJlZCBmb3IgbG9hZGluZyBpbiBib2R5IGRpdlxuLm1haW4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbn1cblxuLnplcm8tbGV0dGVyLXNwYWNpbmcge1xuICBsZXR0ZXItc3BhY2luZzogMDtcbn1cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJmb250XCI7XG5AaW1wb3J0IFwic3JjL3Njc3MvY3VzdG9tXCI7XG5cbi8vIE5hdiBCYXJcblxuLnNpZGViYXIge1xuICB3aWR0aDogJHNpZGViYXItd2lkdGggIWltcG9ydGFudDtcbn1cblxuLmFwcC1ib2R5IC5zaWRlYmFyLXNob3cgfiAubWFpbiB7XG4gIG1hcmdpbi1sZWZ0OiAkc2lkZWJhci13aWR0aCAhaW1wb3J0YW50O1xufVxuXG4uYXBwLWJvZHkgLnNpZGViYXItaGlkZSB+IC5tYWluIHtcbiAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbn1cblxuLnN0eWxlLW5hdiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRuYXYtYmFja2dyb3VuZC1jb2xvcjtcbiAgcGFkZGluZzogMnJlbTtcbn1cblxuLm5hdi11bCB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5uYXYtaXRlbSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDAuNzVyZW0gMXJlbTtcbiAgY29sb3I6ICRuYXYtaW5hY3RpdmUtdGV4dC1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbWFyZ2luOiAwLjI1cmVtIDAuNXJlbTtcbn1cblxuLm5hdi1pdGVtLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRrcnVnby1ibGFjaztcbiAgY29sb3I6ICRrcnVnby13aGl0ZTtcbn1cblxuLm5hdi1pdGVtLnBhc3NpdmUtc2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICBjb2xvcjogJG5hdi1hY3RpdmUtdGV4dC1jb2xvcjtcbn1cblxuLm5hdi1pdGVtLnBhc3NpdmUtc2VsZWN0aW9uIC5uYXYtaXRlbS1sYWJlbCB7XG4gIGhlaWdodDogMi4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuMjVyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4ubmF2LWl0ZW0ucGFzc2l2ZS1zZWxlY3Rpb24gLm5hdi1pdGVtLWxhYmVsLm11bHRpLWxpbmUtbGFiZWwge1xuICBsaW5lLWhlaWdodDogMS4xMjVyZW07XG59XG5cbi5uYXYtaXRlbS1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG4gIGNvbG9yOiAka3J1Z28tYmxhY2s7XG4gIEBleHRlbmQgLmRlZmF1bHQtcmVndWxhcjtcbn1cblxubGkubmF2LWl0ZW0uYWN0aXZlIC5uYXYtaXRlbS1sYWJlbCB7XG4gIGNvbG9yOiAka3J1Z28td2hpdGU7XG4gIEBleHRlbmQgLmRlZmF1bHQtYm9sZDtcbn1cblxubGkubmF2LWl0ZW0uYWN0aXZlIC5uYXYtYmFyLWljb24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5saS5uYXYtaXRlbS5hY3RpdmUgLm5hdi1iYXItaWNvbi1maWxsZWQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5uYXYtYmFyLWljb24sIC5uYXYtYmFyLWljb24tZmlsbGVkIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMS41cmVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLm5hdi1iYXItaWNvbi1maWxsZWQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubmF2LWl0ZW06aG92ZXI6bm90KC5hY3RpdmUpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGhvdmVyLWdyYXktY29sb3I7XG59XG5cbi5uYXYtaXRlbTpob3ZlciAubmF2LWJhci1pY29uIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLm5hdi1pdGVtOmhvdmVyIC5uYXYtaXRlbS1sYWJlbCB7XG59XG5cbi5uYXYtaXRlbS1ub3RpZmljYXRpb24tcGlsbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRuYXYtbm90aWZpY2F0aW9uLXBpbGwtY29sb3I7XG4gIGNvbG9yOiAkd2hpdGUtY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMC42MjVyZW07XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjM3NXJlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm9yZGVyLXJhZGl1czogMS4xMjVyZW07XG4gIG1pbi13aWR0aDogMS41cmVtO1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbi10b3A6IDAuMnJlbTtcbiAgQGV4dGVuZCAuZGVmYXVsdC1zZW1pLWJvbGQ7XG59XG5cbi8qIFRleHRfRmllbGRfU3RhcnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8vbm9pbnNwZWN0aW9uIEFMTFxuLmN1c3RvbS10ZXh0ZmllbGQge1xuICBjb2xvcjogJHByaW1hcnktdGV4dC1jb2xvcjtcbiAgaGVpZ2h0OiAyLjVyZW07XG4gIHdpZHRoOiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlO1xuICBib3JkZXI6IDA7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGtydWdvLWxpZ2h0LWdyZXk7XG4gIHBhZGRpbmc6IDAuODEyNXJlbSAwcmVtO1xuICBAZXh0ZW5kIC5kZWZhdWx0LXJlZ3VsYXI7XG59XG5cbi5jdXN0b20tdGV4dGZpZWxkOnJlYWQtb25seSB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIGJvcmRlcjogMDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGVmYXVsdC1ncmF5LWNvbG9yO1xufVxuXG4uY3VzdG9tLXRleHRmaWVsZDpyZWFkLW9ubHk6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRlZmF1bHQtZ3JheS1jb2xvcjtcbn1cblxuLmN1c3RvbS10ZXh0ZmllbGQ6Zm9jdXMge1xuICBjb2xvcjogJHByaW1hcnktdGV4dC1jb2xvcjtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRrcnVnby1ibGFjaztcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICBAZXh0ZW5kIC5kZWZhdWx0LW1lZGl1bTtcbn1cblxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFRleHRfRmllbGRfRW5kICovXG5cbi8vIEkgbmFtZWQgdGhpbmdzIGFjY29yZGluZyB0byBob3cgdGhleSB3ZXJlIGxhYmVsbGVkIGluIHhkLmFkb2JlIGJ5IENvbm9yXG4vKiBUZXh0X1N0YXJ0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uY3VzdG9tLWhlYWRsaW5lIHtcbiAgQGV4dGVuZCAuZGVmYXVsdC1ib2xkO1xuICBAZXh0ZW5kIC56ZXJvLWxldHRlci1zcGFjaW5nO1xuICBmb250LXNpemU6IDJyZW07XG4gIGNvbG9yOiAkYmxhY2stY29sb3I7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5jdXN0b20tc2VjdGlvbi10aXRsZSB7XG4gIEBleHRlbmQgLmRlZmF1bHQtYm9sZDtcbiAgQGV4dGVuZCAuemVyby1sZXR0ZXItc3BhY2luZztcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGNvbG9yOiAkYmxhY2stY29sb3I7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5jdXN0b20tc2VjdGlvbi1zdWJ0aXRsZSB7XG4gIEBleHRlbmQgLmRlZmF1bHQtYm9sZDtcbiAgQGV4dGVuZCAuemVyby1sZXR0ZXItc3BhY2luZztcbiAgY29sb3I6ICRibGFjay1jb2xvcjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBvcGFjaXR5OiAxO1xufVxuXG4uY3VzdG9tLXNlY3Rpb24tc3VidGV4dCB7XG4gIEBleHRlbmQgLmRlZmF1bHQtcmVndWxhcjtcbiAgQGV4dGVuZCAuemVyby1sZXR0ZXItc3BhY2luZztcbiAgY29sb3I6ICRleHRyYS1kYXJrLWdyYXktY29sb3I7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTI1cmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBvcGFjaXR5OiAxO1xufVxuXG4uY3VzdG9tLW1vZGFsLXNlY3Rpb24taGVhZGVyLXRleHQge1xuICBAZXh0ZW5kIC5kZWZhdWx0LWJvbGQ7XG4gIEBleHRlbmQgLnplcm8tbGV0dGVyLXNwYWNpbmc7XG4gIGNvbG9yOiAkYmxhY2stY29sb3I7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmN1c3RvbS1lcnJvci10ZXh0IHtcbiAgQGV4dGVuZCAuZGVmYXVsdC1yZWd1bGFyO1xuICBAZXh0ZW5kIC56ZXJvLWxldHRlci1zcGFjaW5nO1xuICBjb2xvcjogJHJlZC1jb2xvcjtcbiAgZm9udC1zaXplOiAwLjYyNXJlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgb3BhY2l0eTogMTtcbn1cblxuaDMge1xuICBAZXh0ZW5kIC5kZWZhdWx0LWJvbGQ7XG4gIEBleHRlbmQgLnplcm8tbGV0dGVyLXNwYWNpbmc7XG4gIGNvbG9yOiAkYmxhY2stY29sb3I7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIG9wYWNpdHk6IDE7XG59XG5cbmJvZHkge1xuICBAZXh0ZW5kIC5kZWZhdWx0LXJlZ3VsYXI7XG4gIEBleHRlbmQgLnplcm8tbGV0dGVyLXNwYWNpbmc7XG4gIGNvbG9yOiAkYmxhY2stY29sb3I7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5tYWluLXRpdGxlIHtcbiAgQGV4dGVuZCAuZGVmYXVsdC1ib2xkO1xuICBmb250LXNpemU6IDIuM3JlbTtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cblxuLmRpdmlkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAka3J1Z28tbGlnaHQtZ3JleTtcbiAgaGVpZ2h0OiAxcHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uZGl2aWRlci5ibGFjayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRrcnVnby1ibGFjaztcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBUZXh0X0VuZCAqL1xuXG4vKiBCdXR0b25zX1N0YXJ0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uY3VzdG9tLWJ1dHRvbiB7XG4gIHBhZGRpbmc6IDAuNzVyZW0gMXJlbTtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICBsaW5lLWhlaWdodDogMS4xMjVyZW07XG4gIG9wYWNpdHk6IDE7XG4gIGhlaWdodDogMi43NXJlbTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuOHM7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgQGV4dGVuZCAuemVyby1sZXR0ZXItc3BhY2luZztcbiAgQGV4dGVuZCAuZGVmYXVsdC1zZW1pLWJvbGQ7XG4gIGltZyB7XG4gIG1hcmdpbi1yaWdodDogMC43NXJlbTtcbiAgd2lkdGg6IDEuNXJlbTtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIH1cbn1cblxuLmN1c3RvbS1idXR0b24gaW1nIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmN1c3RvbS1idXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uY3VzdG9tLWJ1dHRvbiAuc2hvdy1vbi1ob3ZlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jdXN0b20tYnV0dG9uOmhvdmVyIC5oaWRlLW9uLWhvdmVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmN1c3RvbS1idXR0b246aG92ZXIgLnNob3ctb24taG92ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5jdXN0b20tYnV0dG9uOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmV5LWNvbG9yO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMHM7XG59XG5cbi5wcmVmZXJyZWQtYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGtydWdvLXllbGxvdztcbiAgY29sb3I6ICRrcnVnby1ibGFjaztcbn1cblxuLmljb24tYnV0dG9uLWljb24ge1xuICBtYXJnaW4tcmlnaHQ6IDAuNjI1cmVtO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5yb3VuZGVkLWljb24tYnV0dG9uIHtcbiAgaGVpZ2h0OiAycmVtO1xuICB3aWR0aDogMnJlbTtcbiAgcGFkZGluZzogMC40cmVtO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5cbi5yb3VuZGVkLWljb24tYnV0dG9uIC5pY29uLWJ1dHRvbi1pY29uIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4ucHJlZmVycmVkLWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRrcnVnby15ZWxsb3c7XG59XG5cbi5wcmVmZXJyZWQtYnV0dG9uLmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGtydWdvLWxpZ2h0LWdyZXk7XG59XG5cbi5uZXV0cmFsLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRrcnVnby1ibGFjaztcbiAgY29sb3I6ICRrcnVnby13aGl0ZTtcbn1cblxuLm5ldXRyYWwtYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1uZXV0cmFsLWhvdmVyLWNvbG9yO1xufVxuXG4ubmV1dHJhbC1idXR0b24uZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGVmYXVsdC1ncmF5LWNvbG9yO1xuICBvcGFjaXR5OiAwLjU7XG59XG5cbi5ncmV5LWJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRrcnVnby1saWdodC1ncmV5O1xuICBjb2xvcjogJGtydWdvLWJsYWNrO1xufVxuXG4uZ3JleS1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAka3J1Z28tZ3JleTtcbn1cblxuLmRhcmstbmV1dHJhbC1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWRhcmstbmV1dHJhbC1jb2xvcjtcbiAgY29sb3I6ICRidXR0b24td2hpdGUtdGV4dC1jb2xvcjtcbn1cblxuLmRhcmstbmV1dHJhbC1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWRhcmstbmV1dHJhbC1ob3Zlci1jb2xvcjtcbn1cblxuLmRhcmstbmV1dHJhbC1idXR0b24uZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGVmYXVsdC1ncmF5LWNvbG9yO1xufVxuXG4ub3V0bGluZWQtYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlLWNvbG9yO1xuICBjb2xvcjogJGJ1dHRvbi1ibGFjay10ZXh0LWNvbG9yO1xuICBAZXh0ZW5kIC5ib3JkZXJlZC1idXR0b25cbn1cblxuLm91dGxpbmVkLWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tb3V0bGluZWQtaG92ZXItY29sb3I7XG59XG5cbi5vdXRsaW5lZC1idXR0b24uZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZ3JleS1jb2xvcjtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4uZGVzdHJ1Y3RpdmUtYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlLWNvbG9yO1xuICBjb2xvcjogJHJlZC1jb2xvcjtcbiAgYm9yZGVyOiAwLjEyNHJlbSBzb2xpZCAkcmVkLWNvbG9yO1xufVxuXG4uZGVzdHJ1Y3RpdmUtYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHJlZC1jb2xvcjtcbiAgY29sb3I6ICRidXR0b24td2hpdGUtdGV4dC1jb2xvcjtcbn1cblxuLmRlc3RydWN0aXZlLWJ1dHRvbi5kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmV5LWNvbG9yO1xuICBjb2xvcjogJGJ1dHRvbi1ibGFjay10ZXh0LWNvbG9yO1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi50ZXh0LWJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRrcnVnby13aGl0ZTtcbiAgY29sb3I6ICRrcnVnby1kYXJrLWdyZXk7XG59XG5cblxuLmJhY2stYnV0dG9uIHtcbiAgcGFkZGluZzogMC43NXJlbSAxcmVtIDAuNzVyZW0gMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi10ZXh0LWNvbG9yO1xuICBjb2xvcjogJGJ1dHRvbi1ibGFjay10ZXh0LWNvbG9yO1xuICBvcGFjaXR5OiAwLjU7XG59XG5cbi5iYWNrLWJ1dHRvbiBpbWcge1xuICBtYXJnaW4tcmlnaHQ6IDAuMjVyZW07XG59XG5cbi5iYWNrLWJ1dHRvbjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tdGV4dC1jb2xvcjtcbn1cblxuLnRleHQtbGluay1oZWxwZXIge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4xMjVyZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiAkcHJpbWFyeS1ibHVlLWNvbG9yO1xuICBAZXh0ZW5kIC5kZWZhdWx0LW1lZGl1bVxufVxuXG4uaW5saW5lLXRleHQtbGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwIDAuNXJlbTtcbn1cblxuLnRleHQtbGluayB7XG4gIGNvbG9yOiAka3J1Z28tYmxhY2sgIWltcG9ydGFudDtcbiAgQGV4dGVuZCAuZGVmYXVsdC1zZW1pLWJvbGRcbn1cblxuLnRleHQtbGluay5kaXNhYmxlZCB7XG4gIGNvbG9yOiAkbGlnaHQtZ3JleS1jb2xvcjtcbn1cblxuLnRleHQtbGluay5kaXNhYmxlZDpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY3Vyc29yOiBub25lO1xufVxuXG4udGV4dC1saW5rOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnRleHQtbGluay5kZXN0cnVjdGl2ZS1saW5rIHtcbiAgY29sb3I6ICRyZWQtY29sb3I7XG59XG5cbi50ZXh0LWxpbmsuZGVzdHJ1Y3RpdmUtbGluay5kaXNhYmxlZCB7XG4gIGNvbG9yOiAkbGlnaHQtcmVkLWNvbG9yO1xufVxuXG4uYm9yZGVyZWQtYnV0dG9uIHtcbiAgYm9yZGVyOiAwLjEyNHJlbSBzb2xpZCAkYnV0dG9uLWJvcmRlci1jb2xvcjtcbn1cblxuLmZ1bGwtd2lkdGgtYnV0dG9uIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5pbi1idXR0b24tbG9hZGluZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB3aWR0aDogMS41cmVtO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5pbi1idXR0b24tbG9hZGluZyBhcHAtbG9hZGluZyAubG9hZGluZy1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4ucmlwcGxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCAjMDAwIDEwJSwgdHJhbnNwYXJlbnQgMTAuMDElKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEwLCAxMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjJzLCBvcGFjaXR5IDAuNXM7XG4gIH1cblxuICAmOmFjdGl2ZTphZnRlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLCAwKTtcbiAgICBvcGFjaXR5OiAuMjtcbiAgICB0cmFuc2l0aW9uOiAwcztcbiAgfVxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEJ1dHRvbnNfRW5kICovXG5cblxuLyogTGFiZWxzX1N0YXJ0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uY3VzdG9tLWxhYmVsIHtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC40cmVtO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDAuM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTI1cmVtO1xuICBvcGFjaXR5OiAxO1xuICBoZWlnaHQ6IDEuMjVyZW07XG4gIGZvbnQtc2l6ZTogMC42MjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBAZXh0ZW5kIC5kZWZhdWx0LXNlbWktYm9sZDtcbn1cblxuLnByZWZlcnJlZC1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWJsdWUtY29sb3I7XG4gIGNvbG9yOiAkd2hpdGUtY29sb3I7XG59XG5cbi5wb3NpdGl2ZS1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRsYWJlbC1wb3NpdGl2ZS1jb2xvcjtcbiAgY29sb3I6ICRsYWJlbC1wb3NpdGl2ZS10ZXh0LWNvbG9yO1xufVxuXG4ubmV1dHJhbC1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRsYWJlbC1uZXV0cmFsLWNvbG9yO1xuICBjb2xvcjogJGxhYmVsLW5ldXRyYWwtdGV4dC1jb2xvcjtcbn1cblxuLm5lZ2F0aXZlLWxhYmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGxhYmVsLW5lZ2F0aXZlLWNvbG9yO1xuICBjb2xvcjogJGxhYmVsLW5lZ2F0aXZlLXRleHQtY29sb3I7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTGFiZWxzX0VuZCAqL1xuXG4vKiBUb2dnbGVfU3dpdGNoX1N0YXJ0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5jdXN0b20tc3dpdGNoLWNvbnRhaW5lciB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiAkcHJpbWFyeS10ZXh0LWNvbG9yO1xuICBAZXh0ZW5kIC5kZWZhdWx0LW1lZGl1bTtcblxuICBpbWcge1xuICAgIGhlaWdodDogMXJlbTtcbiAgICB3aWR0aDogMXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMS41cmVtO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxuXG4gIGxhYmVsIHtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgfVxufVxuXG4vKiBUaGUgc3dpdGNoIC0gdGhlIGJveCBhcm91bmQgdGhlIHNsaWRlciAqL1xuLmN1c3RvbS1zd2l0Y2gge1xuICBmbGV4LXNocmluazogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAyLjg3NXJlbTtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIG1hcmdpbi1sZWZ0OiAxLjEyNXJlbTtcbn1cblxuLyogSGlkZSBkZWZhdWx0IEhUTUwgY2hlY2tib3ggKi9cbi5jdXN0b20tc3dpdGNoIGlucHV0IHtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbn1cblxuLyogVGhlIHNsaWRlciAqL1xuLmN1c3RvbS1zbGlkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3dpdGNoLWJhc2UtY29sb3I7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLjRzO1xuICB0cmFuc2l0aW9uOiAuNHM7XG4gIGJvcmRlci1yYWRpdXM6IDM0cHg7XG59XG5cbi5jdXN0b20tc2xpZGVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHN3aXRjaC1ob3Zlci1jb2xvclxufVxuXG4uY3VzdG9tLXNsaWRlcjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGhlaWdodDogMS4yNXJlbTtcbiAgd2lkdGg6IDEuMjVyZW07XG4gIHRvcDogMC4xcmVtO1xuICBsZWZ0OiAwLjE1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUtY29sb3I7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLjRzO1xuICB0cmFuc2l0aW9uOiAuNHM7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuaW5wdXQ6Y2hlY2tlZCArIC5jdXN0b20tc2xpZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHN3aXRjaC1hY3RpdmF0ZWQtY29sb3I7XG59XG5cbmlucHV0OmZvY3VzICsgLmN1c3RvbS1zbGlkZXIge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG5pbnB1dDpjaGVja2VkICsgLmN1c3RvbS1zbGlkZXI6YmVmb3JlIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMS4zNzVyZW0pO1xuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEuMzc1cmVtKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEuMzc1cmVtKTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFRvZ2dsZV9Td2l0Y2hfRW5kICovXG5cbi8qIFJhZGlvX1N0YXJ0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmN1c3RvbS1yYWRpby1mb3JtIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmN1c3RvbS1yYWRpby1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBtYXJnaW4tbGVmdDogMC4zNzVyZW07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIEBleHRlbmQgLmRlZmF1bHQtbWVkaXVtO1xufVxuXG4uY3VzdG9tLXJhZGlvIHtcbiAgaGVpZ2h0OiAxLjI1cmVtO1xuICB3aWR0aDogMS4yNXJlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmN1c3RvbS1yYWRpby1vcHRpb24ge1xuICBwYWRkaW5nOiAwLjVyZW0gMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmN1c3RvbS1yYWRpby1vcHRpb24taW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwIDFyZW07XG59XG5cbi5jdXN0b20tcmFkaW8tb3B0aW9uIGlucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvcGFjaXR5OiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jdXN0b20tY3VzdG9tLXJhZGlvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBoZWlnaHQ6IDEuMjVyZW07XG4gIHdpZHRoOiAxLjI1cmVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmFkaW8tYmFzZS1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLmN1c3RvbS1yYWRpby1vcHRpb24uZGlzYWJsZWQgaW5wdXQge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uY3VzdG9tLXJhZGlvLW9wdGlvbi5kaXNhYmxlZDpob3ZlciAuY3VzdG9tLWN1c3RvbS1yYWRpbyB7XG4gIGJhY2tncm91bmQ6ICRyYWRpby1iYXNlLWNvbG9yO1xufVxuXG4uY3VzdG9tLXJhZGlvLW9wdGlvbjpob3ZlciAuY3VzdG9tLWN1c3RvbS1yYWRpbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRyYWRpby1ob3Zlci1jb2xvcjtcbn1cblxuLmN1c3RvbS1yYWRpby1vcHRpb24gaW5wdXQ6Y2hlY2tlZCB+IC5jdXN0b20tY3VzdG9tLXJhZGlvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHJhZGlvLWFjdGl2YXRlZC1jb2xvcjtcbn1cblxuLmN1c3RvbS1jdXN0b20tcmFkaW86YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jdXN0b20tcmFkaW8tb3B0aW9uIGlucHV0OmNoZWNrZWQgfiAuY3VzdG9tLWN1c3RvbS1yYWRpbzphZnRlciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uY3VzdG9tLXJhZGlvLW9wdGlvbiAuY3VzdG9tLWN1c3RvbS1yYWRpbzphZnRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAwLjYyNXJlbSAtICgwLjM3NXJlbSAvIDIpO1xuICBsZWZ0OiAwLjYyNXJlbSAtICgwLjM3NXJlbSAvIDIpO1xuICB3aWR0aDogMC4zNzVyZW07XG4gIGhlaWdodDogMC4zNzVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogJHdoaXRlLWNvbG9yO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSYWRpb19FbmQgKi9cblxuLyogVG9nZ2xlX1N0YXJ0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uY3VzdG9tLXRvZ2dsZSB7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHRvZ2dsZS1iYXNlLWNvbG9yO1xuICBoZWlnaHQ6IDJyZW07XG4gIHdpZHRoOiAycmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICBwYWRkaW5nOiAwLjU2MjVyZW0gMDtcbiAgQGV4dGVuZCAuZGVmYXVsdC1tZWRpdW07XG59XG5cbi5jdXN0b20tdG9nZ2xlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHRvZ2dsZS1ob3Zlci1jb2xvcjtcbn1cblxuLmN1c3RvbS10b2dnbGUuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHRvZ2dsZS1hY3RpdmF0ZWQtY29sb3I7XG4gIGNvbG9yOiAkd2hpdGUtY29sb3I7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVG9nZ2xlX0VuZCAqL1xuXG5cbi8qIENhcmRzX1N0YXJ0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uY3VzdG9tLWNhcmQge1xuICB3aWR0aDogMTRyZW07XG4gIGhlaWdodDogMTByZW07XG4gIG1pbi13aWR0aDogMTRyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIG1hcmdpbi1ib3R0b206IDFyZW0gIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIEBleHRlbmQgLmN1c3RvbS1jYXJkLXJhZGl1cy10b3A7XG4gIEBleHRlbmQgLmN1c3RvbS1jYXJkLXJhZGl1cy1ib3R0b207XG59XG5cbi5jYXJkLmN1c3RvbS1jYXJkOmhvdmVyIC5jdXN0b20tY2FyZC1sYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRob3Zlci1ncmF5LWNvbG9yO1xuICBvcGFjaXR5OiAxLjA7XG4gIGhlaWdodDogNXJlbTtcbiAgdHJhbnNpdGlvbjogMC4yNXMgZWFzZS1pbi1vdXQ7XG59XG5cbi5jdXN0b20tY2FyZC1sYWJlbCB7XG4gIGhlaWdodDogNC41cmVtO1xuICBiYWNrZ3JvdW5kOiAkY2FyZC1iYW5uZXItY29sb3IgMCAwIG5vLXJlcGVhdCBwYWRkaW5nLWJveDtcbiAgb3BhY2l0eTogMC45O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICBtYXJnaW4tdG9wOiBhdXRvO1xuICBAZXh0ZW5kIC5jdXN0b20tY2FyZC1yYWRpdXMtYm90dG9tO1xufVxuXG4uY3VzdG9tLWNhcmQtcmFkaXVzLXRvcCB7XG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAuNjI1cmVtO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMC42MjVyZW07XG59XG5cbi5jdXN0b20tY2FyZC1yYWRpdXMtYm90dG9tIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMC42MjVyZW07XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwLjYyNXJlbTtcbn1cblxuLmN1c3RvbS1jYXJkLWxhYmVsLXRpdGxlIHtcbiAgQGV4dGVuZCAuZGVmYXVsdC1tZWRpdW07XG4gIEBleHRlbmQgLnplcm8tbGV0dGVyLXNwYWNpbmc7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGNvbG9yOiAjNzM3NjgwO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uY3VzdG9tLWNhcmQtbGFiZWwtdGV4dCB7XG4gIEBleHRlbmQgLmRlZmF1bHQtYm9sZDtcbiAgQGV4dGVuZCAuemVyby1sZXR0ZXItc3BhY2luZztcbiAgZm9udC1zaXplOiAxLjNyZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiAkY2FyZC10ZXh0LWNvbG9yO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uY2FyZC1kZWNrIHtcbiAgbWFyZ2luOiAxLjVyZW0gMCAwIDA7XG59XG5cbi5jdXN0b20tY2FyZC1kZWNrIHtcbiAgbWFyZ2luOiAxLjVyZW0gMCAwIDA7XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgbWF4LWhlaWdodDogMjByZW07XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBwYWRkaW5nLWJvdHRvbTogMC4yNXJlbTtcbn1cblxuLmN1c3RvbS1jYXJkLWRlY2sgLmNhcmQge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50O1xufVxuXG4uY3VzdG9tLWNhcmQtd2l0aC1ib3R0b20tbWFyZ2luIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbSAhaW1wb3J0YW50O1xufVxuXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENhcmRzX0VuZCAqL1xuXG5cbi8qIE1lZGlhX1VwbG9hZF9TdGFydCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmN1c3RvbS11cGxvYWQtYXJlYSB7XG4gIGJvcmRlcjogMXB4IGRhc2hlZCAkbWVkaWEtdXBsb2FkLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICRtZWRpYS11cGxvYWQtYmFja2dyb3VuZDtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuXG4uY3VzdG9tLXVwbG9hZC1mb3JtIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uY3VzdG9tLXVwbG9hZC1pY29uIHtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIG1hcmdpbjogMS41cmVtIGF1dG8gYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5jdXN0b20tdXBsb2FkLXRleHQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZy10b3A6IDFyZW07XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxcmVtO1xuICBAZXh0ZW5kIC5kZWZhdWx0LW1lZGl1bTtcbn1cblxuLmN1c3RvbS11cGxvYWQtbGFiZWwge1xuICBjb2xvcjogJG1lZGlhLXVwbG9hZC1ibHVlLWNvbG9yO1xufVxuXG4uY3VzdG9tLXVwbG9hZC1sYWJlbDpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5zZWNvbmRhcnktdXBsb2FkLXRleHQge1xuICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICBjb2xvcjogJG1lZGlhLXVwbG9hZC1ncmV5LWNvbG9yO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG59XG5cbi5jdXN0b20tZmlsZS1pbnB1dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jdXN0b20tdXBsb2FkLWxpc3QtY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDEuMjVyZW0gMDtcbn1cblxuLmN1c3RvbS11cGxvYWQtbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tbGVmdDogLTAuNzVyZW07XG59XG5cbi5tb2RhbC1jdXN0b20tdXBsb2FkLWxpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG1heC1oZWlnaHQ6IDE1cmVtO1xuICBtYXJnaW4tbGVmdDogLTAuNzVyZW07XG59XG5cbi5jdXN0b20tdXBsb2FkLWJ1dHRvbiB7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmN1c3RvbS11cGxvYWQtYnV0dG9uOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLmN1c3RvbS11cGxvYWQtYnV0dG9uLWljb24ge1xuICBoZWlnaHQ6IDEuMjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBmaWx0ZXI6IGludmVydCg0OSUpIHNlcGlhKDglKSBzYXR1cmF0ZSg0MjglKSBodWUtcm90YXRlKDE4OWRlZykgYnJpZ2h0bmVzcyg5MiUpIGNvbnRyYXN0KDg2JSk7XG59XG5cbi5jdXN0b20tdXBsb2FkLXByZXZpZXcuZXJyb3IgLmN1c3RvbS1yZW1vdmUtdXBsb2FkLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jdXN0b20tdXBsb2FkLXByZXZpZXcuZXJyb3IgLmN1c3RvbS1yZWZyZXNoLXVwbG9hZC1idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5jdXN0b20tdXBsb2FkLXByZXZpZXcuc3VjY2VzcyAuY3VzdG9tLXJlbW92ZS11cGxvYWQtYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uY3VzdG9tLXVwbG9hZC1wcmV2aWV3LnN1Y2Nlc3MgLmN1c3RvbS1yZWZyZXNoLXVwbG9hZC1idXR0b24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE1lZGlhX1VwbG9hZF9FbmQgKi9cblxuLyogTGlzdHNfU3RhcnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uY3VzdG9tLXNlYXJjaC1yZXN1bHRzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDAuNjI1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlzdC1iYWNrZ3JvdW5kLWNvbG9yO1xuICBib3JkZXI6IDFweCBzb2xpZCAkbGlzdC1ib3JkZXItY29sb3I7XG4gIG1hcmdpbjogMC42MjVyZW07XG4gIG1heC1oZWlnaHQ6IDMzdmg7XG59XG5cbi5jdXN0b20tcmVzdWx0cy1jb250YWluZXIge1xuICBvdmVyZmxvdzogc2Nyb2xsO1xuICBtYXgtaGVpZ2h0OiAyNnZoO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmN1c3RvbS1zZWFyY2gtcmVzdWx0cy1oZWFkZXIge1xuICBwYWRkaW5nOiAxLjU2MjVyZW0gMCAxcmVtIDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjEyNXJlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRkZWZhdWx0LWdyYXktY29sb3I7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA0cmVtKTtcbiAgbWFyZ2luOiAwIDJyZW07XG4gIEBleHRlbmQgLmRlZmF1bHQtbWVkaXVtO1xufVxuXG4uY3VzdG9tLWxpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwIDFyZW0gMC41cmVtIDFyZW07XG4gIG1hcmdpbjogMDtcbn1cblxuLmN1c3RvbS1saXN0LWl0ZW0taW1hZ2Uge1xuICBoZWlnaHQ6IDNyZW07XG4gIHdpZHRoOiAzcmVtO1xuICBtYXJnaW46IDAgMCAwIDAuNzVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG59XG5cbi5jdXN0b20tbGlzdC1pdGVtLWltYWdlLWljb24ge1xuICBoZWlnaHQ6IDNyZW07XG4gIHdpZHRoOiAzcmVtO1xuICBtYXJnaW46IDAgMCAwIDAuNzVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICRkZWZhdWx0LWdyYXktY29sb3I7XG4gIHBhZGRpbmc6IDAuNzVyZW07XG59XG5cbi5jdXN0b20tbGlzdC1pdGVtLXRleHQtY29udGFpbmVyIHtcbiAgcGFkZGluZzogMCAxcmVtO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSA0cmVtKTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmN1c3RvbS1saXN0LWl0ZW0tdGV4dCB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjEyNXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgQGV4dGVuZCAuZGVmYXVsdC1ib2xkO1xufVxuXG4uY3VzdG9tLWxpc3QtaXRlbS1zdWJ0ZXh0IHtcbiAgZm9udC1zaXplOiAwLjYyNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDAuNzVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIEBleHRlbmQgLmRlZmF1bHQtbWVkaXVtO1xufVxuXG4uY3VzdG9tLWxpc3QtaXRlbSB7XG4gIHBhZGRpbmc6IDAuNzVyZW0gMDtcbn1cblxuLmN1c3RvbS1saXN0LWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlzdC1ob3Zlci1jb2xvcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItcmFkaXVzOiAwLjI1cmVtO1xufVxuXG4uY3VzdG9tLWxpc3QtaXRlbS5pbmFjdGl2ZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRsaXN0LWJhY2tncm91bmQtY29sb3I7XG59XG5cbi5jdXN0b20tbGlzdC1pdGVtLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRsaXN0LWFjdGl2ZS1jb2xvcjtcbiAgY3Vyc29yOiB0ZXh0ICFpbXBvcnRhbnQ7XG59XG5cblxuLm1lbnUtbGlzdC1jb250YWluZXIge1xuICBtYXgtaGVpZ2h0OiAzMHJlbTtcbiAgcGFkZGluZy10b3A6IDFyZW07XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZDogJHdoaXRlLWNvbG9yO1xufVxuXG4ubWVudS1saXN0LWl0ZW0ge1xuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XG4gIGNvbG9yOiAkcHJpbWFyeS10ZXh0LWNvbG9yO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6ICR3aGl0ZS1jb2xvcjtcbiAgei1pbmRleDogOTk7XG4gIGJveC1zaGFkb3c6IDAgMCAycHggMnB4IHJnYmEoMjE4LCAyMjAsIDIyMiwgMC43KTtcbiAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gIG1hcmdpbjogMXJlbSAwO1xufVxuXG4ubWVudS1saXN0LWl0ZW0uZGlzYWJsZWQge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXh0cmEtbGlnaHQtZ3JleS1jb2xvcjtcbn1cblxuLm1lbnUtYWRkZWQge1xuICBAZXh0ZW5kIC5kZWZhdWx0LXNlbWktYm9sZDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTGlzdHNfRW5kICovXG5cbi8qIEltYWdlX1N0YXJ0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmN1c3RvbS1wcm9maWxlLWltYWdlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGhlaWdodDogNS42MjVyZW07IC8vIDkwcHg7XG4gIHdpZHRoOiA1LjYyNXJlbTsgLy8gOTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRlZmF1bHQtZ3JheS1jb2xvcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY3VzdG9tLXByb2ZpbGUtaW1hZ2UtcGFkZGluZyB7XG4gIHBhZGRpbmc6IDEuNzVyZW07XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEltYWdlX0VuZCAqL1xuXG4vKiBQb3BwZXJfU3RhcnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jdXN0b20tcG9wcGVyLWNvbnRlbnQge1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMC42MjVyZW0gIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCA0cHggOHB4IDAgcmdiYSgwLDAsMCwwLjIpICFpbXBvcnRhbnQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFBvcHBlcl9FbmQgKi9cblxuLyogTW9kYWxfU3RhcnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5zdGlja3ktaGVhZGVyLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGxlZnQ6IDA7XG4gIHBhZGRpbmc6IDEuNXJlbSAxLjVyZW0gMCAxLjVyZW07XG59XG5cbi5zdGlja3ktYm9keS1jb250YWluZXIge1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIHBhZGRpbmc6IDAgMS41cmVtO1xufVxuXG4uc3RpY2t5LWZvb3Rlci1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpLCAjRkNGQ0ZDLCAjRkNGQ0ZDKTtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgbGVmdDogMDtcbiAgcGFkZGluZzogMCAwIDEuNXJlbSAwO1xuICB6LWluZGV4OiAxMDtcbn1cblxuLnN0aWNreS1mb290ZXItY29udGFpbmVyLm1vZGFsLWZvb3Rlci1mbGV4LWVuZCB7XG4gIHBhZGRpbmctdG9wOiAzcmVtO1xufVxuXG4ubW9kYWwtZm9ybS1uZWdhdGl2ZS1wYWRkaW5nIHtcbiAgbWFyZ2luOiAwIC0xLjVyZW07XG59XG5cbi5tb2RhbC1ib2R5IHtcbiAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDNyZW0pO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiAxLjVyZW07XG59XG5cbi5tb2RhbC1ib2R5LnN0aWNreSB7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5tb2RhbC1oZWFkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMCAwIDEuMjVyZW0gMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRob3Zlci1ncmF5LWNvbG9yO1xufVxuXG4ubW9kYWwtdGl0bGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGZsZXg6IDE7XG4gIGNvbG9yOiAkcHJpbWFyeS10ZXh0LWNvbG9yO1xuICBAZXh0ZW5kIC5kZWZhdWx0LWJvbGQ7XG59XG5cbi5tb2RhbC1kZXNjcmlwdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBAaW5jbHVkZSBmMTRweDtcbiAgZmxleDogMCAxIGF1dG87XG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgY29sb3I6ICRwcmltYXJ5LXRleHQtY29sb3I7XG4gIEBleHRlbmQgLmRlZmF1bHQtcmVndWxhcjtcbn1cblxuLm1vZGFsLXN1YnRpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAycmVtO1xuICBjb2xvcjogJHByaW1hcnktdGV4dC1jb2xvcjtcbiAgQGV4dGVuZCAuZGVmYXVsdC1ib2xkO1xufVxuXG4ubW9kYWwtc3ViLXN1YnRpdGxlIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY29sb3I6ICRwcmltYXJ5LXRleHQtY29sb3I7XG4gIEBleHRlbmQgLmRlZmF1bHQtbWVkaXVtO1xufVxuXG4ubW9kYWwtc3ViLXN1YnRpdGxlLXRleHQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA1MCU7XG4gIGNvbG9yOiAkZXh0cmEtZGFyay1ncmF5LWNvbG9yO1xuICBAZXh0ZW5kIC5kZWZhdWx0LW1lZGl1bTtcbn1cblxuLm1vZGFsLXN1Yi1zdWJ0aXRsZS10ZXh0IHNwYW4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbG9yOiAkcHJpbWFyeS10ZXh0LWNvbG9yO1xuICBAZXh0ZW5kIC5kZWZhdWx0LXNlbWktYm9sZDtcbn1cblxuLmlubGluZS1zdWJ0aXRsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLXdpZHRoOiA1MCU7XG59XG5cbi5tb2RhbC1zdWJ0aXRsZS1hY3Rpb24ge1xuICBmbG9hdDogcmlnaHQ7XG4gIHRvcDogLTAuNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmZvb3Rlci1idXR0b24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBtYXJnaW46IDFyZW0gMCAxcmVtIDA7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLm1vZGFsLWZvb3Rlci1mbGV4LWVuZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi5tb2RhbC1kaXZpZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkaG92ZXItZ3JheS1jb2xvcjtcbiAgbWFyZ2luOiAwLjVyZW0gMDtcbn1cblxuXG4uaW5zaWdodC1pbmZvLW1vZGFsIHtcbiAgaGVpZ2h0OiAzMnJlbTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcGFkZGluZzogMS41cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAka3J1Z28td2hpdGU7XG59XG5cbi5jcmVhdGUtZ3VpZGUtbW9kYWwge1xuICBtaW4taGVpZ2h0OiA4MHZoO1xuICBtYXgtaGVpZ2h0OiA5MHZoO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICRrcnVnby13aGl0ZTtcbn1cblxuLnJlYXJyYW5nZS1hc3NldHMtbW9kYWwge1xuICBtaW4taGVpZ2h0OiAyMHJlbTtcbiAgbWF4LWhlaWdodDogNTJyZW07XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGtydWdvLXdoaXRlO1xufVxuXG4ucmVvcmRlci1hY3Rpb24tY29udGFpbmVyIHtcbiAgbWF4LWhlaWdodDogMzVyZW07XG59XG5cbi5hZGQtcGxhY2UtbW9kYWwge1xuICBtaW4taGVpZ2h0OiA3NXZoO1xuICBtYXgtaGVpZ2h0OiA5NXZoO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICRrcnVnby13aGl0ZTtcbn1cblxuLmVkaXQtZ3VpZGUtZmVhdHVyZS1tb2RhbCB7XG4gIG1pbi1oZWlnaHQ6IDQ1dmg7XG4gIG1heC1oZWlnaHQ6IDk1dmg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGtydWdvLXdoaXRlO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBNb2RhbF9FbmQgKi9cblxuLyogRHJvcF9Eb3duX01lbnVfU3RhcnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uY3VzdG9tLWRyb3Bkb3duLW1lbnUge1xuICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgYm9yZGVyLWNvbG9yOiAkaG92ZXItZ3JheS1jb2xvcjtcbn1cblxuLmN1c3RvbS1kcm9wZG93bi1tZW51LWhlYWRlciB7XG4gIHBhZGRpbmctdG9wOiAxcmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJsYWNrLWNvbG9yO1xuICBwYWRkaW5nLWJvdHRvbTogM3B4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gIEBleHRlbmQgLmRlZmF1bHQtYm9sZDtcbiAgQGV4dGVuZCAuY3VzdG9tLWl0ZW0tc2l6aW5nO1xufVxuXG4uY3VzdG9tLWRyb3Bkb3duLW1lbnUtaXRlbSB7XG4gIGJvcmRlcjogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMjAwcHg7XG4gIG1heC13aWR0aDogMzIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS1jb2xvcjtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYm9yZGVyLXJhZGl1czogMC42MjVyZW07XG4gIHBhZGRpbmc6IDAuNjI1cmVtIDFyZW07XG4gIEBleHRlbmQgLmRlZmF1bHQtcmVndWxhcjtcbiAgQGV4dGVuZCAuY3VzdG9tLWl0ZW0tc2l6aW5nO1xufVxuXG4uY3VzdG9tLWl0ZW0tc2l6aW5nIHtcbiAgbWluLXdpZHRoOiAyMDBweDtcbiAgbWF4LXdpZHRoOiA0MDBweDtcbn1cblxuLmN1c3RvbS1kcm9wZG93bi1tZW51LWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2ZmLXdoaXRlLWNvbG9yO1xufVxuXG4uY3VzdG9tLWRyb3Bkb3duLW1lbnUtaXRlbTpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRob3Zlci1ncmF5LWNvbG9yO1xufVxuXG4uY3VzdG9tLWRyb3Bkb3duLW1lbnUtcmVtb3ZlIHtcbiAgY29sb3I6ICRyZWQtY29sb3I7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIERyb3BfRG93bl9NZW51X0VuZCAqL1xuXG4vKiBEcm9wX0Rvd25fU3RhcnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5jdXN0b20tZHJvcGRvd24ge1xuICBwYWRkaW5nOiAwIDAuNzVyZW0gMCAwLjg3NXJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMi41cmVtO1xuICBib3JkZXItcmFkaXVzOiAwLjYyNXJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGRyb3Bkb3duLWJhc2UtY29sb3I7XG4gIGNvbG9yOiAkZHJvcGRvd24tdGV4dC1jb2xvcjtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTI1cmVtO1xuICBib3JkZXI6IG5vbmU7XG4gIEBleHRlbmQgLmRlZmF1bHQtcmVndWxhcjtcbiAgLy8gSGlkZSB0aGUgZGVmYXVsdCBjaGV2cm9uXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAvLyBBZGQgdGhlIGN1c3RvbSBjaGV2cm9uXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvc3JjL2Fzc2V0cy9pY29ucy9saWdodC9kcm9wLWRvd24uc3ZnKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiBjYWxjKDEwMCUgLSAwLjdyZW0pO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAxLjVyZW07XG59XG5cbi5jdXN0b20tZHJvcGRvd246Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uY3VzdG9tLWRyb3Bkb3duOmVuYWJsZWQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJvcGRvd24taG92ZXItY29sb3I7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRkcm9wZG93bi1ob3Zlci1ib3JkZXItY29sb3I7XG4gIGNvbG9yOiAkZHJvcGRvd24taG92ZXItdGV4dC1jb2xvcjtcbiAgQGV4dGVuZCAuZGVmYXVsdC1yZWd1bGFyO1xufVxuXG4uY3VzdG9tLWRyb3Bkb3duOmRpc2FibGVkLCAuY3VzdG9tLXRleHRmaWVsZDpkaXNhYmxlZCwgLmN1c3RvbS1zd2l0Y2gtaW5wdXQ6ZGlzYWJsZWQsIC5jdXN0b20tc2xpZGVyLmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC41O1xufVxuXG4uY3VzdG9tLWRyb3Bkb3duOmRpc2FibGVkOmhvdmVyLCAuY3VzdG9tLXRleHRmaWVsZDpkaXNhYmxlZDpob3ZlciwgLmN1c3RvbS1zd2l0Y2gtaW5wdXQ6ZGlzYWJsZWQ6aG92ZXIsIC5jdXN0b20tc2xpZGVyLmRpc2FibGVkOmhvdmVyIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLmN1c3RvbS1kcm9wZG93bi1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBsaW5lLWhlaWdodDogMXJlbTtcbiAgY29sb3I6ICRibGFjay1jb2xvcjtcbiAgQGV4dGVuZCAuZGVmYXVsdC1tZWRpdW07XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRHJvcF9Eb3duX0VuZCAqL1xuXG5cbi8qIE5vX1Jlc3VsdHNfU3RhcnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLm5vLXJlc3VsdHMtY29udGFpbmVyIHtcbiAgbWFyZ2luOiA2cmVtIGF1dG8gYXV0byBhdXRvO1xuICB3aWR0aDogNDAlO1xuICBoZWlnaHQ6IDE4cmVtO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLm5vLXJlc3VsdHMtdGl0bGUge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDNyZW07XG4gIGNvbG9yOiAkcHJpbWFyeS10ZXh0LWNvbG9yO1xuICBAZXh0ZW5kIC5kZWZhdWx0LWJvbGQ7XG59XG5cbi5uby1yZXN1bHRzLWJvZHkge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjEyNXJlbTtcbiAgY29sb3I6ICRleHRyYS1kYXJrLWdyYXktY29sb3I7XG4gIEBleHRlbmQgLmRlZmF1bHQtcmVndWxhcjtcbn1cblxuLm5vLXJlc3VsdHMtYnV0dG9uIHtcbiAgbWFyZ2luOiAxLjVyZW0gMCAwIDA7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTm9fUmVzdWx0c19FbmQgKi9cblxuXG4vKiBFZGl0X1NlY3Rpb25fU3RhcnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmN1c3RvbS1lZGl0LXNlY3Rpb24tdGl0bGUge1xuICBmb250LXNpemU6IDFyZW07XG4gIGNvbG9yOiAkcHJpbWFyeS10ZXh0LWNvbG9yO1xuICBAZXh0ZW5kIC5kZWZhdWx0LXNlbWktYm9sZDtcbn1cblxuLmN1c3RvbS1lZGl0LXNlY3Rpb24tZGVzY3JpcHRpb24ge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBjb2xvcjogJGV4dHJhLWRhcmstZ3JheS1jb2xvcjtcbiAgQGV4dGVuZCAuZGVmYXVsdC1yZWd1bGFyO1xufVxuXG4uY3VzdG9tLWVkaXQtc2VjdGlvbi1idXR0b24tY29udGFpbmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5jdXN0b20tZWRpdC1zZWN0aW9uLWJ1dHRvbi1jb250YWluZXIgLmN1c3RvbS1idXR0b24ge1xuICBtYXJnaW46IDAgMC41cmVtIDAgMDtcbn1cblxuLmN1c3RvbS1zZWN0aW9uLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xufVxuXG4uY3VzdG9tLXNlY3Rpb24taGVhZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY3VzdG9tLXNlY3Rpb24tYm9keSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmN1c3RvbS1zZWN0aW9uLWhlYWRlci1idXR0b24tY29udGFpbmVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5jdXN0b20tc2VjdGlvbi1saXN0LXRpdGxlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjVyZW07XG4gIGNvbG9yOiAkcHJpbWFyeS10ZXh0LWNvbG9yO1xuICBAZXh0ZW5kIC5kZWZhdWx0LWJvbGQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRWRpdF9TZWN0aW9uX0VuZCAqL1xuXG5cbi8qIFRvb2x0aXBfU3RhcnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmlubGluZS10b29sdGlwIHtcbiAgaGVpZ2h0OiAwLjc1cmVtO1xuICB3aWR0aDogMC43NXJlbTtcbn1cblxuLmlubGluZS10b29sdGlwOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLmRhdGF0YWJsZS1hY3Rpb24tYnV0dG9uIGltZyB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIG9wYWNpdHk6IDAuNTtcbn1cblxuLmlubGluZS10b29sdGlwIGltZyB7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIG9wYWNpdHk6IDAuNTtcbn1cblxuLmlubGluZS10b29sdGlwIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbjogMCAwLjI1cmVtO1xufVxuXG4uaW5saW5lLXRvb2x0aXA6aG92ZXIgaW1nIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBUb29sdGlwX0VuZCAqL1xuXG5cbi8qIFdhcm5pbmdfU3RhcnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLndhcm5pbmctbWVzc2FnZSB7XG4gIG1hcmdpbjogMC41cmVtIDEuNXJlbTtcbiAgcGFkZGluZzogMC43NXJlbSAxcmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93LWNvbG9yLTgwO1xuICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiAkcHJpbWFyeS10ZXh0LWNvbG9yO1xuICBAZXh0ZW5kIC5kZWZhdWx0LXNlbWktYm9sZDtcbn1cblxuLndhcm5pbmctbWVzc2FnZSAudG9vbHRpcC1jb250YWluZXIge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gV2FybmluZ19FbmQgKi9cblxuXG4vLyBMaW5rc1xuYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICBjb2xvcjogJGtydWdvLWJsYWNrO1xuICBAZXh0ZW5kIC5kZWZhdWx0LXNlbWktYm9sZDtcbn1cblxuLy8gRW5kX0xpbmtzXG4iLCIvLyBGaWxlIGZvciB3aGljaCBhbGwgaW1wb3J0cyBhcmUgcmVzb2x2ZWQgYW5kIGJ1bmRsZWQuIFRoaXMgaXMgdGhlIGVudHJ5LXBvaW50IGZvclxuLy8gdGhlIGBAYW5ndWxhci9tYXRlcmlhbGAgdGhlbWluZyBTYXNzIGJ1bmRsZS4gU2VlIGAvL3NyYy9tYXRlcmlhbDp0aGVtaW5nX2J1bmRsZWAuXG5cbi8vIEltcG9ydCBhbGwgdGhlIHRoZW1pbmcgZnVuY3Rpb25hbGl0eS5cbi8vIFdlIHdhbnQgb3ZlcmxheXMgdG8gYWx3YXlzIGFwcGVhciBvdmVyIHVzZXIgY29udGVudCwgc28gc2V0IGEgYmFzZWxpbmVcbi8vIHZlcnkgaGlnaCB6LWluZGV4IGZvciB0aGUgb3ZlcmxheSBjb250YWluZXIsIHdoaWNoIGlzIHdoZXJlIHdlIGNyZWF0ZSB0aGUgbmV3XG4vLyBzdGFja2luZyBjb250ZXh0IGZvciBhbGwgb3ZlcmxheXMuXG4kY2RrLXotaW5kZXgtb3ZlcmxheS1jb250YWluZXI6IDEwMDAgIWRlZmF1bHQ7XG4kY2RrLXotaW5kZXgtb3ZlcmxheTogMTAwMCAhZGVmYXVsdDtcbiRjZGstei1pbmRleC1vdmVybGF5LWJhY2tkcm9wOiAxMDAwICFkZWZhdWx0O1xuXG4vLyBCYWNrZ3JvdW5kIGNvbG9yIGZvciBhbGwgb2YgdGhlIGJhY2tkcm9wc1xuJGNkay1vdmVybGF5LWRhcmstYmFja2Ryb3AtYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjMyKSAhZGVmYXVsdDtcblxuLy8gRGVmYXVsdCBiYWNrZHJvcCBhbmltYXRpb24gaXMgYmFzZWQgb24gdGhlIE1hdGVyaWFsIERlc2lnbiBzd2lmdC1lYXNlLW91dC5cbiRiYWNrZHJvcC1hbmltYXRpb24tZHVyYXRpb246IDQwMG1zICFkZWZhdWx0O1xuJGJhY2tkcm9wLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpICFkZWZhdWx0O1xuXG5cbkBtaXhpbiBjZGstb3ZlcmxheSgpIHtcbiAgLmNkay1vdmVybGF5LWNvbnRhaW5lciwgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgICAvLyBEaXNhYmxlIGV2ZW50cyBmcm9tIGJlaW5nIGNhcHR1cmVkIG9uIHRoZSBvdmVybGF5IGNvbnRhaW5lci5cbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIC8vIFRoZSBjb250YWluZXIgc2hvdWxkIGJlIHRoZSBzaXplIG9mIHRoZSB2aWV3cG9ydC5cbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBUaGUgb3ZlcmxheS1jb250YWluZXIgaXMgYW4gaW52aXNpYmxlIGVsZW1lbnQgd2hpY2ggY29udGFpbnMgYWxsIGluZGl2aWR1YWwgb3ZlcmxheXMuXG4gIC5jZGstb3ZlcmxheS1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAkY2RrLXotaW5kZXgtb3ZlcmxheS1jb250YWluZXI7XG5cbiAgICAmOmVtcHR5IHtcbiAgICAgIC8vIEhpZGUgdGhlIGVsZW1lbnQgd2hlbiBpdCBkb2Vzbid0IGhhdmUgYW55IGNoaWxkIG5vZGVzLiBUaGlzIGRvZXNuJ3RcbiAgICAgIC8vIGluY2x1ZGUgb3ZlcmxheXMgdGhhdCBoYXZlIGJlZW4gZGV0YWNoZWQsIHJhdGhlciB0aGFuIGRpc3Bvc2VkLlxuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBXZSB1c2UgYW4gZXh0cmEgd3JhcHBlciBlbGVtZW50IGluIG9yZGVyIHRvIHVzZSBtYWtlIHRoZSBvdmVybGF5IGl0c2VsZiBhIGZsZXggaXRlbS5cbiAgLy8gVGhpcyBtYWtlcyBjZW50ZXJpbmcgdGhlIG92ZXJsYXkgZWFzeSB3aXRob3V0IHJ1bm5pbmcgaW50byB0aGUgc3VicGl4ZWwgcmVuZGVyaW5nXG4gIC8vIHByb2JsZW1zIHRpZWQgdG8gdXNpbmcgYHRyYW5zZm9ybWAgYW5kIHdpdGhvdXQgaW50ZXJmZXJpbmcgd2l0aCB0aGUgb3RoZXIgcG9zaXRpb25cbiAgLy8gc3RyYXRlZ2llcy5cbiAgLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAkY2RrLXotaW5kZXgtb3ZlcmxheTtcbiAgfVxuXG4gIC8vIEEgc2luZ2xlIG92ZXJsYXkgcGFuZS5cbiAgLmNkay1vdmVybGF5LXBhbmUge1xuICAgIC8vIE5vdGU6IGl0J3MgaW1wb3J0YW50IGZvciB0aGlzIG9uZSB0byBzdGFydCBvZmYgYGFic29sdXRlYCxcbiAgICAvLyBpbiBvcmRlciBmb3IgdXMgdG8gYmUgYWJsZSB0byBtZWFzdXJlIGl0IGNvcnJlY3RseS5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB6LWluZGV4OiAkY2RrLXotaW5kZXgtb3ZlcmxheTtcblxuICAgIC8vIEZvciBjb25uZWN0ZWQtcG9zaXRpb24gb3ZlcmxheXMsIHdlIHNldCBgZGlzcGxheTogZmxleGAgaW5cbiAgICAvLyBvcmRlciB0byBmb3JjZSBgbWF4LXdpZHRoYCBhbmQgYG1heC1oZWlnaHRgIHRvIHRha2UgZWZmZWN0LlxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAuY2RrLW92ZXJsYXktYmFja2Ryb3Age1xuICAgIC8vIFRPRE8oamVsYm91cm4pOiByZXVzZSBzaWRlbmF2IGZ1bGxzY3JlZW4gbWl4aW4uXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcblxuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5LWJhY2tkcm9wO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAkYmFja2Ryb3AtYW5pbWF0aW9uLWR1cmF0aW9uICRiYWNrZHJvcC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uO1xuICAgIG9wYWNpdHk6IDA7XG5cbiAgICAmLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmcge1xuICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgLy8gSW4gaGlnaCBjb250cmFzdCBtb2RlIHRoZSByZ2JhIGJhY2tncm91bmQgd2lsbCBiZWNvbWUgc29saWQgc28gd2UgbmVlZCB0byBmYWxsIGJhY2tcbiAgICAgIC8vIHRvIG1ha2luZyBpdCBvcGFxdWUgdXNpbmcgYG9wYWNpdHlgLiBOb3RlIHRoYXQgd2UgY2FuJ3QgdXNlIHRoZSBgY2RrLWhpZ2gtY29udHJhc3RgXG4gICAgICAvLyBtaXhpbiwgYmVjYXVzZSB3ZSBjYW4ndCBub3JtYWxpemUgdGhlIGltcG9ydCBwYXRoIHRvIHRoZSBfYTExeS5zY3NzIGJvdGggZm9yIHRoZVxuICAgICAgLy8gc291cmNlIGFuZCB3aGVuIHRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZC4gU2VlICMxMDkwOC5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcCB7XG4gICAgYmFja2dyb3VuZDogJGNkay1vdmVybGF5LWRhcmstYmFja2Ryb3AtYmFja2dyb3VuZDtcbiAgfVxuXG4gIC5jZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCB7XG4gICAgLy8gTm90ZTogYXMgb2YgRmlyZWZveCA1NywgaGF2aW5nIHRoZSBiYWNrZHJvcCBiZSBgYmFja2dyb3VuZDogbm9uZWAgd2lsbCBwcmV2ZW50IGl0IGZyb21cbiAgICAvLyBjYXB0dXJpbmcgdGhlIHVzZXIncyBtb3VzZSBzY3JvbGwgZXZlbnRzLiBTaW5jZSB3ZSBhbHNvIGNhbid0IHVzZSBzb21ldGhpbmcgbGlrZVxuICAgIC8vIGByZ2JhKDAsIDAsIDAsIDApYCwgd2Ugd29yayBhcm91bmQgdGhlIGluY29uc2lzdGVuY3kgYnkgbm90IHNldHRpbmcgdGhlIGJhY2tncm91bmQgYXRcbiAgICAvLyBhbGwgYW5kIHVzaW5nIGBvcGFjaXR5YCB0byBtYWtlIHRoZSBlbGVtZW50IHRyYW5zcGFyZW50LlxuICAgICYsICYuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZyB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIE92ZXJsYXkgcGFyZW50IGVsZW1lbnQgdXNlZCB3aXRoIHRoZSBjb25uZWN0ZWQgcG9zaXRpb24gc3RyYXRlZ3kuIFVzZWQgdG8gY29uc3RyYWluIHRoZVxuICAvLyBvdmVybGF5IGVsZW1lbnQncyBzaXplIHRvIGZpdCB3aXRoaW4gdGhlIHZpZXdwb3J0LlxuICAuY2RrLW92ZXJsYXktY29ubmVjdGVkLXBvc2l0aW9uLWJvdW5kaW5nLWJveCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6ICRjZGstei1pbmRleC1vdmVybGF5O1xuXG4gICAgLy8gV2UgdXNlIGBkaXNwbGF5OiBmbGV4YCBvbiB0aGlzIGVsZW1lbnQgZXhjbHVzaXZlbHkgZm9yIGNlbnRlcmluZyBjb25uZWN0ZWQgb3ZlcmxheXMuXG4gICAgLy8gV2hlbiAqbm90KiBjZW50ZXJpbmcsIGEgdG9wL2xlZnQvYm90dG9tL3JpZ2h0IHdpbGwgYmUgc2V0IHdoaWNoIG92ZXJyaWRlcyB0aGUgbm9ybWFsXG4gICAgLy8gZmxleCBsYXlvdXQuXG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIC8vIFdlIHVzZSB0aGUgYGNvbHVtbmAgZGlyZWN0aW9uIGhlcmUgdG8gYXZvaWQgc29tZSBmbGV4Ym94IGlzc3VlcyBpbiBFZGdlXG4gICAgLy8gd2hlbiB1c2luZyB0aGUgXCJncm93IGFmdGVyIG9wZW5cIiBvcHRpb25zLlxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAvLyBBZGQgc29tZSBkaW1lbnNpb25zIHNvIHRoZSBlbGVtZW50IGhhcyBhbiBgaW5uZXJUZXh0YCB3aGljaCBzb21lIHBlb3BsZSBkZXBlbmQgb24gaW4gdGVzdHMuXG4gICAgbWluLXdpZHRoOiAxcHg7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICB9XG5cbiAgLy8gVXNlZCB3aGVuIGRpc2FibGluZyBnbG9iYWwgc2Nyb2xsaW5nLlxuICAuY2RrLWdsb2JhbC1zY3JvbGxibG9jayB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuXG4gICAgLy8gTmVjZXNzYXJ5IGZvciB0aGUgY29udGVudCBub3QgdG8gbG9zZSBpdHMgd2lkdGguIE5vdGUgdGhhdCB3ZSdyZSB1c2luZyAxMDAlLCBpbnN0ZWFkIG9mXG4gICAgLy8gMTAwdncsIGJlY2F1c2UgMTAwdncgaW5jbHVkZXMgdGhlIHdpZHRoIHBsdXMgdGhlIHNjcm9sbGJhciwgd2hlcmVhcyAxMDAlIGlzIHRoZSB3aWR0aFxuICAgIC8vIHRoYXQgdGhlIGVsZW1lbnQgaGFkIGJlZm9yZSB3ZSBtYWRlIGl0IGBmaXhlZGAuXG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAvLyBOb3RlOiB0aGlzIHdpbGwgYWx3YXlzIGFkZCBhIHNjcm9sbGJhciB0byB3aGF0ZXZlciBlbGVtZW50IGl0IGlzIG9uLCB3aGljaCBjYW5cbiAgICAvLyBwb3RlbnRpYWxseSByZXN1bHQgaW4gZG91YmxlIHNjcm9sbGJhcnMuIEl0IHNob3VsZG4ndCBiZSBhbiBpc3N1ZSwgYmVjYXVzZSB3ZSB3b24ndFxuICAgIC8vIGJsb2NrIHNjcm9sbGluZyBvbiBhIHBhZ2UgdGhhdCBkb2Vzbid0IGhhdmUgYSBzY3JvbGxiYXIgaW4gdGhlIGZpcnN0IHBsYWNlLlxuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgfVxufVxuXG5AbWl4aW4gY2RrLWExMXkge1xuICAuY2RrLXZpc3VhbGx5LWhpZGRlbiB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcblxuICAgIC8vIEF2b2lkIGJyb3dzZXJzIHJlbmRlcmluZyB0aGUgZm9jdXMgcmluZyBpbiBzb21lIGNhc2VzLlxuICAgIG91dGxpbmU6IDA7XG5cbiAgICAvLyBBdm9pZCBzb21lIGNhc2VzIHdoZXJlIHRoZSBicm93c2VyIHdpbGwgc3RpbGwgcmVuZGVyIHRoZSBuYXRpdmUgY29udHJvbHMgKHNlZSAjOTA0OSkuXG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgfVxufVxuXG4vLy8gRW1pdHMgdGhlIG1peGluJ3MgY29udGVudCBuZXN0ZWQgdW5kZXIgYCRzZWxlY3Rvci1jb250ZXh0YCBpZiBgJHNlbGVjdG9yLWNvbnRleHRgXG4vLy8gaXMgbm9uLWVtcHR5LlxuLy8vIEBwYXJhbSBzZWxlY3Rvci1jb250ZXh0IFRoZSBzZWxlY3RvciB1bmRlciB3aGljaCB0byBuZXN0IHRoZSBtaXhpbidzIGNvbnRlbnQuXG5AbWl4aW4gX2Nkay1vcHRpb25hbGx5LW5lc3QtY29udGVudCgkc2VsZWN0b3ItY29udGV4dCkge1xuICBAaWYgKCRzZWxlY3Rvci1jb250ZXh0ID09ICcnKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbiAgQGVsc2Uge1xuICAgICN7JHNlbGVjdG9yLWNvbnRleHR9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQXBwbGllcyBzdHlsZXMgZm9yIHVzZXJzIGluIGhpZ2ggY29udHJhc3QgbW9kZS4gTm90ZSB0aGF0IHRoaXMgb25seSBhcHBsaWVzXG4vLy8gdG8gTWljcm9zb2Z0IGJyb3dzZXJzLiBDaHJvbWUgY2FuIGJlIGluY2x1ZGVkIGJ5IGNoZWNraW5nIGZvciB0aGUgYGh0bWxbaGNdYFxuLy8vIGF0dHJpYnV0ZSwgaG93ZXZlciBDaHJvbWUgaGFuZGxlcyBoaWdoIGNvbnRyYXN0IGRpZmZlcmVudGx5LlxuLy8vXG4vLy8gQHBhcmFtIHRhcmdldCBXaGljaCBraW5kIG9mIGhpZ2ggY29udHJhc3Qgc2V0dGluZyB0byB0YXJnZXQuIERlZmF1bHRzIHRvIGBhY3RpdmVgLCBjYW4gYmVcbi8vLyAgICBgd2hpdGUtb24tYmxhY2tgIG9yIGBibGFjay1vbi13aGl0ZWAuXG4vLy8gQHBhcmFtIGVuY2Fwc3VsYXRpb24gV2hldGhlciB0byBlbWl0IHN0eWxlcyBmb3IgdmlldyBlbmNhcHN1bGF0aW9uLiBWYWx1ZXMgYXJlOlxuLy8vICAgICAqIGBvbmAgLSB3b3JrcyBmb3IgYEVtdWxhdGVkYCwgYE5hdGl2ZWAsIGFuZCBgU2hhZG93RG9tYFxuLy8vICAgICAqIGBvZmZgIC0gd29ya3MgZm9yIGBOb25lYFxuLy8vICAgICAqIGBhbnlgIC0gd29ya3MgZm9yIGFsbCBlbmNhcHN1bGF0aW9uIG1vZGVzIGJ5IGVtaXR0aW5nIHRoZSBDU1MgdHdpY2UgKGRlZmF1bHQpLlxuQG1peGluIGNkay1oaWdoLWNvbnRyYXN0KCR0YXJnZXQ6IGFjdGl2ZSwgJGVuY2Fwc3VsYXRpb246ICdhbnknKSB7XG4gIEBpZiAoJHRhcmdldCAhPSAnYWN0aXZlJyBhbmQgJHRhcmdldCAhPSAnYmxhY2stb24td2hpdGUnIGFuZCAkdGFyZ2V0ICE9ICd3aGl0ZS1vbi1ibGFjaycpIHtcbiAgICBAZXJyb3IgJ1Vua25vd24gY2RrLWhpZ2gtY29udHJhc3QgdmFsdWUgXCIjeyR0YXJnZXR9XCIgcHJvdmlkZWQuICcgK1xuICAgICAgICAgICAnQWxsb3dlZCB2YWx1ZXMgYXJlIFwiYWN0aXZlXCIsIFwiYmxhY2stb24td2hpdGVcIiwgYW5kIFwid2hpdGUtb24tYmxhY2tcIic7XG4gIH1cblxuICBAaWYgKCRlbmNhcHN1bGF0aW9uICE9ICdvbicgYW5kICRlbmNhcHN1bGF0aW9uICE9ICdvZmYnIGFuZCAkZW5jYXBzdWxhdGlvbiAhPSAnYW55Jykge1xuICAgIEBlcnJvciAnVW5rbm93biBjZGstaGlnaC1jb250cmFzdCBlbmNhcHN1bGF0aW9uIFwiI3skZW5jYXBzdWxhdGlvbn1cIiBwcm92aWRlZC4gJyArXG4gICAgICAgICAgICdBbGxvd2VkIHZhbHVlcyBhcmUgXCJvblwiLCBcIm9mZlwiLCBhbmQgXCJhbnlcIic7XG4gIH1cblxuICAvLyBJZiB0aGUgc2VsZWN0b3IgY29udGV4dCBoYXMgbXVsdGlwbGUgcGFydHMsIHN1Y2ggYXMgYC5zZWN0aW9uLCAucmVnaW9uYCwganVzdCBkb2luZ1xuICAvLyBgLmNkay1oaWdoLWNvbnRyYXN0LXh4eCAjeyZ9YCB3aWxsIG9ubHkgYXBwbHkgdGhlIHBhcmVudCBzZWxlY3RvciB0byB0aGUgZmlyc3QgcGFydCBvZiB0aGVcbiAgLy8gY29udGV4dC4gV2UgYWRkcmVzcyB0aGlzIGJ5IG5lc3RpbmcgdGhlIHNlbGVjdG9yIGNvbnRleHQgdW5kZXIgLmNkay1oaWdoLWNvbnRyYXN0LlxuICBAYXQtcm9vdCB7XG4gICAgJHNlbGVjdG9yLWNvbnRleHQ6ICN7Jn07XG5cbiAgICBAaWYgKCRlbmNhcHN1bGF0aW9uICE9ICdvbicpIHtcbiAgICAgIC5jZGstaGlnaC1jb250cmFzdC0jeyR0YXJnZXR9IHtcbiAgICAgICAgQGluY2x1ZGUgX2Nkay1vcHRpb25hbGx5LW5lc3QtY29udGVudCgkc2VsZWN0b3ItY29udGV4dCkge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkZW5jYXBzdWxhdGlvbiAhPSAnb2ZmJykge1xuICAgICAgLmNkay1oaWdoLWNvbnRyYXN0LSN7JHRhcmdldH0gOmhvc3Qge1xuICAgICAgICBAaW5jbHVkZSBfY2RrLW9wdGlvbmFsbHktbmVzdC1jb250ZW50KCRzZWxlY3Rvci1jb250ZXh0KSB7XG4gICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gQ29yZSBzdHlsZXMgdGhhdCBlbmFibGUgbW9uaXRvcmluZyBhdXRvZmlsbCBzdGF0ZSBvZiB0ZXh0IGZpZWxkcy5cbkBtaXhpbiBjZGstdGV4dC1maWVsZCB7XG4gIC8vIEtleWZyYW1lcyB0aGF0IGFwcGx5IG5vIHN0eWxlcywgYnV0IGFsbG93IHVzIHRvIG1vbml0b3Igd2hlbiBhbiB0ZXh0IGZpZWxkIGJlY29tZXMgYXV0b2ZpbGxlZFxuICAvLyBieSB3YXRjaGluZyBmb3IgdGhlIGFuaW1hdGlvbiBldmVudHMgdGhhdCBhcmUgZmlyZWQgd2hlbiB0aGV5IHN0YXJ0LiBOb3RlOiB0aGUgLyohKi8gY29tbWVudCBpc1xuICAvLyBuZWVkZWQgdG8gcHJldmVudCBMaWJTYXNzIGZyb20gc3RyaXBwaW5nIHRoZSBrZXlmcmFtZXMgb3V0LlxuICAvLyBCYXNlZCBvbjogaHR0cHM6Ly9tZWRpdW0uY29tL0BicnVubi9kZXRlY3RpbmctYXV0b2ZpbGxlZC1maWVsZHMtaW4tamF2YXNjcmlwdC1hZWQ1OThkMjVkYTdcbiAgQGtleWZyYW1lcyBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCB7LyohKi99XG4gIEBrZXlmcmFtZXMgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIHsvKiEqL31cblxuICAuY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtbW9uaXRvcmVkOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIC8vIFNpbmNlIENocm9tZSA4MCB3ZSBuZWVkIGEgMW1zIGRlbGF5LCBvciB0aGUgYW5pbWF0aW9uc3RhcnQgZXZlbnQgd29uJ3QgZmlyZS5cbiAgICBhbmltYXRpb246IGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLXN0YXJ0IDBzIDFtcztcbiAgfVxuXG4gIC5jZGstdGV4dC1maWVsZC1hdXRvZmlsbC1tb25pdG9yZWQ6bm90KDotd2Via2l0LWF1dG9maWxsKSB7XG4gICAgLy8gU2luY2UgQ2hyb21lIDgwIHdlIG5lZWQgYSAxbXMgZGVsYXksIG9yIHRoZSBhbmltYXRpb25zdGFydCBldmVudCB3b24ndCBmaXJlLlxuICAgIGFuaW1hdGlvbjogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtZW5kIDBzIDFtcztcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgcmVzaXplIGhhbmRsZSBvbiBhdXRvc2l6aW5nIHRleHRhcmVhcywgYmVjYXVzZSB3aGF0ZXZlciBoZWlnaHRcbiAgLy8gdGhlIHVzZXIgcmVzaXplZCB0byB3aWxsIGJlIG92ZXJ3cml0dGVuIG9uY2UgdGhleSBzdGFydCB0eXBpbmcgYWdhaW4uXG4gIHRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZSB7XG4gICAgcmVzaXplOiBub25lO1xuICB9XG5cbiAgLy8gVGhpcyBjbGFzcyBpcyB0ZW1wb3JhcmlseSBhcHBsaWVkIHRvIHRoZSB0ZXh0YXJlYSB3aGVuIGl0IGlzIGJlaW5nIG1lYXN1cmVkLiBJdCBpcyBpbW1lZGlhdGVseVxuICAvLyByZW1vdmVkIHdoZW4gbWVhc3VyaW5nIGlzIGNvbXBsZXRlLiBXZSB1c2UgYCFpbXBvcnRhbnRgIHJ1bGVzIGhlcmUgdG8gbWFrZSBzdXJlIHVzZXItc3BlY2lmaWVkXG4gIC8vIHJ1bGVzIGRvIG5vdCBpbnRlcmZlcmUgd2l0aCB0aGUgbWVhc3VyZW1lbnQuXG4gIHRleHRhcmVhLmNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmcge1xuICAgIEBpbmNsdWRlIF9jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWJhc2U7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICB9XG5cbiAgLy8gU2ltaWxhciB0byB0aGUgYGNkay10ZXh0YXJlYS1hdXRvc2l6ZS1tZWFzdXJpbmdgIGNsYXNzLCBidXQgb25seSBhcHBsaWVkIG9uIEZpcmVmb3guIFdlIG5lZWRcbiAgLy8gdG8gdXNlIHRoaXMgY2xhc3MsIGJlY2F1c2UgRmlyZWZveCBoYXMgYSBidWcgd2hlcmUgY2hhbmdpbmcgdGhlIGBvdmVyZmxvd2AgYnJlYWtzIHRoZSB1c2VyJ3NcbiAgLy8gYWJpbGl0eSB0byB1bmRvL3JlZG8gd2hhdCB0aGV5IHdlcmUgdHlwaW5nIChzZWUgIzE2NjI5KS4gVGhpcyBjbGFzcyBpcyBvbmx5IHNjb3BlZCB0byBGaXJlZm94LFxuICAvLyBiZWNhdXNlIHRoZSBtZWFzdXJlbWVudHMgdGhlcmUgZG9uJ3Qgc2VlbSB0byBiZSBhZmZlY3RlZCBieSB0aGUgYGhlaWdodDogMGAsIHdoZXJlYXMgb24gb3RoZXJcbiAgLy8gYnJvd3NlcnMgdGhleSBhcmUsIGUuZy4gQ2hyb21lIGRldGVjdHMgbG9uZ2VyIHRleHQgYW5kIElFIGRvZXMndCByZXNpemUgYmFjayB0byBub3JtYWwuXG4gIC8vIElkZW50aWNhbCBpc3N1ZSByZXBvcnQ6IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTQ0ODc4NFxuICB0ZXh0YXJlYS5jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWZpcmVmb3gge1xuICAgIEBpbmNsdWRlIF9jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWJhc2U7XG4gICAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIF9jZGstdGV4dGFyZWEtYXV0b3NpemUtbWVhc3VyaW5nLWJhc2Uge1xuICAvLyBIYXZpbmcgMnB4IHRvcCBhbmQgYm90dG9tIHBhZGRpbmcgc2VlbXMgdG8gZml4IGEgYnVnIHdoZXJlIENocm9tZSBnZXRzIGFuIGluY29ycmVjdFxuICAvLyBtZWFzdXJlbWVudC4gV2UganVzdCBoYXZlIHRvIGFjY291bnQgZm9yIGl0IGxhdGVyIGFuZCBzdWJ0cmFjdCBpdCBvZmYgdGhlIGZpbmFsIHJlc3VsdC5cbiAgcGFkZGluZzogMnB4IDAgIWltcG9ydGFudDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3ggIWltcG9ydGFudDtcbn1cblxuLy8gVXNlZCB0byBnZW5lcmF0ZSBVSURzIGZvciBrZXlmcmFtZXMgdXNlZCB0byBjaGFuZ2UgdGhlIHRleHQgZmllbGQgYXV0b2ZpbGwgc3R5bGVzLlxuJGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50OiAwO1xuXG4vLyBNaXhpbiB1c2VkIHRvIGFwcGx5IGN1c3RvbSBiYWNrZ3JvdW5kIGFuZCBmb3JlZ3JvdW5kIGNvbG9ycyB0byBhbiBhdXRvZmlsbGVkIHRleHQgZmllbGQuXG4vLyBCYXNlZCBvbjogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjc4MTU0OS9cbi8vIHJlbW92aW5nLWlucHV0LWJhY2tncm91bmQtY29sb3VyLWZvci1jaHJvbWUtYXV0b2NvbXBsZXRlI2Fuc3dlci0zNzQzMjI2MFxuQG1peGluIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yKCRiYWNrZ3JvdW5kLCAkZm9yZWdyb3VuZDonJykge1xuICBAa2V5ZnJhbWVzIGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLSN7JGNkay10ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yLWZyYW1lLWNvdW50fSB7XG4gICAgdG8ge1xuICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICBAaWYgJGZvcmVncm91bmQgIT0gJycgeyBjb2xvcjogJGZvcmVncm91bmQ7IH1cbiAgICB9XG4gIH1cblxuICAmOi13ZWJraXQtYXV0b2ZpbGwge1xuICAgIGFuaW1hdGlvbjogY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItI3skY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3ItZnJhbWUtY291bnR9IGJvdGg7XG4gIH1cblxuICAmLmNkay10ZXh0LWZpZWxkLWF1dG9maWxsLW1vbml0b3JlZDotd2Via2l0LWF1dG9maWxsIHtcbiAgICAvLyBTaW5jZSBDaHJvbWUgODAgd2UgbmVlZCBhIDFtcyBkZWxheSBmb3IgY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtc3RhcnQsIG9yIHRoZSBhbmltYXRpb25zdGFydFxuICAgIC8vIGV2ZW50IHdvbid0IGZpcmUuXG4gICAgYW5pbWF0aW9uOiBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1zdGFydCAwcyAxbXMsXG4gICAgICAgICAgICAgICBjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci0jeyRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudH0gYm90aDtcbiAgfVxuXG4gICRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudDpcbiAgICAgICRjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvci1mcmFtZS1jb3VudCArIDEgIWdsb2JhbDtcbn1cblxuXG4vLyBDb3JlIHN0eWxlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIGFwcGx5IG1hdGVyaWFsIGRlc2lnbiB0cmVhdG1lbnRzIHRvIGFueSBlbGVtZW50LlxuLy8gTWVkaWEgcXVlcmllc1xuLy8gVE9ETyhqb3NlcGhwZXJyb3R0KTogQ2hhbmdlICRtYXQteHNtYWxsIGFuZCAkbWF0LXNtYWxsIHVzYWdlcyB0byByZWx5IG9uIEJyZWFrcG9pbnRPYnNlcnZlcixcbiRtYXQteHNtYWxsOiAnbWF4LXdpZHRoOiA1OTlweCc7XG4kbWF0LXNtYWxsOiAnbWF4LXdpZHRoOiA5NTlweCc7XG5cbi8vIFRPRE86IFJldmlzaXQgYWxsIHotaW5kaWNlcyBiZWZvcmUgYmV0YVxuLy8gei1pbmRleCBtYXN0ZXIgbGlzdFxuXG4kei1pbmRleC1mYWI6IDIwICFkZWZhdWx0O1xuJHotaW5kZXgtZHJhd2VyOiAxMDAgIWRlZmF1bHQ7XG5cbi8vIEdsb2JhbCBjb25zdGFudHNcbiRwaTogMy4xNDE1OTI2NTtcblxuLy8gUGFkZGluZyBiZXR3ZWVuIGlucHV0IHRvZ2dsZXMgYW5kIHRoZWlyIGxhYmVsc1xuJG1hdC10b2dnbGUtcGFkZGluZzogOHB4ICFkZWZhdWx0O1xuLy8gV2lkdGggYW5kIGhlaWdodCBvZiBpbnB1dCB0b2dnbGVzXG4kbWF0LXRvZ2dsZS1zaXplOiAyMHB4ICFkZWZhdWx0O1xuXG4vLyBFYXNpbmcgQ3VydmVzXG4vLyBUT0RPKGplbGJvdXJuKTogYWxsIG9mIHRoZXNlIG5lZWQgdG8gYmUgcmV2aXNpdGVkXG5cbi8vIFRoZSBkZWZhdWx0IGFuaW1hdGlvbiBjdXJ2ZXMgdXNlZCBieSBtYXRlcmlhbCBkZXNpZ24uXG4kbWF0LWxpbmVhci1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLCAwLCAwLjIsIDAuMSkgIWRlZmF1bHQ7XG4kbWF0LWZhc3Qtb3V0LXNsb3ctaW4tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFkZWZhdWx0O1xuJG1hdC1mYXN0LW91dC1saW5lYXItaW4tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKSAhZGVmYXVsdDtcblxuJGVhc2UtaW4tb3V0LWN1cnZlLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSkgIWRlZmF1bHQ7XG5cbiRzd2lmdC1lYXNlLW91dC1kdXJhdGlvbjogNDAwbXMgIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1vdXQtdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKSAhZGVmYXVsdDtcbiRzd2lmdC1lYXNlLW91dDogYWxsICRzd2lmdC1lYXNlLW91dC1kdXJhdGlvbiAkc3dpZnQtZWFzZS1vdXQtdGltaW5nLWZ1bmN0aW9uICFkZWZhdWx0O1xuXG4kc3dpZnQtZWFzZS1pbi1kdXJhdGlvbjogMzAwbXMgIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1pbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1LCAwLCAwLjU1LCAwLjIpICFkZWZhdWx0O1xuJHN3aWZ0LWVhc2UtaW46IGFsbCAkc3dpZnQtZWFzZS1pbi1kdXJhdGlvbiAkc3dpZnQtZWFzZS1pbi10aW1pbmctZnVuY3Rpb24gIWRlZmF1bHQ7XG5cbiRzd2lmdC1lYXNlLWluLW91dC1kdXJhdGlvbjogNTAwbXMgIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1pbi1vdXQtdGltaW5nLWZ1bmN0aW9uOiAkZWFzZS1pbi1vdXQtY3VydmUtZnVuY3Rpb24gIWRlZmF1bHQ7XG4kc3dpZnQtZWFzZS1pbi1vdXQ6IGFsbCAkc3dpZnQtZWFzZS1pbi1vdXQtZHVyYXRpb24gJHN3aWZ0LWVhc2UtaW4tb3V0LXRpbWluZy1mdW5jdGlvbiAhZGVmYXVsdDtcblxuJHN3aWZ0LWxpbmVhci1kdXJhdGlvbjogODBtcyAhZGVmYXVsdDtcbiRzd2lmdC1saW5lYXItdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXIgIWRlZmF1bHQ7XG4kc3dpZnQtbGluZWFyOiBhbGwgJHN3aWZ0LWxpbmVhci1kdXJhdGlvbiAkc3dpZnQtbGluZWFyLXRpbWluZy1mdW5jdGlvbiAhZGVmYXVsdDtcblxuXG5cbi8vIEEgY29sbGVjdGlvbiBvZiBtaXhpbnMgYW5kIENTUyBjbGFzc2VzIHRoYXQgY2FuIGJlIHVzZWQgdG8gYXBwbHkgZWxldmF0aW9uIHRvIGEgbWF0ZXJpYWxcbi8vIGVsZW1lbnQuXG4vLyBTZWU6IGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2Vudmlyb25tZW50L2VsZXZhdGlvbi5odG1sXG4vLyBFeGFtcGxlczpcbi8vXG4vL1xuLy8gLm1hdC1mb28ge1xuLy8gICBAaW5jbHVkZSAkbWF0LWVsZXZhdGlvbigyKTtcbi8vXG4vLyAgICY6YWN0aXZlIHtcbi8vICAgICBAaW5jbHVkZSAkbWF0LWVsZXZhdGlvbig4KTtcbi8vICAgfVxuLy8gfVxuLy9cbi8vIDxkaXYgaWQ9XCJleHRlcm5hbC1jYXJkXCIgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXoyXCI+PHA+U29tZSBjb250ZW50PC9wPjwvZGl2PlxuLy9cbi8vIEZvciBhbiBleHBsYW5hdGlvbiBvZiB0aGUgZGVzaWduIGJlaGluZCBob3cgZWxldmF0aW9uIGlzIGltcGxlbWVudGVkLCBzZWUgdGhlIGRlc2lnbiBkb2MgYXRcbi8vIGh0dHBzOi8vZ29vLmdsL0txMGs5Wi5cblxuLy8gQ29sb3JzIGZvciB1bWJyYSwgcGVudW1icmEsIGFuZCBhbWJpZW50IHNoYWRvd3MuIEFzIGRlc2NyaWJlZCBpbiB0aGUgZGVzaWduIGRvYywgZWFjaCBlbGV2YXRpb25cbi8vIGxldmVsIGlzIGNyZWF0ZWQgdXNpbmcgYSBzZXQgb2YgMyBzaGFkb3cgdmFsdWVzLCBvbmUgZm9yIHVtYnJhICh0aGUgc2hhZG93IHJlcHJlc2VudGluZyB0aGVcbi8vIHNwYWNlIGNvbXBsZXRlbHkgb2JzY3VyZWQgYnkgYW4gb2JqZWN0IHJlbGF0aXZlIHRvIGl0cyBsaWdodCBzb3VyY2UpLCBvbmUgZm9yIHBlbnVtYnJhICh0aGVcbi8vIHNwYWNlIHBhcnRpYWxseSBvYnNjdXJlZCBieSBhbiBvYmplY3QpLCBhbmQgb25lIGZvciBhbWJpZW50ICh0aGUgc3BhY2Ugd2hpY2ggY29udGFpbnMgdGhlIG9iamVjdFxuLy8gaXRzZWxmKS4gRm9yIGEgZnVydGhlciBleHBsYW5hdGlvbiBvZiB0aGVzZSB0ZXJtcyBhbmQgdGhlaXIgbWVhbmluZ3MsIHNlZVxuLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVW1icmEsX3BlbnVtYnJhX2FuZF9hbnR1bWJyYS5cblxuLy8gTWFwcyBmb3IgdGhlIGRpZmZlcmVudCBzaGFkb3cgc2V0cyBhbmQgdGhlaXIgdmFsdWVzIHdpdGhpbiBlYWNoIHotc3BhY2UuIFRoZXNlIHZhbHVlcyB3ZXJlXG4vLyBjcmVhdGVkIGJ5IHRha2luZyBhIGZldyByZWZlcmVuY2Ugc2hhZG93IHNldHMgY3JlYXRlZCBieSBHb29nbGUncyBEZXNpZ25lcnMgYW5kIGludGVycG9sYXRpbmdcbi8vIGFsbCBvZiB0aGUgdmFsdWVzIGJldHdlZW4gdGhlbS5cblxuQGZ1bmN0aW9uIF9nZXQtdW1icmEtbWFwKCRjb2xvciwgJG9wYWNpdHkpIHtcbiAgJHNoYWRvdy1jb2xvcjogaWYodHlwZS1vZigkY29sb3IpID09IGNvbG9yLCByZ2JhKCRjb2xvciwgJG9wYWNpdHkgKiAwLjIpLCAkY29sb3IpO1xuXG4gIEByZXR1cm4gKFxuICAgIDA6ICcwcHggMHB4IDBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTogJzBweCAycHggMXB4IC0xcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjogJzBweCAzcHggMXB4IC0ycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMzogJzBweCAzcHggM3B4IC0ycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNDogJzBweCAycHggNHB4IC0xcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNTogJzBweCAzcHggNXB4IC0xcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNjogJzBweCAzcHggNXB4IC0xcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNzogJzBweCA0cHggNXB4IC0ycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgODogJzBweCA1cHggNXB4IC0zcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgOTogJzBweCA1cHggNnB4IC0zcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTA6ICcwcHggNnB4IDZweCAtM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDExOiAnMHB4IDZweCA3cHggLTRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMjogJzBweCA3cHggOHB4IC00cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTM6ICcwcHggN3B4IDhweCAtNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE0OiAnMHB4IDdweCA5cHggLTRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNTogJzBweCA4cHggOXB4IC01cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTY6ICcwcHggOHB4IDEwcHggLTVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNzogJzBweCA4cHggMTFweCAtNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE4OiAnMHB4IDlweCAxMXB4IC01cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTk6ICcwcHggOXB4IDEycHggLTZweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMDogJzBweCAxMHB4IDEzcHggLTZweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMTogJzBweCAxMHB4IDEzcHggLTZweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMjogJzBweCAxMHB4IDE0cHggLTZweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMzogJzBweCAxMXB4IDE0cHggLTdweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyNDogJzBweCAxMXB4IDE1cHggLTdweCAjeyRzaGFkb3ctY29sb3J9J1xuICApO1xufVxuXG5AZnVuY3Rpb24gX2dldC1wZW51bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSkge1xuICAkc2hhZG93LWNvbG9yOiBpZih0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IsIHJnYmEoJGNvbG9yLCAkb3BhY2l0eSAqIDAuMTQpLCAkY29sb3IpO1xuXG4gIEByZXR1cm4gKFxuICAgIDA6ICcwcHggMHB4IDBweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTogJzBweCAxcHggMXB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyOiAnMHB4IDJweCAycHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDM6ICcwcHggM3B4IDRweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgNDogJzBweCA0cHggNXB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICA1OiAnMHB4IDVweCA4cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDY6ICcwcHggNnB4IDEwcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDc6ICcwcHggN3B4IDEwcHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDg6ICcwcHggOHB4IDEwcHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDk6ICcwcHggOXB4IDEycHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEwOiAnMHB4IDEwcHggMTRweCAxcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTE6ICcwcHggMTFweCAxNXB4IDFweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMjogJzBweCAxMnB4IDE3cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEzOiAnMHB4IDEzcHggMTlweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTQ6ICcwcHggMTRweCAyMXB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNTogJzBweCAxNXB4IDIycHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE2OiAnMHB4IDE2cHggMjRweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTc6ICcwcHggMTdweCAyNnB4IDJweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxODogJzBweCAxOHB4IDI4cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE5OiAnMHB4IDE5cHggMjlweCAycHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjA6ICcwcHggMjBweCAzMXB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMTogJzBweCAyMXB4IDMzcHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIyOiAnMHB4IDIycHggMzVweCAzcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjM6ICcwcHggMjNweCAzNnB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyNDogJzBweCAyNHB4IDM4cHggM3B4ICN7JHNoYWRvdy1jb2xvcn0nXG4gICk7XG59XG5cbkBmdW5jdGlvbiBfZ2V0LWFtYmllbnQtbWFwKCRjb2xvciwgJG9wYWNpdHkpIHtcbiAgJHNoYWRvdy1jb2xvcjogaWYodHlwZS1vZigkY29sb3IpID09IGNvbG9yLCByZ2JhKCRjb2xvciwgJG9wYWNpdHkgKiAwLjEyKSwgJGNvbG9yKTtcblxuICBAcmV0dXJuIChcbiAgICAwOiAnMHB4IDBweCAwcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE6ICcwcHggMXB4IDNweCAwcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjogJzBweCAxcHggNXB4IDBweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAzOiAnMHB4IDFweCA4cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDQ6ICcwcHggMXB4IDEwcHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDU6ICcwcHggMXB4IDE0cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDY6ICcwcHggMXB4IDE4cHggMHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDc6ICcwcHggMnB4IDE2cHggMXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDg6ICcwcHggM3B4IDE0cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDk6ICcwcHggM3B4IDE2cHggMnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEwOiAnMHB4IDRweCAxOHB4IDNweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxMTogJzBweCA0cHggMjBweCAzcHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTI6ICcwcHggNXB4IDIycHggNHB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDEzOiAnMHB4IDVweCAyNHB4IDRweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNDogJzBweCA1cHggMjZweCA0cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTU6ICcwcHggNnB4IDI4cHggNXB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE2OiAnMHB4IDZweCAzMHB4IDVweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAxNzogJzBweCA2cHggMzJweCA1cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMTg6ICcwcHggN3B4IDM0cHggNnB4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDE5OiAnMHB4IDdweCAzNnB4IDZweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMDogJzBweCA4cHggMzhweCA3cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjE6ICcwcHggOHB4IDQwcHggN3B4ICN7JHNoYWRvdy1jb2xvcn0nLFxuICAgIDIyOiAnMHB4IDhweCA0MnB4IDdweCAjeyRzaGFkb3ctY29sb3J9JyxcbiAgICAyMzogJzBweCA5cHggNDRweCA4cHggI3skc2hhZG93LWNvbG9yfScsXG4gICAgMjQ6ICcwcHggOXB4IDQ2cHggOHB4ICN7JHNoYWRvdy1jb2xvcn0nXG4gICk7XG59XG5cbi8vIFRoZSBkZWZhdWx0IGR1cmF0aW9uIHZhbHVlIGZvciBlbGV2YXRpb24gdHJhbnNpdGlvbnMuXG4kbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uOiAyODBtcyAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgZWFzaW5nIHZhbHVlIGZvciBlbGV2YXRpb24gdHJhbnNpdGlvbnMuXG4kbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogJG1hdC1mYXN0LW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbjtcblxuLy8gVGhlIGRlZmF1bHQgY29sb3IgZm9yIGVsZXZhdGlvbiBzaGFkb3dzLlxuJG1hdC1lbGV2YXRpb24tY29sb3I6IGJsYWNrICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBvcGFjaXR5IHNjYWxpbmcgdmFsdWUgZm9yIGVsZXZhdGlvbiBzaGFkb3dzLlxuJG1hdC1lbGV2YXRpb24tb3BhY2l0eTogMSAhZGVmYXVsdDtcblxuLy8gUHJlZml4IGZvciBlbGV2YXRpb24tcmVsYXRlZCBzZWxlY3RvcnMuXG4kbWF0LWVsZXZhdGlvbi1wcmVmaXg6ICdtYXQtZWxldmF0aW9uLXonO1xuXG4vLyBBcHBsaWVzIHRoZSBjb3JyZWN0IGNzcyBydWxlcyB0byBhbiBlbGVtZW50IHRvIGdpdmUgaXQgdGhlIGVsZXZhdGlvbiBzcGVjaWZpZWQgYnkgJHpWYWx1ZS5cbi8vIFRoZSAkelZhbHVlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyNC5cbkBtaXhpbiBtYXQtZWxldmF0aW9uKCR6VmFsdWUsICRjb2xvcjogJG1hdC1lbGV2YXRpb24tY29sb3IsICRvcGFjaXR5OiAkbWF0LWVsZXZhdGlvbi1vcGFjaXR5KSB7XG4gIEBpZiB0eXBlLW9mKCR6VmFsdWUpICE9IG51bWJlciBvciBub3QgdW5pdGxlc3MoJHpWYWx1ZSkge1xuICAgIEBlcnJvciAnJHpWYWx1ZSBtdXN0IGJlIGEgdW5pdGxlc3MgbnVtYmVyJztcbiAgfVxuICBAaWYgJHpWYWx1ZSA8IDAgb3IgJHpWYWx1ZSA+IDI0IHtcbiAgICBAZXJyb3IgJyR6VmFsdWUgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDI0JztcbiAgfVxuXG4gIGJveC1zaGFkb3c6ICN7bWFwLWdldChfZ2V0LXVtYnJhLW1hcCgkY29sb3IsICRvcGFjaXR5KSwgJHpWYWx1ZSl9LFxuICAgICAgICAgICAgICAje21hcC1nZXQoX2dldC1wZW51bWJyYS1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfSxcbiAgICAgICAgICAgICAgI3ttYXAtZ2V0KF9nZXQtYW1iaWVudC1tYXAoJGNvbG9yLCAkb3BhY2l0eSksICR6VmFsdWUpfTtcbn1cblxuLy8gQXBwbGllcyB0aGUgZWxldmF0aW9uIHRvIGFuIGVsZW1lbnQgaW4gYSBtYW5uZXIgdGhhdCBhbGxvd3Ncbi8vIGNvbnN1bWVycyB0byBvdmVycmlkZSBpdCB2aWEgdGhlIE1hdGVyaWFsIGVsZXZhdGlvbiBjbGFzc2VzLlxuQG1peGluIG1hdC1vdmVycmlkYWJsZS1lbGV2YXRpb24oXG4gICAgJHpWYWx1ZSxcbiAgICAkY29sb3I6ICRtYXQtZWxldmF0aW9uLWNvbG9yLFxuICAgICRvcGFjaXR5OiAkbWF0LWVsZXZhdGlvbi1vcGFjaXR5KSB7XG4gICY6bm90KFtjbGFzcyo9JyN7JG1hdC1lbGV2YXRpb24tcHJlZml4fSddKSB7XG4gICAgQGluY2x1ZGUgbWF0LWVsZXZhdGlvbigkelZhbHVlLCAkY29sb3IsICRvcGFjaXR5KTtcbiAgfVxufVxuXG4vLyBSZXR1cm5zIGEgc3RyaW5nIHRoYXQgY2FuIGJlIHVzZWQgYXMgdGhlIHZhbHVlIGZvciBhIHRyYW5zaXRpb24gcHJvcGVydHkgZm9yIGVsZXZhdGlvbi5cbi8vIENhbGxpbmcgdGhpcyBmdW5jdGlvbiBkaXJlY3RseSBpcyB1c2VmdWwgaW4gc2l0dWF0aW9ucyB3aGVyZSBhIGNvbXBvbmVudCBuZWVkcyB0byB0cmFuc2l0aW9uXG4vLyBtb3JlIHRoYW4gb25lIHByb3BlcnR5LlxuLy9cbi8vIC5mb28ge1xuLy8gICB0cmFuc2l0aW9uOiBtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tcHJvcGVydHktdmFsdWUoKSwgb3BhY2l0eSAxMDBtcyBlYXNlO1xuLy8gfVxuQGZ1bmN0aW9uIG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1wcm9wZXJ0eS12YWx1ZShcbiAgICAkZHVyYXRpb246ICRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24sXG4gICAgJGVhc2luZzogJG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24pIHtcbiAgQHJldHVybiBib3gtc2hhZG93ICN7JGR1cmF0aW9ufSAjeyRlYXNpbmd9O1xufVxuXG4vLyBBcHBsaWVzIHRoZSBjb3JyZWN0IGNzcyBydWxlcyBuZWVkZWQgdG8gaGF2ZSBhbiBlbGVtZW50IHRyYW5zaXRpb24gYmV0d2VlbiBlbGV2YXRpb25zLlxuLy8gVGhpcyBtaXhpbiBzaG91bGQgYmUgYXBwbGllZCB0byBlbGVtZW50cyB3aG9zZSBlbGV2YXRpb24gdmFsdWVzIHdpbGwgY2hhbmdlIGRlcGVuZGluZyBvbiB0aGVpclxuLy8gY29udGV4dCAoZS5nLiB3aGVuIGFjdGl2ZSBvciBkaXNhYmxlZCkuXG4vL1xuLy8gTk9URSh0cmF2aXNrYXVmbWFuKTogQm90aCB0aGlzIG1peGluIGFuZCB0aGUgYWJvdmUgZnVuY3Rpb24gdXNlIGRlZmF1bHQgcGFyYW1ldGVycyBzbyB0aGV5IGNhblxuLy8gYmUgdXNlZCBpbiB0aGUgc2FtZSB3YXkgYnkgY2xpZW50cy5cbkBtaXhpbiBtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24oXG4gICAgJGR1cmF0aW9uOiAkbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLWR1cmF0aW9uLFxuICAgICRlYXNpbmc6ICRtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKSB7XG4gIHRyYW5zaXRpb246IG1hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1wcm9wZXJ0eS12YWx1ZSgkZHVyYXRpb24sICRlYXNpbmcpO1xufVxuXG5cbkBtaXhpbiBtYXQtcHJpdmF0ZS10aGVtZS1lbGV2YXRpb24oJHpWYWx1ZSwgJGNvbmZpZywgJG9wYWNpdHk6ICRtYXQtZWxldmF0aW9uLW9wYWNpdHkpIHtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRlbGV2YXRpb24tY29sb3I6IG1hcC1nZXQoJGZvcmVncm91bmQsIGVsZXZhdGlvbik7XG4gICRlbGV2YXRpb24tY29sb3Itb3ItZGVmYXVsdDogaWYoJGVsZXZhdGlvbi1jb2xvciA9PSBudWxsLCAkbWF0LWVsZXZhdGlvbi1jb2xvciwgJGVsZXZhdGlvbi1jb2xvcik7XG5cbiAgQGluY2x1ZGUgbWF0LWVsZXZhdGlvbigkelZhbHVlLCAkZWxldmF0aW9uLWNvbG9yLW9yLWRlZmF1bHQsICRvcGFjaXR5KTtcbn1cblxuQG1peGluIG1hdC1wcml2YXRlLXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigkelZhbHVlLCAkY29uZmlnLCAkb3BhY2l0eTogJG1hdC1lbGV2YXRpb24tb3BhY2l0eSkge1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGVsZXZhdGlvbi1jb2xvcjogbWFwLWdldCgkZm9yZWdyb3VuZCwgZWxldmF0aW9uKTtcbiAgJGVsZXZhdGlvbi1jb2xvci1vci1kZWZhdWx0OiBpZigkZWxldmF0aW9uLWNvbG9yID09IG51bGwsICRtYXQtZWxldmF0aW9uLWNvbG9yLCAkZWxldmF0aW9uLWNvbG9yKTtcblxuICBAaW5jbHVkZSBtYXQtb3ZlcnJpZGFibGUtZWxldmF0aW9uKCR6VmFsdWUsICRlbGV2YXRpb24tY29sb3Itb3ItZGVmYXVsdCwgJG9wYWNpdHkpO1xufVxuXG4vLyBJZiB0aGUgbWF0LWFuaW1hdGlvbi1ub29wIGNsYXNzIGlzIHByZXNlbnQgb24gdGhlIGNvbXBvbmVudHMgcm9vdCBlbGVtZW50LFxuLy8gcHJldmVudCBub24gY3NzIGFuaW1hdGlvbnMgZnJvbSBydW5uaW5nLlxuLy8gTk9URTogQ3VycmVudGx5IHRoaXMgbWl4aW4gc2hvdWxkIG9ubHkgYmUgdXNlZCB3aXRoIGNvbXBvbmVudHMgdGhhdCBkbyBub3Rcbi8vIGhhdmUgYW55IHByb2plY3RlZCBjb250ZW50LlxuQG1peGluIG1hdC1wcml2YXRlLWFuaW1hdGlvbi1ub29wKCkge1xuICAvLyBAYXQtcm9vdCBpcyB1c2VkIHRvIHN0ZXBzIG91dHNpZGUgb2YgdGhlIGhpZXJhcmNoeSBvZiB0aGUgc2NzcyBydWxlcy4gVGhpcyBpc1xuICAvLyBkb25lIHRvIGFsbG93IGEgY2xhc3MgdG8gYmUgYWRkZWQgdG8gYmUgYWRkZWQgdG8gYmFzZSBvZiB0aGUgc2NzcyBuZXN0aW5nXG4gIC8vIGNvbnRleHQuXG4gIC8vIEZvciBleGFtcGxlOlxuICAvLyAubXktcm9vdCB7XG4gIC8vICAgLm15LXN1YmNsYXNzIHtcbiAgLy8gICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1hbmltYXRpb24tbm9vcCgpO1xuICAvLyAgICB9XG4gIC8vIH1cbiAgLy8gcmVzdWx0cyBpbjpcbiAgLy8gLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlLm15LXJvb3QgLm15LXN1YmNsYXNzIHsgLi4uIH1cbiAgQGF0LXJvb3QgLl9tYXQtYW5pbWF0aW9uLW5vb3BhYmxlI3smfSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gQ29sb3IgcGFsZXR0ZXMgZnJvbSB0aGUgTWF0ZXJpYWwgRGVzaWduIHNwZWMuXG4vLyBTZWUgaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vY29sb3IvXG4vL1xuLy8gQ29udHJhc3QgY29sb3JzIGFyZSBoYXJkLWNvZGVkIGJlY2F1c2UgaXQgaXMgdG9vIGRpZmZpY3VsdCAocHJvYmFibHkgaW1wb3NzaWJsZSkgdG9cbi8vIGNhbGN1bGF0ZSB0aGVtLiBUaGVzZSBjb250cmFzdCBjb2xvcnMgYXJlIHB1bGxlZCBmcm9tIHRoZSBwdWJsaWMgTWF0ZXJpYWwgRGVzaWduIHNwZWMgc3dhdGNoZXMuXG4vLyBXaGlsZSB0aGUgY29udHJhc3QgY29sb3JzIGluIHRoZSBzcGVjIGFyZSBub3QgcHJlc2NyaXB0aXZlLCB3ZSB1c2UgdGhlbSBmb3IgY29udmVuaWVuY2UuXG5cblxuLy8gQGRlcHJlY2F0ZWQgcmVuYW1lZCB0byAkZGFyay1wcmltYXJ5LXRleHQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kYmxhY2stODctb3BhY2l0eTogcmdiYShibGFjaywgMC44Nyk7XG4vLyBAZGVwcmVjYXRlZCByZW5hbWVkIHRvICRsaWdodC1wcmltYXJ5LXRleHQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kd2hpdGUtODctb3BhY2l0eTogcmdiYSh3aGl0ZSwgMC44Nyk7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGRhcmstW3NlY29uZGFyeS10ZXh0LGRpc2FibGVkLXRleHQsZGl2aWRlcnMsZm9jdXNlZF0gaW5zdGVhZC5cbi8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiRibGFjay0xMi1vcGFjaXR5OiByZ2JhKGJsYWNrLCAwLjEyKTtcbi8vIEBkZXByZWNhdGVkIHVzZSAkbGlnaHQtW3NlY29uZGFyeS10ZXh0LGRpc2FibGVkLXRleHQsZGl2aWRlcnMsZm9jdXNlZF0gaW5zdGVhZC5cbi8vIEBicmVha2luZy1jaGFuZ2UgOC4wLjBcbiR3aGl0ZS0xMi1vcGFjaXR5OiByZ2JhKHdoaXRlLCAwLjEyKTtcbi8vIEBkZXByZWNhdGVkIHVzZSAkZGFyay1bc2Vjb25kYXJ5LXRleHQsZGlzYWJsZWQtdGV4dCxkaXZpZGVycyxmb2N1c2VkXSBpbnN0ZWFkLlxuLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMFxuJGJsYWNrLTYtb3BhY2l0eTogcmdiYShibGFjaywgMC4wNik7XG4vLyBAZGVwcmVjYXRlZCB1c2UgJGxpZ2h0LVtzZWNvbmRhcnktdGV4dCxkaXNhYmxlZC10ZXh0LGRpdmlkZXJzLGZvY3VzZWRdIGluc3RlYWQuXG4vLyBAYnJlYWtpbmctY2hhbmdlIDguMC4wXG4kd2hpdGUtNi1vcGFjaXR5OiByZ2JhKHdoaXRlLCAwLjA2KTtcblxuJGRhcmstcHJpbWFyeS10ZXh0OiByZ2JhKGJsYWNrLCAwLjg3KTtcbiRkYXJrLXNlY29uZGFyeS10ZXh0OiByZ2JhKGJsYWNrLCAwLjU0KTtcbiRkYXJrLWRpc2FibGVkLXRleHQ6IHJnYmEoYmxhY2ssIDAuMzgpO1xuJGRhcmstZGl2aWRlcnM6IHJnYmEoYmxhY2ssIDAuMTIpO1xuJGRhcmstZm9jdXNlZDogcmdiYShibGFjaywgMC4xMik7XG4kbGlnaHQtcHJpbWFyeS10ZXh0OiB3aGl0ZTtcbiRsaWdodC1zZWNvbmRhcnktdGV4dDogcmdiYSh3aGl0ZSwgMC43KTtcbiRsaWdodC1kaXNhYmxlZC10ZXh0OiByZ2JhKHdoaXRlLCAwLjUpO1xuJGxpZ2h0LWRpdmlkZXJzOiByZ2JhKHdoaXRlLCAwLjEyKTtcbiRsaWdodC1mb2N1c2VkOiByZ2JhKHdoaXRlLCAwLjEyKTtcblxuJG1hdC1yZWQ6IChcbiAgNTA6ICNmZmViZWUsXG4gIDEwMDogI2ZmY2RkMixcbiAgMjAwOiAjZWY5YTlhLFxuICAzMDA6ICNlNTczNzMsXG4gIDQwMDogI2VmNTM1MCxcbiAgNTAwOiAjZjQ0MzM2LFxuICA2MDA6ICNlNTM5MzUsXG4gIDcwMDogI2QzMmYyZixcbiAgODAwOiAjYzYyODI4LFxuICA5MDA6ICNiNzFjMWMsXG4gIEExMDA6ICNmZjhhODAsXG4gIEEyMDA6ICNmZjUyNTIsXG4gIEE0MDA6ICNmZjE3NDQsXG4gIEE3MDA6ICNkNTAwMDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1waW5rOiAoXG4gIDUwOiAjZmNlNGVjLFxuICAxMDA6ICNmOGJiZDAsXG4gIDIwMDogI2Y0OGZiMSxcbiAgMzAwOiAjZjA2MjkyLFxuICA0MDA6ICNlYzQwN2EsXG4gIDUwMDogI2U5MWU2MyxcbiAgNjAwOiAjZDgxYjYwLFxuICA3MDA6ICNjMjE4NWIsXG4gIDgwMDogI2FkMTQ1NyxcbiAgOTAwOiAjODgwZTRmLFxuICBBMTAwOiAjZmY4MGFiLFxuICBBMjAwOiAjZmY0MDgxLFxuICBBNDAwOiAjZjUwMDU3LFxuICBBNzAwOiAjYzUxMTYyLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtcHVycGxlOiAoXG4gIDUwOiAjZjNlNWY1LFxuICAxMDA6ICNlMWJlZTcsXG4gIDIwMDogI2NlOTNkOCxcbiAgMzAwOiAjYmE2OGM4LFxuICA0MDA6ICNhYjQ3YmMsXG4gIDUwMDogIzljMjdiMCxcbiAgNjAwOiAjOGUyNGFhLFxuICA3MDA6ICM3YjFmYTIsXG4gIDgwMDogIzZhMWI5YSxcbiAgOTAwOiAjNGExNDhjLFxuICBBMTAwOiAjZWE4MGZjLFxuICBBMjAwOiAjZTA0MGZiLFxuICBBNDAwOiAjZDUwMGY5LFxuICBBNzAwOiAjYWEwMGZmLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1kZWVwLXB1cnBsZTogKFxuICA1MDogI2VkZTdmNixcbiAgMTAwOiAjZDFjNGU5LFxuICAyMDA6ICNiMzlkZGIsXG4gIDMwMDogIzk1NzVjZCxcbiAgNDAwOiAjN2U1N2MyLFxuICA1MDA6ICM2NzNhYjcsXG4gIDYwMDogIzVlMzViMSxcbiAgNzAwOiAjNTEyZGE4LFxuICA4MDA6ICM0NTI3YTAsXG4gIDkwMDogIzMxMWI5MixcbiAgQTEwMDogI2IzODhmZixcbiAgQTIwMDogIzdjNGRmZixcbiAgQTQwMDogIzY1MWZmZixcbiAgQTcwMDogIzYyMDBlYSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtaW5kaWdvOiAoXG4gIDUwOiAjZThlYWY2LFxuICAxMDA6ICNjNWNhZTksXG4gIDIwMDogIzlmYThkYSxcbiAgMzAwOiAjNzk4NmNiLFxuICA0MDA6ICM1YzZiYzAsXG4gIDUwMDogIzNmNTFiNSxcbiAgNjAwOiAjMzk0OWFiLFxuICA3MDA6ICMzMDNmOWYsXG4gIDgwMDogIzI4MzU5MyxcbiAgOTAwOiAjMWEyMzdlLFxuICBBMTAwOiAjOGM5ZWZmLFxuICBBMjAwOiAjNTM2ZGZlLFxuICBBNDAwOiAjM2Q1YWZlLFxuICBBNzAwOiAjMzA0ZmZlLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1ibHVlOiAoXG4gIDUwOiAjZTNmMmZkLFxuICAxMDA6ICNiYmRlZmIsXG4gIDIwMDogIzkwY2FmOSxcbiAgMzAwOiAjNjRiNWY2LFxuICA0MDA6ICM0MmE1ZjUsXG4gIDUwMDogIzIxOTZmMyxcbiAgNjAwOiAjMWU4OGU1LFxuICA3MDA6ICMxOTc2ZDIsXG4gIDgwMDogIzE1NjVjMCxcbiAgOTAwOiAjMGQ0N2ExLFxuICBBMTAwOiAjODJiMWZmLFxuICBBMjAwOiAjNDQ4YWZmLFxuICBBNDAwOiAjMjk3OWZmLFxuICBBNzAwOiAjMjk2MmZmLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtbGlnaHQtYmx1ZTogKFxuICA1MDogI2UxZjVmZSxcbiAgMTAwOiAjYjNlNWZjLFxuICAyMDA6ICM4MWQ0ZmEsXG4gIDMwMDogIzRmYzNmNyxcbiAgNDAwOiAjMjliNmY2LFxuICA1MDA6ICMwM2E5ZjQsXG4gIDYwMDogIzAzOWJlNSxcbiAgNzAwOiAjMDI4OGQxLFxuICA4MDA6ICMwMjc3YmQsXG4gIDkwMDogIzAxNTc5YixcbiAgQTEwMDogIzgwZDhmZixcbiAgQTIwMDogIzQwYzRmZixcbiAgQTQwMDogIzAwYjBmZixcbiAgQTcwMDogIzAwOTFlYSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1jeWFuOiAoXG4gIDUwOiAjZTBmN2ZhLFxuICAxMDA6ICNiMmViZjIsXG4gIDIwMDogIzgwZGVlYSxcbiAgMzAwOiAjNGRkMGUxLFxuICA0MDA6ICMyNmM2ZGEsXG4gIDUwMDogIzAwYmNkNCxcbiAgNjAwOiAjMDBhY2MxLFxuICA3MDA6ICMwMDk3YTcsXG4gIDgwMDogIzAwODM4ZixcbiAgOTAwOiAjMDA2MDY0LFxuICBBMTAwOiAjODRmZmZmLFxuICBBMjAwOiAjMThmZmZmLFxuICBBNDAwOiAjMDBlNWZmLFxuICBBNzAwOiAjMDBiOGQ0LFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtdGVhbDogKFxuICA1MDogI2UwZjJmMSxcbiAgMTAwOiAjYjJkZmRiLFxuICAyMDA6ICM4MGNiYzQsXG4gIDMwMDogIzRkYjZhYyxcbiAgNDAwOiAjMjZhNjlhLFxuICA1MDA6ICMwMDk2ODgsXG4gIDYwMDogIzAwODk3YixcbiAgNzAwOiAjMDA3OTZiLFxuICA4MDA6ICMwMDY5NWMsXG4gIDkwMDogIzAwNGQ0MCxcbiAgQTEwMDogI2E3ZmZlYixcbiAgQTIwMDogIzY0ZmZkYSxcbiAgQTQwMDogIzFkZTliNixcbiAgQTcwMDogIzAwYmZhNSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTcwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4kbWF0LWdyZWVuOiAoXG4gIDUwOiAjZThmNWU5LFxuICAxMDA6ICNjOGU2YzksXG4gIDIwMDogI2E1ZDZhNyxcbiAgMzAwOiAjODFjNzg0LFxuICA0MDA6ICM2NmJiNmEsXG4gIDUwMDogIzRjYWY1MCxcbiAgNjAwOiAjNDNhMDQ3LFxuICA3MDA6ICMzODhlM2MsXG4gIDgwMDogIzJlN2QzMixcbiAgOTAwOiAjMWI1ZTIwLFxuICBBMTAwOiAjYjlmNmNhLFxuICBBMjAwOiAjNjlmMGFlLFxuICBBNDAwOiAjMDBlNjc2LFxuICBBNzAwOiAjMDBjODUzLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1saWdodC1ncmVlbjogKFxuICA1MDogI2YxZjhlOSxcbiAgMTAwOiAjZGNlZGM4LFxuICAyMDA6ICNjNWUxYTUsXG4gIDMwMDogI2FlZDU4MSxcbiAgNDAwOiAjOWNjYzY1LFxuICA1MDA6ICM4YmMzNGEsXG4gIDYwMDogIzdjYjM0MixcbiAgNzAwOiAjNjg5ZjM4LFxuICA4MDA6ICM1NThiMmYsXG4gIDkwMDogIzMzNjkxZSxcbiAgQTEwMDogI2NjZmY5MCxcbiAgQTIwMDogI2IyZmY1OSxcbiAgQTQwMDogIzc2ZmYwMyxcbiAgQTcwMDogIzY0ZGQxNyxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDcwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC1saW1lOiAoXG4gIDUwOiAjZjlmYmU3LFxuICAxMDA6ICNmMGY0YzMsXG4gIDIwMDogI2U2ZWU5YyxcbiAgMzAwOiAjZGNlNzc1LFxuICA0MDA6ICNkNGUxNTcsXG4gIDUwMDogI2NkZGMzOSxcbiAgNjAwOiAjYzBjYTMzLFxuICA3MDA6ICNhZmI0MmIsXG4gIDgwMDogIzllOWQyNCxcbiAgOTAwOiAjODI3NzE3LFxuICBBMTAwOiAjZjRmZjgxLFxuICBBMjAwOiAjZWVmZjQxLFxuICBBNDAwOiAjYzZmZjAwLFxuICBBNzAwOiAjYWVlYTAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgOTAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEExMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgKVxuKTtcblxuJG1hdC15ZWxsb3c6IChcbiAgNTA6ICNmZmZkZTcsXG4gIDEwMDogI2ZmZjljNCxcbiAgMjAwOiAjZmZmNTlkLFxuICAzMDA6ICNmZmYxNzYsXG4gIDQwMDogI2ZmZWU1OCxcbiAgNTAwOiAjZmZlYjNiLFxuICA2MDA6ICNmZGQ4MzUsXG4gIDcwMDogI2ZiYzAyZCxcbiAgODAwOiAjZjlhODI1LFxuICA5MDA6ICNmNTdmMTcsXG4gIEExMDA6ICNmZmZmOGQsXG4gIEEyMDA6ICNmZmZmMDAsXG4gIEE0MDA6ICNmZmVhMDAsXG4gIEE3MDA6ICNmZmQ2MDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtYW1iZXI6IChcbiAgNTA6ICNmZmY4ZTEsXG4gIDEwMDogI2ZmZWNiMyxcbiAgMjAwOiAjZmZlMDgyLFxuICAzMDA6ICNmZmQ1NGYsXG4gIDQwMDogI2ZmY2EyOCxcbiAgNTAwOiAjZmZjMTA3LFxuICA2MDA6ICNmZmIzMDAsXG4gIDcwMDogI2ZmYTAwMCxcbiAgODAwOiAjZmY4ZjAwLFxuICA5MDA6ICNmZjZmMDAsXG4gIEExMDA6ICNmZmU1N2YsXG4gIEEyMDA6ICNmZmQ3NDAsXG4gIEE0MDA6ICNmZmM0MDAsXG4gIEE3MDA6ICNmZmFiMDAsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA1MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA4MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtb3JhbmdlOiAoXG4gIDUwOiAjZmZmM2UwLFxuICAxMDA6ICNmZmUwYjIsXG4gIDIwMDogI2ZmY2M4MCxcbiAgMzAwOiAjZmZiNzRkLFxuICA0MDA6ICNmZmE3MjYsXG4gIDUwMDogI2ZmOTgwMCxcbiAgNjAwOiAjZmI4YzAwLFxuICA3MDA6ICNmNTdjMDAsXG4gIDgwMDogI2VmNmMwMCxcbiAgOTAwOiAjZTY1MTAwLFxuICBBMTAwOiAjZmZkMTgwLFxuICBBMjAwOiAjZmZhYjQwLFxuICBBNDAwOiAjZmY5MTAwLFxuICBBNzAwOiAjZmY2ZDAwLFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiBibGFjayxcbiAgKVxuKTtcblxuJG1hdC1kZWVwLW9yYW5nZTogKFxuICA1MDogI2ZiZTllNyxcbiAgMTAwOiAjZmZjY2JjLFxuICAyMDA6ICNmZmFiOTEsXG4gIDMwMDogI2ZmOGE2NSxcbiAgNDAwOiAjZmY3MDQzLFxuICA1MDA6ICNmZjU3MjIsXG4gIDYwMDogI2Y0NTExZSxcbiAgNzAwOiAjZTY0YTE5LFxuICA4MDA6ICNkODQzMTUsXG4gIDkwMDogI2JmMzYwYyxcbiAgQTEwMDogI2ZmOWU4MCxcbiAgQTIwMDogI2ZmNmU0MCxcbiAgQTQwMDogI2ZmM2QwMCxcbiAgQTcwMDogI2RkMmMwMCxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtYnJvd246IChcbiAgNTA6ICNlZmViZTksXG4gIDEwMDogI2Q3Y2NjOCxcbiAgMjAwOiAjYmNhYWE0LFxuICAzMDA6ICNhMTg4N2YsXG4gIDQwMDogIzhkNmU2MyxcbiAgNTAwOiAjNzk1NTQ4LFxuICA2MDA6ICM2ZDRjNDEsXG4gIDcwMDogIzVkNDAzNyxcbiAgODAwOiAjNGUzNDJlLFxuICA5MDA6ICMzZTI3MjMsXG4gIEExMDA6ICNkN2NjYzgsXG4gIEEyMDA6ICNiY2FhYTQsXG4gIEE0MDA6ICM4ZDZlNjMsXG4gIEE3MDA6ICM1ZDQwMzcsXG4gIGNvbnRyYXN0OiAoXG4gICAgNTA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAxMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICAzMDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbiRtYXQtZ3JleTogKFxuICA1MDogI2ZhZmFmYSxcbiAgMTAwOiAjZjVmNWY1LFxuICAyMDA6ICNlZWVlZWUsXG4gIDMwMDogI2UwZTBlMCxcbiAgNDAwOiAjYmRiZGJkLFxuICA1MDA6ICM5ZTllOWUsXG4gIDYwMDogIzc1NzU3NSxcbiAgNzAwOiAjNjE2MTYxLFxuICA4MDA6ICM0MjQyNDIsXG4gIDkwMDogIzIxMjEyMSxcbiAgQTEwMDogI2ZmZmZmZixcbiAgQTIwMDogI2VlZWVlZSxcbiAgQTQwMDogI2JkYmRiZCxcbiAgQTcwMDogIzYxNjE2MSxcbiAgY29udHJhc3Q6IChcbiAgICA1MDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDMwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDQwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIDYwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgODAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDkwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICBBMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgQTIwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEE0MDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICApXG4pO1xuXG4vLyBBbGlhcyBmb3IgYWx0ZXJuYXRlIHNwZWxsaW5nLlxuJG1hdC1ncmF5OiAkbWF0LWdyZXk7XG5cbiRtYXQtYmx1ZS1ncmV5OiAoXG4gIDUwOiAjZWNlZmYxLFxuICAxMDA6ICNjZmQ4ZGMsXG4gIDIwMDogI2IwYmVjNSxcbiAgMzAwOiAjOTBhNGFlLFxuICA0MDA6ICM3ODkwOWMsXG4gIDUwMDogIzYwN2Q4YixcbiAgNjAwOiAjNTQ2ZTdhLFxuICA3MDA6ICM0NTVhNjQsXG4gIDgwMDogIzM3NDc0ZixcbiAgOTAwOiAjMjYzMjM4LFxuICBBMTAwOiAjY2ZkOGRjLFxuICBBMjAwOiAjYjBiZWM1LFxuICBBNDAwOiAjNzg5MDljLFxuICBBNzAwOiAjNDU1YTY0LFxuICBjb250cmFzdDogKFxuICAgIDUwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMTAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMjAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgMzAwOiAkZGFyay1wcmltYXJ5LXRleHQsXG4gICAgNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDUwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA2MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgNzAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIDgwMDogJGxpZ2h0LXByaW1hcnktdGV4dCxcbiAgICA5MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gICAgQTEwMDogJGRhcmstcHJpbWFyeS10ZXh0LFxuICAgIEEyMDA6ICRkYXJrLXByaW1hcnktdGV4dCxcbiAgICBBNDAwOiAkbGlnaHQtcHJpbWFyeS10ZXh0LFxuICAgIEE3MDA6ICRsaWdodC1wcmltYXJ5LXRleHQsXG4gIClcbik7XG5cbi8vIEFsaWFzIGZvciBhbHRlcm5hdGUgc3BlbGxpbmcuXG4kbWF0LWJsdWUtZ3JheTogJG1hdC1ibHVlLWdyZXk7XG5cblxuLy8gQmFja2dyb3VuZCBwYWxldHRlIGZvciBsaWdodCB0aGVtZXMuXG4kbWF0LWxpZ2h0LXRoZW1lLWJhY2tncm91bmQ6IChcbiAgc3RhdHVzLWJhcjogbWFwLWdldCgkbWF0LWdyZXksIDMwMCksXG4gIGFwcC1iYXI6ICAgIG1hcC1nZXQoJG1hdC1ncmV5LCAxMDApLFxuICBiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRtYXQtZ3JleSwgNTApLFxuICBob3ZlcjogICAgICByZ2JhKGJsYWNrLCAwLjA0KSwgLy8gVE9ETyhrYXJhKTogY2hlY2sgc3R5bGUgd2l0aCBNYXRlcmlhbCBEZXNpZ24gVVhcbiAgY2FyZDogICAgICAgd2hpdGUsXG4gIGRpYWxvZzogICAgIHdoaXRlLFxuICBkaXNhYmxlZC1idXR0b246IHJnYmEoYmxhY2ssIDAuMTIpLFxuICByYWlzZWQtYnV0dG9uOiB3aGl0ZSxcbiAgZm9jdXNlZC1idXR0b246ICRkYXJrLWZvY3VzZWQsXG4gIHNlbGVjdGVkLWJ1dHRvbjogbWFwLWdldCgkbWF0LWdyZXksIDMwMCksXG4gIHNlbGVjdGVkLWRpc2FibGVkLWJ1dHRvbjogbWFwLWdldCgkbWF0LWdyZXksIDQwMCksXG4gIGRpc2FibGVkLWJ1dHRvbi10b2dnbGU6IG1hcC1nZXQoJG1hdC1ncmV5LCAyMDApLFxuICB1bnNlbGVjdGVkLWNoaXA6IG1hcC1nZXQoJG1hdC1ncmV5LCAzMDApLFxuICBkaXNhYmxlZC1saXN0LW9wdGlvbjogbWFwLWdldCgkbWF0LWdyZXksIDIwMCksXG4gIHRvb2x0aXA6IG1hcC1nZXQoJG1hdC1ncmV5LCA3MDApLFxuKTtcblxuLy8gQmFja2dyb3VuZCBwYWxldHRlIGZvciBkYXJrIHRoZW1lcy5cbiRtYXQtZGFyay10aGVtZS1iYWNrZ3JvdW5kOiAoXG4gIHN0YXR1cy1iYXI6IGJsYWNrLFxuICBhcHAtYmFyOiAgICBtYXAtZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgYmFja2dyb3VuZDogIzMwMzAzMCxcbiAgaG92ZXI6ICAgICAgcmdiYSh3aGl0ZSwgMC4wNCksIC8vIFRPRE8oa2FyYSk6IGNoZWNrIHN0eWxlIHdpdGggTWF0ZXJpYWwgRGVzaWduIFVYXG4gIGNhcmQ6ICAgICAgIG1hcC1nZXQoJG1hdC1ncmV5LCA4MDApLFxuICBkaWFsb2c6ICAgICBtYXAtZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uOiByZ2JhKHdoaXRlLCAwLjEyKSxcbiAgcmFpc2VkLWJ1dHRvbjogbWFwLWdldCgkbWF0LWdyZXksIDgwMCksXG4gIGZvY3VzZWQtYnV0dG9uOiAkbGlnaHQtZm9jdXNlZCxcbiAgc2VsZWN0ZWQtYnV0dG9uOiBtYXAtZ2V0KCRtYXQtZ3JleSwgOTAwKSxcbiAgc2VsZWN0ZWQtZGlzYWJsZWQtYnV0dG9uOiBtYXAtZ2V0KCRtYXQtZ3JleSwgODAwKSxcbiAgZGlzYWJsZWQtYnV0dG9uLXRvZ2dsZTogYmxhY2ssXG4gIHVuc2VsZWN0ZWQtY2hpcDogbWFwLWdldCgkbWF0LWdyZXksIDcwMCksXG4gIGRpc2FibGVkLWxpc3Qtb3B0aW9uOiBibGFjayxcbiAgdG9vbHRpcDogbWFwLWdldCgkbWF0LWdyZXksIDcwMCksXG4pO1xuXG4vLyBGb3JlZ3JvdW5kIHBhbGV0dGUgZm9yIGxpZ2h0IHRoZW1lcy5cbiRtYXQtbGlnaHQtdGhlbWUtZm9yZWdyb3VuZDogKFxuICBiYXNlOiAgICAgICAgICAgICAgYmxhY2ssXG4gIGRpdmlkZXI6ICAgICAgICAgICAkZGFyay1kaXZpZGVycyxcbiAgZGl2aWRlcnM6ICAgICAgICAgICRkYXJrLWRpdmlkZXJzLFxuICBkaXNhYmxlZDogICAgICAgICAgJGRhcmstZGlzYWJsZWQtdGV4dCxcbiAgZGlzYWJsZWQtYnV0dG9uOiAgIHJnYmEoYmxhY2ssIDAuMjYpLFxuICBkaXNhYmxlZC10ZXh0OiAgICAgJGRhcmstZGlzYWJsZWQtdGV4dCxcbiAgZWxldmF0aW9uOiAgICAgICAgIGJsYWNrLFxuICBoaW50LXRleHQ6ICAgICAgICAgJGRhcmstZGlzYWJsZWQtdGV4dCxcbiAgc2Vjb25kYXJ5LXRleHQ6ICAgICRkYXJrLXNlY29uZGFyeS10ZXh0LFxuICBpY29uOiAgICAgICAgICAgICAgcmdiYShibGFjaywgMC41NCksXG4gIGljb25zOiAgICAgICAgICAgICByZ2JhKGJsYWNrLCAwLjU0KSxcbiAgdGV4dDogICAgICAgICAgICAgIHJnYmEoYmxhY2ssIDAuODcpLFxuICBzbGlkZXItbWluOiAgICAgICAgcmdiYShibGFjaywgMC44NyksXG4gIHNsaWRlci1vZmY6ICAgICAgICByZ2JhKGJsYWNrLCAwLjI2KSxcbiAgc2xpZGVyLW9mZi1hY3RpdmU6IHJnYmEoYmxhY2ssIDAuMzgpLFxuKTtcblxuLy8gRm9yZWdyb3VuZCBwYWxldHRlIGZvciBkYXJrIHRoZW1lcy5cbiRtYXQtZGFyay10aGVtZS1mb3JlZ3JvdW5kOiAoXG4gIGJhc2U6ICAgICAgICAgICAgICB3aGl0ZSxcbiAgZGl2aWRlcjogICAgICAgICAgICRsaWdodC1kaXZpZGVycyxcbiAgZGl2aWRlcnM6ICAgICAgICAgICRsaWdodC1kaXZpZGVycyxcbiAgZGlzYWJsZWQ6ICAgICAgICAgICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBkaXNhYmxlZC1idXR0b246ICAgcmdiYSh3aGl0ZSwgMC4zKSxcbiAgZGlzYWJsZWQtdGV4dDogICAgICRsaWdodC1kaXNhYmxlZC10ZXh0LFxuICBlbGV2YXRpb246ICAgICAgICAgYmxhY2ssXG4gIGhpbnQtdGV4dDogICAgICAgICAkbGlnaHQtZGlzYWJsZWQtdGV4dCxcbiAgc2Vjb25kYXJ5LXRleHQ6ICAgICRsaWdodC1zZWNvbmRhcnktdGV4dCxcbiAgaWNvbjogICAgICAgICAgICAgIHdoaXRlLFxuICBpY29uczogICAgICAgICAgICAgd2hpdGUsXG4gIHRleHQ6ICAgICAgICAgICAgICB3aGl0ZSxcbiAgc2xpZGVyLW1pbjogICAgICAgIHdoaXRlLFxuICBzbGlkZXItb2ZmOiAgICAgICAgcmdiYSh3aGl0ZSwgMC4zKSxcbiAgc2xpZGVyLW9mZi1hY3RpdmU6IHJnYmEod2hpdGUsIDAuMyksXG4pO1xuXG5cbi8vIFdoZXRoZXIgZHVwbGljYXRpb24gd2FybmluZ3Mgc2hvdWxkIGJlIGRpc2FibGVkLiBXYXJuaW5ncyBlbmFibGVkIGJ5IGRlZmF1bHQuXG4kbWF0LXRoZW1lLWlnbm9yZS1kdXBsaWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFdoZXRoZXIgZGVuc2l0eSBzaG91bGQgYmUgZ2VuZXJhdGVkIGJ5IGRlZmF1bHQuXG4kX21hdC10aGVtZS1nZW5lcmF0ZS1kZWZhdWx0LWRlbnNpdHk6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIFdhcm5pbmcgdGhhdCB3aWxsIGJlIHByaW50ZWQgaWYgZHVwbGljYXRlZCBzdHlsZXMgYXJlIGdlbmVyYXRlZCBieSBhIHRoZW1lLlxuJF9tYXQtdGhlbWUtZHVwbGljYXRlLXdhcm5pbmc6ICdSZWFkIG1vcmUgYWJvdXQgaG93IHN0eWxlIGR1cGxpY2F0aW9uIGNhbiBiZSBhdm9pZGVkIGluIGEgJyArXG4gICdkZWRpY2F0ZWQgZ3VpZGUuIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi9tYXN0ZXIvZ3VpZGVzL2R1cGxpY2F0ZS10aGVtaW5nLXN0eWxlcy5tZCc7XG5cbi8vIFRoZXNlIHZhcmlhYmxlIGFyZSBub3QgaW50ZW5kZWQgdG8gYmUgb3ZlcnJpZGRlbiBleHRlcm5hbGx5LiBUaGV5IHVzZSBgIWRlZmF1bHRgIHRvXG4vLyBhdm9pZCBiZWluZyByZXNldCBldmVyeSB0aW1lIHRoaXMgZmlsZSBpcyBpbXBvcnRlZC5cbiRfbWF0LXRoZW1lLWVtaXR0ZWQtY29sb3I6ICgpICFkZWZhdWx0O1xuJF9tYXQtdGhlbWUtZW1pdHRlZC10eXBvZ3JhcGh5OiAoKSAhZGVmYXVsdDtcbiRfbWF0LXRoZW1lLWVtaXR0ZWQtZGVuc2l0eTogKCkgIWRlZmF1bHQ7XG5cbi8vIEZvciBhIGdpdmVuIGh1ZSBpbiBhIHBhbGV0dGUsIHJldHVybiB0aGUgY29udHJhc3QgY29sb3IgZnJvbSB0aGUgbWFwIG9mIGNvbnRyYXN0IHBhbGV0dGVzLlxuLy8gQHBhcmFtICRjb2xvci1tYXBcbi8vIEBwYXJhbSAkaHVlXG5AZnVuY3Rpb24gbWF0LWNvbnRyYXN0KCRwYWxldHRlLCAkaHVlKSB7XG4gIEByZXR1cm4gbWFwLWdldChtYXAtZ2V0KCRwYWxldHRlLCBjb250cmFzdCksICRodWUpO1xufVxuXG5cbi8vIENyZWF0ZXMgYSBtYXAgb2YgaHVlcyB0byBjb2xvcnMgZm9yIGEgdGhlbWUuIFRoaXMgaXMgdXNlZCB0byBkZWZpbmUgYSB0aGVtZSBwYWxldHRlIGluIHRlcm1zXG4vLyBvZiB0aGUgTWF0ZXJpYWwgRGVzaWduIGh1ZXMuXG4vLyBAcGFyYW0gJGNvbG9yLW1hcFxuLy8gQHBhcmFtICRwcmltYXJ5XG4vLyBAcGFyYW0gJGxpZ2h0ZXJcbkBmdW5jdGlvbiBtYXQtcGFsZXR0ZSgkYmFzZS1wYWxldHRlLCAkZGVmYXVsdDogNTAwLCAkbGlnaHRlcjogMTAwLCAkZGFya2VyOiA3MDAsICR0ZXh0OiAkZGVmYXVsdCkge1xuICAkcmVzdWx0OiBtYXAtbWVyZ2UoJGJhc2UtcGFsZXR0ZSwgKFxuICAgIGRlZmF1bHQ6IG1hcC1nZXQoJGJhc2UtcGFsZXR0ZSwgJGRlZmF1bHQpLFxuICAgIGxpZ2h0ZXI6IG1hcC1nZXQoJGJhc2UtcGFsZXR0ZSwgJGxpZ2h0ZXIpLFxuICAgIGRhcmtlcjogbWFwLWdldCgkYmFzZS1wYWxldHRlLCAkZGFya2VyKSxcbiAgICB0ZXh0OiBtYXAtZ2V0KCRiYXNlLXBhbGV0dGUsICR0ZXh0KSxcblxuICAgIGRlZmF1bHQtY29udHJhc3Q6IG1hdC1jb250cmFzdCgkYmFzZS1wYWxldHRlLCAkZGVmYXVsdCksXG4gICAgbGlnaHRlci1jb250cmFzdDogbWF0LWNvbnRyYXN0KCRiYXNlLXBhbGV0dGUsICRsaWdodGVyKSxcbiAgICBkYXJrZXItY29udHJhc3Q6IG1hdC1jb250cmFzdCgkYmFzZS1wYWxldHRlLCAkZGFya2VyKVxuICApKTtcblxuICAvLyBGb3IgZWFjaCBodWUgaW4gdGhlIHBhbGV0dGUsIGFkZCBhIFwiLWNvbnRyYXN0XCIgY29sb3IgdG8gdGhlIG1hcC5cbiAgQGVhY2ggJGh1ZSwgJGNvbG9yIGluICRiYXNlLXBhbGV0dGUge1xuICAgICRyZXN1bHQ6IG1hcC1tZXJnZSgkcmVzdWx0LCAoXG4gICAgICAnI3skaHVlfS1jb250cmFzdCc6IG1hdC1jb250cmFzdCgkYmFzZS1wYWxldHRlLCAkaHVlKVxuICAgICkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG5cbi8vIEdldHMgYSBjb2xvciBmcm9tIGEgdGhlbWUgcGFsZXR0ZSAodGhlIG91dHB1dCBvZiBtYXQtcGFsZXR0ZSkuXG4vLyBUaGUgaHVlIGNhbiBiZSBvbmUgb2YgdGhlIHN0YW5kYXJkIHZhbHVlcyAoNTAwLCBBNDAwLCBldGMuKSwgb25lIG9mIHRoZSB0aHJlZSBwcmVjb25maWd1cmVkXG4vLyBodWVzIChkZWZhdWx0LCBsaWdodGVyLCBkYXJrZXIpLCBvciBhbnkgb2YgdGhlIGFmb3JlbWVudGlvbmVkIHByZWZpeGVkIHdpdGggXCItY29udHJhc3RcIi5cbi8vXG4vLyBAcGFyYW0gJGNvbG9yLW1hcCBUaGUgdGhlbWUgcGFsZXR0ZSAob3V0cHV0IG9mIG1hdC1wYWxldHRlKS5cbi8vIEBwYXJhbSAkaHVlIFRoZSBodWUgZnJvbSB0aGUgcGFsZXR0ZSB0byB1c2UuIElmIHRoaXMgaXMgYSB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEsIGl0IHdpbGxcbi8vICAgICBiZSB0cmVhdGVkIGFzIG9wYWNpdHkuXG4vLyBAcGFyYW0gJG9wYWNpdHkgVGhlIGFscGhhIGNoYW5uZWwgdmFsdWUgZm9yIHRoZSBjb2xvci5cbkBmdW5jdGlvbiBtYXQtY29sb3IoJHBhbGV0dGUsICRodWU6IGRlZmF1bHQsICRvcGFjaXR5OiBudWxsKSB7XG4gIC8vIElmIGh1ZUtleSBpcyBhIG51bWJlciBiZXR3ZWVuIHplcm8gYW5kIG9uZSwgdGhlbiBpdCBhY3R1YWxseSBjb250YWlucyBhblxuICAvLyBvcGFjaXR5IHZhbHVlLCBzbyByZWNhbGwgdGhpcyBmdW5jdGlvbiB3aXRoIHRoZSBkZWZhdWx0IGh1ZSBhbmQgdGhhdCBnaXZlbiBvcGFjaXR5LlxuICBAaWYgdHlwZS1vZigkaHVlKSA9PSBudW1iZXIgYW5kICRodWUgPj0gMCBhbmQgJGh1ZSA8PSAxIHtcbiAgICBAcmV0dXJuIG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdCwgJGh1ZSk7XG4gIH1cblxuICAkY29sb3I6IG1hcC1nZXQoJHBhbGV0dGUsICRodWUpO1xuXG4gIEBpZiAodHlwZS1vZigkY29sb3IpICE9IGNvbG9yKSB7XG4gICAgLy8gSWYgdGhlICRjb2xvciByZXNvbHZlZCB0byBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gYSBjb2xvciAoZS5nLiBhIENTUyB2YXJpYWJsZSksXG4gICAgLy8gd2UgY2FuJ3QgYXBwbHkgdGhlIG9wYWNpdHkgYW55d2F5IHNvIHdlIHJldHVybiB0aGUgdmFsdWUgYXMgaXMsIG90aGVyd2lzZSBTYXNzIGNhblxuICAgIC8vIHRocm93IGFuIGVycm9yIG9yIG91dHB1dCBzb21ldGhpbmcgaW52YWxpZC5cbiAgICBAcmV0dXJuICRjb2xvcjtcbiAgfVxuXG4gIEByZXR1cm4gcmdiYSgkY29sb3IsIGlmKCRvcGFjaXR5ID09IG51bGwsIG9wYWNpdHkoJGNvbG9yKSwgJG9wYWNpdHkpKTtcbn1cblxuLy8gVmFsaWRhdGVzIHRoZSBzcGVjaWZpZWQgdGhlbWUgYnkgZW5zdXJpbmcgdGhhdCB0aGUgb3B0aW9uYWwgY29sb3IgY29uZmlnIGRlZmluZXNcbi8vIGEgcHJpbWFyeSwgYWNjZW50IGFuZCB3YXJuIHBhbGV0dGUuIFJldHVybnMgdGhlIHRoZW1lIGlmIG5vIGZhaWx1cmVzIHdlcmUgZm91bmQuXG5AZnVuY3Rpb24gX21hdC12YWxpZGF0ZS10aGVtZSgkdGhlbWUpIHtcbiAgQGlmIG1hcC1nZXQoJHRoZW1lLCBjb2xvcikge1xuICAgICRjb2xvcjogbWFwLWdldCgkdGhlbWUsIGNvbG9yKTtcbiAgICBAaWYgbm90IG1hcC1nZXQoJGNvbG9yLCBwcmltYXJ5KSB7XG4gICAgICBAZXJyb3IgJ1RoZW1lIGRvZXMgbm90IGRlZmluZSBhIHZhbGlkIFwicHJpbWFyeVwiIHBhbGV0dGUuJztcbiAgICB9XG4gICAgQGVsc2UgaWYgbm90IG1hcC1nZXQoJGNvbG9yLCBhY2NlbnQpIHtcbiAgICAgIEBlcnJvciAnVGhlbWUgZG9lcyBub3QgZGVmaW5lIGEgdmFsaWQgXCJhY2NlbnRcIiBwYWxldHRlLic7XG4gICAgfVxuICAgIEBlbHNlIGlmIG5vdCBtYXAtZ2V0KCRjb2xvciwgd2Fybikge1xuICAgICAgQGVycm9yICdUaGVtZSBkb2VzIG5vdCBkZWZpbmUgYSB2YWxpZCBcIndhcm5cIiBwYWxldHRlLic7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJHRoZW1lO1xufVxuXG4vLyBDcmVhdGVzIGEgbGlnaHQtdGhlbWVkIGNvbG9yIGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgc3BlY2lmaWVkXG4vLyBwcmltYXJ5LCBhY2NlbnQgYW5kIHdhcm4gcGFsZXR0ZXMuXG5AZnVuY3Rpb24gX21hdC1jcmVhdGUtbGlnaHQtY29sb3ItY29uZmlnKCRwcmltYXJ5LCAkYWNjZW50LCAkd2FybjogbnVsbCkge1xuICBAcmV0dXJuIChcbiAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICBhY2NlbnQ6ICRhY2NlbnQsXG4gICAgd2FybjogaWYoJHdhcm4gIT0gbnVsbCwgJHdhcm4sIG1hdC1wYWxldHRlKCRtYXQtcmVkKSksXG4gICAgaXMtZGFyazogZmFsc2UsXG4gICAgZm9yZWdyb3VuZDogJG1hdC1saWdodC10aGVtZS1mb3JlZ3JvdW5kLFxuICAgIGJhY2tncm91bmQ6ICRtYXQtbGlnaHQtdGhlbWUtYmFja2dyb3VuZCxcbiAgKTtcbn1cblxuLy8gQ3JlYXRlcyBhIGRhcmstdGhlbWVkIGNvbG9yIGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgc3BlY2lmaWVkXG4vLyBwcmltYXJ5LCBhY2NlbnQgYW5kIHdhcm4gcGFsZXR0ZXMuXG5AZnVuY3Rpb24gX21hdC1jcmVhdGUtZGFyay1jb2xvci1jb25maWcoJHByaW1hcnksICRhY2NlbnQsICR3YXJuOiBudWxsKSB7XG4gIEByZXR1cm4gKFxuICAgIHByaW1hcnk6ICRwcmltYXJ5LFxuICAgIGFjY2VudDogJGFjY2VudCxcbiAgICB3YXJuOiBpZigkd2FybiAhPSBudWxsLCAkd2FybiwgbWF0LXBhbGV0dGUoJG1hdC1yZWQpKSxcbiAgICBpcy1kYXJrOiB0cnVlLFxuICAgIGZvcmVncm91bmQ6ICRtYXQtZGFyay10aGVtZS1mb3JlZ3JvdW5kLFxuICAgIGJhY2tncm91bmQ6ICRtYXQtZGFyay10aGVtZS1iYWNrZ3JvdW5kLFxuICApO1xufVxuXG4vLyBDcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBmb3IgYSBsaWdodCB0aGVtZSB0byBiZSBnaXZlbiB0byBpbmRpdmlkdWFsIGNvbXBvbmVudCB0aGVtZSBtaXhpbnMuXG4vLyBUT0RPOiBSZW1vdmUgbGVnYWN5IEFQSSBhbmQgcmVuYW1lIGAkcHJpbWFyeWAgdG8gYCRjb25maWdgLiBDdXJyZW50bHkgaXQgY2Fubm90IGJlIHJlbmFtZWRcbi8vIGFzIGl0IHdvdWxkIGJyZWFrIGV4aXN0aW5nIGFwcHMgdGhhdCBzZXQgdGhlIHBhcmFtZXRlciBieSBuYW1lLlxuQGZ1bmN0aW9uIG1hdC1saWdodC10aGVtZSgkcHJpbWFyeSwgJGFjY2VudDogbnVsbCwgJHdhcm46IG1hdC1wYWxldHRlKCRtYXQtcmVkKSkge1xuICAvLyBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgYSBjb250YWluZXIgb2JqZWN0IGZvciB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnQgdGhlbWUgbWl4aW5zLiBDb25zdW1lcnNcbiAgLy8gY2FuIGNvbnN0cnVjdCBzdWNoIGFuIG9iamVjdCBieSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24sIG9yIGJ5IGJ1aWxkaW5nIHRoZSBvYmplY3QgbWFudWFsbHkuXG4gIC8vIFRoZXJlIGFyZSB0d28gcG9zc2libGUgd2F5cyB0byBpbnZva2UgdGhpcyBmdW5jdGlvbiBpbiBvcmRlciB0byBjcmVhdGUgc3VjaCBhbiBvYmplY3Q6XG4gIC8vXG4gIC8vICAgICgxKSBQYXNzaW5nIGluIGEgbWFwIHRoYXQgaG9sZHMgb3B0aW9uYWwgY29uZmlndXJhdGlvbnMgZm9yIGluZGl2aWR1YWwgcGFydHMgb2YgdGhlXG4gIC8vICAgICAgICB0aGVtaW5nIHN5c3RlbS4gRm9yIGBjb2xvcmAgY29uZmlndXJhdGlvbnMsIHRoZSBmdW5jdGlvbiBvbmx5IGV4cGVjdHMgdGhlIHBhbGV0dGVzXG4gIC8vICAgICAgICBmb3IgYHByaW1hcnlgIGFuZCBgYWNjZW50YCAoYW5kIG9wdGlvbmFsbHkgYHdhcm5gKS4gVGhlIGZ1bmN0aW9uIHdpbGwgZXhwYW5kIHRoZVxuICAvLyAgICAgICAgc2hvcnRoYW5kIGludG8gYW4gYWN0dWFsIGNvbmZpZ3VyYXRpb24gdGhhdCBjYW4gYmUgY29uc3VtZWQgaW4gYC1jb2xvcmAgbWl4aW5zLlxuICAvLyAgICAoMikgTGVnYWN5IHBhdHRlcm46IFBhc3NpbmcgaW4gdGhlIHBhbGV0dGVzIGFzIHBhcmFtZXRlcnMuIFRoaXMgaXMgbm90IGFzIGZsZXhpYmxlXG4gIC8vICAgICAgICBhcyBwYXNzaW5nIGluIGEgY29uZmlndXJhdGlvbiBtYXAgYmVjYXVzZSBvbmx5IHRoZSBgY29sb3JgIHN5c3RlbSBjYW4gYmUgY29uZmlndXJlZC5cbiAgLy9cbiAgLy8gSWYgdGhlIGxlZ2FjeSBwYXR0ZXJuIGlzIHVzZWQsIHdlIGdlbmVyYXRlIGEgY29udGFpbmVyIG9iamVjdCBvbmx5IHdpdGggYSBsaWdodC10aGVtZWRcbiAgLy8gY29uZmlndXJhdGlvbiBmb3IgdGhlIGBjb2xvcmAgdGhlbWluZyBwYXJ0LlxuICBAaWYgJGFjY2VudCAhPSBudWxsIHtcbiAgICBAcmV0dXJuIG1hdC1wcml2YXRlLWNyZWF0ZS1iYWNrd2FyZHMtY29tcGF0aWJpbGl0eS10aGVtZShfbWF0LXZhbGlkYXRlLXRoZW1lKChcbiAgICAgIF9pcy1sZWdhY3ktdGhlbWU6IHRydWUsXG4gICAgICBjb2xvcjogX21hdC1jcmVhdGUtbGlnaHQtY29sb3ItY29uZmlnKCRwcmltYXJ5LCAkYWNjZW50LCAkd2FybiksXG4gICAgKSkpO1xuICB9XG4gIC8vIElmIHRoZSBtYXAgcGF0dGVybiBpcyB1c2VkICgxKSwgd2UganVzdCBwYXNzLXRocm91Z2ggdGhlIGNvbmZpZ3VyYXRpb25zIGZvciBpbmRpdmlkdWFsXG4gIC8vIHBhcnRzIG9mIHRoZSB0aGVtaW5nIHN5c3RlbSwgYnV0IHVwZGF0ZSB0aGUgYGNvbG9yYCBjb25maWd1cmF0aW9uIGlmIHNldC4gQXMgZXhwbGFpbmVkXG4gIC8vIGFib3ZlLCB0aGUgY29sb3Igc2hvcnRoYW5kIHdpbGwgYmUgZXhwYW5kZWQgdG8gYW4gYWN0dWFsIGxpZ2h0LXRoZW1lZCBjb2xvciBjb25maWd1cmF0aW9uLlxuICAkcmVzdWx0OiAkcHJpbWFyeTtcbiAgQGlmIG1hcC1nZXQoJHByaW1hcnksIGNvbG9yKSB7XG4gICAgJGNvbG9yLXNldHRpbmdzOiBtYXAtZ2V0KCRwcmltYXJ5LCBjb2xvcik7XG4gICAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbG9yLXNldHRpbmdzLCBwcmltYXJ5KTtcbiAgICAkYWNjZW50OiBtYXAtZ2V0KCRjb2xvci1zZXR0aW5ncywgYWNjZW50KTtcbiAgICAkd2FybjogbWFwLWdldCgkY29sb3Itc2V0dGluZ3MsIHdhcm4pO1xuICAgICRyZXN1bHQ6IG1hcC1tZXJnZSgkcmVzdWx0LCAoY29sb3I6IF9tYXQtY3JlYXRlLWxpZ2h0LWNvbG9yLWNvbmZpZygkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm4pKSk7XG4gIH1cbiAgQHJldHVybiBtYXQtcHJpdmF0ZS1jcmVhdGUtYmFja3dhcmRzLWNvbXBhdGliaWxpdHktdGhlbWUoX21hdC12YWxpZGF0ZS10aGVtZSgkcmVzdWx0KSk7XG59XG5cbi8vIENyZWF0ZXMgYSBjb250YWluZXIgb2JqZWN0IGZvciBhIGRhcmsgdGhlbWUgdG8gYmUgZ2l2ZW4gdG8gaW5kaXZpZHVhbCBjb21wb25lbnQgdGhlbWUgbWl4aW5zLlxuLy8gVE9ETzogUmVtb3ZlIGxlZ2FjeSBBUEkgYW5kIHJlbmFtZSBgJHByaW1hcnlgIHRvIGAkY29uZmlnYC4gQ3VycmVudGx5IGl0IGNhbm5vdCBiZSByZW5hbWVkXG4vLyBhcyBpdCB3b3VsZCBicmVhayBleGlzdGluZyBhcHBzIHRoYXQgc2V0IHRoZSBwYXJhbWV0ZXIgYnkgbmFtZS5cbkBmdW5jdGlvbiBtYXQtZGFyay10aGVtZSgkcHJpbWFyeSwgJGFjY2VudDogbnVsbCwgJHdhcm46IG1hdC1wYWxldHRlKCRtYXQtcmVkKSkge1xuICAvLyBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgYSBjb250YWluZXIgb2JqZWN0IGZvciB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnQgdGhlbWUgbWl4aW5zLiBDb25zdW1lcnNcbiAgLy8gY2FuIGNvbnN0cnVjdCBzdWNoIGFuIG9iamVjdCBieSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24sIG9yIGJ5IGJ1aWxkaW5nIHRoZSBvYmplY3QgbWFudWFsbHkuXG4gIC8vIFRoZXJlIGFyZSB0d28gcG9zc2libGUgd2F5cyB0byBpbnZva2UgdGhpcyBmdW5jdGlvbiBpbiBvcmRlciB0byBjcmVhdGUgc3VjaCBhbiBvYmplY3Q6XG4gIC8vXG4gIC8vICAgICgxKSBQYXNzaW5nIGluIGEgbWFwIHRoYXQgaG9sZHMgb3B0aW9uYWwgY29uZmlndXJhdGlvbnMgZm9yIGluZGl2aWR1YWwgcGFydHMgb2YgdGhlXG4gIC8vICAgICAgICB0aGVtaW5nIHN5c3RlbS4gRm9yIGBjb2xvcmAgY29uZmlndXJhdGlvbnMsIHRoZSBmdW5jdGlvbiBvbmx5IGV4cGVjdHMgdGhlIHBhbGV0dGVzXG4gIC8vICAgICAgICBmb3IgYHByaW1hcnlgIGFuZCBgYWNjZW50YCAoYW5kIG9wdGlvbmFsbHkgYHdhcm5gKS4gVGhlIGZ1bmN0aW9uIHdpbGwgZXhwYW5kIHRoZVxuICAvLyAgICAgICAgc2hvcnRoYW5kIGludG8gYW4gYWN0dWFsIGNvbmZpZ3VyYXRpb24gdGhhdCBjYW4gYmUgY29uc3VtZWQgaW4gYC1jb2xvcmAgbWl4aW5zLlxuICAvLyAgICAoMikgTGVnYWN5IHBhdHRlcm46IFBhc3NpbmcgaW4gdGhlIHBhbGV0dGVzIGFzIHBhcmFtZXRlcnMuIFRoaXMgaXMgbm90IGFzIGZsZXhpYmxlXG4gIC8vICAgICAgICBhcyBwYXNzaW5nIGluIGEgY29uZmlndXJhdGlvbiBtYXAgYmVjYXVzZSBvbmx5IHRoZSBgY29sb3JgIHN5c3RlbSBjYW4gYmUgY29uZmlndXJlZC5cbiAgLy9cbiAgLy8gSWYgdGhlIGxlZ2FjeSBwYXR0ZXJuIGlzIHVzZWQsIHdlIGdlbmVyYXRlIGEgY29udGFpbmVyIG9iamVjdCBvbmx5IHdpdGggYSBkYXJrLXRoZW1lZFxuICAvLyBjb25maWd1cmF0aW9uIGZvciB0aGUgYGNvbG9yYCB0aGVtaW5nIHBhcnQuXG4gIEBpZiAkYWNjZW50ICE9IG51bGwge1xuICAgIEByZXR1cm4gbWF0LXByaXZhdGUtY3JlYXRlLWJhY2t3YXJkcy1jb21wYXRpYmlsaXR5LXRoZW1lKF9tYXQtdmFsaWRhdGUtdGhlbWUoKFxuICAgICAgX2lzLWxlZ2FjeS10aGVtZTogdHJ1ZSxcbiAgICAgIGNvbG9yOiBfbWF0LWNyZWF0ZS1kYXJrLWNvbG9yLWNvbmZpZygkcHJpbWFyeSwgJGFjY2VudCwgJHdhcm4pLFxuICAgICkpKTtcbiAgfVxuICAvLyBJZiB0aGUgbWFwIHBhdHRlcm4gaXMgdXNlZCAoMSksIHdlIGp1c3QgcGFzcy10aHJvdWdoIHRoZSBjb25maWd1cmF0aW9ucyBmb3IgaW5kaXZpZHVhbFxuICAvLyBwYXJ0cyBvZiB0aGUgdGhlbWluZyBzeXN0ZW0sIGJ1dCB1cGRhdGUgdGhlIGBjb2xvcmAgY29uZmlndXJhdGlvbiBpZiBzZXQuIEFzIGV4cGxhaW5lZFxuICAvLyBhYm92ZSwgdGhlIGNvbG9yIHNob3J0aGFuZCB3aWxsIGJlIGV4cGFuZGVkIHRvIGFuIGFjdHVhbCBkYXJrLXRoZW1lZCBjb2xvciBjb25maWd1cmF0aW9uLlxuICAkcmVzdWx0OiAkcHJpbWFyeTtcbiAgQGlmIG1hcC1nZXQoJHByaW1hcnksIGNvbG9yKSB7XG4gICAgJGNvbG9yLXNldHRpbmdzOiBtYXAtZ2V0KCRwcmltYXJ5LCBjb2xvcik7XG4gICAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbG9yLXNldHRpbmdzLCBwcmltYXJ5KTtcbiAgICAkYWNjZW50OiBtYXAtZ2V0KCRjb2xvci1zZXR0aW5ncywgYWNjZW50KTtcbiAgICAkd2FybjogbWFwLWdldCgkY29sb3Itc2V0dGluZ3MsIHdhcm4pO1xuICAgICRyZXN1bHQ6IG1hcC1tZXJnZSgkcmVzdWx0LCAoY29sb3I6IF9tYXQtY3JlYXRlLWRhcmstY29sb3ItY29uZmlnKCRwcmltYXJ5LCAkYWNjZW50LCAkd2FybikpKTtcbiAgfVxuICBAcmV0dXJuIG1hdC1wcml2YXRlLWNyZWF0ZS1iYWNrd2FyZHMtY29tcGF0aWJpbGl0eS10aGVtZShfbWF0LXZhbGlkYXRlLXRoZW1lKCRyZXN1bHQpKTtcbn1cblxuLy8vIEdldHMgdGhlIGNvbG9yIGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgZ2l2ZW4gdGhlbWUgb3IgY29uZmlndXJhdGlvbi5cbkBmdW5jdGlvbiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUsICRkZWZhdWx0OiBudWxsKSB7XG4gIC8vIElmIGEgY29uZmlndXJhdGlvbiBoYXMgYmVlbiBwYXNzZWQsIHJldHVybiB0aGUgY29uZmlnIGRpcmVjdGx5LlxuICBAaWYgbm90IG1hdC1wcml2YXRlLWlzLXRoZW1lLW9iamVjdCgkdGhlbWUpIHtcbiAgICBAcmV0dXJuICR0aGVtZTtcbiAgfVxuICAvLyBJZiB0aGUgdGhlbWUgaGFzIGJlZW4gY29uc3RydWN0ZWQgdGhyb3VnaCB0aGUgbGVnYWN5IHRoZW1pbmcgQVBJLCB3ZSB1c2UgdGhlIHRoZW1lIG9iamVjdFxuICAvLyBhcyBjb2xvciBjb25maWd1cmF0aW9uIGluc3RlYWQgb2YgdGhlIGRlZGljYXRlZCBgY29sb3JgIHByb3BlcnR5LiBXZSBkbyB0aGlzIGJlY2F1c2UgZm9yXG4gIC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCB3ZSBjb3BpZWQgdGhlIGNvbG9yIGNvbmZpZ3VyYXRpb24gZnJvbSBgJHRoZW1lLmNvbG9yYCB0byBgJHRoZW1lYC5cbiAgLy8gSGVuY2UgZGV2ZWxvcGVycyBjb3VsZCBjdXN0b21pemUgdGhlIGNvbG9ycyBhdCB0b3AtbGV2ZWwgYW5kIHdhbnQgdG8gcmVzcGVjdCB0aGVzZSBjaGFuZ2VzXG4gIC8vIFRPRE86IFJlbW92ZSB3aGVuIGxlZ2FjeSB0aGVtaW5nIEFQSSBpcyByZW1vdmVkLlxuICBAaWYgbWF0LXByaXZhdGUtaXMtbGVnYWN5LWNvbnN0cnVjdGVkLXRoZW1lKCR0aGVtZSkge1xuICAgIEByZXR1cm4gJHRoZW1lO1xuICB9XG4gIEBpZiBtYXAtaGFzLWtleSgkdGhlbWUsIGNvbG9yKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCR0aGVtZSwgY29sb3IpO1xuICB9XG4gIEByZXR1cm4gJGRlZmF1bHQ7XG59XG5cbi8vLyBHZXRzIHRoZSBkZW5zaXR5IGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgZ2l2ZW4gdGhlbWUgb3IgY29uZmlndXJhdGlvbi5cbkBmdW5jdGlvbiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZS1vci1jb25maWcsICRkZWZhdWx0OiAwKSB7XG4gIC8vIElmIGEgY29uZmlndXJhdGlvbiBoYXMgYmVlbiBwYXNzZWQsIHJldHVybiB0aGUgY29uZmlnIGRpcmVjdGx5LlxuICBAaWYgbm90IG1hdC1wcml2YXRlLWlzLXRoZW1lLW9iamVjdCgkdGhlbWUtb3ItY29uZmlnKSB7XG4gICAgQHJldHVybiAkdGhlbWUtb3ItY29uZmlnO1xuICB9XG4gIC8vIEluIGNhc2UgYSB0aGVtZSBoYXMgYmVlbiBwYXNzZWQsIGV4dHJhY3QgdGhlIGNvbmZpZ3VyYXRpb24gaWYgcHJlc2VudCxcbiAgLy8gb3IgZmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0IGRlbnNpdHkgY29uZmlnLlxuICBAaWYgbWFwLWhhcy1rZXkoJHRoZW1lLW9yLWNvbmZpZywgZGVuc2l0eSkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkdGhlbWUtb3ItY29uZmlnLCBkZW5zaXR5KTtcbiAgfVxuICBAcmV0dXJuICRkZWZhdWx0O1xufVxuXG4vLy8gR2V0cyB0aGUgdHlwb2dyYXBoeSBjb25maWd1cmF0aW9uIGZyb20gdGhlIGdpdmVuIHRoZW1lIG9yIGNvbmZpZ3VyYXRpb24uXG4vLy8gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCB0eXBvZ3JhcGh5IGlzIG5vdCBpbmNsdWRlZCBieSBkZWZhdWx0LlxuQGZ1bmN0aW9uIG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lLW9yLWNvbmZpZywgJGRlZmF1bHQ6IG51bGwpIHtcbiAgLy8gSWYgYSBjb25maWd1cmF0aW9uIGhhcyBiZWVuIHBhc3NlZCwgcmV0dXJuIHRoZSBjb25maWcgZGlyZWN0bHkuXG4gIEBpZiBub3QgbWF0LXByaXZhdGUtaXMtdGhlbWUtb2JqZWN0KCR0aGVtZS1vci1jb25maWcpIHtcbiAgICBAcmV0dXJuICR0aGVtZS1vci1jb25maWc7XG4gIH1cbiAgLy8gSW4gY2FzZSBhIHRoZW1lIGhhcyBiZWVuIHBhc3NlZCwgZXh0cmFjdCB0aGUgY29uZmlndXJhdGlvbiBpZiBwcmVzZW50LFxuICAvLyBvciBmYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHQgdHlwb2dyYXBoeSBjb25maWcuXG4gIEBpZiAobWFwLWhhcy1rZXkoJHRoZW1lLW9yLWNvbmZpZywgdHlwb2dyYXBoeSkpIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJHRoZW1lLW9yLWNvbmZpZywgdHlwb2dyYXBoeSk7XG4gIH1cbiAgQHJldHVybiAkZGVmYXVsdDtcbn1cblxuXG4vL1xuLy8gUHJpdmF0ZSBBUElzXG4vL1xuXG4vLyBDaGVja3MgaWYgY29uZmlndXJhdGlvbnMgdGhhdCBoYXZlIGJlZW4gZGVjbGFyZWQgaW4gdGhlIGdpdmVuIHRoZW1lIGhhdmUgYmVlbiBnZW5lcmF0ZWRcbi8vIGJlZm9yZS4gSWYgc28sIHdhcm5pbmdzIHdpbGwgYmUgcmVwb3J0ZWQuIFRoaXMgc2hvdWxkIG5vdGlmeSBkZXZlbG9wZXJzIGluIGNhc2UgZHVwbGljYXRlXG4vLyBzdHlsZXMgYXJlIGFjY2lkZW50YWxseSBnZW5lcmF0ZWQgZHVlIHRvIHdyb25nIHVzYWdlIG9mIHRoZSBhbGwtdGhlbWUgbWl4aW5zLlxuLy9cbi8vIEFkZGl0aW9uYWxseSwgdGhpcyBtaXhpbiBjb250cm9scyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGRlbnNpdHkgY29uZmlndXJhdGlvbi4gQnlcbi8vIGRlZmF1bHQsIGRlbnNpdHkgc3R5bGVzIGFyZSBnZW5lcmF0ZWQgYXQgc2NhbGUgemVyby4gSWYgdGhlIHNhbWUgZGVuc2l0eSBzdHlsZXMgd291bGQgYmVcbi8vIGdlbmVyYXRlZCBhIHNlY29uZCB0aW1lIHRob3VnaCwgdGhlIGRlZmF1bHQgdmFsdWUgd2lsbCBjaGFuZ2UgdG8gYXZvaWQgZHVwbGljYXRlIHN0eWxlcy5cbi8vXG4vLyBUaGUgbWl4aW4ga2VlcHMgdHJhY2sgb2YgYWxsIGNvbmZpZ3VyYXRpb25zIGluIGEgbGlzdCB0aGF0IGlzIHNjb3BlZCB0byB0aGUgc3BlY2lmaWVkXG4vLyBpZC4gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBhIGdpdmVuIHRoZW1lIGNhbiBiZSBwYXNzZWQgdG8gbXVsdGlwbGUgZGlzam9pbnQgdGhlbWUgbWl4aW5zXG4vLyAoZS5nLiBgYW5ndWxhci1tYXRlcmlhbC10aGVtZWAgYW5kIGBhbmd1bGFyLW1hdGVyaWFsLW1kYy10aGVtZWApIHdpdGhvdXQgY2F1c2luZyBhbnlcbi8vIHN0eWxlIGR1cGxpY2F0aW9uLlxuQG1peGluIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZywgJGlkKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgJGNvbG9yLWNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgJGRlbnNpdHktY29uZmlnOiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICR0eXBvZ3JhcGh5LWNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuICAvLyBMaXN0cyBvZiBwcmV2aW91cyBgY29sb3JgLCBgZGVuc2l0eWAgYW5kIGB0eXBvZ3JhcGh5YCBjb25maWd1cmF0aW9ucy5cbiAgJHByZXZpb3VzLWNvbG9yOiBtYXAtZ2V0KCRfbWF0LXRoZW1lLWVtaXR0ZWQtY29sb3IsICRpZCkgb3IgKCk7XG4gICRwcmV2aW91cy10eXBvZ3JhcGh5OiBtYXAtZ2V0KCRfbWF0LXRoZW1lLWVtaXR0ZWQtdHlwb2dyYXBoeSwgJGlkKSBvciAoKTtcbiAgJHByZXZpb3VzLWRlbnNpdHk6IG1hcC1nZXQoJF9tYXQtdGhlbWUtZW1pdHRlZC1kZW5zaXR5LCAkaWQpIG9yICgpO1xuICAvLyBXaGV0aGVyIGR1cGxpY2F0ZSBsZWdhY3kgZGVuc2l0eSBzdHlsZXMgd291bGQgYmUgZ2VuZXJhdGVkLlxuICAkZHVwbGljYXRlLWxlZ2FjeS1kZW5zaXR5OiBmYWxzZTtcblxuICAvLyBDaGVjayBpZiB0aGUgY29sb3IgY29uZmlndXJhdGlvbiBoYXMgYmVlbiBnZW5lcmF0ZWQgYmVmb3JlLlxuICBAaWYgJGNvbG9yLWNvbmZpZyAhPSBudWxsIHtcbiAgICBAaWYgaW5kZXgoJHByZXZpb3VzLWNvbG9yLCAkY29sb3ItY29uZmlnKSAhPSBudWxsIGFuZFxuICAgICAgICBub3QgJG1hdC10aGVtZS1pZ25vcmUtZHVwbGljYXRpb24td2FybmluZ3Mge1xuICAgICAgQHdhcm4gJ1RoZSBzYW1lIGNvbG9yIHN0eWxlcyBhcmUgZ2VuZXJhdGVkIG11bHRpcGxlIHRpbWVzLiAnICtcbiAgICAgICAgICAkX21hdC10aGVtZS1kdXBsaWNhdGUtd2FybmluZztcbiAgICB9XG4gICAgJHByZXZpb3VzLWNvbG9yOiBhcHBlbmQoJHByZXZpb3VzLWNvbG9yLCAkY29sb3ItY29uZmlnKTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSB0eXBvZ3JhcGh5IGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gZ2VuZXJhdGVkIGJlZm9yZS5cbiAgQGlmICR0eXBvZ3JhcGh5LWNvbmZpZyAhPSBudWxsIHtcbiAgICBAaWYgaW5kZXgoJHByZXZpb3VzLXR5cG9ncmFwaHksICR0eXBvZ3JhcGh5LWNvbmZpZykgIT0gbnVsbCBhbmRcbiAgICAgICAgbm90ICRtYXQtdGhlbWUtaWdub3JlLWR1cGxpY2F0aW9uLXdhcm5pbmdzIHtcbiAgICAgIEB3YXJuICdUaGUgc2FtZSB0eXBvZ3JhcGh5IHN0eWxlcyBhcmUgZ2VuZXJhdGVkIG11bHRpcGxlIHRpbWVzLiAnICtcbiAgICAgICAgICAkX21hdC10aGVtZS1kdXBsaWNhdGUtd2FybmluZztcbiAgICB9XG4gICAgJHByZXZpb3VzLXR5cG9ncmFwaHk6IGFwcGVuZCgkcHJldmlvdXMtdHlwb2dyYXBoeSwgJHR5cG9ncmFwaHktY29uZmlnKTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBkZW5zaXR5IGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gZ2VuZXJhdGVkIGJlZm9yZS5cbiAgQGlmICRkZW5zaXR5LWNvbmZpZyAhPSBudWxsIHtcbiAgICBAaWYgaW5kZXgoJHByZXZpb3VzLWRlbnNpdHksICRkZW5zaXR5LWNvbmZpZykgIT0gbnVsbCB7XG4gICAgICAvLyBPbmx5IHJlcG9ydCBhIHdhcm5pbmcgaWYgZGVuc2l0eSBzdHlsZXMgd291bGQgYmUgZHVwbGljYXRlZCBmb3Igbm9uLWxlZ2FjeSB0aGVtZVxuICAgICAgLy8gZGVmaW5pdGlvbnMuIEZvciBsZWdhY3kgdGhlbWVzLCB3ZSBoYXZlIGNvbXBhdGliaWxpdHkgbG9naWMgdGhhdCBhdm9pZHMgZHVwbGljYXRpb25cbiAgICAgIC8vIG9mIGRlZmF1bHQgZGVuc2l0eSBzdHlsZXMuIFdlIGRvbid0IHdhbnQgdG8gcmVwb3J0IGEgd2FybmluZyBpbiB0aG9zZSBjYXNlcy5cbiAgICAgIEBpZiBtYXQtcHJpdmF0ZS1pcy1sZWdhY3ktY29uc3RydWN0ZWQtdGhlbWUoJHRoZW1lKSB7XG4gICAgICAgICRkdXBsaWNhdGUtbGVnYWN5LWRlbnNpdHk6IHRydWU7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiBub3QgJG1hdC10aGVtZS1pZ25vcmUtZHVwbGljYXRpb24td2FybmluZ3Mge1xuICAgICAgICBAd2FybiAnVGhlIHNhbWUgZGVuc2l0eSBzdHlsZXMgYXJlIGdlbmVyYXRlZCBtdWx0aXBsZSB0aW1lcy4gJyArXG4gICAgICAgICAgICRfbWF0LXRoZW1lLWR1cGxpY2F0ZS13YXJuaW5nO1xuICAgICAgfVxuICAgIH1cbiAgICAkcHJldmlvdXMtZGVuc2l0eTogYXBwZW5kKCRwcmV2aW91cy1kZW5zaXR5LCAkZGVuc2l0eS1jb25maWcpO1xuICB9XG5cbiAgJF9tYXQtdGhlbWUtZW1pdHRlZC1jb2xvcjogbWFwLW1lcmdlKFxuICAgICAgJF9tYXQtdGhlbWUtZW1pdHRlZC1jb2xvciwgKCRpZDogJHByZXZpb3VzLWNvbG9yKSkgIWdsb2JhbDtcbiAgJF9tYXQtdGhlbWUtZW1pdHRlZC1kZW5zaXR5OiBtYXAtbWVyZ2UoXG4gICAgICAkX21hdC10aGVtZS1lbWl0dGVkLWRlbnNpdHksICgkaWQ6ICRwcmV2aW91cy1kZW5zaXR5KSkgIWdsb2JhbDtcbiAgJF9tYXQtdGhlbWUtZW1pdHRlZC10eXBvZ3JhcGh5OiBtYXAtbWVyZ2UoXG4gICAgICAkX21hdC10aGVtZS1lbWl0dGVkLXR5cG9ncmFwaHksICgkaWQ6ICRwcmV2aW91cy10eXBvZ3JhcGh5KSkgIWdsb2JhbDtcblxuICAvLyBPcHRpb25hbGx5LCBjb25zdW1lcnMgb2YgdGhpcyBtaXhpbiBjYW4gd3JhcCBjb250ZW50cyBpbnNpZGUgc28gdGhhdCBuZXN0ZWRcbiAgLy8gZHVwbGljYXRlIHN0eWxlIGNoZWNrcyBkbyBub3QgcmVwb3J0IGFub3RoZXIgd2FybmluZy4gZS5nLiBpZiBkZXZlbG9wZXJzIGluY2x1ZGVcbiAgLy8gdGhlIGBhbmd1bGFyLW1hdGVyaWFsLXRoZW1lYCBtaXhpbiB0d2ljZSwgb25seSB0aGUgdG9wLWxldmVsIGR1cGxpY2F0ZSBzdHlsZXMgY2hlY2tcbiAgLy8gc2hvdWxkIHJlcG9ydCBhIHdhcm5pbmcuIE5vdCBhbGwgaW5kaXZpZHVhbCBjb21wb25lbnRzIHNob3VsZCByZXBvcnQgYSB3YXJuaW5nIHRvby5cbiAgJG9yaWctbWF0LXRoZW1lLWlnbm9yZS1kdXBsaWNhdGlvbi13YXJuaW5nczogJG1hdC10aGVtZS1pZ25vcmUtZHVwbGljYXRpb24td2FybmluZ3M7XG4gICRtYXQtdGhlbWUtaWdub3JlLWR1cGxpY2F0aW9uLXdhcm5pbmdzOiB0cnVlICFnbG9iYWw7XG5cbiAgLy8gSWYgZHVwbGljYXRlIGRlZmF1bHQgZGVuc2l0eSBzdHlsZXMgd291bGQgYmUgZ2VuZXJhdGVkIGZvciBhIGxlZ2FjeSBjb25zdHJ1Y3RlZCB0aGVtZSxcbiAgLy8gd2UgYWRqdXN0IHRoZSBkZW5zaXR5IGdlbmVyYXRpb24gc28gdGhhdCBubyBkZW5zaXR5IHN0eWxlcyBhcmUgZ2VuZXJhdGVkIGJ5IGRlZmF1bHQuXG4gIC8vIElmIG5vIGRlZmF1bHQgZGVuc2l0eSBzdHlsZXMgaGF2ZSBiZWVuIGdlbmVyYXRlZCB5ZXQsIHdlIGVuc3VyZSB0aGF0IHRoZSBzdHlsZXNcbiAgLy8gYXJlIGdlbmVyYXRlZCBhdCByb290LiBGb3IgbGVnYWN5IHRoZW1lcyBvdXIgZ29hbCBpcyB0byBnZW5lcmF0ZSBkZWZhdWx0IGRlbnNpdHlcbiAgLy8gc3R5bGVzICoqb25jZSoqIGFuZCBhdCByb290LiBUaGlzIG1hdGNoZXMgdGhlIG9sZCBiZWhhdmlvciB3aGVyZSBkZW5zaXR5IHN0eWxlcyB3ZXJlXG4gIC8vIHBhcnQgb2YgdGhlIGJhc2UgY29tcG9uZW50IHN0eWxlcyAodGhhdCBkaWQgbm90IHVzZSB2aWV3IGVuY2Fwc3VsYXRpb24pLlxuICAvLyBUT0RPOiBSZW1vdmUgdGhpcyBjb21wYXRpYmlsaXR5IGxvZ2ljIHdoZW4gdGhlIGxlZ2FjeSB0aGVtaW5nIEFQSSBpcyByZW1vdmVkLlxuICAkbWF0LXByaXZhdGUtZGVuc2l0eS1nZW5lcmF0ZS1hdC1yb290OiBtYXQtcHJpdmF0ZS1pcy1sZWdhY3ktY29uc3RydWN0ZWQtdGhlbWUoJHRoZW1lKSAhZ2xvYmFsO1xuICAkbWF0LXByaXZhdGUtZGVuc2l0eS1nZW5lcmF0ZS1zdHlsZXM6IG5vdCAkZHVwbGljYXRlLWxlZ2FjeS1kZW5zaXR5ICFnbG9iYWw7XG5cbiAgQGNvbnRlbnQ7XG4gICRtYXQtdGhlbWUtaWdub3JlLWR1cGxpY2F0aW9uLXdhcm5pbmdzOiAkb3JpZy1tYXQtdGhlbWUtaWdub3JlLWR1cGxpY2F0aW9uLXdhcm5pbmdzICFnbG9iYWw7XG5cbiAgJG1hdC1wcml2YXRlLWRlbnNpdHktZ2VuZXJhdGUtYXQtcm9vdDogZmFsc2UgIWdsb2JhbDtcbiAgJG1hdC1wcml2YXRlLWRlbnNpdHktZ2VuZXJhdGUtc3R5bGVzOiB0cnVlICFnbG9iYWw7XG59XG5cbi8vIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiB2YWx1ZSByZXNvbHZlcyB0byBhIHRoZW1lIG9iamVjdC4gVGhlbWUgb2JqZWN0cyBhcmUgYWx3YXlzXG4vLyBvZiB0eXBlIGBtYXBgIGFuZCBjYW4gb3B0aW9uYWxseSBvbmx5IHNwZWNpZnkgYGNvbG9yYCwgYGRlbnNpdHlgIG9yIGB0eXBvZ3JhcGh5YC5cbkBmdW5jdGlvbiBtYXQtcHJpdmF0ZS1pcy10aGVtZS1vYmplY3QoJHZhbHVlKSB7XG4gIEByZXR1cm4gdHlwZS1vZigkdmFsdWUpID09ICdtYXAnIGFuZCAoXG4gICAgbWFwLWhhcy1rZXkoJHZhbHVlLCBjb2xvcikgb3JcbiAgICBtYXAtaGFzLWtleSgkdmFsdWUsIGRlbnNpdHkpIG9yXG4gICAgbWFwLWhhcy1rZXkoJHZhbHVlLCB0eXBvZ3JhcGh5KSBvclxuICAgIGxlbmd0aCgkdmFsdWUpID09IDBcbiAgKTtcbn1cblxuLy8gQ2hlY2tzIHdoZXRoZXIgYSBnaXZlbiB2YWx1ZSBjb3JyZXNwb25kcyB0byBhIGxlZ2FjeSBjb25zdHJ1Y3RlZCB0aGVtZS5cbkBmdW5jdGlvbiBtYXQtcHJpdmF0ZS1pcy1sZWdhY3ktY29uc3RydWN0ZWQtdGhlbWUoJHZhbHVlKSB7XG4gIEByZXR1cm4gdHlwZS1vZigkdmFsdWUpID09ICdtYXAnIGFuZCBtYXAtZ2V0KCR2YWx1ZSwgJ19pcy1sZWdhY3ktdGhlbWUnKTtcbn1cblxuLy8gQ3JlYXRlcyBhIGJhY2t3YXJkcyBjb21wYXRpYmxlIHRoZW1lLiBQcmV2aW91c2x5IGluIEFuZ3VsYXIgTWF0ZXJpYWwsIHRoZW1lIG9iamVjdHNcbi8vIGNvbnRhaW5lZCB0aGUgY29sb3IgY29uZmlndXJhdGlvbiBkaXJlY3RseS4gV2l0aCB0aGUgcmVjZW50IHJlZmFjdG9yaW5nIG9mIHRoZSB0aGVtaW5nXG4vLyBzeXN0ZW0gdG8gYWxsb3cgZm9yIGRlbnNpdHkgYW5kIHR5cG9ncmFwaHkgY29uZmlndXJhdGlvbnMsIHRoaXMgaXMgbm8gbG9uZ2VyIHRoZSBjYXNlLlxuLy8gVG8gZW5zdXJlIHRoYXQgY29uc3RydWN0ZWQgdGhlbWVzIHdoaWNoIHdpbGwgYmUgcGFzc2VkIHRvIGN1c3RvbSB0aGVtZSBtaXhpbnMgZG8gbm90IGJyZWFrLFxuLy8gd2UgY29weSB0aGUgY29sb3IgY29uZmlndXJhdGlvbiBhbmQgcHV0IGl0cyBwcm9wZXJ0aWVzIGF0IHRoZSB0b3AtbGV2ZWwgb2YgdGhlIHRoZW1lIG9iamVjdC5cbi8vIEhlcmUgaXMgYW4gZXhhbXBsZSBvZiBhIHBhdHRlcm4gdGhhdCBzaG91bGQgc3RpbGwgd29yayB1bnRpbCBpdCdzIG9mZmljaWFsbHkgbWFya2VkIGFzIGFcbi8vIGJyZWFraW5nIGNoYW5nZTpcbi8vXG4vLyAgICBAbWl4aW4gbXktY3VzdG9tLWNvbXBvbmVudC10aGVtZSgkdGhlbWUpIHtcbi8vICAgICAgLm15LWNvbXAge1xuLy8gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcihtYXAtZ2V0KCR0aGVtZSwgcHJpbWFyeSkpO1xuLy8gICAgICB9XG4vLyAgICB9XG4vL1xuLy8gTm90ZSB0aGF0IHRoZSBgJHRoZW1lLnByaW1hcnlgIGtleSBkb2VzIHVzdWFsbHkgbm90IGV4aXN0IHNpbmNlIHRoZSBjb2xvciBjb25maWd1cmF0aW9uXG4vLyBpcyBzdG9yZWQgaW4gYCR0aGVtZS5jb2xvcmAgd2hpY2ggY29udGFpbnMgYSBwcm9wZXJ0eSBmb3IgYHByaW1hcnlgLiBUaGlzIG1ldGhvZCBjb3BpZXNcbi8vIHRoZSBtYXAgZnJvbSBgJHRoZW1lLmNvbG9yYCB0byBgJHRoZW1lYCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuXG5AZnVuY3Rpb24gbWF0LXByaXZhdGUtY3JlYXRlLWJhY2t3YXJkcy1jb21wYXRpYmlsaXR5LXRoZW1lKCR0aGVtZSkge1xuICBAaWYgbm90IG1hcC1nZXQoJHRoZW1lLCBjb2xvcikge1xuICAgIEByZXR1cm4gJHRoZW1lO1xuICB9XG4gICRjb2xvcjogbWFwLWdldCgkdGhlbWUsIGNvbG9yKTtcbiAgQHJldHVybiBtYXAtbWVyZ2UoJHRoZW1lLCAkY29sb3IpO1xufVxuXG4vLyBHZXRzIHRoZSB0aGVtZSBmcm9tIHRoZSBnaXZlbiB2YWx1ZSB0aGF0IGlzIGVpdGhlciBhbHJlYWR5IGEgdGhlbWUsIG9yIGEgY29sb3IgY29uZmlndXJhdGlvbi5cbi8vIFRoaXMgaGFuZGxlcyB0aGUgbGVnYWN5IGNhc2Ugd2hlcmUgZGV2ZWxvcGVycyBwYXNzIGEgY29sb3IgY29uZmlndXJhdGlvbiBkaXJlY3RseSB0byB0aGVcbi8vIHRoZW1lIG1peGluLiBCZWZvcmUgd2UgaW50cm9kdWNlZCB0aGUgbmV3IHBhdHRlcm4gZm9yIGNvbnN0cnVjdGluZyBhIHRoZW1lLCBkZXZlbG9wZXJzIHBhc3NlZFxuLy8gdGhlIGNvbG9yIGNvbmZpZ3VyYXRpb24gZGlyZWN0bHkgdG8gdGhlIHRoZW1lIG1peGlucy4gVGhpcyBjYW4gYmUgc3RpbGwgdGhlIGNhc2UgaWYgZGV2ZWxvcGVyc1xuLy8gY29uc3RydWN0IGEgdGhlbWUgbWFudWFsbHkgYW5kIHBhc3MgaXQgdG8gYSB0aGVtZS4gV2Ugc3VwcG9ydCB0aGlzIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbi8vIFRPRE8oZGV2dmVyc2lvbik6IHJlbW92ZSB0aGlzIGluIHRoZSBmdXR1cmUuIENvbnN0cnVjdGluZyB0aGVtZXMgbWFudWFsbHkgaXMgcmFyZSxcbi8vIGFuZCB0aGUgY29kZSBjYW4gYmUgZWFzaWx5IHVwZGF0ZWQgdG8gdGhlIG5ldyBBUEkuXG5AZnVuY3Rpb24gbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gIEBpZiBtYXQtcHJpdmF0ZS1pcy10aGVtZS1vYmplY3QoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAgIEByZXR1cm4gJHRoZW1lLW9yLWNvbG9yLWNvbmZpZztcbiAgfVxuICBAcmV0dXJuIG1hdC1wcml2YXRlLWNyZWF0ZS1iYWNrd2FyZHMtY29tcGF0aWJpbGl0eS10aGVtZSgoXG4gICAgX2lzLWxlZ2FjeS10aGVtZTogdHJ1ZSxcbiAgICBjb2xvcjogJHRoZW1lLW9yLWNvbG9yLWNvbmZpZ1xuICApKTtcbn1cblxuXG5cbiRtYXQtcmlwcGxlLWNvbG9yLW9wYWNpdHk6IDAuMTtcblxuQG1peGluIG1hdC1yaXBwbGUoKSB7XG5cbiAgLy8gVGhlIGhvc3QgZWxlbWVudCBvZiBhbiBtYXQtcmlwcGxlIGRpcmVjdGl2ZSBzaG91bGQgYWx3YXlzIGhhdmUgYSBwb3NpdGlvbiBvZiBcImFic29sdXRlXCIgb3JcbiAgLy8gXCJyZWxhdGl2ZVwiIHNvIHRoYXQgdGhlIHJpcHBsZXMgaW5zaWRlIGFyZSBjb3JyZWN0bHkgcG9zaXRpb25lZCByZWxhdGl2ZWx5IHRvIHRoZSBjb250YWluZXIuXG4gIC5tYXQtcmlwcGxlIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLy8gQnkgZGVmYXVsdCwgZXZlcnkgcmlwcGxlIGNvbnRhaW5lciBzaG91bGQgaGF2ZSBwb3NpdGlvbjogcmVsYXRpdmUgaW4gZmF2b3Igb2YgY3JlYXRpbmcgYW5cbiAgICAvLyBlYXN5IEFQSSBmb3IgZGV2ZWxvcGVycyB1c2luZyB0aGUgTWF0UmlwcGxlIGRpcmVjdGl2ZS5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAvLyBQcm9tb3RlIGNvbnRhaW5lcnMgdGhhdCBoYXZlIHJpcHBsZXMgdG8gYSBuZXcgbGF5ZXIuIFdlIHdhbnQgdG8gdGFyZ2V0IGA6bm90KDplbXB0eSlgLFxuICAgIC8vIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCBhbGwgcmlwcGxlIGNvbnRhaW5lcnMgdG8gaGF2ZSB0aGVpciBvd24gbGF5ZXIgc2luY2UgdGhleSdyZSB1c2VkIGluIGFcbiAgICAvLyBsb3Qgb2YgcGxhY2VzIGFuZCB0aGUgbGF5ZXIgaXMgb25seSByZWxldmFudCB3aGlsZSBhbmltYXRpbmcuIE5vdGUgdGhhdCBpZGVhbGx5IHdlJ2QgdXNlXG4gICAgLy8gdGhlIGBjb250YWluYCBwcm9wZXJ0eSBoZXJlIChzZWUgIzEzMTc1KSwgYmVjYXVzZSBgOmVtcHR5YCBjYW4gYmUgYnJva2VuIGJ5IGhhdmluZyBleHRyYVxuICAgIC8vIHRleHQgaW5zaWRlIHRoZSBlbGVtZW50LCBidXQgaXQgaXNuJ3QgdmVyeSB3ZWxsIHN1cHBvcnRlZCB5ZXQuXG4gICAgJjpub3QoOmVtcHR5KSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1yaXBwbGUubWF0LXJpcHBsZS11bmJvdW5kZWQge1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICB9XG5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIHRyYW5zaXRpb246IG9wYWNpdHksIHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcblxuICAgIC8vIEluIGhpZ2ggY29udHJhc3QgbW9kZSB0aGUgcmlwcGxlIGlzIG9wYXF1ZSwgY2F1c2luZyBpdCB0byBvYnN0cnVjdCB0aGUgY29udGVudC5cbiAgICBAaW5jbHVkZSBjZGstaGlnaC1jb250cmFzdChhY3RpdmUsIG9mZikge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLyogQ29sb3JzIGZvciB0aGUgcmlwcGxlIGVsZW1lbnRzLiovXG5AbWl4aW4gbWF0LXJpcHBsZS1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQtYmFzZTogbWFwLWdldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG5cbiAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgLy8gSWYgdGhlIHJpcHBsZSBjb2xvciBpcyByZXNvbHZlcyB0byBhIGNvbG9yICp0eXBlKiwgd2UgY2FuIHVzZSBpdCBkaXJlY3RseSwgb3RoZXJ3aXNlXG4gICAgLy8gKGUuZy4gaXQgcmVzb2x2ZXMgdG8gYSBDU1MgdmFyaWFibGUpIHdlIGZhbGwgYmFjayB0byB1c2luZyB0aGUgY29sb3IgYW5kIHNldHRpbmcgYW4gb3BhY2l0eS5cbiAgICBAaWYgKHR5cGUtb2YoJGZvcmVncm91bmQtYmFzZSkgPT0gY29sb3IpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGZvcmVncm91bmQtYmFzZSwgJG1hdC1yaXBwbGUtY29sb3Itb3BhY2l0eSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmb3JlZ3JvdW5kLWJhc2U7XG4gICAgICBvcGFjaXR5OiAkbWF0LXJpcHBsZS1jb2xvci1vcGFjaXR5O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXJpcHBsZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtcmlwcGxlJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXJpcHBsZS1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFRoaXMgbWl4aW4gZW5zdXJlcyBhbiBlbGVtZW50IHNwYW5zIHRvIGZpbGwgdGhlIG5lYXJlc3QgYW5jZXN0b3Igd2l0aCBkZWZpbmVkIHBvc2l0aW9uaW5nLlxuQG1peGluIG1hdC1maWxsIHtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cblxuLy8vIE1peGluIHRoYXQgdHVybnMgb24gc3Ryb25nIGZvY3VzIGluZGljYXRvcnMuXG4vLy9cbi8vLyBAZXhhbXBsZVxuLy8vICAgLm15LWFwcCB7XG4vLy8gICAgIEBpbmNsdWRlIG1hdC1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycygkY29uZmlnKTtcbi8vLyAgIH1cbkBtaXhpbiBtYXQtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMoJGNvbmZpZzogKCkpIHtcbiAgLy8gRGVmYXVsdCBmb2N1cyBpbmRpY2F0b3IgY29uZmlnLlxuICAkZGVmYXVsdC1jb25maWc6IChcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkLFxuICAgIGJvcmRlci13aWR0aDogM3B4LFxuICAgIGJvcmRlci1yYWRpdXM6IDRweCxcbiAgKTtcblxuICAvLyBNZXJnZSBkZWZhdWx0IGNvbmZpZyB3aXRoIHVzZXIgY29uZmlnLlxuICAkY29uZmlnOiBtYXAtbWVyZ2UoJGRlZmF1bHQtY29uZmlnLCAkY29uZmlnKTtcbiAgJGJvcmRlci1zdHlsZTogbWFwLWdldCgkY29uZmlnLCBib3JkZXItc3R5bGUpO1xuICAkYm9yZGVyLXdpZHRoOiBtYXAtZ2V0KCRjb25maWcsIGJvcmRlci13aWR0aCk7XG4gICRib3JkZXItcmFkaXVzOiBtYXAtZ2V0KCRjb25maWcsIGJvcmRlci1yYWRpdXMpO1xuXG4gIC8vIEJhc2Ugc3R5bGVzIGZvciBmb2N1cyBpbmRpY2F0b3JzLlxuICAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBtYXQtZmlsbCgpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgYm9yZGVyOiAkYm9yZGVyLXdpZHRoICRib3JkZXItc3R5bGUgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gIH1cblxuICAvLyBCeSBkZWZhdWx0LCBhbGwgZm9jdXMgaW5kaWNhdG9ycyBhcmUgZmx1c2ggd2l0aCB0aGUgYm91bmRpbmcgYm94IG9mIHRoZWlyXG4gIC8vIGhvc3QgZWxlbWVudC4gRm9yIHBhcnRpY3VsYXIgZWxlbWVudHMgKGxpc3RlZCBiZWxvdyksIGRlZmF1bHQgaW5zZXQvb2Zmc2V0XG4gIC8vIHZhbHVlcyBhcmUgbmVjZXNzYXJ5IHRvIGVuc3VyZSB0aGF0IHRoZSBmb2N1cyBpbmRpY2F0b3IgaXMgc3VmZmljaWVudGx5XG4gIC8vIGNvbnRyYXN0aXZlIGFuZCByZW5kZXJzIGFwcHJvcHJpYXRlbHkuXG5cbiAgLm1hdC1mb2N1cy1pbmRpY2F0b3IubWF0LWZsYXQtYnV0dG9uOjpiZWZvcmUsXG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yLm1hdC1yYWlzZWQtYnV0dG9uOjpiZWZvcmUsXG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yLm1hdC1mYWI6OmJlZm9yZSxcbiAgLm1hdC1mb2N1cy1pbmRpY2F0b3IubWF0LW1pbmktZmFiOjpiZWZvcmUsXG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yLm1hdC1jaGlwOjpiZWZvcmUsXG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yLm1hdC1zb3J0LWhlYWRlci1jb250YWluZXI6OmJlZm9yZSB7XG4gICAgbWFyZ2luOiAtKCRib3JkZXItd2lkdGggKyAycHgpO1xuICB9XG5cbiAgLm1hdC1mb2N1cy1pbmRpY2F0b3IubWF0LXN0cm9rZWQtYnV0dG9uOjpiZWZvcmUsXG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudDo6YmVmb3JlIHtcbiAgICBtYXJnaW46IC0oJGJvcmRlci13aWR0aCArIDNweCk7XG4gIH1cblxuICAubWF0LWZvY3VzLWluZGljYXRvci5tYXQtdGFiLWxpbms6OmJlZm9yZSxcbiAgLm1hdC1mb2N1cy1pbmRpY2F0b3IubWF0LXRhYi1sYWJlbDo6YmVmb3JlIHtcbiAgICBtYXJnaW46IDVweDtcbiAgfVxuXG4gIC8vIFJlbmRlciB0aGUgZm9jdXMgaW5kaWNhdG9yIG9uIGZvY3VzLiBEZWZpbmluZyBhIHBzZXVkbyBlbGVtZW50J3NcbiAgLy8gY29udGVudCB3aWxsIGNhdXNlIGl0IHRvIHJlbmRlci5cblxuICAvLyBDaGVja2JveGVzLCByYWRpb3MsIGFuZCBzbGlkZSB0b2dnbGVzIHJlbmRlciBmb2N1cyBpbmRpY2F0b3JzIHdoZW4gdGhlXG4gIC8vIGFzc29jaWF0ZWQgdmlzdWFsbHktaGlkZGVuIGlucHV0IGlzIGZvY3VzZWQuXG4gIC5tYXQtY2hlY2tib3gtaW5wdXQ6Zm9jdXMgfiAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLFxuICAubWF0LXJhZGlvLWlucHV0OmZvY3VzIH4gLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSxcbiAgLm1hdC1zbGlkZS10b2dnbGUtaW5wdXQ6Zm9jdXMgfiAubWF0LXNsaWRlLXRvZ2dsZS10aHVtYi1jb250YWluZXIgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSxcblxuICAvLyBGb3Igb3B0aW9ucywgcmVuZGVyIHRoZSBmb2N1cyBpbmRpY2F0b3Igd2hlbiB0aGUgY2xhc3MgLm1hdC1hY3RpdmVcbiAgLy8gaXMgcHJlc2VudC5cbiAgLm1hdC1mb2N1cy1pbmRpY2F0b3IubWF0LW9wdGlvbi5tYXQtYWN0aXZlOjpiZWZvcmUsXG5cbiAgLy8gRm9yIGNhbGVuZGFyIGNlbGxzLCByZW5kZXIgdGhlIGZvY3VzIGluZGljYXRvciB3aGVuIHRoZSBwYXJlbnQgY2VsbCBpc1xuICAvLyBmb2N1c2VkLlxuICAubWF0LWNhbGVuZGFyLWJvZHktY2VsbDpmb2N1cyAubWF0LWZvY3VzLWluZGljYXRvcjo6YmVmb3JlLFxuXG4gIC8vIEZvciBhbGwgb3RoZXIgY29tcG9uZW50cywgcmVuZGVyIHRoZSBmb2N1cyBpbmRpY2F0b3Igb24gZm9jdXMuXG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yOmZvY3VzOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICB9XG59XG5cbi8vIE1peGluIHRoYXQgYXBwbGllcyB0aGUgYm9yZGVyIGNvbG9yIGZvciB0aGUgZm9jdXMgaW5kaWNhdG9ycy5cbkBtaXhpbiBfbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLWJvcmRlci1jb2xvcigkY29sb3IpIHtcbiAgLm1hdC1mb2N1cy1pbmRpY2F0b3I6OmJlZm9yZSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuQG1peGluIG1hdC1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICBAaW5jbHVkZSBfbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLWJvcmRlci1jb2xvcihtYXQtY29sb3IobWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KSkpO1xufVxuXG4vLy8gTWl4aW4gdGhhdCBzZXRzIHRoZSBjb2xvciBvZiB0aGUgZm9jdXMgaW5kaWNhdG9ycy5cbi8vL1xuLy8vIEBwYXJhbSB7Y29sb3J8bWFwfSAkdGhlbWUtb3ItY29sb3Jcbi8vLyAgIElmIHRoZW1lLCBmb2N1cyBpbmRpY2F0b3JzIGFyZSBzZXQgdG8gdGhlIHByaW1hcnkgY29sb3Igb2YgdGhlIHRoZW1lLiBJZlxuLy8vICAgY29sb3IsIGZvY3VzIGluZGljYXRvcnMgYXJlIHNldCB0byB0aGF0IGNvbG9yLlxuLy8vXG4vLy8gQGV4YW1wbGVcbi8vLyAgIC5kZW1vLWRhcmstdGhlbWUge1xuLy8vICAgICBAaW5jbHVkZSBtYXQtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtdGhlbWUoJGRhcmstdGhlbWUtbWFwKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlXG4vLy8gICAuZGVtby1yZWQtdGhlbWUge1xuLy8vICAgICBAaW5jbHVkZSBtYXQtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtdGhlbWUoI2YwMCk7XG4vLy8gICB9XG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF0ZXJpYWwvdGhlbWUtbWl4aW4tYXBpICovXG5AbWl4aW4gbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLXRoZW1lKCR0aGVtZS1vci1jb2xvcikge1xuICBAaWYgdHlwZS1vZigkdGhlbWUtb3ItY29sb3IpICE9ICdtYXAnIHtcbiAgICBAaW5jbHVkZSBfbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLWJvcmRlci1jb2xvcigkdGhlbWUtb3ItY29sb3IpO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yKTtcbiAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycycpIHtcbiAgICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICAgIEBpbmNsdWRlIG1hdC1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy1jb2xvcigkY29sb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBNaXhpbiB0aGF0IGVuc3VyZXMgZm9jdXMgaW5kaWNhdG9yIGhvc3QgZWxlbWVudHMgYXJlIHBvc2l0aW9uZWQgc28gdGhhdCB0aGUgZm9jdXMgaW5kaWNhdG9yXG4vLyBwc2V1ZG8gZWxlbWVudCB3aXRoaW4gaXMgcG9zaXRpb25lZCByZWxhdGl2ZSB0byB0aGUgaG9zdC4gUHJpdmF0ZSBtaXhpbiBpbmNsdWRlZCB3aXRoaW5cbi8vIGBtYXQtY29yZWAuXG5AbWl4aW4gbWF0LXByaXZhdGUtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtcG9zaXRpb25pbmcoKSB7XG4gIC5tYXQtZm9jdXMtaW5kaWNhdG9yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbn1cblxuXG5cbi8vIFV0aWxpdHkgZm9yIGZldGNoaW5nIGEgbmVzdGVkIHZhbHVlIGZyb20gYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgJG5hbWUpIHtcbiAgQHJldHVybiBtYXAtZ2V0KG1hcC1nZXQoJGNvbmZpZywgJGxldmVsKSwgJG5hbWUpO1xufVxuXG4vLyBHZXRzIHRoZSBmb250IHNpemUgZm9yIGEgbGV2ZWwgaW5zaWRlIGEgdHlwb2dyYXBoeSBjb25maWcuXG5AZnVuY3Rpb24gbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCAkbGV2ZWwpIHtcbiAgQHJldHVybiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgZm9udC1zaXplKTtcbn1cblxuLy8gR2V0cyB0aGUgbGluZSBoZWlnaHQgZm9yIGEgbGV2ZWwgaW5zaWRlIGEgdHlwb2dyYXBoeSBjb25maWcuXG5AZnVuY3Rpb24gbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsICRsZXZlbCkge1xuICBAcmV0dXJuIF9tYXQtZ2V0LXR5cGUtdmFsdWUoJGNvbmZpZywgJGxldmVsLCBsaW5lLWhlaWdodCk7XG59XG5cbi8vIEdldHMgdGhlIGZvbnQgd2VpZ2h0IGZvciBhIGxldmVsIGluc2lkZSBhIHR5cG9ncmFwaHkgY29uZmlnLlxuQGZ1bmN0aW9uIG1hdC1mb250LXdlaWdodCgkY29uZmlnLCAkbGV2ZWwpIHtcbiAgQHJldHVybiBfbWF0LWdldC10eXBlLXZhbHVlKCRjb25maWcsICRsZXZlbCwgZm9udC13ZWlnaHQpO1xufVxuXG4vLyBHZXRzIHRoZSBsZXR0ZXIgc3BhY2luZyBmb3IgYSBsZXZlbCBpbnNpZGUgYSB0eXBvZ3JhcGh5IGNvbmZpZy5cbkBmdW5jdGlvbiBtYXQtbGV0dGVyLXNwYWNpbmcoJGNvbmZpZywgJGxldmVsKSB7XG4gIEByZXR1cm4gX21hdC1nZXQtdHlwZS12YWx1ZSgkY29uZmlnLCAkbGV2ZWwsIGxldHRlci1zcGFjaW5nKTtcbn1cblxuLy8gR2V0cyB0aGUgZm9udC1mYW1pbHkgZnJvbSBhIHR5cG9ncmFwaHkgY29uZmlnIGFuZCByZW1vdmVzIHRoZSBxdW90ZXMgYXJvdW5kIGl0LlxuQGZ1bmN0aW9uIG1hdC1mb250LWZhbWlseSgkY29uZmlnLCAkbGV2ZWw6IG51bGwpIHtcbiAgJGZvbnQtZmFtaWx5OiBtYXAtZ2V0KCRjb25maWcsIGZvbnQtZmFtaWx5KTtcblxuICBAaWYgJGxldmVsICE9IG51bGwge1xuICAgICRmb250LWZhbWlseTogX21hdC1nZXQtdHlwZS12YWx1ZSgkY29uZmlnLCAkbGV2ZWwsIGZvbnQtZmFtaWx5KTtcbiAgfVxuXG4gIC8vIEd1YXJkIGFnYWluc3QgdW5xdW90aW5nIG5vbi1zdHJpbmcgdmFsdWVzLCBiZWNhdXNlIGl0J3MgZGVwcmVjYXRlZC5cbiAgQHJldHVybiBpZih0eXBlLW9mKCRmb250LWZhbWlseSkgPT0gc3RyaW5nLCB1bnF1b3RlKCRmb250LWZhbWlseSksICRmb250LWZhbWlseSk7XG59XG5cbi8vIE91dHB1dHMgdGhlIHNob3J0aGFuZCBgZm9udGAgQ1NTIHByb3BlcnR5LCBiYXNlZCBvbiBhIHNldCBvZiB0eXBvZ3JhcGh5IHZhbHVlcy4gRmFsbHMgYmFjayB0b1xuLy8gdGhlIGluZGl2aWR1YWwgcHJvcGVydGllcyBpZiBhIHZhbHVlIHRoYXQgaXNuJ3QgYWxsb3dlZCBpbiB0aGUgc2hvcnRoYW5kIGlzIHBhc3NlZCBpbi5cbkBtaXhpbiBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZCgkZm9udC1zaXplLCAkZm9udC13ZWlnaHQsICRsaW5lLWhlaWdodCwgJGZvbnQtZmFtaWx5KSB7XG4gIC8vIElmIGFueSBvZiB0aGUgdmFsdWVzIGFyZSBzZXQgdG8gYGluaGVyaXRgLCB3ZSBjYW4ndCB1c2UgdGhlIHNob3J0aGFuZFxuICAvLyBzbyB3ZSBmYWxsIGJhY2sgdG8gcGFzc2luZyBpbiB0aGUgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzLlxuICBAaWYgKCRmb250LXNpemUgPT0gaW5oZXJpdCBvclxuICAgICAgICRmb250LXdlaWdodCA9PSBpbmhlcml0IG9yXG4gICAgICAgJGxpbmUtaGVpZ2h0ID09IGluaGVyaXQgb3JcbiAgICAgICAkZm9udC1mYW1pbHkgPT0gaW5oZXJpdCBvclxuICAgICAgICRmb250LXNpemUgPT0gbnVsbCBvclxuICAgICAgICRmb250LXdlaWdodCA9PSBudWxsIG9yXG4gICAgICAgJGxpbmUtaGVpZ2h0ID09IG51bGwgb3JcbiAgICAgICAkZm9udC1mYW1pbHkgPT0gbnVsbCkge1xuXG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQ7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBPdGhlcndpc2UgdXNlIHRoZSBzaG9ydGhhbmQgYGZvbnRgLCBiZWNhdXNlIGl0J3MgdGhlIGxlYXN0IGFtb3VudCBvZiBieXRlcy4gTm90ZVxuICAgIC8vIHRoYXQgd2UgbmVlZCB0byB1c2UgaW50ZXJwb2xhdGlvbiBmb3IgYGZvbnQtc2l6ZS9saW5lLWhlaWdodGAgaW4gb3JkZXIgdG8gcHJldmVudFxuICAgIC8vIFNhc3MgZnJvbSBkaXZpZGluZyB0aGUgdHdvIHZhbHVlcy5cbiAgICBmb250OiAkZm9udC13ZWlnaHQgI3skZm9udC1zaXplfS8jeyRsaW5lLWhlaWdodH0gJGZvbnQtZmFtaWx5O1xuICB9XG59XG5cbi8vIENvbnZlcnRzIGEgdHlwb2dyYXBoeSBsZXZlbCBpbnRvIENTUyBzdHlsZXMuXG5AbWl4aW4gbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsICRsZXZlbCkge1xuICAkZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsICRsZXZlbCk7XG4gICRmb250LXdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsICRsZXZlbCk7XG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsICRsZXZlbCk7XG4gICRmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsICRsZXZlbCk7XG5cbiAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktZm9udC1zaG9ydGhhbmQoJGZvbnQtc2l6ZSwgJGZvbnQtd2VpZ2h0LCAkbGluZS1oZWlnaHQsICRmb250LWZhbWlseSk7XG4gIGxldHRlci1zcGFjaW5nOiBtYXQtbGV0dGVyLXNwYWNpbmcoJGNvbmZpZywgJGxldmVsKTtcbn1cblxuXG5AbWl4aW4gbWF0LW9wdGlvbi1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuXG4gIC5tYXQtb3B0aW9uIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICY6aG92ZXI6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSxcbiAgICAmOmZvY3VzOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgfVxuXG4gICAgLy8gSW4gbXVsdGlwbGUgbW9kZSB0aGVyZSBpcyBhIGNoZWNrYm94IHRvIHNob3cgdGhhdCB0aGUgb3B0aW9uIGlzIHNlbGVjdGVkLlxuICAgICYubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1tdWx0aXBsZSk6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyKTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3Zlcik7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAmLm1hdC1vcHRpb24tZGlzYWJsZWQge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaGludC10ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LXByaW1hcnkgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuICB9XG5cbiAgLm1hdC1hY2NlbnQgLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gIH1cblxuICAubWF0LXdhcm4gLm1hdC1vcHRpb24ubWF0LXNlbGVjdGVkOm5vdCgubWF0LW9wdGlvbi1kaXNhYmxlZCkge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtb3B0aW9uLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LW9wdGlvbiB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIHN1YmhlYWRpbmctMik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LW9wdGlvbi1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtb3B0aW9uLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1vcHRpb24nKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtb3B0aW9uLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtb3B0aW9uLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtb3B0aW9uLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1vcHRncm91cC1sYWJlbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1vcHRncm91cC1kaXNhYmxlZCAubWF0LW9wdGdyb3VwLWxhYmVsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtb3B0Z3JvdXAtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtb3B0Z3JvdXAtbGFiZWwge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTIpO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LW9wdGdyb3VwLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1vcHRncm91cC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtb3B0Z3JvdXAnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtb3B0Z3JvdXAtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1vcHRncm91cC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LW9wdGdyb3VwLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuQG1peGluIG1hdC1wc2V1ZG8tY2hlY2tib3gtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJGNvbmZpZywgaXMtZGFyayk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcblxuICAvLyBOT1RFKHRyYXZpc2thdWZtYW4pOiBXaGlsZSB0aGUgc3BlYyBjYWxscyBmb3IgdHJhbnNsdWNlbnQgYmxhY2tzL3doaXRlcyBmb3IgZGlzYWJsZWQgY29sb3JzLFxuICAvLyB0aGlzIGRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGVsZW1lbnRzIGxheWVyZWQgb24gdG9wIG9mIG9uZSBhbm90aGVyLiBUbyBnZXQgYXJvdW5kIHRoaXMgd2VcbiAgLy8gYmxlbmQgdGhlIGNvbG9ycyB0b2dldGhlciBiYXNlZCBvbiB0aGUgYmFzZSBjb2xvciBhbmQgdGhlIHRoZW1lIGJhY2tncm91bmQuXG4gICR3aGl0ZS0zMHBjdC1vcGFjaXR5LW9uLWRhcms6ICM2ODY4Njg7XG4gICRibGFjay0yNnBjdC1vcGFjaXR5LW9uLWxpZ2h0OiAjYjBiMGIwO1xuICAkZGlzYWJsZWQtY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCAkd2hpdGUtMzBwY3Qtb3BhY2l0eS1vbi1kYXJrLCAkYmxhY2stMjZwY3Qtb3BhY2l0eS1vbi1saWdodCk7XG4gICRjb2xvcmVkLWJveC1zZWxlY3RvcjogJy5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUnO1xuXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94IHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCksIHNlY29uZGFyeS10ZXh0KTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICBjb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1wcmltYXJ5IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtcHJpbWFyeSAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IobWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KSk7XG4gIH1cblxuICAvLyBEZWZhdWx0IHRvIHRoZSBhY2NlbnQgY29sb3IuIE5vdGUgdGhhdCB0aGUgcHNldWRvIGNoZWNrYm94ZXMgYXJlIG1lYW50IHRvIGluaGVyaXQgdGhlXG4gIC8vIHRoZW1lIGZyb20gdGhlaXIgcGFyZW50LCByYXRoZXIgdGhhbiBpbXBsZW1lbnRpbmcgdGhlaXIgb3duIHRoZW1pbmcsIHdoaWNoIGlzIHdoeSB3ZVxuICAvLyBkb24ndCBhdHRhY2ggdG8gdGhlIGBtYXQtKmAgY2xhc3Nlcy4gQWxzbyBub3RlIHRoYXQgdGhpcyBuZWVkcyB0byBiZSBiZWxvdyBgLm1hdC1wcmltYXJ5YFxuICAvLyBpbiBvcmRlciB0byBhbGxvdyBmb3IgdGhlIGNvbG9yIHRvIGJlIG92ZXJ3cml0dGVuIGlmIHRoZSBjaGVja2JveCBpcyBpbnNpZGUgYSBwYXJlbnQgdGhhdFxuICAvLyBoYXMgYG1hdC1hY2NlbnRgIGFuZCBpcyBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcGFyZW50IHRoYXQgaGFzIGBtYXQtcHJpbWFyeWAuXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUsXG4gIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtYWNjZW50IC5tYXQtcHNldWRvLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcihtYXAtZ2V0KCRjb25maWcsIGFjY2VudCkpO1xuICB9XG5cbiAgLm1hdC13YXJuIC5tYXQtcHNldWRvLWNoZWNrYm94LWNoZWNrZWQsXG4gIC5tYXQtd2FybiAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IobWFwLWdldCgkY29uZmlnLCB3YXJuKSk7XG4gIH1cblxuICAubWF0LXBzZXVkby1jaGVja2JveC1jaGVja2VkLFxuICAubWF0LXBzZXVkby1jaGVja2JveC1pbmRldGVybWluYXRlIHtcbiAgICAmLm1hdC1wc2V1ZG8tY2hlY2tib3gtZGlzYWJsZWQge1xuICAgICAgYmFja2dyb3VuZDogJGRpc2FibGVkLWNvbG9yO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXBzZXVkby1jaGVja2JveC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBfbWF0LXBzZXVkby1jaGVja2JveC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtcHNldWRvLWNoZWNrYm94LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1wc2V1ZG8tY2hlY2tib3gnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHNldWRvLWNoZWNrYm94LWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtcHNldWRvLWNoZWNrYm94LWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHNldWRvLWNoZWNrYm94LXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuLy8gUmVwcmVzZW50cyBhIHR5cG9ncmFwaHkgbGV2ZWwgZnJvbSB0aGUgTWF0ZXJpYWwgZGVzaWduIHNwZWMuXG5AZnVuY3Rpb24gbWF0LXR5cG9ncmFwaHktbGV2ZWwoXG4gICRmb250LXNpemUsXG4gICRsaW5lLWhlaWdodDogJGZvbnQtc2l6ZSxcbiAgJGZvbnQtd2VpZ2h0OiA0MDAsXG4gICRmb250LWZhbWlseTogbnVsbCxcbiAgJGxldHRlci1zcGFjaW5nOiBub3JtYWwpIHtcblxuICBAcmV0dXJuIChcbiAgICBmb250LXNpemU6ICRmb250LXNpemUsXG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodCxcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LFxuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHksXG4gICAgbGV0dGVyLXNwYWNpbmc6ICRsZXR0ZXItc3BhY2luZ1xuICApO1xufVxuXG4vLyBSZXByZXNlbnRzIGEgY29sbGVjdGlvbiBvZiB0eXBvZ3JhcGh5IGxldmVscy5cbi8vIERlZmF1bHRzIGNvbWUgZnJvbSBodHRwczovL21hdGVyaWFsLmlvL2d1aWRlbGluZXMvc3R5bGUvdHlwb2dyYXBoeS5odG1sXG4vLyBOb3RlOiBUaGUgc3BlYyBkb2Vzbid0IG1lbnRpb24gbGV0dGVyIHNwYWNpbmcuIFRoZSB2YWx1ZXMgaGVyZSBjb21lIGZyb21cbi8vIGV5ZWJhbGxpbmcgaXQgdW50aWwgaXQgbG9va2VkIGV4YWN0bHkgbGlrZSB0aGUgc3BlYyBleGFtcGxlcy5cbkBmdW5jdGlvbiBtYXQtdHlwb2dyYXBoeS1jb25maWcoXG4gICRmb250LWZhbWlseTogICAnUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWYnLFxuICAkZGlzcGxheS00OiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTEycHgsIDExMnB4LCAzMDAsICRsZXR0ZXItc3BhY2luZzogLTAuMDVlbSksXG4gICRkaXNwbGF5LTM6ICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCg1NnB4LCA1NnB4LCA0MDAsICRsZXR0ZXItc3BhY2luZzogLTAuMDJlbSksXG4gICRkaXNwbGF5LTI6ICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCg0NXB4LCA0OHB4LCA0MDAsICRsZXR0ZXItc3BhY2luZzogLTAuMDA1ZW0pLFxuICAkZGlzcGxheS0xOiAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMzRweCwgNDBweCwgNDAwKSxcbiAgJGhlYWRsaW5lOiAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDI0cHgsIDMycHgsIDQwMCksXG4gICR0aXRsZTogICAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgyMHB4LCAzMnB4LCA1MDApLFxuICAkc3ViaGVhZGluZy0yOiAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTZweCwgMjhweCwgNDAwKSxcbiAgJHN1YmhlYWRpbmctMTogIG1hdC10eXBvZ3JhcGh5LWxldmVsKDE1cHgsIDI0cHgsIDQwMCksXG4gICRib2R5LTI6ICAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNHB4LCAyNHB4LCA1MDApLFxuICAkYm9keS0xOiAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoMTRweCwgMjBweCwgNDAwKSxcbiAgJGNhcHRpb246ICAgICAgIG1hdC10eXBvZ3JhcGh5LWxldmVsKDEycHgsIDIwcHgsIDQwMCksXG4gICRidXR0b246ICAgICAgICBtYXQtdHlwb2dyYXBoeS1sZXZlbCgxNHB4LCAxNHB4LCA1MDApLFxuICAvLyBMaW5lLWhlaWdodCBtdXN0IGJlIHVuaXQtbGVzcyBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplLlxuICAkaW5wdXQ6ICAgICAgICAgbWF0LXR5cG9ncmFwaHktbGV2ZWwoaW5oZXJpdCwgMS4xMjUsIDQwMClcbikge1xuXG4gIC8vIERlY2xhcmUgYW4gaW5pdGlhbCBtYXAgd2l0aCBhbGwgb2YgdGhlIGxldmVscy5cbiAgJGNvbmZpZzogKFxuICAgIGRpc3BsYXktNDogICAgICAkZGlzcGxheS00LFxuICAgIGRpc3BsYXktMzogICAgICAkZGlzcGxheS0zLFxuICAgIGRpc3BsYXktMjogICAgICAkZGlzcGxheS0yLFxuICAgIGRpc3BsYXktMTogICAgICAkZGlzcGxheS0xLFxuICAgIGhlYWRsaW5lOiAgICAgICAkaGVhZGxpbmUsXG4gICAgdGl0bGU6ICAgICAgICAgICR0aXRsZSxcbiAgICBzdWJoZWFkaW5nLTI6ICAgJHN1YmhlYWRpbmctMixcbiAgICBzdWJoZWFkaW5nLTE6ICAgJHN1YmhlYWRpbmctMSxcbiAgICBib2R5LTI6ICAgICAgICAgJGJvZHktMixcbiAgICBib2R5LTE6ICAgICAgICAgJGJvZHktMSxcbiAgICBjYXB0aW9uOiAgICAgICAgJGNhcHRpb24sXG4gICAgYnV0dG9uOiAgICAgICAgICRidXR0b24sXG4gICAgaW5wdXQ6ICAgICAgICAgICRpbnB1dCxcbiAgKTtcblxuICAvLyBMb29wIHRocm91Z2ggdGhlIGxldmVscyBhbmQgc2V0IHRoZSBgZm9udC1mYW1pbHlgIG9mIHRoZSBvbmVzIHRoYXQgZG9uJ3QgaGF2ZSBvbmUgdG8gdGhlIGJhc2UuXG4gIC8vIE5vdGUgdGhhdCBTYXNzIGNhbid0IG1vZGlmeSBtYXBzIGluIHBsYWNlLCB3aGljaCBtZWFucyB0aGF0IHdlIG5lZWQgdG8gbWVyZ2UgYW5kIHJlLWFzc2lnbi5cbiAgQGVhY2ggJGtleSwgJGxldmVsIGluICRjb25maWcge1xuICAgIEBpZiBtYXAtZ2V0KCRsZXZlbCwgZm9udC1mYW1pbHkpID09IG51bGwge1xuICAgICAgJG5ldy1sZXZlbDogbWFwLW1lcmdlKCRsZXZlbCwgKGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHkpKTtcbiAgICAgICRjb25maWc6IG1hcC1tZXJnZSgkY29uZmlnLCAoJGtleTogJG5ldy1sZXZlbCkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFkZCB0aGUgYmFzZSBmb250IGZhbWlseSB0byB0aGUgY29uZmlnLlxuICBAcmV0dXJuIG1hcC1tZXJnZSgkY29uZmlnLCAoZm9udC1mYW1pbHk6ICRmb250LWZhbWlseSkpO1xufVxuXG4vLyBXaGV0aGVyIGEgY29uZmlnIGlzIGZvciB0aGUgTWF0ZXJpYWwgRGVzaWduIDIwMTggdHlwb2dyYXBoeSBzeXN0ZW0uXG5AZnVuY3Rpb24gbWF0LXByaXZhdGUtdHlwb2dyYXBoeS1pcy0yMDE4LWNvbmZpZygkY29uZmlnKSB7XG4gIEByZXR1cm4gbWFwLWdldCgkY29uZmlnLCBoZWFkbGluZS0xKSAhPSBudWxsO1xufVxuXG4vLyBXaGV0aGVyIGEgY29uZmlnIGlzIGZvciB0aGUgTWF0ZXJpYWwgRGVzaWduIDIwMTQgdHlwb2dyYXBoeSBzeXN0ZW0uXG5AZnVuY3Rpb24gbWF0LXByaXZhdGUtdHlwb2dyYXBoeS1pcy0yMDE0LWNvbmZpZygkY29uZmlnKSB7XG4gIEByZXR1cm4gbWFwLWdldCgkY29uZmlnLCBoZWFkbGluZSkgIT0gbnVsbDtcbn1cblxuLy8gR2l2ZW4gYSBjb25maWcgZm9yIGVpdGhlciB0aGUgMjAxNCBvciAyMDE4IE1hdGVyaWFsIERlc2lnbiB0eXBvZ3JhcGh5IHN5c3RlbSxcbi8vIHByb2R1Y2VzIGEgbm9ybWFsaXplZCB0eXBvZ3JhcGh5IGNvbmZpZyBmb3IgdGhlIDIwMTQgTWF0ZXJpYWwgRGVzaWduIHR5cG9ncmFwaHkgc3lzdGVtLlxuLy8gMjAxNCAtIGh0dHBzOi8vbWF0ZXJpYWwuaW8vYXJjaGl2ZS9ndWlkZWxpbmVzL3N0eWxlL3R5cG9ncmFwaHkuaHRtbCN0eXBvZ3JhcGh5LXN0eWxlc1xuLy8gMjAxOCAtIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL3R5cG9ncmFwaHkvdGhlLXR5cGUtc3lzdGVtLmh0bWwjdHlwZS1zY2FsZVxuQGZ1bmN0aW9uIG1hdC1wcml2YXRlLXR5cG9ncmFwaHktdG8tMjAxNC1jb25maWcoJGNvbmZpZykge1xuICBAaWYgbWF0LXByaXZhdGUtdHlwb2dyYXBoeS1pcy0yMDE4LWNvbmZpZygkY29uZmlnKSB7XG4gICAgQHJldHVybiBtYXQtdHlwb2dyYXBoeS1jb25maWcoXG4gICAgICAgICRkaXNwbGF5LTQ6IG1hcC1nZXQoJGNvbmZpZywgaGVhZGxpbmUtMSksXG4gICAgICAgICRkaXNwbGF5LTM6IG1hcC1nZXQoJGNvbmZpZywgaGVhZGxpbmUtMiksXG4gICAgICAgICRkaXNwbGF5LTI6IG1hcC1nZXQoJGNvbmZpZywgaGVhZGxpbmUtMyksXG4gICAgICAgICRkaXNwbGF5LTE6IG1hcC1nZXQoJGNvbmZpZywgaGVhZGxpbmUtNCksXG4gICAgICAgICRoZWFkbGluZTogbWFwLWdldCgkY29uZmlnLCBoZWFkbGluZS01KSxcbiAgICAgICAgJHRpdGxlOiBtYXAtZ2V0KCRjb25maWcsIGhlYWRsaW5lLTYpLFxuICAgICAgICAkc3ViaGVhZGluZy0yOiBtYXAtZ2V0KCRjb25maWcsIHN1YnRpdGxlLTEpLFxuICAgICAgICAkc3ViaGVhZGluZy0xOiBtYXAtZ2V0KCRjb25maWcsIHN1YnRpdGxlLTIpLFxuICAgICAgICAkYm9keS0yOiBtYXAtZ2V0KCRjb25maWcsIGJvZHktMSksXG4gICAgICAgICRib2R5LTE6IG1hcC1nZXQoJGNvbmZpZywgYm9keS0yKSxcbiAgICAgICAgJGJ1dHRvbjogbWFwLWdldCgkY29uZmlnLCBidXR0b24pLFxuICAgICAgICAkY2FwdGlvbjogbWFwLWdldCgkY29uZmlnLCBjYXB0aW9uKSxcbiAgICApO1xuICB9XG4gIEByZXR1cm4gJGNvbmZpZztcbn1cblxuLy8gR2l2ZW4gYSBjb25maWcgZm9yIGVpdGhlciB0aGUgMjAxNCBvciAyMDE4IE1hdGVyaWFsIERlc2lnbiB0eXBvZ3JhcGh5IHN5c3RlbSxcbi8vIHByb2R1Y2VzIGEgbm9ybWFsaXplZCB0eXBvZ3JhcGh5IGNvbmZpZyBmb3IgdGhlIDIwMTggTWF0ZXJpYWwgRGVzaWduIHR5cG9ncmFwaHkgc3lzdGVtLlxuLy8gMjAxNCAtIGh0dHBzOi8vbWF0ZXJpYWwuaW8vYXJjaGl2ZS9ndWlkZWxpbmVzL3N0eWxlL3R5cG9ncmFwaHkuaHRtbCN0eXBvZ3JhcGh5LXN0eWxlc1xuLy8gMjAxOCAtIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL3R5cG9ncmFwaHkvdGhlLXR5cGUtc3lzdGVtLmh0bWwjdHlwZS1zY2FsZVxuQGZ1bmN0aW9uIG1hdC1wcml2YXRlLXR5cG9ncmFwaHktdG8tMjAxOC1jb25maWcoJGNvbmZpZykge1xuICBAaWYgbWF0LXByaXZhdGUtdHlwb2dyYXBoeS1pcy0yMDE0LWNvbmZpZygkY29uZmlnKSB7XG4gICAgQHJldHVybiAoXG4gICAgICAgIGhlYWRsaW5lLTE6IG1hcC1nZXQoJGNvbmZpZywgZGlzcGxheS00KSxcbiAgICAgICAgaGVhZGxpbmUtMjogbWFwLWdldCgkY29uZmlnLCBkaXNwbGF5LTMpLFxuICAgICAgICBoZWFkbGluZS0zOiBtYXAtZ2V0KCRjb25maWcsIGRpc3BsYXktMiksXG4gICAgICAgIGhlYWRsaW5lLTQ6IG1hcC1nZXQoJGNvbmZpZywgZGlzcGxheS0xKSxcbiAgICAgICAgaGVhZGxpbmUtNTogbWFwLWdldCgkY29uZmlnLCBoZWFkbGluZSksXG4gICAgICAgIGhlYWRsaW5lLTY6IG1hcC1nZXQoJGNvbmZpZywgdGl0bGUpLFxuICAgICAgICBzdWJ0aXRsZS0xOiBtYXAtZ2V0KCRjb25maWcsIHN1YmhlYWRpbmctMiksXG4gICAgICAgIHN1YnRpdGxlLTI6IG1hcC1nZXQoJGNvbmZpZywgc3ViaGVhZGluZy0xKSxcbiAgICAgICAgYm9keS0xOiBtYXAtZ2V0KCRjb25maWcsIGJvZHktMiksXG4gICAgICAgIGJvZHktMjogbWFwLWdldCgkY29uZmlnLCBib2R5LTEpLFxuICAgICAgICBidXR0b246IG1hcC1nZXQoJGNvbmZpZywgYnV0dG9uKSxcbiAgICAgICAgY2FwdGlvbjogbWFwLWdldCgkY29uZmlnLCBjYXB0aW9uKSxcbiAgICApO1xuICB9XG4gIEByZXR1cm4gJGNvbmZpZztcbn1cblxuLy8gQWRkcyB0aGUgYmFzZSB0eXBvZ3JhcGh5IHN0eWxlcywgYmFzZWQgb24gYSBjb25maWcuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF0ZXJpYWwvdGhlbWUtbWl4aW4tYXBpICovXG5AbWl4aW4gbWF0LWJhc2UtdHlwb2dyYXBoeSgkY29uZmlnLCAkc2VsZWN0b3I6ICcubWF0LXR5cG9ncmFwaHknKSB7XG4gIC5tYXQtaDEsIC5tYXQtaGVhZGxpbmUsICN7JHNlbGVjdG9yfSBoMSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGhlYWRsaW5lKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLm1hdC1oMiwgLm1hdC10aXRsZSwgI3skc2VsZWN0b3J9IGgyIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgdGl0bGUpO1xuICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gIH1cblxuICAubWF0LWgzLCAubWF0LXN1YmhlYWRpbmctMiwgI3skc2VsZWN0b3J9IGgzIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xuICB9XG5cbiAgLm1hdC1oNCwgLm1hdC1zdWJoZWFkaW5nLTEsICN7JHNlbGVjdG9yfSBoNCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIHN1YmhlYWRpbmctMSk7XG4gICAgbWFyZ2luOiAwIDAgMTZweDtcbiAgfVxuXG4gIC8vIE5vdGU6IHRoZSBzcGVjIGRvZXNuJ3QgaGF2ZSBhbnl0aGluZyB0aGF0IHdvdWxkIGNvcnJlc3BvbmQgdG8gaDUgYW5kIGg2LCBidXQgd2UgYWRkIHRoZXNlIGZvclxuICAvLyBjb25zaXN0ZW5jeS4gVGhlIGZvbnQgc2l6ZXMgY29tZSBmcm9tIHRoZSBDaHJvbWUgdXNlciBhZ2VudCBzdHlsZXMgd2hpY2ggaGF2ZSBoNSBhdCAwLjgzZW1cbiAgLy8gYW5kIGg2IGF0IDAuNjdlbS5cbiAgLm1hdC1oNSwgI3skc2VsZWN0b3J9IGg1IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1mb250LXNob3J0aGFuZChcbiAgICAgICAvLyBjYWxjIGlzIHVzZWQgaGVyZSB0byBzdXBwb3J0IGNzcyB2YXJpYWJsZXNcbiAgICAgIGNhbGMoI3ttYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSl9ICogMC44MyksXG4gICAgICBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBib2R5LTEpLFxuICAgICAgbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMSlcbiAgICApO1xuXG4gICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgfVxuXG4gIC5tYXQtaDYsICN7JHNlbGVjdG9yfSBoNiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktZm9udC1zaG9ydGhhbmQoXG4gICAgICAgLy8gY2FsYyBpcyB1c2VkIGhlcmUgdG8gc3VwcG9ydCBjc3MgdmFyaWFibGVzXG4gICAgICBjYWxjKCN7bWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpfSAqIDAuNjcpLFxuICAgICAgbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSksXG4gICAgICBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgYm9keS0xKSxcbiAgICAgIG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBib2R5LTEpXG4gICAgKTtcblxuICAgIG1hcmdpbjogMCAwIDEycHg7XG4gIH1cblxuICAubWF0LWJvZHktc3Ryb25nLCAubWF0LWJvZHktMiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGJvZHktMik7XG4gIH1cblxuICAubWF0LWJvZHksIC5tYXQtYm9keS0xLCAjeyRzZWxlY3Rvcn0ge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuXG4gICAgcCB7XG4gICAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc21hbGwsIC5tYXQtY2FwdGlvbiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGNhcHRpb24pO1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTQsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktNCB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktNCk7XG4gICAgbWFyZ2luOiAwIDAgNTZweDtcbiAgfVxuXG4gIC5tYXQtZGlzcGxheS0zLCAjeyRzZWxlY3Rvcn0gLm1hdC1kaXNwbGF5LTMge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBkaXNwbGF5LTMpO1xuICAgIG1hcmdpbjogMCAwIDY0cHg7XG4gIH1cblxuICAubWF0LWRpc3BsYXktMiwgI3skc2VsZWN0b3J9IC5tYXQtZGlzcGxheS0yIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgZGlzcGxheS0yKTtcbiAgICBtYXJnaW46IDAgMCA2NHB4O1xuICB9XG5cbiAgLm1hdC1kaXNwbGF5LTEsICN7JHNlbGVjdG9yfSAubWF0LWRpc3BsYXktMSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIGRpc3BsYXktMSk7XG4gICAgbWFyZ2luOiAwIDAgNjRweDtcbiAgfVxufVxuXG5cblxuXG5AbWl4aW4gbWF0LWF1dG9jb21wbGV0ZS1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG5cbiAgLm1hdC1hdXRvY29tcGxldGUtcGFuZWwge1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbig0LCAkY29uZmlnKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgLy8gU2VsZWN0ZWQgb3B0aW9ucyBpbiBhdXRvY29tcGxldGVzIHNob3VsZCBub3QgYmUgZ3JheSwgYnV0IHdlXG4gICAgLy8gb25seSB3YW50IHRvIG92ZXJyaWRlIHRoZSBiYWNrZ3JvdW5kIGZvciBzZWxlY3RlZCBvcHRpb25zIGlmXG4gICAgLy8gdGhleSBhcmUgKm5vdCogaW4gaG92ZXIgb3IgZm9jdXMgc3RhdGUuIFRoaXMgY2hhbmdlIGhhcyB0byBiZVxuICAgIC8vIG1hZGUgaGVyZSBiZWNhdXNlIGJhc2Ugb3B0aW9uIHN0eWxlcyBhcmUgc2hhcmVkIGJldHdlZW4gdGhlXG4gICAgLy8gYXV0b2NvbXBsZXRlIGFuZCB0aGUgc2VsZWN0LlxuICAgIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1hY3RpdmUpOm5vdCg6aG92ZXIpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG5cbiAgICAgICY6bm90KC5tYXQtb3B0aW9uLWRpc2FibGVkKSB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWF1dG9jb21wbGV0ZS10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBfbWF0LWF1dG9jb21wbGV0ZS1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtYXV0b2NvbXBsZXRlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1hdXRvY29tcGxldGUnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtYXV0b2NvbXBsZXRlLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtYXV0b2NvbXBsZXRlLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG4vLyBUaGlzIGNvbnRhaW5zIGFsbCBvZiB0aGUgc3R5bGVzIGZvciB0aGUgYmFkZ2Vcbi8vIHJhdGhlciB0aGFuIGp1c3QgdGhlIGNvbG9yL3RoZW1lIGJlY2F1c2Ugb2Zcbi8vIG5vIHN0eWxlIHNoZWV0IHN1cHBvcnQgZm9yIGRpcmVjdGl2ZXMuXG5cblxuXG5cblxuJG1hdC1iYWRnZS1mb250LXNpemU6IDEycHg7XG4kbWF0LWJhZGdlLWZvbnQtd2VpZ2h0OiA2MDA7XG4kbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZTogMjJweCAhZGVmYXVsdDtcbiRtYXQtYmFkZ2Utc21hbGwtc2l6ZTogJG1hdC1iYWRnZS1kZWZhdWx0LXNpemUgLSA2O1xuJG1hdC1iYWRnZS1sYXJnZS1zaXplOiAkbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZSArIDY7XG5cbi8vIE1peGluIGZvciBidWlsZGluZyBvZmZzZXQgZ2l2ZW4gZGlmZmVyZW50IHNpemVzXG5AbWl4aW4gX21hdC1iYWRnZS1zaXplKCRzaXplKSB7XG4gIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgd2lkdGg6ICRzaXplO1xuICAgIGhlaWdodDogJHNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRzaXplO1xuICB9XG5cbiAgJi5tYXQtYmFkZ2UtYWJvdmUge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICB0b3A6IC0kc2l6ZSAvIDI7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtYmFkZ2UtYmVsb3cge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBib3R0b206IC0kc2l6ZSAvIDI7XG4gICAgfVxuICB9XG5cbiAgJi5tYXQtYmFkZ2UtYmVmb3JlIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgbGVmdDogLSRzaXplO1xuICAgIH1cbiAgfVxuXG4gIFtkaXI9J3J0bCddICYubWF0LWJhZGdlLWJlZm9yZSB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICByaWdodDogLSRzaXplO1xuICAgIH1cbiAgfVxuXG4gICYubWF0LWJhZGdlLWFmdGVyIHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgcmlnaHQ6IC0kc2l6ZTtcbiAgICB9XG4gIH1cblxuICBbZGlyPSdydGwnXSAmLm1hdC1iYWRnZS1hZnRlciB7XG4gICAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgbGVmdDogLSRzaXplO1xuICAgIH1cbiAgfVxuXG4gICYubWF0LWJhZGdlLW92ZXJsYXAge1xuICAgICYubWF0LWJhZGdlLWJlZm9yZSB7XG4gICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICBsZWZ0OiAtJHNpemUgLyAyO1xuICAgICAgfVxuICAgIH1cblxuICAgIFtkaXI9J3J0bCddICYubWF0LWJhZGdlLWJlZm9yZSB7XG4gICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICByaWdodDogLSRzaXplIC8gMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1iYWRnZS1hZnRlciB7XG4gICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICByaWdodDogLSRzaXplIC8gMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBbZGlyPSdydGwnXSAmLm1hdC1iYWRnZS1hZnRlciB7XG4gICAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgbGVmdDogLSRzaXplIC8gMjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1iYWRnZS1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRwcmltYXJ5KTtcblxuICAgIEBpbmNsdWRlIGNkay1oaWdoLWNvbnRyYXN0KGFjdGl2ZSwgb2ZmKSB7XG4gICAgICBvdXRsaW5lOiBzb2xpZCAxcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2UtYWNjZW50IHtcbiAgICAubWF0LWJhZGdlLWNvbnRlbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJhZGdlLXdhcm4ge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG5cbiAgLm1hdC1iYWRnZS1oaWRkZW4ge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtYmFkZ2UtZGlzYWJsZWQge1xuICAgIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgICAkYXBwLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2JhY2tncm91bmQnKTtcbiAgICAgICRiYWRnZS1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24pO1xuXG4gICAgICAvLyBUaGUgZGlzYWJsZWQgY29sb3IgdXN1YWxseSBoYXMgc29tZSBraW5kIG9mIG9wYWNpdHksIGJ1dCBiZWNhdXNlIHRoZSBiYWRnZSBpcyBvdmVybGF5ZWRcbiAgICAgIC8vIG9uIHRvcCBvZiBzb21ldGhpbmcgZWxzZSwgaXQgd29uJ3QgbG9vayBnb29kIGlmIGl0J3Mgb3BhcXVlLiBJZiBpdCBpcyBhIGNvbG9yICp0eXBlKixcbiAgICAgIC8vIHdlIGNvbnZlcnQgaXQgaW50byBhIHNvbGlkIGNvbG9yIGJ5IHRha2luZyB0aGUgb3BhY2l0eSBmcm9tIHRoZSByZ2JhIHZhbHVlIGFuZCB1c2luZ1xuICAgICAgLy8gdGhlIHZhbHVlIHRvIGRldGVybWluZSB0aGUgcGVyY2VudGFnZSBvZiB0aGUgYmFja2dyb3VuZCB0byBwdXQgaW50byBmb3JlZ3JvdW5kIHdoZW5cbiAgICAgIC8vIG1peGluZyB0aGUgY29sb3JzIHRvZ2V0aGVyLlxuICAgICAgQGlmICh0eXBlLW9mKCRiYWRnZS1jb2xvcikgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGFwcC1iYWNrZ3JvdW5kKSA9PSBjb2xvcikge1xuICAgICAgICAkYmFkZ2Utb3BhY2l0eTogb3BhY2l0eSgkYmFkZ2UtY29sb3IpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBtaXgoJGFwcC1iYWNrZ3JvdW5kLCByZ2JhKCRiYWRnZS1jb2xvciwgMSksICgxIC0gJGJhZGdlLW9wYWNpdHkpICogMTAwJSk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRiYWRnZS1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cblxuICAubmctYW5pbWF0ZS1kaXNhYmxlZCAubWF0LWJhZGdlLWNvbnRlbnQsXG4gIC5tYXQtYmFkZ2UtY29udGVudC5fbWF0LWFuaW1hdGlvbi1ub29wYWJsZSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuXG4gIC8vIFRoZSBhY3RpdmUgY2xhc3MgaXMgYWRkZWQgYWZ0ZXIgdGhlIGVsZW1lbnQgaXMgYWRkZWRcbiAgLy8gc28gaXQgY2FuIGFuaW1hdGUgc2NhbGUgdG8gZGVmYXVsdFxuICAubWF0LWJhZGdlLWNvbnRlbnQubWF0LWJhZGdlLWFjdGl2ZSB7XG4gICAgLy8gU2NhbGUgdG8gYG5vbmVgIGluc3RlYWQgb2YgYDFgIHRvIGF2b2lkIGJsdXJyeSB0ZXh0IGluIHNvbWUgYnJvd3NlcnMuXG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLm1hdC1iYWRnZS1zbWFsbCB7XG4gICAgQGluY2x1ZGUgX21hdC1iYWRnZS1zaXplKCRtYXQtYmFkZ2Utc21hbGwtc2l6ZSk7XG4gIH1cbiAgLm1hdC1iYWRnZS1tZWRpdW0ge1xuICAgIEBpbmNsdWRlIF9tYXQtYmFkZ2Utc2l6ZSgkbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZSk7XG4gIH1cbiAgLm1hdC1iYWRnZS1sYXJnZSB7XG4gICAgQGluY2x1ZGUgX21hdC1iYWRnZS1zaXplKCRtYXQtYmFkZ2UtbGFyZ2Utc2l6ZSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1iYWRnZS10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBmb250LXdlaWdodDogJG1hdC1iYWRnZS1mb250LXdlaWdodDtcbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplO1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWJhZGdlLXNtYWxsIC5tYXQtYmFkZ2UtY29udGVudCB7XG4gICAgLy8gU2V0IHRoZSBmb250IHNpemUgdG8gNzUlIG9mIHRoZSBvcmlnaW5hbC5cbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplICogMC43NTtcbiAgfVxuXG4gIC5tYXQtYmFkZ2UtbGFyZ2UgLm1hdC1iYWRnZS1jb250ZW50IHtcbiAgICBmb250LXNpemU6ICRtYXQtYmFkZ2UtZm9udC1zaXplICogMjtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1iYWRnZS1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtYmFkZ2UtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWJhZGdlJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWJhZGdlLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtYmFkZ2UtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1iYWRnZS10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtYm90dG9tLXNoZWV0LWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLWVsZXZhdGlvbigxNiwgJGNvbmZpZyk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYm90dG9tLXNoZWV0LXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LWJvdHRvbS1zaGVldC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcygkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LWJvdHRvbS1zaGVldC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtYm90dG9tLXNoZWV0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1ib3R0b20tc2hlZXQnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtYm90dG9tLXNoZWV0LWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtYm90dG9tLXNoZWV0LWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtYm90dG9tLXNoZWV0LXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbiRfbWF0LWJ1dHRvbi1yaXBwbGUtb3BhY2l0eTogMC4xO1xuXG4vLyBBcHBsaWVzIGEgZm9jdXMgc3R5bGUgdG8gYW4gbWF0LWJ1dHRvbiBlbGVtZW50IGZvciBlYWNoIG9mIHRoZSBzdXBwb3J0ZWQgcGFsZXR0ZXMuXG5AbWl4aW4gX21hdC1idXR0b24tZm9jdXMtb3ZlcmxheS1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcblxuICAmLm1hdC1wcmltYXJ5IC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gIH1cblxuICAmLm1hdC1hY2NlbnQgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICB9XG5cbiAgJi5tYXQtd2FybiAubWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHdhcm4pO1xuICB9XG5cbiAgJi5tYXQtYnV0dG9uLWRpc2FibGVkIC5tYXQtYnV0dG9uLWZvY3VzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi8vIEFwcGxpZXMgdGhlIGJhY2tncm91bmQgY29sb3IgZm9yIGEgcmlwcGxlLiBJZiB0aGUgdmFsdWUgcHJvdmlkZWQgaXMgbm90IGEgU2FzcyBjb2xvcixcbi8vIHdlIGFzc3VtZSB0aGF0IHdlJ3ZlIGJlZW4gZ2l2ZW4gYSBDU1MgdmFyaWFibGUuIFNpbmNlIHdlIGNhbid0IHBlcmZvcm0gYWxwaGEtYmxlbmRpbmdcbi8vIG9uIGEgQ1NTIHZhcmlhYmxlLCB3ZSBpbnN0ZWFkIGFkZCB0aGUgb3BhY2l0eSBkaXJlY3RseSB0byB0aGUgcmlwcGxlIGVsZW1lbnQuXG5AbWl4aW4gX21hdC1idXR0b24tcmlwcGxlLWJhY2tncm91bmQoJHBhbGV0dGUsICRodWUsICRvcGFjaXR5KSB7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsICRodWUsICRvcGFjaXR5KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG4gIEBpZiAodHlwZS1vZigkYmFja2dyb3VuZC1jb2xvcikgIT0gY29sb3IpIHtcbiAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1idXR0b24tcmlwcGxlLWNvbG9yKCR0aGVtZSwgJGh1ZSwgJG9wYWNpdHk6ICRfbWF0LWJ1dHRvbi1yaXBwbGUtb3BhY2l0eSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcblxuICAmLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXJpcHBsZS1iYWNrZ3JvdW5kKCRwcmltYXJ5LCAkaHVlLCAkb3BhY2l0eSk7XG4gIH1cblxuICAmLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgQGluY2x1ZGUgX21hdC1idXR0b24tcmlwcGxlLWJhY2tncm91bmQoJGFjY2VudCwgJGh1ZSwgJG9wYWNpdHkpO1xuICB9XG5cbiAgJi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi1yaXBwbGUtYmFja2dyb3VuZCgkd2FybiwgJGh1ZSwgJG9wYWNpdHkpO1xuICB9XG59XG5cbi8vIEFwcGxpZXMgYSBwcm9wZXJ0eSB0byBhbiBtYXQtYnV0dG9uIGVsZW1lbnQgZm9yIGVhY2ggb2YgdGhlIHN1cHBvcnRlZCBwYWxldHRlcy5cbkBtaXhpbiBfbWF0LWJ1dHRvbi10aGVtZS1wcm9wZXJ0eSgkdGhlbWUsICRwcm9wZXJ0eSwgJGh1ZSkge1xuICAkcHJpbWFyeTogbWFwLWdldCgkdGhlbWUsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCR0aGVtZSwgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJHRoZW1lLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJHRoZW1lLCBmb3JlZ3JvdW5kKTtcblxuICAmLm1hdC1wcmltYXJ5IHtcbiAgICAjeyRwcm9wZXJ0eX06IG1hdC1jb2xvcigkcHJpbWFyeSwgJGh1ZSk7XG4gIH1cbiAgJi5tYXQtYWNjZW50IHtcbiAgICAjeyRwcm9wZXJ0eX06IG1hdC1jb2xvcigkYWNjZW50LCAkaHVlKTtcbiAgfVxuICAmLm1hdC13YXJuIHtcbiAgICAjeyRwcm9wZXJ0eX06IG1hdC1jb2xvcigkd2FybiwgJGh1ZSk7XG4gIH1cblxuICAmLm1hdC1wcmltYXJ5LCAmLm1hdC1hY2NlbnQsICYubWF0LXdhcm4sICYubWF0LWJ1dHRvbi1kaXNhYmxlZCB7XG4gICAgJi5tYXQtYnV0dG9uLWRpc2FibGVkIHtcbiAgICAgICRwYWxldHRlOiBpZigkcHJvcGVydHkgPT0gJ2NvbG9yJywgJGZvcmVncm91bmQsICRiYWNrZ3JvdW5kKTtcbiAgICAgICN7JHByb3BlcnR5fTogbWF0LWNvbG9yKCRwYWxldHRlLCBkaXNhYmxlZC1idXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWJ1dHRvbi1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtYnV0dG9uLCAubWF0LWljb24tYnV0dG9uLCAubWF0LXN0cm9rZWQtYnV0dG9uIHtcbiAgICAvLyBCdXR0b25zIHdpdGhvdXQgYSBiYWNrZ3JvdW5kIGNvbG9yIHNob3VsZCBpbmhlcml0IHRoZSBmb250IGNvbG9yLiBUaGlzIGlzIG5lY2Vzc2FyeSB0b1xuICAgIC8vIGVuc3VyZSB0aGF0IHRoZSBidXR0b24gaXMgcmVhZGFibGUgb24gY3VzdG9tIGJhY2tncm91bmQgY29sb3JzLiBJdCdzIHdyb25nIHRvIGFsd2F5cyBhc3N1bWVcbiAgICAvLyB0aGF0IHRob3NlIGJ1dHRvbnMgYXJlIGFsd2F5cyBwbGFjZWQgaW5zaWRlIG9mIGNvbnRhaW5lcnMgd2l0aCB0aGUgZGVmYXVsdCBiYWNrZ3JvdW5kXG4gICAgLy8gY29sb3Igb2YgdGhlIHRoZW1lIChlLmcuIHRoZW1lZCB0b29sYmFycykuXG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi10aGVtZS1wcm9wZXJ0eSgkY29uZmlnLCAnY29sb3InLCB0ZXh0KTtcbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi1mb2N1cy1vdmVybGF5LWNvbG9yKCRjb25maWcpO1xuXG4gICAgLy8gU2V0dXAgdGhlIHJpcHBsZSBjb2xvciB0byBiZSBiYXNlZCBvbiB0aGUgdGV4dCBjb2xvci4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHJpcHBsZXNcbiAgICAvLyBhcmUgbWF0Y2hpbmcgd2l0aCB0aGUgY3VycmVudCB0aGVtZSBwYWxldHRlIGFuZCBhcmUgaW4gY29udHJhc3QgdG8gdGhlIGJhY2tncm91bmQgY29sb3JcbiAgICAvLyAoZS5nIGluIHRoZW1lZCB0b29sYmFycykuXG4gICAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBvcGFjaXR5OiAkX21hdC1idXR0b24tcmlwcGxlLW9wYWNpdHk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tZm9jdXMtb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZDogbWFwLWdldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gIH1cblxuICAvLyBOb3RlOiB0aGlzIG5lZWRzIGEgYml0IGV4dHJhIHNwZWNpZmljaXR5LCBiZWNhdXNlIHdlJ3JlIG5vdCBndWFyYW50ZWVkIHRoZSBpbmNsdXNpb25cbiAgLy8gb3JkZXIgb2YgdGhlIHRoZW1lIHN0eWxlcyBhbmQgdGhlIGJ1dHRvbiByZXNldCBtYXkgZW5kIHVwIHJlc2V0dGluZyB0aGlzIGFzIHdlbGwuXG4gIC5tYXQtc3Ryb2tlZC1idXR0b246bm90KC5tYXQtYnV0dG9uLWRpc2FibGVkKSB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1mbGF0LWJ1dHRvbiwgLm1hdC1yYWlzZWQtYnV0dG9uLCAubWF0LWZhYiwgLm1hdC1taW5pLWZhYiB7XG4gICAgLy8gRGVmYXVsdCBmb250IGFuZCBiYWNrZ3JvdW5kIGNvbG9yIHdoZW4gbm90IHVzaW5nIGFueSBjb2xvciBwYWxldHRlLlxuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgcmFpc2VkLWJ1dHRvbik7XG5cbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi10aGVtZS1wcm9wZXJ0eSgkY29uZmlnLCAnY29sb3InLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICBAaW5jbHVkZSBfbWF0LWJ1dHRvbi10aGVtZS1wcm9wZXJ0eSgkY29uZmlnLCAnYmFja2dyb3VuZC1jb2xvcicsIGRlZmF1bHQpO1xuICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLXJpcHBsZS1jb2xvcigkY29uZmlnLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgfVxuXG4gIC5tYXQtc3Ryb2tlZC1idXR0b24sIC5tYXQtZmxhdC1idXR0b24ge1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigwLCAkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtcmFpc2VkLWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDIsICRjb25maWcpO1xuXG4gICAgJjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpOmFjdGl2ZSB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oOCwgJGNvbmZpZyk7XG4gICAgfVxuXG4gICAgJi5tYXQtYnV0dG9uLWRpc2FibGVkIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigwLCAkY29uZmlnKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWZhYiwgLm1hdC1taW5pLWZhYiB7XG4gICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDYsICRjb25maWcpO1xuXG4gICAgJjpub3QoLm1hdC1idXR0b24tZGlzYWJsZWQpOmFjdGl2ZSB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMTIsICRjb25maWcpO1xuICAgIH1cblxuICAgICYubWF0LWJ1dHRvbi1kaXNhYmxlZCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJGNvbmZpZyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtYnV0dG9uLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LWJ1dHRvbiwgLm1hdC1yYWlzZWQtYnV0dG9uLCAubWF0LWljb24tYnV0dG9uLCAubWF0LXN0cm9rZWQtYnV0dG9uLFxuICAubWF0LWZsYXQtYnV0dG9uLCAubWF0LWZhYiwgLm1hdC1taW5pLWZhYiB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYnV0dG9uKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYnV0dG9uKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJ1dHRvbik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LWJ1dHRvbi1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1idXR0b24nKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtYnV0dG9uLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtYnV0dG9uLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtYnV0dG9uLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuLy8gTm90ZSB0aGF0IHRoaXMgZmlsZSBpcyBjYWxsZWQgYHByaXZhdGVgLCBiZWNhdXNlIHRoZSBBUElzIGluIGl0IGFyZW4ndCBwdWJsaWMgeWV0LlxuLy8gT25jZSB0aGV5J3JlIG1hZGUgYXZhaWxhYmxlLCB0aGUgY29kZSBzaG91bGQgYmUgbW92ZWQgb3V0IGludG8gYW4gYGluZGV4LnNjc3NgLlxuXG4vLyBUYWtlbiBmcm9tIG1hdC1kZW5zaXR5IHdpdGggc21hbGwgbW9kaWZpY2F0aW9ucyB0byBub3QgcmVseSBvbiB0aGUgbmV3IFNhc3MgbW9kdWxlXG4vLyBzeXN0ZW0sIGFuZCB0byBzdXBwb3J0IGFyYml0cmFyeSBwcm9wZXJ0aWVzIGluIGEgZGVuc2l0eSBjb25maWd1cmF0aW9uLlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL21hdGVyaWFsLWNvbXBvbmVudHMvbWF0ZXJpYWwtY29tcG9uZW50cy13ZWIvYmxvYi9tYXN0ZXIvcGFja2FnZXMvbWRjLWRlbnNpdHlcblxuJF9tYXQtZGVuc2l0eS1pbnRlcnZhbDogNHB4ICFkZWZhdWx0O1xuJF9tYXQtZGVuc2l0eS1taW5pbXVtLXNjYWxlOiBtaW5pbXVtICFkZWZhdWx0O1xuJF9tYXQtZGVuc2l0eS1tYXhpbXVtLXNjYWxlOiBtYXhpbXVtICFkZWZhdWx0O1xuJF9tYXQtZGVuc2l0eS1zdXBwb3J0ZWQtc2NhbGVzOiAoZGVmYXVsdCwgbWluaW11bSwgbWF4aW11bSkgIWRlZmF1bHQ7XG4kX21hdC1kZW5zaXR5LWRlZmF1bHQtc2NhbGU6IDAgIWRlZmF1bHQ7XG5cbi8vIFdoZXRoZXIgZGVuc2l0eSBzaG91bGQgYmUgZ2VuZXJhdGVkIGF0IHJvb3QuIFRoaXMgd2lsbCBiZSB0ZW1wb3JhcmlseSBzZXQgdG8gYHRydWVgXG4vLyB3aGVuZXZlciBkZW5zaXR5IHN0eWxlcyBmb3IgbGVnYWN5IHRoZW1lcyBhcmUgZ2VuZXJhdGVkLlxuJG1hdC1wcml2YXRlLWRlbnNpdHktZ2VuZXJhdGUtYXQtcm9vdDogZmFsc2U7XG4vLyBXaGV0aGVyIGRlbnNpdHkgc3R5bGVzIHNob3VsZCBiZSBnZW5lcmF0ZWQuIFRoaXMgd2lsbCBiZSB0ZW1wb3JhcmlseSBzZXQgdG8gYGZhbHNlYCBpZlxuLy8gZHVwbGljYXRlIGRlbnNpdHkgc3R5bGVzIGZvciBhIGxlZ2FjeSB0aGVtZSB3b3VsZCBiZSBnZW5lcmF0ZWQuIEZvciBsZWdhY3kgdGhlbWVzLFxuLy8gd2UgYWx3YXlzIGdlbmVyYXRlIHRoZSBkZWZhdWx0IGRlbnNpdHkgKipvbmx5IG9uY2UqKiBhdCByb290LlxuJG1hdC1wcml2YXRlLWRlbnNpdHktZ2VuZXJhdGUtc3R5bGVzOiB0cnVlO1xuXG4vLyBNaXhpbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHdyYXAgZGVuc2l0eSBzdHlsZXMgb2YgZ2l2ZW4gY29tcG9uZW50cy4gVGhlIG1peGluIHdpbGxcbi8vIG1vdmUgdGhlIGRlbnNpdHkgc3R5bGVzIHRvIHJvb3QgaWYgdGhlIGAkbWF0LXByaXZhdGUtZGVuc2l0eS1nZW5lcmF0ZS1hdC1yb290YCBnbG9iYWwgdmFyaWFibGVcbi8vIGlzIHNldC4gSWYgYCRtYXQtcHJpdmF0ZS1kZW5zaXR5LWdlbmVyYXRlLXN0eWxlc2AgaXMgc2V0IHRvIGBmYWxzZWAsIGdlbmVyYXRpb24gb2YgZGVuc2l0eVxuLy8gc3R5bGVzIHdyYXBwZWQgaW4gdGhpcyBtaXhpbiBpcyBza2lwcGVkLiBUaGlzIG1peGluIGV4aXN0cyB0byBpbXByb3ZlIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4vLyBvZiB0aGUgbmV3IHRoZW1pbmcgQVBJIHdoZXJlIGRlbnNpdHkgc3R5bGVzIGFyZSBpbmNsdWRlZCBhcyBwYXJ0IG9mIHRoZW1lcy4gUHJldmlvdXNseSxcbi8vIGRlbnNpdHkgc3R5bGVzIG9mIGNvbXBvbmVudHMgd2VyZSBwYXJ0IG9mIHRoZWlyIGJhc2Ugc3R5bGVzLiBXaXRoIHRoZSBuZXcgQVBJLCB0aGV5IGFyZVxuLy8gcGFydCBvZiB0aGUgdGhlbWluZyBzeXN0ZW0uIFRoZSBgPC4uPi10aGVtZWAgbWl4aW5zIGdlbmVyYXRlIGRlbnNpdHkgYnkgZGVmYXVsdCB1bmxlc3Ncbi8vIHRoZSBkZW5zaXR5IGNvbmZpZ3VyYXRpb24gaXMgZXhwbGljaXRseSBzcGVjaWZpZWQgYXMgcGVyIG5ldyBBUEkuIFRoaXMgbWVhbnMsIHRoYXQgcHJvamVjdHNcbi8vIHVzaW5nIGA8Li4+LXRoZW1lYCBtaXhpbnMgZm9yIHNlcGFyYXRlIHRoZW1lcyAobGlrZSBgLmRhcmstdGhlbWVgKSB3aWxsIGNhdXNlIGR1cGxpY2F0ZVxuLy8gZGVuc2l0eSBzdHlsZXMuIFRoaXMgaXMgYnJlYWtpbmcgYXMgaXQgaW5jcmVhc2VzIHNwZWNpZmljaXR5IG9mIGRlbnNpdHkgc3R5bGVzLiBUaGlzIG1peGluXG4vLyBwcm92aWRlcyBhbiBBUEkgdG8gY29udHJvbCBnZW5lcmF0aW9uIG9mIGRlbnNpdHkgc3R5bGVzIHNvIHRoYXQgd2UgY2FuIGVuc3VyZSB0aGV5IGFyZSBvbmx5XG4vLyBjcmVhdGVkICpvbmNlKiBhbmQgYXQgcm9vdC5cbkBtaXhpbiBtYXQtcHJpdmF0ZS1kZW5zaXR5LWxlZ2FjeS1jb21wYXRpYmlsaXR5KCkge1xuICBAaWYgJG1hdC1wcml2YXRlLWRlbnNpdHktZ2VuZXJhdGUtc3R5bGVzIGFuZCAkbWF0LXByaXZhdGUtZGVuc2l0eS1nZW5lcmF0ZS1hdC1yb290IHtcbiAgICBAYXQtcm9vdCB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJG1hdC1wcml2YXRlLWRlbnNpdHktZ2VuZXJhdGUtc3R5bGVzIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AZnVuY3Rpb24gbWF0LXByaXZhdGUtZGVuc2l0eS1wcm9wLXZhbHVlKCRkZW5zaXR5LWNvbmZpZywgJGRlbnNpdHktc2NhbGUsICRwcm9wZXJ0eS1uYW1lKSB7XG4gIEBpZiAodHlwZS1vZigkZGVuc2l0eS1zY2FsZSkgPT0gJ3N0cmluZycgYW5kXG4gICAgICBpbmRleCgkbGlzdDogJF9tYXQtZGVuc2l0eS1zdXBwb3J0ZWQtc2NhbGVzLCAkdmFsdWU6ICRkZW5zaXR5LXNjYWxlKSA9PSBudWxsKSB7XG4gICAgQGVycm9yICdtYXQtZGVuc2l0eTogU3VwcG9ydGVkIGRlbnNpdHkgc2NhbGVzICN7JF9tYXQtZGVuc2l0eS1zdXBwb3J0ZWQtc2NhbGVzfSwgJyAgK1xuICAgICAgJ2J1dCByZWNlaXZlZCAjeyRkZW5zaXR5LXNjYWxlfS4nO1xuICB9XG5cbiAgJHZhbHVlOiBudWxsO1xuICAkcHJvcGVydHktc2NhbGUtbWFwOiBtYXAtZ2V0KCRkZW5zaXR5LWNvbmZpZywgJHByb3BlcnR5LW5hbWUpO1xuXG4gIEBpZiBtYXAtaGFzLWtleSgkcHJvcGVydHktc2NhbGUtbWFwLCAkZGVuc2l0eS1zY2FsZSkge1xuICAgICR2YWx1ZTogbWFwLWdldCgkcHJvcGVydHktc2NhbGUtbWFwLCAkZGVuc2l0eS1zY2FsZSk7XG4gIH1cbiAgQGVsc2Uge1xuICAgICR2YWx1ZTogbWFwLWdldCgkcHJvcGVydHktc2NhbGUtbWFwLCBkZWZhdWx0KSArICRkZW5zaXR5LXNjYWxlICogJF9tYXQtZGVuc2l0eS1pbnRlcnZhbDtcbiAgfVxuXG4gICRtaW4tdmFsdWU6IG1hcC1nZXQoJHByb3BlcnR5LXNjYWxlLW1hcCwgJF9tYXQtZGVuc2l0eS1taW5pbXVtLXNjYWxlKTtcbiAgJG1heC12YWx1ZTogbWFwLWdldCgkcHJvcGVydHktc2NhbGUtbWFwLCAkX21hdC1kZW5zaXR5LW1heGltdW0tc2NhbGUpO1xuXG4gIEBpZiAoJHZhbHVlIDwgJG1pbi12YWx1ZSBvciAkdmFsdWUgPiAkbWF4LXZhbHVlKSB7XG4gICAgQGVycm9yICdtYXQtZGVuc2l0eTogI3skcHJvcGVydHktbmFtZX0gbXVzdCBiZSBiZXR3ZWVuICN7JG1pbi12YWx1ZX0gYW5kICcgK1xuICAgICAgJyN7JG1heC12YWx1ZX0gKGluY2x1c2l2ZSksIGJ1dCByZWNlaXZlZCAjeyR2YWx1ZX0uJztcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG4kbWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhcmQtaGVpZ2h0OiA0OHB4ICFkZWZhdWx0O1xuLy8gTWluaW11bSBoZWlnaHQgZm9yIGhpZ2hlc3QgZGVuc2l0eSBjYW4gdmFyeSBiYXNlZCBvbiB0aGUgY29udGVudCB0aGF0IGRldmVsb3BlcnNcbi8vIHByb2plY3QgaW50byBidXR0b24tdG9nZ2xlJ3MuIFdlIHVzZSBhIG1pbmltdW0gb2YgYDI0cHhgIHRob3VnaCBiZWNhdXNlIGNvbW1vbmx5XG4vLyBpY29ucyBvciB0ZXh0IGFyZSBkaXNwbGF5ZWQuIEljb25zIGJ5IGRlZmF1bHQgaGF2ZSBhIHNpemUgb2YgYDI0cHhgLlxuJG1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYXJkLW1pbmltdW0taGVpZ2h0OiAyNHB4ICFkZWZhdWx0O1xuJG1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYXJkLW1heGltdW0taGVpZ2h0OiAkbWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhcmQtaGVpZ2h0ICFkZWZhdWx0O1xuXG4kbWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhcmQtZGVuc2l0eS1jb25maWc6IChcbiAgaGVpZ2h0OiAoXG4gICAgZGVmYXVsdDogJG1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYXJkLWhlaWdodCxcbiAgICBtYXhpbXVtOiAkbWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhcmQtbWF4aW11bS1oZWlnaHQsXG4gICAgbWluaW11bTogJG1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYXJkLW1pbmltdW0taGVpZ2h0LFxuICApXG4pICFkZWZhdWx0O1xuXG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRkaXZpZGVyLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLFxuICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAge1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLWVsZXZhdGlvbigyLCAkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFsb25lLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQsXG4gIC5tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cC1hcHBlYXJhbmNlLXN0YW5kYXJkIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuXG4gICAgLm1hdC1idXR0b24tdG9nZ2xlLWZvY3VzLW92ZXJsYXkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBmb2N1c2VkLWJ1dHRvbik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG5cbiAgICAubWF0LWJ1dHRvbi10b2dnbGUtZm9jdXMtb3ZlcmxheSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGZvY3VzZWQtYnV0dG9uLCAxKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJvcmRlci1sZWZ0OiBzb2xpZCAxcHggJGRpdmlkZXItY29sb3I7XG4gIH1cblxuICBbZGlyPSdydGwnXSAubWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUgKyAubWF0LWJ1dHRvbi10b2dnbGUge1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGJvcmRlci1yaWdodDogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQubWF0LWJ1dHRvbi10b2dnbGUtdmVydGljYWwge1xuICAgIC5tYXQtYnV0dG9uLXRvZ2dsZSArIC5tYXQtYnV0dG9uLXRvZ2dsZSB7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCAkZGl2aWRlci1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBzZWxlY3RlZC1idXR0b24pO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWJ1dHRvbi10b2dnbGUtZGlzYWJsZWQge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLWJ1dHRvbik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaXNhYmxlZC1idXR0b24tdG9nZ2xlKTtcblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIH1cblxuICAgICYubWF0LWJ1dHRvbi10b2dnbGUtY2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIHNlbGVjdGVkLWRpc2FibGVkLWJ1dHRvbik7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1idXR0b24tdG9nZ2xlLXN0YW5kYWxvbmUubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCxcbiAgLm1hdC1idXR0b24tdG9nZ2xlLWdyb3VwLWFwcGVhcmFuY2Utc3RhbmRhcmQge1xuICAgIGJvcmRlcjogc29saWQgMXB4ICRkaXZpZGVyLWNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1idXR0b24tdG9nZ2xlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtYnV0dG9uLXRvZ2dsZS1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGRlbnNpdHktc2NhbGU6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRzdGFuZGFyZC1oZWlnaHQ6IG1hdC1wcml2YXRlLWRlbnNpdHktcHJvcC12YWx1ZShcbiAgICAgICRtYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFyZC1kZW5zaXR5LWNvbmZpZywgJGRlbnNpdHktc2NhbGUsIGhlaWdodCk7XG5cbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtZGVuc2l0eS1sZWdhY3ktY29tcGF0aWJpbGl0eSgpIHtcbiAgICAubWF0LWJ1dHRvbi10b2dnbGUtYXBwZWFyYW5jZS1zdGFuZGFyZCAubWF0LWJ1dHRvbi10b2dnbGUtbGFiZWwtY29udGVudCB7XG4gICAgICBsaW5lLWhlaWdodDogJHN0YW5kYXJkLWhlaWdodDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1idXR0b24tdG9nZ2xlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1idXR0b24tdG9nZ2xlJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10b2dnbGUtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10b2dnbGUtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1idXR0b24tdG9nZ2xlLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWNhcmQtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtY2FyZCB7XG4gICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtb3ZlcnJpZGFibGUtZWxldmF0aW9uKDEsICRjb25maWcpO1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAvLyBOZWVkcyBleHRyYSBzcGVjaWZpY2l0eSB0byBiZSBhYmxlIHRvIG92ZXJyaWRlIHRoZSBlbGV2YXRpb24gc2VsZWN0b3JzLlxuICAgICYubWF0LWNhcmQtZmxhdCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1vdmVycmlkYWJsZS1lbGV2YXRpb24oMCwgJGNvbmZpZyk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1jYXJkLXN1YnRpdGxlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1jYXJkLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LWNhcmQge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWNhcmQtdGl0bGUge1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgaGVhZGxpbmUpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgdGl0bGUpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FyZC1oZWFkZXIgLm1hdC1jYXJkLXRpdGxlIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgdGl0bGUpO1xuICB9XG5cbiAgLm1hdC1jYXJkLXN1YnRpdGxlLFxuICAubWF0LWNhcmQtY29udGVudCB7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtY2FyZC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtY2FyZC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtY2FyZCcpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1jYXJkLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtY2FyZC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWNhcmQtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC1jaGVja2JveC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuXG4gIC8vIFRoZSBjb2xvciBvZiB0aGUgY2hlY2tib3gncyBjaGVja21hcmsgLyBtaXhlZG1hcmsuXG4gICRjaGVja2JveC1tYXJrLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGJhY2tncm91bmQpO1xuXG4gIC8vIE5PVEUodHJhdmlza2F1Zm1hbik6IFdoaWxlIHRoZSBzcGVjIGNhbGxzIGZvciB0cmFuc2x1Y2VudCBibGFja3Mvd2hpdGVzIGZvciBkaXNhYmxlZCBjb2xvcnMsXG4gIC8vIHRoaXMgZG9lcyBub3Qgd29yayB3ZWxsIHdpdGggZWxlbWVudHMgbGF5ZXJlZCBvbiB0b3Agb2Ygb25lIGFub3RoZXIuIFRvIGdldCBhcm91bmQgdGhpcyB3ZVxuICAvLyBibGVuZCB0aGUgY29sb3JzIHRvZ2V0aGVyIGJhc2VkIG9uIHRoZSBiYXNlIGNvbG9yIGFuZCB0aGUgdGhlbWUgYmFja2dyb3VuZC5cbiAgJHdoaXRlLTMwcGN0LW9wYWNpdHktb24tZGFyazogIzY4Njg2ODtcbiAgJGJsYWNrLTI2cGN0LW9wYWNpdHktb24tbGlnaHQ6ICNiMGIwYjA7XG4gICRkaXNhYmxlZC1jb2xvcjogaWYoJGlzLWRhcmstdGhlbWUsICR3aGl0ZS0zMHBjdC1vcGFjaXR5LW9uLWRhcmssICRibGFjay0yNnBjdC1vcGFjaXR5LW9uLWxpZ2h0KTtcblxuICAubWF0LWNoZWNrYm94LWZyYW1lIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1jaGVja21hcmsge1xuICAgIGZpbGw6ICRjaGVja2JveC1tYXJrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1jaGVja21hcmstcGF0aCB7XG4gICAgLy8gIWltcG9ydGFudCBpcyBuZWVkZWQgaGVyZSBiZWNhdXNlIGEgc3Ryb2tlIG11c3QgYmUgc2V0IGFzIGFuXG4gICAgLy8gYXR0cmlidXRlIG9uIHRoZSBTVkcgaW4gb3JkZXIgZm9yIGxpbmUgYW5pbWF0aW9uIHRvIHdvcmsgcHJvcGVybHkuXG4gICAgc3Ryb2tlOiAkY2hlY2tib3gtbWFyay1jb2xvciAhaW1wb3J0YW50O1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1taXhlZG1hcmsge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjaGVja2JveC1tYXJrLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1pbmRldGVybWluYXRlLCAubWF0LWNoZWNrYm94LWNoZWNrZWQge1xuICAgICYubWF0LXByaW1hcnkgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IC5tYXQtY2hlY2tib3gtYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiAubWF0LWNoZWNrYm94LWJhY2tncm91bmQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNoZWNrYm94LWRpc2FibGVkIHtcbiAgICAmLm1hdC1jaGVja2JveC1jaGVja2VkLFxuICAgICYubWF0LWNoZWNrYm94LWluZGV0ZXJtaW5hdGUge1xuICAgICAgLm1hdC1jaGVja2JveC1iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5tYXQtY2hlY2tib3gtY2hlY2tlZCkge1xuICAgICAgLm1hdC1jaGVja2JveC1mcmFtZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5tYXQtY2hlY2tib3gtbGFiZWwge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN3aXRjaCB0aGlzIHRvIGEgc29saWQgY29sb3Igc2luY2Ugd2UncmUgdXNpbmcgYG9wYWNpdHlgXG4gIC8vIHRvIGNvbnRyb2wgaG93IG9wYXF1ZSB0aGUgcmlwcGxlIHNob3VsZCBiZS5cbiAgLm1hdC1jaGVja2JveCAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXAtZ2V0KG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCksIGJhc2UpO1xuICB9XG5cbiAgLm1hdC1jaGVja2JveC1jaGVja2VkOm5vdCgubWF0LWNoZWNrYm94LWRpc2FibGVkKSxcbiAgLm1hdC1jaGVja2JveDphY3RpdmU6bm90KC5tYXQtY2hlY2tib3gtZGlzYWJsZWQpIHtcbiAgICAmLm1hdC1wcmltYXJ5IC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiAubWF0LXJpcHBsZS1lbGVtZW50IHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkd2Fybik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtY2hlY2tib3gtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtY2hlY2tib3gge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAvLyBUT0RPKGthcmEpOiBSZW1vdmUgdGhpcyBzdHlsZSB3aGVuIGZpeGluZyB2ZXJ0aWNhbCBiYXNlbGluZVxuICAubWF0LWNoZWNrYm94LWxheW91dCAubWF0LWNoZWNrYm94LWxhYmVsIHtcbiAgICBsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGJvZHktMik7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtY2hlY2tib3gtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWNoZWNrYm94LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1jaGVja2JveCcpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1jaGVja2JveC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWNoZWNrYm94LWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtY2hlY2tib3gtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG4kbWF0LWNoaXAtcmVtb3ZlLWZvbnQtc2l6ZTogMThweDtcblxuQG1peGluIF9tYXQtY2hpcC1lbGVtZW50LWNvbG9yKCRmb3JlZ3JvdW5kLCAkYmFja2dyb3VuZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6ICRmb3JlZ3JvdW5kO1xuXG4gIC5tYXQtY2hpcC1yZW1vdmUge1xuICAgIGNvbG9yOiAkZm9yZWdyb3VuZDtcbiAgICBvcGFjaXR5OiAwLjQ7XG4gIH1cbn1cblxuXG4vLyBBcHBsaWVzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIGZvciBhIHJpcHBsZSBlbGVtZW50LlxuLy8gSWYgdGhlIGNvbG9yIHZhbHVlIHByb3ZpZGVkIGlzIG5vdCBhIFNhc3MgY29sb3IsXG4vLyB3ZSBhc3N1bWUgdGhhdCB3ZSd2ZSBiZWVuIGdpdmVuIGEgQ1NTIHZhcmlhYmxlLlxuLy8gU2luY2Ugd2UgY2FuJ3QgcGVyZm9ybSBhbHBoYS1ibGVuZGluZyBvbiBhIENTUyB2YXJpYWJsZSxcbi8vIHdlIGluc3RlYWQgYWRkIHRoZSBvcGFjaXR5IGRpcmVjdGx5IHRvIHRoZSByaXBwbGUgZWxlbWVudC5cbkBtaXhpbiBfbWF0LWNoaXBzLXJpcHBsZS1iYWNrZ3JvdW5kKCRwYWxldHRlLCAkZGVmYXVsdC1jb250cmFzdCwgJG9wYWNpdHkpIHtcbiAgJGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgJGRlZmF1bHQtY29udHJhc3QsICRvcGFjaXR5KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG4gIEBpZiAodHlwZS1vZigkYmFja2dyb3VuZC1jb2xvcikgIT0gY29sb3IpIHtcbiAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1jaGlwLXRoZW1lLWNvbG9yKCRwYWxldHRlKSB7XG4gIEBpbmNsdWRlIF9tYXQtY2hpcC1lbGVtZW50LWNvbG9yKG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCksIG1hdC1jb2xvcigkcGFsZXR0ZSkpO1xuXG4gIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtY2hpcHMtcmlwcGxlLWJhY2tncm91bmQoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QsIDAuMSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1jaGlwcy1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAkdW5zZWxlY3RlZC1iYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIHVuc2VsZWN0ZWQtY2hpcCk7XG4gICR1bnNlbGVjdGVkLWZvcmVncm91bmQ6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgLm1hdC1jaGlwLm1hdC1zdGFuZGFyZC1jaGlwIHtcbiAgICBAaW5jbHVkZSBfbWF0LWNoaXAtZWxlbWVudC1jb2xvcigkdW5zZWxlY3RlZC1mb3JlZ3JvdW5kLCAkdW5zZWxlY3RlZC1iYWNrZ3JvdW5kKTtcblxuICAgICY6bm90KC5tYXQtY2hpcC1kaXNhYmxlZCkge1xuICAgICAgJjphY3RpdmUge1xuICAgICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS10aGVtZS1lbGV2YXRpb24oMywgJGNvbmZpZyk7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtY2hpcC1yZW1vdmU6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAwLjU0O1xuICAgICAgfVxuICAgIH1cblxuICAgICYubWF0LWNoaXAtZGlzYWJsZWQge1xuICAgICAgb3BhY2l0eTogMC40O1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hcC1nZXQoJGZvcmVncm91bmQsIGJhc2UpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2hpcC5tYXQtc3RhbmRhcmQtY2hpcC5tYXQtY2hpcC1zZWxlY3RlZCB7XG4gICAgJi5tYXQtcHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWNoaXAtdGhlbWUtY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC1jaGlwLXRoZW1lLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgX21hdC1jaGlwLXRoZW1lLWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWNoaXBzLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LWNoaXAge1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICAgIGZvbnQtd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYm9keS0yKTtcblxuICAgIC5tYXQtY2hpcC10cmFpbGluZy1pY29uLm1hdC1pY29uLFxuICAgIC5tYXQtY2hpcC1yZW1vdmUubWF0LWljb24ge1xuICAgICAgZm9udC1zaXplOiAkbWF0LWNoaXAtcmVtb3ZlLWZvbnQtc2l6ZTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIF9tYXQtY2hpcHMtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWNoaXBzLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1jaGlwcycpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1jaGlwcy1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWNoaXBzLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtY2hpcHMtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWRpdmlkZXItY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1kaXZpZGVyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgLm1hdC1kaXZpZGVyLXZlcnRpY2FsIHtcbiAgICBib3JkZXItcmlnaHQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cbn1cblxuQG1peGluIG1hdC1kaXZpZGVyLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIF9tYXQtZGl2aWRlci1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtZGl2aWRlci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtZGl2aWRlcicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1kaXZpZGVyLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtZGl2aWRlci1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWRpdmlkZXItdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC10YWJsZS1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC10YWJsZSB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCAnY2FyZCcpO1xuICB9XG5cbiAgLm1hdC10YWJsZSB0aGVhZCwgLm1hdC10YWJsZSB0Ym9keSwgLm1hdC10YWJsZSB0Zm9vdCxcbiAgbWF0LWhlYWRlci1yb3csIG1hdC1yb3csIG1hdC1mb290ZXItcm93LFxuICBbbWF0LWhlYWRlci1yb3ddLCBbbWF0LXJvd10sIFttYXQtZm9vdGVyLXJvd10sXG4gIC5tYXQtdGFibGUtc3RpY2t5IHtcbiAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICB9XG5cbiAgbWF0LXJvdywgbWF0LWhlYWRlci1yb3csIG1hdC1mb290ZXItcm93LFxuICB0aC5tYXQtaGVhZGVyLWNlbGwsIHRkLm1hdC1jZWxsLCB0ZC5tYXQtZm9vdGVyLWNlbGwge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWhlYWRlci1jZWxsIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gIH1cblxuICAubWF0LWNlbGwsIC5tYXQtZm9vdGVyLWNlbGwge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdGFibGUtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtdGFibGUge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LWhlYWRlci1jZWxsIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTIpO1xuICB9XG5cbiAgLm1hdC1jZWxsLCAubWF0LWZvb3Rlci1jZWxsIHtcbiAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC10YWJsZS1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtdGFibGUtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXRhYmxlJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXRhYmxlLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdGFibGUtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC10YWJsZS10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuJG1hdC1kYXRlcGlja2VyLXNlbGVjdGVkLXRvZGF5LWJveC1zaGFkb3ctd2lkdGg6IDFweDtcbiRtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC1mYWRlLWFtb3VudDogMC42O1xuJG1hdC1kYXRlcGlja2VyLXJhbmdlLWZhZGUtYW1vdW50OiAwLjI7XG4kbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQ6IDAuMjtcbiRtYXQtY2FsZW5kYXItYm9keS1mb250LXNpemU6IDEzcHggIWRlZmF1bHQ7XG4kbWF0LWNhbGVuZGFyLXdlZWtkYXktdGFibGUtZm9udC1zaXplOiAxMXB4ICFkZWZhdWx0O1xuXG5AbWl4aW4gX21hdC1kYXRlcGlja2VyLWNvbG9yKCRwYWxldHRlKSB7XG4gIEBpbmNsdWRlIG1hdC1kYXRlLXJhbmdlLWNvbG9ycyhcbiAgICBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQsICRtYXQtZGF0ZXBpY2tlci1yYW5nZS1mYWRlLWFtb3VudCkpO1xuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gICAgJGJhY2tncm91bmQ6IG1hdC1jb2xvcigkcGFsZXR0ZSk7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGJhY2tncm91bmQpID09IGNvbG9yKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBmYWRlLW91dCgkYmFja2dyb3VuZCwgJG1hdC1kYXRlcGlja2VyLXNlbGVjdGVkLWZhZGUtYW1vdW50KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gSWYgd2UgY291bGRuJ3QgcmVzb2x2ZSB0byBiYWNrZ3JvdW5kIHRvIGEgY29sb3IgKGUuZy4gaXQncyBhIENTUyB2YXJpYWJsZSksXG4gICAgICAvLyBmYWxsIGJhY2sgdG8gZmFkaW5nIHRoZSBjb250ZW50IG91dCB2aWEgYG9wYWNpdHlgLlxuICAgICAgb3BhY2l0eTogJG1hdC1kYXRlcGlja2VyLXRvZGF5LWZhZGUtYW1vdW50O1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS10b2RheS5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgJG1hdC1kYXRlcGlja2VyLXNlbGVjdGVkLXRvZGF5LWJveC1zaGFkb3ctd2lkdGhcbiAgICAgICAgICAgICAgICBtYXQtY29sb3IoJHBhbGV0dGUsIGRlZmF1bHQtY29udHJhc3QpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGw6bm90KC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCk6aG92ZXIsXG4gIC5jZGsta2V5Ym9hcmQtZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlLFxuICAuY2RrLXByb2dyYW0tZm9jdXNlZCAubWF0LWNhbGVuZGFyLWJvZHktYWN0aXZlIHtcbiAgICAmID4gLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWRhdGVwaWNrZXItdW5zZWxlY3RlZC1jZWxsIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCAwLjMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBVdGlsaXR5IG1peGluIHRvIHRhcmdldCBjZWxscyB0aGF0IGFyZW4ndCBzZWxlY3RlZC4gVXNlZCB0byBtYWtlIHNlbGVjdG9yIGVhc2llciB0byBmb2xsb3cuXG5AbWl4aW4gX21hdC1kYXRlcGlja2VyLXVuc2VsZWN0ZWQtY2VsbCB7XG4gICY6bm90KC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCk6bm90KC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWlkZW50aWNhbCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBtYXQtZGF0ZXBpY2tlci1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRkaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcblxuICAubWF0LWNhbGVuZGFyLWFycm93IHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGljb24pO1xuICB9XG5cbiAgLy8gVGhlIHByZXYvbmV4dCBidXR0b25zIG5lZWQgYSBiaXQgbW9yZSBzcGVjaWZpY2l0eSB0b1xuICAvLyBhdm9pZCBiZWluZyBvdmVyd3JpdHRlbiBieSB0aGUgLm1hdC1pY29uLWJ1dHRvbi5cbiAgLm1hdC1kYXRlcGlja2VyLXRvZ2dsZSxcbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1uZXh0LWJ1dHRvbixcbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQgLm1hdC1jYWxlbmRhci1wcmV2aW91cy1idXR0b24ge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGljb24pO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci10YWJsZS1oZWFkZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGhpbnQtdGV4dCk7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlci1kaXZpZGVyOjphZnRlciB7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1sYWJlbCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWNlbGwtY29udGVudCxcbiAgLm1hdC1kYXRlLXJhbmdlLWlucHV0LXNlcGFyYXRvciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS1jZWxsLWNvbnRlbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtZGF0ZXBpY2tlci11bnNlbGVjdGVkLWNlbGwge1xuICAgICAgY29sb3I6ICRkaXNhYmxlZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1kYXRlLXJhbmdlLWlucHV0LXNlcGFyYXRvciB7XG4gICAgY29sb3I6ICRkaXNhYmxlZC1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1pbi1wcmV2aWV3IHtcbiAgICAkZGl2aWRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcblxuICAgIEBpZiB0eXBlLW9mKCRkaXZpZGVyLWNvbG9yKSA9PSBjb2xvciB7XG4gICAgICAvLyBUaGUgZGl2aWRlciBjb2xvciBpcyBzZXQgdW5kZXIgdGhlIGFzc3VtcHRpb24gdGhhdCBpdCdsbCBiZSB1c2VkXG4gICAgICAvLyBmb3IgYSBzb2xpZCBib3JkZXIsIGJ1dCBiZWNhdXNlIHdlJ3JlIHVzaW5nIGEgZGFzaGVkIGJvcmRlciBmb3IgdGhlXG4gICAgICAvLyBwcmV2aWV3IHJhbmdlLCB3ZSBuZWVkIHRvIGJ1bXAgaXRzIG9wYWNpdHkgdG8gZW5zdXJlIHRoYXQgaXQncyB2aXNpYmxlLlxuICAgICAgY29sb3I6IHJnYmEoJGRpdmlkZXItY29sb3IsIG1pbihvcGFjaXR5KCRkaXZpZGVyLWNvbG9yKSAqIDIsIDEpKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgY29sb3I6ICRkaXZpZGVyLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS10b2RheSB7XG4gICAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLXVuc2VsZWN0ZWQtY2VsbCB7XG4gICAgICAvLyBOb3RlOiB0aG91Z2ggaXQncyBub3QgdGV4dCwgdGhlIGJvcmRlciBpcyBhIGhpbnQgYWJvdXQgdGhlIGZhY3QgdGhhdCB0aGlzIGlzIHRvZGF5J3MgZGF0ZSxcbiAgICAgIC8vIHNvIHdlIHVzZSB0aGUgaGludCBjb2xvci5cbiAgICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBoaW50LXRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1kaXNhYmxlZCA+IC5tYXQtY2FsZW5kYXItYm9keS10b2RheSB7XG4gICAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLXVuc2VsZWN0ZWQtY2VsbCB7XG4gICAgICAkY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgaGludC10ZXh0KTtcblxuICAgICAgQGlmICh0eXBlLW9mKCRjb2xvcikgPT0gY29sb3IpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBmYWRlLW91dCgkY29sb3IsICRtYXQtZGF0ZXBpY2tlci10b2RheS1mYWRlLWFtb3VudCk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIC8vIElmIHRoZSBjb2xvciBkaWRuJ3QgcmVzb2x2ZSB0byBhIGNvbG9yIHZhbHVlLCBidXQgc29tZXRoaW5nIGxpa2UgYSBDU1MgdmFyaWFibGUsIHdlIGNhbid0XG4gICAgICAgIC8vIGZhZGUgaXQgb3V0IHNvIHdlIGZhbGwgYmFjayB0byByZWR1Y2luZyB0aGUgZWxlbWVudCBvcGFjaXR5LiBOb3RlIHRoYXQgd2UgZG9uJ3QgdXNlIHRoZVxuICAgICAgICAvLyAkbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQsIGJlY2F1c2UgaGludCB0ZXh0IHVzdWFsbHkgaGFzIHNvbWUgb3BhY2l0eSBhcHBsaWVkXG4gICAgICAgIC8vIHRvIGl0IGFscmVhZHkgYW5kIHdlIGRvbid0IHdhbnQgdGhlbSB0byBzdGFjayBvbiB0b3Agb2YgZWFjaCBvdGhlci5cbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIF9tYXQtZGF0ZXBpY2tlci1jb2xvcihtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpKTtcblxuICAubWF0LWRhdGVwaWNrZXItY29udGVudCB7XG4gICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtZWxldmF0aW9uKDQsICRjb25maWcpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCk7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG5cbiAgICAmLm1hdC1hY2NlbnQge1xuICAgICAgQGluY2x1ZGUgX21hdC1kYXRlcGlja2VyLWNvbG9yKG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KSk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWRhdGVwaWNrZXItY29sb3IobWFwLWdldCgkY29uZmlnLCB3YXJuKSk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQtdG91Y2gge1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLWVsZXZhdGlvbigwLCAkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtYWN0aXZlIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSksIHRleHQpO1xuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IobWFwLWdldCgkY29uZmlnLCBhY2NlbnQpLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IobWFwLWdldCgkY29uZmlnLCB3YXJuKSwgdGV4dCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kYXRlLXJhbmdlLWlucHV0LWlubmVyW2Rpc2FibGVkXSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1kYXRlcGlja2VyLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LWNhbGVuZGFyIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5IHtcbiAgICBmb250LXNpemU6ICRtYXQtY2FsZW5kYXItYm9keS1mb250LXNpemU7XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLWJvZHktbGFiZWwsXG4gIC5tYXQtY2FsZW5kYXItcGVyaW9kLWJ1dHRvbiB7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBidXR0b24pO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgYnV0dG9uKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWNhbGVuZGFyLXRhYmxlLWhlYWRlciB0aCB7XG4gICAgZm9udDoge1xuICAgICAgc2l6ZTogJG1hdC1jYWxlbmRhci13ZWVrZGF5LXRhYmxlLWZvbnQtc2l6ZTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtZGF0ZS1yYW5nZS1jb2xvcnMoXG4gICRyYW5nZS1jb2xvcixcbiAgJGNvbXBhcmlzb24tY29sb3I6IHJnYmEoI2Y5YWIwMCwgJG1hdC1kYXRlcGlja2VyLXJhbmdlLWZhZGUtYW1vdW50KSxcbiAgJG92ZXJsYXAtY29sb3I6ICNhOGRhYjUsXG4gICRvdmVybGFwLXNlbGVjdGVkLWNvbG9yOiBkYXJrZW4oJG92ZXJsYXAtY29sb3IsIDMwJSkpIHtcblxuICAubWF0LWNhbGVuZGFyLWJvZHktaW4tcmFuZ2U6OmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogJHJhbmdlLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLFxuICAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZTo6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kOiAkY29tcGFyaXNvbi1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1zdGFydDo6YmVmb3JlLFxuICBbZGlyPSdydGwnXSAubWF0LWNhbGVuZGFyLWJvZHktY29tcGFyaXNvbi1icmlkZ2UtZW5kOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHJhbmdlLWNvbG9yIDUwJSwgJGNvbXBhcmlzb24tY29sb3IgNTAlKTtcbiAgfVxuXG4gIC5tYXQtY2FsZW5kYXItYm9keS1jb21wYXJpc29uLWJyaWRnZS1lbmQ6OmJlZm9yZSxcbiAgW2Rpcj0ncnRsJ10gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24tYnJpZGdlLXN0YXJ0OjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCAkcmFuZ2UtY29sb3IgNTAlLCAkY29tcGFyaXNvbi1jb2xvciA1MCUpO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWluLXJhbmdlID4gLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLFxuICAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZS5tYXQtY2FsZW5kYXItYm9keS1pbi1yYW5nZTo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6ICRvdmVybGFwLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1jYWxlbmRhci1ib2R5LWNvbXBhcmlzb24taWRlbnRpY2FsLm1hdC1jYWxlbmRhci1ib2R5LXNlbGVjdGVkLFxuICAubWF0LWNhbGVuZGFyLWJvZHktaW4tY29tcGFyaXNvbi1yYW5nZSA+IC5tYXQtY2FsZW5kYXItYm9keS1zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZDogJG92ZXJsYXAtc2VsZWN0ZWQtY29sb3I7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtZGF0ZXBpY2tlci1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtZGF0ZXBpY2tlci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtZGF0ZXBpY2tlcicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1kYXRlcGlja2VyLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtZGF0ZXBpY2tlci1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWRhdGVwaWNrZXItdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtZGlhbG9nLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWRpYWxvZy1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLWVsZXZhdGlvbigyNCwgJGNvbmZpZyk7XG4gICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtZGlhbG9nLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LWRpYWxvZy10aXRsZSB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIHRpdGxlKTtcbiAgfVxufVxuXG5AbWl4aW4gX21hdC1kaWFsb2ctZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWRpYWxvZy10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtZGlhbG9nJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWRpYWxvZy1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LWRpYWxvZy1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWRpYWxvZy10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbi8vIERlZmF1bHQgbWluaW11bSBhbmQgbWF4aW11bSBoZWlnaHQgZm9yIGNvbGxhcHNlZCBwYW5lbCBoZWFkZXJzLlxuJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWNvbGxhcHNlZC1oZWlnaHQ6IDQ4cHggIWRlZmF1bHQ7XG4kbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItY29sbGFwc2VkLW1pbmltdW0taGVpZ2h0OiAzNnB4ICFkZWZhdWx0O1xuJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWNvbGxhcHNlZC1tYXhpbXVtLWhlaWdodDpcbiAgICAkbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItY29sbGFwc2VkLWhlaWdodCAhZGVmYXVsdDtcblxuLy8gRGVmYXVsdCBtaW5pbXVtIGFuZCBtYXhpbXVtIGhlaWdodCBmb3IgZXhwYW5kZWQgcGFuZWwgaGVhZGVycy5cbiRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1leHBhbmRlZC1oZWlnaHQ6IDY0cHggIWRlZmF1bHQ7XG4kbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZXhwYW5kZWQtbWluaW11bS1oZWlnaHQ6IDQ4cHggIWRlZmF1bHQ7XG4kbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZXhwYW5kZWQtbWF4aW11bS1oZWlnaHQ6XG4gICAgJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWV4cGFuZGVkLWhlaWdodCAhZGVmYXVsdDtcblxuLy8gRGVuc2l0eSBjb25maWd1cmF0aW9uIGZvciB0aGUgZXhwYW5zaW9uIHBhbmVsLiBDYXB0dXJlcyB0aGVcbi8vIGhlaWdodCBmb3IgYm90aCBleHBhbmRlZCBhbmQgY29sbGFwc2VkIHBhbmVsIGhlYWRlcnMuXG4kbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVuc2l0eS1jb25maWc6IChcbiAgY29sbGFwc2VkLWhlaWdodDogKFxuICAgIGRlZmF1bHQ6ICRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jb2xsYXBzZWQtaGVpZ2h0LFxuICAgIG1heGltdW06ICRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jb2xsYXBzZWQtbWF4aW11bS1oZWlnaHQsXG4gICAgbWluaW11bTogJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWNvbGxhcHNlZC1taW5pbXVtLWhlaWdodCxcbiAgKSxcbiAgZXhwYW5kZWQtaGVpZ2h0OiAoXG4gICAgZGVmYXVsdDogJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWV4cGFuZGVkLWhlaWdodCxcbiAgICBtYXhpbXVtOiAkbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZXhwYW5kZWQtbWF4aW11bS1oZWlnaHQsXG4gICAgbWluaW11bTogJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWV4cGFuZGVkLW1pbmltdW0taGVpZ2h0LFxuICApXG4pICFkZWZhdWx0O1xuXG4vLyBOb3RlOiBLZWVwIHRoaXMgaW4gc3luYyB3aXRoIHRoZSBhbmltYXRpb24gdGltaW5nIGZvciB0aGUgdG9nZ2xlIGluZGljYXRvclxuLy8gYW5kIGJvZHkgZXhwYW5zaW9uLiBUaGVzZSBhcmUgYW5pbWF0ZWQgdXNpbmcgQW5ndWxhciBhbmltYXRpb25zLlxuJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRyYW5zaXRpb246IDIyNW1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG5cbkBtaXhpbiBtYXQtcHJpdmF0ZS1leHBhbnNpb24tZm9jdXMge1xuICAubWF0LWV4cGFuc2lvbi1wYW5lbCB7XG4gICAgJiAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIuY2RrLWtleWJvYXJkLWZvY3VzZWQsXG4gICAgJiAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXIuY2RrLXByb2dyYW0tZm9jdXNlZCxcbiAgICAmOm5vdCgubWF0LWV4cGFuZGVkKSAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI6aG92ZXIge1xuICAgICAgJjpub3QoW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG5AbWl4aW4gbWF0LWV4cGFuc2lvbi1wYW5lbC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1leHBhbnNpb24tcGFuZWwge1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbigyLCAkY29uZmlnKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1hY3Rpb24tcm93IHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtZXhwYW5zaW9uLWZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyKTtcbiAgfVxuXG4gIC8vIERpc2FibGUgdGhlIGhvdmVyIG9uIHRvdWNoIGRldmljZXMgc2luY2UgaXQgY2FuIGFwcGVhciBsaWtlIGl0IGlzIHN0dWNrLiBXZSBjYW4ndCB1c2VcbiAgLy8gYEBtZWRpYSAoaG92ZXIpYCBhYm92ZSwgYmVjYXVzZSB0aGUgZGVza3RvcCBzdXBwb3J0IGJyb3dzZXIgc3VwcG9ydCBpc24ndCBncmVhdC5cbiAgQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsOm5vdCgubWF0LWV4cGFuZGVkKTpub3QoW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSlcbiAgICAgIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci10aXRsZSB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgdGV4dCk7XG4gIH1cblxuICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZGVzY3JpcHRpb24sXG4gIC5tYXQtZXhwYW5zaW9uLWluZGljYXRvcjo6YWZ0ZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlclthcmlhLWRpc2FibGVkPSd0cnVlJ10ge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLWJ1dHRvbik7XG5cbiAgICAubWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdGl0bGUsXG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlc2NyaXB0aW9uIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWV4cGFuc2lvbi1wYW5lbC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgICBmb250OiB7XG4gICAgICBmYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnLCBzdWJoZWFkaW5nLTEpO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBzdWJoZWFkaW5nLTEpO1xuICAgICAgd2VpZ2h0OiBtYXQtZm9udC13ZWlnaHQoJGNvbmZpZywgc3ViaGVhZGluZy0xKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWV4cGFuc2lvbi1wYW5lbC1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgYm9keS0xKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LWV4cGFuc2lvbi1wYW5lbC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGRlbnNpdHktc2NhbGU6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRleHBhbmRlZC1oZWlnaHQ6IG1hdC1wcml2YXRlLWRlbnNpdHktcHJvcC12YWx1ZShcbiAgICAgICAgJG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWRlbnNpdHktY29uZmlnLCAkZGVuc2l0eS1zY2FsZSwgZXhwYW5kZWQtaGVpZ2h0KTtcbiAgJGNvbGxhcHNlZC1oZWlnaHQ6IG1hdC1wcml2YXRlLWRlbnNpdHktcHJvcC12YWx1ZShcbiAgICAgICRtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1kZW5zaXR5LWNvbmZpZywgJGRlbnNpdHktc2NhbGUsIGNvbGxhcHNlZC1oZWlnaHQpO1xuXG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWRlbnNpdHktbGVnYWN5LWNvbXBhdGliaWxpdHkoKSB7XG4gICAgLm1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyIHtcbiAgICAgIGhlaWdodDogJGNvbGxhcHNlZC1oZWlnaHQ7XG5cbiAgICAgICYubWF0LWV4cGFuZGVkIHtcbiAgICAgICAgaGVpZ2h0OiAkZXhwYW5kZWQtaGVpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LWV4cGFuc2lvbi1wYW5lbC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtZXhwYW5zaW9uLXBhbmVsJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWV4cGFuc2lvbi1wYW5lbC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZXhwYW5zaW9uLXBhbmVsLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZXhwYW5zaW9uLXBhbmVsLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG4vLyBUaGlzIG1peGluIHdpbGwgZW5zdXJlIHRoYXQgbGluZXMgdGhhdCBvdmVyZmxvdyB0aGUgY29udGFpbmVyIHdpbGwgaGlkZSB0aGUgb3ZlcmZsb3cgYW5kXG4vLyB0cnVuY2F0ZSBuZWF0bHkgd2l0aCBhbiBlbGxpcHNpcy5cbkBtaXhpbiBtYXQtdHJ1bmNhdGUtbGluZSgpIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi8vIE1peGluIHRvIHByb3ZpZGUgYWxsIG1hdC1saW5lIHN0eWxlcywgY2hhbmdpbmcgc2Vjb25kYXJ5IGZvbnQgc2l6ZSBiYXNlZCBvbiB3aGV0aGVyIHRoZSBsaXN0XG4vLyBpcyBpbiBkZW5zZSBtb2RlLlxuQG1peGluIG1hdC1saW5lLWJhc2UoJHNlY29uZGFyeS1mb250LXNpemUpIHtcbiAgLm1hdC1saW5lIHtcbiAgICBAaW5jbHVkZSBtYXQtdHJ1bmNhdGUtbGluZSgpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAvLyBhbGwgbGluZXMgYnV0IHRoZSB0b3AgbGluZSBzaG91bGQgaGF2ZSBzbWFsbGVyIHRleHRcbiAgICAmOm50aC1jaGlsZChuKzIpIHtcbiAgICAgIGZvbnQtc2l6ZTogJHNlY29uZGFyeS1mb250LXNpemU7XG4gICAgfVxuICB9XG59XG5cbi8vIFRoaXMgbWl4aW4gbm9ybWFsaXplcyBkZWZhdWx0IGVsZW1lbnQgc3R5bGVzLCBlLmcuIGZvbnQgd2VpZ2h0IGZvciBoZWFkaW5nIHRleHQuXG5AbWl4aW4gbWF0LW5vcm1hbGl6ZS10ZXh0KCkge1xuICAmID4gKiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gIH1cbn1cblxuLy8gVGhpcyBtaXhpbiBwcm92aWRlcyBiYXNlIHN0eWxlcyBmb3IgdGhlIHdyYXBwZXIgYXJvdW5kIG1hdC1saW5lIGVsZW1lbnRzIGluIGEgbGlzdC5cbkBtaXhpbiBtYXQtbGluZS13cmFwcGVyLWJhc2UoKSB7XG4gIEBpbmNsdWRlIG1hdC1ub3JtYWxpemUtdGV4dCgpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXg6IGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgLy8gTXVzdCByZW1vdmUgd3JhcHBlciB3aGVuIGxpbmVzIGFyZSBlbXB0eSBvciBpdCB0YWtlcyB1cCBob3Jpem9udGFsXG4gIC8vIHNwYWNlIGFuZCBwdXNoZXMgb3RoZXIgZWxlbWVudHMgdG8gdGhlIHJpZ2h0LlxuICAmOmVtcHR5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cblxuXG4vLyBJbmNsdWRlIHRoaXMgZW1wdHkgbWl4aW4gZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIG90aGVyIGNvbXBvbmVudHMuXG5AbWl4aW4gbWF0LWdyaWQtbGlzdC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWdyaWQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1ncmlkLXRpbGUtaGVhZGVyLFxuICAubWF0LWdyaWQtdGlsZS1mb290ZXIge1xuICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKSk7XG4gICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtZ3JpZC1saXN0LWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1ncmlkLWxpc3QtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWdyaWQtbGlzdCcpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1ncmlkLWxpc3QtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1ncmlkLWxpc3QtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1ncmlkLWxpc3QtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5AbWl4aW4gbWF0LWljb24tY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LWljb24ge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1pY29uLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIF9tYXQtaWNvbi1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtaWNvbi10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtaWNvbicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1pY29uLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtaWNvbi1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWljb24tdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG4vLyBSZW5kZXJzIGEgZ3JhZGllbnQgZm9yIHNob3dpbmcgdGhlIGRhc2hlZCBsaW5lIHdoZW4gdGhlIGlucHV0IGlzIGRpc2FibGVkLlxuLy8gVW5saWtlIHVzaW5nIGEgYm9yZGVyLCBhIGdyYWRpZW50IGFsbG93cyB1cyB0byBhZGp1c3QgdGhlIHNwYWNpbmcgb2YgdGhlIGRvdHRlZCBsaW5lXG4vLyB0byBtYXRjaCB0aGUgTWF0ZXJpYWwgRGVzaWduIHNwZWMuXG5AbWl4aW4gbWF0LXByaXZhdGUtY29udHJvbC1kaXNhYmxlZC11bmRlcmxpbmUoJGNvbG9yKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJGNvbG9yIDAlLCAkY29sb3IgMzMlLCB0cmFuc3BhcmVudCAwJSk7XG4gIGJhY2tncm91bmQtc2l6ZTogNHB4IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cblxuLy8gRmlndXJlcyBvdXQgdGhlIGNvbG9yIG9mIHRoZSBwbGFjZWhvbGRlciBmb3IgYSBmb3JtIGNvbnRyb2wuXG4vLyBVc2VkIHByaW1hcmlseSB0byBwcmV2ZW50IHRoZSB2YXJpb3VzIGZvcm0gY29udHJvbHMgZnJvbVxuLy8gYmVjb21pbmcgb3V0IG9mIHN5bmMgc2luY2UgdGhlc2UgY29sb3JzIGFyZW4ndCBpbiBhIHBhbGV0dGUuXG5AZnVuY3Rpb24gbWF0LXByaXZhdGUtY29udHJvbC1wbGFjZWhvbGRlci1jb2xvcigkY29uZmlnKSB7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKTtcbiAgQHJldHVybiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0LCBpZigkaXMtZGFyay10aGVtZSwgMC41LCAwLjQyKSk7XG59XG5cblxuLyogc3R5bGVsaW50LWRpc2FibGUgbWF0ZXJpYWwvbm8tcHJlZml4ZXMgKi9cbkBtaXhpbiB1c2VyLXNlbGVjdCgkdmFsdWUpIHtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogJHZhbHVlO1xuICAtbW96LXVzZXItc2VsZWN0OiAkdmFsdWU7XG4gIC1tcy11c2VyLXNlbGVjdDogJHZhbHVlO1xuICB1c2VyLXNlbGVjdDogJHZhbHVlO1xufVxuXG5AbWl4aW4gaW5wdXQtcGxhY2Vob2xkZXIge1xuICAmOjpwbGFjZWhvbGRlciB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAmOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50O1xuICB9XG5cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBjdXJzb3ItZ3JhYiB7XG4gIGN1cnNvcjogLXdlYmtpdC1ncmFiO1xuICBjdXJzb3I6IGdyYWI7XG59XG5cbkBtaXhpbiBjdXJzb3ItZ3JhYmJpbmcge1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYmJpbmc7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG59XG5cbkBtaXhpbiBiYWNrZmFjZS12aXNpYmlsaXR5KCR2YWx1ZSkge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6ICR2YWx1ZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogJHZhbHVlO1xufVxuXG5AbWl4aW4gcG9zaXRpb24tc3RpY2t5KCRpbXBvcnRhbnQ6IGZhbHNlKSB7XG4gIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreSAje2lmKCRpbXBvcnRhbnQsICchaW1wb3J0YW50JywgJycpfTtcbiAgcG9zaXRpb246IHN0aWNreSAje2lmKCRpbXBvcnRhbnQsICchaW1wb3J0YW50JywgJycpfTtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuXG5cbkBtaXhpbiBtYXQtaW5wdXQtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0IC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtaW5wdXQtZWxlbWVudDpkaXNhYmxlZCxcbiAgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gIH1cblxuICAubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIGNhcmV0LWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuXG4gICAgQGluY2x1ZGUgaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IG1hdC1wcml2YXRlLWNvbnRyb2wtcGxhY2Vob2xkZXItY29sb3IoJGNvbmZpZyk7XG4gICAgfVxuXG4gICAgLy8gT24gZGFyayB0aGVtZXMgd2Ugc2V0IHRoZSBuYXRpdmUgYHNlbGVjdGAgY29sb3IgdG8gc29tZSBzaGFkZSBvZiB3aGl0ZSxcbiAgICAvLyBob3dldmVyIHRoZSBjb2xvciBwcm9wYWdhdGVzIHRvIGFsbCBvZiB0aGUgYG9wdGlvbmAgZWxlbWVudHMsIHdoaWNoIGFyZVxuICAgIC8vIGFsd2F5cyBvbiBhIHdoaXRlIGJhY2tncm91bmQgaW5zaWRlIHRoZSBkcm9wZG93biwgY2F1c2luZyB0aGVtIHRvIGJsZW5kIGluLlxuICAgIC8vIFNpbmNlIHdlIGNhbid0IGNoYW5nZSBiYWNrZ3JvdW5kIG9mIHRoZSBkcm9wZG93biwgd2UgbmVlZCB0byBleHBsaWNpdGx5XG4gICAgLy8gcmVzZXQgdGhlIGNvbG9yIG9mIHRoZSBvcHRpb25zIHRvIHNvbWV0aGluZyBkYXJrLlxuICAgIEBpZiAobWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKSkge1xuICAgICAgb3B0aW9uIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLXByaW1hcnktdGV4dDtcbiAgICAgIH1cblxuICAgICAgb3B0aW9uOmRpc2FibGVkIHtcbiAgICAgICAgY29sb3I6ICRkYXJrLWRpc2FibGVkLXRleHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1hY2NlbnQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCRhY2NlbnQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC13YXJuIC5tYXQtaW5wdXQtZWxlbWVudCxcbiAgLm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1pbnB1dC1lbGVtZW50IHtcbiAgICBjYXJldC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC10eXBlLW1hdC1uYXRpdmUtc2VsZWN0Lm1hdC1mb3JtLWZpZWxkLWludmFsaWQgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1pbnB1dC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuXG4gIC8vIFRoZSBhbW91bnQgb2Ygc3BhY2UgYmV0d2VlbiB0aGUgdG9wIG9mIHRoZSBsaW5lIGFuZCB0aGUgdG9wIG9mIHRoZSBhY3R1YWwgdGV4dFxuICAvLyAoYXMgYSBmcmFjdGlvbiBvZiB0aGUgZm9udC1zaXplKS5cbiAgJGxpbmUtc3BhY2luZzogKCRsaW5lLWhlaWdodCAtIDEpIC8gMjtcblxuICAvLyA8aW5wdXQ+IGVsZW1lbnRzIHNlZW0gdG8gaGF2ZSB0aGVpciBoZWlnaHQgc2V0IHNsaWdodGx5IHRvbyBsYXJnZSBvbiBTYWZhcmkgY2F1c2luZyB0aGUgdGV4dCB0b1xuICAvLyBiZSBtaXNhbGlnbmVkIHcuci50LiB0aGUgcGxhY2Vob2xkZXIuIEFkZGluZyB0aGlzIG1hcmdpbiBjb3JyZWN0cyBpdC5cbiAgaW5wdXQubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIG1hcmdpbi10b3A6IC0kbGluZS1zcGFjaW5nICogMWVtO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LWlucHV0LWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1pbnB1dC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtaW5wdXQnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtaW5wdXQtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1pbnB1dC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWlucHV0LXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5AbWl4aW4gbWF0LWxpc3QtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtbGlzdC1iYXNlIHtcbiAgICAubWF0LWxpc3QtaXRlbSB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtc3ViaGVhZGVyIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LWxpc3QtaXRlbS1kaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaXNhYmxlZC1saXN0LW9wdGlvbik7XG4gIH1cblxuICAubWF0LWxpc3Qtb3B0aW9uLFxuICAubWF0LW5hdi1saXN0IC5tYXQtbGlzdC1pdGVtLFxuICAubWF0LWFjdGlvbi1saXN0IC5tYXQtbGlzdC1pdGVtIHtcbiAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2hvdmVyJyk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1saXN0LXNpbmdsZS1zZWxlY3RlZC1vcHRpb24ge1xuICAgICYsICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBob3ZlciwgMC4xMik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtbGlzdC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG5cbiAgLm1hdC1saXN0LWl0ZW0ge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gIH1cblxuICAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICB9XG5cbiAgLy8gRGVmYXVsdCBsaXN0XG4gIC5tYXQtbGlzdC1iYXNlIHtcbiAgICAubWF0LWxpc3QtaXRlbSB7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgc3ViaGVhZGluZy0yKTtcbiAgICAgIEBpbmNsdWRlIG1hdC1saW5lLWJhc2UobWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpKTtcbiAgICB9XG5cbiAgICAubWF0LWxpc3Qtb3B0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBzdWJoZWFkaW5nLTIpO1xuICAgICAgQGluY2x1ZGUgbWF0LWxpbmUtYmFzZShtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSkpO1xuICAgIH1cblxuICAgIC5tYXQtc3ViaGVhZGVyIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0yKTtcbiAgICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICAgICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIERlbnNlIGxpc3RcbiAgLm1hdC1saXN0LWJhc2VbZGVuc2VdIHtcbiAgICAubWF0LWxpc3QtaXRlbSB7XG4gICAgICBmb250LXNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgICBAaW5jbHVkZSBtYXQtbGluZS1iYXNlKG1hdC1mb250LXNpemUoJGNvbmZpZywgY2FwdGlvbikpO1xuICAgIH1cblxuICAgIC5tYXQtbGlzdC1vcHRpb24ge1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgQGluY2x1ZGUgbWF0LWxpbmUtYmFzZShtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pKTtcbiAgICB9XG5cbiAgICAubWF0LXN1YmhlYWRlciB7XG4gICAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICAgICAgZm9udC1zaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTIpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX21hdC1saXN0LWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1saXN0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1saXN0Jykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWxpc3QtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1saXN0LWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtbGlzdC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuQG1peGluIG1hdC1tZW51LWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LW1lbnUtcGFuZWwge1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbig0LCAkY29uZmlnKTtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsICdjYXJkJyk7XG4gIH1cblxuICAubWF0LW1lbnUtaXRlbSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ3RleHQnKTtcblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICYsXG4gICAgICAmOjphZnRlcixcbiAgICAgIC5tYXQtaWNvbi1uby1jb2xvciB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsICdkaXNhYmxlZCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtbWVudS1pdGVtIC5tYXQtaWNvbi1uby1jb2xvcixcbiAgLm1hdC1tZW51LWl0ZW0tc3VibWVudS10cmlnZ2VyOjphZnRlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgJ2ljb24nKTtcbiAgfVxuXG4gIC5tYXQtbWVudS1pdGVtOmhvdmVyLFxuICAubWF0LW1lbnUtaXRlbS5jZGstcHJvZ3JhbS1mb2N1c2VkLFxuICAubWF0LW1lbnUtaXRlbS5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgLm1hdC1tZW51LWl0ZW0taGlnaGxpZ2h0ZWQge1xuICAgICY6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2hvdmVyJyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtbWVudS10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC1tZW51LWl0ZW0ge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJvZHktMSk7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMSk7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX21hdC1tZW51LWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1tZW51LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1tZW51Jykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LW1lbnUtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1tZW51LWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtbWVudS10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbiRtYXQtcGFnaW5hdG9yLWhlaWdodDogNTZweCAhZGVmYXVsdDtcbi8vIE1pbmltdW0gaGVpZ2h0IGZvciBwYWdpbmF0b3IncyBpbiB0aGUgaGlnaGVzdCBkZW5zaXR5IGlzIGRldGVybWluZWQgYmFzZWQgb24gaG93XG4vLyBtdWNoIHRoZSBwYWdpbmF0b3IgY2FuIHNocmluayB1bnRpbCB0aGUgY29udGVudCBleGNlZWRzIChpLmUuIG5hdmlnYXRpb24gYnV0dG9ucykuXG4kbWF0LXBhZ2luYXRvci1taW5pbXVtLWhlaWdodDogNDBweCAhZGVmYXVsdDtcbiRtYXQtcGFnaW5hdG9yLW1heGltdW0taGVpZ2h0OiAkbWF0LXBhZ2luYXRvci1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRtYXQtcGFnaW5hdG9yLWRlbnNpdHktY29uZmlnOiAoXG4gIGhlaWdodDogKFxuICAgIGRlZmF1bHQ6ICRtYXQtcGFnaW5hdG9yLWhlaWdodCxcbiAgICBtYXhpbXVtOiAkbWF0LXBhZ2luYXRvci1tYXhpbXVtLWhlaWdodCxcbiAgICBtaW5pbXVtOiAkbWF0LXBhZ2luYXRvci1taW5pbXVtLWhlaWdodCxcbiAgKVxuKSAhZGVmYXVsdDtcblxuXG5AbWl4aW4gbWF0LXBhZ2luYXRvci1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG5cbiAgLm1hdC1wYWdpbmF0b3Ige1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtcGFnaW5hdG9yLFxuICAubWF0LXBhZ2luYXRvci1wYWdlLXNpemUgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1wYWdpbmF0b3ItZGVjcmVtZW50LFxuICAubWF0LXBhZ2luYXRvci1pbmNyZW1lbnQge1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCBtYXQtY29sb3IoJGZvcmVncm91bmQsICdpY29uJyk7XG4gICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnaWNvbicpO1xuICB9XG5cbiAgLm1hdC1wYWdpbmF0b3ItZmlyc3QsXG4gIC5tYXQtcGFnaW5hdG9yLWxhc3Qge1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCBtYXQtY29sb3IoJGZvcmVncm91bmQsICdpY29uJyk7XG4gIH1cblxuICAubWF0LWljb24tYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgLm1hdC1wYWdpbmF0b3ItZGVjcmVtZW50LFxuICAgIC5tYXQtcGFnaW5hdG9yLWluY3JlbWVudCxcbiAgICAubWF0LXBhZ2luYXRvci1maXJzdCxcbiAgICAubWF0LXBhZ2luYXRvci1sYXN0IHtcbiAgICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCAnZGlzYWJsZWQnKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wYWdpbmF0b3ItdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtcGFnaW5hdG9yLFxuICAubWF0LXBhZ2luYXRvci1wYWdlLXNpemUgLm1hdC1zZWxlY3QtdHJpZ2dlciB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgY2FwdGlvbik7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGNhcHRpb24pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXBhZ2luYXRvci1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGRlbnNpdHktc2NhbGU6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRoZWlnaHQ6IG1hdC1wcml2YXRlLWRlbnNpdHktcHJvcC12YWx1ZSgkbWF0LXBhZ2luYXRvci1kZW5zaXR5LWNvbmZpZywgJGRlbnNpdHktc2NhbGUsIGhlaWdodCk7XG5cbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtZGVuc2l0eS1sZWdhY3ktY29tcGF0aWJpbGl0eSgpIHtcbiAgICAubWF0LXBhZ2luYXRvci1jb250YWluZXIge1xuICAgICAgbWluLWhlaWdodDogJGhlaWdodDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wYWdpbmF0b3ItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LXBhZ2luYXRvcicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wYWdpbmF0b3ItY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXBhZ2luYXRvci1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXBhZ2luYXRvci10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuQG1peGluIG1hdC1wcm9ncmVzcy1iYXItY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG5cbiAgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gICAgZmlsbDogbWF0LWNvbG9yKCRwcmltYXJ5LCBsaWdodGVyKTtcbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLWJ1ZmZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCBsaWdodGVyKTtcbiAgfVxuXG4gIC5tYXQtcHJvZ3Jlc3MtYmFyLWZpbGw6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnkpO1xuICB9XG5cbiAgLm1hdC1wcm9ncmVzcy1iYXIubWF0LWFjY2VudCB7XG4gICAgLm1hdC1wcm9ncmVzcy1iYXItYmFja2dyb3VuZCB7XG4gICAgICBmaWxsOiBtYXQtY29sb3IoJGFjY2VudCwgbGlnaHRlcik7XG4gICAgfVxuXG4gICAgLm1hdC1wcm9ncmVzcy1iYXItYnVmZmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYWNjZW50LCBsaWdodGVyKTtcbiAgICB9XG5cbiAgICAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1wcm9ncmVzcy1iYXIubWF0LXdhcm4ge1xuICAgIC5tYXQtcHJvZ3Jlc3MtYmFyLWJhY2tncm91bmQge1xuICAgICAgZmlsbDogbWF0LWNvbG9yKCR3YXJuLCBsaWdodGVyKTtcbiAgICB9XG5cbiAgICAubWF0LXByb2dyZXNzLWJhci1idWZmZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuLCBsaWdodGVyKTtcbiAgICB9XG5cbiAgICAubWF0LXByb2dyZXNzLWJhci1maWxsOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHdhcm4pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXByb2dyZXNzLWJhci10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBfbWF0LXByb2dyZXNzLWJhci1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3MtYmFyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1wcm9ncmVzcy1iYXInKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3MtYmFyLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtcHJvZ3Jlc3MtYmFyLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3MtYmFyLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcblxuICAubWF0LXByb2dyZXNzLXNwaW5uZXIsIC5tYXQtc3Bpbm5lciB7XG4gICAgY2lyY2xlIHtcbiAgICAgIHN0cm9rZTogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm1hdC1hY2NlbnQgY2lyY2xlIHtcbiAgICAgIHN0cm9rZTogbWF0LWNvbG9yKCRhY2NlbnQpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4gY2lyY2xlIHtcbiAgICAgIHN0cm9rZTogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1wcm9ncmVzcy1zcGlubmVyLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIF9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtcHJvZ3Jlc3Mtc3Bpbm5lcicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1zcGlubmVyLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lci1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLXNwaW5uZXItdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuQG1peGluIF9tYXQtcmFkaW8tY29sb3IoJHBhbGV0dGUpIHtcbiAgJi5tYXQtcmFkaW8tY2hlY2tlZCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gICAgYm9yZGVyLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG5cbiAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUsXG4gIC5tYXQtcmFkaW8tcmlwcGxlIC5tYXQtcmlwcGxlLWVsZW1lbnQ6bm90KC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUpLFxuICAmLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUsXG4gICY6YWN0aXZlIC5tYXQtcmFkaW8tcGVyc2lzdGVudC1yaXBwbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC1yYWRpby1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICB9XG5cbiAgLm1hdC1yYWRpby1idXR0b24ge1xuICAgICYubWF0LXByaW1hcnkge1xuICAgICAgQGluY2x1ZGUgX21hdC1yYWRpby1jb2xvcigkcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5tYXQtYWNjZW50IHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtcmFkaW8tY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXJhZGlvLWNvbG9yKCR3YXJuKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIG5lZWRzIGV4dHJhIHNwZWNpZmljaXR5LCBiZWNhdXNlIHRoZSBjbGFzc2VzIGFib3ZlIGFyZSBjb21iaW5lZFxuICAgIC8vIChlLmcuIGAubWF0LXJhZGlvLWJ1dHRvbi5tYXQtYWNjZW50YCkgd2hpY2ggaW5jcmVhc2VzIHRoZWlyIHNwZWNpZmljaXR5IGEgbG90LlxuICAgIC8vIFRPRE86IGNvbnNpZGVyIG1ha2luZyB0aGUgc2VsZWN0b3JzIGludG8gZGVzY2VuZGFudHMgKGAubWF0LXByaW1hcnkgLm1hdC1yYWRpby1idXR0b25gKS5cbiAgICAmLm1hdC1yYWRpby1kaXNhYmxlZCB7XG4gICAgICAmLm1hdC1yYWRpby1jaGVja2VkIC5tYXQtcmFkaW8tb3V0ZXItY2lyY2xlLFxuICAgICAgLm1hdC1yYWRpby1vdXRlci1jaXJjbGUge1xuICAgICAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAgICAgfVxuXG4gICAgICAubWF0LXJhZGlvLXJpcHBsZSAubWF0LXJpcHBsZS1lbGVtZW50LFxuICAgICAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkKTtcbiAgICAgIH1cblxuICAgICAgLm1hdC1yYWRpby1sYWJlbC1jb250ZW50IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN3aXRjaCB0aGlzIHRvIGEgc29saWQgY29sb3Igc2luY2Ugd2UncmUgdXNpbmcgYG9wYWNpdHlgXG4gICAgLy8gdG8gY29udHJvbCBob3cgb3BhcXVlIHRoZSByaXBwbGUgc2hvdWxkIGJlLlxuICAgIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWFwLWdldCgkZm9yZWdyb3VuZCwgYmFzZSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcmFkaW8tdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtcmFkaW8tYnV0dG9uIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LXJhZGlvLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1yYWRpby10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtcmFkaW8nKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcmFkaW8tY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC1yYWRpby1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXJhZGlvLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtc2VsZWN0LWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG5cbiAgLm1hdC1zZWxlY3QtdmFsdWUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1zZWxlY3QtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiBtYXQtcHJpdmF0ZS1jb250cm9sLXBsYWNlaG9sZGVyLWNvbG9yKCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC1zZWxlY3QtZGlzYWJsZWQgLm1hdC1zZWxlY3QtdmFsdWUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICB9XG5cbiAgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNlY29uZGFyeS10ZXh0KTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXBhbmVsIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLW92ZXJyaWRhYmxlLWVsZXZhdGlvbig0LCAkY29uZmlnKTtcblxuICAgIC5tYXQtb3B0aW9uLm1hdC1zZWxlY3RlZDpub3QoLm1hdC1vcHRpb24tbXVsdGlwbGUpIHtcbiAgICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgaG92ZXIsIDAuMTIpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZCB7XG4gICAgJi5tYXQtZm9jdXNlZCB7XG4gICAgICAmLm1hdC1wcmltYXJ5IC5tYXQtc2VsZWN0LWFycm93IHtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkcHJpbWFyeSwgdGV4dCk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWFjY2VudCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4gLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXNlbGVjdC5tYXQtc2VsZWN0LWludmFsaWQgLm1hdC1zZWxlY3QtYXJyb3cge1xuICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgdGV4dCk7XG4gICAgfVxuXG4gICAgLm1hdC1zZWxlY3QubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zZWxlY3QtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcblxuICAubWF0LXNlbGVjdCB7XG4gICAgZm9udC1mYW1pbHk6IG1hdC1mb250LWZhbWlseSgkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtc2VsZWN0LXRyaWdnZXIge1xuICAgIGhlaWdodDogJGxpbmUtaGVpZ2h0ICogMWVtO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LXNlbGVjdC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtc2VsZWN0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1zZWxlY3QnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc2VsZWN0LWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc2VsZWN0LWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc2VsZWN0LXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbkBtaXhpbiBtYXQtc2lkZW5hdi1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gICRkcmF3ZXItYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBkaWFsb2cpO1xuICAkZHJhd2VyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yOiAgbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kKTtcbiAgJGRyYXdlci1wdXNoLWJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgZGlhbG9nKTtcbiAgJGRyYXdlci1zaWRlLWJvcmRlcjogc29saWQgMXB4IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG5cbiAgLm1hdC1kcmF3ZXItY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJhd2VyLWNvbnRhaW5lci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG5cbiAgLm1hdC1kcmF3ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcblxuICAgICYubWF0LWRyYXdlci1wdXNoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkcmF3ZXItcHVzaC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cblxuICAgICY6bm90KC5tYXQtZHJhd2VyLXNpZGUpIHtcbiAgICAgIC8vIFRoZSBlbGV2YXRpb24gb2Ygei0xNiBpcyBub3RlZCBpbiB0aGUgZGVzaWduIHNwZWNpZmljYXRpb25zLlxuICAgICAgLy8gU2VlIGh0dHBzOi8vbWF0ZXJpYWwuaW8vZGVzaWduL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1kcmF3ZXIuaHRtbFxuICAgICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtZWxldmF0aW9uKDE2LCAkY29uZmlnKTtcbiAgICB9XG4gIH1cblxuICAubWF0LWRyYXdlci1zaWRlIHtcbiAgICBib3JkZXItcmlnaHQ6ICRkcmF3ZXItc2lkZS1ib3JkZXI7XG5cbiAgICAmLm1hdC1kcmF3ZXItZW5kIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIFtkaXI9J3J0bCddIC5tYXQtZHJhd2VyLXNpZGUge1xuICAgIGJvcmRlci1sZWZ0OiAkZHJhd2VyLXNpZGUtYm9yZGVyO1xuICAgIGJvcmRlci1yaWdodDogbm9uZTtcblxuICAgICYubWF0LWRyYXdlci1lbmQge1xuICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICBib3JkZXItcmlnaHQ6ICRkcmF3ZXItc2lkZS1ib3JkZXI7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1kcmF3ZXItYmFja2Ryb3AubWF0LWRyYXdlci1zaG93biB7XG4gICAgJG9wYWNpdHk6IDAuNjtcbiAgICAkYmFja2Ryb3AtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgY2FyZCwgJG9wYWNpdHkpO1xuXG4gICAgQGlmICh0eXBlLW9mKCRiYWNrZHJvcC1jb2xvcikgPT0gY29sb3IpIHtcbiAgICAgIC8vIFdlIHVzZSBpbnZlcnQoKSBoZXJlIHRvIGhhdmUgdGhlIGRhcmtlbiB0aGUgYmFja2dyb3VuZCBjb2xvciBleHBlY3RlZCB0byBiZSB1c2VkLiBJZiB0aGVcbiAgICAgIC8vIGJhY2tncm91bmQgaXMgbGlnaHQsIHdlIHVzZSBhIGRhcmsgYmFja2Ryb3AuIElmIHRoZSBiYWNrZ3JvdW5kIGlzIGRhcmssXG4gICAgICAvLyB3ZSB1c2UgYSBsaWdodCBiYWNrZHJvcC5cbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGludmVydCgkYmFja2Ryb3AtY29sb3IpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBJZiB3ZSBjb3VsZG4ndCByZXNvbHZlIHRoZSBiYWNrZHJvcCBjb2xvciB0byBhIGNvbG9yIHZhbHVlLCBmYWxsIGJhY2sgdG8gdXNpbmdcbiAgICAgIC8vIGBvcGFjaXR5YCB0byBtYWtlIGl0IG9wYXF1ZSBzaW5jZSBpdHMgZW5kIHZhbHVlIGNvdWxkIGJlIGEgc29saWQgY29sb3IuXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2Ryb3AtY29sb3I7XG4gICAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zaWRlbmF2LXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIF9tYXQtc2lkZW5hdi1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtc2lkZW5hdi10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtc2lkZW5hdicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1zaWRlbmF2LWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc2lkZW5hdi1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXNpZGVuYXYtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5AbWl4aW4gX21hdC1zbGlkZS10b2dnbGUtY2hlY2tlZCgkcGFsZXR0ZSwgJHRodW1iLWNoZWNrZWQtaHVlKSB7XG4gICYubWF0LWNoZWNrZWQge1xuICAgIC5tYXQtc2xpZGUtdG9nZ2xlLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgJHRodW1iLWNoZWNrZWQtaHVlKTtcbiAgICB9XG5cbiAgICAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICAgICAgLy8gT3BhY2l0eSBpcyBkZXRlcm1pbmVkIGZyb20gdGhlIHNwZWNzIGZvciB0aGUgc2VsZWN0aW9uIGNvbnRyb2xzLlxuICAgICAgLy8gU2VlOiBodHRwczovL21hdGVyaWFsLmlvL2Rlc2lnbi9jb21wb25lbnRzL3NlbGVjdGlvbi1jb250cm9scy5odG1sI3NwZWNzXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSwgMC41NCk7XG4gICAgfVxuXG4gICAgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgICAvLyBTZXQgbm8gb3BhY2l0eSBmb3IgdGhlIHJpcHBsZXMgYmVjYXVzZSB0aGUgcmlwcGxlIG9wYWNpdHkgd2lsbCBiZSBhZGp1c3RlZCBkeW5hbWljYWxseVxuICAgICAgLy8gYmFzZWQgb24gdGhlIHR5cGUgb2YgaW50ZXJhY3Rpb24gd2l0aCB0aGUgc2xpZGUtdG9nZ2xlIChlLmcuIGZvciBob3ZlciwgZm9jdXMpXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUsICR0aHVtYi1jaGVja2VkLWh1ZSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc2xpZGUtdG9nZ2xlLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRpcy1kYXJrOiBtYXAtZ2V0KCRjb25maWcsIGlzLWRhcmspO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gIC8vIENvbG9yIGh1ZXMgYXJlIGJhc2VkIG9uIHRoZSBzcGVjcyB3aGljaCBicmllZmx5IHNob3cgdGhlIGh1ZXMgdGhhdCBhcmUgYXBwbGllZCB0byBhIHN3aXRjaC5cbiAgLy8gVGhlIDIwMTggc3BlY3Mgbm8gbG9uZ2VyIGRlc2NyaWJlIGhvdyBkYXJrIHN3aXRjaGVzIHNob3VsZCBsb29rIGxpa2UuIER1ZSB0byB0aGUgbGFjayBvZlxuICAvLyBpbmZvcm1hdGlvbiBmb3IgZGFyayB0aGVtZWQgc3dpdGNoZXMsIHdlIHBhcnRpYWxseSBrZWVwIHRoZSBvbGQgYmVoYXZpb3IgdGhhdCBpcyBiYXNlZCBvblxuICAvLyB0aGUgcHJldmlvdXMgc3BlY2lmaWNhdGlvbnMuIEZvciB0aGUgY2hlY2tlZCBjb2xvciB3ZSBhbHdheXMgdXNlIHRoZSBgZGVmYXVsdGAgaHVlIGJlY2F1c2VcbiAgLy8gdGhhdCBmb2xsb3dzIE1EQyBhbmQgYWxzbyBtYWtlcyBpdCBlYXNpZXIgZm9yIHBlb3BsZSB0byBjcmVhdGUgYSBjdXN0b20gdGhlbWUgd2l0aG91dCBuZWVkaW5nXG4gIC8vIHRvIHNwZWNpZnkgZWFjaCBodWUgaW5kaXZpZHVhbGx5LlxuICAkdGh1bWItdW5jaGVja2VkLWh1ZTogaWYoJGlzLWRhcmssIDQwMCwgNTApO1xuICAkdGh1bWItY2hlY2tlZC1odWU6IGRlZmF1bHQ7XG5cbiAgJGJhci11bmNoZWNrZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQpO1xuICAkcmlwcGxlLXVuY2hlY2tlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlKTtcblxuICAubWF0LXNsaWRlLXRvZ2dsZSB7XG4gICAgQGluY2x1ZGUgX21hdC1zbGlkZS10b2dnbGUtY2hlY2tlZCgkYWNjZW50LCAkdGh1bWItY2hlY2tlZC1odWUpO1xuXG4gICAgJi5tYXQtcHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXNsaWRlLXRvZ2dsZS1jaGVja2VkKCRwcmltYXJ5LCAkdGh1bWItY2hlY2tlZC1odWUpO1xuICAgIH1cblxuICAgICYubWF0LXdhcm4ge1xuICAgICAgQGluY2x1ZGUgX21hdC1zbGlkZS10b2dnbGUtY2hlY2tlZCgkd2FybiwgJHRodW1iLWNoZWNrZWQtaHVlKTtcbiAgICB9XG5cbiAgICAmOm5vdCgubWF0LWNoZWNrZWQpIC5tYXQtcmlwcGxlLWVsZW1lbnQge1xuICAgICAgLy8gU2V0IG5vIG9wYWNpdHkgZm9yIHRoZSByaXBwbGVzIGJlY2F1c2UgdGhlIHJpcHBsZSBvcGFjaXR5IHdpbGwgYmUgYWRqdXN0ZWQgZHluYW1pY2FsbHlcbiAgICAgIC8vIGJhc2VkIG9uIHRoZSB0eXBlIG9mIGludGVyYWN0aW9uIHdpdGggdGhlIHNsaWRlLXRvZ2dsZSAoZS5nLiBmb3IgaG92ZXIsIGZvY3VzKVxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJpcHBsZS11bmNoZWNrZWQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLm1hdC1zbGlkZS10b2dnbGUtdGh1bWIge1xuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLWVsZXZhdGlvbigxLCAkY29uZmlnKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJG1hdC1ncmV5LCAkdGh1bWItdW5jaGVja2VkLWh1ZSk7XG4gIH1cblxuICAubWF0LXNsaWRlLXRvZ2dsZS1iYXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXItdW5jaGVja2VkLWNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc2xpZGUtdG9nZ2xlLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LXNsaWRlLXRvZ2dsZS1jb250ZW50IHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LXNsaWRlLXRvZ2dsZS1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtc2xpZGUtdG9nZ2xlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1zbGlkZS10b2dnbGUnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc2xpZGUtdG9nZ2xlLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc2xpZGUtdG9nZ2xlLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc2xpZGUtdG9nZ2xlLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cblxuQG1peGluIF9tYXQtc2xpZGVyLWlubmVyLWNvbnRlbnQtdGhlbWUoJHBhbGV0dGUpIHtcbiAgLm1hdC1zbGlkZXItdHJhY2stZmlsbCxcbiAgLm1hdC1zbGlkZXItdGh1bWIsXG4gIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJHBhbGV0dGUpO1xuICB9XG5cbiAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtdGV4dCB7XG4gICAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cblxuICAubWF0LXNsaWRlci1mb2N1cy1yaW5nIHtcbiAgICAkb3BhY2l0eTogMC4yO1xuICAgICRjb2xvcjogbWF0LWNvbG9yKCRwYWxldHRlLCBkZWZhdWx0LCAkb3BhY2l0eSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuXG4gICAgLy8gYG1hdC1jb2xvcmAgdXNlcyBgcmdiYWAgZm9yIHRoZSBvcGFjaXR5IHdoaWNoIHdvbid0IHdvcmsgd2l0aFxuICAgIC8vIENTUyB2YXJpYWJsZXMgc28gd2UgbmVlZCB0byB1c2UgYG9wYWNpdHlgIGFzIGEgZmFsbGJhY2suXG4gICAgQGlmICh0eXBlLW9mKCRjb2xvcikgIT0gY29sb3IpIHtcbiAgICAgIG9wYWNpdHk6ICRvcGFjaXR5O1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gbWF0LXNsaWRlci1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkcHJpbWFyeTogbWFwLWdldCgkY29uZmlnLCBwcmltYXJ5KTtcbiAgJGFjY2VudDogbWFwLWdldCgkY29uZmlnLCBhY2NlbnQpO1xuICAkd2FybjogbWFwLWdldCgkY29uZmlnLCB3YXJuKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gICRtYXQtc2xpZGVyLW9mZi1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItb2ZmLWZvY3VzZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW9mZi1hY3RpdmUpO1xuICAkbWF0LXNsaWRlci1kaXNhYmxlZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzbGlkZXItb2ZmKTtcbiAgJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2xpZGVyLW1pbik7XG4gICRtYXQtc2xpZGVyLWxhYmVsZWQtbWluLXZhbHVlLXRodW1iLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHNsaWRlci1vZmYpO1xuICAkbWF0LXNsaWRlci10aWNrLW9wYWNpdHk6IDAuNztcbiAgJG1hdC1zbGlkZXItdGljay1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlLCAkbWF0LXNsaWRlci10aWNrLW9wYWNpdHkpO1xuICAkbWF0LXNsaWRlci10aWNrLXNpemU6IDJweDtcblxuICAubWF0LXNsaWRlci10cmFjay1iYWNrZ3JvdW5kIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1vZmYtY29sb3I7XG4gIH1cblxuICAubWF0LXByaW1hcnkge1xuICAgIEBpbmNsdWRlIF9tYXQtc2xpZGVyLWlubmVyLWNvbnRlbnQtdGhlbWUoJHByaW1hcnkpO1xuICB9XG5cbiAgLm1hdC1hY2NlbnQge1xuICAgIEBpbmNsdWRlIF9tYXQtc2xpZGVyLWlubmVyLWNvbnRlbnQtdGhlbWUoJGFjY2VudCk7XG4gIH1cblxuICAubWF0LXdhcm4ge1xuICAgIEBpbmNsdWRlIF9tYXQtc2xpZGVyLWlubmVyLWNvbnRlbnQtdGhlbWUoJHdhcm4pO1xuICB9XG5cbiAgLm1hdC1zbGlkZXI6aG92ZXIsXG4gIC5jZGstZm9jdXNlZCB7XG4gICAgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWF0LXNsaWRlci1vZmYtZm9jdXNlZC1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubWF0LXNsaWRlci1kaXNhYmxlZCB7XG4gICAgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCxcbiAgICAubWF0LXNsaWRlci10cmFjay1maWxsLFxuICAgIC5tYXQtc2xpZGVyLXRodW1iIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWRpc2FibGVkLWNvbG9yO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgLm1hdC1zbGlkZXItdHJhY2stYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWRpc2FibGVkLWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLW1pbi12YWx1ZSB7XG4gICAgLm1hdC1zbGlkZXItZm9jdXMtcmluZyB7XG4gICAgICAkb3BhY2l0eTogMC4xMjtcbiAgICAgICRjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlLCAkb3BhY2l0eSk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG5cbiAgICAgIC8vIGBtYXQtY29sb3JgIHVzZXMgYHJnYmFgIGZvciB0aGUgb3BhY2l0eSB3aGljaCB3b24ndCB3b3JrIHdpdGhcbiAgICAgIC8vIENTUyB2YXJpYWJsZXMgc28gd2UgbmVlZCB0byB1c2UgYG9wYWNpdHlgIGFzIGEgZmFsbGJhY2suXG4gICAgICBAaWYgKHR5cGUtb2YoJGNvbG9yKSAhPSBjb2xvcikge1xuICAgICAgICBvcGFjaXR5OiAkb3BhY2l0eTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZyB7XG4gICAgICAubWF0LXNsaWRlci10aHVtYixcbiAgICAgIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1hdC1zbGlkZXItbGFiZWxlZC1taW4tdmFsdWUtdGh1bWItY29sb3I7XG4gICAgICB9XG5cbiAgICAgICYuY2RrLWZvY3VzZWQge1xuICAgICAgICAubWF0LXNsaWRlci10aHVtYixcbiAgICAgICAgLm1hdC1zbGlkZXItdGh1bWItbGFiZWwge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtYXQtc2xpZGVyLWxhYmVsZWQtbWluLXZhbHVlLXRodW1iLWxhYmVsLWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLm1hdC1zbGlkZXItdGh1bWItbGFiZWwtc2hvd2luZykge1xuICAgICAgLm1hdC1zbGlkZXItdGh1bWIge1xuICAgICAgICBib3JkZXItY29sb3I6ICRtYXQtc2xpZGVyLW9mZi1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmLmNkay1mb2N1c2VkIHtcbiAgICAgICAgLm1hdC1zbGlkZXItdGh1bWIge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJG1hdC1zbGlkZXItb2ZmLWZvY3VzZWQtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmLm1hdC1zbGlkZXItZGlzYWJsZWQgLm1hdC1zbGlkZXItdGh1bWIge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJG1hdC1zbGlkZXItZGlzYWJsZWQtY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAubWF0LXNsaWRlci1oYXMtdGlja3MgLm1hdC1zbGlkZXItd3JhcHBlcjo6YWZ0ZXIge1xuICAgIGJvcmRlci1jb2xvcjogJG1hdC1zbGlkZXItdGljay1jb2xvcjtcblxuICAgIC8vIGBtYXQtY29sb3JgIHVzZXMgYHJnYmFgIGZvciB0aGUgb3BhY2l0eSB3aGljaCB3b24ndCB3b3JrIHdpdGhcbiAgICAvLyBDU1MgdmFyaWFibGVzIHNvIHdlIG5lZWQgdG8gdXNlIGBvcGFjaXR5YCBhcyBhIGZhbGxiYWNrLlxuICAgIEBpZiAodHlwZS1vZigkbWF0LXNsaWRlci10aWNrLWNvbG9yKSAhPSBjb2xvcikge1xuICAgICAgb3BhY2l0eTogJG1hdC1zbGlkZXItdGljay1vcGFjaXR5O1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtc2xpZGVyLWhvcml6b250YWwgLm1hdC1zbGlkZXItdGlja3Mge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICRtYXQtc2xpZGVyLXRpY2stY29sb3IsXG4gICAgICAgICRtYXQtc2xpZGVyLXRpY2stY29sb3IgJG1hdC1zbGlkZXItdGljay1zaXplLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7XG4gICAgLy8gRmlyZWZveCBkb2Vzbid0IGRyYXcgdGhlIGdyYWRpZW50IGNvcnJlY3RseSB3aXRoICd0byByaWdodCdcbiAgICAvLyAoc2VlIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTQzMTkpLlxuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCgwLjAwMDFkZWcsICRtYXQtc2xpZGVyLXRpY2stY29sb3IsXG4gICAgICAgICRtYXQtc2xpZGVyLXRpY2stY29sb3IgJG1hdC1zbGlkZXItdGljay1zaXplLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7XG5cbiAgICAvLyBgbWF0LWNvbG9yYCB1c2VzIGByZ2JhYCBmb3IgdGhlIG9wYWNpdHkgd2hpY2ggd29uJ3Qgd29yayB3aXRoXG4gICAgLy8gQ1NTIHZhcmlhYmxlcyBzbyB3ZSBuZWVkIHRvIHVzZSBgb3BhY2l0eWAgYXMgYSBmYWxsYmFjay5cbiAgICBAaWYgKHR5cGUtb2YoJG1hdC1zbGlkZXItdGljay1jb2xvcikgIT0gY29sb3IpIHtcbiAgICAgIG9wYWNpdHk6ICRtYXQtc2xpZGVyLXRpY2stb3BhY2l0eTtcbiAgICB9XG4gIH1cblxuICAubWF0LXNsaWRlci12ZXJ0aWNhbCAubWF0LXNsaWRlci10aWNrcyB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICRtYXQtc2xpZGVyLXRpY2stY29sb3IsXG4gICAgICAgICRtYXQtc2xpZGVyLXRpY2stY29sb3IgJG1hdC1zbGlkZXItdGljay1zaXplLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCk7XG5cbiAgICAvLyBgbWF0LWNvbG9yYCB1c2VzIGByZ2JhYCBmb3IgdGhlIG9wYWNpdHkgd2hpY2ggd29uJ3Qgd29yayB3aXRoXG4gICAgLy8gQ1NTIHZhcmlhYmxlcyBzbyB3ZSBuZWVkIHRvIHVzZSBgb3BhY2l0eWAgYXMgYSBmYWxsYmFjay5cbiAgICBAaWYgKHR5cGUtb2YoJG1hdC1zbGlkZXItdGljay1jb2xvcikgIT0gY29sb3IpIHtcbiAgICAgIG9wYWNpdHk6ICRtYXQtc2xpZGVyLXRpY2stb3BhY2l0eTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zbGlkZXItdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtc2xpZGVyLXRodW1iLWxhYmVsLXRleHQge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICAgICAgc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBjYXB0aW9uKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMik7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LXNsaWRlci1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtc2xpZGVyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1zbGlkZXInKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc2xpZGVyLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc2xpZGVyLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc2xpZGVyLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbiRtYXQtc3RlcHBlci1oZWFkZXItaGVpZ2h0OiA3MnB4ICFkZWZhdWx0O1xuLy8gTWluaW11bSBoZWlnaHQgZm9yIGhpZ2hlc3QgZGVuc2l0eSBzdGVwcGVyJ3MgaXMgZGV0ZXJtaW5lZCBiYXNlZCBvbiBob3cgbXVjaFxuLy8gc3RlcHBlciBoZWFkZXJzIGNhbiBzaHJpbmsgdW50aWwgdGhlIHN0ZXAgaWNvbiBvciBzdGVwIGxhYmVsIGV4Y2VlZC4gV2UgY2FuJ3QgdXNlXG4vLyBhIHZhbHVlIGJlbG93IGA0MnB4YCBiZWNhdXNlIHRoZSBvcHRpb25hbCBsYWJlbCBmb3Igc3RlcHMgd291bGQgb3RoZXJ3aXNlIGV4Y2VlZC5cbiRtYXQtc3RlcHBlci1oZWFkZXItbWluaW11bS1oZWlnaHQ6IDQycHggIWRlZmF1bHQ7XG4kbWF0LXN0ZXBwZXItaGVhZGVyLW1heGltdW0taGVpZ2h0OiAkbWF0LXN0ZXBwZXItaGVhZGVyLWhlaWdodCAhZGVmYXVsdDtcblxuJG1hdC1zdGVwcGVyLWRlbnNpdHktY29uZmlnOiAoXG4gIGhlaWdodDogKFxuICAgIGRlZmF1bHQ6ICRtYXQtc3RlcHBlci1oZWFkZXItaGVpZ2h0LFxuICAgIG1heGltdW06ICRtYXQtc3RlcHBlci1oZWFkZXItbWF4aW11bS1oZWlnaHQsXG4gICAgbWluaW11bTogJG1hdC1zdGVwcGVyLWhlYWRlci1taW5pbXVtLWhlaWdodCxcbiAgKVxuKSAhZGVmYXVsdDtcblxuLy8gTm90ZTogVGhlc2UgdmFyaWFibGVzIGFyZSBub3QgZGVub3RlZCB3aXRoIGAhZGVmYXVsdGAgYmVjYXVzZSB0aGV5IGFyZSB1c2VkIGluIHRoZSBub24tdGhlbWVcbi8vIGNvbXBvbmVudCBzdHlsZXMuIE1vZGlmeWluZyB0aGVzZSB2YXJpYWJsZXMgZG9lcyBub3QgaGF2ZSB0aGUgZGVzaXJlZCBlZmZlY3QgZm9yIGNvbnN1bWVycy5cbiRtYXQtc3RlcHBlci1sYWJlbC1oZWFkZXItaGVpZ2h0OiAyNHB4O1xuJG1hdC1zdGVwcGVyLWxhYmVsLXBvc2l0aW9uLWJvdHRvbS10b3AtZ2FwOiAxNnB4O1xuJG1hdC1zdGVwcGVyLWxhYmVsLW1pbi13aWR0aDogNTBweDtcblxuJG1hdC12ZXJ0aWNhbC1zdGVwcGVyLWNvbnRlbnQtbWFyZ2luOiAzNnB4O1xuXG4kbWF0LXN0ZXBwZXItc2lkZS1nYXA6IDI0cHg7XG4kbWF0LXN0ZXBwZXItbGluZS13aWR0aDogMXB4O1xuJG1hdC1zdGVwcGVyLWxpbmUtZ2FwOiA4cHg7XG5cbiRtYXQtc3RlcC1zdWItbGFiZWwtZm9udC1zaXplOiAxMnB4O1xuJG1hdC1zdGVwLWhlYWRlci1pY29uLXNpemU6IDE2cHg7XG5cblxuQG1peGluIG1hdC1zdGVwcGVyLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG5cbiAgLm1hdC1zdGVwLWhlYWRlciB7XG4gICAgJi5jZGsta2V5Ym9hcmQtZm9jdXNlZCxcbiAgICAmLmNkay1wcm9ncmFtLWZvY3VzZWQsXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGhvdmVyKTtcbiAgICB9XG5cbiAgICAvLyBPbiB0b3VjaCBkZXZpY2VzIHRoZSA6aG92ZXIgc3RhdGUgd2lsbCBsaW5nZXIgb24gdGhlIGVsZW1lbnQgYWZ0ZXIgYSB0YXAuXG4gICAgLy8gUmVzZXQgaXQgdmlhIGBAbWVkaWFgIGFmdGVyIHRoZSBkZWNsYXJhdGlvbiwgYmVjYXVzZSB0aGUgbWVkaWEgcXVlcnkgaXNuJ3RcbiAgICAvLyBzdXBwb3J0ZWQgYnkgYWxsIGJyb3dzZXJzIHlldC5cbiAgICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtbGFiZWwsXG4gICAgLm1hdC1zdGVwLW9wdGlvbmFsIHtcbiAgICAgIC8vIFRPRE8oam9zZXBocGVycm90dCk6IFVwZGF0ZSB0byB1c2luZyBhIGNvcnJlY3RlZCBkaXNhYmxlZC10ZXh0IGNvbnRyYXN0XG4gICAgICAvLyBpbnN0ZWFkIG9mIHNlY29uZGFyeS10ZXh0LlxuICAgICAgY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1pY29uIHtcbiAgICAgIC8vIFRPRE8oam9zZXBocGVycm90dCk6IFVwZGF0ZSB0byB1c2luZyBhIGNvcnJlY3RlZCBkaXNhYmxlZC10ZXh0IGNvbnRyYXN0XG4gICAgICAvLyBpbnN0ZWFkIG9mIHNlY29uZGFyeS10ZXh0LlxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCBkZWZhdWx0LWNvbnRyYXN0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCxcbiAgICAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1kb25lLFxuICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVkaXQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIGRlZmF1bHQtY29udHJhc3QpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICAubWF0LXN0ZXAtaWNvbiB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtc3RlcC1pY29uLXNlbGVjdGVkLFxuICAgICAgLm1hdC1zdGVwLWljb24tc3RhdGUtZG9uZSxcbiAgICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWVkaXQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICAubWF0LXN0ZXAtaWNvbiB7XG4gICAgICAgIGNvbG9yOiBtYXQtY29sb3IoJHdhcm4sIGRlZmF1bHQtY29udHJhc3QpO1xuICAgICAgfVxuXG4gICAgICAubWF0LXN0ZXAtaWNvbi1zZWxlY3RlZCxcbiAgICAgIC5tYXQtc3RlcC1pY29uLXN0YXRlLWRvbmUsXG4gICAgICAubWF0LXN0ZXAtaWNvbi1zdGF0ZS1lZGl0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCR3YXJuKTtcbiAgICAgICAgY29sb3I6IG1hdC1jb2xvcigkd2FybiwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1zdGVwLWljb24tc3RhdGUtZXJyb3Ige1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICB9XG5cbiAgICAubWF0LXN0ZXAtbGFiZWwubWF0LXN0ZXAtbGFiZWwtYWN0aXZlIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICAgIH1cblxuICAgIC5tYXQtc3RlcC1sYWJlbC5tYXQtc3RlcC1sYWJlbC1lcnJvciB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgICB9XG4gIH1cblxuICAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbCwgLm1hdC1zdGVwcGVyLXZlcnRpY2FsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGNhcmQpO1xuICB9XG5cbiAgLm1hdC1zdGVwcGVyLXZlcnRpY2FsLWxpbmU6OmJlZm9yZSB7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlcik7XG4gIH1cblxuICAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXI6OmJlZm9yZSxcbiAgLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyOjphZnRlcixcbiAgLm1hdC1zdGVwcGVyLWhvcml6b250YWwtbGluZSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXN0ZXBwZXItdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtc3RlcHBlci12ZXJ0aWNhbCwgLm1hdC1zdGVwcGVyLWhvcml6b250YWwge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gIH1cblxuICAubWF0LXN0ZXAtbGFiZWwge1xuICAgIGZvbnQ6IHtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHdlaWdodDogbWF0LWZvbnQtd2VpZ2h0KCRjb25maWcsIGJvZHktMSk7XG4gICAgfTtcbiAgfVxuXG4gIC5tYXQtc3RlcC1zdWItbGFiZWwtZXJyb3Ige1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIH1cblxuICAubWF0LXN0ZXAtbGFiZWwtZXJyb3Ige1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTIpO1xuICB9XG5cbiAgLm1hdC1zdGVwLWxhYmVsLXNlbGVjdGVkIHtcbiAgICBmb250OiB7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJvZHktMik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTIpO1xuICAgIH07XG4gIH1cbn1cblxuQG1peGluIG1hdC1zdGVwcGVyLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkZGVuc2l0eS1zY2FsZTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGhlaWdodDogbWF0LXByaXZhdGUtZGVuc2l0eS1wcm9wLXZhbHVlKCRtYXQtc3RlcHBlci1kZW5zaXR5LWNvbmZpZywgJGRlbnNpdHktc2NhbGUsIGhlaWdodCk7XG4gICR2ZXJ0aWNhbC1wYWRkaW5nOiAoJGhlaWdodCAtICRtYXQtc3RlcHBlci1sYWJlbC1oZWFkZXItaGVpZ2h0KSAvIDI7XG5cbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtZGVuc2l0eS1sZWdhY3ktY29tcGF0aWJpbGl0eSgpIHtcbiAgICAubWF0LWhvcml6b250YWwtc3RlcHBlci1oZWFkZXIge1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgIH1cblxuICAgIC5tYXQtc3RlcHBlci1sYWJlbC1wb3NpdGlvbi1ib3R0b20gLm1hdC1ob3Jpem9udGFsLXN0ZXBwZXItaGVhZGVyLFxuICAgIC5tYXQtdmVydGljYWwtc3RlcHBlci1oZWFkZXIge1xuICAgICAgcGFkZGluZzogJHZlcnRpY2FsLXBhZGRpbmcgJG1hdC1zdGVwcGVyLXNpZGUtZ2FwO1xuICAgIH1cblxuICAgIC8vIEVuc3VyZXMgdGhhdCB0aGUgdmVydGljYWwgbGluZXMgZm9yIHRoZSBzdGVwIGNvbnRlbnQgZXhjZWVkIGludG8gdGhlIHN0ZXBcbiAgICAvLyBoZWFkZXJzIHdpdGggYSBnaXZlbiBkaXN0YW5jZSAoYCRtYXQtc3RlcHBlci1saW5lLWdhcGApIHRvIHRoZSBzdGVwIGljb24uXG4gICAgLm1hdC1zdGVwcGVyLXZlcnRpY2FsLWxpbmU6OmJlZm9yZSB7XG4gICAgICB0b3A6ICRtYXQtc3RlcHBlci1saW5lLWdhcCAtICR2ZXJ0aWNhbC1wYWRkaW5nO1xuICAgICAgYm90dG9tOiAkbWF0LXN0ZXBwZXItbGluZS1nYXAgLSAkdmVydGljYWwtcGFkZGluZztcbiAgICB9XG5cbiAgICAvLyBFbnN1cmVzIHRoYXQgdGhlIGhvcml6b250YWwgbGluZXMgZm9yIHRoZSBzdGVwIGhlYWRlciBhcmUgY2VudGVyZWQgdmVydGljYWxseS5cbiAgICAubWF0LXN0ZXBwZXItbGFiZWwtcG9zaXRpb24tYm90dG9tIC5tYXQtaG9yaXpvbnRhbC1zdGVwcGVyLWhlYWRlciB7XG4gICAgICAmOjphZnRlciwgJjo6YmVmb3JlIHtcbiAgICAgICAgdG9wOiAkdmVydGljYWwtcGFkZGluZyArICRtYXQtc3RlcHBlci1sYWJlbC1oZWFkZXItaGVpZ2h0IC8gMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFbnN1cmVzIHRoYXQgdGhlIGhvcml6b250YWwgbGluZSBmb3IgdGhlIHN0ZXAgY29udGVudCBpcyBhbGlnbmVkIGNlbnRlcmVkIHZlcnRpY2FsbHkuXG4gICAgLm1hdC1zdGVwcGVyLWxhYmVsLXBvc2l0aW9uLWJvdHRvbSAubWF0LXN0ZXBwZXItaG9yaXpvbnRhbC1saW5lIHtcbiAgICAgIHRvcDogJHZlcnRpY2FsLXBhZGRpbmcgKyAkbWF0LXN0ZXBwZXItbGFiZWwtaGVhZGVyLWhlaWdodCAvIDI7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtc3RlcHBlci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtc3RlcHBlcicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1zdGVwcGVyLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1zdGVwcGVyLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtc3RlcHBlci10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cbkBtaXhpbiBtYXQtc29ydC1jb2xvcigkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtY29sb3ItY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC1zb3J0LWhlYWRlci1hcnJvdyB7XG4gICAgJHRhYmxlLWJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgICAkdGV4dC1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBzZWNvbmRhcnktdGV4dCk7XG5cbiAgICAvLyBCZWNhdXNlIHRoZSBhcnJvdyBpcyBtYWRlIHVwIG9mIG11bHRpcGxlIGVsZW1lbnRzIHRoYXQgYXJlIHN0YWNrZWQgb24gdG9wIG9mIGVhY2ggb3RoZXIsXG4gICAgLy8gd2UgY2FuJ3QgdXNlIHRoZSBzZW1pLXRyYW5zcGFyZW50IGNvbG9yIGZyb20gdGhlIHRoZW1lIGRpcmVjdGx5LiBJZiB0aGUgdmFsdWUgaXMgYSBjb2xvclxuICAgIC8vICp0eXBlKiwgd2UgY29udmVydCBpdCBpbnRvIGEgc29saWQgY29sb3IgYnkgdGFraW5nIHRoZSBvcGFjaXR5IGZyb20gdGhlIHJnYmEgdmFsdWUgYW5kXG4gICAgLy8gdXNpbmcgdGhlIHZhbHVlIHRvIGRldGVybWluZSB0aGUgcGVyY2VudGFnZSBvZiB0aGUgYmFja2dyb3VuZCB0byBwdXQgaW50byBmb3JlZ3JvdW5kXG4gICAgLy8gd2hlbiBtaXhpbmcgdGhlIGNvbG9ycyB0b2dldGhlci4gT3RoZXJ3aXNlLCBpZiBpdCByZXNvbHZlcyB0byBzb21ldGhpbmcgZGlmZmVyZW50XG4gICAgLy8gKGUuZy4gaXQgcmVzb2x2ZXMgdG8gYSBDU1MgdmFyaWFibGUpLCB3ZSB1c2UgdGhlIGNvbG9yIGRpcmVjdGx5LlxuICAgIEBpZiAodHlwZS1vZigkdGFibGUtYmFja2dyb3VuZCkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJHRleHQtY29sb3IpID09IGNvbG9yKSB7XG4gICAgICAkdGV4dC1vcGFjaXR5OiBvcGFjaXR5KCR0ZXh0LWNvbG9yKTtcbiAgICAgIGNvbG9yOiBtaXgoJHRhYmxlLWJhY2tncm91bmQsIHJnYmEoJHRleHQtY29sb3IsIDEpLCAoMSAtICR0ZXh0LW9wYWNpdHkpICogMTAwJSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIGNvbG9yOiAkdGV4dC1jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1zb3J0LXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIF9tYXQtc29ydC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtc29ydC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtc29ydCcpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1zb3J0LWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtc29ydC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXNvcnQtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuQG1peGluIG1hdC10YWJzLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG4gICRoZWFkZXItYm9yZGVyOiAxcHggc29saWQgbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXZpZGVyKTtcblxuICAubWF0LXRhYi1uYXYtYmFyLFxuICAubWF0LXRhYi1oZWFkZXIge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWFkZXItYm9yZGVyO1xuICB9XG5cbiAgLm1hdC10YWItZ3JvdXAtaW52ZXJ0ZWQtaGVhZGVyIHtcbiAgICAubWF0LXRhYi1uYXYtYmFyLFxuICAgIC5tYXQtdGFiLWhlYWRlciB7XG4gICAgICBib3JkZXItdG9wOiAkaGVhZGVyLWJvcmRlcjtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgJi5tYXQtdGFiLWRpc2FibGVkIHtcbiAgICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBkaXNhYmxlZC10ZXh0KTtcbiAgfVxuXG4gIC8vIFJlbW92ZSBoZWFkZXIgYm9yZGVyIHdoZW4gdGhlcmUgaXMgYSBiYWNrZ3JvdW5kIGNvbG9yXG4gIC5tYXQtdGFiLWdyb3VwW2NsYXNzKj0nbWF0LWJhY2tncm91bmQtJ10gLm1hdC10YWItaGVhZGVyLFxuICAubWF0LXRhYi1uYXYtYmFyW2NsYXNzKj0nbWF0LWJhY2tncm91bmQtJ10ge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgfVxuXG4gIC5tYXQtdGFiLWdyb3VwLCAubWF0LXRhYi1uYXYtYmFyIHtcbiAgICAkdGhlbWUtY29sb3JzOiAoXG4gICAgICBwcmltYXJ5OiAkcHJpbWFyeSxcbiAgICAgIGFjY2VudDogJGFjY2VudCxcbiAgICAgIHdhcm46ICR3YXJuXG4gICAgKTtcblxuICAgIEBlYWNoICRuYW1lLCAkY29sb3IgaW4gJHRoZW1lLWNvbG9ycyB7XG4gICAgICAvLyBTZXQgdGhlIGZvcmVncm91bmQgY29sb3Igb2YgdGhlIHRhYnNcbiAgICAgICYubWF0LSN7JG5hbWV9IHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC10YWItbGFiZWwtZm9jdXMoJGNvbG9yKTtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1pbmstYmFyKCRjb2xvcik7XG5cbiAgICAgICAgLy8gT3ZlcnJpZGUgaW5rIGJhciB3aGVuIGJhY2tncm91bmQgY29sb3IgaXMgdGhlIHNhbWVcbiAgICAgICAgJi5tYXQtYmFja2dyb3VuZC0jeyRuYW1lfSB7XG4gICAgICAgICAgPiAubWF0LXRhYi1oZWFkZXIsID4gLm1hdC10YWItbGluay1jb250YWluZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgX21hdC1pbmstYmFyKCRjb2xvciwgZGVmYXVsdC1jb250cmFzdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVhY2ggJG5hbWUsICRjb2xvciBpbiAkdGhlbWUtY29sb3JzIHtcbiAgICAgIC8vIFNldCBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSB0YWJzIGFuZCBvdmVycmlkZSBmb2N1cyBjb2xvclxuICAgICAgJi5tYXQtYmFja2dyb3VuZC0jeyRuYW1lfSB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtdGFiLWxhYmVsLWZvY3VzKCRjb2xvcik7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtdGFicy1iYWNrZ3JvdW5kKCRjb2xvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBfbWF0LWluay1iYXIoJGNvbG9yLCAkaHVlOiBkZWZhdWx0KSB7XG4gIC5tYXQtaW5rLWJhciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRjb2xvciwgJGh1ZSk7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtdGFiLWxhYmVsLWZvY3VzKCR0YWItZm9jdXMtY29sb3IpIHtcbiAgLm1hdC10YWItbGFiZWwsXG4gIC5tYXQtdGFiLWxpbmsge1xuICAgICYuY2RrLWtleWJvYXJkLWZvY3VzZWQsXG4gICAgJi5jZGstcHJvZ3JhbS1mb2N1c2VkIHtcbiAgICAgICY6bm90KC5tYXQtdGFiLWRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkdGFiLWZvY3VzLWNvbG9yLCBsaWdodGVyLCAwLjMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX21hdC10YWJzLWJhY2tncm91bmQoJGJhY2tncm91bmQtY29sb3IpIHtcbiAgLy8gTm90ZSB0aGF0IHRoZXNlIHNlbGVjdG9ycyB0YXJnZXQgZGlyZWN0IGRlc2NlbmRhbnRzIHNvXG4gIC8vIHRoYXQgdGhlIHN0eWxlcyBkb24ndCBhcHBseSB0byBhbnkgbmVzdGVkIHRhYiBncm91cHMuXG5cbiAgLy8gU2V0IGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSB0YWIgZ3JvdXBcbiAgPiAubWF0LXRhYi1oZWFkZXIsID4gLm1hdC10YWItbGluay1jb250YWluZXIsID4gLm1hdC10YWItaGVhZGVyLXBhZ2luYXRpb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZC1jb2xvcik7XG4gIH1cblxuICAvLyBTZXQgbGFiZWxzIHRvIGNvbnRyYXN0IGFnYWluc3QgYmFja2dyb3VuZFxuICA+IC5tYXQtdGFiLWhlYWRlciAubWF0LXRhYi1sYWJlbCwgPiAubWF0LXRhYi1saW5rLWNvbnRhaW5lciAubWF0LXRhYi1saW5rIHtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0KTtcblxuICAgICYubWF0LXRhYi1kaXNhYmxlZCB7XG4gICAgICBjb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBwYWdpbmF0aW9uIGNoZXZyb25zIHRvIGNvbnRyYXN0IGJhY2tncm91bmRcbiAgPiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbiAubWF0LXRhYi1oZWFkZXItcGFnaW5hdGlvbi1jaGV2cm9uIHtcbiAgICBib3JkZXItY29sb3I6IG1hdC1jb2xvcigkYmFja2dyb3VuZC1jb2xvciwgZGVmYXVsdC1jb250cmFzdCk7XG4gIH1cblxuICA+IC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWRpc2FibGVkIC5tYXQtdGFiLWhlYWRlci1wYWdpbmF0aW9uLWNoZXZyb24ge1xuICAgIGJvcmRlci1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjQpO1xuICB9XG5cbiAgLy8gU2V0IHJpcHBsZXMgY29sb3IgdG8gYmUgdGhlIGNvbnRyYXN0IGNvbG9yIG9mIHRoZSBuZXcgYmFja2dyb3VuZC4gT3RoZXJ3aXNlIHRoZSByaXBwbGVcbiAgLy8gY29sb3Igd2lsbCBiZSBiYXNlZCBvbiB0aGUgYXBwIGJhY2tncm91bmQgY29sb3IuXG4gID4gLm1hdC10YWItaGVhZGVyIC5tYXQtcmlwcGxlLWVsZW1lbnQsXG4gID4gLm1hdC10YWItbGluay1jb250YWluZXIgLm1hdC1yaXBwbGUtZWxlbWVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCBkZWZhdWx0LWNvbnRyYXN0LCAwLjEyKTtcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRhYnMtdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtdGFiLWdyb3VwIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC10YWItbGFiZWwsIC5tYXQtdGFiLWxpbmsge1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcsIGJ1dHRvbik7XG4gICAgICBzaXplOiBtYXQtZm9udC1zaXplKCRjb25maWcsIGJ1dHRvbik7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX21hdC10YWJzLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC10YWJzLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC10YWJzJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXRhYnMtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgX21hdC10YWJzLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtdGFicy10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cbi8vIE1pbmltdW0gaGVpZ2h0IGZvciB0b29sYmFyJ3MgaW4gdGhlIGhpZ2hlc3QgZGVuc2l0eSBpcyBkaWZmaWN1bHQgdG8gZGV0ZXJtaW5lIGJlY2F1c2Vcbi8vIGRldmVsb3BlcnMgY2FuIHByb2plY3QgYXJiaXRyYXJ5IGNvbnRlbnQuIFdlIHVzZSBhIG1pbmltdW0gdmFsdWUgdGhhdCBlbnN1cmVzIHRoYXQgbW9zdFxuLy8gY29tbW9uIGNvbnRlbnQgKGUuZy4gaWNvbiBidXR0b25zKSBkb2VzIG5vdCBleGNlZWQgdGhlIHJvdyBib3VuZGFyaWVzIGluIGhpZ2hlc3QgZGVuc2l0eS5cbiRtYXQtdG9vbGJhci1taW5pbXVtLWhlaWdodDogNDRweCAhZGVmYXVsdDtcblxuJG1hdC10b29sYmFyLWhlaWdodC1kZXNrdG9wOiA2NHB4ICFkZWZhdWx0O1xuJG1hdC10b29sYmFyLW1heGltdW0taGVpZ2h0LWRlc2t0b3A6ICRtYXQtdG9vbGJhci1oZWlnaHQtZGVza3RvcCAhZGVmYXVsdDtcbiRtYXQtdG9vbGJhci1taW5pbXVtLWhlaWdodC1kZXNrdG9wOiAkbWF0LXRvb2xiYXItbWluaW11bS1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRtYXQtdG9vbGJhci1oZWlnaHQtbW9iaWxlOiA1NnB4ICFkZWZhdWx0O1xuJG1hdC10b29sYmFyLW1heGltdW0taGVpZ2h0LW1vYmlsZTogJG1hdC10b29sYmFyLWhlaWdodC1tb2JpbGUgIWRlZmF1bHQ7XG4kbWF0LXRvb2xiYXItbWluaW11bS1oZWlnaHQtbW9iaWxlOiAkbWF0LXRvb2xiYXItbWluaW11bS1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRtYXQtdG9vbGJhci1kZXNrdG9wLWRlbnNpdHktY29uZmlnOiAoXG4gIGhlaWdodDogKFxuICAgIGRlZmF1bHQ6ICRtYXQtdG9vbGJhci1oZWlnaHQtZGVza3RvcCxcbiAgICBtYXhpbXVtOiAkbWF0LXRvb2xiYXItbWF4aW11bS1oZWlnaHQtZGVza3RvcCxcbiAgICBtaW5pbXVtOiAkbWF0LXRvb2xiYXItbWluaW11bS1oZWlnaHQtZGVza3RvcCxcbiAgKVxuKSAhZGVmYXVsdDtcblxuJG1hdC10b29sYmFyLW1vYmlsZS1kZW5zaXR5LWNvbmZpZzogKFxuICBoZWlnaHQ6IChcbiAgICBkZWZhdWx0OiAkbWF0LXRvb2xiYXItaGVpZ2h0LW1vYmlsZSxcbiAgICBtYXhpbXVtOiAkbWF0LXRvb2xiYXItbWF4aW11bS1oZWlnaHQtbW9iaWxlLFxuICAgIG1pbmltdW06ICRtYXQtdG9vbGJhci1taW5pbXVtLWhlaWdodC1tb2JpbGUsXG4gIClcbikgIWRlZmF1bHQ7XG5cblxuQG1peGluIF9tYXQtdG9vbGJhci1oZWlnaHQoJGhlaWdodCkge1xuICAubWF0LXRvb2xiYXItbXVsdGlwbGUtcm93cyB7XG4gICAgbWluLWhlaWdodDogJGhlaWdodDtcbiAgfVxuICAubWF0LXRvb2xiYXItcm93LCAubWF0LXRvb2xiYXItc2luZ2xlLXJvdyB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9XG59XG5cbkBtaXhpbiBfbWF0LXRvb2xiYXItY29sb3IoJHBhbGV0dGUpIHtcbiAgYmFja2dyb3VuZDogbWF0LWNvbG9yKCRwYWxldHRlKTtcbiAgY29sb3I6IG1hdC1jb2xvcigkcGFsZXR0ZSwgZGVmYXVsdC1jb250cmFzdCk7XG59XG5cbkBtaXhpbiBfbWF0LXRvb2xiYXItZm9ybS1maWVsZC1vdmVycmlkZXMge1xuICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lLFxuICAubWF0LWZvcm0tZmllbGQtcmlwcGxlLFxuICAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAubWF0LWZvY3VzZWQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAubWF0LXNlbGVjdC12YWx1ZSxcbiAgLm1hdC1zZWxlY3QtYXJyb3csXG4gIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LXNlbGVjdC1hcnJvdyB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cblxuICAubWF0LWlucHV0LWVsZW1lbnQge1xuICAgIGNhcmV0LWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gIH1cbn1cblxuQG1peGluIG1hdC10b29sYmFyLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRwcmltYXJ5OiBtYXAtZ2V0KCRjb25maWcsIHByaW1hcnkpO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG4gICR3YXJuOiBtYXAtZ2V0KCRjb25maWcsIHdhcm4pO1xuICAkYmFja2dyb3VuZDogbWFwLWdldCgkY29uZmlnLCBiYWNrZ3JvdW5kKTtcbiAgJGZvcmVncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgZm9yZWdyb3VuZCk7XG5cbiAgLm1hdC10b29sYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIGFwcC1iYXIpO1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuXG4gICAgJi5tYXQtcHJpbWFyeSB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItY29sb3IoJHByaW1hcnkpO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItY29sb3IoJGFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXRvb2xiYXItY29sb3IoJHdhcm4pO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIF9tYXQtdG9vbGJhci1mb3JtLWZpZWxkLW92ZXJyaWRlcztcbiAgfVxufVxuXG5AbWl4aW4gbWF0LXRvb2xiYXItdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC5tYXQtdG9vbGJhcixcbiAgLm1hdC10b29sYmFyIGgxLFxuICAubWF0LXRvb2xiYXIgaDIsXG4gIC5tYXQtdG9vbGJhciBoMyxcbiAgLm1hdC10b29sYmFyIGg0LFxuICAubWF0LXRvb2xiYXIgaDUsXG4gIC5tYXQtdG9vbGJhciBoNiB7XG4gICAgQGluY2x1ZGUgbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzKCRjb25maWcsIHRpdGxlKTtcbiAgICBtYXJnaW46IDA7XG4gIH1cbn1cblxuQG1peGluIG1hdC10b29sYmFyLWRlbnNpdHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkZGVuc2l0eS1zY2FsZTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGhlaWdodC1kZXNrdG9wOiBtYXQtcHJpdmF0ZS1kZW5zaXR5LXByb3AtdmFsdWUoXG4gICAgICAkbWF0LXRvb2xiYXItZGVza3RvcC1kZW5zaXR5LWNvbmZpZywgJGRlbnNpdHktc2NhbGUsIGhlaWdodCk7XG4gICRoZWlnaHQtbW9iaWxlOiBtYXQtcHJpdmF0ZS1kZW5zaXR5LXByb3AtdmFsdWUoXG4gICAgICAkbWF0LXRvb2xiYXItbW9iaWxlLWRlbnNpdHktY29uZmlnLCAkZGVuc2l0eS1zY2FsZSwgaGVpZ2h0KTtcblxuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1kZW5zaXR5LWxlZ2FjeS1jb21wYXRpYmlsaXR5KCkge1xuICAgIC8vIFNldCB0aGUgZGVmYXVsdCBoZWlnaHQgZm9yIHRoZSB0b29sYmFyLlxuICAgIEBpbmNsdWRlIF9tYXQtdG9vbGJhci1oZWlnaHQoJGhlaWdodC1kZXNrdG9wKTtcblxuICAgIC8vIEFzIHBlciBzcGVjcywgdG9vbGJhcnMgc2hvdWxkIGhhdmUgYSBkaWZmZXJlbnQgaGVpZ2h0IGluIG1vYmlsZSBkZXZpY2VzLiBUaGlzIGhhcyBiZWVuXG4gICAgLy8gc3BlY2lmaWVkIGluIHRoZSBvbGQgZ3VpZGVsaW5lcyBhbmQgaXMgc3RpbGwgb2JzZXJ2YWJsZSBpbiB0aGUgbmV3IHNwZWNpZmljYXRpb25zIGJ5XG4gICAgLy8gbG9va2luZyBhdCB0aGUgc3BlYyBpbWFnZXMuIFNlZTogaHR0cHM6Ly9tYXRlcmlhbC5pby9kZXNpZ24vY29tcG9uZW50cy9hcHAtYmFycy10b3AuaHRtbCNhbmF0b215XG4gICAgQG1lZGlhICgkbWF0LXhzbWFsbCkge1xuICAgICAgQGluY2x1ZGUgX21hdC10b29sYmFyLWhlaWdodCgkaGVpZ2h0LW1vYmlsZSk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtdG9vbGJhci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtdG9vbGJhcicpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC10b29sYmFyLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC10b29sYmFyLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtdG9vbGJhci10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG4kbWF0LXRvb2x0aXAtdGFyZ2V0LWhlaWdodDogMjJweDtcbiRtYXQtdG9vbHRpcC1mb250LXNpemU6IDEwcHg7XG4kbWF0LXRvb2x0aXAtdmVydGljYWwtcGFkZGluZzogKCRtYXQtdG9vbHRpcC10YXJnZXQtaGVpZ2h0IC0gJG1hdC10b29sdGlwLWZvbnQtc2l6ZSkgLyAyO1xuXG4kbWF0LXRvb2x0aXAtaGFuZHNldC10YXJnZXQtaGVpZ2h0OiAzMHB4O1xuJG1hdC10b29sdGlwLWhhbmRzZXQtZm9udC1zaXplOiAxNHB4O1xuJG1hdC10b29sdGlwLWhhbmRzZXQtdmVydGljYWwtcGFkZGluZzpcbiAgICAoJG1hdC10b29sdGlwLWhhbmRzZXQtdGFyZ2V0LWhlaWdodCAtICRtYXQtdG9vbHRpcC1oYW5kc2V0LWZvbnQtc2l6ZSkgLyAyO1xuXG5AbWl4aW4gbWF0LXRvb2x0aXAtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJGJhY2tncm91bmQ6IG1hcC1nZXQoJGNvbmZpZywgYmFja2dyb3VuZCk7XG5cbiAgLm1hdC10b29sdGlwIHtcbiAgICBiYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGJhY2tncm91bmQsIHRvb2x0aXAsIDAuOSk7XG4gIH1cbn1cblxuQG1peGluIG1hdC10b29sdGlwLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LXRvb2x0aXAge1xuICAgIGZvbnQtZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZyk7XG4gICAgZm9udC1zaXplOiAkbWF0LXRvb2x0aXAtZm9udC1zaXplO1xuICAgIHBhZGRpbmctdG9wOiAkbWF0LXRvb2x0aXAtdmVydGljYWwtcGFkZGluZztcbiAgICBwYWRkaW5nLWJvdHRvbTogJG1hdC10b29sdGlwLXZlcnRpY2FsLXBhZGRpbmc7XG4gIH1cblxuICAubWF0LXRvb2x0aXAtaGFuZHNldCB7XG4gICAgZm9udC1zaXplOiAkbWF0LXRvb2x0aXAtaGFuZHNldC1mb250LXNpemU7XG4gICAgcGFkZGluZy10b3A6ICRtYXQtdG9vbHRpcC1oYW5kc2V0LXZlcnRpY2FsLXBhZGRpbmc7XG4gICAgcGFkZGluZy1ib3R0b206ICRtYXQtdG9vbHRpcC1oYW5kc2V0LXZlcnRpY2FsLXBhZGRpbmc7XG4gIH1cbn1cblxuQG1peGluIF9tYXQtdG9vbHRpcC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtdG9vbHRpcC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtdG9vbHRpcCcpIHtcbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgJGRlbnNpdHk6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJHRoZW1lKTtcbiAgICAkdHlwb2dyYXBoeTogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkdGhlbWUpO1xuXG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC10b29sdGlwLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtdG9vbHRpcC1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXRvb2x0aXAtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbkBtaXhpbiBtYXQtc25hY2stYmFyLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRpcy1kYXJrLXRoZW1lOiBtYXAtZ2V0KCRjb25maWcsIGlzLWRhcmspO1xuICAkYWNjZW50OiBtYXAtZ2V0KCRjb25maWcsIGFjY2VudCk7XG5cbiAgLm1hdC1zbmFjay1iYXItY29udGFpbmVyIHtcbiAgICAvLyBVc2UgdGhlIHByaW1hcnkgdGV4dCBvbiB0aGUgZGFyayB0aGVtZSwgZXZlbiB0aG91Z2ggdGhlIGxpZ2h0ZXIgb25lIHVzZXNcbiAgICAvLyBhIHNlY29uZGFyeSwgYmVjYXVzZSB0aGUgY29udHJhc3Qgb24gdGhlIGxpZ2h0IHByaW1hcnkgdGV4dCBpcyBwb29yLlxuICAgIGNvbG9yOiBpZigkaXMtZGFyay10aGVtZSwgJGRhcmstcHJpbWFyeS10ZXh0LCAkbGlnaHQtc2Vjb25kYXJ5LXRleHQpO1xuICAgIGJhY2tncm91bmQ6IGlmKCRpcy1kYXJrLXRoZW1lLCBtYXAtZ2V0KCRtYXQtZ3JleSwgNTApLCAjMzIzMjMyKTtcblxuICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLXRoZW1lLWVsZXZhdGlvbig2LCAkY29uZmlnKTtcbiAgfVxuXG4gIC5tYXQtc2ltcGxlLXNuYWNrYmFyLWFjdGlvbiB7XG4gICAgY29sb3I6IGlmKCRpcy1kYXJrLXRoZW1lLCBpbmhlcml0LCBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCkpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtc25hY2stYmFyLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAubWF0LXNpbXBsZS1zbmFja2JhciB7XG4gICAgZm9udDoge1xuICAgICAgZmFtaWx5OiBtYXQtZm9udC1mYW1pbHkoJGNvbmZpZywgYm9keS0xKTtcbiAgICAgIHNpemU6IG1hdC1mb250LXNpemUoJGNvbmZpZywgYm9keS0xKTtcbiAgICB9XG4gIH1cblxuICAubWF0LXNpbXBsZS1zbmFja2Jhci1hY3Rpb24ge1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQ6IHtcbiAgICAgIGZhbWlseTogaW5oZXJpdDtcbiAgICAgIHNpemU6IGluaGVyaXQ7XG4gICAgICB3ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBidXR0b24pO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gX21hdC1zbmFjay1iYXItZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LXNuYWNrLWJhci10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtc25hY2stYmFyJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXNuYWNrLWJhci1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBfbWF0LXNuYWNrLWJhci1kZW5zaXR5KCRkZW5zaXR5KTtcbiAgICB9XG4gICAgQGlmICR0eXBvZ3JhcGh5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXNuYWNrLWJhci10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4vLyBUaGVtZSBzdHlsZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHRoZSBmaWxsIGFwcGVhcmFuY2Ugb2YgdGhlIGZvcm0tZmllbGQuXG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1maWxsLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKTtcblxuICAkZmlsbC1iYWNrZ3JvdW5kOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGJhc2UsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjEsIDAuMDQpKTtcbiAgJGZpbGwtZGlzYWJsZWQtYmFja2dyb3VuZDogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCBiYXNlLCBpZigkaXMtZGFyay10aGVtZSwgMC4wNSwgMC4wMikpO1xuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjUsIDAuNDIpKTtcbiAgJGxhYmVsLWRpc2FibGVkLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpc2FibGVkLXRleHQpO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLWZpbGwge1xuICAgIC5tYXQtZm9ybS1maWVsZC1mbGV4IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmaWxsLWJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtZmxleCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmlsbC1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmU6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgY29sb3I6ICRsYWJlbC1kaXNhYmxlZC1jb2xvcjtcbiAgICAgIH1cblxuICAgICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZTo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFVzZWQgdG8gbWFrZSBpbnN0YW5jZXMgb2YgdGhlIF9tYXQtZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZyBtaXhpbiBuZWdsaWdpYmx5IGRpZmZlcmVudCxcbi8vIGFuZCBwcmV2ZW50IEdvb2dsZSdzIENTUyBPcHRpbWl6ZXIgZnJvbSBjb2xsYXBzaW5nIHRoZSBkZWNsYXJhdGlvbnMuIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2Ugc29tZVxuLy8gb2YgdGhlIHNlbGVjdG9ycyBjb250YWluIHBzZXVkby1jbGFzc2VzIG5vdCByZWNvZ25pemVkIGluIGFsbCBicm93c2Vycy4gSWYgYSBicm93c2VyIGVuY291bnRlcnNcbi8vIGFuIHVua25vd24gcHNldWRvLWNsYXNzIGl0IHdpbGwgZGlzY2FyZCB0aGUgZW50aXJlIHJ1bGUgc2V0LlxuJG1hdC1mb3JtLWZpZWxkLWZpbGwtZGVkdXBlOiAwO1xuXG4vLyBBcHBsaWVzIGEgZmxvYXRpbmcgbGFiZWwgYWJvdmUgdGhlIGZvcm0gZmllbGQgY29udHJvbCBpdHNlbGYuXG5AbWl4aW4gX21hdC1mb3JtLWZpZWxkLWZpbGwtbGFiZWwtZmxvYXRpbmcoJGZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcgKyAkbWF0LWZvcm0tZmllbGQtZmlsbC1kZWR1cGUpXG4gICAgICAgICAgICAgc2NhbGUoJGZvbnQtc2NhbGUpO1xuICB3aWR0aDogMTAwJSAvICRmb250LXNjYWxlICsgJG1hdC1mb3JtLWZpZWxkLWZpbGwtZGVkdXBlO1xuXG4gICRtYXQtZm9ybS1maWVsZC1maWxsLWRlZHVwZTogJG1hdC1mb3JtLWZpZWxkLWZpbGwtZGVkdXBlICsgMC4wMDAwMSAhZ2xvYmFsO1xufVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtZmlsbC10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLy8gVGhlIHVuaXQtbGVzcyBsaW5lLWhlaWdodCBmcm9tIHRoZSBmb250IGNvbmZpZy5cbiAgJGxpbmUtaGVpZ2h0OiBtYXQtbGluZS1oZWlnaHQoJGNvbmZpZywgaW5wdXQpO1xuICAvLyBUaGUgYW1vdW50IHRvIHNjYWxlIHRoZSBmb250IGZvciB0aGUgZmxvYXRpbmcgbGFiZWwgYW5kIHN1YnNjcmlwdC5cbiAgJHN1YnNjcmlwdC1mb250LXNjYWxlOiAwLjc1O1xuICAvLyBUaGUgcGFkZGluZyBvbiB0b3Agb2YgdGhlIGluZml4LlxuICAkaW5maXgtcGFkZGluZy10b3A6IDAuMjVlbTtcbiAgLy8gVGhlIHBhZGRpbmcgYmVsb3cgdGhlIGluZml4LlxuICAkaW5maXgtcGFkZGluZy1ib3R0b206IDAuNzVlbTtcbiAgLy8gVGhlIG1hcmdpbiBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLWluZml4IHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBmbG9hdGluZyBsYWJlbC5cbiAgJGluZml4LW1hcmdpbi10b3A6IDFlbSAqICRsaW5lLWhlaWdodCAqICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gVGhlIGFtb3VudCB3ZSBvZmZzZXQgdGhlIGxhYmVsIGZyb20gdGhlIGlucHV0IHRleHQgaW4gdGhlIGZpbGwgYXBwZWFyYW5jZS5cbiAgJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQ6IC0wLjVlbTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1maWxsIHtcbiAgICAubWF0LWZvcm0tZmllbGQtaW5maXgge1xuICAgICAgcGFkZGluZzogJGluZml4LXBhZGRpbmctdG9wIDAgJGluZml4LXBhZGRpbmctYm90dG9tIDA7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIHRvcDogJGluZml4LW1hcmdpbi10b3AgKyAkaW5maXgtcGFkZGluZy10b3A7XG4gICAgICBtYXJnaW4tdG9wOiAkZmlsbC1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldDtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCB7XG4gICAgICAmLm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gICAgICAubWF0LWlucHV0LXNlcnZlcjpmb2N1cyArIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1maWxsLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmctdG9wICsgJGZpbGwtYXBwZWFyYW5jZS1sYWJlbC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuXG4gICAgICAvLyBTZXJ2ZXItc2lkZSByZW5kZXJlZCBtYXRJbnB1dCB3aXRoIGEgbGFiZWwgYXR0cmlidXRlIGJ1dCBsYWJlbCBub3Qgc2hvd25cbiAgICAgIC8vICh1c2VkIGFzIGEgcHVyZSBDU1Mgc3RhbmQtaW4gZm9yIG1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCkuXG4gICAgICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlclxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWZpbGwtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZy10b3AgKyAkZmlsbC1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldCxcbiAgICAgICAgICAgICAgICAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcHJpdmF0ZS1mb3JtLWZpZWxkLWZpbGwtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtZmlsbC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtZm9ybS1maWVsZC1maWxsJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtZmlsbC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1mb3JtLWZpZWxkLWZpbGwtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWZpbGwtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIGxlZ2FjeSBhcHBlYXJhbmNlIG9mIHRoZSBmb3JtLWZpZWxkLlxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtbGVnYWN5LWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKTtcblxuICAkbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQpO1xuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNDIpKTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kge1xuICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtaGludCB7XG4gICAgICBjb2xvcjogJGxhYmVsLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY29udHJvbC1kaXNhYmxlZC11bmRlcmxpbmUoJHVuZGVybGluZS1jb2xvcik7XG4gICAgfVxuICB9XG59XG5cbi8vIFVzZWQgdG8gbWFrZSBpbnN0YW5jZXMgb2YgdGhlIF9tYXQtZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZyBtaXhpbiBuZWdsaWdpYmx5IGRpZmZlcmVudCxcbi8vIGFuZCBwcmV2ZW50IEdvb2dsZSdzIENTUyBPcHRpbWl6ZXIgZnJvbSBjb2xsYXBzaW5nIHRoZSBkZWNsYXJhdGlvbnMuIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2Ugc29tZVxuLy8gb2YgdGhlIHNlbGVjdG9ycyBjb250YWluIHBzZXVkby1jbGFzc2VzIG5vdCByZWNvZ25pemVkIGluIGFsbCBicm93c2Vycy4gSWYgYSBicm93c2VyIGVuY291bnRlcnNcbi8vIGFuIHVua25vd24gcHNldWRvLWNsYXNzIGl0IHdpbGwgZGlzY2FyZCB0aGUgZW50aXJlIHJ1bGUgc2V0LlxuJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGU6IDA7XG5cbi8vIEFwcGxpZXMgYSBmbG9hdGluZyBsYWJlbCBhYm92ZSB0aGUgZm9ybSBmaWVsZCBjb250cm9sIGl0c2VsZi5cbkBtaXhpbiBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgLy8gV2UgdXNlIHBlcnNwZWN0aXZlIHRvIGZpeCB0aGUgdGV4dCBibHVycmluZXNzIGFzIGRlc2NyaWJlZCBoZXJlOlxuICAvLyBodHRwOi8vd3d3LnVzZXJhZ2VudG1hbi5jb20vYmxvZy8yMDE0LzA1LzA0L2ZpeGluZy10eXBvZ3JhcGh5LWluc2lkZS1vZi0yLWQtY3NzLXRyYW5zZm9ybXMvXG4gIC8vIFRoaXMgcmVzdWx0cyBpbiBhIHNtYWxsIGppdHRlciBhZnRlciB0aGUgbGFiZWwgZmxvYXRzIG9uIEZpcmVmb3gsIHdoaWNoIHRoZVxuICAvLyB0cmFuc2xhdGVaIGZpeGVzLlxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcpIHNjYWxlKCRmb250LXNjYWxlKSBwZXJzcGVjdGl2ZSgxMDBweClcbiAgdHJhbnNsYXRlWigwLjAwMXB4ICsgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGUpO1xuICAvLyBUaGUgdHJpY2tzIGFib3ZlIHVzZWQgdG8gc21vb3RoIG91dCB0aGUgYW5pbWF0aW9uIG9uIGNocm9tZSBhbmQgZmlyZWZveCBhY3R1YWxseSBtYWtlIHRoaW5nc1xuICAvLyB3b3JzZSBvbiBJRSwgc28gd2UgZG9uJ3QgaW5jbHVkZSB0aGVtIGluIHRoZSBJRSB2ZXJzaW9uLlxuICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGUpXG4gICAgICAgICAgICAgICAgICBzY2FsZSgkZm9udC1zY2FsZSk7XG5cbiAgd2lkdGg6IDEwMCUgLyAkZm9udC1zY2FsZSArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlO1xuXG4gICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlOiAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZSArIDAuMDAwMDEgIWdsb2JhbDtcbn1cblxuLy8gU2FtZSBhcyBtaXhpbiBhYm92ZSwgYnV0IG9taXRzIHRoZSB0cmFuc2xhdGVaIGZvciBwcmludGluZyBwdXJwb3Nlcy5cbkBtaXhpbiBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nLXByaW50KCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgLy8gVGhpcyByZXN1bHRzIGluIGEgc21hbGwgaml0dGVyIGFmdGVyIHRoZSBsYWJlbCBmbG9hdHMgb24gRmlyZWZveCwgd2hpY2ggdGhlXG4gIC8vIHRyYW5zbGF0ZVogZml4ZXMuXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtJGluZml4LW1hcmdpbi10b3AgLSAkaW5maXgtcGFkZGluZyArICRtYXQtZm9ybS1maWVsZC1sZWdhY3ktZGVkdXBlKVxuICAgICAgICAgICAgICAgICAgc2NhbGUoJGZvbnQtc2NhbGUpO1xuICAvLyBUaGUgdHJpY2tzIGFib3ZlIHVzZWQgdG8gc21vb3RoIG91dCB0aGUgYW5pbWF0aW9uIG9uIGNocm9tZSBhbmQgZmlyZWZveCBhY3R1YWxseSBtYWtlIHRoaW5nc1xuICAvLyB3b3JzZSBvbiBJRSwgc28gd2UgZG9uJ3QgaW5jbHVkZSB0aGVtIGluIHRoZSBJRSB2ZXJzaW9uLlxuICAkbWF0LWZvcm0tZmllbGQtbGVnYWN5LWRlZHVwZTogJG1hdC1mb3JtLWZpZWxkLWxlZ2FjeS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1sZWdhY3ktdHlwb2dyYXBoeSgkY29uZmlnLW9yLXRoZW1lKSB7XG4gICRjb25maWc6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIC8vIFRoZSB1bml0LWxlc3MgbGluZS1oZWlnaHQgZnJvbSB0aGUgZm9udCBjb25maWcuXG4gICRsaW5lLWhlaWdodDogbWF0LWxpbmUtaGVpZ2h0KCRjb25maWcsIGlucHV0KTtcbiAgLy8gVGhlIGFtb3VudCB0byBzY2FsZSB0aGUgZm9udCBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsIGFuZCBzdWJzY3JpcHQuXG4gICRzdWJzY3JpcHQtZm9udC1zY2FsZTogMC43NTtcbiAgLy8gVGhlIGFtb3VudCBvZiBzcGFjZSBiZXR3ZWVuIHRoZSB0b3Agb2YgdGhlIGxpbmUgYW5kIHRoZSB0b3Agb2YgdGhlIGFjdHVhbCB0ZXh0XG4gIC8vIChhcyBhIGZyYWN0aW9uIG9mIHRoZSBmb250LXNpemUpLlxuICAkbGluZS1zcGFjaW5nOiAoJGxpbmUtaGVpZ2h0IC0gMSkgLyAyO1xuICAvLyBUaGUgcGFkZGluZyBvbiB0aGUgaW5maXguIE1vY2tzIHNob3cgaGFsZiBvZiB0aGUgdGV4dCBzaXplLCBidXQgc2VlbSB0byBtZWFzdXJlIGZyb20gdGhlIGVkZ2VcbiAgLy8gb2YgdGhlIHRleHQgaXRzZWxmLCBub3QgdGhlIGVkZ2Ugb2YgdGhlIGxpbmU7IHRoZXJlZm9yZSB3ZSBzdWJ0cmFjdCBvZmYgdGhlIGxpbmUgc3BhY2luZy5cbiAgJGluZml4LXBhZGRpbmc6IDAuNWVtIC0gJGxpbmUtc3BhY2luZztcbiAgLy8gVGhlIG1hcmdpbiBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLWluZml4IHRvIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBmbG9hdGluZyBsYWJlbC5cbiAgJGluZml4LW1hcmdpbi10b3A6IDFlbSAqICRsaW5lLWhlaWdodCAqICRzdWJzY3JpcHQtZm9udC1zY2FsZTtcbiAgLy8gVGhlIHNwYWNlIGJldHdlZW4gdGhlIGJvdHRvbSBvZiB0aGUgLm1hdC1mb3JtLWZpZWxkLWZsZXggYXJlYSBhbmQgdGhlIHN1YnNjcmlwdCB3cmFwcGVyLlxuICAvLyBNb2NrcyBzaG93IGhhbGYgb2YgdGhlIHRleHQgc2l6ZSwgYnV0IHRoaXMgbWFyZ2luIGlzIGFwcGxpZWQgdG8gYW4gZWxlbWVudCB3aXRoIHRoZSBzdWJzY3JpcHRcbiAgLy8gdGV4dCBmb250IHNpemUsIHNvIHdlIG5lZWQgdG8gZGl2aWRlIGJ5IHRoZSBzY2FsZSBmYWN0b3IgdG8gbWFrZSBpdCBoYWxmIG9mIHRoZSBvcmlnaW5hbCB0ZXh0XG4gIC8vIHNpemUuIFdlIGFnYWluIG5lZWQgdG8gc3VidHJhY3Qgb2ZmIHRoZSBsaW5lIHNwYWNpbmcgc2luY2UgdGhlIG1vY2tzIG1lYXN1cmUgdG8gdGhlIGVkZ2Ugb2YgdGhlXG4gIC8vIHRleHQsIG5vdCB0aGUgIGVkZ2Ugb2YgdGhlIGxpbmUuXG4gICRzdWJzY3JpcHQtbWFyZ2luLXRvcDogMC41ZW0gLyAkc3Vic2NyaXB0LWZvbnQtc2NhbGUgLSAoJGxpbmUtc3BhY2luZyAqIDIpO1xuICAvLyBUaGUgcGFkZGluZyBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLXdyYXBwZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHN1YnNjcmlwdCwgc2luY2UgaXQnc1xuICAvLyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQuIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBvZiB0aGUgc3Vic2NyaXB0J3MgbWFyZ2luIGFuZCBsaW5lLWhlaWdodCwgYnV0IHdlXG4gIC8vIG5lZWQgdG8gbXVsdGlwbHkgYnkgdGhlIHN1YnNjcmlwdCBmb250IHNjYWxlIGZhY3RvciBzaW5jZSB0aGUgd3JhcHBlciBoYXMgYSBsYXJnZXIgZm9udCBzaXplLlxuICAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTogKCRzdWJzY3JpcHQtbWFyZ2luLXRvcCArICRsaW5lLWhlaWdodCkgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2UtbGVnYWN5IHtcbiAgICAubWF0LWZvcm0tZmllbGQtd3JhcHBlciB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogJHdyYXBwZXItcGFkZGluZy1ib3R0b207XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWluZml4IHtcbiAgICAgIHBhZGRpbmc6ICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgfVxuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXI6Zm9jdXMgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlciAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcsICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMCB3aWxsIHJlbHkgb24gQXV0b2ZpbGxNb25pdG9yIGluc3RlYWQuXG4gICAgICAubWF0LWZvcm0tZmllbGQtYXV0b2ZpbGwtY29udHJvbDotd2Via2l0LWF1dG9maWxsICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgfVxuXG4gICAgICAvLyBTZXJ2ZXItc2lkZSByZW5kZXJlZCBtYXRJbnB1dCB3aXRoIGEgbGFiZWwgYXR0cmlidXRlIGJ1dCBsYWJlbCBub3Qgc2hvd25cbiAgICAgIC8vICh1c2VkIGFzIGEgcHVyZSBDU1Mgc3RhbmQtaW4gZm9yIG1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCkuXG4gICAgICAubWF0LWlucHV0LXNlcnZlcltsYWJlbF06bm90KDpsYWJlbC1zaG93bikgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlclxuICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLWxlZ2FjeS1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIHRvcDogJGluZml4LW1hcmdpbi10b3AgKyAkaW5maXgtcGFkZGluZztcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtdW5kZXJsaW5lIHtcbiAgICAgIC8vIFdlIHdhbnQgdGhlIHVuZGVybGluZSB0byBzdGFydCBhdCB0aGUgZW5kIG9mIHRoZSBjb250ZW50IGJveCwgbm90IHRoZSBwYWRkaW5nIGJveCxcbiAgICAgIC8vIHNvIHdlIG1vdmUgaXQgdXAgYnkgdGhlIHBhZGRpbmcgYW1vdW50LlxuICAgICAgYm90dG9tOiAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTtcbiAgICB9XG5cbiAgICAubWF0LWZvcm0tZmllbGQtc3Vic2NyaXB0LXdyYXBwZXIge1xuICAgICAgbWFyZ2luLXRvcDogJHN1YnNjcmlwdC1tYXJnaW4tdG9wO1xuXG4gICAgICAvLyBXZSB3YW50IHRoZSBzdWJzY3JpcHQgdG8gc3RhcnQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudCBib3gsIG5vdCB0aGUgcGFkZGluZyBib3gsXG4gICAgICAvLyBzbyB3ZSBtb3ZlIGl0IHVwIGJ5IHRoZSBwYWRkaW5nIGFtb3VudCAoYWRqdXN0ZWQgZm9yIHRoZSBzbWFsbGVyIGZvbnQgc2l6ZSk7XG4gICAgICB0b3A6IGNhbGMoMTAwJSAtICN7JHdyYXBwZXItcGFkZGluZy1ib3R0b20gLyAkc3Vic2NyaXB0LWZvbnQtc2NhbGV9KTtcbiAgICB9XG4gIH1cblxuICAvLyB0cmFuc2xhdGVaIGNhdXNlcyB0aGUgbGFiZWwgdG8gbm90IGFwcGVhciB3aGlsZSBwcmludGluZywgc28gd2Ugb3ZlcnJpZGUgaXQgdG8gbm90XG4gIC8vIGFwcGx5IHRyYW5zbGF0ZVogd2hpbGUgcHJpbnRpbmdcbiAgQG1lZGlhIHByaW50IHtcbiAgICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1sZWdhY3kge1xuICAgICAgJi5tYXQtZm9ybS1maWVsZC1jYW4tZmxvYXQge1xuICAgICAgICAmLm1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCAubWF0LWZvcm0tZmllbGQtbGFiZWwsXG4gICAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nLXByaW50KFxuICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQGJyZWFraW5nLWNoYW5nZSA4LjAuMCB3aWxsIHJlbHkgb24gQXV0b2ZpbGxNb25pdG9yIGluc3RlYWQuXG4gICAgICAgIC5tYXQtZm9ybS1maWVsZC1hdXRvZmlsbC1jb250cm9sOi13ZWJraXQtYXV0b2ZpbGwgKyAubWF0LWZvcm0tZmllbGQtbGFiZWwtd3JhcHBlclxuICAgICAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sZWdhY3ktbGFiZWwtZmxvYXRpbmctcHJpbnQoXG4gICAgICAgICAgICAgICAgICAkc3Vic2NyaXB0LWZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXJ2ZXItc2lkZSByZW5kZXJlZCBtYXRJbnB1dCB3aXRoIGEgbGFiZWwgYXR0cmlidXRlIGJ1dCBsYWJlbCBub3Qgc2hvd25cbiAgICAgICAgLy8gKHVzZWQgYXMgYSBwdXJlIENTUyBzdGFuZC1pbiBmb3IgbWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0KS5cbiAgICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgICBAaW5jbHVkZSBfbWF0LWZvcm0tZmllbGQtbGVnYWN5LWxhYmVsLWZsb2F0aW5nLXByaW50KFxuICAgICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcHJpdmF0ZS1mb3JtLWZpZWxkLWxlZ2FjeS1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHt9XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1sZWdhY3ktdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWZvcm0tZmllbGQtbGVnYWN5Jykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtbGVnYWN5LWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICAgIEBpZiAkZGVuc2l0eSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1wcml2YXRlLWZvcm0tZmllbGQtbGVnYWN5LWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1sZWdhY3ktdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cbi8vIFRoZW1lIHN0eWxlcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIG91dGxpbmUgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKTtcblxuICAkbGFiZWwtZGlzYWJsZWQtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGlzYWJsZWQtdGV4dCk7XG4gICRvdXRsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjMsIDAuMTIpKTtcbiAgJG91dGxpbmUtY29sb3ItaG92ZXI6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgZGl2aWRlciwgaWYoJGlzLWRhcmstdGhlbWUsIDEsIDAuODcpKTtcbiAgJG91dGxpbmUtY29sb3ItcHJpbWFyeTogbWF0LWNvbG9yKCRwcmltYXJ5KTtcbiAgJG91dGxpbmUtY29sb3ItYWNjZW50OiBtYXQtY29sb3IoJGFjY2VudCk7XG4gICRvdXRsaW5lLWNvbG9yLXdhcm46IG1hdC1jb2xvcigkd2Fybik7XG4gICRvdXRsaW5lLWNvbG9yLWRpc2FibGVkOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjE1LCAwLjA2KSk7XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xuICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1ob3ZlcjtcbiAgICB9XG5cbiAgICAmLm1hdC1mb2N1c2VkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lLXRoaWNrIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLXByaW1hcnk7XG4gICAgICB9XG5cbiAgICAgICYubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGljayB7XG4gICAgICAgIGNvbG9yOiAkb3V0bGluZS1jb2xvci1hY2NlbnQ7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4gLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDbGFzcyByZXBlYXRlZCBzbyB0aGF0IHJ1bGUgaXMgc3BlY2lmaWMgZW5vdWdoIHRvIG92ZXJyaWRlIGZvY3VzZWQgYWNjZW50IGNvbG9yIGNhc2UuXG4gICAgJi5tYXQtZm9ybS1maWVsZC1pbnZhbGlkLm1hdC1mb3JtLWZpZWxkLWludmFsaWQge1xuICAgICAgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdGhpY2sge1xuICAgICAgICBjb2xvcjogJG91dGxpbmUtY29sb3Itd2FybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkIHtcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbGFiZWwtZGlzYWJsZWQtY29sb3I7XG4gICAgICB9XG5cbiAgICAgIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcbiAgICAgICAgY29sb3I6ICRvdXRsaW5lLWNvbG9yLWRpc2FibGVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWRlZHVwZTogMDtcblxuLy8gQXBwbGllcyBhIGZsb2F0aW5nIGxhYmVsIGFib3ZlIHRoZSBmb3JtIGZpZWxkIGNvbnRyb2wgaXRzZWxmLlxuQG1peGluIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKCRmb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0kaW5maXgtbWFyZ2luLXRvcCAtICRpbmZpeC1wYWRkaW5nICsgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlKVxuICBzY2FsZSgkZm9udC1zY2FsZSk7XG4gIHdpZHRoOiAxMDAlIC8gJGZvbnQtc2NhbGUgKyAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGU7XG5cbiAgJG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtZGVkdXBlOiAkbWF0LWZvcm0tZmllbGQtb3V0bGluZS1kZWR1cGUgKyAwLjAwMDAxICFnbG9iYWw7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG4gIC8vIFRoZSBhbW91bnQgdG8gc2NhbGUgdGhlIGZvbnQgZm9yIHRoZSBmbG9hdGluZyBsYWJlbCBhbmQgc3Vic2NyaXB0LlxuICAkc3Vic2NyaXB0LWZvbnQtc2NhbGU6IDAuNzU7XG4gIC8vIFRoZSBwYWRkaW5nIGFib3ZlIGFuZCBiZWxvdyB0aGUgaW5maXguXG4gICRpbmZpeC1wYWRkaW5nOiAxZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBUaGUgcGFkZGluZyBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLXdyYXBwZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHN1YnNjcmlwdCwgc2luY2UgaXQnc1xuICAvLyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQuIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBvZiB0aGUgc3Vic2NyaXB0J3MgbWFyZ2luIGFuZCBsaW5lLWhlaWdodCwgYnV0IHdlXG4gIC8vIG5lZWQgdG8gbXVsdGlwbHkgYnkgdGhlIHN1YnNjcmlwdCBmb250IHNjYWxlIGZhY3RvciBzaW5jZSB0aGUgd3JhcHBlciBoYXMgYSBsYXJnZXIgZm9udCBzaXplLlxuICAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTogKCRzdWJzY3JpcHQtbWFyZ2luLXRvcCArICRsaW5lLWhlaWdodCkgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIFRoZSBhbW91bnQgd2Ugb2Zmc2V0IHRoZSBsYWJlbCBmcm9tIHRoZSBpbnB1dCB0ZXh0IGluIHRoZSBvdXRsaW5lIGFwcGVhcmFuY2UuXG4gICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0OiAtMC4yNWVtO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUge1xuICAgIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgICBwYWRkaW5nOiAkaW5maXgtcGFkZGluZyAwICRpbmZpeC1wYWRkaW5nIDA7XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIHRvcDogJGluZml4LW1hcmdpbi10b3AgKyAkaW5maXgtcGFkZGluZztcbiAgICAgIG1hcmdpbi10b3A6ICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0O1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtY2FuLWZsb2F0IHtcbiAgICAgICYubWF0LWZvcm0tZmllbGQtc2hvdWxkLWZsb2F0IC5tYXQtZm9ybS1maWVsZC1sYWJlbCxcbiAgICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgX21hdC1mb3JtLWZpZWxkLW91dGxpbmUtbGFiZWwtZmxvYXRpbmcoXG4gICAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZyArICRvdXRsaW5lLWFwcGVhcmFuY2UtbGFiZWwtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRpbmZpeC1tYXJnaW4tdG9wKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VydmVyLXNpZGUgcmVuZGVyZWQgbWF0SW5wdXQgd2l0aCBhIGxhYmVsIGF0dHJpYnV0ZSBidXQgbGFiZWwgbm90IHNob3duXG4gICAgICAvLyAodXNlZCBhcyBhIHB1cmUgQ1NTIHN0YW5kLWluIGZvciBtYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQpLlxuICAgICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1vdXRsaW5lLWxhYmVsLWZsb2F0aW5nKFxuICAgICAgICAgICAgICAgICRzdWJzY3JpcHQtZm9udC1zY2FsZSwgJGluZml4LXBhZGRpbmcgKyAkb3V0bGluZS1hcHBlYXJhbmNlLWxhYmVsLW9mZnNldCxcbiAgICAgICAgICAgICAgICAkaW5maXgtbWFyZ2luLXRvcCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBtYXQtcHJpdmF0ZS1mb3JtLWZpZWxkLW91dGxpbmUtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtb3V0bGluZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKSB7XG4gICR0aGVtZTogbWF0LXByaXZhdGUtbGVnYWN5LWdldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtY2hlY2stZHVwbGljYXRlLXRoZW1lLXN0eWxlcygkdGhlbWUsICdtYXQtZm9ybS1maWVsZC1vdXRsaW5lJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtb3V0bGluZS1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1mb3JtLWZpZWxkLW91dGxpbmUtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLW91dGxpbmUtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeSk7XG4gICAgfVxuICB9XG59XG5cblxuXG5cblxuXG5cblxuLy8gVGhlbWUgc3R5bGVzIHRoYXQgb25seSBhcHBseSB0byB0aGUgc3RhbmRhcmQgYXBwZWFyYW5jZSBvZiB0aGUgZm9ybS1maWVsZC5cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuICAkaXMtZGFyay10aGVtZTogbWFwLWdldCgkY29uZmlnLCBpcy1kYXJrKTtcblxuICAkdW5kZXJsaW5lLWNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNDIpKTtcblxuICAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1zdGFuZGFyZCB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLXVuZGVybGluZSB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jb250cm9sLWRpc2FibGVkLXVuZGVybGluZSgkdW5kZXJsaW5lLWNvbG9yKTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge31cblxuQG1peGluIG1hdC1wcml2YXRlLWZvcm0tZmllbGQtc3RhbmRhcmQtZGVuc2l0eSgkY29uZmlnLW9yLXRoZW1lKSB7fVxuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtc3RhbmRhcmQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWZvcm0tZmllbGQtc3RhbmRhcmQnKSB7XG4gICAgJGNvbG9yOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkdGhlbWUpO1xuICAgICRkZW5zaXR5OiBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCR0aGVtZSk7XG4gICAgJHR5cG9ncmFwaHk6IG1hdC1nZXQtdHlwb2dyYXBoeS1jb25maWcoJHRoZW1lKTtcblxuICAgIEBpZiAkY29sb3IgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC1jb2xvcigkY29sb3IpO1xuICAgIH1cbiAgICBAaWYgJGRlbnNpdHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1mb3JtLWZpZWxkLXN0YW5kYXJkLWRlbnNpdHkoJGRlbnNpdHkpO1xuICAgIH1cbiAgICBAaWYgJHR5cG9ncmFwaHkgIT0gbnVsbCB7XG4gICAgICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1zdGFuZGFyZC10eXBvZ3JhcGh5KCR0eXBvZ3JhcGh5KTtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBDb2xvciBzdHlsZXMgdGhhdCBhcHBseSB0byBhbGwgYXBwZWFyYW5jZXMgb2YgdGhlIGZvcm0tZmllbGQuXG5AbWl4aW4gbWF0LWZvcm0tZmllbGQtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgJHByaW1hcnk6IG1hcC1nZXQoJGNvbmZpZywgcHJpbWFyeSk7XG4gICRhY2NlbnQ6IG1hcC1nZXQoJGNvbmZpZywgYWNjZW50KTtcbiAgJHdhcm46IG1hcC1nZXQoJGNvbmZpZywgd2Fybik7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcbiAgJGlzLWRhcmstdGhlbWU6IG1hcC1nZXQoJGNvbmZpZywgaXMtZGFyayk7XG5cbiAgLy8gTGFiZWwgY29sb3JzLiBSZXF1aXJlZCBpcyB1c2VkIGZvciB0aGUgYCpgIHN0YXIgc2hvd24gaW4gdGhlIGxhYmVsLlxuICAkbGFiZWwtY29sb3I6IG1hdC1jb2xvcigkZm9yZWdyb3VuZCwgc2Vjb25kYXJ5LXRleHQsIGlmKCRpcy1kYXJrLXRoZW1lLCAwLjcsIDAuNikpO1xuICAkZm9jdXNlZC1sYWJlbC1jb2xvcjogbWF0LWNvbG9yKCRwcmltYXJ5LCB0ZXh0KTtcbiAgJHJlcXVpcmVkLWxhYmVsLWNvbG9yOiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG5cbiAgLy8gVW5kZXJsaW5lIGNvbG9ycy5cbiAgJHVuZGVybGluZS1jb2xvci1iYXNlOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIGRpdmlkZXIsIGlmKCRpcy1kYXJrLXRoZW1lLCAxLCAwLjg3KSk7XG4gICR1bmRlcmxpbmUtY29sb3ItYWNjZW50OiBtYXQtY29sb3IoJGFjY2VudCwgdGV4dCk7XG4gICR1bmRlcmxpbmUtY29sb3Itd2FybjogbWF0LWNvbG9yKCR3YXJuLCB0ZXh0KTtcbiAgJHVuZGVybGluZS1mb2N1c2VkLWNvbG9yOiBtYXQtY29sb3IoJHByaW1hcnksIHRleHQpO1xuXG4gIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XG4gICAgY29sb3I6ICRsYWJlbC1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtaGludCB7XG4gICAgY29sb3I6ICRsYWJlbC1jb2xvcjtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIGNvbG9yOiAkZm9jdXNlZC1sYWJlbC1jb2xvcjtcblxuICAgICYubWF0LWFjY2VudCB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci1hY2NlbnQ7XG4gICAgfVxuXG4gICAgJi5tYXQtd2FybiB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtcmVxdWlyZWQtbWFya2VyIHtcbiAgICBjb2xvcjogJHJlcXVpcmVkLWxhYmVsLWNvbG9yO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvci1iYXNlO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLm1hdC1mb2N1c2VkIHtcbiAgICAubWF0LWZvcm0tZmllbGQtcmlwcGxlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR1bmRlcmxpbmUtZm9jdXNlZC1jb2xvcjtcblxuICAgICAgJi5tYXQtYWNjZW50IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvci1hY2NlbnQ7XG4gICAgICB9XG5cbiAgICAgICYubWF0LXdhcm4ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLXR5cGUtbWF0LW5hdGl2ZS1zZWxlY3QubWF0LWZvY3VzZWQ6bm90KC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkKSB7XG4gICAgLm1hdC1mb3JtLWZpZWxkLWluZml4OjphZnRlciB7XG4gICAgICBjb2xvcjogJHVuZGVybGluZS1mb2N1c2VkLWNvbG9yO1xuICAgIH1cblxuICAgICYubWF0LWFjY2VudCAubWF0LWZvcm0tZmllbGQtaW5maXg6OmFmdGVyIHtcbiAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLWFjY2VudDtcbiAgICB9XG5cbiAgICAmLm1hdC13YXJuIC5tYXQtZm9ybS1maWVsZC1pbmZpeDo6YWZ0ZXIge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcbiAgICB9XG4gIH1cblxuICAvLyBTdHlsaW5nIGZvciB0aGUgZXJyb3Igc3RhdGUgb2YgdGhlIGZvcm0gZmllbGQuIE5vdGUgdGhhdCB3aGlsZSB0aGUgc2FtZSBjYW4gYmVcbiAgLy8gYWNoaWV2ZWQgd2l0aCB0aGUgbmctKiBjbGFzc2VzLCB3ZSB1c2UgdGhpcyBhcHByb2FjaCBpbiBvcmRlciB0byBlbnN1cmUgdGhhdCB0aGUgc2FtZVxuICAvLyBsb2dpYyBpcyB1c2VkIHRvIHN0eWxlIHRoZSBlcnJvciBzdGF0ZSBhbmQgdG8gc2hvdyB0aGUgZXJyb3IgbWVzc2FnZXMuXG4gIC5tYXQtZm9ybS1maWVsZC5tYXQtZm9ybS1maWVsZC1pbnZhbGlkIHtcbiAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgICAgY29sb3I6ICR1bmRlcmxpbmUtY29sb3Itd2FybjtcblxuICAgICAgJi5tYXQtYWNjZW50LFxuICAgICAgLm1hdC1mb3JtLWZpZWxkLXJlcXVpcmVkLW1hcmtlciB7XG4gICAgICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1hdC1mb3JtLWZpZWxkLXJpcHBsZSxcbiAgICAubWF0LWZvcm0tZmllbGQtcmlwcGxlLm1hdC1hY2NlbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVuZGVybGluZS1jb2xvci13YXJuO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZXJyb3Ige1xuICAgIGNvbG9yOiAkdW5kZXJsaW5lLWNvbG9yLXdhcm47XG4gIH1cblxuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1sZWdhY3ktY29sb3IoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXN0YW5kYXJkLWNvbG9yKCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1maWxsLWNvbG9yKCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLWNvbG9yKCRjb25maWcpO1xufVxuXG4vLyBVc2VkIHRvIG1ha2UgaW5zdGFuY2VzIG9mIHRoZSBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcgbWl4aW4gbmVnbGlnaWJseSBkaWZmZXJlbnQsXG4vLyBhbmQgcHJldmVudCBHb29nbGUncyBDU1MgT3B0aW1pemVyIGZyb20gY29sbGFwc2luZyB0aGUgZGVjbGFyYXRpb25zLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHNvbWVcbi8vIG9mIHRoZSBzZWxlY3RvcnMgY29udGFpbiBwc2V1ZG8tY2xhc3NlcyBub3QgcmVjb2duaXplZCBpbiBhbGwgYnJvd3NlcnMuIElmIGEgYnJvd3NlciBlbmNvdW50ZXJzXG4vLyBhbiB1bmtub3duIHBzZXVkby1jbGFzcyBpdCB3aWxsIGRpc2NhcmQgdGhlIGVudGlyZSBydWxlIHNldC5cbiRtYXQtZm9ybS1maWVsZC1kZWR1cGU6IDA7XG5cbi8vIEFwcGxpZXMgYSBmbG9hdGluZyBsYWJlbCBhYm92ZSB0aGUgZm9ybSBmaWVsZCBjb250cm9sIGl0c2VsZi5cbkBtaXhpbiBfbWF0LWZvcm0tZmllbGQtbGFiZWwtZmxvYXRpbmcoJGZvbnQtc2NhbGUsICRpbmZpeC1wYWRkaW5nLCAkaW5maXgtbWFyZ2luLXRvcCkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLSRpbmZpeC1tYXJnaW4tdG9wIC0gJGluZml4LXBhZGRpbmcgKyAkbWF0LWZvcm0tZmllbGQtZGVkdXBlKVxuICAgICAgICAgICAgIHNjYWxlKCRmb250LXNjYWxlKTtcbiAgd2lkdGg6IDEwMCUgLyAkZm9udC1zY2FsZSArICRtYXQtZm9ybS1maWVsZC1kZWR1cGU7XG5cbiAgJG1hdC1mb3JtLWZpZWxkLWRlZHVwZTogJG1hdC1mb3JtLWZpZWxkLWRlZHVwZSArIDAuMDAwMDEgIWdsb2JhbDtcbn1cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpO1xuICAvLyBUaGUgdW5pdC1sZXNzIGxpbmUtaGVpZ2h0IGZyb20gdGhlIGZvbnQgY29uZmlnLlxuICAkbGluZS1oZWlnaHQ6IG1hdC1saW5lLWhlaWdodCgkY29uZmlnLCBpbnB1dCk7XG5cbiAgLy8gVGhlIGFtb3VudCB0byBzY2FsZSB0aGUgZm9udCBmb3IgdGhlIGZsb2F0aW5nIGxhYmVsIGFuZCBzdWJzY3JpcHQuXG4gICRzdWJzY3JpcHQtZm9udC1zY2FsZTogMC43NTtcbiAgLy8gVGhlIGFtb3VudCB0byBzY2FsZSB0aGUgZm9udCBmb3IgdGhlIHByZWZpeCBhbmQgc3VmZml4IGljb25zLlxuICAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGU6IDEuNTtcblxuICAvLyBUaGUgcGFkZGluZyBvbiB0aGUgaW5maXguIE1vY2tzIHNob3cgaGFsZiBvZiB0aGUgdGV4dCBzaXplLlxuICAkaW5maXgtcGFkZGluZzogMC41ZW07XG4gIC8vIFRoZSBtYXJnaW4gYXBwbGllZCB0byB0aGUgZm9ybS1maWVsZC1pbmZpeCB0byByZXNlcnZlIHNwYWNlIGZvciB0aGUgZmxvYXRpbmcgbGFiZWwuXG4gICRpbmZpeC1tYXJnaW4tdG9wOiAxZW0gKiAkbGluZS1oZWlnaHQgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG4gIC8vIEZvbnQgc2l6ZSB0byB1c2UgZm9yIHRoZSBsYWJlbCBhbmQgc3Vic2NyaXB0IHRleHQuXG4gICRzdWJzY3JpcHQtZm9udC1zaXplOiAkc3Vic2NyaXB0LWZvbnQtc2NhbGUgKiAxMDAlO1xuICAvLyBGb250IHNpemUgdG8gdXNlIGZvciB0aGUgZm9yIHRoZSBwcmVmaXggYW5kIHN1ZmZpeCBpY29ucy5cbiAgJHByZWZpeC1zdWZmaXgtaWNvbi1mb250LXNpemU6ICRwcmVmaXgtc3VmZml4LWljb24tZm9udC1zY2FsZSAqIDEwMCU7XG4gIC8vIFRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBib3R0b20gb2YgdGhlIC5tYXQtZm9ybS1maWVsZC1mbGV4IGFyZWEgYW5kIHRoZSBzdWJzY3JpcHQgd3JhcHBlci5cbiAgLy8gTW9ja3Mgc2hvdyBoYWxmIG9mIHRoZSB0ZXh0IHNpemUsIGJ1dCB0aGlzIG1hcmdpbiBpcyBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgd2l0aCB0aGUgc3Vic2NyaXB0XG4gIC8vIHRleHQgZm9udCBzaXplLCBzbyB3ZSBuZWVkIHRvIGRpdmlkZSBieSB0aGUgc2NhbGUgZmFjdG9yIHRvIG1ha2UgaXQgaGFsZiBvZiB0aGUgb3JpZ2luYWwgdGV4dFxuICAvLyBzaXplLlxuICAkc3Vic2NyaXB0LW1hcmdpbi10b3A6IDAuNWVtIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlO1xuICAvLyBUaGUgcGFkZGluZyBhcHBsaWVkIHRvIHRoZSBmb3JtLWZpZWxkLXdyYXBwZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIHN1YnNjcmlwdCwgc2luY2UgaXQnc1xuICAvLyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQuIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBvZiB0aGUgc3Vic2NyaXB0J3MgbWFyZ2luIGFuZCBsaW5lLWhlaWdodCwgYnV0IHdlXG4gIC8vIG5lZWQgdG8gbXVsdGlwbHkgYnkgdGhlIHN1YnNjcmlwdCBmb250IHNjYWxlIGZhY3RvciBzaW5jZSB0aGUgd3JhcHBlciBoYXMgYSBsYXJnZXIgZm9udCBzaXplLlxuICAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTogKCRzdWJzY3JpcHQtbWFyZ2luLXRvcCArICRsaW5lLWhlaWdodCkgKiAkc3Vic2NyaXB0LWZvbnQtc2NhbGU7XG5cbiAgLm1hdC1mb3JtLWZpZWxkIHtcbiAgICBAaW5jbHVkZSBtYXQtdHlwb2dyYXBoeS1sZXZlbC10by1zdHlsZXMoJGNvbmZpZywgaW5wdXQpO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLXdyYXBwZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAkd3JhcHBlci1wYWRkaW5nLWJvdHRvbTtcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1wcmVmaXgsXG4gIC5tYXQtZm9ybS1maWVsZC1zdWZmaXgge1xuICAgIC8vIEFsbG93IGljb25zIGluIGEgcHJlZml4IG9yIHN1ZmZpeCB0byBhZGFwdCB0byB0aGUgY29ycmVjdCBzaXplLlxuICAgIC5tYXQtaWNvbiB7XG4gICAgICBmb250LXNpemU6ICRwcmVmaXgtc3VmZml4LWljb24tZm9udC1zaXplO1xuICAgICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgICB9XG5cbiAgICAvLyBBbGxvdyBpY29uIGJ1dHRvbnMgaW4gYSBwcmVmaXggb3Igc3VmZml4IHRvIGFkYXB0IHRvIHRoZSBjb3JyZWN0IHNpemUuXG4gICAgLm1hdC1pY29uLWJ1dHRvbiB7XG4gICAgICBoZWlnaHQ6ICRwcmVmaXgtc3VmZml4LWljb24tZm9udC1zY2FsZSAqIDFlbTtcbiAgICAgIHdpZHRoOiAkcHJlZml4LXN1ZmZpeC1pY29uLWZvbnQtc2NhbGUgKiAxZW07XG5cbiAgICAgIC5tYXQtaWNvbiB7XG4gICAgICAgIGhlaWdodDogJGxpbmUtaGVpZ2h0ICogMWVtO1xuICAgICAgICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1pbmZpeCB7XG4gICAgcGFkZGluZzogJGluZml4LXBhZGRpbmcgMDtcbiAgICAvLyBUaHJvd3Mgb2ZmIHRoZSBiYXNlbGluZSBpZiB3ZSBkbyBpdCBhcyBhIHJlYWwgbWFyZ2luLCBzbyB3ZSBkbyBpdCBhcyBhIGJvcmRlciBpbnN0ZWFkLlxuICAgIGJvcmRlci10b3A6ICRpbmZpeC1tYXJnaW4tdG9wIHNvbGlkIHRyYW5zcGFyZW50O1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLWNhbi1mbG9hdCB7XG4gICAgJi5tYXQtZm9ybS1maWVsZC1zaG91bGQtZmxvYXQgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLFxuICAgIC5tYXQtaW5wdXQtc2VydmVyOmZvY3VzICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXIgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgIH1cblxuICAgIC8vIFNlcnZlci1zaWRlIHJlbmRlcmVkIG1hdElucHV0IHdpdGggYSBsYWJlbCBhdHRyaWJ1dGUgYnV0IGxhYmVsIG5vdCBzaG93blxuICAgIC8vICh1c2VkIGFzIGEgcHVyZSBDU1Mgc3RhbmQtaW4gZm9yIG1hdC1mb3JtLWZpZWxkLXNob3VsZC1mbG9hdCkuXG4gICAgLm1hdC1pbnB1dC1zZXJ2ZXJbbGFiZWxdOm5vdCg6bGFiZWwtc2hvd24pICsgLm1hdC1mb3JtLWZpZWxkLWxhYmVsLXdyYXBwZXJcbiAgICAgICAgLm1hdC1mb3JtLWZpZWxkLWxhYmVsIHtcbiAgICAgIEBpbmNsdWRlIF9tYXQtZm9ybS1maWVsZC1sYWJlbC1mbG9hdGluZyhcbiAgICAgICAgICAgICAgJHN1YnNjcmlwdC1mb250LXNjYWxlLCAkaW5maXgtcGFkZGluZywgJGluZml4LW1hcmdpbi10b3ApO1xuICAgIH1cbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC1sYWJlbC13cmFwcGVyIHtcbiAgICB0b3A6IC0kaW5maXgtbWFyZ2luLXRvcDtcbiAgICBwYWRkaW5nLXRvcDogJGluZml4LW1hcmdpbi10b3A7XG4gIH1cblxuICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICAgIHRvcDogJGluZml4LW1hcmdpbi10b3AgKyAkaW5maXgtcGFkZGluZztcbiAgfVxuXG4gIC5tYXQtZm9ybS1maWVsZC11bmRlcmxpbmUge1xuICAgIC8vIFdlIHdhbnQgdGhlIHVuZGVybGluZSB0byBzdGFydCBhdCB0aGUgZW5kIG9mIHRoZSBjb250ZW50IGJveCwgbm90IHRoZSBwYWRkaW5nIGJveCxcbiAgICAvLyBzbyB3ZSBtb3ZlIGl0IHVwIGJ5IHRoZSBwYWRkaW5nIGFtb3VudC5cbiAgICBib3R0b206ICR3cmFwcGVyLXBhZGRpbmctYm90dG9tO1xuICB9XG5cbiAgLm1hdC1mb3JtLWZpZWxkLXN1YnNjcmlwdC13cmFwcGVyIHtcbiAgICBmb250LXNpemU6ICRzdWJzY3JpcHQtZm9udC1zaXplO1xuICAgIG1hcmdpbi10b3A6ICRzdWJzY3JpcHQtbWFyZ2luLXRvcDtcblxuICAgIC8vIFdlIHdhbnQgdGhlIHN1YnNjcmlwdCB0byBzdGFydCBhdCB0aGUgZW5kIG9mIHRoZSBjb250ZW50IGJveCwgbm90IHRoZSBwYWRkaW5nIGJveCxcbiAgICAvLyBzbyB3ZSBtb3ZlIGl0IHVwIGJ5IHRoZSBwYWRkaW5nIGFtb3VudCAoYWRqdXN0ZWQgZm9yIHRoZSBzbWFsbGVyIGZvbnQgc2l6ZSk7XG4gICAgdG9wOiBjYWxjKDEwMCUgLSAjeyR3cmFwcGVyLXBhZGRpbmctYm90dG9tIC8gJHN1YnNjcmlwdC1mb250LXNjYWxlfSk7XG4gIH1cblxuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1sZWdhY3ktdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtc3RhbmRhcmQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtZmlsbC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC1vdXRsaW5lLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG59XG5cbkBtaXhpbiBtYXQtZm9ybS1maWVsZC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGRlbnNpdHktc2NhbGU6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWZvcm0tZmllbGQtbGVnYWN5LWRlbnNpdHkoJGRlbnNpdHktc2NhbGUpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1mb3JtLWZpZWxkLXN0YW5kYXJkLWRlbnNpdHkoJGRlbnNpdHktc2NhbGUpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1mb3JtLWZpZWxkLWZpbGwtZGVuc2l0eSgkZGVuc2l0eS1zY2FsZSk7XG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWZvcm0tZmllbGQtb3V0bGluZS1kZW5zaXR5KCRkZW5zaXR5LXNjYWxlKTtcbn1cblxuQG1peGluIG1hdC1mb3JtLWZpZWxkLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC1mb3JtLWZpZWxkJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LWZvcm0tZmllbGQtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG5cbiRtYXQtdHJlZS1ub2RlLWhlaWdodDogNDhweCAhZGVmYXVsdDtcbi8vIE1pbmltdW0gaGVpZ2h0IGZvciB0cmVlIG5vZGVzIGluIGhpZ2hlc3QgZGVuc2l0eSBpcyBkaWZmaWN1bHQgdG8gZGV0ZXJtaW5lIGFzXG4vLyBkZXZlbG9wZXJzIGNhbiBkaXNwbGF5IGFyYml0cmFyeSBjb250ZW50LiBXZSB1c2UgYSBtaW5pbXVtIGhlaWdodCB3aGljaCBlbnN1cmVzXG4vLyB0aGF0IGNvbW1vbiBjb250ZW50IHBsYWNlZCBpbiB0cmVlIG5vZGVzIGRvZXMgbm90IGV4Y2VlZCAoZS5nLiBpY29ucywgY2hlY2tib3hlcykuXG4kbWF0LXRyZWUtbm9kZS1taW5pbXVtLWhlaWdodDogMjRweCAhZGVmYXVsdDtcbiRtYXQtdHJlZS1ub2RlLW1heGltdW0taGVpZ2h0OiAkbWF0LXRyZWUtbm9kZS1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRtYXQtdHJlZS1kZW5zaXR5LWNvbmZpZzogKFxuICBoZWlnaHQ6IChcbiAgICBkZWZhdWx0OiAkbWF0LXRyZWUtbm9kZS1oZWlnaHQsXG4gICAgbWF4aW11bTogJG1hdC10cmVlLW5vZGUtbWF4aW11bS1oZWlnaHQsXG4gICAgbWluaW11bTogJG1hdC10cmVlLW5vZGUtbWluaW11bS1oZWlnaHQsXG4gIClcbikgIWRlZmF1bHQ7XG5cblxuQG1peGluIG1hdC10cmVlLWNvbG9yKCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAkZm9yZWdyb3VuZDogbWFwLWdldCgkY29uZmlnLCBmb3JlZ3JvdW5kKTtcblxuICAubWF0LXRyZWUge1xuICAgIGJhY2tncm91bmQ6IG1hdC1jb2xvcigkYmFja2dyb3VuZCwgJ2NhcmQnKTtcbiAgfVxuXG4gIC5tYXQtdHJlZS1ub2RlLFxuICAubWF0LW5lc3RlZC10cmVlLW5vZGUge1xuICAgIGNvbG9yOiBtYXQtY29sb3IoJGZvcmVncm91bmQsIHRleHQpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdHJlZS10eXBvZ3JhcGh5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGNvbmZpZzogbWF0LWdldC10eXBvZ3JhcGh5LWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLm1hdC10cmVlIHtcbiAgICBmb250LWZhbWlseTogbWF0LWZvbnQtZmFtaWx5KCRjb25maWcpO1xuICB9XG5cbiAgLm1hdC10cmVlLW5vZGUsXG4gIC5tYXQtbmVzdGVkLXRyZWUtbm9kZSB7XG4gICAgZm9udC13ZWlnaHQ6IG1hdC1mb250LXdlaWdodCgkY29uZmlnLCBib2R5LTEpO1xuICAgIGZvbnQtc2l6ZTogbWF0LWZvbnQtc2l6ZSgkY29uZmlnLCBib2R5LTEpO1xuICB9XG59XG5cbkBtaXhpbiBtYXQtdHJlZS1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgJGRlbnNpdHktc2NhbGU6IG1hdC1nZXQtZGVuc2l0eS1jb25maWcoJGNvbmZpZy1vci10aGVtZSk7XG4gICRoZWlnaHQ6IG1hdC1wcml2YXRlLWRlbnNpdHktcHJvcC12YWx1ZSgkbWF0LXRyZWUtZGVuc2l0eS1jb25maWcsICRkZW5zaXR5LXNjYWxlLCBoZWlnaHQpO1xuXG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWRlbnNpdHktbGVnYWN5LWNvbXBhdGliaWxpdHkoKSB7XG4gICAgLm1hdC10cmVlLW5vZGUge1xuICAgICAgbWluLWhlaWdodDogJGhlaWdodDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIG1hdC10cmVlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpIHtcbiAgJHRoZW1lOiBtYXQtcHJpdmF0ZS1sZWdhY3ktZ2V0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZSwgJ21hdC10cmVlJykge1xuICAgICRjb2xvcjogbWF0LWdldC1jb2xvci1jb25maWcoJHRoZW1lKTtcbiAgICAkZGVuc2l0eTogbWF0LWdldC1kZW5zaXR5LWNvbmZpZygkdGhlbWUpO1xuICAgICR0eXBvZ3JhcGh5OiBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCR0aGVtZSk7XG5cbiAgICBAaWYgJGNvbG9yICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXRyZWUtY29sb3IoJGNvbG9yKTtcbiAgICB9XG4gICAgQGlmICRkZW5zaXR5ICE9IG51bGwge1xuICAgICAgQGluY2x1ZGUgbWF0LXRyZWUtZGVuc2l0eSgkZGVuc2l0eSk7XG4gICAgfVxuICAgIEBpZiAkdHlwb2dyYXBoeSAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC10cmVlLXR5cG9ncmFwaHkoJHR5cG9ncmFwaHkpO1xuICAgIH1cbiAgfVxufVxuXG5cblxuXG4vLyBJbmNsdWRlcyBhbGwgb2YgdGhlIHR5cG9ncmFwaGljIHN0eWxlcy5cbkBtaXhpbiBhbmd1bGFyLW1hdGVyaWFsLXR5cG9ncmFwaHkoJGNvbmZpZy1vci10aGVtZTogbnVsbCkge1xuICAkY29uZmlnOiBpZihtYXQtcHJpdmF0ZS1pcy10aGVtZS1vYmplY3QoJGNvbmZpZy1vci10aGVtZSksXG4gICAgICBtYXQtZ2V0LXR5cG9ncmFwaHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpLCAkY29uZmlnLW9yLXRoZW1lKTtcblxuICAvLyBJZiBubyBhY3R1YWwgY29sb3IgY29uZmlndXJhdGlvbiBoYXMgYmVlbiBzcGVjaWZpZWQsIGNyZWF0ZSBhIGRlZmF1bHQgb25lLlxuICBAaWYgbm90ICRjb25maWcge1xuICAgICRjb25maWc6IG1hdC10eXBvZ3JhcGh5LWNvbmZpZygpO1xuICB9XG5cbiAgLy8gVE9ETzogQ09NUC0zMDk6IERvIG5vdCB1c2UgaW5kaXZpZHVhbCBtaXhpbnMuIEluc3RlYWQsIHVzZSB0aGUgYWxsLXRoZW1lIG1peGluIGFuZCBvbmx5XG4gIC8vIHNwZWNpZnkgYSBgdHlwb2dyYXBoeWAgY29uZmlnIHdoaWxlIHNldHRpbmcgYGNvbG9yYCBhbmQgYGRlbnNpdHlgIHRvIGBudWxsYC4gVGhpcyBpcyBjdXJyZW50bHlcbiAgLy8gbm90IHBvc3NpYmxlIGFzIGl0IHdvdWxkIGludHJvZHVjZSBhIGNpcmN1bGFyIGRlcGVuZGVuY3kgZm9yIHR5cG9ncmFwaHkgYmVjYXVzZSB0aGUgYG1hdC1jb3JlYFxuICAvLyBtaXhpbiB0aGF0IGlzIHRyYW5zaXRpdmVseSBsb2FkZWQgYnkgdGhlIGBhbGwtdGhlbWVgIGZpbGUsIGltcG9ydHMgYGFsbC10eXBvZ3JhcGh5YCB3aGljaFxuICAvLyB3b3VsZCB0aGVuIGxvYWQgYGFsbC10aGVtZWAgYWdhaW4uIFRoaXMgdWx0aW1hdGVseSByZXN1bHRzIGEgY2lyY3VsYXIgZGVwZW5kZW5jeS5cblxuICBAaW5jbHVkZSBtYXQtYmFkZ2UtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWJhc2UtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWF1dG9jb21wbGV0ZS10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtYm90dG9tLXNoZWV0LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1idXR0b24tdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWJ1dHRvbi10b2dnbGUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWNhcmQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWNoZWNrYm94LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1jaGlwcy10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZGl2aWRlci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdGFibGUtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWRhdGVwaWNrZXItdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWRpYWxvZy10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtZXhwYW5zaW9uLXBhbmVsLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1ncmlkLWxpc3QtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWljb24tdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWlucHV0LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1tZW51LXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1wYWdpbmF0b3ItdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLWJhci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcHJvZ3Jlc3Mtc3Bpbm5lci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcmFkaW8tdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXNlbGVjdC10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc2lkZW5hdi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc2xpZGUtdG9nZ2xlLXR5cG9ncmFwaHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1zbGlkZXItdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXN0ZXBwZXItdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXNvcnQtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXRhYnMtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2xiYXItdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXRvb2x0aXAtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LWxpc3QtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LW9wdGlvbi10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtb3B0Z3JvdXAtdHlwb2dyYXBoeSgkY29uZmlnKTtcbiAgQGluY2x1ZGUgbWF0LXNuYWNrLWJhci10eXBvZ3JhcGh5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdHJlZS10eXBvZ3JhcGh5KCRjb25maWcpO1xufVxuXG5cbi8vIE1peGluIHRoYXQgcmVuZGVycyBhbGwgb2YgdGhlIGNvcmUgc3R5bGVzIHRoYXQgYXJlIG5vdCB0aGVtZS1kZXBlbmRlbnQuXG5AbWl4aW4gbWF0LWNvcmUoJHR5cG9ncmFwaHktY29uZmlnOiBudWxsKSB7XG4gIEBpbmNsdWRlIGFuZ3VsYXItbWF0ZXJpYWwtdHlwb2dyYXBoeSgkdHlwb2dyYXBoeS1jb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcmlwcGxlKCk7XG4gIEBpbmNsdWRlIGNkay1hMTF5KCk7XG4gIEBpbmNsdWRlIGNkay1vdmVybGF5KCk7XG4gIEBpbmNsdWRlIGNkay10ZXh0LWZpZWxkKCk7XG5cbiAgQGluY2x1ZGUgbWF0LXByaXZhdGUtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtcG9zaXRpb25pbmcoKTtcbiAgQGluY2x1ZGUgX21hdC1tZGMtY29yZSgpO1xufVxuXG5AbWl4aW4gbWF0LWNvcmUtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAkY29uZmlnOiBtYXQtZ2V0LWNvbG9yLWNvbmZpZygkY29uZmlnLW9yLXRoZW1lKTtcbiAgLy8gV3JhcHBlciBlbGVtZW50IHRoYXQgcHJvdmlkZXMgdGhlIHRoZW1lIGJhY2tncm91bmQgd2hlbiB0aGUgdXNlcidzIGNvbnRlbnQgaXNuJ3RcbiAgLy8gaW5zaWRlIG9mIGEgYG1hdC1zaWRlbmF2LWNvbnRhaW5lcmAuIE5vdGUgdGhhdCB3ZSBuZWVkIHRvIGV4Y2x1ZGUgdGhlIGFtcGVyc2FuZFxuICAvLyBzZWxlY3RvciBpbiBjYXNlIHRoZSBtaXhpbiBpcyBpbmNsdWRlZCBhdCB0aGUgdG9wIGxldmVsLlxuICAubWF0LWFwcC1iYWNrZ3JvdW5kI3tpZigmLCAnLCAmLm1hdC1hcHAtYmFja2dyb3VuZCcsICcnKX0ge1xuICAgICRiYWNrZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGJhY2tncm91bmQpO1xuICAgICRmb3JlZ3JvdW5kOiBtYXAtZ2V0KCRjb25maWcsIGZvcmVncm91bmQpO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogbWF0LWNvbG9yKCRiYWNrZ3JvdW5kLCBiYWNrZ3JvdW5kKTtcbiAgICBjb2xvcjogbWF0LWNvbG9yKCRmb3JlZ3JvdW5kLCB0ZXh0KTtcbiAgfVxuXG4gIC8vIFByb3ZpZGVzIGV4dGVybmFsIENTUyBjbGFzc2VzIGZvciBlYWNoIGVsZXZhdGlvbiB2YWx1ZS4gRWFjaCBDU1MgY2xhc3MgaXMgZm9ybWF0dGVkIGFzXG4gIC8vIGBtYXQtZWxldmF0aW9uLXokelZhbHVlYCB3aGVyZSBgJHpWYWx1ZWAgY29ycmVzcG9uZHMgdG8gdGhlIHotc3BhY2UgdG8gd2hpY2ggdGhlIGVsZW1lbnQgaXNcbiAgLy8gZWxldmF0ZWQuXG4gIEBmb3IgJHpWYWx1ZSBmcm9tIDAgdGhyb3VnaCAyNCB7XG4gICAgLiN7JG1hdC1lbGV2YXRpb24tcHJlZml4fSN7JHpWYWx1ZX0ge1xuICAgICAgQGluY2x1ZGUgbWF0LXByaXZhdGUtdGhlbWUtZWxldmF0aW9uKCR6VmFsdWUsICRjb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIC8vIE1hcmtlciB0aGF0IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHVzZXIgaGFzIGFkZGVkIGEgdGhlbWUgdG8gdGhlaXIgcGFnZS5cbiAgQGF0LXJvb3Qge1xuICAgIC5tYXQtdGhlbWUtbG9hZGVkLW1hcmtlciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vLyBNaXhpbiB0aGF0IHJlbmRlcnMgYWxsIG9mIHRoZSBjb3JlIHN0eWxlcyB0aGF0IGRlcGVuZCBvbiB0aGUgdGhlbWUuXG5AbWl4aW4gbWF0LWNvcmUtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkdGhlbWU6IG1hdC1wcml2YXRlLWxlZ2FjeS1nZXQtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIC8vIFdyYXAgdGhlIHN1Yi10aGVtZSBpbmNsdWRlcyBpbiB0aGUgZHVwbGljYXRlIHRoZW1lIHN0eWxlcyBtaXhpbi4gVGhpcyBlbnN1cmVzIHRoYXRcbiAgLy8gdGhlcmUgd29uJ3QgYmUgbXVsdGlwbGUgd2FybmluZ3MuIGUuZy4gaWYgYG1hdC1jb3JlLXRoZW1lYCByZXBvcnRzIGEgd2FybmluZywgdGhlblxuICAvLyB0aGUgaW1wb3J0ZWQgdGhlbWVzIChzdWNoIGFzIGBtYXQtcmlwcGxlLXRoZW1lYCkgc2hvdWxkIG5vdCByZXBvcnQgYWdhaW4uXG4gIEBpbmNsdWRlIG1hdC1wcml2YXRlLWNoZWNrLWR1cGxpY2F0ZS10aGVtZS1zdHlsZXMoJHRoZW1lLCAnbWF0LWNvcmUnKSB7XG4gICAgQGluY2x1ZGUgbWF0LXJpcHBsZS10aGVtZSgkdGhlbWUpO1xuICAgIEBpbmNsdWRlIG1hdC1vcHRpb24tdGhlbWUoJHRoZW1lKTtcbiAgICBAaW5jbHVkZSBtYXQtb3B0Z3JvdXAtdGhlbWUoJHRoZW1lKTtcbiAgICBAaW5jbHVkZSBtYXQtcHNldWRvLWNoZWNrYm94LXRoZW1lKCR0aGVtZSk7XG5cbiAgICAkY29sb3I6IG1hdC1nZXQtY29sb3ItY29uZmlnKCR0aGVtZSk7XG4gICAgQGlmICRjb2xvciAhPSBudWxsIHtcbiAgICAgIEBpbmNsdWRlIG1hdC1jb3JlLWNvbG9yKCRjb2xvcik7XG4gICAgfVxuICB9XG59XG5cbi8vIE1peGluIHRoYXQgcmVuZGVycyBhbGwgb2YgdGhlIGNvcmUgTURDIHN0eWxlcy4gUHJpdmF0ZSBtaXhpbiBpbmNsdWRlZCB3aXRoIGBtYXQtY29yZWAuXG5AbWl4aW4gX21hdC1tZGMtY29yZSgpIHtcbiAgQGluY2x1ZGUgX21hdC1tZGMtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtcG9zaXRpb25pbmcoKTtcbn1cblxuLy8gTWl4aW4gdGhhdCBlbnN1cmVzIGZvY3VzIGluZGljYXRvciBob3N0IGVsZW1lbnRzIGFyZSBwb3NpdGlvbmVkIHNvIHRoYXQgdGhlIGZvY3VzIGluZGljYXRvclxuLy8gcHNldWRvIGVsZW1lbnQgd2l0aGluIGlzIHBvc2l0aW9uZWQgcmVsYXRpdmUgdG8gdGhlIGhvc3QuIFByaXZhdGUgbWl4aW4gaW5jbHVkZWQgd2l0aGluXG4vLyBgX21hdC1tZGMtY29yZWAuXG5AbWl4aW4gX21hdC1tZGMtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtcG9zaXRpb25pbmcoKSB7XG4gIC5tYXQtbWRjLWZvY3VzLWluZGljYXRvciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG59XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbi8vIENyZWF0ZSBhIHRoZW1lLlxuQG1peGluIGFuZ3VsYXItbWF0ZXJpYWwtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZykge1xuICAkZGVkdXBlLWtleTogJ2FuZ3VsYXItbWF0ZXJpYWwtdGhlbWUnO1xuICBAaW5jbHVkZSBtYXQtcHJpdmF0ZS1jaGVjay1kdXBsaWNhdGUtdGhlbWUtc3R5bGVzKCR0aGVtZS1vci1jb2xvci1jb25maWcsICRkZWR1cGUta2V5KSB7XG4gICAgQGluY2x1ZGUgbWF0LWNvcmUtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWF1dG9jb21wbGV0ZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtYmFkZ2UtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWJvdHRvbS1zaGVldC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtYnV0dG9uLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1idXR0b24tdG9nZ2xlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1jYXJkLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1jaGVja2JveC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtY2hpcHMtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXRhYmxlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1kYXRlcGlja2VyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1kaWFsb2ctdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWRpdmlkZXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LWV4cGFuc2lvbi1wYW5lbC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtZm9ybS1maWVsZC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtZ3JpZC1saXN0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1pY29uLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1pbnB1dC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtbGlzdC10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtbWVudS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtcGFnaW5hdG9yLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1wcm9ncmVzcy1iYXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXByb2dyZXNzLXNwaW5uZXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXJhZGlvLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1zZWxlY3QtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXNpZGVuYXYtdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gICAgQGluY2x1ZGUgbWF0LXNsaWRlLXRvZ2dsZS10aGVtZSgkdGhlbWUtb3ItY29sb3ItY29uZmlnKTtcbiAgICBAaW5jbHVkZSBtYXQtc2xpZGVyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1zdGVwcGVyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1zb3J0LXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC10YWJzLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC10b29sYmFyLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC10b29sdGlwLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC10cmVlLXRoZW1lKCR0aGVtZS1vci1jb2xvci1jb25maWcpO1xuICAgIEBpbmNsdWRlIG1hdC1zbmFjay1iYXItdGhlbWUoJHRoZW1lLW9yLWNvbG9yLWNvbmZpZyk7XG4gIH1cbn1cblxuXG5cbi8vIEluY2x1ZGVzIGFsbCBvZiB0aGUgY29sb3Igc3R5bGVzLlxuQG1peGluIGFuZ3VsYXItbWF0ZXJpYWwtY29sb3IoJGNvbmZpZy1vci10aGVtZSkge1xuICAvLyBJbiBjYXNlIGEgdGhlbWUgb2JqZWN0IGhhcyBiZWVuIHBhc3NlZCBpbnN0ZWFkIG9mIGEgY29uZmlndXJhdGlvbiBmb3JcbiAgLy8gdGhlIGNvbG9yIHN5c3RlbSwgZXh0cmFjdCB0aGUgY29sb3IgY29uZmlnIGZyb20gdGhlIHRoZW1lIG9iamVjdC5cbiAgJGNvbmZpZzogaWYobWF0LXByaXZhdGUtaXMtdGhlbWUtb2JqZWN0KCRjb25maWctb3ItdGhlbWUpLFxuICAgICAgbWF0LWdldC1jb2xvci1jb25maWcoJGNvbmZpZy1vci10aGVtZSksICRjb25maWctb3ItdGhlbWUpO1xuXG4gIEBpZiAkY29uZmlnID09IG51bGwge1xuICAgIEBlcnJvciAnTm8gY29sb3IgY29uZmlndXJhdGlvbiBzcGVjaWZpZWQuJztcbiAgfVxuXG4gIEBpbmNsdWRlIGFuZ3VsYXItbWF0ZXJpYWwtdGhlbWUoKFxuICAgIGNvbG9yOiAkY29uZmlnLFxuICAgIHR5cG9ncmFwaHk6IG51bGwsXG4gICAgZGVuc2l0eTogbnVsbCxcbiAgKSk7XG59XG5cblxuXG5cblxuXG5cblxuXG5cbi8vIEluY2x1ZGVzIGFsbCBvZiB0aGUgZGVuc2l0eSBzdHlsZXMuXG5AbWl4aW4gYW5ndWxhci1tYXRlcmlhbC1kZW5zaXR5KCRjb25maWctb3ItdGhlbWUpIHtcbiAgLy8gSW4gY2FzZSBhIHRoZW1lIG9iamVjdCBoYXMgYmVlbiBwYXNzZWQgaW5zdGVhZCBvZiBhIGNvbmZpZ3VyYXRpb24gZm9yXG4gIC8vIHRoZSBkZW5zaXR5IHN5c3RlbSwgZXh0cmFjdCB0aGUgZGVuc2l0eSBjb25maWcgZnJvbSB0aGUgdGhlbWUgb2JqZWN0LlxuICAkY29uZmlnOiBpZihtYXQtcHJpdmF0ZS1pcy10aGVtZS1vYmplY3QoJGNvbmZpZy1vci10aGVtZSksXG4gICAgICBtYXQtZ2V0LWRlbnNpdHktY29uZmlnKCRjb25maWctb3ItdGhlbWUpLCAkY29uZmlnLW9yLXRoZW1lKTtcblxuICBAaWYgJGNvbmZpZyA9PSBudWxsIHtcbiAgICBAZXJyb3IgJ05vIGRlbnNpdHkgY29uZmlndXJhdGlvbiBzcGVjaWZpZWQuJztcbiAgfVxuXG4gIC8vIFRPRE86IENPTVAtMzA5OiBEbyBub3QgdXNlIGluZGl2aWR1YWwgbWl4aW5zLiBJbnN0ZWFkLCB1c2UgdGhlIGFsbC10aGVtZSBtaXhpbiBhbmQgb25seVxuICAvLyBzcGVjaWZ5IGEgYGRlbnNpdHlgIGNvbmZpZyB3aGlsZSBzZXR0aW5nIGBjb2xvcmAgYW5kIGB0eXBvZ3JhcGh5YCB0byBgbnVsbGAuIFRoaXMgaXMgY3VycmVudGx5XG4gIC8vIG5vdCBwb3NzaWJsZSBhcyBpdCB3b3VsZCBpbnRyb2R1Y2UgYSBjaXJjdWxhciBkZXBlbmRlbmN5IGZvciBkZW5zaXR5IGJlY2F1c2UgdGhlIGBtYXQtY29yZWBcbiAgLy8gbWl4aW4gdGhhdCBpcyB0cmFuc2l0aXZlbHkgbG9hZGVkIGJ5IHRoZSBgYWxsLXRoZW1lYCBmaWxlLCBpbXBvcnRzIGBhbGwtZGVuc2l0eWAgd2hpY2hcbiAgLy8gd291bGQgdGhlbiBsb2FkIGBhbGwtdGhlbWVgIGFnYWluLiBUaGlzIHVsdGltYXRlbHkgcmVzdWx0cyBhIGNpcmN1bGFyIGRlcGVuZGVuY3kuXG5cbiAgQGluY2x1ZGUgbWF0LWV4cGFuc2lvbi1wYW5lbC1kZW5zaXR5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtc3RlcHBlci1kZW5zaXR5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdG9vbGJhci1kZW5zaXR5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtdHJlZS1kZW5zaXR5KCRjb25maWcpO1xuICBAaW5jbHVkZSBtYXQtcGFnaW5hdG9yLWRlbnNpdHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1mb3JtLWZpZWxkLWRlbnNpdHkoJGNvbmZpZyk7XG4gIEBpbmNsdWRlIG1hdC1idXR0b24tdG9nZ2xlLWRlbnNpdHkoJGNvbmZpZyk7XG59XG5cblxuXG4iXX0= */
