/*!
 * Datepicker for Bootstrap v1.10.0 (https://github.com/uxsolutions/bootstrap-datepicker)
 *
 * Licensed under the Apache License v2.0 (https://www.apache.org/licenses/LICENSE-2.0)
 */

.datepicker {
  padding: 4px;
  border-radius: 4px;
  direction: ltr;
}
.datepicker-inline {
  width: 220px;
}
.datepicker-rtl {
  direction: rtl;
}
.datepicker-rtl.dropdown-menu {
  left: auto;
}
.datepicker-rtl table tr td span {
  float: right;
}
.datepicker-dropdown {
  top: 0;
  left: 0;
}
.datepicker-dropdown:before {
  content: '';
  display: inline-block;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
  border-bottom: 7px solid #999;
  border-top: 0;
  border-bottom-color: rgba(0, 0, 0, 0.2);
  position: absolute;
}
.datepicker-dropdown:after {
  content: '';
  display: inline-block;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-bottom: 6px solid #fff;
  border-top: 0;
  position: absolute;
}
.datepicker-dropdown.datepicker-orient-left:before {
  left: 6px;
}
.datepicker-dropdown.datepicker-orient-left:after {
  left: 7px;
}
.datepicker-dropdown.datepicker-orient-right:before {
  right: 6px;
}
.datepicker-dropdown.datepicker-orient-right:after {
  right: 7px;
}
.datepicker-dropdown.datepicker-orient-bottom:before {
  top: -7px;
}
.datepicker-dropdown.datepicker-orient-bottom:after {
  top: -6px;
}
.datepicker-dropdown.datepicker-orient-top:before {
  bottom: -7px;
  border-bottom: 0;
  border-top: 7px solid #999;
}
.datepicker-dropdown.datepicker-orient-top:after {
  bottom: -6px;
  border-bottom: 0;
  border-top: 6px solid #fff;
}
.datepicker table {
  margin: 0;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
}
.datepicker td,
.datepicker th {
  text-align: center;
  width: 20px;
  height: 20px;
  border-radius: 4px;
  border: none;
}
.table-striped .datepicker table tr td,
.table-striped .datepicker table tr th {
  background-color: transparent;
}
.datepicker table tr td.day:hover,
.datepicker table tr td.day.focused {
  background: #eee;
  cursor: pointer;
}
.datepicker table tr td.old,
.datepicker table tr td.new {
  color: #999;
}
.datepicker table tr td.disabled,
.datepicker table tr td.disabled:hover {
  background: none;
  color: #999;
  cursor: default;
}
.datepicker table tr td.highlighted {
  background: #d9edf7;
  border-radius: 0;
}
.datepicker table tr td.today,
.datepicker table tr td.today:hover,
.datepicker table tr td.today.disabled,
.datepicker table tr td.today.disabled:hover {
  background-color: #fde19a;
  background-image: linear-gradient(to bottom, #fdd49a, #fdf59a);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);
  border-color: #fdf59a #fdf59a #fbed50;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
  color: #000;
}
.datepicker table tr td.today:hover,
.datepicker table tr td.today:hover:hover,
.datepicker table tr td.today.disabled:hover,
.datepicker table tr td.today.disabled:hover:hover,
.datepicker table tr td.today:active,
.datepicker table tr td.today:hover:active,
.datepicker table tr td.today.disabled:active,
.datepicker table tr td.today.disabled:hover:active,
.datepicker table tr td.today.active,
.datepicker table tr td.today:hover.active,
.datepicker table tr td.today.disabled.active,
.datepicker table tr td.today.disabled:hover.active,
.datepicker table tr td.today.disabled,
.datepicker table tr td.today:hover.disabled,
.datepicker table tr td.today.disabled.disabled,
.datepicker table tr td.today.disabled:hover.disabled,
.datepicker table tr td.today[disabled],
.datepicker table tr td.today:hover[disabled],
.datepicker table tr td.today.disabled[disabled],
.datepicker table tr td.today.disabled:hover[disabled] {
  background-color: #fdf59a;
}
.datepicker table tr td.today:active,
.datepicker table tr td.today:hover:active,
.datepicker table tr td.today.disabled:active,
.datepicker table tr td.today.disabled:hover:active,
.datepicker table tr td.today.active,
.datepicker table tr td.today:hover.active,
.datepicker table tr td.today.disabled.active,
.datepicker table tr td.today.disabled:hover.active {
  background-color: #fbf069 \9;
}
.datepicker table tr td.today:hover:hover {
  color: #000;
}
.datepicker table tr td.today.active:hover {
  color: #fff;
}
.datepicker table tr td.range,
.datepicker table tr td.range:hover,
.datepicker table tr td.range.disabled,
.datepicker table tr td.range.disabled:hover {
  background: #eee;
  border-radius: 0;
}
.datepicker table tr td.range.today,
.datepicker table tr td.range.today:hover,
.datepicker table tr td.range.today.disabled,
.datepicker table tr td.range.today.disabled:hover {
  background-color: #f3d17a;
  background-image: linear-gradient(to bottom, #f3c17a, #f3e97a);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);
  border-color: #f3e97a #f3e97a #edde34;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
  border-radius: 0;
}
.datepicker table tr td.range.today:hover,
.datepicker table tr td.range.today:hover:hover,
.datepicker table tr td.range.today.disabled:hover,
.datepicker table tr td.range.today.disabled:hover:hover,
.datepicker table tr td.range.today:active,
.datepicker table tr td.range.today:hover:active,
.datepicker table tr td.range.today.disabled:active,
.datepicker table tr td.range.today.disabled:hover:active,
.datepicker table tr td.range.today.active,
.datepicker table tr td.range.today:hover.active,
.datepicker table tr td.range.today.disabled.active,
.datepicker table tr td.range.today.disabled:hover.active,
.datepicker table tr td.range.today.disabled,
.datepicker table tr td.range.today:hover.disabled,
.datepicker table tr td.range.today.disabled.disabled,
.datepicker table tr td.range.today.disabled:hover.disabled,
.datepicker table tr td.range.today[disabled],
.datepicker table tr td.range.today:hover[disabled],
.datepicker table tr td.range.today.disabled[disabled],
.datepicker table tr td.range.today.disabled:hover[disabled] {
  background-color: #f3e97a;
}
.datepicker table tr td.range.today:active,
.datepicker table tr td.range.today:hover:active,
.datepicker table tr td.range.today.disabled:active,
.datepicker table tr td.range.today.disabled:hover:active,
.datepicker table tr td.range.today.active,
.datepicker table tr td.range.today:hover.active,
.datepicker table tr td.range.today.disabled.active,
.datepicker table tr td.range.today.disabled:hover.active {
  background-color: #efe24b \9;
}
.datepicker table tr td.selected,
.datepicker table tr td.selected:hover,
.datepicker table tr td.selected.disabled,
.datepicker table tr td.selected.disabled:hover {
  background-color: #9e9e9e;
  background-image: linear-gradient(to bottom, #b3b3b3, #808080);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);
  border-color: #808080 #808080 #595959;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
  color: #fff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.datepicker table tr td.selected:hover,
.datepicker table tr td.selected:hover:hover,
.datepicker table tr td.selected.disabled:hover,
.datepicker table tr td.selected.disabled:hover:hover,
.datepicker table tr td.selected:active,
.datepicker table tr td.selected:hover:active,
.datepicker table tr td.selected.disabled:active,
.datepicker table tr td.selected.disabled:hover:active,
.datepicker table tr td.selected.active,
.datepicker table tr td.selected:hover.active,
.datepicker table tr td.selected.disabled.active,
.datepicker table tr td.selected.disabled:hover.active,
.datepicker table tr td.selected.disabled,
.datepicker table tr td.selected:hover.disabled,
.datepicker table tr td.selected.disabled.disabled,
.datepicker table tr td.selected.disabled:hover.disabled,
.datepicker table tr td.selected[disabled],
.datepicker table tr td.selected:hover[disabled],
.datepicker table tr td.selected.disabled[disabled],
.datepicker table tr td.selected.disabled:hover[disabled] {
  background-color: #808080;
}
.datepicker table tr td.selected:active,
.datepicker table tr td.selected:hover:active,
.datepicker table tr td.selected.disabled:active,
.datepicker table tr td.selected.disabled:hover:active,
.datepicker table tr td.selected.active,
.datepicker table tr td.selected:hover.active,
.datepicker table tr td.selected.disabled.active,
.datepicker table tr td.selected.disabled:hover.active {
  background-color: #666666 \9;
}
.datepicker table tr td.active,
.datepicker table tr td.active:hover,
.datepicker table tr td.active.disabled,
.datepicker table tr td.active.disabled:hover {
  background-color: #006dcc;
  background-image: linear-gradient(to bottom, #08c, #0044cc);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);
  border-color: #0044cc #0044cc #002a80;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
  color: #fff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.datepicker table tr td.active:hover,
.datepicker table tr td.active:hover:hover,
.datepicker table tr td.active.disabled:hover,
.datepicker table tr td.active.disabled:hover:hover,
.datepicker table tr td.active:active,
.datepicker table tr td.active:hover:active,
.datepicker table tr td.active.disabled:active,
.datepicker table tr td.active.disabled:hover:active,
.datepicker table tr td.active.active,
.datepicker table tr td.active:hover.active,
.datepicker table tr td.active.disabled.active,
.datepicker table tr td.active.disabled:hover.active,
.datepicker table tr td.active.disabled,
.datepicker table tr td.active:hover.disabled,
.datepicker table tr td.active.disabled.disabled,
.datepicker table tr td.active.disabled:hover.disabled,
.datepicker table tr td.active[disabled],
.datepicker table tr td.active:hover[disabled],
.datepicker table tr td.active.disabled[disabled],
.datepicker table tr td.active.disabled:hover[disabled] {
  background-color: #0044cc;
}
.datepicker table tr td.active:active,
.datepicker table tr td.active:hover:active,
.datepicker table tr td.active.disabled:active,
.datepicker table tr td.active.disabled:hover:active,
.datepicker table tr td.active.active,
.datepicker table tr td.active:hover.active,
.datepicker table tr td.active.disabled.active,
.datepicker table tr td.active.disabled:hover.active {
  background-color: #003399 \9;
}
.datepicker table tr td span {
  display: block;
  width: 23%;
  height: 54px;
  line-height: 54px;
  float: left;
  margin: 1%;
  cursor: pointer;
  border-radius: 4px;
}
.datepicker table tr td span:hover,
.datepicker table tr td span.focused {
  background: #eee;
}
.datepicker table tr td span.disabled,
.datepicker table tr td span.disabled:hover {
  background: none;
  color: #999;
  cursor: default;
}
.datepicker table tr td span.active,
.datepicker table tr td span.active:hover,
.datepicker table tr td span.active.disabled,
.datepicker table tr td span.active.disabled:hover {
  background-color: #006dcc;
  background-image: linear-gradient(to bottom, #08c, #0044cc);
  background-repeat: repeat-x;
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);
  border-color: #0044cc #0044cc #002a80;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
  color: #fff;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.datepicker table tr td span.active:hover,
.datepicker table tr td span.active:hover:hover,
.datepicker table tr td span.active.disabled:hover,
.datepicker table tr td span.active.disabled:hover:hover,
.datepicker table tr td span.active:active,
.datepicker table tr td span.active:hover:active,
.datepicker table tr td span.active.disabled:active,
.datepicker table tr td span.active.disabled:hover:active,
.datepicker table tr td span.active.active,
.datepicker table tr td span.active:hover.active,
.datepicker table tr td span.active.disabled.active,
.datepicker table tr td span.active.disabled:hover.active,
.datepicker table tr td span.active.disabled,
.datepicker table tr td span.active:hover.disabled,
.datepicker table tr td span.active.disabled.disabled,
.datepicker table tr td span.active.disabled:hover.disabled,
.datepicker table tr td span.active[disabled],
.datepicker table tr td span.active:hover[disabled],
.datepicker table tr td span.active.disabled[disabled],
.datepicker table tr td span.active.disabled:hover[disabled] {
  background-color: #0044cc;
}
.datepicker table tr td span.active:active,
.datepicker table tr td span.active:hover:active,
.datepicker table tr td span.active.disabled:active,
.datepicker table tr td span.active.disabled:hover:active,
.datepicker table tr td span.active.active,
.datepicker table tr td span.active:hover.active,
.datepicker table tr td span.active.disabled.active,
.datepicker table tr td span.active.disabled:hover.active {
  background-color: #003399 \9;
}
.datepicker table tr td span.old,
.datepicker table tr td span.new {
  color: #999;
}
.datepicker .datepicker-switch {
  width: 145px;
}
.datepicker .datepicker-switch,
.datepicker .prev,
.datepicker .next,
.datepicker tfoot tr th {
  cursor: pointer;
}
.datepicker .datepicker-switch:hover,
.datepicker .prev:hover,
.datepicker .next:hover,
.datepicker tfoot tr th:hover {
  background: #eee;
}
.datepicker .prev.disabled,
.datepicker .next.disabled {
  visibility: hidden;
}
.datepicker .cw {
  font-size: 10px;
  width: 12px;
  padding: 0 2px 0 5px;
  vertical-align: middle;
}
.input-append.date .add-on,
.input-prepend.date .add-on {
  cursor: pointer;
}
.input-append.date .add-on i,
.input-prepend.date .add-on i {
  margin-top: 3px;
}
.input-daterange input {
  text-align: center;
}
.input-daterange input:first-child {
  border-radius: 3px 0 0 3px;
}
.input-daterange input:last-child {
  border-radius: 0 3px 3px 0;
}
.input-daterange .add-on {
  display: inline-block;
  width: auto;
  min-width: 16px;
  height: 20px;
  padding: 4px 5px;
  font-weight: normal;
  line-height: 20px;
  text-align: center;
  text-shadow: 0 1px 0 #fff;
  vertical-align: middle;
  background-color: #eee;
  border: 1px solid #ccc;
  margin-left: -5px;
  margin-right: -5px;
}
.datepicker.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  float: left;
  display: none;
  min-width: 160px;
  list-style: none;
  background-color: #fff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, 0.2);
  border-radius: 5px;
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  -webkit-background-clip: padding-box;
  -moz-background-clip: padding;
  background-clip: padding-box;
  *border-right-width: 2px;
  *border-bottom-width: 2px;
  color: #333333;
  font-size: 13px;
  line-height: 20px;
}
.datepicker.dropdown-menu th,
.datepicker.datepicker-inline th,
.datepicker.dropdown-menu td,
.datepicker.datepicker-inline td {
  padding: 4px 5px;
}
/*# sourceMappingURL=bootstrap-datepicker.standalone.css.map */
/*! Flickity v2.3.0
https://flickity.metafizzy.co
---------------------------------------------- */

.flickity-enabled {
  position: relative;
}

.flickity-enabled:focus { outline: none; }

.flickity-viewport {
  overflow: hidden;
  position: relative;
  height: 100%;
}

.flickity-slider {
  position: absolute;
  width: 100%;
  height: 100%;
}

/* draggable */

.flickity-enabled.is-draggable {
  -webkit-tap-highlight-color: transparent;
  -webkit-user-select: none;
          user-select: none;
}

.flickity-enabled.is-draggable .flickity-viewport {
  cursor: move;
  cursor: grab;
}

.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down {
  cursor: grabbing;
}

/* ---- flickity-button ---- */

.flickity-button {
  position: absolute;
  background: hsla(0, 0%, 100%, 0.75);
  border: none;
  color: #333;
}

.flickity-button:hover {
  background: white;
  cursor: pointer;
}

.flickity-button:focus {
  outline: none;
  box-shadow: 0 0 0 5px #19F;
}

.flickity-button:active {
  opacity: 0.6;
}

.flickity-button:disabled {
  opacity: 0.3;
  cursor: auto;
  /* prevent disabled button from capturing pointer up event. #716 */
  pointer-events: none;
}

.flickity-button-icon {
  fill: currentColor;
}

/* ---- previous/next buttons ---- */

.flickity-prev-next-button {
  top: 50%;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  /* vertically center */
  transform: translateY(-50%);
}

.flickity-prev-next-button.previous { left: 10px; }
.flickity-prev-next-button.next { right: 10px; }
/* right to left */
.flickity-rtl .flickity-prev-next-button.previous {
  left: auto;
  right: 10px;
}
.flickity-rtl .flickity-prev-next-button.next {
  right: auto;
  left: 10px;
}

.flickity-prev-next-button .flickity-button-icon {
  position: absolute;
  left: 20%;
  top: 20%;
  width: 60%;
  height: 60%;
}

/* ---- page dots ---- */

.flickity-page-dots {
  position: absolute;
  width: 100%;
  bottom: -25px;
  padding: 0;
  margin: 0;
  list-style: none;
  text-align: center;
  line-height: 1;
}

.flickity-rtl .flickity-page-dots { direction: rtl; }

.flickity-page-dots .dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 0 8px;
  background: #333;
  border-radius: 50%;
  opacity: 0.25;
  cursor: pointer;
}

.flickity-page-dots .dot.is-selected {
  opacity: 1;
}

/*
 * The MIT License
 * Copyright (c) 2012 Matias Meno <m@tias.me>
 */
@keyframes passing-through {
  0% {
    opacity: 0;
    transform: translateY(40px); }
  30%, 70% {
    opacity: 1;
    transform: translateY(0px); }
  100% {
    opacity: 0;
    transform: translateY(-40px); } }
@keyframes slide-in {
  0% {
    opacity: 0;
    transform: translateY(40px); }
  30% {
    opacity: 1;
    transform: translateY(0px); } }
@keyframes pulse {
  0% {
    transform: scale(1); }
  10% {
    transform: scale(1.1); }
  20% {
    transform: scale(1); } }
.dropzone, .dropzone * {
  box-sizing: border-box; }

.dropzone {
  min-height: 150px;
  border: 2px solid rgba(0, 0, 0, 0.3);
  background: white;
  padding: 20px 20px; }
  .dropzone.dz-clickable {
    cursor: pointer; }
    .dropzone.dz-clickable * {
      cursor: default; }
    .dropzone.dz-clickable .dz-message, .dropzone.dz-clickable .dz-message * {
      cursor: pointer; }
  .dropzone.dz-started .dz-message {
    display: none; }
  .dropzone.dz-drag-hover {
    border-style: solid; }
    .dropzone.dz-drag-hover .dz-message {
      opacity: 0.5; }
  .dropzone .dz-message {
    text-align: center;
    margin: 2em 0; }
  .dropzone .dz-preview {
    position: relative;
    display: inline-block;
    vertical-align: top;
    margin: 16px;
    min-height: 100px; }
    .dropzone .dz-preview:hover {
      z-index: 1000; }
      .dropzone .dz-preview:hover .dz-details {
        opacity: 1; }
    .dropzone .dz-preview.dz-file-preview .dz-image {
      border-radius: 20px;
      background: #999;
      background: linear-gradient(to bottom, #eee, #ddd); }
    .dropzone .dz-preview.dz-file-preview .dz-details {
      opacity: 1; }
    .dropzone .dz-preview.dz-image-preview {
      background: white; }
      .dropzone .dz-preview.dz-image-preview .dz-details {
        transition: opacity 0.2s linear; }
    .dropzone .dz-preview .dz-remove {
      font-size: 14px;
      text-align: center;
      display: block;
      cursor: pointer;
      border: none; }
      .dropzone .dz-preview .dz-remove:hover {
        text-decoration: underline; }
    .dropzone .dz-preview:hover .dz-details {
      opacity: 1; }
    .dropzone .dz-preview .dz-details {
      z-index: 20;
      position: absolute;
      top: 0;
      left: 0;
      opacity: 0;
      font-size: 13px;
      min-width: 100%;
      max-width: 100%;
      padding: 2em 1em;
      text-align: center;
      color: rgba(0, 0, 0, 0.9);
      line-height: 150%; }
      .dropzone .dz-preview .dz-details .dz-size {
        margin-bottom: 1em;
        font-size: 16px; }
      .dropzone .dz-preview .dz-details .dz-filename {
        white-space: nowrap; }
        .dropzone .dz-preview .dz-details .dz-filename:hover span {
          border: 1px solid rgba(200, 200, 200, 0.8);
          background-color: rgba(255, 255, 255, 0.8); }
        .dropzone .dz-preview .dz-details .dz-filename:not(:hover) {
          overflow: hidden;
          text-overflow: ellipsis; }
          .dropzone .dz-preview .dz-details .dz-filename:not(:hover) span {
            border: 1px solid transparent; }
      .dropzone .dz-preview .dz-details .dz-filename span, .dropzone .dz-preview .dz-details .dz-size span {
        background-color: rgba(255, 255, 255, 0.4);
        padding: 0 0.4em;
        border-radius: 3px; }
    .dropzone .dz-preview:hover .dz-image img {
      transform: scale(1.05, 1.05);
      filter: blur(8px); }
    .dropzone .dz-preview .dz-image {
      border-radius: 20px;
      overflow: hidden;
      width: 120px;
      height: 120px;
      position: relative;
      display: block;
      z-index: 10; }
      .dropzone .dz-preview .dz-image img {
        display: block; }
    .dropzone .dz-preview.dz-success .dz-success-mark {
      animation: passing-through 3s cubic-bezier(0.77, 0, 0.175, 1); }
    .dropzone .dz-preview.dz-error .dz-error-mark {
      opacity: 1;
      animation: slide-in 3s cubic-bezier(0.77, 0, 0.175, 1); }
    .dropzone .dz-preview .dz-success-mark, .dropzone .dz-preview .dz-error-mark {
      pointer-events: none;
      opacity: 0;
      z-index: 500;
      position: absolute;
      display: block;
      top: 50%;
      left: 50%;
      margin-left: -27px;
      margin-top: -27px; }
      .dropzone .dz-preview .dz-success-mark svg, .dropzone .dz-preview .dz-error-mark svg {
        display: block;
        width: 54px;
        height: 54px; }
    .dropzone .dz-preview.dz-processing .dz-progress {
      opacity: 1;
      transition: all 0.2s linear; }
    .dropzone .dz-preview.dz-complete .dz-progress {
      opacity: 0;
      transition: opacity 0.4s ease-in; }
    .dropzone .dz-preview:not(.dz-processing) .dz-progress {
      animation: pulse 6s ease infinite; }
    .dropzone .dz-preview .dz-progress {
      opacity: 1;
      z-index: 1000;
      pointer-events: none;
      position: absolute;
      height: 16px;
      left: 50%;
      top: 50%;
      margin-top: -8px;
      width: 80px;
      margin-left: -40px;
      background: rgba(255, 255, 255, 0.9);
      -webkit-transform: scale(1);
      border-radius: 8px;
      overflow: hidden; }
      .dropzone .dz-preview .dz-progress .dz-upload {
        background: #333;
        background: linear-gradient(to bottom, #666, #444);
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
        width: 0;
        transition: width 300ms ease-in-out; }
    .dropzone .dz-preview.dz-error .dz-error-message {
      display: block; }
    .dropzone .dz-preview.dz-error:hover .dz-error-message {
      opacity: 1;
      pointer-events: auto; }
    .dropzone .dz-preview .dz-error-message {
      pointer-events: none;
      z-index: 1000;
      position: absolute;
      display: block;
      display: none;
      opacity: 0;
      transition: opacity 0.3s ease;
      border-radius: 8px;
      font-size: 13px;
      top: 130px;
      left: -10px;
      width: 140px;
      background: #be2626;
      background: linear-gradient(to bottom, #be2626, #a92222);
      padding: 0.5em 1.2em;
      color: white; }
      .dropzone .dz-preview .dz-error-message:after {
        content: '';
        position: absolute;
        top: -6px;
        left: 64px;
        width: 0;
        height: 0;
        border-left: 6px solid transparent;
        border-right: 6px solid transparent;
        border-bottom: 6px solid #be2626; }
.vue-dropzone{border:2px solid #e5e5e5;font-family:Arial,sans-serif;letter-spacing:.2px;color:#777;transition:.2s linear}.vue-dropzone:hover{background-color:#f6f6f6}.vue-dropzone>i{color:#ccc}.vue-dropzone>.dz-preview .dz-image{border-radius:0;width:100%;height:100%}.vue-dropzone>.dz-preview .dz-image img:not([src]){width:200px;height:200px}.vue-dropzone>.dz-preview .dz-image:hover img{transform:none;-webkit-filter:none}.vue-dropzone>.dz-preview .dz-details{bottom:0;top:0;color:#fff;background-color:rgba(33,150,243,.8);transition:opacity .2s linear;text-align:left}.vue-dropzone>.dz-preview .dz-details .dz-filename{overflow:hidden}.vue-dropzone>.dz-preview .dz-details .dz-filename span,.vue-dropzone>.dz-preview .dz-details .dz-size span{background-color:transparent}.vue-dropzone>.dz-preview .dz-details .dz-filename:not(:hover) span{border:none}.vue-dropzone>.dz-preview .dz-details .dz-filename:hover span{background-color:transparent;border:none}.vue-dropzone>.dz-preview .dz-progress .dz-upload{background:#ccc}.vue-dropzone>.dz-preview .dz-remove{position:absolute;z-index:30;color:#fff;margin-left:15px;padding:10px;top:inherit;bottom:15px;border:2px #fff solid;text-decoration:none;text-transform:uppercase;font-size:.8rem;font-weight:800;letter-spacing:1.1px;opacity:0}.vue-dropzone>.dz-preview:hover .dz-remove{opacity:1}.vue-dropzone>.dz-preview .dz-error-mark,.vue-dropzone>.dz-preview .dz-success-mark{margin-left:auto;margin-top:auto;width:100%;top:35%;left:0}.vue-dropzone>.dz-preview .dz-error-mark svg,.vue-dropzone>.dz-preview .dz-success-mark svg{margin-left:auto;margin-right:auto}.vue-dropzone>.dz-preview .dz-error-message{margin-left:auto;margin-right:auto;left:0;width:100%;text-align:center}.vue-dropzone>.dz-preview .dz-error-message:after{display:none}
/* Slider */
.slick-slider
{
    position: relative;

    display: block;
    box-sizing: border-box;

    -webkit-user-select: none;
            user-select: none;

    -webkit-touch-callout: none;
    -khtml-user-select: none;
    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
{
    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;
}

@charset 'UTF-8';
/* Slider */
.slick-loading .slick-list
{
    background: #fff url(/build/images/ajax-loader.c5cd7f53.gif) center center no-repeat;
}

/* Icons */
@font-face
{
    font-family: 'slick';
    font-weight: normal;
    font-style: normal;

    src: url(/build/fonts/slick.ced611da.eot);
    src: url(/build/fonts/slick.ced611da.eot?#iefix) format('embedded-opentype'), url(/build/fonts/slick.b7c9e1e4.woff) format('woff'), url(/build/fonts/slick.d41f55a7.ttf) format('truetype'), url(/build/images/slick.f97e3bbf.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;
    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: '←';
}
[dir='rtl'] .slick-prev:before
{
    content: '→';
}

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

/* 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: '•';
    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;
}

/**
 * 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;
    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;
    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 {
    touch-action: pan-y;
    -webkit-user-select: none;
    user-select: none; }
  .owl-carousel.owl-grab {
    cursor: move;
    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 {
  animation-duration: 1000ms;
  animation-fill-mode: both; }

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

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

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

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

/*
 * 	Owl Carousel - Auto Height Plugin
 */
.owl-height {
  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;
    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 {
    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(/build/images/owl.video.play.4a37f800.png) no-repeat;
  cursor: pointer;
  z-index: 1;
  -webkit-backface-visibility: hidden;
  transition: transform 100ms ease; }

.owl-carousel .owl-video-play-icon:hover {
  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;
  transition: opacity 400ms ease; }

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

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-ui\theme\globals\globals.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A class which hides an element in DOM.
 */

.ck-hidden {
	/* Override selector specificity. Otherwise, all elements with some display
	style defined will override this one, which is not a desired result. */
	display: none !important;
}

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-reset,
.ck.ck-reset_all,
.ck.ck-reset_all * {
	box-sizing: border-box;
	width: auto;
	height: auto;
	position: static;
}

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-z-default: 1;
	--ck-z-modal: calc( var(--ck-z-default) + 999 );
}

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A class that disables all transitions of the element and its children.
 */

.ck-transitions-disabled,
.ck-transitions-disabled * {
	transition: none !important;
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\globals\globals.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-color-base-foreground: 								hsl(0, 0%, 98%);
	--ck-color-base-background: 								hsl(0, 0%, 100%);
	--ck-color-base-border: 									hsl(0, 0%, 77%);
	--ck-color-base-action: 									hsl(104, 44%, 48%);
	--ck-color-base-focus: 										hsl(209, 92%, 70%);
	--ck-color-base-text: 										hsl(0, 0%, 20%);
	--ck-color-base-active: 									hsl(208, 88%, 52%);
	--ck-color-base-active-focus:								hsl(208, 88%, 47%);
	--ck-color-base-error:										hsl(15, 100%, 43%);

	/* -- Generic colors ------------------------------------------------------------------------ */

	--ck-color-focus-border-coordinates: 						208, 79%, 51%;
	--ck-color-focus-border: 									hsl(var(--ck-color-focus-border-coordinates));
	--ck-color-focus-outer-shadow:								hsl(207, 89%, 86%);
	--ck-color-focus-disabled-shadow:							hsla(209, 90%, 72%,.3);
	--ck-color-focus-error-shadow:								hsla(9,100%,56%,.3);
	--ck-color-text: 											var(--ck-color-base-text);
	--ck-color-shadow-drop: 									hsla(0, 0%, 0%, 0.15);
	--ck-color-shadow-drop-active:								hsla(0, 0%, 0%, 0.2);
	--ck-color-shadow-inner: 									hsla(0, 0%, 0%, 0.1);

	/* -- Buttons ------------------------------------------------------------------------------- */

	--ck-color-button-default-background: 						transparent;
	--ck-color-button-default-hover-background: 				hsl(0, 0%, 90%);
	--ck-color-button-default-active-background: 				hsl(0, 0%, 85%);
	--ck-color-button-default-active-shadow: 					hsl(0, 0%, 75%);
	--ck-color-button-default-disabled-background: 				transparent;

	--ck-color-button-on-background: 							hsl(0, 0%, 87%);
	--ck-color-button-on-hover-background: 						hsl(0, 0%, 77%);
	--ck-color-button-on-active-background: 					hsl(0, 0%, 73%);
	--ck-color-button-on-active-shadow: 						hsl(0, 0%, 63%);
	--ck-color-button-on-disabled-background: 					hsl(0, 0%, 87%);

	--ck-color-button-action-background: 						var(--ck-color-base-action);
	--ck-color-button-action-hover-background: 					hsl(104, 44%, 43%);
	--ck-color-button-action-active-background: 				hsl(104, 44%, 41%);
	--ck-color-button-action-active-shadow: 					hsl(104, 44%, 36%);
	--ck-color-button-action-disabled-background: 				hsl(104, 44%, 58%);
	--ck-color-button-action-text: 								var(--ck-color-base-background);

	--ck-color-button-save: 									hsl(120, 100%, 27%);
	--ck-color-button-cancel: 									hsl(15, 100%, 43%);

	--ck-color-switch-button-off-background:					hsl(0, 0%, 69%);
	--ck-color-switch-button-off-hover-background:				hsl(0, 0%, 64%);
	--ck-color-switch-button-on-background:						var(--ck-color-button-action-background);
	--ck-color-switch-button-on-hover-background:				hsl(104, 44%, 43%);
	--ck-color-switch-button-inner-background:					var(--ck-color-base-background);
	--ck-color-switch-button-inner-shadow:						hsla(0, 0%, 0%, 0.1);

	/* -- Dropdown ------------------------------------------------------------------------------ */

	--ck-color-dropdown-panel-background: 						var(--ck-color-base-background);
	--ck-color-dropdown-panel-border: 							var(--ck-color-base-border);

	/* -- Input --------------------------------------------------------------------------------- */

	--ck-color-input-background: 								var(--ck-color-base-background);
	--ck-color-input-border: 									hsl(0, 0%, 78%);
	--ck-color-input-error-border:								var(--ck-color-base-error);
	--ck-color-input-text: 										var(--ck-color-base-text);
	--ck-color-input-disabled-background: 						hsl(0, 0%, 95%);
	--ck-color-input-disabled-border: 							hsl(0, 0%, 78%);
	--ck-color-input-disabled-text: 							hsl(0, 0%, 46%);

	/* -- List ---------------------------------------------------------------------------------- */

	--ck-color-list-background: 								var(--ck-color-base-background);
	--ck-color-list-button-hover-background: 					var(--ck-color-button-default-hover-background);
	--ck-color-list-button-on-background: 						var(--ck-color-base-active);
	--ck-color-list-button-on-background-focus: 				var(--ck-color-base-active-focus);
	--ck-color-list-button-on-text:								var(--ck-color-base-background);

	/* -- Panel --------------------------------------------------------------------------------- */

	--ck-color-panel-background: 								var(--ck-color-base-background);
	--ck-color-panel-border: 									var(--ck-color-base-border);

	/* -- Toolbar ------------------------------------------------------------------------------- */

	--ck-color-toolbar-background: 								var(--ck-color-base-foreground);
	--ck-color-toolbar-border: 									var(--ck-color-base-border);

	/* -- Tooltip ------------------------------------------------------------------------------- */

	--ck-color-tooltip-background: 								var(--ck-color-base-text);
	--ck-color-tooltip-text: 									var(--ck-color-base-background);

	/* -- Engine -------------------------------------------------------------------------------- */

	--ck-color-engine-placeholder-text: 						hsl(0, 0%, 44%);

	/* -- Upload -------------------------------------------------------------------------------- */

	--ck-color-upload-bar-background:		 					hsl(209, 92%, 70%);

	/* -- Link -------------------------------------------------------------------------------- */

	--ck-color-link-default:									hsl(240, 100%, 47%);
	--ck-color-link-selected-background:						hsla(201, 100%, 56%, 0.1);
	--ck-color-link-fake-selection:								hsla(201, 100%, 56%, 0.3);
}

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	/**
	 * An opacity value of disabled UI item.
	 */
	--ck-disabled-opacity: .5;
}

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	/**
	 * The geometry of the of focused element's outer shadow.
	 */
	--ck-focus-outer-shadow-geometry: 0 0 0 3px;

	/**
	 * A visual style of focused element's outer shadow.
	 */
	--ck-focus-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);

	/**
	 * A visual style of focused element's outer shadow (when disabled).
	 */
	--ck-focus-disabled-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);

	/**
	 * A visual style of focused element's outer shadow (when has errors).
	 */
	--ck-focus-error-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);

	/**
	 * A visual style of focused element's border or outline.
	 */
	--ck-focus-ring: 1px solid var(--ck-color-focus-border);
}

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-font-size-base: 13px;
	--ck-line-height-base: 1.84615;
	--ck-font-face: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;

	--ck-font-size-tiny: 0.7em;
	--ck-font-size-small: 0.75em;
	--ck-font-size-normal: 1em;
	--ck-font-size-big: 1.4em;
	--ck-font-size-large: 1.8em;
}

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	/* This is super-important. This is **manually** adjusted so a button without an icon
	is never smaller than a button with icon, additionally making sure that text-less buttons
	are perfect squares. The value is also shared by other components which should stay "in-line"
	with buttons. */
	--ck-ui-component-min-height: 2.3em;
}

/**
 * Resets an element, ignoring its children.
 */

.ck.ck-reset,
.ck.ck-reset_all,
.ck.ck-reset_all * {
	/* Do not include inheritable rules here. */
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	text-decoration: none;
	vertical-align: middle;
	transition: none;

	/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/105 */
	word-wrap: break-word;
}

/**
 * Resets an element AND its children.
 */

.ck.ck-reset_all,
.ck.ck-reset_all * {
	/* These are rule inherited by all children elements. */
	border-collapse: collapse;
	font: normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);
	color: var(--ck-color-text);
	text-align: left;
	white-space: nowrap;
	cursor: auto;
	float: none;
}

.ck.ck-reset_all .ck-rtl * {
		text-align: right;
	}

.ck.ck-reset_all iframe {
		/* For IE */
		vertical-align: inherit;
	}

.ck.ck-reset_all textarea {
		white-space: pre-wrap;
	}

.ck.ck-reset_all textarea,
	.ck.ck-reset_all input[type="text"],
	.ck.ck-reset_all input[type="password"] {
		cursor: text;
	}

.ck.ck-reset_all textarea[disabled],
	.ck.ck-reset_all input[type="text"][disabled],
	.ck.ck-reset_all input[type="password"][disabled] {
		cursor: default;
	}

.ck.ck-reset_all fieldset {
		padding: 10px;
		border: 2px groove hsl(255, 7%, 88%);
	}

.ck.ck-reset_all button::-moz-focus-inner {
		/* See http://stackoverflow.com/questions/5517744/remove-extra-button-spacing-padding-in-firefox */
		padding: 0;
		border: 0
	}

/**
 * Default UI rules for RTL languages.
 */

.ck[dir="rtl"],
.ck[dir="rtl"] .ck {
	text-align: right;
}

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Default border-radius value.
 */

:root{
	--ck-border-radius: 2px;
}

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	/**
	 * A visual style of element's inner shadow (i.e. input).
	 */
	--ck-inner-shadow: 2px 2px 3px var(--ck-color-shadow-inner) inset;

	/**
	 * A visual style of element's drop shadow (i.e. panel).
	 */
	--ck-drop-shadow: 0 1px 2px 1px var(--ck-color-shadow-drop);

	/**
	 * A visual style of element's active shadow (i.e. comment or suggestion).
	 */
	--ck-drop-shadow-active: 0 3px 6px 1px var(--ck-color-shadow-drop-active);
}

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-spacing-unit: 						0.6em;
	--ck-spacing-large: 					calc(var(--ck-spacing-unit) * 1.5);
	--ck-spacing-standard: 					var(--ck-spacing-unit);
	--ck-spacing-medium: 					calc(var(--ck-spacing-unit) * 0.8);
	--ck-spacing-small: 					calc(var(--ck-spacing-unit) * 0.5);
	--ck-spacing-tiny: 						calc(var(--ck-spacing-unit) * 0.3);
	--ck-spacing-extra-tiny: 				calc(var(--ck-spacing-unit) * 0.16);
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-ui\theme\components\icon\icon.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-icon {
	vertical-align: middle;
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\icon\icon.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-icon-size: calc(var(--ck-line-height-base) * var(--ck-font-size-normal));
}

.ck.ck-icon {
	width: var(--ck-icon-size);
	height: var(--ck-icon-size);

	/* Multiplied by the height of the line in "px" should give SVG "viewport" dimensions */
	font-size: .8333350694em;

	color: inherit;

	/* Inherit cursor style (#5). */
	cursor: inherit;

	/* This will prevent blurry icons on Firefox. See #340. */
	will-change: transform
}

.ck.ck-icon * {
		/* Inherit cursor style (#5). */
		cursor: inherit;

		/* Allows dynamic coloring of the icons. */
		color: inherit
	}

.ck.ck-icon *:not([fill]) {
			/* Needed by FF. */
			fill: currentColor;
		}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-ui\theme\components\panel\balloonpanel.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	/* Make sure the balloon arrow does not float over its children. */
	--ck-balloon-panel-arrow-z-index: calc(var(--ck-z-default) - 3);
}

.ck.ck-balloon-panel {
	display: none;
	position: absolute;

	z-index: var(--ck-z-modal)
}

.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::before,
		.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::after {
			content: "";
			position: absolute;
		}

.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::before {
			z-index: var(--ck-balloon-panel-arrow-z-index);
		}

.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::after {
			z-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);
		}

.ck.ck-balloon-panel[class*="arrow_n"]::before {
			z-index: var(--ck-balloon-panel-arrow-z-index);
		}

.ck.ck-balloon-panel[class*="arrow_n"]::after {
			z-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);
		}

.ck.ck-balloon-panel[class*="arrow_s"]::before {
			z-index: var(--ck-balloon-panel-arrow-z-index);
		}

.ck.ck-balloon-panel[class*="arrow_s"]::after {
			z-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);
		}

.ck.ck-balloon-panel.ck-balloon-panel_visible {
		display: block;
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\panel\balloonpanel.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A helper to combine multiple shadows.
 */

/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */

:root {
	--ck-balloon-arrow-offset: 2px;
	--ck-balloon-arrow-height: 10px;
	--ck-balloon-arrow-half-width: 8px;
	--ck-balloon-arrow-drop-shadow: 0 2px 2px var(--ck-color-shadow-drop);
}

.ck.ck-balloon-panel {
	border-radius: 0
}

.ck-rounded-corners .ck.ck-balloon-panel, .ck.ck-balloon-panel.ck-rounded-corners {
		border-radius: var(--ck-border-radius)
}

.ck.ck-balloon-panel {
	box-shadow: var(--ck-drop-shadow), 0 0;

	min-height: 15px;

	background: var(--ck-color-panel-background);
	border: 1px solid var(--ck-color-panel-border)
}

.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::before,
		.ck.ck-balloon-panel.ck-balloon-panel_with-arrow::after {
			width: 0;
			height: 0;
			border-style: solid;
		}

.ck.ck-balloon-panel[class*="arrow_n"]::before,
		.ck.ck-balloon-panel[class*="arrow_n"]::after {
			border-width: 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width);
		}

.ck.ck-balloon-panel[class*="arrow_n"]::before {
			border-color: transparent transparent var(--ck-color-panel-border) transparent;
		}

.ck.ck-balloon-panel[class*="arrow_n"]::after {
			border-color: transparent transparent var(--ck-color-panel-background) transparent;
			margin-top: var(--ck-balloon-arrow-offset);
		}

.ck.ck-balloon-panel[class*="arrow_s"]::before,
		.ck.ck-balloon-panel[class*="arrow_s"]::after {
			border-width: var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width);
		}

.ck.ck-balloon-panel[class*="arrow_s"]::before {
			border-color: var(--ck-color-panel-border) transparent transparent;
			filter: drop-shadow(var(--ck-balloon-arrow-drop-shadow));
		}

.ck.ck-balloon-panel[class*="arrow_s"]::after {
			border-color: var(--ck-color-panel-background) transparent transparent transparent;
			margin-bottom: var(--ck-balloon-arrow-offset);
		}

.ck.ck-balloon-panel.ck-balloon-panel_arrow_n::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_n::after {
			left: 50%;
			margin-left: calc(-1 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * var(--ck-balloon-arrow-height));
		}

.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw::after {
			left: calc(2 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * var(--ck-balloon-arrow-height));
		}

.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne::after {
			right: calc(2 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * var(--ck-balloon-arrow-height));
		}

.ck.ck-balloon-panel.ck-balloon-panel_arrow_s::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_s::after {
			left: 50%;
			margin-left: calc(-1 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * var(--ck-balloon-arrow-height));
		}

.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw::after {
			left: calc(2 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * var(--ck-balloon-arrow-height));
		}

.ck.ck-balloon-panel.ck-balloon-panel_arrow_se::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_se::after {
			right: calc(2 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * var(--ck-balloon-arrow-height));
		}

.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme::after {
			right: 25%;
			margin-right: calc(2 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * var(--ck-balloon-arrow-height));
		}

.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw::after {
			left: 25%;
			margin-left: calc(2 * var(--ck-balloon-arrow-half-width));
			bottom: calc(-1 * var(--ck-balloon-arrow-height));
		}

.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme::after {
			right: 25%;
			margin-right: calc(2 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * var(--ck-balloon-arrow-height));
		}

.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw::before,
		.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw::after {
			left: 25%;
			margin-left: calc(2 * var(--ck-balloon-arrow-half-width));
			top: calc(-1 * var(--ck-balloon-arrow-height));
		}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-widget\theme\widgettypearound.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck .ck-widget {
	/*
	 * Styles of the type around buttons
	 */
}

.ck .ck-widget .ck-widget__type-around__button {
		display: block;
		position: absolute;
		overflow: hidden;
		z-index: var(--ck-z-default)
	}

.ck .ck-widget .ck-widget__type-around__button svg {
			position: absolute;
			top: 50%;
			left: 50%;
			z-index: calc(var(--ck-z-default) + 2);
		}

.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_before {
			/* Place it in the middle of the outline */
			top: calc(-0.5 * var(--ck-widget-outline-thickness));
			left: min(10%, 30px);

			transform: translateY(-50%);
		}

.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_after {
			/* Place it in the middle of the outline */
			bottom: calc(-0.5 * var(--ck-widget-outline-thickness));
			right: min(10%, 30px);

			transform: translateY(50%);
		}

.ck .ck-widget {

	/*
	 * Styles for the buttons when:
	 * - the widget is selected,
	 * - or the button is being hovered (regardless of the widget state).
	 */
}

.ck .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button::after, .ck .ck-widget > .ck-widget__type-around > .ck-widget__type-around__button:hover::after {
			content: "";
			display: block;
			position: absolute;
			top: 1px;
			left: 1px;
			z-index: calc(var(--ck-z-default) + 1);
		}

.ck .ck-widget {

	/*
	 * Styles for the horizontal "fake caret" which is displayed when the user navigates using the keyboard.
	 */
}

.ck .ck-widget > .ck-widget__type-around > .ck-widget__type-around__fake-caret {
		display: none;
		position: absolute;
		left: 0;
		right: 0;
	}

.ck .ck-widget {

	/*
	 * When the widget is hovered the "fake caret" would normally be narrower than the
	 * extra outline displayed around the widget. Let's extend the "fake caret" to match
	 * the full width of the widget.
	 */
}

.ck .ck-widget:hover > .ck-widget__type-around > .ck-widget__type-around__fake-caret {
		left: calc( -1 * var(--ck-widget-outline-thickness) );
		right: calc( -1 * var(--ck-widget-outline-thickness) );
	}

.ck .ck-widget {

	/*
	 * Styles for the horizontal "fake caret" when it should be displayed before the widget (backward keyboard navigation).
	 */
}

.ck .ck-widget.ck-widget_type-around_show-fake-caret_before > .ck-widget__type-around > .ck-widget__type-around__fake-caret {
		top: calc( -1 * var(--ck-widget-outline-thickness) - 1px );
		display: block;
	}

.ck .ck-widget {

	/*
	 * Styles for the horizontal "fake caret" when it should be displayed after the widget (forward keyboard navigation).
	 */
}

.ck .ck-widget.ck-widget_type-around_show-fake-caret_after > .ck-widget__type-around > .ck-widget__type-around__fake-caret {
		bottom: calc( -1 * var(--ck-widget-outline-thickness) - 1px );
		display: block;
	}

/*
 * Integration with the read-only mode of the editor.
 */

.ck.ck-editor__editable.ck-read-only .ck-widget__type-around {
	display: none;
}

/*
 * Integration with the restricted editing mode (feature) of the editor.
 */

.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around {
	display: none;
}

/*
 * Integration with the #isEnabled property of the WidgetTypeAround plugin.
 */

.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around {
	display: none;
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-widget\widgettypearound.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-widget-type-around-button-size: 20px;
	--ck-color-widget-type-around-button-active: var(--ck-color-focus-border);
	--ck-color-widget-type-around-button-hover: var(--ck-color-widget-hover-border);
	--ck-color-widget-type-around-button-blurred-editable: var(--ck-color-widget-blurred-border);
	--ck-color-widget-type-around-button-radar-start-alpha: 0;
	--ck-color-widget-type-around-button-radar-end-alpha: .3;
	--ck-color-widget-type-around-button-icon: var(--ck-color-base-background);
}

.ck .ck-widget {
	/*
	 * Styles of the type around buttons
	 */
}

.ck .ck-widget .ck-widget__type-around__button {
		width: var(--ck-widget-type-around-button-size);
		height: var(--ck-widget-type-around-button-size);
		background: var(--ck-color-widget-type-around-button);
		border-radius: 100px;
		transition: opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve), background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);

		opacity: 0;

		pointer-events: none
	}

.ck .ck-widget .ck-widget__type-around__button svg {
			width: 10px;
			height: 8px;
			transform: translate(-50%,-50%);
			transition: transform .5s ease;
			margin-top: 1px
		}

.ck .ck-widget .ck-widget__type-around__button svg * {
				stroke-dasharray: 10;
				stroke-dashoffset: 0;

				fill: none;
				stroke: var(--ck-color-widget-type-around-button-icon);
				stroke-width: 1.5px;
				stroke-linecap: round;
				stroke-linejoin: round;
			}

.ck .ck-widget .ck-widget__type-around__button svg line {
				stroke-dasharray: 7;
			}

.ck .ck-widget .ck-widget__type-around__button:hover {
			/*
			 * Display the "sonar" around the button when hovered.
			 */
			animation: ck-widget-type-around-button-sonar 1s ease infinite

			/*
			 * Animate active button's icon.
			 */
		}

.ck .ck-widget .ck-widget__type-around__button:hover svg polyline {
					animation: ck-widget-type-around-arrow-dash 2s linear;
				}

.ck .ck-widget .ck-widget__type-around__button:hover svg line {
					animation: ck-widget-type-around-arrow-tip-dash 2s linear;
				}

.ck .ck-widget {

	/*
	 * Show type around buttons when the widget gets selected or being hovered.
	 */
}

.ck .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button, .ck .ck-widget:hover > .ck-widget__type-around > .ck-widget__type-around__button {
			opacity: 1;
			pointer-events: auto;
		}

.ck .ck-widget {

	/*
	 * Styles for the buttons when the widget is NOT selected (but the buttons are visible
	 * and still can be hovered).
	 */
}

.ck .ck-widget:not(.ck-widget_selected) > .ck-widget__type-around > .ck-widget__type-around__button {
		background: var(--ck-color-widget-type-around-button-hover);
	}

.ck .ck-widget {

	/*
	 * Styles for the buttons when:
	 * - the widget is selected,
	 * - or the button is being hovered (regardless of the widget state).
	 */
}

.ck .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,
	.ck .ck-widget > .ck-widget__type-around > .ck-widget__type-around__button:hover {
		background: var(--ck-color-widget-type-around-button-active)
	}

.ck .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button::after, .ck .ck-widget > .ck-widget__type-around > .ck-widget__type-around__button:hover::after {
			width: calc(var(--ck-widget-type-around-button-size) - 2px);
			height: calc(var(--ck-widget-type-around-button-size) - 2px);
			border-radius: 100px;
			background: linear-gradient(135deg, hsla(0,0%,100%,0) 0%, hsla(0,0%,100%,.3) 100%);
		}

.ck .ck-widget {

	/*
	 * Styles for the "before" button when the widget has a selection handle. Because some space
	 * is consumed by the handle, the button must be moved slightly to the right to let it breathe.
	 */
}

.ck .ck-widget.ck-widget_with-selection-handle > .ck-widget__type-around > .ck-widget__type-around__button_before {
		margin-left: 20px;
	}

.ck .ck-widget {

	/*
	 * Styles for the horizontal "fake caret" which is displayed when the user navigates using the keyboard.
	 */
}

.ck .ck-widget .ck-widget__type-around__fake-caret {
		pointer-events: none;
		height: 1px;
		animation: ck-widget-type-around-fake-caret-pulse linear 1s infinite normal forwards;

		/*
		 * The semi-transparent-outline+background combo improves the contrast
		 * when the background underneath the fake caret is dark.
		 */
		outline: solid 1px hsla(0, 0%, 100%, .5);
		background: var(--ck-color-base-text);
	}

.ck .ck-widget {

	/*
	 * Styles of the widget when the "fake caret" is blinking (e.g. upon keyboard navigation).
	 * Despite the widget being physically selected in the model, its outline should disappear.
	 */
}

.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_before,
		.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_after {
			outline-color: transparent;
		}

.ck .ck-widget.ck-widget_type-around_show-fake-caret_before,
	.ck .ck-widget.ck-widget_type-around_show-fake-caret_after {
		/*
		 * When the "fake caret" is visible we simulate that the widget is not selected
		 * (despite being physically selected), so the outline color should be for the
		 * unselected widget.
		 */
	}

.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected:hover, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected:hover {
			outline-color: var(--ck-color-widget-hover-border);
		}

.ck .ck-widget.ck-widget_type-around_show-fake-caret_before,
	.ck .ck-widget.ck-widget_type-around_show-fake-caret_after {

		/*
		 * Styles of the type around buttons when the "fake caret" is blinking (e.g. upon keyboard navigation).
		 * In this state, the type around buttons would collide with the fake carets so they should disappear.
		 */
	}

.ck .ck-widget.ck-widget_type-around_show-fake-caret_before > .ck-widget__type-around > .ck-widget__type-around__button, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after > .ck-widget__type-around > .ck-widget__type-around__button {
			opacity: 0;
			pointer-events: none;
		}

.ck .ck-widget.ck-widget_type-around_show-fake-caret_before,
	.ck .ck-widget.ck-widget_type-around_show-fake-caret_after {

		/*
		 * Fake horizontal caret integration with the selection handle. When the caret is visible, simply
		 * hide the handle because it intersects with the caret (and does not make much sense anyway).
		 */
	}

.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected > .ck-widget__selection-handle, .ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected:hover > .ck-widget__selection-handle, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected > .ck-widget__selection-handle, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected:hover > .ck-widget__selection-handle {
					opacity: 0
				}

.ck .ck-widget.ck-widget_type-around_show-fake-caret_before,
	.ck .ck-widget.ck-widget_type-around_show-fake-caret_after {

		/*
		 * Fake horizontal caret integration with the resize UI. When the caret is visible, simply
		 * hide the resize UI because it creates too much noise. It can be visible when the user
		 * hovers the widget, though.
		 */
	}

.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected.ck-widget_with-resizer > .ck-widget__resizer, .ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected.ck-widget_with-resizer > .ck-widget__resizer {
			opacity: 0
		}

/*
 * Styles for the "before" button when the widget has a selection handle in an RTL environment.
 * The selection handler is aligned to the right side of the widget so there is no need to create
 * additional space for it next to the "before" button.
 */

.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around > .ck-widget__type-around__button_before {
	margin-left: 0;
	margin-right: 20px;
}

/*
 * Hide type around buttons when the widget is selected as a child of a selected
 * nested editable (e.g. mulit-cell table selection).
 *
 * See https://github.com/ckeditor/ckeditor5/issues/7263.
 */

.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button, .ck-editor__nested-editable.ck-editor__editable_selected .ck-widget:hover > .ck-widget__type-around > .ck-widget__type-around__button {
				opacity: 0;
				pointer-events: none;
			}

/*
 * Styles for the buttons when the widget is selected but the user clicked outside of the editor (blurred the editor).
 */

.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button:not(:hover) {
	background: var(--ck-color-widget-type-around-button-blurred-editable)
}

.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button:not(:hover) svg * {
		stroke: hsl(0,0%,60%);
	}

@keyframes ck-widget-type-around-arrow-dash {
	0% {
		stroke-dashoffset: 10;
	}
	20%, 100% {
		stroke-dashoffset: 0;
	}
}

@keyframes ck-widget-type-around-arrow-tip-dash {
	0%, 20% {
		stroke-dashoffset: 7;
	}
	40%, 100% {
		stroke-dashoffset: 0;
	}
}

@keyframes ck-widget-type-around-button-sonar {
	0% {
		box-shadow: 0 0 0 0 hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));
	}
	50% {
		box-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-end-alpha));
	}
	100% {
		box-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));
	}
}

@keyframes ck-widget-type-around-fake-caret-pulse {
	0% {
		opacity: 1;
	}
	49% {
		opacity: 1;
	}
	50% {
		opacity: 0;
	}
	99% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-widget\theme\widget.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-color-resizer: var(--ck-color-focus-border);
	--ck-color-resizer-tooltip-background: hsl(0, 0%, 15%);
	--ck-color-resizer-tooltip-text: hsl(0, 0%, 95%);

	--ck-resizer-border-radius: var(--ck-border-radius);
	--ck-resizer-tooltip-offset: 10px;
}

.ck .ck-widget {
	/* This is neccessary for type around UI to be positioned properly. */
	position: relative;
}

.ck .ck-widget.ck-widget_with-selection-handle {
	/* Make the widget wrapper a relative positioning container for the drag handle. */
	position: relative
}

.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {
		position: absolute
	}

.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon {
			/* Make sure the icon in not a subject to font-size or line-height to avoid
			unnecessary spacing around it. */
			display: block;
		}

.ck .ck-widget.ck-widget_with-selection-handle {

	/* Show the selection handle on mouse hover over the widget. */
}

.ck .ck-widget.ck-widget_with-selection-handle:hover .ck-widget__selection-handle {
			visibility: visible;
		}

.ck .ck-widget.ck-widget_with-selection-handle {

	/* Show the selection handle when the widget is selected. */
}

.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected .ck-widget__selection-handle {
		visibility: visible;
	}

.ck .ck-size-view {
	background: var(--ck-color-resizer-tooltip-background);
	color: var(--ck-color-resizer-tooltip-text);
	border: 1px solid var(--ck-color-resizer-tooltip-text);
	border-radius: var(--ck-resizer-border-radius);
	font-size: var(--ck-font-size-tiny);
	display: block;
	padding: var(--ck-spacing-small)
}

.ck .ck-size-view.ck-orientation-top-left,
	.ck .ck-size-view.ck-orientation-top-right,
	.ck .ck-size-view.ck-orientation-bottom-right,
	.ck .ck-size-view.ck-orientation-bottom-left {
		position: absolute;
	}

.ck .ck-size-view.ck-orientation-top-left {
		top: var(--ck-resizer-tooltip-offset);
		left: var(--ck-resizer-tooltip-offset);
	}

.ck .ck-size-view.ck-orientation-top-right {
		top: var(--ck-resizer-tooltip-offset);
		right: var(--ck-resizer-tooltip-offset);
	}

.ck .ck-size-view.ck-orientation-bottom-right {
		bottom: var(--ck-resizer-tooltip-offset);
		right: var(--ck-resizer-tooltip-offset);
	}

.ck .ck-size-view.ck-orientation-bottom-left {
		bottom: var(--ck-resizer-tooltip-offset);
		left: var(--ck-resizer-tooltip-offset);
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-widget\widget.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A visual style of focused element's border.
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A helper to combine multiple shadows.
 */

/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */

:root {
	--ck-widget-outline-thickness: 3px;
	--ck-widget-handler-icon-size: 16px;
	--ck-widget-handler-animation-duration: 200ms;
	--ck-widget-handler-animation-curve: ease;

	--ck-color-widget-blurred-border: hsl(0, 0%, 87%);
	--ck-color-widget-hover-border: hsl(43, 100%, 62%);
	--ck-color-widget-editable-focus-background: var(--ck-color-base-background);
	--ck-color-widget-drag-handler-icon-color: var(--ck-color-base-background);
}

.ck .ck-widget {
	outline-width: var(--ck-widget-outline-thickness);
	outline-style: solid;
	outline-color: transparent;
	transition: outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)
}

.ck .ck-widget.ck-widget_selected,
	.ck .ck-widget.ck-widget_selected:hover {
		outline: var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border);
	}

.ck .ck-widget:hover {
		outline-color: var(--ck-color-widget-hover-border);
	}

.ck .ck-editor__nested-editable {
	border: 1px solid transparent

	/* The :focus style is applied before .ck-editor__nested-editable_focused class is rendered in the view.
	These styles show a different border for a blink of an eye, so `:focus` need to have same styles applied. */
}

.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused,
	.ck .ck-editor__nested-editable:focus {
		/* Disable native outline. */
		outline: none;
		border: var(--ck-focus-ring);
		box-shadow: var(--ck-inner-shadow), 0 0;

		background-color: var(--ck-color-widget-editable-focus-background);
	}

.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {
		padding: 4px;
		box-sizing: border-box;

		/* Background and opacity will be animated as the handler shows up or the widget gets selected. */
		background-color: transparent;
		opacity: 0;

		/* Transition:
		   * background-color for the .ck-widget_selected state change,
		   * visibility for hiding the handler,
		   * opacity for the proper look of the icon when the handler disappears. */
		transition:
			background-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),
			visibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),
			opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);

		/* Make only top corners round. */
		border-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;

		/* Place the drag handler outside the widget wrapper. */
		transform: translateY(-100%);
		left: calc(0px - var(--ck-widget-outline-thickness))
	}

.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon {
			/* Make sure the dimensions of the icon are independent of the fon-size of the content. */
			width: var(--ck-widget-handler-icon-size);
			height: var(--ck-widget-handler-icon-size);
			color: var(--ck-color-widget-drag-handler-icon-color)

			/* The "selected" part of the icon is invisible by default */
		}

.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator {
				opacity: 0;

				/* Note: The animation is longer on purpose. Simply feels better. */
				transition: opacity 300ms var(--ck-widget-handler-animation-curve);
			}

.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {

		/* Advertise using the look of the icon that once clicked the handler, the widget will be selected. */
	}

.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover .ck-icon .ck-icon__selected-indicator {
			opacity: 1;
		}

.ck .ck-widget.ck-widget_with-selection-handle {

	/* Show the selection handler on mouse hover over the widget. */
}

.ck .ck-widget.ck-widget_with-selection-handle:hover .ck-widget__selection-handle {
		opacity: 1;
		background-color: var(--ck-color-widget-hover-border);
	}

.ck .ck-widget.ck-widget_with-selection-handle {

	/* Show the selection handler when the widget is selected. */
}

.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected .ck-widget__selection-handle, .ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover .ck-widget__selection-handle {
			opacity: 1;
			background-color: var(--ck-color-focus-border)

			/* When the widget is selected, notify the user using the proper look of the icon. */
		}

.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator, .ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator {
				opacity: 1;
			}

/* In a RTL environment, align the selection handler to the right side of the widget */

/* stylelint-disable-next-line no-descending-specificity */

.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {
	left: auto;
	right: calc(0px - var(--ck-widget-outline-thickness));
}

/* https://github.com/ckeditor/ckeditor5/issues/6415 */

.ck.ck-editor__editable.ck-read-only .ck-widget {
	/* Prevent the :hover outline from showing up because of the used outline-color transition. */
	transition: none
}

.ck.ck-editor__editable.ck-read-only .ck-widget:not(.ck-widget_selected) {
		/* Disable visual effects of hover/active widget when CKEditor is in readOnly mode.
		 * See: https://github.com/ckeditor/ckeditor5/issues/1261
		 *
		 * Leave the unit because this custom property is used in calc() by other features.
		 * See: https://github.com/ckeditor/ckeditor5/issues/6775
		 */
		--ck-widget-outline-thickness: 0px;
	}

.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle,
		.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover {
			background: var(--ck-color-widget-blurred-border);
		}

/* Style the widget when it's selected but the editable it belongs to lost focus. */

/* stylelint-disable-next-line no-descending-specificity */

.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected,
	.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover {
		outline-color: var(--ck-color-widget-blurred-border)
	}

.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle .ck-widget__selection-handle,
			.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle .ck-widget__selection-handle:hover,
			.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover.ck-widget_with-selection-handle .ck-widget__selection-handle,
			.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover.ck-widget_with-selection-handle .ck-widget__selection-handle:hover {
				background: var(--ck-color-widget-blurred-border);
			}

.ck.ck-editor__editable > .ck-widget.ck-widget_with-selection-handle:first-child,
.ck.ck-editor__editable blockquote > .ck-widget.ck-widget_with-selection-handle:first-child {
	/* Do not crop selection handler if a widget is a first-child in the blockquote or in the root editable.
	In fact, anything with overflow: hidden.
	https://github.com/ckeditor/ckeditor5-block-quote/issues/28
	https://github.com/ckeditor/ckeditor5-widget/issues/44
	https://github.com/ckeditor/ckeditor5-widget/issues/66 */
	margin-top: calc(1em + var(--ck-widget-handler-icon-size));
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-ui\theme\components\tooltip\tooltip.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-tooltip,
.ck.ck-tooltip .ck-tooltip__text::after {
	position: absolute;

	/* Without this, hovering the tooltip could keep it visible. */
	pointer-events: none;

	/* This is to get rid of flickering when transitioning opacity in Chrome.
	It's weird but it works. */
	-webkit-backface-visibility: hidden;
}

.ck.ck-tooltip {
	/* Tooltip is hidden by default. */
	visibility: hidden;
	opacity: 0;
	display: none;
	z-index: var(--ck-z-modal)
}

.ck.ck-tooltip .ck-tooltip__text {
		display: inline-block
	}

.ck.ck-tooltip .ck-tooltip__text::after {
			content: "";
			width: 0;
			height: 0;
		}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\tooltip\tooltip.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

:root {
	--ck-tooltip-arrow-size: 5px;
}

.ck.ck-tooltip {
	left: 50%;

	/*
	 * Prevent blurry tooltips in LoDPI environments.
	 * See https://github.com/ckeditor/ckeditor5/issues/1802.
	 */
	top: 0;

	/*
	 * For the transition to work, the tooltip must be controlled
	 * using visibility+opacity. A delay prevents a "tooltip avalanche"
	 * i.e. when scanning the toolbar with mouse cursor.
	 */
	transition: opacity .2s ease-in-out .2s
}

.ck.ck-tooltip .ck-tooltip__text {
		border-radius: 0
	}

.ck-rounded-corners .ck.ck-tooltip .ck-tooltip__text, .ck.ck-tooltip .ck-tooltip__text.ck-rounded-corners {
		border-radius: var(--ck-border-radius)
	}

.ck.ck-tooltip .ck-tooltip__text {

		font-size: .9em;
		line-height: 1.5;
		color: var(--ck-color-tooltip-text);
		padding: var(--ck-spacing-small) var(--ck-spacing-medium);
		background: var(--ck-color-tooltip-background);
		position: relative;
		left: -50%
	}

.ck.ck-tooltip .ck-tooltip__text::after {
			/*
			 * For the transition to work, the tooltip must be controlled
			 * using visibility+opacity. A delay prevents a "tooltip avalanche"
			 * i.e. when scanning the toolbar with mouse cursor.
			 */
			transition: opacity .2s ease-in-out .2s;
			border-style: solid;
			left: 50%;
		}

.ck.ck-tooltip {

	/**
	 * A class that displays the tooltip south of the element.
	 *
	 *       [element]
	 *           ^
	 *     +-----------+
	 *     |  Tooltip  |
	 *     +-----------+
	 */
}

.ck.ck-tooltip.ck-tooltip_s,
	.ck.ck-tooltip.ck-tooltip_sw,
	.ck.ck-tooltip.ck-tooltip_se {
		bottom: calc(-1 * var(--ck-tooltip-arrow-size));
		transform: translateY( 100% )
	}

.ck.ck-tooltip.ck-tooltip_s .ck-tooltip__text::after, .ck.ck-tooltip.ck-tooltip_sw .ck-tooltip__text::after, .ck.ck-tooltip.ck-tooltip_se .ck-tooltip__text::after {
			/* 1px addresses gliches in rendering causing gap between the triangle and the text */
			top: calc(-1 * var(--ck-tooltip-arrow-size) + 1px);
			transform: translateX( -50% );
			border-color: transparent transparent var(--ck-color-tooltip-background) transparent;
			border-width: 0 var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size);
		}

.ck.ck-tooltip {

	/**
	 * A class that displays the tooltip south-west of the element.
	 *
	 *        [element]
	 *            ^
	 *  +-----------+
	 *  |  Tooltip  |
	 *  +-----------+
	 */
}

.ck.ck-tooltip.ck-tooltip_sw {
		right: 50%;
		left: auto
	}

.ck.ck-tooltip.ck-tooltip_sw .ck-tooltip__text {
			left: auto;
			right: calc( -2 * var(--ck-tooltip-arrow-size));
		}

.ck.ck-tooltip.ck-tooltip_sw .ck-tooltip__text::after {
			left: auto;
			right: 0;
		}

.ck.ck-tooltip {

	/**
	 * A class that displays the tooltip south-east of the element.
	 *
	 *  [element]
	 *      ^
	 *    +-----------+
	 *    |  Tooltip  |
	 *    +-----------+
	 */
}

.ck.ck-tooltip.ck-tooltip_se {
		left: 50%;
		right: auto
	}

.ck.ck-tooltip.ck-tooltip_se .ck-tooltip__text {
			right: auto;
			left: calc( -2 * var(--ck-tooltip-arrow-size));
		}

.ck.ck-tooltip.ck-tooltip_se .ck-tooltip__text::after {
			right: auto;
			left: 0;
			transform: translateX( 50% );
		}

.ck.ck-tooltip {

	/**
	 * A class that displays the tooltip north of the element.
	 *
	 *     +-----------+
	 *     |  Tooltip  |
	 *     +-----------+
	 *           V
	 *       [element]
	 */
}

.ck.ck-tooltip.ck-tooltip_n {
		top: calc(-1 * var(--ck-tooltip-arrow-size));
		transform: translateY( -100% )
	}

.ck.ck-tooltip.ck-tooltip_n .ck-tooltip__text::after {
			bottom: calc(-1 * var(--ck-tooltip-arrow-size));
			transform: translateX( -50% );
			border-color: var(--ck-color-tooltip-background) transparent transparent transparent;
			border-width: var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size) 0 var(--ck-tooltip-arrow-size);
		}

.ck.ck-tooltip {

	/**
	 * A class that displays the tooltip east of the element.
	 *
	 *                +----------+
	 *    [element] < |   east   |
	 *                +----------+
	 */
}

.ck.ck-tooltip.ck-tooltip_e {
		left: calc(100% + var(--ck-tooltip-arrow-size));
		top: 50%
	}

.ck.ck-tooltip.ck-tooltip_e .ck-tooltip__text {
			left: 0;
			transform: translateY( -50% )
		}

.ck.ck-tooltip.ck-tooltip_e .ck-tooltip__text::after {
				left: calc(-1 * var(--ck-tooltip-arrow-size));
				top: calc(50% - 1 * var(--ck-tooltip-arrow-size));
				border-color: transparent var(--ck-color-tooltip-background) transparent transparent;
				border-width: var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size) 0;
			}

.ck.ck-tooltip {

	/**
	 * A class that displays the tooltip west of the element.
	 *
	 *    +----------+
	 *    |   west   | > [element]
	 *    +----------+
	 */
}

.ck.ck-tooltip.ck-tooltip_w {
		right: calc(100% + var(--ck-tooltip-arrow-size));
		left: auto;
		top: 50%
	}

.ck.ck-tooltip.ck-tooltip_w .ck-tooltip__text {
			left: 0;
			transform: translateY( -50% )
		}

.ck.ck-tooltip.ck-tooltip_w .ck-tooltip__text::after {
				left: 100%;
				top: calc(50% - 1 * var(--ck-tooltip-arrow-size));
				border-color: transparent transparent transparent var(--ck-color-tooltip-background);
				border-width: var(--ck-tooltip-arrow-size) 0 var(--ck-tooltip-arrow-size) var(--ck-tooltip-arrow-size);
			}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-ui\theme\components\button\button.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Makes element unselectable.
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Enables the tooltip, which is the tooltip is in DOM but
 * not yet displayed.
 */

/**
 * Disables the tooltip making it disappear from DOM.
 */

/**
 * Shows the tooltip, which is already in DOM.
 * Requires `ck-tooltip_enabled` first.
 */

.ck.ck-button,
a.ck.ck-button {
	-webkit-user-select: none;
	user-select: none
}

.ck.ck-button .ck-tooltip, a.ck.ck-button .ck-tooltip {
		display: block

		/*
		 * Don't display tooltips in devices which don't support :hover.
		 * In fact, it's all about iOS, which forces user to click UI elements twice to execute
		 * the primary action, when tooltips are enabled.
		 *
		 * Q: OK, but why not the following query?
		 *
		 *   @media (hover) {
		 *       display: block;
		 *   }
		 *
		 * A: Because FF does not support it and it would completely disable tooltips
		 * in that browser.
		 *
		 * More in https://github.com/ckeditor/ckeditor5/issues/920.
		 */
	}

@media (hover:none) {

.ck.ck-button .ck-tooltip, a.ck.ck-button .ck-tooltip {
			display: none
	}
		}

.ck.ck-button,
a.ck.ck-button {

	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: left
}

.ck.ck-button .ck-button__label, a.ck.ck-button .ck-button__label {
		display: none;
	}

.ck.ck-button.ck-button_with-text .ck-button__label, a.ck.ck-button.ck-button_with-text .ck-button__label {
			display: inline-block;
		}

.ck.ck-button,
a.ck.ck-button {

	/* Center the icon horizontally in a button without text. */
}

.ck.ck-button:not(.ck-button_with-text),  a.ck.ck-button:not(.ck-button_with-text)  {
		justify-content: center;
	}

.ck.ck-button:hover .ck-tooltip, a.ck.ck-button:hover .ck-tooltip {
		visibility: visible;
		opacity: 1;
	}

.ck.ck-button,
a.ck.ck-button {

	/* Get rid of the native focus outline around the tooltip when focused (but not :hover). */
}

.ck.ck-button:focus:not(:hover) .ck-tooltip, a.ck.ck-button:focus:not(:hover) .ck-tooltip {
		display: none;
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\button\button.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A visual style of focused element's border.
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A helper to combine multiple shadows.
 */

/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A class which indicates that an element holding it is disabled.
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements a button of given background color.
 *
 * @param {String} $background - Background color of the button.
 * @param {String} $border - Border color of the button.
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-button,
a.ck.ck-button {
	background: var(--ck-color-button-default-background)
}

.ck.ck-button:not(.ck-disabled):hover, a.ck.ck-button:not(.ck-disabled):hover {
			background: var(--ck-color-button-default-hover-background);
		}

.ck.ck-button:not(.ck-disabled):active, a.ck.ck-button:not(.ck-disabled):active {
			background: var(--ck-color-button-default-active-background);
			box-shadow: inset 0 2px 2px var(--ck-color-button-default-active-shadow);
		}

.ck.ck-button,
a.ck.ck-button {
	/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */
}

.ck.ck-button.ck-disabled, a.ck.ck-button.ck-disabled {
		background: var(--ck-color-button-default-disabled-background);
	}

.ck.ck-button,
a.ck.ck-button {
	border-radius: 0
}

.ck-rounded-corners .ck.ck-button,
.ck.ck-button.ck-rounded-corners,
.ck-rounded-corners a.ck.ck-button,
a.ck.ck-button.ck-rounded-corners {
		border-radius: var(--ck-border-radius)
}

.ck.ck-button,
a.ck.ck-button {

	white-space: nowrap;
	cursor: default;
	vertical-align: middle;
	padding: var(--ck-spacing-tiny);
	text-align: center;

	/* A very important piece of styling. Go to variable declaration to learn more. */
	min-width: var(--ck-ui-component-min-height);
	min-height: var(--ck-ui-component-min-height);

	/* Normalize the height of the line. Removing this will break consistent height
	among text and text-less buttons (with icons). */
	line-height: 1;

	/* Enable font size inheritance, which allows fluid UI scaling. */
	font-size: inherit;

	/* Avoid flickering when the foucs border shows up. */
	border: 1px solid transparent;

	/* Apply some smooth transition to the box-shadow and border. */
	transition: box-shadow .2s ease-in-out, border .2s ease-in-out;

	/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/189 */
	-webkit-appearance: none
}

.ck.ck-button:active,
	.ck.ck-button:focus,
	a.ck.ck-button:active,
	a.ck.ck-button:focus {
		/* Disable native outline. */
		outline: none;
		border: var(--ck-focus-ring);
		box-shadow: var(--ck-focus-outer-shadow), 0 0;
	}

.ck.ck-button,
a.ck.ck-button {

	/* Allow icon coloring using the text "color" property. */
}

.ck.ck-button .ck-button__icon use,
		.ck.ck-button .ck-button__icon use *,
		a.ck.ck-button .ck-button__icon use,
		a.ck.ck-button .ck-button__icon use * {
			color: inherit;
		}

.ck.ck-button .ck-button__label, a.ck.ck-button .ck-button__label {
		/* Enable font size inheritance, which allows fluid UI scaling. */
		font-size: inherit;
		font-weight: inherit;
		color: inherit;
		cursor: inherit;

		/* Must be consistent with .ck-icon's vertical align. Otherwise, buttons with and
		without labels (but with icons) have different sizes in Chrome */
		vertical-align: middle
	}

[dir="ltr"] .ck.ck-button .ck-button__label, [dir="ltr"] a.ck.ck-button .ck-button__label {
			text-align: left
	}

[dir="rtl"] .ck.ck-button .ck-button__label, [dir="rtl"] a.ck.ck-button .ck-button__label {
			text-align: right
	}

.ck.ck-button .ck-button__keystroke, a.ck.ck-button .ck-button__keystroke {
		color: inherit;
	}

[dir="ltr"] .ck.ck-button .ck-button__keystroke, [dir="ltr"] a.ck.ck-button .ck-button__keystroke {
			margin-left: var(--ck-spacing-large);
	}

[dir="rtl"] .ck.ck-button .ck-button__keystroke, [dir="rtl"] a.ck.ck-button .ck-button__keystroke {
			margin-right: var(--ck-spacing-large);
	}

.ck.ck-button .ck-button__keystroke, a.ck.ck-button .ck-button__keystroke {

		font-weight: bold;
		opacity: .7;
	}

.ck.ck-button,
a.ck.ck-button {

	/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */
}

.ck.ck-button.ck-disabled:active,
		.ck.ck-button.ck-disabled:focus,
		a.ck.ck-button.ck-disabled:active,
		a.ck.ck-button.ck-disabled:focus {
			/* The disabled button should have a slightly less visible shadow when focused. */
			box-shadow: var(--ck-focus-disabled-outer-shadow), 0 0;
		}

.ck.ck-button.ck-disabled .ck-button__icon, a.ck.ck-button.ck-disabled .ck-button__icon {
			opacity: var(--ck-disabled-opacity);
		}

.ck.ck-button.ck-disabled, a.ck.ck-button.ck-disabled {

		/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */
	}

.ck.ck-button.ck-disabled .ck-button__label, a.ck.ck-button.ck-disabled .ck-button__label {
			opacity: var(--ck-disabled-opacity);
		}

.ck.ck-button.ck-disabled .ck-button__keystroke, a.ck.ck-button.ck-disabled .ck-button__keystroke {
			opacity: .3;
		}

.ck.ck-button.ck-button_with-text, a.ck.ck-button.ck-button_with-text {
		padding: var(--ck-spacing-tiny) var(--ck-spacing-standard)

		/* stylelint-disable-next-line no-descending-specificity */
	}

[dir="ltr"] .ck.ck-button.ck-button_with-text .ck-button__icon, [dir="ltr"] a.ck.ck-button.ck-button_with-text .ck-button__icon {
				margin-left: calc(-1 * var(--ck-spacing-small));
				margin-right: var(--ck-spacing-small)
		}

[dir="rtl"] .ck.ck-button.ck-button_with-text .ck-button__icon, [dir="rtl"] a.ck.ck-button.ck-button_with-text .ck-button__icon {
				margin-right: calc(-1 * var(--ck-spacing-small));
				margin-left: var(--ck-spacing-small)
		}

.ck.ck-button.ck-button_with-keystroke, a.ck.ck-button.ck-button_with-keystroke {
		/* stylelint-disable-next-line no-descending-specificity */
	}

.ck.ck-button.ck-button_with-keystroke .ck-button__label, a.ck.ck-button.ck-button_with-keystroke .ck-button__label {
			flex-grow: 1;
		}

.ck.ck-button,
a.ck.ck-button {

	/* A style of the button which is currently on, e.g. its feature is active. */
}

.ck.ck-button.ck-on, a.ck.ck-button.ck-on {
		background: var(--ck-color-button-on-background);
	}

.ck.ck-button.ck-on:not(.ck-disabled):hover, a.ck.ck-button.ck-on:not(.ck-disabled):hover {
			background: var(--ck-color-button-on-hover-background);
		}

.ck.ck-button.ck-on:not(.ck-disabled):active, a.ck.ck-button.ck-on:not(.ck-disabled):active {
			background: var(--ck-color-button-on-active-background);
			box-shadow: inset 0 2px 2px var(--ck-color-button-on-active-shadow);
		}

.ck.ck-button.ck-on, a.ck.ck-button.ck-on {
		/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */
	}

.ck.ck-button.ck-on.ck-disabled, a.ck.ck-button.ck-on.ck-disabled {
		background: var(--ck-color-button-on-disabled-background);
	}

.ck.ck-button.ck-button-save, a.ck.ck-button.ck-button-save {
		color: var(--ck-color-button-save);
	}

.ck.ck-button.ck-button-cancel, a.ck.ck-button.ck-button-cancel {
		color: var(--ck-color-button-cancel);
	}

/* A style of the button which handles the primary action. */

.ck.ck-button-action,
a.ck.ck-button-action {
	background: var(--ck-color-button-action-background);
}

.ck.ck-button-action:not(.ck-disabled):hover, a.ck.ck-button-action:not(.ck-disabled):hover {
			background: var(--ck-color-button-action-hover-background);
		}

.ck.ck-button-action:not(.ck-disabled):active, a.ck.ck-button-action:not(.ck-disabled):active {
			background: var(--ck-color-button-action-active-background);
			box-shadow: inset 0 2px 2px var(--ck-color-button-action-active-shadow);
		}

.ck.ck-button-action,
a.ck.ck-button-action {
	/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */
}

.ck.ck-button-action.ck-disabled, a.ck.ck-button-action.ck-disabled {
		background: var(--ck-color-button-action-disabled-background);
	}

.ck.ck-button-action,
a.ck.ck-button-action {

	color: var(--ck-color-button-action-text);
}

.ck.ck-button-bold,
a.ck.ck-button-bold {
	font-weight: bold;
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-ui\theme\components\dropdown\dropdown.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Enables the tooltip, which is the tooltip is in DOM but
 * not yet displayed.
 */

/**
 * Disables the tooltip making it disappear from DOM.
 */

/**
 * Shows the tooltip, which is already in DOM.
 * Requires `ck-tooltip_enabled` first.
 */

:root {
	--ck-dropdown-max-width: 75vw;
}

.ck.ck-dropdown {
	display: inline-block;
	position: relative
}

.ck.ck-dropdown .ck-dropdown__arrow {
		pointer-events: none;
		z-index: var(--ck-z-default);
	}

.ck.ck-dropdown {

	/* Dropdown button should span horizontally, e.g. in vertical toolbars */
}

.ck.ck-dropdown .ck-button.ck-dropdown__button {
		width: 100%

		/* Disable main button's tooltip when the dropdown is open. Otherwise the panel may
		partially cover the tooltip */
	}

.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on .ck-tooltip {
		display: none;
	}

.ck.ck-dropdown .ck-dropdown__panel {
		/* This is to get rid of flickering when the tooltip is shown under the panel,
		which looks like the panel moves vertically a pixel down and up. */
		-webkit-backface-visibility: hidden;

		display: none;
		z-index: var(--ck-z-modal);
		max-width: var(--ck-dropdown-max-width);

		position: absolute
	}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel-visible {
			display: inline-block;
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme {
			bottom: 100%;
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s {
			/*
			 * Using transform: translate3d( 0, 100%, 0 ) causes blurry dropdown on Chrome 67-78+ on non-retina displays.
			 * See https://github.com/ckeditor/ckeditor5/issues/1053.
			 */
			top: 100%;
			bottom: auto;
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se {
			left: 0px;
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw {
			right: 0px;
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n {
			/* Positioning panels relative to the center of the button */
			left: 50%;
			transform: translateX(-50%);
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw {
			/* Positioning panels relative to the middle-west of the button */
			left: 75%;
			transform: translateX(-75%);
		}

.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,
		.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme {
			/* Positioning panels relative to the middle-east of the button */
			left: 25%;
			transform: translateX(-25%);
		}

/*
 * Toolbar dropdown panels should be always above the UI (eg. other dropdown panels) from the editor's content.
 * See https://github.com/ckeditor/ckeditor5/issues/7874
 */

.ck.ck-toolbar .ck-dropdown__panel {
	z-index: calc( var(--ck-z-modal) + 1 );
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\dropdown\dropdown.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A class which indicates that an element holding it is disabled.
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A helper to combine multiple shadows.
 */

/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-dropdown-arrow-size: calc(0.5 * var(--ck-icon-size));
}

.ck.ck-dropdown {
	/* Enable font size inheritance, which allows fluid UI scaling. */
	font-size: inherit
}

.ck.ck-dropdown .ck-dropdown__arrow {
		width: var(--ck-dropdown-arrow-size);
	}

[dir="ltr"] .ck.ck-dropdown .ck-dropdown__arrow {
			right: var(--ck-spacing-standard);

			/* A space to accommodate the triangle. */
			margin-left: var(--ck-spacing-standard);
		}

[dir="rtl"] .ck.ck-dropdown .ck-dropdown__arrow {
			left: var(--ck-spacing-standard);

			/* A space to accommodate the triangle. */
			margin-right: var(--ck-spacing-small);
		}

.ck.ck-dropdown.ck-disabled .ck-dropdown__arrow {
		opacity: var(--ck-disabled-opacity);
	}

[dir="ltr"] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text) {
				/* Make sure dropdowns with just an icon have the right inner spacing */
				padding-left: var(--ck-spacing-small);
			}

[dir="rtl"] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text) {
				/* Make sure dropdowns with just an icon have the right inner spacing */
				padding-right: var(--ck-spacing-small);
			}

.ck.ck-dropdown .ck-button.ck-dropdown__button {

		/* #23 */
	}

.ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label {
			width: 7em;
			overflow: hidden;
			text-overflow: ellipsis;
		}

.ck.ck-dropdown .ck-button.ck-dropdown__button {

		/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */
	}

.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled .ck-button__label {
			opacity: var(--ck-disabled-opacity);
		}

.ck.ck-dropdown .ck-button.ck-dropdown__button {

		/* https://github.com/ckeditor/ckeditor5/issues/816 */
	}

.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on {
			border-bottom-left-radius: 0;
			border-bottom-right-radius: 0;
		}

.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-dropdown__button_label-width_auto .ck-button__label {
			width: auto;
		}

.ck.ck-dropdown .ck-button.ck-dropdown__button {

		/* https://github.com/ckeditor/ckeditor5/issues/8699 */
	}

.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active,
		.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active {
			box-shadow: none
		}

.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active:focus, .ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active:focus {
				box-shadow: var(--ck-focus-outer-shadow), 0 0;
			}

.ck.ck-dropdown__panel {
	border-radius: 0
}

.ck-rounded-corners .ck.ck-dropdown__panel, .ck.ck-dropdown__panel.ck-rounded-corners {
		border-radius: var(--ck-border-radius)
}

.ck.ck-dropdown__panel {
	box-shadow: var(--ck-drop-shadow), 0 0;

	background: var(--ck-color-dropdown-panel-background);
	border: 1px solid var(--ck-color-dropdown-panel-border);
	bottom: 0;

	/* Make sure the panel is at least as wide as the drop-down's button. */
	min-width: 100%

	/* Disabled corner border radius to be consistent with the .dropdown__button
	https://github.com/ckeditor/ckeditor5/issues/816 */
}

.ck.ck-dropdown__panel.ck-dropdown__panel_se {
		border-top-left-radius: 0;
	}

.ck.ck-dropdown__panel.ck-dropdown__panel_sw {
		border-top-right-radius: 0;
	}

.ck.ck-dropdown__panel.ck-dropdown__panel_ne {
		border-bottom-left-radius: 0;
	}

.ck.ck-dropdown__panel.ck-dropdown__panel_nw {
		border-bottom-right-radius: 0;
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-ui\theme\components\toolbar\toolbar.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Makes element unselectable.
 */

.ck.ck-toolbar {
	-webkit-user-select: none;
	user-select: none;

	display: flex;
	flex-flow: row nowrap;
	align-items: center
}

.ck.ck-toolbar > .ck-toolbar__items {
		display: flex;
		flex-flow: row wrap;
		align-items: center;
		flex-grow: 1;

	}

.ck.ck-toolbar .ck.ck-toolbar__separator {
		display: inline-block

		/*
		 * A leading or trailing separator makes no sense (separates from nothing on one side).
		 * For instance, it can happen when toolbar items (also separators) are getting grouped one by one and
		 * moved to another toolbar in the dropdown.
		 */
	}

.ck.ck-toolbar .ck.ck-toolbar__separator:first-child,
		.ck.ck-toolbar .ck.ck-toolbar__separator:last-child {
			display: none;
		}

.ck.ck-toolbar .ck-toolbar__line-break {
		flex-basis: 100%;
	}

.ck.ck-toolbar.ck-toolbar_grouping > .ck-toolbar__items {
		flex-wrap: nowrap;
	}

.ck.ck-toolbar.ck-toolbar_vertical > .ck-toolbar__items {
		flex-direction: column;
	}

.ck.ck-toolbar.ck-toolbar_floating > .ck-toolbar__items {
		flex-wrap: nowrap;
	}

.ck.ck-toolbar > .ck.ck-toolbar__grouped-dropdown > .ck-dropdown__button .ck-dropdown__arrow {
			display: none;
		}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\toolbar\toolbar.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-toolbar {
	border-radius: 0
}

.ck-rounded-corners .ck.ck-toolbar, .ck.ck-toolbar.ck-rounded-corners {
		border-radius: var(--ck-border-radius)
}

.ck.ck-toolbar {

	background: var(--ck-color-toolbar-background);
	padding: 0 var(--ck-spacing-small);
	border: 1px solid var(--ck-color-toolbar-border)
}

.ck.ck-toolbar .ck.ck-toolbar__separator {
		align-self: stretch;
		width: 1px;
		min-width: 1px;
		background: var(--ck-color-toolbar-border);

		/*
		 * These margins make the separators look better in balloon toolbars (when aligned with the "tip").
		 * See https://github.com/ckeditor/ckeditor5/issues/7493.
		 */
		margin-top: var(--ck-spacing-small);
		margin-bottom: var(--ck-spacing-small);
	}

.ck.ck-toolbar .ck-toolbar__line-break {
		height: 0;
	}

.ck.ck-toolbar > .ck-toolbar__items > *:not(.ck-toolbar__line-break) {
			/* (#11) Separate toolbar items. */
			margin-right: var(--ck-spacing-small);
		}

.ck.ck-toolbar > .ck-toolbar__items {

		/* Don't display a separator after an empty items container, for instance,
		when all items were grouped */
	}

.ck.ck-toolbar > .ck-toolbar__items:empty + .ck.ck-toolbar__separator {
			display: none;
		}

.ck.ck-toolbar > .ck-toolbar__items > *:not(.ck-toolbar__line-break),
	.ck.ck-toolbar > .ck.ck-toolbar__grouped-dropdown {
		/* Make sure items wrapped to the next line have v-spacing */
		margin-top: var(--ck-spacing-small);
		margin-bottom: var(--ck-spacing-small);
	}

.ck.ck-toolbar.ck-toolbar_vertical {
		/* Items in a vertical toolbar span the entire width. */
		padding: 0

		/* Specificity matters here. See https://github.com/ckeditor/ckeditor5-theme-lark/issues/168. */
	}

.ck.ck-toolbar.ck-toolbar_vertical > .ck-toolbar__items > .ck {
			/* Items in a vertical toolbar should span the horizontal space. */
			width: 100%;

			/* Items in a vertical toolbar should have no margin. */
			margin: 0;

			/* Items in a vertical toolbar span the entire width so rounded corners are pointless. */
			border-radius: 0;

			/* Items in a vertical toolbar span the entire width so any border is pointless. */
			border: 0;
		}

.ck.ck-toolbar.ck-toolbar_compact {
		/* No spacing around items. */
		padding: 0
	}

.ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > * {
			/* Compact toolbar items have no spacing between them. */
			margin: 0

			/* "Middle" children should have no rounded corners. */
		}

.ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > *:not(:first-child):not(:last-child) {
				border-radius: 0;
			}

.ck.ck-toolbar > .ck.ck-toolbar__grouped-dropdown {
		/*
		 * Dropdown button has asymmetric padding to fit the arrow.
		 * This button has no arrow so let's revert that padding back to normal.
		 */
	}

.ck.ck-toolbar > .ck.ck-toolbar__grouped-dropdown > .ck.ck-button.ck-dropdown__button {
			padding-left: var(--ck-spacing-tiny);
		}

.ck-toolbar-container .ck.ck-toolbar {
		border: 0
}

/* stylelint-disable */

/*
 * Styles for RTL toolbars.
 *
 * Note: In some cases (e.g. a decoupled editor), the toolbar has its own "dir"
 * because its parent is not controlled by the editor framework.
 */

[dir="rtl"] .ck.ck-toolbar > .ck-toolbar__items > .ck, .ck.ck-toolbar[dir="rtl"] > .ck-toolbar__items > .ck {
		margin-right: 0;
	}

[dir="rtl"] .ck.ck-toolbar:not(.ck-toolbar_compact) > .ck-toolbar__items > .ck, .ck.ck-toolbar[dir="rtl"]:not(.ck-toolbar_compact) > .ck-toolbar__items > .ck {
		/* (#11) Separate toolbar items. */
		margin-left: var(--ck-spacing-small);
	}

[dir="rtl"] .ck.ck-toolbar > .ck-toolbar__items > .ck:last-child, .ck.ck-toolbar[dir="rtl"] > .ck-toolbar__items > .ck:last-child {
		margin-left: 0;
	}

[dir="rtl"] .ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > .ck, .ck.ck-toolbar[dir="rtl"].ck-toolbar_compact > .ck-toolbar__items > .ck {
		/* No rounded corners on the right side of the first child. */
	}

[dir="rtl"] .ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > .ck:first-child, .ck.ck-toolbar[dir="rtl"].ck-toolbar_compact > .ck-toolbar__items > .ck:first-child {
			border-top-left-radius: 0;
			border-bottom-left-radius: 0;
		}

[dir="rtl"] .ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > .ck, .ck.ck-toolbar[dir="rtl"].ck-toolbar_compact > .ck-toolbar__items > .ck {

		/* No rounded corners on the left side of the last child. */
	}

[dir="rtl"] .ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > .ck:last-child, .ck.ck-toolbar[dir="rtl"].ck-toolbar_compact > .ck-toolbar__items > .ck:last-child {
			border-top-right-radius: 0;
			border-bottom-right-radius: 0;
		}

[dir="rtl"] .ck.ck-toolbar,
.ck.ck-toolbar[dir="rtl"] {

	/* Separate the the separator form the grouping dropdown when some items are grouped. */
}

[dir="rtl"] .ck.ck-toolbar > .ck.ck-toolbar__separator, .ck.ck-toolbar[dir="rtl"] > .ck.ck-toolbar__separator {
		margin-left: var(--ck-spacing-small);
	}

[dir="rtl"] .ck.ck-toolbar,
.ck.ck-toolbar[dir="rtl"] {

	/* Some spacing between the items and the separator before the grouped items dropdown. */
}

[dir="rtl"] .ck.ck-toolbar.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child), .ck.ck-toolbar[dir="rtl"].ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) {
		margin-left: var(--ck-spacing-small);
	}

/*
 * Styles for LTR toolbars.
 *
 * Note: In some cases (e.g. a decoupled editor), the toolbar has its own "dir"
 * because its parent is not controlled by the editor framework.
 */

[dir="ltr"] .ck.ck-toolbar > .ck-toolbar__items > .ck:last-child, .ck.ck-toolbar[dir="ltr"] > .ck-toolbar__items > .ck:last-child {
		margin-right: 0;
	}

[dir="ltr"] .ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > .ck, .ck.ck-toolbar[dir="ltr"].ck-toolbar_compact > .ck-toolbar__items > .ck {
		/* No rounded corners on the right side of the first child. */
	}

[dir="ltr"] .ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > .ck:first-child, .ck.ck-toolbar[dir="ltr"].ck-toolbar_compact > .ck-toolbar__items > .ck:first-child {
			border-top-right-radius: 0;
			border-bottom-right-radius: 0;
		}

[dir="ltr"] .ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > .ck, .ck.ck-toolbar[dir="ltr"].ck-toolbar_compact > .ck-toolbar__items > .ck {

		/* No rounded corners on the left side of the last child. */
	}

[dir="ltr"] .ck.ck-toolbar.ck-toolbar_compact > .ck-toolbar__items > .ck:last-child, .ck.ck-toolbar[dir="ltr"].ck-toolbar_compact > .ck-toolbar__items > .ck:last-child {
			border-top-left-radius: 0;
			border-bottom-left-radius: 0;
		}

[dir="ltr"] .ck.ck-toolbar,
.ck.ck-toolbar[dir="ltr"] {

	/* Separate the the separator form the grouping dropdown when some items are grouped. */
}

[dir="ltr"] .ck.ck-toolbar > .ck.ck-toolbar__separator, .ck.ck-toolbar[dir="ltr"] > .ck.ck-toolbar__separator {
		margin-right: var(--ck-spacing-small);
	}

[dir="ltr"] .ck.ck-toolbar,
.ck.ck-toolbar[dir="ltr"] {

	/* Some spacing between the items and the separator before the grouped items dropdown. */
}

[dir="ltr"] .ck.ck-toolbar.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child), .ck.ck-toolbar[dir="ltr"].ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) {
		margin-right: var(--ck-spacing-small);
	}

/* stylelint-enable */

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-ui\theme\components\list\list.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Makes element unselectable.
 */

.ck.ck-list {
	-webkit-user-select: none;
	user-select: none;

	display: flex;
	flex-direction: column
}

.ck.ck-list .ck-list__item,
	.ck.ck-list .ck-list__separator {
		display: block;
	}

.ck.ck-list {

	/* Make sure that whatever child of the list item gets focus, it remains on the
	top. Thanks to that, styles like box-shadow, outline, etc. are not masked by
	adjacent list items. */
}

.ck.ck-list .ck-list__item > *:focus {
		position: relative;
		z-index: var(--ck-z-default);
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\list\list.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A class which indicates that an element holding it is disabled.
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A helper to combine multiple shadows.
 */

/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */

.ck.ck-list {
	border-radius: 0;
}

.ck-rounded-corners .ck.ck-list, .ck.ck-list.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
}

.ck.ck-list {

	list-style-type: none;
	background: var(--ck-color-list-background);
}

.ck.ck-list__item {
	cursor: default;
	min-width: 12em
}

.ck.ck-list__item .ck-button {
		min-height: unset;
		width: 100%;
		text-align: left;
		border-radius: 0;

		/* List items should have the same height. Use absolute units to make sure it is so
		   because e.g. different heading styles may have different height
		   https://github.com/ckeditor/ckeditor5-heading/issues/63 */
		padding:
			calc(.2 * var(--ck-line-height-base) * var(--ck-font-size-base))
			calc(.4 * var(--ck-line-height-base) * var(--ck-font-size-base))
	}

.ck.ck-list__item .ck-button .ck-button__label {
			/* https://github.com/ckeditor/ckeditor5-heading/issues/63 */
			line-height: calc(1.2 * var(--ck-line-height-base) * var(--ck-font-size-base));
		}

.ck.ck-list__item .ck-button:active {
			box-shadow: none;
		}

.ck.ck-list__item .ck-button.ck-on {
			background: var(--ck-color-list-button-on-background);
			color: var(--ck-color-list-button-on-text)
		}

.ck.ck-list__item .ck-button.ck-on:active {
				box-shadow: none;
			}

.ck.ck-list__item .ck-button.ck-on:hover:not(.ck-disabled) {
				background: var(--ck-color-list-button-on-background-focus);
			}

.ck.ck-list__item .ck-button.ck-on:focus:not(.ck-disabled) {
				border-color: var(--ck-color-base-background);
			}

.ck.ck-list__item .ck-button:hover:not(.ck-disabled) {
			background: var(--ck-color-list-button-hover-background);
		}

.ck.ck-list__item {

	/* It's unnecessary to change the background/text of a switch toggle; it has different ways
	of conveying its state (like the switcher) */
}

.ck.ck-list__item .ck-switchbutton.ck-on {
			background: var(--ck-color-list-background);
			color: inherit
		}

.ck.ck-list__item .ck-switchbutton.ck-on:hover:not(.ck-disabled) {
				background: var(--ck-color-list-button-hover-background);
				color: inherit;
			}

.ck.ck-list__separator {
	height: 1px;
	width: 100%;
	background: var(--ck-color-base-border);
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-ui\theme\components\button\switchbutton.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-button.ck-switchbutton .ck-button__toggle {
		display: block
	}

.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner {
			display: block;
		}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\button\switchbutton.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A class which indicates that an element holding it is disabled.
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/* Note: To avoid rendering issues (aliasing) but to preserve the responsive nature
of the component, floating–point numbers have been used which, for the default font size
(see: --ck-font-size-base), will generate simple integers. */

:root {
	/* 34px at 13px font-size */
	--ck-switch-button-toggle-width: 2.6153846154em;
	/* 14px at 13px font-size */
	--ck-switch-button-toggle-inner-size: 1.0769230769em;
	--ck-switch-button-toggle-spacing: 1px;
	--ck-switch-button-translation: calc(
		var(--ck-switch-button-toggle-width) -
		var(--ck-switch-button-toggle-inner-size) -
		2 * var(--ck-switch-button-toggle-spacing)
	);
}

[dir="ltr"] .ck.ck-button.ck-switchbutton .ck-button__label {
			/* Separate the label from the switch */
			margin-right: calc(2 * var(--ck-spacing-large))
	}

[dir="rtl"] .ck.ck-button.ck-switchbutton .ck-button__label {
			/* Separate the label from the switch */
			margin-left: calc(2 * var(--ck-spacing-large))
	}

.ck.ck-button.ck-switchbutton .ck-button__toggle {
		border-radius: 0
	}

.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle, .ck.ck-button.ck-switchbutton .ck-button__toggle.ck-rounded-corners {
		border-radius: var(--ck-border-radius)
	}

[dir="ltr"] .ck.ck-button.ck-switchbutton .ck-button__toggle {
			/* Make sure the toggle is always to the right as far as possible. */
			margin-left: auto
	}

[dir="rtl"] .ck.ck-button.ck-switchbutton .ck-button__toggle {
			/* Make sure the toggle is always to the left as far as possible. */
			margin-right: auto
	}

.ck.ck-button.ck-switchbutton .ck-button__toggle {

		/* Gently animate the background color of the toggle switch */
		transition: background 400ms ease;

		width: var(--ck-switch-button-toggle-width);
		background: var(--ck-color-switch-button-off-background)
	}

.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner {
			border-radius: 0;
		}

.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner, .ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
				border-radius: calc(.5 * var(--ck-border-radius));
		}

.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner {

			/* Leave some tiny bit of space around the inner part of the switch */
			margin: var(--ck-switch-button-toggle-spacing);
			width: var(--ck-switch-button-toggle-inner-size);
			height: var(--ck-switch-button-toggle-inner-size);
			background: var(--ck-color-switch-button-inner-background);

			/* Gently animate the inner part of the toggle switch */
			transition: all 300ms ease;
		}

.ck.ck-button.ck-switchbutton .ck-button__toggle:hover {
			background: var(--ck-color-switch-button-off-hover-background)
		}

.ck.ck-button.ck-switchbutton .ck-button__toggle:hover .ck-button__toggle__inner {
				box-shadow: 0 0 0 5px var(--ck-color-switch-button-inner-shadow);
			}

.ck.ck-button.ck-switchbutton.ck-disabled .ck-button__toggle {
		opacity: var(--ck-disabled-opacity);
	}

.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle {
		background: var(--ck-color-switch-button-on-background)
	}

.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle:hover {
			background: var(--ck-color-switch-button-on-hover-background);
		}

.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner {
			/*
			 * Move the toggle switch to the right. It will be animated.
			 */
		}

[dir="ltr"] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner {
				transform: translateX( var( --ck-switch-button-translation ) )
		}

[dir="rtl"] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner {
				transform: translateX( calc( -1 * var( --ck-switch-button-translation ) ) )
		}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-ui\theme\components\dropdown\toolbardropdown.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-toolbar-dropdown-max-width: 60vw;
}

.ck.ck-toolbar-dropdown > .ck-dropdown__panel {
	/* https://github.com/ckeditor/ckeditor5/issues/5586 */
	width: max-content;
	max-width: var(--ck-toolbar-dropdown-max-width)
}

.ck.ck-toolbar-dropdown > .ck-dropdown__panel .ck-button:focus {
			z-index: calc(var(--ck-z-default) + 1);
		}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\dropdown\toolbardropdown.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-toolbar-dropdown .ck-toolbar {
	border: 0;
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-ui\theme\components\dropdown\listdropdown.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Note: This file should contain the wireframe styles only. But since there are no such styles,
 * it acts as a message to the builder telling that it should look for the corresponding styles
 * **in the theme** when compiling the editor.
 */

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\dropdown\listdropdown.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

.ck.ck-dropdown .ck-dropdown__panel .ck-list {
	/* Disabled radius of top-left border to be consistent with .dropdown__button
	https://github.com/ckeditor/ckeditor5/issues/816 */
	border-radius: 0
}

.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list, .ck.ck-dropdown .ck-dropdown__panel .ck-list.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
		border-top-left-radius: 0
}

.ck.ck-dropdown .ck-dropdown__panel .ck-list {

	/* Make sure the button belonging to the first/last child of the list goes well with the
	border radius of the entire panel. */
}

.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button {
			border-radius: 0
		}

.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button, .ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
				border-top-left-radius: 0;
				border-bottom-left-radius: 0;
				border-bottom-right-radius: 0
		}

.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button {
			border-radius: 0
		}

.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button, .ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
				border-top-left-radius: 0;
				border-top-right-radius: 0
		}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-engine\theme\placeholder.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/* See ckeditor/ckeditor5#936. */

.ck.ck-placeholder::before, .ck .ck-placeholder::before {
		content: attr(data-placeholder);

		/* See ckeditor/ckeditor5#469. */
		pointer-events: none;
	}

/* See ckeditor/ckeditor5#1987. */

.ck.ck-read-only .ck-placeholder::before {
		display: none;
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-engine\placeholder.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/* See ckeditor/ckeditor5#936. */

.ck.ck-placeholder::before, .ck .ck-placeholder::before {
		cursor: text;
		color: var(--ck-color-engine-placeholder-text);
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-ui\theme\components\editorui\editorui.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Note: This file should contain the wireframe styles only. But since there are no such styles,
 * it acts as a message to the builder telling that it should look for the corresponding styles
 * **in the theme** when compiling the editor.
 */

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\editorui\editorui.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A class which indicates that an element holding it is disabled.
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A helper to combine multiple shadows.
 */

/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A visual style of focused element's border.
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements a button of given background color.
 *
 * @param {String} $background - Background color of the button.
 * @param {String} $border - Border color of the button.
 */

:root {
	--ck-color-editable-blur-selection: hsl(0, 0%, 85%);
}

.ck.ck-editor__editable:not(.ck-editor__nested-editable) {
	border-radius: 0
}

.ck-rounded-corners .ck.ck-editor__editable:not(.ck-editor__nested-editable), .ck.ck-editor__editable:not(.ck-editor__nested-editable).ck-rounded-corners {
		border-radius: var(--ck-border-radius)
}

.ck.ck-editor__editable:not(.ck-editor__nested-editable).ck-focused {
		/* Disable native outline. */
		outline: none;
		border: var(--ck-focus-ring);
		box-shadow: var(--ck-inner-shadow), 0 0;
	}

.ck.ck-editor__editable_inline {
	overflow: auto;
	padding: 0 var(--ck-spacing-standard);
	border: 1px solid transparent
}

.ck.ck-editor__editable_inline[dir="ltr"] {
		text-align: left;
	}

.ck.ck-editor__editable_inline[dir="rtl"] {
		text-align: right;
	}

.ck.ck-editor__editable_inline {

	/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/116 */
}

.ck.ck-editor__editable_inline > *:first-child {
		margin-top: var(--ck-spacing-large);
	}

.ck.ck-editor__editable_inline {

	/* https://github.com/ckeditor/ckeditor5/issues/847 */
}

.ck.ck-editor__editable_inline > *:last-child {
		margin-bottom: var(--ck-spacing-large);
	}

.ck.ck-editor__editable_inline {

	/* https://github.com/ckeditor/ckeditor5/issues/6517 */
}

.ck.ck-editor__editable_inline.ck-blurred ::selection {
		background: var(--ck-color-editable-blur-selection);
	}

/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/111 */

.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_n"]::after {
		border-bottom-color: var(--ck-color-base-foreground);
	}

.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_s"]::after {
		border-top-color: var(--ck-color-base-foreground);
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-ui\theme\components\label\label.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-label {
	display: block;
}

.ck.ck-voice-label {
	display: none;
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\label\label.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-label {
	font-weight: bold;
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-ui\theme\components\panel\stickypanel.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-sticky-panel .ck-sticky-panel__content_sticky {
		z-index: var(--ck-z-modal); /* #315 */
		position: fixed;
		top: 0;
	}

.ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit {
		top: auto;
		position: absolute;
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\panel\stickypanel.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A helper to combine multiple shadows.
 */

/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */

.ck.ck-sticky-panel .ck-sticky-panel__content_sticky {
		box-shadow: var(--ck-drop-shadow), 0 0;

		border-width: 0 1px 1px;
		border-top-left-radius: 0;
		border-top-right-radius: 0;
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-editor-classic\theme\classiceditor.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-editor {
	/* All the elements within `.ck-editor` are positioned relatively to it.
	 If any element needs to be positioned with respect to the <body>, etc.,
	 it must land outside of the `.ck-editor` in DOM. */
	position: relative
}

.ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar {
		/* https://github.com/ckeditor/ckeditor5-editor-classic/issues/62 */
		z-index: var(--ck-z-modal);
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-editor-classic\classiceditor.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

.ck.ck-editor__top .ck-sticky-panel .ck-toolbar {
			border-radius: 0;
		}

.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-toolbar, .ck.ck-editor__top .ck-sticky-panel .ck-toolbar.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
				border-bottom-left-radius: 0;
				border-bottom-right-radius: 0;
		}

.ck.ck-editor__top .ck-sticky-panel .ck-toolbar {

			border-bottom-width: 0;
		}

.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar {
			border-bottom-width: 1px;

			border-radius: 0
		}

.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar, .ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
				border-radius: 0
		}

/* Note: Use ck-editor__main to make sure these styles don't apply to other editor types */

.ck.ck-editor__main > .ck-editor__editable {
	/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/113 */
	background: var(--ck-color-base-background);

	border-radius: 0
}

.ck-rounded-corners .ck.ck-editor__main > .ck-editor__editable, .ck.ck-editor__main > .ck-editor__editable.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
		border-top-left-radius: 0;
		border-top-right-radius: 0
}

.ck.ck-editor__main > .ck-editor__editable:not(.ck-focused) {
		border-color: var(--ck-color-base-border);
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-heading\theme\heading.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-heading_heading1 {
	font-size: 20px;
}

.ck.ck-heading_heading2 {
	font-size: 17px;
}

.ck.ck-heading_heading3 {
	font-size: 14px;
}

.ck[class*="ck-heading_heading"] {
	font-weight: bold;
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-heading\heading.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/* Resize dropdown's button label. */

.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label {
		width: 8em;
	}

.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__panel .ck-list__item {
		min-width: 18em;
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-link\theme\link.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Note: This file should contain the wireframe styles only. But since there are no such styles,
 * it acts as a message to the builder telling that it should look for the corresponding styles
 * **in the theme** when compiling the editor.
 */

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-link\link.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/* Class added to span element surrounding currently selected link. */

.ck .ck-link_selected {
	background: var(--ck-color-link-selected-background);
}

/*
 * Classes used by the "fake visual selection" displayed in the content when an input
 * in the link UI has focus (the browser does not render the native selection in this state).
 */

.ck .ck-fake-link-selection {
	background: var(--ck-color-link-fake-selection);
}

/* A collapsed fake visual selection. */

.ck .ck-fake-link-selection_collapsed {
	height: 100%;
	border-right: 1px solid var(--ck-color-base-text);
	margin-right: -1px;
	outline: solid 1px hsla(0, 0%, 100%, .5);
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-ui\theme\components\panel\balloonrotator.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck .ck-balloon-rotator__navigation {
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Buttons inside a toolbar should be centered when rotator bar is wider.
 * See: https://github.com/ckeditor/ckeditor5-ui/issues/495
 */

.ck .ck-balloon-rotator__content .ck-toolbar {
	justify-content: center;
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\panel\balloonrotator.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck .ck-balloon-rotator__navigation {
	background: var(--ck-color-toolbar-background);
	border-bottom: 1px solid var(--ck-color-toolbar-border);
	padding: 0 var(--ck-spacing-small)

	/* Let's keep similar appearance to `ck-toolbar`. */
}

.ck .ck-balloon-rotator__navigation > * {
		margin-right: var(--ck-spacing-small);
		margin-top: var(--ck-spacing-small);
		margin-bottom: var(--ck-spacing-small);
	}

.ck .ck-balloon-rotator__navigation {

	/* Gives counter more breath than buttons. */
}

.ck .ck-balloon-rotator__navigation .ck-balloon-rotator__counter {
		margin-right: var(--ck-spacing-standard);

		/* We need to use smaller margin because of previous button's right margin. */
		margin-left: var(--ck-spacing-small);
	}

.ck .ck-balloon-rotator__content {

	/* Disable default annotation shadow inside rotator with fake panels. */
}

.ck .ck-balloon-rotator__content .ck.ck-annotation-wrapper {
		box-shadow: none;
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-ui\theme\components\panel\fakepanel.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck .ck-fake-panel {
	position: absolute;

	/* Fake panels should be placed under main balloon content. */
	z-index: calc(var(--ck-z-modal) - 1);
}

.ck .ck-fake-panel div {
	position: absolute;
}

.ck .ck-fake-panel div:nth-child( 1 ) {
	z-index: 2;
}

.ck .ck-fake-panel div:nth-child( 2 ) {
	z-index: 1;
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\panel\fakepanel.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A helper to combine multiple shadows.
 */

/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */

:root {
	--ck-balloon-fake-panel-offset-horizontal: 6px;
	--ck-balloon-fake-panel-offset-vertical: 6px;
}

/* Let's use `.ck-balloon-panel` appearance. See: balloonpanel.css. */

.ck .ck-fake-panel div {
	box-shadow: var(--ck-drop-shadow), 0 0;

	min-height: 15px;

	background: var(--ck-color-panel-background);
	border: 1px solid var(--ck-color-panel-border);
	border-radius: var(--ck-border-radius);

	width: 100%;
	height: 100%;
}

.ck .ck-fake-panel div:nth-child( 1 ) {
	margin-left: var(--ck-balloon-fake-panel-offset-horizontal);
	margin-top: var(--ck-balloon-fake-panel-offset-vertical);
}

.ck .ck-fake-panel div:nth-child( 2 ) {
	margin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 2);
	margin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 2);
}

.ck .ck-fake-panel div:nth-child( 3 ) {
	margin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 3);
	margin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 3);
}

/* If balloon is positioned above element, we need to move fake panel to the top. */

.ck .ck-balloon-panel_arrow_s + .ck-fake-panel,
.ck .ck-balloon-panel_arrow_se + .ck-fake-panel,
.ck .ck-balloon-panel_arrow_sw + .ck-fake-panel {
	--ck-balloon-fake-panel-offset-vertical: -6px;
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-ui\theme\components\labeledfield\labeledfieldview.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper {
		display: flex;
		position: relative;
	}

.ck.ck-labeled-field-view .ck.ck-label {
		display: block;
		position: absolute;
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\labeledfield\labeledfieldview.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

:root {
	--ck-labeled-field-view-transition: .1s cubic-bezier(0, 0, 0.24, 0.95);
	--ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-spacing-medium);
	--ck-color-labeled-field-label-background: var(--ck-color-base-background);
}

.ck.ck-labeled-field-view {
	border-radius: 0
}

.ck-rounded-corners .ck.ck-labeled-field-view, .ck.ck-labeled-field-view.ck-rounded-corners {
		border-radius: var(--ck-border-radius)
}

.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper {
		width: 100%
	}

.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
			top: 0px;
		}

[dir="ltr"] .ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
				left: 0px;
		}

[dir="rtl"] .ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
				right: 0px;
		}

.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {

			pointer-events: none;
			transform-origin: 0 0;

			/* By default, display the label scaled down above the field. */
			transform: translate(var(--ck-spacing-medium), -6px) scale(.75);

			background: var(--ck-color-labeled-field-label-background);
			padding: 0 calc(.5 * var(--ck-font-size-tiny));
			line-height: initial;
			font-weight: normal;

			/* Prevent overflow when the label is longer than the input */
			text-overflow: ellipsis;
			overflow: hidden;

			max-width: 100%;

			transition:
				transform var(--ck-labeled-field-view-transition),
				padding var(--ck-labeled-field-view-transition),
				background var(--ck-labeled-field-view-transition);
		}

.ck.ck-labeled-field-view.ck-error > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
			color: var(--ck-color-base-error);
		}

.ck.ck-labeled-field-view.ck-error .ck-input:not([readonly]) + .ck.ck-label {
			color: var(--ck-color-base-error);
		}

.ck.ck-labeled-field-view .ck-labeled-field-view__status {
		font-size: var(--ck-font-size-small);
		margin-top: var(--ck-spacing-small);

		/* Let the info wrap to the next line to avoid stretching the layout horizontally.
		The status could be very long. */
		white-space: normal
	}

.ck.ck-labeled-field-view .ck-labeled-field-view__status.ck-labeled-field-view__status_error {
			color: var(--ck-color-base-error);
		}

.ck.ck-labeled-field-view {

	/* Disabled fields and fields that have no focus should fade out. */
}

.ck.ck-labeled-field-view.ck-disabled > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,
	.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
		color: var(--ck-color-input-disabled-text);
	}

.ck.ck-labeled-field-view {

	/* Fields that are disabled or not focused and without a placeholder should have full-sized labels. */
	/* stylelint-disable-next-line no-descending-specificity */
}

[dir="ltr"] .ck.ck-labeled-field-view.ck-disabled > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,
	[dir="ltr"] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
			transform: translate(var(--ck-spacing-medium), calc(0.6 * var(--ck-font-size-base))) scale(1);
	}

[dir="rtl"] .ck.ck-labeled-field-view.ck-disabled > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,
	[dir="rtl"] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {
			transform: translate(calc(-1 * var(--ck-spacing-medium)), calc(0.6 * var(--ck-font-size-base))) scale(1);
	}

.ck.ck-labeled-field-view.ck-disabled > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,
	.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {

		/* Compensate for the default translate position. */
		max-width: calc(var(--ck-labeled-field-empty-unfocused-max-width));

		background: transparent;
		padding: 0;
	}

.ck.ck-labeled-field-view {

	/*------ DropdownView integration ----------------------------------------------------------------------------------- */

	/* Make sure dropdown' background color in any of dropdown's state does not collide with labeled field. */
}

.ck.ck-labeled-field-view > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck.ck-button {
		background: transparent;
	}

.ck.ck-labeled-field-view {

	/* When the dropdown is "empty", the labeled field label replaces its label. */
}

.ck.ck-labeled-field-view.ck-labeled-field-view_empty > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck-button > .ck-button__label {
		opacity: 0;
	}

.ck.ck-labeled-field-view {

	/* Make sure the label of the empty, unfocused input does not cover the dropdown arrow. */
}

.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown + .ck-label {
		max-width: calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard));
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-ui\theme\components\inputtext\inputtext.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Note: This file should contain the wireframe styles only. But since there are no such styles,
 * it acts as a message to the builder telling that it should look for the corresponding styles
 * **in the theme** when compiling the editor.
 */

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\inputtext\inputtext.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A visual style of focused element's border.
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A helper to combine multiple shadows.
 */

/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */

:root {
	--ck-input-text-width: 18em;
}

.ck.ck-input-text {
	border-radius: 0
}

.ck-rounded-corners .ck.ck-input-text, .ck.ck-input-text.ck-rounded-corners {
		border-radius: var(--ck-border-radius)
}

.ck.ck-input-text {

	background: var(--ck-color-input-background);
	border: 1px solid var(--ck-color-input-border);
	padding: var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);
	min-width: var(--ck-input-text-width);

	/* This is important to stay of the same height as surrounding buttons */
	min-height: var(--ck-ui-component-min-height);

	/* Apply some smooth transition to the box-shadow and border. */
	transition: box-shadow .1s ease-in-out, border .1s ease-in-out
}

.ck.ck-input-text:focus {
		/* Disable native outline. */
		outline: none;
		border: var(--ck-focus-ring);
		box-shadow: var(--ck-focus-outer-shadow), 0 0;
	}

.ck.ck-input-text[readonly] {
		border: 1px solid var(--ck-color-input-disabled-border);
		background: var(--ck-color-input-disabled-background);
		color: var(--ck-color-input-disabled-text)
	}

.ck.ck-input-text[readonly]:focus {
			/* The read-only input should have a slightly less visible shadow when focused. */
			box-shadow: var(--ck-focus-disabled-outer-shadow), 0 0;
		}

.ck.ck-input-text.ck-error {
		border-color: var(--ck-color-input-error-border);
		animation: ck-text-input-shake .3s ease both
	}

.ck.ck-input-text.ck-error:focus {
			box-shadow: var(--ck-focus-error-outer-shadow), 0 0;
		}

@keyframes ck-text-input-shake {
	20% {
		transform: translateX(-2px);
	}

	40% {
		transform: translateX(2px);
	}

	60% {
		transform: translateX(-1px);
	}

	80% {
		transform: translateX(1px);
	}
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-link\theme\linkform.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-link-form {
	display: flex
}

.ck.ck-link-form .ck-label {
		display: none;
	}

@media screen and (max-width: 600px) {

.ck.ck-link-form {
		flex-wrap: wrap
}

		.ck.ck-link-form .ck-labeled-field-view {
			flex-basis: 100%;
		}

		.ck.ck-link-form .ck-button {
			flex-basis: 50%;
		}
	}

/*
 * Style link form differently when manual decorators are available.
 * See: https://github.com/ckeditor/ckeditor5-link/issues/186.
 */

.ck.ck-link-form_layout-vertical {
	display: block

	/*
	 * Whether the form is in the responsive mode or not, if there are decorator buttons
	 * keep the top margin of action buttons medium.
	 */
}

.ck.ck-link-form_layout-vertical .ck-button.ck-button-save,
		.ck.ck-link-form_layout-vertical .ck-button.ck-button-cancel {
			margin-top: var(--ck-spacing-medium);
		}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-link\linkform.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Style link form differently when manual decorators are available.
 * See: https://github.com/ckeditor/ckeditor5-link/issues/186.
 */

.ck.ck-link-form_layout-vertical {
	padding: 0;
	min-width: var(--ck-input-text-width)
}

.ck.ck-link-form_layout-vertical .ck-labeled-field-view {
		margin: var(--ck-spacing-large) var(--ck-spacing-large) var(--ck-spacing-small)
	}

.ck.ck-link-form_layout-vertical .ck-labeled-field-view .ck-input-text {
			min-width: 0;
			width: 100%;
		}

.ck.ck-link-form_layout-vertical .ck-button {
		padding: var(--ck-spacing-standard);
		margin: 0;
		border-radius: 0;
		border: 0;
		border-top: 1px solid var(--ck-color-base-border);
		width: 50%
	}

[dir="ltr"] .ck.ck-link-form_layout-vertical .ck-button {
			margin-left: 0
	}

[dir="rtl"] .ck.ck-link-form_layout-vertical .ck-button {
			margin-left: 0
	}

[dir="rtl"] .ck.ck-link-form_layout-vertical .ck-button:last-of-type {
				border-right: 1px solid var(--ck-color-base-border);
			}

.ck.ck-link-form_layout-vertical {

	/* Using additional `.ck` class for stronger CSS specificity than `.ck.ck-link-form > :not(:first-child)`. */
}

.ck.ck-link-form_layout-vertical .ck.ck-list {
		margin: var(--ck-spacing-standard) var(--ck-spacing-large)
	}

.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton {
			border: 0;
			padding: 0;
			width: 100%
		}

.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton:hover {
				background: none;
			}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-ui\theme\components\responsive-form\responsiveform.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck-vertical-form .ck-button::after {
	content: "";
	width: 0;
	position: absolute;
	right: -1px;
	top: var(--ck-spacing-small);
	bottom: var(--ck-spacing-small);
	z-index: 1;
}

@media screen and (max-width: 600px) {
		.ck.ck-responsive-form .ck-button::after {
			content: "";
			width: 0;
			position: absolute;
			right: -1px;
			top: var(--ck-spacing-small);
			bottom: var(--ck-spacing-small);
			z-index: 1;
		}
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\responsive-form\responsiveform.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck-vertical-form > .ck-button:nth-last-child(2)::after {
	border-right: 1px solid var(--ck-color-base-border);
}

.ck.ck-responsive-form {
	padding: var(--ck-spacing-large)
}

.ck.ck-responsive-form:focus {
		/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */
		outline: none;
	}

[dir="ltr"] .ck.ck-responsive-form > :not(:first-child) {
			margin-left: var(--ck-spacing-standard);
		}

[dir="rtl"] .ck.ck-responsive-form > :not(:last-child) {
			margin-left: var(--ck-spacing-standard);
		}

@media screen and (max-width: 600px) {

.ck.ck-responsive-form {
		padding: 0;
		width: calc(.8 * var(--ck-input-text-width))
}

		.ck.ck-responsive-form .ck-labeled-field-view {
			margin: var(--ck-spacing-large) var(--ck-spacing-large) 0
		}

			.ck.ck-responsive-form .ck-labeled-field-view .ck-input-text {
				min-width: 0;
				width: 100%;
			}

		.ck.ck-responsive-form .ck-labeled-field-view {

			/* Let the long error messages wrap in the narrow form. */
		}
			.ck.ck-responsive-form .ck-labeled-field-view .ck-labeled-field-view__error {
				white-space: normal;
			}

.ck.ck-responsive-form {

		/* Styles for two last buttons in the form (save&cancel, edit&unlink, etc.). */
}
		.ck.ck-responsive-form > .ck-button:nth-last-child(1),
		.ck.ck-responsive-form > .ck-button:nth-last-child(2) {
			padding: var(--ck-spacing-standard);
			margin-top: var(--ck-spacing-large);

			border-radius: 0;
			border: 0;
			border-top: 1px solid var(--ck-color-base-border)
		}
		[dir="ltr"] .ck.ck-responsive-form > .ck-button:nth-last-child(1),
		[dir="ltr"] .ck.ck-responsive-form > .ck-button:nth-last-child(2) {
				margin-left: 0
		}
		[dir="rtl"] .ck.ck-responsive-form > .ck-button:nth-last-child(1),
		[dir="rtl"] .ck.ck-responsive-form > .ck-button:nth-last-child(2) {
				margin-left: 0
		}

				[dir="rtl"] .ck.ck-responsive-form > .ck-button:nth-last-child(1):last-of-type, [dir="rtl"] .ck.ck-responsive-form > .ck-button:nth-last-child(2):last-of-type {
					border-right: 1px solid var(--ck-color-base-border);
				}
			.ck.ck-responsive-form > .ck-button:nth-last-child(2)::after {
				border-right: 1px solid var(--ck-color-base-border);
			}
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-link\theme\linkactions.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-link-actions {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap
}

.ck.ck-link-actions .ck-link-actions__preview {
		display: inline-block
	}

.ck.ck-link-actions .ck-link-actions__preview .ck-button__label {
			overflow: hidden;
		}

@media screen and (max-width: 600px) {

.ck.ck-link-actions {
		flex-wrap: wrap
}

		.ck.ck-link-actions .ck-link-actions__preview {
			flex-basis: 100%;
		}

		.ck.ck-link-actions .ck-button:not(.ck-link-actions__preview) {
			flex-basis: 50%;
		}
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-link\linkactions.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Enables the tooltip, which is the tooltip is in DOM but
 * not yet displayed.
 */

/**
 * Disables the tooltip making it disappear from DOM.
 */

/**
 * Shows the tooltip, which is already in DOM.
 * Requires `ck-tooltip_enabled` first.
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Makes element unselectable.
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A visual style of focused element's border.
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * A helper to combine multiple shadows.
 */

/**
 * Gives an element a drop shadow so it looks like a floating panel.
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-link-actions .ck-button.ck-link-actions__preview {
		padding-left: 0;
		padding-right: 0
	}

.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label {
			padding: 0 var(--ck-spacing-medium);
			color: var(--ck-color-link-default);
			text-overflow: ellipsis;
			cursor: pointer;

			/* Match the box model of the link editor form's input so the balloon
			does not change width when moving between actions and the form. */
			max-width: var(--ck-input-text-width);
			min-width: 3em;
			text-align: center
		}

.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label:hover {
				text-decoration: underline;
			}

.ck.ck-link-actions .ck-button.ck-link-actions__preview,
		.ck.ck-link-actions .ck-button.ck-link-actions__preview:hover,
		.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus,
		.ck.ck-link-actions .ck-button.ck-link-actions__preview:active {
			background: none;
		}

.ck.ck-link-actions .ck-button.ck-link-actions__preview:active {
			box-shadow: none;
		}

.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus .ck-button__label {
				text-decoration: underline;
			}

[dir="ltr"] .ck.ck-link-actions .ck-button:not(:first-child) {
			margin-left: var(--ck-spacing-standard);
		}

[dir="rtl"] .ck.ck-link-actions .ck-button:not(:last-child) {
			margin-left: var(--ck-spacing-standard);
		}

@media screen and (max-width: 600px) {
		.ck.ck-link-actions .ck-button.ck-link-actions__preview {
			margin: var(--ck-spacing-standard) var(--ck-spacing-standard) 0
		}

			.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label {
				min-width: 0;
				max-width: 100%;
			}

		[dir="ltr"] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview) {
				margin-left: 0
		}

		[dir="rtl"] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview) {
				margin-left: 0
		}
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-image\theme\textalternativeform.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-text-alternative-form {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap
}

.ck.ck-text-alternative-form .ck-labeled-field-view {
		display: inline-block;
	}

.ck.ck-text-alternative-form .ck-label {
		display: none;
	}

@media screen and (max-width: 600px) {

.ck.ck-text-alternative-form {
		flex-wrap: wrap
}

		.ck.ck-text-alternative-form .ck-labeled-field-view {
			flex-basis: 100%;
		}

		.ck.ck-text-alternative-form .ck-button {
			flex-basis: 50%;
		}
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-image\theme\image.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck-content .image {
	display: table;
	clear: both;
	text-align: center;

	/* Make sure there is some space between the content and the image. Center image by default. */
	margin: 1em auto
}

.ck-content .image img {
		/* Prevent unnecessary margins caused by line-height (see #44). */
		display: block;

		/* Center the image if its width is smaller than the content's width. */
		margin: 0 auto;

		/* Make sure the image never exceeds the size of the parent container (ckeditor/ckeditor5-ui#67). */
		max-width: 100%;

		/* Make sure the caption will be displayed properly (See: https://github.com/ckeditor/ckeditor5/issues/1870). */
		min-width: 50px;
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-image\theme\imagecaption.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck-content .image > figcaption {
	display: table-caption;
	caption-side: bottom;
	word-break: break-word;
	color: hsl(0, 0%, 20%);
	background-color: hsl(0, 0%, 97%);
	padding: .6em;
	font-size: .75em;
	outline-offset: -1px;
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-image\theme\imagestyle.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-image-style-spacing: 1.5em;
}

.ck-content .image-style-side {
		float: right;
		margin-left: var(--ck-image-style-spacing);
		max-width: 50%;
	}

.ck-content .image-style-align-left {
		float: left;
		margin-right: var(--ck-image-style-spacing);
	}

.ck-content .image-style-align-center {
		margin-left: auto;
		margin-right: auto;
	}

.ck-content .image-style-align-right {
		float: right;
		margin-left: var(--ck-image-style-spacing);
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-widget\theme\widgetresize.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck .ck-widget_with-resizer {
	/* Make the widget wrapper a relative positioning container for the drag handle. */
	position: relative;
}

.ck .ck-widget__resizer {
	display: none;
	position: absolute;

	/* The wrapper itself should not interfere with the pointer device, only the handles should. */
	pointer-events: none;

	left: 0;
	top: 0;
}

.ck-focused .ck-widget_with-resizer.ck-widget_selected > .ck-widget__resizer {
		display: block;
	}

.ck .ck-widget__resizer__handle {
	position: absolute;

	/* Resizers are the only UI elements that should interfere with a pointer device. */
	pointer-events: all
}

.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left,
	.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right {
		cursor: nwse-resize;
	}

.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right,
	.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left {
		cursor: nesw-resize;
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-widget\widgetresize.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-resizer-size: 10px;

	/* Set the resizer with a 50% offset. */
	--ck-resizer-offset: calc( ( var(--ck-resizer-size) / -2 ) - 2px);
	--ck-resizer-border-width: 1px;
}

.ck .ck-widget__resizer {
	outline: 1px solid var(--ck-color-resizer);
}

.ck .ck-widget__resizer__handle {
	width: var(--ck-resizer-size);
	height: var(--ck-resizer-size);
	background: var(--ck-color-focus-border);
	border: var(--ck-resizer-border-width) solid hsl(0, 0%, 100%);
	border-radius: var(--ck-resizer-border-radius)
}

.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left {
		top: var(--ck-resizer-offset);
		left: var(--ck-resizer-offset);
	}

.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right {
		top: var(--ck-resizer-offset);
		right: var(--ck-resizer-offset);
	}

.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right {
		bottom: var(--ck-resizer-offset);
		right: var(--ck-resizer-offset);
	}

.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left {
		bottom: var(--ck-resizer-offset);
		left: var(--ck-resizer-offset);
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-image\theme\imageresize.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck-content .image.image_resized {
	max-width: 100%;
	/*
	The `<figure>` element for resized images must not use `display:table` as browsers do not support `max-width` for it well.
	See https://stackoverflow.com/questions/4019604/chrome-safari-ignoring-max-width-in-table/14420691#14420691 for more.
	Fortunately, since we control the width, there is no risk that the image will look bad.
	*/
	display: block;
	box-sizing: border-box
}

.ck-content .image.image_resized img {
		/* For resized images it is the `<figure>` element that determines the image width. */
		width: 100%;
	}

.ck-content .image.image_resized > figcaption {
		/* The `<figure>` element uses `display:block`, so `<figcaption>` also has to. */
		display: block;
	}

[dir="ltr"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {
	margin-right: var(--ck-spacing-standard);
}

[dir="rtl"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {
	margin-left: var(--ck-spacing-standard);
}

.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label {
	width: 4em;
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-image\theme\imageuploadprogress.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-editor__editable .image {
	position: relative;
}

/* Upload progress bar. */

.ck.ck-editor__editable .image .ck-progress-bar {
	position: absolute;
	top: 0;
	left: 0;
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-image\imageuploadprogress.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-editor__editable .image {
	/* Showing animation. */
}

.ck.ck-editor__editable .image.ck-appear {
		animation: fadeIn 700ms;
	}

/* Upload progress bar. */

.ck.ck-editor__editable .image .ck-progress-bar {
	height: 2px;
	width: 0;
	background: var(--ck-color-upload-bar-background);
	transition: width 100ms;
}

@keyframes fadeIn {
	from { opacity: 0; }
	to   { opacity: 1; }
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-image\theme\imageuploadicon.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck-image-upload-complete-icon {
	display: block;
	position: absolute;
	top: 10px;
	right: 10px;
	border-radius: 50%
}

.ck-image-upload-complete-icon::after {
		content: "";
		position: absolute;
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-image\imageuploadicon.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-color-image-upload-icon: hsl(0, 0%, 100%);
	--ck-color-image-upload-icon-background: hsl(120, 100%, 27%);

	--ck-image-upload-icon-size: 20px;
	--ck-image-upload-icon-width: 2px;
}

.ck-image-upload-complete-icon {
	width: var(--ck-image-upload-icon-size);
	height: var(--ck-image-upload-icon-size);
	opacity: 0;
	background: var(--ck-color-image-upload-icon-background);
	animation-name: ck-upload-complete-icon-show, ck-upload-complete-icon-hide;
	animation-fill-mode: forwards, forwards;
	animation-duration: 500ms, 500ms;

	/* To make animation scalable. */
	font-size: var(--ck-image-upload-icon-size);

	/* Hide completed upload icon after 3 seconds. */
	animation-delay: 0ms, 3000ms

	/* This is check icon element made from border-width mixed with animations. */
}

.ck-image-upload-complete-icon::after {
		/* Because of border transformation we need to "hard code" left position. */
		left: 25%;

		top: 50%;
		opacity: 0;
		height: 0;
		width: 0;

		transform: scaleX(-1) rotate(135deg);
		transform-origin: left top;
		border-top: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);
		border-right: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);

		animation-name: ck-upload-complete-icon-check;
		animation-duration: 500ms;
		animation-delay: 500ms;
		animation-fill-mode: forwards;

		/* #1095. While reset is not providing proper box-sizing for pseudoelements, we need to handle it. */
		box-sizing: border-box;
	}

@keyframes ck-upload-complete-icon-show {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

@keyframes ck-upload-complete-icon-hide {
	from {
		opacity: 1;
	}

	to {
		opacity: 0;
	}
}

@keyframes ck-upload-complete-icon-check {
	0% {
		opacity: 1;
		width: 0;
		height: 0;
	}
	33% {
		width: 0.3em;
		height: 0;
	}
	100% {
		opacity: 1;
		width: 0.3em;
		height: 0.45em;
	}
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-image\theme\imageuploadloader.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck .ck-upload-placeholder-loader {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	top: 0;
	left: 0
}

.ck .ck-upload-placeholder-loader::before {
		content: '';
		position: relative;
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-image\imageuploadloader.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-color-upload-placeholder-loader: hsl(0, 0%, 70%);
	--ck-upload-placeholder-loader-size: 32px;
}

.ck .ck-image-upload-placeholder {
	/* We need to control the full width of the SVG gray background. */
	width: 100%;
	margin: 0;
}

.ck .ck-upload-placeholder-loader {
	width: 100%;
	height: 100%
}

.ck .ck-upload-placeholder-loader::before {
		width: var(--ck-upload-placeholder-loader-size);
		height: var(--ck-upload-placeholder-loader-size);
		border-radius: 50%;
		border-top: 3px solid var(--ck-color-upload-placeholder-loader);
		border-right: 2px solid transparent;
		animation: ck-upload-placeholder-loader 1s linear infinite;
	}

@keyframes ck-upload-placeholder-loader {
	to {
		transform: rotate( 360deg );
	}
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-media-embed\theme\mediaembedediting.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Enables the tooltip, which is the tooltip is in DOM but
 * not yet displayed.
 */

/**
 * Disables the tooltip making it disappear from DOM.
 */

/**
 * Shows the tooltip, which is already in DOM.
 * Requires `ck-tooltip_enabled` first.
 */

.ck-media__wrapper .ck-media__placeholder {
		display: flex;
		flex-direction: column;
		align-items: center
	}

.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-tooltip {
		display: block

		/*
		 * Don't display tooltips in devices which don't support :hover.
		 * In fact, it's all about iOS, which forces user to click UI elements twice to execute
		 * the primary action, when tooltips are enabled.
		 *
		 * Q: OK, but why not the following query?
		 *
		 *   @media (hover) {
		 *       display: block;
		 *   }
		 *
		 * A: Because FF does not support it and it would completely disable tooltips
		 * in that browser.
		 *
		 * More in https://github.com/ckeditor/ckeditor5/issues/920.
		 */
	}

@media (hover:none) {

.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-tooltip {
			display: none
	}
		}

.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url {

			/* Otherwise the URL will overflow when the content is very narrow. */
			max-width: 100%;

			position: relative
		}

.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url:hover .ck-tooltip {
		visibility: visible;
		opacity: 1;
	}

.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-media__placeholder__url__text {
				overflow: hidden;
				display: block;
			}

.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck-media__placeholder__icon *, .ck-media__wrapper[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon *, .ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder__icon *, .ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder__icon * {
			display: none;
		}

/* Disable all mouse interaction as long as the editor is not read–only.
   https://github.com/ckeditor/ckeditor5-media-embed/issues/58 */

.ck-editor__editable:not(.ck-read-only) .ck-media__wrapper > *:not(.ck-media__placeholder) {
	pointer-events: none;
}

/* Disable all mouse interaction when the widget is not selected (e.g. to avoid opening links by accident).
   https://github.com/ckeditor/ckeditor5-media-embed/issues/18 */

.ck-editor__editable:not(.ck-read-only) .ck-widget:not(.ck-widget_selected) .ck-media__placeholder {
	pointer-events: none;
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-media-embed\mediaembedediting.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-media-embed-placeholder-icon-size: 3em;

	--ck-color-media-embed-placeholder-url-text: hsl(0, 0%, 46%);
	--ck-color-media-embed-placeholder-url-text-hover: var(--ck-color-base-text);
}

.ck-media__wrapper {
	margin: 0 auto
}

.ck-media__wrapper .ck-media__placeholder {
		padding: calc( 3 * var(--ck-spacing-standard) );
		background: var(--ck-color-base-foreground)
	}

.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon {
			min-width: var(--ck-media-embed-placeholder-icon-size);
			height: var(--ck-media-embed-placeholder-icon-size);
			margin-bottom: var(--ck-spacing-large);
			background-position: center;
			background-size: cover
		}

.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon .ck-icon {
				width: 100%;
				height: 100%;
			}

.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text {
			color: var(--ck-color-media-embed-placeholder-url-text);
			white-space: nowrap;
			text-align: center;
			font-style: italic;
			text-overflow: ellipsis
		}

.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text:hover {
				color: var(--ck-color-media-embed-placeholder-url-text-hover);
				cursor: pointer;
				text-decoration: underline;
			}

.ck-media__wrapper[data-oembed-url*="open.spotify.com"] {
		max-width: 300px;
		max-height: 380px;
	}

.ck-media__wrapper[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon {
		background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTAuMzc4IiBoZWlnaHQ9IjI1NC4xNjciIHZpZXdCb3g9IjAgMCA2Ni4yNDYgNjcuMjQ4Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTcyLjUzMSAtMjE4LjQ1NSkgc2NhbGUoLjk4MDEyKSI+PHJlY3Qgcnk9IjUuMjM4IiByeD0iNS4yMzgiIHk9IjIzMS4zOTkiIHg9IjE3Ni4wMzEiIGhlaWdodD0iNjAuMDk5IiB3aWR0aD0iNjAuMDk5IiBmaWxsPSIjMzRhNjY4IiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxwYXRoIGQ9Ik0yMDYuNDc3IDI2MC45bC0yOC45ODcgMjguOTg3YTUuMjE4IDUuMjE4IDAgMCAwIDMuNzggMS42MWg0OS42MjFjMS42OTQgMCAzLjE5LS43OTggNC4xNDYtMi4wMzd6IiBmaWxsPSIjNWM4OGM1Ii8+PHBhdGggZD0iTTIyNi43NDIgMjIyLjk4OGMtOS4yNjYgMC0xNi43NzcgNy4xNy0xNi43NzcgMTYuMDE0LjAwNyAyLjc2Mi42NjMgNS40NzQgMi4wOTMgNy44NzUuNDMuNzAzLjgzIDEuNDA4IDEuMTkgMi4xMDcuMzMzLjUwMi42NSAxLjAwNS45NSAxLjUwOC4zNDMuNDc3LjY3My45NTcuOTg4IDEuNDQgMS4zMSAxLjc2OSAyLjUgMy41MDIgMy42MzcgNS4xNjguNzkzIDEuMjc1IDEuNjgzIDIuNjQgMi40NjYgMy45OSAyLjM2MyA0LjA5NCA0LjAwNyA4LjA5MiA0LjYgMTMuOTE0di4wMTJjLjE4Mi40MTIuNTE2LjY2Ni44NzkuNjY3LjQwMy0uMDAxLjc2OC0uMzE0LjkzLS43OTkuNjAzLTUuNzU2IDIuMjM4LTkuNzI5IDQuNTg1LTEzLjc5NC43ODItMS4zNSAxLjY3My0yLjcxNSAyLjQ2NS0zLjk5IDEuMTM3LTEuNjY2IDIuMzI4LTMuNCAzLjYzOC01LjE2OS4zMTUtLjQ4Mi42NDUtLjk2Mi45ODgtMS40MzkuMy0uNTAzLjYxNy0xLjAwNi45NS0xLjUwOC4zNTktLjcuNzYtMS40MDQgMS4xOS0yLjEwNyAxLjQyNi0yLjQwMiAyLTUuMTE0IDIuMDA0LTcuODc1IDAtOC44NDQtNy41MTEtMTYuMDE0LTE2Ljc3Ni0xNi4wMTR6IiBmaWxsPSIjZGQ0YjNlIiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxlbGxpcHNlIHJ5PSI1LjU2NCIgcng9IjUuODI4IiBjeT0iMjM5LjAwMiIgY3g9IjIyNi43NDIiIGZpbGw9IiM4MDJkMjciIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PHBhdGggZD0iTTE5MC4zMDEgMjM3LjI4M2MtNC42NyAwLTguNDU3IDMuODUzLTguNDU3IDguNjA2czMuNzg2IDguNjA3IDguNDU3IDguNjA3YzMuMDQzIDAgNC44MDYtLjk1OCA2LjMzNy0yLjUxNiAxLjUzLTEuNTU3IDIuMDg3LTMuOTEzIDIuMDg3LTYuMjkgMC0uMzYyLS4wMjMtLjcyMi0uMDY0LTEuMDc5aC04LjI1N3YzLjA0M2g0Ljg1Yy0uMTk3Ljc1OS0uNTMxIDEuNDUtMS4wNTggMS45ODYtLjk0Mi45NTgtMi4wMjggMS41NDgtMy45MDEgMS41NDgtMi44NzYgMC01LjIwOC0yLjM3Mi01LjIwOC01LjI5OSAwLTIuOTI2IDIuMzMyLTUuMjk5IDUuMjA4LTUuMjk5IDEuMzk5IDAgMi42MTguNDA3IDMuNTg0IDEuMjkzbDIuMzgxLTIuMzhjMC0uMDAyLS4wMDMtLjAwNC0uMDA0LS4wMDUtMS41ODgtMS41MjQtMy42Mi0yLjIxNS01Ljk1NS0yLjIxNXptNC40MyA1LjY2bC4wMDMuMDA2di0uMDAzeiIgZmlsbD0iI2ZmZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMjE1LjE4NCAyNTEuOTI5bC03Ljk4IDcuOTc5IDI4LjQ3NyAyOC40NzVjLjI4Ny0uNjQ5LjQ0OS0xLjM2Ni40NDktMi4xMjN2LTMxLjE2NWMtLjQ2OS42NzUtLjkzNCAxLjM0OS0xLjM4MiAyLjAwNS0uNzkyIDEuMjc1LTEuNjgyIDIuNjQtMi40NjUgMy45OS0yLjM0NyA0LjA2NS0zLjk4MiA4LjAzOC00LjU4NSAxMy43OTQtLjE2Mi40ODUtLjUyNy43OTgtLjkzLjc5OS0uMzYzLS4wMDEtLjY5Ny0uMjU1LS44NzktLjY2N3YtLjAxMmMtLjU5My01LjgyMi0yLjIzNy05LjgyLTQuNi0xMy45MTQtLjc4My0xLjM1LTEuNjczLTIuNzE1LTIuNDY2LTMuOTktMS4xMzctMS42NjYtMi4zMjctMy40LTMuNjM3LTUuMTY5bC0uMDAyLS4wMDN6IiBmaWxsPSIjYzNjM2MzIi8+PHBhdGggZD0iTTIxMi45ODMgMjQ4LjQ5NWwtMzYuOTUyIDM2Ljk1M3YuODEyYTUuMjI3IDUuMjI3IDAgMCAwIDUuMjM4IDUuMjM4aDEuMDE1bDM1LjY2Ni0zNS42NjZhMTM2LjI3NSAxMzYuMjc1IDAgMCAwLTIuNzY0LTMuOSAzNy41NzUgMzcuNTc1IDAgMCAwLS45ODktMS40NGMtLjI5OS0uNTAzLS42MTYtMS4wMDYtLjk1LTEuNTA4LS4wODMtLjE2Mi0uMTc2LS4zMjYtLjI2NC0uNDg5eiIgZmlsbD0iI2ZkZGM0ZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMjExLjk5OCAyNjEuMDgzbC02LjE1MiA2LjE1MSAyNC4yNjQgMjQuMjY0aC43ODFhNS4yMjcgNS4yMjcgMCAwIDAgNS4yMzktNS4yMzh2LTEuMDQ1eiIgZmlsbD0iI2ZmZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48L2c+PC9zdmc+);
	}

.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder {
		background: hsl(220, 46%, 48%)
	}

.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__icon {
			background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxMDI0cHgiIGhlaWdodD0iMTAyNHB4IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPiAgICAgICAgPHRpdGxlPkZpbGwgMTwvdGl0bGU+ICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiAgICA8ZGVmcz48L2RlZnM+ICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImZMb2dvX1doaXRlIiBmaWxsPSIjRkZGRkZFIj4gICAgICAgICAgICA8cGF0aCBkPSJNOTY3LjQ4NCwwIEw1Ni41MTcsMCBDMjUuMzA0LDAgMCwyNS4zMDQgMCw1Ni41MTcgTDAsOTY3LjQ4MyBDMCw5OTguNjk0IDI1LjI5NywxMDI0IDU2LjUyMiwxMDI0IEw1NDcsMTAyNCBMNTQ3LDYyOCBMNDE0LDYyOCBMNDE0LDQ3MyBMNTQ3LDQ3MyBMNTQ3LDM1OS4wMjkgQzU0NywyMjYuNzY3IDYyNy43NzMsMTU0Ljc0NyA3NDUuNzU2LDE1NC43NDcgQzgwMi4yNjksMTU0Ljc0NyA4NTAuODQyLDE1OC45NTUgODY1LDE2MC44MzYgTDg2NSwyOTkgTDc4My4zODQsMjk5LjAzNyBDNzE5LjM5MSwyOTkuMDM3IDcwNywzMjkuNTI5IDcwNywzNzQuMjczIEw3MDcsNDczIEw4NjAuNDg3LDQ3MyBMODQwLjUwMSw2MjggTDcwNyw2MjggTDcwNywxMDI0IEw5NjcuNDg0LDEwMjQgQzk5OC42OTcsMTAyNCAxMDI0LDk5OC42OTcgMTAyNCw5NjcuNDg0IEwxMDI0LDU2LjUxNSBDMTAyNCwyNS4zMDMgOTk4LjY5NywwIDk2Ny40ODQsMCIgaWQ9IkZpbGwtMSI+PC9wYXRoPiAgICAgICAgPC9nPiAgICA8L2c+PC9zdmc+);
		}

.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__url__text {
			color: hsl(220, 100%, 90%)
		}

.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__url__text:hover {
				color: hsl(0, 0%, 100%);
			}

.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder {
		background: linear-gradient(-135deg,hsl(246, 100%, 39%),hsl(302, 100%, 36%),hsl(0, 100%, 48%))
	}

.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__icon {
			background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI1MDRweCIgaGVpZ2h0PSI1MDRweCIgdmlld0JveD0iMCAwIDUwNCA1MDQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+ICAgICAgICA8dGl0bGU+Z2x5cGgtbG9nb19NYXkyMDE2PC90aXRsZT4gICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+ICAgIDxkZWZzPiAgICAgICAgPHBvbHlnb24gaWQ9InBhdGgtMSIgcG9pbnRzPSIwIDAuMTU5IDUwMy44NDEgMC4xNTkgNTAzLjg0MSA1MDMuOTQgMCA1MDMuOTQiPjwvcG9seWdvbj4gICAgPC9kZWZzPiAgICA8ZyBpZD0iZ2x5cGgtbG9nb19NYXkyMDE2IiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4gICAgICAgIDxnIGlkPSJHcm91cC0zIj4gICAgICAgICAgICA8bWFzayBpZD0ibWFzay0yIiBmaWxsPSJ3aGl0ZSI+ICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+ICAgICAgICAgICAgPC9tYXNrPiAgICAgICAgICAgIDxnIGlkPSJDbGlwLTIiPjwvZz4gICAgICAgICAgICA8cGF0aCBkPSJNMjUxLjkyMSwwLjE1OSBDMTgzLjUwMywwLjE1OSAxNzQuOTI0LDAuNDQ5IDE0OC4wNTQsMS42NzUgQzEyMS4yNCwyLjg5OCAxMDIuOTI3LDcuMTU3IDg2LjkwMywxMy4zODUgQzcwLjMzNywxOS44MjIgNTYuMjg4LDI4LjQzNiA0Mi4yODIsNDIuNDQxIEMyOC4yNzcsNTYuNDQ3IDE5LjY2Myw3MC40OTYgMTMuMjI2LDg3LjA2MiBDNi45OTgsMTAzLjA4NiAyLjczOSwxMjEuMzk5IDEuNTE2LDE0OC4yMTMgQzAuMjksMTc1LjA4MyAwLDE4My42NjIgMCwyNTIuMDggQzAsMzIwLjQ5NyAwLjI5LDMyOS4wNzYgMS41MTYsMzU1Ljk0NiBDMi43MzksMzgyLjc2IDYuOTk4LDQwMS4wNzMgMTMuMjI2LDQxNy4wOTcgQzE5LjY2Myw0MzMuNjYzIDI4LjI3Nyw0NDcuNzEyIDQyLjI4Miw0NjEuNzE4IEM1Ni4yODgsNDc1LjcyMyA3MC4zMzcsNDg0LjMzNyA4Ni45MDMsNDkwLjc3NSBDMTAyLjkyNyw0OTcuMDAyIDEyMS4yNCw1MDEuMjYxIDE0OC4wNTQsNTAyLjQ4NCBDMTc0LjkyNCw1MDMuNzEgMTgzLjUwMyw1MDQgMjUxLjkyMSw1MDQgQzMyMC4zMzgsNTA0IDMyOC45MTcsNTAzLjcxIDM1NS43ODcsNTAyLjQ4NCBDMzgyLjYwMSw1MDEuMjYxIDQwMC45MTQsNDk3LjAwMiA0MTYuOTM4LDQ5MC43NzUgQzQzMy41MDQsNDg0LjMzNyA0NDcuNTUzLDQ3NS43MjMgNDYxLjU1OSw0NjEuNzE4IEM0NzUuNTY0LDQ0Ny43MTIgNDg0LjE3OCw0MzMuNjYzIDQ5MC42MTYsNDE3LjA5NyBDNDk2Ljg0Myw0MDEuMDczIDUwMS4xMDIsMzgyLjc2IDUwMi4zMjUsMzU1Ljk0NiBDNTAzLjU1MSwzMjkuMDc2IDUwMy44NDEsMzIwLjQ5NyA1MDMuODQxLDI1Mi4wOCBDNTAzLjg0MSwxODMuNjYyIDUwMy41NTEsMTc1LjA4MyA1MDIuMzI1LDE0OC4yMTMgQzUwMS4xMDIsMTIxLjM5OSA0OTYuODQzLDEwMy4wODYgNDkwLjYxNiw4Ny4wNjIgQzQ4NC4xNzgsNzAuNDk2IDQ3NS41NjQsNTYuNDQ3IDQ2MS41NTksNDIuNDQxIEM0NDcuNTUzLDI4LjQzNiA0MzMuNTA0LDE5LjgyMiA0MTYuOTM4LDEzLjM4NSBDNDAwLjkxNCw3LjE1NyAzODIuNjAxLDIuODk4IDM1NS43ODcsMS42NzUgQzMyOC45MTcsMC40NDkgMzIwLjMzOCwwLjE1OSAyNTEuOTIxLDAuMTU5IFogTTI1MS45MjEsNDUuNTUgQzMxOS4xODYsNDUuNTUgMzI3LjE1NCw0NS44MDcgMzUzLjcxOCw0Ny4wMTkgQzM3OC4yOCw0OC4xMzkgMzkxLjYxOSw1Mi4yNDMgNDAwLjQ5Niw1NS42OTMgQzQxMi4yNTUsNjAuMjYzIDQyMC42NDcsNjUuNzIyIDQyOS40NjIsNzQuNTM4IEM0MzguMjc4LDgzLjM1MyA0NDMuNzM3LDkxLjc0NSA0NDguMzA3LDEwMy41MDQgQzQ1MS43NTcsMTEyLjM4MSA0NTUuODYxLDEyNS43MiA0NTYuOTgxLDE1MC4yODIgQzQ1OC4xOTMsMTc2Ljg0NiA0NTguNDUsMTg0LjgxNCA0NTguNDUsMjUyLjA4IEM0NTguNDUsMzE5LjM0NSA0NTguMTkzLDMyNy4zMTMgNDU2Ljk4MSwzNTMuODc3IEM0NTUuODYxLDM3OC40MzkgNDUxLjc1NywzOTEuNzc4IDQ0OC4zMDcsNDAwLjY1NSBDNDQzLjczNyw0MTIuNDE0IDQzOC4yNzgsNDIwLjgwNiA0MjkuNDYyLDQyOS42MjEgQzQyMC42NDcsNDM4LjQzNyA0MTIuMjU1LDQ0My44OTYgNDAwLjQ5Niw0NDguNDY2IEMzOTEuNjE5LDQ1MS45MTYgMzc4LjI4LDQ1Ni4wMiAzNTMuNzE4LDQ1Ny4xNCBDMzI3LjE1OCw0NTguMzUyIDMxOS4xOTEsNDU4LjYwOSAyNTEuOTIxLDQ1OC42MDkgQzE4NC42NSw0NTguNjA5IDE3Ni42ODQsNDU4LjM1MiAxNTAuMTIzLDQ1Ny4xNCBDMTI1LjU2MSw0NTYuMDIgMTEyLjIyMiw0NTEuOTE2IDEwMy4zNDUsNDQ4LjQ2NiBDOTEuNTg2LDQ0My44OTYgODMuMTk0LDQzOC40MzcgNzQuMzc5LDQyOS42MjEgQzY1LjU2NCw0MjAuODA2IDYwLjEwNCw0MTIuNDE0IDU1LjUzNCw0MDAuNjU1IEM1Mi4wODQsMzkxLjc3OCA0Ny45OCwzNzguNDM5IDQ2Ljg2LDM1My44NzcgQzQ1LjY0OCwzMjcuMzEzIDQ1LjM5MSwzMTkuMzQ1IDQ1LjM5MSwyNTIuMDggQzQ1LjM5MSwxODQuODE0IDQ1LjY0OCwxNzYuODQ2IDQ2Ljg2LDE1MC4yODIgQzQ3Ljk4LDEyNS43MiA1Mi4wODQsMTEyLjM4MSA1NS41MzQsMTAzLjUwNCBDNjAuMTA0LDkxLjc0NSA2NS41NjMsODMuMzUzIDc0LjM3OSw3NC41MzggQzgzLjE5NCw2NS43MjIgOTEuNTg2LDYwLjI2MyAxMDMuMzQ1LDU1LjY5MyBDMTEyLjIyMiw1Mi4yNDMgMTI1LjU2MSw0OC4xMzkgMTUwLjEyMyw0Ny4wMTkgQzE3Ni42ODcsNDUuODA3IDE4NC42NTUsNDUuNTUgMjUxLjkyMSw0NS41NSBaIiBpZD0iRmlsbC0xIiBmaWxsPSIjRkZGRkZGIiBtYXNrPSJ1cmwoI21hc2stMikiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgICAgIDxwYXRoIGQ9Ik0yNTEuOTIxLDMzNi4wNTMgQzIwNS41NDMsMzM2LjA1MyAxNjcuOTQ3LDI5OC40NTcgMTY3Ljk0NywyNTIuMDggQzE2Ny45NDcsMjA1LjcwMiAyMDUuNTQzLDE2OC4xMDYgMjUxLjkyMSwxNjguMTA2IEMyOTguMjk4LDE2OC4xMDYgMzM1Ljg5NCwyMDUuNzAyIDMzNS44OTQsMjUyLjA4IEMzMzUuODk0LDI5OC40NTcgMjk4LjI5OCwzMzYuMDUzIDI1MS45MjEsMzM2LjA1MyBaIE0yNTEuOTIxLDEyMi43MTUgQzE4MC40NzQsMTIyLjcxNSAxMjIuNTU2LDE4MC42MzMgMTIyLjU1NiwyNTIuMDggQzEyMi41NTYsMzIzLjUyNiAxODAuNDc0LDM4MS40NDQgMjUxLjkyMSwzODEuNDQ0IEMzMjMuMzY3LDM4MS40NDQgMzgxLjI4NSwzMjMuNTI2IDM4MS4yODUsMjUyLjA4IEMzODEuMjg1LDE4MC42MzMgMzIzLjM2NywxMjIuNzE1IDI1MS45MjEsMTIyLjcxNSBaIiBpZD0iRmlsbC00IiBmaWxsPSIjRkZGRkZGIj48L3BhdGg+ICAgICAgICA8cGF0aCBkPSJNNDE2LjYyNywxMTcuNjA0IEM0MTYuNjI3LDEzNC4zIDQwMy4wOTIsMTQ3LjgzNCAzODYuMzk2LDE0Ny44MzQgQzM2OS43MDEsMTQ3LjgzNCAzNTYuMTY2LDEzNC4zIDM1Ni4xNjYsMTE3LjYwNCBDMzU2LjE2NiwxMDAuOTA4IDM2OS43MDEsODcuMzczIDM4Ni4zOTYsODcuMzczIEM0MDMuMDkyLDg3LjM3MyA0MTYuNjI3LDEwMC45MDggNDE2LjYyNywxMTcuNjA0IiBpZD0iRmlsbC01IiBmaWxsPSIjRkZGRkZGIj48L3BhdGg+ICAgIDwvZz48L3N2Zz4=);
		}

.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder {

		/* stylelint-disable-next-line no-descending-specificity */
	}

.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__url__text {
			color: hsl(302, 100%, 94%)
		}

.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__url__text:hover {
				color: hsl(0, 0%, 100%);
			}

.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder {
		/* Use gradient to contrast with focused widget (ckeditor/ckeditor5-media-embed#22). */
		background: linear-gradient( to right, hsl(201, 85%, 70%), hsl(201, 85%, 35%) )
	}

.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__icon {
			background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IldoaXRlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQwMCA0MDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQwMCA0MDA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPi5zdDB7ZmlsbDojRkZGRkZGO308L3N0eWxlPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MDAsMjAwYzAsMTEwLjUtODkuNSwyMDAtMjAwLDIwMFMwLDMxMC41LDAsMjAwUzg5LjUsMCwyMDAsMFM0MDAsODkuNSw0MDAsMjAweiBNMTYzLjQsMzA1LjVjODguNywwLDEzNy4yLTczLjUsMTM3LjItMTM3LjJjMC0yLjEsMC00LjItMC4xLTYuMmM5LjQtNi44LDE3LjYtMTUuMywyNC4xLTI1Yy04LjYsMy44LTE3LjksNi40LTI3LjcsNy42YzEwLTYsMTcuNi0xNS40LDIxLjItMjYuN2MtOS4zLDUuNS0xOS42LDkuNS0zMC42LDExLjdjLTguOC05LjQtMjEuMy0xNS4yLTM1LjItMTUuMmMtMjYuNiwwLTQ4LjIsMjEuNi00OC4yLDQ4LjJjMCwzLjgsMC40LDcuNSwxLjMsMTFjLTQwLjEtMi03NS42LTIxLjItOTkuNC01MC40Yy00LjEsNy4xLTYuNSwxNS40LTYuNSwyNC4yYzAsMTYuNyw4LjUsMzEuNSwyMS41LDQwLjFjLTcuOS0wLjItMTUuMy0yLjQtMjEuOC02YzAsMC4yLDAsMC40LDAsMC42YzAsMjMuNCwxNi42LDQyLjgsMzguNyw0Ny4zYy00LDEuMS04LjMsMS43LTEyLjcsMS43Yy0zLjEsMC02LjEtMC4zLTkuMS0wLjljNi4xLDE5LjIsMjMuOSwzMy4xLDQ1LDMzLjVjLTE2LjUsMTIuOS0zNy4zLDIwLjYtNTkuOSwyMC42Yy0zLjksMC03LjctMC4yLTExLjUtMC43QzExMC44LDI5Ny41LDEzNi4yLDMwNS41LDE2My40LDMwNS41Ii8+PC9zdmc+);
		}

.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__url__text {
			color: hsl(201, 100%, 86%)
		}

.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__url__text:hover {
				color: hsl(0, 0%, 100%);
			}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-media-embed\theme\mediaform.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-media-form {
	display: flex;
	align-items: flex-start;
	flex-direction: row;
	flex-wrap: nowrap
}

.ck.ck-media-form .ck-labeled-field-view {
		display: inline-block;
	}

.ck.ck-media-form .ck-label {
		display: none;
	}

@media screen and (max-width: 600px) {

.ck.ck-media-form {
		flex-wrap: wrap
}

		.ck.ck-media-form .ck-labeled-field-view {
			flex-basis: 100%;
		}

		.ck.ck-media-form .ck-button {
			flex-basis: 50%;
		}
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-media-embed\theme\mediaembed.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck-content .media {
	/* Don't allow floated content overlap the media.
	https://github.com/ckeditor/ckeditor5-media-embed/issues/53 */
	clear: both;

	/* Make sure there is some space between the content and the media. */
	margin: 1em 0;

	/* Make sure media is not overriden with Bootstrap default `flex` value.
	See: https://github.com/ckeditor/ckeditor5/issues/1373. */
	display: block;

	/* Give the media some minimal width in the content to prevent them
	from being "squashed" in tight spaces, e.g. in table cells (#44) */
	min-width: 15em;
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-table\theme\tableediting.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Note: This file should contain the wireframe styles only. But since there are no such styles,
 * it acts as a message to the builder telling that it should look for the corresponding styles
 * **in the theme** when compiling the editor.
 */

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-table\tableediting.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-color-table-focused-cell-background: hsla(208, 90%, 80%, .3);
}

.ck-widget.table td.ck-editor__nested-editable.ck-editor__nested-editable_focused,
		.ck-widget.table td.ck-editor__nested-editable:focus,
		.ck-widget.table th.ck-editor__nested-editable.ck-editor__nested-editable_focused,
		.ck-widget.table th.ck-editor__nested-editable:focus {
			/* A very slight background to highlight the focused cell */
			background: var(--ck-color-table-focused-cell-background);

			/* Fixes the problem where surrounding cells cover the focused cell's border.
			It does not fix the problem in all places but the UX is improved.
			See https://github.com/ckeditor/ckeditor5-table/issues/29. */
			border-style: none;
			outline: 1px solid var(--ck-color-focus-border);
			outline-offset: -1px; /* progressive enhancement - no IE support */
		}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-ui\theme\components\dropdown\splitbutton.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Enables the tooltip, which is the tooltip is in DOM but
 * not yet displayed.
 */

/**
 * Disables the tooltip making it disappear from DOM.
 */

/**
 * Shows the tooltip, which is already in DOM.
 * Requires `ck-tooltip_enabled` first.
 */

.ck.ck-splitbutton {
	/* Enable font size inheritance, which allows fluid UI scaling. */
	font-size: inherit
}

.ck.ck-splitbutton .ck-splitbutton__action:focus {
		z-index: calc(var(--ck-z-default) + 1);
	}

.ck.ck-splitbutton {

	/* Disable tooltips for the buttons when the button is "open" */
}

.ck.ck-splitbutton.ck-splitbutton_open > .ck-button .ck-tooltip {
		display: none;
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\dropdown\splitbutton.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

:root {
	--ck-color-split-button-hover-background: hsl(0, 0%, 92%);
	--ck-color-split-button-hover-border: hsl(0, 0%, 70%);
}

.ck.ck-splitbutton {
	/*
	 * Note: ck-rounded and ck-dir mixins don't go together (because they both use @nest).
	 */
}

[dir="ltr"] .ck.ck-splitbutton > .ck-splitbutton__action {
			/* Don't round the action button on the right side */
			border-top-right-radius: unset;
			border-bottom-right-radius: unset
	}

[dir="rtl"] .ck.ck-splitbutton > .ck-splitbutton__action {
			/* Don't round the action button on the left side */
			border-top-left-radius: unset;
			border-bottom-left-radius: unset
	}

.ck.ck-splitbutton > .ck-splitbutton__arrow {
		/* It's a text-less button and since the icon is positioned absolutely in such situation,
		it must get some arbitrary min-width. */
		min-width: unset
	}

[dir="ltr"] .ck.ck-splitbutton > .ck-splitbutton__arrow {
			/* Don't round the arrow button on the left side */
			border-radius: 0
	}

.ck-rounded-corners [dir="ltr"] .ck.ck-splitbutton > .ck-splitbutton__arrow, [dir="ltr"] .ck.ck-splitbutton > .ck-splitbutton__arrow.ck-rounded-corners {
		border-radius: var(--ck-border-radius);
				border-top-left-radius: unset;
				border-bottom-left-radius: unset
	}

[dir="rtl"] .ck.ck-splitbutton > .ck-splitbutton__arrow {
			/* Don't round the arrow button on the right side */
			border-top-right-radius: unset;
			border-bottom-right-radius: unset
	}

.ck.ck-splitbutton > .ck-splitbutton__arrow svg {
			width: var(--ck-dropdown-arrow-size);
		}

.ck.ck-splitbutton {

	/* When the split button is "open" (the arrow is on) or being hovered, it should get some styling
	as a whole. The background of both buttons should stand out and there should be a visual
	separation between both buttons. */
}

.ck.ck-splitbutton.ck-splitbutton_open,
	.ck.ck-splitbutton:hover {
		/* When the split button hovered as a whole, not as individual buttons. */
	}

.ck.ck-splitbutton.ck-splitbutton_open > .ck-button:not(.ck-on):not(.ck-disabled):not(:hover), .ck.ck-splitbutton:hover > .ck-button:not(.ck-on):not(.ck-disabled):not(:hover) {
			background: var(--ck-color-split-button-hover-background);
		}

[dir="ltr"] .ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled), [dir="ltr"] .ck.ck-splitbutton:hover > .ck-splitbutton__arrow:not(.ck-disabled) {
				border-left-color: var(--ck-color-split-button-hover-border);
			}

[dir="rtl"] .ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__arrow:not(.ck-disabled), [dir="rtl"] .ck.ck-splitbutton:hover > .ck-splitbutton__arrow:not(.ck-disabled) {
				border-right-color: var(--ck-color-split-button-hover-border);
			}

.ck.ck-splitbutton {

	/* Don't round the bottom left and right corners of the buttons when "open"
	https://github.com/ckeditor/ckeditor5/issues/816 */
}

.ck.ck-splitbutton.ck-splitbutton_open {
		border-radius: 0
	}

.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open, .ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners {
		border-radius: var(--ck-border-radius)
	}

.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__action, .ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners > .ck-splitbutton__action {
				border-bottom-left-radius: 0;
			}

.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open > .ck-splitbutton__arrow, .ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners > .ck-splitbutton__arrow {
				border-bottom-right-radius: 0;
			}


/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-table\theme\inserttable.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck .ck-insert-table-dropdown__grid {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-table\inserttable.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-insert-table-dropdown-padding: 10px;
	--ck-insert-table-dropdown-box-height: 11px;
	--ck-insert-table-dropdown-box-width: 12px;
	--ck-insert-table-dropdown-box-margin: 1px;
}

.ck .ck-insert-table-dropdown__grid {
	/* The width of a container should match 10 items in a row so there will be a 10x10 grid. */
	width: calc(var(--ck-insert-table-dropdown-box-width) * 10 + var(--ck-insert-table-dropdown-box-margin) * 20 + var(--ck-insert-table-dropdown-padding) * 2);
	padding: var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;
}

.ck .ck-insert-table-dropdown__label {
	text-align: center;
}

.ck .ck-insert-table-dropdown-grid-box {
	width: var(--ck-insert-table-dropdown-box-width);
	height: var(--ck-insert-table-dropdown-box-height);
	margin: var(--ck-insert-table-dropdown-box-margin);
	border: 1px solid var(--ck-color-base-border);
	border-radius: 1px
}

.ck .ck-insert-table-dropdown-grid-box.ck-on {
		border-color: var(--ck-color-focus-border);
		background: var(--ck-color-focus-outer-shadow);
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-table\theme\tableselection.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Note: This file should contain the wireframe styles only. But since there are no such styles,
 * it acts as a message to the builder telling that it should look for the corresponding styles
 * **in the theme** when compiling the editor.
 */

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-table\tableselection.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

:root {
	--ck-table-selected-cell-background: hsla(208, 90%, 80%, .3);
}

.ck.ck-editor__editable .table table td.ck-editor__editable_selected,
	.ck.ck-editor__editable .table table th.ck-editor__editable_selected {
		position: relative;
		caret-color: transparent;
		outline: unset;
		box-shadow: unset

		/* https://github.com/ckeditor/ckeditor5/issues/6446 */
	}

.ck.ck-editor__editable .table table td.ck-editor__editable_selected:after, .ck.ck-editor__editable .table table th.ck-editor__editable_selected:after {
			content: '';
			pointer-events: none;
			background-color: var(--ck-table-selected-cell-background);
			position: absolute;
			top: 0;
			left: 0;
			right: 0;
			bottom: 0;
		}

.ck.ck-editor__editable .table table td.ck-editor__editable_selected ::selection,
		.ck.ck-editor__editable .table table td.ck-editor__editable_selected:focus,
		.ck.ck-editor__editable .table table th.ck-editor__editable_selected ::selection,
		.ck.ck-editor__editable .table table th.ck-editor__editable_selected:focus {
			background-color: transparent;
		}

.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget_selected, .ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget_selected {
			outline: unset;
		}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-table\theme\table.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck-content .table {
	/* Give the table widget some air and center it horizontally */
	margin: 1em auto;
	display: table
}

.ck-content .table table {
		/* The table cells should have slight borders */
		border-collapse: collapse;
		border-spacing: 0;

		/* Table width and height are set on the parent <figure>. Make sure the table inside stretches
		to the full dimensions of the container (https://github.com/ckeditor/ckeditor5/issues/6186). */
		width: 100%;
		height: 100%;

		/* The outer border of the table should be slightly darker than the inner lines.
		Also see https://github.com/ckeditor/ckeditor5-table/issues/50. */
		border: 1px double hsl(0, 0%, 70%)
	}

.ck-content .table table td,
		.ck-content .table table th {
			min-width: 2em;
			padding: .4em;

			/* The border is inherited from .ck-editor__nested-editable styles, so theoretically it's not necessary here.
			However, the border is a content style, so it should use .ck-content (so it works outside the editor).
			Hence, the duplication. See https://github.com/ckeditor/ckeditor5/issues/6314 */
			border: 1px solid hsl(0, 0%, 75%);
		}

.ck-content .table table th {
			font-weight: bold;
			background: hsla(0, 0%, 0%, 5%);
		}

/* Text alignment of the table header should match the editor settings and override the native browser styling,
when content is available outside the ediitor. See https://github.com/ckeditor/ckeditor5/issues/6638 */

.ck-content[dir="rtl"] .table th {
	text-align: right;
}

.ck-content[dir="ltr"] .table th {
	text-align: left;
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-block-quote\theme\blockquote.css */

/**
 * @license Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck-content blockquote {
	/* See #12 */
	overflow: hidden;

	/* https://github.com/ckeditor/ckeditor5-block-quote/issues/15 */
	padding-right: 1.5em;
	padding-left: 1.5em;

	margin-left: 0;
	margin-right: 0;
	font-style: italic;
	border-left: solid 5px hsl(0, 0%, 80%);
}

.ck-content[dir="rtl"] blockquote {
	border-left: 0;
	border-right: solid 5px hsl(0, 0%, 80%);
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-ui\theme\components\colorgrid\colorgrid.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck.ck-color-grid {
	display: grid;
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-ui\components\colorgrid\colorgrid.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/**
 * Implements rounded corner interface for .ck-rounded-corners class.
 *
 * @see $ck-border-radius
 */

:root {
	--ck-color-grid-tile-size: 24px;

	/* Not using global colors here because these may change but some colors in a pallette
	 * require special treatment. For instance, this ensures no matter what the UI text color is,
	 * the check icon will look good on the black color tile. */
	--ck-color-color-grid-check-icon: hsl(0, 0%, 0%);
}

.ck.ck-color-grid {
	grid-gap: 5px;
	padding: 8px;
}

.ck.ck-color-grid__tile {
	width: var(--ck-color-grid-tile-size);
	height: var(--ck-color-grid-tile-size);
	min-width: var(--ck-color-grid-tile-size);
	min-height: var(--ck-color-grid-tile-size);
	padding: 0;
	transition: .2s ease box-shadow;
	border: 0
}

.ck.ck-color-grid__tile.ck-disabled {
		cursor: unset;
		transition: unset;
	}

.ck.ck-color-grid__tile.ck-color-table__color-tile_bordered {
		box-shadow: 0 0 0 1px var(--ck-color-base-border);
	}

.ck.ck-color-grid__tile .ck.ck-icon {
		display: none;
		color: var(--ck-color-color-grid-check-icon);
	}

.ck.ck-color-grid__tile.ck-on {
		box-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-base-text)
	}

.ck.ck-color-grid__tile.ck-on .ck.ck-icon {
			display: block;
		}

.ck.ck-color-grid__tile.ck-on,
	.ck.ck-color-grid__tile:focus:not( .ck-disabled ),
	.ck.ck-color-grid__tile:hover:not( .ck-disabled ) {
		/* Disable the default .ck-button's border ring. */
		border: 0;
	}

.ck.ck-color-grid__tile:focus:not( .ck-disabled ),
	.ck.ck-color-grid__tile:hover:not( .ck-disabled ) {
		box-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);
	}

.ck.ck-color-grid__label {
	padding: 0 var(--ck-spacing-standard);
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-font\theme\fontcolor.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck .ck-button.ck-color-table__remove-color {
	display: flex;
	align-items: center;
	width: 100%;
}

label.ck.ck-color-grid__label {
	font-weight: unset;
}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-theme-lark\theme\ckeditor5-font\fontcolor.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

.ck .ck-button.ck-color-table__remove-color {
	padding: calc(var(--ck-spacing-standard) / 2 ) var(--ck-spacing-standard);
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0
}

.ck .ck-button.ck-color-table__remove-color:not(:focus) {
		border-bottom: 1px solid var(--ck-color-base-border);
	}

[dir="ltr"] .ck .ck-button.ck-color-table__remove-color .ck.ck-icon {
			margin-right: var(--ck-spacing-standard)
	}

[dir="rtl"] .ck .ck-button.ck-color-table__remove-color .ck.ck-icon {
			margin-left: var(--ck-spacing-standard)
	}

/* D:\Project\sirius\node_modules\@ckeditor\ckeditor5-font\theme\fontsize.css */

/*
 * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

/* The values should be synchronized with the "FONT_SIZE_PRESET_UNITS" object in the "/src/fontsize/utils.js" file. */

/* Styles should be prefixed with the `.ck-content` class.
See https://github.com/ckeditor/ckeditor5/issues/6636 */

.ck-content .text-tiny {
		font-size: .7em;
	}

.ck-content .text-small {
		font-size: .85em;
	}

.ck-content .text-big {
		font-size: 1.4em;
	}

.ck-content .text-huge {
		font-size: 1.8em;
	}

/*! Pickr 1.8.2 MIT | https://github.com/Simonwep/pickr */
.pickr{position:relative;overflow:visible;transform:translateY(0)}.pickr *{box-sizing:border-box;outline:none;border:none;-webkit-appearance:none}.pickr .pcr-button{position:relative;height:2em;width:2em;padding:0.5em;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;border-radius:.15em;background:url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" stroke="%2342445A" stroke-width="5px" stroke-linecap="round"><path d="M45,45L5,5"></path><path d="M45,5L5,45"></path></svg>') no-repeat center;background-size:0;transition:all 0.3s}.pickr .pcr-button::before{position:absolute;content:'';top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>');background-size:.5em;border-radius:.15em;z-index:-1}.pickr .pcr-button::before{z-index:initial}.pickr .pcr-button::after{position:absolute;content:'';top:0;left:0;height:100%;width:100%;transition:background 0.3s;background:var(--pcr-color);border-radius:.15em}.pickr .pcr-button.clear{background-size:70%}.pickr .pcr-button.clear::before{opacity:0}.pickr .pcr-button.clear:focus{box-shadow:0 0 0 1px rgba(255,255,255,0.85),0 0 0 3px var(--pcr-color)}.pickr .pcr-button.disabled{cursor:not-allowed}.pickr *,.pcr-app *{box-sizing:border-box;outline:none;border:none;-webkit-appearance:none}.pickr input:focus,.pickr input.pcr-active,.pickr button:focus,.pickr button.pcr-active,.pcr-app input:focus,.pcr-app input.pcr-active,.pcr-app button:focus,.pcr-app button.pcr-active{box-shadow:0 0 0 1px rgba(255,255,255,0.85),0 0 0 3px var(--pcr-color)}.pickr .pcr-palette,.pickr .pcr-slider,.pcr-app .pcr-palette,.pcr-app .pcr-slider{transition:box-shadow 0.3s}.pickr .pcr-palette:focus,.pickr .pcr-slider:focus,.pcr-app .pcr-palette:focus,.pcr-app .pcr-slider:focus{box-shadow:0 0 0 1px rgba(255,255,255,0.85),0 0 0 3px rgba(0,0,0,0.25)}.pcr-app{position:fixed;display:flex;flex-direction:column;z-index:10000;border-radius:0.1em;background:#fff;opacity:0;visibility:hidden;transition:opacity 0.3s, visibility 0s 0.3s;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;box-shadow:0 0.15em 1.5em 0 rgba(0,0,0,0.1),0 0 1em 0 rgba(0,0,0,0.03);left:0;top:0}.pcr-app.visible{transition:opacity 0.3s;visibility:visible;opacity:1}.pcr-app .pcr-swatches{display:flex;flex-wrap:wrap;margin-top:0.75em}.pcr-app .pcr-swatches.pcr-last{margin:0}@supports (display: grid){.pcr-app .pcr-swatches{display:grid;align-items:center;grid-template-columns:repeat(auto-fit, 1.75em)}}.pcr-app .pcr-swatches>button{font-size:1em;position:relative;width:calc(1.75em - 5px);height:calc(1.75em - 5px);border-radius:0.15em;cursor:pointer;margin:2.5px;flex-shrink:0;justify-self:center;transition:all 0.15s;overflow:hidden;background:transparent;z-index:1}.pcr-app .pcr-swatches>button::before{position:absolute;content:'';top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>');background-size:6px;border-radius:.15em;z-index:-1}.pcr-app .pcr-swatches>button::after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:var(--pcr-color);border:1px solid rgba(0,0,0,0.05);border-radius:0.15em;box-sizing:border-box}.pcr-app .pcr-swatches>button:hover{filter:brightness(1.05)}.pcr-app .pcr-swatches>button:not(.pcr-active){box-shadow:none}.pcr-app .pcr-interaction{display:flex;flex-wrap:wrap;align-items:center;margin:0 -0.2em 0 -0.2em}.pcr-app .pcr-interaction>*{margin:0 0.2em}.pcr-app .pcr-interaction input{letter-spacing:0.07em;font-size:0.75em;text-align:center;cursor:pointer;color:#75797e;background:#f1f3f4;border-radius:.15em;transition:all 0.15s;padding:0.45em 0.5em;margin-top:0.75em}.pcr-app .pcr-interaction input:hover{filter:brightness(0.975)}.pcr-app .pcr-interaction input:focus{box-shadow:0 0 0 1px rgba(255,255,255,0.85),0 0 0 3px rgba(66,133,244,0.75)}.pcr-app .pcr-interaction .pcr-result{color:#75797e;text-align:left;flex:1 1 8em;min-width:8em;transition:all 0.2s;border-radius:.15em;background:#f1f3f4;cursor:text}.pcr-app .pcr-interaction .pcr-result::selection{background:#4285f4;color:#fff}.pcr-app .pcr-interaction .pcr-type.active{color:#fff;background:#4285f4}.pcr-app .pcr-interaction .pcr-save,.pcr-app .pcr-interaction .pcr-cancel,.pcr-app .pcr-interaction .pcr-clear{color:#fff;width:auto}.pcr-app .pcr-interaction .pcr-save,.pcr-app .pcr-interaction .pcr-cancel,.pcr-app .pcr-interaction .pcr-clear{color:#fff}.pcr-app .pcr-interaction .pcr-save:hover,.pcr-app .pcr-interaction .pcr-cancel:hover,.pcr-app .pcr-interaction .pcr-clear:hover{filter:brightness(0.925)}.pcr-app .pcr-interaction .pcr-save{background:#4285f4}.pcr-app .pcr-interaction .pcr-clear,.pcr-app .pcr-interaction .pcr-cancel{background:#f44250}.pcr-app .pcr-interaction .pcr-clear:focus,.pcr-app .pcr-interaction .pcr-cancel:focus{box-shadow:0 0 0 1px rgba(255,255,255,0.85),0 0 0 3px rgba(244,66,80,0.75)}.pcr-app .pcr-selection .pcr-picker{position:absolute;height:18px;width:18px;border:2px solid #fff;border-radius:100%;-webkit-user-select:none;user-select:none}.pcr-app .pcr-selection .pcr-color-palette,.pcr-app .pcr-selection .pcr-color-chooser,.pcr-app .pcr-selection .pcr-color-opacity{position:relative;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;cursor:grab;cursor:-webkit-grab}.pcr-app .pcr-selection .pcr-color-palette:active,.pcr-app .pcr-selection .pcr-color-chooser:active,.pcr-app .pcr-selection .pcr-color-opacity:active{cursor:grabbing;cursor:-webkit-grabbing}.pcr-app[data-theme='classic']{width:28.5em;max-width:95vw;padding:0.8em}.pcr-app[data-theme='classic'] .pcr-selection{display:flex;justify-content:space-between;flex-grow:1}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-preview{position:relative;z-index:1;width:2em;display:flex;flex-direction:column;justify-content:space-between;margin-right:0.75em}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-preview::before{position:absolute;content:'';top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>');background-size:.5em;border-radius:.15em;z-index:-1}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-preview .pcr-last-color{cursor:pointer;border-radius:0.15em 0.15em 0 0;z-index:2}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-preview .pcr-current-color{border-radius:0 0 0.15em 0.15em}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-preview .pcr-last-color,.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-preview .pcr-current-color{background:var(--pcr-color);width:100%;height:50%}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-palette{width:100%;height:8em;z-index:1}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-palette .pcr-palette{flex-grow:1;border-radius:.15em}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-palette .pcr-palette::before{position:absolute;content:'';top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>');background-size:.5em;border-radius:.15em;z-index:-1}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-chooser,.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-opacity{margin-left:0.75em}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-chooser .pcr-picker,.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-opacity .pcr-picker{left:50%;transform:translateX(-50%)}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-chooser .pcr-slider,.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-opacity .pcr-slider{width:8px;flex-grow:1;border-radius:50em}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-chooser .pcr-slider{background:linear-gradient(to bottom, red, #ff0, lime, cyan, blue, #f0f, red)}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-opacity .pcr-slider{background:linear-gradient(to bottom, transparent, black),url('data:image/svg+xml;utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 2"><path fill="white" d="M1,0H2V1H1V0ZM0,1H1V2H0V1Z"/><path fill="gray" d="M0,0H1V1H0V0ZM1,1H2V2H1V1Z"/></svg>');background-size:100%, 50%}



/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vbGVzcy9kYXRlcGlja2VyLmxlc3MiLCJ3ZWJwYWNrOi8vL2J1aWxkL2J1aWxkLmxlc3MiLCJ3ZWJwYWNrOi8vL2Jvb3RzdHJhcC1kYXRlcGlja2VyLnN0YW5kYWxvbmUuY3NzIiwid2VicGFjazovLy9idWlsZC9idWlsZF9zdGFuZGFsb25lLmxlc3MiLCJ3ZWJwYWNrOi8vL2ZsaWNraXR5LmNzcyIsIndlYnBhY2s6Ly8vdnVlMkRyb3B6b25lLm1pbi5jc3MiLCJ3ZWJwYWNrOi8vL3NsaWNrLmNzcyIsIndlYnBhY2s6Ly8vc2xpY2stdGhlbWUuY3NzIiwid2VicGFjazovLy9vd2wuY2Fyb3VzZWwuY3NzIiwid2VicGFjazovLy9nbG9iYWxzLmNzcyIsIndlYnBhY2s6Ly8vaWNvbi5jc3MiLCJ3ZWJwYWNrOi8vL2JhbGxvb25wYW5lbC5jc3MiLCJ3ZWJwYWNrOi8vL3dpZGdldHR5cGVhcm91bmQuY3NzIiwid2VicGFjazovLy93aWRnZXQuY3NzIiwid2VicGFjazovLy90b29sdGlwLmNzcyIsIndlYnBhY2s6Ly8vYnV0dG9uLmNzcyIsIndlYnBhY2s6Ly8vZHJvcGRvd24uY3NzIiwid2VicGFjazovLy90b29sYmFyLmNzcyIsIndlYnBhY2s6Ly8vbGlzdC5jc3MiLCJ3ZWJwYWNrOi8vL3N3aXRjaGJ1dHRvbi5jc3MiLCJ3ZWJwYWNrOi8vL3Rvb2xiYXJkcm9wZG93bi5jc3MiLCJ3ZWJwYWNrOi8vL2xpc3Rkcm9wZG93bi5jc3MiLCJ3ZWJwYWNrOi8vL3BsYWNlaG9sZGVyLmNzcyIsIndlYnBhY2s6Ly8vZWRpdG9ydWkuY3NzIiwid2VicGFjazovLy9sYWJlbC5jc3MiLCJ3ZWJwYWNrOi8vL3N0aWNreXBhbmVsLmNzcyIsIndlYnBhY2s6Ly8vY2xhc3NpY2VkaXRvci5jc3MiLCJ3ZWJwYWNrOi8vL2hlYWRpbmcuY3NzIiwid2VicGFjazovLy9saW5rLmNzcyIsIndlYnBhY2s6Ly8vYmFsbG9vbnJvdGF0b3IuY3NzIiwid2VicGFjazovLy9mYWtlcGFuZWwuY3NzIiwid2VicGFjazovLy9sYWJlbGVkZmllbGR2aWV3LmNzcyIsIndlYnBhY2s6Ly8vaW5wdXR0ZXh0LmNzcyIsIndlYnBhY2s6Ly8vbGlua2Zvcm0uY3NzIiwid2VicGFjazovLy9yZXNwb25zaXZlZm9ybS5jc3MiLCJ3ZWJwYWNrOi8vL2xpbmthY3Rpb25zLmNzcyIsIndlYnBhY2s6Ly8vdGV4dGFsdGVybmF0aXZlZm9ybS5jc3MiLCJ3ZWJwYWNrOi8vL2ltYWdlLmNzcyIsIndlYnBhY2s6Ly8vaW1hZ2VjYXB0aW9uLmNzcyIsIndlYnBhY2s6Ly8vaW1hZ2VzdHlsZS5jc3MiLCJ3ZWJwYWNrOi8vL3dpZGdldHJlc2l6ZS5jc3MiLCJ3ZWJwYWNrOi8vL2ltYWdlcmVzaXplLmNzcyIsIndlYnBhY2s6Ly8vaW1hZ2V1cGxvYWRwcm9ncmVzcy5jc3MiLCJ3ZWJwYWNrOi8vL2ltYWdldXBsb2FkaWNvbi5jc3MiLCJ3ZWJwYWNrOi8vL2ltYWdldXBsb2FkbG9hZGVyLmNzcyIsIndlYnBhY2s6Ly8vbWVkaWFlbWJlZGVkaXRpbmcuY3NzIiwid2VicGFjazovLy9tZWRpYWZvcm0uY3NzIiwid2VicGFjazovLy9tZWRpYWVtYmVkLmNzcyIsIndlYnBhY2s6Ly8vdGFibGVlZGl0aW5nLmNzcyIsIndlYnBhY2s6Ly8vc3BsaXRidXR0b24uY3NzIiwid2VicGFjazovLy9pbnNlcnR0YWJsZS5jc3MiLCJ3ZWJwYWNrOi8vL3RhYmxlc2VsZWN0aW9uLmNzcyIsIndlYnBhY2s6Ly8vdGFibGUuY3NzIiwid2VicGFjazovLy9ibG9ja3F1b3RlLmNzcyIsIndlYnBhY2s6Ly8vY29sb3JncmlkLmNzcyIsIndlYnBhY2s6Ly8vZm9udGNvbG9yLmNzcyIsIndlYnBhY2s6Ly8vZm9udHNpemUuY3NzIiwid2VicGFjazovLy9jbGFzc2ljLm1pbi5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7RUN5QlU7O0FDbkJWO0VGSEMsWUFBQztFQUlELGtCQUFDO0VBQ0E7QUVJRjtBRkhFO0VBQWtC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QyxnTkFBZ04sQ0FBQyxvQkFBb0IsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsaUZBQWlGLGNBQWMsQ0FBQywrQkFBK0IsQ0FBQyxTQUFTLENBQUMsb0ZBQW9GLCtCQUErQixDQUFDLHFLQUFxSywyQkFBMkIsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLGlFQUFpRSxVQUFVLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyw4RUFBOEUsV0FBVyxDQUFDLG1CQUFtQixDQUFDLHNGQUFzRixpQkFBaUIsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLGdOQUFnTixDQUFDLG9CQUFvQixDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxrSUFBa0ksa0JBQWtCLENBQUMsMEpBQTBKLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQywwSkFBMEosU0FBUyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyw2RUFBNkUsNkVBQTZFLENBQUMsNkVBQTZFLCtQQUErUCxDQUFDLHlCQUF5QiIsImZpbGUiOiJ2ZW5kb3JzfmFwcC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZGF0ZXBpY2tlciB7XG5cdHBhZGRpbmc6IDRweDtcblx0LmJvcmRlci1yYWRpdXMoQGJhc2VCb3JkZXJSYWRpdXMpO1xuXHQmLWlubGluZSB7XG5cdFx0d2lkdGg6IDIyMHB4O1xuXHR9XG5cdGRpcmVjdGlvbjogbHRyO1xuXHQmLXJ0bCB7XG5cdFx0ZGlyZWN0aW9uOiBydGw7XG5cdFx0Ji5kcm9wZG93bi1tZW51IHsgbGVmdDogYXV0bzsgfVxuXHRcdHRhYmxlIHRyIHRkIHNwYW4ge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdH1cblx0fVxuXHQmLWRyb3Bkb3duIHtcblx0XHR0b3A6IDA7XG5cdFx0bGVmdDogMDtcblx0XHQmOmJlZm9yZSB7XG5cdFx0XHRjb250ZW50OiAnJztcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdGJvcmRlci1sZWZ0OiAgIDdweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRcdGJvcmRlci1yaWdodDogIDdweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRcdGJvcmRlci1ib3R0b206IDdweCBzb2xpZCBAZ3JheUxpZ2h0O1xuXHRcdFx0Ym9yZGVyLXRvcDogICAgMDtcblx0XHRcdGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwwLDAsLjIpO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdH1cblx0XHQmOmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6ICcnO1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0Ym9yZGVyLWxlZnQ6ICAgNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdFx0Ym9yZGVyLXJpZ2h0OiAgNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogNnB4IHNvbGlkIEB3aGl0ZTtcblx0XHRcdGJvcmRlci10b3A6ICAgIDA7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0fVxuXHRcdCYuZGF0ZXBpY2tlci1vcmllbnQtbGVmdDpiZWZvcmUgICB7IGxlZnQ6IDZweDsgfVxuXHRcdCYuZGF0ZXBpY2tlci1vcmllbnQtbGVmdDphZnRlciAgICB7IGxlZnQ6IDdweDsgfVxuXHRcdCYuZGF0ZXBpY2tlci1vcmllbnQtcmlnaHQ6YmVmb3JlICB7IHJpZ2h0OiA2cHg7IH1cblx0XHQmLmRhdGVwaWNrZXItb3JpZW50LXJpZ2h0OmFmdGVyICAgeyByaWdodDogN3B4OyB9XG5cdFx0Ji5kYXRlcGlja2VyLW9yaWVudC1ib3R0b206YmVmb3JlIHsgdG9wOiAtN3B4OyB9XG5cdFx0Ji5kYXRlcGlja2VyLW9yaWVudC1ib3R0b206YWZ0ZXIgIHsgdG9wOiAtNnB4OyB9XG5cdFx0Ji5kYXRlcGlja2VyLW9yaWVudC10b3A6YmVmb3JlIHtcblx0XHRcdGJvdHRvbTogLTdweDtcblx0XHRcdGJvcmRlci1ib3R0b206IDA7XG5cdFx0XHRib3JkZXItdG9wOiAgICA3cHggc29saWQgQGdyYXlMaWdodDtcblx0XHR9XG5cdFx0Ji5kYXRlcGlja2VyLW9yaWVudC10b3A6YWZ0ZXIge1xuXHRcdFx0Ym90dG9tOiAtNnB4O1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMDtcblx0XHRcdGJvcmRlci10b3A6ICAgIDZweCBzb2xpZCBAd2hpdGU7XG5cdFx0fVxuXHR9XG5cdHRhYmxlIHtcblx0XHRtYXJnaW46IDA7XG5cdFx0LXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuXHRcdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0LWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuXHRcdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdFx0LW1zLXVzZXItc2VsZWN0OiBub25lO1xuXHRcdHVzZXItc2VsZWN0OiBub25lO1xuXHR9XG5cdHRkLCB0aCB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHdpZHRoOiAyMHB4O1xuXHRcdGhlaWdodDogMjBweDtcblx0XHQuYm9yZGVyLXJhZGl1cyg0cHgpO1xuXG5cdFx0Ym9yZGVyOiBub25lO1xuXHR9XG5cdC8vIElubGluZSBkaXNwbGF5IGluc2lkZSBhIHRhYmxlIHByZXNlbnRzIHNvbWUgcHJvYmxlbXMgd2l0aFxuXHQvLyBib3JkZXIgYW5kIGJhY2tncm91bmQgY29sb3JzLlxuXHQudGFibGUtc3RyaXBlZCAmIHRhYmxlIHRyIHtcblx0XHR0ZCwgdGgge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0fVxuXHR9XG5cdHRhYmxlIHRyIHRkIHtcblx0XHQmLmRheTpob3Zlcixcblx0XHQmLmRheS5mb2N1c2VkIHtcblx0XHRcdGJhY2tncm91bmQ6IEBncmF5TGlnaHRlcjtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR9XG5cdFx0Ji5vbGQsXG5cdFx0Ji5uZXcge1xuXHRcdFx0Y29sb3I6IEBncmF5TGlnaHQ7XG5cdFx0fVxuXHRcdCYuZGlzYWJsZWQsXG5cdFx0Ji5kaXNhYmxlZDpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdFx0Y29sb3I6IEBncmF5TGlnaHQ7XG5cdFx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdFx0fVxuXHRcdCYuaGlnaGxpZ2h0ZWQge1xuXHRcdFx0YmFja2dyb3VuZDogQGluZm9CYWNrZ3JvdW5kO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHR9XG5cdFx0Ji50b2RheSxcblx0XHQmLnRvZGF5OmhvdmVyLFxuXHRcdCYudG9kYXkuZGlzYWJsZWQsXG5cdFx0Ji50b2RheS5kaXNhYmxlZDpob3ZlciB7XG5cdFx0XHRAdG9kYXlCYWNrZ3JvdW5kOiBsaWdodGVuKEBvcmFuZ2UsIDMwJSk7XG5cdFx0XHQuYnV0dG9uQmFja2dyb3VuZChAdG9kYXlCYWNrZ3JvdW5kLCBzcGluKEB0b2RheUJhY2tncm91bmQsIDIwKSk7XG5cdFx0XHRjb2xvcjogIzAwMDtcblx0XHR9XG5cdFx0Ji50b2RheTpob3Zlcjpob3ZlciB7IC8vIFRoYW5rIGJvb3RzdHJhcCAyLjAgZm9yIHRoaXMgc2VsZWN0b3IuLi5cblx0XHRcdC8vIFRPRE86IEJ1bXAgbWluIEJTIHRvIDIuMSwgdXNlIEB0ZXh0Q29sb3IgaW4gYnV0dG9uQmFja2dyb3VuZCBhYm92ZVxuXHRcdFx0Y29sb3I6ICMwMDA7XG5cdFx0fVxuXHRcdCYudG9kYXkuYWN0aXZlOmhvdmVyIHtcblx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdH1cblx0XHQmLnJhbmdlLFxuXHRcdCYucmFuZ2U6aG92ZXIsXG5cdFx0Ji5yYW5nZS5kaXNhYmxlZCxcblx0XHQmLnJhbmdlLmRpc2FibGVkOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6IEBncmF5TGlnaHRlcjtcblx0XHRcdC5ib3JkZXItcmFkaXVzKDApO1xuXHRcdH1cblx0XHQmLnJhbmdlLnRvZGF5LFxuXHRcdCYucmFuZ2UudG9kYXk6aG92ZXIsXG5cdFx0Ji5yYW5nZS50b2RheS5kaXNhYmxlZCxcblx0XHQmLnJhbmdlLnRvZGF5LmRpc2FibGVkOmhvdmVyIHtcblx0XHRcdEB0b2RheUJhY2tncm91bmQ6IG1peChAb3JhbmdlLCBAZ3JheUxpZ2h0ZXIsIDUwJSk7XG5cdFx0XHQuYnV0dG9uQmFja2dyb3VuZChAdG9kYXlCYWNrZ3JvdW5kLCBzcGluKEB0b2RheUJhY2tncm91bmQsIDIwKSk7XG5cdFx0XHQuYm9yZGVyLXJhZGl1cygwKTtcblx0XHR9XG5cdFx0Ji5zZWxlY3RlZCxcblx0XHQmLnNlbGVjdGVkOmhvdmVyLFxuXHRcdCYuc2VsZWN0ZWQuZGlzYWJsZWQsXG5cdFx0Ji5zZWxlY3RlZC5kaXNhYmxlZDpob3ZlciB7XG5cdFx0XHQuYnV0dG9uQmFja2dyb3VuZChsaWdodGVuKEBncmF5TGlnaHQsIDEwKSwgZGFya2VuKEBncmF5TGlnaHQsIDEwKSk7XG5cdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdHRleHQtc2hhZG93OiAwIC0xcHggMCByZ2JhKDAsMCwwLC4yNSk7XG5cdFx0fVxuXHRcdCYuYWN0aXZlLFxuXHRcdCYuYWN0aXZlOmhvdmVyLFxuXHRcdCYuYWN0aXZlLmRpc2FibGVkLFxuXHRcdCYuYWN0aXZlLmRpc2FibGVkOmhvdmVyIHtcblx0XHRcdC5idXR0b25CYWNrZ3JvdW5kKEBidG5QcmltYXJ5QmFja2dyb3VuZCwgc3BpbihAYnRuUHJpbWFyeUJhY2tncm91bmQsIDIwKSk7XG5cdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdHRleHQtc2hhZG93OiAwIC0xcHggMCByZ2JhKDAsMCwwLC4yNSk7XG5cdFx0fVxuXHRcdHNwYW4ge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHR3aWR0aDogMjMlO1xuXHRcdFx0aGVpZ2h0OiA1NHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDU0cHg7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdG1hcmdpbjogMSU7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHQuYm9yZGVyLXJhZGl1cyg0cHgpO1xuXHRcdFx0Jjpob3Zlcixcblx0XHRcdCYuZm9jdXNlZCB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IEBncmF5TGlnaHRlcjtcblx0XHRcdH1cblx0XHRcdCYuZGlzYWJsZWQsXG5cdFx0XHQmLmRpc2FibGVkOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZDogbm9uZTtcblx0XHRcdFx0Y29sb3I6IEBncmF5TGlnaHQ7XG5cdFx0XHRcdGN1cnNvcjogZGVmYXVsdDtcblx0XHRcdH1cblx0XHRcdCYuYWN0aXZlLFxuXHRcdFx0Ji5hY3RpdmU6aG92ZXIsXG5cdFx0XHQmLmFjdGl2ZS5kaXNhYmxlZCxcblx0XHRcdCYuYWN0aXZlLmRpc2FibGVkOmhvdmVyIHtcblx0XHRcdFx0LmJ1dHRvbkJhY2tncm91bmQoQGJ0blByaW1hcnlCYWNrZ3JvdW5kLCBzcGluKEBidG5QcmltYXJ5QmFja2dyb3VuZCwgMjApKTtcblx0XHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHRcdHRleHQtc2hhZG93OiAwIC0xcHggMCByZ2JhKDAsMCwwLC4yNSk7XG5cdFx0XHR9XG5cdFx0XHQmLm9sZCxcblx0XHRcdCYubmV3IHtcblx0XHRcdFx0Y29sb3I6IEBncmF5TGlnaHQ7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LmRhdGVwaWNrZXItc3dpdGNoIHtcblx0XHR3aWR0aDogMTQ1cHg7XG5cdH1cblxuXHQuZGF0ZXBpY2tlci1zd2l0Y2gsXG5cdC5wcmV2LFxuXHQubmV4dCxcblx0dGZvb3QgdHIgdGgge1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6IEBncmF5TGlnaHRlcjtcblx0XHR9XG5cdH1cblxuXHQucHJldiwgLm5leHQge1xuXHRcdCYuZGlzYWJsZWQge1xuXHRcdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdH1cblx0fVxuXG5cdC8vIEJhc2ljIHN0eWxpbmcgZm9yIGNhbGVuZGFyLXdlZWsgY2VsbHNcblx0LmN3IHtcblx0XHRmb250LXNpemU6IDEwcHg7XG5cdFx0d2lkdGg6IDEycHg7XG5cdFx0cGFkZGluZzogMCAycHggMCA1cHg7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0fVxufVxuLmlucHV0LWFwcGVuZCxcbi5pbnB1dC1wcmVwZW5kIHtcblx0Ji5kYXRlIC5hZGQtb24ge1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdGkge1xuXHRcdFx0bWFyZ2luLXRvcDogM3B4O1xuXHRcdH1cblx0fVxufVxuLmlucHV0LWRhdGVyYW5nZSB7XG5cdGlucHV0IHtcblx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0fVxuXHRpbnB1dDpmaXJzdC1jaGlsZCB7XG5cdFx0LmJvcmRlci1yYWRpdXMoM3B4IDAgMCAzcHgpO1xuXHR9XG5cdGlucHV0Omxhc3QtY2hpbGQge1xuXHRcdC5ib3JkZXItcmFkaXVzKDAgM3B4IDNweCAwKTtcblx0fVxuXHQuYWRkLW9uIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0bWluLXdpZHRoOiAxNnB4O1xuXHRcdGhlaWdodDogQGJhc2VMaW5lSGVpZ2h0O1xuXHRcdHBhZGRpbmc6IDRweCA1cHg7XG5cdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHRsaW5lLWhlaWdodDogQGJhc2VMaW5lSGVpZ2h0O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR0ZXh0LXNoYWRvdzogMCAxcHggMCBAd2hpdGU7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBAZ3JheUxpZ2h0ZXI7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgI2NjYztcblx0XHRtYXJnaW4tbGVmdDogLTVweDtcblx0XHRtYXJnaW4tcmlnaHQ6IC01cHg7XG5cdH1cbn1cbiIsIi8vIERhdGVwaWNrZXIgLmxlc3MgYnVpbGRmaWxlLiAgSW5jbHVkZXMgc2VsZWN0IG1peGlucy92YXJpYWJsZXMgZnJvbSBib290c3RyYXBcbi8vIGFuZCBpbXBvcnRzIHRoZSBpbmNsdWRlZCBkYXRlcGlja2VyLmxlc3MgdG8gb3V0cHV0IGEgbWluaW1hbCBkYXRlcGlja2VyLmNzc1xuLy9cbi8vIFVzYWdlOlxuLy8gICAgIGxlc3NjIGJ1aWxkLmxlc3MgZGF0ZXBpY2tlci5jc3Ncbi8vXG4vLyBWYXJpYWJsZXMgYW5kIG1peGlucyBjb3BpZWQgZnJvbSBib290c3RyYXAgMi4wLjJcblxuLy8gVmFyaWFibGVzXG5AZ3JheUxpZ2h0OiAgICAgICAgICAgICAjOTk5O1xuQGdyYXlMaWdodGVyOiAgICAgICAgICAgI2VlZTtcbkB3aGl0ZTogICAgICAgICAgICAgICAgICNmZmY7XG5AbGlua0NvbG9yOiAgICAgICAgICAgICAjMDhjO1xuQGJ0blByaW1hcnlCYWNrZ3JvdW5kOiAgQGxpbmtDb2xvcjtcbkBvcmFuZ2U6ICAgICAgICAgICAgICAgICNmODk0MDY7XG5AaW5mb0JhY2tncm91bmQ6ICAgICAgICAjZDllZGY3O1xuQGJhc2VMaW5lSGVpZ2h0OiAgICAgICAgMThweDtcbkBiYXNlQm9yZGVyUmFkaXVzOiAgICAgIDRweDtcblxuLy8gTWl4aW5zXG5cbi8vIEJvcmRlciBSYWRpdXNcbi5ib3JkZXItcmFkaXVzKEByYWRpdXM6IDVweCkge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IEByYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogQHJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiBAcmFkaXVzO1xufVxuXG4vLyBCdXR0b24gYmFja2dyb3VuZHNcbi5idXR0b25CYWNrZ3JvdW5kKEBzdGFydENvbG9yLCBAZW5kQ29sb3IpIHtcbiAgLmdyYWRpZW50QmFyKEBzdGFydENvbG9yLCBAZW5kQ29sb3IpO1xuICAucmVzZXQtZmlsdGVyKCk7XG4gICY6aG92ZXIsICY6YWN0aXZlLCAmLmFjdGl2ZSwgJi5kaXNhYmxlZCwgJltkaXNhYmxlZF0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBlbmRDb2xvcjtcbiAgfVxuICAmOmFjdGl2ZSxcbiAgJi5hY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbihAZW5kQ29sb3IsIDEwJSkgZShcIlxcOVwiKTtcbiAgfVxufVxuXG4vLyBSZXNldCBmaWx0ZXJzIGZvciBJRVxuLnJlc2V0LWZpbHRlcigpIHtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoZW5hYmxlZCA9IGZhbHNlKTtcbn1cblxuLy8gR3JhZGllbnQgQmFyIENvbG9ycyBmb3IgYnV0dG9ucyBhbmQgYWxlcnRzXG4uZ3JhZGllbnRCYXIoQHByaW1hcnlDb2xvciwgQHNlY29uZGFyeUNvbG9yKSB7XG4gICNncmFkaWVudCA+IC52ZXJ0aWNhbChAcHJpbWFyeUNvbG9yLCBAc2Vjb25kYXJ5Q29sb3IpO1xuICBib3JkZXItY29sb3I6IEBzZWNvbmRhcnlDb2xvciBAc2Vjb25kYXJ5Q29sb3IgZGFya2VuKEBzZWNvbmRhcnlDb2xvciwgMTUlKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsMCwwLC4xKSByZ2JhKDAsMCwwLC4xKSBmYWRlaW4ocmdiYSgwLDAsMCwuMSksIDE1JSk7XG59XG5cbi8vIEdyYWRpZW50c1xuI2dyYWRpZW50IHtcbiAgLnZlcnRpY2FsKEBzdGFydENvbG9yOiAjNTU1LCBAZW5kQ29sb3I6ICMzMzMpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBtaXgoQHN0YXJ0Q29sb3IsIEBlbmRDb2xvciwgNjAlKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBGRiAzLjYrXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIEBzdGFydENvbG9yLCBAZW5kQ29sb3IpOyAvLyBJRTEwXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIDAgMCwgMCAxMDAlLCBmcm9tKEBzdGFydENvbG9yKSwgdG8oQGVuZENvbG9yKSk7IC8vIFNhZmFyaSA0KywgQ2hyb21lIDIrXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZSAxMCtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gT3BlcmEgMTEuMTBcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCBAc3RhcnRDb2xvciwgQGVuZENvbG9yKTsgLy8gVGhlIHN0YW5kYXJkXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xuICAgIGZpbHRlcjogZSglKFwicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyVkJywgZW5kQ29sb3JzdHI9JyVkJywgR3JhZGllbnRUeXBlPTApXCIsQHN0YXJ0Q29sb3IsQGVuZENvbG9yKSk7IC8vIElFOSBhbmQgZG93blxuICB9XG59XG5cbkBpbXBvcnQgXCIuLi9sZXNzL2RhdGVwaWNrZXIubGVzc1wiO1xuIiwiLyohXG4gKiBEYXRlcGlja2VyIGZvciBCb290c3RyYXAgdjEuMTAuMCAoaHR0cHM6Ly9naXRodWIuY29tL3V4c29sdXRpb25zL2Jvb3RzdHJhcC1kYXRlcGlja2VyKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIChodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wKVxuICovXG5cbi5kYXRlcGlja2VyIHtcbiAgcGFkZGluZzogNHB4O1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDRweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgZGlyZWN0aW9uOiBsdHI7XG59XG4uZGF0ZXBpY2tlci1pbmxpbmUge1xuICB3aWR0aDogMjIwcHg7XG59XG4uZGF0ZXBpY2tlci1ydGwge1xuICBkaXJlY3Rpb246IHJ0bDtcbn1cbi5kYXRlcGlja2VyLXJ0bC5kcm9wZG93bi1tZW51IHtcbiAgbGVmdDogYXV0bztcbn1cbi5kYXRlcGlja2VyLXJ0bCB0YWJsZSB0ciB0ZCBzcGFuIHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLmRhdGVwaWNrZXItZHJvcGRvd24ge1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG59XG4uZGF0ZXBpY2tlci1kcm9wZG93bjpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXItbGVmdDogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogN3B4IHNvbGlkICM5OTk7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLmRhdGVwaWNrZXItZHJvcGRvd246YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkICNmZmY7XG4gIGJvcmRlci10b3A6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5kYXRlcGlja2VyLWRyb3Bkb3duLmRhdGVwaWNrZXItb3JpZW50LWxlZnQ6YmVmb3JlIHtcbiAgbGVmdDogNnB4O1xufVxuLmRhdGVwaWNrZXItZHJvcGRvd24uZGF0ZXBpY2tlci1vcmllbnQtbGVmdDphZnRlciB7XG4gIGxlZnQ6IDdweDtcbn1cbi5kYXRlcGlja2VyLWRyb3Bkb3duLmRhdGVwaWNrZXItb3JpZW50LXJpZ2h0OmJlZm9yZSB7XG4gIHJpZ2h0OiA2cHg7XG59XG4uZGF0ZXBpY2tlci1kcm9wZG93bi5kYXRlcGlja2VyLW9yaWVudC1yaWdodDphZnRlciB7XG4gIHJpZ2h0OiA3cHg7XG59XG4uZGF0ZXBpY2tlci1kcm9wZG93bi5kYXRlcGlja2VyLW9yaWVudC1ib3R0b206YmVmb3JlIHtcbiAgdG9wOiAtN3B4O1xufVxuLmRhdGVwaWNrZXItZHJvcGRvd24uZGF0ZXBpY2tlci1vcmllbnQtYm90dG9tOmFmdGVyIHtcbiAgdG9wOiAtNnB4O1xufVxuLmRhdGVwaWNrZXItZHJvcGRvd24uZGF0ZXBpY2tlci1vcmllbnQtdG9wOmJlZm9yZSB7XG4gIGJvdHRvbTogLTdweDtcbiAgYm9yZGVyLWJvdHRvbTogMDtcbiAgYm9yZGVyLXRvcDogN3B4IHNvbGlkICM5OTk7XG59XG4uZGF0ZXBpY2tlci1kcm9wZG93bi5kYXRlcGlja2VyLW9yaWVudC10b3A6YWZ0ZXIge1xuICBib3R0b206IC02cHg7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGJvcmRlci10b3A6IDZweCBzb2xpZCAjZmZmO1xufVxuLmRhdGVwaWNrZXIgdGFibGUge1xuICBtYXJnaW46IDA7XG4gIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLmRhdGVwaWNrZXIgdGQsXG4uZGF0ZXBpY2tlciB0aCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA0cHg7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi50YWJsZS1zdHJpcGVkIC5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLFxuLnRhYmxlLXN0cmlwZWQgLmRhdGVwaWNrZXIgdGFibGUgdHIgdGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmRheTpob3Zlcixcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmRheS5mb2N1c2VkIHtcbiAgYmFja2dyb3VuZDogI2VlZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQub2xkLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQubmV3IHtcbiAgY29sb3I6ICM5OTk7XG59XG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5kaXNhYmxlZCxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmRpc2FibGVkOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgY29sb3I6ICM5OTk7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmhpZ2hsaWdodGVkIHtcbiAgYmFja2dyb3VuZDogI2Q5ZWRmNztcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5LFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXk6aG92ZXIsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZCxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5LmRpc2FibGVkOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkZTE5YTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZmRkNDlhLCAjZmRmNTlhKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNmZGQ0OWEsICNmZGY1OWEpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAwIDEwMCUsIGZyb20oI2ZkZDQ5YSksIHRvKCNmZGY1OWEpKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZmRkNDlhLCAjZmRmNTlhKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2ZkZDQ5YSwgI2ZkZjU5YSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNmZGQ0OWEsICNmZGY1OWEpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNmZGQ0OWEnLCBlbmRDb2xvcnN0cj0nI2ZkZjU5YScsIEdyYWRpZW50VHlwZT0wKTtcbiAgYm9yZGVyLWNvbG9yOiAjZmRmNTlhICNmZGY1OWEgI2ZiZWQ1MDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgcmdiYSgwLCAwLCAwLCAwLjEpIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KGVuYWJsZWQ9ZmFsc2UpO1xuICBjb2xvcjogIzAwMDtcbn1cbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5OmhvdmVyLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXk6aG92ZXI6aG92ZXIsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZDpob3Zlcixcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5LmRpc2FibGVkOmhvdmVyOmhvdmVyLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXk6YWN0aXZlLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXk6aG92ZXI6YWN0aXZlLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuZGlzYWJsZWQ6YWN0aXZlLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuZGlzYWJsZWQ6aG92ZXI6YWN0aXZlLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuYWN0aXZlLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXk6aG92ZXIuYWN0aXZlLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuZGlzYWJsZWQuYWN0aXZlLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuZGlzYWJsZWQ6aG92ZXIuYWN0aXZlLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuZGlzYWJsZWQsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheTpob3Zlci5kaXNhYmxlZCxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnRvZGF5LmRpc2FibGVkLmRpc2FibGVkLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuZGlzYWJsZWQ6aG92ZXIuZGlzYWJsZWQsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheVtkaXNhYmxlZF0sXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheTpob3ZlcltkaXNhYmxlZF0sXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZFtkaXNhYmxlZF0sXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheS5kaXNhYmxlZDpob3ZlcltkaXNhYmxlZF0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRmNTlhO1xufVxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXk6YWN0aXZlLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXk6aG92ZXI6YWN0aXZlLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuZGlzYWJsZWQ6YWN0aXZlLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuZGlzYWJsZWQ6aG92ZXI6YWN0aXZlLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuYWN0aXZlLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXk6aG92ZXIuYWN0aXZlLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuZGlzYWJsZWQuYWN0aXZlLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuZGlzYWJsZWQ6aG92ZXIuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZiZjA2OSBcXDk7XG59XG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC50b2RheTpob3Zlcjpob3ZlciB7XG4gIGNvbG9yOiAjMDAwO1xufVxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQudG9kYXkuYWN0aXZlOmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG59XG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlOmhvdmVyLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UuZGlzYWJsZWQsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS5kaXNhYmxlZDpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNlZWU7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXksXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheTpob3Zlcixcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LmRpc2FibGVkLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXkuZGlzYWJsZWQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNkMTdhO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNmM2MxN2EsICNmM2U5N2EpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2YzYzE3YSwgI2YzZTk3YSk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCAwIDAsIDAgMTAwJSwgZnJvbSgjZjNjMTdhKSwgdG8oI2YzZTk3YSkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNmM2MxN2EsICNmM2U5N2EpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZjNjMTdhLCAjZjNlOTdhKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2YzYzE3YSwgI2YzZTk3YSk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2YzYzE3YScsIGVuZENvbG9yc3RyPScjZjNlOTdhJywgR3JhZGllbnRUeXBlPTApO1xuICBib3JkZXItY29sb3I6ICNmM2U5N2EgI2YzZTk3YSAjZWRkZTM0O1xuICBib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKSByZ2JhKDAsIDAsIDAsIDAuMSkgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoZW5hYmxlZD1mYWxzZSk7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXk6aG92ZXIsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheTpob3Zlcjpob3Zlcixcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LmRpc2FibGVkOmhvdmVyLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXkuZGlzYWJsZWQ6aG92ZXI6aG92ZXIsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheTphY3RpdmUsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheTpob3ZlcjphY3RpdmUsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZDphY3RpdmUsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZDpob3ZlcjphY3RpdmUsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5hY3RpdmUsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheTpob3Zlci5hY3RpdmUsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZC5hY3RpdmUsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZDpob3Zlci5hY3RpdmUsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZCxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5OmhvdmVyLmRpc2FibGVkLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQucmFuZ2UudG9kYXkuZGlzYWJsZWQuZGlzYWJsZWQsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZDpob3Zlci5kaXNhYmxlZCxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5W2Rpc2FibGVkXSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5OmhvdmVyW2Rpc2FibGVkXSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LmRpc2FibGVkW2Rpc2FibGVkXSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnJhbmdlLnRvZGF5LmRpc2FibGVkOmhvdmVyW2Rpc2FibGVkXSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmM2U5N2E7XG59XG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheTphY3RpdmUsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheTpob3ZlcjphY3RpdmUsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZDphY3RpdmUsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZDpob3ZlcjphY3RpdmUsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5hY3RpdmUsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheTpob3Zlci5hY3RpdmUsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZC5hY3RpdmUsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5yYW5nZS50b2RheS5kaXNhYmxlZDpob3Zlci5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlMjRiIFxcOTtcbn1cbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQ6aG92ZXIsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZC5kaXNhYmxlZCxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzllOWU5ZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjYjNiM2IzLCAjODA4MDgwKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNiM2IzYjMsICM4MDgwODApO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAwIDEwMCUsIGZyb20oI2IzYjNiMyksIHRvKCM4MDgwODApKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjYjNiM2IzLCAjODA4MDgwKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2IzYjNiMywgIzgwODA4MCk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNiM2IzYjMsICM4MDgwODApO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNiM2IzYjMnLCBlbmRDb2xvcnN0cj0nIzgwODA4MCcsIEdyYWRpZW50VHlwZT0wKTtcbiAgYm9yZGVyLWNvbG9yOiAjODA4MDgwICM4MDgwODAgIzU5NTk1OTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgcmdiYSgwLCAwLCAwLCAwLjEpIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KGVuYWJsZWQ9ZmFsc2UpO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAwIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG59XG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZDpob3Zlcixcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkOmhvdmVyOmhvdmVyLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQuZGlzYWJsZWQ6aG92ZXIsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZC5kaXNhYmxlZDpob3Zlcjpob3Zlcixcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkOmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkOmhvdmVyOmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkOmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkOmhvdmVyOmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkOmhvdmVyLmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkLmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkOmhvdmVyLmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQ6aG92ZXIuZGlzYWJsZWQsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5zZWxlY3RlZC5kaXNhYmxlZC5kaXNhYmxlZCxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkOmhvdmVyLmRpc2FibGVkLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWRbZGlzYWJsZWRdLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQ6aG92ZXJbZGlzYWJsZWRdLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQuZGlzYWJsZWRbZGlzYWJsZWRdLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuc2VsZWN0ZWQuZGlzYWJsZWQ6aG92ZXJbZGlzYWJsZWRdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzgwODA4MDtcbn1cbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkOmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkOmhvdmVyOmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkOmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkOmhvdmVyOmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkOmhvdmVyLmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkLmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLnNlbGVjdGVkLmRpc2FibGVkOmhvdmVyLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2NjY2NjYgXFw5O1xufVxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlOmhvdmVyLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLmRpc2FibGVkLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLmRpc2FibGVkOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNmRjYztcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMDhjLCAjMDA0NGNjKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMwOGMsICMwMDQ0Y2MpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAwIDEwMCUsIGZyb20oIzA4YyksIHRvKCMwMDQ0Y2MpKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMDhjLCAjMDA0NGNjKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzA4YywgIzAwNDRjYyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMwOGMsICMwMDQ0Y2MpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyMwOGMnLCBlbmRDb2xvcnN0cj0nIzAwNDRjYycsIEdyYWRpZW50VHlwZT0wKTtcbiAgYm9yZGVyLWNvbG9yOiAjMDA0NGNjICMwMDQ0Y2MgIzAwMmE4MDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgcmdiYSgwLCAwLCAwLCAwLjEpIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KGVuYWJsZWQ9ZmFsc2UpO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAwIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG59XG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmU6aG92ZXIsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmU6aG92ZXI6aG92ZXIsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUuZGlzYWJsZWQ6aG92ZXIsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUuZGlzYWJsZWQ6aG92ZXI6aG92ZXIsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmU6YWN0aXZlLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlOmhvdmVyOmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZDphY3RpdmUsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUuZGlzYWJsZWQ6aG92ZXI6YWN0aXZlLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZTpob3Zlci5hY3RpdmUsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUuZGlzYWJsZWQuYWN0aXZlLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLmRpc2FibGVkOmhvdmVyLmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZCxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZTpob3Zlci5kaXNhYmxlZCxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZC5kaXNhYmxlZCxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZDpob3Zlci5kaXNhYmxlZCxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZVtkaXNhYmxlZF0sXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmU6aG92ZXJbZGlzYWJsZWRdLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLmRpc2FibGVkW2Rpc2FibGVkXSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZDpob3ZlcltkaXNhYmxlZF0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA0NGNjO1xufVxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlOmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZTpob3ZlcjphY3RpdmUsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmUuZGlzYWJsZWQ6YWN0aXZlLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLmRpc2FibGVkOmhvdmVyOmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5hY3RpdmUsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZC5hY3RpdmU6aG92ZXIuYWN0aXZlLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQuYWN0aXZlLmRpc2FibGVkLmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkLmFjdGl2ZS5kaXNhYmxlZDpob3Zlci5hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAzMzk5IFxcOTtcbn1cbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDIzJTtcbiAgaGVpZ2h0OiA1NHB4O1xuICBsaW5lLWhlaWdodDogNTRweDtcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbjogMSU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA0cHg7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuOmhvdmVyLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5mb2N1c2VkIHtcbiAgYmFja2dyb3VuZDogI2VlZTtcbn1cbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uZGlzYWJsZWQsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmRpc2FibGVkOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgY29sb3I6ICM5OTk7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmU6aG92ZXIsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZS5kaXNhYmxlZCxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNmRjYztcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMDhjLCAjMDA0NGNjKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMwOGMsICMwMDQ0Y2MpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAwIDEwMCUsIGZyb20oIzA4YyksIHRvKCMwMDQ0Y2MpKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMDhjLCAjMDA0NGNjKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzA4YywgIzAwNDRjYyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMwOGMsICMwMDQ0Y2MpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyMwOGMnLCBlbmRDb2xvcnN0cj0nIzAwNDRjYycsIEdyYWRpZW50VHlwZT0wKTtcbiAgYm9yZGVyLWNvbG9yOiAjMDA0NGNjICMwMDQ0Y2MgIzAwMmE4MDtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMSkgcmdiYSgwLCAwLCAwLCAwLjEpIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG4gIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KGVuYWJsZWQ9ZmFsc2UpO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAwIHJnYmEoMCwgMCwgMCwgMC4yNSk7XG59XG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZTpob3Zlcixcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlOmhvdmVyOmhvdmVyLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWQ6aG92ZXIsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZS5kaXNhYmxlZDpob3Zlcjpob3Zlcixcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlOmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlOmhvdmVyOmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkOmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkOmhvdmVyOmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlOmhvdmVyLmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkLmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkOmhvdmVyLmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmU6aG92ZXIuZGlzYWJsZWQsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLmFjdGl2ZS5kaXNhYmxlZC5kaXNhYmxlZCxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkOmhvdmVyLmRpc2FibGVkLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmVbZGlzYWJsZWRdLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmU6aG92ZXJbZGlzYWJsZWRdLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWRbZGlzYWJsZWRdLFxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5hY3RpdmUuZGlzYWJsZWQ6aG92ZXJbZGlzYWJsZWRdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwNDRjYztcbn1cbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlOmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlOmhvdmVyOmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkOmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkOmhvdmVyOmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlOmhvdmVyLmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkLmFjdGl2ZSxcbi5kYXRlcGlja2VyIHRhYmxlIHRyIHRkIHNwYW4uYWN0aXZlLmRpc2FibGVkOmhvdmVyLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDMzOTkgXFw5O1xufVxuLmRhdGVwaWNrZXIgdGFibGUgdHIgdGQgc3Bhbi5vbGQsXG4uZGF0ZXBpY2tlciB0YWJsZSB0ciB0ZCBzcGFuLm5ldyB7XG4gIGNvbG9yOiAjOTk5O1xufVxuLmRhdGVwaWNrZXIgLmRhdGVwaWNrZXItc3dpdGNoIHtcbiAgd2lkdGg6IDE0NXB4O1xufVxuLmRhdGVwaWNrZXIgLmRhdGVwaWNrZXItc3dpdGNoLFxuLmRhdGVwaWNrZXIgLnByZXYsXG4uZGF0ZXBpY2tlciAubmV4dCxcbi5kYXRlcGlja2VyIHRmb290IHRyIHRoIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmRhdGVwaWNrZXIgLmRhdGVwaWNrZXItc3dpdGNoOmhvdmVyLFxuLmRhdGVwaWNrZXIgLnByZXY6aG92ZXIsXG4uZGF0ZXBpY2tlciAubmV4dDpob3Zlcixcbi5kYXRlcGlja2VyIHRmb290IHRyIHRoOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI2VlZTtcbn1cbi5kYXRlcGlja2VyIC5wcmV2LmRpc2FibGVkLFxuLmRhdGVwaWNrZXIgLm5leHQuZGlzYWJsZWQge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4uZGF0ZXBpY2tlciAuY3cge1xuICBmb250LXNpemU6IDEwcHg7XG4gIHdpZHRoOiAxMnB4O1xuICBwYWRkaW5nOiAwIDJweCAwIDVweDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5pbnB1dC1hcHBlbmQuZGF0ZSAuYWRkLW9uLFxuLmlucHV0LXByZXBlbmQuZGF0ZSAuYWRkLW9uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmlucHV0LWFwcGVuZC5kYXRlIC5hZGQtb24gaSxcbi5pbnB1dC1wcmVwZW5kLmRhdGUgLmFkZC1vbiBpIHtcbiAgbWFyZ2luLXRvcDogM3B4O1xufVxuLmlucHV0LWRhdGVyYW5nZSBpbnB1dCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5pbnB1dC1kYXRlcmFuZ2UgaW5wdXQ6Zmlyc3QtY2hpbGQge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDNweCAwIDAgM3B4O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDNweCAwIDAgM3B4O1xuICBib3JkZXItcmFkaXVzOiAzcHggMCAwIDNweDtcbn1cbi5pbnB1dC1kYXRlcmFuZ2UgaW5wdXQ6bGFzdC1jaGlsZCB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMCAzcHggM3B4IDA7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogMCAzcHggM3B4IDA7XG4gIGJvcmRlci1yYWRpdXM6IDAgM3B4IDNweCAwO1xufVxuLmlucHV0LWRhdGVyYW5nZSAuYWRkLW9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogYXV0bztcbiAgbWluLXdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDRweCA1cHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwICNmZmY7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIG1hcmdpbi1sZWZ0OiAtNXB4O1xuICBtYXJnaW4tcmlnaHQ6IC01cHg7XG59XG4uZGF0ZXBpY2tlci5kcm9wZG93bi1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGZsb2F0OiBsZWZ0O1xuICBkaXNwbGF5OiBub25lO1xuICBtaW4td2lkdGg6IDE2MHB4O1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNXB4O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAtbW96LWJveC1zaGFkb3c6IDAgNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBib3gtc2hhZG93OiAwIDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAtbW96LWJhY2tncm91bmQtY2xpcDogcGFkZGluZztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgKmJvcmRlci1yaWdodC13aWR0aDogMnB4O1xuICAqYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xuICBjb2xvcjogIzMzMzMzMztcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbn1cbi5kYXRlcGlja2VyLmRyb3Bkb3duLW1lbnUgdGgsXG4uZGF0ZXBpY2tlci5kYXRlcGlja2VyLWlubGluZSB0aCxcbi5kYXRlcGlja2VyLmRyb3Bkb3duLW1lbnUgdGQsXG4uZGF0ZXBpY2tlci5kYXRlcGlja2VyLWlubGluZSB0ZCB7XG4gIHBhZGRpbmc6IDRweCA1cHg7XG59XG4vKiMgc291cmNlTWFwcGluZ1VSTD1ib290c3RyYXAtZGF0ZXBpY2tlci5zdGFuZGFsb25lLmNzcy5tYXAgKi8iLCIvLyBEYXRlcGlja2VyIHN0YW5kYWxvbmUgLmxlc3MgYnVpbGRmaWxlLiAgSW5jbHVkZXMgYWxsIG5lY2Vzc2FyeSBtaXhpbnMvdmFyaWFibGVzL3J1bGVzIGZyb20gYm9vdHN0cmFwXG4vLyBhbmQgaW1wb3J0cyB0aGUgaW5jbHVkZWQgZGF0ZXBpY2tlci5sZXNzIHRvIG91dHB1dCBhIG1pbmltYWwgc3RhbmRhbG9uZSBkYXRlcGlja2VyLmNzc1xuLy9cbi8vIFVzYWdlOlxuLy8gICAgIGxlc3NjIGJ1aWxkX3N0YW5kYWxvbmUubGVzcyBkYXRlcGlja2VyLmNzc1xuLy9cbi8vIFZhcmlhYmxlcywgbWl4aW5zLCBhbmQgcnVsZXMgY29waWVkIGZyb20gYm9vdHN0cmFwIDIuMC4yXG5cbkBpbXBvcnQgXCJidWlsZC5sZXNzXCI7XG5cbi8vIERyb3Bkb3duIGNzc1xuXG5AemluZGV4RHJvcGRvd246ICAgICAgICAgICAgICAgIDEwMDA7XG5AZ3JheURhcms6ICAgICAgICAgICAgICAgICAgICAgICMzMzM7XG5AYmFzZUxpbmVIZWlnaHQ6ICAgICAgICAgICAgICAgIDIwcHg7XG5AdGFibGVCYWNrZ3JvdW5kOiAgICAgICAgICAgICAgIHRyYW5zcGFyZW50OyAvLyBvdmVyYWxsIGJhY2tncm91bmQtY29sb3JcbkBkcm9wZG93bkJhY2tncm91bmQ6ICAgICAgICAgICAgQHdoaXRlO1xuQGRyb3Bkb3duQm9yZGVyOiAgICAgICAgICAgICAgICByZ2JhKDAsMCwwLC4yKTtcbkBkcm9wZG93bkxpbmtDb2xvcjogICAgICAgICAgICAgQGdyYXlEYXJrO1xuQGRyb3Bkb3duTGlua0NvbG9ySG92ZXI6ICAgICAgICBAd2hpdGU7XG5AZHJvcGRvd25MaW5rQmFja2dyb3VuZEhvdmVyOiAgIEBsaW5rQ29sb3I7XG5cbi8vIERyb3Agc2hhZG93c1xuLmJveC1zaGFkb3coQHNoYWRvdykge1xuICAtd2Via2l0LWJveC1zaGFkb3c6IEBzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogQHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiBAc2hhZG93O1xufVxuXG4vLyBUaGUgZHJvcGRvd24gbWVudSAodWwpXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4uZGF0ZXBpY2tlcntcbiAgJi5kcm9wZG93bi1tZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogQHppbmRleERyb3Bkb3duO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGRpc3BsYXk6IG5vbmU7IC8vIG5vbmUgYnkgZGVmYXVsdCwgYnV0IGJsb2NrIG9uIFwib3BlblwiIG9mIHRoZSBtZW51XG4gICAgbWluLXdpZHRoOiAxNjBweDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IEBkcm9wZG93bkJhY2tncm91bmQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsMCwwLC4yKTtcbiAgICAuYm9yZGVyLXJhZGl1cyg1cHgpO1xuICAgIC5ib3gtc2hhZG93KDAgNXB4IDEwcHggcmdiYSgwLDAsMCwuMikpO1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICAgICAtbW96LWJhY2tncm91bmQtY2xpcDogcGFkZGluZztcbiAgICAgICAgICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgKmJvcmRlci1yaWdodC13aWR0aDogMnB4O1xuICAgICpib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG5cbiAgICAvLyBOb3JtYWxseSBpbmhlcml0ZWQgZnJvbSBib290c3RyYXAncyBgYm9keWBcbiAgICBjb2xvcjogIzMzMzMzMztcbiAgICBmb250LXNpemU6MTNweDtcbiAgICBsaW5lLWhlaWdodDogQGJhc2VMaW5lSGVpZ2h0O1xuICB9XG5cbiAgJi5kcm9wZG93bi1tZW51LCAmLmRhdGVwaWNrZXItaW5saW5lIHtcbiAgICB0aCwgdGQge1xuICAgICAgcGFkZGluZzogNHB4IDVweDtcbiAgICB9XG4gIH1cbn1cbiIsIi8qISBGbGlja2l0eSB2Mi4zLjBcbmh0dHBzOi8vZmxpY2tpdHkubWV0YWZpenp5LmNvXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5mbGlja2l0eS1lbmFibGVkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmxpY2tpdHktZW5hYmxlZDpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IH1cblxuLmZsaWNraXR5LXZpZXdwb3J0IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5mbGlja2l0eS1zbGlkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi8qIGRyYWdnYWJsZSAqL1xuXG4uZmxpY2tpdHktZW5hYmxlZC5pcy1kcmFnZ2FibGUge1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4uZmxpY2tpdHktZW5hYmxlZC5pcy1kcmFnZ2FibGUgLmZsaWNraXR5LXZpZXdwb3J0IHtcbiAgY3Vyc29yOiBtb3ZlO1xuICBjdXJzb3I6IC13ZWJraXQtZ3JhYjtcbiAgY3Vyc29yOiBncmFiO1xufVxuXG4uZmxpY2tpdHktZW5hYmxlZC5pcy1kcmFnZ2FibGUgLmZsaWNraXR5LXZpZXdwb3J0LmlzLXBvaW50ZXItZG93biB7XG4gIGN1cnNvcjogLXdlYmtpdC1ncmFiYmluZztcbiAgY3Vyc29yOiBncmFiYmluZztcbn1cblxuLyogLS0tLSBmbGlja2l0eS1idXR0b24gLS0tLSAqL1xuXG4uZmxpY2tpdHktYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiBoc2xhKDAsIDAlLCAxMDAlLCAwLjc1KTtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogIzMzMztcbn1cblxuLmZsaWNraXR5LWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5mbGlja2l0eS1idXR0b246Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiAwIDAgMCA1cHggIzE5Rjtcbn1cblxuLmZsaWNraXR5LWJ1dHRvbjphY3RpdmUge1xuICBvcGFjaXR5OiAwLjY7XG59XG5cbi5mbGlja2l0eS1idXR0b246ZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjM7XG4gIGN1cnNvcjogYXV0bztcbiAgLyogcHJldmVudCBkaXNhYmxlZCBidXR0b24gZnJvbSBjYXB0dXJpbmcgcG9pbnRlciB1cCBldmVudC4gIzcxNiAqL1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmZsaWNraXR5LWJ1dHRvbi1pY29uIHtcbiAgZmlsbDogY3VycmVudENvbG9yO1xufVxuXG4vKiAtLS0tIHByZXZpb3VzL25leHQgYnV0dG9ucyAtLS0tICovXG5cbi5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uIHtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgLyogdmVydGljYWxseSBjZW50ZXIgKi9cbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4uZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbi5wcmV2aW91cyB7IGxlZnQ6IDEwcHg7IH1cbi5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uLm5leHQgeyByaWdodDogMTBweDsgfVxuLyogcmlnaHQgdG8gbGVmdCAqL1xuLmZsaWNraXR5LXJ0bCAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbi5wcmV2aW91cyB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAxMHB4O1xufVxuLmZsaWNraXR5LXJ0bCAuZmxpY2tpdHktcHJldi1uZXh0LWJ1dHRvbi5uZXh0IHtcbiAgcmlnaHQ6IGF1dG87XG4gIGxlZnQ6IDEwcHg7XG59XG5cbi5mbGlja2l0eS1wcmV2LW5leHQtYnV0dG9uIC5mbGlja2l0eS1idXR0b24taWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMjAlO1xuICB0b3A6IDIwJTtcbiAgd2lkdGg6IDYwJTtcbiAgaGVpZ2h0OiA2MCU7XG59XG5cbi8qIC0tLS0gcGFnZSBkb3RzIC0tLS0gKi9cblxuLmZsaWNraXR5LXBhZ2UtZG90cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvdHRvbTogLTI1cHg7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLmZsaWNraXR5LXJ0bCAuZmxpY2tpdHktcGFnZS1kb3RzIHsgZGlyZWN0aW9uOiBydGw7IH1cblxuLmZsaWNraXR5LXBhZ2UtZG90cyAuZG90IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBtYXJnaW46IDAgOHB4O1xuICBiYWNrZ3JvdW5kOiAjMzMzO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIG9wYWNpdHk6IDAuMjU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmZsaWNraXR5LXBhZ2UtZG90cyAuZG90LmlzLXNlbGVjdGVkIHtcbiAgb3BhY2l0eTogMTtcbn1cbiIsIi8qXG4gKiBUaGUgTUlUIExpY2Vuc2VcbiAqIENvcHlyaWdodCAoYykgMjAxMiBNYXRpYXMgTWVubyA8bUB0aWFzLm1lPlxuICovXG5ALXdlYmtpdC1rZXlmcmFtZXMgcGFzc2luZy10aHJvdWdoIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpOyB9XG4gIDMwJSwgNzAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MHB4KTsgfSB9XG5ALW1vei1rZXlmcmFtZXMgcGFzc2luZy10aHJvdWdoIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpOyB9XG4gIDMwJSwgNzAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MHB4KTsgfSB9XG5Aa2V5ZnJhbWVzIHBhc3NpbmctdGhyb3VnaCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTsgfVxuICAzMCUsIDcwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MHB4KTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00MHB4KTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTQwcHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNDBweCk7IH0gfVxuQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlLWluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpOyB9XG4gIDMwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpOyB9IH1cbkAtbW96LWtleWZyYW1lcyBzbGlkZS1pbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTsgfVxuICAzMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcbiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTsgfSB9XG5Aa2V5ZnJhbWVzIHNsaWRlLWluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSg0MHB4KTtcbiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNDBweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDQwcHgpOyB9XG4gIDMwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7XG4gICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpOyB9IH1cbkAtd2Via2l0LWtleWZyYW1lcyBwdWxzZSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLW1vei10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICAxMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIC1tb3otdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgLW8tdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTsgfVxuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLW8tdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9IH1cbkAtbW96LWtleWZyYW1lcyBwdWxzZSB7XG4gIDAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLW1vei10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICAxMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIC1tb3otdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgLW8tdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTsgfVxuICAyMCUge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLW8tdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9IH1cbkBrZXlmcmFtZXMgcHVsc2Uge1xuICAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC1tb3otdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAtby10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgMTAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH1cbiAgMjAlIHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgLW1vei10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfSB9XG4uZHJvcHpvbmUsIC5kcm9wem9uZSAqIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4uZHJvcHpvbmUge1xuICBtaW4taGVpZ2h0OiAxNTBweDtcbiAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgcGFkZGluZzogMjBweCAyMHB4OyB9XG4gIC5kcm9wem9uZS5kei1jbGlja2FibGUge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgIC5kcm9wem9uZS5kei1jbGlja2FibGUgKiB7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cbiAgICAuZHJvcHpvbmUuZHotY2xpY2thYmxlIC5kei1tZXNzYWdlLCAuZHJvcHpvbmUuZHotY2xpY2thYmxlIC5kei1tZXNzYWdlICoge1xuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5kcm9wem9uZS5kei1zdGFydGVkIC5kei1tZXNzYWdlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5kcm9wem9uZS5kei1kcmFnLWhvdmVyIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkOyB9XG4gICAgLmRyb3B6b25lLmR6LWRyYWctaG92ZXIgLmR6LW1lc3NhZ2Uge1xuICAgICAgb3BhY2l0eTogMC41OyB9XG4gIC5kcm9wem9uZSAuZHotbWVzc2FnZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjogMmVtIDA7IH1cbiAgLmRyb3B6b25lIC5kei1wcmV2aWV3IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgbWFyZ2luOiAxNnB4O1xuICAgIG1pbi1oZWlnaHQ6IDEwMHB4OyB9XG4gICAgLmRyb3B6b25lIC5kei1wcmV2aWV3OmhvdmVyIHtcbiAgICAgIHotaW5kZXg6IDEwMDA7IH1cbiAgICAgIC5kcm9wem9uZSAuZHotcHJldmlldzpob3ZlciAuZHotZGV0YWlscyB7XG4gICAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAuZHJvcHpvbmUgLmR6LXByZXZpZXcuZHotZmlsZS1wcmV2aWV3IC5kei1pbWFnZSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgYmFja2dyb3VuZDogIzk5OTtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNlZWUsICNkZGQpOyB9XG4gICAgLmRyb3B6b25lIC5kei1wcmV2aWV3LmR6LWZpbGUtcHJldmlldyAuZHotZGV0YWlscyB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgLmRyb3B6b25lIC5kei1wcmV2aWV3LmR6LWltYWdlLXByZXZpZXcge1xuICAgICAgYmFja2dyb3VuZDogd2hpdGU7IH1cbiAgICAgIC5kcm9wem9uZSAuZHotcHJldmlldy5kei1pbWFnZS1wcmV2aWV3IC5kei1kZXRhaWxzIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgbGluZWFyO1xuICAgICAgICAtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBsaW5lYXI7XG4gICAgICAgIC1tcy10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgbGluZWFyO1xuICAgICAgICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgbGluZWFyO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgbGluZWFyOyB9XG4gICAgLmRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1yZW1vdmUge1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXI6IG5vbmU7IH1cbiAgICAgIC5kcm9wem9uZSAuZHotcHJldmlldyAuZHotcmVtb3ZlOmhvdmVyIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgICAuZHJvcHpvbmUgLmR6LXByZXZpZXc6aG92ZXIgLmR6LWRldGFpbHMge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAgIC5kcm9wem9uZSAuZHotcHJldmlldyAuZHotZGV0YWlscyB7XG4gICAgICB6LWluZGV4OiAyMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZzogMmVtIDFlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuOSk7XG4gICAgICBsaW5lLWhlaWdodDogMTUwJTsgfVxuICAgICAgLmRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1kZXRhaWxzIC5kei1zaXplIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7IH1cbiAgICAgIC5kcm9wem9uZSAuZHotcHJldmlldyAuZHotZGV0YWlscyAuZHotZmlsZW5hbWUge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gICAgICAgIC5kcm9wem9uZSAuZHotcHJldmlldyAuZHotZGV0YWlscyAuZHotZmlsZW5hbWU6aG92ZXIgc3BhbiB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMDAsIDIwMCwgMjAwLCAwLjgpO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTsgfVxuICAgICAgICAuZHJvcHpvbmUgLmR6LXByZXZpZXcgLmR6LWRldGFpbHMgLmR6LWZpbGVuYW1lOm5vdCg6aG92ZXIpIHtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB9XG4gICAgICAgICAgLmRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1kZXRhaWxzIC5kei1maWxlbmFtZTpub3QoOmhvdmVyKSBzcGFuIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9XG4gICAgICAuZHJvcHpvbmUgLmR6LXByZXZpZXcgLmR6LWRldGFpbHMgLmR6LWZpbGVuYW1lIHNwYW4sIC5kcm9wem9uZSAuZHotcHJldmlldyAuZHotZGV0YWlscyAuZHotc2l6ZSBzcGFuIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xuICAgICAgICBwYWRkaW5nOiAwIDAuNGVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7IH1cbiAgICAuZHJvcHpvbmUgLmR6LXByZXZpZXc6aG92ZXIgLmR6LWltYWdlIGltZyB7XG4gICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wNSwgMS4wNSk7XG4gICAgICAtbW96LXRyYW5zZm9ybTogc2NhbGUoMS4wNSwgMS4wNSk7XG4gICAgICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgxLjA1LCAxLjA1KTtcbiAgICAgIC1vLXRyYW5zZm9ybTogc2NhbGUoMS4wNSwgMS4wNSk7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUsIDEuMDUpO1xuICAgICAgLXdlYmtpdC1maWx0ZXI6IGJsdXIoOHB4KTtcbiAgICAgIGZpbHRlcjogYmx1cig4cHgpOyB9XG4gICAgLmRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1pbWFnZSB7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHdpZHRoOiAxMjBweDtcbiAgICAgIGhlaWdodDogMTIwcHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHotaW5kZXg6IDEwOyB9XG4gICAgICAuZHJvcHpvbmUgLmR6LXByZXZpZXcgLmR6LWltYWdlIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLmRyb3B6b25lIC5kei1wcmV2aWV3LmR6LXN1Y2Nlc3MgLmR6LXN1Y2Nlc3MtbWFyayB7XG4gICAgICAtd2Via2l0LWFuaW1hdGlvbjogcGFzc2luZy10aHJvdWdoIDNzIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7XG4gICAgICAtbW96LWFuaW1hdGlvbjogcGFzc2luZy10aHJvdWdoIDNzIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7XG4gICAgICAtbXMtYW5pbWF0aW9uOiBwYXNzaW5nLXRocm91Z2ggM3MgY3ViaWMtYmV6aWVyKDAuNzcsIDAsIDAuMTc1LCAxKTtcbiAgICAgIC1vLWFuaW1hdGlvbjogcGFzc2luZy10aHJvdWdoIDNzIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7XG4gICAgICBhbmltYXRpb246IHBhc3NpbmctdGhyb3VnaCAzcyBjdWJpYy1iZXppZXIoMC43NywgMCwgMC4xNzUsIDEpOyB9XG4gICAgLmRyb3B6b25lIC5kei1wcmV2aWV3LmR6LWVycm9yIC5kei1lcnJvci1tYXJrIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAtd2Via2l0LWFuaW1hdGlvbjogc2xpZGUtaW4gM3MgY3ViaWMtYmV6aWVyKDAuNzcsIDAsIDAuMTc1LCAxKTtcbiAgICAgIC1tb3otYW5pbWF0aW9uOiBzbGlkZS1pbiAzcyBjdWJpYy1iZXppZXIoMC43NywgMCwgMC4xNzUsIDEpO1xuICAgICAgLW1zLWFuaW1hdGlvbjogc2xpZGUtaW4gM3MgY3ViaWMtYmV6aWVyKDAuNzcsIDAsIDAuMTc1LCAxKTtcbiAgICAgIC1vLWFuaW1hdGlvbjogc2xpZGUtaW4gM3MgY3ViaWMtYmV6aWVyKDAuNzcsIDAsIDAuMTc1LCAxKTtcbiAgICAgIGFuaW1hdGlvbjogc2xpZGUtaW4gM3MgY3ViaWMtYmV6aWVyKDAuNzcsIDAsIDAuMTc1LCAxKTsgfVxuICAgIC5kcm9wem9uZSAuZHotcHJldmlldyAuZHotc3VjY2Vzcy1tYXJrLCAuZHJvcHpvbmUgLmR6LXByZXZpZXcgLmR6LWVycm9yLW1hcmsge1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgei1pbmRleDogNTAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMjdweDtcbiAgICAgIG1hcmdpbi10b3A6IC0yN3B4OyB9XG4gICAgICAuZHJvcHpvbmUgLmR6LXByZXZpZXcgLmR6LXN1Y2Nlc3MtbWFyayBzdmcsIC5kcm9wem9uZSAuZHotcHJldmlldyAuZHotZXJyb3ItbWFyayBzdmcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDU0cHg7XG4gICAgICAgIGhlaWdodDogNTRweDsgfVxuICAgIC5kcm9wem9uZSAuZHotcHJldmlldy5kei1wcm9jZXNzaW5nIC5kei1wcm9ncmVzcyB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBsaW5lYXI7XG4gICAgICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjJzIGxpbmVhcjtcbiAgICAgIC1tcy10cmFuc2l0aW9uOiBhbGwgMC4ycyBsaW5lYXI7XG4gICAgICAtby10cmFuc2l0aW9uOiBhbGwgMC4ycyBsaW5lYXI7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBsaW5lYXI7IH1cbiAgICAuZHJvcHpvbmUgLmR6LXByZXZpZXcuZHotY29tcGxldGUgLmR6LXByb2dyZXNzIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLWluO1xuICAgICAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMgZWFzZS1pbjtcbiAgICAgIC1tcy10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMgZWFzZS1pbjtcbiAgICAgIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLWluO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzIGVhc2UtaW47IH1cbiAgICAuZHJvcHpvbmUgLmR6LXByZXZpZXc6bm90KC5kei1wcm9jZXNzaW5nKSAuZHotcHJvZ3Jlc3Mge1xuICAgICAgLXdlYmtpdC1hbmltYXRpb246IHB1bHNlIDZzIGVhc2UgaW5maW5pdGU7XG4gICAgICAtbW96LWFuaW1hdGlvbjogcHVsc2UgNnMgZWFzZSBpbmZpbml0ZTtcbiAgICAgIC1tcy1hbmltYXRpb246IHB1bHNlIDZzIGVhc2UgaW5maW5pdGU7XG4gICAgICAtby1hbmltYXRpb246IHB1bHNlIDZzIGVhc2UgaW5maW5pdGU7XG4gICAgICBhbmltYXRpb246IHB1bHNlIDZzIGVhc2UgaW5maW5pdGU7IH1cbiAgICAuZHJvcHpvbmUgLmR6LXByZXZpZXcgLmR6LXByb2dyZXNzIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB6LWluZGV4OiAxMDAwO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICBsZWZ0OiA1MCU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG1hcmdpbi10b3A6IC04cHg7XG4gICAgICB3aWR0aDogODBweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtNDBweDtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAgIC5kcm9wem9uZSAuZHotcHJldmlldyAuZHotcHJvZ3Jlc3MgLmR6LXVwbG9hZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICMzMzM7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICM2NjYsICM0NDQpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2l0aW9uOiB3aWR0aCAzMDBtcyBlYXNlLWluLW91dDtcbiAgICAgICAgLW1vei10cmFuc2l0aW9uOiB3aWR0aCAzMDBtcyBlYXNlLWluLW91dDtcbiAgICAgICAgLW1zLXRyYW5zaXRpb246IHdpZHRoIDMwMG1zIGVhc2UtaW4tb3V0O1xuICAgICAgICAtby10cmFuc2l0aW9uOiB3aWR0aCAzMDBtcyBlYXNlLWluLW91dDtcbiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMzAwbXMgZWFzZS1pbi1vdXQ7IH1cbiAgICAuZHJvcHpvbmUgLmR6LXByZXZpZXcuZHotZXJyb3IgLmR6LWVycm9yLW1lc3NhZ2Uge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuZHJvcHpvbmUgLmR6LXByZXZpZXcuZHotZXJyb3I6aG92ZXIgLmR6LWVycm9yLW1lc3NhZ2Uge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG4gICAgLmRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1lcnJvci1tZXNzYWdlIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgei1pbmRleDogMTAwMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xuICAgICAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcbiAgICAgIC1tcy10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcbiAgICAgIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG4gICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICB0b3A6IDEzMHB4O1xuICAgICAgbGVmdDogLTEwcHg7XG4gICAgICB3aWR0aDogMTQwcHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjYmUyNjI2O1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgI2JlMjYyNiwgI2E5MjIyMik7XG4gICAgICBwYWRkaW5nOiAwLjVlbSAxLjJlbTtcbiAgICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAgICAgLmRyb3B6b25lIC5kei1wcmV2aWV3IC5kei1lcnJvci1tZXNzYWdlOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtNnB4O1xuICAgICAgICBsZWZ0OiA2NHB4O1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmlnaHQ6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkICNiZTI2MjY7IH1cbi52dWUtZHJvcHpvbmV7Ym9yZGVyOjJweCBzb2xpZCAjZTVlNWU1O2ZvbnQtZmFtaWx5OkFyaWFsLHNhbnMtc2VyaWY7bGV0dGVyLXNwYWNpbmc6LjJweDtjb2xvcjojNzc3O3RyYW5zaXRpb246LjJzIGxpbmVhcn0udnVlLWRyb3B6b25lOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2Y2ZjZmNn0udnVlLWRyb3B6b25lPml7Y29sb3I6I2NjY30udnVlLWRyb3B6b25lPi5kei1wcmV2aWV3IC5kei1pbWFnZXtib3JkZXItcmFkaXVzOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX0udnVlLWRyb3B6b25lPi5kei1wcmV2aWV3IC5kei1pbWFnZSBpbWc6bm90KFtzcmNdKXt3aWR0aDoyMDBweDtoZWlnaHQ6MjAwcHh9LnZ1ZS1kcm9wem9uZT4uZHotcHJldmlldyAuZHotaW1hZ2U6aG92ZXIgaW1ne3RyYW5zZm9ybTpub25lOy13ZWJraXQtZmlsdGVyOm5vbmV9LnZ1ZS1kcm9wem9uZT4uZHotcHJldmlldyAuZHotZGV0YWlsc3tib3R0b206MDt0b3A6MDtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6cmdiYSgzMywxNTAsMjQzLC44KTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGxpbmVhcjt0ZXh0LWFsaWduOmxlZnR9LnZ1ZS1kcm9wem9uZT4uZHotcHJldmlldyAuZHotZGV0YWlscyAuZHotZmlsZW5hbWV7b3ZlcmZsb3c6aGlkZGVufS52dWUtZHJvcHpvbmU+LmR6LXByZXZpZXcgLmR6LWRldGFpbHMgLmR6LWZpbGVuYW1lIHNwYW4sLnZ1ZS1kcm9wem9uZT4uZHotcHJldmlldyAuZHotZGV0YWlscyAuZHotc2l6ZSBzcGFue2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LnZ1ZS1kcm9wem9uZT4uZHotcHJldmlldyAuZHotZGV0YWlscyAuZHotZmlsZW5hbWU6bm90KDpob3Zlcikgc3Bhbntib3JkZXI6bm9uZX0udnVlLWRyb3B6b25lPi5kei1wcmV2aWV3IC5kei1kZXRhaWxzIC5kei1maWxlbmFtZTpob3ZlciBzcGFue2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmV9LnZ1ZS1kcm9wem9uZT4uZHotcHJldmlldyAuZHotcHJvZ3Jlc3MgLmR6LXVwbG9hZHtiYWNrZ3JvdW5kOiNjY2N9LnZ1ZS1kcm9wem9uZT4uZHotcHJldmlldyAuZHotcmVtb3Zle3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MzA7Y29sb3I6I2ZmZjttYXJnaW4tbGVmdDoxNXB4O3BhZGRpbmc6MTBweDt0b3A6aW5oZXJpdDtib3R0b206MTVweDtib3JkZXI6MnB4ICNmZmYgc29saWQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2ZvbnQtc2l6ZTouOHJlbTtmb250LXdlaWdodDo4MDA7bGV0dGVyLXNwYWNpbmc6MS4xcHg7b3BhY2l0eTowfS52dWUtZHJvcHpvbmU+LmR6LXByZXZpZXc6aG92ZXIgLmR6LXJlbW92ZXtvcGFjaXR5OjF9LnZ1ZS1kcm9wem9uZT4uZHotcHJldmlldyAuZHotZXJyb3ItbWFyaywudnVlLWRyb3B6b25lPi5kei1wcmV2aWV3IC5kei1zdWNjZXNzLW1hcmt7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tdG9wOmF1dG87d2lkdGg6MTAwJTt0b3A6MzUlO2xlZnQ6MH0udnVlLWRyb3B6b25lPi5kei1wcmV2aWV3IC5kei1lcnJvci1tYXJrIHN2ZywudnVlLWRyb3B6b25lPi5kei1wcmV2aWV3IC5kei1zdWNjZXNzLW1hcmsgc3Zne21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0OmF1dG99LnZ1ZS1kcm9wem9uZT4uZHotcHJldmlldyAuZHotZXJyb3ItbWVzc2FnZXttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvO2xlZnQ6MDt3aWR0aDoxMDAlO3RleHQtYWxpZ246Y2VudGVyfS52dWUtZHJvcHpvbmU+LmR6LXByZXZpZXcgLmR6LWVycm9yLW1lc3NhZ2U6YWZ0ZXJ7ZGlzcGxheTpub25lfSIsIi8qIFNsaWRlciAqL1xuLnNsaWNrLXNsaWRlclxue1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAgIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICAgICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4uc2xpY2stbGlzdFxue1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbn1cbi5zbGljay1saXN0OmZvY3VzXG57XG4gICAgb3V0bGluZTogbm9uZTtcbn1cbi5zbGljay1saXN0LmRyYWdnaW5nXG57XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGN1cnNvcjogaGFuZDtcbn1cblxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXG4uc2xpY2stc2xpZGVyIC5zbGljay1saXN0XG57XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cblxuLnNsaWNrLXRyYWNrXG57XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLnNsaWNrLXRyYWNrOmJlZm9yZSxcbi5zbGljay10cmFjazphZnRlclxue1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuXG4gICAgY29udGVudDogJyc7XG59XG4uc2xpY2stdHJhY2s6YWZ0ZXJcbntcbiAgICBjbGVhcjogYm90aDtcbn1cbi5zbGljay1sb2FkaW5nIC5zbGljay10cmFja1xue1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnNsaWNrLXNsaWRlXG57XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBmbG9hdDogbGVmdDtcblxuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxcHg7XG59XG5bZGlyPSdydGwnXSAuc2xpY2stc2xpZGVcbntcbiAgICBmbG9hdDogcmlnaHQ7XG59XG4uc2xpY2stc2xpZGUgaW1nXG57XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG4uc2xpY2stc2xpZGUuc2xpY2stbG9hZGluZyBpbWdcbntcbiAgICBkaXNwbGF5OiBub25lO1xufVxuLnNsaWNrLXNsaWRlLmRyYWdnaW5nIGltZ1xue1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnNsaWNrLWluaXRpYWxpemVkIC5zbGljay1zbGlkZVxue1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuLnNsaWNrLWxvYWRpbmcgLnNsaWNrLXNsaWRlXG57XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLnNsaWNrLXZlcnRpY2FsIC5zbGljay1zbGlkZVxue1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgaGVpZ2h0OiBhdXRvO1xuXG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG4uc2xpY2stYXJyb3cuc2xpY2staGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuIiwiQGNoYXJzZXQgJ1VURi04Jztcbi8qIFNsaWRlciAqL1xuLnNsaWNrLWxvYWRpbmcgLnNsaWNrLWxpc3RcbntcbiAgICBiYWNrZ3JvdW5kOiAjZmZmIHVybCgnLi9hamF4LWxvYWRlci5naWYnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdDtcbn1cblxuLyogSWNvbnMgKi9cbkBmb250LWZhY2VcbntcbiAgICBmb250LWZhbWlseTogJ3NsaWNrJztcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcblxuICAgIHNyYzogdXJsKCcuL2ZvbnRzL3NsaWNrLmVvdCcpO1xuICAgIHNyYzogdXJsKCcuL2ZvbnRzL3NsaWNrLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnLi9mb250cy9zbGljay53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnLi9mb250cy9zbGljay50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksIHVybCgnLi9mb250cy9zbGljay5zdmcjc2xpY2snKSBmb3JtYXQoJ3N2ZycpO1xufVxuLyogQXJyb3dzICovXG4uc2xpY2stcHJldixcbi5zbGljay1uZXh0XG57XG4gICAgZm9udC1zaXplOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgcGFkZGluZzogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5zbGljay1wcmV2OmhvdmVyLFxuLnNsaWNrLXByZXY6Zm9jdXMsXG4uc2xpY2stbmV4dDpob3Zlcixcbi5zbGljay1uZXh0OmZvY3VzXG57XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4uc2xpY2stcHJldjpob3ZlcjpiZWZvcmUsXG4uc2xpY2stcHJldjpmb2N1czpiZWZvcmUsXG4uc2xpY2stbmV4dDpob3ZlcjpiZWZvcmUsXG4uc2xpY2stbmV4dDpmb2N1czpiZWZvcmVcbntcbiAgICBvcGFjaXR5OiAxO1xufVxuLnNsaWNrLXByZXYuc2xpY2stZGlzYWJsZWQ6YmVmb3JlLFxuLnNsaWNrLW5leHQuc2xpY2stZGlzYWJsZWQ6YmVmb3JlXG57XG4gICAgb3BhY2l0eTogLjI1O1xufVxuXG4uc2xpY2stcHJldjpiZWZvcmUsXG4uc2xpY2stbmV4dDpiZWZvcmVcbntcbiAgICBmb250LWZhbWlseTogJ3NsaWNrJztcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBvcGFjaXR5OiAuNzU7XG4gICAgY29sb3I6IHdoaXRlO1xuXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuLnNsaWNrLXByZXZcbntcbiAgICBsZWZ0OiAtMjVweDtcbn1cbltkaXI9J3J0bCddIC5zbGljay1wcmV2XG57XG4gICAgcmlnaHQ6IC0yNXB4O1xuICAgIGxlZnQ6IGF1dG87XG59XG4uc2xpY2stcHJldjpiZWZvcmVcbntcbiAgICBjb250ZW50OiAn4oaQJztcbn1cbltkaXI9J3J0bCddIC5zbGljay1wcmV2OmJlZm9yZVxue1xuICAgIGNvbnRlbnQ6ICfihpInO1xufVxuXG4uc2xpY2stbmV4dFxue1xuICAgIHJpZ2h0OiAtMjVweDtcbn1cbltkaXI9J3J0bCddIC5zbGljay1uZXh0XG57XG4gICAgcmlnaHQ6IGF1dG87XG4gICAgbGVmdDogLTI1cHg7XG59XG4uc2xpY2stbmV4dDpiZWZvcmVcbntcbiAgICBjb250ZW50OiAn4oaSJztcbn1cbltkaXI9J3J0bCddIC5zbGljay1uZXh0OmJlZm9yZVxue1xuICAgIGNvbnRlbnQ6ICfihpAnO1xufVxuXG4vKiBEb3RzICovXG4uc2xpY2stZG90dGVkLnNsaWNrLXNsaWRlclxue1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbi5zbGljay1kb3RzXG57XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogLTI1cHg7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5zbGljay1kb3RzIGxpXG57XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbjogMCA1cHg7XG4gICAgcGFkZGluZzogMDtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5zbGljay1kb3RzIGxpIGJ1dHRvblxue1xuICAgIGZvbnQtc2l6ZTogMDtcbiAgICBsaW5lLWhlaWdodDogMDtcblxuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHBhZGRpbmc6IDVweDtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDA7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5zbGljay1kb3RzIGxpIGJ1dHRvbjpob3Zlcixcbi5zbGljay1kb3RzIGxpIGJ1dHRvbjpmb2N1c1xue1xuICAgIG91dGxpbmU6IG5vbmU7XG59XG4uc2xpY2stZG90cyBsaSBidXR0b246aG92ZXI6YmVmb3JlLFxuLnNsaWNrLWRvdHMgbGkgYnV0dG9uOmZvY3VzOmJlZm9yZVxue1xuICAgIG9wYWNpdHk6IDE7XG59XG4uc2xpY2stZG90cyBsaSBidXR0b246YmVmb3JlXG57XG4gICAgZm9udC1mYW1pbHk6ICdzbGljayc7XG4gICAgZm9udC1zaXplOiA2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG5cbiAgICBjb250ZW50OiAn4oCiJztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBvcGFjaXR5OiAuMjU7XG4gICAgY29sb3I6IGJsYWNrO1xuXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cbi5zbGljay1kb3RzIGxpLnNsaWNrLWFjdGl2ZSBidXR0b246YmVmb3JlXG57XG4gICAgb3BhY2l0eTogLjc1O1xuICAgIGNvbG9yOiBibGFjaztcbn1cbiIsIi8qKlxuICogT3dsIENhcm91c2VsIHYyLjMuNFxuICogQ29weXJpZ2h0IDIwMTMtMjAxOCBEYXZpZCBEZXV0c2NoXG4gKiBMaWNlbnNlZCB1bmRlcjogU0VFIExJQ0VOU0UgSU4gaHR0cHM6Ly9naXRodWIuY29tL093bENhcm91c2VsMi9Pd2xDYXJvdXNlbDIvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG4vKlxuICogIE93bCBDYXJvdXNlbCAtIENvcmVcbiAqL1xuLm93bC1jYXJvdXNlbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAvKiBwb3NpdGlvbiByZWxhdGl2ZSBhbmQgei1pbmRleCBmaXggd2Via2l0IHJlbmRlcmluZyBmb250cyBpc3N1ZSAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7IH1cbiAgLm93bC1jYXJvdXNlbCAub3dsLXN0YWdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLVk7XG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gICAgLW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLyogZml4IGZpcmVmb3ggYW5pbWF0aW9uIGdsaXRjaCAqLyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1zdGFnZTphZnRlciB7XG4gICAgY29udGVudDogXCIuXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIGhlaWdodDogMDsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtc3RhZ2Utb3V0ZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIC8qIGZpeCBmb3IgZmxhc2hpbmcgYmFja2dyb3VuZCAqL1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwcHgsIDBweCwgMHB4KTsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtd3JhcHBlcixcbiAgLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0ge1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIC1tcy1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtaXRlbSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1pbi1oZWlnaHQ6IDFweDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtaXRlbSBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1uYXYuZGlzYWJsZWQsXG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1kb3RzLmRpc2FibGVkIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1uYXYgLm93bC1wcmV2LFxuICAub3dsLWNhcm91c2VsIC5vd2wtbmF2IC5vd2wtbmV4dCxcbiAgLm93bC1jYXJvdXNlbCAub3dsLWRvdCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLWtodG1sLXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1uYXYgYnV0dG9uLm93bC1wcmV2LFxuICAub3dsLWNhcm91c2VsIC5vd2wtbmF2IGJ1dHRvbi5vd2wtbmV4dCxcbiAgLm93bC1jYXJvdXNlbCBidXR0b24ub3dsLWRvdCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIGZvbnQ6IGluaGVyaXQ7IH1cbiAgLm93bC1jYXJvdXNlbC5vd2wtbG9hZGVkIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAub3dsLWNhcm91c2VsLm93bC1sb2FkaW5nIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5vd2wtY2Fyb3VzZWwub3dsLWhpZGRlbiB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAub3dsLWNhcm91c2VsLm93bC1yZWZyZXNoIC5vd2wtaXRlbSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gIC5vd2wtY2Fyb3VzZWwub3dsLWRyYWcgLm93bC1pdGVtIHtcbiAgICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICAgICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5vd2wtY2Fyb3VzZWwub3dsLWdyYWIge1xuICAgIGN1cnNvcjogbW92ZTtcbiAgICBjdXJzb3I6IGdyYWI7IH1cbiAgLm93bC1jYXJvdXNlbC5vd2wtcnRsIHtcbiAgICBkaXJlY3Rpb246IHJ0bDsgfVxuICAub3dsLWNhcm91c2VsLm93bC1ydGwgLm93bC1pdGVtIHtcbiAgICBmbG9hdDogcmlnaHQ7IH1cblxuLyogTm8gSnMgKi9cbi5uby1qcyAub3dsLWNhcm91c2VsIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLypcbiAqICBPd2wgQ2Fyb3VzZWwgLSBBbmltYXRlIFBsdWdpblxuICovXG4ub3dsLWNhcm91c2VsIC5hbmltYXRlZCB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMTAwMG1zO1xuICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOyB9XG5cbi5vd2wtY2Fyb3VzZWwgLm93bC1hbmltYXRlZC1pbiB7XG4gIHotaW5kZXg6IDA7IH1cblxuLm93bC1jYXJvdXNlbCAub3dsLWFuaW1hdGVkLW91dCB7XG4gIHotaW5kZXg6IDE7IH1cblxuLm93bC1jYXJvdXNlbCAuZmFkZU91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0OyB9XG5cbkBrZXlmcmFtZXMgZmFkZU91dCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7IH0gfVxuXG4vKlxuICogXHRPd2wgQ2Fyb3VzZWwgLSBBdXRvIEhlaWdodCBQbHVnaW5cbiAqL1xuLm93bC1oZWlnaHQge1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgNTAwbXMgZWFzZS1pbi1vdXQ7IH1cblxuLypcbiAqIFx0T3dsIENhcm91c2VsIC0gTGF6eSBMb2FkIFBsdWdpblxuICovXG4ub3dsLWNhcm91c2VsIC5vd2wtaXRlbSB7XG4gIC8qKlxuXHRcdFx0VGhpcyBpcyBpbnRyb2R1Y2VkIGR1ZSB0byBhIGJ1ZyBpbiBJRTExIHdoZXJlIGxhenkgbG9hZGluZyBjb21iaW5lZCB3aXRoIGF1dG9oZWlnaHQgcGx1Z2luIGNhdXNlcyBhIHdyb25nXG5cdFx0XHRjYWxjdWxhdGlvbiBvZiB0aGUgaGVpZ2h0IG9mIHRoZSBvd2wtaXRlbSB0aGF0IGJyZWFrcyBwYWdlIGxheW91dHNcblx0XHQgKi8gfVxuICAub3dsLWNhcm91c2VsIC5vd2wtaXRlbSAub3dsLWxhenkge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBlYXNlOyB9XG4gIC5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIC5vd2wtbGF6eVtzcmNePVwiXCJdLCAub3dsLWNhcm91c2VsIC5vd2wtaXRlbSAub3dsLWxhenk6bm90KFtzcmNdKSB7XG4gICAgbWF4LWhlaWdodDogMDsgfVxuICAub3dsLWNhcm91c2VsIC5vd2wtaXRlbSBpbWcub3dsLWxhenkge1xuICAgIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7IH1cblxuLypcbiAqIFx0T3dsIENhcm91c2VsIC0gVmlkZW8gUGx1Z2luXG4gKi9cbi5vd2wtY2Fyb3VzZWwgLm93bC12aWRlby13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICMwMDA7IH1cblxuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXBsYXktaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiA4MHB4O1xuICB3aWR0aDogODBweDtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLWxlZnQ6IC00MHB4O1xuICBtYXJnaW4tdG9wOiAtNDBweDtcbiAgYmFja2dyb3VuZDogdXJsKFwib3dsLnZpZGVvLnBsYXkucG5nXCIpIG5vLXJlcGVhdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB6LWluZGV4OiAxO1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDEwMG1zIGVhc2U7IH1cblxuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXBsYXktaWNvbjpob3ZlciB7XG4gIC1tcy10cmFuc2Zvcm06IHNjYWxlKDEuMywgMS4zKTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zLCAxLjMpOyB9XG5cbi5vd2wtY2Fyb3VzZWwgLm93bC12aWRlby1wbGF5aW5nIC5vd2wtdmlkZW8tdG4sXG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tcGxheWluZyAub3dsLXZpZGVvLXBsYXktaWNvbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXRuIHtcbiAgb3BhY2l0eTogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgNDAwbXMgZWFzZTsgfVxuXG4ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tZnJhbWUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7IH1cbiIsIi8qIEQ6XFxQcm9qZWN0XFxzaXJpdXNcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdWlcXHRoZW1lXFxnbG9iYWxzXFxnbG9iYWxzLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBBIGNsYXNzIHdoaWNoIGhpZGVzIGFuIGVsZW1lbnQgaW4gRE9NLlxuICovXG5cbi5jay1oaWRkZW4ge1xuXHQvKiBPdmVycmlkZSBzZWxlY3RvciBzcGVjaWZpY2l0eS4gT3RoZXJ3aXNlLCBhbGwgZWxlbWVudHMgd2l0aCBzb21lIGRpc3BsYXlcblx0c3R5bGUgZGVmaW5lZCB3aWxsIG92ZXJyaWRlIHRoaXMgb25lLCB3aGljaCBpcyBub3QgYSBkZXNpcmVkIHJlc3VsdC4gKi9cblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi5jay5jay1yZXNldCxcbi5jay5jay1yZXNldF9hbGwsXG4uY2suY2stcmVzZXRfYWxsICoge1xuXHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHR3aWR0aDogYXV0bztcblx0aGVpZ2h0OiBhdXRvO1xuXHRwb3NpdGlvbjogc3RhdGljO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbjpyb290IHtcblx0LS1jay16LWRlZmF1bHQ6IDE7XG5cdC0tY2stei1tb2RhbDogY2FsYyggdmFyKC0tY2stei1kZWZhdWx0KSArIDk5OSApO1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogQSBjbGFzcyB0aGF0IGRpc2FibGVzIGFsbCB0cmFuc2l0aW9ucyBvZiB0aGUgZWxlbWVudCBhbmQgaXRzIGNoaWxkcmVuLlxuICovXG5cbi5jay10cmFuc2l0aW9ucy1kaXNhYmxlZCxcbi5jay10cmFuc2l0aW9ucy1kaXNhYmxlZCAqIHtcblx0dHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtdWlcXGdsb2JhbHNcXGdsb2JhbHMuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItYmFzZS1mb3JlZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0aHNsKDAsIDAlLCA5OCUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRcdGhzbCgwLCAwJSwgMTAwJSk7XG5cdC0tY2stY29sb3ItYmFzZS1ib3JkZXI6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgwLCAwJSwgNzclKTtcblx0LS1jay1jb2xvci1iYXNlLWFjdGlvbjogXHRcdFx0XHRcdFx0XHRcdFx0aHNsKDEwNCwgNDQlLCA0OCUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtZm9jdXM6IFx0XHRcdFx0XHRcdFx0XHRcdFx0aHNsKDIwOSwgOTIlLCA3MCUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtdGV4dDogXHRcdFx0XHRcdFx0XHRcdFx0XHRoc2woMCwgMCUsIDIwJSk7XG5cdC0tY2stY29sb3ItYmFzZS1hY3RpdmU6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgyMDgsIDg4JSwgNTIlKTtcblx0LS1jay1jb2xvci1iYXNlLWFjdGl2ZS1mb2N1czpcdFx0XHRcdFx0XHRcdFx0aHNsKDIwOCwgODglLCA0NyUpO1xuXHQtLWNrLWNvbG9yLWJhc2UtZXJyb3I6XHRcdFx0XHRcdFx0XHRcdFx0XHRoc2woMTUsIDEwMCUsIDQzJSk7XG5cblx0LyogLS0gR2VuZXJpYyBjb2xvcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1mb2N1cy1ib3JkZXItY29vcmRpbmF0ZXM6IFx0XHRcdFx0XHRcdDIwOCwgNzklLCA1MSU7XG5cdC0tY2stY29sb3ItZm9jdXMtYm9yZGVyOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2wodmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyLWNvb3JkaW5hdGVzKSk7XG5cdC0tY2stY29sb3ItZm9jdXMtb3V0ZXItc2hhZG93Olx0XHRcdFx0XHRcdFx0XHRoc2woMjA3LCA4OSUsIDg2JSk7XG5cdC0tY2stY29sb3ItZm9jdXMtZGlzYWJsZWQtc2hhZG93Olx0XHRcdFx0XHRcdFx0aHNsYSgyMDksIDkwJSwgNzIlLC4zKTtcblx0LS1jay1jb2xvci1mb2N1cy1lcnJvci1zaGFkb3c6XHRcdFx0XHRcdFx0XHRcdGhzbGEoOSwxMDAlLDU2JSwuMyk7XG5cdC0tY2stY29sb3ItdGV4dDogXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtdGV4dCk7XG5cdC0tY2stY29sb3Itc2hhZG93LWRyb3A6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbGEoMCwgMCUsIDAlLCAwLjE1KTtcblx0LS1jay1jb2xvci1zaGFkb3ctZHJvcC1hY3RpdmU6XHRcdFx0XHRcdFx0XHRcdGhzbGEoMCwgMCUsIDAlLCAwLjIpO1xuXHQtLWNrLWNvbG9yLXNoYWRvdy1pbm5lcjogXHRcdFx0XHRcdFx0XHRcdFx0aHNsYSgwLCAwJSwgMCUsIDAuMSk7XG5cblx0LyogLS0gQnV0dG9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHR0cmFuc3BhcmVudDtcblx0LS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kOiBcdFx0XHRcdGhzbCgwLCAwJSwgOTAlKTtcblx0LS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1hY3RpdmUtYmFja2dyb3VuZDogXHRcdFx0XHRoc2woMCwgMCUsIDg1JSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtYWN0aXZlLXNoYWRvdzogXHRcdFx0XHRcdGhzbCgwLCAwJSwgNzUlKTtcblx0LS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1kaXNhYmxlZC1iYWNrZ3JvdW5kOiBcdFx0XHRcdHRyYW5zcGFyZW50O1xuXG5cdC0tY2stY29sb3ItYnV0dG9uLW9uLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0aHNsKDAsIDAlLCA4NyUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1vbi1ob3Zlci1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRoc2woMCwgMCUsIDc3JSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLW9uLWFjdGl2ZS1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0aHNsKDAsIDAlLCA3MyUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1vbi1hY3RpdmUtc2hhZG93OiBcdFx0XHRcdFx0XHRoc2woMCwgMCUsIDYzJSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLW9uLWRpc2FibGVkLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRoc2woMCwgMCUsIDg3JSk7XG5cblx0LS1jay1jb2xvci1idXR0b24tYWN0aW9uLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYWN0aW9uKTtcblx0LS1jay1jb2xvci1idXR0b24tYWN0aW9uLWhvdmVyLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRoc2woMTA0LCA0NCUsIDQzJSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi1hY3RpdmUtYmFja2dyb3VuZDogXHRcdFx0XHRoc2woMTA0LCA0NCUsIDQxJSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi1hY3RpdmUtc2hhZG93OiBcdFx0XHRcdFx0aHNsKDEwNCwgNDQlLCAzNiUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24tZGlzYWJsZWQtYmFja2dyb3VuZDogXHRcdFx0XHRoc2woMTA0LCA0NCUsIDU4JSk7XG5cdC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi10ZXh0OiBcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblxuXHQtLWNrLWNvbG9yLWJ1dHRvbi1zYXZlOiBcdFx0XHRcdFx0XHRcdFx0XHRoc2woMTIwLCAxMDAlLCAyNyUpO1xuXHQtLWNrLWNvbG9yLWJ1dHRvbi1jYW5jZWw6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgxNSwgMTAwJSwgNDMlKTtcblxuXHQtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb2ZmLWJhY2tncm91bmQ6XHRcdFx0XHRcdGhzbCgwLCAwJSwgNjklKTtcblx0LS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9mZi1ob3Zlci1iYWNrZ3JvdW5kOlx0XHRcdFx0aHNsKDAsIDAlLCA2NCUpO1xuXHQtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb24tYmFja2dyb3VuZDpcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1idXR0b24tYWN0aW9uLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24tb24taG92ZXItYmFja2dyb3VuZDpcdFx0XHRcdGhzbCgxMDQsIDQ0JSwgNDMlKTtcblx0LS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLWlubmVyLWJhY2tncm91bmQ6XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1pbm5lci1zaGFkb3c6XHRcdFx0XHRcdFx0aHNsYSgwLCAwJSwgMCUsIDAuMSk7XG5cblx0LyogLS0gRHJvcGRvd24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJvcmRlcjogXHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cblx0LyogLS0gSW5wdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci1pbnB1dC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblx0LS1jay1jb2xvci1pbnB1dC1ib3JkZXI6IFx0XHRcdFx0XHRcdFx0XHRcdGhzbCgwLCAwJSwgNzglKTtcblx0LS1jay1jb2xvci1pbnB1dC1lcnJvci1ib3JkZXI6XHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtZXJyb3IpO1xuXHQtLWNrLWNvbG9yLWlucHV0LXRleHQ6IFx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcblx0LS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC1iYWNrZ3JvdW5kOiBcdFx0XHRcdFx0XHRoc2woMCwgMCUsIDk1JSk7XG5cdC0tY2stY29sb3ItaW5wdXQtZGlzYWJsZWQtYm9yZGVyOiBcdFx0XHRcdFx0XHRcdGhzbCgwLCAwJSwgNzglKTtcblx0LS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC10ZXh0OiBcdFx0XHRcdFx0XHRcdGhzbCgwLCAwJSwgNDYlKTtcblxuXHQvKiAtLSBMaXN0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWxpc3QtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3ItbGlzdC1idXR0b24taG92ZXItYmFja2dyb3VuZDogXHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWhvdmVyLWJhY2tncm91bmQpO1xuXHQtLWNrLWNvbG9yLWxpc3QtYnV0dG9uLW9uLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYWN0aXZlKTtcblx0LS1jay1jb2xvci1saXN0LWJ1dHRvbi1vbi1iYWNrZ3JvdW5kLWZvY3VzOiBcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYWN0aXZlLWZvY3VzKTtcblx0LS1jay1jb2xvci1saXN0LWJ1dHRvbi1vbi10ZXh0Olx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXG5cdC8qIC0tIFBhbmVsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZDogXHRcdFx0XHRcdFx0XHRcdHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3ItcGFuZWwtYm9yZGVyOiBcdFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cblx0LyogLS0gVG9vbGJhciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci10b29sYmFyLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXHQtLWNrLWNvbG9yLXRvb2xiYXItYm9yZGVyOiBcdFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cblx0LyogLS0gVG9vbHRpcCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci10b29sdGlwLWJhY2tncm91bmQ6IFx0XHRcdFx0XHRcdFx0XHR2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHQtLWNrLWNvbG9yLXRvb2x0aXAtdGV4dDogXHRcdFx0XHRcdFx0XHRcdFx0dmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblxuXHQvKiAtLSBFbmdpbmUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWVuZ2luZS1wbGFjZWhvbGRlci10ZXh0OiBcdFx0XHRcdFx0XHRoc2woMCwgMCUsIDQ0JSk7XG5cblx0LyogLS0gVXBsb2FkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0LS1jay1jb2xvci11cGxvYWQtYmFyLWJhY2tncm91bmQ6XHRcdCBcdFx0XHRcdFx0aHNsKDIwOSwgOTIlLCA3MCUpO1xuXG5cdC8qIC0tIExpbmsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQtLWNrLWNvbG9yLWxpbmstZGVmYXVsdDpcdFx0XHRcdFx0XHRcdFx0XHRoc2woMjQwLCAxMDAlLCA0NyUpO1xuXHQtLWNrLWNvbG9yLWxpbmstc2VsZWN0ZWQtYmFja2dyb3VuZDpcdFx0XHRcdFx0XHRoc2xhKDIwMSwgMTAwJSwgNTYlLCAwLjEpO1xuXHQtLWNrLWNvbG9yLWxpbmstZmFrZS1zZWxlY3Rpb246XHRcdFx0XHRcdFx0XHRcdGhzbGEoMjAxLCAxMDAlLCA1NiUsIDAuMyk7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuOnJvb3Qge1xuXHQvKipcblx0ICogQW4gb3BhY2l0eSB2YWx1ZSBvZiBkaXNhYmxlZCBVSSBpdGVtLlxuXHQgKi9cblx0LS1jay1kaXNhYmxlZC1vcGFjaXR5OiAuNTtcbn1cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG46cm9vdCB7XG5cdC8qKlxuXHQgKiBUaGUgZ2VvbWV0cnkgb2YgdGhlIG9mIGZvY3VzZWQgZWxlbWVudCdzIG91dGVyIHNoYWRvdy5cblx0ICovXG5cdC0tY2stZm9jdXMtb3V0ZXItc2hhZG93LWdlb21ldHJ5OiAwIDAgMCAzcHg7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIG91dGVyIHNoYWRvdy5cblx0ICovXG5cdC0tY2stZm9jdXMtb3V0ZXItc2hhZG93OiB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3ctZ2VvbWV0cnkpIHZhcigtLWNrLWNvbG9yLWZvY3VzLW91dGVyLXNoYWRvdyk7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIG91dGVyIHNoYWRvdyAod2hlbiBkaXNhYmxlZCkuXG5cdCAqL1xuXHQtLWNrLWZvY3VzLWRpc2FibGVkLW91dGVyLXNoYWRvdzogdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93LWdlb21ldHJ5KSB2YXIoLS1jay1jb2xvci1mb2N1cy1kaXNhYmxlZC1zaGFkb3cpO1xuXG5cdC8qKlxuXHQgKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBvdXRlciBzaGFkb3cgKHdoZW4gaGFzIGVycm9ycykuXG5cdCAqL1xuXHQtLWNrLWZvY3VzLWVycm9yLW91dGVyLXNoYWRvdzogdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93LWdlb21ldHJ5KSB2YXIoLS1jay1jb2xvci1mb2N1cy1lcnJvci1zaGFkb3cpO1xuXG5cdC8qKlxuXHQgKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBib3JkZXIgb3Igb3V0bGluZS5cblx0ICovXG5cdC0tY2stZm9jdXMtcmluZzogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWZvbnQtc2l6ZS1iYXNlOiAxM3B4O1xuXHQtLWNrLWxpbmUtaGVpZ2h0LWJhc2U6IDEuODQ2MTU7XG5cdC0tY2stZm9udC1mYWNlOiBIZWx2ZXRpY2EsIEFyaWFsLCBUYWhvbWEsIFZlcmRhbmEsIFNhbnMtU2VyaWY7XG5cblx0LS1jay1mb250LXNpemUtdGlueTogMC43ZW07XG5cdC0tY2stZm9udC1zaXplLXNtYWxsOiAwLjc1ZW07XG5cdC0tY2stZm9udC1zaXplLW5vcm1hbDogMWVtO1xuXHQtLWNrLWZvbnQtc2l6ZS1iaWc6IDEuNGVtO1xuXHQtLWNrLWZvbnQtc2l6ZS1sYXJnZTogMS44ZW07XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuOnJvb3Qge1xuXHQvKiBUaGlzIGlzIHN1cGVyLWltcG9ydGFudC4gVGhpcyBpcyAqKm1hbnVhbGx5KiogYWRqdXN0ZWQgc28gYSBidXR0b24gd2l0aG91dCBhbiBpY29uXG5cdGlzIG5ldmVyIHNtYWxsZXIgdGhhbiBhIGJ1dHRvbiB3aXRoIGljb24sIGFkZGl0aW9uYWxseSBtYWtpbmcgc3VyZSB0aGF0IHRleHQtbGVzcyBidXR0b25zXG5cdGFyZSBwZXJmZWN0IHNxdWFyZXMuIFRoZSB2YWx1ZSBpcyBhbHNvIHNoYXJlZCBieSBvdGhlciBjb21wb25lbnRzIHdoaWNoIHNob3VsZCBzdGF5IFwiaW4tbGluZVwiXG5cdHdpdGggYnV0dG9ucy4gKi9cblx0LS1jay11aS1jb21wb25lbnQtbWluLWhlaWdodDogMi4zZW07XG59XG5cbi8qKlxuICogUmVzZXRzIGFuIGVsZW1lbnQsIGlnbm9yaW5nIGl0cyBjaGlsZHJlbi5cbiAqL1xuXG4uY2suY2stcmVzZXQsXG4uY2suY2stcmVzZXRfYWxsLFxuLmNrLmNrLXJlc2V0X2FsbCAqIHtcblx0LyogRG8gbm90IGluY2x1ZGUgaW5oZXJpdGFibGUgcnVsZXMgaGVyZS4gKi9cblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRib3JkZXI6IDA7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdHRyYW5zaXRpb246IG5vbmU7XG5cblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy8xMDUgKi9cblx0d29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4vKipcbiAqIFJlc2V0cyBhbiBlbGVtZW50IEFORCBpdHMgY2hpbGRyZW4uXG4gKi9cblxuLmNrLmNrLXJlc2V0X2FsbCxcbi5jay5jay1yZXNldF9hbGwgKiB7XG5cdC8qIFRoZXNlIGFyZSBydWxlIGluaGVyaXRlZCBieSBhbGwgY2hpbGRyZW4gZWxlbWVudHMuICovXG5cdGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG5cdGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKS92YXIoLS1jay1saW5lLWhlaWdodC1iYXNlKSB2YXIoLS1jay1mb250LWZhY2UpO1xuXHRjb2xvcjogdmFyKC0tY2stY29sb3ItdGV4dCk7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdGN1cnNvcjogYXV0bztcblx0ZmxvYXQ6IG5vbmU7XG59XG5cbi5jay5jay1yZXNldF9hbGwgLmNrLXJ0bCAqIHtcblx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0fVxuXG4uY2suY2stcmVzZXRfYWxsIGlmcmFtZSB7XG5cdFx0LyogRm9yIElFICovXG5cdFx0dmVydGljYWwtYWxpZ246IGluaGVyaXQ7XG5cdH1cblxuLmNrLmNrLXJlc2V0X2FsbCB0ZXh0YXJlYSB7XG5cdFx0d2hpdGUtc3BhY2U6IHByZS13cmFwO1xuXHR9XG5cbi5jay5jay1yZXNldF9hbGwgdGV4dGFyZWEsXG5cdC5jay5jay1yZXNldF9hbGwgaW5wdXRbdHlwZT1cInRleHRcIl0sXG5cdC5jay5jay1yZXNldF9hbGwgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdIHtcblx0XHRjdXJzb3I6IHRleHQ7XG5cdH1cblxuLmNrLmNrLXJlc2V0X2FsbCB0ZXh0YXJlYVtkaXNhYmxlZF0sXG5cdC5jay5jay1yZXNldF9hbGwgaW5wdXRbdHlwZT1cInRleHRcIl1bZGlzYWJsZWRdLFxuXHQuY2suY2stcmVzZXRfYWxsIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXVtkaXNhYmxlZF0ge1xuXHRcdGN1cnNvcjogZGVmYXVsdDtcblx0fVxuXG4uY2suY2stcmVzZXRfYWxsIGZpZWxkc2V0IHtcblx0XHRwYWRkaW5nOiAxMHB4O1xuXHRcdGJvcmRlcjogMnB4IGdyb292ZSBoc2woMjU1LCA3JSwgODglKTtcblx0fVxuXG4uY2suY2stcmVzZXRfYWxsIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG5cdFx0LyogU2VlIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNTUxNzc0NC9yZW1vdmUtZXh0cmEtYnV0dG9uLXNwYWNpbmctcGFkZGluZy1pbi1maXJlZm94ICovXG5cdFx0cGFkZGluZzogMDtcblx0XHRib3JkZXI6IDBcblx0fVxuXG4vKipcbiAqIERlZmF1bHQgVUkgcnVsZXMgZm9yIFJUTCBsYW5ndWFnZXMuXG4gKi9cblxuLmNrW2Rpcj1cInJ0bFwiXSxcbi5ja1tkaXI9XCJydGxcIl0gLmNrIHtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBEZWZhdWx0IGJvcmRlci1yYWRpdXMgdmFsdWUuXG4gKi9cblxuOnJvb3R7XG5cdC0tY2stYm9yZGVyLXJhZGl1czogMnB4O1xufVxuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbjpyb290IHtcblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGVsZW1lbnQncyBpbm5lciBzaGFkb3cgKGkuZS4gaW5wdXQpLlxuXHQgKi9cblx0LS1jay1pbm5lci1zaGFkb3c6IDJweCAycHggM3B4IHZhcigtLWNrLWNvbG9yLXNoYWRvdy1pbm5lcikgaW5zZXQ7XG5cblx0LyoqXG5cdCAqIEEgdmlzdWFsIHN0eWxlIG9mIGVsZW1lbnQncyBkcm9wIHNoYWRvdyAoaS5lLiBwYW5lbCkuXG5cdCAqL1xuXHQtLWNrLWRyb3Atc2hhZG93OiAwIDFweCAycHggMXB4IHZhcigtLWNrLWNvbG9yLXNoYWRvdy1kcm9wKTtcblxuXHQvKipcblx0ICogQSB2aXN1YWwgc3R5bGUgb2YgZWxlbWVudCdzIGFjdGl2ZSBzaGFkb3cgKGkuZS4gY29tbWVudCBvciBzdWdnZXN0aW9uKS5cblx0ICovXG5cdC0tY2stZHJvcC1zaGFkb3ctYWN0aXZlOiAwIDNweCA2cHggMXB4IHZhcigtLWNrLWNvbG9yLXNoYWRvdy1kcm9wLWFjdGl2ZSk7XG59XG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLXNwYWNpbmctdW5pdDogXHRcdFx0XHRcdFx0MC42ZW07XG5cdC0tY2stc3BhY2luZy1sYXJnZTogXHRcdFx0XHRcdGNhbGModmFyKC0tY2stc3BhY2luZy11bml0KSAqIDEuNSk7XG5cdC0tY2stc3BhY2luZy1zdGFuZGFyZDogXHRcdFx0XHRcdHZhcigtLWNrLXNwYWNpbmctdW5pdCk7XG5cdC0tY2stc3BhY2luZy1tZWRpdW06IFx0XHRcdFx0XHRjYWxjKHZhcigtLWNrLXNwYWNpbmctdW5pdCkgKiAwLjgpO1xuXHQtLWNrLXNwYWNpbmctc21hbGw6IFx0XHRcdFx0XHRjYWxjKHZhcigtLWNrLXNwYWNpbmctdW5pdCkgKiAwLjUpO1xuXHQtLWNrLXNwYWNpbmctdGlueTogXHRcdFx0XHRcdFx0Y2FsYyh2YXIoLS1jay1zcGFjaW5nLXVuaXQpICogMC4zKTtcblx0LS1jay1zcGFjaW5nLWV4dHJhLXRpbnk6IFx0XHRcdFx0Y2FsYyh2YXIoLS1jay1zcGFjaW5nLXVuaXQpICogMC4xNik7XG59XG4iLCIvKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXVpXFx0aGVtZVxcY29tcG9uZW50c1xcaWNvblxcaWNvbi5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2suY2staWNvbiB7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8qIEQ6XFxQcm9qZWN0XFxzaXJpdXNcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdGhlbWUtbGFya1xcdGhlbWVcXGNrZWRpdG9yNS11aVxcY29tcG9uZW50c1xcaWNvblxcaWNvbi5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2staWNvbi1zaXplOiBjYWxjKHZhcigtLWNrLWxpbmUtaGVpZ2h0LWJhc2UpICogdmFyKC0tY2stZm9udC1zaXplLW5vcm1hbCkpO1xufVxuXG4uY2suY2staWNvbiB7XG5cdHdpZHRoOiB2YXIoLS1jay1pY29uLXNpemUpO1xuXHRoZWlnaHQ6IHZhcigtLWNrLWljb24tc2l6ZSk7XG5cblx0LyogTXVsdGlwbGllZCBieSB0aGUgaGVpZ2h0IG9mIHRoZSBsaW5lIGluIFwicHhcIiBzaG91bGQgZ2l2ZSBTVkcgXCJ2aWV3cG9ydFwiIGRpbWVuc2lvbnMgKi9cblx0Zm9udC1zaXplOiAuODMzMzM1MDY5NGVtO1xuXG5cdGNvbG9yOiBpbmhlcml0O1xuXG5cdC8qIEluaGVyaXQgY3Vyc29yIHN0eWxlICgjNSkuICovXG5cdGN1cnNvcjogaW5oZXJpdDtcblxuXHQvKiBUaGlzIHdpbGwgcHJldmVudCBibHVycnkgaWNvbnMgb24gRmlyZWZveC4gU2VlICMzNDAuICovXG5cdHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm1cbn1cblxuLmNrLmNrLWljb24gKiB7XG5cdFx0LyogSW5oZXJpdCBjdXJzb3Igc3R5bGUgKCM1KS4gKi9cblx0XHRjdXJzb3I6IGluaGVyaXQ7XG5cblx0XHQvKiBBbGxvd3MgZHluYW1pYyBjb2xvcmluZyBvZiB0aGUgaWNvbnMuICovXG5cdFx0Y29sb3I6IGluaGVyaXRcblx0fVxuXG4uY2suY2staWNvbiAqOm5vdChbZmlsbF0pIHtcblx0XHRcdC8qIE5lZWRlZCBieSBGRi4gKi9cblx0XHRcdGZpbGw6IGN1cnJlbnRDb2xvcjtcblx0XHR9XG4iLCIvKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXVpXFx0aGVtZVxcY29tcG9uZW50c1xccGFuZWxcXGJhbGxvb25wYW5lbC5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG46cm9vdCB7XG5cdC8qIE1ha2Ugc3VyZSB0aGUgYmFsbG9vbiBhcnJvdyBkb2VzIG5vdCBmbG9hdCBvdmVyIGl0cyBjaGlsZHJlbi4gKi9cblx0LS1jay1iYWxsb29uLXBhbmVsLWFycm93LXotaW5kZXg6IGNhbGModmFyKC0tY2stei1kZWZhdWx0KSAtIDMpO1xufVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbCB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHR6LWluZGV4OiB2YXIoLS1jay16LW1vZGFsKVxufVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX3dpdGgtYXJyb3c6OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX3dpdGgtYXJyb3c6OmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX3dpdGgtYXJyb3c6OmJlZm9yZSB7XG5cdFx0XHR6LWluZGV4OiB2YXIoLS1jay1iYWxsb29uLXBhbmVsLWFycm93LXotaW5kZXgpO1xuXHRcdH1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF93aXRoLWFycm93OjphZnRlciB7XG5cdFx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLWJhbGxvb24tcGFuZWwtYXJyb3ctei1pbmRleCkgKyAxKTtcblx0XHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X25cIl06OmJlZm9yZSB7XG5cdFx0XHR6LWluZGV4OiB2YXIoLS1jay1iYWxsb29uLXBhbmVsLWFycm93LXotaW5kZXgpO1xuXHRcdH1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfblwiXTo6YWZ0ZXIge1xuXHRcdFx0ei1pbmRleDogY2FsYyh2YXIoLS1jay1iYWxsb29uLXBhbmVsLWFycm93LXotaW5kZXgpICsgMSk7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19zXCJdOjpiZWZvcmUge1xuXHRcdFx0ei1pbmRleDogdmFyKC0tY2stYmFsbG9vbi1wYW5lbC1hcnJvdy16LWluZGV4KTtcblx0XHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X3NcIl06OmFmdGVyIHtcblx0XHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stYmFsbG9vbi1wYW5lbC1hcnJvdy16LWluZGV4KSArIDEpO1xuXHRcdH1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF92aXNpYmxlIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG4vKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtdWlcXGNvbXBvbmVudHNcXHBhbmVsXFxiYWxsb29ucGFuZWwuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG5cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stYmFsbG9vbi1hcnJvdy1vZmZzZXQ6IDJweDtcblx0LS1jay1iYWxsb29uLWFycm93LWhlaWdodDogMTBweDtcblx0LS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGg6IDhweDtcblx0LS1jay1iYWxsb29uLWFycm93LWRyb3Atc2hhZG93OiAwIDJweCAycHggdmFyKC0tY2stY29sb3Itc2hhZG93LWRyb3ApO1xufVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbCB7XG5cdGJvcmRlci1yYWRpdXM6IDBcbn1cblxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stYmFsbG9vbi1wYW5lbCwgLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKVxufVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbCB7XG5cdGJveC1zaGFkb3c6IHZhcigtLWNrLWRyb3Atc2hhZG93KSwgMCAwO1xuXG5cdG1pbi1oZWlnaHQ6IDE1cHg7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcilcbn1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF93aXRoLWFycm93OjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF93aXRoLWFycm93OjphZnRlciB7XG5cdFx0XHR3aWR0aDogMDtcblx0XHRcdGhlaWdodDogMDtcblx0XHRcdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19uXCJdOjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfblwiXTo6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLXdpZHRoOiAwIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkgdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCk7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19uXCJdOjpiZWZvcmUge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1wYW5lbC1ib3JkZXIpIHRyYW5zcGFyZW50O1xuXHRcdH1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWxbY2xhc3MqPVwiYXJyb3dfblwiXTo6YWZ0ZXIge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB2YXIoLS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kKSB0cmFuc3BhcmVudDtcblx0XHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLWJhbGxvb24tYXJyb3ctb2Zmc2V0KTtcblx0XHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X3NcIl06OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbFtjbGFzcyo9XCJhcnJvd19zXCJdOjphZnRlciB7XG5cdFx0XHRib3JkZXItd2lkdGg6IHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpIDAgdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKTtcblx0XHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X3NcIl06OmJlZm9yZSB7XG5cdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLXBhbmVsLWJvcmRlcikgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRmaWx0ZXI6IGRyb3Atc2hhZG93KHZhcigtLWNrLWJhbGxvb24tYXJyb3ctZHJvcC1zaGFkb3cpKTtcblx0XHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsW2NsYXNzKj1cImFycm93X3NcIl06OmFmdGVyIHtcblx0XHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItcGFuZWwtYmFja2dyb3VuZCkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiB2YXIoLS1jay1iYWxsb29uLWFycm93LW9mZnNldCk7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X246OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X246OmFmdGVyIHtcblx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHR0b3A6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19udzo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbnc6OmFmdGVyIHtcblx0XHRcdGxlZnQ6IGNhbGMoMiAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0dG9wOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbmU6OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X25lOjphZnRlciB7XG5cdFx0XHRyaWdodDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHR0b3A6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cblxuLmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zOjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zOjphZnRlciB7XG5cdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0Ym90dG9tOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc3c6OmJlZm9yZSxcblx0XHQuY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3N3OjphZnRlciB7XG5cdFx0XHRsZWZ0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdGJvdHRvbTogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3NlOjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zZTo6YWZ0ZXIge1xuXHRcdFx0cmlnaHQ6IGNhbGMoMiAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0Ym90dG9tOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc21lOjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zbWU6OmFmdGVyIHtcblx0XHRcdHJpZ2h0OiAyNSU7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoMiAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGFsZi13aWR0aCkpO1xuXHRcdFx0Ym90dG9tOiBjYWxjKC0xICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oZWlnaHQpKTtcblx0XHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc213OjpiZWZvcmUsXG5cdFx0LmNrLmNrLWJhbGxvb24tcGFuZWwuY2stYmFsbG9vbi1wYW5lbF9hcnJvd19zbXc6OmFmdGVyIHtcblx0XHRcdGxlZnQ6IDI1JTtcblx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdGJvdHRvbTogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X25tZTo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbm1lOjphZnRlciB7XG5cdFx0XHRyaWdodDogMjUlO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKDIgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhhbGYtd2lkdGgpKTtcblx0XHRcdHRvcDogY2FsYygtMSAqIHZhcigtLWNrLWJhbGxvb24tYXJyb3ctaGVpZ2h0KSk7XG5cdFx0fVxuXG4uY2suY2stYmFsbG9vbi1wYW5lbC5jay1iYWxsb29uLXBhbmVsX2Fycm93X25tdzo6YmVmb3JlLFxuXHRcdC5jay5jay1iYWxsb29uLXBhbmVsLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfbm13OjphZnRlciB7XG5cdFx0XHRsZWZ0OiAyNSU7XG5cdFx0XHRtYXJnaW4tbGVmdDogY2FsYygyICogdmFyKC0tY2stYmFsbG9vbi1hcnJvdy1oYWxmLXdpZHRoKSk7XG5cdFx0XHR0b3A6IGNhbGMoLTEgKiB2YXIoLS1jay1iYWxsb29uLWFycm93LWhlaWdodCkpO1xuXHRcdH1cbiIsIi8qIEQ6XFxQcm9qZWN0XFxzaXJpdXNcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtd2lkZ2V0XFx0aGVtZVxcd2lkZ2V0dHlwZWFyb3VuZC5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2sgLmNrLXdpZGdldCB7XG5cdC8qXG5cdCAqIFN0eWxlcyBvZiB0aGUgdHlwZSBhcm91bmQgYnV0dG9uc1xuXHQgKi9cbn1cblxuLmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1kZWZhdWx0KVxuXHR9XG5cbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24gc3ZnIHtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHRvcDogNTAlO1xuXHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0ei1pbmRleDogY2FsYyh2YXIoLS1jay16LWRlZmF1bHQpICsgMik7XG5cdFx0fVxuXG4uY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbl9iZWZvcmUge1xuXHRcdFx0LyogUGxhY2UgaXQgaW4gdGhlIG1pZGRsZSBvZiB0aGUgb3V0bGluZSAqL1xuXHRcdFx0dG9wOiBjYWxjKC0wLjUgKiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpKTtcblx0XHRcdGxlZnQ6IG1pbigxMCUsIDMwcHgpO1xuXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdFx0fVxuXG4uY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbl9hZnRlciB7XG5cdFx0XHQvKiBQbGFjZSBpdCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBvdXRsaW5lICovXG5cdFx0XHRib3R0b206IGNhbGMoLTAuNSAqIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykpO1xuXHRcdFx0cmlnaHQ6IG1pbigxMCUsIDMwcHgpO1xuXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTAlKTtcblx0XHR9XG5cbi5jayAuY2std2lkZ2V0IHtcblxuXHQvKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBidXR0b25zIHdoZW46XG5cdCAqIC0gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCxcblx0ICogLSBvciB0aGUgYnV0dG9uIGlzIGJlaW5nIGhvdmVyZWQgKHJlZ2FyZGxlc3Mgb2YgdGhlIHdpZGdldCBzdGF0ZSkuXG5cdCAqL1xufVxuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246OmFmdGVyLCAuY2sgLmNrLXdpZGdldCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpob3Zlcjo6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAxcHg7XG5cdFx0XHRsZWZ0OiAxcHg7XG5cdFx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLXotZGVmYXVsdCkgKyAxKTtcblx0XHR9XG5cbi5jayAuY2std2lkZ2V0IHtcblxuXHQvKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBob3Jpem9udGFsIFwiZmFrZSBjYXJldFwiIHdoaWNoIGlzIGRpc3BsYXllZCB3aGVuIHRoZSB1c2VyIG5hdmlnYXRlcyB1c2luZyB0aGUga2V5Ym9hcmQuXG5cdCAqL1xufVxuXG4uY2sgLmNrLXdpZGdldCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2Zha2UtY2FyZXQge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IDA7XG5cdFx0cmlnaHQ6IDA7XG5cdH1cblxuLmNrIC5jay13aWRnZXQge1xuXG5cdC8qXG5cdCAqIFdoZW4gdGhlIHdpZGdldCBpcyBob3ZlcmVkIHRoZSBcImZha2UgY2FyZXRcIiB3b3VsZCBub3JtYWxseSBiZSBuYXJyb3dlciB0aGFuIHRoZVxuXHQgKiBleHRyYSBvdXRsaW5lIGRpc3BsYXllZCBhcm91bmQgdGhlIHdpZGdldC4gTGV0J3MgZXh0ZW5kIHRoZSBcImZha2UgY2FyZXRcIiB0byBtYXRjaFxuXHQgKiB0aGUgZnVsbCB3aWR0aCBvZiB0aGUgd2lkZ2V0LlxuXHQgKi9cbn1cblxuLmNrIC5jay13aWRnZXQ6aG92ZXIgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19mYWtlLWNhcmV0IHtcblx0XHRsZWZ0OiBjYWxjKCAtMSAqIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykgKTtcblx0XHRyaWdodDogY2FsYyggLTEgKiB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpICk7XG5cdH1cblxuLmNrIC5jay13aWRnZXQge1xuXG5cdC8qXG5cdCAqIFN0eWxlcyBmb3IgdGhlIGhvcml6b250YWwgXCJmYWtlIGNhcmV0XCIgd2hlbiBpdCBzaG91bGQgYmUgZGlzcGxheWVkIGJlZm9yZSB0aGUgd2lkZ2V0IChiYWNrd2FyZCBrZXlib2FyZCBuYXZpZ2F0aW9uKS5cblx0ICovXG59XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYmVmb3JlID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fZmFrZS1jYXJldCB7XG5cdFx0dG9wOiBjYWxjKCAtMSAqIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykgLSAxcHggKTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxuXG4uY2sgLmNrLXdpZGdldCB7XG5cblx0Lypcblx0ICogU3R5bGVzIGZvciB0aGUgaG9yaXpvbnRhbCBcImZha2UgY2FyZXRcIiB3aGVuIGl0IHNob3VsZCBiZSBkaXNwbGF5ZWQgYWZ0ZXIgdGhlIHdpZGdldCAoZm9yd2FyZCBrZXlib2FyZCBuYXZpZ2F0aW9uKS5cblx0ICovXG59XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYWZ0ZXIgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19mYWtlLWNhcmV0IHtcblx0XHRib3R0b206IGNhbGMoIC0xICogdmFyKC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzKSAtIDFweCApO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cbi8qXG4gKiBJbnRlZ3JhdGlvbiB3aXRoIHRoZSByZWFkLW9ubHkgbW9kZSBvZiB0aGUgZWRpdG9yLlxuICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLXJlYWQtb25seSAuY2std2lkZ2V0X190eXBlLWFyb3VuZCB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qXG4gKiBJbnRlZ3JhdGlvbiB3aXRoIHRoZSByZXN0cmljdGVkIGVkaXRpbmcgbW9kZSAoZmVhdHVyZSkgb2YgdGhlIGVkaXRvci5cbiAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1yZXN0cmljdGVkLWVkaXRpbmdfbW9kZV9yZXN0cmljdGVkIC5jay13aWRnZXRfX3R5cGUtYXJvdW5kIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLypcbiAqIEludGVncmF0aW9uIHdpdGggdGhlICNpc0VuYWJsZWQgcHJvcGVydHkgb2YgdGhlIFdpZGdldFR5cGVBcm91bmQgcGx1Z2luLlxuICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfZGlzYWJsZWQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmQge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtd2lkZ2V0XFx3aWRnZXR0eXBlYXJvdW5kLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbjpyb290IHtcblx0LS1jay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNpemU6IDIwcHg7XG5cdC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1hY3RpdmU6IHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1ob3ZlcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWhvdmVyLWJvcmRlcik7XG5cdC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1ibHVycmVkLWVkaXRhYmxlOiB2YXIoLS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXIpO1xuXHQtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tcmFkYXItc3RhcnQtYWxwaGE6IDA7XG5cdC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1yYWRhci1lbmQtYWxwaGE6IC4zO1xuXHQtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24taWNvbjogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcbn1cblxuLmNrIC5jay13aWRnZXQge1xuXHQvKlxuXHQgKiBTdHlsZXMgb2YgdGhlIHR5cGUgYXJvdW5kIGJ1dHRvbnNcblx0ICovXG59XG5cbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdHdpZHRoOiB2YXIoLS1jay13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLXNpemUpO1xuXHRcdGhlaWdodDogdmFyKC0tY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zaXplKTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uKTtcblx0XHRib3JkZXItcmFkaXVzOiAxMDBweDtcblx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKSwgYmFja2dyb3VuZCB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSk7XG5cblx0XHRvcGFjaXR5OiAwO1xuXG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmVcblx0fVxuXG4uY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uIHN2ZyB7XG5cdFx0XHR3aWR0aDogMTBweDtcblx0XHRcdGhlaWdodDogOHB4O1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwtNTAlKTtcblx0XHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNXMgZWFzZTtcblx0XHRcdG1hcmdpbi10b3A6IDFweFxuXHRcdH1cblxuLmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiBzdmcgKiB7XG5cdFx0XHRcdHN0cm9rZS1kYXNoYXJyYXk6IDEwO1xuXHRcdFx0XHRzdHJva2UtZGFzaG9mZnNldDogMDtcblxuXHRcdFx0XHRmaWxsOiBub25lO1xuXHRcdFx0XHRzdHJva2U6IHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24taWNvbik7XG5cdFx0XHRcdHN0cm9rZS13aWR0aDogMS41cHg7XG5cdFx0XHRcdHN0cm9rZS1saW5lY2FwOiByb3VuZDtcblx0XHRcdFx0c3Ryb2tlLWxpbmVqb2luOiByb3VuZDtcblx0XHRcdH1cblxuLmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiBzdmcgbGluZSB7XG5cdFx0XHRcdHN0cm9rZS1kYXNoYXJyYXk6IDc7XG5cdFx0XHR9XG5cbi5jayAuY2std2lkZ2V0IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246aG92ZXIge1xuXHRcdFx0Lypcblx0XHRcdCAqIERpc3BsYXkgdGhlIFwic29uYXJcIiBhcm91bmQgdGhlIGJ1dHRvbiB3aGVuIGhvdmVyZWQuXG5cdFx0XHQgKi9cblx0XHRcdGFuaW1hdGlvbjogY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zb25hciAxcyBlYXNlIGluZmluaXRlXG5cblx0XHRcdC8qXG5cdFx0XHQgKiBBbmltYXRlIGFjdGl2ZSBidXR0b24ncyBpY29uLlxuXHRcdFx0ICovXG5cdFx0fVxuXG4uY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uOmhvdmVyIHN2ZyBwb2x5bGluZSB7XG5cdFx0XHRcdFx0YW5pbWF0aW9uOiBjay13aWRnZXQtdHlwZS1hcm91bmQtYXJyb3ctZGFzaCAycyBsaW5lYXI7XG5cdFx0XHRcdH1cblxuLmNrIC5jay13aWRnZXQgLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpob3ZlciBzdmcgbGluZSB7XG5cdFx0XHRcdFx0YW5pbWF0aW9uOiBjay13aWRnZXQtdHlwZS1hcm91bmQtYXJyb3ctdGlwLWRhc2ggMnMgbGluZWFyO1xuXHRcdFx0XHR9XG5cbi5jayAuY2std2lkZ2V0IHtcblxuXHQvKlxuXHQgKiBTaG93IHR5cGUgYXJvdW5kIGJ1dHRvbnMgd2hlbiB0aGUgd2lkZ2V0IGdldHMgc2VsZWN0ZWQgb3IgYmVpbmcgaG92ZXJlZC5cblx0ICovXG59XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiwgLmNrIC5jay13aWRnZXQ6aG92ZXIgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuXHRcdH1cblxuLmNrIC5jay13aWRnZXQge1xuXG5cdC8qXG5cdCAqIFN0eWxlcyBmb3IgdGhlIGJ1dHRvbnMgd2hlbiB0aGUgd2lkZ2V0IGlzIE5PVCBzZWxlY3RlZCAoYnV0IHRoZSBidXR0b25zIGFyZSB2aXNpYmxlXG5cdCAqIGFuZCBzdGlsbCBjYW4gYmUgaG92ZXJlZCkuXG5cdCAqL1xufVxuXG4uY2sgLmNrLXdpZGdldDpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCkgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24ge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24taG92ZXIpO1xuXHR9XG5cbi5jayAuY2std2lkZ2V0IHtcblxuXHQvKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBidXR0b25zIHdoZW46XG5cdCAqIC0gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCxcblx0ICogLSBvciB0aGUgYnV0dG9uIGlzIGJlaW5nIGhvdmVyZWQgKHJlZ2FyZGxlc3Mgb2YgdGhlIHdpZGdldCBzdGF0ZSkuXG5cdCAqL1xufVxuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b24sXG5cdC5jayAuY2std2lkZ2V0ID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWFjdGl2ZSlcblx0fVxuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246OmFmdGVyLCAuY2sgLmNrLXdpZGdldCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbjpob3Zlcjo6YWZ0ZXIge1xuXHRcdFx0d2lkdGg6IGNhbGModmFyKC0tY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zaXplKSAtIDJweCk7XG5cdFx0XHRoZWlnaHQ6IGNhbGModmFyKC0tY2std2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1zaXplKSAtIDJweCk7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAxMDBweDtcblx0XHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIGhzbGEoMCwwJSwxMDAlLDApIDAlLCBoc2xhKDAsMCUsMTAwJSwuMykgMTAwJSk7XG5cdFx0fVxuXG4uY2sgLmNrLXdpZGdldCB7XG5cblx0Lypcblx0ICogU3R5bGVzIGZvciB0aGUgXCJiZWZvcmVcIiBidXR0b24gd2hlbiB0aGUgd2lkZ2V0IGhhcyBhIHNlbGVjdGlvbiBoYW5kbGUuIEJlY2F1c2Ugc29tZSBzcGFjZVxuXHQgKiBpcyBjb25zdW1lZCBieSB0aGUgaGFuZGxlLCB0aGUgYnV0dG9uIG11c3QgYmUgbW92ZWQgc2xpZ2h0bHkgdG8gdGhlIHJpZ2h0IHRvIGxldCBpdCBicmVhdGhlLlxuXHQgKi9cbn1cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbl9iZWZvcmUge1xuXHRcdG1hcmdpbi1sZWZ0OiAyMHB4O1xuXHR9XG5cbi5jayAuY2std2lkZ2V0IHtcblxuXHQvKlxuXHQgKiBTdHlsZXMgZm9yIHRoZSBob3Jpem9udGFsIFwiZmFrZSBjYXJldFwiIHdoaWNoIGlzIGRpc3BsYXllZCB3aGVuIHRoZSB1c2VyIG5hdmlnYXRlcyB1c2luZyB0aGUga2V5Ym9hcmQuXG5cdCAqL1xufVxuXG4uY2sgLmNrLXdpZGdldCAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fZmFrZS1jYXJldCB7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0aGVpZ2h0OiAxcHg7XG5cdFx0YW5pbWF0aW9uOiBjay13aWRnZXQtdHlwZS1hcm91bmQtZmFrZS1jYXJldC1wdWxzZSBsaW5lYXIgMXMgaW5maW5pdGUgbm9ybWFsIGZvcndhcmRzO1xuXG5cdFx0Lypcblx0XHQgKiBUaGUgc2VtaS10cmFuc3BhcmVudC1vdXRsaW5lK2JhY2tncm91bmQgY29tYm8gaW1wcm92ZXMgdGhlIGNvbnRyYXN0XG5cdFx0ICogd2hlbiB0aGUgYmFja2dyb3VuZCB1bmRlcm5lYXRoIHRoZSBmYWtlIGNhcmV0IGlzIGRhcmsuXG5cdFx0ICovXG5cdFx0b3V0bGluZTogc29saWQgMXB4IGhzbGEoMCwgMCUsIDEwMCUsIC41KTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHR9XG5cbi5jayAuY2std2lkZ2V0IHtcblxuXHQvKlxuXHQgKiBTdHlsZXMgb2YgdGhlIHdpZGdldCB3aGVuIHRoZSBcImZha2UgY2FyZXRcIiBpcyBibGlua2luZyAoZS5nLiB1cG9uIGtleWJvYXJkIG5hdmlnYXRpb24pLlxuXHQgKiBEZXNwaXRlIHRoZSB3aWRnZXQgYmVpbmcgcGh5c2ljYWxseSBzZWxlY3RlZCBpbiB0aGUgbW9kZWwsIGl0cyBvdXRsaW5lIHNob3VsZCBkaXNhcHBlYXIuXG5cdCAqL1xufVxuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9iZWZvcmUsXG5cdFx0LmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkLmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYWZ0ZXIge1xuXHRcdFx0b3V0bGluZS1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0fVxuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2JlZm9yZSxcblx0LmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9hZnRlciB7XG5cdFx0Lypcblx0XHQgKiBXaGVuIHRoZSBcImZha2UgY2FyZXRcIiBpcyB2aXNpYmxlIHdlIHNpbXVsYXRlIHRoYXQgdGhlIHdpZGdldCBpcyBub3Qgc2VsZWN0ZWRcblx0XHQgKiAoZGVzcGl0ZSBiZWluZyBwaHlzaWNhbGx5IHNlbGVjdGVkKSwgc28gdGhlIG91dGxpbmUgY29sb3Igc2hvdWxkIGJlIGZvciB0aGVcblx0XHQgKiB1bnNlbGVjdGVkIHdpZGdldC5cblx0XHQgKi9cblx0fVxuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2JlZm9yZS5jay13aWRnZXRfc2VsZWN0ZWQ6aG92ZXIsIC5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYWZ0ZXIuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyIHtcblx0XHRcdG91dGxpbmUtY29sb3I6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ob3Zlci1ib3JkZXIpO1xuXHRcdH1cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9iZWZvcmUsXG5cdC5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYWZ0ZXIge1xuXG5cdFx0Lypcblx0XHQgKiBTdHlsZXMgb2YgdGhlIHR5cGUgYXJvdW5kIGJ1dHRvbnMgd2hlbiB0aGUgXCJmYWtlIGNhcmV0XCIgaXMgYmxpbmtpbmcgKGUuZy4gdXBvbiBrZXlib2FyZCBuYXZpZ2F0aW9uKS5cblx0XHQgKiBJbiB0aGlzIHN0YXRlLCB0aGUgdHlwZSBhcm91bmQgYnV0dG9ucyB3b3VsZCBjb2xsaWRlIHdpdGggdGhlIGZha2UgY2FyZXRzIHNvIHRoZXkgc2hvdWxkIGRpc2FwcGVhci5cblx0XHQgKi9cblx0fVxuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2JlZm9yZSA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiwgLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9hZnRlciA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiB7XG5cdFx0XHRvcGFjaXR5OiAwO1xuXHRcdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0fVxuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2JlZm9yZSxcblx0LmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9hZnRlciB7XG5cblx0XHQvKlxuXHRcdCAqIEZha2UgaG9yaXpvbnRhbCBjYXJldCBpbnRlZ3JhdGlvbiB3aXRoIHRoZSBzZWxlY3Rpb24gaGFuZGxlLiBXaGVuIHRoZSBjYXJldCBpcyB2aXNpYmxlLCBzaW1wbHlcblx0XHQgKiBoaWRlIHRoZSBoYW5kbGUgYmVjYXVzZSBpdCBpbnRlcnNlY3RzIHdpdGggdGhlIGNhcmV0IChhbmQgZG9lcyBub3QgbWFrZSBtdWNoIHNlbnNlIGFueXdheSkuXG5cdFx0ICovXG5cdH1cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9iZWZvcmUuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZS5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlLCAuY2sgLmNrLXdpZGdldC5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2JlZm9yZS5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlLmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciA+IC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUsIC5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYWZ0ZXIuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZS5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlLCAuY2sgLmNrLXdpZGdldC5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2FmdGVyLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyID4gLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0XHRcdFx0b3BhY2l0eTogMFxuXHRcdFx0XHR9XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF90eXBlLWFyb3VuZF9zaG93LWZha2UtY2FyZXRfYmVmb3JlLFxuXHQuY2sgLmNrLXdpZGdldC5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2FmdGVyIHtcblxuXHRcdC8qXG5cdFx0ICogRmFrZSBob3Jpem9udGFsIGNhcmV0IGludGVncmF0aW9uIHdpdGggdGhlIHJlc2l6ZSBVSS4gV2hlbiB0aGUgY2FyZXQgaXMgdmlzaWJsZSwgc2ltcGx5XG5cdFx0ICogaGlkZSB0aGUgcmVzaXplIFVJIGJlY2F1c2UgaXQgY3JlYXRlcyB0b28gbXVjaCBub2lzZS4gSXQgY2FuIGJlIHZpc2libGUgd2hlbiB0aGUgdXNlclxuXHRcdCAqIGhvdmVycyB0aGUgd2lkZ2V0LCB0aG91Z2guXG5cdFx0ICovXG5cdH1cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3R5cGUtYXJvdW5kX3Nob3ctZmFrZS1jYXJldF9iZWZvcmUuY2std2lkZ2V0X3NlbGVjdGVkLmNrLXdpZGdldF93aXRoLXJlc2l6ZXIgPiAuY2std2lkZ2V0X19yZXNpemVyLCAuY2sgLmNrLXdpZGdldC5jay13aWRnZXRfdHlwZS1hcm91bmRfc2hvdy1mYWtlLWNhcmV0X2FmdGVyLmNrLXdpZGdldF9zZWxlY3RlZC5jay13aWRnZXRfd2l0aC1yZXNpemVyID4gLmNrLXdpZGdldF9fcmVzaXplciB7XG5cdFx0XHRvcGFjaXR5OiAwXG5cdFx0fVxuXG4vKlxuICogU3R5bGVzIGZvciB0aGUgXCJiZWZvcmVcIiBidXR0b24gd2hlbiB0aGUgd2lkZ2V0IGhhcyBhIHNlbGVjdGlvbiBoYW5kbGUgaW4gYW4gUlRMIGVudmlyb25tZW50LlxuICogVGhlIHNlbGVjdGlvbiBoYW5kbGVyIGlzIGFsaWduZWQgdG8gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIHdpZGdldCBzbyB0aGVyZSBpcyBubyBuZWVkIHRvIGNyZWF0ZVxuICogYWRkaXRpb25hbCBzcGFjZSBmb3IgaXQgbmV4dCB0byB0aGUgXCJiZWZvcmVcIiBidXR0b24uXG4gKi9cblxuLmNrW2Rpcj1cInJ0bFwiXSAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fdHlwZS1hcm91bmQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZF9fYnV0dG9uX2JlZm9yZSB7XG5cdG1hcmdpbi1sZWZ0OiAwO1xuXHRtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG5cbi8qXG4gKiBIaWRlIHR5cGUgYXJvdW5kIGJ1dHRvbnMgd2hlbiB0aGUgd2lkZ2V0IGlzIHNlbGVjdGVkIGFzIGEgY2hpbGQgb2YgYSBzZWxlY3RlZFxuICogbmVzdGVkIGVkaXRhYmxlIChlLmcuIG11bGl0LWNlbGwgdGFibGUgc2VsZWN0aW9uKS5cbiAqXG4gKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNzI2My5cbiAqL1xuXG4uY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUuY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiwgLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQgLmNrLXdpZGdldDpob3ZlciA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kID4gLmNrLXdpZGdldF9fdHlwZS1hcm91bmRfX2J1dHRvbiB7XG5cdFx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0fVxuXG4vKlxuICogU3R5bGVzIGZvciB0aGUgYnV0dG9ucyB3aGVuIHRoZSB3aWRnZXQgaXMgc2VsZWN0ZWQgYnV0IHRoZSB1c2VyIGNsaWNrZWQgb3V0c2lkZSBvZiB0aGUgZWRpdG9yIChibHVycmVkIHRoZSBlZGl0b3IpLlxuICovXG5cbi5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWJsdXJyZWQgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246bm90KDpob3Zlcikge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci13aWRnZXQtdHlwZS1hcm91bmQtYnV0dG9uLWJsdXJyZWQtZWRpdGFibGUpXG59XG5cbi5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWJsdXJyZWQgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQgPiAuY2std2lkZ2V0X190eXBlLWFyb3VuZCA+IC5jay13aWRnZXRfX3R5cGUtYXJvdW5kX19idXR0b246bm90KDpob3Zlcikgc3ZnICoge1xuXHRcdHN0cm9rZTogaHNsKDAsMCUsNjAlKTtcblx0fVxuXG5Aa2V5ZnJhbWVzIGNrLXdpZGdldC10eXBlLWFyb3VuZC1hcnJvdy1kYXNoIHtcblx0MCUge1xuXHRcdHN0cm9rZS1kYXNob2Zmc2V0OiAxMDtcblx0fVxuXHQyMCUsIDEwMCUge1xuXHRcdHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgY2std2lkZ2V0LXR5cGUtYXJvdW5kLWFycm93LXRpcC1kYXNoIHtcblx0MCUsIDIwJSB7XG5cdFx0c3Ryb2tlLWRhc2hvZmZzZXQ6IDc7XG5cdH1cblx0NDAlLCAxMDAlIHtcblx0XHRzdHJva2UtZGFzaG9mZnNldDogMDtcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGNrLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tc29uYXIge1xuXHQwJSB7XG5cdFx0Ym94LXNoYWRvdzogMCAwIDAgMCBoc2xhKHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlci1jb29yZGluYXRlcyksIHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tcmFkYXItc3RhcnQtYWxwaGEpKTtcblx0fVxuXHQ1MCUge1xuXHRcdGJveC1zaGFkb3c6IDAgMCAwIDVweCBoc2xhKHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlci1jb29yZGluYXRlcyksIHZhcigtLWNrLWNvbG9yLXdpZGdldC10eXBlLWFyb3VuZC1idXR0b24tcmFkYXItZW5kLWFscGhhKSk7XG5cdH1cblx0MTAwJSB7XG5cdFx0Ym94LXNoYWRvdzogMCAwIDAgNXB4IGhzbGEodmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyLWNvb3JkaW5hdGVzKSwgdmFyKC0tY2stY29sb3Itd2lkZ2V0LXR5cGUtYXJvdW5kLWJ1dHRvbi1yYWRhci1zdGFydC1hbHBoYSkpO1xuXHR9XG59XG5cbkBrZXlmcmFtZXMgY2std2lkZ2V0LXR5cGUtYXJvdW5kLWZha2UtY2FyZXQtcHVsc2Uge1xuXHQwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxuXHQ0OSUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblx0NTAlIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG5cdDk5JSB7XG5cdFx0b3BhY2l0eTogMDtcblx0fVxuXHQxMDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG4iLCIvKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXdpZGdldFxcdGhlbWVcXHdpZGdldC5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stY29sb3ItcmVzaXplcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0LS1jay1jb2xvci1yZXNpemVyLXRvb2x0aXAtYmFja2dyb3VuZDogaHNsKDAsIDAlLCAxNSUpO1xuXHQtLWNrLWNvbG9yLXJlc2l6ZXItdG9vbHRpcC10ZXh0OiBoc2woMCwgMCUsIDk1JSk7XG5cblx0LS1jay1yZXNpemVyLWJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHQtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQ6IDEwcHg7XG59XG5cbi5jayAuY2std2lkZ2V0IHtcblx0LyogVGhpcyBpcyBuZWNjZXNzYXJ5IGZvciB0eXBlIGFyb3VuZCBVSSB0byBiZSBwb3NpdGlvbmVkIHByb3Blcmx5LiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUge1xuXHQvKiBNYWtlIHRoZSB3aWRnZXQgd3JhcHBlciBhIHJlbGF0aXZlIHBvc2l0aW9uaW5nIGNvbnRhaW5lciBmb3IgdGhlIGRyYWcgaGFuZGxlLiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmVcbn1cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGVcblx0fVxuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUgLmNrLWljb24ge1xuXHRcdFx0LyogTWFrZSBzdXJlIHRoZSBpY29uIGluIG5vdCBhIHN1YmplY3QgdG8gZm9udC1zaXplIG9yIGxpbmUtaGVpZ2h0IHRvIGF2b2lkXG5cdFx0XHR1bm5lY2Vzc2FyeSBzcGFjaW5nIGFyb3VuZCBpdC4gKi9cblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSB7XG5cblx0LyogU2hvdyB0aGUgc2VsZWN0aW9uIGhhbmRsZSBvbiBtb3VzZSBob3ZlciBvdmVyIHRoZSB3aWRnZXQuICovXG59XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGU6aG92ZXIgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0XHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHRcdH1cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSB7XG5cblx0LyogU2hvdyB0aGUgc2VsZWN0aW9uIGhhbmRsZSB3aGVuIHRoZSB3aWRnZXQgaXMgc2VsZWN0ZWQuICovXG59XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUuY2std2lkZ2V0X3NlbGVjdGVkIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdH1cblxuLmNrIC5jay1zaXplLXZpZXcge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1yZXNpemVyLXRvb2x0aXAtYmFja2dyb3VuZCk7XG5cdGNvbG9yOiB2YXIoLS1jay1jb2xvci1yZXNpemVyLXRvb2x0aXAtdGV4dCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXJlc2l6ZXItdG9vbHRpcC10ZXh0KTtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stcmVzaXplci1ib3JkZXItcmFkaXVzKTtcblx0Zm9udC1zaXplOiB2YXIoLS1jay1mb250LXNpemUtdGlueSk7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKVxufVxuXG4uY2sgLmNrLXNpemUtdmlldy5jay1vcmllbnRhdGlvbi10b3AtbGVmdCxcblx0LmNrIC5jay1zaXplLXZpZXcuY2stb3JpZW50YXRpb24tdG9wLXJpZ2h0LFxuXHQuY2sgLmNrLXNpemUtdmlldy5jay1vcmllbnRhdGlvbi1ib3R0b20tcmlnaHQsXG5cdC5jayAuY2stc2l6ZS12aWV3LmNrLW9yaWVudGF0aW9uLWJvdHRvbS1sZWZ0IHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdH1cblxuLmNrIC5jay1zaXplLXZpZXcuY2stb3JpZW50YXRpb24tdG9wLWxlZnQge1xuXHRcdHRvcDogdmFyKC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldCk7XG5cdFx0bGVmdDogdmFyKC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldCk7XG5cdH1cblxuLmNrIC5jay1zaXplLXZpZXcuY2stb3JpZW50YXRpb24tdG9wLXJpZ2h0IHtcblx0XHR0b3A6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHRcdHJpZ2h0OiB2YXIoLS1jay1yZXNpemVyLXRvb2x0aXAtb2Zmc2V0KTtcblx0fVxuXG4uY2sgLmNrLXNpemUtdmlldy5jay1vcmllbnRhdGlvbi1ib3R0b20tcmlnaHQge1xuXHRcdGJvdHRvbTogdmFyKC0tY2stcmVzaXplci10b29sdGlwLW9mZnNldCk7XG5cdFx0cmlnaHQ6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHR9XG5cbi5jayAuY2stc2l6ZS12aWV3LmNrLW9yaWVudGF0aW9uLWJvdHRvbS1sZWZ0IHtcblx0XHRib3R0b206IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHRcdGxlZnQ6IHZhcigtLWNrLXJlc2l6ZXItdG9vbHRpcC1vZmZzZXQpO1xuXHR9XG5cbi8qIEQ6XFxQcm9qZWN0XFxzaXJpdXNcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdGhlbWUtbGFya1xcdGhlbWVcXGNrZWRpdG9yNS13aWRnZXRcXHdpZGdldC5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogQSB2aXN1YWwgc3R5bGUgb2YgZm9jdXNlZCBlbGVtZW50J3MgYm9yZGVyLlxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cblxuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG5cbjpyb290IHtcblx0LS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3M6IDNweDtcblx0LS1jay13aWRnZXQtaGFuZGxlci1pY29uLXNpemU6IDE2cHg7XG5cdC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uOiAyMDBtcztcblx0LS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmU6IGVhc2U7XG5cblx0LS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXI6IGhzbCgwLCAwJSwgODclKTtcblx0LS1jay1jb2xvci13aWRnZXQtaG92ZXItYm9yZGVyOiBoc2woNDMsIDEwMCUsIDYyJSk7XG5cdC0tY2stY29sb3Itd2lkZ2V0LWVkaXRhYmxlLWZvY3VzLWJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdC0tY2stY29sb3Itd2lkZ2V0LWRyYWctaGFuZGxlci1pY29uLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xufVxuXG4uY2sgLmNrLXdpZGdldCB7XG5cdG91dGxpbmUtd2lkdGg6IHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcyk7XG5cdG91dGxpbmUtc3R5bGU6IHNvbGlkO1xuXHRvdXRsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0dHJhbnNpdGlvbjogb3V0bGluZS1jb2xvciB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSlcbn1cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkLFxuXHQuY2sgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQ6aG92ZXIge1xuXHRcdG91dGxpbmU6IHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykgc29saWQgdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0fVxuXG4uY2sgLmNrLXdpZGdldDpob3ZlciB7XG5cdFx0b3V0bGluZS1jb2xvcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWhvdmVyLWJvcmRlcik7XG5cdH1cblxuLmNrIC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZSB7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50XG5cblx0LyogVGhlIDpmb2N1cyBzdHlsZSBpcyBhcHBsaWVkIGJlZm9yZSAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGVfZm9jdXNlZCBjbGFzcyBpcyByZW5kZXJlZCBpbiB0aGUgdmlldy5cblx0VGhlc2Ugc3R5bGVzIHNob3cgYSBkaWZmZXJlbnQgYm9yZGVyIGZvciBhIGJsaW5rIG9mIGFuIGV5ZSwgc28gYDpmb2N1c2AgbmVlZCB0byBoYXZlIHNhbWUgc3R5bGVzIGFwcGxpZWQuICovXG59XG5cbi5jayAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGVfZm9jdXNlZCxcblx0LmNrIC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZTpmb2N1cyB7XG5cdFx0LyogRGlzYWJsZSBuYXRpdmUgb3V0bGluZS4gKi9cblx0XHRvdXRsaW5lOiBub25lO1xuXHRcdGJvcmRlcjogdmFyKC0tY2stZm9jdXMtcmluZyk7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tY2staW5uZXItc2hhZG93KSwgMCAwO1xuXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWVkaXRhYmxlLWZvY3VzLWJhY2tncm91bmQpO1xuXHR9XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cdFx0cGFkZGluZzogNHB4O1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cblx0XHQvKiBCYWNrZ3JvdW5kIGFuZCBvcGFjaXR5IHdpbGwgYmUgYW5pbWF0ZWQgYXMgdGhlIGhhbmRsZXIgc2hvd3MgdXAgb3IgdGhlIHdpZGdldCBnZXRzIHNlbGVjdGVkLiAqL1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdG9wYWNpdHk6IDA7XG5cblx0XHQvKiBUcmFuc2l0aW9uOlxuXHRcdCAgICogYmFja2dyb3VuZC1jb2xvciBmb3IgdGhlIC5jay13aWRnZXRfc2VsZWN0ZWQgc3RhdGUgY2hhbmdlLFxuXHRcdCAgICogdmlzaWJpbGl0eSBmb3IgaGlkaW5nIHRoZSBoYW5kbGVyLFxuXHRcdCAgICogb3BhY2l0eSBmb3IgdGhlIHByb3BlciBsb29rIG9mIHRoZSBpY29uIHdoZW4gdGhlIGhhbmRsZXIgZGlzYXBwZWFycy4gKi9cblx0XHR0cmFuc2l0aW9uOlxuXHRcdFx0YmFja2dyb3VuZC1jb2xvciB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSksXG5cdFx0XHR2aXNpYmlsaXR5IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWN1cnZlKSxcblx0XHRcdG9wYWNpdHkgdmFyKC0tY2std2lkZ2V0LWhhbmRsZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1jay13aWRnZXQtaGFuZGxlci1hbmltYXRpb24tY3VydmUpO1xuXG5cdFx0LyogTWFrZSBvbmx5IHRvcCBjb3JuZXJzIHJvdW5kLiAqL1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIHZhcigtLWNrLWJvcmRlci1yYWRpdXMpIDAgMDtcblxuXHRcdC8qIFBsYWNlIHRoZSBkcmFnIGhhbmRsZXIgb3V0c2lkZSB0aGUgd2lkZ2V0IHdyYXBwZXIuICovXG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcblx0XHRsZWZ0OiBjYWxjKDBweCAtIHZhcigtLWNrLXdpZGdldC1vdXRsaW5lLXRoaWNrbmVzcykpXG5cdH1cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIC5jay1pY29uIHtcblx0XHRcdC8qIE1ha2Ugc3VyZSB0aGUgZGltZW5zaW9ucyBvZiB0aGUgaWNvbiBhcmUgaW5kZXBlbmRlbnQgb2YgdGhlIGZvbi1zaXplIG9mIHRoZSBjb250ZW50LiAqL1xuXHRcdFx0d2lkdGg6IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWljb24tc2l6ZSk7XG5cdFx0XHRoZWlnaHQ6IHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWljb24tc2l6ZSk7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWRyYWctaGFuZGxlci1pY29uLWNvbG9yKVxuXG5cdFx0XHQvKiBUaGUgXCJzZWxlY3RlZFwiIHBhcnQgb2YgdGhlIGljb24gaXMgaW52aXNpYmxlIGJ5IGRlZmF1bHQgKi9cblx0XHR9XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSAuY2staWNvbiAuY2staWNvbl9fc2VsZWN0ZWQtaW5kaWNhdG9yIHtcblx0XHRcdFx0b3BhY2l0eTogMDtcblxuXHRcdFx0XHQvKiBOb3RlOiBUaGUgYW5pbWF0aW9uIGlzIGxvbmdlciBvbiBwdXJwb3NlLiBTaW1wbHkgZmVlbHMgYmV0dGVyLiAqL1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWFuaW1hdGlvbi1jdXJ2ZSk7XG5cdFx0XHR9XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSB7XG5cblx0XHQvKiBBZHZlcnRpc2UgdXNpbmcgdGhlIGxvb2sgb2YgdGhlIGljb24gdGhhdCBvbmNlIGNsaWNrZWQgdGhlIGhhbmRsZXIsIHRoZSB3aWRnZXQgd2lsbCBiZSBzZWxlY3RlZC4gKi9cblx0fVxuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGU6aG92ZXIgLmNrLWljb24gLmNrLWljb25fX3NlbGVjdGVkLWluZGljYXRvciB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSB7XG5cblx0LyogU2hvdyB0aGUgc2VsZWN0aW9uIGhhbmRsZXIgb24gbW91c2UgaG92ZXIgb3ZlciB0aGUgd2lkZ2V0LiAqL1xufVxuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlOmhvdmVyIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRcdG9wYWNpdHk6IDE7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2stY29sb3Itd2lkZ2V0LWhvdmVyLWJvcmRlcik7XG5cdH1cblxuLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSB7XG5cblx0LyogU2hvdyB0aGUgc2VsZWN0aW9uIGhhbmRsZXIgd2hlbiB0aGUgd2lkZ2V0IGlzIHNlbGVjdGVkLiAqL1xufVxuXG4uY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlLmNrLXdpZGdldF9zZWxlY3RlZCAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlLCAuY2sgLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlLmNrLXdpZGdldF9zZWxlY3RlZDpob3ZlciAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlIHtcblx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jay1jb2xvci1mb2N1cy1ib3JkZXIpXG5cblx0XHRcdC8qIFdoZW4gdGhlIHdpZGdldCBpcyBzZWxlY3RlZCwgbm90aWZ5IHRoZSB1c2VyIHVzaW5nIHRoZSBwcm9wZXIgbG9vayBvZiB0aGUgaWNvbi4gKi9cblx0XHR9XG5cbi5jayAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUuY2std2lkZ2V0X3NlbGVjdGVkIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUgLmNrLWljb24gLmNrLWljb25fX3NlbGVjdGVkLWluZGljYXRvciwgLmNrIC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZS5jay13aWRnZXRfc2VsZWN0ZWQ6aG92ZXIgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSAuY2staWNvbiAuY2staWNvbl9fc2VsZWN0ZWQtaW5kaWNhdG9yIHtcblx0XHRcdFx0b3BhY2l0eTogMTtcblx0XHRcdH1cblxuLyogSW4gYSBSVEwgZW52aXJvbm1lbnQsIGFsaWduIHRoZSBzZWxlY3Rpb24gaGFuZGxlciB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgd2lkZ2V0ICovXG5cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG5cbi5ja1tkaXI9XCJydGxcIl0gLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUge1xuXHRsZWZ0OiBhdXRvO1xuXHRyaWdodDogY2FsYygwcHggLSB2YXIoLS1jay13aWRnZXQtb3V0bGluZS10aGlja25lc3MpKTtcbn1cblxuLyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjQxNSAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1yZWFkLW9ubHkgLmNrLXdpZGdldCB7XG5cdC8qIFByZXZlbnQgdGhlIDpob3ZlciBvdXRsaW5lIGZyb20gc2hvd2luZyB1cCBiZWNhdXNlIG9mIHRoZSB1c2VkIG91dGxpbmUtY29sb3IgdHJhbnNpdGlvbi4gKi9cblx0dHJhbnNpdGlvbjogbm9uZVxufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1yZWFkLW9ubHkgLmNrLXdpZGdldDpub3QoLmNrLXdpZGdldF9zZWxlY3RlZCkge1xuXHRcdC8qIERpc2FibGUgdmlzdWFsIGVmZmVjdHMgb2YgaG92ZXIvYWN0aXZlIHdpZGdldCB3aGVuIENLRWRpdG9yIGlzIGluIHJlYWRPbmx5IG1vZGUuXG5cdFx0ICogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xMjYxXG5cdFx0ICpcblx0XHQgKiBMZWF2ZSB0aGUgdW5pdCBiZWNhdXNlIHRoaXMgY3VzdG9tIHByb3BlcnR5IGlzIHVzZWQgaW4gY2FsYygpIGJ5IG90aGVyIGZlYXR1cmVzLlxuXHRcdCAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjc3NVxuXHRcdCAqL1xuXHRcdC0tY2std2lkZ2V0LW91dGxpbmUtdGhpY2tuZXNzOiAwcHg7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stcmVhZC1vbmx5IC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlLFxuXHRcdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLXJlYWQtb25seSAuY2std2lkZ2V0LmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZTpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci13aWRnZXQtYmx1cnJlZC1ib3JkZXIpO1xuXHRcdH1cblxuLyogU3R5bGUgdGhlIHdpZGdldCB3aGVuIGl0J3Mgc2VsZWN0ZWQgYnV0IHRoZSBlZGl0YWJsZSBpdCBiZWxvbmdzIHRvIGxvc3QgZm9jdXMuICovXG5cbi8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWJsdXJyZWQgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQsXG5cdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWJsdXJyZWQgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQ6aG92ZXIge1xuXHRcdG91dGxpbmUtY29sb3I6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ibHVycmVkLWJvcmRlcilcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZSxcblx0XHRcdC5jay5jay1lZGl0b3JfX2VkaXRhYmxlLmNrLWJsdXJyZWQgLmNrLXdpZGdldC5jay13aWRnZXRfc2VsZWN0ZWQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZSAuY2std2lkZ2V0X19zZWxlY3Rpb24taGFuZGxlOmhvdmVyLFxuXHRcdFx0LmNrLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stYmx1cnJlZCAuY2std2lkZ2V0LmNrLXdpZGdldF9zZWxlY3RlZDpob3Zlci5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlIC5jay13aWRnZXRfX3NlbGVjdGlvbi1oYW5kbGUsXG5cdFx0XHQuY2suY2stZWRpdG9yX19lZGl0YWJsZS5jay1ibHVycmVkIC5jay13aWRnZXQuY2std2lkZ2V0X3NlbGVjdGVkOmhvdmVyLmNrLXdpZGdldF93aXRoLXNlbGVjdGlvbi1oYW5kbGUgLmNrLXdpZGdldF9fc2VsZWN0aW9uLWhhbmRsZTpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXdpZGdldC1ibHVycmVkLWJvcmRlcik7XG5cdFx0XHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlID4gLmNrLXdpZGdldC5jay13aWRnZXRfd2l0aC1zZWxlY3Rpb24taGFuZGxlOmZpcnN0LWNoaWxkLFxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgYmxvY2txdW90ZSA+IC5jay13aWRnZXQuY2std2lkZ2V0X3dpdGgtc2VsZWN0aW9uLWhhbmRsZTpmaXJzdC1jaGlsZCB7XG5cdC8qIERvIG5vdCBjcm9wIHNlbGVjdGlvbiBoYW5kbGVyIGlmIGEgd2lkZ2V0IGlzIGEgZmlyc3QtY2hpbGQgaW4gdGhlIGJsb2NrcXVvdGUgb3IgaW4gdGhlIHJvb3QgZWRpdGFibGUuXG5cdEluIGZhY3QsIGFueXRoaW5nIHdpdGggb3ZlcmZsb3c6IGhpZGRlbi5cblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1ibG9jay1xdW90ZS9pc3N1ZXMvMjhcblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS13aWRnZXQvaXNzdWVzLzQ0XG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtd2lkZ2V0L2lzc3Vlcy82NiAqL1xuXHRtYXJnaW4tdG9wOiBjYWxjKDFlbSArIHZhcigtLWNrLXdpZGdldC1oYW5kbGVyLWljb24tc2l6ZSkpO1xufVxuIiwiLyogRDpcXFByb2plY3RcXHNpcml1c1xcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS11aVxcdGhlbWVcXGNvbXBvbmVudHNcXHRvb2x0aXBcXHRvb2x0aXAuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLmNrLXRvb2x0aXAsXG4uY2suY2stdG9vbHRpcCAuY2stdG9vbHRpcF9fdGV4dDo6YWZ0ZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cblx0LyogV2l0aG91dCB0aGlzLCBob3ZlcmluZyB0aGUgdG9vbHRpcCBjb3VsZCBrZWVwIGl0IHZpc2libGUuICovXG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG5cdC8qIFRoaXMgaXMgdG8gZ2V0IHJpZCBvZiBmbGlja2VyaW5nIHdoZW4gdHJhbnNpdGlvbmluZyBvcGFjaXR5IGluIENocm9tZS5cblx0SXQncyB3ZWlyZCBidXQgaXQgd29ya3MuICovXG5cdC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uY2suY2stdG9vbHRpcCB7XG5cdC8qIFRvb2x0aXAgaXMgaGlkZGVuIGJ5IGRlZmF1bHQuICovXG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0b3BhY2l0eTogMDtcblx0ZGlzcGxheTogbm9uZTtcblx0ei1pbmRleDogdmFyKC0tY2stei1tb2RhbClcbn1cblxuLmNrLmNrLXRvb2x0aXAgLmNrLXRvb2x0aXBfX3RleHQge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9ja1xuXHR9XG5cbi5jay5jay10b29sdGlwIC5jay10b29sdGlwX190ZXh0OjphZnRlciB7XG5cdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0d2lkdGg6IDA7XG5cdFx0XHRoZWlnaHQ6IDA7XG5cdFx0fVxuXG4vKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtdWlcXGNvbXBvbmVudHNcXHRvb2x0aXBcXHRvb2x0aXAuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stdG9vbHRpcC1hcnJvdy1zaXplOiA1cHg7XG59XG5cbi5jay5jay10b29sdGlwIHtcblx0bGVmdDogNTAlO1xuXG5cdC8qXG5cdCAqIFByZXZlbnQgYmx1cnJ5IHRvb2x0aXBzIGluIExvRFBJIGVudmlyb25tZW50cy5cblx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzE4MDIuXG5cdCAqL1xuXHR0b3A6IDA7XG5cblx0Lypcblx0ICogRm9yIHRoZSB0cmFuc2l0aW9uIHRvIHdvcmssIHRoZSB0b29sdGlwIG11c3QgYmUgY29udHJvbGxlZFxuXHQgKiB1c2luZyB2aXNpYmlsaXR5K29wYWNpdHkuIEEgZGVsYXkgcHJldmVudHMgYSBcInRvb2x0aXAgYXZhbGFuY2hlXCJcblx0ICogaS5lLiB3aGVuIHNjYW5uaW5nIHRoZSB0b29sYmFyIHdpdGggbW91c2UgY3Vyc29yLlxuXHQgKi9cblx0dHJhbnNpdGlvbjogb3BhY2l0eSAuMnMgZWFzZS1pbi1vdXQgLjJzXG59XG5cbi5jay5jay10b29sdGlwIC5jay10b29sdGlwX190ZXh0IHtcblx0XHRib3JkZXItcmFkaXVzOiAwXG5cdH1cblxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stdG9vbHRpcCAuY2stdG9vbHRpcF9fdGV4dCwgLmNrLmNrLXRvb2x0aXAgLmNrLXRvb2x0aXBfX3RleHQuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKVxuXHR9XG5cbi5jay5jay10b29sdGlwIC5jay10b29sdGlwX190ZXh0IHtcblxuXHRcdGZvbnQtc2l6ZTogLjllbTtcblx0XHRsaW5lLWhlaWdodDogMS41O1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci10b29sdGlwLXRleHQpO1xuXHRcdHBhZGRpbmc6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci10b29sdGlwLWJhY2tncm91bmQpO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRsZWZ0OiAtNTAlXG5cdH1cblxuLmNrLmNrLXRvb2x0aXAgLmNrLXRvb2x0aXBfX3RleHQ6OmFmdGVyIHtcblx0XHRcdC8qXG5cdFx0XHQgKiBGb3IgdGhlIHRyYW5zaXRpb24gdG8gd29yaywgdGhlIHRvb2x0aXAgbXVzdCBiZSBjb250cm9sbGVkXG5cdFx0XHQgKiB1c2luZyB2aXNpYmlsaXR5K29wYWNpdHkuIEEgZGVsYXkgcHJldmVudHMgYSBcInRvb2x0aXAgYXZhbGFuY2hlXCJcblx0XHRcdCAqIGkuZS4gd2hlbiBzY2FubmluZyB0aGUgdG9vbGJhciB3aXRoIG1vdXNlIGN1cnNvci5cblx0XHRcdCAqL1xuXHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAuMnMgZWFzZS1pbi1vdXQgLjJzO1xuXHRcdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRcdGxlZnQ6IDUwJTtcblx0XHR9XG5cbi5jay5jay10b29sdGlwIHtcblxuXHQvKipcblx0ICogQSBjbGFzcyB0aGF0IGRpc3BsYXlzIHRoZSB0b29sdGlwIHNvdXRoIG9mIHRoZSBlbGVtZW50LlxuXHQgKlxuXHQgKiAgICAgICBbZWxlbWVudF1cblx0ICogICAgICAgICAgIF5cblx0ICogICAgICstLS0tLS0tLS0tLStcblx0ICogICAgIHwgIFRvb2x0aXAgIHxcblx0ICogICAgICstLS0tLS0tLS0tLStcblx0ICovXG59XG5cbi5jay5jay10b29sdGlwLmNrLXRvb2x0aXBfcyxcblx0LmNrLmNrLXRvb2x0aXAuY2stdG9vbHRpcF9zdyxcblx0LmNrLmNrLXRvb2x0aXAuY2stdG9vbHRpcF9zZSB7XG5cdFx0Ym90dG9tOiBjYWxjKC0xICogdmFyKC0tY2stdG9vbHRpcC1hcnJvdy1zaXplKSk7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKCAxMDAlIClcblx0fVxuXG4uY2suY2stdG9vbHRpcC5jay10b29sdGlwX3MgLmNrLXRvb2x0aXBfX3RleHQ6OmFmdGVyLCAuY2suY2stdG9vbHRpcC5jay10b29sdGlwX3N3IC5jay10b29sdGlwX190ZXh0OjphZnRlciwgLmNrLmNrLXRvb2x0aXAuY2stdG9vbHRpcF9zZSAuY2stdG9vbHRpcF9fdGV4dDo6YWZ0ZXIge1xuXHRcdFx0LyogMXB4IGFkZHJlc3NlcyBnbGljaGVzIGluIHJlbmRlcmluZyBjYXVzaW5nIGdhcCBiZXR3ZWVuIHRoZSB0cmlhbmdsZSBhbmQgdGhlIHRleHQgKi9cblx0XHRcdHRvcDogY2FsYygtMSAqIHZhcigtLWNrLXRvb2x0aXAtYXJyb3ctc2l6ZSkgKyAxcHgpO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKCAtNTAlICk7XG5cdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLWNrLWNvbG9yLXRvb2x0aXAtYmFja2dyb3VuZCkgdHJhbnNwYXJlbnQ7XG5cdFx0XHRib3JkZXItd2lkdGg6IDAgdmFyKC0tY2stdG9vbHRpcC1hcnJvdy1zaXplKSB2YXIoLS1jay10b29sdGlwLWFycm93LXNpemUpIHZhcigtLWNrLXRvb2x0aXAtYXJyb3ctc2l6ZSk7XG5cdFx0fVxuXG4uY2suY2stdG9vbHRpcCB7XG5cblx0LyoqXG5cdCAqIEEgY2xhc3MgdGhhdCBkaXNwbGF5cyB0aGUgdG9vbHRpcCBzb3V0aC13ZXN0IG9mIHRoZSBlbGVtZW50LlxuXHQgKlxuXHQgKiAgICAgICAgW2VsZW1lbnRdXG5cdCAqICAgICAgICAgICAgXlxuXHQgKiAgKy0tLS0tLS0tLS0tK1xuXHQgKiAgfCAgVG9vbHRpcCAgfFxuXHQgKiAgKy0tLS0tLS0tLS0tK1xuXHQgKi9cbn1cblxuLmNrLmNrLXRvb2x0aXAuY2stdG9vbHRpcF9zdyB7XG5cdFx0cmlnaHQ6IDUwJTtcblx0XHRsZWZ0OiBhdXRvXG5cdH1cblxuLmNrLmNrLXRvb2x0aXAuY2stdG9vbHRpcF9zdyAuY2stdG9vbHRpcF9fdGV4dCB7XG5cdFx0XHRsZWZ0OiBhdXRvO1xuXHRcdFx0cmlnaHQ6IGNhbGMoIC0yICogdmFyKC0tY2stdG9vbHRpcC1hcnJvdy1zaXplKSk7XG5cdFx0fVxuXG4uY2suY2stdG9vbHRpcC5jay10b29sdGlwX3N3IC5jay10b29sdGlwX190ZXh0OjphZnRlciB7XG5cdFx0XHRsZWZ0OiBhdXRvO1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0fVxuXG4uY2suY2stdG9vbHRpcCB7XG5cblx0LyoqXG5cdCAqIEEgY2xhc3MgdGhhdCBkaXNwbGF5cyB0aGUgdG9vbHRpcCBzb3V0aC1lYXN0IG9mIHRoZSBlbGVtZW50LlxuXHQgKlxuXHQgKiAgW2VsZW1lbnRdXG5cdCAqICAgICAgXlxuXHQgKiAgICArLS0tLS0tLS0tLS0rXG5cdCAqICAgIHwgIFRvb2x0aXAgIHxcblx0ICogICAgKy0tLS0tLS0tLS0tK1xuXHQgKi9cbn1cblxuLmNrLmNrLXRvb2x0aXAuY2stdG9vbHRpcF9zZSB7XG5cdFx0bGVmdDogNTAlO1xuXHRcdHJpZ2h0OiBhdXRvXG5cdH1cblxuLmNrLmNrLXRvb2x0aXAuY2stdG9vbHRpcF9zZSAuY2stdG9vbHRpcF9fdGV4dCB7XG5cdFx0XHRyaWdodDogYXV0bztcblx0XHRcdGxlZnQ6IGNhbGMoIC0yICogdmFyKC0tY2stdG9vbHRpcC1hcnJvdy1zaXplKSk7XG5cdFx0fVxuXG4uY2suY2stdG9vbHRpcC5jay10b29sdGlwX3NlIC5jay10b29sdGlwX190ZXh0OjphZnRlciB7XG5cdFx0XHRyaWdodDogYXV0bztcblx0XHRcdGxlZnQ6IDA7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoIDUwJSApO1xuXHRcdH1cblxuLmNrLmNrLXRvb2x0aXAge1xuXG5cdC8qKlxuXHQgKiBBIGNsYXNzIHRoYXQgZGlzcGxheXMgdGhlIHRvb2x0aXAgbm9ydGggb2YgdGhlIGVsZW1lbnQuXG5cdCAqXG5cdCAqICAgICArLS0tLS0tLS0tLS0rXG5cdCAqICAgICB8ICBUb29sdGlwICB8XG5cdCAqICAgICArLS0tLS0tLS0tLS0rXG5cdCAqICAgICAgICAgICBWXG5cdCAqICAgICAgIFtlbGVtZW50XVxuXHQgKi9cbn1cblxuLmNrLmNrLXRvb2x0aXAuY2stdG9vbHRpcF9uIHtcblx0XHR0b3A6IGNhbGMoLTEgKiB2YXIoLS1jay10b29sdGlwLWFycm93LXNpemUpKTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoIC0xMDAlIClcblx0fVxuXG4uY2suY2stdG9vbHRpcC5jay10b29sdGlwX24gLmNrLXRvb2x0aXBfX3RleHQ6OmFmdGVyIHtcblx0XHRcdGJvdHRvbTogY2FsYygtMSAqIHZhcigtLWNrLXRvb2x0aXAtYXJyb3ctc2l6ZSkpO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKCAtNTAlICk7XG5cdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLXRvb2x0aXAtYmFja2dyb3VuZCkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdFx0XHRib3JkZXItd2lkdGg6IHZhcigtLWNrLXRvb2x0aXAtYXJyb3ctc2l6ZSkgdmFyKC0tY2stdG9vbHRpcC1hcnJvdy1zaXplKSAwIHZhcigtLWNrLXRvb2x0aXAtYXJyb3ctc2l6ZSk7XG5cdFx0fVxuXG4uY2suY2stdG9vbHRpcCB7XG5cblx0LyoqXG5cdCAqIEEgY2xhc3MgdGhhdCBkaXNwbGF5cyB0aGUgdG9vbHRpcCBlYXN0IG9mIHRoZSBlbGVtZW50LlxuXHQgKlxuXHQgKiAgICAgICAgICAgICAgICArLS0tLS0tLS0tLStcblx0ICogICAgW2VsZW1lbnRdIDwgfCAgIGVhc3QgICB8XG5cdCAqICAgICAgICAgICAgICAgICstLS0tLS0tLS0tK1xuXHQgKi9cbn1cblxuLmNrLmNrLXRvb2x0aXAuY2stdG9vbHRpcF9lIHtcblx0XHRsZWZ0OiBjYWxjKDEwMCUgKyB2YXIoLS1jay10b29sdGlwLWFycm93LXNpemUpKTtcblx0XHR0b3A6IDUwJVxuXHR9XG5cbi5jay5jay10b29sdGlwLmNrLXRvb2x0aXBfZSAuY2stdG9vbHRpcF9fdGV4dCB7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKCAtNTAlIClcblx0XHR9XG5cbi5jay5jay10b29sdGlwLmNrLXRvb2x0aXBfZSAuY2stdG9vbHRpcF9fdGV4dDo6YWZ0ZXIge1xuXHRcdFx0XHRsZWZ0OiBjYWxjKC0xICogdmFyKC0tY2stdG9vbHRpcC1hcnJvdy1zaXplKSk7XG5cdFx0XHRcdHRvcDogY2FsYyg1MCUgLSAxICogdmFyKC0tY2stdG9vbHRpcC1hcnJvdy1zaXplKSk7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdmFyKC0tY2stY29sb3ItdG9vbHRpcC1iYWNrZ3JvdW5kKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblx0XHRcdFx0Ym9yZGVyLXdpZHRoOiB2YXIoLS1jay10b29sdGlwLWFycm93LXNpemUpIHZhcigtLWNrLXRvb2x0aXAtYXJyb3ctc2l6ZSkgdmFyKC0tY2stdG9vbHRpcC1hcnJvdy1zaXplKSAwO1xuXHRcdFx0fVxuXG4uY2suY2stdG9vbHRpcCB7XG5cblx0LyoqXG5cdCAqIEEgY2xhc3MgdGhhdCBkaXNwbGF5cyB0aGUgdG9vbHRpcCB3ZXN0IG9mIHRoZSBlbGVtZW50LlxuXHQgKlxuXHQgKiAgICArLS0tLS0tLS0tLStcblx0ICogICAgfCAgIHdlc3QgICB8ID4gW2VsZW1lbnRdXG5cdCAqICAgICstLS0tLS0tLS0tK1xuXHQgKi9cbn1cblxuLmNrLmNrLXRvb2x0aXAuY2stdG9vbHRpcF93IHtcblx0XHRyaWdodDogY2FsYygxMDAlICsgdmFyKC0tY2stdG9vbHRpcC1hcnJvdy1zaXplKSk7XG5cdFx0bGVmdDogYXV0bztcblx0XHR0b3A6IDUwJVxuXHR9XG5cbi5jay5jay10b29sdGlwLmNrLXRvb2x0aXBfdyAuY2stdG9vbHRpcF9fdGV4dCB7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKCAtNTAlIClcblx0XHR9XG5cbi5jay5jay10b29sdGlwLmNrLXRvb2x0aXBfdyAuY2stdG9vbHRpcF9fdGV4dDo6YWZ0ZXIge1xuXHRcdFx0XHRsZWZ0OiAxMDAlO1xuXHRcdFx0XHR0b3A6IGNhbGMoNTAlIC0gMSAqIHZhcigtLWNrLXRvb2x0aXAtYXJyb3ctc2l6ZSkpO1xuXHRcdFx0XHRib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHZhcigtLWNrLWNvbG9yLXRvb2x0aXAtYmFja2dyb3VuZCk7XG5cdFx0XHRcdGJvcmRlci13aWR0aDogdmFyKC0tY2stdG9vbHRpcC1hcnJvdy1zaXplKSAwIHZhcigtLWNrLXRvb2x0aXAtYXJyb3ctc2l6ZSkgdmFyKC0tY2stdG9vbHRpcC1hcnJvdy1zaXplKTtcblx0XHRcdH1cbiIsIi8qIEQ6XFxQcm9qZWN0XFxzaXJpdXNcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdWlcXHRoZW1lXFxjb21wb25lbnRzXFxidXR0b25cXGJ1dHRvbi5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogTWFrZXMgZWxlbWVudCB1bnNlbGVjdGFibGUuXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEVuYWJsZXMgdGhlIHRvb2x0aXAsIHdoaWNoIGlzIHRoZSB0b29sdGlwIGlzIGluIERPTSBidXRcbiAqIG5vdCB5ZXQgZGlzcGxheWVkLlxuICovXG5cbi8qKlxuICogRGlzYWJsZXMgdGhlIHRvb2x0aXAgbWFraW5nIGl0IGRpc2FwcGVhciBmcm9tIERPTS5cbiAqL1xuXG4vKipcbiAqIFNob3dzIHRoZSB0b29sdGlwLCB3aGljaCBpcyBhbHJlYWR5IGluIERPTS5cbiAqIFJlcXVpcmVzIGBjay10b29sdGlwX2VuYWJsZWRgIGZpcnN0LlxuICovXG5cbi5jay5jay1idXR0b24sXG5hLmNrLmNrLWJ1dHRvbiB7XG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmVcbn1cblxuLmNrLmNrLWJ1dHRvbiAuY2stdG9vbHRpcCwgYS5jay5jay1idXR0b24gLmNrLXRvb2x0aXAge1xuXHRcdGRpc3BsYXk6IGJsb2NrXG5cblx0XHQvKlxuXHRcdCAqIERvbid0IGRpc3BsYXkgdG9vbHRpcHMgaW4gZGV2aWNlcyB3aGljaCBkb24ndCBzdXBwb3J0IDpob3Zlci5cblx0XHQgKiBJbiBmYWN0LCBpdCdzIGFsbCBhYm91dCBpT1MsIHdoaWNoIGZvcmNlcyB1c2VyIHRvIGNsaWNrIFVJIGVsZW1lbnRzIHR3aWNlIHRvIGV4ZWN1dGVcblx0XHQgKiB0aGUgcHJpbWFyeSBhY3Rpb24sIHdoZW4gdG9vbHRpcHMgYXJlIGVuYWJsZWQuXG5cdFx0ICpcblx0XHQgKiBROiBPSywgYnV0IHdoeSBub3QgdGhlIGZvbGxvd2luZyBxdWVyeT9cblx0XHQgKlxuXHRcdCAqICAgQG1lZGlhIChob3Zlcikge1xuXHRcdCAqICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXHRcdCAqICAgfVxuXHRcdCAqXG5cdFx0ICogQTogQmVjYXVzZSBGRiBkb2VzIG5vdCBzdXBwb3J0IGl0IGFuZCBpdCB3b3VsZCBjb21wbGV0ZWx5IGRpc2FibGUgdG9vbHRpcHNcblx0XHQgKiBpbiB0aGF0IGJyb3dzZXIuXG5cdFx0ICpcblx0XHQgKiBNb3JlIGluIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzkyMC5cblx0XHQgKi9cblx0fVxuXG5AbWVkaWEgKGhvdmVyOm5vbmUpIHtcblxuLmNrLmNrLWJ1dHRvbiAuY2stdG9vbHRpcCwgYS5jay5jay1idXR0b24gLmNrLXRvb2x0aXAge1xuXHRcdFx0ZGlzcGxheTogbm9uZVxuXHR9XG5cdFx0fVxuXG4uY2suY2stYnV0dG9uLFxuYS5jay5jay1idXR0b24ge1xuXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogbGVmdFxufVxuXG4uY2suY2stYnV0dG9uIC5jay1idXR0b25fX2xhYmVsLCBhLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG4uY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQgLmNrLWJ1dHRvbl9fbGFiZWwsIGEuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdH1cblxuLmNrLmNrLWJ1dHRvbixcbmEuY2suY2stYnV0dG9uIHtcblxuXHQvKiBDZW50ZXIgdGhlIGljb24gaG9yaXpvbnRhbGx5IGluIGEgYnV0dG9uIHdpdGhvdXQgdGV4dC4gKi9cbn1cblxuLmNrLmNrLWJ1dHRvbjpub3QoLmNrLWJ1dHRvbl93aXRoLXRleHQpLCAgYS5jay5jay1idXR0b246bm90KC5jay1idXR0b25fd2l0aC10ZXh0KSAge1xuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHR9XG5cbi5jay5jay1idXR0b246aG92ZXIgLmNrLXRvb2x0aXAsIGEuY2suY2stYnV0dG9uOmhvdmVyIC5jay10b29sdGlwIHtcblx0XHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblxuLmNrLmNrLWJ1dHRvbixcbmEuY2suY2stYnV0dG9uIHtcblxuXHQvKiBHZXQgcmlkIG9mIHRoZSBuYXRpdmUgZm9jdXMgb3V0bGluZSBhcm91bmQgdGhlIHRvb2x0aXAgd2hlbiBmb2N1c2VkIChidXQgbm90IDpob3ZlcikuICovXG59XG5cbi5jay5jay1idXR0b246Zm9jdXM6bm90KDpob3ZlcikgLmNrLXRvb2x0aXAsIGEuY2suY2stYnV0dG9uOmZvY3VzOm5vdCg6aG92ZXIpIC5jay10b29sdGlwIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cbi8qIEQ6XFxQcm9qZWN0XFxzaXJpdXNcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdGhlbWUtbGFya1xcdGhlbWVcXGNrZWRpdG9yNS11aVxcY29tcG9uZW50c1xcYnV0dG9uXFxidXR0b24uY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIGJvcmRlci5cbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG5cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogQSBjbGFzcyB3aGljaCBpbmRpY2F0ZXMgdGhhdCBhbiBlbGVtZW50IGhvbGRpbmcgaXQgaXMgZGlzYWJsZWQuXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogSW1wbGVtZW50cyBhIGJ1dHRvbiBvZiBnaXZlbiBiYWNrZ3JvdW5kIGNvbG9yLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSAkYmFja2dyb3VuZCAtIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJ1dHRvbi5cbiAqIEBwYXJhbSB7U3RyaW5nfSAkYm9yZGVyIC0gQm9yZGVyIGNvbG9yIG9mIHRoZSBidXR0b24uXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2suY2stYnV0dG9uLFxuYS5jay5jay1idXR0b24ge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1iYWNrZ3JvdW5kKVxufVxuXG4uY2suY2stYnV0dG9uOm5vdCguY2stZGlzYWJsZWQpOmhvdmVyLCBhLmNrLmNrLWJ1dHRvbjpub3QoLmNrLWRpc2FibGVkKTpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tZGVmYXVsdC1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHR9XG5cbi5jay5jay1idXR0b246bm90KC5jay1kaXNhYmxlZCk6YWN0aXZlLCBhLmNrLmNrLWJ1dHRvbjpub3QoLmNrLWRpc2FibGVkKTphY3RpdmUge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtYWN0aXZlLWJhY2tncm91bmQpO1xuXHRcdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAycHggMnB4IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1kZWZhdWx0LWFjdGl2ZS1zaGFkb3cpO1xuXHRcdH1cblxuLmNrLmNrLWJ1dHRvbixcbmEuY2suY2stYnV0dG9uIHtcblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy85OCAqL1xufVxuXG4uY2suY2stYnV0dG9uLmNrLWRpc2FibGVkLCBhLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZCB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLWRlZmF1bHQtZGlzYWJsZWQtYmFja2dyb3VuZCk7XG5cdH1cblxuLmNrLmNrLWJ1dHRvbixcbmEuY2suY2stYnV0dG9uIHtcblx0Ym9yZGVyLXJhZGl1czogMFxufVxuXG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1idXR0b24sXG4uY2suY2stYnV0dG9uLmNrLXJvdW5kZWQtY29ybmVycyxcbi5jay1yb3VuZGVkLWNvcm5lcnMgYS5jay5jay1idXR0b24sXG5hLmNrLmNrLWJ1dHRvbi5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpXG59XG5cbi5jay5jay1idXR0b24sXG5hLmNrLmNrLWJ1dHRvbiB7XG5cblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0LyogQSB2ZXJ5IGltcG9ydGFudCBwaWVjZSBvZiBzdHlsaW5nLiBHbyB0byB2YXJpYWJsZSBkZWNsYXJhdGlvbiB0byBsZWFybiBtb3JlLiAqL1xuXHRtaW4td2lkdGg6IHZhcigtLWNrLXVpLWNvbXBvbmVudC1taW4taGVpZ2h0KTtcblx0bWluLWhlaWdodDogdmFyKC0tY2stdWktY29tcG9uZW50LW1pbi1oZWlnaHQpO1xuXG5cdC8qIE5vcm1hbGl6ZSB0aGUgaGVpZ2h0IG9mIHRoZSBsaW5lLiBSZW1vdmluZyB0aGlzIHdpbGwgYnJlYWsgY29uc2lzdGVudCBoZWlnaHRcblx0YW1vbmcgdGV4dCBhbmQgdGV4dC1sZXNzIGJ1dHRvbnMgKHdpdGggaWNvbnMpLiAqL1xuXHRsaW5lLWhlaWdodDogMTtcblxuXHQvKiBFbmFibGUgZm9udCBzaXplIGluaGVyaXRhbmNlLCB3aGljaCBhbGxvd3MgZmx1aWQgVUkgc2NhbGluZy4gKi9cblx0Zm9udC1zaXplOiBpbmhlcml0O1xuXG5cdC8qIEF2b2lkIGZsaWNrZXJpbmcgd2hlbiB0aGUgZm91Y3MgYm9yZGVyIHNob3dzIHVwLiAqL1xuXHRib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuXHQvKiBBcHBseSBzb21lIHNtb290aCB0cmFuc2l0aW9uIHRvIHRoZSBib3gtc2hhZG93IGFuZCBib3JkZXIuICovXG5cdHRyYW5zaXRpb246IGJveC1zaGFkb3cgLjJzIGVhc2UtaW4tb3V0LCBib3JkZXIgLjJzIGVhc2UtaW4tb3V0O1xuXG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvMTg5ICovXG5cdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZVxufVxuXG4uY2suY2stYnV0dG9uOmFjdGl2ZSxcblx0LmNrLmNrLWJ1dHRvbjpmb2N1cyxcblx0YS5jay5jay1idXR0b246YWN0aXZlLFxuXHRhLmNrLmNrLWJ1dHRvbjpmb2N1cyB7XG5cdFx0LyogRGlzYWJsZSBuYXRpdmUgb3V0bGluZS4gKi9cblx0XHRvdXRsaW5lOiBub25lO1xuXHRcdGJvcmRlcjogdmFyKC0tY2stZm9jdXMtcmluZyk7XG5cdFx0Ym94LXNoYWRvdzogdmFyKC0tY2stZm9jdXMtb3V0ZXItc2hhZG93KSwgMCAwO1xuXHR9XG5cbi5jay5jay1idXR0b24sXG5hLmNrLmNrLWJ1dHRvbiB7XG5cblx0LyogQWxsb3cgaWNvbiBjb2xvcmluZyB1c2luZyB0aGUgdGV4dCBcImNvbG9yXCIgcHJvcGVydHkuICovXG59XG5cbi5jay5jay1idXR0b24gLmNrLWJ1dHRvbl9faWNvbiB1c2UsXG5cdFx0LmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19pY29uIHVzZSAqLFxuXHRcdGEuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2ljb24gdXNlLFxuXHRcdGEuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2ljb24gdXNlICoge1xuXHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0fVxuXG4uY2suY2stYnV0dG9uIC5jay1idXR0b25fX2xhYmVsLCBhLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0LyogRW5hYmxlIGZvbnQgc2l6ZSBpbmhlcml0YW5jZSwgd2hpY2ggYWxsb3dzIGZsdWlkIFVJIHNjYWxpbmcuICovXG5cdFx0Zm9udC1zaXplOiBpbmhlcml0O1xuXHRcdGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuXHRcdGNvbG9yOiBpbmhlcml0O1xuXHRcdGN1cnNvcjogaW5oZXJpdDtcblxuXHRcdC8qIE11c3QgYmUgY29uc2lzdGVudCB3aXRoIC5jay1pY29uJ3MgdmVydGljYWwgYWxpZ24uIE90aGVyd2lzZSwgYnV0dG9ucyB3aXRoIGFuZFxuXHRcdHdpdGhvdXQgbGFiZWxzIChidXQgd2l0aCBpY29ucykgaGF2ZSBkaWZmZXJlbnQgc2l6ZXMgaW4gQ2hyb21lICovXG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZVxuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCwgW2Rpcj1cImx0clwiXSBhLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2xhYmVsLCBbZGlyPVwicnRsXCJdIGEuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0XG5cdH1cblxuLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19rZXlzdHJva2UsIGEuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2tleXN0cm9rZSB7XG5cdFx0Y29sb3I6IGluaGVyaXQ7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2tleXN0cm9rZSwgW2Rpcj1cImx0clwiXSBhLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19rZXlzdHJva2Uge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19rZXlzdHJva2UsIFtkaXI9XCJydGxcIl0gYS5jay5jay1idXR0b24gLmNrLWJ1dHRvbl9fa2V5c3Ryb2tlIHtcblx0XHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1sYXJnZSk7XG5cdH1cblxuLmNrLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19rZXlzdHJva2UsIGEuY2suY2stYnV0dG9uIC5jay1idXR0b25fX2tleXN0cm9rZSB7XG5cblx0XHRmb250LXdlaWdodDogYm9sZDtcblx0XHRvcGFjaXR5OiAuNztcblx0fVxuXG4uY2suY2stYnV0dG9uLFxuYS5jay5jay1idXR0b24ge1xuXG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvNzAgKi9cbn1cblxuLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZDphY3RpdmUsXG5cdFx0LmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZDpmb2N1cyxcblx0XHRhLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZDphY3RpdmUsXG5cdFx0YS5jay5jay1idXR0b24uY2stZGlzYWJsZWQ6Zm9jdXMge1xuXHRcdFx0LyogVGhlIGRpc2FibGVkIGJ1dHRvbiBzaG91bGQgaGF2ZSBhIHNsaWdodGx5IGxlc3MgdmlzaWJsZSBzaGFkb3cgd2hlbiBmb2N1c2VkLiAqL1xuXHRcdFx0Ym94LXNoYWRvdzogdmFyKC0tY2stZm9jdXMtZGlzYWJsZWQtb3V0ZXItc2hhZG93KSwgMCAwO1xuXHRcdH1cblxuLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZCAuY2stYnV0dG9uX19pY29uLCBhLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZCAuY2stYnV0dG9uX19pY29uIHtcblx0XHRcdG9wYWNpdHk6IHZhcigtLWNrLWRpc2FibGVkLW9wYWNpdHkpO1xuXHRcdH1cblxuLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZCwgYS5jay5jay1idXR0b24uY2stZGlzYWJsZWQge1xuXG5cdFx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy85OCAqL1xuXHR9XG5cbi5jay5jay1idXR0b24uY2stZGlzYWJsZWQgLmNrLWJ1dHRvbl9fbGFiZWwsIGEuY2suY2stYnV0dG9uLmNrLWRpc2FibGVkIC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdG9wYWNpdHk6IHZhcigtLWNrLWRpc2FibGVkLW9wYWNpdHkpO1xuXHRcdH1cblxuLmNrLmNrLWJ1dHRvbi5jay1kaXNhYmxlZCAuY2stYnV0dG9uX19rZXlzdHJva2UsIGEuY2suY2stYnV0dG9uLmNrLWRpc2FibGVkIC5jay1idXR0b25fX2tleXN0cm9rZSB7XG5cdFx0XHRvcGFjaXR5OiAuMztcblx0XHR9XG5cbi5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgtdGV4dCwgYS5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgtdGV4dCB7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy10aW55KSB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKVxuXG5cdFx0Lyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgtdGV4dCAuY2stYnV0dG9uX19pY29uLCBbZGlyPVwibHRyXCJdIGEuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQgLmNrLWJ1dHRvbl9faWNvbiB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tY2stc3BhY2luZy1zbWFsbCkpO1xuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpXG5cdFx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgtdGV4dCAuY2stYnV0dG9uX19pY29uLCBbZGlyPVwicnRsXCJdIGEuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQgLmNrLWJ1dHRvbl9faWNvbiB7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogY2FsYygtMSAqIHZhcigtLWNrLXNwYWNpbmctc21hbGwpKTtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpXG5cdFx0fVxuXG4uY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLWtleXN0cm9rZSwgYS5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgta2V5c3Ryb2tlIHtcblx0XHQvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuXHR9XG5cbi5jay5jay1idXR0b24uY2stYnV0dG9uX3dpdGgta2V5c3Ryb2tlIC5jay1idXR0b25fX2xhYmVsLCBhLmNrLmNrLWJ1dHRvbi5jay1idXR0b25fd2l0aC1rZXlzdHJva2UgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0ZmxleC1ncm93OiAxO1xuXHRcdH1cblxuLmNrLmNrLWJ1dHRvbixcbmEuY2suY2stYnV0dG9uIHtcblxuXHQvKiBBIHN0eWxlIG9mIHRoZSBidXR0b24gd2hpY2ggaXMgY3VycmVudGx5IG9uLCBlLmcuIGl0cyBmZWF0dXJlIGlzIGFjdGl2ZS4gKi9cbn1cblxuLmNrLmNrLWJ1dHRvbi5jay1vbiwgYS5jay5jay1idXR0b24uY2stb24ge1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1iYWNrZ3JvdW5kKTtcblx0fVxuXG4uY2suY2stYnV0dG9uLmNrLW9uOm5vdCguY2stZGlzYWJsZWQpOmhvdmVyLCBhLmNrLmNrLWJ1dHRvbi5jay1vbjpub3QoLmNrLWRpc2FibGVkKTpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tb24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuXG4uY2suY2stYnV0dG9uLmNrLW9uOm5vdCguY2stZGlzYWJsZWQpOmFjdGl2ZSwgYS5jay5jay1idXR0b24uY2stb246bm90KC5jay1kaXNhYmxlZCk6YWN0aXZlIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1vbi1hY3RpdmUtYmFja2dyb3VuZCk7XG5cdFx0XHRib3gtc2hhZG93OiBpbnNldCAwIDJweCAycHggdmFyKC0tY2stY29sb3ItYnV0dG9uLW9uLWFjdGl2ZS1zaGFkb3cpO1xuXHRcdH1cblxuLmNrLmNrLWJ1dHRvbi5jay1vbiwgYS5jay5jay1idXR0b24uY2stb24ge1xuXHRcdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvOTggKi9cblx0fVxuXG4uY2suY2stYnV0dG9uLmNrLW9uLmNrLWRpc2FibGVkLCBhLmNrLmNrLWJ1dHRvbi5jay1vbi5jay1kaXNhYmxlZCB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLW9uLWRpc2FibGVkLWJhY2tncm91bmQpO1xuXHR9XG5cbi5jay5jay1idXR0b24uY2stYnV0dG9uLXNhdmUsIGEuY2suY2stYnV0dG9uLmNrLWJ1dHRvbi1zYXZlIHtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYnV0dG9uLXNhdmUpO1xuXHR9XG5cbi5jay5jay1idXR0b24uY2stYnV0dG9uLWNhbmNlbCwgYS5jay5jay1idXR0b24uY2stYnV0dG9uLWNhbmNlbCB7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1jYW5jZWwpO1xuXHR9XG5cbi8qIEEgc3R5bGUgb2YgdGhlIGJ1dHRvbiB3aGljaCBoYW5kbGVzIHRoZSBwcmltYXJ5IGFjdGlvbi4gKi9cblxuLmNrLmNrLWJ1dHRvbi1hY3Rpb24sXG5hLmNrLmNrLWJ1dHRvbi1hY3Rpb24ge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tYWN0aW9uLWJhY2tncm91bmQpO1xufVxuXG4uY2suY2stYnV0dG9uLWFjdGlvbjpub3QoLmNrLWRpc2FibGVkKTpob3ZlciwgYS5jay5jay1idXR0b24tYWN0aW9uOm5vdCguY2stZGlzYWJsZWQpOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJ1dHRvbi1hY3Rpb24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuXG4uY2suY2stYnV0dG9uLWFjdGlvbjpub3QoLmNrLWRpc2FibGVkKTphY3RpdmUsIGEuY2suY2stYnV0dG9uLWFjdGlvbjpub3QoLmNrLWRpc2FibGVkKTphY3RpdmUge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi1hY3RpdmUtYmFja2dyb3VuZCk7XG5cdFx0XHRib3gtc2hhZG93OiBpbnNldCAwIDJweCAycHggdmFyKC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi1hY3RpdmUtc2hhZG93KTtcblx0XHR9XG5cbi5jay5jay1idXR0b24tYWN0aW9uLFxuYS5jay5jay1idXR0b24tYWN0aW9uIHtcblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy85OCAqL1xufVxuXG4uY2suY2stYnV0dG9uLWFjdGlvbi5jay1kaXNhYmxlZCwgYS5jay5jay1idXR0b24tYWN0aW9uLmNrLWRpc2FibGVkIHtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1idXR0b24tYWN0aW9uLWRpc2FibGVkLWJhY2tncm91bmQpO1xuXHR9XG5cbi5jay5jay1idXR0b24tYWN0aW9uLFxuYS5jay5jay1idXR0b24tYWN0aW9uIHtcblxuXHRjb2xvcjogdmFyKC0tY2stY29sb3ItYnV0dG9uLWFjdGlvbi10ZXh0KTtcbn1cblxuLmNrLmNrLWJ1dHRvbi1ib2xkLFxuYS5jay5jay1idXR0b24tYm9sZCB7XG5cdGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuIiwiLyogRDpcXFByb2plY3RcXHNpcml1c1xcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS11aVxcdGhlbWVcXGNvbXBvbmVudHNcXGRyb3Bkb3duXFxkcm9wZG93bi5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogRW5hYmxlcyB0aGUgdG9vbHRpcCwgd2hpY2ggaXMgdGhlIHRvb2x0aXAgaXMgaW4gRE9NIGJ1dFxuICogbm90IHlldCBkaXNwbGF5ZWQuXG4gKi9cblxuLyoqXG4gKiBEaXNhYmxlcyB0aGUgdG9vbHRpcCBtYWtpbmcgaXQgZGlzYXBwZWFyIGZyb20gRE9NLlxuICovXG5cbi8qKlxuICogU2hvd3MgdGhlIHRvb2x0aXAsIHdoaWNoIGlzIGFscmVhZHkgaW4gRE9NLlxuICogUmVxdWlyZXMgYGNrLXRvb2x0aXBfZW5hYmxlZGAgZmlyc3QuXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWRyb3Bkb3duLW1heC13aWR0aDogNzV2dztcbn1cblxuLmNrLmNrLWRyb3Bkb3duIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRwb3NpdGlvbjogcmVsYXRpdmVcbn1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fYXJyb3cge1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdHotaW5kZXg6IHZhcigtLWNrLXotZGVmYXVsdCk7XG5cdH1cblxuLmNrLmNrLWRyb3Bkb3duIHtcblxuXHQvKiBEcm9wZG93biBidXR0b24gc2hvdWxkIHNwYW4gaG9yaXpvbnRhbGx5LCBlLmcuIGluIHZlcnRpY2FsIHRvb2xiYXJzICovXG59XG5cbi5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24ge1xuXHRcdHdpZHRoOiAxMDAlXG5cblx0XHQvKiBEaXNhYmxlIG1haW4gYnV0dG9uJ3MgdG9vbHRpcCB3aGVuIHRoZSBkcm9wZG93biBpcyBvcGVuLiBPdGhlcndpc2UgdGhlIHBhbmVsIG1heVxuXHRcdHBhcnRpYWxseSBjb3ZlciB0aGUgdG9vbHRpcCAqL1xuXHR9XG5cbi5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24uY2stb24gLmNrLXRvb2x0aXAge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwge1xuXHRcdC8qIFRoaXMgaXMgdG8gZ2V0IHJpZCBvZiBmbGlja2VyaW5nIHdoZW4gdGhlIHRvb2x0aXAgaXMgc2hvd24gdW5kZXIgdGhlIHBhbmVsLFxuXHRcdHdoaWNoIGxvb2tzIGxpa2UgdGhlIHBhbmVsIG1vdmVzIHZlcnRpY2FsbHkgYSBwaXhlbCBkb3duIGFuZCB1cC4gKi9cblx0XHQtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcblxuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1tb2RhbCk7XG5cdFx0bWF4LXdpZHRoOiB2YXIoLS1jay1kcm9wZG93bi1tYXgtd2lkdGgpO1xuXG5cdFx0cG9zaXRpb246IGFic29sdXRlXG5cdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsLXZpc2libGUge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX25lLFxuXHRcdC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9udyxcblx0XHQuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfbixcblx0XHQuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfbm13LFxuXHRcdC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9ubWUge1xuXHRcdFx0Ym90dG9tOiAxMDAlO1xuXHRcdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX3NlLFxuXHRcdC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9zdyxcblx0XHQuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfc213LFxuXHRcdC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9zbWUsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX3Mge1xuXHRcdFx0Lypcblx0XHRcdCAqIFVzaW5nIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoIDAsIDEwMCUsIDAgKSBjYXVzZXMgYmx1cnJ5IGRyb3Bkb3duIG9uIENocm9tZSA2Ny03OCsgb24gbm9uLXJldGluYSBkaXNwbGF5cy5cblx0XHRcdCAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xMDUzLlxuXHRcdFx0ICovXG5cdFx0XHR0b3A6IDEwMCU7XG5cdFx0XHRib3R0b206IGF1dG87XG5cdFx0fVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfbmUsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX3NlIHtcblx0XHRcdGxlZnQ6IDBweDtcblx0XHR9XG5cbi5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9udyxcblx0XHQuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbC5jay1kcm9wZG93bl9fcGFuZWxfc3cge1xuXHRcdFx0cmlnaHQ6IDBweDtcblx0XHR9XG5cbi5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9zLFxuXHRcdC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9uIHtcblx0XHRcdC8qIFBvc2l0aW9uaW5nIHBhbmVscyByZWxhdGl2ZSB0byB0aGUgY2VudGVyIG9mIHRoZSBidXR0b24gKi9cblx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblx0XHR9XG5cbi5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9ubXcsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX3NtdyB7XG5cdFx0XHQvKiBQb3NpdGlvbmluZyBwYW5lbHMgcmVsYXRpdmUgdG8gdGhlIG1pZGRsZS13ZXN0IG9mIHRoZSBidXR0b24gKi9cblx0XHRcdGxlZnQ6IDc1JTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNzUlKTtcblx0XHR9XG5cbi5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9ubWUsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX3NtZSB7XG5cdFx0XHQvKiBQb3NpdGlvbmluZyBwYW5lbHMgcmVsYXRpdmUgdG8gdGhlIG1pZGRsZS1lYXN0IG9mIHRoZSBidXR0b24gKi9cblx0XHRcdGxlZnQ6IDI1JTtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjUlKTtcblx0XHR9XG5cbi8qXG4gKiBUb29sYmFyIGRyb3Bkb3duIHBhbmVscyBzaG91bGQgYmUgYWx3YXlzIGFib3ZlIHRoZSBVSSAoZWcuIG90aGVyIGRyb3Bkb3duIHBhbmVscykgZnJvbSB0aGUgZWRpdG9yJ3MgY29udGVudC5cbiAqIFNlZSBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy83ODc0XG4gKi9cblxuLmNrLmNrLXRvb2xiYXIgLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdHotaW5kZXg6IGNhbGMoIHZhcigtLWNrLXotbW9kYWwpICsgMSApO1xufVxuXG4vKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtdWlcXGNvbXBvbmVudHNcXGRyb3Bkb3duXFxkcm9wZG93bi5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBBIGNsYXNzIHdoaWNoIGluZGljYXRlcyB0aGF0IGFuIGVsZW1lbnQgaG9sZGluZyBpdCBpcyBkaXNhYmxlZC5cbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG5cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbjpyb290IHtcblx0LS1jay1kcm9wZG93bi1hcnJvdy1zaXplOiBjYWxjKDAuNSAqIHZhcigtLWNrLWljb24tc2l6ZSkpO1xufVxuXG4uY2suY2stZHJvcGRvd24ge1xuXHQvKiBFbmFibGUgZm9udCBzaXplIGluaGVyaXRhbmNlLCB3aGljaCBhbGxvd3MgZmx1aWQgVUkgc2NhbGluZy4gKi9cblx0Zm9udC1zaXplOiBpbmhlcml0XG59XG5cbi5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX2Fycm93IHtcblx0XHR3aWR0aDogdmFyKC0tY2stZHJvcGRvd24tYXJyb3ctc2l6ZSk7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0XHRyaWdodDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cblx0XHRcdC8qIEEgc3BhY2UgdG8gYWNjb21tb2RhdGUgdGhlIHRyaWFuZ2xlLiAqL1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0XHRsZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblxuXHRcdFx0LyogQSBzcGFjZSB0byBhY2NvbW1vZGF0ZSB0aGUgdHJpYW5nbGUuICovXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdH1cblxuLmNrLmNrLWRyb3Bkb3duLmNrLWRpc2FibGVkIC5jay1kcm9wZG93bl9fYXJyb3cge1xuXHRcdG9wYWNpdHk6IHZhcigtLWNrLWRpc2FibGVkLW9wYWNpdHkpO1xuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbjpub3QoLmNrLWJ1dHRvbl93aXRoLXRleHQpIHtcblx0XHRcdFx0LyogTWFrZSBzdXJlIGRyb3Bkb3ducyB3aXRoIGp1c3QgYW4gaWNvbiBoYXZlIHRoZSByaWdodCBpbm5lciBzcGFjaW5nICovXG5cdFx0XHRcdHBhZGRpbmctbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0XHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbjpub3QoLmNrLWJ1dHRvbl93aXRoLXRleHQpIHtcblx0XHRcdFx0LyogTWFrZSBzdXJlIGRyb3Bkb3ducyB3aXRoIGp1c3QgYW4gaWNvbiBoYXZlIHRoZSByaWdodCBpbm5lciBzcGFjaW5nICovXG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdFx0fVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uIHtcblxuXHRcdC8qICMyMyAqL1xuXHR9XG5cbi5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0d2lkdGg6IDdlbTtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHR9XG5cbi5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24ge1xuXG5cdFx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy83MCAqL1xuXHR9XG5cbi5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24uY2stZGlzYWJsZWQgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0b3BhY2l0eTogdmFyKC0tY2stZGlzYWJsZWQtb3BhY2l0eSk7XG5cdFx0fVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uIHtcblxuXHRcdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzgxNiAqL1xuXHR9XG5cbi5jay5jay1kcm9wZG93biAuY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24uY2stb24ge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uX2xhYmVsLXdpZHRoX2F1dG8gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0fVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uIHtcblxuXHRcdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzg2OTkgKi9cblx0fVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uLmNrLW9mZjphY3RpdmUsXG5cdFx0LmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbi5jay1vbjphY3RpdmUge1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZVxuXHRcdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1idXR0b24uY2stZHJvcGRvd25fX2J1dHRvbi5jay1vZmY6YWN0aXZlOmZvY3VzLCAuY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1kcm9wZG93bl9fYnV0dG9uLmNrLW9uOmFjdGl2ZTpmb2N1cyB7XG5cdFx0XHRcdGJveC1zaGFkb3c6IHZhcigtLWNrLWZvY3VzLW91dGVyLXNoYWRvdyksIDAgMDtcblx0XHRcdH1cblxuLmNrLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdGJvcmRlci1yYWRpdXM6IDBcbn1cblxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stZHJvcGRvd25fX3BhbmVsLCAuY2suY2stZHJvcGRvd25fX3BhbmVsLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cylcbn1cblxuLmNrLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdGJveC1zaGFkb3c6IHZhcigtLWNrLWRyb3Atc2hhZG93KSwgMCAwO1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWRyb3Bkb3duLXBhbmVsLWJhY2tncm91bmQpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1kcm9wZG93bi1wYW5lbC1ib3JkZXIpO1xuXHRib3R0b206IDA7XG5cblx0LyogTWFrZSBzdXJlIHRoZSBwYW5lbCBpcyBhdCBsZWFzdCBhcyB3aWRlIGFzIHRoZSBkcm9wLWRvd24ncyBidXR0b24uICovXG5cdG1pbi13aWR0aDogMTAwJVxuXG5cdC8qIERpc2FibGVkIGNvcm5lciBib3JkZXIgcmFkaXVzIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgLmRyb3Bkb3duX19idXR0b25cblx0aHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvODE2ICovXG59XG5cbi5jay5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX3NlIHtcblx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHR9XG5cbi5jay5jay1kcm9wZG93bl9fcGFuZWwuY2stZHJvcGRvd25fX3BhbmVsX3N3IHtcblx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuXG4uY2suY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9uZSB7XG5cdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0fVxuXG4uY2suY2stZHJvcGRvd25fX3BhbmVsLmNrLWRyb3Bkb3duX19wYW5lbF9udyB7XG5cdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdH1cbiIsIi8qIEQ6XFxQcm9qZWN0XFxzaXJpdXNcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdWlcXHRoZW1lXFxjb21wb25lbnRzXFx0b29sYmFyXFx0b29sYmFyLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBNYWtlcyBlbGVtZW50IHVuc2VsZWN0YWJsZS5cbiAqL1xuXG4uY2suY2stdG9vbGJhciB7XG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1mbG93OiByb3cgbm93cmFwO1xuXHRhbGlnbi1pdGVtczogY2VudGVyXG59XG5cbi5jay5jay10b29sYmFyID4gLmNrLXRvb2xiYXJfX2l0ZW1zIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZmxvdzogcm93IHdyYXA7XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0XHRmbGV4LWdyb3c6IDE7XG5cblx0fVxuXG4uY2suY2stdG9vbGJhciAuY2suY2stdG9vbGJhcl9fc2VwYXJhdG9yIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2tcblxuXHRcdC8qXG5cdFx0ICogQSBsZWFkaW5nIG9yIHRyYWlsaW5nIHNlcGFyYXRvciBtYWtlcyBubyBzZW5zZSAoc2VwYXJhdGVzIGZyb20gbm90aGluZyBvbiBvbmUgc2lkZSkuXG5cdFx0ICogRm9yIGluc3RhbmNlLCBpdCBjYW4gaGFwcGVuIHdoZW4gdG9vbGJhciBpdGVtcyAoYWxzbyBzZXBhcmF0b3JzKSBhcmUgZ2V0dGluZyBncm91cGVkIG9uZSBieSBvbmUgYW5kXG5cdFx0ICogbW92ZWQgdG8gYW5vdGhlciB0b29sYmFyIGluIHRoZSBkcm9wZG93bi5cblx0XHQgKi9cblx0fVxuXG4uY2suY2stdG9vbGJhciAuY2suY2stdG9vbGJhcl9fc2VwYXJhdG9yOmZpcnN0LWNoaWxkLFxuXHRcdC5jay5jay10b29sYmFyIC5jay5jay10b29sYmFyX19zZXBhcmF0b3I6bGFzdC1jaGlsZCB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuLmNrLmNrLXRvb2xiYXIgLmNrLXRvb2xiYXJfX2xpbmUtYnJlYWsge1xuXHRcdGZsZXgtYmFzaXM6IDEwMCU7XG5cdH1cblxuLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9ncm91cGluZyA+IC5jay10b29sYmFyX19pdGVtcyB7XG5cdFx0ZmxleC13cmFwOiBub3dyYXA7XG5cdH1cblxuLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl92ZXJ0aWNhbCA+IC5jay10b29sYmFyX19pdGVtcyB7XG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0fVxuXG4uY2suY2stdG9vbGJhci5jay10b29sYmFyX2Zsb2F0aW5nID4gLmNrLXRvb2xiYXJfX2l0ZW1zIHtcblx0XHRmbGV4LXdyYXA6IG5vd3JhcDtcblx0fVxuXG4uY2suY2stdG9vbGJhciA+IC5jay5jay10b29sYmFyX19ncm91cGVkLWRyb3Bkb3duID4gLmNrLWRyb3Bkb3duX19idXR0b24gLmNrLWRyb3Bkb3duX19hcnJvdyB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuLyogRDpcXFByb2plY3RcXHNpcml1c1xcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LXVpXFxjb21wb25lbnRzXFx0b29sYmFyXFx0b29sYmFyLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2suY2stdG9vbGJhciB7XG5cdGJvcmRlci1yYWRpdXM6IDBcbn1cblxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stdG9vbGJhciwgLmNrLmNrLXRvb2xiYXIuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKVxufVxuXG4uY2suY2stdG9vbGJhciB7XG5cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItdG9vbGJhci1iYWNrZ3JvdW5kKTtcblx0cGFkZGluZzogMCB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItdG9vbGJhci1ib3JkZXIpXG59XG5cbi5jay5jay10b29sYmFyIC5jay5jay10b29sYmFyX19zZXBhcmF0b3Ige1xuXHRcdGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5cdFx0d2lkdGg6IDFweDtcblx0XHRtaW4td2lkdGg6IDFweDtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci10b29sYmFyLWJvcmRlcik7XG5cblx0XHQvKlxuXHRcdCAqIFRoZXNlIG1hcmdpbnMgbWFrZSB0aGUgc2VwYXJhdG9ycyBsb29rIGJldHRlciBpbiBiYWxsb29uIHRvb2xiYXJzICh3aGVuIGFsaWduZWQgd2l0aCB0aGUgXCJ0aXBcIikuXG5cdFx0ICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzc0OTMuXG5cdFx0ICovXG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuLmNrLmNrLXRvb2xiYXIgLmNrLXRvb2xiYXJfX2xpbmUtYnJlYWsge1xuXHRcdGhlaWdodDogMDtcblx0fVxuXG4uY2suY2stdG9vbGJhciA+IC5jay10b29sYmFyX19pdGVtcyA+ICo6bm90KC5jay10b29sYmFyX19saW5lLWJyZWFrKSB7XG5cdFx0XHQvKiAoIzExKSBTZXBhcmF0ZSB0b29sYmFyIGl0ZW1zLiAqL1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0XHR9XG5cbi5jay5jay10b29sYmFyID4gLmNrLXRvb2xiYXJfX2l0ZW1zIHtcblxuXHRcdC8qIERvbid0IGRpc3BsYXkgYSBzZXBhcmF0b3IgYWZ0ZXIgYW4gZW1wdHkgaXRlbXMgY29udGFpbmVyLCBmb3IgaW5zdGFuY2UsXG5cdFx0d2hlbiBhbGwgaXRlbXMgd2VyZSBncm91cGVkICovXG5cdH1cblxuLmNrLmNrLXRvb2xiYXIgPiAuY2stdG9vbGJhcl9faXRlbXM6ZW1wdHkgKyAuY2suY2stdG9vbGJhcl9fc2VwYXJhdG9yIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG4uY2suY2stdG9vbGJhciA+IC5jay10b29sYmFyX19pdGVtcyA+ICo6bm90KC5jay10b29sYmFyX19saW5lLWJyZWFrKSxcblx0LmNrLmNrLXRvb2xiYXIgPiAuY2suY2stdG9vbGJhcl9fZ3JvdXBlZC1kcm9wZG93biB7XG5cdFx0LyogTWFrZSBzdXJlIGl0ZW1zIHdyYXBwZWQgdG8gdGhlIG5leHQgbGluZSBoYXZlIHYtc3BhY2luZyAqL1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5cbi5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfdmVydGljYWwge1xuXHRcdC8qIEl0ZW1zIGluIGEgdmVydGljYWwgdG9vbGJhciBzcGFuIHRoZSBlbnRpcmUgd2lkdGguICovXG5cdFx0cGFkZGluZzogMFxuXG5cdFx0LyogU3BlY2lmaWNpdHkgbWF0dGVycyBoZXJlLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy8xNjguICovXG5cdH1cblxuLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl92ZXJ0aWNhbCA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jayB7XG5cdFx0XHQvKiBJdGVtcyBpbiBhIHZlcnRpY2FsIHRvb2xiYXIgc2hvdWxkIHNwYW4gdGhlIGhvcml6b250YWwgc3BhY2UuICovXG5cdFx0XHR3aWR0aDogMTAwJTtcblxuXHRcdFx0LyogSXRlbXMgaW4gYSB2ZXJ0aWNhbCB0b29sYmFyIHNob3VsZCBoYXZlIG5vIG1hcmdpbi4gKi9cblx0XHRcdG1hcmdpbjogMDtcblxuXHRcdFx0LyogSXRlbXMgaW4gYSB2ZXJ0aWNhbCB0b29sYmFyIHNwYW4gdGhlIGVudGlyZSB3aWR0aCBzbyByb3VuZGVkIGNvcm5lcnMgYXJlIHBvaW50bGVzcy4gKi9cblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cblx0XHRcdC8qIEl0ZW1zIGluIGEgdmVydGljYWwgdG9vbGJhciBzcGFuIHRoZSBlbnRpcmUgd2lkdGggc28gYW55IGJvcmRlciBpcyBwb2ludGxlc3MuICovXG5cdFx0XHRib3JkZXI6IDA7XG5cdFx0fVxuXG4uY2suY2stdG9vbGJhci5jay10b29sYmFyX2NvbXBhY3Qge1xuXHRcdC8qIE5vIHNwYWNpbmcgYXJvdW5kIGl0ZW1zLiAqL1xuXHRcdHBhZGRpbmc6IDBcblx0fVxuXG4uY2suY2stdG9vbGJhci5jay10b29sYmFyX2NvbXBhY3QgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAqIHtcblx0XHRcdC8qIENvbXBhY3QgdG9vbGJhciBpdGVtcyBoYXZlIG5vIHNwYWNpbmcgYmV0d2VlbiB0aGVtLiAqL1xuXHRcdFx0bWFyZ2luOiAwXG5cblx0XHRcdC8qIFwiTWlkZGxlXCIgY2hpbGRyZW4gc2hvdWxkIGhhdmUgbm8gcm91bmRlZCBjb3JuZXJzLiAqL1xuXHRcdH1cblxuLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9jb21wYWN0ID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gKjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIHtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHRcdH1cblxuLmNrLmNrLXRvb2xiYXIgPiAuY2suY2stdG9vbGJhcl9fZ3JvdXBlZC1kcm9wZG93biB7XG5cdFx0Lypcblx0XHQgKiBEcm9wZG93biBidXR0b24gaGFzIGFzeW1tZXRyaWMgcGFkZGluZyB0byBmaXQgdGhlIGFycm93LlxuXHRcdCAqIFRoaXMgYnV0dG9uIGhhcyBubyBhcnJvdyBzbyBsZXQncyByZXZlcnQgdGhhdCBwYWRkaW5nIGJhY2sgdG8gbm9ybWFsLlxuXHRcdCAqL1xuXHR9XG5cbi5jay5jay10b29sYmFyID4gLmNrLmNrLXRvb2xiYXJfX2dyb3VwZWQtZHJvcGRvd24gPiAuY2suY2stYnV0dG9uLmNrLWRyb3Bkb3duX19idXR0b24ge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXRpbnkpO1xuXHRcdH1cblxuLmNrLXRvb2xiYXItY29udGFpbmVyIC5jay5jay10b29sYmFyIHtcblx0XHRib3JkZXI6IDBcbn1cblxuLyogc3R5bGVsaW50LWRpc2FibGUgKi9cblxuLypcbiAqIFN0eWxlcyBmb3IgUlRMIHRvb2xiYXJzLlxuICpcbiAqIE5vdGU6IEluIHNvbWUgY2FzZXMgKGUuZy4gYSBkZWNvdXBsZWQgZWRpdG9yKSwgdGhlIHRvb2xiYXIgaGFzIGl0cyBvd24gXCJkaXJcIlxuICogYmVjYXVzZSBpdHMgcGFyZW50IGlzIG5vdCBjb250cm9sbGVkIGJ5IHRoZSBlZGl0b3IgZnJhbWV3b3JrLlxuICovXG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLXRvb2xiYXIgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2ssIC5jay5jay10b29sYmFyW2Rpcj1cInJ0bFwiXSA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jayB7XG5cdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLXRvb2xiYXI6bm90KC5jay10b29sYmFyX2NvbXBhY3QpID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrLCAuY2suY2stdG9vbGJhcltkaXI9XCJydGxcIl06bm90KC5jay10b29sYmFyX2NvbXBhY3QpID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrIHtcblx0XHQvKiAoIzExKSBTZXBhcmF0ZSB0b29sYmFyIGl0ZW1zLiAqL1xuXHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay10b29sYmFyID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrOmxhc3QtY2hpbGQsIC5jay5jay10b29sYmFyW2Rpcj1cInJ0bFwiXSA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpsYXN0LWNoaWxkIHtcblx0XHRtYXJnaW4tbGVmdDogMDtcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfY29tcGFjdCA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jaywgLmNrLmNrLXRvb2xiYXJbZGlyPVwicnRsXCJdLmNrLXRvb2xiYXJfY29tcGFjdCA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jayB7XG5cdFx0LyogTm8gcm91bmRlZCBjb3JuZXJzIG9uIHRoZSByaWdodCBzaWRlIG9mIHRoZSBmaXJzdCBjaGlsZC4gKi9cblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfY29tcGFjdCA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpmaXJzdC1jaGlsZCwgLmNrLmNrLXRvb2xiYXJbZGlyPVwicnRsXCJdLmNrLXRvb2xiYXJfY29tcGFjdCA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpmaXJzdC1jaGlsZCB7XG5cdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9jb21wYWN0ID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrLCAuY2suY2stdG9vbGJhcltkaXI9XCJydGxcIl0uY2stdG9vbGJhcl9jb21wYWN0ID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrIHtcblxuXHRcdC8qIE5vIHJvdW5kZWQgY29ybmVycyBvbiB0aGUgbGVmdCBzaWRlIG9mIHRoZSBsYXN0IGNoaWxkLiAqL1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9jb21wYWN0ID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrOmxhc3QtY2hpbGQsIC5jay5jay10b29sYmFyW2Rpcj1cInJ0bFwiXS5jay10b29sYmFyX2NvbXBhY3QgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2s6bGFzdC1jaGlsZCB7XG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stdG9vbGJhcixcbi5jay5jay10b29sYmFyW2Rpcj1cInJ0bFwiXSB7XG5cblx0LyogU2VwYXJhdGUgdGhlIHRoZSBzZXBhcmF0b3IgZm9ybSB0aGUgZ3JvdXBpbmcgZHJvcGRvd24gd2hlbiBzb21lIGl0ZW1zIGFyZSBncm91cGVkLiAqL1xufVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay10b29sYmFyID4gLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvciwgLmNrLmNrLXRvb2xiYXJbZGlyPVwicnRsXCJdID4gLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvciB7XG5cdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLXRvb2xiYXIsXG4uY2suY2stdG9vbGJhcltkaXI9XCJydGxcIl0ge1xuXG5cdC8qIFNvbWUgc3BhY2luZyBiZXR3ZWVuIHRoZSBpdGVtcyBhbmQgdGhlIHNlcGFyYXRvciBiZWZvcmUgdGhlIGdyb3VwZWQgaXRlbXMgZHJvcGRvd24uICovXG59XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLXRvb2xiYXIuY2stdG9vbGJhcl9ncm91cGluZyA+IC5jay10b29sYmFyX19pdGVtczpub3QoOmVtcHR5KTpub3QoOm9ubHktY2hpbGQpLCAuY2suY2stdG9vbGJhcltkaXI9XCJydGxcIl0uY2stdG9vbGJhcl9ncm91cGluZyA+IC5jay10b29sYmFyX19pdGVtczpub3QoOmVtcHR5KTpub3QoOm9ubHktY2hpbGQpIHtcblx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuLypcbiAqIFN0eWxlcyBmb3IgTFRSIHRvb2xiYXJzLlxuICpcbiAqIE5vdGU6IEluIHNvbWUgY2FzZXMgKGUuZy4gYSBkZWNvdXBsZWQgZWRpdG9yKSwgdGhlIHRvb2xiYXIgaGFzIGl0cyBvd24gXCJkaXJcIlxuICogYmVjYXVzZSBpdHMgcGFyZW50IGlzIG5vdCBjb250cm9sbGVkIGJ5IHRoZSBlZGl0b3IgZnJhbWV3b3JrLlxuICovXG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLXRvb2xiYXIgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2s6bGFzdC1jaGlsZCwgLmNrLmNrLXRvb2xiYXJbZGlyPVwibHRyXCJdID4gLmNrLXRvb2xiYXJfX2l0ZW1zID4gLmNrOmxhc3QtY2hpbGQge1xuXHRcdG1hcmdpbi1yaWdodDogMDtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfY29tcGFjdCA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jaywgLmNrLmNrLXRvb2xiYXJbZGlyPVwibHRyXCJdLmNrLXRvb2xiYXJfY29tcGFjdCA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jayB7XG5cdFx0LyogTm8gcm91bmRlZCBjb3JuZXJzIG9uIHRoZSByaWdodCBzaWRlIG9mIHRoZSBmaXJzdCBjaGlsZC4gKi9cblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfY29tcGFjdCA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpmaXJzdC1jaGlsZCwgLmNrLmNrLXRvb2xiYXJbZGlyPVwibHRyXCJdLmNrLXRvb2xiYXJfY29tcGFjdCA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpmaXJzdC1jaGlsZCB7XG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stdG9vbGJhci5jay10b29sYmFyX2NvbXBhY3QgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2ssIC5jay5jay10b29sYmFyW2Rpcj1cImx0clwiXS5jay10b29sYmFyX2NvbXBhY3QgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2sge1xuXG5cdFx0LyogTm8gcm91bmRlZCBjb3JuZXJzIG9uIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIGxhc3QgY2hpbGQuICovXG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stdG9vbGJhci5jay10b29sYmFyX2NvbXBhY3QgPiAuY2stdG9vbGJhcl9faXRlbXMgPiAuY2s6bGFzdC1jaGlsZCwgLmNrLmNrLXRvb2xiYXJbZGlyPVwibHRyXCJdLmNrLXRvb2xiYXJfY29tcGFjdCA+IC5jay10b29sYmFyX19pdGVtcyA+IC5jazpsYXN0LWNoaWxkIHtcblx0XHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stdG9vbGJhcixcbi5jay5jay10b29sYmFyW2Rpcj1cImx0clwiXSB7XG5cblx0LyogU2VwYXJhdGUgdGhlIHRoZSBzZXBhcmF0b3IgZm9ybSB0aGUgZ3JvdXBpbmcgZHJvcGRvd24gd2hlbiBzb21lIGl0ZW1zIGFyZSBncm91cGVkLiAqL1xufVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay10b29sYmFyID4gLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvciwgLmNrLmNrLXRvb2xiYXJbZGlyPVwibHRyXCJdID4gLmNrLmNrLXRvb2xiYXJfX3NlcGFyYXRvciB7XG5cdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay10b29sYmFyLFxuLmNrLmNrLXRvb2xiYXJbZGlyPVwibHRyXCJdIHtcblxuXHQvKiBTb21lIHNwYWNpbmcgYmV0d2VlbiB0aGUgaXRlbXMgYW5kIHRoZSBzZXBhcmF0b3IgYmVmb3JlIHRoZSBncm91cGVkIGl0ZW1zIGRyb3Bkb3duLiAqL1xufVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay10b29sYmFyLmNrLXRvb2xiYXJfZ3JvdXBpbmcgPiAuY2stdG9vbGJhcl9faXRlbXM6bm90KDplbXB0eSk6bm90KDpvbmx5LWNoaWxkKSwgLmNrLmNrLXRvb2xiYXJbZGlyPVwibHRyXCJdLmNrLXRvb2xiYXJfZ3JvdXBpbmcgPiAuY2stdG9vbGJhcl9faXRlbXM6bm90KDplbXB0eSk6bm90KDpvbmx5LWNoaWxkKSB7XG5cdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXNtYWxsKTtcblx0fVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCIvKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXVpXFx0aGVtZVxcY29tcG9uZW50c1xcbGlzdFxcbGlzdC5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogTWFrZXMgZWxlbWVudCB1bnNlbGVjdGFibGUuXG4gKi9cblxuLmNrLmNrLWxpc3Qge1xuXHQtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHQtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW5cbn1cblxuLmNrLmNrLWxpc3QgLmNrLWxpc3RfX2l0ZW0sXG5cdC5jay5jay1saXN0IC5jay1saXN0X19zZXBhcmF0b3Ige1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cbi5jay5jay1saXN0IHtcblxuXHQvKiBNYWtlIHN1cmUgdGhhdCB3aGF0ZXZlciBjaGlsZCBvZiB0aGUgbGlzdCBpdGVtIGdldHMgZm9jdXMsIGl0IHJlbWFpbnMgb24gdGhlXG5cdHRvcC4gVGhhbmtzIHRvIHRoYXQsIHN0eWxlcyBsaWtlIGJveC1zaGFkb3csIG91dGxpbmUsIGV0Yy4gYXJlIG5vdCBtYXNrZWQgYnlcblx0YWRqYWNlbnQgbGlzdCBpdGVtcy4gKi9cbn1cblxuLmNrLmNrLWxpc3QgLmNrLWxpc3RfX2l0ZW0gPiAqOmZvY3VzIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1kZWZhdWx0KTtcblx0fVxuXG4vKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtdWlcXGNvbXBvbmVudHNcXGxpc3RcXGxpc3QuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEEgY2xhc3Mgd2hpY2ggaW5kaWNhdGVzIHRoYXQgYW4gZWxlbWVudCBob2xkaW5nIGl0IGlzIGRpc2FibGVkLlxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cblxuLmNrLmNrLWxpc3Qge1xuXHRib3JkZXItcmFkaXVzOiAwO1xufVxuXG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1saXN0LCAuY2suY2stbGlzdC5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xufVxuXG4uY2suY2stbGlzdCB7XG5cblx0bGlzdC1zdHlsZS10eXBlOiBub25lO1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saXN0LWJhY2tncm91bmQpO1xufVxuXG4uY2suY2stbGlzdF9faXRlbSB7XG5cdGN1cnNvcjogZGVmYXVsdDtcblx0bWluLXdpZHRoOiAxMmVtXG59XG5cbi5jay5jay1saXN0X19pdGVtIC5jay1idXR0b24ge1xuXHRcdG1pbi1oZWlnaHQ6IHVuc2V0O1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblxuXHRcdC8qIExpc3QgaXRlbXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgaGVpZ2h0LiBVc2UgYWJzb2x1dGUgdW5pdHMgdG8gbWFrZSBzdXJlIGl0IGlzIHNvXG5cdFx0ICAgYmVjYXVzZSBlLmcuIGRpZmZlcmVudCBoZWFkaW5nIHN0eWxlcyBtYXkgaGF2ZSBkaWZmZXJlbnQgaGVpZ2h0XG5cdFx0ICAgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1oZWFkaW5nL2lzc3Vlcy82MyAqL1xuXHRcdHBhZGRpbmc6XG5cdFx0XHRjYWxjKC4yICogdmFyKC0tY2stbGluZS1oZWlnaHQtYmFzZSkgKiB2YXIoLS1jay1mb250LXNpemUtYmFzZSkpXG5cdFx0XHRjYWxjKC40ICogdmFyKC0tY2stbGluZS1oZWlnaHQtYmFzZSkgKiB2YXIoLS1jay1mb250LXNpemUtYmFzZSkpXG5cdH1cblxuLmNrLmNrLWxpc3RfX2l0ZW0gLmNrLWJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LWhlYWRpbmcvaXNzdWVzLzYzICovXG5cdFx0XHRsaW5lLWhlaWdodDogY2FsYygxLjIgKiB2YXIoLS1jay1saW5lLWhlaWdodC1iYXNlKSAqIHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSk7XG5cdFx0fVxuXG4uY2suY2stbGlzdF9faXRlbSAuY2stYnV0dG9uOmFjdGl2ZSB7XG5cdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdH1cblxuLmNrLmNrLWxpc3RfX2l0ZW0gLmNrLWJ1dHRvbi5jay1vbiB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saXN0LWJ1dHRvbi1vbi1iYWNrZ3JvdW5kKTtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1saXN0LWJ1dHRvbi1vbi10ZXh0KVxuXHRcdH1cblxuLmNrLmNrLWxpc3RfX2l0ZW0gLmNrLWJ1dHRvbi5jay1vbjphY3RpdmUge1xuXHRcdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdFx0fVxuXG4uY2suY2stbGlzdF9faXRlbSAuY2stYnV0dG9uLmNrLW9uOmhvdmVyOm5vdCguY2stZGlzYWJsZWQpIHtcblx0XHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1idXR0b24tb24tYmFja2dyb3VuZC1mb2N1cyk7XG5cdFx0XHR9XG5cbi5jay5jay1saXN0X19pdGVtIC5jay1idXR0b24uY2stb246Zm9jdXM6bm90KC5jay1kaXNhYmxlZCkge1xuXHRcdFx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG5cdFx0XHR9XG5cbi5jay5jay1saXN0X19pdGVtIC5jay1idXR0b246aG92ZXI6bm90KC5jay1kaXNhYmxlZCkge1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItbGlzdC1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuXG4uY2suY2stbGlzdF9faXRlbSB7XG5cblx0LyogSXQncyB1bm5lY2Vzc2FyeSB0byBjaGFuZ2UgdGhlIGJhY2tncm91bmQvdGV4dCBvZiBhIHN3aXRjaCB0b2dnbGU7IGl0IGhhcyBkaWZmZXJlbnQgd2F5c1xuXHRvZiBjb252ZXlpbmcgaXRzIHN0YXRlIChsaWtlIHRoZSBzd2l0Y2hlcikgKi9cbn1cblxuLmNrLmNrLWxpc3RfX2l0ZW0gLmNrLXN3aXRjaGJ1dHRvbi5jay1vbiB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saXN0LWJhY2tncm91bmQpO1xuXHRcdFx0Y29sb3I6IGluaGVyaXRcblx0XHR9XG5cbi5jay5jay1saXN0X19pdGVtIC5jay1zd2l0Y2hidXR0b24uY2stb246aG92ZXI6bm90KC5jay1kaXNhYmxlZCkge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saXN0LWJ1dHRvbi1ob3Zlci1iYWNrZ3JvdW5kKTtcblx0XHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0XHR9XG5cbi5jay5jay1saXN0X19zZXBhcmF0b3Ige1xuXHRoZWlnaHQ6IDFweDtcblx0d2lkdGg6IDEwMCU7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcbn1cbiIsIi8qIEQ6XFxQcm9qZWN0XFxzaXJpdXNcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdWlcXHRoZW1lXFxjb21wb25lbnRzXFxidXR0b25cXHN3aXRjaGJ1dHRvbi5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX190b2dnbGUge1xuXHRcdGRpc3BsYXk6IGJsb2NrXG5cdH1cblxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuXG4vKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtdWlcXGNvbXBvbmVudHNcXGJ1dHRvblxcc3dpdGNoYnV0dG9uLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEEgY2xhc3Mgd2hpY2ggaW5kaWNhdGVzIHRoYXQgYW4gZWxlbWVudCBob2xkaW5nIGl0IGlzIGRpc2FibGVkLlxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyogTm90ZTogVG8gYXZvaWQgcmVuZGVyaW5nIGlzc3VlcyAoYWxpYXNpbmcpIGJ1dCB0byBwcmVzZXJ2ZSB0aGUgcmVzcG9uc2l2ZSBuYXR1cmVcbm9mIHRoZSBjb21wb25lbnQsIGZsb2F0aW5n4oCTcG9pbnQgbnVtYmVycyBoYXZlIGJlZW4gdXNlZCB3aGljaCwgZm9yIHRoZSBkZWZhdWx0IGZvbnQgc2l6ZVxuKHNlZTogLS1jay1mb250LXNpemUtYmFzZSksIHdpbGwgZ2VuZXJhdGUgc2ltcGxlIGludGVnZXJzLiAqL1xuXG46cm9vdCB7XG5cdC8qIDM0cHggYXQgMTNweCBmb250LXNpemUgKi9cblx0LS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS13aWR0aDogMi42MTUzODQ2MTU0ZW07XG5cdC8qIDE0cHggYXQgMTNweCBmb250LXNpemUgKi9cblx0LS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS1pbm5lci1zaXplOiAxLjA3NjkyMzA3NjllbTtcblx0LS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS1zcGFjaW5nOiAxcHg7XG5cdC0tY2stc3dpdGNoLWJ1dHRvbi10cmFuc2xhdGlvbjogY2FsYyhcblx0XHR2YXIoLS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS13aWR0aCkgLVxuXHRcdHZhcigtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLWlubmVyLXNpemUpIC1cblx0XHQyICogdmFyKC0tY2stc3dpdGNoLWJ1dHRvbi10b2dnbGUtc3BhY2luZylcblx0KTtcbn1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHQvKiBTZXBhcmF0ZSB0aGUgbGFiZWwgZnJvbSB0aGUgc3dpdGNoICovXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IGNhbGMoMiAqIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpKVxuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0LyogU2VwYXJhdGUgdGhlIGxhYmVsIGZyb20gdGhlIHN3aXRjaCAqL1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGNhbGMoMiAqIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpKVxuXHR9XG5cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZSB7XG5cdFx0Ym9yZGVyLXJhZGl1czogMFxuXHR9XG5cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlLCAuY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX190b2dnbGUuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKVxuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlIHtcblx0XHRcdC8qIE1ha2Ugc3VyZSB0aGUgdG9nZ2xlIGlzIGFsd2F5cyB0byB0aGUgcmlnaHQgYXMgZmFyIGFzIHBvc3NpYmxlLiAqL1xuXHRcdFx0bWFyZ2luLWxlZnQ6IGF1dG9cblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZSB7XG5cdFx0XHQvKiBNYWtlIHN1cmUgdGhlIHRvZ2dsZSBpcyBhbHdheXMgdG8gdGhlIGxlZnQgYXMgZmFyIGFzIHBvc3NpYmxlLiAqL1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiBhdXRvXG5cdH1cblxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlIHtcblxuXHRcdC8qIEdlbnRseSBhbmltYXRlIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSB0b2dnbGUgc3dpdGNoICovXG5cdFx0dHJhbnNpdGlvbjogYmFja2dyb3VuZCA0MDBtcyBlYXNlO1xuXG5cdFx0d2lkdGg6IHZhcigtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLXdpZHRoKTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9mZi1iYWNrZ3JvdW5kKVxuXHR9XG5cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZSAuY2stYnV0dG9uX190b2dnbGVfX2lubmVyIHtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0fVxuXG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZSAuY2stYnV0dG9uX190b2dnbGVfX2lubmVyLCAuY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbiAuY2stYnV0dG9uX190b2dnbGUgLmNrLWJ1dHRvbl9fdG9nZ2xlX19pbm5lci5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiBjYWxjKC41ICogdmFyKC0tY2stYm9yZGVyLXJhZGl1cykpO1xuXHRcdH1cblxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIge1xuXG5cdFx0XHQvKiBMZWF2ZSBzb21lIHRpbnkgYml0IG9mIHNwYWNlIGFyb3VuZCB0aGUgaW5uZXIgcGFydCBvZiB0aGUgc3dpdGNoICovXG5cdFx0XHRtYXJnaW46IHZhcigtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLXNwYWNpbmcpO1xuXHRcdFx0d2lkdGg6IHZhcigtLWNrLXN3aXRjaC1idXR0b24tdG9nZ2xlLWlubmVyLXNpemUpO1xuXHRcdFx0aGVpZ2h0OiB2YXIoLS1jay1zd2l0Y2gtYnV0dG9uLXRvZ2dsZS1pbm5lci1zaXplKTtcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLXN3aXRjaC1idXR0b24taW5uZXItYmFja2dyb3VuZCk7XG5cblx0XHRcdC8qIEdlbnRseSBhbmltYXRlIHRoZSBpbm5lciBwYXJ0IG9mIHRoZSB0b2dnbGUgc3dpdGNoICovXG5cdFx0XHR0cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTtcblx0XHR9XG5cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uIC5jay1idXR0b25fX3RvZ2dsZTpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9mZi1ob3Zlci1iYWNrZ3JvdW5kKVxuXHRcdH1cblxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24gLmNrLWJ1dHRvbl9fdG9nZ2xlOmhvdmVyIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIge1xuXHRcdFx0XHRib3gtc2hhZG93OiAwIDAgMCA1cHggdmFyKC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1pbm5lci1zaGFkb3cpO1xuXHRcdFx0fVxuXG4uY2suY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbi5jay1kaXNhYmxlZCAuY2stYnV0dG9uX190b2dnbGUge1xuXHRcdG9wYWNpdHk6IHZhcigtLWNrLWRpc2FibGVkLW9wYWNpdHkpO1xuXHR9XG5cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uLmNrLW9uIC5jay1idXR0b25fX3RvZ2dsZSB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3Itc3dpdGNoLWJ1dHRvbi1vbi1iYWNrZ3JvdW5kKVxuXHR9XG5cbi5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uLmNrLW9uIC5jay1idXR0b25fX3RvZ2dsZTpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1zd2l0Y2gtYnV0dG9uLW9uLWhvdmVyLWJhY2tncm91bmQpO1xuXHRcdH1cblxuLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24uY2stb24gLmNrLWJ1dHRvbl9fdG9nZ2xlIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIge1xuXHRcdFx0Lypcblx0XHRcdCAqIE1vdmUgdGhlIHRvZ2dsZSBzd2l0Y2ggdG8gdGhlIHJpZ2h0LiBJdCB3aWxsIGJlIGFuaW1hdGVkLlxuXHRcdFx0ICovXG5cdFx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1idXR0b24uY2stc3dpdGNoYnV0dG9uLmNrLW9uIC5jay1idXR0b25fX3RvZ2dsZSAuY2stYnV0dG9uX190b2dnbGVfX2lubmVyIHtcblx0XHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKCB2YXIoIC0tY2stc3dpdGNoLWJ1dHRvbi10cmFuc2xhdGlvbiApIClcblx0XHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24uY2stb24gLmNrLWJ1dHRvbl9fdG9nZ2xlIC5jay1idXR0b25fX3RvZ2dsZV9faW5uZXIge1xuXHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoIGNhbGMoIC0xICogdmFyKCAtLWNrLXN3aXRjaC1idXR0b24tdHJhbnNsYXRpb24gKSApIClcblx0XHR9XG4iLCIvKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXVpXFx0aGVtZVxcY29tcG9uZW50c1xcZHJvcGRvd25cXHRvb2xiYXJkcm9wZG93bi5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2stdG9vbGJhci1kcm9wZG93bi1tYXgtd2lkdGg6IDYwdnc7XG59XG5cbi5jay5jay10b29sYmFyLWRyb3Bkb3duID4gLmNrLWRyb3Bkb3duX19wYW5lbCB7XG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzU1ODYgKi9cblx0d2lkdGg6IG1heC1jb250ZW50O1xuXHRtYXgtd2lkdGg6IHZhcigtLWNrLXRvb2xiYXItZHJvcGRvd24tbWF4LXdpZHRoKVxufVxuXG4uY2suY2stdG9vbGJhci1kcm9wZG93biA+IC5jay1kcm9wZG93bl9fcGFuZWwgLmNrLWJ1dHRvbjpmb2N1cyB7XG5cdFx0XHR6LWluZGV4OiBjYWxjKHZhcigtLWNrLXotZGVmYXVsdCkgKyAxKTtcblx0XHR9XG5cbi8qIEQ6XFxQcm9qZWN0XFxzaXJpdXNcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdGhlbWUtbGFya1xcdGhlbWVcXGNrZWRpdG9yNS11aVxcY29tcG9uZW50c1xcZHJvcGRvd25cXHRvb2xiYXJkcm9wZG93bi5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2suY2stdG9vbGJhci1kcm9wZG93biAuY2stdG9vbGJhciB7XG5cdGJvcmRlcjogMDtcbn1cbiIsIi8qIEQ6XFxQcm9qZWN0XFxzaXJpdXNcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdWlcXHRoZW1lXFxjb21wb25lbnRzXFxkcm9wZG93blxcbGlzdGRyb3Bkb3duLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBOb3RlOiBUaGlzIGZpbGUgc2hvdWxkIGNvbnRhaW4gdGhlIHdpcmVmcmFtZSBzdHlsZXMgb25seS4gQnV0IHNpbmNlIHRoZXJlIGFyZSBubyBzdWNoIHN0eWxlcyxcbiAqIGl0IGFjdHMgYXMgYSBtZXNzYWdlIHRvIHRoZSBidWlsZGVyIHRlbGxpbmcgdGhhdCBpdCBzaG91bGQgbG9vayBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgc3R5bGVzXG4gKiAqKmluIHRoZSB0aGVtZSoqIHdoZW4gY29tcGlsaW5nIHRoZSBlZGl0b3IuXG4gKi9cblxuLyogRDpcXFByb2plY3RcXHNpcml1c1xcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LXVpXFxjb21wb25lbnRzXFxkcm9wZG93blxcbGlzdGRyb3Bkb3duLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwgLmNrLWxpc3Qge1xuXHQvKiBEaXNhYmxlZCByYWRpdXMgb2YgdG9wLWxlZnQgYm9yZGVyIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCAuZHJvcGRvd25fX2J1dHRvblxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84MTYgKi9cblx0Ym9yZGVyLXJhZGl1czogMFxufVxuXG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1kcm9wZG93biAuY2stZHJvcGRvd25fX3BhbmVsIC5jay1saXN0LCAuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbCAuY2stbGlzdC5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDBcbn1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwgLmNrLWxpc3Qge1xuXG5cdC8qIE1ha2Ugc3VyZSB0aGUgYnV0dG9uIGJlbG9uZ2luZyB0byB0aGUgZmlyc3QvbGFzdCBjaGlsZCBvZiB0aGUgbGlzdCBnb2VzIHdlbGwgd2l0aCB0aGVcblx0Ym9yZGVyIHJhZGl1cyBvZiB0aGUgZW50aXJlIHBhbmVsLiAqL1xufVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbCAuY2stbGlzdCAuY2stbGlzdF9faXRlbTpmaXJzdC1jaGlsZCAuY2stYnV0dG9uIHtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDBcblx0XHR9XG5cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwgLmNrLWxpc3QgLmNrLWxpc3RfX2l0ZW06Zmlyc3QtY2hpbGQgLmNrLWJ1dHRvbiwgLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwgLmNrLWxpc3QgLmNrLWxpc3RfX2l0ZW06Zmlyc3QtY2hpbGQgLmNrLWJ1dHRvbi5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuXHRcdFx0XHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMFxuXHRcdH1cblxuLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwgLmNrLWxpc3QgLmNrLWxpc3RfX2l0ZW06bGFzdC1jaGlsZCAuY2stYnV0dG9uIHtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDBcblx0XHR9XG5cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWRyb3Bkb3duIC5jay1kcm9wZG93bl9fcGFuZWwgLmNrLWxpc3QgLmNrLWxpc3RfX2l0ZW06bGFzdC1jaGlsZCAuY2stYnV0dG9uLCAuY2suY2stZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbCAuY2stbGlzdCAuY2stbGlzdF9faXRlbTpsYXN0LWNoaWxkIC5jay1idXR0b24uY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDBcblx0XHR9XG4iLCIvKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LWVuZ2luZVxcdGhlbWVcXHBsYWNlaG9sZGVyLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qIFNlZSBja2VkaXRvci9ja2VkaXRvcjUjOTM2LiAqL1xuXG4uY2suY2stcGxhY2Vob2xkZXI6OmJlZm9yZSwgLmNrIC5jay1wbGFjZWhvbGRlcjo6YmVmb3JlIHtcblx0XHRjb250ZW50OiBhdHRyKGRhdGEtcGxhY2Vob2xkZXIpO1xuXG5cdFx0LyogU2VlIGNrZWRpdG9yL2NrZWRpdG9yNSM0NjkuICovXG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdH1cblxuLyogU2VlIGNrZWRpdG9yL2NrZWRpdG9yNSMxOTg3LiAqL1xuXG4uY2suY2stcmVhZC1vbmx5IC5jay1wbGFjZWhvbGRlcjo6YmVmb3JlIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cbi8qIEQ6XFxQcm9qZWN0XFxzaXJpdXNcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdGhlbWUtbGFya1xcdGhlbWVcXGNrZWRpdG9yNS1lbmdpbmVcXHBsYWNlaG9sZGVyLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qIFNlZSBja2VkaXRvci9ja2VkaXRvcjUjOTM2LiAqL1xuXG4uY2suY2stcGxhY2Vob2xkZXI6OmJlZm9yZSwgLmNrIC5jay1wbGFjZWhvbGRlcjo6YmVmb3JlIHtcblx0XHRjdXJzb3I6IHRleHQ7XG5cdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWVuZ2luZS1wbGFjZWhvbGRlci10ZXh0KTtcblx0fVxuIiwiLyogRDpcXFByb2plY3RcXHNpcml1c1xcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS11aVxcdGhlbWVcXGNvbXBvbmVudHNcXGVkaXRvcnVpXFxlZGl0b3J1aS5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogTm90ZTogVGhpcyBmaWxlIHNob3VsZCBjb250YWluIHRoZSB3aXJlZnJhbWUgc3R5bGVzIG9ubHkuIEJ1dCBzaW5jZSB0aGVyZSBhcmUgbm8gc3VjaCBzdHlsZXMsXG4gKiBpdCBhY3RzIGFzIGEgbWVzc2FnZSB0byB0aGUgYnVpbGRlciB0ZWxsaW5nIHRoYXQgaXQgc2hvdWxkIGxvb2sgZm9yIHRoZSBjb3JyZXNwb25kaW5nIHN0eWxlc1xuICogKippbiB0aGUgdGhlbWUqKiB3aGVuIGNvbXBpbGluZyB0aGUgZWRpdG9yLlxuICovXG5cbi8qIEQ6XFxQcm9qZWN0XFxzaXJpdXNcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdGhlbWUtbGFya1xcdGhlbWVcXGNrZWRpdG9yNS11aVxcY29tcG9uZW50c1xcZWRpdG9ydWlcXGVkaXRvcnVpLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEEgY2xhc3Mgd2hpY2ggaW5kaWNhdGVzIHRoYXQgYW4gZWxlbWVudCBob2xkaW5nIGl0IGlzIGRpc2FibGVkLlxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cblxuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBBIHZpc3VhbCBzdHlsZSBvZiBmb2N1c2VkIGVsZW1lbnQncyBib3JkZXIuXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEltcGxlbWVudHMgYSBidXR0b24gb2YgZ2l2ZW4gYmFja2dyb3VuZCBjb2xvci5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gJGJhY2tncm91bmQgLSBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBidXR0b24uXG4gKiBAcGFyYW0ge1N0cmluZ30gJGJvcmRlciAtIEJvcmRlciBjb2xvciBvZiB0aGUgYnV0dG9uLlxuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1lZGl0YWJsZS1ibHVyLXNlbGVjdGlvbjogaHNsKDAsIDAlLCA4NSUpO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZTpub3QoLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlKSB7XG5cdGJvcmRlci1yYWRpdXM6IDBcbn1cblxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stZWRpdG9yX19lZGl0YWJsZTpub3QoLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlKSwgLmNrLmNrLWVkaXRvcl9fZWRpdGFibGU6bm90KC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZSkuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKVxufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZTpub3QoLmNrLWVkaXRvcl9fbmVzdGVkLWVkaXRhYmxlKS5jay1mb2N1c2VkIHtcblx0XHQvKiBEaXNhYmxlIG5hdGl2ZSBvdXRsaW5lLiAqL1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0Ym9yZGVyOiB2YXIoLS1jay1mb2N1cy1yaW5nKTtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1pbm5lci1zaGFkb3cpLCAwIDA7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lIHtcblx0b3ZlcmZsb3c6IGF1dG87XG5cdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50XG59XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZVtkaXI9XCJsdHJcIl0ge1xuXHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lW2Rpcj1cInJ0bFwiXSB7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdH1cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGVfaW5saW5lIHtcblxuXHQvKiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LXRoZW1lLWxhcmsvaXNzdWVzLzExNiAqL1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUgPiAqOmZpcnN0LWNoaWxkIHtcblx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLWxhcmdlKTtcblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUge1xuXG5cdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzg0NyAqL1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUgPiAqOmxhc3QtY2hpbGQge1xuXHRcdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlX2lubGluZSB7XG5cblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjUxNyAqL1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZV9pbmxpbmUuY2stYmx1cnJlZCA6OnNlbGVjdGlvbiB7XG5cdFx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZWRpdGFibGUtYmx1ci1zZWxlY3Rpb24pO1xuXHR9XG5cbi8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGhlbWUtbGFyay9pc3N1ZXMvMTExICovXG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXRvb2xiYXItY29udGFpbmVyW2NsYXNzKj1cImFycm93X25cIl06OmFmdGVyIHtcblx0XHRib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXHR9XG5cbi5jay5jay1iYWxsb29uLXBhbmVsLmNrLXRvb2xiYXItY29udGFpbmVyW2NsYXNzKj1cImFycm93X3NcIl06OmFmdGVyIHtcblx0XHRib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWZvcmVncm91bmQpO1xuXHR9XG4iLCIvKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXVpXFx0aGVtZVxcY29tcG9uZW50c1xcbGFiZWxcXGxhYmVsLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi5jay5jay1sYWJlbCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uY2suY2stdm9pY2UtbGFiZWwge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4vKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtdWlcXGNvbXBvbmVudHNcXGxhYmVsXFxsYWJlbC5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2suY2stbGFiZWwge1xuXHRmb250LXdlaWdodDogYm9sZDtcbn1cbiIsIi8qIEQ6XFxQcm9qZWN0XFxzaXJpdXNcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdWlcXHRoZW1lXFxjb21wb25lbnRzXFxwYW5lbFxcc3RpY2t5cGFuZWwuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLmNrLXN0aWNreS1wYW5lbCAuY2stc3RpY2t5LXBhbmVsX19jb250ZW50X3N0aWNreSB7XG5cdFx0ei1pbmRleDogdmFyKC0tY2stei1tb2RhbCk7IC8qICMzMTUgKi9cblx0XHRwb3NpdGlvbjogZml4ZWQ7XG5cdFx0dG9wOiAwO1xuXHR9XG5cbi5jay5jay1zdGlja3ktcGFuZWwgLmNrLXN0aWNreS1wYW5lbF9fY29udGVudF9zdGlja3lfYm90dG9tLWxpbWl0IHtcblx0XHR0b3A6IGF1dG87XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHR9XG5cbi8qIEQ6XFxQcm9qZWN0XFxzaXJpdXNcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdGhlbWUtbGFya1xcdGhlbWVcXGNrZWRpdG9yNS11aVxcY29tcG9uZW50c1xccGFuZWxcXHN0aWNreXBhbmVsLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cblxuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG5cbi5jay5jay1zdGlja3ktcGFuZWwgLmNrLXN0aWNreS1wYW5lbF9fY29udGVudF9zdGlja3kge1xuXHRcdGJveC1zaGFkb3c6IHZhcigtLWNrLWRyb3Atc2hhZG93KSwgMCAwO1xuXG5cdFx0Ym9yZGVyLXdpZHRoOiAwIDFweCAxcHg7XG5cdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0fVxuIiwiLyogRDpcXFByb2plY3RcXHNpcml1c1xcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS1lZGl0b3ItY2xhc3NpY1xcdGhlbWVcXGNsYXNzaWNlZGl0b3IuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLmNrLWVkaXRvciB7XG5cdC8qIEFsbCB0aGUgZWxlbWVudHMgd2l0aGluIGAuY2stZWRpdG9yYCBhcmUgcG9zaXRpb25lZCByZWxhdGl2ZWx5IHRvIGl0LlxuXHQgSWYgYW55IGVsZW1lbnQgbmVlZHMgdG8gYmUgcG9zaXRpb25lZCB3aXRoIHJlc3BlY3QgdG8gdGhlIDxib2R5PiwgZXRjLixcblx0IGl0IG11c3QgbGFuZCBvdXRzaWRlIG9mIHRoZSBgLmNrLWVkaXRvcmAgaW4gRE9NLiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmVcbn1cblxuLmNrLmNrLWVkaXRvciAuY2stZWRpdG9yX190b3AgLmNrLXN0aWNreS1wYW5lbCAuY2stdG9vbGJhciB7XG5cdFx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1lZGl0b3ItY2xhc3NpYy9pc3N1ZXMvNjIgKi9cblx0XHR6LWluZGV4OiB2YXIoLS1jay16LW1vZGFsKTtcblx0fVxuXG4vKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtZWRpdG9yLWNsYXNzaWNcXGNsYXNzaWNlZGl0b3IuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEltcGxlbWVudHMgcm91bmRlZCBjb3JuZXIgaW50ZXJmYWNlIGZvciAuY2stcm91bmRlZC1jb3JuZXJzIGNsYXNzLlxuICpcbiAqIEBzZWUgJGNrLWJvcmRlci1yYWRpdXNcbiAqL1xuXG4uY2suY2stZWRpdG9yX190b3AgLmNrLXN0aWNreS1wYW5lbCAuY2stdG9vbGJhciB7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdH1cblxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stZWRpdG9yX190b3AgLmNrLXN0aWNreS1wYW5lbCAuY2stdG9vbGJhciwgLmNrLmNrLWVkaXRvcl9fdG9wIC5jay1zdGlja3ktcGFuZWwgLmNrLXRvb2xiYXIuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdFx0fVxuXG4uY2suY2stZWRpdG9yX190b3AgLmNrLXN0aWNreS1wYW5lbCAuY2stdG9vbGJhciB7XG5cblx0XHRcdGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG5cdFx0fVxuXG4uY2suY2stZWRpdG9yX190b3AgLmNrLXN0aWNreS1wYW5lbCAuY2stc3RpY2t5LXBhbmVsX19jb250ZW50X3N0aWNreSAuY2stdG9vbGJhciB7XG5cdFx0XHRib3JkZXItYm90dG9tLXdpZHRoOiAxcHg7XG5cblx0XHRcdGJvcmRlci1yYWRpdXM6IDBcblx0XHR9XG5cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWVkaXRvcl9fdG9wIC5jay1zdGlja3ktcGFuZWwgLmNrLXN0aWNreS1wYW5lbF9fY29udGVudF9zdGlja3kgLmNrLXRvb2xiYXIsIC5jay5jay1lZGl0b3JfX3RvcCAuY2stc3RpY2t5LXBhbmVsIC5jay1zdGlja3ktcGFuZWxfX2NvbnRlbnRfc3RpY2t5IC5jay10b29sYmFyLmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDBcblx0XHR9XG5cbi8qIE5vdGU6IFVzZSBjay1lZGl0b3JfX21haW4gdG8gbWFrZSBzdXJlIHRoZXNlIHN0eWxlcyBkb24ndCBhcHBseSB0byBvdGhlciBlZGl0b3IgdHlwZXMgKi9cblxuLmNrLmNrLWVkaXRvcl9fbWFpbiA+IC5jay1lZGl0b3JfX2VkaXRhYmxlIHtcblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS10aGVtZS1sYXJrL2lzc3Vlcy8xMTMgKi9cblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblxuXHRib3JkZXItcmFkaXVzOiAwXG59XG5cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWVkaXRvcl9fbWFpbiA+IC5jay1lZGl0b3JfX2VkaXRhYmxlLCAuY2suY2stZWRpdG9yX19tYWluID4gLmNrLWVkaXRvcl9fZWRpdGFibGUuY2stcm91bmRlZC1jb3JuZXJzIHtcblx0XHRib3JkZXItcmFkaXVzOiB2YXIoLS1jay1ib3JkZXItcmFkaXVzKTtcblx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuXHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwXG59XG5cbi5jay5jay1lZGl0b3JfX21haW4gPiAuY2stZWRpdG9yX19lZGl0YWJsZTpub3QoLmNrLWZvY3VzZWQpIHtcblx0XHRib3JkZXItY29sb3I6IHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0fVxuIiwiLyogRDpcXFByb2plY3RcXHNpcml1c1xcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS1oZWFkaW5nXFx0aGVtZVxcaGVhZGluZy5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2suY2staGVhZGluZ19oZWFkaW5nMSB7XG5cdGZvbnQtc2l6ZTogMjBweDtcbn1cblxuLmNrLmNrLWhlYWRpbmdfaGVhZGluZzIge1xuXHRmb250LXNpemU6IDE3cHg7XG59XG5cbi5jay5jay1oZWFkaW5nX2hlYWRpbmczIHtcblx0Zm9udC1zaXplOiAxNHB4O1xufVxuXG4uY2tbY2xhc3MqPVwiY2staGVhZGluZ19oZWFkaW5nXCJdIHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIEQ6XFxQcm9qZWN0XFxzaXJpdXNcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdGhlbWUtbGFya1xcdGhlbWVcXGNrZWRpdG9yNS1oZWFkaW5nXFxoZWFkaW5nLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qIFJlc2l6ZSBkcm9wZG93bidzIGJ1dHRvbiBsYWJlbC4gKi9cblxuLmNrLmNrLWRyb3Bkb3duLmNrLWhlYWRpbmctZHJvcGRvd24gLmNrLWRyb3Bkb3duX19idXR0b24gLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdHdpZHRoOiA4ZW07XG5cdH1cblxuLmNrLmNrLWRyb3Bkb3duLmNrLWhlYWRpbmctZHJvcGRvd24gLmNrLWRyb3Bkb3duX19wYW5lbCAuY2stbGlzdF9faXRlbSB7XG5cdFx0bWluLXdpZHRoOiAxOGVtO1xuXHR9XG4iLCIvKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LWxpbmtcXHRoZW1lXFxsaW5rLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBOb3RlOiBUaGlzIGZpbGUgc2hvdWxkIGNvbnRhaW4gdGhlIHdpcmVmcmFtZSBzdHlsZXMgb25seS4gQnV0IHNpbmNlIHRoZXJlIGFyZSBubyBzdWNoIHN0eWxlcyxcbiAqIGl0IGFjdHMgYXMgYSBtZXNzYWdlIHRvIHRoZSBidWlsZGVyIHRlbGxpbmcgdGhhdCBpdCBzaG91bGQgbG9vayBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgc3R5bGVzXG4gKiAqKmluIHRoZSB0aGVtZSoqIHdoZW4gY29tcGlsaW5nIHRoZSBlZGl0b3IuXG4gKi9cblxuLyogRDpcXFByb2plY3RcXHNpcml1c1xcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LWxpbmtcXGxpbmsuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyogQ2xhc3MgYWRkZWQgdG8gc3BhbiBlbGVtZW50IHN1cnJvdW5kaW5nIGN1cnJlbnRseSBzZWxlY3RlZCBsaW5rLiAqL1xuXG4uY2sgLmNrLWxpbmtfc2VsZWN0ZWQge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saW5rLXNlbGVjdGVkLWJhY2tncm91bmQpO1xufVxuXG4vKlxuICogQ2xhc3NlcyB1c2VkIGJ5IHRoZSBcImZha2UgdmlzdWFsIHNlbGVjdGlvblwiIGRpc3BsYXllZCBpbiB0aGUgY29udGVudCB3aGVuIGFuIGlucHV0XG4gKiBpbiB0aGUgbGluayBVSSBoYXMgZm9jdXMgKHRoZSBicm93c2VyIGRvZXMgbm90IHJlbmRlciB0aGUgbmF0aXZlIHNlbGVjdGlvbiBpbiB0aGlzIHN0YXRlKS5cbiAqL1xuXG4uY2sgLmNrLWZha2UtbGluay1zZWxlY3Rpb24ge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1saW5rLWZha2Utc2VsZWN0aW9uKTtcbn1cblxuLyogQSBjb2xsYXBzZWQgZmFrZSB2aXN1YWwgc2VsZWN0aW9uLiAqL1xuXG4uY2sgLmNrLWZha2UtbGluay1zZWxlY3Rpb25fY29sbGFwc2VkIHtcblx0aGVpZ2h0OiAxMDAlO1xuXHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpO1xuXHRtYXJnaW4tcmlnaHQ6IC0xcHg7XG5cdG91dGxpbmU6IHNvbGlkIDFweCBoc2xhKDAsIDAlLCAxMDAlLCAuNSk7XG59XG4iLCIvKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXVpXFx0aGVtZVxcY29tcG9uZW50c1xccGFuZWxcXGJhbGxvb25yb3RhdG9yLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi5jayAuY2stYmFsbG9vbi1yb3RhdG9yX19uYXZpZ2F0aW9uIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qIEJ1dHRvbnMgaW5zaWRlIGEgdG9vbGJhciBzaG91bGQgYmUgY2VudGVyZWQgd2hlbiByb3RhdG9yIGJhciBpcyB3aWRlci5cbiAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS11aS9pc3N1ZXMvNDk1XG4gKi9cblxuLmNrIC5jay1iYWxsb29uLXJvdGF0b3JfX2NvbnRlbnQgLmNrLXRvb2xiYXIge1xuXHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLyogRDpcXFByb2plY3RcXHNpcml1c1xcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LXVpXFxjb21wb25lbnRzXFxwYW5lbFxcYmFsbG9vbnJvdGF0b3IuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrIC5jay1iYWxsb29uLXJvdGF0b3JfX25hdmlnYXRpb24ge1xuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci10b29sYmFyLWJhY2tncm91bmQpO1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItdG9vbGJhci1ib3JkZXIpO1xuXHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctc21hbGwpXG5cblx0LyogTGV0J3Mga2VlcCBzaW1pbGFyIGFwcGVhcmFuY2UgdG8gYGNrLXRvb2xiYXJgLiAqL1xufVxuXG4uY2sgLmNrLWJhbGxvb24tcm90YXRvcl9fbmF2aWdhdGlvbiA+ICoge1xuXHRcdG1hcmdpbi1yaWdodDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0bWFyZ2luLXRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0bWFyZ2luLWJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdH1cblxuLmNrIC5jay1iYWxsb29uLXJvdGF0b3JfX25hdmlnYXRpb24ge1xuXG5cdC8qIEdpdmVzIGNvdW50ZXIgbW9yZSBicmVhdGggdGhhbiBidXR0b25zLiAqL1xufVxuXG4uY2sgLmNrLWJhbGxvb24tcm90YXRvcl9fbmF2aWdhdGlvbiAuY2stYmFsbG9vbi1yb3RhdG9yX19jb3VudGVyIHtcblx0XHRtYXJnaW4tcmlnaHQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXG5cdFx0LyogV2UgbmVlZCB0byB1c2Ugc21hbGxlciBtYXJnaW4gYmVjYXVzZSBvZiBwcmV2aW91cyBidXR0b24ncyByaWdodCBtYXJnaW4uICovXG5cdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHR9XG5cbi5jayAuY2stYmFsbG9vbi1yb3RhdG9yX19jb250ZW50IHtcblxuXHQvKiBEaXNhYmxlIGRlZmF1bHQgYW5ub3RhdGlvbiBzaGFkb3cgaW5zaWRlIHJvdGF0b3Igd2l0aCBmYWtlIHBhbmVscy4gKi9cbn1cblxuLmNrIC5jay1iYWxsb29uLXJvdGF0b3JfX2NvbnRlbnQgLmNrLmNrLWFubm90YXRpb24td3JhcHBlciB7XG5cdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0fVxuIiwiLyogRDpcXFByb2plY3RcXHNpcml1c1xcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS11aVxcdGhlbWVcXGNvbXBvbmVudHNcXHBhbmVsXFxmYWtlcGFuZWwuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrIC5jay1mYWtlLXBhbmVsIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdC8qIEZha2UgcGFuZWxzIHNob3VsZCBiZSBwbGFjZWQgdW5kZXIgbWFpbiBiYWxsb29uIGNvbnRlbnQuICovXG5cdHotaW5kZXg6IGNhbGModmFyKC0tY2stei1tb2RhbCkgLSAxKTtcbn1cblxuLmNrIC5jay1mYWtlLXBhbmVsIGRpdiB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLmNrIC5jay1mYWtlLXBhbmVsIGRpdjpudGgtY2hpbGQoIDEgKSB7XG5cdHotaW5kZXg6IDI7XG59XG5cbi5jayAuY2stZmFrZS1wYW5lbCBkaXY6bnRoLWNoaWxkKCAyICkge1xuXHR6LWluZGV4OiAxO1xufVxuXG4vKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtdWlcXGNvbXBvbmVudHNcXHBhbmVsXFxmYWtlcGFuZWwuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEEgaGVscGVyIHRvIGNvbWJpbmUgbXVsdGlwbGUgc2hhZG93cy5cbiAqL1xuXG4vKipcbiAqIEdpdmVzIGFuIGVsZW1lbnQgYSBkcm9wIHNoYWRvdyBzbyBpdCBsb29rcyBsaWtlIGEgZmxvYXRpbmcgcGFuZWwuXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtaG9yaXpvbnRhbDogNnB4O1xuXHQtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtdmVydGljYWw6IDZweDtcbn1cblxuLyogTGV0J3MgdXNlIGAuY2stYmFsbG9vbi1wYW5lbGAgYXBwZWFyYW5jZS4gU2VlOiBiYWxsb29ucGFuZWwuY3NzLiAqL1xuXG4uY2sgLmNrLWZha2UtcGFuZWwgZGl2IHtcblx0Ym94LXNoYWRvdzogdmFyKC0tY2stZHJvcC1zaGFkb3cpLCAwIDA7XG5cblx0bWluLWhlaWdodDogMTVweDtcblxuXHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1wYW5lbC1iYWNrZ3JvdW5kKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItcGFuZWwtYm9yZGVyKTtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cyk7XG5cblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJTtcbn1cblxuLmNrIC5jay1mYWtlLXBhbmVsIGRpdjpudGgtY2hpbGQoIDEgKSB7XG5cdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1iYWxsb29uLWZha2UtcGFuZWwtb2Zmc2V0LWhvcml6b250YWwpO1xuXHRtYXJnaW4tdG9wOiB2YXIoLS1jay1iYWxsb29uLWZha2UtcGFuZWwtb2Zmc2V0LXZlcnRpY2FsKTtcbn1cblxuLmNrIC5jay1mYWtlLXBhbmVsIGRpdjpudGgtY2hpbGQoIDIgKSB7XG5cdG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtaG9yaXpvbnRhbCkgKiAyKTtcblx0bWFyZ2luLXRvcDogY2FsYyh2YXIoLS1jay1iYWxsb29uLWZha2UtcGFuZWwtb2Zmc2V0LXZlcnRpY2FsKSAqIDIpO1xufVxuXG4uY2sgLmNrLWZha2UtcGFuZWwgZGl2Om50aC1jaGlsZCggMyApIHtcblx0bWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC1ob3Jpem9udGFsKSAqIDMpO1xuXHRtYXJnaW4tdG9wOiBjYWxjKHZhcigtLWNrLWJhbGxvb24tZmFrZS1wYW5lbC1vZmZzZXQtdmVydGljYWwpICogMyk7XG59XG5cbi8qIElmIGJhbGxvb24gaXMgcG9zaXRpb25lZCBhYm92ZSBlbGVtZW50LCB3ZSBuZWVkIHRvIG1vdmUgZmFrZSBwYW5lbCB0byB0aGUgdG9wLiAqL1xuXG4uY2sgLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfcyArIC5jay1mYWtlLXBhbmVsLFxuLmNrIC5jay1iYWxsb29uLXBhbmVsX2Fycm93X3NlICsgLmNrLWZha2UtcGFuZWwsXG4uY2sgLmNrLWJhbGxvb24tcGFuZWxfYXJyb3dfc3cgKyAuY2stZmFrZS1wYW5lbCB7XG5cdC0tY2stYmFsbG9vbi1mYWtlLXBhbmVsLW9mZnNldC12ZXJ0aWNhbDogLTZweDtcbn1cbiIsIi8qIEQ6XFxQcm9qZWN0XFxzaXJpdXNcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdWlcXHRoZW1lXFxjb21wb25lbnRzXFxsYWJlbGVkZmllbGRcXGxhYmVsZWRmaWVsZHZpZXcuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG5cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLmNrLWxhYmVsIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdH1cblxuLyogRDpcXFByb2plY3RcXHNpcml1c1xcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LXVpXFxjb21wb25lbnRzXFxsYWJlbGVkZmllbGRcXGxhYmVsZWRmaWVsZHZpZXcuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG5cbjpyb290IHtcblx0LS1jay1sYWJlbGVkLWZpZWxkLXZpZXctdHJhbnNpdGlvbjogLjFzIGN1YmljLWJlemllcigwLCAwLCAwLjI0LCAwLjk1KTtcblx0LS1jay1sYWJlbGVkLWZpZWxkLWVtcHR5LXVuZm9jdXNlZC1tYXgtd2lkdGg6IDEwMCUgLSAyICogdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHQtLWNrLWNvbG9yLWxhYmVsZWQtZmllbGQtbGFiZWwtYmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcbn1cblxuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdGJvcmRlci1yYWRpdXM6IDBcbn1cblxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3LCAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cylcbn1cblxuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIge1xuXHRcdHdpZHRoOiAxMDAlXG5cdH1cblxuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwge1xuXHRcdFx0dG9wOiAwcHg7XG5cdFx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsIHtcblx0XHRcdFx0bGVmdDogMHB4O1xuXHRcdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3ID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay5jay1sYWJlbCB7XG5cdFx0XHRcdHJpZ2h0OiAwcHg7XG5cdFx0fVxuXG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3ID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay5jay1sYWJlbCB7XG5cblx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0dHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuXG5cdFx0XHQvKiBCeSBkZWZhdWx0LCBkaXNwbGF5IHRoZSBsYWJlbCBzY2FsZWQgZG93biBhYm92ZSB0aGUgZmllbGQuICovXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSksIC02cHgpIHNjYWxlKC43NSk7XG5cblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWxhYmVsZWQtZmllbGQtbGFiZWwtYmFja2dyb3VuZCk7XG5cdFx0XHRwYWRkaW5nOiAwIGNhbGMoLjUgKiB2YXIoLS1jay1mb250LXNpemUtdGlueSkpO1xuXHRcdFx0bGluZS1oZWlnaHQ6IGluaXRpYWw7XG5cdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXG5cdFx0XHQvKiBQcmV2ZW50IG92ZXJmbG93IHdoZW4gdGhlIGxhYmVsIGlzIGxvbmdlciB0aGFuIHRoZSBpbnB1dCAqL1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cblx0XHRcdHRyYW5zaXRpb246XG5cdFx0XHRcdHRyYW5zZm9ybSB2YXIoLS1jay1sYWJlbGVkLWZpZWxkLXZpZXctdHJhbnNpdGlvbiksXG5cdFx0XHRcdHBhZGRpbmcgdmFyKC0tY2stbGFiZWxlZC1maWVsZC12aWV3LXRyYW5zaXRpb24pLFxuXHRcdFx0XHRiYWNrZ3JvdW5kIHZhcigtLWNrLWxhYmVsZWQtZmllbGQtdmlldy10cmFuc2l0aW9uKTtcblx0XHR9XG5cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stZXJyb3IgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsIHtcblx0XHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1iYXNlLWVycm9yKTtcblx0XHR9XG5cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stZXJyb3IgLmNrLWlucHV0Om5vdChbcmVhZG9ubHldKSArIC5jay5jay1sYWJlbCB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcik7XG5cdFx0fVxuXG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1cyB7XG5cdFx0Zm9udC1zaXplOiB2YXIoLS1jay1mb250LXNpemUtc21hbGwpO1xuXHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXG5cdFx0LyogTGV0IHRoZSBpbmZvIHdyYXAgdG8gdGhlIG5leHQgbGluZSB0byBhdm9pZCBzdHJldGNoaW5nIHRoZSBsYXlvdXQgaG9yaXpvbnRhbGx5LlxuXHRcdFRoZSBzdGF0dXMgY291bGQgYmUgdmVyeSBsb25nLiAqL1xuXHRcdHdoaXRlLXNwYWNlOiBub3JtYWxcblx0fVxuXG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1cy5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX3N0YXR1c19lcnJvciB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItYmFzZS1lcnJvcik7XG5cdFx0fVxuXG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblxuXHQvKiBEaXNhYmxlZCBmaWVsZHMgYW5kIGZpZWxkcyB0aGF0IGhhdmUgbm8gZm9jdXMgc2hvdWxkIGZhZGUgb3V0LiAqL1xufVxuXG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLWRpc2FibGVkID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay5jay1sYWJlbCxcblx0LmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZW1wdHk6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZm9jdXNlZCkgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsIHtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItaW5wdXQtZGlzYWJsZWQtdGV4dCk7XG5cdH1cblxuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cblx0LyogRmllbGRzIHRoYXQgYXJlIGRpc2FibGVkIG9yIG5vdCBmb2N1c2VkIGFuZCB3aXRob3V0IGEgcGxhY2Vob2xkZXIgc2hvdWxkIGhhdmUgZnVsbC1zaXplZCBsYWJlbHMuICovXG5cdC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG59XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1kaXNhYmxlZCA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2suY2stbGFiZWwsXG5cdFtkaXI9XCJsdHJcIl0gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZW1wdHk6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZm9jdXNlZCk6bm90KC5jay1sYWJlbGVkLWZpZWxkLXZpZXdfcGxhY2Vob2xkZXIpID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay5jay1sYWJlbCB7XG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSh2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSksIGNhbGMoMC42ICogdmFyKC0tY2stZm9udC1zaXplLWJhc2UpKSkgc2NhbGUoMSk7XG5cdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLWRpc2FibGVkID4gLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlld19faW5wdXQtd3JhcHBlciA+IC5jay5jay1sYWJlbCxcblx0W2Rpcj1cInJ0bFwiXSAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19mb2N1c2VkKTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19wbGFjZWhvbGRlcikgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsIHtcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKGNhbGMoLTEgKiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSkpLCBjYWxjKDAuNiAqIHZhcigtLWNrLWZvbnQtc2l6ZS1iYXNlKSkpIHNjYWxlKDEpO1xuXHR9XG5cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcuY2stZGlzYWJsZWQgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsLFxuXHQuY2suY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19mb2N1c2VkKTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19wbGFjZWhvbGRlcikgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLmNrLWxhYmVsIHtcblxuXHRcdC8qIENvbXBlbnNhdGUgZm9yIHRoZSBkZWZhdWx0IHRyYW5zbGF0ZSBwb3NpdGlvbi4gKi9cblx0XHRtYXgtd2lkdGg6IGNhbGModmFyKC0tY2stbGFiZWxlZC1maWVsZC1lbXB0eS11bmZvY3VzZWQtbWF4LXdpZHRoKSk7XG5cblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG5cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXG5cdC8qLS0tLS0tIERyb3Bkb3duVmlldyBpbnRlZ3JhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC8qIE1ha2Ugc3VyZSBkcm9wZG93bicgYmFja2dyb3VuZCBjb2xvciBpbiBhbnkgb2YgZHJvcGRvd24ncyBzdGF0ZSBkb2VzIG5vdCBjb2xsaWRlIHdpdGggbGFiZWxlZCBmaWVsZC4gKi9cbn1cblxuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldyA+IC5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXdfX2lucHV0LXdyYXBwZXIgPiAuY2stZHJvcGRvd24gPiAuY2suY2stYnV0dG9uIHtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0fVxuXG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblxuXHQvKiBXaGVuIHRoZSBkcm9wZG93biBpcyBcImVtcHR5XCIsIHRoZSBsYWJlbGVkIGZpZWxkIGxhYmVsIHJlcGxhY2VzIGl0cyBsYWJlbC4gKi9cbn1cblxuLmNrLmNrLWxhYmVsZWQtZmllbGQtdmlldy5jay1sYWJlbGVkLWZpZWxkLXZpZXdfZW1wdHkgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLWRyb3Bkb3duID4gLmNrLWJ1dHRvbiA+IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRvcGFjaXR5OiAwO1xuXHR9XG5cbi5jay5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXG5cdC8qIE1ha2Ugc3VyZSB0aGUgbGFiZWwgb2YgdGhlIGVtcHR5LCB1bmZvY3VzZWQgaW5wdXQgZG9lcyBub3QgY292ZXIgdGhlIGRyb3Bkb3duIGFycm93LiAqL1xufVxuXG4uY2suY2stbGFiZWxlZC1maWVsZC12aWV3LmNrLWxhYmVsZWQtZmllbGQtdmlld19lbXB0eTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19mb2N1c2VkKTpub3QoLmNrLWxhYmVsZWQtZmllbGQtdmlld19wbGFjZWhvbGRlcikgPiAuY2suY2stbGFiZWxlZC1maWVsZC12aWV3X19pbnB1dC13cmFwcGVyID4gLmNrLWRyb3Bkb3duICsgLmNrLWxhYmVsIHtcblx0XHRtYXgtd2lkdGg6IGNhbGModmFyKC0tY2stbGFiZWxlZC1maWVsZC1lbXB0eS11bmZvY3VzZWQtbWF4LXdpZHRoKSAtIHZhcigtLWNrLWRyb3Bkb3duLWFycm93LXNpemUpIC0gdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCkpO1xuXHR9XG4iLCIvKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXVpXFx0aGVtZVxcY29tcG9uZW50c1xcaW5wdXR0ZXh0XFxpbnB1dHRleHQuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIE5vdGU6IFRoaXMgZmlsZSBzaG91bGQgY29udGFpbiB0aGUgd2lyZWZyYW1lIHN0eWxlcyBvbmx5LiBCdXQgc2luY2UgdGhlcmUgYXJlIG5vIHN1Y2ggc3R5bGVzLFxuICogaXQgYWN0cyBhcyBhIG1lc3NhZ2UgdG8gdGhlIGJ1aWxkZXIgdGVsbGluZyB0aGF0IGl0IHNob3VsZCBsb29rIGZvciB0aGUgY29ycmVzcG9uZGluZyBzdHlsZXNcbiAqICoqaW4gdGhlIHRoZW1lKiogd2hlbiBjb21waWxpbmcgdGhlIGVkaXRvci5cbiAqL1xuXG4vKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtdWlcXGNvbXBvbmVudHNcXGlucHV0dGV4dFxcaW5wdXR0ZXh0LmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBJbXBsZW1lbnRzIHJvdW5kZWQgY29ybmVyIGludGVyZmFjZSBmb3IgLmNrLXJvdW5kZWQtY29ybmVycyBjbGFzcy5cbiAqXG4gKiBAc2VlICRjay1ib3JkZXItcmFkaXVzXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEEgdmlzdWFsIHN0eWxlIG9mIGZvY3VzZWQgZWxlbWVudCdzIGJvcmRlci5cbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogQSBoZWxwZXIgdG8gY29tYmluZSBtdWx0aXBsZSBzaGFkb3dzLlxuICovXG5cbi8qKlxuICogR2l2ZXMgYW4gZWxlbWVudCBhIGRyb3Agc2hhZG93IHNvIGl0IGxvb2tzIGxpa2UgYSBmbG9hdGluZyBwYW5lbC5cbiAqL1xuXG46cm9vdCB7XG5cdC0tY2staW5wdXQtdGV4dC13aWR0aDogMThlbTtcbn1cblxuLmNrLmNrLWlucHV0LXRleHQge1xuXHRib3JkZXItcmFkaXVzOiAwXG59XG5cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLWlucHV0LXRleHQsIC5jay5jay1pbnB1dC10ZXh0LmNrLXJvdW5kZWQtY29ybmVycyB7XG5cdFx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stYm9yZGVyLXJhZGl1cylcbn1cblxuLmNrLmNrLWlucHV0LXRleHQge1xuXG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWlucHV0LWJhY2tncm91bmQpO1xuXHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1pbnB1dC1ib3JkZXIpO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLWV4dHJhLXRpbnkpIHZhcigtLWNrLXNwYWNpbmctbWVkaXVtKTtcblx0bWluLXdpZHRoOiB2YXIoLS1jay1pbnB1dC10ZXh0LXdpZHRoKTtcblxuXHQvKiBUaGlzIGlzIGltcG9ydGFudCB0byBzdGF5IG9mIHRoZSBzYW1lIGhlaWdodCBhcyBzdXJyb3VuZGluZyBidXR0b25zICovXG5cdG1pbi1oZWlnaHQ6IHZhcigtLWNrLXVpLWNvbXBvbmVudC1taW4taGVpZ2h0KTtcblxuXHQvKiBBcHBseSBzb21lIHNtb290aCB0cmFuc2l0aW9uIHRvIHRoZSBib3gtc2hhZG93IGFuZCBib3JkZXIuICovXG5cdHRyYW5zaXRpb246IGJveC1zaGFkb3cgLjFzIGVhc2UtaW4tb3V0LCBib3JkZXIgLjFzIGVhc2UtaW4tb3V0XG59XG5cbi5jay5jay1pbnB1dC10ZXh0OmZvY3VzIHtcblx0XHQvKiBEaXNhYmxlIG5hdGl2ZSBvdXRsaW5lLiAqL1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0Ym9yZGVyOiB2YXIoLS1jay1mb2N1cy1yaW5nKTtcblx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1mb2N1cy1vdXRlci1zaGFkb3cpLCAwIDA7XG5cdH1cblxuLmNrLmNrLWlucHV0LXRleHRbcmVhZG9ubHldIHtcblx0XHRib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC1ib3JkZXIpO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWlucHV0LWRpc2FibGVkLWJhY2tncm91bmQpO1xuXHRcdGNvbG9yOiB2YXIoLS1jay1jb2xvci1pbnB1dC1kaXNhYmxlZC10ZXh0KVxuXHR9XG5cbi5jay5jay1pbnB1dC10ZXh0W3JlYWRvbmx5XTpmb2N1cyB7XG5cdFx0XHQvKiBUaGUgcmVhZC1vbmx5IGlucHV0IHNob3VsZCBoYXZlIGEgc2xpZ2h0bHkgbGVzcyB2aXNpYmxlIHNoYWRvdyB3aGVuIGZvY3VzZWQuICovXG5cdFx0XHRib3gtc2hhZG93OiB2YXIoLS1jay1mb2N1cy1kaXNhYmxlZC1vdXRlci1zaGFkb3cpLCAwIDA7XG5cdFx0fVxuXG4uY2suY2staW5wdXQtdGV4dC5jay1lcnJvciB7XG5cdFx0Ym9yZGVyLWNvbG9yOiB2YXIoLS1jay1jb2xvci1pbnB1dC1lcnJvci1ib3JkZXIpO1xuXHRcdGFuaW1hdGlvbjogY2stdGV4dC1pbnB1dC1zaGFrZSAuM3MgZWFzZSBib3RoXG5cdH1cblxuLmNrLmNrLWlucHV0LXRleHQuY2stZXJyb3I6Zm9jdXMge1xuXHRcdFx0Ym94LXNoYWRvdzogdmFyKC0tY2stZm9jdXMtZXJyb3Itb3V0ZXItc2hhZG93KSwgMCAwO1xuXHRcdH1cblxuQGtleWZyYW1lcyBjay10ZXh0LWlucHV0LXNoYWtlIHtcblx0MjAlIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTJweCk7XG5cdH1cblxuXHQ0MCUge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpO1xuXHR9XG5cblx0NjAlIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTFweCk7XG5cdH1cblxuXHQ4MCUge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxcHgpO1xuXHR9XG59XG4iLCIvKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LWxpbmtcXHRoZW1lXFxsaW5rZm9ybS5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi5jay5jay1saW5rLWZvcm0ge1xuXHRkaXNwbGF5OiBmbGV4XG59XG5cbi5jay5jay1saW5rLWZvcm0gLmNrLWxhYmVsIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cbi5jay5jay1saW5rLWZvcm0ge1xuXHRcdGZsZXgtd3JhcDogd3JhcFxufVxuXG5cdFx0LmNrLmNrLWxpbmstZm9ybSAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdGZsZXgtYmFzaXM6IDEwMCU7XG5cdFx0fVxuXG5cdFx0LmNrLmNrLWxpbmstZm9ybSAuY2stYnV0dG9uIHtcblx0XHRcdGZsZXgtYmFzaXM6IDUwJTtcblx0XHR9XG5cdH1cblxuLypcbiAqIFN0eWxlIGxpbmsgZm9ybSBkaWZmZXJlbnRseSB3aGVuIG1hbnVhbCBkZWNvcmF0b3JzIGFyZSBhdmFpbGFibGUuXG4gKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtbGluay9pc3N1ZXMvMTg2LlxuICovXG5cbi5jay5jay1saW5rLWZvcm1fbGF5b3V0LXZlcnRpY2FsIHtcblx0ZGlzcGxheTogYmxvY2tcblxuXHQvKlxuXHQgKiBXaGV0aGVyIHRoZSBmb3JtIGlzIGluIHRoZSByZXNwb25zaXZlIG1vZGUgb3Igbm90LCBpZiB0aGVyZSBhcmUgZGVjb3JhdG9yIGJ1dHRvbnNcblx0ICoga2VlcCB0aGUgdG9wIG1hcmdpbiBvZiBhY3Rpb24gYnV0dG9ucyBtZWRpdW0uXG5cdCAqL1xufVxuXG4uY2suY2stbGluay1mb3JtX2xheW91dC12ZXJ0aWNhbCAuY2stYnV0dG9uLmNrLWJ1dHRvbi1zYXZlLFxuXHRcdC5jay5jay1saW5rLWZvcm1fbGF5b3V0LXZlcnRpY2FsIC5jay1idXR0b24uY2stYnV0dG9uLWNhbmNlbCB7XG5cdFx0XHRtYXJnaW4tdG9wOiB2YXIoLS1jay1zcGFjaW5nLW1lZGl1bSk7XG5cdFx0fVxuXG4vKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtbGlua1xcbGlua2Zvcm0uY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogU3R5bGUgbGluayBmb3JtIGRpZmZlcmVudGx5IHdoZW4gbWFudWFsIGRlY29yYXRvcnMgYXJlIGF2YWlsYWJsZS5cbiAqIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1saW5rL2lzc3Vlcy8xODYuXG4gKi9cblxuLmNrLmNrLWxpbmstZm9ybV9sYXlvdXQtdmVydGljYWwge1xuXHRwYWRkaW5nOiAwO1xuXHRtaW4td2lkdGg6IHZhcigtLWNrLWlucHV0LXRleHQtd2lkdGgpXG59XG5cbi5jay5jay1saW5rLWZvcm1fbGF5b3V0LXZlcnRpY2FsIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgdmFyKC0tY2stc3BhY2luZy1zbWFsbClcblx0fVxuXG4uY2suY2stbGluay1mb3JtX2xheW91dC12ZXJ0aWNhbCAuY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay1pbnB1dC10ZXh0IHtcblx0XHRcdG1pbi13aWR0aDogMDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblxuLmNrLmNrLWxpbmstZm9ybV9sYXlvdXQtdmVydGljYWwgLmNrLWJ1dHRvbiB7XG5cdFx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdGJvcmRlci1yYWRpdXM6IDA7XG5cdFx0Ym9yZGVyOiAwO1xuXHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0d2lkdGg6IDUwJVxuXHR9XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLWxpbmstZm9ybV9sYXlvdXQtdmVydGljYWwgLmNrLWJ1dHRvbiB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMFxuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWxpbmstZm9ybV9sYXlvdXQtdmVydGljYWwgLmNrLWJ1dHRvbiB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMFxuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLWxpbmstZm9ybV9sYXlvdXQtdmVydGljYWwgLmNrLWJ1dHRvbjpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jay1jb2xvci1iYXNlLWJvcmRlcik7XG5cdFx0XHR9XG5cbi5jay5jay1saW5rLWZvcm1fbGF5b3V0LXZlcnRpY2FsIHtcblxuXHQvKiBVc2luZyBhZGRpdGlvbmFsIGAuY2tgIGNsYXNzIGZvciBzdHJvbmdlciBDU1Mgc3BlY2lmaWNpdHkgdGhhbiBgLmNrLmNrLWxpbmstZm9ybSA+IDpub3QoOmZpcnN0LWNoaWxkKWAuICovXG59XG5cbi5jay5jay1saW5rLWZvcm1fbGF5b3V0LXZlcnRpY2FsIC5jay5jay1saXN0IHtcblx0XHRtYXJnaW46IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpIHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpXG5cdH1cblxuLmNrLmNrLWxpbmstZm9ybV9sYXlvdXQtdmVydGljYWwgLmNrLmNrLWxpc3QgLmNrLWJ1dHRvbi5jay1zd2l0Y2hidXR0b24ge1xuXHRcdFx0Ym9yZGVyOiAwO1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdHdpZHRoOiAxMDAlXG5cdFx0fVxuXG4uY2suY2stbGluay1mb3JtX2xheW91dC12ZXJ0aWNhbCAuY2suY2stbGlzdCAuY2stYnV0dG9uLmNrLXN3aXRjaGJ1dHRvbjpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0XHR9XG4iLCIvKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXVpXFx0aGVtZVxcY29tcG9uZW50c1xccmVzcG9uc2l2ZS1mb3JtXFxyZXNwb25zaXZlZm9ybS5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi5jay12ZXJ0aWNhbC1mb3JtIC5jay1idXR0b246OmFmdGVyIHtcblx0Y29udGVudDogXCJcIjtcblx0d2lkdGg6IDA7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0cmlnaHQ6IC0xcHg7XG5cdHRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdGJvdHRvbTogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdHotaW5kZXg6IDE7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cdFx0LmNrLmNrLXJlc3BvbnNpdmUtZm9ybSAuY2stYnV0dG9uOjphZnRlciB7XG5cdFx0XHRjb250ZW50OiBcIlwiO1xuXHRcdFx0d2lkdGg6IDA7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRyaWdodDogLTFweDtcblx0XHRcdHRvcDogdmFyKC0tY2stc3BhY2luZy1zbWFsbCk7XG5cdFx0XHRib3R0b206IHZhcigtLWNrLXNwYWNpbmctc21hbGwpO1xuXHRcdFx0ei1pbmRleDogMTtcblx0XHR9XG5cdH1cblxuLyogRDpcXFByb2plY3RcXHNpcml1c1xcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LXVpXFxjb21wb25lbnRzXFxyZXNwb25zaXZlLWZvcm1cXHJlc3BvbnNpdmVmb3JtLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2stdmVydGljYWwtZm9ybSA+IC5jay1idXR0b246bnRoLWxhc3QtY2hpbGQoMik6OmFmdGVyIHtcblx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xufVxuXG4uY2suY2stcmVzcG9uc2l2ZS1mb3JtIHtcblx0cGFkZGluZzogdmFyKC0tY2stc3BhY2luZy1sYXJnZSlcbn1cblxuLmNrLmNrLXJlc3BvbnNpdmUtZm9ybTpmb2N1cyB7XG5cdFx0LyogU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy80NzczICovXG5cdFx0b3V0bGluZTogbm9uZTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1yZXNwb25zaXZlLWZvcm0gPiA6bm90KDpmaXJzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stcmVzcG9uc2l2ZS1mb3JtID4gOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblxuLmNrLmNrLXJlc3BvbnNpdmUtZm9ybSB7XG5cdFx0cGFkZGluZzogMDtcblx0XHR3aWR0aDogY2FsYyguOCAqIHZhcigtLWNrLWlucHV0LXRleHQtd2lkdGgpKVxufVxuXG5cdFx0LmNrLmNrLXJlc3BvbnNpdmUtZm9ybSAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdG1hcmdpbjogdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgdmFyKC0tY2stc3BhY2luZy1sYXJnZSkgMFxuXHRcdH1cblxuXHRcdFx0LmNrLmNrLXJlc3BvbnNpdmUtZm9ybSAuY2stbGFiZWxlZC1maWVsZC12aWV3IC5jay1pbnB1dC10ZXh0IHtcblx0XHRcdFx0bWluLXdpZHRoOiAwO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdH1cblxuXHRcdC5jay5jay1yZXNwb25zaXZlLWZvcm0gLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cblx0XHRcdC8qIExldCB0aGUgbG9uZyBlcnJvciBtZXNzYWdlcyB3cmFwIGluIHRoZSBuYXJyb3cgZm9ybS4gKi9cblx0XHR9XG5cdFx0XHQuY2suY2stcmVzcG9uc2l2ZS1mb3JtIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcgLmNrLWxhYmVsZWQtZmllbGQtdmlld19fZXJyb3Ige1xuXHRcdFx0XHR3aGl0ZS1zcGFjZTogbm9ybWFsO1xuXHRcdFx0fVxuXG4uY2suY2stcmVzcG9uc2l2ZS1mb3JtIHtcblxuXHRcdC8qIFN0eWxlcyBmb3IgdHdvIGxhc3QgYnV0dG9ucyBpbiB0aGUgZm9ybSAoc2F2ZSZjYW5jZWwsIGVkaXQmdW5saW5rLCBldGMuKS4gKi9cbn1cblx0XHQuY2suY2stcmVzcG9uc2l2ZS1mb3JtID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgxKSxcblx0XHQuY2suY2stcmVzcG9uc2l2ZS1mb3JtID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgyKSB7XG5cdFx0XHRwYWRkaW5nOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0XHRcdG1hcmdpbi10b3A6IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXG5cdFx0XHRib3JkZXItcmFkaXVzOiAwO1xuXHRcdFx0Ym9yZGVyOiAwO1xuXHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKVxuXHRcdH1cblx0XHRbZGlyPVwibHRyXCJdIC5jay5jay1yZXNwb25zaXZlLWZvcm0gPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDEpLFxuXHRcdFtkaXI9XCJsdHJcIl0gLmNrLmNrLXJlc3BvbnNpdmUtZm9ybSA+IC5jay1idXR0b246bnRoLWxhc3QtY2hpbGQoMikge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMFxuXHRcdH1cblx0XHRbZGlyPVwicnRsXCJdIC5jay5jay1yZXNwb25zaXZlLWZvcm0gPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDEpLFxuXHRcdFtkaXI9XCJydGxcIl0gLmNrLmNrLXJlc3BvbnNpdmUtZm9ybSA+IC5jay1idXR0b246bnRoLWxhc3QtY2hpbGQoMikge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMFxuXHRcdH1cblxuXHRcdFx0XHRbZGlyPVwicnRsXCJdIC5jay5jay1yZXNwb25zaXZlLWZvcm0gPiAuY2stYnV0dG9uOm50aC1sYXN0LWNoaWxkKDEpOmxhc3Qtb2YtdHlwZSwgW2Rpcj1cInJ0bFwiXSAuY2suY2stcmVzcG9uc2l2ZS1mb3JtID4gLmNrLWJ1dHRvbjpudGgtbGFzdC1jaGlsZCgyKTpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0XHRcdFx0fVxuXHRcdFx0LmNrLmNrLXJlc3BvbnNpdmUtZm9ybSA+IC5jay1idXR0b246bnRoLWxhc3QtY2hpbGQoMik6OmFmdGVyIHtcblx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRcdFx0fVxuXHR9XG4iLCIvKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LWxpbmtcXHRoZW1lXFxsaW5rYWN0aW9ucy5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi5jay5jay1saW5rLWFjdGlvbnMge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcFxufVxuXG4uY2suY2stbGluay1hY3Rpb25zIC5jay1saW5rLWFjdGlvbnNfX3ByZXZpZXcge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9ja1xuXHR9XG5cbi5jay5jay1saW5rLWFjdGlvbnMgLmNrLWxpbmstYWN0aW9uc19fcHJldmlldyAuY2stYnV0dG9uX19sYWJlbCB7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblxuLmNrLmNrLWxpbmstYWN0aW9ucyB7XG5cdFx0ZmxleC13cmFwOiB3cmFwXG59XG5cblx0XHQuY2suY2stbGluay1hY3Rpb25zIC5jay1saW5rLWFjdGlvbnNfX3ByZXZpZXcge1xuXHRcdFx0ZmxleC1iYXNpczogMTAwJTtcblx0XHR9XG5cblx0XHQuY2suY2stbGluay1hY3Rpb25zIC5jay1idXR0b246bm90KC5jay1saW5rLWFjdGlvbnNfX3ByZXZpZXcpIHtcblx0XHRcdGZsZXgtYmFzaXM6IDUwJTtcblx0XHR9XG5cdH1cblxuLyogRDpcXFByb2plY3RcXHNpcml1c1xcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LWxpbmtcXGxpbmthY3Rpb25zLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBFbmFibGVzIHRoZSB0b29sdGlwLCB3aGljaCBpcyB0aGUgdG9vbHRpcCBpcyBpbiBET00gYnV0XG4gKiBub3QgeWV0IGRpc3BsYXllZC5cbiAqL1xuXG4vKipcbiAqIERpc2FibGVzIHRoZSB0b29sdGlwIG1ha2luZyBpdCBkaXNhcHBlYXIgZnJvbSBET00uXG4gKi9cblxuLyoqXG4gKiBTaG93cyB0aGUgdG9vbHRpcCwgd2hpY2ggaXMgYWxyZWFkeSBpbiBET00uXG4gKiBSZXF1aXJlcyBgY2stdG9vbHRpcF9lbmFibGVkYCBmaXJzdC5cbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogTWFrZXMgZWxlbWVudCB1bnNlbGVjdGFibGUuXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogQSB2aXN1YWwgc3R5bGUgb2YgZm9jdXNlZCBlbGVtZW50J3MgYm9yZGVyLlxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBBIGhlbHBlciB0byBjb21iaW5lIG11bHRpcGxlIHNoYWRvd3MuXG4gKi9cblxuLyoqXG4gKiBHaXZlcyBhbiBlbGVtZW50IGEgZHJvcCBzaGFkb3cgc28gaXQgbG9va3MgbGlrZSBhIGZsb2F0aW5nIHBhbmVsLlxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLmNrLWxpbmstYWN0aW9ucyAuY2stYnV0dG9uLmNrLWxpbmstYWN0aW9uc19fcHJldmlldyB7XG5cdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdHBhZGRpbmctcmlnaHQ6IDBcblx0fVxuXG4uY2suY2stbGluay1hY3Rpb25zIC5jay1idXR0b24uY2stbGluay1hY3Rpb25zX19wcmV2aWV3IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdHBhZGRpbmc6IDAgdmFyKC0tY2stc3BhY2luZy1tZWRpdW0pO1xuXHRcdFx0Y29sb3I6IHZhcigtLWNrLWNvbG9yLWxpbmstZGVmYXVsdCk7XG5cdFx0XHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblxuXHRcdFx0LyogTWF0Y2ggdGhlIGJveCBtb2RlbCBvZiB0aGUgbGluayBlZGl0b3IgZm9ybSdzIGlucHV0IHNvIHRoZSBiYWxsb29uXG5cdFx0XHRkb2VzIG5vdCBjaGFuZ2Ugd2lkdGggd2hlbiBtb3ZpbmcgYmV0d2VlbiBhY3Rpb25zIGFuZCB0aGUgZm9ybS4gKi9cblx0XHRcdG1heC13aWR0aDogdmFyKC0tY2staW5wdXQtdGV4dC13aWR0aCk7XG5cdFx0XHRtaW4td2lkdGg6IDNlbTtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlclxuXHRcdH1cblxuLmNrLmNrLWxpbmstYWN0aW9ucyAuY2stYnV0dG9uLmNrLWxpbmstYWN0aW9uc19fcHJldmlldyAuY2stYnV0dG9uX19sYWJlbDpob3ZlciB7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdFx0fVxuXG4uY2suY2stbGluay1hY3Rpb25zIC5jay1idXR0b24uY2stbGluay1hY3Rpb25zX19wcmV2aWV3LFxuXHRcdC5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbi5jay1saW5rLWFjdGlvbnNfX3ByZXZpZXc6aG92ZXIsXG5cdFx0LmNrLmNrLWxpbmstYWN0aW9ucyAuY2stYnV0dG9uLmNrLWxpbmstYWN0aW9uc19fcHJldmlldzpmb2N1cyxcblx0XHQuY2suY2stbGluay1hY3Rpb25zIC5jay1idXR0b24uY2stbGluay1hY3Rpb25zX19wcmV2aWV3OmFjdGl2ZSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdH1cblxuLmNrLmNrLWxpbmstYWN0aW9ucyAuY2stYnV0dG9uLmNrLWxpbmstYWN0aW9uc19fcHJldmlldzphY3RpdmUge1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHR9XG5cbi5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbi5jay1saW5rLWFjdGlvbnNfX3ByZXZpZXc6Zm9jdXMgLmNrLWJ1dHRvbl9fbGFiZWwge1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0XHRcdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stbGluay1hY3Rpb25zIC5jay1idXR0b246bm90KDpmaXJzdC1jaGlsZCkge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xuXHRcdH1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stbGluay1hY3Rpb25zIC5jay1idXR0b246bm90KDpsYXN0LWNoaWxkKSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZCk7XG5cdFx0fVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXHRcdC5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbi5jay1saW5rLWFjdGlvbnNfX3ByZXZpZXcge1xuXHRcdFx0bWFyZ2luOiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSAwXG5cdFx0fVxuXG5cdFx0XHQuY2suY2stbGluay1hY3Rpb25zIC5jay1idXR0b24uY2stbGluay1hY3Rpb25zX19wcmV2aWV3IC5jay1idXR0b25fX2xhYmVsIHtcblx0XHRcdFx0bWluLXdpZHRoOiAwO1xuXHRcdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0XHR9XG5cblx0XHRbZGlyPVwibHRyXCJdIC5jay5jay1saW5rLWFjdGlvbnMgLmNrLWJ1dHRvbjpub3QoLmNrLWxpbmstYWN0aW9uc19fcHJldmlldykge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMFxuXHRcdH1cblxuXHRcdFtkaXI9XCJydGxcIl0gLmNrLmNrLWxpbmstYWN0aW9ucyAuY2stYnV0dG9uOm5vdCguY2stbGluay1hY3Rpb25zX19wcmV2aWV3KSB7XG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwXG5cdFx0fVxuXHR9XG4iLCIvKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LWltYWdlXFx0aGVtZVxcdGV4dGFsdGVybmF0aXZlZm9ybS5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi5jay5jay10ZXh0LWFsdGVybmF0aXZlLWZvcm0ge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRmbGV4LXdyYXA6IG5vd3JhcFxufVxuXG4uY2suY2stdGV4dC1hbHRlcm5hdGl2ZS1mb3JtIC5jay1sYWJlbGVkLWZpZWxkLXZpZXcge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0fVxuXG4uY2suY2stdGV4dC1hbHRlcm5hdGl2ZS1mb3JtIC5jay1sYWJlbCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXG4uY2suY2stdGV4dC1hbHRlcm5hdGl2ZS1mb3JtIHtcblx0XHRmbGV4LXdyYXA6IHdyYXBcbn1cblxuXHRcdC5jay5jay10ZXh0LWFsdGVybmF0aXZlLWZvcm0gLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdH1cblxuXHRcdC5jay5jay10ZXh0LWFsdGVybmF0aXZlLWZvcm0gLmNrLWJ1dHRvbiB7XG5cdFx0XHRmbGV4LWJhc2lzOiA1MCU7XG5cdFx0fVxuXHR9XG4iLCIvKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LWltYWdlXFx0aGVtZVxcaW1hZ2UuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLWNvbnRlbnQgLmltYWdlIHtcblx0ZGlzcGxheTogdGFibGU7XG5cdGNsZWFyOiBib3RoO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0LyogTWFrZSBzdXJlIHRoZXJlIGlzIHNvbWUgc3BhY2UgYmV0d2VlbiB0aGUgY29udGVudCBhbmQgdGhlIGltYWdlLiBDZW50ZXIgaW1hZ2UgYnkgZGVmYXVsdC4gKi9cblx0bWFyZ2luOiAxZW0gYXV0b1xufVxuXG4uY2stY29udGVudCAuaW1hZ2UgaW1nIHtcblx0XHQvKiBQcmV2ZW50IHVubmVjZXNzYXJ5IG1hcmdpbnMgY2F1c2VkIGJ5IGxpbmUtaGVpZ2h0IChzZWUgIzQ0KS4gKi9cblx0XHRkaXNwbGF5OiBibG9jaztcblxuXHRcdC8qIENlbnRlciB0aGUgaW1hZ2UgaWYgaXRzIHdpZHRoIGlzIHNtYWxsZXIgdGhhbiB0aGUgY29udGVudCdzIHdpZHRoLiAqL1xuXHRcdG1hcmdpbjogMCBhdXRvO1xuXG5cdFx0LyogTWFrZSBzdXJlIHRoZSBpbWFnZSBuZXZlciBleGNlZWRzIHRoZSBzaXplIG9mIHRoZSBwYXJlbnQgY29udGFpbmVyIChja2VkaXRvci9ja2VkaXRvcjUtdWkjNjcpLiAqL1xuXHRcdG1heC13aWR0aDogMTAwJTtcblxuXHRcdC8qIE1ha2Ugc3VyZSB0aGUgY2FwdGlvbiB3aWxsIGJlIGRpc3BsYXllZCBwcm9wZXJseSAoU2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xODcwKS4gKi9cblx0XHRtaW4td2lkdGg6IDUwcHg7XG5cdH1cbiIsIi8qIEQ6XFxQcm9qZWN0XFxzaXJpdXNcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtaW1hZ2VcXHRoZW1lXFxpbWFnZWNhcHRpb24uY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLWNvbnRlbnQgLmltYWdlID4gZmlnY2FwdGlvbiB7XG5cdGRpc3BsYXk6IHRhYmxlLWNhcHRpb247XG5cdGNhcHRpb24tc2lkZTogYm90dG9tO1xuXHR3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuXHRjb2xvcjogaHNsKDAsIDAlLCAyMCUpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiBoc2woMCwgMCUsIDk3JSk7XG5cdHBhZGRpbmc6IC42ZW07XG5cdGZvbnQtc2l6ZTogLjc1ZW07XG5cdG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xufVxuIiwiLyogRDpcXFByb2plY3RcXHNpcml1c1xcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS1pbWFnZVxcdGhlbWVcXGltYWdlc3R5bGUuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWltYWdlLXN0eWxlLXNwYWNpbmc6IDEuNWVtO1xufVxuXG4uY2stY29udGVudCAuaW1hZ2Utc3R5bGUtc2lkZSB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdG1hcmdpbi1sZWZ0OiB2YXIoLS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0XHRtYXgtd2lkdGg6IDUwJTtcblx0fVxuXG4uY2stY29udGVudCAuaW1hZ2Utc3R5bGUtYWxpZ24tbGVmdCB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1pbWFnZS1zdHlsZS1zcGFjaW5nKTtcblx0fVxuXG4uY2stY29udGVudCAuaW1hZ2Utc3R5bGUtYWxpZ24tY2VudGVyIHtcblx0XHRtYXJnaW4tbGVmdDogYXV0bztcblx0XHRtYXJnaW4tcmlnaHQ6IGF1dG87XG5cdH1cblxuLmNrLWNvbnRlbnQgLmltYWdlLXN0eWxlLWFsaWduLXJpZ2h0IHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLWltYWdlLXN0eWxlLXNwYWNpbmcpO1xuXHR9XG4iLCIvKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXdpZGdldFxcdGhlbWVcXHdpZGdldHJlc2l6ZS5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2sgLmNrLXdpZGdldF93aXRoLXJlc2l6ZXIge1xuXHQvKiBNYWtlIHRoZSB3aWRnZXQgd3JhcHBlciBhIHJlbGF0aXZlIHBvc2l0aW9uaW5nIGNvbnRhaW5lciBmb3IgdGhlIGRyYWcgaGFuZGxlLiAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jayAuY2std2lkZ2V0X19yZXNpemVyIHtcblx0ZGlzcGxheTogbm9uZTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXG5cdC8qIFRoZSB3cmFwcGVyIGl0c2VsZiBzaG91bGQgbm90IGludGVyZmVyZSB3aXRoIHRoZSBwb2ludGVyIGRldmljZSwgb25seSB0aGUgaGFuZGxlcyBzaG91bGQuICovXG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG5cdGxlZnQ6IDA7XG5cdHRvcDogMDtcbn1cblxuLmNrLWZvY3VzZWQgLmNrLXdpZGdldF93aXRoLXJlc2l6ZXIuY2std2lkZ2V0X3NlbGVjdGVkID4gLmNrLXdpZGdldF9fcmVzaXplciB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuLmNrIC5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZSB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuXHQvKiBSZXNpemVycyBhcmUgdGhlIG9ubHkgVUkgZWxlbWVudHMgdGhhdCBzaG91bGQgaW50ZXJmZXJlIHdpdGggYSBwb2ludGVyIGRldmljZS4gKi9cblx0cG9pbnRlci1ldmVudHM6IGFsbFxufVxuXG4uY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLXRvcC1sZWZ0LFxuXHQuY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLWJvdHRvbS1yaWdodCB7XG5cdFx0Y3Vyc29yOiBud3NlLXJlc2l6ZTtcblx0fVxuXG4uY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLXRvcC1yaWdodCxcblx0LmNrIC5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS1ib3R0b20tbGVmdCB7XG5cdFx0Y3Vyc29yOiBuZXN3LXJlc2l6ZTtcblx0fVxuXG4vKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtd2lkZ2V0XFx3aWRnZXRyZXNpemUuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLXJlc2l6ZXItc2l6ZTogMTBweDtcblxuXHQvKiBTZXQgdGhlIHJlc2l6ZXIgd2l0aCBhIDUwJSBvZmZzZXQuICovXG5cdC0tY2stcmVzaXplci1vZmZzZXQ6IGNhbGMoICggdmFyKC0tY2stcmVzaXplci1zaXplKSAvIC0yICkgLSAycHgpO1xuXHQtLWNrLXJlc2l6ZXItYm9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbi5jayAuY2std2lkZ2V0X19yZXNpemVyIHtcblx0b3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLXJlc2l6ZXIpO1xufVxuXG4uY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlIHtcblx0d2lkdGg6IHZhcigtLWNrLXJlc2l6ZXItc2l6ZSk7XG5cdGhlaWdodDogdmFyKC0tY2stcmVzaXplci1zaXplKTtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0Ym9yZGVyOiB2YXIoLS1jay1yZXNpemVyLWJvcmRlci13aWR0aCkgc29saWQgaHNsKDAsIDAlLCAxMDAlKTtcblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tY2stcmVzaXplci1ib3JkZXItcmFkaXVzKVxufVxuXG4uY2sgLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLmNrLXdpZGdldF9fcmVzaXplcl9faGFuZGxlLXRvcC1sZWZ0IHtcblx0XHR0b3A6IHZhcigtLWNrLXJlc2l6ZXItb2Zmc2V0KTtcblx0XHRsZWZ0OiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdH1cblxuLmNrIC5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS10b3AtcmlnaHQge1xuXHRcdHRvcDogdmFyKC0tY2stcmVzaXplci1vZmZzZXQpO1xuXHRcdHJpZ2h0OiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdH1cblxuLmNrIC5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS1ib3R0b20tcmlnaHQge1xuXHRcdGJvdHRvbTogdmFyKC0tY2stcmVzaXplci1vZmZzZXQpO1xuXHRcdHJpZ2h0OiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdH1cblxuLmNrIC5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS5jay13aWRnZXRfX3Jlc2l6ZXJfX2hhbmRsZS1ib3R0b20tbGVmdCB7XG5cdFx0Ym90dG9tOiB2YXIoLS1jay1yZXNpemVyLW9mZnNldCk7XG5cdFx0bGVmdDogdmFyKC0tY2stcmVzaXplci1vZmZzZXQpO1xuXHR9XG4iLCIvKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LWltYWdlXFx0aGVtZVxcaW1hZ2VyZXNpemUuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLWNvbnRlbnQgLmltYWdlLmltYWdlX3Jlc2l6ZWQge1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cdC8qXG5cdFRoZSBgPGZpZ3VyZT5gIGVsZW1lbnQgZm9yIHJlc2l6ZWQgaW1hZ2VzIG11c3Qgbm90IHVzZSBgZGlzcGxheTp0YWJsZWAgYXMgYnJvd3NlcnMgZG8gbm90IHN1cHBvcnQgYG1heC13aWR0aGAgZm9yIGl0IHdlbGwuXG5cdFNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80MDE5NjA0L2Nocm9tZS1zYWZhcmktaWdub3JpbmctbWF4LXdpZHRoLWluLXRhYmxlLzE0NDIwNjkxIzE0NDIwNjkxIGZvciBtb3JlLlxuXHRGb3J0dW5hdGVseSwgc2luY2Ugd2UgY29udHJvbCB0aGUgd2lkdGgsIHRoZXJlIGlzIG5vIHJpc2sgdGhhdCB0aGUgaW1hZ2Ugd2lsbCBsb29rIGJhZC5cblx0Ki9cblx0ZGlzcGxheTogYmxvY2s7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3hcbn1cblxuLmNrLWNvbnRlbnQgLmltYWdlLmltYWdlX3Jlc2l6ZWQgaW1nIHtcblx0XHQvKiBGb3IgcmVzaXplZCBpbWFnZXMgaXQgaXMgdGhlIGA8ZmlndXJlPmAgZWxlbWVudCB0aGF0IGRldGVybWluZXMgdGhlIGltYWdlIHdpZHRoLiAqL1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cbi5jay1jb250ZW50IC5pbWFnZS5pbWFnZV9yZXNpemVkID4gZmlnY2FwdGlvbiB7XG5cdFx0LyogVGhlIGA8ZmlndXJlPmAgZWxlbWVudCB1c2VzIGBkaXNwbGF5OmJsb2NrYCwgc28gYDxmaWdjYXB0aW9uPmAgYWxzbyBoYXMgdG8uICovXG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuW2Rpcj1cImx0clwiXSAuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQuY2stcmVzaXplLWltYWdlLWJ1dHRvbiAuY2stYnV0dG9uX19pY29uIHtcblx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcbn1cblxuW2Rpcj1cInJ0bFwiXSAuY2suY2stYnV0dG9uLmNrLWJ1dHRvbl93aXRoLXRleHQuY2stcmVzaXplLWltYWdlLWJ1dHRvbiAuY2stYnV0dG9uX19pY29uIHtcblx0bWFyZ2luLWxlZnQ6IHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xufVxuXG4uY2suY2stZHJvcGRvd24gLmNrLWJ1dHRvbi5jay1yZXNpemUtaW1hZ2UtYnV0dG9uIC5jay1idXR0b25fX2xhYmVsIHtcblx0d2lkdGg6IDRlbTtcbn1cbiIsIi8qIEQ6XFxQcm9qZWN0XFxzaXJpdXNcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtaW1hZ2VcXHRoZW1lXFxpbWFnZXVwbG9hZHByb2dyZXNzLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLyogVXBsb2FkIHByb2dyZXNzIGJhci4gKi9cblxuLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLmltYWdlIC5jay1wcm9ncmVzcy1iYXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcbn1cblxuLyogRDpcXFByb2plY3RcXHNpcml1c1xcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LWltYWdlXFxpbWFnZXVwbG9hZHByb2dyZXNzLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC5pbWFnZSB7XG5cdC8qIFNob3dpbmcgYW5pbWF0aW9uLiAqL1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UuY2stYXBwZWFyIHtcblx0XHRhbmltYXRpb246IGZhZGVJbiA3MDBtcztcblx0fVxuXG4vKiBVcGxvYWQgcHJvZ3Jlc3MgYmFyLiAqL1xuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAuaW1hZ2UgLmNrLXByb2dyZXNzLWJhciB7XG5cdGhlaWdodDogMnB4O1xuXHR3aWR0aDogMDtcblx0YmFja2dyb3VuZDogdmFyKC0tY2stY29sb3ItdXBsb2FkLWJhci1iYWNrZ3JvdW5kKTtcblx0dHJhbnNpdGlvbjogd2lkdGggMTAwbXM7XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluIHtcblx0ZnJvbSB7IG9wYWNpdHk6IDA7IH1cblx0dG8gICB7IG9wYWNpdHk6IDE7IH1cbn1cbiIsIi8qIEQ6XFxQcm9qZWN0XFxzaXJpdXNcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtaW1hZ2VcXHRoZW1lXFxpbWFnZXVwbG9hZGljb24uY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLWltYWdlLXVwbG9hZC1jb21wbGV0ZS1pY29uIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAxMHB4O1xuXHRyaWdodDogMTBweDtcblx0Ym9yZGVyLXJhZGl1czogNTAlXG59XG5cbi5jay1pbWFnZS11cGxvYWQtY29tcGxldGUtaWNvbjo6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHR9XG5cbi8qIEQ6XFxQcm9qZWN0XFxzaXJpdXNcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdGhlbWUtbGFya1xcdGhlbWVcXGNrZWRpdG9yNS1pbWFnZVxcaW1hZ2V1cGxvYWRpY29uLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1pbWFnZS11cGxvYWQtaWNvbjogaHNsKDAsIDAlLCAxMDAlKTtcblx0LS1jay1jb2xvci1pbWFnZS11cGxvYWQtaWNvbi1iYWNrZ3JvdW5kOiBoc2woMTIwLCAxMDAlLCAyNyUpO1xuXG5cdC0tY2staW1hZ2UtdXBsb2FkLWljb24tc2l6ZTogMjBweDtcblx0LS1jay1pbWFnZS11cGxvYWQtaWNvbi13aWR0aDogMnB4O1xufVxuXG4uY2staW1hZ2UtdXBsb2FkLWNvbXBsZXRlLWljb24ge1xuXHR3aWR0aDogdmFyKC0tY2staW1hZ2UtdXBsb2FkLWljb24tc2l6ZSk7XG5cdGhlaWdodDogdmFyKC0tY2staW1hZ2UtdXBsb2FkLWljb24tc2l6ZSk7XG5cdG9wYWNpdHk6IDA7XG5cdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWltYWdlLXVwbG9hZC1pY29uLWJhY2tncm91bmQpO1xuXHRhbmltYXRpb24tbmFtZTogY2stdXBsb2FkLWNvbXBsZXRlLWljb24tc2hvdywgY2stdXBsb2FkLWNvbXBsZXRlLWljb24taGlkZTtcblx0YW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHMsIGZvcndhcmRzO1xuXHRhbmltYXRpb24tZHVyYXRpb246IDUwMG1zLCA1MDBtcztcblxuXHQvKiBUbyBtYWtlIGFuaW1hdGlvbiBzY2FsYWJsZS4gKi9cblx0Zm9udC1zaXplOiB2YXIoLS1jay1pbWFnZS11cGxvYWQtaWNvbi1zaXplKTtcblxuXHQvKiBIaWRlIGNvbXBsZXRlZCB1cGxvYWQgaWNvbiBhZnRlciAzIHNlY29uZHMuICovXG5cdGFuaW1hdGlvbi1kZWxheTogMG1zLCAzMDAwbXNcblxuXHQvKiBUaGlzIGlzIGNoZWNrIGljb24gZWxlbWVudCBtYWRlIGZyb20gYm9yZGVyLXdpZHRoIG1peGVkIHdpdGggYW5pbWF0aW9ucy4gKi9cbn1cblxuLmNrLWltYWdlLXVwbG9hZC1jb21wbGV0ZS1pY29uOjphZnRlciB7XG5cdFx0LyogQmVjYXVzZSBvZiBib3JkZXIgdHJhbnNmb3JtYXRpb24gd2UgbmVlZCB0byBcImhhcmQgY29kZVwiIGxlZnQgcG9zaXRpb24uICovXG5cdFx0bGVmdDogMjUlO1xuXG5cdFx0dG9wOiA1MCU7XG5cdFx0b3BhY2l0eTogMDtcblx0XHRoZWlnaHQ6IDA7XG5cdFx0d2lkdGg6IDA7XG5cblx0XHR0cmFuc2Zvcm06IHNjYWxlWCgtMSkgcm90YXRlKDEzNWRlZyk7XG5cdFx0dHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3A7XG5cdFx0Ym9yZGVyLXRvcDogdmFyKC0tY2staW1hZ2UtdXBsb2FkLWljb24td2lkdGgpIHNvbGlkIHZhcigtLWNrLWNvbG9yLWltYWdlLXVwbG9hZC1pY29uKTtcblx0XHRib3JkZXItcmlnaHQ6IHZhcigtLWNrLWltYWdlLXVwbG9hZC1pY29uLXdpZHRoKSBzb2xpZCB2YXIoLS1jay1jb2xvci1pbWFnZS11cGxvYWQtaWNvbik7XG5cblx0XHRhbmltYXRpb24tbmFtZTogY2stdXBsb2FkLWNvbXBsZXRlLWljb24tY2hlY2s7XG5cdFx0YW5pbWF0aW9uLWR1cmF0aW9uOiA1MDBtcztcblx0XHRhbmltYXRpb24tZGVsYXk6IDUwMG1zO1xuXHRcdGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xuXG5cdFx0LyogIzEwOTUuIFdoaWxlIHJlc2V0IGlzIG5vdCBwcm92aWRpbmcgcHJvcGVyIGJveC1zaXppbmcgZm9yIHBzZXVkb2VsZW1lbnRzLCB3ZSBuZWVkIHRvIGhhbmRsZSBpdC4gKi9cblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHR9XG5cbkBrZXlmcmFtZXMgY2stdXBsb2FkLWNvbXBsZXRlLWljb24tc2hvdyB7XG5cdGZyb20ge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cblxuXHR0byB7XG5cdFx0b3BhY2l0eTogMTtcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIGNrLXVwbG9hZC1jb21wbGV0ZS1pY29uLWhpZGUge1xuXHRmcm9tIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG5cblx0dG8ge1xuXHRcdG9wYWNpdHk6IDA7XG5cdH1cbn1cblxuQGtleWZyYW1lcyBjay11cGxvYWQtY29tcGxldGUtaWNvbi1jaGVjayB7XG5cdDAlIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHdpZHRoOiAwO1xuXHRcdGhlaWdodDogMDtcblx0fVxuXHQzMyUge1xuXHRcdHdpZHRoOiAwLjNlbTtcblx0XHRoZWlnaHQ6IDA7XG5cdH1cblx0MTAwJSB7XG5cdFx0b3BhY2l0eTogMTtcblx0XHR3aWR0aDogMC4zZW07XG5cdFx0aGVpZ2h0OiAwLjQ1ZW07XG5cdH1cbn1cbiIsIi8qIEQ6XFxQcm9qZWN0XFxzaXJpdXNcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtaW1hZ2VcXHRoZW1lXFxpbWFnZXVwbG9hZGxvYWRlci5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2sgLmNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHR0b3A6IDA7XG5cdGxlZnQ6IDBcbn1cblxuLmNrIC5jay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyOjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0fVxuXG4vKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtaW1hZ2VcXGltYWdldXBsb2FkbG9hZGVyLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyOiBoc2woMCwgMCUsIDcwJSk7XG5cdC0tY2stdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlci1zaXplOiAzMnB4O1xufVxuXG4uY2sgLmNrLWltYWdlLXVwbG9hZC1wbGFjZWhvbGRlciB7XG5cdC8qIFdlIG5lZWQgdG8gY29udHJvbCB0aGUgZnVsbCB3aWR0aCBvZiB0aGUgU1ZHIGdyYXkgYmFja2dyb3VuZC4gKi9cblx0d2lkdGg6IDEwMCU7XG5cdG1hcmdpbjogMDtcbn1cblxuLmNrIC5jay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyIHtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMTAwJVxufVxuXG4uY2sgLmNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXI6OmJlZm9yZSB7XG5cdFx0d2lkdGg6IHZhcigtLWNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXItc2l6ZSk7XG5cdFx0aGVpZ2h0OiB2YXIoLS1jay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyLXNpemUpO1xuXHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRib3JkZXItdG9wOiAzcHggc29saWQgdmFyKC0tY2stY29sb3ItdXBsb2FkLXBsYWNlaG9sZGVyLWxvYWRlcik7XG5cdFx0Ym9yZGVyLXJpZ2h0OiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0YW5pbWF0aW9uOiBjay11cGxvYWQtcGxhY2Vob2xkZXItbG9hZGVyIDFzIGxpbmVhciBpbmZpbml0ZTtcblx0fVxuXG5Aa2V5ZnJhbWVzIGNrLXVwbG9hZC1wbGFjZWhvbGRlci1sb2FkZXIge1xuXHR0byB7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGUoIDM2MGRlZyApO1xuXHR9XG59XG4iLCIvKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LW1lZGlhLWVtYmVkXFx0aGVtZVxcbWVkaWFlbWJlZGVkaXRpbmcuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIEVuYWJsZXMgdGhlIHRvb2x0aXAsIHdoaWNoIGlzIHRoZSB0b29sdGlwIGlzIGluIERPTSBidXRcbiAqIG5vdCB5ZXQgZGlzcGxheWVkLlxuICovXG5cbi8qKlxuICogRGlzYWJsZXMgdGhlIHRvb2x0aXAgbWFraW5nIGl0IGRpc2FwcGVhciBmcm9tIERPTS5cbiAqL1xuXG4vKipcbiAqIFNob3dzIHRoZSB0b29sdGlwLCB3aGljaCBpcyBhbHJlYWR5IGluIERPTS5cbiAqIFJlcXVpcmVzIGBjay10b29sdGlwX2VuYWJsZWRgIGZpcnN0LlxuICovXG5cbi5jay1tZWRpYV9fd3JhcHBlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIHtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlclxuXHR9XG5cbi5jay1tZWRpYV9fd3JhcHBlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybCAuY2stdG9vbHRpcCB7XG5cdFx0ZGlzcGxheTogYmxvY2tcblxuXHRcdC8qXG5cdFx0ICogRG9uJ3QgZGlzcGxheSB0b29sdGlwcyBpbiBkZXZpY2VzIHdoaWNoIGRvbid0IHN1cHBvcnQgOmhvdmVyLlxuXHRcdCAqIEluIGZhY3QsIGl0J3MgYWxsIGFib3V0IGlPUywgd2hpY2ggZm9yY2VzIHVzZXIgdG8gY2xpY2sgVUkgZWxlbWVudHMgdHdpY2UgdG8gZXhlY3V0ZVxuXHRcdCAqIHRoZSBwcmltYXJ5IGFjdGlvbiwgd2hlbiB0b29sdGlwcyBhcmUgZW5hYmxlZC5cblx0XHQgKlxuXHRcdCAqIFE6IE9LLCBidXQgd2h5IG5vdCB0aGUgZm9sbG93aW5nIHF1ZXJ5P1xuXHRcdCAqXG5cdFx0ICogICBAbWVkaWEgKGhvdmVyKSB7XG5cdFx0ICogICAgICAgZGlzcGxheTogYmxvY2s7XG5cdFx0ICogICB9XG5cdFx0ICpcblx0XHQgKiBBOiBCZWNhdXNlIEZGIGRvZXMgbm90IHN1cHBvcnQgaXQgYW5kIGl0IHdvdWxkIGNvbXBsZXRlbHkgZGlzYWJsZSB0b29sdGlwc1xuXHRcdCAqIGluIHRoYXQgYnJvd3Nlci5cblx0XHQgKlxuXHRcdCAqIE1vcmUgaW4gaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvOTIwLlxuXHRcdCAqL1xuXHR9XG5cbkBtZWRpYSAoaG92ZXI6bm9uZSkge1xuXG4uY2stbWVkaWFfX3dyYXBwZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmwgLmNrLXRvb2x0aXAge1xuXHRcdFx0ZGlzcGxheTogbm9uZVxuXHR9XG5cdFx0fVxuXG4uY2stbWVkaWFfX3dyYXBwZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmwge1xuXG5cdFx0XHQvKiBPdGhlcndpc2UgdGhlIFVSTCB3aWxsIG92ZXJmbG93IHdoZW4gdGhlIGNvbnRlbnQgaXMgdmVyeSBuYXJyb3cuICovXG5cdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZVxuXHRcdH1cblxuLmNrLW1lZGlhX193cmFwcGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsOmhvdmVyIC5jay10b29sdGlwIHtcblx0XHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHRcdG9wYWNpdHk6IDE7XG5cdH1cblxuLmNrLW1lZGlhX193cmFwcGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dCB7XG5cdFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0fVxuXG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cInR3aXR0ZXIuY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX2ljb24gKiwgLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJnb29nbGUuY29tL21hcHNcIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiAqLCAuY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImZhY2Vib29rLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uICosIC5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiaW5zdGFncmFtLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uICoge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cbi8qIERpc2FibGUgYWxsIG1vdXNlIGludGVyYWN0aW9uIGFzIGxvbmcgYXMgdGhlIGVkaXRvciBpcyBub3QgcmVhZOKAk29ubHkuXG4gICBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1LW1lZGlhLWVtYmVkL2lzc3Vlcy81OCAqL1xuXG4uY2stZWRpdG9yX19lZGl0YWJsZTpub3QoLmNrLXJlYWQtb25seSkgLmNrLW1lZGlhX193cmFwcGVyID4gKjpub3QoLmNrLW1lZGlhX19wbGFjZWhvbGRlcikge1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLyogRGlzYWJsZSBhbGwgbW91c2UgaW50ZXJhY3Rpb24gd2hlbiB0aGUgd2lkZ2V0IGlzIG5vdCBzZWxlY3RlZCAoZS5nLiB0byBhdm9pZCBvcGVuaW5nIGxpbmtzIGJ5IGFjY2lkZW50KS5cbiAgIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtbWVkaWEtZW1iZWQvaXNzdWVzLzE4ICovXG5cbi5jay1lZGl0b3JfX2VkaXRhYmxlOm5vdCguY2stcmVhZC1vbmx5KSAuY2std2lkZ2V0Om5vdCguY2std2lkZ2V0X3NlbGVjdGVkKSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIHtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qIEQ6XFxQcm9qZWN0XFxzaXJpdXNcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdGhlbWUtbGFya1xcdGhlbWVcXGNrZWRpdG9yNS1tZWRpYS1lbWJlZFxcbWVkaWFlbWJlZGVkaXRpbmcuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLW1lZGlhLWVtYmVkLXBsYWNlaG9sZGVyLWljb24tc2l6ZTogM2VtO1xuXG5cdC0tY2stY29sb3ItbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItdXJsLXRleHQ6IGhzbCgwLCAwJSwgNDYlKTtcblx0LS1jay1jb2xvci1tZWRpYS1lbWJlZC1wbGFjZWhvbGRlci11cmwtdGV4dC1ob3ZlcjogdmFyKC0tY2stY29sb3ItYmFzZS10ZXh0KTtcbn1cblxuLmNrLW1lZGlhX193cmFwcGVyIHtcblx0bWFyZ2luOiAwIGF1dG9cbn1cblxuLmNrLW1lZGlhX193cmFwcGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRcdHBhZGRpbmc6IGNhbGMoIDMgKiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSApO1xuXHRcdGJhY2tncm91bmQ6IHZhcigtLWNrLWNvbG9yLWJhc2UtZm9yZWdyb3VuZClcblx0fVxuXG4uY2stbWVkaWFfX3dyYXBwZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uIHtcblx0XHRcdG1pbi13aWR0aDogdmFyKC0tY2stbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItaWNvbi1zaXplKTtcblx0XHRcdGhlaWdodDogdmFyKC0tY2stbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItaWNvbi1zaXplKTtcblx0XHRcdG1hcmdpbi1ib3R0b206IHZhcigtLWNrLXNwYWNpbmctbGFyZ2UpO1xuXHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuXHRcdFx0YmFja2dyb3VuZC1zaXplOiBjb3ZlclxuXHRcdH1cblxuLmNrLW1lZGlhX193cmFwcGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiAuY2staWNvbiB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHR9XG5cbi5jay1tZWRpYV9fd3JhcHBlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dCB7XG5cdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItdXJsLXRleHQpO1xuXHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0XHRcdHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzXG5cdFx0fVxuXG4uY2stbWVkaWFfX3dyYXBwZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmxfX3RleHQ6aG92ZXIge1xuXHRcdFx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItbWVkaWEtZW1iZWQtcGxhY2Vob2xkZXItdXJsLXRleHQtaG92ZXIpO1xuXHRcdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdFx0fVxuXG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cIm9wZW4uc3BvdGlmeS5jb21cIl0ge1xuXHRcdG1heC13aWR0aDogMzAwcHg7XG5cdFx0bWF4LWhlaWdodDogMzgwcHg7XG5cdH1cblxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJnb29nbGUuY29tL21hcHNcIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIZHBaSFJvUFNJeU5UQXVNemM0SWlCb1pXbG5hSFE5SWpJMU5DNHhOamNpSUhacFpYZENiM2c5SWpBZ01DQTJOaTR5TkRZZ05qY3VNalE0SWo0OFp5QjBjbUZ1YzJadmNtMDlJblJ5WVc1emJHRjBaU2d0TVRjeUxqVXpNU0F0TWpFNExqUTFOU2tnYzJOaGJHVW9Mams0TURFeUtTSStQSEpsWTNRZ2NuazlJalV1TWpNNElpQnllRDBpTlM0eU16Z2lJSGs5SWpJek1TNHpPVGtpSUhnOUlqRTNOaTR3TXpFaUlHaGxhV2RvZEQwaU5qQXVNRGs1SWlCM2FXUjBhRDBpTmpBdU1EazVJaUJtYVd4c1BTSWpNelJoTmpZNElpQndZV2x1ZEMxdmNtUmxjajBpYldGeWEyVnljeUJ6ZEhKdmEyVWdabWxzYkNJdlBqeHdZWFJvSUdROUlrMHlNRFl1TkRjM0lESTJNQzQ1YkMweU9DNDVPRGNnTWpndU9UZzNZVFV1TWpFNElEVXVNakU0SURBZ01DQXdJRE11TnpnZ01TNDJNV2cwT1M0Mk1qRmpNUzQyT1RRZ01DQXpMakU1TFM0M09UZ2dOQzR4TkRZdE1pNHdNemQ2SWlCbWFXeHNQU0lqTldNNE9HTTFJaTgrUEhCaGRHZ2daRDBpVFRJeU5pNDNORElnTWpJeUxqazRPR010T1M0eU5qWWdNQzB4Tmk0M056Y2dOeTR4TnkweE5pNDNOemNnTVRZdU1ERTBMakF3TnlBeUxqYzJNaTQyTmpNZ05TNDBOelFnTWk0d09UTWdOeTQ0TnpVdU5ETXVOekF6TGpneklERXVOREE0SURFdU1Ua2dNaTR4TURjdU16TXpMalV3TWk0Mk5TQXhMakF3TlM0NU5TQXhMalV3T0M0ek5ETXVORGMzTGpZM015NDVOVGN1T1RnNElERXVORFFnTVM0ek1TQXhMamMyT1NBeUxqVWdNeTQxTURJZ015NDJNemNnTlM0eE5qZ3VOemt6SURFdU1qYzFJREV1TmpneklESXVOalFnTWk0ME5qWWdNeTQ1T1NBeUxqTTJNeUEwTGpBNU5DQTBMakF3TnlBNExqQTVNaUEwTGpZZ01UTXVPVEUwZGk0d01USmpMakU0TWk0ME1USXVOVEUyTGpZMk5pNDROemt1TmpZM0xqUXdNeTB1TURBeExqYzJPQzB1TXpFMExqa3pMUzQzT1RrdU5qQXpMVFV1TnpVMklESXVNak00TFRrdU56STVJRFF1TlRnMUxURXpMamM1TkM0M09ESXRNUzR6TlNBeExqWTNNeTB5TGpjeE5TQXlMalEyTlMwekxqazVJREV1TVRNM0xURXVOalkySURJdU16STRMVE11TkNBekxqWXpPQzAxTGpFMk9TNHpNVFV0TGpRNE1pNDJORFV0TGprMk1pNDVPRGd0TVM0ME16a3VNeTB1TlRBekxqWXhOeTB4TGpBd05pNDVOUzB4TGpVd09DNHpOVGt0TGpjdU56WXRNUzQwTURRZ01TNHhPUzB5TGpFd055QXhMalF5TmkweUxqUXdNaUF5TFRVdU1URTBJREl1TURBMExUY3VPRGMxSURBdE9DNDRORFF0Tnk0MU1URXRNVFl1TURFMExURTJMamMzTmkweE5pNHdNVFI2SWlCbWFXeHNQU0lqWkdRMFlqTmxJaUJ3WVdsdWRDMXZjbVJsY2owaWJXRnlhMlZ5Y3lCemRISnZhMlVnWm1sc2JDSXZQanhsYkd4cGNITmxJSEo1UFNJMUxqVTJOQ0lnY25nOUlqVXVPREk0SWlCamVUMGlNak01TGpBd01pSWdZM2c5SWpJeU5pNDNORElpSUdacGJHdzlJaU00TURKa01qY2lJSEJoYVc1MExXOXlaR1Z5UFNKdFlYSnJaWEp6SUhOMGNtOXJaU0JtYVd4c0lpOCtQSEJoZEdnZ1pEMGlUVEU1TUM0ek1ERWdNak0zTGpJNE0yTXROQzQyTnlBd0xUZ3VORFUzSURNdU9EVXpMVGd1TkRVM0lEZ3VOakEyY3pNdU56ZzJJRGd1TmpBM0lEZ3VORFUzSURndU5qQTNZek11TURReklEQWdOQzQ0TURZdExqazFPQ0EyTGpNek55MHlMalV4TmlBeExqVXpMVEV1TlRVM0lESXVNRGczTFRNdU9URXpJREl1TURnM0xUWXVNamtnTUMwdU16WXlMUzR3TWpNdExqY3lNaTB1TURZMExURXVNRGM1YUMwNExqSTFOM1l6TGpBME0yZzBMamcxWXkwdU1UazNMamMxT1MwdU5UTXhJREV1TkRVdE1TNHdOVGdnTVM0NU9EWXRMamswTWk0NU5UZ3RNaTR3TWpnZ01TNDFORGd0TXk0NU1ERWdNUzQxTkRndE1pNDROellnTUMwMUxqSXdPQzB5TGpNM01pMDFMakl3T0MwMUxqSTVPU0F3TFRJdU9USTJJREl1TXpNeUxUVXVNams1SURVdU1qQTRMVFV1TWprNUlERXVNems1SURBZ01pNDJNVGd1TkRBM0lETXVOVGcwSURFdU1qa3piREl1TXpneExUSXVNemhqTUMwdU1EQXlMUzR3TURNdExqQXdOQzB1TURBMExTNHdNRFV0TVM0MU9EZ3RNUzQxTWpRdE15NDJNaTB5TGpJeE5TMDFMamsxTlMweUxqSXhOWHB0TkM0ME15QTFMalkyYkM0d01ETXVNREEyZGkwdU1EQXplaUlnWm1sc2JEMGlJMlptWmlJZ2NHRnBiblF0YjNKa1pYSTlJbTFoY210bGNuTWdjM1J5YjJ0bElHWnBiR3dpTHo0OGNHRjBhQ0JrUFNKTk1qRTFMakU0TkNBeU5URXVPVEk1YkMwM0xqazRJRGN1T1RjNUlESTRMalEzTnlBeU9DNDBOelZqTGpJNE55MHVOalE1TGpRME9TMHhMak0yTmk0ME5Ea3RNaTR4TWpOMkxUTXhMakUyTldNdExqUTJPUzQyTnpVdExqa3pOQ0F4TGpNME9TMHhMak00TWlBeUxqQXdOUzB1TnpreUlERXVNamMxTFRFdU5qZ3lJREl1TmpRdE1pNDBOalVnTXk0NU9TMHlMak0wTnlBMExqQTJOUzB6TGprNE1pQTRMakF6T0MwMExqVTROU0F4TXk0M09UUXRMakUyTWk0ME9EVXRMalV5Tnk0M09UZ3RMamt6TGpjNU9TMHVNell6TFM0d01ERXRMalk1TnkwdU1qVTFMUzQ0TnprdExqWTJOM1l0TGpBeE1tTXRMalU1TXkwMUxqZ3lNaTB5TGpJek55MDVMamd5TFRRdU5pMHhNeTQ1TVRRdExqYzRNeTB4TGpNMUxURXVOamN6TFRJdU56RTFMVEl1TkRZMkxUTXVPVGt0TVM0eE16Y3RNUzQyTmpZdE1pNHpNamN0TXk0MExUTXVOak0zTFRVdU1UWTViQzB1TURBeUxTNHdNRE42SWlCbWFXeHNQU0lqWXpOak0yTXpJaTgrUEhCaGRHZ2daRDBpVFRJeE1pNDVPRE1nTWpRNExqUTVOV3d0TXpZdU9UVXlJRE0yTGprMU0zWXVPREV5WVRVdU1qSTNJRFV1TWpJM0lEQWdNQ0F3SURVdU1qTTRJRFV1TWpNNGFERXVNREUxYkRNMUxqWTJOaTB6TlM0Mk5qWmhNVE0yTGpJM05TQXhNell1TWpjMUlEQWdNQ0F3TFRJdU56WTBMVE11T1NBek55NDFOelVnTXpjdU5UYzFJREFnTUNBd0xTNDVPRGt0TVM0ME5HTXRMakk1T1MwdU5UQXpMUzQyTVRZdE1TNHdNRFl0TGprMUxURXVOVEE0TFM0d09ETXRMakUyTWkwdU1UYzJMUzR6TWpZdExqSTJOQzB1TkRnNWVpSWdabWxzYkQwaUkyWmtaR00wWmlJZ2NHRnBiblF0YjNKa1pYSTlJbTFoY210bGNuTWdjM1J5YjJ0bElHWnBiR3dpTHo0OGNHRjBhQ0JrUFNKTk1qRXhMams1T0NBeU5qRXVNRGd6YkMwMkxqRTFNaUEyTGpFMU1TQXlOQzR5TmpRZ01qUXVNalkwYUM0M09ERmhOUzR5TWpjZ05TNHlNamNnTUNBd0lEQWdOUzR5TXprdE5TNHlNemgyTFRFdU1EUTFlaUlnWm1sc2JEMGlJMlptWmlJZ2NHRnBiblF0YjNKa1pYSTlJbTFoY210bGNuTWdjM1J5YjJ0bElHWnBiR3dpTHo0OEwyYytQQzl6ZG1jKyk7XG5cdH1cblxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJmYWNlYm9vay5jb21cIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlciB7XG5cdFx0YmFja2dyb3VuZDogaHNsKDIyMCwgNDYlLCA0OCUpXG5cdH1cblxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJmYWNlYm9vay5jb21cIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX19pY29uIHtcblx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQmxibU52WkdsdVp6MGlWVlJHTFRnaVB6NDhjM1puSUhkcFpIUm9QU0l4TURJMGNIZ2lJR2hsYVdkb2REMGlNVEF5TkhCNElpQjJhV1YzUW05NFBTSXdJREFnTVRBeU5DQXhNREkwSWlCMlpYSnphVzl1UFNJeExqRWlJSGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdlRzFzYm5NNmVHeHBibXM5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZlR3hwYm1zaVBpQWdJQ0FnSUNBZ1BIUnBkR3hsUGtacGJHd2dNVHd2ZEdsMGJHVStJQ0FnSUR4a1pYTmpQa055WldGMFpXUWdkMmwwYUNCVGEyVjBZMmd1UEM5a1pYTmpQaUFnSUNBOFpHVm1jejQ4TDJSbFpuTStJQ0FnSUR4bklHbGtQU0pRWVdkbExURWlJSE4wY205clpUMGlibTl1WlNJZ2MzUnliMnRsTFhkcFpIUm9QU0l4SWlCbWFXeHNQU0p1YjI1bElpQm1hV3hzTFhKMWJHVTlJbVYyWlc1dlpHUWlQaUFnSUNBZ0lDQWdQR2NnYVdROUltWk1iMmR2WDFkb2FYUmxJaUJtYVd4c1BTSWpSa1pHUmtaRklqNGdJQ0FnSUNBZ0lDQWdJQ0E4Y0dGMGFDQmtQU0pOT1RZM0xqUTROQ3d3SUV3MU5pNDFNVGNzTUNCRE1qVXVNekEwTERBZ01Dd3lOUzR6TURRZ01DdzFOaTQxTVRjZ1REQXNPVFkzTGpRNE15QkRNQ3c1T1RndU5qazBJREkxTGpJNU55d3hNREkwSURVMkxqVXlNaXd4TURJMElFdzFORGNzTVRBeU5DQk1OVFEzTERZeU9DQk1OREUwTERZeU9DQk1OREUwTERRM015Qk1OVFEzTERRM015Qk1OVFEzTERNMU9TNHdNamtnUXpVME55d3lNall1TnpZM0lEWXlOeTQzTnpNc01UVTBMamMwTnlBM05EVXVOelUyTERFMU5DNDNORGNnUXpnd01pNHlOamtzTVRVMExqYzBOeUE0TlRBdU9EUXlMREUxT0M0NU5UVWdPRFkxTERFMk1DNDRNellnVERnMk5Td3lPVGtnVERjNE15NHpPRFFzTWprNUxqQXpOeUJETnpFNUxqTTVNU3d5T1RrdU1ETTNJRGN3Tnl3ek1qa3VOVEk1SURjd055d3pOelF1TWpjeklFdzNNRGNzTkRjeklFdzROakF1TkRnM0xEUTNNeUJNT0RRd0xqVXdNU3cyTWpnZ1REY3dOeXcyTWpnZ1REY3dOeXd4TURJMElFdzVOamN1TkRnMExERXdNalFnUXprNU9DNDJPVGNzTVRBeU5DQXhNREkwTERrNU9DNDJPVGNnTVRBeU5DdzVOamN1TkRnMElFd3hNREkwTERVMkxqVXhOU0JETVRBeU5Dd3lOUzR6TURNZ09UazRMalk1Tnl3d0lEazJOeTQwT0RRc01DSWdhV1E5SWtacGJHd3RNU0krUEM5d1lYUm9QaUFnSUNBZ0lDQWdQQzluUGlBZ0lDQThMMmMrUEM5emRtYyspO1xuXHRcdH1cblxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJmYWNlYm9vay5jb21cIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmxfX3RleHQge1xuXHRcdFx0Y29sb3I6IGhzbCgyMjAsIDEwMCUsIDkwJSlcblx0XHR9XG5cbi5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiZmFjZWJvb2suY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0OmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdFx0XHR9XG5cbi5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiaW5zdGFncmFtLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIHtcblx0XHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoLTEzNWRlZyxoc2woMjQ2LCAxMDAlLCAzOSUpLGhzbCgzMDIsIDEwMCUsIDM2JSksaHNsKDAsIDEwMCUsIDQ4JSkpXG5cdH1cblxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJpbnN0YWdyYW0uY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpVlZSR0xUZ2lQejQ4YzNabklIZHBaSFJvUFNJMU1EUndlQ0lnYUdWcFoyaDBQU0kxTURSd2VDSWdkbWxsZDBKdmVEMGlNQ0F3SURVd05DQTFNRFFpSUhabGNuTnBiMjQ5SWpFdU1TSWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklpQjRiV3h1Y3pwNGJHbHVhejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TVRrNU9TOTRiR2x1YXlJK0lDQWdJQ0FnSUNBOGRHbDBiR1UrWjJ4NWNHZ3RiRzluYjE5TllYa3lNREUyUEM5MGFYUnNaVDRnSUNBZ1BHUmxjMk0rUTNKbFlYUmxaQ0IzYVhSb0lGTnJaWFJqYUM0OEwyUmxjMk0rSUNBZ0lEeGtaV1p6UGlBZ0lDQWdJQ0FnUEhCdmJIbG5iMjRnYVdROUluQmhkR2d0TVNJZ2NHOXBiblJ6UFNJd0lEQXVNVFU1SURVd015NDROREVnTUM0eE5Ua2dOVEF6TGpnME1TQTFNRE11T1RRZ01DQTFNRE11T1RRaVBqd3ZjRzlzZVdkdmJqNGdJQ0FnUEM5a1pXWnpQaUFnSUNBOFp5QnBaRDBpWjJ4NWNHZ3RiRzluYjE5TllYa3lNREUySWlCemRISnZhMlU5SW01dmJtVWlJSE4wY205clpTMTNhV1IwYUQwaU1TSWdabWxzYkQwaWJtOXVaU0lnWm1sc2JDMXlkV3hsUFNKbGRtVnViMlJrSWo0Z0lDQWdJQ0FnSUR4bklHbGtQU0pIY205MWNDMHpJajRnSUNBZ0lDQWdJQ0FnSUNBOGJXRnpheUJwWkQwaWJXRnpheTB5SWlCbWFXeHNQU0ozYUdsMFpTSStJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeDFjMlVnZUd4cGJtczZhSEpsWmowaUkzQmhkR2d0TVNJK1BDOTFjMlUrSUNBZ0lDQWdJQ0FnSUNBZ1BDOXRZWE5yUGlBZ0lDQWdJQ0FnSUNBZ0lEeG5JR2xrUFNKRGJHbHdMVElpUGp3dlp6NGdJQ0FnSUNBZ0lDQWdJQ0E4Y0dGMGFDQmtQU0pOTWpVeExqa3lNU3d3TGpFMU9TQkRNVGd6TGpVd015d3dMakUxT1NBeE56UXVPVEkwTERBdU5EUTVJREUwT0M0d05UUXNNUzQyTnpVZ1F6RXlNUzR5TkN3eUxqZzVPQ0F4TURJdU9USTNMRGN1TVRVM0lEZzJMamt3TXl3eE15NHpPRFVnUXpjd0xqTXpOeXd4T1M0NE1qSWdOVFl1TWpnNExESTRMalF6TmlBME1pNHlPRElzTkRJdU5EUXhJRU15T0M0eU56Y3NOVFl1TkRRM0lERTVMalkyTXl3M01DNDBPVFlnTVRNdU1qSTJMRGczTGpBMk1pQkROaTQ1T1Rnc01UQXpMakE0TmlBeUxqY3pPU3d4TWpFdU16azVJREV1TlRFMkxERTBPQzR5TVRNZ1F6QXVNamtzTVRjMUxqQTRNeUF3TERFNE15NDJOaklnTUN3eU5USXVNRGdnUXpBc016SXdMalE1TnlBd0xqSTVMRE15T1M0d056WWdNUzQxTVRZc016VTFMamswTmlCRE1pNDNNemtzTXpneUxqYzJJRFl1T1RrNExEUXdNUzR3TnpNZ01UTXVNakkyTERReE55NHdPVGNnUXpFNUxqWTJNeXcwTXpNdU5qWXpJREk0TGpJM055dzBORGN1TnpFeUlEUXlMakk0TWl3ME5qRXVOekU0SUVNMU5pNHlPRGdzTkRjMUxqY3lNeUEzTUM0ek16Y3NORGcwTGpNek55QTROaTQ1TURNc05Ea3dMamMzTlNCRE1UQXlMamt5Tnl3ME9UY3VNREF5SURFeU1TNHlOQ3cxTURFdU1qWXhJREUwT0M0d05UUXNOVEF5TGpRNE5DQkRNVGMwTGpreU5DdzFNRE11TnpFZ01UZ3pMalV3TXl3MU1EUWdNalV4TGpreU1TdzFNRFFnUXpNeU1DNHpNemdzTlRBMElETXlPQzQ1TVRjc05UQXpMamN4SURNMU5TNDNPRGNzTlRBeUxqUTROQ0JETXpneUxqWXdNU3cxTURFdU1qWXhJRFF3TUM0NU1UUXNORGszTGpBd01pQTBNVFl1T1RNNExEUTVNQzQzTnpVZ1F6UXpNeTQxTURRc05EZzBMak16TnlBME5EY3VOVFV6TERRM05TNDNNak1nTkRZeExqVTFPU3cwTmpFdU56RTRJRU0wTnpVdU5UWTBMRFEwTnk0M01USWdORGcwTGpFM09DdzBNek11TmpZeklEUTVNQzQyTVRZc05ERTNMakE1TnlCRE5EazJMamcwTXl3ME1ERXVNRGN6SURVd01TNHhNRElzTXpneUxqYzJJRFV3TWk0ek1qVXNNelUxTGprME5pQkROVEF6TGpVMU1Td3pNamt1TURjMklEVXdNeTQ0TkRFc016SXdMalE1TnlBMU1ETXVPRFF4TERJMU1pNHdPQ0JETlRBekxqZzBNU3d4T0RNdU5qWXlJRFV3TXk0MU5URXNNVGMxTGpBNE15QTFNREl1TXpJMUxERTBPQzR5TVRNZ1F6VXdNUzR4TURJc01USXhMak01T1NBME9UWXVPRFF6TERFd015NHdPRFlnTkRrd0xqWXhOaXc0Tnk0d05qSWdRelE0TkM0eE56Z3NOekF1TkRrMklEUTNOUzQxTmpRc05UWXVORFEzSURRMk1TNDFOVGtzTkRJdU5EUXhJRU0wTkRjdU5UVXpMREk0TGpRek5pQTBNek11TlRBMExERTVMamd5TWlBME1UWXVPVE00TERFekxqTTROU0JETkRBd0xqa3hOQ3czTGpFMU55QXpPREl1TmpBeExESXVPRGs0SURNMU5TNDNPRGNzTVM0Mk56VWdRek15T0M0NU1UY3NNQzQwTkRrZ016SXdMak16T0N3d0xqRTFPU0F5TlRFdU9USXhMREF1TVRVNUlGb2dUVEkxTVM0NU1qRXNORFV1TlRVZ1F6TXhPUzR4T0RZc05EVXVOVFVnTXpJM0xqRTFOQ3cwTlM0NE1EY2dNelV6TGpjeE9DdzBOeTR3TVRrZ1F6TTNPQzR5T0N3ME9DNHhNemtnTXpreExqWXhPU3cxTWk0eU5ETWdOREF3TGpRNU5pdzFOUzQyT1RNZ1F6UXhNaTR5TlRVc05qQXVNall6SURReU1DNDJORGNzTmpVdU56SXlJRFF5T1M0ME5qSXNOelF1TlRNNElFTTBNemd1TWpjNExEZ3pMak0xTXlBME5ETXVOek0zTERreExqYzBOU0EwTkRndU16QTNMREV3TXk0MU1EUWdRelExTVM0M05UY3NNVEV5TGpNNE1TQTBOVFV1T0RZeExERXlOUzQzTWlBME5UWXVPVGd4TERFMU1DNHlPRElnUXpRMU9DNHhPVE1zTVRjMkxqZzBOaUEwTlRndU5EVXNNVGcwTGpneE5DQTBOVGd1TkRVc01qVXlMakE0SUVNME5UZ3VORFVzTXpFNUxqTTBOU0EwTlRndU1Ua3pMRE15Tnk0ek1UTWdORFUyTGprNE1Td3pOVE11T0RjM0lFTTBOVFV1T0RZeExETTNPQzQwTXprZ05EVXhMamMxTnl3ek9URXVOemM0SURRME9DNHpNRGNzTkRBd0xqWTFOU0JETkRRekxqY3pOeXcwTVRJdU5ERTBJRFF6T0M0eU56Z3NOREl3TGpnd05pQTBNamt1TkRZeUxEUXlPUzQyTWpFZ1F6UXlNQzQyTkRjc05ETTRMalF6TnlBME1USXVNalUxTERRME15NDRPVFlnTkRBd0xqUTVOaXcwTkRndU5EWTJJRU16T1RFdU5qRTVMRFExTVM0NU1UWWdNemM0TGpJNExEUTFOaTR3TWlBek5UTXVOekU0TERRMU55NHhOQ0JETXpJM0xqRTFPQ3cwTlRndU16VXlJRE14T1M0eE9URXNORFU0TGpZd09TQXlOVEV1T1RJeExEUTFPQzQyTURrZ1F6RTROQzQyTlN3ME5UZ3VOakE1SURFM05pNDJPRFFzTkRVNExqTTFNaUF4TlRBdU1USXpMRFExTnk0eE5DQkRNVEkxTGpVMk1TdzBOVFl1TURJZ01URXlMakl5TWl3ME5URXVPVEUySURFd015NHpORFVzTkRRNExqUTJOaUJET1RFdU5UZzJMRFEwTXk0NE9UWWdPRE11TVRrMExEUXpPQzQwTXpjZ056UXVNemM1TERReU9TNDJNakVnUXpZMUxqVTJOQ3cwTWpBdU9EQTJJRFl3TGpFd05DdzBNVEl1TkRFMElEVTFMalV6TkN3ME1EQXVOalUxSUVNMU1pNHdPRFFzTXpreExqYzNPQ0EwTnk0NU9Dd3pOemd1TkRNNUlEUTJMamcyTERNMU15NDROemNnUXpRMUxqWTBPQ3d6TWpjdU16RXpJRFExTGpNNU1Td3pNVGt1TXpRMUlEUTFMak01TVN3eU5USXVNRGdnUXpRMUxqTTVNU3d4T0RRdU9ERTBJRFExTGpZME9Dd3hOell1T0RRMklEUTJMamcyTERFMU1DNHlPRElnUXpRM0xqazRMREV5TlM0M01pQTFNaTR3T0RRc01URXlMak00TVNBMU5TNDFNelFzTVRBekxqVXdOQ0JETmpBdU1UQTBMRGt4TGpjME5TQTJOUzQxTmpNc09ETXVNelV6SURjMExqTTNPU3czTkM0MU16Z2dRemd6TGpFNU5DdzJOUzQzTWpJZ09URXVOVGcyTERZd0xqSTJNeUF4TURNdU16UTFMRFUxTGpZNU15QkRNVEV5TGpJeU1pdzFNaTR5TkRNZ01USTFMalUyTVN3ME9DNHhNemtnTVRVd0xqRXlNeXcwTnk0d01Ua2dRekUzTmk0Mk9EY3NORFV1T0RBM0lERTROQzQyTlRVc05EVXVOVFVnTWpVeExqa3lNU3cwTlM0MU5TQmFJaUJwWkQwaVJtbHNiQzB4SWlCbWFXeHNQU0lqUmtaR1JrWkdJaUJ0WVhOclBTSjFjbXdvSTIxaGMyc3RNaWtpUGp3dmNHRjBhRDRnSUNBZ0lDQWdJRHd2Wno0Z0lDQWdJQ0FnSUR4d1lYUm9JR1E5SWsweU5URXVPVEl4TERNek5pNHdOVE1nUXpJd05TNDFORE1zTXpNMkxqQTFNeUF4TmpjdU9UUTNMREk1T0M0ME5UY2dNVFkzTGprME55d3lOVEl1TURnZ1F6RTJOeTQ1TkRjc01qQTFMamN3TWlBeU1EVXVOVFF6TERFMk9DNHhNRFlnTWpVeExqa3lNU3d4TmpndU1UQTJJRU15T1RndU1qazRMREUyT0M0eE1EWWdNek0xTGpnNU5Dd3lNRFV1TnpBeUlETXpOUzQ0T1RRc01qVXlMakE0SUVNek16VXVPRGswTERJNU9DNDBOVGNnTWprNExqSTVPQ3d6TXpZdU1EVXpJREkxTVM0NU1qRXNNek0yTGpBMU15QmFJRTB5TlRFdU9USXhMREV5TWk0M01UVWdRekU0TUM0ME56UXNNVEl5TGpjeE5TQXhNakl1TlRVMkxERTRNQzQyTXpNZ01USXlMalUxTml3eU5USXVNRGdnUXpFeU1pNDFOVFlzTXpJekxqVXlOaUF4T0RBdU5EYzBMRE00TVM0ME5EUWdNalV4TGpreU1Td3pPREV1TkRRMElFTXpNak11TXpZM0xETTRNUzQwTkRRZ016Z3hMakk0TlN3ek1qTXVOVEkySURNNE1TNHlPRFVzTWpVeUxqQTRJRU16T0RFdU1qZzFMREU0TUM0Mk16TWdNekl6TGpNMk55d3hNakl1TnpFMUlESTFNUzQ1TWpFc01USXlMamN4TlNCYUlpQnBaRDBpUm1sc2JDMDBJaUJtYVd4c1BTSWpSa1pHUmtaR0lqNDhMM0JoZEdnK0lDQWdJQ0FnSUNBOGNHRjBhQ0JrUFNKTk5ERTJMall5Tnl3eE1UY3VOakEwSUVNME1UWXVOakkzTERFek5DNHpJRFF3TXk0d09USXNNVFEzTGpnek5DQXpPRFl1TXprMkxERTBOeTQ0TXpRZ1F6TTJPUzQzTURFc01UUTNMamd6TkNBek5UWXVNVFkyTERFek5DNHpJRE0xTmk0eE5qWXNNVEUzTGpZd05DQkRNelUyTGpFMk5pd3hNREF1T1RBNElETTJPUzQzTURFc09EY3VNemN6SURNNE5pNHpPVFlzT0RjdU16Y3pJRU0wTURNdU1Ea3lMRGczTGpNM015QTBNVFl1TmpJM0xERXdNQzQ1TURnZ05ERTJMall5Tnl3eE1UY3VOakEwSWlCcFpEMGlSbWxzYkMwMUlpQm1hV3hzUFNJalJrWkdSa1pHSWo0OEwzQmhkR2crSUNBZ0lEd3ZaejQ4TDNOMlp6ND0pO1xuXHRcdH1cblxuLmNrLW1lZGlhX193cmFwcGVyW2RhdGEtb2VtYmVkLXVybCo9XCJpbnN0YWdyYW0uY29tXCJdIC5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXG5cdFx0Lyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cblx0fVxuXG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cImluc3RhZ3JhbS5jb21cIl0gLmNrLW1lZGlhX19wbGFjZWhvbGRlciAuY2stbWVkaWFfX3BsYWNlaG9sZGVyX191cmxfX3RleHQge1xuXHRcdFx0Y29sb3I6IGhzbCgzMDIsIDEwMCUsIDk0JSlcblx0XHR9XG5cbi5jay1tZWRpYV9fd3JhcHBlcltkYXRhLW9lbWJlZC11cmwqPVwiaW5zdGFncmFtLmNvbVwiXSAuY2stbWVkaWFfX3BsYWNlaG9sZGVyIC5jay1tZWRpYV9fcGxhY2Vob2xkZXJfX3VybF9fdGV4dDpob3ZlciB7XG5cdFx0XHRcdGNvbG9yOiBoc2woMCwgMCUsIDEwMCUpO1xuXHRcdFx0fVxuXG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cInR3aXR0ZXIuY29tXCJdIC5jay5jay1tZWRpYV9fcGxhY2Vob2xkZXIge1xuXHRcdC8qIFVzZSBncmFkaWVudCB0byBjb250cmFzdCB3aXRoIGZvY3VzZWQgd2lkZ2V0IChja2VkaXRvci9ja2VkaXRvcjUtbWVkaWEtZW1iZWQjMjIpLiAqL1xuXHRcdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCggdG8gcmlnaHQsIGhzbCgyMDEsIDg1JSwgNzAlKSwgaHNsKDIwMSwgODUlLCAzNSUpIClcblx0fVxuXG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cInR3aXR0ZXIuY29tXCJdIC5jay5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9faWNvbiB7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejQ4YzNabklIWmxjbk5wYjI0OUlqRXVNU0lnYVdROUlsZG9hWFJsSWlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhodGJHNXpPbmhzYVc1clBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1TDNoc2FXNXJJaUI0UFNJd2NIZ2lJSGs5SWpCd2VDSWdkbWxsZDBKdmVEMGlNQ0F3SURRd01DQTBNREFpSUhOMGVXeGxQU0psYm1GaWJHVXRZbUZqYTJkeWIzVnVaRHB1WlhjZ01DQXdJRFF3TUNBME1EQTdJaUI0Yld3NmMzQmhZMlU5SW5CeVpYTmxjblpsSWo0OGMzUjViR1VnZEhsd1pUMGlkR1Y0ZEM5amMzTWlQaTV6ZERCN1ptbHNiRG9qUmtaR1JrWkdPMzA4TDNOMGVXeGxQanh3WVhSb0lHTnNZWE56UFNKemREQWlJR1E5SWswME1EQXNNakF3WXpBc01URXdMalV0T0RrdU5Td3lNREF0TWpBd0xESXdNRk13TERNeE1DNDFMREFzTWpBd1V6ZzVMalVzTUN3eU1EQXNNRk0wTURBc09Ea3VOU3cwTURBc01qQXdlaUJOTVRZekxqUXNNekExTGpWak9EZ3VOeXd3TERFek55NHlMVGN6TGpVc01UTTNMakl0TVRNM0xqSmpNQzB5TGpFc01DMDBMakl0TUM0eExUWXVNbU01TGpRdE5pNDRMREUzTGpZdE1UVXVNeXd5TkM0eExUSTFZeTA0TGpZc015NDRMVEUzTGprc05pNDBMVEkzTGpjc055NDJZekV3TFRZc01UY3VOaTB4TlM0MExESXhMakl0TWpZdU4yTXRPUzR6TERVdU5TMHhPUzQyTERrdU5TMHpNQzQyTERFeExqZGpMVGd1T0MwNUxqUXRNakV1TXkweE5TNHlMVE0xTGpJdE1UVXVNbU10TWpZdU5pd3dMVFE0TGpJc01qRXVOaTAwT0M0eUxEUTRMakpqTUN3ekxqZ3NNQzQwTERjdU5Td3hMak1zTVRGakxUUXdMakV0TWkwM05TNDJMVEl4TGpJdE9Ua3VOQzAxTUM0MFl5MDBMakVzTnk0eExUWXVOU3d4TlM0MExUWXVOU3d5TkM0eVl6QXNNVFl1Tnl3NExqVXNNekV1TlN3eU1TNDFMRFF3TGpGakxUY3VPUzB3TGpJdE1UVXVNeTB5TGpRdE1qRXVPQzAyWXpBc01DNHlMREFzTUM0MExEQXNNQzQyWXpBc01qTXVOQ3d4Tmk0MkxEUXlMamdzTXpndU55dzBOeTR6WXkwMExERXVNUzA0TGpNc01TNDNMVEV5TGpjc01TNDNZeTB6TGpFc01DMDJMakV0TUM0ekxUa3VNUzB3TGpsak5pNHhMREU1TGpJc01qTXVPU3d6TXk0eExEUTFMRE16TGpWakxURTJMalVzTVRJdU9TMHpOeTR6TERJd0xqWXROVGt1T1N3eU1DNDJZeTB6TGprc01DMDNMamN0TUM0eUxURXhMalV0TUM0M1F6RXhNQzQ0TERJNU55NDFMREV6Tmk0eUxETXdOUzQxTERFMk15NDBMRE13TlM0MUlpOCtQQzl6ZG1jKyk7XG5cdFx0fVxuXG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cInR3aXR0ZXIuY29tXCJdIC5jay5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0IHtcblx0XHRcdGNvbG9yOiBoc2woMjAxLCAxMDAlLCA4NiUpXG5cdFx0fVxuXG4uY2stbWVkaWFfX3dyYXBwZXJbZGF0YS1vZW1iZWQtdXJsKj1cInR3aXR0ZXIuY29tXCJdIC5jay5jay1tZWRpYV9fcGxhY2Vob2xkZXIgLmNrLW1lZGlhX19wbGFjZWhvbGRlcl9fdXJsX190ZXh0OmhvdmVyIHtcblx0XHRcdFx0Y29sb3I6IGhzbCgwLCAwJSwgMTAwJSk7XG5cdFx0XHR9XG4iLCIvKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LW1lZGlhLWVtYmVkXFx0aGVtZVxcbWVkaWFmb3JtLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLmNrLmNrLW1lZGlhLWZvcm0ge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblx0ZmxleC13cmFwOiBub3dyYXBcbn1cblxuLmNrLmNrLW1lZGlhLWZvcm0gLmNrLWxhYmVsZWQtZmllbGQtdmlldyB7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR9XG5cbi5jay5jay1tZWRpYS1mb3JtIC5jay1sYWJlbCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXG4uY2suY2stbWVkaWEtZm9ybSB7XG5cdFx0ZmxleC13cmFwOiB3cmFwXG59XG5cblx0XHQuY2suY2stbWVkaWEtZm9ybSAuY2stbGFiZWxlZC1maWVsZC12aWV3IHtcblx0XHRcdGZsZXgtYmFzaXM6IDEwMCU7XG5cdFx0fVxuXG5cdFx0LmNrLmNrLW1lZGlhLWZvcm0gLmNrLWJ1dHRvbiB7XG5cdFx0XHRmbGV4LWJhc2lzOiA1MCU7XG5cdFx0fVxuXHR9XG4iLCIvKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LW1lZGlhLWVtYmVkXFx0aGVtZVxcbWVkaWFlbWJlZC5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2stY29udGVudCAubWVkaWEge1xuXHQvKiBEb24ndCBhbGxvdyBmbG9hdGVkIGNvbnRlbnQgb3ZlcmxhcCB0aGUgbWVkaWEuXG5cdGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtbWVkaWEtZW1iZWQvaXNzdWVzLzUzICovXG5cdGNsZWFyOiBib3RoO1xuXG5cdC8qIE1ha2Ugc3VyZSB0aGVyZSBpcyBzb21lIHNwYWNlIGJldHdlZW4gdGhlIGNvbnRlbnQgYW5kIHRoZSBtZWRpYS4gKi9cblx0bWFyZ2luOiAxZW0gMDtcblxuXHQvKiBNYWtlIHN1cmUgbWVkaWEgaXMgbm90IG92ZXJyaWRlbiB3aXRoIEJvb3RzdHJhcCBkZWZhdWx0IGBmbGV4YCB2YWx1ZS5cblx0U2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy8xMzczLiAqL1xuXHRkaXNwbGF5OiBibG9jaztcblxuXHQvKiBHaXZlIHRoZSBtZWRpYSBzb21lIG1pbmltYWwgd2lkdGggaW4gdGhlIGNvbnRlbnQgdG8gcHJldmVudCB0aGVtXG5cdGZyb20gYmVpbmcgXCJzcXVhc2hlZFwiIGluIHRpZ2h0IHNwYWNlcywgZS5nLiBpbiB0YWJsZSBjZWxscyAoIzQ0KSAqL1xuXHRtaW4td2lkdGg6IDE1ZW07XG59XG4iLCIvKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRhYmxlXFx0aGVtZVxcdGFibGVlZGl0aW5nLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qXG4gKiBOb3RlOiBUaGlzIGZpbGUgc2hvdWxkIGNvbnRhaW4gdGhlIHdpcmVmcmFtZSBzdHlsZXMgb25seS4gQnV0IHNpbmNlIHRoZXJlIGFyZSBubyBzdWNoIHN0eWxlcyxcbiAqIGl0IGFjdHMgYXMgYSBtZXNzYWdlIHRvIHRoZSBidWlsZGVyIHRlbGxpbmcgdGhhdCBpdCBzaG91bGQgbG9vayBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgc3R5bGVzXG4gKiAqKmluIHRoZSB0aGVtZSoqIHdoZW4gY29tcGlsaW5nIHRoZSBlZGl0b3IuXG4gKi9cblxuLyogRDpcXFByb2plY3RcXHNpcml1c1xcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LXRhYmxlXFx0YWJsZWVkaXRpbmcuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuOnJvb3Qge1xuXHQtLWNrLWNvbG9yLXRhYmxlLWZvY3VzZWQtY2VsbC1iYWNrZ3JvdW5kOiBoc2xhKDIwOCwgOTAlLCA4MCUsIC4zKTtcbn1cblxuLmNrLXdpZGdldC50YWJsZSB0ZC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZS5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZV9mb2N1c2VkLFxuXHRcdC5jay13aWRnZXQudGFibGUgdGQuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGU6Zm9jdXMsXG5cdFx0LmNrLXdpZGdldC50YWJsZSB0aC5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZS5jay1lZGl0b3JfX25lc3RlZC1lZGl0YWJsZV9mb2N1c2VkLFxuXHRcdC5jay13aWRnZXQudGFibGUgdGguY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGU6Zm9jdXMge1xuXHRcdFx0LyogQSB2ZXJ5IHNsaWdodCBiYWNrZ3JvdW5kIHRvIGhpZ2hsaWdodCB0aGUgZm9jdXNlZCBjZWxsICovXG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci10YWJsZS1mb2N1c2VkLWNlbGwtYmFja2dyb3VuZCk7XG5cblx0XHRcdC8qIEZpeGVzIHRoZSBwcm9ibGVtIHdoZXJlIHN1cnJvdW5kaW5nIGNlbGxzIGNvdmVyIHRoZSBmb2N1c2VkIGNlbGwncyBib3JkZXIuXG5cdFx0XHRJdCBkb2VzIG5vdCBmaXggdGhlIHByb2JsZW0gaW4gYWxsIHBsYWNlcyBidXQgdGhlIFVYIGlzIGltcHJvdmVkLlxuXHRcdFx0U2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGFibGUvaXNzdWVzLzI5LiAqL1xuXHRcdFx0Ym9yZGVyLXN0eWxlOiBub25lO1xuXHRcdFx0b3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWZvY3VzLWJvcmRlcik7XG5cdFx0XHRvdXRsaW5lLW9mZnNldDogLTFweDsgLyogcHJvZ3Jlc3NpdmUgZW5oYW5jZW1lbnQgLSBubyBJRSBzdXBwb3J0ICovXG5cdFx0fVxuIiwiLyogRDpcXFByb2plY3RcXHNpcml1c1xcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS11aVxcdGhlbWVcXGNvbXBvbmVudHNcXGRyb3Bkb3duXFxzcGxpdGJ1dHRvbi5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogRW5hYmxlcyB0aGUgdG9vbHRpcCwgd2hpY2ggaXMgdGhlIHRvb2x0aXAgaXMgaW4gRE9NIGJ1dFxuICogbm90IHlldCBkaXNwbGF5ZWQuXG4gKi9cblxuLyoqXG4gKiBEaXNhYmxlcyB0aGUgdG9vbHRpcCBtYWtpbmcgaXQgZGlzYXBwZWFyIGZyb20gRE9NLlxuICovXG5cbi8qKlxuICogU2hvd3MgdGhlIHRvb2x0aXAsIHdoaWNoIGlzIGFscmVhZHkgaW4gRE9NLlxuICogUmVxdWlyZXMgYGNrLXRvb2x0aXBfZW5hYmxlZGAgZmlyc3QuXG4gKi9cblxuLmNrLmNrLXNwbGl0YnV0dG9uIHtcblx0LyogRW5hYmxlIGZvbnQgc2l6ZSBpbmhlcml0YW5jZSwgd2hpY2ggYWxsb3dzIGZsdWlkIFVJIHNjYWxpbmcuICovXG5cdGZvbnQtc2l6ZTogaW5oZXJpdFxufVxuXG4uY2suY2stc3BsaXRidXR0b24gLmNrLXNwbGl0YnV0dG9uX19hY3Rpb246Zm9jdXMge1xuXHRcdHotaW5kZXg6IGNhbGModmFyKC0tY2stei1kZWZhdWx0KSArIDEpO1xuXHR9XG5cbi5jay5jay1zcGxpdGJ1dHRvbiB7XG5cblx0LyogRGlzYWJsZSB0b29sdGlwcyBmb3IgdGhlIGJ1dHRvbnMgd2hlbiB0aGUgYnV0dG9uIGlzIFwib3BlblwiICovXG59XG5cbi5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLWJ1dHRvbiAuY2stdG9vbHRpcCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG4vKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtdWlcXGNvbXBvbmVudHNcXGRyb3Bkb3duXFxzcGxpdGJ1dHRvbi5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1zcGxpdC1idXR0b24taG92ZXItYmFja2dyb3VuZDogaHNsKDAsIDAlLCA5MiUpO1xuXHQtLWNrLWNvbG9yLXNwbGl0LWJ1dHRvbi1ob3Zlci1ib3JkZXI6IGhzbCgwLCAwJSwgNzAlKTtcbn1cblxuLmNrLmNrLXNwbGl0YnV0dG9uIHtcblx0Lypcblx0ICogTm90ZTogY2stcm91bmRlZCBhbmQgY2stZGlyIG1peGlucyBkb24ndCBnbyB0b2dldGhlciAoYmVjYXVzZSB0aGV5IGJvdGggdXNlIEBuZXN0KS5cblx0ICovXG59XG5cbltkaXI9XCJsdHJcIl0gLmNrLmNrLXNwbGl0YnV0dG9uID4gLmNrLXNwbGl0YnV0dG9uX19hY3Rpb24ge1xuXHRcdFx0LyogRG9uJ3Qgcm91bmQgdGhlIGFjdGlvbiBidXR0b24gb24gdGhlIHJpZ2h0IHNpZGUgKi9cblx0XHRcdGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB1bnNldDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB1bnNldFxuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrLmNrLXNwbGl0YnV0dG9uID4gLmNrLXNwbGl0YnV0dG9uX19hY3Rpb24ge1xuXHRcdFx0LyogRG9uJ3Qgcm91bmQgdGhlIGFjdGlvbiBidXR0b24gb24gdGhlIGxlZnQgc2lkZSAqL1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdW5zZXQ7XG5cdFx0XHRib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB1bnNldFxuXHR9XG5cbi5jay5jay1zcGxpdGJ1dHRvbiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3cge1xuXHRcdC8qIEl0J3MgYSB0ZXh0LWxlc3MgYnV0dG9uIGFuZCBzaW5jZSB0aGUgaWNvbiBpcyBwb3NpdGlvbmVkIGFic29sdXRlbHkgaW4gc3VjaCBzaXR1YXRpb24sXG5cdFx0aXQgbXVzdCBnZXQgc29tZSBhcmJpdHJhcnkgbWluLXdpZHRoLiAqL1xuXHRcdG1pbi13aWR0aDogdW5zZXRcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1zcGxpdGJ1dHRvbiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3cge1xuXHRcdFx0LyogRG9uJ3Qgcm91bmQgdGhlIGFycm93IGJ1dHRvbiBvbiB0aGUgbGVmdCBzaWRlICovXG5cdFx0XHRib3JkZXItcmFkaXVzOiAwXG5cdH1cblxuLmNrLXJvdW5kZWQtY29ybmVycyBbZGlyPVwibHRyXCJdIC5jay5jay1zcGxpdGJ1dHRvbiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3csIFtkaXI9XCJsdHJcIl0gLmNrLmNrLXNwbGl0YnV0dG9uID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdy5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpO1xuXHRcdFx0XHRib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB1bnNldDtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdW5zZXRcblx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1zcGxpdGJ1dHRvbiA+IC5jay1zcGxpdGJ1dHRvbl9fYXJyb3cge1xuXHRcdFx0LyogRG9uJ3Qgcm91bmQgdGhlIGFycm93IGJ1dHRvbiBvbiB0aGUgcmlnaHQgc2lkZSAqL1xuXHRcdFx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHVuc2V0O1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHVuc2V0XG5cdH1cblxuLmNrLmNrLXNwbGl0YnV0dG9uID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdyBzdmcge1xuXHRcdFx0d2lkdGg6IHZhcigtLWNrLWRyb3Bkb3duLWFycm93LXNpemUpO1xuXHRcdH1cblxuLmNrLmNrLXNwbGl0YnV0dG9uIHtcblxuXHQvKiBXaGVuIHRoZSBzcGxpdCBidXR0b24gaXMgXCJvcGVuXCIgKHRoZSBhcnJvdyBpcyBvbikgb3IgYmVpbmcgaG92ZXJlZCwgaXQgc2hvdWxkIGdldCBzb21lIHN0eWxpbmdcblx0YXMgYSB3aG9sZS4gVGhlIGJhY2tncm91bmQgb2YgYm90aCBidXR0b25zIHNob3VsZCBzdGFuZCBvdXQgYW5kIHRoZXJlIHNob3VsZCBiZSBhIHZpc3VhbFxuXHRzZXBhcmF0aW9uIGJldHdlZW4gYm90aCBidXR0b25zLiAqL1xufVxuXG4uY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fb3Blbixcblx0LmNrLmNrLXNwbGl0YnV0dG9uOmhvdmVyIHtcblx0XHQvKiBXaGVuIHRoZSBzcGxpdCBidXR0b24gaG92ZXJlZCBhcyBhIHdob2xlLCBub3QgYXMgaW5kaXZpZHVhbCBidXR0b25zLiAqL1xuXHR9XG5cbi5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLWJ1dHRvbjpub3QoLmNrLW9uKTpub3QoLmNrLWRpc2FibGVkKTpub3QoOmhvdmVyKSwgLmNrLmNrLXNwbGl0YnV0dG9uOmhvdmVyID4gLmNrLWJ1dHRvbjpub3QoLmNrLW9uKTpub3QoLmNrLWRpc2FibGVkKTpub3QoOmhvdmVyKSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1zcGxpdC1idXR0b24taG92ZXItYmFja2dyb3VuZCk7XG5cdFx0fVxuXG5bZGlyPVwibHRyXCJdIC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKSwgW2Rpcj1cImx0clwiXSAuY2suY2stc3BsaXRidXR0b246aG92ZXIgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpIHtcblx0XHRcdFx0Ym9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNrLWNvbG9yLXNwbGl0LWJ1dHRvbi1ob3Zlci1ib3JkZXIpO1xuXHRcdFx0fVxuXG5bZGlyPVwicnRsXCJdIC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuID4gLmNrLXNwbGl0YnV0dG9uX19hcnJvdzpub3QoLmNrLWRpc2FibGVkKSwgW2Rpcj1cInJ0bFwiXSAuY2suY2stc3BsaXRidXR0b246aG92ZXIgPiAuY2stc3BsaXRidXR0b25fX2Fycm93Om5vdCguY2stZGlzYWJsZWQpIHtcblx0XHRcdFx0Ym9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1jay1jb2xvci1zcGxpdC1idXR0b24taG92ZXItYm9yZGVyKTtcblx0XHRcdH1cblxuLmNrLmNrLXNwbGl0YnV0dG9uIHtcblxuXHQvKiBEb24ndCByb3VuZCB0aGUgYm90dG9tIGxlZnQgYW5kIHJpZ2h0IGNvcm5lcnMgb2YgdGhlIGJ1dHRvbnMgd2hlbiBcIm9wZW5cIlxuXHRodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy84MTYgKi9cbn1cblxuLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX29wZW4ge1xuXHRcdGJvcmRlci1yYWRpdXM6IDBcblx0fVxuXG4uY2stcm91bmRlZC1jb3JuZXJzIC5jay5jay1zcGxpdGJ1dHRvbi5jay1zcGxpdGJ1dHRvbl9vcGVuLCAuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fb3Blbi5jay1yb3VuZGVkLWNvcm5lcnMge1xuXHRcdGJvcmRlci1yYWRpdXM6IHZhcigtLWNrLWJvcmRlci1yYWRpdXMpXG5cdH1cblxuLmNrLXJvdW5kZWQtY29ybmVycyAuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fb3BlbiA+IC5jay1zcGxpdGJ1dHRvbl9fYWN0aW9uLCAuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fb3Blbi5jay1yb3VuZGVkLWNvcm5lcnMgPiAuY2stc3BsaXRidXR0b25fX2FjdGlvbiB7XG5cdFx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0XHR9XG5cbi5jay1yb3VuZGVkLWNvcm5lcnMgLmNrLmNrLXNwbGl0YnV0dG9uLmNrLXNwbGl0YnV0dG9uX29wZW4gPiAuY2stc3BsaXRidXR0b25fX2Fycm93LCAuY2suY2stc3BsaXRidXR0b24uY2stc3BsaXRidXR0b25fb3Blbi5jay1yb3VuZGVkLWNvcm5lcnMgPiAuY2stc3BsaXRidXR0b25fX2Fycm93IHtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG5cdFx0XHR9XG5cbiIsIi8qIEQ6XFxQcm9qZWN0XFxzaXJpdXNcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdGFibGVcXHRoZW1lXFxpbnNlcnR0YWJsZS5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2sgLmNrLWluc2VydC10YWJsZS1kcm9wZG93bl9fZ3JpZCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLyogRDpcXFByb2plY3RcXHNpcml1c1xcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LXRhYmxlXFxpbnNlcnR0YWJsZS5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG46cm9vdCB7XG5cdC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLXBhZGRpbmc6IDEwcHg7XG5cdC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC1oZWlnaHQ6IDExcHg7XG5cdC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC13aWR0aDogMTJweDtcblx0LS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LW1hcmdpbjogMXB4O1xufVxuXG4uY2sgLmNrLWluc2VydC10YWJsZS1kcm9wZG93bl9fZ3JpZCB7XG5cdC8qIFRoZSB3aWR0aCBvZiBhIGNvbnRhaW5lciBzaG91bGQgbWF0Y2ggMTAgaXRlbXMgaW4gYSByb3cgc28gdGhlcmUgd2lsbCBiZSBhIDEweDEwIGdyaWQuICovXG5cdHdpZHRoOiBjYWxjKHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ib3gtd2lkdGgpICogMTAgKyB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tYm94LW1hcmdpbikgKiAyMCArIHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1wYWRkaW5nKSAqIDIpO1xuXHRwYWRkaW5nOiB2YXIoLS1jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tcGFkZGluZykgdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLXBhZGRpbmcpIDA7XG59XG5cbi5jayAuY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duX19sYWJlbCB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmNrIC5jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tZ3JpZC1ib3gge1xuXHR3aWR0aDogdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC13aWR0aCk7XG5cdGhlaWdodDogdmFyKC0tY2staW5zZXJ0LXRhYmxlLWRyb3Bkb3duLWJveC1oZWlnaHQpO1xuXHRtYXJnaW46IHZhcigtLWNrLWluc2VydC10YWJsZS1kcm9wZG93bi1ib3gtbWFyZ2luKTtcblx0Ym9yZGVyOiAxcHggc29saWQgdmFyKC0tY2stY29sb3ItYmFzZS1ib3JkZXIpO1xuXHRib3JkZXItcmFkaXVzOiAxcHhcbn1cblxuLmNrIC5jay1pbnNlcnQtdGFibGUtZHJvcGRvd24tZ3JpZC1ib3guY2stb24ge1xuXHRcdGJvcmRlci1jb2xvcjogdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1jay1jb2xvci1mb2N1cy1vdXRlci1zaGFkb3cpO1xuXHR9XG4iLCIvKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRhYmxlXFx0aGVtZVxcdGFibGVzZWxlY3Rpb24uY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIE5vdGU6IFRoaXMgZmlsZSBzaG91bGQgY29udGFpbiB0aGUgd2lyZWZyYW1lIHN0eWxlcyBvbmx5LiBCdXQgc2luY2UgdGhlcmUgYXJlIG5vIHN1Y2ggc3R5bGVzLFxuICogaXQgYWN0cyBhcyBhIG1lc3NhZ2UgdG8gdGhlIGJ1aWxkZXIgdGVsbGluZyB0aGF0IGl0IHNob3VsZCBsb29rIGZvciB0aGUgY29ycmVzcG9uZGluZyBzdHlsZXNcbiAqICoqaW4gdGhlIHRoZW1lKiogd2hlbiBjb21waWxpbmcgdGhlIGVkaXRvci5cbiAqL1xuXG4vKiBEOlxcUHJvamVjdFxcc2lyaXVzXFxub2RlX21vZHVsZXNcXEBja2VkaXRvclxcY2tlZGl0b3I1LXRoZW1lLWxhcmtcXHRoZW1lXFxja2VkaXRvcjUtdGFibGVcXHRhYmxlc2VsZWN0aW9uLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbjpyb290IHtcblx0LS1jay10YWJsZS1zZWxlY3RlZC1jZWxsLWJhY2tncm91bmQ6IGhzbGEoMjA4LCA5MCUsIDgwJSwgLjMpO1xufVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGQuY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCxcblx0LmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIHRhYmxlIHRoLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRjYXJldC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0b3V0bGluZTogdW5zZXQ7XG5cdFx0Ym94LXNoYWRvdzogdW5zZXRcblxuXHRcdC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzY0NDYgKi9cblx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGQuY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZDphZnRlciwgLmNrLmNrLWVkaXRvcl9fZWRpdGFibGUgLnRhYmxlIHRhYmxlIHRoLmNrLWVkaXRvcl9fZWRpdGFibGVfc2VsZWN0ZWQ6YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNrLXRhYmxlLXNlbGVjdGVkLWNlbGwtYmFja2dyb3VuZCk7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDA7XG5cdFx0XHRsZWZ0OiAwO1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRib3R0b206IDA7XG5cdFx0fVxuXG4uY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGQuY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCA6OnNlbGVjdGlvbixcblx0XHQuY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGQuY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZDpmb2N1cyxcblx0XHQuY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGguY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZCA6OnNlbGVjdGlvbixcblx0XHQuY2suY2stZWRpdG9yX19lZGl0YWJsZSAudGFibGUgdGFibGUgdGguY2stZWRpdG9yX19lZGl0YWJsZV9zZWxlY3RlZDpmb2N1cyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0XHR9XG5cbi5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSB0YWJsZSB0ZC5jay1lZGl0b3JfX2VkaXRhYmxlX3NlbGVjdGVkIC5jay13aWRnZXRfc2VsZWN0ZWQsIC5jay5jay1lZGl0b3JfX2VkaXRhYmxlIC50YWJsZSB0YWJsZSB0aC5jay1lZGl0b3JfX2VkaXRhYmxlX3NlbGVjdGVkIC5jay13aWRnZXRfc2VsZWN0ZWQge1xuXHRcdFx0b3V0bGluZTogdW5zZXQ7XG5cdFx0fVxuIiwiLyogRDpcXFByb2plY3RcXHNpcml1c1xcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10YWJsZVxcdGhlbWVcXHRhYmxlLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi5jay1jb250ZW50IC50YWJsZSB7XG5cdC8qIEdpdmUgdGhlIHRhYmxlIHdpZGdldCBzb21lIGFpciBhbmQgY2VudGVyIGl0IGhvcml6b250YWxseSAqL1xuXHRtYXJnaW46IDFlbSBhdXRvO1xuXHRkaXNwbGF5OiB0YWJsZVxufVxuXG4uY2stY29udGVudCAudGFibGUgdGFibGUge1xuXHRcdC8qIFRoZSB0YWJsZSBjZWxscyBzaG91bGQgaGF2ZSBzbGlnaHQgYm9yZGVycyAqL1xuXHRcdGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG5cdFx0Ym9yZGVyLXNwYWNpbmc6IDA7XG5cblx0XHQvKiBUYWJsZSB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBzZXQgb24gdGhlIHBhcmVudCA8ZmlndXJlPi4gTWFrZSBzdXJlIHRoZSB0YWJsZSBpbnNpZGUgc3RyZXRjaGVzXG5cdFx0dG8gdGhlIGZ1bGwgZGltZW5zaW9ucyBvZiB0aGUgY29udGFpbmVyIChodHRwczovL2dpdGh1Yi5jb20vY2tlZGl0b3IvY2tlZGl0b3I1L2lzc3Vlcy82MTg2KS4gKi9cblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IDEwMCU7XG5cblx0XHQvKiBUaGUgb3V0ZXIgYm9yZGVyIG9mIHRoZSB0YWJsZSBzaG91bGQgYmUgc2xpZ2h0bHkgZGFya2VyIHRoYW4gdGhlIGlubmVyIGxpbmVzLlxuXHRcdEFsc28gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUtdGFibGUvaXNzdWVzLzUwLiAqL1xuXHRcdGJvcmRlcjogMXB4IGRvdWJsZSBoc2woMCwgMCUsIDcwJSlcblx0fVxuXG4uY2stY29udGVudCAudGFibGUgdGFibGUgdGQsXG5cdFx0LmNrLWNvbnRlbnQgLnRhYmxlIHRhYmxlIHRoIHtcblx0XHRcdG1pbi13aWR0aDogMmVtO1xuXHRcdFx0cGFkZGluZzogLjRlbTtcblxuXHRcdFx0LyogVGhlIGJvcmRlciBpcyBpbmhlcml0ZWQgZnJvbSAuY2stZWRpdG9yX19uZXN0ZWQtZWRpdGFibGUgc3R5bGVzLCBzbyB0aGVvcmV0aWNhbGx5IGl0J3Mgbm90IG5lY2Vzc2FyeSBoZXJlLlxuXHRcdFx0SG93ZXZlciwgdGhlIGJvcmRlciBpcyBhIGNvbnRlbnQgc3R5bGUsIHNvIGl0IHNob3VsZCB1c2UgLmNrLWNvbnRlbnQgKHNvIGl0IHdvcmtzIG91dHNpZGUgdGhlIGVkaXRvcikuXG5cdFx0XHRIZW5jZSwgdGhlIGR1cGxpY2F0aW9uLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjMxNCAqL1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgaHNsKDAsIDAlLCA3NSUpO1xuXHRcdH1cblxuLmNrLWNvbnRlbnQgLnRhYmxlIHRhYmxlIHRoIHtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0YmFja2dyb3VuZDogaHNsYSgwLCAwJSwgMCUsIDUlKTtcblx0XHR9XG5cbi8qIFRleHQgYWxpZ25tZW50IG9mIHRoZSB0YWJsZSBoZWFkZXIgc2hvdWxkIG1hdGNoIHRoZSBlZGl0b3Igc2V0dGluZ3MgYW5kIG92ZXJyaWRlIHRoZSBuYXRpdmUgYnJvd3NlciBzdHlsaW5nLFxud2hlbiBjb250ZW50IGlzIGF2YWlsYWJsZSBvdXRzaWRlIHRoZSBlZGlpdG9yLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS9pc3N1ZXMvNjYzOCAqL1xuXG4uY2stY29udGVudFtkaXI9XCJydGxcIl0gLnRhYmxlIHRoIHtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5jay1jb250ZW50W2Rpcj1cImx0clwiXSAudGFibGUgdGgge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xufVxuIiwiLyogRDpcXFByb2plY3RcXHNpcml1c1xcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS1ibG9jay1xdW90ZVxcdGhlbWVcXGJsb2NrcXVvdGUuY3NzICovXG5cbi8qKlxuICogQGxpY2Vuc2UgQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi5jay1jb250ZW50IGJsb2NrcXVvdGUge1xuXHQvKiBTZWUgIzEyICovXG5cdG92ZXJmbG93OiBoaWRkZW47XG5cblx0LyogaHR0cHM6Ly9naXRodWIuY29tL2NrZWRpdG9yL2NrZWRpdG9yNS1ibG9jay1xdW90ZS9pc3N1ZXMvMTUgKi9cblx0cGFkZGluZy1yaWdodDogMS41ZW07XG5cdHBhZGRpbmctbGVmdDogMS41ZW07XG5cblx0bWFyZ2luLWxlZnQ6IDA7XG5cdG1hcmdpbi1yaWdodDogMDtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHRib3JkZXItbGVmdDogc29saWQgNXB4IGhzbCgwLCAwJSwgODAlKTtcbn1cblxuLmNrLWNvbnRlbnRbZGlyPVwicnRsXCJdIGJsb2NrcXVvdGUge1xuXHRib3JkZXItbGVmdDogMDtcblx0Ym9yZGVyLXJpZ2h0OiBzb2xpZCA1cHggaHNsKDAsIDAlLCA4MCUpO1xufVxuIiwiLyogRDpcXFByb2plY3RcXHNpcml1c1xcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS11aVxcdGhlbWVcXGNvbXBvbmVudHNcXGNvbG9yZ3JpZFxcY29sb3JncmlkLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi5jay5jay1jb2xvci1ncmlkIHtcblx0ZGlzcGxheTogZ3JpZDtcbn1cblxuLyogRDpcXFByb2plY3RcXHNpcml1c1xcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS10aGVtZS1sYXJrXFx0aGVtZVxcY2tlZGl0b3I1LXVpXFxjb21wb25lbnRzXFxjb2xvcmdyaWRcXGNvbG9yZ3JpZC5jc3MgKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi8qKlxuICogSW1wbGVtZW50cyByb3VuZGVkIGNvcm5lciBpbnRlcmZhY2UgZm9yIC5jay1yb3VuZGVkLWNvcm5lcnMgY2xhc3MuXG4gKlxuICogQHNlZSAkY2stYm9yZGVyLXJhZGl1c1xuICovXG5cbjpyb290IHtcblx0LS1jay1jb2xvci1ncmlkLXRpbGUtc2l6ZTogMjRweDtcblxuXHQvKiBOb3QgdXNpbmcgZ2xvYmFsIGNvbG9ycyBoZXJlIGJlY2F1c2UgdGhlc2UgbWF5IGNoYW5nZSBidXQgc29tZSBjb2xvcnMgaW4gYSBwYWxsZXR0ZVxuXHQgKiByZXF1aXJlIHNwZWNpYWwgdHJlYXRtZW50LiBGb3IgaW5zdGFuY2UsIHRoaXMgZW5zdXJlcyBubyBtYXR0ZXIgd2hhdCB0aGUgVUkgdGV4dCBjb2xvciBpcyxcblx0ICogdGhlIGNoZWNrIGljb24gd2lsbCBsb29rIGdvb2Qgb24gdGhlIGJsYWNrIGNvbG9yIHRpbGUuICovXG5cdC0tY2stY29sb3ItY29sb3ItZ3JpZC1jaGVjay1pY29uOiBoc2woMCwgMCUsIDAlKTtcbn1cblxuLmNrLmNrLWNvbG9yLWdyaWQge1xuXHRncmlkLWdhcDogNXB4O1xuXHRwYWRkaW5nOiA4cHg7XG59XG5cbi5jay5jay1jb2xvci1ncmlkX190aWxlIHtcblx0d2lkdGg6IHZhcigtLWNrLWNvbG9yLWdyaWQtdGlsZS1zaXplKTtcblx0aGVpZ2h0OiB2YXIoLS1jay1jb2xvci1ncmlkLXRpbGUtc2l6ZSk7XG5cdG1pbi13aWR0aDogdmFyKC0tY2stY29sb3ItZ3JpZC10aWxlLXNpemUpO1xuXHRtaW4taGVpZ2h0OiB2YXIoLS1jay1jb2xvci1ncmlkLXRpbGUtc2l6ZSk7XG5cdHBhZGRpbmc6IDA7XG5cdHRyYW5zaXRpb246IC4ycyBlYXNlIGJveC1zaGFkb3c7XG5cdGJvcmRlcjogMFxufVxuXG4uY2suY2stY29sb3ItZ3JpZF9fdGlsZS5jay1kaXNhYmxlZCB7XG5cdFx0Y3Vyc29yOiB1bnNldDtcblx0XHR0cmFuc2l0aW9uOiB1bnNldDtcblx0fVxuXG4uY2suY2stY29sb3ItZ3JpZF9fdGlsZS5jay1jb2xvci10YWJsZV9fY29sb3ItdGlsZV9ib3JkZXJlZCB7XG5cdFx0Ym94LXNoYWRvdzogMCAwIDAgMXB4IHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0fVxuXG4uY2suY2stY29sb3ItZ3JpZF9fdGlsZSAuY2suY2staWNvbiB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0XHRjb2xvcjogdmFyKC0tY2stY29sb3ItY29sb3ItZ3JpZC1jaGVjay1pY29uKTtcblx0fVxuXG4uY2suY2stY29sb3ItZ3JpZF9fdGlsZS5jay1vbiB7XG5cdFx0Ym94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLWNrLWNvbG9yLWJhc2UtYmFja2dyb3VuZCksIDAgMCAwIDJweCB2YXIoLS1jay1jb2xvci1iYXNlLXRleHQpXG5cdH1cblxuLmNrLmNrLWNvbG9yLWdyaWRfX3RpbGUuY2stb24gLmNrLmNrLWljb24ge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuXG4uY2suY2stY29sb3ItZ3JpZF9fdGlsZS5jay1vbixcblx0LmNrLmNrLWNvbG9yLWdyaWRfX3RpbGU6Zm9jdXM6bm90KCAuY2stZGlzYWJsZWQgKSxcblx0LmNrLmNrLWNvbG9yLWdyaWRfX3RpbGU6aG92ZXI6bm90KCAuY2stZGlzYWJsZWQgKSB7XG5cdFx0LyogRGlzYWJsZSB0aGUgZGVmYXVsdCAuY2stYnV0dG9uJ3MgYm9yZGVyIHJpbmcuICovXG5cdFx0Ym9yZGVyOiAwO1xuXHR9XG5cbi5jay5jay1jb2xvci1ncmlkX190aWxlOmZvY3VzOm5vdCggLmNrLWRpc2FibGVkICksXG5cdC5jay5jay1jb2xvci1ncmlkX190aWxlOmhvdmVyOm5vdCggLmNrLWRpc2FibGVkICkge1xuXHRcdGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1jay1jb2xvci1iYXNlLWJhY2tncm91bmQpLCAwIDAgMCAycHggdmFyKC0tY2stY29sb3ItZm9jdXMtYm9yZGVyKTtcblx0fVxuXG4uY2suY2stY29sb3ItZ3JpZF9fbGFiZWwge1xuXHRwYWRkaW5nOiAwIHZhcigtLWNrLXNwYWNpbmctc3RhbmRhcmQpO1xufVxuIiwiLyogRDpcXFByb2plY3RcXHNpcml1c1xcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS1mb250XFx0aGVtZVxcZm9udGNvbG9yLmNzcyAqL1xuXG4vKlxuICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMjEsIENLU291cmNlIC0gRnJlZGVyaWNvIEtuYWJiZW4uIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBGb3IgbGljZW5zaW5nLCBzZWUgTElDRU5TRS5tZCBvciBodHRwczovL2NrZWRpdG9yLmNvbS9sZWdhbC9ja2VkaXRvci1vc3MtbGljZW5zZVxuICovXG5cbi5jayAuY2stYnV0dG9uLmNrLWNvbG9yLXRhYmxlX19yZW1vdmUtY29sb3Ige1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHR3aWR0aDogMTAwJTtcbn1cblxubGFiZWwuY2suY2stY29sb3ItZ3JpZF9fbGFiZWwge1xuXHRmb250LXdlaWdodDogdW5zZXQ7XG59XG5cbi8qIEQ6XFxQcm9qZWN0XFxzaXJpdXNcXG5vZGVfbW9kdWxlc1xcQGNrZWRpdG9yXFxja2VkaXRvcjUtdGhlbWUtbGFya1xcdGhlbWVcXGNrZWRpdG9yNS1mb250XFxmb250Y29sb3IuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLypcbiAqIENvcHlyaWdodCAoYykgMjAwMy0yMDIxLCBDS1NvdXJjZSAtIEZyZWRlcmljbyBLbmFiYmVuLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogRm9yIGxpY2Vuc2luZywgc2VlIExJQ0VOU0UubWQgb3IgaHR0cHM6Ly9ja2VkaXRvci5jb20vbGVnYWwvY2tlZGl0b3Itb3NzLWxpY2Vuc2VcbiAqL1xuXG4uY2sgLmNrLWJ1dHRvbi5jay1jb2xvci10YWJsZV9fcmVtb3ZlLWNvbG9yIHtcblx0cGFkZGluZzogY2FsYyh2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKSAvIDIgKSB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKTtcblx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcblx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDBcbn1cblxuLmNrIC5jay1idXR0b24uY2stY29sb3ItdGFibGVfX3JlbW92ZS1jb2xvcjpub3QoOmZvY3VzKSB7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNrLWNvbG9yLWJhc2UtYm9yZGVyKTtcblx0fVxuXG5bZGlyPVwibHRyXCJdIC5jayAuY2stYnV0dG9uLmNrLWNvbG9yLXRhYmxlX19yZW1vdmUtY29sb3IgLmNrLmNrLWljb24ge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiB2YXIoLS1jay1zcGFjaW5nLXN0YW5kYXJkKVxuXHR9XG5cbltkaXI9XCJydGxcIl0gLmNrIC5jay1idXR0b24uY2stY29sb3ItdGFibGVfX3JlbW92ZS1jb2xvciAuY2suY2staWNvbiB7XG5cdFx0XHRtYXJnaW4tbGVmdDogdmFyKC0tY2stc3BhY2luZy1zdGFuZGFyZClcblx0fVxuIiwiLyogRDpcXFByb2plY3RcXHNpcml1c1xcbm9kZV9tb2R1bGVzXFxAY2tlZGl0b3JcXGNrZWRpdG9yNS1mb250XFx0aGVtZVxcZm9udHNpemUuY3NzICovXG5cbi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAyMSwgQ0tTb3VyY2UgLSBGcmVkZXJpY28gS25hYmJlbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqIEZvciBsaWNlbnNpbmcsIHNlZSBMSUNFTlNFLm1kIG9yIGh0dHBzOi8vY2tlZGl0b3IuY29tL2xlZ2FsL2NrZWRpdG9yLW9zcy1saWNlbnNlXG4gKi9cblxuLyogVGhlIHZhbHVlcyBzaG91bGQgYmUgc3luY2hyb25pemVkIHdpdGggdGhlIFwiRk9OVF9TSVpFX1BSRVNFVF9VTklUU1wiIG9iamVjdCBpbiB0aGUgXCIvc3JjL2ZvbnRzaXplL3V0aWxzLmpzXCIgZmlsZS4gKi9cblxuLyogU3R5bGVzIHNob3VsZCBiZSBwcmVmaXhlZCB3aXRoIHRoZSBgLmNrLWNvbnRlbnRgIGNsYXNzLlxuU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9ja2VkaXRvci9ja2VkaXRvcjUvaXNzdWVzLzY2MzYgKi9cblxuLmNrLWNvbnRlbnQgLnRleHQtdGlueSB7XG5cdFx0Zm9udC1zaXplOiAuN2VtO1xuXHR9XG5cbi5jay1jb250ZW50IC50ZXh0LXNtYWxsIHtcblx0XHRmb250LXNpemU6IC44NWVtO1xuXHR9XG5cbi5jay1jb250ZW50IC50ZXh0LWJpZyB7XG5cdFx0Zm9udC1zaXplOiAxLjRlbTtcblx0fVxuXG4uY2stY29udGVudCAudGV4dC1odWdlIHtcblx0XHRmb250LXNpemU6IDEuOGVtO1xuXHR9XG4iLCIvKiEgUGlja3IgMS44LjIgTUlUIHwgaHR0cHM6Ly9naXRodWIuY29tL1NpbW9ud2VwL3BpY2tyICovXG4ucGlja3J7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6dmlzaWJsZTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX0ucGlja3IgKntib3gtc2l6aW5nOmJvcmRlci1ib3g7b3V0bGluZTpub25lO2JvcmRlcjpub25lOy13ZWJraXQtYXBwZWFyYW5jZTpub25lfS5waWNrciAucGNyLWJ1dHRvbntwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MmVtO3dpZHRoOjJlbTtwYWRkaW5nOjAuNWVtO2N1cnNvcjpwb2ludGVyO2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFwiU2Vnb2UgVUlcIixcIlJvYm90b1wiLFwiSGVsdmV0aWNhIE5ldWVcIixBcmlhbCxzYW5zLXNlcmlmO2JvcmRlci1yYWRpdXM6LjE1ZW07YmFja2dyb3VuZDp1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUwIDUwXCIgc3Ryb2tlPVwiJTIzNDI0NDVBXCIgc3Ryb2tlLXdpZHRoPVwiNXB4XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjxwYXRoIGQ9XCJNNDUsNDVMNSw1XCI+PC9wYXRoPjxwYXRoIGQ9XCJNNDUsNUw1LDQ1XCI+PC9wYXRoPjwvc3ZnPicpIG5vLXJlcGVhdCBjZW50ZXI7YmFja2dyb3VuZC1zaXplOjA7dHJhbnNpdGlvbjphbGwgMC4zc30ucGlja3IgLnBjci1idXR0b246OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OicnO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQ6dXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCwgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyIDJcIj48cGF0aCBmaWxsPVwid2hpdGVcIiBkPVwiTTEsMEgyVjFIMVYwWk0wLDFIMVYySDBWMVpcIi8+PHBhdGggZmlsbD1cImdyYXlcIiBkPVwiTTAsMEgxVjFIMFYwWk0xLDFIMlYySDFWMVpcIi8+PC9zdmc+Jyk7YmFja2dyb3VuZC1zaXplOi41ZW07Ym9yZGVyLXJhZGl1czouMTVlbTt6LWluZGV4Oi0xfS5waWNrciAucGNyLWJ1dHRvbjo6YmVmb3Jle3otaW5kZXg6aW5pdGlhbH0ucGlja3IgLnBjci1idXR0b246OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6Jyc7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDAuM3M7YmFja2dyb3VuZDp2YXIoLS1wY3ItY29sb3IpO2JvcmRlci1yYWRpdXM6LjE1ZW19LnBpY2tyIC5wY3ItYnV0dG9uLmNsZWFye2JhY2tncm91bmQtc2l6ZTo3MCV9LnBpY2tyIC5wY3ItYnV0dG9uLmNsZWFyOjpiZWZvcmV7b3BhY2l0eTowfS5waWNrciAucGNyLWJ1dHRvbi5jbGVhcjpmb2N1c3tib3gtc2hhZG93OjAgMCAwIDFweCByZ2JhKDI1NSwyNTUsMjU1LDAuODUpLDAgMCAwIDNweCB2YXIoLS1wY3ItY29sb3IpfS5waWNrciAucGNyLWJ1dHRvbi5kaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9LnBpY2tyICosLnBjci1hcHAgKntib3gtc2l6aW5nOmJvcmRlci1ib3g7b3V0bGluZTpub25lO2JvcmRlcjpub25lOy13ZWJraXQtYXBwZWFyYW5jZTpub25lfS5waWNrciBpbnB1dDpmb2N1cywucGlja3IgaW5wdXQucGNyLWFjdGl2ZSwucGlja3IgYnV0dG9uOmZvY3VzLC5waWNrciBidXR0b24ucGNyLWFjdGl2ZSwucGNyLWFwcCBpbnB1dDpmb2N1cywucGNyLWFwcCBpbnB1dC5wY3ItYWN0aXZlLC5wY3ItYXBwIGJ1dHRvbjpmb2N1cywucGNyLWFwcCBidXR0b24ucGNyLWFjdGl2ZXtib3gtc2hhZG93OjAgMCAwIDFweCByZ2JhKDI1NSwyNTUsMjU1LDAuODUpLDAgMCAwIDNweCB2YXIoLS1wY3ItY29sb3IpfS5waWNrciAucGNyLXBhbGV0dGUsLnBpY2tyIC5wY3Itc2xpZGVyLC5wY3ItYXBwIC5wY3ItcGFsZXR0ZSwucGNyLWFwcCAucGNyLXNsaWRlcnt0cmFuc2l0aW9uOmJveC1zaGFkb3cgMC4zc30ucGlja3IgLnBjci1wYWxldHRlOmZvY3VzLC5waWNrciAucGNyLXNsaWRlcjpmb2N1cywucGNyLWFwcCAucGNyLXBhbGV0dGU6Zm9jdXMsLnBjci1hcHAgLnBjci1zbGlkZXI6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAxcHggcmdiYSgyNTUsMjU1LDI1NSwwLjg1KSwwIDAgMCAzcHggcmdiYSgwLDAsMCwwLjI1KX0ucGNyLWFwcHtwb3NpdGlvbjpmaXhlZDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3otaW5kZXg6MTAwMDA7Ym9yZGVyLXJhZGl1czowLjFlbTtiYWNrZ3JvdW5kOiNmZmY7b3BhY2l0eTowO3Zpc2liaWxpdHk6aGlkZGVuO3RyYW5zaXRpb246b3BhY2l0eSAwLjNzLCB2aXNpYmlsaXR5IDBzIDAuM3M7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsXCJTZWdvZSBVSVwiLFwiUm9ib3RvXCIsXCJIZWx2ZXRpY2EgTmV1ZVwiLEFyaWFsLHNhbnMtc2VyaWY7Ym94LXNoYWRvdzowIDAuMTVlbSAxLjVlbSAwIHJnYmEoMCwwLDAsMC4xKSwwIDAgMWVtIDAgcmdiYSgwLDAsMCwwLjAzKTtsZWZ0OjA7dG9wOjB9LnBjci1hcHAudmlzaWJsZXt0cmFuc2l0aW9uOm9wYWNpdHkgMC4zczt2aXNpYmlsaXR5OnZpc2libGU7b3BhY2l0eToxfS5wY3ItYXBwIC5wY3Itc3dhdGNoZXN7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO21hcmdpbi10b3A6MC43NWVtfS5wY3ItYXBwIC5wY3Itc3dhdGNoZXMucGNyLWxhc3R7bWFyZ2luOjB9QHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKXsucGNyLWFwcCAucGNyLXN3YXRjaGVze2Rpc3BsYXk6Z3JpZDthbGlnbi1pdGVtczpjZW50ZXI7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdChhdXRvLWZpdCwgMS43NWVtKX19LnBjci1hcHAgLnBjci1zd2F0Y2hlcz5idXR0b257Zm9udC1zaXplOjFlbTtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDpjYWxjKDEuNzVlbSAtIDVweCk7aGVpZ2h0OmNhbGMoMS43NWVtIC0gNXB4KTtib3JkZXItcmFkaXVzOjAuMTVlbTtjdXJzb3I6cG9pbnRlcjttYXJnaW46Mi41cHg7ZmxleC1zaHJpbms6MDtqdXN0aWZ5LXNlbGY6Y2VudGVyO3RyYW5zaXRpb246YWxsIDAuMTVzO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3otaW5kZXg6MX0ucGNyLWFwcCAucGNyLXN3YXRjaGVzPmJ1dHRvbjo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6Jyc7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDp1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIgMlwiPjxwYXRoIGZpbGw9XCJ3aGl0ZVwiIGQ9XCJNMSwwSDJWMUgxVjBaTTAsMUgxVjJIMFYxWlwiLz48cGF0aCBmaWxsPVwiZ3JheVwiIGQ9XCJNMCwwSDFWMUgwVjBaTTEsMUgyVjJIMVYxWlwiLz48L3N2Zz4nKTtiYWNrZ3JvdW5kLXNpemU6NnB4O2JvcmRlci1yYWRpdXM6LjE1ZW07ei1pbmRleDotMX0ucGNyLWFwcCAucGNyLXN3YXRjaGVzPmJ1dHRvbjo6YWZ0ZXJ7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOnZhcigtLXBjci1jb2xvcik7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMDUpO2JvcmRlci1yYWRpdXM6MC4xNWVtO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ucGNyLWFwcCAucGNyLXN3YXRjaGVzPmJ1dHRvbjpob3ZlcntmaWx0ZXI6YnJpZ2h0bmVzcygxLjA1KX0ucGNyLWFwcCAucGNyLXN3YXRjaGVzPmJ1dHRvbjpub3QoLnBjci1hY3RpdmUpe2JveC1zaGFkb3c6bm9uZX0ucGNyLWFwcCAucGNyLWludGVyYWN0aW9ue2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luOjAgLTAuMmVtIDAgLTAuMmVtfS5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24+KnttYXJnaW46MCAwLjJlbX0ucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIGlucHV0e2xldHRlci1zcGFjaW5nOjAuMDdlbTtmb250LXNpemU6MC43NWVtO3RleHQtYWxpZ246Y2VudGVyO2N1cnNvcjpwb2ludGVyO2NvbG9yOiM3NTc5N2U7YmFja2dyb3VuZDojZjFmM2Y0O2JvcmRlci1yYWRpdXM6LjE1ZW07dHJhbnNpdGlvbjphbGwgMC4xNXM7cGFkZGluZzowLjQ1ZW0gMC41ZW07bWFyZ2luLXRvcDowLjc1ZW19LnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiBpbnB1dDpob3ZlcntmaWx0ZXI6YnJpZ2h0bmVzcygwLjk3NSl9LnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiBpbnB1dDpmb2N1c3tib3gtc2hhZG93OjAgMCAwIDFweCByZ2JhKDI1NSwyNTUsMjU1LDAuODUpLDAgMCAwIDNweCByZ2JhKDY2LDEzMywyNDQsMC43NSl9LnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXJlc3VsdHtjb2xvcjojNzU3OTdlO3RleHQtYWxpZ246bGVmdDtmbGV4OjEgMSA4ZW07bWluLXdpZHRoOjhlbTt0cmFuc2l0aW9uOmFsbCAwLjJzO2JvcmRlci1yYWRpdXM6LjE1ZW07YmFja2dyb3VuZDojZjFmM2Y0O2N1cnNvcjp0ZXh0fS5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1yZXN1bHQ6Oi1tb3otc2VsZWN0aW9ue2JhY2tncm91bmQ6IzQyODVmNDtjb2xvcjojZmZmfS5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1yZXN1bHQ6OnNlbGVjdGlvbntiYWNrZ3JvdW5kOiM0Mjg1ZjQ7Y29sb3I6I2ZmZn0ucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItdHlwZS5hY3RpdmV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiM0Mjg1ZjR9LnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXNhdmUsLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNhbmNlbCwucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2xlYXJ7Y29sb3I6I2ZmZjt3aWR0aDphdXRvfS5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1zYXZlLC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jYW5jZWwsLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNsZWFye2NvbG9yOiNmZmZ9LnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLXNhdmU6aG92ZXIsLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNhbmNlbDpob3ZlciwucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2xlYXI6aG92ZXJ7ZmlsdGVyOmJyaWdodG5lc3MoMC45MjUpfS5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1zYXZle2JhY2tncm91bmQ6IzQyODVmNH0ucGNyLWFwcCAucGNyLWludGVyYWN0aW9uIC5wY3ItY2xlYXIsLnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNhbmNlbHtiYWNrZ3JvdW5kOiNmNDQyNTB9LnBjci1hcHAgLnBjci1pbnRlcmFjdGlvbiAucGNyLWNsZWFyOmZvY3VzLC5wY3ItYXBwIC5wY3ItaW50ZXJhY3Rpb24gLnBjci1jYW5jZWw6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAxcHggcmdiYSgyNTUsMjU1LDI1NSwwLjg1KSwwIDAgMCAzcHggcmdiYSgyNDQsNjYsODAsMC43NSl9LnBjci1hcHAgLnBjci1zZWxlY3Rpb24gLnBjci1waWNrZXJ7cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjE4cHg7d2lkdGg6MThweDtib3JkZXI6MnB4IHNvbGlkICNmZmY7Ym9yZGVyLXJhZGl1czoxMDAlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0ucGNyLWFwcCAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXBhbGV0dGUsLnBjci1hcHAgLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyLC5wY3ItYXBwIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3Itb3BhY2l0eXtwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtjdXJzb3I6Z3JhYjtjdXJzb3I6LXdlYmtpdC1ncmFifS5wY3ItYXBwIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcGFsZXR0ZTphY3RpdmUsLnBjci1hcHAgLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyOmFjdGl2ZSwucGNyLWFwcCAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLW9wYWNpdHk6YWN0aXZle2N1cnNvcjpncmFiYmluZztjdXJzb3I6LXdlYmtpdC1ncmFiYmluZ30ucGNyLWFwcFtkYXRhLXRoZW1lPSdjbGFzc2ljJ117d2lkdGg6MjguNWVtO21heC13aWR0aDo5NXZ3O3BhZGRpbmc6MC44ZW19LnBjci1hcHBbZGF0YS10aGVtZT0nY2xhc3NpYyddIC5wY3Itc2VsZWN0aW9ue2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtmbGV4LWdyb3c6MX0ucGNyLWFwcFtkYXRhLXRoZW1lPSdjbGFzc2ljJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wcmV2aWV3e3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTt3aWR0aDoyZW07ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjttYXJnaW4tcmlnaHQ6MC43NWVtfS5wY3ItYXBwW2RhdGEtdGhlbWU9J2NsYXNzaWMnXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXByZXZpZXc6OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OicnO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQ6dXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCwgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyIDJcIj48cGF0aCBmaWxsPVwid2hpdGVcIiBkPVwiTTEsMEgyVjFIMVYwWk0wLDFIMVYySDBWMVpcIi8+PHBhdGggZmlsbD1cImdyYXlcIiBkPVwiTTAsMEgxVjFIMFYwWk0xLDFIMlYySDFWMVpcIi8+PC9zdmc+Jyk7YmFja2dyb3VuZC1zaXplOi41ZW07Ym9yZGVyLXJhZGl1czouMTVlbTt6LWluZGV4Oi0xfS5wY3ItYXBwW2RhdGEtdGhlbWU9J2NsYXNzaWMnXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXByZXZpZXcgLnBjci1sYXN0LWNvbG9ye2N1cnNvcjpwb2ludGVyO2JvcmRlci1yYWRpdXM6MC4xNWVtIDAuMTVlbSAwIDA7ei1pbmRleDoyfS5wY3ItYXBwW2RhdGEtdGhlbWU9J2NsYXNzaWMnXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLXByZXZpZXcgLnBjci1jdXJyZW50LWNvbG9ye2JvcmRlci1yYWRpdXM6MCAwIDAuMTVlbSAwLjE1ZW19LnBjci1hcHBbZGF0YS10aGVtZT0nY2xhc3NpYyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcHJldmlldyAucGNyLWxhc3QtY29sb3IsLnBjci1hcHBbZGF0YS10aGVtZT0nY2xhc3NpYyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcHJldmlldyAucGNyLWN1cnJlbnQtY29sb3J7YmFja2dyb3VuZDp2YXIoLS1wY3ItY29sb3IpO3dpZHRoOjEwMCU7aGVpZ2h0OjUwJX0ucGNyLWFwcFtkYXRhLXRoZW1lPSdjbGFzc2ljJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wYWxldHRle3dpZHRoOjEwMCU7aGVpZ2h0OjhlbTt6LWluZGV4OjF9LnBjci1hcHBbZGF0YS10aGVtZT0nY2xhc3NpYyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItcGFsZXR0ZSAucGNyLXBhbGV0dGV7ZmxleC1ncm93OjE7Ym9yZGVyLXJhZGl1czouMTVlbX0ucGNyLWFwcFtkYXRhLXRoZW1lPSdjbGFzc2ljJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1wYWxldHRlIC5wY3ItcGFsZXR0ZTo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6Jyc7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDp1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIgMlwiPjxwYXRoIGZpbGw9XCJ3aGl0ZVwiIGQ9XCJNMSwwSDJWMUgxVjBaTTAsMUgxVjJIMFYxWlwiLz48cGF0aCBmaWxsPVwiZ3JheVwiIGQ9XCJNMCwwSDFWMUgwVjBaTTEsMUgyVjJIMVYxWlwiLz48L3N2Zz4nKTtiYWNrZ3JvdW5kLXNpemU6LjVlbTtib3JkZXItcmFkaXVzOi4xNWVtO3otaW5kZXg6LTF9LnBjci1hcHBbZGF0YS10aGVtZT0nY2xhc3NpYyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItY2hvb3NlciwucGNyLWFwcFtkYXRhLXRoZW1lPSdjbGFzc2ljJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1vcGFjaXR5e21hcmdpbi1sZWZ0OjAuNzVlbX0ucGNyLWFwcFtkYXRhLXRoZW1lPSdjbGFzc2ljJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1jaG9vc2VyIC5wY3ItcGlja2VyLC5wY3ItYXBwW2RhdGEtdGhlbWU9J2NsYXNzaWMnXSAucGNyLXNlbGVjdGlvbiAucGNyLWNvbG9yLW9wYWNpdHkgLnBjci1waWNrZXJ7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSl9LnBjci1hcHBbZGF0YS10aGVtZT0nY2xhc3NpYyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItY2hvb3NlciAucGNyLXNsaWRlciwucGNyLWFwcFtkYXRhLXRoZW1lPSdjbGFzc2ljJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1vcGFjaXR5IC5wY3Itc2xpZGVye3dpZHRoOjhweDtmbGV4LWdyb3c6MTtib3JkZXItcmFkaXVzOjUwZW19LnBjci1hcHBbZGF0YS10aGVtZT0nY2xhc3NpYyddIC5wY3Itc2VsZWN0aW9uIC5wY3ItY29sb3ItY2hvb3NlciAucGNyLXNsaWRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJlZCwgI2ZmMCwgbGltZSwgY3lhbiwgYmx1ZSwgI2YwZiwgcmVkKX0ucGNyLWFwcFtkYXRhLXRoZW1lPSdjbGFzc2ljJ10gLnBjci1zZWxlY3Rpb24gLnBjci1jb2xvci1vcGFjaXR5IC5wY3Itc2xpZGVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdHJhbnNwYXJlbnQsIGJsYWNrKSx1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIgMlwiPjxwYXRoIGZpbGw9XCJ3aGl0ZVwiIGQ9XCJNMSwwSDJWMUgxVjBaTTAsMUgxVjJIMFYxWlwiLz48cGF0aCBmaWxsPVwiZ3JheVwiIGQ9XCJNMCwwSDFWMUgwVjBaTTEsMUgyVjJIMVYxWlwiLz48L3N2Zz4nKTtiYWNrZ3JvdW5kLXNpemU6MTAwJSwgNTAlfVxuXG4iXSwic291cmNlUm9vdCI6IiJ9*/