/* purgecss start ignore */

p {
  line-height: 1.8;
}

.icon {
  line-height: inherit !important;
}

.row {
  margin-left: -1rem;
  margin-right: -1rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.row > .col {
  padding-left: 1rem;
  padding-right: 1rem;
}

.mid {
  position: absolute;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}

.hover {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
}

abbr[title] {
  text-decoration: none;
}

.bg {
  position: absolute;
  right: 0;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}

@media (max-width: 1023.98px) {
  .bg.responsive {
    position: relative;
  }

  .bg.responsive > img {
    width: 100%;
    height: auto;
    -o-object-fit: initial;
       object-fit: initial;
  }
}

.bg > img {
  position: relative;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.bg picture {
  display: block;
  position: absolute;
  right: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.bg picture > img {
  position: relative;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
  -webkit-box-shadow: 0 0 0 1000px white inset !important;
}

.qtranxs-available-languages-message {
  display: none;
}

.box {
  width: 100%;
  background-color: var(--color-white);
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
}

@media (max-width: 1023.98px) {
  .box {
    background-color: var(--color-white);
    padding-left: 1rem;
    padding-right: 1rem;
    padding-top: 1rem;
    padding-bottom: 1rem;
  }
}

.box > h3 {
  font-size: 1.5rem;
  line-height: 2rem;
  font-weight: 700;
}

.btn, .button {
  position: relative;
  border-radius: 0.375rem;
  padding-left: 0.25rem;
  padding-right: 0.25rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-weight: 700;
  text-decoration: none;
}

.btn,
.button {
  text-decoration: none !important;
  white-space: nowrap;
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
}

.btn.loading,
  .button.loading {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.btn.loading::before,
    .button.loading::before {
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  content: '';
  height: 20px;
  width: 20px;
  font-weight: 900;
  margin-right: 5px;
  background-image: url("/app/themes/fudi/static/fonts/loading.svg");
}

.btn.btn-sm, .button.btn-sm {
  padding-left: 1.25rem !important;
  padding-right: 1.25rem !important;
  padding-top: 0.25rem !important;
  padding-bottom: 0.25rem !important;
  font-size: 0.875rem !important;
  line-height: 1.25rem !important;
}

.btn.btn-xs, .button.btn-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}

.btn.btn-xs,
  .button.btn-xs {
  padding: 3px 6px !important;
}

.btn.btn-block, .button.btn-block {
  position: relative;
  display: block;
  width: 100%;
  border-radius: 0.125rem;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  text-align: center;
  font-weight: 700;
}

.btn.btn-outline, .button.btn-outline {
  display: inline-block;
  border-width: 1px;
  border-color: var(--color-lighter);
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  text-align: center;
  font-weight: 700;
}

.btn.btn-outline:hover, .btn.btn-outline.active, .button.btn-outline:hover, .button.btn-outline.active {
  background-color: var(--color-lighter);
  color: var(--color-white);
}

.btn.btn-primary, .button.btn-primary {
  display: inline-block;
  background-color: var(--color-primary);
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  text-align: center;
  font-weight: 700;
  color: var(--color-white);
}

.btn.btn-primary:hover, .button.btn-primary:hover {
  background-color: var(--color-dark);
}

.btn.btn-primary-outline, .button.btn-primary-outline {
  display: inline-block;
  border-width: 2px;
  border-color: var(--color-primary);
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  text-align: center;
  font-weight: 700;
  color: var(--color-primary);
}

.btn.btn-primary-outline:hover, .button.btn-primary-outline:hover {
  background-color: var(--color-primary);
  color: var(--color-white);
}

.btn.btn-icon, .btn.btn-icon.btn-outline, .button.btn-icon, .button.btn-icon.btn-outline {
  display: inline-block;
  height: 2rem;
  width: 2rem;
  border-radius: 9999px;
  padding-left: 0px;
  padding-right: 0px;
  padding-top: 0px;
  padding-bottom: 0px;
  text-align: center;
}

.btn.btn-icon i, .btn.btn-icon.btn-outline i,
    .button.btn-icon i,
    .button.btn-icon.btn-outline i {
  line-height: 1.8rem;
}

.btn.btn-icon i, .btn.btn-icon.btn-outline i, .button.btn-icon i, .button.btn-icon.btn-outline i {
  font-size: 1rem;
  line-height: 1.5rem;
}

.btn.btn-icon:hover, .btn.btn-icon.active, .btn.btn-icon.btn-outline:hover, .btn.btn-icon.btn-outline.active, .button.btn-icon:hover, .button.btn-icon.active, .button.btn-icon.btn-outline:hover, .button.btn-icon.btn-outline.active {
  background-color: var(--color-primary);
  color: var(--color-white);
}

.btn.btn-block, .button.btn-block {
  position: relative;
  display: block;
  width: 100%;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  text-align: center;
  font-weight: 700;
}

.btn.btn-lighter, .button.btn-lighter {
  background-color: var(--color-lighter);
  color: var(--color-white);
}

.btn.btn-lighter:hover, .button.btn-lighter:hover {
  background-color: var(--color-dark);
}

.btn.btn-dark, .button.btn-dark {
  background-color: var(--color-dark);
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  color: var(--color-white);
}

.btn.btn-dark:hover, .button.btn-dark:hover {
  background-color: var(--color-black);
}

.container-sm {
  position: relative;
  max-width: 768px;
  margin-left: auto;
  margin-right: auto;
}

.container-xs {
  position: relative;
  max-width: 396px;
  margin-left: auto;
  margin-right: auto;
}

.container-fluid {
  position: relative;
  max-width: 100% !important;
}

.container {
  position: relative;
}

.layout-top, .app-header.active, .necker.active,
.app-necker.active, .app-footer.active, .bodier.active,
.app-bodier.active {
  z-index: 99;
}

.app-header {
  z-index: 2;
}

.necker,
.app-necker {
  z-index: 1;
}

.app-footer {
  z-index: 1;
}

.bodier,
.app-bodier {
  z-index: 1;
  width: 100%;
  overflow-x: hidden;
}

@media (max-width: 1023.98px) {
  .single-product .app-footer div.copyright,
  .woocommerce-account .app-footer div.copyright {
    display: none !important;
  }
}

.wysiwyg iframe,
#tinymce iframe {
  max-width: 100%;
  max-height: 100%;
}

.wysiwyg > a,
#tinymce > a {
  display: block;
}

.wysiwyg img,
#tinymce img {
  display: inline-block;
}

.wysiwyg figure,
#tinymce figure {
  display: block;
  position: relative;
  max-width: 100%;
  width: 100%;
  margin-bottom: 4rem;
}

.wysiwyg figure figcaption, #tinymce figure figcaption {
  padding: 0.25rem;
  font-size: 0.75rem;
  line-height: 1rem;
}

@media (max-width: 1023.98px) {
  .wysiwyg.md\:wysiwyg > h2, .wysiwyg.md\:wysiwyg > h3, .wysiwyg.md\:wysiwyg > h4, .wysiwyg.md\:wysiwyg > h5, .wysiwyg.md\:wysiwyg > h6, .wysiwyg.md\:wysiwyg > p, .wysiwyg.md\:wysiwyg > dl, .wysiwyg.md\:wysiwyg > ul, .wysiwyg.md\:wysiwyg > pre, .wysiwyg.md\:wysiwyg > ol, .wysiwyg.md\:wysiwyg > a, #tinymce.md\:wysiwyg > h2, #tinymce.md\:wysiwyg > h3, #tinymce.md\:wysiwyg > h4, #tinymce.md\:wysiwyg > h5, #tinymce.md\:wysiwyg > h6, #tinymce.md\:wysiwyg > p, #tinymce.md\:wysiwyg > dl, #tinymce.md\:wysiwyg > ul, #tinymce.md\:wysiwyg > pre, #tinymce.md\:wysiwyg > ol, #tinymce.md\:wysiwyg > a {
    margin-left: 1rem;
    margin-right: 1rem;
  }
}

@media (max-width: 1199.98px) {
  .wysiwyg.lg\:wysiwyg > h2, .wysiwyg.lg\:wysiwyg > h3, .wysiwyg.lg\:wysiwyg > h4, .wysiwyg.lg\:wysiwyg > h5, .wysiwyg.lg\:wysiwyg > h6, .wysiwyg.lg\:wysiwyg > p, .wysiwyg.lg\:wysiwyg > dl, .wysiwyg.lg\:wysiwyg > ul, .wysiwyg.lg\:wysiwyg > pre, .wysiwyg.lg\:wysiwyg > ol, .wysiwyg.lg\:wysiwyg > a, #tinymce.lg\:wysiwyg > h2, #tinymce.lg\:wysiwyg > h3, #tinymce.lg\:wysiwyg > h4, #tinymce.lg\:wysiwyg > h5, #tinymce.lg\:wysiwyg > h6, #tinymce.lg\:wysiwyg > p, #tinymce.lg\:wysiwyg > dl, #tinymce.lg\:wysiwyg > ul, #tinymce.lg\:wysiwyg > pre, #tinymce.lg\:wysiwyg > ol, #tinymce.lg\:wysiwyg > a {
    margin-left: 1rem;
    margin-right: 1rem;
  }
}

.wysiwyg.x\:wysiwyg > h2, .wysiwyg.x\:wysiwyg > h3, .wysiwyg.x\:wysiwyg > h4, .wysiwyg.x\:wysiwyg > h5, .wysiwyg.x\:wysiwyg > h6, .wysiwyg.x\:wysiwyg > p, .wysiwyg.x\:wysiwyg > dl, .wysiwyg.x\:wysiwyg > ul, .wysiwyg.x\:wysiwyg > pre, .wysiwyg.x\:wysiwyg > ol, .wysiwyg.x\:wysiwyg > a, #tinymce.x\:wysiwyg > h2, #tinymce.x\:wysiwyg > h3, #tinymce.x\:wysiwyg > h4, #tinymce.x\:wysiwyg > h5, #tinymce.x\:wysiwyg > h6, #tinymce.x\:wysiwyg > p, #tinymce.x\:wysiwyg > dl, #tinymce.x\:wysiwyg > ul, #tinymce.x\:wysiwyg > pre, #tinymce.x\:wysiwyg > ol, #tinymce.x\:wysiwyg > a {
  margin-left: 1rem;
  margin-right: 1rem;
}

.wysiwyg h2, .wysiwyg h4, .wysiwyg h3, #tinymce h2, #tinymce h4, #tinymce h3 {
  margin-top: 0.5rem;
  margin-bottom: 1rem;
  font-family: Lato, DINPro bold, SF Pro TC, SF Pro Display, SF Pro Icons, PingFang TC, Helvetica Neue, Helvetica, Microsoft YaHei, 微軟正黑體, Microsoft\ JhengHei, Arial, 新細明體, PMingLiU, 細明體, MingLiU, 標楷體, DFKai-sb, serif;
  font-size: 1.125rem;
  line-height: 1.75rem;
  font-weight: 900;
}

.wysiwyg h2 ~ h2, .wysiwyg h2 ~ h3, .wysiwyg h2 ~ h4, .wysiwyg h4 ~ h2, .wysiwyg h4 ~ h3, .wysiwyg h4 ~ h4, .wysiwyg h3 ~ h2, .wysiwyg h3 ~ h3, .wysiwyg h3 ~ h4, #tinymce h2 ~ h2, #tinymce h2 ~ h3, #tinymce h2 ~ h4, #tinymce h4 ~ h2, #tinymce h4 ~ h3, #tinymce h4 ~ h4, #tinymce h3 ~ h2, #tinymce h3 ~ h3, #tinymce h3 ~ h4 {
  margin-top: 3rem;
}

.wysiwyg p,
#tinymce p {
  line-height: 2;
}

.wysiwyg p, #tinymce p {
  margin-bottom: 1rem;
  color: var(--color-light);
}

.wysiwyg p a,
.wysiwyg li a,
#tinymce p a,
#tinymce li a {
  font-weight: bold;
  text-decoration: underline;
}

.wysiwyg ul,
#tinymce ul {
  margin: initial;
  padding-left: 0px;
}

.wysiwyg ul li, #tinymce ul li {
  margin-bottom: 1rem;
  color: var(--color-light);
}

.wysiwyg ol,
#tinymce ol {
  margin: initial;
  margin-top: 1rem;
  margin-bottom: 2rem;
  padding-left: 22px;
  list-style: decimal;
}

.wysiwyg ol li, #tinymce ol li {
  margin-bottom: 1rem;
  color: var(--color-light);
}

.wysiwyg dl,
#tinymce dl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  /* set the container width */
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.wysiwyg dl dd,
  #tinymce dl dd {
  text-align: left;
}

.wysiwyg dl dd, #tinymce dl dd {
  margin-bottom: 1rem;
  color: var(--color-light);
}

.wysiwyg .aligncenter,
.wysiwyg .alignleft,
.wysiwyg .alignright,
#tinymce .aligncenter,
#tinymce .alignleft,
#tinymce .alignright {
  display: block;
  padding: 0;
}

.wysiwyg .aligncenter,
#tinymce .aligncenter {
  float: none;
  margin: 0.5em auto 1em;
}

.wysiwyg .alignright,
#tinymce .alignright {
  float: right;
  margin: 0.5em 0 1em 1em;
}

.wysiwyg .alignleft,
#tinymce .alignleft {
  float: left;
  margin: 0.5em 1em 1em 0;
}

.wysiwyg .wp-caption,
#tinymce .wp-caption {
  padding: 5px 0;
}

.wysiwyg .wp-caption img,
#tinymce .wp-caption img {
  display: inline;
}

.wysiwyg .wp-caption p.wp-caption-text,
#tinymce .wp-caption p.wp-caption-text {
  margin: 5px 0 0;
  padding: 0;
  text-align: center;
  font-size: 75%;
  font-weight: 100;
  font-style: italic;
  color: #ddd;
}

.wysiwyg.bigger h2, .wysiwyg.bigger h4, .wysiwyg.bigger h3, #tinymce.bigger h2, #tinymce.bigger h4, #tinymce.bigger h3 {
  margin-top: 0.5rem;
  margin-bottom: 1rem;
  font-family: Lato, DINPro bold, SF Pro TC, SF Pro Display, SF Pro Icons, PingFang TC, Helvetica Neue, Helvetica, Microsoft YaHei, 微軟正黑體, Microsoft\ JhengHei, Arial, 新細明體, PMingLiU, 細明體, MingLiU, 標楷體, DFKai-sb, serif;
  font-size: 1.5rem;
  line-height: 2rem;
  font-weight: 900;
}

.wysiwyg.bigger h2 ~ h2, .wysiwyg.bigger h2 ~ h3, .wysiwyg.bigger h2 ~ h4, .wysiwyg.bigger h4 ~ h2, .wysiwyg.bigger h4 ~ h3, .wysiwyg.bigger h4 ~ h4, .wysiwyg.bigger h3 ~ h2, .wysiwyg.bigger h3 ~ h3, .wysiwyg.bigger h3 ~ h4, #tinymce.bigger h2 ~ h2, #tinymce.bigger h2 ~ h3, #tinymce.bigger h2 ~ h4, #tinymce.bigger h4 ~ h2, #tinymce.bigger h4 ~ h3, #tinymce.bigger h4 ~ h4, #tinymce.bigger h3 ~ h2, #tinymce.bigger h3 ~ h3, #tinymce.bigger h3 ~ h4 {
  margin-top: 5rem;
}

.wysiwyg.bigger p, #tinymce.bigger p {
  font-size: 1.25rem;
  line-height: 1.75rem;
}

.wysiwyg.bigger p,
#tinymce.bigger p {
  line-height: 2;
}

blockquote {
  position: relative;
  margin: 40px auto;
  padding: 60px 4% 0;
  max-width: 1200px;
  font-size: 1.4em;
  font-weight: 400;
  text-align: center;
  color: #000;
  line-height: 1.5em;
}

/* purgecss end ignore */

/* purgecss start ignore */

.steps {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.steps:before {
  position: absolute;
  width: 100%;
  border-bottom-width: 1px;
  border-style: dashed;
  border-color: var(--color-light);
  content: "";
  top: calc(50% - 15px);
  left: 0;
}

.steps .step {
  position: relative;
  text-align: center;
}

.steps .step .item-icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 6rem;
  width: 6rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  border-radius: 9999px;
  border-width: 1px;
  border-color: var(--color-dark);
  background-color: var(--color-white);
}

.steps .step .title {
  margin-top: 1rem;
}

@media (max-width: 1023.98px) {
  .steps {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }

  .steps:before {
    position: absolute;
    margin-left: 3rem;
    height: 100%;
    width: 0px;
    border-left-width: 1px;
    top: 0;
    left: 20%;
  }

  .steps .step {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    width: 60%;
  }

  .steps .step ~ .step {
    margin-top: 1rem;
  }

  .steps .step .title {
    margin-left: 1rem;
  }
}

/* purgecss end ignore */

/* purgecss start ignore */

.wrap {
  padding-top: 5rem;
  padding-bottom: 5rem;
}

.wrap .wrap-header .titles {
  margin-bottom: 5rem;
}

.wrap .wrap-header .date {
  text-align: center;
  font-size: 1.25rem;
  line-height: 1.75rem;
  color: var(--color-white);
}

.wrap .wrap-action {
  margin-top: 5rem;
}

@media (max-width: 1023.98px) {
  .wrap {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }

  .wrap .wrap-header .titles {
    margin-bottom: 2.5rem;
    font-size: 1.8rem;
  }

  .wrap .wrap-header .date {
    font-size: 1rem;
    line-height: 1.5rem;
  }

  .wrap .wrap-action {
    margin-top: 2.5rem;
  }
}

/* purgecss end ignore */

/* purgecss start ignore */

.banner {
  height: 400px;
}

/* purgecss end ignore */

/* purgecss start ignore */

.list .item {
  display: block;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.list .item .date {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100px;
          flex: 0 0 100px;
}

@media (min-width: 1024px) {
  .list .actions .btn ~ .btn {
    margin-left: 0.25rem;
  }
}

@media (max-width: 1023.98px) {
  .list .actions .btn ~ .btn {
    margin-top: 0.25rem;
  }
}

/* purgecss end ignore */

/* purgecss start ignore */

.carou {
  min-height: 400px;
}

.carou.loading {
  opacity: 0;
}

.carou.dark .owl-dots > button.owl-dot > span, .carou.dark .owl-dots > button.owl-dot::after {
  background-color: var(--color-white);
}

.carou.light .owl-dots > button.owl-dot > span, .carou.light .owl-dots > button.owl-dot::after {
  background-color: var(--color-dark);
}

.carou.\--basic .owl-nav {
  position: absolute;
  bottom: 0;
  left: 0;
  margin-bottom: 2.5rem;
  margin-left: 2.5rem;
}

.carou.\--basic .owl-dots {
  position: absolute;
  bottom: 0;
  left: 0;
  margin-bottom: 0.5rem;
  margin-bottom: 2.5rem;
  margin-left: 2.5rem;
}

.carou.\--fixed {
  height: 600px;
}

.carou.\--fixed .owl-stage-outer,
    .carou.\--fixed .owl-stage,
    .carou.\--fixed .owl-item,
    .carou.\--fixed .item {
  height: 100%;
}

.carou.\--full {
  height: 100%;
}

.carou.\--full .owl-stage-outer,
    .carou.\--full .owl-stage,
    .carou.\--full .owl-item,
    .carou.\--full .item {
  height: 100%;
}

.carou.\--screen {
  height: 100vh;
}

.carou.\--screen .owl-stage-outer,
    .carou.\--screen .owl-stage,
    .carou.\--screen .owl-item,
    .carou.\--screen .item {
  height: 100%;
}

.carou.\--auto {
  min-height: 100px;
}

.carou.\--auto .owl-stage-outer .bg,
    .carou.\--auto .item .bg {
  position: relative;
}

.carou.\--auto .owl-stage-outer .bg picture,
      .carou.\--auto .item .bg picture {
  position: relative;
}

.carou.\--auto .owl-stage-outer .bg img,
      .carou.\--auto .item .bg img {
  -o-object-fit: contain;
     object-fit: contain;
}

.carou.\--slide-left .item .title,
  .carou.\--slide-left .item .subtitle,
  .carou.\--slide-left .item .link {
  opacity: 1;
}

.carou.\--slide-left .owl-item.active .item .title {
  -webkit-animation: slideleft 1s normal;
          animation: slideleft 1s normal;
}

.carou.\--slide-left .owl-item.active .item .subtitle {
  -webkit-animation: slideleft 2s normal;
          animation: slideleft 2s normal;
}

.carou.\--slide-left .owl-item.active .item .btn-link {
  -webkit-animation: slideleft 1.4s normal;
          animation: slideleft 1.4s normal;
}

@-webkit-keyframes slideleft {
  from {
    opacity: 0;
    -webkit-transform: translateX(50%);
            transform: translateX(50%);
  }
}

@keyframes slideleft {
  from {
    opacity: 0;
    -webkit-transform: translateX(50%);
            transform: translateX(50%);
  }
}

/* purgecss end ignore */

/*purgecss start ignore
 */

/**
 * Owl Carousel v2.3.4
 * Copyright 2013-2018 David Deutsch
 * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
 */

/*
 *  Owl Carousel - Core
 */

.owl-carousel {
  display: none;
  width: 100%;
  -webkit-tap-highlight-color: transparent;
  /* position relative and z-index fix webkit rendering fonts issue */
  position: relative;
  z-index: 1;
}

.owl-carousel .owl-stage {
  position: relative;
  -ms-touch-action: pan-Y;
  touch-action: manipulation;
  -moz-backface-visibility: hidden;
  /* fix firefox animation glitch */
}

.owl-carousel .owl-stage:after {
  content: ".";
  display: block;
  clear: both;
  visibility: hidden;
  line-height: 0;
  height: 0;
}

.owl-carousel .owl-stage-outer {
  position: relative;
  overflow: hidden;
  /* fix for flashing background */
  -webkit-transform: translate3d(0px, 0px, 0px);
}

.owl-carousel .owl-wrapper,
  .owl-carousel .owl-item {
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
}

.owl-carousel .owl-item {
  position: relative;
  min-height: 1px;
  float: left;
  -webkit-backface-visibility: hidden;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
}

.owl-carousel .owl-item img {
  display: block;
  width: 100%;
}

.owl-carousel .owl-nav.disabled,
  .owl-carousel .owl-dots.disabled {
  display: none;
}

.owl-carousel .owl-nav .owl-prev,
  .owl-carousel .owl-nav .owl-next,
  .owl-carousel .owl-dot {
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.owl-carousel .owl-nav button.owl-prev,
  .owl-carousel .owl-nav button.owl-next,
  .owl-carousel button.owl-dot {
  background: none;
  color: inherit;
  border: none;
  padding: 0 !important;
  font: inherit;
}

.owl-carousel.owl-loaded {
  display: block;
}

.owl-carousel.owl-loading {
  opacity: 0;
  display: block;
}

.owl-carousel.owl-hidden {
  opacity: 0;
}

.owl-carousel.owl-refresh .owl-item {
  visibility: hidden;
}

.owl-carousel.owl-drag .owl-item {
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.owl-carousel.owl-grab {
  cursor: move;
  cursor: -webkit-grab;
  cursor: grab;
}

.owl-carousel.owl-rtl {
  direction: rtl;
}

.owl-carousel.owl-rtl .owl-item {
  float: right;
}

/* No Js */

.no-js .owl-carousel {
  display: block;
}

/*
 *  Owl Carousel - Animate Plugin
 */

.owl-carousel .animated {
  -webkit-animation-duration: 1000ms;
          animation-duration: 1000ms;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
}

.owl-carousel .owl-animated-in {
  z-index: 0;
}

.owl-carousel .owl-animated-out {
  z-index: 1;
}

.owl-carousel .fadeOut {
  -webkit-animation-name: fadeOut;
          animation-name: fadeOut;
}

@-webkit-keyframes fadeOut {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

@keyframes fadeOut {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

/*
 * 	Owl Carousel - Auto Height Plugin
 */

.owl-height {
  -webkit-transition: height 500ms ease-in-out;
  transition: height 500ms ease-in-out;
}

/*
 * 	Owl Carousel - Lazy Load Plugin
 */

.owl-carousel .owl-item {
  /**
			This is introduced due to a bug in IE11 where lazy loading combined with autoheight plugin causes a wrong
			calculation of the height of the owl-item that breaks page layouts
		 */
}

.owl-carousel .owl-item .owl-lazy {
  opacity: 0;
  -webkit-transition: opacity 400ms ease;
  transition: opacity 400ms ease;
}

.owl-carousel .owl-item .owl-lazy[src^=""], .owl-carousel .owl-item .owl-lazy:not([src]) {
  max-height: 0;
}

.owl-carousel .owl-item img.owl-lazy {
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
}

/*
 * 	Owl Carousel - Video Plugin
 */

.owl-carousel .owl-video-wrapper {
  position: relative;
  height: 100%;
  background: #000;
}

.owl-carousel .owl-video-play-icon {
  position: absolute;
  height: 80px;
  width: 80px;
  left: 50%;
  top: 50%;
  margin-left: -40px;
  margin-top: -40px;
  background: url(C:\xampp\htdocs\bedrock\public_html\app\themes\fudi\static/imgs/owl.video.play.png) no-repeat;
  cursor: pointer;
  z-index: 1;
  -webkit-backface-visibility: hidden;
  -webkit-transition: -webkit-transform 100ms ease;
  transition: -webkit-transform 100ms ease;
  transition: transform 100ms ease;
  transition: transform 100ms ease, -webkit-transform 100ms ease;
}

.owl-carousel .owl-video-play-icon:hover {
  -webkit-transform: scale(1.3, 1.3);
          transform: scale(1.3, 1.3);
}

.owl-carousel .owl-video-playing .owl-video-tn,
.owl-carousel .owl-video-playing .owl-video-play-icon {
  display: none;
}

.owl-carousel .owl-video-tn {
  opacity: 0;
  height: 100%;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  -webkit-transition: opacity 400ms ease;
  transition: opacity 400ms ease;
}

.owl-carousel .owl-video-frame {
  position: relative;
  z-index: 1;
  height: 100%;
  width: 100%;
}

/*purgecss end ignore
 */

/*purgecss start ignore
 */

/**
 * Owl Carousel v2.3.4
 * Copyright 2013-2018 David Deutsch
 * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
 */

/*
 * 	Default theme - Owl Carousel CSS File
 */

.owl-theme .owl-nav {
  margin-top: 10px;
  text-align: center;
  -webkit-tap-highlight-color: transparent;
}

.owl-theme .owl-nav [class*='owl-'] {
  color: #FFF;
  font-size: 14px;
  margin: 5px;
  padding: 4px 7px;
  background: #D6D6D6;
  display: inline-block;
  cursor: pointer;
  border-radius: 3px;
}

.owl-theme .owl-nav [class*='owl-']:hover {
  background: #869791;
  color: #FFF;
  text-decoration: none;
}

.owl-theme .owl-nav .disabled {
  opacity: 0.5;
  cursor: default;
}

.owl-theme .owl-nav.disabled + .owl-dots {
  margin-top: 10px;
}

.owl-theme .owl-dots {
  text-align: center;
  -webkit-tap-highlight-color: transparent;
}

.owl-theme .owl-dots .owl-dot {
  display: inline-block;
  zoom: 1;
  display: inline;
}

.owl-theme .owl-dots .owl-dot span {
  width: 10px;
  height: 10px;
  margin: 5px 7px;
  background: #D6D6D6;
  display: block;
  -webkit-backface-visibility: visible;
  -webkit-transition: opacity 200ms ease;
  transition: opacity 200ms ease;
  border-radius: 30px;
}

.owl-theme .owl-dots .owl-dot.active span, .owl-theme .owl-dots .owl-dot:hover span {
  background: #869791;
}

/*purgecss end ignore
 */

/* purgecss start ignore */

.app-bar .menu .item ~ .item:before {
  background-color: var(--color-light);
}

/* purgecss end ignore */

/* purgecss start ignore */

.share a {
  margin-left: 0.5rem;
  margin-right: 0.5rem;
}

/* purgecss end ignore */

/* purgecss start ignore */

.ribbon {
  position: absolute;
  overflow: hidden;
}

.ribbon.flip {
  -webkit-transform: scale(-1, 1);
          transform: scale(-1, 1);
}

.ribbon .mask {
  position: relative;
  width: 100%;
  height: 100%;
  left: 0;
  will-change: width,transform;
  overflow: hidden;
}

.ribbon .mask svg {
  will-change: transform;
}

/* purgecss end ignore */

/* purgecss start ignore */

/* Slider */

.slick-slider
{
  position: relative;
  display: block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  -khtml-user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list
{
  position: relative;
  display: block;
  overflow: hidden;
  margin: 0;
  padding: 0;
}

.slick-list:focus
{
  outline: none;
}

.slick-list.dragging
{
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list
{
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.slick-track
{
  position: relative;
  top: 0;
  left: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.slick-track:before,
.slick-track:after
{
  display: table;
  content: '';
}

.slick-track:after
{
  clear: both;
}

.slick-loading .slick-track
{
  visibility: hidden;
}

.slick-slide
{
  display: none;
  float: left;
  height: 100%;
  min-height: 1px;
}

[dir='rtl'] .slick-slide
{
  float: right;
}

.slick-slide img
{
  display: block;
}

.slick-slide.slick-loading img
{
  display: none;
}

.slick-slide.dragging img
{
  pointer-events: none;
}

.slick-initialized .slick-slide
{
  display: block;
}

.slick-loading .slick-slide
{
  visibility: hidden;
}

.slick-vertical .slick-slide
{
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}

/* purgecss end ignore */

/* purgecss start ignore */

@charset 'UTF-8';

/* Slider */

.slick-loading .slick-list
{
  background: #fff url(C:\xampp\htdocs\bedrock\public_html\app\themes\fudi\static/imgs/ajax-loader.gif) center center no-repeat;
}

/* Icons */

@font-face
{
  font-family: 'slick';

  font-weight: normal;

  font-style: normal;

  src: url(/app/themes/fudi/static/fonts/slick.eot);

  src: url(/app/themes/fudi/static/fonts/slick.eot?#iefix) format('embedded-opentype'), url(/app/themes/fudi/static/fonts/slick.woff) format('woff'), url(/app/themes/fudi/static/fonts/slick.ttf) format('truetype'), url(C:\xampp\htdocs\bedrock\public_html\app\themes\fudi\static/imgs/slick.svg#slick) format('svg');
}

/* Arrows */

.slick-prev,
.slick-next
{
  font-size: 0;
  line-height: 0;
  position: absolute;
  top: 50%;
  display: block;
  width: 20px;
  height: 20px;
  padding: 0;
  -webkit-transform: translate(0, -50%);
  transform: translate(0, -50%);
  cursor: pointer;
  color: transparent;
  border: none;
  outline: none;
  background: transparent;
}

.slick-prev:hover,
.slick-prev:focus,
.slick-next:hover,
.slick-next:focus
{
  color: transparent;
  outline: none;
  background: transparent;
}

.slick-prev:hover:before,
.slick-prev:focus:before,
.slick-next:hover:before,
.slick-next:focus:before
{
  opacity: 1;
}

.slick-prev.slick-disabled:before,
.slick-next.slick-disabled:before
{
  opacity: .25;
}

.slick-prev:before,
.slick-next:before
{
  font-family: 'slick';
  font-size: 20px;
  line-height: 1;
  opacity: .75;
  color: white;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.slick-prev
{
  left: -25px;
}

[dir='rtl'] .slick-prev
{
  right: -25px;
  left: auto;
}

.slick-prev:before
{
  content: '\2190';
}

[dir='rtl'] .slick-prev:before
{
  content: '\2192';
}

.slick-next
{
  right: -25px;
}

[dir='rtl'] .slick-next
{
  right: auto;
  left: -25px;
}

.slick-next:before
{
  content: '\2192';
}

[dir='rtl'] .slick-next:before
{
  content: '\2190';
}

/* Dots */

.slick-dotted.slick-slider
{
  margin-bottom: 30px;
}

.slick-dots
{
  position: absolute;
  bottom: -25px;
  display: block;
  width: 100%;
  padding: 0;
  margin: 0;
  list-style: none;
  text-align: center;
}

.slick-dots li
{
  position: relative;
  display: inline-block;
  width: 20px;
  height: 20px;
  margin: 0 5px;
  padding: 0;
  cursor: pointer;
}

.slick-dots li button
{
  font-size: 0;
  line-height: 0;
  display: block;
  width: 20px;
  height: 20px;
  padding: 5px;
  cursor: pointer;
  color: transparent;
  border: 0;
  outline: none;
  background: transparent;
}

.slick-dots li button:hover,
.slick-dots li button:focus
{
  outline: none;
}

.slick-dots li button:hover:before,
.slick-dots li button:focus:before
{
  opacity: 1;
}

.slick-dots li button:before
{
  font-family: 'slick';
  font-size: 6px;
  line-height: 20px;
  position: absolute;
  top: 0;
  left: 0;
  width: 20px;
  height: 20px;
  content: '\2022';
  text-align: center;
  opacity: .25;
  color: black;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.slick-dots li.slick-active button:before
{
  opacity: .75;
  color: black;
}

/* purgecss end ignore */

/* purgecss start ignore */

.loader {
  position: absolute;
  top: 0;
  left: 0;
  display: none;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.8);
  z-index: 1090;
  -webkit-transition: opacity 1s;
  transition: opacity 1s;
}

.loader.\--screen {
  position: fixed;
  height: 100vh;
}

.loader.active {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  opacity: 0.95;
}

.lds-default {
  position: relative;
  display: inline-block;
  width: 64px;
  height: 64px;
}

.lds-default div {
  position: absolute;
  width: 5px;
  height: 5px;
  background: #333;
  border-radius: 50%;
  -webkit-animation: lds-default 1.2s linear infinite;
          animation: lds-default 1.2s linear infinite;
}

.lds-default div:nth-child(1) {
  top: 29px;
  left: 53px;
  -webkit-animation-delay: 0s;
          animation-delay: 0s;
}

.lds-default div:nth-child(2) {
  top: 18px;
  left: 50px;
  -webkit-animation-delay: -0.1s;
          animation-delay: -0.1s;
}

.lds-default div:nth-child(3) {
  top: 9px;
  left: 41px;
  -webkit-animation-delay: -0.2s;
          animation-delay: -0.2s;
}

.lds-default div:nth-child(4) {
  top: 6px;
  left: 29px;
  -webkit-animation-delay: -0.3s;
          animation-delay: -0.3s;
}

.lds-default div:nth-child(5) {
  top: 9px;
  left: 18px;
  -webkit-animation-delay: -0.4s;
          animation-delay: -0.4s;
}

.lds-default div:nth-child(6) {
  top: 18px;
  left: 9px;
  -webkit-animation-delay: -0.5s;
          animation-delay: -0.5s;
}

.lds-default div:nth-child(7) {
  top: 29px;
  left: 6px;
  -webkit-animation-delay: -0.6s;
          animation-delay: -0.6s;
}

.lds-default div:nth-child(8) {
  top: 41px;
  left: 9px;
  -webkit-animation-delay: -0.7s;
          animation-delay: -0.7s;
}

.lds-default div:nth-child(9) {
  top: 50px;
  left: 18px;
  -webkit-animation-delay: -0.8s;
          animation-delay: -0.8s;
}

.lds-default div:nth-child(10) {
  top: 53px;
  left: 29px;
  -webkit-animation-delay: -0.9s;
          animation-delay: -0.9s;
}

.lds-default div:nth-child(11) {
  top: 50px;
  left: 41px;
  -webkit-animation-delay: -1s;
          animation-delay: -1s;
}

.lds-default div:nth-child(12) {
  top: 41px;
  left: 50px;
  -webkit-animation-delay: -1.1s;
          animation-delay: -1.1s;
}

@-webkit-keyframes lds-default {
  0%,
  20%,
  80%,
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }

  50% {
    -webkit-transform: scale(1.5);
            transform: scale(1.5);
  }
}

@keyframes lds-default {
  0%,
  20%,
  80%,
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }

  50% {
    -webkit-transform: scale(1.5);
            transform: scale(1.5);
  }
}

/* purgecss end ignore */

/* purgecss start ignore */

.overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 1029;
  display: none;
}

.overlay.active {
  display: block;
}

.drawer > a.close {
  display: none;
  position: fixed;
  z-index: 50;
  top: 1rem;
  right: 1rem;
}

@media (max-width: 767.98px) {
  .drawer.sm\:drawer {
    position: fixed !important;
    width: calc(100% - 80px);
    max-width: 100%;
    background: #fff;
    z-index: 1040;
    -webkit-transition: 0.4s -webkit-transform;
    transition: 0.4s -webkit-transform;
    transition: 0.4s transform;
    transition: 0.4s transform, 0.4s -webkit-transform;
  }

  .drawer.sm\:drawer.w-full {
    width: 100% !important;
  }

  .drawer.sm\:drawer.active {
    z-index: 1030;
    -webkit-transform: translateX(0) translateY(0) !important;
            transform: translateX(0) translateY(0) !important;
  }

  .drawer.sm\:drawer.active > a.close {
    display: block;
  }

  .drawer.sm\:drawer.\--bottom {
    bottom: 0;
    left: 0;
    width: 100%;
    max-width: 100% !important;
    -webkit-transform: translateY(100%);
            transform: translateY(100%);
  }

  .drawer.sm\:drawer.\--left {
    bottom: 0;
    left: 0;
    height: 100%;
    max-width: 600px;
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }

  .drawer.sm\:drawer.\--right {
    bottom: 0;
    right: 0;
    height: 100%;
    max-width: 600px;
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
  }
}

@media (max-width: 1023.98px) {
  .drawer.md\:drawer {
    position: fixed !important;
    width: calc(100% - 80px);
    max-width: 100%;
    background: #fff;
    z-index: 1040;
    -webkit-transition: 0.4s -webkit-transform;
    transition: 0.4s -webkit-transform;
    transition: 0.4s transform;
    transition: 0.4s transform, 0.4s -webkit-transform;
  }

  .drawer.md\:drawer.w-full {
    width: 100% !important;
  }

  .drawer.md\:drawer.active {
    z-index: 1030;
    -webkit-transform: translateX(0) translateY(0) !important;
            transform: translateX(0) translateY(0) !important;
  }

  .drawer.md\:drawer.active > a.close {
    display: block;
  }

  .drawer.md\:drawer.\--bottom {
    bottom: 0;
    left: 0;
    width: 100%;
    max-width: 100% !important;
    -webkit-transform: translateY(100%);
            transform: translateY(100%);
  }

  .drawer.md\:drawer.\--left {
    bottom: 0;
    left: 0;
    height: 100%;
    max-width: 600px;
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }

  .drawer.md\:drawer.\--right {
    bottom: 0;
    right: 0;
    height: 100%;
    max-width: 600px;
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
  }
}

@media (max-width: 1279.98px) {
  .drawer.lg\:drawer {
    position: fixed !important;
    width: calc(100% - 80px);
    max-width: 100%;
    background: #fff;
    z-index: 1040;
    -webkit-transition: 0.4s -webkit-transform;
    transition: 0.4s -webkit-transform;
    transition: 0.4s transform;
    transition: 0.4s transform, 0.4s -webkit-transform;
  }

  .drawer.lg\:drawer.w-full {
    width: 100% !important;
  }

  .drawer.lg\:drawer.active {
    z-index: 1030;
    -webkit-transform: translateX(0) translateY(0) !important;
            transform: translateX(0) translateY(0) !important;
  }

  .drawer.lg\:drawer.active > a.close {
    display: block;
  }

  .drawer.lg\:drawer.\--bottom {
    bottom: 0;
    left: 0;
    width: 100%;
    max-width: 100% !important;
    -webkit-transform: translateY(100%);
            transform: translateY(100%);
  }

  .drawer.lg\:drawer.\--left {
    bottom: 0;
    left: 0;
    height: 100%;
    max-width: 600px;
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }

  .drawer.lg\:drawer.\--right {
    bottom: 0;
    right: 0;
    height: 100%;
    max-width: 600px;
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
  }
}

.drawer.xl\:drawer {
  position: fixed !important;
  width: calc(100% - 80px);
  max-width: 100%;
  background: #fff;
  z-index: 1040;
  -webkit-transition: 0.4s -webkit-transform;
  transition: 0.4s -webkit-transform;
  transition: 0.4s transform;
  transition: 0.4s transform, 0.4s -webkit-transform;
}

.drawer.xl\:drawer.w-full {
  width: 100% !important;
}

.drawer.xl\:drawer.active {
  z-index: 1030;
  -webkit-transform: translateX(0) translateY(0) !important;
          transform: translateX(0) translateY(0) !important;
}

.drawer.xl\:drawer.active > a.close {
  display: block;
}

.drawer.xl\:drawer.\--bottom {
  bottom: 0;
  left: 0;
  width: 100%;
  max-width: 100% !important;
  -webkit-transform: translateY(100%);
          transform: translateY(100%);
}

.drawer.xl\:drawer.\--left {
  bottom: 0;
  left: 0;
  height: 100%;
  max-width: 600px;
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
}

.drawer.xl\:drawer.\--right {
  bottom: 0;
  right: 0;
  height: 100%;
  max-width: 600px;
  -webkit-transform: translateX(100%);
          transform: translateX(100%);
}

.drawer.x\:drawer {
  position: fixed !important;
  width: calc(100% - 80px);
  max-width: 100%;
  background: #fff;
  z-index: 1040;
  -webkit-transition: 0.4s -webkit-transform;
  transition: 0.4s -webkit-transform;
  transition: 0.4s transform;
  transition: 0.4s transform, 0.4s -webkit-transform;
}

.drawer.x\:drawer.w-full {
  width: 100% !important;
}

.drawer.x\:drawer.active {
  z-index: 1030;
  -webkit-transform: translateX(0) translateY(0) !important;
          transform: translateX(0) translateY(0) !important;
}

.drawer.x\:drawer.active > a.close {
  display: block;
}

.drawer.x\:drawer.\--bottom {
  bottom: 0;
  left: 0;
  width: 100%;
  max-width: 100% !important;
  -webkit-transform: translateY(100%);
          transform: translateY(100%);
}

.drawer.x\:drawer.\--left {
  bottom: 0;
  left: 0;
  height: 100%;
  max-width: 600px;
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
}

.drawer.x\:drawer.\--right {
  bottom: 0;
  right: 0;
  height: 100%;
  max-width: 600px;
  -webkit-transform: translateX(100%);
          transform: translateX(100%);
}

/* purgecss end ignore */

/* purgecss start ignore */

.dropdown {
  position: relative;
}

.dropdown i.down,
  .dropdown i.up {
  margin-left: 0.2rem;
}

.dropdown i.down:before,
    .dropdown i.up:before {
  font-size: 0.6rem;
}

.dropdown i.down {
  display: inline-block;
}

.dropdown i.up {
  display: none;
}

.dropdown > ul {
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  visibility: hidden;
  transition: all 0.3s;
  opacity: 0;
  position: absolute;
  left: 0;
  min-width: 100%;
  border-width: 1px;
  border-color: var(--color-lightest);
  background-color: var(--color-white);
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
  top: 100%;
  z-index: 20;
}

.dropdown > ul li a {
  display: block;
  padding-left: 0.25rem;
  padding-right: 0.25rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  white-space: nowrap;
}

.dropdown.open i.up {
  display: inline-block;
}

.dropdown.open i.down {
  display: none;
}

.dropdown.open > ul {
  display: block;
  visibility: visible;
  opacity: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

/* purgecss end ignore */


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9mdWRpL3NyYy9hc3NldHMvc3R5bGVzL0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvPG5vIHNvdXJjZT4iLCJ3ZWJwYWNrOi8vLy4vZnVkaS9zcmMvYXNzZXRzL3N0eWxlcy9DOi94YW1wcC9odGRvY3MvYmVkcm9jay9wdWJsaWNfaHRtbC9hcHAvdGhlbWVzL2Z1ZGkvc3JjL2Fzc2V0cy9zdHlsZXMvQzoveGFtcHAvaHRkb2NzL2JlZHJvY2svcHVibGljX2h0bWwvYXBwL3RoZW1lcy9fY29yZS9hc3NldHMvc3R5bGVzL19jb21tb24uc2NzcyIsIndlYnBhY2s6Ly8vLi9mdWRpL3NyYy9hc3NldHMvc3R5bGVzL0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvbm9kZV9tb2R1bGVzL3RhaWx3aW5kY3NzL2xpYi9saWIvc3Vic3RpdHV0ZUNsYXNzQXBwbHlBdFJ1bGVzLmpzIiwid2VicGFjazovLy8uL2Z1ZGkvc3JjL2Fzc2V0cy9zdHlsZXMvQzoveGFtcHAvaHRkb2NzL2JlZHJvY2svcHVibGljX2h0bWwvYXBwL3RoZW1lcy9mdWRpL3NyYy9hc3NldHMvc3R5bGVzL0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvX2NvcmUvYXNzZXRzL3N0eWxlcy9nbG9iYWwvX2JyZWFrcG9pbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vZnVkaS9zcmMvYXNzZXRzL3N0eWxlcy9DOi94YW1wcC9odGRvY3MvYmVkcm9jay9wdWJsaWNfaHRtbC9hcHAvdGhlbWVzL2Z1ZGkvc3JjL2Fzc2V0cy9zdHlsZXMvQzoveGFtcHAvaHRkb2NzL2JlZHJvY2svcHVibGljX2h0bWwvYXBwL3RoZW1lcy9fY29yZS9hc3NldHMvc3R5bGVzL19ib3guc2NzcyIsIndlYnBhY2s6Ly8vLi9mdWRpL3NyYy9hc3NldHMvc3R5bGVzL0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvZnVkaS9zcmMvYXNzZXRzL3N0eWxlcy9DOi94YW1wcC9odGRvY3MvYmVkcm9jay9wdWJsaWNfaHRtbC9hcHAvdGhlbWVzL19jb3JlL2Fzc2V0cy9zdHlsZXMvX2J0bi5zY3NzIiwid2VicGFjazovLy8uL2Z1ZGkvc3JjL2Fzc2V0cy9zdHlsZXMvQzoveGFtcHAvaHRkb2NzL2JlZHJvY2svcHVibGljX2h0bWwvYXBwL3RoZW1lcy9mdWRpL3NyYy9hc3NldHMvc3R5bGVzL0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvX2NvcmUvYXNzZXRzL3N0eWxlcy9fY29udGFpbmVyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vZnVkaS9zcmMvYXNzZXRzL3N0eWxlcy9DOi94YW1wcC9odGRvY3MvYmVkcm9jay9wdWJsaWNfaHRtbC9hcHAvdGhlbWVzL2Z1ZGkvc3JjL2Fzc2V0cy9zdHlsZXMvQzoveGFtcHAvaHRkb2NzL2JlZHJvY2svcHVibGljX2h0bWwvYXBwL3RoZW1lcy9fY29yZS9hc3NldHMvc3R5bGVzL19sYXlvdXQuc2NzcyIsIndlYnBhY2s6Ly8vLi9mdWRpL3NyYy9hc3NldHMvc3R5bGVzL0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvZnVkaS9zcmMvYXNzZXRzL3N0eWxlcy9DOi94YW1wcC9odGRvY3MvYmVkcm9jay9wdWJsaWNfaHRtbC9hcHAvdGhlbWVzL19jb3JlL2Fzc2V0cy9zdHlsZXMvX3d5c2l3eWcuc2NzcyIsIndlYnBhY2s6Ly8vLi9mdWRpL3NyYy92aWV3cy9fY21wdC9zdGVwcy9DOi94YW1wcC9odGRvY3MvYmVkcm9jay9wdWJsaWNfaHRtbC9hcHAvdGhlbWVzLzxubyBzb3VyY2U+Iiwid2VicGFjazovLy8uL2Z1ZGkvc3JjL3ZpZXdzL19jbXB0L3N0ZXBzL0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvZnVkaS9zcmMvdmlld3MvX2NtcHQvc3RlcHMvQzoveGFtcHAvaHRkb2NzL2JlZHJvY2svcHVibGljX2h0bWwvYXBwL3RoZW1lcy9mdWRpL3NyYy92aWV3cy9fY21wdC9zdGVwcy9zdGVwcy5zY3NzIiwid2VicGFjazovLy8uL2Z1ZGkvc3JjL3ZpZXdzL19jbXB0L3N0ZXBzL0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvbm9kZV9tb2R1bGVzL3RhaWx3aW5kY3NzL2xpYi9saWIvc3Vic3RpdHV0ZUNsYXNzQXBwbHlBdFJ1bGVzLmpzIiwid2VicGFjazovLy8uL2Z1ZGkvc3JjL3ZpZXdzL19jbXB0L3N0ZXBzL0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvZnVkaS9zcmMvdmlld3MvX2NtcHQvc3RlcHMvQzoveGFtcHAvaHRkb2NzL2JlZHJvY2svcHVibGljX2h0bWwvYXBwL3RoZW1lcy9fY29yZS9hc3NldHMvc3R5bGVzL2dsb2JhbC9fYnJlYWtwb2ludHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9mdWRpL3NyYy92aWV3cy9fY21wdC93cmFwL0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvPG5vIHNvdXJjZT4iLCJ3ZWJwYWNrOi8vLy4vZnVkaS9zcmMvdmlld3MvX2NtcHQvd3JhcC9DOi94YW1wcC9odGRvY3MvYmVkcm9jay9wdWJsaWNfaHRtbC9hcHAvdGhlbWVzL2Z1ZGkvc3JjL3ZpZXdzL19jbXB0L3dyYXAvQzoveGFtcHAvaHRkb2NzL2JlZHJvY2svcHVibGljX2h0bWwvYXBwL3RoZW1lcy9mdWRpL3NyYy92aWV3cy9fY21wdC93cmFwL3dyYXAuc2NzcyIsIndlYnBhY2s6Ly8vLi9mdWRpL3NyYy92aWV3cy9fY21wdC93cmFwL0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvbm9kZV9tb2R1bGVzL3RhaWx3aW5kY3NzL2xpYi9saWIvc3Vic3RpdHV0ZUNsYXNzQXBwbHlBdFJ1bGVzLmpzIiwid2VicGFjazovLy8uL2Z1ZGkvc3JjL3ZpZXdzL19jbXB0L3dyYXAvQzoveGFtcHAvaHRkb2NzL2JlZHJvY2svcHVibGljX2h0bWwvYXBwL3RoZW1lcy9mdWRpL3NyYy92aWV3cy9fY21wdC93cmFwL0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvX2NvcmUvYXNzZXRzL3N0eWxlcy9nbG9iYWwvX2JyZWFrcG9pbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vZnVkaS9zcmMvdmlld3MvX2NtcHQvYmFubmVyL0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvPG5vIHNvdXJjZT4iLCJ3ZWJwYWNrOi8vLy4vZnVkaS9zcmMvdmlld3MvX2NtcHQvYmFubmVyL0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvZnVkaS9zcmMvdmlld3MvX2NtcHQvYmFubmVyL0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvZnVkaS9zcmMvdmlld3MvX2NtcHQvYmFubmVyL2Jhbm5lci5zY3NzIiwid2VicGFjazovLy8uL2Z1ZGkvc3JjL3ZpZXdzL19jbXB0L2xpc3QvQzoveGFtcHAvaHRkb2NzL2JlZHJvY2svcHVibGljX2h0bWwvYXBwL3RoZW1lcy88bm8gc291cmNlPiIsIndlYnBhY2s6Ly8vLi9mdWRpL3NyYy92aWV3cy9fY21wdC9saXN0L0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvZnVkaS9zcmMvdmlld3MvX2NtcHQvbGlzdC9DOi94YW1wcC9odGRvY3MvYmVkcm9jay9wdWJsaWNfaHRtbC9hcHAvdGhlbWVzL2Z1ZGkvc3JjL3ZpZXdzL19jbXB0L2xpc3QvbGlzdC5zY3NzIiwid2VicGFjazovLy8uL2Z1ZGkvc3JjL3ZpZXdzL19jbXB0L2xpc3QvQzoveGFtcHAvaHRkb2NzL2JlZHJvY2svcHVibGljX2h0bWwvYXBwL3RoZW1lcy9ub2RlX21vZHVsZXMvdGFpbHdpbmRjc3MvbGliL2xpYi9zdWJzdGl0dXRlQ2xhc3NBcHBseUF0UnVsZXMuanMiLCJ3ZWJwYWNrOi8vLy4vZnVkaS9zcmMvdmlld3MvX2NtcHQvbGlzdC9DOi94YW1wcC9odGRvY3MvYmVkcm9jay9wdWJsaWNfaHRtbC9hcHAvdGhlbWVzL2Z1ZGkvc3JjL3ZpZXdzL19jbXB0L2xpc3QvQzoveGFtcHAvaHRkb2NzL2JlZHJvY2svcHVibGljX2h0bWwvYXBwL3RoZW1lcy9fY29yZS9hc3NldHMvc3R5bGVzL2dsb2JhbC9fYnJlYWtwb2ludHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9mdWRpL3NyYy92aWV3cy9fY21wdC9jYXJvdS9DOi94YW1wcC9odGRvY3MvYmVkcm9jay9wdWJsaWNfaHRtbC9hcHAvdGhlbWVzLzxubyBzb3VyY2U+Iiwid2VicGFjazovLy8uL2Z1ZGkvc3JjL3ZpZXdzL19jbXB0L2Nhcm91L0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvZnVkaS9zcmMvdmlld3MvX2NtcHQvY2Fyb3UvQzoveGFtcHAvaHRkb2NzL2JlZHJvY2svcHVibGljX2h0bWwvYXBwL3RoZW1lcy9mdWRpL3NyYy92aWV3cy9fY21wdC9jYXJvdS9jYXJvdS5zY3NzIiwid2VicGFjazovLy8uL2Z1ZGkvc3JjL3ZpZXdzL19jbXB0L2Nhcm91L0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvbm9kZV9tb2R1bGVzL3RhaWx3aW5kY3NzL2xpYi9saWIvc3Vic3RpdHV0ZUNsYXNzQXBwbHlBdFJ1bGVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9vd2wuY2Fyb3VzZWwvZGlzdC9hc3NldHMvb3dsLmNhcm91c2VsLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvb3dsLmNhcm91c2VsL2Rpc3QvYXNzZXRzL293bC50aGVtZS5kZWZhdWx0LmNzcyIsIndlYnBhY2s6Ly8vLi9mdWRpL3NyYy92aWV3cy9fY21wdC9hcHBiYXIvQzoveGFtcHAvaHRkb2NzL2JlZHJvY2svcHVibGljX2h0bWwvYXBwL3RoZW1lcy88bm8gc291cmNlPiIsIndlYnBhY2s6Ly8vLi9mdWRpL3NyYy92aWV3cy9fY21wdC9hcHBiYXIvQzoveGFtcHAvaHRkb2NzL2JlZHJvY2svcHVibGljX2h0bWwvYXBwL3RoZW1lcy9mdWRpL3NyYy92aWV3cy9fY21wdC9hcHBiYXIvQzoveGFtcHAvaHRkb2NzL2JlZHJvY2svcHVibGljX2h0bWwvYXBwL3RoZW1lcy9mdWRpL3NyYy92aWV3cy9fY21wdC9hcHBiYXIvYXBwYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vZnVkaS9zcmMvdmlld3MvX2NtcHQvYXBwYmFyL0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvbm9kZV9tb2R1bGVzL3RhaWx3aW5kY3NzL2xpYi9saWIvc3Vic3RpdHV0ZUNsYXNzQXBwbHlBdFJ1bGVzLmpzIiwid2VicGFjazovLy8uL2Z1ZGkvc3JjL3ZpZXdzL19jbXB0L3NoYXJlL0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvPG5vIHNvdXJjZT4iLCJ3ZWJwYWNrOi8vLy4vZnVkaS9zcmMvdmlld3MvX2NtcHQvc2hhcmUvQzoveGFtcHAvaHRkb2NzL2JlZHJvY2svcHVibGljX2h0bWwvYXBwL3RoZW1lcy9mdWRpL3NyYy92aWV3cy9fY21wdC9zaGFyZS9DOi94YW1wcC9odGRvY3MvYmVkcm9jay9wdWJsaWNfaHRtbC9hcHAvdGhlbWVzL2Z1ZGkvc3JjL3ZpZXdzL19jbXB0L3NoYXJlL3NoYXJlLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vZnVkaS9zcmMvdmlld3MvX2NtcHQvc2hhcmUvQzoveGFtcHAvaHRkb2NzL2JlZHJvY2svcHVibGljX2h0bWwvYXBwL3RoZW1lcy9ub2RlX21vZHVsZXMvdGFpbHdpbmRjc3MvbGliL2xpYi9zdWJzdGl0dXRlQ2xhc3NBcHBseUF0UnVsZXMuanMiLCJ3ZWJwYWNrOi8vLy4vZnVkaS9zcmMvdmlld3MvX2NtcHQvcmliYm9uL0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvPG5vIHNvdXJjZT4iLCJ3ZWJwYWNrOi8vLy4vZnVkaS9zcmMvdmlld3MvX2NtcHQvcmliYm9uL0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvZnVkaS9zcmMvdmlld3MvX2NtcHQvcmliYm9uL0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvZnVkaS9zcmMvdmlld3MvX2NtcHQvcmliYm9uL3JpYmJvbi5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay5jc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3NsaWNrLWNhcm91c2VsL3NsaWNrL3NsaWNrLXRoZW1lLmNzcyIsIndlYnBhY2s6Ly8vLi9fY29yZS9tb2QvbG9hZGVyL0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvPG5vIHNvdXJjZT4iLCJ3ZWJwYWNrOi8vLy4vX2NvcmUvbW9kL2xvYWRlci9DOi94YW1wcC9odGRvY3MvYmVkcm9jay9wdWJsaWNfaHRtbC9hcHAvdGhlbWVzL19jb3JlL21vZC9sb2FkZXIvQzoveGFtcHAvaHRkb2NzL2JlZHJvY2svcHVibGljX2h0bWwvYXBwL3RoZW1lcy9fY29yZS9tb2QvbG9hZGVyL2xvYWRlci5zY3NzIiwid2VicGFjazovLy8uL19jb3JlL21vZC9kcmF3ZXIvQzoveGFtcHAvaHRkb2NzL2JlZHJvY2svcHVibGljX2h0bWwvYXBwL3RoZW1lcy88bm8gc291cmNlPiIsIndlYnBhY2s6Ly8vLi9fY29yZS9tb2QvZHJhd2VyL0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvX2NvcmUvbW9kL2RyYXdlci9DOi94YW1wcC9odGRvY3MvYmVkcm9jay9wdWJsaWNfaHRtbC9hcHAvdGhlbWVzL19jb3JlL21vZC9kcmF3ZXIvZHJhd2VyLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vX2NvcmUvbW9kL2RyYXdlci9DOi94YW1wcC9odGRvY3MvYmVkcm9jay9wdWJsaWNfaHRtbC9hcHAvdGhlbWVzL25vZGVfbW9kdWxlcy90YWlsd2luZGNzcy9saWIvbGliL3N1YnN0aXR1dGVDbGFzc0FwcGx5QXRSdWxlcy5qcyIsIndlYnBhY2s6Ly8vLi9fY29yZS9tb2QvZHJhd2VyL0M6L3hhbXBwL2h0ZG9jcy9iZWRyb2NrL3B1YmxpY19odG1sL2FwcC90aGVtZXMvX2NvcmUvbW9kL2RyYXdlci9DOi94YW1wcC9odGRvY3MvYmVkcm9jay9wdWJsaWNfaHRtbC9hcHAvdGhlbWVzL19jb3JlL2Fzc2V0cy9zdHlsZXMvZ2xvYmFsL19icmVha3BvaW50cy5zY3NzIiwid2VicGFjazovLy8uL19jb3JlL21vZC9kcm9wZG93bi9DOi94YW1wcC9odGRvY3MvYmVkcm9jay9wdWJsaWNfaHRtbC9hcHAvdGhlbWVzLzxubyBzb3VyY2U+Iiwid2VicGFjazovLy8uL19jb3JlL21vZC9kcm9wZG93bi9DOi94YW1wcC9odGRvY3MvYmVkcm9jay9wdWJsaWNfaHRtbC9hcHAvdGhlbWVzL19jb3JlL21vZC9kcm9wZG93bi9DOi94YW1wcC9odGRvY3MvYmVkcm9jay9wdWJsaWNfaHRtbC9hcHAvdGhlbWVzL19jb3JlL21vZC9kcm9wZG93bi9kcm9wZG93bi5zY3NzIiwid2VicGFjazovLy8uL19jb3JlL21vZC9kcm9wZG93bi9DOi94YW1wcC9odGRvY3MvYmVkcm9jay9wdWJsaWNfaHRtbC9hcHAvdGhlbWVzL25vZGVfbW9kdWxlcy90YWlsd2luZGNzcy9saWIvbGliL3N1YnN0aXR1dGVDbGFzc0FwcGx5QXRSdWxlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUNBQTtFQUNDLGlCQUFnQjtDQUFBOztBQUVqQjtFQUNDLGdDQUErQjtDQUFBOztBQUVoQztFQ0pBLG1CQUFtQjtFQUFuQixv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O0NBQUE7O0FEL0Q3Qjs7QUlBQTs7QUNNQTtFQ0pBLG1CQUFtQjtDREtaOztBQURQOztFQVdFLG9CQUFtQjtDQUFBOztBQVhyQjs7RUFhRyxrQkFBaUI7Q0FBQTs7QUFicEI7RUNKQSxzQkFBbUI7Q0RxQlg7O0FBakJSO0VBb0JFLGNBQWE7Q0FBQTs7QUFwQmY7RUF3QkUsNkJBQW9CO0VBQXBCLHFCQUFvQjtFQUNwQixtQkFBa0I7RUFDbEIscUJBQW9CO0VBQ3BCLFdBQVU7RUMvQlosbUJBQW1CO0VBQW5CLFFBQW1CO0VBQW5CLGdCQUFtQjtFQUFuQixrQkFBbUI7RUFBbkIsb0NBQW1CO0VBQW5CLHFDQUFtQjtFQUFuQixtQkFBbUI7RUFBbkIsb0JBQW1CO0VBQW5CLGtCQUFtQjtFQUFuQixxQkFBbUI7RURpQ2pCLFVBQVM7RUFDVCxZQUFXO0NBQUE7O0FBOUJiO0VDSkEsZUFBbUI7RUFBbkIsc0JBQW1CO0VBQW5CLHVCQUFtQjtFQUFuQixxQkFBbUI7RUFBbkIsd0JBQW1CO0VEc0NmLG9CQUFtQjtDQUFBOztBQWxDdkI7RUF5Q0csc0JBQXFCO0NBQUE7O0FBekN4QjtFQTRDRyxjQUFhO0NBQUE7O0FBNUNoQjtFQWdERyxlQUFjO0VBQ2Qsb0JBQW1CO0VBQ25CLFdBQVU7RUN0RGIscUJBQW1CO0VBQW5CLHFCQUFtQjtFQUFuQixjQUFtQjtFQUFuQiw2QkFBbUI7RUFBbkIsOEJBQW1CO01BQW5CLDJCQUFtQjtVQUFuQix1QkFBbUI7Q0R1RFY7O0FEekRUIiwiZmlsZSI6InN0eWxlcy9tYWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwicCB7XG5cdGxpbmUtaGVpZ2h0OiAxLjg7XG59XG4uaWNvbiB7XG5cdGxpbmUtaGVpZ2h0OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG59XG4ucm93IHtcblx0QGFwcGx5IGZsZXggZmxleC13cmFwIC1teC00O1xuXHQ+IC5jb2wge1xuXHRcdEBhcHBseSBweC00O1xuXHR9XG59XG4ubWlkIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiA1MCU7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cbi5ob3ZlciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAxMDAlO1xuXHRvcGFjaXR5OiAwO1xufVxuYWJiclt0aXRsZV0ge1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYmcge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHJpZ2h0OiAwO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG5cblx0Ji5yZXNwb25zaXZlIHtcblx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24obWQpIHtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdFx0PiBpbWcge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0XHRvYmplY3QtZml0OiBpbml0aWFsO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQ+IGltZyB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGhlaWdodDogMTAwJTtcblx0XHRvYmplY3QtZml0OiBjb3Zlcjtcblx0fVxuXHRwaWN0dXJlIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cmlnaHQ6IDA7XG5cdFx0bGVmdDogMDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0PiBpbWcge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRvYmplY3QtZml0OiBjb3Zlcjtcblx0XHR9XG5cdH1cbn1cblxuaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCxcbmlucHV0Oi13ZWJraXQtYXV0b2ZpbGw6aG92ZXIsXG5pbnB1dDotd2Via2l0LWF1dG9maWxsOmZvY3VzLFxuaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbDphY3RpdmUge1xuXHQtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDEwMDBweCB3aGl0ZSBpbnNldCAhaW1wb3J0YW50O1xufVxuLnF0cmFueHMtYXZhaWxhYmxlLWxhbmd1YWdlcy1tZXNzYWdlIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbiIsIkB0YWlsd2luZCBiYXNlO1xuQHRhaWx3aW5kIGNvbXBvbmVudHM7XG5AdGFpbHdpbmQgdXRpbGl0aWVzOyIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXHJcbi8vXHJcbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcclxuLy9cclxuLy8gICAgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KVxyXG4vL1xyXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXHJcblxyXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXHJcbi8vXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSlcclxuLy8gICAgbWRcclxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICBtZFxyXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwpKVxyXG4vLyAgICBtZFxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KFxyXG4gICRuYW1lLFxyXG4gICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsXHJcbiAgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cylcclxuKSB7XHJcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XHJcbiAgQHJldHVybiBpZihcclxuICAgICRuICE9IG51bGwgYW5kICRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSxcclxuICAgIG50aCgkYnJlYWtwb2ludC1uYW1lcywgJG4gKyAxKSxcclxuICAgIG51bGxcclxuICApO1xyXG59XHJcblxyXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXHJcbi8vXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICA1NzZweFxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xyXG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcclxufVxyXG5cclxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgbGFyZ2VzdCAobGFzdCkgYnJlYWtwb2ludC5cclxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgY2FsY3VsYXRlZCBhcyB0aGUgbWluaW11bSBvZiB0aGUgbmV4dCBvbmUgbGVzcyAwLjAycHhcclxuLy8gdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cclxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxyXG4vLyBVc2VzIDAuMDJweCByYXRoZXIgdGhhbiAwLjAxcHggdG8gd29yayBhcm91bmQgYSBjdXJyZW50IHJvdW5kaW5nIGJ1ZyBpbiBTYWZhcmkuXHJcbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXHJcbi8vXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbWF4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICA3NjcuOThweFxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG4gIEByZXR1cm4gaWYoJG5leHQsIGJyZWFrcG9pbnQtbWluKCRuZXh0LCAkYnJlYWtwb2ludHMpIC0gMC4wMiwgbnVsbCk7XHJcbn1cclxuXHJcbi8vIFJldHVybnMgYSBibGFuayBzdHJpbmcgaWYgc21hbGxlc3QgYnJlYWtwb2ludCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG5hbWUgd2l0aCBhIGRhc2ggaW4gZnJvbnQuXHJcbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxyXG4vL1xyXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHhzLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcclxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcclxuLy8gICAgXCItc21cIlxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgJycsICctI3skbmFtZX0nKTtcclxufVxyXG5cclxuLy8gTWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LlxyXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxyXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG4gIEBpZiAkbWluIHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxyXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxyXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XHJcbiAgQGlmICRtYXgge1xyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtYXgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXHJcbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBiZXR3ZWVuIHRoZSBtaW4gYW5kIG1heCBicmVha3BvaW50c1xyXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKFxyXG4gICRsb3dlcixcclxuICAkdXBwZXIsXHJcbiAgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50c1xyXG4pIHtcclxuICAkbWluOiBicmVha3BvaW50LW1pbigkbG93ZXIsICRicmVha3BvaW50cyk7XHJcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xyXG5cclxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCR1cHBlciwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gTWVkaWEgYmV0d2VlbiB0aGUgYnJlYWtwb2ludCdzIG1pbmltdW0gYW5kIG1heGltdW0gd2lkdGhzLlxyXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cclxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxyXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1vbmx5KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XHJcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XHJcblxyXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIuYm94IHtcclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XHJcbiAgICBAYXBwbHkgYmctd2hpdGUgcHgtNCBweS00O1xyXG4gIH1cclxuXHJcbiAgPiBoMyB7XHJcbiAgICBAYXBwbHkgZm9udC1ib2xkIHRleHQtMnhsO1xyXG4gIH1cclxuICBAYXBwbHkgYmctd2hpdGUgcHgtNCBweS00IHctZnVsbDtcclxufVxyXG4iLCIuYnRuLFxyXG4uYnV0dG9uIHtcclxuXHRAYXBwbHkgcmVsYXRpdmUgZm9udC1ib2xkIHB5LTEgcHgtMSBuby11bmRlcmxpbmUgcm91bmRlZC1tZDtcclxuXHR0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcclxuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cdHRyYW5zaXRpb246IGFsbCAwLjVzO1xyXG5cclxuXHQmLmxvYWRpbmcge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHQmOjpiZWZvcmUge1xyXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuXHRcdFx0Zm9udC12YXJpYW50OiBub3JtYWw7XHJcblx0XHRcdHRleHQtcmVuZGVyaW5nOiBhdXRvO1xyXG5cdFx0XHQtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcclxuXHRcdFx0Y29udGVudDogJyc7XHJcblx0XHRcdGhlaWdodDogMjBweDtcclxuXHRcdFx0d2lkdGg6IDIwcHg7XHJcblx0XHRcdGZvbnQtd2VpZ2h0OiA5MDA7XHJcblx0XHRcdG1hcmdpbi1yaWdodDogNXB4O1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJyN7JHB1YmxpY1BhdGh9L2ZvbnRzL2xvYWRpbmcuc3ZnJyk7XHJcblx0XHR9XHJcblx0fVxyXG5cdCYuYnRuLXNtIHtcclxuXHRcdEBhcHBseSB0ZXh0LXNtIHB4LTUgcHktMSAjeyFpbXBvcnRhbnR9O1xyXG5cdFx0Ly8gcGFkZGluZzogM3B4IDZweCAhaW1wb3J0YW50O1xyXG5cdH1cclxuXHQmLmJ0bi14cyB7XHJcblx0XHRAYXBwbHkgdGV4dC14cztcclxuXHRcdHBhZGRpbmc6IDNweCA2cHggIWltcG9ydGFudDtcclxuXHR9XHJcblx0Ji5idG4tYmxvY2sge1xyXG5cdFx0QGFwcGx5IGJsb2NrIHJlbGF0aXZlIGZvbnQtYm9sZCB0ZXh0LWNlbnRlciAgcHgtMyBweS0zICB3LWZ1bGwgcm91bmRlZC1zbTtcclxuXHR9XHJcblx0Ji5idG4tb3V0bGluZSB7XHJcblx0XHRAYXBwbHkgaW5saW5lLWJsb2NrICBmb250LWJvbGQgdGV4dC1jZW50ZXIgIHB4LTUgcHktMyAgYm9yZGVyIGJvcmRlci1saWdodGVyO1xyXG5cdFx0Jjpob3ZlcixcclxuXHRcdCYuYWN0aXZlIHtcclxuXHRcdFx0QGFwcGx5IHRleHQtd2hpdGUgIGJnLWxpZ2h0ZXI7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmLmJ0bi1wcmltYXJ5IHtcclxuXHRcdEBhcHBseSBpbmxpbmUtYmxvY2sgIGZvbnQtYm9sZCB0ZXh0LWNlbnRlciB0ZXh0LXdoaXRlIHB4LTUgcHktMiBiZy1wcmltYXJ5O1xyXG5cclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHRAYXBwbHkgYmctZGFyaztcclxuXHRcdFx0Ly8gYmFja2dyb3VuZC1jb2xvcjogbGlnaHRuZXNzKHZhcigtLWNvbG9yLXByaW1hcnkpLCAwLjIpO1xyXG5cdFx0XHQvLyBiYWNrZ3JvdW5kLWNvbG9yOiBjb2x5b3ItbW9kKHZhcigtLWNvbG9yLXByaW1hcnkpIGFscGhhKDcwJSkpO1xyXG5cdFx0XHQvLyBiYWNrZ3JvdW5kOiBoc2wodmFyKC0tY29sb3ItcHJpbWFyeSksIDUwJSk7XHJcblx0XHRcdC8vIGJhY2tncm91bmQ6IGRhcmtlbih2YXIoLS1jb2xvci1wcmltYXJ5KSwgMS4zKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCYuYnRuLXByaW1hcnktb3V0bGluZSB7XHJcblx0XHRAYXBwbHkgaW5saW5lLWJsb2NrICBmb250LWJvbGQgdGV4dC1jZW50ZXIgdGV4dC1wcmltYXJ5IHB4LTUgcHktMyAgYm9yZGVyLTIgIGJvcmRlci1wcmltYXJ5O1xyXG5cclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHRAYXBwbHkgdGV4dC13aGl0ZSAgYmctcHJpbWFyeTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCYuYnRuLWljb24sXHJcblx0Ji5idG4taWNvbi5idG4tb3V0bGluZSB7XHJcblx0XHRAYXBwbHkgaW5saW5lLWJsb2NrIHRleHQtY2VudGVyIHJvdW5kZWQtZnVsbCB3LTggaC04IHB4LTAgcHktMDtcclxuXHRcdGkge1xyXG5cdFx0XHRsaW5lLWhlaWdodDogMS44cmVtO1xyXG5cdFx0XHRAYXBwbHkgdGV4dC1iYXNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdCY6aG92ZXIsXHJcblx0XHQmLmFjdGl2ZSB7XHJcblx0XHRcdEBhcHBseSB0ZXh0LXdoaXRlICBiZy1wcmltYXJ5O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ji5idG4tYmxvY2sge1xyXG5cdFx0QGFwcGx5IGJsb2NrIHJlbGF0aXZlIGZvbnQtYm9sZCB0ZXh0LWNlbnRlciBweC0zIHB5LTMgIHctZnVsbDtcclxuXHR9XHJcblxyXG5cdCYuYnRuLWxpZ2h0ZXIge1xyXG5cdFx0QGFwcGx5IHRleHQtd2hpdGUgIGJnLWxpZ2h0ZXI7XHJcblxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdEBhcHBseSBiZy1kYXJrO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ji5idG4tZGFyayB7XHJcblx0XHRAYXBwbHkgdGV4dC13aGl0ZSBiZy1kYXJrIHB4LTQgcHktMjtcclxuXHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0QGFwcGx5IGJnLWJsYWNrO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIuY29udGFpbmVyLXNtIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWF4LXdpZHRoOiA3NjhweDtcclxuICBAYXBwbHkgbXgtYXV0bztcclxufVxyXG5cclxuLmNvbnRhaW5lci14cyB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG1heC13aWR0aDogMzk2cHg7XHJcbiAgQGFwcGx5IG14LWF1dG87XHJcbn1cclxuXHJcbi5jb250YWluZXItZmx1aWQge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmNvbnRhaW5lciB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cclxuICAvLyB3aWR0aDogMTAwJTtcclxuXHJcbiAgLy8gei1pbmRleDogMjtcclxufVxyXG5cclxuLy8gbGkg6Kqe5rOV6LOH5paZ5bqr77yM5aWX55So5ZyodWwgbGlcclxuXHJcbi8vIEBlYWNoICRrZXksXHJcbi8vICR2YWx1ZSBpbiAkZ3JpZC1icmVha3BvaW50cyB7XHJcbi8vICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgka2V5KSB7XHJcbi8vICAgICAuY29udGFpbmVyIHtcclxuLy8gICAgICAgbWF4LXdpZHRoOiAjeyR2YWx1ZX07XHJcbi8vICAgICB9XHJcbi8vICAgfVxyXG4vLyB9XHJcbiIsIi5sYXlvdXQtdG9wIHtcclxuXHR6LWluZGV4OiA5OTtcclxufVxyXG4uYXBwLWhlYWRlciB7XHJcblx0ei1pbmRleDogMjtcclxuXHQmLmFjdGl2ZSB7XHJcblx0XHRAZXh0ZW5kIC5sYXlvdXQtdG9wO1xyXG5cdH1cclxufVxyXG5cclxuLm5lY2tlcixcclxuLmFwcC1uZWNrZXIge1xyXG5cdHotaW5kZXg6IDE7XHJcblx0Ji5hY3RpdmUge1xyXG5cdFx0QGV4dGVuZCAubGF5b3V0LXRvcDtcclxuXHR9XHJcbn1cclxuXHJcbi5hcHAtZm9vdGVyIHtcclxuXHR6LWluZGV4OiAxO1xyXG5cdCYuYWN0aXZlIHtcclxuXHRcdEBleHRlbmQgLmxheW91dC10b3A7XHJcblx0fVxyXG59XHJcblxyXG4uYm9kaWVyLFxyXG4uYXBwLWJvZGllciB7XHJcblx0ei1pbmRleDogMTtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRvdmVyZmxvdy14OiBoaWRkZW47XHJcblx0Ji5hY3RpdmUge1xyXG5cdFx0QGV4dGVuZCAubGF5b3V0LXRvcDtcclxuXHR9XHJcbn1cclxuLnNpbmdsZS1wcm9kdWN0LFxyXG4ud29vY29tbWVyY2UtYWNjb3VudCB7XHJcblx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XHJcblx0XHQuYXBwLWZvb3RlciB7XHJcblx0XHRcdGRpdi5jb3B5cmlnaHQge1xyXG5cdFx0XHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCJAbWl4aW4gd3lzaXd5Zy1zdHlsZSB7XHJcblx0PiBoMixcclxuXHQ+IGgzLFxyXG5cdD4gaDQsXHJcblx0PiBoNSxcclxuXHQ+IGg2LFxyXG5cdD4gcCxcclxuXHQ+IGRsLFxyXG5cdD4gdWwsXHJcblx0PiBwcmUsXHJcblx0PiBvbCxcclxuXHQ+IGEge1xyXG5cdFx0QGFwcGx5IG14LTQ7XHJcblx0fVxyXG59XHJcblxyXG4ud3lzaXd5ZyxcclxuI3RpbnltY2Uge1xyXG5cdGlmcmFtZSB7XHJcblx0XHRtYXgtd2lkdGg6IDEwMCU7XHJcblx0XHRtYXgtaGVpZ2h0OiAxMDAlO1xyXG5cdH1cclxuXHQ+IGEge1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0fVxyXG5cdGltZyB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0fVxyXG5cdGZpZ3VyZSB7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdG1heC13aWR0aDogMTAwJTtcclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogNHJlbTtcclxuXHJcblx0XHRmaWdjYXB0aW9uIHtcclxuXHRcdFx0QGFwcGx5IHAtMSB0ZXh0LXhzO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ji5tZFxcOnd5c2l3eWcge1xyXG5cdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XHJcblx0XHRcdEBpbmNsdWRlIHd5c2l3eWctc3R5bGU7XHJcblx0XHR9XHJcblx0fVxyXG5cdCYubGdcXDp3eXNpd3lnIHtcclxuXHRcdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihsZykge1xyXG5cdFx0XHRAaW5jbHVkZSB3eXNpd3lnLXN0eWxlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQmLnhcXDp3eXNpd3lnIHtcclxuXHRcdEBpbmNsdWRlIHd5c2l3eWctc3R5bGU7XHJcblx0fVxyXG5cdGgyLFxyXG5cdGg0LFxyXG5cdGgzIHtcclxuXHRcdEBhcHBseSBmb250LWhlYWRpbmcgZm9udC1ibGFjayBtYi00IG10LTIgdGV4dC1sZztcclxuXHRcdH4gaDIsXHJcblx0XHR+IGgzLFxyXG5cdFx0fiBoNCB7XHJcblx0XHRcdEBhcHBseSBtdC0xMjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHAge1xyXG5cdFx0bGluZS1oZWlnaHQ6IDI7XHJcblxyXG5cdFx0QGFwcGx5IG1iLTQgdGV4dC1saWdodDtcclxuXHRcdC8vICYubWItMCB7XHJcblx0XHQvLyBcdC8vIEBhcHBseSBtYi0wO1xyXG5cdFx0Ly8gfVxyXG5cdH1cclxuXHJcblx0cCxcclxuXHRsaSB7XHJcblx0XHRhIHtcclxuXHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR1bCB7XHJcblx0XHRtYXJnaW46IGluaXRpYWw7XHJcblx0XHRwYWRkaW5nLWxlZnQ6IDBweDtcclxuXHJcblx0XHRsaSB7XHJcblx0XHRcdEBhcHBseSBtYi00IHRleHQtbGlnaHQ7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRvbCB7XHJcblx0XHRtYXJnaW46IGluaXRpYWw7XHJcblx0XHRtYXJnaW4tdG9wOiAxcmVtO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMnJlbTtcclxuXHRcdHBhZGRpbmctbGVmdDogMjJweDtcclxuXHRcdGxpc3Qtc3R5bGU6IGRlY2ltYWw7XHJcblxyXG5cdFx0bGkge1xyXG5cdFx0XHRAYXBwbHkgbWItNCB0ZXh0LWxpZ2h0O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0ZGwge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdHdpZHRoOiAxMDAlOyAvKiBzZXQgdGhlIGNvbnRhaW5lciB3aWR0aCAqL1xyXG5cdFx0ZmxleC13cmFwOiB3cmFwO1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHJcblx0XHRkdCB7XHJcblx0XHR9XHJcblxyXG5cdFx0ZGQge1xyXG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cdFx0XHRAYXBwbHkgbWItNCB0ZXh0LWxpZ2h0O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmFsaWduY2VudGVyLFxyXG5cdC5hbGlnbmxlZnQsXHJcblx0LmFsaWducmlnaHQge1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRwYWRkaW5nOiAwO1xyXG5cdH1cclxuXHJcblx0LmFsaWduY2VudGVyIHtcclxuXHRcdGZsb2F0OiBub25lO1xyXG5cdFx0bWFyZ2luOiAwLjVlbSBhdXRvIDFlbTtcclxuXHR9XHJcblxyXG5cdC5hbGlnbnJpZ2h0IHtcclxuXHRcdGZsb2F0OiByaWdodDtcclxuXHRcdG1hcmdpbjogMC41ZW0gMCAxZW0gMWVtO1xyXG5cdH1cclxuXHJcblx0LmFsaWdubGVmdCB7XHJcblx0XHRmbG9hdDogbGVmdDtcclxuXHRcdG1hcmdpbjogMC41ZW0gMWVtIDFlbSAwO1xyXG5cdH1cclxuXHJcblx0LndwLWNhcHRpb24ge1xyXG5cdFx0cGFkZGluZzogNXB4IDA7XHJcblx0XHQvLyBib3JkZXI6IDFweCBzb2xpZCAjNTU1O1xyXG5cdFx0Ly8gYmFja2dyb3VuZDogIzQ0NDtcclxuXHRcdC8vIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHR9XHJcblxyXG5cdC53cC1jYXB0aW9uIGltZyB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmU7XHJcblx0fVxyXG5cclxuXHQud3AtY2FwdGlvbiBwLndwLWNhcHRpb24tdGV4dCB7XHJcblx0XHRtYXJnaW46IDVweCAwIDA7XHJcblx0XHRwYWRkaW5nOiAwO1xyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0Zm9udC1zaXplOiA3NSU7XHJcblx0XHRmb250LXdlaWdodDogMTAwO1xyXG5cdFx0Zm9udC1zdHlsZTogaXRhbGljO1xyXG5cdFx0Y29sb3I6ICNkZGQ7XHJcblx0fVxyXG5cclxuXHQmLmJpZ2dlciB7XHJcblx0XHRoMixcclxuXHRcdGg0LFxyXG5cdFx0aDMge1xyXG5cdFx0XHRAYXBwbHkgZm9udC1oZWFkaW5nIGZvbnQtYmxhY2sgbWItNCBtdC0yIHRleHQtMnhsO1xyXG5cdFx0XHR+IGgyLFxyXG5cdFx0XHR+IGgzLFxyXG5cdFx0XHR+IGg0IHtcclxuXHRcdFx0XHRAYXBwbHkgbXQtMTY7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRwIHtcclxuXHRcdFx0XHJcblx0XHRcdEBhcHBseSB0ZXh0LXhsO1xyXG5cdFx0XHRsaW5lLWhlaWdodDogMjtcclxuXHRcdFx0Ly8gJi5tYi0wIHtcclxuXHRcdFx0Ly8gXHQvLyBAYXBwbHkgbWItMDtcclxuXHRcdFx0Ly8gfVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuYmxvY2txdW90ZSB7XHJcblx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdG1hcmdpbjogNDBweCBhdXRvO1xyXG5cdHBhZGRpbmc6IDYwcHggNCUgMDtcclxuXHRtYXgtd2lkdGg6IDEyMDBweDtcclxuXHRmb250LXNpemU6IDEuNGVtO1xyXG5cdGZvbnQtd2VpZ2h0OiA0MDA7XHJcblx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdGNvbG9yOiAjMDAwO1xyXG5cdGxpbmUtaGVpZ2h0OiAxLjVlbTtcclxufVxyXG4iLG51bGwsIkBpbXBvcnQgXCJicmVha3BvaW50cy5zY3NzXCI7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCBAaW1wb3J0IFwiZ3JhZGllbnRzLnNjc3NcIjtcblx0XHRcdFx0XHRcdFx0XHRcdFx0IEBpbXBvcnQgXCJ2YXJpYWJsZXMuc2Nzc1wiO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQgQGltcG9ydCBcImNvbG9ycy5zY3NzXCI7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCAkcHVibGljUGF0aCA6IC9hcHAvdGhlbWVzL2Z1ZGkvc3RhdGljO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQgXHJcbi5zdGVwcyB7XHJcblx0QGFwcGx5IGZsZXgganVzdGlmeS1iZXR3ZWVuIHJlbGF0aXZlO1xyXG5cclxuXHQmOmJlZm9yZSB7XHJcblx0XHRAYXBwbHkgYWJzb2x1dGUgdy1mdWxsIGJvcmRlci1iIGJvcmRlci1kYXNoZWQgYm9yZGVyLWxpZ2h0O1xyXG5cdFx0Y29udGVudDogXCJcIjtcclxuXHRcdHRvcDogY2FsYyg1MCUgLSAxNXB4KTtcclxuXHRcdGxlZnQ6IDA7XHJcblx0fVxyXG5cdC5zdGVwIHtcclxuXHRcdEBhcHBseSByZWxhdGl2ZSB0ZXh0LWNlbnRlcjtcclxuXHRcdC5pdGVtLWljb24ge1xyXG5cdFx0XHRAYXBwbHkgYmctd2hpdGUgcm91bmRlZC1mdWxsIGJvcmRlciBib3JkZXItZGFyayBoLTI0IHctMjQgZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXI7XHJcblx0XHR9XHJcblx0XHR+IC5zdGVwIHtcclxuXHRcdFx0Lml0ZW0taWNvbiB7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdC50aXRsZSB7XHJcblx0XHRcdEBhcHBseSBtdC00O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24obWQpIHtcclxuXHRcdEBhcHBseSBmbGV4LWNvbCBpdGVtcy1jZW50ZXI7XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdEBhcHBseSBhYnNvbHV0ZSBoLWZ1bGwgdy0wIGJvcmRlci1sIG1sLTEyO1xyXG5cclxuXHRcdFx0dG9wOiAwO1xyXG5cdFx0XHRsZWZ0OiAyMCU7XHJcblx0XHR9XHJcblx0XHQuc3RlcCB7XHJcblx0XHRcdEBhcHBseSBmbGV4IGl0ZW1zLWNlbnRlcjtcclxuXHRcdFx0fiAuc3RlcCB7XHJcblx0XHRcdFx0QGFwcGx5IG10LTQ7XHJcblx0XHRcdH1cclxuXHRcdFx0d2lkdGg6IDYwJTtcclxuXHRcdFx0LnRpdGxlIHtcclxuXHRcdFx0XHRAYXBwbHkgbWwtNDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCJAdGFpbHdpbmQgYmFzZTtcbkB0YWlsd2luZCBjb21wb25lbnRzO1xuQHRhaWx3aW5kIHV0aWxpdGllczsiLCIvLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxyXG4vL1xyXG4vLyBCcmVha3BvaW50cyBhcmUgZGVmaW5lZCBhcyBhIG1hcCBvZiAobmFtZTogbWluaW11bSB3aWR0aCksIG9yZGVyIGZyb20gc21hbGwgdG8gbGFyZ2U6XHJcbi8vXHJcbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweClcclxuLy9cclxuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxyXG5cclxuLy8gTmFtZSBvZiB0aGUgbmV4dCBicmVha3BvaW50LCBvciBudWxsIGZvciB0aGUgbGFzdCBicmVha3BvaW50LlxyXG4vL1xyXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXHJcbi8vICAgIG1kXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcclxuLy8gICAgbWRcclxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kIGxnIHhsKSlcclxuLy8gICAgbWRcclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dChcclxuICAkbmFtZSxcclxuICAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzLFxyXG4gICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpXHJcbikge1xyXG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xyXG4gIEByZXR1cm4gaWYoXHJcbiAgICAkbiAhPSBudWxsIGFuZCAkbiA8IGxlbmd0aCgkYnJlYWtwb2ludC1uYW1lcyksXHJcbiAgICBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksXHJcbiAgICBudWxsXHJcbiAgKTtcclxufVxyXG5cclxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxyXG4vL1xyXG4vLyAgICA+PiBicmVha3BvaW50LW1pbihzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcclxuLy8gICAgNTc2cHhcclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcclxuICBAcmV0dXJuIGlmKCRtaW4gIT0gMCwgJG1pbiwgbnVsbCk7XHJcbn1cclxuXHJcbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIGxhcmdlc3QgKGxhc3QpIGJyZWFrcG9pbnQuXHJcbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIGNhbGN1bGF0ZWQgYXMgdGhlIG1pbmltdW0gb2YgdGhlIG5leHQgb25lIGxlc3MgMC4wMnB4XHJcbi8vIHRvIHdvcmsgYXJvdW5kIHRoZSBsaW1pdGF0aW9ucyBvZiBgbWluLWAgYW5kIGBtYXgtYCBwcmVmaXhlcyBhbmQgdmlld3BvcnRzIHdpdGggZnJhY3Rpb25hbCB3aWR0aHMuXHJcbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcclxuLy8gVXNlcyAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxyXG4vLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODI2MVxyXG4vL1xyXG4vLyAgICA+PiBicmVha3BvaW50LW1heChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcclxuLy8gICAgNzY3Ljk4cHhcclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcclxuICBAcmV0dXJuIGlmKCRuZXh0LCBicmVha3BvaW50LW1pbigkbmV4dCwgJGJyZWFrcG9pbnRzKSAtIDAuMDIsIG51bGwpO1xyXG59XHJcblxyXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxyXG4vLyBVc2VmdWwgZm9yIG1ha2luZyByZXNwb25zaXZlIHV0aWxpdGllcy5cclxuLy9cclxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcclxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXHJcbi8vICAgIFwiLXNtXCJcclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaW5maXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsICcnLCAnLSN7JG5hbWV9Jyk7XHJcbn1cclxuXHJcbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cclxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCB3aWRlci5cclxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcclxuICBAaWYgJG1pbiB7XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuLy8gTWVkaWEgb2YgYXQgbW9zdCB0aGUgbWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIGxhcmdlc3QgYnJlYWtwb2ludC5cclxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cclxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG4gIEBpZiAkbWF4IHtcclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxyXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcclxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtYmV0d2VlbihcclxuICAkbG93ZXIsXHJcbiAgJHVwcGVyLFxyXG4gICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHNcclxuKSB7XHJcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xyXG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCR1cHBlciwgJGJyZWFrcG9pbnRzKTtcclxuXHJcbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cclxuLy8gTm8gbWluaW11bSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQsIGFuZCBubyBtYXhpbXVtIGZvciB0aGUgbGFyZ2VzdCBvbmUuXHJcbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cclxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG5cclxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50cykge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIixudWxsLCJAaW1wb3J0IFwiYnJlYWtwb2ludHMuc2Nzc1wiO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQgQGltcG9ydCBcImdyYWRpZW50cy5zY3NzXCI7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCBAaW1wb3J0IFwidmFyaWFibGVzLnNjc3NcIjtcblx0XHRcdFx0XHRcdFx0XHRcdFx0IEBpbXBvcnQgXCJjb2xvcnMuc2Nzc1wiO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQgJHB1YmxpY1BhdGggOiAvYXBwL3RoZW1lcy9mdWRpL3N0YXRpYztcblx0XHRcdFx0XHRcdFx0XHRcdFx0IFxyXG4ud3JhcCB7XHJcblx0QGFwcGx5IHB5LTIwO1xyXG5cdC53cmFwLWhlYWRlciB7XHJcblx0XHQudGl0bGVzIHtcclxuXHRcdFx0QGFwcGx5IG1iLTIwO1xyXG5cdFx0XHQvLyBAZXh0ZW5kIC50aXRsZS11bmRlcmxpbmU7XHJcblx0XHR9XHJcblx0XHQuZGF0ZSB7XHJcblx0XHRcdEBhcHBseSB0ZXh0LWNlbnRlciB0ZXh0LXhsIHRleHQtd2hpdGU7XHJcblx0XHR9XHJcblx0fVxyXG5cdC53cmFwLWFjdGlvbiB7XHJcblx0XHRAYXBwbHkgbXQtMjA7XHJcblx0fVxyXG5cdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihtZCkge1xyXG5cdFx0QGFwcGx5IHB5LTEwO1xyXG5cdFx0LndyYXAtaGVhZGVyIHtcclxuXHRcdFx0LnRpdGxlcyB7XHJcblx0XHRcdFx0QGFwcGx5IG1iLTEwO1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogMS44cmVtO1xyXG5cdFx0XHR9XHJcblx0XHRcdC5kYXRlIHtcclxuXHRcdFx0XHRAYXBwbHkgdGV4dC1iYXNlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQud3JhcC1hY3Rpb24ge1xyXG5cdFx0XHRAYXBwbHkgbXQtMTA7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIkB0YWlsd2luZCBiYXNlO1xuQHRhaWx3aW5kIGNvbXBvbmVudHM7XG5AdGFpbHdpbmQgdXRpbGl0aWVzOyIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXHJcbi8vXHJcbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcclxuLy9cclxuLy8gICAgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KVxyXG4vL1xyXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXHJcblxyXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXHJcbi8vXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSlcclxuLy8gICAgbWRcclxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICBtZFxyXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwpKVxyXG4vLyAgICBtZFxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KFxyXG4gICRuYW1lLFxyXG4gICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsXHJcbiAgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cylcclxuKSB7XHJcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XHJcbiAgQHJldHVybiBpZihcclxuICAgICRuICE9IG51bGwgYW5kICRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSxcclxuICAgIG50aCgkYnJlYWtwb2ludC1uYW1lcywgJG4gKyAxKSxcclxuICAgIG51bGxcclxuICApO1xyXG59XHJcblxyXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXHJcbi8vXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICA1NzZweFxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xyXG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcclxufVxyXG5cclxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgbGFyZ2VzdCAobGFzdCkgYnJlYWtwb2ludC5cclxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgY2FsY3VsYXRlZCBhcyB0aGUgbWluaW11bSBvZiB0aGUgbmV4dCBvbmUgbGVzcyAwLjAycHhcclxuLy8gdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cclxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxyXG4vLyBVc2VzIDAuMDJweCByYXRoZXIgdGhhbiAwLjAxcHggdG8gd29yayBhcm91bmQgYSBjdXJyZW50IHJvdW5kaW5nIGJ1ZyBpbiBTYWZhcmkuXHJcbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXHJcbi8vXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbWF4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICA3NjcuOThweFxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG4gIEByZXR1cm4gaWYoJG5leHQsIGJyZWFrcG9pbnQtbWluKCRuZXh0LCAkYnJlYWtwb2ludHMpIC0gMC4wMiwgbnVsbCk7XHJcbn1cclxuXHJcbi8vIFJldHVybnMgYSBibGFuayBzdHJpbmcgaWYgc21hbGxlc3QgYnJlYWtwb2ludCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG5hbWUgd2l0aCBhIGRhc2ggaW4gZnJvbnQuXHJcbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxyXG4vL1xyXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHhzLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxyXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcclxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcclxuLy8gICAgXCItc21cIlxyXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgJycsICctI3skbmFtZX0nKTtcclxufVxyXG5cclxuLy8gTWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LlxyXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxyXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG4gIEBpZiAkbWluIHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxyXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxyXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XHJcbiAgQGlmICRtYXgge1xyXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtYXgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAY29udGVudDtcclxuICB9XHJcbn1cclxuXHJcbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXHJcbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBiZXR3ZWVuIHRoZSBtaW4gYW5kIG1heCBicmVha3BvaW50c1xyXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKFxyXG4gICRsb3dlcixcclxuICAkdXBwZXIsXHJcbiAgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50c1xyXG4pIHtcclxuICAkbWluOiBicmVha3BvaW50LW1pbigkbG93ZXIsICRicmVha3BvaW50cyk7XHJcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xyXG5cclxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCR1cHBlciwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy8gTWVkaWEgYmV0d2VlbiB0aGUgYnJlYWtwb2ludCdzIG1pbmltdW0gYW5kIG1heGltdW0gd2lkdGhzLlxyXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cclxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxyXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1vbmx5KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XHJcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XHJcblxyXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xyXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLG51bGwsIkBpbXBvcnQgXCJicmVha3BvaW50cy5zY3NzXCI7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCBAaW1wb3J0IFwiZ3JhZGllbnRzLnNjc3NcIjtcblx0XHRcdFx0XHRcdFx0XHRcdFx0IEBpbXBvcnQgXCJ2YXJpYWJsZXMuc2Nzc1wiO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQgQGltcG9ydCBcImNvbG9ycy5zY3NzXCI7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCAkcHVibGljUGF0aCA6IC9hcHAvdGhlbWVzL2Z1ZGkvc3RhdGljO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQgXHJcbi5iYW5uZXIge1xyXG5cdGhlaWdodDogNDAwcHg7XHJcbn1cclxuIixudWxsLCJAaW1wb3J0IFwiYnJlYWtwb2ludHMuc2Nzc1wiO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQgQGltcG9ydCBcImdyYWRpZW50cy5zY3NzXCI7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCBAaW1wb3J0IFwidmFyaWFibGVzLnNjc3NcIjtcblx0XHRcdFx0XHRcdFx0XHRcdFx0IEBpbXBvcnQgXCJjb2xvcnMuc2Nzc1wiO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQgJHB1YmxpY1BhdGggOiAvYXBwL3RoZW1lcy9mdWRpL3N0YXRpYztcblx0XHRcdFx0XHRcdFx0XHRcdFx0IFxyXG4ubGlzdCB7XHJcblx0Lml0ZW0ge1xyXG5cdFx0QGFwcGx5IGJsb2NrIHB5LTI7XHJcblx0XHQuZGF0ZSB7XHJcblx0XHRcdGZsZXg6IDAgMCAxMDBweDtcclxuXHRcdH1cclxuXHR9XHJcblx0LmFjdGlvbnMge1xyXG5cdFx0QGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChsZykge1xyXG5cdFx0XHQuYnRuIHtcclxuXHRcdFx0XHR+IC5idG4ge1xyXG5cdFx0XHRcdFx0QGFwcGx5IG1sLTE7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24obWQpIHtcclxuXHRcdFx0LmJ0biB7XHJcblx0XHRcdFx0fiAuYnRuIHtcclxuXHRcdFx0XHRcdEBhcHBseSBtdC0xO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCJAdGFpbHdpbmQgYmFzZTtcbkB0YWlsd2luZCBjb21wb25lbnRzO1xuQHRhaWx3aW5kIHV0aWxpdGllczsiLCIvLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxyXG4vL1xyXG4vLyBCcmVha3BvaW50cyBhcmUgZGVmaW5lZCBhcyBhIG1hcCBvZiAobmFtZTogbWluaW11bSB3aWR0aCksIG9yZGVyIGZyb20gc21hbGwgdG8gbGFyZ2U6XHJcbi8vXHJcbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweClcclxuLy9cclxuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxyXG5cclxuLy8gTmFtZSBvZiB0aGUgbmV4dCBicmVha3BvaW50LCBvciBudWxsIGZvciB0aGUgbGFzdCBicmVha3BvaW50LlxyXG4vL1xyXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXHJcbi8vICAgIG1kXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcclxuLy8gICAgbWRcclxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kIGxnIHhsKSlcclxuLy8gICAgbWRcclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dChcclxuICAkbmFtZSxcclxuICAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzLFxyXG4gICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpXHJcbikge1xyXG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xyXG4gIEByZXR1cm4gaWYoXHJcbiAgICAkbiAhPSBudWxsIGFuZCAkbiA8IGxlbmd0aCgkYnJlYWtwb2ludC1uYW1lcyksXHJcbiAgICBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksXHJcbiAgICBudWxsXHJcbiAgKTtcclxufVxyXG5cclxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxyXG4vL1xyXG4vLyAgICA+PiBicmVha3BvaW50LW1pbihzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcclxuLy8gICAgNTc2cHhcclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcclxuICBAcmV0dXJuIGlmKCRtaW4gIT0gMCwgJG1pbiwgbnVsbCk7XHJcbn1cclxuXHJcbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIGxhcmdlc3QgKGxhc3QpIGJyZWFrcG9pbnQuXHJcbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIGNhbGN1bGF0ZWQgYXMgdGhlIG1pbmltdW0gb2YgdGhlIG5leHQgb25lIGxlc3MgMC4wMnB4XHJcbi8vIHRvIHdvcmsgYXJvdW5kIHRoZSBsaW1pdGF0aW9ucyBvZiBgbWluLWAgYW5kIGBtYXgtYCBwcmVmaXhlcyBhbmQgdmlld3BvcnRzIHdpdGggZnJhY3Rpb25hbCB3aWR0aHMuXHJcbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcclxuLy8gVXNlcyAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxyXG4vLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODI2MVxyXG4vL1xyXG4vLyAgICA+PiBicmVha3BvaW50LW1heChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcclxuLy8gICAgNzY3Ljk4cHhcclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcclxuICBAcmV0dXJuIGlmKCRuZXh0LCBicmVha3BvaW50LW1pbigkbmV4dCwgJGJyZWFrcG9pbnRzKSAtIDAuMDIsIG51bGwpO1xyXG59XHJcblxyXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxyXG4vLyBVc2VmdWwgZm9yIG1ha2luZyByZXNwb25zaXZlIHV0aWxpdGllcy5cclxuLy9cclxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcclxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXHJcbi8vICAgIFwiLXNtXCJcclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaW5maXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsICcnLCAnLSN7JG5hbWV9Jyk7XHJcbn1cclxuXHJcbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cclxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCB3aWRlci5cclxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcclxuICBAaWYgJG1pbiB7XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuLy8gTWVkaWEgb2YgYXQgbW9zdCB0aGUgbWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIGxhcmdlc3QgYnJlYWtwb2ludC5cclxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cclxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG4gIEBpZiAkbWF4IHtcclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxyXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcclxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtYmV0d2VlbihcclxuICAkbG93ZXIsXHJcbiAgJHVwcGVyLFxyXG4gICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHNcclxuKSB7XHJcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xyXG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCR1cHBlciwgJGJyZWFrcG9pbnRzKTtcclxuXHJcbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cclxuLy8gTm8gbWluaW11bSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQsIGFuZCBubyBtYXhpbXVtIGZvciB0aGUgbGFyZ2VzdCBvbmUuXHJcbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cclxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG5cclxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50cykge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIixudWxsLCJAaW1wb3J0IFwiYnJlYWtwb2ludHMuc2Nzc1wiO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQgQGltcG9ydCBcImdyYWRpZW50cy5zY3NzXCI7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCBAaW1wb3J0IFwidmFyaWFibGVzLnNjc3NcIjtcblx0XHRcdFx0XHRcdFx0XHRcdFx0IEBpbXBvcnQgXCJjb2xvcnMuc2Nzc1wiO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQgJHB1YmxpY1BhdGggOiAvYXBwL3RoZW1lcy9mdWRpL3N0YXRpYztcblx0XHRcdFx0XHRcdFx0XHRcdFx0IFxyXG4uY2Fyb3Uge1xyXG5cdG1pbi1oZWlnaHQ6IDQwMHB4O1xyXG5cdC8vIHotaW5kZXg6IDE7XHJcblx0Ji5vd2wtY2Fyb3VzZWwge1xyXG5cdFx0Ly8gei1pbmRleDogLTE7XHJcblx0fVxyXG5cdCYubG9hZGluZyB7XHJcblx0XHRvcGFjaXR5OiAwO1xyXG5cdH1cclxuXHQmLmRhcmsge1xyXG5cdFx0Lm93bC1kb3RzIHtcclxuXHRcdFx0PiBidXR0b24ub3dsLWRvdCB7XHJcblx0XHRcdFx0PiBzcGFuLFxyXG5cdFx0XHRcdCY6OmFmdGVyIHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCYubGlnaHQge1xyXG5cdFx0Lm93bC1kb3RzIHtcclxuXHRcdFx0PiBidXR0b24ub3dsLWRvdCB7XHJcblx0XHRcdFx0PiBzcGFuLFxyXG5cdFx0XHRcdCY6OmFmdGVyIHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWRhcmspO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly/mqKPlvI9cclxuXHQmLi0tYmFzaWMge1xyXG5cdFx0Lm93bC1pdGVtIHtcclxuXHRcdFx0Ly8gQGltcG9ydCBcIi4vaXRlbS9iYXNpYy9pdGVtLnNjc3NcIjtcclxuXHRcdH1cclxuXHJcblx0XHQub3dsLW5hdiB7XHJcblx0XHRcdEBhcHBseSBhYnNvbHV0ZSBtbC0xMCBtYi0xMCBib3R0b20tMCBsZWZ0LTA7XHJcblx0XHR9XHJcblxyXG5cdFx0Lm93bC1kb3RzIHtcclxuXHRcdFx0QGFwcGx5IGFic29sdXRlIG1sLTEwIG1iLTIgbWItMTAgYm90dG9tLTAgbGVmdC0wO1xyXG5cclxuXHRcdFx0Ly8gZGlzcGxheTogbm9uZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIGhlaWdodOaxuuWumlxyXG5cdCYuXFwtLWZpeGVkIHtcclxuXHRcdGhlaWdodDogNjAwcHg7XHJcblxyXG5cdFx0Lm93bC1zdGFnZS1vdXRlcixcclxuXHRcdC5vd2wtc3RhZ2UsXHJcblx0XHQub3dsLWl0ZW0sXHJcblx0XHQuaXRlbSB7XHJcblx0XHRcdGhlaWdodDogMTAwJTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCYuXFwtLWZ1bGwge1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cclxuXHRcdC5vd2wtc3RhZ2Utb3V0ZXIsXHJcblx0XHQub3dsLXN0YWdlLFxyXG5cdFx0Lm93bC1pdGVtLFxyXG5cdFx0Lml0ZW0ge1xyXG5cdFx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHR9XHJcblx0fVxyXG5cdCYuXFwtLXNjcmVlbiB7XHJcblx0XHRoZWlnaHQ6IDEwMHZoO1xyXG5cclxuXHRcdC5vd2wtc3RhZ2Utb3V0ZXIsXHJcblx0XHQub3dsLXN0YWdlLFxyXG5cdFx0Lm93bC1pdGVtLFxyXG5cdFx0Lml0ZW0ge1xyXG5cdFx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmLlxcLS1hdXRvIHtcclxuXHRcdG1pbi1oZWlnaHQ6IDEwMHB4O1xyXG5cclxuXHRcdC5vd2wtc3RhZ2Utb3V0ZXIsXHJcblx0XHQuaXRlbSB7XHJcblx0XHRcdC8vIG1pbi1oZWlnaHQ6IDMwMHB4O1xyXG5cclxuXHRcdFx0LmJnIHtcclxuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdFx0cGljdHVyZSB7XHJcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGltZyB7XHJcblx0XHRcdFx0XHRvYmplY3QtZml0OiBjb250YWluO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly9hbmltYXRpb25cclxuXHQmLlxcLS1zbGlkZS1sZWZ0IHtcclxuXHRcdC5pdGVtIHtcclxuXHRcdFx0LnRpdGxlLFxyXG5cdFx0XHQuc3VidGl0bGUsXHJcblx0XHRcdC5saW5rIHtcclxuXHRcdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Lm93bC1pdGVtIHtcclxuXHRcdFx0Ji5hY3RpdmUge1xyXG5cdFx0XHRcdC5pdGVtIHtcclxuXHRcdFx0XHRcdC50aXRsZSB7XHJcblx0XHRcdFx0XHRcdGFuaW1hdGlvbjogc2xpZGVsZWZ0IDFzIG5vcm1hbDtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQuc3VidGl0bGUge1xyXG5cdFx0XHRcdFx0XHRhbmltYXRpb246IHNsaWRlbGVmdCAycyBub3JtYWw7XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0LmJ0bi1saW5rIHtcclxuXHRcdFx0XHRcdFx0YW5pbWF0aW9uOiBzbGlkZWxlZnQgMS40cyBub3JtYWw7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0QGtleWZyYW1lcyBzbGlkZWxlZnQge1xyXG5cdFx0XHRmcm9tIHtcclxuXHRcdFx0XHRvcGFjaXR5OiAwO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1MCUpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIkB0YWlsd2luZCBiYXNlO1xuQHRhaWx3aW5kIGNvbXBvbmVudHM7XG5AdGFpbHdpbmQgdXRpbGl0aWVzOyIsIi8qcHVyZ2Vjc3Mgc3RhcnQgaWdub3JlXG4gKi9cblxuLyoqXG4gKiBPd2wgQ2Fyb3VzZWwgdjIuMy40XG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE4IERhdmlkIERldXRzY2hcbiAqIExpY2Vuc2VkIHVuZGVyOiBTRUUgTElDRU5TRSBJTiBodHRwczovL2dpdGh1Yi5jb20vT3dsQ2Fyb3VzZWwyL093bENhcm91c2VsMi9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuLypcbiAqICBPd2wgQ2Fyb3VzZWwgLSBDb3JlXG4gKi9cblxuLm93bC1jYXJvdXNlbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvKiBwb3NpdGlvbiByZWxhdGl2ZSBhbmQgei1pbmRleCBmaXggd2Via2l0IHJlbmRlcmluZyBmb250cyBpc3N1ZSAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG59XG5cbi5vd2wtY2Fyb3VzZWwgLm93bC1zdGFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLVk7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICAtbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLyogZml4IGZpcmVmb3ggYW5pbWF0aW9uIGdsaXRjaCAqL1xufVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtc3RhZ2U6YWZ0ZXIge1xuICBjb250ZW50OiBcIi5cIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNsZWFyOiBib3RoO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBoZWlnaHQ6IDA7XG59XG5cbi5vd2wtY2Fyb3VzZWwgLm93bC1zdGFnZS1vdXRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLyogZml4IGZvciBmbGFzaGluZyBiYWNrZ3JvdW5kICovXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDBweCwgMHB4KTtcbn1cblxuLm93bC1jYXJvdXNlbCAub3dsLXdyYXBwZXIsXG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIHtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtbXMtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG5cbi5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIGZsb2F0OiBsZWZ0O1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xufVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtaXRlbSBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5vd2wtY2Fyb3VzZWwgLm93bC1uYXYuZGlzYWJsZWQsXG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1kb3RzLmRpc2FibGVkIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm93bC1jYXJvdXNlbCAub3dsLW5hdiAub3dsLXByZXYsXG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1uYXYgLm93bC1uZXh0LFxuICAub3dsLWNhcm91c2VsIC5vd2wtZG90IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtbmF2IGJ1dHRvbi5vd2wtcHJldixcbiAgLm93bC1jYXJvdXNlbCAub3dsLW5hdiBidXR0b24ub3dsLW5leHQsXG4gIC5vd2wtY2Fyb3VzZWwgYnV0dG9uLm93bC1kb3Qge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIGZvbnQ6IGluaGVyaXQ7XG59XG5cbi5vd2wtY2Fyb3VzZWwub3dsLWxvYWRlZCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ub3dsLWNhcm91c2VsLm93bC1sb2FkaW5nIHtcbiAgb3BhY2l0eTogMDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5vd2wtY2Fyb3VzZWwub3dsLWhpZGRlbiB7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5vd2wtY2Fyb3VzZWwub3dsLXJlZnJlc2ggLm93bC1pdGVtIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4ub3dsLWNhcm91c2VsLm93bC1kcmFnIC5vd2wtaXRlbSB7XG4gIC1tcy10b3VjaC1hY3Rpb246IHBhbi15O1xuICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ub3dsLWNhcm91c2VsLm93bC1ncmFiIHtcbiAgY3Vyc29yOiBtb3ZlO1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcbiAgY3Vyc29yOiBncmFiO1xufVxuXG4ub3dsLWNhcm91c2VsLm93bC1ydGwge1xuICBkaXJlY3Rpb246IHJ0bDtcbn1cblxuLm93bC1jYXJvdXNlbC5vd2wtcnRsIC5vd2wtaXRlbSB7XG4gIGZsb2F0OiByaWdodDtcbn1cblxuLyogTm8gSnMgKi9cblxuLm5vLWpzIC5vd2wtY2Fyb3VzZWwge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqICBPd2wgQ2Fyb3VzZWwgLSBBbmltYXRlIFBsdWdpblxuICovXG5cbi5vd2wtY2Fyb3VzZWwgLmFuaW1hdGVkIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDEwMDBtcztcbiAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDEwMDBtcztcbiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuICAgICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG59XG5cbi5vd2wtY2Fyb3VzZWwgLm93bC1hbmltYXRlZC1pbiB7XG4gIHotaW5kZXg6IDA7XG59XG5cbi5vd2wtY2Fyb3VzZWwgLm93bC1hbmltYXRlZC1vdXQge1xuICB6LWluZGV4OiAxO1xufVxuXG4ub3dsLWNhcm91c2VsIC5mYWRlT3V0IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dDtcbiAgICAgICAgICBhbmltYXRpb24tbmFtZTogZmFkZU91dDtcbn1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi8qXG4gKiBcdE93bCBDYXJvdXNlbCAtIEF1dG8gSGVpZ2h0IFBsdWdpblxuICovXG5cbi5vd2wtaGVpZ2h0IHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBoZWlnaHQgNTAwbXMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb246IGhlaWdodCA1MDBtcyBlYXNlLWluLW91dDtcbn1cblxuLypcbiAqIFx0T3dsIENhcm91c2VsIC0gTGF6eSBMb2FkIFBsdWdpblxuICovXG5cbi5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIHtcbiAgLyoqXG5cdFx0XHRUaGlzIGlzIGludHJvZHVjZWQgZHVlIHRvIGEgYnVnIGluIElFMTEgd2hlcmUgbGF6eSBsb2FkaW5nIGNvbWJpbmVkIHdpdGggYXV0b2hlaWdodCBwbHVnaW4gY2F1c2VzIGEgd3Jvbmdcblx0XHRcdGNhbGN1bGF0aW9uIG9mIHRoZSBoZWlnaHQgb2YgdGhlIG93bC1pdGVtIHRoYXQgYnJlYWtzIHBhZ2UgbGF5b3V0c1xuXHRcdCAqL1xufVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtaXRlbSAub3dsLWxhenkge1xuICBvcGFjaXR5OiAwO1xuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgZWFzZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBlYXNlO1xufVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtaXRlbSAub3dsLWxhenlbc3JjXj1cIlwiXSwgLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0gLm93bC1sYXp5Om5vdChbc3JjXSkge1xuICBtYXgtaGVpZ2h0OiAwO1xufVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtaXRlbSBpbWcub3dsLWxhenkge1xuICAtd2Via2l0LXRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gICAgICAgICAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbn1cblxuLypcbiAqIFx0T3dsIENhcm91c2VsIC0gVmlkZW8gUGx1Z2luXG4gKi9cblxuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogIzAwMDtcbn1cblxuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXBsYXktaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiA4MHB4O1xuICB3aWR0aDogODBweDtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC00MHB4O1xuICBtYXJnaW4tdG9wOiAtNDBweDtcbiAgYmFja2dyb3VuZDogdXJsKFwib3dsLnZpZGVvLnBsYXkucG5nXCIpIG5vLXJlcGVhdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB6LWluZGV4OiAxO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAxMDBtcyBlYXNlO1xuICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAxMDBtcyBlYXNlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTAwbXMgZWFzZTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDEwMG1zIGVhc2UsIC13ZWJraXQtdHJhbnNmb3JtIDEwMG1zIGVhc2U7XG59XG5cbi5vd2wtY2Fyb3VzZWwgLm93bC12aWRlby1wbGF5LWljb246aG92ZXIge1xuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4zLCAxLjMpO1xuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zLCAxLjMpO1xufVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tcGxheWluZyAub3dsLXZpZGVvLXRuLFxuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXBsYXlpbmcgLm93bC12aWRlby1wbGF5LWljb24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tdG4ge1xuICBvcGFjaXR5OiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGVhc2U7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgZWFzZTtcbn1cblxuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLWZyYW1lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vKnB1cmdlY3NzIGVuZCBpZ25vcmVcbiAqL1xuIiwiLypwdXJnZWNzcyBzdGFydCBpZ25vcmVcbiAqL1xuXG4vKipcbiAqIE93bCBDYXJvdXNlbCB2Mi4zLjRcbiAqIENvcHlyaWdodCAyMDEzLTIwMTggRGF2aWQgRGV1dHNjaFxuICogTGljZW5zZWQgdW5kZXI6IFNFRSBMSUNFTlNFIElOIGh0dHBzOi8vZ2l0aHViLmNvbS9Pd2xDYXJvdXNlbDIvT3dsQ2Fyb3VzZWwyL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG4vKlxuICogXHREZWZhdWx0IHRoZW1lIC0gT3dsIENhcm91c2VsIENTUyBGaWxlXG4gKi9cblxuLm93bC10aGVtZSAub3dsLW5hdiB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLm93bC10aGVtZSAub3dsLW5hdiBbY2xhc3MqPSdvd2wtJ10ge1xuICBjb2xvcjogI0ZGRjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBtYXJnaW46IDVweDtcbiAgcGFkZGluZzogNHB4IDdweDtcbiAgYmFja2dyb3VuZDogI0Q2RDZENjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cblxuLm93bC10aGVtZSAub3dsLW5hdiBbY2xhc3MqPSdvd2wtJ106aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjODY5NzkxO1xuICBjb2xvcjogI0ZGRjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ub3dsLXRoZW1lIC5vd2wtbmF2IC5kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4ub3dsLXRoZW1lIC5vd2wtbmF2LmRpc2FibGVkICsgLm93bC1kb3RzIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLm93bC10aGVtZSAub3dsLWRvdHMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5vd2wtdGhlbWUgLm93bC1kb3RzIC5vd2wtZG90IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB6b29tOiAxO1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5vd2wtdGhlbWUgLm93bC1kb3RzIC5vd2wtZG90IHNwYW4ge1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBtYXJnaW46IDVweCA3cHg7XG4gIGJhY2tncm91bmQ6ICNENkQ2RDY7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGU7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2U7XG4gIGJvcmRlci1yYWRpdXM6IDMwcHg7XG59XG5cbi5vd2wtdGhlbWUgLm93bC1kb3RzIC5vd2wtZG90LmFjdGl2ZSBzcGFuLCAub3dsLXRoZW1lIC5vd2wtZG90cyAub3dsLWRvdDpob3ZlciBzcGFuIHtcbiAgYmFja2dyb3VuZDogIzg2OTc5MTtcbn1cblxuLypwdXJnZWNzcyBlbmQgaWdub3JlXG4gKi9cbiIsbnVsbCwiQGltcG9ydCBcImJyZWFrcG9pbnRzLnNjc3NcIjtcblx0XHRcdFx0XHRcdFx0XHRcdFx0IEBpbXBvcnQgXCJncmFkaWVudHMuc2Nzc1wiO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQgQGltcG9ydCBcInZhcmlhYmxlcy5zY3NzXCI7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCBAaW1wb3J0IFwiY29sb3JzLnNjc3NcIjtcblx0XHRcdFx0XHRcdFx0XHRcdFx0ICRwdWJsaWNQYXRoIDogL2FwcC90aGVtZXMvZnVkaS9zdGF0aWM7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCBcclxuLmFwcC1iYXIge1xyXG5cdC5tZW51IHtcclxuXHRcdC5pdGVtIHtcclxuXHRcdFx0fiAuaXRlbSB7XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0QGFwcGx5IGJnLWxpZ2h0O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCJAdGFpbHdpbmQgYmFzZTtcbkB0YWlsd2luZCBjb21wb25lbnRzO1xuQHRhaWx3aW5kIHV0aWxpdGllczsiLG51bGwsIkBpbXBvcnQgXCJicmVha3BvaW50cy5zY3NzXCI7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCBAaW1wb3J0IFwiZ3JhZGllbnRzLnNjc3NcIjtcblx0XHRcdFx0XHRcdFx0XHRcdFx0IEBpbXBvcnQgXCJ2YXJpYWJsZXMuc2Nzc1wiO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQgQGltcG9ydCBcImNvbG9ycy5zY3NzXCI7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCAkcHVibGljUGF0aCA6IC9hcHAvdGhlbWVzL2Z1ZGkvc3RhdGljO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQgXHJcbi5zaGFyZSB7XHJcblx0YSB7XHJcblx0XHRAYXBwbHkgbXgtMjtcclxuXHR9XHJcbn1cclxuIiwiQHRhaWx3aW5kIGJhc2U7XG5AdGFpbHdpbmQgY29tcG9uZW50cztcbkB0YWlsd2luZCB1dGlsaXRpZXM7IixudWxsLCJAaW1wb3J0IFwiYnJlYWtwb2ludHMuc2Nzc1wiO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQgQGltcG9ydCBcImdyYWRpZW50cy5zY3NzXCI7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCBAaW1wb3J0IFwidmFyaWFibGVzLnNjc3NcIjtcblx0XHRcdFx0XHRcdFx0XHRcdFx0IEBpbXBvcnQgXCJjb2xvcnMuc2Nzc1wiO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQgJHB1YmxpY1BhdGggOiAvYXBwL3RoZW1lcy9mdWRpL3N0YXRpYztcblx0XHRcdFx0XHRcdFx0XHRcdFx0IFxyXG5cclxuLnJpYmJvbntcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAvLyB6LWluZGV4OiAyO1xyXG4gIC8vIGJvcmRlcjogMXB4IHNvbGlkIHJlZDtcclxuICAmLmZsaXB7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKC0xLDEpO1xyXG4gIH1cclxuXHJcbiAgLm1hc2t7XHJcbiAgICAvLyBib3JkZXI6IDFweCBzb2xpZCAjMDAwO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgd2lsbC1jaGFuZ2U6IHdpZHRoLHRyYW5zZm9ybTtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBzdmd7XHJcbiAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiLyogcHVyZ2Vjc3Mgc3RhcnQgaWdub3JlICovXG5cbi8qIFNsaWRlciAqL1xuXG4uc2xpY2stc2xpZGVyXG57XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XG4gIHRvdWNoLWFjdGlvbjogcGFuLXk7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5zbGljay1saXN0XG57XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLnNsaWNrLWxpc3Q6Zm9jdXNcbntcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLnNsaWNrLWxpc3QuZHJhZ2dpbmdcbntcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjdXJzb3I6IGhhbmQ7XG59XG5cbi5zbGljay1zbGlkZXIgLnNsaWNrLXRyYWNrLFxuLnNsaWNrLXNsaWRlciAuc2xpY2stbGlzdFxue1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG59XG5cbi5zbGljay10cmFja1xue1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5zbGljay10cmFjazpiZWZvcmUsXG4uc2xpY2stdHJhY2s6YWZ0ZXJcbntcbiAgZGlzcGxheTogdGFibGU7XG4gIGNvbnRlbnQ6ICcnO1xufVxuXG4uc2xpY2stdHJhY2s6YWZ0ZXJcbntcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5zbGljay1sb2FkaW5nIC5zbGljay10cmFja1xue1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5zbGljay1zbGlkZVxue1xuICBkaXNwbGF5OiBub25lO1xuICBmbG9hdDogbGVmdDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxcHg7XG59XG5cbltkaXI9J3J0bCddIC5zbGljay1zbGlkZVxue1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5zbGljay1zbGlkZSBpbWdcbntcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5zbGljay1zbGlkZS5zbGljay1sb2FkaW5nIGltZ1xue1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uc2xpY2stc2xpZGUuZHJhZ2dpbmcgaW1nXG57XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uc2xpY2staW5pdGlhbGl6ZWQgLnNsaWNrLXNsaWRlXG57XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uc2xpY2stbG9hZGluZyAuc2xpY2stc2xpZGVcbntcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uc2xpY2stdmVydGljYWwgLnNsaWNrLXNsaWRlXG57XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4uc2xpY2stYXJyb3cuc2xpY2staGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogcHVyZ2Vjc3MgZW5kIGlnbm9yZSAqL1xuIiwiLyogcHVyZ2Vjc3Mgc3RhcnQgaWdub3JlICovXG5cbkBjaGFyc2V0ICdVVEYtOCc7XG5cbi8qIFNsaWRlciAqL1xuXG4uc2xpY2stbG9hZGluZyAuc2xpY2stbGlzdFxue1xuICBiYWNrZ3JvdW5kOiAjZmZmIHVybCgnLi9hamF4LWxvYWRlci5naWYnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcbn1cblxuLyogSWNvbnMgKi9cblxuQGZvbnQtZmFjZVxue1xuICBmb250LWZhbWlseTogJ3NsaWNrJztcblxuICBmb250LXdlaWdodDogbm9ybWFsO1xuXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcblxuICBzcmM6IHVybCgnLi9mb250cy9zbGljay5lb3QnKTtcblxuICBzcmM6IHVybCgnLi9mb250cy9zbGljay5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCB1cmwoJy4vZm9udHMvc2xpY2sud29mZicpIGZvcm1hdCgnd29mZicpLCB1cmwoJy4vZm9udHMvc2xpY2sudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJy4vZm9udHMvc2xpY2suc3ZnI3NsaWNrJykgZm9ybWF0KCdzdmcnKTtcbn1cblxuLyogQXJyb3dzICovXG5cbi5zbGljay1wcmV2LFxuLnNsaWNrLW5leHRcbntcbiAgZm9udC1zaXplOiAwO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDA7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLnNsaWNrLXByZXY6aG92ZXIsXG4uc2xpY2stcHJldjpmb2N1cyxcbi5zbGljay1uZXh0OmhvdmVyLFxuLnNsaWNrLW5leHQ6Zm9jdXNcbntcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLnNsaWNrLXByZXY6aG92ZXI6YmVmb3JlLFxuLnNsaWNrLXByZXY6Zm9jdXM6YmVmb3JlLFxuLnNsaWNrLW5leHQ6aG92ZXI6YmVmb3JlLFxuLnNsaWNrLW5leHQ6Zm9jdXM6YmVmb3JlXG57XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5zbGljay1wcmV2LnNsaWNrLWRpc2FibGVkOmJlZm9yZSxcbi5zbGljay1uZXh0LnNsaWNrLWRpc2FibGVkOmJlZm9yZVxue1xuICBvcGFjaXR5OiAuMjU7XG59XG5cbi5zbGljay1wcmV2OmJlZm9yZSxcbi5zbGljay1uZXh0OmJlZm9yZVxue1xuICBmb250LWZhbWlseTogJ3NsaWNrJztcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgb3BhY2l0eTogLjc1O1xuICBjb2xvcjogd2hpdGU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4uc2xpY2stcHJldlxue1xuICBsZWZ0OiAtMjVweDtcbn1cblxuW2Rpcj0ncnRsJ10gLnNsaWNrLXByZXZcbntcbiAgcmlnaHQ6IC0yNXB4O1xuICBsZWZ0OiBhdXRvO1xufVxuXG4uc2xpY2stcHJldjpiZWZvcmVcbntcbiAgY29udGVudDogJ+KGkCc7XG59XG5cbltkaXI9J3J0bCddIC5zbGljay1wcmV2OmJlZm9yZVxue1xuICBjb250ZW50OiAn4oaSJztcbn1cblxuLnNsaWNrLW5leHRcbntcbiAgcmlnaHQ6IC0yNXB4O1xufVxuXG5bZGlyPSdydGwnXSAuc2xpY2stbmV4dFxue1xuICByaWdodDogYXV0bztcbiAgbGVmdDogLTI1cHg7XG59XG5cbi5zbGljay1uZXh0OmJlZm9yZVxue1xuICBjb250ZW50OiAn4oaSJztcbn1cblxuW2Rpcj0ncnRsJ10gLnNsaWNrLW5leHQ6YmVmb3JlXG57XG4gIGNvbnRlbnQ6ICfihpAnO1xufVxuXG4vKiBEb3RzICovXG5cbi5zbGljay1kb3R0ZWQuc2xpY2stc2xpZGVyXG57XG4gIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbi5zbGljay1kb3RzXG57XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAtMjVweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnNsaWNrLWRvdHMgbGlcbntcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIG1hcmdpbjogMCA1cHg7XG4gIHBhZGRpbmc6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnNsaWNrLWRvdHMgbGkgYnV0dG9uXG57XG4gIGZvbnQtc2l6ZTogMDtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nOiA1cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4uc2xpY2stZG90cyBsaSBidXR0b246aG92ZXIsXG4uc2xpY2stZG90cyBsaSBidXR0b246Zm9jdXNcbntcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmhvdmVyOmJlZm9yZSxcbi5zbGljay1kb3RzIGxpIGJ1dHRvbjpmb2N1czpiZWZvcmVcbntcbiAgb3BhY2l0eTogMTtcbn1cblxuLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmJlZm9yZVxue1xuICBmb250LWZhbWlseTogJ3NsaWNrJztcbiAgZm9udC1zaXplOiA2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgY29udGVudDogJ+KAoic7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgb3BhY2l0eTogLjI1O1xuICBjb2xvcjogYmxhY2s7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4uc2xpY2stZG90cyBsaS5zbGljay1hY3RpdmUgYnV0dG9uOmJlZm9yZVxue1xuICBvcGFjaXR5OiAuNzU7XG4gIGNvbG9yOiBibGFjaztcbn1cblxuLyogcHVyZ2Vjc3MgZW5kIGlnbm9yZSAqL1xuIixudWxsLCJAaW1wb3J0IFwiYnJlYWtwb2ludHMuc2Nzc1wiO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQgQGltcG9ydCBcImdyYWRpZW50cy5zY3NzXCI7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCBAaW1wb3J0IFwidmFyaWFibGVzLnNjc3NcIjtcblx0XHRcdFx0XHRcdFx0XHRcdFx0IEBpbXBvcnQgXCJjb2xvcnMuc2Nzc1wiO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQgJHB1YmxpY1BhdGggOiAvYXBwL3RoZW1lcy9mdWRpL3N0YXRpYztcblx0XHRcdFx0XHRcdFx0XHRcdFx0IFxyXG4ubG9hZGVyIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgLy8gb3BhY2l0eTogMDtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcclxuICB6LWluZGV4OiAxMDkwO1xyXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMXM7XHJcblxyXG4gICYuLS1zY3JlZW4ge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgaGVpZ2h0OiAxMDB2aDtcclxuICB9XHJcblxyXG4gICYuYWN0aXZlIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBvcGFjaXR5OiAwLjk1O1xyXG4gIH1cclxufVxyXG5cclxuJGxkcy1jb2xvcjogIzMzMyAhZGVmYXVsdDtcclxuXHJcbi5sZHMtZGVmYXVsdCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICB3aWR0aDogNjRweDtcclxuICBoZWlnaHQ6IDY0cHg7XHJcblxyXG4gIGRpdiB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB3aWR0aDogNXB4O1xyXG4gICAgaGVpZ2h0OiA1cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiAkbGRzLWNvbG9yO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgYW5pbWF0aW9uOiBsZHMtZGVmYXVsdCAxLjJzIGxpbmVhciBpbmZpbml0ZTtcclxuXHJcbiAgICAmOm50aC1jaGlsZCgxKSB7XHJcbiAgICAgIHRvcDogMjlweDtcclxuICAgICAgbGVmdDogNTNweDtcclxuICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwcztcclxuICAgIH1cclxuXHJcbiAgICAmOm50aC1jaGlsZCgyKSB7XHJcbiAgICAgIHRvcDogMThweDtcclxuICAgICAgbGVmdDogNTBweDtcclxuICAgICAgYW5pbWF0aW9uLWRlbGF5OiAtMC4xcztcclxuICAgIH1cclxuXHJcbiAgICAmOm50aC1jaGlsZCgzKSB7XHJcbiAgICAgIHRvcDogOXB4O1xyXG4gICAgICBsZWZ0OiA0MXB4O1xyXG4gICAgICBhbmltYXRpb24tZGVsYXk6IC0wLjJzO1xyXG4gICAgfVxyXG5cclxuICAgICY6bnRoLWNoaWxkKDQpIHtcclxuICAgICAgdG9wOiA2cHg7XHJcbiAgICAgIGxlZnQ6IDI5cHg7XHJcbiAgICAgIGFuaW1hdGlvbi1kZWxheTogLTAuM3M7XHJcbiAgICB9XHJcblxyXG4gICAgJjpudGgtY2hpbGQoNSkge1xyXG4gICAgICB0b3A6IDlweDtcclxuICAgICAgbGVmdDogMThweDtcclxuICAgICAgYW5pbWF0aW9uLWRlbGF5OiAtMC40cztcclxuICAgIH1cclxuXHJcbiAgICAmOm50aC1jaGlsZCg2KSB7XHJcbiAgICAgIHRvcDogMThweDtcclxuICAgICAgbGVmdDogOXB4O1xyXG4gICAgICBhbmltYXRpb24tZGVsYXk6IC0wLjVzO1xyXG4gICAgfVxyXG5cclxuICAgICY6bnRoLWNoaWxkKDcpIHtcclxuICAgICAgdG9wOiAyOXB4O1xyXG4gICAgICBsZWZ0OiA2cHg7XHJcbiAgICAgIGFuaW1hdGlvbi1kZWxheTogLTAuNnM7XHJcbiAgICB9XHJcblxyXG4gICAgJjpudGgtY2hpbGQoOCkge1xyXG4gICAgICB0b3A6IDQxcHg7XHJcbiAgICAgIGxlZnQ6IDlweDtcclxuICAgICAgYW5pbWF0aW9uLWRlbGF5OiAtMC43cztcclxuICAgIH1cclxuXHJcbiAgICAmOm50aC1jaGlsZCg5KSB7XHJcbiAgICAgIHRvcDogNTBweDtcclxuICAgICAgbGVmdDogMThweDtcclxuICAgICAgYW5pbWF0aW9uLWRlbGF5OiAtMC44cztcclxuICAgIH1cclxuXHJcbiAgICAmOm50aC1jaGlsZCgxMCkge1xyXG4gICAgICB0b3A6IDUzcHg7XHJcbiAgICAgIGxlZnQ6IDI5cHg7XHJcbiAgICAgIGFuaW1hdGlvbi1kZWxheTogLTAuOXM7XHJcbiAgICB9XHJcblxyXG4gICAgJjpudGgtY2hpbGQoMTEpIHtcclxuICAgICAgdG9wOiA1MHB4O1xyXG4gICAgICBsZWZ0OiA0MXB4O1xyXG4gICAgICBhbmltYXRpb24tZGVsYXk6IC0xcztcclxuICAgIH1cclxuXHJcbiAgICAmOm50aC1jaGlsZCgxMikge1xyXG4gICAgICB0b3A6IDQxcHg7XHJcbiAgICAgIGxlZnQ6IDUwcHg7XHJcbiAgICAgIGFuaW1hdGlvbi1kZWxheTogLTEuMXM7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIGxkcy1kZWZhdWx0IHtcclxuICAwJSxcclxuICAyMCUsXHJcbiAgODAlLFxyXG4gIDEwMCUge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcclxuICB9XHJcblxyXG4gIDUwJSB7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XHJcbiAgfVxyXG59XHJcbiIsbnVsbCwiQGltcG9ydCBcImJyZWFrcG9pbnRzLnNjc3NcIjtcblx0XHRcdFx0XHRcdFx0XHRcdFx0IEBpbXBvcnQgXCJncmFkaWVudHMuc2Nzc1wiO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQgQGltcG9ydCBcInZhcmlhYmxlcy5zY3NzXCI7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCBAaW1wb3J0IFwiY29sb3JzLnNjc3NcIjtcblx0XHRcdFx0XHRcdFx0XHRcdFx0ICRwdWJsaWNQYXRoIDogL2FwcC90aGVtZXMvZnVkaS9zdGF0aWM7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCBcclxuLm92ZXJsYXkge1xyXG5cdHBvc2l0aW9uOiBmaXhlZDtcclxuXHR0b3A6IDA7XHJcblx0bGVmdDogMDtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRoZWlnaHQ6IDEwMCU7XHJcblx0YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xyXG5cdHotaW5kZXg6IDEwMjk7XHJcblx0ZGlzcGxheTogbm9uZTtcclxuXHQmLmFjdGl2ZSB7XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBkcmF3ZXItc3R5bGUge1xyXG5cdHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xyXG5cdC8vIHotaW5kZXg6IDEwNDA7XHJcblx0d2lkdGg6IGNhbGMoMTAwJSAtIDgwcHgpO1xyXG5cdG1heC13aWR0aDogMTAwJTtcclxuXHRiYWNrZ3JvdW5kOiAjZmZmO1xyXG5cdHotaW5kZXg6IDEwNDA7XHJcblx0dHJhbnNpdGlvbjogMC40cyB0cmFuc2Zvcm07XHJcblxyXG5cdCYudy1mdWxsIHtcclxuXHRcdHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcblx0fVxyXG5cdCYuYWN0aXZlIHtcclxuXHRcdHotaW5kZXg6IDEwMzA7XHJcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgdHJhbnNsYXRlWSgwKSAhaW1wb3J0YW50O1xyXG5cdFx0PiBhLmNsb3NlIHtcclxuXHRcdFx0QGFwcGx5IGJsb2NrO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ji4tLWJvdHRvbSB7XHJcblx0XHRib3R0b206IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcclxuXHR9XHJcblxyXG5cdCYuLS1sZWZ0IHtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdGxlZnQ6IDA7XHJcblxyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0bWF4LXdpZHRoOiA2MDBweDtcclxuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XHJcblx0fVxyXG5cclxuXHQmLi0tcmlnaHQge1xyXG5cdFx0Ym90dG9tOiAwO1xyXG5cdFx0cmlnaHQ6IDA7XHJcblxyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0bWF4LXdpZHRoOiA2MDBweDtcclxuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcclxuXHR9XHJcbn1cclxuXHJcbi8vIGxpIOiqnuazleizh+aWmeW6q++8jOWll+eUqOWcqHVsIGxpXHJcbi5kcmF3ZXIge1xyXG5cdD4gYS5jbG9zZSB7XHJcblx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0QGFwcGx5IGZpeGVkIHotNTA7XHJcblx0XHR0b3A6IDFyZW07XHJcblx0XHRyaWdodDogMXJlbTtcclxuXHR9XHJcblx0Ly8gb3ZlcmZsb3cteDogaGlkZGVuO1xyXG5cdEBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRncmlkLWJyZWFrcG9pbnRzKSB7XHJcblx0XHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJGJyZWFrcG9pbnQpIHtcclxuXHRcdFx0Ji4jeyRicmVha3BvaW50fVxcOmRyYXdlciB7XHJcblx0XHRcdFx0QGluY2x1ZGUgZHJhd2VyLXN0eWxlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmLnhcXDpkcmF3ZXIge1xyXG5cdFx0QGluY2x1ZGUgZHJhd2VyLXN0eWxlO1xyXG5cdH1cclxufVxyXG4iLCJAdGFpbHdpbmQgYmFzZTtcbkB0YWlsd2luZCBjb21wb25lbnRzO1xuQHRhaWx3aW5kIHV0aWxpdGllczsiLCIvLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxyXG4vL1xyXG4vLyBCcmVha3BvaW50cyBhcmUgZGVmaW5lZCBhcyBhIG1hcCBvZiAobmFtZTogbWluaW11bSB3aWR0aCksIG9yZGVyIGZyb20gc21hbGwgdG8gbGFyZ2U6XHJcbi8vXHJcbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweClcclxuLy9cclxuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxyXG5cclxuLy8gTmFtZSBvZiB0aGUgbmV4dCBicmVha3BvaW50LCBvciBudWxsIGZvciB0aGUgbGFzdCBicmVha3BvaW50LlxyXG4vL1xyXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXHJcbi8vICAgIG1kXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcclxuLy8gICAgbWRcclxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kIGxnIHhsKSlcclxuLy8gICAgbWRcclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dChcclxuICAkbmFtZSxcclxuICAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzLFxyXG4gICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpXHJcbikge1xyXG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xyXG4gIEByZXR1cm4gaWYoXHJcbiAgICAkbiAhPSBudWxsIGFuZCAkbiA8IGxlbmd0aCgkYnJlYWtwb2ludC1uYW1lcyksXHJcbiAgICBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksXHJcbiAgICBudWxsXHJcbiAgKTtcclxufVxyXG5cclxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxyXG4vL1xyXG4vLyAgICA+PiBicmVha3BvaW50LW1pbihzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcclxuLy8gICAgNTc2cHhcclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcclxuICBAcmV0dXJuIGlmKCRtaW4gIT0gMCwgJG1pbiwgbnVsbCk7XHJcbn1cclxuXHJcbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIGxhcmdlc3QgKGxhc3QpIGJyZWFrcG9pbnQuXHJcbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIGNhbGN1bGF0ZWQgYXMgdGhlIG1pbmltdW0gb2YgdGhlIG5leHQgb25lIGxlc3MgMC4wMnB4XHJcbi8vIHRvIHdvcmsgYXJvdW5kIHRoZSBsaW1pdGF0aW9ucyBvZiBgbWluLWAgYW5kIGBtYXgtYCBwcmVmaXhlcyBhbmQgdmlld3BvcnRzIHdpdGggZnJhY3Rpb25hbCB3aWR0aHMuXHJcbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcclxuLy8gVXNlcyAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxyXG4vLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODI2MVxyXG4vL1xyXG4vLyAgICA+PiBicmVha3BvaW50LW1heChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcclxuLy8gICAgNzY3Ljk4cHhcclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XHJcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcclxuICBAcmV0dXJuIGlmKCRuZXh0LCBicmVha3BvaW50LW1pbigkbmV4dCwgJGJyZWFrcG9pbnRzKSAtIDAuMDIsIG51bGwpO1xyXG59XHJcblxyXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxyXG4vLyBVc2VmdWwgZm9yIG1ha2luZyByZXNwb25zaXZlIHV0aWxpdGllcy5cclxuLy9cclxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcclxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXHJcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXHJcbi8vICAgIFwiLXNtXCJcclxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaW5maXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsICcnLCAnLSN7JG5hbWV9Jyk7XHJcbn1cclxuXHJcbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cclxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCB3aWRlci5cclxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcclxuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcclxuICBAaWYgJG1pbiB7XHJcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIHtcclxuICAgIEBjb250ZW50O1xyXG4gIH1cclxufVxyXG5cclxuLy8gTWVkaWEgb2YgYXQgbW9zdCB0aGUgbWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIGxhcmdlc3QgYnJlYWtwb2ludC5cclxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cclxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG4gIEBpZiAkbWF4IHtcclxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxyXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcclxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtYmV0d2VlbihcclxuICAkbG93ZXIsXHJcbiAgJHVwcGVyLFxyXG4gICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHNcclxuKSB7XHJcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xyXG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCR1cHBlciwgJGJyZWFrcG9pbnRzKTtcclxuXHJcbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcclxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cclxuLy8gTm8gbWluaW11bSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQsIGFuZCBubyBtYXhpbXVtIGZvciB0aGUgbGFyZ2VzdCBvbmUuXHJcbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cclxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xyXG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xyXG5cclxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xyXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcclxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XHJcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50cykge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIixudWxsLCJAaW1wb3J0IFwiYnJlYWtwb2ludHMuc2Nzc1wiO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQgQGltcG9ydCBcImdyYWRpZW50cy5zY3NzXCI7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCBAaW1wb3J0IFwidmFyaWFibGVzLnNjc3NcIjtcblx0XHRcdFx0XHRcdFx0XHRcdFx0IEBpbXBvcnQgXCJjb2xvcnMuc2Nzc1wiO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHQgJHB1YmxpY1BhdGggOiAvYXBwL3RoZW1lcy9mdWRpL3N0YXRpYztcblx0XHRcdFx0XHRcdFx0XHRcdFx0IFxyXG4uZHJvcGRvd24ge1xuXHRAYXBwbHkgcmVsYXRpdmU7XG5cdCYubGVmdCB7XG5cdH1cblx0Ji5jZW50ZXIge1xuXHR9XG5cdCYucmlnaHQge1xuXHR9XG5cblx0aS5kb3duLFxuXHRpLnVwIHtcblx0XHRtYXJnaW4tbGVmdDogMC4ycmVtO1xuXHRcdCY6YmVmb3JlIHtcblx0XHRcdGZvbnQtc2l6ZTogMC42cmVtO1xuXHRcdH1cblx0fVxuXHRpLmRvd24ge1xuXHRcdEBhcHBseSBpbmxpbmUtYmxvY2s7XG5cdH1cblx0aS51cCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdD4gdWwge1xuXHRcdHRyYW5zaXRpb246IGFsbCAwLjNzO1xuXHRcdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0XHR0cmFuc2l0aW9uOiBhbGwgMC4zcztcblx0XHRvcGFjaXR5OiAwO1xuXHRcdEBhcHBseSBhYnNvbHV0ZSBweS00ICBweC00ICBsZWZ0LTAgbWluLXctZnVsbCBiZy13aGl0ZSBib3JkZXItbGlnaHRlc3QgYm9yZGVyO1xuXHRcdHRvcDogMTAwJTtcblx0XHR6LWluZGV4OiAyMDtcblx0XHRsaSB7XG5cdFx0XHRhIHtcblx0XHRcdFx0QGFwcGx5IGJsb2NrIHB5LTEgcHgtMTtcblx0XHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQmLm9wZW4ge1xuXHRcdGkudXAge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdH1cblx0XHRpLmRvd24ge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cblx0XHQ+IHVsIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0dmlzaWJpbGl0eTogdmlzaWJsZTtcblx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRAYXBwbHkgZmxleCBmbGV4LWNvbDtcblx0XHR9XG5cdH1cbn1cbiIsIkB0YWlsd2luZCBiYXNlO1xuQHRhaWx3aW5kIGNvbXBvbmVudHM7XG5AdGFpbHdpbmQgdXRpbGl0aWVzOyJdLCJzb3VyY2VSb290IjoiIn0=*/