@charset "UTF-8";

*,
*:before,
*:after,
*.tooltip-right:after,
*.tooltip-bottom:after,
*.tooltip-left:after {
  -webkit-box-sizing: inherit;
  -moz-box-sizing: inherit;
  box-sizing: inherit;
  -webkit-touch-callout: none;
  -ms-touch-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

html {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
  font-weight: 300;
  line-height: 1.5;
  height: 100%;
}

body {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  height: 100%;
  margin: 0;
  padding: 0;
}

body.darkroom:after {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #555;
  background-color: rgba(0, 0, 0, 0.7);
}

body .darkroom-banner {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 60px;
  min-height: 60px;
  height: 60px;
  background-color: transparent;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1;
}

body .darkroom-banner > .banner {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 60px;
  min-height: 60px;
  height: 60px;
  max-width: 280px;
  min-width: 280px;
  width: 280px;
  background-color: #fefefe;
  border-bottom-left-radius: 6px;
  border-bottom-right-radius: 6px;
  font-size: 20px;
}

button,
input,
select,
textarea {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 13px;
}

input {
  line-height: normal;
}

input[type='text'] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
  border-radius: 2px;
  border: 1px solid #808080;
  outline: 0;
  padding: 3px;
}

input[type='password'] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  -webkit-border-radius: 2px;
  -moz-border-radius: 2px;
  border-radius: 2px;
  border: 1px solid #808080;
  outline: 0;
  padding: 3px;
}

input.required {
  color: #ff0000;
}

button {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  -webkit-border-radius: 6px;
  -moz-border-radius: 6px;
  border-radius: 6px;
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  background-color: #ffffff;
  border: 2px solid #9768EB;
  color: #9768EB;
  font-weight: 500;
  letter-spacing: 1px;
  min-width: 110px;
  outline: 0;
  padding: 0 10px;
  text-transform: uppercase;
}

button.short {
  max-height: 35px;
  min-height: 35px;
  height: 35px;
}

button.small {
  min-width: 80px;
}

button.medium {
  max-width: 150px;
  min-width: 150px;
  width: 150px;
}

button.primary,
button.blue {
  background-color: #9768EB;
  color: #ffffff;
}

button.disabled {
  color: #cdcdcd;
  border-color: #cdcdcd;
  cursor: default;
}

button:disabled {
  color: #cdcdcd;
  border-color: #cdcdcd;
  cursor: default;
}

button.resume {
  background-color: #D1404B;
  color: #ffffff;
  font-weight: bold;
}

button:focus {
  outline: 0;
}

button::-moz-focus-inner {
  border: 0;
}

button + button {
  margin-left: 8px;
}

@media (max-width: 768px) {
  input,
  select,
  textarea {
    font-size: 16px;
  }
}

.input-checkbox {
  color: #9768EB;
  font-size: 20px;
}

.input-checkbox.disabled {
  color: #cdcdcd;
}

.footer-content {
  /*
  @include flex(1 0 auto);
  @include flex-row-center();
  @include flex-justify-content(center);
  */
  padding: 10px 0;
  background-color: #E1E1E6;
  border-top: none;
  color: #32254F;
}

.footer-content a {
  text-decoration: none;
  color: #9768EB;
}

[ng\:cloak],
[ng-cloak],
.ng-cloak {
  display: none !important;
}

.header-content {
  -webkit-justify-content: initial;
  justify-content: initial;
  max-height: 90px;
  min-height: 90px;
  height: 90px;
}

.header-content .logo {
  max-height: 90px;
  min-height: 90px;
  height: 90px;
  max-width: 140px;
  min-width: 140px;
  width: 140px;
}

.header-content .white-field {
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.header-content .white-field i.icon-shop {
  display: block;
  float: left;
  padding: 0px;
  margin-right: -5px;
  margin-left: 5px;
  font-size: 20px;
}

.header-content .white-field > div {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  max-height: 60px;
  min-height: 60px;
  height: 60px;
  margin: 0px 30px;
}

.header-content .white-field > div > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  padding: 10px;
  font-size: 16px;
  cursor: pointer;
}

.header-content .white-field > div > div i {
  font-size: 28px;
  display: block;
  float: left;
  margin: -1px 8px 0px 0px;
}

.header-content .white-field > div > div:hover {
  color: #11264b;
}

.header-content .white-field > div > div.current-athlete {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  border: none;
  font-size: 18px;
  font-weight: 600;
  min-width: auto;
  margin-right: auto;
}

.header-content .white-field > div > div.current-athlete span {
  cursor: pointer;
}

.header-content .white-field > div > div.current-athlete span:first-child {
  font-weight: normal;
}

.header-content .white-field > div > div.current-athlete span + span {
  margin-left: 10px;
}

.header-content .white-field > div > div.current-athlete span + span:hover {
  text-decoration: underline;
}

.header-content .white-field > div > div + div {
  margin-left: 15px;
}

.header-content .white-field > button:first-child {
  margin: 0 7px 0 25px;
}

.header-content .white-field > button:last-child {
  margin: 0 25px 0 7px;
}

.header-content .white-field > button > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
}

.header-content .white-field > button > div i.fa {
  font-size: 22px;
  margin-right: 4px;
}

.menu-content {
  max-height: 65px;
  min-height: 65px;
  height: 65px;
}

@media (max-width: 768px) {
  .menu-content.resp-menu {
    background: none;
    position: absolute;
    pointer-events: none;
  }
}

.body-content {
  margin: 0;
  padding: 0;
}

.red-background {
  background-color: #c42a3b;
}

.yellow-background {
  background-color: #dfc03f;
}

.green-background {
  background-color: #20b769;
}

.blue-text {
  color: #9768EB;
}

.red-text {
  color: #c42a3b;
}

.grey-text {
  color: #808080;
}

.light-grey-text {
  color: #a7a7a7;
}

.yellow-text {
  color: #dfc03f;
}

.green-text {
  color: #20b769;
}

.whitebg {
  background-color: #ffffff;
}

.greybg {
  background-color: #efefef;
}

.drkgreybg {
  background-color: #2e2e2e;
}

.bluebg {
  background-color: #9768EB;
}

.main-view {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  min-height: 100vh;
}

.view-flex {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.view-static {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
}

.view-layout {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.view-stack {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.view-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  max-width: 1024px;
  min-width: 1024px;
  width: 1024px;
}

.view-container.centered {
  -webkit-align-items: center;
  align-items: center;
}

.view-container.divided {
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

.view-container.end {
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}

.view-container.wrap {
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}

.view-container.middle {
  -webkit-align-self: center;
  align-self: center;
}

.view-container.column {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.view-container.column.center {
  -webkit-justify-content: center;
  justify-content: center;
}

.column-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.column-container.full {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
}

.column-container.top {
  -webkit-align-items: flex-start;
  align-items: flex-start;
}

.column-container.bottom {
  -webkit-align-items: flex-end;
  align-items: flex-end;
}

.column-container.center {
  -webkit-align-items: center;
  align-items: center;
}

.column-container.middle {
  -webkit-justify-content: center;
  justify-content: center;
}

.column-container.divided {
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

.column-container.spaced {
  -webkit-justify-content: space-around;
  justify-content: space-around;
}

.column-container.start {
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
}

.column-container.end {
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}

.column-container.wrap {
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}

.row-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.row-container.full {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
}

.row-container.top {
  -webkit-align-items: flex-start;
  align-items: flex-start;
}

.row-container.bottom {
  -webkit-align-items: flex-end;
  align-items: flex-end;
}

.row-container.center {
  -webkit-align-items: center;
  align-items: center;
}

.row-container.middle {
  -webkit-justify-content: center;
  justify-content: center;
}

.row-container.divided {
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

.row-container.spaced {
  -webkit-justify-content: space-around;
  justify-content: space-around;
}

.row-container.start {
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
}

.row-container.end {
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}

.row-container.wrap {
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}

.hidden {
  display: none;
}

input[type=range] {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -webkit-appearance: none;
  -webkit-tap-highlight-color: transparent;
  -moz-appearance: none;
  margin: 0;
  width: 100%;
  padding: 0;
  border-radius: 8px;
  background: transparent;
  background-image: -webkit-gradient(linear, left top, right top, color-stop(0, #9768EB), color-stop(0, #e8e8e8));
  cursor: pointer;
}

input[type=range]:focus {
  outline: none;
}

input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none;
  border: 1px solid #b4b4b4;
  height: 40px;
  width: 40px;
  border-radius: 50%;
  background: #e8e8e8;
  cursor: pointer;
  margin-top: -15px;
}

input[type=range]::-webkit-slider-runnable-track {
  width: 100%;
  height: 10px;
  cursor: pointer;
  border-radius: 8px;
  background: transparent;
}

input[type=range]::-moz-range-thumb {
  -moz-appearance: none;
  border: 1px solid #b4b4b4;
  height: 40px;
  width: 40px;
  border-radius: 50%;
  background: #e8e8e8;
  cursor: pointer;
}

input[type=range]::-moz-range-track {
  width: 100%;
  height: 10px;
  cursor: pointer;
  border-radius: 8px;
  background: transparent;
}

input[type=range]::-moz-focus-outer {
  border: 0;
  outline: 0;
}

input[type=range]::-ms-track {
  width: 100%;
  height: 10px;
  cursor: pointer;
  background: transparent;
  border-color: transparent;
  border-width: 16px 0;
  color: transparent;
}

input[type=range]::-ms-thumb {
  border: 1px solid #b4b4b4;
  height: 40px;
  width: 40px;
  border-radius: 50%;
  background: #e8e8e8;
  cursor: pointer;
}

input[type=range]::-ms-tooltip {
  display: none;
}

input[type=range]::-ms-fill-lower {
  background: #9768EB;
  border: 0.2px solid #9768EB;
  border-radius: 8px;
}

input[type=range]::-ms-fill-upper {
  background: #e8e8e8;
  border: 0.2px solid #e8e8e8;
  border-radius: 8px;
}

input[type=range]:focus::-ms-fill-lower {
  background: #9768EB;
}

input[type=range]:focus::-ms-fill-upper {
  background: #e8e8e8;
}

.program-exercise.daily-exercise {
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
  padding: 20px;
  gap: 10px;
}

.program-exercise.daily-exercise .daily-exercise-actions {
  min-width: 54px !important;
  max-width: 54px !important;
  width: 54px !important;
}

.program-exercise.daily-exercise .info .attributes {
  gap: 10px;
}

.program-exercise.daily-exercise .info .attributes > div {
  margin: 0 !important;
}

.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1000;
  overflow: hidden;
  background-color: #c4c4c4;
  background-color: rgba(196, 196, 196, 0.7);
}

.modal-overlay.ng-enter,
.modal-overlay.ng-leave {
  -webkit-transition: .2s linear all;
  -moz-transition: .2s linear all;
  -o-transition: .2s linear all;
  transition: .2s linear all;
}

.modal-overlay.ng-enter,
.modal-overlay.ng-leave.ng-leave-active {
  opacity: 0;
}

.modal-overlay.ng-enter.ng-enter-active,
.modal-overlay.ng-leave {
  opacity: 1;
}

.modal-view {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1001;
  overflow: hidden;
  pointer-events: none;
}

.modal-view .modal {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: center;
  justify-content: center;
  min-height: 100px;
  min-width: 200px;
  pointer-events: auto;
  -webkit-transition: .2s linear all;
  -moz-transition: .2s linear all;
  -o-transition: .2s linear all;
  transition: .2s linear all;
}

.modal-view .modal.ng-leave {
  transform: translateY(0%);
}

.modal-view .modal.ng-leave.ng-leave-active {
  transform: translateY(-200%);
}

.modal-view.ng-enter .modal {
  transform: translateY(-200%);
}

.modal-view.ng-enter.ng-enter-active .modal {
  transform: translateY(0);
}

.modal-animate-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: center;
  justify-content: center;
  max-width: 770px;
  min-width: 770px;
  width: 770px;
  overflow: hidden;
}

.modal-animate-container > .modal-container {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  -webkit-transition: .125s linear all;
  -moz-transition: .125s linear all;
  -o-transition: .125s linear all;
  transition: .125s linear all;
}

.modal-animate-container > .modal-container.ng-leave.slide-left {
  transform: translateX(0px);
}

.modal-animate-container > .modal-container.ng-leave.slide-right {
  transform: translateX(0px);
}

.modal-animate-container > .modal-container.ng-leave.ng-leave-active.slide-left,
.modal-animate-container > .modal-container.ng-hide-add.slide-left {
  transform: translateX(-100%);
}

.modal-animate-container > .modal-container.ng-leave.ng-leave-active.slide-right,
.modal-animate-container > .modal-container.ng-hide-add.slide-right {
  transform: translateX(100%);
}

.modal-animate-container > .modal-container.ng-enter.slide-left,
.modal-animate-container > .modal-container.ng-hide-remove.slide-left {
  transform: translateX(-100%);
}

.modal-animate-container > .modal-container.ng-enter.slide-right,
.modal-animate-container > .modal-container.ng-hide-remove.slide-right {
  transform: translateX(100%);
}

.modal-animate-container > .modal-container.ng-enter.ng-enter-active.slide-left {
  transform: translateX(0px);
}

.modal-animate-container > .modal-container.ng-enter.ng-enter-active.slide-right {
  transform: translateX(0px);
}

.modal-container {
  background-color: #ffffff;
  border-radius: 8px;
  box-shadow: 8px 8px 20px 0px #4a4a4a;
}

.modal-container.large {
  width: 970px;
}

.modal-container header {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  position: relative;
  border-top-left-radius: 8px;
  border-top-right-radius: 6px;
}

.modal-container header button.link {
  position: absolute;
  top: 0;
  right: 0;
  border: none;
  min-height: 30px;
  line-height: 20px;
  font-size: 12px;
}

.modal-container header button.link i.left {
  margin-right: 5px;
}

.modal-container header.alert {
  background-color: #c42a3b;
  color: #ffffff;
}

.modal-container header.confirm {
  background-color: #9768EB;
  color: #ffffff;
}

.modal-container header label {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  font-size: 16px;
  margin-left: 10px;
  text-align: center;
}

.modal-container header label i.fa {
  margin: 0 4px;
}

.modal-container header label span {
  font-weight: 500;
}

.modal-container header .close {
  background-color: transparent;
  border: none;
  color: #000;
  font-size: 16px;
  font-weight: 700;
  margin: 0 8px;
  min-width: 0;
  opacity: .2;
  text-shadow: 0 1px 0 #ccc;
  text-transform: none;
}

.modal-container header .close:hover {
  cursor: pointer;
  opacity: 1;
}

.modal-container section {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  margin: 0 10px;
  min-height: 80px;
  min-width: 300px;
}

.modal-container footer {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}

.modal-container footer button:last-of-type {
  margin-right: 8px;
}

.loading-view {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  position: fixed;
  z-index: 99;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #f9f9f9;
  background-color: rgba(125, 125, 125, 0.5);
}

.loading-view .loading-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  min-height: 200px;
  min-width: 200px;
}

.loading-view .loading-container .fa-spinner {
  color: #fff;
  font-size: 60px;
}

.athlete-selection {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  background-color: #ffffff;
  border-top: 1px solid #e0e0e1;
  border-bottom: 1px solid #e0e0e1;
  height: 44px;
  min-height: 44px;
  max-height: 44px;
}

.athlete-selection > div,
.athlete-selection > .athlete-selection__tab {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  border-right: 1px solid #e0e0e1;
  box-sizing: border-box;
  color: #120d1c;
  cursor: pointer;
  font-size: 14px;
  min-width: auto;
  padding: 0 16px;
  position: relative;
}

.athlete-selection > div.active,
.athlete-selection > .athlete-selection__tab.active {
  background-color: #f2edfc;
  color: #120d1c;
}

.athlete-selection > div.active:after,
.athlete-selection > .athlete-selection__tab.active:after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  background-color: #9768eb;
}

.athlete-selection > div.active .close,
.athlete-selection > .athlete-selection__tab.active .close {
  cursor: pointer;
}

.athlete-selection > div:not(.active):hover,
.athlete-selection > .athlete-selection__tab:not(.active):hover {
  background-color: #f7f7f8;
  color: #120d1c;
  cursor: pointer;
}

.athlete-selection > div .name,
.athlete-selection > .athlete-selection__tab .name {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  font: 600 14px/20px "Nudista", sans-serif;
  color: #120d1c;
  letter-spacing: 0;
  margin: 0 8px 0 0;
}

.athlete-selection > div .close,
.athlete-selection > .athlete-selection__tab .close {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: inherit;
  font-weight: 400;
  min-width: auto;
  max-width: none;
  padding: 0;
  text-align: center;
}

.athlete-selection > div .close img,
.athlete-selection > .athlete-selection__tab .close img {
  display: block;
  width: 14px;
  height: 14px;
  object-fit: contain;
}

.athlete-selection > div.team-nav {
  -webkit-justify-content: center;
  justify-content: center;
  background-color: #ffffff;
  color: #6c6c7c;
  min-width: 44px;
  padding: 0;
  border: 0;
  border-right: 1px solid #e0e0e1;
}

.athlete-selection > div.team-nav:hover {
  cursor: pointer;
  color: #6c6c7c;
  background-color: #f7f7f8;
}

.athlete-selection > div.team-nav:after {
  display: none;
}

.athlete-selection > div.team-nav .team-nav__icon {
  display: block;
  width: 18px;
  height: 18px;
  object-fit: contain;
}

.athlete-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  margin-bottom: 35px;
}

.athlete-menu {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  max-height: 48px;
  min-height: 48px;
  height: 48px;
  border-top: 1px solid #ccc;
  font-size: 13px;
  width: 100%;
}

.athlete-menu .athlete-search {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  border-right: 1px solid #cdcdcd;
  width: 140px;
}

.athlete-menu .athlete-search input[type='text'] {
  border: none;
  font-size: 20px;
  font-weight: 300;
  height: 50px;
  text-indent: 15px;
  width: 95%;
}

.athlete-menu .athlete-search ::-webkit-input-placeholder {
  color: #6d6e72;
}

.athlete-menu .athlete-reset-view {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-flex: 1 0 100px;
  -ms-flex: 1 0 100px;
  flex: 1 0 100px;
  max-width: 100px;
  min-width: 100px;
  width: 100px;
  border-right: 1px solid #ccc;
  cursor: pointer;
  color: #6d6e72;
}

.athlete-menu .athlete-reset-view:hover {
  color: #cdcdcd;
}

.athlete-menu .athlete-toggle-view {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-flex: 1 0 100px;
  -ms-flex: 1 0 100px;
  flex: 1 0 100px;
  max-width: 100px;
  min-width: 100px;
  width: 100px;
  font-size: 23px;
}

.athlete-menu .athlete-toggle-view > i {
  cursor: pointer;
  margin: 8px;
  color: #cdcdcd;
}

.athlete-menu .athlete-toggle-view > i:hover {
  color: #6d6e72;
}

.athlete-menu .athlete-toggle-view > i.active {
  color: #9768EB;
}

.athlete-menu .athlete-mobile-filters-btn {
  display: none;
}

.athlete-menu .athlete-filter-sort {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  min-width: 600px;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  border-right: 1px solid #ccc;
  color: #6d6e72;
  cursor: pointer;
  min-width: 110px;
  position: relative;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .label {
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  max-width: 110px;
  width: 110px;
  padding: 15px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #6d6e72;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .label:after {
  position: absolute;
  top: 35%;
  right: 10px;
  font-family: FontAwesome;
  content: "\F0D7";
  color: #6d6e72;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .options {
  position: absolute;
  top: 52px;
  left: -1px;
  background-color: #f6f1f1;
  border: 1px solid #ebebeb;
  box-shadow: 0 2px 5px 0 rgba(68, 67, 76, 0.25);
  min-width: 130px;
  width: 100%;
  z-index: 3;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .options .options-item {
  padding: 5px 10px 5px 14px;
  white-space: nowrap;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .options .options-item:hover {
  background-color: #dedfde;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .options .options-item-selected {
  font-weight: bold;
  padding-left: 3px;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .options .sort-item-selected {
  font-weight: bold;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .fa-circle {
  margin-left: 7px;
  margin-right: 3px;
  text-align: center;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .fa-circle.not-active {
  color: transparent;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .fa-sort-asc {
  margin-left: 4px;
  margin-right: 3px;
  margin-top: 4px;
  text-align: center;
}

.athlete-menu .athlete-filter-sort > .athlete-sort-box .fa-sort-desc {
  margin-bottom: 4px;
  margin-left: 3px;
  margin-right: 4px;
  text-align: center;
}

@media (max-width: 768px) {
  body .athlete-menu {
    flex-wrap: wrap;
    height: auto;
    min-height: 0;
    max-height: none;
  }

  body .athlete-menu .athlete-mobile-filters-btn {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    align-items: center;
    order: 2;
    height: 48px;
    padding: 0 14px;
    gap: 7px;
    cursor: pointer;
    border-left: 1px solid #ccc;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #6d6e72;
  }

  body .athlete-menu .athlete-search {
    order: 1;
    height: 48px;
    min-width: 0;
  }

  body .athlete-menu .athlete-toggle-view {
    order: 3;
    min-width: unset;
    max-width: 70px;
    width: 70px;
    height: 48px;
  }

  body .athlete-menu .athlete-filter-sort {
    display: none !important;
    order: 4;
    width: 100%;
    min-width: unset;
    border-top: 1px solid #ccc;
  }

  body .athlete-menu .athlete-filter-sort.mobile-open {
    display: -webkit-flex !important;
    display: -ms-flexbox !important;
    display: flex !important;
    flex-direction: column;
    background-color: #fff;
    overflow: visible;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box {
    height: 50px;
    min-height: 50px;
    max-height: none;
    min-width: unset;
    padding: 0;
    border-right: none;
    border-bottom: 1px solid #eee;
    overflow: visible;
    position: relative;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box:last-child {
    border-bottom: none;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box::after {
    position: absolute;
    top: 50%;
    right: 15px;
    transform: translateY(-50%);
    font-family: FontAwesome;
    content: "\F0D7";
    color: #6d6e72;
    font-size: 13px;
    pointer-events: none;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box div.label {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: auto;
    max-width: none;
    height: auto;
    min-height: 0;
    max-height: none;
    display: flex;
    align-items: center;
    overflow: visible;
    padding: 0 30px 0 20px;
    font-size: 13px;
    font-weight: 400;
    cursor: pointer;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box div.label::after {
    content: none;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .label-placeholder[data-field-name] {
    font-size: 0;
    padding-right: 30px !important;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .label-placeholder[data-field-name]::before {
    content: attr(data-field-name) ":";
    font-size: 13px;
    font-weight: 400;
    color: #6d6e72;
    flex-grow: 1;
    flex-shrink: 0;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .label-placeholder[data-field-name]::after {
    content: 'All';
    font-size: 13px;
    font-weight: 400;
    color: #6d6e72;
    position: static;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .label[data-sort-value] {
    font-size: 0;
    padding-right: 30px !important;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .label[data-sort-value]::before {
    content: attr(data-field-name) ":";
    font-size: 13px;
    font-weight: 400;
    color: #6d6e72;
    flex-grow: 1;
    flex-shrink: 0;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .label[data-sort-value]::after {
    content: attr(data-sort-value);
    font-size: 13px;
    font-weight: 400;
    color: #6d6e72;
    font-family: inherit;
    position: static;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .options {
    top: 50px;
    left: 0;
    z-index: 100;
    min-width: 100%;
  }

  body .athlete-menu .athlete-reset-view {
    order: 5;
    display: none;
    width: 100%;
    min-width: unset;
    max-width: unset;
    min-height: 50px;
    max-height: 50px;
    height: 50px;
    border-left: none;
    border-right: none;
    border-top: 1px solid #ccc;
  }

  body .athlete-menu--filters-open .athlete-reset-view {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
  }

  body .label[data-field-name]:not(.label-placeholder):not([data-sort-value])::before {
    content: attr(data-field-name) ":";
    font-size: 13px;
    font-weight: 400;
    color: #6d6e72;
    flex-grow: 1;
    flex-shrink: 0;
  }
}

.athlete-list-view {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
}

.athlete-list-view .athlete-list-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  width: 100%;
}

.athlete-list-view .athlete-header {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-align-content: center;
  align-content: center;
  font-size: 12px;
  background-color: #e1e1e1;
}

.athlete-list-view .athlete-header > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 35px;
  min-height: 35px;
  height: 35px;
  background-color: #e1e1e1;
  color: #6d6e72;
  text-transform: uppercase;
  font-weight: 600;
}

.athlete-list-view .athlete-header .athlete-number {
  min-width: 70px;
}

.athlete-list-view .athlete-header .athlete-name {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  min-width: 170px;
}

.athlete-list-view .athlete-header .athlete-stat {
  -webkit-flex: 0.5;
  -ms-flex: 0.5;
  flex: 0.5;
  min-width: 100px;
}

.athlete-list-view .athlete-header .athlete-programs {
  min-width: 140px;
}

.athlete-list-view .athlete-header .athlete-last-activity {
  min-width: 170px;
}

.athlete-list-view .athlete-row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-align-content: center;
  align-content: center;
  font-size: 20px;
}

.athlete-list-view .athlete-row > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  max-height: 53px;
  min-height: 53px;
  height: 53px;
}

.athlete-list-view .athlete-row .athlete-number {
  color: #939497;
  min-width: 70px;
  padding-left: 20px;
}

.athlete-list-view .athlete-row .athlete-name {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  color: #f7f7f7;
  min-width: 170px;
  cursor: pointer;
}

.athlete-list-view .athlete-row .athlete-stat {
  -webkit-flex: 0.5;
  -ms-flex: 0.5;
  flex: 0.5;
  -webkit-justify-content: center;
  justify-content: center;
  letter-spacing: 1.25px;
  min-width: 100px;
}

.athlete-list-view .athlete-row .athlete-programs {
  -webkit-justify-content: center;
  justify-content: center;
  font-size: 13px;
  min-width: 140px;
  text-transform: uppercase;
}

.athlete-list-view .athlete-row .athlete-programs > div {
  cursor: pointer;
}

.athlete-list-view .athlete-row .athlete-programs i {
  padding-right: 12px;
}

.athlete-list-view .athlete-row .athlete-last-activity {
  -webkit-justify-content: center;
  justify-content: center;
  font-size: 13px;
  min-width: 170px;
  text-transform: uppercase;
}

.athlete-list-view .athlete-row:nth-child(even) > div {
  background-color: #fefefe;
}

.athlete-list-view .athlete-row:nth-child(even) .athlete-number,
.athlete-list-view .athlete-row:nth-child(even) .athlete-name {
  background-color: #2e2e2e;
}

.athlete-list-view .athlete-row:nth-child(odd) > div {
  background-color: #efefef;
}

.athlete-list-view .athlete-row:nth-child(odd) .athlete-number,
.athlete-list-view .athlete-row:nth-child(odd) .athlete-name {
  background-color: #242424;
}

.athlete-dashboard-layout {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  background-color: #eef0ef;
}

.athlete-dashboard-layout .athlete-dashboard-layout-side {
  -webkit-flex: 0.1;
  -ms-flex: 0.1;
  flex: 0.1;
}

.athlete-dashboard {
  font-size: 12px;
  margin-bottom: 20px;
  margin-top: 15px;
}

.athlete-dashboard .athlete-dashboard-menu {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  min-height: 85px;
  padding-left: 10px;
  width: 990px;
}

.athlete-dashboard .athlete-dashboard-menu > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  margin-right: 35px;
  text-transform: uppercase;
}

.athlete-dashboard .athlete-dashboard-menu > div > span:first-child {
  font-size: 18px;
  margin-right: 7px;
}

.athlete-dashboard .athlete-dashboard-menu > div > span:first-child > i:last-child {
  font-size: 13px;
}

.athlete-dashboard .athlete-dashboard-container {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 20px;
  width: 100%;
}

.athlete-dashboard .athlete-dashboard-container .athlete-info-box {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  height: auto;
  min-height: 0;
  max-height: none;
  min-width: 0;
  width: calc((100% - 40px) / 3);
  background-color: #ffffff;
}

.athlete-dashboard .athlete-dashboard-container .athlete-add-slot {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  flex: 1 0 100%;
  margin-top: 10px;
}

.athlete-dashboard .athlete-dashboard-container .athlete-add-slot button i {
  font-size: 18px;
  margin-right: 8px;
  vertical-align: middle;
}

.athlete-dashboard .athlete-dashboard-container .athlete-info-box > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  width: 100%;
}

.athlete-dashboard-actions {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  flex-wrap: wrap;
  margin-top: 35px;
}

.athlete-dashboard-actions .action {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  cursor: pointer;
  margin-bottom: 8px;
}

.athlete-dashboard-actions .action.disabled {
  cursor: default;
  color: #cdcdcd;
}

.athlete-dashboard-actions .action.disabled .action-icon,
.athlete-dashboard-actions .action.disabled .action-text {
  color: #cdcdcd;
}

.athlete-dashboard-actions .action .action-icon {
  font-size: 36px;
  margin-right: 5px;
}

.athlete-dashboard-actions .action .action-text {
  text-transform: uppercase;
  font-size: 12px;
  font-weight: bold;
  letter-spacing: 1px;
  margin-right: 20px;
  white-space: nowrap;
}

.athlete-info-box .bio-header {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex: 1 0 40px;
  -ms-flex: 1 0 40px;
  flex: 1 0 40px;
  max-height: 45px;
  min-height: 45px;
  height: 45px;
  background-color: #9768EB;
  color: #ffffff;
  font-size: 18px;
  font-weight: 500;
  cursor: pointer;
}

.athlete-info-box .bio-header .athlete-number {
  margin-left: 15px;
}

.athlete-info-box .bio-header .athlete-name {
  margin-left: 15px;
}

.athlete-info-box .bio-header .athlete-number + .athlete-name {
  margin-left: 10px;
}

.athlete-info-box .bio-header:hover {
  background-color: rgba(17, 38, 75, 0.85);
}

.athlete-info-box .bio-body {
  -webkit-flex: 1 1 100%;
  -ms-flex: 1 1 100%;
  flex: 1 1 100%;
  padding: 17px;
}

.athlete-info-box .bio-body > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.athlete-info-box .bio-body .athlete-profile {
  -webkit-align-items: center;
  align-items: center;
  max-width: 120px;
}

.athlete-info-box .bio-body .athlete-profile .profile-pic-thumb {
  position: relative;
  width: 100px;
  height: 100px;
  overflow: hidden;
}

.athlete-info-box .bio-body .athlete-profile .profile-pic {
  border: 1px solid #ccc;
  height: 130px;
  margin: 0 0 10px;
  width: 120px;
  cursor: pointer;
}

.athlete-info-box .bio-body .athlete-profile .profile-pic img {
  position: absolute;
  left: 50%;
  top: 50%;
  height: 100%;
  width: auto;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

.athlete-info-box .bio-body .athlete-profile .athlete-position {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .5px;
}

.athlete-info-box .bio-body .athlete-profile .athlete-weight {
  font-size: 12px;
  text-transform: uppercase;
}

.athlete-info-box .bio-body .athlete-stats {
  padding-left: 15px;
}

.athlete-info-box .bio-body .athlete-stats .athlete-score {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  font-size: 14px;
  line-height: 10px;
}

.athlete-info-box .bio-body .athlete-stats .athlete-score-tl-data {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  font-size: 20px;
  line-height: 10px;
  padding-top: 10px;
}

.athlete-info-box .bio-body .athlete-stats .test-type {
  border-bottom: 1px solid #ccc;
  font-size: 22px;
  line-height: 22px;
  min-height: 30px;
}

.athlete-info-box .bio-body .athlete-stats .test-score {
  font-size: 40px;
  line-height: 40px;
  min-height: 50px;
  text-align: center;
}

.athlete-info-box .bio-footer {
  -webkit-flex: 1 0 50px;
  -ms-flex: 1 0 50px;
  flex: 1 0 50px;
  background-color: #f5f5f5;
  max-height: 50px;
}

.athlete-info-box .bio-footer > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-flex: 1 0 50%;
  -ms-flex: 1 0 50%;
  flex: 1 0 50%;
  font-size: 12px;
  text-transform: uppercase;
  cursor: pointer;
  color: #6d6e72;
  letter-spacing: 0.6px;
}

.athlete-info-box .bio-footer > div i {
  font-size: 13px;
  margin-right: 8px;
}

.athlete-info-box .bio-footer > div i.icon-test {
  font-size: 18px;
}

.athlete-info-box .bio-footer > div:hover {
  background-color: #E8E8E8;
  color: #9768EB;
}

.athlete-info-box .bio-footer > div + div {
  border-left: 1px solid #E8E8E8;
}

.profile-menu {
  -webkit-align-items: flex-end;
  align-items: flex-end;
  max-height: 65px;
  min-height: 65px;
  height: 65px;
}

.menu-item + .menu-item {
  margin-left: 45px;
}

.menu-item {
  max-height: 40px;
  min-height: 40px;
  height: 40px;
  color: #a0a4a8;
  cursor: default;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  position: relative;
  letter-spacing: 1px;
}

.menu-item.active {
  border-bottom: 4px solid #9768EB;
  color: #efefef;
}

.menu-item:not(.active):hover {
  border-bottom: 4px solid #a0a4a8;
  cursor: pointer;
}

.menu-item a {
  max-height: 40px;
  min-height: 40px;
  height: 40px;
  border: none;
  color: inherit;
  display: inline-block;
  outline: none;
  text-decoration: none;
}

.menu-item span.marker {
  position: absolute;
  top: 0;
  right: -30px;
  width: 23px;
  height: 22px;
  background-color: #ff0000;
  border-radius: 50%;
  text-align: center;
}

.profile-detail {
  max-width: 210px;
  min-width: 210px;
  width: 210px;
}

@media (max-width: 768px) {
  .profile-detail.profile-detail {
    display: none;
  }
}

.profile-detail .data-emphasis {
  font-weight: 600;
}

.profile-detail .profile-pic {
  max-height: 175px;
  min-height: 175px;
  height: 175px;
  max-width: 200px;
  min-width: 200px;
  width: 200px;
  overflow: hidden;
}

.profile-detail .profile-pic img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.profile-detail .profile-action {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  background-color: #9768EB;
  color: #ffffff;
  height: 50px;
  width: 200px;
  cursor: pointer;
}

.profile-detail .profile-action i {
  font-size: 17px;
  margin-right: 5px;
}

.profile-detail .profile-action span {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
}

.profile-detail .profile-action.invisible {
  visibility: hidden;
}

.profile-detail .profile-data-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  font-size: 14px;
  margin-top: 15px;
}

.profile-detail .profile-data-container .profile-data > span:first-child {
  margin-right: 5px;
}

.profile-detail .profile-group-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  font-size: 14px;
  margin-top: 15px;
}

.profile-detail .profile-group-container .group-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  background-color: #D9DAD9;
  border: 0;
  border-radius: 6px;
  margin: 6px 0 0;
  height: 30px;
  width: 115px;
  position: relative;
}

.profile-detail .profile-group-container .group-container .group-icon {
  border: 1px solid #999;
  margin-right: 8px;
  height: 16px;
  width: 12px;
}

.profile-detail .profile-group-container .group-container .group-save {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  background-color: #9768EB;
  color: #fff;
}

.profile-detail .profile-group-container .group-container .group-close {
  position: absolute;
  right: 5px;
  cursor: pointer;
  font-size: 22px;
}

.profile-data-container.mobile-profile-data {
  display: none;
}

@media (max-width: 768px) {
  .profile-data-container.mobile-profile-data {
    display: block;
  }
}

.profile-group-container.mobile-profile-group {
  display: none;
}

@media (max-width: 768px) {
  .profile-group-container.mobile-profile-group {
    display: block;
  }
}

@media (max-width: 768px) {
  .resp-month-view {
    flex-direction: column;
  }
}

@media (max-width: 600px) {
  .resp-score-today {
    flex-direction: column-reverse;
  }
}

@media only screen and (max-width: 600px) {
  body .profile-summary > .row-container.divided.resp-score-today > div + div {
    padding-left: 0;
  }
}

@media only screen and (max-width: 768px) {
  body .profile-summary {
    padding-left: 0px !important;
  }
}

.profile-summary {
  max-width: 780px;
  min-width: 780px;
  width: 780px;
}

.profile-summary .mobile-pic {
  display: none;
}

@media (max-width: 768px) {
  .profile-summary .mobile-pic {
    display: block;
    flex-shrink: 0;
    align-self: flex-start;
    margin-right: 16px;
  }

  .profile-summary .mobile-pic img {
    display: block;
    width: 120px;
    height: auto;
    aspect-ratio: 200 / 175;
    object-fit: contain;
  }
}

.profile-summary .profile-name {
  margin-bottom: 5px;
}

.profile-summary .profile-name > div {
  font-size: 24px;
  margin-right: 6px;
}

.profile-summary .profile-activity {
  margin-bottom: 10px;
  color: #999;
  font-size: 13px;
}

@media (max-width: 768px) {
  .profile-summary .profile-activity {
    flex-direction: column;
  }
}

.profile-summary .profile-activity > div:nth-child(n+2):before {
  color: #ccc;
  content: '|';
  margin: 0 9px;
}

@media (max-width: 768px) {
  .profile-summary .profile-activity > div:nth-child(n+2):before {
    margin: 0;
    content: '';
  }
}

.profile-summary .profile-activity > div > span:first-child {
  margin-right: 6px;
}

.profile-summary .profile-activity .blue-text {
  cursor: pointer;
}

.profile-summary .score-label {
  font-size: 12px;
  font-weight: 600;
  margin: 20px 0 10px;
  min-height: 20px;
  text-transform: uppercase;
}

.profile-summary .score-container {
  max-width: 380px;
  min-width: 380px;
  width: 380px;
  background-color: #ffffff;
  border: 1px solid #efefef;
  border-radius: 8px;
  padding-top: 20px;
}

.profile-summary .score-container .profile-score {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  max-height: 85px;
  min-height: 85px;
  height: 85px;
  max-width: 330px;
  min-width: 330px;
  width: 330px;
}

.profile-summary .score-container .profile-score.label-only {
  max-height: 65px;
  min-height: 65px;
  height: 65px;
}

.profile-summary .score-container .profile-score .profile-score-info {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  font-size: 15px;
}

.profile-summary .score-container .profile-score .profile-score-info .profile-score-name {
  letter-spacing: .25px;
  font-size: 16px;
  color: #AEAEAE;
  font-weight: 500;
}

.profile-summary .score-container .profile-score .profile-score-info .profile-score-date {
  font-size: 14px;
  font-weight: 500;
  line-height: 25px;
  color: #AEAEAE;
}

.profile-summary .score-container .profile-score .profile-score-graph-canvas {
  max-height: 60px;
  min-height: 60px;
  height: 60px;
  max-width: 330px;
  min-width: 330px;
  width: 330px;
}

.profile-summary .score-container .profile-score .profile-score-label {
  color: #9768EB;
  font-size: 22px;
  font-weight: 400;
  margin-left: auto;
  text-align: right;
}

.profile-summary .score-container .profile-score .profile-score-label .profile-tl-change {
  color: #9768EB;
  font-size: 12px;
  margin-left: auto;
  text-align: right;
}

.profile-summary .today-label {
  font-size: 12px;
  font-weight: 600;
  margin: 20px 0 10px;
  min-height: 20px;
  text-transform: uppercase;
}

.profile-summary .today-program {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  max-height: 80px;
  min-height: 80px;
  height: 80px;
  max-width: 380px;
  min-width: 380px;
  width: 380px;
  background-color: #ffffff;
  border: 1px solid #efefef;
  border-radius: 8px;
  margin-bottom: 7px;
  padding: 0 6px;
  cursor: pointer;
}

.profile-summary .today-program > div {
  margin-left: 10px;
}

.profile-summary .today-program > div:first-child {
  color: #ccc;
  font-size: 22px;
}

.profile-summary .today-program div.icon-checkbox-checked {
  color: #AFB0AE;
}

.profile-summary .today-program div.icon-checkbox-checked.blue-check {
  color: #9768EB;
}

.profile-summary .today-program .program {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  font-size: 16px;
  font-weight: 500;
}

.profile-summary .today-program .program .light-grey-text {
  color: #AFB1B3;
}

.profile-summary .today-notice {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 80px;
  min-height: 80px;
  height: 80px;
  background-color: #ffffff;
  border: 1px solid #efefef;
  border-radius: 8px;
  margin-bottom: 7px;
  padding: 0 6px;
}

.profile-summary .today-notice > div {
  margin-left: 20px;
}

.profile-summary .today-notice .notice {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  padding-bottom: 6px;
  font-size: 14px;
  font-weight: 500;
}

.profile-summary .today-notice .notice-button > button {
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  font-size: 12px;
  font-weight: 600;
}

.profile-summary .today-notice.yellow {
  background-color: #dfc03f;
}

.profile-summary .today-notice.yellow .notice {
  color: #fefefe;
}

.profile-summary .today-notice.yellow .notice-button > button {
  background-color: #ceb74e;
  border-color: transparent;
  color: #fefefe;
}

.spaced-top-large {
  margin-top: 45px;
}

.spaced-bottom-medium {
  margin-bottom: 35px;
}

.burger {
  display: none;
  font-size: 26px;
  cursor: pointer;
  color: #2e2e2e;
  padding: 0;
  margin: 0;
  line-height: 1;
  padding-bottom: 7px;
  pointer-events: auto;
}

.menu-mobile {
  pointer-events: auto;
}

.menu-desktop {
  display: flex;
}

.menu-mobile {
  position: absolute;
  top: 60px;
  left: 0;
  right: 0;
  background: #1c1c1c;
  display: flex;
  flex-direction: column;
  padding: 10px 0;
  z-index: 1000;
}

.menu-mobile .menu-item {
  padding: 15px 20px;
  border-bottom: 1px solid #333;
  margin-left: 0;
}

.menu-divider {
  height: 1px;
  background: #333;
  margin: 10px 0;
}

/* MOBILE BREAKPOINT */

@media (max-width: 768px) {
  .menu-desktop {
    display: none;
  }

  .burger {
    display: block;
  }

  .menu-mobile {
    display: flex;
    width: 100vw;
  }

  .profile-menu {
    width: unset !important;
    justify-content: center;
    align-items: center;
    max-height: 59px;
    height: 59px;
    min-height: 59px;
  }
}

.athlete-nav {
  display: none;
  position: relative;
}

@media (max-width: 768px) {
  .athlete-nav {
    display: block;
    padding: 8px 0 4px;
  }
}

.athlete-nav__burger {
  font-size: 26px;
  cursor: pointer;
  color: #2e2e2e;
  line-height: 1;
  margin-left: 15px;
}

.athlete-nav__dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  background: #1c1c1c;
  z-index: 1000;
  min-width: 150px;
}

.athlete-nav__item {
  padding: 14px 20px;
  color: #a0a4a8;
  cursor: pointer;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  border-bottom: 1px solid #333;
  white-space: nowrap;
}

.athlete-nav__item.active {
  color: #efefef;
}

.athlete-nav__item:hover {
  color: #efefef;
}

/* ============================================================
   Athlete navigation — vertical left sidebar
   Matches the practitioner/admin sidebar style.
   ============================================================ */

.menu-content:has(.profile-menu--sidebar.has-items) {
  position: fixed;
  top: 60px;
  left: 0;
  bottom: 0;
  width: 240px;
  min-width: 240px;
  max-width: 240px;
  min-height: 0;
  max-height: none;
  height: auto;
  padding: 0;
  background-color: #ffffff;
  border-right: 1px solid #d1d1d1;
  z-index: 900;
  overflow-x: hidden;
  overflow-y: auto;
  display: block;
  transition: width 0.25s ease, min-width 0.25s ease, max-width 0.25s ease;
}

.main-view:has(.athlete-selection) .menu-content:has(.profile-menu--sidebar.has-items) {
  top: 104px;
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items) {
  padding-top: 60px;
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items) > .header-content {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 910;
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items) > .header-content + * .athlete-selection {
  height: 44px;
  min-height: 44px;
  max-height: 44px;
}

.main-view:has(.athlete-selection):has(> .menu-content .profile-menu--sidebar.has-items) {
  padding-top: 104px;
}

.main-view:has(.athlete-selection):has(> .menu-content .profile-menu--sidebar.has-items) > .header-content + * {
  position: fixed;
  top: 60px;
  left: 0;
  right: 0;
  z-index: 895;
}

.menu-content:has(.profile-menu--sidebar.has-items.is-collapsed) {
  width: 70px;
  min-width: 70px;
  max-width: 70px;
}

.profile-menu--sidebar.has-items {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  width: 100%;
  min-width: 0;
  max-width: none;
  height: 100%;
  min-height: 0;
  max-height: none;
  padding-left: 0;
  padding-right: 0;
}

.profile-menu--sidebar.has-items .sidebar-header {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  flex: 0 0 auto;
  width: 100%;
  box-sizing: border-box;
  padding: 16px 12px 16px 24px;
  background-color: #f6f6f7;
  border-bottom: 1px solid #d1d1d1;
  position: sticky;
  top: 0;
  z-index: 1;
}

.profile-menu--sidebar.has-items .sidebar-header__title {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: #32254f;
  white-space: nowrap;
  overflow: hidden;
}

.profile-menu--sidebar.has-items .sidebar-header__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-width: 0;
  height: auto;
  min-height: 0;
  max-height: none;
  padding: 0;
  border: none;
  background: transparent;
  color: #6d6d6d;
  line-height: 1;
  cursor: pointer;
  margin-right: -6px;
}

.profile-menu--sidebar.has-items .sidebar-header__toggle svg {
  display: block;
  width: 22px;
  height: 22px;
}

.profile-menu--sidebar.has-items .menu-desktop {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 16px 12px;
}

.profile-menu--sidebar.has-items .menu-item {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 40px;
  min-height: 0;
  max-height: none;
  margin: 0 0 4px 0;
  padding: 0 12px;
  border: none;
  border-radius: 4px;
  color: #35354b;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.3px;
  text-transform: none;
  text-align: left;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.15s ease-in-out;
}

.profile-menu--sidebar.has-items .menu-item:not(.active):hover {
  border: none;
  background-color: #f2edfc;
}

.profile-menu--sidebar.has-items .menu-item.active {
  border: none;
  background-color: #f2edfc;
  color: #35354b;
}

.profile-menu--sidebar.has-items .menu-item + .menu-item {
  margin-left: 0;
}

.profile-menu--sidebar.has-items .menu-item__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  line-height: 1;
}

.profile-menu--sidebar.has-items .menu-item__icon svg {
  display: block;
  width: 16px;
  height: 16px;
}

.profile-menu--sidebar.has-items .menu-item__label {
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
}

.profile-menu--sidebar.has-items .sidebar-burger {
  display: none;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-member {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
  box-sizing: border-box;
  width: 100%;
  padding: 16px 24px;
  background-color: #ffffff;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-member__avatar {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  background-color: #f6f6f7;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-member__info {
  flex: 1 1 auto;
  min-width: 0;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-member__name {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.3;
  color: #3c3c43;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-member__subtitle {
  margin-top: 2px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.3;
  color: #8e8e93;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-footer {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 100%;
  margin-top: auto;
  padding: 16px 12px;
  border-top: 1px solid #d1d1d1;
  background-color: #ffffff;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-footer__admin-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex: 1 1 auto;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: auto;
  min-height: 0;
  max-height: none;
  padding: 10px 16px;
  border: 1px solid #d1d1d1;
  border-radius: 6px;
  background-color: #ffffff;
  color: #3c3c43;
  font-size: 16px;
  font-weight: 600;
  text-transform: none;
  letter-spacing: normal;
  line-height: 1.4;
  cursor: pointer;
  transition: background-color 0.15s ease-in-out;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-footer__admin-btn:hover {
  background-color: #f6f6f7;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-footer__admin-btn .icon {
  font-size: 12px;
  line-height: 1;
}

.profile-menu--sidebar.has-items.profile-menu--practitioner .sidebar-footer__admin-label {
  white-space: nowrap;
}

.profile-menu--sidebar.has-items.is-collapsed .sidebar-header {
  justify-content: center;
}

.profile-menu--sidebar.has-items.is-collapsed .sidebar-header__title {
  display: none;
}

.profile-menu--sidebar.has-items.is-collapsed .menu-item {
  justify-content: center;
}

.profile-menu--sidebar.has-items.is-collapsed .menu-item__label {
  display: none;
}

.profile-menu--sidebar.has-items.is-collapsed.profile-menu--practitioner .sidebar-member {
  justify-content: center;
  padding: 12px;
}

.profile-menu--sidebar.has-items.is-collapsed.profile-menu--practitioner .sidebar-member__info {
  display: none;
}

.profile-menu--sidebar.has-items.is-collapsed.profile-menu--practitioner .sidebar-footer {
  padding: 12px 8px;
}

.profile-menu--sidebar.has-items.is-collapsed.profile-menu--practitioner .sidebar-footer__admin-label {
  display: none;
}

.profile-menu--sidebar.has-items.is-collapsed.profile-menu--practitioner .sidebar-footer__admin-btn {
  padding: 10px;
  gap: 0;
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items) > .menu-content ~ * {
  margin-left: 240px;
  transition: margin-left 0.25s ease;
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items.is-collapsed) > .menu-content ~ * {
  margin-left: 70px;
}

/* The scrim only exists in the off-canvas tier below. */

.sidebar-scrim {
  display: none;
}

/* Mobile: sidebar slides in from the left, toggled by a fixed burger */

@media (max-width: 768px) {
  .profile-menu--sidebar.has-items.is-mobile-open .sidebar-scrim {
    display: block;
    position: fixed;
    top: 60px;
    left: 240px;
    right: 0;
    bottom: 0;
    z-index: -1;
    background-color: rgba(0, 0, 0, 0.4);
  }

  .main-view:has(.profile-menu--sidebar.has-items) .athlete-nav {
    display: none;
  }

  .main-view:has(.athlete-selection) .profile-menu--sidebar.has-items.is-mobile-open .sidebar-scrim {
    top: 104px;
  }

  .main-view:has(> .menu-content .profile-menu--sidebar.has-items) .header-content--athlete,
  .main-view:has(> .menu-content .profile-menu--sidebar.has-items) .header-content--prac {
    padding-left: 60px;
  }

  .menu-content:has(.profile-menu--sidebar.has-items) {
    top: 60px;
    left: -240px;
    width: 240px;
    min-width: 240px;
    max-width: 240px;
    pointer-events: auto;
    box-shadow: 2px 0 8px rgba(0, 0, 0, 0.15);
    transition: left 0.25s ease;
    z-index: 920;
  }

  .menu-content:has(.profile-menu--sidebar.has-items.is-mobile-open) {
    left: 0;
  }

  .menu-content:has(.profile-menu--sidebar.has-items.is-collapsed) {
    width: 240px;
    min-width: 240px;
    max-width: 240px;
  }

  .main-view:has(> .menu-content .profile-menu--sidebar.has-items) > .header-content + *:not(.menu-content),
  .main-view:has(> .menu-content .profile-menu--sidebar.has-items) > .menu-content ~ *,
  .main-view:has(> .menu-content .profile-menu--sidebar.has-items.is-collapsed) > .header-content + *:not(.menu-content),
  .main-view:has(> .menu-content .profile-menu--sidebar.has-items.is-collapsed) > .menu-content ~ * {
    margin-left: 0;
  }

  .profile-menu--sidebar.has-items .sidebar-header {
    display: none;
  }

  .profile-menu--sidebar.has-items .sidebar-burger {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    top: 0;
    left: 0;
    width: 60px;
    height: 60px;
    border: 0;
    border-radius: 0;
    background-color: transparent;
    color: #ffffff;
    font-size: 20px;
    z-index: 950;
    cursor: pointer;
  }

  .profile-menu--sidebar.has-items.is-collapsed .menu-item {
    justify-content: flex-start;
  }

  .profile-menu--sidebar.has-items.is-collapsed .menu-item__label {
    display: inline;
  }

  .profile-menu--sidebar.has-items.profile-menu--practitioner.is-collapsed .sidebar-member__info {
    display: block;
  }

  .profile-menu--sidebar.has-items.profile-menu--practitioner.is-collapsed .sidebar-footer__admin-label {
    display: inline;
  }

  .profile-menu--sidebar.has-items.profile-menu--practitioner.is-collapsed .sidebar-footer__admin-btn {
    padding: 10px 16px;
    gap: 8px;
  }
}

/* ============================================================
   Athlete welcome header (home page)
   ============================================================ */

.view-layout:has(.athlete-welcome-header),
.view-layout:has(.today-asks) {
  justify-content: flex-start;
  flex: 0 0 auto;
}

.view-layout > div:has(> .athlete-welcome-header),
.view-layout > div:has(> .today-asks) {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
}

.view-layout.athlete-home-row {
  justify-content: flex-start;
}

.athlete-welcome-header {
  width: 100%;
  max-width: 1148px;
  margin-left: 0;
  margin-right: 0;
  padding: 16px 24px 0;
  box-sizing: border-box;
}

.athlete-welcome-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding: 16px 40px 16px 20px;
  background: #ffffff;
  border: 1px solid #ececec;
  border-radius: 6px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  box-sizing: border-box;
}

.athlete-welcome-header__profile {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
  flex: 1 1 auto;
}

.athlete-welcome-header__avatar {
  flex: 0 0 auto;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  overflow: hidden;
  background-color: #f0f0f0;
}

.athlete-welcome-header__avatar img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.athlete-welcome-header__info {
  min-width: 0;
}

.athlete-welcome-header__title {
  margin: 0 0 8px;
  font-size: 30px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
  color: #000000;
}

.athlete-welcome-header__title-row {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
}

.athlete-welcome-header__title-row .athlete-welcome-header__title {
  margin-bottom: 0;
}

.athlete-welcome-header__action {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #9768eb;
  font-family: 'Nudista', sans-serif;
  font-weight: 500;
  font-size: 14px;
  line-height: 1;
  letter-spacing: -0.02em;
  text-align: right;
  vertical-align: middle;
  white-space: nowrap;
  cursor: pointer;
  text-decoration: none;
}

.athlete-welcome-header__action i {
  font-size: 14px;
}

.athlete-welcome-header__action:hover {
  text-decoration: underline;
}

.athlete-welcome-header__action-icon {
  display: block;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.athlete-welcome-header__take-test {
  flex: 0 0 auto;
}

.athlete-welcome-header__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.athlete-welcome-header__badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 16px;
  background-color: #f2edfc;
  color: #533d82;
  font-size: 14px;
  font-weight: 600;
  line-height: 18px;
  letter-spacing: 0;
  text-align: center;
}

.athlete-welcome-header__last-test {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  color: #9768eb;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  letter-spacing: 0;
}

.athlete-welcome-header__last-test-date {
  color: #4f4f4f;
}

.athlete-welcome-header__last-test-sep {
  flex: 0 0 auto;
  color: #d1d1d1;
}

.athlete-welcome-header__stats {
  display: flex;
  align-items: flex-start;
  gap: 36px;
  flex: 0 0 auto;
}

.athlete-welcome-header__stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
  min-width: 0;
}

.athlete-welcome-header__stat-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  min-width: 0;
}

.athlete-welcome-header__stat-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
}

.athlete-welcome-header__stat-icon svg,
.athlete-welcome-header__stat-icon img {
  display: block;
  width: 32px;
  height: 32px;
}

.athlete-welcome-header__stat-icon--streak {
  color: #f08a24;
}

.athlete-welcome-header__stat-icon--training svg {
  width: 28px;
  height: 28px;
}

.athlete-welcome-header__stat-icon--skel {
  background: #ececef;
  border-radius: 6px;
  animation: home-skeleton-pulse 1.2s ease-in-out infinite;
}

.athlete-welcome-header__ring-track {
  fill: none;
  stroke: #e5e5e5;
  stroke-width: 3.5;
}

.athlete-welcome-header__ring-progress {
  fill: none;
  stroke: #20b769;
  stroke-width: 3.5;
  stroke-linecap: round;
  transform: rotate(-90deg);
  transform-origin: 50% 50%;
  transition: stroke-dashoffset 0.3s ease;
}

.athlete-welcome-header__stat-value {
  font-size: 24px;
  font-weight: 600;
  line-height: 1.2;
  color: #000000;
}

.athlete-welcome-header__stat-value span {
  font-size: 24px;
  font-weight: 600;
}

.athlete-welcome-header__stat-label {
  margin-top: 2px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3;
  color: #000000;
}

.athlete-welcome-header__stat-sublabel {
  margin-top: 1px;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.3;
  color: #4f4f4f;
}

.athlete-welcome-header__skel {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  background: #ececef;
  border-radius: 4px;
  animation: home-skeleton-pulse 1.2s ease-in-out infinite;
}

.athlete-welcome-header__skel--value {
  width: 4.5em;
  height: 1em;
}

.athlete-welcome-header__skel--label {
  width: 7.5em;
  height: 1em;
}

.athlete-welcome-header__skel--label-wide {
  width: 11em;
}

.athlete-welcome-header__skel--sublabel {
  width: 5em;
  height: 1em;
}

.athlete-welcome-header__avatar--skeleton {
  background: #ececef;
  animation: home-skeleton-pulse 1.2s ease-in-out infinite;
}

.athlete-welcome-header__skeleton-title {
  width: 180px;
  max-width: 100%;
  height: 30px;
  margin-bottom: 16px;
}

.athlete-welcome-header__skeleton-badge {
  width: 64px;
  height: 22px;
  border-radius: 16px;
}

@media (max-width: 900px) {
  .athlete-welcome-header__inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    padding: 16px 24px 16px 20px;
  }

  .athlete-welcome-header__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    justify-items: center;
    width: 100%;
    gap: 16px;
  }

  .athlete-welcome-header__stat {
    width: 100%;
  }
}

@media (max-width: 768px) {
  .athlete-welcome-header {
    padding: 16px 16px 0;
  }

  .athlete-welcome-header__inner {
    padding: 16px 16px 16px 16px;
  }

  .athlete-welcome-header__title {
    font-size: 22px;
  }

  .athlete-welcome-header__avatar {
    width: 56px;
    height: 56px;
  }

  .athlete-welcome-header__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    justify-items: center;
    align-items: start;
    gap: 12px;
    width: 100%;
    padding-top: 16px;
    border-top: 1px solid #ececec;
  }

  .athlete-welcome-header__stat {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .athlete-welcome-header {
    padding: 16px 12px 0;
  }

  .athlete-welcome-header__inner {
    padding: 14px;
    gap: 14px;
  }

  .athlete-welcome-header__profile {
    gap: 12px;
  }

  .athlete-welcome-header__avatar {
    width: 48px;
    height: 48px;
  }

  .athlete-welcome-header__title {
    font-size: 20px;
  }

  .athlete-welcome-header__badge {
    font-size: 12px;
    line-height: 16px;
  }

  .athlete-welcome-header__stats {
    gap: 8px;
    padding-top: 14px;
  }

  .athlete-welcome-header__stat {
    gap: 6px;
    min-width: 0;
  }

  .athlete-welcome-header__stat-icon,
  .athlete-welcome-header__stat-icon--streak,
  .athlete-welcome-header__stat-icon--programs {
    width: 24px;
    height: 24px;
  }

  .athlete-welcome-header__stat-icon svg,
  .athlete-welcome-header__stat-icon img,
  .athlete-welcome-header__stat-icon--streak svg,
  .athlete-welcome-header__stat-icon--streak img,
  .athlete-welcome-header__stat-icon--programs svg,
  .athlete-welcome-header__stat-icon--programs img {
    width: 24px;
    height: 24px;
  }

  .athlete-welcome-header__stat-icon--training svg {
    width: 24px;
    height: 24px;
  }

  .athlete-welcome-header__stat-value {
    font-size: 16px;
    line-height: 1.25;
  }

  .athlete-welcome-header__stat-value span {
    font-size: 16px;
  }

  .athlete-welcome-header__stat-label {
    font-size: 11px;
    line-height: 1.25;
  }

  .athlete-welcome-header__stat-sublabel {
    font-size: 10px;
    line-height: 1.25;
  }

  .athlete-welcome-header__skeleton-title {
    height: 20px;
    width: 140px;
  }
}

/* ============================================================
   Progress Insights (athlete home)
   ============================================================ */

.progress-insights {
  padding: 16px 24px 0;
}

.progress-insights button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.progress-insights button + button {
  margin-left: 0;
}

.progress-insights__panel {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 492px;
  height: 145px;
  padding: 0;
  background: #ffffff;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  box-sizing: border-box;
  overflow: hidden;
}

.progress-insights__panel:has(.progress-insights__empty) {
  height: auto;
  min-height: 145px;
  padding-top: 16px;
}

.progress-insights__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex: 1 1 auto;
  min-height: 0;
  padding: 0 20px;
  box-sizing: border-box;
}

.progress-insights__title {
  margin: 0;
  font-family: 'Nudista', sans-serif;
  font-size: 20px;
  font-weight: 600;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  color: #000000;
}

.progress-insights__link {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
  gap: 14px;
  height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: #9768EB;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.02em;
  text-align: right;
  cursor: pointer;
}

.progress-insights__link:hover {
  opacity: 0.85;
}

.progress-insights__link-icon {
  flex: 0 0 auto;
  font-size: 12px;
  line-height: 1;
  color: inherit;
}

.progress-insights__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  min-height: 0;
  padding: 8px 16px 8px;
  text-align: center;
  box-sizing: border-box;
}

.progress-insights__empty-title {
  margin: 0 0 12px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.3;
  color: #4f4f4f;
}

.progress-insights__empty-description {
  margin: 0 0 14px;
  width: 452px;
  max-width: 100%;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  font-style: normal;
  line-height: 18px;
  letter-spacing: 0;
  text-align: center;
  color: #6D6D6D;
}

.progress-insights__empty-cta {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  width: 166px;
  min-width: 166px;
  max-width: 166px;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: #9768EB;
  color: #fff;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.02em;
  box-sizing: border-box;
  cursor: pointer;
}

.progress-insights__empty-cta:hover {
  opacity: 0.9;
}

.progress-insights__cards,
.progress-insights__skeleton {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  flex: 0 0 83px;
  height: 83px;
  min-height: 83px;
  border-top: 1px solid #e7e7e7;
  box-sizing: border-box;
}

.progress-insights__card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  flex: 1 1 0;
  min-width: 0;
  height: 100%;
  padding: 10px 12px;
  box-sizing: border-box;
  background: #FFFFFF;
  border-right: 1px solid #e7e7e7;
}

.progress-insights__card:last-child {
  border-right: 0;
}

.progress-insights__metric {
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  color: #6D6D6D;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.progress-insights__score-block {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.progress-insights__score {
  font-family: 'Nudista', sans-serif;
  font-size: 24px;
  font-weight: 600;
  font-style: normal;
  line-height: 24px;
  letter-spacing: 0;
  color: #000000;
}

.progress-insights__change {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
}

.progress-insights__change--up {
  color: #20b769;
}

.progress-insights__change--down {
  color: #c42a3b;
}

.progress-insights__trend-icon {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
}

@media (max-width: 768px) {
  .progress-insights {
    padding: 12px 16px 0;
  }
}

@media (max-width: 480px) {
  .progress-insights {
    padding: 12px 12px 0;
  }

  .progress-insights__panel {
    padding: 0;
  }

  .progress-insights__title {
    font-size: 18px;
  }

  .progress-insights__card {
    padding: 10px 12px;
  }

  .progress-insights__header {
    padding: 0 12px;
  }

  .progress-insights__metric {
    white-space: normal;
  }

  .progress-insights__empty-cta {
    width: 100%;
    min-width: 0;
    max-width: none;
  }
}

/* ============================================================
   Today asks (athlete home)
   ============================================================ */

.today-asks {
  width: 100%;
  max-width: 1148px;
  margin-left: 0;
  margin-right: 0;
  padding: 16px 24px 0;
}

.today-asks__panel {
  background: #ffffff;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  box-shadow: 0 1px 3px rgba(16, 24, 40, 0.04);
  overflow: hidden;
}

.today-asks__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-width: 0;
  height: auto;
  margin: 0;
  padding: 20px 20px 16px;
  border: 0;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  text-align: left;
  text-transform: none;
  letter-spacing: 0;
  font-family: 'Nudista', sans-serif;
}

.today-asks__panel:has(.today-asks__expandable):not(:has(.today-asks__alert-row)) .today-asks__header {
  border-bottom: 1px solid #e1e1e6;
}

.today-asks__title {
  margin: 0;
  font-family: 'Nudista', sans-serif;
  font-size: 20px;
  font-weight: 600;
  font-style: normal;
  color: #000000;
  line-height: 20px;
  letter-spacing: 0;
  text-transform: none;
}

.today-asks__chevron {
  color: #4f4f4f;
  font-size: 14px;
  flex: 0 0 auto;
}

.today-asks__alert-row {
  display: flex;
  align-items: center;
  padding: 0 20px 16px 12px;
}

.today-asks__panel:has(.today-asks__expandable) .today-asks__alert-row {
  border-bottom: 1px solid #e1e1e6;
}

.today-asks__alert {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  margin: 0;
  padding: 0 0 0 16px;
  min-height: 44px;
  min-width: 0;
  height: auto;
  border: 1px solid #fde8be;
  border-radius: 6px;
  background: #fffaf0;
  cursor: pointer;
  text-align: left;
  text-transform: none;
  letter-spacing: 0;
  font-family: 'Nudista', sans-serif;
  color: #d68b00;
  box-shadow: none;
  outline: 0;
}

.today-asks__alert-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  border: 1.5px solid #d68b00;
  border-radius: 50%;
  color: #d68b00;
  font-size: 10px;
  line-height: 1;
}

.today-asks__alert-icon .fa {
  line-height: 1;
}

.today-asks__alert-text {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  font-family: 'Nudista', sans-serif;
  font-weight: 600;
  font-size: 16px;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  color: #d68b00;
  text-transform: none;
}

.today-asks__alert-chevron {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  color: #6d6d6d;
  font-size: 12px;
}

.today-asks__body {
  display: flex;
  min-height: 264px;
  min-width: 0;
}

.today-asks__list {
  flex: 0 1 420px;
  max-width: 420px;
  min-width: 0;
  padding: 0;
  border-right: 1px solid #e7e7e7;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0;
}

.today-asks__item {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  margin: 0;
  padding: 12px 20px;
  border: 0;
  border-radius: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
  text-transform: none;
  letter-spacing: 0;
  font-family: 'Nudista', sans-serif;
  color: #4f4f4f;
  min-width: 0;
  height: auto;
  box-shadow: none;
}

.today-asks__item:hover {
  background: transparent;
}

.today-asks__item--selected {
  background: transparent;
}

.today-asks__item--selected .today-asks__badge:not(.today-asks__badge--done) {
  background: #f2edfc;
  color: #32254f;
}

.today-asks__item--selected .today-asks__item-name {
  color: #000000;
  font-weight: 600;
}

.today-asks__item--completed .today-asks__item-name {
  text-decoration: line-through;
  color: #4f4f4f;
}

.today-asks__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border-radius: 4px;
  background: #f6f6f6;
  color: #b0b0b0;
  font-family: 'Nudista', sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  text-transform: none;
}

.today-asks__badge--done {
  background: #e7f5ee;
  color: #12b76a;
  font-size: 11px;
}

.today-asks__item-name {
  margin: 0;
  min-width: 0;
  overflow-wrap: anywhere;
  font-family: 'Nudista', sans-serif;
  font-weight: 600;
  font-size: 16px;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  text-transform: none;
  color: #4f4f4f;
}

.today-asks__detail {
  flex: 1 1 724px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 56px;
  padding: 20px 20px 20px 32px;
  background-color: #fbf9ff;
  background-image: url(../images/today-background.png), linear-gradient(277.89deg, #fbf9ff 11.99%, #f0e8ff 29.68%, #ece2ff 45.91%, #eee6ff 61.25%, #ffffff 91.86%);
  background-position: center right, center;
  background-size: cover, cover;
  background-repeat: no-repeat, no-repeat;
  background-blend-mode: lighten, normal;
  min-width: 0;
}

.today-asks__done {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  text-align: center;
  gap: 8px;
  padding: 12px 16px;
}

.today-asks__done-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  margin-bottom: 8px;
  border-radius: 50%;
  background: #9768eb;
  color: #ffffff;
  font-size: 20px;
}

.today-asks__done-eyebrow {
  font-size: 14px;
  font-weight: 600;
  color: #6d6d6d;
  line-height: 20px;
}

.today-asks__done-title {
  font-size: 16px;
  font-weight: 600;
  color: #000000;
  line-height: 20px;
}

.today-asks__action {
  display: flex;
  flex: 0 1 212px;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
  width: auto;
  max-width: 212px;
  min-width: 0;
}

.today-asks__action-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  width: 100%;
}

.today-asks__eyebrow {
  font-size: 14px;
  font-weight: 600;
  color: #6d6d6d;
  line-height: 20px;
}

.today-asks__action-title {
  font-size: 16px;
  font-weight: 600;
  color: #000000;
  line-height: 20px;
  margin: 0;
  overflow-wrap: anywhere;
}

.today-asks__cta {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 8px;
  box-sizing: border-box;
  width: 100%;
  max-width: 212px;
  min-width: 0;
  height: auto;
  min-height: 44px;
  margin: 0;
  padding: 12px 16px;
  border: 0;
  border-radius: 4px;
  background: #9768eb;
  color: #ffffff;
  font-family: 'Nudista', sans-serif;
  text-transform: none;
  white-space: nowrap;
  box-shadow: none;
  cursor: pointer;
}

.today-asks__cta:hover {
  opacity: 0.92;
}

.today-asks__cta:focus {
  outline: 0;
}

.today-asks__cta-label {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
  width: auto;
  height: 16px;
  margin: 0;
  font-family: 'Nudista', sans-serif;
  font-weight: 600;
  font-size: 16px;
  font-style: normal;
  line-height: 1;
  letter-spacing: -0.02em;
  text-align: center;
  text-transform: none;
  color: #ffffff;
}

.today-asks__cta-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  font-size: 16px;
  line-height: 1;
}

.today-asks__preview {
  flex: 0 1 404px;
  width: auto;
  max-width: 404px;
  min-width: 0;
  background: #ffffff;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(16, 24, 40, 0.02);
}

.today-asks__preview-art {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 156px;
  background: linear-gradient(135deg, #c8e6b8 0%, #7cbc6e 100%);
}

.today-asks__preview-art--photo {
  height: auto;
  background: none;
}

.today-asks__preview-photo {
  display: block;
  width: 100%;
  height: auto;
}

.today-asks__preview-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 10px;
  background: rgba(46, 125, 50, 0.35);
}

.today-asks__preview-icon img {
  display: block;
  width: 28px;
  height: 28px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}

.today-asks__preview-body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  padding: 8px 12px 12px;
}

.today-asks__preview-name {
  font-size: 14px;
  font-weight: 600;
  color: #120d1c;
  line-height: 20px;
  overflow-wrap: anywhere;
}

.today-asks__preview-subtitle {
  font-size: 14px;
  font-weight: 400;
  color: #6d6d6d;
  line-height: 20px;
}

.today-asks__preview-tags {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.today-asks__preview-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  background: #f6f6f6;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
  line-height: 16px;
  color: #6d6d6d;
  text-align: center;
}

.today-asks__preview-tag .fa {
  font-size: 10px;
  line-height: 1;
}

.today-asks__preview-tag-icon {
  display: block;
  flex: 0 0 auto;
  width: 12px;
  height: 12px;
  color: inherit;
}

.today-asks__preview-tag-icon--img {
  object-fit: contain;
}

@media (max-width: 1100px) {
  .today-asks__detail {
    gap: 24px;
    padding: 20px;
  }
}

@media (max-width: 900px) {
  .today-asks__body {
    flex-direction: column;
  }

  .today-asks__list {
    flex: none;
    max-width: none;
    border-right: 0;
    border-bottom: 1px solid #e7e7e7;
    padding: 8px 0;
  }

  .today-asks__detail {
    flex: none;
    flex-direction: column;
    align-items: stretch;
    padding: 24px 20px;
    gap: 20px;
  }

  .today-asks__action {
    flex: none;
    width: 100%;
    max-width: none;
  }

  .today-asks__preview {
    flex: none;
    width: 100%;
    max-width: 404px;
    align-self: center;
  }
}

@media (max-width: 768px) {
  .today-asks {
    padding: 12px 16px 0;
  }

  .today-asks__header {
    padding: 14px 16px;
  }

  .today-asks__action,
  .today-asks__action-copy {
    align-items: center;
    text-align: center;
  }

  .today-asks__alert-row {
    padding: 0 16px 12px 8px;
  }

  .today-asks__alert-text {
    font-size: 14px;
  }
}

@media (max-width: 480px) {
  .today-asks {
    padding: 10px 12px 0;
  }

  .today-asks__header {
    padding: 12px 14px;
  }

  .today-asks__body {
    min-height: 0;
  }

  .today-asks__detail {
    padding: 16px;
    gap: 14px;
  }

  .today-asks__action {
    width: 100%;
    min-width: 0;
  }

  .today-asks__action-copy {
    white-space: normal;
  }

  .today-asks__preview {
    width: 100%;
    max-width: none;
  }
}

/* ============================================================
   My Schedule
   ============================================================ */

.athlete-home-row {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding: 16px 0 32px;
  box-sizing: border-box;
}

.athlete-home-row__inner {
  display: flex;
  align-items: stretch;
  gap: 20px;
  width: 100%;
  max-width: 1148px;
  margin-left: 0;
  margin-right: 0;
  padding: 0 24px;
  box-sizing: border-box;
}

.athlete-home-row__calendar {
  flex: 1 1 588px;
  max-width: 100%;
  min-width: 0;
}

.athlete-home-row__insights {
  display: flex;
  flex-direction: column;
  gap: 16px;
  flex: 1 1 492px;
  max-width: 100%;
  min-width: 0;
}

.athlete-home-row .my-schedule-wrap {
  max-width: none;
  margin: 0;
  padding: 0;
  width: 100%;
}

.athlete-home-row .my-schedule {
  max-width: none;
}

.athlete-home-row .progress-insights {
  padding: 0;
}

.athlete-home-row .progress-insights__panel {
  max-width: none;
}

.athlete-home-row .upcoming-session {
  padding: 0;
}

.athlete-home-row .upcoming-session__panel {
  max-width: none;
}

.athlete-home-row .bodymap-card {
  padding: 0;
}

.athlete-home-row .bodymap-card__panel {
  max-width: none;
}

@media (max-width: 900px) {
  .athlete-home-row__inner {
    flex-direction: column;
  }

  .athlete-home-row__calendar,
  .athlete-home-row__insights {
    flex: none;
    width: 100%;
  }

  .my-schedule {
    height: auto;
    min-height: 0;
  }
}

@media (max-width: 768px) {
  .athlete-home-row {
    padding: 12px 16px 28px;
  }

  .athlete-home-row__inner {
    padding-left: 0;
    padding-right: 0;
  }
}

@media (max-width: 480px) {
  .athlete-home-row {
    padding: 10px 12px 24px;
  }
}

.my-schedule-wrap {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  padding: 8px 24px 32px;
  box-sizing: border-box;
}

.my-schedule {
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
  max-width: 640px;
  height: 520px;
  padding: 20px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 6px;
  box-sizing: border-box;
}

.my-schedule button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.my-schedule button + button {
  margin-left: 0;
}

.my-schedule__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex: 0 0 auto;
}

.my-schedule__title {
  margin: 0;
  font-family: 'Nudista', sans-serif;
  font-size: 20px;
  font-weight: 600;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  color: #1a1a1a;
}

.my-schedule__edit-link {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
  gap: 8px;
  height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: #9768EB;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.02em;
  text-align: right;
  cursor: pointer;
}

.my-schedule__edit-link:hover {
  opacity: 0.85;
}

.my-schedule__edit-icon {
  display: block;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.my-schedule__controls {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 6px 8px;
  flex: 0 0 auto;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
}

.my-schedule__controls--month {
  justify-content: space-between;
}

.my-schedule__week,
.my-schedule__month {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

.my-schedule__today-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
  padding: 0 12px;
  border: 1px solid #d8d8d8;
  border-radius: 4px;
  background: #f3f3f4;
  color: #000;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  box-sizing: border-box;
  cursor: pointer;
}

.my-schedule__today-btn:hover {
  background: #ebebed;
}

.my-schedule__nav {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 1 1 auto;
  min-width: 0;
  height: 36px;
}

.my-schedule__nav--compact {
  flex: 0 0 auto;
}

.my-schedule__nav-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  min-height: 32px;
  max-height: 32px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #1a1a1a;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
}

.my-schedule__nav-btn .fa {
  font-size: 14px;
}

.my-schedule__nav-btn:hover {
  background: #f3f3f4;
}

.my-schedule__range {
  flex: 0 1 auto;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 500;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  color: #000;
  white-space: nowrap;
}

.my-schedule__range-emphasis {
  font-weight: 600;
}

.my-schedule__range-icon {
  display: block;
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  object-fit: contain;
}

.my-schedule__toggle {
  display: inline-flex;
  flex-direction: row;
  align-items: stretch;
  flex: 0 0 auto;
  width: 133px;
  height: 36px;
  padding: 4px;
  gap: 2px;
  border: 1px solid #e7e7e7;
  border-radius: 4px;
  background: #f6f6f6;
  margin-left: auto;
  box-sizing: border-box;
}

.my-schedule__toggle-btn {
  flex: 1 1 0;
  height: auto;
  min-height: 0;
  max-height: none;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #8a8a8a;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
}

.my-schedule__toggle-btn.is-active {
  background: #fff;
  color: #1a1a1a;
  box-shadow: none;
}

.my-schedule__month-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex: 1 1 auto;
}

.my-schedule__month-name {
  font-size: 18px;
  font-weight: 600;
  color: #1a1a1a;
}

.my-schedule__day-strip {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 4px;
  width: 100%;
  height: 90px;
  min-height: 90px;
  margin-bottom: 20px;
  box-sizing: border-box;
}

.my-schedule__day-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  min-width: 0;
  height: 90px;
  min-height: 90px;
  max-height: 90px;
  padding: 12px 2px 10px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  box-sizing: border-box;
  color: inherit;
  cursor: pointer;
}

.my-schedule__day-cell.is-selected {
  background: #f2edfc;
  border-color: #8a70d6;
}

.my-schedule__day-cell:hover:not(.is-selected) {
  background: rgba(0, 0, 0, 0.03);
}

.my-schedule__day-name {
  font-size: 12px;
  font-weight: 500;
  color: #8a8a8a;
}

.my-schedule__day-number {
  font-size: 16px;
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.2;
}

.my-schedule__day-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  min-height: 8px;
  margin-top: 2px;
}

.my-schedule__dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #5b3a9e;
}

.my-schedule__day-summary {
  margin-bottom: 16px;
  font-size: 14px;
  color: #8a8a8a;
}

.my-schedule__day-summary-date {
  color: #1a1a1a;
  font-weight: 400;
}

.my-schedule__day-summary-weekday {
  font-weight: 600;
}

.my-schedule__day-summary-rest {
  font-weight: 400;
}

.my-schedule__day-summary-meta {
  font-weight: 400;
  color: #8a8a8a;
}

.my-schedule__trainings {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.my-schedule__training {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  padding: 12px 14px;
  border: 1px solid #e8e8e8;
  border-radius: 8px;
  background: #fff;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.my-schedule__training:hover {
  border-color: #d4d4d4;
  background: #fafafa;
}

.my-schedule__training-thumb {
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  border-radius: 6px;
  object-fit: cover;
  background: #f3f3f4;
}

.my-schedule__training-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.my-schedule__training-title {
  font-size: 15px;
  font-weight: 600;
  color: #1a1a1a;
}

.my-schedule__training-name {
  font-size: 13px;
  color: #8a8a8a;
}

.my-schedule__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 36px 16px 20px;
}

.my-schedule__empty--modal {
  padding: 28px 12px;
}

.my-schedule__empty-message {
  margin: 0 0 20px;
  font-size: 15px;
  color: #8a8a8a;
}

.my-schedule__empty-cta {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: auto;
  min-width: 0;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
  padding: 8px 16px 8px 12px;
  border: 0;
  border-radius: 4px;
  background: #9768EB;
  color: #fff;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.02em;
  box-sizing: border-box;
  cursor: pointer;
}

.my-schedule__empty-cta:hover {
  background: #844de7;
}

.my-schedule__empty-cta-icon {
  display: block;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}

.my-schedule__empty-link {
  margin-top: 14px;
  height: auto;
  min-height: 0;
  max-height: none;
  padding: 0;
  border: 0;
  background: transparent;
  color: #9768EB;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
}

.my-schedule__empty-link:hover {
  opacity: 0.85;
}

.my-schedule__footer-btn {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  height: 40px;
  min-height: 40px;
  max-height: 40px;
  margin-top: 20px;
  padding: 12px 16px 12px 12px;
  border: 1px solid #9768EB;
  border-radius: 4px;
  background: #fff;
  color: #9768EB;
  font-size: 15px;
  font-weight: 500;
  box-sizing: border-box;
  cursor: pointer;
}

.my-schedule__footer-btn:hover {
  background: #f2edfc;
}

.my-schedule__month-labels,
.my-schedule__month-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.my-schedule__month-labels {
  margin-bottom: 8px;
  padding: 8px 0;
  background: #f7f7f8;
  border-radius: 6px;
}

.my-schedule__month-label {
  text-align: center;
  font-size: 12px;
  font-weight: 600;
  color: #8a8a8a;
}

.my-schedule__month-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 4px;
  width: 100%;
  min-width: 0;
  height: auto;
  min-height: 56px;
  max-height: none;
  padding: 8px 4px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
}

.my-schedule__month-cell.is-empty {
  cursor: default;
  pointer-events: none;
}

.my-schedule__month-cell.is-selected .my-schedule__month-day-number,
.my-schedule__month-cell.is-today .my-schedule__month-day-number {
  background: #f3f3f4;
  color: #1a1a1a;
}

.my-schedule__month-cell.is-selected .my-schedule__month-day-number {
  background: #f2edfc;
  color: #5b3a9e;
}

.my-schedule__month-day-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  font-size: 14px;
  font-weight: 600;
  color: #1a1a1a;
}

.my-schedule__modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.my-schedule__modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
}

.my-schedule__modal-panel {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: 648px;
  max-width: 100%;
  height: auto;
  max-height: calc(100vh - 48px);
  overflow: auto;
  padding: 20px 22px 24px;
  border: 1px solid #d1d1d1;
  border-radius: 4px;
  background: #fff;
  box-sizing: border-box;
  box-shadow: 0 4px 6px -2px rgba(16, 24, 40, 0.03), 0 12px 16px -4px rgba(16, 24, 40, 0.08);
}

.my-schedule__modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid #e8e8e8;
}

.my-schedule__modal-title {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  color: #1a1a1a;
}

.my-schedule__modal-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  min-height: 28px;
  max-height: 28px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #8a8a8a;
  cursor: pointer;
}

.my-schedule__modal-close:hover {
  background: #f3f3f4;
  color: #1a1a1a;
}

@media (max-width: 768px) {
  .my-schedule-wrap {
    padding: 8px 16px 28px;
  }

  .my-schedule {
    padding: 20px;
  }

  .my-schedule__controls {
    flex-wrap: wrap;
    height: auto;
    min-height: 0;
    max-height: none;
  }

  .my-schedule__day-name {
    font-size: 11px;
  }

  .my-schedule__day-strip {
    height: auto;
    min-height: 0;
  }

  .my-schedule__day-cell {
    height: auto;
    min-height: 72px;
    max-height: none;
    padding: 10px 1px 8px;
  }

  .my-schedule__training-thumb {
    flex-basis: 40px;
    width: 40px;
    height: 40px;
  }
}

@media (max-width: 480px) {
  .my-schedule {
    position: relative;
    padding: 12px;
    gap: 16px;
  }

  .my-schedule__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding-right: 108px;
  }

  .my-schedule__controls {
    align-items: center;
    gap: 8px;
  }

  .my-schedule__toggle {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 1;
    width: auto;
    height: 28px;
    margin-left: 0;
    padding: 3px;
  }

  .my-schedule__toggle-btn {
    flex: 0 0 auto;
    padding: 0 8px;
    font-size: 11px;
  }

  .my-schedule__nav {
    flex-wrap: wrap;
    row-gap: 6px;
  }

  .my-schedule__range {
    font-size: 12px;
    white-space: normal;
  }

  .my-schedule__month-nav {
    flex-wrap: wrap;
    row-gap: 6px;
  }

  .my-schedule__day-strip {
    gap: 2px;
    margin-bottom: 14px;
  }

  .my-schedule__day-cell {
    min-height: 60px;
    padding: 8px 0 6px;
    gap: 4px;
  }

  .my-schedule__day-name {
    font-size: 10px;
  }

  .my-schedule__day-number {
    font-size: 13px;
  }

  .my-schedule__month-cell {
    gap: 2px;
    min-height: 44px;
    padding: 4px 0;
  }

  .my-schedule__month-day-number {
    width: 26px;
    height: 26px;
    font-size: 12px;
  }

  .my-schedule__month-label {
    font-size: 10px;
  }

  .my-schedule__training-thumb {
    flex-basis: 36px;
    width: 36px;
    height: 36px;
  }
}

/* Shared first-paint placeholders for home dashboard cards. Pulse, don't
   show empty-state copy — that would read as "nothing scheduled" then jump. */

@keyframes home-skeleton-pulse {
  0%, 100% {
    opacity: 1;
  }

  50% {
    opacity: 0.45;
  }
}

.home-skeleton-block {
  display: block;
  background: #ececef;
  border-radius: 4px;
  animation: home-skeleton-pulse 1.2s ease-in-out infinite;
}

.home-skeleton-block--badge {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border-radius: 4px;
}

.home-skeleton-block--line {
  flex: 1 1 auto;
  height: 14px;
  max-width: 220px;
}

.home-skeleton-block--line-short {
  height: 12px;
  width: 96px;
}

.home-skeleton-block--preview {
  width: 100%;
  height: 140px;
  border-radius: 6px;
}

.home-skeleton-block--thumb {
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 6px;
}

.home-skeleton-block--day {
  flex: 1 1 0;
  height: 64px;
  border-radius: 6px;
}

.home-skeleton-block--card {
  height: 100px;
  width: 100%;
  border-radius: 6px;
}

.today-asks__skeleton-row,
.my-schedule__skeleton-training {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 12px 20px;
}

.today-asks__skeleton-preview {
  flex: 1 1 auto;
  min-width: 0;
  padding: 20px;
}

.my-schedule__skeleton-days {
  display: flex;
  gap: 8px;
}

.my-schedule__skeleton-training {
  padding: 12px 0;
}

.progress-insights__card--skeleton .home-skeleton-block--line {
  max-width: 88px;
  height: 28px;
}

/* ============================================================
   Upcoming session (athlete home — right column under Progress Insights)
   ============================================================ */

.upcoming-session {
  width: 100%;
  max-width: 492px;
  margin-left: 0;
  margin-right: 0;
  padding: 0;
  box-sizing: border-box;
}

.upcoming-session button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.upcoming-session button + button {
  margin-left: 0;
}

.upcoming-session__panel {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 492px;
  padding: 0;
  background: #ffffff;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  box-sizing: border-box;
  overflow: visible;
}

.upcoming-session__panel--booked-compact {
  height: 170px;
  min-height: 170px;
  max-height: 170px;
  overflow: visible;
}

.upcoming-session__panel--booked-compact .upcoming-session__body--no-join {
  flex: 1 1 auto;
  justify-content: center;
  min-height: 0;
  gap: 0;
  padding: 0 20px;
  overflow: visible;
}

.upcoming-session__panel--booked-compact .upcoming-session__session,
.upcoming-session__panel--booked-compact .upcoming-session__menu {
  overflow: visible;
}

.upcoming-session__panel--booked-compact .upcoming-session__menu-list {
  z-index: 30;
}

.upcoming-session__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px 0;
  box-sizing: border-box;
}

.upcoming-session__title {
  margin: 0;
  font-family: 'Nudista', sans-serif;
  font-size: 20px;
  font-weight: 600;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  color: #000000;
}

.upcoming-session__link {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
  gap: 14px;
  height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: #9768EB;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.02em;
  text-align: right;
  cursor: pointer;
}

.upcoming-session__link:hover {
  opacity: 0.85;
}

.upcoming-session__link-icon {
  flex: 0 0 auto;
  font-size: 12px;
  line-height: 1;
  color: inherit;
}

.upcoming-session__skeleton {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px;
  box-sizing: border-box;
}

.upcoming-session__skeleton .home-skeleton-block--line {
  max-width: 280px;
}

.upcoming-session__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 24px 20px 28px;
  text-align: center;
  box-sizing: border-box;
}

.upcoming-session__empty-text {
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.3;
  color: #4f4f4f;
}

.upcoming-session__schedule {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 0;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
  padding: 0 16px;
  border: 1px solid #9768EB;
  border-radius: 4px;
  background: transparent;
  color: #9768EB;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.02em;
  box-sizing: border-box;
  cursor: pointer;
  white-space: nowrap;
}

.upcoming-session__schedule:hover {
  opacity: 0.9;
}

.upcoming-session__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 16px 20px 20px;
  box-sizing: border-box;
}

.upcoming-session__body--no-join {
  gap: 0;
}

.upcoming-session__session {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  box-sizing: border-box;
}

.upcoming-session__accent {
  flex: 0 0 4px;
  width: 4px;
  height: 84px;
  border-radius: 5px;
  background: #9768EB;
}

.upcoming-session__info {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  flex: 1 1 auto;
}

.upcoming-session__heading {
  position: relative;
  display: block;
  min-width: 0;
  min-height: 20px;
  padding-right: 36px;
}

.upcoming-session__name {
  display: block;
  min-width: 0;
  font-family: 'Nudista', sans-serif;
  font-size: 18px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  color: #000000;
}

.upcoming-session__details {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.upcoming-session__detail {
  display: flex;
  align-items: center;
  gap: 8px;
}

.upcoming-session__detail-icon {
  display: block;
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  min-width: 16px;
  max-width: 16px;
  min-height: 16px;
  max-height: 16px;
  flex-shrink: 0;
  object-fit: contain;
}

.upcoming-session__detail-value {
  font-size: 14px;
  font-weight: 600;
  color: #1a1a1a;
  white-space: nowrap;
}

.upcoming-session__detail-label {
  font-size: 12px;
  font-weight: 400;
  color: #1a1a1a;
}

.upcoming-session__divider {
  display: inline-block;
  width: 1px;
  height: 16px;
  background-color: #d1d1d1;
}

.upcoming-session__join {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
  padding: 0 16px;
  border: none;
  border-radius: 4px;
  background: #9768EB;
  color: #ffffff;
  font-size: 14px;
  font-weight: 600;
  box-sizing: border-box;
  cursor: pointer;
  white-space: nowrap;
}

.upcoming-session__join:hover {
  opacity: 0.92;
}

.upcoming-session__menu {
  position: absolute;
  top: -2px;
  right: 0;
  flex: 0 0 auto;
}

.upcoming-session__kebab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  min-width: 24px;
  max-width: 24px;
  height: 24px;
  min-height: 24px;
  max-height: 24px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
  color: #6d6d6d;
  font-size: 16px;
  cursor: pointer;
}

.upcoming-session__kebab:hover {
  background: #f6f6f7;
}

.upcoming-session__menu-list {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  z-index: 20;
  min-width: 200px;
  padding: 0;
  background: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

.upcoming-session__menu-list.hidden {
  display: none;
}

.upcoming-session__menu-item {
  display: block;
  width: 100%;
  padding: 14px 18px;
  border: none;
  background: transparent;
  text-align: left;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  color: #1a1a1a;
  cursor: pointer;
}

.upcoming-session__menu-item + .upcoming-session__menu-item {
  border-top: 1px solid #e0e0e0;
}

.upcoming-session__menu-item:hover {
  background: #f6f6f7;
}

.upcoming-session__menu-item--danger {
  color: #e8503a;
}

@media (max-width: 768px) {
  .upcoming-session {
    max-width: none;
  }

  .upcoming-session__panel {
    max-width: none;
  }

  .upcoming-session__header {
    padding: 14px 16px 0;
  }

  .upcoming-session__body {
    padding: 14px 16px 16px;
  }

  .upcoming-session__empty {
    padding: 20px 16px 24px;
  }
}

@media (max-width: 480px) {
  .upcoming-session__header {
    padding: 12px 12px 0;
  }

  .upcoming-session__title {
    font-size: 18px;
  }

  .upcoming-session__body {
    padding: 12px 12px 14px;
  }

  .upcoming-session__empty {
    padding: 16px 12px 20px;
  }

  .upcoming-session__detail {
    flex-wrap: wrap;
    row-gap: 2px;
  }

  .upcoming-session__detail-value {
    white-space: normal;
  }

  .upcoming-session__menu-list {
    min-width: 0;
    width: max-content;
    max-width: 80vw;
  }

  .upcoming-session__schedule {
    width: 100%;
  }
}

/* ============================================================
   BodyMAP card (athlete home — between Upcoming Session and Progress Insights)
   ============================================================ */

.bodymap-card {
  width: 100%;
  max-width: 492px;
  margin-left: 0;
  margin-right: 0;
  padding: 0;
  box-sizing: border-box;
}

.bodymap-card button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.bodymap-card button + button {
  margin-left: 0;
}

.bodymap-card__panel {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 492px;
  height: 310px;
  min-height: 310px;
  max-height: 310px;
  padding: 0;
  background: #ffffff;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  box-sizing: border-box;
  overflow: hidden;
}

.bodymap-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px 0;
  box-sizing: border-box;
}

.bodymap-card__title {
  margin: 0;
  font-family: 'Nudista', sans-serif;
  font-size: 20px;
  font-weight: 600;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  color: #000000;
}

.bodymap-card__skeleton {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px;
  box-sizing: border-box;
}

.bodymap-card__skeleton .home-skeleton-block--line {
  max-width: 280px;
}

.bodymap-card__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  min-height: 0;
  gap: 12px;
  padding: 28px 24px 32px;
  text-align: center;
  box-sizing: border-box;
}

.bodymap-card__empty-title {
  margin: 0;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.3;
  color: #4f4f4f;
}

.bodymap-card__empty-description {
  margin: 0;
  max-width: 340px;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 18px;
  color: #6d6d6d;
}

.bodymap-card__start {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 0;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
  margin-top: 4px;
  padding: 0 16px;
  border: 1px solid #9768EB;
  border-radius: 4px;
  background: transparent;
  color: #9768EB;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.02em;
  box-sizing: border-box;
  cursor: pointer;
  white-space: nowrap;
}

.bodymap-card__start:hover {
  opacity: 0.9;
}

.bodymap-card__body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  gap: 16px;
  padding: 12px 20px 16px;
  box-sizing: border-box;
}

.bodymap-card__content {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex: 1 1 auto;
  min-height: 0;
  gap: 65px;
  padding-left: 0;
  padding-right: 0;
  min-width: 0;
  box-sizing: border-box;
}

.bodymap-card__ring {
  position: relative;
  flex: 0 0 auto;
  width: 180px;
  height: 180px;
}

.bodymap-card__ring-svg {
  display: block;
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}

.bodymap-card__ring-track {
  stroke: #e8e8e8;
}

.bodymap-card__ring-progress {
  transition: stroke-dashoffset 0.35s ease;
}

.bodymap-card__ring-label {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  pointer-events: none;
  text-align: center;
}

.bodymap-card__ring-total {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #6d6d6d;
  margin-bottom: 16px;
}

.bodymap-card__ring-score {
  font-family: 'Nudista', sans-serif;
  font-size: 36px;
  font-weight: 500;
  line-height: 1;
  color: #000000;
  margin-bottom: 10px;
}

.bodymap-card__ring-band {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  color: #6d6d6d;
}

.bodymap-card__legend {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 0 0 auto;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
  min-width: 0;
}

.bodymap-card__legend-item {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.bodymap-card__legend-dot {
  flex: 0 0 auto;
  width: 10px;
  height: 10px;
  border-radius: 50%;
}

.bodymap-card__legend-dot--poor {
  background: #F04438;
}

.bodymap-card__legend-dot--moderate {
  background: #E5A633;
}

.bodymap-card__legend-dot--good {
  background: #12B76A;
}

.bodymap-card__legend-name {
  flex: 0 0 auto;
  min-width: 72px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.2;
  color: #6d6d6d;
}

.bodymap-card__legend-range {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  color: #000000;
}

.bodymap-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-width: 0;
}

.bodymap-card__hint {
  margin: 0;
  min-width: 0;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  font-style: normal;
  line-height: 20px;
  letter-spacing: 0;
  color: #6d6d6d;
}

.bodymap-card__update {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
  height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: #9768EB;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.02em;
  cursor: pointer;
  white-space: nowrap;
}

.bodymap-card__update:hover {
  opacity: 0.85;
}

@media (max-width: 768px) {
  .bodymap-card {
    max-width: none;
  }

  .bodymap-card__panel {
    max-width: none;
  }

  .bodymap-card__header {
    padding: 14px 16px 0;
  }

  .bodymap-card__body {
    padding: 12px 16px 14px;
  }

  .bodymap-card__empty {
    padding: 24px 16px 28px;
  }

  .bodymap-card__content {
    gap: 16px;
    justify-content: center;
  }

  .bodymap-card__legend {
    display: none;
  }

  .bodymap-card__ring {
    width: 160px;
    height: 160px;
  }

  .bodymap-card__ring-score {
    font-size: 32px;
  }
}

@media (max-width: 480px) {
  .bodymap-card__header {
    padding: 12px 12px 0;
  }

  .bodymap-card__title {
    font-size: 18px;
  }

  .bodymap-card__body {
    padding: 10px 12px 12px;
  }

  .bodymap-card__empty {
    padding: 20px 12px 24px;
  }

  .bodymap-card__content {
    flex-direction: column;
    align-items: center;
  }

  .bodymap-card__footer {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    text-align: center;
  }

  .bodymap-card__update {
    justify-content: center;
  }

  .bodymap-card__start {
    width: 100%;
  }
}

/* Reschedule / cancel modals for the upcoming session card */

@keyframes upcoming-reschedule-spin {
  to {
    transform: rotate(360deg);
  }
}

.upcoming-reschedule {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 640px;
  max-width: calc(100vw - 32px);
  max-height: calc(100vh - 48px);
  max-height: calc(100dvh - 48px);
  overflow: hidden;
  background: #ffffff;
  border-radius: 4px;
  box-shadow: 0 8px 32px rgba(16, 24, 40, 0.18);
  font-family: 'Nudista', sans-serif;
}

.upcoming-reschedule *,
.upcoming-reschedule *::before,
.upcoming-reschedule *::after {
  box-sizing: border-box;
}

.upcoming-reschedule__close {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  position: absolute;
  top: 16px;
  right: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  box-shadow: none;
  color: #6d6d6d;
  cursor: pointer;
}

.upcoming-reschedule__close:hover {
  background: rgba(0, 0, 0, 0.06);
  color: #6d6d6d;
}

.upcoming-reschedule__title {
  flex-shrink: 0;
  margin: 0 40px 0 0;
  padding: 24px 24px 0;
  font-weight: 600;
  font-size: 18px;
  line-height: 28px;
  letter-spacing: 0;
  text-transform: none;
  color: #000000;
}

.upcoming-reschedule__body {
  display: flex;
  flex-direction: column;
  gap: 20px;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 20px 24px 0;
}

.upcoming-reschedule__summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
}

.upcoming-reschedule__summary-item {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.upcoming-reschedule__summary-icon {
  flex-shrink: 0;
  color: #6d6d6d;
}

.upcoming-reschedule__summary-text {
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: -0.14px;
  color: #6d6d6d;
}

.upcoming-reschedule__divider {
  flex-shrink: 0;
  height: 1px;
  margin: 0 -24px;
  background: #e7e7e7;
}

.upcoming-reschedule__section {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}

.upcoming-reschedule__section-title {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  letter-spacing: -0.16px;
  color: #000000;
}

.upcoming-reschedule__tz {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: -0.14px;
  color: #6d6d6d;
}

.upcoming-reschedule__tz-icon {
  flex-shrink: 0;
}

.upcoming-reschedule__picker {
  display: flex;
  flex-shrink: 0;
  border: 1px solid #d1d1d1;
  border-radius: 4px;
  overflow: hidden;
}

.upcoming-reschedule__collapsed {
  display: none;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 20px 12px;
}

.upcoming-reschedule__collapsed-date {
  font-size: 16px;
  font-weight: 600;
  color: #101828;
}

.upcoming-reschedule__collapsed-change {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  height: auto;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #9768eb;
  cursor: pointer;
}

.upcoming-reschedule__cal {
  flex: 0 0 280px;
  padding: 16px 20px 20px;
}

.upcoming-reschedule__cal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 4px;
}

.upcoming-reschedule__cal-month {
  font-size: 16px;
  font-weight: 600;
  color: #101828;
}

.upcoming-reschedule__cal-nav {
  display: flex;
}

.upcoming-reschedule__cal-arrow {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  box-shadow: none;
  color: #6d6d6d;
  cursor: pointer;
}

.upcoming-reschedule__cal-arrow:hover:not(:disabled) {
  background: rgba(0, 0, 0, 0.06);
}

.upcoming-reschedule__cal-arrow:disabled {
  border-color: transparent;
  background: transparent;
  color: #d1d1d1;
  cursor: default;
}

.upcoming-reschedule__dow {
  display: flex;
}

.upcoming-reschedule__dow-cell {
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  font-size: 14px;
  font-weight: 500;
  color: #344054;
}

.upcoming-reschedule__weeks {
  display: flex;
  flex-direction: column;
}

.upcoming-reschedule__week {
  display: flex;
}

.upcoming-reschedule__day {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: 40px;
  margin: 0;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
}

.upcoming-reschedule__day.is-past {
  cursor: default;
}

.upcoming-reschedule__day:disabled {
  border-color: transparent;
  background: transparent;
  cursor: default;
}

.upcoming-reschedule__day.is-available {
  border-color: #e0d5f5;
  background: #f2edfc;
}

.upcoming-reschedule__day.is-selected {
  border-color: transparent;
  background: #9768eb;
}

.upcoming-reschedule__day.is-selected .upcoming-reschedule__day-num {
  color: #ffffff;
}

.upcoming-reschedule__day-num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 600;
  color: #101828;
}

.upcoming-reschedule__day-num.is-other {
  color: #d1d1d1;
}

.upcoming-reschedule__day-num.is-past {
  color: #d1d1d1;
}

.upcoming-reschedule__day-num.is-weekend {
  color: #888888;
}

.upcoming-reschedule__day-num.is-today {
  background: #f6f6f6;
  color: #888888;
}

.upcoming-reschedule__vdivider {
  flex-shrink: 0;
  width: 1px;
  align-self: stretch;
  background: #eaecf0;
}

.upcoming-reschedule__slots {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-width: 0;
  padding: 16px 20px 20px;
}

.upcoming-reschedule__slots-day {
  margin: 0 0 12px;
  font-size: 14px;
  font-weight: 600;
  color: #101828;
}

.upcoming-reschedule__spinner-wrap {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  padding: 32px 0;
}

.upcoming-reschedule__spinner {
  display: block;
  width: 24px;
  height: 24px;
  border: 2.5px solid #f2edfc;
  border-top-color: #9768eb;
  border-radius: 50%;
  animation: upcoming-reschedule-spin 0.6s linear infinite;
}

.upcoming-reschedule__slots-empty {
  margin: auto;
  padding: 24px 0;
  text-align: center;
  font-size: 14px;
  line-height: 20px;
  color: #667085;
}

.upcoming-reschedule__slots-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 340px;
  overflow-y: auto;
}

.upcoming-reschedule__slot {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: flex;
  align-items: center;
  gap: 8px;
  height: auto;
  flex-shrink: 0;
  margin: 0;
  padding: 14px 16px;
  border: 1px solid #d1d1d1;
  border-radius: 6px;
  background: #ffffff;
  box-shadow: none;
  color: #101828;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  text-align: left;
  cursor: pointer;
}

.upcoming-reschedule__slot.is-selected {
  border-color: #9768eb;
  background: #f2edfc;
  color: #9768eb;
}

.upcoming-reschedule__slot-check {
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}

.upcoming-reschedule__error {
  flex-shrink: 0;
  margin: 0;
  padding: 12px 24px 0;
  font-size: 14px;
  line-height: 20px;
  color: #f04438;
}

.upcoming-reschedule__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  flex-shrink: 0;
  padding: 12px 24px 24px;
}

.upcoming-reschedule__btn {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 48px;
  margin: 0;
  padding: 11px 20px;
  border-radius: 4px;
  box-shadow: none;
  cursor: pointer;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  letter-spacing: -0.32px;
  white-space: nowrap;
}

.upcoming-reschedule__btn--ghost {
  border: 1px solid #d1d1d1;
  background-color: #f6f6f6;
  color: #000000;
}

.upcoming-reschedule__btn--ghost:hover:not(:disabled) {
  background-color: #ebebeb;
}

.upcoming-reschedule__btn--ghost:disabled {
  border-color: #d1d1d1;
  color: #000000;
  cursor: not-allowed;
  opacity: 0.5;
}

.upcoming-reschedule__btn--primary {
  border: 0;
  background-color: #9768eb;
  color: #ffffff;
}

.upcoming-reschedule__btn--primary:hover:not(:disabled) {
  background-color: #7355b5;
}

.upcoming-reschedule__btn--primary:disabled {
  border-color: transparent;
  background-color: #c3adf2;
  color: #ffffff;
  cursor: not-allowed;
}

.upcoming-reschedule__btn-spinner {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: upcoming-reschedule-spin 0.6s linear infinite;
}

@media (hover: hover) {
  .upcoming-reschedule__slot:not(.is-selected):hover {
    border-color: #9768eb;
  }
}

@media (min-width: 641px) {
  .upcoming-reschedule__section {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

@media (max-width: 640px) {
  .upcoming-reschedule__picker {
    flex-direction: column;
  }

  .upcoming-reschedule__cal {
    flex: 0 0 auto;
  }

  .upcoming-reschedule__vdivider {
    width: auto;
    height: 1px;
  }

  .upcoming-reschedule__slots-list {
    max-height: 220px;
  }

  .upcoming-reschedule__picker.is-collapsed .upcoming-reschedule__collapsed {
    display: flex;
  }

  .upcoming-reschedule__picker.is-collapsed .upcoming-reschedule__cal,
  .upcoming-reschedule__picker.is-collapsed .upcoming-reschedule__vdivider,
  .upcoming-reschedule__picker.is-collapsed .upcoming-reschedule__slots-day {
    display: none;
  }
}

@media (max-width: 480px) {
  .upcoming-reschedule__title {
    padding: 20px 20px 0;
  }

  .upcoming-reschedule__body {
    padding: 16px 20px 0;
  }

  .upcoming-reschedule__divider {
    margin: 0 -20px;
  }

  .upcoming-reschedule__error {
    padding: 12px 20px 0;
  }

  .upcoming-reschedule__actions {
    padding: 12px 20px 20px;
  }
}

.upcoming-cancel {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 512px;
  max-width: calc(100vw - 32px);
  max-height: calc(100vh - 32px);
  overflow: hidden;
  background: #ffffff;
  border-radius: 4px;
  box-shadow: 0 8px 32px rgba(16, 24, 40, 0.18);
  font-family: 'Nudista', sans-serif;
}

.upcoming-cancel *,
.upcoming-cancel *::before,
.upcoming-cancel *::after {
  box-sizing: border-box;
}

.upcoming-cancel__close {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  position: absolute;
  top: 16px;
  right: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  box-shadow: none;
  color: #6d6d6d;
  cursor: pointer;
}

.upcoming-cancel__close:hover {
  background: rgba(0, 0, 0, 0.06);
  color: #6d6d6d;
}

.upcoming-cancel__title {
  flex-shrink: 0;
  margin: 0 40px 0 0;
  padding: 24px 24px 0;
  font-weight: 600;
  font-size: 18px;
  line-height: 28px;
  letter-spacing: 0;
  text-transform: none;
  color: #000000;
}

.upcoming-cancel__body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 16px 24px;
}

.upcoming-cancel__prompt {
  margin: 0;
  font-size: 14px;
  font-weight: 400;
  line-height: 22px;
  color: #4f4f4f;
}

.upcoming-cancel__prompt b {
  font-weight: 600;
}

.upcoming-cancel__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.upcoming-cancel__label {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  letter-spacing: 0;
  text-transform: none;
  color: #4f4f4f;
}

.upcoming-cancel__optional {
  font-weight: 400;
  color: #6d6d6d;
}

.upcoming-cancel__hint {
  position: relative;
  display: inline-flex;
  align-items: center;
  color: #888888;
  cursor: pointer;
}

.upcoming-cancel__hint:hover .upcoming-cancel__tooltip,
.upcoming-cancel__hint:focus-within .upcoming-cancel__tooltip {
  opacity: 1;
}

.upcoming-cancel__tooltip {
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  z-index: 50;
  width: 220px;
  margin-left: -110px;
  padding: 8px 12px;
  border-radius: 8px;
  background: #1c1b3a;
  color: #ffffff;
  font-size: 12px;
  font-weight: 400;
  line-height: 18px;
  text-align: left;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s ease;
}

.upcoming-cancel__tooltip::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -5px;
  border: 5px solid transparent;
  border-top-color: #1c1b3a;
}

.upcoming-cancel__reason {
  width: 100%;
  height: 110px;
  padding: 10px 14px;
  border: 1px solid #d1d1d1;
  border-radius: 4px;
  background: #ffffff;
  box-shadow: none;
  color: #000000;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  line-height: 22px;
  outline: none;
  resize: vertical;
}

.upcoming-cancel__reason:focus {
  border-color: #9768eb;
}

.upcoming-cancel__reason::placeholder {
  color: #888888;
}

.upcoming-cancel__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  flex-shrink: 0;
  padding: 12px 24px 24px;
}

.upcoming-cancel__btn {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  margin: 0;
  padding: 11px 20px;
  border-radius: 4px;
  box-shadow: none;
  cursor: pointer;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  letter-spacing: -0.32px;
  white-space: nowrap;
}

.upcoming-cancel__btn--ghost {
  border: 1px solid #d1d1d1;
  background-color: #f6f6f6;
  color: #000000;
}

.upcoming-cancel__btn--ghost:hover {
  background-color: #ebebeb;
}

.upcoming-cancel__btn--danger {
  border: 0;
  background-color: #f04438;
  color: #ffffff;
}

.upcoming-cancel__btn--danger:hover {
  background-color: #c0392b;
}

@media (max-width: 768px) {
  .upcoming-cancel__reason {
    font-size: 16px;
  }
}

@media (max-width: 480px) {
  .upcoming-cancel__title {
    padding: 20px 20px 0;
  }

  .upcoming-cancel__body {
    padding: 12px 20px;
  }

  .upcoming-cancel__actions {
    padding: 12px 20px 20px;
  }
}

.view-flex.athlete-profile-page {
  -webkit-box-flex: 1;
  -webkit-flex: 1 0 auto;
  -moz-box-flex: 1;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  background-color: #f6f6f7;
}

.athlete-profile-page .athlete-profile {
  box-sizing: border-box;
  font-family: 'Nudista', sans-serif;
  margin: 0 auto;
  max-width: 688px;
  padding: 32px 24px 48px;
  position: relative;
  width: 100%;
}

.athlete-profile-page .athlete-profile *,
.athlete-profile-page .athlete-profile *::before,
.athlete-profile-page .athlete-profile *::after {
  box-sizing: border-box;
}

.athlete-profile__back {
  align-items: center;
  background: none;
  border: 0;
  color: #9768EB;
  cursor: pointer;
  display: inline-flex;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 600;
  gap: 8px;
  letter-spacing: -0.02em;
  line-height: 100%;
  margin: 0 0 30px;
  padding: 0;
  text-align: right;
  text-decoration: none;
  vertical-align: middle;
}

.athlete-profile__back:hover {
  color: #5f4499;
}

.athlete-profile__back-arrow {
  display: block;
  flex-shrink: 0;
  height: 20px;
  width: 20px;
}

.athlete-profile__back-label {
  display: block;
  line-height: 20px;
  position: relative;
  top: 1px;
}

.athlete-profile__title {
  color: #000000;
  font-family: 'Nudista', sans-serif;
  font-size: 30px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 100%;
  margin: 0 0 20px;
}

.athlete-profile__tabs {
  border-bottom: 1px solid #e5e5e5;
  display: flex;
  gap: 24px;
  margin-bottom: 28px;
  max-width: 640px;
}

.athlete-profile__tab {
  background: none;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  color: #6d6d6d;
  cursor: pointer;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 20px;
  margin-bottom: -1px;
  min-width: 0;
  padding: 12px 4px 4px;
  text-transform: none;
  transition: color 0.15s ease, border-color 0.15s ease;
}

.athlete-profile__tab--active {
  border-bottom-color: #7355b5;
  color: #7355b5;
}

.athlete-profile__tab:hover {
  color: #7355b5;
}

.athlete-profile__error {
  background: #fdecec;
  border-radius: 6px;
  color: #f04438;
  font-size: 14px;
  margin-bottom: 16px;
  padding: 10px 14px;
}

.athlete-profile__toast {
  align-items: center;
  background: #35354B;
  border-radius: 4px;
  bottom: 32px;
  box-shadow: 0 8px 24px rgba(16, 24, 40, 0.24);
  box-sizing: border-box;
  display: flex;
  flex-direction: row;
  gap: 32px;
  height: 44px;
  justify-content: flex-start;
  left: 50%;
  max-width: calc(100vw - 32px);
  min-width: 0;
  padding: 8px 8px 8px 16px;
  pointer-events: auto;
  position: fixed;
  transform: translateX(-50%);
  width: max-content;
  z-index: 900;
}

.athlete-profile__toast-check {
  display: block;
  flex-shrink: 0;
  height: 20px;
  object-fit: contain;
  width: 20px;
}

.athlete-profile__toast-message {
  color: #ffffff;
  flex: 0 1 auto;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 100%;
  white-space: nowrap;
}

.athlete-profile__toast-close {
  -webkit-appearance: none;
  appearance: none;
  align-items: center;
  background: none;
  border: 0;
  box-shadow: none;
  color: #ffffff;
  cursor: pointer;
  display: inline-flex;
  flex-shrink: 0;
  height: 28px !important;
  justify-content: center;
  letter-spacing: 0;
  line-height: 1;
  margin: 0;
  min-height: 0 !important;
  min-width: 0 !important;
  padding: 0;
  text-transform: none;
  width: 28px !important;
}

.athlete-profile__toast-close img {
  display: block;
  height: 16px;
  object-fit: contain;
  width: 16px;
}

.athlete-profile__photo {
  align-items: center;
  display: flex;
  gap: 20px;
  margin-bottom: 24px;
}

.athlete-profile__avatar {
  background: #f0f0f0;
  border-radius: 50%;
  flex-shrink: 0;
  height: 96px;
  object-fit: cover;
  width: 96px;
}

.athlete-profile__photo-actions {
  align-items: center;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 4px;
  justify-content: flex-start;
}

.athlete-profile__upload-btn {
  align-items: center;
  background: #f6f6f7;
  border: 1px solid #b0b0b0;
  border-radius: 4px;
  color: #000000;
  cursor: pointer;
  display: inline-flex;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 600;
  gap: 8px;
  height: 36px;
  justify-content: flex-end;
  letter-spacing: -0.02em;
  line-height: 100%;
  max-height: 36px;
  min-height: 36px;
  opacity: 1;
  padding: 8px 16px;
  text-align: right;
  text-transform: none;
  vertical-align: middle;
  white-space: nowrap;
  width: 125px;
}

.athlete-profile__upload-btn:hover:not(:disabled) {
  border-color: #909090;
}

.athlete-profile__upload-btn:disabled {
  cursor: default;
  opacity: 0.65;
}

.athlete-profile__delete-btn {
  background: none;
  border: 0;
  color: #f04438;
  cursor: pointer;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 100%;
  margin-left: 16px;
  padding: 8px 2px;
  text-align: left;
  text-transform: none;
  vertical-align: middle;
}

.athlete-profile__photo-hint {
  color: #6d6d6d;
  flex-basis: 100%;
  font-size: 12px;
  margin: 0;
}

.athlete-profile__file-input {
  display: none;
}

.athlete-profile__card {
  background: #ffffff;
  border: 1px solid #e5e5e5;
  border-radius: 10px;
  max-width: 640px;
  padding: 24px;
}

.athlete-profile__card--spaced {
  margin-top: 16px;
}

.athlete-profile__card--physical {
  min-height: 204px;
}

.athlete-profile__row {
  display: flex;
  gap: 16px;
  margin-bottom: 18px;
}

.athlete-profile__row:last-child {
  margin-bottom: 0;
}

.athlete-profile__row--full .athlete-profile__field {
  flex: 1 1 100%;
}

.athlete-profile__field {
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  min-width: 0;
}

.athlete-profile__field--full {
  flex: 1 1 100%;
}

.athlete-profile__group-select {
  position: relative;
  width: 100%;
}

.athlete-profile__group-select--open .athlete-profile__group-select-trigger {
  border-color: #7355b5;
}

.athlete-profile__group-select--open .athlete-profile__group-caret {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%237355B5' d='M1.4.6L6 5.2 10.6.6 12 2 6 8 0 2z'/%3E%3C/svg%3E");
  transform: translateY(-50%) rotate(180deg);
}

.athlete-profile__group-select-trigger {
  align-items: center;
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  gap: 8px;
  min-height: 40px;
  padding: 6px 36px 6px 12px;
  position: relative;
  text-align: left;
  text-transform: none;
  transition: border-color 0.15s ease;
  width: 100%;
}

.athlete-profile__group-tags {
  display: flex;
  flex: 1 1 auto;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
}

.athlete-profile__group-tag {
  align-items: center;
  background: #F2EDFC;
  border-radius: 16px;
  color: #7355b5;
  display: inline-flex;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-style: normal;
  font-weight: 600;
  height: 24px;
  justify-content: center;
  letter-spacing: normal;
  line-height: 18px;
  padding: 2px 8px;
  text-align: center;
  white-space: nowrap;
}

.athlete-profile__group-placeholder {
  color: #6d6d6d;
  flex: 1 1 auto;
  font-size: 14px;
}

.athlete-profile__group-caret {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236d6d6d' d='M1.4.6L6 5.2 10.6.6 12 2 6 8 0 2z'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
  height: 8px;
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  transition: transform 0.15s ease;
  width: 12px;
}

.athlete-profile__group-dropdown {
  background: #ffffff;
  border: 1px solid #e5e5e5;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
  max-height: 280px;
  overflow-y: auto;
  padding: 6px;
  position: static;
  width: 100%;
}

.athlete-profile__group-option {
  align-items: center;
  background: none;
  border: 0;
  border-radius: 4px;
  color: #000000;
  cursor: pointer;
  display: flex;
  flex-shrink: 0;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 400;
  gap: 8px;
  height: 36px;
  letter-spacing: normal;
  margin: 0;
  max-height: 36px;
  min-height: 36px;
  min-width: 0;
  padding: 8px 10px;
  text-align: left;
  text-transform: none;
  width: 100%;
}

.athlete-profile__group-option + .athlete-profile__group-option {
  margin-left: 0;
}

.athlete-profile__group-option > span:last-child {
  min-width: 0;
  text-align: left;
}

.athlete-profile__group-option:hover,
.athlete-profile__group-option--selected {
  background: rgba(115, 85, 181, 0.08);
}

.athlete-profile__group-checkbox {
  border: 1.5px solid #7355b5;
  border-radius: 4px;
  flex-shrink: 0;
  height: 18px;
  position: relative;
  width: 18px;
}

.athlete-profile__group-checkbox--checked::after {
  border: solid #7355b5;
  border-width: 0 2px 2px 0;
  content: '';
  height: 9px;
  left: 5px;
  position: absolute;
  top: 1px;
  transform: rotate(45deg);
  width: 5px;
}

.athlete-profile__label {
  color: #6d6d6d;
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 6px;
}

.athlete-profile__input {
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 6px;
  color: #000000;
  font-size: 16px;
  height: 40px;
  padding: 0 12px;
  width: 100%;
}

.athlete-profile__input::-webkit-input-placeholder {
  color: #b0b0b0;
  opacity: 1;
}

.athlete-profile__input:-moz-placeholder {
  color: #b0b0b0;
  opacity: 1;
}

.athlete-profile__input::-moz-placeholder {
  color: #b0b0b0;
  opacity: 1;
}

.athlete-profile__input:-ms-input-placeholder {
  color: #b0b0b0;
  opacity: 1;
}

.athlete-profile__input::placeholder {
  color: #b0b0b0;
  opacity: 1;
}

.athlete-profile__input:focus {
  border-color: #7355b5;
  outline: none;
}

.athlete-profile__input:disabled {
  background: #f6f6f7;
  color: #6d6d6d;
  cursor: not-allowed;
}

.athlete-profile__input[readonly] {
  cursor: pointer;
}

.athlete-profile__input--invalid {
  border-color: #f04438;
}

.athlete-profile__input--unit {
  flex: 0 1 259px;
  max-width: 259px;
  width: 259px;
}

.athlete-profile input.athlete-profile__input,
.athlete-profile input.athlete-profile__input[type='text'],
.athlete-profile input.athlete-profile__input[type='email'],
.athlete-profile input.athlete-profile__input[type='number'],
.athlete-profile select.athlete-profile__input {
  border-radius: 6px;
}

.athlete-profile input.athlete-profile__input[type='text'],
.athlete-profile input.athlete-profile__input[type='email'],
.athlete-profile input.athlete-profile__input[type='number'] {
  border: 1px solid #d1d1d1;
  padding: 0 12px;
}

.athlete-profile input.athlete-profile__input[type='text']:focus,
.athlete-profile input.athlete-profile__input[type='email']:focus,
.athlete-profile input.athlete-profile__input[type='number']:focus {
  border-color: #7355b5;
}

.athlete-profile input.athlete-profile__input[type='text'].athlete-profile__input--invalid,
.athlete-profile input.athlete-profile__input[type='email'].athlete-profile__input--invalid,
.athlete-profile input.athlete-profile__input[type='number'].athlete-profile__input--invalid {
  border-color: #f04438;
}

.athlete-profile input.athlete-profile__input[type='number'] {
  -moz-appearance: textfield;
  appearance: textfield;
}

.athlete-profile input.athlete-profile__input[type='number']::-webkit-outer-spin-button,
.athlete-profile input.athlete-profile__input[type='number']::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.athlete-profile__select-wrap {
  position: relative;
  width: 100%;
}

.athlete-profile__select {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236d6d6d' d='M1.4.6L6 5.2 10.6.6 12 2 6 8 0 2z'/%3E%3C/svg%3E");
  background-position: right 12px center;
  background-repeat: no-repeat;
  padding-right: 36px;
}

.athlete-profile__select:disabled {
  background-color: #f6f6f7;
  color: #6d6d6d;
  cursor: not-allowed;
}

.athlete-profile__select.ng-empty {
  color: #b0b0b0;
}

.athlete-profile__select option {
  color: #000000;
}

.athlete-profile__unit-group {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.athlete-profile__unit-field {
  align-items: center;
  display: flex;
  gap: 8px;
}

.athlete-profile__unit {
  color: #6d6d6d;
  font-size: 14px;
  font-weight: 500;
}

.athlete-profile__choice-group {
  display: flex;
  gap: 8px;
}

.athlete-profile__choice {
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 6px;
  color: #6d6d6d;
  cursor: pointer;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  height: 40px;
  letter-spacing: -0.02em;
  line-height: 100%;
  max-height: 40px;
  min-height: 40px;
  min-width: 72px;
  padding: 0 16px;
  text-transform: none;
}

.athlete-profile__choice:hover:not(.athlete-profile__choice--selected) {
  border-color: #909090;
}

.athlete-profile__choice--selected {
  background: #f3eeff;
  border-color: #5f4499;
  color: #000000;
}

.athlete-profile__account-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.athlete-profile__account-btn {
  justify-content: center;
  text-align: center;
  width: auto;
}

.athlete-profile__field-error {
  color: #f04438;
  font-size: 12px;
  margin-top: 4px;
}

.athlete-profile__field-hint {
  color: #6d6d6d;
  font-size: 12px;
  margin-top: 4px;
}

.athlete-profile__actions {
  display: flex;
  justify-content: flex-end;
  max-width: 640px;
  margin-top: 24px;
  position: relative;
}

.athlete-profile__save {
  background: #C3ADF2;
  border: 0;
  border-radius: 4px;
  color: #ffffff;
  cursor: pointer;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 100%;
  min-width: 148px;
  padding: 12px 22px;
  text-transform: none;
  transition: background 0.15s ease;
}

.athlete-profile__save:hover:not(:disabled) {
  background: #b19ae6;
}

.athlete-profile__save:disabled {
  cursor: default;
  opacity: 0.7;
}

@media (max-width: 768px) {
  .athlete-profile-page .athlete-profile {
    padding: 24px 16px 40px;
  }

  .athlete-profile__title {
    font-size: 28px;
  }

  .athlete-profile__photo {
    align-items: flex-start;
    flex-direction: column;
  }

  .athlete-profile__row {
    flex-direction: column;
  }

  .athlete-profile__input--unit {
    max-width: 259px;
    width: 259px;
  }
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items) .athlete-profile__toast {
  left: calc(50% + 240px / 2);
  max-width: calc(100vw - 240px - 32px);
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items.is-collapsed) .athlete-profile__toast {
  left: calc(50% + 70px / 2);
  max-width: calc(100vw - 70px - 32px);
}

@media (max-width: 768px) {
  .athlete-profile__toast,
  .main-view:has(> .menu-content .profile-menu--sidebar.has-items) .athlete-profile__toast,
  .main-view:has(> .menu-content .profile-menu--sidebar.has-items.is-collapsed) .athlete-profile__toast {
    bottom: 16px;
    gap: 16px;
    left: 50%;
    max-width: calc(100vw - 24px);
  }
}

.catalog-feature {
  position: relative;
  background-color: #cfcfcf;
  height: 400px;
}

.catalog-feature .feature-container {
  background-size: cover;
  background-position-x: center;
  background-position-y: top;
  min-height: 400px;
  position: relative;
}

.catalog-feature .feature-container.running-man {
  background-image: url("/images/program_catalog_background.png");
}

.catalog-feature .feature-container.running-man .feature-content {
  line-height: 0.9;
  width: 400px;
}

.catalog-feature .feature-container.running-man .message-text {
  font-size: 24px;
  margin-top: 15px;
}

.catalog-feature .feature-container .feature-content {
  position: absolute;
  top: 40px;
  left: 80px;
  width: 400px;
  color: #efefef;
  font-weight: 300;
  line-height: 0.95;
}

.catalog-feature .feature-container .feature-content h2 {
  margin: 0;
  padding: 0;
  font-weight: 300;
}

.catalog-feature .feature-container .feature-content p {
  margin: 0;
  padding: 0;
}

.catalog-feature .feature-container .feature-content h2,
.catalog-feature .feature-container .feature-content .title-text {
  font-size: 55px;
  text-transform: uppercase;
}

.catalog-feature .feature-container .feature-content p,
.catalog-feature .feature-container .feature-content .message-text {
  margin-top: 2px;
  font-size: 18px;
  line-height: 1.3;
}

.catalog-feature .feature-container .feature-button {
  position: absolute;
  bottom: 35px;
  left: 80px;
  color: #efefef;
  font-weight: 300;
}

.catalog-feature .markers {
  position: absolute;
  bottom: 0;
  height: 40px;
  width: 100%;
}

.catalog-feature .markers .marker {
  background-color: #fff;
  border-radius: 50%;
  margin: 6px;
  height: 10px;
  width: 10px;
}

.catalog-feature .markers .marker.active {
  background-color: #41baed;
}

.catalog-selected {
  padding: 35px;
}

@media (max-width: 768px) {
  .catalog-selected {
    padding: 20px;
  }
}

.catalog-selected .title-container {
  height: 100px;
}

@media (max-width: 768px) {
  .catalog-selected .title-container {
    height: auto;
    margin-bottom: 10px;
    flex-direction: column-reverse;
  }
}

.catalog-selected .title-container .title {
  font-size: 26px;
  line-height: 26px;
}

.catalog-selected .title-container .name {
  font-size: 26px;
}

.catalog-selected .title-container .return-link {
  margin-top: 20px;
  width: 120px;
  cursor: pointer;
}

@media (max-width: 768px) {
  .catalog-selected .title-container .return-link {
    margin-top: 0px;
    margin-bottom: 0px;
  }
}

.catalog-selected .title-container .return-link > div {
  min-height: 30px;
  line-height: 20px;
}

.catalog-selected .title-container .return-link > div:hover {
  text-decoration: underline;
}

.catalog-selected .title-container .return-link > div > i {
  margin-left: 5px;
  line-height: 30px;
}

.catalog-selected .detail-container {
  margin-top: 20px;
  margin-bottom: 20px;
}

@media (max-width: 768px) {
  .catalog-selected .detail-container {
    flex-direction: column;
  }
}

.catalog-selected .detail-container .info-row-header {
  font-size: 12px;
  font-weight: 600;
  max-width: 260px;
}

.catalog-selected .detail-container .info-row-header > div {
  height: 20px;
  width: 130px;
  text-align: center;
  text-transform: uppercase;
}

.catalog-selected .detail-container .info-row {
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  max-width: 260px;
}

.catalog-selected .detail-container .info-row > div {
  height: 90px;
  width: 130px;
}

.catalog-selected .detail-container .info-row > div > div {
  text-align: center;
}

.catalog-selected .detail-container .info-row > div + div {
  border-left: 1px solid #ccc;
}

.catalog-selected .detail-container .info-row .info {
  font-size: 26px;
}

.catalog-selected .detail-container .info-row .label {
  font-size: 16px;
}

.catalog-selected .detail-container .description-row {
  font-size: 12px;
  margin: 20px 0;
  max-width: 400px;
}

@media (max-width: 768px) {
  .catalog-selected .detail-container .description-row {
    max-width: 100%;
    margin-bottom: 5px;
  }
}

.catalog-selected .detail-container .description-row .label {
  font-weight: 600;
  margin: 10px 0;
  text-transform: uppercase;
}

.catalog-selected .detail-container .button-container {
  margin: 20px 0;
  width: 200px;
}

@media (max-width: 768px) {
  .catalog-selected .detail-container .button-container {
    width: 100%;
  }
}

.catalog-selected .detail-container .button-container button {
  width: 100%;
}

.catalog-selected .detail-container .button-container button + button {
  margin-top: 20px;
  margin-left: 0;
}

.catalog-selected .detail-container .sample-container {
  margin-left: 10px;
}

@media (max-width: 768px) {
  .catalog-selected .detail-container .sample-container {
    margin-left: 0;
  }
}

.catalog-selected .detail-container .sample-container .video-label {
  font-size: 12px;
  font-weight: 600;
  max-width: 300px;
}

.catalog-selected .detail-container .sample-container .video-label > div {
  height: 20px;
  text-transform: uppercase;
}

.catalog-selected .detail-container .sample-container .video-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  max-height: 239px;
  max-width: 425px;
  min-height: 239px;
}

.catalog-selected .detail-container .sample-container .video-container > div {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.catalog-selected .detail-container .sample-container .video-container .missing-media {
  border: 1px solid #ccc;
  color: #ccc;
  font-size: 24px;
  font-weight: 300;
  width: 99%;
}

.exercise-selected {
  padding: 35px;
}

.exercise-selected .title-container {
  height: 100px;
}

@media (max-width: 768px) {
  .exercise-selected .title-container {
    height: auto;
    margin-bottom: 10px;
    flex-direction: column-reverse;
  }
}

.exercise-selected .title-container .title {
  font-size: 26px;
  line-height: 26px;
}

.exercise-selected .title-container .name {
  font-size: 18px;
}

.exercise-selected .title-container .return-link {
  margin-top: 20px;
  width: 120px;
  cursor: pointer;
}

@media (max-width: 768px) {
  .exercise-selected .title-container .return-link {
    margin-top: 0px;
    margin-bottom: 10px;
  }
}

.exercise-selected .title-container .return-link > div {
  min-height: 30px;
  line-height: 20px;
}

.exercise-selected .title-container .return-link > div:hover {
  text-decoration: underline;
}

.exercise-selected .title-container .return-link > div > i {
  margin-left: 5px;
  line-height: 30px;
}

.exercise-selected .detail-container {
  margin-top: 20px;
  margin-bottom: 20px;
}

@media (max-width: 768px) {
  .exercise-selected .detail-container {
    flex-direction: column;
  }
}

.exercise-selected .detail-container .info-row-header {
  font-size: 12px;
  font-weight: 600;
  max-width: 400px;
}

.exercise-selected .detail-container .info-row-header > div {
  min-height: 20px;
  min-width: 130px;
  text-align: center;
  text-transform: uppercase;
}

.exercise-selected .detail-container .info-row {
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  max-width: 400px;
}

.exercise-selected .detail-container .info-row > div {
  min-height: 90px;
  min-width: 130px;
}

.exercise-selected .detail-container .info-row > div > div {
  text-align: center;
}

.exercise-selected .detail-container .info-row > div + div {
  border-left: 1px solid #ccc;
}

.exercise-selected .detail-container .info-row .info {
  font-size: 26px;
}

.exercise-selected .detail-container .info-row .label {
  font-size: 14px;
}

.exercise-selected .detail-container .description-row {
  font-size: 12px;
  margin: 20px 0;
  max-width: 400px;
}

@media (max-width: 768px) {
  .exercise-selected .detail-container .description-row {
    max-width: 100%;
    margin-bottom: 5px;
  }
}

.exercise-selected .detail-container .description-row .label {
  font-weight: 600;
  margin: 10px 0;
  text-transform: uppercase;
}

.exercise-selected .detail-container .button-container {
  margin: 20px 0;
  width: 200px;
}

@media (max-width: 768px) {
  .exercise-selected .detail-container .button-container {
    width: 100%;
  }
}

.exercise-selected .detail-container .button-container button {
  width: 100%;
}

.exercise-selected .detail-container .button-container button + button {
  margin-top: 20px;
  margin-left: 0;
}

.exercise-selected .detail-container .sample-container {
  margin-left: 10px;
}

@media (max-width: 768px) {
  .exercise-selected .detail-container .sample-container {
    margin-left: 0;
  }
}

.exercise-selected .detail-container .sample-container .video-label {
  font-size: 12px;
  font-weight: 600;
  max-width: 300px;
}

.exercise-selected .detail-container .sample-container .video-label > div {
  height: 20px;
  text-transform: uppercase;
}

.exercise-selected .detail-container .sample-container .video-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  max-height: 239px;
  max-width: 425px;
  min-height: 239px;
}

.exercise-selected .detail-container .sample-container .video-container > div {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.exercise-selected .detail-container .sample-container .video-container .missing-media {
  border: 1px solid #ccc;
  color: #ccc;
  font-size: 24px;
  font-weight: 300;
  width: 99%;
}

.exercise-selected .exercise-info-container {
  -webkit-flex: 0 0 400px;
  -ms-flex: 0 0 400px;
  flex: 0 0 400px;
}

.exercise-selected .sample-container {
  -webkit-flex: 1 0 350px;
  -ms-flex: 1 0 350px;
  flex: 1 0 350px;
}

.exercise-selected .sample-container .file-input-wrapper {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  -webkit-align-items: center;
  align-items: center;
  margin-top: 5px;
}

.exercise-selected .sample-container .file-input-wrapper > button {
  min-height: 35px;
  max-height: 35px;
}

.exercise-selected .sample-container .file-input-wrapper > input[type="file"] {
  opacity: 0 !important;
  width: 1px !important;
  height: 1px !important;
}

.exercise-selected .form-fields .week-selection {
  min-height: 60px;
  margin-bottom: 25px;
  cursor: default;
}

.exercise-selected .form-fields .week-selection > div {
  min-width: 80px;
  line-height: 50px;
  font-size: 14px;
  border-bottom: 2px solid #9768EB;
  border-top: 2px solid #9768EB;
  text-align: center;
  text-transform: uppercase;
  color: #9768EB;
}

.exercise-selected .form-fields .week-selection > div:first-child {
  border-left: 2px solid #9768EB;
  border-top-left-radius: 6px;
  border-bottom-left-radius: 6px;
}

.exercise-selected .form-fields .week-selection > div:last-child {
  border-right: 2px solid #9768EB;
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
}

.exercise-selected .form-fields .week-selection > div:hover:not(.active) {
  color: #efefef;
  cursor: pointer;
  background-color: #9bd7ea;
}

.exercise-selected .form-fields .week-selection > div.active {
  color: #fefefe;
  cursor: default;
  background-color: #9768EB;
}

.exercise-selected .form-fields label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  position: relative;
  min-height: 50px;
  padding: 2px;
}

.exercise-selected .form-fields label span {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: center;
  justify-content: center;
  min-width: 120px;
  font-size: 18px;
  letter-spacing: 0.32px;
  line-height: 27px;
}

.exercise-selected .form-fields label input {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  -webkit-align-self: stretch;
  align-self: stretch;
  border: none;
  font-size: 21px;
  letter-spacing: 0.4px;
}

.exercise-selected .form-fields label select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  -webkit-align-self: stretch;
  align-self: stretch;
  border: none;
  border-radius: 0;
  outline: 0;
  font-size: 21px;
  text-indent: 3px;
}

.exercise-selected .form-fields label select:focus {
  outline: 0;
}

.exercise-selected .form-fields label select:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #000;
}

.exercise-selected .form-fields label select + i.icon-caret-down {
  position: absolute;
  top: 25px;
  right: 20px;
  color: #D9DBDC;
  font-size: 8px;
}

.program-header-container {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.program-edit-header {
  min-height: 85px;
  margin-bottom: 30px !important;
}

.program-type-selection {
  min-height: 50px;
}

.program-type-selection > .type-item {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  max-height: 40px;
  min-height: 40px;
  height: 40px;
  border-bottom: 2px solid transparent;
  font-size: 18px;
  color: #ddd;
  cursor: pointer;
}

.program-type-selection > .type-item .pill {
  font-size: 13px;
  color: #75777A;
  letter-spacing: 1px;
  line-height: 14px;
  font-weight: bold;
  display: inline-block;
  line-height: 25px;
  vertical-align: top;
  margin-left: 3px;
  padding: 0 10px;
  white-space: nowrap;
  background: #AFB1B4;
  color: #FFFFFF;
  border-radius: 5px;
  text-transform: uppercase;
}

.program-type-selection > .type-item.active {
  border-color: #9768EB;
  color: #75787b;
  cursor: default;
}

.program-type-selection > .type-item:hover:not(.active) {
  border-color: #9768EB;
}

.program-type-selection > .type-item + .type-item {
  margin-left: 30px;
}

.program-type-selection > .copy-controls {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  margin-top: 8px;
}

.program-schedule-container {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  -webkit-align-items: flex-end;
  align-items: flex-end;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  margin-right: 5px;
  margin-bottom: 5px;
}

.program-schedule-container button {
  max-height: 45px;
  min-height: 45px;
  height: 45px;
  max-width: 130px;
  min-width: 130px;
  width: 130px;
}

.program-edit {
  margin-top: 20px;
  margin-bottom: 0px;
}

.program-edit .program-strategy-container {
  margin-bottom: 20px;
}

.program-edit .program-strategy-container .program-strategy {
  font-size: 24px;
  margin-bottom: 20px;
}

.program-edit .program-strategy-container .program-strategy i {
  -webkit-flex: 0 30px;
  -ms-flex: 0 30px;
  flex: 0 30px;
  width: 20px;
  text-align: center;
}

.program-edit .program-strategy-container .program-strategy .strategy-name {
  -webkit-flex: 1 auto;
  -ms-flex: 1 auto;
  flex: 1 auto;
  margin-left: 15px;
}

.program-edit .program-strategy-container .program-strategy .strategy-action {
  -webkit-flex: 0 180px;
  -ms-flex: 0 180px;
  flex: 0 180px;
  max-height: 35px;
  min-height: 35px;
  height: 35px;
  font-size: 12px;
  text-align: center;
  text-transform: uppercase;
  line-height: 30px;
  padding: 0px;
}

.program-edit .program-strategy-container + .program-strategy-container {
  margin-top: 20px;
}

.program-edit .program-technique {
  font-size: 20px;
  color: #efefef;
}

.program-edit .program-technique .counter {
  height: 100%;
  width: 40px;
  line-height: 45px;
  flex: 0 0 auto;
}

.program-edit .program-technique .name {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
}

.program-edit .program-technique .name > span {
  margin-left: 15px;
  line-height: 24px;
  padding: 4px 0;
}

.program-edit .program-technique .action {
  margin-right: 30px;
  font-size: 12px;
  font-weight: 600;
  color: #9768EB;
  cursor: pointer;
}

.program-edit .program-technique .action .icon-plus {
  font-size: 8px;
}

.program-edit .program-technique .action > span {
  margin-left: 5px;
  text-transform: uppercase;
}

.program-edit .program-exercise-container {
  min-height: 80px;
}

.program-edit .program-exercise-container > div {
  background-color: #f9f9f9;
  border-radius: 0px;
  margin: 1px 0;
  min-height: 80px;
  width: 100%;
}

.program-edit .program-exercise-container > div.active-item {
  z-index: 1;
}

.program-edit .program-exercise-container > div.active-item .program-exercise .drag-icon {
  visibility: hidden;
}

.program-edit .program-exercise-container > div.active-item .program-exercise .actions {
  visibility: hidden;
}

.program-edit .program-exercise-container > div:first-child .sort-icons .icon:first-child {
  visibility: hidden;
}

.program-edit .program-exercise-container > div:last-child .sort-icons .icon:last-child {
  visibility: hidden;
}

.program-edit .program-exercise-container .program-note {
  margin-bottom: 20px;
  margin-left: 90px;
  max-width: 400px;
}

.program-edit .program-exercise-container .program-exercise {
  min-height: 80px;
  min-width: 600px;
  width: 100%;
}

@media (max-width: 768px) {
  .program-edit .program-exercise-container .program-exercise {
    min-width: 0;
  }
}

.program-edit .program-exercise-container .program-exercise .drag-icon {
  max-height: 28px;
  min-height: 28px;
  height: 28px;
  max-width: 85px;
  min-width: 85px;
  width: 85px;
  color: #bbb;
  cursor: pointer;
  font-size: 19px;
  text-align: center;
}

.program-edit .program-exercise-container .program-exercise .sort-icons {
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  max-width: 85px;
  min-width: 85px;
  width: 85px;
  color: #bbb;
  text-align: center;
}

.program-edit .program-exercise-container .program-exercise .sort-icons .icon {
  color: #dedede;
  font-size: 14px;
  cursor: pointer;
}

.program-edit .program-exercise-container .program-exercise .sort-icons .icon:hover {
  color: #9768EB;
}

.program-edit .program-exercise-container .program-exercise .info {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.program-edit .program-exercise-container .program-exercise .info .title {
  font-size: 19px;
  font-weight: 400;
}

.program-edit .program-exercise-container .program-exercise .info .attributes {
  gap: 5px 25px;
}

.program-edit .program-exercise-container .program-exercise .info .attributes > div {
  margin-top: 0;
  width: auto;
}

.program-edit .program-exercise-container .program-exercise .info .attributes > div span:first-child {
  margin-right: 5px;
  font-weight: 600;
}

.program-edit .program-exercise-container .program-exercise .actions {
  max-height: 38px;
  min-height: 38px;
  height: 38px;
  max-width: 180px;
  min-width: 180px;
  width: 180px;
  color: #ddd;
  font-size: 19px;
}

.program-edit-footer {
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  margin: 15px 30px;
}

.whiteboard {
  min-width: 640px;
  width: 100%;
}

.whiteboard > section {
  margin: 15px 30px;
}

.whiteboard-schedule {
  width: 100%;
}

.whiteboard-schedule .whiteboard-program {
  background-color: #ffffff;
  padding: 30px 0 15px;
}

.whiteboard-program {
  max-height: 140px;
  min-height: 140px;
  height: 140px;
  background-color: #f9f9f9;
  padding: 30px 30px 15px;
}

.whiteboard-program .name {
  font-size: 30px;
  line-height: 30px;
  min-height: 30px;
}

.whiteboard-program .origin {
  font-size: 26px;
  line-height: 30px;
  min-height: 30px;
}

.whiteboard-program .edit {
  margin-top: 5px;
  min-height: 25px;
}

.whiteboard-program .edit span {
  font-size: 10px;
  margin-left: 8px;
  text-transform: uppercase;
}

.whiteboard-date span {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
}

.whiteboard-date .date-input {
  max-height: 40px;
  min-height: 40px;
  height: 40px;
  max-width: 130px;
  min-width: 130px;
  width: 130px;
  margin-bottom: 15px;
}

.whiteboard-date .date-input input {
  border: 1px solid #bbb;
  border-right: none;
  border-top-left-radius: 6px;
  border-bottom-left-radius: 6px;
  width: 100px;
  height: 30px;
  line-height: 30px;
  text-indent: 5px;
  outline: 0;
}

.whiteboard-date .date-input .input-icon {
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  max-width: 30px;
  min-width: 30px;
  width: 30px;
  background-color: #9768EB;
  border: 1px solid #9768EB;
  border-left: none;
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
}

.whiteboard-date .date-input .input-icon i.fa {
  font-size: 16px;
}

.whiteboard-date .date-disabled .input-icon {
  background-color: #cdcdcd;
  border: 1px solid #cdcdcd;
}

.week-list {
  max-height: 60px;
  min-height: 60px;
  height: 60px;
  background-color: #f9f9f9;
  padding: 10px 30px;
}

.week-list .week-item {
  font-size: 16px;
  margin-right: 20px;
  min-height: 28px;
}

.week-list .week-item.active {
  border-bottom: 2px solid #9768EB;
}

.week-list .week-item:hover:not(.active) {
  cursor: pointer;
}

.week-list .week-copy {
  -webkit-flex: 1 1 0%;
  -ms-flex: 1 1 0%;
  flex: 1 1 0%;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}

.day-list {
  max-height: 45px;
  min-height: 45px;
  height: 45px;
  margin: 20px 0;
}

.day-list .day-item {
  -webkit-justify-content: center;
  justify-content: center;
  border-top: 1px solid #9768EB;
  border-bottom: 1px solid #9768EB;
  color: #9768EB;
  font-size: 12px;
  min-height: 45px;
  min-width: 80px;
  text-transform: uppercase;
}

.day-list .day-item.active {
  background-color: #9768EB;
  color: #fefefe;
}

.day-list .day-item:hover:not(.active) {
  background-color: rgba(65, 187, 231, 0.5);
  color: #ffffff;
  cursor: pointer;
}

.day-list .day-item:first-child {
  border-left: 1px solid #9768EB;
  border-top-left-radius: 6px;
  border-bottom-left-radius: 6px;
}

.day-list .day-item:last-child {
  border-right: 1px solid #9768EB;
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
}

.day-list-schedule .day-item {
  background-color: #bbb;
  border-radius: 6px;
}

.day-list-schedule .day-item .drag-icon {
  max-height: 20px;
  min-height: 20px;
  height: 20px;
  max-width: 30px;
  min-width: 30px;
  width: 30px;
  cursor: move;
  font-size: 12px;
  text-align: center;
}

.day-list-schedule .day-item .name {
  text-transform: uppercase;
}

.day-list-schedule .day-item + .day-item {
  margin-left: 10px;
}

.program-section {
  max-height: 45px;
  min-height: 45px;
  height: 45px;
}

.program-section.accept-drop {
  background-color: #fff;
  border: 1px solid #999;
  border-radius: 6px;
  padding: 10px;
}

.program-section.accept-drop .action-with-icon {
  display: none;
}

.program-section.accept-drop .name > i {
  display: none;
}

.program-section .name {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  font-size: 18px;
}

.program-section .name span {
  margin-right: 8px;
}

.program-section .action {
  -webkit-justify-content: center;
  justify-content: center;
  max-width: 110px;
  min-width: 110px;
  width: 110px;
  font-size: 12px;
}

.program-section .action span {
  margin-right: 8px;
  text-transform: uppercase;
}

.program-section .action i.fa {
  font-size: 15px;
}

.program-section-placeholder > div {
  -webkit-justify-content: center;
  justify-content: center;
  border: 1px dashed #bbb;
  border-radius: 6px;
  margin: 4px;
  width: 100%;
}

.program-section-placeholder > div span.text {
  color: #bbb;
  font-size: 14px;
  font-weight: 600;
  text-transform: uppercase;
}

.program-exercise-container {
  min-height: 86px;
}

.program-exercise-container > div {
  background-color: #f9f9f9;
  border-radius: 6px;
  margin: 2px;
  min-height: 80px;
  width: 100%;
}

.program-exercise-container > div.active-item {
  z-index: 1;
}

.program-exercise-container > div.active-item .program-exercise .drag-icon {
  visibility: hidden;
}

.program-exercise-container > div.active-item .program-exercise .actions {
  visibility: hidden;
}

.program-exercise-container .add-exercise {
  -webkit-justify-content: center;
  justify-content: center;
  color: #aaa;
  font-size: 16px;
  border: 2px dashed #CDD3D7;
  background-color: #EFEFEF;
}

.program-exercise-container .add-exercise span {
  font-weight: 600;
  letter-spacing: 1px;
  font-size: 13px;
  color: #CDD3D7;
  text-transform: uppercase;
}

.program-exercise-container .program-note {
  margin-bottom: 20px;
  margin-left: 90px;
  max-width: 400px;
}

.program-exercise-container .program-exercise {
  min-height: 80px;
  min-width: 600px;
  width: 100%;
}

@media (max-width: 768px) {
  .program-exercise-container .program-exercise {
    min-width: 0;
  }
}

.program-exercise-container .program-exercise .drag-icon {
  max-height: 28px;
  min-height: 28px;
  height: 28px;
  max-width: 85px;
  min-width: 85px;
  width: 85px;
  color: #bbb;
  cursor: pointer;
  font-size: 19px;
  text-align: center;
}

.program-exercise-container .program-exercise .info {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.program-exercise-container .program-exercise .info .title {
  font-size: 19px;
  font-weight: 600;
}

.program-exercise-container .program-exercise .info .attributes {
  gap: 5px 25px;
}

.program-exercise-container .program-exercise .info .attributes > div span:first-child {
  margin-right: 5px;
  font-weight: 600;
}

.program-exercise-container .program-exercise .actions {
  color: #ddd;
  font-size: 19px;
}

.accept-drop-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  background-color: #cdcdcd;
  background-color: rgba(225, 225, 225, 0.5);
  border-radius: 6px;
  color: #fff;
  font-size: 24px;
}

.accept-drop-container > span {
  text-align: center;
}

.accept-drop-container.hidden {
  display: none;
}

.sort-order-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  background-color: #cdcdcd;
  background-color: rgba(225, 225, 225, 0.5);
  border-radius: 6px;
  color: #fff;
  font-size: 24px;
}

.sort-order-container > span {
  text-align: center;
}

.sort-order-container.hidden {
  display: none;
}

.schedule-selected-athletes {
  margin-left: 50px;
  margin-bottom: auto;
}

.schedule-selected-athletes span {
  font-size: 13px;
  color: #75777A;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  font-weight: bold;
  line-height: 18px;
  margin-bottom: 8px;
  margin-top: 12px;
}

.schedule-selected-athletes .athlete-names {
  max-width: 600px;
}

.schedule-selected-athletes .athlete-names .athlete-names-more {
  color: #9768EB;
  cursor: pointer;
  margin-left: 5px;
}

.bulk-schedule-divider {
  margin-top: 50px;
  text-align: center;
  width: 47px;
}

.bulk-schedule-divider i {
  color: #D7D9DA;
  font-size: 20px;
}

.whiteboard-footer {
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}

.calendar-menu {
  margin: 20px 0;
}

.calendar-menu > div {
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  color: #a0a4a8;
  font-size: 20px;
  line-height: 1;
  font-weight: 500;
}

@media only screen and (max-width: 1053px) {
  .calendar-menu > div {
    font-size: 16px;
  }
}

.calendar-menu > div.active {
  border-bottom: 2px solid #9768EB;
  cursor: default;
}

.calendar-menu > div:not(.active):hover {
  border-bottom: 2px solid #a0a4a8;
  cursor: pointer;
}

.calendar-menu > div + div {
  margin-left: 40px;
}

.calendar-parent {
  position: relative;
}

.calendar-month {
  -webkit-flex: 1 0 690px;
  -ms-flex: 1 0 690px;
  flex: 1 0 690px;
  max-width: 690px;
  min-width: 690px;
  width: 690px;
  margin: 1px 0 0;
}

.calendar-month .calendar-header {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  border: 1px solid #ccc;
  border-top: 0;
  font-size: 18px;
  margin: -1px 0 0 -1px;
}

.calendar-month .calendar-header .fa {
  font-size: 24px;
  padding: 10px;
  box-sizing: content-box;
}

.calendar-month .calendar-header > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: center;
  justify-content: center;
}

.calendar-month .calendar-header > div:first-child {
  margin-right: auto;
  max-width: 20px;
  min-width: 20px;
  width: 20px;
  cursor: pointer;
}

.calendar-month .calendar-header > div:last-child {
  margin-left: auto;
  max-width: 20px;
  min-width: 20px;
  width: 20px;
  cursor: pointer;
}

.calendar-month .calendar-header .year-container {
  position: relative;
}

.calendar-month .calendar-header .year-container select.year-select {
  -webkit-appearance: menulist;
  -moz-appearance: menulist;
  appearance: menulist;
  -webkit-flex: 0.1 0 0;
  -ms-flex: 0.1 0 0;
  flex: 0.1 0 0;
  background-color: transparent;
  border: none;
  border-radius: 0;
  margin: 1px;
  outline: 0;
  color: #808080;
  text-indent: 0px;
}

.calendar-month .calendar-header .year-container select.year-select:focus {
  outline: 0;
}

.calendar-month .calendar-header .year-container select.year-select:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #000;
}

.calendar-month .calendar-header .year-container select.year-select::-ms-expand {
  display: none;
}

.calendar-month .calendar-header .year-container select.year-select + i.icon-caret-down {
  position: absolute;
  top: 10px;
  right: -12px;
  color: #D9DBDC;
  font-size: 6px;
  pointer-events: none;
}

.calendar-month .week-day-labels {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-content: flex-start;
  align-content: flex-start;
  -webkit-align-items: flex-start;
  align-items: flex-start;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  background-color: #dfdfdf;
  color: #c0c0c0;
}

.calendar-month .week-day-labels.left > div {
  -webkit-align-items: flex-start;
  align-items: flex-start;
  padding-left: 6px;
}

.calendar-month .week-day-labels > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  max-width: 99.5px;
  min-width: 99.5px;
  width: 99.5px;
  border: 1px solid transparent;
  color: #999;
  font-size: 13px;
  margin: -1px 0 0 -1px;
}

.calendar-month .week-day-labels > div .accept-drop-container {
  max-width: 97.5px;
  min-width: 97.5px;
  width: 97.5px;
  right: initial;
  left: initial;
}

.calendar-month .week-day-labels div:first-child {
  border-left-color: #ccc;
}

.calendar-month .week-day-labels div:last-child {
  border-right-color: #ccc;
}

.calendar-month .calendar-days {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-content: flex-start;
  align-content: flex-start;
  -webkit-align-items: flex-start;
  align-items: flex-start;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.calendar-month .calendar-days .calendar-day {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  max-height: 80px;
  min-height: 80px;
  height: 80px;
  max-width: 99.5px;
  min-width: 99.5px;
  width: 99.5px;
  border: 1px solid #ccc;
  font-size: 18px;
  margin: -1px 0 0 -1px;
  padding: 8px 12px;
}

.calendar-month .calendar-days .calendar-day.day-activities {
  background: #00B96D;
  color: #fff;
}

.calendar-month .calendar-days .calendar-day.current-day {
  background-color: #ffffff;
  border-bottom: 6px solid #9768EB;
}

.calendar-month .calendar-days .calendar-day.program-range {
  background-color: #ffffff;
}

.calendar-month .calendar-days .calendar-day.empty {
  background-color: #efefef;
}

.calendar-month .calendar-days .calendar-day .calendar-day-number {
  margin-bottom: 5px;
  font-size: 16px;
}

.calendar-month .calendar-days .calendar-day .calendar-day-number > .month-abbrev {
  font-size: 15px;
  line-height: 28px;
}

.calendar-month .calendar-days .calendar-day .calendar-day-concern,
.calendar-month .calendar-days .calendar-day .calendar-day-existing {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  max-width: 85px;
  min-width: 85px;
  width: 85px;
  min-height: 15px;
  font-size: 11px;
}

.calendar-month .calendar-days .calendar-day .calendar-day-concern i,
.calendar-month .calendar-days .calendar-day .calendar-day-existing i {
  margin: 2px;
}

.calendar-month .calendar-days .calendar-day .calendar-day-concern {
  margin-top: 10px;
}

.calendar-month .calendar-days .calendar-day .calendar-day-scheduled {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  max-width: 85px;
  min-width: 85px;
  width: 85px;
  font-size: 9px;
}

@media (max-width: 768px) {
  .calendar-month .calendar-days .calendar-day .calendar-day-scheduled {
    max-width: 100%;
    min-width: unset;
  }
}

.calendar-month .calendar-days .calendar-day .calendar-day-scheduled i {
  margin: 2px;
}

.calendar-month.input-ctl {
  -webkit-flex: 1 0 280px;
  -ms-flex: 1 0 280px;
  flex: 1 0 280px;
  max-width: 280px;
  min-width: 280px;
  width: 280px;
  box-shadow: 6px 6px 18px 0px #4a4a4a;
  background-color: #fff;
  position: absolute;
  top: 40px;
  left: 0;
  z-index: 10;
  margin: 1px 0;
  font-weight: 500;
}

.calendar-month.input-ctl.right {
  left: inherit;
  right: 0;
}

.calendar-month.input-ctl .calendar-header {
  max-height: 35px;
  min-height: 35px;
  height: 35px;
  border-top: 1px solid #ccc;
  font-size: 14px;
  cursor: default;
}

.calendar-month.input-ctl .calendar-header .icon {
  cursor: pointer;
}

.calendar-month.input-ctl .calendar-week-header {
  -webkit-align-content: center;
  align-content: center;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 28px;
  min-height: 28px;
  height: 28px;
  background-color: #aaa;
}

.calendar-month.input-ctl .calendar-week-header > div {
  max-width: 35px;
  min-width: 35px;
  width: 35px;
  color: #dfdfdf;
  cursor: default;
  font-weight: 600;
  text-align: center;
  border: 2.1275px solid transparent;
  margin: 2px;
}

.calendar-month.input-ctl .calendar-days {
  margin-bottom: 5px;
}

.calendar-month.input-ctl .calendar-days .calendar-day {
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 35px;
  min-height: 35px;
  height: 35px;
  max-width: 35px;
  min-width: 35px;
  width: 35px;
  margin: 2px;
  border: 2.1275px solid transparent;
  border-radius: 100%;
  padding: 0;
}

.calendar-month.input-ctl .calendar-days .calendar-day.empty {
  border-radius: 0;
  background-color: transparent;
}

.calendar-month.input-ctl .calendar-days .calendar-day.current-day {
  border: 2.1275px solid #9768EB;
}

.calendar-month.input-ctl .calendar-days .calendar-day.current-range {
  background-color: #def5fd;
  border-radius: 0;
}

.calendar-month.input-ctl .calendar-days .calendar-day.current-range:hover {
  border-radius: 100%;
}

.calendar-month.input-ctl .calendar-days .calendar-day.current-range .calendar-day-number {
  color: #8d8d8d;
}

.calendar-month.input-ctl .calendar-days .calendar-day:not(.empty) {
  cursor: pointer;
}

.calendar-month.input-ctl .calendar-days .calendar-day:not(.empty):hover {
  background-color: #eee;
}

.calendar-month.input-ctl .calendar-days .calendar-day .calendar-day-number {
  padding: 1px;
  text-align: center;
  margin-bottom: 0;
}

.calendar-day-info {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  max-width: 300px;
  min-width: 300px;
  width: 300px;
}

.calendar-day-info .day-date {
  border-bottom: 1px solid #ccc;
  font-size: 13px;
  font-weight: 600;
  margin: 35px 0 20px;
  min-height: 40px;
  text-transform: uppercase;
}

.calendar-day-info .day-date > .icon-calendar {
  background-color: #9768EB;
  border: 1px solid #9768EB;
  border-radius: 3px;
  padding: 5px;
  margin-left: 7px;
  line-height: 28px;
  font-size: 15px;
  color: #efefef;
}

.calendar-day-info .day-program {
  max-width: 295px;
  min-width: 295px;
  width: 295px;
  letter-spacing: 0.75px;
  margin-bottom: 25px;
  font-size: 16px;
  font-weight: 500;
}

.calendar-day-info .day-program .light-grey-text {
  color: #A7A8A7;
}

.calendar-day-info .day-program.action {
  cursor: pointer;
}

.week-main-wrapper {
  padding: 0 !important;
}

.week-wrapper {
  padding: 0 !important;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  min-height: 425px;
  /* height: 425; */
}

.week-wrapper.small {
  min-height: 225px;
  /* height: 225px; */
}

.week-wrapper .week-button-column {
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  font-size: 36px;
  font-weight: 700;
  min-width: 20px;
}

.week-wrapper .week-button-column > div {
  cursor: pointer;
}

@media only screen and (min-width: 1054px) {
  .week-wrapper .week-button-column .fa-angle-left {
    margin-left: -25px;
  }

  .week-wrapper .week-button-column .fa-angle-right {
    margin-right: -25px;
  }
}

.week-wrapper .week-day-column {
  border-left: 1px solid #ddd;
  min-width: 140px;
}

.week-wrapper .week-day-column .day-number {
  -webkit-align-self: flex-start;
  align-self: flex-start;
  color: #aaa;
  font-size: 16px;
  margin: 10px 15px;
}

.week-wrapper .week-day-column .week-day-info-container {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  max-width: 100%;
  padding-bottom: 5px;
}

.week-wrapper .week-day-column .week-day-info-container:not(:empty) {
  border-bottom: 4px solid #aaa;
}

.week-wrapper .week-day-column .week-day-info-container .week-day-program {
  width: 130px;
  max-width: 100%;
  background-color: #fefefe;
  border-radius: 6px;
  color: #bbb;
  font-size: 13px;
  font-weight: 200;
  margin: 4px 0;
  padding: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-direction: row-reverse;
}

@media (max-width: 768px) {
  .week-wrapper .week-day-column .week-day-info-container .week-day-program {
    flex-direction: column;
    gap: 4px;
  }
}

.week-wrapper .week-day-column .week-day-info-container .week-day-program.action {
  cursor: pointer;
}

.week-wrapper .week-day-column:nth-last-child(2) {
  border-right: 1px solid #ddd;
}

.week-wrapper .week-day-column.current-day {
  background-color: #ffffff;
}

.week-wrapper .week-day-column.current-day .day-number {
  color: #808080;
}

.week-wrapper .week-day-column.current-day .week-day-info-container:not(:empty) {
  border-bottom: 4px solid #9768EB;
}

.week-wrapper .week-day-column.current-day .week-day-info-container .week-day-program {
  background-color: #f4f4f4;
  color: inherit;
}

.week-wrapper .week-day-column.current-day .week-day-info-container .week-day-program .week-day-program-title:not(.light-grey-text) {
  color: #9768EB;
}

.week-wrapper .week-day-column.current-day .week-day-info-container .week-day-program .week-day-program-name:not(.light-grey-text) {
  color: #888888;
}

.chart-menu {
  margin: 50px 0 30px 0;
}

.chart-menu .chart-menu-item {
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  font-size: 20px;
  line-height: 1;
  font-weight: 500;
  color: #a0a4a8;
  margin-right: 40px;
}

@media only screen and (max-width: 1053px) {
  .chart-menu .chart-menu-item {
    font-size: 16px;
  }
}

.chart-menu .chart-menu-item.active {
  border-bottom: 2px solid #9768EB;
  color: #333;
  cursor: default;
}

.chart-menu .chart-menu-item:not(.active):hover {
  border-bottom: 2px solid #a0a4a8;
  cursor: pointer;
}

.line-chart {
  margin: 25px 0 0 0;
}

.line-chart .line-chart-canvas {
  max-height: 350px;
  min-height: 350px;
  height: 350px;
  max-width: 700px;
  min-width: 700px;
  width: 700px;
}

.line-chart .line-chart-canvas.small {
  max-height: 275px;
  min-height: 275px;
  height: 275px;
  max-width: 550px;
  min-width: 550px;
  width: 550px;
}

.line-chart .line-chart-menu {
  font-size: 14px;
  margin: 25px 0;
}

.program-chart {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-content: flex-start;
  align-content: flex-start;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  max-width: 700px;
  min-width: 700px;
  width: 700px;
  margin: 25px 0 0 0;
  min-height: 350px;
}

.program-chart .program-complete {
  margin: 5px 15px;
}

.program-chart .program-complete .program-info {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  font-size: 11px;
  margin-bottom: 6px;
}

.program-chart .program-complete .program-info .program-title {
  font-weight: 600;
  text-transform: uppercase;
}

.program-chart .program-complete .program-info .program-name {
  text-transform: uppercase;
}

.program-chart .program-complete .program-info .icon {
  color: #cdcdcd;
  font-size: 10px;
}

.program-chart .program-complete canvas {
  height: 60px;
  width: 310px;
}

.selection-component {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  max-width: 100px;
  min-width: 100px;
  width: 100px;
  position: relative;
}

.selection-component:after {
  color: #ffffff;
  content: '>';
  font: 600 12px 'Consolas', monospace;
  position: absolute;
  top: 6px;
  right: 12px;
  padding: 0 0 3px;
  pointer-events: none;
  -webkit-transform: rotate(90deg);
  -moz-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg);
}

.selection-component:before {
  background-color: #9768EB;
  content: '';
  display: block;
  position: absolute;
  top: 0px;
  right: 6px;
  width: 20px;
  height: inherit;
  pointer-events: none;
}

.selection-component select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: #9768EB;
  border: none;
  color: #ffffff;
  cursor: pointer;
  font-size: 12px;
  font-weight: 600;
  height: 30px;
  margin: 0;
  outline: none;
  padding-left: 10px;
  text-transform: uppercase;
  width: 100%;
}

.chart-legend {
  font-size: 14px;
  margin: 0 20px;
}

.chart-legend > .fa {
  margin-right: 5px;
}

.chart-legend > .fa.average {
  color: rgba(207, 218, 220, 0.5);
}

.chart-legend > .fa.score {
  color: rgba(0, 182, 235, 0.9);
}

.chart-legend > .fa.score-line {
  color: rgba(151, 104, 235, 0.9);
}

.chart-legend > .fa.team-average {
  color: rgba(125, 125, 125, 0.75);
}

.chart-legend > .fa.completed {
  color: rgba(32, 183, 105, 0.8);
}

.chart-legend > .fa.scheduled {
  color: #dfdfdf;
}

.chart-details {
  max-width: 300px;
  min-width: 300px;
  width: 300px;
  margin-top: 16px;
}

.chart-details .chart-date-header {
  border-bottom: 1px solid #ccc;
  padding-bottom: 4px;
  margin-bottom: 4px;
  -webkit-align-items: center;
  align-items: center;
}

.chart-details .chart-date-header i {
  font-size: 18px;
  display: none;
}

.chart-details .chart-date {
  max-height: 22px;
  min-height: 22px;
  height: 22px;
  color: #75777A;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
}

.chart-details .main-score {
  margin-top: 5px;
}

.chart-details .value-badge {
  color: #9768EB;
  font-size: 48px;
  font-weight: 100;
  margin-bottom: -6px;
}

.chart-details .value-label {
  text-align: center;
  max-width: 120px;
}

.chart-details .value-large {
  font-size: 56px;
  font-weight: 100;
  line-height: 56px;
  margin-right: 20px;
}

.chart-details .value-change-icon.fa-sort-asc {
  font-weight: 100;
  margin-top: 4px;
}

.chart-details .value-change-icon.fa-sort-desc {
  font-weight: 100;
  margin-bottom: 6px;
}

.chart-details .value-change-icon.unchanged {
  color: #808080;
}

.chart-details .value-change-icon.increase {
  color: #20b769;
}

.chart-details .value-change-icon.decrease {
  color: #c42a3b;
}

.chart-details .value-change {
  font-size: 14px;
  font-weight: 500;
  margin-left: 6px;
}

.chart-details .value-change.unchanged {
  color: #808080;
}

.chart-details .value-change.increase {
  color: #20b769;
}

.chart-details .value-change.decrease {
  color: #c42a3b;
}

.chart-details .info-label {
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 6px;
  text-transform: uppercase;
}

.chart-details .chart-stats-container {
  margin-top: 20px;
}

.chart-details .test-results-button-container {
  flex: 1;
  padding: 15px 0px;
}

.chart-details .chart-stats {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  border-bottom: 1px solid #ccc;
  border-top: 1px solid #ccc;
  padding: 15px 0;
}

.chart-details .chart-stats .name {
  font-size: 12px;
}

.chart-details .chart-stats .value {
  font-size: 26px;
  font-weight: 100;
  line-height: 34px;
}

.chart-details .chart-stats-grid .chart-stats {
  -webkit-flex: 1 0 50%;
  -ms-flex: 1 0 50%;
  flex: 1 0 50%;
  border-top: none;
}

.chart-details .chart-stats-grid .chart-stats:nth-child(-n+2) {
  border-top: 1px solid #ccc;
}

.chart-details .chart-stats-grid .chart-stats:nth-child(odd) {
  border-right: 1px solid #ccc;
}

.chart-details .pie-chart-container {
  margin-top: 20px;
  margin-bottom: -20px;
}

.chart-details .pie-chart {
  color: #aaa;
  font-size: 13px;
  margin-bottom: 20px;
}

.chart-details .pie-chart > div {
  margin-top: 10px;
}

.chart-details .pie-chart .pie-chart-canvas {
  max-height: 70px;
  min-height: 70px;
  height: 70px;
  max-width: 70px;
  min-width: 70px;
  width: 70px;
}

.chart-details .rpe-container {
  margin-top: 10px;
}

.chart-details .rpe-container .red-text,
.chart-details .rpe-container .green-text {
  font-weight: 500;
  margin-left: 3px;
}

.chart-details .rpe-container div + div {
  margin-left: 20px;
}

.chart-details .program-week {
  margin-top: 20px;
  padding: 18px 0;
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
}

.chart-details .trophies {
  margin-top: 20px;
}

.chart-details .trophies .trophy-image {
  margin-right: 6px;
  display: inline-block;
  width: 28px;
  position: relative;
  margin-top: -13px;
}

.chart-details .trophies .trophy-image.trophy-image--badge {
  margin-top: 0;
  width: 24px;
}

.chart-details .trophies .trophy-icon {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  max-height: 40px;
  min-height: 40px;
  height: 40px;
  max-width: 28px;
  min-width: 28px;
  width: 28px;
  margin-top: -11px;
  margin-right: 5px;
}

.chart-details .trophies .trophy-icon img {
  display: block;
}

.chart-details .trophies .trophy-place {
  padding: 0 6px;
  font-size: 30px;
  font-weight: 100;
}

.chart-details .trophies .trophy-name {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  margin-left: 13px;
  font-size: 14px;
  line-height: 16px;
}

.chart-details .no-details {
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  max-width: 300px;
  min-width: 300px;
  width: 300px;
  padding-bottom: 100px;
}

.notes-menu {
  margin: 15px 0;
}

.notes-menu .notes-menu-item {
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  color: #a0a4a8;
  font-size: 18px;
  line-height: 20px;
}

.notes-menu .notes-menu-item.active {
  border-bottom: 2px solid #9768EB;
  color: #333;
  cursor: default;
}

.notes-menu .notes-menu-item:not(.active):hover {
  border-bottom: 2px solid #a0a4a8;
  cursor: pointer;
}

.notes-menu .notes-menu-item + .notes-menu-item {
  margin-left: 45px;
}

.notes-calendar {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  max-width: 492px;
  min-width: 492px;
  width: 492px;
}

.notes-calendar .calendar-header {
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  margin: 1px 1px 0 -1px;
  background-color: #efefef;
  border: 1px solid #ccc;
  font-size: 16px;
  cursor: default;
}

.notes-calendar .calendar-header .icon {
  cursor: pointer;
}

.notes-calendar .week-day-labels {
  margin: 0 1px 0 0;
}

.notes-calendar .week-day-labels > div {
  min-width: 0;
  max-width: none;
  width: 14.28571%;
  font-size: 12px;
  color: #999;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  padding-left: 3px;
  align-items: center;
  justify-content: center;
}

.notes-calendar .calendar-days {
  margin: 0 1px 5px 0;
  background-color: #efefef;
}

.notes-calendar .calendar-days .calendar-day {
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  min-width: 0;
  max-width: none;
  width: 14.28571%;
  min-height: 0;
  max-height: none;
  height: 62px;
  margin: -1px 0px 0px -1px;
  border: 1px solid #cdcdcd;
  font-size: 16px;
  padding: 0;
  color: #cdcdcd;
}

.notes-calendar .calendar-days .calendar-day.current-day {
  color: #9768EB;
}

.notes-calendar .calendar-days .calendar-day.day-activities {
  background-color: #2d8b00;
}

.notes-calendar .calendar-days .calendar-day:not(.empty):not(.day-activities) {
  cursor: pointer;
}

.notes-calendar .calendar-days .calendar-day:not(.empty):not(.day-activities):hover {
  opacity: 0.8;
}

.notes-calendar .calendar-days .calendar-day .calendar-day-number {
  padding: 1px;
  line-height: 32px;
  text-align: left;
  padding: 8px 12px;
  font-size: 18px;
  font-size: 16px;
}

.bc-section,
.tl-section,
.soap-section {
  margin-top: 20px;
}

.soap-label.fields-header.high-level-field-label {
  margin-top: 20px;
  margin-bottom: 0px;
}

.bc-bodyfat {
  position: relative;
}

.bc-bodyfat > .basic-input.small {
  width: 80px;
}

.bc-bodyfat:after {
  content: '%';
  position: absolute;
  top: 0;
  left: 60px;
  line-height: 38px;
  font-size: 18px;
  color: #bbb;
}

.bc-alert {
  width: 75%;
  margin-bottom: 10px;
}

@media (max-width: 768px) {
  .bc-alert {
    width: 100%;
  }
}

.tl-total-load {
  margin-left: 15px;
}

.tl-total-load > .basic-input.small {
  width: 70px;
  border: none;
  border-radius: 0;
  border-bottom: 1px solid #cdcdcd;
  color: #9768EB;
}

.bc-entry-header > .field-label + .field-label,
.bc-entry > .field-label + .field-label {
  margin-left: 20px;
}

@media (max-width: 568px) {
  .bc-entry-header > .field-label + .field-label,
  .bc-entry > .field-label + .field-label {
    margin-left: 10px;
  }
}

.bc-entry-header .bc-input,
.bc-entry .bc-input {
  min-width: 160px;
  max-width: 160px;
}

.bc-entry-header .bc-filler,
.bc-entry .bc-filler {
  min-width: 10px;
  max-width: 10px;
}

@media (max-width: 568px) {
  .bc-filler-resp {
    min-width: 0 !important;
    max-width: 0 !important;
    margin-left: 0 !important;
  }
}

.tl-entry-header > .field-label + .field-label,
.tl-entry > .field-label + .field-label {
  margin-left: 20px;
}

.tl-entry-header .tl-select,
.tl-entry .tl-select {
  min-width: 215px;
  max-width: 215px;
}

.tl-entry-header .tl-input,
.tl-entry .tl-input {
  min-width: 100px;
  max-width: 100px;
}

.tl-entry-header .tl-filler,
.tl-entry .tl-filler {
  min-width: 10px;
  max-width: 10px;
}

.resp-notes-column {
  overflow: auto;
}

.bc-entry .bc-input {
  display: inline-flex;
  align-items: center;
  position: relative;
}

.bc-entry .bc-input > .basic-input.small {
  width: 130px;
  height: 38px;
  line-height: 38px;
  padding: 0 28px 0 13px;
  box-sizing: border-box;
}

.bc-entry .bc-input-bf {
  display: inline-flex;
  align-items: center;
  position: relative;
  margin-left: 0 !important;
}

.bc-entry .bc-input-bf > .basic-input.small {
  width: 80px;
  height: 38px;
  line-height: 38px;
  padding: 0 28px 0 13px;
  box-sizing: border-box;
}

.bc-entry .bc-unit {
  margin-left: -34px;
  pointer-events: none;
  font-size: 18px;
  line-height: 38px;
  color: #bbb;
  white-space: nowrap;
}

.bc-entry .bc-unit-bf {
  margin-left: -24px;
  pointer-events: none;
  font-size: 18px;
  line-height: 38px;
  color: #bbb;
  white-space: nowrap;
}

.tl-entry .tl-select-input {
  position: relative;
  border: 2px solid #d8d8d8;
  border-radius: 4px;
  padding: 5px 13px;
  font-size: 16px;
}

.tl-entry .tl-select-input .select-toggle {
  min-width: 185px;
  max-width: 185px;
}

.tl-entry .tl-select-input .select-toggle i {
  position: absolute;
  top: 14px;
  right: 10px;
  font-size: 6px;
}

.tl-entry .tl-select-input .options {
  position: absolute;
  top: 37px;
  left: 0px;
  overflow-y: auto;
  background-color: #dfdfdf;
  min-width: 220px;
  max-height: 180px;
  z-index: 2;
}

.tl-entry .tl-select-input .options > div {
  margin-top: 1px;
  margin-bottom: 3px;
  padding-left: 12px;
  min-height: 28px;
  line-height: 28px;
  cursor: pointer;
}

.tl-entry .tl-select-input .options > div:hover {
  background-color: #efefef;
}

.tl-entry .tl-input > .basic-input.small {
  width: 100px;
}

.tl-entry .tl-calculated-load > .basic-input.small {
  width: 100px;
  border: none;
  border-radius: 0;
  border-bottom: 1px solid #cdcdcd;
}

.tl-entry .tl-delete {
  font-size: 20px;
  color: #9768EB;
  cursor: pointer;
}

.bc-free-form,
.tl-free-form {
  width: 75%;
  font-size: 16px;
}

@media (max-width: 768px) {
  .bc-free-form,
  .tl-free-form {
    width: 100%;
  }
}

.soap-date > * {
  width: 170px;
}

.soap-date .date-input > .input-icon {
  -webkit-justify-content: center;
  justify-content: center;
  min-height: 35px;
  min-width: 40px;
  max-width: 40px;
  margin-right: 3px;
  background-color: #9768EB;
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
  font-size: 20px;
  color: #ffffff;
}

.soap-text-container {
  page-break-inside: avoid;
}

.soap-treatments .checkbox-input {
  margin-bottom: 8px;
}

.soap-treatments .soap-treatment-options {
  padding-left: 24px;
}

.soap-treatments .soap-treatment-options .checkbox-input {
  margin-bottom: 8px;
}

.soap-treatments .soap-treatment-text {
  padding-left: 24px;
}

.soap-treatments .soap-treatment-text .basic-input {
  width: 180px;
  margin-bottom: 8px;
}

.soap-objective.field div textarea {
  height: 85px;
  margin-bottom: 10px;
}

.fa-notes {
  margin: -10px 0px 0px 12px;
  color: #9768EB;
  font-size: 7px;
}

@media (max-width: 568px) {
  .resp-form-post-buttons {
    -webkit-flex-direction: column;
    flex-direction: column;
    margin: 20px 0 60px 0 !important;
    gap: 8px;
    width: 100%;
  }

  .resp-form-post-buttons > button {
    width: 100% !important;
    margin: 0 !important;
  }
}

.tooltipHidden {
  display: none;
}

.tooltip,
.tooltip-right,
.tooltip-bottom,
.tooltip-left,
.tooltip-right:after,
.tooltip-bottom:after,
.tooltip-left:after {
  position: absolute;
  min-width: 300px;
  max-width: 360px;
  width: max-content;
  width: -webkit-max-content;
  min-height: 72px;
  top: -130%;
  left: 65px;
  z-index: 10;
  border-radius: 6px;
  padding: 20px 25px;
  font-size: 16px;
  font-family: Nudista-web;
  background-color: #2e2e2e;
  color: white;
  line-height: 24px;
  text-align: left;
  letter-spacing: .35px;
}

.tooltip .ttContent,
.tooltip-right .ttContent,
.tooltip-bottom .ttContent,
.tooltip-left .ttContent,
.tooltip-right:after .ttContent,
.tooltip-bottom:after .ttContent,
.tooltip-left:after .ttContent {
  color: #929392;
  font-weight: 400;
  text-transform: none;
}

.tooltip .ttTitle,
.tooltip-right .ttTitle,
.tooltip-bottom .ttTitle,
.tooltip-left .ttTitle,
.tooltip-right:after .ttTitle,
.tooltip-bottom:after .ttTitle,
.tooltip-left:after .ttTitle {
  height: 40px;
  text-transform: none;
}

@media (max-width: 768px) {
  .tooltip,
  .tooltip-right,
  .tooltip-bottom,
  .tooltip-left,
  .tooltip-right:after,
  .tooltip-bottom:after,
  .tooltip-left:after {
    font-size: 14px;
    padding: 15px 18px;
  }
}

.tooltip-bottom {
  top: 55px;
  left: -125px;
}

.tooltip-left {
  left: inherit;
  right: 45px;
}

.tooltip:after,
.tooltip-right:after,
.tooltip-bottom:after,
.tooltip-left:after {
  position: absolute;
  left: -20px;
  top: 15px;
  border-color: transparent #2e2e2e;
  border-style: solid;
  border-width: 20px 20px 20px 0px;
  height: 0px;
  width: 0px;
  content: " ";
}

@media (max-width: 768px) {
  .tooltip:after,
  .tooltip-right:after,
  .tooltip-bottom:after,
  .tooltip-left:after {
    display: none;
  }
}

.tooltip-bottom:after {
  left: 130px;
  top: -20px;
  border-color: #2e2e2e transparent;
  border-width: 0px 20px 20px 20px;
}

.tooltip-left:after {
  left: inherit;
  right: -20px;
  border-width: 20px 0px 20px 20px;
}

.tooltipClose {
  float: right;
  padding: 0px 10px 3px 0px;
  color: lightblue;
  cursor: default;
  font-size: 24px;
}

.chart-tooltip {
  position: absolute;
  min-width: 255px;
  max-width: 300px;
  min-height: 100px;
  padding: 10px;
  background-color: #2e2e2e;
  z-index: 1;
  cursor: default;
  pointer-events: none;
}

.chart-tooltip .header {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  text-align: center;
  color: #efefef;
}

.chart-tooltip .content {
  font-size: 13px;
  margin-top: 6px;
  margin-bottom: 6px;
}

.chart-tooltip .content > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 20px;
  max-height: 20px;
}

.chart-tooltip .content > div > i {
  min-width: 16px;
}

.chart-tooltip .content > div > div {
  margin-left: 6px;
}

.chart-tooltip .content > div.completed {
  color: #16884e;
}

.chart-tooltip.hidden {
  visiblity: hidden;
}

.chart-tooltip.bottom:after {
  position: absolute;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  content: '';
  left: 0;
  right: 0;
  bottom: -8px;
  border-color: #2e2e2e transparent;
  border-width: 10px 10px 0 10px;
}

.chart-tooltip.bottom-left:after {
  position: absolute;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  content: '';
  left: 10px;
  bottom: -8px;
  border-color: #2e2e2e transparent;
  border-width: 10px 10px 0 10px;
}

.chart-tooltip.bottom-right:after {
  position: absolute;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  content: '';
  right: 10px;
  bottom: -8px;
  border-color: #2e2e2e transparent;
  border-width: 10px 10px 0 10px;
}

.chart-tooltip.top:after {
  position: absolute;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  content: '';
  left: 0;
  right: 0;
  top: -8px;
  border-color: #2e2e2e transparent;
  border-width: 0 10px 10px 10px;
}

.chart-tooltip.top-left:after {
  position: absolute;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  content: '';
  left: 10px;
  top: -8px;
  border-color: #2e2e2e transparent;
  border-width: 0 10px 10px 10px;
}

.chart-tooltip.top-right:after {
  position: absolute;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  content: '';
  right: 10px;
  top: -8px;
  border-color: #2e2e2e transparent;
  border-width: 0 10px 10px 10px;
}

.chart-tooltip.left:after {
  position: absolute;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  content: '';
  top: 0;
  bottom: 0;
  left: -8px;
  border-color: transparent #2e2e2e;
  border-width: 10px 10px 10px 0;
}

.chart-tooltip.right:after {
  position: absolute;
  width: 0px;
  height: 0px;
  margin: auto;
  border-style: solid;
  content: '';
  top: 0;
  bottom: 0;
  right: -8px;
  border-color: transparent #2e2e2e;
  border-width: 10px 0 10px 10px;
}

.fa {
  transform: none !important;
}

.upload-container .upload-section {
  max-height: 200px;
  min-height: 200px;
  height: 200px;
  max-width: 400px;
  min-width: 400px;
  width: 400px;
  border: 2px dashed #ddd;
  font-size: 20px;
  color: #bbb;
  cursor: pointer;
  position: relative;
}

.upload-container .upload-section > .upload-message {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  text-align: center;
}

.upload-container .upload-section > .upload-preview {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  background-color: #fefefe;
}

.upload-container > input[type='file'] {
  opacity: 0;
}

div.image-control {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  max-height: 280px;
  min-height: 280px;
  height: 280px;
  margin-top: 40px;
}

div.image-control .image-label {
  padding-top: 40px;
}

div.image-control .silent-file-input {
  width: 240px;
}

.image-buttons button {
  max-height: 25px;
  min-height: 25px;
  height: 25px;
  max-width: 85px;
  min-width: 85px;
  width: 85px;
  font-size: 11px;
}

.active-upload {
  max-width: 350px;
  min-width: 350px;
  width: 350px;
}

.active-upload .file-info {
  margin-bottom: 10px;
  font-size: 14px;
}

.active-upload .file-info .file-info-size {
  font-size: 12px;
}

.active-upload .progress-bar-container {
  max-height: 18px;
  min-height: 18px;
  height: 18px;
  border-radius: 6px;
  background-color: #dedede;
}

.active-upload .progress-bar-container > .progress-bar {
  max-height: 18px;
  min-height: 18px;
  height: 18px;
  border-radius: 6px;
  background-color: #9768EB;
  font-size: 12px;
  font-weight: 600;
  color: #efefef;
  text-indent: 6px;
}

.active-upload .progress-bar-container > .progress-bar.success {
  background-color: #9768EB;
}

.active-upload .progress-bar-container > .progress-bar.error {
  background-color: #af0a2f;
}

.active-upload .message {
  margin-top: 10px;
}

.exercise_container {
  -webkit-flex: 1 0 400px;
  -ms-flex: 1 0 400px;
  flex: 1 0 400px;
  position: relative;
}

.exercise_nav {
  -webkit-flex: 1 0 400px;
  -ms-flex: 1 0 400px;
  flex: 1 0 400px;
  max-width: 400px;
  min-width: 400px;
  width: 400px;
  background-color: #ffffff;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.exercise_nav .search {
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  border-bottom: 1px solid #bbb;
  border-right: 1px solid #bbb;
}

.exercise_nav .search input[type='text'] {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  border: none;
  font-size: 20px;
  font-weight: 200;
  height: 49px;
  line-height: 20px;
  text-indent: 15px;
  outline: none;
}

.exercise_nav .search button[type='reset'] {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  max-width: 60px;
  min-width: 60px;
  width: 60px;
  background-color: #bbb;
  border: none;
  color: #fefefe;
  font-size: 12px;
  margin: 0 10px;
  min-height: 30px;
}

.exercise_nav .search button[type='submit'] {
  -webkit-flex: 0;
  -ms-flex: 0;
  flex: 0;
  max-width: 30px;
  min-width: 30px;
  width: 30px;
  background-color: transparent;
  border: none;
  color: #fefefe;
  margin: 0px;
  min-height: 30px;
}

.exercise_nav .search i.fa {
  font-size: 20px;
  color: #bbb;
}

.exercise_nav .add {
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  border-right: 1px solid #bbb;
  border-bottom: 1px solid #bbb;
  padding: 10px;
}

.exercise_nav .add i.fa {
  -webkit-flex: 0.1;
  -ms-flex: 0.1;
  flex: 0.1;
}

.exercise_nav .add strong {
  -webkit-flex: 0.975;
  -ms-flex: 0.975;
  flex: 0.975;
}

.exercise_nav .list {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  border-right: 1px solid #bbb;
  min-height: 10px;
  overflow-y: auto;
}

.exercise_nav .list > div:not(.filler) {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  border-bottom: 1px solid #bbb;
}

.exercise_nav .list > div:not(.filler) .detail {
  margin-left: 30px;
  margin-right: 20px;
}

.exercise_nav .list > div:not(.filler) .detail .view-detail {
  border: 1px solid #bbb;
  padding: 4px 8px;
}

.exercise_nav .list > div:not(.filler) .detail .view-detail .icon {
  color: #9768EB;
  font-size: 17px;
  margin: 0 6px;
}

.exercise_nav .list > div:not(.filler) .detail .view-detail .icon.inactive {
  color: #ccc;
}

.exercise_nav .list > div:not(.filler) .detail .body-sides {
  margin: 20px 0;
}

.exercise_nav .list > div:not(.filler) .detail .body-sides > div label span {
  margin-right: 9px;
}

.exercise_nav .list > div:not(.filler) .detail .body-sides > div + div {
  margin-left: 25px;
}

.exercise_nav .list > div:not(.filler) .detail.hidden {
  display: none;
}

.exercise_nav .list > div.filler {
  -webkit-flex: 1 1 100%;
  -ms-flex: 1 1 100%;
  flex: 1 1 100%;
}

@-moz-document url-prefix()  {
  .exercise_nav .list {
    height: 0;
  }
}

.exercise_select {
  -webkit-flex: 1 0 300px;
  -ms-flex: 1 0 300px;
  flex: 1 0 300px;
  background-color: #ffffff;
  overflow-y: auto;
}

.exercise_select .list {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  min-height: 10px;
  overflow-y: auto;
}

.exercise_select .list > div:not(.filler) {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  border-bottom: 1px solid #ddd;
}

.exercise_select .list > div:not(.filler) .exercise-item > div {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.exercise_select .list > div:not(.filler) .exercise-item .name {
  font-size: 18px;
}

.exercise_select .list > div:not(.filler) .exercise-item .circled-icon {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  font-size: 14px;
  width: 40px;
  height: 40px;
  line-height: 36px;
  text-align: center;
  margin: 0 12px;
}

.exercise_select .list > div:not(.filler) .exercise-item .circled-icon:hover {
  color: #9768EB;
  border-color: #9768EB;
}

.exercise_select .list > div:not(.filler) .detail {
  margin-left: 30px;
  margin-right: 20px;
}

.exercise_select .list > div:not(.filler) .detail .view-detail {
  border: 1px solid #bbb;
  padding: 4px 8px;
}

.exercise_select .list > div:not(.filler) .detail .view-detail .icon {
  color: #9768EB;
  font-size: 17px;
  margin: 0 6px;
}

.exercise_select .list > div:not(.filler) .detail .view-detail .icon.inactive {
  color: #ccc;
}

.exercise_select .list > div:not(.filler) .detail .body-sides {
  margin: 20px 0;
}

.exercise_select .list > div:not(.filler) .detail .body-sides > div label span {
  margin-right: 9px;
}

.exercise_select .list > div:not(.filler) .detail .body-sides > div + div {
  margin-left: 25px;
}

.exercise_select .list > div:not(.filler) .detail.hidden {
  display: none;
}

.exercise_select .list > div.filler {
  -webkit-flex: 1 1 100%;
  -ms-flex: 1 1 100%;
  flex: 1 1 100%;
}

@-moz-document url-prefix()  {
  .exercise_select .list {
    height: 0;
  }
}

.filters {
  max-height: 100px;
  min-height: 100px;
  height: 100px;
}

.filters > fusion-drop-down,
.filters > fusion-ordered-drop-down,
.filters > div {
  -webkit-flex: 1 0 50%;
  -ms-flex: 1 0 50%;
  flex: 1 0 50%;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  /***** NOTE ******
    since the height is being recalculated
    only set the min-height
    @include lock-height(50px);
    ***** EBD NOTE ******/
  max-width: 50%;
  min-height: 50px;
  position: relative;
  border-bottom: 1px solid #bbb;
  border-right: 1px solid #bbb;
  padding-left: 20px;
  padding-right: 10px;
}

.filters > fusion-drop-down .select-toggle,
.filters > fusion-ordered-drop-down .select-toggle,
.filters > div .select-toggle {
  width: 100%;
  cursor: pointer;
}

.filters > fusion-drop-down .select-toggle.disabled,
.filters > fusion-ordered-drop-down .select-toggle.disabled,
.filters > div .select-toggle.disabled {
  cursor: default;
}

.filters > fusion-drop-down .select-toggle.disabled span,
.filters > fusion-ordered-drop-down .select-toggle.disabled span,
.filters > div .select-toggle.disabled span {
  font-style: italic;
}

.filters > fusion-drop-down .select-toggle.disabled i,
.filters > fusion-ordered-drop-down .select-toggle.disabled i,
.filters > div .select-toggle.disabled i {
  display: none;
}

.filters > fusion-drop-down .select-toggle span,
.filters > fusion-ordered-drop-down .select-toggle span,
.filters > div .select-toggle span {
  -webkit-flex: 0.9;
  -ms-flex: 0.9;
  flex: 0.9;
}

.filters > fusion-drop-down .select-toggle i.fa,
.filters > fusion-ordered-drop-down .select-toggle i.fa,
.filters > div .select-toggle i.fa {
  -webkit-flex: 0.1;
  -ms-flex: 0.1;
  flex: 0.1;
}

.filters > fusion-drop-down .options,
.filters > fusion-ordered-drop-down .options,
.filters > div .options {
  position: absolute;
  top: 50px;
  left: 0;
  background-color: #ffffff;
  border-color: #999;
  box-shadow: 0 6px 10px 0 #999;
  max-height: 215px;
  min-width: 100%;
  overflow-y: scroll;
  z-index: 3;
}

.filters > fusion-drop-down .options > div,
.filters > fusion-ordered-drop-down .options > div,
.filters > div .options > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  white-space: nowrap;
}

.filters > fusion-drop-down .options > div:hover,
.filters > fusion-ordered-drop-down .options > div:hover,
.filters > div .options > div:hover {
  background-color: #ccc;
}

.filters > fusion-drop-down > div,
.filters > fusion-ordered-drop-down > div {
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 48px;
  min-height: 48px;
  height: 48px;
}

.filters > fusion-drop-down.required .select-toggle > span,
.filters > fusion-ordered-drop-down.required .select-toggle > span {
  color: #ff0000;
}

.exercise-item {
  max-height: 45px;
  min-height: 45px;
  height: 45px;
  background-color: #ffffff;
  margin: 10px;
}

.exercise-item .icon {
  -webkit-flex: 0.1;
  -ms-flex: 0.1;
  flex: 0.1;
}

.exercise-item .icon.toggle {
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  max-width: 30px;
  min-width: 30px;
  width: 30px;
  font-size: 6px;
}

.exercise-item .icon.toggle.down {
  -webkit-transform: rotate(0deg);
  transform: rotate(0deg);
  padding-top: 24px;
}

.exercise-item .icon.toggle.right {
  -webkit-transform: rotate(-90deg);
  transform: rotate(-90deg);
}

.exercise-item .name {
  -webkit-flex: 0.9;
  -ms-flex: 0.9;
  flex: 0.9;
}

.exercise-item .name .no-wrap-ellipse {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.exercise-item.active-item {
  z-index: 1;
}

.exercise-item.active-item .icon {
  visibility: hidden;
}

.exercise-item.dragging-element {
  max-height: 65px;
  min-height: 65px;
  height: 65px;
  transform: scale(1.1, 1.1) !important;
  transform-origin: right center !important;
}

.exercise-item.dragging-element .icon {
  visibility: hidden;
}

.no-match {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  font-size: 16px;
  font-weight: 600;
  margin: 10px;
}

/* modal junk */

.modal-container.modal-exercise-detail header {
  /* @include lock-height(75px); */
  border: none;
}

.modal-container.modal-exercise-detail header label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  font-size: 18px;
}

.modal-container.modal-exercise-detail footer {
  max-height: 75px;
  min-height: 75px;
  height: 75px;
  border: none;
}

.modal-container.modal-exercise-detail section {
  -webkit-align-items: stretch;
  align-items: stretch;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  margin: 0;
  min-height: 0;
  min-width: 600px;
}

.modal-container.modal-exercise-detail section:first-of-type {
  margin-top: 10px;
}

.modal-container.modal-exercise-detail section:last-of-type {
  margin-top: 20px;
  margin-bottom: 40px;
}

.modal-container.modal-exercise-detail section.video-view {
  max-width: 600px;
  min-width: 600px;
}

.modal-container.modal-exercise-detail section.image-view {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: center;
  justify-content: center;
}

.modal-container.modal-exercise-detail section.image-view > img {
  max-width: 360px;
  min-width: 360px;
}

.modal-container.modal-exercise-detail .missing-media {
  width: 100%;
  border: 1px solid #efefef;
  color: #dedede;
  font-size: 24px;
  font-weight: 300;
}

.modal-container.modal-exercise-form header {
  border: none;
}

.modal-container.modal-exercise-form header label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  font-size: 18px;
}

.modal-container.modal-exercise-form footer {
  max-height: 75px;
  min-height: 75px;
  height: 75px;
  border: none;
}

.modal-container.modal-exercise-form footer.smaller {
  margin-top: 5px;
}

.modal-container.modal-exercise-form form label button[type='reset'] {
  background-color: #dedede;
  border: none;
  border-radius: 4px;
  color: #fefefe;
  font-size: 13px;
  font-weight: bold;
  height: 33px;
  line-height: 33px;
  margin: 0px 10px;
  margin-left: 7px;
  min-height: 30px;
  min-width: auto;
  width: auto;
}

.modal-container.modal-exercise-form section {
  -webkit-align-items: stretch;
  align-items: stretch;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  margin: 0;
  min-height: 0;
  min-width: 600px;
}

.modal-container.modal-exercise-form section:first-of-type {
  margin-top: 10px;
}

.modal-container.modal-exercise-form section:last-of-type {
  margin-top: 20px;
  margin-bottom: 40px;
}

.modal-container.modal-exercise-form section .filters {
  background-color: #f9f9f9;
  width: 100%;
}

.modal-container.modal-exercise-form section span {
  font-size: 16px;
}

.modal-container.modal-exercise-form section > span {
  margin: 10px;
  margin-left: 40px;
}

.modal-container.modal-exercise-form section > span.modal-error {
  margin-left: 230px;
  color: red;
}

.modal-container.modal-exercise-form section textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  border: 1px solid #bbb;
  font-size: 16px;
  font-weight: normal;
  margin: 10px 40px 10px 0;
  height: 140px;
  outline: 0;
  padding-top: 4px;
  padding-left: 4px;
}

.modal-container.modal-exercise-form section textarea.large {
  min-height: 300px;
}

.modal-container.modal-exercise-form section textarea.larger {
  min-height: 450px;
}

.modal-container.modal-exercise-form section label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-align-self: stretch;
  align-self: stretch;
  position: relative;
  border-top: 1px solid #bbb;
  min-height: 25px;
}

.modal-container.modal-exercise-form section label:last-of-type {
  border-bottom: 1px solid #bbb;
}

.modal-container.modal-exercise-form section label span {
  margin: 10px;
  margin-left: 40px;
  min-width: 150px;
}

.modal-container.modal-exercise-form section label input {
  -webkit-flex: 1 1 50%;
  -ms-flex: 1 1 50%;
  flex: 1 1 50%;
  border: none;
  font-size: 16px;
  line-height: 30px;
  margin: 1px;
  outline: 0;
}

.modal-container.modal-exercise-form section label select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  -webkit-align-self: stretch;
  align-self: stretch;
  background-color: transparent;
  border: none;
  border-left: 1px solid #bbb;
  border-radius: 0;
  margin: 1px;
  outline: 0;
  text-indent: 10px;
}

.modal-container.modal-exercise-form section label select:focus {
  outline: 0;
}

.modal-container.modal-exercise-form section label select:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #000;
}

.modal-container.modal-exercise-form section label select::-ms-expand {
  display: none;
}

.modal-container.modal-exercise-form section label select + i.fa {
  position: absolute;
  top: 0;
  right: 20px;
  bottom: 0;
  color: #ccc;
  font-size: 16px;
  width: 20px;
  height: 20px;
  margin: auto 0;
  pointer-events: none;
  text-align: center;
}

.modal-container.modal-exercise-form section.single-line-form-fields label .body-sides > div label {
  border: none;
}

.modal-container.modal-exercise-form section.single-line-form-fields label .body-sides > div span {
  font-size: 18px;
  margin: 0;
  min-width: 0;
}

.modal-container.modal-exercise-form section.single-line-form-fields label .body-sides > div i {
  font-size: 18px;
  margin-left: 10px;
  cursor: pointer;
}

.modal-container.modal-exercise-form section.single-line-form-fields label .body-sides > div + div {
  margin-left: 25px;
}

.modal-container.modal-exercise-form section.single-line-form-fields .even-cols label {
  border-top: none;
  border-bottom: none;
}

.modal-container.modal-exercise-form section.single-line-form-fields .even-cols label > select {
  border-left: none;
  text-indent: 40px;
  font-size: 18px;
  color: #75777a;
}

.modal-container.modal-exercise-form section.single-line-form-fields .even-cols label + label > select {
  border-left: 1px solid #ebebeb;
}

.modal-container.modal-exercise-form .week-selection {
  padding: 5px 15px;
  cursor: default;
}

.modal-container.modal-exercise-form .week-selection > div {
  margin: 0 10px;
  min-height: 28px;
  font-size: 18px;
  color: #a0a4a8;
  border-bottom: 2px solid transparent;
  cursor: pointer;
}

.modal-container.modal-exercise-form .week-selection > div.active {
  color: #75777a;
  border-bottom-color: #9768EB;
}

/* drag-n-drop junk */

/* should be moved to own file (clearly) */

.drag-hidden {
  visibility: hidden;
}

.drag-move-scroll-anchor {
  position: fixed;
  left: 0;
  right: 0;
  background-color: rgba(155, 155, 155, 0.275);
  height: 20px;
  z-index: 1;
}

.drag-move-scroll-anchor.top {
  top: 0;
}

.drag-move-scroll-anchor.bottom {
  bottom: 0;
}

.drop-hidden {
  display: none;
}

.drop-target:not(.drop-empty) {
  border: 2px dashed #cdd3d7;
}

.drop-target.drop-target-over:not(.add-section) {
  border: 2px dashed #4cbb17 !important;
}

.drop-target.drop-target-over.add-section > div {
  border-color: #4cbb17 !important;
}

.drop-target.drop-target-over .add-exercise {
  display: none;
}

.dragging-element {
  position: absolute;
  border: 2px solid #888;
  transform: scale(0.9, 0.9) !important;
  transform-origin: left center !important;
  z-index: 10;
  pointer-events: none;
}

@media (max-width: 768px) {
  .resp-program-menu {
    flex-direction: column;
    justify-content: flex-start;
  }

  .resp-program-menu .catalog_container > div {
    position: static;
    overflow: visible;
  }

  .resp-program-menu .opened-container,
  .resp-program-menu .closed-container {
    flex: none;
    height: auto;
    max-height: none;
  }

  .resp-program-menu .catalog-banner,
  .resp-program-menu .catalog-search,
  .resp-program-menu .catalog_nav_wrapper {
    height: auto;
  }

  .resp-program-menu .catalog_container {
    flex: none;
    min-height: auto;
    height: auto;
    position: static;
  }

  .resp-program-menu ul.catalog_nav {
    margin-bottom: 20px;
  }
}

.catalog_container {
  -webkit-flex: 1 0 350px;
  -ms-flex: 1 0 350px;
  flex: 1 0 350px;
  min-height: 500px;
  position: relative;
}

.catalog_container > div.catalog-scrollable {
  overflow-y: auto;
}

.catalog_container > div {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  overflow: hidden;
}

.catalog_container > div > div.opened-container {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  height: 100%;
}

.catalog_container > div > div.closed-container {
  -webkit-flex: 1 1 52px;
  -ms-flex: 1 1 52px;
  flex: 1 1 52px;
  max-height: 52px;
}

.catalog-banner {
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  border-right: 1px solid #ebebeb;
  background-color: #9768EB;
  margin: 1px 0;
}

.catalog-banner i.circled-icon {
  margin: 0 15px;
  border: 2px solid #9768EB;
  color: #9768EB;
}

.catalog-banner span {
  color: #efefef;
  font-size: 16px;
}

.catalog-search {
  max-height: 50px;
  min-height: 50px;
  height: 50px;
  border-right: 1px solid #ebebeb;
}

.catalog-search form {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  background-color: #fefefe;
}

.catalog-search form input[type='text'] {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  background-color: transparent;
  border: none;
  font-size: 20px;
  font-weight: 500;
  height: 49px;
  letter-spacing: 0.39px;
  text-indent: 15px;
  outline: none;
}

.catalog-search form button[type='reset'] {
  background-color: #dedede;
  border: none;
  border-radius: 4px;
  color: #fefefe;
  font-size: 13px;
  font-weight: bold;
  height: 33px;
  line-height: 33px;
  margin: 0px 10px;
  margin-left: 7px;
  min-height: 30px;
  min-width: auto;
  width: auto;
}

.catalog_nav_wrapper {
  height: 100%;
}

.catalog_nav {
  max-width: 350px;
  min-width: 350px;
  width: 350px;
  background-color: #ffffff;
  border-right: 1px solid #ebebeb;
  overflow-y: auto;
  height: auto;
}

.catalog_nav .category-icon {
  margin: 0 18px;
  min-width: 20px;
  font-size: 24px;
}

.catalog_nav .add-icon {
  font-size: 12px;
  margin: 0 15px;
  min-width: 12px;
}

ul.catalog_nav {
  list-style: none;
  margin: 0;
  padding: 0;
}

ul.catalog_nav li {
  background-color: #f0f0f0;
  font-size: 18px;
  font-weight: 400;
  margin: 5px 0;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: center;
  justify-content: center;
  cursor: pointer;
}

ul.catalog_nav li > span {
  min-height: 45px;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

ul.catalog_nav li .category-state {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  font-size: 12px;
  margin: 0 20px;
  min-width: 12px;
}

ul.catalog_nav li .category-open .category-state:before {
  content: "\E620";
}

ul.catalog_nav li .category-close .category-state:before {
  content: "\E62F";
}

ul.catalog_nav li.exercise-technique > span {
  text-indent: 20px;
  font-size: 16px;
}

ul.catalog_nav li.exercise-technique > ul {
  padding: 0;
}

ul.catalog_nav li.exercise-technique > ul li {
  font-weight: normal;
  min-height: 24px;
}

ul.catalog_nav li.exercise-technique > ul li:hover {
  text-decoration: underline;
}

ul.catalog_nav li.exercise-technique > ul li > span {
  min-height: 24px;
  text-indent: 30px;
  text-transform: none;
}

ul.catalog_nav li > ul {
  background-color: #fff;
  margin: 0;
  padding: 10px 0 0 0;
}

ul.catalog_nav li > ul li {
  background-color: #fff;
  font-size: 12px;
  font-weight: 600;
}

ul.catalog_nav li > ul li > span {
  min-height: 30px;
  text-indent: 30px;
  text-transform: uppercase;
}

ul.catalog_nav li > ul li > ul {
  padding: 0;
}

ul.catalog_nav li > ul li > ul li {
  font-weight: normal;
  min-height: 30px;
  text-indent: 50px;
}

ul.catalog_nav li > ul li > ul li:hover {
  text-decoration: underline;
}

.login-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #efefef;
}

.login-container .login-modal {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: center;
  justify-content: center;
  max-width: 476px;
  min-width: 476px;
  width: 476px;
  background-color: #FCFCFC;
  border: 1px solid #efefef;
  border-radius: 6px;
  padding: 47px 0 22px;
}

.login-container .login-modal > img {
  -webkit-align-self: center;
  align-self: center;
}

.login-container .login-modal .login-banner {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: center;
  justify-content: center;
  font-size: 32px;
  margin: 28px 15px 30px;
  color: #9768EB;
}

.login-container .login-modal .login-form {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-content: center;
  align-content: center;
  -webkit-justify-content: center;
  justify-content: center;
}

.login-container .login-modal .login-form > input::-ms-clear {
  display: none;
}

.login-container .login-modal .login-form > input {
  max-height: 51px;
  min-height: 51px;
  height: 51px;
  border-top: 1px solid #ddd;
  border-left: none;
  border-right: none;
  border-bottom: 1px solid #ddd;
  border-radius: 0;
  text-align: center;
}

.login-container .login-modal .login-form > input::-webkit-input-placeholder {
  color: #75777A;
  text-align: center;
  opacity: 1;
  font-size: 15px;
}

.login-container .login-modal .login-form > input:-moz-placeholder {
  color: #75777A;
  text-align: center;
  opacity: 1;
  font-size: 15px;
}

.login-container .login-modal .login-form > input::-moz-placeholder {
  color: #75777A;
  text-align: center;
  opacity: 1;
  font-size: 15px;
}

.login-container .login-modal .login-form > input:-ms-input-placeholder {
  color: #75777A;
  text-align: center;
  opacity: 1;
  font-size: 15px;
}

.login-container .login-modal .login-form > input + input {
  border-top: 0;
}

.login-container .login-modal .login-form .login-buttons {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-evenly;
  justify-content: space-evenly;
  margin: 0px 30px;
}

.login-container .login-modal .login-form .login-buttons > button {
  -webkit-align-self: center;
  align-self: center;
  max-height: 57px;
  min-height: 57px;
  height: 57px;
  width: 100%;
}

.login-container .login-modal .reset-form {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-content: center;
  align-content: center;
  -webkit-justify-content: center;
  justify-content: center;
}

.login-container .login-modal .reset-form > input::-ms-clear {
  display: none;
}

.login-container .login-modal .reset-form > input {
  margin: 28px 0 0;
  max-height: 51px;
  min-height: 51px;
  height: 51px;
  border-top: 1px solid #ddd;
  border-left: none;
  border-right: none;
  border-bottom: 1px solid #ddd;
  border-radius: 0;
  text-align: center;
}

.login-container .login-modal .reset-form > input::-webkit-input-placeholder {
  color: #75777A;
  text-align: center;
  opacity: 1;
}

.login-container .login-modal .reset-form > input:-moz-placeholder {
  color: #75777A;
  text-align: center;
  opacity: 1;
}

.login-container .login-modal .reset-form > input::-moz-placeholder {
  color: #75777A;
  text-align: center;
  opacity: 1;
}

.login-container .login-modal .reset-form > input:-ms-input-placeholder {
  color: #75777A;
  text-align: center;
  opacity: 1;
}

.login-container .login-modal .reset-form > input + input {
  border-top: 0;
}

.login-container .login-modal .reset-form .secondPassword {
  margin: 0 0 0;
}

.login-container .login-modal .reset-form .button-collection {
  -webkit-align-self: center;
  align-self: center;
  margin: 28px 0 0;
}

.login-container .login-modal .reset-form .button-collection > button {
  max-height: 57px;
  min-height: 57px;
  height: 57px;
  width: 200px;
}

.login-container .login-modal .message {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  margin: 11px 15px;
}

.login-container .login-modal .description {
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  max-height: 70px;
  min-height: 70px;
  height: 70px;
  margin: 11px 15px;
}

.login-container .login-modal .login-link {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: center;
  justify-content: center;
  font-size: 12px;
}

.login-container .login-modal .login-link > a {
  color: #aaa;
  word-spacing: 2px;
}

.loginRememberMe {
  margin: 28px 0 0;
  -webkit-align-self: center;
  align-self: center;
  display: block;
}

.loginRememberMe .checkbox-input {
  -webkit-align-items: center;
  align-items: center;
}

.loginRememberMe .checkbox-input i {
  font-size: 25px;
}

.loginRememberMe .checkbox-input span {
  color: #75777A;
}

.loginForgotPassLink {
  margin: 31px 0 0;
  -webkit-align-self: center;
  align-self: center;
  cursor: pointer;
  color: #AAB0B7;
  text-decoration-line: underline;
  font-size: 14px;
}

.loginForgotPassLink a {
  color: inherit;
}

.modal-container section.profile-form {
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  margin: 10px;
  min-width: 400px;
}

.modal-container section.profile-form label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-align-self: stretch;
  align-self: stretch;
  margin: 5px 9px;
  max-width: 325px;
}

.modal-container section.profile-form label span {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  margin-right: 6px;
  min-width: 100px;
}

.modal-container section.profile-form label input {
  width: 100%;
}

.modal-container.modal-athlete-form {
  overflow: auto;
  width: 740px;
}

.modal-container.modal-athlete-form header {
  border: none;
}

.modal-container.modal-athlete-form header label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  font-size: 18px;
}

.modal-container.modal-athlete-form footer {
  max-height: 75px;
  min-height: 75px;
  height: 75px;
  border: none;
}

.modal-container.modal-athlete-form footer.smaller {
  margin-top: 5px;
}

.modal-container.modal-athlete-form section {
  -webkit-align-items: stretch;
  align-items: stretch;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  margin: 0;
  min-height: 0;
  min-width: 600px;
}

.modal-container.modal-athlete-form section:first-of-type {
  margin-top: 10px;
  border-bottom: 1px solid #ebebeb;
}

.modal-container.modal-athlete-form section:not(:first-of-type) {
  margin-top: 20px;
}

.modal-container.modal-athlete-form section div.section-label {
  margin-left: 40px;
  margin-bottom: 10px;
  font-size: 13px;
  color: #75777A;
  letter-spacing: 0.32px;
  line-height: 27px;
  font-weight: bold;
  text-transform: uppercase;
}

.modal-container.modal-athlete-form section div.options-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: center;
  justify-content: center;
}

.modal-container.modal-athlete-form section div.option-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin-left: 40px;
  padding-bottom: 35px;
}

.modal-container.modal-athlete-form section div.option-container div.option-label {
  font-size: 13px;
  max-width: 115px;
  min-width: 115px;
  width: 115px;
}

.modal-container.modal-athlete-form section div.option-container div.choices-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.modal-container.modal-athlete-form section div.option-container div.choices-container .radio-input {
  margin-right: 20px;
}

.modal-container.modal-athlete-form section div.option-container div.choices-container .radio-input > span {
  font-size: 13px;
}

.modal-container.modal-athlete-form section div.option-container div.choices-container .select-input {
  position: relative;
}

.modal-container.modal-athlete-form section div.option-container div.choices-container .select-input select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: transparent;
  border: 1px solid #ebebeb;
  border-radius: 3px;
  color: inherit;
  font-size: 13px;
  line-height: 25px;
  min-width: 160px;
  outline: 0;
  padding: 0 28px 0 10px;
}

.modal-container.modal-athlete-form section div.option-container div.choices-container .select-input select::-ms-expand {
  display: none;
}

.modal-container.modal-athlete-form section div.option-container div.choices-container .select-input i.icon-caret-down {
  position: absolute;
  top: 50%;
  right: 10px;
  margin-top: -6px;
  color: #D9DBDC;
  pointer-events: none;
}

.modal-container.modal-athlete-form section .row-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.modal-container.modal-athlete-form section .row-container:not(:first-of-type) {
  border-top: 1px solid #ebebeb;
}

.modal-container.modal-athlete-form section .row-container .space-between {
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

.modal-container.modal-athlete-form section > span {
  margin: 10px;
  margin-left: 40px;
}

.modal-container.modal-athlete-form section > span.modal-error {
  margin-left: 230px;
  color: red;
}

.modal-container.modal-athlete-form section .dob-field {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  border-right: 1px solid #ebebeb;
  width: 50%;
}

.modal-container.modal-athlete-form section .dob-field span {
  margin: 10px 10px 10px 40px;
}

.modal-container.modal-athlete-form section .dob-field input {
  border: none;
}

.modal-container.modal-athlete-form section label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-align-self: stretch;
  align-self: stretch;
  -webkit-flex: 1 1 0%;
  -ms-flex: 1 1 0%;
  flex: 1 1 0%;
  position: relative;
  min-height: 25px;
}

.modal-container.modal-athlete-form section label:not(:first-of-type) {
  border-left: 1px solid #ebebeb;
}

.modal-container.modal-athlete-form section label.feet-field {
  -webkit-flex: 0.6 1 0%;
  -ms-flex: 0.6 1 0%;
  flex: 0.6 1 0%;
}

.modal-container.modal-athlete-form section label.inches-field {
  -webkit-flex: 0.395 1 0%;
  -ms-flex: 0.395 1 0%;
  flex: 0.395 1 0%;
}

.modal-container.modal-athlete-form section label span {
  margin: 10px;
  margin-left: 40px;
  font-size: 13px;
  color: #75777A;
  letter-spacing: 0.32px;
  line-height: 27px;
  font-weight: 500;
}

.modal-container.modal-athlete-form section label .invalid-input {
  border: 1px solid red;
}

.modal-container.modal-athlete-form section label .validation-container {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  -webkit-align-self: stretch;
  align-self: stretch;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.modal-container.modal-athlete-form section label .validation-container .validation-message {
  position: absolute;
  z-index: 10;
  top: 55px;
  padding: 3px 6px;
  border-radius: 5px;
  background-color: #2e2e2e;
  color: white;
  border: 1px solid #2e2e2e;
}

.modal-container.modal-athlete-form section label .validation-container .validation-message:after {
  position: absolute;
  left: 45%;
  top: -10px;
  border-color: #2e2e2e transparent;
  border-style: solid;
  border-width: 0px 10px 10px 10px;
  height: 0px;
  width: 0px;
  content: " ";
}

.modal-container.modal-athlete-form section label .validation-container .validation-message span {
  margin: 0px;
  color: inherit;
  font-weight: inherit;
}

.modal-container.modal-athlete-form section label input {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  -webkit-align-self: stretch;
  align-self: stretch;
  border: none;
  border-radius: 0px;
  padding: 0px;
  font-size: 13px;
  line-height: 27px;
  outline: 0;
  margin: 1px;
  text-indent: 10px;
}

.modal-container.modal-athlete-form section label input.measurement {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  max-width: 55px;
  min-width: 55px;
  width: 55px;
}

.modal-container.modal-athlete-form section label .date-input {
  width: 220px;
}

.modal-container.modal-athlete-form section label .imperial-height {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  min-width: 45%;
  position: relative;
}

.modal-container.modal-athlete-form section label .imperial-height.inches {
  min-width: 80%;
}

.modal-container.modal-athlete-form section label select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  -webkit-align-self: stretch;
  align-self: stretch;
  background-color: transparent;
  border: none;
  border-radius: 0;
  margin: 1px;
  outline: 0;
  text-indent: 10px;
}

.modal-container.modal-athlete-form section label select:focus {
  outline: 0;
}

.modal-container.modal-athlete-form section label select:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #000;
}

.modal-container.modal-athlete-form section label select::-ms-expand {
  display: none;
}

.modal-container.modal-athlete-form section label select + i.icon-caret-down {
  position: absolute;
  top: 25px;
  right: 20px;
  color: #D9DBDC;
  font-size: 6px;
  pointer-events: none;
}

.modal-container.modal-athlete-form section label select + i.icon-caret-down.feet {
  top: 10px;
  right: 35px;
}

.modal-container.modal-athlete-form section label select + i.icon-caret-down.inches {
  top: 10px;
  right: 50px;
}

.modal-container.modal-athlete-form section label select.imperial {
  text-indent: 30px;
}

@media (max-width: 768px) {
  .modal-container.modal-athlete-form {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    border-radius: 0;
    box-shadow: none;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    overflow-y: auto;
  }

  .modal-container.modal-athlete-form footer {
    position: sticky;
    bottom: 0;
    background-color: #fff;
    border-top: 1px solid #ebebeb;
    z-index: 1;
  }

  .modal-container.modal-athlete-form section {
    min-width: 0;
  }

  .modal-container.modal-athlete-form section > .row-container:not(.height-fields-row) {
    flex-direction: column;
  }

  .modal-container.modal-athlete-form section > .row-container:not(.height-fields-row) label {
    flex: 1 1 auto;
    min-height: 44px;
  }

  .modal-container.modal-athlete-form section > .row-container:not(.height-fields-row) label:not(:first-of-type) {
    border-left: none;
    border-top: 1px solid #ebebeb;
  }

  .modal-container.modal-athlete-form section .dob-field {
    width: 100%;
    border-right: none;
    border-bottom: 1px solid #ebebeb;
  }

  .modal-container.modal-athlete-form section > .row-container.space-between {
    padding-top: 10px;
  }

  .modal-container.modal-athlete-form section > .row-container.space-between .options-container {
    width: 100%;
  }

  .modal-container.modal-athlete-form section > .row-container.space-between .options-container .option-container {
    margin-left: 40px;
    padding-bottom: 20px;
  }

  .modal-container.modal-athlete-form section > .row-container.space-between .image-control {
    width: 100%;
    padding: 10px 20px 20px 40px;
    border-top: 1px solid #ebebeb;
    margin-top: 0;
  }
}

.select-all {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin-bottom: 25px;
}

.select-athlete-list {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: center;
  justify-content: center;
  margin: 45px 65px 45px 65px;
  padding: 15px 0px;
  min-height: 80px;
  max-height: 400px;
  min-width: 300px;
  overflow-x: auto;
}

.select-athlete-list .athletes {
  height: 300px;
}

.select-athlete-list .athletes .athlete-name {
  font-size: 13px;
  color: #75777A;
  letter-spacing: 0.32px;
  line-height: 27px;
  font-weight: 500;
  margin-right: 15px;
}

.select-athlete-list .athletes .athlete-name.all {
  font-size: 14px;
}

.modal-container.modal-terms {
  overflow: auto;
  width: 740px;
  padding: 20px 40px;
}

.modal-container.modal-terms footer {
  margin-top: 25px;
}

.modal-container.modal-terms footer button {
  width: auto;
}

.admin-menu {
  -webkit-align-items: flex-end;
  align-items: flex-end;
  max-height: 65px;
  min-height: 65px;
  height: 65px;
}

.admin-menu > div {
  max-height: 40px;
  min-height: 40px;
  height: 40px;
  color: #a0a4a8;
  cursor: default;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  position: relative;
  letter-spacing: 1px;
}

.admin-menu > div.active {
  border-bottom: 4px solid #9768EB;
  color: #efefef;
}

.admin-menu > div:not(.active):hover {
  border-bottom: 4px solid #a0a4a8;
  cursor: pointer;
}

.admin-menu > div a {
  max-height: 40px;
  min-height: 40px;
  height: 40px;
  border: none;
  color: inherit;
  display: inline-block;
  outline: none;
  text-decoration: none;
}

.admin-menu > div span.marker {
  position: absolute;
  top: 0;
  right: -30px;
  width: 23px;
  height: 22px;
  background-color: #ff0000;
  border-radius: 50%;
  text-align: center;
}

.admin-menu > div + div {
  margin-left: 35px;
}

.admin-sub-menu {
  max-height: 30px;
  min-height: 30px;
  height: 30px;
  color: #a0a4a8;
  cursor: default;
  font-size: 13px;
  font-weight: normal;
  position: relative;
  letter-spacing: 1px;
  margin-top: 10px;
}

.admin-sub-menu > div {
  max-height: 30px;
  min-height: 30px;
  height: 30px;
}

.admin-sub-menu > div.active {
  border-bottom: 2px solid #9768EB;
  color: #efefef;
}

.admin-sub-menu > div:not(.active):hover {
  border-bottom: 2px solid #a0a4a8;
  cursor: pointer;
}

.admin-sub-menu > div + div {
  margin-left: 20px;
}

.tab-menu {
  max-height: 45px;
  min-height: 45px;
  height: 45px;
  max-width: 100px;
  min-width: 100px;
  width: 100px;
  border-top: 1px solid #ddd;
  border-right: 1px solid #ddd;
  padding: 0 10px;
}

.tab-menu span {
  font-weight: 600;
}

.tab-menu.selected {
  background-color: #9768EB;
}

.tab-menu.selected span {
  color: #fefefe;
}

.tab-menu:first-child {
  border-left: 1px solid #ddd;
}

.tab-view {
  border: 1px solid #ccc;
  padding: 5px;
}

.tab-view-list {
  list-style-type: none;
  padding-left: 0;
}

.test-container-header {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin-top: 25px;
}

@media (max-width: 768px) {
  .test-container-header {
    -webkit-flex-direction: column;
    flex-direction: column;
  }
}

.test-container-header .title {
  margin: 0;
  font-weight: 500;
  font-size: 34.5px;
  color: #75787B;
  line-height: 40px;
  letter-spacing: -0.6px;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 46px;
}

.test-container-header .main-col {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  padding-right: 20px;
}

.test-container-header .side-col {
  text-align: right;
}

@media (max-width: 768px) {
  .test-container-header .side-col {
    text-align: left;
  }
}

.test-container-header .side-col > div:not([class]) {
  font-size: 16.59px;
  letter-spacing: 0.31px;
  line-height: 22px;
}

.test-result-container {
  margin-bottom: 30px;
}

.test-result-header {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin: 0 0 10px;
}

.test-result-header .title {
  font-weight: 500;
  font-size: 34.5px;
  color: #9768EB;
  line-height: 40px;
  margin-bottom: 6px;
  letter-spacing: -0.6px;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 46px;
  margin: 0 0 6px;
}

.input-results {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
}

.results-column-container {
  -webkit-column-count: 2;
  -moz-column-count: 2;
  column-count: 2;
  -webkit-column-gap: 4em;
  -moz-column-gap: 4em;
  column-gap: 4em;
}

@media (max-width: 768px) {
  .results-column-container {
    -webkit-column-count: 1;
    -moz-column-count: 1;
    column-count: 1;
  }
}

.exercise-details {
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid-column;
  -moz-column-break-inside: avoid;
  -o-column-break-inside: avoid;
  -ms-column-break-inside: avoid;
  break-inside: avoid-column;
}

.linked-results-header {
  font-weight: 500;
  font-size: 34.5px;
  color: #75787B;
  line-height: 40px;
  letter-spacing: -0.6px;
}

.tested-by {
  font-size: 13px;
  color: #75777A;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  font-weight: bold;
  line-height: 18px;
}

.perform-additional-results {
  background-color: #efefef;
}

.performance-results {
  padding: 80px 0 80px;
  max-width: 778px;
  margin: 0 auto;
}

.performance-results .h2 {
  margin: 0 0 20px;
}

.performance-results section {
  page-break-inside: avoid;
  padding-bottom: 32px;
}

.performance-results section + section {
  padding-top: 32px;
}

.perform-notes-section {
  max-width: 778px;
  margin: 0 auto;
  padding: 0 0 120px 0;
}

.perform-notes-section .header {
  font-size: 13px;
  color: #75777A;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  font-weight: bold;
  line-height: 18px;
  padding: 0 0 12px;
}

.perform-notes-section .prose {
  font-size: 14px;
  font-weight: 500;
  color: #929392;
  line-height: 1.5;
}

.stress-index-block {
  margin-top: 45px;
}

.stress-index-block canvas {
  width: 1124px;
  height: 80px;
}

@media (max-width: 768px) {
  .stress-index-block canvas {
    width: 100%;
    height: auto;
  }
}

.stress-index-block img {
  max-width: 100%;
}

.stress-index-block > .header {
  margin-bottom: 6px;
}

.stress-index-block > .header .title {
  font-weight: 400;
  font-size: 18px;
  color: #75787B;
  letter-spacing: 1px;
  line-height: 1;
  text-transform: uppercase;
  margin: 0 0 18px;
}

.cat-header {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  font-weight: 400;
  font-size: 18px;
  color: #75787B;
  letter-spacing: 1px;
  line-height: 1;
  margin: 40px 0 18px;
}

.cat-score {
  color: #fff;
  padding: 3px 5px;
  margin-left: 20px;
}

.cat-score.green {
  background: #00B96D;
}

.cat-score.green + .dot {
  background: #00B96D;
}

.cat-score.yellow {
  background: #D7BB43;
}

.cat-score.yellow + .dot {
  background: #D7BB43;
}

.cat-score.red {
  background: #D1404B;
}

.cat-score.red + .dot {
  background: #D1404B;
}

.clinical-field {
  min-height: inherit;
  height: inherit;
}

textarea.clinical-notes {
  height: 70px;
  resize: none;
  margin-top: 10px;
}

.clinical-sub-note {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-align-items: flex-start;
  align-items: flex-start;
  margin-left: 25px;
}

.tree-line {
  height: 35px;
  width: 25px;
  border-left: 1px solid #bbb;
  border-bottom: 1px solid #bbb;
}

.clinical-notes-section {
  margin: 38px 0 60px;
  max-width: 560px;
}

label.clinical-form-field {
  display: block;
  border: none;
  margin: 0 40px;
}

hr.clinical-report-line {
  border: none;
  padding: 0;
  height: 1px;
  background: #D8D8D8;
  margin: 40px 0;
  clear: both;
}

span.clinical-label {
  display: block;
  padding: 10px 0px;
  min-width: 0;
  font-size: 13px;
  color: #75777A;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  font-weight: bold;
  line-height: 18px;
}

fusion-ordered-drop-down.clinical-drop-down {
  border: 1px solid #bbb;
  max-width: 626px;
  width: 626px;
  padding-left: 20px !important;
  max-height: 100px !important;
}

fusion-ordered-drop-down.clinical-drop-down > div.column-container {
  line-height: 20px;
  max-height: 100px;
  height: inherit;
}

fusion-ordered-drop-down.clinical-drop-down .select-toggle span.filtered {
  white-space: inherit;
}

fusion-ordered-drop-down.clinical-drop-down .options {
  position: absolute;
  top: 50px;
  left: 0;
  background-color: #ffffff;
  border-color: #999;
  box-shadow: 0 6px 10px 0 #999;
  max-height: 600px;
  min-width: 100%;
  overflow-y: scroll;
  z-index: 3;
}

fusion-ordered-drop-down.clinical-drop-down .options > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  white-space: inherit;
}

fusion-ordered-drop-down.clinical-drop-down .options > div:hover {
  background-color: #ccc;
}

.clinical-signature {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  margin-top: 30px;
  font-size: 14px;
  font-weight: 500;
  color: #929392;
  line-height: 1.5;
}

.clinical-signature > div {
  padding: 0px 15px 0px 15px;
}

.print-only {
  display: none;
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.test-athlete-name {
  color: #75777A;
  font-size: 18px;
  letter-spacing: 0.32px;
  font-weight: 400;
  line-height: 1.62;
  letter-spacing: 0.32px;
}

.perform-select {
  min-width: 133px;
  font-size: 18px;
  color: #75777A;
  border: 2px solid #D8D8D8;
  border-radius: 4px;
  height: 38px;
}

.recommended {
  margin-left: 10px;
  font-weight: bold;
  font-size: 13px;
  color: #c42a3b;
  text-transform: uppercase;
  display: inline-block;
  position: relative;
  top: -2px;
}

.recommended label {
  margin-left: 3px;
  position: relative;
  top: -2px;
}

/* --------------------------------------------
R+R Daily Test v2
----------------------------------------------*/

h3 span {
  color: #9768EB;
}

.rr-menu {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: stretch;
  align-items: stretch;
  max-width: 700px;
  height: 55px;
  border: 1px solid #cdcdcd;
  border-radius: 5px;
  background: #fff;
  overflow: hidden;
}

.rr-menu .custom {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.rr-menu .custom:not(:first-child) {
  border-left: 1px solid #cdcdcd;
}

.rr-menu .custom input {
  position: absolute;
  opacity: 0;
}

.rr-menu .custom input:checked ~ label {
  color: #fff;
  background: #9768EB;
}

.rr-menu .custom label {
  display: block;
  height: 55px;
  line-height: 55px;
  text-align: center;
  cursor: pointer;
  font-weight: bold;
}

.rr-menu .custom label:hover {
  background: #eee;
}

.rr-key {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  max-width: 700px;
  margin-top: 10px;
  color: #9768EB;
}

.rr-key label {
  width: 33.3%;
}

.rr-key label:nth-child(2) {
  text-align: center;
}

.rr-key label:nth-child(3) {
  text-align: right;
}

.repeated-shift-layout {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.repeated-shift-layout .test-row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.repeated-shift-layout .test-row:first-of-type {
  margin-bottom: 5px;
}

.repeated-shift-layout .test-row:last-of-type {
  margin-bottom: 5px;
}

.repeated-shift-layout .test-row:not(:first-of-type):not(:last-of-type) {
  margin-bottom: 15px;
}

.repeated-shift-layout .test-row .drop-off {
  color: #9768EB;
  font-size: 18px;
  line-height: 1.62;
}

.repeated-shift-layout .test-row .measurement-field {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.repeated-shift-layout .test-row .measurement-field:first-of-type {
  margin-left: 289px;
}

.repeated-shift-layout .test-row .measurement-field:not(:first-of-type) {
  margin-left: 23px;
}

.repeated-shift-layout .measurement-label {
  color: #75777A;
  margin-right: 3px;
  padding-right: 18px;
  width: 10px;
}

.y-balance-layout {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.y-balance-layout .test-row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin-bottom: 5px;
}

.y-balance-layout .test-row:not(:first-of-type):not(:last-of-type) {
  margin-bottom: 20px;
}

.y-balance-layout .test-row .sub-label {
  padding-left: 35px;
}

.y-balance-layout .test-row .diff {
  margin-left: 51px;
  color: #9768EB;
  font-size: 18px;
  line-height: 1.92;
}

.y-balance-layout .test-row .measurement-field {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin-right: 10px;
}

.y-balance-layout .test-row .measurement-field:first-of-type {
  margin-left: 275px;
}

.y-balance-layout .test-row .measurement-field .measurement-label {
  color: #75777A;
  margin-right: 3px;
  width: 10px;
}

.measurement-group {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.measurement-group .test-row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin-bottom: 5px;
}

.measurement-group .test-row:not(:first-of-type):not(:last-of-type) {
  margin-bottom: 20px;
}

.measurement-group .test-row .sub-label {
  padding-left: 35px;
}

.measurement-group .test-row .measurement-field {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin-right: 23px;
}

.measurement-group .test-row .measurement-field:first-of-type {
  margin-left: 275px;
}

.measurement-group .test-row .measurement-field .measurement-label {
  color: #75777A;
  margin-right: 3px;
  width: 10px;
}

.test-results-button {
  width: 100%;
  width: -webkit-fill-available;
}

@media (max-width: 768px) {
  .reports-resp-header {
    -webkit-flex-direction: column !important;
    flex-direction: column !important;
  }

  .reports-resp-header .resp-header-actions {
    justify-content: flex-start;
  }
}

.progress-report-options {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin: 30px 0 5px;
  gap: 10px;
  flex-wrap: wrap;
}

.progress-report-options .date-ranges {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  margin-left: 30px;
  gap: 20px;
}

@media (max-width: 768px) {
  .progress-report-options .date-ranges {
    margin-left: 0;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
  }
}

.progress-report-nodata {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  min-height: 250px;
  font-size: 20px;
}

.report-chart-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.report-chart-container .report-chart-details {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  margin-top: 30px;
  margin-left: 20px;
}

.report-chart-container .report-chart-details .report-chart-detail {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.report-chart-container .report-chart-details .report-chart-detail.team,
.report-chart-container .report-chart-details .report-chart-detail.total {
  margin-top: 15px;
}

.report-chart-container .report-chart-details .report-chart-detail > div {
  min-width: 130px;
  min-height: 90px;
  margin: 0 10px;
}

@media (max-width: 768px) {
  .report-chart-container .report-chart-details .report-chart-detail > div {
    min-width: calc(33% - 18px);
    max-width: calc(33% - 18px);
  }
}

.report-chart-container .report-chart-details .report-chart-detail .report-detail-chart-line > canvas {
  width: 130px;
  height: 20px;
}

@media (max-width: 768px) {
  .report-chart-container .report-chart-details .report-chart-detail .report-detail-chart-line > canvas {
    width: 100% !important;
    height: 20px !important;
  }
}

.report-chart-container .report-chart-details .report-chart-detail .score-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  line-height: 30px;
  padding-top: 15px;
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .score {
  font-size: 30px;
  font-weight: 100;
}

@media (max-width: 768px) {
  .report-chart-container .report-chart-details .report-chart-detail .score-container .score {
    font-size: 24px;
  }
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .change {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  margin: 0 10px;
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .change.increase {
  color: #20b769;
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .change.increase i.fa {
  margin-top: 8px;
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .change.decrease {
  color: #c42a3b;
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .change.decrease i.fa {
  margin-bottom: 4px;
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .change.perform-increase i.fa {
  margin-top: 8px;
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .change.perform-decrease i.fa {
  margin-bottom: 4px;
}

.report-chart-container .report-chart-details .report-chart-detail .score-container .change i.fa {
  min-width: 12px;
}

.report-chart-container .report-chart-details .report-chart-detail .trophies {
  padding-top: 0px;
}

.report-chart-container .report-chart-details .report-chart-detail .trophies > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  margin-top: 10px;
}

.report-chart-container .report-chart-details .report-chart-detail .trophies .trophy-place {
  font-size: 30px;
  font-weight: 100;
  margin-left: 10px;
}

.report-details-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  margin-top: 30px;
  background-color: #ffffff;
}

.report-details-container .title {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-self: center;
  align-self: center;
  max-width: 1024px;
  min-width: 1024px;
  width: 1024px;
  margin-bottom: 30px;
  font-size: 20px;
}

.report-details {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  margin-bottom: 50px;
}

@media (max-width: 768px) {
  .report-details {
    overflow: auto;
  }
}

.report-details > div {
  padding-bottom: 10px;
}

.report-details .change {
  position: absolute;
  top: 0;
  right: -8px;
  min-width: 70px;
  line-height: 20px;
}

.report-details .change > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  margin: 0 10px;
  font-size: 12px;
}

.report-details .change > div.increase {
  color: #20b769;
}

.report-details .change > div.increase i.fa {
  margin-top: 8px;
}

.report-details .change > div.decrease {
  color: #c42a3b;
}

.report-details .change > div.decrease i.fa {
  margin-bottom: 4px;
}

.report-details .change > div.perform-increase i.fa {
  margin-top: 8px;
}

.report-details .change > div.perform-decrease i.fa {
  margin-bottom: 4px;
}

.report-details .change > div i.fa {
  min-width: 12px;
}

.report-details .names-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  min-width: 250px;
}

.report-details .names-container > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 40px;
  min-width: 180px;
  padding-left: 30px;
}

.report-details .names-container .header-row {
  background-color: #dfdfdf;
}

.report-details .names-container .header-row span {
  font-size: 12px;
  font-weight: bold;
  text-transform: uppercase;
}

.report-details .names-container .header-row + .header-row {
  background-color: #d4d4d4;
}

.report-details .names-container .detail-row > div {
  min-width: 180px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.report-details .names-container .detail-row:nth-child(odd) {
  background-color: #242424;
  color: #f7f7f7;
}

.report-details .names-container .detail-row:nth-child(even) {
  background-color: #2e2e2e;
  color: #f7f7f7;
}

.report-details .names-container .detail-row.sub-total {
  background-color: #d4d4d4;
  color: #75787b;
  font-size: 12px;
  text-transform: uppercase;
}

.report-details .names-container .detail-row.sub-total + .sub-total {
  background-color: #dfdfdf;
}

.report-details .names-container .detail-row.total {
  background-color: #9768EB;
  color: #f7f7f7;
  font-size: 12px;
  text-transform: uppercase;
}

.report-details .names-container .detail-row .detail-row-position {
  margin-left: 15px;
}

.report-details .info-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.report-details .info-container > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  min-height: 40px;
  min-width: 110px;
}

.report-details .info-container .header-row {
  background-color: #dfdfdf;
}

.report-details .info-container .header-row span {
  font-size: 12px;
  font-weight: bold;
  text-transform: uppercase;
}

.report-details .info-container .header-row + .header-row {
  background-color: #d4d4d4;
}

.report-details .info-container .detail-row:nth-child(odd) {
  background-color: #efefef;
}

.report-details .info-container .detail-row:nth-child(even) {
  background-color: #fefefe;
}

.report-details .scores-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  width: auto;
  white-space: nowrap;
  overflow-y: hidden;
  overflow-x: scroll;
  padding-right: 10px;
}

@media (max-width: 768px) {
  .report-details .scores-container {
    overflow-y: unset;
    overflow-x: unset;
  }
}

.report-details .scores-container > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.report-details .scores-container > div > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  min-height: 40px;
  min-width: 210px;
}

.report-details .scores-container > div:first-child .header-row {
  border-left: 1px solid #ccc;
}

.report-details .scores-container > div:first-child .detail-row {
  border-left: 1px solid #ccc;
}

.report-details .scores-container .header-row {
  background-color: #dfdfdf;
  border-right: 1px solid #ccc;
}

.report-details .scores-container .header-row.right-left > span {
  min-width: 55px;
  text-align: center;
}

.report-details .scores-container .header-row span {
  font-size: 12px;
  font-weight: bold;
  text-transform: uppercase;
}

.report-details .scores-container .header-row + .header-row {
  background-color: #d4d4d4;
}

.report-details .scores-container .detail-row {
  border-right: 1px solid #ccc;
}

.report-details .scores-container .detail-row:nth-child(odd) {
  background-color: #efefef;
}

.report-details .scores-container .detail-row:nth-child(even) {
  background-color: #fefefe;
}

.report-details .scores-container .detail-row > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: center;
  justify-content: center;
}

.report-details .scores-container .detail-row > div.right-left > span {
  min-width: 55px;
  font-size: 14px;
  text-align: center;
}

.report-details .scores-container .detail-row > div.change-container {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  position: relative;
}

.progress-report-bodymap {
  max-height: 213px;
  max-width: 100px;
}

.progress-report-hidden {
  visibility: hidden;
}

/* .program-group-dropdown-container and .report-programs-container lived here.
   Both were markup on the Programs tab only (progressreport.html), which now
   renders .programs-details instead - see _programs_details.scss. Nothing else
   in either bundle referenced them. */

/* Tab bar + header actions for the progress report page (/reports/:athleteId).

   The underline tabs are the same pattern as the athlete profile page
   (_profile_athlete.scss). Tokens are restated locally rather than reaching
   for $athlete-profile-*, which is file-local to that partial by convention.

   Everything here lives inside .print-node's .noprint header, so none of it
   reaches the jsPDF capture in test_results_pdf.js:generateProgressReport.

   Traps this build has: no global border-box reset (fold borders into fixed
   sizes by hand), no autoprefixer, and a global `button` rule that forces
   min-width 110px + uppercase + a lock-height - see unstyle-button. */

.progress-report-layout {
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  padding: 6px 20px 0 20px;
  background-color: #f6f6f7;
}

.progress-report-layout > .view-container {
  flex: 1 1 auto;
  min-width: 0;
  max-width: none;
  width: auto;
}

.progress-report-tabs {
  border-bottom: 1px solid #e7e7e7;
  display: flex;
  font-family: 'Nudista', sans-serif;
  gap: 24px;
  margin: 0;
}

.progress-report-tabs__tab {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  background: none;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  color: #6d6d6d;
  cursor: pointer;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 15px;
  margin-bottom: -1px;
  padding: 8px 4px 0;
  text-transform: none;
  transition: color 0.15s ease, border-color 0.15s ease;
}

.progress-report-tabs__tab:hover {
  color: #7355b5;
}

.progress-report-tabs__tab:focus {
  outline: none;
}

.progress-report-tabs__tab--active {
  border-bottom-color: #9768eb;
  color: #6941c6;
}

.progress-report-head {
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin: 28px 0 0;
}

.progress-report-head__title {
  color: #120d1c;
  font-family: 'Nudista', sans-serif;
  font-size: 30px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 100%;
  margin: 0;
  min-height: 0;
}

.progress-report-head__actions {
  display: flex;
  flex-shrink: 0;
  gap: 8px;
}

.progress-report-head__action {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  align-items: center;
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 6px;
  box-sizing: border-box;
  color: #4f4f4f;
  cursor: pointer;
  display: inline-flex;
  height: 40px;
  justify-content: center;
  padding: 0;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
  width: 40px;
}

.progress-report-head__action:hover:not([disabled]) {
  background: #f2edfc;
  border-color: #9768eb;
  color: #9768eb;
}

.progress-report-head__action:focus {
  border-color: #9768eb;
  box-shadow: 0 0 0 2px #e0d5f5;
  outline: none;
}

.progress-report-head__action[disabled] {
  background: #ffffff;
  border-color: #e7e7e7;
  color: #b0b0b0;
  cursor: default;
}

.progress-report-head__action svg {
  display: block;
  height: 20px;
  width: 20px;
}

.progress-report-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 96px 24px;
  text-align: center;
  min-height: calc(100vh - 250px);
}

.progress-report-empty__title {
  margin: 0;
  color: #4f4f4f;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 20px;
  text-align: center;
}

.progress-report-empty__description {
  margin: 0;
  color: #4f4f4f;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 20px;
  text-align: center;
}

.progress-report-empty__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  gap: 8px;
  box-sizing: border-box;
  width: 180px;
  height: 40px;
  min-height: 40px;
  max-height: 40px;
  margin: 24px 0 0;
  padding: 12px 16px;
  background: #ffffff;
  border: 1px solid #9768eb;
  border-radius: 4px;
  box-shadow: none;
  color: #9768eb;
  cursor: pointer;
  font-family: 'Nudista-web', 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 100%;
  text-align: center;
  text-transform: none;
  white-space: nowrap;
}

.progress-report-empty__cta:hover:not([disabled]) {
  background: #f2edfc;
  box-shadow: none;
}

.progress-report-empty__cta[disabled] {
  background: #d9dbdc;
  border-color: #d9dbdc;
  color: #ffffff;
  cursor: default;
}

.progress-report-archives {
  margin-top: 8px;
}

@media (max-width: 900px) {
  .progress-report-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
  }

  .progress-report-tabs {
    gap: 16px;
    overflow-x: auto;
  }

  .progress-report-empty {
    min-height: 320px;
  }
}

/* The "Detailed Test Results" card at the bottom of the progress report
   (/reports/:athleteId, views/progressreport.html).

   Deliberately NOT a restyle of .report-details-container / .report-details in
   _progress_report.scss: teamreport.html:392 renders that same markup against
   those same rules, so editing them in place would drag the team report along
   with it. This block is applied to the progress view only; the team report
   keeps the legacy dark/zebra grid.

   The grid is three parallel flex columns (names / info / scores), not a
   <table>, and stays that way: the names column holds still while
   .progress-details__scores scrolls horizontally, and the ng-repeats are
   transposed (vm.detailNames drives rows, vm.detailDates drives columns, each
   column carrying its own entries array). Turning it into a table would need
   row-major data, which is a controller change, not a restyle.

   Because the columns are independent flex stacks, rows only line up because
   every row in every column agrees on $ptd-row-h. Row separators are therefore
   drawn with an inset box-shadow rather than a border - a border would add 1px
   of layout height per row and walk the columns out of register down the table.

   Score colours come from .red-text / .yellow-text / .green-text
   (_base.scss:316-323), interpolated from the API's riskColor. Those are 0,1,0
   selectors, so nothing here may set `color` on a descendant span of a cell: an
   0,1,1 rule would silently win and flatten the colour coding.

   Traps this build has: no global border-box reset (state box-sizing by hand)
   and no autoprefixer. */

.progress-details {
  background-color: #ffffff;
  border: 1px solid #ececec;
  border-radius: 12px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  box-sizing: border-box;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  align-self: flex-start;
  max-width: 100%;
  font-family: 'Nudista', sans-serif;
  margin: 30px 0 50px;
  padding: 20px;
}

.progress-details .red-text {
  color: #F04438;
}

.progress-details .yellow-text {
  color: #E5A633;
}

.progress-details .green-text {
  color: #12B76A;
}

.progress-details__title {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  color: #120d1c;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  margin: 0 0 20px;
}

.progress-details__type-filter {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  gap: 8px;
}

.progress-details__type-label {
  color: #4F4F4F;
  font-family: 'Nudista', sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 24px;
}

.progress-details__type-filter .select-pill .dropdown-wrapper .trigger.pill {
  height: 32px;
}

.progress-details__grid {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  display: inline-flex;
  max-width: 100%;
  border: 1px solid #ececec;
  border-radius: 6px;
  box-sizing: border-box;
  overflow: hidden;
}

.progress-details__columns {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  -webkit-align-items: flex-start;
  align-items: flex-start;
  overflow: hidden;
}

.progress-details__names {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  margin-bottom: -1px;
  min-width: 250px;
}

.progress-details__info {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  margin-bottom: -1px;
}

.progress-details__scores {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin-bottom: -1px;
  overflow-x: auto;
  overflow-y: hidden;
  white-space: nowrap;
  width: auto;
}

.progress-details__column {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
}

.progress-details__head {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  background-color: #ffffff;
  box-shadow: inset 0 -1px 0 #ececec;
  box-sizing: border-box;
  color: #6d6d6d;
  font-size: 13px;
  font-weight: 600;
  line-height: 20px;
  min-height: 34px;
  text-transform: none;
}

.progress-details__row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  background-color: #ffffff;
  box-shadow: inset 0 -1px 0 #ececec;
  box-sizing: border-box;
  min-height: 44px;
}

.progress-details__names .progress-details__head,
.progress-details__names .progress-details__row {
  min-width: 180px;
  padding-left: 20px;
}

.progress-details__names .progress-details__head,
.progress-details__info--unit .progress-details__head {
  font-weight: 500;
}

.progress-details__names .progress-details__row {
  color: #1f1f28;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
}

.progress-details__names .progress-details__row > div {
  min-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.progress-details__names .progress-details__row--subtotal {
  color: #120d1c;
  font-style: italic;
  font-weight: 600;
}

.progress-details__names .progress-details__row--total {
  font-weight: 600;
}

.progress-details--perform .progress-details__names .progress-details__row {
  font-weight: 600;
}

.progress-details--perform .progress-details__names .progress-details__row--subtotal {
  font-style: normal;
}

.progress-details--perform .progress-details__names .progress-details__row--difference {
  font-style: italic;
  font-weight: 500;
}

.progress-details__info .progress-details__head,
.progress-details__info .progress-details__row {
  -webkit-justify-content: center;
  justify-content: center;
  min-width: 110px;
  padding: 0 12px;
}

.progress-details__info--unit .progress-details__head,
.progress-details__info--unit .progress-details__row {
  min-width: 90px;
}

.progress-details__unit-pill {
  align-items: center;
  border-radius: 16px;
  box-sizing: border-box;
  display: inline-flex;
  font-size: 12px;
  font-weight: 600;
  height: 22px;
  justify-content: center;
  line-height: 16px;
  mix-blend-mode: multiply;
  padding: 2px 8px;
}

.progress-details__unit-pill--percent {
  width: 26px;
}

.progress-details__unit-pill--cm,
.progress-details__unit-pill--ft,
.progress-details__unit-pill--in,
.progress-details__unit-pill--kg,
.progress-details__unit-pill--lb {
  width: 34px;
}

.progress-details__unit-pill--sec {
  width: 37px;
}

.progress-details__unit-pill--cm,
.progress-details__unit-pill--ft,
.progress-details__unit-pill--in {
  background: #FDEAD7;
  color: #B93815;
}

.progress-details__unit-pill--kg,
.progress-details__unit-pill--lb {
  background: #ECE9FE;
  color: #5925DC;
}

.progress-details__unit-pill--percent {
  background: #FCE7F6;
  color: #C11574;
}

.progress-details__unit-pill--sec {
  background: #D1E9FF;
  color: #175CD3;
}

.progress-details__unit-pill--reps {
  background: #D3F8DF;
  color: #17803D;
}

.progress-details__unit-pill--score {
  background: #E9EAEB;
  color: #414651;
}

.progress-details__scores .progress-details__head,
.progress-details__scores .progress-details__row {
  -webkit-justify-content: center;
  justify-content: center;
  min-width: 210px;
  padding: 0 12px;
}

.progress-details__date {
  color: #7355B5;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
  text-decoration: underline;
}

.progress-details__head--sides > span {
  min-width: 55px;
  text-align: center;
}

.progress-details__cell {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 500;
}

.progress-details__sides > span {
  font-size: 14px;
  min-width: 55px;
  text-align: center;
}

.progress-details__row--total {
  background-color: #f7f7f8;
  color: #120d1c;
  font-weight: 600;
  text-transform: none;
}

.progress-details__row--group-header {
  background-color: #F6F6F6;
  min-height: 24px;
}

.progress-details__group-label {
  color: #6D6D6D;
  font-family: 'Nudista', sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
  text-transform: uppercase;
}

.progress-details__legend {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  box-shadow: inset 0 1px 0 #ececec;
  box-sizing: border-box;
  color: #6d6d6d;
  font-size: 13px;
  font-weight: 500;
  line-height: 20px;
  min-height: 36px;
  padding-left: 20px;
}

.progress-details__legend-item {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.progress-details__legend-item + .progress-details__legend-item {
  margin-left: 24px;
}

.progress-details__legend-dot {
  border-radius: 50%;
  display: inline-block;
  height: 8px;
  margin-right: 8px;
  width: 8px;
}

.progress-details__legend-dot--poor {
  background-color: #F04438;
}

.progress-details__legend-dot--moderate {
  background-color: #E5A633;
}

.progress-details__legend-dot--good {
  background-color: #12B76A;
}

@media (max-width: 768px) {
  .progress-details {
    padding: 16px;
  }

  .progress-details__columns {
    overflow-x: auto;
    overflow-y: hidden;
  }

  .progress-details__scores {
    overflow-x: unset;
    overflow-y: unset;
  }

  .progress-details__legend {
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    padding: 8px 0 8px 20px;
  }
}

/* The "Detailed Programs Results" card at the bottom of the progress report's
   Programs tab (/reports/:athleteId, views/progressreport.html).

   Sibling of _progress_details.scss and deliberately its own block rather than
   a modifier of it. The two cards share a shell - same border, radius, shadow,
   title bar, header/row heights and hairline treatment - but nothing else:
   .progress-details is three parallel flex columns because its data arrives
   transposed, while vm.detailPrograms is one object per row, so this one is a
   plain row-major table. Sharing a class would mean carrying that column
   machinery for a table that has no use for it.

   The shell constants below are restated rather than imported from
   _progress_details.scss, because SCSS variables are file-local unless hoisted
   to _design_tokens.scss. If you change a row height in one card, change it in
   the other or the two stop reading as one family.

   Replaces .report-programs-container / .program-group-dropdown-container,
   which were removed from _progress_report.scss - teamreport.html never
   rendered them, so nothing else was on those rules.

   Traps this build has: no global border-box reset (state box-sizing by hand)
   and no autoprefixer. */

.programs-details {
  background-color: #ffffff;
  border: 1px solid #ececec;
  border-radius: 12px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  box-sizing: border-box;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  align-self: flex-start;
  max-width: 100%;
  font-family: 'Nudista', sans-serif;
  margin: 30px 0 50px;
  padding: 20px;
}

.programs-details__title {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  color: #120d1c;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  margin: 0 0 20px;
}

.programs-details__type-filter {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  gap: 8px;
}

.programs-details__type-label {
  color: #4f4f4f;
  font-size: 12px;
  font-weight: 500;
  line-height: 24px;
}

.programs-details__type-filter .select-pill .dropdown-wrapper .trigger.pill {
  height: 32px;
}

.programs-details__grid {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  display: inline-flex;
  max-width: 100%;
  border: 1px solid #ececec;
  border-radius: 6px;
  box-sizing: border-box;
  overflow: hidden;
  overflow-x: auto;
}

.programs-details__row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  background-color: #ffffff;
  box-shadow: inset 0 -1px 0 #ececec;
  box-sizing: border-box;
  min-height: 44px;
  min-width: max-content;
}

.programs-details__row:last-child {
  margin-bottom: -1px;
}

.programs-details__row--head {
  min-height: 34px;
}

.programs-details__row--head .programs-details__cell {
  color: #6d6d6d;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: normal;
  line-height: 18px;
}

.programs-details__row--total {
  background-color: #f7f7f8;
  font-weight: 600;
}

.programs-details__cell {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  box-sizing: border-box;
  color: #120d1c;
  font-size: 14px;
  font-weight: 500;
  padding: 0 8px;
}

.programs-details__cell--name {
  -webkit-flex: 0 0 220px;
  -ms-flex: 0 0 220px;
  flex: 0 0 220px;
  font-weight: 600;
  overflow: hidden;
  padding-left: 20px;
  text-overflow: ellipsis;
  white-space: nowrap;
  width: 220px;
}

.programs-details__cell--type {
  -webkit-flex: 0 0 160px;
  -ms-flex: 0 0 160px;
  flex: 0 0 160px;
  gap: 4px;
  width: 160px;
}

.programs-details__cell--count {
  -webkit-flex: 0 0 144px;
  -ms-flex: 0 0 144px;
  flex: 0 0 144px;
  -webkit-justify-content: center;
  justify-content: center;
  width: 144px;
}

.programs-details__cell--percent {
  -webkit-flex: 0 0 144px;
  -ms-flex: 0 0 144px;
  flex: 0 0 144px;
  gap: 8px;
  width: 144px;
}

.programs-details__cell--date {
  -webkit-flex: 0 0 144px;
  -ms-flex: 0 0 144px;
  flex: 0 0 144px;
  -webkit-justify-content: center;
  justify-content: center;
  width: 144px;
}

.programs-details__cell--date:last-child {
  padding-right: 20px;
}

.programs-details__type-pill {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  background: #f2f2f4;
  border-radius: 4px;
  box-sizing: border-box;
  color: #6d6d6d;
  flex: 0 1 auto;
  font-size: 12px;
  font-weight: 600;
  gap: 4px;
  height: 20px;
  line-height: 20px;
  max-width: 100%;
  min-width: 0;
  padding: 0 8px;
  text-align: center;
}

.programs-details__type-icon {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  display: block;
  height: 12px;
  object-fit: contain;
  width: 12px;
}

.programs-details__type-pill-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.programs-details__bar {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  background-color: #ececec;
  border-radius: 999px;
  box-sizing: border-box;
  height: 6px;
  overflow: hidden;
  width: 75px;
}

.programs-details__bar-fill {
  background-color: #12b76a;
  border-radius: 999px;
  height: 100%;
}

.programs-details__percent-value {
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
}

.programs-details__tip {
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  border: 1px solid #b0b0b0;
  border-radius: 50%;
  color: #9d9d9d;
  cursor: pointer;
  display: inline-flex;
  font-size: 10px;
  font-style: normal;
  font-weight: 600;
  height: 14px;
  line-height: 1;
  width: 14px;
}

.programs-details__tip:before {
  content: '?';
}

.programs-details__tip:hover {
  border-color: #9768eb;
  color: #9768eb;
}

.programs-details__tip .tooltip-bottom {
  background-color: #1a1a33;
  width: 312px;
  height: 152px;
  box-sizing: border-box;
  padding: 8px 20px;
  left: -16px;
  top: 16px;
  font-size: 12px;
  line-height: 16px;
  letter-spacing: normal;
}

.programs-details__tip .tooltip-bottom .ttContent {
  color: #ffffff;
  font-weight: 500;
}

.programs-details__tip .tooltip-bottom:after {
  border-width: 0 6px 6px 6px;
  border-color: #1a1a33 transparent;
  top: -3px;
  left: 15px;
  background-color: transparent;
  min-width: 0;
  min-height: 0;
  padding: 0;
}

.programs-details__tip-row {
  margin: 0 0 12px;
}

.programs-details__tip-row:last-child {
  margin-bottom: 0;
}

.programs-details__tip-label {
  font-weight: 700;
}

.programs-details__tip-text {
  font-weight: 500;
}

@media (max-width: 768px) {
  .programs-details {
    padding: 16px;
  }

  .programs-details__title {
    -webkit-align-items: flex-start;
    align-items: flex-start;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
    flex-direction: column;
    gap: 12px;
  }
}

/* The "Progress Summary" card on the progress report
   (/reports/:athleteId, views/progressreport.html).

   Replaces the legacy .report-summary-container / .report-summary block that
   used to live in _progress_report.scss. Unlike the detail table below it, this
   markup was never shared - teamreport.html does not render it - so the old
   rules were deleted outright rather than left standing beside these.

   Companion to _progress_details.scss: same card recipe (white ground, hairline
   border, 12px radius, the same faint shadow) so the two blocks read as one
   page. Tokens are restated here rather than reaching for $ptd-*, which is
   file-local to that partial by convention.

   The per-test cards are a CSS grid of flexible tracks, so a card's width is
   whatever its column gets. That is the whole reason the sparkline is rendered
   with `chart-responsive`: progressInsightChart sizes its canvas from the
   element's laid-out width, and Chart.js 1.x then pins that width inline, so a
   `width: 100%` here would otherwise be overwritten on first paint. The
   measurement only works while the card stays `min-width: 0` - an `auto`
   minimum would let the canvas it is measuring contribute to the track size it
   is being measured against.

   Traps this build has: no global border-box reset (state box-sizing by hand)
   and no autoprefixer. */

.progress-summary {
  background-color: #ffffff;
  border: 1px solid #ececec;
  border-radius: 12px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  box-sizing: border-box;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  font-family: 'Nudista', sans-serif;
  margin: 30px 0 0;
  padding: 20px;
}

.progress-summary__title {
  color: #120d1c;
  font-size: 18px;
  font-weight: 600;
  line-height: 22px;
  margin: 0 0 20px;
}

.progress-summary__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(263px, 1fr));
  gap: 12px;
}

.progress-summary__card {
  background-color: #ffffff;
  border: 1px solid #ececec;
  border-radius: 8px;
  box-sizing: border-box;
  min-height: 132px;
  min-width: 0;
  padding: 12px 16px;
}

.progress-summary__name {
  color: #4f4f4f;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  margin-bottom: 4px;
  overflow-wrap: break-word;
  word-wrap: break-word;
}

.progress-summary__value {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

.progress-summary__score {
  color: #120d1c;
  font-size: 24px;
  font-weight: 500;
  line-height: 32px;
}

.progress-summary__change {
  display: inline-flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  font-size: 13px;
  font-weight: 600;
  gap: 3px;
  line-height: 1;
}

.progress-summary__change--up {
  color: #20b769;
}

.progress-summary__change--down {
  color: #c42a3b;
}

.progress-summary__trend-icon {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 14px;
  width: 14px;
}

.progress-summary__spark {
  display: block;
  height: 42px;
  margin-top: 8px;
  max-width: 100%;
  width: 100%;
}

/* The "Overview" card at the top of the progress report
   (/reports/:athleteId, views/progressreport.html): the score chart, the
   Average / Min / Max / Team Average / Team Rank tiles, and the tip banner.

   Deliberately NOT a restyle of .report-chart-container / .report-chart-details
   / .report-chart-detail in _progress_report.scss: teamreport.html:65,88,95,242
   renders that same markup against those same rules, so editing them in place
   would drag the team report along with it. This block is applied to the
   progress view only; the team report keeps the legacy layout.

   That rename is also what buys the card its responsiveness for free. Three
   separate sheets ship mobile overrides keyed to the legacy names -
   _responsiveness_tweaks.scss:195-215 and :471-487, and
   fusionetics-mark-additions.scss:5820-5839, the last of those with !important
   from a bundle that loads after this one. None of them match .progress-overview,
   so the block gets to state its own breakpoints instead of fighting them.

   Progress tab only. This card used to serve the Programs tab as well, through
   a second chartType === 'bar' branch that kept the legacy `column-container
   line-chart` classes (scoreBarChart had no responsive path, so
   _charting.scss:29-36 sized it) plus a --legacy modifier at 0,2,0 to beat
   _responsiveness_tweaks.scss's `.line-chart { flex(2) }` on source order. The
   Programs tab has its own pair of cards now - see _programs_overview.scss and
   _programs_completion.scss - so that branch, its modifier and the
   chartInfo.type === 3 tiles are all gone, and nothing in this file has to
   share specificity with _charting.scss any more.

   The values are deliberately neutral. The legacy block interpolated
   .red-text / .yellow-text / .green-text (_base.scss:317-323) onto every score
   from the API's riskColor; here the bar underneath carries the band instead
   and the number stays $black-800. That is why the bar modifiers restate the
   palette as background-color rather than reusing those text classes - the
   colour coding moved, it did not go away. Tiles whose value has no 0-100
   scale therefore have no colour cue at all, which is correct: they never had
   a meaningful one.

   Consequence worth knowing if you re-add a text class here: those selectors
   are 0,1,0 and _base.scss imports first, so an 0,1,0 `color` in this file
   wins and would silently flatten them again.

   The chart canvas is measured, not sized. scoreLineChart reads __chart-box's
   clientWidth/clientHeight and writes the result onto the canvas, so the box
   needs an explicit height (reading the canvas's own laid-out height would be
   circular) and __chart must stay min-width: 0 - an `auto` minimum would let
   the canvas be part of what sizes the track it is being measured against.
   Same contract _progress_summary.scss:14-22 documents for the sparklines.

   Traps this build has: no global border-box reset (state box-sizing by hand)
   and no autoprefixer. */

.progress-overview {
  background-color: #ffffff;
  border: 1px solid #ececec;
  border-radius: 12px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  box-sizing: border-box;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  font-family: 'Nudista', sans-serif;
  margin: 20px 0 0;
  padding: 20px;
}

.progress-overview__title {
  color: #120d1c;
  font-size: 18px;
  font-weight: 600;
  line-height: 22px;
  margin: 0 0 20px;
}

.progress-overview__body {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: flex-start;
  align-items: flex-start;
  gap: 32px;
}

.progress-overview__chart {
  -webkit-flex: 1 1 0;
  -ms-flex: 1 1 0;
  flex: 1 1 0;
  min-width: 0;
}

.progress-overview__chart-box {
  height: 300px;
}

.progress-overview__chart-canvas {
  display: block;
}

.progress-overview__legend {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  margin-top: 12px;
}

.progress-overview__legend-item {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.progress-overview__legend-item + .progress-overview__legend-item {
  margin-left: 24px;
}

.progress-overview__legend-dot {
  border-radius: 50%;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 8px;
  margin-right: 8px;
  width: 8px;
}

.progress-overview__legend-dot--score {
  background-color: rgba(151, 104, 235, 0.9);
}

.progress-overview__legend-dot--average {
  background-color: rgba(207, 218, 220, 0.9);
}

.progress-overview__legend-dot--team {
  background-color: rgba(125, 125, 125, 0.75);
}

.progress-overview__legend-label {
  color: #6d6d6d;
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
}

.progress-overview__tiles {
  -webkit-flex: 1 1 0;
  -ms-flex: 1 1 0;
  flex: 1 1 0;
  display: grid;
  gap: 20px 16px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  min-width: 0;
}

.progress-overview__tile {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  box-sizing: border-box;
  min-width: 0;
}

.progress-overview__tile-head {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  gap: 4px;
}

.progress-overview__tile-label {
  color: #4f4f4f;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
}

.progress-overview__value-row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 8px;
  margin: 4px 0 12px;
}

.progress-overview__value {
  color: #120d1c;
  font-size: 24px;
  font-weight: 500;
  line-height: 32px;
}

.progress-overview__change {
  display: inline-flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  color: #6d6d6d;
  font-size: 13px;
  font-weight: 600;
  gap: 3px;
  line-height: 1;
}

.progress-overview__change--up {
  color: #20b769;
}

.progress-overview__change--down {
  color: #c42a3b;
}

.progress-overview__trend-icon {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 14px;
  width: 14px;
}

.progress-overview__bar {
  background-color: #ececec;
  border-radius: 999px;
  box-sizing: border-box;
  height: 5px;
  margin-top: auto;
  max-width: 100%;
  overflow: hidden;
  width: 160px;
}

.progress-overview__bar-fill {
  background-color: #929292;
  border-radius: 999px;
  height: 100%;
}

.progress-overview__bar-fill--red {
  background-color: #c42a3b;
}

.progress-overview__bar-fill--yellow {
  background-color: #dfc03f;
}

.progress-overview__bar-fill--green {
  background-color: #20b769;
}

.progress-overview__bar-fill--purple {
  background-color: #9768eb;
}

.progress-overview__trophy {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  gap: 10px;
  margin: 4px 0 12px;
}

.progress-overview__trophy-icon {
  color: #9768eb;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 24px;
  width: 24px;
}

.progress-overview__trophy-place {
  color: #120d1c;
  font-size: 24px;
  font-weight: 500;
  line-height: 32px;
}

.progress-overview__banner {
  background-color: #f8f5ff;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  box-sizing: border-box;
  border: 1px solid #e0d5f5;
  border-radius: 8px;
  gap: 10px;
  margin-top: 20px;
  padding: 16px;
}

.progress-overview__banner-icon {
  color: #9768eb;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 20px;
  width: 20px;
}

.progress-overview__banner-text {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  min-width: 0;
}

.progress-overview__banner-title {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  color: #533d82;
  font-size: 16px;
  font-weight: 600;
  gap: 8px;
  line-height: 16px;
}

.progress-overview__banner-body {
  color: #6d6d6d;
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  margin-top: 4px;
  white-space: pre-line;
}

.progress-overview__cta {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: inline-flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  box-sizing: border-box;
  gap: 8px;
  height: 36px;
  min-height: 36px;
  max-height: 36px;
  margin-left: auto;
  padding: 8px 16px;
  background: #f8f5ff;
  border: 1px solid #b0b0b0;
  border-radius: 4px;
  box-shadow: none;
  color: #000000;
  cursor: pointer;
  font-family: 'Nudista-web', 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 100%;
  text-align: right;
  text-transform: none;
  white-space: nowrap;
}

.progress-overview__cta:hover {
  background: #f2edfc;
  box-shadow: none;
}

.progress-overview__cta-icon {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 16px;
  width: 16px;
}

@media (max-width: 900px) {
  .progress-overview__body {
    gap: 20px;
  }

  .progress-overview__tiles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .progress-overview {
    padding: 16px;
  }

  .progress-overview__body {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
    flex-direction: column;
  }

  .progress-overview__chart {
    -webkit-flex: 0 0 auto;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    width: 100%;
  }

  .progress-overview__chart-box {
    height: 220px;
  }

  .progress-overview__tiles {
    -webkit-flex: 0 0 auto;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    margin-top: 24px;
    width: 100%;
  }

  .progress-overview__banner {
    -webkit-align-items: flex-start;
    align-items: flex-start;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
  }

  .progress-overview__banner-text {
    -webkit-flex: 1 1 100%;
    -ms-flex: 1 1 100%;
    flex: 1 1 100%;
  }

  .progress-overview__cta {
    margin: 12px 0 0 auto;
  }
}

/* The Programs tab's "Overview" card, and the row that holds it beside
   "Program Completion" (/reports/:athleteId, views/progressreport.html, under
   vm.activeTab === 'programs').

   Its own block rather than a modifier of .progress-overview, for the same
   reason _programs_details.scss is its own block rather than a modifier of
   _progress_details.scss: the two cards share a shell - border, radius,
   shadow, title metrics - and nothing else. .progress-overview is a measured
   canvas beside a three-column tile grid; this is a computed SVG beside a
   stacked tile column, with a legend under both. Sharing a class would mean
   carrying the canvas-measurement contract (__chart-box's explicit height,
   __chart's min-width: 0) into a card that has no canvas in it.

   That split is also what let .progress-overview drop its Programs branch
   entirely - the bar chart, its --legacy neutralising rules and the
   chartInfo.type === 3 tiles all went with it.

   The shell constants are restated rather than imported, because SCSS
   variables are file-local unless hoisted to _design_tokens.scss. If you change
   the card radius or title metrics in one of the four cards on this page,
   change them in all four or they stop reading as one family.

   Traps this build has: no global border-box reset (state box-sizing by hand)
   and no autoprefixer. */

.programs-overview-row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: stretch;
  align-items: stretch;
  margin: 20px 0 0;
  gap: 20px;
}

.programs-overview-row > * {
  -webkit-flex: 1 1 0;
  -ms-flex: 1 1 0;
  flex: 1 1 0;
  min-width: 0;
}

@media (max-width: 900px) {
  .programs-overview-row {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
    flex-direction: column;
  }
}

.programs-overview {
  background-color: #ffffff;
  border: 1px solid #ececec;
  border-radius: 12px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  box-sizing: border-box;
  font-family: 'Nudista', sans-serif;
  padding: 20px;
  max-width: 522px;
}

.programs-overview__title {
  color: #120d1c;
  font-size: 18px;
  font-weight: 600;
  line-height: 22px;
  margin: 0 0 20px;
}

.programs-overview__body {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: stretch;
  align-items: stretch;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  gap: 28px;
}

.programs-overview__left {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  width: 238px;
}

.programs-overview__donut {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  position: relative;
}

.programs-overview__donut-svg {
  display: block;
  height: 100%;
  width: 100%;
}

.programs-overview__ring-track {
  stroke: #f0eef5;
}

.programs-overview__ring-arc {
  cursor: pointer;
  transition: opacity 0.15s ease;
}

.programs-overview__ring-arc:hover {
  opacity: 0.85;
}

.programs-overview__center {
  left: 50%;
  pointer-events: none;
  position: absolute;
  text-align: center;
  top: 50%;
  -moz-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

.programs-overview__center-caption {
  color: #6d6d6d;
  font-size: 12px;
  font-weight: 500;
  line-height: 18px;
  margin-bottom: 5px;
  text-transform: uppercase;
}

.programs-overview__center-value {
  color: #4f4f4f;
  font-size: 32px;
  font-weight: 500;
  line-height: 32px;
  text-align: center;
}

.programs-overview__center-sub {
  color: #6d6d6d;
  font-size: 12px;
  font-weight: 500;
  line-height: 18px;
  margin-top: 2px;
  text-align: right;
}

.programs-overview__center-sub-value {
  color: #000000;
  font-weight: 600;
}

.programs-overview__tip {
  background-color: #1c1b3a;
  border-radius: 10px;
  box-sizing: border-box;
  color: #ffffff;
  font-size: 12px;
  left: 50%;
  line-height: 18px;
  min-width: 180px;
  padding: 10px 12px;
  pointer-events: none;
  position: absolute;
  white-space: nowrap;
  z-index: 5;
  -moz-transform: translate(-10%, 6px);
  -o-transform: translate(-10%, 6px);
  -ms-transform: translate(-10%, 6px);
  -webkit-transform: translate(-10%, 6px);
  transform: translate(-10%, 6px);
}

.programs-overview__tip-head {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  font-weight: 600;
  gap: 8px;
  margin-bottom: 6px;
}

.programs-overview__tip-dot {
  border-radius: 50%;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 8px;
  width: 8px;
}

.programs-overview__tip-row {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  color: #ffffff;
  gap: 24px;
}

.programs-overview__tip-row strong {
  font-weight: 600;
}

.programs-overview__tiles {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  gap: 20px;
  width: 188px;
}

.programs-overview__tile-label {
  color: #4f4f4f;
  font-size: 14px;
  font-weight: 500;
  line-height: 100%;
  margin-bottom: 4px;
  text-transform: capitalize;
}

.programs-overview__tile-value {
  color: #4f4f4f;
  font-size: 24px;
  font-weight: 500;
  line-height: 38px;
}

.programs-overview__bar {
  background-color: #ececec;
  border-radius: 999px;
  height: 6px;
  margin-top: 8px;
  max-width: 100%;
  overflow: hidden;
  width: 140px;
}

.programs-overview__bar-fill {
  background-color: #12b76a;
  border-radius: 999px;
  height: 100%;
}

.programs-overview__legend {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  gap: 10px;
  margin-top: 20px;
}

.programs-overview__legend-item {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  cursor: pointer;
  gap: 10px;
}

.programs-overview__legend-dot {
  border-radius: 50%;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 9px;
  width: 9px;
}

.programs-overview__legend-label {
  color: #4f4f4f;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  font-size: 14px;
  font-weight: 500;
  line-height: 18px;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.programs-overview__legend-value {
  color: #120d1c;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  font-size: 14px;
  font-weight: 600;
  line-height: 18px;
}

@media (max-width: 768px) {
  .programs-overview {
    padding: 16px;
  }

  .programs-overview__body {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: column;
    flex-direction: column;
    -webkit-align-items: stretch;
    align-items: stretch;
    -webkit-justify-content: flex-start;
    justify-content: flex-start;
    gap: 20px;
  }

  .programs-overview__left {
    -webkit-align-self: center;
    align-self: center;
  }

  .programs-overview__tiles {
    width: 100%;
  }
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/inter-latin-600-normal.woff2) format("woff2"), url(../fonts/inter-latin-600-normal.woff) format("woff");
}

/* The "Program Completion" card on the progress report's Programs tab
   (/reports/:athleteId, views/progressreport.html): a contribution-graph style
   heatmap of completed/scheduled programs per bucket.

   Sits beside .programs-overview in .programs-overview-row, which is declared
   in _programs_overview.scss along with the shell constants both cards share -
   see that file's header for why these are separate blocks and why the shell is
   restated rather than imported.

   The grid's shape is data, not style. ProgressReportController's
   _renderProgramCompletion picks one of three layouts from the selected date
   range (seven day columns for a week or a month, month columns over Week 1-5
   rows for anything longer) and hands the template both the
   grid-template-columns track list and a FLAT list of grid items. Flat because
   a CSS grid only flows its direct children, so there can be no per-row
   wrapper - the same trap _progress_overview.scss's header documents for the
   tiles. Nothing here may introduce one.

   Traps this build has: no global border-box reset (state box-sizing by hand)
   and no autoprefixer. */

.programs-completion {
  background-color: #ffffff;
  border: 1px solid #ececec;
  border-radius: 12px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  box-sizing: border-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  font-family: 'Nudista', sans-serif;
  max-width: 602px;
  padding: 20px;
}

.programs-completion__title {
  color: #120d1c;
  font-size: 18px;
  font-weight: 600;
  line-height: 22px;
  margin: 0 0 20px;
}

.programs-completion__scroll {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  -webkit-align-items: center;
  align-items: center;
  overflow-x: auto;
  padding-bottom: 4px;
}

.programs-completion__grid {
  display: grid;
  -webkit-align-items: center;
  align-items: center;
  gap: 8px;
  justify-content: center;
  justify-content: safe center;
  width: -moz-max-content;
  width: max-content;
  min-width: 100%;
}

.programs-completion__corner {
  height: 1px;
}

.programs-completion__head-cell,
.programs-completion__row-label {
  color: #4f4f4f;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: normal;
  line-height: 18px;
}

.programs-completion__head-cell {
  text-align: center;
}

.programs-completion__row-label {
  text-align: right;
  white-space: nowrap;
}

.programs-completion__cell {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  border-radius: 7px;
  box-sizing: border-box;
  color: #efeff1;
  font-family: 'Inter', sans-serif;
  font-size: 10px;
  font-weight: 600;
  height: 32px;
  line-height: 100%;
}

.programs-completion__cell--none {
  background-color: #efeff1;
}

.programs-completion__cell--zero {
  background-color: #b3b3be;
}

.programs-completion__cell--l1 {
  background-color: #afd88c;
}

.programs-completion__cell--l2 {
  background-color: #84b15f;
}

.programs-completion__cell--l3 {
  background-color: #5f8f38;
}

.programs-completion__cell--l4 {
  background-color: #3b6d11;
}

.programs-completion__cell--outside {
  background-color: #ffffff;
}

.programs-completion__legend {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: auto;
  padding-top: 20px;
}

.programs-completion__legend-item {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  gap: 8px;
}

.programs-completion__legend-item + .programs-completion__legend-item {
  margin-left: 8px;
}

.programs-completion__legend-label {
  color: #4f4f4f;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: normal;
  line-height: 20px;
}

.programs-completion__ramp {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  gap: 2px;
}

.programs-completion__swatch {
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 8px;
  width: 26px;
}

.programs-completion__swatch--l1 {
  background-color: #afd88c;
  border-radius: 8px 0 0 8px;
}

.programs-completion__swatch--l2 {
  background-color: #84b15f;
}

.programs-completion__swatch--l3 {
  background-color: #5f8f38;
}

.programs-completion__swatch--l4 {
  background-color: #3b6d11;
  border-radius: 0 8px 8px 0;
}

.programs-completion__legend-rule {
  background-color: #ececec;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 16px;
  margin: 0 8px;
  width: 1px;
}

.programs-completion__legend-dot {
  border-radius: 50%;
  -webkit-flex: 0 0 auto;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  height: 8px;
  width: 8px;
}

.programs-completion__legend-dot--zero {
  background-color: #b3b3be;
}

.programs-completion__legend-dot--none {
  background-color: #efeff1;
}

@media (max-width: 768px) {
  .programs-completion {
    padding: 16px;
  }
}

/* Opt-in restyle of fusionDropDownPill to match fusionDateRangeSelect.

   The directive and its template are shared by testarchives, teamreport, notes
   and the program-type filter, so none of this may leak. It is scoped to a
   `select-pill` class put on the DIRECTIVE HOST element (the pill's own
   class-color attribute lands on .trigger, which is too deep to reach the
   submenu from). Add the class, drop class-color, and the instance opts in:

     <div class="select-pill" fusion-drop-down-pill ...>

   The legacy rules live in src/sass/_reports.scss, imported by a DIFFERENT
   root sheet (fusionetics-mark-additions.scss). Load order between the two
   sheets is not guaranteed here, so every selector below carries the
   `.select-pill` prefix purely to outrank its legacy counterpart on
   specificity rather than on source order.

   Icons are data-URI backgrounds, not inline SVG, because the shared template
   has no icon slots and adding them would change every other consumer. A
   background image cannot inherit currentColor, so the three glyph colours
   below are baked in - keep them in step with the $sp-* tokens.

   Not changed: the pill still opens on mouseenter (DropDownPill.js binds it),
   where the date selector opens on click. That is directive behaviour shared
   with four other pages, not styling. */

.select-pill {
  display: inline-block;
  font-family: 'Nudista', sans-serif;
  /* -- trigger -- */
  /* -- menu -- */
}

.select-pill .dropdown-wrapper .trigger.pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  box-sizing: border-box;
  height: 40px;
  width: 205px;
  padding: 0 8px 0 10px;
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 4px;
  box-shadow: 0 1px 2px 0 rgba(10, 13, 18, 0.05);
  line-height: 20px;
  cursor: pointer;
  white-space: nowrap;
  transition: border-color .15s;
}

.select-pill .dropdown-wrapper .trigger.pill:hover {
  border-color: #b0b0b0;
}

.select-pill .dropdown-wrapper .trigger.pill:before {
  content: "";
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  background: url(../images/progress_page_folder.png) no-repeat center/16px 16px;
}

.select-pill .dropdown-wrapper .trigger.pill > span {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -.2px;
  line-height: 20px;
  text-transform: none;
  color: #101828;
  transform: translateY(1px);
}

.select-pill .dropdown-wrapper .trigger.pill .icon-caret-dropdown {
  display: none;
}

.select-pill .dropdown-wrapper .trigger.pill:after {
  content: "";
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6L8 10L12 6' stroke='%236d6d6d' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/16px 16px;
}

.select-pill .dropdown-wrapper .submenu-wrapper {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 20px;
  text-transform: none;
  color: #4f4f4f;
}

.select-pill .dropdown-wrapper .submenu-wrapper > .submenu-content > .submenu {
  margin-top: 4px;
  box-sizing: border-box;
  width: 205px;
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 8px;
  box-shadow: 0 12px 16px -4px rgba(16, 24, 40, 0.08), 0 4px 6px -2px rgba(16, 24, 40, 0.03);
  overflow: hidden;
}

.select-pill .dropdown-wrapper .submenu-wrapper .submenu ul {
  padding: 6px 0;
}

.select-pill .dropdown-wrapper .submenu-wrapper .submenu ul + ul {
  border-top: 1px solid #e7e7e7;
}

.select-pill .dropdown-wrapper .submenu-wrapper .submenu li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
  padding: 10px 16px 10px 12px;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 18px;
  color: #000000;
}

.select-pill .dropdown-wrapper .submenu-wrapper .submenu li:hover {
  background: #fafafa;
}

.select-pill .dropdown-wrapper .submenu-wrapper .submenu li > span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.select-pill .dropdown-wrapper .submenu-wrapper .submenu li.is-selected:after {
  content: "";
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M13.33 4L6 11.33L2.67 8' stroke='%239768eb' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/16px 16px;
}

/* Date range selector for the progress report page.

   Ported from the app's date-filter / date-filter-dropdown / calendar-grid.
   Those are Tailwind, so the values below are the de-@apply'd tokens. The app
   only ever renders one month; the two-month view here is new.

   Traps this build has: no autoprefixer (no dvh, no unprefixed-only props),
   and respond() only knows 768px / 480px. The single-month collapse below is
   a property of this panel's width, not a project tier, so it is a bare
   media query. */

.date-range-select {
  position: relative;
  display: inline-block;
  font-family: 'Nudista', sans-serif;
  /* -- preset rail -- */
  /* -- calendar side -- */
  /* Panel height is emergent, not hard-coded: 16 + 49 (fields) + 16 (gap)
     + 340 (months) + 20 = 441. Spacing is held at comfortable values and the
     calendar block absorbs the height target via $drs-months-height. */
  /* -- per-field day / month / year picker -- */
  /* The two lines plus the 4px gap have to land exactly on the field's
     content box - 49px less its borders and 8px vertical padding is 31px -
     so these line-heights are load-bearing, not decoration. */
  /* The in-range band is a pseudo-element rather than a background on the
     cell. Two reasons: inset vertically it leaves 1px above and below, so
     consecutive rows keep 2px of white between them; and it sits behind the
     day number, so an endpoint's solid square is not ringed by tint. */
  /* An endpoint only needs to bridge the gap to its neighbour. Starting the
     band at the cell's midpoint keeps it entirely under the solid square
     except for that gap, so no tint shows to the outside of it. */
  /* Two-month grid only. Its block has a fixed height, so the six week rows
     can share whatever the header and day-of-week row leave. The field picker
     keeps the fixed 36px cells above - it has no definite height, so a
     percentage there would resolve to auto. */
  /* Each endpoint keeps its rounding only on the outside of the range; the
     edge facing the band is square, so the solid square and the tint meet
     flush instead of leaving a notch. */
  /* The square edge also pulls in by 1px, so a sliver of the band shows
     between the solid endpoint and the range it opens. The margin eats into
     the number's width rather than moving it - it is a flex item sized to
     100% of the cell, so it shrinks to make room. */
  /* -- narrow -- */
}

.date-range-select__trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  box-sizing: border-box;
  width: 198px;
  height: 40px;
  padding: 0 8px 0 10px;
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 4px;
  box-shadow: 0 1px 2px 0 rgba(10, 13, 18, 0.05);
  cursor: pointer;
  white-space: nowrap;
  transition: border-color .15s;
}

.date-range-select__trigger:hover {
  border-color: #b0b0b0;
}

.date-range-select__trigger.is-open {
  border-color: #9768eb;
}

.date-range-select__trigger-icon {
  flex: 0 0 auto;
  color: #4f4f4f;
}

.date-range-select__trigger-label {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: -.2px;
  color: #101828;
  transform: translateY(1px);
}

.date-range-select__trigger-caret {
  flex: 0 0 auto;
  color: #6d6d6d;
  transition: transform .15s;
}

.date-range-select__trigger.is-open .date-range-select__trigger-caret {
  transform: rotate(180deg);
}

.date-range-select__panel {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  z-index: 60;
  display: flex;
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 8px;
  box-shadow: 0 12px 16px -4px rgba(16, 24, 40, 0.08), 0 4px 6px -2px rgba(16, 24, 40, 0.03);
  overflow: hidden;
}

.date-range-select__presets {
  flex: 0 0 auto;
  width: 200px;
  padding: 8px 0;
}

.date-range-select__preset {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 16px 10px 21px;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  color: #4f4f4f;
  cursor: pointer;
}

.date-range-select__preset:hover {
  background: #fafafa;
}

.date-range-select__preset.is-active {
  color: #101828;
}

.date-range-select__preset-check {
  flex: 0 0 auto;
  color: #9768eb;
}

.date-range-select__rule {
  flex: 0 0 auto;
  width: 1px;
  background: #e7e7e7;
}

.date-range-select__calendars {
  flex: 1 1 auto;
  min-width: 0;
  padding: 16px 20px 20px;
}

.date-range-select__fields {
  position: relative;
  box-sizing: border-box;
  display: flex;
  justify-content: space-between;
  width: 680px;
  margin-bottom: 16px;
}

.date-range-select__field {
  box-sizing: border-box;
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  width: 319px;
  height: 49px;
  padding: 8px 12px;
  border: 1px solid #d1d1d1;
  border-radius: 9px;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s;
}

.date-range-select__field:hover {
  border-color: #b0b0b0;
}

.date-range-select__field.is-pending {
  border-color: #9768eb;
}

.date-range-select__field.is-open {
  border: 1.5px solid #534ab7;
}

.date-range-select__field-picker {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 10;
  box-sizing: border-box;
  width: 319px;
  padding: 12px 16px 16px;
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 8px;
  box-shadow: 0 12px 16px -4px rgba(16, 24, 40, 0.08), 0 4px 6px -2px rgba(16, 24, 40, 0.03);
}

.date-range-select__field-picker.is-to {
  left: auto;
  right: 0;
}

.date-range-select__field-picker-header {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 6px;
}

.date-range-select__field-picker-select {
  flex: 1 1 auto;
  min-width: 0;
  height: 30px;
  padding: 0 6px;
  background: #ffffff;
  border: 1px solid #d1d1d1;
  border-radius: 4px;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #101828;
  cursor: pointer;
}

.date-range-select__field-picker-select:focus {
  outline: none;
  border-color: #9768eb;
}

.date-range-select__field-picker-select.is-year {
  flex: 0 0 76px;
}

.date-range-select__field-label {
  flex: 0 0 auto;
  font-size: 10px;
  font-weight: 600;
  line-height: 11px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #74748a;
}

.date-range-select__field-value {
  flex: 0 0 auto;
  min-width: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 16px;
  color: #1d1d29;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.date-range-select__months {
  box-sizing: border-box;
  display: flex;
  gap: 24px;
  width: 680px;
  height: 340px;
}

.date-range-select__month {
  box-sizing: border-box;
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.date-range-select__month-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}

.date-range-select__month-name {
  flex: 1 1 auto;
  text-align: center;
  font-size: 18px;
  font-weight: 600;
  line-height: 24px;
  color: #101828;
  white-space: nowrap;
}

.date-range-select__nav {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 4px;
  color: #6d6d6d;
  cursor: pointer;
}

.date-range-select__nav:hover {
  background: #f6f6f6;
}

.date-range-select__nav.is-placeholder {
  cursor: default;
}

.date-range-select__nav.is-placeholder:hover {
  background: none;
}

.date-range-select__nav.is-narrow-only {
  visibility: hidden;
}

.date-range-select__dow {
  display: flex;
}

.date-range-select__dow-cell {
  flex: 1 1 0;
  height: 32px;
  line-height: 32px;
  text-align: center;
  font-size: 14px;
  font-weight: 500;
  color: #4f4f4f;
}

.date-range-select__week {
  display: flex;
}

.date-range-select__day {
  position: relative;
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 36px;
  cursor: pointer;
}

.date-range-select__day.is-outside {
  cursor: default;
}

.date-range-select__day-number {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 600;
  color: #101828;
}

.date-range-select__day.is-today .date-range-select__day-number {
  background: #f6f6f6;
  color: #888888;
}

.date-range-select__day.is-outside .date-range-select__day-number {
  color: #d1d1d1;
  background: none;
}

.date-range-select__day:not(.is-outside):hover .date-range-select__day-number {
  background: #f2edfc;
}

.date-range-select__day.is-in-range::before,
.date-range-select__day.is-start::before,
.date-range-select__day.is-end::before {
  content: '';
  position: absolute;
  top: 1px;
  bottom: 1px;
  left: 0;
  right: 0;
  background: #f2edfc;
}

.date-range-select__day.is-start::before {
  left: 50%;
}

.date-range-select__day.is-end::before {
  right: 50%;
}

.date-range-select__day.is-start.is-end::before {
  display: none;
}

.date-range-select__months .date-range-select__week {
  flex: 1 1 0;
  min-height: 0;
}

.date-range-select__months .date-range-select__day {
  height: auto;
}

.date-range-select__months .date-range-select__day-number {
  width: 100%;
  height: calc(100% - 2px);
}

.date-range-select__day.is-start .date-range-select__day-number,
.date-range-select__day.is-end .date-range-select__day-number,
.date-range-select__day.is-start:hover .date-range-select__day-number,
.date-range-select__day.is-end:hover .date-range-select__day-number {
  background: #9768eb;
  color: #ffffff;
}

.date-range-select__day.is-start .date-range-select__day-number {
  border-radius: 4px 0 0 4px;
  margin-right: 1px;
}

.date-range-select__day.is-end .date-range-select__day-number {
  border-radius: 0 4px 4px 0;
  margin-left: 1px;
}

.date-range-select__day.is-start.is-end .date-range-select__day-number {
  border-radius: 4px;
  margin-right: 0;
  margin-left: 0;
}

@media (max-width: 768px) {
  .date-range-select__panel {
    flex-direction: column;
    max-width: calc(100vw - 32px);
  }

  .date-range-select__presets {
    width: auto;
    display: flex;
    flex-wrap: wrap;
    padding: 8px;
    gap: 4px;
  }

  .date-range-select__preset {
    padding: 6px 10px;
    border: 1px solid #d1d1d1;
    border-radius: 4px;
  }

  .date-range-select__preset.is-active {
    border-color: #9768eb;
    background: #f2edfc;
  }

  .date-range-select__rule {
    width: auto;
    height: 1px;
  }

  .date-range-select__month + .date-range-select__month {
    display: none;
  }

  .date-range-select__nav.is-narrow-only {
    visibility: visible;
  }

  .date-range-select__fields {
    flex-direction: column;
    width: auto;
    gap: 12px;
  }

  .date-range-select__field {
    width: 100%;
  }

  .date-range-select__field-picker {
    max-width: calc(100vw - 48px);
  }

  .date-range-select__months {
    justify-content: center;
    width: auto;
    height: auto;
  }

  .date-range-select__month {
    flex: 0 1 auto;
    width: 100%;
    max-width: 252px;
  }

  .date-range-select__months .date-range-select__day {
    height: 36px;
  }

  .date-range-select__months .date-range-select__day-number {
    height: 34px;
  }
}

.page-header-back-nav {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 40px;
}

.page-header-back-nav label {
  font-weight: bold;
  text-transform: uppercase;
  cursor: pointer;
}

.page-header-back-nav label i.icon {
  font-size: 16px;
}

.page-header-back-nav label span {
  margin-left: 8px;
  font-size: 13px;
}

.test-archives-options {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  flex-wrap: wrap;
  margin: 30px 0 5px;
  row-gap: 10px;
}

.test-archives-options > div + div {
  margin-left: 10px;
}

.test-archives-options .date-ranges {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  margin-left: 30px;
  gap: 20px;
}

@media (max-width: 768px) {
  .test-archives-options .date-ranges {
    flex-basis: 100%;
    flex-direction: column;
    align-items: flex-start;
    margin-left: 0;
    margin-top: 10px;
    gap: 10px;
  }
}

.archive-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  margin: 30px 0;
}

.archive-container > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 50px;
  border-bottom: 1px solid #ccc;
}

.archive-container > div span {
  font-size: 18px;
  cursor: default;
}

.archive-container > div i.icon {
  font-size: 16px;
  cursor: pointer;
}

.archive-container > div .archive-name,
.archive-container > div .archive-info,
.archive-container > div .archive-action {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.archive-container > div .archive-name {
  -webkit-flex: 1 1 auto;
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  min-width: 120px;
}

.archive-container > div .archive-name span {
  cursor: pointer;
}

.archive-container > div .archive-info,
.archive-container > div .archive-action {
  -webkit-justify-content: center;
  justify-content: center;
}

.archive-container > div .archive-info {
  min-width: 140px;
}

@media (max-width: 568px) {
  .archive-container > div .archive-info {
    min-width: 100px;
  }
}

.archive-container > div .archive-action {
  min-width: 60px;
}

.archive-container > div.header-row {
  min-height: 40px;
}

.archive-container > div.header-row span {
  font-size: 12px;
  font-weight: bold;
  text-transform: uppercase;
  cursor: default;
}

.header-content {
  -webkit-justify-content: initial;
  justify-content: initial;
  max-height: 80px;
  min-height: 80px;
  height: 80px;
  position: relative;
  border-bottom: 1px solid #ccc;
}

@media (max-width: 768px) {
  .header-content {
    max-height: 60px;
    min-height: 60px;
    height: 60px;
    align-items: center;
  }
}

.header-content .header-logo-container {
  position: relative;
  display: flex;
  align-items: center;
}

@media (max-width: 768px) {
  .header-content .header-logo-container {
    display: none;
  }
}

.header-content .header-prac-burger {
  display: none;
  font-size: 26px;
  cursor: pointer;
  color: #2e2e2e;
  padding: 0 15px;
  padding-bottom: 7px;
  margin: 0;
  line-height: 1;
}

@media (max-width: 768px) {
  .header-content .header-prac-burger {
    display: block;
  }
}

.header-content .header-prac-menu {
  position: absolute;
  top: 60px;
  left: 0;
  right: 0;
  background: #1c1c1c;
  display: flex;
  flex-direction: column;
  padding: 10px 0;
  z-index: 1000;
}

.header-content .header-prac-menu .header-prac-menu__item {
  display: flex;
  align-items: center;
  min-height: 60px;
  max-height: 60px;
  padding: 0 20px;
  border-bottom: 1px solid #333;
  color: #a0a4a8;
  cursor: pointer;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.header-content .header-prac-menu .header-prac-menu__item.active {
  color: #efefef;
}

.header-content .header-prac-menu .header-prac-menu__item:not(.active):hover {
  color: #efefef;
}

.header-content .header-prac-user {
  display: none;
}

@media (max-width: 768px) {
  .header-content .header-prac-user {
    display: flex;
  }
}

.header-content .header-logo {
  margin: 10px 35px;
}

.header-content .header-logo img {
  max-width: 180px;
  max-height: 70px;
}

@media (max-width: 768px) {
  .header-content .resp-center {
    display: none;
  }
}

.header-content .user {
  margin-left: auto;
}

.header-content .header-team-name,
.header-content .header-team-name-link {
  border-left: 1px solid #C8C8C9;
}

@media (max-width: 768px) {
  .header-content .header-team-name,
  .header-content .header-team-name-link {
    border-left: 0;
    margin-left: 40px;
  }
}

.header-content .header-team-name h3,
.header-content .header-team-name-link h3 {
  padding: 0px 18px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 1px;
  color: #11264b;
  text-transform: uppercase;
}

.header-content .header-team-name-resp {
  overflow: hidden;
}

.header-content .header-team-name-resp > h3 {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.header-content .header-team-name-link {
  cursor: pointer;
  display: flex;
  justify-content: center;
  flex-direction: column;
}

.header-content .team-switcher {
  cursor: pointer;
}

.header-content .team-switcher:after {
  position: absolute;
  top: 80%;
  left: 90%;
  font-family: FontAwesome;
  content: "\F0D7";
  color: #6d6e72;
}

.header-content .team-options {
  position: absolute;
  top: 102%;
  left: -1px;
  background-color: #f6f1f1;
  border: 1px solid #ebebeb;
  box-shadow: 0 2px 5px 0 rgba(68, 67, 76, 0.25);
  min-width: 130px;
  width: 100%;
  z-index: 3;
}

.header-content .team-options > div {
  padding: 5px 10px 5px 14px;
  white-space: nowrap;
}

.header-content .team-options > div:hover {
  background-color: #dedfde;
}

.header-content .white-field {
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
}

.header-content .white-field i.icon-shop {
  display: block;
  float: left;
  padding: 0px;
  margin-right: 1px;
  margin-left: 1px;
  font-size: 20px;
}

.header-content .white-field > div {
  -webkit-flex: 1 0 auto;
  -ms-flex: 1 0 auto;
  flex: 1 0 auto;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  max-height: 60px;
  min-height: 60px;
  height: 60px;
  margin: 0px;
}

.header-content .white-field > div > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  padding: 10px;
  font-size: 14px;
  cursor: pointer;
}

.header-content .white-field > div > div i {
  font-size: 26px;
  display: block;
  float: left;
  margin: -1px 8px 0px 0px;
}

.header-content .white-field > div > div:hover {
  color: #11264b;
}

.header-content .white-field > div > div.active {
  color: #11264b;
}

.header-content .white-field > div > div.current-athlete {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  border: none;
  font-size: 18px;
  font-weight: 600;
  min-width: auto;
  margin-right: auto;
}

.header-content .white-field > div > div.current-athlete span {
  cursor: pointer;
}

.header-content .white-field > div > div.current-athlete span:first-child {
  font-weight: normal;
}

.header-content .white-field > div > div.current-athlete span + span {
  margin-left: 10px;
}

.header-content .white-field > div > div.current-athlete span + span:hover {
  text-decoration: underline;
}

.header-content .white-field > div > div + div {
  margin-left: 5px;
}

.header-content .white-field > button.signout {
  max-height: 35px;
  min-height: 35px;
  height: 35px;
  max-width: 100px;
  min-width: 100px;
  width: 100px;
}

.header-content .white-field > button.signout:hover {
  background-color: #9768EB;
  color: white;
}

.header-content .white-field > button.shop {
  padding-top: 1px;
}

@media (max-width: 768px) {
  .header-content .white-field > button.shop {
    display: none;
  }
}

.header-content .white-field > button:first-child {
  margin: 0 7px 0 15px;
}

.header-content .white-field > button:last-child {
  margin: 0 25px 0 7px;
}

.header-content .white-field > button > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
}

.header-content .white-field > button > div i.fa {
  font-size: 22px;
  margin-right: 4px;
}

@media (max-width: 768px) {
  .header-content--prac .header-team-name,
  .header-content--prac .header-content .header-team-name-link,
  .header-content .header-content--prac .header-team-name-link,
  .header-content--prac .header-team-name-link {
    margin-left: 0;
  }
}

.header-content.header-content--athlete,
.header-content.header-content--prac {
  max-height: 60px;
  min-height: 60px;
  height: 60px;
  background-color: #1a1a2e;
  border-bottom: none;
  align-items: center;
}

.header-content.header-content--athlete .athlete-profile-switch,
.header-content.header-content--prac .athlete-profile-switch {
  min-height: 60px;
  max-height: 60px;
}

.header-content.header-content--athlete .athlete-header-logo,
.header-content.header-content--prac .athlete-header-logo {
  margin: 0 28px;
}

.header-content.header-content--athlete .athlete-header-logo img,
.header-content.header-content--prac .athlete-header-logo img {
  max-width: 145px;
  max-height: 29px;
}

.header-content.header-content--athlete .user__logo,
.header-content.header-content--prac .user__logo {
  height: 44px;
  width: 44px;
}

.header-content.header-content--athlete .user__name,
.header-content.header-content--prac .user__name {
  margin-left: 12px;
  color: #ffffff;
  font-family: "Nudista", sans-serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 20px;
  letter-spacing: 0;
  white-space: nowrap;
}

.header-content.header-content--athlete .user__info,
.header-content.header-content--prac .user__info {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-left: 12px;
  min-width: 0;
}

.header-content.header-content--athlete .user__info .user__name,
.header-content.header-content--prac .user__info .user__name {
  margin-left: 0;
}

.header-content.header-content--athlete .user__role,
.header-content.header-content--prac .user__role {
  color: #E1E1E6;
  font-family: "Nudista", sans-serif;
  font-weight: 500;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: 0;
  white-space: nowrap;
}

@media (max-width: 768px) {
  .header-content.header-content--athlete .passport {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    align-items: center;
    min-width: 0;
  }

  .header-content.header-content--athlete .athlete-header-logo {
    margin: 0 12px;
  }

  .header-content.header-content--athlete .athlete-header-logo img {
    max-width: 110px;
    max-height: 24px;
  }

  .header-content.header-content--athlete .user__name {
    display: none;
  }
}

.header-content.header-content--prac .athlete-header-logo {
  margin-right: 16px;
}

.header-content.header-content--prac .header-team-switcher {
  position: relative;
  display: flex;
  align-items: center;
  margin-right: 16px;
}

.header-content.header-content--prac .header-team-switcher__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
  width: 188px;
  height: 44px;
  padding: 8px 8px 8px 12px;
  border: 1px solid #6C6C7C;
  border-radius: 4px;
  background: #35354B;
  color: #ffffff;
  font-family: "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 18px;
  white-space: nowrap;
}

.header-content.header-content--prac .header-team-switcher__name {
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}

.header-content.header-content--prac .header-team-switcher__caret {
  display: block;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  object-fit: contain;
}

.header-content.header-content--prac .header-team-switcher__options {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  box-sizing: border-box;
  min-width: 320px;
  width: max-content;
  max-width: calc(100vw - 32px);
  padding: 3px 4px;
  background-color: #ffffff;
  border: 1px solid #EAECF0;
  border-radius: 8px;
  box-shadow: 0 12px 16px -4px rgba(16, 24, 40, 0.08), 0 4px 6px -2px rgba(16, 24, 40, 0.03);
  z-index: 10;
  max-height: 60vh;
  overflow-x: hidden;
  overflow-y: auto;
}

.header-content.header-content--prac .header-team-switcher__label {
  padding: 10px;
  color: #4F4F4F;
  font-family: "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  letter-spacing: 0;
  white-space: nowrap;
}

.header-content.header-content--prac .header-team-switcher__option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  box-sizing: border-box;
  min-height: 40px;
  padding: 10px;
  border-radius: 4px;
  color: #000000;
  font-family: "Nudista", sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  white-space: nowrap;
  cursor: pointer;
}

.header-content.header-content--prac .header-team-switcher__option:hover {
  background-color: #fafafa;
}

.header-content.header-content--prac .header-team-switcher__option--selected,
.header-content.header-content--prac .header-team-switcher__option--selected:hover {
  background-color: #f2edfc;
}

.header-content.header-content--prac .header-team-switcher__option + .header-team-switcher__option {
  margin-top: 8px;
}

.header-content.header-content--prac .header-team-switcher__option__text {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.header-content.header-content--prac .header-team-switcher__option__name {
  overflow: hidden;
  text-overflow: ellipsis;
}

.header-content.header-content--prac .header-team-switcher__option__org {
  color: #6d6d6d;
  font-size: 12px;
  font-weight: 400;
  line-height: 16px;
  overflow: hidden;
  text-overflow: ellipsis;
}

.header-content.header-content--prac .header-team-switcher__option__check {
  display: none;
  flex-shrink: 0;
  color: #9768eb;
}

.header-content.header-content--prac .header-team-switcher__option--selected .header-team-switcher__option__check {
  display: block;
}

.header-content.header-content--prac .header-team-switcher--switchable .header-team-switcher__btn {
  cursor: pointer;
}

.header-content.header-content--prac .header-nav {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  margin-right: 8px;
}

@media (max-width: 768px) {
  .header-content.header-content--prac .header-nav {
    gap: 2px;
    margin-right: 0;
  }
}

.header-content.header-content--prac .header-nav__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  box-sizing: border-box;
  min-width: 0;
  width: auto;
  height: 36px;
  min-height: 0;
  max-height: none;
  padding: 0 10px;
  border: none;
  border-radius: 4px;
  background: transparent;
  color: #ffffff;
  font-family: "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 18px;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.15s ease-in-out;
}

.header-content.header-content--prac .header-nav__btn:hover {
  background-color: rgba(255, 255, 255, 0.1);
}

@media (max-width: 768px) {
  .header-content.header-content--prac .header-nav__btn {
    gap: 0;
    padding: 0 8px;
  }

  .header-content.header-content--prac .header-nav__btn > span {
    display: none;
  }
}

.header-content.header-content--prac .header-nav__icon {
  font-size: 18px;
  line-height: 1;
}

.header-content.header-content--prac .header-nav + .user {
  margin-left: 0;
}

@media (max-width: 768px) {
  .header-content.header-content--prac .user__info {
    display: none;
  }
}

.header-content:has(.header-content--athlete),
.header-content:has(.header-content--prac) {
  max-height: 60px;
  min-height: 60px;
  height: 60px;
  border-bottom: none;
}

@media only screen and (max-width: 1053px) {
  .header-content-v2 .white-field > div > div {
    font-size: 12px;
    padding: 5px;
  }

  .header-content-v2 .white-field > div > div + div {
    margin-left: 0;
  }

  .header-content-v2 .white-field > div > div i {
    margin-top: -5px;
    margin-right: 5px;
  }

  .header-content-v2 .white-field i.icon-shop {
    margin: 0 5px 0 0;
  }
}

.whiteboard {
  min-width: 0;
}

ul.catalog_nav {
  max-width: none;
  min-width: 0;
  width: auto;
}

ul.catalog_nav li > span {
  padding: 11px 0;
  line-height: 1.2;
  min-height: 0;
}

ul.catalog_nav li > ul li > ul li {
  min-height: 0;
  text-indent: 0;
  padding-top: 6px;
  padding-bottom: 6px;
  padding-left: 50px;
}

.catalog-selected .title-container .return-link {
  white-space: nowrap;
}

.athlete-info-box .bio-header {
  line-height: 1.1;
  padding: 0 15px;
}

.athlete-info-box .bio-header .athlete-number {
  margin-left: 0;
}

@media only screen and (max-width: 900px) {
  .athlete-info-box .bio-header {
    font-size: 15px;
    padding: 0 10px;
  }
}

.athlete-info-box .bio-body .athlete-profile {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.athlete-info-box .bio-body .athlete-profile .profile-pic {
  width: 100%;
  height: auto;
  display: block;
  max-height: 100px;
}

.athlete-info-box .bio-body .athlete-stats {
  -webkit-flex: 2;
  -ms-flex: 2;
  flex: 2;
}

.athlete-info-box .bio-body .athlete-stats > div + div {
  margin-top: 5px;
}

.athlete-info-box .bio-body canvas {
  width: 100%;
  display: block;
}

.athlete-list-view.view-layout .athlete-number {
  max-width: 53px;
  min-width: 53px;
  width: 53px;
  white-space: nowrap;
  line-height: 0.9;
  padding-left: 10px;
}

.athlete-list-view.view-layout .athlete-name {
  padding: 0 15px 0 5px;
  min-width: 0;
}

.profile-summary .today-program,
.profile-summary .today-notice {
  max-width: none;
  min-width: 0;
  width: auto;
  max-height: none;
  height: auto;
  padding: 10px 6px;
}

@media only screen and (min-width: 1054px) {
  .column-container.profile-score + div {
    width: 380px;
  }
}

@media only screen and (max-width: 1053px) {
  body .view-container {
    width: 994px;
    max-width: 100vw;
    min-width: 0;
    padding-left: 15px;
    padding-right: 15px;
  }

  body .view-container .view-container {
    padding-left: 0;
    padding-right: 0;
    width: 100%;
    max-width: 100%;
  }

  body .week-wrapper .week-day-column {
    min-width: 0;
    width: 100%;
  }

  body .header-content .white-field > div {
    margin: 0px 20px;
  }

  body .profile-detail {
    max-width: none;
    min-width: 0;
    width: auto;
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
  }

  body .profile-detail .profile-pic {
    max-width: none;
    min-width: 0;
    width: auto;
    max-height: none;
    min-height: 0;
    height: auto;
    width: 100%;
    max-width: 200px;
    aspect-ratio: 200 / 175;
    overflow: hidden;
  }

  body .profile-detail .profile-pic img {
    width: 100%;
    display: block;
    height: 100%;
    object-fit: contain;
  }

  body .profile-detail .profile-action {
    width: 100%;
  }

  body .profile-summary {
    max-width: none;
    min-width: 0;
    width: auto;
    -webkit-flex: 4;
    -ms-flex: 4;
    flex: 4;
    padding-left: 15px;
  }

  body .profile-summary > .row-container.divided > div {
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
  }

  body .profile-summary > .row-container.divided > div + div {
    padding-left: 15px;
  }

  body .profile-summary .score-container {
    max-width: none;
    min-width: 0;
    width: auto;
    padding: 20px;
  }

  body .profile-summary .score-container .profile-score {
    max-width: none;
    min-width: 0;
    width: auto;
    width: 100%;
  }

  body .profile-summary .score-container .profile-score .profile-score-graph-canvas {
    max-width: none;
    min-width: 0;
    width: auto;
    max-height: none;
    min-height: 0;
    height: auto;
    width: 100%;
  }

  body .chart-menu .chart-menu-item {
    margin-right: 18px;
  }

  body .program-chart,
  body .line-chart {
    -webkit-flex: 2;
    -ms-flex: 2;
    flex: 2;
  }

  body .program-chart {
    max-width: none;
    min-width: 0;
    width: auto;
    min-height: 0;
  }

  body .view-layout .view-container .line-chart .line-chart-canvas {
    max-width: none;
    min-width: 0;
    width: auto;
    max-height: none;
    min-height: 0;
    height: auto;
    width: 100% !important;
    height: auto !important;
  }

  body .chart-details {
    max-width: none;
    min-width: 0;
    width: auto;
    padding-left: 15px;
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
  }

  body canvas {
    max-width: 100% !important;
    height: auto !important;
  }

  body .calendar-month {
    max-width: none;
    min-width: 0;
    width: auto;
    -webkit-flex: 2;
    -ms-flex: 2;
    flex: 2;
  }

  body .calendar-month .week-day-labels {
    -webkit-flex: 1 1 auto;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
  }

  body .calendar-month .week-day-labels > div {
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
    max-width: none;
    min-width: 0;
  }

  body .calendar-month .calendar-days .calendar-day {
    max-width: none;
    min-width: 0;
    width: auto;
    width: 14.28571%;
  }

  body .calendar-month.notes-calendar {
    max-width: 492px;
  }

  body .calendar-day-info {
    max-width: none;
    min-width: 0;
    width: auto;
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
    padding-left: 15px;
  }
}

@media only screen and (max-width: 1053px) and (max-width: 768px) {
  body .schedule-calendar-layout {
    flex-wrap: wrap;
    width: 100%;
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
  }

  body .schedule-calendar-layout .calendar-month {
    flex: 1 0 100%;
    width: 100%;
    min-width: 0;
  }

  body .schedule-calendar-layout .calendar-day-info {
    flex: 1 0 100%;
    width: 100%;
    min-width: 0;
    padding-left: 0;
    margin-top: 20px;
    padding-bottom: 20px;
  }
}

@media only screen and (max-width: 1053px) {
  body .athlete-list-view.view-layout .athlete-stat {
    -webkit-flex: 0;
    -ms-flex: 0;
    flex: 0;
    max-width: 7.5%;
    min-width: 7.5%;
    width: 7.5%;
    letter-spacing: 0;
  }

  body .athlete-list-view.view-layout .athlete-programs {
    max-width: 18%;
    min-width: 18%;
    width: 18%;
  }

  body .athlete-list-view.view-layout .athlete-last-activity {
    max-width: 18%;
    min-width: 18%;
    width: 18%;
  }

  body .athlete-list-view.view-layout .athlete-row {
    font-size: 15px;
    letter-spacing: 0.5px;
  }

  body .modal {
    max-width: calc(100% - 30px);
  }

  body .modal-container {
    max-width: 100%;
  }

  body .tl-entry-header .tl-select,
  body .tl-entry .tl-select {
    max-width: 120px;
    min-width: 120px;
    width: 120px;
  }

  body .tl-entry-header .tl-input,
  body .tl-entry .tl-input {
    max-width: 86px;
    min-width: 86px;
    width: 86px;
  }

  body .tl-entry .tl-input > .basic-input.small {
    width: 100%;
  }

  body .tl-entry-header .field-label {
    line-height: 1.2;
  }

  body input.basic-input,
  body div.basic-input,
  body div.basic-input-readonly {
    width: 100px;
  }

  body .athlete-menu .athlete-search {
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
    width: auto;
  }

  body .athlete-menu .athlete-filter-sort {
    min-width: 0;
    -webkit-flex: initial;
    -ms-flex: initial;
    flex: initial;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box {
    min-width: 0;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .label {
    max-width: none;
    min-width: 0;
    width: auto;
    padding: 15px 17px 15px 10px;
    font-size: 12px;
  }

  body .athlete-menu .athlete-filter-sort > .athlete-sort-box .label:after {
    font-size: 9px;
    right: 7px;
    top: 38%;
  }

  body .athlete-menu .athlete-reset-view {
    -webkit-flex: initial;
    -ms-flex: initial;
    flex: initial;
    max-width: none;
    min-width: 0;
    width: auto;
    padding: 0 8px;
    font-size: 12px;
  }

  body .athlete-menu .athlete-toggle-view {
    -webkit-flex: initial;
    -ms-flex: initial;
    flex: initial;
    max-width: none;
    min-width: 0;
    width: auto;
  }

  body .header-content .white-field > div > div {
    font-size: 12px;
    padding: 5px;
  }

  body .header-content .white-field > div > div + div {
    margin-left: 0;
  }

  body .header-content .white-field > div > div i {
    margin-top: -5px;
    margin-right: 5px;
  }

  body .header-content .white-field i.icon-shop {
    margin: 0 5px 0 0;
  }

  body .header-content button {
    min-width: 0;
    padding: 0 5px;
  }

  body .header-content .logo {
    margin-left: 15px;
    max-width: 120px;
    min-width: 120px;
    width: 120px;
  }

  body .header-content .white-field > button:last-child {
    margin-right: 15px;
  }

  body .line-chart-menu .chart-legend {
    white-space: nowrap;
    margin: 0 0 0 16px;
  }

  body .line-chart-menu .chart-legend > .fa {
    margin-right: 2px;
  }

  body .prompt-box {
    padding: 15px;
  }

  body .test-landing .prompt-box {
    padding: 20px;
    border-radius: 6px;
  }
}

@media only screen and (max-width: 1053px) and (max-width: 768px) {
  body .test-landing {
    padding: 28px 0 56px;
  }

  body .test-landing__title {
    margin-bottom: 24px;
  }

  body .test-landing__section + .test-landing__section {
    margin-top: 28px;
  }

  body .test-landing__card,
  body .test-landing .prompt-box {
    width: 100%;
    max-width: 100%;
    flex-direction: column;
    align-items: stretch;
    height: auto;
    min-height: 84px;
    padding: 20px;
    gap: 14px;
  }

  body .test-landing__card-actions {
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
  }

  body .test-landing__btn {
    flex: 1 1 auto;
  }
}

@media only screen and (max-width: 1053px) {
  body .report-chart-container {
    display: block;
  }

  body .report-chart-container .line-chart {
    display: block;
  }

  body .report-chart-container .report-chart-details {
    display: block;
    margin: 0;
  }

  body .report-details-container .title {
    max-width: none;
    min-width: 0;
    width: auto;
  }
}

@media only screen and (max-width: 900px) {
  body .admin-menu > div + div {
    margin-left: 18px;
  }

  body .catalog_container {
    -webkit-flex: 1 0 200px;
    -ms-flex: 1 0 200px;
    flex: 1 0 200px;
  }

  body .catalog-search form {
    padding: 0 5px;
    width: 100%;
  }

  body .catalog-search form input[type='text'] {
    min-width: 0;
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
    text-indent: 0;
    font-size: 15px;
  }

  body .catalog-search form button[type='reset'] {
    margin: 0;
    padding: 0 5px;
    font-size: 10px;
  }

  body .catalog-feature .feature-container .feature-content {
    left: 40px;
  }

  body .practitionersTable > .row-container > div > span,
  body .teamsTable > .row-container > div > span {
    margin-left: 10px !important;
    margin-right: 10px !important;
  }

  body .practitionersTable > .row-container > div:nth-child(1) {
    max-width: 112px !important;
    min-width: 112px !important;
    width: 112px !important;
  }

  body .practitionersTable > .row-container > div:nth-child(2) {
    max-width: 96px !important;
    min-width: 96px !important;
    width: 96px !important;
  }

  body .practitionersTable > .row-container > div:nth-child(3) {
    max-width: 108px !important;
    min-width: 108px !important;
    width: 108px !important;
  }

  body .practitionersTable > .row-container > div:nth-child(4) {
    min-width: 0 !important;
    max-width: none !important;
    -webkit-flex: 1 !important;
    -ms-flex: 1 !important;
    flex: 1 !important;
  }

  body .practitionersTable > .row-container > div:nth-child(5) {
    max-width: 110px !important;
    min-width: 110px !important;
    width: 110px !important;
  }

  body .practitionersTable > .row-container > div:nth-child(6) {
    max-width: 88px !important;
    min-width: 88px !important;
    width: 88px !important;
  }

  body .practitionersTable > .row-container > div:nth-child(6) button {
    padding: 0 6px;
  }

  body .teamsTable > .row-container > div:nth-child(1) {
    max-width: 96px !important;
    min-width: 96px !important;
    width: 96px !important;
  }

  body .teamsTable > .row-container > div:nth-child(2) {
    max-width: 100px !important;
    min-width: 100px !important;
    width: 100px !important;
  }

  body .teamsTable > .row-container > div:nth-child(3) {
    max-width: 100px !important;
    min-width: 100px !important;
    width: 100px !important;
  }

  body .teamsTable > .row-container > div:nth-child(4) {
    min-width: 0 !important;
    max-width: none !important;
    -webkit-flex: 1 !important;
    -ms-flex: 1 !important;
    flex: 1 !important;
  }

  body .teamsTable > .row-container > div:nth-child(5) {
    max-width: 70px !important;
    min-width: 70px !important;
    width: 70px !important;
  }

  body .teamsTable > .row-container > div:nth-child(6) {
    max-width: 212px !important;
    min-width: 212px !important;
    width: 212px !important;
  }
}

@media only screen and (max-width: 900px) and (max-width: 1053px) {
  body .header-logo {
    margin: 0 15px;
  }

  body .header-logo img {
    width: 100%;
  }

  body .header-content .white-field > div > div i {
    display: none;
  }

  body .athlete-dashboard .athlete-dashboard-container .athlete-info-box,
  body .athlete-dashboard .athlete-dashboard-container .athlete-add-box {
    width: calc((100% - 20px) / 2);
  }

  body .athlete-dashboard .athlete-dashboard-container .athlete-info-box .bio-body .athlete-profile .profile-pic {
    max-height: none;
  }
}

@media (max-width: 640px) {
  body .athlete-dashboard .athlete-dashboard-container .athlete-info-box,
  body .athlete-dashboard .athlete-dashboard-container .athlete-add-box {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 768px) {
  .modal-animate-container {
    width: calc(100% - 30px) !important;
    min-width: 0 !important;
    max-width: calc(100% - 30px) !important;
  }

  .modal-dialog {
    width: calc(100% - 30px);
    margin-top: 60px;
  }

  .modal-container section {
    min-width: 0 !important;
    -webkit-align-items: stretch;
    align-items: stretch;
  }

  label.clinical-form-field {
    margin: 0 15px;
  }

  fusion-ordered-drop-down.clinical-drop-down {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }

  fusion-ordered-drop-down.clinical-drop-down > div.column-container {
    display: -webkit-flex !important;
    display: flex !important;
    -webkit-align-items: center;
    align-items: center;
    overflow: hidden;
  }

  fusion-ordered-drop-down.clinical-drop-down .select-toggle {
    overflow: hidden;
    flex: 1;
    min-width: 0;
  }

  fusion-ordered-drop-down.clinical-drop-down .select-toggle span.filtered {
    display: block;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }
}

@media (max-width: 768px) {
  body .athlete-list-view.view-layout .athlete-header,
  body .athlete-list-view.view-layout .athlete-row {
    min-width: 680px;
  }

  body .athlete-list-view.view-layout .athlete-name {
    min-width: 130px;
  }

  body .athlete-list-view.view-layout .athlete-stat {
    max-width: 70px;
    min-width: 70px;
    width: 70px;
    font-size: 13px;
  }

  body .athlete-list-view.view-layout .athlete-programs {
    max-width: 110px;
    min-width: 110px;
    width: 110px;
  }

  body .athlete-list-view.view-layout .athlete-last-activity {
    max-width: 120px;
    min-width: 120px;
    width: 120px;
  }

  body .athlete-list-view.view-layout .athlete-row {
    font-size: 14px;
  }
}

.arrowTabs {
  display: flex;
  align-items: stretch;
  margin: 0 -2px;
}

.arrowTabs > * {
  padding: 0 2px;
}

.arrowTabs > span {
  flex: 1;
  display: block;
  text-align: center;
  display: flex;
  align-items: stretch;
  position: relative;
  cursor: pointer;
}

.arrowTabs > span:before {
  content: " ";
  position: absolute;
  left: 50%;
  margin-left: -8px;
  bottom: -6px;
  height: 0;
  width: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 6px solid #9768EB;
  display: none;
}

.arrowTabs > span span {
  padding: 12px 8px;
  display: block;
  width: 100%;
  background: #F2F4F5;
  color: #ABB0B3;
  font-weight: bold;
  font-size: 14px;
}

.arrowTabs > span:first-child span {
  border-radius: 5px 0 0 5px;
}

.arrowTabs > span:last-child span {
  border-radius: 0 5px 5px 0;
}

.arrowTabs > span.active:before {
  display: block;
}

.arrowTabs > span.active span {
  background: #9768EB;
  color: #fff;
}

.programScheduleTable {
  table-layout: fixed;
  text-align: center;
  border-collapse: collapse;
  width: 100%;
}

@media only screen and (min-width: 1164px) {
  .programScheduleTable {
    width: calc(100% + 70px);
    margin-left: -70px;
  }
}

.programScheduleTable tr > *:first-child {
  width: 70px;
  padding-right: 10px;
}

.programScheduleTable tr > * + * {
  width: calc((100/7*1%) - 10px);
}

.programScheduleTable tr > * + * + * {
  padding-left: 5px;
}

.programScheduleTable tr + tr > * {
  padding-top: 5px;
}

.programScheduleTable thead th {
  color: #BDC1C5;
  font-size: 14px;
  padding: 0 0 15px;
  font-weight: 400;
}

.programScheduleTable tbody th {
  text-align: left;
  vertical-align: middle;
  color: #848990;
  font-size: 14px;
  text-transform: uppercase;
}

.activityPillGroup {
  position: relative;
  background: #F2F4F5;
  border-radius: 8px;
  padding: 8px;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  height: 117.3px;
  width: 100%;
}

.activityPillGroup .activityPill {
  height: calc(33.333% - 2px);
}

.activityPillGroup .activityPill + .activityPill {
  margin-top: 3px;
}

.activityPillGroup .addIcon {
  display: none;
  color: #CDD3D7;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -20px;
  margin-left: -20px;
  font-size: 40px;
}

.activityPill {
  text-align: center;
  border-radius: 4px;
  padding: 0 5px;
  font-size: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.activityPill--prompt {
  background: #E4E9EC;
  color: #BDC1C5;
  cursor: pointer;
}

.activityPill--active {
  background: #9768EB;
  color: #fff;
  position: relative;
  padding: 0 15px;
}

.activityPill--active .closeIcon {
  position: absolute;
  top: 50%;
  margin-top: -5px;
  font-size: 10px;
  right: 5px;
  cursor: pointer;
}

.activityPillGroup--empty {
  cursor: pointer;
}

.activityPillGroup--empty .addIcon {
  display: block;
}

.selectAddPill {
  padding: 10px;
  background: #fff;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: stretch;
  align-items: stretch;
  border-radius: 4px;
}

.selectAddPill .tl-entry .tl-select,
.selectAddPill .tl-entry .tl-select-input .select-toggle {
  min-width: 0;
  max-width: none;
}

.selectAddPill button.primary {
  max-height: none;
  min-height: 0;
  height: auto;
}

.selectAddPill > *:first-child {
  flex: 1;
}

.selectAddPill > * + * {
  margin-left: 15px;
}

.t_pageContentTitle {
  margin: 0;
  color: #9768EB;
  font-size: 24px;
  font-weight: 500;
}

.t_pageContentTitle.top {
  color: #75787B;
}

.ycenter-items {
  -webkit-align-items: center;
  align-items: center;
}

.xgapChildren > * + * {
  padding-left: 15px;
}

.inlineSpaced {
  display: block;
  position: relative;
}

.inlineSpaced > * {
  display: inline-block;
}

.inlineSpaced--align--top > * {
  vertical-align: top;
}

.inlineSpaced--align--middle > * {
  vertical-align: middle;
}

.inlineSpaced--compact {
  margin: -2px;
}

.inlineSpaced--compact > * {
  margin: 2px;
}

.inlineSpaced--spaced {
  margin: -8px;
}

.inlineSpaced--spaced > * {
  margin: 8px;
}

.inlineSpaced--spacedMed {
  margin: -4px;
}

.inlineSpaced--spacedMed > * {
  margin: 4px;
}

.inlineSpaced--optionInputs {
  margin-left: -10px;
  margin-right: -10px;
  margin-top: -4px;
  margin-bottom: -4px;
}

.inlineSpaced--optionInputs > * {
  margin-left: 10px;
  margin-right: 10px;
}

.inlineSpaced--optionInputs > * {
  margin-top: 4px;
  margin-bottom: 4px;
}

.inlineSpaced__child > *:first-child {
  margin-top: 0 !important;
}

.inlineSpaced__child > *:last-child {
  margin-bottom: 0 !important;
}

.color--bad {
  color: #c42a3b;
}

.color--good {
  color: #20b769;
}

.color--ok {
  color: #d8b62f;
}

.color--neutral {
  color: #808080;
}

.color--neutralBlue,
.color--link {
  color: #4AB3DA !important;
}

.flexRow {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.flexRow__flex {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

button.wide {
  min-width: 200px;
}

.scrollSideWrap__side {
  overflow: auto;
  background: #363A46;
}

@media only screen and (max-width: 900px) {
  .scrollSideWrap__side {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: row;
    flex-direction: row;
    background: #293040;
  }

  .scrollSideWrap__side .loggedInBlock {
    width: 240px;
  }

  .scrollSideWrap__side .sideBarMainContent {
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
  }

  .scrollSideWrap__side .sideBarSection {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: row;
    flex-direction: row;
  }

  .scrollSideWrap__side .sideBarSection + .sideBarSection {
    padding-top: 0;
  }

  .scrollSideWrap__side .sideBarSection__content {
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
  }
}

@media only screen and (max-width: 900px) {
  .sideBarFilterFields {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-direction: row;
    flex-direction: row;
    margin: 0 -6px;
  }

  .sideBarFilterFields > * {
    padding: 0 6px;
  }

  .sideBarFilterFields > * {
    width: 50%;
  }
}

.scrollSideWrap__main {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  padding: 20px;
  background: #EFF1F2;
}

.loggedInBlock {
  background: #9768EB;
  padding-left: 22px;
  padding-right: 22px;
  padding-top: 11px;
  padding-bottom: 21px;
}

.loggedInBlock__name {
  margin: 0 0 7px;
  color: #fff;
  font-size: 26px;
  font-weight: 500;
}

.loggedInMenu__trigger {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  cursor: default;
}

.loggedInMenu__trigger__img img {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: block;
}

.loggedInMenu__trigger__name {
  color: #fff;
  padding-left: 10px;
  font-weight: 600;
  font-size: 14px;
}

.loggedInMenu__trigger__icon {
  display: block;
  color: #fff;
  font-size: 6px;
  padding: 6px 0 0 5px;
}

.sideBarSection {
  padding-left: 22px;
  padding-right: 22px;
  padding-top: 20px;
  padding-bottom: 20px;
  color: #fff;
}

.sideBarSection--dark {
  background: #293040;
}

@media only screen and (max-width: 900px) {
  .sideBarSection__header {
    width: 110px;
  }
}

.sideBarSection__header__title {
  font-size: 20px;
  font-weight: 500;
}

.blockContent > *:first-child {
  margin-top: 0 !important;
}

.blockContent > *:last-child {
  margin-bottom: 0 !important;
}

.openField {
  display: block;
  width: 100%;
  height: 36px;
  border-radius: 4px;
  background: #F4F4F4;
  font-size: 14px;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.openField > *:first-child {
  padding-left: 12px;
}

.openField > *:last-child {
  padding-right: 12px;
}

.openField input {
  padding: 5px 0;
}

.openFieldTall_btn {
  max-height: 46px;
  min-height: 46px;
  height: 46px;
}

.openField--rounded {
  border-radius: 20px;
}

.openField--rounded > *:first-child {
  padding-left: 20px;
}

.openField--rounded > *:last-child {
  padding-right: 20px;
}

.openField--darker input {
  color: #75787B;
}

.openField--darker input::-webkit-input-placeholder {
  color: #AAABAF;
}

.openField--darker input:-moz-placeholder {
  color: #AAABAF;
}

.openField--darker input::-moz-placeholder {
  color: #AAABAF;
}

.openField--darker input:-ms-input-placeholder {
  color: #AAABAF;
}

.openField--darker .openFieldSelect__trigger .text {
  color: #75787B;
}

.openField--darker .openFieldSelect__trigger .text.placeholder {
  color: #AAABAF;
  opacity: 1;
}

.openField--tall {
  height: 46px;
}

.openField--tall .openFieldSelect__trigger i {
  font-size: 8px;
  padding-top: 4px;
}

.openFieldSelect {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.openFieldSelect__trigger {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.openFieldSelect__trigger .text {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.openFieldSelect__trigger .text.placeholder {
  opacity: 0.38;
}

.openFieldSelect__trigger i {
  font-size: 6px;
  padding-left: 15px;
  opacity: 0.26;
}

.openFieldInput {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.openFieldInput > * + * {
  margin-left: 15px;
}

.openFieldInput input {
  min-width: 0;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  background: none;
  border: 0;
  font-size: inherit;
}

.openFieldInput .submitWrap {
  opacity: 0.36;
  cursor: pointer;
  -webkit-align-self: stretch;
  align-self: stretch;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.openFieldInput .submitWrap:hover {
  opacity: 1;
}

.openFieldInput .icon-search {
  font-size: 16px;
}

.openFieldSelect--dark {
  background: #51596F;
}

.openFieldInput--light {
  background: #fff;
}

.openFieldInput--dark {
  background: #41495C;
}

.openFieldInput--dark input {
  color: #fff;
}

.openFieldInput--dark input::-webkit-input-placeholder {
  opacity: 0.38;
}

.openFieldInput--dark input:-moz-placeholder {
  opacity: 0.38;
}

.openFieldInput--dark input::-moz-placeholder {
  opacity: 0.38;
}

.openFieldInput--dark input:-ms-input-placeholder {
  opacity: 0.38;
}

.darkSideLinks {
  margin: 50px -10px;
  padding: 0;
  list-style-type: none;
}

.darkSideLinks > li + li {
  margin-top: 5px;
}

.darkSideLinks a {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  background: #41495C;
  color: #fff;
  padding: 10px 17px;
  text-decoration: none;
  border-left: 5px solid transparent;
}

.darkSideLinks a.active {
  border-left-color: #9768EB;
  background: #51596F;
}

.darkSideLinks a.active .num {
  color: #fff;
}

.darkSideLinks .text {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  font-size: 16px;
}

.darkSideLinks .num {
  color: #707C97;
  font-size: 13px;
  font-weight: 700;
  padding-left: 15px;
}

.pageSectionBlock {
  position: relative;
  background: #fff;
  box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);
  border-top: 5px solid #9768EB;
}

.pageSectionBlock__header {
  padding: 10px 15px 30px;
  border-bottom: 1px solid #EEEEEE;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.pageSectionBlock__header > * + * {
  padding-left: 15px;
}

.pageSectionBlock_preHeader {
  margin: 0 0 10px;
}

.actionsBar {
  padding: 8px 15px 8px 8px;
}

button.primary.small {
  font-size: 15px;
  text-transform: none;
  font-weight: 400;
  letter-spacing: 0;
  max-height: none;
  min-height: 0;
  height: 41px;
  padding: 0 14px;
  border-radius: 4px;
}

.btnIcon {
  vertical-align: middle;
  display: inline-block;
  font-size: 20px;
}

.btnIcon.icon-add-team {
  font-size: 20px;
}

.btnIcon.icon-add-person {
  font-size: 20px;
}

.btnIcon.icon-add-practitioner {
  font-size: 20px;
}

.btnIcon--left {
  padding-right: 10px;
}

.iconTextLink {
  white-space: nowrap;
  color: #9768EB;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
}

.iconTextLink i {
  padding-right: 5px;
}

.pageSection + .pageSection {
  margin-top: 30px;
}

.tableFiltersWrap {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: flex-end;
  align-items: flex-end;
  margin: 0 0 10px;
}

.tableFiltersWrap__main {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.tableFiltersWrap__side {
  padding-left: 15px;
  width: 25%;
  min-width: 180px;
}

.paginationInfo {
  font-size: 13px;
  color: #75787B;
}

.compactPagination {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.compactPagination > div {
  display: block;
  cursor: pointer;
  vertical-align: top;
  width: 31px;
  text-align: center;
  background: #9768EB;
  border-radius: 4px;
  opacity: 0.4;
}

.compactPagination > div + * {
  margin-left: 1px;
}

.compactPagination > div:hover {
  opacity: 1;
}

.compactPagination > div:first-child {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.compactPagination > div:last-child {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.compactPagination i {
  position: relative;
  top: -1px;
  display: inline-block;
  color: #fff;
  font-size: 22px;
  line-height: 28px;
  vertical-align: top;
}

.dropdown-wrapper.dropdown-wrapper--inline {
  display: inline-block;
}

.dropdown-wrapper.dropdown-wrapper--inline .trigger {
  border: 0;
  line-height: inherit;
}

.dropdown-wrapper.dropdown-wrapper--inline .trigger .icon-caret-dropdown {
  padding-left: 4px;
  padding-right: 4px;
}

.dropdown-wrapper.dropdown-wrapper--inline > .submenu-wrapper > .submenu-content > .submenu {
  background: #fff;
}

.dropdown-wrapper.dropdown-wrapper--inline > .submenu-wrapper > .submenu-content > .submenu li {
  min-width: 0;
  padding: 5px;
}

.dropdown-wrapper.dropdown-wrapper--inline > .submenu-wrapper > .submenu-content > .submenu li > span > span {
  padding-right: 0;
}

.icon--flip {
  display: inline-block;
  -moz-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  -webkit-transform: rotate(180deg);
  transform: rotate(180deg);
}

.sortedTableHeader {
  cursor: pointer;
}

.sortedTableHeader.sorted,
.sortedTableHeader:hover {
  background: #F7F7F7;
}

.sortIconWrap {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  height: 16px;
  width: 9px;
  margin-left: 3px;
}

.sortIconWrap:before,
.sortIconWrap:after {
  height: 0;
  width: 0;
  content: " ";
  display: block;
  position: absolute;
  left: 0;
  border-style: solid;
  border-color: transparent;
  border-top-width: 6px;
  border-bottom-width: 6px;
  border-left-width: 4px;
  border-right-width: 4px;
}

.sortIconWrap:before {
  border-bottom-color: #D8D8D8;
  top: -5px;
}

.sortIconWrap:after {
  border-top-color: #D8D8D8;
  bottom: -5px;
}

.sortedTableHeader--desc .sortIconWrap:before {
  display: none;
}

.sortedTableHeader--desc .sortIconWrap:after {
  border-top-color: #787B7E;
}

.sortedTableHeader--asc .sortIconWrap:before {
  border-bottom-color: #787B7E;
}

.sortedTableHeader--asc .sortIconWrap:after {
  display: none;
}

.actionIcon {
  font-size: 140%;
  color: #9768EB;
  cursor: pointer;
}

.actionIcon.icon-letter {
  font-size: 100%;
}

.actionIcon.icon-launch {
  font-size: 192%;
}

.iconActiveCheck {
  font-size: 110%;
  color: #DBDBDB;
}

.iconActiveCheck--active {
  color: #20b769;
}

.inlinePersonBadge {
  font-size: 100%;
  padding-left: 1px;
}

@media only screen and (min-width: 1054px) {
  .altTable tr > * {
    padding-left: 10px;
    padding-right: 10px;
  }

  .altTable tr > *:first-child {
    padding-left: 20px;
  }

  .altTable tr > *:last-child {
    padding-right: 20px;
  }

  .altTable__row {
    padding-left: 20px;
    padding-right: 20px;
  }
}

@media only screen and (max-width: 1053px) {
  .altTable tr > * {
    padding-left: 4px;
    padding-right: 4px;
  }

  .altTable tr > *:first-child {
    padding-left: 8px;
  }

  .altTable tr > *:last-child {
    padding-right: 8px;
  }

  .altTable__row {
    padding-left: 8px;
    padding-right: 8px;
  }
}

.altTable__innerWrap {
  color: #75787B;
  font-size: 13px;
  background: #fff;
  box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);
}

@media only screen and (max-width: 1053px) {
  .altTable__innerWrap {
    font-size: 12px;
  }
}

.altTable table {
  border-collapse: collapse;
  width: 100%;
  font-size: inherit;
}

.altTable tr > * {
  text-align: center;
  vertical-align: middle;
}

.altTable tr > *:first-child {
  text-align: left;
}

.altTable tr th {
  border-bottom: 1px solid #CFCFCF;
  font-weight: 600;
  padding-top: 14px;
  padding-bottom: 14px;
}

.altTable tr td {
  border-bottom: 1px solid #EEEEEE;
  padding-top: 12px;
  padding-bottom: 12px;
}

.altTable__simpleHeader {
  margin: 0 0 15px;
  color: #75787B;
  letter-spacing: 1px;
  text-transform: uppercase;
  font-size: 13px;
  font-weight: bold;
}

.altTable__footerBar {
  text-align: center;
  padding-top: 10px;
  padding-bottom: 10px;
}

.btn {
  display: inline-block;
  white-space: nowrap;
  cursor: pointer;
  text-align: center;
}

.shortWideBtn {
  min-width: 167px;
  line-height: 24px;
  border: 1px solid #9768EB;
  padding: 0 15px;
  font-weight: 500;
  font-size: 13px;
  color: #9768EB;
  border-radius: 3px;
}

.td--name {
  font-weight: 600;
}

.siteHeaderBar__logoGroup {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: stretch;
  align-items: stretch;
}

.siteHeaderBar__logoGroup > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  padding: 15px 20px;
}

.siteHeaderBar__logoGroup > div + div {
  border-left: 1px solid #C8C9C9;
}

.siteHeaderBar__actions {
  padding-right: 20px;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.logo--fusSmall {
  width: 119px;
}

.textLink {
  color: #9768EB;
  cursor: pointer;
  font-size: 13px;
}

.textLink--bump {
  font-size: 18px;
}

.backBtn {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  vertical-align: middle;
  width: 45px;
  height: 39px;
  text-align: center;
  background: #9768EB;
  color: #fff;
  font-size: 15px;
  border-radius: 3px;
  cursor: pointer;
}

.flexForm fieldset {
  border: 0;
  margin: 0;
  padding: 12px 0;
}

.flexForm fieldset + fieldset {
  border-top: 1px solid #EFEFF0;
}

.flexFormFooter {
  border-top: 1px solid #EFEFF0;
  padding: 20px 12px;
  text-align: center;
}

.flexFormRow {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  padding: 0 12px;
  min-height: 46px;
}

.flexFormRow + .flexFormRow {
  margin-top: 12px;
}

.flexFormRow--largeSection {
  -webkit-align-items: flex-start;
  align-items: flex-start;
  padding-top: 12px;
  padding-bottom: 12px;
}

.flexFormRow--largeSection .flexFormRow__labelCol {
  padding-top: 12px;
}

.flexFormRow__labelCol {
  min-height: 1px;
  width: 182px;
  text-align: right;
  font-size: 13px;
  color: #6C6D6C;
  padding-right: 27px;
}

.flexFormRow__fieldsCol {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.fieldsRow {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  margin: 0 -6px;
}

.fieldsRow > * {
  padding: 0 6px;
}

.fieldsRow--compressed {
  max-width: 500px;
}

.fieldsRow--twoCol > * {
  width: 50%;
}

.fieldsRow--threeCol > * {
  width: 33.33%;
}

.fieldsRow--fourCol > * {
  width: 25%;
}

.iconLabel {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.iconLabel i {
  font-size: 18px;
  color: #AC9EA5;
}

.iconLabel span {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  padding-left: 15px;
}

.uploadBlock {
  max-width: 390px;
  background: #F5F5F5;
  border-radius: 4px;
  padding: 20px 15px 20px 20px;
}

.inputInnerLabel {
  color: #AAABAF;
}

.collapsed__defaultElement {
  display: none;
}

.collapsed .collapsed__defaultElement {
  display: block;
}

.collapsed .collapsed__altElement {
  display: none;
}

.togglerBar {
  padding: 12px 17px;
  background: #F4F4F4;
  border-radius: 4px;
}

.togglerBar + .togglerBar {
  margin-top: 8px;
}

.togglerBar.collapsed .togglerBar__content {
  display: none;
}

.togglerBar__trigger {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.togglerBar__trigger__allToggleInput {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.togglerBar__trigger__icon {
  color: #9768EB;
  font-size: 11px;
  cursor: pointer;
  padding: 5px;
}

.togglerBar__content {
  padding: 24px 0 0;
}

.inputOptionsTree {
  list-style: none;
  margin: 0;
  padding: 0;
}

.inputOptionsTree ul {
  list-style: none;
  margin: 0 0 0 30px;
  padding: 0;
}

.inputOptionsTree li + li,
.inputOptionsTree label + ul {
  margin-top: 8px;
}

.inputOptionsTree > li > label span {
  font-weight: 700;
}

.inputOptionsTree > li > ul {
  margin-bottom: 24px;
}

.inputOptionsTree > li > ul > li > ul {
  margin-bottom: 18px;
}

.columnsList {
  list-style: none;
  margin: 30px 0;
  padding: 0;
}

.columnsList > li {
  margin-bottom: 11px;
}

.columnsList--4 {
  -webkit-column-count: 4;
  -moz-column-count: 4;
  column-count: 4;
}

.closableButton {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  background: #E9F0F2;
  border-radius: 5px;
  padding: 8px 16px;
  color: #75787B;
}

.closableButton span {
  white-space: nowrap;
  font-size: 12px;
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 0.9px;
}

.closableButton i {
  margin-left: 7px;
  padding: 3px 0;
  cursor: pointer;
  font-size: 18px;
}

label.checkbox-input span,
label.radio-input span {
  font-size: 13px;
  color: #75777A;
}

.responsiveShow {
  display: none;
}

@media only screen and (max-width: 900px) {
  .responsiveShow--smDown {
    display: block;
  }
}

.iconColCell {
  width: 20px;
}

.iconColCell .icon-edit {
  position: relative;
  top: -2px;
}

.openFieldWidth--max100 {
  max-width: 100%;
}

.openFieldWidth--small {
  width: 52px;
}

.openFieldWidth--medium {
  width: 148px;
}

.openFieldWidth--rpe {
  width: 200px;
}

.cellWidth--trainingLoad {
  width: 132px;
}

.scoreNum {
  font-weight: 500;
  font-size: 18px;
}

.openField--centered input {
  text-align: center;
}

.tlFiltersHeader {
  padding: 15px 15px;
}

.tlFiltersHeaderMain {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.tlFiltersHeaderMain > * + * {
  padding-left: 15px;
}

.flTable tr > * {
  text-align: left;
  padding-right: 0;
  padding-left: 0;
}

.flTable tr > * + * {
  padding-left: 15px;
}

.flTable tr > *:first-child {
  padding-left: 15px;
}

.flTable tr > *:last-child {
  padding-right: 15px;
}

.flTable .proccessArrow {
  margin-right: -15px;
}

.flTableColWidth {
  box-sizing: content-box;
}

@media only screen and (min-width: 1054px) {
  .flTableColWidth--title {
    width: 300px;
  }

  .flTableColWidth--session {
    width: 300px;
  }
}

.flTableColWidth--durationTarget {
  width: auto;
}

.smallFieldLabel {
  padding: 0 0 7px;
  font-size: 14px;
  color: #75787B;
}

.tlFiltersHeaderSide {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

.numName {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  font-size: 18px;
}

.numName__num {
  opacity: 0.4;
}

.numName__name {
  padding-left: 15px;
}

.numName--light {
  color: #75777A;
}

.openField--medium {
  height: 39px;
}

.selectBar {
  background: #9768EB;
  color: #fff;
  font-size: 15px;
  border-radius: 4px;
  padding: 9px 15px;
  line-height: 21px;
}

.selectBar.tall {
  padding: 12.5px 15px;
}

.selectBar i {
  display: none;
  padding-left: 5px;
  font-size: 11px;
}

.selectBar.isSelected {
  background: #F4F4F4;
  color: #C7CBCE;
}

.selectBar.isSelected i {
  display: inline;
}

.submenu__numTextWrap {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  font-size: 13px;
}

.submenu__numTextWrap .num {
  box-sizing: content-box;
  font-weight: 700;
  color: #6C6D6C;
  width: 15px;
  padding-right: 5px;
}

.submenu__numTextWrap .text {
  font-weight: 400;
  text-transform: none;
}

.contentWithProcessArrowWrap {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.contentWithProcessArrowWrap > *:first-child {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.contentWithProcessArrowWrap .proccessArrow {
  text-align: center;
  width: 40px;
  color: #EFF1F2;
  font-size: 15px;
}

@media only screen and (min-width: 1054px) {
  .contentWithProcessArrowWrap .proccessArrow {
    width: 100px;
  }
}

.openFieldSelect__trigger .icon-target {
  font-size: 19px;
  color: #AAABAF;
  padding-right: 8px;
}

.TL-Duration input:invalid {
  border: 1px solid #CC0000;
  border-radius: 4px;
  height: 100%;
  background: #FFCCCC;
}

.backToLink {
  margin: 0 0 20px;
  display: inline-block;
  color: #9768EB;
  cursor: pointer;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.backToLink i {
  font-size: 15px;
  display: block;
}

.backToLink .text {
  display: block;
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  padding-left: 10px;
}

.compactFormStack > * + * {
  margin-top: 10px;
}

.inlineOverlayWrap {
  position: relative;
}

.inlineOverlay {
  position: absolute;
  z-index: 10;
  top: calc(100% - 15px);
  left: 50%;
  transform: translate(-50%, 0);
  background: #fff;
  width: 377px;
  max-width: calc(100% - 30px);
  padding: 15px;
  border: 1px solid #EEEEEE;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.13);
  border-radius: 4px;
}

.inlineOverlay__triangle {
  position: absolute;
  top: 3px;
  left: 50%;
  transform: translate(-50%, -100%);
  width: 29px;
  height: 17px;
  background: url(../images/overlay-triangle.png) center center no-repeat;
  background-size: contain;
}

.inlineOverlay__close {
  position: absolute;
  top: 15px;
  right: 15px;
  font-size: 17px;
  color: #9768EB;
  cursor: pointer;
}

.inlineOverlay__title {
  margin: 0 0 20px;
  padding: 0 30px;
  font-size: 18px;
  font-weight: 500;
  color: #75787B;
  text-align: center;
}

.chart-date-header + .dlRow {
  margin: 10px 0 20px;
}

.dlRow {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

.dlRow + .chart-date-header {
  margin-top: 30px;
}

.dlRow + .dlRow {
  margin-top: 20px;
}

.dlItem__label {
  font-weight: 500;
  color: #75777A;
  font-size: 14px;
}

.dlItem__num {
  font-weight: 100;
  font-size: 30px;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.dlItem__num .scoreChangeIcon {
  font-size: 7px;
  vertical-align: middle;
  padding-right: 8px;
}

.menu-pointer {
  cursor: pointer;
}

.weeklyScoreChangeIcon {
  font-size: 7px;
  vertical-align: middle;
  padding-right: 4px;
  margin-right: 4px;
}

.profileTLChangeIcon {
  font-size: 10px;
  vertical-align: middle;
  padding-right: 1px;
  padding-bottom: 3px;
}

.review-container .review-tabs + div {
  padding-top: 10px;
  border-top: 1px solid #0af;
}

.review-container .review-frame {
  display: flex;
  align-items: center;
  flex: 0.95;
  padding-left: 5px;
  min-height: 40px;
  font-size: 20px;
  border-bottom: solid 1px #c0c0c0;
  cursor: pointer;
}

.review-container .review-frame.error {
  font-size: 18px;
  font-weight: normal;
  color: #222;
  cursor: not-allowed;
}

.review-container .review-frame i.fa.fa-trash {
  color: #c0c0c0;
}

.review-container .review-frame i.fa.fa-trash:hover {
  color: #990000;
}

.review-container .review-frame img {
  max-width: 18px;
}

.review-container input[type=radio] {
  display: none;
}

.review-container input[type=radio]:checked + label {
  color: #0af;
  border: 1px solid #abc;
  border-top: 2px solid #0af;
  border-bottom: 1px solid #fff;
}

.review-container label[for*="Keypoints"],
.review-container label[for*="Reps"],
.review-container label[for*="Compensations"] {
  display: inline-block;
  margin: 0 0 -1px;
  padding: 10px 25px;
  font-size: 16px;
  text-align: center;
  color: #abc;
  border: 1px solid transparent;
}

.review-container label[for*="Keypoints"]:before,
.review-container label[for*="Reps"]:before,
.review-container label[for*="Compensations"]:before {
  font-family: fontawesome;
  font-weight: normal;
  margin-right: 10px;
}

.review-container label[for*="Keypoints"]:hover,
.review-container label[for*="Reps"]:hover,
.review-container label[for*="Compensations"]:hover {
  color: #789;
  cursor: pointer;
}

.review-container label[for*="Keypoints"]:before {
  content: '\F192';
}

.review-container label[for*="Reps"]:before {
  content: '\F0CB';
}

.review-container label[for*="Compensations"]:before {
  content: '\F1FE';
}

.review-container .comps input {
  display: none;
}

.review-container .comps label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  background-color: #00B96D;
  border: 1px solid #00B96D;
  border-radius: 5px;
  min-width: 80px;
  line-height: 35px;
  color: #ffffff;
  font-weight: 600;
  text-transform: uppercase;
}

.review-container .comps label.found {
  background-color: #D1404B;
  border-color: #D1404B;
}

.review-container .comps label.hard {
  background-color: purple;
  border-color: purple;
}

.review-container .comps label.edge {
  background-color: #abc;
  border-color: #abc;
}

.assessment-container {
  margin-bottom: 40px;
}

.assessment-container a {
  text-decoration: none;
  color: #9768EB;
  cursor: pointer;
}

.assessment-container a:hover {
  text-decoration: underline;
}

.assessment-container.more {
  margin-top: 20px;
}

.assessment-container.more > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
}

.assessment-container.info-only {
  margin-top: 60px;
}

.assessment-container.info-only > .list-container > div:not(.scroll-container) {
  -webkit-justify-content: space-between;
  justify-content: space-between;
  margin-right: 20px;
}

.assessment-container.info-only > .banner {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 40px;
  font-size: 16px;
  text-indent: 10px;
  text-transform: uppercase;
  border-bottom: 1px solid #c9c9c9;
}

.assessment-container > .list-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  margin: 30px 0;
}

.assessment-container > .list-container > div:not(.scroll-container) {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  min-height: 50px;
  border-bottom: 1px solid #ccc;
}

.assessment-container > .list-container > div:not(.scroll-container) span {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: default;
}

.assessment-container > .list-container > div:not(.scroll-container) .list-info {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  min-width: 140px;
  max-width: 140px;
  padding: 0 4px;
}

.assessment-container > .list-container > div:not(.scroll-container) .list-info > a > span {
  cursor: pointer;
}

.assessment-container > .list-container > div:not(.scroll-container) .list-info.action {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  min-width: 60px;
}

.assessment-container > .list-container > div:not(.scroll-container) .list-info.action > button {
  min-height: 35px;
  max-height: 35px;
  padding: 0;
}

.assessment-container > .list-container > div:not(.scroll-container).header-row {
  min-height: 40px;
}

.assessment-container > .list-container > div:not(.scroll-container).header-row span {
  font-size: 12px;
  font-weight: bold;
  text-transform: uppercase;
  cursor: default;
}

.assessment-container > .list-container > .scroll-container {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.assessment-container > .list-container > .scroll-container > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  margin-right: 5px;
  min-height: 50px;
  border-bottom: 1px solid #ccc;
}

.assessment-container > .list-container > .scroll-container > div span {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: default;
}

.assessment-container > .list-container > .scroll-container > div .list-info {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  min-width: 140px;
  max-width: 140px;
  padding: 0 4px;
}

.assessment-container > .list-container > .scroll-container > div .list-info.action {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  min-width: 60px;
}

.assessment-container > .list-container > .scroll-container > div .list-info.action > button {
  min-height: 35px;
  max-height: 35px;
  padding: 0;
}

.assessment-container > .no-data {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  min-height: 250px;
  font-size: 20px;
}

.assessment-container .info-column {
  margin-right: 25px;
  min-width: 240px;
}

.assessment-container .info-column > .info-container {
  padding: 8px;
  border: 1px solid #c0c0c0;
}

.assessment-container .info-column > .info-container > .banner {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  margin: 8px 0px;
  min-height: 35px;
  background-color: #dcdcdc;
}

.assessment-container .info-column > .info-container > div:not(.banner) {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
}

.assessment-container .info-column > .info-container > div:not(.banner) > div:first-of-type {
  min-width: 100px;
}

.assessment-container .info-column > .info-container > div:not(.banner) > div:last-of-type {
  max-width: 120px;
}

.assessment-container .info-column > .info-container > div:not(.banner).state-info {
  -webkit-align-items: flex-start;
  align-items: flex-start;
}

.assessment-container .info-column .info-container + .info-container {
  margin-top: 30px;
}

.assessment-container .media-column {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.assessment-container .video-column {
  position: relative;
  margin-bottom: 25px;
  width: 100%;
  display: flex;
  justify-content: center;
}

.assessment-container .video-column > video,
.assessment-container .video-column > canvas {
  display: block;
  max-width: 100%;
  max-height: calc(100vh - 160px);
  width: auto;
  height: auto;
}

.assessment-container .video-column .video-play-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  cursor: pointer;
}

.assessment-container .video-column .video-play-overlay.is-hidden {
  display: none;
}

.assessment-container .video-column .video-play-overlay i {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 84px;
  height: 84px;
  padding-left: 6px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.45);
  color: #fff;
  font-size: 38px;
  opacity: 0.9;
}

.assessment-container .detail-column {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  min-width: 0;
}

.assessment-container .detail-column .table-scroll {
  overflow-x: auto;
  padding-bottom: 5px;
}

.assessment-container .detail-column .detail-table {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.assessment-container .detail-column .detail-table > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  margin-bottom: 5px;
}

.assessment-container .detail-column .detail-table > div.header {
  font-weight: 600;
}

.assessment-container .detail-column .detail-table > div.items {
  min-height: 50px;
  border-top: 1px solid #dadada;
}

.assessment-container .detail-column .exercise-table {
  min-width: 700px;
}

.assessment-container .detail-column .exercise-list.items {
  -webkit-align-items: flex-start;
  align-items: flex-start;
  padding: 12px 0;
}

.assessment-container .detail-column .exercise-list > .name {
  -webkit-flex: 0.6;
  -ms-flex: 0.6;
  flex: 0.6;
  min-width: 160px;
  cursor: pointer;
}

.assessment-container .detail-column .exercise-list > .status {
  -webkit-flex: 0.4;
  -ms-flex: 0.4;
  flex: 0.4;
  min-width: 110px;
  text-align: center;
}

.assessment-container .detail-column .exercise-list > .reasoning {
  -webkit-flex: 1.4;
  -ms-flex: 1.4;
  flex: 1.4;
  min-width: 340px;
  padding-right: 15px;
  text-align: left;
}

.assessment-container .detail-column .exercise-list > .action {
  -webkit-justify-content: center;
  justify-content: center;
  min-width: 100px;
}

.assessment-container .detail-column .exercise-list > .action > button {
  min-height: 35px;
  max-height: 35px;
  padding: 0;
}

.assessment-container .detail-column .exercise-list .reason-entry + .reason-entry {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dotted #cdcdcd;
}

.assessment-container .detail-column .exercise-list .reason-source {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #6d6e72;
}

.assessment-container .detail-column .exercise-list .reason-reason {
  font-size: 13px;
  line-height: 1.35;
  word-break: break-word;
}

.assessment-container .detail-column .exercise-list .reason-meta {
  font-size: 12px;
  line-height: 1.35;
  color: #6d6e72;
}

.assessment-container .detail-column .exercise-list .reason-warning {
  font-size: 12px;
  line-height: 1.35;
  color: #7f6a18;
}

.assessment-container .detail-column .exercise-list .reason-muted {
  font-size: 12px;
  font-style: italic;
  color: #808080;
}

.assessment-container .detail-column .measurement-list.header .name ~ div {
  min-width: 80px;
  text-align: center;
}

.assessment-container .detail-column .measurement-list > .name {
  min-width: 300px;
  max-width: 300px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.assessment-container .detail-column .measurement-list .name ~ div {
  margin-left: 5px;
}

.assessment-container .detail-column .measurement-list input[type=checkbox] {
  display: none;
}

.assessment-container .detail-column .measurement-list label {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  background-color: #00B96D;
  border: 1px solid #00B96D;
  border-radius: 5px;
  min-width: 80px;
  line-height: 35px;
  color: #ffffff;
  font-weight: 600;
  text-transform: uppercase;
  cursor: pointer;
}

.assessment-container .detail-column .measurement-list label.inactive {
  cursor: not-allowed;
}

.assessment-container .detail-column .measurement-list label.inactive:not(.found) {
  background-color: #c0c0c0;
  border-color: #c0c0c0;
}

.assessment-container .detail-column .measurement-list label.found {
  background-color: #D1404B;
  border-color: #D1404B;
}

.assessment-container .detail-column .exercise-status {
  margin-top: 20px;
}

.assessment-container .detail-column .exercise-status > div {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-align-items: center;
  align-items: center;
  -webkit-justify-content: center;
  justify-content: center;
  min-height: 52px;
  background-color: #c0c0c0;
  border: 1px solid #dadada;
}

.assessment-container .detail-column .exercise-status > div.pending {
  background-color: #00b96d;
}

.assessment-container .detail-column .exercise-status > div .text {
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
  padding-left: 10px;
  font-size: 16px;
}

.assessment-container .detail-column .exercise-status > div .text.manual {
  color: #fefefe;
}

.assessment-container .detail-column .exercise-status > div .text.pending {
  color: #efefef;
}

.assessment-container .detail-column .exercise-status > div .text.complete {
  color: #2d6b1d;
}

.assessment-container .detail-column .exercise-status > div .text.aborted {
  color: #2d1818;
}

.assessment-container .detail-column .exercise-status > div .button {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}

.assessment-container .detail-column .exercise-status > div .button > button {
  min-height: 40px;
  max-height: 40px;
}

.assessment-container .detail-column .measurement-save {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
  margin: 20px 0;
}

.assessment-container .detail-column .measurement-save > button {
  min-width: 130px;
  text-transform: uppercase;
}

.programs-page-host {
  display: flex;
  justify-content: center;
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  background: #f6f6f7;
}

.programs-page {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  padding: 24px 32px 48px;
  background: #f6f6f7;
  box-sizing: border-box;
  overflow-y: auto;
}

.programs-page button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.programs-page button + button {
  margin-left: 0;
}

.programs-page__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}

.programs-page__title {
  margin: 0;
  font-size: 30px;
  font-weight: 500;
  line-height: 38px;
  color: #1f1f28;
}

.programs-page__catalog-btn {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: 40px;
  padding: 0 18px;
  background: #f6f6f7;
  border: 1px solid #9768EB;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #9768EB;
  cursor: pointer;
}

.programs-page__catalog-btn:hover {
  background: #f2edfc;
}

.programs-page__tabs {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}

.programs-page__tab {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  box-sizing: border-box;
  height: 40px;
  padding: 0 16px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
  cursor: pointer;
}

.programs-page__tab--active {
  border-color: #9768EB;
  background: #f2edfc;
  color: #9768EB;
}

.programs-page__tab-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  padding: 0 6px;
  background: #f2f2f4;
  border-radius: 11px;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
}

.programs-page__tab--active .programs-page__tab-count {
  background: rgba(255, 255, 255, 0.75);
  color: #9768EB;
}

.programs-page__notice {
  display: flex;
  align-items: center;
  gap: 6px;
  box-sizing: border-box;
  height: 44px;
  margin-bottom: 24px;
  padding: 0 16px;
  background: #fdf8ec;
  border: 1px solid #f2e3bd;
  border-radius: 6px;
}

.programs-page__notice-icon {
  display: block;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  object-fit: contain;
  position: relative;
  top: -1px;
}

.programs-page__notice-text {
  flex: 1 1 auto;
  font-family: 'Nudista', sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  color: #d68b00;
}

.programs-page__notice-close {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: 40px;
  padding: 0 4px;
  background: none;
  border: 0;
  font-size: 20px;
  line-height: 1;
  color: #d68b00;
  cursor: pointer;
}

.programs-page__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, 361px);
  gap: 24px;
  align-items: start;
}

.programs-page__skeleton-grid {
  display: contents;
}

.programs-page__empty {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 96px 24px;
  text-align: center;
}

.programs-page__empty-title {
  margin: 0;
  font-family: "Nudista", sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  text-align: center;
  color: #4f4f4f;
}

.programs-page__empty-description {
  margin: 0;
  max-width: 420px;
  font-family: "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  letter-spacing: 0;
  text-align: center;
  color: #4f4f4f;
}

.programs-page__empty .programs-page__catalog-btn {
  margin-top: 16px;
}

.programs-page__history-table-wrap {
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 6px;
  overflow-x: auto;
}

.programs-page__history-table {
  width: 100%;
  min-width: 640px;
  border-collapse: collapse;
  table-layout: fixed;
}

.programs-page__history-th {
  height: 40px;
  padding: 0 16px;
  border-bottom: 1px solid #ececec;
  font-size: 13px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
  text-align: left;
  vertical-align: middle;
}

.programs-page__history-th--name {
  width: 38%;
}

.programs-page__history-th--date {
  width: 16%;
}

.programs-page__history-th--created {
  width: 30%;
}

.programs-page__history-sort {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  background: none;
  border: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
}

.programs-page__history-sort:hover {
  color: #1f1f28;
}

.programs-page__history-sort-icon {
  flex: 0 0 auto;
  display: block;
  width: 12px;
  height: 12px;
}

.programs-page__history-sort-icon path {
  fill: #6d6d6d;
}

.programs-page__history-sort-icon--asc .programs-page__history-sort-up,
.programs-page__history-sort-icon--desc .programs-page__history-sort-down {
  fill: #9768eb;
}

.programs-page__history-row {
  height: 72px;
  border-bottom: 1px solid #ececec;
}

.programs-page__history-row:last-child {
  border-bottom: 0;
}

.programs-page__history-td {
  padding: 12px 16px;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  color: #1f1f28;
  vertical-align: middle;
}

.programs-page__history-td--name {
  display: flex;
  align-items: center;
  gap: 12px;
}

.programs-page__history-td--date {
  color: #6d6d6d;
}

.programs-page__history-td--created {
  color: #6d6d6d;
}

.programs-page__history-thumb {
  display: block;
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 4px;
  background: #d9d9d9;
}

.programs-page__history-skeleton {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 8px 0;
}

.programs-page__history-skeleton-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 6px;
}

.programs-page__history-skeleton-thumb {
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  border-radius: 4px;
}

.programs-page__history-name {
  min-width: 0;
}

.programs-page__history-title {
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #9768EB;
  overflow-wrap: break-word;
}

.programs-page__history-genre {
  margin-top: 2px;
  font-size: 13px;
  font-weight: 500;
  line-height: 18px;
  color: #6d6d6d;
}

.programs-page__history-footer {
  padding: 14px 16px;
  border-top: 1px solid #ececec;
  font-size: 13px;
  font-weight: 500;
  line-height: 20px;
  color: #6d6d6d;
}

.programs-page__history-footer--cards {
  padding: 4px 4px 0;
  border-top: 0;
}

.programs-page__history-cards {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.programs-page__history-sortbar {
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 2px;
}

.programs-page__history-chip {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: 6px;
  box-sizing: border-box;
  height: 40px;
  padding: 0 12px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
  cursor: pointer;
}

.programs-page__history-chip--active {
  border-color: #9768EB;
  background: #f2edfc;
  color: #9768EB;
}

.programs-page__history-chip-icon {
  flex: 0 0 auto;
  font-size: 12px;
  color: inherit;
}

.programs-page__history-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  box-sizing: border-box;
  padding: 12px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 6px;
  box-shadow: 0 1px 3px rgba(16, 24, 40, 0.04);
}

.programs-page__history-card-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.programs-page__history-card .programs-page__history-title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  max-height: 40px;
  overflow: hidden;
}

.programs-page__history-dates {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
  margin-top: 4px;
}

.programs-page__history-date {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.programs-page__history-date-label {
  font-size: 11px;
  font-weight: 600;
  line-height: 16px;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  color: #6d6d6d;
}

.programs-page__history-date-value {
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  color: #1f1f28;
}

.program-card {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  width: 361px;
  height: 348px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 6px;
  box-shadow: 0 1px 3px rgba(16, 24, 40, 0.04);
  overflow: visible;
}

.program-card__media {
  position: relative;
  flex: 0 0 auto;
  height: 152px;
  overflow: visible;
  background: #e7e7e7;
  border-radius: 6px 6px 0 0;
}

.program-card__badge {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 2px 8px;
  background: #f2edfc;
  border-radius: 16px;
  font-family: "Nudista", sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 17px;
  letter-spacing: 0;
  text-align: center;
  color: #533d82;
}

.program-card__menu {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
}

.program-card__menu-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 4px;
  font-size: 14px;
  line-height: 1;
  color: #6d6d6d;
  cursor: pointer;
}

.program-card__menu-btn:hover {
  color: #1f1f28;
  background: #f2f2f4;
}

.program-card__menu-list {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  box-sizing: border-box;
  width: 180px;
  min-width: 180px;
  padding: 0;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(16, 24, 40, 0.12);
  overflow: hidden;
}

.program-card__menu-item {
  display: flex;
  align-items: center;
  gap: 8px;
  box-sizing: border-box;
  width: 100%;
  height: 48px;
  padding: 14px 16px;
  background: none;
  border: 0;
  font-family: "Nudista", sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  color: #f04438;
  text-align: left;
  cursor: pointer;
}

.program-card__menu-item:hover {
  background: #fef3f2;
  color: #f04438;
}

.program-card__menu-item-icon {
  flex: 0 0 auto;
  display: block;
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.program-card__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 8px;
  min-height: 0;
  padding: 12px;
  box-sizing: border-box;
  overflow: hidden;
}

.program-card__title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  flex-shrink: 0;
  max-height: 40px;
  overflow: hidden;
  font-family: "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  color: #1f1f28;
}

.program-card__tags {
  display: flex;
  flex: 0 0 auto;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.program-card__tag {
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  gap: 4px;
  height: 20px;
  padding: 0 8px;
  background: #f2f2f4;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
  text-align: center;
}

.program-card__tag-icon {
  flex: 0 0 auto;
  font-size: 10px;
  line-height: 1;
  color: inherit;
}

.program-card__tag-icon--img {
  display: block;
  width: 12px;
  height: 12px;
  object-fit: contain;
}

.program-card__meta {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  flex-shrink: 1;
  gap: 4px;
  min-height: 0;
  overflow: hidden;
}

.program-card__meta-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: "Nudista", sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 16px;
  letter-spacing: 0;
  color: #6d6d6d;
}

.program-card__meta-name {
  overflow: hidden;
  min-width: 0;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.program-card__meta-date {
  flex: 0 0 auto;
  white-space: nowrap;
}

.program-card__meta-icon {
  flex: 0 0 auto;
  width: 14px;
  font-size: 12px;
  text-align: center;
  color: #6d6d6d;
}

.program-card__meta-icon--img {
  display: block;
  width: 14px;
  height: 14px;
  object-fit: contain;
}

.program-card__meta-icon--svg {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 14px;
}

.program-card__meta-icon--svg svg {
  display: block;
  width: 14px;
  height: 14px;
}

.program-card__meta-dot {
  flex: 0 0 auto;
  margin: 0 -2px;
  font-size: 12px;
  line-height: 16px;
  color: #c4c4c8;
}

.program-card__schedule {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding-top: 12px;
  border-top: 1px solid #ececec;
}

.program-card__schedule-label {
  font-family: "Nudista", sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 16px;
  letter-spacing: 0;
  color: #1f1f28;
}

.program-card__days {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}

.program-card__day {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  background: #f2f2f4;
  border-radius: 3px;
  font-size: 11px;
  font-weight: 600;
  line-height: 16px;
  color: #c4c4c8;
}

.program-card__day--on {
  background: #f2edfc;
  color: #32254f;
}

.program-card__actions {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 8px;
  margin-top: auto;
  padding-top: 4px;
}

.program-card__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  gap: 8px;
  width: 100%;
  height: 44px;
  padding: 0 16px 0 12px;
  background: #9768EB;
  border: 1px solid #9768EB;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #fff;
  cursor: pointer;
}

.program-card__cta:hover {
  opacity: 0.9;
}

.program-card__cta--ghost {
  background: #fff;
  color: #9768EB;
}

.program-card__cta--ghost:hover {
  background: #f2edfc;
  opacity: 1;
}

.program-card__cta-icon {
  flex: 0 0 auto;
  display: block;
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.program-card--skeleton {
  pointer-events: none;
}

.program-card--skeleton .program-card__media {
  background: #ececef;
  animation: home-skeleton-pulse 1.2s ease-in-out infinite;
}

.program-card__skeleton-title {
  height: 16px;
  width: 72%;
  max-width: none;
}

.program-card__skeleton-tag {
  height: 20px;
  width: 72px;
  border-radius: 4px;
}

.program-card__skeleton-meta {
  height: 12px;
  width: 58%;
  max-width: none;
}

.program-card__skeleton-cta {
  height: 44px;
  width: 100%;
  max-width: none;
  border-radius: 4px;
  margin-top: auto;
}

@media (max-width: 1100px) {
  .programs-page {
    padding: 20px 20px 40px;
  }

  .programs-page__grid {
    grid-template-columns: repeat(auto-fill, 361px);
    gap: 20px;
  }
}

@media (max-width: 768px) {
  .programs-page {
    padding: 16px 16px 32px;
  }

  .programs-page__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .programs-page__title {
    font-size: 24px;
    line-height: 32px;
  }

  .programs-page__catalog-btn {
    width: 100%;
  }

  .programs-page__tabs {
    flex-wrap: nowrap;
    gap: 8px;
  }

  .programs-page__tab {
    flex: 1 1 auto;
    justify-content: center;
    min-width: 0;
    padding: 0 10px;
    gap: 6px;
    font-size: 12px;
  }

  .programs-page__tab-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .programs-page__tab-count {
    flex: 0 0 auto;
    min-width: 20px;
    padding: 0 5px;
  }

  .programs-page__grid {
    grid-template-columns: 361px;
    justify-content: center;
  }

  .programs-page__empty {
    padding: 56px 16px;
  }
}

.programs-toast {
  position: fixed;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 900;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 32px;
  height: 44px;
  width: max-content;
  max-width: calc(100vw - 32px);
  padding: 8px 8px 8px 16px;
  border-radius: 4px;
  background: #35354b;
  box-shadow: 0 8px 24px rgba(16, 24, 40, 0.24);
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items) .programs-toast {
  left: calc(50% + 240px / 2);
  max-width: calc(100vw - 240px - 32px);
}

.main-view:has(> .menu-content .profile-menu--sidebar.has-items.is-collapsed) .programs-toast {
  left: calc(50% + 70px / 2);
  max-width: calc(100vw - 70px - 32px);
}

.programs-toast__check {
  flex: 0 0 auto;
  display: block;
  width: 20px;
  height: 20px;
  object-fit: contain;
  margin-right: -20px;
}

.programs-toast__message {
  flex: 0 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 100%;
  letter-spacing: -0.02em;
  color: #ffffff;
}

.programs-toast__close {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #ffffff;
  cursor: pointer;
}

.programs-toast__close img {
  display: block;
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.programs-toast__close:hover {
  background: rgba(255, 255, 255, 0.12);
}

@media (max-width: 768px) {
  .programs-toast {
    bottom: 16px;
    max-width: calc(100vw - 24px);
    gap: 16px;
  }

  .programs-toast__check {
    margin-right: 0;
  }

  .main-view:has(> .menu-content .profile-menu--sidebar.has-items) .programs-toast,
  .main-view:has(> .menu-content .profile-menu--sidebar.has-items.is-collapsed) .programs-toast {
    left: 50%;
    max-width: calc(100vw - 24px);
  }
}

.program-delete {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 512px;
  max-width: calc(100vw - 32px);
  padding: 32px 32px 24px;
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 12px 32px rgba(16, 24, 40, 0.24);
  font-family: 'Nudista', sans-serif;
}

.program-delete__close {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  position: absolute;
  top: 28px;
  right: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  box-shadow: none;
  color: #9d9d9d;
  cursor: pointer;
}

.program-delete__close:hover {
  background: transparent;
  color: #000000;
}

.program-delete__title {
  margin: 0 40px 0 0;
  font-weight: 600;
  font-size: 18px;
  line-height: 28px;
  letter-spacing: 0;
  text-transform: none;
  color: #000000;
}

.program-delete__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 24px;
}

.program-delete__btn {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  margin: 0;
  border-radius: 4px;
  box-shadow: none;
  cursor: pointer;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 600;
}

.program-delete__btn--ghost {
  gap: 10px;
  min-width: 88px;
  padding: 16px 20px;
  line-height: 16px;
  border: 1px solid #b0b0b0;
  background-color: #ffffff;
  color: #000000;
}

.program-delete__btn--ghost:hover {
  background-color: #f7f7f8;
}

.program-delete__btn--danger {
  gap: 12px;
  min-width: 94px;
  padding: 14px 24px;
  line-height: 20px;
  border: 0;
  background-color: #f04438;
  color: #ffffff;
}

.program-delete__btn--danger:hover {
  background-color: #d92d20;
}

@media (max-width: 480px) {
  .program-delete {
    padding: 20px;
  }

  .program-delete__close {
    top: 16px;
    right: 16px;
  }

  .program-delete__actions {
    margin-top: 20px;
  }
}

.program-catalog {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 848px;
  padding: 24px 32px 48px;
  box-sizing: border-box;
  overflow-y: auto;
}

.program-catalog button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.program-catalog button + button {
  margin-left: 0;
}

.program-catalog input[type='text'] {
  padding: 0;
  background: none;
  border: 0;
  border-radius: 0;
}

.program-catalog__breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}

.program-catalog__crumb {
  padding: 0;
  background: none;
  border: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
  cursor: pointer;
}

.program-catalog__crumb:hover {
  color: #1f1f28;
}

.program-catalog__crumb--current {
  color: #9768eb;
  cursor: default;
}

.program-catalog__crumb--current:hover {
  color: #9768eb;
}

.program-catalog__crumb-sep {
  flex: 0 0 auto;
  color: #6d6d6d;
}

.program-catalog__title {
  margin: 0 0 20px;
  font-size: 30px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
  color: #000000;
}

.program-catalog__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}

.program-catalog__filters {
  display: flex;
  align-items: center;
  gap: 12px;
}

.program-catalog__filter {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 36px;
  padding: 4px 16px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  color: #6d6d6d;
  cursor: pointer;
}

.program-catalog__filter--active {
  padding-left: 12px;
  border-color: #7355b5;
  background: #f2edfc;
  box-shadow: 0 1px 2px 0 rgba(10, 13, 18, 0.05);
  color: #9768eb;
}

.program-catalog__filter-icon {
  font-size: 14px;
}

.program-catalog__filter-icon--img {
  flex: 0 0 auto;
  display: block;
  width: 16px;
  height: 16px;
  background-color: #6c6c7c;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.program-catalog__filter--active .program-catalog__filter-icon--img {
  background-color: #7355b5;
}

.program-catalog__search {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  width: 215px;
  height: 36px;
  padding: 8px;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid #d1d1d1;
  border-radius: 4px;
}

.program-catalog__search--inline {
  flex: 1 1 auto;
  width: auto;
  margin: 12px 20px;
}

.program-catalog__search-icon {
  flex: 0 0 auto;
  font-size: 13px;
  color: #6d6d6d;
}

.program-catalog__search-input {
  flex: 1 1 auto;
  min-width: 0;
  height: 100%;
  padding: 0;
  background: none;
  border: 0;
  font-size: 14px;
  line-height: 20px;
  color: #1f1f28;
}

.program-catalog__search-input::-webkit-input-placeholder {
  color: #6d6d6d;
}

.program-catalog__search-input:-moz-placeholder {
  color: #6d6d6d;
}

.program-catalog__search-input::-moz-placeholder {
  color: #6d6d6d;
}

.program-catalog__search-input:-ms-input-placeholder {
  color: #6d6d6d;
}

.program-catalog__search-input:focus {
  outline: none;
}

.program-catalog__search-clear {
  flex: 0 0 auto;
  padding: 0 2px;
  background: none;
  border: 0;
  font-size: 18px;
  line-height: 1;
  color: #6d6d6d;
  cursor: pointer;
}

.program-catalog__groups,
.program-catalog__sections {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.program-catalog__sections {
  margin-top: 12px;
}

.program-catalog__group {
  border: 1px solid #ececec;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  overflow: hidden;
}

.program-catalog__group--open {
  border-color: #9768eb;
}

.program-catalog__group-header {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  height: auto;
  padding: 18px 20px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.program-catalog__group--open .program-catalog__group-header {
  background: #f7f7f8;
}

.program-catalog__group-title {
  font-size: 16px;
  font-weight: 500;
  line-height: 20px;
  letter-spacing: 0;
  color: #1f1f28;
}

.program-catalog__group-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  padding: 0 6px;
  background: #f2f2f4;
  border-radius: 11px;
  font-size: 12px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
}

.program-catalog__group-chevron {
  flex: 0 0 auto;
  margin-left: auto;
  font-size: 14px;
  color: #6d6d6d;
}

.program-catalog__group-body {
  border-top: 1px solid #ececec;
}

.program-catalog__subgroup-title {
  padding: 12px 20px 4px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #6d6d6d;
}

.program-catalog__row {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  height: auto;
  padding: 12px 20px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.program-catalog__row + .program-catalog__row {
  border-top: 1px solid #ececec;
}

.program-catalog__row:hover {
  background: #fafafa;
}

.program-catalog__thumb {
  display: block;
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: 4px;
  background: #d9d9d9;
}

.program-catalog__main {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1 1 auto;
  min-width: 0;
}

.program-catalog__name {
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  color: #1f1f28;
  overflow-wrap: break-word;
  word-break: break-word;
}

.program-catalog__badge {
  flex: 0 0 auto;
  padding: 2px 10px;
  background: #e8f8ef;
  border-radius: 11px;
  font-size: 12px;
  font-weight: 600;
  line-height: 18px;
  color: #17945a;
}

.program-catalog__meta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  font-size: 13px;
  font-weight: 500;
  line-height: 18px;
  color: #6d6d6d;
}

.program-catalog__meta-sep {
  font-size: 10px;
}

.program-catalog__row-chevron {
  flex: 0 0 auto;
  font-size: 12px;
  color: #6d6d6d;
}

.program-catalog__skeleton {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.program-catalog__skeleton-group {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 18px 20px;
}

.program-catalog__skeleton-title {
  flex: 0 1 auto;
  width: 180px;
  height: 16px;
  margin: 2px 0;
}

.program-catalog__skeleton-title--short {
  width: 128px;
}

.program-catalog__skeleton-count {
  flex: 0 0 auto;
  width: 22px;
  height: 20px;
  border-radius: 11px;
}

.program-catalog__skeleton-chevron {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  margin-left: auto;
}

.program-catalog__empty {
  padding: 20px;
  font-size: 14px;
  color: #6d6d6d;
}

.program-catalog__action {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  height: auto;
  padding: 16px 20px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 8px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  text-align: left;
  cursor: pointer;
}

.program-catalog__action:hover {
  border-color: #9768eb;
}

.program-catalog__action-icon,
.program-catalog__action-plus {
  flex: 0 0 auto;
  font-size: 14px;
  color: #9768eb;
}

.program-catalog__action-plus {
  margin-left: auto;
}

.program-catalog__action-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.program-catalog__action-title {
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #9768eb;
}

.program-catalog__action-subtitle {
  font-size: 12px;
  line-height: 16px;
  color: #6d6d6d;
}

@media (max-width: 1100px) {
  .program-catalog {
    padding: 20px 20px 40px;
  }
}

@media (max-width: 768px) {
  .program-catalog {
    padding: 16px 16px 32px;
  }

  .program-catalog__title {
    font-size: 24px;
    line-height: 32px;
  }

  .program-catalog__toolbar {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .program-catalog__filters {
    flex-wrap: wrap;
  }

  .program-catalog__search {
    flex: 1 1 auto;
  }

  .program-catalog__main {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }

  .program-catalog__meta {
    flex-wrap: wrap;
  }

  .program-catalog__groups .program-catalog__row {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) auto;
    grid-template-areas: 'thumb main chevron' 'thumb meta chevron';
    align-items: center;
    column-gap: 12px;
    row-gap: 4px;
  }

  .program-catalog__groups .program-catalog__thumb {
    grid-area: thumb;
    align-self: start;
  }

  .program-catalog__groups .program-catalog__main {
    grid-area: main;
  }

  .program-catalog__groups .program-catalog__meta {
    grid-area: meta;
    justify-content: flex-start;
  }

  .program-catalog__groups .program-catalog__row-chevron {
    grid-area: chevron;
  }
}

.program-detail {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 848px;
  padding: 24px 32px 48px;
  box-sizing: border-box;
  overflow-y: auto;
}

.program-detail button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.program-detail button + button {
  margin-left: 0;
}

.program-detail__breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.program-detail__crumb {
  padding: 0;
  background: none;
  border: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
  cursor: pointer;
}

.program-detail__crumb:hover {
  color: #1f1f28;
}

.program-detail__crumb--current {
  color: #9768eb;
  cursor: default;
}

.program-detail__crumb--current:hover {
  color: #9768eb;
}

.program-detail__crumb-sep {
  flex: 0 0 auto;
  color: #6d6d6d;
}

.program-detail__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 10px;
}

.program-detail__title {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  font-size: 30px;
  font-weight: 500;
  line-height: 38px;
  color: #1f1f28;
}

.program-detail__header-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  flex: 0 0 auto;
  gap: 12px;
}

.program-detail__chips {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 16px;
}

.program-detail__chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  color: #6d6d6d;
}

.program-detail__chip--warn {
  color: #c42a3b;
  font-weight: 600;
}

.program-detail__chip--current {
  padding: 2px 10px;
  background: #e8f8ef;
  border-radius: 12px;
  font-weight: 600;
  color: #17945a;
}

.program-detail__chip-icon {
  flex: 0 0 auto;
}

.program-detail__description {
  margin-bottom: 20px;
  font-size: 15px;
  line-height: 24px;
  color: #1f1f28;
}

.program-detail__description p {
  margin: 0 0 12px;
}

.program-detail__description p:last-child {
  margin-bottom: 0;
}

.program-detail__notice {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 40px;
  box-sizing: border-box;
  margin-bottom: 24px;
  padding: 0 16px;
  background: #fffaf0;
  border: 1px solid #fde8be;
  border-radius: 8px;
}

.program-detail__notice-icon {
  flex: 0 0 auto;
}

.program-detail__notice-text {
  font-family: "Nudista-web", "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 16px;
  letter-spacing: 0;
  color: #d68b00;
}

.program-detail__schedule {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  height: 60px;
  box-sizing: border-box;
  margin-bottom: 24px;
  padding: 0 16px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 8px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
}

.program-detail__schedule-label {
  font-family: "Nudista-web", "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  color: #1f1f28;
}

.program-detail__days {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: auto;
  margin-right: 24px;
}

.program-detail__day {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  background: #f2f2f4;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  line-height: 28px;
  color: #6d6d6d;
}

.program-detail__day--on {
  background: #f2edfc;
  color: #32254f;
}

.program-detail__schedule-edit {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  background: none;
  border: 0;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 100%;
  letter-spacing: -0.02em;
  text-align: right;
  vertical-align: middle;
  color: #9768eb;
  cursor: pointer;
}

.program-detail__schedule-edit:hover {
  color: #855ad4;
}

.program-detail__schedule-edit-icon {
  flex: 0 0 auto;
}

.program-detail__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 183px;
  height: 44px;
  box-sizing: border-box;
  padding: 0 16px;
  background: #fff;
  border: 1px solid #9768eb;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #9768eb;
  cursor: pointer;
}

.program-detail__button:hover {
  background: #f2edfc;
}

.program-detail__button--primary {
  background: #9768eb;
  color: #fff;
}

.program-detail__button--primary:hover {
  background: #855ad4;
}

.program-detail__button-icon {
  flex: 0 0 auto;
}

.program-detail__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 24px;
}

.program-detail__stat {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 1 1 220px;
  min-width: 0;
  padding: 18px 20px;
  background: #fff;
  border: 1px solid #ececec;
  border-radius: 8px;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
}

.program-detail__stat-icon {
  flex: 0 0 auto;
  padding: 10px;
  background: #f2f2f4;
  border-radius: 8px;
  box-sizing: content-box;
}

.program-detail__stat-body {
  min-width: 0;
}

.program-detail__stat-label {
  margin-bottom: 2px;
  font-size: 14px;
  font-weight: 600;
  line-height: 18px;
  color: #6d6d6d;
}

.program-detail__stat-value {
  font-size: 20px;
  font-weight: 600;
  line-height: 26px;
  color: #1f1f28;
}

.program-detail__tabs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 20px;
  border-bottom: 1px solid #ececec;
}

.program-detail__tab {
  padding: 12px 16px;
  background: none;
  border: 0;
  border-radius: 0;
  border-bottom: 2px solid transparent;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
  cursor: pointer;
}

.program-detail__tab:hover {
  color: #1f1f28;
}

.program-detail__tab--active {
  border-bottom-color: #9768eb;
  color: #9768eb;
}

.program-detail__sections {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.program-detail__section {
  border: 1px solid #ececec;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  overflow: hidden;
}

.program-detail__section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  padding: 18px 20px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.program-detail__section-title {
  font-size: 16px;
  font-weight: 600;
  line-height: 22px;
  color: #1f1f28;
}

.program-detail__section-chevron {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
}

.program-detail__section-chevron--collapsed svg {
  transform: rotate(180deg);
}

.program-detail__section-body {
  border-top: 1px solid #ececec;
}

.program-detail__exercise {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px;
}

.program-detail__exercise + .program-detail__exercise {
  border-top: 1px solid #ececec;
}

.program-detail__exercise-info {
  min-width: 0;
}

.program-detail__exercise-name {
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 600;
  color: #1f1f28;
}

.program-detail__exercise-attributes {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 8px;
  font-size: 12px;
  font-weight: 500;
  color: #4f4f4f;
}

.program-detail__exercise-attributes > span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.program-detail__exercise-attributes > span + span::before {
  content: "";
  flex: 0 0 auto;
  width: 5px;
  height: 5px;
  margin-right: 4px;
  border-radius: 50%;
  background: #d1d1d1;
  transform: translateY(1px);
}

.program-detail__attribute-label {
  font-weight: 600;
}

.program-detail__exercise-action {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #1f1f28;
  cursor: pointer;
}

.program-detail__exercise-action:hover {
  background: #f2f2f4;
}

.program-detail__empty {
  padding: 20px;
  font-size: 14px;
  color: #6d6d6d;
}

.program-detail__delete {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 24px;
  padding: 0;
  background: none;
  border: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #c42a3b;
  cursor: pointer;
}

.program-detail__delete:hover {
  text-decoration: underline;
}

.program-detail__skeleton-chip {
  width: 96px;
  height: 16px;
  margin: 2px 0;
}

.program-detail__skeleton-line {
  width: 100%;
  height: 14px;
  margin: 5px 0;
}

.program-detail__skeleton-line--short {
  width: 60%;
}

.program-detail__skeleton-stat-icon {
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  border-radius: 8px;
}

.program-detail__skeleton-stat-label {
  width: 64px;
  height: 12px;
  margin: 3px 0 5px;
}

.program-detail__skeleton-stat-value {
  width: 96px;
  height: 18px;
  margin: 4px 0;
}

.program-detail__skeleton-tab {
  display: inline-flex;
  padding: 12px 16px 14px;
}

.program-detail__skeleton-tab-label {
  width: 72px;
  height: 14px;
  margin: 3px 0;
}

.program-detail__skeleton-section-title {
  width: 180px;
  height: 16px;
  margin: 3px 0;
}

.program-detail__skeleton-section-title--short {
  width: 128px;
}

.program-detail__skeleton-chevron {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  margin-right: 11px;
}

@media (max-width: 1100px) {
  .program-detail {
    padding: 20px 20px 40px;
  }
}

@media (max-width: 768px) {
  .program-detail {
    padding: 16px 16px 32px;
  }

  .program-detail__title {
    font-size: 24px;
    line-height: 32px;
  }

  .program-detail__stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .program-detail__stat:only-child {
    grid-column: 1 / -1;
  }

  .program-detail__stat {
    padding: 16px;
  }

  .program-detail__schedule {
    height: auto;
    flex-wrap: wrap;
    padding: 14px 16px;
  }

  .program-detail__days {
    margin-right: 0;
  }

  .program-detail__tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
  }

  .program-detail__tab {
    flex: 0 0 auto;
  }

  .program-detail__exercise {
    align-items: flex-start;
  }
}

@media (max-width: 480px) {
  .program-detail {
    padding: 16px 12px 32px;
  }

  .program-detail__stats {
    gap: 10px;
  }

  .program-detail__stat {
    gap: 10px;
    padding: 12px 10px;
  }

  .program-detail__stat-icon {
    padding: 7px;
  }

  .program-detail__stat-label {
    font-size: 12px;
  }

  .program-detail__stat-value {
    font-size: 16px;
    line-height: 22px;
  }
}

.daily-program-host {
  display: flex;
  justify-content: center;
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  background: #f6f6f7;
}

.daily-program {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 640px;
  padding: 32px 0 48px;
  box-sizing: border-box;
  overflow-y: auto;
}

.daily-program button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.daily-program button + button {
  margin-left: 0;
}

.daily-program__header {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 24px;
}

.daily-program__thumb {
  flex: 0 0 auto;
  width: auto;
  height: 88px;
  border-radius: 6px;
  background: #f2f2f4;
}

.daily-program__identity {
  min-width: 0;
}

.daily-program__title {
  margin: 0 0 10px;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.2;
  color: #1f1f28;
}

.daily-program__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}

.daily-program__pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 2px 8px;
  border-radius: 4px;
  background: #e7e7e7;
  font-size: 13px;
  font-weight: 500;
  line-height: 16px;
  color: #6d6d6d;
  white-space: nowrap;
}

.daily-program__pill-icon {
  flex: 0 0 auto;
  display: block;
  width: 12px;
  height: 12px;
  object-fit: contain;
}

.daily-program__metric {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 500;
  line-height: 18px;
  color: #6d6d6d;
  white-space: nowrap;
}

.daily-program__metric-icon {
  flex: 0 0 auto;
  display: block;
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.daily-program__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 18px;
  background: #fff;
  border: 1px solid #9768eb;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #9768eb;
  cursor: pointer;
}

.daily-program__button:hover {
  background: #f2edfc;
}

.daily-program__button:disabled {
  opacity: 0.6;
  cursor: default;
  pointer-events: none;
}

.daily-program__button--primary {
  background: #9768eb;
  color: #fff;
}

.daily-program__button--primary:hover {
  background: #855ad4;
}

.daily-program__button--done {
  background: #d9d4e2;
  border-color: #d9d4e2;
  color: #fff;
}

.daily-program__button--done:hover {
  background: #d9d4e2;
}

.daily-program__sections {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 32px;
}

.daily-program__section {
  border: 1px solid #ececec;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  overflow: hidden;
}

.daily-program__section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  padding: 18px 20px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.daily-program__section-title {
  font-size: 16px;
  font-weight: 600;
  color: #1f1f28;
}

.daily-program__section-chevron {
  flex: 0 0 auto;
  display: block;
  width: 36px;
  font-size: 14px;
  line-height: 1;
  text-align: center;
  color: #6d6d6d;
}

.daily-program__section-body {
  border-top: 1px solid #ececec;
}

.daily-program__technique {
  padding: 12px 20px 4px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #6d6d6d;
}

.daily-program__exercise {
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
  width: 100%;
  height: 62px;
  gap: 16px;
  padding: 0 20px;
  border: 0;
  border-radius: 0;
  background: transparent;
  text-align: left;
  color: inherit;
  cursor: pointer;
}

.daily-program__exercise + .daily-program__exercise {
  border-top: 1px solid #ececec;
}

.daily-program__exercise:hover {
  background: #f2edfc;
}

.daily-program__exercise:hover .daily-program__exercise-action {
  color: #9768eb;
}

.daily-program__exercise-info {
  display: block;
  min-width: 0;
}

.daily-program__exercise-name {
  display: block;
  margin-bottom: 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 14px;
  font-weight: 600;
  color: #1f1f28;
}

.daily-program__exercise-attributes {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 16px;
  font-size: 12px;
  font-weight: 500;
  color: #4f4f4f;
}

.daily-program__attribute-label {
  font-weight: 600;
  color: #4f4f4f;
}

.daily-program__exercise-action {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  color: #1f1f28;
}

.daily-program__empty {
  padding: 20px;
  font-size: 14px;
  color: #6d6d6d;
}

.daily-program__footer {
  display: flex;
  align-items: center;
}

.daily-program__footer .daily-program__button {
  flex: 1 1 auto;
  padding: 14px 24px;
  font-size: 15px;
}

@media (max-width: 640px) {
  .daily-program {
    padding: 20px 16px 40px;
  }

  .daily-program__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }

  .daily-program__thumb {
    width: 100%;
    height: auto;
  }

  .daily-program__meta {
    gap: 8px 12px;
  }
}

@media (max-width: 480px) {
  .daily-program {
    padding: 16px 12px 32px;
  }

  .daily-program__section-header {
    padding: 16px;
  }

  .daily-program__exercise {
    padding: 0 16px;
  }

  .daily-program__technique {
    padding: 12px 16px 4px;
  }
}

.schedule-steps {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 40px;
  margin-bottom: 28px;
}

.schedule-steps__step {
  display: flex;
  align-items: center;
  gap: 8px;
}

.schedule-steps__marker {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border-radius: 4px;
  background: #f6f6f6;
  color: #9d9d9d;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
}

.schedule-steps__label {
  font-size: 16px;
  font-weight: 600;
  letter-spacing: -0.14px;
  color: #9d9d9d;
}

.schedule-steps__step--active .schedule-steps__marker {
  background: #f2edfc;
  color: #32254f;
}

.schedule-steps__step--active .schedule-steps__label {
  color: #32254f;
}

.schedule-steps__step--complete .schedule-steps__marker {
  background: #f6f6f6;
  color: #9d9d9d;
  font-size: 11px;
}

.schedule-steps__step--complete .schedule-steps__label {
  color: #6d6d6d;
}

@media only screen and (max-width: 560px) {
  .schedule-steps {
    flex-direction: column;
    align-items: flex-start;
    flex-wrap: nowrap;
    gap: 10px;
    width: -moz-fit-content;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
  }
}

.view-flex.program-summary-page {
  display: flex;
  justify-content: center;
  flex: 1 0 auto;
  min-width: 0;
  align-self: stretch;
  background: #f6f6f7;
}

.program-summary {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 640px;
  margin: 0 auto;
  padding: 32px 0 48px;
  box-sizing: border-box;
  overflow-y: auto;
}

.program-summary button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.program-summary button + button {
  margin-left: 0;
}

.program-summary__header {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 28px;
}

.program-summary__thumb {
  flex: 0 0 auto;
  width: auto;
  height: 88px;
  border-radius: 6px;
  background: #f2f2f4;
}

.program-summary__identity {
  min-width: 0;
}

.program-summary__title {
  margin: 0 0 10px;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.2;
  color: #120d1c;
}

.program-summary__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}

.program-summary__chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  font-size: 13px;
  font-weight: 500;
  color: #6d6d6d;
  white-space: nowrap;
}

.program-summary__chip--type {
  padding: 4px 10px;
  border-radius: 4px;
  background: #e7e7e7;
}

.program-summary__chip-icon {
  flex: 0 0 auto;
  display: block;
}

.program-summary__tabs {
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  min-height: 36px;
  gap: 4px;
  margin-bottom: 16px;
  padding: 4px;
  border-radius: 8px;
  background: #f2f2f4;
}

.program-summary__tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  box-sizing: border-box;
  width: 83px;
  height: 28px;
  gap: 8px;
  padding: 2px 12px;
  border: 0;
  border-radius: 3px;
  background: transparent;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  color: #6d6d6d;
  cursor: pointer;
}

.program-summary__tab--active {
  background: #ffffff;
  color: #120d1c;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
}

.program-summary__sections {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 32px;
}

.program-summary__section {
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  overflow: hidden;
}

.program-summary__section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  padding: 18px 20px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.program-summary__section-title {
  font-size: 16px;
  font-weight: 600;
  color: #120d1c;
}

.program-summary__section-chevron {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
}

.program-summary__section-chevron--collapsed svg {
  transform: rotate(180deg);
}

.program-summary__section-body {
  border-top: 1px solid #e7e7e7;
}

.program-summary__exercise {
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
  height: 62px;
  gap: 16px;
  padding: 0 20px;
}

.program-summary__exercise + .program-summary__exercise {
  border-top: 1px solid #e7e7e7;
}

.program-summary__exercise-info {
  min-width: 0;
}

.program-summary__exercise-name {
  margin-bottom: 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 14px;
  font-weight: 600;
  color: #120d1c;
}

.program-summary__exercise-attributes {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 16px;
  font-size: 12px;
  font-weight: 500;
  color: #4f4f4f;
}

.program-summary__attribute-label {
  font-weight: 600;
  color: #4f4f4f;
}

.program-summary__exercise-play {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #120d1c;
  cursor: pointer;
}

.program-summary__exercise-play:hover {
  background: #f2f2f4;
}

.program-summary__exercise-play-icon {
  flex: 0 0 auto;
  display: block;
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.program-summary__body {
  position: relative;
}

.program-summary__skeleton {
  pointer-events: none;
}

.program-summary__skeleton--overlay {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1;
  background: #f6f6f7;
}

.program-summary__skeleton-header {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 28px;
}

.program-summary__skeleton-thumb {
  flex: 0 0 auto;
  width: 136px;
  height: 88px;
  border-radius: 6px;
}

.program-summary__skeleton-identity {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.program-summary__skeleton-title {
  height: 24px;
  width: 72%;
  max-width: none;
}

.program-summary__skeleton-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}

.program-summary__skeleton-chip {
  flex: 0 0 auto;
  height: 14px;
  max-width: none;
  border-radius: 4px;
}

.program-summary__skeleton-chip--type {
  height: 24px;
  width: 88px;
}

.program-summary__skeleton-chip--weeks {
  width: 72px;
}

.program-summary__skeleton-chip--frequency {
  width: 104px;
}

.program-summary__skeleton-tabs {
  display: block;
  height: 36px;
  width: 258px;
  max-width: 100%;
  border-radius: 8px;
  margin-bottom: 16px;
}

.program-summary__skeleton-sections {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 32px;
}

.program-summary__skeleton-section {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  height: 56px;
  padding: 0 20px;
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
}

.program-summary__skeleton-section-title {
  height: 16px;
  width: 55%;
  max-width: none;
}

.program-summary__skeleton-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.program-summary__skeleton-button {
  height: 46px;
  width: 110px;
  max-width: none;
  border-radius: 6px;
}

.program-summary__skeleton-button--primary {
  width: 140px;
}

.program-summary__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.program-summary__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 24px;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  background: #ffffff;
  font-size: 15px;
  font-weight: 600;
  color: #120d1c;
  cursor: pointer;
}

.program-summary__button--primary {
  border-color: #9768eb;
  background: #9768eb;
  color: #ffffff;
}

.program-summary__button--primary:hover {
  border-color: #855ad4;
  background: #855ad4;
}

@media (max-width: 640px) {
  .program-summary {
    padding: 20px 16px 40px;
  }

  .program-summary__header,
  .program-summary__skeleton-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .program-summary__skeleton-thumb {
    width: 100%;
    height: 88px;
  }

  .program-summary__thumb {
    width: 100%;
    height: auto;
  }

  .program-summary__title {
    font-size: 24px;
  }

  .program-summary__tabs {
    display: flex;
    width: 100%;
    overflow-x: auto;
  }
}

.view-flex.program-build-page {
  display: flex;
  justify-content: center;
  flex: 1 0 auto;
  min-width: 0;
  align-self: stretch;
  background: #f6f6f7;
}

.program-build {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 688px;
  margin: 0 auto;
  padding: 32px 24px 48px;
  box-sizing: border-box;
  overflow-y: auto;
}

.program-build button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.program-build button + button {
  margin-left: 0;
}

.program-build__body {
  position: relative;
}

.program-build__skeleton {
  pointer-events: none;
}

.program-build__skeleton--overlay {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1;
  background: #f6f6f7;
}

.program-build__skeleton-type-tabs {
  display: block;
  height: 46px;
  width: 340px;
  max-width: 100%;
  margin-bottom: 28px;
  border-radius: 6px;
}

.program-build__skeleton-header {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 28px;
}

.program-build__skeleton-thumb {
  flex: 0 0 auto;
  width: 136px;
  height: 88px;
  border-radius: 6px;
}

.program-build__skeleton-identity {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.program-build__skeleton-title {
  height: 36px;
  width: 72%;
  max-width: none;
}

.program-build__skeleton-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.program-build__skeleton-chip {
  flex: 0 0 auto;
  height: 26px;
  max-width: none;
  border-radius: 4px;
}

.program-build__skeleton-chip--type {
  width: 104px;
}

.program-build__skeleton-chip--weeks {
  width: 80px;
}

.program-build__skeleton-chip--frequency {
  width: 116px;
}

.program-build__skeleton-tabs {
  display: block;
  height: 36px;
  width: 265px;
  max-width: 100%;
  margin-bottom: 24px;
  border-radius: 8px;
}

.program-build__skeleton-strategy {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.program-build__skeleton-strategy-icon {
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  border-radius: 6px;
}

.program-build__skeleton-strategy-name {
  height: 20px;
  width: 148px;
  max-width: none;
}

.program-build__skeleton-techniques {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 32px;
}

.program-build__skeleton-technique {
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
}

.program-build__skeleton-technique-header {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  height: 60px;
  gap: 12px;
  padding: 0 20px;
}

.program-build__skeleton-technique-title {
  flex: 1 1 auto;
  min-width: 0;
  height: 16px;
  max-width: none;
}

.program-build__skeleton-add-exercise {
  flex: 0 0 auto;
  width: 138px;
  height: 36px;
  border-radius: 6px;
}

.program-build__skeleton-kebab {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border-radius: 6px;
}

.program-build__skeleton-technique-body {
  border-top: 1px solid #e7e7e7;
}

.program-build__skeleton-exercise {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  height: 64px;
  gap: 12px;
  padding: 0 20px;
}

.program-build__skeleton-exercise + .program-build__skeleton-exercise {
  border-top: 1px solid #e7e7e7;
}

.program-build__skeleton-reorder {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  border-radius: 4px;
}

.program-build__skeleton-exercise-info {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.program-build__skeleton-exercise-name {
  height: 14px;
  width: 46%;
  max-width: none;
}

.program-build__skeleton-exercise-name--short {
  width: 34%;
}

.program-build__skeleton-exercise-attributes {
  height: 12px;
  width: 128px;
  max-width: none;
}

.program-build__skeleton-exercise-actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 4px;
}

.program-build__skeleton-exercise-action {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border-radius: 6px;
}

.program-build__skeleton-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.program-build__skeleton-button {
  height: 46px;
  width: 112px;
  max-width: none;
  border-radius: 6px;
}

.program-build__skeleton-button--primary {
  width: 142px;
}

.program-build__type-tabs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 28px;
  border-bottom: 1px solid #e7e7e7;
}

.program-build__type-tab {
  padding: 12px 16px;
  border: 0;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  border-radius: 0;
  background: none;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  color: #6d6d6d;
  cursor: pointer;
}

.program-build__type-tab:hover {
  color: #120d1c;
}

.program-build__type-tab--active {
  border-bottom-color: #9768eb;
  color: #9768eb;
}

.program-build__type-tab--disabled {
  opacity: 0.4;
  cursor: default;
}

.program-build__type-tab--disabled:hover {
  color: #6d6d6d;
}

.program-build__type-tab-tag {
  margin-left: 4px;
  font-weight: inherit;
  color: inherit;
}

.program-build__header {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 28px;
}

.program-build__thumb {
  flex: 0 0 auto;
  width: auto;
  height: 88px;
  border-radius: 6px;
  background: #f2f2f4;
}

.program-build__identity {
  min-width: 0;
}

.program-build__title {
  margin: 0 0 10px;
  font-size: 30px;
  font-weight: 600;
  line-height: 1.2;
  color: #120d1c;
}

.program-build__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.program-build__chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 4px;
  background: #f2f2f4;
  font-size: 13px;
  font-weight: 500;
  color: #6d6d6d;
  white-space: nowrap;
}

.program-build__chip-icon {
  flex: 0 0 auto;
  display: block;
}

.program-build__session-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 24px;
}

.program-build__tabs {
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  min-height: 36px;
  gap: 4px;
  padding: 4px;
  border-radius: 8px;
  background: #f2f2f4;
}

.program-build__tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  box-sizing: border-box;
  width: 83px;
  height: 28px;
  gap: 8px;
  padding: 2px 12px;
  border: 0;
  border-radius: 3px;
  background: transparent;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  color: #6d6d6d;
  cursor: pointer;
}

.program-build__tab--active {
  background: #ffffff;
  color: #120d1c;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
}

.program-build__copy-controls {
  display: flex;
  align-items: center;
  gap: 8px;
}

.program-build__strategy-group {
  margin-bottom: 32px;
}

.program-build__strategy {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.program-build__strategy-icon {
  flex: 0 0 auto;
  font-size: 20px;
  color: #9768eb;
}

.program-build__strategy-image {
  flex: 0 0 auto;
  display: block;
  width: 24px;
  height: 24px;
  object-fit: contain;
}

.program-build__strategy-name {
  font-size: 20px;
  font-weight: 600;
  color: #120d1c;
}

.program-build__techniques {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.program-build__technique {
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
}

.program-build__technique-header {
  position: relative;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  height: 60px;
  gap: 12px;
  padding: 0 20px;
}

.program-build__technique-title {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 16px;
  font-weight: 600;
  color: #120d1c;
}

.program-build__add-exercise {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  height: 36px;
  gap: 8px;
  padding: 0 16px;
  border: 1px solid #9768eb;
  border-radius: 6px;
  background: #ffffff;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  color: #9768eb;
  cursor: pointer;
}

.program-build__add-exercise:hover {
  background: #f2edfc;
}

.program-build__menu {
  position: relative;
  flex: 0 0 auto;
}

.program-build__kebab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  min-width: 32px;
  max-width: 32px;
  height: 32px;
  min-height: 32px;
  max-height: 32px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  color: #6d6d6d;
  cursor: pointer;
}

.program-build__kebab:hover {
  background: #f2f2f4;
  color: #120d1c;
}

.program-build__menu-list {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  z-index: 20;
  display: flex;
  flex-direction: column;
  min-width: 168px;
  padding: 6px;
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 8px 20px 0 rgba(16, 24, 40, 0.12);
}

.program-build__menu-list.hidden {
  display: none;
}

.program-build__menu-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  font-size: 14px;
  font-weight: 600;
  text-align: left;
  color: #120d1c;
  cursor: pointer;
}

.program-build__menu-item:hover {
  background: #f2f2f4;
}

.program-build__menu-item--danger {
  color: #c0392b;
}

.program-build__technique-body {
  border-top: 1px solid #e7e7e7;
}

.program-build__exercise {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  height: 64px;
  gap: 12px;
  padding: 0 20px;
}

.program-build__exercise + .program-build__exercise {
  border-top: 1px solid #e7e7e7;
}

.program-build__reorder {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  width: 20px;
}

.program-build__reorder-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: #6d6d6d;
  cursor: pointer;
}

.program-build__reorder-button:hover {
  color: #120d1c;
}

.program-build__exercise-info {
  flex: 1 1 auto;
  min-width: 0;
}

.program-build__exercise-name {
  margin-bottom: 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 14px;
  font-weight: 600;
  color: #120d1c;
}

.program-build__exercise-attributes {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 8px;
  font-size: 12px;
  font-weight: 500;
  color: #4f4f4f;
}

.program-build__exercise-attributes > span + span::before {
  content: '\2022';
  margin-right: 8px;
  color: #e7e7e7;
}

.program-build__attribute-label {
  font-weight: 600;
  color: #4f4f4f;
}

.program-build__exercise-actions {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 4px;
}

.program-build__exercise-action {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #120d1c;
  cursor: pointer;
}

.program-build__exercise-action:hover {
  background: #f2f2f4;
}

.program-build__exercise-action--danger:hover {
  background: #fef3f2;
}

.program-build__exercise-action-icon {
  flex: 0 0 auto;
  display: block;
  width: 24px;
  height: 24px;
  object-fit: contain;
}

.program-build__exercise-action-icon--play {
  width: 16px;
  height: 16px;
}

.program-build__empty {
  padding: 20px;
  font-size: 13px;
  font-style: italic;
  color: #6d6d6d;
}

.program-build__add-section {
  display: block;
  margin-top: 12px;
  margin-left: auto;
  padding: 10px 20px;
  border: 1px solid #9768eb;
  border-radius: 6px;
  background: #ffffff;
  font-size: 14px;
  font-weight: 600;
  color: #9768eb;
  cursor: pointer;
}

.program-build__add-section:hover {
  background: #f2edfc;
}

.program-build__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.program-build__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 24px;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  background: #ffffff;
  font-size: 15px;
  font-weight: 600;
  color: #120d1c;
  cursor: pointer;
}

.program-build__button--primary {
  border-color: #9768eb;
  background: #9768eb;
  color: #ffffff;
}

.program-build__button--primary:hover {
  border-color: #855ad4;
  background: #855ad4;
}

@media (max-width: 768px) {
  .program-build {
    padding: 20px 16px 40px;
  }

  .program-build__type-tabs,
  .program-build__tabs {
    width: 100%;
    overflow-x: auto;
  }

  .program-build__type-tabs {
    justify-content: center;
    justify-content: safe center;
  }

  .program-build__skeleton-type-tabs {
    margin-left: auto;
    margin-right: auto;
  }

  .program-build__tabs {
    display: flex;
  }

  .program-build__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .program-build__thumb {
    width: 100%;
    height: auto;
  }

  .program-build__title {
    font-size: 24px;
  }

  .program-build__technique-header {
    flex-wrap: wrap;
    height: auto;
    padding: 16px 20px;
  }

  .program-build__technique-title {
    flex: 1 0 100%;
  }

  .program-build__add-exercise {
    flex: 1 1 auto;
    justify-content: center;
  }

  .program-build__exercise {
    align-items: flex-start;
    flex-wrap: wrap;
    height: auto;
    padding: 16px 20px;
  }

  .program-build__exercise-actions {
    width: 100%;
    justify-content: flex-end;
  }

  .program-build__footer {
    flex-direction: column-reverse;
    align-items: stretch;
  }

  .program-build__skeleton-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .program-build__skeleton-thumb {
    width: 100%;
    height: 180px;
  }

  .program-build__skeleton-title {
    height: 29px;
  }

  .program-build__skeleton-technique-header {
    flex-wrap: wrap;
    height: auto;
    padding: 16px 20px;
  }

  .program-build__skeleton-technique-title {
    flex: 1 0 100%;
  }

  .program-build__skeleton-add-exercise {
    flex: 1 1 auto;
    width: auto;
  }

  .program-build__skeleton-exercise {
    align-items: flex-start;
    flex-wrap: wrap;
    height: auto;
    gap: 12px;
    padding: 16px 20px;
  }

  .program-build__skeleton-exercise-actions {
    width: 100%;
    justify-content: flex-end;
  }

  .program-build__skeleton-footer {
    flex-direction: column-reverse;
    align-items: stretch;
  }

  .program-build__skeleton-button {
    width: auto;
  }

  .program-build__skeleton-button--primary {
    width: auto;
  }
}

@media (max-width: 480px) {
  .program-build__type-tab {
    flex: 0 0 auto;
    padding: 12px 8px;
    font-size: 13px;
  }

  .program-build__type-tabs {
    flex-wrap: nowrap;
  }
}

.view-flex.program-schedule-page {
  display: flex;
  justify-content: center;
  flex: 1 0 auto;
  min-width: 0;
  align-self: stretch;
  background: #f6f6f7;
}

.program-schedule {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  padding: 32px 24px 48px;
  box-sizing: border-box;
  overflow-y: auto;
}

.program-schedule--narrow {
  max-width: 688px;
}

.program-schedule button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.program-schedule button + button {
  margin-left: 0;
}

.program-schedule__title {
  margin: 0 0 24px;
  font-family: "Nudista", sans-serif;
  font-size: 24px;
  font-weight: 500;
  line-height: 100%;
  letter-spacing: 0;
  color: #120d1c;
}

.program-schedule__field {
  margin-bottom: 16px;
}

.program-schedule__label {
  display: block;
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  color: #6d6d6d;
}

.program-schedule__date-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}

.program-schedule__date {
  display: block;
  flex: 0 0 auto;
}

.program-schedule__date .date-input {
  position: relative;
  box-sizing: border-box;
  width: 320px;
  max-width: 100%;
  height: 40px;
  min-height: 40px;
  max-height: 40px;
  margin-bottom: 0;
  border: 1px solid #d1d1d1;
  border-radius: 6px;
  background: #ffffff;
}

.program-schedule__date .date-input input {
  box-sizing: border-box;
  width: 100%;
  height: 38px;
  min-height: 0;
  max-height: none;
  padding: 0 44px 0 14px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  font-family: "Nudista", sans-serif;
  font-size: 15px;
  line-height: 38px;
  text-indent: 0;
  color: #120d1c;
  outline: 0;
  cursor: pointer;
}

.program-schedule__date .date-input .input-icon {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  min-width: 40px;
  max-width: 40px;
  height: 38px;
  min-height: 0;
  max-height: none;
  border: 0;
  border-radius: 0;
  background-color: transparent;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22%3E%3Cpath d%3D%22M12.6667 1.33333H12V0.666667C12 0.489856 11.9298 0.320286 11.8047 0.195262C11.6797 0.0702379 11.5101 0 11.3333 0C11.1565 0 10.987 0.0702379 10.8619 0.195262C10.7369 0.320286 10.6667 0.489856 10.6667 0.666667V1.33333H5.33333V0.666667C5.33333 0.489856 5.2631 0.320286 5.13807 0.195262C5.01305 0.0702379 4.84348 0 4.66667 0C4.48986 0 4.32029 0.0702379 4.19526 0.195262C4.07024 0.320286 4 0.489856 4 0.666667V1.33333H3.33333C2.4496 1.33439 1.60237 1.68592 0.97748 2.31081C0.352588 2.93571 0.00105857 3.78294 0 4.66667L0 12.6667C0.00105857 13.5504 0.352588 14.3976 0.97748 15.0225C1.60237 15.6474 2.4496 15.9989 3.33333 16H12.6667C13.5504 15.9989 14.3976 15.6474 15.0225 15.0225C15.6474 14.3976 15.9989 13.5504 16 12.6667V4.66667C15.9989 3.78294 15.6474 2.93571 15.0225 2.31081C14.3976 1.68592 13.5504 1.33439 12.6667 1.33333ZM1.33333 4.66667C1.33333 4.13623 1.54405 3.62753 1.91912 3.25245C2.29419 2.87738 2.8029 2.66667 3.33333 2.66667H12.6667C13.1971 2.66667 13.7058 2.87738 14.0809 3.25245C14.456 3.62753 14.6667 4.13623 14.6667 4.66667V5.33333H1.33333V4.66667ZM12.6667 14.6667H3.33333C2.8029 14.6667 2.29419 14.456 1.91912 14.0809C1.54405 13.7058 1.33333 13.1971 1.33333 12.6667V6.66667H14.6667V12.6667C14.6667 13.1971 14.456 13.7058 14.0809 14.0809C13.7058 14.456 13.1971 14.6667 12.6667 14.6667Z%22 fill%3D%22%236D6D6D%22%2F%3E%3Cpath d%3D%22M8 11C8.55228 11 9 10.5523 9 10C9 9.44772 8.55228 9 8 9C7.44772 9 7 9.44772 7 10C7 10.5523 7.44772 11 8 11Z%22 fill%3D%22%236D6D6D%22%2F%3E%3Cpath d%3D%22M4.6665 11C5.21879 11 5.6665 10.5523 5.6665 10C5.6665 9.44772 5.21879 9 4.6665 9C4.11422 9 3.6665 9.44772 3.6665 10C3.6665 10.5523 4.11422 11 4.6665 11Z%22 fill%3D%22%236D6D6D%22%2F%3E%3Cpath d%3D%22M11.3335 11C11.8858 11 12.3335 10.5523 12.3335 10C12.3335 9.44772 11.8858 9 11.3335 9C10.7812 9 10.3335 9.44772 10.3335 10C10.3335 10.5523 10.7812 11 11.3335 11Z%22 fill%3D%22%236D6D6D%22%2F%3E%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 16px 16px;
  cursor: pointer;
}

.program-schedule__date .date-input .input-icon i {
  display: none;
}

.program-schedule__date.date-disabled .date-input {
  background: #f6f6f7;
}

.program-schedule__date.date-disabled .date-input .input-icon {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22%3E%3Cpath d%3D%22M12.6667 1.33333H12V0.666667C12 0.489856 11.9298 0.320286 11.8047 0.195262C11.6797 0.0702379 11.5101 0 11.3333 0C11.1565 0 10.987 0.0702379 10.8619 0.195262C10.7369 0.320286 10.6667 0.489856 10.6667 0.666667V1.33333H5.33333V0.666667C5.33333 0.489856 5.2631 0.320286 5.13807 0.195262C5.01305 0.0702379 4.84348 0 4.66667 0C4.48986 0 4.32029 0.0702379 4.19526 0.195262C4.07024 0.320286 4 0.489856 4 0.666667V1.33333H3.33333C2.4496 1.33439 1.60237 1.68592 0.97748 2.31081C0.352588 2.93571 0.00105857 3.78294 0 4.66667L0 12.6667C0.00105857 13.5504 0.352588 14.3976 0.97748 15.0225C1.60237 15.6474 2.4496 15.9989 3.33333 16H12.6667C13.5504 15.9989 14.3976 15.6474 15.0225 15.0225C15.6474 14.3976 15.9989 13.5504 16 12.6667V4.66667C15.9989 3.78294 15.6474 2.93571 15.0225 2.31081C14.3976 1.68592 13.5504 1.33439 12.6667 1.33333ZM1.33333 4.66667C1.33333 4.13623 1.54405 3.62753 1.91912 3.25245C2.29419 2.87738 2.8029 2.66667 3.33333 2.66667H12.6667C13.1971 2.66667 13.7058 2.87738 14.0809 3.25245C14.456 3.62753 14.6667 4.13623 14.6667 4.66667V5.33333H1.33333V4.66667ZM12.6667 14.6667H3.33333C2.8029 14.6667 2.29419 14.456 1.91912 14.0809C1.54405 13.7058 1.33333 13.1971 1.33333 12.6667V6.66667H14.6667V12.6667C14.6667 13.1971 14.456 13.7058 14.0809 14.0809C13.7058 14.456 13.1971 14.6667 12.6667 14.6667Z%22 fill%3D%22%23B0B0B0%22%2F%3E%3Cpath d%3D%22M8 11C8.55228 11 9 10.5523 9 10C9 9.44772 8.55228 9 8 9C7.44772 9 7 9.44772 7 10C7 10.5523 7.44772 11 8 11Z%22 fill%3D%22%23B0B0B0%22%2F%3E%3Cpath d%3D%22M4.6665 11C5.21879 11 5.6665 10.5523 5.6665 10C5.6665 9.44772 5.21879 9 4.6665 9C4.11422 9 3.6665 9.44772 3.6665 10C3.6665 10.5523 4.11422 11 4.6665 11Z%22 fill%3D%22%23B0B0B0%22%2F%3E%3Cpath d%3D%22M11.3335 11C11.8858 11 12.3335 10.5523 12.3335 10C12.3335 9.44772 11.8858 9 11.3335 9C10.7812 9 10.3335 9.44772 10.3335 10C10.3335 10.5523 10.7812 11 11.3335 11Z%22 fill%3D%22%23B0B0B0%22%2F%3E%3C%2Fsvg%3E");
}

.program-schedule__ends-slot {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  min-height: 14px;
}

.program-schedule__ends {
  font-size: 12px;
  color: #6d6d6d;
  white-space: nowrap;
}

.program-schedule__skeleton-ends.home-skeleton-block {
  display: inline-block;
  flex: 0 0 auto;
  width: 148px;
  height: 14px;
  border-radius: 4px;
}

.program-schedule__skeleton-meta-date {
  flex: 0 0 auto;
  width: 88px;
  height: 14px;
  border-radius: 4px;
}

.program-schedule__callout {
  box-sizing: border-box;
  width: 640px;
  max-width: 100%;
  margin-bottom: 28px;
  padding: 18px 20px;
  border: 1px solid #e0d5f5;
  border-radius: 8px;
  background: #f9f8ff;
}

.program-schedule__callout-title {
  margin-bottom: 6px;
  font-size: 16px;
  color: #120d1c;
}

.program-schedule__callout-title strong {
  font-weight: 600;
}

.program-schedule__callout-text {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  color: #6d6d6d;
}

.program-schedule__skeleton-callout {
  box-sizing: border-box;
  width: 640px;
  max-width: 100%;
  margin-bottom: 28px;
  padding: 18px 20px;
  border: 1px solid #e0d5f5;
  border-radius: 8px;
  background: #f9f8ff;
}

.program-schedule__skeleton-callout-title {
  display: block;
  width: 58%;
  max-width: 360px;
  height: 16px;
  margin-bottom: 6px;
  border-radius: 4px;
}

.program-schedule__skeleton-callout-body {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.program-schedule__skeleton-callout-text {
  display: block;
  width: 100%;
  height: 21px;
  border-radius: 4px;
}

.program-schedule__skeleton-callout-text--short {
  width: 72%;
}

.program-schedule__prompt {
  margin-bottom: 14px;
  font-family: "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 100%;
  letter-spacing: 0;
  color: #32254f;
}

.program-schedule__sessions {
  margin-bottom: 16px;
}

.program-schedule__session-group-label {
  margin-bottom: 8px;
  font-size: 13px;
  font-weight: 600;
  color: #6d6d6d;
}

.program-schedule__chips {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}

.program-schedule__chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 97px;
  height: 36px;
  padding: 0 8px;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  font-size: 15px;
  font-weight: 600;
  color: #120d1c;
  cursor: pointer;
}

.program-schedule__chip:hover {
  border-color: #c8baee;
}

.program-schedule__chip--active {
  border-color: #533d82;
  background: #533d82;
  color: #ffffff;
}

.program-schedule__chip--active:hover {
  border-color: #533d82;
}

.program-schedule__grid-scroll {
  margin: 16px 0 32px;
  overflow-x: auto;
}

.program-schedule__grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  box-sizing: border-box;
  width: 640px;
  max-width: 100%;
  height: 168px;
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  overflow: hidden;
}

.program-schedule__grid-day {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.program-schedule__grid-day + .program-schedule__grid-day {
  border-left: 1px solid #e7e7e7;
}

.program-schedule__grid-head {
  padding: 10px 8px;
  box-sizing: border-box;
  border-bottom: 1px solid #e7e7e7;
  background: #d1d1d1;
  font-size: 13px;
  font-weight: 500;
  text-align: center;
  color: #6d6d6d;
}

.program-schedule__grid-head + .program-schedule__grid-head {
  border-left: 1px solid #e7e7e7;
}

.program-schedule__grid-day > .program-schedule__grid-head {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 40px;
  height: 40px;
  padding: 0 6px;
}

.program-schedule__grid-cell {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 6px;
  min-height: 0;
  padding: 6px 5px;
  overflow-y: auto;
}

.program-schedule__placed {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex: 0 0 auto;
  box-sizing: border-box;
  gap: 4px;
  height: 28px;
  padding: 0 6px;
  border-radius: 4px;
  background: #f2edfc;
  font-size: 12px;
  font-weight: 600;
  color: #32254f;
}

.program-schedule__placed > span {
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.program-schedule__placed-remove {
  flex: 0 0 auto;
  height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 13px;
  line-height: 1;
  color: #32254f;
  cursor: pointer;
}

.program-schedule__placed-remove:hover {
  color: #120d1c;
}

.program-schedule__add {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  box-sizing: border-box;
  gap: 4px;
  width: 100%;
  height: 28px;
  padding: 0 6px;
  border: 1px dashed #c8baee;
  border-radius: 4px;
  background: transparent;
  font-size: 12px;
  font-weight: 500;
  color: #9768eb;
  cursor: pointer;
}

.program-schedule__add > span:last-child {
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.program-schedule__add:hover {
  border-color: #9768eb;
  background: #f9f8ff;
}

.program-schedule__add-plus {
  flex: 0 0 auto;
  font-size: 13px;
  line-height: 1;
}

.program-schedule__meta-line {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  font-size: 14px;
  line-height: 1;
}

.program-schedule__meta-date {
  font-weight: 500;
  color: #120d1c;
}

.program-schedule__meta-sep {
  color: #c4c4c8;
}

.program-schedule__meta-ends {
  font-size: 12px;
  color: #6d6d6d;
}

.program-schedule__edit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: auto;
  padding: 4px;
  margin: -4px 0;
  border: 0;
  background: transparent;
  color: #9768eb;
  cursor: pointer;
}

.program-schedule__edit:hover {
  color: #855ad4;
}

.program-schedule__section-title {
  margin-top: 16px;
  margin-bottom: 4px;
  font-family: "Nudista", sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 100%;
  color: #120d1c;
}

.program-schedule__section-help {
  margin: 0 0 20px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  color: #6d6d6d;
}

.program-schedule__review {
  display: grid;
  grid-template-columns: 370px 246px;
  gap: 24px;
  margin: 16px 0 32px;
}

.program-schedule__calendar-scroll {
  min-width: 0;
  overflow-x: auto;
}

.program-schedule__calendar {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  box-sizing: border-box;
  width: 370px;
  max-width: 100%;
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  overflow: hidden;
}

.program-schedule__calendar .program-schedule__grid-head {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: 13px;
  padding: 0 2px;
  font-size: 11px;
  line-height: 1;
}

.program-schedule__calendar .program-schedule__grid-head + .program-schedule__grid-head {
  border-left: 0;
}

.program-schedule__calendar-cell {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 6px;
  min-height: 58px;
  padding: 6px 4px;
  border-top: 1px solid #e7e7e7;
  border-left: 1px solid #e7e7e7;
  cursor: pointer;
}

.program-schedule__calendar-cell:nth-child(7n + 1) {
  border-left: 0;
}

.program-schedule__calendar-cell:hover {
  background: #f9f8ff;
}

.program-schedule__calendar-cell--outside {
  background: #f6f6f7;
  cursor: default;
}

.program-schedule__calendar-cell--outside:hover {
  background: #f6f6f7;
}

.program-schedule__calendar-day {
  font-size: 12px;
  color: #6d6d6d;
}

.program-schedule__calendar-cell--outside .program-schedule__calendar-day {
  color: #b0b0b0;
}

.program-schedule__calendar-month {
  display: block;
  margin-left: 0;
}

.program-schedule__calendar-cell--selected {
  box-shadow: inset 0 -2px 0 0 #9768eb;
}

.program-schedule__dots {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  min-height: 6px;
}

.program-schedule__dot {
  display: block;
  box-sizing: border-box;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #9768eb;
}

.program-schedule__dot--other {
  background: #b0b0b0;
}

.program-schedule__dot--done {
  border: 1px solid #9768eb;
  background: transparent;
}

.program-schedule__dot--other.program-schedule__dot--done {
  border-color: #b0b0b0;
}

.program-schedule__day-panel {
  min-width: 0;
}

.program-schedule__day-panel-date {
  margin-bottom: 12px;
  font-size: 15px;
  color: #120d1c;
}

.program-schedule__day-panel-label {
  margin: 16px 0 8px;
  font-size: 15px;
  color: #120d1c;
}

.program-schedule__day-card {
  position: relative;
  margin-bottom: 12px;
  padding: 14px 36px 14px 16px;
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
}

.program-schedule__day-card--other {
  background: #e7e7e7;
  border-color: #d1d1d1;
  box-shadow: none;
}

.program-schedule__day-card--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 64px;
  padding: 10px 16px;
  font-size: 14px;
  line-height: 20px;
  text-align: center;
  color: #6d6d6d;
}

.program-schedule__day-card-remove {
  position: absolute;
  top: 10px;
  right: 10px;
  height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 16px;
  line-height: 1;
  color: #6d6d6d;
  cursor: pointer;
}

.program-schedule__day-card-remove:hover {
  color: #120d1c;
}

.program-schedule__day-card-title {
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 600;
  color: #120d1c;
}

.program-schedule__day-card-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px 14px;
  overflow: hidden;
  font-size: 13px;
  color: #6d6d6d;
}

.program-schedule__day-card-type {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 5px;
  white-space: nowrap;
}

.program-schedule__day-card-type::before {
  content: "\2022";
  position: absolute;
  top: 50%;
  right: calc(100% + 5px);
  transform: translateY(-50%);
  line-height: 1;
  color: #c4c4c8;
}

.program-schedule__day-card-icon {
  display: block;
  flex: 0 0 auto;
}

.program-schedule__day-card-done {
  color: #b0b0b0;
}

@media (max-width: 768px) {
  .program-schedule__review {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

  .program-schedule__day-panel {
    max-width: 420px;
  }
}

.program-schedule__error {
  margin-bottom: 16px;
  padding: 10px 14px;
  border-radius: 6px;
  background: #fdecec;
  font-size: 14px;
  color: #f04438;
}

.program-schedule__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
  width: 640px;
  max-width: 100%;
  gap: 16px;
}

.program-schedule__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  flex: 0 0 auto;
  gap: 8px;
  height: 48px;
  padding: 0 24px;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
  background: #ffffff;
  font-size: 15px;
  font-weight: 600;
  white-space: nowrap;
  color: #120d1c;
  cursor: pointer;
}

.program-schedule__button:disabled {
  opacity: 0.6;
  cursor: default;
  pointer-events: none;
}

.program-schedule__button--primary {
  width: 143px;
  padding: 0 16px;
  border-color: #9768eb;
  background: #9768eb;
  color: #ffffff;
}

.program-schedule__button--primary:hover {
  border-color: #855ad4;
  background: #855ad4;
}

.program-schedule__button--wide {
  width: 175px;
}

@media (max-width: 768px) {
  .program-schedule__grid-scroll {
    overflow-x: visible;
  }

  .program-schedule__grid {
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    height: auto;
  }

  .program-schedule__grid-day {
    flex-direction: row;
    align-items: center;
    gap: 12px;
    padding: 8px 12px;
  }

  .program-schedule__grid-day + .program-schedule__grid-day {
    border-left: 0;
    border-top: 1px solid #e7e7e7;
  }

  .program-schedule__grid-day > .program-schedule__grid-head {
    display: block;
    flex: 0 0 48px;
    height: auto;
    padding: 0;
    border-bottom: 0;
    background: transparent;
    font-weight: 600;
    text-align: left;
    color: #120d1c;
  }

  .program-schedule__grid-cell {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-end;
    overflow-y: visible;
    min-width: 0;
    min-height: 0;
    padding: 0;
  }

  .program-schedule__add {
    width: auto;
  }

  .program-schedule__calendar-scroll {
    overflow-x: visible;
  }
}

@media (max-width: 640px) {
  .program-schedule {
    padding: 20px 16px 40px;
  }

  .program-schedule__title {
    font-size: 24px;
  }

  .program-schedule__date-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
}

.main-view:has(.today-session) > .menu-content {
  display: none;
}

.main-view > div:has(.today-session),
.main-view > div > div:has(> .today-session) {
  flex: 0 0 auto;
  min-width: 0;
}

.today-session {
  position: relative;
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  flex: 0 0 auto;
  height: 48px;
  background: #ffffff;
  border-bottom: 1px solid #e7e7e7;
  font-family: 'Nudista', sans-serif;
}

.today-session__tabs {
  display: flex;
  align-items: stretch;
  flex: 1 1 auto;
  min-width: 0;
  padding-left: 12px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.today-session__tab {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
  margin: 0;
  padding: 0 24px;
  height: auto;
  border: 0;
  border-right: 1px solid #e1e1e6;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  white-space: nowrap;
  text-align: left;
  font-family: 'Nudista', sans-serif;
}

.today-session__tab:hover {
  background: #fbfafd;
}

.today-session__tab--active {
  border-bottom-color: #9768eb;
  background: #f2edfc;
}

.today-session__tab--active:hover {
  background: #f2edfc;
}

.today-session__tab--active .today-session__badge:not(.today-session__badge--done) {
  background: #9768eb;
  color: #ffffff;
}

.today-session__tab--active .today-session__tab-label {
  color: #32254f;
}

.today-session__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  border-radius: 4px;
  background: #f6f6f6;
  color: #000000;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  text-transform: none;
}

.today-session__badge--done {
  background: #e7f5ee;
  color: #12b76a;
  font-size: 11px;
}

.today-session__tab-label {
  flex: 0 0 auto;
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  letter-spacing: 0;
  text-transform: none;
  color: #000000;
}

.today-session__tab--complete .today-session__tab-label {
  color: #6d6d6d;
}

.today-session__exit {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  margin: 0;
  padding: 0 24px;
  height: auto;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  color: #6d6d6d;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  letter-spacing: 0;
  text-transform: none;
}

.today-session__exit:hover {
  color: #000000;
  background: transparent;
}

.today-session__exit-icon {
  flex: 0 0 auto;
  width: 13px;
  height: 13px;
}

.today-session__exit-label {
  position: relative;
  top: 1px;
}

.today-session__tip {
  position: absolute;
  top: calc(100% + 10px);
  left: 24px;
  z-index: 880;
  width: 320px;
  max-width: calc(100vw - 48px);
  padding: 20px;
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(16, 24, 40, 0.16);
}

.today-session__tip:before {
  content: '';
  position: absolute;
  bottom: 100%;
  left: 24px;
  border: 8px solid transparent;
  border-bottom-color: #ffffff;
  border-top-width: 0;
}

.today-session__tip-title {
  margin-bottom: 8px;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  color: #000000;
}

.today-session__tip-body {
  margin-bottom: 20px;
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  color: #4f4f4f;
}

.today-session__tip-btn {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 10px 20px;
  height: auto;
  border: 0;
  border-radius: 6px;
  background: #9768eb;
  box-shadow: none;
  cursor: pointer;
  color: #ffffff;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 18px;
  letter-spacing: 0;
  text-transform: none;
}

.today-session__tip-btn:hover {
  background: #855ad4;
}

@media (max-width: 900px) {
  .today-session__tab,
  .today-session__exit {
    padding: 0 16px;
  }
}

@media (max-width: 768px) {
  .today-session__tabs {
    padding-left: 8px;
  }

  .today-session__tab {
    gap: 8px;
    padding: 0 14px;
  }

  .today-session__exit {
    padding: 0 14px;
  }

  .today-session__exit-label {
    display: none;
  }

  .today-session__tip {
    left: 16px;
    width: auto;
    right: 16px;
    max-width: none;
  }
}

.today-exit {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 528px;
  max-width: calc(100vw - 32px);
  padding: 32px;
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 12px 32px rgba(16, 24, 40, 0.24);
  font-family: 'Nudista', sans-serif;
}

.today-exit__close {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  position: absolute;
  top: 28px;
  right: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  box-shadow: none;
  color: #9d9d9d;
  cursor: pointer;
}

.today-exit__close:hover {
  background: transparent;
  color: #000000;
}

.today-exit__title {
  margin: 0 40px 0 0;
  font-weight: 600;
  font-size: 18px;
  line-height: 28px;
  letter-spacing: 0;
  text-transform: none;
  color: #000000;
}

.today-exit__body {
  width: 464px;
  max-width: 100%;
  margin: 24px 0 0;
  font-weight: 500;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: 0;
  color: #4f4f4f;
}

.today-exit__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 40px;
}

.today-exit__btn {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  height: auto;
  margin: 0;
  border-radius: 4px;
  box-shadow: none;
  cursor: pointer;
  font-family: 'Nudista', sans-serif;
  font-size: 14px;
  font-weight: 500;
}

.today-exit__btn--ghost {
  gap: 10px;
  min-height: 48px;
  padding: 16px 20px;
  line-height: 16px;
  border: 1px solid #d9d9d9;
  background-color: #ffffff;
  color: #000000;
}

.today-exit__btn--ghost:hover {
  background-color: #f7f7f8;
}

.today-exit__btn--primary {
  gap: 12px;
  height: 48px;
  padding: 14px 24px;
  line-height: 20px;
  border: 0;
  background-color: #9768eb;
  color: #ffffff;
}

.today-exit__btn--primary:hover {
  background-color: #855ad4;
}

@media (max-width: 480px) {
  .today-exit {
    padding: 20px;
  }

  .today-exit__close {
    top: 16px;
    right: 16px;
  }

  .today-exit__actions {
    flex-wrap: wrap;
    margin-top: 28px;
  }
}

.view-flex.rr-test {
  display: flex;
  flex: 1 0 auto;
  min-width: 0;
  align-self: stretch;
  background: #f6f6f7;
}

.rr-test {
  font-family: 'Nudista', sans-serif;
}

.rr-test button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.rr-test button + button {
  margin-left: 0;
}

.rr-test__page {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 520px;
  margin: 0 auto;
  padding: 48px 24px 64px;
  box-sizing: border-box;
}

.rr-test__title {
  margin: 0 0 32px;
  font-size: 28px;
  font-weight: 600;
  line-height: 36px;
  color: #120d1c;
}

.rr-test__steps {
  display: flex;
  align-items: flex-end;
  gap: 4px;
  margin-bottom: 36px;
}

.rr-test__step {
  flex: 1 1 0;
  min-width: 0;
  padding-bottom: 10px;
  border-bottom: 2px solid #e0e0e0;
  font-size: 15px;
  font-weight: 500;
  line-height: 20px;
  color: #b0b0b0;
}

.rr-test__step--reached {
  border-bottom-color: #9768eb;
  color: #120d1c;
}

.rr-test__step--current {
  font-weight: 600;
}

.rr-test__section {
  margin-bottom: 36px;
}

.rr-test__section-label {
  margin-bottom: 10px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6d6d6d;
}

.rr-test__question + .rr-test__question {
  margin-top: 28px;
}

.rr-test__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 44px;
}

.rr-test__footer--single .rr-test__button {
  flex: 1 1 auto;
}

.rr-test__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 14px 28px;
  border: 1px solid #e7e7e7;
  border-radius: 8px;
  background: #ffffff;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  color: #120d1c;
  cursor: pointer;
}

.rr-test__button--primary {
  border-color: #9768eb;
  background: #9768eb;
  color: #ffffff;
}

.rr-test__button--primary:hover {
  border-color: #855ad4;
  background: #855ad4;
}

.rr-test__button[disabled],
.rr-test__button[disabled]:hover {
  border-color: #c5b8f0;
  background: #c5b8f0;
  color: #ffffff;
  cursor: default;
}

.rr-test__button-arrow {
  flex: 0 0 auto;
}

@media (max-width: 768px) {
  .rr-test__page {
    padding: 32px 20px 48px;
  }

  .rr-test__title {
    font-size: 24px;
    line-height: 30px;
  }

  .rr-test__step {
    font-size: 14px;
  }

  .rr-test__footer {
    flex-direction: column-reverse;
    align-items: stretch;
  }

  .rr-test__button {
    width: 100%;
  }
}

.rr-option-group__prompt {
  margin-bottom: 12px;
  font-size: 15px;
  font-weight: 600;
  line-height: 22px;
  color: #120d1c;
}

.rr-option-group__hint {
  margin-left: 6px;
  font-weight: 400;
  color: #6d6d6d;
}

.rr-option {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 6px 0;
  font-weight: 400;
  cursor: pointer;
}

.rr-option--inline {
  display: inline-flex;
  padding: 0;
}

.rr-option--disabled {
  cursor: default;
}

.rr-option--disabled .rr-option__check {
  border-color: #d1d1d1;
}

.rr-option--disabled .rr-option__radio {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 20 20%22%3E%3Ccircle cx%3D%2210%22 cy%3D%2210%22 r%3D%229%22 fill%3D%22%23ffffff%22 stroke%3D%22%23d1d1d1%22 stroke-width%3D%222%22%2F%3E%3C%2Fsvg%3E");
}

.rr-option--disabled .rr-option__radio--checked {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 20 20%22%3E%3Ccircle cx%3D%2210%22 cy%3D%2210%22 r%3D%226%22 fill%3D%22%239768eb%22%2F%3E%3C%2Fsvg%3E"), url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 20 20%22%3E%3Ccircle cx%3D%2210%22 cy%3D%2210%22 r%3D%229%22 fill%3D%22%23ffffff%22 stroke%3D%22%23d1d1d1%22 stroke-width%3D%222%22%2F%3E%3C%2Fsvg%3E");
}

.rr-option--disabled .rr-option__text {
  color: #b0b0b0;
}

.rr-option__text {
  font-size: 15px;
  line-height: 20px;
  color: #120d1c;
}

.rr-option__radio {
  flex: 0 0 auto;
  display: block;
  width: 20px;
  height: 20px;
  background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 20 20%22%3E%3Ccircle cx%3D%2210%22 cy%3D%2210%22 r%3D%229%22 fill%3D%22%23ffffff%22 stroke%3D%22%239768eb%22 stroke-width%3D%222%22%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;
}

.rr-option__radio--checked {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 20 20%22%3E%3Ccircle cx%3D%2210%22 cy%3D%2210%22 r%3D%226%22 fill%3D%22%239768eb%22%2F%3E%3C%2Fsvg%3E"), url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 20 20%22%3E%3Ccircle cx%3D%2210%22 cy%3D%2210%22 r%3D%229%22 fill%3D%22%23ffffff%22 stroke%3D%22%239768eb%22 stroke-width%3D%222%22%2F%3E%3C%2Fsvg%3E");
}

.rr-option__check {
  flex: 0 0 auto;
  position: relative;
  box-sizing: border-box;
  width: 20px;
  height: 20px;
  border: 2px solid #9768eb;
  border-radius: 5px;
  background: #ffffff;
}

.rr-option__check--checked {
  background: #9768eb;
}

.rr-option__check--checked::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 6px;
  width: 4px;
  height: 9px;
  border: solid #ffffff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.rr-sleep {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.rr-time__label {
  display: block;
  margin-bottom: 6px;
  font-size: 13px;
  font-weight: 400;
  line-height: 18px;
  color: #6d6d6d;
}

.rr-time__row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.rr-time__select {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
}

.rr-time__select select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  box-sizing: border-box;
  width: 100%;
  height: 44px;
  padding: 0 36px 0 14px;
  border: 1px solid #d1d1d1;
  border-radius: 8px;
  background: #ffffff;
  font-size: 15px;
  line-height: 20px;
  color: #120d1c;
  cursor: pointer;
  outline: none;
}

.rr-time__select select:focus {
  border-color: #9768eb;
}

.rr-time__select::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 14px;
  width: 12px;
  height: 8px;
  margin-top: -4px;
  background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2212%22 height%3D%228%22 viewBox%3D%220 0 12 8%22 fill%3D%22none%22%3E%3Cpath d%3D%22M1 1.5L6 6.5L11 1.5%22 stroke%3D%22%236D6D6D%22 stroke-width%3D%221.5%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E") no-repeat center/contain;
  pointer-events: none;
}

.rr-time__meridiem {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 16px;
}

@media (max-width: 480px) {
  .rr-time__row {
    flex-wrap: wrap;
  }

  .rr-time__meridiem {
    flex: 1 0 100%;
  }
}

.view-flex.r5-test {
  display: flex;
  flex: 1 0 auto;
  min-width: 0;
  align-self: stretch;
  background: #ffffff;
}

.r5-test__page {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 700px;
  margin: 0 auto;
  padding: 48px 24px 64px;
  box-sizing: border-box;
}

.r5-test__title {
  margin: 0 0 32px;
  font-family: 'Nudista', sans-serif;
  font-size: 28px;
  font-weight: 500;
  line-height: 36px;
  color: #120d1c;
}

.r5-test__question + .r5-test__question {
  margin-top: 40px;
}

.r5-test field-set-select {
  display: block;
}

.r5-test__question-title {
  margin: 0 0 11px;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.2;
  color: #120d1c;
}

.r5-test__question-title span {
  color: #9768EB;
}

.r5-test .r5-test__question--bodymap {
  margin-top: 64px;
}

.r5-test .r5-body-wrapper table {
  margin-left: auto;
  margin-right: auto;
}

.r5-test__footer {
  display: flex;
  justify-content: center;
  margin-top: 48px;
}

.r5-test__footer button {
  text-transform: none;
  letter-spacing: 0;
  font-size: 16px;
}

.r5-test__footer button.primary {
  font-weight: 600;
}

@media (max-width: 768px) {
  .r5-test__page {
    padding: 32px 20px 48px;
  }

  .r5-test__title {
    font-size: 24px;
    line-height: 30px;
  }

  .r5-test__footer button {
    width: 100%;
  }
}

.view-flex.daily-results-page {
  display: flex;
  flex: 1 0 auto;
  min-width: 0;
  align-self: stretch;
  background: #f6f6f7;
}

.view-flex.daily-results-page > .container {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
}

.daily-results {
  width: 100%;
  max-width: 688px;
  margin: 0 auto;
  padding: 48px 24px 64px;
  box-sizing: border-box;
  text-align: center;
  font-family: 'Nudista', sans-serif;
}

.daily-results button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.daily-results button + button {
  margin-left: 0;
}

.daily-results__check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  margin-bottom: 20px;
  border-radius: 50%;
  background: #f2edfc;
}

.daily-results__check-inner {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #e0d5f5;
  color: #9768eb;
}

.daily-results__title {
  margin: 0 0 8px;
  font-size: 28px;
  font-weight: 600;
  line-height: 36px;
  color: #120d1c;
}

.daily-results__score-label {
  margin-bottom: 36px;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  color: #6d6d6d;
}

.daily-results__gauge {
  margin-bottom: 44px;
}

.daily-results__gauge svg {
  width: 114px;
  height: 114px;
}

.daily-results__gauge .outline,
.daily-results__gauge .progress {
  stroke-width: 10;
}

.daily-results__gauge .text {
  font-size: 63px;
  font-weight: 600;
  fill: #000000;
}

.daily-results__card {
  padding: 20px;
  border: 1px solid #ececec;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  text-align: left;
}

.daily-results__banner {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px;
  border-radius: 8px;
  background: #f9f8ff;
}

.daily-results__banner-icon {
  flex: 0 0 auto;
  display: block;
  width: 20px;
  height: 20px;
  object-fit: contain;
}

.daily-results__banner-text {
  font-size: 16px;
  font-weight: 600;
  line-height: 22px;
  color: #120d1c;
}

.daily-results__trends-label {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 24px 0 12px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6d6d6d;
}

.daily-results__trends-dot {
  color: #b0b0b0;
}

.daily-results__columns {
  display: flex;
  align-items: flex-start;
}

.daily-results__columns .daily-results__column + .daily-results__column {
  border-left: 1px solid #f0f0f0;
}

.daily-results__columns--flat {
  margin-top: 24px;
}

.daily-results__columns--single {
  justify-content: center;
  text-align: center;
}

.daily-results__columns--single .daily-results__column {
  flex: 0 1 240px;
  max-width: 100%;
  padding: 0;
}

.daily-results__columns--single .daily-results__column-value {
  justify-content: center;
}

.daily-results__column {
  flex: 1 1 0;
  min-width: 0;
  padding: 0 16px;
}

.daily-results__column:first-child {
  padding-left: 0;
}

.daily-results__column:last-child {
  padding-right: 0;
}

.daily-results__column-name {
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  color: #6d6d6d;
}

.daily-results__column-value {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.daily-results__column-score {
  font-size: 30px;
  font-weight: 400;
  line-height: 38px;
  color: #120d1c;
}

.daily-results__spark {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 44px;
  margin-top: 8px;
}

.daily-results__change {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
}

.daily-results__change--up {
  color: #20b769;
}

.daily-results__change--down {
  color: #c42a3b;
}

.daily-results__trend-icon {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
}

.daily-results__notice {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 20px;
  font-size: 14px;
  line-height: 20px;
  color: #6d6d6d;
}

.daily-results__soreness {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid #f0f0f0;
}

.daily-results__soreness-label {
  margin-bottom: 12px;
  font-size: 15px;
  line-height: 20px;
  color: #6d6d6d;
}

.daily-results__bodymap table {
  margin: 0 auto;
  border: 0;
  background: none;
}

.daily-results__bodymap table td {
  padding: 0 12px;
  border: 0;
  background: none;
  vertical-align: top;
}

.daily-results__bodymap-figure {
  max-width: 128px;
  max-height: 272px;
}

.daily-results__disclosure {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  margin-top: 20px;
  padding: 8px 0;
  border: 0;
  border-radius: 0;
  background: none;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  color: #9768eb;
  cursor: pointer;
}

.daily-results__disclosure:hover {
  color: #855ad4;
}

.daily-results__chevron {
  font-size: 12px;
}

.daily-results__changes {
  margin-top: 4px;
  padding-top: 20px;
  border-top: 1px solid #f0f0f0;
}

.daily-results__changes-label {
  margin-bottom: 10px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6d6d6d;
}

.daily-results__change-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  background: #fafafa;
}

.daily-results__change-row + .daily-results__change-row {
  border-top: 1px solid #f0f0f0;
}

.daily-results__change-row:first-child {
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
}

.daily-results__change-row:last-child {
  border-bottom-left-radius: 8px;
  border-bottom-right-radius: 8px;
}

.daily-results__change-name {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  color: #120d1c;
}

.daily-results__change-detail {
  flex: 0 1 auto;
  font-size: 14px;
  line-height: 20px;
  text-align: right;
  color: #6d6d6d;
}

.daily-results__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 32px;
  padding: 14px 28px;
  border: 1px solid #9768eb;
  border-radius: 8px;
  background: #9768eb;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  color: #ffffff;
  cursor: pointer;
}

.daily-results__cta:hover {
  border-color: #855ad4;
  background: #855ad4;
}

.daily-results__cta-arrow {
  flex: 0 0 auto;
}

@media (max-width: 768px) {
  .daily-results {
    padding: 32px 20px 48px;
  }

  .daily-results__title {
    font-size: 24px;
    line-height: 30px;
  }

  .daily-results__columns {
    flex-direction: column;
    gap: 16px;
  }

  .daily-results__column {
    padding: 0;
  }

  .daily-results__columns .daily-results__column + .daily-results__column {
    border-left: 0;
    border-top: 1px solid #f0f0f0;
    padding-top: 16px;
  }

  .daily-results__cta {
    width: 100%;
  }
}

.view-layout > div:has(> .session-complete) {
  flex: 1 1 auto;
  min-width: 0;
}

.session-complete {
  width: 100%;
  max-width: 688px;
  margin: 0 auto;
  padding: 48px 24px 64px;
  box-sizing: border-box;
  text-align: center;
  font-family: 'Nudista', sans-serif;
}

.session-complete button {
  min-width: 0;
  min-height: 0;
  max-height: none;
  letter-spacing: 0;
  text-transform: none;
}

.session-complete__check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  margin-bottom: 20px;
  border-radius: 50%;
  background: #f2edfc;
}

.session-complete__check-inner {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #e0d5f5;
  color: #9768eb;
}

.session-complete__title {
  margin: 0 0 40px;
  font-size: 24px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
  color: #000000;
}

.session-complete__streak {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-bottom: 36px;
  font-size: 48px;
  font-weight: 600;
  line-height: 56px;
  color: #000000;
}

.session-complete__streak-flame {
  flex: 0 0 auto;
  display: block;
  width: 48px;
  height: 48px;
  object-fit: contain;
}

.session-complete__card {
  height: 243px;
  padding: 20px;
  box-sizing: border-box;
  border: 1px solid #ececec;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 1px 3px 0 rgba(16, 24, 40, 0.04);
  text-align: left;
}

.session-complete__banner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 44px;
  padding: 0 16px;
  box-sizing: border-box;
  border-radius: 8px;
  background: #f9f8ff;
  color: #9768eb;
}

.session-complete__banner-icon {
  flex: 0 0 auto;
  display: block;
  width: 20px;
  height: 20px;
}

.session-complete__banner-text {
  font-size: 16px;
  font-weight: 600;
  line-height: 22px;
  text-align: center;
  color: #120d1c;
}

.session-complete__progress {
  margin-top: 20px;
}

.session-complete__progress-head {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 10px;
}

.session-complete__progress-week {
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #120d1c;
}

.session-complete__progress-count {
  margin-left: auto;
  font-size: 15px;
  font-weight: 500;
  line-height: 20px;
  color: #4f4f4f;
}

.session-complete__bar {
  overflow: hidden;
  height: 8px;
  border-radius: 4px;
  background: #e9ecef;
}

.session-complete__bar-fill {
  height: 100%;
  border-radius: 4px;
  background: #20b769;
  transition: width 0.3s ease;
}

.session-complete__stats {
  display: flex;
  gap: 12px;
  margin-top: 24px;
}

.session-complete__stat {
  flex: 1 1 0;
  min-width: 0;
  height: 77px;
  padding: 12px 16px;
  box-sizing: border-box;
  border-radius: 8px;
  background: #f6f6f6;
}

.session-complete__stat-label {
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 400;
  line-height: 20px;
  color: #4f4f4f;
}

.session-complete__stat-value {
  font-size: 20px;
  font-weight: 600;
  line-height: 28px;
  color: #000000;
}

.session-complete__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 32px;
  padding: 14px 28px;
  border: 1px solid #9768eb;
  border-radius: 8px;
  background: #9768eb;
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  color: #ffffff;
  cursor: pointer;
}

.session-complete__cta:hover {
  border-color: #855ad4;
  background: #855ad4;
}

.session-complete__cta-arrow {
  flex: 0 0 auto;
}

@media (max-width: 768px) {
  .session-complete {
    padding: 32px 20px 48px;
  }

  .session-complete__streak {
    gap: 12px;
    font-size: 34px;
    line-height: 42px;
  }

  .session-complete__streak-flame {
    width: 36px;
    height: 36px;
  }

  .session-complete__card {
    height: auto;
  }

  .session-complete__banner {
    height: auto;
    padding: 12px 16px;
  }

  .session-complete__stats {
    flex-direction: column;
  }

  .session-complete__stat {
    height: auto;
  }

  .session-complete__cta {
    width: 100%;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9hcHAvc3JjL3Nhc3MvZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fYmFzZS5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9fZGVzaWduX3Rva2Vucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21vZGFsLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbG9hZGluZy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2Rhc2hib2FyZF9tZW51LnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fZGFzaGJvYXJkX2xpc3Quc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19kYXNoYm9hcmRfZ3JpZC5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2Rhc2hib2FyZF9hdGhsZXRlLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fcHJvZmlsZV9hdGhsZXRlLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fYXRobGV0ZV9zaWRlYmFyLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2F0aGxldGVfd2VsY29tZV9oZWFkZXIuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fcHJvZ3Jlc3NfaW5zaWdodHMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdG9kYXlfYXNrcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19teV9zY2hlZHVsZS5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19ob21lX3NrZWxldG9uLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3VwY29taW5nX3Nlc3Npb24uc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fYm9keW1hcF9jYXJkLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21vZGFsX3VwY29taW5nX3Jlc2NoZWR1bGUuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbW9kYWxfdXBjb21pbmdfY2FuY2VsLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2F0aGxldGVfcHJvZmlsZV9wYWdlLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3Byb2dyYW1fY2F0YWxvZy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmFtX2VkaXQuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmFtX3doaXRlYm9hcmQuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19jYWxlbmRhci5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2NoYXJ0aW5nLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbm90ZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL190b29sdGlwLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdXBsb2FkaW5nLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2V4ZXJjaXNlX25hdi5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19jYXRhbG9nX25hdi5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19sb2dpbi5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21vZGFsX3Byb2ZpbGVfZm9ybS5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19tb2RhbF9hdGhsZXRlX2VkaXQuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbW9kYWxfc2VsZWN0X2F0aGxldGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdGVybXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fYWRtaW5fbWFpbi5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL190ZXN0X3Jlc3VsdHMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19jbGluaWNhbF9yZXBvcnQuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL190ZXN0cy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3BlcmZvcm1fdGVzdHMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmVzc19yZXBvcnQuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmVzc19yZXBvcnRfdGFicy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmVzc19kZXRhaWxzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fcHJvZ3JhbXNfZGV0YWlscy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3Byb2dyZXNzX3N1bW1hcnkuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmVzc19vdmVydmlldy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3Byb2dyYW1zX292ZXJ2aWV3LnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fcHJvZ3JhbXNfY29tcGxldGlvbi5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3NlbGVjdF9waWxsLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2RhdGVfcmFuZ2Vfc2VsZWN0LnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3Rlc3RfYXJjaGl2ZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19oZWFkZXIuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fcmVzcG9uc2l2ZW5lc3NfdHdlYWtzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fcHJvZ3JhbV9jYWxlbmRhcnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fdmFyaWFibGVzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGlucy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMyLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2FkbWluMl9taXNjLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zMi5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19hZG1pbjJfc2lkZWJhci5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL192YXJpYWJsZXMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX21peGluczIuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fYWRtaW4yX3RhYmxlLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zMi5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL190ZWFtLXRsLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3ZhcmlhYmxlcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19taXhpbnMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fbWl4aW5zMi5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19yZXBvcnRzLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX2Fzc2Vzc21lbnQuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fcHJvZ3JhbV9jYXJkcy5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmFtX2NhdGFsb2dfcGFnZS5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmFtX2RldGFpbC5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19kYWlseV9wcm9ncmFtLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3Byb2dyYW1fc3VtbWFyeS5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19wcm9ncmFtX2J1aWxkLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3NjaGVkdWxlX2J1aWxkLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3RvZGF5X3Nlc3Npb25faGVhZGVyLnNjc3MiLCIvYXBwL3NyYy9zYXNzL3Nhc3MtYW5ndWxhci1wcm90b3R5cGUvX3JyX2RhaWx5X3Rlc3Quc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fcjVfZGFpbHlfdGVzdC5zY3NzIiwiL2FwcC9zcmMvc2Fzcy9zYXNzLWFuZ3VsYXItcHJvdG90eXBlL19kYWlseV90ZXN0X3Jlc3VsdHMuc2NzcyIsIi9hcHAvc3JjL3Nhc3Mvc2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9fc2Vzc2lvbl9jb21wbGV0ZS5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2Jhc2VcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL21vZGFsXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9sb2FkaW5nXCI7XG5cbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2Rhc2hib2FyZF9tZW51XCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9kYXNoYm9hcmRfbGlzdFwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvZGFzaGJvYXJkX2dyaWRcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2Rhc2hib2FyZF9hdGhsZXRlXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9wcm9maWxlX2F0aGxldGVcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2F0aGxldGVfc2lkZWJhclwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvYXRobGV0ZV93ZWxjb21lX2hlYWRlclwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcHJvZ3Jlc3NfaW5zaWdodHNcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3RvZGF5X2Fza3NcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL215X3NjaGVkdWxlXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9ob21lX3NrZWxldG9uXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS91cGNvbWluZ19zZXNzaW9uXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9ib2R5bWFwX2NhcmRcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL21vZGFsX3VwY29taW5nX3Jlc2NoZWR1bGVcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL21vZGFsX3VwY29taW5nX2NhbmNlbFwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvYXRobGV0ZV9wcm9maWxlX3BhZ2VcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3Byb2dyYW1fY2F0YWxvZ1wiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcHJvZ3JhbV9lZGl0XCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9wcm9ncmFtX3doaXRlYm9hcmRcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2NhbGVuZGFyXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9jaGFydGluZ1wiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvbm90ZXNcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3Rvb2x0aXBcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3VwbG9hZGluZ1wiO1xuXG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9leGVyY2lzZV9uYXZcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2NhdGFsb2dfbmF2XCI7XG5cbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2xvZ2luXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9tb2RhbF9wcm9maWxlX2Zvcm1cIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL21vZGFsX2F0aGxldGVfZWRpdFwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvbW9kYWxfc2VsZWN0X2F0aGxldGVzXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS90ZXJtc1wiO1xuXG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9hZG1pbl9tYWluXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS90ZXN0X3Jlc3VsdHNcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2NsaW5pY2FsX3JlcG9ydFwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvdGVzdHNcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3BlcmZvcm1fdGVzdHNcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3Byb2dyZXNzX3JlcG9ydFwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcHJvZ3Jlc3NfcmVwb3J0X3RhYnNcIjtcbi8vIEFmdGVyIHByb2dyZXNzX3JlcG9ydDogX3Byb2dyZXNzX2RldGFpbHMuc2NzcyB1c2VzIGl0cyBAbWl4aW4gY2hhbmdlLWluZGljYXRvci5cbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3Byb2dyZXNzX2RldGFpbHNcIjtcbi8vIEl0cyBQcm9ncmFtcy10YWIgc2libGluZzsgc2hhcmVzIHRoZSBjYXJkIHNoZWxsLCBzZWUgdGhhdCBmaWxlJ3MgaGVhZGVyLlxuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcHJvZ3JhbXNfZGV0YWlsc1wiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcHJvZ3Jlc3Nfc3VtbWFyeVwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcHJvZ3Jlc3Nfb3ZlcnZpZXdcIjtcbi8vIFRoZSBQcm9ncmFtcyB0YWIncyB0d28gY2FyZHMsIHdoaWNoIHJlcGxhY2VkIHRoYXQgT3ZlcnZpZXcgY2FyZCdzIFByb2dyYW1zXG4vLyBicmFuY2guIHByb2dyYW1zX292ZXJ2aWV3IGRlY2xhcmVzIC5wcm9ncmFtcy1vdmVydmlldy1yb3csIHRoZSBmbGV4IHJvdyB0aGF0XG4vLyBob2xkcyBib3RoLCBzbyBpdCBoYXMgdG8gY29tZSBiZWZvcmUgaXRzIHNpYmxpbmcuXG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9wcm9ncmFtc19vdmVydmlld1wiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcHJvZ3JhbXNfY29tcGxldGlvblwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvc2VsZWN0X3BpbGxcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2RhdGVfcmFuZ2Vfc2VsZWN0XCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS90ZXN0X2FyY2hpdmVzXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9oZWFkZXJcIjtcblxuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcmVzcG9uc2l2ZW5lc3NfdHdlYWtzXCI7XG5cbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3Byb2dyYW1fY2FsZW5kYXJzXCI7XG5cbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2FkbWluMl9taXNjXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9hZG1pbjJfc2lkZWJhclwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvYWRtaW4yX3RhYmxlXCI7XG5cblxuLy8gdGhpcyBpcyBuZXcuLi5cbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3RlYW0tdGxcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3JlcG9ydHNcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2Fzc2Vzc21lbnRcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3Byb2dyYW1fY2FyZHNcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3Byb2dyYW1fY2F0YWxvZ19wYWdlXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9wcm9ncmFtX2RldGFpbFwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvZGFpbHlfcHJvZ3JhbVwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvcHJvZ3JhbV9zdW1tYXJ5XCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9wcm9ncmFtX2J1aWxkXCI7XG5AaW1wb3J0IFwic2Fzcy1hbmd1bGFyLXByb3RvdHlwZS9zY2hlZHVsZV9idWlsZFwiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvdG9kYXlfc2Vzc2lvbl9oZWFkZXJcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3JyX2RhaWx5X3Rlc3RcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL3I1X2RhaWx5X3Rlc3RcIjtcbkBpbXBvcnQgXCJzYXNzLWFuZ3VsYXItcHJvdG90eXBlL2RhaWx5X3Rlc3RfcmVzdWx0c1wiO1xuQGltcG9ydCBcInNhc3MtYW5ndWxhci1wcm90b3R5cGUvc2Vzc2lvbl9jb21wbGV0ZVwiOyIsIi8vIGRlc2lnbl90b2tlbnMgaG9sZHMgdGhlIHBhbGV0dGUgc2hhcmVkIHdpdGggdGhlIHNpYmxpbmcgYXBwIHJlcG8ncyB0YWlsd2luZFxuLy8gY29uZmlnLiBJdCBjb21lcyBmaXJzdCBzbyBldmVyeSBsYXRlciBwYXJ0aWFsIGluIHRoaXMgYnVuZGxlIGNhbiB1c2UgaXQ7XG4vLyB2YXJpYWJsZXMga2VlcHMgdGhlIG9sZGVyIGJyYW5kIG5hbWVzICgkYmx1ZS8kcmVkLyRncmVlbikgdGhhdCBwcmVkYXRlIGl0LlxuQGltcG9ydCBcIi4uL2Rlc2lnbl90b2tlbnNcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuKiwgKjpiZWZvcmUsICo6YWZ0ZXIge1xuICBAaW5jbHVkZSBib3gtc2l6aW5nKGluaGVyaXQpO1xuICBAaW5jbHVkZSB1c2VyLXNlbGVjdChub25lKTtcbn1cblxuaHRtbCB7XG4gIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG5cbiAgJi5kYXJrcm9vbTphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAuNyk7XG4gIH1cblxuICAuZGFya3Jvb20tYmFubmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDYwcHgpO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICA+IC5iYW5uZXIge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg2MHB4KTtcbiAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMjgwcHgpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDZweDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA2cHg7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgfVxuICB9XG59XG5cbmJ1dHRvbiwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEge1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcblxuICAmW3R5cGU9J3RleHQnXSB7XG4gICAgQGluY2x1ZGUgYXBwZWFyYW5jZShub25lKTtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KG5vbmUpO1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMnB4KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIHBhZGRpbmc6IDNweDtcbiAgfVxuXG4gICZbdHlwZT0ncGFzc3dvcmQnXSB7XG4gICAgQGluY2x1ZGUgYXBwZWFyYW5jZShub25lKTtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KG5vbmUpO1xuICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMnB4KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZ3JleTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIHBhZGRpbmc6IDNweDtcbiAgfVxuXG4gICYucmVxdWlyZWQge1xuICAgIGNvbG9yOiAjZmYwMDAwO1xuICB9XG59XG5cbmJ1dHRvbiB7XG4gIEBpbmNsdWRlIGFwcGVhcmFuY2Uobm9uZSk7XG4gIEBpbmNsdWRlIGJveC1zaGFkb3cobm9uZSk7XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoNnB4KTtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNTBweCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgYm9yZGVyOiAycHggc29saWQgJGJsdWU7XG4gIGNvbG9yOiAkYmx1ZTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgbWluLXdpZHRoOiAxMTBweDtcbiAgb3V0bGluZTogMDtcbiAgcGFkZGluZzogMCAxMHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICYuc2hvcnQge1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDM1cHgpO1xuICB9XG5cbiAgJi5zbWFsbCB7XG4gICAgbWluLXdpZHRoOiA4MHB4O1xuICB9XG5cbiAgJi5tZWRpdW0ge1xuICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMTUwcHgpO1xuICB9XG5cbiAgJi5wcmltYXJ5LCAmLmJsdWUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gIH1cblxuICAmLmRpc2FibGVkIHtcbiAgICBjb2xvcjogI2NkY2RjZDtcbiAgICBib3JkZXItY29sb3I6ICNjZGNkY2Q7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICB9XG4gIFxuICAmOmRpc2FibGVkIHtcbiAgICBjb2xvcjogI2NkY2RjZDtcbiAgICBib3JkZXItY29sb3I6ICNjZGNkY2Q7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICB9XG5cbiAgJi5yZXN1bWUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNEMTQwNEI7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gIH1cbn1cblxuYnV0dG9uICsgYnV0dG9uIHtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbn1cblxuLy8gaU9TIFNhZmFyaSBhdXRvLXpvb21zIHRoZSBwYWdlIHdoZW5ldmVyIGEgZm9jdXNlZCBmb3JtIGNvbnRyb2wgaXMgdW5kZXIgMTZweCxcbi8vIGFuZCBodG1se2ZvbnQtc2l6ZToxM3B4fSBhYm92ZSBwdXRzIGV2ZXJ5IHVuc3R5bGVkIGNvbnRyb2wgYmVsb3cgdGhhdC4gU2NvcGVkXG4vLyB0byBtb2JpbGUgcmF0aGVyIHRoYW4gcmFpc2luZyB0aGUgcm9vdCBzaXplLCB3aGljaCB0aGUgd2hvbGUgYXBwIGlzIHNpemVkIG9mZi5cbkBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gIGlucHV0LFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cblxuLmlucHV0LWNoZWNrYm94IHtcbiAgY29sb3I6ICRibHVlO1xuICBmb250LXNpemU6IDIwcHg7XG5cbiAgJi5kaXNhYmxlZCB7XG4gICAgY29sb3I6ICNjZGNkY2Q7XG4gIH1cbn1cblxuLmZvb3Rlci1jb250ZW50IHtcbiAgLypcbiAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAqL1xuICBwYWRkaW5nOiAxMHB4IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFMUUxRTY7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGNvbG9yOiAjMzIyNTRGO1xuXG4gIGEge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogIzk3NjhFQjtcbiAgfVxufVxuXG5bbmdcXDpjbG9ha10sIFtuZy1jbG9ha10sIC5uZy1jbG9hayB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmhlYWRlci1jb250ZW50IHtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoaW5pdGlhbCk7XG4gIEBpbmNsdWRlIGxvY2staGVpZ2h0KDkwcHgpO1xuXG4gIC5sb2dvIHtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg5MHB4KTtcbiAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDE0MHB4KTtcbiAgfVxuXG4gIC53aGl0ZS1maWVsZCB7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1lbmQpO1xuICAgIEBpbmNsdWRlIGZsZXgoMSAwIGF1dG8pO1xuXG4gICAgaS5pY29uLXNob3Age1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgIG1hcmdpbi1yaWdodDogLTVweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgfVxuXG4gICAgPiBkaXYge1xuICAgICAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1lbmQpO1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNjBweCk7XG4gICAgICBtYXJnaW46IDBweCAzMHB4O1xuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgaSB7XG4gICAgICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgIG1hcmdpbjogLTFweCA4cHggMHB4IDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAkZGFya19ibHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5jdXJyZW50LWF0aGxldGUge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG5cbiAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcblxuICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNwYW46Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzcGFuICsgc3BhbiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgPiBkaXYgKyBkaXYge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGJ1dHRvbiB7XG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luOiAwIDdweCAwIDI1cHg7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbjogMCAyNXB4IDAgN3B4O1xuICAgICAgfVxuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuXG4gICAgICAgIGkuZmEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ubWVudS1jb250ZW50IHtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNjVweCk7XG4gICYucmVzcC1tZW51IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLmJvZHktY29udGVudCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLnJlZC1iYWNrZ3JvdW5kIHsgYmFja2dyb3VuZC1jb2xvcjogI2M0MmEzYjsgIH1cbi55ZWxsb3ctYmFja2dyb3VuZCB7IGJhY2tncm91bmQtY29sb3I6ICNkZmMwM2Y7IH1cbi5ncmVlbi1iYWNrZ3JvdW5kIHsgYmFja2dyb3VuZC1jb2xvcjogIzIwYjc2OTsgfVxuLmJsdWUtdGV4dCB7IGNvbG9yOiAjOTc2OEVCOyB9XG4ucmVkLXRleHQgeyBjb2xvcjogI2M0MmEzYjsgfVxuLmdyZXktdGV4dCB7IGNvbG9yOiAjODA4MDgwOyB9XG4ubGlnaHQtZ3JleS10ZXh0IHsgY29sb3I6ICNhN2E3YTc7IH1cbi55ZWxsb3ctdGV4dCB7IGNvbG9yOiAjZGZjMDNmOyB9XG4uZ3JlZW4tdGV4dCB7IGNvbG9yOiAjMjBiNzY5OyB9XG5cbi53aGl0ZWJnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbn1cblxuLmdyZXliZyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7XG59XG5cbi5kcmtncmV5Ymcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmUyZTJlO1xufVxuXG4uYmx1ZWJnIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3NjhFQjtcbn1cblxuLm1haW4tdmlldyB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xufVxuXG4udmlldy1mbGV4IHtcbiAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG59XG5cbi52aWV3LXN0YXRpYyB7XG4gIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xufVxuXG4udmlldy1sYXlvdXQge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcbn1cblxuLnZpZXctc3RhY2sge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcbn1cblxuLnZpZXctY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgbG9jay13aWR0aCgxMDI0cHgpO1xuXG4gICYuY2VudGVyZWQgeyBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7IH1cbiAgJi5kaXZpZGVkIHsgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7IH1cbiAgJi5lbmQgeyBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LWVuZCk7IH1cbiAgJi53cmFwIHsgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApOyB9XG4gICYubWlkZGxlIHsgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKGNlbnRlcik7IH1cblxuICAmLmNvbHVtbiB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICAmLmNlbnRlciB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIH1cbiAgfVxufVxuXG4uY29sdW1uLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG5cbiAgJi5mdWxsIHsgQGluY2x1ZGUgZmxleCgxIDEgYXV0byk7IH1cbiAgJi50b3AgeyBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpOyB9XG4gICYuYm90dG9tIHsgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LWVuZCk7IH1cbiAgJi5jZW50ZXIgeyBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7IH1cbiAgJi5taWRkbGUgeyBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpOyB9XG4gICYuZGl2aWRlZCB7IEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KHNwYWNlLWJldHdlZW4pOyB9XG4gICYuc3BhY2VkIHsgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYXJvdW5kKTsgfVxuICAmLnN0YXJ0IHsgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7IH1cbiAgJi5lbmQgeyBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LWVuZCk7IH1cbiAgJi53cmFwIHsgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApOyB9XG59XG5cbi5yb3ctY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcblxuICAmLmZ1bGwgeyBAaW5jbHVkZSBmbGV4KDEgMSBhdXRvKTsgfVxuICAmLnRvcCB7IEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7IH1cbiAgJi5ib3R0b20geyBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtZW5kKTsgfVxuICAmLmNlbnRlciB7IEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTsgfVxuICAmLm1pZGRsZSB7IEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7IH1cbiAgJi5kaXZpZGVkIHsgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7IH1cbiAgJi5zcGFjZWQgeyBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1hcm91bmQpOyB9XG4gICYuc3RhcnQgeyBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTsgfVxuICAmLmVuZCB7IEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtZW5kKTsgfVxuICAmLndyYXAgeyBAaW5jbHVkZSBmbGV4LXdyYXAod3JhcCk7IH1cbn1cblxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8vIHJhbmdlIGlucHV0IGF0dGVtcHRcbmlucHV0W3R5cGU9cmFuZ2VdIHtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGNvbG9yLXN0b3AoMCwgIzk3NjhFQiksIGNvbG9yLXN0b3AoMCwgI2U4ZThlOCkpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2I0YjRiNDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6ICNlOGU4ZTg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG1hcmdpbi10b3A6IC0xNXB4O1xuICB9XG5cbiAgJjo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgJjo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiNGI0YjQ7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZThlOGU4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6Oi1tb3otcmFuZ2UtdHJhY2sge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgJjo6LW1vei1mb2N1cy1vdXRlciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIG91dGxpbmU6IDA7XG4gIH1cblxuICAmOjotbXMtdHJhY2sge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItd2lkdGg6IDE2cHggMDtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAmOjotbXMtdGh1bWIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiNGI0YjQ7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZThlOGU4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6Oi1tcy10b29sdGlwIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJjo6LW1zLWZpbGwtbG93ZXIge1xuICAgIGJhY2tncm91bmQ6ICM5NzY4RUI7XG4gICAgYm9yZGVyOiAwLjJweCBzb2xpZCAjOTc2OEVCO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgfVxuXG4gICY6Oi1tcy1maWxsLXVwcGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZThlOGU4O1xuICAgIGJvcmRlcjogMC4ycHggc29saWQgI2U4ZThlODtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIH1cblxuICAmOmZvY3VzOjotbXMtZmlsbC1sb3dlciB7XG4gICAgYmFja2dyb3VuZDogIzk3NjhFQjtcbiAgfVxuXG4gICY6Zm9jdXM6Oi1tcy1maWxsLXVwcGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZThlOGU4O1xuICB9XG59XG5cbi5wcm9ncmFtLWV4ZXJjaXNlLmRhaWx5LWV4ZXJjaXNlIHtcbiAgd2lkdGg6IDEwMCUhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6IDEwMCUhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDEwMCUhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAyMHB4O1xuICBnYXA6IDEwcHg7XG4gIC5kYWlseS1leGVyY2lzZS1hY3Rpb25zIHtcbiAgICBtaW4td2lkdGg6IDU0cHggIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDU0cHggIWltcG9ydGFudDtcbiAgICB3aWR0aDogNTRweCAhaW1wb3J0YW50O1xuICB9XG4gIC5pbmZvIC5hdHRyaWJ1dGVzIHtcbiAgICBnYXA6IDEwcHg7XG4gICAgPiBkaXYge1xuICAgICAgbWFyZ2luOiAwIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn0iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIERlc2lnbiB0b2tlbnMg4oCUIGdlbmVyYXRlZCBmcm9tIC4uLy4uL2FwcC90YWlsd2luZC5jb25maWcuanMgKHRoZW1lLmV4dGVuZCkuXG4vL1xuLy8gVGhhdCB0YWlsd2luZCBjb25maWcgaXMgdGhlIGNhbm9uaWNhbCBkZXNpZ24gc3lzdGVtLCBzaGFyZWQgd2l0aCB0aGUgc2libGluZ1xuLy8gQW5ndWxhciBhcHAuIERvIG5vdCBjaGFuZ2UgdmFsdWVzIGhlcmU6IGNoYW5nZSB0aGVtIHRoZXJlIGFuZCByZWdlbmVyYXRlLCBzb1xuLy8gYm90aCBmcm9udC1lbmRzIHN0YXkgaW4gc3RlcC5cbi8vXG4vLyBPbmx5IHRoZSB0b2tlbnMgdGhpcyByZXBvIGFjdHVhbGx5IHVzZXMgYXJlIGxpc3RlZC4gQm90aCBTQ1NTIGJ1bmRsZXMgaW1wb3J0XG4vLyB0aGlzIGZpbGUgKHNhc3MtYW5ndWxhci1wcm90b3R5cGUvX2Jhc2Uuc2NzcyBhbmQgZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnNcbi8vIC5zY3NzKSwgc28gZXZlcnkgcGFydGlhbCBpbiBlaXRoZXIgYnVuZGxlIGhhcyB0aGVzZSBpbiBzY29wZS5cbi8vXG4vLyBCZWZvcmUgdGhpcyBmaWxlIGV4aXN0ZWQsIHRoZSByZWRlc2lnbiBoYW5kLWNvcGllZCB0aGVzZSB2YWx1ZXMgaW50byBhXG4vLyBwcml2YXRlICR2YXJpYWJsZSBibG9jayBwZXIgZmlsZSDigJQgMjM5IGRlY2xhcmF0aW9ucyBhY3Jvc3MgMjggZmlsZXNcbi8vIHJlLWRlcml2aW5nIHRoZSBzYW1lIH4yMCBjb2xvcnMsIHdpdGggJHB1cnBsZS01MDAgYWxvbmUgcmVkZWNsYXJlZCAyOCB0aW1lc1xuLy8gdW5kZXIgMjggZGlmZmVyZW50IG5hbWVzLlxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIFB1cnBsZSDigJQgYnJhbmRcbiRwdXJwbGUtNTA6ICAgI2Y5ZjhmZjtcbiRwdXJwbGUtMTAwOiAgI2YyZWRmYztcbiRwdXJwbGUtMjAwOiAgI2UwZDVmNTtcbiRwdXJwbGUtMzAwOiAgI2M4YmFlZTtcbiRwdXJwbGUtNTAwOiAgIzk3NjhlYjtcbiRwdXJwbGUtNjAwOiAgIzczNTViNTtcbiRwdXJwbGUtNzAwOiAgIzUzM2Q4MjtcbiRwdXJwbGUtOTAwOiAgIzMyMjU0ZjtcblxuLy8gTmV1dHJhbHNcbiRibGFjay0xMDA6ICAgI2Y2ZjZmNjtcbiRibGFjay0yMDA6ICAgI2U3ZTdlNztcbiRibGFjay0zMDA6ICAgI2QxZDFkMTtcbiRibGFjay00MDA6ICAgI2IwYjBiMDtcbiRibGFjay01MDA6ICAgIzlkOWQ5ZDtcbiRibGFjay02MDA6ICAgIzZkNmQ2ZDtcbiRibGFjay03MDA6ICAgIzRmNGY0ZjtcbiRibGFjay04MDA6ICAgIzEyMGQxYztcbiRibGFjay05MDA6ICAgIzAwMDAwMDtcbiRidG4tYm9yZGVyOiAgI2IwYjBiMDsgIC8vIHRhaWx3aW5kIGFsaWFzIG9mIGJsYWNrLTQwMCwga2VwdCBmb3IgaW50ZW50IGF0IHVzZSBzaXRlc1xuJG11dGVkOiAgICAgICAjODg4ODg4O1xuJHBhZ2UtYmc6ICAgICAjZjZmNmY3O1xuJHJvdy1ob3ZlcjogICAjZmFmYWZhO1xuXG4vLyBTdGF0dXNcbi8vXG4vLyBOT1RFOiBuYW1lZCAtNTAwIHJhdGhlciB0aGFuICRncmVlbi8kcmVkIGJlY2F1c2UgdGhvc2UgdHdvIG5hbWVzIGFyZSBhbHJlYWR5XG4vLyB0YWtlbiwgaW4gQk9USCBidW5kbGVzJyBfdmFyaWFibGVzLnNjc3MsIGJ5IHRoZSBvbGRlciBicmFuZCBwYWxldHRlIHdpdGhcbi8vIERJRkZFUkVOVCB2YWx1ZXMgKCRncmVlbiAjMjBiNzY5LCAkcmVkICNjNDJhM2IpLiBUaGUgcmVkZXNpZ24gdXNlcyBib3RoIHNldHMuXG4vLyBSZWNvbmNpbGluZyB0aGF0IGRyaWZ0IGlzIGEgZGVzaWduIGRlY2lzaW9uLCBub3QgYSByZWZhY3RvciDigJQgc2VlIGJlbG93LlxuJGdyZWVuLTUwMDogICAjMTJiNzZhO1xuJGdyZWVuLTUwOiAgICAjZWJmYmYzO1xuJHJlZC01MDA6ICAgICAjZjA0NDM4O1xuJHJlZC02MDA6ICAgICAjZDkyZDIwO1xuJGFtYmVyOiAgICAgICAjZDY4YjAwO1xuJGFtYmVyLTUwOiAgICAjZmZmN2U0O1xuJGFtYmVyLTEwMDogICAjZmRlOGJlO1xuXG4vLyBHcmV5cyAodGhlIG5ld2VyIGdyYXktKiByYW1wLCB1c2VkIGJ5IHBvcnRlZCBhcHAtcmVwbyBjb21wb25lbnRzKVxuJGdyYXktMjAwOiAgICAjZWFlY2YwO1xuJGdyYXktNTAwOiAgICAjNjY3MDg1O1xuJGdyYXktNzAwOiAgICAjMzQ0MDU0O1xuJGdyYXktOTAwOiAgICAjMTAxODI4O1xuXG4vLyBDaHJvbWUgLyBzdXJmYWNlc1xuJGhlYWRlci1iZzogICAgICAjMWExYTJlO1xuJHNpZGViYXItdGl0bGU6ICAjMzUzNTRiO1xuJHJvb20tc3VyZmFjZTogICAjMzUzNTRiOyAgLy8gdGFpbHdpbmQgYWxpYXMgb2Ygc2lkZWJhci10aXRsZSAoZGFyay10aGVtZSBuYW1pbmcpXG4kcm9vbS1tdXRlZDogICAgICNlMWUxZTY7XG4kdG9vbHRpcDogICAgICAgICMxYzFiM2E7XG5cbi8vIEVsZXZhdGlvblxuLy8gU3BlbGxlZCBleGFjdGx5IGFzIHRoZSAxMyBleGlzdGluZyBoYW5kLXdyaXR0ZW4gY29waWVzIHdlcmUsIHNvIHN1YnN0aXR1dGluZ1xuLy8gdGhlIHRva2VuIGxlYXZlcyBjb21waWxlZCBDU1MgYnl0ZS1pZGVudGljYWwuXG4kc2hhZG93LWNhcmQ6IDAgMXB4IDNweCAwIHJnYmEoMTYsIDI0LCA0MCwgMC4wNCk7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRGl2ZXJnZW5jZXMg4oCUIHZhbHVlcyB1c2VkIHdpZGVseSBpbiB0aGlzIHJlcG8gdGhhdCB0aGUgZGVzaWduIHN5c3RlbSBkb2VzIE5PVFxuLy8gZGVmaW5lLiBIb2lzdGVkIGhlcmUgc28gdGhlIGRyaWZ0IGlzIHZpc2libGUgaW4gb25lIHBsYWNlIGluc3RlYWQgb2YgYmVpbmdcbi8vIHJlLWludmVudGVkIHBlciBmaWxlLiBEbyBub3QgXCJmaXhcIiB0aGVzZSBieSBzbmFwcGluZyB0aGVtIHRvIGEgbmVhcmJ5IHRva2VuOlxuLy8gdGhhdCBjaGFuZ2VzIHJlbmRlcmVkIG91dHB1dCBhbmQgbmVlZHMgYSBkZXNpZ24gY2FsbCBmaXJzdC5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vLyBBIHB1cnBsZSBob3ZlciBzdGF0ZS4gVHdvIGNvbXBldGluZyB2YWx1ZXMgYXJlIGluIHVzZTsgbmVpdGhlciBpcyBjYW5vbmljYWwuXG4vLyAkcHVycGxlLTYwMCAoIzczNTViNSkgaXMgYWxzbyB1c2VkIGFzIGEgaG92ZXIgaW4gX3Byb2ZpbGVfYXRobGV0ZS5zY3NzIGFuZFxuLy8gX3Byb2dyZXNzX3JlcG9ydF90YWJzLnNjc3MuXG4keC1wdXJwbGUtaG92ZXI6ICM4NTVhZDQ7ICAvLyBkZWNsYXJlZCBpbiAxMSBmaWxlc1xuXG4vLyBBIGhhaXJsaW5lIGJvcmRlciwgb25lIHN0ZXAgbGlnaHRlciB0aGFuICRibGFjay0yMDAuXG4keC1ib3JkZXItZmFpbnQ6ICNlY2VjZWM7ICAvLyBkZWNsYXJlZCBpbiAxNCBmaWxlc1xuIiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLm1vZGFsLW92ZXJsYXkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogMTAwMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzRjNGM0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE5NiwgMTk2LCAxOTYsIC43KTtcblxuICAmLm5nLWVudGVyLCAmLm5nLWxlYXZlIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IC4ycyBsaW5lYXIgYWxsO1xuICAgICAgIC1tb3otdHJhbnNpdGlvbjogLjJzIGxpbmVhciBhbGw7XG4gICAgICAgICAtby10cmFuc2l0aW9uOiAuMnMgbGluZWFyIGFsbDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IC4ycyBsaW5lYXIgYWxsO1xuICB9XG5cbiAgJi5uZy1lbnRlciwgJi5uZy1sZWF2ZS5uZy1sZWF2ZS1hY3RpdmUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAmLm5nLWVudGVyLm5nLWVudGVyLWFjdGl2ZSwgJi5uZy1sZWF2ZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ubW9kYWwtdmlldyB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcblxuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogMTAwMTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgLm1vZGFsIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIC8vIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuXG4gICAgbWluLWhlaWdodDogMTAwcHg7XG4gICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcblxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLjJzIGxpbmVhciBhbGw7XG4gICAgICAgLW1vei10cmFuc2l0aW9uOiAuMnMgbGluZWFyIGFsbDtcbiAgICAgICAgIC1vLXRyYW5zaXRpb246IC4ycyBsaW5lYXIgYWxsO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogLjJzIGxpbmVhciBhbGw7XG5cbiAgICAmLm5nLWxlYXZlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gICAgfVxuXG4gICAgJi5uZy1sZWF2ZS5uZy1sZWF2ZS1hY3RpdmUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMDAlKTtcbiAgICB9XG4gIH1cblxuICAmLm5nLWVudGVyIHtcbiAgICAubW9kYWwge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMDAlKTtcbiAgICB9XG4gIH1cblxuICAmLm5nLWVudGVyLm5nLWVudGVyLWFjdGl2ZSB7XG4gICAgLm1vZGFsIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB9XG4gIH1cbn1cblxuLm1vZGFsLWFuaW1hdGUtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgLy8gQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICBAaW5jbHVkZSBsb2NrLXdpZHRoKDc3MHB4KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICA+IC5tb2RhbC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGZsZXgoMSAwIGF1dG8pO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLjEyNXMgbGluZWFyIGFsbDtcbiAgICAgICAtbW96LXRyYW5zaXRpb246IC4xMjVzIGxpbmVhciBhbGw7XG4gICAgICAgICAtby10cmFuc2l0aW9uOiAuMTI1cyBsaW5lYXIgYWxsO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogLjEyNXMgbGluZWFyIGFsbDtcblxuICAgICYubmctbGVhdmUge1xuICAgICAgJi5zbGlkZS1sZWZ0IHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7IH1cbiAgICAgICYuc2xpZGUtcmlnaHQgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTsgfVxuICAgIH1cblxuICAgICYubmctbGVhdmUubmctbGVhdmUtYWN0aXZlLCAmLm5nLWhpZGUtYWRkIHtcbiAgICAgICYuc2xpZGUtbGVmdCB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IH1cbiAgICAgICYuc2xpZGUtcmlnaHQgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cbiAgICB9XG5cbiAgICAmLm5nLWVudGVyLCAmLm5nLWhpZGUtcmVtb3ZlIHtcbiAgICAgICYuc2xpZGUtbGVmdCB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7IH1cbiAgICAgICYuc2xpZGUtcmlnaHQgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cbiAgICB9XG5cbiAgICAmLm5nLWVudGVyLm5nLWVudGVyLWFjdGl2ZSB7XG4gICAgICAmLnNsaWRlLWxlZnQgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTsgfVxuICAgICAgJi5zbGlkZS1yaWdodCB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpOyB9XG4gICAgfVxuICB9XG59XG5cbi5tb2RhbC1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm94LXNoYWRvdzogOHB4IDhweCAyMHB4IDBweCAjNGE0YTRhO1xuXG4gICYubGFyZ2Uge1xuICAgIHdpZHRoOiA5NzBweDtcbiAgfVxuXG4gIGhlYWRlciB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogOHB4O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA2cHg7XG5cbiAgICBidXR0b24ubGluayB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcblxuICAgICAgaS5sZWZ0IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5hbGVydCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICB9XG5cbiAgICAmLmNvbmZpcm0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cblxuICAgIGxhYmVsIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgaS5mYSB7XG4gICAgICAgIG1hcmdpbjogMCA0cHg7XG4gICAgICB9XG5cbiAgICAgIHNwYW4ge1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5jbG9zZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIG1hcmdpbjogMCA4cHg7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgICBvcGFjaXR5OiAuMjtcbiAgICAgIHRleHQtc2hhZG93OiAwIDFweCAwICNjY2M7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZWN0aW9uIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuXG4gICAgbWFyZ2luOiAwIDEwcHg7XG4gICAgbWluLWhlaWdodDogODBweDtcbiAgICBtaW4td2lkdGg6IDMwMHB4O1xuICB9XG5cbiAgZm9vdGVyIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LWVuZCk7XG5cbiAgICBidXR0b246bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIH1cbiAgfVxufVxuIiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLmxvYWRpbmctdmlldyB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgXG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogOTk7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDsgIFxuXG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTI1LCAxMjUsIDEyNSwgLjUpO1xuXG4gIC5sb2FkaW5nLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBcbiAgICBtaW4taGVpZ2h0OiAyMDBweDtcbiAgICBtaW4td2lkdGg6IDIwMHB4O1xuXG4gICAgLmZhLXNwaW5uZXIge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmb250LXNpemU6IDYwcHg7XG4gICAgfVxuICB9XG59IiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLmF0aGxldGUtc2VsZWN0aW9uIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTBlMGUxO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UwZTBlMTtcbiAgaGVpZ2h0OiA0NHB4O1xuICBtaW4taGVpZ2h0OiA0NHB4O1xuICBtYXgtaGVpZ2h0OiA0NHB4O1xuXG4gID4gZGl2LFxuICA+IC5hdGhsZXRlLXNlbGVjdGlvbl9fdGFiIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTBlMGUxO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY29sb3I6ICMxMjBkMWM7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgcGFkZGluZzogMCAxNnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMmVkZmM7XG4gICAgICBjb2xvcjogIzEyMGQxYztcblxuICAgICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5NzY4ZWI7XG4gICAgICB9XG5cbiAgICAgIC5jbG9zZSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCguYWN0aXZlKTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y4O1xuICAgICAgY29sb3I6ICMxMjBkMWM7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLm5hbWUge1xuICAgICAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gICAgICBmb250OiA2MDAgMTRweC8yMHB4IFwiTnVkaXN0YVwiLCBzYW5zLXNlcmlmO1xuICAgICAgY29sb3I6ICMxMjBkMWM7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgIG1hcmdpbjogMCA4cHggMCAwO1xuICAgIH1cblxuICAgIC5jbG9zZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIG1pbi13aWR0aDogYXV0bztcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gID4gZGl2LnRlYW0tbmF2IHtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgY29sb3I6ICM2YzZjN2M7XG4gICAgbWluLXdpZHRoOiA0NHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlMGUwZTE7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGNvbG9yOiAjNmM2YzdjO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmODtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnRlYW0tbmF2X19pY29uIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIH1cbiAgfVxufVxuXG5cbi5hdGhsZXRlLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIG1hcmdpbi1ib3R0b206IDM1cHg7XG59XG5cbi5hdGhsZXRlLW1lbnUge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBsb2NrLWhlaWdodCg0OHB4KTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgLmF0aGxldGUtc2VhcmNoIHtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkbGlnaHRfZ3JleTtcbiAgICB3aWR0aDogMTQwcHg7XG5cbiAgICBpbnB1dFt0eXBlPSd0ZXh0J10ge1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIGhlaWdodDogNTBweDtcbiAgICAgIHRleHQtaW5kZW50OiAxNXB4O1xuICAgICAgd2lkdGg6IDk1JTtcbiAgICB9XG5cbiAgICA6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRkYXJrX2dyZXk7XG4gICAgfVxuICB9XG5cbiAgLmF0aGxldGUtcmVzZXQtdmlldyB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMCAxMDBweCk7XG4gICAgQGluY2x1ZGUgbG9jay13aWR0aCgxMDBweCk7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjYztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICRkYXJrX2dyZXk7XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJGxpZ2h0X2dyZXk7XG4gICAgfVxuICB9XG5cbiAgLmF0aGxldGUtdG9nZ2xlLXZpZXcge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleCgxIDAgMTAwcHgpO1xuICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMTAwcHgpO1xuICAgIGZvbnQtc2l6ZTogMjNweDtcblxuICAgICYgPiBpIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIG1hcmdpbjogOHB4O1xuICAgICAgY29sb3I6ICRsaWdodF9ncmV5O1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkZGFya19ncmV5O1xuICAgICAgfVxuICAgICAgJi5hY3RpdmUgIHtcbiAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5hdGhsZXRlLW1vYmlsZS1maWx0ZXJzLWJ0biB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5hdGhsZXRlLWZpbHRlci1zb3J0IHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgoMSAwIGF1dG8pO1xuICAgIG1pbi13aWR0aDogNjAwcHg7XG5cbiAgICAmID4gLmF0aGxldGUtc29ydC1ib3gge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG4gICAgICBAaW5jbHVkZSBmbGV4KDEgMSBhdXRvKTtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjY2M7XG4gICAgICBjb2xvcjogJGRhcmtfZ3JleTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIG1pbi13aWR0aDogMTEwcHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgIC5sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDUwcHgpO1xuICAgICAgICBtYXgtd2lkdGg6IDExMHB4O1xuICAgICAgICB3aWR0aDogMTEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDE1cHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBjb2xvcjogJGRhcmtfZ3JleTtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiAzNSU7XG4gICAgICAgICAgcmlnaHQ6IDEwcHg7XG5cbiAgICAgICAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG4gICAgICAgICAgY29udGVudDogXCJcXGYwZDdcIjtcbiAgICAgICAgICBjb2xvcjogJGRhcmtfZ3JleTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAub3B0aW9ucyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MnB4O1xuICAgICAgICBsZWZ0OiAtMXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmMWYxO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZWJlYmViO1xuICAgICAgICBib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDY4LCA2NywgNzYsIDAuMjUpO1xuICAgICAgICBtaW4td2lkdGg6IDEzMHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgei1pbmRleDogMztcblxuICAgICAgICAub3B0aW9ucy1pdGVtIHtcbiAgICAgICAgICBwYWRkaW5nOiA1cHggMTBweCA1cHggMTRweDtcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGVkZmRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAub3B0aW9ucy1pdGVtLXNlbGVjdGVkIHtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDNweDtcbiAgICAgICAgfVxuICAgICAgICAuc29ydC1pdGVtLXNlbGVjdGVkIHtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZmEtY2lyY2xlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDdweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAmLm5vdC1hY3RpdmUge1xuICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuZmEtc29ydC1hc2Mge1xuICAgICAgICBtYXJnaW4tbGVmdDogNHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5mYS1zb3J0LWRlc2Mge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICBib2R5IHtcbiAgICAuYXRobGV0ZS1tZW51IHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICBcbiAgICAgIC5hdGhsZXRlLW1vYmlsZS1maWx0ZXJzLWJ0biB7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG9yZGVyOiAyO1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMTRweDtcbiAgICAgICAgZ2FwOiA3cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgICAgIGNvbG9yOiAkZGFya19ncmV5O1xuICAgICAgfVxuICBcbiAgICAgIC5hdGhsZXRlLXNlYXJjaCB7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cbiAgXG4gICAgICAuYXRobGV0ZS10b2dnbGUtdmlldyB7XG4gICAgICAgIG9yZGVyOiAzO1xuICAgICAgICBtaW4td2lkdGg6IHVuc2V0O1xuICAgICAgICBtYXgtd2lkdGg6IDcwcHg7XG4gICAgICAgIHdpZHRoOiA3MHB4O1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICB9XG4gIFxuICAgICAgLmF0aGxldGUtZmlsdGVyLXNvcnQge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIG9yZGVyOiA0O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiB1bnNldDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gIFxuICAgICAgICAmLm1vYmlsZS1vcGVuIHtcbiAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXggIWltcG9ydGFudDtcbiAgICAgICAgICBkaXNwbGF5OiAtbXMtZmxleGJveCAhaW1wb3J0YW50O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIH1cbiAgXG4gICAgICAgICYgPiAuYXRobGV0ZS1zb3J0LWJveCB7XG4gICAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgICAgICBtaW4td2lkdGg6IHVuc2V0O1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xuICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgXG4gICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgICAgfVxuICBcbiAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuICAgICAgICAgICAgY29udGVudDogXCJcXGYwZDdcIjtcbiAgICAgICAgICAgIGNvbG9yOiAkZGFya19ncmV5O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgfVxuICBcbiAgICAgICAgICBkaXYubGFiZWwge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDMwcHggMCAyMHB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gIFxuICAgICAgICAgIC5sYWJlbC1wbGFjZWhvbGRlcltkYXRhLWZpZWxkLW5hbWVdIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDMwcHghaW1wb3J0YW50O1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLWZpZWxkLW5hbWUpICc6JztcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICBjb2xvcjogJGRhcmtfZ3JleTtcbiAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgY29udGVudDogJ0FsbCc7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgY29sb3I6ICRkYXJrX2dyZXk7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICBcbiAgICAgICAgICAubGFiZWxbZGF0YS1zb3J0LXZhbHVlXSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4IWltcG9ydGFudDtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1maWVsZC1uYW1lKSAnOic7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgY29sb3I6ICRkYXJrX2dyZXk7XG4gICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1zb3J0LXZhbHVlKTtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICBjb2xvcjogJGRhcmtfZ3JleTtcbiAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICBcbiAgICAgICAgICAub3B0aW9ucyB7XG4gICAgICAgICAgICB0b3A6IDUwcHg7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogMTAwO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICBcbiAgICAgIC5hdGhsZXRlLXJlc2V0LXZpZXcge1xuICAgICAgICBvcmRlcjogNTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi13aWR0aDogdW5zZXQ7XG4gICAgICAgIG1heC13aWR0aDogdW5zZXQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDUwcHg7XG4gICAgICAgIGhlaWdodDogNTBweDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gICAgICB9XG4gICAgfVxuICBcbiAgICAuYXRobGV0ZS1tZW51LS1maWx0ZXJzLW9wZW4ge1xuICAgICAgLmF0aGxldGUtcmVzZXQtdmlldyB7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB9XG4gICAgfVxuICBcbiAgICAubGFiZWxbZGF0YS1maWVsZC1uYW1lXTpub3QoLmxhYmVsLXBsYWNlaG9sZGVyKTpub3QoW2RhdGEtc29ydC12YWx1ZV0pOjpiZWZvcmUge1xuICAgICAgY29udGVudDogYXR0cihkYXRhLWZpZWxkLW5hbWUpICc6JztcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICBjb2xvcjogJGRhcmtfZ3JleTtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cbiAgfVxuXG59XG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4uYXRobGV0ZS1saXN0LXZpZXcge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcblxuICAuYXRobGV0ZS1saXN0LXNjcm9sbCB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAuYXRobGV0ZS1oZWFkZXIge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tY29udGVudChjZW50ZXIpO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTtcblxuICAgICYgPiBkaXYge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMzVweCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTtcbiAgICAgIGNvbG9yOiAkZGFya19ncmV5O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuXG4gICAgLmF0aGxldGUtbnVtYmVyIHtcbiAgICAgIG1pbi13aWR0aDogNzBweDtcbiAgICB9XG5cbiAgICAuYXRobGV0ZS1uYW1lIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICAgIG1pbi13aWR0aDogMTcwcHg7XG4gICAgfVxuXG4gICAgLmF0aGxldGUtc3RhdCB7XG4gICAgICBAaW5jbHVkZSBmbGV4KC41KTtcbiAgICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgfVxuXG4gICAgLmF0aGxldGUtcHJvZ3JhbXMge1xuICAgICAgbWluLXdpZHRoOiAxNDBweDtcbiAgICB9XG5cbiAgICAuYXRobGV0ZS1sYXN0LWFjdGl2aXR5IHtcbiAgICAgIG1pbi13aWR0aDogMTcwcHg7XG4gICAgfVxuICB9XG5cbiAgLmF0aGxldGUtcm93IHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdy1jZW50ZXIoKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWNvbnRlbnQoY2VudGVyKTtcbiAgICBmb250LXNpemU6IDIwcHg7XG5cbiAgICAmID4gZGl2IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNTNweCk7XG4gICAgfVxuXG4gICAgLmF0aGxldGUtbnVtYmVyIHtcbiAgICAgIGNvbG9yOiAjOTM5NDk3O1xuICAgICAgbWluLXdpZHRoOiA3MHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4XG4gICAgfVxuXG4gICAgLmF0aGxldGUtbmFtZSB7XG4gICAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgICAgY29sb3I6ICNmN2Y3Zjc7XG4gICAgICBtaW4td2lkdGg6IDE3MHB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5hdGhsZXRlLXN0YXQge1xuICAgICAgQGluY2x1ZGUgZmxleCguNSk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDEuMjVweDtcbiAgICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgfVxuXG4gICAgLmF0aGxldGUtcHJvZ3JhbXMge1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIG1pbi13aWR0aDogMTQwcHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cblxuICAgICAgaSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmF0aGxldGUtbGFzdC1hY3Rpdml0eSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgbWluLXdpZHRoOiAxNzBweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgPiBkaXYge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuICAgICAgfVxuXG4gICAgICAuYXRobGV0ZS1udW1iZXIsIC5hdGhsZXRlLW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmUyZTJlO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgPiBkaXYge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmVmO1xuICAgICAgfVxuXG4gICAgICAuYXRobGV0ZS1udW1iZXIsIC5hdGhsZXRlLW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjQyNDI0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbi5hdGhsZXRlLWRhc2hib2FyZC1sYXlvdXQge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVmMGVmO1xuXG4gIC5hdGhsZXRlLWRhc2hib2FyZC1sYXlvdXQtc2lkZSB7XG4gICAgQGluY2x1ZGUgZmxleCguMSk7XG4gIH1cbn1cblxuLmF0aGxldGUtZGFzaGJvYXJkIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBtYXJnaW4tdG9wOiAxNXB4O1xuXG4gICRkYXNoYm9hcmQtd2lkdGg6IDk5MHB4O1xuXG4gIC5hdGhsZXRlLWRhc2hib2FyZC1tZW51IHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdy1jZW50ZXIoKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICBtaW4taGVpZ2h0OiA4NXB4O1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICB3aWR0aDogJGRhc2hib2FyZC13aWR0aDtcblxuICAgICYgPiBkaXYge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDM1cHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICAmID4gc3BhbjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA3cHg7XG5cbiAgICAgICAgJiA+IGk6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gICRhdGhsZXRlRGFzaGJvYXJkR2FwOiAyMHB4O1xuICAuYXRobGV0ZS1kYXNoYm9hcmQtY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBnYXA6ICRhdGhsZXRlRGFzaGJvYXJkR2FwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC5hdGhsZXRlLWluZm8tYm94IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uLWNlbnRlcigpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIHdpZHRoOiBjYWxjKCgxMDAlIC0gI3skYXRobGV0ZURhc2hib2FyZEdhcCAqIDJ9KSAvIDMpO1xuXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgfVxuXG4gICAgLmF0aGxldGUtYWRkLXNsb3Qge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICAgIGZsZXg6IDEgMCAxMDAlO1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcblxuICAgICAgYnV0dG9uIGkge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5hdGhsZXRlLWluZm8tYm94ID4gZGl2IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cbi5hdGhsZXRlLWRhc2hib2FyZC1hY3Rpb25zIHtcbiAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG4gIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi10b3A6IDM1cHg7XG4gIC5hY3Rpb24ge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgJi5kaXNhYmxlZCB7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICBjb2xvcjogJGxpZ2h0X2dyZXk7XG4gICAgICAuYWN0aW9uLWljb24sIC5hY3Rpb24tdGV4dCB7XG4gICAgICAgIGNvbG9yOiAkbGlnaHRfZ3JleTtcbiAgICAgIH1cbiAgICB9XG4gICAgLmFjdGlvbi1pY29uIHtcbiAgICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIH1cbiAgICAuYWN0aW9uLXRleHQge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICB9XG59XG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4uYXRobGV0ZS1pbmZvLWJveCB7XG5cbiAgLmJpby1oZWFkZXIge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgIEBpbmNsdWRlIGZsZXgoMSAwIDQwcHgpO1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDQ1cHgpO1xuICAgIGJhY2tncm91bmQtY29sb3I6Izk3NjhFQjs7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAuYXRobGV0ZS1udW1iZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgfVxuXG4gICAgLmF0aGxldGUtbmFtZSB7XG4gICAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICB9XG5cbiAgICAuYXRobGV0ZS1udW1iZXIgKyAuYXRobGV0ZS1uYW1lIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE3LDM4LDc1LC44NSk7XG4gICAgfVxuICB9XG5cbiAgLmJpby1ib2R5IHtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMSAxMDAlKTtcbiAgICBwYWRkaW5nOiAxN3B4O1xuICAgICYgPiBkaXYge1xuICAgICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSAwIGF1dG8pO1xuICAgIH1cbiAgICAuYXRobGV0ZS1wcm9maWxlIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgIG1heC13aWR0aDogMTIwcHg7XG5cbiAgICAgIC5wcm9maWxlLXBpYy10aHVtYiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICBoZWlnaHQ6IDEwMHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgfVxuXG4gICAgICAucHJvZmlsZS1waWMge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgICBoZWlnaHQ6IDEzMHB4O1xuICAgICAgICAvLyBtYXJnaW46IDVweCAxMHB4ICRhdGhsZXRQcm9maWxlU3ViUGljR2FwO1xuICAgICAgICBtYXJnaW46IDAgMCAxMHB4O1xuICAgICAgICB3aWR0aDogMTIwcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLC01MCUpO1xuICAgICAgICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwtNTAlKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgfVxuXG5cbiAgICAgIH1cblxuICAgICAgLmF0aGxldGUtcG9zaXRpb24ge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuNXB4O1xuICAgICAgfVxuXG4gICAgICAuYXRobGV0ZS13ZWlnaHQge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmF0aGxldGUtc3RhdHMge1xuICAgICAgcGFkZGluZy1sZWZ0OiAxNXB4O1xuICAgICAgLy8gbWFyZ2luLXRvcDogMTRweDtcbiAgICAgIC8vIHBhZGRpbmctbGVmdDogNXB4O1xuICAgICAgLy8gcGFkZGluZy1yaWdodDogMjBweDtcblxuICAgICAgLmF0aGxldGUtc2NvcmUge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTBweDtcbiAgICAgIH1cblxuICAgICAgLmF0aGxldGUtc2NvcmUtdGwtZGF0YSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KHNwYWNlLWJldHdlZW4pO1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxMHB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICAgIH1cblxuXG4gICAgICAudGVzdC10eXBlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gICAgICB9XG4gICAgICAudGVzdC1zY29yZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuYmlvLWZvb3RlciB7XG4gICAgQGluY2x1ZGUgZmxleCgxIDAgNTBweCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgICBtYXgtaGVpZ2h0OiA1MHB4O1xuXG4gICAgPiBkaXYge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgQGluY2x1ZGUgZmxleCgxIDAgNTAlKTtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBjb2xvcjogJGRhcmtfZ3JleTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjZweDtcbiAgICAgIGkge1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICAmLmljb24tdGVzdCAge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNFOEU4RTg7XG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGRpdiArIGRpdiB7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNFOEU4RTg7XG4gICAgfVxuICB9XG59XG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4ucHJvZmlsZS1tZW51IHtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LWVuZCk7XG4gIEBpbmNsdWRlIGxvY2staGVpZ2h0KDY1cHgpO1xufVxuXG4ubWVudS1pdGVtICsgLm1lbnUtaXRlbSB7XG4gIG1hcmdpbi1sZWZ0OiA0NXB4O1xufVxuXG4ubWVudS1pdGVtIHtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNDBweCk7XG4gIGNvbG9yOiAjYTBhNGE4O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuXG4gICYuYWN0aXZlIHtcbiAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgJGJsdWU7XG4gICAgY29sb3I6ICNlZmVmZWY7XG4gIH1cblxuICAmOm5vdCguYWN0aXZlKTpob3ZlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICNhMGE0YTg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNDBweCk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIHNwYW4ubWFya2VyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAtMzBweDtcbiAgICB3aWR0aDogMjNweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDAwMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbi5wcm9maWxlLWRldGFpbCB7XG4gICYucHJvZmlsZS1kZXRhaWwge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgbG9jay13aWR0aCgyMTBweCk7XG5cbiAgLmRhdGEtZW1waGFzaXMge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH1cblxuICAucHJvZmlsZS1waWMge1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDE3NXB4KTtcbiAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDIwMHB4KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIH1cbiAgfVxuXG4gIC5wcm9maWxlLWFjdGlvbiB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyKCk7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIGhlaWdodDogNTBweDtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG5cbiAgICBpIHtcbiAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgJi5pbnZpc2libGUge1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIC5wcm9maWxlLWRhdGEtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbi1jZW50ZXIoKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuXG4gICAgLnByb2ZpbGUtZGF0YSA+IHNwYW46Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgfVxuICB9XG5cbiAgLnByb2ZpbGUtZ3JvdXAtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbi1jZW50ZXIoKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuXG4gICAgLmdyb3VwLWNvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDlEQUQ5O1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgbWFyZ2luOiA2cHggMCAwO1xuICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIHdpZHRoOiAxMTVweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAuZ3JvdXAtaWNvbiB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgfVxuXG4gICAgICAuZ3JvdXAtc2F2ZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgfVxuXG4gICAgICAuZ3JvdXAtY2xvc2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiA1cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbi5wcm9maWxlLWRhdGEtY29udGFpbmVyLm1vYmlsZS1wcm9maWxlLWRhdGEge1xuICBkaXNwbGF5OiBub25lO1xuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLnByb2ZpbGUtZ3JvdXAtY29udGFpbmVyLm1vYmlsZS1wcm9maWxlLWdyb3VwIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLnJlc3AtbW9udGgtdmlldyB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbn1cblxuLnJlc3Atc2NvcmUtdG9kYXkge1xuICBAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgYm9keSAucHJvZmlsZS1zdW1tYXJ5ID4gLnJvdy1jb250YWluZXIuZGl2aWRlZC5yZXNwLXNjb3JlLXRvZGF5ID4gZGl2ICsgZGl2IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICBib2R5IC5wcm9maWxlLXN1bW1hcnkge1xuICAgIHBhZGRpbmctbGVmdDogMHB4IWltcG9ydGFudDtcbiAgfVxufVxuXG4ucHJvZmlsZS1zdW1tYXJ5IHtcbiAgQGluY2x1ZGUgbG9jay13aWR0aCg3ODBweCk7XG5cbiAgLm1vYmlsZS1waWMge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICAgIG1hcmdpbi1yaWdodDogMTZweDtcblxuICAgICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMjBweDtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBhc3BlY3QtcmF0aW86IDIwMCAvIDE3NTtcbiAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG4gIC5wcm9maWxlLW5hbWUge1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAmID4gZGl2IHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgIH1cbiAgfVxuXG4gIC5wcm9maWxlLWFjdGl2aXR5IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGNvbG9yOiAjOTk5O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgPiBkaXYge1xuICAgICAgJjpudGgtY2hpbGQobisyKTpiZWZvcmUge1xuICAgICAgICBjb2xvcjogI2NjYztcbiAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICBtYXJnaW46IDAgOXB4O1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJiA+IHNwYW46Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYmx1ZS10ZXh0IHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAuc2NvcmUtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbjogMjBweCAwIDEwcHg7XG4gICAgbWluLWhlaWdodDogMjBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgLnNjb3JlLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgbG9jay13aWR0aCgzODBweCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZmVmZWY7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuXG4gICAgLnByb2ZpbGUtc2NvcmUge1xuICAgICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoODVweCk7XG4gICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDMzMHB4KTtcblxuICAgICAgJi5sYWJlbC1vbmx5IHtcbiAgICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNjVweCk7XG4gICAgICB9XG5cbiAgICAgIC5wcm9maWxlLXNjb3JlLWluZm8ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuXG4gICAgICAgIC5wcm9maWxlLXNjb3JlLW5hbWUge1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAuMjVweDtcblxuXG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgIGNvbG9yOiAjQUVBRUFFO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9maWxlLXNjb3JlLWRhdGUge1xuXG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gICAgICAgICAgY29sb3I6ICNBRUFFQUU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnByb2ZpbGUtc2NvcmUtZ3JhcGgtY2FudmFzIHtcbiAgICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNjBweCk7XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMzMwcHgpO1xuICAgICAgfVxuXG4gICAgICAucHJvZmlsZS1zY29yZS1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAgICAgICAucHJvZmlsZS10bC1jaGFuZ2Uge1xuICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgfVxuXG4gICAgICBcbiAgICB9XG4gIH1cblxuICAudG9kYXktbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbjogMjBweCAwIDEwcHg7XG4gICAgbWluLWhlaWdodDogMjBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgLnRvZGF5LXByb2dyYW0ge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDgwcHgpO1xuICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMzgwcHgpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWZlZmVmO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiA3cHg7XG4gICAgcGFkZGluZzogMCA2cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJiA+IGRpdiB7XG4gICAgICBtYXJnaW4tbGVmdDogMTBweDtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGNvbG9yOiAjY2NjO1xuICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZGl2Lmljb24tY2hlY2tib3gtY2hlY2tlZCAge1xuICAgICAgY29sb3I6ICNBRkIwQUU7XG4gICAgICAmLmJsdWUtY2hlY2sge1xuICAgICAgICBjb2xvcjogIzk3NjhFQjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZ3JhbSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIC5saWdodC1ncmV5LXRleHQgIHtcbiAgICAgICAgY29sb3I6ICNBRkIxQjM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnRvZGF5LW5vdGljZSB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDgwcHgpO1xuICAgIC8vIEBpbmNsdWRlIGxvY2std2lkdGgoMzgwcHgpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWZlZmVmO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiA3cHg7XG4gICAgcGFkZGluZzogMCA2cHg7XG5cbiAgICA+IGRpdiB7XG4gICAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICB9XG5cbiAgICAubm90aWNlIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgICAvLyBtb3JlIHJlc3BvbnNpdmUgdG8gbm8gZml4IGhlaWdodHNcbiAgICAgIC8vIGFuZCBpbnN0ZWFkIHVzZSBwYWRkaW5nL21hcmdpbnMuLlxuICAgICAgLy8gbWluLWhlaWdodDogMjZweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA2cHg7XG5cbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgfVxuXG4gICAgLm5vdGljZS1idXR0b24ge1xuICAgICAgPiBidXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCgzMHB4KTtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICYueWVsbG93IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkZmMwM2Y7XG5cbiAgICAgIC5ub3RpY2Uge1xuICAgICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICAgIH1cblxuICAgICAgLm5vdGljZS1idXR0b24ge1xuICAgICAgICA+IGJ1dHRvbiB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NlYjc0ZTtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IG1pc2Mgc2VjdGlvbiBzcGFjaW5nXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4uc3BhY2VkLXRvcC1sYXJnZSAge1xuICBtYXJnaW4tdG9wOiA0NXB4O1xufVxuLnNwYWNlZC1ib3R0b20tbWVkaXVtICB7XG4gIG1hcmdpbi1ib3R0b206IDM1cHg7XG59XG5cblxuLmJ1cmdlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMjZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogIzJlMmUyZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZy1ib3R0b206IDdweDtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbi5tZW51LW1vYmlsZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4ubWVudS1kZXNrdG9wIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLm1lbnUtbW9iaWxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDYwcHg7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kOiAjMWMxYzFjO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nOiAxMHB4IDA7XG4gIHotaW5kZXg6IDEwMDA7XG5cbiAgLm1lbnUtaXRlbSB7XG4gICAgcGFkZGluZzogMTVweCAyMHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMzMzO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyAvLyDQstCw0LbQu9C40LLQvlxuICB9XG59XG5cbi5tZW51LWRpdmlkZXIge1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZDogIzMzMztcbiAgbWFyZ2luOiAxMHB4IDA7XG59XG5cbi8qIE1PQklMRSBCUkVBS1BPSU5UICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm1lbnUtZGVza3RvcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC5idXJnZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLm1lbnUtbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDB2dztcbiAgfVxuXG4gIC5wcm9maWxlLW1lbnUge1xuICAgIHdpZHRoOiB1bnNldCFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXgtaGVpZ2h0OiA1OXB4O1xuICAgIGhlaWdodDogNTlweDtcbiAgICBtaW4taGVpZ2h0OiA1OXB4O1xuICB9XG59XG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiLmF0aGxldGUtbmF2IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiA4cHggMCA0cHg7XG4gIH1cblxuICAmX19idXJnZXIge1xuICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICMyZTJlMmU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gIH1cblxuICAmX19kcm9wZG93biB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIGJhY2tncm91bmQ6ICMxYzFjMWM7XG4gICAgei1pbmRleDogMTAwMDtcbiAgICBtaW4td2lkdGg6IDE1MHB4O1xuICB9XG5cbiAgJl9faXRlbSB7XG4gICAgcGFkZGluZzogMTRweCAyMHB4O1xuICAgIGNvbG9yOiAjYTBhNGE4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMzMzM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGNvbG9yOiAjZWZlZmVmO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICNlZmVmZWY7XG4gICAgfVxuICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQXRobGV0ZSBuYXZpZ2F0aW9uIOKAlCB2ZXJ0aWNhbCBsZWZ0IHNpZGViYXJcbiAgIE1hdGNoZXMgdGhlIHByYWN0aXRpb25lci9hZG1pbiBzaWRlYmFyIHN0eWxlLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4kYXRobGV0ZS1zaWRlYmFyLXdpZHRoOiAyNDBweDtcbiRhdGhsZXRlLXNpZGViYXItY29sbGFwc2VkLXdpZHRoOiA3MHB4O1xuJGF0aGxldGUtaGVhZGVyLWhlaWdodDogNjBweDtcbiRhdGhsZXRlLWhlYWRlci1oZWlnaHQtbW9iaWxlOiA2MHB4O1xuLy8gU2Vjb25kYXJ5IGhlYWRlciAoYmFjay1hcnJvdyArIG1lbWJlciBuYW1lcyBiYXIpIOKAlCBmdWxsLXdpZHRoLCBzaXRzIGRpcmVjdGx5XG4vLyB1bmRlciB0aGUgbWFpbiBoZWFkZXI7IHRoZSBzaWRlYmFyIHJhaWwgYmVnaW5zIGJlbG93IGl0LlxuJGF0aGxldGUtc3ViaGVhZGVyLWhlaWdodDogNDRweDtcblxuLy8gQ29sb3JzIHB1bGxlZCBmcm9tIHRoZSBwcmFjdGl0aW9uZXIgc2lkZWJhciBkZXNpZ24gc3lzdGVtXG4kYXRobGV0ZS1zaWRlYmFyLWJnOiAjZmZmZmZmO1xuXG4vLyBUaGUgbWVudV9iYXIgaW5jbHVkZSB3cmFwcGVyIGJlY29tZXMgdGhlIGZpeGVkIHNpZGViYXIgcmFpbFxuLy8gKG9ubHkgd2hlbiB0aGUgYXRobGV0ZSBtZW51IGFjdHVhbGx5IGhhcyBpdGVtcyB0byBzaG93KS5cbi8vIERlZmF1bHQ6IGZsdXNoIGJlbG93IHRoZSBtYWluIGhlYWRlciAoYXRobGV0ZSB2aWV3IGhhcyBubyBzZWxlY3Rpb24gYmFyKS5cbi5tZW51LWNvbnRlbnQ6aGFzKC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zKSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAkYXRobGV0ZS1oZWFkZXItaGVpZ2h0O1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAkYXRobGV0ZS1zaWRlYmFyLXdpZHRoO1xuICBtaW4td2lkdGg6ICRhdGhsZXRlLXNpZGViYXItd2lkdGg7XG4gIG1heC13aWR0aDogJGF0aGxldGUtc2lkZWJhci13aWR0aDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXRobGV0ZS1zaWRlYmFyLWJnO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkYmxhY2stMzAwO1xuICB6LWluZGV4OiA5MDA7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGVhc2UsIG1pbi13aWR0aCAwLjI1cyBlYXNlLCBtYXgtd2lkdGggMC4yNXMgZWFzZTtcbn1cblxuLy8gUHJhY3RpdGlvbmVyIHZpZXc6IGRyb3AgdGhlIHJhaWwgYmVsb3cgdGhlIHNlbGVjdGlvbiBiYXIgd2hlbiBpdCByZW5kZXJzLlxuLm1haW4tdmlldzpoYXMoLmF0aGxldGUtc2VsZWN0aW9uKSB7XG4gIC5tZW51LWNvbnRlbnQ6aGFzKC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zKSB7XG4gICAgdG9wOiAkYXRobGV0ZS1oZWFkZXItaGVpZ2h0ICsgJGF0aGxldGUtc3ViaGVhZGVyLWhlaWdodDtcbiAgfVxufVxuXG4vLyBLZWVwIHRoZSBoZWFkZXIgcGlubmVkIHNvIHRoZSBmaXhlZCBzaWRlYmFyIG9mZnNldCBzdGF5cyB2YWxpZCB3aGlsZSBzY3JvbGxpbmcuXG4vLyBwYWRkaW5nLXRvcCByZXNlcnZlcyBzcGFjZSBzbyBjb250ZW50IGRvZXMgbm90IGp1bXAgdW5kZXIgdGhlIGZpeGVkIGhlYWRlci5cbi5tYWluLXZpZXc6aGFzKD4gLm1lbnUtY29udGVudCAucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcykge1xuICBwYWRkaW5nLXRvcDogJGF0aGxldGUtaGVhZGVyLWhlaWdodDtcblxuICA+IC5oZWFkZXItY29udGVudCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDkxMDsgLy8gYWJvdmUgc2lkZWJhciAoOTAwKVxuICB9XG5cbiAgLy8gUGluIHRoZSBzZWNvbmRhcnkgaGVhZGVyIHRvIGEga25vd24gaGVpZ2h0IHNvIHRoZSByYWlsJ3MgYHRvcGAgb2Zmc2V0IGxpbmVzXG4gIC8vIHVwIGV4YWN0bHkgYmVuZWF0aCBpdCAobm8gZ2FwLCBubyBvdmVybGFwKS5cbiAgPiAuaGVhZGVyLWNvbnRlbnQgKyAqIC5hdGhsZXRlLXNlbGVjdGlvbiB7XG4gICAgaGVpZ2h0OiAkYXRobGV0ZS1zdWJoZWFkZXItaGVpZ2h0O1xuICAgIG1pbi1oZWlnaHQ6ICRhdGhsZXRlLXN1YmhlYWRlci1oZWlnaHQ7XG4gICAgbWF4LWhlaWdodDogJGF0aGxldGUtc3ViaGVhZGVyLWhlaWdodDtcbiAgfVxufVxuXG4vLyBQcmFjdGl0aW9uZXIgdmlldzogYWxzbyBwaW4gdGhlIHNlbGVjdGlvbi1iYXIgd3JhcHBlciB3aGlsZSBzY3JvbGxpbmcuXG4ubWFpbi12aWV3OmhhcyguYXRobGV0ZS1zZWxlY3Rpb24pOmhhcyg+IC5tZW51LWNvbnRlbnQgLnByb2ZpbGUtbWVudS0tc2lkZWJhci5oYXMtaXRlbXMpIHtcbiAgcGFkZGluZy10b3A6ICRhdGhsZXRlLWhlYWRlci1oZWlnaHQgKyAkYXRobGV0ZS1zdWJoZWFkZXItaGVpZ2h0O1xuXG4gIC8vIFNpdHMgYmVsb3cgdGhlIGhlYWRlciAoOTEwKSBhbmQgdGhlIHJhaWwgKDkwMCAvIDkyMCBvbiBtb2JpbGUpLiBOb3RoaW5nIGV2ZXJcbiAgLy8gb3ZlcmxhcHMgaXQgdmVydGljYWxseSDigJQgdGhlIHJhaWwgc3RhcnRzIGJlbmVhdGggdGhpcyBiYXIg4oCUIGFuZCBwb3NpdGlvbjogZml4ZWRcbiAgLy8gYWxvbmUgc3RpbGwgcGFpbnRzIGl0IGFib3ZlIGFsbCBpbi1mbG93IGNvbnRlbnQuXG4gID4gLmhlYWRlci1jb250ZW50ICsgKiB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogJGF0aGxldGUtaGVhZGVyLWhlaWdodDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDg5NTtcbiAgfVxufVxuXG4vLyBDb2xsYXBzZWQgcmFpbCAoaWNvbi1vbmx5KVxuLm1lbnUtY29udGVudDpoYXMoLnByb2ZpbGUtbWVudS0tc2lkZWJhci5oYXMtaXRlbXMuaXMtY29sbGFwc2VkKSB7XG4gIHdpZHRoOiAkYXRobGV0ZS1zaWRlYmFyLWNvbGxhcHNlZC13aWR0aDtcbiAgbWluLXdpZHRoOiAkYXRobGV0ZS1zaWRlYmFyLWNvbGxhcHNlZC13aWR0aDtcbiAgbWF4LXdpZHRoOiAkYXRobGV0ZS1zaWRlYmFyLWNvbGxhcHNlZC13aWR0aDtcbn1cblxuLy8gQ29udHJvbGxlciByb290IGZpbGxzIHRoZSByYWlsIGFzIGEgdmVydGljYWwgY29sdW1uXG4ucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDA7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICAvLyBUaGUgcm9vdCBhbHNvIGNhcnJpZXMgLnZpZXctY29udGFpbmVyLCB3aGljaCBwaWNrcyB1cCBhIDE1cHggc2lkZSBndXR0ZXJcbiAgLy8gYmVsb3cgMTA1NHB4IChyZXNwb25kKG1kKSBpbiBfcmVzcG9uc2l2ZW5lc3NfdHdlYWtzKS4gT24gYSA3MHB4IHJhaWwgdGhhdFxuICAvLyBzcXVlZXplcyB0aGUgaGVhZGVyIGFuZCBpdGVtIGJveGVzIGludG8gbmFycm93IHBpbGxzLlxuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgLnNpZGViYXItaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLy8gbGVmdCAyNHB4IGFsaWducyB0aGUgdGl0bGUgd2l0aCB0aGUgaXRlbSBpY29uczsgcmlnaHQgMTJweCBhbGlnbnMgdGhlXG4gICAgLy8gdG9nZ2xlIHdpdGggdGhlIGl0ZW0gYm94ZXMnIHJpZ2h0IGVkZ2VcbiAgICBwYWRkaW5nOiAxNnB4IDEycHggMTZweCAyNHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwYWdlLWJnO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYmxhY2stMzAwO1xuICAgIC8vIFN0YXkgdmlzaWJsZSBpZiB0aGUgbmF2IGxpc3Qgb3ZlcmZsb3dzIGFuZCB0aGUgcmFpbCBzY3JvbGxzIGludGVybmFsbHlcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogMDtcbiAgICB6LWluZGV4OiAxO1xuICB9XG5cbiAgLnNpZGViYXItaGVhZGVyX190aXRsZSB7XG4gICAgLy8gZ3JvdyB0byBmaWxsIHNvIHRoZSB0b2dnbGUgaXMgcHVzaGVkIHRvIHRoZSBmYXIgcmlnaHQgcmVnYXJkbGVzcyBvZiB0aGVcbiAgICAvLyBiYXNlIC5wcm9maWxlLW1lbnUgZmxleCBydWxlc1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAkcHVycGxlLTkwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAuc2lkZWJhci1oZWFkZXJfX3RvZ2dsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAvLyBuZXV0cmFsaXplIGdsb2JhbCBidXR0b24geyBtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KSB9XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC8vIHRoZSBhcnJvdyBnbHlwaCBoYXMgd2hpdGVzcGFjZSBvbiBpdHMgcmlnaHQgaW5zaWRlIHRoZSB2aWV3Qm94OyBwdWxsIHRoZVxuICAgIC8vIGJ1dHRvbiByaWdodCBzbyB0aGUgdmlzdWFsIGFycm93IGxpbmVzIHVwIHdpdGggdGhlIGl0ZW0gYm94ZXMnIHJpZ2h0IGVkZ2VcbiAgICBtYXJnaW4tcmlnaHQ6IC02cHg7XG5cbiAgICBzdmcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMjJweDtcbiAgICAgIGhlaWdodDogMjJweDtcbiAgICB9XG4gIH1cblxuICAubWVudS1kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBhZGRpbmc6IDE2cHggMTJweDtcbiAgfVxuXG4gIC5tZW51LWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICBtYXJnaW46IDAgMCA0cHggMDtcbiAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBjb2xvcjogJHNpZGViYXItdGl0bGU7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuM3B4O1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlLWluLW91dDtcblxuICAgICY6bm90KC5hY3RpdmUpOmhvdmVyIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwdXJwbGUtMTAwO1xuICAgIH1cblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwdXJwbGUtMTAwO1xuICAgICAgY29sb3I6ICRzaWRlYmFyLXRpdGxlO1xuICAgIH1cbiAgfVxuXG4gIC8vIE5ldXRyYWxpemUgdGhlIG9sZCBob3Jpem9udGFsIHNwYWNpbmcgcnVsZVxuICAubWVudS1pdGVtICsgLm1lbnUtaXRlbSB7IG1hcmdpbi1sZWZ0OiAwOyB9XG5cbiAgLm1lbnUtaXRlbV9faWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBzdmcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTZweDtcbiAgICAgIGhlaWdodDogMTZweDtcbiAgICB9XG4gIH1cblxuICAubWVudS1pdGVtX19sYWJlbCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgfVxuXG4gIC8vIE9mZi1jYW52YXMgdHJpZ2dlciDigJQgaGlkZGVuIG9uIGRlc2t0b3BcbiAgLnNpZGViYXItYnVyZ2VyIHsgZGlzcGxheTogbm9uZTsgfVxufVxuXG4vLyBQcmFjdGl0aW9uZXIgbWVtYmVyLXZpZXc6IHByb2ZpbGUgYmxvY2sgKyBhZG1pbiBmb290ZXJcbi5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zLnByb2ZpbGUtbWVudS0tcHJhY3RpdGlvbmVyIHtcbiAgLnNpZGViYXItbWVtYmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTZweCAyNHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhdGhsZXRlLXNpZGViYXItYmc7XG4gIH1cblxuICAuc2lkZWJhci1tZW1iZXJfX2F2YXRhciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnZS1iZztcbiAgfVxuXG4gIC5zaWRlYmFyLW1lbWJlcl9faW5mbyB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLnNpZGViYXItbWVtYmVyX19uYW1lIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIGNvbG9yOiAjM2MzYzQzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgfVxuXG4gIC5zaWRlYmFyLW1lbWJlcl9fc3VidGl0bGUge1xuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIGNvbG9yOiAjOGU4ZTkzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgfVxuXG4gIC5zaWRlYmFyLWZvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICBwYWRkaW5nOiAxNnB4IDEycHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRibGFjay0zMDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGF0aGxldGUtc2lkZWJhci1iZztcbiAgfVxuXG4gIC5zaWRlYmFyLWZvb3Rlcl9fYWRtaW4tYnRuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLy8gbmV1dHJhbGl6ZSBnbG9iYWwgYnV0dG9uIHsgbWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCkgfVxuICAgIG1pbi13aWR0aDogMDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgIHBhZGRpbmc6IDEwcHggMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMzAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjM2MzYzQzO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIC8vIG5ldXRyYWxpemUgZ2xvYmFsIGJ1dHRvbiB7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHggfVxuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlLWluLW91dDtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhZ2UtYmc7XG4gICAgfVxuXG4gICAgLmljb24ge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuICB9XG5cbiAgLnNpZGViYXItZm9vdGVyX19hZG1pbi1sYWJlbCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxufVxuXG4vLyBDb2xsYXBzZWQ6IGhpZGUgbGFiZWxzICsgdGl0bGUsIGNlbnRlciBpY29uc1xuLnByb2ZpbGUtbWVudS0tc2lkZWJhci5oYXMtaXRlbXMuaXMtY29sbGFwc2VkIHtcbiAgLnNpZGViYXItaGVhZGVyIHsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLnNpZGViYXItaGVhZGVyX190aXRsZSB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgLm1lbnUtaXRlbSB7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC5tZW51LWl0ZW1fX2xhYmVsIHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICYucHJvZmlsZS1tZW51LS1wcmFjdGl0aW9uZXIge1xuICAgIC5zaWRlYmFyLW1lbWJlciB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgfVxuXG4gICAgLnNpZGViYXItbWVtYmVyX19pbmZvIHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgLnNpZGViYXItZm9vdGVyIHtcbiAgICAgIHBhZGRpbmc6IDEycHggOHB4O1xuICAgIH1cblxuICAgIC5zaWRlYmFyLWZvb3Rlcl9fYWRtaW4tbGFiZWwgeyBkaXNwbGF5OiBub25lOyB9XG5cbiAgICAuc2lkZWJhci1mb290ZXJfX2FkbWluLWJ0biB7XG4gICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgZ2FwOiAwO1xuICAgIH1cbiAgfVxufVxuXG4vLyBQdXNoIHBhZ2UgY29udGVudCBpbnRvIHRoZSBjb2x1bW4gdG8gdGhlIHJpZ2h0IG9mIHRoZSByYWlsLlxuLy8gU2NvcGVkIHZpYSA6aGFzKCkgc28gcGFnZXMgd2l0aG91dCB0aGUgYXRobGV0ZSBzaWRlYmFyIGFyZSB1bnRvdWNoZWQsXG4vLyBhbmQgbWFyZ2lucyByZXNldCBhdXRvbWF0aWNhbGx5IHdoZW4gbmF2aWdhdGluZyBhd2F5LlxuLy8gTk9URTogdGhlIHNlY29uZGFyeSBoZWFkZXIgKGAuaGVhZGVyLWNvbnRlbnQgKyAqYCkgaXMgaW50ZW50aW9uYWxseSBOT1Rcbi8vIHB1c2hlZCDigJQgaXQgc3BhbnMgZnVsbCB3aWR0aCBhdCB0aGUgZmFyIGxlZnQsIGFib3ZlIHRoZSByYWlsLiBUaGUgcmFpbCdzXG4vLyBgdG9wYCBvZmZzZXQgKGFib3ZlKSBkcm9wcyBpdCBiZWxvdyB0aGUgc2Vjb25kYXJ5IGhlYWRlciBpbnN0ZWFkLlxuLm1haW4tdmlldzpoYXMoPiAubWVudS1jb250ZW50IC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zKSB7XG4gID4gLm1lbnUtY29udGVudCB+ICoge1xuICAgIG1hcmdpbi1sZWZ0OiAkYXRobGV0ZS1zaWRlYmFyLXdpZHRoO1xuICAgIHRyYW5zaXRpb246IG1hcmdpbi1sZWZ0IDAuMjVzIGVhc2U7XG4gIH1cbn1cblxuLm1haW4tdmlldzpoYXMoPiAubWVudS1jb250ZW50IC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zLmlzLWNvbGxhcHNlZCkge1xuICA+IC5tZW51LWNvbnRlbnQgfiAqIHtcbiAgICBtYXJnaW4tbGVmdDogJGF0aGxldGUtc2lkZWJhci1jb2xsYXBzZWQtd2lkdGg7XG4gIH1cbn1cblxuLyogVGhlIHNjcmltIG9ubHkgZXhpc3RzIGluIHRoZSBvZmYtY2FudmFzIHRpZXIgYmVsb3cuICovXG4uc2lkZWJhci1zY3JpbSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIE1vYmlsZTogc2lkZWJhciBzbGlkZXMgaW4gZnJvbSB0aGUgbGVmdCwgdG9nZ2xlZCBieSBhIGZpeGVkIGJ1cmdlciAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC8vIFNpdHMgYWZ0ZXIgdGhlIGRyYXdlcidzIHJpZ2h0IGVkZ2Ugc28gdGhlIHJhaWwgaXRzZWxmIHN0YXlzIGNyaXNwLlxuICAvLyB6LWluZGV4OiAtMSBrZWVwcyBpdCB1bmRlciB0aGUgZHJhd2VyJ3Mgb3duIGNoaWxkcmVuIHdoaWxlIHRoZSBwYXJlbnQnc1xuICAvLyB6LWluZGV4ICg5MjAsIGJlbG93KSBrZWVwcyBpdCBvdmVyIHRoZSBwYWdlLlxuICAucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcy5pcy1tb2JpbGUtb3BlbiAuc2lkZWJhci1zY3JpbSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogJGF0aGxldGUtaGVhZGVyLWhlaWdodC1tb2JpbGU7XG4gICAgbGVmdDogJGF0aGxldGUtc2lkZWJhci13aWR0aDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgei1pbmRleDogLTE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICB9XG5cbiAgLy8gT25seSBvbmUgbW9iaWxlIG5hdiB0cmlnZ2VyOiBhdGhsZXRlX3NlbGVjdGlvbl9iYXIuaHRtbCBpbnN0YW50aWF0ZXMgYVxuICAvLyBzZWNvbmQgTWVudUJhckNvbnRyb2xsZXIgd2l0aCBpdHMgb3duIGJ1cmdlciwgd2hpY2ggZHVwbGljYXRlZCB0aGlzIG9uZVxuICAvLyB3aGVyZXZlciB0aGUgc2lkZWJhciByZW5kZXJzLlxuICAubWFpbi12aWV3OmhhcygucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcykgLmF0aGxldGUtbmF2IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gUHJhY3RpdGlvbmVyIHZpZXcgc3RhY2tzIGEgNDRweCB0YWIgYmFyIHVuZGVyIHRoZSA2MHB4IGhlYWRlci4gVGhlIGJ1cmdlciBzaXRzXG4gIC8vIGluIHRoZSBoZWFkZXIgaXRzZWxmIChiZWxvdyksIHNvIHRoaXMgYmFyIG9ubHkgbmVlZHMgaXRzIHNjcmltIG9mZnNldCBmaXhlZC5cbiAgLm1haW4tdmlldzpoYXMoLmF0aGxldGUtc2VsZWN0aW9uKSB7XG4gICAgLy8gTWF0Y2ggdGhlIGRyYXdlcidzIHRvcCBzbyB0aGUgdGFiIGJhciBpcyBub3QgZGltbWVkLlxuICAgIC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zLmlzLW1vYmlsZS1vcGVuIC5zaWRlYmFyLXNjcmltIHtcbiAgICAgIHRvcDogJGF0aGxldGUtaGVhZGVyLWhlaWdodC1tb2JpbGUgKyAkYXRobGV0ZS1zdWJoZWFkZXItaGVpZ2h0O1xuICAgIH1cbiAgfVxuXG4gIC8vIFRoZSBmaXhlZCBidXJnZXIgb3ZlcmxheXMgdGhlIGhlYWRlcidzIGxlZnQgZWRnZTsgcmVzZXJ2ZSB0aGF0IHdpZHRoIHNvIGhlYWRlclxuICAvLyBjb250ZW50IHN0YXJ0cyBjbGVhciBvZiBpdCAtLSB0aGUgbWVtYmVyIGhlYWRlcidzIFZpc29yIG1hcmsgYW5kIHRoZVxuICAvLyBwcmFjdGl0aW9uZXIgdGVhbSBzd2l0Y2hlciB3b3VsZCBib3RoIG90aGVyd2lzZSBiZSBjb3ZlcmVkLlxuICAvLyBUYXJnZXRzIHRoZSBpbm5lciBkYXJrIGVsZW1lbnQsIG5vdCB0aGUgcGxhaW4gLmhlYWRlci1jb250ZW50IHdyYXBwZXIgdGhlIHZpZXdzXG4gIC8vIHB1dCBhcm91bmQgdGhlIGluY2x1ZGUg4oCUIHBhZGRpbmcgb24gdGhlIHdyYXBwZXIgd291bGQgaW5zZXQgdGhlIGRhcmsgYmFyIGl0c2VsZi5cbiAgLm1haW4tdmlldzpoYXMoPiAubWVudS1jb250ZW50IC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zKSB7XG4gICAgLmhlYWRlci1jb250ZW50LS1hdGhsZXRlLFxuICAgIC5oZWFkZXItY29udGVudC0tcHJhYyB7XG4gICAgICBwYWRkaW5nLWxlZnQ6ICRhdGhsZXRlLWhlYWRlci1oZWlnaHQtbW9iaWxlO1xuICAgIH1cbiAgfVxuXG4gIC5tZW51LWNvbnRlbnQ6aGFzKC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zKSB7XG4gICAgdG9wOiAkYXRobGV0ZS1oZWFkZXItaGVpZ2h0LW1vYmlsZTtcbiAgICBsZWZ0OiAtJGF0aGxldGUtc2lkZWJhci13aWR0aDtcbiAgICB3aWR0aDogJGF0aGxldGUtc2lkZWJhci13aWR0aDtcbiAgICBtaW4td2lkdGg6ICRhdGhsZXRlLXNpZGViYXItd2lkdGg7XG4gICAgbWF4LXdpZHRoOiAkYXRobGV0ZS1zaWRlYmFyLXdpZHRoO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIGJveC1zaGFkb3c6IDJweCAwIDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAgIHRyYW5zaXRpb246IGxlZnQgMC4yNXMgZWFzZTtcblxuICAgIC8vIFRoZSBidXJnZXIgaXMgYSBjaGlsZCBvZiB0aGlzIGZpeGVkLCB6LWluZGV4ZWQgZWxlbWVudCwgc28gaXRzIG93biB6LWluZGV4IGlzXG4gICAgLy8gbG9jYWwgdG8gdGhpcyBjb250ZXh0LiBMaWZ0IHRoZSBjb250ZXh0IGFib3ZlIHRoZSBoZWFkZXIgKDkxMCkgc28gdGhlIGJ1cmdlclxuICAgIC8vIGNhbiBwYWludCBpbiB0aGUgaGVhZGVyJ3MgbGVmdCBjZWxsLiBUaGUgZHJhd2VyIGl0c2VsZiBzdGFydHMgYXQgdGhlIGhlYWRlcidzXG4gICAgLy8gYm90dG9tIGVkZ2UsIHNvIGl0IG5ldmVyIG92ZXJsYXBzIHRoZSBoZWFkZXIgcmVnYXJkbGVzcyBvZiBwYWludCBvcmRlci5cbiAgICB6LWluZGV4OiA5MjA7XG4gIH1cblxuICAubWVudS1jb250ZW50OmhhcygucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcy5pcy1tb2JpbGUtb3Blbikge1xuICAgIGxlZnQ6IDA7XG4gIH1cblxuICAvLyBUaGUgZGVza3RvcCBjb2xsYXBzZSBwcmVmZXJlbmNlIGlzIHBlcnNpc3RlZCBpbiBsb2NhbFN0b3JhZ2VcbiAgLy8gKGF0aGxldGVOYXZDb2xsYXBzZWQpLCBhbmQgaXRzIDcwcHggd2lkdGggcnVsZSBvdXQtc3BlY2lmaWVzIHRoZSBtb2JpbGVcbiAgLy8gd2lkdGggYWJvdmUuIEFuIG9mZi1jYW52YXMgZHJhd2VyIGhhcyBubyByZWFzb24gdG8gYmUgaWNvbi1vbmx5LCBhbmQgYXQgNzBweFxuICAvLyB0aGUgbGFiZWxzIGJlbG93IHdlcmUgcmVuZGVyZWQgYnV0IGNsaXBwZWQgYnkgb3ZlcmZsb3cteDogaGlkZGVuLlxuICAubWVudS1jb250ZW50OmhhcygucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcy5pcy1jb2xsYXBzZWQpIHtcbiAgICB3aWR0aDogJGF0aGxldGUtc2lkZWJhci13aWR0aDtcbiAgICBtaW4td2lkdGg6ICRhdGhsZXRlLXNpZGViYXItd2lkdGg7XG4gICAgbWF4LXdpZHRoOiAkYXRobGV0ZS1zaWRlYmFyLXdpZHRoO1xuICB9XG5cbiAgLy8gQ29udGVudCBzcGFucyBmdWxsIHdpZHRoIG9uIG1vYmlsZS4gVGhlIC5pcy1jb2xsYXBzZWQgdmFyaWFudCBpcyBsaXN0ZWRcbiAgLy8gZXhwbGljaXRseSBiZWNhdXNlIHRoZSBkZXNrdG9wIHJ1bGUgdGhhdCBpbmRlbnRzIGNvbnRlbnQgYnkgNzBweCBjYXJyaWVzIHRoZVxuICAvLyBzYW1lIHNwZWNpZmljaXR5LCBhbmQgd291bGQgb3RoZXJ3aXNlIHdpbiBieSBtYXRjaGluZyBhIGxvbmdlciBzZWxlY3Rvci5cbiAgLm1haW4tdmlldzpoYXMoPiAubWVudS1jb250ZW50IC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zKSxcbiAgLm1haW4tdmlldzpoYXMoPiAubWVudS1jb250ZW50IC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zLmlzLWNvbGxhcHNlZCkge1xuICAgID4gLmhlYWRlci1jb250ZW50ICsgKjpub3QoLm1lbnUtY29udGVudCksXG4gICAgPiAubWVudS1jb250ZW50IH4gKiB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICAucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcyB7XG4gICAgLy8gSGlkZSB0aGUgZGVza3RvcCBjb2xsYXBzZSBoZWFkZXIsIHNob3cgdGhlIG9mZi1jYW52YXMgYnVyZ2VyXG4gICAgLnNpZGViYXItaGVhZGVyIHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgLy8gU2VhdGVkIGluIHRoZSBkYXJrIGhlYWRlcidzIHRvcC1sZWZ0IGNlbGwgcmF0aGVyIHRoYW4gZmxvYXRpbmcgb3ZlciBjb250ZW50LlxuICAgIC5zaWRlYmFyLWJ1cmdlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAkYXRobGV0ZS1oZWFkZXItaGVpZ2h0LW1vYmlsZTtcbiAgICAgIGhlaWdodDogJGF0aGxldGUtaGVhZGVyLWhlaWdodC1tb2JpbGU7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIHotaW5kZXg6IDk1MDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAvLyBPbiBtb2JpbGUgdGhlIHJhaWwgaXMgYWx3YXlzIGZ1bGwgd2lkdGgsIHNvIGtlZXAgbGFiZWxzIHZpc2libGVcbiAgICAmLmlzLWNvbGxhcHNlZCB7XG4gICAgICAubWVudS1pdGVtIHsganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gICAgICAubWVudS1pdGVtX19sYWJlbCB7IGRpc3BsYXk6IGlubGluZTsgfVxuICAgIH1cblxuICAgICYucHJvZmlsZS1tZW51LS1wcmFjdGl0aW9uZXIuaXMtY29sbGFwc2VkIHtcbiAgICAgIC5zaWRlYmFyLW1lbWJlcl9faW5mbyB7IGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAuc2lkZWJhci1mb290ZXJfX2FkbWluLWxhYmVsIHsgZGlzcGxheTogaW5saW5lOyB9XG4gICAgICAuc2lkZWJhci1mb290ZXJfX2FkbWluLWJ0biB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTZweDtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEF0aGxldGUgd2VsY29tZSBoZWFkZXIgKGhvbWUgcGFnZSlcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuJHdlbGNvbWUtbGFzdC10ZXN0OiAjN2I1Y2M4O1xuJHdlbGNvbWUtc3RyZWFrOiAjZjA4YTI0O1xuJHdlbGNvbWUtdHJhaW5pbmc6ICMyMGI3Njk7XG5cbi52aWV3LWxheW91dDpoYXMoLmF0aGxldGUtd2VsY29tZS1oZWFkZXIpLFxuLnZpZXctbGF5b3V0OmhhcygudG9kYXktYXNrcykge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4vLyBuZy1pbmNsdWRlIGluamVjdHMgYW4gdW5zdHlsZWQgd3JhcHBlciBiZXR3ZWVuIC52aWV3LWxheW91dCBhbmQgdGhlIGNhcmQsIGFuZFxuLy8gYXMgYSBmbGV4IGl0ZW0gaXRzIGF1dG9tYXRpYyBtaW5pbXVtIHNpemUgcmVzb2x2ZXMgdG8gdGhlIGNhcmQncyBtaW4tY29udGVudFxuLy8gd2lkdGguIEEgZml4ZWQgY2FyZCB3aWR0aCB0aGVyZWZvcmUgYmVjYW1lIGEgZmxvb3IgdGhlIHJvdyBjb3VsZCBub3Qgc2hyaW5rXG4vLyBiZWxvdywgb3ZlcmZsb3dpbmcgdGhlIHZpZXdwb3J0IG9uIG1vYmlsZS4gbWluLXdpZHRoOiAwIHJlbW92ZXMgdGhlIGZsb29yO1xuLy8gZmxleC93aWR0aCBrZWVwIHRoZSB3cmFwcGVyIHNwYW5uaW5nIHRoZSByb3cgc28gdGhlIGNhcmQgc3RpbGwgZmlsbHMgaXQuXG4udmlldy1sYXlvdXQgPiBkaXY6aGFzKD4gLmF0aGxldGUtd2VsY29tZS1oZWFkZXIpLFxuLnZpZXctbGF5b3V0ID4gZGl2Omhhcyg+IC50b2RheS1hc2tzKSB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4udmlldy1sYXlvdXQuYXRobGV0ZS1ob21lLXJvdyB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cblxuLmF0aGxldGUtd2VsY29tZS1oZWFkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMTQ4cHg7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIHBhZGRpbmc6IDE2cHggMjRweCAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICZfX2lubmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMzJweDtcbiAgICBwYWRkaW5nOiAxNnB4IDQwcHggMTZweCAyMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICZfX3Byb2ZpbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDE2cHg7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG5cbiAgJl9fYXZhdGFyIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogOTZweDtcbiAgICBoZWlnaHQ6IDk2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcblxuICAgIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuICB9XG5cbiAgJl9faW5mbyB7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDhweDtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgfVxuXG4gICZfX3RpdGxlLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuXG4gICAgLmF0aGxldGUtd2VsY29tZS1oZWFkZXJfX3RpdGxlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fYWN0aW9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGNvbG9yOiAjOTc2OGViO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICBpIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxuXG4gICZfX2FjdGlvbi1pY29uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgfVxuXG4gIC8vIFNwYWNpbmcgaXMgdGhlIGxhc3QtdGVzdCByb3cncyBnYXAgYW5kIG5vdGhpbmcgZWxzZS4gQSBtYXJnaW4gaGVyZSB3b3VsZCBsYW5kIG9uXG4gIC8vIG9uZSBzaWRlIG9mIHRoZSBzZWNvbmQgZG90IG9ubHkgYW5kIHJlaW50cm9kdWNlIHRoZSB1bmV2ZW4gc2VwYXJhdG9ycy5cbiAgJl9fdGFrZS10ZXN0IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuXG4gICZfX2JhZGdlcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgfVxuXG4gICZfX2JhZGdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwdXJwbGUtMTAwO1xuICAgIGNvbG9yOiAkcHVycGxlLTcwMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAmX19sYXN0LXRlc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG4gICAgY29sb3I6ICM5NzY4ZWI7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgfVxuXG4gICZfX2xhc3QtdGVzdC1kYXRlIHtcbiAgICBjb2xvcjogIzRmNGY0ZjtcbiAgfVxuXG4gICZfX2xhc3QtdGVzdC1zZXAge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGNvbG9yOiAjZDFkMWQxO1xuICB9XG5cbiAgJl9fc3RhdHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiAzNnB4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG5cbiAgJl9fc3RhdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gICZfX3N0YXQtYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLy8gRXZlcnkgdGlsZSBnZXRzIHRoZSBzYW1lIDMycHggaWNvbiBib3ggZXZlbiB0aG91Z2ggdGhlIGdseXBocyBpbnNpZGUgZGlmZmVyIGluXG4gIC8vIHNpemUuIFRoZSB0aWxlcyBhcmUgdG9wLWFsaWduZWQgY29sdW1ucywgc28gYW4gaWNvbiBib3ggdGhhdCBpcyA0cHggc2hvcnRlclxuICAvLyBwdXNoZWQgdGhhdCB0aWxlJ3MgdmFsdWUgYW5kIGxhYmVsIG9udG8gdGhlaXIgb3duIHJvd3MuXG4gICZfX3N0YXQtaWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMzJweDtcbiAgICBoZWlnaHQ6IDMycHg7XG5cbiAgICBzdmcsXG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDMycHg7XG4gICAgICBoZWlnaHQ6IDMycHg7XG4gICAgfVxuXG4gICAgJi0tc3RyZWFrIHtcbiAgICAgIGNvbG9yOiAkd2VsY29tZS1zdHJlYWs7XG4gICAgfVxuXG4gICAgJi0tdHJhaW5pbmcge1xuICAgICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1za2VsIHtcbiAgICAgIGJhY2tncm91bmQ6ICNlY2VjZWY7XG4gICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICBhbmltYXRpb246IGhvbWUtc2tlbGV0b24tcHVsc2UgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICB9XG4gIH1cblxuICAmX19yaW5nLXRyYWNrIHtcbiAgICBmaWxsOiBub25lO1xuICAgIHN0cm9rZTogI2U1ZTVlNTtcbiAgICBzdHJva2Utd2lkdGg6IDMuNTtcbiAgfVxuXG4gICZfX3JpbmctcHJvZ3Jlc3Mge1xuICAgIGZpbGw6IG5vbmU7XG4gICAgc3Ryb2tlOiAkd2VsY29tZS10cmFpbmluZztcbiAgICBzdHJva2Utd2lkdGg6IDMuNTtcbiAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlO1xuICAgIHRyYW5zaXRpb246IHN0cm9rZS1kYXNob2Zmc2V0IDAuM3MgZWFzZTtcbiAgfVxuXG4gICZfX3N0YXQtdmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG5cbiAgICBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fc3RhdC1sYWJlbCB7XG4gICAgbWFyZ2luLXRvcDogMnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gIH1cblxuICAmX19zdGF0LXN1YmxhYmVsIHtcbiAgICBtYXJnaW4tdG9wOiAxcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgfVxuXG4gICZfX3NrZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZWNlY2VmO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBhbmltYXRpb246IGhvbWUtc2tlbGV0b24tcHVsc2UgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcblxuICAgICYtLXZhbHVlIHtcbiAgICAgIHdpZHRoOiA0LjVlbTtcbiAgICAgIGhlaWdodDogMWVtO1xuICAgIH1cblxuICAgICYtLWxhYmVsIHtcbiAgICAgIHdpZHRoOiA3LjVlbTtcbiAgICAgIGhlaWdodDogMWVtO1xuICAgIH1cblxuICAgICYtLWxhYmVsLXdpZGUge1xuICAgICAgd2lkdGg6IDExZW07XG4gICAgfVxuXG4gICAgJi0tc3VibGFiZWwge1xuICAgICAgd2lkdGg6IDVlbTtcbiAgICAgIGhlaWdodDogMWVtO1xuICAgIH1cbiAgfVxuXG4gICZfX2F2YXRhci0tc2tlbGV0b24ge1xuICAgIGJhY2tncm91bmQ6ICNlY2VjZWY7XG4gICAgYW5pbWF0aW9uOiBob21lLXNrZWxldG9uLXB1bHNlIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gIH1cblxuICAmX19za2VsZXRvbi10aXRsZSB7XG4gICAgd2lkdGg6IDE4MHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLWJhZGdlIHtcbiAgICB3aWR0aDogNjRweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKHRhYmxldCkge1xuICAuYXRobGV0ZS13ZWxjb21lLWhlYWRlciB7XG4gICAgJl9faW5uZXIge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgZ2FwOiAyNHB4O1xuICAgICAgcGFkZGluZzogMTZweCAyNHB4IDE2cHggMjBweDtcbiAgICB9XG5cbiAgICAmX19zdGF0cyB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xuICAgICAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBnYXA6IDE2cHg7XG4gICAgfVxuXG4gICAgJl9fc3RhdCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChtb2JpbGUpIHtcbiAgLmF0aGxldGUtd2VsY29tZS1oZWFkZXIge1xuICAgIHBhZGRpbmc6IDE2cHggMTZweCAwO1xuXG4gICAgJl9faW5uZXIge1xuICAgICAgcGFkZGluZzogMTZweCAxNnB4IDE2cHggMTZweDtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDIycHg7XG4gICAgfVxuXG4gICAgJl9fYXZhdGFyIHtcbiAgICAgIHdpZHRoOiA1NnB4O1xuICAgICAgaGVpZ2h0OiA1NnB4O1xuICAgIH1cblxuICAgIC8vIFN0YXlzIGEgcm93OiBzdGFja2luZyB0aGUgdGhyZWUgdGlsZXMgaW50byBhIGNvbHVtbiBhZGRlZCB+MjEwcHggb2YgaGVpZ2h0LlxuICAgICZfX3N0YXRzIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgICBnYXA6IDEycHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmctdG9wOiAxNnB4O1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICB9XG5cbiAgICAmX19zdGF0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKHBob25lKSB7XG4gIC5hdGhsZXRlLXdlbGNvbWUtaGVhZGVyIHtcbiAgICBwYWRkaW5nOiAxNnB4IDEycHggMDtcblxuICAgICZfX2lubmVyIHtcbiAgICAgIHBhZGRpbmc6IDE0cHg7XG4gICAgICBnYXA6IDE0cHg7XG4gICAgfVxuXG4gICAgJl9fcHJvZmlsZSB7XG4gICAgICBnYXA6IDEycHg7XG4gICAgfVxuXG4gICAgJl9fYXZhdGFyIHtcbiAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB9XG5cbiAgICAmX19iYWRnZSB7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICB9XG5cbiAgICAmX19zdGF0cyB7XG4gICAgICBnYXA6IDhweDtcbiAgICAgIHBhZGRpbmctdG9wOiAxNHB4O1xuICAgIH1cblxuICAgICZfX3N0YXQge1xuICAgICAgZ2FwOiA2cHg7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuXG4gICAgJl9fc3RhdC1pY29uLFxuICAgICZfX3N0YXQtaWNvbi0tc3RyZWFrLFxuICAgICZfX3N0YXQtaWNvbi0tcHJvZ3JhbXMge1xuICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICBoZWlnaHQ6IDI0cHg7XG5cbiAgICAgIHN2ZyxcbiAgICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3RhdC1pY29uLS10cmFpbmluZyBzdmcge1xuICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgfVxuXG4gICAgJl9fc3RhdC12YWx1ZSB7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBsaW5lLWhlaWdodDogMS4yNTtcblxuICAgICAgc3BhbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdGF0LWxhYmVsIHtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgIH1cblxuICAgICZfX3N0YXQtc3VibGFiZWwge1xuICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgfVxuXG4gICAgJl9fc2tlbGV0b24tdGl0bGUge1xuICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgd2lkdGg6IDE0MHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQcm9ncmVzcyBJbnNpZ2h0cyAoYXRobGV0ZSBob21lKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4kaW5zaWdodHMtbGluazogJGJsdWU7XG4kaW5zaWdodHMtdXA6ICMyMGI3Njk7XG4kaW5zaWdodHMtZG93bjogI2M0MmEzYjtcblxuLnByb2dyZXNzLWluc2lnaHRzIHtcbiAgcGFkZGluZzogMTZweCAyNHB4IDA7XG5cbiAgLy8gTmV1dHJhbGl6ZSBnbG9iYWwgYnV0dG9uIHsgbWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZSB9XG4gIGJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gIH1cblxuICBidXR0b24gKyBidXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG5cbiAgJl9fcGFuZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDQ5MnB4O1xuICAgIGhlaWdodDogMTQ1cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICY6aGFzKC5wcm9ncmVzcy1pbnNpZ2h0c19fZW1wdHkpIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1pbi1oZWlnaHQ6IDE0NXB4O1xuICAgICAgcGFkZGluZy10b3A6IDE2cHg7XG4gICAgfVxuICB9XG5cbiAgJl9faGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTZweDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgfVxuXG4gICZfX2xpbmsge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBnYXA6IDE0cHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkaW5zaWdodHMtbGluaztcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC44NTtcbiAgICB9XG4gIH1cblxuICAmX19saW5rLWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuXG4gICZfX2VtcHR5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IDhweCAxNnB4IDhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICZfX2VtcHR5LXRpdGxlIHtcbiAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBjb2xvcjogIzRmNGY0ZjtcbiAgfVxuXG4gICZfX2VtcHR5LWRlc2NyaXB0aW9uIHtcbiAgICBtYXJnaW46IDAgMCAxNHB4O1xuICAgIHdpZHRoOiA0NTJweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjNkQ2RDZEO1xuICB9XG5cbiAgJl9fZW1wdHktY3RhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDE2NnB4O1xuICAgIG1pbi13aWR0aDogMTY2cHg7XG4gICAgbWF4LXdpZHRoOiAxNjZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgbWluLWhlaWdodDogMzZweDtcbiAgICBtYXgtaGVpZ2h0OiAzNnB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAkYmx1ZTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAwLjk7XG4gICAgfVxuICB9XG5cbiAgJl9fY2FyZHMsXG4gICZfX3NrZWxldG9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgZmxleDogMCAwIDgzcHg7XG4gICAgaGVpZ2h0OiA4M3B4O1xuICAgIG1pbi1oZWlnaHQ6IDgzcHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICZfX2NhcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJhY2tncm91bmQ6ICNGRkZGRkY7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGJsYWNrLTIwMDtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fbWV0cmljIHtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogIzZENkQ2RDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIH1cblxuICAmX19zY29yZS1ibG9jayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gICZfX3Njb3JlIHtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogIzAwMDAwMDtcbiAgfVxuXG4gICZfX2NoYW5nZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDNweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgICYtLXVwIHtcbiAgICAgIGNvbG9yOiAkaW5zaWdodHMtdXA7XG4gICAgfVxuXG4gICAgJi0tZG93biB7XG4gICAgICBjb2xvcjogJGluc2lnaHRzLWRvd247XG4gICAgfVxuICB9XG5cbiAgJl9fdHJlbmQtaWNvbiB7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gIC5wcm9ncmVzcy1pbnNpZ2h0cyB7XG4gICAgcGFkZGluZzogMTJweCAxNnB4IDA7XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChwaG9uZSkge1xuICAucHJvZ3Jlc3MtaW5zaWdodHMge1xuICAgIHBhZGRpbmc6IDEycHggMTJweCAwO1xuXG4gICAgJl9fcGFuZWwge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgfVxuXG4gICAgJl9fY2FyZCB7XG4gICAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgfVxuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgIHBhZGRpbmc6IDAgMTJweDtcbiAgICB9XG5cbiAgICAmX19tZXRyaWMge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB9XG5cbiAgICAmX19lbXB0eS1jdGEge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuICB9XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFRvZGF5IGFza3MgKGF0aGxldGUgaG9tZSlcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuJHRvZGF5LWFza3MtYWxlcnQtYmc6ICNmZmZhZjA7XG4kdG9kYXktYXNrcy1wcmV2aWV3LWdyZWVuOiAjN2NiYzZlO1xuJHRvZGF5LWFza3MtcHJldmlldy1ncmVlbi1saWdodDogI2M4ZTZiODtcblxuLnRvZGF5LWFza3Mge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMTQ4cHg7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIHBhZGRpbmc6IDE2cHggMjRweCAwO1xuXG4gICZfX3BhbmVsIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDE2LCAyNCwgNDAsIDAuMDQpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmX19oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMjBweCAyMHB4IDE2cHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgfVxuXG4gICZfX3BhbmVsOmhhcygudG9kYXktYXNrc19fZXhwYW5kYWJsZSk6bm90KDpoYXMoLnRvZGF5LWFza3NfX2FsZXJ0LXJvdykpICZfX2hlYWRlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRyb29tLW11dGVkO1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgfVxuXG4gICZfX2NoZXZyb24ge1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuXG4gICZfX2FsZXJ0LXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAgMjBweCAxNnB4IDEycHg7XG4gIH1cblxuICAmX19wYW5lbDpoYXMoLnRvZGF5LWFza3NfX2V4cGFuZGFibGUpICZfX2FsZXJ0LXJvdyB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRyb29tLW11dGVkO1xuICB9XG5cbiAgJl9fYWxlcnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCAwIDAgMTZweDtcbiAgICBtaW4taGVpZ2h0OiA0NHB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGFtYmVyLTEwMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogJHRvZGF5LWFza3MtYWxlcnQtYmc7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBjb2xvcjogJGFtYmVyO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gICZfX2FsZXJ0LWljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIGJvcmRlcjogMS41cHggc29saWQgJGFtYmVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBjb2xvcjogJGFtYmVyO1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIC5mYSB7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG4gIH1cblxuICAmX19hbGVydC10ZXh0IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGNvbG9yOiAkYW1iZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAmX19hbGVydC1jaGV2cm9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleDogMCAwIDQ0cHg7XG4gICAgd2lkdGg6IDQ0cHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxuXG4gICZfX2JvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWluLWhlaWdodDogMjY0cHg7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLy8gUHJlZmVycmVkIDQyMHB4LCBidXQgc2hyaW5rIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGNhcmQgb24gYSBuYXJyb3cgZGVza3RvcFxuICAvLyBpbnN0ZWFkIG9mIHBpbm5pbmcgdGhpcyBjb2x1bW4gYW5kIHNxdWVlemluZyBvbmx5IFwiTmV4dCB0byBDb21wbGV0ZVwiLlxuICAmX19saXN0IHtcbiAgICBmbGV4OiAwIDEgNDIwcHg7XG4gICAgbWF4LXdpZHRoOiA0MjBweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDA7XG4gIH1cblxuICAmX19pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxNnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMnB4IDIwcHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgICYtLXNlbGVjdGVkIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgICAudG9kYXktYXNrc19fYmFkZ2U6bm90KC50b2RheS1hc2tzX19iYWRnZS0tZG9uZSkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICAgICAgY29sb3I6ICRwdXJwbGUtOTAwO1xuICAgICAgfVxuXG4gICAgICAudG9kYXktYXNrc19faXRlbS1uYW1lIHtcbiAgICAgICAgY29sb3I6ICRibGFjay05MDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0tY29tcGxldGVkIHtcbiAgICAgIC50b2RheS1hc2tzX19pdGVtLW5hbWUge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgY29sb3I6ICRibGFjay03MDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fYmFkZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDIycHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAkYmxhY2stMTAwO1xuICAgIGNvbG9yOiAkYmxhY2stNDAwO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cbiAgICAmLS1kb25lIHtcbiAgICAgIGJhY2tncm91bmQ6ICNlN2Y1ZWU7XG4gICAgICBjb2xvcjogIzEyYjc2YTtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICB9XG4gIH1cblxuICAmX19pdGVtLW5hbWUge1xuICAgIG1hcmdpbjogMDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG4gIH1cblxuICAmX19kZXRhaWwge1xuICAgIC8vIFByZWZlcnJlZCB3aWR0aCBvZiBwYWRkaW5nICsgYWN0aW9uICsgZ2FwICsgcHJldmlldywgc28gdGhpcyBjb2x1bW5cbiAgICAvLyBzaHJpbmtzIHdpdGggdGhlIGxpc3Qgb24gYSBuYXJyb3cgZGVza3RvcCBpbnN0ZWFkIG9mIGFic29yYmluZyB0aGVcbiAgICAvLyBsZWZ0b3ZlciBhZnRlciBhIHBpbm5lZCA0MjBweCBsaXN0LlxuICAgIGZsZXg6IDEgMSA3MjRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogNTZweDtcbiAgICBwYWRkaW5nOiAyMHB4IDIwcHggMjBweCAzMnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmYmY5ZmY7XG4gICAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICAgIHVybCgnLi4vLi4vaW1hZ2VzL3RvZGF5LWJhY2tncm91bmQucG5nJyksXG4gICAgICBsaW5lYXItZ3JhZGllbnQoMjc3Ljg5ZGVnLCAjZmJmOWZmIDExLjk5JSwgI2YwZThmZiAyOS42OCUsICNlY2UyZmYgNDUuOTElLCAjZWVlNmZmIDYxLjI1JSwgI2ZmZmZmZiA5MS44NiUpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciByaWdodCwgY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXIsIGNvdmVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6IGxpZ2h0ZW4sIG5vcm1hbDtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX19kb25lIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogMTJweCAxNnB4O1xuICB9XG5cbiAgJl9fZG9uZS1pY29uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiA0OHB4O1xuICAgIGhlaWdodDogNDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTAwO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgfVxuXG4gICZfX2RvbmUtZXllYnJvdyB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIH1cblxuICAmX19kb25lLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgfVxuXG4gICZfX2FjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAwIDEgMjEycHg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDI0cHg7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAyMTJweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX19hY3Rpb24tY29weSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogOHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJl9fZXllYnJvdyB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIH1cblxuICAmX19hY3Rpb24tdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbiAgfVxuXG4gICZfX2N0YSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAyMTJweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDQ0cHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTAwO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC45MjtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fY3RhLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gIH1cblxuICAmX19jdGEtYXJyb3cge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gICZfX3ByZXZpZXcge1xuICAgIGZsZXg6IDAgMSA0MDRweDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDQwNHB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMTYsIDI0LCA0MCwgMC4wMik7XG4gIH1cblxuICAmX19wcmV2aWV3LWFydCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDE1NnB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICR0b2RheS1hc2tzLXByZXZpZXctZ3JlZW4tbGlnaHQgMCUsICR0b2RheS1hc2tzLXByZXZpZXctZ3JlZW4gMTAwJSk7XG5cbiAgICAvLyBUaGUgc2NoZWR1bGUgdGh1bWJuYWlsIGlzIGFuIGV4ZXJjaXNlIHZpZGVvJ3MgcG9zdGVyIGZyYW1lLCBhbmQgdGhvc2UgYXJlIG5vdFxuICAgIC8vIGFsbCBvbmUgcmF0aW8sIHNvIHRoZSBmaXhlZCAxNTZweCBiYW5kIGNyb3BwZWQgd2hpY2hldmVyIGVkZ2UgZGlkIG5vdCBtYXRjaC5cbiAgICAvLyBMZXR0aW5nIHRoZSBwaWN0dXJlIHNldCB0aGUgaGVpZ2h0IHNob3dzIGl0IHdob2xlOyAudG9kYXktYXNrc19fcHJldmlldyBjbGlwc1xuICAgIC8vIHdpdGggb3ZlcmZsb3c6IGhpZGRlbiwgc28gdGhlIGNhcmQncyByb3VuZGVkIGNvcm5lcnMgYXJlIHVuYWZmZWN0ZWQuIFNhbWUgY2FsbFxuICAgIC8vIGFzIC5kYWlseS1wcm9ncmFtX190aHVtYi4gVGhlIHJlYWRpbmVzcyBwbGFjZWhvbGRlciBpcyBhdXRob3JlZCBhdCA4MDh4MzEyLFxuICAgIC8vIHdoaWNoIGxhbmRzIGJhY2sgb24gMTU2cHggaW4gdGhlIDQwNHB4IGNhcmQsIHNvIHRoYXQgdmFyaWFudCBpcyB1bmNoYW5nZWQuXG4gICAgJi0tcGhvdG8ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmX19wcmV2aWV3LXBob3RvIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICAmX19wcmV2aWV3LWljb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogNDhweDtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDQ2LCAxMjUsIDUwLCAwLjM1KTtcblxuICAgIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgIGZpbHRlcjogYnJpZ2h0bmVzcygwKSBpbnZlcnQoMSk7XG4gICAgfVxuICB9XG5cbiAgJl9fcHJldmlldy1ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogOHB4IDEycHggMTJweDtcbiAgfVxuXG4gICZfX3ByZXZpZXctbmFtZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMxMjBkMWM7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gIH1cblxuICAvLyBQbGFpbiBkZXNjcmlwdGlvbiB1bmRlciB0aGUgbmFtZSwgZm9yIGFza3Mgd2hvc2UgY2F0ZWdvcnkgaXMgcHJvc2UgcmF0aGVyIHRoYW4gYSB0YWcuXG4gICZfX3ByZXZpZXctc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICB9XG5cbiAgJl9fcHJldmlldy10YWdzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAmX19wcmV2aWV3LXRhZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgICBwYWRkaW5nOiAycHggOHB4O1xuICAgIGJhY2tncm91bmQ6ICRibGFjay0xMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5mYSB7XG4gICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG4gIH1cblxuICAmX19wcmV2aWV3LXRhZy1pY29uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTJweDtcbiAgICBoZWlnaHQ6IDEycHg7XG4gICAgY29sb3I6IGluaGVyaXQ7XG5cbiAgICAvLyBSYXN0ZXIgdmFyaWFudCAodGhlIHByYWN0aXRpb25lci10aWVyIGJhZGdlKSAtIHNpemVkIGhlcmUgc28gYSBnbG9iYWwgYGltZ2BcbiAgICAvLyBydWxlIGluIGVpdGhlciBidW5kbGUgY2Fubm90IHN0cmV0Y2ggaXQuXG4gICAgJi0taW1nIHtcbiAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQod2lkZS1kb3duKSB7XG4gIC50b2RheS1hc2tzIHtcbiAgICAmX19kZXRhaWwge1xuICAgICAgZ2FwOiAyNHB4O1xuICAgICAgcGFkZGluZzogMjBweDtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZCh0YWJsZXQpIHtcbiAgLnRvZGF5LWFza3Mge1xuICAgICZfX2JvZHkge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgIGZsZXg6IG5vbmU7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgICAgIHBhZGRpbmc6IDhweCAwO1xuICAgIH1cblxuICAgICZfX2RldGFpbCB7XG4gICAgICBmbGV4OiBub25lO1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgcGFkZGluZzogMjRweCAyMHB4O1xuICAgICAgZ2FwOiAyMHB4O1xuICAgIH1cblxuICAgIC8vIFN0YWNrZWQgbGF5b3V0OiBkcm9wIHRoZSBkZXNrdG9wIGZsZXgtYmFzaXMgc28gaXQgaXMgbm90IHRyZWF0ZWQgYXMgaGVpZ2h0LlxuICAgICZfX2FjdGlvbiB7XG4gICAgICBmbGV4OiBub25lO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9fcHJldmlldyB7XG4gICAgICBmbGV4OiBub25lO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtd2lkdGg6IDQwNHB4O1xuICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKG1vYmlsZSkge1xuICAudG9kYXktYXNrcyB7XG4gICAgcGFkZGluZzogMTJweCAxNnB4IDA7XG5cbiAgICAmX19oZWFkZXIge1xuICAgICAgcGFkZGluZzogMTRweCAxNnB4O1xuICAgIH1cblxuICAgIC8vIE9uY2UgdGhlIGJvZHkgc3RhY2tzLCB0aGUgYWN0aW9uIGNvbHVtbiBpcyB0aGUgY2FyZCdzIG9ubHkgbGVmdC1hbGlnbmVkXG4gICAgLy8gYmxvY2ssIHNvIGV5ZWJyb3csIHRpdGxlLCBhbmQgQ1RBIGFyZSBjZW50ZXJlZCB0byBtYXRjaCB0aGUgcGFuZWwgYWJvdmVcbiAgICAvLyBhbmQgdGhlIHByZXZpZXcgYmVsb3cuIERlc2t0b3Aga2VlcHMgdGhlIGZsZXgtc3RhcnQgY29sdW1uLlxuICAgICZfX2FjdGlvbixcbiAgICAmX19hY3Rpb24tY29weSB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgICZfX2FsZXJ0LXJvdyB7XG4gICAgICBwYWRkaW5nOiAwIDE2cHggMTJweCA4cHg7XG4gICAgfVxuXG4gICAgJl9fYWxlcnQtdGV4dCB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQocGhvbmUpIHtcbiAgLnRvZGF5LWFza3Mge1xuICAgIHBhZGRpbmc6IDEwcHggMTJweCAwO1xuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICB9XG5cbiAgICAvLyBSZWxlYXNlIHRoZSAyNjRweCBmbG9vciBub3cgdGhhdCB0aGUgYm9keSBpcyBzdGFja2VkLlxuICAgICZfX2JvZHkge1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICB9XG5cbiAgICAmX19kZXRhaWwge1xuICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgIGdhcDogMTRweDtcbiAgICB9XG5cbiAgICAmX19hY3Rpb24ge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uLWNvcHkge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB9XG5cbiAgICAmX19wcmV2aWV3IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cbiAgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBNeSBTY2hlZHVsZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4kbXktc2NoZWR1bGUtdGl0bGU6ICMxYTFhMWE7XG4kbXktc2NoZWR1bGUtbXV0ZWQ6ICM4YThhOGE7XG4kbXktc2NoZWR1bGUtYm9yZGVyOiAjZThlOGU4O1xuJG15LXNjaGVkdWxlLWFjY2VudDogIzViM2E5ZTtcbiRteS1zY2hlZHVsZS1hY2NlbnQtYm9yZGVyOiAjOGE3MGQ2O1xuJG15LXNjaGVkdWxlLWNvbnRyb2wtYmc6ICNmM2YzZjQ7XG4kbXktc2NoZWR1bGUtY29udHJvbC1ib3JkZXI6ICNkOGQ4ZDg7XG5cbi5hdGhsZXRlLWhvbWUtcm93IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgcGFkZGluZzogMTZweCAwIDMycHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgJl9faW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgZ2FwOiAyMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTE0OHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBwYWRkaW5nOiAwIDI0cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gIC8vIFNocmlua2FibGU6IHRoZSByb3cgbmVlZHMgMTE0OHB4ICg1ODggKyA0OTIgKyAyMCBnYXAgKyA0OCBwYWRkaW5nKSBhbmQgdGhlXG4gIC8vIHNpZGViYXIgZWF0cyBhbm90aGVyIDI0MHB4LCBzbyBmbGV4LXNocmluazogMCBvdmVyZmxvd2VkIGJldHdlZW4gdGhlXG4gIC8vIGNvbGxhcHNlIGJyZWFrcG9pbnQgYW5kIH4xMzg4cHguXG4gICZfX2NhbGVuZGFyIHtcbiAgICBmbGV4OiAxIDEgNTg4cHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gICZfX2luc2lnaHRzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIGZsZXg6IDEgMSA0OTJweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLm15LXNjaGVkdWxlLXdyYXAge1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIFRoZSByb3cncyBjb2x1bW5zIG93biB0aGUgd2lkdGggaGVyZSAoNTg4LzQ5MiBvbiBkZXNrdG9wLCAxMDAlIG9uY2VcbiAgLy8gc3RhY2tlZCksIHNvIHRoZSBjYXJkcyBtdXN0IG5vdCByZS1jYXAgdGhlbXNlbHZlcy5cbiAgLm15LXNjaGVkdWxlIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAucHJvZ3Jlc3MtaW5zaWdodHMge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAucHJvZ3Jlc3MtaW5zaWdodHNfX3BhbmVsIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAudXBjb21pbmctc2Vzc2lvbiB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC51cGNvbWluZy1zZXNzaW9uX19wYW5lbCB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICB9XG5cbiAgLmJvZHltYXAtY2FyZCB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC5ib2R5bWFwLWNhcmRfX3BhbmVsIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZCh0YWJsZXQpIHtcbiAgLmF0aGxldGUtaG9tZS1yb3cge1xuICAgICZfX2lubmVyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgJl9fY2FsZW5kYXIsXG4gICAgJl9faW5zaWdodHMge1xuICAgICAgZmxleDogbm9uZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlbGVhc2UgdGhlIGRlc2t0b3AgaGVpZ2h0IGxvY2s7IHdpZHRoIGlzIGFscmVhZHkgZmx1aWQuXG4gIC5teS1zY2hlZHVsZSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChtb2JpbGUpIHtcbiAgLmF0aGxldGUtaG9tZS1yb3cge1xuICAgIHBhZGRpbmc6IDEycHggMTZweCAyOHB4O1xuXG4gICAgLy8gVGhlIHJvdyBvd25zIHRoZSBndXR0ZXIgb25jZSBzdGFja2VkLiBLZWVwaW5nIHRoZSBpbm5lciBwYWRkaW5nIGhlcmVcbiAgICAvLyB3b3VsZCBpbnNldCBNeSBTY2hlZHVsZSBhbmQgUHJvZ3Jlc3MgSW5zaWdodHMgYW4gZXh0cmEgMjRweCBwZXIgc2lkZSxcbiAgICAvLyBsZWF2aW5nIHRoZW0gbmFycm93ZXIgdGhhbiBldmVyeSBvdGhlciBjYXJkIG9uIHRoZSBwYWdlLlxuICAgICZfX2lubmVyIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQocGhvbmUpIHtcbiAgLmF0aGxldGUtaG9tZS1yb3cge1xuICAgIHBhZGRpbmc6IDEwcHggMTJweCAyNHB4O1xuICB9XG59XG5cbi5teS1zY2hlZHVsZS13cmFwIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTEwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogOHB4IDI0cHggMzJweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLm15LXNjaGVkdWxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAyNHB4O1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA2NDBweDtcbiAgaGVpZ2h0OiA1MjBweDtcbiAgcGFkZGluZzogMjBweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgLy8gTmV1dHJhbGl6ZSBnbG9iYWwgYnV0dG9uIHsgbWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZSB9XG4gIC8vIERvIG5vdCBzZXQgaGVpZ2h0OiBhdXRvIGhlcmUg4oCUIGl0IG91dC1zcGVjaWZpZXMgY29tcG9uZW50IGhlaWdodCBsb2Nrcy5cbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgfVxuXG4gIGJ1dHRvbiArIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICAmX19oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogJG15LXNjaGVkdWxlLXRpdGxlO1xuICB9XG5cbiAgJl9fZWRpdC1saW5rIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZ2FwOiA4cHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkYmx1ZTtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC44NTtcbiAgICB9XG4gIH1cblxuICAmX19lZGl0LWljb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICB9XG5cbiAgJl9fY29udHJvbHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweCA4cHg7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIG1pbi1oZWlnaHQ6IDM2cHg7XG4gICAgbWF4LWhlaWdodDogMzZweDtcblxuICAgICYtLW1vbnRoIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB9XG4gIH1cblxuICAmX193ZWVrLFxuICAmX19tb250aCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gICZfX3RvZGF5LWJ0biB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgbWluLWhlaWdodDogMzZweDtcbiAgICBtYXgtaGVpZ2h0OiAzNnB4O1xuICAgIHBhZGRpbmc6IDAgMTJweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkbXktc2NoZWR1bGUtY29udHJvbC1ib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6ICRteS1zY2hlZHVsZS1jb250cm9sLWJnO1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigkbXktc2NoZWR1bGUtY29udHJvbC1iZywgMyUpO1xuICAgIH1cbiAgfVxuXG4gICZfX25hdiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBoZWlnaHQ6IDM2cHg7XG5cbiAgICAmLS1jb21wYWN0IHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cbiAgfVxuXG4gICZfX25hdi1idG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDMycHg7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIG1pbi1oZWlnaHQ6IDMycHg7XG4gICAgbWF4LWhlaWdodDogMzJweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRteS1zY2hlZHVsZS10aXRsZTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgLmZhIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRteS1zY2hlZHVsZS1jb250cm9sLWJnO1xuICAgIH1cbiAgfVxuXG4gICZfX3JhbmdlIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogIzAwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgJl9fcmFuZ2UtZW1waGFzaXMge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH1cblxuICAmX19yYW5nZS1pY29uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgfVxuXG4gICZfX3RvZ2dsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTMzcHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIHBhZGRpbmc6IDRweDtcbiAgICBnYXA6IDJweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTdlN2U3O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjZmNmY2O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAmX190b2dnbGUtYnRuIHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJG15LXNjaGVkdWxlLW11dGVkO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICYuaXMtYWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICBjb2xvcjogJG15LXNjaGVkdWxlLXRpdGxlO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmX19tb250aC1uYXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG5cbiAgJl9fbW9udGgtbmFtZSB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRteS1zY2hlZHVsZS10aXRsZTtcbiAgfVxuXG4gICZfX2RheS1zdHJpcCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg3LCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgZ2FwOiA0cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA5MHB4O1xuICAgIG1pbi1oZWlnaHQ6IDkwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgJl9fZGF5LWNlbGwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBoZWlnaHQ6IDkwcHg7XG4gICAgbWluLWhlaWdodDogOTBweDtcbiAgICBtYXgtaGVpZ2h0OiA5MHB4O1xuICAgIHBhZGRpbmc6IDEycHggMnB4IDEwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICYuaXMtc2VsZWN0ZWQge1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgICBib3JkZXItY29sb3I6ICRteS1zY2hlZHVsZS1hY2NlbnQtYm9yZGVyO1xuICAgIH1cblxuICAgICY6aG92ZXI6bm90KC5pcy1zZWxlY3RlZCkge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjAzKTtcbiAgICB9XG4gIH1cblxuICAmX19kYXktbmFtZSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICRteS1zY2hlZHVsZS1tdXRlZDtcbiAgfVxuXG4gICZfX2RheS1udW1iZXIge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAkbXktc2NoZWR1bGUtdGl0bGU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgfVxuXG4gICZfX2RheS1kb3RzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAzcHg7XG4gICAgbWluLWhlaWdodDogOHB4O1xuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgfVxuXG4gICZfX2RvdCB7XG4gICAgd2lkdGg6IDVweDtcbiAgICBoZWlnaHQ6IDVweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogJG15LXNjaGVkdWxlLWFjY2VudDtcbiAgfVxuXG4gICZfX2RheS1zdW1tYXJ5IHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogJG15LXNjaGVkdWxlLW11dGVkO1xuICB9XG5cbiAgJl9fZGF5LXN1bW1hcnktZGF0ZSB7XG4gICAgY29sb3I6ICRteS1zY2hlZHVsZS10aXRsZTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICB9XG5cbiAgJl9fZGF5LXN1bW1hcnktd2Vla2RheSB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxuXG4gICZfX2RheS1zdW1tYXJ5LXJlc3Qge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIH1cblxuICAmX19kYXktc3VtbWFyeS1tZXRhIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGNvbG9yOiAkbXktc2NoZWR1bGUtbXV0ZWQ7XG4gIH1cblxuICAmX190cmFpbmluZ3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG4gIH1cblxuICAmX190cmFpbmluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTRweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkbXktc2NoZWR1bGUtYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBib3JkZXItY29sb3I6IGRhcmtlbigkbXktc2NoZWR1bGUtYm9yZGVyLCA4JSk7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmFmYWZhO1xuICAgIH1cbiAgfVxuXG4gICZfX3RyYWluaW5nLXRodW1iIHtcbiAgICBmbGV4OiAwIDAgNDhweDtcbiAgICB3aWR0aDogNDhweDtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIGJhY2tncm91bmQ6ICRteS1zY2hlZHVsZS1jb250cm9sLWJnO1xuICB9XG5cbiAgJl9fdHJhaW5pbmctdGV4dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMnB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gICZfX3RyYWluaW5nLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJG15LXNjaGVkdWxlLXRpdGxlO1xuICB9XG5cbiAgJl9fdHJhaW5pbmctbmFtZSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAkbXktc2NoZWR1bGUtbXV0ZWQ7XG4gIH1cblxuICAmX19lbXB0eSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDM2cHggMTZweCAyMHB4O1xuXG4gICAgJi0tbW9kYWwge1xuICAgICAgcGFkZGluZzogMjhweCAxMnB4O1xuICAgIH1cbiAgfVxuXG4gICZfX2VtcHR5LW1lc3NhZ2Uge1xuICAgIG1hcmdpbjogMCAwIDIwcHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGNvbG9yOiAkbXktc2NoZWR1bGUtbXV0ZWQ7XG4gIH1cblxuICAmX19lbXB0eS1jdGEge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIG1pbi1oZWlnaHQ6IDM2cHg7XG4gICAgbWF4LWhlaWdodDogMzZweDtcbiAgICBwYWRkaW5nOiA4cHggMTZweCA4cHggMTJweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6ICRibHVlO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IGRhcmtlbigkYmx1ZSwgNiUpO1xuICAgIH1cbiAgfVxuXG4gICZfX2VtcHR5LWN0YS1pY29uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAvLyBJY29uIGFzc2V0IGlzIHB1cnBsZTsgaW52ZXJ0IHRvIHdoaXRlIG9uIHRoZSBmaWxsZWQgQ1RBXG4gICAgZmlsdGVyOiBicmlnaHRuZXNzKDApIGludmVydCgxKTtcbiAgfVxuXG4gICZfX2VtcHR5LWxpbmsge1xuICAgIG1hcmdpbi10b3A6IDE0cHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJGJsdWU7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAwLjg1O1xuICAgIH1cbiAgfVxuXG4gICZfX2Zvb3Rlci1idG4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNDBweDtcbiAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgIG1heC1oZWlnaHQ6IDQwcHg7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHggMTJweCAxMnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibHVlO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNvbG9yOiAkYmx1ZTtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgfVxuICB9XG5cbiAgJl9fbW9udGgtbGFiZWxzLFxuICAmX19tb250aC1ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDcsIG1pbm1heCgwLCAxZnIpKTtcbiAgfVxuXG4gICZfX21vbnRoLWxhYmVscyB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIHBhZGRpbmc6IDhweCAwO1xuICAgIGJhY2tncm91bmQ6ICNmN2Y3Zjg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICB9XG5cbiAgJl9fbW9udGgtbGFiZWwge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJG15LXNjaGVkdWxlLW11dGVkO1xuICB9XG5cbiAgJl9fbW9udGgtY2VsbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogNHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogNTZweDtcbiAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgIHBhZGRpbmc6IDhweCA0cHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJi5pcy1lbXB0eSB7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAmLmlzLXNlbGVjdGVkIC5teS1zY2hlZHVsZV9fbW9udGgtZGF5LW51bWJlcixcbiAgICAmLmlzLXRvZGF5IC5teS1zY2hlZHVsZV9fbW9udGgtZGF5LW51bWJlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbXktc2NoZWR1bGUtY29udHJvbC1iZztcbiAgICAgIGNvbG9yOiAkbXktc2NoZWR1bGUtdGl0bGU7XG4gICAgfVxuXG4gICAgJi5pcy1zZWxlY3RlZCAubXktc2NoZWR1bGVfX21vbnRoLWRheS1udW1iZXIge1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgICBjb2xvcjogJG15LXNjaGVkdWxlLWFjY2VudDtcbiAgICB9XG4gIH1cblxuICAmX19tb250aC1kYXktbnVtYmVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRteS1zY2hlZHVsZS10aXRsZTtcbiAgfVxuXG4gICZfX21vZGFsIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgaW5zZXQ6IDA7XG4gICAgei1pbmRleDogMTIwMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMjRweDtcbiAgfVxuXG4gICZfX21vZGFsLWJhY2tkcm9wIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjQ1KTtcbiAgfVxuXG4gICZfX21vZGFsLXBhbmVsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgd2lkdGg6IDY0OHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDQ4cHgpO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIHBhZGRpbmc6IDIwcHggMjJweCAyNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMWQxZDE7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3gtc2hhZG93OlxuICAgICAgMCA0cHggNnB4IC0ycHggcmdiYSgxNiwgMjQsIDQwLCAwLjAzKSxcbiAgICAgIDAgMTJweCAxNnB4IC00cHggcmdiYSgxNiwgMjQsIDQwLCAwLjA4KTtcbiAgfVxuXG4gICZfX21vZGFsLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDE0cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRteS1zY2hlZHVsZS1ib3JkZXI7XG4gIH1cblxuICAmX19tb2RhbC10aXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAkbXktc2NoZWR1bGUtdGl0bGU7XG4gIH1cblxuICAmX19tb2RhbC1jbG9zZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgbWluLWhlaWdodDogMjhweDtcbiAgICBtYXgtaGVpZ2h0OiAyOHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJG15LXNjaGVkdWxlLW11dGVkO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJG15LXNjaGVkdWxlLWNvbnRyb2wtYmc7XG4gICAgICBjb2xvcjogJG15LXNjaGVkdWxlLXRpdGxlO1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKG1vYmlsZSkge1xuICAubXktc2NoZWR1bGUtd3JhcCB7XG4gICAgcGFkZGluZzogOHB4IDE2cHggMjhweDtcbiAgfVxuXG4gIC5teS1zY2hlZHVsZSB7XG4gICAgcGFkZGluZzogMjBweDtcblxuICAgIC8vIFdyYXBwaW5nIGlzIHBvaW50bGVzcyB3aGlsZSB0aGUgcm93IGlzIGZyb3plbiBhdCAzNnB4OiB0aGUgb3ZlcmZsb3cganVzdFxuICAgIC8vIGVzY2FwZXMgdGhlIGNhcmQuIExldCBpdCBncm93IGluc3RlYWQuXG4gICAgJl9fY29udHJvbHMge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9fZGF5LW5hbWUge1xuICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgIH1cblxuICAgICZfX2RheS1zdHJpcCB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgIH1cblxuICAgICZfX2RheS1jZWxsIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1pbi1oZWlnaHQ6IDcycHg7XG4gICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgICAgcGFkZGluZzogMTBweCAxcHggOHB4O1xuICAgIH1cblxuICAgICZfX3RyYWluaW5nLXRodW1iIHtcbiAgICAgIGZsZXgtYmFzaXM6IDQwcHg7XG4gICAgICB3aWR0aDogNDBweDtcbiAgICAgIGhlaWdodDogNDBweDtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChwaG9uZSkge1xuICAvLyBBbmNob3JzIHRoZSB2aWV3IHRvZ2dsZSwgd2hpY2ggaXMgbGlmdGVkIG91dCBvZiB0aGUgY3JhbXBlZCBjb250cm9scyByb3cuXG4gIC5teS1zY2hlZHVsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgZ2FwOiAxNnB4O1xuXG4gICAgLy8gVGl0bGUgYW5kIEVkaXQgU2NoZWR1bGUgc3RhY2sgb24gdGhlIGxlZnQgc28gbmVpdGhlciBydW5zIHVuZGVyIHRoZVxuICAgIC8vIHRvZ2dsZSBub3cgcGlubmVkIHRvIHRoZSBjYXJkJ3MgdG9wLXJpZ2h0IGNvcm5lci5cbiAgICAmX19oZWFkZXIge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgZ2FwOiA4cHg7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxMDhweDtcbiAgICB9XG5cbiAgICAmX19jb250cm9scyB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZ2FwOiA4cHg7XG4gICAgfVxuXG4gICAgLy8gQm90aCB2aWV3IHZhcmlhbnRzIHJlbmRlciBhIHRvZ2dsZSwgYnV0IG9ubHkgb25lIGF0IGEgdGltZSAobmctaWYpLCBzbyBhXG4gICAgLy8gc2luZ2xlIGFic29sdXRlIHNsb3Qgc2VydmVzIHdlZWsgYW5kIG1vbnRoIHZpZXcgYWxpa2UuXG4gICAgJl9fdG9nZ2xlIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMTJweDtcbiAgICAgIHJpZ2h0OiAxMnB4O1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nOiAzcHg7XG4gICAgfVxuXG4gICAgLy8gU2l6ZWQgYnkgdGhlaXIgbGFiZWwsIG5vdCBzdHJldGNoZWQ6IHRoZSBjb250YWluZXIgaXMgYXV0by13aWR0aCBub3cuXG4gICAgJl9fdG9nZ2xlLWJ0biB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgIH1cblxuICAgICZfX25hdiB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICByb3ctZ2FwOiA2cHg7XG4gICAgfVxuXG4gICAgJl9fcmFuZ2Uge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB9XG5cbiAgICAmX19tb250aC1uYXYge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgcm93LWdhcDogNnB4O1xuICAgIH1cblxuICAgICZfX2RheS1zdHJpcCB7XG4gICAgICBnYXA6IDJweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG4gICAgfVxuXG4gICAgJl9fZGF5LWNlbGwge1xuICAgICAgbWluLWhlaWdodDogNjBweDtcbiAgICAgIHBhZGRpbmc6IDhweCAwIDZweDtcbiAgICAgIGdhcDogNHB4O1xuICAgIH1cblxuICAgICZfX2RheS1uYW1lIHtcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICB9XG5cbiAgICAmX19kYXktbnVtYmVyIHtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICB9XG5cbiAgICAvLyA3IGNvbHVtbnMgaGF2ZSB0byBmaXQgfjMyNXB4IG9mIGlubmVyIHdpZHRoXG4gICAgJl9fbW9udGgtY2VsbCB7XG4gICAgICBnYXA6IDJweDtcbiAgICAgIG1pbi1oZWlnaHQ6IDQ0cHg7XG4gICAgICBwYWRkaW5nOiA0cHggMDtcbiAgICB9XG5cbiAgICAmX19tb250aC1kYXktbnVtYmVyIHtcbiAgICAgIHdpZHRoOiAyNnB4O1xuICAgICAgaGVpZ2h0OiAyNnB4O1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgIH1cblxuICAgICZfX21vbnRoLWxhYmVsIHtcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICB9XG5cbiAgICAmX190cmFpbmluZy10aHVtYiB7XG4gICAgICBmbGV4LWJhc2lzOiAzNnB4O1xuICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgfVxuICB9XG59XG4iLCIvKiBTaGFyZWQgZmlyc3QtcGFpbnQgcGxhY2Vob2xkZXJzIGZvciBob21lIGRhc2hib2FyZCBjYXJkcy4gUHVsc2UsIGRvbid0XG4gICBzaG93IGVtcHR5LXN0YXRlIGNvcHkg4oCUIHRoYXQgd291bGQgcmVhZCBhcyBcIm5vdGhpbmcgc2NoZWR1bGVkXCIgdGhlbiBqdW1wLiAqL1xuQGtleWZyYW1lcyBob21lLXNrZWxldG9uLXB1bHNlIHtcbiAgMCUsXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjQ1O1xuICB9XG59XG5cbi5ob21lLXNrZWxldG9uLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJhY2tncm91bmQ6ICNlY2VjZWY7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYW5pbWF0aW9uOiBob21lLXNrZWxldG9uLXB1bHNlIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG5cbiAgJi0tYmFkZ2Uge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAyMnB4O1xuICAgIGhlaWdodDogMjJweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIH1cblxuICAmLS1saW5lIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgbWF4LXdpZHRoOiAyMjBweDtcbiAgfVxuXG4gICYtLWxpbmUtc2hvcnQge1xuICAgIGhlaWdodDogMTJweDtcbiAgICB3aWR0aDogOTZweDtcbiAgfVxuXG4gICYtLXByZXZpZXcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTQwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICB9XG5cbiAgJi0tdGh1bWIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA0OHB4O1xuICAgIGhlaWdodDogNDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIH1cblxuICAmLS1kYXkge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIGhlaWdodDogNjRweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIH1cblxuICAmLS1jYXJkIHtcbiAgICBoZWlnaHQ6IDEwMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgfVxufVxuXG4udG9kYXktYXNrc19fc2tlbGV0b24tcm93LFxuLm15LXNjaGVkdWxlX19za2VsZXRvbi10cmFpbmluZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTZweDtcbiAgcGFkZGluZzogMTJweCAyMHB4O1xufVxuXG4udG9kYXktYXNrc19fc2tlbGV0b24tcHJldmlldyB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIHBhZGRpbmc6IDIwcHg7XG59XG5cbi5teS1zY2hlZHVsZV9fc2tlbGV0b24tZGF5cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogOHB4O1xufVxuXG4ubXktc2NoZWR1bGVfX3NrZWxldG9uLXRyYWluaW5nIHtcbiAgcGFkZGluZzogMTJweCAwO1xufVxuXG4ucHJvZ3Jlc3MtaW5zaWdodHNfX2NhcmQtLXNrZWxldG9uIC5ob21lLXNrZWxldG9uLWJsb2NrLS1saW5lIHtcbiAgbWF4LXdpZHRoOiA4OHB4O1xuICBoZWlnaHQ6IDI4cHg7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFVwY29taW5nIHNlc3Npb24gKGF0aGxldGUgaG9tZSDigJQgcmlnaHQgY29sdW1uIHVuZGVyIFByb2dyZXNzIEluc2lnaHRzKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4kdXBjb21pbmctY2FyZC1ib3JkZXI6ICRibGFjay0yMDA7XG4kdXBjb21pbmctbGFiZWw6ICM0ZjRmNGY7XG4kdXBjb21pbmctdmFsdWU6ICMxYTFhMWE7XG4kdXBjb21pbmctcHJpbWFyeTogJGJsdWU7XG4kdXBjb21pbmctZGFuZ2VyOiAjZTg1MDNhO1xuJHVwY29taW5nLW1lbnUtYm9yZGVyOiAjZTBlMGUwO1xuXG4udXBjb21pbmctc2Vzc2lvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDQ5MnB4O1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gIC8vIE5ldXRyYWxpemUgZ2xvYmFsIGJ1dHRvbiB7IG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2UgfVxuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICB9XG5cbiAgYnV0dG9uICsgYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gICZfX3BhbmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA0OTJweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHVwY29taW5nLWNhcmQtYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuXG4gICAgJi0tYm9va2VkLWNvbXBhY3Qge1xuICAgICAgaGVpZ2h0OiAxNzBweDtcbiAgICAgIG1pbi1oZWlnaHQ6IDE3MHB4O1xuICAgICAgbWF4LWhlaWdodDogMTcwcHg7XG4gICAgICAvLyBEbyBub3QgY2xpcCB0aGUga2ViYWIgbWVudTsgaXQgaGFuZ3MgYmVsb3cgdGhlIGZpeGVkLWhlaWdodCBjYXJkLlxuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG5cbiAgICAgIC8vIENlbnRlciB0aGUgYWNjZW50IGJsb2NrIGluIHRoZSBhcmVhIGJlbG93IHRoZSB0aXRsZSBzbyB0aGUgZ2FwIGZyb21cbiAgICAgIC8vIHRoZSB0aXRsZSBiYXNlbGluZSB0byB0aGUgdG9wIG9mIHRoZSBiYXIgbWF0Y2hlcyB0aGUgZ2FwIGZyb20gdGhlIGJhclxuICAgICAgLy8gdG8gdGhlIGNhcmQgYm90dG9tLlxuICAgICAgLnVwY29taW5nLXNlc3Npb25fX2JvZHktLW5vLWpvaW4ge1xuICAgICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIGdhcDogMDtcbiAgICAgICAgcGFkZGluZzogMCAyMHB4O1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIH1cblxuICAgICAgLnVwY29taW5nLXNlc3Npb25fX3Nlc3Npb24sXG4gICAgICAudXBjb21pbmctc2Vzc2lvbl9fbWVudSB7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgfVxuXG4gICAgICAudXBjb21pbmctc2Vzc2lvbl9fbWVudS1saXN0IHtcbiAgICAgICAgei1pbmRleDogMzA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9faGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTZweDtcbiAgICBwYWRkaW5nOiAxNnB4IDIwcHggMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgfVxuXG4gICZfX2xpbmsge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBnYXA6IDE0cHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkdXBjb21pbmctcHJpbWFyeTtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC44NTtcbiAgICB9XG4gIH1cblxuICAmX19saW5rLWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuXG4gICZfX3NrZWxldG9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIC5ob21lLXNrZWxldG9uLWJsb2NrLS1saW5lIHtcbiAgICAgIG1heC13aWR0aDogMjgwcHg7XG4gICAgfVxuICB9XG5cbiAgJl9fZW1wdHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMTZweDtcbiAgICBwYWRkaW5nOiAyNHB4IDIwcHggMjhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICZfX2VtcHR5LXRleHQge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgY29sb3I6ICR1cGNvbWluZy1sYWJlbDtcbiAgfVxuXG4gICZfX3NjaGVkdWxlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgbWluLWhlaWdodDogMzZweDtcbiAgICBtYXgtaGVpZ2h0OiAzNnB4O1xuICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkdXBjb21pbmctcHJpbWFyeTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICR1cGNvbWluZy1wcmltYXJ5O1xuICAgIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC45O1xuICAgIH1cbiAgfVxuXG4gICZfX2JvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE2cHg7XG4gICAgcGFkZGluZzogMTZweCAyMHB4IDIwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICYtLW5vLWpvaW4ge1xuICAgICAgZ2FwOiAwO1xuICAgIH1cbiAgfVxuXG4gICZfX3Nlc3Npb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAvLyBGaXhlZCBoZWlnaHQgcGVyIGRlc2lnbjsgc2Vzc2lvbiB0ZXh0IGlzIHZlcnRpY2FsbHkgY2VudGVyZWQgYWdhaW5zdCB0aGUgYmFyLlxuICAmX19hY2NlbnQge1xuICAgIGZsZXg6IDAgMCA0cHg7XG4gICAgd2lkdGg6IDRweDtcbiAgICBoZWlnaHQ6IDg0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGJhY2tncm91bmQ6ICR1cGNvbWluZy1wcmltYXJ5O1xuICB9XG5cbiAgJl9faW5mbyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgfVxuXG4gICZfX2hlYWRpbmcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWluLWhlaWdodDogMjBweDtcbiAgICAvLyBSZXNlcnZlIHNwYWNlIGZvciB0aGUga2ViYWIgd2l0aG91dCBncm93aW5nIHRoZSByb3cgdGFsbGVyIHRoYW4gdGhlIHRpdGxlLlxuICAgIHBhZGRpbmctcmlnaHQ6IDM2cHg7XG4gIH1cblxuICAmX19uYW1lIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgfVxuXG4gICZfX2RldGFpbHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbiAgfVxuXG4gICZfX2RldGFpbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICB9XG5cbiAgJl9fZGV0YWlsLWljb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXg6IDAgMCAxNnB4O1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBtaW4td2lkdGg6IDE2cHg7XG4gICAgbWF4LXdpZHRoOiAxNnB4O1xuICAgIG1pbi1oZWlnaHQ6IDE2cHg7XG4gICAgbWF4LWhlaWdodDogMTZweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICB9XG5cbiAgJl9fZGV0YWlsLXZhbHVlIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJHVwY29taW5nLXZhbHVlO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAmX19kZXRhaWwtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGNvbG9yOiAkdXBjb21pbmctdmFsdWU7XG4gIH1cblxuICAmX19kaXZpZGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsYWNrLTMwMDtcbiAgfVxuXG4gICZfX2pvaW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIG1pbi1oZWlnaHQ6IDM2cHg7XG4gICAgbWF4LWhlaWdodDogMzZweDtcbiAgICBwYWRkaW5nOiAwIDE2cHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAkdXBjb21pbmctcHJpbWFyeTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAwLjkyO1xuICAgIH1cbiAgfVxuXG4gICZfX21lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0ycHg7XG4gICAgcmlnaHQ6IDA7XG4gICAgZmxleDogMCAwIGF1dG87XG4gIH1cblxuICAmX19rZWJhYiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMjRweDtcbiAgICBtaW4td2lkdGg6IDI0cHg7XG4gICAgbWF4LXdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBtaW4taGVpZ2h0OiAyNHB4O1xuICAgIG1heC1oZWlnaHQ6IDI0cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHBhZ2UtYmc7XG4gICAgfVxuICB9XG5cbiAgJl9fbWVudS1saXN0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDEwMCUgKyA0cHgpO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDIwO1xuICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR1cGNvbWluZy1tZW51LWJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgLy8gSXRlbXMgcnVuIGVkZ2UgdG8gZWRnZSBzbyB0aGUgZGl2aWRlciBzcGFucyB0aGUgZnVsbCB3aWR0aDsgY2xpcCB0aGVtXG4gICAgLy8gYmFjayB0byB0aGUgcmFkaXVzIHNvIGhvdmVyIGRvZXMgbm90IHNxdWFyZSBvZmYgdGhlIGNvcm5lcnMuXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG5cbiAgICAmLmhpZGRlbiB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZfX21lbnUtaXRlbSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTRweCAxOHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICR1cGNvbWluZy12YWx1ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmICsgJiB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHVwY29taW5nLW1lbnUtYm9yZGVyO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHBhZ2UtYmc7XG4gICAgfVxuXG4gICAgJi0tZGFuZ2VyIHtcbiAgICAgIGNvbG9yOiAkdXBjb21pbmctZGFuZ2VyO1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKG1vYmlsZSkge1xuICAudXBjb21pbmctc2Vzc2lvbiB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuXG4gICAgJl9fcGFuZWwge1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cblxuICAgICZfX2hlYWRlciB7XG4gICAgICBwYWRkaW5nOiAxNHB4IDE2cHggMDtcbiAgICB9XG5cbiAgICAmX19ib2R5IHtcbiAgICAgIHBhZGRpbmc6IDE0cHggMTZweCAxNnB4O1xuICAgIH1cblxuICAgICZfX2VtcHR5IHtcbiAgICAgIHBhZGRpbmc6IDIwcHggMTZweCAyNHB4O1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKHBob25lKSB7XG4gIC51cGNvbWluZy1zZXNzaW9uIHtcbiAgICAmX19oZWFkZXIge1xuICAgICAgcGFkZGluZzogMTJweCAxMnB4IDA7XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgIH1cblxuICAgICZfX2JvZHkge1xuICAgICAgcGFkZGluZzogMTJweCAxMnB4IDE0cHg7XG4gICAgfVxuXG4gICAgJl9fZW1wdHkge1xuICAgICAgcGFkZGluZzogMTZweCAxMnB4IDIwcHg7XG4gICAgfVxuXG4gICAgJl9fZGV0YWlsIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIHJvdy1nYXA6IDJweDtcbiAgICB9XG5cbiAgICAmX19kZXRhaWwtdmFsdWUge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB9XG5cbiAgICAmX19tZW51LWxpc3Qge1xuICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgbWF4LXdpZHRoOiA4MHZ3O1xuICAgIH1cblxuICAgICZfX3NjaGVkdWxlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCb2R5TUFQIGNhcmQgKGF0aGxldGUgaG9tZSDigJQgYmV0d2VlbiBVcGNvbWluZyBTZXNzaW9uIGFuZCBQcm9ncmVzcyBJbnNpZ2h0cylcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuJGJvZHltYXAtY2FyZC1ib3JkZXI6ICRibGFjay0yMDA7XG4kYm9keW1hcC1sYWJlbDogIzRmNGY0ZjtcbiRib2R5bWFwLW11dGVkOiAjNmQ2ZDZkO1xuJGJvZHltYXAtcHJpbWFyeTogJGJsdWU7XG4kYm9keW1hcC1wb29yOiAjRjA0NDM4O1xuJGJvZHltYXAtbW9kZXJhdGU6ICNFNUE2MzM7XG4kYm9keW1hcC1nb29kOiAjMTJCNzZBO1xuJGJvZHltYXAtcmluZy10cmFjazogI2U4ZThlODtcblxuLmJvZHltYXAtY2FyZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDQ5MnB4O1xuICBtYXJnaW4tbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gIC8vIE5ldXRyYWxpemUgZ2xvYmFsIGJ1dHRvbiB7IG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2UgfVxuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICB9XG5cbiAgYnV0dG9uICsgYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gICZfX3BhbmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA0OTJweDtcbiAgICBoZWlnaHQ6IDMxMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDMxMHB4O1xuICAgIG1heC1oZWlnaHQ6IDMxMHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9keW1hcC1jYXJkLWJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgJl9faGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTZweDtcbiAgICBwYWRkaW5nOiAxNnB4IDIwcHggMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgfVxuXG4gICZfX3NrZWxldG9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIC5ob21lLXNrZWxldG9uLWJsb2NrLS1saW5lIHtcbiAgICAgIG1heC13aWR0aDogMjgwcHg7XG4gICAgfVxuICB9XG5cbiAgJl9fZW1wdHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDI4cHggMjRweCAzMnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgJl9fZW1wdHktdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG4gICAgY29sb3I6ICRib2R5bWFwLWxhYmVsO1xuICB9XG5cbiAgJl9fZW1wdHktZGVzY3JpcHRpb24ge1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXgtd2lkdGg6IDM0MHB4O1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgY29sb3I6ICRib2R5bWFwLW11dGVkO1xuICB9XG5cbiAgJl9fc3RhcnQge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGhlaWdodDogMzZweDtcbiAgICBtaW4taGVpZ2h0OiAzNnB4O1xuICAgIG1heC1oZWlnaHQ6IDM2cHg7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9keW1hcC1wcmltYXJ5O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJGJvZHltYXAtcHJpbWFyeTtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDAuOTtcbiAgICB9XG4gIH1cblxuICAmX19ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBnYXA6IDE2cHg7XG4gICAgcGFkZGluZzogMTJweCAyMHB4IDE2cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICZfX2NvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICAvLyBSaW5nIHN0YXlzIGxlZnQ7IGxhcmdlciBnYXAga2VlcHMgdGhlIGxlZ2VuZCBhdCBpdHMgY3VycmVudCAoY2VudGVyZWQpIHNwb3QuXG4gICAgZ2FwOiA2NXB4O1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgJl9fcmluZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxODBweDtcbiAgICBoZWlnaHQ6IDE4MHB4O1xuICB9XG5cbiAgJl9fcmluZy1zdmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICB9XG5cbiAgJl9fcmluZy10cmFjayB7XG4gICAgc3Ryb2tlOiAkYm9keW1hcC1yaW5nLXRyYWNrO1xuICB9XG5cbiAgJl9fcmluZy1wcm9ncmVzcyB7XG4gICAgdHJhbnNpdGlvbjogc3Ryb2tlLWRhc2hvZmZzZXQgMC4zNXMgZWFzZTtcbiAgfVxuXG4gICZfX3JpbmctbGFiZWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgJl9fcmluZy10b3RhbCB7XG4gICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICM2ZDZkNmQ7XG4gICAgLy8gRXh0cmEgc3BhY2UgYWJvdmUgdGhlIGxhcmdlIG51bWVyYWwg4oCUIE51ZGlzdGEgZGlnaXRzIHNpdCBoaWdoIGluIHRoZVxuICAgIC8vIGVtIGJveCwgc28gZXF1YWwgQ1NTIGdhcHMgc3RpbGwgbG9vayB0aWdodGVyIGFib3ZlIHRoZSBzY29yZS5cbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICB9XG5cbiAgJl9fcmluZy1zY29yZSB7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDM2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG5cbiAgJl9fcmluZy1iYW5kIHtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAjNmQ2ZDZkO1xuICB9XG5cbiAgJl9fbGVnZW5kIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9fbGVnZW5kLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX19sZWdlbmQtZG90IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgJi0tcG9vciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYm9keW1hcC1wb29yO1xuICAgIH1cblxuICAgICYtLW1vZGVyYXRlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRib2R5bWFwLW1vZGVyYXRlO1xuICAgIH1cblxuICAgICYtLWdvb2Qge1xuICAgICAgYmFja2dyb3VuZDogJGJvZHltYXAtZ29vZDtcbiAgICB9XG4gIH1cblxuICAmX19sZWdlbmQtbmFtZSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWluLXdpZHRoOiA3MnB4O1xuICAgIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBjb2xvcjogJGJvZHltYXAtbXV0ZWQ7XG4gIH1cblxuICAmX19sZWdlbmQtcmFuZ2Uge1xuICAgIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgfVxuXG4gICZfX2Zvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDE2cHg7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9faGludCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogJGJvZHltYXAtbXV0ZWQ7XG4gIH1cblxuICAmX191cGRhdGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRib2R5bWFwLXByaW1hcnk7XG4gICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICY6aG92ZXIge1xuICAgICAgb3BhY2l0eTogMC44NTtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChtb2JpbGUpIHtcbiAgLmJvZHltYXAtY2FyZCB7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuXG4gICAgJl9fcGFuZWwge1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cblxuICAgICZfX2hlYWRlciB7XG4gICAgICBwYWRkaW5nOiAxNHB4IDE2cHggMDtcbiAgICB9XG5cbiAgICAmX19ib2R5IHtcbiAgICAgIHBhZGRpbmc6IDEycHggMTZweCAxNHB4O1xuICAgIH1cblxuICAgICZfX2VtcHR5IHtcbiAgICAgIHBhZGRpbmc6IDI0cHggMTZweCAyOHB4O1xuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgZ2FwOiAxNnB4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fbGVnZW5kIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9fcmluZyB7XG4gICAgICB3aWR0aDogMTYwcHg7XG4gICAgICBoZWlnaHQ6IDE2MHB4O1xuICAgIH1cblxuICAgICZfX3Jpbmctc2NvcmUge1xuICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKHBob25lKSB7XG4gIC5ib2R5bWFwLWNhcmQge1xuICAgICZfX2hlYWRlciB7XG4gICAgICBwYWRkaW5nOiAxMnB4IDEycHggMDtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgfVxuXG4gICAgJl9fYm9keSB7XG4gICAgICBwYWRkaW5nOiAxMHB4IDEycHggMTJweDtcbiAgICB9XG5cbiAgICAmX19lbXB0eSB7XG4gICAgICBwYWRkaW5nOiAyMHB4IDEycHggMjRweDtcbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgICZfX2Zvb3RlciB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICBnYXA6IDEwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fdXBkYXRlIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgICZfX3N0YXJ0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuIiwiLyogUmVzY2hlZHVsZSAvIGNhbmNlbCBtb2RhbHMgZm9yIHRoZSB1cGNvbWluZyBzZXNzaW9uIGNhcmQgKi9cblxuLy8gUmVzY2hlZHVsZSBwaWNrZXIsIHBvcnRlZCBmcm9tIHRoZSBhcHAncyByZXNjaGVkdWxlLXNlc3Npb24tbW9kYWwgcGx1cyBpdHNcbi8vIGRhdGUtdGltZS1waWNrZXIgLyBjYWxlbmRhci1ncmlkIChUYWlsd2luZCB0aGVyZSwgc28gdGhlc2UgYXJlIHRoZSBkZS1AYXBwbHknZFxuLy8gdG9rZW4gdmFsdWVzKS4gTGlrZSAudXBjb21pbmctY2FuY2VsIGl0IGlzIGEgY3VzdG9tIHJvb3QgcmF0aGVyIHRoYW5cbi8vIC5tb2RhbC1jb250YWluZXIsIHNvIG5vbmUgb2YgdGhlIGxlZ2FjeSBtb2RhbCBjaHJvbWUgYXBwbGllcy5cbiR1cGNvbWluZy1yZXNjaGVkdWxlLXdpZHRoOiAgICAgICAgICAgIDY0MHB4O1xuJHVwY29taW5nLXJlc2NoZWR1bGUtZ3V0dGVyOiAgICAgICAgICAgMjRweDtcbiR1cGNvbWluZy1yZXNjaGVkdWxlLWd1dHRlci1waG9uZTogICAgIDIwcHg7XG4kdXBjb21pbmctcmVzY2hlZHVsZS1jYWwtd2lkdGg6ICAgICAgICAyODBweDsgLy8gNyB4IDM0cHggZGF5IGNlbGxzICsgMiB4IDIwcHggcGFuZWwgcGFkZGluZ1xuLy8gVGhlIGFwcCdzIHBpY2tlciBzdGFja3MgYXQgNjQwcHguIFRoYXQgaXMgYSBwcm9wZXJ0eSBvZiB0aGlzIHR3by1wYW5lbCBsYXlvdXQsXG4vLyBub3QgYSBwcm9qZWN0IHRpZXIsIHNvIGl0IGlzIGEgYmFyZSBxdWVyeSByYXRoZXIgdGhhbiByZXNwb25kKCkgLSB0aGUgcmVwbydzXG4vLyB0aWVycyBhcmUgJGJwLW1vYmlsZSA3NjhweCBhbmQgJGJwLXBob25lIDQ4MHB4LCBuZWl0aGVyIG9mIHdoaWNoIGlzIHRoaXMuXG4kdXBjb21pbmctcmVzY2hlZHVsZS1zdGFjazogICAgICAgICAgICA2NDBweDtcbiR1cGNvbWluZy1yZXNjaGVkdWxlLXZpZXdwb3J0LW1hcmdpbjogIDE2cHg7XG4kdXBjb21pbmctcmVzY2hlZHVsZS1wdXJwbGUtZGlzYWJsZWQ6ICAjYzNhZGYyO1xuJHVwY29taW5nLXJlc2NoZWR1bGUtZ2hvc3QtaG92ZXI6ICAgICAgI2ViZWJlYjtcblxuLy8gZm9udC1hd2Vzb21lJ3MgZmEtc3BpbiBydW5zIDAgLT4gMzU5ZGVnLCB3aGljaCBoaXRjaGVzIG9uY2UgcGVyIHJldm9sdXRpb24uXG4vLyBMb2NhbCBrZXlmcmFtZXMgc28gYm90aCBzcGlubmVycyB0dXJuIGNsZWFubHkuXG5Aa2V5ZnJhbWVzIHVwY29taW5nLXJlc2NoZWR1bGUtc3BpbiB7XG4gIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxufVxuXG4udXBjb21pbmctcmVzY2hlZHVsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6ICR1cGNvbWluZy1yZXNjaGVkdWxlLXdpZHRoO1xuICAvLyAubW9kYWwgaXMgYSBjb250ZW50LXNpemVkIGZsZXggaXRlbSBpbnNpZGUgLm1vZGFsLXZpZXcsIHNvIGEgcGVyY2VudGFnZVxuICAvLyBtYXgtd2lkdGggaGFzIG5vIGRlZmluaXRlIHBhcmVudCB3aWR0aCB0byByZXNvbHZlIGFnYWluc3QuXG4gIG1heC13aWR0aDogY2FsYygxMDB2dyAtICN7JHVwY29taW5nLXJlc2NoZWR1bGUtdmlld3BvcnQtbWFyZ2luICogMn0pO1xuICAvLyBUaGUgYXBwIHVzZXMgZHZoLiBUaGVyZSBpcyBubyBhdXRvcHJlZml4ZXIgaW4gdGhpcyBidWlsZCwgYW5kIGFuXG4gIC8vIHVuc3VwcG9ydGVkIHVuaXQgZHJvcHMgdGhlIHdob2xlIGRlY2xhcmF0aW9uIC0gd2hpY2ggd291bGQgbGVhdmUgdGhlIHBhbmVsXG4gIC8vIHdpdGggbm8gbWF4LWhlaWdodCBhdCBhbGwgLSBzbyB2aCBnb2VzIGZpcnN0IGFzIHRoZSBmYWxsYmFjay5cbiAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDQ4cHgpO1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMGR2aCAtIDQ4cHgpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgxNiwgMjQsIDQwLCAwLjE4KTtcbiAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcblxuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgJl9fY2xvc2Uge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDE2cHg7XG4gICAgcmlnaHQ6IDE2cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICAgICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1hcmdpbjogMCA0MHB4IDAgMDsgLy8ga2VlcHMgdGhlIHRpdGxlIGNsZWFyIG9mIHRoZSBjbG9zZSBidXR0b25cbiAgICBwYWRkaW5nOiAkdXBjb21pbmctcmVzY2hlZHVsZS1ndXR0ZXIgJHVwY29taW5nLXJlc2NoZWR1bGUtZ3V0dGVyIDA7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gIH1cblxuICAmX19ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAyMHB4O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIC8vIFdpdGhvdXQgdGhpcyB0aGUgc2Nyb2xsIGNvbnRhaW5lciByZWZ1c2VzIHRvIHNocmluayBiZWxvdyBpdHMgY29udGVudCBpblxuICAgIC8vIGEgY29sdW1uIGZsZXggcGFyZW50IGFuZCB0aGUgcm9vdCdzIG1heC1oZWlnaHQgZG9lcyBub3RoaW5nLlxuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBwYWRkaW5nOiAyMHB4ICR1cGNvbWluZy1yZXNjaGVkdWxlLWd1dHRlciAwO1xuICB9XG5cbiAgJl9fc3VtbWFyeSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDIwcHg7XG4gIH1cblxuICAmX19zdW1tYXJ5LWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX19zdW1tYXJ5LWljb24ge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgJl9fc3VtbWFyeS10ZXh0IHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMTRweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX2RpdmlkZXIge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogMCAtI3skdXBjb21pbmctcmVzY2hlZHVsZS1ndXR0ZXJ9O1xuICAgIGJhY2tncm91bmQ6ICRibGFjay0yMDA7XG4gIH1cblxuICAmX19zZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiA2cHg7XG4gIH1cblxuICAmX19zZWN0aW9uLXRpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjE2cHg7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gIH1cblxuICAmX190eiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMTRweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX3R6LWljb24ge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICB9XG5cbiAgJl9fcGlja2VyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0zMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvLyBTdGFja2VkLW9ubHkgc3VtbWFyeSBiYXI7IHRoZSBtZWRpYSBxdWVyeSBiZWxvdyBpcyB3aGF0IHJldmVhbHMgaXQuXG4gICZfX2NvbGxhcHNlZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEycHg7XG4gICAgcGFkZGluZzogMTZweCAkdXBjb21pbmctcmVzY2hlZHVsZS1ndXR0ZXItcGhvbmUgMTJweDtcbiAgfVxuXG4gICZfX2NvbGxhcHNlZC1kYXRlIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGdyYXktOTAwO1xuICB9XG5cbiAgJl9fY29sbGFwc2VkLWNoYW5nZSB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmX19jYWwge1xuICAgIGZsZXg6IDAgMCAkdXBjb21pbmctcmVzY2hlZHVsZS1jYWwtd2lkdGg7XG4gICAgcGFkZGluZzogMTZweCAyMHB4IDIwcHg7XG4gIH1cblxuICAmX19jYWwtaGVhZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gIH1cblxuICAmX19jYWwtbW9udGgge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkZ3JheS05MDA7XG4gIH1cblxuICAmX19jYWwtbmF2IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgJl9fY2FsLWFycm93IHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICAgIH1cblxuICAgIC8vIGJ1dHRvbjpkaXNhYmxlZCBpbiBfYmFzZS5zY3NzIHNldHMgY29sb3VyLCBib3JkZXItY29sb3VyIGFuZCBjdXJzb3I7IGFsbFxuICAgIC8vIHRocmVlIGhhdmUgdG8gYmUgcmVzdGF0ZWQgb3IgaXRzIGdyZXlzIGxlYWsgdGhyb3VnaC5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAkYmxhY2stMzAwO1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cbiAgfVxuXG4gICZfX2RvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gICZfX2Rvdy1jZWxsIHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiAkZ3JheS03MDA7XG4gIH1cblxuICAmX193ZWVrcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG5cbiAgJl9fd2VlayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuXG4gIC8vIEEgZml4ZWQgaGVpZ2h0IHJhdGhlciB0aGFuIHRoZSBhcHAncyBhc3BlY3QtcmF0aW86IDEvMSAtIGxpYnNhc3MgcGFyc2VzIGFcbiAgLy8gYmFyZSBgMSAvIDFgIGluIGEgdmFsdWUgYXMgZGl2aXNpb24sIGFuZCB0aGUgcHJvcGVydHkgaGFzIG5vIGZhbGxiYWNrIGhlcmUuXG4gICZfX2RheSB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gICAgZmxleDogMSAxIDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogNDBweDtcbiAgICAvLyBidXR0b24gKyBidXR0b24gaW4gX2Jhc2Uuc2NzcyB3b3VsZCBvdGhlcndpc2UgaW5kZW50IGV2ZXJ5IGNlbGwgYWZ0ZXIgdGhlXG4gICAgLy8gZmlyc3QgaW4gZWFjaCB3ZWVrIHJvdy5cbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmLmlzLXBhc3Qge1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cblxuICAgIC8vIFBhc3QgZGF5cyBjYXJyeSBuZy1kaXNhYmxlZCwgYW5kIGJ1dHRvbjpkaXNhYmxlZCBpbiBfYmFzZS5zY3NzICgwLDEsMSlcbiAgICAvLyBvdXRyYW5rcyB0aGlzIGNsYXNzICgwLDEsMCkgLSB3aXRob3V0IHJlc3RhdGluZyBpdCB0aGUgZ3JleWVkIGJvcmRlclxuICAgIC8vIHBhaW50cyBvdmVyIHRoZSB0cmFuc3BhcmVudCBvbmUgYW5kIGJveGVzIGV2ZXJ5IHBhc3QgZGF0ZS5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICAvLyBFdmVyeSBib29rYWJsZSBkYXkgZ2V0cyB0aGUgdGludGVkIHNxdWFyZS4gRGVjbGFyZWQgYmVmb3JlIGlzLXNlbGVjdGVkIHNvXG4gICAgLy8gdGhlIHNvbGlkIHB1cnBsZSBvZiB0aGUgc2VsZWN0ZWQgZGF5IHdpbnMgb24gdGhlIHNhbWUgc3BlY2lmaWNpdHkuXG4gICAgJi5pcy1hdmFpbGFibGUge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcHVycGxlLTIwMDtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuICAgIH1cblxuICAgICYuaXMtc2VsZWN0ZWQge1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTAwO1xuXG4gICAgICAudXBjb21pbmctcmVzY2hlZHVsZV9fZGF5LW51bSB7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2RheS1udW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkZ3JheS05MDA7XG5cbiAgICAmLmlzLW90aGVyICB7IGNvbG9yOiAkYmxhY2stMzAwOyB9XG4gICAgJi5pcy1wYXN0ICAgeyBjb2xvcjogJGJsYWNrLTMwMDsgfVxuICAgICYuaXMtd2Vla2VuZCB7IGNvbG9yOiAkbXV0ZWQ7IH1cbiAgICAmLmlzLXRvZGF5ICB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmxhY2stMTAwO1xuICAgICAgY29sb3I6ICRtdXRlZDtcbiAgICB9XG4gIH1cblxuICAmX192ZGl2aWRlciB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2lkdGg6IDFweDtcbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgIGJhY2tncm91bmQ6ICRncmF5LTIwMDtcbiAgfVxuXG4gICZfX3Nsb3RzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHBhZGRpbmc6IDE2cHggMjBweCAyMHB4O1xuICB9XG5cbiAgJl9fc2xvdHMtZGF5IHtcbiAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkZ3JheS05MDA7XG4gIH1cblxuICAmX19zcGlubmVyLXdyYXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAzMnB4IDA7XG4gIH1cblxuICAmX19zcGlubmVyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgYm9yZGVyOiAyLjVweCBzb2xpZCAkcHVycGxlLTEwMDtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYW5pbWF0aW9uOiB1cGNvbWluZy1yZXNjaGVkdWxlLXNwaW4gMC42cyBsaW5lYXIgaW5maW5pdGU7XG4gIH1cblxuICAmX19zbG90cy1lbXB0eSB7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHBhZGRpbmc6IDI0cHggMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkZ3JheS01MDA7XG4gIH1cblxuICAmX19zbG90cy1saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG4gICAgbWF4LWhlaWdodDogMzQwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgfVxuXG4gICZfX3Nsb3Qge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgLy8gVGhlIGxpc3QgaXMgYSBjb2x1bW4gZmxleCBjb250YWluZXIgd2l0aCBhIG1heC1oZWlnaHQsIHNvIHdpdGhvdXQgdGhpc1xuICAgIC8vIHRoZSBzbG90cyBzaHJpbmsgdG8gZml0IGluc3RlYWQgb2Ygc2Nyb2xsaW5nIC0gYSBsb25nIGRheSdzIHNsb3RzIHdvdWxkXG4gICAgLy8gcmVuZGVyIGFzIHNxdWFzaGVkIHNsaXZlcnMuXG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgLy8gYnV0dG9uICsgYnV0dG9uIGFnYWluIC0gdGhpcyBsaXN0IGlzIGEgc2libGluZyBydW4gb2YgYnV0dG9ucy5cbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMTRweCAxNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0zMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBjb2xvcjogJGdyYXktOTAwO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmLmlzLXNlbGVjdGVkIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS01MDA7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICB9XG4gIH1cblxuICAmX19zbG90LWNoZWNrIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gICZfX2Vycm9yIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMTJweCAkdXBjb21pbmctcmVzY2hlZHVsZS1ndXR0ZXIgMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRyZWQtNTAwO1xuICB9XG5cbiAgJl9fYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZ2FwOiAxMnB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHBhZGRpbmc6IDEycHggJHVwY29taW5nLXJlc2NoZWR1bGUtZ3V0dGVyICR1cGNvbWluZy1yZXNjaGVkdWxlLWd1dHRlcjtcbiAgfVxuXG4gICZfX2J0biB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICAvLyB1bnN0eWxlLWJ1dHRvbiBjbGVhcnMgbWluL21heC1oZWlnaHQgYnV0IG5vdCBoZWlnaHQsIGFuZCB0aGUgZ2xvYmFsIGJ1dHRvblxuICAgIC8vIHJ1bGUgaW4gX2Jhc2Uuc2NzcyBwaW5zIGhlaWdodDogNTBweC5cbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgLy8gYnV0dG9uICsgYnV0dG9uIGluIF9iYXNlLnNjc3MgYWRkcyBhIGxlZnQgbWFyZ2luIHRoYXQgd291bGQgc3RhY2sgb24gdGhlXG4gICAgLy8gZ2FwIGFib3ZlLlxuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMXB4IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjMycHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICYtLWdob3N0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0zMDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2stMTAwO1xuICAgICAgY29sb3I6ICRibGFjay05MDA7XG5cbiAgICAgICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdXBjb21pbmctcmVzY2hlZHVsZS1naG9zdC1ob3ZlcjtcbiAgICAgIH1cblxuICAgICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGJsYWNrLTMwMDtcbiAgICAgICAgY29sb3I6ICRibGFjay05MDA7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1wcmltYXJ5IHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG5cbiAgICAgICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHVycGxlLTYwMDtcbiAgICAgIH1cblxuICAgICAgLy8gU2FtZSByZXN0YXRlbWVudCBhcyB0aGUgY2FsZW5kYXIgYXJyb3dzOiBfYmFzZS5zY3NzIHdvdWxkIGdyZXkgdGhpcyBvdXQuXG4gICAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVwY29taW5nLXJlc2NoZWR1bGUtcHVycGxlLWRpc2FibGVkO1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19idG4tc3Bpbm5lciB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICBib3JkZXItdG9wLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYW5pbWF0aW9uOiB1cGNvbWluZy1yZXNjaGVkdWxlLXNwaW4gMC42cyBsaW5lYXIgaW5maW5pdGU7XG4gIH1cbn1cblxuLy8gSG92ZXIgYm9yZGVycyBvbmx5IHdoZXJlIGhvdmVyaW5nIGlzIHJlYWwsIHNvIGEgdGFwIG9uIHRvdWNoIGRvZXNuJ3QgbGVhdmUgYVxuLy8gc2xvdCBsb29raW5nIHNlbGVjdGVkLlxuQG1lZGlhIChob3ZlcjogaG92ZXIpIHtcbiAgLnVwY29taW5nLXJlc2NoZWR1bGVfX3Nsb3Q6bm90KC5pcy1zZWxlY3RlZCk6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS01MDA7XG4gIH1cbn1cblxuLy8gQWJvdmUgdGhlIHN0YWNrIGJyZWFrcG9pbnQgdGhlIHNlY3Rpb24gaGVhZGVyIGlzIGEgcm93LlxuQG1lZGlhIChtaW4td2lkdGg6ICN7JHVwY29taW5nLXJlc2NoZWR1bGUtc3RhY2sgKyAxcHh9KSB7XG4gIC51cGNvbWluZy1yZXNjaGVkdWxlX19zZWN0aW9uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAkdXBjb21pbmctcmVzY2hlZHVsZS1zdGFjaykge1xuICAudXBjb21pbmctcmVzY2hlZHVsZSB7XG4gICAgJl9fcGlja2VyICAgICB7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAmX19jYWwgICAgICAgIHsgZmxleDogMCAwIGF1dG87IH1cbiAgICAmX192ZGl2aWRlciAgIHsgd2lkdGg6IGF1dG87IGhlaWdodDogMXB4OyB9XG4gICAgJl9fc2xvdHMtbGlzdCB7IG1heC1oZWlnaHQ6IDIyMHB4OyB9XG5cbiAgICAvLyBPbmNlIGEgZGF5IGlzIHBpY2tlZCB0aGUgY2FsZW5kYXIgZm9sZHMgYXdheSB0byB0aGUgc3VtbWFyeSBiYXIuXG4gICAgJl9fcGlja2VyLmlzLWNvbGxhcHNlZCB7XG4gICAgICAudXBjb21pbmctcmVzY2hlZHVsZV9fY29sbGFwc2VkIHsgZGlzcGxheTogZmxleDsgfVxuXG4gICAgICAudXBjb21pbmctcmVzY2hlZHVsZV9fY2FsLFxuICAgICAgLnVwY29taW5nLXJlc2NoZWR1bGVfX3ZkaXZpZGVyLFxuICAgICAgLnVwY29taW5nLXJlc2NoZWR1bGVfX3Nsb3RzLWRheSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQocGhvbmUpIHtcbiAgLnVwY29taW5nLXJlc2NoZWR1bGUge1xuICAgICZfX3RpdGxlICB7IHBhZGRpbmc6ICR1cGNvbWluZy1yZXNjaGVkdWxlLWd1dHRlci1waG9uZSAkdXBjb21pbmctcmVzY2hlZHVsZS1ndXR0ZXItcGhvbmUgMDsgfVxuICAgICZfX2JvZHkgICB7IHBhZGRpbmc6IDE2cHggJHVwY29taW5nLXJlc2NoZWR1bGUtZ3V0dGVyLXBob25lIDA7IH1cbiAgICAvLyBNdXN0IHRyYWNrIHRoZSByZWR1Y2VkIGd1dHRlciBvciB0aGUgcnVsZSBzdG9wcyBzaG9ydCBvZiB0aGUgcGFuZWwgZWRnZS5cbiAgICAmX19kaXZpZGVyIHsgbWFyZ2luOiAwIC0jeyR1cGNvbWluZy1yZXNjaGVkdWxlLWd1dHRlci1waG9uZX07IH1cbiAgICAmX19lcnJvciAgeyBwYWRkaW5nOiAxMnB4ICR1cGNvbWluZy1yZXNjaGVkdWxlLWd1dHRlci1waG9uZSAwOyB9XG4gICAgJl9fYWN0aW9ucyB7IHBhZGRpbmc6IDEycHggJHVwY29taW5nLXJlc2NoZWR1bGUtZ3V0dGVyLXBob25lICR1cGNvbWluZy1yZXNjaGVkdWxlLWd1dHRlci1waG9uZTsgfVxuICB9XG59XG4iLCIvLyBDYW5jZWwgY29uZmlybWF0aW9uLCBwb3J0ZWQgZnJvbSB0aGUgYXBwJ3MgY29tcG9uZW50cy9jYW5jZWwtc2Vzc2lvbi1tb2RhbFxuLy8gKFRhaWx3aW5kIHRoZXJlLCBzbyB0aGVzZSBhcmUgdGhlIGRlLUBhcHBseSdkIHRva2VuIHZhbHVlcykuIExpa2Vcbi8vIC5wcm9ncmFtLWRlbGV0ZSBpdCBpcyBhIGN1c3RvbSByb290IHJhdGhlciB0aGFuIC5tb2RhbC1jb250YWluZXIsIHNvIG5vbmUgb2Zcbi8vIHRoZSBsZWdhY3kgbW9kYWwgY2hyb21lIGFwcGxpZXMgYW5kIG5vdGhpbmcgaGVyZSBoYXMgdG8gdW5kbyBpdC5cbiR1cGNvbWluZy1jYW5jZWwtd2lkdGg6IDUxMnB4O1xuJHVwY29taW5nLWNhbmNlbC1ndXR0ZXI6IDI0cHg7XG4kdXBjb21pbmctY2FuY2VsLWdob3N0LWhvdmVyOiAjZWJlYmViO1xuJHVwY29taW5nLWNhbmNlbC1kYW5nZXItaG92ZXI6ICNjMDM5MmI7XG4kdXBjb21pbmctY2FuY2VsLXZpZXdwb3J0LW1hcmdpbjogMTZweDtcblxuLnVwY29taW5nLWNhbmNlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgd2lkdGg6ICR1cGNvbWluZy1jYW5jZWwtd2lkdGg7XG4gIC8vIC5tb2RhbCBpcyBhIGNvbnRlbnQtc2l6ZWQgZmxleCBpdGVtIGluc2lkZSAubW9kYWwtdmlldywgc28gYSBwZXJjZW50YWdlXG4gIC8vIG1heC13aWR0aCBoYXMgbm8gZGVmaW5pdGUgcGFyZW50IHdpZHRoIHRvIHJlc29sdmUgYWdhaW5zdC4gQSB2aWV3cG9ydCB1bml0XG4gIC8vIGlzIHdoYXQgYWN0dWFsbHkgYm91bmRzIHRoZSBjYXJkIG9uIGEgcGhvbmUuXG4gIG1heC13aWR0aDogY2FsYygxMDB2dyAtICN7JHVwY29taW5nLWNhbmNlbC12aWV3cG9ydC1tYXJnaW4gKiAyfSk7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAjeyR1cGNvbWluZy1jYW5jZWwtdmlld3BvcnQtbWFyZ2luICogMn0pO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgxNiwgMjQsIDQwLCAwLjE4KTtcbiAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcblxuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB9XG5cbiAgJl9fY2xvc2Uge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDE2cHg7XG4gICAgcmlnaHQ6IDE2cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICAgICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1hcmdpbjogMCA0MHB4IDAgMDsgLy8ga2VlcHMgdGhlIHF1ZXN0aW9uIGNsZWFyIG9mIHRoZSBjbG9zZSBidXR0b25cbiAgICBwYWRkaW5nOiAkdXBjb21pbmctY2FuY2VsLWd1dHRlciAkdXBjb21pbmctY2FuY2VsLWd1dHRlciAwO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICB9XG5cbiAgJl9fYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgcGFkZGluZzogMTZweCAkdXBjb21pbmctY2FuY2VsLWd1dHRlcjtcbiAgfVxuXG4gICZfX3Byb21wdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuXG4gICAgLy8gVGhlIGJvbGQgc3BhbnMgY29tZSBmcm9tIHRoZSB0cmFuc2xhdGlvbiBzdHJpbmcsIHNvIHRoZXkgYXJlIHN0eWxlZCBoZXJlXG4gICAgLy8gcmF0aGVyIHRoYW4gaW4gdGhlIHRlbXBsYXRlLlxuICAgIGIge1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB9XG4gIH1cblxuICAmX19maWVsZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNnB4O1xuICB9XG5cbiAgJl9fbGFiZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG4gIH1cblxuICAmX19vcHRpb25hbCB7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX2hpbnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbG9yOiAkbXV0ZWQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciAudXBjb21pbmctY2FuY2VsX190b29sdGlwLFxuICAgICY6Zm9jdXMtd2l0aGluIC51cGNvbWluZy1jYW5jZWxfX3Rvb2x0aXAge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cblxuICAmX190b29sdGlwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiBjYWxjKDEwMCUgKyA2cHgpO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB6LWluZGV4OiA1MDtcbiAgICB3aWR0aDogMjIwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMTBweDsgLy8gdHJhbnNsYXRlWCgtNTAlKSB3aXRob3V0IGEgdHJhbnNmb3JtIG9uIHRoZSBhcnJvdydzIGNvbnRhaW5pbmcgYmxvY2tcbiAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogJHRvb2x0aXA7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTtcblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAxMDAlO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gICAgICBib3JkZXI6IDVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICR0b29sdGlwO1xuICAgIH1cbiAgfVxuXG4gICZfX3JlYXNvbiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLy8gcm93cz1cIjRcIiBhbG9uZSBkb2VzIG5vdCBzdXJ2aXZlIGhlcmU6IHRoZSBiYXJlIGB0ZXh0YXJlYWAgcnVsZSBpblxuICAgIC8vIGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zIHBpbnMgaGVpZ2h0OiAxMjdweCwgd2hpY2ggb3ZlcnJpZGVzIHRoZVxuICAgIC8vIGludHJpbnNpYyByb3cgaGVpZ2h0IGFuZCByZW5kZXJzIGFzIGZpdmUgbGluZXMuIEFuIGV4cGxpY2l0IGhlaWdodCBvbiB0aGVcbiAgICAvLyBjbGFzcyBvdXRyYW5rcyBpdC4gRm91ciAyMnB4IGxpbmVzICsgMTBweCBwYWRkaW5nIHRvcC9ib3R0b20gKyAxcHggYm9yZGVyXG4gICAgLy8gdG9wL2JvdHRvbSwgc2l6ZWQgYWdhaW5zdCB0aGUgYm9yZGVyLWJveCBzZXQgYWJvdmUuXG4gICAgaGVpZ2h0OiAxMTBweDtcbiAgICBwYWRkaW5nOiAxMHB4IDE0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTMwMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIC8vIEZpeGVkIHJhdGhlciB0aGFuIHVuaXRsZXNzIHNvIHRoZSBtb2JpbGUgMTZweCBidW1wIGJlbG93IGRvZXMgbm90IGNoYW5nZVxuICAgIC8vIHRoZSBib3ggaGVpZ2h0LlxuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgcmVzaXplOiB2ZXJ0aWNhbDtcblxuICAgICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICB9XG5cbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogJG11dGVkO1xuICAgIH1cbiAgfVxuXG4gICZfX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGdhcDogMTJweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBwYWRkaW5nOiAxMnB4ICR1cGNvbWluZy1jYW5jZWwtZ3V0dGVyICR1cGNvbWluZy1jYW5jZWwtZ3V0dGVyO1xuICB9XG5cbiAgJl9fYnRuIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIC8vIHVuc3R5bGUtYnV0dG9uIGNsZWFycyBtaW4vbWF4LWhlaWdodCBidXQgbm90IGhlaWdodCwgYW5kIHRoZSBnbG9iYWwgYnV0dG9uXG4gICAgLy8gcnVsZSBpbiBfYmFzZS5zY3NzIHBpbnMgaGVpZ2h0OiA1MHB4IC0gd2hpY2ggd291bGQgb3ZlcnJpZGUgdGhlIDQ4cHggaGVyZS5cbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgLy8gYnV0dG9uICsgYnV0dG9uIGluIF9iYXNlLnNjc3MgYWRkcyBhIGxlZnQgbWFyZ2luIHRoYXQgd291bGQgc3RhY2sgb24gdGhlXG4gICAgLy8gZ2FwIGFib3ZlLlxuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxMXB4IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjMycHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICYtLWdob3N0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0zMDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxhY2stMTAwO1xuICAgICAgY29sb3I6ICRibGFjay05MDA7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdXBjb21pbmctY2FuY2VsLWdob3N0LWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtLWRhbmdlciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkLTUwMDtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHVwY29taW5nLWNhbmNlbC1kYW5nZXItaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gIC8vIF9iYXNlLnNjc3MgcmFpc2VzIGV2ZXJ5IGNvbnRyb2wgdG8gMTZweCBvbiBtb2JpbGUgc28gaU9TIFNhZmFyaSBzdG9wc1xuICAvLyBhdXRvLXpvb21pbmcgb24gZm9jdXMuIFRoZSBjbGFzcyBhYm92ZSBpcyBtb3JlIHNwZWNpZmljIHRoYW4gdGhhdCBydWxlLCBzb1xuICAvLyB0aGUgZXhlbXB0aW9uIGhhcyB0byBiZSByZXN0YXRlZC5cbiAgLnVwY29taW5nLWNhbmNlbF9fcmVhc29uIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChwaG9uZSkge1xuICAudXBjb21pbmctY2FuY2VsIHtcbiAgICAmX190aXRsZSB7XG4gICAgICBwYWRkaW5nOiAyMHB4IDIwcHggMDtcbiAgICB9XG5cbiAgICAmX19ib2R5IHtcbiAgICAgIHBhZGRpbmc6IDEycHggMjBweDtcbiAgICB9XG5cbiAgICAmX19hY3Rpb25zIHtcbiAgICAgIHBhZGRpbmc6IDEycHggMjBweCAyMHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBBdGhsZXRlIFByb2ZpbGUgcGFnZSAoLyMvcHJvZmlsZSlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnZpZXctZmxleC5hdGhsZXRlLXByb2ZpbGUtcGFnZSB7XG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XG4gIC13ZWJraXQtZmxleDogMSAwIGF1dG87XG4gIC1tb3otYm94LWZsZXg6IDE7XG4gIC1tcy1mbGV4OiAxIDAgYXV0bztcbiAgZmxleDogMSAwIGF1dG87XG4gIC8vIEZpZ21hJ3MgcGFnZSBncmV5OyBvdmVycmlkZXMgdGhlIHNoYXJlZCAuZ3JleWJnICgjZWZlZmVmKSBmb3IgdGhpcyBwYWdlIG9ubHkuXG4gIGJhY2tncm91bmQtY29sb3I6ICNmNmY2Zjc7XG59XG5cbiRhdGhsZXRlLXByb2ZpbGUtYWNjZW50LWhvdmVyOiAjNWY0NDk5O1xuJGF0aGxldGUtcHJvZmlsZS1ib3JkZXI6ICNlNWU1ZTU7XG5cbi5hdGhsZXRlLXByb2ZpbGUge1xuICAvLyBUaGUgdGVhbSBkYXNoYm9hcmQgY2FyZCByZXVzZXMgLmF0aGxldGUtcHJvZmlsZSBmb3IgaXRzIHBob3RvIGNvbHVtblxuICAvLyAoX2Rhc2hib2FyZF9hdGhsZXRlLnNjc3MpLCBzbyB0aGUgcGFnZSBib3ggb25seSBhcHBsaWVzIGluc2lkZSB0aGUgcHJvZmlsZVxuICAvLyBwYWdlIHdyYXBwZXIuIFRoZSBfX2VsZW1lbnQgcnVsZXMgYmVsb3cgc3RheSB1bnNjb3BlZC5cbiAgLmF0aGxldGUtcHJvZmlsZS1wYWdlICYge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICAvLyA2NDBweCBjb250ZW50IGNvbHVtbiArIDI0cHggcGFkZGluZyBlYWNoIHNpZGUsIHNvIHRoZSB0YWJzLCBjYXJkcyBhbmRcbiAgICAvLyBTYXZlIGZpbGwgdGhlIGJveCBhbmQgdGhlIHBhZ2UgY2VudHJlcyBvbiB0aGUgc2FtZSBheGlzIGFzIHRoZSBmb290ZXIuXG4gICAgbWF4LXdpZHRoOiA2ODhweDtcbiAgICBwYWRkaW5nOiAzMnB4IDI0cHggNDhweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAqLFxuICAgICo6OmJlZm9yZSxcbiAgICAqOjphZnRlciB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cbiAgfVxuXG4gICZfX2JhY2sge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgY29sb3I6ICM5NzY4RUI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIC8vIGZvbnQtc3R5bGUgcGlucyB0aGUgU2VtaUJvbGQgZmFjZSDigJQgTnVkaXN0YSBhbHNvIHNoaXBzIGEgNjAwIGl0YWxpYy5cbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBnYXA6IDhweDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICAvLyBUaGUgdGl0bGUgY2xlYXJzIDIwcHgsIGJ1dCB0aGUgdGFiIGJ1dHRvbnMgYXJlIDUwcHggdGFsbCAoZ2xvYmFsIGBidXR0b25gKVxuICAgIC8vIHdpdGggMjBweCB0ZXh0IGNlbnRyZWQgaW4gdGhlbSwgc28gfjEycHggb2YgdGhhdCBnYXAgaXMgZGVhZCBzcGFjZSBpbnNpZGVcbiAgICAvLyB0aGUgdGFiLiAzMHB4IGhlcmUgcHV0cyB0aGUgc2FtZSB+MzJweCBvZiBkYXlsaWdodCB1bmRlciB0aGUgYmFjayBsaW5rLlxuICAgIG1hcmdpbjogMCAwIDMwcHg7XG4gICAgcGFkZGluZzogMDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRhdGhsZXRlLXByb2ZpbGUtYWNjZW50LWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gICZfX2JhY2stYXJyb3cge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogMjBweDtcbiAgfVxuXG4gIC8vIE1hdGNoIHRoZSBsYWJlbCdzIGxpbmUgYm94IHRvIHRoZSAyMHB4IGljb24gc28gYWxpZ24taXRlbXM6IGNlbnRlciBsaW5lc1xuICAvLyB0aGUgY2hldnJvbidzIG1pZHBvaW50IHVwIHdpdGggdGhlIHRleHQncyBtaWRwb2ludC5cbiAgJl9fYmFjay1sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgLy8gTnVkaXN0YSdzIGdseXBocyBzaXQgaGlnaCBpbiB0aGUgbGluZSBib3g7IG51ZGdlIGRvd24gdG8gb3B0aWNhbGx5IGNlbnRyZS5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG4gIH1cblxuICAmX190aXRsZSB7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICBtYXJnaW46IDAgMCAyMHB4O1xuICB9XG5cbiAgJl9fdGFicyB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRhdGhsZXRlLXByb2ZpbGUtYm9yZGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAyNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG4gICAgLy8gTWF0Y2hlcyB0aGUgNjQwcHggY2FyZHMvYWN0aW9ucyBzbyB0aGUgcnVsZSBlbmRzIGF0IFNhdmUncyByaWdodCBlZGdlLlxuICAgIG1heC13aWR0aDogNjQwcHg7XG4gIH1cblxuICAmX190YWIge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gICAgLy8gR2xvYmFsIGBidXR0b25gIGZsb29ycyB3aWR0aCBhdCAxMTBweCwgd2hpY2ggc3RyZXRjaGVkIHRoZSBhY3RpdmUgdGFiJ3NcbiAgICAvLyB1bmRlcmxpbmUgfjI5cHggcGFzdCBcIlBoeXNpY2FsIEluZm9cIi4gVGhlIHVuZGVybGluZSBpcyB0aGlzIGJvcmRlciwgc29cbiAgICAvLyB0aGUgd2lkdGggaGFzIHRvIGNvbWUgZnJvbSB0aGUgbGFiZWwgcGx1cyB0aGUgNHB4IEZpZ21hIHNob3dzIGVhY2ggc2lkZS5cbiAgICBtaW4td2lkdGg6IDA7XG4gICAgLy8gR2xvYmFsIGBidXR0b25gIGFsc28gbG9ja3MgaGVpZ2h0IGF0IDUwcHggKGJvcmRlci1ib3gpIGFuZCBjZW50ZXJzIHRoZVxuICAgIC8vIGxhYmVsIGluIGl0LCBzbyB0aGUgMTJweCB0b3AgcGFkIGxvd2VycyB0aGUgdGV4dCA2cHggd2l0aG91dCBtb3ZpbmdcbiAgICAvLyB0aGUgdW5kZXJsaW5lIG9yIGFueXRoaW5nIGJlbG93IGl0LlxuICAgIHBhZGRpbmc6IDEycHggNHB4IDRweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBlYXNlLCBib3JkZXItY29sb3IgMC4xNXMgZWFzZTtcblxuICAgICYtLWFjdGl2ZSB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkcHVycGxlLTYwMDtcbiAgICAgIGNvbG9yOiAkcHVycGxlLTYwMDtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkcHVycGxlLTYwMDtcbiAgICB9XG4gIH1cblxuICAmX19lcnJvciB7XG4gICAgYmFja2dyb3VuZDogI2ZkZWNlYztcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgY29sb3I6ICRyZWQtNTAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIHBhZGRpbmc6IDEwcHggMTRweDtcbiAgfVxuXG4gICZfX3RvYXN0IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6ICMzNTM1NEI7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIC8vIEZpeGVkIHRvIHRoZSBib3R0b20gb2YgdGhlIHZpZXdwb3J0LCBtYXRjaGluZyB0aGUgcHJvZ3JhbXMgdG9hc3RcbiAgICAvLyAoLnByb2dyYW1zLXRvYXN0IGluIF9wcm9ncmFtX2NhcmRzLnNjc3MpLiBUaGUgcmFpbCBvZmZzZXRzIGZvciB0aGVcbiAgICAvLyBjZW50cmUgbGluZSBsaXZlIGJlbG93IHRoZSBibG9jay5cbiAgICBib3R0b206IDMycHg7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDE2LCAyNCwgNDAsIDAuMjQpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGdhcDogMzJweDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAzMnB4KTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcGFkZGluZzogOHB4IDhweCA4cHggMTZweDtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAvLyBPdmVyIHRoZSBwYWdlIGFuZCBpdHMgc3RpY2t5IGhlYWRlcjsgYmVsb3cgLm1vZGFsLXZpZXcgKDEwMDApLlxuICAgIHotaW5kZXg6IDkwMDtcbiAgfVxuXG4gICZfX3RvYXN0LWNoZWNrIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICB3aWR0aDogMjBweDtcbiAgfVxuXG4gICZfX3RvYXN0LW1lc3NhZ2Uge1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuXG4gICZfX3RvYXN0LWNsb3NlIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGhlaWdodDogMjhweCAhaW1wb3J0YW50O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIG1hcmdpbjogMDtcbiAgICBtaW4taGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB3aWR0aDogMjhweCAhaW1wb3J0YW50O1xuXG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgIHdpZHRoOiAxNnB4O1xuICAgIH1cbiAgfVxuXG4gICZfX3Bob3RvIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gIH1cblxuICAmX19hdmF0YXIge1xuICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGhlaWdodDogOTZweDtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB3aWR0aDogOTZweDtcbiAgfVxuXG4gICZfX3Bob3RvLWFjdGlvbnMge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDRweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIH1cblxuICAmX191cGxvYWQtYnRuIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6ICNmNmY2Zjc7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTQwMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGdhcDogOHB4O1xuICAgIC8vIEdsb2JhbCBgYnV0dG9uYCBzZXRzIG1pbi9tYXgtaGVpZ2h0IDUwcHg7IGJvdGggbXVzdCBiZSBvdmVycmlkZGVuLlxuICAgIGhlaWdodDogMzZweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDM2cHg7XG4gICAgbWluLWhlaWdodDogMzZweDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB3aWR0aDogMTI1cHg7XG5cbiAgICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogIzkwOTA5MDtcbiAgICB9XG5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgfVxuICB9XG5cbiAgJl9fZGVsZXRlLWJ0biB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgY29sb3I6ICRyZWQtNTAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgIHBhZGRpbmc6IDhweCAycHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG5cbiAgJl9fcGhvdG8taGludCB7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgZmxleC1iYXNpczogMTAwJTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgJl9fZmlsZS1pbnB1dCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICZfX2NhcmQge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGF0aGxldGUtcHJvZmlsZS1ib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAvLyBGaWdtYSBzaXplcyB0aGUgcHJvZmlsZSBjYXJkcyBhdCA2NDAgd2lkZSBvbiBib3RoIHRhYnMuXG4gICAgbWF4LXdpZHRoOiA2NDBweDtcbiAgICBwYWRkaW5nOiAyNHB4O1xuXG4gICAgJi0tc3BhY2VkIHtcbiAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgfVxuXG4gICAgLy8gVGhlIFBoeXNpY2FsIEluZm8gY2FyZCBpcyA2NDB4MjA0LlxuICAgICYtLXBoeXNpY2FsIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDIwNHB4O1xuICAgIH1cbiAgfVxuXG4gICZfX3JvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDE2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgICYtLWZ1bGwgLmF0aGxldGUtcHJvZmlsZV9fZmllbGQge1xuICAgICAgZmxleDogMSAxIDEwMCU7XG4gICAgfVxuICB9XG5cbiAgJl9fZmllbGQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAxIDA7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtaW4td2lkdGg6IDA7XG5cbiAgICAmLS1mdWxsIHtcbiAgICAgIGZsZXg6IDEgMSAxMDAlO1xuICAgIH1cbiAgfVxuXG4gICZfX2dyb3VwLXNlbGVjdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJi0tb3BlbiB7XG4gICAgICAuYXRobGV0ZS1wcm9maWxlX19ncm91cC1zZWxlY3QtdHJpZ2dlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS02MDA7XG4gICAgICB9XG5cbiAgICAgIC5hdGhsZXRlLXByb2ZpbGVfX2dyb3VwLWNhcmV0IHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMicgaGVpZ2h0PSc4JyB2aWV3Qm94PScwIDAgMTIgOCclM0UlM0NwYXRoIGZpbGw9JyUyMzczNTVCNScgZD0nTTEuNC42TDYgNS4yIDEwLjYuNiAxMiAyIDYgOCAwIDJ6Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDE4MGRlZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fZ3JvdXAtc2VsZWN0LXRyaWdnZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDFkMWQxO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDhweDtcbiAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgIHBhZGRpbmc6IDZweCAzNnB4IDZweCAxMnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIC8vIEdsb2JhbCBgYnV0dG9uYCB1cHBlcmNhc2VzOyB0aGUgdGFncyBpbmhlcml0IGl0IHdpdGhvdXQgdGhpcy5cbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gICZfX2dyb3VwLXRhZ3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogNnB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gICZfX2dyb3VwLXRhZyB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiAjRjJFREZDO1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgY29sb3I6ICRwdXJwbGUtNjAwO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIC8vIFRoZSB0cmlnZ2VyIGlzIGEgPGJ1dHRvbj4sIHNvIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaGFuZHMgaXRzIGNoaWxkcmVuXG4gICAgLy8gSGVsdmV0aWNhIGFuZCAxcHggdHJhY2tpbmc7IGJvdGggaGF2ZSB0byBiZSBuYW1lZCBleHBsaWNpdGx5IGhlcmUuXG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgLy8gZm9udC1zdHlsZSBwaW5zIHRoZSBTZW1pQm9sZCBmYWNlIOKAlCBOdWRpc3RhIGFsc28gc2hpcHMgYSA2MDAgaXRhbGljLlxuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGhlaWdodDogMjRweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAmX19ncm91cC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG5cbiAgJl9fZ3JvdXAtY2FyZXQge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTInIGhlaWdodD0nOCcgdmlld0JveD0nMCAwIDEyIDgnJTNFJTNDcGF0aCBmaWxsPSclMjM2ZDZkNmQnIGQ9J00xLjQuNkw2IDUuMiAxMC42LjYgMTIgMiA2IDggMCAyeicvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDEycHg7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlO1xuICAgIHdpZHRoOiAxMnB4O1xuICB9XG5cbiAgJl9fZ3JvdXAtZHJvcGRvd24ge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGF0aGxldGUtcHJvZmlsZS1ib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgbWF4LWhlaWdodDogMjgwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAvLyA2cHggaW5zZXQgZWFjaCBzaWRlIGxlYXZlcyB0aGUgcm93cyBhdCB0aGUgNTc2cHggRmlnbWEgd2lkdGguXG4gICAgcGFkZGluZzogNnB4O1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAmX19ncm91cC1vcHRpb24ge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZ2FwOiA4cHg7XG4gICAgLy8gR2xvYmFsIGBidXR0b25gIHBpbnMgbWluL21heC1oZWlnaHQgdG8gNTBweDsgYm90aCBuZWVkIG92ZXJyaWRpbmcuXG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC1oZWlnaHQ6IDM2cHg7XG4gICAgbWluLWhlaWdodDogMzZweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICYgKyAmIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cblxuICAgID4gc3BhbjpsYXN0LWNoaWxkIHtcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmLS1zZWxlY3RlZCB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDExNSwgODUsIDE4MSwgMC4wOCk7XG4gICAgfVxuICB9XG5cbiAgJl9fZ3JvdXAtY2hlY2tib3gge1xuICAgIGJvcmRlcjogMS41cHggc29saWQgJHB1cnBsZS02MDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGhlaWdodDogMThweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDE4cHg7XG5cbiAgICAvLyBGaWdtYSBrZWVwcyB0aGUgYm94IG91dGxpbmVkIHdoZW4gY2hlY2tlZCBhbmQgZHJhd3MgdGhlIHRpY2sgaW4gYWNjZW50LFxuICAgIC8vIHJhdGhlciB0aGFuIGZpbGxpbmcgdGhlIGJveCBhbmQgcmV2ZXJzaW5nIHRoZSB0aWNrIG91dCBpbiB3aGl0ZS5cbiAgICAmLS1jaGVja2VkOjphZnRlciB7XG4gICAgICBib3JkZXI6IHNvbGlkICRwdXJwbGUtNjAwO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwIDJweCAycHggMDtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgaGVpZ2h0OiA5cHg7XG4gICAgICBsZWZ0OiA1cHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDFweDtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgIHdpZHRoOiA1cHg7XG4gICAgfVxuICB9XG5cbiAgJl9fbGFiZWwge1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgfVxuXG4gICZfX2lucHV0IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMWQxZDE7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgcGFkZGluZzogMCAxMnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLy8gVGhlIG1peGluIGVtaXRzIG9uZSBydWxlIHBlciB2ZW5kb3Igc2VsZWN0b3I7IGdyb3VwaW5nIHRoZW0gd291bGQgbWFrZVxuICAgIC8vIGJyb3dzZXJzIGRyb3AgdGhlIHdob2xlIGxpc3Qgb3ZlciB0aGUgb25lIHBzZXVkby1lbGVtZW50IHRoZXkgZG9uJ3Qga25vdy5cbiAgICAvLyBJdCBwcmVkYXRlcyBzdGFuZGFyZCA6OnBsYWNlaG9sZGVyLCBzbyB0aGF0IGdldHMgaXRzIG93biBydWxlIGJlbG93LlxuICAgIC8vIG9wYWNpdHkgYmVjYXVzZSBGaXJlZm94IGRpbXMgcGxhY2Vob2xkZXJzIGJ5IGRlZmF1bHQuXG4gICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRibGFjay00MDA7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiAkYmxhY2stNDAwO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS02MDA7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgYmFja2dyb3VuZDogI2Y2ZjZmNztcbiAgICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG5cbiAgICAvLyBmbGF0cGlja3IncyB2aXNpYmxlIGFsdCBpbnB1dCBpcyByZWFkb25seSBhbmQgb3BlbnMgdGhlIGNhbGVuZGFyIG9uXG4gICAgLy8gY2xpY2ssIHNvIGl0IHNob3VsZCByZWFkIGFzIGNsaWNrYWJsZSBsaWtlIHRoZSBzZWxlY3RzIGJlc2lkZSBpdC5cbiAgICAmW3JlYWRvbmx5XSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJi0taW52YWxpZCB7XG4gICAgICBib3JkZXItY29sb3I6ICRyZWQtNTAwO1xuICAgIH1cblxuICAgICYtLXVuaXQge1xuICAgICAgLy8gRmlnbWEgc2l6ZXMgdGhlIHVuaXQgaW5wdXRzIGF0IDI1OXB4OyBzaHJpbmsgb25seSBpZiB0aGUgY2FyZCBpcyBuYXJyb3dlci5cbiAgICAgIGZsZXg6IDAgMSAyNTlweDtcbiAgICAgIG1heC13aWR0aDogMjU5cHg7XG4gICAgICB3aWR0aDogMjU5cHg7XG4gICAgfVxuICB9XG5cbiAgLy8gQmVhdCBnbG9iYWwgaW5wdXRbdHlwZT0ndGV4dCddIHsgYm9yZGVyLXJhZGl1czogMnB4IH0gZnJvbSBfYmFzZS5zY3NzXG4gIGlucHV0LmF0aGxldGUtcHJvZmlsZV9faW5wdXQsXG4gIGlucHV0LmF0aGxldGUtcHJvZmlsZV9faW5wdXRbdHlwZT0ndGV4dCddLFxuICBpbnB1dC5hdGhsZXRlLXByb2ZpbGVfX2lucHV0W3R5cGU9J2VtYWlsJ10sXG4gIGlucHV0LmF0aGxldGUtcHJvZmlsZV9faW5wdXRbdHlwZT0nbnVtYmVyJ10sXG4gIHNlbGVjdC5hdGhsZXRlLXByb2ZpbGVfX2lucHV0IHtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIH1cblxuICAvLyBTYW1lIGdsb2JhbCBydWxlIGFsc28gc2V0cyBib3JkZXI6IDFweCBzb2xpZCAkZ3JleSBhbmQgcGFkZGluZzogM3B4LCB3aGljaFxuICAvLyBsZWZ0IHRleHQgZmllbGRzIGRhcmtlci1lZGdlZCBhbmQgZmx1c2ggbGVmdCBuZXh0IHRvIHRoZSBlbWFpbCBmaWVsZC4gVGhlXG4gIC8vIHN0YXRlIG1vZGlmaWVycyBhcmUgcmVwZWF0ZWQgaGVyZSBzbyB0aGV5IHN0aWxsIHdpbiBhdCB0aGlzIHNwZWNpZmljaXR5LlxuICBpbnB1dC5hdGhsZXRlLXByb2ZpbGVfX2lucHV0W3R5cGU9J3RleHQnXSxcbiAgaW5wdXQuYXRobGV0ZS1wcm9maWxlX19pbnB1dFt0eXBlPSdlbWFpbCddLFxuICBpbnB1dC5hdGhsZXRlLXByb2ZpbGVfX2lucHV0W3R5cGU9J251bWJlciddIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDFkMWQxO1xuICAgIHBhZGRpbmc6IDAgMTJweDtcblxuICAgICY6Zm9jdXMge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcHVycGxlLTYwMDtcbiAgICB9XG5cbiAgICAmLmF0aGxldGUtcHJvZmlsZV9faW5wdXQtLWludmFsaWQge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcmVkLTUwMDtcbiAgICB9XG4gIH1cblxuICAvLyBObyBzcGlubmVyIGFycm93cyBvbiB0aGUgbnVtZXJpYyBmaWVsZHMuXG4gIGlucHV0LmF0aGxldGUtcHJvZmlsZV9faW5wdXRbdHlwZT0nbnVtYmVyJ10ge1xuICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAgIGFwcGVhcmFuY2U6IHRleHRmaWVsZDtcblxuICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXG4gICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fc2VsZWN0LXdyYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gICZfX3NlbGVjdCB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMicgaGVpZ2h0PSc4JyB2aWV3Qm94PScwIDAgMTIgOCclM0UlM0NwYXRoIGZpbGw9JyUyMzZkNmQ2ZCcgZD0nTTEuNC42TDYgNS4yIDEwLjYuNiAxMiAyIDYgOCAwIDJ6Jy8lM0UlM0Mvc3ZnJTNFXCIpO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDEycHggY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgcGFkZGluZy1yaWdodDogMzZweDtcblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjZmNztcbiAgICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG5cbiAgICAvLyA6OnBsYWNlaG9sZGVyIGRvZXNuJ3QgYXBwbHkgdG8gPHNlbGVjdD4uIG5nTW9kZWwgYWRkcyAubmctZW1wdHkgZm9yIHVzLFxuICAgIC8vIGFuZCBpdCBrZXlzIG9mZiAkaXNFbXB0eSwgc28gYSBsZWdpdGltYXRlIGlkIG9mIDAgc3RpbGwgY291bnRzIGFzIGNob3Nlbi5cbiAgICAmLm5nLWVtcHR5IHtcbiAgICAgIGNvbG9yOiAkYmxhY2stNDAwO1xuICAgIH1cblxuICAgIC8vIFRoZSBvcGVuIGRyb3Bkb3duIHN0YXlzIHJlYWRhYmxlIHdoaWxlIHRoZSBjbG9zZWQgY29udHJvbCByZWFkcyBncmV5LlxuICAgIG9wdGlvbiB7XG4gICAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgICB9XG4gIH1cblxuICAmX191bml0LWdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDE2cHg7XG4gIH1cblxuICAmX191bml0LWZpZWxkIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAmX191bml0IHtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgfVxuXG4gIC8vIEFjY291bnQgdGFiOiBBY3RpdmUgLyBTaWduLWluIGFjY2VzcyAvIFdlbGNvbWUgZW1haWwuIEEgcGFpciBvZiBidXR0b25zXG4gIC8vIHJhdGhlciB0aGFuIHJhZGlvIGlucHV0cywgdG8gbWF0Y2ggdGhlIHRhYiBzdHJpcCBhbmQgZ3JvdXAgcGlja2VyIGFib3ZlLlxuICAmX19jaG9pY2UtZ3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAmX19jaG9pY2Uge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2QxZDFkMTtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgLy8gR2xvYmFsIGBidXR0b25gIHBpbnMgbWluL21heC1oZWlnaHQgdG8gNTBweDsgYm90aCBuZWVkIG92ZXJyaWRpbmcuXG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDQwcHg7XG4gICAgbWluLWhlaWdodDogNDBweDtcbiAgICBtaW4td2lkdGg6IDcycHg7XG4gICAgcGFkZGluZzogMCAxNnB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuXG4gICAgJjpob3Zlcjpub3QoLmF0aGxldGUtcHJvZmlsZV9fY2hvaWNlLS1zZWxlY3RlZCkge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjOTA5MDkwO1xuICAgIH1cblxuICAgICYtLXNlbGVjdGVkIHtcbiAgICAgIGJhY2tncm91bmQ6ICNmM2VlZmY7XG4gICAgICBib3JkZXItY29sb3I6ICRhdGhsZXRlLXByb2ZpbGUtYWNjZW50LWhvdmVyO1xuICAgICAgY29sb3I6ICRibGFjay05MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fYWNjb3VudC1hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDEycHg7XG4gIH1cblxuICAmX19hY2NvdW50LWJ0biB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG5cbiAgJl9fZmllbGQtZXJyb3Ige1xuICAgIGNvbG9yOiAkcmVkLTUwMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICB9XG5cbiAgJl9fZmllbGQtaGludCB7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgfVxuXG4gICZfX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAvLyBLZWVwcyBTYXZlIGFsaWduZWQgdG8gdGhlIHJpZ2h0IGVkZ2Ugb2YgdGhlIDY0MHB4IGNhcmRzLlxuICAgIG1heC13aWR0aDogNjQwcHg7XG4gICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAmX19zYXZlIHtcbiAgICBiYWNrZ3JvdW5kOiAjQzNBREYyO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAxNDhweDtcbiAgICBwYWRkaW5nOiAxMnB4IDIycHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlO1xuXG4gICAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjYjE5YWU2O1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgb3BhY2l0eTogMC43O1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKG1vYmlsZSkge1xuICAuYXRobGV0ZS1wcm9maWxlIHtcbiAgICAvLyBQYWdlIGJveCBvbmx5OyBzZWUgdGhlIHNjb3Bpbmcgbm90ZSBvbiB0aGUgbWFpbiAuYXRobGV0ZS1wcm9maWxlIGJsb2NrLlxuICAgIC5hdGhsZXRlLXByb2ZpbGUtcGFnZSAmIHtcbiAgICAgIHBhZGRpbmc6IDI0cHggMTZweCA0MHB4O1xuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICB9XG5cbiAgICAmX19waG90byB7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgJl9fcm93IHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgJl9faW5wdXQtLXVuaXQge1xuICAgICAgbWF4LXdpZHRoOiAyNTlweDtcbiAgICAgIHdpZHRoOiAyNTlweDtcbiAgICB9XG4gIH1cbn1cblxuLy8gQ2VudHJlIHRoZSBzYXZlIHRvYXN0IG9uIHRoZSBjb250ZW50IGNvbHVtbiByYXRoZXIgdGhhbiB0aGUgdmlld3BvcnQsIHNhbWVcbi8vIDpoYXMoKSBjb25kaXRpb25zIC5wcm9ncmFtcy10b2FzdCB1c2VzIHRvIGFkZCB0aGUgcmFpbCB3aWR0aCBiYWNrLlxuLm1haW4tdmlldzpoYXMoPiAubWVudS1jb250ZW50IC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zKSAuYXRobGV0ZS1wcm9maWxlX190b2FzdCB7XG4gIGxlZnQ6IGNhbGMoNTAlICsgI3skYXRobGV0ZS1zaWRlYmFyLXdpZHRofSAvIDIpO1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAjeyRhdGhsZXRlLXNpZGViYXItd2lkdGh9IC0gMzJweCk7XG59XG5cbi5tYWluLXZpZXc6aGFzKD4gLm1lbnUtY29udGVudCAucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcy5pcy1jb2xsYXBzZWQpIC5hdGhsZXRlLXByb2ZpbGVfX3RvYXN0IHtcbiAgbGVmdDogY2FsYyg1MCUgKyAjeyRhdGhsZXRlLXNpZGViYXItY29sbGFwc2VkLXdpZHRofSAvIDIpO1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAjeyRhdGhsZXRlLXNpZGViYXItY29sbGFwc2VkLXdpZHRofSAtIDMycHgpO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmF0aGxldGUtcHJvZmlsZV9fdG9hc3QsXG4gIC5tYWluLXZpZXc6aGFzKD4gLm1lbnUtY29udGVudCAucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcykgLmF0aGxldGUtcHJvZmlsZV9fdG9hc3QsXG4gIC5tYWluLXZpZXc6aGFzKD4gLm1lbnUtY29udGVudCAucHJvZmlsZS1tZW51LS1zaWRlYmFyLmhhcy1pdGVtcy5pcy1jb2xsYXBzZWQpIC5hdGhsZXRlLXByb2ZpbGVfX3RvYXN0IHtcbiAgICBib3R0b206IDE2cHg7XG4gICAgZ2FwOiAxNnB4O1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAyNHB4KTtcbiAgfVxufVxuIiwiXG4uY2F0YWxvZy1mZWF0dXJlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2ZjZmNmO1xuICBoZWlnaHQ6IDQwMHB4O1xuXG4gIC5mZWF0dXJlLWNvbnRhaW5lciB7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IHRvcDtcbiAgICBtaW4taGVpZ2h0OiA0MDBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmLnJ1bm5pbmctbWFuIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnL2ltYWdlcy9wcm9ncmFtX2NhdGFsb2dfYmFja2dyb3VuZC5wbmcnKTtcbiAgICAgIFxuICAgICAgLmZlYXR1cmUtY29udGVudCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwLjk7XG4gICAgICAgIHdpZHRoOiA0MDBweDtcbiAgICAgIH1cblxuICAgICAgLm1lc3NhZ2UtdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZmVhdHVyZS1jb250ZW50IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNDBweDtcbiAgICAgIGxlZnQ6IDgwcHg7XG4gICAgICB3aWR0aDogNDAwcHg7XG4gICAgICBjb2xvcjogI2VmZWZlZjtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICBsaW5lLWhlaWdodDogMC45NTtcblxuICAgICAgaDIge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICB9XG5cbiAgICAgIHAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG5cbiAgICAgIGgyLCAudGl0bGUtdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogNTVweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgcCwgLm1lc3NhZ2UtdGV4dCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5mZWF0dXJlLWJ1dHRvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDM1cHg7XG4gICAgICBsZWZ0OiA4MHB4O1xuICAgICAgY29sb3I6ICNlZmVmZWY7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgIH1cbiAgfVxuXG4gIC5tYXJrZXJzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIGhlaWdodDogNDBweDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5tYXJrZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIG1hcmdpbjogNnB4O1xuICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgd2lkdGg6IDEwcHg7XG5cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzQxYmFlZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmNhdGFsb2ctc2VsZWN0ZWQge1xuICBwYWRkaW5nOiAzNXB4O1xuICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgcGFkZGluZzogMjBweDtcbiAgIH1cblxuICAudGl0bGUtY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDEwMHB4O1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICB9XG5cbiAgICAudGl0bGUge1xuICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gICAgfVxuXG4gICAgLm5hbWUge1xuICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgIH1cblxuICAgIC5yZXR1cm4tbGluayB7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgICAgfVxuICAgICAgd2lkdGg6IDEyMHB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gaSB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5kZXRhaWwtY29udGFpbmVyIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgIC5pbmZvLXJvdy1oZWFkZXIge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIG1heC13aWR0aDogMjYwcHg7XG5cbiAgICAgID4gZGl2IHtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICB3aWR0aDogMTMwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaW5mby1yb3cge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgICAgIG1heC13aWR0aDogMjYwcHg7XG5cbiAgICAgID4gZGl2IHtcbiAgICAgICAgaGVpZ2h0OiA5MHB4O1xuICAgICAgICB3aWR0aDogMTMwcHg7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICA+IGRpdiArIGRpdiB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NjYztcbiAgICAgIH1cblxuICAgICAgLmluZm8ge1xuICAgICAgICBmb250LXNpemU6IDI2cHg7XG4gICAgICB9XG5cbiAgICAgIC5sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZGVzY3JpcHRpb24tcm93IHtcbiAgICAgIGZvbnQtc2l6ZToxMnB4O1xuICAgICAgbWFyZ2luOiAyMHB4IDA7XG4gICAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgfVxuICAgICAgLmxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbWFyZ2luOiAxMHB4IDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmJ1dHRvbi1jb250YWluZXIge1xuICAgICAgbWFyZ2luOiAyMHB4IDA7XG4gICAgICB3aWR0aDogMjAwcHg7XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIGJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICBidXR0b24gKyBidXR0b24ge1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2FtcGxlLWNvbnRhaW5lciB7XG4gICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgLy8gbWFyZ2luLWJvdHRvbTogNjBweDtcbiAgICAgIH1cblxuICAgICAgLnZpZGVvLWxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBtYXgtd2lkdGg6IDMwMHB4O1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAudmlkZW8tY29udGFpbmVyIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICAgICAgbWF4LWhlaWdodDogMjM5cHg7XG4gICAgICAgIG1heC13aWR0aDogNDI1cHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIzOXB4O1xuICAgICAgICAvLyBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICAvLyBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIC8vIH1cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgICAgIH1cblxuICAgICAgICAubWlzc2luZy1tZWRpYSB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICAgICAgICBjb2xvcjogI2NjYztcbiAgICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgICB3aWR0aDogOTklO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5leGVyY2lzZS1zZWxlY3RlZCB7XG4gIHBhZGRpbmc6IDM1cHg7XG5cbiAgLnRpdGxlLWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiAxMDBweDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgfVxuICAgIC50aXRsZSB7XG4gICAgICBmb250LXNpemU6IDI2cHg7XG4gICAgICBsaW5lLWhlaWdodDogMjZweDtcbiAgICB9XG5cbiAgICAubmFtZSB7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgfVxuXG4gICAgLnJldHVybi1saW5rIHtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgfVxuICAgICAgd2lkdGg6IDEyMHB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gaSB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5kZXRhaWwtY29udGFpbmVyIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgIC5pbmZvLXJvdy1oZWFkZXIge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIG1heC13aWR0aDogNDAwcHg7XG5cbiAgICAgID4gZGl2IHtcbiAgICAgICAgbWluLWhlaWdodDogMjBweDtcbiAgICAgICAgbWluLXdpZHRoOiAxMzBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5pbmZvLXJvdyB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICAgICAgbWF4LXdpZHRoOiA0MDBweDtcblxuICAgICAgPiBkaXYge1xuICAgICAgICBtaW4taGVpZ2h0OiA5MHB4O1xuICAgICAgICBtaW4td2lkdGg6IDEzMHB4O1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgPiBkaXYgKyBkaXYge1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjY2M7XG4gICAgICB9XG5cbiAgICAgIC5pbmZvIHtcbiAgICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgfVxuXG4gICAgICAubGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmRlc2NyaXB0aW9uLXJvdyB7XG4gICAgICBmb250LXNpemU6MTJweDtcbiAgICAgIG1hcmdpbjogMjBweCAwO1xuICAgICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgIH1cbiAgICAgIC5sYWJlbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIG1hcmdpbjogMTBweCAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5idXR0b24tY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbjogMjBweCAwO1xuICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICBidXR0b24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgYnV0dG9uICsgYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnNhbXBsZS1jb250YWluZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIC8vIG1hcmdpbi1ib3R0b206IDYwcHg7XG4gICAgICB9XG5cbiAgICAgIC52aWRlby1sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgbWF4LXdpZHRoOiAzMDBweDtcblxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnZpZGVvLWNvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDIzOXB4O1xuICAgICAgICBtYXgtd2lkdGg6IDQyNXB4O1xuICAgICAgICBtaW4taGVpZ2h0OiAyMzlweDtcbiAgICAgICAgLy8gQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgLy8gbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAvLyB9XG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5taXNzaW5nLW1lZGlhIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgICAgIGNvbG9yOiAjY2NjO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICAgIHdpZHRoOiA5OSU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuZXhlcmNpc2UtaW5mby1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIDQwMHB4KTtcbiAgfVxuXG4gIC5zYW1wbGUtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMCAzNTBweCk7XG5cbiAgICAuZmlsZS1pbnB1dC13cmFwcGVyIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LWVuZCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG5cbiAgICAgIG1hcmdpbi10b3A6IDVweDtcblxuICAgICAgPiBidXR0b24ge1xuICAgICAgICBtaW4taGVpZ2h0OiAzNXB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiAzNXB4O1xuICAgICAgfVxuXG4gICAgICA+IGlucHV0W3R5cGU9XCJmaWxlXCJdIHtcbiAgICAgICAgb3BhY2l0eTogMCAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMXB4ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmZvcm0tZmllbGRzICB7XG4gICAgXG4gICAgLndlZWstc2VsZWN0aW9uIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDYwcHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIG1pbi13aWR0aDogODBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDUwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRibHVlO1xuICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgJGJsdWU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgICBcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAkYmx1ZTtcbiAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA2cHg7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAkYmx1ZTtcbiAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNnB4O1xuICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA2cHg7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyOm5vdCguYWN0aXZlKSB7XG4gICAgICAgICAgY29sb3I6ICNlZmVmZWY7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5YmQ3ZWE7XG4gICAgICAgIH1cblxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgY29sb3I6ICNmZWZlZmU7XG4gICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGFiZWwgIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgICAgcGFkZGluZzogMnB4O1xuXG4gICAgICBzcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAgICAgbWluLXdpZHRoOiAxMjBweDtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4zMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjdweDtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgaW5wdXQgIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCgxIDEgYXV0byk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZihzdHJldGNoKTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBmb250LXNpemU6IDIxcHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjRweDtcbiAgICAgIH1cblxuICAgICAgc2VsZWN0IHtcbiAgICAgICAgQGluY2x1ZGUgYXBwZWFyYW5jZShub25lKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleCgxIDEgYXV0byk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZihzdHJldGNoKTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICBmb250LXNpemU6IDIxcHg7XG4gICAgICAgIHRleHQtaW5kZW50OiAzcHg7XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6LW1vei1mb2N1c3Jpbmcge1xuICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBzZWxlY3QgKyBpLmljb24tY2FyZXQtZG93biB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAyNXB4O1xuICAgICAgICByaWdodDogMjBweDtcbiAgICAgICAgY29sb3I6ICNEOURCREM7XG4gICAgICAgIGZvbnQtc2l6ZTogOHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLnByb2dyYW0taGVhZGVyLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGZsZXgoMSk7XG59XG5cbi5wcm9ncmFtLWVkaXQtaGVhZGVyIHtcbiAgbWluLWhlaWdodDogODVweDtcbiAgbWFyZ2luLWJvdHRvbTogMzBweCAhaW1wb3J0YW50O1xufVxuXG4ucHJvZ3JhbS10eXBlLXNlbGVjdGlvbiB7XG4gIG1pbi1oZWlnaHQ6IDUwcHg7XG4gID4gLnR5cGUtaXRlbSB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNDBweCk7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBjb2xvcjogI2RkZDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLnBpbGwge1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgY29sb3I6ICM3NTc3N0E7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGxpbmUtaGVpZ2h0OiAyNXB4O1xuICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgYmFja2dyb3VuZDogI0FGQjFCNDtcbiAgICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG4gICAgJi5hY3RpdmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmx1ZTtcbiAgICAgIGNvbG9yOiAjNzU3ODdiO1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cbiAgICAmOmhvdmVyOm5vdCguYWN0aXZlKSB7XG4gICAgICBib3JkZXItY29sb3I6ICRibHVlO1xuICAgIH1cbiAgfVxuICA+IC50eXBlLWl0ZW0gKyAudHlwZS1pdGVtIHtcbiAgICBtYXJnaW4tbGVmdDogMzBweDtcbiAgfVxuICA+IC5jb3B5LWNvbnRyb2xzIHtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtZW5kKTtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gIH1cbn1cblxuLnByb2dyYW0tc2NoZWR1bGUtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1lbmQpO1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LWVuZCk7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG5cbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg0NXB4KTtcbiAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDEzMHB4KTtcbiAgfVxufVxuXG4ucHJvZ3JhbS1lZGl0IHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMHB4O1xuXG4gIC5wcm9ncmFtLXN0cmF0ZWd5LWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcblxuICAgIC5wcm9ncmFtLXN0cmF0ZWd5IHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cbiAgICAgIGkge1xuICAgICAgICBAaW5jbHVkZSBmbGV4KDAgMzBweCk7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG4gICAgICAuc3RyYXRlZ3ktbmFtZSB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoMSBhdXRvKTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgICB9XG4gICAgICAuc3RyYXRlZ3ktYWN0aW9uIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCgwIDE4MHB4KTtcbiAgICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMzVweCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5wcm9ncmFtLXN0cmF0ZWd5LWNvbnRhaW5lciArIC5wcm9ncmFtLXN0cmF0ZWd5LWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgfVxuXG4gIC5wcm9ncmFtLXRlY2huaXF1ZSB7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGNvbG9yOiAjZWZlZmVmO1xuICAgIC5jb3VudGVyIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDQ1cHg7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG4gICAgLm5hbWUge1xuICAgICAgQGluY2x1ZGUgZmxleCgxIDEgYXV0byk7XG4gICAgICA+IHNwYW4ge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgICAgIHBhZGRpbmc6IDRweCAwO1xuICAgICAgfVxuICAgIH1cbiAgICAuYWN0aW9uIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMzBweDtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBjb2xvcjogJGJsdWU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBcbiAgICAgIC5pY29uLXBsdXMge1xuICAgICAgICBmb250LXNpemU6IDhweDtcbiAgICAgIH1cbiAgICAgID4gc3BhbiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnByb2dyYW0tZXhlcmNpc2UtY29udGFpbmVyIHtcbiAgICBtaW4taGVpZ2h0OiA4MHB4O1xuICAgID4gZGl2IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICBtYXJnaW46IDFweCAwO1xuICAgICAgbWluLWhlaWdodDogODBweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgJi5hY3RpdmUtaXRlbSB7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIC5wcm9ncmFtLWV4ZXJjaXNlIHtcbiAgICAgICAgICAuZHJhZy1pY29uIHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgLmFjdGlvbnMge1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICA+IGRpdjpmaXJzdC1jaGlsZCB7XG4gICAgICAuc29ydC1pY29ucyAuaWNvbjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgIH1cbiAgICB9XG4gICAgPiBkaXY6bGFzdC1jaGlsZCB7XG4gICAgICAuc29ydC1pY29ucyAuaWNvbjpsYXN0LWNoaWxkIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgfVxuICAgIH1cbiAgICAucHJvZ3JhbS1ub3RlIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICBtYXJnaW4tbGVmdDogOTBweDtcbiAgICAgIG1heC13aWR0aDogNDAwcHg7XG4gICAgfVxuICAgIC5wcm9ncmFtLWV4ZXJjaXNlIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDgwcHg7XG4gICAgICBtaW4td2lkdGg6IDYwMHB4O1xuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgIG1pbi13aWR0aDogMFxuICAgICAgfVxuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAuZHJhZy1pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMjhweCk7XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoODVweCk7XG4gICAgICAgIGNvbG9yOiAjYmJiO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuICAgICAgLnNvcnQtaWNvbnMge1xuICAgICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg1MHB4KTtcbiAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCg4NXB4KTtcbiAgICAgICAgY29sb3I6ICNiYmI7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgLmljb24ge1xuICAgICAgICAgIGNvbG9yOiAjZGVkZWRlO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJGJsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuaW5mbyB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxOXB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIH1cbiAgICAgICAgLmF0dHJpYnV0ZXMge1xuICAgICAgICAgIGdhcDogNXB4IDI1cHg7XG4gICAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgc3BhbjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLmFjdGlvbnMge1xuICAgICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCgzOHB4KTtcbiAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCgxODBweCk7XG4gICAgICAgIGNvbG9yOiAjZGRkO1xuICAgICAgICBmb250LXNpemU6IDE5cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5wcm9ncmFtLWVkaXQtZm9vdGVyIHtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1lbmQpO1xuICBtYXJnaW46IDE1cHggMzBweDtcbn0iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4ud2hpdGVib2FyZCB7XG4gIG1pbi13aWR0aDogNjQwcHg7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICYgPiBzZWN0aW9uIHtcbiAgICBtYXJnaW46IDE1cHggMzBweDtcbiAgfVxufVxuXG4ud2hpdGVib2FyZC1zY2hlZHVsZSB7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIC53aGl0ZWJvYXJkLXByb2dyYW0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICBwYWRkaW5nOiAzMHB4IDAgMTVweDtcbiAgfVxufVxuXG4ud2hpdGVib2FyZC1wcm9ncmFtIHtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMTQwcHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuICBwYWRkaW5nOiAzMHB4IDMwcHggMTVweDtcblxuICAubmFtZSB7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gIH1cblxuICAub3JpZ2luIHtcbiAgICBmb250LXNpemU6IDI2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgbWluLWhlaWdodDogMzBweDtcbiAgfVxuXG4gIC5lZGl0IHtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgbWluLWhlaWdodDogMjVweDtcblxuICAgIHNwYW4ge1xuICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuICB9XG59XG5cbi53aGl0ZWJvYXJkLWRhdGUge1xuICBzcGFuIHtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgLmRhdGUtaW5wdXQge1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDQwcHgpO1xuICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMTMwcHgpO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG5cbiAgICBpbnB1dCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjYmJiO1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNnB4O1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNnB4O1xuICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICB0ZXh0LWluZGVudDogNXB4O1xuICAgICAgb3V0bGluZTogMDtcbiAgICB9XG5cbiAgICAuaW5wdXQtaWNvbiB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMzBweCk7XG4gICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDMwcHgpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkYmx1ZTtcbiAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDZweDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA2cHg7XG5cbiAgICAgIGkuZmEge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmRhdGUtZGlzYWJsZWQge1xuICAgIC5pbnB1dC1pY29uIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsaWdodF9ncmV5O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0X2dyZXk7XG4gICAgfVxuICB9XG5cbn1cblxuXG5cbi53ZWVrLWxpc3Qge1xuICBAaW5jbHVkZSBsb2NrLWhlaWdodCg2MHB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbiAgcGFkZGluZzogMTBweCAzMHB4O1xuXG4gIC53ZWVrLWl0ZW0ge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgbWluLWhlaWdodDogMjhweDtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkYmx1ZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOm5vdCguYWN0aXZlKSB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLndlZWstY29weSB7XG4gICAgQGluY2x1ZGUgZmxleCgxIDEgMCUpO1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1lbmQpO1xuICB9XG59XG5cbi5kYXktbGlzdCB7XG4gIEBpbmNsdWRlIGxvY2staGVpZ2h0KDQ1cHgpO1xuICBtYXJnaW46IDIwcHggMDtcblxuICAuZGF5LWl0ZW0ge1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRibHVlO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYmx1ZTtcbiAgICBjb2xvcjogJGJsdWU7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIG1pbi1oZWlnaHQ6IDQ1cHg7XG4gICAgbWluLXdpZHRoOiA4MHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIH1cblxuICAgICY6aG92ZXI6bm90KC5hY3RpdmUpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNjUsIDE4NywgMjMxLCAwLjUpO1xuICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGJsdWU7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA2cHg7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA2cHg7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRibHVlO1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDZweDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA2cHg7XG4gICAgfVxuICB9XG59XG5cbi5kYXktbGlzdC1zY2hlZHVsZSB7XG5cbiAgLmRheS1pdGVtIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmJiO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcblxuICAgIC5kcmFnLWljb24ge1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMjBweCk7XG4gICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDMwcHgpO1xuICAgICAgY3Vyc29yOiBtb3ZlO1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5uYW1lIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuICB9XG5cbiAgLmRheS1pdGVtICsgLmRheS1pdGVtIHtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgfVxufVxuXG4ucHJvZ3JhbS1zZWN0aW9uIHtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNDVweCk7XG5cbiAgJi5hY2NlcHQtZHJvcCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBwYWRkaW5nOiAxMHB4O1xuXG4gICAgLmFjdGlvbi13aXRoLWljb24ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLm5hbWUgPiBpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLm5hbWUge1xuICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuXG4gICAgc3BhbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICB9XG4gIH1cblxuICAuYWN0aW9uIHtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMTEwcHgpO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcblxuICAgIHNwYW4ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgIGkuZmEge1xuICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgIH1cbiAgfVxufVxuXG4ucHJvZ3JhbS1zZWN0aW9uLXBsYWNlaG9sZGVyIHtcblxuICAmID4gZGl2IHtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIGJvcmRlcjogMXB4IGRhc2hlZCAjYmJiO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBtYXJnaW46IDRweDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIHNwYW4udGV4dCB7XG4gICAgICBjb2xvcjogI2JiYjtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cbiAgfVxufVxuXG4ucHJvZ3JhbS1leGVyY2lzZS1jb250YWluZXIge1xuICBtaW4taGVpZ2h0OiA4NnB4O1xuXG4gICYgPiBkaXYge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIG1hcmdpbjogMnB4O1xuICAgIG1pbi1oZWlnaHQ6IDgwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmLmFjdGl2ZS1pdGVtIHtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICAucHJvZ3JhbS1leGVyY2lzZSB7XG4gICAgICAgIC5kcmFnLWljb24ge1xuICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgICAgICAuYWN0aW9ucyB7XG4gICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmFkZC1leGVyY2lzZSB7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBjb2xvcjogI2FhYTtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgYm9yZGVyOiAycHggZGFzaGVkICNDREQzRDc7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0VGRUZFRjtcblxuICAgIHNwYW4ge1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBjb2xvcjogI0NERDNENztcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuICB9XG5cbiAgLnByb2dyYW0tbm90ZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBtYXJnaW4tbGVmdDogOTBweDtcbiAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICB9XG5cbiAgLnByb2dyYW0tZXhlcmNpc2Uge1xuICAgIG1pbi1oZWlnaHQ6IDgwcHg7XG4gICAgbWluLXdpZHRoOiA2MDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIG1pbi13aWR0aDogMFxuICAgIH1cblxuICAgIC5kcmFnLWljb24ge1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMjhweCk7XG4gICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDg1cHgpO1xuICAgICAgY29sb3I6ICNiYmI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBmb250LXNpemU6IDE5cHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmluZm8ge1xuICAgICAgQGluY2x1ZGUgZmxleCgxKTtcblxuICAgICAgLnRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAxOXB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgfVxuXG4gICAgICAuYXR0cmlidXRlcyB7XG4gICAgICAgIGdhcDogNXB4IDI1cHg7XG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYWN0aW9ucyB7XG4gICAgICBjb2xvcjogI2RkZDtcbiAgICAgIGZvbnQtc2l6ZTogMTlweDtcbiAgICB9XG4gIH1cbn1cblxuLmFjY2VwdC1kcm9wLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogMTtcblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2RjZGNkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyNSwgMjI1LCAyMjUsIC41KTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAyNHB4O1xuXG4gID4gc3BhbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgJi5oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnNvcnQtb3JkZXItY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB6LWluZGV4OiAxO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICNjZGNkY2Q7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjI1LCAyMjUsIDIyNSwgLjUpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDI0cHg7XG5cbiAgPiBzcGFuIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAmLmhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uc2NoZWR1bGUtc2VsZWN0ZWQtYXRobGV0ZXMge1xuICBtYXJnaW4tbGVmdDogNTBweDtcbiAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgc3BhbiB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAjNzU3NzdBO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjRweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICB9XG4gIC5hdGhsZXRlLW5hbWVzIHtcbiAgICBtYXgtd2lkdGg6IDYwMHB4O1xuICAgIC5hdGhsZXRlLW5hbWVzLW1vcmUge1xuICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICB9XG4gIH1cbn1cblxuLmJ1bGstc2NoZWR1bGUtZGl2aWRlciB7XG4gIG1hcmdpbi10b3A6IDUwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDQ3cHg7XG4gIGkge1xuICAgIGNvbG9yOiAjRDdEOURBO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgfVxufVxuXG4ud2hpdGVib2FyZC1mb290ZXIge1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LWVuZCk7XG59XG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4uY2FsZW5kYXItbWVudSB7XG4gIG1hcmdpbjogMjBweCAwO1xuXG4gID4gZGl2IHtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCgzMHB4KTtcbiAgICBjb2xvcjogI2EwYTRhODtcbiAgICBcbiAgICBAaW5jbHVkZSBsYXJnZS10YWJzLXN0eWxlO1xuXG4gICAgJi5hY3RpdmUge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRibHVlO1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cblxuICAgICY6bm90KC5hY3RpdmUpOmhvdmVyIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjYTBhNGE4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gID4gZGl2ICsgZGl2IHtcbiAgICBtYXJnaW4tbGVmdDogJGxhcmdlLXRhYnMtc3BhY2luZztcbiAgfVxufVxuXG4uY2FsZW5kYXItcGFyZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uY2FsZW5kYXItbW9udGgge1xuICBAaW5jbHVkZSBmbGV4KDEgMCA2OTBweCk7XG4gIEBpbmNsdWRlIGxvY2std2lkdGgoNjkwcHgpO1xuICBtYXJnaW46IDFweCAwIDA7IFxuXG4gIC5jYWxlbmRhci1oZWFkZXIge1xuICAgIEBpbmNsdWRlIGZsZXgoMSAwIGF1dG8pO1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDUwcHgpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbWFyZ2luOiAtMXB4IDAgMCAtMXB4O1xuXG4gICAgXG4gICAgLmZhICB7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICBwYWRkaW5nOiAxMHB4OyAgICAgIFxuICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgfVxuXG4gICAgJiA+IGRpdiB7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCgyMHB4KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCgyMHB4KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuICAgIH1cbiAgICAueWVhci1jb250YWluZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgc2VsZWN0LnllYXItc2VsZWN0IHtcbiAgICAgICAgQGluY2x1ZGUgYXBwZWFyYW5jZShtZW51bGlzdCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoLjEgMCAwKTsgICAgICBcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgbWFyZ2luOiAxcHg7XG4gICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIGNvbG9yOiAkZ3JleTtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IDBweDtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjotbW96LWZvY3VzcmluZyB7XG4gICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6LW1zLWV4cGFuZCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYgKyBpLmljb24tY2FyZXQtZG93biB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMTBweDsgICAgICAgIFxuICAgICAgICAgIHJpZ2h0OiAtMTJweDtcbiAgICAgICAgICBjb2xvcjogI0Q5REJEQztcbiAgICAgICAgICBmb250LXNpemU6IDZweDtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC53ZWVrLWRheS1sYWJlbHMge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1jb250ZW50KGZsZXgtc3RhcnQpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gICAgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApO1xuICAgIEBpbmNsdWRlIGZsZXgoMSAwIGF1dG8pO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZmRmZGY7XG4gICAgY29sb3I6ICNjMGMwYzA7XG5cbiAgICAmLmxlZnQge1xuICAgICAgPiBkaXYge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDZweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGRpdiB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgICAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMzBweCk7XG4gICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDk5LjVweCk7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjOTk5O1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgbWFyZ2luOiAtMXB4IDAgMCAtMXB4O1xuXG4gICAgICAuYWNjZXB0LWRyb3AtY29udGFpbmVyIHtcbiAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCg5Ny41cHgpO1xuICAgICAgICByaWdodDogaW5pdGlhbDtcbiAgICAgICAgbGVmdDogaW5pdGlhbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBkaXY6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICNjY2M7XG4gICAgfVxuXG4gICAgZGl2Omxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjY2NjO1xuICAgIH1cbiAgfVxuXG4gIC5jYWxlbmRhci1kYXlzIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICAgIEBpbmNsdWRlIGZsZXgtd3JhcCh3cmFwKTtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcblxuICAgIC5jYWxlbmRhci1kYXkge1xuICAgICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSAwIGF1dG8pO1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoODBweCk7XG4gICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDk5LjVweCk7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgbWFyZ2luOiAtMXB4IDAgMCAtMXB4O1xuICAgICAgcGFkZGluZzogOHB4IDEycHg7IFxuXG4gICAgICAmLmRheS1hY3Rpdml0aWVzIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzAwQjk2RDtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB9XG5cbiAgICAgICYuY3VycmVudC1kYXkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDZweCBzb2xpZCAkYmx1ZTtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgJi5wcm9ncmFtLXJhbmdlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgfVxuXG4gICAgICAmLmVtcHR5IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VmZWZlZjtcbiAgICAgIH1cblxuICAgICAgLmNhbGVuZGFyLWRheS1udW1iZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgPiAubW9udGgtYWJicmV2IHtcbiAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNhbGVuZGFyLWRheS1jb25jZXJuLCAuY2FsZW5kYXItZGF5LWV4aXN0aW5nIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtd3JhcCh3cmFwKTtcbiAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCg4NXB4KTtcbiAgICAgICAgbWluLWhlaWdodDogMTVweDtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuXG4gICAgICAgIGkge1xuICAgICAgICAgIG1hcmdpbjogMnB4O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5jYWxlbmRhci1kYXktY29uY2VybiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICB9XG5cbiAgICAgIC5jYWxlbmRhci1kYXktc2NoZWR1bGVkIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtd3JhcCh3cmFwKTtcbiAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCg4NXB4KTtcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgIG1pbi13aWR0aDogdW5zZXQ7XG4gICAgICAgIH1cbiAgICAgICAgZm9udC1zaXplOiA5cHg7XG5cbiAgICAgICAgaSB7XG4gICAgICAgICAgbWFyZ2luOiAycHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLmlucHV0LWN0bCB7XG4gICAgQGluY2x1ZGUgZmxleCgxIDAgMjgwcHgpO1xuICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMjgwcHgpO1xuICAgIGJveC1zaGFkb3c6IDZweCA2cHggMThweCAwcHggIzRhNGE0YTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDQwcHg7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAxMDtcbiAgICBtYXJnaW46IDFweCAwO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICAmLnJpZ2h0IHtcbiAgICAgIGxlZnQ6IGluaGVyaXQ7XG4gICAgICByaWdodDogMDtcbiAgICB9XG5cbiAgICAuY2FsZW5kYXItaGVhZGVyIHtcbiAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDM1cHgpO1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgIC5pY29uIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5jYWxlbmRhci13ZWVrLWhlYWRlciB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWNvbnRlbnQoY2VudGVyKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCgyOHB4KTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNhYWE7XG5cbiAgICAgID4gZGl2IHtcbiAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCgzNXB4KTtcbiAgICAgICAgY29sb3I6ICNkZmRmZGY7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXI6IDIuMTI3NXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBtYXJnaW46IDJweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY2FsZW5kYXItZGF5cyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG5cbiAgICAgIC5jYWxlbmRhci1kYXkge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCgzNXB4KTtcbiAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCgzNXB4KTtcbiAgICAgICAgbWFyZ2luOiAycHg7XG4gICAgICAgIGJvcmRlcjogMi4xMjc1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgJi5lbXB0eSB7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuY3VycmVudC1kYXkge1xuICAgICAgICAgIGJvcmRlcjogMi4xMjc1cHggc29saWQgIzk3NjhFQjtcbiAgICAgICAgfVxuXG4gICAgICAgICYuY3VycmVudC1yYW5nZSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RlZjVmZDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC5jYWxlbmRhci1kYXktbnVtYmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAjOGQ4ZDhkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KC5lbXB0eSkge1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNhbGVuZGFyLWRheS1udW1iZXIge1xuICAgICAgICAgIHBhZGRpbmc6IDFweDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uY2FsZW5kYXItZGF5LWluZm8ge1xuICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcbiAgQGluY2x1ZGUgbG9jay13aWR0aCgzMDBweCk7XG4gIFxuICAuZGF5LWRhdGUge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbjogMzVweCAwIDIwcHg7XG4gICAgbWluLWhlaWdodDogNDBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgPiAuaWNvbi1jYWxlbmRhciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRibHVlO1xuICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDdweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgY29sb3I6ICNlZmVmZWY7XG4gICAgfVxuICB9XG5cbiAgLmRheS1wcm9ncmFtIHtcbiAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDI5NXB4KTtcbiAgICBcbiAgICBsZXR0ZXItc3BhY2luZzogMC43NXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgLmxpZ2h0LWdyZXktdGV4dCAge1xuICAgICAgY29sb3I6ICNBN0E4QTc7XG4gICAgfVxuXG4gICAgJi5hY3Rpb24ge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxufVxuXG4ud2Vlay1tYWluLXdyYXBwZXIge1xuICBwYWRkaW5nOiAwIWltcG9ydGFudDtcbn1cblxuLndlZWstd3JhcHBlciB7XG4gIHBhZGRpbmc6IDAhaW1wb3J0YW50O1xuICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcbiAgbWluLWhlaWdodDogNDI1cHg7XG4gIC8qIGhlaWdodDogNDI1OyAqL1xuXG4gICYuc21hbGwge1xuICAgIG1pbi1oZWlnaHQ6IDIyNXB4O1xuICAgIC8qIGhlaWdodDogMjI1cHg7ICovXG4gIH1cbiAgXG4gIC53ZWVrLWJ1dHRvbi1jb2x1bW4ge1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1pbi13aWR0aDogMjBweDtcblxuICAgID4gZGl2IHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgICAgICAgICAgICAgXG4gICAgfVxuICAgIEBpbmNsdWRlIHJlc3BvbmQobGcpICB7XG4gICAgICAkd2Vlay1idXR0b24tZWRnZS1wdWxsOiAtMjVweDtcbiAgICAgIC5mYS1hbmdsZS1sZWZ0ICB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkd2Vlay1idXR0b24tZWRnZS1wdWxsO1xuICAgICAgfVxuICAgICAgLmZhLWFuZ2xlLXJpZ2h0ICB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHdlZWstYnV0dG9uLWVkZ2UtcHVsbDtcbiAgICAgIH0gXG4gICAgfSAgIFxuICB9XG5cbiAgLndlZWstZGF5LWNvbHVtbiB7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZGRkO1xuICAgIG1pbi13aWR0aDogMTQwcHg7XG5cbiAgICAuZGF5LW51bWJlciB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoZmxleC1zdGFydCk7XG4gICAgICBjb2xvcjogI2FhYTtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIG1hcmdpbjogMTBweCAxNXB4O1xuICAgIH1cblxuICAgIC53ZWVrLWRheS1pbmZvLWNvbnRhaW5lciB7XG4gICAgICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG5cbiAgICAgICY6bm90KDplbXB0eSkge1xuICAgICAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgI2FhYTtcbiAgICAgIH1cblxuICAgICAgLndlZWstZGF5LXByb2dyYW0ge1xuICAgICAgICB3aWR0aDogMTMwcHg7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICBjb2xvcjogI2JiYjtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBmb250LXdlaWdodDogMjAwO1xuICAgICAgICBtYXJnaW46IDRweCAwO1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuXG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLmFjdGlvbiB7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtbGFzdC1jaGlsZCgyKSB7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGRkO1xuICAgIH1cblxuICAgICYuY3VycmVudC1kYXkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuXG4gICAgICAuZGF5LW51bWJlciB7XG4gICAgICAgIGNvbG9yOiAjODA4MDgwO1xuICAgICAgfVxuXG4gICAgICAud2Vlay1kYXktaW5mby1jb250YWluZXIge1xuICAgICAgICAmOm5vdCg6ZW1wdHkpIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgJGJsdWU7XG4gICAgICAgIH1cblxuICAgICAgICAud2Vlay1kYXktcHJvZ3JhbSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcbiAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcblxuICAgICAgICAgIC53ZWVrLWRheS1wcm9ncmFtLXRpdGxlOm5vdCgubGlnaHQtZ3JleS10ZXh0KSB7XG4gICAgICAgICAgICBjb2xvcjogJGJsdWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLndlZWstZGF5LXByb2dyYW0tbmFtZTpub3QoLmxpZ2h0LWdyZXktdGV4dCkge1xuICAgICAgICAgICAgY29sb3I6ICM4ODg4ODg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4uY2hhcnQtbWVudSB7XG4gIG1hcmdpbjogNTBweCAwIDMwcHggMDtcblxuICAuY2hhcnQtbWVudS1pdGVtIHtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCgzMHB4KTtcbiAgICBAaW5jbHVkZSBsYXJnZS10YWJzLXN0eWxlO1xuICAgIGNvbG9yOiAjYTBhNGE4O1xuICAgIG1hcmdpbi1yaWdodDogNDBweDtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkYmx1ZTtcbiAgICAgIGNvbG9yOiAjMzMzO1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cblxuICAgICY6bm90KC5hY3RpdmUpOmhvdmVyIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjYTBhNGE4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxufVxuXG4ubGluZS1jaGFydCB7XG4gIG1hcmdpbjogMjVweCAwIDAgMDtcblxuICAubGluZS1jaGFydC1jYW52YXMge1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDM1MHB4KTtcbiAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDcwMHB4KTtcblxuICAgICYuc21hbGwge1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMjc1cHgpO1xuICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCg1NTBweCk7XG4gICAgfVxuICB9XG5cbiAgLmxpbmUtY2hhcnQtbWVudSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG1hcmdpbjogMjVweCAwO1xuICB9XG59XG5cbi5wcm9ncmFtLWNoYXJ0IHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1jb250ZW50KGZsZXgtc3RhcnQpO1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApO1xuICBAaW5jbHVkZSBsb2NrLXdpZHRoKDcwMHB4KTtcbiAgbWFyZ2luOiAyNXB4IDAgMCAwO1xuICBtaW4taGVpZ2h0OiAzNTBweDtcblxuICAucHJvZ3JhbS1jb21wbGV0ZSB7XG4gICAgbWFyZ2luOiA1cHggMTVweDtcblxuICAgIC5wcm9ncmFtLWluZm8ge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KHNwYWNlLWJldHdlZW4pO1xuICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuXG4gICAgICAucHJvZ3JhbS10aXRsZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG5cbiAgICAgIC5wcm9ncmFtLW5hbWUge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuXG4gICAgICAuaWNvbiB7XG4gICAgICAgIGNvbG9yOiAjY2RjZGNkO1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY2FudmFzIHtcbiAgICAgIGhlaWdodDogNjBweDtcbiAgICAgIHdpZHRoOiAzMTBweDtcbiAgICB9XG4gIH1cbn1cblxuLnNlbGVjdGlvbi1jb21wb25lbnQge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMzBweCk7XG4gIEBpbmNsdWRlIGxvY2std2lkdGgoMTAwcHgpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjphZnRlciB7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBjb250ZW50OiAnPic7XG4gICAgZm9udDogNjAwIDEycHggJ0NvbnNvbGFzJywgbW9ub3NwYWNlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDZweDtcbiAgICByaWdodDogMTJweDtcbiAgICBwYWRkaW5nOiAwIDAgM3B4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7XG4gICAgLW1vei10cmFuc2Zvcm06cm90YXRlKDkwZGVnKTtcbiAgICAtbXMtdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7XG4gICAgdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7XG4gIH1cblxuICAmOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMHB4O1xuICAgIHJpZ2h0OiA2cHg7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5cbiAgc2VsZWN0IHtcbiAgICBAaW5jbHVkZSBhcHBlYXJhbmNlKG5vbmUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLmNoYXJ0LWxlZ2VuZCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbWFyZ2luOiAwIDIwcHg7XG5cbiAgJiA+IC5mYSB7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG5cbiAgICAmLmF2ZXJhZ2Uge1xuICAgICAgY29sb3I6IHJnYmEoMjA3LCAyMTgsIDIyMCwgMC41KTtcbiAgICB9XG5cbiAgICAvLyBzY29yZU11bHRpcGxlTGluZUNoYXJ0LCB3aGljaCBpcyB3aGF0IHRlYW1yZXBvcnQuaHRtbCByZW5kZXJzLCBzdGlsbFxuICAgIC8vIGRyYXdzIHRoaXMgY3lhbiAoU2NvcmVNdWx0aXBsZUxpbmVDaGFydC5qczo2NCkuXG4gICAgJi5zY29yZSB7XG4gICAgICBjb2xvcjogcmdiYSgwLCAxODIsIDIzNSwgMC45KTtcbiAgICB9XG5cbiAgICAvLyBzY29yZUxpbmVDaGFydCB3ZW50IHRvIHRoZSByZWRlc2lnbiBwdXJwbGUsIGFuZCB0aGUgdHdvIGRpcmVjdGl2ZXMgc2hhcmVcbiAgICAvLyB0aGlzIGxlZ2VuZCwgc28gdGhleSBuZWVkIHNlcGFyYXRlIGtleXMgcmF0aGVyIHRoYW4gb25lIHJlcGFpbnRlZCBydWxlLlxuICAgIC8vIFVzZWQgYnkgdGVtcGxhdGVzL2NoYXJ0XypfdGVzdC5odG1sOyB0aGUgcHJvZ3Jlc3MgcmVwb3J0J3MgT3ZlcnZpZXcgY2FyZFxuICAgIC8vIGhhcyBpdHMgb3duIC5wcm9ncmVzcy1vdmVydmlld19fbGVnZW5kLWRvdC5cbiAgICAmLnNjb3JlLWxpbmUge1xuICAgICAgY29sb3I6IHJnYmEoMTUxLCAxMDQsIDIzNSwgMC45KTtcbiAgICB9XG5cbiAgICAmLnRlYW0tYXZlcmFnZSB7XG4gICAgICBjb2xvcjogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjc1KTtcbiAgICB9XG5cbiAgICAmLmNvbXBsZXRlZCB7XG4gICAgICBjb2xvcjogcmdiYSgzMiwgMTgzLCAxMDUsIDAuOCk7XG4gICAgfVxuXG4gICAgJi5zY2hlZHVsZWQge1xuICAgICAgY29sb3I6IHJnYmEoMjIzLCAyMjMsIDIyMywgMSk7XG4gICAgfVxuICB9XG59XG5cbi5jaGFydC1kZXRhaWxzIHtcbiAgQGluY2x1ZGUgbG9jay13aWR0aCgzMDBweCk7XG4gIG1hcmdpbi10b3A6IDE2cHg7XG5cbiAgLmNoYXJ0LWRhdGUtaGVhZGVyICB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgcGFkZGluZy1ib3R0b206IDRweDtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIGkgIHtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IC8vIFwic2hhcmVcIiBmZWF0dXJlIHdpbGwgY29tZSBsYXRlci4uLlxuICAgIH1cbiAgfVxuXG4gIC5jaGFydC1kYXRlIHtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCgyMnB4KTtcbiAgICBjb2xvcjogIzc1Nzc3QTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgLm1haW4tc2NvcmUge1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgfVxuXG4gIC52YWx1ZS1iYWRnZSB7XG4gICAgY29sb3I6ICRibHVlO1xuICAgIGZvbnQtc2l6ZTogNDhweDtcbiAgICBmb250LXdlaWdodDogMTAwO1xuICAgIG1hcmdpbi1ib3R0b206IC02cHg7XG4gIH1cblxuICAudmFsdWUtbGFiZWwge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXgtd2lkdGg6IDEyMHB4O1xuICB9XG5cbiAgLnZhbHVlLWxhcmdlIHtcbiAgICBmb250LXNpemU6IDU2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICBsaW5lLWhlaWdodDogNTZweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIH1cblxuICAudmFsdWUtY2hhbmdlLWljb24ge1xuICAgICYuZmEtc29ydC1hc2Mge1xuICAgICAgZm9udC13ZWlnaHQ6IDEwMDtcbiAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICB9XG5cbiAgICAmLmZhLXNvcnQtZGVzYyB7XG4gICAgICBmb250LXdlaWdodDogMTAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgIH1cblxuICAgICYudW5jaGFuZ2VkIHtcbiAgICAgIGNvbG9yOiAkZ3JleTtcbiAgICB9XG5cbiAgICAmLmluY3JlYXNlIHtcbiAgICAgIGNvbG9yOiAkZ3JlZW47XG4gICAgfVxuXG4gICAgJi5kZWNyZWFzZSB7XG4gICAgICBjb2xvcjogJHJlZDtcbiAgICB9XG4gIH1cblxuICAudmFsdWUtY2hhbmdlIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBtYXJnaW4tbGVmdDogNnB4O1xuXG4gICAgJi51bmNoYW5nZWQge1xuICAgICAgY29sb3I6ICRncmV5O1xuICAgIH1cblxuICAgICYuaW5jcmVhc2Uge1xuICAgICAgY29sb3I6ICRncmVlbjtcbiAgICB9XG5cbiAgICAmLmRlY3JlYXNlIHtcbiAgICAgIGNvbG9yOiAkcmVkO1xuICAgIH1cbiAgfVxuXG4gIC5pbmZvLWxhYmVsIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuXG4gIC5jaGFydC1zdGF0cy1jb250YWluZXIge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gIH1cbiAgXG4gIC50ZXN0LXJlc3VsdHMtYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgZmxleDogMTtcbiAgICBwYWRkaW5nOiAxNXB4IDBweDtcbiAgfVxuXG4gIC5jaGFydC1zdGF0cyB7XG4gICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2NjYztcbiAgICBwYWRkaW5nOiAxNXB4IDA7XG5cbiAgICAubmFtZSB7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgfVxuXG4gICAgLnZhbHVlIHtcbiAgICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG4gICAgICBsaW5lLWhlaWdodDogMzRweDtcbiAgICB9XG4gIH1cblxuICAuY2hhcnQtc3RhdHMtZ3JpZCB7XG4gICAgLmNoYXJ0LXN0YXRzIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSAwIDUwJSk7XG4gICAgICBib3JkZXItdG9wOiBub25lO1xuXG4gICAgICAmOm50aC1jaGlsZCgtbisyKSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgfVxuXG4gICAgICAmOm50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjYztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAucGllLWNoYXJ0LWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAtMjBweDtcbiAgfVxuXG4gIC5waWUtY2hhcnQge1xuICAgIGNvbG9yOiAjYWFhO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gICAgJiA+IGRpdiB7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIH1cblxuICAgIC5waWUtY2hhcnQtY2FudmFzIHtcbiAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDcwcHgpO1xuICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCg3MHB4KTtcbiAgICB9XG4gIH1cblxuICAucnBlLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcblxuICAgIC5yZWQtdGV4dCwgLmdyZWVuLXRleHQge1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gICAgfVxuXG4gICAgZGl2ICsgZGl2IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgIH1cbiAgfVxuXG4gIC5wcm9ncmFtLXdlZWsge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgcGFkZGluZzogMThweCAwO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuICB9XG5cbiAgLnRyb3BoaWVzIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuXG5cbiAgICAudHJvcGh5LWltYWdlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW4tdG9wOiAtMTNweDtcbiAgICAgICYudHJvcGh5LWltYWdlLS1iYWRnZSAge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAudHJvcGh5LWljb24ge1xuICAgICAgQGluY2x1ZGUgZmxleCgxIDEgYXV0byk7XG4gICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg0MHB4KTtcbiAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMjhweCk7XG4gICAgICBtYXJnaW4tdG9wOiAtMTFweDtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgaW1nICB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC50cm9waHktcGxhY2Uge1xuICAgICAgLy8gQGluY2x1ZGUgZmxleCgwIDEgYXV0byk7XG4gICAgICAvLyBAaW5jbHVkZSBmbGV4KDEpXG4gICAgICBwYWRkaW5nOiAwIDZweDtcbiAgICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAxMDA7XG4gICAgfVxuXG4gICAgLnRyb3BoeS1uYW1lIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgICAgLy8gQGluY2x1ZGUgbG9jay13aWR0aCgxNTBweCk7XG4gICAgICBtYXJnaW4tbGVmdDogMTNweDtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIH1cbiAgfVxuXG4gIC5uby1kZXRhaWxzIHtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgQGluY2x1ZGUgbG9jay13aWR0aCgzMDBweCk7XG4gICAgcGFkZGluZy1ib3R0b206IDEwMHB4O1xuICB9XG59XG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG5AbWl4aW4gZGF5Y29sd2lkdGggIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIHdpZHRoOiAxMDAvNyoxJTtcbn1cblxuLm5vdGVzLW1lbnUge1xuICBtYXJnaW46IDE1cHggMDtcblxuICAubm90ZXMtbWVudS1pdGVtIHtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCgzMHB4KTtcbiAgICBjb2xvcjogI2EwYTRhODtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGJsdWU7XG4gICAgICBjb2xvcjogIzMzMztcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICAmOm5vdCguYWN0aXZlKTpob3ZlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2EwYTRhODtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cblxuICAubm90ZXMtbWVudS1pdGVtICsgLm5vdGVzLW1lbnUtaXRlbSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQ1cHg7XG4gIH1cbn1cblxuLm5vdGVzLWNhbGVuZGFyIHtcbiAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gIEBpbmNsdWRlIGxvY2std2lkdGgoNDkycHgpO1xuXG4gIC5jYWxlbmRhci1oZWFkZXIge1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDUwcHgpO1xuICAgIG1hcmdpbjogMXB4IDFweCAwIC0xcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VmZWZlZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAuaWNvbiB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLndlZWstZGF5LWxhYmVscyB7XG4gICAgbWFyZ2luOiAwIDFweCAwIDA7XG4gICAgPiBkaXYge1xuICAgICAgLy8gQGluY2x1ZGUgbG9jay13aWR0aCg2MHB4KTtcbiAgICAgIEBpbmNsdWRlIGRheWNvbHdpZHRoO1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgY29sb3I6ICM5OTk7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdztcbiAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICAgICAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLmNhbGVuZGFyLWRheXMge1xuICAgIG1hcmdpbjogMCAxcHggNXB4IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VmZWZlZjtcbiAgICAuY2FsZW5kYXItZGF5IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICAgICAgLy8gQGluY2x1ZGUgbG9jay1oZWlnaHQoMzhweCk7XG4gICAgICAvLyBAaW5jbHVkZSBsb2NrLXdpZHRoKDYwcHgpO1xuICAgICAgQGluY2x1ZGUgZGF5Y29sd2lkdGg7XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgIGhlaWdodDogNjJweDtcbiAgICAgIG1hcmdpbjogLTFweCAwcHggMHB4IC0xcHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2RjZGNkO1xuXG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgY29sb3I6ICNjZGNkY2Q7XG4gICAgICAmLmN1cnJlbnQtZGF5ICB7XG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gJi5lbXB0eSB7ICAgICAgICBcbiAgICAgICAgLy8gYmFja2dyb3VuZC1jb2xvcjogI2VmZWZlZjtcbiAgICAgIC8vIH1cblxuICAgICAgICYuZGF5LWFjdGl2aXRpZXMge1xuICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzJkOGIwMDtcbiAgICAgICAgIC8vYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAvL2JvcmRlci1jb2xvcjogI2MyZDQ3NDtcbiAgICAgICAgIC8vY29sb3I6ICNlZmVmZWY7XG4gICAgICAgICAvL2N1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgIC8vJjpob3ZlciB7XG4gICAgICAgICAvLyAgYmFja2dyb3VuZC1jb2xvcjogI2MyZDQ3NDtcbiAgICAgICAgIC8vICBjb2xvcjogI2ZmZjtcbiAgICAgICAgIC8vfVxuICAgICAgIH1cblxuICAgICAgLy8gJi5jdXJyZW50LWRheSB7XG4gICAgICAvLyAgIGJhY2tncm91bmQtY29sb3I6ICNjMmQ0NzQ7XG4gICAgICAvLyAgIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCAjNTQ3YjQyO1xuICAgICAgLy8gICBjb2xvcjogI2ZmZjtcbiAgICAgIC8vIH1cblxuICAgICAgJjpub3QoLmVtcHR5KTpub3QoLmRheS1hY3Rpdml0aWVzKSB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgICAgIC8vIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNhbGVuZGFyLWRheS1udW1iZXIge1xuICAgICAgICBwYWRkaW5nOiAxcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5iYy1zZWN0aW9uLCAudGwtc2VjdGlvbiwgLnNvYXAtc2VjdGlvbiB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbi5zb2FwLWxhYmVsIHtcbiAgJi5maWVsZHMtaGVhZGVyLmhpZ2gtbGV2ZWwtZmllbGQtbGFiZWwge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICB9XG59XG5cbi5iYy1ib2R5ZmF0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gID4gLmJhc2ljLWlucHV0LnNtYWxsIHtcbiAgICB3aWR0aDogODBweDtcbiAgfVxuXG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICclJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDYwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDM4cHg7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGNvbG9yOiAjYmJiO1xuICB9XG59XG5cbi5iYy1hbGVydCB7XG4gIHdpZHRoOiA3NSU7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi50bC10b3RhbC1sb2FkIHtcbiAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gID4gLmJhc2ljLWlucHV0LnNtYWxsIHtcbiAgICB3aWR0aDogNzBweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NkY2RjZDtcbiAgICBjb2xvcjogJGJsdWU7XG4gIH1cbn1cblxuLmJjLWVudHJ5LWhlYWRlciwgLmJjLWVudHJ5IHtcbiAgPiAuZmllbGQtbGFiZWwgKyAuZmllbGQtbGFiZWwge1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA1NjhweCkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgfVxuICB9XG5cbiAgLmJjLWlucHV0IHsgXG4gICAgbWluLXdpZHRoOiAxNjBweDtcbiAgICBtYXgtd2lkdGg6IDE2MHB4O1xuICB9XG5cbiAgLmJjLWZpbGxlciB7XG4gICAgbWluLXdpZHRoOiAxMHB4O1xuICAgIG1heC13aWR0aDogMTBweDtcbiAgfVxufVxuXG4uYmMtZmlsbGVyLXJlc3Age1xuICBAbWVkaWEgKG1heC13aWR0aDogNTY4cHgpIHtcbiAgICBtaW4td2lkdGg6IDAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMCFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDAhaW1wb3J0YW50O1xuICB9XG59XG5cbi50bC1lbnRyeS1oZWFkZXIsIC50bC1lbnRyeSB7XG4gID4gLmZpZWxkLWxhYmVsICsgLmZpZWxkLWxhYmVsIHtcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgfVxuXG4gIC50bC1zZWxlY3Qge1xuICAgIG1pbi13aWR0aDogMjE1cHg7XG4gICAgbWF4LXdpZHRoOiAyMTVweDtcbiAgfVxuXG4gIC50bC1pbnB1dCB7IFxuICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgbWF4LXdpZHRoOiAxMDBweDtcbiAgfVxuXG4gIC50bC1maWxsZXIge1xuICAgIG1pbi13aWR0aDogMTBweDtcbiAgICBtYXgtd2lkdGg6IDEwcHg7XG4gIH1cbn1cblxuLnJlc3Atbm90ZXMtY29sdW1uIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5iYy1lbnRyeSB7XG4gIC5iYy1pbnB1dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICA+IC5iYXNpYy1pbnB1dC5zbWFsbCB7XG4gICAgICB3aWR0aDogMTMwcHg7XG4gICAgICBoZWlnaHQ6IDM4cHg7XG4gICAgICBsaW5lLWhlaWdodDogMzhweDtcbiAgICAgIHBhZGRpbmc6IDAgMjhweCAwIDEzcHg7IFxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG4gIH1cbiAgLmJjLWlucHV0LWJmIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tbGVmdDogMCFpbXBvcnRhbnQ7XG5cbiAgICA+IC5iYXNpYy1pbnB1dC5zbWFsbCB7XG4gICAgICB3aWR0aDogODBweDtcbiAgICAgIGhlaWdodDogMzhweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzOHB4O1xuICAgICAgcGFkZGluZzogMCAyOHB4IDAgMTNweDsgXG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cbiAgfVxuXG4gIC5iYy11bml0IHtcbiAgICBtYXJnaW4tbGVmdDogLTM0cHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzOHB4O1xuICAgIGNvbG9yOiAjYmJiO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbiAgLmJjLXVuaXQtYmYge1xuICAgIG1hcmdpbi1sZWZ0OiAtMjRweDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDM4cHg7XG4gICAgY29sb3I6ICNiYmI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxufVxuXG4udGwtZW50cnkge1xuICAudGwtc2VsZWN0LWlucHV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyOiAycHggc29saWQgI2Q4ZDhkODtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgcGFkZGluZzogNXB4IDEzcHg7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuXG4gICAgLnNlbGVjdC10b2dnbGUge1xuICAgICAgbWluLXdpZHRoOiAxODVweDtcbiAgICAgIG1heC13aWR0aDogMTg1cHg7XG5cbiAgICAgIGkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTRweDtcbiAgICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogNnB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5vcHRpb25zIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMzdweDtcbiAgICAgIGxlZnQ6IDBweDtcbiAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZkZmRmO1xuICAgICAgbWluLXdpZHRoOiAyMjBweDtcbiAgICAgIG1heC1oZWlnaHQ6IDE4MHB4O1xuICAgICAgei1pbmRleDogMjtcblxuICAgICAgPiBkaXYge1xuICAgICAgICBtYXJnaW4tdG9wOiAxcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDNweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAgICAgICBtaW4taGVpZ2h0OiAyOHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgXG4gIC50bC1pbnB1dCB7IFxuICAgID4gLmJhc2ljLWlucHV0LnNtYWxsIHtcbiAgICAgIHdpZHRoOiAxMDBweDtcbiAgICB9XG4gIH1cblxuICAudGwtY2FsY3VsYXRlZC1sb2FkIHtcbiAgICA+IC5iYXNpYy1pbnB1dC5zbWFsbCB7XG4gICAgICB3aWR0aDogMTAwcHg7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjZGNkY2Q7XG4gICAgfVxuICB9XG5cbiAgLnRsLWRlbGV0ZSB7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGNvbG9yOiAkYmx1ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuLmJjLWZyZWUtZm9ybSwgLnRsLWZyZWUtZm9ybSB7XG4gIHdpZHRoOiA3NSU7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLnNvYXAtZGF0ZSB7XG4gID4gKiB7XG4gICAgd2lkdGg6IDE3MHB4O1xuICB9XG5cbiAgLmRhdGUtaW5wdXQgPiAuaW5wdXQtaWNvbiB7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBtaW4taGVpZ2h0OiAzNXB4O1xuICAgIG1pbi13aWR0aDogNDBweDtcbiAgICBtYXgtd2lkdGg6IDQwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBjb2xvcjogJHdoaXRlO1xuICB9XG59XG5cbi5zb2FwLXRleHQtY29udGFpbmVyIHtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xufVxuXG4uc29hcC10cmVhdG1lbnRzIHtcbiAgLmNoZWNrYm94LWlucHV0IHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIH1cblxuICAuc29hcC10cmVhdG1lbnQtb3B0aW9ucyB7XG4gICAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICAgIC5jaGVja2JveC1pbnB1dCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgfVxuICB9XG5cbiAgLnNvYXAtdHJlYXRtZW50LXRleHQge1xuICAgIHBhZGRpbmctbGVmdDogMjRweDtcbiAgICAuYmFzaWMtaW5wdXQge1xuICAgICAgd2lkdGg6IDE4MHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIH1cbiAgfVxufVxuXG4uc29hcC1vYmplY3RpdmUge1xuICAmLmZpZWxkIGRpdiB0ZXh0YXJlYSB7XG4gICAgaGVpZ2h0OiA4NXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIH1cbn1cblxuLmZhLW5vdGVzIHtcbiAgICBtYXJnaW46IC0xMHB4IDBweCAwcHggMTJweDtcbiAgICBjb2xvcjogJGJsdWU7XG4gICAgZm9udC1zaXplOiA3cHg7XG59XG5cbi5yZXNwLWZvcm0tcG9zdC1idXR0b25zIHtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDU2OHB4KSB7XG4gICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbiAgICBtYXJnaW46IDIwcHggMCA2MHB4IDAhaW1wb3J0YW50O1xuICAgIGdhcDogOHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgID4gYnV0dG9uIHtcbiAgICAgIHdpZHRoOiAxMDAlIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbjogMCFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59IiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLnRvb2x0aXBIaWRkZW4ge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4udG9vbHRpcCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bWluLXdpZHRoOiAzMDBweDtcblx0bWF4LXdpZHRoOiAzNjBweDtcblx0d2lkdGg6IG1heC1jb250ZW50O1xuICB3aWR0aDogLXdlYmtpdC1tYXgtY29udGVudDtcblx0bWluLWhlaWdodDogNzJweDtcblx0dG9wOiAtMTMwJTtcblx0bGVmdDogNjVweDtcblx0ei1pbmRleDogMTA7XG5cdGJvcmRlci1yYWRpdXM6IDZweDtcblx0cGFkZGluZzogMjBweCAyNXB4O1xuXHRmb250LXNpemU6IDE2cHg7XG5cdGZvbnQtZmFtaWx5OiBOdWRpc3RhLXdlYjtcblx0YmFja2dyb3VuZC1jb2xvcjogcmdiKDQ2LDQ2LDQ2KTtcblx0Y29sb3I6IHdoaXRlO1xuXHRsaW5lLWhlaWdodDogMjRweDtcblx0dGV4dC1hbGlnbjogbGVmdDtcblx0bGV0dGVyLXNwYWNpbmc6IC4zNXB4O1xuXG5cdC50dENvbnRlbnQge1xuXHRcdGNvbG9yOiAjOTI5MzkyO1xuXHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdH07XG5cblx0LnR0VGl0bGUge1xuXHRcdGhlaWdodDogNDBweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0fTtcblxuXHRAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcblx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0cGFkZGluZzogMTVweCAxOHB4O1xuXHR9XG59XG5cbi50b29sdGlwLXJpZ2h0IHsgLy8gcmlnaHQgaXMgdGhlIGRlZmF1bHRcblx0QGV4dGVuZCAudG9vbHRpcDtcbn1cblxuLnRvb2x0aXAtYm90dG9tIHtcblx0QGV4dGVuZCAudG9vbHRpcDtcblx0dG9wOiA1NXB4O1xuXHRsZWZ0OiAtMTI1cHg7XG59XG5cbi50b29sdGlwLWxlZnQge1xuXHRAZXh0ZW5kIC50b29sdGlwO1xuXHRsZWZ0OiBpbmhlcml0O1xuXHRyaWdodDogNDVweDtcbn1cblxuLnRvb2x0aXA6YWZ0ZXIge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IC0yMHB4O1xuXHR0b3A6IDE1cHg7XG5cdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgcmdiKDQ2LDQ2LDQ2KTtcblx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0Ym9yZGVyLXdpZHRoOiAyMHB4IDIwcHggMjBweCAwcHg7XG5cdGhlaWdodDogMHB4O1xuXHR3aWR0aDogMHB4O1xuXHRjb250ZW50OiBcIiBcIjtcblxuXHRAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cbi50b29sdGlwLXJpZ2h0OmFmdGVyIHtcblx0QGV4dGVuZCAudG9vbHRpcCwgOmFmdGVyO1xufVxuXG4udG9vbHRpcC1ib3R0b206YWZ0ZXIge1xuXHRAZXh0ZW5kIC50b29sdGlwLCA6YWZ0ZXI7XG5cdGxlZnQ6IDEzMHB4O1xuXHR0b3A6IC0yMHB4O1xuXHRib3JkZXItY29sb3I6IHJnYig0Niw0Niw0NikgdHJhbnNwYXJlbnQ7XG5cdGJvcmRlci13aWR0aDogMHB4IDIwcHggMjBweCAyMHB4O1xufVxuXG4udG9vbHRpcC1sZWZ0OmFmdGVyIHtcblx0QGV4dGVuZCAudG9vbHRpcCwgOmFmdGVyO1xuXHRsZWZ0OiBpbmhlcml0O1xuXHRyaWdodDogLTIwcHg7XG5cdGJvcmRlci13aWR0aDogMjBweCAwcHggMjBweCAyMHB4O1xufVxuXG4udG9vbHRpcENsb3NlIHtcblx0ZmxvYXQ6IHJpZ2h0O1xuXHRwYWRkaW5nOiAwcHggMTBweCAzcHggMHB4O1xuXHRjb2xvcjogbGlnaHRibHVlO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cdGZvbnQtc2l6ZTogMjRweDtcbn1cblxuQG1peGluIGNoYXJ0LXRvb2x0aXAtY2FyZXQge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiAwcHg7XG5cdGhlaWdodDogMHB4O1xuXHRtYXJnaW46IGF1dG87XG5cdGJvcmRlci1zdHlsZTogc29saWQ7XG5cdGNvbnRlbnQ6ICcnO1xufVxuXG4uY2hhcnQtdG9vbHRpcCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bWluLXdpZHRoOiAyNTVweDtcblx0bWF4LXdpZHRoOiAzMDBweDtcblx0bWluLWhlaWdodDogMTAwcHg7XG5cdHBhZGRpbmc6IDEwcHg7XG5cdGJhY2tncm91bmQtY29sb3I6ICMyZTJlMmU7XG5cdHotaW5kZXg6IDE7XG5cdGN1cnNvcjogZGVmYXVsdDtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cblx0LmhlYWRlciB7XG5cdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0Y29sb3I6ICNlZmVmZWY7XG5cdH1cblxuXHQuY29udGVudCB7XG5cdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdG1hcmdpbi10b3A6IDZweDtcblx0XHRtYXJnaW4tYm90dG9tOiA2cHg7XG5cblx0XHQ+IGRpdiB7XG5cdFx0XHRAaW5jbHVkZSBmbGV4LXJvdygpO1xuXHRcdFx0QGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuXHRcdFx0bWluLWhlaWdodDogMjBweDtcblx0XHRcdG1heC1oZWlnaHQ6IDIwcHg7XG5cblx0XHRcdD4gaSB7IG1pbi13aWR0aDogMTZweDsgfVxuXHRcdFx0PiBkaXYgeyBtYXJnaW4tbGVmdDogNnB4OyB9XG5cblx0XHRcdCYuY29tcGxldGVkIHsgY29sb3I6ICMxNjg4NGU7IH1cblx0XHR9XG5cdH1cblxuXHQmLmhpZGRlbiB7XG5cdFx0dmlzaWJsaXR5OiBoaWRkZW47XG5cdH1cblxuXHQmLmJvdHRvbTphZnRlciB7XG5cdFx0QGluY2x1ZGUgY2hhcnQtdG9vbHRpcC1jYXJldDtcblx0XHRsZWZ0OiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdGJvdHRvbTogLThweDtcblx0XHRib3JkZXItY29sb3I6ICMyZTJlMmUgdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyLXdpZHRoOiAxMHB4IDEwcHggMCAxMHB4O1xuXHR9XG5cblx0Ji5ib3R0b20tbGVmdDphZnRlciB7XG5cdFx0QGluY2x1ZGUgY2hhcnQtdG9vbHRpcC1jYXJldDtcblx0XHRsZWZ0OiAxMHB4O1xuXHRcdGJvdHRvbTogLThweDtcblx0XHRib3JkZXItY29sb3I6ICMyZTJlMmUgdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyLXdpZHRoOiAxMHB4IDEwcHggMCAxMHB4O1xuXHR9XG5cblx0Ji5ib3R0b20tcmlnaHQ6YWZ0ZXIge1xuXHRcdEBpbmNsdWRlIGNoYXJ0LXRvb2x0aXAtY2FyZXQ7XG5cdFx0cmlnaHQ6IDEwcHg7XG5cdFx0Ym90dG9tOiAtOHB4O1xuXHRcdGJvcmRlci1jb2xvcjogIzJlMmUyZSB0cmFuc3BhcmVudDtcblx0XHRib3JkZXItd2lkdGg6IDEwcHggMTBweCAwIDEwcHg7XG5cdH1cblxuXHQmLnRvcDphZnRlciB7XG5cdFx0QGluY2x1ZGUgY2hhcnQtdG9vbHRpcC1jYXJldDtcblx0XHRsZWZ0OiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdHRvcDogLThweDtcblx0XHRib3JkZXItY29sb3I6ICMyZTJlMmUgdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyLXdpZHRoOiAwIDEwcHggMTBweCAxMHB4O1xuXHR9XG5cblx0Ji50b3AtbGVmdDphZnRlciB7XG5cdFx0QGluY2x1ZGUgY2hhcnQtdG9vbHRpcC1jYXJldDtcblx0XHRsZWZ0OiAxMHB4O1xuXHRcdHRvcDogLThweDtcblx0XHRib3JkZXItY29sb3I6ICMyZTJlMmUgdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyLXdpZHRoOiAwIDEwcHggMTBweCAxMHB4O1xuXHR9XG5cblx0Ji50b3AtcmlnaHQ6YWZ0ZXIge1xuXHRcdEBpbmNsdWRlIGNoYXJ0LXRvb2x0aXAtY2FyZXQ7XG5cdFx0cmlnaHQ6IDEwcHg7XG5cdFx0dG9wOiAtOHB4O1xuXHRcdGJvcmRlci1jb2xvcjogIzJlMmUyZSB0cmFuc3BhcmVudDtcblx0XHRib3JkZXItd2lkdGg6IDAgMTBweCAxMHB4IDEwcHg7XG5cdH1cblxuXHQmLmxlZnQ6YWZ0ZXIge1xuXHRcdEBpbmNsdWRlIGNoYXJ0LXRvb2x0aXAtY2FyZXQ7XG5cdFx0dG9wOiAwO1xuXHRcdGJvdHRvbTogMDtcblx0XHRsZWZ0OiAtOHB4O1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgIzJlMmUyZTtcblx0XHRib3JkZXItd2lkdGg6IDEwcHggMTBweCAxMHB4IDA7XG5cdH1cblxuXHQmLnJpZ2h0OmFmdGVyIHtcblx0XHRAaW5jbHVkZSBjaGFydC10b29sdGlwLWNhcmV0O1xuXHRcdHRvcDogMDtcblx0XHRib3R0b206IDA7XG5cdFx0cmlnaHQ6IC04cHg7XG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjMmUyZTJlO1xuXHRcdGJvcmRlci13aWR0aDogMTBweCAwIDEwcHggMTBweDtcblx0fVxufVxuXG4uZmEgeyAvLyB0aGlzIGZvbnQgYXdlc29tZSBzdHlsZSAodHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwwKSkgaXMgYnJlYWtpbmcgei1pbmRleCBiZWhhdmlvciBhbmQgZG9lc24ndCBzZWVtIHRvIGhhdmUgYW55IHZpc3VhbCBlZmZlY3QuICBTbyBJJ20gdHVybmluZyBpdCBvZmYuXG4gIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xufSIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCIudXBsb2FkLWNvbnRhaW5lciB7XG4gIC51cGxvYWQtc2VjdGlvbiB7XG4gICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMjAwcHgpO1xuICAgIEBpbmNsdWRlIGxvY2std2lkdGgoNDAwcHgpO1xuICAgIGJvcmRlcjogMnB4IGRhc2hlZCAjZGRkO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBjb2xvcjogI2JiYjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgPiAudXBsb2FkLW1lc3NhZ2Uge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICA+IC51cGxvYWQtcHJldmlldyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZlZmVmZTtcbiAgICB9XG4gIH1cblxuICA+IGlucHV0W3R5cGU9J2ZpbGUnXSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfSAgXG59XG5cbmRpdi5pbWFnZS1jb250cm9sXG57XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGxvY2staGVpZ2h0KDI4MHB4KTtcbiAgbWFyZ2luLXRvcDogNDBweDtcbiAgLmltYWdlLWxhYmVsIHtcbiAgICBwYWRkaW5nLXRvcDogNDBweDtcbiAgfVxuICAuc2lsZW50LWZpbGUtaW5wdXQge1xuICAgIHdpZHRoOiAyNDBweDtcbiAgfSAgICAgICAgICAgICAgICBcbn1cblxuLmltYWdlLWJ1dHRvbnMge1xuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDI1cHgpO1xuICAgIEBpbmNsdWRlIGxvY2std2lkdGgoODVweCk7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICB9XG59XG5cbi5hY3RpdmUtdXBsb2FkIHtcbiAgQGluY2x1ZGUgbG9jay13aWR0aCgzNTBweCk7XG4gIFxuICAuZmlsZS1pbmZvIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAuZmlsZS1pbmZvLXNpemUge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgIH1cbiAgfVxuXG4gIC5wcm9ncmVzcy1iYXItY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCgxOHB4KTtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RlZGVkZTtcblxuICAgID4gLnByb2dyZXNzLWJhciB7XG4gICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCgxOHB4KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGNvbG9yOiAjZWZlZmVmO1xuICAgICAgdGV4dC1pbmRlbnQ6IDZweDtcblxuICAgICAgJi5zdWNjZXNzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICB9XG5cbiAgICAgICYuZXJyb3Ige1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWYwYTJmO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5tZXNzYWdlIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICB9XG59IiwiLmV4ZXJjaXNlX2NvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGZsZXgoMSAwIDQwMHB4KTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZXhlcmNpc2VfbmF2IHtcbiAgQGluY2x1ZGUgZmxleCgxIDAgNDAwcHgpO1xuICBAaW5jbHVkZSBsb2NrLXdpZHRoKDQwMHB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuXG4gIC5zZWFyY2gge1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDUwcHgpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYmJiO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNiYmI7XG5cbiAgICBpbnB1dFt0eXBlPSd0ZXh0J10ge1xuICAgICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgICBoZWlnaHQ6IDQ5cHg7XG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgIHRleHQtaW5kZW50OiAxNXB4O1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICBidXR0b25bdHlwZT0ncmVzZXQnXSB7XG4gICAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCg2MHB4KTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNiYmI7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIG1hcmdpbjogMCAxMHB4O1xuICAgICAgbWluLWhlaWdodDogMzBweDtcbiAgICB9XG5cbiAgICBidXR0b25bdHlwZT0nc3VibWl0J10ge1xuICAgICAgQGluY2x1ZGUgZmxleCgwKTtcbiAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMzBweCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICBtaW4taGVpZ2h0OiAzMHB4O1xuICAgIH1cblxuICAgIGkuZmEge1xuICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgY29sb3I6ICNiYmI7XG4gICAgfVxuICB9XG5cbiAgLmFkZCB7XG4gICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNTBweCk7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2JiYjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2JiYjtcbiAgICBwYWRkaW5nOiAxMHB4O1xuXG4gICAgaS5mYSB7XG4gICAgICBAaW5jbHVkZSBmbGV4KC4xKTtcbiAgICB9XG5cbiAgICBzdHJvbmcge1xuICAgICAgQGluY2x1ZGUgZmxleCguOTc1KTtcbiAgICB9XG4gIH1cblxuICAubGlzdCB7XG4gICAgQGluY2x1ZGUgZmxleCgxIDEgYXV0byk7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2JiYjtcbiAgICBtaW4taGVpZ2h0OiAxMHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAmID4gZGl2Om5vdCguZmlsbGVyKSB7XG4gICAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYmJiO1xuXG4gICAgICAuZGV0YWlsIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcblxuICAgICAgICAudmlldy1kZXRhaWwge1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XG4gICAgICAgICAgcGFkZGluZzogNHB4IDhweDtcblxuICAgICAgICAgIC5pY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgICAgICAgIG1hcmdpbjogMCA2cHg7XG5cbiAgICAgICAgICAgICYuaW5hY3RpdmUge1xuICAgICAgICAgICAgICBjb2xvcjogI2NjYztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYm9keS1zaWRlcyB7XG4gICAgICAgICAgbWFyZ2luOiAyMHB4IDA7XG5cbiAgICAgICAgICAmID4gZGl2IGxhYmVsIHNwYW4ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA5cHg7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJiA+IGRpdiArIGRpdiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMjVweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmhpZGRlbiB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICYgPiBkaXYuZmlsbGVyIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIDEwMCUpO1xuICAgIH1cbiAgfVxuXG4gIEAtbW96LWRvY3VtZW50IHVybC1wcmVmaXgoKSB7XG4gICAgLmxpc3Qge1xuICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cbiAgfVxufVxuXG4uZXhlcmNpc2Vfc2VsZWN0IHtcbiAgQGluY2x1ZGUgZmxleCgxIDAgMzAwcHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgLmxpc3Qge1xuICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgIG1pbi1oZWlnaHQ6IDEwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgICYgPiBkaXY6bm90KC5maWxsZXIpIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG5cbiAgICAgIC5leGVyY2lzZS1pdGVtIHtcbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgICAgIH1cbiAgICAgICAgLm5hbWUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgfVxuICAgICAgICAuY2lyY2xlZC1pY29uIHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBtYXJnaW46IDAgMTJweDtcbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGJsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5kZXRhaWwge1xuICAgICAgICBtYXJnaW4tbGVmdDogMzBweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuXG4gICAgICAgIC52aWV3LWRldGFpbCB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcbiAgICAgICAgICBwYWRkaW5nOiA0cHggOHB4O1xuXG4gICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxN3B4O1xuICAgICAgICAgICAgbWFyZ2luOiAwIDZweDtcblxuICAgICAgICAgICAgJi5pbmFjdGl2ZSB7XG4gICAgICAgICAgICAgIGNvbG9yOiAjY2NjO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5ib2R5LXNpZGVzIHtcbiAgICAgICAgICBtYXJnaW46IDIwcHggMDtcblxuICAgICAgICAgICYgPiBkaXYgbGFiZWwgc3BhbiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDlweDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmID4gZGl2ICsgZGl2IHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyNXB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuaGlkZGVuIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJiA+IGRpdi5maWxsZXIge1xuICAgICAgQGluY2x1ZGUgZmxleCgxIDEgMTAwJSk7XG4gICAgfVxuICB9XG5cbiAgQC1tb3otZG9jdW1lbnQgdXJsLXByZWZpeCgpIHtcbiAgICAubGlzdCB7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgfVxuICB9XG59XG5cbi5maWx0ZXJzIHtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoMTAwcHgpO1xuXG4gID4gZnVzaW9uLWRyb3AtZG93bixcbiAgPiBmdXNpb24tb3JkZXJlZC1kcm9wLWRvd24sXG4gID4gZGl2IHtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMCA1MCUpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIC8qKioqKiBOT1RFICoqKioqKlxuICAgIHNpbmNlIHRoZSBoZWlnaHQgaXMgYmVpbmcgcmVjYWxjdWxhdGVkXG4gICAgb25seSBzZXQgdGhlIG1pbi1oZWlnaHRcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg1MHB4KTtcbiAgICAqKioqKiBFQkQgTk9URSAqKioqKiovXG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgbWluLWhlaWdodDogNTBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNiYmI7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2JiYjtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcblxuICAgIC5zZWxlY3QtdG9nZ2xlIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAmLmRpc2FibGVkIHtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIH1cbiAgICAgICAgaSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBzcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCguOSk7XG4gICAgICB9XG5cbiAgICAgIGkuZmEge1xuICAgICAgICBAaW5jbHVkZSBmbGV4KC4xKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAub3B0aW9ucyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwcHg7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjOTk5O1xuICAgICAgYm94LXNoYWRvdzogMCA2cHggMTBweCAwICM5OTk7XG4gICAgICBtYXgtaGVpZ2h0OiAyMTVweDtcbiAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgIHotaW5kZXg6IDM7XG5cbiAgICAgICYgPiBkaXYge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDI4cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2NjO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgPiBmdXNpb24tZHJvcC1kb3duID4gZGl2LFxuICA+IGZ1c2lvbi1vcmRlcmVkLWRyb3AtZG93biA+IGRpdiB7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNDhweCk7XG4gIH1cblxuICA+IGZ1c2lvbi1kcm9wLWRvd24ucmVxdWlyZWQsXG4gID4gZnVzaW9uLW9yZGVyZWQtZHJvcC1kb3duLnJlcXVpcmVkIHtcbiAgICAuc2VsZWN0LXRvZ2dsZSA+IHNwYW4ge1xuICAgICAgY29sb3I6ICNmZjAwMDA7XG4gICAgfVxuICB9XG59XG5cbi5leGVyY2lzZS1pdGVtIHtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNDVweCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgbWFyZ2luOiAxMHB4O1xuXG4gIC5pY29uIHtcbiAgICBAaW5jbHVkZSBmbGV4KC4xKTtcblxuICAgICYudG9nZ2xlIHtcbiAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDMwcHgpO1xuICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCgzMHB4KTtcbiAgICAgIGZvbnQtc2l6ZTogNnB4O1xuXG4gICAgICAmLmRvd24ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICBwYWRkaW5nLXRvcDogMjRweDtcbiAgICAgIH1cblxuICAgICAgJi5yaWdodCB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5uYW1lIHtcbiAgICBAaW5jbHVkZSBmbGV4KC45KTtcblxuICAgIC5uby13cmFwLWVsbGlwc2Uge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG4gIH1cblxuICAmLmFjdGl2ZS1pdGVtIHtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgLmljb24ge1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gICYuZHJhZ2dpbmctZWxlbWVudCB7XG4gICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNjVweCk7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEsIDEuMSkgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXIgIWltcG9ydGFudDtcblxuICAgIC5pY29uIHtcbiAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG4gIH1cbn1cblxuLm5vLW1hdGNoIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICBAaW5jbHVkZSBsb2NrLWhlaWdodCg1MHB4KTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW46IDEwcHg7XG59XG5cbi8qIG1vZGFsIGp1bmsgKi9cbi5tb2RhbC1jb250YWluZXIge1xuICAmLm1vZGFsLWV4ZXJjaXNlLWRldGFpbCB7XG4gICAgaGVhZGVyIHtcbiAgICAgIC8qIEBpbmNsdWRlIGxvY2staGVpZ2h0KDc1cHgpOyAqL1xuICAgICAgYm9yZGVyOiBub25lO1xuXG4gICAgICBsYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb290ZXIge1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNzVweCk7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuXG4gICAgc2VjdGlvbiB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKHN0cmV0Y2gpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgbWluLXdpZHRoOiA2MDBweDtcblxuICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgIH1cblxuICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgICAgfVxuXG4gICAgICAmLnZpZGVvLXZpZXcge1xuICAgICAgICBtYXgtd2lkdGg6IDYwMHB4O1xuICAgICAgICBtaW4td2lkdGg6IDYwMHB4O1xuICAgICAgfVxuXG4gICAgICAmLmltYWdlLXZpZXcge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuXG4gICAgICAgID4gaW1nIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDM2MHB4O1xuICAgICAgICAgIG1pbi13aWR0aDogMzYwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWlzc2luZy1tZWRpYSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZmVmZWY7XG4gICAgICBjb2xvcjogI2RlZGVkZTtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgfVxuICB9XG5cbiAgJi5tb2RhbC1leGVyY2lzZS1mb3JtIHtcbiAgICBoZWFkZXIge1xuICAgICAgYm9yZGVyOiBub25lO1xuXG4gICAgICBsYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb290ZXIge1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNzVweCk7XG4gICAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAgICYuc21hbGxlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3JtIGxhYmVsIGJ1dHRvblt0eXBlPSdyZXNldCddIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkZWRlZGU7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgaGVpZ2h0OiAzM3B4O1xuICAgICAgbGluZS1oZWlnaHQ6IDMzcHg7XG4gICAgICBtYXJnaW46IDBweCAxMHB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDdweDtcbiAgICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gICAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICBzZWN0aW9uIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoc3RyZXRjaCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICBtaW4td2lkdGg6IDYwMHB4O1xuXG4gICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgfVxuXG4gICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgICB9XG5cbiAgICAgIC5maWx0ZXJzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIHNwYW4ge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICB9XG5cbiAgICAgICYgPiBzcGFuIHtcbiAgICAgICAgbWFyZ2luOiAxMHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcbiAgICAgICAgJi5tb2RhbC1lcnJvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMjMwcHg7XG4gICAgICAgICAgICBjb2xvcjogcmVkO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRleHRhcmVhIHtcbiAgICAgICAgQGluY2x1ZGUgYXBwZWFyYW5jZShub25lKTtcbiAgICAgICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBtYXJnaW46IDEwcHggNDBweCAxMHB4IDA7XG4gICAgICAgIGhlaWdodDogMTQwcHg7XG4gICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIHBhZGRpbmctdG9wOiA0cHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogNHB4O1xuXG4gICAgICAgICYubGFyZ2Uge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgICAgICB9XG4gICAgICAgICYubGFyZ2VyIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA0NTBweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZihzdHJldGNoKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2JiYjtcbiAgICAgICAgbWluLWhlaWdodDogMjVweDtcblxuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNiYmI7XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBtYXJnaW46IDEwcHg7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XG4gICAgICAgICAgbWluLXdpZHRoOiAxNTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4KDEgMSA1MCUpO1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgbWFyZ2luOiAxcHg7XG4gICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGVjdCB7XG4gICAgICAgICAgQGluY2x1ZGUgYXBwZWFyYW5jZShub25lKTtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4KDEgMSBhdXRvKTtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoc3RyZXRjaCk7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2JiYjtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgIG1hcmdpbjogMXB4O1xuICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgICAgdGV4dC1pbmRlbnQ6IDEwcHg7XG5cbiAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjotbW96LWZvY3VzcmluZyB7XG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmOjotbXMtZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJiArIGkuZmEge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBjb2xvcjogI2NjYztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvIDA7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5zaW5nbGUtbGluZS1mb3JtLWZpZWxkcyBsYWJlbCAuYm9keS1zaWRlcyB7XG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gZGl2ICsgZGl2IHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMjVweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnNpbmdsZS1saW5lLWZvcm0tZmllbGRzIC5ldmVuLWNvbHMge1xuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuXG4gICAgICAgICAgPiBzZWxlY3Qge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgICAgICB0ZXh0LWluZGVudDogNDBweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgIGNvbG9yOiAjNzU3NzdhO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsICsgbGFiZWwge1xuICAgICAgICAgID4gc2VsZWN0IHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2ViZWJlYjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAud2Vlay1zZWxlY3Rpb24ge1xuICAgICAgcGFkZGluZzogNXB4IDE1cHg7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgID4gZGl2IHtcbiAgICAgICAgbWFyZ2luOiAwIDEwcHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDI4cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgY29sb3I6ICNhMGE0YTg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICBjb2xvcjogIzc1Nzc3YTtcbiAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkYmx1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qIGRyYWctbi1kcm9wIGp1bmsgKi9cbi8qIHNob3VsZCBiZSBtb3ZlZCB0byBvd24gZmlsZSAoY2xlYXJseSkgKi9cbi5kcmFnLWhpZGRlbiB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn07XG5cbi5kcmFnLW1vdmUtc2Nyb2xsLWFuY2hvciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTU1LCAxNTUsIDE1NSwgLjI3NSk7XG4gIGhlaWdodDogMjBweDtcbiAgei1pbmRleDogMTtcblxuICAmLnRvcCB7XG4gICAgdG9wOiAwO1xuICB9XG5cbiAgJi5ib3R0b20ge1xuICAgIGJvdHRvbTogMDtcbiAgfVxufTtcblxuLmRyb3AtaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmRyb3AtdGFyZ2V0IHtcblxuICAmOm5vdCguZHJvcC1lbXB0eSkge1xuICAgIGJvcmRlcjogMnB4IGRhc2hlZCAjY2RkM2Q3O1xuICB9XG5cbiAgJi5kcm9wLXRhcmdldC1vdmVyIHtcbiAgICAmOm5vdCguYWRkLXNlY3Rpb24pIHtcbiAgICAgIGJvcmRlcjogMnB4IGRhc2hlZCAjNGNiYjE3ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJi5hZGQtc2VjdGlvbiA+IGRpdiB7XG4gICAgICBib3JkZXItY29sb3I6ICM0Y2JiMTcgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuYWRkLWV4ZXJjaXNlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi5kcmFnZ2luZy1lbGVtZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3JkZXI6IDJweCBzb2xpZCAjODg4O1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTAsIDAuOTApICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDEwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbiIsIi5yZXNwLXByb2dyYW0tbWVudSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIC5jYXRhbG9nX2NvbnRhaW5lciA+IGRpdiB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgfVxuICAgIC5vcGVuZWQtY29udGFpbmVyLFxuICAgIC5jbG9zZWQtY29udGFpbmVyIHtcbiAgICAgIGZsZXg6IG5vbmU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgIH1cbiAgICAuY2F0YWxvZy1iYW5uZXIsXG4gICAgLmNhdGFsb2ctc2VhcmNoLFxuICAgIC5jYXRhbG9nX25hdl93cmFwcGVyIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gICAgLmNhdGFsb2dfY29udGFpbmVyIHtcbiAgICAgIGZsZXg6IG5vbmU7XG4gICAgICBtaW4taGVpZ2h0OiBhdXRvO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB9XG4gICAgdWwuY2F0YWxvZ19uYXYge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICB9XG4gIH1cbn1cblxuLmNhdGFsb2dfY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgZmxleCgxIDAgMzUwcHgpO1xuICBtaW4taGVpZ2h0OiA1MDBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gID4gZGl2LmNhdGFsb2ctc2Nyb2xsYWJsZSB7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgfVxuXG4gID4gZGl2IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICA+IGRpdiB7XG4gICAgICAmLm9wZW5lZC1jb250YWluZXIge1xuICAgICAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgICYuY2xvc2VkLWNvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIDUycHgpO1xuICAgICAgICBtYXgtaGVpZ2h0OiA1MnB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uY2F0YWxvZy1iYW5uZXIge1xuICBAaW5jbHVkZSBsb2NrLWhlaWdodCg1MHB4KTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2ViZWJlYjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk3NjhFQjtcbiAgbWFyZ2luOiAxcHggMDtcblxuICBpLmNpcmNsZWQtaWNvbiB7XG4gICAgbWFyZ2luOiAwIDE1cHg7XG4gICAgYm9yZGVyOiAycHggc29saWQgJGJsdWU7XG4gICAgY29sb3I6ICRibHVlO1xuICB9XG5cbiAgc3BhbiB7XG4gICAgY29sb3I6ICNlZmVmZWY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG5cbi5jYXRhbG9nLXNlYXJjaCB7XG4gIEBpbmNsdWRlIGxvY2staGVpZ2h0KDUwcHgpO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZWJlYmViO1xuICBcbiAgZm9ybSB7XG4gICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmZWZlO1xuXG4gICAgaW5wdXRbdHlwZT0ndGV4dCddIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBoZWlnaHQ6IDQ5cHg7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMC4zOXB4O1xuICAgICAgdGV4dC1pbmRlbnQ6IDE1cHg7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgIGJ1dHRvblt0eXBlPSdyZXNldCddIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkZWRlZGU7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICBjb2xvcjogI2ZlZmVmZTtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgaGVpZ2h0OiAzM3B4O1xuICAgICAgbGluZS1oZWlnaHQ6IDMzcHg7XG4gICAgICBtYXJnaW46IDBweCAxMHB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDdweDtcbiAgICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG4gICAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG4gIH1cbn1cblxuLmNhdGFsb2dfbmF2X3dyYXBwZXIge1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5jYXRhbG9nX25hdiB7XG4gIEBpbmNsdWRlIGxvY2std2lkdGgoMzUwcHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlYmViZWI7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGhlaWdodDogYXV0bztcblxuICAuY2F0ZWdvcnktaWNvbiB7XG4gICAgbWFyZ2luOiAwIDE4cHg7XG4gICAgbWluLXdpZHRoOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgfVxuXG4gIC5hZGQtaWNvbiB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIG1hcmdpbjogMCAxNXB4O1xuICAgIG1pbi13aWR0aDogMTJweDtcbiAgfVxufVxuXG51bC5jYXRhbG9nX25hdiB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcblxuICBsaSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBtYXJnaW46IDVweCAwO1xuICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICA+IHNwYW4ge1xuICAgICAgbWluLWhlaWdodDogNDVweDtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgfVxuXG4gICAgLmNhdGVnb3J5LXN0YXRlIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1lbmQpO1xuICAgICAgQGluY2x1ZGUgZmxleCgxIDEgYXV0byk7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBtYXJnaW46IDAgMjBweDtcbiAgICAgIG1pbi13aWR0aDogMTJweDtcbiAgICB9XG5cbiAgICAuY2F0ZWdvcnktb3BlbiB7XG4gICAgICAuY2F0ZWdvcnktc3RhdGU6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcXGU2MjBcIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuY2F0ZWdvcnktY2xvc2Uge1xuICAgICAgLmNhdGVnb3J5LXN0YXRlOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXFxlNjJmXCI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbGkuZXhlcmNpc2UtdGVjaG5pcXVlIHtcbiAgICA+IHNwYW4ge1xuICAgICAgdGV4dC1pbmRlbnQ6IDIwcHg7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgfVxuXG4gICAgPiB1bCB7XG4gICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICBsaSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDI0cHg7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAyNHB4O1xuICAgICAgICAgIHRleHQtaW5kZW50OiAzMHB4O1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbGkgPiB1bCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMTBweCAwIDAgMDtcblxuICAgIGxpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuXG4gICAgICA+IHNwYW4ge1xuICAgICAgICBtaW4taGVpZ2h0OiAzMHB4O1xuICAgICAgICB0ZXh0LWluZGVudDogMzBweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgPiB1bCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgbWluLWhlaWdodDogMzBweDtcbiAgICAgICAgICB0ZXh0LWluZGVudDogNTBweDtcbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLmxvZ2luLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7XG5cbiAgLmxvZ2luLW1vZGFsIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgQGluY2x1ZGUgbG9jay13aWR0aCg0NzZweCk7XG4gICAgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZDRkNGQztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWZlZmVmO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBwYWRkaW5nOiA0N3B4IDAgMjJweDtcblxuICAgID4gaW1nIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZihjZW50ZXIpO1xuICAgIH1cblxuICAgIC5sb2dpbi1iYW5uZXIge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG5cbiAgICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICAgIG1hcmdpbjogMjhweCAxNXB4IDMwcHg7XG4gICAgICBjb2xvcjogJGJsdWU7XG4gICAgfVxuXG4gICAgLmxvZ2luLWZvcm0ge1xuICAgICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tY29udGVudChjZW50ZXIpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTsgICAgICBcblxuICAgICAgLy8gPiBpbnB1dDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAvLyAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgICAvLyAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIC8vIH1cblxuICAgICAgLy8gPiBpbnB1dDo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICAvLyAgIGZvbnQtd2VpZ2h0OiAyMDA7XG4gICAgICAvLyAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIC8vIH1cblxuICAgICAgPiBpbnB1dDo6LW1zLWNsZWFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgPiBpbnB1dCB7XG4gICAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDUxcHgpO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgICAgICAgIFxuICAgICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlciAge1xuICAgICAgICAgIGNvbG9yOiAjNzU3NzdBO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgICAgIFxuICAgICAgICAgIG9wYWNpdHk6IDE7ICBcbiAgICAgICAgICBmb250LXNpemU6IDE1cHg7ICAgICBcbiAgICAgICAgfVxuICAgICAgICArIGlucHV0ICB7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAubG9naW4tYnV0dG9ucyB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KHNwYWNlLWV2ZW5seSk7XG4gICAgICAgIG1hcmdpbjogMHB4IDMwcHg7XG4gICAgICAgID4gYnV0dG9uIHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoY2VudGVyKTtcbiAgICAgICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg1N3B4KTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICBcbiAgICB9XG5cbiAgICAucmVzZXQtZm9ybSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1jb250ZW50KGNlbnRlcik7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpOyAgICAgIFxuXG4gICAgICA+IGlucHV0OjotbXMtY2xlYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICA+IGlucHV0IHtcbiAgICAgICAgbWFyZ2luOiAyOHB4IDAgMDtcbiAgICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNTFweCk7XG5cbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG4gICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVyICB7XG4gICAgICAgICAgY29sb3I6ICM3NTc3N0E7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyAgICAgXG4gICAgICAgICAgb3BhY2l0eTogMTsgICAgICAgXG4gICAgICAgIH1cbiAgICAgICAgKyBpbnB1dCAge1xuICAgICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnNlY29uZFBhc3N3b3JkIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMDtcbiAgICAgIH1cblxuICAgICAgLmJ1dHRvbi1jb2xsZWN0aW9uIHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoY2VudGVyKTtcbiAgICAgICAgICBtYXJnaW46IDI4cHggMCAwO1xuICAgICAgICAgID4gYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDU3cHgpO1xuICAgICAgICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC5tZXNzYWdlIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgLy8gQGluY2x1ZGUgbG9jay1oZWlnaHQoMzBweCk7XG4gICAgICBtYXJnaW46IDExcHggMTVweDsgLy8gd2hlbiBhIG1lc3NhZ2UgaXMgaGVyZSBpcyBzaG91bGQgYmUgdmVyaXRjYWxseSBzcGFjZWQgYSBiaXRcbiAgICB9XG5cbiAgICAgLmRlc2NyaXB0aW9uIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg3MHB4KTtcbiAgICAgIG1hcmdpbjogMTFweCAxNXB4OyAvLyB3aGVuIGEgbWVzc2FnZSBpcyBoZXJlIGlzIHNob3VsZCBiZSB2ZXJpdGNhbGx5IHNwYWNlZCBhIGJpdFxuICAgIH1cblxuICAgIC5sb2dpbi1saW5rIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuXG4gICAgICBmb250LXNpemU6IDEycHg7XG5cbiAgICAgID4gYSB7XG4gICAgICAgIGNvbG9yOiAjYWFhO1xuICAgICAgICB3b3JkLXNwYWNpbmc6IDJweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi5sb2dpblJlbWVtYmVyTWUgIHtcbiAgbWFyZ2luOiAyOHB4IDAgMDtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKGNlbnRlcik7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICAuY2hlY2tib3gtaW5wdXQgIHtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgaSAge1xuICAgICAgZm9udC1zaXplOiAyNXB4O1xuICAgIH1cbiAgICBzcGFuICB7XG4gICAgICBjb2xvcjogIzc1Nzc3QTtcbiAgICB9IFxuICB9ICBcbn1cbi5sb2dpbkZvcmdvdFBhc3NMaW5rICB7XG4gIG1hcmdpbjogMzFweCAwIDA7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZihjZW50ZXIpOyBcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogI0FBQjBCNztcbiAgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IHVuZGVybGluZTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBhICB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cbn0iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiXG4ubW9kYWwtY29udGFpbmVyIHNlY3Rpb24ucHJvZmlsZS1mb3JtIHtcbiAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gIG1hcmdpbjogMTBweDtcbiAgbWluLXdpZHRoOiA0MDBweDtcbiAgXG4gIGxhYmVsIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoc3RyZXRjaCk7XG4gICAgbWFyZ2luOiA1cHggOXB4O1xuICAgIG1heC13aWR0aDogMzI1cHg7XG5cbiAgICBzcGFuIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LWVuZCk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgfVxuXG4gICAgaW5wdXQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59IiwiLm1vZGFsLWNvbnRhaW5lciB7XG5cbiAgJi5tb2RhbC1hdGhsZXRlLWZvcm0ge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIHdpZHRoOiA3NDBweDtcblxuICAgIGhlYWRlciB7XG4gICAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAgIGxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIGZvb3RlciB7XG4gICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg3NXB4KTtcbiAgICAgIGJvcmRlcjogbm9uZTtcblxuICAgICAgJi5zbWFsbGVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIHNlY3Rpb24ge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhzdHJldGNoKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgIG1pbi13aWR0aDogNjAwcHg7XG5cbiAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWJlYmViO1xuICAgICAgfVxuXG4gICAgICAmOm5vdCg6Zmlyc3Qtb2YtdHlwZSkge1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgfVxuXG4gICAgICBkaXYuc2VjdGlvbi1sYWJlbCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGNvbG9yOiAjNzU3NzdBO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4zMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjdweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG5cbiAgICAgIGRpdi5vcHRpb25zLWNvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgICB9XG4gICAgICBkaXYub3B0aW9uLWNvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMzVweDtcbiAgICAgICAgZGl2Lm9wdGlvbi1sYWJlbCB7XG4gICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMTE1cHgpO1xuICAgICAgICB9XG4gICAgICAgIGRpdi5jaG9pY2VzLWNvbnRhaW5lciB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgICAucmFkaW8taW5wdXQge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBUaGUgZm9ybSdzIHNlbGVjdCBzdHlsaW5nIChhbmQgaXRzIGNhcmV0KSBpcyBzY29wZWQgdG8gc2VjdGlvbiBsYWJlbCxcbiAgICAgICAgICAvLyBzbyB0aGUgcmVnaXN0cmF0aW9uIHRlc3QgcGlja2VyIGNhcnJpZXMgaXRzIG93biBpbnNpZGUgdGhpcyBvcHRpb25zIGJsb2NrLlxuICAgICAgICAgIC5zZWxlY3QtaW5wdXQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgc2VsZWN0IHtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgYXBwZWFyYW5jZShub25lKTtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlYmViZWI7XG4gICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gICAgICAgICAgICAgIG1pbi13aWR0aDogMTYwcHg7XG4gICAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDAgMjhweCAwIDEwcHg7XG5cbiAgICAgICAgICAgICAgJjo6LW1zLWV4cGFuZCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaS5pY29uLWNhcmV0LWRvd24ge1xuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTZweDtcbiAgICAgICAgICAgICAgY29sb3I6ICNEOURCREM7XG4gICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAucm93LWNvbnRhaW5lclxuICAgICAge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICAmOm5vdCg6Zmlyc3Qtb2YtdHlwZSkge1xuICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWJlYmViO1xuICAgICAgICB9XG4gICAgICAgICYgLnNwYWNlLWJldHdlZW4ge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KHNwYWNlLWJldHdlZW4pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYgPiBzcGFuIHtcbiAgICAgICAgbWFyZ2luOiAxMHB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcbiAgICAgICAgJi5tb2RhbC1lcnJvciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMjMwcHg7XG4gICAgICAgICAgICBjb2xvcjogcmVkO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5kb2ItZmllbGQge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlYmViZWI7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgIG1hcmdpbjogMTBweCAxMHB4IDEwcHggNDBweDtcbiAgICAgICAgfVxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKHN0cmV0Y2gpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4KDEgMSAwJSk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWluLWhlaWdodDogMjVweDtcblxuICAgICAgICAmOm5vdCg6Zmlyc3Qtb2YtdHlwZSkge1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2ViZWJlYjtcbiAgICAgICAgfVxuXG4gICAgICAgICYuZmVldC1maWVsZCB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleCguNiAxIDAlKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaW5jaGVzLWZpZWxkIHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4KC4zOTUgMSAwJSk7XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBtYXJnaW46IDEwcHg7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XG4gICAgICAgICAgLy8gQGluY2x1ZGUgbG9jay13aWR0aCgxMjBweCk7XG4gICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgIGNvbG9yOiAjNzU3NzdBO1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjMycHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDI3cHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDsgICAgICAgICAgXG4gICAgICAgIH1cblxuICAgICAgICAuaW52YWxpZC1pbnB1dCB7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgLnZhbGlkYXRpb24tY29udGFpbmVyIHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4KDEgMSBhdXRvKTtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoc3RyZXRjaCk7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgICAudmFsaWRhdGlvbi1tZXNzYWdlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICAgICAgdG9wOiA1NXB4O1xuICAgICAgICAgICAgcGFkZGluZzogM3B4IDZweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYig0Niw0Niw0Nik7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2IoNDYsNDYsNDYpO1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgbGVmdDogNDUlO1xuICAgICAgICAgICAgICB0b3A6IC0xMHB4O1xuICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHJnYig0Niw0Niw0NikgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICAgIGJvcmRlci13aWR0aDogMHB4IDEwcHggMTBweCAxMHB4O1xuICAgICAgICAgICAgICBoZWlnaHQ6IDBweDtcbiAgICAgICAgICAgICAgd2lkdGg6IDBweDtcbiAgICAgICAgICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleCgxIDEgYXV0byk7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKHN0cmV0Y2gpO1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjdweDtcbiAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICAgIG1hcmdpbjogMXB4O1xuICAgICAgICAgIHRleHQtaW5kZW50OiAxMHB4O1xuICAgICAgICAgICYubWVhc3VyZW1lbnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgICAgICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDU1cHgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5kYXRlLWlucHV0IHtcbiAgICAgICAgICB3aWR0aDogMjIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuaW1wZXJpYWwtaGVpZ2h0IHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICAgICAgICBtaW4td2lkdGg6IDQ1JTtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgLy8gJi5mZWV0IHtcbiAgICAgICAgICAvLyAgIG1hcmdpbi1yaWdodDogN3B4O1xuICAgICAgICAgIC8vIH1cbiAgICAgICAgICAmLmluY2hlcyB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDgwJTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgIEBpbmNsdWRlIGFwcGVhcmFuY2Uobm9uZSk7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleCgxIDEgYXV0byk7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKHN0cmV0Y2gpO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgIG1hcmdpbjogMXB4O1xuICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgICAgdGV4dC1pbmRlbnQ6IDEwcHg7XG5cbiAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjotbW96LWZvY3VzcmluZyB7XG4gICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAmOjotbXMtZXhwYW5kIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgfSAgICAgICAgICBcblxuICAgICAgICAgICYgKyBpLmljb24tY2FyZXQtZG93biB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDI1cHg7XG4gICAgICAgICAgICByaWdodDogMjBweDtcbiAgICAgICAgICAgIGNvbG9yOiAjRDlEQkRDO1xuICAgICAgICAgICAgZm9udC1zaXplOiA2cHg7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgICYuZmVldCB7XG4gICAgICAgICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgICAgICAgcmlnaHQ6IDM1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmluY2hlcyB7XG4gICAgICAgICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgICAgICAgcmlnaHQ6IDUwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgICYuaW1wZXJpYWwge1xuICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IDMwcHg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubW9kYWwtY29udGFpbmVyLm1vZGFsLWF0aGxldGUtZm9ybSB7XG4gICAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG4gICAgdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIHJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgZm9vdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICBib3R0b206IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlYmViZWI7XG4gICAgICB6LWluZGV4OiAxO1xuICAgIH1cblxuICAgIHNlY3Rpb24ge1xuICAgICAgbWluLXdpZHRoOiAwO1xuXG4gICAgICAvLyBvbmx5IGRpcmVjdCBjaGlsZCByb3ctY29udGFpbmVycyAoZm9ybSByb3dzKSBnbyB0byBjb2x1bW4sIGV4Y2VwdCBoZWlnaHQgcm93XG4gICAgICAvLyBuZXN0ZWQgcm93LWNvbnRhaW5lcnMgKGUuZy4gaW5zaWRlIGZ1c2lvbi1jYWxlbmRhciAuZGF0ZS1pbnB1dCkgc3RheSBhcy1pc1xuICAgICAgPiAucm93LWNvbnRhaW5lcjpub3QoLmhlaWdodC1maWVsZHMtcm93KSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDQ0cHg7XG5cbiAgICAgICAgICAmOm5vdCg6Zmlyc3Qtb2YtdHlwZSkge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2ViZWJlYjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuXG4gICAgICAuZG9iLWZpZWxkIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlYmViZWI7XG4gICAgICB9XG5cbiAgICAgID4gLnJvdy1jb250YWluZXIuc3BhY2UtYmV0d2VlbiB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuXG4gICAgICAgIC5vcHRpb25zLWNvbnRhaW5lciB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAub3B0aW9uLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogNDBweDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5pbWFnZS1jb250cm9sIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHggMjBweCA0MHB4O1xuICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWJlYmViO1xuICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLnNlbGVjdC1hbGwge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBtYXJnaW4tYm90dG9tOiAyNXB4O1xufVxuXG4uc2VsZWN0LWF0aGxldGUtbGlzdCB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuXG4gICAgbWFyZ2luOiA0NXB4IDY1cHggNDVweCA2NXB4O1xuICAgIHBhZGRpbmc6IDE1cHggMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDgwcHg7XG4gICAgbWF4LWhlaWdodDogNDAwcHg7XG4gICAgbWluLXdpZHRoOiAzMDBweDtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIC5hdGhsZXRlcyB7XG4gICAgICBoZWlnaHQ6IDMwMHB4O1xuICAgICAgLmF0aGxldGUtbmFtZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgY29sb3I6ICM3NTc3N0E7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjMycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyN3B4O1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gICAgICAgICYuYWxsIHtcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG59IiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIi5tb2RhbC1jb250YWluZXIge1xuXG4gICYubW9kYWwtdGVybXMge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIHdpZHRoOiA3NDBweDtcbiAgICBwYWRkaW5nOiAyMHB4IDQwcHg7XG4gICAgZm9vdGVyIHtcbiAgICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gICAgICBidXR0b24ge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCJcbi5hZG1pbi1tZW51IHtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LWVuZCk7XG4gIEBpbmNsdWRlIGxvY2staGVpZ2h0KDY1cHgpO1xuXG4gID4gZGl2IHtcbiAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCg0MHB4KTtcbiAgICBjb2xvcjogI2EwYTRhODtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCAkYmx1ZTtcbiAgICAgIGNvbG9yOiAjZWZlZmVmO1xuICAgIH1cblxuICAgICY6bm90KC5hY3RpdmUpOmhvdmVyIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDRweCBzb2xpZCAjYTBhNGE4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIGEge1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNDBweCk7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgc3Bhbi5tYXJrZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IC0zMHB4O1xuICAgICAgd2lkdGg6IDIzcHg7XG4gICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwMDAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gID4gZGl2ICsgZGl2IHtcbiAgICBtYXJnaW4tbGVmdDogMzVweDtcbiAgfVxufVxuXG4uYWRtaW4tc3ViLW1lbnUge1xuICBAaW5jbHVkZSBsb2NrLWhlaWdodCgzMHB4KTtcbiAgY29sb3I6ICNhMGE0YTg7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG5cbiAgPiBkaXYge1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDMwcHgpO1xuXG4gICAgJi5hY3RpdmUge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICRibHVlO1xuICAgICAgY29sb3I6ICNlZmVmZWY7XG4gICAgfVxuXG4gICAgJjpub3QoLmFjdGl2ZSk6aG92ZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNhMGE0YTg7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG5cbiAgPiBkaXYgKyBkaXYge1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICB9XG59XG5cbi50YWItbWVudSB7XG4gIEBpbmNsdWRlIGxvY2staGVpZ2h0KDQ1cHgpO1xuICBAaW5jbHVkZSBsb2NrLXdpZHRoKDEwMHB4KTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkZGQ7XG4gIHBhZGRpbmc6IDAgMTBweDtcblxuICBzcGFuIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICB9XG5cbiAgJi5zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzk3NjhFQjtcbiAgICBzcGFuIHtcbiAgICAgIGNvbG9yOiAjZmVmZWZlO1xuICAgIH1cbiAgfVxufVxuXG4udGFiLW1lbnU6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkZGQ7XG59XG5cbi50YWItdmlldyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIHBhZGRpbmc6IDVweDtcbn1cblxuLnRhYi12aWV3LWxpc3Qge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIHBhZGRpbmctbGVmdDogMDtcbn0iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbi50ZXN0LWNvbnRhaW5lci1oZWFkZXIgIHtcblx0QGluY2x1ZGUgZmxleC1yb3c7XG5cdG1hcmdpbi10b3A6IDI1cHg7XHRcblx0QG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG5cdFx0QGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcblx0fVxuXHQudGl0bGUgIHtcblx0XHRtYXJnaW46IDA7XG5cdFx0Zm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgZm9udC1zaXplOiAzNC41cHg7XG4gICAgICAgIGNvbG9yOiAjNzU3ODdCO1xuICAgICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IC0wLjZweDtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1yb3ctY2VudGVyO1x0XG5cdFx0bWluLWhlaWdodDogNDZweDtcblx0fSBcblx0Lm1haW4tY29sICB7XG5cdFx0QGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG5cdFx0cGFkZGluZy1yaWdodDogMjBweDtcdFx0XG5cdH1cblx0LnNpZGUtY29sICB7XHRcdFxuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1x0XG5cdFx0QG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1x0XG5cdFx0fVxuXHRcdD4gZGl2Om5vdChbY2xhc3NdKSAge1xuXHRcdFx0Zm9udC1zaXplOiAxNi41OXB4O1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMzFweDtcdFxuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XG5cdFx0fVxuXHR9XG59XG5cbi50ZXN0LXJlc3VsdC1jb250YWluZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbi50ZXN0LXJlc3VsdC1oZWFkZXIge1xuXHRAaW5jbHVkZSBmbGV4LXJvdztcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xuICAgIC50aXRsZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMzQuNXB4O1xuICAgICAgICBjb2xvcjogJGJsdWU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC42cHg7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcjtcdFxuXHRcdG1pbi1oZWlnaHQ6IDQ2cHg7ICAgICAgICBcbiAgICAgICAgbWFyZ2luOiAwIDAgNnB4OyAgICAgICAgXG4gICAgfTtcbn1cblxuLmlucHV0LXJlc3VsdHMge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7ICBcbn1cblxuLnJlc3VsdHMtY29sdW1uLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgY29sdW1uLWNvdW50KDIpO1xuICAgIEBpbmNsdWRlIGNvbHVtbi1nYXAoNGVtKTsgIFxuXHRcdEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuXHRcdFx0QGluY2x1ZGUgY29sdW1uLWNvdW50KDEpO1xuXHRcdH0gXG59XG5cbi5leGVyY2lzZS1kZXRhaWxzIHtcbiAgICBAaW5jbHVkZSBjb2x1bW4tbm8tYnJlYWsoKTsgIFxufVxuXG4ubGlua2VkLXJlc3VsdHMtaGVhZGVyIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAzNC41cHg7XG4gIGNvbG9yOiAjNzU3ODdCO1xuICBsaW5lLWhlaWdodDogNDBweDtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjZweDsgIFxufVxuXG4udGVzdGVkLWJ5IHtcblx0Zm9udC1zaXplOiAxM3B4O1xuXHRjb2xvcjogIzc1Nzc3QTtcblx0bGV0dGVyLXNwYWNpbmc6IDAuNHB4O1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbn1cblxuLnBlcmZvcm0tYWRkaXRpb25hbC1yZXN1bHRzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmVmO1xufVxuXG4ucGVyZm9ybWFuY2UtcmVzdWx0cyAgeyAgXG5cdHBhZGRpbmc6IDgwcHggMCA4MHB4O1xuXHRtYXgtd2lkdGg6IDc3OHB4O1xuXHRtYXJnaW46IDAgYXV0bztcblx0LmgyICB7XG5cdFx0bWFyZ2luOiAwIDAgMjBweDtcblx0fVxuXHRzZWN0aW9uICB7XG4gICAgcGFnZS1icmVhay1pbnNpZGUgOiBhdm9pZDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzJweDsgICAgXG5cdFx0KyBzZWN0aW9uICB7XG4gICAgICBwYWRkaW5nLXRvcDogMzJweDtcblx0XHR9XG5cdH1cbn1cblxuLnBlcmZvcm0tbm90ZXMtc2VjdGlvbiB7XG4gIG1heC13aWR0aDogNzc4cHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAwIDAgMTIwcHggMDtcbiAgLmhlYWRlciB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAjNzU3NzdBO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjRweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIHBhZGRpbmc6IDAgMCAxMnB4O1xuICB9XG4gIC5wcm9zZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICM5MjkzOTI7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgfVxufVxuXG4uc3RyZXNzLWluZGV4LWJsb2NrIHtcbiAgbWFyZ2luLXRvcDogNDVweDtcblx0Y2FudmFzIHtcblx0XHR3aWR0aDogMTEyNHB4O1xuXHRcdGhlaWdodDogODBweDtcblx0XHRAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdH1cblx0fVxuXHRpbWcge1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0fVxuICA+IC5oZWFkZXIgIHtcblx0XHRtYXJnaW4tYm90dG9tOiA2cHg7XG5cdFx0LnRpdGxlICB7XG5cdFx0XHRmb250LXdlaWdodDogNDAwO1xuXHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdFx0Y29sb3I6ICM3NTc4N0I7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogMXB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDE7XG5cdFx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdFx0bWFyZ2luOiAwIDAgMThweDtcblx0XHR9XG5cdH1cbn1cblxuLmNhdC1oZWFkZXIge1xuICBAaW5jbHVkZSBmbGV4LXJvdztcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBjb2xvcjogIzc1Nzg3QjtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbjogNDBweCAwIDE4cHg7XG59XG4uY2F0LXNjb3JlICB7XG5cdGNvbG9yOiAjZmZmO1xuICBwYWRkaW5nOiAzcHggNXB4O1xuICBtYXJnaW4tbGVmdDogMjBweDtcblx0Ji5ncmVlbiAge1xuXHRcdGJhY2tncm91bmQ6ICRzY29yZS1ncmVlbjtcblx0XHQrIC5kb3QgIHtcblx0XHRcdGJhY2tncm91bmQ6ICRzY29yZS1ncmVlbjtcblx0XHR9XG5cdH1cblx0Ji55ZWxsb3cgIHtcblx0XHRiYWNrZ3JvdW5kOiAkc2NvcmUteWVsbG93O1xuXHRcdCsgLmRvdCAge1xuXHRcdFx0YmFja2dyb3VuZDogJHNjb3JlLXllbGxvdztcblx0XHR9XG5cdH1cblx0Ji5yZWQgIHtcblx0XHRiYWNrZ3JvdW5kOiAkc2NvcmUtcmVkO1xuXHRcdCsgLmRvdCAge1xuXHRcdFx0YmFja2dyb3VuZDogJHNjb3JlLXJlZDtcblx0XHR9XG5cdH1cbn0iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG4uY2xpbmljYWwtZmllbGQge1xuICAgIG1pbi1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgaGVpZ2h0OiBpbmhlcml0O1xufVxuXG50ZXh0YXJlYSB7XG4gICAgJi5jbGluaWNhbC1ub3RlcyB7XG4gICAgICAgIGhlaWdodDogNzBweDtcbiAgICAgICAgcmVzaXplOiBub25lO1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIH1cbn1cblxuLmNsaW5pY2FsLXN1Yi1ub3RlIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG4gICAgbWFyZ2luLWxlZnQ6IDI1cHg7ICAgIFxufVxuXG4udHJlZS1saW5lIHtcbiAgICBoZWlnaHQ6IDM1cHg7XG4gICAgd2lkdGg6IDI1cHg7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjYmJiO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYmJiO1xufVxuXG4uY2xpbmljYWwtbm90ZXMtc2VjdGlvbiB7XG4gICAgbWFyZ2luOiAzOHB4IDAgNjBweDtcbiAgICBtYXgtd2lkdGg6IDU2MHB4O1xufVxuXG5sYWJlbC5jbGluaWNhbC1mb3JtLWZpZWxkICB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRib3JkZXI6IG5vbmU7XG4gICAgbWFyZ2luOiAwIDQwcHg7XG59XG5cbmhyLmNsaW5pY2FsLXJlcG9ydC1saW5lIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBiYWNrZ3JvdW5kOiAjRDhEOEQ4O1xuICAgIG1hcmdpbjogNDBweCAwO1xuICAgIGNsZWFyOiBib3RoO1xufVxuXG5zcGFuLmNsaW5pY2FsLWxhYmVsICB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMTBweCAwcHg7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzc1Nzc3QTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC40cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbn1cblxuZnVzaW9uLW9yZGVyZWQtZHJvcC1kb3duIHtcbiAgICAmLmNsaW5pY2FsLWRyb3AtZG93biB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XG4gICAgICAgIG1heC13aWR0aDogNjI2cHg7XG4gICAgICAgIHdpZHRoOiA2MjZweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgID4gZGl2LmNvbHVtbi1jb250YWluZXIge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDBweDtcbiAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgICAgICAuc2VsZWN0LXRvZ2dsZSB7XG4gICAgICAgICAgICBzcGFuLmZpbHRlcmVkIHtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogaW5oZXJpdDtcbiAgICAgICAgICAgIH0gICAgICAgICAgICBcbiAgICAgICAgfVxuICAgICAgICAub3B0aW9ucyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MHB4O1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xvcjogIzk5OTtcbiAgICAgICAgYm94LXNoYWRvdzogMCA2cHggMTBweCAwICM5OTk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDYwMHB4O1xuICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgICAgICYgPiBkaXYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDI4cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBpbmhlcml0O1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jbGluaWNhbC1zaWduYXR1cmUge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgbWFyZ2luLXRvcDogMzBweDtcbiAgZm9udC1zaXplOiAxNHB4O1xuXHRmb250LXdlaWdodDogNTAwO1xuXHRjb2xvcjogIzkyOTM5Mjtcblx0bGluZS1oZWlnaHQ6IDEuNTtcbiAgPiBkaXYge1xuICAgIHBhZGRpbmc6IDBweCAxNXB4IDBweCAxNXB4O1xuICB9XG59XG5cbi5wcmludC1vbmx5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbmlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbmlucHV0W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xufVxuXG4udGVzdC1hdGhsZXRlLW5hbWUge1xuICBjb2xvcjogIzc1Nzc3QTtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsZXR0ZXItc3BhY2luZzogMC4zMnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS42MjtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMzJweDtcbn1cblxuLnBlcmZvcm0tc2VsZWN0IHtcbiAgbWluLXdpZHRoOiAxMzNweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBjb2xvcjogIzc1Nzc3QTtcbiAgYm9yZGVyOiAycHggc29saWQgI0Q4RDhEODtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBoZWlnaHQ6IDM4cHg7XG59XG5cbi5yZWNvbW1lbmRlZCB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogJHJlZDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogLTJweDtcbiAgbGFiZWwge1xuICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTJweDtcbiAgfVxufVxuXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5SK1IgRGFpbHkgVGVzdCB2MlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5oMyB7XG4gIHNwYW4ge1xuICAgIGNvbG9yOiAkYmx1ZTtcbiAgfVxufVxuXG4ucnItbWVudSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93O1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKHN0cmV0Y2gpO1xuICBtYXgtd2lkdGg6IDcwMHB4O1xuICBoZWlnaHQ6IDU1cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRsaWdodF9ncmV5O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC5jdXN0b20ge1xuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XG4gICAgICAgIC1tcy1mbGV4OiAxO1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGxpZ2h0X2dyZXk7XG4gICAgfVxuICAgIGlucHV0IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAmOmNoZWNrZWQgfiBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYmx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgbGFiZWwge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDU1cHg7XG4gICAgICBsaW5lLWhlaWdodDogNTVweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNlZWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5yci1rZXkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXk7XG4gIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KHNwYWNlLWJldHdlZW4pO1xuICBtYXgtd2lkdGg6IDcwMHB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBjb2xvcjogJGJsdWU7XG4gIGxhYmVsIHtcbiAgICB3aWR0aDogMzMuMyU7XG4gICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cbn1cbiIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbi8vIHN0eWxlcyBmb3IgdGhlIHJlcGVhdGVkIHNoaWZ0IHRlc3Rcbi5yZXBlYXRlZC1zaGlmdC1sYXlvdXQge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAudGVzdC1yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIH1cbiAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICB9XG4gICAgJjpub3QoOmZpcnN0LW9mLXR5cGUpOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgfVxuICAgIC5kcm9wLW9mZiB7XG4gICAgICBjb2xvcjogIzk3NjhFQjsgXG4gICAgICBmb250LXNpemU6IDE4cHg7IFxuICAgICAgbGluZS1oZWlnaHQ6IDEuNjI7XG4gICAgfVxuICAgIC5tZWFzdXJlbWVudC1maWVsZCB7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDI4OXB4O1xuICAgICAgfVxuICAgICAgJjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDIzcHg7XG4gICAgICB9ICAgICAgXG4gICAgfVxuICB9XG4gIC5tZWFzdXJlbWVudC1sYWJlbCB7XG4gICAgY29sb3I6ICM3NTc3N0E7XG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gICAgcGFkZGluZy1yaWdodDogMThweDsgXG4gICAgd2lkdGg6MTBweFxuICB9XG59XG5cbi8vIHN0eWxlcyBmb3IgdGhlIHktYmFsYW5jZSB0ZXN0c1xuLnktYmFsYW5jZS1sYXlvdXQge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAudGVzdC1yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICY6bm90KDpmaXJzdC1vZi10eXBlKTpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICB9XG4gICAgLnN1Yi1sYWJlbCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDM1cHg7XG4gICAgfVxuICAgIC5kaWZmIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1MXB4O1xuICAgICAgY29sb3I6ICM5NzY4RUI7IFxuICAgICAgZm9udC1zaXplOiAxOHB4OyBcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjkyO1xuICAgIH1cbiAgICAubWVhc3VyZW1lbnQtZmllbGQge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyNzVweDtcbiAgICAgIH1cbiAgICAgIC5tZWFzdXJlbWVudC1sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAjNzU3NzdBO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDNweDsgXG4gICAgICAgIHdpZHRoOjEwcHhcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gc3R5bGVzIGZvciBtZWFzdXJlbWVudCBncm91cHNcbi5tZWFzdXJlbWVudC1ncm91cCB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIC50ZXN0LXJvdyB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgJjpub3QoOmZpcnN0LW9mLXR5cGUpOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIH1cbiAgICAuc3ViLWxhYmVsIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMzVweDtcbiAgICB9ICAgIFxuICAgIC5tZWFzdXJlbWVudC1maWVsZCB7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyM3B4O1xuICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDI3NXB4O1xuICAgICAgfVxuICAgICAgLm1lYXN1cmVtZW50LWxhYmVsIHtcbiAgICAgICAgY29sb3I6ICM3NTc3N0E7XG4gICAgICAgIG1hcmdpbi1yaWdodDogM3B4OyBcbiAgICAgICAgd2lkdGg6MTBweFxuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbkBtaXhpbiBjaGFuZ2UtaW5kaWNhdG9yIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICBtYXJnaW46IDAgMTBweDtcblxuICAmLmluY3JlYXNlIHsgXG4gICAgY29sb3I6ICMyMGI3Njk7IFxuICAgIGkuZmEge1xuICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIH1cbiAgfVxuXG4gICYuZGVjcmVhc2UgeyBcbiAgICBjb2xvcjogI2M0MmEzYjsgXG4gICAgaS5mYSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgfVxuICB9XG5cbiAgJi5wZXJmb3JtLWluY3JlYXNlIHsgXG4gICAgaS5mYSB7XG4gICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgfVxuICB9XG5cbiAgJi5wZXJmb3JtLWRlY3JlYXNlIHsgXG4gICAgaS5mYSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgfVxuICB9XG5cbiAgaS5mYSB7XG4gICAgbWluLXdpZHRoOiAxMnB4O1xuICB9XG59XG5cbi50ZXN0LXJlc3VsdHMtYnV0dG9uIHtcbiAgd2lkdGg6IDEwMCU7ICBcbiAgd2lkdGg6IC13ZWJraXQtZmlsbC1hdmFpbGFibGU7IFxufVxuXG4ucmVwb3J0cy1yZXNwLWhlYWRlciB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudChjb2x1bW4pO1xuICAgIC5yZXNwLWhlYWRlci1hY3Rpb25zIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB9XG4gIH1cbn1cblxuLnByb2dyZXNzLXJlcG9ydC1vcHRpb25zIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgbWFyZ2luOiAzMHB4IDAgNXB4O1xuICBnYXA6IDEwcHg7XG4gIGZsZXgtd3JhcDogd3JhcDtcblxuICAuZGF0ZS1yYW5nZXMge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgZ2FwOiAyMHB4O1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLnByb2dyZXNzLXJlcG9ydC1ub2RhdGEge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gIG1pbi1oZWlnaHQ6IDI1MHB4O1xuICBmb250LXNpemU6IDIwcHg7XG59XG5cbi5yZXBvcnQtY2hhcnQtY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcblxuICAucmVwb3J0LWNoYXJ0LWRldGFpbHMge1xuICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcblxuICAgIC5yZXBvcnQtY2hhcnQtZGV0YWlsIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG5cbiAgICAgICYudGVhbSwgJi50b3RhbCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgICB9XG5cbiAgICAgID4gZGl2IHtcbiAgICAgICAgbWluLXdpZHRoOiAxMzBweDtcbiAgICAgICAgbWluLWhlaWdodDogOTBweDtcbiAgICAgICAgbWFyZ2luOiAwIDEwcHg7XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgIG1pbi13aWR0aDogY2FsYygzMyUgLSAxOHB4KTtcbiAgICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMzMlIC0gMThweCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnJlcG9ydC1kZXRhaWwtY2hhcnQtbGluZSB7XG4gICAgICAgID4gY2FudmFzIHtcbiAgICAgICAgICB3aWR0aDogMTMwcHg7XG4gICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4IWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmhlYWRlciB7XG5cbiAgICAgIH1cblxuICAgICAgLnNjb3JlLWNvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogMTVweDtcblxuICAgICAgICAuc2NvcmUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgICAgICBmb250LXdlaWdodDogMTAwO1xuICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jaGFuZ2Uge1xuICAgICAgICAgIEBpbmNsdWRlIGNoYW5nZS1pbmRpY2F0b3I7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLnRyb3BoaWVzIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDBweDtcblxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC50cm9waHktcGxhY2Uge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICAgICAgICBmb250LXdlaWdodDogMTAwO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIC5yZXBvcnQtc3VtbWFyeS1jb250YWluZXIgLyAucmVwb3J0LXN1bW1hcnkgdXNlZCB0byBzaXQgaGVyZS4gVGhlIHByb2dyZXNzXG4vLyByZXBvcnQgaXMgdGhlIG9ubHkgdmlldyB0aGF0IGV2ZXIgcmVuZGVyZWQgdGhlbSwgYW5kIGl0IG5vdyByZW5kZXJzXG4vLyAucHJvZ3Jlc3Mtc3VtbWFyeSBpbnN0ZWFkIC0gc2VlIF9wcm9ncmVzc19zdW1tYXJ5LnNjc3MuXG5cbi5yZXBvcnQtZGV0YWlscy1jb250YWluZXIge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcbiAgbWFyZ2luLXRvcDogMzBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgXG5cbiAgLnRpdGxlIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZihjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMTAyNHB4KTtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgfVxufVxuXG4ucmVwb3J0LWRldGFpbHMge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgbWFyZ2luLWJvdHRvbTogNTBweDtcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cblxuICA+IGRpdiB7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIH1cblxuICAuY2hhbmdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAtOHB4O1xuICAgIG1pbi13aWR0aDogNzBweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcblxuICAgID4gZGl2IHtcbiAgICAgIEBpbmNsdWRlIGNoYW5nZS1pbmRpY2F0b3I7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgfVxuICB9XG4gIFxuICAubmFtZXMtY29udGFpbmVyIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIG1pbi13aWR0aDogMjUwcHg7ICAgIFxuXG4gICAgPiBkaXYge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgICBtaW4td2lkdGg6IDE4MHB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xuICAgIH1cblxuICAgIC5oZWFkZXItcm93IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkZmRmZGY7XG5cbiAgICAgIHNwYW4ge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuXG4gICAgICAmICsgLmhlYWRlci1yb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDRkNGQ0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5kZXRhaWwtcm93IHtcbiAgICAgID4gZGl2IHtcbiAgICAgICAgbWluLXdpZHRoOiAxODBweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB9XG5cbiAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjQyNDI0O1xuICAgICAgICBjb2xvcjogI2Y3ZjdmNztcbiAgICAgIH1cblxuICAgICAgJjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmUyZTJlO1xuICAgICAgICBjb2xvcjogI2Y3ZjdmNztcbiAgICAgIH1cblxuICAgICAgJi5zdWItdG90YWwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDRkNGQ0O1xuICAgICAgICBjb2xvcjogIzc1Nzg3YjtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICAgICYgKyAuc3ViLXRvdGFsIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZkZmRmO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYudG90YWwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmx1ZTtcbiAgICAgICAgY29sb3I6ICNmN2Y3Zjc7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgLmRldGFpbC1yb3ctcG9zaXRpb24ge1xuICAgICAgICBtYXJnaW4tbGVmdDoxNXB4OyBcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaW5mby1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG5cbiAgICA+IGRpdiB7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgICBtaW4td2lkdGg6IDExMHB4O1xuICAgIH1cblxuICAgIC5oZWFkZXItcm93IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkZmRmZGY7XG5cbiAgICAgIHNwYW4ge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuXG4gICAgICAmICsgLmhlYWRlci1yb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDRkNGQ0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5kZXRhaWwtcm93IHtcbiAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmVmO1xuICAgICAgfVxuXG4gICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnNjb3Jlcy1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBvdmVyZmxvdy15OiB1bnNldDtcbiAgICAgIG92ZXJmbG93LXg6IHVuc2V0O1xuICAgIH1cblxuICAgID4gZGl2IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG5cbiAgICAgID4gZGl2IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgICAgICBtaW4td2lkdGg6IDIxMHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgID4gZGl2OmZpcnN0LWNoaWxkIHtcbiAgICAgIC5oZWFkZXItcm93IHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjO1xuICAgICAgfVxuXG4gICAgICAuZGV0YWlsLXJvdyB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2NjYztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGVhZGVyLXJvdyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGZkZmRmO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjYztcblxuICAgICAgJi5yaWdodC1sZWZ0IHtcbiAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICBtaW4td2lkdGg6IDU1cHg7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHNwYW4ge1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuXG4gICAgICAmICsgLmhlYWRlci1yb3cge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDRkNGQ0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5kZXRhaWwtcm93IHtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNjY2M7XG5cbiAgICAgICY6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmVmO1xuICAgICAgfVxuXG4gICAgICAmOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZWZlZmU7XG4gICAgICB9XG5cbiAgICAgID4gZGl2IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcblxuICAgICAgICAmLnJpZ2h0LWxlZnQge1xuICAgICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDU1cHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5jaGFuZ2UtY29udGFpbmVyIHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnByb2dyZXNzLXJlcG9ydC1ib2R5bWFwIHtcbiAgbWF4LWhlaWdodDogMjEzcHg7XG4gIG1heC13aWR0aDogMTAwcHg7XG59XG5cbi5wcm9ncmVzcy1yZXBvcnQtaGlkZGVuIHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4ucHJvZ3Jlc3MtcmVwb3J0LWJvZHltYXAtY29udGFpbmVyIHtcbiAgLy8gbWFyZ2luLXRvcDogMnB4O1xufVxuXG4vKiAucHJvZ3JhbS1ncm91cC1kcm9wZG93bi1jb250YWluZXIgYW5kIC5yZXBvcnQtcHJvZ3JhbXMtY29udGFpbmVyIGxpdmVkIGhlcmUuXG4gICBCb3RoIHdlcmUgbWFya3VwIG9uIHRoZSBQcm9ncmFtcyB0YWIgb25seSAocHJvZ3Jlc3NyZXBvcnQuaHRtbCksIHdoaWNoIG5vd1xuICAgcmVuZGVycyAucHJvZ3JhbXMtZGV0YWlscyBpbnN0ZWFkIC0gc2VlIF9wcm9ncmFtc19kZXRhaWxzLnNjc3MuIE5vdGhpbmcgZWxzZVxuICAgaW4gZWl0aGVyIGJ1bmRsZSByZWZlcmVuY2VkIHRoZW0uICovXG5cbiIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCIvKiBUYWIgYmFyICsgaGVhZGVyIGFjdGlvbnMgZm9yIHRoZSBwcm9ncmVzcyByZXBvcnQgcGFnZSAoL3JlcG9ydHMvOmF0aGxldGVJZCkuXG5cbiAgIFRoZSB1bmRlcmxpbmUgdGFicyBhcmUgdGhlIHNhbWUgcGF0dGVybiBhcyB0aGUgYXRobGV0ZSBwcm9maWxlIHBhZ2VcbiAgIChfcHJvZmlsZV9hdGhsZXRlLnNjc3MpLiBUb2tlbnMgYXJlIHJlc3RhdGVkIGxvY2FsbHkgcmF0aGVyIHRoYW4gcmVhY2hpbmdcbiAgIGZvciAkYXRobGV0ZS1wcm9maWxlLSosIHdoaWNoIGlzIGZpbGUtbG9jYWwgdG8gdGhhdCBwYXJ0aWFsIGJ5IGNvbnZlbnRpb24uXG5cbiAgIEV2ZXJ5dGhpbmcgaGVyZSBsaXZlcyBpbnNpZGUgLnByaW50LW5vZGUncyAubm9wcmludCBoZWFkZXIsIHNvIG5vbmUgb2YgaXRcbiAgIHJlYWNoZXMgdGhlIGpzUERGIGNhcHR1cmUgaW4gdGVzdF9yZXN1bHRzX3BkZi5qczpnZW5lcmF0ZVByb2dyZXNzUmVwb3J0LlxuXG4gICBUcmFwcyB0aGlzIGJ1aWxkIGhhczogbm8gZ2xvYmFsIGJvcmRlci1ib3ggcmVzZXQgKGZvbGQgYm9yZGVycyBpbnRvIGZpeGVkXG4gICBzaXplcyBieSBoYW5kKSwgbm8gYXV0b3ByZWZpeGVyLCBhbmQgYSBnbG9iYWwgYGJ1dHRvbmAgcnVsZSB0aGF0IGZvcmNlc1xuICAgbWluLXdpZHRoIDExMHB4ICsgdXBwZXJjYXNlICsgYSBsb2NrLWhlaWdodCAtIHNlZSB1bnN0eWxlLWJ1dHRvbi4gKi9cblxuLy8gQWN0aXZlIHRhYiBsYWJlbCBvbmx5LiBEZWVwZXIgdGhhbiAkcHVycGxlLTUwMCwgd2hpY2ggc3RpbGwgZHJhd3MgdGhlXG4vLyB1bmRlcmxpbmUgYmVuZWF0aCBpdC5cbiRwcnQtYWN0aXZlLWluazogICAgIzY5NDFjNjtcblxuLy8gVmVydGljYWwgYWxpZ25tZW50IHdpdGggdGhlIHNpZGViYXIgcmFpbC5cbi8vXG4vLyAuc2lkZWJhci1oZWFkZXIgKF9wcm9maWxlX2F0aGxldGUuc2Nzczo2NjItNjk1LCA6Njk2LTcyMSkgaXMgMTZweCBwYWRkaW5nICtcbi8vIGEgMjJweCB0b2dnbGUgZ2x5cGggKHRhbGxlciB0aGFuIHRoZSAyMXB4IHRpdGxlIGl0IHNpdHMgYmVzaWRlKSArIDE2cHhcbi8vIHBhZGRpbmcgKyBhIDFweCBib3R0b20gcnVsZSwgbWVhc3VyZWQgZnJvbSB0aGUgcmFpbCdzIHRvcDpcbiRwcnQtc2lkZWJhci1ydWxlLXk6ICAxNnB4ICsgMjJweCArIDE2cHggKyAxcHg7ICAgLy8gNTVweFxuXG4vLyBUaGUgcmFpbCBpcyBmaXhlZCBhdCBgdG9wOiAkYXRobGV0ZS1oZWFkZXItaGVpZ2h0KCsgc3ViaGVhZGVyKWAgYW5kXG4vLyAubWFpbi12aWV3IHJlc2VydmVzIHRoZSBzYW1lIHZhbHVlIGFzIHBhZGRpbmctdG9wLCBzbyB0aGUgdHdvIHN0YWNrcyBvdWdodFxuLy8gdG8gc2hhcmUgYSB0b3AgZWRnZSAtIGJ1dCBtZWFzdXJlZCBhZ2FpbnN0IGEgcnVubmluZyBidWlsZCB0aGUgY29udGVudFxuLy8gY29sdW1uIHN0YXJ0cyAyMHB4IGxvd2VyLiBUaGUgbGlrZWx5IHNvdXJjZSBpcyB0aGUgLnZpZXctc3RhdGljIHdyYXBwZXJcbi8vIGFyb3VuZCB0aGUgYXRobGV0ZV9zZWxlY3Rpb25fYmFyIGluY2x1ZGU6IGl0IGlzIG9ubHkgcHVsbGVkIG91dCBvZiBmbG93IGJ5XG4vLyBgLm1haW4tdmlldzpoYXMoLmF0aGxldGUtc2VsZWN0aW9uKSA+IC5oZWFkZXItY29udGVudCArICpgLCBhbmQgaW4gdGhlXG4vLyBwcmFjdGl0aW9uZXIgc2lkZWJhciB2aWV3IHRoYXQgYmFyIGlzIHJlcGxhY2VkIGJ5IHRoZSBtZW1iZXIgY2FyZCwgc28gdGhlXG4vLyB3cmFwcGVyIHN0YXlzIGluIGZsb3cgYW5kIGNvbnRyaWJ1dGVzIGl0cyBvd24gaGVpZ2h0LlxuLy9cbi8vIFN1YnRyYWN0aW5nIGl0IGlzIHdoYXQgYWN0dWFsbHkgbGFuZHMgdGhlIHR3byBydWxlcyBvbiB0aGUgc2FtZSByb3cuIElmIHRoYXRcbi8vIHdyYXBwZXIgZXZlciBnb2VzIGF3YXkgdGhpcyBiZWNvbWVzIDIwcHggb2YgbWlzc2luZyBnYXAsIG5vdCBhIHNpbGVudFxuLy8gbWlzYWxpZ25tZW50LlxuJHBydC1jb250ZW50LXRvcC1vZmZzZXQ6IDIwcHg7XG5cbi8vIFRhYiB2ZXJ0aWNhbCBtZXRyaWNzLiBUaGUgbGFiZWwncyBsaW5lIGJveCB0b3AgaXMgcGFkLXRvcCBiZWxvdyB0aGUgcmFpbCdzXG4vLyB0b3A7IHRoZSB1bmRlcmxpbmUgc2l0cyBkaXJlY3RseSB1bmRlciBwYWQtYm90dG9tLlxuLy9cbi8vIFB1c2hpbmcgdGhlIGxhYmVsIGRvd24gNXB4IHdoaWxlIEFMU08gbGlmdGluZyB0aGUgdW5kZXJsaW5lIDFweCBjYW5ub3QgYmVcbi8vIGRvbmUgd2l0aCBwYWRkaW5nIGFsb25lIC0gaXQgbmVlZHMgcGFkLWJvdHRvbSB0byBnbyB0byAtNXB4LiBUaGUgMjBweCBsaW5lXG4vLyBoZWlnaHQgaXMgd2hhdCBoYXMgdG8gZ2l2ZTogZHJvcHBpbmcgaXQgdG8gMTVweCBmcmVlcyBleGFjdGx5IHRoZSA1cHggdGhlXG4vLyBtb3ZlIGNvc3RzLCB3aXRoIHBhZC1ib3R0b20gYm90dG9taW5nIG91dCBhdCAwLlxuLy9cbi8vIFRoZSBjb3N0IGlzIGRlc2NlbmRlciBjbGVhcmFuY2UuIEF0IDIwcHggdGhlIGxpbmUgYm94IGNhcnJpZWQgfjEuNXB4IG9mXG4vLyBoYWxmLWxlYWRpbmcgdW5kZXIgdGhlIGdseXBoczsgYXQgMTVweCB0aGF0IHR1cm5zIG5lZ2F0aXZlLCBzbyB0aGUgdGFpbHMgb2Zcbi8vIHRoZSBcImdcIiBhbmQgXCJ5XCIgaW4gXCJQcm9ncmVzcyBTdW1tYXJ5XCIgbm93IHNpdCBsZXZlbCB3aXRoIHRoZSB1bmRlcmxpbmVcbi8vIHJhdGhlciB0aGFuIGNsZWFyIG9mIGl0LiBSYWlzaW5nIHRoZSBsaW5lIGhlaWdodCBpcyB0aGUgb25seSB3YXkgYmFjayAtIHRoZVxuLy8gcGFkZGluZyBjYW5ub3QgYnV5IGl0LlxuJHBydC10YWItbGluZS1oZWlnaHQ6IDE1cHg7XG4kcHJ0LXRhYi1wYWQtdG9wOiAgICAgOHB4O1xuJHBydC10YWItcGFkLWJvdHRvbTogIDA7XG5cbi8vIFRoZSB0YWIgcmFpbCBjb3N0cyBpdHMgbGFiZWwncyBsaW5lLWhlaWdodCwgdGhlIHRhYidzIHZlcnRpY2FsIHBhZGRpbmcgYW5kXG4vLyB0aGUgMnB4IGFjdGl2ZSB1bmRlcmxpbmUuIFRoZSBjb250YWluZXIncyBvd24gMXB4IHJ1bGUgZW5kcyBvbiB0aGUgc2FtZVxuLy8gcGl4ZWwgLSB0aGUgdGFiJ3MgbWFyZ2luLWJvdHRvbTogLTFweCBwdWxscyB0aGUgdHdvIHRvZ2V0aGVyIC0gc28gaXQgYWRkc1xuLy8gbm90aGluZy5cbiRwcnQtdGFiLXJhaWwtaGVpZ2h0OiAkcHJ0LXRhYi1saW5lLWhlaWdodCArICRwcnQtdGFiLXBhZC10b3AgKyAkcHJ0LXRhYi1wYWQtYm90dG9tICsgMnB4OyAgLy8gMjVweFxuXG4vLyBEZWxpYmVyYXRlIGxpZnQgb2ZmIHRoZSBzaWRlYmFyIHJ1bGUuIEl0IGhhcyB0byBiZSBpdHMgb3duIHRlcm06IHRoZSBnYXBcbi8vIGJlbG93IGlzIGRlcml2ZWQgZnJvbSB0aGUgcmFpbCdzIGhlaWdodCwgc28gc2hyaW5raW5nIHRoZSByYWlsIHdvdWxkXG4vLyBvdGhlcndpc2UgYmUgYWJzb3JiZWQgYnkgYSBsYXJnZXIgZ2FwIGFuZCB0aGUgbGluZSB3b3VsZCBub3QgbW92ZSBhdCBhbGwuXG4vL1xuLy8gVGhpcyByYWlzZXMgdGhlIHdob2xlIHRhYiBibG9jaywgbGFiZWwgaW5jbHVkZWQuIFdpdGggcGFkLWJvdHRvbSBhbHJlYWR5IGF0XG4vLyAwIHRoZSBsYWJlbCBhbmQgaXRzIHVuZGVybGluZSBhcmUgbG9ja2VkIHRvZ2V0aGVyLCBzbyB0aGVyZSBpcyBubyBsb25nZXIgYVxuLy8gd2F5IHRvIG1vdmUgb25lIHdpdGhvdXQgdGhlIG90aGVyIC0gY2xvc2luZyB0aGUgcmVtYWluaW5nIGRpc3RhbmNlIHdvdWxkXG4vLyBtZWFuIGN1dHRpbmcgbGluZS1oZWlnaHQgYWdhaW4sIGF0IHRoZSBkZXNjZW5kZXJzJyBleHBlbnNlLlxuJHBydC1saW5lLWxpZnQ6ICAgICAgIDRweDtcblxuLy8gV2hhdCBpcyBsZWZ0IGlzIHRoZSBnYXAgYWJvdmUgdGhlIHRhYnMuIERlcml2aW5nIGl0IHJhdGhlciB0aGFuIGhhcmQtY29kaW5nXG4vLyA5cHgga2VlcHMgdGhlIHJlbGF0aW9uc2hpcCBpbnRhY3QgaWYgdGhlIHR5cGUgb3IgdGhlIHNpZGViYXIgcGFkZGluZyBtb3Zlcy5cbiRwcnQtZ2FwLXRvcDogICAgICAgICAkcHJ0LXNpZGViYXItcnVsZS15IC0gJHBydC10YWItcmFpbC1oZWlnaHRcbiAgICAgICAgICAgICAgICAgICAgICAtICRwcnQtY29udGVudC10b3Atb2Zmc2V0IC0gJHBydC1saW5lLWxpZnQ7XG4kcHJ0LWdhcC1sZWZ0OiAgICAgICAgMjBweDtcblxuLy8gRXZlcnl0aGluZyBzdGFja2VkIGFib3ZlIHRoZSBlbXB0eSBzdGF0ZSwgbWVhc3VyZWQgZnJvbSB0aGUgZG9jdW1lbnQgdG9wOlxuLy8gICAxMDRweCAgLm1haW4tdmlldyBwYWRkaW5nLXRvcCAoX3Byb2ZpbGVfYXRobGV0ZS5zY3NzOjYyOCkgLSByZXNlcnZlcyB0aGVcbi8vICAgICAgICAgIGZpeGVkIGhlYWRlciArIHNlbGVjdGlvbiBiYXJcbi8vICAgICA2cHggICRwcnQtZ2FwLXRvcFxuLy8gICAgMjVweCAgJHBydC10YWItcmFpbC1oZWlnaHRcbi8vICAgIDI4cHggIC5wcm9ncmVzcy1yZXBvcnQtaGVhZCBtYXJnaW4tdG9wXG4vLyAgICA0MHB4ICB0aGUgaGVhZCByb3cgaXRzZWxmICgkcHJ0LWFjdGlvbi1zaXplIHNldHMgaXRzIGhlaWdodClcbi8vICAgIDQwcHggIC5wcm9ncmVzcy1yZXBvcnQtb3B0aW9ucyByb3cgKCRkcnMtdHJpZ2dlci1oZWlnaHQpXG4vLyAgICB+N3B4ICBpbnRlci1ibG9jayBnYXBzXG4vLyBNZWFzdXJlZCBhZ2FpbnN0IGEgcnVubmluZyBidWlsZCwgbm90IGRlcml2ZWQgLSByZS1jaGVjayBpdCBpZiBhbnkgb2YgdGhlXG4vLyBjaHJvbWUgYWJvdmUgbW92ZXMuXG4kcHJ0LWVtcHR5LWNocm9tZTogICAgMjUwcHg7XG4vLyBCZWxvdyB0aGlzIHRoZSBjYWxjKCkgd291bGQgc3RhcnQgc3VidHJhY3RpbmcgcmVhbCBjb250ZW50LCBzbyB0aGUgYmxvY2tcbi8vIGZhbGxzIGJhY2sgdG8gaXRzIGludHJpbnNpYyBoZWlnaHQgaW5zdGVhZC5cbiRwcnQtZW1wdHktbWluOiAgICAgICAzMjBweDtcblxuLy8gQ29udGVudCBjb2x1bW4gd2lkdGguIC52aWV3LWNvbnRhaW5lciBpcyBsb2NrZWQgdG8gMTAyNHB4IGdsb2JhbGx5XG4vLyAoX2Jhc2Uuc2NzczozNjUtMzY3KSB2aWEgbG9jay13aWR0aCwgd2hpY2ggcGlucyBtYXgtd2lkdGgsIG1pbi13aWR0aCBBTkRcbi8vIHdpZHRoLiBUaGlzIHBhZ2UgdW5waW5zIGFsbCB0aHJlZSBhbmQgZmlsbHMgdGhlIHZpZXdwb3J0IGluc3RlYWQsIHNvIHRoZXJlXG4vLyBpcyBubyBwYWdlLXdpZHRoIHRva2VuIGFueSBtb3JlIC0gb25seSB0aGUgZ3V0dGVycyBiZWxvdyBib3VuZCBpdC5cblxuLy8gU3F1YXJlIGljb24gYnV0dG9uLCBtYXRjaGluZyB0aGUgNDBweCBoZWlnaHQgb2YgdGhlIGRhdGUtcmFuZ2UgdHJpZ2dlclxuLy8gKCRkcnMtdHJpZ2dlci1oZWlnaHQpIGEgcm93IGJlbG93LiA2cHggbWF0Y2hlcyB0aGUgcmFkaXVzIHRoZSByZXN0IG9mIHRoZVxuLy8gcmVkZXNpZ24gdXNlcyBmb3IgYnV0dG9ucy5cbiRwcnQtYWN0aW9uLXNpemU6ICAgNDBweDtcbiRwcnQtYWN0aW9uLXJhZGl1czogNnB4O1xuLy8gVGhlIG1hcmt1cCBkZWNsYXJlcyB0aGVzZSBTVkdzIGF0IDE2cHg7IHRoaXMgd2lucyBhbmQgc2NhbGVzIHRoZW0sIHdoaWNoIGlzXG4vLyBjbGVhbiBiZWNhdXNlIGJvdGggY2FycnkgYSAwIDAgMTYgMTYgdmlld0JveC4gMjBweCBpbiBhIDQwcHggYm94IGxlYXZlcyAxMHB4XG4vLyBvZiBwYWRkaW5nIGEgc2lkZS5cbiRwcnQtaWNvbi1zaXplOiAgICAgMjBweDtcblxuLy8gUGFnZSBzaGVsbC4gLnZpZXctbGF5b3V0IGNlbnRyZXMgaXRzIGNvbnRhaW5lciAoanVzdGlmeS1jb250ZW50OiBjZW50ZXIgaW5cbi8vIF9iYXNlLnNjc3MpLCB3aGljaCBmbG9hdGVkIHRoZSB3aG9sZSByZXBvcnQgaW4gdGhlIG1pZGRsZSBvZiB0aGUgdmlld3BvcnQuXG4vLyBUaGlzIHBpbnMgaXQgbGVmdCB3aXRoIGEgMjBweCBndXR0ZXIgaW5zdGVhZC5cbi8vXG4vLyBUaGUgMTAyNHB4IGxvY2sgb24gLnZpZXctY29udGFpbmVyIGlzIGRlbGliZXJhdGVseSBsZWZ0IGFsb25lOiBhIGRlc2NlbmRhbnRcbi8vIGlzIGhhcmQtcGlubmVkIHRvIHRoYXQgc2FtZSBudW1iZXIgKF9wcm9ncmVzc19yZXBvcnQuc2NzcywgbG9jay13aWR0aCBvbiB0aGVcbi8vIGxlZ2FjeSBkZXRhaWxzIHRpdGxlKSwgc28gbGV0dGluZyB0aGUgY29udGFpbmVyIGdvIGZsdWlkIHdvdWxkIHN0cmFuZCBpdFxuLy8gbWlkLXBhZ2UuXG4vL1xuLy8gUGFkZGluZyBsaXZlcyBvbiB0aGUgbGF5b3V0LCBub3Qgb24gLnByaW50LW5vZGUsIHNvIGl0IHN0YXlzIG91dCBvZiB0aGVcbi8vIGpzUERGIGNhcHR1cmUuXG4ucHJvZ3Jlc3MtcmVwb3J0LWxheW91dCB7XG4gIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuICAvLyBUb3AgaXMgZGVyaXZlZCBzbyB0aGUgdGFiIHJ1bGUgbGFuZHMgb24gdGhlIHNpZGViYXIgaGVhZGVyJ3MgcnVsZS4gVGhlXG4gIC8vIHJpZ2h0IGd1dHRlciBtYXRjaGVzIHRoZSBsZWZ0IG5vdyB0aGF0IHRoZSBjb2x1bW4gcnVucyB0byB0aGUgdmlld3BvcnRcbiAgLy8gZWRnZSAtIHdpdGhvdXQgaXQgdGhlIHByaW50L2V4cG9ydCBidXR0b25zIHdvdWxkIHNpdCBmbHVzaCBhZ2FpbnN0IHRoZVxuICAvLyB3aW5kb3cuXG4gIHBhZGRpbmc6ICRwcnQtZ2FwLXRvcCAkcHJ0LWdhcC1sZWZ0IDAgJHBydC1nYXAtbGVmdDtcbiAgLy8gUmVwbGFjZXMgdGhlIC53aGl0ZWJnIHRoYXQgdXNlZCB0byBzaXQgb24gdGhpcyBlbGVtZW50LiBUaGUgZGF0ZSBhbmQgdGVzdFxuICAvLyBzZWxlY3RvcnMgYWxyZWFkeSBwYWludCB0aGVtc2VsdmVzICNmZmYsIHNvIHRoZXkgcmVhZCBhcyByYWlzZWQgYWdhaW5zdFxuICAvLyB0aGlzIGdyb3VuZCByYXRoZXIgdGhhbiBkaXNzb2x2aW5nIGludG8gaXQuXG4gIGJhY2tncm91bmQtY29sb3I6ICRwYWdlLWJnO1xuXG4gIC8vIFRoZSBjb2x1bW4gZmlsbHMgd2hhdGV2ZXIgdGhlIHZpZXdwb3J0IGdpdmVzIGl0LiBBbGwgdGhyZWUgb2YgbG9jay13aWR0aCdzXG4gIC8vIHByb3BlcnRpZXMgaGF2ZSB0byBiZSB1bmRvbmUgLSBsZWF2aW5nIG1pbi13aWR0aCBhdCAxMDI0IGFsb25lIHdvdWxkIGtlZXBcbiAgLy8gdGhlIGhvcml6b250YWwgc2Nyb2xsYmFyIG9uIG5hcnJvdyB3aW5kb3dzLCBhbmQgdGhlIGZsZXgtZ3JvdyBpcyB3aGF0XG4gIC8vIGFjdHVhbGx5IG1ha2VzIGl0IGZpbGwsIHNpbmNlIC52aWV3LWxheW91dCBpcyBhIGZsZXggcm93IGp1c3RpZmllZCB0b1xuICAvLyBmbGV4LXN0YXJ0IGFuZCB0aGUgY29sdW1uIHdvdWxkIG90aGVyd2lzZSBzaHJpbmsgdG8gaXRzIGNvbnRlbnQuXG4gID4gLnZpZXctY29udGFpbmVyIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG5cbiAgLy8gVGhlIGRldGFpbCBncmlkcycgdGl0bGVzIHVzZWQgdG8gbmVlZCBhIGNvcnJlY3Rpb24gaGVyZTogYm90aCBjYXJkcyB3ZXJlXG4gIC8vIGhhcmQtcGlubmVkIHRvIDEwMjQgYW5kIHdvdWxkIGhhdmUgc2F0IG5hcnJvd2VyIHRoYW4gZXZlcnl0aGluZyBhcm91bmQgdGhlbVxuICAvLyBvbmNlIHRoZSBjb2x1bW4gd2VudCBmbHVpZC4gVGhleSBhcmUgLnByb2dyZXNzLWRldGFpbHNfX3RpdGxlIGFuZFxuICAvLyAucHJvZ3JhbXMtZGV0YWlsc19fdGl0bGUgbm93IGFuZCBwaW4gbm8gd2lkdGggb2YgdGhlaXIgb3duLiBUaGUgbGVnYWN5XG4gIC8vIC5yZXBvcnQtZGV0YWlscy1jb250YWluZXIgLnRpdGxlIGlzIHN0aWxsIDEwMjQtbG9ja2VkIGZvciB0ZWFtcmVwb3J0Lmh0bWwsXG4gIC8vIHdoaWNoIGRvZXMgbm90IHJlbmRlciBpbnNpZGUgdGhpcyBsYXlvdXQuXG59XG5cbi5wcm9ncmVzcy1yZXBvcnQtdGFicyB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAvLyBUaGUgdGFicyBvcGVuIHRoZSBjb250ZW50IGFyZWEsIHNvIHRoZXJlIGlzIG5vIGhlYWRlciBhYm92ZSB0aGVtIHRvIHNwYWNlXG4gIC8vIG9mZjsgdGhlIGdhcCBiZWxvdyBpcyB0aGUgaGVhZCBibG9jaydzIG93biB0b3AgbWFyZ2luLlxuICBnYXA6IDI0cHg7XG4gIG1hcmdpbjogMDtcblxuICAmX190YWIge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIC8vIFRoZSB1bmRlcmxpbmUgSVMgdGhpcyBib3JkZXIuIFdpdGhvdXQgdW5zdHlsZS1idXR0b24gYWJvdmUsIHRoZSBnbG9iYWxcbiAgICAvLyBidXR0b24gcnVsZSB3b3VsZCBmbG9vciB0aGUgd2lkdGggYXQgMTEwcHggKG92ZXJzaG9vdGluZyB0aGUgbGFiZWwpIGFuZFxuICAgIC8vIGxvY2sgdGhlIGhlaWdodCBhdCA1MHB4IChkcm9wcGluZyB0aGUgYm9yZGVyIHdlbGwgYmVsb3cgdGhlIHRleHQpLlxuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAvLyBFdmVyeSB0YWIgaXMgNjAwLCBhY3RpdmUgb3Igbm90IC0gY29sb3VyIGFuZCB0aGUgdW5kZXJsaW5lIGNhcnJ5IHRoZVxuICAgIC8vIHN0YXRlIG9uIHRoZWlyIG93bi4gSXQgYWxzbyBzdG9wcyB0aGUgbGFiZWwgd2lkdGggc2hpZnRpbmcgYXMgdGhlXG4gICAgLy8gc2VsZWN0aW9uIG1vdmVzLCB3aGljaCBhIDUwMC82MDAgc3dhcCB3b3VsZCBjYXVzZS5cbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAkcHJ0LXRhYi1saW5lLWhlaWdodDtcbiAgICAvLyBQdWxscyB0aGUgdGFiJ3Mgb3duIGJvcmRlciBvbiB0b3Agb2YgdGhlIGNvbnRhaW5lcidzIDFweCBydWxlIHNvIHRoZSB0d29cbiAgICAvLyByZWFkIGFzIG9uZSBsaW5lIHJhdGhlciB0aGFuIHN0YWNraW5nIHRvIDNweCB1bmRlciB0aGUgYWN0aXZlIHRhYi5cbiAgICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICAgIC8vIDRweCBlYWNoIHNpZGUgaXMgdGhlIGJyZWF0aGluZyByb29tIHRoZSBkZXNpZ24gc2hvd3MgYXJvdW5kIHRoZSBsYWJlbC5cbiAgICAvLyBWZXJ0aWNhbCBpcyB0aGUgdG9wL2JvdHRvbSBzcGxpdCBhYm92ZSAtIHRoZSB0d28gYWx3YXlzIHN1bSB0byA0cHgsIHNvXG4gICAgLy8gdGhlIHVuZGVybGluZSBzdGF5cyBvbiB0aGUgcm93IHRoZSBsYXlvdXQncyBwYWRkaW5nLXRvcCBwdXRzIGl0IG9uLlxuICAgIHBhZGRpbmc6ICRwcnQtdGFiLXBhZC10b3AgNHB4ICRwcnQtdGFiLXBhZC1ib3R0b207XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkcHVycGxlLTYwMDtcbiAgICB9XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgJi0tYWN0aXZlIHtcbiAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgICAgY29sb3I6ICRwcnQtYWN0aXZlLWluaztcbiAgICB9XG4gIH1cbn1cblxuLnByb2dyZXNzLXJlcG9ydC1oZWFkIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgLy8gVGl0bGUgbGVmdCwgYWN0aW9ucyBoYXJkIHJpZ2h0IG9uIG9uZSByb3cuXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAxNnB4O1xuICBtYXJnaW46IDI4cHggMCAwO1xuXG4gICZfX3RpdGxlIHtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIC8vIGgxIG9uIHRoaXMgcGFnZSB1c2VkIHRvIGluaGVyaXQgLmJhc2ljLXBhZ2UtaGVhZGVyIC50aXRsZTEsIHdoaWNoIGFkZHMgYVxuICAgIC8vIG1pbi1oZWlnaHQgYW5kIG1hcmdpbnMuIFRoYXQgd3JhcHBlciBpcyBnb25lLCBzbyBzZXQgYm90aCBvdXRyaWdodC5cbiAgICBtYXJnaW46IDA7XG4gICAgbWluLWhlaWdodDogMDtcbiAgfVxuXG4gICZfX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAvLyBTcXVhcmUgb3V0bGluZWQgaWNvbi1vbmx5IGJ1dHRvbi4gV2l0aCBubyBsYWJlbCB0aGVyZSBpcyBub3RoaW5nIHRvIGFic29yYlxuICAvLyB0aGUgZ2xvYmFsIGJ1dHRvbiBtaW4td2lkdGgsIHNvIHVuc3R5bGUtYnV0dG9uIGlzIHdoYXQga2VlcHMgdGhlIGJveCBzcXVhcmUuXG4gICZfX2FjdGlvbiB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0zMDA7XG4gICAgYm9yZGVyLXJhZGl1czogJHBydC1hY3Rpb24tcmFkaXVzO1xuICAgIC8vIE5vIGdsb2JhbCBib3JkZXItYm94IHJlc2V0IGluIHRoaXMgYnVpbGQgLSB3aXRob3V0IHRoaXMgdGhlIDFweCBib3JkZXJcbiAgICAvLyBwdXNoZXMgdGhlIGJveCB0byAzOHB4IGFuZCB0aGUgdHdvIGJ1dHRvbnMgc3RvcCBtYXRjaGluZyB0aGUgZGVzaWduLlxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGhlaWdodDogJHBydC1hY3Rpb24tc2l6ZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7XG4gICAgd2lkdGg6ICRwcnQtYWN0aW9uLXNpemU7XG5cbiAgICAmOmhvdmVyOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS01MDA7XG4gICAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4ICRwdXJwbGUtMjAwO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBTaG93bi1idXQtaW5lcnQgd2hpbGUgYSByZXBvcnQgaGFzIG5vdGhpbmcgdG8gZXhwb3J0LCBzbyB0aGUgaGVhZGVyIGRvZXNcbiAgICAvLyBub3QgcmVmbG93IHRoZSBtb21lbnQgZGF0YSBsYW5kcy5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmxhY2stMjAwO1xuICAgICAgY29sb3I6ICRibGFjay00MDA7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgfVxuXG4gICAgLy8gSWNvbnMgYXJlIGlubGluZSBTVkcgb24gY3VycmVudENvbG9yLCBzbyB0aGUgaG92ZXIvZm9jdXMgY29sb3JzIGFib3ZlXG4gICAgLy8gY2FycnkgaW50byB0aGUgZ2x5cGggd2l0aCBubyBleHRyYSBydWxlcy5cbiAgICBzdmcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6ICRwcnQtaWNvbi1zaXplO1xuICAgICAgd2lkdGg6ICRwcnQtaWNvbi1zaXplO1xuICAgIH1cbiAgfVxufVxuXG4vLyBFbXB0eSBzdGF0ZSBmb3IgdGhlIFByb2dyZXNzIFN1bW1hcnkgdGFiLiBEZWxpYmVyYXRlbHkgYSBuZXcgYmxvY2sgcmF0aGVyXG4vLyB0aGFuIGEgcmVzdHlsZSBvZiAucHJvZ3Jlc3MtcmVwb3J0LW5vZGF0YSwgd2hpY2ggdGVhbXJlcG9ydC5odG1sIGFuZFxuLy8gdGVzdF9hcmNoaXZlc19ib2R5Lmh0bWwgYWxzbyB1c2UuXG4vL1xuLy8gVHlwZSBpcyBhIHZlcmJhdGltIG1hdGNoIGZvciAucHJvZ3JhbXMtcGFnZV9fZW1wdHkgKF9wcm9ncmFtX2NhcmRzLnNjc3M6XG4vLyAxODktMjI2KSAtIHRoZSBkZXNpZ25lcidzIHNwZWMgZm9yIHRoZSB0d28gaXMgaWRlbnRpY2FsLCBzbyB0aGUgdHdvIGJsb2Nrc1xuLy8gc2hvdWxkIHN0YXkgaW4gc3RlcC5cbi5wcm9ncmVzcy1yZXBvcnQtZW1wdHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAvLyBDZW50cmVzIHRoZSBzdGFjayBpbnNpZGUgdGhlIHRhbGwgYm94IHRoZSBtaW4taGVpZ2h0IG9wZW5zIHVwIGJlbG93LlxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDk2cHggMjRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIC8vIERlbGliZXJhdGVseSBOT1QgZmxleDogMS4gVGhlIGluLWZsb3cgY29sdW1uIGlzIDEwMHZoIHRhbGwgYnV0IHN0YXJ0c1xuICAvLyAxMDRweCBkb3duIHRoZSBkb2N1bWVudCwgYmVjYXVzZSAubWFpbi12aWV3IHJlc2VydmVzIHRoYXQgc3BhY2UgZm9yIHRoZVxuICAvLyBmaXhlZCBoZWFkZXIgYW5kIHNlbGVjdGlvbiBiYXIuIEEgZ3Jvd24gYmxvY2sgd291bGQgY2VudHJlIGl0c2VsZiAxMDRweFxuICAvLyBiZWxvdyB0aGUgdHJ1ZSB2aWV3cG9ydCBjZW50cmUgYW5kIGhhbmcgaXRzIGxvd2VyIGhhbGYgdW5kZXIgdGhlIGZvbGQuXG4gIG1pbi1oZWlnaHQ6IGNhbGMoMTAwdmggLSAjeyRwcnQtZW1wdHktY2hyb21lfSk7XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gICZfX2Rlc2NyaXB0aW9uIHtcbiAgICBtYXJnaW46IDA7XG4gICAgLy8gTm8gbWF4LXdpZHRoLiAucHJvZ3JhbXMtcGFnZV9fZW1wdHkgY2FwcyBpdHMgY29weSBhdCA0MjBweCB0byBiYWxhbmNlIGl0XG4gICAgLy8gb3ZlciB0d28gbGluZXMsIGJ1dCBib3RoIHNlbnRlbmNlcyBoZXJlIGFyZSBtZWFudCB0byBzaXQgb24gb25lIHJvdywgYW5kXG4gICAgLy8gYXQgfjcwMHB4IHRoZXkgY2xlYXIgdGhlIDExMDBweCB0aGUgY29udGVudCBjb2x1bW4gbGVhdmVzIGVhc2lseS4gVGhleVxuICAgIC8vIHN0aWxsIHdyYXAgcmF0aGVyIHRoYW4gb3ZlcmZsb3cgaWYgdGhlIHZpZXdwb3J0IGlzIG5hcnJvdyBlbm91Z2ggdG8gZm9yY2VcbiAgICAvLyBpdCwgd2hpY2ggaXMgd2h5IHRoaXMgaXMgYW4gYWJzZW50IGNhcCByYXRoZXIgdGhhbiB3aGl0ZS1zcGFjZTogbm93cmFwLlxuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLy8gT3V0bGluZWQgcHVycGxlIENUQSwgcmVuZGVyZWQgb25seSB1bmRlciB0aGUgQm9keSBNQVAgZW1wdHkgc3RhdGUuIENsb25lZFxuICAvLyBmcm9tIC50ZXN0LWxhbmRpbmdfX2J0biAoZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzczoyNjExKSAtIHRoZSB0d29cbiAgLy8gYXJlIHRoZSBzYW1lIGNvbnRyb2wgYXQgZGlmZmVyZW50IHNpemVzLCBzbyBrZWVwIHRoZW0gaW4gc3RlcC5cbiAgLy9cbiAgLy8gVGhyZWUgZ2xvYmFsLWJ1dHRvbiBydWxlcyBoYXZlIHRvIGJlIGZvdWdodCBoZXJlLCBhbGwgb2YgdGhlbSB0aGUgcmVhc29uXG4gIC8vIHRoYXQgcnVsZSBpcyBhcyBsb25nIGFzIGl0IGlzOlxuICAvLyAgIC0gYGJ1dHRvbmAgZ2V0cyBsb2NrLWhlaWdodCg1MHB4KSwgaS5lLiBtaW4taGVpZ2h0IEFORCBtYXgtaGVpZ2h0LCBzbyBhXG4gIC8vICAgICA0MHB4IGJveCBoYXMgdG8gcmVzdGF0ZSBhbGwgdGhyZWUgaGVpZ2h0IHByb3BlcnRpZXMuXG4gIC8vICAgLSBfYmFzZS5zY3NzIHB1dHMgYSBIZWx2ZXRpY2Egc3RhY2sgb24gZXZlcnkgYnV0dG9uLCBzbyB0aGUgZmFtaWx5IGhhc1xuICAvLyAgICAgdG8gYmUgcmVzdGF0ZWQgb3IgdGhlIGxhYmVsIHNpbGVudGx5IGZhbGxzIG9mZiBOdWRpc3RhLlxuICAvLyAgIC0gYnV0dG9uIHRleHQgaXMgdXBwZXJjYXNlZCBnbG9iYWxseS5cbiAgJl9fY3RhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGdhcDogOHB4O1xuICAgIC8vIE5vIGdsb2JhbCBib3JkZXItYm94IHJlc2V0IGluIHRoaXMgYnVpbGQsIHNvIHRoZSAxcHggYm9yZGVyIGFuZCB0aGVcbiAgICAvLyAxMi8xNiBwYWRkaW5nIGhhdmUgdG8gYmUgZm9sZGVkIGludG8gdGhlIDE4MHg0MCBib3ggYnkgaGFuZC5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxODBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgbWluLWhlaWdodDogNDBweDtcbiAgICBtYXgtaGVpZ2h0OiA0MHB4O1xuICAgIC8vIFRoZSBwYXJlbnQncyBmbGV4IGdhcCBpcyA4cHgsIHdoaWNoIHNpdHMgdGhlIGJ1dHRvbiB0aWdodGVyIHVuZGVyIHRoZVxuICAgIC8vIGRlc2NyaXB0aW9uIHRoYW4gdGhlIGRlc2lnbiBzaG93cy5cbiAgICBtYXJnaW46IDI0cHggMCAwO1xuICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRwdXJwbGUtNTAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhLXdlYicsICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICAvLyBUaGUgc3BlYyBzYXlzIHRleHQtYWxpZ246IHJpZ2h0LCB3aGljaCBpcyBhIEZpZ21hIGFydGlmYWN0IC0gdGhlIGxhYmVsXG4gICAgLy8gaXMgY2VudHJlZCBpbiB0aGUgbW9ja3VwLCBhbmQganVzdGlmeS1jb250ZW50IGNlbnRyZXMgaXQgcmVnYXJkbGVzcy5cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICY6aG92ZXI6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBuZy1kaXNhYmxlZCB3cml0ZXMgdGhlIGRpc2FibGVkIGF0dHJpYnV0ZS4gTWF0Y2hlc1xuICAgIC8vIC50ZXN0LWxhbmRpbmdfX2J0bi0tZGlzYWJsZWQgc28gYW4gdW5hdmFpbGFibGUgdGVzdCByZWFkcyB0aGUgc2FtZSBoZXJlXG4gICAgLy8gYXMgaXQgZG9lcyBvbiB0aGUgVGVzdGluZyBwYWdlLlxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgIGJhY2tncm91bmQ6ICNkOWRiZGM7XG4gICAgICBib3JkZXItY29sb3I6ICNkOWRiZGM7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG4gIH1cbn1cblxuLnByb2dyZXNzLXJlcG9ydC1hcmNoaXZlcyB7XG4gIC8vIFRoZSBlbWJlZGRlZCBwYW5lbCByZXVzZXMgLnRlc3QtYXJjaGl2ZXMtb3B0aW9ucyAvIC5hcmNoaXZlLWNvbnRhaW5lciBmcm9tXG4gIC8vIF90ZXN0X2FyY2hpdmVzLnNjc3MgdmVyYmF0aW0uIE9ubHkgdGhlIGxlYWRpbmcgZ2FwIG5lZWRzIHJlc3RhdGluZywgc2luY2VcbiAgLy8gaGVyZSBpdCBmb2xsb3dzIHRoZSBoZWFkIGJsb2NrIGluc3RlYWQgb2YgYSAuYmFzaWMtcGFnZS1oZWFkZXIuXG4gIG1hcmdpbi10b3A6IDhweDtcbn1cblxuQGluY2x1ZGUgcmVzcG9uZCh0YWJsZXQpIHtcbiAgLnByb2dyZXNzLXJlcG9ydC1oZWFkIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbiAgfVxuXG4gIC5wcm9ncmVzcy1yZXBvcnQtdGFicyB7XG4gICAgZ2FwOiAxNnB4O1xuICAgIC8vIFRocmVlIGxhYmVscyBkbyBub3QgZml0IGEgbmFycm93IHZpZXdwb3J0OyBzY3JvbGxpbmcgdGhlIHJhaWwgYmVhdHNcbiAgICAvLyB3cmFwcGluZyBpdCwgd2hpY2ggd291bGQgYnJlYWsgdGhlIHNpbmdsZSB1bmRlcmxpbmUuXG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgfVxuXG4gIC5wcm9ncmVzcy1yZXBvcnQtZW1wdHkge1xuICAgIC8vIFRoZSBoZWFkIHN0YWNrcyB0byBhIGNvbHVtbiBoZXJlLCBzbyAkcHJ0LWVtcHR5LWNocm9tZSB1bmRlci1jb3VudHMgYnlcbiAgICAvLyByb3VnaGx5IGEgcm93LiBBIGZsYXQgZmxvb3IgYmVhdHMgcmUtZGVyaXZpbmcgaXQgZm9yIG9uZSBicmVha3BvaW50LlxuICAgIG1pbi1oZWlnaHQ6ICRwcnQtZW1wdHktbWluO1xuICB9XG59XG4iLCIvKiBUaGUgXCJEZXRhaWxlZCBUZXN0IFJlc3VsdHNcIiBjYXJkIGF0IHRoZSBib3R0b20gb2YgdGhlIHByb2dyZXNzIHJlcG9ydFxuICAgKC9yZXBvcnRzLzphdGhsZXRlSWQsIHZpZXdzL3Byb2dyZXNzcmVwb3J0Lmh0bWwpLlxuXG4gICBEZWxpYmVyYXRlbHkgTk9UIGEgcmVzdHlsZSBvZiAucmVwb3J0LWRldGFpbHMtY29udGFpbmVyIC8gLnJlcG9ydC1kZXRhaWxzIGluXG4gICBfcHJvZ3Jlc3NfcmVwb3J0LnNjc3M6IHRlYW1yZXBvcnQuaHRtbDozOTIgcmVuZGVycyB0aGF0IHNhbWUgbWFya3VwIGFnYWluc3RcbiAgIHRob3NlIHNhbWUgcnVsZXMsIHNvIGVkaXRpbmcgdGhlbSBpbiBwbGFjZSB3b3VsZCBkcmFnIHRoZSB0ZWFtIHJlcG9ydCBhbG9uZ1xuICAgd2l0aCBpdC4gVGhpcyBibG9jayBpcyBhcHBsaWVkIHRvIHRoZSBwcm9ncmVzcyB2aWV3IG9ubHk7IHRoZSB0ZWFtIHJlcG9ydFxuICAga2VlcHMgdGhlIGxlZ2FjeSBkYXJrL3plYnJhIGdyaWQuXG5cbiAgIFRoZSBncmlkIGlzIHRocmVlIHBhcmFsbGVsIGZsZXggY29sdW1ucyAobmFtZXMgLyBpbmZvIC8gc2NvcmVzKSwgbm90IGFcbiAgIDx0YWJsZT4sIGFuZCBzdGF5cyB0aGF0IHdheTogdGhlIG5hbWVzIGNvbHVtbiBob2xkcyBzdGlsbCB3aGlsZVxuICAgLnByb2dyZXNzLWRldGFpbHNfX3Njb3JlcyBzY3JvbGxzIGhvcml6b250YWxseSwgYW5kIHRoZSBuZy1yZXBlYXRzIGFyZVxuICAgdHJhbnNwb3NlZCAodm0uZGV0YWlsTmFtZXMgZHJpdmVzIHJvd3MsIHZtLmRldGFpbERhdGVzIGRyaXZlcyBjb2x1bW5zLCBlYWNoXG4gICBjb2x1bW4gY2FycnlpbmcgaXRzIG93biBlbnRyaWVzIGFycmF5KS4gVHVybmluZyBpdCBpbnRvIGEgdGFibGUgd291bGQgbmVlZFxuICAgcm93LW1ham9yIGRhdGEsIHdoaWNoIGlzIGEgY29udHJvbGxlciBjaGFuZ2UsIG5vdCBhIHJlc3R5bGUuXG5cbiAgIEJlY2F1c2UgdGhlIGNvbHVtbnMgYXJlIGluZGVwZW5kZW50IGZsZXggc3RhY2tzLCByb3dzIG9ubHkgbGluZSB1cCBiZWNhdXNlXG4gICBldmVyeSByb3cgaW4gZXZlcnkgY29sdW1uIGFncmVlcyBvbiAkcHRkLXJvdy1oLiBSb3cgc2VwYXJhdG9ycyBhcmUgdGhlcmVmb3JlXG4gICBkcmF3biB3aXRoIGFuIGluc2V0IGJveC1zaGFkb3cgcmF0aGVyIHRoYW4gYSBib3JkZXIgLSBhIGJvcmRlciB3b3VsZCBhZGQgMXB4XG4gICBvZiBsYXlvdXQgaGVpZ2h0IHBlciByb3cgYW5kIHdhbGsgdGhlIGNvbHVtbnMgb3V0IG9mIHJlZ2lzdGVyIGRvd24gdGhlIHRhYmxlLlxuXG4gICBTY29yZSBjb2xvdXJzIGNvbWUgZnJvbSAucmVkLXRleHQgLyAueWVsbG93LXRleHQgLyAuZ3JlZW4tdGV4dFxuICAgKF9iYXNlLnNjc3M6MzE2LTMyMyksIGludGVycG9sYXRlZCBmcm9tIHRoZSBBUEkncyByaXNrQ29sb3IuIFRob3NlIGFyZSAwLDEsMFxuICAgc2VsZWN0b3JzLCBzbyBub3RoaW5nIGhlcmUgbWF5IHNldCBgY29sb3JgIG9uIGEgZGVzY2VuZGFudCBzcGFuIG9mIGEgY2VsbDogYW5cbiAgIDAsMSwxIHJ1bGUgd291bGQgc2lsZW50bHkgd2luIGFuZCBmbGF0dGVuIHRoZSBjb2xvdXIgY29kaW5nLlxuXG4gICBUcmFwcyB0aGlzIGJ1aWxkIGhhczogbm8gZ2xvYmFsIGJvcmRlci1ib3ggcmVzZXQgKHN0YXRlIGJveC1zaXppbmcgYnkgaGFuZClcbiAgIGFuZCBubyBhdXRvcHJlZml4ZXIuICovXG5cbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuJHB0ZC10aXRsZTogICAgIzFmMWYyODsgICAvLyBuYW1lIGNlbGxzXG4kcHRkLXRvdGFsLWJnOiAjZjdmN2Y4OyAgIC8vIFRvdGFsIHJvdyBmaWxsXG4kcHRkLWRhdGUtaDogICAjNzM1NUI1OyAgIC8vIGNvbHVtbiBkYXRlIGxhYmVsc1xuXG4vLyBUaGUgbGVnZW5kIGhhcyB0byBhZ3JlZSB3aXRoIHRoZSB2YWx1ZSBjb2xvdXJzIGV4YWN0bHksIG9yIGl0IHN0b3BzIGJlaW5nIGFcbi8vIGtleS4gVGhlc2UgYWxzbyBvdmVycmlkZSAucmVkLXRleHQgLyAueWVsbG93LXRleHQgLyAuZ3JlZW4tdGV4dCBiZWxvdyxcbi8vIHNjb3BlZCB0byB0aGlzIGNhcmQgb25seSwgc28gdGhlIHNjb3JlIGRpZ2l0cyBtYXRjaCB0aGUgZG90cy5cbiRwdGQtcG9vcjogICAgICNGMDQ0Mzg7XG4kcHRkLW1vZGVyYXRlOiAjRTVBNjMzO1xuJHB0ZC1nb29kOiAgICAgIzEyQjc2QTtcblxuXG4vLyBTaGFyZWQgYnkgYWxsIHRocmVlIGNvbHVtbnMuIENoYW5naW5nIGFueSBvZiB0aGVzZSBpbiBvbmUgY29sdW1uIG9ubHkgaXNcbi8vIHdoYXQgYnJlYWtzIHRoZSByb3cgYWxpZ25tZW50IC0gc2VlIHRoZSBmaWxlIGhlYWRlci5cbi8vXG4vLyBUaGUgaGVhZGVyIGlzIGRlbGliZXJhdGVseSBzaG9ydGVyIHRoYW4gdGhlIHJvd3MgaXQgbGFiZWxzLiBPbiBUMiByZXBvcnRzIGFcbi8vIHNlY29uZCBoZWFkZXIgcm93ICh0aGUgUiAvIEwgYWJicmV2aWF0aW9ucykgc3RhY2tzIHVuZGVyIHRoZSBmaXJzdDsgaXQgdGFrZXNcbi8vIHRoZSBzYW1lIDM0cHgsIGJlY2F1c2UgdGhlIGFsaWdubWVudCBjb250cmFjdCBpcyBwZXIgcm93LXNsb3QgYWNyb3NzIGNvbHVtbnNcbi8vIGFuZCB0aGUgbmFtZXMvaW5mbyBjb2x1bW5zIHBhZCB0aGF0IHNsb3Qgd2l0aCBhbiBlbXB0eSBoZWFkZXIgb2YgdGhlaXIgb3duLlxuJHB0ZC1oZWFkLWg6ICAgMzRweDtcbiRwdGQtcm93LWg6ICAgIDQ0cHg7XG4vLyBUaGUgbGVnZW5kIGlzIHRoZSB0YWJsZSdzIGxhc3Qgcm93IHJhdGhlciB0aGFuIGEgY2FwdGlvbiB1bmRlciBpdCwgc28gaXQgZ2V0c1xuLy8gaXRzIG93biBoZWlnaHQgLSBzaG9ydGVyIHRoYW4gYSBkYXRhIHJvdywgdGFsbGVyIHRoYW4gdGhlIGhlYWRlci5cbiRwdGQtbGVnZW5kLWg6IDM2cHg7XG5cbi8vIFRleHQgaW5zZXQgZm9yIHRoZSBuYW1lcyBjb2x1bW4sIHJlc3RhdGVkIG9uIGl0cyBoZWFkZXIgc28gdGhlIFwiTmFtZVwiIGxhYmVsXG4vLyBhbmQgdGhlIGxhYmVscyBiZW5lYXRoIGl0IHNoYXJlIGEgbGVmdCBlZGdlLlxuJHB0ZC1uYW1lLXBhZDogIDIwcHg7XG4kcHRkLW5hbWUtdzogICAgMjUwcHg7XG4kcHRkLWxhYmVsLXc6ICAgMTgwcHg7XG4kcHRkLXNjb3JlLXc6ICAgMjEwcHg7XG4kcHRkLWluZm8tdzogICAgMTEwcHg7XG4kcHRkLXVuaXQtdzogICAgOTBweDsgICAgIC8vIG5hcnJvd2VyIHRoYW4gJHB0ZC1pbmZvLXcgLSBqdXN0IGhvbGRzIGEgcGlsbFxuJHB0ZC1jZWxsLXBhZDogIDEycHg7XG4kcHRkLXNpZGUtdzogICAgNTVweDsgICAgIC8vIHRoZSBSIC8gTCBoYWxmLWNlbGxzIG9uIFQyIHJlcG9ydHNcblxuLnByb2dyZXNzLWRldGFpbHMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLy8gVGhlIGxlZ2FjeSBjb250YWluZXIgd2FzIGZsZXgoMSAwIGF1dG8pIGFuZCBncmV3IGludG8gd2hhdGV2ZXIgaGVpZ2h0IHRoZVxuICAvLyBwYWdlIGNvbHVtbiBoYWQgbGVmdCBvdmVyLiBUaGF0IHdhcyBpbnZpc2libGUgb24gYSB0cmFuc3BhcmVudCBibG9jazsgb24gYVxuICAvLyBib3JkZXJlZCBjYXJkIGl0IHdvdWxkIGRyYXcgYW4gZW1wdHkgd2hpdGUgdGFpbCB1bmRlciB0aGUgbGFzdCByb3cuXG4gIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAvLyAudmlldy1jb250YWluZXIuY29sdW1uJ3MgZGVmYXVsdCBhbGlnbi1pdGVtczpzdHJldGNoIHdvdWxkIG90aGVyd2lzZVxuICAvLyBmb3JjZSB0aGlzIGNhcmQgdG8gdGhlIGZ1bGwgMTAyNHB4IGNvbHVtbiB3aWR0aCByZWdhcmRsZXNzIG9mIGhvd1xuICAvLyBuYXJyb3cgJl9fZ3JpZCBlbmRzIHVwIChzZWUgJl9fZ3JpZCdzIG93biBzaHJpbmstd3JhcCBhYm92ZSk7IHRoaXMgbGV0c1xuICAvLyB0aGUgY2FyZCBodWcgdGhlIHRhYmxlJ3Mgd2lkdGggaW5zdGVhZCwgY2FwcGVkIGJhY2sgYXQgdGhlIGNvbHVtbiB3aWR0aFxuICAvLyB2aWEgbWF4LXdpZHRoIHNvIGEgd2lkZSB0YWJsZSBzdGlsbCBqdXN0IGZpbGxzIGl0IGFzIGJlZm9yZS5cbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAvLyBDbGVhcnMgdGhlIGNoYXJ0L3N1bW1hcnkgYmxvY2sgYWJvdmUgYW5kIHRoZSBwcm9ncmFtcyBibG9jayBiZWxvdywgd2hpY2hcbiAgLy8gaXMgd2hhdCB0aGUgbGVnYWN5IGNvbnRhaW5lcidzIG1hcmdpbnMgZGlkLlxuICBtYXJnaW46IDMwcHggMCA1MHB4O1xuICBwYWRkaW5nOiAyMHB4O1xuXG4gIC8vIENhcmQtc2NvcGVkIHJlc3RhdGVtZW50IG9mIC5yZWQtdGV4dCAvIC55ZWxsb3ctdGV4dCAvIC5ncmVlbi10ZXh0XG4gIC8vIChfYmFzZS5zY3NzOjMxNi0zMjMpIGF0IDAsMiwwIHNwZWNpZmljaXR5LCBzbyB0aGUgc2NvcmUgZGlnaXRzIHBpY2sgdXBcbiAgLy8gdGhpcyBjYXJkJ3MgcGFsZXR0ZSB3aXRob3V0IHRvdWNoaW5nIHRob3NlIGNsYXNzZXMgYW55d2hlcmUgZWxzZSBpbiB0aGVcbiAgLy8gYXBwLiBLZXB0IGluIHN5bmMgd2l0aCAkcHRkLXBvb3IvJHB0ZC1tb2RlcmF0ZS8kcHRkLWdvb2QgYWJvdmUuXG4gIC5yZWQtdGV4dCAgICB7IGNvbG9yOiAkcHRkLXBvb3I7IH1cbiAgLnllbGxvdy10ZXh0IHsgY29sb3I6ICRwdGQtbW9kZXJhdGU7IH1cbiAgLmdyZWVuLXRleHQgIHsgY29sb3I6ICRwdGQtZ29vZDsgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAvLyBUaGUgbGVnYWN5IC50aXRsZSBjYXJyaWVkIGEgbG9jay13aWR0aCgxMDI0cHgpIHRoYXQgaGFkIHRvIGJlIHVuZG9uZSBmcm9tXG4gICAgLy8gX3Byb2dyZXNzX3JlcG9ydF90YWJzLnNjc3Mgbm93IHRoZSBwYWdlIGNvbHVtbiBpcyBmbHVpZC4gTm90aGluZyBoZXJlXG4gICAgLy8gcGlucyBhIHdpZHRoLCBzbyB0aGF0IHBhdGNoIGlzIGdvbmUuXG4gICAgbWFyZ2luOiAwIDAgMjBweDtcbiAgfVxuXG4gICZfX3R5cGUtZmlsdGVyIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBnYXA6IDhweDtcbiAgfVxuXG4gICZfX3R5cGUtbGFiZWwge1xuICAgIGNvbG9yOiAjNEY0RjRGO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIH1cblxuICAvLyBTY29wZWQgdG8gdGhpcyBjYXJkJ3MgVHlwZSBkcm9wZG93biBvbmx5IC0gdGhlIHNoYXJlZCAuc2VsZWN0LXBpbGwgcnVsZXNcbiAgLy8gaW4gX3NlbGVjdF9waWxsLnNjc3MgKDQgY2xhc3NlcyBkZWVwKSBhbHNvIHN0eWxlIHRoZSB0ZXN0LXR5cGUgZHJvcGRvd25cbiAgLy8gaW4gdGhlIHBhZ2UncyBvcHRpb25zIGJhciwgd2hpY2ggc3RheXMgYXQgaXRzIG5vcm1hbCA0MHB4IGhlaWdodC5cbiAgJl9fdHlwZS1maWx0ZXIgLnNlbGVjdC1waWxsIC5kcm9wZG93bi13cmFwcGVyIC50cmlnZ2VyLnBpbGwge1xuICAgIGhlaWdodDogMzJweDtcbiAgfVxuXG4gIC8vIFRoZSBoYWlybGluZSBib3guIFR3byBzdGFja2VkIGJhbmRzOiB0aGUgcGFyYWxsZWwgY29sdW1ucywgdGhlbiB0aGUgbGVnZW5kXG4gIC8vIGFzIHRoZSB0YWJsZSdzIGZpbmFsIGZ1bGwtd2lkdGggcm93LiBJdCBoYXMgdG8gYmUgYSBjb2x1bW4gd3JhcHBlciByYXRoZXJcbiAgLy8gdGhhbiBhIGZvdXJ0aCBzaWJsaW5nIGNvbHVtbiwgYmVjYXVzZSB0aGUgbGVnZW5kIHNwYW5zIHRoZSB3aG9sZSB0YWJsZSBhbmRcbiAgLy8gdGhlIHRocmVlIGNvbHVtbnMgYWJvdmUgaXQgZG8gbm90IHNoYXJlIGEgcm93IGdyaWQgaXQgY291bGQgam9pbi5cbiAgJl9fZ3JpZCB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICAvLyBCbG9jay1sZXZlbCBmbGV4IHdvdWxkIGRlZmF1bHQgdG8gd2lkdGg6MTAwJSBvZiB0aGUgY2FyZCByZWdhcmRsZXNzIG9mXG4gICAgLy8gaG93IGZldyBjb2x1bW5zL2RhdGVzIHRoZXJlIGFyZSwgbGVhdmluZyB0aGUgYm9yZGVyIHRyYWlsaW5nIG9mZiBpbnRvXG4gICAgLy8gZW1wdHkgc3BhY2U7IGlubGluZS1mbGV4IHNocmluay13cmFwcyBpdCB0byBpdHMgY29udGVudCBpbnN0ZWFkLCBhbmRcbiAgICAvLyBtYXgtd2lkdGggY2FwcyBpdCBiYWNrIGF0IHRoZSBjYXJkJ3Mgd2lkdGggc28gYSB3aWRlIGRhdGUgcmFuZ2Ugc3RpbGxcbiAgICAvLyBzY3JvbGxzIGluc2lkZSAmX19zY29yZXMgcmF0aGVyIHRoYW4gb3ZlcmZsb3dpbmcgdGhlIGNhcmQuXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLy8gVGhlIHBhcmFsbGVsLWNvbHVtbnMgYmFuZC5cbiAgLy9cbiAgLy8gb3ZlcmZsb3c6aGlkZGVuIHN3YWxsb3dzIHRoZSBib3R0b20gcm93J3Mgc2VwYXJhdG9yLCB3aGljaCBlYWNoIGNvbHVtblxuICAvLyBwdXNoZXMgMXB4IHBhc3QgdGhpcyBib3ggd2l0aCB0aGUgbmVnYXRpdmUgbWFyZ2luIGJlbG93IC0gb3RoZXJ3aXNlIGl0XG4gIC8vIHdvdWxkIHN0YWNrIHdpdGggdGhlIGxlZ2VuZCByb3cncyBvd24gdG9wIHJ1bGUgYW5kIHJlYWQgYXMgYSAycHggbGluZS5cbiAgLy9cbiAgLy8gZmxleC1zdGFydCwgbm90IHRoZSBkZWZhdWx0IHN0cmV0Y2g6IGEgc3RyZXRjaGVkIGNvbHVtbiB3b3VsZCBiZSBmb3JjZWQgdG9cbiAgLy8gdGhlIHRhbGxlc3QgY29sdW1uJ3MgaGVpZ2h0IGFuZCBpdHMgdHJhaWxpbmcgaGFpcmxpbmUgd291bGQgc3RvcCBsYW5kaW5nIG9uXG4gIC8vIHRoZSBjbGlwIGxpbmUuXG4gICZfX2NvbHVtbnMge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1zdGFydCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLy8gLS0tIGNvbHVtbiBzaGVsbHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvL1xuICAvLyBFYWNoIGNhcnJpZXMgbWFyZ2luLWJvdHRvbTogLTFweCBzbyBpdHMgZmluYWwgcm93J3Mgc2VwYXJhdG9yIGZhbGxzIG91dHNpZGVcbiAgLy8gdGhlIGNvbHVtbnMgYmFuZCBhbmQgZ2V0cyBjbGlwcGVkLiBBIGAmX19yb3c6bGFzdC1jaGlsZCB7IGJveC1zaGFkb3c6XG4gIC8vIG5vbmUgfWAgd291bGQgaGF2ZSBiZWVuIHRoZSBvYnZpb3VzIHdheSB0byBkcm9wIHRoZSBydWxlIHVuZGVyIHRoZSBsYXN0XG4gIC8vIHJvdywgYnV0IHRoZSBjb2x1bW5zIGRvIG5vdCBhbGwgZW5kIG9uIHRoZSBzYW1lIHJvdyAtIHRoZSBUTCBpbmZvIGNvbHVtbnNcbiAgLy8gYXJlIGhhcmQtY29kZWQgdG8gZm91ciAocHJvZ3Jlc3NyZXBvcnQuaHRtbDo0MDQtNDYyKSBhZ2FpbnN0IGFuIE4tcm93IG5hbWVzXG4gIC8vIGNvbHVtbiAtIHNvIGl0IHdvdWxkIGVyYXNlIGEgaGFpcmxpbmUgbWlkLXRhYmxlLiBUaGUgY2xpcCBpcyByb3ctY291bnRcbiAgLy8gYWdub3N0aWM7IHRoZSBsZWdlbmQncyBvd24gdG9wIHJ1bGUgdGhlbiBkcmF3cyBvbmUgY2xlYW4gZnVsbC13aWR0aCBkaXZpZGVyXG4gIC8vIHJlZ2FyZGxlc3Mgb2YgaG93IHJhZ2dlZCB0aGUgY29sdW1ucycgYm90dG9tIGVkZ2VzIGFyZS5cblxuICAmX19uYW1lcyB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICAgIG1pbi13aWR0aDogJHB0ZC1uYW1lLXc7XG4gIH1cblxuICAmX19pbmZvIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gIH1cblxuICAmX19zY29yZXMge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgICAvLyBMZWdhY3kgdXNlZCBgc2Nyb2xsYCwgd2hpY2ggcmVzZXJ2ZXMgYSBwZXJtYW5lbnQgZ3JleSBndXR0ZXIgb24gcGxhdGZvcm1zXG4gICAgLy8gd2l0aCBjbGFzc2ljIHNjcm9sbGJhcnMgZXZlbiB3aGVuIGV2ZXJ5IGRhdGUgZml0cy4gSW5zaWRlIGEgYm9yZGVyZWQgYm94XG4gICAgLy8gdGhhdCB0cmFjayByZWFkcyBhcyBwYXJ0IG9mIHRoZSB0YWJsZS5cbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG5cbiAgJl9fY29sdW1uIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICB9XG5cbiAgLy8gLS0tIHJvd3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8vIFQyIHJlcG9ydHMgc3RhY2sgYSBzZWNvbmQgaGVhZGVyIG9uIGV2ZXJ5IGNvbHVtbiwgc28gb25lIGhlaWdodCBrZWVwcyB0aGVcbiAgLy8gdGhyZWUgc3RhY2tzIGxldmVsIHdoZXRoZXIgdGhlcmUgYXJlIG9uZSBvciB0d28gaGVhZGVyIHJvd3MuXG4gICZfX2hlYWQge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgJHgtYm9yZGVyLWZhaW50O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbWluLWhlaWdodDogJHB0ZC1oZWFkLWg7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAmX19yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgJHgtYm9yZGVyLWZhaW50O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWluLWhlaWdodDogJHB0ZC1yb3ctaDtcbiAgfVxuXG4gIC8vIC0tLSBuYW1lcyBjb2x1bW4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAmX19uYW1lcyAmX19oZWFkLFxuICAmX19uYW1lcyAmX19yb3cge1xuICAgIG1pbi13aWR0aDogJHB0ZC1sYWJlbC13O1xuICAgIHBhZGRpbmctbGVmdDogJHB0ZC1uYW1lLXBhZDtcbiAgfVxuXG4gIC8vIE5hbWUvVW5pdCBoZWFkZXJzIHJlYWQgbGlnaHRlciB0aGFuIHRoZSByZXN0IG9mICZfX2hlYWQgKDYwMCkgLSB0aGUgZGF0ZVxuICAvLyBoZWFkZXJzIGtlZXAgNjAwIHZpYSAmX19kYXRlJ3Mgb3duIGV4cGxpY2l0IHdlaWdodCBiZWxvdy5cbiAgJl9fbmFtZXMgJl9faGVhZCxcbiAgJl9faW5mby0tdW5pdCAmX19oZWFkIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICB9XG5cbiAgJl9fbmFtZXMgJl9fcm93IHtcbiAgICBjb2xvcjogJHB0ZC10aXRsZTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcblxuICAgID4gZGl2IHtcbiAgICAgIG1pbi13aWR0aDogJHB0ZC1sYWJlbC13O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG4gIH1cblxuICAvLyBJdGFsaWMgaXMgdGhlIG5hbWVzIGNvbHVtbidzIGpvYiBhbG9uZTogaW4gdGhlIHNjb3JlcyBjb2x1bW4gdGhlIHZhbHVlXG4gIC8vIHN0YXlzIHVwcmlnaHQgc28gdGhlIGRpZ2l0cyBrZWVwIHJlYWRpbmcgYXMgZGF0YS5cbiAgJl9fbmFtZXMgJl9fcm93LS1zdWJ0b3RhbCB7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH1cblxuICAvLyAmX19uYW1lcyAmX19yb3cgKDAsMiwwKSB3b3VsZCBvdGhlcndpc2UgYmVhdCAmX19yb3ctLXRvdGFsJ3MgZm9udC13ZWlnaHRcbiAgLy8gKDAsMSwwKSBhbmQgbGVhdmUgdGhlIHRvdGFsIHJvdydzIG5hbWUgYXQgdGhlIHJlZ3VsYXIgNTAwIHdlaWdodC5cbiAgJl9fbmFtZXMgJl9fcm93LS10b3RhbCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxuXG4gIC8vIFBlcmZvcm1hbmNlIFRlc3Q6IGV2ZXJ5IG5hbWUgaXMgYm9sZCBleGNlcHQgXCItIERpZmZlcmVuY2VcIiByb3dzLCB3aGljaFxuICAvLyBzdGF5IGF0IHRoZSByZWd1bGFyIHdlaWdodCBldmVuIHdoZW4gaXNTdWJUb3RhbCB3b3VsZCBvdGhlcndpc2UgYm9sZFxuICAvLyB0aGVtLiBUaGUgZXh0cmEgJi0tcGVyZm9ybSBhbmNlc3RvciBjbGFzcyBwdXNoZXMgYm90aCBydWxlcyB0byAzXG4gIC8vIHNlbGVjdG9ycyBzbyB0aGV5IGJlYXQgJl9fcm93LS1zdWJ0b3RhbCdzIDYwMCAoMiBzZWxlY3RvcnMpIG91dHJpZ2h0LFxuICAvLyBhbmQgdGhlIHNlY29uZCBydWxlJ3Mgb3duIDMgc2VsZWN0b3JzIGJlYXQgdGhlIGZpcnN0IGJ5IHNvdXJjZSBvcmRlci5cbiAgJi0tcGVyZm9ybSAmX19uYW1lcyAmX19yb3cge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIH1cblxuICAvLyBQZXJmb3JtYW5jZSBUZXN0IG5hbWVzIGRvbid0IHVzZSB0aGUgaXRhbGljIHN1YnRvdGFsIHN0eWxpbmcgb3RoZXJcbiAgLy8gcmVwb3J0IHR5cGVzIGRvLCBleGNlcHQgXCItIERpZmZlcmVuY2VcIiByb3dzLCB3aGljaCBzdGF5IGl0YWxpYyAtIHRoZVxuICAvLyBydWxlIGJlbG93IHdpbnMgYnkgc291cmNlIG9yZGVyIHNpbmNlIGJvdGggc2VsZWN0b3JzIGFyZSAzIGNsYXNzZXMgZGVlcC5cbiAgJi0tcGVyZm9ybSAmX19uYW1lcyAmX19yb3ctLXN1YnRvdGFsIHtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gIH1cblxuICAmLS1wZXJmb3JtICZfX25hbWVzICZfX3Jvdy0tZGlmZmVyZW5jZSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIH1cblxuICAvLyAtLS0gaW5mbyBjb2x1bW5zIChUcmFpbmluZyBMb2FkIHRvdGFscywgYWRkaXRpb25hbExhYmVscykgLS0tLS0tLS0tLS0tLS0tXG5cbiAgJl9faW5mbyAmX19oZWFkLFxuICAmX19pbmZvICZfX3JvdyB7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBtaW4td2lkdGg6ICRwdGQtaW5mby13O1xuICAgIHBhZGRpbmc6IDAgJHB0ZC1jZWxsLXBhZDtcbiAgfVxuXG4gICZfX2luZm8tLXVuaXQgJl9faGVhZCxcbiAgJl9faW5mby0tdW5pdCAmX19yb3cge1xuICAgIG1pbi13aWR0aDogJHB0ZC11bml0LXc7XG4gIH1cblxuICAvLyBPbmUgcGlsbCBwZXIgbWVhc3VyZW1lbnQgdW5pdCwgbWF0Y2hlZCB0byB0aGUgZml4ZWQgc2V0IG9mIHVuaXRzIHRoZVxuICAvLyBQZXJmb3JtYW5jZSBUZXN0J3Mgb3duIHNjb3JpbmcgYWxyZWFkeSByZXR1cm5zIChzZWUgdGhlIFwic2VjXCIvXCIlXCIvZXRjLlxuICAvLyBzdWZmaXggUHJvZ3Jlc3NSZXBvcnRTZXJ2aWNlLmpzIHNwbGl0cyBvZmYgc2NvcmVFbnRyeS5TY29yZVZhbHVlKS4gTmFtZWRcbiAgLy8gcGVyLXVuaXQgcmF0aGVyIHRoYW4gZGVyaXZlZCBmcm9tIHRoZSBzdHJpbmcgc28gXCIlXCIgLSBub3QgdXNhYmxlIGluIGFcbiAgLy8gY2xhc3MgbmFtZSAtIGhhcyBhIHJlYWwgY2xhc3MgdG8gaGFuZyBvZmYgb2YuXG4gICZfX3VuaXQtcGlsbCB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIG1peC1ibGVuZC1tb2RlOiBtdWx0aXBseTtcbiAgICBwYWRkaW5nOiAycHggOHB4O1xuXG4gICAgLy8gRml4ZWQgd2lkdGhzIHBlciBsYWJlbCBsZW5ndGggKDEvMi8zLWNoYXJhY3RlciB1bml0cyk7IDQrIGNoYXJhY3RlclxuICAgIC8vIHVuaXRzIChyZXBzLCBzY29yZSkgaGF2ZSBubyBzcGVjIGFuZCBmYWxsIGJhY2sgdG8gaHVnZ2luZyB0aGVpciBjb250ZW50LlxuICAgICYtLXBlcmNlbnQgeyB3aWR0aDogMjZweDsgfVxuICAgICYtLWNtLFxuICAgICYtLWZ0LFxuICAgICYtLWluLFxuICAgICYtLWtnLFxuICAgICYtLWxiICAgICAgeyB3aWR0aDogMzRweDsgfVxuICAgICYtLXNlYyAgICAgeyB3aWR0aDogMzdweDsgfVxuXG4gICAgJi0tY20sXG4gICAgJi0tZnQsXG4gICAgJi0taW4gICAgICB7IGJhY2tncm91bmQ6ICNGREVBRDc7IGNvbG9yOiAjQjkzODE1OyB9XG4gICAgJi0ta2csXG4gICAgJi0tbGIgICAgICB7IGJhY2tncm91bmQ6ICNFQ0U5RkU7IGNvbG9yOiAjNTkyNURDOyB9XG4gICAgJi0tcGVyY2VudCB7IGJhY2tncm91bmQ6ICNGQ0U3RjY7IGNvbG9yOiAjQzExNTc0OyB9XG4gICAgJi0tc2VjICAgICB7IGJhY2tncm91bmQ6ICNEMUU5RkY7IGNvbG9yOiAjMTc1Q0QzOyB9XG4gICAgJi0tcmVwcyAgICB7IGJhY2tncm91bmQ6ICNEM0Y4REY7IGNvbG9yOiAjMTc4MDNEOyB9XG4gICAgJi0tc2NvcmUgICB7IGJhY2tncm91bmQ6ICNFOUVBRUI7IGNvbG9yOiAjNDE0NjUxOyB9XG4gIH1cblxuICAvLyAtLS0gc2NvcmVzIGNvbHVtbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgJl9fc2NvcmVzICZfX2hlYWQsXG4gICZfX3Njb3JlcyAmX19yb3cge1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgbWluLXdpZHRoOiAkcHRkLXNjb3JlLXc7XG4gICAgcGFkZGluZzogMCAkcHRkLWNlbGwtcGFkO1xuICB9XG5cbiAgLy8gVW5kZXJsaW5lZCBwZXIgdGhlIGRlc2lnbi4gVGhlcmUgaXMgbm8gY2xpY2sgaGFuZGxlciBiZWhpbmQgaXQsIHNvIHRoZVxuICAvLyBjdXJzb3IgaXMgbGVmdCBhbG9uZSByYXRoZXIgdGhhbiBwcm9tb3RlZCB0byBhIHBvaW50ZXIuXG4gICZfX2RhdGUge1xuICAgIGNvbG9yOiAkcHRkLWRhdGUtaDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxuXG4gICZfX2hlYWQtLXNpZGVzIHtcbiAgICA+IHNwYW4ge1xuICAgICAgbWluLXdpZHRoOiAkcHRkLXNpZGUtdztcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICAvLyAtLS0gY2VsbHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLy8gTm8gYGNvbG9yYCBoZXJlLCBhbmQgbm9uZSBvbiBhbnkgZGVzY2VuZGFudCAtIHNlZSB0aGUgZmlsZSBoZWFkZXIuXG4gICZfX2NlbGwge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIH1cblxuICAmX19zaWRlcyB7XG4gICAgPiBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIG1pbi13aWR0aDogJHB0ZC1zaWRlLXc7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0tIHRvdGFscyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8vIEFwcGxpZWQgYWNyb3NzIGV2ZXJ5IGNvbHVtbiBzbyB0aGUgZmlsbCBydW5zIHRoZSBmdWxsIHdpZHRoIG9mIHRoZSByb3cuXG4gIC8vIE9ubHkgdHlwZS0xIHNjb3JlIGVudHJpZXMgY2FycnkgaXNUb3RhbCAoUHJvZ3Jlc3NSZXBvcnRTZXJ2aWNlLmpzOjUwOSksIHNvXG4gIC8vIG9uIFQyL1RML1BFUkZPUk0gcmVwb3J0cyB0aGUgZmlsbCBsYW5kcyBvbiB0aGUgbmFtZXMgY29sdW1uIGFsb25lIC0gdGhlXG4gIC8vIHNhbWUgcmVhY2ggdGhlIGxlZ2FjeSBwdXJwbGUgYmFyIGhhZC5cbiAgJl9fcm93LS10b3RhbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHB0ZC10b3RhbC1iZztcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB9XG5cbiAgLy8gLS0tIGdyb3VwIGhlYWRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLy8gT25lIG9mIHRoZXNlIGlzIHNwbGljZWQgaW50byBldmVyeSBjb2x1bW4gYXQgdGhlIHNhbWUgaW5kZXggKHNlZVxuICAvLyBQcm9ncmVzc1JlcG9ydENvbnRyb2xsZXIuanMncyBfcmVuZGVyVGVzdERldGFpbHMpLCBzbyB0aGUgc2FtZSBmaXhlZCxcbiAgLy8gc2hvcnRlciBoZWlnaHQgYW5kIGZpbGwgbGFuZCBvbiBldmVyeSBjb2x1bW4gZm9yIHRoYXQgcm93IGFuZCByZWFkIGFzIGFcbiAgLy8gc2luZ2xlIGZ1bGwtd2lkdGggYmFuZCAtIHRoZSBzYW1lIHBlci1jb2x1bW4tZmlsbCB0ZWNobmlxdWUgJl9fcm93LS10b3RhbFxuICAvLyB1c2VzIGFib3ZlLlxuICAmX19yb3ctLWdyb3VwLWhlYWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0Y2RjZGNjtcbiAgICBtaW4taGVpZ2h0OiAyNHB4O1xuICB9XG5cbiAgJl9fZ3JvdXAtbGFiZWwge1xuICAgIGNvbG9yOiAjNkQ2RDZEO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuXG4gIC8vIC0tLSBsZWdlbmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvLyBUaGUgdGFibGUncyBsYXN0IHJvdywgaW5zaWRlIHRoZSBib3JkZXJlZCBib3ggcmF0aGVyIHRoYW4gY2FwdGlvbmVkIGJlbG93XG4gIC8vIGl0LiBJdCBzaXRzIG91dHNpZGUgdGhlIGhvcml6b250YWxseS1zY3JvbGxpbmcgc2NvcmUgY29sdW1ucywgc28gaXQgc3RheXNcbiAgLy8gcHV0IGFuZCBzdGF5cyByZWFkYWJsZSBob3dldmVyIGZhciB0aGUgZGF0ZXMgYXJlIHNjcm9sbGVkLlxuICAvL1xuICAvLyBJdHMgdG9wIHJ1bGUgaXMgYW4gaW5zZXQgc2hhZG93IGxpa2UgZXZlcnkgb3RoZXIgcm93IHNlcGFyYXRvciwgYnV0IGRyYXduXG4gIC8vIG9uIHRoZSBsZWFkaW5nIGVkZ2UgLSB0aGUgY29sdW1ucyBiYW5kIGFib3ZlIGhhcyBhbHJlYWR5IGhhZCBpdHMgb3duXG4gIC8vIHRyYWlsaW5nIGhhaXJsaW5lIGNsaXBwZWQgYXdheSwgc28gdGhpcyBpcyB0aGUgc2luZ2xlIGRpdmlkZXIgYmV0d2VlbiB0aGVcbiAgLy8gZGF0YSBhbmQgdGhlIGtleS5cbiAgJl9fbGVnZW5kIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwICR4LWJvcmRlci1mYWludDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIG1pbi1oZWlnaHQ6ICRwdGQtbGVnZW5kLWg7XG4gICAgcGFkZGluZy1sZWZ0OiAkcHRkLW5hbWUtcGFkO1xuICB9XG5cbiAgJl9fbGVnZW5kLWl0ZW0ge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuXG4gICAgJiArICYge1xuICAgICAgbWFyZ2luLWxlZnQ6IDI0cHg7XG4gICAgfVxuICB9XG5cbiAgJl9fbGVnZW5kLWRvdCB7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICB3aWR0aDogOHB4O1xuXG4gICAgJi0tcG9vciAgICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkcHRkLXBvb3I7IH1cbiAgICAmLS1tb2RlcmF0ZSB7IGJhY2tncm91bmQtY29sb3I6ICRwdGQtbW9kZXJhdGU7IH1cbiAgICAmLS1nb29kICAgICB7IGJhY2tncm91bmQtY29sb3I6ICRwdGQtZ29vZDsgfVxuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gIC5wcm9ncmVzcy1kZXRhaWxzIHtcbiAgICBwYWRkaW5nOiAxNnB4O1xuXG4gICAgLy8gQmVsb3cgdGhlIG1vYmlsZSBicmVha3BvaW50IHRoZSBjb2x1bW5zIGJhbmQgc2Nyb2xscyBhcyBvbmUgcGllY2UgaW5zdGVhZFxuICAgIC8vIG9mIHRoZSBzY29yZXMgY29sdW1uIHNjcm9sbGluZyBpbnNpZGUgYSBoZWxkLXN0aWxsIG5hbWVzIGNvbHVtbiwgd2hpY2ggaXNcbiAgICAvLyB3aGF0IHRoZSBsZWdhY3kgcnVsZXMgZGlkIGF0IHRoaXMgd2lkdGguIFRoZSBzY3JvbGwgZ29lcyBoZXJlIHJhdGhlciB0aGFuXG4gICAgLy8gb24gX19ncmlkIHNvIHRoZSBsZWdlbmQgcm93LCB3aGljaCBpcyBfX2dyaWQncyBvdGhlciBjaGlsZCwgc3RheXMgcHV0IGFuZFxuICAgIC8vIHN0YXlzIGZ1bGwgd2lkdGguIG92ZXJmbG93LXkgc3RheXMgaGlkZGVuIHNvIHRoZSAtMXB4IGNsaXAgb2YgdGhlXG4gICAgLy8gdHJhaWxpbmcgaGFpcmxpbmUgc3Vydml2ZXMuXG4gICAgJl9fY29sdW1ucyB7XG4gICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIH1cblxuICAgICZfX3Njb3JlcyB7XG4gICAgICBvdmVyZmxvdy14OiB1bnNldDtcbiAgICAgIG92ZXJmbG93LXk6IHVuc2V0O1xuICAgIH1cblxuICAgIC8vIEZvdXIgaXRlbXMgb24gb25lIGxpbmUgZG8gbm90IGZpdCBhIHBob25lOyB0aGUgZG90cyBrZWVwIHRoZW0gcmVhZGFibGVcbiAgICAvLyBvbmNlIHdyYXBwZWQsIGFuZCB0aGUgcm93IGdyb3dzIHBhc3QgaXRzIDM2cHggZmxvb3IuXG4gICAgJl9fbGVnZW5kIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtd3JhcCh3cmFwKTtcbiAgICAgIHBhZGRpbmc6IDhweCAwIDhweCAkcHRkLW5hbWUtcGFkO1xuICAgIH1cbiAgfVxufVxuIiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIi8qIFRoZSBcIkRldGFpbGVkIFByb2dyYW1zIFJlc3VsdHNcIiBjYXJkIGF0IHRoZSBib3R0b20gb2YgdGhlIHByb2dyZXNzIHJlcG9ydCdzXG4gICBQcm9ncmFtcyB0YWIgKC9yZXBvcnRzLzphdGhsZXRlSWQsIHZpZXdzL3Byb2dyZXNzcmVwb3J0Lmh0bWwpLlxuXG4gICBTaWJsaW5nIG9mIF9wcm9ncmVzc19kZXRhaWxzLnNjc3MgYW5kIGRlbGliZXJhdGVseSBpdHMgb3duIGJsb2NrIHJhdGhlciB0aGFuXG4gICBhIG1vZGlmaWVyIG9mIGl0LiBUaGUgdHdvIGNhcmRzIHNoYXJlIGEgc2hlbGwgLSBzYW1lIGJvcmRlciwgcmFkaXVzLCBzaGFkb3csXG4gICB0aXRsZSBiYXIsIGhlYWRlci9yb3cgaGVpZ2h0cyBhbmQgaGFpcmxpbmUgdHJlYXRtZW50IC0gYnV0IG5vdGhpbmcgZWxzZTpcbiAgIC5wcm9ncmVzcy1kZXRhaWxzIGlzIHRocmVlIHBhcmFsbGVsIGZsZXggY29sdW1ucyBiZWNhdXNlIGl0cyBkYXRhIGFycml2ZXNcbiAgIHRyYW5zcG9zZWQsIHdoaWxlIHZtLmRldGFpbFByb2dyYW1zIGlzIG9uZSBvYmplY3QgcGVyIHJvdywgc28gdGhpcyBvbmUgaXMgYVxuICAgcGxhaW4gcm93LW1ham9yIHRhYmxlLiBTaGFyaW5nIGEgY2xhc3Mgd291bGQgbWVhbiBjYXJyeWluZyB0aGF0IGNvbHVtblxuICAgbWFjaGluZXJ5IGZvciBhIHRhYmxlIHRoYXQgaGFzIG5vIHVzZSBmb3IgaXQuXG5cbiAgIFRoZSBzaGVsbCBjb25zdGFudHMgYmVsb3cgYXJlIHJlc3RhdGVkIHJhdGhlciB0aGFuIGltcG9ydGVkIGZyb21cbiAgIF9wcm9ncmVzc19kZXRhaWxzLnNjc3MsIGJlY2F1c2UgU0NTUyB2YXJpYWJsZXMgYXJlIGZpbGUtbG9jYWwgdW5sZXNzIGhvaXN0ZWRcbiAgIHRvIF9kZXNpZ25fdG9rZW5zLnNjc3MuIElmIHlvdSBjaGFuZ2UgYSByb3cgaGVpZ2h0IGluIG9uZSBjYXJkLCBjaGFuZ2UgaXQgaW5cbiAgIHRoZSBvdGhlciBvciB0aGUgdHdvIHN0b3AgcmVhZGluZyBhcyBvbmUgZmFtaWx5LlxuXG4gICBSZXBsYWNlcyAucmVwb3J0LXByb2dyYW1zLWNvbnRhaW5lciAvIC5wcm9ncmFtLWdyb3VwLWRyb3Bkb3duLWNvbnRhaW5lcixcbiAgIHdoaWNoIHdlcmUgcmVtb3ZlZCBmcm9tIF9wcm9ncmVzc19yZXBvcnQuc2NzcyAtIHRlYW1yZXBvcnQuaHRtbCBuZXZlclxuICAgcmVuZGVyZWQgdGhlbSwgc28gbm90aGluZyBlbHNlIHdhcyBvbiB0aG9zZSBydWxlcy5cblxuICAgVHJhcHMgdGhpcyBidWlsZCBoYXM6IG5vIGdsb2JhbCBib3JkZXItYm94IHJlc2V0IChzdGF0ZSBib3gtc2l6aW5nIGJ5IGhhbmQpXG4gICBhbmQgbm8gYXV0b3ByZWZpeGVyLiAqL1xuXG5AaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbiRwZ2QtdG90YWwtYmc6ICAjZjdmN2Y4OyAgIC8vIFRvdGFsIHJvdyBmaWxsXG5cbi8vIEtlcHQgaW4gc3RlcCB3aXRoICRwdGQtaGVhZC1oIC8gJHB0ZC1yb3ctaCBpbiBfcHJvZ3Jlc3NfZGV0YWlscy5zY3NzIC0gc2VlXG4vLyB0aGUgZmlsZSBoZWFkZXIuXG4kcGdkLWhlYWQtaDogICAgMzRweDtcbiRwZ2Qtcm93LWg6ICAgICA0NHB4O1xuXG4kcGdkLXJvdy1wYWQ6ICAgMjBweDsgICAgICAvLyBsZWFkaW5nIGluc2V0LCByZXN0YXRlZCBvbiB0aGUgaGVhZGVyXG4kcGdkLWNlbGwtcGFkOiAgOHB4O1xuXG4vLyBDb2x1bW4gd2lkdGhzLCBwZXIgZGVzaWduIHNwZWMuIEV2ZXJ5IGNvbHVtbiBpcyBhIGZpeGVkIGZsZXgtYmFzaXMsIG5vdCBhXG4vLyBtaW4td2lkdGg6IHRoZSBoZWFkZXIgbGFiZWxzIGhhdmUgdG8gc3RheSBvdmVyIHRoZWlyIHZhbHVlcyB3aGF0ZXZlciB0aGVcbi8vIGxvbmdlc3QgcHJvZ3JhbSBuYW1lIGlzLCBhbmQgYSBtaW4td2lkdGggd291bGQgbGV0IG9uZSBsb25nIG5hbWUncyByb3cgZ3Jvd1xuLy8gd2lkZXIgdGhhbiB0aGUgcmVzdCBhbmQgd2FsayB0aGUgY29sdW1ucyBvdXQgb2YgcmVnaXN0ZXIgLSB0aGUgcm93LW1ham9yXG4vLyBlcXVpdmFsZW50IG9mIHRoZSBwYXJhbGxlbC1jb2x1bW4gdHJhcCBfcHJvZ3Jlc3NfZGV0YWlscy5zY3NzJ3MgaGVhZGVyXG4vLyB3YXJucyBhYm91dC4gQSBuYXJyb3cgdmlld3BvcnQgc2Nyb2xscyB0aGUgdGFibGUgKCZfX2dyaWQpIGluc3RlYWQuXG4kcGdkLW5hbWUtdzogICAgMjIwcHg7XG4kcGdkLXR5cGUtdzogICAgMTYwcHg7XG4kcGdkLWNvdW50LXc6ICAgMTQ0cHg7XG4kcGdkLXBlcmNlbnQtdzogMTQ0cHg7XG4kcGdkLWRhdGUtdzogICAgMTQ0cHg7XG5cbi8vIFBlciBkZXNpZ24gc3BlYy4gQ2xlYXJzIHRoZSBwZXJjZW50IGNvbHVtbidzIG93biBwYWRkaW5nIHBsdXMgaXRzIHZhbHVlXG4vLyB0ZXh0IChcIjEwMCVcIiwgdHJ1bmNhdGVkIC0gc2VlICZfX3BlcmNlbnQtdmFsdWUpIHdpdGggcm9vbSB0byBzcGFyZSAtIHNlZVxuLy8gJl9fY2VsbC0tcGVyY2VudC5cbiRwZ2QtYmFyLXc6ICAgICA3NXB4O1xuJHBnZC1iYXItaDogICAgIDZweDtcblxuLnByb2dyYW1zLWRldGFpbHMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLy8gTm90IGZsZXgoMSAwIGF1dG8pOiBpbnNpZGUgLnZpZXctY29udGFpbmVyLmNvbHVtbiB0aGlzIGNhcmQgd291bGQgZ3JvdyBpbnRvXG4gIC8vIHdoYXRldmVyIGhlaWdodCB0aGUgcGFnZSBjb2x1bW4gaGFkIGxlZnQgb3ZlciBhbmQgZHJhdyBhbiBlbXB0eSB3aGl0ZSB0YWlsXG4gIC8vIHVuZGVyIHRoZSBUb3RhbCByb3cuXG4gIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAvLyBFdmVyeSBjb2x1bW4gYmVsb3cgaXMgYSBmaXhlZCBweCB3aWR0aCAoc2VlIHRoZSBmaWxlIGhlYWRlciksIHNvIHRoZSB0YWJsZVxuICAvLyBoYXMgYSByZWFsLCBrbm93biB3aWR0aCBub3cgcmF0aGVyIHRoYW4gb25lIHRoYXQgZGVwZW5kcyBvbiBjb250ZW50IG9yIHRoZVxuICAvLyBwYWdlIGNvbHVtbidzIG93biB3aWR0aC4gLnZpZXctY29udGFpbmVyLmNvbHVtbidzIGRlZmF1bHRcbiAgLy8gYWxpZ24taXRlbXM6IHN0cmV0Y2ggd291bGQgb3RoZXJ3aXNlIGZvcmNlIHRoaXMgY2FyZCB0byB0aGUgZnVsbCBjb2x1bW5cbiAgLy8gd2lkdGggcmVnYXJkbGVzcyAtIG1hdGNoZXMgLnByb2dyZXNzLWRldGFpbHMncyBvd24gYWxpZ24tc2VsZiBmb3IgdGhlIHNhbWVcbiAgLy8gcmVhc29uLlxuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gIC8vIENsZWFycyB0aGUgT3ZlcnZpZXcgY2FyZCBhYm92ZTsgdGhlIGJvdHRvbSBtYXJnaW4gaXMgdGhlIHBhZ2UncyBvd24gdGFpbC5cbiAgbWFyZ2luOiAzMHB4IDAgNTBweDtcbiAgcGFkZGluZzogMjBweDtcblxuICAmX190aXRsZSB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luOiAwIDAgMjBweDtcbiAgfVxuXG4gICZfX3R5cGUtZmlsdGVyIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBnYXA6IDhweDtcbiAgfVxuXG4gICZfX3R5cGUtbGFiZWwge1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICB9XG5cbiAgLy8gU2NvcGVkIHRvIHRoaXMgY2FyZCdzIFR5cGUgZHJvcGRvd24gb25seSAtIHRoZSBzaGFyZWQgLnNlbGVjdC1waWxsIHJ1bGVzIGluXG4gIC8vIF9zZWxlY3RfcGlsbC5zY3NzIGFsc28gc3R5bGUgdGhlIGRhdGUgc2VsZWN0b3IgaW4gdGhlIHBhZ2UncyBvcHRpb25zIGJhcixcbiAgLy8gd2hpY2ggc3RheXMgYXQgaXRzIG5vcm1hbCA0MHB4IGhlaWdodC5cbiAgJl9fdHlwZS1maWx0ZXIgLnNlbGVjdC1waWxsIC5kcm9wZG93bi13cmFwcGVyIC50cmlnZ2VyLnBpbGwge1xuICAgIGhlaWdodDogMzJweDtcbiAgfVxuXG4gIC8vIFRoZSBoYWlybGluZSBib3ggYXJvdW5kIHRoZSB0YWJsZS4gb3ZlcmZsb3c6aGlkZGVuIGlzIHdoYXQgY2xpcHMgdGhlIGxhc3RcbiAgLy8gcm93J3Mgc2VwYXJhdG9yIChwdXNoZWQgMXB4IHBhc3QgdGhlIGJveCBieSB0aGUgLTFweCBtYXJnaW4gYmVsb3cpIGFuZCB3aGF0XG4gIC8vIHJvdW5kcyB0aGUgVG90YWwgcm93J3MgYm90dG9tIGNvcm5lcnMgYWdhaW5zdCBpdHMgZmlsbC5cbiAgJl9fZ3JpZCB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICAvLyBCbG9jay1sZXZlbCBmbGV4IHdvdWxkIGRlZmF1bHQgdG8gd2lkdGg6IDEwMCUgb2YgdGhlIGNhcmQgcmVnYXJkbGVzcyBvZlxuICAgIC8vIGhvdyBuYXJyb3cgdGhlIGZpeGVkIGNvbHVtbnMgYWRkIHVwIHRvLCBsZWF2aW5nIHRoZSBib3JkZXIgdHJhaWxpbmcgb2ZmXG4gICAgLy8gaW50byBlbXB0eSBzcGFjZSBwYXN0IHRoZSBsYXN0IGNvbHVtbjsgaW5saW5lLWZsZXggc2hyaW5rLXdyYXBzIGl0IHRvXG4gICAgLy8gaXRzIGNvbnRlbnQgaW5zdGVhZCwgc2FtZSBhcyAucHJvZ3Jlc3MtZGV0YWlsc19fZ3JpZC5cbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgLy8gQSB0YWJsZSB3aWRlciB0aGFuIHRoZSBjYXJkIHNjcm9sbHMgaGVyZSByYXRoZXIgdGhhbiBvdmVyZmxvd2luZyBpdC5cbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICB9XG5cbiAgLy8gLS0tIHJvd3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vXG4gIC8vIFNlcGFyYXRvcnMgYXJlIGluc2V0IGJveC1zaGFkb3dzLCBub3QgYm9yZGVycywgc28gYSByb3cgY29zdHMgZXhhY3RseSBpdHNcbiAgLy8gc3RhdGVkIGhlaWdodCAtIHRoZSBzYW1lIHJlYXNvbiBfcHJvZ3Jlc3NfZGV0YWlscy5zY3NzIGRyYXdzIHRoZW0gdGhhdCB3YXkuXG4gIC8vIEhlcmUgaXQgYWxzbyBrZWVwcyB0aGUgaGVhZGVyIGFuZCB0aGUgVG90YWwgcm93IGZyb20gcGlja2luZyB1cCBhbiBleHRyYVxuICAvLyBwaXhlbCB0aGVpciBmaWxscyB3b3VsZCB0aGVuIHNpdCBvZmYtY2VudHJlIGluLlxuXG4gICZfX3JvdyB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtaW4taGVpZ2h0OiAkcGdkLXJvdy1oO1xuICAgIC8vIFdpdGhvdXQgdGhpcyB0aGUgZml4ZWQgY29sdW1ucyB3b3VsZCBzaHJpbmsgdW5kZXIgYSBuYXJyb3cgY2FyZCBpbnN0ZWFkXG4gICAgLy8gb2YgaGFuZGluZyB0aGUgb3ZlcmZsb3cgdG8gX19ncmlkJ3Mgc2Nyb2xsZXIuXG4gICAgbWluLXdpZHRoOiBtYXgtY29udGVudDtcbiAgfVxuXG4gIC8vIERyb3BzIHRoZSBoYWlybGluZSB1bmRlciB0aGUgdGFibGUncyBsYXN0IHJvdyB3aXRob3V0IGFcbiAgLy8gYDpsYXN0LWNoaWxkIHsgYm94LXNoYWRvdzogbm9uZSB9YDogdGhlIHJvdyBpcyBwdXNoZWQgMXB4IHBhc3QgX19ncmlkJ3NcbiAgLy8gY29udGVudCBib3ggYW5kIHRoZSBjbGlwIGFib3ZlIHN3YWxsb3dzIGl0cyBzZXBhcmF0b3IuIERvbmUgdGhpcyB3YXkgc28gdGhlXG4gIC8vIFRvdGFsIHJvdydzIGZpbGwgc3RpbGwgcmVhY2hlcyBfX2dyaWQncyByb3VuZGVkIGJvdHRvbSBjb3JuZXJzLCB3aGljaCBhXG4gIC8vIHNoYWRvdy1sZXNzIHJvdyB3b3VsZCBsZWF2ZSBhIDFweCB3aGl0ZSBzZWFtIHVuZGVyLlxuICAmX19yb3c6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgfVxuXG4gICZfX3Jvdy0taGVhZCB7XG4gICAgbWluLWhlaWdodDogJHBnZC1oZWFkLWg7XG4gIH1cblxuICAvLyBUaGUgdHlwZS9zaXplL2NvbG91ciBhYm92ZSBzZXQgb24gJl9fcm93LS1oZWFkIGl0c2VsZiBuZXZlciByZWFjaGVkIHRoZVxuICAvLyBoZWFkZXIgdGV4dDogZXZlcnkgJl9fY2VsbCAoYW5kICZfX2NlbGwtLW5hbWUgb24gdG9wIG9mIGl0KSBzZXRzIGl0cyBvd25cbiAgLy8gZm9udC1zaXplL3dlaWdodC9jb2xvdXIgZGlyZWN0bHksIGFuZCBhIGRlc2NlbmRhbnQncyBvd24gZGVjbGFyYXRpb25cbiAgLy8gYWx3YXlzIHdpbnMgb3ZlciBpbmhlcml0aW5nIG9uZSBmcm9tIGFuIGFuY2VzdG9yLCB3aGF0ZXZlciBlaXRoZXJcbiAgLy8gc2VsZWN0b3IncyBzcGVjaWZpY2l0eSBpcy4gVGhpcyByZXN0YXRlcyBpdCBvbiB0aGUgY2VsbHMgdGhlbXNlbHZlcyAtIGF0XG4gIC8vIDAsMiwwLCBzbyBpdCBhbHNvIGJlYXRzICZfX2NlbGwtLW5hbWUncyAwLDEsMCBjb2xvdXIvd2VpZ2h0IHdpdGhvdXRcbiAgLy8gbmVlZGluZyBhIHNlcGFyYXRlIG92ZXJyaWRlIGZvciB0aGF0IGNvbHVtbi5cbiAgLy9cbiAgLy8gU3BlYyBjYWxscyB0aGUgZmFtaWx5ICdOdWRpc3RhIFRSSUFMJyAtIHRoYXQncyBGaWdtYSdzIG5hbWUgZm9yIGEgdHJpYWxcbiAgLy8gbGljZW5zZSBvZiB0aGUgc2FtZSB3ZWJmb250IHRoaXMgd2hvbGUgY2FyZCBhbHJlYWR5IHJlbmRlcnMgaW5cbiAgLy8gKCdOdWRpc3RhJywgcmVnaXN0ZXJlZCBpbiBfZm9udHMuc2Nzcyk7IG5vdGhpbmcgaGVyZSBpcyBvbiBhIGRpZmZlcmVudFxuICAvLyBmYW1pbHkuIFNwZWMgYWxzbyBhc2tzIGZvciBcImxlYWRpbmctdHJpbTogbm9uZVwiLCB3aGljaCBoYXMgbm8gZWZmZWN0IGluXG4gIC8vIGFueSBicm93c2VyIHRoaXMgYXBwIHN1cHBvcnRzIGFuZCBpcyBsZWZ0IG9mZi5cbiAgJl9fcm93LS1oZWFkICZfX2NlbGwge1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIH1cblxuICAvLyBUaGUgc3VtbWFyeSByb3cgdGhlIHNlcnZlciBmbGFncyB3aXRoIElzU3VtbWFyeVRvdGFsLiBJdCBpcyB0aGUgdGFibGUncyBsYXN0XG4gIC8vIHJvdywgc28gaXRzIGZpbGwgcnVucyBpbnRvIF9fZ3JpZCdzIHJvdW5kZWQgYm90dG9tIGNvcm5lcnMuXG4gICZfX3Jvdy0tdG90YWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwZ2QtdG90YWwtYmc7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxuXG4gIC8vIC0tLSBjZWxscyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8vIGNvbG9yIGhlcmUgaXMgZXZlcnkgZGF0YSByb3cncyB0ZXh0IC0gdGhlIGhlYWRlciBvdmVycmlkZXMgaXQgYmFjayB0b1xuICAvLyAkYmxhY2stNjAwICgmX19yb3ctLWhlYWQgJl9fY2VsbCBiZWxvdyksIHdoaWNoIGlzIHdoYXQgYWN0dWFsbHkga2VlcHNcbiAgLy8gdGhlIGhlYWRlciBmcm9tIHJlYWRpbmcgdGhpcyBzYW1lIGRhcmsuXG4gICZfX2NlbGwge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgcGFkZGluZzogMCAkcGdkLWNlbGwtcGFkO1xuICB9XG5cbiAgLy8gRml4ZWQgd2lkdGgsIHNhbWUgYXMgZXZlcnkgb3RoZXIgY29sdW1uIG5vdyAoc2VlIHRoZSBmaWxlIGhlYWRlcikgLSBidXRcbiAgLy8gc3RpbGwgdGhlIG9uZSBjb2x1bW4gd2hvc2UgY29udGVudCBjYW4gZ2VudWluZWx5IHJ1biBsb25nLCBzbyBpdCBhbG9uZVxuICAvLyBnZXRzIHRoZSBlbGxpcHNpcyB0cmVhdG1lbnQgcmF0aGVyIHRoYW4gYmVpbmcgbGVmdCB0byBvdmVyZmxvdyB0aGUgcm93LlxuICAmX19jZWxsLS1uYW1lIHtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCAkcGdkLW5hbWUtdyk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmctbGVmdDogJHBnZC1yb3ctcGFkO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgd2lkdGg6ICRwZ2QtbmFtZS13O1xuICB9XG5cbiAgJl9fY2VsbC0tdHlwZSB7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgJHBnZC10eXBlLXcpO1xuICAgIGdhcDogNHB4O1xuICAgIHdpZHRoOiAkcGdkLXR5cGUtdztcbiAgfVxuXG4gICZfX2NlbGwtLWNvdW50IHtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCAkcGdkLWNvdW50LXcpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgd2lkdGg6ICRwZ2QtY291bnQtdztcbiAgfVxuXG4gIC8vIEJhciBhbmQgdmFsdWUgc2hhcmUgb25lIGNvbHVtbjogdGhlIGJhciBpcyB0aGUgdmFsdWUncyByZWFkaW5nLCBzbyBwdXR0aW5nXG4gIC8vIGEgY29sdW1uIGJvdW5kYXJ5IGJldHdlZW4gdGhlbSB3b3VsZCBzZXBhcmF0ZSBhIG51bWJlciBmcm9tIGl0cyBvd24gc2NhbGUuXG4gICZfX2NlbGwtLXBlcmNlbnQge1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwICRwZ2QtcGVyY2VudC13KTtcbiAgICBnYXA6IDhweDtcbiAgICB3aWR0aDogJHBnZC1wZXJjZW50LXc7XG4gIH1cblxuICAmX19jZWxsLS1kYXRlIHtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCAkcGdkLWRhdGUtdyk7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICB3aWR0aDogJHBnZC1kYXRlLXc7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1yaWdodDogJHBnZC1yb3ctcGFkO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tLSB0eXBlIGJhZGdlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vXG4gIC8vIE5vdCBhIG5ldyBiYWRnZSBkZXNpZ246IHRoaXMgcmVzdGF0ZXMgLnByb2dyYW0tY2FyZF9fdGFnLS10eXBlXG4gIC8vIChfcHJvZ3JhbV9jYXJkcy5zY3NzKSwgdGhlIHNhbWUgdGFnIHRoZSBQcm9ncmFtcyBwYWdlIGNhcmQgYW5kIFRvZGF5J3NcbiAgLy8gQXNrcyBhbHJlYWR5IGNhcnJ5IGEgcHJvZ3JhbSdzIGRlbGl2ZXJ5IHR5cGUgb24sIHNvIGFsbCB0aHJlZSByZWFkIGFzXG4gIC8vIG9uZSBjb21wb25lbnQuIFJlc3RhdGVkIHJhdGhlciB0aGFuIHNoYXJlZCBiZWNhdXNlIFNDU1MgdmFyaWFibGVzXG4gIC8vICgkcHJvZ3JhbS1jYXJkLXRhZy1iZykgYXJlIGZpbGUtb3JkZXIgZGVwZW5kZW50IHVuZGVyIEBpbXBvcnQgLSBzZWUgdGhlXG4gIC8vIGZpbGUgaGVhZGVyIC0gYW5kIHByb2dyYW1fY2FyZHMuaHRtbCdzIG1hcmt1cCBpcyBpdHMgb3duIHRlbXBsYXRlLCBub3RcbiAgLy8gb25lIHRoaXMgdmlldyBpbmNsdWRlcy5cblxuICAmX190eXBlLXBpbGwge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIGJhY2tncm91bmQ6ICNmMmYyZjQ7IC8vICRwcm9ncmFtLWNhcmQtdGFnLWJnIGluIF9wcm9ncmFtX2NhcmRzLnNjc3NcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICAvLyBmbGV4OiAwIDEgYXV0byAobm90IHRoZSByb3cgZGVmYXVsdCAwIDAgYXV0bykgcGx1cyBtaW4td2lkdGg6IDAsIHNvIHRoZVxuICAgIC8vIHRhZyBjYW4gYWN0dWFsbHkgZ2l2ZSBncm91bmQgdG8gJl9fdHlwZS1waWxsLWxhYmVsJ3MgZWxsaXBzaXMgYmVsb3dcbiAgICAvLyBpbnN0ZWFkIG9mIHB1c2hpbmcgcGFzdCB0aGUgMTYwcHggY29sdW1uIC0gXCJQcmFjdGl0aW9uZXIgTGlnaHRcIiBpcyB0aGVcbiAgICAvLyBsb25nIG5hbWUgaGVyZSBhbmQgZG9lcyBub3Qgb3RoZXJ3aXNlIGZpdC4gLnByb2dyYW0tY2FyZF9fdGFnIGhhcyBub1xuICAgIC8vIGVxdWl2YWxlbnQgY29sdW1uIHRvIGZpdCBpbnNpZGUsIHNvIGl0IG5lZWRzIG5vbmUgb2YgdGhpcy5cbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBnYXA6IDRweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBwYWRkaW5nOiAwIDhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAmX190eXBlLWljb24ge1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTJweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIHdpZHRoOiAxMnB4O1xuICB9XG5cbiAgLy8gVGhlIHRhZyBjYW4gc3RpbGwgYmUgc3F1ZWV6ZWQgbmFycm93ZXIgdGhhbiBpdHMgbGFiZWwgYXQgdmVyeSBzbWFsbFxuICAvLyB3aWR0aHMgKGEgcGhvbmUsIG1vc3RseSk7IGVsbGlwc2lzIHRoZXJlIGJlYXRzIGEgYmFkZ2UgdGhhdCBibG93cyBvdXQgaXRzXG4gIC8vIG93biBjb2x1bW4uXG4gICZfX3R5cGUtcGlsbC1sYWJlbCB7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuXG4gIC8vIC0tLSBjb21wbGV0aW9uIGJhciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICZfX2JhciB7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHgtYm9yZGVyLWZhaW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiAkcGdkLWJhci1oO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6ICRwZ2QtYmFyLXc7XG4gIH1cblxuICAvLyBObyBtaW4td2lkdGg6IDAlIG11c3QgcmVhZCBhcyBhbiBlbXB0eSB0cmFjay4gQSB2aXNpYmxlIG51YiBhdCB6ZXJvIHdvdWxkXG4gIC8vIGJlIGEgbGllIC0gc2FtZSBydWxlIGFzIHRoZSBPdmVydmlldyB0aWxlcycgYmFycy5cbiAgJl9fYmFyLWZpbGwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRncmVlbi01MDA7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgLy8gTm8gY29sb3VyIGNsYXNzICh0aGlzIHVzZWQgdG8gY2FycnkgLmJsdWUtdGV4dCkgLSB0aGUgdmFsdWUgcmVhZHMgYXMgcGxhaW5cbiAgLy8gZGF0YSwgdGhlIHNhbWUgIzMzMyBhcyB0aGUgU2NoZWR1bGVkL0NvbXBsZXRlZC9kYXRlIGNlbGxzIGJlc2lkZSBpdCxcbiAgLy8gcmF0aGVyIHRoYW4gY2FsbGluZyBpdHNlbGYgb3V0LiBOb3RoaW5nIGhlcmUgc2V0cyBgY29sb3JgIGF0IGFsbCwgc28gaXRcbiAgLy8gaW5oZXJpdHMgdGhhdCBkZWZhdWx0IHJhdGhlciB0aGFuIHJlc3RhdGluZyBpdC5cbiAgJl9fcGVyY2VudC12YWx1ZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuXG4gIC8vIC0tLSBoZWFkZXIgdGlwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvL1xuICAvLyBUaGUgaWNvbiBmb250IGhhcyBubyBxdWVzdGlvbiBtYXJrLCBzbyB0aGUgY2lyY2xlIGlzIGRyYXduIGhlcmUgYW5kIHRoZVxuICAvLyBnbHlwaCBpcyB0aGUgZWxlbWVudCdzIG93biB0ZXh0LiB0b29sLXRpcC10b2dnbGUgc2V0cyBwb3NpdGlvbjpyZWxhdGl2ZSBvblxuICAvLyBpdCBhbmQgaGFuZ3MgdGhlIGJ1YmJsZSBpbnNpZGUsIHdoaWNoIGlzIHdoeSB0aGlzIGlzIGFuIGlubGluZS1mbGV4IGJveFxuICAvLyByYXRoZXIgdGhhbiBhIDpiZWZvcmUgb24gdGhlIGxhYmVsLlxuXG4gICZfX3RpcCB7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTQwMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgY29sb3I6ICRibGFjay01MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgd2lkdGg6IDE0cHg7XG5cbiAgICAvLyB0b29sLXRpcC10b2dnbGUgcmVwbGFjZXMgdGhlIGVsZW1lbnQncyBjaGlsZHJlbiB3aXRoIGl0cyBvd24gdGVtcGxhdGUsIHNvXG4gICAgLy8gYSBsaXRlcmFsIFwiP1wiIGluIHRoZSBtYXJrdXAgd291bGQgYmUgZGlzY2FyZGVkLiBUaGUgZXN0YWJsaXNoZWQgaWNvbnMgaW5cbiAgICAvLyB0aGlzIHBhZ2UgKC5pY29uLWluZm8pIGNvbWUgZnJvbSBhIGZvbnQgOmJlZm9yZSBmb3IgdGhlIHNhbWUgcmVhc29uOyB0aGlzXG4gICAgLy8gb25lIGhhcyBubyBnbHlwaCBpbiB0aGUgaWNvbiBmb250LCBzbyBpdCBkcmF3cyBpdHMgb3duLlxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICc/JztcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS01MDA7XG4gICAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgfVxuICB9XG59XG5cbi8vIFRoZSBidWJibGUgaXRzZWxmLiBTY29wZWQgdG8gdGhpcyBvbmUgdHJpZ2dlciByYXRoZXIgdGhhbiByZXN0eWxpbmdcbi8vIC50b29sdGlwLy50b29sdGlwLWJvdHRvbSBpbiBfdG9vbHRpcC5zY3NzLCB3aGljaCBpcyB0aGUgc2hhcmVkIGRhcmstZ3JleVxuLy8gYnViYmxlIGV2ZXJ5IG90aGVyIHRvb2wtdGlwLXRvZ2dsZS90b29sLXRpcC1mYWRlIGluc3RhbmNlIGluIHRoZSBhcHAgc3RpbGxcbi8vIHVzZXMgKFRyYWluaW5nIExvYWQncyBoZWFkZXJzIGFtb25nIHRoZW0pIC0gdGhvc2Uga2VlcCB0aGVpciBvd24gbG9vay5cbi8vXG4vLyBcImJvdHRvbVwiIChwb3NpdGlvbj1cImJvdHRvbVwiIGluIHRoZSBtYXJrdXApIGlzIHRoZSBjbG9zZXN0IG9mIHRoYXRcbi8vIGRpcmVjdGl2ZSdzIHRocmVlIGJ1aWx0LWluIHBsYWNlbWVudHMgdG8gdGhpcyBkZXNpZ247IGl0cyBkZWZhdWx0IGJveFxuLy8gcG9zaXRpb24gYW5kIGNhcmV0IHN0aWxsIGFzc3VtZSBhIHdpZGVyLCBjZW50ZXJlZCB0cmlnZ2VyLCBzbyBib3RoIGFyZVxuLy8gbnVkZ2VkIGxlZnQgaGVyZSB0byBzaXQgbmVhciB0aGlzIG9uZSBpbnN0ZWFkLlxuLnByb2dyYW1zLWRldGFpbHNfX3RpcCAudG9vbHRpcC1ib3R0b20ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWExYTMzO1xuICAvLyBGaXhlZCwgbm90IG1pbi9tYXggLSB0aGUgY29weSBpcyBmaXhlZCB0b28sIHNvIHRoZXJlIGlzIG5vdGhpbmcgZm9yIHRoZVxuICAvLyBib3ggdG8gZmxleCBhcm91bmQuXG4gIHdpZHRoOiAzMTJweDtcbiAgaGVpZ2h0OiAxNTJweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogOHB4IDIwcHg7XG4gIGxlZnQ6IC0xNnB4O1xuICAvLyBUaGlzIGJ1YmJsZSdzIGB0b3A6IDBgIGlzIG5vdCB0aGUgaWNvbidzIG93biB0b3AtbGVmdDogaXQgaXMgbWVhc3VyZWRcbiAgLy8gZnJvbSB0aGUgaWNvbidzIFBBRERJTkcgYm94LCB3aGljaCBzaXRzIDFweCBpbnNpZGUgdGhlIGljb24ncyBib3JkZXJcbiAgLy8gKF9iYXNlLnNjc3Mgc2V0cyBib3gtc2l6aW5nOiBib3JkZXItYm94IGdsb2JhbGx5LCBzbyB0aGF0IGJvcmRlciBkb2VzXG4gIC8vIG5vdCBhZGQgdG8gdGhlIGljb24ncyBzdGF0ZWQgMTRweCBoZWlnaHQgLSBpdCBpcyBpbmNsdWRlZCBpbiBpdCkuIFNvXG4gIC8vIHRoZSBpY29uJ3MgcmVhbCBvdXRlciBib3R0b20gZWRnZSBpcyAxNHB4IGRvd24gZnJvbSB0aGUgaWNvbidzIG93blxuICAvLyBjb3JuZXIsIGJ1dCBvbmx5IDE0IC0gMSA9IDEzcHggZG93biBmcm9tIHdoZXJlIHRoaXMgYHRvcGAgaXMgbWVhc3VyZWRcbiAgLy8gZnJvbS4gVGhlIGFycm93IG5vdyBvdmVybGFwcyB0aGlzIGJveCBieSBoYWxmIGl0cyBvd24gNnB4IGhlaWdodCAoc2VlXG4gIC8vICY6YWZ0ZXIgYmVsb3cpIHJhdGhlciB0aGFuIHNpdHRpbmcgZmx1c2ggYWJvdmUgaXQsIHNvIHRoaXMgYm94IHN0YXJ0c1xuICAvLyAzcHggbG93ZXIgdGhhbiB0aGF0IGVkZ2UsIG5vdCBhIGZ1bGwgNjogMTMgKyAzID0gMTYuIEtlZXAgdGhpcyBpbiBzdGVwXG4gIC8vIHdpdGggJjphZnRlcidzIG93biB0b3AvaGVpZ2h0IGJ5IGhhbmQ7IG5vdGhpbmcgaGVyZSBkZXJpdmVzIHRoZSBvdGhlci5cbiAgdG9wOiAxNnB4O1xuICAvLyBPdmVycmlkZXMgLnRvb2x0aXAncyAxNnB4LzI0cHgvLjM1cHggKF90b29sdGlwLnNjc3MpIC0gc2VlIHRoZSByb3cvbGFiZWxcbiAgLy8gcnVsZXMgYmVsb3cgZm9yIHRoZSBhY3R1YWwgdHlwZSBzaXplcy5cbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMTZweDtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcblxuICAudHRDb250ZW50IHtcbiAgICAvLyBPdmVycmlkZXMgLnRvb2x0aXAgLnR0Q29udGVudCdzIGdyZXkvNDAwIChfdG9vbHRpcC5zY3NzKSAtIGV2ZXJ5IGxpbmVcbiAgICAvLyBoZXJlIGlzIGVpdGhlciA1MDAgb3IgNzAwLCBuZXZlciB0aGF0IGRlZmF1bHQuXG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgfVxufVxuXG4ucHJvZ3JhbXMtZGV0YWlsc19fdGlwIC50b29sdGlwLWJvdHRvbTphZnRlciB7XG4gIC8vIFRoaXMgdHJpYW5nbGUgaXMgYC5mdXNUaXBgJ3Mgb3duIHBzZXVkby1lbGVtZW50LCBzbyBpdHMgdG9wL2xlZnQgYmVsb3dcbiAgLy8gYXJlIHJlbGF0aXZlIHRvIHRoZSBCT1ggaXRzZWxmICh3aGljaCBoYXMgbm8gYm9yZGVyIG9mIGl0cyBvd24sIHNvIG5vXG4gIC8vIHNlY29uZCBpbnNldCB0byBhY2NvdW50IGZvciBoZXJlIHRoZSB3YXkgdGhlIGJveCdzIG93biB0b3AvbGVmdCBhYm92ZVxuICAvLyBoYXMgdG8gZm9yIHRoZSBpY29uJ3MpIC0gbm90IHRoZSBpY29uIGRpcmVjdGx5LlxuICAvL1xuICAvLyA2cHggdGFsbCBwZXIgc3BlYywgd2lkdGggcGlja2VkIHRvIG1hdGNoIChhIDEycHggYmFzZSByZWFkcyBhcyB0aGUgc2FtZVxuICAvLyB0cmlhbmdsZSwganVzdCBzbWFsbGVyLCBub3QgYSBzdHJldGNoZWQvc3F1YXNoZWQgb25lKS5cbiAgYm9yZGVyLXdpZHRoOiAwIDZweCA2cHggNnB4O1xuICBib3JkZXItY29sb3I6ICMxYTFhMzMgdHJhbnNwYXJlbnQ7XG4gIC8vIEhhbGYgdGhlIGFycm93IG92ZXJsYXBzIGludG8gdGhlIGJveCByYXRoZXIgdGhhbiBzaXR0aW5nIGZsdXNoIGFib3ZlXG4gIC8vIGl0LCBzbyBvbmx5IHRoZSB0b3AgKHBvaW50ZWQpIGhhbGYgcmVhZHMgYXMgYSBzZXBhcmF0ZSBzaGFwZSAtIHRoZVxuICAvLyBib3R0b20gaGFsZiBpcyB0aGUgc2FtZSBjb2xvdXIgYXMgdGhlIGJveCBhbnl3YXkgYW5kIGp1c3QgbWVyZ2VzIGludG9cbiAgLy8gaXQuIEhhbGYgb2YgdGhlIGFycm93J3Mgb3duIDZweCBoZWlnaHQsIG5lZ2F0aXZlIHNpbmNlIHVwOiAtM3B4LiBTZWVcbiAgLy8gdGhlIGJveCdzIG93biB0b3AgYWJvdmUgZm9yIHdoeSB0aGUgdHdvIG1vdmUgdG9nZXRoZXIuXG4gIHRvcDogLTNweDtcbiAgLy8gQ2VudHJpbmcgdGhpcyBvbiB0aGUgaWNvbiBieSBjYWxjdWxhdGlvbiBhbG9uZSAoaWNvbiBjZW50cmUgbWludXMgdGhpc1xuICAvLyBib3gncyBvd24gbGVmdCBvZmZzZXQgbWludXMgaGFsZiB0aGUgYXJyb3cncyB3aWR0aCkgaGFzIGJlZW4gb2ZmIGluXG4gIC8vIHByYWN0aWNlIGJ5IG1vcmUgdGhhbiBhY2NvdW50cyBmb3IgaW4gdGhhdCBtYXRoIC0gbnVkZ2VkIGJ5IGV5ZSBhZ2FpbnN0XG4gIC8vIHRoZSBhY3R1YWwgcmVuZGVyZWQgaWNvbiBpbnN0ZWFkLCBub3QgcmUtZGVyaXZlZC4gMTZweCBvdmVyc2hvdCByaWdodCxcbiAgLy8gMTJweCBvdmVyc2hvdCBsZWZ0LCAxNHB4IHN0aWxsIHNsaWdodGx5IGxlZnQ7IG51ZGdpbmcgcmlnaHQgYWdhaW4uXG4gIGxlZnQ6IDE1cHg7XG5cbiAgLy8gX3Rvb2x0aXAuc2NzcyBleHRlbmRzIHRoaXMgcHNldWRvLWVsZW1lbnQgZnJvbSBgLnRvb2x0aXAsIDphZnRlcmAgLVxuICAvLyBhIGNvbW1hLCBzbyBTYXNzIHRyZWF0cyBpdCBhcyB0d28gc2VwYXJhdGUgZXh0ZW5kIHRhcmdldHMgaW5zdGVhZCBvZiB0aGVcbiAgLy8gc2luZ2xlIGNvbXBvdW5kIHNlbGVjdG9yIGAudG9vbHRpcDphZnRlcmAgdGhhdCB3YXMgY2xlYXJseSBpbnRlbmRlZC4gVGhlXG4gIC8vIHJlc3VsdCBpcyB0aGF0IHRoaXMgdHJpYW5nbGUgYWxzbyBpbmhlcml0cyAudG9vbHRpcCdzIG93biBCT1ggc3R5bGluZ1xuICAvLyAobWluLXdpZHRoOiAzMDBweCwgbWluLWhlaWdodDogNzJweCwgcGFkZGluZzogMjBweCAyNXB4LCBiYWNrZ3JvdW5kOlxuICAvLyByZ2IoNDYsNDYsNDYpIC0gY29uZmlybWVkIGluIHRoZSBjb21waWxlZCBDU1MsIG5vdCBndWVzc2VkKSwgd2hpY2hcbiAgLy8gcmVuZGVycyBhcyBhbiBvdmVyc2l6ZWQgcmVjdGFuZ2xlIGJlaGluZCB0aGUgMHgwLXBsdXMtYm9yZGVyIHRyaWFuZ2xlIGl0XG4gIC8vIHdhcyBzdXBwb3NlZCB0byBiZS4gVGhhdCByZWN0YW5nbGUgaXMgaW52aXNpYmxlIGV2ZXJ5d2hlcmUgZWxzZSBpbiB0aGVcbiAgLy8gYXBwIG9ubHkgYmVjYXVzZSBpdCBoYXBwZW5zIHRvIHNoYXJlIC50b29sdGlwJ3Mgb3duIGdyZXkgYmFja2dyb3VuZCwgc29cbiAgLy8gaXQgcmVhZHMgYXMgcGFydCBvZiB0aGUgc2FtZSBib3guIE92ZXJyaWRpbmcgdGhpcyBidWJibGUncyBiYWNrZ3JvdW5kIHRvXG4gIC8vICMxYTFhMzMgYWJvdmUgaXMgd2hhdCBleHBvc2VkIGl0OiB0aGUgdHdvIGdyZXlzIHN0b3BwZWQgbWF0Y2hpbmcuIFVuZG9uZVxuICAvLyBoZXJlIHJhdGhlciB0aGFuIGluIHRoZSBzaGFyZWQgZmlsZSwgd2hpY2ggZXZlcnkgb3RoZXIgdG9vbC10aXAtdG9nZ2xlL1xuICAvLyB0b29sLXRpcC1mYWRlIGluc3RhbmNlIGluIHRoZSBhcHAgc3RpbGwgcmVsaWVzIG9uIGFzLWlzLlxuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4ucHJvZ3JhbXMtZGV0YWlsc19fdGlwLXJvdyB7XG4gIG1hcmdpbjogMCAwIDEycHg7XG5cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi5wcm9ncmFtcy1kZXRhaWxzX190aXAtbGFiZWwge1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4ucHJvZ3JhbXMtZGV0YWlsc19fdGlwLXRleHQge1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG5AaW5jbHVkZSByZXNwb25kKG1vYmlsZSkge1xuICAucHJvZ3JhbXMtZGV0YWlscyB7XG4gICAgcGFkZGluZzogMTZweDtcblxuICAgIC8vIFRoZSB0eXBlIGZpbHRlciBkcm9wcyB1bmRlciB0aGUgdGl0bGUgcmF0aGVyIHRoYW4gc3F1ZWV6aW5nIGFnYWluc3QgaXQuXG4gICAgJl9fdGl0bGUge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgICBnYXA6IDEycHg7XG4gICAgfVxuICB9XG59XG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiLyogVGhlIFwiUHJvZ3Jlc3MgU3VtbWFyeVwiIGNhcmQgb24gdGhlIHByb2dyZXNzIHJlcG9ydFxuICAgKC9yZXBvcnRzLzphdGhsZXRlSWQsIHZpZXdzL3Byb2dyZXNzcmVwb3J0Lmh0bWwpLlxuXG4gICBSZXBsYWNlcyB0aGUgbGVnYWN5IC5yZXBvcnQtc3VtbWFyeS1jb250YWluZXIgLyAucmVwb3J0LXN1bW1hcnkgYmxvY2sgdGhhdFxuICAgdXNlZCB0byBsaXZlIGluIF9wcm9ncmVzc19yZXBvcnQuc2Nzcy4gVW5saWtlIHRoZSBkZXRhaWwgdGFibGUgYmVsb3cgaXQsIHRoaXNcbiAgIG1hcmt1cCB3YXMgbmV2ZXIgc2hhcmVkIC0gdGVhbXJlcG9ydC5odG1sIGRvZXMgbm90IHJlbmRlciBpdCAtIHNvIHRoZSBvbGRcbiAgIHJ1bGVzIHdlcmUgZGVsZXRlZCBvdXRyaWdodCByYXRoZXIgdGhhbiBsZWZ0IHN0YW5kaW5nIGJlc2lkZSB0aGVzZS5cblxuICAgQ29tcGFuaW9uIHRvIF9wcm9ncmVzc19kZXRhaWxzLnNjc3M6IHNhbWUgY2FyZCByZWNpcGUgKHdoaXRlIGdyb3VuZCwgaGFpcmxpbmVcbiAgIGJvcmRlciwgMTJweCByYWRpdXMsIHRoZSBzYW1lIGZhaW50IHNoYWRvdykgc28gdGhlIHR3byBibG9ja3MgcmVhZCBhcyBvbmVcbiAgIHBhZ2UuIFRva2VucyBhcmUgcmVzdGF0ZWQgaGVyZSByYXRoZXIgdGhhbiByZWFjaGluZyBmb3IgJHB0ZC0qLCB3aGljaCBpc1xuICAgZmlsZS1sb2NhbCB0byB0aGF0IHBhcnRpYWwgYnkgY29udmVudGlvbi5cblxuICAgVGhlIHBlci10ZXN0IGNhcmRzIGFyZSBhIENTUyBncmlkIG9mIGZsZXhpYmxlIHRyYWNrcywgc28gYSBjYXJkJ3Mgd2lkdGggaXNcbiAgIHdoYXRldmVyIGl0cyBjb2x1bW4gZ2V0cy4gVGhhdCBpcyB0aGUgd2hvbGUgcmVhc29uIHRoZSBzcGFya2xpbmUgaXMgcmVuZGVyZWRcbiAgIHdpdGggYGNoYXJ0LXJlc3BvbnNpdmVgOiBwcm9ncmVzc0luc2lnaHRDaGFydCBzaXplcyBpdHMgY2FudmFzIGZyb20gdGhlXG4gICBlbGVtZW50J3MgbGFpZC1vdXQgd2lkdGgsIGFuZCBDaGFydC5qcyAxLnggdGhlbiBwaW5zIHRoYXQgd2lkdGggaW5saW5lLCBzbyBhXG4gICBgd2lkdGg6IDEwMCVgIGhlcmUgd291bGQgb3RoZXJ3aXNlIGJlIG92ZXJ3cml0dGVuIG9uIGZpcnN0IHBhaW50LiBUaGVcbiAgIG1lYXN1cmVtZW50IG9ubHkgd29ya3Mgd2hpbGUgdGhlIGNhcmQgc3RheXMgYG1pbi13aWR0aDogMGAgLSBhbiBgYXV0b2BcbiAgIG1pbmltdW0gd291bGQgbGV0IHRoZSBjYW52YXMgaXQgaXMgbWVhc3VyaW5nIGNvbnRyaWJ1dGUgdG8gdGhlIHRyYWNrIHNpemUgaXRcbiAgIGlzIGJlaW5nIG1lYXN1cmVkIGFnYWluc3QuXG5cbiAgIFRyYXBzIHRoaXMgYnVpbGQgaGFzOiBubyBnbG9iYWwgYm9yZGVyLWJveCByZXNldCAoc3RhdGUgYm94LXNpemluZyBieSBoYW5kKVxuICAgYW5kIG5vIGF1dG9wcmVmaXhlci4gKi9cblxuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuXG5cbi8vIERpcmVjdGlvbiwgbm90IHNjb3JlIGJhbmQgLSBncmVlbiB1cCAvIHJlZCBkb3duIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSBzY29yZVxuLy8gaXRzZWxmIHJlYWRzLiBUaGUgYmFuZCBsaXZlcyBvbiB0aGUgc3BhcmtsaW5lLiBSZXN0YXRlZCBmcm9tXG4vLyAkaW5zaWdodHMtdXAvJGluc2lnaHRzLWRvd24gYW5kICRkYWlseS1yZXN1bHRzLXVwLyRkYWlseS1yZXN1bHRzLWRvd24uXG4kcGdzLXVwOiAgICAgIzIwYjc2OTtcbiRwZ3MtZG93bjogICAjYzQyYTNiO1xuXG5cbi8vIFRoZSBjYXJkJ3MgZGVzaWduZWQgaGVpZ2h0LiBBIG1pbiByYXRoZXIgdGhhbiBhIGZpeGVkIGhlaWdodCBzbyBhIG5hbWUgdGhhdFxuLy8gd3JhcHMgdG8gdHdvIGxpbmVzIHB1c2hlcyB0aGUgY2FyZCBkb3duIGluc3RlYWQgb2Ygb3ZlcmZsb3dpbmcgaXQ7IHRoZSBncmlkXG4vLyB0aGVuIGxldmVscyB0aGUgcmVzdCBvZiB0aGF0IHJvdyB0byBtYXRjaC5cbiRwZ3MtY2FyZC1taW4taDogMTMycHg7XG4vLyBXaGF0IGlzIGxlZnQgZm9yIHRoZSBzcGFya2xpbmUgb25jZSB0aGUgY2FyZCdzIGNocm9tZSBpcyBwYWlkIGZvcjpcbi8vIDEzMiAtIDJweCBib3JkZXIgLSAxMiBwYWQtdG9wIC0gMjAgbmFtZSAtIDQgZ2FwIC0gMzIgc2NvcmUgcm93IC0gOCBnYXAgLSAxMlxuLy8gcGFkLWJvdHRvbS4gTXVzdCBzdGF5IGluIHN0ZXAgd2l0aCB0aGUgY2FudmFzIGBoZWlnaHRgIGF0dHJpYnV0ZSBpblxuLy8gcHJvZ3Jlc3NyZXBvcnQuaHRtbCAtIHByb2dyZXNzSW5zaWdodENoYXJ0IHNpemVzIHRoZSBiYWNraW5nIHN0b3JlIGZyb20gdGhhdFxuLy8gYXR0cmlidXRlLCBhbmQgQ1NTIGFsb25lIHdvdWxkIG9ubHkgc3RyZXRjaCB0aG9zZSBwaXhlbHMuXG4kcGdzLXNwYXJrLWg6ICAgIDQycHg7XG4vLyBUaGUgY2FyZCdzIGludGVuZGVkIHdpZHRoLCBhbmQgdGhlIGZsb29yIHRoZSBncmlkIG1heSBub3QgZ28gYmVsb3cuIFN0YXRlZCBhc1xuLy8gdGhlIHRyYWNrIG1pbmltdW0gc28gYXV0by1maWxsIGRyb3BzIHRvIGZld2VyIGNvbHVtbnMgcmF0aGVyIHRoYW4gc3F1ZWV6aW5nXG4vLyBhbiBleHRyYSBvbmUgaW4gLSB1bmRlciB0aGlzIHRoZSBuYW1lIHdyYXBzIGFuZCB0aGUgc2NvcmUgYW5kIHRyZW5kIGNoaXBcbi8vIHN0YXJ0IGNyb3dkaW5nIGVhY2ggb3RoZXIuXG4kcGdzLWNvbC1taW46ICAgIDI2M3B4O1xuXG4ucHJvZ3Jlc3Mtc3VtbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYm94LXNoYWRvdzogJHNoYWRvdy1jYXJkO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvLyBNYXRjaGVzIC5wcm9ncmVzcy1kZXRhaWxzOiB0aGUgcGFnZSBjb2x1bW4gaXMgdGFsbGVyIHRoYW4gdGhpcyBibG9jaywgYW5kIGFcbiAgLy8gZ3Jvd2luZyBmbGV4IGl0ZW0gd291bGQgZHJhdyBhbiBlbXB0eSB3aGl0ZSB0YWlsIHVuZGVyIHRoZSBsYXN0IHJvdy5cbiAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gIC8vIENsZWFycyB0aGUgcmVwb3J0IGNoYXJ0IGFib3ZlLiBUaGUgYm90dG9tIGdhcCBpcyBsZWZ0IHRvIC5wcm9ncmVzcy1kZXRhaWxzLFxuICAvLyB3aGljaCBmb2xsb3dzIGl0IGFuZCBjYXJyaWVzIGl0cyBvd24gbWFyZ2luLXRvcC5cbiAgbWFyZ2luOiAzMHB4IDAgMDtcbiAgcGFkZGluZzogMjBweDtcblxuICAmX190aXRsZSB7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgbWFyZ2luOiAwIDAgMjBweDtcbiAgfVxuXG4gICZfX2dyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoJHBncy1jb2wtbWluLCAxZnIpKTtcbiAgICBnYXA6IDEycHg7XG4gIH1cblxuICAmX19jYXJkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtaW4taGVpZ2h0OiAkcGdzLWNhcmQtbWluLWg7XG4gICAgLy8gTG9hZC1iZWFyaW5nIGZvciB0aGUgc3BhcmtsaW5lIG1lYXN1cmVtZW50IC0gc2VlIHRoZSBmaWxlIGhlYWRlci5cbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcGFkZGluZzogMTJweCAxNnB4O1xuICB9XG5cbiAgJl9fbmFtZSB7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIC8vIExvbmcgY29tcG9uZW50IG5hbWVzIChcIlRydW5rL0x1bWJhciBTcGluZSBNb3ZlbWVudFwiKSB3cmFwIHJhdGhlciB0aGFuXG4gICAgLy8gd2lkZW4gdGhlIHRyYWNrLCB3aGljaCB3b3VsZCBkZXN5bmNocm9uaXNlIHRoZSBjb2x1bW5zLlxuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICB9XG5cbiAgJl9fdmFsdWUge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KHNwYWNlLWJldHdlZW4pO1xuICB9XG5cbiAgJl9fc2NvcmUge1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICB9XG5cbiAgLy8gTm8gaW5saW5lLWZsZXggbWl4aW4gaW4gX21peGlucy5zY3NzOyBzdGF0ZWQgcGxhaW5seSB0aGUgd2F5XG4gIC8vIC5wcm9ncmVzcy1pbnNpZ2h0c19fY2hhbmdlIGFuZCAuZGFpbHktcmVzdWx0c19fY2hhbmdlIGFscmVhZHkgZG8uXG4gICZfX2NoYW5nZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGdhcDogM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgJi0tdXAge1xuICAgICAgY29sb3I6ICRwZ3MtdXA7XG4gICAgfVxuXG4gICAgJi0tZG93biB7XG4gICAgICBjb2xvcjogJHBncy1kb3duO1xuICAgIH1cbiAgfVxuXG4gIC8vIEJvdGggZ2x5cGhzIHN0cm9rZSB3aXRoIGN1cnJlbnRDb2xvciwgc28gdGhlIG1vZGlmaWVyIGFib3ZlIGlzIHdoYXQgdGludHNcbiAgLy8gdGhlbS5cbiAgJl9fdHJlbmQtaWNvbiB7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIHdpZHRoOiAxNHB4O1xuICB9XG5cbiAgJl9fc3Bhcmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogJHBncy1zcGFyay1oO1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAvLyBIb2xkcyB0aGUgbGluZSBiZXR3ZWVuIGEgd2luZG93IHJlc2l6ZSBhbmQgdGhlIGRlYm91bmNlZCByZS1yZW5kZXI6IHRoZVxuICAgIC8vIGlubGluZSBweCB3aWR0aCBDaGFydC5qcyBsZWF2ZXMgYmVoaW5kIGlzIHN0YWxlIHVudGlsIHRoZW4sIGFuZCB0aGUgY2FyZFxuICAgIC8vIGlzIG1pbi13aWR0aDogMCwgc28gd2l0aG91dCB0aGlzIGEgc2hyaW5raW5nIGNvbHVtbiBvdmVyZmxvd3MuXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIC8vIE9ubHkgdGhlIHN0YXJ0aW5nIHBvaW50OiBwcm9ncmVzc0luc2lnaHRDaGFydCBtZWFzdXJlcyBhZ2FpbnN0IHRoaXMgYW5kXG4gICAgLy8gdGhlbiBDaGFydC5qcyBvdmVyd3JpdGVzIGl0IHdpdGggdGhlIHJlc29sdmVkIHdpZHRoIGluIHB4LlxuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiLyogVGhlIFwiT3ZlcnZpZXdcIiBjYXJkIGF0IHRoZSB0b3Agb2YgdGhlIHByb2dyZXNzIHJlcG9ydFxuICAgKC9yZXBvcnRzLzphdGhsZXRlSWQsIHZpZXdzL3Byb2dyZXNzcmVwb3J0Lmh0bWwpOiB0aGUgc2NvcmUgY2hhcnQsIHRoZVxuICAgQXZlcmFnZSAvIE1pbiAvIE1heCAvIFRlYW0gQXZlcmFnZSAvIFRlYW0gUmFuayB0aWxlcywgYW5kIHRoZSB0aXAgYmFubmVyLlxuXG4gICBEZWxpYmVyYXRlbHkgTk9UIGEgcmVzdHlsZSBvZiAucmVwb3J0LWNoYXJ0LWNvbnRhaW5lciAvIC5yZXBvcnQtY2hhcnQtZGV0YWlsc1xuICAgLyAucmVwb3J0LWNoYXJ0LWRldGFpbCBpbiBfcHJvZ3Jlc3NfcmVwb3J0LnNjc3M6IHRlYW1yZXBvcnQuaHRtbDo2NSw4OCw5NSwyNDJcbiAgIHJlbmRlcnMgdGhhdCBzYW1lIG1hcmt1cCBhZ2FpbnN0IHRob3NlIHNhbWUgcnVsZXMsIHNvIGVkaXRpbmcgdGhlbSBpbiBwbGFjZVxuICAgd291bGQgZHJhZyB0aGUgdGVhbSByZXBvcnQgYWxvbmcgd2l0aCBpdC4gVGhpcyBibG9jayBpcyBhcHBsaWVkIHRvIHRoZVxuICAgcHJvZ3Jlc3MgdmlldyBvbmx5OyB0aGUgdGVhbSByZXBvcnQga2VlcHMgdGhlIGxlZ2FjeSBsYXlvdXQuXG5cbiAgIFRoYXQgcmVuYW1lIGlzIGFsc28gd2hhdCBidXlzIHRoZSBjYXJkIGl0cyByZXNwb25zaXZlbmVzcyBmb3IgZnJlZS4gVGhyZWVcbiAgIHNlcGFyYXRlIHNoZWV0cyBzaGlwIG1vYmlsZSBvdmVycmlkZXMga2V5ZWQgdG8gdGhlIGxlZ2FjeSBuYW1lcyAtXG4gICBfcmVzcG9uc2l2ZW5lc3NfdHdlYWtzLnNjc3M6MTk1LTIxNSBhbmQgOjQ3MS00ODcsIGFuZFxuICAgZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2Nzczo1ODIwLTU4MzksIHRoZSBsYXN0IG9mIHRob3NlIHdpdGggIWltcG9ydGFudFxuICAgZnJvbSBhIGJ1bmRsZSB0aGF0IGxvYWRzIGFmdGVyIHRoaXMgb25lLiBOb25lIG9mIHRoZW0gbWF0Y2ggLnByb2dyZXNzLW92ZXJ2aWV3LFxuICAgc28gdGhlIGJsb2NrIGdldHMgdG8gc3RhdGUgaXRzIG93biBicmVha3BvaW50cyBpbnN0ZWFkIG9mIGZpZ2h0aW5nIHRoZW0uXG5cbiAgIFByb2dyZXNzIHRhYiBvbmx5LiBUaGlzIGNhcmQgdXNlZCB0byBzZXJ2ZSB0aGUgUHJvZ3JhbXMgdGFiIGFzIHdlbGwsIHRocm91Z2hcbiAgIGEgc2Vjb25kIGNoYXJ0VHlwZSA9PT0gJ2JhcicgYnJhbmNoIHRoYXQga2VwdCB0aGUgbGVnYWN5IGBjb2x1bW4tY29udGFpbmVyXG4gICBsaW5lLWNoYXJ0YCBjbGFzc2VzIChzY29yZUJhckNoYXJ0IGhhZCBubyByZXNwb25zaXZlIHBhdGgsIHNvXG4gICBfY2hhcnRpbmcuc2NzczoyOS0zNiBzaXplZCBpdCkgcGx1cyBhIC0tbGVnYWN5IG1vZGlmaWVyIGF0IDAsMiwwIHRvIGJlYXRcbiAgIF9yZXNwb25zaXZlbmVzc190d2Vha3Muc2NzcydzIGAubGluZS1jaGFydCB7IGZsZXgoMikgfWAgb24gc291cmNlIG9yZGVyLiBUaGVcbiAgIFByb2dyYW1zIHRhYiBoYXMgaXRzIG93biBwYWlyIG9mIGNhcmRzIG5vdyAtIHNlZSBfcHJvZ3JhbXNfb3ZlcnZpZXcuc2NzcyBhbmRcbiAgIF9wcm9ncmFtc19jb21wbGV0aW9uLnNjc3MgLSBzbyB0aGF0IGJyYW5jaCwgaXRzIG1vZGlmaWVyIGFuZCB0aGVcbiAgIGNoYXJ0SW5mby50eXBlID09PSAzIHRpbGVzIGFyZSBhbGwgZ29uZSwgYW5kIG5vdGhpbmcgaW4gdGhpcyBmaWxlIGhhcyB0b1xuICAgc2hhcmUgc3BlY2lmaWNpdHkgd2l0aCBfY2hhcnRpbmcuc2NzcyBhbnkgbW9yZS5cblxuICAgVGhlIHZhbHVlcyBhcmUgZGVsaWJlcmF0ZWx5IG5ldXRyYWwuIFRoZSBsZWdhY3kgYmxvY2sgaW50ZXJwb2xhdGVkXG4gICAucmVkLXRleHQgLyAueWVsbG93LXRleHQgLyAuZ3JlZW4tdGV4dCAoX2Jhc2Uuc2NzczozMTctMzIzKSBvbnRvIGV2ZXJ5IHNjb3JlXG4gICBmcm9tIHRoZSBBUEkncyByaXNrQ29sb3I7IGhlcmUgdGhlIGJhciB1bmRlcm5lYXRoIGNhcnJpZXMgdGhlIGJhbmQgaW5zdGVhZFxuICAgYW5kIHRoZSBudW1iZXIgc3RheXMgJGJsYWNrLTgwMC4gVGhhdCBpcyB3aHkgdGhlIGJhciBtb2RpZmllcnMgcmVzdGF0ZSB0aGVcbiAgIHBhbGV0dGUgYXMgYmFja2dyb3VuZC1jb2xvciByYXRoZXIgdGhhbiByZXVzaW5nIHRob3NlIHRleHQgY2xhc3NlcyAtIHRoZVxuICAgY29sb3VyIGNvZGluZyBtb3ZlZCwgaXQgZGlkIG5vdCBnbyBhd2F5LiBUaWxlcyB3aG9zZSB2YWx1ZSBoYXMgbm8gMC0xMDBcbiAgIHNjYWxlIHRoZXJlZm9yZSBoYXZlIG5vIGNvbG91ciBjdWUgYXQgYWxsLCB3aGljaCBpcyBjb3JyZWN0OiB0aGV5IG5ldmVyIGhhZFxuICAgYSBtZWFuaW5nZnVsIG9uZS5cblxuICAgQ29uc2VxdWVuY2Ugd29ydGgga25vd2luZyBpZiB5b3UgcmUtYWRkIGEgdGV4dCBjbGFzcyBoZXJlOiB0aG9zZSBzZWxlY3RvcnNcbiAgIGFyZSAwLDEsMCBhbmQgX2Jhc2Uuc2NzcyBpbXBvcnRzIGZpcnN0LCBzbyBhbiAwLDEsMCBgY29sb3JgIGluIHRoaXMgZmlsZVxuICAgd2lucyBhbmQgd291bGQgc2lsZW50bHkgZmxhdHRlbiB0aGVtIGFnYWluLlxuXG4gICBUaGUgY2hhcnQgY2FudmFzIGlzIG1lYXN1cmVkLCBub3Qgc2l6ZWQuIHNjb3JlTGluZUNoYXJ0IHJlYWRzIF9fY2hhcnQtYm94J3NcbiAgIGNsaWVudFdpZHRoL2NsaWVudEhlaWdodCBhbmQgd3JpdGVzIHRoZSByZXN1bHQgb250byB0aGUgY2FudmFzLCBzbyB0aGUgYm94XG4gICBuZWVkcyBhbiBleHBsaWNpdCBoZWlnaHQgKHJlYWRpbmcgdGhlIGNhbnZhcydzIG93biBsYWlkLW91dCBoZWlnaHQgd291bGQgYmVcbiAgIGNpcmN1bGFyKSBhbmQgX19jaGFydCBtdXN0IHN0YXkgbWluLXdpZHRoOiAwIC0gYW4gYGF1dG9gIG1pbmltdW0gd291bGQgbGV0XG4gICB0aGUgY2FudmFzIGJlIHBhcnQgb2Ygd2hhdCBzaXplcyB0aGUgdHJhY2sgaXQgaXMgYmVpbmcgbWVhc3VyZWQgYWdhaW5zdC5cbiAgIFNhbWUgY29udHJhY3QgX3Byb2dyZXNzX3N1bW1hcnkuc2NzczoxNC0yMiBkb2N1bWVudHMgZm9yIHRoZSBzcGFya2xpbmVzLlxuXG4gICBUcmFwcyB0aGlzIGJ1aWxkIGhhczogbm8gZ2xvYmFsIGJvcmRlci1ib3ggcmVzZXQgKHN0YXRlIGJveC1zaXppbmcgYnkgaGFuZClcbiAgIGFuZCBubyBhdXRvcHJlZml4ZXIuICovXG5cbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjYXB0aW9uIGFuZCBhIFByb2dyZXNzIFN1bW1hcnkgY2FyZCBuYW1lIHJlYWQgYWxpa2UuXG4kcG92LW5ldXRyYWw6ICAgICAjOTI5MjkyOyAgIC8vIGJhciBmaWxsIHdoZW4gdGhlIHNlcnZlciBzZW50IG5vIHJpc2sgY29sb3VyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtaXJyb3JpbmcgY2FudmFzX2NoYXJ0cy5pZGVudGlmeUNvbG9yQnlOYW1lJ3MgZmFsbGJhY2tcblxuLy8gVGhlIGJhciB1bmRlciBhIG51bWJlciBpcyBhIHJlYWRpbmcgb2YgdGhhdCBudW1iZXIncyByaXNrIGJhbmQsIHNvIHRoZXNlIGhhdmVcbi8vIHRvIGFncmVlIHdpdGggdGhlIHRleHQgcGFsZXR0ZSBleGFjdGx5IG9yIHRoZSBiYXIgc3RvcHMgbWVhbmluZyBhbnl0aGluZy5cbi8vIFJlc3RhdGVkIGZyb20gLnJlZC10ZXh0IC8gLnllbGxvdy10ZXh0IC8gLmdyZWVuLXRleHQgKF9iYXNlLnNjc3M6MzE3LTMyMykgLVxuLy8gZGVsaWJlcmF0ZWx5IE5PVCBjYW52YXNfY2hhcnRzLmlkZW50aWZ5Q29sb3JCeU5hbWUncyAjZDE0MDRiIC8gIzM0YjY3OCwgd2hpY2hcbi8vIHRoZSBvdXRnb2luZyBzY29yZS1saW5lLWdyYXBoIGNhbnZhcyB1c2VkIGFuZCB3aGljaCBuZXZlciBtYXRjaGVkIHRoZSBudW1iZXJcbi8vIHByaW50ZWQgYWJvdmUgaXQuXG4kcG92LXBvb3I6ICAgICAgICAjYzQyYTNiO1xuJHBvdi1tb2RlcmF0ZTogICAgI2RmYzAzZjtcbiRwb3YtZ29vZDogICAgICAgICMyMGI3Njk7XG5cbi8vIERpcmVjdGlvbiwgbm90IHNjb3JlIGJhbmQgLSBncmVlbiB1cCAvIHJlZCBkb3duIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSBzY29yZVxuLy8gaXRzZWxmIHJlYWRzLiBTYW1lIHBhaXIgYXMgJHBncy11cCAvICRwZ3MtZG93bi5cbiRwb3YtdXA6ICAgICAgICAgICMyMGI3Njk7XG4kcG92LWRvd246ICAgICAgICAjYzQyYTNiO1xuXG4vLyBUaGUgbGVnZW5kIGhhcyB0byBhZ3JlZSB3aXRoIHRoZSBjaGFydCBpdCBsYWJlbHMsIG9yIGl0IHN0b3BzIGJlaW5nIGEga2V5LlxuLy8gVGhlc2UgYXJlIHNjb3JlTGluZUNoYXJ0J3MgY29sb3JzIHRhYmxlIHJlc3RhdGVkIChTY29yZUxpbmVDaGFydC5qczo2Mi02NykuXG4kcG92LWxlZ2VuZC1zY29yZTogICByZ2JhKDE1MSwgMTA0LCAyMzUsIDAuOSk7XG4kcG92LWxlZ2VuZC1hdmVyYWdlOiByZ2JhKDIwNywgMjE4LCAyMjAsIDAuOSk7XG4kcG92LWxlZ2VuZC10ZWFtOiAgICByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuNzUpO1xuXG5cbi8vIFRoZSBib3ggc2NvcmVMaW5lQ2hhcnQgbWVhc3VyZXMuIENoYW5naW5nIHRoZXNlIGNoYW5nZXMgdGhlIGNoYXJ0J3MgYXNwZWN0XG4vLyByYXRpbyBkaXJlY3RseSAtIHRoZXJlIGlzIG5vIG1haW50YWluQXNwZWN0UmF0aW8gaW4gcGxheS5cbiRwb3YtY2hhcnQtaDogICAgIDMwMHB4O1xuJHBvdi1jaGFydC1oLXNtOiAgMjIwcHg7XG5cbiRwb3YtY29sLWdhcDogICAgIDMycHg7XG4kcG92LXRpbGUtZ2FwLXg6ICAxNnB4O1xuJHBvdi10aWxlLWdhcC15OiAgMjBweDtcbiRwb3YtYmFyLWg6ICAgICAgIDVweDtcbi8vIEZpeGVkIHJhdGhlciB0aGFuIGZpbGxpbmcgdGhlIHRpbGUsIHNvIGEgYmFyIHJlYWRzIHRoZSBzYW1lIGxlbmd0aCB3aGV0aGVyXG4vLyBpdHMgdHJhY2sgc2l0cyBpbiBhIDMtdXAgZ3JpZCBvciBhIDItdXAgb25lLiBDYXBwZWQgYXQgdGhlIHRyYWNrIHdpZHRoIGJlbG93LFxuLy8gc2luY2UgdGhlIG5hcnJvd2VzdCB0aWxlcyBmYWxsIHVuZGVyIHRoaXMuXG4kcG92LWJhci13OiAgICAgICAxNjBweDtcblxuLy8gVGhlIHRpcCBiYW5uZXIncyBsYXZlbmRlciwgYW5kIHRoZSBDVEEncyBiYWNrZ3JvdW5kIHNvIGl0IHJlYWRzIGFzIHBhcnQgb2Zcbi8vIHRoZSBzYW1lIHN1cmZhY2UgcmF0aGVyIHRoYW4gYSB3aGl0ZSBjaGlwIHNpdHRpbmcgb24gdG9wIG9mIGl0LiBDbG9zZSB0byBidXRcbi8vIGRpc3RpbmN0IGZyb20gJHB1cnBsZS01MCAoI2Y5ZjhmZikgLSBub3QgYSBzdWJzdGl0dXRlIGZvciBpdC5cbiRwb3YtYmFubmVyLWJnOiAgICNmOGY1ZmY7XG5cbi5wcm9ncmVzcy1vdmVydmlldyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYm94LXNoYWRvdzogJHNoYWRvdy1jYXJkO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvLyBNYXRjaGVzIC5wcm9ncmVzcy1zdW1tYXJ5IGFuZCAucHJvZ3Jlc3MtZGV0YWlsczogLnZpZXctY29udGFpbmVyLmNvbHVtbiBpc1xuICAvLyBhIGZsZXggY29sdW1uLCBhbmQgYSBncm93aW5nIGl0ZW0gd291bGQgZHJhdyBhbiBlbXB0eSB3aGl0ZSB0YWlsIHVuZGVyIHRoZVxuICAvLyBiYW5uZXIuXG4gIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAvLyBDbGVhcnMgLnByb2dyZXNzLXJlcG9ydC1vcHRpb25zIGFib3ZlLiBUaGUgYm90dG9tIGdhcCBpcyBsZWZ0IHRvXG4gIC8vIC5wcm9ncmVzcy1zdW1tYXJ5LCB3aGljaCBmb2xsb3dzIGFuZCBjYXJyaWVzIGl0cyBvd24gbWFyZ2luLXRvcC5cbiAgbWFyZ2luOiAyMHB4IDAgMDtcbiAgcGFkZGluZzogMjBweDtcblxuICAmX190aXRsZSB7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgbWFyZ2luOiAwIDAgMjBweDtcbiAgfVxuXG4gIC8vIGZsZXgtc3RhcnQsIG5vdCB0aGUgZGVmYXVsdCBzdHJldGNoOiB0aGUgdGlsZXMgZ3JpZCBpcyBzaG9ydGVyIHRoYW4gdGhlXG4gIC8vIGNoYXJ0IG9uIG1vc3QgcmVwb3J0cywgYW5kIGEgc3RyZXRjaGVkIGdyaWQgd291bGQgc3ByZWFkIGl0cyByb3dzIHRvIGZpbGxcbiAgLy8gdGhlIGNoYXJ0J3MgaGVpZ2h0IGluc3RlYWQgb2Ygc2l0dGluZyBhdCB0aGUgdG9wIG9mIHRoZSBjYXJkLlxuICAmX19ib2R5IHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG4gICAgZ2FwOiAkcG92LWNvbC1nYXA7XG4gIH1cblxuICAvLyAxIDEgMCByYXRoZXIgdGhhbiAxIDEgYXV0byBzbyB0aGUgY2hhcnQgYW5kIHRoZSB0aWxlcyBzcGxpdCB0aGUgcm93IGV2ZW5seVxuICAvLyByZWdhcmRsZXNzIG9mIGhvdyB3aWRlIHRoZSB0aWxlcycgY29udGVudCB3YW50cyB0byBiZS4gbWluLXdpZHRoOiAwIGlzXG4gIC8vIGxvYWQtYmVhcmluZyBmb3IgdGhlIGNhbnZhcyBtZWFzdXJlbWVudCAtIHNlZSB0aGUgZmlsZSBoZWFkZXIuXG4gICZfX2NoYXJ0IHtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMSAwKTtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX19jaGFydC1ib3gge1xuICAgIGhlaWdodDogJHBvdi1jaGFydC1oO1xuICB9XG5cbiAgLy8gTm8gd2lkdGggb3IgaGVpZ2h0IGhlcmU6IHNjb3JlTGluZUNoYXJ0IG93bnMgYm90aCwgYW5kIENoYXJ0LmpzIDEueCBwaW5zXG4gIC8vIHRoZSByZXNvbHZlZCB2YWx1ZXMgaW5saW5lIGFueXdheSAocmV0aW5hU2NhbGUgd3JpdGVzIHN0eWxlLndpZHRoIGluIHB4KSxcbiAgLy8gc28gYSBgd2lkdGg6IDEwMCVgIHdvdWxkIG9ubHkgc3Vydml2ZSB1bnRpbCBmaXJzdCBwYWludC5cbiAgJl9fY2hhcnQtY2FudmFzIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gICZfX2xlZ2VuZCB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApO1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gIH1cblxuICAvLyBBZGphY2VudC1zaWJsaW5nIG1hcmdpbiByYXRoZXIgdGhhbiBhIGdhcCBvbiB0aGUgY29udGFpbmVyLCBzbyBhIHdyYXBwZWRcbiAgLy8gc2Vjb25kIGxpbmUgZG9lcyBub3QgaW5oZXJpdCBhIGxlYWRpbmcgaW5kZW50LlxuICAmX19sZWdlbmQtaXRlbSB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG5cbiAgICAmICsgJiB7XG4gICAgICBtYXJnaW4tbGVmdDogMjRweDtcbiAgICB9XG4gIH1cblxuICAmX19sZWdlbmQtZG90IHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgd2lkdGg6IDhweDtcblxuICAgICYtLXNjb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwb3YtbGVnZW5kLXNjb3JlO1xuICAgIH1cblxuICAgIC8vIFRoZSBjaGFydCBkcmF3cyB0aGlzIGF0IDAuNSBhbHBoYSBhcyBhIGZpbGxlZCBiYW5kLCB3aGVyZSB0aGUgYXJlYSBnaXZlc1xuICAgIC8vIGl0IHByZXNlbmNlLiBBbiA4cHggZG90IGF0IHRoYXQgYWxwaGEgaXMgaW52aXNpYmxlIG9uIHdoaXRlLCBzbyB0aGUga2V5XG4gICAgLy8gY2FycmllcyB0aGUgc2FtZSBodWUgYXQgYSBsZWdpYmxlIG9wYWNpdHkuXG4gICAgJi0tYXZlcmFnZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcG92LWxlZ2VuZC1hdmVyYWdlO1xuICAgIH1cblxuICAgICYtLXRlYW0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBvdi1sZWdlbmQtdGVhbTtcbiAgICB9XG4gIH1cblxuICAmX19sZWdlbmQtbGFiZWwge1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICB9XG5cbiAgLy8gVGhyZWUgZml4ZWQgdHJhY2tzIHJhdGhlciB0aGFuIGF1dG8tZmlsbDogdGhlIHRpbGUgc2V0IGlzIGEga25vd24gMS02IHBlclxuICAvLyByZXBvcnQgdHlwZSBhbmQgdGhlIGRlc2lnbiBwaW5zIEF2ZXJhZ2UgLyBNaW4gLyBNYXggdG8gb25lIHJvdy5cbiAgLy8gbWlubWF4KDAsIDFmcikgcmF0aGVyIHRoYW4gMWZyIHNvIGEgbG9uZyB2YWx1ZSBjYW5ub3Qgd2lkZW4gaXRzIHRyYWNrLlxuICAmX190aWxlcyB7XG4gICAgQGluY2x1ZGUgZmxleCgxIDEgMCk7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6ICRwb3YtdGlsZS1nYXAteSAkcG92LXRpbGUtZ2FwLXg7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gIC8vIEEgY29sdW1uIHNvIF9fYmFyIGNhbiBiZSBwdXNoZWQgdG8gdGhlIGJvdHRvbSB3aXRoIG1hcmdpbi10b3A6IGF1dG8uIFRoYXRcbiAgLy8gaXMgd2hhdCBrZWVwcyB0aGUgYmFycyBhY3Jvc3MgYSByb3cgb24gb25lIGJhc2VsaW5lIGV2ZW4gdGhvdWdoIHRoZSB2YWx1ZVxuICAvLyByb3dzIGFib3ZlIHRoZW0gZGlmZmVyIGluIGhlaWdodCAoYSB0aWxlIHdpdGggYSB0cmVuZCBjaGlwIGlzIG5vIHRhbGxlclxuICAvLyB0aGFuIG9uZSB3aXRob3V0LCBidXQgYSB3cmFwcGVkIGxhYmVsIGlzKS5cbiAgJl9fdGlsZSB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gICZfX3RpbGUtaGVhZCB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgZ2FwOiA0cHg7XG4gIH1cblxuICAmX190aWxlLWxhYmVsIHtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgfVxuXG4gICZfX3ZhbHVlLXJvdyB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbjogNHB4IDAgMTJweDtcbiAgfVxuXG4gICZfX3ZhbHVlIHtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgfVxuXG4gIC8vIE5vIGlubGluZS1mbGV4IG1peGluIGluIF9taXhpbnMuc2Nzczsgc3RhdGVkIHBsYWlubHkgdGhlIHdheVxuICAvLyAucHJvZ3Jlc3Mtc3VtbWFyeV9fY2hhbmdlIGFuZCAuZGFpbHktcmVzdWx0c19fY2hhbmdlIGFscmVhZHkgZG8uXG4gIC8vXG4gIC8vIFRoZSBiYXNlIGNvbG91ciBpcyB0aGUgbmV1dHJhbCBvbmUsIGZvciB0aGUgVHJhaW5pbmcgTG9hZCAlIENoYW5nZSB0aWxlLFxuICAvLyB3aGVyZSBhIHJpc2UgaXMgbmVpdGhlciBnb29kIG5vciBiYWQgYW5kIHRoZSBhcnJvdyBvbmx5IHN0YXRlcyBkaXJlY3Rpb24uXG4gIC8vIFRoZSB0d28gbW9kaWZpZXJzIGJlbG93IGFyZSBlcXVhbCBzcGVjaWZpY2l0eSBhbmQgZGVjbGFyZWQgYWZ0ZXIsIHNvIHRoZXlcbiAgLy8gdGFrZSBpdCBiYWNrIHdoZXJldmVyIHRoZSBkaXJlY3Rpb24gZG9lcyBjYXJyeSBhIHZlcmRpY3QuXG4gICZfX2NoYW5nZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGdhcDogM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgJi0tdXAge1xuICAgICAgY29sb3I6ICRwb3YtdXA7XG4gICAgfVxuXG4gICAgJi0tZG93biB7XG4gICAgICBjb2xvcjogJHBvdi1kb3duO1xuICAgIH1cbiAgfVxuXG4gIC8vIEJvdGggZ2x5cGhzIHN0cm9rZSB3aXRoIGN1cnJlbnRDb2xvciwgc28gdGhlIG1vZGlmaWVyIGFib3ZlIGlzIHdoYXQgdGludHNcbiAgLy8gdGhlbS5cbiAgJl9fdHJlbmQtaWNvbiB7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIHdpZHRoOiAxNHB4O1xuICB9XG5cbiAgLy8gbWFyZ2luLXRvcDogYXV0byBwaW5zIHRoZSBiYXIgdG8gdGhlIHRpbGUncyBib3R0b20gZWRnZS4gT25seSB0aWxlcyB0aGF0XG4gIC8vIGhhdmUgb25lIGFyZSBhZmZlY3RlZDsgYSB0aWxlIHdob3NlIHZhbHVlIGhhcyBubyAwLTEwMCBzY2FsZSByZW5kZXJzIG5vXG4gIC8vIGJhciBhdCBhbGwgcmF0aGVyIHRoYW4gYW4gZW1wdHkgdHJhY2suXG4gICZfX2JhciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHgtYm9yZGVyLWZhaW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiAkcG92LWJhci1oO1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgLy8gQSBncmlkIHRyYWNrIG5hcnJvd2VyIHRoYW4gJHBvdi1iYXItdyB3b3VsZCBvdGhlcndpc2UgYmUgd2lkZW5lZCBieSB0aGVcbiAgICAvLyBiYXIsIHNpbmNlIHRoZSB0aWxlIGlzIG1pbi13aWR0aDogMCBhbmQgdGhlIGdyaWQgdHJhY2tzIGFyZSBtaW5tYXgoMCwgMWZyKS5cbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogJHBvdi1iYXItdztcbiAgfVxuXG4gIC8vIE5vIG1pbi13aWR0aDogYSBzY29yZSBvZiAwLjAwIG11c3QgcmVhZCBhcyBhbiBlbXB0eSB0cmFjay4gQSB2aXNpYmxlIG51YlxuICAvLyBhdCB6ZXJvIHdvdWxkIGJlIGEgbGllLlxuICAmX19iYXItZmlsbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHBvdi1uZXV0cmFsO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgICYtLXJlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcG92LXBvb3I7XG4gICAgfVxuXG4gICAgJi0teWVsbG93IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwb3YtbW9kZXJhdGU7XG4gICAgfVxuXG4gICAgJi0tZ3JlZW4ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBvdi1nb29kO1xuICAgIH1cblxuICAgIC8vIFBlcmNlbnQgQ29tcGxldGVkIGlzIGEgY29tcGxldGlvbiByYXRlLCBub3QgYSByaXNrIGJhbmQuIC5ibHVlLXRleHQgaXNcbiAgICAvLyBhbHJlYWR5ICM5NzY4RUIsIHNvIHRoZSBudW1iZXIgYW5kIGl0cyBiYXIgc3RpbGwgYWdyZWUuXG4gICAgJi0tcHVycGxlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgIH1cbiAgfVxuXG4gICZfX3Ryb3BoeSB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgZ2FwOiAxMHB4O1xuICAgIG1hcmdpbjogNHB4IDAgMTJweDtcbiAgfVxuXG4gIC8vIEZpbGxzIHdpdGggY3VycmVudENvbG9yLCBzbyB0aGlzIGlzIHdoZXJlIHRoZSBwdXJwbGUgY29tZXMgZnJvbS4gVGhlXG4gIC8vIG91dGdvaW5nIDxpbWcgc3JjPVwiL2ltYWdlcy90cm9waHkuc3ZnXCI+IGNvdWxkIG5vdCBiZSB0aW50ZWQuXG4gICZfX3Ryb3BoeS1pY29uIHtcbiAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgLy8gU2l6ZWQgdG8gdGhlIHZhbHVlJ3MgbGluZSBib3ggYmVzaWRlIGl0IHJhdGhlciB0aGFuIHRvIGl0cyBmb250IHNpemUsIHNvXG4gICAgLy8gdGhlIGdseXBoIGFuZCB0aGUgb3JkaW5hbCBzaGFyZSBhIGhlaWdodC5cbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgd2lkdGg6IDI0cHg7XG4gIH1cblxuICAvLyBNYXRjaGVzIF9fdmFsdWU6IHRoZSBvcmRpbmFsIGlzIGEgdmFsdWUgbGlrZSBhbnkgb3RoZXIsIGFuZCB0aGUgcHVycGxlIGlzXG4gIC8vIHNwZW50IG9uIHRoZSB0cm9waHkgYmVzaWRlIGl0IHJhdGhlciB0aGFuIG9uIHRoZSBudW1iZXIuXG4gICZfX3Ryb3BoeS1wbGFjZSB7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIH1cblxuICAmX19iYW5uZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwb3YtYmFubmVyLWJnO1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHB1cnBsZS0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGdhcDogMTBweDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gIH1cblxuICAmX19iYW5uZXItaWNvbiB7XG4gICAgY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogMjBweDtcbiAgfVxuXG4gIC8vIG1pbi13aWR0aDogMCBzbyB0aGUgY29weSB3cmFwcyByYXRoZXIgdGhhbiBwdXNoaW5nIHRoZSBDVEEgb2ZmIHRoZSBjYXJkLlxuICAmX19iYW5uZXItdGV4dCB7XG4gICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMSBhdXRvKTtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAvLyBUaGUgbGlnaHRidWxiIHJpZGVzIGluc2lkZSB0aGlzIHJvdyByYXRoZXIgdGhhbiBpbiBpdHMgb3duIGNvbHVtbiBiZXNpZGVcbiAgLy8gdGhlIGNvcHkgYmxvY2ssIHNvIHRoZSBpY29uIHNpdHMgb24gdGhlIHRpdGxlIGxpbmUgYW5kIHRoZSBib2R5IHRleHQgc3RhcnRzXG4gIC8vIGZsdXNoIHdpdGggdGhlIGljb24gaW5zdGVhZCBvZiBpbmRlbnRlZCBwYXN0IGl0LlxuICAmX19iYW5uZXItdGl0bGUge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIGNvbG9yOiAkcHVycGxlLTcwMDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBnYXA6IDhweDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgfVxuXG4gIC8vIHByZS1saW5lIHNvIHRoZSBcXG4gYmFrZWQgaW50byBQcm9ncmVzc19PdmVydmlld19UaXBfKl9Cb2R5IHJlbmRlcnMgYXMgYW5cbiAgLy8gYWN0dWFsIGxpbmUgYnJlYWsgaW5zdGVhZCBvZiBjb2xsYXBzaW5nIGxpa2Ugb3JkaW5hcnkgd2hpdGVzcGFjZS5cbiAgJl9fYmFubmVyLWJvZHkge1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG4gIH1cblxuICAvLyBEZXJpdmVkIGZyb20gLnByb2dyZXNzLXJlcG9ydC1lbXB0eV9fY3RhIChfcHJvZ3Jlc3NfcmVwb3J0X3RhYnMuc2NzczozNjEpLFxuICAvLyB3aGljaCBkb2N1bWVudHMgd2h5IGEgYnV0dG9uIGluIHRoaXMgYnVpbGQgbmVlZHMgdGhpcyBtdWNoIHJlc3RhdGluZzpcbiAgLy8gICAtIGBidXR0b25gIGdldHMgbG9jay1oZWlnaHQoNTBweCksIGkuZS4gbWluLWhlaWdodCBBTkQgbWF4LWhlaWdodCwgc28gYVxuICAvLyAgICAgMzZweCBib3ggaGFzIHRvIHJlc3RhdGUgYWxsIHRocmVlIGhlaWdodCBwcm9wZXJ0aWVzLlxuICAvLyAgIC0gX2Jhc2Uuc2NzcyBwdXRzIGEgSGVsdmV0aWNhIHN0YWNrIG9uIGV2ZXJ5IGJ1dHRvbiwgc28gdGhlIGZhbWlseSBoYXNcbiAgLy8gICAgIHRvIGJlIHJlc3RhdGVkIG9yIHRoZSBsYWJlbCBzaWxlbnRseSBmYWxscyBvZmYgTnVkaXN0YS5cbiAgLy8gICAtIGJ1dHRvbiB0ZXh0IGlzIHVwcGVyY2FzZWQgZ2xvYmFsbHkuXG4gIC8vIFdpZHRoIGlzIGNvbnRlbnQtZHJpdmVuIGhlcmUgcmF0aGVyIHRoYW4gdGhlIDE4MHB4IGZpeGVkIHRoZXJlLCBiZWNhdXNlXG4gIC8vIHRoZSBsYWJlbCBpcyBhIHRyYW5zbGF0ZWQgc3RyaW5nIG9mIHVucHJlZGljdGFibGUgbGVuZ3RoLlxuICAmX19jdGEge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICAvLyBObyBnbG9iYWwgYm9yZGVyLWJveCByZXNldCwgc28gdGhlIDFweCBib3JkZXIgYW5kIHRoZSA4LzE2IHBhZGRpbmcgaGF2ZVxuICAgIC8vIHRvIGJlIGZvbGRlZCBpbnRvIHRoZSAzNnB4IGJveCBieSBoYW5kLiBWZXJ0aWNhbCBwYWRkaW5nIGRyb3BwZWQgZnJvbVxuICAgIC8vIDEycHggdG8gOHB4IGFsb25nIHdpdGggdGhlIGhlaWdodCwgb3IgdGhlIDE2cHggY3RhLWljb24gd291bGQgY2xpcC5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGdhcDogOHB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBtaW4taGVpZ2h0OiAzNnB4O1xuICAgIG1heC1oZWlnaHQ6IDM2cHg7XG4gICAgLy8gUHVzaGVkIHJpZ2h0IGJ5IGl0cyBvd24gbWFyZ2luIHJhdGhlciB0aGFuIHNwYWNlLWJldHdlZW4gb24gdGhlIGJhbm5lcixcbiAgICAvLyBzbyB0aGUgY29weSBibG9jayBrZWVwcyB0aGUgc3BhY2UgdGhlIENUQSBkb2VzIG5vdCBuZWVkLlxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgIC8vIFNhbWUgc3VyZmFjZSBhcyB0aGUgYmFubmVyIGl0IHNpdHMgb24sIG5vdCBhIHdoaXRlIGNoaXAgb24gdG9wIG9mIGl0LlxuICAgIGJhY2tncm91bmQ6ICRwb3YtYmFubmVyLWJnO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRidG4tYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEtd2ViJywgJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmX19jdGEtaWNvbiB7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIHdpZHRoOiAxNnB4O1xuICB9XG59XG5cbi8vIEJldHdlZW4gdGhlc2UgdHdvIHdpZHRocyB0aGUgcGFnZSBjb2x1bW4gaXMgbmFycm93IGVub3VnaCB0aGF0IGEgY2hhcnQgYW5kIGFcbi8vIDMtdXAgZ3JpZCBiZXNpZGUgaXQgYm90aCBjb21lIHVwIHNob3J0LCBidXQgbm90IG5hcnJvdyBlbm91Z2ggdG8ganVzdGlmeVxuLy8gc3RhY2tpbmcuIERyb3AgdGhlIGdyaWQgdG8gdHdvIHRyYWNrcyBhbmQgbGV0IHRoZSBjaGFydCBrZWVwIHRoZSByb3cuXG5AaW5jbHVkZSByZXNwb25kKHRhYmxldCkge1xuICAucHJvZ3Jlc3Mtb3ZlcnZpZXcge1xuICAgICZfX2JvZHkge1xuICAgICAgZ2FwOiAyMHB4O1xuICAgIH1cblxuICAgICZfX3RpbGVzIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChtb2JpbGUpIHtcbiAgLnByb2dyZXNzLW92ZXJ2aWV3IHtcbiAgICBwYWRkaW5nOiAxNnB4O1xuXG4gICAgJl9fYm9keSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIH1cblxuICAgICZfX2NoYXJ0IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9fY2hhcnQtYm94IHtcbiAgICAgIGhlaWdodDogJHBvdi1jaGFydC1oLXNtO1xuICAgIH1cblxuICAgICZfX3RpbGVzIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC8vIFRoZSBDVEEgZHJvcHMgb250byBpdHMgb3duIGxpbmUgdW5kZXIgdGhlIGNvcHkgcmF0aGVyIHRoYW4gc3F1ZWV6aW5nIHRoZVxuICAgIC8vIGJhbm5lciB0ZXh0IHRvIG5vdGhpbmcuXG4gICAgJl9fYmFubmVyIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LXdyYXAod3JhcCk7XG4gICAgfVxuXG4gICAgJl9fYmFubmVyLXRleHQge1xuICAgICAgLy8gV2l0aG91dCBhIGJhc2lzIHdpZGUgZW5vdWdoIHRvIGZvcmNlIHRoZSB3cmFwIHRoZSBDVEEgc3RheXMgb24gdGhlXG4gICAgICAvLyBmaXJzdCBsaW5lIGFuZCB0aGUgY29weSBjb2xsYXBzZXMgdG8gb25lIHdvcmQgcGVyIGxpbmUuXG4gICAgICBAaW5jbHVkZSBmbGV4KDEgMSAxMDAlKTtcbiAgICB9XG5cbiAgICAmX19jdGEge1xuICAgICAgbWFyZ2luOiAxMnB4IDAgMCBhdXRvO1xuICAgIH1cbiAgfVxufVxuIiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIi8qIFRoZSBQcm9ncmFtcyB0YWIncyBcIk92ZXJ2aWV3XCIgY2FyZCwgYW5kIHRoZSByb3cgdGhhdCBob2xkcyBpdCBiZXNpZGVcbiAgIFwiUHJvZ3JhbSBDb21wbGV0aW9uXCIgKC9yZXBvcnRzLzphdGhsZXRlSWQsIHZpZXdzL3Byb2dyZXNzcmVwb3J0Lmh0bWwsIHVuZGVyXG4gICB2bS5hY3RpdmVUYWIgPT09ICdwcm9ncmFtcycpLlxuXG4gICBJdHMgb3duIGJsb2NrIHJhdGhlciB0aGFuIGEgbW9kaWZpZXIgb2YgLnByb2dyZXNzLW92ZXJ2aWV3LCBmb3IgdGhlIHNhbWVcbiAgIHJlYXNvbiBfcHJvZ3JhbXNfZGV0YWlscy5zY3NzIGlzIGl0cyBvd24gYmxvY2sgcmF0aGVyIHRoYW4gYSBtb2RpZmllciBvZlxuICAgX3Byb2dyZXNzX2RldGFpbHMuc2NzczogdGhlIHR3byBjYXJkcyBzaGFyZSBhIHNoZWxsIC0gYm9yZGVyLCByYWRpdXMsXG4gICBzaGFkb3csIHRpdGxlIG1ldHJpY3MgLSBhbmQgbm90aGluZyBlbHNlLiAucHJvZ3Jlc3Mtb3ZlcnZpZXcgaXMgYSBtZWFzdXJlZFxuICAgY2FudmFzIGJlc2lkZSBhIHRocmVlLWNvbHVtbiB0aWxlIGdyaWQ7IHRoaXMgaXMgYSBjb21wdXRlZCBTVkcgYmVzaWRlIGFcbiAgIHN0YWNrZWQgdGlsZSBjb2x1bW4sIHdpdGggYSBsZWdlbmQgdW5kZXIgYm90aC4gU2hhcmluZyBhIGNsYXNzIHdvdWxkIG1lYW5cbiAgIGNhcnJ5aW5nIHRoZSBjYW52YXMtbWVhc3VyZW1lbnQgY29udHJhY3QgKF9fY2hhcnQtYm94J3MgZXhwbGljaXQgaGVpZ2h0LFxuICAgX19jaGFydCdzIG1pbi13aWR0aDogMCkgaW50byBhIGNhcmQgdGhhdCBoYXMgbm8gY2FudmFzIGluIGl0LlxuXG4gICBUaGF0IHNwbGl0IGlzIGFsc28gd2hhdCBsZXQgLnByb2dyZXNzLW92ZXJ2aWV3IGRyb3AgaXRzIFByb2dyYW1zIGJyYW5jaFxuICAgZW50aXJlbHkgLSB0aGUgYmFyIGNoYXJ0LCBpdHMgLS1sZWdhY3kgbmV1dHJhbGlzaW5nIHJ1bGVzIGFuZCB0aGVcbiAgIGNoYXJ0SW5mby50eXBlID09PSAzIHRpbGVzIGFsbCB3ZW50IHdpdGggaXQuXG5cbiAgIFRoZSBzaGVsbCBjb25zdGFudHMgYXJlIHJlc3RhdGVkIHJhdGhlciB0aGFuIGltcG9ydGVkLCBiZWNhdXNlIFNDU1NcbiAgIHZhcmlhYmxlcyBhcmUgZmlsZS1sb2NhbCB1bmxlc3MgaG9pc3RlZCB0byBfZGVzaWduX3Rva2Vucy5zY3NzLiBJZiB5b3UgY2hhbmdlXG4gICB0aGUgY2FyZCByYWRpdXMgb3IgdGl0bGUgbWV0cmljcyBpbiBvbmUgb2YgdGhlIGZvdXIgY2FyZHMgb24gdGhpcyBwYWdlLFxuICAgY2hhbmdlIHRoZW0gaW4gYWxsIGZvdXIgb3IgdGhleSBzdG9wIHJlYWRpbmcgYXMgb25lIGZhbWlseS5cblxuICAgVHJhcHMgdGhpcyBidWlsZCBoYXM6IG5vIGdsb2JhbCBib3JkZXItYm94IHJlc2V0IChzdGF0ZSBib3gtc2l6aW5nIGJ5IGhhbmQpXG4gICBhbmQgbm8gYXV0b3ByZWZpeGVyLiAqL1xuXG5AaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbi8vIFRoZSByaW5nIHBhbGV0dGU6IHRoZSBkb251dCBuYW1lcyBvbmx5IGl0cyB0b3AgdHdvIHByb2dyYW1zIChzZWUgUklOR19MSU1JVFxuLy8gaW4gdGhlIGNvbnRyb2xsZXIpLiBUaGUgbW9zdC1zY2hlZHVsZWQgcHJvZ3JhbSBpcyB0aGUgaW5uZXJtb3N0IHJpbmcgYW5kXG4vLyBnZXRzIHRoZSBicmlnaHRlciBwdXJwbGU7IHRoZSBzZWNvbmQgcHJvZ3JhbSBpcyB0aGUgbmV4dCByaW5nIG91dDsgdGhlXG4vLyByb2xsZWQtdXAgXCJPdGhlclwiLCBpZiB0aGVyZSBpcyBvbmUsIGlzIGFsd2F5cyBvdXRlcm1vc3QgYW5kIGdyZXkuXG4vL1xuLy8gUmVmZXJlbmNlIG9ubHkgLSB0aGUgbGVnZW5kIGRvdHMgYW5kIHRoZSBhcmNzIHRoZW1zZWx2ZXMgYm90aCBnZXQgdGhlaXJcbi8vIGNvbG91ciBmcm9tIHJpbmcuY29sb3IgaW4gUHJvZ3Jlc3NSZXBvcnRDb250cm9sbGVyLmpzJ3MgUklOR19DT0xPUlMsIHNpbmNlXG4vLyB0aGUgU1ZHIG5lZWRzIHRoZSB2YWx1ZSBhcyBhbiBhdHRyaWJ1dGUgYW5kIGNhbm5vdCByZWFkIGEgU2FzcyB2YXJpYWJsZS5cbi8vIFRoZXNlIHRocmVlIGV4aXN0IHNvIGEgY29sb3VyIGNoYW5nZSBoYXMgb25lIG9idmlvdXMgcGxhY2UgdG8gc3RhcnQsIGJ1dFxuLy8gY2hhbmdpbmcgdGhlbSBoZXJlIGRvZXMgbm90aGluZyBvbiBpdHMgb3duOiB1cGRhdGUgUklOR19DT0xPUlMgdG8gbWF0Y2gsIG9yXG4vLyB0aGUgbGVnZW5kIGFuZCB0aGUgYXJjcyBpdCBpcyBtZWFudCB0byBrZXkgZHJpZnQgYXBhcnQuIEFsbCB0aHJlZSBhcmVcbi8vIGV4aXN0aW5nIHRva2Vucywgc28gYSBjaGFuZ2UgYmVsb25ncyBpbiBfZGVzaWduX3Rva2Vucy5zY3NzIChhbmQgdGhlIHNpYmxpbmdcbi8vIGFwcCdzIHRhaWx3aW5kIGNvbmZpZykgZmlyc3QuXG4kcGdvLXJpbmctMTogICAgICRwdXJwbGUtNTAwOyAgLy8gIzk3NjhlYlxuJHBnby1yaW5nLTI6ICAgICAkcHVycGxlLTkwMDsgIC8vICMzMjI1NGZcbiRwZ28tcmluZy1vdGhlcjogJGJsYWNrLTQwMDsgICAvLyAjYjBiMGIwXG5cbi8vIFRoZSB1bmZpbGxlZCBwYXJ0IG9mIGV2ZXJ5IHJpbmcuIE9uZSB2YWx1ZSBmb3IgYWxsIG9mIHRoZW0sIHNvIGEgc2hvcnQgYXJjXG4vLyByZWFkcyBhcyBhIHNob3J0IGFyYyByYXRoZXIgdGhhbiBhcyBhIGRpZmZlcmVudGx5LWNvbG91cmVkIHJpbmcuXG4kcGdvLXRyYWNrOiAjZjBlZWY1O1xuXG4vLyBQZXIgZGVzaWduOiB0aGUgbGVnZW5kJ3Mgb3duIHdpZHRoLCBhbmQgYWxzbyAmX19kb251dCdzIC0gdGhlIHR3byBhcmVcbi8vIGNlbnRyZWQgb24gdGhlIHNhbWUgbGluZSwgc28gdGhleSBzaGFyZSBvbmUgY29uc3RhbnQgcmF0aGVyIHRoYW4gZWFjaFxuLy8gaGFyZC1jb2RpbmcgMjM4cHggc2VwYXJhdGVseS4gU2VlICZfX2RvbnV0IGFuZCAmX19sZWdlbmQgYmVsb3cuXG4kcGdvLWxlZ2VuZC13OiAyMzhweDtcblxuLy8gTm8gZml4ZWQgZG9udXQgSEVJR0hUIGhlcmU6IHBlciBkZXNpZ24gKDE0OHB4IHNtYWxsZXN0IHJpbmcsIDlweCBzdHJva2UsXG4vLyA0cHggZ2FwIGJldHdlZW4gcmluZ3MgLSBSSU5HX1JfSU5ORVIvUklOR19TVFJPS0UvUklOR19HQVAgaW4gdGhlXG4vLyBjb250cm9sbGVyKSwgdGhlIGRpYWdyYW0ncyBvd24gc2l6ZSBkZXBlbmRzIG9uIGhvdyBtYW55IHJpbmdzIGEgcmVwb3J0IGhhcyxcbi8vIHNvIGl0cyBoZWlnaHQgaXMgY29tcHV0ZWQgcGVyIHJlcG9ydCAoX3JlbmRlclByb2dyYW1PdmVydmlldydzIGRvbnV0U2l6ZSlcbi8vIGFuZCBib3VuZCBvbnRvIGJvdGggdGhlIHdyYXBwZXIncyBib3ggYW5kIHRoZSBTVkcncyB2aWV3Qm94IGZyb20gdGhlXG4vLyB0ZW1wbGF0ZS4gSXRzIFdJRFRIIGlzIGZpeGVkIGF0ICRwZ28tbGVnZW5kLXcgcmVnYXJkbGVzcyAtIHNlZSAmX19kb251dC5cblxuJHBnby1jb2wtZ2FwOiAgMjhweDtcbiRwZ28tYmFyLWg6ICAgIDZweDtcbiRwZ28tYmFyLXc6ICAgIDE0MHB4O1xuXG4vLyBUaGUgcm93IHRoYXQgaG9sZHMgdGhpcyBjYXJkIGFuZCAucHJvZ3JhbXMtY29tcGxldGlvbiBzaWRlIGJ5IHNpZGUuXG4vLyAudmlldy1jb250YWluZXIuY29sdW1uIGlzIGEgZmxleCBjb2x1bW4sIHNvIHNpZGUtYnktc2lkZSBuZWVkcyBhIHJvdyBvZiBpdHNcbi8vIG93biAtIGFuZCBvbmUgd3JhcHBlciBhbHNvIGtlZXBzIHRoZSBwYWlyIGFzIGEgc2luZ2xlIGNoaWxkIG9mIC5wcmludC1ub2RlLFxuLy8gd2hpY2ggaXMgdGhlIHVuaXQgdGVzdF9yZXN1bHRzX3BkZiByYXN0ZXJpemVzIG92ZXIuXG4ucHJvZ3JhbXMtb3ZlcnZpZXctcm93IHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhzdHJldGNoKTtcbiAgLy8gTWF0Y2hlcyAucHJvZ3Jlc3Mtb3ZlcnZpZXcncyBvd24gdG9wIG1hcmdpbjogdGhpcyByb3cgcmVwbGFjZXMgdGhhdCBjYXJkIG9uXG4gIC8vIHRoZSBQcm9ncmFtcyB0YWIgYW5kIGhhcyB0byBjbGVhciAucHJvZ3Jlc3MtcmVwb3J0LW9wdGlvbnMgaWRlbnRpY2FsbHkuXG4gIG1hcmdpbjogMjBweCAwIDA7XG4gIGdhcDogMjBweDtcblxuICA+ICoge1xuICAgIC8vIDEgMSAwLCBub3QgMSAxIGF1dG8sIHNvIHRoZSB0d28gY2FyZHMgc3BsaXQgdGhlIHJvdyBldmVubHkgcmVnYXJkbGVzcyBvZlxuICAgIC8vIGhvdyB3aWRlIHRoZWlyIGNvbnRlbnQgd2FudHMgdG8gYmUgLSBhIHR3ZWx2ZS1jb2x1bW4gaGVhdG1hcCB3b3VsZFxuICAgIC8vIG90aGVyd2lzZSB0YWtlIHRoZSByb3cuXG4gICAgQGluY2x1ZGUgZmxleCgxIDEgMCk7XG4gICAgLy8gTG9hZC1iZWFyaW5nLiBXaXRob3V0IGl0IHRoZSBoZWF0bWFwJ3MgaW50cmluc2ljIHdpZHRoIGJlY29tZXMgdGhpc1xuICAgIC8vIGNhcmQncyBtaW5pbXVtIGFuZCB0aGUgcm93IHB1c2hlcyBwYXN0IHRoZSBwYWdlIGNvbHVtbiBpbnN0ZWFkIG9mXG4gICAgLy8gbGV0dGluZyAucHJvZ3JhbXMtY29tcGxldGlvbl9fc2Nyb2xsIHNjcm9sbC4gU2FtZSBjb250cmFjdFxuICAgIC8vIC5wcm9ncmVzcy1zdW1tYXJ5X19jYXJkIGRvY3VtZW50cyBmb3IgaXRzIHNwYXJrbGluZXMuXG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgcmVzcG9uZCh0YWJsZXQpIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICB9XG59XG5cbi5wcm9ncmFtcy1vdmVydmlldyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYm94LXNoYWRvdzogJHNoYWRvdy1jYXJkO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICBwYWRkaW5nOiAyMHB4O1xuICAvLyBQZXIgZGVzaWduOiB0aGlzIGNhcmQgc3RvcHMgZ3Jvd2luZyBhdCA1MjJweCByYXRoZXIgdGhhbiBzcGxpdHRpbmcgdGhlIHJvd1xuICAvLyBldmVubHkgd2l0aCAucHJvZ3JhbXMtY29tcGxldGlvbiBvbiBhIHdpZGUgcGFnZSAtIG5hcnJvd2VyIHRoYW4gdGhhdFxuICAvLyBjYXJkJ3Mgb3duIDYwMnB4IGNhcCAoc2VlIGl0cyBydWxlKSBvbiBwdXJwb3NlLCBzbyBhIHBhZ2Ugd2lkZSBlbm91Z2ggZm9yXG4gIC8vIGJvdGggdG8gaGl0IHRoZWlyIGNhcHMgc3RpbGwgbGVhdmVzIHRoZSBoZWF0bWFwIHRoZSBsYXJnZXIgb2YgdGhlIHR3by5cbiAgbWF4LXdpZHRoOiA1MjJweDtcbiAgLy8gTm8gZml4ZWQgaGVpZ2h0LiBUaGUgRmlnbWEgY29tcCdzIDM0NXB4IGlzIG5vdCBhbiBpbmRlcGVuZGVudCBjb25zdHJhaW50IC1cbiAgLy8gaXQgaXMgd2hhdCB0aGlzIGNhcmQncyBvd24gY29udGVudCAodGl0bGUgKyB0aGUgfjE4M3B4IHR3by1yaW5nIGRvbnV0ICsgYVxuICAvLyAyLXJvdyBsZWdlbmQpIGFkZHMgdXAgdG8gZm9yIHRoZSBjb21tb24gY2FzZSBvZiBleGFjdGx5IHR3byBwcm9ncmFtcy4gQVxuICAvLyB0aGlyZCBwcm9ncmFtIHJvbGxzIGFuIFwiT3RoZXJcIiByb3cgaW50byB0aGUgbGVnZW5kIChzZWUgUklOR19MSU1JVCBpbiB0aGVcbiAgLy8gY29udHJvbGxlciksIHdoaWNoIGlzIGEgZ2VudWluZSBleHRyYSBsaW5lIG9mIGNvbnRlbnQsIHNvIHRoYXQgY2FzZSBpc1xuICAvLyBjb3JyZWN0bHkgYSBsaXR0bGUgdGFsbGVyIHJhdGhlciB0aGFuIHNvbWV0aGluZyB0byBjbGlwIG9yIHBhZCBhcm91bmQuXG5cbiAgJl9fdGl0bGUge1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgIG1hcmdpbjogMCAwIDIwcHg7XG4gIH1cblxuICAvLyBzdHJldGNoLCBub3QgdGhlIG9sZCBmbGV4LXN0YXJ0OiBwZXIgZGVzaWduLCB0aGUgdGlsZXMgY29sdW1uIGZpbGxzIHRoZVxuICAvLyBGVUxMIGhlaWdodCBvZiB0aGlzIHJvdywgZnJvbSB0aGUgdG9wIG9mIHRoZSByaW5ncyB0byB0aGUgYm90dG9tIG9mIHRoZVxuICAvLyBsZWdlbmQgLSBub3QganVzdCBpdHMgb3duIHRocmVlIHRpbGVzJyBuYXR1cmFsIGhlaWdodCBzaXR0aW5nIGF0IHRoZSB0b3BcbiAgLy8gd2l0aCBkZWFkIHNwYWNlIHRyYWlsaW5nIGJlbG93LiBzdHJldGNoIGlzIHdoYXQgbWFrZXMgdGhhdCBwb3NzaWJsZTogaXRcbiAgLy8gaXMgdGhlIG1lY2hhbmlzbSB0aGF0IGhhbmRzICZfX2xlZnQncyBuYXR1cmFsIGhlaWdodCAoZG9udXQgKyBsZWdlbmRcbiAgLy8gdG9nZXRoZXIsIHNpbmNlIHRoZSBsZWdlbmQgbm93IG5lc3RzIGluc2lkZSBpdCAtIHNlZSAmX19sZWZ0IGJlbG93KSB0b1xuICAvLyAmX190aWxlcyBhcyBpdHMgb3duIGhlaWdodCwgd2hpY2ggJl9fdGlsZXMnIG93biBqdXN0aWZ5LWNvbnRlbnQ6XG4gIC8vIHNwYWNlLWJldHdlZW4gdGhlbiBzcHJlYWRzIGl0cyB0aHJlZSB0aWxlcyBhY3Jvc3MgKHNlZSAmX190aWxlcyBiZWxvdykuXG4gIC8vXG4gIC8vIHNwYWNlLWJldHdlZW4gaGVyZSB0b28sIHdpdGggYm90aCBjb2x1bW5zIGEgZml4ZWQgd2lkdGggKCRwZ28tbGVnZW5kLXcgb25cbiAgLy8gJl9fbGVmdCwgMTg4cHggb24gJl9fdGlsZXMgLSBzZWUgJl9fdGlsZXMgYmVsb3cpOiBwZXIgZGVzaWduIHRoZSB0aWxlc1xuICAvLyBjb2x1bW4gc2l0cyBmbHVzaCBhZ2FpbnN0IHRoZSBjYXJkJ3Mgb3duIHJpZ2h0IGVkZ2UgcmF0aGVyIHRoYW4gdHJhaWxpbmdcbiAgLy8gMjhweCBhZnRlciB0aGUgZG9udXQuIDIzOCArIDE4OCBsZWF2ZXMgZXhhY3RseSA1NnB4IG9mIHRoaXMgY2FyZCdzIDQ4MnB4XG4gIC8vIGNvbnRlbnQgd2lkdGggKDUyMiBtYXgtd2lkdGggbWludXMgNDBweCBwYWRkaW5nKSBzcGFyZSwgYW5kIHNwYWNlLWJldHdlZW5cbiAgLy8gaXMgd2hhdCB0dXJucyB0aGF0IDU2cHggaW50byB0aGUgZ2FwIGJldHdlZW4gdGhlIHR3byBjb2x1bW5zIGluc3RlYWQgb2ZcbiAgLy8gZGVhZCBzcGFjZSBhZnRlciB0aGUgdGlsZXMuIGdhcCBzdGF5cyBhcyBhIGZsb29yIHVuZGVyIHRoYXQgLSBzZWUgdGhlXG4gIC8vIG1vYmlsZSBvdmVycmlkZSBiZWxvdyBmb3Igd2h5IGl0IGNhbm5vdCBqdXN0IGJlIHRoZSBvbmx5IHJ1bGUuXG4gICZfX2JvZHkge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhzdHJldGNoKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgICBnYXA6ICRwZ28tY29sLWdhcDtcbiAgfVxuXG4gIC8vIFRoZSByaW5ncyBhbmQgdGhlaXIgbGVnZW5kLCBzdGFja2VkIC0gd2hhdCB1c2VkIHRvIGJlIHR3byBzZXBhcmF0ZVxuICAvLyBjaGlsZHJlbiBvZiAmX19ib2R5ICgmX19kb251dCkgYW5kIG9mIHRoZSBjYXJkIGl0c2VsZiAoJl9fbGVnZW5kKSBhcmUgbm93XG4gIC8vIG5lc3RlZCB0b2dldGhlciBpbiB0aGVpciBvd24gY29sdW1uLiBUaGF0IG5lc3RpbmcgaXMgd2hhdCBsZXRzICZfX2JvZHknc1xuICAvLyBzdHJldGNoIChhYm92ZSkgbWVhc3VyZSBcInRvcCBvZiByaW5ncyB0byBib3R0b20gb2YgbGVnZW5kXCIgYXMgT05FXG4gIC8vIG51bWJlciBhbmQgaGFuZCBpdCB0byAmX190aWxlczogJl9fbGVmdCdzIG93biBuYXR1cmFsIGhlaWdodCBpc1xuICAvLyBkb251dC1oZWlnaHQgKyBnYXAgKyBsZWdlbmQtaGVpZ2h0LCB3aXRoIG5vdGhpbmcgZWxzZSBjb250cmlidXRpbmcgdG8gaXQsXG4gIC8vIHdoaWNoIGlzIGV4YWN0bHkgdGhlIHNwYW4gcGVyIGRlc2lnbiAmX190aWxlcyBpcyBtZWFudCB0byBmaWxsLlxuICAvL1xuICAvLyBObyBleHBsaWNpdCB3aWR0aCBvbiAmX19kb251dC8mX19sZWdlbmQgYW55IG1vcmUgLSBib3RoIGFyZSBmbGV4IGl0ZW1zIG9mXG4gIC8vIHRoaXMgY29sdW1uLCBhbmQgYSBjb2x1bW4ncyBkZWZhdWx0IGFsaWduLWl0ZW1zOiBzdHJldGNoICh1bnNldCBoZXJlLCBzb1xuICAvLyBpdCBhcHBsaWVzKSBhbHJlYWR5IHNpemVzIGVhY2ggb2YgdGhlbSB0byAmX19sZWZ0J3Mgb3duIHdpZHRoLiBPbmUgMjM4cHhcbiAgLy8gaGVyZSBpcyB3aGF0IHVzZWQgdG8gYmUgc3RhdGVkIG9uIGJvdGggb2YgdGhlbSBzZXBhcmF0ZWx5LlxuICAvL1xuICAvLyBzcGFjZS1iZXR3ZWVuIGFnYWluOiBvbiB0aGUgcmFyZSByZXBvcnQgd2hlcmUgJl9fdGlsZXMgKG5vdCB0aGlzIGNvbHVtbilcbiAgLy8gaXMgdGhlIHRhbGxlciBzaWRlIC0gb25seSB3aGVuIHRoZXJlIGlzIGEgc2luZ2xlIHJpbmcgKGEgfjE1N3B4IGRvbnV0XG4gIC8vIHBsdXMgYSBvbmUtcm93IGxlZ2VuZCBjb21lcyB0byBsZXNzIHRoYW4gdGhlIHRpbGVzIGNvbHVtbidzIG93biB+MjEwcHggb2ZcbiAgLy8gZml4ZWQgY29udGVudDogdHdvIHBsYWluIHRpbGVzIHBsdXMgYSB0aGlyZCB3aXRoIGEgcGVyY2VudCBiYXIpIC0gc3RyZXRjaFxuICAvLyBoYW5kcyB0aGlzIGNvbHVtbiB0aWxlcycgZ3JlYXRlciBoZWlnaHQgaW5zdGVhZCwgYW5kIHRoaXMgaXMgd2hhdCB0dXJuc1xuICAvLyB0aGF0IGV4dHJhIGZldyBwaXhlbHMgaW50byBicmVhdGhpbmcgcm9vbSBiZXR3ZWVuIHRoZSBkb251dCBhbmQgdGhlXG4gIC8vIGxlZ2VuZCByYXRoZXIgdGhhbiBkZWFkIHNwYWNlIHRyYWlsaW5nIGFmdGVyIGl0LlxuICAmX19sZWZ0IHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KHNwYWNlLWJldHdlZW4pO1xuICAgIHdpZHRoOiAkcGdvLWxlZ2VuZC13O1xuICB9XG5cbiAgLy8gLS0tLSB0aGUgZG9udXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvLyBUaGUgcG9zaXRpb25pbmcgY29udGV4dCBmb3IgYm90aCB0aGUgY2VudHJlIGxhYmVsIGFuZCB0aGUgaG92ZXIgdG9vbHRpcCxcbiAgLy8gd2hpY2ggYXJlIEhUTUwgb3ZlciB0aGUgU1ZHIHJhdGhlciB0aGFuIDx0ZXh0PiBpbnNpZGUgaXQ6IHRoZSBjZW50cmUgaXNcbiAgLy8gdGhyZWUgZGlmZmVyZW50bHktc3R5bGVkIGxpbmVzIGFuZCB0aGUgdG9vbHRpcCBpcyBhIGJvcmRlcmVkIGNhcmQsIG5laXRoZXJcbiAgLy8gb2Ygd2hpY2ggU1ZHIHRleHQgY2FuIGV4cHJlc3Mgd2l0aG91dCBoYW5kLXBsYWNpbmcgZXZlcnkgYmFzZWxpbmUuXG4gIC8vXG4gIC8vIGhlaWdodCBpcyBzZXQgZnJvbSB0aGUgdGVtcGxhdGUgKHZtLmRvbnV0U2l6ZSkgYW5kIE1VU1Qgc3RheSBleHBsaWNpdDpcbiAgLy8gdGhhdCBpcyB3aGF0IHN0b3BzIHRoaXMgYm94IGZyb20gYmVpbmcgc3RyZXRjaGVkIGJ5ICZfX2xlZnQncyBvd25cbiAgLy8ganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuIGFib3ZlLiBJZiB0aGlzIGV2ZXIgYmVjYW1lIGF1dG8gaW5zdGVhZCxcbiAgLy8gYW55IGV4dHJhIGhlaWdodCAmX19sZWZ0IHBpY2tlZCB1cCBmcm9tICZfX3RpbGVzIHdvdWxkIGluZmxhdGUgdGhlIGRvbnV0XG4gIC8vIGl0c2VsZiByYXRoZXIgdGhhbiBqdXN0IHRoZSBnYXAgYmVsb3cgaXQgLSBhbmQgc2luY2UgJl9fZG9udXQtc3ZnIGlzXG4gIC8vIHdpZHRoL2hlaWdodDogMTAwJSBvZiB0aGlzIGJveCB3aXRoIG5vIHByZXNlcnZlQXNwZWN0UmF0aW8gb3ZlcnJpZGUsIGFcbiAgLy8gdGFsbGVyIGJveCB3b3VsZCBzY2FsZSB0aGUgUklORyBHRU9NRVRSWSB1cCBwYXN0IGl0cyBleGFjdCAxNDhweC85cHgvNHB4XG4gIC8vIHNwZWMgKHNlZSBSSU5HX1JfSU5ORVIgaW4gdGhlIGNvbnRyb2xsZXIpIHRvIGZpbGwgaXQsIHJhdGhlciB0aGFuIGxlYXZpbmdcbiAgLy8gdGhhdCBzcGVjIGFsb25lIHRoZSB3YXkgaXQgaXMgbWVhbnQgdG8uXG4gICZfX2RvbnV0IHtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAvLyB3aWR0aC9oZWlnaHQgMTAwJSBvZiAmX19kb251dCdzIG93biBib3gsIE5PVCBvZiB0aGUgZGlhZ3JhbTogJl9fZG9udXQgaXNcbiAgLy8gJHBnby1sZWdlbmQtdyAoMjM4cHgpIHdpZGUgdmlhICZfX2xlZnQncyBkZWZhdWx0IGFsaWduLWl0ZW1zOiBzdHJldGNoIC1cbiAgLy8gc2VlICZfX2xlZnQgYWJvdmUgLSBidXQgdGhlIGRpYWdyYW0gKHZpZXdCb3gpIGlzIG9ubHkgZXZlciBkb251dFNpemUgd2lkZVxuICAvLyAoMTU3LTIwOXB4KSwgc28gdGhpcyBTVkcgdmlld3BvcnQgaXMgdXN1YWxseSB3aWRlciB0aGFuIGl0cyBvd24gY29udGVudC5cbiAgLy8gVGhhdCB3aWR0aCBtaXNtYXRjaCBpcyB3aGF0IGNlbnRyZXMgdGhlIHJpbmdzIHVuZGVyIHRoZSBsZWdlbmQgcmF0aGVyXG4gIC8vIHRoYW4gc29tZXRoaW5nIHRvIGF2b2lkOiBTVkcncyBkZWZhdWx0IHByZXNlcnZlQXNwZWN0UmF0aW8gKHhNaWRZTWlkXG4gIC8vIG1lZXQsIG5vdCBvdmVycmlkZGVuIGhlcmUpIGNlbnRyZXMgYSB2aWV3Qm94IHRoYXQgZG9lc24ndCBmaWxsIGl0c1xuICAvLyB2aWV3cG9ydCBvbiB3aGljaGV2ZXIgYXhpcyBoYXMgcm9vbSB0byBzcGFyZS4gVGhlIEhFSUdIVCBoYWxmIG9mIHRoYXRcbiAgLy8gcGFpciBtYXRjaGVzIGV4YWN0bHkgKDEwMCUgb2YgJl9fZG9udXQsIGl0c2VsZiBwaW5uZWQgdG8gZG9udXRTaXplIC0gc2VlXG4gIC8vICZfX2RvbnV0J3Mgb3duIG5vdGUpLCBzbyBvbmx5IHRoZSB3aWR0aCBheGlzIGV2ZXIgaGFzIHNwYXJlIHJvb20gdG9cbiAgLy8gY2VudHJlIGludG8uXG4gICZfX2RvbnV0LXN2ZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJl9fcmluZy10cmFjayB7XG4gICAgc3Ryb2tlOiAkcGdvLXRyYWNrO1xuICB9XG5cbiAgLy8gVGhlIGFyYydzIG93biBzdHJva2UsIGRhc2hhcnJheSBhbmQgZGFzaG9mZnNldCBhcmUgYWxsIHNldCBwZXIgcmluZyBmcm9tXG4gIC8vIHRoZSBjb250cm9sbGVyIC0gb25seSB0aGUgaGl0IGFyZWEgYW5kIHRoZSBob3ZlciBhZmZvcmRhbmNlIGxpdmUgaGVyZS5cbiAgLy8gUG9pbnRlciBldmVudHMgbGFuZCBvbiB0aGUgc3Ryb2tlIHJhdGhlciB0aGFuIHRoZSAodW5maWxsZWQpIGludGVyaW9yLFxuICAvLyB3aGljaCBpcyB3aGF0IG1ha2VzIHRoZSBhbm51bHVzIHRoZSBob3ZlciB0YXJnZXQuXG4gICZfX3JpbmctYXJjIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBvcGFjaXR5OiAwLjg1O1xuICAgIH1cbiAgfVxuXG4gIC8vIENlbnRyZWQgYnkgdHJhbnNsYXRpbmcgb2ZmIGl0cyBvd24gc2l6ZSwgbm90IGJ5IGEgZml4ZWQgdG9wL2xlZnQ6IHRoZSB0d29cbiAgLy8gZG9udXQgc2l6ZXMgYWJvdmUgd291bGQgZWFjaCBuZWVkIHRoZWlyIG93biBvZmZzZXRzIG90aGVyd2lzZS4gTm90IGFcbiAgLy8gcG9pbnRlciB0YXJnZXQgLSBpdCBzaXRzIG92ZXIgdGhlIGhvbGUsIGFuZCBzd2FsbG93aW5nIHRoZSBwb2ludGVyIHRoZXJlXG4gIC8vIHdvdWxkIGJsb2NrIG5vdGhpbmcsIGJ1dCBpdCBhbHNvIG92ZXJsYXBzIHRoZSBpbm5lciByaW5nJ3Mgc3Ryb2tlLlxuICAmX19jZW50ZXIge1xuICAgIGxlZnQ6IDUwJTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRvcDogNTAlO1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoLTUwJSwgLTUwJSkpO1xuICB9XG5cbiAgLy8gdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSBpcyBrZXB0IHRob3VnaCB0aGUgZGVzaWduIHNwZWMgYmVsb3cgZG9lc24ndFxuICAvLyBtZW50aW9uIGl0IC0gT3ZlcnZpZXdfVG90YWwncyBvd24gdHJhbnNsYXRpb24gKFwiVG90YWxcIikgaXMgbWl4ZWQtY2FzZSxcbiAgLy8gYW5kIGV2ZXJ5IHJlZmVyZW5jZSByZW5kZXIgc3RpbGwgc2hvd3MgXCJUT1RBTFwiIGluIGNhcHMsIHNvIHRoaXMgaXMgd2hhdFxuICAvLyBpcyBhY3R1YWxseSBkb2luZyB0aGF0LCBub3QgdGhlIGNvcHkuIGxldHRlci1zcGFjaW5nIHNldCB0byAwIHBlciBzcGVjLFxuICAvLyBkcm9wcGluZyB0aGUgMC4wNmVtIGFuIGFsbC1jYXBzIHdvcmQgdXN1YWxseSB3YW50cyBmb3IgcmVhZGFiaWxpdHkgLSBhXG4gIC8vIGRlbGliZXJhdGUgZGVzaWduIGNhbGwsIG5vdCBhbiBvdmVyc2lnaHQsIHNvIGl0IGlzIG5vdCBiZWluZyByZXN0b3JlZC5cbiAgLy9cbiAgLy8gTm8gdGV4dC1hbGlnbiBoZXJlIC0gY2VudGVyZWQsIGluaGVyaXRlZCBmcm9tICZfX2NlbnRlcidzIG93blxuICAvLyB0ZXh0LWFsaWduOiBjZW50ZXIuIEV4cGxpY2l0bHkgcmV2ZXJ0ZWQgb2ZmIHRleHQtYWxpZ246IHJpZ2h0ICh3aGljaFxuICAvLyAmX19jZW50ZXItc3ViIGJlbG93IHN0aWxsIGNhcnJpZXMpOiBcIlRPVEFMXCIgcmVhZHMgYXMgdGhpcyBzdGFjaydzIG93blxuICAvLyBoZWFkaW5nIGFuZCBjZW50ZXJpbmcgaXQgaXMgd2hhdCBrZWVwcyB0aGF0IHJlYWQuXG4gICZfX2NlbnRlci1jYXB0aW9uIHtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDsgLy8gIzZkNmQ2ZFxuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIC8vIE9wZW5zIHVwIHRoZSBnYXAgdG8gJl9fY2VudGVyLXZhbHVlIGJlbG93IGl0LiBUaGUgc3RhY2sgYXMgYSB3aG9sZSBpc1xuICAgIC8vIHN0aWxsIGNlbnRyZWQgaW4gdGhlIGRvbnV0J3MgaG9sZSAoc2VlICZfX2NlbnRlcidzIHRyYW5zbGF0ZSksIHNvIHRoaXNcbiAgICAvLyByZWFkcyBhcyBUT1RBTCBtb3ZpbmcgdXAgcmF0aGVyIHRoYW4gdGhlIHBlcmNlbnRhZ2UgbW92aW5nIGRvd24uXG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAmX19jZW50ZXItdmFsdWUge1xuICAgIGNvbG9yOiAkYmxhY2stNzAwOyAvLyAjNGY0ZjRmXG4gICAgZm9udC1zaXplOiAzMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLy8gVGhlIGRvbmUtY291bnQgaXMgYSBzZXBhcmF0ZSBzcGFuICgmX19jZW50ZXItc3ViLXZhbHVlKSBzbyBpdCBhbG9uZSBjYW5cbiAgLy8gYmUgZm9udC13ZWlnaHQ6IDYwMCB3aGlsZSB0aGUgcmVzdCBvZiB0aGUgbGluZSAtIFwib2Yge3t0b3RhbH19IGRvbmVcIiAtXG4gIC8vIHN0YXlzIDUwMC4gU2VlIHRoZSB0ZW1wbGF0ZTogdGhpcyB1c2VkIHRvIGJlIG9uZSB0cmFuc2xhdGUgc3RyaW5nXG4gIC8vIChYX09mX1lfRG9uZSksIHNwbGl0IGludG8gdGhlIHBsYWluIG51bWJlciBwbHVzIGEgbmV3IE9mX1RvdGFsX0RvbmUga2V5XG4gIC8vIGZvciB0aGUgc3VmZml4IHNvIHRoZSB0d28gY2FuIGNhcnJ5IGRpZmZlcmVudCB3ZWlnaHRzLlxuICAmX19jZW50ZXItc3ViIHtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDsgLy8gIzZkNmQ2ZFxuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIC8vIE9wZW5zIHVwIHRoZSBnYXAgdG8gJl9fY2VudGVyLXZhbHVlIGFib3ZlIGl0LCBzYW1lIG1lY2hhbmlzbSBhc1xuICAgIC8vICZfX2NlbnRlci1jYXB0aW9uJ3Mgb3duIG1hcmdpbi1ib3R0b20uXG4gICAgbWFyZ2luLXRvcDogMnB4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICB9XG5cbiAgLy8gUHVyZSBibGFjayBwZXIgZGVzaWduLCBub3QgYSB0b2tlbiAtIGRlbGliZXJhdGVseSBkYXJrZXIgdGhhblxuICAvLyAmX19jZW50ZXItc3ViJ3Mgb3duICRibGFjay02MDAgKCM2ZDZkNmQpLCBvbiB0b3Agb2YgdGhlIHdlaWdodCBidW1wLCBzb1xuICAvLyB0aGUgZG9uZS1jb3VudCByZWFkcyBhcyB0aGUgZW1waGFzaXNlZCBwYXJ0IG9mIHRoZSBsaW5lIHJhdGhlciB0aGFuIGp1c3RcbiAgLy8gYSBoZWF2aWVyIHZlcnNpb24gb2YgdGhlIHNhbWUgZ3JleS5cbiAgJl9fY2VudGVyLXN1Yi12YWx1ZSB7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxuXG4gIC8vIC0tLS0gdGhlIGhvdmVyIHRvb2x0aXAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLy8gQW5jaG9yZWQgdG8gdGhlIGhvdmVyZWQgcmluZydzIDEyIG8nY2xvY2sgLSBgdG9wYCBjb21lcyBmcm9tIHRoZSBjb250cm9sbGVyXG4gIC8vIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgYm94IC0gcmF0aGVyIHRoYW4gZm9sbG93aW5nIHRoZSBwb2ludGVyOiB0aGUgaGl0XG4gIC8vIGFyZWEgaXMgYSB3aG9sZSBhbm51bHVzLCBzbyBhIHBvaW50ZXItZm9sbG93aW5nIGJ1YmJsZSB3b3VsZCB3YW5kZXIgdGhlXG4gIC8vIGZ1bGwgd2lkdGggb2YgdGhlIGFyYy5cbiAgLy9cbiAgLy8gSXQgaGFuZ3MgRE9XTldBUkQgZnJvbSB0aGF0IHBvaW50LCBvdmVybGFwcGluZyB0aGUgZG9udXQsIHdoaWNoIGlzIGFsc29cbiAgLy8gd2hlcmUgdGhlIGRlc2lnbiBwdXRzIGl0LiBMaWZ0aW5nIGl0IGNsZWFyIGluc3RlYWQgKGEgdHJhbnNsYXRlWSBvZiAtMTAwJVxuICAvLyBvciBtb3JlKSB3b3VsZCBwdXQgdGhlIG91dGVybW9zdCByaW5nJ3MgYnViYmxlIGFib3ZlIHRoZSBjYXJkIGVudGlyZWx5OlxuICAvLyB0aGF0IHJpbmcgYW5jaG9ycyBhdCA0LjUlIG9mIHRoZSBib3gsIGFyb3VuZCAxMXB4IGRvd24sIGFuZCB0aGUgYnViYmxlIGlzXG4gIC8vIHRhbGxlciB0aGFuIHRoYXQuXG4gIC8vXG4gIC8vIFRoZSBob3Jpem9udGFsIC0xMCUgaXMgYSBudWRnZSBvZmYgY2VudHJlLCBub3QgYSBjZW50cmluZzogdGhlIGJ1YmJsZSBpc1xuICAvLyB3aWRlciB0aGFuIHRoZSBhcmMgaXQgcG9pbnRzIGF0IGFuZCByZWFkcyBiZXR0ZXIgZXh0ZW5kaW5nIHJpZ2h0LCBhcyBpblxuICAvLyB0aGUgY29tcC5cbiAgJl9fdGlwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdG9vbHRpcDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxlZnQ6IDUwJTtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBtaW4td2lkdGg6IDE4MHB4O1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB6LWluZGV4OiA1O1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoLTEwJSwgNnB4KSk7XG4gIH1cblxuICAmX190aXAtaGVhZCB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gIH1cblxuICAmX190aXAtZG90IHtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgd2lkdGg6IDhweDtcbiAgfVxuXG4gIC8vIHNwYWNlLWJldHdlZW4gcmF0aGVyIHRoYW4gYSBmaXhlZCBsYWJlbCB3aWR0aDogdGhlIHR3byByb3dzIGFyZSBTY2hlZHVsZWRcbiAgLy8gYW5kIENvbXBsZXRlZCwgYW5kIHRoZSB2YWx1ZSBjb2x1bW4gaGFzIHRvIGxpbmUgdXAgdW5kZXIgd2hpY2hldmVyIGlzXG4gIC8vIGxvbmdlciBpbiB0aGUgYWN0aXZlIGxhbmd1YWdlLlxuICAmX190aXAtcm93IHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBnYXA6IDI0cHg7XG5cbiAgICBzdHJvbmcge1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB9XG4gIH1cblxuICAvLyAtLS0tIHRoZSB0aWxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8vIEZpeGVkIGF0IDE4OHB4IHBlciBkZXNpZ24sIG5vdCAxIDEgMCBhbnkgbW9yZTogYSBmbGV4aWJsZSBjb2x1bW4gd291bGRcbiAgLy8gZmlsbCB3aGF0ZXZlciB0aGUgZG9udXQgbGVhdmVzIGJlaGluZCwgd2hpY2ggaXMgd2hhdCB1c2VkIHRvIHB1dCBpdCByaWdodFxuICAvLyBuZXh0IHRvIHRoZSBkb251dCB3aXRoIG9ubHkgJHBnby1jb2wtZ2FwIGJldHdlZW4gdGhlbS4gQSBmaXhlZCB3aWR0aCBvblxuICAvLyBib3RoIGNvbHVtbnMgaXMgd2hhdCAmX19ib2R5J3Mgc3BhY2UtYmV0d2VlbiBuZWVkcyB0byBwdXNoIHRoaXMgb25lIHRvXG4gIC8vIHRoZSBjYXJkJ3Mgb3duIHJpZ2h0IGVkZ2UgaW5zdGVhZC5cbiAgLy9cbiAgLy8gTm8gZXhwbGljaXQgaGVpZ2h0OiAmX19ib2R5J3MgYWxpZ24taXRlbXM6IHN0cmV0Y2ggKHNlZSBhYm92ZSkgaXMgd2hhdFxuICAvLyBnaXZlcyB0aGlzIGNvbHVtbiBpdHMgaGVpZ2h0LCBtYXRjaGluZyAmX19sZWZ0J3Mgb3duIChkb251dCArIGxlZ2VuZClcbiAgLy8gd2hlbmV2ZXIgdGhhdCBpcyB0aGUgdGFsbGVyIG9mIHRoZSB0d28gLSB0aGUgdXN1YWwgY2FzZSwgc2luY2UgJl9fbGVmdCdzXG4gIC8vIGxlZ2VuZCBhZGRzIGhlaWdodCAmX190aWxlcyBoYXMgbm8gZXF1aXZhbGVudCBvZi4ganVzdGlmeS1jb250ZW50OlxuICAvLyBzcGFjZS1iZXR3ZWVuIGlzIHdoYXQgYWN0dWFsbHkgc3BlbmRzIHRoYXQgZXh0cmEgaGVpZ2h0LCBzcHJlYWRpbmcgdGhlXG4gIC8vIHRocmVlIHRpbGVzIGZyb20gdGhlIHRvcCBvZiB0aGUgcmluZ3MgdG8gdGhlIGJvdHRvbSBvZiB0aGUgbGVnZW5kIGluc3RlYWRcbiAgLy8gb2YgbGVhdmluZyB0aGVtIHBhY2tlZCBhdCBnYXA6MjBweCBlYWNoIHdpdGggZGVhZCBzcGFjZSB0cmFpbGluZyBiZWxvdyAtXG4gIC8vIGdhcCBzdGF5cyBhcyB0aGUgZmxvb3IgZm9yIHdoaWNoZXZlciByZXBvcnQgaGFzICZfX3RpbGVzIGFzIHRoZSB0YWxsZXJcbiAgLy8gY29sdW1uIGluc3RlYWQgKGEgc2luZ2xlIHJpbmcgLSBzZWUgJl9fbGVmdCdzIG5vdGUgYWJvdmUpLCB3aGVyZSB0aGVyZVxuICAvLyBpcyBubyBleHRyYSBoZWlnaHQgZm9yIHNwYWNlLWJldHdlZW4gdG8gc3BlbmQuXG4gICZfX3RpbGVzIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIEBpbmNsdWRlIGZsZXgoMCAwIGF1dG8pO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KHNwYWNlLWJldHdlZW4pO1xuICAgIGdhcDogMjBweDtcbiAgICB3aWR0aDogMTg4cHg7XG4gIH1cblxuICAmX190aWxlLWxhYmVsIHtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDsgLy8gIzRmNGY0ZlxuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgfVxuXG4gICZfX3RpbGUtdmFsdWUge1xuICAgIGNvbG9yOiAkYmxhY2stNzAwOyAvLyAjNGY0ZjRmXG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDM4cHg7XG4gIH1cblxuICAvLyBTYW1lIHRyYWNrL2ZpbGwgbWV0cmljcyBhcyAucHJvZ3JhbXMtZGV0YWlscycgcGVyY2VudCBiYXIsIHNvIHRoZSB0d28gY2FyZHNcbiAgLy8gb24gdGhpcyB0YWIgcmVhZCB0aGUgc2FtZS4gTm8gbWluLXdpZHRoIG9uIHRoZSBmaWxsOiAwJSBtdXN0IHJlYWQgZW1wdHkuXG4gICZfX2JhciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHgtYm9yZGVyLWZhaW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGhlaWdodDogJHBnby1iYXItaDtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6ICRwZ28tYmFyLXc7XG4gIH1cblxuICAmX19iYXItZmlsbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGdyZWVuLTUwMDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxuICAvLyAtLS0tIHRoZSBsZWdlbmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8vIE5lc3RlZCBpbnNpZGUgJl9fbGVmdCBub3csIHVuZGVyIHRoZSBkb251dCByYXRoZXIgdGhhbiB1bmRlciB0aGUgd2hvbGVcbiAgLy8gYm9keSAtIHNlZSAmX19sZWZ0IGFib3ZlIGZvciB3aHkuIE5vIGV4cGxpY2l0IHdpZHRoIGhlcmUgYW55IG1vcmU6IGl0XG4gIC8vIGNvbWVzIGZyb20gJl9fbGVmdCdzIG93biBkZWZhdWx0IGFsaWduLWl0ZW1zOiBzdHJldGNoLCB0aGUgc2FtZSBhc1xuICAvLyAmX19kb251dCdzLCBzbyBib3RoIHN0YXkgJHBnby1sZWdlbmQtdyB3aXRob3V0IGVpdGhlciByZXN0YXRpbmcgaXQuXG4gIC8vXG4gIC8vIFRoZSBsYWJlbCBzdGlsbCBlbGxpcHNpc2VzIHJhdGhlciB0aGFuIHdyYXBwaW5nIChzZWUgJl9fbGVnZW5kLWxhYmVsKSwgc29cbiAgLy8gYSBsb25nIHByb2dyYW0gbmFtZSB0cnVuY2F0ZXMgc29vbmVyIGF0IHRoaXMgd2lkdGggdGhhbiBpdCB3b3VsZCBhdCB0aGVcbiAgLy8gY2FyZCdzIG93biBlZGdlIC0gdGhhdCBpcyB0aGUgdHJhZGUgdGhpcyB3aWR0aCBidXlzLlxuICAmX19sZWdlbmQge1xuICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgZ2FwOiAxMHB4O1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gIH1cblxuICAmX19sZWdlbmQtaXRlbSB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGdhcDogMTBweDtcbiAgfVxuXG4gICZfX2xlZ2VuZC1kb3Qge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBoZWlnaHQ6IDlweDtcbiAgICB3aWR0aDogOXB4O1xuICB9XG5cbiAgLy8gMSAxIGF1dG8gd2l0aCBtaW4td2lkdGg6IDAgc28gYSBsb25nIHByb2dyYW0gbmFtZSBlbGxpcHNpc2VzIHJhdGhlciB0aGFuXG4gIC8vIHB1c2hpbmcgaXRzIGNvdW50IG9mZiB0aGUgY2FyZC5cbiAgJl9fbGVnZW5kLWxhYmVsIHtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMSBhdXRvKTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgJl9fbGVnZW5kLXZhbHVlIHtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gICAgcGFkZGluZzogMTZweDtcblxuICAgIC8vIFRoZSBkb251dCBhbmQgdGhlIHRpbGVzIGVhY2ggd2FudCB0aGUgZnVsbCB3aWR0aCBiZWxvdyB0aGlzIHRpZXI7IHNpZGUgYnlcbiAgICAvLyBzaWRlIHRoZXkgbGVhdmUgdGhlIHRpbGUgdmFsdWVzIHRvbyBuYXJyb3cgdG8gcmVhZC5cbiAgICAvL1xuICAgIC8vIGp1c3RpZnktY29udGVudCByZXNldCB0byBmbGV4LXN0YXJ0OiBzcGFjZS1iZXR3ZWVuIGlzIGEgcm93LWF4aXMgcnVsZS5cbiAgICAvLyBMZWZ0IGFzLWlzIG9uY2UgJl9fYm9keSB0dXJucyBjb2x1bW4sIGl0IHdvdWxkIHB1c2ggdGhlIGRvbnV0IHRvIHRoZVxuICAgIC8vIHRvcCBhbmQgdGhlIHRpbGVzIHRvIHRoZSB2ZXJ5IGJvdHRvbSBvZiB0aGUgc3RhY2sgd2l0aCBhbGwgb2YgdGhlXG4gICAgLy8gbGVmdG92ZXIgdmVydGljYWwgc3BhY2UgbGFuZGluZyBhcyBvbmUgZ2FwIGJldHdlZW4gdGhlbSwgaW5zdGVhZCBvZiB0aGVcbiAgICAvLyBldmVuIDIwcHggc3RhY2tpbmcgdGhpcyB0aWVyIHdhbnRzLlxuICAgICZfX2JvZHkge1xuICAgICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoc3RyZXRjaCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICAgIGdhcDogMjBweDtcbiAgICB9XG5cbiAgICAvLyBDZW50ZXJzICZfX2xlZnQgKHRoZSByaW5ncyArIGxlZ2VuZCBjb2x1bW4sIHN0aWxsIGZpeGVkIGF0XG4gICAgLy8gJHBnby1sZWdlbmQtdyAtIHNlZSAmX19sZWZ0IGFib3ZlKSB3aXRoaW4gdGhlIGZ1bGwtd2lkdGggc3RhY2tlZFxuICAgIC8vIGNvbHVtbiwgcmF0aGVyIHRoYW4gc3RyZXRjaGluZyBpdCBlZGdlIHRvIGVkZ2UuICZfX2RvbnV0IGFuZCAmX19sZWdlbmRcbiAgICAvLyBubyBsb25nZXIgbmVlZCB0aGVpciBvd24gYWxpZ24tc2VsZiBoZXJlOiBuZWl0aGVyIGlzIGEgZGlyZWN0IGZsZXhcbiAgICAvLyBjaGlsZCBvZiAmX19ib2R5IGFueSBtb3JlLCBib3RoIGFyZSAmX19sZWZ0J3MgY2hpbGRyZW4gaW5zdGVhZCwgYW5kXG4gICAgLy8gJl9fbGVmdCdzIG93biBkZWZhdWx0IGFsaWduLWl0ZW1zIGFscmVhZHkga2VlcHMgdGhlbSBhdCBpdHMgZnVsbCB3aWR0aFxuICAgIC8vIHJlZ2FyZGxlc3Mgb2YgdGllci5cbiAgICAmX19sZWZ0IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24tc2VsZihjZW50ZXIpO1xuICAgIH1cblxuICAgIC8vIEZpeGVkIDE4OHB4IGlzIGEgdHdvLWNvbHVtbi1yb3cgY29uY2VybiAtIHNlZSAmX190aWxlcyBhYm92ZS4gU3RhY2tlZCxcbiAgICAvLyB0aGlzIHJldmVydHMgdG8gdGhlIHNhbWUgZnVsbC13aWR0aCwgc3RyZXRjaC1kcml2ZW4gc2l6aW5nICZfX2xlZnRcbiAgICAvLyBhbHJlYWR5IGdldHMgZnJvbSB0aGlzIHRpZXIncyAmX19ib2R5OiBhbGlnbi1pdGVtczpzdHJldGNoLCBvbmNlIGJvZHlcbiAgICAvLyBpcyBhIGNvbHVtbiwgc2l6ZXMgJl9fdGlsZXMgdG8gaXRzIG93biBuYXR1cmFsIGNvbnRlbnQgaGVpZ2h0IHJhdGhlclxuICAgIC8vIHRoYW4gJl9fbGVmdCdzIGhlaWdodCwgc28ganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuIG9uICZfX3RpbGVzXG4gICAgLy8gKHNlZSB0aGF0IGJsb2NrIGFib3ZlKSBoYXMgbm90aGluZyB0byBzcGVuZCBoZXJlIGVpdGhlciAtIHdoaWNoIGlzXG4gICAgLy8gY29ycmVjdCwgc2luY2UgJl9fbGVmdCBhbmQgJl9fdGlsZXMgYXJlIHN0YWNrZWQsIG5vdCBzaWRlIGJ5IHNpZGUsIHNvXG4gICAgLy8gdGhlcmUgaXMgbm8gc2hhcmVkIHJvdyBoZWlnaHQgbGVmdCB0byBmaWxsLlxuICAgICZfX3RpbGVzIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuIiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIi8vIEludGVyIFNlbWkgQm9sZCwgc2VsZi1ob3N0ZWQ6IHRoZSBvbmx5IHdlaWdodCB0aGUgaGVhdG1hcCBjZWxsIGxhYmVscyB1c2UuXG4vLyBMb2FkaW5nIGl0IGZyb20gR29vZ2xlIEZvbnRzIHNlbnQgZXZlcnkgdXNlcidzIElQIGFuZCByZWZlcnJlciB0byBhIHRoaXJkXG4vLyBwYXJ0eSBvbiBldmVyeSBwYWdlLiBMYXRpbiBzdWJzZXQgZnJvbSBAZm9udHNvdXJjZS9pbnRlciA1LjMuMCAoT0ZMLCBzZWVcbi8vIHNyYy9mb250cy9pbnRlci9PRkwudHh0KS5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ0ludGVyJztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIHNyYzogdXJsKCcuLi8uLi9mb250cy9pbnRlci9pbnRlci1sYXRpbi02MDAtbm9ybWFsLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgIHVybCgnLi4vLi4vZm9udHMvaW50ZXIvaW50ZXItbGF0aW4tNjAwLW5vcm1hbC53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG59XG5cbi8qIFRoZSBcIlByb2dyYW0gQ29tcGxldGlvblwiIGNhcmQgb24gdGhlIHByb2dyZXNzIHJlcG9ydCdzIFByb2dyYW1zIHRhYlxuICAgKC9yZXBvcnRzLzphdGhsZXRlSWQsIHZpZXdzL3Byb2dyZXNzcmVwb3J0Lmh0bWwpOiBhIGNvbnRyaWJ1dGlvbi1ncmFwaCBzdHlsZVxuICAgaGVhdG1hcCBvZiBjb21wbGV0ZWQvc2NoZWR1bGVkIHByb2dyYW1zIHBlciBidWNrZXQuXG5cbiAgIFNpdHMgYmVzaWRlIC5wcm9ncmFtcy1vdmVydmlldyBpbiAucHJvZ3JhbXMtb3ZlcnZpZXctcm93LCB3aGljaCBpcyBkZWNsYXJlZFxuICAgaW4gX3Byb2dyYW1zX292ZXJ2aWV3LnNjc3MgYWxvbmcgd2l0aCB0aGUgc2hlbGwgY29uc3RhbnRzIGJvdGggY2FyZHMgc2hhcmUgLVxuICAgc2VlIHRoYXQgZmlsZSdzIGhlYWRlciBmb3Igd2h5IHRoZXNlIGFyZSBzZXBhcmF0ZSBibG9ja3MgYW5kIHdoeSB0aGUgc2hlbGwgaXNcbiAgIHJlc3RhdGVkIHJhdGhlciB0aGFuIGltcG9ydGVkLlxuXG4gICBUaGUgZ3JpZCdzIHNoYXBlIGlzIGRhdGEsIG5vdCBzdHlsZS4gUHJvZ3Jlc3NSZXBvcnRDb250cm9sbGVyJ3NcbiAgIF9yZW5kZXJQcm9ncmFtQ29tcGxldGlvbiBwaWNrcyBvbmUgb2YgdGhyZWUgbGF5b3V0cyBmcm9tIHRoZSBzZWxlY3RlZCBkYXRlXG4gICByYW5nZSAoc2V2ZW4gZGF5IGNvbHVtbnMgZm9yIGEgd2VlayBvciBhIG1vbnRoLCBtb250aCBjb2x1bW5zIG92ZXIgV2VlayAxLTVcbiAgIHJvd3MgZm9yIGFueXRoaW5nIGxvbmdlcikgYW5kIGhhbmRzIHRoZSB0ZW1wbGF0ZSBib3RoIHRoZVxuICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHRyYWNrIGxpc3QgYW5kIGEgRkxBVCBsaXN0IG9mIGdyaWQgaXRlbXMuIEZsYXQgYmVjYXVzZVxuICAgYSBDU1MgZ3JpZCBvbmx5IGZsb3dzIGl0cyBkaXJlY3QgY2hpbGRyZW4sIHNvIHRoZXJlIGNhbiBiZSBubyBwZXItcm93XG4gICB3cmFwcGVyIC0gdGhlIHNhbWUgdHJhcCBfcHJvZ3Jlc3Nfb3ZlcnZpZXcuc2NzcydzIGhlYWRlciBkb2N1bWVudHMgZm9yIHRoZVxuICAgdGlsZXMuIE5vdGhpbmcgaGVyZSBtYXkgaW50cm9kdWNlIG9uZS5cblxuICAgVHJhcHMgdGhpcyBidWlsZCBoYXM6IG5vIGdsb2JhbCBib3JkZXItYm94IHJlc2V0IChzdGF0ZSBib3gtc2l6aW5nIGJ5IGhhbmQpXG4gICBhbmQgbm8gYXV0b3ByZWZpeGVyLiAqL1xuXG5AaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbi8vIFRoZSBjb21wbGV0aW9uIHJhbXAsIGJ5IHF1YXJ0ZXIgb2YgY29tcGxldGVkL3NjaGVkdWxlZC5cbi8vXG4vLyBBIGRvY3VtZW50ZWQgZGl2ZXJnZW5jZSwgbm90IGEgdG9rZW4gbG9va3VwOiB0aGUgZGVzaWduIHN5c3RlbSBkZWZpbmVzIG5vXG4vLyBncmVlbiBTQ0FMRSAtIF9kZXNpZ25fdG9rZW5zLnNjc3MgaGFzIG9ubHkgJGdyZWVuLTUwMCAoIzEyYjc2YSkgYW5kXG4vLyAkZ3JlZW4tNTAgLSBhbmQgdGhlc2UgYXJlIGEgeWVsbG93LWxlYW5pbmcgb2xpdmUgcmF0aGVyIHRoYW4gdGhhdCB0b2tlbidzXG4vLyB0ZWFsLWxlYW5pbmcgZ3JlZW4sIHNvIHRoZXkgY2Fubm90IGJlIGRlcml2ZWQgZnJvbSBpdC4gU3BlYydkIGRpcmVjdGx5XG4vLyByYXRoZXIgdGhhbiBzYW1wbGVkLiBTYW1lIHRyZWF0bWVudCBfZGVzaWduX3Rva2Vucy5zY3NzIGdpdmVzIGl0cyBvd24gJHgtXG4vLyBkaXZlcmdlbmNlczogaG9pc3RlZCBhbmQgbGFiZWxsZWQgcmF0aGVyIHRoYW4gcmUtaW52ZW50ZWQgcGVyIHVzZSBzaXRlLiBJZiBhXG4vLyBncmVlbiBzY2FsZSBpcyBldmVyIGFkZGVkIHRvIHRoZSBzaWJsaW5nIGFwcCdzIHRhaWx3aW5kIGNvbmZpZywgdGhlc2Vcbi8vIHNob3VsZCBiZSByZXBsYWNlZCBieSBpdCByYXRoZXIgdGhhbiBrZXB0IGFsb25nc2lkZS5cbiRwZ2MtbDE6ICNhZmQ4OGM7XG4kcGdjLWwyOiAjODRiMTVmO1xuJHBnYy1sMzogIzVmOGYzODtcbiRwZ2MtbDQ6ICMzYjZkMTE7XG5cbi8vIFNjaGVkdWxlZCwgbm9uZSBjb21wbGV0ZWQuIERlbGliZXJhdGVseSBOT1QgdGhlIGxpZ2h0ZXN0IHN0ZXAgb2YgdGhlIHJhbXBcbi8vIGFib3ZlOiBhIG1pc3NlZCBkYXkgYW5kIGEgYmFyZWx5LWRvbmUgZGF5IGFyZSBkaWZmZXJlbnQgZmFjdHMsIGFuZCBhIGdyZXlcbi8vIHNheXMgc28gd2hlcmUgYSBwYWxlIGdyZWVuIHdvdWxkIHJlYWQgYXMgcGFydGlhbCBjcmVkaXQuXG4kcGdjLXplcm86ICNiM2IzYmU7XG5cbi8vIE5vdGhpbmcgd2FzIGV2ZXIgc2NoZWR1bGVkLlxuJHBnYy1ub25lOiAjZWZlZmYxO1xuXG4kcGdjLWNlbGwtaDogIDMycHg7XG4kcGdjLWdhcDogICAgIDhweDtcbiRwZ2MtcmFkaXVzOiAgN3B4O1xuXG4ucHJvZ3JhbXMtY29tcGxldGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYm94LXNoYWRvdzogJHNoYWRvdy1jYXJkO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvLyBUaGUgY2FyZCBpcyBhIGZsZXggY29sdW1uIHNvIHRoZSBsZWdlbmQgY2FuIGJlIHBpbm5lZCB0byB0aGUgYm90dG9tIHdpdGhcbiAgLy8gbWFyZ2luLXRvcDogYXV0byAtIHRoZSB0d28gY2FyZHMgaW4gdGhlIHJvdyBhcmUgc3RyZXRjaGVkIHRvIGVxdWFsIGhlaWdodCxcbiAgLy8gYW5kIHdpdGhvdXQgdGhpcyB0aGUgbGVnZW5kIHdvdWxkIGZsb2F0IG1pZC1jYXJkIHVuZGVyIHRoZSBzaG9ydGVyIGdyaWQuXG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xuICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAvLyA4MHB4IHdpZGVyIHRoYW4gLnByb2dyYW1zLW92ZXJ2aWV3J3Mgb3duIDUyMnB4IGNhcCAoc2VlIGl0cyBoZWFkZXJcbiAgLy8gY29tbWVudCkgLSBwZXIgZGVzaWduLCB0aGlzIGNhcmQgdGFrZXMgbW9yZSBvZiB0aGUgcm93J3Mgd2lkdGggb24gYSB3aWRlXG4gIC8vIHBhZ2UgcmF0aGVyIHRoYW4gdGhlIHR3byBzcGxpdHRpbmcgaXQgZXZlbmx5LiBQcmV2aW91c2x5IHRoaXMgY2FyZCBoYWQgbm9cbiAgLy8gbWF4LXdpZHRoIGFuZCBhYnNvcmJlZCBhbGwgdGhlIHJvdydzIGxlZnRvdmVyIHdpZHRoIGJ5IGRlc2lnbjsgbm93IGJvdGhcbiAgLy8gY2FyZHMgY2FwIG91dCwgYW5kIGEgcGFnZSB3aWRlIGVub3VnaCBmb3IgYm90aCBsZWF2ZXMgd2hpdGVzcGFjZSBpblxuICAvLyAucHJvZ3JhbXMtb3ZlcnZpZXctcm93IGluc3RlYWQuXG4gIG1heC13aWR0aDogNjAycHg7XG4gIHBhZGRpbmc6IDIwcHg7XG5cbiAgJl9fdGl0bGUge1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgIG1hcmdpbjogMCAwIDIwcHg7XG4gIH1cblxuICAvLyBUaGUgc2Nyb2xsZXIsIG5vdCB0aGUgZ3JpZCBpdHNlbGY6IGEgZ3JpZCB0aGF0IGlzIGl0cyBvd24gc2Nyb2xsIGNvbnRhaW5lclxuICAvLyBjYW5ub3QgYmUgY2VudHJlZCBieSBpdHMgcGFyZW50LCBhbmQgYG92ZXJmbG93YCBvbiB0aGUgZ3JpZCB3b3VsZCBhbHNvIGNsaXBcbiAgLy8gbm90aGluZyB1c2VmdWwgc2luY2UgdGhlIGNlbGxzIGFyZSB0aGUgb3ZlcmZsb3cuIFR3ZWx2ZSBmaXhlZCAzMnB4IG1vbnRoXG4gIC8vIGNvbHVtbnMgY2FuIGV4Y2VlZCBhIGhhbGYtd2lkdGggY2FyZCwgYW5kIHRoaXMgaXMgd2hhdCBtYWtlcyB0aGF0XG4gIC8vIHN1cnZpdmFibGUgaW5zdGVhZCBvZiBibG93aW5nIHRoZSByb3cgb3BlbiAod2l0aCAucHJvZ3JhbXMtb3ZlcnZpZXctcm93J3NcbiAgLy8gbWluLXdpZHRoOiAwIG9uIHRoZSBjYXJkLCB3aGljaCBpcyB3aGF0IGxldHMgdGhpcyBib3ggYmUgbmFycm93ZXIgdGhhbiBpdHNcbiAgLy8gY29udGVudCkuXG4gICZfX3Njcm9sbCB7XG4gICAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gICAgQGluY2x1ZGUgZmxleCgxIDEgYXV0byk7XG4gICAgLy8gVmVydGljYWxseSBjZW50ZXJzIHRoZSBncmlkIHdpdGhpbiB3aGF0ZXZlciBsZWZ0b3ZlciBzcGFjZSBmbGV4LWdyb3dcbiAgICAvLyBnaXZlcyB0aGlzIGVsZW1lbnQgYmV0d2VlbiB0aGUgdGl0bGUgYW5kIHRoZSBsZWdlbmQgLSB0aGUgZ3JpZCBzdGF5cyBhXG4gICAgLy8gc2luZ2xlIGZsZXggY2hpbGQgaGVyZSwgc28gdGhpcyBvbmx5IGV2ZXIgYWZmZWN0cyB0aGUgY3Jvc3MgYXhpcywgbmV2ZXJcbiAgICAvLyB0aGUgaG9yaXpvbnRhbCBzY3JvbGwgYmVsb3cuXG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgLy8gQ2xlYXJzIHRoZSBob3Jpem9udGFsIHNjcm9sbGJhciB3aGVyZSBvbmUgYXBwZWFycywgc28gaXQgZG9lcyBub3Qgc2l0IG9uXG4gICAgLy8gdGhlIGJvdHRvbSByb3cgb2YgY2VsbHMuXG4gICAgcGFkZGluZy1ib3R0b206IDRweDtcbiAgfVxuXG4gIC8vIGdyaWQtdGVtcGxhdGUtY29sdW1ucyBjb21lcyBmcm9tIHRoZSBjb250cm9sbGVyIHZpYSBuZy1zdHlsZTogdGhlIGNvbHVtblxuICAvLyBjb3VudCBpcyB0aGUgbnVtYmVyIG9mIGRheXMgb3IgbW9udGhzIGluIHJhbmdlLCBzbyB0aGUgdHJhY2sgbGlzdCBjYW5ub3QgYmVcbiAgLy8gd3JpdHRlbiBoZXJlLiBJdCBpcyBhbHdheXMgYGF1dG8gcmVwZWF0KE4sICRwZ2MtY2VsbC1oKWAgLSBvbmUgc2hyaW5rLXRvLWZpdFxuICAvLyBjb2x1bW4gZm9yIHRoZSByb3cgbGFiZWxzLCB0aGVuIE4gZml4ZWQtd2lkdGggY2VsbCBjb2x1bW5zIG1hdGNoaW5nIHRoZVxuICAvLyBjZWxscycgb3duIHNxdWFyZSBzaXplLlxuICAvL1xuICAvLyBkaXNwbGF5OiBncmlkIHJhdGhlciB0aGFuIGlubGluZS1ncmlkOiB0aGUgZ3JpZCBtdXN0IGJlIGFibGUgdG8gYmUgbmFycm93ZXJcbiAgLy8gdGhhbiBpdHMgdHJhY2tzIHdhbnQgc28gX19zY3JvbGwgaGFzIHNvbWV0aGluZyB0byBzY3JvbGwuXG4gICZfX2dyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIGdhcDogJHBnYy1nYXA7XG4gICAgLy8gR3JpZCdzIGRlZmF1bHQganVzdGlmeS1jb250ZW50IChub3JtYWwpIHN0cmV0Y2hlcyB3aGljaGV2ZXIgdHJhY2sgaGFzXG4gICAgLy8gYW4gYGF1dG9gIG1heCBzaXppbmcgZnVuY3Rpb24gdG8gc29hayB1cCBsZWZ0b3ZlciBzcGFjZSAtIGhlcmUgdGhhdCdzXG4gICAgLy8gdGhlIHJvdy1sYWJlbCBjb2x1bW4sIHNpbmNlIHRoZSBjZWxsIGNvbHVtbnMgYXJlIGEgZml4ZWQgMzJweC4gTGVmdCBhdFxuICAgIC8vIHRoZSBkZWZhdWx0LCBhIGNhcmQgd2lkZXIgdGhhbiB0aGUgdHJhY2tzIG5lZWQgd291bGQgYmFsbG9vbiB0aGUgbGFiZWxcbiAgICAvLyBjb2x1bW4gYW5kIHNob3ZlIGV2ZXJ5IGNlbGwgb3ZlciB0byB0aGUgcmlnaHQgZWRnZS4gYGNlbnRlcmAgb3B0cyBvdXRcbiAgICAvLyBvZiB0aGF0IHN0cmV0Y2ggYW5kIGNlbnRlcnMgdGhlIHdob2xlIHRyYWNrIHNldCAobGFiZWxzIGFuZCBjZWxsc1xuICAgIC8vIHRvZ2V0aGVyKSBpbiB0aGUgYm94IGluc3RlYWQuXG4gICAgLy9cbiAgICAvLyBQbGFpbiBgY2VudGVyYCBmaXJzdCBhcyB0aGUgZmFsbGJhY2sgZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3QgdW5kZXJzdGFuZFxuICAgIC8vIGBzYWZlYCAoYW4gaW52YWxpZCB2YWx1ZSBkcm9wcyB0aGUgd2hvbGUgZGVjbGFyYXRpb24sIGxlYXZpbmcgdGhpcyBvbmVcbiAgICAvLyBzdGFuZGluZyk7IGBzYWZlIGNlbnRlcmAgc2Vjb25kIGZvciBldmVyeW9uZSBlbHNlLiBXaXRob3V0IGBzYWZlYCwgYVxuICAgIC8vIGdyaWQgV0lERVIgdGhhbiBfX3Njcm9sbCAtIExhc3QgWWVhcidzIHR3ZWx2ZSBtb250aCBjb2x1bW5zIGlzIHRoZVxuICAgIC8vIHJlbGlhYmxlIHdheSB0byBoaXQgdGhpcyAtIGNlbnRlcnMgYnkgcHVzaGluZyB0aGUgc2FtZSBvdmVyZmxvdyBvZmZcbiAgICAvLyBib3RoIGVkZ2VzLCBhbmQgdW5zY3JvbGxlZCB0aGF0IGNsaXBzIHRoZSByb3ctbGFiZWwgY29sdW1uIG9uIHRoZSBsZWZ0XG4gICAgLy8gYW5kIGEgdHJhaWxpbmcgbW9udGggb24gdGhlIHJpZ2h0IHJhdGhlciB0aGFuIHNob3dpbmcgZWl0aGVyIGluIGZ1bGwuXG4gICAgLy8gYHNhZmVgIGZhbGxzIGJhY2sgdG8gc3RhcnQgYWxpZ25tZW50IG9ubHkgb25jZSB0aGUgY29udGVudCBubyBsb25nZXJcbiAgICAvLyBmaXRzLCBzbyBhIHdpZGUgZ3JpZCBzdGlsbCBvcGVucyBmbHVzaCBsZWZ0IHdpdGggbm90aGluZyBjdXQgb2ZmLCBhbmQgYVxuICAgIC8vIG5hcnJvdyBvbmUgc3RpbGwgY2VudGVycy5cbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNhZmUgY2VudGVyO1xuICAgIC8vIFNocmluay13cmFwcyB0aGUgdHJhY2tzIGluc2lkZSB0aGUgc2Nyb2xsZXIgaW5zdGVhZCBvZiBzdHJldGNoaW5nIHRoZW1cbiAgICAvLyB0byBmaWxsIGl0IC0gc2VlIHRoZSBqdXN0aWZ5LWNvbnRlbnQgbm90ZSBhYm92ZSBmb3Igd2h5IHRoYXQgbWF0dGVycy5cbiAgICB3aWR0aDogLW1vei1tYXgtY29udGVudDtcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgLy8gRmFsbHMgYmFjayB0byBmaWxsaW5nIHRoZSBzY3JvbGxlciB3aGVyZSBtYXgtY29udGVudCBpcyB1bnN1cHBvcnRlZCxcbiAgICAvLyB3aGljaCBzdGlsbCBsYXlzIHRoZSBjZWxscyBvdXQgY29ycmVjdGx5IC0gb25seSB0aGUgY2VudGVyaW5nIGRvZXMgbm90XG4gICAgLy8gYXBwbHksIHNpbmNlIHRoZXJlIGlzIG5vIGxvbmdlciBhbnkgbGVmdG92ZXIgd2lkdGggdG8gY2VudGVyIHdpdGhpbi5cbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gIH1cblxuICAvLyBUaGUgZW1wdHkgY2VsbCBvdmVyIHRoZSByb3ctbGFiZWwgY29sdW1uLiBEZWNsYXJlZCBzbyB0aGUgZmxhdCBpdGVtIGxpc3RcbiAgLy8gaGFzIHNvbWV0aGluZyB0byBoYW5nIGEgY2xhc3Mgb247IGl0IGhhcyBubyBhcHBlYXJhbmNlIG9mIGl0cyBvd24uXG4gICZfX2Nvcm5lciB7XG4gICAgaGVpZ2h0OiAxcHg7XG4gIH1cblxuICAvLyBTcGVjIGNhbGxzIHRoZSBmYW1pbHkgJ051ZGlzdGEgVFJJQUwnIC0gdGhhdCdzIEZpZ21hJ3MgbmFtZSBmb3IgYSB0cmlhbFxuICAvLyBsaWNlbnNlIG9mIHRoZSBzYW1lIHdlYmZvbnQgdGhpcyB3aG9sZSBjYXJkIGFscmVhZHkgcmVuZGVycyBpblxuICAvLyAoJ051ZGlzdGEnLCBkZWNsYXJlZCBvbiAucHJvZ3JhbXMtY29tcGxldGlvbiBhYm92ZSk7IG5vdGhpbmcgaGVyZSBpcyBvbiBhXG4gIC8vIGRpZmZlcmVudCBmYW1pbHkuIFNwZWMgYWxzbyBhc2tzIGZvciBcImxlYWRpbmctdHJpbTogbm9uZVwiLCB3aGljaCBoYXMgbm9cbiAgLy8gZWZmZWN0IGluIGFueSBicm93c2VyIHRoaXMgYXBwIHN1cHBvcnRzIGFuZCBpcyBsZWZ0IG9mZi5cbiAgJl9faGVhZC1jZWxsLFxuICAmX19yb3ctbGFiZWwge1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gIH1cblxuICAvLyBDZW50ZXJlZCBvdmVyIGVhY2ggZml4ZWQtd2lkdGggZGF5L21vbnRoIGNvbHVtbiwgdW5saWtlIHRoZSByb3cgbGFiZWxzJ1xuICAvLyByaWdodCBhbGlnbm1lbnQgYmVsb3cgLSB0aGUgdHdvIHNpdCBpbiBkaWZmZXJlbnQgdHJhY2tzICh0aGUgaGVhZCByb3cgdnMuXG4gIC8vIHRoZSBhdXRvIGxhYmVsIGNvbHVtbikgc28gdGhlcmUncyBubyBzaGFyZWQgZWRnZSBmb3IgdGhlbSB0byBhbGlnblxuICAvLyBhZ2FpbnN0IGVhY2ggb3RoZXIgb24uXG4gICZfX2hlYWQtY2VsbCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLy8gUmlnaHQtYWxpZ25lZCBhZ2FpbnN0IHRoZSBncmlkJ3Mgb3duIGdhcCwgYW5kIG11c3Qgbm90IHdyYXAgKFwiTWF5IDQtMTBcIlxuICAvLyBhbmQgXCJXZWVrIDFcIiBhcmUgdGhlIHR3byBzaGFwZXMpIHNvIGl0IHN0YXlzIGEgY29uc2lzdGVudCBkaXN0YW5jZSBmcm9tXG4gIC8vIHRoZSBmaXJzdCBjb2x1bW4gb2YgY2VsbHMuXG4gICZfX3Jvdy1sYWJlbCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuXG4gIC8vIFRoZSBzcXVhcmVzLiBGaXhlZCAzMngzMiAtIGJveC1zaXppbmcgYnkgaGFuZCwgc2luY2UgdGhlcmUgaXMgbm8gZ2xvYmFsXG4gIC8vIGJvcmRlci1ib3ggcmVzZXQgaW4gdGhpcyBidWlsZC5cbiAgLy9cbiAgLy8gU3BlYyBjYWxscyB0aGUgbGFiZWwgZm9udCAnSW50ZXInLCB3ZWlnaHQgNjAwIC0gc2VsZi1ob3N0ZWQgYnkgdGhlXG4gIC8vIEBmb250LWZhY2UgYXQgdGhlIHRvcCBvZiB0aGlzIGZpbGUuIHNhbnMtc2VyaWYgc3RheXMgYXMgdGhlIGZhbGxiYWNrIGZvclxuICAvLyB0aGUgbW9tZW50IGJlZm9yZSB0aGUgZm9udCBmaWxlIGxvYWRzLiBTcGVjJ3MgXCJsZWFkaW5nLXRyaW06IG5vbmVcIiBhbmQgXCJsZXR0ZXItc3BhY2luZzogMCVcIiBjYXJyeSBub1xuICAvLyBlZmZlY3QvYXJlIHRoZSBkZWZhdWx0IHJlc3BlY3RpdmVseSBhbmQgYXJlIGxlZnQgb2ZmLCBzYW1lIHRyZWF0bWVudCBhc1xuICAvLyB0aGUgcm93LWxhYmVsL2hlYWQtY2VsbCBydWxlIGFib3ZlLlxuICAmX19jZWxsIHtcbiAgICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICBib3JkZXItcmFkaXVzOiAkcGdjLXJhZGl1cztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC8vIFNwZWMncyBsYWJlbCBjb2xvciBpcyAjRUZFRkYxIC0gdGhlIHNhbWUgdmFsdWUgYXMgJHBnYy1ub25lIGJlbG93LCByZXVzZWRcbiAgICAvLyByYXRoZXIgdGhhbiByZXN0YXRlZC4gQ29pbmNpZGVuY2Ugb3Igbm90LCBpdCBtZWFucyAtLW5vbmUgKHdoaWNoIGhhcyBub1xuICAgIC8vIGxhYmVsIC0gc2VlIGJlbG93KSBuZXZlciBhY3R1YWxseSByZW5kZXJzIHRoaXMgY29sb3IsIGFuZCAtLXplcm8gcmVuZGVyc1xuICAgIC8vIGl0IGF0IGxvdyBjb250cmFzdCBhZ2FpbnN0ICRwZ2MtemVybzsgYm90aCBhcmUgdGhlIGRlc2lnbidzIGNhbGwsIG5vdCBhXG4gICAgLy8gYnVnIGhlcmUuXG4gICAgY29sb3I6ICRwZ2Mtbm9uZTtcbiAgICBmb250LWZhbWlseTogJ0ludGVyJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBoZWlnaHQ6ICRwZ2MtY2VsbC1oO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIC8vIC0tbm9uZSBpcyB0aGUgb25seSBzdGF0ZSB3aXRoIG5vIGxhYmVsIGF0IGFsbCAoX2NvbXBsZXRpb25DZWxsIHJldHVybnMgbm9cbiAgICAvLyBgbGFiZWxgIGZvciBpdCkuXG4gICAgJi0tbm9uZSB7IGJhY2tncm91bmQtY29sb3I6ICRwZ2Mtbm9uZTsgfVxuICAgICYtLXplcm8geyBiYWNrZ3JvdW5kLWNvbG9yOiAkcGdjLXplcm87IH1cbiAgICAmLS1sMSAgIHsgYmFja2dyb3VuZC1jb2xvcjogJHBnYy1sMTsgfVxuICAgICYtLWwyICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkcGdjLWwyOyB9XG4gICAgJi0tbDMgICB7IGJhY2tncm91bmQtY29sb3I6ICRwZ2MtbDM7IH1cbiAgICAmLS1sNCAgIHsgYmFja2dyb3VuZC1jb2xvcjogJHBnYy1sNDsgfVxuICAgIC8vIEEgZGF5L3dlZWsgdGhlIGNvbnRyb2xsZXIgYnVpbHQgb3V0c2lkZSB0aGUgcmVxdWVzdGVkIHJhbmdlICh0aGUgZ3JpZFxuICAgIC8vIGlzbid0IHNuYXBwZWQgdG8gd2hvbGUgYnVja2V0cyAtIHNlZSBfcmVuZGVyUHJvZ3JhbUNvbXBsZXRpb24ncyBoZWFkZXIpLlxuICAgIC8vIE1hdGNoZXMgLnByb2dyYW1zLWNvbXBsZXRpb24ncyBvd24gYmFja2dyb3VuZCBzbyB0aGUgc3F1YXJlIGRpc2FwcGVhcnNcbiAgICAvLyBpbnRvIHRoZSBjYXJkIHJhdGhlciB0aGFuIHJlYWRpbmcgYXMgXCJubyBwcm9ncmFtXCIgZ3JleSwgd2hpY2ggd291bGRcbiAgICAvLyBvdmVyc3RhdGUgd2hhdCB0aGUgQVBJIHdhcyBhc2tlZC4gQWxzbyBjYXJyaWVzIG5vIGxhYmVsLCBzYW1lIGFzXG4gICAgLy8gLS1ub25lLlxuICAgICYtLW91dHNpZGUgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XG4gIH1cblxuICAvLyAtLS0tIHRoZSBsZWdlbmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8vIG1hcmdpbi10b3A6IGF1dG8gcGlucyB0aGlzIHRvIHRoZSBib3R0b20gb2YgdGhlIGNhcmQgLSBzZWUgdGhlIGJsb2NrJ3NcbiAgLy8gZmxleC1jb2x1bW4gbm90ZSBhYm92ZS4gd3JhcCBiZWNhdXNlIHRoZSB0d28gZG90IGl0ZW1zIGZhbGwgdG8gYSBzZWNvbmRcbiAgLy8gbGluZSBpbiBhIGhhbGYtd2lkdGggY2FyZCBhbmQgbXVzdCBub3QgcHVzaCB0aGUgcmFtcCBvZmYgdGhlIGVkZ2UuXG4gIC8vIGp1c3RpZnktY29udGVudDogY2VudGVyIGNlbnRlcnMgdGhlIHJvdyBpdHNlbGYgaW4gdGhlIGNhcmQ7IHdyYXBwZWQgaXRlbXNcbiAgLy8gc3RpbGwgY2VudGVyIGFzIHRoZWlyIG93biBsaW5lIHJhdGhlciB0aGFuIHN0cmV0Y2hpbmcgZWRnZSB0byBlZGdlLlxuICAmX19sZWdlbmQge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgQGluY2x1ZGUgZmxleC13cmFwKHdyYXApO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgcGFkZGluZy10b3A6IDIwcHg7XG4gIH1cblxuICAmX19sZWdlbmQtaXRlbSB7XG4gICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAvLyBFeHRyYSBicmVhdGhpbmcgcm9vbSBiZXR3ZWVuIFwiTm90aGluZyBDb21wbGV0ZWRcIiBhbmQgXCJObyBQcm9ncmFtXG4gIC8vIFNjaGVkdWxlZFwiIHNwZWNpZmljYWxseSwgb24gdG9wIG9mIF9fbGVnZW5kJ3Mgb3duIDhweCByb3cgZ2FwIC0gdGhlIHNhbWVcbiAgLy8gc3RhY2tlZC1zcGFjaW5nIHBhdHRlcm4gJl9fbGVnZW5kLXJ1bGUgdXNlcyB0byBzZXQgdGhlIHJhbXAgYXBhcnQgZnJvbVxuICAvLyB0aGVzZSB0d28uIFRoZSBhZGphY2VudC1zaWJsaW5nIHNlbGVjdG9yIChyYXRoZXIgdGhhbiBhIG1vZGlmaWVyIGNsYXNzKVxuICAvLyBpcyB3aGF0IGtlZXBzIHRoaXMgb2ZmIHRoZSBydWxlLXRvLWZpcnN0LWl0ZW0gZ2FwLCBzaW5jZSBvbmx5IGFcbiAgLy8gbGVnZW5kLWl0ZW0gZm9sbG93aW5nIGFub3RoZXIgbGVnZW5kLWl0ZW0gaXMgb25lIG9mIHRoZXNlIHR3by5cbiAgJl9fbGVnZW5kLWl0ZW0gKyAmX19sZWdlbmQtaXRlbSB7XG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgfVxuXG4gIC8vICdOdWRpc3RhIFRSSUFMJyBpbiBzcGVjLCBzYW1lIGRpdmVyZ2VuY2UgYXMgX19oZWFkLWNlbGwvX19yb3ctbGFiZWwgYWJvdmVcbiAgLy8gKGluaGVyaXRlZCBmcm9tIC5wcm9ncmFtcy1jb21wbGV0aW9uJ3Mgb3duICdOdWRpc3RhJyByYXRoZXIgdGhhbiByZXN0YXRlZFxuICAvLyBoZXJlKTsgXCJsZWFkaW5nLXRyaW06IG5vbmVcIiBhbmQgXCJsZXR0ZXItc3BhY2luZzogMCVcIiBnZXQgdGhlIHNhbWVcbiAgLy8gbm8tZWZmZWN0L2RlZmF1bHQgdHJlYXRtZW50IHRvby5cbiAgJl9fbGVnZW5kLWxhYmVsIHtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICB9XG5cbiAgLy8gVGhlIGZvdXIgc3RlcHMgcmVhZCBhcyBvbmUgY29udGludW91cyBzY2FsZSwgc28gdGhleSBuZWVkIHRoZWlyIG93biB0aWdodGVyXG4gIC8vIGdhcCB0aGFuIHRoZSBsZWdlbmQgcm93J3MgOHB4IC0gaGVuY2UgYSB3cmFwcGVyIHJhdGhlciB0aGFuIGZvdXIgYmFyZVxuICAvLyBzaWJsaW5ncyBvZiBcImxlc3NcIiBhbmQgXCJtb3JlXCIuXG4gICZfX3JhbXAge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIGdhcDogMnB4O1xuICB9XG5cbiAgLy8gVGhlIGZvdXIgcmFtcCBzdGVwcyBiZXR3ZWVuIFwibGVzc1wiIGFuZCBcIm1vcmVcIi4gU3RyYWlnaHQtZWRnZWQgcmF0aGVyIHRoYW5cbiAgLy8gdGhlIGNlbGxzJyByb3VuZGVkIHNxdWFyZXMsIHNvIHRoZSByYW1wIHJlYWRzIGFzIG9uZSBjb250aW51b3VzIHNjYWxlIC1cbiAgLy8gb25seSB0aGUgb3V0ZXIgdHdvIGNvcm5lcnMgb2YgdGhlIGZpcnN0IGFuZCBsYXN0IHN0ZXAgcm91bmQgb2ZmLCBjYXBwaW5nXG4gIC8vIHRoZSBiYXIgdGhlIHdheSB0aGUgY2VsbHMnIG93biByYWRpdXMgY2FwcyBhIHNpbmdsZSBzcXVhcmUuXG4gICZfX3N3YXRjaCB7XG4gICAgQGluY2x1ZGUgZmxleCgwIDAgYXV0byk7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgd2lkdGg6IDI2cHg7XG5cbiAgICAmLS1sMSB7IGJhY2tncm91bmQtY29sb3I6ICRwZ2MtbDE7IGJvcmRlci1yYWRpdXM6IDhweCAwIDAgOHB4OyB9XG4gICAgJi0tbDIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkcGdjLWwyOyB9XG4gICAgJi0tbDMgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkcGdjLWwzOyB9XG4gICAgJi0tbDQgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkcGdjLWw0OyBib3JkZXItcmFkaXVzOiAwIDhweCA4cHggMDsgfVxuICB9XG5cbiAgLy8gU2VwYXJhdGVzIHRoZSByYW1wIGZyb20gdGhlIHR3byBuYW1lZCBzdGF0ZXMsIHdoaWNoIGFyZSBub3QgcGFydCBvZiBpdC5cbiAgJl9fbGVnZW5kLXJ1bGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR4LWJvcmRlci1mYWludDtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgbWFyZ2luOiAwIDhweDtcbiAgICB3aWR0aDogMXB4O1xuICB9XG5cbiAgLy8gVmVydGljYWwgY2VudGVyaW5nIGFnYWluc3QgdGhlIHJlc3Qgb2YgdGhlIGxlZ2VuZCByb3cgY29tZXMgZm9yIGZyZWUgZnJvbVxuICAvLyBfX2xlZ2VuZC1pdGVtJ3Mgb3duIGFsaWduLWl0ZW1zOiBjZW50ZXIgLSB0aGlzIG9ubHkgbmVlZHMgdGhlIHNpemUuXG4gICZfX2xlZ2VuZC1kb3Qge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBAaW5jbHVkZSBmbGV4KDAgMCBhdXRvKTtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICB3aWR0aDogOHB4O1xuXG4gICAgJi0temVybyB7IGJhY2tncm91bmQtY29sb3I6ICRwZ2MtemVybzsgfVxuICAgICYtLW5vbmUgeyBiYWNrZ3JvdW5kLWNvbG9yOiAkcGdjLW5vbmU7IH1cbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gICAgcGFkZGluZzogMTZweDtcbiAgfVxufVxuIiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIi8qIE9wdC1pbiByZXN0eWxlIG9mIGZ1c2lvbkRyb3BEb3duUGlsbCB0byBtYXRjaCBmdXNpb25EYXRlUmFuZ2VTZWxlY3QuXG5cbiAgIFRoZSBkaXJlY3RpdmUgYW5kIGl0cyB0ZW1wbGF0ZSBhcmUgc2hhcmVkIGJ5IHRlc3RhcmNoaXZlcywgdGVhbXJlcG9ydCwgbm90ZXNcbiAgIGFuZCB0aGUgcHJvZ3JhbS10eXBlIGZpbHRlciwgc28gbm9uZSBvZiB0aGlzIG1heSBsZWFrLiBJdCBpcyBzY29wZWQgdG8gYVxuICAgYHNlbGVjdC1waWxsYCBjbGFzcyBwdXQgb24gdGhlIERJUkVDVElWRSBIT1NUIGVsZW1lbnQgKHRoZSBwaWxsJ3Mgb3duXG4gICBjbGFzcy1jb2xvciBhdHRyaWJ1dGUgbGFuZHMgb24gLnRyaWdnZXIsIHdoaWNoIGlzIHRvbyBkZWVwIHRvIHJlYWNoIHRoZVxuICAgc3VibWVudSBmcm9tKS4gQWRkIHRoZSBjbGFzcywgZHJvcCBjbGFzcy1jb2xvciwgYW5kIHRoZSBpbnN0YW5jZSBvcHRzIGluOlxuXG4gICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QtcGlsbFwiIGZ1c2lvbi1kcm9wLWRvd24tcGlsbCAuLi4+XG5cbiAgIFRoZSBsZWdhY3kgcnVsZXMgbGl2ZSBpbiBzcmMvc2Fzcy9fcmVwb3J0cy5zY3NzLCBpbXBvcnRlZCBieSBhIERJRkZFUkVOVFxuICAgcm9vdCBzaGVldCAoZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcykuIExvYWQgb3JkZXIgYmV0d2VlbiB0aGUgdHdvXG4gICBzaGVldHMgaXMgbm90IGd1YXJhbnRlZWQgaGVyZSwgc28gZXZlcnkgc2VsZWN0b3IgYmVsb3cgY2FycmllcyB0aGVcbiAgIGAuc2VsZWN0LXBpbGxgIHByZWZpeCBwdXJlbHkgdG8gb3V0cmFuayBpdHMgbGVnYWN5IGNvdW50ZXJwYXJ0IG9uXG4gICBzcGVjaWZpY2l0eSByYXRoZXIgdGhhbiBvbiBzb3VyY2Ugb3JkZXIuXG5cbiAgIEljb25zIGFyZSBkYXRhLVVSSSBiYWNrZ3JvdW5kcywgbm90IGlubGluZSBTVkcsIGJlY2F1c2UgdGhlIHNoYXJlZCB0ZW1wbGF0ZVxuICAgaGFzIG5vIGljb24gc2xvdHMgYW5kIGFkZGluZyB0aGVtIHdvdWxkIGNoYW5nZSBldmVyeSBvdGhlciBjb25zdW1lci4gQVxuICAgYmFja2dyb3VuZCBpbWFnZSBjYW5ub3QgaW5oZXJpdCBjdXJyZW50Q29sb3IsIHNvIHRoZSB0aHJlZSBnbHlwaCBjb2xvdXJzXG4gICBiZWxvdyBhcmUgYmFrZWQgaW4gLSBrZWVwIHRoZW0gaW4gc3RlcCB3aXRoIHRoZSAkc3AtKiB0b2tlbnMuXG5cbiAgIE5vdCBjaGFuZ2VkOiB0aGUgcGlsbCBzdGlsbCBvcGVucyBvbiBtb3VzZWVudGVyIChEcm9wRG93blBpbGwuanMgYmluZHMgaXQpLFxuICAgd2hlcmUgdGhlIGRhdGUgc2VsZWN0b3Igb3BlbnMgb24gY2xpY2suIFRoYXQgaXMgZGlyZWN0aXZlIGJlaGF2aW91ciBzaGFyZWRcbiAgIHdpdGggZm91ciBvdGhlciBwYWdlcywgbm90IHN0eWxpbmcuICovXG5cblxuLy8gTWF0Y2hlcyAkZHJzLXRyaWdnZXItaGVpZ2h0IC8gJGRycy10cmlnZ2VyLWdhcCBpbiBfZGF0ZV9yYW5nZV9zZWxlY3Quc2Nzcy5cbiRzcC10cmlnZ2VyLWhlaWdodDogNDBweDtcbiRzcC10cmlnZ2VyLWdhcDogICAgNnB4O1xuLy8gRml4ZWQsIGFuZCB0aGUgbWVudSBiZWxvdyBpcyBsb2NrZWQgdG8gdGhlIHNhbWUgbnVtYmVyIHNvIHRoZSB0d28gZWRnZXMgbGluZVxuLy8gdXAuIFRoZSB0cmlnZ2VyIGxlYXZlcyAyMDUgLSAyIGJvcmRlciAtIDE4IHBhZGRpbmcgLSAxNiBmb2xkZXIgLSAxNiBjYXJldCAtXG4vLyAxMiBnYXBzID0gMTQxcHggZm9yIHRoZSBsYWJlbCwgYW5kIHRoZSBtZW51IHJvd3MgbGVhdmUgMjA1IC0gMiAtIDI4IHBhZGRpbmdcbi8vIC0gOCBnYXAgLSAxNiBjaGVjayA9IDE1MXB4LiBUaGUgbG9uZ2VzdCBsYWJlbCAoXCJCb2R5IE1BUDogTUUgU2NyZWVuXCIpIHNpdHNcbi8vIHJpZ2h0IGF0IHRoYXQgZWRnZSBhbmQgd2lsbCBlbGxpcHNpcyByYXRoZXIgdGhhbiB3aWRlbiBlaXRoZXIgYm94LlxuJHNwLXdpZHRoOiAgICAgICAgICAyMDVweDtcblxuJHNwLXRyaWdnZXItc2hhZG93OiAwIDFweCAycHggMCByZ2JhKDEwLCAxMywgMTgsIC4wNSk7XG4kc3AtcGFuZWwtc2hhZG93OiAgIDAgMTJweCAxNnB4IC00cHggcmdiYSgxNiwgMjQsIDQwLCAuMDgpLFxuICAgICAgICAgICAgICAgICAgICAwIDRweCA2cHggLTJweCByZ2JhKDE2LCAyNCwgNDAsIC4wMyk7XG5cbi8vIDE2cHggZ2x5cGhzLiBgI2AgbXVzdCBiZSB3cml0dGVuICUyMyBpbnNpZGUgYSBkYXRhIFVSSSwgYW5kIHRoZSBhdHRyaWJ1dGVcbi8vIHF1b3RlcyBhcmUgc2luZ2xlIHNvIHRoZSB3aG9sZSB1cmwoKSBjYW4gYmUgZG91YmxlLXF1b3RlZC5cbi8vXG4vLyBUaGUgZm9sZGVyIGlzIGEgZmlsZSByYXRoZXIgdGhhbiBhIGRhdGEgVVJJIC0gc2VlIHRoZSB0cmlnZ2VyIHJ1bGUgYmVsb3cuXG4kc3AtaWNvbi1jYXJldDogIFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxNicgaGVpZ2h0PScxNicgdmlld0JveD0nMCAwIDE2IDE2JyBmaWxsPSdub25lJyUzRSUzQ3BhdGggZD0nTTQgNkw4IDEwTDEyIDYnIHN0cm9rZT0nJTIzNmQ2ZDZkJyBzdHJva2Utd2lkdGg9JzEuNScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJy8lM0UlM0Mvc3ZnJTNFXCI7XG4kc3AtaWNvbi1jaGVjazogIFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxNicgaGVpZ2h0PScxNicgdmlld0JveD0nMCAwIDE2IDE2JyBmaWxsPSdub25lJyUzRSUzQ3BhdGggZD0nTTEzLjMzIDRMNiAxMS4zM0wyLjY3IDgnIHN0cm9rZT0nJTIzOTc2OGViJyBzdHJva2Utd2lkdGg9JzEuNScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJy8lM0UlM0Mvc3ZnJTNFXCI7XG5cbi5zZWxlY3QtcGlsbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcblxuICAvKiAtLSB0cmlnZ2VyIC0tICovXG5cbiAgLmRyb3Bkb3duLXdyYXBwZXIgLnRyaWdnZXIucGlsbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6ICRzcC10cmlnZ2VyLWdhcDtcbiAgICAvLyBObyBib3JkZXItYm94IHJlc2V0IGluIHRoaXMgYnVpbGQsIHNvIHRoZSAxcHggYm9yZGVyIGFuZCB0aGUgcGFkZGluZyBhcmVcbiAgICAvLyBmb2xkZWQgaW50byB0aGUgNDBweCBieSBoYW5kLlxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiAkc3AtdHJpZ2dlci1oZWlnaHQ7XG4gICAgd2lkdGg6ICRzcC13aWR0aDtcbiAgICAvLyBMZWdhY3kgLnBpbGwgaXMgYSAyNHB4LXJhZGl1cyBsb3plbmdlIHdpdGggMjhweCBvZiBzaWRlIHBhZGRpbmcgYW5kIGFcbiAgICAvLyAycHggYWNjZW50IGJvcmRlcjsgYWxsIHRocmVlIGdvLlxuICAgIHBhZGRpbmc6IDAgOHB4IDAgMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0zMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJveC1zaGFkb3c6ICRzcC10cmlnZ2VyLXNoYWRvdztcbiAgICAvLyAudHJpZ2dlciBzZXRzIGxpbmUtaGVpZ2h0IDQ3cHggdG8gY2VudHJlIHRleHQgaW4gdGhlIG9sZCBsb3plbmdlLiBUaGVcbiAgICAvLyBmbGV4IGJveCBjZW50cmVzIGl0IG5vdywgc28gdGhpcyBoYXMgdG8gY29tZSBiYWNrIHRvIGEgcmVhbCB2YWx1ZSBvciB0aGVcbiAgICAvLyA0MHB4IGJveCBjYW5ub3QgY29udGFpbiBpdC5cbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgLjE1cztcblxuICAgICY6aG92ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmxhY2stNDAwO1xuICAgIH1cblxuICAgIC8vIExlYWRpbmcgZm9sZGVyIGdseXBoLiBBcyBhIGZsZXggaXRlbSBpdCBvcmRlcnMgYmVmb3JlIHRoZSBsYWJlbCBzcGFuLFxuICAgIC8vIHdoaWNoIGlzIHdoeSB0aGlzIGlzIDo6YmVmb3JlIGFuZCBub3QgYSBiYWNrZ3JvdW5kIG9uIHRoZSB0cmlnZ2VyLlxuICAgIC8vXG4gICAgLy8gUGF0aCBpcyByZWxhdGl2ZSB0byBUSElTIHBhcnRpYWwsIG5vdCB0byB0aGUgZW50cnkgc2hlZXQgLVxuICAgIC8vIHJlc29sdmUtdXJsLWxvYWRlciAod2VicGFjay5jb25maWcuKi5qczoxMzcpIHJld3JpdGVzIGl0IGZyb20gaGVyZS4gVGhhdFxuICAgIC8vIG1hdGNoZXMgX3Byb2ZpbGVfYXRobGV0ZS5zY3NzOjIyMDE7IHRoZSBgLi4vaW1hZ2VzL2AgaW4gX3RlYW0tdGwuc2NzczoyNjVcbiAgICAvLyBpcyB0aGUgYnJva2VuIHNwZWxsaW5nLCBzaW5jZSBzcmMvc2Fzcy9pbWFnZXMvIGRvZXMgbm90IGV4aXN0LlxuICAgIC8vXG4gICAgLy8gVGhlIGFzc2V0IGlzIDMyeDMyIGZvciBhIDE2cHggYm94LCBzbyBpdCBzdGF5cyBjcmlzcCBvbiAyeCBkaXNwbGF5cyAtXG4gICAgLy8gaGVuY2UgdGhlIGV4cGxpY2l0IGJhY2tncm91bmQtc2l6ZSByYXRoZXIgdGhhbiBgY29udGFpbmAuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uLy4uL2ltYWdlcy9wcm9ncmVzc19wYWdlX2ZvbGRlci5wbmcnKSBuby1yZXBlYXQgY2VudGVyIC8gMTZweCAxNnB4O1xuICAgIH1cblxuICAgID4gc3BhbiB7XG4gICAgICAvLyBUYWtlcyB3aGF0IHRoZSB0d28gZ2x5cGhzIGxlYXZlOyBjbGlwcyByYXRoZXIgdGhhbiB3aWRlbmluZyB0aGUgY2hpcC5cbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgLy8gaC1jb21wYWN0LXRleHQgc2hpcHMgMTNweC9ib2xkL3VwcGVyY2FzZSB3aXRoICswLjRweCB0cmFja2luZy5cbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBsZXR0ZXItc3BhY2luZzogLS4ycHg7XG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgY29sb3I6ICRncmF5LTkwMDtcbiAgICAgIC8vIE51ZGlzdGEgc2l0cyBoaWdoIGluIGl0cyBib3ggLSBzYW1lIG9wdGljYWwgbnVkZ2UgYXMgdGhlIGRhdGUgdHJpZ2dlci5cbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpO1xuICAgIH1cblxuICAgIC8vIFRoZSBpY29uLWZvbnQgY2FyZXQgaXMgcmVwbGFjZWQgYnkgdGhlIDo6YWZ0ZXIgY2hldnJvbiBzbyBib3RoIGNvbnRyb2xzXG4gICAgLy8gZHJhdyB0aGUgc2FtZSBnbHlwaC5cbiAgICAuaWNvbi1jYXJldC1kcm9wZG93biB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIjeyRzcC1pY29uLWNhcmV0fVwiKSBuby1yZXBlYXQgY2VudGVyIC8gMTZweCAxNnB4O1xuICAgIH1cbiAgfVxuXG4gIC8qIC0tIG1lbnUgLS0gKi9cblxuICAuZHJvcGRvd24td3JhcHBlciAuc3VibWVudS13cmFwcGVyIHtcbiAgICAvLyB0aW55LXByb3NlIHNldHMgMTNweC9ib2xkL3VwcGVyY2FzZSBvbiB0aGUgd3JhcHBlciBhbmQgdGhlIGl0ZW1zIGluaGVyaXRcbiAgICAvLyBpdDsgcmVzZXQgaGVyZSBzbyBlYWNoIHJ1bGUgYmVsb3cgaXMgYSBwbGFpbiB2YWx1ZSwgbm90IGFuIG92ZXJyaWRlLlxuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuXG4gICAgPiAuc3VibWVudS1jb250ZW50ID4gLnN1Ym1lbnUge1xuICAgICAgLy8gN3B4IGxlZ2FjeS4gNHB4IG1hdGNoZXMgdGhlIGRhdGUgcGFuZWwncyB0b3A6IGNhbGMoMTAwJSArIDRweCkuXG4gICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAvLyBTYW1lIHdpZHRoIGFzIHRoZSB0cmlnZ2VyLCBib3JkZXJzIGZvbGRlZCBpbiBzbyB0aGUgdHdvIGVkZ2VzIGFsaWduLlxuICAgICAgLy8gLnN1Ym1lbnUtY29udGVudCBpcyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQgYW5kIHNocmluay10by1maXQsIHNvIHRoaXMgaXNcbiAgICAgIC8vIHdoYXQgYWN0dWFsbHkgc2l6ZXMgdGhlIHBhbmVsLlxuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHdpZHRoOiAkc3Atd2lkdGg7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTMwMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgIGJveC1zaGFkb3c6ICRzcC1wYW5lbC1zaGFkb3c7XG4gICAgICAvLyBLZWVwcyB0aGUgZmlyc3QgYW5kIGxhc3Qgcm93cyBpbnNpZGUgdGhlIDhweCBjb3JuZXJzLlxuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuc3VibWVudSB1bCB7XG4gICAgICBwYWRkaW5nOiA2cHggMDtcblxuICAgICAgKyB1bCB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5zdWJtZW51IGxpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgZ2FwOiA4cHg7XG4gICAgICAvLyBMZWdhY3kgZmxvb3JzIHRoaXMgYXQgMjIzcHgsIHdoaWNoIHdvdWxkIHB1c2ggdGhlIHJvdyBwYXN0IHRoZSAyMDVweFxuICAgICAgLy8gcGFuZWwgYW5kIGRlZmVhdCB0aGUgd2lkdGggYWJvdmUuXG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAvLyAyMXB4IGxlZ2FjeS1kZXJpdmVkIGxlZnQgaW5zZXQsIHB1bGxlZCBpbiB0byAxMnB4LlxuICAgICAgcGFkZGluZzogMTBweCAxNnB4IDEwcHggMTJweDtcbiAgICAgIC8vIFBlciB0aGUgRmlnbWEgdHlwZSBzcGVjLiBIZWF2aWVyIGFuZCBsYXJnZXIgdGhhbiB0aGUgMTRweC81MDAgdGhlIGRhdGVcbiAgICAgIC8vIHNlbGVjdG9yJ3MgcHJlc2V0IHJhaWwgdXNlcyAtIHRoZSB0d28gbGlzdHMgZG8gbm90IG1hdGNoIG9uIHR5cGUuXG4gICAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgICBjb2xvcjogIzAwMDAwMDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIC8vIExlZ2FjeSBob3ZlciBpcyAjREVERkRFLCB3aGljaCByZWFkcyBhcyBhIHByZXNzZWQgc3RhdGUgbmV4dCB0byB0aGVcbiAgICAgICAgLy8gd2hpdGUgcGFuZWwuXG4gICAgICAgIGJhY2tncm91bmQ6ICRyb3ctaG92ZXI7XG4gICAgICB9XG5cbiAgICAgID4gc3BhbiB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICAvLyBTZWxlY3RlZCByb3cuIFRoZSBpcy1zZWxlY3RlZCBjbGFzcyBpcyBzZXQgZm9yIGV2ZXJ5IGNvbnN1bWVyIG9mIHRoZVxuICAgICAgLy8gc2hhcmVkIHRlbXBsYXRlLCBidXQgb25seSB0aGlzIHZhcmlhbnQgZHJhd3MgYW55dGhpbmcgZm9yIGl0LiBFdmVyeVxuICAgICAgLy8gcm93IGlzIGFscmVhZHkgIzAwMCBoZXJlLCBzbyB0aGUgY2hlY2sgbWFyayBhbG9uZSBjYXJyaWVzIHRoZSBzdGF0ZS5cbiAgICAgICYuaXMtc2VsZWN0ZWQge1xuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIjeyRzcC1pY29uLWNoZWNrfVwiKSBuby1yZXBlYXQgY2VudGVyIC8gMTZweCAxNnB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKiBEYXRlIHJhbmdlIHNlbGVjdG9yIGZvciB0aGUgcHJvZ3Jlc3MgcmVwb3J0IHBhZ2UuXG5cbiAgIFBvcnRlZCBmcm9tIHRoZSBhcHAncyBkYXRlLWZpbHRlciAvIGRhdGUtZmlsdGVyLWRyb3Bkb3duIC8gY2FsZW5kYXItZ3JpZC5cbiAgIFRob3NlIGFyZSBUYWlsd2luZCwgc28gdGhlIHZhbHVlcyBiZWxvdyBhcmUgdGhlIGRlLUBhcHBseSdkIHRva2Vucy4gVGhlIGFwcFxuICAgb25seSBldmVyIHJlbmRlcnMgb25lIG1vbnRoOyB0aGUgdHdvLW1vbnRoIHZpZXcgaGVyZSBpcyBuZXcuXG5cbiAgIFRyYXBzIHRoaXMgYnVpbGQgaGFzOiBubyBhdXRvcHJlZml4ZXIgKG5vIGR2aCwgbm8gdW5wcmVmaXhlZC1vbmx5IHByb3BzKSxcbiAgIGFuZCByZXNwb25kKCkgb25seSBrbm93cyA3NjhweCAvIDQ4MHB4LiBUaGUgc2luZ2xlLW1vbnRoIGNvbGxhcHNlIGJlbG93IGlzXG4gICBhIHByb3BlcnR5IG9mIHRoaXMgcGFuZWwncyB3aWR0aCwgbm90IGEgcHJvamVjdCB0aWVyLCBzbyBpdCBpcyBhIGJhcmVcbiAgIG1lZGlhIHF1ZXJ5LiAqL1xuXG5cbi8vIEZpeGVkIGJveCAtIGl0IG11c3Qgbm90IHJlc2l6ZSBhcyB0aGUgbGFiZWwgY2hhbmdlcy4gQSBmdWxsIGN1c3RvbSByYW5nZVxuLy8gKFwiMDEuMjMuMjUgLSAwMi4yMy4yNVwiKSBuZWVkcyB+MTIwcHgsIGFuZCB0aGUgY2hyb21lIGFyb3VuZCB0aGUgbGFiZWwgaXNcbi8vIHNpemVkIHNvIDE5OHB4IGNsZWFycyB0aGF0OiAxOTggLSAyIGJvcmRlciAtIDE4IHBhZGRpbmcgLSAxNiBpY29uIC0gMTZcbi8vIGNhcmV0IC0gMTIgZ2FwcyA9IDEzNHB4IGZvciB0aGUgbGFiZWwuXG4kZHJzLXRyaWdnZXItd2lkdGg6ICAgICAxOThweDtcbiRkcnMtdHJpZ2dlci1oZWlnaHQ6ICAgIDQwcHg7XG4kZHJzLXRyaWdnZXItZ2FwOiAgICAgICA2cHg7XG4kZHJzLXJhaWwtd2lkdGg6ICAgICAgICAyMDBweDtcblxuLy8gVGhlIHR3by1tb250aCBjYWxlbmRhciBibG9jay4gVGhlIG1vbnRocyBkaXZpZGUgdGhlIHdpZHRoIGJldHdlZW4gdGhlbSBhbmRcbi8vIHRoZSBzaXggd2VlayByb3dzIGRpdmlkZSB0aGUgbGVmdG92ZXIgaGVpZ2h0LCBzbyB0aGUgYmxvY2sgbGFuZHMgb24gdGhpc1xuLy8gc2l6ZSBleGFjdGx5IHdoYXRldmVyIHRoZSBoZWFkZXIgYW5kIGRheS1vZi13ZWVrIHJvdyBjb3N0LiBIZWlnaHQgaXMgd2hhdFxuLy8gc2V0cyB0aGUgcGFuZWwncyBvdmVyYWxsIDQ0MXB4IC0gdGhlIHdlZWsgcm93cyB0YWtlIHRoZSBkaWZmZXJlbmNlLCBzb1xuLy8gc2hyaW5raW5nIGl0IHRpZ2h0ZW5zIHRoZSBjYWxlbmRhciByYXRoZXIgdGhhbiB0aGUgc3Vycm91bmRpbmcgc3BhY2luZy5cbiRkcnMtbW9udGhzLXdpZHRoOiAgICAgIDY4MHB4O1xuJGRycy1tb250aHMtaGVpZ2h0OiAgICAgMzQwcHg7XG4kZHJzLW1vbnRoLWdhcDogICAgICAgICAyNHB4O1xuXG4kZHJzLWZpZWxkLXdpZHRoOiAgICAgICAzMTlweDtcbiRkcnMtZmllbGQtaGVpZ2h0OiAgICAgIDQ5cHg7XG4kZHJzLWZpZWxkLXJhZGl1czogICAgICA5cHg7XG4kZHJzLWZpZWxkLWdhcDogICAgICAgICA0cHg7XG4kZHJzLWZpZWxkLXBhZC15OiAgICAgICA4cHg7XG4kZHJzLWZpZWxkLXBhZC14OiAgICAgICAxMnB4O1xuJGRycy1maWVsZC12YWx1ZS1pbms6ICAgIzFkMWQyOTtcbiRkcnMtZmllbGQtbGFiZWwtaW5rOiAgICM3NDc0OGE7XG4vLyBEZWVwZXIgdGhhbiAkcHVycGxlLTUwMDsgb25seSB0aGUgZmllbGQgYmVpbmcgZWRpdGVkIHdlYXJzIGl0LlxuJGRycy1maWVsZC1hY3RpdmU6ICAgICAgIzUzNGFiNztcbiRkcnMtZmllbGQtYWN0aXZlLWJvcmRlcjogMS41cHg7XG4kZHJzLWRheS1zaXplOiAgICAgICAgICAzNnB4O1xuLy8gVmVydGljYWwgaW5zZXQgb2YgdGhlIHJhbmdlIGJhbmQgaW5zaWRlIGl0cyBjZWxsLiBUd28gYWRqYWNlbnQgcm93cyBlYWNoXG4vLyBjb250cmlidXRlIG9uZSwgZ2l2aW5nIHRoZSAycHggb2Ygd2hpdGUgdGhlIGRlc2lnbiBhc2tzIGZvciBiZXR3ZWVuIHdlZWtzLlxuJGRycy1iYW5kLWluc2V0OiAgICAgICAgMXB4O1xuJGRycy1kYXktcmFkaXVzOiAgICAgICAgNHB4O1xuJGRycy1tb250aC13aWR0aDogICAgICAgJGRycy1kYXktc2l6ZSAqIDc7XG4kZHJzLXN0YWNrOiAgICAgICAgICAgICA3NjhweDtcblxuJGRycy10cmlnZ2VyLXNoYWRvdzogICAgMCAxcHggMnB4IDAgcmdiYSgxMCwgMTMsIDE4LCAuMDUpO1xuJGRycy1wYW5lbC1zaGFkb3c6ICAgICAgMCAxMnB4IDE2cHggLTRweCByZ2JhKDE2LCAyNCwgNDAsIC4wOCksXG4gICAgICAgICAgICAgICAgICAgICAgICAwIDRweCA2cHggLTJweCByZ2JhKDE2LCAyNCwgNDAsIC4wMyk7XG5cbi5kYXRlLXJhbmdlLXNlbGVjdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuXG4gICZfX3RyaWdnZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAkZHJzLXRyaWdnZXItZ2FwO1xuICAgIC8vIEZpeGVkIGJveDogdGhlIGxhYmVsIHN3YXBzIGJldHdlZW4gYSBwcmVzZXQgbmFtZSBhbmQgYSBkYXRlIHJhbmdlLCBhbmRcbiAgICAvLyB0aGUgY2hpcCBtdXN0IG5vdCByZXNpemUgdW5kZXIgaXQuIE5vIGJvcmRlci1ib3ggcmVzZXQgaW4gdGhpcyBidWlsZCxcbiAgICAvLyBzbyB0aGUgYm9yZGVyIGFuZCBwYWRkaW5nIGhhdmUgdG8gYmUgZm9sZGVkIGluIGxvY2FsbHkuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogJGRycy10cmlnZ2VyLXdpZHRoO1xuICAgIGhlaWdodDogJGRycy10cmlnZ2VyLWhlaWdodDtcbiAgICBwYWRkaW5nOiAwIDhweCAwIDEwcHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMzAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3gtc2hhZG93OiAkZHJzLXRyaWdnZXItc2hhZG93O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuMTVzO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBib3JkZXItY29sb3I6ICRibGFjay00MDA7XG4gICAgfVxuXG4gICAgJi5pcy1vcGVuIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS01MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fdHJpZ2dlci1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBjb2xvcjogIzRmNGY0ZjtcbiAgfVxuXG4gICZfX3RyaWdnZXItbGFiZWwge1xuICAgIC8vIFRha2VzIHdoYXRldmVyIHRoZSB0d28gaWNvbnMgbGVhdmUsIGFuZCBjbGlwcyByYXRoZXIgdGhhbiBwdXNoaW5nIHRoZVxuICAgIC8vIGNoaXAgd2lkZXIgd2hlbiB0aGUgdGV4dCBpcyBhIGxvbmcgcHJlc2V0IG5hbWUuXG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAvLyBTbGlnaHQgbmVnYXRpdmUgdHJhY2tpbmcsIGFzIG9uIHRoZSBhcHAncyBidXR0b25zLiBXb3J0aCB+NHB4IGFjcm9zcyBhXG4gICAgLy8gZnVsbCBkYXRlIHJhbmdlLCB3aGljaCBpcyBtb3N0IG9mIHRoaXMgbGFiZWwncyBoZWFkcm9vbSBhdCAxOThweC5cbiAgICBsZXR0ZXItc3BhY2luZzogLS4ycHg7XG4gICAgY29sb3I6ICRncmF5LTkwMDtcbiAgICAvLyBOdWRpc3RhIHNpdHMgaGlnaCBpbiBpdHMgYm94OyBudWRnZSB0aGUgbGFiZWwgdG8gb3B0aWNhbCBjZW50ZXIuXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7XG4gIH1cblxuICAmX190cmlnZ2VyLWNhcmV0IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBjb2xvcjogIzZkNmQ2ZDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjE1cztcbiAgfVxuXG4gICZfX3RyaWdnZXIuaXMtb3BlbiAmX190cmlnZ2VyLWNhcmV0IHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICB9XG5cbiAgJl9fcGFuZWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiA2MDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTMwMDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm94LXNoYWRvdzogJGRycy1wYW5lbC1zaGFkb3c7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC8qIC0tIHByZXNldCByYWlsIC0tICovXG5cbiAgJl9fcHJlc2V0cyB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6ICRkcnMtcmFpbC13aWR0aDtcbiAgICBwYWRkaW5nOiA4cHggMDtcbiAgfVxuXG4gICZfX3ByZXNldCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDhweDtcbiAgICAvLyBMYWJlbCBzaXRzIDVweCBmdXJ0aGVyIGluIHRoYW4gdGhlIGNoZWNrIG1hcmsncyBndXR0ZXIuXG4gICAgcGFkZGluZzogMTBweCAxNnB4IDEwcHggMjFweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogIzRmNGY0ZjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRyb3ctaG92ZXI7XG4gICAgfVxuXG4gICAgLy8gU2FtZSB3ZWlnaHQgYXMgdGhlIHJlc3Q7IHRoZSBjaGVjayBtYXJrIGFuZCBpbmsgY29sb3VyIGNhcnJ5IHRoZSBzdGF0ZS5cbiAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICBjb2xvcjogJGdyYXktOTAwO1xuICAgIH1cbiAgfVxuXG4gICZfX3ByZXNldC1jaGVjayB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgY29sb3I6ICRwdXJwbGUtNTAwO1xuICB9XG5cbiAgJl9fcnVsZSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDFweDtcbiAgICBiYWNrZ3JvdW5kOiAkYmxhY2stMjAwO1xuICB9XG5cbiAgLyogLS0gY2FsZW5kYXIgc2lkZSAtLSAqL1xuXG4gIC8qIFBhbmVsIGhlaWdodCBpcyBlbWVyZ2VudCwgbm90IGhhcmQtY29kZWQ6IDE2ICsgNDkgKGZpZWxkcykgKyAxNiAoZ2FwKVxuICAgICArIDM0MCAobW9udGhzKSArIDIwID0gNDQxLiBTcGFjaW5nIGlzIGhlbGQgYXQgY29tZm9ydGFibGUgdmFsdWVzIGFuZCB0aGVcbiAgICAgY2FsZW5kYXIgYmxvY2sgYWJzb3JicyB0aGUgaGVpZ2h0IHRhcmdldCB2aWEgJGRycy1tb250aHMtaGVpZ2h0LiAqL1xuICAmX19jYWxlbmRhcnMge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBwYWRkaW5nOiAxNnB4IDIwcHggMjBweDtcbiAgfVxuXG4gICZfX2ZpZWxkcyB7XG4gICAgLy8gQW5jaG9ycyB0aGUgc2hhcmVkIGZpZWxkIHBpY2tlciBiZWxvdyB3aGljaGV2ZXIgZmllbGQgaXMgb3Blbi5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC8vIFNhbWUgd2lkdGggYXMgdGhlIGNhbGVuZGFyIGJlbG93LCB3aXRoIHRoZSB0d28gMzE5cHggZmllbGRzIHB1c2hlZCB0b1xuICAgIC8vIGl0cyBlZGdlcyBzbyB0aGUgcm93IGxpbmVzIHVwIHdpdGggdGhlIGdyaWQuXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHdpZHRoOiAkZHJzLW1vbnRocy13aWR0aDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICB9XG5cbiAgJl9fZmllbGQge1xuICAgIC8vIEZpeGVkIGJveCwgc28gdGhlIGJvcmRlciBhbmQgcGFkZGluZyBoYXZlIHRvIGJlIGZvbGRlZCBpbiAtIHRoaXMgYnVpbGRcbiAgICAvLyBoYXMgbm8gZ2xvYmFsIGJvcmRlci1ib3ggcmVzZXQuIEl0IGFsc28gbWVhbnMgdGhlIDEuNXB4IGFjdGl2ZSBib3JkZXJcbiAgICAvLyBkb2VzIG5vdCBudWRnZSB0aGUgbGF5b3V0LlxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogJGRycy1maWVsZC1nYXA7XG4gICAgd2lkdGg6ICRkcnMtZmllbGQtd2lkdGg7XG4gICAgaGVpZ2h0OiAkZHJzLWZpZWxkLWhlaWdodDtcbiAgICBwYWRkaW5nOiAkZHJzLWZpZWxkLXBhZC15ICRkcnMtZmllbGQtcGFkLXg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTMwMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZHJzLWZpZWxkLXJhZGl1cztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIC4xNXMsIGJveC1zaGFkb3cgLjE1cztcblxuICAgICY6aG92ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmxhY2stNDAwO1xuICAgIH1cblxuICAgIC8vIEhpbnQ6IHRoaXMgaXMgd2hlcmUgdGhlIG5leHQgY2xpY2sgb24gdGhlIHR3by1tb250aCBncmlkIGxhbmRzLlxuICAgICYuaXMtcGVuZGluZyB7XG4gICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgIH1cblxuICAgIC8vIFRoZSBmaWVsZCBhY3R1YWxseSBiZWluZyBlZGl0ZWQuXG4gICAgJi5pcy1vcGVuIHtcbiAgICAgIGJvcmRlcjogJGRycy1maWVsZC1hY3RpdmUtYm9yZGVyIHNvbGlkICRkcnMtZmllbGQtYWN0aXZlO1xuICAgIH1cbiAgfVxuXG4gIC8qIC0tIHBlci1maWVsZCBkYXkgLyBtb250aCAvIHllYXIgcGlja2VyIC0tICovXG5cbiAgJl9fZmllbGQtcGlja2VyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDEwMCUgKyA2cHgpO1xuICAgIGxlZnQ6IDA7XG4gICAgei1pbmRleDogMTA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAvLyBNYXRjaGVzIHRoZSBmaWVsZCBpdCBkcm9wcyBvdXQgb2YuXG4gICAgd2lkdGg6ICRkcnMtZmllbGQtd2lkdGg7XG4gICAgcGFkZGluZzogMTJweCAxNnB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMzAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3gtc2hhZG93OiAkZHJzLXBhbmVsLXNoYWRvdztcblxuICAgIC8vIFRoZSBUTyBmaWVsZCBzaXRzIGluIHRoZSByaWdodCBoYWxmIG9mIHRoZSByb3cuXG4gICAgJi5pcy10byB7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fZmllbGQtcGlja2VyLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgfVxuXG4gICZfX2ZpZWxkLXBpY2tlci1zZWxlY3Qge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgcGFkZGluZzogMCA2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMzAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiAkZ3JheS05MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICB9XG5cbiAgICAvLyBUaGUgeWVhciBpcyBhIGZpeGVkIGZvdXIgZGlnaXRzOyBnaXZlIHRoZSBtb250aCBuYW1lIHRoZSBzbGFjay5cbiAgICAmLmlzLXllYXIge1xuICAgICAgZmxleDogMCAwIDc2cHg7XG4gICAgfVxuICB9XG5cbiAgLyogVGhlIHR3byBsaW5lcyBwbHVzIHRoZSA0cHggZ2FwIGhhdmUgdG8gbGFuZCBleGFjdGx5IG9uIHRoZSBmaWVsZCdzXG4gICAgIGNvbnRlbnQgYm94IC0gNDlweCBsZXNzIGl0cyBib3JkZXJzIGFuZCA4cHggdmVydGljYWwgcGFkZGluZyBpcyAzMXB4IC1cbiAgICAgc28gdGhlc2UgbGluZS1oZWlnaHRzIGFyZSBsb2FkLWJlYXJpbmcsIG5vdCBkZWNvcmF0aW9uLiAqL1xuICAmX19maWVsZC1sYWJlbCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDExcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wNGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICRkcnMtZmllbGQtbGFiZWwtaW5rO1xuICB9XG5cbiAgJl9fZmllbGQtdmFsdWUge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBjb2xvcjogJGRycy1maWVsZC12YWx1ZS1pbms7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB9XG5cbiAgJl9fbW9udGhzIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAkZHJzLW1vbnRoLWdhcDtcbiAgICB3aWR0aDogJGRycy1tb250aHMtd2lkdGg7XG4gICAgaGVpZ2h0OiAkZHJzLW1vbnRocy1oZWlnaHQ7XG4gIH1cblxuICAmX19tb250aCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG5cbiAgJl9fbW9udGgtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgfVxuXG4gICZfX21vbnRoLW5hbWUge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAvLyBTdGF5cyB1bmRlciB0aGUgMjhweCBuYXYgYnV0dG9uLCBzbyB0aGUgaGVhZGVyIGhlaWdodCAtIGFuZCB3aXRoIGl0IHRoZVxuICAgIC8vIHNwYWNlIHRoZSB3ZWVrIHJvd3MgZGl2aWRlIC0gZG9lcyBub3QgbW92ZS5cbiAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICBjb2xvcjogJGdyYXktOTAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAmX19uYXYge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGNvbG9yOiAjNmQ2ZDZkO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGJsYWNrLTEwMDtcbiAgICB9XG5cbiAgICAvLyBLZWVwcyB0aGUgbW9udGggbmFtZSBjZW50cmVkIG9uIHRoZSBzaWRlIHRoYXQgaGFzIG5vIGNoZXZyb24uXG4gICAgJi5pcy1wbGFjZWhvbGRlciB7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE9ubHkgZWFybnMgaXRzIHBsYWNlIG9uY2UgdGhlIHNlY29uZCBtb250aCBpcyBoaWRkZW4uXG4gICAgJi5pcy1uYXJyb3ctb25seSB7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuICB9XG5cbiAgJl9fZG93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgJl9fZG93LWNlbGwge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIGhlaWdodDogMzJweDtcbiAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICRibGFjay03MDA7XG4gIH1cblxuICAmX193ZWVrIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgJl9fZGF5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleDogMSAxIDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGhlaWdodDogJGRycy1kYXktc2l6ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmLmlzLW91dHNpZGUge1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cbiAgfVxuXG4gICZfX2RheS1udW1iZXIge1xuICAgIC8vIFNpdHMgYWJvdmUgdGhlIHJhbmdlIGJhbmQgZHJhd24gb24gdGhlIGNlbGwuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAkZHJzLWRheS1zaXplIC0gKCRkcnMtYmFuZC1pbnNldCAqIDIpO1xuICAgIGhlaWdodDogJGRycy1kYXktc2l6ZSAtICgkZHJzLWJhbmQtaW5zZXQgKiAyKTtcbiAgICBib3JkZXItcmFkaXVzOiAkZHJzLWRheS1yYWRpdXM7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRncmF5LTkwMDtcbiAgfVxuXG4gICZfX2RheS5pcy10b2RheSAmX19kYXktbnVtYmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmxhY2stMTAwO1xuICAgIGNvbG9yOiAkbXV0ZWQ7XG4gIH1cblxuICAmX19kYXkuaXMtb3V0c2lkZSAmX19kYXktbnVtYmVyIHtcbiAgICBjb2xvcjogJGJsYWNrLTMwMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICB9XG5cbiAgJl9fZGF5Om5vdCguaXMtb3V0c2lkZSk6aG92ZXIgJl9fZGF5LW51bWJlciB7XG4gICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gIH1cblxuICAvKiBUaGUgaW4tcmFuZ2UgYmFuZCBpcyBhIHBzZXVkby1lbGVtZW50IHJhdGhlciB0aGFuIGEgYmFja2dyb3VuZCBvbiB0aGVcbiAgICAgY2VsbC4gVHdvIHJlYXNvbnM6IGluc2V0IHZlcnRpY2FsbHkgaXQgbGVhdmVzIDFweCBhYm92ZSBhbmQgYmVsb3csIHNvXG4gICAgIGNvbnNlY3V0aXZlIHJvd3Mga2VlcCAycHggb2Ygd2hpdGUgYmV0d2VlbiB0aGVtOyBhbmQgaXQgc2l0cyBiZWhpbmQgdGhlXG4gICAgIGRheSBudW1iZXIsIHNvIGFuIGVuZHBvaW50J3Mgc29saWQgc3F1YXJlIGlzIG5vdCByaW5nZWQgYnkgdGludC4gKi9cbiAgJl9fZGF5LmlzLWluLXJhbmdlOjpiZWZvcmUsXG4gICZfX2RheS5pcy1zdGFydDo6YmVmb3JlLFxuICAmX19kYXkuaXMtZW5kOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6ICRkcnMtYmFuZC1pbnNldDtcbiAgICBib3R0b206ICRkcnMtYmFuZC1pbnNldDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuICB9XG5cbiAgLyogQW4gZW5kcG9pbnQgb25seSBuZWVkcyB0byBicmlkZ2UgdGhlIGdhcCB0byBpdHMgbmVpZ2hib3VyLiBTdGFydGluZyB0aGVcbiAgICAgYmFuZCBhdCB0aGUgY2VsbCdzIG1pZHBvaW50IGtlZXBzIGl0IGVudGlyZWx5IHVuZGVyIHRoZSBzb2xpZCBzcXVhcmVcbiAgICAgZXhjZXB0IGZvciB0aGF0IGdhcCwgc28gbm8gdGludCBzaG93cyB0byB0aGUgb3V0c2lkZSBvZiBpdC4gKi9cbiAgJl9fZGF5LmlzLXN0YXJ0OjpiZWZvcmUge1xuICAgIGxlZnQ6IDUwJTtcbiAgfVxuXG4gICZfX2RheS5pcy1lbmQ6OmJlZm9yZSB7XG4gICAgcmlnaHQ6IDUwJTtcbiAgfVxuXG4gIC8vIEEgb25lLWRheSByYW5nZSBicmlkZ2VzIHRvIG5vdGhpbmcuXG4gICZfX2RheS5pcy1zdGFydC5pcy1lbmQ6OmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8qIFR3by1tb250aCBncmlkIG9ubHkuIEl0cyBibG9jayBoYXMgYSBmaXhlZCBoZWlnaHQsIHNvIHRoZSBzaXggd2VlayByb3dzXG4gICAgIGNhbiBzaGFyZSB3aGF0ZXZlciB0aGUgaGVhZGVyIGFuZCBkYXktb2Ytd2VlayByb3cgbGVhdmUuIFRoZSBmaWVsZCBwaWNrZXJcbiAgICAga2VlcHMgdGhlIGZpeGVkIDM2cHggY2VsbHMgYWJvdmUgLSBpdCBoYXMgbm8gZGVmaW5pdGUgaGVpZ2h0LCBzbyBhXG4gICAgIHBlcmNlbnRhZ2UgdGhlcmUgd291bGQgcmVzb2x2ZSB0byBhdXRvLiAqL1xuICAmX19tb250aHMgJl9fd2VlayB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgbWluLWhlaWdodDogMDtcbiAgfVxuXG4gICZfX21vbnRocyAmX19kYXkge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gICZfX21vbnRocyAmX19kYXktbnVtYmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAvLyBTdGlsbCBleGFjdGx5IDJweCBzaG9ydGVyIHRoYW4gaXRzIHJvdywgc28gdGhlIHdoaXRlIGdhcCBiZXR3ZWVuIHdlZWtzXG4gICAgLy8gYW5kIHRoZSBmaXQgYWdhaW5zdCB0aGUgcmFuZ2UgYmFuZCBib3RoIHN1cnZpdmUgdGhlIHRhbGxlciByb3dzLlxuICAgIGhlaWdodDogY2FsYygxMDAlIC0gI3skZHJzLWJhbmQtaW5zZXQgKiAyfSk7XG4gIH1cblxuICAmX19kYXkuaXMtc3RhcnQgJl9fZGF5LW51bWJlcixcbiAgJl9fZGF5LmlzLWVuZCAmX19kYXktbnVtYmVyLFxuICAmX19kYXkuaXMtc3RhcnQ6aG92ZXIgJl9fZGF5LW51bWJlcixcbiAgJl9fZGF5LmlzLWVuZDpob3ZlciAmX19kYXktbnVtYmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTUwMDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgfVxuXG4gIC8qIEVhY2ggZW5kcG9pbnQga2VlcHMgaXRzIHJvdW5kaW5nIG9ubHkgb24gdGhlIG91dHNpZGUgb2YgdGhlIHJhbmdlOyB0aGVcbiAgICAgZWRnZSBmYWNpbmcgdGhlIGJhbmQgaXMgc3F1YXJlLCBzbyB0aGUgc29saWQgc3F1YXJlIGFuZCB0aGUgdGludCBtZWV0XG4gICAgIGZsdXNoIGluc3RlYWQgb2YgbGVhdmluZyBhIG5vdGNoLiAqL1xuICAvKiBUaGUgc3F1YXJlIGVkZ2UgYWxzbyBwdWxscyBpbiBieSAxcHgsIHNvIGEgc2xpdmVyIG9mIHRoZSBiYW5kIHNob3dzXG4gICAgIGJldHdlZW4gdGhlIHNvbGlkIGVuZHBvaW50IGFuZCB0aGUgcmFuZ2UgaXQgb3BlbnMuIFRoZSBtYXJnaW4gZWF0cyBpbnRvXG4gICAgIHRoZSBudW1iZXIncyB3aWR0aCByYXRoZXIgdGhhbiBtb3ZpbmcgaXQgLSBpdCBpcyBhIGZsZXggaXRlbSBzaXplZCB0b1xuICAgICAxMDAlIG9mIHRoZSBjZWxsLCBzbyBpdCBzaHJpbmtzIHRvIG1ha2Ugcm9vbS4gKi9cbiAgJl9fZGF5LmlzLXN0YXJ0ICZfX2RheS1udW1iZXIge1xuICAgIGJvcmRlci1yYWRpdXM6ICRkcnMtZGF5LXJhZGl1cyAwIDAgJGRycy1kYXktcmFkaXVzO1xuICAgIG1hcmdpbi1yaWdodDogJGRycy1iYW5kLWluc2V0O1xuICB9XG5cbiAgJl9fZGF5LmlzLWVuZCAmX19kYXktbnVtYmVyIHtcbiAgICBib3JkZXItcmFkaXVzOiAwICRkcnMtZGF5LXJhZGl1cyAkZHJzLWRheS1yYWRpdXMgMDtcbiAgICBtYXJnaW4tbGVmdDogJGRycy1iYW5kLWluc2V0O1xuICB9XG5cbiAgLy8gQSBvbmUtZGF5IHJhbmdlIGZhY2VzIG91dHdhcmQgb24gYm90aCBzaWRlcywgc28gbm90aGluZyBpcyBwdWxsZWQgaW4uXG4gICZfX2RheS5pcy1zdGFydC5pcy1lbmQgJl9fZGF5LW51bWJlciB7XG4gICAgYm9yZGVyLXJhZGl1czogJGRycy1kYXktcmFkaXVzO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gIC8qIC0tIG5hcnJvdyAtLSAqL1xuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiAkZHJzLXN0YWNrKSB7XG4gICAgJl9fcGFuZWwge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDMycHgpO1xuICAgIH1cblxuICAgICZfX3ByZXNldHMge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgZ2FwOiA0cHg7XG4gICAgfVxuXG4gICAgJl9fcHJlc2V0IHtcbiAgICAgIHBhZGRpbmc6IDZweCAxMHB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTMwMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcblxuICAgICAgJi5pcy1hY3RpdmUge1xuICAgICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19ydWxlIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgfVxuXG4gICAgLy8gVHdvIG1vbnRocyBkbyBub3QgZml0OyBzaG93IHRoZSBsZWZ0IG9uZSBvbmx5LCBhbmQgbGV0IGl0IHRha2Ugb3ZlclxuICAgIC8vIHRoZSBmb3J3YXJkIGNoZXZyb24gdGhlIHJpZ2h0LWhhbmQgbW9udGggd2FzIGNhcnJ5aW5nLlxuICAgICZfX21vbnRoICsgJl9fbW9udGgge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmX19uYXYuaXMtbmFycm93LW9ubHkge1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAvLyBUaGUgZml4ZWQgNjgweDM3NiBibG9jayBpcyBhIHdpZGUtdmlld3BvcnQgc2hhcGU7IGRyb3AgYmFjayB0byBjb250ZW50XG4gICAgLy8gc2l6aW5nIGhlcmUuIFRoYXQgYWxzbyBtZWFucyB0aGUgcGVyY2VudGFnZSBkYXkgaGVpZ2h0cyBubyBsb25nZXIgaGF2ZVxuICAgIC8vIGEgZGVmaW5pdGUgcGFyZW50LCBzbyByZXN0b3JlIHRoZSBmaXhlZCBjZWxsIHNpemVzIHdpdGggdGhlbS5cbiAgICAmX19maWVsZHMge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgZ2FwOiAxMnB4O1xuICAgIH1cblxuICAgICZfX2ZpZWxkIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICZfX2ZpZWxkLXBpY2tlciB7XG4gICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSA0OHB4KTtcbiAgICB9XG5cbiAgICAmX19tb250aHMge1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAmX19tb250aCB7XG4gICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAkZHJzLW1vbnRoLXdpZHRoO1xuICAgIH1cblxuICAgICZfX21vbnRocyAmX19kYXkge1xuICAgICAgaGVpZ2h0OiAkZHJzLWRheS1zaXplO1xuICAgIH1cblxuICAgICZfX21vbnRocyAmX19kYXktbnVtYmVyIHtcbiAgICAgIGhlaWdodDogJGRycy1kYXktc2l6ZSAtICgkZHJzLWJhbmQtaW5zZXQgKiAyKTtcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcblxuLnBhZ2UtaGVhZGVyLWJhY2stbmF2IHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICBtaW4taGVpZ2h0OiA0MHB4O1xuXG4gIGxhYmVsIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGkuaWNvbiB7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgfVxuXG4gICAgc3BhbiB7XG4gICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgIH1cbiAgfVxufVxuXG4udGVzdC1hcmNoaXZlcy1vcHRpb25zIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW46IDMwcHggMCA1cHg7XG4gIHJvdy1nYXA6IDEwcHg7XG5cbiAgPiBkaXYgKyBkaXYge1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICB9XG5cbiAgLmRhdGUtcmFuZ2VzIHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgIGdhcDogMjBweDtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICBnYXA6IDEwcHg7XG4gICAgfVxuICB9XG59XG5cbi5hcmNoaXZlLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIG1hcmdpbjogMzBweCAwO1xuXG4gID4gZGl2IHtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcblxuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG5cbiAgICBzcGFuIHtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICBpLmljb24ge1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5hcmNoaXZlLW5hbWUsXG4gICAgLmFyY2hpdmUtaW5mbyxcbiAgICAuYXJjaGl2ZS1hY3Rpb24ge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICB9XG5cbiAgICAuYXJjaGl2ZS1uYW1lIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgICAgbWluLXdpZHRoOiAxMjBweDtcbiAgICAgIHNwYW4ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmFyY2hpdmUtaW5mbyxcbiAgICAuYXJjaGl2ZS1hY3Rpb24ge1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICB9XG5cbiAgICAuYXJjaGl2ZS1pbmZvIHtcbiAgICAgIG1pbi13aWR0aDogMTQwcHg7XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNTY4cHgpIHtcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYXJjaGl2ZS1hY3Rpb24ge1xuICAgICAgbWluLXdpZHRoOiA2MHB4O1xuICAgIH1cblxuICAgICYuaGVhZGVyLXJvdyB7XG4gICAgICBtaW4taGVpZ2h0OiA0MHB4O1xuXG4gICAgICBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCIvL3ZlcnNpb24gMiBvZiBoZWFkZXIgKHNlZSBuZXctaGVhZGVyLmh0bWwgZm9yIHRlbXBsYXRlIChzd2l0Y2hlZCB2MikpXG4uaGVhZGVyLWNvbnRlbnQge1xuICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChpbml0aWFsKTtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoODBweCk7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIEBpbmNsdWRlIGxvY2staGVpZ2h0KDYwcHgpO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xuXG4gIC5oZWFkZXItbG9nby1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC5oZWFkZXItcHJhYy1idXJnZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZm9udC1zaXplOiAyNnB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogIzJlMmUyZTtcbiAgICBwYWRkaW5nOiAwIDE1cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDdweDtcbiAgICBtYXJnaW46IDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cblxuICAuaGVhZGVyLXByYWMtbWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNjBweDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJhY2tncm91bmQ6ICMxYzFjMWM7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBhZGRpbmc6IDEwcHggMDtcbiAgICB6LWluZGV4OiAxMDAwO1xuXG4gICAgLmhlYWRlci1wcmFjLW1lbnVfX2l0ZW0ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBtaW4taGVpZ2h0OiA2MHB4O1xuICAgICAgbWF4LWhlaWdodDogNjBweDtcbiAgICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMzMzO1xuICAgICAgY29sb3I6ICNhMGE0YTg7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG5cbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICNlZmVmZWY7XG4gICAgICB9XG5cbiAgICAgICY6bm90KC5hY3RpdmUpOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICNlZmVmZWY7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmhlYWRlci1wcmFjLXVzZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgfVxuICAuaGVhZGVyLWxvZ28gIHtcbiAgICBtYXJnaW46IDEwcHggMzVweDtcbiAgXHRpbWcgIHtcbiAgXHRcdG1heC13aWR0aDogMTgwcHg7XG4gICAgICBtYXgtaGVpZ2h0OiA3MHB4O1xuICBcdH1cbiAgfVxuICAucmVzcC1jZW50ZXIge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbiAgLnVzZXIge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgLmhlYWRlci10ZWFtLW5hbWUge1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0M4QzhDOTtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDQwcHg7XG4gICAgfVxuICAgIGgzIHtcbiAgICAgIHBhZGRpbmc6IDBweCAxOHB4O1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgICBjb2xvcjogJGRhcmtfYmx1ZTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuICAgIFxuICB9XG4gIC5oZWFkZXItdGVhbS1uYW1lLXJlc3Age1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgPiBoMyB7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIH1cbiAgfVxuXG4gIC5oZWFkZXItdGVhbS1uYW1lLWxpbmsge1xuICAgIEBleHRlbmQgLmhlYWRlci10ZWFtLW5hbWU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAudGVhbS1zd2l0Y2hlciAge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAmOmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogODAlO1xuICAgICAgbGVmdDogOTAlO1xuICAgICAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuICAgICAgY29udGVudDogXCJcXGYwZDdcIjtcbiAgICAgIGNvbG9yOiAkZGFya19ncmV5O1xuICAgIH1cbiAgfVxuICAudGVhbS1vcHRpb25zIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDIlO1xuICAgIGxlZnQ6IC0xcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y2ZjFmMTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWJlYmViO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoNjgsIDY3LCA3NiwgMC4yNSk7XG4gICAgbWluLXdpZHRoOiAxMzBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAzO1xuICAgIFxuICAgID5kaXYge1xuICAgICAgcGFkZGluZzogNXB4IDEwcHggNXB4IDE0cHg7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RlZGZkZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAud2hpdGUtZmllbGQge1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtZW5kKTtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMCBhdXRvKTtcblxuICAgIGkuaWNvbi1zaG9wIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFweDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxcHg7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgfVxuXG4gICAgPiBkaXYge1xuICAgICAgQGluY2x1ZGUgZmxleCgxIDAgYXV0byk7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1lbmQpO1xuICAgICAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNjBweCk7XG4gICAgICBtYXJnaW46IDBweDtcblxuICAgICAgPiBkaXYge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIGkge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICBtYXJnaW46IC0xcHggOHB4IDBweCAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogJGRhcmtfYmx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICBjb2xvcjogJGRhcmtfYmx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuY3VycmVudC1hdGhsZXRlIHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtc3RhcnQpO1xuXG4gICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgIG1pbi13aWR0aDogYXV0bztcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG5cbiAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc3BhbiArIHNwYW4ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgID4gZGl2ICsgZGl2IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+IGJ1dHRvbiB7XG4gICAgICAmLnNpZ25vdXQge1xuICAgICAgICBAaW5jbHVkZSBsb2NrLWhlaWdodCgzNXB4KTtcbiAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCgxMDBweCk7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRibHVlO1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5zaG9wIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDFweDtcbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luOiAwIDdweCAwIDE1cHg7XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbjogMCAyNXB4IDAgN3B4O1xuICAgICAgfVxuXG4gICAgICA+IGRpdiB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuXG4gICAgICAgIGkuZmEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uaGVhZGVyLWNvbnRlbnQtLXByYWMge1xuICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAuaGVhZGVyLXRlYW0tbmFtZSxcbiAgICAuaGVhZGVyLXRlYW0tbmFtZS1saW5rIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxufVxuXG4vLyBEYXJrIGFwcCBoZWFkZXIgc2hhcmVkIGJ5IGF0aGxldGUgYW5kIHByYWN0aXRpb25lciAoVmlzb3IgbG9nbyArIHByb2ZpbGUpLlxuLmhlYWRlci1jb250ZW50LmhlYWRlci1jb250ZW50LS1hdGhsZXRlLFxuLmhlYWRlci1jb250ZW50LmhlYWRlci1jb250ZW50LS1wcmFjIHtcbiAgQGluY2x1ZGUgbG9jay1oZWlnaHQoNjBweCk7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxYTFhMmU7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgLmF0aGxldGUtcHJvZmlsZS1zd2l0Y2gge1xuICAgIG1pbi1oZWlnaHQ6IDYwcHg7XG4gICAgbWF4LWhlaWdodDogNjBweDtcbiAgfVxuXG4gIC5hdGhsZXRlLWhlYWRlci1sb2dvIHtcbiAgICBtYXJnaW46IDAgMjhweDtcblxuICAgIGltZyB7XG4gICAgICBtYXgtd2lkdGg6IDE0NXB4O1xuICAgICAgbWF4LWhlaWdodDogMjlweDtcbiAgICB9XG4gIH1cblxuICAudXNlcl9fbG9nbyB7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIHdpZHRoOiA0NHB4O1xuICB9XG5cbiAgLnVzZXJfX25hbWUge1xuICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZvbnQtZmFtaWx5OiBcIk51ZGlzdGFcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgLnVzZXJfX2luZm8ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICBtaW4td2lkdGg6IDA7XG5cbiAgICAudXNlcl9fbmFtZSB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICAudXNlcl9fcm9sZSB7XG4gICAgY29sb3I6ICNFMUUxRTY7XG4gICAgZm9udC1mYW1pbHk6IFwiTnVkaXN0YVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cbn1cblxuLy8gTWVtYmVyIG1vYmlsZSBiYXI6IGJ1cmdlciAoZml4ZWQsIDYwcHggbGVmdCBjZWxsKSB8IFZpc29yIG1hcmsgfCBhdmF0YXIuXG4vLyBfcGFzc3BvcnQuc2NzcyBoaWRlcyAucGFzc3BvcnQgd2hvbGVzYWxlIHVuZGVyIDc2OHB4LCBzbyByZS1zaG93IGl0IGhlcmUgZm9yXG4vLyB0aGUgbWVtYmVyIGhlYWRlciBvbmx5IGFuZCBzaHJpbmsgdGhlIG1hcmsgdG8gZml0IHRoZSA2MHB4IGJhci5cbi5oZWFkZXItY29udGVudC5oZWFkZXItY29udGVudC0tYXRobGV0ZSB7XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIC8vIENlbnRyZWQgYWdhaW5zdCB0aGUgYmFyIGl0c2VsZiwgbm90IHNhdCBiZXR3ZWVuIGl0cyBuZWlnaGJvdXJzOiB0YWtlblxuICAgIC8vIG91dCBvZiBmbG93IHNvIHRoZSBhdmF0YXIgb24gdGhlIHJpZ2h0IGNhbm5vdCBwdWxsIHRoZSBtYXJrIG9mZiBjZW50cmUuXG4gICAgLy8gLmhlYWRlci1jb250ZW50IGlzIHBvc2l0aW9uOiByZWxhdGl2ZSwgYW5kIC5hdGhsZXRlLXByb2ZpbGUtc3dpdGNoIGlzXG4gICAgLy8gbG9ja2VkIHRvIHRoZSBiYXIncyBvd24gNjBweCBhYm92ZSwgc28gdGhlIG9mZnNldHMgbGFuZCBleGFjdGx5LlxuICAgIC5wYXNzcG9ydCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuXG4gICAgLmF0aGxldGUtaGVhZGVyLWxvZ28ge1xuICAgICAgbWFyZ2luOiAwIDEycHg7XG5cbiAgICAgIGltZyB7XG4gICAgICAgIG1heC13aWR0aDogMTEwcHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDI0cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVGhlIG1lbWJlciBuYW1lIHdvdWxkIHNxdWVlemUgdGhlIG1hcmsgYWdhaW5zdCB0aGUgYXZhdGFyIGF0IHBob25lXG4gICAgLy8gd2lkdGhzOyB0aGUgYXZhdGFyIHN0YXlzIGFzIHRoZSBvbmx5IHByb2ZpbGUgYWZmb3JkYW5jZSwgbWF0Y2hpbmcgdGhlXG4gICAgLy8gcHJhY3RpdGlvbmVyIGJhciBhYm92ZS5cbiAgICAudXNlcl9fbmFtZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vLyBQcmFjdGl0aW9uZXIgdGVhbSBzd2l0Y2hlciBib3ggKEZpZ21hOiBib3JkZXJlZCBkcm9wZG93biBuZXh0IHRvIGxvZ28pLlxuLmhlYWRlci1jb250ZW50LmhlYWRlci1jb250ZW50LS1wcmFjIHtcbiAgLmF0aGxldGUtaGVhZGVyLWxvZ28ge1xuICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgfVxuXG4gIC5oZWFkZXItdGVhbS1zd2l0Y2hlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG5cbiAgICAmX19idG4ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgd2lkdGg6IDE4OHB4O1xuICAgICAgaGVpZ2h0OiA0NHB4O1xuICAgICAgcGFkZGluZzogOHB4IDhweCA4cHggMTJweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM2QzZDN0M7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjMzUzNTRCO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBmb250LWZhbWlseTogXCJOdWRpc3RhXCIsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgICZfX25hbWUge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgbWluLXdpZHRoOiAwO1xuICAgIH1cblxuICAgICZfX2NhcmV0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgfVxuXG4gICAgLy8gRmlnbWE6IGxpZ2h0IHBhbmVsIGZsb2F0aW5nIG9mZiB0aGUgZGFyayBoZWFkZXIsIHJvd3MgZ3JvdXBlZCB1bmRlciBhXG4gICAgLy8gXCJUZWFtc1wiIGNhcHRpb24sIHdpdGggYSBjaGVjayBhZ2FpbnN0IHRoZSB0ZWFtIGN1cnJlbnRseSBpbiBjb250ZXh0LlxuICAgICZfX29wdGlvbnMge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiBjYWxjKDEwMCUgKyA2cHgpO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAvLyBGaWdtYSdzIDMyMHB4LCBidXQgYXMgYSBmbG9vciByYXRoZXIgdGhhbiBhIGZpeGVkIHdpZHRoOiBgYXV0b2Agd291bGRcbiAgICAgIC8vIHNocmluay10by1maXQgdGhlIHBvc2l0aW9uZWQgYW5jZXN0b3IgKHRoZSAxODhweCBidXR0b24pLCBzbyBuYW1lc1xuICAgICAgLy8gbG9uZ2VyIHRoYW4gdGhlIHBhbmVsIGdvdCBjbGlwcGVkLiBgbWF4LWNvbnRlbnRgIGlnbm9yZXMgaXQgYW5kIGdyb3dzXG4gICAgICAvLyByaWdodHdhcmRzIGZyb20gdGhlIHNwZWMnZCB3aWR0aCBpbnN0ZWFkLlxuICAgICAgbWluLXdpZHRoOiAzMjBweDtcbiAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDMycHgpO1xuICAgICAgLy8gM3B4IHRvcC9ib3R0b20gcGVyIEZpZ21hOyA0cHggZWFjaCBzaWRlIGlzIHRoZSAzMjAgLSAzMTIgcm93IGluc2V0LlxuICAgICAgcGFkZGluZzogM3B4IDRweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gICAgICAvLyBGaWdtYSBsaXN0cyB0aGUgI0VBRUNGMCBzdHJva2Ugb24gdGhlIGJvdHRvbSBlZGdlIGFsb25lOyB0aGUgY2FyZCByZWFkc1xuICAgICAgLy8gYXMgYSBjbG9zZWQgcmVjdGFuZ2xlIGluIHRoZSBmcmFtZSwgc28gaXQgcnVucyB0aGUgd2hvbGUgd2F5IHJvdW5kLlxuICAgICAgYm9yZGVyOiAxcHggc29saWQgI0VBRUNGMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgIGJveC1zaGFkb3c6IDAgMTJweCAxNnB4IC00cHggcmdiYSgxNiwgMjQsIDQwLCAwLjA4KSwgMCA0cHggNnB4IC0ycHggcmdiYSgxNiwgMjQsIDQwLCAwLjAzKTtcbiAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgLy8gQW4gYWRtaW4ncyBsaXN0IHNwYW5zIGV2ZXJ5IHRlYW0gdGhleSBhZG1pbmlzdGVyLCBzbyBjYXAgdGhlIGRyb3AtZG93blxuICAgICAgLy8gYW5kIHNjcm9sbCByYXRoZXIgdGhhbiBydW5uaW5nIGl0IG9mZiB0aGUgYm90dG9tIG9mIHRoZSB2aWV3cG9ydC5cbiAgICAgIG1heC1oZWlnaHQ6IDYwdmg7XG4gICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICBjb2xvcjogIzRGNEY0RjtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIk51ZGlzdGFcIiwgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAmX19vcHRpb24ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBnYXA6IDhweDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAvLyAxMHB4IHBhZGRpbmcgYXJvdW5kIGEgMjBweCBsaW5lIGlzIEZpZ21hJ3MgNDBweCBib3ggZXhhY3RseTsgYG1pbi1gXG4gICAgICAvLyBzbyBhIHJvdyBjYXJyeWluZyBhbiBvcmdhbml6YXRpb24gc3ViLWxpbmUgZ3Jvd3MgaW5zdGVhZCBvZiBjbGlwcGluZy5cbiAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgY29sb3I6ICMwMDAwMDA7XG4gICAgICBmb250LWZhbWlseTogXCJOdWRpc3RhXCIsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICAgICAgfVxuXG4gICAgICAvLyBQdXJwbGUgd2FzaCBzdGF5cyBwdXQgb24gaG92ZXI6IHRoZSByb3cgaXMgYWxyZWFkeSB0aGUgYWN0aXZlIG9uZS5cbiAgICAgICYtLXNlbGVjdGVkLFxuICAgICAgJi0tc2VsZWN0ZWQ6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJlZGZjO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZpZ21hJ3MgOHB4IGdhcCwgYmV0d2VlbiByb3dzIG9ubHk6IHRoZSBjYXB0aW9uIHNpdHMgdGlnaHQgdG8gdGhlIGZpcnN0LlxuICAgICZfX29wdGlvbiArIC5oZWFkZXItdGVhbS1zd2l0Y2hlcl9fb3B0aW9uIHtcbiAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICB9XG5cbiAgICAmX19vcHRpb25fX3RleHQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuXG4gICAgLy8gQm90aCBsaW5lcyBzdGlsbCBlbGxpcHNpemUsIGZvciB0aGUgY2FzZSB3aGVyZSBtYXgtd2lkdGggY2xhbXBzIHRoZSBwYW5lbC5cbiAgICAmX19vcHRpb25fX25hbWUge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIH1cblxuICAgIC8vIFRlYW0gbmFtZXMgcmVwZWF0IGFjcm9zcyBvcmdhbml6YXRpb25zLCBzbyBxdWFsaWZ5IHRoZW0gd2hlcmUgd2Uga25vdyBpdC5cbiAgICAmX19vcHRpb25fX29yZyB7XG4gICAgICBjb2xvcjogIzZkNmQ2ZDtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB9XG5cbiAgICAmX19vcHRpb25fX2NoZWNrIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIGNvbG9yOiAjOTc2OGViO1xuICAgIH1cblxuICAgICZfX29wdGlvbi0tc2VsZWN0ZWQgLmhlYWRlci10ZWFtLXN3aXRjaGVyX19vcHRpb25fX2NoZWNrIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICYtLXN3aXRjaGFibGUgLmhlYWRlci10ZWFtLXN3aXRjaGVyX19idG4ge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlcG9ydHMgLyBEYXNoYm9hcmQgLyBBZG1pbiBlbnRyeSBwb2ludHMgZm9yIHRoZSBwYWdlcyB0aGF0IHJlbmRlciB3aXRob3V0XG4gIC8vIHRoZSBzaWRlYmFyOyBzaXRzIGltbWVkaWF0ZWx5IGxlZnQgb2YgdGhlIHByYWN0aXRpb25lciBpZGVudGl0eSBibG9jay5cbiAgLmhlYWRlci1uYXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICAvLyBwdXNoIHRoZSBuYXYgKGFuZCB0aGUgaWRlbnRpdHkgYmxvY2sgYWZ0ZXIgaXQpIHRvIHRoZSByaWdodCBlZGdlXG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIGdhcDogMnB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuXG4gIC5oZWFkZXItbmF2X19idG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAvLyBuZXV0cmFsaXplIGdsb2JhbCBidXR0b24geyBtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KSB9XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogMzZweDtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgZm9udC1mYW1pbHk6IFwiTnVkaXN0YVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZS1pbi1vdXQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgICB9XG5cbiAgICAvLyBUaWdodCBwaG9uZSB3aWR0aHMga2VlcCB0aGUgaWNvbnMgb25seTsgdGhlIGxhYmVscyB3b3VsZCBwdXNoIHRoZVxuICAgIC8vIGlkZW50aXR5IGJsb2NrIG9mZiB0aGUgYmFyLlxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgZ2FwOiAwO1xuICAgICAgcGFkZGluZzogMCA4cHg7XG5cbiAgICAgID4gc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmhlYWRlci1uYXZfX2ljb24ge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gIC8vIFRoZSBuYXYgYWxyZWFkeSBjYXJyaWVzIHRoZSBhdXRvIG1hcmdpbiBpbiB0aGF0IGNhc2UuXG4gIC5oZWFkZXItbmF2ICsgLnVzZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG5cbiAgLy8gT24gbW9iaWxlIHRoZSBiYXIgaXMgdG9vIHRpZ2h0IGZvciB0aGUgdHdvLWxpbmUgaWRlbnRpdHkgYmxvY2ssIHNvIGRyb3AgdGhlXG4gIC8vIHByYWN0aXRpb25lciBuYW1lICsgdGl0bGUgYW5kIGxlYXZlIHRoZSBhdmF0YXIgYXMgdGhlIG9ubHkgcHJvZmlsZSBhZmZvcmRhbmNlLlxuICAudXNlcl9faW5mbyB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4vLyBUaGUgcHJvZmlsZSB2aWV3IHdyYXBzIHRoZSBoZWFkZXIgaW5jbHVkZSBpbiBhbiBleHRyYSAuaGVhZGVyLWNvbnRlbnRcbi8vIGVsZW1lbnQgKGRlZmF1bHQgODBweCArIGJvdHRvbSBib3JkZXIpLiBDb2xsYXBzZSB0aGF0IHdyYXBwZXIgdG8gdGhlIHNhbWVcbi8vIDYwcHggc28gbm8gd2hpdGUgc3RyaXAgc2hvd3MgYmVuZWF0aCB0aGUgZGFyayBoZWFkZXIuXG4uaGVhZGVyLWNvbnRlbnQ6aGFzKC5oZWFkZXItY29udGVudC0tYXRobGV0ZSksXG4uaGVhZGVyLWNvbnRlbnQ6aGFzKC5oZWFkZXItY29udGVudC0tcHJhYykge1xuICBAaW5jbHVkZSBsb2NrLWhlaWdodCg2MHB4KTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLy8gcmVzcG9uc2l2ZSB0d2Vha3MsIHNob3VsZCBqdXN0IGJlIGltcGxlbWVudGVkIHdpdGggdGhlIHJlc3RcbkBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gIC5oZWFkZXItY29udGVudC12MiB7XG4gICAgLndoaXRlLWZpZWxkICB7XG4gICAgICAgID4gZGl2ID4gZGl2ICB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgICAgICArIGRpdiAge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaSAge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC01cHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaS5pY29uLXNob3AgIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCA1cHggMCAwO1xuICAgICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbiRndXR0ZXItd2lkdGg6IDE1cHg7XG4vLyAkY29sLWdhcDogMzBweDtcbiRjb2wtZ2FwOiAxNXB4O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gYWxsIHNpemVzIHJlc3BvbnNpdmVuZXNzIGFkanVzdG1lbnRzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4ud2hpdGVib2FyZCAge1xuICAgIG1pbi13aWR0aDogMDtcbn1cbnVsLmNhdGFsb2dfbmF2ICB7XG4gICAgQGluY2x1ZGUgdW5sb2NrLXdpZHRoO1xuICAgIGxpID4gc3BhbiAge1xuICAgICAgICBwYWRkaW5nOiAxMXB4IDA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgfVxufVxudWwuY2F0YWxvZ19uYXYgbGkgPiB1bCBsaSA+IHVsIGxpICB7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICB0ZXh0LWluZGVudDogMDtcbiAgICBAaW5jbHVkZSB5cGFkKDZweCk7XG4gICAgcGFkZGluZy1sZWZ0OiA1MHB4OyAvLyB0aGlzIHdheSwgd2hlbiBpdCB3cmFwcywgaXQgZG9lc24ndCBsb29rIHN0cmFuZ2Vcbn1cblxuLmNhdGFsb2ctc2VsZWN0ZWQgLnRpdGxlLWNvbnRhaW5lciAucmV0dXJuLWxpbmsgIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGF0aGxldGUgZ3JpZCB1bml2ZXJzYWxcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi5hdGhsZXRlLWluZm8tYm94ICB7XG4gICAgLmJpby1oZWFkZXIgIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICAgICAgcGFkZGluZzogMCAxNXB4O1xuICAgICAgICAuYXRobGV0ZS1udW1iZXIgIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIHJlc3BvbmQoc20pICB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmJpby1ib2R5ICB7XG4gICAgICAgIC5hdGhsZXRlLXByb2ZpbGUgIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgICAgICAgICAucHJvZmlsZS1waWMgIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLmF0aGxldGUtc3RhdHMgIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgoMik7XG4gICAgICAgICAgICA+IGRpdiAge1xuICAgICAgICAgICAgICAgICsgZGl2ICB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2FudmFzICB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gYWxsIHNpemVzID4gYXRobGV0ZSBsaXN0IHZpZXcgPiBsb2NrZWQvd3JhcHBlZCBhdGhsZXRlIG51bWJlci4uLlxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLmF0aGxldGUtbGlzdC12aWV3LnZpZXctbGF5b3V0ICB7XG4gICAgLmF0aGxldGUtbnVtYmVyICB7XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoNTNweCk7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwLjk7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICB9XG4gICAgLmF0aGxldGUtbmFtZSAge1xuICAgICAgICBwYWRkaW5nOiAwIDE1cHggMCA1cHg7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBhbGwgc2l6ZXMgPiBhdGhsZXRlIHByb2ZpbGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi5wcm9maWxlLXN1bW1hcnkgIHtcbiAgICAudG9kYXktcHJvZ3JhbSxcbiAgICAudG9kYXktbm90aWNlICB7XG4gICAgICAgIEBpbmNsdWRlIHVubG9jay13aWR0aDtcbiAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDZweDtcbiAgICB9XG59XG4uY29sdW1uLWNvbnRhaW5lci5wcm9maWxlLXNjb3JlICsgZGl2IHtcbiAgICBAaW5jbHVkZSByZXNwb25kKGxnKSAge1xuICAgICAgICB3aWR0aDogMzgwcHg7XG4gICAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB1bml2ZXJzYWwgYnJlYWtwb2ludCBkcm9wZG93blxuLy8gb25jZSBicm93c2VyIHdpZHRoIGdvZXMgYmVsb3cgMTA1NCAoc2VlIG1peGluIHJlc3BvbmQoc20pKVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBib2R5ICAge1xuXG4gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuIC8vIHNlY3Rpb24gPiB1bml2ZXJzYWxcbiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAudmlldy1jb250YWluZXIgIHtcbiAgICB3aWR0aDogJGNvbXByZXNzZWRDb250ZW50V2lkdGg7XG4gICAgbWF4LXdpZHRoOiAxMDB2dztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgQGluY2x1ZGUgeHBhZCgkZ3V0dGVyLXdpZHRoKTtcbiAgICAudmlldy1jb250YWluZXIgIHtcbiAgICAgICAgQGluY2x1ZGUgeHBhZCgwKTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG59XG4ud2Vlay13cmFwcGVyIC53ZWVrLWRheS1jb2x1bW4gIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4uaGVhZGVyLWNvbnRlbnQgLndoaXRlLWZpZWxkID4gZGl2ICB7XG4gICAgbWFyZ2luOiAwcHggMjBweDtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IG1kID4gcHJvZmlsZSBwYWdlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4ucHJvZmlsZS1kZXRhaWwgIHtcbiAgICBAaW5jbHVkZSB1bmxvY2std2lkdGg7XG4gICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICAucHJvZmlsZS1waWMgIHtcbiAgICAgICAgQGluY2x1ZGUgdW5sb2NrLXdpZHRoO1xuICAgICAgICBAaW5jbHVkZSB1bmxvY2staGVpZ2h0O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiAyMDAgLyAxNzU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgaW1nICB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAucHJvZmlsZS1hY3Rpb24gIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4ucHJvZmlsZS1zdW1tYXJ5ICB7XG4gICAgQGluY2x1ZGUgdW5sb2NrLXdpZHRoO1xuICAgIEBpbmNsdWRlIGZsZXgoNCk7XG4gICAgcGFkZGluZy1sZWZ0OiAkY29sLWdhcDtcbiAgICA+IC5yb3ctY29udGFpbmVyLmRpdmlkZWQgIHtcbiAgICAgICAgPiBkaXYgIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgICAgICAgICArIGRpdiAge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGNvbC1nYXA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnNjb3JlLWNvbnRhaW5lciAge1xuICAgICAgICBAaW5jbHVkZSB1bmxvY2std2lkdGg7XG4gICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICAgIC5wcm9maWxlLXNjb3JlICB7XG4gICAgICAgICAgICBAaW5jbHVkZSB1bmxvY2std2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIC5wcm9maWxlLXNjb3JlLWdyYXBoLWNhbnZhcyAge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHVubG9jay13aWR0aDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB1bmxvY2staGVpZ2h0O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2hhcnQtbWVudSAge1xuICAgIC5jaGFydC1tZW51LWl0ZW0gIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxOHB4O1xuICAgIH1cbn1cbi5wcm9ncmFtLWNoYXJ0LFxuLmxpbmUtY2hhcnQgIHtcbiAgICBAaW5jbHVkZSBmbGV4KDIpO1xufVxuLnByb2dyYW0tY2hhcnQgIHtcbiAgICBAaW5jbHVkZSB1bmxvY2std2lkdGg7XG4gICAgbWluLWhlaWdodDogMDtcbn1cbi52aWV3LWxheW91dCAudmlldy1jb250YWluZXIgLmxpbmUtY2hhcnQgIHtcbiAgICAubGluZS1jaGFydC1jYW52YXMgIHtcbiAgICAgICAgQGluY2x1ZGUgdW5sb2NrLXdpZHRoO1xuICAgICAgICBAaW5jbHVkZSB1bmxvY2staGVpZ2h0O1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG59XG4uY2hhcnQtZGV0YWlscyAge1xuICAgIEBpbmNsdWRlIHVubG9jay13aWR0aDtcbiAgICBwYWRkaW5nLWxlZnQ6ICRjb2wtZ2FwO1xuICAgIEBpbmNsdWRlIGZsZXgoMSk7XG59XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gdW5pdmVyc2FsIChiYXNlZCBvZmYgb2YgcHJvZmlsZSA9PiBwcm9ncmFtcyA9PiB2ZXJ0aWNhbCBiYXIgY2hhcnQpXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5jYW52YXMgIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBtZCA+IHByb2ZpbGUgPiBjYWxlbmRhclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLmNhbGVuZGFyLW1vbnRoICB7XG4gICAgQGluY2x1ZGUgdW5sb2NrLXdpZHRoO1xuICAgIEBpbmNsdWRlIGZsZXgoMik7XG4gICAgLndlZWstZGF5LWxhYmVscyB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoMSAxIGF1dG8pO1xuICAgICAgICA+IGRpdiAge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICAgICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY2FsZW5kYXItZGF5cyAge1xuICAgICAgICAuY2FsZW5kYXItZGF5ICB7XG4gICAgICAgICAgICBAaW5jbHVkZSB1bmxvY2std2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogKDEwMC83KSoxJTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmLm5vdGVzLWNhbGVuZGFyICB7XG4gICAgICAgIG1heC13aWR0aDogNDkycHg7XG4gICAgfVxufVxuLmNhbGVuZGFyLWRheS1pbmZvICB7XG4gICAgQGluY2x1ZGUgdW5sb2NrLXdpZHRoO1xuICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgcGFkZGluZy1sZWZ0OiAkY29sLWdhcDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLnNjaGVkdWxlLWNhbGVuZGFyLWxheW91dCB7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICAgIC5jYWxlbmRhci1tb250aCB7XG4gICAgICAgICAgICBmbGV4OiAxIDAgMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICB9XG4gICAgICAgIC5jYWxlbmRhci1kYXktaW5mbyB7XG4gICAgICAgICAgICBmbGV4OiAxIDAgMTAwJTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gbWQgPiBhdGhsZXRlIGdyaWQgPiBsaXN0IHZpZXdcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi5hdGhsZXRlLWxpc3Qtdmlldy52aWV3LWxheW91dCAge1xuICAgIC5hdGhsZXRlLXN0YXQgIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCgwKTtcbiAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCg3LjUlKTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgfVxuICAgIC5hdGhsZXRlLXByb2dyYW1zICB7XG4gICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgoMTglKTtcbiAgICB9XG4gICAgLmF0aGxldGUtbGFzdC1hY3Rpdml0eSAge1xuICAgICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDE4JSk7XG4gICAgfVxuICAgIC5hdGhsZXRlLXJvdyAge1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBtZCA+IG1vZGFsc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLm1vZGFsICB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KTtcbn1cbi5tb2RhbC1jb250YWluZXIgIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBtZCA+IG5vdGVzID4gdHJhaW5pbmcgbG9hZCA+IG1pc2Ncbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi50bC1lbnRyeS1oZWFkZXIgLnRsLXNlbGVjdCxcbi50bC1lbnRyeSAudGwtc2VsZWN0ICB7XG4gICAgQGluY2x1ZGUgbG9jay13aWR0aCgxMjBweCk7XG59XG4udGwtZW50cnktaGVhZGVyIC50bC1pbnB1dCxcbi50bC1lbnRyeSAudGwtaW5wdXQgIHtcbiAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDg2cHgpO1xufVxuLnRsLWVudHJ5IC50bC1pbnB1dCA+IC5iYXNpYy1pbnB1dC5zbWFsbCAge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuLnRsLWVudHJ5LWhlYWRlciAge1xuICAgIC5maWVsZC1sYWJlbCAge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gbWQgPiB1bml2ZXJzYWwgaW5wdXQgc2l6ZSByZWR1Y3Rpb24uLi5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuaW5wdXQuYmFzaWMtaW5wdXQsXG5kaXYuYmFzaWMtaW5wdXQsXG5kaXYuYmFzaWMtaW5wdXQtcmVhZG9ubHkge1xuICAgIHdpZHRoOiAxMDBweDtcbn1cblxuLy8gY3VycmVudFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IG1kID4gYXRobGV0ZSBuYXYgZmlsdGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4uYXRobGV0ZS1tZW51ICB7XG4gICAgLmF0aGxldGUtc2VhcmNoICB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbiAgICAuYXRobGV0ZS1maWx0ZXItc29ydCAge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoaW5pdGlhbCk7XG4gICAgICAgID4gLmF0aGxldGUtc29ydC1ib3ggIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgIC5sYWJlbCAge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHVubG9jay13aWR0aDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDE3cHggMTVweCAxMHB4O1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgICAgICAmOmFmdGVyICB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogOXB4O1xuICAgICAgICAgICAgICAgICAgICByaWdodDogN3B4O1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDM4JTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmF0aGxldGUtcmVzZXQtdmlldyAge1xuICAgICAgICBAaW5jbHVkZSBmbGV4KGluaXRpYWwpO1xuICAgICAgICBAaW5jbHVkZSB1bmxvY2std2lkdGg7XG4gICAgICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgfVxuICAgIC5hdGhsZXRlLXRvZ2dsZS12aWV3ICB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoaW5pdGlhbCk7XG4gICAgICAgIEBpbmNsdWRlIHVubG9jay13aWR0aDtcbiAgICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGhlYWRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4uaGVhZGVyLWNvbnRlbnQgIHtcbiAgICAud2hpdGUtZmllbGQgIHtcbiAgICAgICAgPiBkaXYgPiBkaXYgIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgICAgICsgZGl2ICB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpICB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTVweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpLmljb24tc2hvcCAge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDVweCAwIDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYnV0dG9uICB7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgcGFkZGluZzogMCA1cHg7XG4gICAgfVxuICAgIC5sb2dvICB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkZ3V0dGVyLXdpZHRoO1xuICAgICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoKDEyMHB4KTtcbiAgICB9XG4gICAgLndoaXRlLWZpZWxkID4gYnV0dG9uOmxhc3QtY2hpbGQgIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkZ3V0dGVyLXdpZHRoO1xuICAgIH1cbn1cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBtZCA+IGdyYXBoIGtleVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLmxpbmUtY2hhcnQtbWVudSAge1xuICAgIC5jaGFydC1sZWdlbmQgIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgbWFyZ2luOiAwIDAgMCAxNnB4O1xuICAgICAgICA+IC5mYSAge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBtZCA+IHRlc3RpbmcgcHJvbXB0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLnByb21wdC1ib3ggIHtcbiAgICBwYWRkaW5nOiAxNXB4O1xufVxuLnRlc3QtbGFuZGluZyAucHJvbXB0LWJveCAge1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkgIHtcbiAgICAudGVzdC1sYW5kaW5nICB7XG4gICAgICAgIHBhZGRpbmc6IDI4cHggMCA1NnB4O1xuICAgIH1cbiAgICAudGVzdC1sYW5kaW5nX190aXRsZSAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgIH1cbiAgICAudGVzdC1sYW5kaW5nX19zZWN0aW9uICsgLnRlc3QtbGFuZGluZ19fc2VjdGlvbiAge1xuICAgICAgICBtYXJnaW4tdG9wOiAyOHB4O1xuICAgIH1cbiAgICAudGVzdC1sYW5kaW5nX19jYXJkLFxuICAgIC50ZXN0LWxhbmRpbmcgLnByb21wdC1ib3ggIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgIC8vIFRoZSBkZXNrdG9wIHJ1bGVzIHBpbiB0aGUgY2FyZCB0byBhIGZpeGVkIDg0cHggc28gdGhlIG9uZS1saW5lIHJvd1xuICAgICAgICAvLyBzdGF5cyB1bmlmb3JtLiBTdGFja2luZyBtYWtlcyB0aGF0IGEgaGFyZCBjbGlwLCBzbyByZWxlYXNlIGl0IGhlcmUgb3JcbiAgICAgICAgLy8gdGhlIGJ1dHRvbiBzcGlsbHMgb3V0IG9mIHRoZSBjYXJkIGFuZCBvdmVyIHRoZSBuZXh0IG9uZS5cbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiA4NHB4O1xuICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgICBnYXA6IDE0cHg7XG4gICAgfVxuICAgIC50ZXN0LWxhbmRpbmdfX2NhcmQtYWN0aW9ucyAge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgIH1cbiAgICAudGVzdC1sYW5kaW5nX19idG4gIHtcbiAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gbWQgPiBtaXNjIGNoYXJ0c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLnJlcG9ydC1jaGFydC1jb250YWluZXIgIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICAubGluZS1jaGFydCAge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgLnJlcG9ydC1jaGFydC1kZXRhaWxzICB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIC5yZXBvcnQtY2hhcnQtZGV0YWlsICB7XG4gICAgICAgICAgICA+IGRpdiAge1xuXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBtZCA+IHJlcG9ydCB0YWJsZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLnJlcG9ydC1kZXRhaWxzLWNvbnRhaW5lciAge1xuICAgIC50aXRsZSAge1xuICAgICAgICBAaW5jbHVkZSB1bmxvY2std2lkdGg7XG4gICAgfVxufVxuXG4gICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIHNlY3Rpb24gPiBtZCA+IGVuZFxuICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbn1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChzbSkgIHsgYm9keSAge1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHNtID4gYXRobGV0ZSBncmlkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGNhdGFsb2cgbmF2XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4uYWRtaW4tbWVudSA+IGRpdiArIGRpdiB7XG4gICAgbWFyZ2luLWxlZnQ6IDE4cHg7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBjYXRhbG9nIHNpZGUgbmF2XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4uY2F0YWxvZ19jb250YWluZXIgIHtcbiAgICBAaW5jbHVkZSBmbGV4KDEgMCAyMDBweCk7XG59XG4uY2F0YWxvZy1zZWFyY2ggIHtcbiAgICBmb3JtICB7XG4gICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaW5wdXRbdHlwZT0ndGV4dCddICB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgICAgICAgICAgdGV4dC1pbmRlbnQ6IDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIH1cbiAgICAgICAgYnV0dG9uW3R5cGU9J3Jlc2V0J10gIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY2F0YWxvZy1mZWF0dXJlIC5mZWF0dXJlLWNvbnRhaW5lciAuZmVhdHVyZS1jb250ZW50ICB7XG4gICAgbGVmdDogNDBweDtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHRlYW1zIHRhYmxlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi5wcmFjdGl0aW9uZXJzVGFibGUsXG4udGVhbXNUYWJsZSAge1xuICAgID4gLnJvdy1jb250YWluZXIgIHtcbiAgICAgICAgPiBkaXYgIHtcbiAgICAgICAgICAgID4gc3BhbiAge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4ucHJhY3RpdGlvbmVyc1RhYmxlICB7XG4gICAgPiAucm93LWNvbnRhaW5lciAge1xuICAgICAgICA+IGRpdiAge1xuICAgICAgICAgICAgJjpudGgtY2hpbGQoMSkgIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgxMTJweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOm50aC1jaGlsZCgyKSAge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKDk2cHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMykgIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgxMDhweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOm50aC1jaGlsZCg0KSAge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZsZXhJbmxpbmVPdmVycmlkZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDUpICB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoMTEwcHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpudGgtY2hpbGQoNikgIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSg4OHB4KTtcbiAgICAgICAgICAgICAgICBidXR0b24gIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMCA2cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4udGVhbXNUYWJsZSAge1xuICAgID4gLnJvdy1jb250YWluZXIgIHtcbiAgICAgICAgPiBkaXYgIHtcbiAgICAgICAgICAgIC8vIG1pbi1oZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpICB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoOTZweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOm50aC1jaGlsZCgyKSAge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKDEwMHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDMpICB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoMTAwcHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpudGgtY2hpbGQoNCkgIHtcbiAgICAgICAgICAgICAgICAvLyBAaW5jbHVkZSBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgxNjBweCk7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZmxleElubGluZU92ZXJyaWRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjpudGgtY2hpbGQoNSkgIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSg3MHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDYpICB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoMjEycHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBzbWFsbGVyIHNjcmVlbnMgdXBkYXRlc1xuQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcblx0Ly8gbWFrZSB0aGUgbG9nbyBhIGxpdHRsZSBzbWFsbGVyXG5cdC5oZWFkZXItbG9nbyAge1xuXHRcdG1hcmdpbjogMCAxNXB4O1xuXHRcdGltZyAge1xuXHRcdFx0d2lkdGg6IDEwMCU7IC8vIGRvbid0IHdvcnJ5LCB0aGVyZSdzIGFscmVhZHkgYSBtYXgtd2lkdGggYXBwbGllZCB0byB0aGlzXG5cdFx0fVxuXHR9XG5cblx0Ly8gaGlkZSB0aGUgbmF2IGljb25zIHRvIHNhdmUgc29tZSBzcGFjZVxuXHQuaGVhZGVyLWNvbnRlbnQgLndoaXRlLWZpZWxkID4gZGl2ID4gZGl2ICB7XG5cdFx0aSAge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQvLyBmb3Igc2NyZWVuIHNpemVzIGFyb3VuZCA3NjhweCwgMiB0ZWFtIG1lbWJlcnMgcGVyIHJvdyBsb29rcyBiZXR0ZXIgdGhhbiAzXG5cdC5hdGhsZXRlLWRhc2hib2FyZCAuYXRobGV0ZS1kYXNoYm9hcmQtY29udGFpbmVyIHtcblx0XHQuYXRobGV0ZS1pbmZvLWJveCxcblx0XHQuYXRobGV0ZS1hZGQtYm94ICB7XG5cdFx0XHR3aWR0aDogY2FsYygoMTAwJSAtIDIwcHgpIC8gMik7XG5cdFx0fVxuXHRcdC5hdGhsZXRlLWluZm8tYm94IC5iaW8tYm9keSAuYXRobGV0ZS1wcm9maWxlIC5wcm9maWxlLXBpYyAge1xuXHRcdFx0bWF4LWhlaWdodDogbm9uZTsgLy8gb3RoZXJ3aXNlIGl0IHdpbGwgc3RyZXRjaCB3aGVuIG1peGVkIHdpdGggd2lkdGg6IDEwMCVcblx0XHR9XG5cdH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGVuZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xufSB9IC8vIGVuZCByZXNwb25kKHNtKVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgYm9keSAuYXRobGV0ZS1kYXNoYm9hcmQgLmF0aGxldGUtZGFzaGJvYXJkLWNvbnRhaW5lciB7XG4gICAgLmF0aGxldGUtaW5mby1ib3gsXG4gICAgLmF0aGxldGUtYWRkLWJveCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGxpc3QgdmlldyA+IHNtYWxsIHNjcmVlbnNcbi8vIG92ZXJyaWRlIHJlc3BvbmQobWQpIHBlcmNlbnRhZ2UgbG9jay13aWR0aHMgc28gdGhlIHRhYmxlIHNjcm9sbHNcbi8vIGluc3RlYWQgb2YgY3J1c2hpbmcgY29sdW1ucyB0byA3LjUlLzE4JSBvZiBhIHRpbnkgdmlld3BvcnRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBtZXRlc3QgcGFnZSA+IHNtYWxsIHNjcmVlbnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAvLyBVbmxvY2sgdGhlIDc3MHB4IGxvY2sgb24gdGhlIEFuZ3VsYXJVSSBtb2RhbCBhbmltYXRlIGNvbnRhaW5lclxuICAubW9kYWwtYW5pbWF0ZS1jb250YWluZXIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KSAhaW1wb3J0YW50O1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMzBweCkgIWltcG9ydGFudDtcbiAgfVxuICAvLyBCb290c3RyYXAgbW9kYWwgZGlhbG9nIGZhbGxiYWNrXG4gIC5tb2RhbC1kaWFsb2cge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KTtcbiAgICBtYXJnaW4tdG9wOiA2MHB4O1xuICB9XG4gIC8vIFJlbW92ZSAzMDBweCBtaW4td2lkdGggYW5kIHN0cmV0Y2ggY2hpbGRyZW4gc28gdGV4dGFyZWEgZmlsbHMgZnVsbCB3aWR0aFxuICAubW9kYWwtY29udGFpbmVyIHNlY3Rpb24ge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cblxuICAvLyBDbGluaWNhbCByZXBvcnQgbW9kYWw6IGRyb3Bkb3duIGZpdHMgc2NyZWVuLCBzZWxlY3RlZCB2YWx1ZSB0cnVuY2F0ZXMgd2l0aCBlbGxpcHNpc1xuICBsYWJlbC5jbGluaWNhbC1mb3JtLWZpZWxkIHtcbiAgICBtYXJnaW46IDAgMTVweDtcbiAgfVxuICBmdXNpb24tb3JkZXJlZC1kcm9wLWRvd24uY2xpbmljYWwtZHJvcC1kb3duIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgPiBkaXYuY29sdW1uLWNvbnRhaW5lciB7XG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXggIWltcG9ydGFudDtcbiAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgICAuc2VsZWN0LXRvZ2dsZSB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgZmxleDogMTtcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG4gICAgLnNlbGVjdC10b2dnbGUgc3Bhbi5maWx0ZXJlZCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgfVxuICB9XG59XG5cbi8vIFByb2dyYW0gZWRpdCBwYWdlIHJlc3BvbnNpdmUgcnVsZXMgYXJlIGluIGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3Ncbi8vIChtdXN0IGJlIGluIHRoZSBzZWNvbmQtbG9hZGVkIGJ1bmRsZSB0byB3aW4gdGhlIGNhc2NhZGUpXG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICBib2R5IC5hdGhsZXRlLWxpc3Qtdmlldy52aWV3LWxheW91dCB7XG4gICAgLmF0aGxldGUtaGVhZGVyLFxuICAgIC5hdGhsZXRlLXJvdyB7XG4gICAgICBtaW4td2lkdGg6IDY4MHB4O1xuICAgIH1cbiAgICAuYXRobGV0ZS1uYW1lIHtcbiAgICAgIG1pbi13aWR0aDogMTMwcHg7XG4gICAgfVxuICAgIC5hdGhsZXRlLXN0YXQge1xuICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCg3MHB4KTtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICB9XG4gICAgLmF0aGxldGUtcHJvZ3JhbXMge1xuICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCgxMTBweCk7XG4gICAgfVxuICAgIC5hdGhsZXRlLWxhc3QtYWN0aXZpdHkge1xuICAgICAgQGluY2x1ZGUgbG9jay13aWR0aCgxMjBweCk7XG4gICAgfVxuICAgIC5hdGhsZXRlLXJvdyB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgfVxuICB9XG59XG4iLCIkcmVkOiAjYzQyYTNiO1xuJGJsdWU6ICM5NzY4RUI7XG4kZGFya19ibHVlOiAjMTEyNjRiO1xuJGdyZXk6ICM4MDgwODA7XG4kZ3JlZW46ICMyMGI3Njk7XG4kd2hpdGU6ICNmZmZmZmY7XG4keWVsbG93OiAjZDhiNjJmO1xuJGxpZ2h0X2dyZXk6ICNjZGNkY2Q7XG4kZGFya19ncmV5OiAjNmQ2ZTcyO1xuJHNjb3JlLWdyZWVuOiAjMDBCOTZEO1xuJHNjb3JlLXJlZDogI0QxNDA0QjtcbiRzY29yZS15ZWxsb3c6ICNEN0JCNDM7XG5cbiRmb290ZXJfYmFja2dyb3VuZDogIzExMjY0YjtcbiRhdGhsZXRlX2hlYWRlcl9wcmltYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfaGVhZGVyX3NlY29uZGFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2xpc3RfbmFtZTogI2Y3ZjdmNztcbiIsIlxuQG1peGluIHRyYW5zZm9ybSgkdHJhbnNmb3Jtcykge1xuICAgICAtbW96LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgLW8tdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgIC1tcy10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAtd2Via2l0LXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAgICAgdHJhbnNmb3JtOiAkdHJhbnNmb3Jtcztcbn1cblxuQG1peGluIGFwcGVhcmFuY2UoJGFwcGVhcmFuY2UuLi4pIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgLW1vei1hcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbiAgICAgICAgICBhcHBlYXJhbmNlOiAkYXBwZWFyYW5jZTtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJGJvcmRlci1yYWRpdXMuLi4pIHtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbn1cblxuQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICAtd2Via2l0LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgIC1tb3otYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgICAgICBib3gtc2hhZG93OiAkc2hhZG93O1xufVxuXG5AbWl4aW4gYm94LXNpemluZygkc2l6ZS4uLikge1xuICAtd2Via2l0LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAtbW96LWJveC1zaXppbmc6ICRzaXplO1xuICAgICAgICAgIGJveC1zaXppbmc6ICRzaXplO1xufVxuXG5AbWl4aW4gdXNlci1zZWxlY3QoJHNlbGVjdC4uLikge1xuLXdlYmtpdC10b3VjaC1jYWxsb3V0OiAkc2VsZWN0O1xuICAgICAtbXMtdG91Y2gtc2VsZWN0OiAkc2VsZWN0O1xuICAgICAtbW96LXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgLW1zLXVzZXItc2VsZWN0OiAkc2VsZWN0O1xuICAgICAgICAgIHVzZXItc2VsZWN0OiAkc2VsZWN0O1xufVxuXG5AbWl4aW4gZmxleCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4OiAkdmFsdWU7XG4gICAgICAtbXMtZmxleDogJHZhbHVlO1xuICAgICAgICAgIGZsZXg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1pdGVtcygkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1pdGVtczogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tc2VsZjogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLXNlbGY6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbi1pbXBvcnRhbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246ICR2YWx1ZSFpbXBvcnRhbnQ7XG59XG5cbkBtaXhpbiBmbGV4LWRpc3BsYXkoKSB7XG4gIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtaXhpbiBmbGV4LWp1c3RpZnktY29udGVudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtb3JkZXIoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtb3JkZXI6ICR2YWx1ZTtcbiAgICAgICAgICBvcmRlcjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtd3JhcDogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtd3JhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4oKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGZsZXgtcm93KCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTtcbn1cblxuQG1peGluIGZsZXgtcm93LWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBsb2NrLWhlaWdodCgkdmFsdWUuLi4pIHtcbiAgbWF4LWhlaWdodDogJHZhbHVlO1xuICBtaW4taGVpZ2h0OiAkdmFsdWU7XG4gIGhlaWdodDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aCgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWU7XG4gIG1pbi13aWR0aDogJHZhbHVlO1xuICB3aWR0aDogJHZhbHVlO1xufVxuXG5AbWl4aW4gbG9jay13aWR0aC1pbmxpbmUtb3ZlcnJpZGUoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbn1cblxuXG5AbWl4aW4gdW5sb2NrLXdpZHRoICB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogYXV0bztcbn1cbkBtaXhpbiB1bmxvY2staGVpZ2h0ICB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGhlaWdodDogYXV0bztcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tY291bnQ6ICR2YWx1ZTtcbiAgY29sdW1uLWNvdW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgLW1vei1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIGNvbHVtbi1nYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1uby1icmVhaygpIHtcbiAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkLWNvbHVtbjtcbiAgLW1vei1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtby1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICAtbXMtY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgYnJlYWstaW5zaWRlOmF2b2lkLWNvbHVtbjtcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiByZXNwb25kXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4kbWluQ29udGVudFdpZHRoOiAxMDI0cHg7XG4kbWluRWRnZUNvbnRlbnRQYWRkaW5nOiAxNXB4O1xuJGxhcmdlQnJlYWtwb2ludDogJG1pbkNvbnRlbnRXaWR0aCArICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbiRjb21wcmVzc2VkQ29udGVudFdpZHRoOiAkbWluQ29udGVudFdpZHRoIC0gJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuLy8gJHNtTWluOiA3NjhweDtcbiRzbU1heDogOTAwcHg7XG5cbi8vIFNoYXJlZCByZXNwb25zaXZlIHRpZXJzLiBQcmVmZXIgdGhlc2Ugb3ZlciBhZC1ob2MgbWF4LXdpZHRoIHF1ZXJpZXMuXG4vLyBOT1RFOiBmdXNpb25ldGljcy1tYXJrLWFkZGl0aW9ucy5zY3NzIGRlZmluZXMgaXRzIG93biByZXNwb25kKCkgYW5kIGRvZXMgbm90XG4vLyBpbXBvcnQgdGhpcyBmaWxlLCBzbyB0aGVzZSB0b2tlbnMgYXJlIG9ubHkgYXZhaWxhYmxlIGluc2lkZSB0aGVcbi8vIGZ1c2lvbmV0aWNzLWFuZ3VsYXItcHJvdG90eXBlIGJ1bmRsZS5cbiRicC13aWRlOiAgIDExMDBweDsgLy8gd2lkZSBkZXNrdG9wIC0+IG5hcnJvdyBkZXNrdG9wXG4kYnAtdGFibGV0OiAgOTAwcHg7IC8vIGNvbGxhcHNlIG11bHRpLWNvbHVtbiByb3dzXG4kYnAtbW9iaWxlOiAgNzY4cHg7IC8vIHByb2plY3Qtd2lkZSBtb2JpbGUgYnJlYWtwb2ludFxuJGJwLXBob25lOiAgIDQ4MHB4OyAvLyBjb21wYWN0IHBob25lIHRpZXJcblxuQG1peGluIHJlc3BvbmQoJG1lZGlhKSB7XG4gIEBpZiAkbWVkaWEgPT0gd2hpdGVib2FyZC1leGVyY2lzZS1zdGFja2VkLWF0dHJpYnV0ZXMge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTE5MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgLy8gVGhlIFNjaGVkdWxlIFByb2dyYW0gc3RlcHBlciBuZWVkcyB+NTM2cHggdG8gc2l0IG9uIG9uZSBsaW5lLiBUaGF0IGZhbGxzXG4gIC8vIGJldHdlZW4gdGhlIHBob25lIGFuZCBtb2JpbGUgdGllcnMsIHNvIGl0IGdldHMgaXRzIG93biBsaWtlIHRoZSB3aGl0ZWJvYXJkXG4gIC8vIGF0dHJpYnV0ZSByb3cgYWJvdmUuXG4gIEBpZiAkbWVkaWEgPT0gc2NoZWR1bGUtc3RlcHMtc3RhY2tlZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1NjBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBpZiAkbWVkaWEgPT0gbGcge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJGxhcmdlQnJlYWtwb2ludCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtZCB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRsYXJnZUJyZWFrcG9pbnQgLSAxcHh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHNtIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JHNtTWF4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB3aWRlLWRvd24ge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtd2lkZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSB0YWJsZXQge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtdGFibGV0KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1vYmlsZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1tb2JpbGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gcGhvbmUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtcGhvbmUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxufVxuXG4vLyBFc2NhcGUgdGhlIGdsb2JhbCBidXR0b24gcnVsZSBpbiBfYmFzZS5zY3NzXG4vLyAobWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDFweCkuXG5AbWl4aW4gdW5zdHlsZS1idXR0b24ge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHhwYWQgLyB5cGFkXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiB4cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctbGVmdDogJHBhZDtcbiAgcGFkZGluZy1yaWdodDogJHBhZDtcbn1cbkBtaXhpbiB5cGFkKCRwYWQpICB7XG4gIHBhZGRpbmctdG9wOiAkcGFkO1xuICBwYWRkaW5nLWJvdHRvbTogJHBhZDtcbn1cbkBtaXhpbiB4bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi1sZWZ0OiAkZ2FwO1xuICBtYXJnaW4tcmlnaHQ6ICRnYXA7XG59XG5AbWl4aW4geW1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tdG9wOiAkZ2FwO1xuICBtYXJnaW4tYm90dG9tOiAkZ2FwO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZV95KCRoKSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2UoJHcsICRoOiAkdykgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tdG9wOiAkaC8tMjtcbiAgbWFyZ2luLWxlZnQ6ICR3Ly0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVySWNvbigkdywgJGg6ICR3KSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlKCR3LCAkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5AbWl4aW4gYWJzQ2VudGVySWNvbl95KCRoKSAge1xuICBAaW5jbHVkZSBhYnNDZW50ZXJCYXNlX3koJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuXG5AbWl4aW4gZmxleElubGluZU92ZXJyaWRlICB7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgLW1zLWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICBmbGV4OiAxICFpbXBvcnRhbnQ7XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gYXBwLXNwZWNpZmljIG1peGluL3ZhcnMgPiB0YWJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbkBtaXhpbiBsYXJnZS10YWJzLXN0eWxlICB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4kbGFyZ2UtdGFicy1zcGFjaW5nOiA0MHB4O1xuXG5AbWl4aW4gdHJpbUlubmVyTWFyZ2luICB7XG4gID4gKiAge1xuICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICB9XG4gICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHBsYWNlaG9sZGVyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICBcbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuICAmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cbiAgJjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fSAgXG59XG5cblxuIiwiQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuQGltcG9ydCBcIm1peGluczJcIjtcblxuXG4uYXJyb3dUYWJzICB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBAaW5jbHVkZSBncmlkeGdhcCgycHgpO1xuICAgID4gc3BhbiAge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICY6YmVmb3JlICB7XG4gICAgICAgICAgICBjb250ZW50OiBcIiBcIjsgICAgICBcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtOHB4O1xuICAgICAgICAgICAgYm90dG9tOiAtNnB4O1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJpYW5nbGUoMTZweCA2cHgsICRibHVlLCBkb3duKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgfVxuICAgICAgICBzcGFuICB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDhweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjRjJGNEY1O1xuICAgICAgICAgICAgY29sb3I6ICNBQkIwQjM7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgICAgICAgIHNwYW4gIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHggMCAwIDVweDsgIFxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICAgICAgICBzcGFuICB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCA1cHggNXB4IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgICAmLmFjdGl2ZSAge1xuICAgICAgICAgICAgJjpiZWZvcmUgIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNwYW4gIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYmx1ZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHByb2dyYW0gc2NoZWR1bGUgdGFibGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHByb2dyYW1TY2hlZHVsZVRhYmxlQXR0cnMoJGxlZnRQdWxsLCAkaW5uZXJTcGFjaW5nKSAgeyAgXG4gICAgJHByb2dyYW1icmVha3BvaW50OiAkbGFyZ2VCcmVha3BvaW50ICsgJGxlZnRQdWxsICsgNDBweDtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkOyAgXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkcHJvZ3JhbWJyZWFrcG9pbnQpIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArICN7JGxlZnRQdWxsfSk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAkbGVmdFB1bGwqLTE7XG4gICAgfVxuICAgIHRyICB7XG4gICAgICAgID4gKiAge1xuICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkbGVmdFB1bGw7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICsgKiAgeyAgICAgIFxuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKCgxMDAvNyoxJSkgLSAjeyRsZWZ0UHVsbC83fSk7XG4gICAgICAgICAgICAgICAgKyAqICB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGlubmVyU3BhY2luZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9ICAgICAgICAgICAgXG4gICAgICAgIH1cbiAgICAgICAgKyB0ciAge1xuICAgICAgICAgICAgPiAqICB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6ICRpbm5lclNwYWNpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdGhlYWQgIHtcbiAgICAgICAgdGggIHtcbiAgICAgICAgICAgIGNvbG9yOiAjQkRDMUM1O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgcGFkZGluZzogMCAwIDE1cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRib2R5ICB7XG4gICAgICAgIHRoICB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGNvbG9yOiAjODQ4OTkwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfSAgICBcbiAgICB9XG59XG4ucHJvZ3JhbVNjaGVkdWxlVGFibGUgIHtcbiAgICBAaW5jbHVkZSBwcm9ncmFtU2NoZWR1bGVUYWJsZUF0dHJzKDcwcHgsIDVweCk7XG59XG5cbkBtaXhpbiBhY3Rpdml0eVBpbGxHcm91cEF0dHMoJHBpbGxHYXApICB7XG4gICAgJHBpbGxIZWlnaHQ6ICRwaWxsR2FwKjIvMztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogI0YyRjRGNTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uOyAgXG4gICAgaGVpZ2h0OiAxMTcuM3B4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC5hY3Rpdml0eVBpbGwgIHtcbiAgICAgICAgaGVpZ2h0OiBjYWxjKDMzLjMzMyUgLSAjeyRwaWxsSGVpZ2h0fSk7XG4gICAgICAgICsgLmFjdGl2aXR5UGlsbCAge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHBpbGxHYXA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmFkZEljb24gIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgY29sb3I6ICNDREQzRDc7ICAgIFxuICAgICAgICBAaW5jbHVkZSBhYnNDZW50ZXJJY29uKDQwcHgpO1xuICAgIH0gIFxufVxuXG4uYWN0aXZpdHlQaWxsR3JvdXAgIHtcbiAgICBAaW5jbHVkZSBhY3Rpdml0eVBpbGxHcm91cEF0dHMoM3B4KTtcbn1cbi5hY3Rpdml0eVBpbGwgIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5hY3Rpdml0eVBpbGwtLXByb21wdCAge1xuICAgIGJhY2tncm91bmQ6ICNFNEU5RUM7XG4gICAgY29sb3I6ICNCREMxQzU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uYWN0aXZpdHlQaWxsLS1hY3RpdmUgIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmx1ZTsgIFxuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAwIDE1cHg7XG4gICAgLmNsb3NlSWNvbiAge1xuICAgICAgICBAaW5jbHVkZSBhYnNDZW50ZXJJY29uX3koMTBweCk7XG4gICAgICAgIHJpZ2h0OiA1cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9ICAgXG59XG5cbi5hY3Rpdml0eVBpbGxHcm91cC0tZW1wdHkgIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLmFkZEljb24gIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gc2VsZWN0ICsgYWRkIHBpbGxcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gICAgXG4uc2VsZWN0QWRkUGlsbCAge1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBAaW5jbHVkZSBmbGV4LXJvdztcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKHN0cmV0Y2gpO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAudGwtZW50cnkgLnRsLXNlbGVjdCxcbiAgICAudGwtZW50cnkgLnRsLXNlbGVjdC1pbnB1dCAuc2VsZWN0LXRvZ2dsZSB7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cbiAgICBidXR0b24ucHJpbWFyeSAge1xuICAgICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuICAgID4gKiAge1xuICAgICAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICB9XG4gICAgICAgICsgKiAge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XG4gICAgICAgIH1cbiAgICB9XG59IiwiJHJlZDogI2M0MmEzYjtcbiRibHVlOiAjOTc2OEVCO1xuJGRhcmtfYmx1ZTogIzExMjY0YjtcbiRncmV5OiAjODA4MDgwO1xuJGdyZWVuOiAjMjBiNzY5O1xuJHdoaXRlOiAjZmZmZmZmO1xuJHllbGxvdzogI2Q4YjYyZjtcbiRsaWdodF9ncmV5OiAjY2RjZGNkO1xuJGRhcmtfZ3JleTogIzZkNmU3MjtcbiRzY29yZS1ncmVlbjogIzAwQjk2RDtcbiRzY29yZS1yZWQ6ICNEMTQwNEI7XG4kc2NvcmUteWVsbG93OiAjRDdCQjQzO1xuXG4kZm9vdGVyX2JhY2tncm91bmQ6ICMxMTI2NGI7XG4kYXRobGV0ZV9oZWFkZXJfcHJpbWFyeTogI2UxZTFlMTtcbiRhdGhsZXRlX2hlYWRlcl9zZWNvbmRhcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9saXN0X25hbWU6ICNmN2Y3Zjc7XG4iLCJcbkBtaXhpbiB0cmFuc2Zvcm0oJHRyYW5zZm9ybXMpIHtcbiAgICAgLW1vei10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgIC1vLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gICAgICAtbXMtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgLXdlYmtpdC10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgICAgIHRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG59XG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcHBlYXJhbmNlLi4uKSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgIC1tb3otYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJGFwcGVhcmFuY2U7XG59XG5cbkBtaXhpbiBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLi4uKSB7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3cuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAtbW96LWJveC1zaGFkb3c6ICRzaGFkb3c7XG4gICAgICAgICAgYm94LXNoYWRvdzogJHNoYWRvdztcbn1cblxuQG1peGluIGJveC1zaXppbmcoJHNpemUuLi4pIHtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgLW1vei1ib3gtc2l6aW5nOiAkc2l6ZTtcbiAgICAgICAgICBib3gtc2l6aW5nOiAkc2l6ZTtcbn1cblxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QuLi4pIHtcbi13ZWJraXQtdG91Y2gtY2FsbG91dDogJHNlbGVjdDtcbiAgICAgLW1zLXRvdWNoLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgLW1vei11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogJHNlbGVjdDtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogJHNlbGVjdDtcbn1cblxuQG1peGluIGZsZXgoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleDogJHZhbHVlO1xuICAgICAgLW1zLWZsZXg6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24taXRlbXMoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtYWxpZ24taXRlbXM6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1zZWxmKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLXNlbGY6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1zZWxmOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5AbWl4aW4gZmxleC1kaXJlY3Rpb24taW1wb3J0YW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiAkdmFsdWUhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZmxleC1kaXNwbGF5KCkge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG5AbWl4aW4gZmxleC1qdXN0aWZ5LWNvbnRlbnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtanVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LW9yZGVyKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LW9yZGVyOiAkdmFsdWU7XG4gICAgICAgICAgb3JkZXI6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LXdyYXA6ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LXdyYXA6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uKCkge1xuICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24oY29sdW1uKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLWNlbnRlcigpIHtcbiAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xufVxuXG5AbWl4aW4gZmxleC1jb2x1bW4tc3RhcnQoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdygpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtcm93LXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gbG9jay1oZWlnaHQoJHZhbHVlLi4uKSB7XG4gIG1heC1oZWlnaHQ6ICR2YWx1ZTtcbiAgbWluLWhlaWdodDogJHZhbHVlO1xuICBoZWlnaHQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgoJHZhbHVlLi4uKSB7XG4gIG1heC13aWR0aDogJHZhbHVlO1xuICBtaW4td2lkdGg6ICR2YWx1ZTtcbiAgd2lkdGg6ICR2YWx1ZTtcbn1cblxuQG1peGluIGxvY2std2lkdGgtaW5saW5lLW92ZXJyaWRlKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xuICB3aWR0aDogJHZhbHVlICFpbXBvcnRhbnQ7XG59XG5cblxuQG1peGluIHVubG9jay13aWR0aCAge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IGF1dG87XG59XG5AbWl4aW4gdW5sb2NrLWhlaWdodCAge1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWNvdW50OiAkdmFsdWU7XG4gIGNvbHVtbi1jb3VudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1jb2x1bW4tZ2FwOiAkdmFsdWU7XG4gIC1tb3otY29sdW1uLWdhcDogJHZhbHVlO1xuICBjb2x1bW4tZ2FwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBjb2x1bW4tbm8tYnJlYWsoKSB7XG4gIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gIC1tb3otY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW8tY29sdW1uLWJyZWFrLWluc2lkZTphdm9pZDtcbiAgLW1zLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIGJyZWFrLWluc2lkZTphdm9pZC1jb2x1bW47XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcmVzcG9uZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuJG1pbkNvbnRlbnRXaWR0aDogMTAyNHB4O1xuJG1pbkVkZ2VDb250ZW50UGFkZGluZzogMTVweDtcbiRsYXJnZUJyZWFrcG9pbnQ6ICRtaW5Db250ZW50V2lkdGggKyAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4kY29tcHJlc3NlZENvbnRlbnRXaWR0aDogJG1pbkNvbnRlbnRXaWR0aCAtICRtaW5FZGdlQ29udGVudFBhZGRpbmcqMjtcbi8vICRzbU1pbjogNzY4cHg7XG4kc21NYXg6IDkwMHB4O1xuXG4vLyBTaGFyZWQgcmVzcG9uc2l2ZSB0aWVycy4gUHJlZmVyIHRoZXNlIG92ZXIgYWQtaG9jIG1heC13aWR0aCBxdWVyaWVzLlxuLy8gTk9URTogZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMuc2NzcyBkZWZpbmVzIGl0cyBvd24gcmVzcG9uZCgpIGFuZCBkb2VzIG5vdFxuLy8gaW1wb3J0IHRoaXMgZmlsZSwgc28gdGhlc2UgdG9rZW5zIGFyZSBvbmx5IGF2YWlsYWJsZSBpbnNpZGUgdGhlXG4vLyBmdXNpb25ldGljcy1hbmd1bGFyLXByb3RvdHlwZSBidW5kbGUuXG4kYnAtd2lkZTogICAxMTAwcHg7IC8vIHdpZGUgZGVza3RvcCAtPiBuYXJyb3cgZGVza3RvcFxuJGJwLXRhYmxldDogIDkwMHB4OyAvLyBjb2xsYXBzZSBtdWx0aS1jb2x1bW4gcm93c1xuJGJwLW1vYmlsZTogIDc2OHB4OyAvLyBwcm9qZWN0LXdpZGUgbW9iaWxlIGJyZWFrcG9pbnRcbiRicC1waG9uZTogICA0ODBweDsgLy8gY29tcGFjdCBwaG9uZSB0aWVyXG5cbkBtaXhpbiByZXNwb25kKCRtZWRpYSkge1xuICBAaWYgJG1lZGlhID09IHdoaXRlYm9hcmQtZXhlcmNpc2Utc3RhY2tlZC1hdHRyaWJ1dGVzIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExOTBweCkgeyBAY29udGVudDsgfVxuICB9XG4gIC8vIFRoZSBTY2hlZHVsZSBQcm9ncmFtIHN0ZXBwZXIgbmVlZHMgfjUzNnB4IHRvIHNpdCBvbiBvbmUgbGluZS4gVGhhdCBmYWxsc1xuICAvLyBiZXR3ZWVuIHRoZSBwaG9uZSBhbmQgbW9iaWxlIHRpZXJzLCBzbyBpdCBnZXRzIGl0cyBvd24gbGlrZSB0aGUgd2hpdGVib2FyZFxuICAvLyBhdHRyaWJ1dGUgcm93IGFib3ZlLlxuICBAaWYgJG1lZGlhID09IHNjaGVkdWxlLXN0ZXBzLXN0YWNrZWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTYwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAaWYgJG1lZGlhID09IGxnIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6ICRsYXJnZUJyZWFrcG9pbnQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbWQge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skbGFyZ2VCcmVha3BvaW50IC0gMXB4fSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBzbSB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAjeyRzbU1heH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gd2lkZS1kb3duIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXdpZGUpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gdGFibGV0IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXRhYmxldCkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBtb2JpbGUge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkYnAtbW9iaWxlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHBob25lIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLXBob25lKSB7IEBjb250ZW50OyB9XG4gIH1cbn1cblxuLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzc1xuLy8gKG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAxcHgpLlxuQG1peGluIHVuc3R5bGUtYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBtYXgtaGVpZ2h0OiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB4cGFkIC8geXBhZFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4geHBhZCgkcGFkKSAge1xuICBwYWRkaW5nLWxlZnQ6ICRwYWQ7XG4gIHBhZGRpbmctcmlnaHQ6ICRwYWQ7XG59XG5AbWl4aW4geXBhZCgkcGFkKSAge1xuICBwYWRkaW5nLXRvcDogJHBhZDtcbiAgcGFkZGluZy1ib3R0b206ICRwYWQ7XG59XG5AbWl4aW4geG1hcmdpbigkZ2FwKSAge1xuICBtYXJnaW4tbGVmdDogJGdhcDtcbiAgbWFyZ2luLXJpZ2h0OiAkZ2FwO1xufVxuQG1peGluIHltYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLXRvcDogJGdhcDtcbiAgbWFyZ2luLWJvdHRvbTogJGdhcDtcbn1cblxuQG1peGluIGFic0NlbnRlckJhc2VfeSgkaCkgIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlKCR3LCAkaDogJHcpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgbWFyZ2luLXRvcDogJGgvLTI7XG4gIG1hcmdpbi1sZWZ0OiAkdy8tMjtcbn1cblxuQG1peGluIGFic0NlbnRlckljb24oJHcsICRoOiAkdykgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZSgkdywgJGgpO1xuICBmb250LXNpemU6ICRoO1xufVxuQG1peGluIGFic0NlbnRlckljb25feSgkaCkgIHtcbiAgQGluY2x1ZGUgYWJzQ2VudGVyQmFzZV95KCRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cblxuQG1peGluIGZsZXhJbmxpbmVPdmVycmlkZSAge1xuICAgIG1pbi13aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIC1tcy1mbGV4OiAxICFpbXBvcnRhbnQ7XG4gICAgZmxleDogMSAhaW1wb3J0YW50O1xufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIGFwcC1zcGVjaWZpYyBtaXhpbi92YXJzID4gdGFic1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gbGFyZ2UtdGFicy1zdHlsZSAge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LXdlaWdodDogNTAwO1xuICBAaW5jbHVkZSByZXNwb25kKG1kKSAge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuJGxhcmdlLXRhYnMtc3BhY2luZzogNDBweDtcblxuQG1peGluIHRyaW1Jbm5lck1hcmdpbiAge1xuICA+ICogIHtcbiAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBwbGFjZWhvbGRlclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxufVxuXG5cbiIsIi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIG5vdGU6ICB0aGlzIGlzIGFuIHVwZGF0ZWQgbWl4aW5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gICAgXG5cbkBtaXhpbiBldmVuLWNvbHMgIHtcbiAgQGluY2x1ZGUgZmxleC1yb3c7XG4gICAgJi5jb21wYWN0ICB7XG4gICAgICAgID4gKiAge1xuICAgICAgICAgICAgKyAqICB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5zcGFjZWQtb3V0ICB7XG4gICAgICA+ICogIHtcbiAgICAgICAgICArICogIHtcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDQ1cHg7XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmLmRlZmF1bHQtc3BhY2VkICB7XG4gICAgICA+ICogIHtcbiAgICAgICAgICArICogIHtcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAmLmJvdHRvbS1hbGlnbiAge1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LWVuZCk7XG4gICAgfVxuICAgICYuZXZlbi1jb2xzLS1zdHJpcElubmVyTWFyZ2lucyAge1xuICAgICAgPiAqICB7XG4gICAgICAgID4gKiAge1xuICAgICAgICAgICY6Zmlyc3QtY2hpbGQgIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgICAgJjpsYXN0LWNoaWxkICB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgID4gKiAge1xuICAgICAgICBAaW5jbHVkZSBmbGV4KDEpO1xuICAgIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gbm90ZTogIGV2ZXJ5dGhpbmcgYmVsb3cgdGhpcyBpcyBuZXdcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gICBcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB0cmlhbmdsZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyAgXG5AbWl4aW4gdHJpYW5nbGUoJHNpemUsICRjb2xvciwgJGRpcmVjdGlvbikge1xuICAkd2lkdGg6IG50aCgkc2l6ZSwgMSk7XG4gICRoZWlnaHQ6IG50aCgkc2l6ZSwgbGVuZ3RoKCRzaXplKSk7XG4gICRmb3JlZ3JvdW5kLWNvbG9yOiBudGgoJGNvbG9yLCAxKTtcbiAgJGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuXG4gIEBpZiAoJGRpcmVjdGlvbiA9PSB1cCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bikgb3IgKCRkaXJlY3Rpb24gPT0gcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICAkd2lkdGg6ICR3aWR0aCAvIDI7XG4gICAgJGhlaWdodDogaWYobGVuZ3RoKCRzaXplKSA+IDEsICRoZWlnaHQsICRoZWlnaHQvMik7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSByaWdodCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93biB7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gdXAtcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IHVwLWxlZnQpIHtcbiAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAtcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHVwLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGRvd24tcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGRvd24tbGVmdCkge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXVwKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtZG93bikge1xuICAgIGJvcmRlci1jb2xvcjogJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXJpZ2h0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtbGVmdCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9XG59XG5cblxuQG1peGluIGdyaWR4Z2FwKCRnYXApICB7XG4gICAgbWFyZ2luOiAwICRnYXAqLTE7XG4gICAgPiAqICB7XG4gICAgICAgIHBhZGRpbmc6IDAgJGdhcDtcbiAgICB9XG59XG5cblxuQG1peGluIGlubGluZS1ncmlkLWJhc2UgIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgPiAqICB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAgICBcbiAgfVxufVxuQG1peGluIGlubGluZS1ncmlkLXgoJGdhcCkgIHtcbiAgQGluY2x1ZGUgeG1hcmdpbigkZ2FwKi0xKTtcbiAgPiAqICB7XG4gICAgQGluY2x1ZGUgeG1hcmdpbigkZ2FwKTtcbiAgfVxufVxuQG1peGluIGlubGluZS1ncmlkLXkoJGdhcCkgIHtcbiAgQGluY2x1ZGUgeW1hcmdpbigkZ2FwKi0xKTtcbiAgPiAqICB7XG4gICAgQGluY2x1ZGUgeW1hcmdpbigkZ2FwKTtcbiAgfVxufVxuXG5AbWl4aW4gaW5saW5lLWdyaWQteHkoJGdhcCkgIHtcbiAgbWFyZ2luOiAkZ2FwKi0xO1xuICA+ICogIHtcbiAgICBtYXJnaW46ICRnYXA7XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJtaXhpbnNcIjtcbkBpbXBvcnQgXCJtaXhpbnMyXCI7XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHZhcnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuJGZsZXhGb3JtSW5wdXRfaDogNDZweDtcbiRmbGV4Rm9ybV9wYWQ6IDEycHg7XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB0eXBvZ3JhcGh5XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbi50X3BhZ2VDb250ZW50VGl0bGUgIHtcblx0bWFyZ2luOiAwO1xuXHRjb2xvcjogJGJsdWU7XG5cdGZvbnQtc2l6ZTogMjRweDtcblx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0Ji50b3AgIHtcblx0XHRjb2xvcjogIzc1Nzg3Qjtcblx0fVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBoZWxwZXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbi55Y2VudGVyLWl0ZW1zICB7XG5cdEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuLnhnYXBDaGlsZHJlbiAge1xuXHQ+ICogKyAqICB7XG5cdFx0cGFkZGluZy1sZWZ0OiAxNXB4O1xuXHR9XG59XG5cbi5pbmxpbmVTcGFjZWQgIHtcblx0QGluY2x1ZGUgaW5saW5lLWdyaWQtYmFzZTtcdFxufVxuLmlubGluZVNwYWNlZC0tYWxpZ24tLXRvcCAge1xuXHQ+ICogIHtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHR9XG59XG4uaW5saW5lU3BhY2VkLS1hbGlnbi0tbWlkZGxlICB7XG5cdD4gKiAge1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdH1cbn1cbi5pbmxpbmVTcGFjZWQtLWNvbXBhY3QgIHtcblx0QGluY2x1ZGUgaW5saW5lLWdyaWQteHkoMnB4KTtcbn1cbi5pbmxpbmVTcGFjZWQtLXNwYWNlZCAge1xuXHRAaW5jbHVkZSBpbmxpbmUtZ3JpZC14eSg4cHgpO1xufVxuLmlubGluZVNwYWNlZC0tc3BhY2VkTWVkICB7XG5cdEBpbmNsdWRlIGlubGluZS1ncmlkLXh5KDRweCk7XG59XG4uaW5saW5lU3BhY2VkLS1vcHRpb25JbnB1dHMgIHtcblx0QGluY2x1ZGUgaW5saW5lLWdyaWQteCgxMHB4KTtcblx0QGluY2x1ZGUgaW5saW5lLWdyaWQteSg0cHgpO1xufVxuLmlubGluZVNwYWNlZF9fY2hpbGQgIHtcblx0QGluY2x1ZGUgdHJpbUlubmVyTWFyZ2luO1xufVxuXG4uY29sb3ItLWJhZCAge1xuXHRjb2xvcjogJHJlZDtcbn1cbi5jb2xvci0tZ29vZCAge1xuXHRjb2xvcjogJGdyZWVuO1xufVxuLmNvbG9yLS1vayAge1xuXHRjb2xvcjogJHllbGxvdztcbn1cbi5jb2xvci0tbmV1dHJhbCAge1xuXHRjb2xvcjogJGdyZXk7XG59XG4uY29sb3ItLW5ldXRyYWxCbHVlLCBcbi5jb2xvci0tbGluayAge1xuXHRjb2xvcjogIzRBQjNEQSAhaW1wb3J0YW50OyAvLyBuZWVkcyB0byBvdmVycmlkZSBkZWZhdWx0IHN0eWxlcyBzaW5jZSBpdCBpcyBhIGhlbHBlciBjbGFzc1xufVxuXG4uZmxleFJvdyAge1xuXHRAaW5jbHVkZSBmbGV4LXJvdygpO1x0XG59XG4uZmxleFJvd19fZmxleCAge1xuXHRAaW5jbHVkZSBmbGV4KDEpO1xufVxuXG5idXR0b24ud2lkZSAge1xuXHRtaW4td2lkdGg6IDIwMHB4O1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gYXBwLXNwZWNpZmljIG1peGluc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG5AbWl4aW4gYmxvY2tTaGFkb3cgIHtcblx0Ym94LXNoYWRvdzogMCAwIDNweCByZ2JhKCMwMDAsIDAuMik7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBzY3JvbGwgc2VjdGlvblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG5cbi5zY3JvbGxTaWRlV3JhcCAge1x0XG5cdEBpbmNsdWRlIHJlc3BvbmQobWQtdXApICB7XG5cdFx0QGluY2x1ZGUgZmxleC1yb3c7XHRcblx0fVx0XG59XG4kc2Nyb2xsU2lkZVdyYXBfX3NpZGVfZGFya0M6ICMyOTMwNDA7XG4uc2Nyb2xsU2lkZVdyYXBfX3NpZGUgIHtcblx0b3ZlcmZsb3c6IGF1dG87XG5cdGJhY2tncm91bmQ6ICMzNjNBNDY7XHRcblx0QGluY2x1ZGUgcmVzcG9uZChtZC11cCkgIHtcblx0XHRtaW4td2lkdGg6IDI3NXB4O1xuXHRcdG1heC13aWR0aDogMzQ3cHg7XG5cdFx0d2lkdGg6IDI2LjclO1xuXHR9XHRcblx0QGluY2x1ZGUgcmVzcG9uZChzbSkgIHtcblx0XHRAaW5jbHVkZSBmbGV4LXJvdztcdFxuXHRcdGJhY2tncm91bmQ6ICRzY3JvbGxTaWRlV3JhcF9fc2lkZV9kYXJrQztcblx0XHQubG9nZ2VkSW5CbG9jayAge1xuXHRcdFx0d2lkdGg6IDI0MHB4O1xuXHRcdH1cdFxuXHRcdC5zaWRlQmFyTWFpbkNvbnRlbnQgIHtcblx0XHRcdEBpbmNsdWRlIGZsZXgoMSk7XG5cdFx0fVxuXHRcdC5zaWRlQmFyU2VjdGlvbiAge1x0XHRcdFxuXHRcdFx0QGluY2x1ZGUgZmxleC1yb3c7XG5cdFx0XHQrIC5zaWRlQmFyU2VjdGlvbiAge1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogMDtcblx0XHRcdH1cblx0XHR9XHRcdFx0XHRcblx0XHQuc2lkZUJhclNlY3Rpb25fX2NvbnRlbnQgIHtcblx0XHRcdEBpbmNsdWRlIGZsZXgoMSk7XG5cdFx0fVx0XHRcblx0fVx0XG59XG4uc2lkZUJhckZpbHRlckZpZWxkcyAge1xuXHRAaW5jbHVkZSByZXNwb25kKG1kLXVwKSAge1xuXHRcdD4gKiArICogIHtcblx0XHRcdG1hcmdpbi10b3A6IDExcHg7XG5cdFx0fVxuXHR9XG5cdEBpbmNsdWRlIHJlc3BvbmQoc20pICB7XG5cdFx0QGluY2x1ZGUgZmxleC1yb3c7XG5cdFx0QGluY2x1ZGUgZ3JpZHhnYXAoJGZsZXhGb3JtX3BhZC8yKTtcblx0XHQ+ICogIHtcblx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0fVxuXHR9XG59XG4uc2Nyb2xsU2lkZVdyYXBfX21haW4gIHtcblx0QGluY2x1ZGUgZmxleCgxKTtcblx0cGFkZGluZzogMjBweDtcblx0YmFja2dyb3VuZDogI0VGRjFGMjtcbn1cblxuQG1peGluIHNjcm9sbFNpZGVXcmFwWHBhZCAge1xuXHRAaW5jbHVkZSB4cGFkKDIycHgpO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gYWRtaW4yIHNpZGViYXIgbG9nZ2VkIGluIGJsb2NrIGhpZ2ggbGV2ZWxcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuLmxvZ2dlZEluQmxvY2sgIHtcblx0YmFja2dyb3VuZDogIzk3NjhFQjtcdFxuXHRAaW5jbHVkZSBzY3JvbGxTaWRlV3JhcFhwYWQ7XG5cdHBhZGRpbmctdG9wOiAxMXB4O1xuXHRwYWRkaW5nLWJvdHRvbTogMjFweDtcbn1cbi5sb2dnZWRJbkJsb2NrX19uYW1lICB7XG5cdG1hcmdpbjogMCAwIDdweDtcblx0Y29sb3I6ICNmZmY7XG5cdGZvbnQtc2l6ZTogMjZweDtcblx0Zm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5sb2dnZWRJbkJsb2NrX19tZW51ICB7XG5cdFxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGFydCBvZiBsb2dnZWQgaW4gcHJvZmlsZSB0aGF0J3MganVzdCB0aGUgbWVudVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4ubG9nZ2VkSW5NZW51ICB7XG5cdFxufVxuLmxvZ2dlZEluTWVudV9fZHJvcERvd24gIHtcblx0XG59XG4ubG9nZ2VkSW5NZW51X190cmlnZ2VyICB7XG5cdEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuXHRjdXJzb3I6IGRlZmF1bHQ7XG5cbn1cbi5sb2dnZWRJbk1lbnVfX3RyaWdnZXJfX2ltZyAge1x0XG5cdGltZyAge1xuXHRcdHdpZHRoOiAzMnB4O1xuXHRcdGhlaWdodDogMzJweDtcblx0XHRib3JkZXItcmFkaXVzOiA1MCU7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cbi5sb2dnZWRJbk1lbnVfX3RyaWdnZXJfX25hbWUgIHtcblx0Y29sb3I6ICNmZmY7XG5cdHBhZGRpbmctbGVmdDogMTBweDtcdFxuXHRmb250LXdlaWdodDogNjAwO1xuXHRmb250LXNpemU6IDE0cHg7XG59XG4ubG9nZ2VkSW5NZW51X190cmlnZ2VyX19pY29uICB7XHRcblx0ZGlzcGxheTogYmxvY2s7XG5cdGNvbG9yOiAjZmZmO1xuXHRmb250LXNpemU6IDZweDtcblx0cGFkZGluZzogNnB4IDAgMCA1cHg7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBzaWRiZSBzZWN0aW9uXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbi5zaWRlQmFyU2VjdGlvbiAge1xuXHRAaW5jbHVkZSBzY3JvbGxTaWRlV3JhcFhwYWQ7XG5cdEBpbmNsdWRlIHlwYWQoMjBweCk7XG5cdGNvbG9yOiAjZmZmO1xufVxuLnNpZGVCYXJTZWN0aW9uLS1kYXJrICB7XG5cdGJhY2tncm91bmQ6ICRzY3JvbGxTaWRlV3JhcF9fc2lkZV9kYXJrQ1xufVxuLnNpZGVCYXJTZWN0aW9uX19jb250ZW50ICB7XG5cdFxufVxuLnNpZGVCYXJTZWN0aW9uX19oZWFkZXIgIHtcblx0QGluY2x1ZGUgcmVzcG9uZChtZC11cCkgIHtcblx0XHRtYXJnaW46IDAgMCAxNXB4O1xuXHR9XG5cdEBpbmNsdWRlIHJlc3BvbmQoc20pICB7XG5cdFx0d2lkdGg6IDExMHB4O1xuXHR9XG59XG4uc2lkZUJhclNlY3Rpb25fX2hlYWRlcl9fdGl0bGUgIHtcblx0Zm9udC1zaXplOiAyMHB4O1xuXHRmb250LXdlaWdodDogNTAwO1x0XG59XG5cbi5ibG9ja0NvbnRlbnQgIHtcblx0QGluY2x1ZGUgdHJpbUlubmVyTWFyZ2luO1xufVxuXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gZmllbGQgcGlsbHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuQG1peGluIG9wZW5GaWVsZF94cGFkKCRwYWQpICB7XG5cdD4gKiAge1xuXHRcdCY6Zmlyc3QtY2hpbGQgIHtcblx0XHRcdHBhZGRpbmctbGVmdDogJHBhZDtcblx0XHR9XG5cdFx0JjpsYXN0LWNoaWxkICB7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAkcGFkO1xuXHRcdH1cblx0fVxufVxuLm9wZW5GaWVsZCAge1xuXHRkaXNwbGF5OiBibG9jaztcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogMzZweDtcblx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHRiYWNrZ3JvdW5kOiAjRjRGNEY0O1xuXHRmb250LXNpemU6IDE0cHg7XHRcblx0QGluY2x1ZGUgZmxleC1yb3c7XHRcblx0QGluY2x1ZGUgb3BlbkZpZWxkX3hwYWQoMTJweCk7XHRcblx0aW5wdXQgIHtcblx0XHRwYWRkaW5nOiA1cHggMDtcblx0fVxufVxuLm9wZW5GaWVsZFRhbGxfYnRuICB7XG5cdG1heC1oZWlnaHQ6ICRmbGV4Rm9ybUlucHV0X2g7XG5cdG1pbi1oZWlnaHQ6ICRmbGV4Rm9ybUlucHV0X2g7XG5cdGhlaWdodDogJGZsZXhGb3JtSW5wdXRfaDtcbn1cbi5vcGVuRmllbGQtLXJvdW5kZWQgIHtcblx0Ym9yZGVyLXJhZGl1czogMjBweDtcblx0QGluY2x1ZGUgb3BlbkZpZWxkX3hwYWQoMjBweCk7XG59XG5cbkBtaXhpbiBvcGVuRmllbGRfY29sb3IoJHBsYWNlaG9sZGVyLCAkYWN0aXZlKSAge1xuXHRpbnB1dCAge1xuXHRcdGNvbG9yOiAjNzU3ODdCO1xuXHRcdEBpbmNsdWRlIHBsYWNlaG9sZGVyICB7XG5cdFx0XHRjb2xvcjogI0FBQUJBRjtcblx0XHR9XG5cdH1cblx0Lm9wZW5GaWVsZFNlbGVjdF9fdHJpZ2dlciAge1xuXHRcdC50ZXh0ICB7XG5cdFx0XHRjb2xvcjogIzc1Nzg3Qjtcblx0XHRcdCYucGxhY2Vob2xkZXIgIHtcblx0XHRcdFx0Y29sb3I6ICNBQUFCQUY7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5vcGVuRmllbGQtLWRhcmtlciAge1xuXHRAaW5jbHVkZSBvcGVuRmllbGRfY29sb3IoI0FBQUJBRiwgIzc1Nzg3Qik7XHRcbn1cbi5vcGVuRmllbGQtLXRhbGwgIHtcblx0aGVpZ2h0OiAkZmxleEZvcm1JbnB1dF9oO1xuXHQub3BlbkZpZWxkU2VsZWN0X190cmlnZ2VyIGkgIHtcblx0XHRmb250LXNpemU6IDhweDtcblx0XHRwYWRkaW5nLXRvcDogNHB4O1xuXHR9XG59XG5cbi5vcGVuRmllbGRTZWxlY3QgIHtcblx0QGluY2x1ZGUgZmxleC1yb3c7XG59XG4kZGFya0lucHV0UGxhY2Vob2xkZXJPcGFjaXR5OiAwLjM4O1xuLm9wZW5GaWVsZFNlbGVjdF9fdHJpZ2dlciAge1xuXHRAaW5jbHVkZSBmbGV4LXJvdy1jZW50ZXIoKTtcblx0QGluY2x1ZGUgZmxleCgxKTtcblx0LnRleHQgIHtcblx0XHRAaW5jbHVkZSBmbGV4KDEpO1xuXHRcdCYucGxhY2Vob2xkZXIgIHtcblx0XHRcdG9wYWNpdHk6ICRkYXJrSW5wdXRQbGFjZWhvbGRlck9wYWNpdHk7XG5cdFx0fVxuXHR9XG5cdGkgIHtcblx0XHRmb250LXNpemU6IDZweDtcblx0XHRwYWRkaW5nLWxlZnQ6IDE1cHg7XG5cdFx0b3BhY2l0eTogMC4yNjtcblx0fVx0XG59XG5cbi5vcGVuRmllbGRJbnB1dCAge1xuXHRAaW5jbHVkZSBmbGV4LXJvdy1jZW50ZXIoKTtcblx0PiAqICB7XG5cdFx0KyAqICB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMTVweDtcblx0XHR9XG5cdH1cblx0aW5wdXQgIHtcblx0XHRtaW4td2lkdGg6IDA7XG5cdFx0QGluY2x1ZGUgZmxleCgxKTtcblx0XHRiYWNrZ3JvdW5kOm5vbmU7XG5cdFx0Ym9yZGVyOiAwO1xuXHRcdGZvbnQtc2l6ZTogaW5oZXJpdDtcdFx0XG5cdH1cblx0LnN1Ym1pdFdyYXAgIHtcdFx0XG5cdFx0b3BhY2l0eTogMC4zNjtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0QGluY2x1ZGUgZmxleC1hbGlnbi1zZWxmKHN0cmV0Y2gpO1xuXHRcdEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuXHRcdCY6aG92ZXIgIHtcblx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0fVxuXHR9XHRcblx0Lmljb24tc2VhcmNoICB7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHR9XG59XG4ub3BlbkZpZWxkU2VsZWN0LS1kYXJrICB7XG5cdGJhY2tncm91bmQ6ICM1MTU5NkY7XHRcbn1cblxuLm9wZW5GaWVsZElucHV0LS1saWdodCAge1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xufVxuXG4ub3BlbkZpZWxkSW5wdXQtLWRhcmsgIHtcblx0YmFja2dyb3VuZDogIzQxNDk1Qztcblx0aW5wdXQgIHtcblx0XHRjb2xvcjogI2ZmZjtcblx0XHRAaW5jbHVkZSBwbGFjZWhvbGRlciAge1xuXHRcdFx0b3BhY2l0eTogJGRhcmtJbnB1dFBsYWNlaG9sZGVyT3BhY2l0eTtcblx0XHR9XHRcblx0fVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gZGFyayBzaWRlIGxpbmtzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbi5kYXJrU2lkZUxpbmtzICB7XG5cdG1hcmdpbjogNTBweCAtMTBweDsgLy8gdGhlc2Ugc2hvdWxkIHRha2UgdXAgYSBiaXQgbW9yZSBvZiB0aGUgYXZhaWxhYmxlIHNwYWNlIGluIHRoZSBzaWRlYmFyIHNlY3Rpb25cblx0cGFkZGluZzogMDtcblx0bGlzdC1zdHlsZS10eXBlOiBub25lO1x0XHRcblx0PiBsaSAge1xuXHRcdCsgbGkgIHtcblx0XHRcdG1hcmdpbi10b3A6IDVweDtcblx0XHR9XG5cdH1cblx0YSAge1xuXHRcdEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcigpO1xuXHRcdGJhY2tncm91bmQ6ICM0MTQ5NUM7XG5cdFx0Y29sb3I6ICNmZmY7XG5cdFx0cGFkZGluZzogMTBweCAxN3B4O1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRib3JkZXItbGVmdDogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdCY6aG92ZXIgIHtcblx0XHRcdFxuXHRcdH1cblx0XHQmLmFjdGl2ZSAge1xuXHRcdFx0Ym9yZGVyLWxlZnQtY29sb3I6ICRibHVlO1xuXHRcdFx0YmFja2dyb3VuZDogIzUxNTk2Rjtcblx0XHRcdC5udW0gIHtcblx0XHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC50ZXh0ICB7XG5cdFx0QGluY2x1ZGUgZmxleCgxKTtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdH1cblx0Lm51bSAge1xuXHRcdGNvbG9yOiAjNzA3Qzk3O1xuXHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdHBhZGRpbmctbGVmdDogMTVweDtcblx0fVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gc2VjdGlvbiBIZWFkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuLnBhZ2VTZWN0aW9uQmxvY2sgIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1x0XG5cdGJhY2tncm91bmQ6ICNmZmY7XHRcblx0QGluY2x1ZGUgYmxvY2tTaGFkb3c7XG5cdGJvcmRlci10b3A6IDVweCBzb2xpZCAkYmx1ZTtcbn1cbi5wYWdlU2VjdGlvbkJsb2NrX19oZWFkZXIgIHtcblx0cGFkZGluZzogMTBweCAxNXB4IDMwcHg7XG5cdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRUVFRUVFO1xuXHRAaW5jbHVkZSBmbGV4LXJvdztcblx0QGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuXHQ+ICogIHtcblx0XHQrICogIHtcblx0XHRcdHBhZGRpbmctbGVmdDogMTVweDtcblx0XHR9XG5cdH1cdFx0XG59XG4ucGFnZVNlY3Rpb25CbG9ja19wcmVIZWFkZXIgIHtcblx0bWFyZ2luOiAwIDAgMTBweDtcbn1cbi5hY3Rpb25zQmFyICB7XG5cdHBhZGRpbmc6IDhweCAxNXB4IDhweCA4cHg7XHRcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGJ1dHRvbiBhZGp1c3RtZW50c1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG5idXR0b24ucHJpbWFyeSAge1xuXHQmLnNtYWxsICB7XG5cdFx0Zm9udC1zaXplOiAxNXB4O1xuXHRcdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IDA7XG5cdFx0bWF4LWhlaWdodDogbm9uZTtcblx0XHRtaW4taGVpZ2h0OiAwO1xuXHRcdGhlaWdodDogNDFweDtcblx0XHRwYWRkaW5nOiAwIDE0cHg7XG5cdFx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHR9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBidG4gaWNvbnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuLmJ0bkljb24gIHtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRmb250LXNpemU6IDIwcHg7XG5cdCYuaWNvbi1hZGQtdGVhbSAge1xuXHRcdGZvbnQtc2l6ZTogMjBweDtcblx0fVxuXHQmLmljb24tYWRkLXBlcnNvbiAge1xuXHRcdGZvbnQtc2l6ZTogMjBweDtcblx0fVxuXHQmLmljb24tYWRkLXByYWN0aXRpb25lciAge1xuXHRcdGZvbnQtc2l6ZTogMjBweDtcblx0fVxufVxuLmJ0bkljb24tLWxlZnQgIHtcblx0cGFkZGluZy1yaWdodDogMTBweDtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGljb25UZXh0TGlua1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4uaWNvblRleHRMaW5rICB7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdGNvbG9yOiAkYmx1ZTtcblx0Zm9udC1zaXplOiAxNHB4O1xuXHRmb250LXdlaWdodDogNTAwO1x0XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0aSAge1xuXHRcdHBhZGRpbmctcmlnaHQ6IDVweDtcblx0fVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGFnZSBzZWN0aW9uc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4ucGFnZVNlY3Rpb24gIHtcblx0KyAucGFnZVNlY3Rpb24gIHtcblx0XHRtYXJnaW4tdG9wOiAzMHB4O1xuXHR9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGZpbHRlcnMgYmFyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcblxuLnRhYmxlRmlsdGVyc1dyYXAgIHtcblx0QGluY2x1ZGUgZmxleC1yb3coKTtcblx0QGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LWVuZCk7XG5cdG1hcmdpbjogMCAwIDEwcHg7XG59XG4udGFibGVGaWx0ZXJzV3JhcF9fbWFpbiAge1xuXHRAaW5jbHVkZSBmbGV4KDEpO1xufVxuLnRhYmxlRmlsdGVyc1dyYXBfX3NpZGUgIHtcblx0cGFkZGluZy1sZWZ0OiAxNXB4O1xuXHR3aWR0aDogMjUlO1xuXHRtaW4td2lkdGg6IDE4MHB4O1x0XG59XG5cbi5wYWdpbmF0aW9uSW5mbyAge1xuXHRmb250LXNpemU6IDEzcHg7XG5cdGNvbG9yOiAjNzU3ODdCO1xufVxuXG5cblxuLmNvbXBhY3RQYWdpbmF0aW9uICB7XG5cdEBpbmNsdWRlIGZsZXgtcm93KCk7XG5cdD4gZGl2ICB7XHRcdFxuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHRcdHdpZHRoOiAzMXB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRiYWNrZ3JvdW5kOiAkYmx1ZTtcdFxuXHRcdGJvcmRlci1yYWRpdXM6IDRweDtcblx0XHRvcGFjaXR5OiAwLjQ7XHRcdFx0XHRcblx0XHQrICogIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAxcHg7XG5cdFx0fVx0XHRcblx0XHQmOmhvdmVyICB7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdH1cblx0XHQmOmZpcnN0LWNoaWxkICB7XG5cdFx0XHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuXHRcdH1cdFxuXHRcdCY6bGFzdC1jaGlsZCAge1xuXHRcdFx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcblx0XHRcdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG5cdFx0fVx0XG5cdH1cblx0aSAge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0b3A6IC0xcHg7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdGNvbG9yOiAjZmZmO1xuXHRcdGZvbnQtc2l6ZTogMjJweDtcdFxuXHRcdGxpbmUtaGVpZ2h0OiAyOHB4O1x0XG5cdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0fVxufVxuXG5cbi5kcm9wZG93bi13cmFwcGVyLmRyb3Bkb3duLXdyYXBwZXItLWlubGluZSAge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHRcblx0LnRyaWdnZXIgIHtcblx0XHRib3JkZXI6IDA7XG5cdFx0bGluZS1oZWlnaHQ6IGluaGVyaXQ7XG5cdFx0Lmljb24tY2FyZXQtZHJvcGRvd24gIHtcblx0XHRcdHBhZGRpbmctbGVmdDogNHB4O1xuXHRcdFx0cGFkZGluZy1yaWdodDogNHB4O1x0XG5cdFx0fVxuXHR9XG5cdD4gLnN1Ym1lbnUtd3JhcHBlciAge1xuXHRcdD4gLnN1Ym1lbnUtY29udGVudCAge1xuXHRcdFx0PiAuc3VibWVudSAge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRcdFx0XHRsaSAge1xuXHRcdFx0XHRcdG1pbi13aWR0aDogMDtcblx0XHRcdFx0XHRwYWRkaW5nOiA1cHg7XG5cdFx0XHRcdFx0PiBzcGFuID4gc3BhbiAge1xuXHRcdFx0XHRcdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmljb24tLWZsaXAgIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDE4MGRlZykpO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gc29ydCBJY29uXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbi5zb3J0ZWRUYWJsZUhlYWRlciAge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdCYuc29ydGVkLCBcblx0Jjpob3ZlciAge1xuXHRcdGJhY2tncm91bmQ6ICNGN0Y3Rjc7XG5cdH1cbn1cbiRzb3J0SWNvbldyYXBfY19kZWZhdWx0OiAjRDhEOEQ4O1xuJHNvcnRJY29uV3JhcF9jX2FjdGl2ZTogIzc4N0I3RTtcbi5zb3J0SWNvbldyYXAgIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1x0XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0aGVpZ2h0OiAxNnB4O1xuXHR3aWR0aDogOXB4O1xuXHRtYXJnaW4tbGVmdDogM3B4O1xuXHQmOmJlZm9yZSwgJjphZnRlciAge1xuXHRcdGhlaWdodDogMDtcblx0XHR3aWR0aDogMDtcblx0XHRjb250ZW50OiBcIiBcIjtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogMDtcblx0XHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyLXRvcC13aWR0aDogNnB4O1xuXHRcdGJvcmRlci1ib3R0b20td2lkdGg6IDZweDtcblx0XHRib3JkZXItbGVmdC13aWR0aDogNHB4O1xuXHRcdGJvcmRlci1yaWdodC13aWR0aDogNHB4O1xuXHR9XG5cdCY6YmVmb3JlICB7XG5cdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogJHNvcnRJY29uV3JhcF9jX2RlZmF1bHQ7XG5cdFx0dG9wOiAtNXB4O1xuXHR9XG5cdCY6YWZ0ZXIgIHtcblx0XHRib3JkZXItdG9wLWNvbG9yOiAkc29ydEljb25XcmFwX2NfZGVmYXVsdDtcblx0XHRib3R0b206IC01cHg7XG5cdH1cblx0LnNvcnRlZFRhYmxlSGVhZGVyLS1kZXNjICYgIHtcblx0XHQmOmJlZm9yZSAge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XHRcblx0XHQmOmFmdGVyICB7XG5cdFx0XHRib3JkZXItdG9wLWNvbG9yOiAkc29ydEljb25XcmFwX2NfYWN0aXZlO1xuXHRcdH1cdFxuXHR9XG5cdC5zb3J0ZWRUYWJsZUhlYWRlci0tYXNjICYgIHtcblx0XHQmOmJlZm9yZSAge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbS1jb2xvcjogJHNvcnRJY29uV3JhcF9jX2FjdGl2ZTtcblx0XHR9XG5cdFx0JjphZnRlciAge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XHRcdFxuXHR9XHRcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gYWN0aW9uIGljb25cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuXG4uYWN0aW9uSWNvbiAge1xuXHRmb250LXNpemU6IDE0MCU7XG5cdGNvbG9yOiAkYmx1ZTtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQmLmljb24tbGV0dGVyICB7XG5cdFx0Zm9udC1zaXplOiAxMDAlO1x0XHRcblx0fVxuXHQmLmljb24tbGF1bmNoICB7XG5cdFx0Zm9udC1zaXplOiAxOTIlO1xuXHR9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBpY29uQWN0aXZlQ2hlY2tcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuLmljb25BY3RpdmVDaGVjayAge1xuXHRmb250LXNpemU6IDExMCU7XG5cdGNvbG9yOiAjREJEQkRCO1xufVxuLmljb25BY3RpdmVDaGVjay0tYWN0aXZlICB7XG5cdGNvbG9yOiAkZ3JlZW47XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBpbmxpbmUgcGVyc29uIGJhZGdlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbi5pbmxpbmVQZXJzb25CYWRnZSAge1xuXHRmb250LXNpemU6IDEwMCU7XG5cdHBhZGRpbmctbGVmdDogMXB4O1x0XG59XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gYWx0IHRhYmxlXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbkBtaXhpbiBhbHRUYWJsZVhwYWQoJHBhZCkgIHtcdFxuXHQuYWx0VGFibGUgIHtcblx0XHR0ciAge1x0XHRcdFxuXHRcdFx0PiAqICB7XG5cdFx0XHRcdEBpbmNsdWRlIHhwYWQoJHBhZC8yKTtcblx0XHRcdFx0JjpmaXJzdC1jaGlsZCAge1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogJHBhZDtcblx0XHRcdFx0fVxuXHRcdFx0XHQmOmxhc3QtY2hpbGQgIHtcblx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAkcGFkO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC5hbHRUYWJsZV9fcm93ICB7XG5cdFx0QGluY2x1ZGUgeHBhZCgkcGFkKTtcblx0fVx0XG59XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gYWx0IHRhYmxlIHggcGFkZGluZ1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG5cbkBpbmNsdWRlIHJlc3BvbmQobGcpICB7XG5cdEBpbmNsdWRlIGFsdFRhYmxlWHBhZCgyMHB4KTtcdFxufVx0XG5AaW5jbHVkZSByZXNwb25kKG1kKSAge1xuXHRAaW5jbHVkZSBhbHRUYWJsZVhwYWQoOHB4KTtcbn0gXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBhbHQgdGFibGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuLmFsdFRhYmxlX19pbm5lcldyYXAgIHtcblx0Y29sb3I6ICM3NTc4N0I7XG5cdGZvbnQtc2l6ZTogMTNweDtcblx0YmFja2dyb3VuZDogI2ZmZjtcblx0QGluY2x1ZGUgYmxvY2tTaGFkb3c7XG5cdEBpbmNsdWRlIHJlc3BvbmQobWQpICB7XG5cdFx0Zm9udC1zaXplOiAxMnB4O1xuXHR9ICBcbn1cblxuLmFsdFRhYmxlICB7XHRcdCBcblx0dGFibGUgIHtcblx0XHRib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdGZvbnQtc2l6ZTogaW5oZXJpdDtcblx0fVxuXHR0ciAge1xuXHRcdD4gKiAge1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcdFx0XHRcdFxuXHRcdFx0JjpmaXJzdC1jaGlsZCAge1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRcdFx0fVxuXHRcdH1cblx0XHR0aCAge1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNDRkNGQ0Y7XG5cdFx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdFx0QGluY2x1ZGUgeXBhZCgxNHB4KTtcblx0XHR9XG5cdFx0dGQgIHtcblx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjRUVFRUVFO1xuXHRcdFx0QGluY2x1ZGUgeXBhZCgxMnB4KTtcdFxuXHRcdH1cblx0fVx0XG59XG5cbi5hbHRUYWJsZV9fc2ltcGxlSGVhZGVyICB7XG5cdG1hcmdpbjogMCAwIDE1cHg7XG5cdGNvbG9yOiAjNzU3ODdCO1xuXHRsZXR0ZXItc3BhY2luZzogMXB4O1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRmb250LXNpemU6IDEzcHg7XHRcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYWx0VGFibGVfX2Zvb3RlckJhciAge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdEBpbmNsdWRlIHlwYWQoMTBweCk7XG59XG4uYnRuICB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uc2hvcnRXaWRlQnRuICB7XG5cdG1pbi13aWR0aDogMTY3cHg7XG5cdGxpbmUtaGVpZ2h0OiAyNHB4O1xuXHRib3JkZXI6IDFweCBzb2xpZCAkYmx1ZTtcblx0cGFkZGluZzogMCAxNXB4O1xuXHRmb250LXdlaWdodDogNTAwO1xuXHRmb250LXNpemU6IDEzcHg7XG5cdGNvbG9yOiAkYmx1ZTtcblx0Ym9yZGVyLXJhZGl1czogM3B4O1xufVxuXG4udGQtLW5hbWUgIHtcblx0Zm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gc2l0ZSBoZWFkZXIgYmFyXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbi5zaXRlSGVhZGVyQmFyICB7XG5cdFxufVxuXG4uc2l0ZUhlYWRlckJhcl9fbG9nb0dyb3VwICB7XG5cdEBpbmNsdWRlIGZsZXgtcm93O1xuXHRAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKHN0cmV0Y2gpO1xuXHQ+IGRpdiAge1xuXHRcdEBpbmNsdWRlIGZsZXgtcm93O1xuXHRcdEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcblx0XHRwYWRkaW5nOiAxNXB4IDIwcHg7XG5cdFx0KyBkaXYgIHtcblx0XHRcdGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0M4QzlDOTtcblx0XHR9XG5cdH1cbn1cblxuLnNpdGVIZWFkZXJCYXJfX2FjdGlvbnMgIHtcblx0cGFkZGluZy1yaWdodDogMjBweDtcblx0QGluY2x1ZGUgZmxleC1yb3c7XG5cdEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGxvZ29zIFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4ubG9nby0tZnVzU21hbGwgIHtcblx0d2lkdGg6IDExOXB4O1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gIHRleHQgbGlua1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4udGV4dExpbmsgIHtcblx0Y29sb3I6ICRibHVlO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGZvbnQtc2l6ZTogMTNweDtcdFxufVxuLnRleHRMaW5rLS1idW1wICB7XG5cdGZvbnQtc2l6ZTogMThweDtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGJhY2sgYnRuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcblxuLmJhY2tCdG4gIHtcblx0QGluY2x1ZGUgZmxleC1yb3c7XG5cdEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcblx0QGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0d2lkdGg6IDQ1cHg7XG5cdGhlaWdodDogMzlweDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRiYWNrZ3JvdW5kOiAkYmx1ZTtcblx0Y29sb3I6ICNmZmY7XG5cdGZvbnQtc2l6ZTogMTVweDtcblx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBmbGV4IGZvcm1cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuJGZsZXhGb3JtX2hyOiAjRUZFRkYwO1xuLmZsZXhGb3JtICB7XG5cdGZpZWxkc2V0ICB7XG5cdFx0Ym9yZGVyOiAwO1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAkZmxleEZvcm1fcGFkIDA7XG5cdFx0KyBmaWVsZHNldCAge1xuXHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICRmbGV4Rm9ybV9ocjtcblx0XHR9XG5cdH1cbn1cbi5mbGV4Rm9ybUZvb3RlciAge1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgJGZsZXhGb3JtX2hyO1xuXHRwYWRkaW5nOiAyMHB4ICRmbGV4Rm9ybV9wYWQ7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmZsZXhGb3JtUm93ICB7XG5cdEBpbmNsdWRlIGZsZXgtcm93KCk7XG5cdEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcblx0cGFkZGluZzogMCAkZmxleEZvcm1fcGFkO1xuXHRtaW4taGVpZ2h0OiAkZmxleEZvcm1JbnB1dF9oO1xuXHQrIC5mbGV4Rm9ybVJvdyAge1xuXHRcdG1hcmdpbi10b3A6ICRmbGV4Rm9ybV9wYWQ7XG5cdH1cbn1cbi5mbGV4Rm9ybVJvdy0tbGFyZ2VTZWN0aW9uICB7XG5cdEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG5cdEBpbmNsdWRlIHlwYWQoMTJweCk7XHRcblx0LmZsZXhGb3JtUm93X19sYWJlbENvbCAge1xuXHRcdHBhZGRpbmctdG9wOiAxMnB4O1xuXHR9XG59XG5cblxuLmZsZXhGb3JtUm93X19sYWJlbENvbCAge1xuXHRtaW4taGVpZ2h0OiAxcHg7XG5cdHdpZHRoOiAxODJweDtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdGZvbnQtc2l6ZTogMTNweDtcblx0Y29sb3I6ICM2QzZENkM7XG5cdHBhZGRpbmctcmlnaHQ6IDI3cHg7XG59XG4uZmxleEZvcm1Sb3dfX2ZpZWxkc0NvbCAge1xuXHRAaW5jbHVkZSBmbGV4KDEpO1xufVxuXG4uZmllbGRzUm93ICB7XG5cdEBpbmNsdWRlIGZsZXgtcm93O1xuXHRAaW5jbHVkZSBncmlkeGdhcCgkZmxleEZvcm1fcGFkLzIpO1xufVxuLmZpZWxkc1Jvdy0tY29tcHJlc3NlZCAge1xuXHRtYXgtd2lkdGg6IDUwMHB4O1xufVxuLmZpZWxkc1Jvdy0tdHdvQ29sICB7XG5cdD4gKiAge1xuXHRcdHdpZHRoOiA1MCU7XG5cdH1cbn1cbi5maWVsZHNSb3ctLXRocmVlQ29sICB7XG5cdD4gKiAge1xuXHRcdHdpZHRoOiAzMy4zMyU7XG5cdH1cbn1cbi5maWVsZHNSb3ctLWZvdXJDb2wgIHtcblx0PiAqICB7XG5cdFx0d2lkdGg6IDI1JTtcblx0fVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gaWNvbiBsYWJlbFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4uaWNvbkxhYmVsICB7XG5cdEBpbmNsdWRlIGZsZXgtcm93O1xuXHRAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG5cdGkgIHtcblx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0Y29sb3I6ICNBQzlFQTU7XG5cdH1cblx0c3BhbiAge1xuXHRcdEBpbmNsdWRlIGZsZXgoMSk7XG5cdFx0cGFkZGluZy1sZWZ0OiAxNXB4O1xuXHR9XG59XG5cbi51cGxvYWRCbG9jayAge1xuXHRtYXgtd2lkdGg6IDM5MHB4O1xuXHRiYWNrZ3JvdW5kOiAjRjVGNUY1O1xuXHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdHBhZGRpbmc6IDIwcHggMTVweCAyMHB4IDIwcHg7XG59XG5cbi5pbnB1dElubmVyTGFiZWwgIHtcblx0Y29sb3I6ICNBQUFCQUY7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBjb2xsYXBzZWQgcmV1c2FibGUgZWxlbWVudHMgXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbi5jb2xsYXBzZWRfX2RlZmF1bHRFbGVtZW50ICB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdC5jb2xsYXBzZWQgJiAge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG5cbi5jb2xsYXBzZWRfX2FsdEVsZW1lbnQgIHtcblx0LmNvbGxhcHNlZCAmICB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gdG9nZ2xlckJhclxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4udG9nZ2xlckJhciAge1xuXHRwYWRkaW5nOiAxMnB4IDE3cHg7XG5cdGJhY2tncm91bmQ6ICNGNEY0RjQ7XG5cdGJvcmRlci1yYWRpdXM6IDRweDtcblx0KyAudG9nZ2xlckJhciAge1xuXHRcdG1hcmdpbi10b3A6IDhweDtcblx0fVxuXHQmLmNvbGxhcHNlZCAge1xuXHRcdC50b2dnbGVyQmFyX19jb250ZW50ICB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxufVxuXG4udG9nZ2xlckJhcl9fdHJpZ2dlciAge1xuXHRAaW5jbHVkZSBmbGV4LXJvdztcblx0QGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1x0XG59XG4udG9nZ2xlckJhcl9fdHJpZ2dlcl9fYWxsVG9nZ2xlSW5wdXQgIHtcblx0QGluY2x1ZGUgZmxleCgxKTtcbn1cbi50b2dnbGVyQmFyX190cmlnZ2VyX19pY29uICB7XG5cdGNvbG9yOiAkYmx1ZTtcblx0Zm9udC1zaXplOiAxMXB4O1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdHBhZGRpbmc6IDVweDtcbn1cblxuLnRvZ2dsZXJCYXJfX2NvbnRlbnQgIHtcblx0cGFkZGluZzogMjRweCAwIDA7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBpbnB1dCBvcHRpb25zIHRyZWVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cdFxuLmlucHV0T3B0aW9uc1RyZWUgIHtcblx0bGlzdC1zdHlsZTogbm9uZTtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1x0XG5cdHVsICB7XG5cdFx0bGlzdC1zdHlsZTogbm9uZTtcblx0XHRtYXJnaW46IDAgMCAwIDMwcHg7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXHRsaSArIGxpLCBcblx0bGFiZWwgKyB1bCB7XHRcdFxuXHRcdG1hcmdpbi10b3A6IDhweDtcblx0fVxuXHQ+IGxpICB7XG5cdFx0PiBsYWJlbCBzcGFuIHtcblx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0fVxuXHRcdD4gdWwgIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDI0cHg7XG5cdFx0XHQ+IGxpICB7XG5cdFx0XHRcdD4gdWwgIHtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAxOHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi5jb2x1bW5zTGlzdCAge1xuXHRsaXN0LXN0eWxlOiBub25lO1x0XG5cdG1hcmdpbjogMzBweCAwO1xuXHRwYWRkaW5nOiAwO1xuXHQ+IGxpICB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMTFweDtcblx0fVxufVxuXG4uY29sdW1uc0xpc3QtLTQgIHtcblx0QGluY2x1ZGUgY29sdW1uLWNvdW50KDQpO1xufVxuXG4uY2xvc2FibGVCdXR0b24gIHtcblx0QGluY2x1ZGUgZmxleC1yb3c7XG5cdEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcblx0YmFja2dyb3VuZDogI0U5RjBGMjtcblx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRwYWRkaW5nOiA4cHggMTZweDtcblx0Y29sb3I6ICM3NTc4N0I7XG5cdHNwYW4gIHtcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1x0XHRcblx0XHRmb250LXNpemU6IDEycHg7XHRcdFxuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0bGV0dGVyLXNwYWNpbmc6IDAuOXB4O1xuXHR9XG5cdGkgIHtcblx0XHRtYXJnaW4tbGVmdDogN3B4O1xuXHRcdHBhZGRpbmc6IDNweCAwO1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRmb250LXNpemU6IDE4cHg7XHRcdFxuXHR9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB1bml2ZXJzYWwgcmFkaW8vY2hlY2tib3ggdGV4dCBzdHlsZVxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG5sYWJlbC5jaGVja2JveC1pbnB1dCwgXG5sYWJlbC5yYWRpby1pbnB1dCAge1xuXHRzcGFuICB7XG5cdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdGNvbG9yOiAjNzU3NzdBO1xuXHR9XHRcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbnNpdmUgc2hvdyBoZWxwZXIgY2xhc3Nlc1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG5cbi5yZXNwb25zaXZlU2hvdyAge1xuXHRkaXNwbGF5OiBub25lO1x0XG59XG4ucmVzcG9uc2l2ZVNob3ctLW1kVXAgIHtcblx0QGluY2x1ZGUgcmVzcG9uZChtZC11cCkgIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuLnJlc3BvbnNpdmVTaG93LS1zbURvd24gIHtcblx0QGluY2x1ZGUgcmVzcG9uZChzbSkgIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0fVxufVxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBpY29uIGNvbCBjZWxsXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcbi5pY29uQ29sQ2VsbCAge1xuXHR3aWR0aDogMjBweDtcblx0Lmljb24tZWRpdCAge1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0b3A6IC0ycHg7XG5cdH1cbn1cbiIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBub3RlOiAgdGhpcyBpcyBhbiB1cGRhdGVkIG1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICAgIFxuXG5AbWl4aW4gZXZlbi1jb2xzICB7XG4gIEBpbmNsdWRlIGZsZXgtcm93O1xuICAgICYuY29tcGFjdCAge1xuICAgICAgICA+ICogIHtcbiAgICAgICAgICAgICsgKiAge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICYuc3BhY2VkLW91dCAge1xuICAgICAgPiAqICB7XG4gICAgICAgICAgKyAqICB7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0NXB4O1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5kZWZhdWx0LXNwYWNlZCAge1xuICAgICAgPiAqICB7XG4gICAgICAgICAgKyAqICB7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5ib3R0b20tYWxpZ24gIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1lbmQpO1xuICAgIH1cbiAgICAmLmV2ZW4tY29scy0tc3RyaXBJbm5lck1hcmdpbnMgIHtcbiAgICAgID4gKiAge1xuICAgICAgICA+ICogIHtcbiAgICAgICAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICA+ICogIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIG5vdGU6ICBldmVyeXRoaW5nIGJlbG93IHRoaXMgaXMgbmV3XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICAgXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gdHJpYW5nbGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHRyaWFuZ2xlKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xuICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHVwLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSB1cC1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQpIHtcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWRvd24pIHtcbiAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1yaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfVxufVxuXG5cbkBtaXhpbiBncmlkeGdhcCgkZ2FwKSAge1xuICAgIG1hcmdpbjogMCAkZ2FwKi0xO1xuICAgID4gKiAge1xuICAgICAgICBwYWRkaW5nOiAwICRnYXA7XG4gICAgfVxufVxuXG5cbkBtaXhpbiBpbmxpbmUtZ3JpZC1iYXNlICB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gID4gKiAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgICAgXG4gIH1cbn1cbkBtaXhpbiBpbmxpbmUtZ3JpZC14KCRnYXApICB7XG4gIEBpbmNsdWRlIHhtYXJnaW4oJGdhcCotMSk7XG4gID4gKiAge1xuICAgIEBpbmNsdWRlIHhtYXJnaW4oJGdhcCk7XG4gIH1cbn1cbkBtaXhpbiBpbmxpbmUtZ3JpZC15KCRnYXApICB7XG4gIEBpbmNsdWRlIHltYXJnaW4oJGdhcCotMSk7XG4gID4gKiAge1xuICAgIEBpbmNsdWRlIHltYXJnaW4oJGdhcCk7XG4gIH1cbn1cblxuQG1peGluIGlubGluZS1ncmlkLXh5KCRnYXApICB7XG4gIG1hcmdpbjogJGdhcCotMTtcbiAgPiAqICB7XG4gICAgbWFyZ2luOiAkZ2FwO1xuICB9XG59XG4iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5AaW1wb3J0IFwibWl4aW5zMlwiOyIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBub3RlOiAgdGhpcyBpcyBhbiB1cGRhdGVkIG1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICAgIFxuXG5AbWl4aW4gZXZlbi1jb2xzICB7XG4gIEBpbmNsdWRlIGZsZXgtcm93O1xuICAgICYuY29tcGFjdCAge1xuICAgICAgICA+ICogIHtcbiAgICAgICAgICAgICsgKiAge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICYuc3BhY2VkLW91dCAge1xuICAgICAgPiAqICB7XG4gICAgICAgICAgKyAqICB7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0NXB4O1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5kZWZhdWx0LXNwYWNlZCAge1xuICAgICAgPiAqICB7XG4gICAgICAgICAgKyAqICB7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5ib3R0b20tYWxpZ24gIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1lbmQpO1xuICAgIH1cbiAgICAmLmV2ZW4tY29scy0tc3RyaXBJbm5lck1hcmdpbnMgIHtcbiAgICAgID4gKiAge1xuICAgICAgICA+ICogIHtcbiAgICAgICAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICA+ICogIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIG5vdGU6ICBldmVyeXRoaW5nIGJlbG93IHRoaXMgaXMgbmV3XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICAgXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gdHJpYW5nbGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHRyaWFuZ2xlKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xuICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHVwLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSB1cC1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQpIHtcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWRvd24pIHtcbiAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1yaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfVxufVxuXG5cbkBtaXhpbiBncmlkeGdhcCgkZ2FwKSAge1xuICAgIG1hcmdpbjogMCAkZ2FwKi0xO1xuICAgID4gKiAge1xuICAgICAgICBwYWRkaW5nOiAwICRnYXA7XG4gICAgfVxufVxuXG5cbkBtaXhpbiBpbmxpbmUtZ3JpZC1iYXNlICB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gID4gKiAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgICAgXG4gIH1cbn1cbkBtaXhpbiBpbmxpbmUtZ3JpZC14KCRnYXApICB7XG4gIEBpbmNsdWRlIHhtYXJnaW4oJGdhcCotMSk7XG4gID4gKiAge1xuICAgIEBpbmNsdWRlIHhtYXJnaW4oJGdhcCk7XG4gIH1cbn1cbkBtaXhpbiBpbmxpbmUtZ3JpZC15KCRnYXApICB7XG4gIEBpbmNsdWRlIHltYXJnaW4oJGdhcCotMSk7XG4gID4gKiAge1xuICAgIEBpbmNsdWRlIHltYXJnaW4oJGdhcCk7XG4gIH1cbn1cblxuQG1peGluIGlubGluZS1ncmlkLXh5KCRnYXApICB7XG4gIG1hcmdpbjogJGdhcCotMTtcbiAgPiAqICB7XG4gICAgbWFyZ2luOiAkZ2FwO1xuICB9XG59XG4iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5AaW1wb3J0IFwibWl4aW5zMlwiOyIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBub3RlOiAgdGhpcyBpcyBhbiB1cGRhdGVkIG1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICAgIFxuXG5AbWl4aW4gZXZlbi1jb2xzICB7XG4gIEBpbmNsdWRlIGZsZXgtcm93O1xuICAgICYuY29tcGFjdCAge1xuICAgICAgICA+ICogIHtcbiAgICAgICAgICAgICsgKiAge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICYuc3BhY2VkLW91dCAge1xuICAgICAgPiAqICB7XG4gICAgICAgICAgKyAqICB7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0NXB4O1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5kZWZhdWx0LXNwYWNlZCAge1xuICAgICAgPiAqICB7XG4gICAgICAgICAgKyAqICB7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5ib3R0b20tYWxpZ24gIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1lbmQpO1xuICAgIH1cbiAgICAmLmV2ZW4tY29scy0tc3RyaXBJbm5lck1hcmdpbnMgIHtcbiAgICAgID4gKiAge1xuICAgICAgICA+ICogIHtcbiAgICAgICAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICA+ICogIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIG5vdGU6ICBldmVyeXRoaW5nIGJlbG93IHRoaXMgaXMgbmV3XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICAgXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gdHJpYW5nbGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHRyaWFuZ2xlKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xuICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHVwLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSB1cC1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQpIHtcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWRvd24pIHtcbiAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1yaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfVxufVxuXG5cbkBtaXhpbiBncmlkeGdhcCgkZ2FwKSAge1xuICAgIG1hcmdpbjogMCAkZ2FwKi0xO1xuICAgID4gKiAge1xuICAgICAgICBwYWRkaW5nOiAwICRnYXA7XG4gICAgfVxufVxuXG5cbkBtaXhpbiBpbmxpbmUtZ3JpZC1iYXNlICB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gID4gKiAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgICAgXG4gIH1cbn1cbkBtaXhpbiBpbmxpbmUtZ3JpZC14KCRnYXApICB7XG4gIEBpbmNsdWRlIHhtYXJnaW4oJGdhcCotMSk7XG4gID4gKiAge1xuICAgIEBpbmNsdWRlIHhtYXJnaW4oJGdhcCk7XG4gIH1cbn1cbkBtaXhpbiBpbmxpbmUtZ3JpZC15KCRnYXApICB7XG4gIEBpbmNsdWRlIHltYXJnaW4oJGdhcCotMSk7XG4gID4gKiAge1xuICAgIEBpbmNsdWRlIHltYXJnaW4oJGdhcCk7XG4gIH1cbn1cblxuQG1peGluIGlubGluZS1ncmlkLXh5KCRnYXApICB7XG4gIG1hcmdpbjogJGdhcCotMTtcbiAgPiAqICB7XG4gICAgbWFyZ2luOiAkZ2FwO1xuICB9XG59XG4iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5AaW1wb3J0IFwibWl4aW5zMlwiO1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gYWRkaXRpb25hbCBoZWxwZXJzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcblxuLy8gZmllbGQgd2lkdGhzXG4ub3BlbkZpZWxkV2lkdGgtLW1heDEwMCAge1xuXHRtYXgtd2lkdGg6IDEwMCU7IC8vIG1ha2Ugc3VyZSBpdCBpcyBzdGlsbCBmbGV4aWJsZS4uLlxufVxuLm9wZW5GaWVsZFdpZHRoLS1zbWFsbCAge1xuXHR3aWR0aDogNTJweDtcbn1cbi5vcGVuRmllbGRXaWR0aC0tbWVkaXVtICB7XG5cdHdpZHRoOiAxNDhweDtcbn1cblxuLm9wZW5GaWVsZFdpZHRoLS1ycGUgIHtcblx0d2lkdGg6IDIwMHB4O1xufVxuXG4vLyBjZWxsIHdpZHRoc1xuLmNlbGxXaWR0aC0tdHJhaW5pbmdMb2FkICB7XG5cdHdpZHRoOiAxMzJweDtcbn0gXG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiB1bmlxdWUgc3R5bGVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcblxuXG4uc2NvcmVOdW0gIHtcblx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0Zm9udC1zaXplOiAxOHB4O1xufVxuXG4ub3BlbkZpZWxkLS1jZW50ZXJlZCAge1xuXHRpbnB1dCAge1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0fVxufVxuXG4kdGxGaWx0ZXJzLXhnYXA6IDE1cHg7XG4kdGxGaWx0ZXJzLVhlZGdlR2FwOiAxNXB4O1xuXG4udGxGaWx0ZXJzSGVhZGVyICB7XG5cdHBhZGRpbmc6IDE1cHggJHRsRmlsdGVycy1YZWRnZUdhcDtcbn1cblxuLnRsRmlsdGVyc0hlYWRlck1haW4gIHtcblx0QGluY2x1ZGUgZmxleC1yb3c7XG5cdD4gKiArICogIHtcblx0XHRwYWRkaW5nLWxlZnQ6ICR0bEZpbHRlcnMteGdhcDtcblx0fVxufVxuXG4uZmxUYWJsZSAge1xuXHR0ciAge1xuXHRcdD4gKiAge1xuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDA7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0XHQrICogIHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAkdGxGaWx0ZXJzLXhnYXA7XG5cdFx0XHR9XG5cdFx0XHQmOmZpcnN0LWNoaWxkICB7XG5cdFx0XHRcdHBhZGRpbmctbGVmdDogJHRsRmlsdGVycy1YZWRnZUdhcDtcblx0XHRcdH1cblx0XHRcdCY6bGFzdC1jaGlsZCAge1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAkdGxGaWx0ZXJzLVhlZGdlR2FwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQucHJvY2Nlc3NBcnJvdyAge1x0XHRcblx0XHRtYXJnaW4tcmlnaHQ6ICR0bEZpbHRlcnMteGdhcCotMTtcblx0fVxufVxuLmZsVGFibGVDb2xXaWR0aCAge1xuXHRib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cbkBpbmNsdWRlIHJlc3BvbmQobGcpICB7XG5cdC5mbFRhYmxlQ29sV2lkdGgtLXRpdGxlICB7XG5cdFx0d2lkdGg6IDMwMHB4O1xuXHR9XG5cdC5mbFRhYmxlQ29sV2lkdGgtLXNlc3Npb24gIHtcblx0XHR3aWR0aDogMzAwcHg7XG5cdH1cbn1cblxuLmZsVGFibGVDb2xXaWR0aC0tZHVyYXRpb25UYXJnZXQgIHtcblx0d2lkdGg6IGF1dG87XG59XG5cbi5zbWFsbEZpZWxkTGFiZWwgIHtcdFxuXHRwYWRkaW5nOiAwIDAgN3B4O1xuXHRmb250LXNpemU6IDE0cHg7XG5cdGNvbG9yOiAjNzU3ODdCO1xufVxuXG5cbi50bEZpbHRlcnNIZWFkZXJTaWRlICB7XG5cdEBpbmNsdWRlIGZsZXgtY29sdW1uO1xuXHRAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChzcGFjZS1iZXR3ZWVuKTtcbn1cblxuLm51bU5hbWUgIHtcblx0QGluY2x1ZGUgZmxleC1yb3c7XG5cdGZvbnQtc2l6ZTogMThweDtcbn1cbi5udW1OYW1lX19udW0gIHtcblx0b3BhY2l0eTogMC40O1xufVxuLm51bU5hbWVfX25hbWUgIHtcblx0cGFkZGluZy1sZWZ0OiAxNXB4O1xufVxuXG4ubnVtTmFtZS0tbGlnaHQgIHtcblx0Y29sb3I6ICM3NTc3N0E7XG59XG4kb3BlbkZpZWxkTWVkSGVpZ2h0OiAzOXB4O1xuJG9wZW5GaWVsZFRhbGxIZWlnaHQ6IDQ2cHg7XG4ub3BlbkZpZWxkLS1tZWRpdW0gIHtcblx0aGVpZ2h0OiAkb3BlbkZpZWxkTWVkSGVpZ2h0O1xufVxuXG4kc2VsZWN0QmFybGg6IDIxcHg7XG4kc2VsZWN0QmFyeXBhZDogKCRvcGVuRmllbGRNZWRIZWlnaHQgLSAkc2VsZWN0QmFybGgpLzI7XG4kc2VsZWN0QmFyeXBhZEJpZzogKCRvcGVuRmllbGRUYWxsSGVpZ2h0IC0gJHNlbGVjdEJhcmxoKS8yO1xuLnNlbGVjdEJhciAge1xuXHRiYWNrZ3JvdW5kOiAjOTc2OEVCO1xuXHRjb2xvcjogI2ZmZjtcblx0Zm9udC1zaXplOiAxNXB4O1xuXHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdHBhZGRpbmc6ICN7JHNlbGVjdEJhcnlwYWR9IDE1cHg7XG5cdGxpbmUtaGVpZ2h0OiAkc2VsZWN0QmFybGg7XG5cdCYudGFsbCAge1xuXHRcdHBhZGRpbmc6ICRzZWxlY3RCYXJ5cGFkQmlnIDE1cHg7XG5cdH1cblx0aSAge1xuXHRcdGRpc3BsYXk6IG5vbmU7IC8vIG9ubHkgc2hvdyB0aGUgY2hlY2ttYXJrIGljb24gd2hlbiBcImlzU2VsZWN0ZWRcIiBjbGFzcyBpcyBwcmVzZW50Li4uLlxuXHRcdHBhZGRpbmctbGVmdDogNXB4O1xuXHRcdGZvbnQtc2l6ZTogMTFweDtcblx0fVxuXHQmLmlzU2VsZWN0ZWQgIHtcblx0XHRiYWNrZ3JvdW5kOiAjRjRGNEY0O1xuXHRcdGNvbG9yOiAjQzdDQkNFO1xuXHRcdGkgIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZTtcblx0XHR9XG5cdH1cbn1cbi5zdWJtZW51X19udW1UZXh0V3JhcCAge1xuXHRAaW5jbHVkZSBmbGV4LXJvdztcblx0Zm9udC1zaXplOiAxM3B4O1xuXHQubnVtICB7XG5cdFx0Ym94LXNpemluZzogY29udGVudC1ib3g7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRjb2xvcjogIzZDNkQ2Qztcblx0XHR3aWR0aDogMTVweDtcblx0XHRwYWRkaW5nLXJpZ2h0OiA1cHg7XG5cdH1cblx0LnRleHQgIHtcblx0XHRmb250LXdlaWdodDogNDAwO1xuXHRcdHRleHQtdHJhbnNmb3JtOiBub25lO1xuXHR9XG59XG5cblxuLmNvbnRlbnRXaXRoUHJvY2Vzc0Fycm93V3JhcCAge1xuXHRAaW5jbHVkZSBmbGV4LXJvdztcblx0QGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuXHQ+ICo6Zmlyc3QtY2hpbGQgIHtcblx0XHRAaW5jbHVkZSBmbGV4KDEpO1xuXHR9XG5cdC5wcm9jY2Vzc0Fycm93ICB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHdpZHRoOiA0MHB4O1xuXHRcdGNvbG9yOiAjRUZGMUYyO1xuXHRcdGZvbnQtc2l6ZTogMTVweDtcblx0XHRAaW5jbHVkZSByZXNwb25kKGxnKSAge1xuXHRcdFx0d2lkdGg6IDEwMHB4O1xuXHRcdH1cblx0fVxufVxuLm9wZW5GaWVsZFNlbGVjdF9fdHJpZ2dlciAge1xuXHQuaWNvbi10YXJnZXQgIHtcblx0XHRmb250LXNpemU6IDE5cHg7XG5cdFx0Y29sb3I6ICNBQUFCQUY7XG5cdFx0cGFkZGluZy1yaWdodDogOHB4O1xuXHR9XHRcbn1cblxuXG4uVEwtRHVyYXRpb24ge1xuICBpbnB1dDppbnZhbGlkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjQ0MwMDAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogI0ZGQ0NDQztcbiAgfVxufVxuXG5cbi5iYWNrVG9MaW5rICB7XG5cdG1hcmdpbjogIDAgMCAyMHB4O1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdGNvbG9yOiAjOTc2OEVCO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcjtcblxuXHRpICB7XG5cdFx0Zm9udC1zaXplOiAxNXB4O1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cdC50ZXh0ICB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdH1cbn1cblxuXG4uY29tcGFjdEZvcm1TdGFjayAge1xuXHQ+ICogIHtcblx0XHQrICogIHtcblx0XHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cdFx0fVxuXHR9XG59XG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IGlubGluZSBvdmVybGF5XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHRcblxuLmlubGluZU92ZXJsYXlXcmFwICB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmlubGluZU92ZXJsYXkgIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiAxMDtcdFxuXHR0b3A6IGNhbGMoMTAwJSAtIDE1cHgpO1xuXHRsZWZ0OiA1MCU7XHRcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7XG5cdGJhY2tncm91bmQ6ICNmZmY7XG5cdHdpZHRoOiAzNzdweDtcblx0bWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KTtcblx0cGFkZGluZzogMTVweDtcblx0Ym9yZGVyOiAxcHggc29saWQgI0VFRUVFRTtcblx0Ym94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoIzAwMDAwMCwgMC4xMyk7XG5cdGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5pbmxpbmVPdmVybGF5X190cmlhbmdsZSAge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogM3B4O1xuXHRsZWZ0OiA1MCU7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC0xMDAlKTtcblx0d2lkdGg6IDI5cHg7XG5cdGhlaWdodDogMTdweDtcblx0YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9vdmVybGF5LXRyaWFuZ2xlLnBuZykgY2VudGVyIGNlbnRlciBuby1yZXBlYXQ7XG5cdGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbn1cbi5pbmxpbmVPdmVybGF5X19jbG9zZSAge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHRvcDogMTVweDtcblx0cmlnaHQ6IDE1cHg7XG5cdGZvbnQtc2l6ZTogMTdweDtcblx0Y29sb3I6ICRibHVlO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG59XG4uaW5saW5lT3ZlcmxheV9fdGl0bGUgIHtcblx0bWFyZ2luOiAwIDAgMjBweDtcblx0cGFkZGluZzogMCAzMHB4O1xuXHRmb250LXNpemU6IDE4cHg7XG5cdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdGNvbG9yOiAjNzU3ODdCO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIHNlY3Rpb24gPiBkbFxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1x0XG4uY2hhcnQtZGF0ZS1oZWFkZXIgKyAuZGxSb3cgIHtcblx0bWFyZ2luOiAxMHB4IDAgMjBweDtcbn1cbi5kbFJvdyAge1xuXHRAaW5jbHVkZSBmbGV4LXJvdztcblx0QGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG5cdCsgLmNoYXJ0LWRhdGUtaGVhZGVyICB7XG5cdFx0bWFyZ2luLXRvcDogMzBweDtcblx0fVxuXHQrIC5kbFJvdyAge1xuXHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdH1cbn1cblxuLmRsSXRlbSAge1xuXHRcbn1cbi5kbEl0ZW1fX2xhYmVsICB7XG5cdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdGNvbG9yOiAjNzU3NzdBO1xuXHRmb250LXNpemU6IDE0cHg7XG59XG5cbi5kbEl0ZW1fX251bSAge1xuXHRmb250LXdlaWdodDogMTAwO1xuXHRmb250LXNpemU6IDMwcHg7XG5cdEBpbmNsdWRlIGZsZXgtcm93LWNlbnRlcjtcblx0LnNjb3JlQ2hhbmdlSWNvbiAgeyAgIFx0XG5cdFx0Zm9udC1zaXplOiA3cHg7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRwYWRkaW5nLXJpZ2h0OiA4cHg7XG5cdH1cbn1cblxuLm1lbnUtcG9pbnRlciB7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLndlZWtseVNjb3JlQ2hhbmdlSWNvbiAgeyAgIFx0XG5cdGZvbnQtc2l6ZTogN3B4O1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRwYWRkaW5nLXJpZ2h0OiA0cHg7XG5cdG1hcmdpbi1yaWdodDogNHB4O1xufVxuXG4ucHJvZmlsZVRMQ2hhbmdlSWNvbiAgeyAgIFx0XG5cdGZvbnQtc2l6ZTogMTBweDtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0cGFkZGluZy1yaWdodDogMXB4O1xuXHRwYWRkaW5nLWJvdHRvbTogM3B4O1xufSIsIiRyZWQ6ICNjNDJhM2I7XG4kYmx1ZTogIzk3NjhFQjtcbiRkYXJrX2JsdWU6ICMxMTI2NGI7XG4kZ3JleTogIzgwODA4MDtcbiRncmVlbjogIzIwYjc2OTtcbiR3aGl0ZTogI2ZmZmZmZjtcbiR5ZWxsb3c6ICNkOGI2MmY7XG4kbGlnaHRfZ3JleTogI2NkY2RjZDtcbiRkYXJrX2dyZXk6ICM2ZDZlNzI7XG4kc2NvcmUtZ3JlZW46ICMwMEI5NkQ7XG4kc2NvcmUtcmVkOiAjRDE0MDRCO1xuJHNjb3JlLXllbGxvdzogI0Q3QkI0MztcblxuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAjMTEyNjRiO1xuJGF0aGxldGVfaGVhZGVyX3ByaW1hcnk6ICNlMWUxZTE7XG4kYXRobGV0ZV9oZWFkZXJfc2Vjb25kYXJ5OiAjZTFlMWUxO1xuJGF0aGxldGVfbGlzdF9uYW1lOiAjZjdmN2Y3O1xuIiwiXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm1zKSB7XG4gICAgIC1tb3otdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAtby10cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xuICAgICAgLW1zLXRyYW5zZm9ybTogJHRyYW5zZm9ybXM7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiAkdHJhbnNmb3JtcztcbiAgICAgICAgICB0cmFuc2Zvcm06ICR0cmFuc2Zvcm1zO1xufVxuXG5AbWl4aW4gYXBwZWFyYW5jZSgkYXBwZWFyYW5jZS4uLikge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAtbW96LWFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xuICAgICAgICAgIGFwcGVhcmFuY2U6ICRhcHBlYXJhbmNlO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkYm9yZGVyLXJhZGl1cy4uLikge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAtbW96LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xufVxuXG5AbWl4aW4gYm94LXNoYWRvdygkc2hhZG93Li4uKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJHNoYWRvdztcbiAgICAgLW1vei1ib3gtc2hhZG93OiAkc2hhZG93O1xuICAgICAgICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRzaXplLi4uKSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogJHNpemU7XG4gICAgIC1tb3otYm94LXNpemluZzogJHNpemU7XG4gICAgICAgICAgYm94LXNpemluZzogJHNpemU7XG59XG5cbkBtaXhpbiB1c2VyLXNlbGVjdCgkc2VsZWN0Li4uKSB7XG4td2Via2l0LXRvdWNoLWNhbGxvdXQ6ICRzZWxlY3Q7XG4gICAgIC1tcy10b3VjaC1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgIC1tb3otdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAtbXMtdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG4gICAgICAgICAgdXNlci1zZWxlY3Q6ICRzZWxlY3Q7XG59XG5cbkBtaXhpbiBmbGV4KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWZsZXg6ICR2YWx1ZTtcbiAgICAgIC1tcy1mbGV4OiAkdmFsdWU7XG4gICAgICAgICAgZmxleDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1hbGlnbi1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWNvbnRlbnQ6ICR2YWx1ZTtcbiAgICAgICAgICBhbGlnbi1jb250ZW50OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWFsaWduLWl0ZW1zKCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWFsaWduLWl0ZW1zOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6ICR2YWx1ZTtcbn1cblxuQG1peGluIGZsZXgtYWxpZ24tc2VsZigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1hbGlnbi1zZWxmOiAkdmFsdWU7XG4gICAgICAgICAgYWxpZ24tc2VsZjogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuQG1peGluIGZsZXgtZGlyZWN0aW9uLWltcG9ydGFudCgkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogJHZhbHVlIWltcG9ydGFudDtcbn1cblxuQG1peGluIGZsZXgtZGlzcGxheSgpIHtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1peGluIGZsZXgtanVzdGlmeS1jb250ZW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWp1c3RpZnktY29udGVudDogJHZhbHVlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHZhbHVlO1xufVxuXG5AbWl4aW4gZmxleC1vcmRlcigkdmFsdWUuLi4pIHtcbiAgLXdlYmtpdC1vcmRlcjogJHZhbHVlO1xuICAgICAgICAgIG9yZGVyOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtZmxleC13cmFwOiAkdmFsdWU7XG4gICAgICAgICAgZmxleC13cmFwOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbigpIHtcbiAgQGluY2x1ZGUgZmxleC1kaXNwbGF5KCk7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKGNvbHVtbik7XG59XG5cbkBtaXhpbiBmbGV4LWNvbHVtbi1jZW50ZXIoKSB7XG4gIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbn1cblxuQG1peGluIGZsZXgtY29sdW1uLXN0YXJ0KCkge1xuICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGZsZXgtc3RhcnQpO1xufVxuXG5AbWl4aW4gZmxleC1yb3coKSB7XG4gIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xufVxuXG5AbWl4aW4gZmxleC1yb3ctY2VudGVyKCkge1xuICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG59XG5cbkBtaXhpbiBmbGV4LXJvdy1zdGFydCgpIHtcbiAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhmbGV4LXN0YXJ0KTtcbn1cblxuQG1peGluIGxvY2staGVpZ2h0KCR2YWx1ZS4uLikge1xuICBtYXgtaGVpZ2h0OiAkdmFsdWU7XG4gIG1pbi1oZWlnaHQ6ICR2YWx1ZTtcbiAgaGVpZ2h0OiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoKCR2YWx1ZS4uLikge1xuICBtYXgtd2lkdGg6ICR2YWx1ZTtcbiAgbWluLXdpZHRoOiAkdmFsdWU7XG4gIHdpZHRoOiAkdmFsdWU7XG59XG5cbkBtaXhpbiBsb2NrLXdpZHRoLWlubGluZS1vdmVycmlkZSgkdmFsdWUuLi4pIHtcbiAgbWF4LXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAkdmFsdWUgIWltcG9ydGFudDtcbiAgd2lkdGg6ICR2YWx1ZSAhaW1wb3J0YW50O1xufVxuXG5cbkBtaXhpbiB1bmxvY2std2lkdGggIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiBhdXRvO1xufVxuQG1peGluIHVubG9jay1oZWlnaHQgIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbWluLWhlaWdodDogMDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCR2YWx1ZS4uLikge1xuICAtd2Via2l0LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1jb3VudDogJHZhbHVlO1xuICBjb2x1bW4tY291bnQ6ICR2YWx1ZTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJHZhbHVlLi4uKSB7XG4gIC13ZWJraXQtY29sdW1uLWdhcDogJHZhbHVlO1xuICAtbW96LWNvbHVtbi1nYXA6ICR2YWx1ZTtcbiAgY29sdW1uLWdhcDogJHZhbHVlO1xufVxuXG5AbWl4aW4gY29sdW1uLW5vLWJyZWFrKCkge1xuICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAtbW96LWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1vLWNvbHVtbi1icmVhay1pbnNpZGU6YXZvaWQ7XG4gIC1tcy1jb2x1bW4tYnJlYWstaW5zaWRlOmF2b2lkO1xuICBicmVhay1pbnNpZGU6YXZvaWQtY29sdW1uO1xufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gc2VjdGlvbiA+IHJlc3BvbmRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRtaW5Db250ZW50V2lkdGg6IDEwMjRweDtcbiRtaW5FZGdlQ29udGVudFBhZGRpbmc6IDE1cHg7XG4kbGFyZ2VCcmVha3BvaW50OiAkbWluQ29udGVudFdpZHRoICsgJG1pbkVkZ2VDb250ZW50UGFkZGluZyoyO1xuJGNvbXByZXNzZWRDb250ZW50V2lkdGg6ICRtaW5Db250ZW50V2lkdGggLSAkbWluRWRnZUNvbnRlbnRQYWRkaW5nKjI7XG4vLyAkc21NaW46IDc2OHB4O1xuJHNtTWF4OiA5MDBweDtcblxuLy8gU2hhcmVkIHJlc3BvbnNpdmUgdGllcnMuIFByZWZlciB0aGVzZSBvdmVyIGFkLWhvYyBtYXgtd2lkdGggcXVlcmllcy5cbi8vIE5PVEU6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zLnNjc3MgZGVmaW5lcyBpdHMgb3duIHJlc3BvbmQoKSBhbmQgZG9lcyBub3Rcbi8vIGltcG9ydCB0aGlzIGZpbGUsIHNvIHRoZXNlIHRva2VucyBhcmUgb25seSBhdmFpbGFibGUgaW5zaWRlIHRoZVxuLy8gZnVzaW9uZXRpY3MtYW5ndWxhci1wcm90b3R5cGUgYnVuZGxlLlxuJGJwLXdpZGU6ICAgMTEwMHB4OyAvLyB3aWRlIGRlc2t0b3AgLT4gbmFycm93IGRlc2t0b3BcbiRicC10YWJsZXQ6ICA5MDBweDsgLy8gY29sbGFwc2UgbXVsdGktY29sdW1uIHJvd3NcbiRicC1tb2JpbGU6ICA3NjhweDsgLy8gcHJvamVjdC13aWRlIG1vYmlsZSBicmVha3BvaW50XG4kYnAtcGhvbmU6ICAgNDgwcHg7IC8vIGNvbXBhY3QgcGhvbmUgdGllclxuXG5AbWl4aW4gcmVzcG9uZCgkbWVkaWEpIHtcbiAgQGlmICRtZWRpYSA9PSB3aGl0ZWJvYXJkLWV4ZXJjaXNlLXN0YWNrZWQtYXR0cmlidXRlcyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMTkwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICAvLyBUaGUgU2NoZWR1bGUgUHJvZ3JhbSBzdGVwcGVyIG5lZWRzIH41MzZweCB0byBzaXQgb24gb25lIGxpbmUuIFRoYXQgZmFsbHNcbiAgLy8gYmV0d2VlbiB0aGUgcGhvbmUgYW5kIG1vYmlsZSB0aWVycywgc28gaXQgZ2V0cyBpdHMgb3duIGxpa2UgdGhlIHdoaXRlYm9hcmRcbiAgLy8gYXR0cmlidXRlIHJvdyBhYm92ZS5cbiAgQGlmICRtZWRpYSA9PSBzY2hlZHVsZS1zdGVwcy1zdGFja2VkIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU2MHB4KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGlmICRtZWRpYSA9PSBsZyB7XG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbGFyZ2VCcmVha3BvaW50KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IG1kIHtcbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICN7JGxhcmdlQnJlYWtwb2ludCAtIDFweH0pIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gc20ge1xuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogI3skc21NYXh9KSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHdpZGUtZG93biB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC13aWRlKSB7IEBjb250ZW50OyB9XG4gIH1cbiAgQGVsc2UgaWYgJG1lZGlhID09IHRhYmxldCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC10YWJsZXQpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSBpZiAkbWVkaWEgPT0gbW9iaWxlIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJGJwLW1vYmlsZSkgeyBAY29udGVudDsgfVxuICB9XG4gIEBlbHNlIGlmICRtZWRpYSA9PSBwaG9uZSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRicC1waG9uZSkgeyBAY29udGVudDsgfVxuICB9XG59XG5cbi8vIEVzY2FwZSB0aGUgZ2xvYmFsIGJ1dHRvbiBydWxlIGluIF9iYXNlLnNjc3Ncbi8vIChtaW4td2lkdGg6IDExMHB4OyBsb2NrLWhlaWdodCg1MHB4KTsgdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMXB4KS5cbkBtaXhpbiB1bnN0eWxlLWJ1dHRvbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4geHBhZCAvIHlwYWRcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHhwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy1sZWZ0OiAkcGFkO1xuICBwYWRkaW5nLXJpZ2h0OiAkcGFkO1xufVxuQG1peGluIHlwYWQoJHBhZCkgIHtcbiAgcGFkZGluZy10b3A6ICRwYWQ7XG4gIHBhZGRpbmctYm90dG9tOiAkcGFkO1xufVxuQG1peGluIHhtYXJnaW4oJGdhcCkgIHtcbiAgbWFyZ2luLWxlZnQ6ICRnYXA7XG4gIG1hcmdpbi1yaWdodDogJGdhcDtcbn1cbkBtaXhpbiB5bWFyZ2luKCRnYXApICB7XG4gIG1hcmdpbi10b3A6ICRnYXA7XG4gIG1hcmdpbi1ib3R0b206ICRnYXA7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJCYXNlX3koJGgpICB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xufVxuXG5AbWl4aW4gYWJzQ2VudGVyQmFzZSgkdywgJGg6ICR3KSAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi10b3A6ICRoLy0yO1xuICBtYXJnaW4tbGVmdDogJHcvLTI7XG59XG5cbkBtaXhpbiBhYnNDZW50ZXJJY29uKCR3LCAkaDogJHcpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2UoJHcsICRoKTtcbiAgZm9udC1zaXplOiAkaDtcbn1cbkBtaXhpbiBhYnNDZW50ZXJJY29uX3koJGgpICB7XG4gIEBpbmNsdWRlIGFic0NlbnRlckJhc2VfeSgkaCk7XG4gIGZvbnQtc2l6ZTogJGg7XG59XG5cbkBtaXhpbiBmbGV4SW5saW5lT3ZlcnJpZGUgIHtcbiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWZsZXg6IDEgIWltcG9ydGFudDtcbiAgICAtbXMtZmxleDogMSAhaW1wb3J0YW50O1xuICAgIGZsZXg6IDEgIWltcG9ydGFudDtcbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBhcHAtc3BlY2lmaWMgbWl4aW4vdmFycyA+IHRhYnNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGxhcmdlLXRhYnMtc3R5bGUgIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgQGluY2x1ZGUgcmVzcG9uZChtZCkgIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cbn1cbiRsYXJnZS10YWJzLXNwYWNpbmc6IDQwcHg7XG5cbkBtaXhpbiB0cmltSW5uZXJNYXJnaW4gIHtcbiAgPiAqICB7XG4gICAgJjpmaXJzdC1jaGlsZCAge1xuICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gcGxhY2Vob2xkZXJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7QGNvbnRlbnR9XG4gICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAge0Bjb250ZW50fVxuICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgIHtAY29udGVudH1cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgICAgICB7QGNvbnRlbnR9ICBcbn1cblxuXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBub3RlOiAgdGhpcyBpcyBhbiB1cGRhdGVkIG1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICAgIFxuXG5AbWl4aW4gZXZlbi1jb2xzICB7XG4gIEBpbmNsdWRlIGZsZXgtcm93O1xuICAgICYuY29tcGFjdCAge1xuICAgICAgICA+ICogIHtcbiAgICAgICAgICAgICsgKiAge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgICYuc3BhY2VkLW91dCAge1xuICAgICAgPiAqICB7XG4gICAgICAgICAgKyAqICB7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA0NXB4O1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5kZWZhdWx0LXNwYWNlZCAge1xuICAgICAgPiAqICB7XG4gICAgICAgICAgKyAqICB7XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJi5ib3R0b20tYWxpZ24gIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1lbmQpO1xuICAgIH1cbiAgICAmLmV2ZW4tY29scy0tc3RyaXBJbm5lck1hcmdpbnMgIHtcbiAgICAgID4gKiAge1xuICAgICAgICA+ICogIHtcbiAgICAgICAgICAmOmZpcnN0LWNoaWxkICB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgfVxuICAgICAgICAgICY6bGFzdC1jaGlsZCAge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICA+ICogIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIG5vdGU6ICBldmVyeXRoaW5nIGJlbG93IHRoaXMgaXMgbmV3XG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vICAgXG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBzZWN0aW9uID4gdHJpYW5nbGVcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gIFxuQG1peGluIHRyaWFuZ2xlKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xuICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHVwLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSB1cC1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQpIHtcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWRvd24pIHtcbiAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1yaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfVxufVxuXG5cbkBtaXhpbiBncmlkeGdhcCgkZ2FwKSAge1xuICAgIG1hcmdpbjogMCAkZ2FwKi0xO1xuICAgID4gKiAge1xuICAgICAgICBwYWRkaW5nOiAwICRnYXA7XG4gICAgfVxufVxuXG5cbkBtaXhpbiBpbmxpbmUtZ3JpZC1iYXNlICB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gID4gKiAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgICAgXG4gIH1cbn1cbkBtaXhpbiBpbmxpbmUtZ3JpZC14KCRnYXApICB7XG4gIEBpbmNsdWRlIHhtYXJnaW4oJGdhcCotMSk7XG4gID4gKiAge1xuICAgIEBpbmNsdWRlIHhtYXJnaW4oJGdhcCk7XG4gIH1cbn1cbkBtaXhpbiBpbmxpbmUtZ3JpZC15KCRnYXApICB7XG4gIEBpbmNsdWRlIHltYXJnaW4oJGdhcCotMSk7XG4gID4gKiAge1xuICAgIEBpbmNsdWRlIHltYXJnaW4oJGdhcCk7XG4gIH1cbn1cblxuQG1peGluIGlubGluZS1ncmlkLXh5KCRnYXApICB7XG4gIG1hcmdpbjogJGdhcCotMTtcbiAgPiAqICB7XG4gICAgbWFyZ2luOiAkZ2FwO1xuICB9XG59XG4iLCJcbi5yZXZpZXctY29udGFpbmVyIHtcbiAgICAucmV2aWV3LXRhYnMgKyBkaXYge1xuICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMwYWY7XG4gICAgfVxuXG4gICAgLnJldmlldy1mcmFtZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7IFxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyBcbiAgICAgICAgZmxleDogMC45NTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICNjMGMwYzA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmLmVycm9yIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBjb2xvcjogIzIyMjtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGkuZmEuZmEtdHJhc2gge1xuICAgICAgICAgICAgY29sb3I6ICNjMGMwYzA7XG4gICAgXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogIzk5MDAwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIFxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1yYWRpb10ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICY6Y2hlY2tlZCArIGxhYmVsIHtcbiAgICAgICAgICAgIGNvbG9yOiAjMGFmO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2FiYztcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCAjMGFmO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmZmY7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsYWJlbFtmb3IqPVwiS2V5cG9pbnRzXCJdLFxuICAgIGxhYmVsW2Zvcio9XCJSZXBzXCJdLFxuICAgIGxhYmVsW2Zvcio9XCJDb21wZW5zYXRpb25zXCJdIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgMCAtMXB4O1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDI1cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb2xvcjogI2FiYztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IGZvbnRhd2Vzb21lO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICM3ODk7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsYWJlbFtmb3IqPVwiS2V5cG9pbnRzXCJdOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICdcXGYxOTInO1xuICAgIH1cbiAgICBsYWJlbFtmb3IqPVwiUmVwc1wiXTpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnXFxmMGNiJztcbiAgICB9XG4gICAgbGFiZWxbZm9yKj1cIkNvbXBlbnNhdGlvbnNcIl06YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJ1xcZjFmZSc7XG4gICAgfVxuXG4gICAgLmNvbXBzIHtcbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZGlzcGxheSgpO1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoY2VudGVyKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzY29yZV9ncmVlbjtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzY29yZV9ncmVlbjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogODBweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gICAgICAgICAgICAmLmZvdW5kIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2NvcmVfcmVkO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHNjb3JlX3JlZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5oYXJkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBwdXJwbGU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBwdXJwbGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuZWRnZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2FiYztcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICNhYmM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiLmFzc2Vzc21lbnQtY29udGFpbmVyIHtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcblxuICBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICRibHVlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxuXG4gICYubW9yZSB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICA+ZGl2IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICB9XG4gIH1cblxuICAmLmluZm8tb25seSB7XG4gICAgbWFyZ2luLXRvcDogNjBweDtcblxuICAgID4ubGlzdC1jb250YWluZXIge1xuICAgICAgPmRpdjpub3QoLnNjcm9sbC1jb250YWluZXIpIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoc3BhY2UtYmV0d2Vlbik7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICA+LmJhbm5lciB7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgbWluLWhlaWdodDogNDBweDtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgIHRleHQtaW5kZW50OiAxMHB4O1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYzljOWM5O1xuICAgIH1cbiAgfVxuXG4gID4ubGlzdC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgbWFyZ2luOiAzMHB4IDA7XG5cbiAgICA+ZGl2Om5vdCguc2Nyb2xsLWNvbnRhaW5lcikge1xuICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoY2VudGVyKTtcbiAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcblxuICAgICAgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyBcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIH1cblxuICAgICAgLmxpc3QtaW5mbyB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgICAgIG1pbi13aWR0aDogMTQwcHg7XG4gICAgICAgIG1heC13aWR0aDogMTQwcHg7XG4gICAgICAgIHBhZGRpbmc6IDAgNHB4O1xuICAgICAgICA+YSB7XG4gICAgICAgICAgPnNwYW4ge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLmFjdGlvbiB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LWVuZCk7XG4gICAgICAgICAgbWluLXdpZHRoOiA2MHB4O1xuICAgICAgICAgID5idXR0b24ge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMzVweDtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDM1cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmhlYWRlci1yb3cge1xuICAgICAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgICAgICAgIFxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICA+LnNjcm9sbC1jb250YWluZXIge1xuICAgICAgQGluY2x1ZGUgZmxleC1jb2x1bW4oKTtcbiAgICAgIFxuICAgICAgPiBkaXYge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KHNwYWNlLWJldHdlZW4pO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgbWluLWhlaWdodDogNTBweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gIFxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyBcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgfVxuICBcbiAgICAgICAgLmxpc3QtaW5mbyB7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgICBtaW4td2lkdGg6IDE0MHB4O1xuICAgICAgICAgIG1heC13aWR0aDogMTQwcHg7XG4gICAgICAgICAgcGFkZGluZzogMCA0cHg7XG4gICAgICAgICAgJi5hY3Rpb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmxleCgxKTtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtZW5kKTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogNjBweDtcbiAgICAgICAgICAgID5idXR0b24ge1xuICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzNXB4O1xuICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAzNXB4O1xuICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICA+Lm5vLWRhdGEge1xuICAgIEBpbmNsdWRlIGZsZXgtcm93KCk7XG4gICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGNlbnRlcik7XG4gICAgbWluLWhlaWdodDogMjUwcHg7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICB9XG5cbiAgLmluZm8tY29sdW1uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDI1cHg7XG4gICAgbWluLXdpZHRoOiAyNDBweDtcblxuICAgID4uaW5mby1jb250YWluZXIge1xuICAgICAgcGFkZGluZzogOHB4OyBcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG5cbiAgICAgID4uYmFubmVyIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgICBtYXJnaW46IDhweCAwcHg7IFxuICAgICAgICBtaW4taGVpZ2h0OiAzNXB4OyBcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RjZGNkYztcbiAgICAgIH1cblxuICAgICAgPmRpdjpub3QoLmJhbm5lcikge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLWl0ZW1zKGNlbnRlcik7XG4gICAgICAgID5kaXY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcbiAgICAgICAgfVxuICAgICAgICA+ZGl2Omxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgbWF4LXdpZHRoOiAxMjBweDtcbiAgICAgICAgfVxuICAgICAgICAmLnN0YXRlLWluZm8ge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaW5mby1jb250YWluZXIgKyAuaW5mby1jb250YWluZXIge1xuICAgICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICB9XG4gIH1cblxuICAubWVkaWEtY29sdW1uIHtcbiAgICBAaW5jbHVkZSBmbGV4LWNvbHVtbigpO1xuICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gIH1cblxuICAudmlkZW8tY29sdW1uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgPnZpZGVvLFxuICAgID5jYW52YXMge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAvLyBDYXAgYnkgdmlld3BvcnQgaGVpZ2h0IHNvIHRhbGwvcG9ydHJhaXQgdmlkZW9zIHN0YXkgaW5zaWRlIHRoZSB2aXNpYmxlXG4gICAgICAvLyBhcmVhOyBhdXRvIHdpZHRoL2hlaWdodCBwcmVzZXJ2ZXMgdGhlIGludHJpbnNpYyBhc3BlY3QgcmF0aW8uXG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTYwcHgpO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgLnZpZGVvLXBsYXktb3ZlcmxheSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBib3R0b206IDA7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgLy8gTGV0IHRoZSBjbGljayBmYWxsIHRocm91Z2ggdG8gdGhlIGNhbnZhcywgd2hpY2ggb3ducyBwbGF5L3BhdXNlLlxuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICYuaXMtaGlkZGVuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgaSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogODRweDtcbiAgICAgICAgaGVpZ2h0OiA4NHB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNDUpO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC1zaXplOiAzOHB4O1xuICAgICAgICBvcGFjaXR5OiAwLjk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmRldGFpbC1jb2x1bW4ge1xuICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgbWluLXdpZHRoOiAwO1xuXG4gICAgLnRhYmxlLXNjcm9sbCB7XG4gICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICB9XG5cbiAgICAuZGV0YWlsLXRhYmxlIHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtY29sdW1uKCk7XG4gICAgICA+ZGl2IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG5cbiAgICAgICAgJi5oZWFkZXIge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLml0ZW1zIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGFkYWRhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmV4ZXJjaXNlLXRhYmxlIHtcbiAgICAgIG1pbi13aWR0aDogNzAwcHg7XG4gICAgfVxuXG4gICAgLmV4ZXJjaXNlLWxpc3Qge1xuICAgICAgJi5pdGVtcyB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24taXRlbXMoZmxleC1zdGFydCk7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMDtcbiAgICAgIH1cblxuICAgICAgPi5uYW1lIHtcbiAgICAgICAgQGluY2x1ZGUgZmxleCguNik7XG4gICAgICAgIG1pbi13aWR0aDogMTYwcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cblxuICAgICAgPi5zdGF0dXMge1xuICAgICAgICBAaW5jbHVkZSBmbGV4KC40KTtcbiAgICAgICAgbWluLXdpZHRoOiAxMTBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICA+LnJlYXNvbmluZyB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgoMS40KTtcbiAgICAgICAgbWluLXdpZHRoOiAzNDBweDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cblxuICAgICAgPi5hY3Rpb24ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgICBtaW4td2lkdGg6IDEwMHB4O1xuICAgICAgICA+YnV0dG9uIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAzNXB4O1xuICAgICAgICAgIG1heC1oZWlnaHQ6IDM1cHg7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAucmVhc29uLWVudHJ5ICsgLnJlYXNvbi1lbnRyeSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDhweDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IGRvdHRlZCAkbGlnaHRfZ3JleTtcbiAgICAgIH1cblxuICAgICAgLnJlYXNvbi1zb3VyY2Uge1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAuMDRlbTtcbiAgICAgICAgY29sb3I6ICRkYXJrX2dyZXk7XG4gICAgICB9XG5cbiAgICAgIC5yZWFzb24tcmVhc29uIHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zNTtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICAgIH1cblxuICAgICAgLnJlYXNvbi1tZXRhIHtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zNTtcbiAgICAgICAgY29sb3I6ICRkYXJrX2dyZXk7XG4gICAgICB9XG5cbiAgICAgIC5yZWFzb24td2FybmluZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgICAgIGNvbG9yOiBkYXJrZW4oJHllbGxvdywgMjIlKTtcbiAgICAgIH1cblxuICAgICAgLnJlYXNvbi1tdXRlZCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICBjb2xvcjogJGdyZXk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1lYXN1cmVtZW50LWxpc3Qge1xuICAgICAgJi5oZWFkZXIge1xuICAgICAgICAubmFtZSB+IGRpdiB7XG4gICAgICAgICAgbWluLXdpZHRoOiA4MHB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICA+Lm5hbWUge1xuICAgICAgICBtaW4td2lkdGg6IDMwMHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIH1cblxuICAgICAgLm5hbWUgfiBkaXYge1xuICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgfVxuXG4gICAgICBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gIFxuICAgICAgbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWRpc3BsYXkoKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2NvcmVfZ3JlZW47XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRzY29yZV9ncmVlbjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBtaW4td2lkdGg6IDgwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgJi5pbmFjdGl2ZSB7XG4gICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuaW5hY3RpdmU6bm90KC5mb3VuZCkge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjMGMwYzA7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAjYzBjMGMwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5mb3VuZCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNjb3JlX3JlZDtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRzY29yZV9yZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZXhlcmNpc2Utc3RhdHVzIHtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICA+ZGl2IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1hbGlnbi1pdGVtcyhjZW50ZXIpO1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChjZW50ZXIpO1xuICAgICAgICBtaW4taGVpZ2h0OiA1MnB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYzBjMGMwO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGFkYWRhO1xuXG4gICAgICAgICYucGVuZGluZyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwYjk2ZFxuICAgICAgICB9XG5cbiAgICAgICAgLnRleHQge1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgoMSk7XG4gICAgICAgICAgQGluY2x1ZGUgZmxleC1yb3coKTtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LWp1c3RpZnktY29udGVudChmbGV4LXN0YXJ0KTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAgICYubWFudWFsIHsgY29sb3I6ICNmZWZlZmU7IH1cbiAgICAgICAgICAmLnBlbmRpbmcgeyBjb2xvcjogI2VmZWZlZjsgfVxuICAgICAgICAgICYuY29tcGxldGUgeyBjb2xvcjogIzJkNmIxZDsgfVxuICAgICAgICAgICYuYWJvcnRlZCB7IGNvbG9yOiAjMmQxODE4OyB9XG4gICAgICAgIH1cblxuICAgICAgICAuYnV0dG9uIHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgICAgIEBpbmNsdWRlIGZsZXgtanVzdGlmeS1jb250ZW50KGZsZXgtZW5kKTtcbiAgICAgICAgICA+IGJ1dHRvbiB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgbWF4LWhlaWdodDogNDBweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWVhc3VyZW1lbnQtc2F2ZSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LXJvdygpO1xuICAgICAgQGluY2x1ZGUgZmxleC1qdXN0aWZ5LWNvbnRlbnQoZmxleC1lbmQpO1xuICAgICAgbWFyZ2luOiAyMHB4IDA7XG4gICAgICA+YnV0dG9uIHtcbiAgICAgICAgbWluLXdpZHRoOiAxMzBweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIvLyBQcm9ncmFtcyBwYWdlIGNhcmQgZ3JpZCAoLyMvcHJvZ3JhbXMvOmF0aGxldGVJZCkgLSByZXBsYWNlcyB0aGUgbGVnYWN5XG4vLyAuY2F0YWxvZy1oaXN0b3J5IHRhYmxlLiBVc2VzIHJlYWwgZmxleC9ncmlkIHJhdGhlciB0aGFuIHRoZSByb3ctY29udGFpbmVyIG1peGlucy5cblxuJHByb2dyYW0tY2FyZC10aXRsZTogIzFmMWYyODtcbiRwcm9ncmFtLWNhcmQtdGFnLWJnOiAjZjJmMmY0O1xuJHByb2dyYW0tY2FyZC1oaXN0b3J5LXRodW1iLWJnOiAjZDlkOWQ5O1xuJHByb2dyYW0tY2FyZC1ub3RpY2UtYmc6ICNmZGY4ZWM7XG4kcHJvZ3JhbS1jYXJkLW5vdGljZS1ib3JkZXI6ICNmMmUzYmQ7XG4kcHJvZ3JhbS1jYXJkLWNoaXAtYmc6ICNmMmYyZjQ7XG4kcHJvZ3JhbS1jYXJkLWNoaXAtb2ZmOiAjYzRjNGM4O1xuXG4vLyBEZWxpYmVyYXRlbHkgbm90IC53aGl0ZWJvYXJkLy5jb2x1bW4tY29udGFpbmVyIC0gLndoaXRlYm9hcmQgZm9yY2VzIG1pbi13aWR0aDogNjQwcHgsXG4vLyB3aGljaCB3b3VsZCBkZWZlYXQgdGhlIGdyaWQncyBtb2JpbGUgcmVmbG93LlxuLy8gUGFpbnRzIHRoZSBwYWdlIGJhY2tncm91bmQgZWRnZSB0byBlZGdlIGFuZCBjZW50ZXJzIGl0cyBzaW5nbGUgY2hpbGQsIHNvIHRoZSBjYXRhbG9nXG4vLyBhbmQgcHJvZ3JhbSBkZXRhaWwgcGFuZXMgY2FuIGNhcCB0aGVpciB3aWR0aCB3aXRob3V0IGxlYXZpbmcgYSBncmV5IGNvbHVtbiBzdHJhbmRlZFxuLy8gb24gdGhlIHdoaXRlIC52aWV3LWxheW91dC4gTm8gZWZmZWN0IG9uIHRoZSBjYXJkIGdyaWQsIHdoaWNoIGhhcyBubyBtYXgtd2lkdGguXG4ucHJvZ3JhbXMtcGFnZS1ob3N0IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAkcGFnZS1iZztcbn1cblxuLnByb2dyYW1zLXBhZ2Uge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMjRweCAzMnB4IDQ4cHg7XG4gIGJhY2tncm91bmQ6ICRwYWdlLWJnO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gIC8vIE5ldXRyYWxpemUgZ2xvYmFsIGJ1dHRvbiB7IG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2UgfVxuICAvLyBEbyBub3Qgc2V0IGhlaWdodDogYXV0byBoZXJlIC0gaXQgb3V0LXNwZWNpZmllcyBjb21wb25lbnQgaGVpZ2h0IGxvY2tzLlxuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICB9XG5cbiAgYnV0dG9uICsgYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gICZfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDE2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDM4cHg7XG4gICAgY29sb3I6ICRwcm9ncmFtLWNhcmQtdGl0bGU7XG4gIH1cblxuICAvLyBFdmVyeSBjb250cm9sIG9uIHRoaXMgcGFnZSBzdGFuZHMgNDBweC4gVGhlIGdsb2JhbCBidXR0b24geyBsb2NrLWhlaWdodCg1MHB4KSB9XG4gIC8vIGluIF9iYXNlLnNjc3Mgc2V0cyBgaGVpZ2h0YCwgd2hpY2ggdGhlIGAucHJvZ3JhbXMtcGFnZSBidXR0b25gIHJlc2V0IGFib3ZlIGRvZXNcbiAgLy8gTk9UIGNsZWFyIChpdCBvbmx5IGRyb3BzIG1pbi1oZWlnaHQgLyBtYXgtaGVpZ2h0KSwgc28gZWFjaCBvZiB0aGVzZSBuZWVkcyB0aGVcbiAgLy8gaGVpZ2h0IHN0YXRlZCBvdXRyaWdodCAtIHBhZGRpbmcgYWxvbmUgbmV2ZXIgd2lucyBhZ2FpbnN0IGl0LlxuICAmX19jYXRhbG9nLWJ0biB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiAwIDE4cHg7XG4gICAgLy8gUmVhZHMgYXMgYW4gb3V0bGluZSBidXR0b24gbGlmdGVkIG9mZiB0aGUgcGFnZSByYXRoZXIgdGhhbiBhIHdoaXRlIGNhcmQgb24gZ3JleS5cbiAgICBiYWNrZ3JvdW5kOiAkcGFnZS1iZztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmx1ZTtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibHVlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgfVxuICB9XG5cbiAgJl9fdGFicyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB9XG5cbiAgJl9fdGFiIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJi0tYWN0aXZlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJsdWU7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICB9XG4gIH1cblxuICAmX190YWItY291bnQge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWluLXdpZHRoOiAyMnB4O1xuICAgIHBhZGRpbmc6IDAgNnB4O1xuICAgIGJhY2tncm91bmQ6ICRwcm9ncmFtLWNhcmQtdGFnLWJnO1xuICAgIGJvcmRlci1yYWRpdXM6IDExcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAmX190YWItLWFjdGl2ZSAmX190YWItY291bnQge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7XG4gICAgY29sb3I6ICRibHVlO1xuICB9XG5cbiAgJl9fbm90aWNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICBwYWRkaW5nOiAwIDE2cHg7XG4gICAgYmFja2dyb3VuZDogJHByb2dyYW0tY2FyZC1ub3RpY2UtYmc7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHByb2dyYW0tY2FyZC1ub3RpY2UtYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgfVxuXG4gICZfX25vdGljZS1pY29uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcblxuICAgIC8vIE9wdGljYWwgYWxpZ25tZW50IGFnYWluc3QgdGhlIHRleHQsIHNldCBieSBleWUgLSBjZW50ZXJpbmcgdGhlIGJveGVzIHNpdHNcbiAgICAvLyB0aGUgZ2x5cGggbG93IGFnYWluc3QgdGhlIGNhcCBoZWlnaHQgb2YgdGhlIDE2LzIwIGxhYmVsLlxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xcHg7XG4gIH1cblxuICAmX19ub3RpY2UtdGV4dCB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogJGFtYmVyO1xuICB9XG5cbiAgJl9fbm90aWNlLWNsb3NlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgLy8gV2l0aG91dCB0aGlzIGl0IGluaGVyaXRzIHRoZSBnbG9iYWwgNTBweCBhbmQgb3ZlcmZsb3dzIHRoZSA0NHB4IG5vdGljZSBiYXIuXG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHBhZGRpbmc6IDAgNHB4O1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJGFtYmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICZfX2dyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCAzNjFweCk7XG4gICAgZ2FwOiAyNHB4O1xuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLWdyaWQge1xuICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICB9XG5cbiAgJl9fZW1wdHkge1xuICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogOTZweCAyNHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gICZfX2VtcHR5LXRpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1mYW1pbHk6IFwiTnVkaXN0YVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogIzRmNGY0ZjtcbiAgfVxuXG4gICZfX2VtcHR5LWRlc2NyaXB0aW9uIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWF4LXdpZHRoOiA0MjBweDtcbiAgICBmb250LWZhbWlseTogXCJOdWRpc3RhXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjNGY0ZjRmO1xuICB9XG5cbiAgJl9fZW1wdHkgLnByb2dyYW1zLXBhZ2VfX2NhdGFsb2ctYnRuIHtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICB9XG5cbiAgJl9faGlzdG9yeS10YWJsZS13cmFwIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgfVxuXG4gICZfX2hpc3RvcnktdGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogNjQwcHg7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICB9XG5cbiAgJl9faGlzdG9yeS10aCB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICYtLW5hbWUge1xuICAgICAgd2lkdGg6IDM4JTtcbiAgICB9XG5cbiAgICAmLS1kYXRlIHtcbiAgICAgIHdpZHRoOiAxNiU7XG4gICAgfVxuXG4gICAgJi0tY3JlYXRlZCB7XG4gICAgICB3aWR0aDogMzAlO1xuICAgIH1cbiAgfVxuXG4gICZfX2hpc3Rvcnktc29ydCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHByb2dyYW0tY2FyZC10aXRsZTtcbiAgICB9XG4gIH1cblxuICAvLyBGaWdtYSBzb3J0IGdseXBoOiBkb3duIGFycm93IChsZWZ0KSArIHVwIGFycm93IChyaWdodCkuIFRoZSBhcnJvdyBtYXRjaGluZ1xuICAvLyB0aGUgYWN0aXZlIHNvcnQgZGlyZWN0aW9uIHR1cm5zIHB1cnBsZTsgYm90aCBzdGF5IGdyZXkgb3RoZXJ3aXNlLlxuICAmX19oaXN0b3J5LXNvcnQtaWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEycHg7XG4gICAgaGVpZ2h0OiAxMnB4O1xuXG4gICAgcGF0aCB7XG4gICAgICBmaWxsOiAkYmxhY2stNjAwO1xuICAgIH1cblxuICAgICYtLWFzYyAucHJvZ3JhbXMtcGFnZV9faGlzdG9yeS1zb3J0LXVwLFxuICAgICYtLWRlc2MgLnByb2dyYW1zLXBhZ2VfX2hpc3Rvcnktc29ydC1kb3duIHtcbiAgICAgIGZpbGw6ICRwdXJwbGUtNTAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2hpc3Rvcnktcm93IHtcbiAgICBoZWlnaHQ6IDcycHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2hpc3RvcnktdGQge1xuICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJHByb2dyYW0tY2FyZC10aXRsZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgJi0tbmFtZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogMTJweDtcbiAgICB9XG5cbiAgICAmLS1kYXRlIHtcbiAgICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIH1cblxuICAgICYtLWNyZWF0ZWQge1xuICAgICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgfVxuICB9XG5cbiAgLy8gUGxhY2Vob2xkZXIgYmxvY2sgLSBjb21wbGV0ZWQgcHJvZ3JhbXMgbm8gbG9uZ2VyIHJlbmRlciBhIHRodW1ibmFpbCBpbWFnZS5cbiAgJl9faGlzdG9yeS10aHVtYiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDQ4cHg7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAkcHJvZ3JhbS1jYXJkLWhpc3RvcnktdGh1bWItYmc7XG4gIH1cblxuICAmX19oaXN0b3J5LXNrZWxldG9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDhweCAwO1xuICB9XG5cbiAgJl9faGlzdG9yeS1za2VsZXRvbi1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIH1cblxuICAmX19oaXN0b3J5LXNrZWxldG9uLXRodW1iIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogNDhweDtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB9XG5cbiAgJl9faGlzdG9yeS1uYW1lIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX19oaXN0b3J5LXRpdGxlIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJGJsdWU7XG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgfVxuXG4gICZfX2hpc3RvcnktZ2VucmUge1xuICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX2hpc3RvcnktZm9vdGVyIHtcbiAgICBwYWRkaW5nOiAxNHB4IDE2cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcblxuICAgIC8vIFRoZSBtb2JpbGUgbGlzdCBpcyBhIHN0YWNrIG9mIHNlcGFyYXRlIGNhcmRzLCBzbyB0aGUgY291bnQgbGluZSBmbG9hdHMgYmVuZWF0aFxuICAgIC8vIHRoZW0gaW5zdGVhZCBvZiBjbG9zaW5nIG9mZiBhIGJvcmRlcmVkIHRhYmxlIGJveC5cbiAgICAmLS1jYXJkcyB7XG4gICAgICBwYWRkaW5nOiA0cHggNHB4IDA7XG4gICAgICBib3JkZXItdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBDb21wbGV0ZWQgdGFiLCBtb2JpbGUuIFJlbmRlcmVkIG9ubHkgdW5kZXIgbmctaWY9XCJ2bS5pc01vYmlsZVwiICg8PSA3NjhweCksXG4gIC8vIHNvIHRoZXNlIHJ1bGVzIGRlbGliZXJhdGVseSBsaXZlIG91dHNpZGUgYSBtZWRpYSBxdWVyeS5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX2hpc3RvcnktY2FyZHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG4gIH1cblxuICAmX19oaXN0b3J5LXNvcnRiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICAvLyBMb2NhbGl6ZWQgbGFiZWxzIChcIlN0YXJ0IERhdHVtXCIgLyBcIkVuZGRhdHVtXCIpIGNhbiBvdXRncm93IGEgMzIwcHggdmlld3BvcnQ7XG4gICAgLy8gc2Nyb2xsIHRoZSBjaGlwcyByYXRoZXIgdGhhbiB3cmFwcGluZyB0aGVtIG9udG8gYSBzZWNvbmQgcm93LlxuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIHBhZGRpbmctYm90dG9tOiAycHg7XG4gIH1cblxuICAmX19oaXN0b3J5LWNoaXAge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAvLyBTaGFwZSBkZWxpYmVyYXRlbHkgbWlycm9ycyAucHJvZ3JhbXMtcGFnZV9fdGFiIGFib3ZlIC0gc2FtZSA2cHggcmFkaXVzLCBib3JkZXJcbiAgICAvLyBhbmQgdHlwZSAtIHNvIHRoZSBzb3J0IHJvdyByZWFkcyBhcyBhIHNpYmxpbmcgb2YgdGhlIEN1cnJlbnQvQ29tcGxldGVkIHRhYnNcbiAgICAvLyByYXRoZXIgdGhhbiBhcyBhIGRpZmZlcmVudCBraW5kIG9mIGNvbnRyb2wuXG4gICAgLy8gVGhlIGdsb2JhbCBidXR0b24geyBsb2NrLWhlaWdodCg1MHB4KSB9IHNldHMgYGhlaWdodGAsIHdoaWNoIHRoZVxuICAgIC8vIGAucHJvZ3JhbXMtcGFnZSBidXR0b25gIHJlc2V0IGRvZXMgTk9UIG5ldXRyYWxpemUgKGl0IG9ubHkgY2xlYXJzIG1pbi1oZWlnaHQgL1xuICAgIC8vIG1heC1oZWlnaHQpLiBXaXRob3V0IGFuIGV4cGxpY2l0IGhlaWdodCB0aGVzZSByZW5kZXIgNTBweCB0YWxsLlxuICAgIGhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIC8vIE1hdGNoZXMgdGhlIGFjdGl2ZSB0cmVhdG1lbnQgb24gLnByb2dyYW1zLXBhZ2VfX3RhYiBhYm92ZS5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkYmx1ZTtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuICAgICAgY29sb3I6ICRibHVlO1xuICAgIH1cbiAgfVxuXG4gICZfX2hpc3RvcnktY2hpcC1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cblxuICAmX19oaXN0b3J5LWNhcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiAxMnB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMTYsIDI0LCA0MCwgMC4wNCk7XG4gIH1cblxuICAmX19oaXN0b3J5LWNhcmQtYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNHB4O1xuICAgIC8vIFdpdGhvdXQgdGhpcyB0aGUgZmxleCBpdGVtIHJlZnVzZXMgdG8gc2hyaW5rIGFuZCBsb25nIHRpdGxlcyBwdXNoIHRoZSBjYXJkIHdpZGUuXG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLy8gVHdvIGxpbmVzIG1heCwgc28gYSA2MC1jaGFyYWN0ZXIgcHJvZ3JhbSBuYW1lIGNhbm5vdCBtYWtlIG9uZSBjYXJkIHRocmVlIHRpbWVzXG4gIC8vIHRoZSBoZWlnaHQgb2YgaXRzIG5laWdoYm91cnMuXG4gICZfX2hpc3RvcnktY2FyZCAmX19oaXN0b3J5LXRpdGxlIHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICBtYXgtaGVpZ2h0OiA0MHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmX19oaXN0b3J5LWRhdGVzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweCAyNHB4O1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgfVxuXG4gICZfX2hpc3RvcnktZGF0ZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMnB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gIC8vIFRoZSA8dGhlYWQ+IGlzIGdvbmUgb24gbW9iaWxlLCBzbyBlYWNoIHZhbHVlIGNhcnJpZXMgaXRzIG93biBsYWJlbC5cbiAgJl9faGlzdG9yeS1kYXRlLWxhYmVsIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC40cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX2hpc3RvcnktZGF0ZS12YWx1ZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRwcm9ncmFtLWNhcmQtdGl0bGU7XG4gIH1cbn1cblxuLnByb2dyYW0tY2FyZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAzNjFweDtcbiAgLy8gMzQ4IHBlciBGaWdtYS4gVGhlIGJvZHkgZ2V0cyAxOTQgb2YgdGhhdCAoMzQ4IC0gMiBib3JkZXIgLSAxNTIgbWVkaWEpLCB3aGljaCB0aGVcbiAgLy8gdGFsbGVzdCB2YXJpYW50IC0gdW5zY2hlZHVsZWQsIDMgbWV0YSByb3dzIC0gc3BlbmRzIGFzIDI0IHBhZGRpbmcgKyAyMCB0aXRsZSArXG4gIC8vIDIwIHRhZ3MgKyA1NiBtZXRhICsgNDggYWN0aW9ucyArIDI0IGdhcHMgPSAxOTIuIFRyaW1taW5nIGFueSBvZiB0aGUgcm93cyBiZWxvd1xuICAvLyBpcyB3aGF0IGtlZXBzIF9fbWV0YSBmcm9tIHNocmlua2luZyBhbmQgY2xpcHBpbmcgaXRzIGxhc3QgbGluZS5cbiAgaGVpZ2h0OiAzNDhweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDE2LCAyNCwgNDAsIDAuMDQpO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICAmX19tZWRpYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGhlaWdodDogMTUycHg7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgYmFja2dyb3VuZDogJGJsYWNrLTIwMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHggNnB4IDAgMDtcbiAgfVxuXG4gICZfX2JhZGdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMnB4O1xuICAgIGxlZnQ6IDEycHg7XG4gICAgei1pbmRleDogMTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjJlZGZjO1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgZm9udC1mYW1pbHk6IFwiTnVkaXN0YVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogIzUzM2Q4MjtcbiAgfVxuXG4gICZfX21lbnUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEycHg7XG4gICAgcmlnaHQ6IDEycHg7XG4gICAgei1pbmRleDogMjtcbiAgfVxuXG4gICZfX21lbnUtYnRuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHByb2dyYW0tY2FyZC10aXRsZTtcbiAgICAgIGJhY2tncm91bmQ6ICRwcm9ncmFtLWNhcmQtdGFnLWJnO1xuICAgIH1cbiAgfVxuXG4gICZfX21lbnUtbGlzdCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogY2FsYygxMDAlICsgNHB4KTtcbiAgICByaWdodDogMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAxODBweDtcbiAgICBtaW4td2lkdGg6IDE4MHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgxNiwgMjQsIDQwLCAwLjEyKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgJl9fbWVudS1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgcGFkZGluZzogMTRweCAxNnB4O1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGZvbnQtZmFtaWx5OiBcIk51ZGlzdGFcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogI2YwNDQzODtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2ZlZjNmMjtcbiAgICAgIGNvbG9yOiAjZjA0NDM4O1xuICAgIH1cbiAgfVxuXG4gICZfX21lbnUtaXRlbS1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgfVxuXG4gICZfX2JvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1heC1oZWlnaHQ6IDQwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmb250LWZhbWlseTogXCJOdWRpc3RhXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICRwcm9ncmFtLWNhcmQtdGl0bGU7XG4gIH1cblxuICAmX190YWdzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAmX190YWcge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBnYXA6IDRweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgcGFkZGluZzogMCA4cHg7XG4gICAgYmFja2dyb3VuZDogJHByb2dyYW0tY2FyZC10YWctYmc7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gICZfX3RhZy1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6IGluaGVyaXQ7XG5cbiAgICAmLS1pbWcge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTJweDtcbiAgICAgIGhlaWdodDogMTJweDtcbiAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgfVxuICB9XG5cbiAgJl9fbWV0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgIC8vIDRweCBnYXAgLT4gMjBweCByb3cgcGl0Y2gsIG1hdGNoaW5nIHRoZSBGaWdtYSBtZXRhIHN0YWNrLlxuICAgIGdhcDogNHB4O1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gICZfX21ldGEtcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgZm9udC1mYW1pbHk6IFwiTnVkaXN0YVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgLy8gUHJhY3RpdGlvbmVyIG5hbWVzIGNvbWUgZnJvbSB0aGUgQVBJIGFuZCBydW4gdG8gYW55IGxlbmd0aCwgc28gdGhlIG5hbWUgaXMgdGhlIHBhcnRcbiAgLy8gdGhhdCBnaXZlczogaXQgdHJ1bmNhdGVzIChmdWxsIHRleHQgc3RheXMgaW4gdGhlIHRpdGxlIGF0dHJpYnV0ZSkgcmF0aGVyIHRoYW4gcHVzaGluZ1xuICAvLyB0aGUgYXNzaWdubWVudCBkYXRlIG9mZiB0aGUgY2FyZCBvciB3cmFwcGluZyB0aGUgcm93IGFuZCBjbGlwcGluZyB0aGUgcm93cyB1bmRlciBpdC5cbiAgJl9fbWV0YS1uYW1lIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgJl9fbWV0YS1kYXRlIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgJl9fbWV0YS1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMTRweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuXG4gICAgJi0taW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIH1cblxuICAgIC8vIElubGluZSBTVkcgKHBlcnNvbiBnbHlwaCBzaGFyZWQgd2l0aCB0aGUgbmF2IGJhcikgc2l0cyBvbiB0aGUgc2FtZSAxNHB4IHJhaWxcbiAgICAvLyBhcyB0aGUgaW1hZ2UgaWNvbnMgYWJvdmUuXG4gICAgJi0tc3ZnIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBoZWlnaHQ6IDE0cHg7XG5cbiAgICAgIHN2ZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX21ldGEtZG90IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBtYXJnaW46IDAgLTJweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgY29sb3I6ICRwcm9ncmFtLWNhcmQtY2hpcC1vZmY7XG4gIH1cblxuICAmX19zY2hlZHVsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEycHg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gIH1cblxuICAmX19zY2hlZHVsZS1sYWJlbCB7XG4gICAgZm9udC1mYW1pbHk6IFwiTnVkaXN0YVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGNvbG9yOiAkcHJvZ3JhbS1jYXJkLXRpdGxlO1xuICB9XG5cbiAgJl9fZGF5cyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDJweDtcbiAgfVxuXG4gICZfX2RheSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgYmFja2dyb3VuZDogJHByb2dyYW0tY2FyZC1jaGlwLWJnO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBjb2xvcjogJHByb2dyYW0tY2FyZC1jaGlwLW9mZjtcblxuICAgICYtLW9uIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuICAgICAgY29sb3I6ICRwdXJwbGUtOTAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIHBhZGRpbmctdG9wOiA0cHg7XG4gIH1cblxuICAmX19jdGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGdhcDogOHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNDRweDtcbiAgICBwYWRkaW5nOiAwIDE2cHggMCAxMnB4O1xuICAgIGJhY2tncm91bmQ6ICRibHVlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibHVlO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIG9wYWNpdHk6IDAuOTtcbiAgICB9XG5cbiAgICAmLS1naG9zdCB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgY29sb3I6ICRibHVlO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fY3RhLWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICB9XG5cbiAgJi0tc2tlbGV0b24ge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgLnByb2dyYW0tY2FyZF9fbWVkaWEge1xuICAgICAgYmFja2dyb3VuZDogI2VjZWNlZjtcbiAgICAgIGFuaW1hdGlvbjogaG9tZS1za2VsZXRvbi1wdWxzZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgIH1cbiAgfVxuXG4gICZfX3NrZWxldG9uLXRpdGxlIHtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgd2lkdGg6IDcyJTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAmX19za2VsZXRvbi10YWcge1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogNzJweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIH1cblxuICAmX19za2VsZXRvbi1tZXRhIHtcbiAgICBoZWlnaHQ6IDEycHg7XG4gICAgd2lkdGg6IDU4JTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAmX19za2VsZXRvbi1jdGEge1xuICAgIGhlaWdodDogNDRweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDExMDBweCkge1xuICAucHJvZ3JhbXMtcGFnZSB7XG4gICAgcGFkZGluZzogMjBweCAyMHB4IDQwcHg7XG5cbiAgICAmX19ncmlkIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgMzYxcHgpO1xuICAgICAgZ2FwOiAyMHB4O1xuICAgIH1cbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnByb2dyYW1zLXBhZ2Uge1xuICAgIHBhZGRpbmc6IDE2cHggMTZweCAzMnB4O1xuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIGdhcDogMTJweDtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICB9XG5cbiAgICAmX19jYXRhbG9nLWJ0biB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvLyBCb3RoIHRhYnMgc3RheSBvbiBvbmUgcm93LiBUaGV5IHNoYXJlIHRoZSB3aWR0aCBhbmQgc2hyaW5rIHRoZWlyIG93biBsYWJlbHNcbiAgICAvLyByYXRoZXIgdGhhbiB3cmFwcGluZyB0aGUgc2Vjb25kIHRhYiBvbnRvIGEgbGluZSBvZiBpdHMgb3duLlxuICAgICZfX3RhYnMge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBnYXA6IDhweDtcbiAgICB9XG5cbiAgICAmX190YWIge1xuICAgICAgLy8gZmxleC1iYXNpczogYXV0byBzbyB0aGUgbG9uZ2VyIGxhYmVsIChcIkNvbXBsZXRlZCBQcm9ncmFtc1wiKSBrZWVwcyBhXG4gICAgICAvLyBwcm9wb3J0aW9uYWxseSB3aWRlciBzaGFyZSBpbnN0ZWFkIG9mIGJlaW5nIGZvcmNlZCBpbnRvIGFuIGVxdWFsIGhhbGYuXG4gICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgZ2FwOiA2cHg7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgfVxuXG4gICAgLy8gVGhlIGxhYmVsIGlzIHdoYXQgZ2l2ZXM7IHRoZSBjb3VudCBiYWRnZSBuZXZlciBzaHJpbmtzLiBBdCAzNzVweCBib3RoIGxhYmVsc1xuICAgIC8vIGZpdCBvdXRyaWdodCwgYW5kIGJlbG93IHRoYXQgdGhleSBlbGxpcHNpcyBpbnN0ZWFkIG9mIHB1c2hpbmcgdGhlIHJvdyB3aWRlLlxuICAgICZfX3RhYi1sYWJlbCB7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgICZfX3RhYi1jb3VudCB7XG4gICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgIG1pbi13aWR0aDogMjBweDtcbiAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgIH1cblxuICAgICZfX2dyaWQge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzNjFweDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgICZfX2VtcHR5IHtcbiAgICAgIHBhZGRpbmc6IDU2cHggMTZweDtcbiAgICB9XG4gIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUb2FzdCAodGVtcGxhdGVzL3Byb2dyYW1fY2FyZHMuaHRtbCAtPiBQcm9ncmFtQ29udHJvbGxlci5fc2hvd1RvYXN0KS5cbi8vIFNhbWUgYmFyIGFzIHRoZSBwcm9maWxlIHNhdmUgdG9hc3QgKC5hdGhsZXRlLXByb2ZpbGVfX3RvYXN0KTogNDRweCwgIzM1MzU0Yixcbi8vIDRweCBjb3JuZXJzLCAzMnB4IGdhcHMsIHNhbWUgY2hlY2sgYW5kIGNsb3NlIGljb25zIC0gdGhlIGNoZWNrIG9ubHkgb24gdGhlXG4vLyBzY2hlZHVsZS1jb25maXJtYXRpb24gdmFyaWFudC4gVGhlIGFuY2hvcmluZyBkaWZmZXJzOiB0aGF0IG9uZSBoYW5ncyBvZmYgdGhlXG4vLyBwcm9maWxlIGNhcmQsIHRoaXMgb25lIGlzIGZpeGVkIHRvIHRoZSBib3R0b20gb2YgdGhlIHZpZXdwb3J0IHNvXG4vLyAucHJvZ3JhbXMtcGFnZSdzIG93biBzY3JvbGwgY29udGFpbmVyLCB3aGljaCB0aGUgZ3JpZCBsaXZlcyBpbiwgY2Fubm90IGNhcnJ5XG4vLyBpdCBvZmYgc2NyZWVuLlxuLy9cbi8vIEhvcml6b250YWxseSBpdCBpcyBjZW50cmVkIG9uIHRoZSBjb250ZW50IGNvbHVtbiByYXRoZXIgdGhhbiB0aGUgdmlld3BvcnQsIHNvXG4vLyBpdCBsaW5lcyB1cCB3aXRoIHRoZSBwYWdlIGJvZHkgYW5kIHRoZSBzaXRlIGZvb3RlciAodmlld3MvcHJvZ3JhbXMuaHRtbCAtPlxuLy8gLmZvb3Rlci1jb250ZW50LCB3aGljaCB0aGUgc2lkZWJhciBydWxlIGluIF9hdGhsZXRlX3NpZGViYXIuc2NzcyBpbmRlbnRzIGJ5IHRoZVxuLy8gcmFpbCB3aWR0aCkuIHBvc2l0aW9uOiBmaXhlZCByZXNvbHZlcyBhZ2FpbnN0IHRoZSB2aWV3cG9ydCwgc28gdGhlIHJhaWwgd2lkdGhcbi8vIGhhcyB0byBiZSBhZGRlZCBiYWNrIGJ5IGhhbmQ7IHRoZSB0d28gc2NvcGVkIHJ1bGVzIGJlbG93IGRvIHRoYXQgdXNpbmcgdGhlIHNhbWVcbi8vIDpoYXMoKSBjb25kaXRpb25zIHRoYXQgZHJpdmUgdGhlIGNvbnRlbnQgbWFyZ2luLCBzbyBwYWdlcyB3aXRob3V0IGEgcmFpbCBhbmRcbi8vIHRoZSBjb2xsYXBzZWQgcmFpbCBib3RoIHN0YXkgY29ycmVjdC5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cbi5wcm9ncmFtcy10b2FzdCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAzMnB4O1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgLy8gT3ZlciB0aGUgcGFnZSBhbmQgaXRzIHN0aWNreSBoZWFkZXI7IGJlbG93IC5tb2RhbC12aWV3ICgxMDAwKSwgd2hpY2ggaXMgZ29uZVxuICAvLyBieSB0aGUgdGltZSB0aGlzIHNob3dzIGJ1dCBtdXN0IHN0aWxsIHdpbiBpZiB0aGUgdHdvIGV2ZXIgb3ZlcmxhcC5cbiAgei1pbmRleDogOTAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMzJweDtcbiAgLy8gRml4ZWQgNDRweCwgcGVyIHRoZSBkZXNpZ24uIFRoZSBtZXNzYWdlIGVsbGlwc2lzZXMgcmF0aGVyIHRoYW4gd3JhcHBpbmcsIHNvXG4gIC8vIGEgbG9uZyBwcm9ncmFtIG5hbWUgY2Fubm90IGdyb3cgdGhlIGJhciBpbnRvIGEgc2Vjb25kIGxpbmUuXG4gIGhlaWdodDogNDRweDtcbiAgd2lkdGg6IG1heC1jb250ZW50O1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAzMnB4KTtcbiAgcGFkZGluZzogOHB4IDhweCA4cHggMTZweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kOiAkc2lkZWJhci10aXRsZTtcbiAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDE2LCAyNCwgNDAsIDAuMjQpO1xufVxuXG4vLyBSYWlsIHByZXNlbnQ6IHNoaWZ0IHRoZSBjZW50cmUgcmlnaHQgYnkgaGFsZiB0aGUgcmFpbCwgYW5kIHRha2UgdGhlIHJhaWwgb3V0IG9mXG4vLyB0aGUgd2lkdGggY2FwIHNvIGEgbG9uZyBwcm9ncmFtIG5hbWUgY2Fubm90IHJ1biBvZmYgdGhlIHJpZ2h0IGVkZ2UuXG4ubWFpbi12aWV3Omhhcyg+IC5tZW51LWNvbnRlbnQgLnByb2ZpbGUtbWVudS0tc2lkZWJhci5oYXMtaXRlbXMpIC5wcm9ncmFtcy10b2FzdCB7XG4gIGxlZnQ6IGNhbGMoNTAlICsgI3skYXRobGV0ZS1zaWRlYmFyLXdpZHRofSAvIDIpO1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAjeyRhdGhsZXRlLXNpZGViYXItd2lkdGh9IC0gMzJweCk7XG59XG5cbi8vIENvbGxhcHNlZCByYWlsLiBXaW5zIG92ZXIgdGhlIHJ1bGUgYWJvdmUgb24gc3BlY2lmaWNpdHkgYWxvbmUgKG9uZSBtb3JlIGNsYXNzXG4vLyBpbnNpZGUgdGhlIDpoYXMoKSksIG1hdGNoaW5nIGhvdyB0aGUgbWFyZ2luLWxlZnQgcGFpciBpbiBfYXRobGV0ZV9zaWRlYmFyLnNjc3Ncbi8vIGlzIGxheWVyZWQuXG4ubWFpbi12aWV3Omhhcyg+IC5tZW51LWNvbnRlbnQgLnByb2ZpbGUtbWVudS0tc2lkZWJhci5oYXMtaXRlbXMuaXMtY29sbGFwc2VkKSAucHJvZ3JhbXMtdG9hc3Qge1xuICBsZWZ0OiBjYWxjKDUwJSArICN7JGF0aGxldGUtc2lkZWJhci1jb2xsYXBzZWQtd2lkdGh9IC8gMik7XG4gIG1heC13aWR0aDogY2FsYygxMDB2dyAtICN7JGF0aGxldGUtc2lkZWJhci1jb2xsYXBzZWQtd2lkdGh9IC0gMzJweCk7XG59XG5cbi5wcm9ncmFtcy10b2FzdCB7XG5cbiAgLy8gVGhlIDMycHggZmxleCBnYXAgaXMgdGhlIHNwYWNpbmcgYmV0d2VlbiB0aGUgbWVzc2FnZSBhbmQgdGhlIGNsb3NlIGJ1dHRvbjtcbiAgLy8gdGhlIGNoZWNrIHNpdHMgdGlnaHQgYWdhaW5zdCBpdHMgb3duIG1lc3NhZ2UgaW5zdGVhZCwgc28gaXQgcHVsbHMgdGhhdCBnYXBcbiAgLy8gYmFjayBkb3duIHRvIDEycHggKDE2cHggb24gbW9iaWxlLCB3aGVyZSB0aGUgYmFzZSBnYXAgaXMgMTZweCkuXG4gICZfX2NoZWNrIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICBtYXJnaW4tcmlnaHQ6IC0yMHB4O1xuICB9XG5cbiAgJl9fbWVzc2FnZSB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICB9XG5cbiAgLy8gU2l0cyBpbnNpZGUgLnByb2dyYW1zLXBhZ2UsIHNvIHRoZSBlbGVtZW50LWxldmVsIGJ1dHRvbiBjaHJvbWUgKGxvY2staGVpZ2h0XG4gIC8vIDUwcHgsIG1pbi13aWR0aCAxMTBweCwgYm9yZGVyLCB1cHBlcmNhc2UpIGlzIGFscmVhZHkgaGFsZi1uZXV0cmFsaXplZCB0aGVyZTtcbiAgLy8gdGhlIHJlc3QgaXMgdW5kb25lIGhlcmUuXG4gICZfX2Nsb3NlIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbiAgICB9XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5wcm9ncmFtcy10b2FzdCB7XG4gICAgYm90dG9tOiAxNnB4O1xuICAgIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDI0cHgpO1xuICAgIGdhcDogMTZweDtcblxuICAgICZfX2NoZWNrIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cblxuICAvLyBUaGUgcmFpbCBnb2VzIG9mZi1jYW52YXMgaGVyZSBhbmQgdGhlIGNvbnRlbnQgc3BhbnMgdGhlIGZ1bGwgd2lkdGgsIHNvIHRoZVxuICAvLyB0b2FzdCBpcyBjZW50cmVkIG9uIHRoZSB2aWV3cG9ydCBhZ2Fpbi4gQm90aCBzY29wZWQgc2VsZWN0b3JzIGFyZSByZXBlYXRlZFxuICAvLyBiZWNhdXNlIGVhY2ggb3V0LXNwZWNpZmllcyBhIGJhcmUgLnByb2dyYW1zLXRvYXN0LlxuICAubWFpbi12aWV3Omhhcyg+IC5tZW51LWNvbnRlbnQgLnByb2ZpbGUtbWVudS0tc2lkZWJhci5oYXMtaXRlbXMpIC5wcm9ncmFtcy10b2FzdCxcbiAgLm1haW4tdmlldzpoYXMoPiAubWVudS1jb250ZW50IC5wcm9maWxlLW1lbnUtLXNpZGViYXIuaGFzLWl0ZW1zLmlzLWNvbGxhcHNlZCkgLnByb2dyYW1zLXRvYXN0IHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMjRweCk7XG4gIH1cbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBEZWxldGUgY29uZmlybWF0aW9uICh0ZW1wbGF0ZXMvbW9kYWxfcHJvZ3JhbV9kZWxldGUuaHRtbCwgb3BlbmVkIHZpYVxuLy8gTW9kYWxTZXJ2aWNlLm9wZW4gKyBDb25maXJtQ29udHJvbGxlciBmcm9tXG4vLyBQcm9ncmFtQ29udHJvbGxlci5kZWxldGVBdGhsZXRlUHJvZ3JhbSkuXG4vL1xuLy8gT3duIHJvb3QgY2xhc3MgcmF0aGVyIHRoYW4gLm1vZGFsLWNvbnRhaW5lciwgc28gbm9uZSBvZiB0aGUgbGVnYWN5IG1vZGFsXG4vLyBjaHJvbWUgYXBwbGllcyAtIGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zIGxvYWRzIGFmdGVyIHRoaXMgYnVuZGxlIGFuZCBzZXRzXG4vLyBgLm1vZGFsLWNvbnRhaW5lciBoZWFkZXIgeyBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VCRUJFQiAhaW1wb3J0YW50IH1gLFxuLy8gd2hpY2ggbm8gc3BlY2lmaWNpdHkgaGVyZSBjYW4gdW5kbywgcGx1cyBwYWRkaW5nIGFuZCBqdXN0aWZ5LWNvbnRlbnQgb24gdGhlXG4vLyBjb250YWluZXIvZm9vdGVyLiBTaWRlc3RlcHBpbmcgdGhlIGVsZW1lbnQgc2VsZWN0b3JzIGlzIHRoZSBvbmx5IHN0YWJsZSBmaXguXG4vLyBQcmVjZWRlbnQ6IC50b2RheS1leGl0LCAubWVpLW1vZGFsLCAuYm10LW1vZGFsLCAud2NyLW1vZGFsLlxuLy9cbi8vIC5tb2RhbCAodGhlIHRyYW5zY2x1c2lvbiB3cmFwcGVyKSBzdGlsbCBjb250cmlidXRlcyBtaW4taGVpZ2h0OiAxMDBweCBhbmQsIG9uXG4vLyBtb2JpbGUsIG1heC13aWR0aDogY2FsYygxMDAlIC0gMzBweCkuIEJvdGggYXJlIGhhcm1sZXNzIGF0IHRoaXMgc2l6ZS5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4kcHJvZ3JhbS1kZWxldGUtd2lkdGg6IDUxMnB4O1xuJHByb2dyYW0tZGVsZXRlLWd1dHRlcjogMzJweDtcbiRwcm9ncmFtLWRlbGV0ZS12aWV3cG9ydC1tYXJnaW46IDE2cHg7XG5cbi5wcm9ncmFtLWRlbGV0ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgLy8gRmlnbWE6IDUxMngxNTYuIFRoZSBoZWlnaHQgaXMgdGhlIHN1bSBvZiB0aGUgYm94IGJlbG93IHJhdGhlciB0aGFuIGEgZml4ZWRcbiAgLy8gdmFsdWUsIHNvIGEgd3JhcHBlZCB0aXRsZSBncm93cyB0aGUgY2FyZCBpbnN0ZWFkIG9mIGNsaXBwaW5nOlxuICAvLyAzMiBwYWQgKyAyOCB0aXRsZSArIDI0IGdhcCArIDQ4IGJ1dHRvbnMgKyAyNCBwYWQgPSAxNTYuXG4gIHdpZHRoOiAkcHJvZ3JhbS1kZWxldGUtd2lkdGg7XG4gIC8vIC5tb2RhbCBpcyBhIGNvbnRlbnQtc2l6ZWQgZmxleCBpdGVtIGluc2lkZSAubW9kYWwtdmlldywgc28gYSBwZXJjZW50YWdlXG4gIC8vIG1heC13aWR0aCBoYXMgbm8gZGVmaW5pdGUgcGFyZW50IHdpZHRoIHRvIHJlc29sdmUgYWdhaW5zdCBhbmQgdGhlIGNhcmQgd291bGRcbiAgLy8ga2VlcCBpdHMgNTEycHggb24gYSBwaG9uZSwgb3ZlcmZsb3dpbmcgdGhlIChvdmVyZmxvdzogaGlkZGVuKSB2aWV3cG9ydC4gQVxuICAvLyB2aWV3cG9ydCB1bml0IGlzIHdoYXQgYWN0dWFsbHkgYm91bmRzIGl0LlxuICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSAjeyRwcm9ncmFtLWRlbGV0ZS12aWV3cG9ydC1tYXJnaW4gKiAyfSk7XG4gIHBhZGRpbmc6ICRwcm9ncmFtLWRlbGV0ZS1ndXR0ZXIgJHByb2dyYW0tZGVsZXRlLWd1dHRlciAyNHB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJveC1zaGFkb3c6IDAgMTJweCAzMnB4IHJnYmEoMTYsIDI0LCA0MCwgMC4yNCk7XG4gIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG5cbiAgJl9fY2xvc2Uge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDI4cHg7XG4gICAgcmlnaHQ6IDI4cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY29sb3I6ICRibGFjay01MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICAgIH1cbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBtYXJnaW46IDAgNDBweCAwIDA7IC8vIGtlZXBzIHRoZSBxdWVzdGlvbiBjbGVhciBvZiB0aGUgY2xvc2UgYnV0dG9uXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gIH1cblxuICAmX19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luLXRvcDogMjRweDtcbiAgfVxuXG4gICZfX2J0biB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAvLyB1bnN0eWxlLWJ1dHRvbiBjbGVhcnMgbWluL21heC1oZWlnaHQgYnV0IG5vdCBoZWlnaHQsIGFuZCB0aGUgZ2xvYmFsIGJ1dHRvblxuICAgIC8vIHJ1bGUgaW4gX2Jhc2Uuc2NzcyBwaW5zIGhlaWdodDogNTBweCAtIHdoaWNoIHdvdWxkIG92ZXJyaWRlIHRoZSA0OHB4IGhlcmUuXG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcblxuICAgIC8vIFRoZSBGaWdtYSB3aWR0aHMgYXJlIHRoZSBsYWJlbHMgYXQgdGhlaXIgZ2l2ZW4gcGFkZGluZzsgbWluLXdpZHRoIHJhdGhlclxuICAgIC8vIHRoYW4gd2lkdGggc28gYSBsb25nZXIgbGFiZWwgd2lkZW5zIHRoZSBidXR0b24gaW5zdGVhZCBvZiBvdmVyZmxvd2luZyBpdC5cbiAgICAmLS1naG9zdCB7XG4gICAgICBnYXA6IDEwcHg7XG4gICAgICBtaW4td2lkdGg6IDg4cHg7XG4gICAgICBwYWRkaW5nOiAxNnB4IDIwcHg7XG4gICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay00MDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgICAgY29sb3I6ICRibGFjay05MDA7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y4O1xuICAgICAgfVxuICAgIH1cblxuICAgICYtLWRhbmdlciB7XG4gICAgICBnYXA6IDEycHg7XG4gICAgICBtaW4td2lkdGg6IDk0cHg7XG4gICAgICBwYWRkaW5nOiAxNHB4IDI0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQtNTAwO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkLTYwMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChwaG9uZSkge1xuICAucHJvZ3JhbS1kZWxldGUge1xuICAgIHBhZGRpbmc6IDIwcHg7XG5cbiAgICAmX19jbG9zZSB7XG4gICAgICB0b3A6IDE2cHg7XG4gICAgICByaWdodDogMTZweDtcbiAgICB9XG5cbiAgICAmX19hY3Rpb25zIHtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgfVxuICB9XG59XG4iLCIvLyBQcm9ncmFtIENhdGFsb2cgcGFnZSAoLyMvcHJvZ3JhbXMvOmF0aGxldGVJZCwgdm0uY2F0YWxvZ09wZW4pLiBSZXBsYWNlcyB0aGUgb2xkXG4vLyAuY2F0YWxvZ19uYXYgc2xpZGUtb3Zlci4gTm90ZSBfcHJvZ3JhbV9jYXRhbG9nLnNjc3MgaXMgYSBkaWZmZXJlbnQgdGhpbmcgZW50aXJlbHkgLVxuLy8gaXQgc3R5bGVzIHRoZSBwcm9ncmFtICpkZXRhaWwqIHBhbmUgKC5jYXRhbG9nLXNlbGVjdGVkKS5cblxuJHByb2dyYW0tY2F0YWxvZy10aXRsZTogIzFmMWYyODtcbiRwcm9ncmFtLWNhdGFsb2ctZmlsdGVyLXNoYWRvdzogMCAxcHggMnB4IDAgcmdiYSgxMCwgMTMsIDE4LCAwLjA1KTtcbiRwcm9ncmFtLWNhdGFsb2ctY2hpcC1iZzogI2YyZjJmNDtcbiRwcm9ncmFtLWNhdGFsb2ctbWVkaWEtYmc6ICNkOWQ5ZDk7XG4kcHJvZ3JhbS1jYXRhbG9nLWhlYWRlci1iZzogI2Y3ZjdmODtcbiRwcm9ncmFtLWNhdGFsb2ctYmFkZ2UtYmc6ICNlOGY4ZWY7XG4kcHJvZ3JhbS1jYXRhbG9nLWJhZGdlLXRleHQ6ICMxNzk0NWE7XG5cbi5wcm9ncmFtLWNhdGFsb2cge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA4NDhweDtcbiAgcGFkZGluZzogMjRweCAzMnB4IDQ4cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgLy8gTmV1dHJhbGl6ZSBnbG9iYWwgYnV0dG9uIHsgbWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZSB9LlxuICAvLyBEbyBub3Qgc2V0IGhlaWdodDogYXV0byBoZXJlIC0gaXQgb3V0LXNwZWNpZmllcyBjb21wb25lbnQgaGVpZ2h0IGxvY2tzLlxuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICB9XG5cbiAgYnV0dG9uICsgYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gIC8vIFNhbWUgc3RvcnkgZm9yIGlucHV0W3R5cGU9dGV4dF0gaW4gX2Jhc2Uuc2NzcyAoMXB4IHNvbGlkICRncmV5OyByYWRpdXMgMnB4O1xuICAvLyBwYWRkaW5nIDNweCkuIEl0IGlzIGFuIGF0dHJpYnV0ZSBzZWxlY3Rvciwgc28gaXQgb3V0LXNwZWNpZmllcyBhIHNpbmdsZSBjbGFzcyAtXG4gIC8vIHRoZSByZXNldCBoYXMgdG8gYmUgc2NvcGVkIGxpa2UgdGhpcyByYXRoZXIgdGhhbiBsaXZpbmcgb24gX19zZWFyY2gtaW5wdXQuXG4gIGlucHV0W3R5cGU9J3RleHQnXSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG5cbiAgLy8gLS0gYnJlYWRjcnVtYiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19icmVhZGNydW1iIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgfVxuXG4gICZfX2NydW1iIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRwcm9ncmFtLWNhdGFsb2ctdGl0bGU7XG4gICAgfVxuXG4gICAgJi0tY3VycmVudCB7XG4gICAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fY3J1bWItc2VwIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gIC8vIC0tIGhlYWRlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDIwcHg7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICMwMDAwMDA7XG4gIH1cblxuICAmX190b29sYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB9XG5cbiAgJl9fZmlsdGVycyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgfVxuXG4gIC8vIFdpZHRoIGlzIGludGVudGlvbmFsbHkgaW50cmluc2ljLiBUaGUgc3BlYydzIDg1IC8gMTA3IC8gMTA4cHggYXJlIHdoYXQgRmlnbWFcbiAgLy8gbWVhc3VyZWQgZm9yIE1vdmUgLyBQZXJmb3JtIC8gUmVjb3ZlciwgaS5lLiB0aGUgcmVzdWx0IG9mIHRoZXNlIHBhZGRpbmdzIHBsdXMgZWFjaFxuICAvLyBsYWJlbCAtIGhhcmRjb2RpbmcgdGhlbSB3b3VsZCBjbGlwIGxvbmdlciB0cmFuc2xhdGlvbnMgKGRlOiBcIkVyaG9sZW5cIikuXG4gICZfX2ZpbHRlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgcGFkZGluZzogNHB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICYtLWFjdGl2ZSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNjAwO1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgICBib3gtc2hhZG93OiAkcHJvZ3JhbS1jYXRhbG9nLWZpbHRlci1zaGFkb3c7XG4gICAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fZmlsdGVyLWljb24ge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcblxuICAgIC8vIFJlbmRlcmVkIGFzIGEgbWFzayBzbyB0aGUgU1ZHIGNhbiB0YWtlIHRoZSBhY3RpdmUgY29sb3VyOyBhbiA8aW1nPlxuICAgIC8vIGNhbid0IGJlIHJlY29sb3VyZWQgZnJvbSBDU1MuXG4gICAgJi0taW1nIHtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTZweDtcbiAgICAgIGhlaWdodDogMTZweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM2YzZjN2M7XG4gICAgICAtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgLXdlYmtpdC1tYXNrLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICBtYXNrLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAtd2Via2l0LW1hc2stc2l6ZTogY29udGFpbjtcbiAgICAgIG1hc2stc2l6ZTogY29udGFpbjtcbiAgICB9XG4gIH1cblxuICAmX19maWx0ZXItLWFjdGl2ZSAmX19maWx0ZXItaWNvbi0taW1nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHVycGxlLTYwMDtcbiAgfVxuXG4gIC8vIC0tIHNlYXJjaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gTm90IC5jYXRhbG9nLXNlYXJjaCBmcm9tIF9jYXRhbG9nX25hdi5zY3NzLCB3aGljaCBsb2NrcyBhIDUwcHggaGVpZ2h0IGFuZFxuICAvLyB0cmFpbHMgYSBncmV5IHJlc2V0IGJ1dHRvbi5cbiAgJl9fc2VhcmNoIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDIxNXB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0zMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgJi0taW5saW5lIHtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXJnaW46IDEycHggMjBweDtcbiAgICB9XG4gIH1cblxuICAmX19zZWFyY2gtaWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgJl9fc2VhcmNoLWlucHV0IHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkcHJvZ3JhbS1jYXRhbG9nLXRpdGxlO1xuXG4gICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgfVxuXG4gICAgJjpmb2N1cyB7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZfX3NlYXJjaC1jbGVhciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcGFkZGluZzogMCAycHg7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gIC8vIC0tIGdlbnJlIGdyb3VwcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fZ3JvdXBzLFxuICAmX19zZWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbiAgfVxuXG4gICZfX3NlY3Rpb25zIHtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICB9XG5cbiAgJl9fZ3JvdXAge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICYtLW9wZW4ge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICB9XG4gIH1cblxuICAmX19ncm91cC1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDE4cHggMjBweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmX19ncm91cC0tb3BlbiAmX19ncm91cC1oZWFkZXIge1xuICAgIGJhY2tncm91bmQ6ICRwcm9ncmFtLWNhdGFsb2ctaGVhZGVyLWJnO1xuICB9XG5cbiAgLy8gbnVkaXN0YS13ZWIgb25seSBzaGlwcyB3ZWlnaHQgMzAwLzQwMC83MDAgKF90ZW1wLW5ldy5zY3NzOjEyLTUxKS4gQSByZXF1ZXN0IGZvciA2MDBcbiAgLy8gaGFzIG5vIGV4YWN0IGZhY2UsIGFuZCBwZXIgdGhlIENTUyBmb250LW1hdGNoaW5nIHNwZWMgYSB3ZWlnaHQgYWJvdmUgNTAwIHNlYXJjaGVzXG4gIC8vIHVwd2FyZCBmaXJzdCwgbGFuZGluZyBvbiA3MDAgKHRydWUgQm9sZCkgcmF0aGVyIHRoYW4gYSBsaWdodGVyIHN5bnRoZXNpemVkIHNlbWlib2xkLlxuICAvLyA1MDAgaGFzIHRoZSBzYW1lIGdhcCBidXQgc2VhcmNoZXMgdG93YXJkIDQwMCBmaXJzdCwgc28gaXQgcmVuZGVycyBhcyBSZWd1bGFyIGluc3RlYWRcbiAgLy8gb2YganVtcGluZyB0byBCb2xkLiBSZW5kZXJpbmcgdGhlIEZpZ21hLXNwZWNpZmllZCBTZW1pQm9sZCBmb3IgcmVhbCBuZWVkcyBhbiBhY3R1YWxcbiAgLy8gNTAwLzYwMC13ZWlnaHQgTnVkaXN0YSBmaWxlIGFkZGVkIHRvIHRoZSBwcm9qZWN0OyB0aGVyZSBpc24ndCBvbmUgdG8gcG9pbnQgYXQgeWV0LlxuICAmX19ncm91cC10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICRwcm9ncmFtLWNhdGFsb2ctdGl0bGU7XG4gIH1cblxuICAmX19ncm91cC1jb3VudCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDIycHg7XG4gICAgcGFkZGluZzogMCA2cHg7XG4gICAgYmFja2dyb3VuZDogJHByb2dyYW0tY2F0YWxvZy1jaGlwLWJnO1xuICAgIGJvcmRlci1yYWRpdXM6IDExcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAmX19ncm91cC1jaGV2cm9uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAmX19ncm91cC1ib2R5IHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICB9XG5cbiAgLy8gR2VucmUgbGFiZWwgaW5zaWRlIHRoZSBcIk15IFByb2dyYW1zXCIgLyBcIk15IEV4ZXJjaXNlc1wiIHNlY3Rpb25zLCB3aGljaCBncm91cCBvbmVcbiAgLy8gbGV2ZWwgZGVlcGVyIHRoYW4gdGhlIG1haW4gYWNjb3JkaW9uLlxuICAmX19zdWJncm91cC10aXRsZSB7XG4gICAgcGFkZGluZzogMTJweCAyMHB4IDRweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wM2VtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAvLyAtLSBwcm9ncmFtIHJvd3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIGhlaWdodDogYXV0byBwZXIgY29tcG9uZW50IHJhdGhlciB0aGFuIG9uIHRoZSBibGFua2V0IGJ1dHRvbiByZXNldCBhYm92ZSAtXG4gIC8vIGJ1dHRvbntsb2NrLWhlaWdodCg1MHB4KX0gc2V0cyBoZWlnaHQgYXMgd2VsbCBhcyB0aGUgbWluL21heCB1bnN0eWxlLWJ1dHRvblxuICAvLyBjbGVhcnMsIGFuZCBhIHdyYXBwaW5nIHByb2dyYW0gbmFtZSBoYXMgdG8gYmUgYWJsZSB0byBwdXNoIHRoZSByb3cgdGFsbGVyLlxuICAmX19yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDEycHggMjBweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmICsgJiB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHJvdy1ob3ZlcjtcbiAgICB9XG4gIH1cblxuICAvLyBQbGFjZWhvbGRlciBzcXVhcmUgc3RhbmRpbmcgaW4gZm9yIHByb2dyYW0gYXJ0d29yayB1bnRpbCB0aGUgY2F0YWxvZyBBUElcbiAgLy8gcmV0dXJucyByZWFsIGltYWdlcy5cbiAgJl9fdGh1bWIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogJHByb2dyYW0tY2F0YWxvZy1tZWRpYS1iZztcbiAgfVxuXG4gIC8vIEFic29yYnMgdGhlIGZyZWUgc3BhY2Ugc28gbWV0YSBhbmQgY2hldnJvbiBzaXQgaGFyZCByaWdodCB3aXRob3V0IGF1dG8gbWFyZ2luc1xuICAvLyBjb21wZXRpbmcgZm9yIGl0IC0gcm93cyB3aXRoIGFuZCB3aXRob3V0IG1ldGEgYWxpZ24gaWRlbnRpY2FsbHkuXG4gICZfX21haW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLy8gNTAwLCBub3QgNjAwIC0gc2VlIHRoZSBub3RlIG9uICZfX2dyb3VwLXRpdGxlIGFib3ZlLiBNYXRjaGVzIHRoZSB3ZWlnaHQgdGhlIGdyb3VwXG4gIC8vIGhlYWRlciByZW5kZXJzIGF0IHNvIGEgcm93IGRvZXNuJ3QgbG9vayBoZWF2aWVyIHRoYW4gdGhlIGJveCBpdCBleHBhbmRlZCBmcm9tLlxuICAmX19uYW1lIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJHByb2dyYW0tY2F0YWxvZy10aXRsZTtcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIH1cblxuICAmX19iYWRnZSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcGFkZGluZzogMnB4IDEwcHg7XG4gICAgYmFja2dyb3VuZDogJHByb2dyYW0tY2F0YWxvZy1iYWRnZS1iZztcbiAgICBib3JkZXItcmFkaXVzOiAxMXB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIGNvbG9yOiAkcHJvZ3JhbS1jYXRhbG9nLWJhZGdlLXRleHQ7XG4gIH1cblxuICAmX19tZXRhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgJl9fbWV0YS1zZXAge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgfVxuXG4gICZfX3Jvdy1jaGV2cm9uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAvLyAtLSBmaXJzdC1sb2FkIHNrZWxldG9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBNaXJyb3JzIGEgY29sbGFwc2VkICZfX2dyb3VwIHNvIHRoZSByZWFsIGhlYWRlcnMgbGFuZCBpbiB0aGUgc2FtZSBib3hlcy5cbiAgJl9fc2tlbGV0b24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG4gIH1cblxuICAmX19za2VsZXRvbi1ncm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nOiAxOHB4IDIwcHg7XG4gIH1cblxuICAmX19za2VsZXRvbi10aXRsZSB7XG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgd2lkdGg6IDE4MHB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBtYXJnaW46IDJweCAwO1xuXG4gICAgJi0tc2hvcnQge1xuICAgICAgd2lkdGg6IDEyOHB4O1xuICAgIH1cbiAgfVxuXG4gICZfX3NrZWxldG9uLWNvdW50IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTFweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLWNoZXZyb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gICZfX2VtcHR5IHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gIC8vIC0tIGFjdGlvbiByb3dzIChSZXN1bWUgRWRpdCAvIENyZWF0ZSAuLi4pIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX2FjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMTZweCAyMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS01MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fYWN0aW9uLWljb24sXG4gICZfX2FjdGlvbi1wbHVzIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICRwdXJwbGUtNTAwO1xuICB9XG5cbiAgJl9fYWN0aW9uLXBsdXMge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgJl9fYWN0aW9uLWJvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX19hY3Rpb24tdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgfVxuXG4gICZfX2FjdGlvbi1zdWJ0aXRsZSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQod2lkZS1kb3duKSB7XG4gIC5wcm9ncmFtLWNhdGFsb2cge1xuICAgIHBhZGRpbmc6IDIwcHggMjBweCA0MHB4O1xuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gIC5wcm9ncmFtLWNhdGFsb2cge1xuICAgIHBhZGRpbmc6IDE2cHggMTZweCAzMnB4O1xuXG4gICAgJl9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgfVxuXG4gICAgJl9fdG9vbGJhciB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICBnYXA6IDEycHg7XG4gICAgfVxuXG4gICAgJl9fZmlsdGVycyB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuXG4gICAgJl9fc2VhcmNoIHtcbiAgICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIH1cblxuICAgIC8vIExldCB0aGUgbmFtZS9iYWRnZSBhbmQgdGhlIG1ldGEgc3RhY2sgcmF0aGVyIHRoYW4gc3F1ZWV6aW5nIHRoZSB0aXRsZSB0byBub3RoaW5nLlxuICAgICZfX21haW4ge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgZ2FwOiA0cHg7XG4gICAgfVxuXG4gICAgJl9fbWV0YSB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuXG4gICAgLy8gQ2F0YWxvZyByb3dzIGNhcnJ5IGEgdGh1bWIgKyBtZXRhLCBzbyBhdCB0aGlzIHdpZHRoIHRoZSBuYW1lIGdldHMgaXRzIG93blxuICAgIC8vIGZ1bGwtd2lkdGggbGluZSB3aXRoIHRoZSBtZXRhIGJlbmVhdGggaXQgYW5kIHRoZSB0aHVtYiBzcGFubmluZyBib3RoLiBTY29wZWRcbiAgICAvLyB0byBfX2dyb3VwczogdGhlIF9fc2VjdGlvbnMgcm93cyAoTXkgUHJvZ3JhbXMgLyBNeSBFeGVyY2lzZXMpIGhhdmUgbm8gbWV0YSxcbiAgICAvLyBhbmQgdGhlIGV4ZXJjaXNlIG9uZXMgbm8gdGh1bWIsIHNvIHRoZSBmbGV4IHJvdyBhYm92ZSBhbHJlYWR5IGZpdHMgdGhlbS5cbiAgICAmX19ncm91cHMgJl9fcm93IHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDQwcHggbWlubWF4KDAsIDFmcikgYXV0bztcbiAgICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgICAgICd0aHVtYiBtYWluIGNoZXZyb24nXG4gICAgICAgICd0aHVtYiBtZXRhIGNoZXZyb24nO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGNvbHVtbi1nYXA6IDEycHg7XG4gICAgICByb3ctZ2FwOiA0cHg7XG4gICAgfVxuXG4gICAgJl9fZ3JvdXBzICZfX3RodW1iIHtcbiAgICAgIGdyaWQtYXJlYTogdGh1bWI7XG4gICAgICBhbGlnbi1zZWxmOiBzdGFydDtcbiAgICB9XG5cbiAgICAmX19ncm91cHMgJl9fbWFpbiB7XG4gICAgICBncmlkLWFyZWE6IG1haW47XG4gICAgfVxuXG4gICAgJl9fZ3JvdXBzICZfX21ldGEge1xuICAgICAgZ3JpZC1hcmVhOiBtZXRhO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgICZfX2dyb3VwcyAmX19yb3ctY2hldnJvbiB7XG4gICAgICBncmlkLWFyZWE6IGNoZXZyb247XG4gICAgfVxuICB9XG59XG4iLCIvLyBQcm9ncmFtIGRldGFpbCBwYW5lICgvIy9wcm9ncmFtcy86YXRobGV0ZUlkIHdpdGggdm0uY3VycmVudFByb2dyYW0gc2V0KS4gUmVwbGFjZXMgdGhlXG4vLyBsZWdhY3kgdHdvLWNvbHVtbiAuY2F0YWxvZy1zZWxlY3RlZCBsYXlvdXQgZnJvbSBfcHJvZ3JhbV9jYXRhbG9nLnNjc3MuXG4vL1xuLy8gVGhlIHNlc3Npb24gdGFicywgc2VjdGlvbiBhY2NvcmRpb24gYW5kIGV4ZXJjaXNlIHJvd3MgZGVsaWJlcmF0ZWx5IG1pcnJvclxuLy8gX3Byb2dyYW1fc3VtbWFyeS5zY3NzOjIwMi0zMjAgc28gdGhlIHR3byByZWFkIGFzIHRoZSBzYW1lIGNvbXBvbmVudC4gV29ydGggZm9sZGluZ1xuLy8gaW50byBvbmUgc2hhcmVkIGJsb2NrIGlmIGEgdGhpcmQgcGFnZSBuZWVkcyBpdC5cblxuJHByb2dyYW0tZGV0YWlsLXRpdGxlOiAjMWYxZjI4O1xuJHByb2dyYW0tZGV0YWlsLWNoaXAtYmc6ICNmMmYyZjQ7XG4kcHJvZ3JhbS1kZXRhaWwtbm90aWNlLWJnOiAjZmZmYWYwO1xuLy8gTWlycm9ycyB0aGUgXCJDdXJyZW50IFByb2dyYW1cIiBiYWRnZSBvbiB0aGUgY2F0YWxvZyBsaXN0IChfcHJvZ3JhbV9jYXRhbG9nX3BhZ2Uuc2NzczoxNy0xOCk7XG4vLyB0aG9zZSB2YXJzIGFyZSBmaWxlLXNjb3BlZCwgc28gdGhlIHZhbHVlcyBhcmUgcmVwZWF0ZWQgcmF0aGVyIHRoYW4gaW1wb3J0ZWQuXG4kcHJvZ3JhbS1kZXRhaWwtYmFkZ2UtYmc6ICNlOGY4ZWY7XG4kcHJvZ3JhbS1kZXRhaWwtYmFkZ2UtdGV4dDogIzE3OTQ1YTtcbiRwcm9ncmFtLWRldGFpbC1kYW5nZXI6ICNjNDJhM2I7XG5cbi5wcm9ncmFtLWRldGFpbCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICAvLyBNYXRjaGVzIC5wcm9ncmFtLWNhdGFsb2cgc28gdGhlIGNvbnRlbnQgYm94IGRvZXMgbm90IGp1bXAgd2lkdGggd2hlbiBtb3ZpbmdcbiAgLy8gYmV0d2VlbiB0aGUgY2F0YWxvZyBhbmQgYSBwcm9ncmFtLCB3aGljaCBhcmUgYWRqYWNlbnQgc3RlcHMgaW4gb25lIGZsb3cuXG4gIG1heC13aWR0aDogODQ4cHg7XG4gIHBhZGRpbmc6IDI0cHggMzJweCA0OHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gIC8vIE5ldXRyYWxpemUgZ2xvYmFsIGJ1dHRvbiB7IG1pbi13aWR0aDogMTEwcHg7IGxvY2staGVpZ2h0KDUwcHgpOyB1cHBlcmNhc2UgfS5cbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgfVxuXG4gIGJ1dHRvbiArIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICAvLyAtLSBicmVhZGNydW1iIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX2JyZWFkY3J1bWIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgfVxuXG4gICZfX2NydW1iIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRwcm9ncmFtLWRldGFpbC10aXRsZTtcbiAgICB9XG5cbiAgICAmLS1jdXJyZW50IHtcbiAgICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19jcnVtYi1zZXAge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgLy8gLS0gaGVhZGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBUaXRsZSBvbiB0aGUgbGVmdCwgcHJpbWFyeSBhY3Rpb24gb24gdGhlIHJpZ2h0LiBXcmFwcyB0byB0d28gcm93cyB3aGVuIHRoZSB0aXRsZVxuICAvLyBpcyBsb25nIG9yIHRoZSB2aWV3cG9ydCBpcyBuYXJyb3cuXG4gICZfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDM4cHg7XG4gICAgY29sb3I6ICRwcm9ncmFtLWRldGFpbC10aXRsZTtcbiAgfVxuXG4gICZfX2hlYWRlci1hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGdhcDogMTJweDtcbiAgfVxuXG4gICZfX2NoaXBzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICB9XG5cbiAgJl9fY2hpcCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcblxuICAgICYtLXdhcm4ge1xuICAgICAgY29sb3I6ICRwcm9ncmFtLWRldGFpbC1kYW5nZXI7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgIH1cblxuICAgICYtLWN1cnJlbnQge1xuICAgICAgcGFkZGluZzogMnB4IDEwcHg7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHJvZ3JhbS1kZXRhaWwtYmFkZ2UtYmc7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGNvbG9yOiAkcHJvZ3JhbS1kZXRhaWwtYmFkZ2UtdGV4dDtcbiAgICB9XG4gIH1cblxuICAmX19jaGlwLWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG5cbiAgJl9fZGVzY3JpcHRpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgIGNvbG9yOiAkcHJvZ3JhbS1kZXRhaWwtdGl0bGU7XG5cbiAgICBwIHtcbiAgICAgIG1hcmdpbjogMCAwIDEycHg7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gLS0gYWN0aW9uIHNsb3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19ub3RpY2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICBwYWRkaW5nOiAwIDE2cHg7XG4gICAgYmFja2dyb3VuZDogJHByb2dyYW0tZGV0YWlsLW5vdGljZS1iZztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYW1iZXItMTAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgfVxuXG4gICZfX25vdGljZS1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuXG4gICZfX25vdGljZS10ZXh0IHtcbiAgICBmb250LWZhbWlseTogXCJOdWRpc3RhLXdlYlwiLCBcIk51ZGlzdGFcIiwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBjb2xvcjogJGFtYmVyO1xuICB9XG5cbiAgLy8gVGFrZXMgdGhlIG5vdGljZSBzbG90IG9uY2UgdGhlIHByb2dyYW0gaXMgc2NoZWR1bGVkLiBTYW1lIGRhdGEgYXMgdGhlIHdlZWtkYXkgY2hpcHMgb25cbiAgLy8gdGhlIGNhcmQgZ3JpZCAoLnByb2dyYW0tY2FyZF9fc2NoZWR1bGUpLCBib3hlZCB0byBzaXQgaW4gdGhlIHBhZ2UgZmxvdy5cbiAgJl9fc2NoZWR1bGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIGhlaWdodDogNjBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgcGFkZGluZzogMCAxNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG4gIH1cblxuICAmX19zY2hlZHVsZS1sYWJlbCB7XG4gICAgZm9udC1mYW1pbHk6IFwiTnVkaXN0YS13ZWJcIiwgXCJOdWRpc3RhXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICRwcm9ncmFtLWRldGFpbC10aXRsZTtcbiAgfVxuXG4gICZfX2RheXMge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xuICB9XG5cbiAgJl9fZGF5IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBiYWNrZ3JvdW5kOiAkcHJvZ3JhbS1kZXRhaWwtY2hpcC1iZztcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG5cbiAgICAmLS1vbiB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICAgIGNvbG9yOiAkcHVycGxlLTkwMDtcbiAgICB9XG4gIH1cblxuICAmX19zY2hlZHVsZS1lZGl0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkeC1wdXJwbGUtaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgJl9fc2NoZWR1bGUtZWRpdC1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuXG4gIC8vIEZpeGVkIDE4M3g0NCBzbG90LiBtaW4td2lkdGggcmF0aGVyIHRoYW4gd2lkdGggc28gYSBsb25nZXIgdHJhbnNsYXRpb25cbiAgLy8gKFwiUHJvZ3JhbW0gdGVybWluaWVyZW5cIikgZ3Jvd3MgdGhlIGJ1dHRvbiBpbnN0ZWFkIG9mIHNwaWxsaW5nIG91dCBvZiBpdC5cbiAgJl9fYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1pbi13aWR0aDogMTgzcHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogMCAxNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHB1cnBsZS01MDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuICAgIH1cblxuICAgICYtLXByaW1hcnkge1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS01MDA7XG4gICAgICBjb2xvcjogI2ZmZjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR4LXB1cnBsZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19idXR0b24taWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gIH1cblxuICAvLyAtLSBzdGF0IGNhcmRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3N0YXRzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDE2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgfVxuXG4gICZfX3N0YXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDE0cHg7XG4gICAgZmxleDogMSAxIDIyMHB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBwYWRkaW5nOiAxOHB4IDIwcHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgfVxuXG4gICZfX3N0YXQtaWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAkcHJvZ3JhbS1kZXRhaWwtY2hpcC1iZztcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIH1cblxuICAmX19zdGF0LWJvZHkge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gICZfX3N0YXQtbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX3N0YXQtdmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICAgIGNvbG9yOiAkcHJvZ3JhbS1kZXRhaWwtdGl0bGU7XG4gIH1cblxuICAvLyAtLSBzZXNzaW9uIHRhYnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3RhYnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICB9XG5cbiAgLy8gYm9yZGVyLXJhZGl1czogMCB1bmRvZXMgdGhlIGdsb2JhbCBidXR0b257Ym9yZGVyLXJhZGl1czo2cHh9LCB3aGljaCB1bnN0eWxlLWJ1dHRvblxuICAvLyBhYm92ZSBkb2VzIG5vdCBjbGVhciAtIGl0IHdvdWxkIHJvdW5kIHRoZSBlbmRzIG9mIHRoZSAycHggYWN0aXZlIHVuZGVybGluZS5cbiAgJl9fdGFiIHtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHByb2dyYW0tZGV0YWlsLXRpdGxlO1xuICAgIH1cblxuICAgICYtLWFjdGl2ZSB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICB9XG4gIH1cblxuICAvLyAtLSBzZWN0aW9uIGFjY29yZGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3NlY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuICB9XG5cbiAgJl9fc2VjdGlvbiB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgJl9fc2VjdGlvbi1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDE4cHggMjBweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmX19zZWN0aW9uLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICBjb2xvcjogJHByb2dyYW0tZGV0YWlsLXRpdGxlO1xuICB9XG5cbiAgLy8gMzZweCB3aWRlIHRvIG1hdGNoIF9fZXhlcmNpc2UtYWN0aW9uIGJlbG93LCBzbyB0aGUgY2hldnJvbiBhbmQgdGhlIGV4ZXJjaXNlXG4gIC8vIGFycm93cyBzaGFyZSBvbmUgcmlnaHQtaGFuZCBheGlzLiBXaWR0aCBvbmx5IC0gYSAzNnB4IGhlaWdodCB3b3VsZCBncm93IHRoZSBoZWFkZXIuXG4gICZfX3NlY3Rpb24tY2hldnJvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzZweDtcblxuICAgIC8vIFRoZSBzdmcgcG9pbnRzIHVwIChleHBhbmRlZCk7IGZsaXAgaXQgZm9yIGEgY29sbGFwc2VkIHNlY3Rpb24uXG4gICAgJi0tY29sbGFwc2VkIHN2ZyB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIH1cbiAgfVxuXG4gICZfX3NlY3Rpb24tYm9keSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgfVxuXG4gIC8vIC0tIGV4ZXJjaXNlIHJvd3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fZXhlcmNpc2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIHBhZGRpbmc6IDE2cHggMjBweDtcblxuICAgICYgKyAmIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgfVxuICB9XG5cbiAgJl9fZXhlcmNpc2UtaW5mbyB7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9fZXhlcmNpc2UtbmFtZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkcHJvZ3JhbS1kZXRhaWwtdGl0bGU7XG4gIH1cblxuICAmX19leGVyY2lzZS1hdHRyaWJ1dGVzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogNHB4IDhweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcblxuICAgIC8vIEVhY2ggYXR0cmlidXRlIGNlbnRlcnMgaXRzIG93biBjb250ZW50cyBzbyB0aGUgZG90IGJlbG93IGxhbmRzIG9uIHRoZSB0ZXh0J3NcbiAgICAvLyBvcHRpY2FsIGNlbnRlci4gZ2FwIHJlcGxhY2VzIHRoZSBtYXJrdXAgd2hpdGVzcGFjZSBiZXR3ZWVuIHRoZSBcIlNldHM6XCIgbGFiZWwgYW5kXG4gICAgLy8gaXRzIHZhbHVlLCB3aGljaCBhIGZsZXggYm94IGRyb3BzLlxuICAgID4gc3BhbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDRweDtcbiAgICB9XG5cbiAgICAvLyBEb3QgYmV0d2VlbiBhZGphY2VudCBhdHRyaWJ1dGVzIChzZXRzIC8gcmVwcyAvIGR1cmF0aW9uIC8gLi4uKS4gRWFjaCBhdHRyaWJ1dGVcbiAgICAvLyBjYXJyaWVzIGl0cyBvd24gbmctaWYsIHdoaWNoIHJlbW92ZXMgdGhlIGVsZW1lbnQgcmF0aGVyIHRoYW4gaGlkaW5nIGl0LCBzbyB0aGVcbiAgICAvLyBhZGphY2VudC1zaWJsaW5nIHJ1bGUgb25seSBmaXJlcyBiZXR3ZWVuIHR3byB0aGF0IGFjdHVhbGx5IHJlbmRlcmVkLlxuICAgIC8vIDRweCBtYXJnaW4gKyB0aGUgNHB4IGdhcCA9IHRoZSA4cHggdGhlIHBhcmVudCBnYXAgcHV0cyBvbiB0aGUgZG90J3Mgb3RoZXIgc2lkZS5cbiAgICA+IHNwYW4gKyBzcGFuOjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgd2lkdGg6IDVweDtcbiAgICAgIGhlaWdodDogNXB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmxhY2stMzAwO1xuICAgICAgLy8gTnVkZ2VkIGRvd24gMXB4IHRvIHNpdCBvbiB0aGUgdGV4dCdzIHZpc3VhbCBjZW50ZXI7IHRyYW5zZm9ybSBrZWVwcyB0aGUgcm93IGhlaWdodC5cbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxcHgpO1xuICAgIH1cbiAgfVxuXG4gICZfX2F0dHJpYnV0ZS1sYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxuXG4gICZfX2V4ZXJjaXNlLWFjdGlvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRwcm9ncmFtLWRldGFpbC10aXRsZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwcm9ncmFtLWRldGFpbC1jaGlwLWJnO1xuICAgIH1cbiAgfVxuXG4gICZfX2VtcHR5IHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gIC8vIC0tIGRlc3RydWN0aXZlIGFjdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fZGVsZXRlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJHByb2dyYW0tZGV0YWlsLWRhbmdlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tIGxvYWRpbmcgc2tlbGV0b24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gcHJvZ3JhbV9kZXRhaWxfc2tlbGV0b24uaHRtbC4gRWFjaCBibG9jayBpcyBzaXplZCB0byB0aGUgbGluZS1oZWlnaHQgb2YgdGhlIHRleHQgaXRcbiAgLy8gc3RhbmRzIGluIGZvciwgc28gdGhlIHJlYWwgY29udGVudCBsYW5kcyBpbiB0aGUgc2FtZSBib3hlcyB3aGVuIGl0IGFycml2ZXMuXG4gICZfX3NrZWxldG9uLWNoaXAge1xuICAgIHdpZHRoOiA5NnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBtYXJnaW46IDJweCAwO1xuICB9XG5cbiAgJl9fc2tlbGV0b24tbGluZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIG1hcmdpbjogNXB4IDA7XG5cbiAgICAmLS1zaG9ydCB7XG4gICAgICB3aWR0aDogNjAlO1xuICAgIH1cbiAgfVxuXG4gIC8vIDE4cHggZ2x5cGggKyAxMHB4IHBhZGRpbmcgZWFjaCBzaWRlLCBtYXRjaGluZyBfX3N0YXQtaWNvbi5cbiAgJl9fc2tlbGV0b24tc3RhdC1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMzhweDtcbiAgICBoZWlnaHQ6IDM4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24tc3RhdC1sYWJlbCB7XG4gICAgd2lkdGg6IDY0cHg7XG4gICAgaGVpZ2h0OiAxMnB4O1xuICAgIG1hcmdpbjogM3B4IDAgNXB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24tc3RhdC12YWx1ZSB7XG4gICAgd2lkdGg6IDk2cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIG1hcmdpbjogNHB4IDA7XG4gIH1cblxuICAvLyBTYW1lIGJveCBhcyBfX3RhYiwgbGVzcyB0aGUgMnB4IHVuZGVybGluZSwgd2hpY2ggdGhlIHNrZWxldG9uIGhhcyBubyBhY3RpdmUgdGFiIGZvci5cbiAgJl9fc2tlbGV0b24tdGFiIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHggMTRweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLXRhYi1sYWJlbCB7XG4gICAgd2lkdGg6IDcycHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIG1hcmdpbjogM3B4IDA7XG4gIH1cblxuICAmX19za2VsZXRvbi1zZWN0aW9uLXRpdGxlIHtcbiAgICB3aWR0aDogMTgwcHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIG1hcmdpbjogM3B4IDA7XG5cbiAgICAmLS1zaG9ydCB7XG4gICAgICB3aWR0aDogMTI4cHg7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2VudHJlZCBpbiB0aGUgMzZweCBjb2x1bW4gX19zZWN0aW9uLWNoZXZyb24gcmVzZXJ2ZXMuXG4gICZfX3NrZWxldG9uLWNoZXZyb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDExcHg7XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZCh3aWRlLWRvd24pIHtcbiAgLnByb2dyYW0tZGV0YWlsIHtcbiAgICBwYWRkaW5nOiAyMHB4IDIwcHggNDBweDtcbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKG1vYmlsZSkge1xuICAucHJvZ3JhbS1kZXRhaWwge1xuICAgIHBhZGRpbmc6IDE2cHggMTZweCAzMnB4O1xuXG4gICAgJl9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgfVxuXG4gICAgLy8gU3RheXMgYSByb3c6IGZsZXgtYmFzaXMgb24gYSBjb2x1bW4gaXMgaGVpZ2h0LCBzbyBgZmxleDogMSAxIDIyMHB4YCB3YXMgbWFraW5nXG4gICAgLy8gZWFjaCBjYXJkIDIyMHB4IHRhbGwuIEdyaWQgYWxzbyBtYWtlcyB0aGF0IGJhc2lzIGluZXJ0IOKAlCBncmlkIGl0ZW1zIGlnbm9yZSBpdCDigJRcbiAgICAvLyBzbyB0aGUgdHdvIGNhcmRzIHNwbGl0IHRoZSByb3cgZXZlbmx5IHdpdGhvdXQgZmlnaHRpbmcgdGhlIGJhc2UgcnVsZS5cbiAgICAmX19zdGF0cyB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICAgICAgZ2FwOiAxMnB4O1xuICAgIH1cblxuICAgIC8vIEVhY2ggY2FyZCBoYXMgaXRzIG93biBuZy1pZjsgYSBsb25lIGNhcmQgc2hvdWxkIGZpbGwgdGhlIHJvdywgbm90IHNpdCBhdCBoYWxmXG4gICAgLy8gd2lkdGggYmVzaWRlIGFuIGVtcHR5IHRyYWNrLlxuICAgICZfX3N0YXQ6b25seS1jaGlsZCB7XG4gICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgIH1cblxuICAgICZfX3N0YXQge1xuICAgICAgcGFkZGluZzogMTZweDtcbiAgICB9XG5cbiAgICAvLyBUaGUgcm93IG5lZWRzIH41NzBweCBmb3IgbGFiZWwgKyA3IGRheSBzcXVhcmVzICsgdGhlIGVkaXQgYnV0dG9uLCBzbyBiZWxvdyB0aGVcbiAgICAvLyBkZXNrdG9wIGxheW91dCBpdCBoYXMgdG8gd3JhcCAtIGFuZCBhIGZpeGVkIDYwcHggaGVpZ2h0IHdvdWxkIGNsaXAgdGhlIHNlY29uZCBsaW5lLlxuICAgICZfX3NjaGVkdWxlIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIHBhZGRpbmc6IDE0cHggMTZweDtcbiAgICB9XG5cbiAgICAmX19kYXlzIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG5cbiAgICAmX190YWJzIHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICB9XG5cbiAgICAmX190YWIge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgfVxuXG4gICAgLy8gS2VlcCB0aGUgYXJyb3cgYmVzaWRlIHRoZSBuYW1lIGFuZCBsZXQgdGhlIGF0dHJpYnV0ZXMgd3JhcCBiZW5lYXRoLlxuICAgICZfX2V4ZXJjaXNlIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgfVxufVxuXG5AaW5jbHVkZSByZXNwb25kKHBob25lKSB7XG4gIC5wcm9ncmFtLWRldGFpbCB7XG4gICAgcGFkZGluZzogMTZweCAxMnB4IDMycHg7XG5cbiAgICAmX19zdGF0cyB7XG4gICAgICBnYXA6IDEwcHg7XG4gICAgfVxuXG4gICAgJl9fc3RhdCB7XG4gICAgICBnYXA6IDEwcHg7XG4gICAgICBwYWRkaW5nOiAxMnB4IDEwcHg7XG4gICAgfVxuXG4gICAgLy8gMThweCBnbHlwaCArIDEwcHggcGFkZGluZyA9IGEgMzhweCB0aWxlIGF0IGJhc2U7IDdweCBicmluZ3MgaXQgdG8gMzJweC5cbiAgICAmX19zdGF0LWljb24ge1xuICAgICAgcGFkZGluZzogN3B4O1xuICAgIH1cblxuICAgICZfX3N0YXQtbGFiZWwge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgIH1cblxuICAgICZfX3N0YXQtdmFsdWUge1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgfVxuICB9XG59XG4iLCIvLyBEYWlseSBzZXNzaW9uIHBhZ2UgKC8jL3NjaGVkdWxlLzphdGhsZXRlSWQvZGFpbHkvOnNjaGVkdWxlSWQgLSB2aWV3cy9kYWlseS5odG1sKS5cbi8vIFJlcGxhY2VzIHRoZSBsZWdhY3kgLnByb2dyYW0tZWRpdCAvIC5wcm9ncmFtLXN0cmF0ZWd5IC8gLnByb2dyYW0tdGVjaG5pcXVlIG1hcmt1cCB0aGlzXG4vLyBwYWdlIHVzZWQgdG8gYm9ycm93IGZyb20gX3Byb2dyYW1fZWRpdC5zY3NzLiBUaGF0IHBhcnRpYWwgaXMgc3RpbGwgc2hhcmVkIHdpdGhcbi8vIC93aGl0ZWJvYXJkIGFuZCB2aWV3cy9wcm9ncmFtLmh0bWwsIHNvIHRoaXMgaXMgYSBuZXcgYmxvY2sgcmF0aGVyIHRoYW4gYW4gZWRpdCB0aGVyZS5cbi8vXG4vLyBUaGUgaGVhZGVyLCBzZWN0aW9uIGFjY29yZGlvbiBhbmQgZXhlcmNpc2Ugcm93cyBkZWxpYmVyYXRlbHkgbWlycm9yXG4vLyBfcHJvZ3JhbV9kZXRhaWwuc2NzcyBzbyBvcGVuaW5nIGEgc2Vzc2lvbiBhbmQgb3BlbmluZyBhIGNhdGFsb2cgcHJvZ3JhbSByZWFkIGFzIHRoZVxuLy8gc2FtZSBjb21wb25lbnQuIFRoZSB0ZWNobmlxdWUgc3ViLWhlYWRlciBpcyB0aGUgb25lIGFkZGl0aW9uLCB0YWtlbiBmcm9tXG4vLyBfcHJvZ3JhbV9zdW1tYXJ5LnNjc3MgLSBhIGRhaWx5IHN0cmF0ZWd5IGNhbiBob2xkIHNldmVyYWwgdGVjaG5pcXVlcy5cblxuJGRhaWx5LXByb2dyYW0tdGl0bGU6ICMxZjFmMjg7XG4kZGFpbHktcHJvZ3JhbS1jaGlwLWJnOiAjZjJmMmY0O1xuLy8gSGVhZGVyIGJhZGdlcyBvbmx5LCBhbmQgZGFya2VyIHRoYW4gJGRhaWx5LXByb2dyYW0tY2hpcC1iZyBvbiBwdXJwb3NlIC0gc3RyYWlnaHQgb2ZmXG4vLyB0aGUgRmlnbWEuIERvIG5vdCBmb2xkIHRoZSB0d28gdG9nZXRoZXIuXG4kZGFpbHktcHJvZ3JhbS1kaXNhYmxlZC1iZzogI2Q5ZDRlMjtcblxuLy8gQ2VudHJlcyB0aGUgY29udGVudCBjb2x1bW4gdGhlIHdheSAucHJvZ3JhbXMtcGFnZS1ob3N0IGRvZXMgZm9yIHRoZSBjYXRhbG9nIGFuZFxuLy8gZGV0YWlsIHBhbmVzLCBzbyB0aGUgdHdvIHBhZ2VzIHNoYXJlIGEgcGFnZSBmcmFtZSBhcyB3ZWxsIGFzIGEgY2FyZCBzdHlsZS5cbi5kYWlseS1wcm9ncmFtLWhvc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICRwYWdlLWJnO1xufVxuXG4uZGFpbHktcHJvZ3JhbSB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICAvLyBNYXRjaGVzIC5wcm9ncmFtLXN1bW1hcnkgc28gdGhlIGNvbnRlbnQgYm94IGlzIHRoZSBzYW1lIHdpZHRoIG9uIGJvdGggcGFnZXMuXG4gIG1heC13aWR0aDogNjQwcHg7XG4gIC8vIE5vIHNpZGUgcGFkZGluZywgc28gdGhlIGNhcmRzIGFuZCB0aGUgZm9vdGVyIGJ1dHRvbiBzcGFuIHRoZSBmdWxsIDY0MHB4LlxuICAvLyBWaWV3cG9ydHMgYXQgb3IgYmVsb3cgNjQwcHggcGljayB1cCB0aGVpciBvd24gMTZweCBndXR0ZXIgZnJvbSB0aGUgbWVkaWFcbiAgLy8gYmxvY2sgYXQgdGhlIGVuZC5cbiAgcGFkZGluZzogMzJweCAwIDQ4cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgLy8gTmV1dHJhbGl6ZSBnbG9iYWwgYnV0dG9uIHsgbWluLXdpZHRoOiAxMTBweDsgbG9jay1oZWlnaHQoNTBweCk7IHVwcGVyY2FzZSB9LlxuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICB9XG5cbiAgYnV0dG9uICsgYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gIC8vIC0tIGhlYWRlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gVGh1bWJuYWlsIGJlc2lkZSBhbiBpZGVudGl0eSBjb2x1bW4sIHNhbWUgc3BlYyBhcyAucHJvZ3JhbS1zdW1tYXJ5X19oZWFkZXIuXG4gICZfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICB9XG5cbiAgLy8gVGhlIHBpY3R1cmUgaXMgYW4gZXhlcmNpc2UgdmlkZW8ncyBwb3N0ZXIgZnJhbWUsIGFuZCB0aG9zZSBhcmUgbm90IGFsbCBvbmUgcmF0aW8sXG4gIC8vIHNvIGEgZml4ZWQgMTM2eDg4IGJveCBjYW5ub3QgaG9sZCBldmVyeSBvbmUgb2YgdGhlbTogY292ZXIgY3JvcHBlZCB0aGUgZWRnZXMgb2ZmLFxuICAvLyBhbmQgY29udGFpbiBsZXR0ZXJib3hlZCBpbnN0ZWFkLCB3aGljaCBsZWZ0IHRoZSBwaWN0dXJlJ3Mgb3duIHNxdWFyZSBjb3JuZXJzXG4gIC8vIHNpdHRpbmcgaW5zaWRlIHRoZSByb3VuZGVkIGJveC4gU28gdGhlIHRpbGUgdGFrZXMgdGhlIHBpY3R1cmUncyByYXRpbyByYXRoZXIgdGhhblxuICAvLyBpbXBvc2luZyBvbmUgLSBoZWlnaHQgaXMgZml4ZWQsIHdpZHRoIGZvbGxvd3MsIGFuZCB0aGUgcmFkaXVzIGxhbmRzIG9uIHRoZSBpbWFnZVxuICAvLyBpdHNlbGYgd2l0aCBub3RoaW5nIHRvIGNyb3AgYW5kIG5vIGJhcnMuXG4gICZfX3RodW1iIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IDg4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6ICRkYWlseS1wcm9ncmFtLWNoaXAtYmc7XG4gIH1cblxuICAmX19pZGVudGl0eSB7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDEwcHg7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBjb2xvcjogJGRhaWx5LXByb2dyYW0tdGl0bGU7XG4gIH1cblxuICAmX19tZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogMTJweDtcbiAgfVxuXG4gIC8vIEZpbGxlZCBiYWRnZSBmb3IgY2F0ZWdvcmljYWwgbGFiZWxzIChnZW5yZSwgcHJvZ3JhbSB0eXBlKS4gTWV0cmljcyBmcm9tIHRoZSBGaWdtYTpcbiAgLy8gMnB4LzhweCBwYWRkaW5nIG92ZXIgYSAxNnB4IGxpbmUgYm94IGdpdmVzIHRoZSBzcGVjaWZpZWQgMjBweCBoZWlnaHQuXG4gICZfX3BpbGwge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogJGJsYWNrLTIwMDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgLy8gU2l6ZWQgaGVyZSByYXRoZXIgdGhhbiBsZWZ0IHRvIHRoZSBpbWcgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZXMsIHdoaWNoIGFueSBnbG9iYWxcbiAgLy8gYGltZ2AgcnVsZSBpbiBlaXRoZXIgYnVuZGxlIGNhbiBvdmVycmlkZS5cbiAgJl9fcGlsbC1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTJweDtcbiAgICBoZWlnaHQ6IDEycHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgfVxuXG4gIC8vIFVuZmlsbGVkIGljb24gKyB2YWx1ZSBmb3IgY291bnRzIC0gLnByb2dyYW0tZGV0YWlsX19jaGlwLiBEZWxpYmVyYXRlbHkgbm90IGEgcGlsbCxcbiAgLy8gc28gbWVhc3VyZW1lbnRzIHJlYWQgYXMgZGF0YSByYXRoZXIgdGhhbiBhcyBhbm90aGVyIGxhYmVsLlxuICAmX19tZXRyaWMge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuXG4gICZfX21ldHJpYy1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgfVxuXG4gIC8vIC0tIGJ1dHRvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDEwcHggMThweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRwdXJwbGUtNTAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICB9XG5cbiAgICAmOmRpc2FibGVkIHtcbiAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgICYtLXByaW1hcnkge1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS01MDA7XG4gICAgICBjb2xvcjogI2ZmZjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICR4LXB1cnBsZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbHJlYWR5LWNvbXBsZXRlZCBzZXNzaW9uLiBNdXRlZCByYXRoZXIgdGhhbiBkaXNhYmxlZCAtIHRoZSBidXR0b24gaXMgc3RpbGwgdGhlXG4gICAgLy8gb25seSB3YXkgYmFjayB0byB0aGUgcHJvZmlsZSBmcm9tIHRoaXMgcGFnZS5cbiAgICAmLS1kb25lIHtcbiAgICAgIGJhY2tncm91bmQ6ICRkYWlseS1wcm9ncmFtLWRpc2FibGVkLWJnO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkZGFpbHktcHJvZ3JhbS1kaXNhYmxlZC1iZztcbiAgICAgIGNvbG9yOiAjZmZmO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGRhaWx5LXByb2dyYW0tZGlzYWJsZWQtYmc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gLS0gc2VjdGlvbiBhY2NvcmRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19zZWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAzMnB4O1xuICB9XG5cbiAgJl9fc2VjdGlvbiB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgJl9fc2VjdGlvbi1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDE4cHggMjBweDtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAmX19zZWN0aW9uLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGRhaWx5LXByb2dyYW0tdGl0bGU7XG4gIH1cblxuICAvLyBDZW50cmVkIGluIGEgMzZweCBib3ggdG8gbWF0Y2ggdGhlIGFycm93IGJ1dHRvbiBvbiB0aGUgZXhlcmNpc2Ugcm93cyBiZWxvdy5cbiAgLy8gQm90aCBzaXQgYWdhaW5zdCB0aGUgc2FtZSAyMHB4IGd1dHRlciwgc28gZXF1YWwgd2lkdGhzIHB1dCB0aGVpciBjZW50cmVzIG9uXG4gIC8vIG9uZSB2ZXJ0aWNhbCBsaW5lLiBXaWR0aCBvbmx5IC0gYSAzNnB4IGhlaWdodCB3b3VsZCBzdHJldGNoIHRoZSBoZWFkZXIuXG4gICZfX3NlY3Rpb24tY2hldnJvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDM2cHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX3NlY3Rpb24tYm9keSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgfVxuXG4gIC8vIFRlY2huaXF1ZSBzdWItaGVhZGVyLCBzaG93biBvbmx5IHdoZW4gYSBzdHJhdGVneSBob2xkcyBtb3JlIHRoYW4gb25lIHRlY2huaXF1ZS5cbiAgJl9fdGVjaG5pcXVlIHtcbiAgICBwYWRkaW5nOiAxMnB4IDIwcHggNHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAzZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gIC8vIC0tIGV4ZXJjaXNlIHJvd3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gVGhlIHJvdyBpdHNlbGYgaXMgdGhlIDxidXR0b24+IHRoYXQgb3BlbnMgdGhlIGV4ZXJjaXNlIG1vZGFsLCBzbyBpdCBoYXMgdG8gdW5kb1xuICAvLyB0aGUgZ2xvYmFsIGJ1dHRvbiBjaHJvbWUgKHdoaXRlIGZpbGwsIDJweCBibHVlIGJvcmRlciwgNnB4IHJhZGl1cywgY2VudHJlZCB0ZXh0KVxuICAvLyB0aGUgd2F5ICZfX3NlY3Rpb24taGVhZGVyIGRvZXMuXG4gIC8vXG4gIC8vIEZpeGVkIDYycHgsIHNhbWUgYXMgLnByb2dyYW0tc3VtbWFyeV9fZXhlcmNpc2UuIE5vdGhpbmcgaW5zaWRlIGlzIHRhbGxlciB0aGFuIHRoZVxuICAvLyAzNnB4IGFycm93IGJveCwgc28gdGhlIGNvbnRlbnQgY2VudHJlcyB3aXRob3V0IHZlcnRpY2FsIHBhZGRpbmcgLSBhbmRcbiAgLy8gX19leGVyY2lzZS1uYW1lIHRydW5jYXRlcyByYXRoZXIgdGhhbiB3cmFwcGluZywgd2hpY2ggd291bGQgcHVzaCBwYXN0IHRoZSBoZWlnaHQuXG4gICZfX2V4ZXJjaXNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA2MnB4O1xuICAgIGdhcDogMTZweDtcbiAgICBwYWRkaW5nOiAwIDIwcHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmICsgJiB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHgtYm9yZGVyLWZhaW50O1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhlIGFycm93IHBpY2tzIHVwIHRoZSBhY2NlbnQgb24gcm93IGhvdmVyLCBzbyB0aGUgd2hvbGUgcm93IHJlYWRzIGFzIG9uZSB0YXJnZXQuXG4gICZfX2V4ZXJjaXNlOmhvdmVyICZfX2V4ZXJjaXNlLWFjdGlvbiB7XG4gICAgY29sb3I6ICRwdXJwbGUtNTAwO1xuICB9XG5cbiAgLy8gU3BhbnMsIG5vdCBkaXZzIC0gdGhleSBsaXZlIGluc2lkZSB0aGUgcm93IDxidXR0b24+LCB3aGljaCBvbmx5IHRha2VzIHBocmFzaW5nXG4gIC8vIGNvbnRlbnQgLSBzbyB0aGUgYmxvY2sgYmVoYXZpb3VyIGhhcyB0byBiZSBzZXQgaGVyZS5cbiAgJl9fZXhlcmNpc2UtaW5mbyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9fZXhlcmNpc2UtbmFtZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGRhaWx5LXByb2dyYW0tdGl0bGU7XG4gIH1cblxuICAvLyBUaGUgdW5jbGFzc2VkIHZhbHVlIHNwYW5zIGluaGVyaXQgZnJvbSBoZXJlLCBzbyA1MDAgaXMgdGhlIHZhbHVlIHdlaWdodCBhbmRcbiAgLy8gX19hdHRyaWJ1dGUtbGFiZWwgb3ZlcnJpZGVzIGl0IGJhY2sgdG8gNjAwIGZvciB0aGUgXCJTZXRzOlwiIC8gXCJSZXBzOlwiIGxhYmVscyAtXG4gIC8vIHNhbWUgc3BsaXQgYXMgLnByb2dyYW0tc3VtbWFyeV9fZXhlcmNpc2UtYXR0cmlidXRlcy5cbiAgJl9fZXhlcmNpc2UtYXR0cmlidXRlcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDRweCAxNnB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuICB9XG5cbiAgJl9fYXR0cmlidXRlLWxhYmVsIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuICB9XG5cbiAgJl9fZXhlcmNpc2UtYWN0aW9uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDM2cHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIGNvbG9yOiAkZGFpbHktcHJvZ3JhbS10aXRsZTtcbiAgfVxuXG4gICZfX2VtcHR5IHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gIC8vIC0tIGZvb3RlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gU2luZ2xlIGZ1bGwtd2lkdGggcHJpbWFyeSAtIHRoZSBzZXNzaW9uJ3Mgb25lIGNsb3NpbmcgYWN0aW9uLlxuICAmX19mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gICZfX2Zvb3RlciAmX19idXR0b24ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIHBhZGRpbmc6IDE0cHggMjRweDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gIH1cbn1cblxuLy8gTWlycm9ycyAucHJvZ3JhbS1zdW1tYXJ5OiB0aGUgb25lIHF1ZXJ5IGZpcmVzIHdoZW4gdGhlIHZpZXdwb3J0IHJlYWNoZXMgdGhlXG4vLyBjb2x1bW4gd2lkdGgsIHdoaWNoIGlzIHRoZSBvbmx5IHBvaW50IHRoZSBsYXlvdXQgaGFzIHRvIGNoYW5nZS4gQSByZXNwb25kKClcbi8vIHRpZXIgd291bGQgZmlyZSBhdCA3NjhweCBvciA0ODBweCwgbmVpdGhlciBvZiB3aGljaCBpcyB3aGVyZSA2NDBweCBydW5zIG91dC5cbkBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkge1xuICAuZGFpbHktcHJvZ3JhbSB7XG4gICAgcGFkZGluZzogMjBweCAxNnB4IDQwcHg7XG5cbiAgICAvLyBUaHVtYm5haWwgb3ZlciB0aGUgaWRlbnRpdHkgYmxvY2sgLSBzaWRlIGJ5IHNpZGUgbGVhdmVzIHRoZSB0aXRsZSB0b28gbmFycm93LlxuICAgICZfX2hlYWRlciB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICBnYXA6IDE0cHg7XG4gICAgfVxuXG4gICAgLy8gRnVsbCB3aWR0aCwgYW5kIHRoZSBoZWlnaHQgZm9sbG93cyB0aGUgcGljdHVyZSdzIG93biByYXRpbyAtIHNhbWUgcmVhc29uaW5nIGFzXG4gICAgLy8gdGhlIGRlc2t0b3AgdGlsZS4gQSBmaXhlZCAxNjBweCBoZXJlIHdhcyBhIDI6MS10by00OjEgYm94IGRlcGVuZGluZyBvbiB0aGVcbiAgICAvLyBwaG9uZSwgd2hpY2ggY3JvcHBlZCB0aGUgcGljdHVyZSBoYXJkIGluIHdoaWNoZXZlciBkaXJlY3Rpb24gZGlkIG5vdCBtYXRjaC5cbiAgICAmX190aHVtYiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAmX19tZXRhIHtcbiAgICAgIGdhcDogOHB4IDEycHg7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQocGhvbmUpIHtcbiAgLmRhaWx5LXByb2dyYW0ge1xuICAgIHBhZGRpbmc6IDE2cHggMTJweCAzMnB4O1xuXG4gICAgJl9fc2VjdGlvbi1oZWFkZXIge1xuICAgICAgcGFkZGluZzogMTZweDtcbiAgICB9XG5cbiAgICAmX19leGVyY2lzZSB7XG4gICAgICBwYWRkaW5nOiAwIDE2cHg7XG4gICAgfVxuXG4gICAgJl9fdGVjaG5pcXVlIHtcbiAgICAgIHBhZGRpbmc6IDEycHggMTZweCA0cHg7XG4gICAgfVxuICB9XG59XG4iLCIvLyBTdGVwIDEgb2YgdGhlIFNjaGVkdWxlIFByb2dyYW0gZmxvdyAoLyMvcHJvZ3JhbS86YXRobGV0ZUlkLzphdGhsZXRlUHJvZ3JhbUlkL3N1bW1hcnkpOlxuLy8gYSByZWFkLW9ubHkgcmVjYXAgb2YgdGhlIHByb2dyYW0gYmVmb3JlIGFueSBkYXRlcyBhcmUgcGlja2VkLlxuLy8gQWxzbyBjYXJyaWVzIC5zY2hlZHVsZS1zdGVwcywgdGhlIHN0ZXBwZXIgc2hhcmVkIHdpdGggdGhlIFNjaGVkdWxlIHN0ZXAuXG5cbiRwcm9ncmFtLXN1bW1hcnktY2hpcC1iZzogI2YyZjJmNDtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBTdGVwcGVyICh0ZW1wbGF0ZXMvc2NoZWR1bGVfc3RlcHMuaHRtbCkgLSBzaGFyZWQgYWNyb3NzIHRoZSBmbG93LCBzbyBpdCBpc1xuLy8gc2NvcGVkIHRvIGl0c2VsZiByYXRoZXIgdGhhbiBuZXN0ZWQgdW5kZXIgLnByb2dyYW0tc3VtbWFyeS5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnNjaGVkdWxlLXN0ZXBzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDQwcHg7XG4gIG1hcmdpbi1ib3R0b206IDI4cHg7XG5cbiAgJl9fc3RlcCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICB9XG5cbiAgJl9fbWFya2VyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDIycHg7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAkYmxhY2stMTAwO1xuICAgIGNvbG9yOiAkYmxhY2stNTAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG5cbiAgJl9fbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4xNHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNTAwO1xuICB9XG5cbiAgJl9fc3RlcC0tYWN0aXZlICZfX21hcmtlciB7XG4gICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gICAgY29sb3I6ICRwdXJwbGUtOTAwO1xuICB9XG5cbiAgJl9fc3RlcC0tYWN0aXZlICZfX2xhYmVsIHtcbiAgICBjb2xvcjogJHB1cnBsZS05MDA7XG4gIH1cblxuICAvLyBDb21wbGV0ZWQgc3RlcHMgc3dhcCB0aGUgbnVtYmVyIGZvciBhIGNoZWNrIGFuZCBzdGF5IG11dGVkLlxuICAmX19zdGVwLS1jb21wbGV0ZSAmX19tYXJrZXIge1xuICAgIGJhY2tncm91bmQ6ICRibGFjay0xMDA7XG4gICAgY29sb3I6ICRibGFjay01MDA7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICB9XG5cbiAgJl9fc3RlcC0tY29tcGxldGUgJl9fbGFiZWwge1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgLy8gU2lkZSBieSBzaWRlIHRoZSB0aHJlZSBzdGVwcyBtZWFzdXJlIH41MDRweCwgc28gb25jZSB0aGUgY29sdW1uIGRyb3BzIGJlbG93XG4gIC8vIHRoYXQgdGhlIHRoaXJkIG9uZSB3cmFwcyBvbnRvIGl0cyBvd24gcm93IGFuZCB0aGUgNDBweCBnYXAgb3BlbnMgYSB3aWRlIGJhbmRcbiAgLy8gb2YgZGVhZCBzcGFjZSBiZXR3ZWVuIHRoZSB0d28gcm93cy4gU3RhY2sgdGhlbSBhcyBhIHBsYWluIGxpc3QgaW5zdGVhZC5cbiAgLy8gVGhlIHJvdyBnYXAgaXMgMTBweCBzbyB0aGUgYmxvY2sga2VlcHMgdGhlIGhlaWdodCBpdCBoYWQgd2hlbiB3cmFwcGVkIC1cbiAgLy8gMiByb3dzIGF0IDIycHggcGx1cyBvbmUgNDBweCBnYXAgaXMgODRweCwgMyByb3dzIGF0IDIycHggcGx1cyB0d28gMTBweCBnYXBzXG4gIC8vIGlzIDg2cHggLSBhbmQgbm90aGluZyBiZWxvdyB0aGUgc3RlcHBlciBtb3Zlcy5cbiAgQGluY2x1ZGUgcmVzcG9uZChzY2hlZHVsZS1zdGVwcy1zdGFja2VkKSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBnYXA6IDEwcHg7XG4gICAgLy8gU2hyaW5rIHRoZSBib3ggdG8gaXRzIHdpZGVzdCBzdGVwLCB0aGVuIGNlbnRyZSB0aGUgYm94LiBhbGlnbi1pdGVtcyBrZWVwc1xuICAgIC8vIHRoZSB0aHJlZSByb3dzIG9uIG9uZSBzaGFyZWQgbGVmdCBlZGdlIHJhdGhlciB0aGFuIGNlbnRyaW5nIGVhY2ggcm93IG9uXG4gICAgLy8gaXRzIG93biBsYWJlbCwgd2hpY2ggd291bGQgbGVhdmUgYSByYWdnZWQgbGVmdC4gZml0LWNvbnRlbnQgY2xhbXBzIGl0c2VsZlxuICAgIC8vIHRvIHRoZSBjb2x1bW4gd2hlbiBhIHRyYW5zbGF0ZWQgbGFiZWwgcnVucyBsb25nLCBzbyB0aGVyZSBpcyBubyBvdmVyZmxvd1xuICAgIC8vIHRvIGd1YXJkIGFnYWluc3QuXG4gICAgd2lkdGg6IC1tb3otZml0LWNvbnRlbnQ7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFN1bW1hcnkgcGFnZVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDb21wb3VuZCBzZWxlY3RvciBvbiBwdXJwb3NlOiBfcGFzc3BvcnQuc2NzcyAobWFyay1hZGRpdGlvbnMgYnVuZGxlLCB3aGljaCBsb2Fkc1xuLy8gYWZ0ZXIgdGhpcyBzaGVldCkgcmVkZWZpbmVzIGAudmlldy1mbGV4IHsgZmxleDogMCAwIGF1dG8gfWAsIHdoaWNoIGNvbGxhcHNlcyB0aGVcbi8vIHBhZ2UgYW5kIGZsb2F0cyB0aGUgc2l0ZSBmb290ZXIgdXAuIE1hdGNoaW5nIHR3byBjbGFzc2VzIG91dC1zcGVjaWZpZXMgaXQuXG4udmlldy1mbGV4LnByb2dyYW0tc3VtbWFyeS1wYWdlIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIC8vIHN0cmV0Y2gsIG5vdCBgd2lkdGg6IDEwMCVgOiBfYXRobGV0ZV9zaWRlYmFyLnNjc3MgaW5kZW50cyBzaWJsaW5ncyBvZlxuICAvLyAubWVudS1jb250ZW50IHdpdGggbWFyZ2luLWxlZnQsIGFuZCBhIHZpZXdwb3J0LXdpZGUgMTAwJSBib3ggdGhlbiBvdmVyZmxvd3NcbiAgLy8gdG8gdGhlIHJpZ2h0IGFuZCBjZW50cmVzIHRoZSBjb2x1bW4gYWdhaW5zdCB0aGUgdmlld3BvcnQgaW5zdGVhZCBvZiB0aGVcbiAgLy8gcmFpbC1hZGphY2VudCBjb250ZW50IGNvbHVtbiAoYW5kIHRoZSBzaXRlIGZvb3RlcikuXG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGJhY2tncm91bmQ6ICRwYWdlLWJnO1xufVxuXG4ucHJvZ3JhbS1zdW1tYXJ5IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNjQwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICAvLyBObyBzaWRlIHBhZGRpbmcsIHNvIHRoZSBjYXJkcyBzcGFuIHRoZSBmdWxsIDY0MHB4LiBWaWV3cG9ydHMgYXQgb3IgYmVsb3dcbiAgLy8gNjQwcHggcGljayB1cCB0aGVpciBvd24gMTZweCBndXR0ZXIgZnJvbSB0aGUgbWVkaWEgYmxvY2sgYXQgdGhlIGVuZC5cbiAgcGFkZGluZzogMzJweCAwIDQ4cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgLy8gTmV1dHJhbGl6ZSB0aGUgZ2xvYmFsIGJ1dHRvbiB7IG1pbi13aWR0aDogMTEwcHg7IHVwcGVyY2FzZTsgbG9jay1oZWlnaHQgfSBydWxlcy5cbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgfVxuXG4gIGJ1dHRvbiArIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICAvLyAtLSBoZWFkZXIgY2FyZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xuICB9XG5cbiAgLy8gVGhlIHBpY3R1cmUgaXMgYW4gZXhlcmNpc2UgdmlkZW8ncyBwb3N0ZXIgZnJhbWUsIGFuZCB0aG9zZSBhcmUgbm90IGFsbCBvbmUgcmF0aW8sXG4gIC8vIHNvIGEgZml4ZWQgMTM2eDg4IGJveCBjYW5ub3QgaG9sZCBldmVyeSBvbmUgb2YgdGhlbTogY292ZXIgY3JvcHMgdGhlIGVkZ2VzIG9mZixcbiAgLy8gYW5kIGNvbnRhaW4gbGV0dGVyYm94ZXMgaW5zdGVhZCwgd2hpY2ggbGVhdmVzIHRoZSBwaWN0dXJlJ3Mgb3duIHNxdWFyZSBjb3JuZXJzXG4gIC8vIHNpdHRpbmcgaW5zaWRlIHRoZSByb3VuZGVkIGJveC4gU28gdGhlIHRpbGUgdGFrZXMgdGhlIHBpY3R1cmUncyByYXRpbyByYXRoZXIgdGhhblxuICAvLyBpbXBvc2luZyBvbmUgLSBoZWlnaHQgaXMgZml4ZWQsIHdpZHRoIGZvbGxvd3MsIGFuZCB0aGUgcmFkaXVzIGxhbmRzIG9uIHRoZSBpbWFnZVxuICAvLyBpdHNlbGYgd2l0aCBub3RoaW5nIHRvIGNyb3AgYW5kIG5vIGJhcnMuIFNhbWUgY2FsbCBhcyAuZGFpbHktcHJvZ3JhbV9fdGh1bWIuXG4gICZfX3RodW1iIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IDg4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6ICRwcm9ncmFtLXN1bW1hcnktY2hpcC1iZztcbiAgfVxuXG4gICZfX2lkZW50aXR5IHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX190aXRsZSB7XG4gICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgLy8gOHB4IHdhcyB0dW5lZCBmb3IgY2hpcHMgdGhhdCBjYXJyaWVkIHRoZWlyIG93biAxMHB4IG9mIHBhZGRpbmc7IG5vdyB0aGF0XG4gIC8vIFdlZWtzIC8gRGF5cyBhcmUgdW5wYWRkZWQgdGhlIHJvdyBuZWVkcyB0aGUgc2VwYXJhdGlvbiBpbiB0aGUgZ2FwIGluc3RlYWQuXG4gICZfX21ldGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAxNnB4O1xuICB9XG5cbiAgLy8gV2Vla3MgLyBEYXlzLXBlci13ZWVrIHJlYWQgYXMgcGxhaW4gbWV0YWRhdGEgLSBubyBmaWxsLCBhbmQgbm8gcGFkZGluZyBlaXRoZXIsXG4gIC8vIHdoaWNoIG9uIGEgdHJhbnNwYXJlbnQgY2hpcCB3b3VsZCBvbmx5IHB1c2ggdGhlIHJvdyBhcGFydC5cbiAgJl9fY2hpcCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgLy8gVGhlIHByb2dyYW0gdHlwZSBpcyB0aGUgb25lIGNoaXAgdGhhdCBzdGF5cyBhIGJhZGdlLlxuICAgICYtLXR5cGUge1xuICAgICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmxhY2stMjAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2NoaXAtaWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyAtLSBzZXNzaW9uIHRhYnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIE1hdGNoZXMgdGhlIHByYWN0aXRpb25lciBidWlsZCBwYWdlIChfcHJvZ3JhbV9idWlsZC5zY3NzKTogYSAzNnB4IHRyYWNrXG4gIC8vIGhvbGRpbmcgZml4ZWQgODN4Mjggc2VsZWN0b3JzLlxuICAmX190YWJzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWluLWhlaWdodDogMzZweDtcbiAgICBnYXA6IDRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIHBhZGRpbmc6IDRweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogJHByb2dyYW0tc3VtbWFyeS1jaGlwLWJnO1xuICB9XG5cbiAgJl9fdGFiIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDgzcHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDJweCAxMnB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgICAgYm94LXNoYWRvdzogJHNoYWRvdy1jYXJkO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tIGFjY29yZGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fc2VjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMzJweDtcbiAgfVxuXG4gICZfX3NlY3Rpb24ge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdy1jYXJkO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAmX19zZWN0aW9uLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDE2cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMThweCAyMHB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICZfX3NlY3Rpb24tdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgLy8gQ2VudHJlZCBpbiBhIDM2cHggYm94IHRvIG1hdGNoIHRoZSBwbGF5IGJ1dHRvbiBvbiB0aGUgZXhlcmNpc2Ugcm93cyBiZWxvdy5cbiAgLy8gQm90aCBzaXQgYWdhaW5zdCB0aGUgc2FtZSAyMHB4IGd1dHRlciwgc28gZXF1YWwgd2lkdGhzIHB1dCB0aGVpciBjZW50cmVzIG9uXG4gIC8vIG9uZSB2ZXJ0aWNhbCBsaW5lLiBXaWR0aCBvbmx5IC0gYSAzNnB4IGhlaWdodCB3b3VsZCBzdHJldGNoIHRoZSBoZWFkZXIuXG4gICZfX3NlY3Rpb24tY2hldnJvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzZweDtcblxuICAgIC8vIFRoZSBzdmcgcG9pbnRzIHVwIChleHBhbmRlZCk7IGZsaXAgaXQgZm9yIGEgY29sbGFwc2VkIHNlY3Rpb24uXG4gICAgJi0tY29sbGFwc2VkIHN2ZyB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgIH1cbiAgfVxuXG4gICZfX3NlY3Rpb24tYm9keSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gIH1cblxuICAvLyAtLSBleGVyY2lzZSByb3dzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEZpeGVkIDYycHggcm93cy4gTm90aGluZyBpbnNpZGUgaXMgdGFsbGVyIHRoYW4gdGhlIDM2cHggcGxheSBidXR0b24sIHNvIHRoZVxuICAvLyBjb250ZW50IGNlbnRyZXMgd2l0aG91dCB2ZXJ0aWNhbCBwYWRkaW5nIC0gYW5kIF9fZXhlcmNpc2UtbmFtZSB0cnVuY2F0ZXNcbiAgLy8gcmF0aGVyIHRoYW4gd3JhcHBpbmcsIHdoaWNoIHdvdWxkIG90aGVyd2lzZSBwdXNoIGEgcm93IHBhc3QgdGhlIGhlaWdodC5cbiAgJl9fZXhlcmNpc2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBoZWlnaHQ6IDYycHg7XG4gICAgZ2FwOiAxNnB4O1xuICAgIHBhZGRpbmc6IDAgMjBweDtcblxuICAgICYgKyAmIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2V4ZXJjaXNlLWluZm8ge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gICZfX2V4ZXJjaXNlLW5hbWUge1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gIH1cblxuICAvLyBUaGUgdW5jbGFzc2VkIHZhbHVlIHNwYW5zIGluaGVyaXQgZnJvbSBoZXJlLCBzbyA1MDAgaXMgdGhlIHZhbHVlIHdlaWdodCBhbmRcbiAgLy8gX19hdHRyaWJ1dGUtbGFiZWwgb3ZlcnJpZGVzIGl0IGJhY2sgdG8gNjAwIGZvciB0aGUgXCJTZXRzOlwiIC8gXCJSZXBzOlwiIGxhYmVscy5cbiAgJl9fZXhlcmNpc2UtYXR0cmlidXRlcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDRweCAxNnB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuICB9XG5cbiAgJl9fYXR0cmlidXRlLWxhYmVsIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuICB9XG5cbiAgJl9fZXhlcmNpc2UtcGxheSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHJvZ3JhbS1zdW1tYXJ5LWNoaXAtYmc7XG4gICAgfVxuICB9XG5cbiAgLy8gVGhlIHBsYXkgYXNzZXQgaXMgZnVsbC1ibGVlZCBpbiBpdHMgY2FudmFzLCBzbyAxNnB4IGxhbmRzIGl0IG9uIHRoZSBzYW1lXG4gIC8vIG9wdGljYWwgc2l6ZSB0aGUgcHJhY3RpdGlvbmVyIHBhZ2UgZ2l2ZXMgaXQuXG4gICZfX2V4ZXJjaXNlLXBsYXktaWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIH1cblxuICAmX19ib2R5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAvLyAtLSBsb2FkaW5nIHNrZWxldG9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3NrZWxldG9uIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICYtLW92ZXJsYXkge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGJhY2tncm91bmQ6ICRwYWdlLWJnO1xuICAgIH1cbiAgfVxuXG4gICZfX3NrZWxldG9uLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24tdGh1bWIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxMzZweDtcbiAgICBoZWlnaHQ6IDg4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24taWRlbnRpdHkge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24tdGl0bGUge1xuICAgIGhlaWdodDogMjRweDtcbiAgICB3aWR0aDogNzIlO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxuXG4gIC8vIE1pcnJvcnMgX19tZXRhOiB0eXBlIGJhZGdlIHBsdXMgd2Vla3MgYW5kIGRheXMtcGVyLXdlZWsgY2hpcHMuXG4gICZfX3NrZWxldG9uLW1ldGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAxNnB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24tY2hpcCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgICAmLS10eXBlIHtcbiAgICAgIGhlaWdodDogMjRweDtcbiAgICAgIHdpZHRoOiA4OHB4O1xuICAgIH1cblxuICAgICYtLXdlZWtzIHtcbiAgICAgIHdpZHRoOiA3MnB4O1xuICAgIH1cblxuICAgICYtLWZyZXF1ZW5jeSB7XG4gICAgICB3aWR0aDogMTA0cHg7XG4gICAgfVxuICB9XG5cbiAgJl9fc2tlbGV0b24tdGFicyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIHdpZHRoOiAyNThweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIH1cblxuICAmX19za2VsZXRvbi1zZWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAzMnB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24tc2VjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiA1NnB4O1xuICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLXNlY3Rpb24tdGl0bGUge1xuICAgIGhlaWdodDogMTZweDtcbiAgICB3aWR0aDogNTUlO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxuXG4gICZfX3NrZWxldG9uLWZvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDE2cHg7XG4gIH1cblxuICAmX19za2VsZXRvbi1idXR0b24ge1xuICAgIGhlaWdodDogNDZweDtcbiAgICB3aWR0aDogMTEwcHg7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcblxuICAgICYtLXByaW1hcnkge1xuICAgICAgd2lkdGg6IDE0MHB4O1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tIGZvb3RlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTZweDtcbiAgfVxuXG4gICZfX2J1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiAxMnB4IDI0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmLS1wcmltYXJ5IHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS01MDA7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTUwMDtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkeC1wdXJwbGUtaG92ZXI7XG4gICAgICAgIGJhY2tncm91bmQ6ICR4LXB1cnBsZS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICBwYWRkaW5nOiAyMHB4IDE2cHggNDBweDtcblxuICAgICZfX2hlYWRlcixcbiAgICAmX19za2VsZXRvbi1oZWFkZXIge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgZ2FwOiAxMnB4O1xuICAgIH1cblxuICAgICZfX3NrZWxldG9uLXRodW1iIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiA4OHB4O1xuICAgIH1cblxuICAgIC8vIEZ1bGwgd2lkdGgsIGFuZCB0aGUgaGVpZ2h0IGZvbGxvd3MgdGhlIHBpY3R1cmUncyBvd24gcmF0aW8gLSBzYW1lIHJlYXNvbmluZyBhc1xuICAgIC8vIHRoZSBkZXNrdG9wIHRpbGUuIEEgZml4ZWQgMTYwcHggaGVyZSB3YXMgYSAyOjEtdG8tNDoxIGJveCBkZXBlbmRpbmcgb24gdGhlXG4gICAgLy8gcGhvbmUsIHdoaWNoIGNyb3BwZWQgdGhlIHBpY3R1cmUgaGFyZCBpbiB3aGljaGV2ZXIgZGlyZWN0aW9uIGRpZCBub3QgbWF0Y2guXG4gICAgJl9fdGh1bWIge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgIH1cblxuICAgICZfX3RhYnMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFN0ZXAgMSBvZiB0aGUgU2NoZWR1bGUgUHJvZ3JhbSBmbG93IGZvciBwcmFjdGl0aW9uZXJzXG4vLyAoLyMvcHJvZ3JhbS86YXRobGV0ZUlkLzphdGhsZXRlUHJvZ3JhbUlkL2VkaXQpOiB0aGUgZWRpdGFibGUgcHJvZ3JhbSBidWlsZGVyLlxuLy8gTWlycm9ycyBfcHJvZ3JhbV9zdW1tYXJ5LnNjc3MgKHRoZSBtZW1iZXIncyByZWFkLW9ubHkgc3RlcCAxKSBhbmQgYWRkcyB0aGVcbi8vIGVkaXRpbmcgYWZmb3JkYW5jZXMgLSBwZXItdGVjaG5pcXVlIEFkZCBFeGVyY2lzZSwgdGhlIFJlbW92ZSBBbGwgLyBFZGl0IEFsbFxuLy8ga2ViYWIsIHBlci1leGVyY2lzZSBhY3Rpb25zIGFuZCByZW9yZGVyIGFycm93cy5cbi8vIFRoZSAuc2NoZWR1bGUtc3RlcHMgc3RlcHBlciBpcyBzaGFyZWQgYW5kIGxpdmVzIGluIF9wcm9ncmFtX3N1bW1hcnkuc2Nzcy5cblxuJHByb2dyYW0tYnVpbGQtY2hpcC1iZzogI2YyZjJmNDtcbiRwcm9ncmFtLWJ1aWxkLWRhbmdlcjogI2MwMzkyYjtcbiRwcm9ncmFtLWJ1aWxkLW1lbnUtc2hhZG93OiAwIDhweCAyMHB4IDAgcmdiYSgxNiwgMjQsIDQwLCAwLjEyKTtcblxuLy8gQ29tcG91bmQgc2VsZWN0b3Igb24gcHVycG9zZTogX3Bhc3Nwb3J0LnNjc3MgKG1hcmstYWRkaXRpb25zIGJ1bmRsZSwgd2hpY2ggbG9hZHNcbi8vIGFmdGVyIHRoaXMgc2hlZXQpIHJlZGVmaW5lcyBgLnZpZXctZmxleCB7IGZsZXg6IDAgMCBhdXRvIH1gLCB3aGljaCBjb2xsYXBzZXMgdGhlXG4vLyBwYWdlIGFuZCBmbG9hdHMgdGhlIHNpdGUgZm9vdGVyIHVwLiBNYXRjaGluZyB0d28gY2xhc3NlcyBvdXQtc3BlY2lmaWVzIGl0LlxuLnZpZXctZmxleC5wcm9ncmFtLWJ1aWxkLXBhZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleDogMSAwIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgLy8gc3RyZXRjaCwgbm90IGB3aWR0aDogMTAwJWA6IF9hdGhsZXRlX3NpZGViYXIuc2NzcyBpbmRlbnRzIHNpYmxpbmdzIG9mXG4gIC8vIC5tZW51LWNvbnRlbnQgd2l0aCBtYXJnaW4tbGVmdCwgYW5kIGEgdmlld3BvcnQtd2lkZSAxMDAlIGJveCB0aGVuIG92ZXJmbG93c1xuICAvLyB0byB0aGUgcmlnaHQgYW5kIGNlbnRyZXMgdGhlIGNvbHVtbiBhZ2FpbnN0IHRoZSB2aWV3cG9ydCBpbnN0ZWFkIG9mIHRoZVxuICAvLyByYWlsLWFkamFjZW50IGNvbnRlbnQgY29sdW1uIChhbmQgdGhlIHNpdGUgZm9vdGVyKS5cbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgYmFja2dyb3VuZDogJHBhZ2UtYmc7XG59XG5cbi5wcm9ncmFtLWJ1aWxkIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIC8vIDY4OCAtIDIgeCAyNHB4IHBhZGRpbmcgPSBhIDY0MHB4IGNvbnRlbnQgY29sdW1uLCBjZW50ZXJlZCwgbWF0Y2hpbmcgc3RlcCAyXG4gIC8vIG9mIHRoZSBTY2hlZHVsZSBQcm9ncmFtIGZsb3cgKF9zY2hlZHVsZV9idWlsZC5zY3NzIC5wcm9ncmFtLXNjaGVkdWxlLS1uYXJyb3cpLlxuICBtYXgtd2lkdGg6IDY4OHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMzJweCAyNHB4IDQ4cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgLy8gRXNjYXBlIHRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgaW4gX2Jhc2Uuc2Nzcy5cbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgfVxuXG4gIGJ1dHRvbiArIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICAmX19ib2R5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAvLyAtLSBsb2FkaW5nIHNrZWxldG9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIE1pcnJvcnMgdGhlIHJlYWwgc3RhY2sgYWJvdmU6IHR5cGUgdGFicywgaGVhZGVyIGNhcmQsIHNlc3Npb24gdGFicywgb25lXG4gIC8vIHN0cmF0ZWd5IGhlYWRpbmcgYW5kIHRocmVlIHRlY2huaXF1ZSBjYXJkcywgdGhlbiB0aGUgZm9vdGVyIGJ1dHRvbnMuXG4gIC8vIFNpdHMgb3ZlciB0aGUgbW91bnRlZCBtYXJrdXAgd2hpbGUgbmctaWYgY29tcGlsZXMsIHRoZW4gZHJvcHMuXG4gICZfX3NrZWxldG9uIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICYtLW92ZXJsYXkge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGJhY2tncm91bmQ6ICRwYWdlLWJnO1xuICAgIH1cbiAgfVxuXG4gICZfX3NrZWxldG9uLXR5cGUtdGFicyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiA0NnB4O1xuICAgIHdpZHRoOiAzNDBweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMjhweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIH1cblxuICAmX19za2VsZXRvbi1oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjhweDtcbiAgfVxuXG4gIC8vIFRoZSByZWFsIHRpbGUgdGFrZXMgdGhlIHBvc3RlciBmcmFtZSdzIG93biByYXRpbywgc28gdGhpcyBpcyB0aGUgMTM2eDg4XG4gIC8vIG5vbWluYWwgYm94IHRoZSBwbGFjZWhvbGRlciBpbWFnZSByZXNvbHZlcyB0by5cbiAgJl9fc2tlbGV0b24tdGh1bWIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxMzZweDtcbiAgICBoZWlnaHQ6IDg4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24taWRlbnRpdHkge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xuICB9XG5cbiAgLy8gMzBweCB0eXBlIGF0IGxpbmUtaGVpZ2h0IDEuMiA9IDM2cHguXG4gICZfX3NrZWxldG9uLXRpdGxlIHtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgd2lkdGg6IDcyJTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAmX19za2VsZXRvbi1tZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xuICB9XG5cbiAgLy8gQ2hpcCBoZWlnaHQgaXMgdGhlIHJlYWwgMTNweC81MDAgbGFiZWwgcGx1cyA0cHggcGFkZGluZyB0b3AgYW5kIGJvdHRvbS5cbiAgJl9fc2tlbGV0b24tY2hpcCB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgaGVpZ2h0OiAyNnB4O1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgICAmLS10eXBlIHtcbiAgICAgIHdpZHRoOiAxMDRweDtcbiAgICB9XG5cbiAgICAmLS13ZWVrcyB7XG4gICAgICB3aWR0aDogODBweDtcbiAgICB9XG5cbiAgICAmLS1mcmVxdWVuY3kge1xuICAgICAgd2lkdGg6IDExNnB4O1xuICAgIH1cbiAgfVxuXG4gIC8vIE1hdGNoZXMgdGhlIDM2cHggc2VnbWVudGVkIHRyYWNrIGhvbGRpbmcgdGhyZWUgODNweCB0YWJzIHBsdXMgaXRzIHBhZGRpbmcuXG4gICZfX3NrZWxldG9uLXRhYnMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMzZweDtcbiAgICB3aWR0aDogMjY1cHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24tc3RyYXRlZ3kge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLXN0cmF0ZWd5LWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIH1cblxuICAmX19za2VsZXRvbi1zdHJhdGVneS1uYW1lIHtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgd2lkdGg6IDE0OHB4O1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxuXG4gICZfX3NrZWxldG9uLXRlY2huaXF1ZXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMzJweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLXRlY2huaXF1ZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiAkc2hhZG93LWNhcmQ7XG4gIH1cblxuICAmX19za2VsZXRvbi10ZWNobmlxdWUtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLXRlY2huaXF1ZS10aXRsZSB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGhlaWdodDogMTZweDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAmX19za2VsZXRvbi1hZGQtZXhlcmNpc2Uge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxMzhweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24ta2ViYWIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIH1cblxuICAmX19za2VsZXRvbi10ZWNobmlxdWUtYm9keSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gIH1cblxuICAmX19za2VsZXRvbi1leGVyY2lzZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiA2NHB4O1xuICAgIGdhcDogMTJweDtcbiAgICBwYWRkaW5nOiAwIDIwcHg7XG5cbiAgICAmICsgJiB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgICB9XG4gIH1cblxuICAmX19za2VsZXRvbi1yZW9yZGVyIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB9XG5cbiAgJl9fc2tlbGV0b24tZXhlcmNpc2UtaW5mbyB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDZweDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLWV4ZXJjaXNlLW5hbWUge1xuICAgIGhlaWdodDogMTRweDtcbiAgICB3aWR0aDogNDYlO1xuICAgIG1heC13aWR0aDogbm9uZTtcblxuICAgICYtLXNob3J0IHtcbiAgICAgIHdpZHRoOiAzNCU7XG4gICAgfVxuICB9XG5cbiAgJl9fc2tlbGV0b24tZXhlcmNpc2UtYXR0cmlidXRlcyB7XG4gICAgaGVpZ2h0OiAxMnB4O1xuICAgIHdpZHRoOiAxMjhweDtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gIH1cblxuICAmX19za2VsZXRvbi1leGVyY2lzZS1hY3Rpb25zIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gIH1cblxuICAmX19za2VsZXRvbi1leGVyY2lzZS1hY3Rpb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIH1cblxuICAmX19za2VsZXRvbi1mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxNnB4O1xuICB9XG5cbiAgLy8gMTVweC82MDAgbGFiZWwgcGx1cyAxMnB4IHBhZGRpbmcgYW5kIHRoZSAxcHggYm9yZGVyIG9uIGVhY2ggc2lkZS5cbiAgJl9fc2tlbGV0b24tYnV0dG9uIHtcbiAgICBoZWlnaHQ6IDQ2cHg7XG4gICAgd2lkdGg6IDExMnB4O1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG5cbiAgICAmLS1wcmltYXJ5IHtcbiAgICAgIHdpZHRoOiAxNDJweDtcbiAgICB9XG4gIH1cblxuICAvLyAtLSBwcm9ncmFtIHR5cGUgdGFicyAodW5kZXJsaW5lZCwgYWJvdmUgdGhlIGhlYWRlciBjYXJkKSAtLS0tLS0tLS0tLS0tLS0tLVxuICAmX190eXBlLXRhYnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjhweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgfVxuXG4gICZfX3R5cGUtdGFiIHtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAvLyBcIlByYWN0aXRpb25lciBMaWdodFwiIGlzIHR3byB3b3Jkcywgc28gd2l0aG91dCB0aGlzIGl0IGJyZWFrcyBhY3Jvc3MgdHdvXG4gICAgLy8gbGluZXMgYXMgc29vbiBhcyB0aGUgc3RyaXAgaXMgc3F1ZWV6ZWQgYW5kIHRoZSB1bmRlcmxpbmUgaW5kaWNhdG9yIGdyb3dzXG4gICAgLy8gdG8gbWF0Y2guIFRoZSBwaG9uZSB0aWVyIGJlbG93IHNocmlua3MgdGhlIHR5cGUgaW5zdGVhZC5cbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8vIFRoZSBnbG9iYWwgYnV0dG9uIHJ1bGUgcm91bmRzIGV2ZXJ5IGNvcm5lciwgd2hpY2ggYm93cyB0aGUgZW5kcyBvZiB0aGVcbiAgICAvLyB1bmRlcmxpbmU7IHRoZSBzZWxlY3RlZCBpbmRpY2F0b3IgaGFzIHRvIHJlYWQgYXMgYSBzdHJhaWdodCBydWxlLlxuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIH1cblxuICAgICYtLWFjdGl2ZSB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICB9XG5cbiAgICAvLyBBIHR5cGUgdGhlIHByb2dyYW0gaGFzIG5vIHNlc3Npb25zIGZvciBrZWVwcyBpdHMgcGxhY2UgaW4gdGhlIHN0cmlwIHJhdGhlclxuICAgIC8vIHRoYW4gY29sbGFwc2luZyB0aGUgY29udHJvbCAtIGdyZXllZCBvdXQgYW5kIG5vdCBzZWxlY3RhYmxlLlxuICAgICYtLWRpc2FibGVkIHtcbiAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFwiTGlnaHRcIiAvIFwiUHJvXCIgaXMgcGFydCBvZiB0aGUgdGFiIGxhYmVsLCBub3QgYW4gYW5ub3RhdGlvbiBvbiBpdCAtIG1hdGNoaW5nXG4gIC8vIHRoZSB3ZWlnaHQgYW5kIGNvbG91ciBrZWVwcyBhIHRhYiBmcm9tIHJlYWRpbmcgYXMgdHdvIGRpZmZlcmVudCBncmV5cy5cbiAgJl9fdHlwZS10YWItdGFnIHtcbiAgICBtYXJnaW4tbGVmdDogNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gLS0gaGVhZGVyIGNhcmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjhweDtcbiAgfVxuXG4gIC8vIFRoZSBwaWN0dXJlIGlzIGFuIGV4ZXJjaXNlIHZpZGVvJ3MgcG9zdGVyIGZyYW1lLCBhbmQgdGhvc2UgYXJlIG5vdCBhbGwgb25lIHJhdGlvLFxuICAvLyBzbyBhIGZpeGVkIDEzNng4OCBib3ggY2Fubm90IGhvbGQgZXZlcnkgb25lIG9mIHRoZW06IGNvdmVyIGNyb3BzIHRoZSBlZGdlcyBvZmYsXG4gIC8vIGFuZCBjb250YWluIGxldHRlcmJveGVzIGluc3RlYWQsIHdoaWNoIGxlYXZlcyB0aGUgcGljdHVyZSdzIG93biBzcXVhcmUgY29ybmVyc1xuICAvLyBzaXR0aW5nIGluc2lkZSB0aGUgcm91bmRlZCBib3guIFNvIHRoZSB0aWxlIHRha2VzIHRoZSBwaWN0dXJlJ3MgcmF0aW8gcmF0aGVyIHRoYW5cbiAgLy8gaW1wb3Npbmcgb25lIC0gaGVpZ2h0IGlzIGZpeGVkLCB3aWR0aCBmb2xsb3dzLCBhbmQgdGhlIHJhZGl1cyBsYW5kcyBvbiB0aGUgaW1hZ2VcbiAgLy8gaXRzZWxmIHdpdGggbm90aGluZyB0byBjcm9wIGFuZCBubyBiYXJzLiBTYW1lIGNhbGwgYXMgLmRhaWx5LXByb2dyYW1fX3RodW1iLlxuICAmX190aHVtYiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiA4OHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiAkcHJvZ3JhbS1idWlsZC1jaGlwLWJnO1xuICB9XG5cbiAgJl9faWRlbnRpdHkge1xuICAgIG1pbi13aWR0aDogMDtcbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gIH1cblxuICAmX19tZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xuICB9XG5cbiAgJl9fY2hpcCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBwYWRkaW5nOiA0cHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogJHByb2dyYW0tYnVpbGQtY2hpcC1iZztcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgJl9fY2hpcC1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC8vIC0tIHNlc3Npb24gdGFicyAoc2VnbWVudGVkKSArIHdoaXRlYm9hcmQgY29weSBjb250cm9scyAtLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3Nlc3Npb24tcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgfVxuXG4gIC8vIDM2cHggdHJhY2sgaG9sZGluZyBhIDI4cHggc2VsZWN0b3I6IDRweCBvZiBwYWRkaW5nIG9uIGVhY2ggc2lkZS4gbWluLWhlaWdodFxuICAvLyByYXRoZXIgdGhhbiBoZWlnaHQgc28gdGhlIG1vYmlsZSBvdmVyZmxvdy14IHNjcm9sbGJhciBjYW5ub3Qgc3F1YXNoIHRoZSB0YWJzLlxuICAmX190YWJzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWluLWhlaWdodDogMzZweDtcbiAgICBnYXA6IDRweDtcbiAgICBwYWRkaW5nOiA0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICRwcm9ncmFtLWJ1aWxkLWNoaXAtYmc7XG4gIH1cblxuICAvLyBGaXhlZCA4M3gyOCBzZWxlY3Rvci4gZmxleC1zaHJpbmsgaXMgb2ZmIHNvIHRoZSBtb2JpbGUgc2Nyb2xsIGNvbnRhaW5lclxuICAvLyBjYW5ub3Qgc3F1ZWV6ZSBpdCBiZWxvdyB0aGUgc3BlYyB3aWR0aC5cbiAgJl9fdGFiIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDgzcHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDJweCAxMnB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgICAgYm94LXNoYWRvdzogJHNoYWRvdy1jYXJkO1xuICAgIH1cbiAgfVxuXG4gICZfX2NvcHktY29udHJvbHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgfVxuXG4gIC8vIC0tIHN0cmF0ZWd5IGdyb3VwcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fc3RyYXRlZ3ktZ3JvdXAge1xuICAgIG1hcmdpbi1ib3R0b206IDMycHg7XG4gIH1cblxuICAmX19zdHJhdGVneSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICB9XG5cbiAgJl9fc3RyYXRlZ3ktaWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgfVxuXG4gICZfX3N0cmF0ZWd5LWltYWdlIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgfVxuXG4gICZfX3N0cmF0ZWd5LW5hbWUge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgLy8gLS0gdGVjaG5pcXVlIGNhcmRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX190ZWNobmlxdWVzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuICB9XG5cbiAgJl9fdGVjaG5pcXVlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgfVxuXG4gIC8vIEZpeGVkIDYwcHguIFRoZSAzNnB4IEFkZCBFeGVyY2lzZSBidXR0b24gaXMgdGhlIHRhbGxlc3QgY2hpbGQsIHNvIGl0IGNlbnRyZXNcbiAgLy8gaW5zaWRlIHRoZSBoZWlnaHQgd2l0aG91dCBuZWVkaW5nIHZlcnRpY2FsIHBhZGRpbmcuXG4gICZfX3RlY2huaXF1ZS1oZWFkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgfVxuXG4gICZfX3RlY2huaXF1ZS10aXRsZSB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgJl9fYWRkLWV4ZXJjaXNlIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkcHVycGxlLTUwMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICB9XG4gIH1cblxuICAvLyAtLSBrZWJhYiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIE9wZW4vY2xvc2UgaXMgaGFuZGxlZCBlbnRpcmVseSBieSB0aGUgdG9nZ2xlLWNvbnRhaW5lciAvIHRvZ2dsZS1zb3VyY2UgL1xuICAvLyB0b2dnbGUtdGFyZ2V0IGRpcmVjdGl2ZXMgKHNjcmlwdHMvZGlyZWN0aXZlcy9Ub2dnbGUuanMpLCB3aGljaCBzd2FwIHRoZVxuICAvLyBgaGlkZGVuYCBjbGFzcyBvbiB0aGUgcGFuZWwuIFNhbWUgd2lyaW5nIGFzIHRoZSB1cGNvbWluZy1zZXNzaW9uIGtlYmFiLlxuICAmX19tZW51IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxleDogMCAwIGF1dG87XG4gIH1cblxuICAmX19rZWJhYiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzJweDtcbiAgICBtaW4td2lkdGg6IDMycHg7XG4gICAgbWF4LXdpZHRoOiAzMnB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICBtaW4taGVpZ2h0OiAzMnB4O1xuICAgIG1heC1oZWlnaHQ6IDMycHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHJvZ3JhbS1idWlsZC1jaGlwLWJnO1xuICAgICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fbWVudS1saXN0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDEwMCUgKyA0cHgpO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDIwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtaW4td2lkdGg6IDE2OHB4O1xuICAgIHBhZGRpbmc6IDZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6ICRwcm9ncmFtLWJ1aWxkLW1lbnUtc2hhZG93O1xuXG4gICAgLy8gX3Byb2dyYW1fY2FyZHMuc2NzcyByZWxpZXMgb24gdGhlIGdsb2JhbCAuaGlkZGVuIGFuZCBsb3NlcyB0byBsYXRlciBydWxlcztcbiAgICAvLyBkZWNsYXJlIGl0IGxvY2FsbHkgdGhlIHdheSB0aGUgdXBjb21pbmctc2Vzc2lvbiBtZW51IGRvZXMuXG4gICAgJi5oaWRkZW4ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmX19tZW51LWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwcm9ncmFtLWJ1aWxkLWNoaXAtYmc7XG4gICAgfVxuXG4gICAgJi0tZGFuZ2VyIHtcbiAgICAgIGNvbG9yOiAkcHJvZ3JhbS1idWlsZC1kYW5nZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0gZXhlcmNpc2Ugcm93cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX190ZWNobmlxdWUtYm9keSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gIH1cblxuICAvLyBGaXhlZCA2NHB4IHJvd3MuIFRoZSB0YWxsZXN0IGNoaWxkIGlzIHRoZSAzNnB4IGFjdGlvbiBidXR0b24sIHNvIHRoZXJlIGlzIHJvb21cbiAgLy8gdG8gY2VudHJlIGV2ZXJ5dGhpbmcgd2l0aG91dCB2ZXJ0aWNhbCBwYWRkaW5nIC0gYW5kIF9fZXhlcmNpc2UtbmFtZSB0cnVuY2F0ZXNcbiAgLy8gcmF0aGVyIHRoYW4gd3JhcHBpbmcsIHdoaWNoIGlzIHdoYXQgdXNlZCB0byBwdXNoIHRoZXNlIHRvIDgwcHguXG4gICZfX2V4ZXJjaXNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDAgMjBweDtcblxuICAgICYgKyAmIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZpeGVkIHdpZHRoIHdoZXRoZXIgb3Igbm90IGl0IGhvbGRzIGEgYnV0dG9uLCBzbyB0aGUgbGFzdCByb3cgKHdoaWNoIGhhc1xuICAvLyBub3doZXJlIHRvIG1vdmUgZG93biB0bykgc3RpbGwgbGluZXMgaXRzIG5hbWUgdXAgd2l0aCB0aGUgcm93cyBhYm92ZSBpdC5cbiAgJl9fcmVvcmRlciB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAyMHB4O1xuICB9XG5cbiAgJl9fcmVvcmRlci1idXR0b24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fZXhlcmNpc2UtaW5mbyB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgJl9fZXhlcmNpc2UtbmFtZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgfVxuXG4gIC8vIFRoZSB1bmNsYXNzZWQgdmFsdWUgc3BhbnMgaW5oZXJpdCBmcm9tIGhlcmUsIHNvIDUwMCBpcyB0aGUgdmFsdWUgd2VpZ2h0IGFuZFxuICAvLyBfX2F0dHJpYnV0ZS1sYWJlbCBvdmVycmlkZXMgaXQgYmFjayB0byA2MDAgZm9yIHRoZSBcIlNldHM6XCIgLyBcIlJlcHM6XCIgbGFiZWxzLlxuICAmX19leGVyY2lzZS1hdHRyaWJ1dGVzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogNHB4IDhweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcblxuICAgIC8vIEJ1bGxldCBiZXR3ZWVuIGF0dHJpYnV0ZSBwYWlycy4gQWRqYWNlbmN5IGlnbm9yZXMgQW5ndWxhcidzIG5nLWlmIGNvbW1lbnRcbiAgICAvLyBub2Rlcywgc28gdGhpcyBob2xkcyBob3dldmVyIG1hbnkgYXR0cmlidXRlcyB0aGUgZXhlcmNpc2UgaGFwcGVucyB0byBoYXZlLlxuICAgID4gc3BhbiArIHNwYW46OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnXFwyMDIyJztcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgY29sb3I6ICRibGFjay0yMDA7XG4gICAgfVxuICB9XG5cbiAgJl9fYXR0cmlidXRlLWxhYmVsIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuICB9XG5cbiAgJl9fZXhlcmNpc2UtYWN0aW9ucyB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICB9XG5cbiAgLy8gVHJhc2ggYW5kIHBlbmNpbCBhcmUgdGhlIHNoYXJlZCBQTkcgYXNzZXRzIHRoZSBwcm9ncmFtIGNhcmRzIHVzZVxuICAvLyAoaWNvbi1kZWxldGUtdHJhc2gucG5nIC8gbXktc2NoZWR1bGUtZWRpdC5wbmcpIC0gdGhleSBjYXJyeSB0aGVpciBvd24gY29sb3VyLFxuICAvLyBzbyB0aGUgaG92ZXIgc3RhdGUgb25seSB0aW50cyB0aGUgYmFja2dyb3VuZC4gVGhlIHByZXZpZXcgYnV0dG9uIHN0YXlzIGFuXG4gIC8vIGlubGluZSBTVkcsIG1hdGNoaW5nIHRoZSBzdW1tYXJ5IHBhZ2UncyBwbGF5IGNvbnRyb2wuXG4gICZfX2V4ZXJjaXNlLWFjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHJvZ3JhbS1idWlsZC1jaGlwLWJnO1xuICAgIH1cblxuICAgICYtLWRhbmdlcjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmVmM2YyO1xuICAgIH1cbiAgfVxuXG4gIC8vIDI0cHgsIG5vdCB0aGUgMTZweCB0aGUgY29sb3VyZWQgaWNvbnMgdXNlIGVsc2V3aGVyZTogdGhlIC1ncmF5c2NhbGUgZXhwb3J0c1xuICAvLyBjYXJyeSB0cmFuc3BhcmVudCBwYWRkaW5nICh0aGUgZ2x5cGggZmlsbHMgfjU4LTY3JSBvZiBpdHMgY2FudmFzLCB2cyA4OC0xMDAlXG4gIC8vIGZvciB0aGUgY29sb3VyZWQgcGFpciksIHNvIGEgMTZweCBib3ggd291bGQgZHJhdyB0aGVtIG5vdGljZWFibHkgc21hbGxlci5cbiAgLy8gQXQgMjRweCB0aGUgZ2x5cGhzIGxhbmQgb24gfjE2cHggYW5kIH4xNHB4LCBtYXRjaGluZyB0aGUgY29sb3VyZWQgdmVyc2lvbnMuXG4gICZfX2V4ZXJjaXNlLWFjdGlvbi1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcblxuICAgIC8vIFRoZSBwbGF5IGFzc2V0IGlzIGZ1bGwtYmxlZWQgaW4gaXRzIGNhbnZhcywgc28gaXQgbmVlZHMgdGhlIHNtYWxsZXIgYm94IHRvXG4gICAgLy8gbGFuZCBvbiB0aGUgc2FtZSBvcHRpY2FsIHNpemUgYXMgdGhlIHBhZGRlZCB0cmFzaCBhbmQgcGVuY2lsIGFib3ZlLlxuICAgICYtLXBsYXkge1xuICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgfVxuICB9XG5cbiAgJl9fZW1wdHkge1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX2FkZC1zZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkcHVycGxlLTUwMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcbiAgICB9XG4gIH1cblxuICAvLyAtLSBmb290ZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX2Zvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDE2cHg7XG4gIH1cblxuICAmX19idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogMTJweCAyNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJi0tcHJpbWFyeSB7XG4gICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS01MDA7XG4gICAgICBjb2xvcjogI2ZmZmZmZjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHgtcHVycGxlLWhvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkeC1wdXJwbGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgcmVzcG9uZChtb2JpbGUpIHtcbiAgICBwYWRkaW5nOiAyMHB4IDE2cHggNDBweDtcblxuICAgICZfX3R5cGUtdGFicyxcbiAgICAmX190YWJzIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICB9XG5cbiAgICAmX190eXBlLXRhYnMge1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAvLyBgc2FmZWAgZHJvcHMgYmFjayB0byBmbGV4LXN0YXJ0IG9uY2UgdGhlIHN0cmlwIGlzIHdpZGVyIHRoYW4gdGhlIGNvbHVtbixcbiAgICAgIC8vIHNvIHRoZSBvdmVyZmxvdy14IHNjcm9sbCBhYm92ZSBjYW4gc3RpbGwgcmVhY2ggdGhlIGZpcnN0IHRhYiBpbnN0ZWFkIG9mXG4gICAgICAvLyBzdHJhbmRpbmcgaXQgcGFzdCB0aGUgbGVmdCBlZGdlLiBCcm93c2VycyB3aXRob3V0IHRoZSBrZXl3b3JkIGlnbm9yZSB0aGlzXG4gICAgICAvLyBzZWNvbmQgZGVjbGFyYXRpb24gYW5kIGtlZXAgdGhlIHBsYWluIGBjZW50ZXJgIGFib3ZlLlxuICAgICAganVzdGlmeS1jb250ZW50OiBzYWZlIGNlbnRlcjtcbiAgICB9XG5cbiAgICAvLyBLZWVwIHRoZSBwbGFjZWhvbGRlciB1bmRlciB0aGUgc2FtZSBjZW50cmVkIHN0cmlwIGl0IHN0YW5kcyBpbiBmb3IuXG4gICAgJl9fc2tlbGV0b24tdHlwZS10YWJzIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgICZfX3RhYnMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICAmX19oZWFkZXIge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgZ2FwOiAxMnB4O1xuICAgIH1cblxuICAgIC8vIEZ1bGwgd2lkdGgsIGFuZCB0aGUgaGVpZ2h0IGZvbGxvd3MgdGhlIHBpY3R1cmUncyBvd24gcmF0aW8gLSBzYW1lIHJlYXNvbmluZyBhc1xuICAgIC8vIHRoZSBkZXNrdG9wIHRpbGUuIEEgZml4ZWQgMTYwcHggaGVyZSB3YXMgYSAyOjEtdG8tNDoxIGJveCBkZXBlbmRpbmcgb24gdGhlXG4gICAgLy8gcGhvbmUsIHdoaWNoIGNyb3BwZWQgdGhlIHBpY3R1cmUgaGFyZCBpbiB3aGljaGV2ZXIgZGlyZWN0aW9uIGRpZCBub3QgbWF0Y2guXG4gICAgJl9fdGh1bWIge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgIH1cblxuICAgIC8vIFRpdGxlLCBidXR0b24gYW5kIGtlYmFiIGVhY2ggdGFrZSB0aGVpciBvd24gbGluZSBoZXJlLCBzbyB0aGUgcm93IGdyb3dzLlxuICAgICZfX3RlY2huaXF1ZS1oZWFkZXIge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgcGFkZGluZzogMTZweCAyMHB4O1xuICAgIH1cblxuICAgICZfX3RlY2huaXF1ZS10aXRsZSB7XG4gICAgICBmbGV4OiAxIDAgMTAwJTtcbiAgICB9XG5cbiAgICAmX19hZGQtZXhlcmNpc2Uge1xuICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAvLyBUaGUgYWN0aW9ucyB3cmFwIG9udG8gdGhlaXIgb3duIGxpbmUgaGVyZSwgc28gdGhlIHJvdyBoYXMgdG8gZ3JvdyBwYXN0IHRoZVxuICAgIC8vIGZpeGVkIGRlc2t0b3AgaGVpZ2h0IHJhdGhlciB0aGFuIGNsaXBwaW5nIHRoZW0uXG4gICAgJl9fZXhlcmNpc2Uge1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBwYWRkaW5nOiAxNnB4IDIwcHg7XG4gICAgfVxuXG4gICAgJl9fZXhlcmNpc2UtYWN0aW9ucyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgfVxuXG4gICAgJl9fZm9vdGVyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIH1cblxuICAgIC8vIFNrZWxldG9uIGZvbGxvd3MgdGhlIHNhbWUgbW9iaWxlIHJlZmxvdyBhcyB0aGUgbWFya3VwIGl0IHN0YW5kcyBpbiBmb3IuXG4gICAgJl9fc2tlbGV0b24taGVhZGVyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIGdhcDogMTJweDtcbiAgICB9XG5cbiAgICAmX19za2VsZXRvbi10aHVtYiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTgwcHg7XG4gICAgfVxuXG4gICAgJl9fc2tlbGV0b24tdGl0bGUge1xuICAgICAgaGVpZ2h0OiAyOXB4O1xuICAgIH1cblxuICAgICZfX3NrZWxldG9uLXRlY2huaXF1ZS1oZWFkZXIge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgcGFkZGluZzogMTZweCAyMHB4O1xuICAgIH1cblxuICAgICZfX3NrZWxldG9uLXRlY2huaXF1ZS10aXRsZSB7XG4gICAgICBmbGV4OiAxIDAgMTAwJTtcbiAgICB9XG5cbiAgICAmX19za2VsZXRvbi1hZGQtZXhlcmNpc2Uge1xuICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAmX19za2VsZXRvbi1leGVyY2lzZSB7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIGdhcDogMTJweDtcbiAgICAgIHBhZGRpbmc6IDE2cHggMjBweDtcbiAgICB9XG5cbiAgICAmX19za2VsZXRvbi1leGVyY2lzZS1hY3Rpb25zIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICB9XG5cbiAgICAmX19za2VsZXRvbi1mb290ZXIge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgJl9fc2tlbGV0b24tYnV0dG9uIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuXG4gICAgICAmLS1wcmltYXJ5IHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQXQgdGhlaXIgZGVza3RvcCBzaXplICgxNXB4IHR5cGUgcGx1cyAxNnB4IG9mIHBhZGRpbmcgYSBzaWRlKSB0aGUgdGhyZWUgdHlwZVxuICAvLyB0YWJzIHRvdGFsIH40MDlweCwgd2lkZXIgdGhhbiB0aGUgY29udGVudCBjb2x1bW4gYmVsb3cgfjQ0MHB4LCBzbyB0aGV5XG4gIC8vIHdyYXBwZWQgb250byBhIHNlY29uZCBsaW5lLiAxM3B4IHR5cGUgd2l0aCA4cHggb2YgcGFkZGluZyBtZWFzdXJlcyB+MzIwcHggaW5cbiAgLy8gSGVsdmV0aWNhIE5ldWUgQm9sZCAoXCJTZWxmLUNhcmVcIiA3NCArIFwiUHJhY3RpdGlvbmVyIExpZ2h0XCIgMTI0ICtcbiAgLy8gXCJQcmFjdGl0aW9uZXIgUHJvXCIgMTE0LCBwbHVzIHR3byA0cHggZ2FwcyksIHdoaWNoIGNsZWFycyB0aGUgMzQzcHggY29sdW1uIG9mXG4gIC8vIGEgMzc1cHggcGhvbmUgd2l0aCByb29tIHRvIHNwYXJlIGZvciBhIHdpZGVyIGZhbGxiYWNrIGZhY2UuIGZsZXgtd3JhcCBpcyBvZmZcbiAgLy8gc28gYW55dGhpbmcgbmFycm93ZXIgc2Nyb2xscyB0aGUgc3RyaXAgKG92ZXJmbG93LXgsIHNldCBpbiB0aGUgbW9iaWxlIHRpZXJcbiAgLy8gYWJvdmUpIHJhdGhlciB0aGFuIHNpbGVudGx5IHN0YWNraW5nIGl0IGFnYWluLlxuICBAaW5jbHVkZSByZXNwb25kKHBob25lKSB7XG4gICAgJl9fdHlwZS10YWIge1xuICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICBwYWRkaW5nOiAxMnB4IDhweDtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICB9XG5cbiAgICAmX190eXBlLXRhYnMge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBTdGVwIDIgb2YgdGhlIFNjaGVkdWxlIFByb2dyYW0gZmxvdyAoLyMvc2NoZWR1bGUvOmF0aGxldGVJZC86YXRobGV0ZVByb2dyYW1JZCxcbi8vIHZtLnZpZXcgPT09ICd3ZWVrJyk6IHBpY2sgYSBzZXNzaW9uLCBjbGljayBpdCBvbnRvIGEgd2Vla2RheS5cbi8vIFNoYXJlcyBpdHMgdG9rZW4gdmFsdWVzIHdpdGggX3Byb2dyYW1fc3VtbWFyeS5zY3NzLlxuXG4vLyBTZXNzaW9ucyBiZWxvbmdpbmcgdG8gYSBkaWZmZXJlbnQgcHJvZ3JhbSwgbGlzdGVkIHVuZGVyIFwiQWxzbyBzY2hlZHVsZWRcIi5cbiRzY2hlZHVsZS1idWlsZC1tZXRhLXNlcDogI2M0YzRjODtcblxuLy8gcnItY2FsZW5kYXItaWNvbi5zdmcgZnJvbSB0aGUgZGVzaWduIHN5c3RlbSAoYXBwIHJlcG8gc3JjL2Fzc2V0cy9zdmcpLCBpbmxpbmVkIHNvXG4vLyBpdCBkb2VzIG5vdCBkZXBlbmQgb24gdGhlIHN2Zy9mb250IGZpbGUtbG9hZGVyIG9yZGVyaW5nIGluIHdlYnBhY2suY29uZmlnLlxuJHNjaGVkdWxlLWJ1aWxkLWNhbGVuZGFyLWljb246IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiB3aWR0aCUzRCUyMjE2JTIyIGhlaWdodCUzRCUyMjE2JTIyIHZpZXdCb3glM0QlMjIwIDAgMTYgMTYlMjIgZmlsbCUzRCUyMm5vbmUlMjIlM0UlM0NwYXRoIGQlM0QlMjJNMTIuNjY2NyAxLjMzMzMzSDEyVjAuNjY2NjY3QzEyIDAuNDg5ODU2IDExLjkyOTggMC4zMjAyODYgMTEuODA0NyAwLjE5NTI2MkMxMS42Nzk3IDAuMDcwMjM3OSAxMS41MTAxIDAgMTEuMzMzMyAwQzExLjE1NjUgMCAxMC45ODcgMC4wNzAyMzc5IDEwLjg2MTkgMC4xOTUyNjJDMTAuNzM2OSAwLjMyMDI4NiAxMC42NjY3IDAuNDg5ODU2IDEwLjY2NjcgMC42NjY2NjdWMS4zMzMzM0g1LjMzMzMzVjAuNjY2NjY3QzUuMzMzMzMgMC40ODk4NTYgNS4yNjMxIDAuMzIwMjg2IDUuMTM4MDcgMC4xOTUyNjJDNS4wMTMwNSAwLjA3MDIzNzkgNC44NDM0OCAwIDQuNjY2NjcgMEM0LjQ4OTg2IDAgNC4zMjAyOSAwLjA3MDIzNzkgNC4xOTUyNiAwLjE5NTI2MkM0LjA3MDI0IDAuMzIwMjg2IDQgMC40ODk4NTYgNCAwLjY2NjY2N1YxLjMzMzMzSDMuMzMzMzNDMi40NDk2IDEuMzM0MzkgMS42MDIzNyAxLjY4NTkyIDAuOTc3NDggMi4zMTA4MUMwLjM1MjU4OCAyLjkzNTcxIDAuMDAxMDU4NTcgMy43ODI5NCAwIDQuNjY2NjdMMCAxMi42NjY3QzAuMDAxMDU4NTcgMTMuNTUwNCAwLjM1MjU4OCAxNC4zOTc2IDAuOTc3NDggMTUuMDIyNUMxLjYwMjM3IDE1LjY0NzQgMi40NDk2IDE1Ljk5ODkgMy4zMzMzMyAxNkgxMi42NjY3QzEzLjU1MDQgMTUuOTk4OSAxNC4zOTc2IDE1LjY0NzQgMTUuMDIyNSAxNS4wMjI1QzE1LjY0NzQgMTQuMzk3NiAxNS45OTg5IDEzLjU1MDQgMTYgMTIuNjY2N1Y0LjY2NjY3QzE1Ljk5ODkgMy43ODI5NCAxNS42NDc0IDIuOTM1NzEgMTUuMDIyNSAyLjMxMDgxQzE0LjM5NzYgMS42ODU5MiAxMy41NTA0IDEuMzM0MzkgMTIuNjY2NyAxLjMzMzMzWk0xLjMzMzMzIDQuNjY2NjdDMS4zMzMzMyA0LjEzNjIzIDEuNTQ0MDUgMy42Mjc1MyAxLjkxOTEyIDMuMjUyNDVDMi4yOTQxOSAyLjg3NzM4IDIuODAyOSAyLjY2NjY3IDMuMzMzMzMgMi42NjY2N0gxMi42NjY3QzEzLjE5NzEgMi42NjY2NyAxMy43MDU4IDIuODc3MzggMTQuMDgwOSAzLjI1MjQ1QzE0LjQ1NiAzLjYyNzUzIDE0LjY2NjcgNC4xMzYyMyAxNC42NjY3IDQuNjY2NjdWNS4zMzMzM0gxLjMzMzMzVjQuNjY2NjdaTTEyLjY2NjcgMTQuNjY2N0gzLjMzMzMzQzIuODAyOSAxNC42NjY3IDIuMjk0MTkgMTQuNDU2IDEuOTE5MTIgMTQuMDgwOUMxLjU0NDA1IDEzLjcwNTggMS4zMzMzMyAxMy4xOTcxIDEuMzMzMzMgMTIuNjY2N1Y2LjY2NjY3SDE0LjY2NjdWMTIuNjY2N0MxNC42NjY3IDEzLjE5NzEgMTQuNDU2IDEzLjcwNTggMTQuMDgwOSAxNC4wODA5QzEzLjcwNTggMTQuNDU2IDEzLjE5NzEgMTQuNjY2NyAxMi42NjY3IDE0LjY2NjdaJTIyIGZpbGwlM0QlMjIlMjM2RDZENkQlMjIlMkYlM0UlM0NwYXRoIGQlM0QlMjJNOCAxMUM4LjU1MjI4IDExIDkgMTAuNTUyMyA5IDEwQzkgOS40NDc3MiA4LjU1MjI4IDkgOCA5QzcuNDQ3NzIgOSA3IDkuNDQ3NzIgNyAxMEM3IDEwLjU1MjMgNy40NDc3MiAxMSA4IDExWiUyMiBmaWxsJTNEJTIyJTIzNkQ2RDZEJTIyJTJGJTNFJTNDcGF0aCBkJTNEJTIyTTQuNjY2NSAxMUM1LjIxODc5IDExIDUuNjY2NSAxMC41NTIzIDUuNjY2NSAxMEM1LjY2NjUgOS40NDc3MiA1LjIxODc5IDkgNC42NjY1IDlDNC4xMTQyMiA5IDMuNjY2NSA5LjQ0NzcyIDMuNjY2NSAxMEMzLjY2NjUgMTAuNTUyMyA0LjExNDIyIDExIDQuNjY2NSAxMVolMjIgZmlsbCUzRCUyMiUyMzZENkQ2RCUyMiUyRiUzRSUzQ3BhdGggZCUzRCUyMk0xMS4zMzM1IDExQzExLjg4NTggMTEgMTIuMzMzNSAxMC41NTIzIDEyLjMzMzUgMTBDMTIuMzMzNSA5LjQ0NzcyIDExLjg4NTggOSAxMS4zMzM1IDlDMTAuNzgxMiA5IDEwLjMzMzUgOS40NDc3MiAxMC4zMzM1IDEwQzEwLjMzMzUgMTAuNTUyMyAxMC43ODEyIDExIDExLjMzMzUgMTFaJTIyIGZpbGwlM0QlMjIlMjM2RDZENkQlMjIlMkYlM0UlM0MlMkZzdmclM0VcIik7XG4kc2NoZWR1bGUtYnVpbGQtY2FsZW5kYXItaWNvbi1tdXRlZDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnIHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyIHdpZHRoJTNEJTIyMTYlMjIgaGVpZ2h0JTNEJTIyMTYlMjIgdmlld0JveCUzRCUyMjAgMCAxNiAxNiUyMiBmaWxsJTNEJTIybm9uZSUyMiUzRSUzQ3BhdGggZCUzRCUyMk0xMi42NjY3IDEuMzMzMzNIMTJWMC42NjY2NjdDMTIgMC40ODk4NTYgMTEuOTI5OCAwLjMyMDI4NiAxMS44MDQ3IDAuMTk1MjYyQzExLjY3OTcgMC4wNzAyMzc5IDExLjUxMDEgMCAxMS4zMzMzIDBDMTEuMTU2NSAwIDEwLjk4NyAwLjA3MDIzNzkgMTAuODYxOSAwLjE5NTI2MkMxMC43MzY5IDAuMzIwMjg2IDEwLjY2NjcgMC40ODk4NTYgMTAuNjY2NyAwLjY2NjY2N1YxLjMzMzMzSDUuMzMzMzNWMC42NjY2NjdDNS4zMzMzMyAwLjQ4OTg1NiA1LjI2MzEgMC4zMjAyODYgNS4xMzgwNyAwLjE5NTI2MkM1LjAxMzA1IDAuMDcwMjM3OSA0Ljg0MzQ4IDAgNC42NjY2NyAwQzQuNDg5ODYgMCA0LjMyMDI5IDAuMDcwMjM3OSA0LjE5NTI2IDAuMTk1MjYyQzQuMDcwMjQgMC4zMjAyODYgNCAwLjQ4OTg1NiA0IDAuNjY2NjY3VjEuMzMzMzNIMy4zMzMzM0MyLjQ0OTYgMS4zMzQzOSAxLjYwMjM3IDEuNjg1OTIgMC45Nzc0OCAyLjMxMDgxQzAuMzUyNTg4IDIuOTM1NzEgMC4wMDEwNTg1NyAzLjc4Mjk0IDAgNC42NjY2N0wwIDEyLjY2NjdDMC4wMDEwNTg1NyAxMy41NTA0IDAuMzUyNTg4IDE0LjM5NzYgMC45Nzc0OCAxNS4wMjI1QzEuNjAyMzcgMTUuNjQ3NCAyLjQ0OTYgMTUuOTk4OSAzLjMzMzMzIDE2SDEyLjY2NjdDMTMuNTUwNCAxNS45OTg5IDE0LjM5NzYgMTUuNjQ3NCAxNS4wMjI1IDE1LjAyMjVDMTUuNjQ3NCAxNC4zOTc2IDE1Ljk5ODkgMTMuNTUwNCAxNiAxMi42NjY3VjQuNjY2NjdDMTUuOTk4OSAzLjc4Mjk0IDE1LjY0NzQgMi45MzU3MSAxNS4wMjI1IDIuMzEwODFDMTQuMzk3NiAxLjY4NTkyIDEzLjU1MDQgMS4zMzQzOSAxMi42NjY3IDEuMzMzMzNaTTEuMzMzMzMgNC42NjY2N0MxLjMzMzMzIDQuMTM2MjMgMS41NDQwNSAzLjYyNzUzIDEuOTE5MTIgMy4yNTI0NUMyLjI5NDE5IDIuODc3MzggMi44MDI5IDIuNjY2NjcgMy4zMzMzMyAyLjY2NjY3SDEyLjY2NjdDMTMuMTk3MSAyLjY2NjY3IDEzLjcwNTggMi44NzczOCAxNC4wODA5IDMuMjUyNDVDMTQuNDU2IDMuNjI3NTMgMTQuNjY2NyA0LjEzNjIzIDE0LjY2NjcgNC42NjY2N1Y1LjMzMzMzSDEuMzMzMzNWNC42NjY2N1pNMTIuNjY2NyAxNC42NjY3SDMuMzMzMzNDMi44MDI5IDE0LjY2NjcgMi4yOTQxOSAxNC40NTYgMS45MTkxMiAxNC4wODA5QzEuNTQ0MDUgMTMuNzA1OCAxLjMzMzMzIDEzLjE5NzEgMS4zMzMzMyAxMi42NjY3VjYuNjY2NjdIMTQuNjY2N1YxMi42NjY3QzE0LjY2NjcgMTMuMTk3MSAxNC40NTYgMTMuNzA1OCAxNC4wODA5IDE0LjA4MDlDMTMuNzA1OCAxNC40NTYgMTMuMTk3MSAxNC42NjY3IDEyLjY2NjcgMTQuNjY2N1olMjIgZmlsbCUzRCUyMiUyM0IwQjBCMCUyMiUyRiUzRSUzQ3BhdGggZCUzRCUyMk04IDExQzguNTUyMjggMTEgOSAxMC41NTIzIDkgMTBDOSA5LjQ0NzcyIDguNTUyMjggOSA4IDlDNy40NDc3MiA5IDcgOS40NDc3MiA3IDEwQzcgMTAuNTUyMyA3LjQ0NzcyIDExIDggMTFaJTIyIGZpbGwlM0QlMjIlMjNCMEIwQjAlMjIlMkYlM0UlM0NwYXRoIGQlM0QlMjJNNC42NjY1IDExQzUuMjE4NzkgMTEgNS42NjY1IDEwLjU1MjMgNS42NjY1IDEwQzUuNjY2NSA5LjQ0NzcyIDUuMjE4NzkgOSA0LjY2NjUgOUM0LjExNDIyIDkgMy42NjY1IDkuNDQ3NzIgMy42NjY1IDEwQzMuNjY2NSAxMC41NTIzIDQuMTE0MjIgMTEgNC42NjY1IDExWiUyMiBmaWxsJTNEJTIyJTIzQjBCMEIwJTIyJTJGJTNFJTNDcGF0aCBkJTNEJTIyTTExLjMzMzUgMTFDMTEuODg1OCAxMSAxMi4zMzM1IDEwLjU1MjMgMTIuMzMzNSAxMEMxMi4zMzM1IDkuNDQ3NzIgMTEuODg1OCA5IDExLjMzMzUgOUMxMC43ODEyIDkgMTAuMzMzNSA5LjQ0NzcyIDEwLjMzMzUgMTBDMTAuMzMzNSAxMC41NTIzIDEwLjc4MTIgMTEgMTEuMzMzNSAxMVolMjIgZmlsbCUzRCUyMiUyM0IwQjBCMCUyMiUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcblxuLy8gQ29tcG91bmQgc2VsZWN0b3Igb24gcHVycG9zZTogX3Bhc3Nwb3J0LnNjc3MgKG1hcmstYWRkaXRpb25zIGJ1bmRsZSwgd2hpY2ggbG9hZHNcbi8vIGFmdGVyIHRoaXMgc2hlZXQpIHJlZGVmaW5lcyBgLnZpZXctZmxleCB7IGZsZXg6IDAgMCBhdXRvIH1gLCB3aGljaCBjb2xsYXBzZXMgdGhlXG4vLyBwYWdlIGFuZCBmbG9hdHMgdGhlIHNpdGUgZm9vdGVyIHVwLiBNYXRjaGluZyB0d28gY2xhc3NlcyBvdXQtc3BlY2lmaWVzIGl0LlxuLnZpZXctZmxleC5wcm9ncmFtLXNjaGVkdWxlLXBhZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleDogMSAwIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgLy8gc3RyZXRjaCwgbm90IGB3aWR0aDogMTAwJWA6IF9hdGhsZXRlX3NpZGViYXIuc2NzcyBpbmRlbnRzIHNpYmxpbmdzIG9mXG4gIC8vIC5tZW51LWNvbnRlbnQgd2l0aCBtYXJnaW4tbGVmdCwgYW5kIGEgdmlld3BvcnQtd2lkZSAxMDAlIGJveCB0aGVuIG92ZXJmbG93c1xuICAvLyB0byB0aGUgcmlnaHQgYW5kIGNlbnRyZXMgdGhlIGNvbHVtbiBhZ2FpbnN0IHRoZSB2aWV3cG9ydCBpbnN0ZWFkIG9mIHRoZVxuICAvLyByYWlsLWFkamFjZW50IGNvbnRlbnQgY29sdW1uIChhbmQgdGhlIHNpdGUgZm9vdGVyKS5cbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgYmFja2dyb3VuZDogJHBhZ2UtYmc7XG59XG5cbi5wcm9ncmFtLXNjaGVkdWxlIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogOTYwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAzMnB4IDI0cHggNDhweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgb3ZlcmZsb3cteTogYXV0bztcblxuICAvLyBCb3RoIHN0ZXBzLiBUaGUgY29udGVudCBib3ggaXMgcGlubmVkIHRvIGV4YWN0bHkgNjQwICg2ODggLSAyIHggMjRweFxuICAvLyBwYWRkaW5nKSBhbmQgdGhlIHdob2xlIHN0YWNrIGNlbnRlcnMgdmlhIHRoZSBtYXJnaW46IDAgYXV0byBhYm92ZS5cbiAgJi0tbmFycm93IHtcbiAgICBtYXgtd2lkdGg6IDY4OHB4O1xuICB9XG5cbiAgLy8gTmV1dHJhbGl6ZSB0aGUgZ2xvYmFsIGJ1dHRvbiB7IG1pbi13aWR0aDogMTEwcHg7IHVwcGVyY2FzZTsgbG9jay1oZWlnaHQgfSBydWxlcy5cbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgfVxuXG4gIGJ1dHRvbiArIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICAmX190aXRsZSB7XG4gICAgbWFyZ2luOiAwIDAgMjRweDtcbiAgICBmb250LWZhbWlseTogXCJOdWRpc3RhXCIsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gIH1cblxuICAvLyAtLSBzdGFydCBkYXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX2ZpZWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICB9XG5cbiAgJl9fbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX2RhdGUtcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogMTZweDtcbiAgfVxuXG4gIC8vIGZ1c2lvbi1jYWxlbmRhciByZW5kZXJzIC5kYXRlLWlucHV0ICh0ZXh0IGlucHV0ICsgLmlucHV0LWljb24gYnV0dG9uKSBwbHVzIGFuXG4gIC8vIGFic29sdXRlbHktcG9zaXRpb25lZCBwb3B1cC4gVGhlIGRlZmF1bHQgc2tpbiBzcGxpdHMgdGhlbSBpbnRvIGFuIGlucHV0IHdpdGhcbiAgLy8gYSBmaWxsZWQgaWNvbiBidXR0b24gZ2x1ZWQgdG8gaXRzIHJpZ2h0OyBoZXJlIHRoZXkgYmVjb21lIG9uZSAzMjB4NDAgYm94IHdpdGhcbiAgLy8gdGhlIGNhbGVuZGFyIGdseXBoIHNpdHRpbmcgaW5zaWRlIG9uIHRoZSByaWdodC5cbiAgJl9fZGF0ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmxleDogMCAwIGF1dG87XG5cbiAgICAuZGF0ZS1pbnB1dCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgd2lkdGg6IDMyMHB4O1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgbWluLWhlaWdodDogNDBweDtcbiAgICAgIG1heC1oZWlnaHQ6IDQwcHg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTMwMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgfVxuXG4gICAgLmRhdGUtaW5wdXQgaW5wdXQge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAzOHB4O1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICBwYWRkaW5nOiAwIDQ0cHggMCAxNHB4O1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBmb250LWZhbWlseTogXCJOdWRpc3RhXCIsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICBsaW5lLWhlaWdodDogMzhweDtcbiAgICAgIHRleHQtaW5kZW50OiAwO1xuICAgICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgICBvdXRsaW5lOiAwO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC8vIFRoZSBzaGFyZWQgZnVzaW9uLWNhbGVuZGFyIHRlbXBsYXRlIGhhcmRjb2RlcyBhbiBpY29tb29uIDxpIGNsYXNzPVwiaWNvbi1jYWxlbmRhclwiPi5cbiAgICAvLyBSYXRoZXIgdGhhbiBmb3JrIHRoYXQgdGVtcGxhdGUgKGl0IGlzIHVzZWQgYWNyb3NzIHRoZSB3aG9sZSBhcHApLCBoaWRlIHRoZSBnbHlwaFxuICAgIC8vIGFuZCBwYWludCByci1jYWxlbmRhci1pY29uLnN2ZyBmcm9tIHRoZSBkZXNpZ24gc3lzdGVtIGFzIHRoZSBidXR0b24gYmFja2dyb3VuZC5cbiAgICAuZGF0ZS1pbnB1dCAuaW5wdXQtaWNvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB3aWR0aDogNDBweDtcbiAgICAgIG1pbi13aWR0aDogNDBweDtcbiAgICAgIG1heC13aWR0aDogNDBweDtcbiAgICAgIGhlaWdodDogMzhweDtcbiAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogJHNjaGVkdWxlLWJ1aWxkLWNhbGVuZGFyLWljb247XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiAxNnB4IDE2cHg7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgIGkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuZGF0ZS1kaXNhYmxlZCAuZGF0ZS1pbnB1dCB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcGFnZS1iZztcblxuICAgICAgLmlucHV0LWljb24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkc2NoZWR1bGUtYnVpbGQtY2FsZW5kYXItaWNvbi1tdXRlZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmX19lbmRzLXNsb3Qge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWluLWhlaWdodDogMTRweDtcbiAgfVxuXG4gICZfX2VuZHMge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgLy8gaG9tZS1za2VsZXRvbi1ibG9jayBzZXRzIGRpc3BsYXk6IGJsb2NrLCB3aGljaCBmb3JjZXMgYSBzZWNvbmQgbGluZSBpbiB0aGVcbiAgLy8gZGF0ZS1yb3cgZmxleCBjb2x1bW4gd2hlbiB0aGUgbGFiZWwgYW5kIHNrZWxldG9uIGJyaWVmbHkgb3ZlcmxhcC5cbiAgJl9fc2tlbGV0b24tZW5kcy5ob21lLXNrZWxldG9uLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDE0OHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIH1cblxuICAmX19za2VsZXRvbi1tZXRhLWRhdGUge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiA4OHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIH1cblxuICAvLyAtLSByZWNvbW1lbmRlZCBjYWxsb3V0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFNhbWUgNjQwcHggY29sdW1uIGFzIHRoZSB3ZWVrIGdyaWQgYmVsb3cgaXQuXG4gICZfX2NhbGxvdXQge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDY0MHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xuICAgIHBhZGRpbmc6IDE4cHggMjBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkcHVycGxlLTIwMDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogJHB1cnBsZS01MDtcbiAgfVxuXG4gICZfX2NhbGxvdXQtdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG5cbiAgICBzdHJvbmcge1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB9XG4gIH1cblxuICAmX19jYWxsb3V0LXRleHQge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLWNhbGxvdXQge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDY0MHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xuICAgIHBhZGRpbmc6IDE4cHggMjBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkcHVycGxlLTIwMDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZDogJHB1cnBsZS01MDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLWNhbGxvdXQtdGl0bGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiA1OCU7XG4gICAgbWF4LXdpZHRoOiAzNjBweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgfVxuXG4gIC8vIE1pcnJvcnMgX19jYWxsb3V0LXRleHQ6IDE0cHggdHlwZSBhdCBsaW5lLWhlaWdodCAxLjUgKDIxcHggcGVyIGxpbmUpLiBUaGVcbiAgLy8gZXhwbGFpbmVyIGNvcHkgd3JhcHMgdG8gdHdvIGxpbmVzIGluIHRoZSA2NDBweCBjb2x1bW4uXG4gICZfX3NrZWxldG9uLWNhbGxvdXQtYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMDtcbiAgfVxuXG4gICZfX3NrZWxldG9uLWNhbGxvdXQtdGV4dCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAyMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcblxuICAgICYtLXNob3J0IHtcbiAgICAgIHdpZHRoOiA3MiU7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0gc2Vzc2lvbiBjaGlwcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19wcm9tcHQge1xuICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG4gICAgZm9udC1mYW1pbHk6IFwiTnVkaXN0YVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGNvbG9yOiAkcHVycGxlLTkwMDtcbiAgfVxuXG4gICZfX3Nlc3Npb25zIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICB9XG5cbiAgJl9fc2Vzc2lvbi1ncm91cC1sYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cblxuICAmX19jaGlwcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDEycHg7XG4gIH1cblxuICAmX19jaGlwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDk3cHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdy1jYXJkO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcHVycGxlLTMwMDtcbiAgICB9XG5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcHVycGxlLTcwMDtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNzAwO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNzAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIC0tIHdlZWsgZ3JpZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fZ3JpZC1zY3JvbGwge1xuICAgIG1hcmdpbjogMTZweCAwIDMycHg7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgfVxuXG4gIC8vIEZpeGVkIDY0MCB4IDE2OCBib3guIDY0MCAvIDcgPSB+OTFweCBwZXIgd2Vla2RheSBjb2x1bW4sIHdoaWNoIGlzIHdoeSB0aGVcbiAgLy8gcGxhY2VkL2FkZCBidWJibGVzIGJlbG93IHJ1biBhdCAxMnB4IHdpdGggdGlnaHQgcGFkZGluZyBhbmQgZWxsaXBzaXplLlxuICAmX19ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDcsIG1pbm1heCgwLCAxZnIpKTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiA2NDBweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxNjhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLy8gT25lIHdlZWtkYXkgY29sdW1uOiBpdHMgaGVhZCBzdGFja2VkIG92ZXIgaXRzIGNlbGwuIENhcnJpZXMgdGhlIGNvbHVtblxuICAvLyBzZXBhcmF0b3IsIHdoaWNoIHRoZSBjZWxscyB1c2VkIHRvIGRyYXcgZm9yIHRoZW1zZWx2ZXMuXG4gICZfX2dyaWQtZGF5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWluLXdpZHRoOiAwO1xuXG4gICAgJiArICYge1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIH1cbiAgfVxuXG4gICZfX2dyaWQtaGVhZCB7XG4gICAgcGFkZGluZzogMTBweCA4cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgICBiYWNrZ3JvdW5kOiAkYmxhY2stMzAwO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcblxuICAgIC8vIE9ubHkgcmVhY2hhYmxlIGZyb20gdGhlIHN0ZXAgMyBtb250aCBjYWxlbmRhciwgd2hpY2ggc3RpbGwgcmVuZGVycyBpdHNcbiAgICAvLyBzZXZlbiBoZWFkcyBhcyBmbGF0IHNpYmxpbmdzLiBJbiB0aGUgd2VlayBncmlkIGVhY2ggaGVhZCBpcyBhbG9uZSBpbnNpZGVcbiAgICAvLyBhIF9fZ3JpZC1kYXksIHNvIHRoaXMgbmV2ZXIgbWF0Y2hlcyB0aGVyZS5cbiAgICAmICsgJiB7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgfVxuICB9XG5cbiAgLy8gT25seSB0aGUgd2VlayBncmlkJ3Mgb3duIGhlYWRlciAodGhlIHN0ZXAgMyBtb250aCBjYWxlbmRhciByZXVzZXNcbiAgLy8gX19ncmlkLWhlYWQgYW5kIGtlZXBzIGl0cyBuYXR1cmFsIGhlaWdodCkuXG4gICZfX2dyaWQtZGF5ID4gJl9fZ3JpZC1oZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleDogMCAwIDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHBhZGRpbmc6IDAgNnB4O1xuICB9XG5cbiAgJl9fZ3JpZC1jZWxsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA2cHg7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBwYWRkaW5nOiA2cHggNXB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gIH1cblxuICAmX19wbGFjZWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBnYXA6IDRweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgcGFkZGluZzogMCA2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkcHVycGxlLTkwMDtcblxuICAgIC8vIE5hcnJvdyBjb2x1bW5zOiBjbGlwIHRoZSBsYWJlbCByYXRoZXIgdGhhbiBsZXQgaXQgcHVzaCB0aGUgYnViYmxlIHdpZGVyLlxuICAgID4gc3BhbiB7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIH1cbiAgfVxuXG4gICZfX3BsYWNlZC1yZW1vdmUge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICRwdXJwbGUtOTAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRibGFjay04MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fYWRkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBnYXA6IDRweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgcGFkZGluZzogMCA2cHg7XG4gICAgYm9yZGVyOiAxcHggZGFzaGVkICRwdXJwbGUtMzAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgPiBzcGFuOmxhc3QtY2hpbGQge1xuICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHB1cnBsZS01MDA7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTUwO1xuICAgIH1cbiAgfVxuXG4gICZfX2FkZC1wbHVzIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gIH1cblxuICAvLyAtLSBzdGVwIDM6IHJlYWQtb25seSBzdGFydC9lbmQgbGluZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19tZXRhLWxpbmUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gICZfX21ldGEtZGF0ZSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgfVxuXG4gICZfX21ldGEtc2VwIHtcbiAgICBjb2xvcjogJHNjaGVkdWxlLWJ1aWxkLW1ldGEtc2VwO1xuICB9XG5cbiAgJl9fbWV0YS1lbmRzIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAmX19lZGl0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiA0cHg7XG4gICAgbWFyZ2luOiAtNHB4IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkeC1wdXJwbGUtaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0gc3RlcCAzOiByZXZpZXcgaGVhZGluZ3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fc2VjdGlvbi10aXRsZSB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgZm9udC1mYW1pbHk6IFwiTnVkaXN0YVwiLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgJl9fc2VjdGlvbi1oZWxwIHtcbiAgICBtYXJnaW46IDAgMCAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAvLyAtLSBzdGVwIDM6IGNhbGVuZGFyICsgZGF5IHBhbmVsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19yZXZpZXcge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzNzBweCAyNDZweDtcbiAgICBnYXA6IDI0cHg7XG4gICAgbWFyZ2luOiAxNnB4IDAgMzJweDtcbiAgfVxuXG4gICZfX2NhbGVuZGFyLXNjcm9sbCB7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gIH1cblxuICAvLyAzNzBweCB3aWRlOiAzNzAgLyA3ID0gfjUzcHggcGVyIHdlZWtkYXkgY29sdW1uLiBUaGF0IGlzIHVuZGVyIHRoZSA3MnB4IHRoZVxuICAvLyBjZWxscyB1c2VkIHRvIGRlbWFuZCwgc28gdGhlIGRhdGUgdGV4dCBkcm9wcyB0byAxMnB4LCB0aGUgbW9udGggYWJicmV2aWF0aW9uXG4gIC8vIG1vdmVzIHRvIGl0cyBvd24gbGluZSwgYW5kIHRoZSBwYWRkaW5nIHRpZ2h0ZW5zIHRvIGZpdC5cbiAgJl9fY2FsZW5kYXIge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNywgbWlubWF4KDAsIDFmcikpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDM3MHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICAvLyAxM3B4IHRhbGwgZXhhY3RseSwgYm9yZGVyLWJvdHRvbSBpbmNsdWRlZC4gVGhlIHdlZWtkYXkgc3RyaXAgY2FycmllcyBub1xuICAvLyBjb2x1bW4gc2VwYXJhdG9yczsgdGhlIGRhdGUgY2VsbHMgYmVsb3cgaXQgc3RpbGwgZG8uXG4gICZfX2NhbGVuZGFyICZfX2dyaWQtaGVhZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiAxM3B4O1xuICAgIHBhZGRpbmc6IDAgMnB4O1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgfVxuXG4gICZfX2NhbGVuZGFyICZfX2dyaWQtaGVhZCArICZfX2dyaWQtaGVhZCB7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG4gIH1cblxuICAmX19jYWxlbmRhci1jZWxsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogNnB4O1xuICAgIG1pbi1oZWlnaHQ6IDU4cHg7XG4gICAgcGFkZGluZzogNnB4IDRweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgLy8gZmlyc3QgY29sdW1uIG9mIGV2ZXJ5IGJvZHkgcm93IC0gdGhlIDcgaGVhZCBjZWxscyBvY2N1cHkgY2hpbGRyZW4gMS4uNyxcbiAgICAvLyBzbyBib2R5IHJvd3Mgc3RhcnQgYXQgOCwgMTUsIDIyLCAuLi5cbiAgICAmOm50aC1jaGlsZCg3biArIDEpIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS01MDtcbiAgICB9XG5cbiAgICAmLS1vdXRzaWRlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRwYWdlLWJnO1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHBhZ2UtYmc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fY2FsZW5kYXItZGF5IHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAmX19jYWxlbmRhci1jZWxsLS1vdXRzaWRlICZfX2NhbGVuZGFyLWRheSB7XG4gICAgY29sb3I6ICNiMGIwYjA7XG4gIH1cblxuICAvLyBPd24gbGluZSwgc28gdGhlIG1vbnRoIGFiYnJldmlhdGlvbiBjYW5ub3Qgd2lkZW4gdGhlIGNlbGwuXG4gICZfX2NhbGVuZGFyLW1vbnRoIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gIC8vIFRoZSBzZWxlY3RlZCBkYXkgY2FycmllcyBhIHB1cnBsZSBydWxlIGFsb25nIHRoZSBib3R0b20gb2YgaXRzIGNlbGwuXG4gICZfX2NhbGVuZGFyLWNlbGwtLXNlbGVjdGVkIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIC0ycHggMCAwICRwdXJwbGUtNTAwO1xuICB9XG5cbiAgJl9fZG90cyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDRweDtcbiAgICBtaW4taGVpZ2h0OiA2cHg7XG4gIH1cblxuICAmX19kb3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDZweDtcbiAgICBoZWlnaHQ6IDZweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogJHB1cnBsZS01MDA7XG5cbiAgICAmLS1vdGhlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYmxhY2stNDAwO1xuICAgIH1cblxuICAgIC8vIGNvbXBsZXRlZCBzZXNzaW9ucyByZW5kZXIgaG9sbG93LCBtYXRjaGluZyB0aGUgb2xkIGZhLWNpcmNsZS1vIGlkaW9tXG4gICAgJi0tZG9uZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkcHVycGxlLTUwMDtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgICYtLW90aGVyI3smfS0tZG9uZSB7XG4gICAgICBib3JkZXItY29sb3I6ICRibGFjay00MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fZGF5LXBhbmVsIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAmX19kYXktcGFuZWwtZGF0ZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gIH1cblxuICAvLyBTZXBhcmF0ZXMgdGhpcyBkYXkncyBwcm9ncmFtIHNlc3Npb25zIGZyb20gc2Vzc2lvbnMgb24gb3RoZXIgcHJvZ3JhbXMuXG4gICZfX2RheS1wYW5lbC1sYWJlbCB7XG4gICAgbWFyZ2luOiAxNnB4IDAgOHB4O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgfVxuXG4gICZfX2RheS1jYXJkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICBwYWRkaW5nOiAxNHB4IDM2cHggMTRweCAxNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdy1jYXJkO1xuXG4gICAgJi0tb3RoZXIge1xuICAgICAgYmFja2dyb3VuZDogJGJsYWNrLTIwMDtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJsYWNrLTMwMDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gRW1wdHkgc3RhdGU6IG5vIHJlbW92ZSBidXR0b24sIHNvIHRoZSBwYWRkaW5nIGdvZXMgYmFjayB0byBzeW1tZXRyaWMgYW5kXG4gICAgLy8gdGhlIG1lc3NhZ2UgY2VudGVycyBvbiBib3RoIGF4ZXMuIFRoZSBtZXNzYWdlIHdyYXBzIHRvIHR3byBsaW5lcyBhdCB0aGVcbiAgICAvLyB1c3VhbCBwYW5lbCB3aWR0aCwgc28gcGFkZGluZyArIDIgeCBsaW5lLWhlaWdodCBoYXMgdG8gc3RheSB1bmRlciA2NC5cbiAgICAmLS1lbXB0eSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgbWluLWhlaWdodDogNjRweDtcbiAgICAgIHBhZGRpbmc6IDEwcHggMTZweDtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fZGF5LWNhcmQtcmVtb3ZlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMHB4O1xuICAgIHJpZ2h0OiAxMHB4O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICB9XG4gIH1cblxuICAmX19kYXktY2FyZC10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgJl9fZGF5LWNhcmQtbWV0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAvLyBBIGNvbHVtbiBnYXAgb25seSBsYW5kcyAqYmV0d2VlbiogaXRlbXMgb24gdGhlIHNhbWUgbGluZSwgbmV2ZXIgYXQgdGhlXG4gICAgLy8gc3RhcnQgb2YgYSB3cmFwcGVkIG9uZSwgc28gdGhpcyByZXNlcnZlcyByb29tIGZvciB0aGUgc2VwYXJhdG9yIHdpdGhvdXRcbiAgICAvLyBpbmRlbnRpbmcgdGhlIGJhZGdlIHdoZW4gaXQgZHJvcHMgdG8gYSByb3cgb2YgaXRzIG93bi5cbiAgICBnYXA6IDVweCAxNHB4O1xuICAgIC8vIENsaXBzIHRoZSBzZXBhcmF0b3IgYmVsb3cgb25jZSBpdCBmYWxscyBvdXRzaWRlIHRoaXMgYm94LlxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgLy8gVGhlIGljb24gYW5kIGl0cyBsYWJlbCBhcmUgb25lIGZsZXggaXRlbSwgc28gYSB3cmFwIG1vdmVzIHRoZSB3aG9sZSBiYWRnZVxuICAvLyBkb3duIHRvIHRoZSBuZXh0IHJvdyBpbnN0ZWFkIG9mIHN0cmFuZGluZyB0aGUgaWNvbiBhdCB0aGUgZW5kIG9mIHRoaXMgb25lLlxuICAmX19kYXktY2FyZC10eXBlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBnYXA6IDVweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgLy8gVGhlIHNlcGFyYXRvciBoYW5ncyBvZmYgdGhlIGJhZGdlIHJhdGhlciB0aGFuIHNpdHRpbmcgaW4gdGhlIGZsb3csIGJlY2F1c2VcbiAgLy8gQ1NTIGNhbm5vdCBhc2sgd2hldGhlciB0aGUgYmFkZ2Ugd3JhcHBlZC4gQmVzaWRlIHRoZSBwcm9ncmFtIG5hbWUgaXQgbGFuZHNcbiAgLy8gaW4gdGhlIDE0cHggY29sdW1uIGdhcDsgb24gYSByb3cgb2YgaXRzIG93biB0aGUgYmFkZ2Ugc3RhcnRzIGF0IHRoZSBsZWZ0XG4gIC8vIGVkZ2Ugb2YgX19kYXktY2FyZC1tZXRhLCB3aGljaCBwdXRzIHRoZSBidWxsZXQgb3V0c2lkZSB0aGF0IGJveCwgd2hlcmUgdGhlXG4gIC8vIG92ZXJmbG93OiBoaWRkZW4gYWJvdmUgY2xpcHMgaXQuXG4gICZfX2RheS1jYXJkLXR5cGU6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcXDIwMjJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IGNhbGMoMTAwJSArIDVweCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiAkc2NoZWR1bGUtYnVpbGQtbWV0YS1zZXA7XG4gIH1cblxuICAmX19kYXktY2FyZC1pY29uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuXG4gICZfX2RheS1jYXJkLWRvbmUge1xuICAgIGNvbG9yOiAjYjBiMGIwO1xuICB9XG5cbiAgQGluY2x1ZGUgcmVzcG9uZChtb2JpbGUpIHtcbiAgICAmX19yZXZpZXcge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTtcbiAgICAgIGdhcDogMjRweDtcbiAgICB9XG5cbiAgICAmX19kYXktcGFuZWwge1xuICAgICAgbWF4LXdpZHRoOiA0MjBweDtcbiAgICB9XG4gIH1cblxuICAvLyAtLSBzYXZlIGZhaWx1cmUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFNpdHMgZGlyZWN0bHkgYWJvdmUgdGhlIGZvb3RlciBzbyBpdCBsYW5kcyB3aGVyZSB0aGUgdXNlciBqdXN0IGNsaWNrZWQuXG4gIC8vIE1hdGNoZXMgdGhlIGF0aGxldGUtcHJvZmlsZSBlcnJvciBiYW5uZXIgKF9wcm9maWxlX2F0aGxldGUuc2NzcyBfX2Vycm9yKS5cbiAgJl9fZXJyb3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgcGFkZGluZzogMTBweCAxNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmRlY2VjO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogJHJlZC01MDA7XG4gIH1cblxuICAvLyAtLSBmb290ZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEhlbGQgdG8gdGhlIHNhbWUgNjQwcHggY29sdW1uIGFzIHRoZSBjYWxsb3V0IGFuZCB0aGUgd2VlayBncmlkLCBzbyBCYWNrXG4gIC8vIHNpdHMgb24gdGhlIGxlZnQgZWRnZSBvZiB0aGUgc3RhY2sgYW5kIENvbnRpbnVlIG9uIGl0cyByaWdodCBlZGdlLlxuICAmX19mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB3aWR0aDogNjQwcHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGdhcDogMTZweDtcbiAgfVxuXG4gICZfX2J1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGdhcDogOHB4O1xuICAgIGhlaWdodDogNDhweDtcbiAgICBwYWRkaW5nOiAwIDI0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJsYWNrLTIwMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgLy8gMTQzcHggaXMgdGlnaHQgYWdhaW5zdCBcIkNvbnRpbnVlXCIgKyB0aGUgMThweCBhcnJvdywgc28gdGhlIHNpZGUgcGFkZGluZ1xuICAgIC8vIGRyb3BzIHRvIDE2IHRvIGtlZXAgdGhlIGxhYmVsIGFuZCBnbHlwaCBvZmYgdGhlIGVkZ2VzLlxuICAgICYtLXByaW1hcnkge1xuICAgICAgd2lkdGg6IDE0M3B4O1xuICAgICAgcGFkZGluZzogMCAxNnB4O1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTAwO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICR4LXB1cnBsZS1ob3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZDogJHgtcHVycGxlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgICYtLXdpZGUge1xuICAgICAgd2lkdGg6IDE3NXB4O1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tIG1vYmlsZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIDc2OHB4IGlzIHRoZSBleGFjdCB0aHJlc2hvbGQ6IHRoZSBjb250ZW50IGJveCBpcyA3MjBweCB0aGVyZSwgYWdhaW5zdCB0aGVcbiAgLy8gd2VlayBncmlkJ3MgNyB4IDExMHB4ID0gNzcwcHggbWluaW11bS4gU2lkZXdheXMgc2Nyb2xsaW5nIHdhcyB0aGUgb25seVxuICAvLyBlc2NhcGUgYW5kIGl0IGhpZCBUaHUtU2F0IG9mZiBzY3JlZW4gd2l0aCBub3RoaW5nIHRvIGhpbnQgdGhleSBleGlzdGVkLlxuICBAaW5jbHVkZSByZXNwb25kKG1vYmlsZSkge1xuICAgIC8vIFdlZWsgZ3JpZCBiZWNvbWVzIHN0YWNrZWQgcm93czogZGF5IG5hbWUgb24gdGhlIGxlZnQsIHNlc3Npb25zIGFuZCB0aGVcbiAgICAvLyBhZGQgYnV0dG9uIG9uIHRoZSByaWdodC5cbiAgICAmX19ncmlkLXNjcm9sbCB7XG4gICAgICBvdmVyZmxvdy14OiB2aXNpYmxlO1xuICAgIH1cblxuICAgICZfX2dyaWQge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgICZfX2dyaWQtZGF5IHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZ2FwOiAxMnB4O1xuICAgICAgcGFkZGluZzogOHB4IDEycHg7XG5cbiAgICAgICYgKyAmIHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5vIGxvbmdlciBhIGNvbHVtbiBoZWFkZXIgLSBpdCBpcyB0aGUgcm93J3MgbGFiZWwsIHNvIGl0IGRyb3BzIHRoZSBncmV5XG4gICAgLy8gZmlsbCBhbmQgdGhlIHJ1bGUgYmVuZWF0aCBpdC4gNDhweCBjbGVhcnMgdGhlIGxvbmdlc3Qgd2Vla2RheXNTaG9ydCgpXG4gICAgLy8gZW50cnkgaW4gYm90aCBsb2NhbGVzIChcIldlZFwiLCBcIk1pLlwiKS4gU2NvcGVkIHRvIF9fZ3JpZC1kYXkgc28gdGhlIHN0ZXAgM1xuICAgIC8vIGNhbGVuZGFyLCB3aGljaCBzaGFyZXMgX19ncmlkLWhlYWQsIGtlZXBzIGl0cyByZWFsIGhlYWRlciBzdHlsaW5nLlxuICAgICZfX2dyaWQtZGF5ID4gJl9fZ3JpZC1oZWFkIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZmxleDogMCAwIDQ4cHg7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICB9XG5cbiAgICAmX19ncmlkLWNlbGwge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICBvdmVyZmxvdy15OiB2aXNpYmxlO1xuICAgICAgLy8gV2l0aG91dCB0aGlzIHRoZSBmbGV4IGl0ZW0gcmVmdXNlcyB0byBzaHJpbmsgYW5kIGEgbG9uZyBzZXNzaW9uIGxhYmVsXG4gICAgICAvLyBwdXNoZXMgdGhlIHJvdyB3aWRlciB0aGFuIHRoZSB2aWV3cG9ydC5cbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgICZfX2FkZCB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAvLyBTdGVwIDMgbW9udGggY2FsZW5kYXIuIEEgbW9udGggaGFzIHRvIGtlZXAgaXRzIHNldmVuLWNvbHVtbiBzaGFwZSwgc29cbiAgICAvLyB0aGlzIG9uZSBnZXRzIG5hcnJvd2VyIGNlbGxzIHJhdGhlciB0aGFuIHN0YWNrZWQgcm93czogfjQ5cHggcGVyIGNvbHVtblxuICAgIC8vIGF0IDM3NXB4LCBlbm91Z2ggZm9yIFwiU3VuXCIgYW5kIGEgdHdvLWRpZ2l0IGRhdGUuXG4gICAgJl9fY2FsZW5kYXItc2Nyb2xsIHtcbiAgICAgIG92ZXJmbG93LXg6IHZpc2libGU7XG4gICAgfVxuXG4gIH1cblxuICBAbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgICBwYWRkaW5nOiAyMHB4IDE2cHggNDBweDtcblxuICAgICZfX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICB9XG5cbiAgICAmX19kYXRlLXJvdyB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICBnYXA6IDhweDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFNlc3Npb24gaGVhZGVyICh0ZW1wbGF0ZXMvdG9kYXlfc2Vzc2lvbl9oZWFkZXIuaHRtbCkg4oCUIHRoZSBudW1iZXJlZCB0YWIgc3RyaXBcbi8vIHRoYXQgZm9sbG93cyBhIHJ1biBzdGFydGVkIGZyb20gdGhlIFRvZGF5IGNhcmQgYWNyb3NzIHRoZSBSK1IgdGVzdCwgdGhlIFI1XG4vLyB0ZXN0LCBhIGRhaWx5IHByb2dyYW0gYW5kIHRoZSB0cmFpbmluZyBsb2cuXG4vL1xuLy8gTGF5b3V0IG5vdGU6IHRoZSBpbmNsdWRlIHNpdHMgYXMgdGhlIGZvdXJ0aCBzaWJsaW5nIGluIGVhY2ggdmlldywgcmlnaHQgYWZ0ZXJcbi8vIC5tZW51LWNvbnRlbnQg4oCUIGRlbGliZXJhdGVseSBOT1QgYC5oZWFkZXItY29udGVudCArICpgLCB3aGljaCBpcyByZXNlcnZlZCBmb3Jcbi8vIHRoZSBwaW5uZWQgYXRobGV0ZSBzZWxlY3Rpb24gYmFyLiBCZWNhdXNlIHRoZSByYWlsIGlzIHN1cHByZXNzZWQgZm9yIHRoZSB3aG9sZVxuLy8gb2YgYSBzZXNzaW9uLCB0aGUgc2lkZWJhciBndXR0ZXIgcnVsZXMgaW4gX3Byb2ZpbGVfYXRobGV0ZS5zY3NzXG4vLyAoYD4gLm1lbnUtY29udGVudCB+ICpgKSBuZXZlciBhcHBseSBoZXJlIGFuZCB0aGUgc3RyaXAgcnVucyBmdWxsLWJsZWVkLlxuXG4kdG9kYXktc2Vzc2lvbi1kb25lLWJnOiAjZTdmNWVlO1xuJHRvZGF5LXNlc3Npb24tdGlwLXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDE2LCAyNCwgNDAsIDAuMTYpO1xuXG4vLyBXaGlsZSBhIHNlc3Npb24gcnVucywgTWVudUJhckNvbnRyb2xsZXIgZW1wdGllcyBtZW51SXRlbXMgc28gdGhlIG5hdiByYWlsXG4vLyBzdGVwcyBhc2lkZSAoRXhpdCBpcyB0aGUgb25seSB3YXkgb3V0KS4gVGhhdCBkcm9wcyAuaGFzLWl0ZW1zLCB3aGljaCB1bndpbmRzXG4vLyB0aGUgc2lkZWJhciBndXR0ZXIgYW5kIHRoZSBwaW5uZWQtaGVhZGVyIG9mZnNldHMgb24gaXRzIG93biDigJQgYnV0IGl0IGFsc29cbi8vIGRyb3BzIC5tZW51LWNvbnRlbnQgYmFjayB0byBpdHMgYmFzZSBgbG9jay1oZWlnaHQoNjVweClgICsgLmRya2dyZXliZywgaS5lLiBhXG4vLyA2NXB4IGRhcmsgYmFuZCB3aGVyZSB0aGUgcmFpbCB1c2VkIHRvIGJlLiBUaGUgc3RyaXAncyBvd24gcHJlc2VuY2UgaW4gdGhlIERPTVxuLy8gaXMgdGhlIHNpZ25hbCB0byBjb2xsYXBzZSBpdC5cbi5tYWluLXZpZXc6aGFzKC50b2RheS1zZXNzaW9uKSA+IC5tZW51LWNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyBuZy1pbmNsdWRlIGluamVjdHMgYSB3cmFwcGVyLCBhbmQgdGhlIGNvbnRyb2xsZXIgc2l0cyBvbiBhIHNlY29uZCBvbmUsIHNvIHRoZVxuLy8gc3RyaXAgaXMgdHdvIGxldmVscyBiZWxvdyAubWFpbi12aWV3J3MgZmxleCBjb2x1bW4uIEtlZXAgYm90aCB3cmFwcGVycyBzaXplZFxuLy8gdG8gY29udGVudCBpbnN0ZWFkIG9mIHN0cmV0Y2hpbmcgKGNvbXBhcmUgdGhlIC50b2RheS1hc2tzIGhvb2sgaW5cbi8vIF9wcm9maWxlX2F0aGxldGUuc2NzcykuXG4ubWFpbi12aWV3ID4gZGl2OmhhcygudG9kYXktc2Vzc2lvbiksXG4ubWFpbi12aWV3ID4gZGl2ID4gZGl2Omhhcyg+IC50b2RheS1zZXNzaW9uKSB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi50b2RheS1zZXNzaW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyAvLyBhbmNob3JzIHRoZSBjb2FjaCBtYXJrXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGZsZXg6IDAgMCBhdXRvO1xuICAvLyA0OHB4IG92ZXJhbGwsIGJvcmRlciBpbmNsdWRlZCAoYm94LXNpemluZyBpcyBib3JkZXItYm94IGZyb20gX2Jhc2Uuc2NzcykuXG4gIC8vIFRoZSB0YWJzIGFuZCBFeGl0IGNlbnRyZSB0aGVpciBjb250ZW50IGluc2lkZSBpdCBpbnN0ZWFkIG9mIHNldHRpbmcgdGhlXG4gIC8vIGhlaWdodCB3aXRoIHZlcnRpY2FsIHBhZGRpbmcsIHNvIGEgbG9uZyBsYWJlbCBjYW5ub3QgZ3JvdyB0aGUgc3RyaXAuXG4gIGhlaWdodDogNDhweDtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRibGFjay0yMDA7XG4gIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG5cbiAgLy8gLS0gdGFicyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBTY3JvbGxzIHNpZGV3YXlzIHJhdGhlciB0aGFuIHB1c2hpbmcgdGhlIHJvdyB3aWRlOiBFeGl0IGlzIGZsZXg6IDAgMCBhdXRvIGFuZFxuICAvLyBpdHMgbGFiZWwgcnVucyBsb25nIGZvciBwcmFjdGl0aW9uZXJzLCBzbyB0aGUgdGFicyBhcmUgd2hhdCBoYXMgdG8gZ2l2ZS5cbiAgJl9fdGFicyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAvLyBUYWtlcyB0aGUgcm93J3MgbGVmdG92ZXIgd2lkdGggYW5kIGFic29yYnMgdGhlIG92ZXJmbG93IGl0c2VsZjsgd2l0aG91dFxuICAgIC8vIGBtaW4td2lkdGg6IDBgIGEgZmxleCBpdGVtIHJlZnVzZXMgdG8gc2hyaW5rIHBhc3QgaXRzIGNvbnRlbnQsIHdoaWNoIHdvdWxkXG4gICAgLy8gcHVzaCBFeGl0IG9mZiB0aGUgcmlnaHQgZWRnZSBpbnN0ZWFkIG9mIHNjcm9sbGluZyB0aGUgdGFicy5cbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgLy8gRmlnbWEgc3RhcnRzIHRoZSBmaXJzdCB0YWIgaW4gZnJvbSB0aGUgZWRnZTsgcGFkZGluZyByYXRoZXIgdGhhbiBhIG1hcmdpblxuICAgIC8vIG9uIHRoZSB0YWIgc28gdGhlIGd1dHRlciBzdGF5cyBwdXQgb25jZSB0aGUgc3RyaXAgc2Nyb2xscyBzaWRld2F5cy5cbiAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIH1cblxuICAmX190YWIge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgLy8gQSBmbGV4IGl0ZW0gc2hyaW5rcyBieSBkZWZhdWx0LCBhbmQgdGhlIGxhYmVsIGlzIG5vd3JhcDogb24gYSBuYXJyb3dcbiAgICAvLyB2aWV3cG9ydCB0aGF0IHNxdWVlemVzIHRoZSBib3ggYmVsb3cgaXRzIHRleHQsIHdoaWNoIHRoZW4gc3BpbGxzIHBhc3QgdGhlXG4gICAgLy8gdGFiJ3MgYmFja2dyb3VuZCBhbmQgZGl2aWRlcnMuIFNpemluZyBlYWNoIHRhYiB0byBpdHMgY29udGVudCBpbnN0ZWFkXG4gICAgLy8gaGFuZHMgdGhlIG92ZXJmbG93IHRvIC50b2RheS1zZXNzaW9uX190YWJzLCB3aGljaCBzY3JvbGxzLlxuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwIDI0cHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkcm9vbS1tdXRlZDtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2ZiZmFmZDtcbiAgICB9XG5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHB1cnBsZS01MDA7XG4gICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTEwMDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuICAgICAgfVxuXG4gICAgICAudG9kYXktc2Vzc2lvbl9fYmFkZ2U6bm90KC50b2RheS1zZXNzaW9uX19iYWRnZS0tZG9uZSkge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTUwMDtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICB9XG5cbiAgICAgIC50b2RheS1zZXNzaW9uX190YWItbGFiZWwge1xuICAgICAgICBjb2xvcjogJHB1cnBsZS05MDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gU2FtZSAyMngyMiByb3VuZGVkIHNxdWFyZSBhcyAuc2NoZWR1bGUtc3RlcHNfX21hcmtlciBhbmQgLnRvZGF5LWFza3NfX2JhZGdlLlxuICAmX19iYWRnZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6ICRibGFjay0xMDA7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cbiAgICAmLS1kb25lIHtcbiAgICAgIGJhY2tncm91bmQ6ICR0b2RheS1zZXNzaW9uLWRvbmUtYmc7XG4gICAgICBjb2xvcjogJGdyZWVuLTUwMDtcbiAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICB9XG4gIH1cblxuICAmX190YWItbGFiZWwge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGNvbG9yOiAkYmxhY2stOTAwO1xuICB9XG5cbiAgJl9fdGFiLS1jb21wbGV0ZSAmX190YWItbGFiZWwge1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgLy8gLS0gZXhpdCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19leGl0IHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMjRweDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gICAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICRibGFjay05MDA7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cblxuICAvLyAxM3B4IHJhdGhlciB0aGFuIHRoZSBzdmcncyBvd24gMTY6IENTUyBiZWF0cyB0aGUgd2lkdGgvaGVpZ2h0IHByZXNlbnRhdGlvblxuICAvLyBhdHRyaWJ1dGVzLCBhbmQgdGhlIDAgMCAxNiAxNiB2aWV3Qm94IHNjYWxlcyB0aGUgZ2x5cGggZG93biB3aXRoIGl0LlxuICAmX19leGl0LWljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHdpZHRoOiAxM3B4O1xuICAgIGhlaWdodDogMTNweDtcbiAgfVxuXG4gIC8vIEZpZ21hIHNldHMgdGhlIGxhYmVsIGEgaGFpciBiZWxvdyB0aGUgcm93J3Mgb3B0aWNhbCBjZW50cmUuIEEgcmVsYXRpdmUgbnVkZ2VcbiAgLy8gcmF0aGVyIHRoYW4gcGFkZGluZyBzbyBpdCBjYW5ub3QgZmVlZCBiYWNrIGludG8gdGhlIDQ4cHggcm93IGhlaWdodC5cbiAgJl9fZXhpdC1sYWJlbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMXB4O1xuICB9XG5cbiAgLy8gLS0gZmlyc3QtcnVuIGNvYWNoIG1hcmsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fdGlwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDEwMCUgKyAxMHB4KTtcbiAgICBsZWZ0OiAyNHB4O1xuICAgIHotaW5kZXg6IDg4MDsgLy8gdW5kZXIgdGhlIHBpbm5lZCBjaHJvbWUgKDg5NSspLCBvdmVyIHBhZ2UgY29udGVudFxuICAgIHdpZHRoOiAzMjBweDtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSA0OHB4KTtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJveC1zaGFkb3c6ICR0b2RheS1zZXNzaW9uLXRpcC1zaGFkb3c7XG5cbiAgICAvLyBjYXJldCBwb2ludGluZyB1cCBhdCB0aGUgZmlyc3QgdGFiXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDEwMCU7XG4gICAgICBsZWZ0OiAyNHB4O1xuICAgICAgYm9yZGVyOiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjZmZmZmZmO1xuICAgICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICB9XG4gIH1cblxuICAmX190aXAtdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgfVxuXG4gICZfX3RpcC1ib2R5IHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuICB9XG5cbiAgJl9fdGlwLWJ0biB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICR4LXB1cnBsZS1ob3ZlcjtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZCh0YWJsZXQpIHtcbiAgLnRvZGF5LXNlc3Npb24ge1xuICAgICZfX3RhYixcbiAgICAmX19leGl0IHtcbiAgICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgcmVzcG9uZChtb2JpbGUpIHtcbiAgLnRvZGF5LXNlc3Npb24ge1xuICAgICZfX3RhYnMge1xuICAgICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgfVxuXG4gICAgJl9fdGFiIHtcbiAgICAgIGdhcDogOHB4O1xuICAgICAgcGFkZGluZzogMCAxNHB4O1xuICAgIH1cblxuICAgICZfX2V4aXQge1xuICAgICAgcGFkZGluZzogMCAxNHB4O1xuICAgIH1cblxuICAgICZfX2V4aXQtbGFiZWwge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmX190aXAge1xuICAgICAgbGVmdDogMTZweDtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgcmlnaHQ6IDE2cHg7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRXhpdCBjb25maXJtYXRpb24gKHRlbXBsYXRlcy9tb2RhbF90b2RheV9zZXNzaW9uX2V4aXQuaHRtbCwgb3BlbmVkIHZpYVxuLy8gTW9kYWxTZXJ2aWNlLm9wZW4gKyBDb25maXJtQ29udHJvbGxlcikuXG4vL1xuLy8gSXRzIG93biByb290IGNsYXNzIHJhdGhlciB0aGFuIC5tb2RhbC1jb250YWluZXIsIHNvIG5vbmUgb2YgdGhlIGxlZ2FjeSBtb2RhbFxuLy8gY2hyb21lIGFwcGxpZXMuIFRoYXQgaXMgbm90IGp1c3QgdGlkaW5lc3M6IGZ1c2lvbmV0aWNzLW1hcmstYWRkaXRpb25zIGxvYWRzXG4vLyBhZnRlciB0aGlzIGJ1bmRsZSBhbmQgc2V0cyBgLm1vZGFsLWNvbnRhaW5lciBoZWFkZXIgeyBib3JkZXItYm90dG9tOiAxcHggc29saWRcbi8vICNFQkVCRUIgIWltcG9ydGFudCB9YCwgd2hpY2ggbm8gYW1vdW50IG9mIHNwZWNpZmljaXR5IGhlcmUgY2FuIHVuZG8uIFRoZSBzYW1lXG4vLyBidW5kbGUgYWxzbyBmb3JjZXMgYGp1c3RpZnktY29udGVudDogY2VudGVyYCBvbiB0aGUgaGVhZGVyIGxhYmVsIGFuZCB0aGVcbi8vIGZvb3RlciwgYW5kIGFkZHMgYHBhZGRpbmc6IDE2cHggMCAyMHB4YCB0byAubW9kYWwtY29udGFpbmVyLiBTaWRlc3RlcHBpbmcgdGhlXG4vLyBlbGVtZW50IHNlbGVjdG9ycyBlbnRpcmVseSBpcyB0aGUgb25seSBzdGFibGUgZml4LiBQcmVjZWRlbnQ6IC5tZWktbW9kYWwsXG4vLyAuYm10LW1vZGFsLCAud2NyLW1vZGFsLlxuLy9cbi8vIC5tb2RhbCAodGhlIHRyYW5zY2x1c2lvbiB3cmFwcGVyKSBzdGlsbCBjb250cmlidXRlcyBtaW4taGVpZ2h0OiAxMDBweCBhbmQsIG9uXG4vLyBtb2JpbGUsIG1heC13aWR0aDogY2FsYygxMDAlIC0gMzBweCkuIEJvdGggYXJlIGhhcm1sZXNzIGhlcmUuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuJHRvZGF5LWV4aXQtYm9yZGVyOiAjZDlkOWQ5O1xuJHRvZGF5LWV4aXQtZ3V0dGVyOiAzMnB4O1xuJHRvZGF5LWV4aXQtYm9keS13aWR0aDogNDY0cHg7XG4kdG9kYXktZXhpdC12aWV3cG9ydC1tYXJnaW46IDE2cHg7XG5cbi50b2RheS1leGl0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB3aWR0aDogJHRvZGF5LWV4aXQtYm9keS13aWR0aCArICgkdG9kYXktZXhpdC1ndXR0ZXIgKiAyKTtcbiAgLy8gLm1vZGFsIGlzIGEgY29udGVudC1zaXplZCBmbGV4IGl0ZW0gaW5zaWRlIC5tb2RhbC12aWV3LCBzbyBhIHBlcmNlbnRhZ2VcbiAgLy8gbWF4LXdpZHRoIGhhcyBubyBkZWZpbml0ZSBwYXJlbnQgd2lkdGggdG8gcmVzb2x2ZSBhZ2FpbnN0IGFuZCB0aGUgY2FyZCBrZWVwc1xuICAvLyBpdHMgNTI4cHggb24gYSBwaG9uZSwgb3ZlcmZsb3dpbmcgdGhlIChvdmVyZmxvdzogaGlkZGVuKSB2aWV3cG9ydC4gQSB2aWV3cG9ydFxuICAvLyB1bml0IGlzIHdoYXQgYWN0dWFsbHkgYm91bmRzIGl0LCBsZWF2aW5nIGEgbWFyZ2luIG9uIGJvdGggc2lkZXMuXG4gIG1heC13aWR0aDogY2FsYygxMDB2dyAtICN7JHRvZGF5LWV4aXQtdmlld3BvcnQtbWFyZ2luICogMn0pO1xuICBwYWRkaW5nOiAkdG9kYXktZXhpdC1ndXR0ZXI7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm94LXNoYWRvdzogMCAxMnB4IDMycHggcmdiYSgxNiwgMjQsIDQwLCAwLjI0KTtcbiAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcblxuICAmX19jbG9zZSB7XG4gICAgQGluY2x1ZGUgdW5zdHlsZS1idXR0b247XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMjhweDtcbiAgICByaWdodDogMjhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBjb2xvcjogJGJsYWNrLTUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICRibGFjay05MDA7XG4gICAgfVxuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIG1hcmdpbjogMCA0MHB4IDAgMDsgLy8ga2VlcHMgYSBsb25nIHRpdGxlIGNsZWFyIG9mIHRoZSBjbG9zZSBidXR0b25cbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgfVxuXG4gICZfX2JvZHkge1xuICAgIHdpZHRoOiAkdG9kYXktZXhpdC1ib2R5LXdpZHRoO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDI0cHggMCAwO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuICB9XG5cbiAgJl9fYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1hcmdpbi10b3A6IDQwcHg7XG4gIH1cblxuICAmX19idG4ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgLy8gdW5zdHlsZS1idXR0b24gY2xlYXJzIG1pbi9tYXgtaGVpZ2h0IGJ1dCBub3QgaGVpZ2h0LCBhbmQgdGhlIGdsb2JhbCBidXR0b25cbiAgICAvLyBydWxlIHBpbnMgaGVpZ2h0OiA1MHB4IOKAlCB3aGljaCB3b3VsZCBvdmVycmlkZSB0aGUgZ2hvc3QgYnV0dG9uJ3MgNDhweC5cbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgLy8gUmVzdW1lIOKAlCBodWcgOTd4NDggYXQgMTYvMjAgcGFkZGluZy5cbiAgICAmLS1naG9zdCB7XG4gICAgICBnYXA6IDEwcHg7XG4gICAgICBtaW4taGVpZ2h0OiA0OHB4O1xuICAgICAgcGFkZGluZzogMTZweCAyMHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkdG9kYXktZXhpdC1ib3JkZXI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgICAgY29sb3I6ICRibGFjay05MDA7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEVuZCDigJQgaHVnIDc1IHdpZGUsIGZpeGVkIDQ4IHRhbGwsIGF0IDE0LzI0IHBhZGRpbmcuXG4gICAgJi0tcHJpbWFyeSB7XG4gICAgICBnYXA6IDEycHg7XG4gICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICBwYWRkaW5nOiAxNHB4IDI0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeC1wdXJwbGUtaG92ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIHJlc3BvbmQocGhvbmUpIHtcbiAgLnRvZGF5LWV4aXQge1xuICAgIHBhZGRpbmc6IDIwcHg7XG5cbiAgICAmX19jbG9zZSB7XG4gICAgICB0b3A6IDE2cHg7XG4gICAgICByaWdodDogMTZweDtcbiAgICB9XG5cbiAgICAmX19hY3Rpb25zIHtcbiAgICAgIC8vIExvbmdlciBsb2NhbGl6ZWQgbGFiZWxzIChkZSkgY2FuIGV4Y2VlZCB0aGUgbmFycm93ZWQgY2FyZDsgd3JhcCByYXRoZXJcbiAgICAgIC8vIHRoYW4gcHVzaCB0aGUgcHJpbWFyeSBidXR0b24gcGFzdCB0aGUgZWRnZS5cbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIG1hcmdpbi10b3A6IDI4cHg7XG4gICAgfVxuICB9XG59XG4iLCIvLyBSZWNvdmVyeSArIFJlYWRpbmVzcyBEYWlseSBUZXN0ICgvIy9ycmRhaWx5dGVzdC86dGVzdElkLzphdGhsZXRlSWQpLlxuLy8gT25lIGNvbXBvbmVudCBwZXIgc3RlcCDigJQgUmVmdWVsLCBSZXN0LCBSZWFkaW5lc3Mg4oCUIGVhY2ggYSBzaW5nbGUgY2VudHJlZFxuLy8gY29sdW1uIHdpdGggdGhlIGZvb3RlciBidXR0b25zIHBpbm5lZCB0byB0aGUgZW5kIG9mIHRoZSBjb250ZW50LlxuLy9cbi8vIFRoZSAucnItb3B0aW9uIC8gLnJyLXRpbWUgYmxvY2tzIGxpdmUgaGVyZSByYXRoZXIgdGhhbiBpbiB0aGUgZGlyZWN0aXZlXG4vLyB0ZW1wbGF0ZXMnIG93biBzaGVldCBiZWNhdXNlIHRlbXBsYXRlcy9zaW5nbGVfc2VsZWN0X21vZGVybi5odG1sLFxuLy8gbXVsdGlfc2VsZWN0X21vZGVybi5odG1sIGFuZCB0aW1lX3BpY2tlci5odG1sIGFyZSBvbmx5IHJlYWNoYWJsZSBmcm9tIHRoaXNcbi8vIHBhZ2UgKHRoZSBsZWdhY3kgdmFyaWFudHMgc3RpbGwgc2VydmUgdGhlIHByaW50LW9wdGlvbnMgbW9kYWxzKS5cblxuJHJyLXB1cnBsZS1kaXNhYmxlZDogI2M1YjhmMDtcbiRyci1zdGVwLWxpbmU6ICNlMGUwZTA7XG5cbi8vIHJyLWNoZXZyb24tZG93bi5zdmcsIGlubGluZWQgc28gaXQgZG9lcyBub3QgZGVwZW5kIG9uIHRoZSBzdmcgZmlsZS1sb2FkZXJcbi8vIG9yZGVyaW5nIGluIHdlYnBhY2suY29uZmlnIChjb21wYXJlIF9zY2hlZHVsZV9idWlsZC5zY3NzKS5cbiRyci1jaGV2cm9uOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmcgeG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIgd2lkdGglM0QlMjIxMiUyMiBoZWlnaHQlM0QlMjI4JTIyIHZpZXdCb3glM0QlMjIwIDAgMTIgOCUyMiBmaWxsJTNEJTIybm9uZSUyMiUzRSUzQ3BhdGggZCUzRCUyMk0xIDEuNUw2IDYuNUwxMSAxLjUlMjIgc3Ryb2tlJTNEJTIyJTIzNkQ2RDZEJTIyIHN0cm9rZS13aWR0aCUzRCUyMjEuNSUyMiBzdHJva2UtbGluZWNhcCUzRCUyMnJvdW5kJTIyIHN0cm9rZS1saW5lam9pbiUzRCUyMnJvdW5kJTIyJTJGJTNFJTNDJTJGc3ZnJTNFXCIpO1xuXG4vLyBSYWRpbyByaW5nICh3aGl0ZSBmaWxsLCAycHggc3Ryb2tlLCAyMHB4IG91dGVyKSBhbmQgZG90ICgxMnB4KSwgaW5saW5lZCBmb3Jcbi8vIHRoZSBzYW1lIHJlYXNvbi4gQ29sb3VycyBhcmUgJHB1cnBsZS01MDAgYW5kICRibGFjay0zMDAuXG4kcnItcmFkaW8tcmluZzogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnIHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyIHZpZXdCb3glM0QlMjIwIDAgMjAgMjAlMjIlM0UlM0NjaXJjbGUgY3glM0QlMjIxMCUyMiBjeSUzRCUyMjEwJTIyIHIlM0QlMjI5JTIyIGZpbGwlM0QlMjIlMjNmZmZmZmYlMjIgc3Ryb2tlJTNEJTIyJTIzOTc2OGViJTIyIHN0cm9rZS13aWR0aCUzRCUyMjIlMjIlMkYlM0UlM0MlMkZzdmclM0VcIik7XG4kcnItcmFkaW8tcmluZy1kaXNhYmxlZDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnIHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyIHZpZXdCb3glM0QlMjIwIDAgMjAgMjAlMjIlM0UlM0NjaXJjbGUgY3glM0QlMjIxMCUyMiBjeSUzRCUyMjEwJTIyIHIlM0QlMjI5JTIyIGZpbGwlM0QlMjIlMjNmZmZmZmYlMjIgc3Ryb2tlJTNEJTIyJTIzZDFkMWQxJTIyIHN0cm9rZS13aWR0aCUzRCUyMjIlMjIlMkYlM0UlM0MlMkZzdmclM0VcIik7XG4kcnItcmFkaW8tZG90OiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmcgeG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIgdmlld0JveCUzRCUyMjAgMCAyMCAyMCUyMiUzRSUzQ2NpcmNsZSBjeCUzRCUyMjEwJTIyIGN5JTNEJTIyMTAlMjIgciUzRCUyMjYlMjIgZmlsbCUzRCUyMiUyMzk3NjhlYiUyMiUyRiUzRSUzQyUyRnN2ZyUzRVwiKTtcblxuLy8gQ29tcG91bmQgc2VsZWN0b3Igb24gcHVycG9zZTogX3Bhc3Nwb3J0LnNjc3MgKG1hcmstYWRkaXRpb25zIGJ1bmRsZSwgd2hpY2hcbi8vIGxvYWRzIGFmdGVyIHRoaXMgc2hlZXQpIHJlZGVmaW5lcyBgLnZpZXctZmxleCB7IGZsZXg6IDAgMCBhdXRvIH1gLCB3aGljaFxuLy8gY29sbGFwc2VzIHRoZSBwYWdlIGFuZCBmbG9hdHMgdGhlIHNpdGUgZm9vdGVyIHVwLlxuLnZpZXctZmxleC5yci10ZXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMSAwIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgLy8gc3RyZXRjaCwgbm90IGB3aWR0aDogMTAwJWA6IHRoZSBzaWRlYmFyIHJ1bGVzIGluIF9wcm9maWxlX2F0aGxldGUuc2NzcyBwdXQgYVxuICAvLyBtYXJnaW4tbGVmdCBvbiBldmVyeSBzaWJsaW5nIGFmdGVyIC5tZW51LWNvbnRlbnQsIGFuZCBhIGZpeGVkIDEwMCUgd2lkdGhcbiAgLy8gd291bGQgdGhlbiBvdmVyZmxvdyB0aGUgcmFpbCdzIHdpZHRoIHRvIHRoZSByaWdodCAoaW52aXNpYmxlIHVuZGVyXG4gIC8vIGBib2R5IHsgb3ZlcmZsb3cteDogaGlkZGVuIH1gKSBhbmQgY2FycnkgdGhlIGNlbnRyZWQgY29sdW1uIHdpdGggaXQuXG4gIC8vIFN0cmV0Y2hpbmcgbGVhdmVzIHRoZSBib3ggZXhhY3RseSB0aGUgc3BhY2UgYmVzaWRlIHRoZSByYWlsLCBzbyB0aGUgY29sdW1uXG4gIC8vIHJlLWNlbnRyZXMgYXMgdGhlIHJhaWwgb3BlbnMsIGNvbGxhcHNlcyBvciBkaXNhcHBlYXJzLlxuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBiYWNrZ3JvdW5kOiAkcGFnZS1iZztcbn1cblxuLnJyLXRlc3Qge1xuICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuXG4gIC8vIE5ldXRyYWxpemUgdGhlIGdsb2JhbCBidXR0b24geyBtaW4td2lkdGg6IDExMHB4OyB1cHBlcmNhc2U7IGxvY2staGVpZ2h0IH1cbiAgLy8gcnVsZXMgZnJvbSBfYmFzZS5zY3NzLlxuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIHVuc3R5bGUtYnV0dG9uO1xuICB9XG5cbiAgYnV0dG9uICsgYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gICZfX3BhZ2Uge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDUyMHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDQ4cHggMjRweCA2NHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAmX190aXRsZSB7XG4gICAgbWFyZ2luOiAwIDAgMzJweDtcbiAgICBmb250LXNpemU6IDI4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMzZweDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgfVxuXG4gIC8vIC0tIHN0ZXAgaW5kaWNhdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFJlYWQtb25seTogQmFjayBpcyB0aGUgb25seSB3YXkgdG8gYW4gZWFybGllciBzdGVwLCBzbyB0aGVzZSBjYXJyeSBub1xuICAvLyBjbGljayBhZmZvcmRhbmNlLlxuICAmX19zdGVwcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgZ2FwOiA0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMzZweDtcbiAgfVxuXG4gICZfX3N0ZXAge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJHJyLXN0ZXAtbGluZTtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogI2IwYjBiMDtcblxuICAgICYtLXJlYWNoZWQge1xuICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHB1cnBsZS01MDA7XG4gICAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICB9XG5cbiAgICAvLyBPbmx5IHRoZSBzdGVwIGJlaW5nIGFuc3dlcmVkIGlzIGJvbGQ7IGNvbXBsZXRlZCBzdGVwcyBzdGF5IGF0IDUwMC5cbiAgICAmLS1jdXJyZW50IHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0gcXVlc3Rpb24gc2VjdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fc2VjdGlvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzZweDtcbiAgfVxuXG4gICZfX3NlY3Rpb24tbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAkYmxhY2stNjAwO1xuICB9XG5cbiAgJl9fcXVlc3Rpb24gKyAmX19xdWVzdGlvbiB7XG4gICAgbWFyZ2luLXRvcDogMjhweDtcbiAgfVxuXG4gIC8vIC0tIGZvb3RlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX2Zvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDE2cHg7XG4gICAgbWFyZ2luLXRvcDogNDRweDtcbiAgfVxuXG4gIC8vIFN0ZXAgb25lIGhhcyBubyBCYWNrIGJ1dHRvbiwgc28gdGhlIHByaW1hcnkgcnVucyB0aGUgZnVsbCBjb2x1bW4gd2lkdGguXG4gICZfX2Zvb3Rlci0tc2luZ2xlICZfX2J1dHRvbiB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gIH1cblxuICAmX19idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDE0cHggMjhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmxhY2stMjAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICYtLXByaW1hcnkge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcHVycGxlLTUwMDtcbiAgICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTAwO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6ICR4LXB1cnBsZS1ob3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZDogJHgtcHVycGxlLWhvdmVyO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoZSBzdGVwIGlzIGluY29tcGxldGU6IHRoZSBidXR0b24gc3RheXMgdmlzaWJsZSBidXQgaW5lcnQsIHdoaWNoIGlzIHdoYXRcbiAgICAvLyBzaWduYWxzIHRoZXJlIGlzIHN0aWxsIHNvbWV0aGluZyB0byBhbnN3ZXIgYWJvdmUgaXQuXG4gICAgJltkaXNhYmxlZF0sXG4gICAgJltkaXNhYmxlZF06aG92ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkcnItcHVycGxlLWRpc2FibGVkO1xuICAgICAgYmFja2dyb3VuZDogJHJyLXB1cnBsZS1kaXNhYmxlZDtcbiAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cbiAgfVxuXG4gICZfX2J1dHRvbi1hcnJvdyB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gIH1cblxuICBAaW5jbHVkZSByZXNwb25kKG1vYmlsZSkge1xuICAgICZfX3BhZ2Uge1xuICAgICAgcGFkZGluZzogMzJweCAyMHB4IDQ4cHg7XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgfVxuXG4gICAgJl9fc3RlcCB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgfVxuXG4gICAgJl9fZm9vdGVyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbn1cblxuLy8gLS0gcXVlc3Rpb24gb3B0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLnJyLW9wdGlvbi1ncm91cCB7XG4gICZfX3Byb21wdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgfVxuXG4gICZfX2hpbnQge1xuICAgIG1hcmdpbi1sZWZ0OiA2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxufVxuXG4ucnItb3B0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMnB4O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDZweCAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJi0taW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgJi0tZGlzYWJsZWQge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcblxuICAgIC5yci1vcHRpb25fX2NoZWNrIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGJsYWNrLTMwMDtcbiAgICB9XG5cbiAgICAucnItb3B0aW9uX19yYWRpbyB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkcnItcmFkaW8tcmluZy1kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAucnItb3B0aW9uX19yYWRpby0tY2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkcnItcmFkaW8tZG90LCAkcnItcmFkaW8tcmluZy1kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAucnItb3B0aW9uX190ZXh0IHtcbiAgICAgIGNvbG9yOiAjYjBiMGIwO1xuICAgIH1cbiAgfVxuXG4gICZfX3RleHQge1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgfVxuXG4gIC8vIERyYXduIHJhdGhlciB0aGFuIGEgbmF0aXZlIGNvbnRyb2w6IHRoZSBhbnN3ZXJzIGFyZSB0b2dnbGVkIHN0cmFpZ2h0IG9uIHRoZVxuICAvLyBxdWVzdGlvbiBtb2RlbCBieSB0aGUgZGlyZWN0aXZlLCBzbyB0aGVyZSBpcyBubyBuZy1tb2RlbCB0byBiaW5kIGFuIGlucHV0IHRvLlxuICAvL1xuICAvLyBSaW5nIGFuZCBkb3QgYXJlIFNWRyBsYXllcnMgb3ZlciB0aGUgc2FtZSAyMHgyMCBib3gsIG5vdCBhIGJvcmRlciBwbHVzIGFcbiAgLy8gY2VudHJlZCBjaGlsZC4gQXQgZnJhY3Rpb25hbCBkZXZpY2UgcGl4ZWwgcmF0aW9zIChXaW5kb3dzIDEyNSUvMTUwJVxuICAvLyBzY2FsaW5nLCBub24tMTAwJSB6b29tKSB0aGUgYm9yZGVyIHNuYXBzIHRvIHdob2xlIGRldmljZSBwaXhlbHMgd2hpbGUgdGhlXG4gIC8vIGNoaWxkIGRvZXMgbm90LCB3aGljaCBwdXNoZWQgdGhlIGRvdCAxcHggb2ZmLWNlbnRyZS4gQm90aCBsYXllcnMgcmFzdGVyaXNlXG4gIC8vIGluIG9uZSBjb29yZGluYXRlIHNwYWNlLCBzbyB0aGV5IHN0YXkgY29uY2VudHJpYyBhdCBhbnkgc2NhbGUuXG4gICZfX3JhZGlvIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgYmFja2dyb3VuZDogJHJyLXJhZGlvLXJpbmcgY2VudGVyIC8gMTAwJSAxMDAlIG5vLXJlcGVhdDtcblxuICAgICYtLWNoZWNrZWQge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogJHJyLXJhZGlvLWRvdCwgJHJyLXJhZGlvLXJpbmc7XG4gICAgfVxuICB9XG5cbiAgJl9fY2hlY2sge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkcHVycGxlLTUwMDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcblxuICAgICYtLWNoZWNrZWQge1xuICAgICAgYmFja2dyb3VuZDogJHB1cnBsZS01MDA7XG5cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAycHg7XG4gICAgICAgIGxlZnQ6IDZweDtcbiAgICAgICAgd2lkdGg6IDRweDtcbiAgICAgICAgaGVpZ2h0OiA5cHg7XG4gICAgICAgIGJvcmRlcjogc29saWQgI2ZmZmZmZjtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDJweCAycHggMDtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyAtLSBzbGVlcCBkdXJhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4ucnItc2xlZXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDE2cHg7XG59XG5cbi5yci10aW1lIHtcbiAgJl9fbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX3JvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgfVxuXG4gICZfX3NlbGVjdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIG1pbi13aWR0aDogMDtcblxuICAgIHNlbGVjdCB7XG4gICAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiA0NHB4O1xuICAgICAgcGFkZGluZzogMCAzNnB4IDAgMTRweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRibGFjay0zMDA7XG4gICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICRwdXJwbGUtNTAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNpdHMgb3ZlciB0aGUgc2VsZWN0LCBzbyBpdCBtdXN0IG5vdCBzd2FsbG93IHRoZSBjbGljayB0aGF0IG9wZW5zIGl0LlxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICByaWdodDogMTRweDtcbiAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICBtYXJnaW4tdG9wOiAtNHB4O1xuICAgICAgYmFja2dyb3VuZDogJHJyLWNoZXZyb24gbm8tcmVwZWF0IGNlbnRlciAvIGNvbnRhaW47XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gIH1cblxuICAmX19tZXJpZGllbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGdhcDogMTZweDtcbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQocGhvbmUpIHtcbiAgICAmX19yb3cge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cblxuICAgICZfX21lcmlkaWVtIHtcbiAgICAgIGZsZXg6IDEgMCAxMDAlO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRGFpbHkgUmVhZGluZXNzIFRlc3QgKC8jL3I1ZGFpbHl0ZXN0Lzp0ZXN0SWQvOmF0aGxldGVJZCkuXG4vLyBTaW5nbGUgY2VudHJlZCBjb2x1bW4sIG1hdGNoaW5nIHRoZSBzaGFwZSBvZiB0aGUgUitSIGRhaWx5IHRlc3QgYnV0IG9uIHRoZVxuLy8gcGFnZSdzIGV4aXN0aW5nIHdoaXRlIGdyb3VuZC4gNzAwcHggaXMgdGhlIG1heC13aWR0aCAucnItbWVudSAvIC5yci1rZXkgYXJlXG4vLyBhbHJlYWR5IGJ1aWx0IGZvciBpbiBfdGVzdHMuc2Nzcywgc28gdGhlIHNlZ21lbnRlZCBhbnN3ZXIgYmFyIGZpbGxzIHRoZVxuLy8gY29sdW1uIGV4YWN0bHkgYW5kIHRoZSB0d28gYm9keS1tYXAgZmlndXJlcyBzdGlsbCBzaXQgc2lkZSBieSBzaWRlLlxuXG5cbi8vIENvbXBvdW5kIHNlbGVjdG9yIG9uIHB1cnBvc2U6IF9wYXNzcG9ydC5zY3NzIChtYXJrLWFkZGl0aW9ucyBidW5kbGUsIHdoaWNoXG4vLyBsb2FkcyBhZnRlciB0aGlzIHNoZWV0KSByZWRlZmluZXMgYC52aWV3LWZsZXggeyBmbGV4OiAwIDAgYXV0byB9YCwgd2hpY2hcbi8vIGNvbGxhcHNlcyB0aGUgcGFnZSBhbmQgZmxvYXRzIHRoZSBzaXRlIGZvb3RlciB1cC5cbi52aWV3LWZsZXgucjUtdGVzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIC8vIHN0cmV0Y2gsIG5vdCBgd2lkdGg6IDEwMCVgIOKAlCBzZWUgdGhlIG5vdGUgaW4gX3JyX2RhaWx5X3Rlc3Quc2NzczogdGhlXG4gIC8vIHNpZGViYXIgcnVsZXMgaW4gX3Byb2ZpbGVfYXRobGV0ZS5zY3NzIHB1dCBhIG1hcmdpbi1sZWZ0IG9uIGV2ZXJ5IHNpYmxpbmdcbiAgLy8gYWZ0ZXIgLm1lbnUtY29udGVudCwgc28gYSBmaXhlZCAxMDAlIHdpZHRoIG92ZXJmbG93cyB0aGUgcmFpbCB0byB0aGUgcmlnaHRcbiAgLy8gYW5kIGNhcnJpZXMgdGhlIGNlbnRyZWQgY29sdW1uIHdpdGggaXQuXG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIGJhY2tncm91bmQ6ICNmZmZmZmY7XG59XG5cbi5yNS10ZXN0IHtcbiAgJl9fcGFnZSB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogNzAwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogNDhweCAyNHB4IDY0cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICBtYXJnaW46IDAgMCAzMnB4O1xuICAgIGZvbnQtZmFtaWx5OiAnTnVkaXN0YScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAyOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gIH1cblxuICAvLyBSZXBsYWNlcyBgLnJyLWZvcm0tZ3JvdXAgLmZpZWxkLWdyb3VwIHsgcGFkZGluZzogMCAwIDM1cHggfWAgYW5kXG4gIC8vIGAuZmllbGQgKyAuZmllbGQgeyBtYXJnaW4tdG9wOiAzM3B4IH1gIGZyb20gZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMsXG4gIC8vIHdoaWNoIG5vIGxvbmdlciBhcHBseSBub3cgdGhhdCB0aGUgZmllbGRzZXQgY2hyb21lIGlzIGdvbmUuXG4gICZfX3F1ZXN0aW9uICsgJl9fcXVlc3Rpb24ge1xuICAgIG1hcmdpbi10b3A6IDQwcHg7XG4gIH1cblxuICAvLyBmaWVsZF9zZXRfc2VsZWN0Lmh0bWwgaXMgYXBwZW5kZWQgaW5zaWRlIGl0cyBvd24gZWxlbWVudCAodGhlIGRpcmVjdGl2ZVxuICAvLyBkb2VzIG5vdCBzZXQgcmVwbGFjZSksIGFuZCBhbiB1bmtub3duIGVsZW1lbnQgaXMgaW5saW5lIGJ5IGRlZmF1bHQuXG4gIGZpZWxkLXNldC1zZWxlY3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLy8gV2FzIGAucnItZm9ybS1ncm91cCAuY2F0ZWdvcnlgIChAaW5jbHVkZSBoLWNvbXBhY3QpIGluIG1hcmstYWRkaXRpb25zIOKAlFxuICAvLyB0aGF0IHJ1bGUgaXMgc2NvcGVkIHRvIHRoZSBmaWVsZHNldCB0aGlzIHBhZ2Ugbm8gbG9uZ2VyIHJlbmRlcnMuXG4gICZfX3F1ZXN0aW9uLXRpdGxlIHtcbiAgICBtYXJnaW46IDAgMCAxMXB4O1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG5cbiAgICAvLyBLZWVwcyB0aGUgYmx1ZSBzZXF1ZW5jZSBudW1iZXIgdGhlIC5yci1mb3JtLWdyb3VwIGgzIHJ1bGUgdXNlZCB0byBnaXZlIGl0LlxuICAgIHNwYW4ge1xuICAgICAgY29sb3I6ICRibHVlO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFuIGV4dHJhIGxpbmUgb2YgYWlyIGJlZm9yZSB0aGUgc29yZW5lc3MgcGlja2VyLCB3aGljaCByZWFkcyBhcyBpdHMgb3duXG4gIC8vIHNlY3Rpb24gcmF0aGVyIHRoYW4gYW5vdGhlciBudW1iZXJlZCBxdWVzdGlvbi4gV3JpdHRlbiBhcyBhIGRlc2NlbmRhbnRcbiAgLy8gcmF0aGVyIHRoYW4gYCZfX3F1ZXN0aW9uLS1ib2R5bWFwYCBzbyBpdCBvdXR3ZWlnaHMgdGhlIGFkamFjZW50LXNpYmxpbmdcbiAgLy8gcnVsZSBhYm92ZSwgd2hpY2ggaXMgYWxzbyB0d28gY2xhc3NlcyBkZWVwLlxuICAucjUtdGVzdF9fcXVlc3Rpb24tLWJvZHltYXAge1xuICAgIG1hcmdpbi10b3A6IDY0cHg7XG4gIH1cblxuICAvLyB0ZW1wbGF0ZXMvc3ZnX2JvZHlfbWFwcyBsYXlzIEZyb250IGFuZCBCYWNrIG91dCBpbiBhIDx0YWJsZT4sIHdoaWNoIHNpdHNcbiAgLy8gZmx1c2ggbGVmdCBpbiB0aGUgY29sdW1uIG9uIGl0cyBvd247IGNlbnRyZSBpdCBhZ2FpbnN0IHRoZSBwYWdlIGluc3RlYWQuXG4gIC5yNS1ib2R5LXdyYXBwZXIgdGFibGUge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxuXG4gICZfX2Zvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiA0OHB4O1xuXG4gICAgLy8gVGhlIGdsb2JhbCBgYnV0dG9uYCBydWxlIGluIF9iYXNlLnNjc3MgdXBwZXJjYXNlcyBldmVyeSBidXR0b24gYW5kIG9wZW5zXG4gICAgLy8gdGhlIHRyYWNraW5nIHRvIDFweCB0byBzdWl0IGNhcHM7IGJvdGggaGF2ZSB0byBjb21lIGJhY2sgb2ZmIGhlcmUuXG4gICAgYnV0dG9uIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgICBmb250LXNpemU6IDE2cHg7XG5cbiAgICAgIC8vIGBidXR0b24ucHJpbWFyeWAgaW4gZnVzaW9uZXRpY3MtbWFyay1hZGRpdGlvbnMgc2V0cyBgZm9udC13ZWlnaHQ6IGJvbGRgXG4gICAgICAvLyBhdCBlcXVhbCBzcGVjaWZpY2l0eSBhbmQgdGhhdCBidW5kbGUgbG9hZHMgYWZ0ZXIgdGhpcyBvbmUsIHNvIHRoZVxuICAgICAgLy8gd2VpZ2h0IGhhcyB0byBiZSBzZXQgb25lIGNsYXNzIGRlZXBlciB0byB3aW4uXG4gICAgICAmLnByaW1hcnkge1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gICAgJl9fcGFnZSB7XG4gICAgICBwYWRkaW5nOiAzMnB4IDIwcHggNDhweDtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICB9XG5cbiAgICAmX19mb290ZXIgYnV0dG9uIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gVGhlIGNvbXBsZXRpb24gc2NyZWVuIHNoYXJlZCBieSBib3RoIGRhaWx5IHRlc3RzOiBSZWNvdmVyeSArIFJlYWRpbmVzc1xuLy8gKHZpZXdzL3JyZGFpbHl0ZXN0cmVzdWx0cy5odG1sLCAvIy90ZXN0cmVzdWx0cy86YXRobGV0ZUlkLzp0cmhJZC81KSBhbmQgdGhlXG4vLyBEYWlseSBSZWFkaW5lc3MgVGVzdCAodmlld3MvcjV0ZXN0cmVzdWx0cy5odG1sLCBzYW1lIHJvdXRlIHdpdGggdGVzdElkIDI2KS5cbi8vXG4vLyBUaGUgc2hhcmVkIHRlc3RyZXN1bHRzLmh0bWwgY2hyb21lIGlzIHN3aXRjaGVkIG9mZiBmb3IgdGhlc2UgcmVzdWx0IHR5cGVzLCBzb1xuLy8gdGhpcyBibG9jayBvd25zIHRoZSB3aG9sZSBwYWdlIGJlbG93IHRoZSBzZXNzaW9uIHRhYiBzdHJpcC5cblxuJGRhaWx5LXJlc3VsdHMtaGFpcmxpbmU6ICNmMGYwZjA7XG4kZGFpbHktcmVzdWx0cy11cDogIzIwYjc2OTtcbiRkYWlseS1yZXN1bHRzLWRvd246ICNjNDJhM2I7XG5cbi8vIENvbXBvdW5kIHNlbGVjdG9yIG9uIHB1cnBvc2U6IF9wYXNzcG9ydC5zY3NzIChtYXJrLWFkZGl0aW9ucyBidW5kbGUsIHdoaWNoXG4vLyBsb2FkcyBhZnRlciB0aGlzIHNoZWV0KSByZWRlZmluZXMgYC52aWV3LWZsZXggeyBmbGV4OiAwIDAgYXV0byB9YCwgd2hpY2hcbi8vIGNvbGxhcHNlcyB0aGUgcGFnZSBhbmQgZmxvYXRzIHRoZSBzaXRlIGZvb3RlciB1cC5cbi52aWV3LWZsZXguZGFpbHktcmVzdWx0cy1wYWdlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMSAwIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgLy8gU2VlIHRoZSBtYXRjaGluZyBub3RlIGluIF9ycl9kYWlseV90ZXN0LnNjc3M6IGB3aWR0aDogMTAwJWAgZmlnaHRzIHRoZVxuICAvLyBzaWRlYmFyIGd1dHRlciBtYXJnaW4gYW5kIHB1c2hlcyB0aGUgY2VudHJlZCBjb2x1bW4gb2ZmIHRvIHRoZSByaWdodC5cbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgYmFja2dyb3VuZDogJHBhZ2UtYmc7XG5cbiAgLy8gdGVzdHJlc3VsdHMuaHRtbCBrZWVwcyBpdHMgc2hhcmVkIC5jb250YWluZXIgd2lkZSB3cmFwcGVyIGFyb3VuZCBldmVyeVxuICAvLyByZXN1bHQgdHlwZTsgYXMgYSBmbGV4IGl0ZW0gaXQgc2hyaW5rLXRvLWZpdHMsIHdoaWNoIHdvdWxkIGNvbGxhcHNlIHRoZVxuICAvLyBjZW50cmVkIGNvbHVtbiBpbnNpZGUgaXQuXG4gID4gLmNvbnRhaW5lciB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi5kYWlseS1yZXN1bHRzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIC8vIDY0MHB4IGNhcmQgKyB0aGUgMjRweCBndXR0ZXJzIGVpdGhlciBzaWRlIG9mIGl0LlxuICBtYXgtd2lkdGg6IDY4OHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogNDhweCAyNHB4IDY0cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1mYW1pbHk6ICdOdWRpc3RhJywgc2Fucy1zZXJpZjtcblxuICAvLyBOZXV0cmFsaXplIHRoZSBnbG9iYWwgYnV0dG9uIHsgbWluLXdpZHRoOiAxMTBweDsgdXBwZXJjYXNlOyBsb2NrLWhlaWdodCB9XG4gIC8vIHJ1bGVzIGZyb20gX2Jhc2Uuc2Nzcy5cbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgfVxuXG4gIGJ1dHRvbiArIGJ1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cblxuICAvLyBUd28gc3RhY2tlZCBkaXNjczogdGhlIDcycHggd2FzaCBpcyBvbmx5IH4yJSBvZmYgdGhlIHBhZ2UgYmFja2dyb3VuZCwgc28gb25cbiAgLy8gaXRzIG93biBpdCByZWFkcyBhcyBub3RoaW5nLiBUaGUgaW5uZXIgZGlzYyBpcyB3aGF0IG1ha2VzIGl0IGEgaGFsby5cbiAgJl9fY2hlY2sge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDcycHg7XG4gICAgaGVpZ2h0OiA3MnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMTAwO1xuICB9XG5cbiAgJl9fY2hlY2staW5uZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDU2cHg7XG4gICAgaGVpZ2h0OiA1NnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTIwMDtcbiAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gIH1cblxuICAmX190aXRsZSB7XG4gICAgbWFyZ2luOiAwIDAgOHB4O1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgJl9fc2NvcmUtbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDM2cHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAvLyAtLSBzY29yZSByaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBzdmdEb3VnaG51dCBzaGlwcyBhbiA4MHB4IHN2ZyBvbiBhIDE1MCB2aWV3Qm94IHdpdGggYSA0LzZweCBzdHJva2UuIFRoZSBkYXNoXG4gIC8vIG9mZnNldHMgYXJlIGNvbXB1dGVkIGZyb20gcj03MCwgc28gc2NhbGUgYW5kIHN0cm9rZSBhcmUgZnJlZSB0byBjaGFuZ2UuXG4gIC8vIHN0cm9rZS13aWR0aCBhbmQgZm9udC1zaXplIGJlbG93IGFyZSB2aWV3Qm94IHVuaXRzLCBub3QgcmVuZGVyZWQgcGl4ZWxzIOKAlFxuICAvLyB0aGUgMTUwLXVuaXQgYm94IGlzIGRyYXduIGF0IDExNHB4LCBzbyB0aGV5IHNjYWxlIGJ5IDExNC8xNTA6IDEwIGxhbmRzIGF0XG4gIC8vIDcuNnB4IGFuZCA2MyBsYW5kcyBhdCB0aGUgNDhweCB0aGUgZGVzaWduIGNhbGxzIGZvci5cbiAgJl9fZ2F1Z2Uge1xuICAgIG1hcmdpbi1ib3R0b206IDQ0cHg7XG5cbiAgICBzdmcge1xuICAgICAgd2lkdGg6IDExNHB4O1xuICAgICAgaGVpZ2h0OiAxMTRweDtcbiAgICB9XG5cbiAgICAub3V0bGluZSxcbiAgICAucHJvZ3Jlc3Mge1xuICAgICAgc3Ryb2tlLXdpZHRoOiAxMDtcbiAgICB9XG5cbiAgICAvLyBUaGUgZGlyZWN0aXZlIHBhaW50cyB0aGUgc2NvcmUgaW4gdGhlIHJpc2sgY29sb3VyOyB0aGUgZGVzaWduIGtlZXBzIHRoZVxuICAgIC8vIG51bWJlciBibGFjayBhbmQgbGV0cyB0aGUgcmluZyBjYXJyeSB0aGUgY29sb3VyLiBBIENTUyBydWxlIGJlYXRzIHRoZVxuICAgIC8vIGZpbGwgcHJlc2VudGF0aW9uIGF0dHJpYnV0ZSB0aGUgZGlyZWN0aXZlIHNldHMuXG4gICAgLnRleHQge1xuICAgICAgZm9udC1zaXplOiA2M3B4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGZpbGw6ICMwMDAwMDA7XG4gICAgfVxuICB9XG5cbiAgLy8gLS0gY2FyZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fY2FyZCB7XG4gICAgcGFkZGluZzogMjBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeC1ib3JkZXItZmFpbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3ctY2FyZDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG5cbiAgJl9fYmFubmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTA7XG4gIH1cblxuICAmX19iYW5uZXItaWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIH1cblxuICAmX19iYW5uZXItdGV4dCB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gIH1cblxuICAvLyAtLSB0cmVuZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX190cmVuZHMtbGFiZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBtYXJnaW46IDI0cHggMCAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX3RyZW5kcy1kb3Qge1xuICAgIGNvbG9yOiAjYjBiMGIwO1xuICB9XG5cbiAgJl9fY29sdW1ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAgIC5kYWlseS1yZXN1bHRzX19jb2x1bW4gKyAuZGFpbHktcmVzdWx0c19fY29sdW1uIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGRhaWx5LXJlc3VsdHMtaGFpcmxpbmU7XG4gICAgfVxuXG4gICAgLy8gVGhlIGZpcnN0LXRlc3QgbGF5b3V0IGhhcyBubyBzcGFya2xpbmVzLCBzbyBpdCBoYXMgbm8gdHJlbmRzIGxhYmVsIGFib3ZlXG4gICAgLy8gaXQgdG8gc3BhY2UgaXQgb2ZmIHRoZSBiYW5uZXIgZWl0aGVyLlxuICAgICYtLWZsYXQge1xuICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICB9XG5cbiAgICAvLyBUaGUgRFJUIHJlcG9ydHMgYSBzaW5nbGUgc2NvcmUgcmF0aGVyIHRoYW4gUitSJ3MgdGhyZWUsIHNvIGl0IGhhcyBub1xuICAgIC8vIGNvbHVtbiBncmlkIHRvIGFsaWduIHRvIGFuZCByZWFkcyBhcyBhbiBvcnBoYW4gcHVzaGVkIGFnYWluc3QgdGhlIGxlZnRcbiAgICAvLyBlZGdlIG9mIHRoZSBjYXJkLiBDZW50cmUgaXQgaW5zdGVhZCwgYW5kIGhvbGQgYSBjb2x1bW4ncyB3b3J0aCBvZiB3aWR0aFxuICAgIC8vIHNvIHRoZSBzcGFya2xpbmUga2VlcHMgaXRzIHByb3BvcnRpb25zLlxuICAgICYtLXNpbmdsZSB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgLmRhaWx5LXJlc3VsdHNfX2NvbHVtbiB7XG4gICAgICAgIGZsZXg6IDAgMSAyNDBweDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuXG4gICAgICAuZGFpbHktcmVzdWx0c19fY29sdW1uLXZhbHVlIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fY29sdW1uIHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcGFkZGluZzogMCAxNnB4O1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuICB9XG5cbiAgJl9fY29sdW1uLW5hbWUge1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX2NvbHVtbi12YWx1ZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDhweDtcbiAgfVxuXG4gICZfX2NvbHVtbi1zY29yZSB7XG4gICAgZm9udC1zaXplOiAzMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGluZS1oZWlnaHQ6IDM4cHg7XG4gICAgY29sb3I6ICRibGFjay04MDA7XG4gIH1cblxuICAmX19zcGFyayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNDRweDtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gIH1cblxuICAvLyBTaGFyZWQgYnkgdGhlIHRyZW5kIGNvbHVtbnMgYW5kIHRoZSBjaGFuZ2Ugcm93cy5cbiAgJl9fY2hhbmdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogM3B4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuXG4gICAgJi0tdXAge1xuICAgICAgY29sb3I6ICRkYWlseS1yZXN1bHRzLXVwO1xuICAgIH1cblxuICAgICYtLWRvd24ge1xuICAgICAgY29sb3I6ICRkYWlseS1yZXN1bHRzLWRvd247XG4gICAgfVxuICB9XG5cbiAgJl9fdHJlbmQtaWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICB9XG5cbiAgJl9fbm90aWNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgY29sb3I6ICRibGFjay02MDA7XG4gIH1cblxuICAvLyAtLSBzb3JlbmVzcyBib2R5IG1hcCAoRGFpbHkgUmVhZGluZXNzIFRlc3Qgb25seSkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gVGhlIHdyYXBwZXIgbXVzdCBrZWVwIGl0cyBgcjUtYm9keS13cmFwcGVyYCBjbGFzcyBhbG9uZ3NpZGUgdGhpcyBvbmU6XG4gIC8vIG1peGlucy90ZXN0X3Jlc3VsdHNfcGRmIHJhc3Rlcml6ZXMgdGhlIGxpdmUgU1ZHIGJ5IHRoYXQgc2VsZWN0b3IuXG4gICZfX3NvcmVuZXNzIHtcbiAgICBtYXJnaW4tdG9wOiAyOHB4O1xuICAgIHBhZGRpbmctdG9wOiAyNHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZGFpbHktcmVzdWx0cy1oYWlybGluZTtcbiAgfVxuXG4gICZfX3NvcmVuZXNzLWxhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gIC8vIFRoZSBkaXJlY3RpdmUgbGF5cyB0aGUgdHdvIHZpZXdzIG91dCBpbiBhIDx0YWJsZT47IGNlbnRyZSBpdCBhbmQgc3RyaXAgdGhlXG4gIC8vIGxlZ2FjeSB0YWJsZSBjaHJvbWUgX2Jhc2Uuc2NzcyBwdXRzIG9uIG9uZS5cbiAgJl9fYm9keW1hcCB7XG4gICAgdGFibGUge1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICB0ZCB7XG4gICAgICAgIHBhZGRpbmc6IDAgMTJweDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2JvZHltYXAtZmlndXJlIHtcbiAgICBtYXgtd2lkdGg6IDEyOHB4O1xuICAgIG1heC1oZWlnaHQ6IDI3MnB4O1xuICB9XG5cbiAgLy8gLS0gZGlzY2xvc3VyZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fZGlzY2xvc3VyZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgcGFkZGluZzogOHB4IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJHB1cnBsZS01MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJHgtcHVycGxlLWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gICZfX2NoZXZyb24ge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxuXG4gIC8vIC0tIHdoYXQgY2hhbmdlZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX2NoYW5nZXMge1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGRhaWx5LXJlc3VsdHMtaGFpcmxpbmU7XG4gIH1cblxuICAmX19jaGFuZ2VzLWxhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gICZfX2NoYW5nZS1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgcGFkZGluZzogMTRweCAxNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmYWZhZmE7XG5cbiAgICAmICsgJiB7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2YwZjBmMDtcbiAgICB9XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDhweDtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA4cHg7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDhweDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA4cHg7XG4gICAgfVxuICB9XG5cbiAgJl9fY2hhbmdlLW5hbWUge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJGJsYWNrLTgwMDtcbiAgfVxuXG4gICZfX2NoYW5nZS1kZXRhaWwge1xuICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBjb2xvcjogJGJsYWNrLTYwMDtcbiAgfVxuXG4gIC8vIC0tIGN0YSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX2N0YSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luLXRvcDogMzJweDtcbiAgICBwYWRkaW5nOiAxNHB4IDI4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHB1cnBsZS01MDA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtNTAwO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkeC1wdXJwbGUtaG92ZXI7XG4gICAgICBiYWNrZ3JvdW5kOiAkeC1wdXJwbGUtaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgJl9fY3RhLWFycm93IHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgfVxuXG4gIEBpbmNsdWRlIHJlc3BvbmQobW9iaWxlKSB7XG4gICAgcGFkZGluZzogMzJweCAyMHB4IDQ4cHg7XG5cbiAgICAmX190aXRsZSB7XG4gICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICB9XG5cbiAgICAvLyBUaHJlZSBjb2x1bW5zIG9mIDMwcHggbnVtYmVycyBkbyBub3Qgc3Vydml2ZSBhIHBob25lIHdpZHRoLlxuICAgICZfX2NvbHVtbnMge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGdhcDogMTZweDtcbiAgICB9XG5cbiAgICAmX19jb2x1bW4ge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAvLyBTdGFja2VkLCBzbyB0aGUgZGl2aWRlciBoYXMgdG8gdHVybiB3aXRoIHRoZSBjb2x1bW5zLlxuICAgICZfX2NvbHVtbnMgLmRhaWx5LXJlc3VsdHNfX2NvbHVtbiArIC5kYWlseS1yZXN1bHRzX19jb2x1bW4ge1xuICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGRhaWx5LXJlc3VsdHMtaGFpcmxpbmU7XG4gICAgICBwYWRkaW5nLXRvcDogMTZweDtcbiAgICB9XG5cbiAgICAmX19jdGEge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG4iLCIvLyBUaGUgY29tcGxldGlvbiBzY3JlZW4gZm9yIGEgcHJvZ3JhbSBzZXNzaW9uICh0ZW1wbGF0ZXMvc2Vzc2lvbl9jb21wbGV0ZS5odG1sKSwgc3dhcHBlZFxuLy8gaW4gb3ZlciB2aWV3cy9kYWlseS5odG1sIG9uY2UgQ29tcGxldGUgU2Vzc2lvbiBsYW5kcy5cbi8vXG4vLyBTaWJsaW5nIG9mIF9kYWlseV90ZXN0X3Jlc3VsdHMuc2NzcyBhbmQgZGVsaWJlcmF0ZWx5IGEgc2VwYXJhdGUgYmxvY2sgcmF0aGVyIHRoYW4gYVxuLy8gcmV1c2Ugb2YgLmRhaWx5LXJlc3VsdHM6IHRoYXQgb25lIG93bnMgdGhlIGRhaWx5LXRlc3QgcGFnZSBmcmFtZSwgaW5jbHVkaW5nIGEgY29tcG91bmRcbi8vIC52aWV3LWZsZXggc2VsZWN0b3IgdGhpcyBwYWdlIGhhcyBubyBuZWVkIG9mIChpdCBzaXRzIGluIGFuIG9yZGluYXJ5IC52aWV3LWxheW91dCkuIFRoZVxuLy8gdG9rZW5zIGJlbG93IGFyZSB0aGUgc2FtZSB2YWx1ZXMgb24gcHVycG9zZSAtIHBlci1wYXJ0aWFsIHRva2VuIGJsb2NrcyBhcmUgdGhlXG4vLyBjb252ZW50aW9uIGhlcmUsIHNlZSB0aGUgaWRlbnRpY2FsIHNldCBpbiBfZGFpbHlfcHJvZ3JhbS5zY3NzLlxuXG4vLyBUaGUgRmlnbWEgY2FsbHMgdGhlIGhlYWRsaW5lLCB0aGUgc3RyZWFrIGFuZCB0aGUgc3RhdCB2YWx1ZXMgdHJ1ZSBibGFjayByYXRoZXIgdGhhblxuLy8gdGhlIG5lYXItYmxhY2sgJGJsYWNrLTgwMCB0aGUgZGFpbHktdGVzdCBzY3JlZW5zIHVzZSBmb3IgZXZlcnl0aGluZy5cbi8vIFRoZSBzdGF0IHRpbGVzJyBsYWJlbHMgc2l0IGEgc2hhZGUgZGFya2VyIHRoYW4gdGhlIG11dGVkIGdyZXkgdXNlZCBlbHNld2hlcmUuXG4kc2Vzc2lvbi1jb21wbGV0ZS10cmFjazogI2U5ZWNlZjtcbiRzZXNzaW9uLWNvbXBsZXRlLWZpbGw6ICMyMGI3Njk7XG5cbi8vIG5nLWluY2x1ZGUgbGVhdmVzIGFuIHVuc3R5bGVkIHdyYXBwZXIgZGl2IGJldHdlZW4gLnZpZXctbGF5b3V0IGFuZCB0aGlzIGJsb2NrOyBhcyBhXG4vLyBmbGV4IGl0ZW0gaXQgc2hyaW5rLXRvLWZpdHMgYW5kIHRoZSBjZW50cmVkIGNvbHVtbiBkcmlmdHMgbGVmdC5cbi52aWV3LWxheW91dCA+IGRpdjpoYXMoPiAuc2Vzc2lvbi1jb21wbGV0ZSkge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4uc2Vzc2lvbi1jb21wbGV0ZSB7XG4gIHdpZHRoOiAxMDAlO1xuICAvLyA2NDBweCBjYXJkICsgdGhlIDI0cHggZ3V0dGVycyBlaXRoZXIgc2lkZSBvZiBpdCwgbWF0Y2hpbmcgLmRhaWx5LXJlc3VsdHMuXG4gIG1heC13aWR0aDogNjg4cHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiA0OHB4IDI0cHggNjRweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LWZhbWlseTogJ051ZGlzdGEnLCBzYW5zLXNlcmlmO1xuXG4gIC8vIE5ldXRyYWxpemUgdGhlIGdsb2JhbCBidXR0b24geyBtaW4td2lkdGg6IDExMHB4OyB1cHBlcmNhc2U7IGxvY2staGVpZ2h0IH0gcnVsZXMgZnJvbVxuICAvLyBfYmFzZS5zY3NzLCB3aGljaCBvdGhlcndpc2Ugd3JlY2sgdGhlIENUQS5cbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSB1bnN0eWxlLWJ1dHRvbjtcbiAgfVxuXG4gIC8vIC0tIGhlYWRlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFR3byBzdGFja2VkIGRpc2NzOiB0aGUgNzJweCB3YXNoIGlzIG9ubHkgfjIlIG9mZiB0aGUgcGFnZSBiYWNrZ3JvdW5kLCBzbyBvbiBpdHMgb3duXG4gIC8vIGl0IHJlYWRzIGFzIG5vdGhpbmcuIFRoZSBpbm5lciBkaXNjIGlzIHdoYXQgbWFrZXMgaXQgYSBoYWxvLlxuICAmX19jaGVjayB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogNzJweDtcbiAgICBoZWlnaHQ6IDcycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogJHB1cnBsZS0xMDA7XG4gIH1cblxuICAmX19jaGVjay1pbm5lciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogNTZweDtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6ICRwdXJwbGUtMjAwO1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgfVxuXG4gICZfX3RpdGxlIHtcbiAgICAvLyBUaGUgaGVhZGxpbmUgc2V0cyBzb2xpZCBhdCBsaW5lLWhlaWdodCAxLCBzbyB0aGUgZ2FwIHRvIHRoZSBzdHJlYWsgcm93IGhhcyB0byBjb21lXG4gICAgLy8gZW50aXJlbHkgZnJvbSB0aGlzIG1hcmdpbiByYXRoZXIgdGhhbiBmcm9tIGxlYWRpbmcuXG4gICAgbWFyZ2luOiAwIDAgNDBweDtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAvLyAxMDAlIGluIHRoZSBGaWdtYSAtIHRoZSBoZWFkbGluZSBzZXRzIHNvbGlkLCB1bmxpa2UgdGhlIDI4LzM2IHRoZSBkYWlseS10ZXN0XG4gICAgLy8gc2NyZWVucyB1c2UuXG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gIH1cblxuICAvLyAtLSBzdHJlYWsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19zdHJlYWsge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDE2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMzZweDtcbiAgICBmb250LXNpemU6IDQ4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogNTZweDtcbiAgICBjb2xvcjogJGJsYWNrLTkwMDtcbiAgfVxuXG4gICZfX3N0cmVhay1mbGFtZSB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDQ4cHg7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIH1cblxuICAvLyAtLSBjYXJkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBUaGUgMjQzcHggaXMgYSBmaXhlZCBGaWdtYSBoZWlnaHQsIGFuZCB0aGUgbWFyZ2lucyBiZWxvdyBhcmUgYnVkZ2V0ZWQgdG8gbGFuZCBvbiBpdFxuICAvLyBleGFjdGx5OiA0MCBwYWRkaW5nICsgNDQgYmFubmVyICsgNTggcHJvZ3Jlc3MgKyAyNCBnYXAgKyA3NyB0aWxlLiBDaGFuZ2luZyBhbnkgb2ZcbiAgLy8gdGhvc2UgcGllY2VzIG1lYW5zIHJlLWNoZWNraW5nIHRoaXMgbnVtYmVyIG9yIHRoZSBjYXJkIHdpbGwgY2xpcC4gVGhlIG1vYmlsZSBibG9ja1xuICAvLyByZWxlYXNlcyBpdCBiYWNrIHRvIGF1dG8sIHdoaWNoIGlzIHdoZXJlIHRoZSBiYW5uZXIgY29weSBjYW4gd3JhcCB0byB0d28gbGluZXMuXG4gICZfX2NhcmQge1xuICAgIGhlaWdodDogMjQzcHg7XG4gICAgcGFkZGluZzogMjBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR4LWJvcmRlci1mYWludDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogJHNoYWRvdy1jYXJkO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cblxuICAvLyBJY29uIGFuZCB0ZXh0IGNlbnRyZSBhcyBvbmUgZ3JvdXAsIHVubGlrZSB0aGUgY2FyZCdzIG90aGVyIHJvd3M6IHRoZSBiYW5uZXIgaXMgdGhlXG4gIC8vIG9ubHkgZnVsbC13aWR0aCBlbGVtZW50IGluc2lkZSB0aGUgb3RoZXJ3aXNlIGxlZnQtYWxpZ25lZCBjYXJkLlxuICAvLyA0NHB4IGZpeGVkLCBwZXIgdGhlIEZpZ21hLiBObyB2ZXJ0aWNhbCBwYWRkaW5nOiBhbGlnbi1pdGVtcyBjZW50cmVzIHRoZSAyMnB4IGxpbmVcbiAgLy8gYW5kIHRoZSAyMHB4IGljb24gaW5zaWRlIHRoZSBiYW5kIGluc3RlYWQsIHNvIHRoZSBoZWlnaHQgaXMgdGhlIHNpbmdsZSBjb250cm9sLlxuICAmX19iYW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTUwO1xuICAgIGNvbG9yOiAkcHVycGxlLTUwMDtcbiAgfVxuXG4gICZfX2Jhbm5lci1pY29uIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gIH1cblxuICAmX19iYW5uZXItdGV4dCB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgLy8gS2VlcHMgYSB3cmFwcGVkIHNlY29uZCBsaW5lIGNlbnRyZWQgdW5kZXIgdGhlIGZpcnN0IHJhdGhlciB0aGFuIGZsdXNoaW5nIGxlZnQuXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgLy8gLS0gcHJvZ3JhbSBwcm9ncmVzcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgJl9fcHJvZ3Jlc3Mge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gIH1cblxuICAmX19wcm9ncmVzcy1oZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgfVxuXG4gICZfX3Byb2dyZXNzLXdlZWsge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stODAwO1xuICB9XG5cbiAgLy8gUHVzaGVkIHJpZ2h0IGJ5IGl0cyBvd24gbWFyZ2luIHJhdGhlciB0aGFuIHNwYWNlLWJldHdlZW4sIHNvIGl0IHN0YXlzIHJpZ2h0LWFsaWduZWRcbiAgLy8gd2hlbiB0aGUgd2VlayBjb3VsZCBub3QgYmUgZGVyaXZlZCBhbmQgaXQgaXMgdGhlIG9ubHkgY2hpbGQuXG4gICZfX3Byb2dyZXNzLWNvdW50IHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogJGJsYWNrLTcwMDtcbiAgfVxuXG4gICZfX2JhciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogJHNlc3Npb24tY29tcGxldGUtdHJhY2s7XG4gIH1cblxuICAmX19iYXItZmlsbCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiAkc2Vzc2lvbi1jb21wbGV0ZS1maWxsO1xuICAgIHRyYW5zaXRpb246IHdpZHRoIDAuM3MgZWFzZTtcbiAgfVxuXG4gIC8vIC0tIHN0YXQgdGlsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICZfX3N0YXRzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMTJweDtcbiAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICB9XG5cbiAgLy8gNzdweCBmaXhlZCwgcGVyIHRoZSBGaWdtYTogMTIvMTIgcGFkZGluZyBhcm91bmQgYSAyMHB4IGxhYmVsLCBpdHMgNHB4IGdhcCBhbmQgYSAyOHB4XG4gIC8vIHZhbHVlIGNvbWVzIHRvIDc2LCBzbyB0aGUgaGVpZ2h0IGhhcyBhIHBpeGVsIG9mIHNsYWNrIHJhdGhlciB0aGFuIGNsaXBwaW5nLlxuICAmX19zdGF0IHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgaGVpZ2h0OiA3N3B4O1xuICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAkYmxhY2stMTAwO1xuICB9XG5cbiAgJl9fc3RhdC1sYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGNvbG9yOiAkYmxhY2stNzAwO1xuICB9XG5cbiAgJl9fc3RhdC12YWx1ZSB7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgY29sb3I6ICRibGFjay05MDA7XG4gIH1cblxuICAvLyAtLSBjdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAmX19jdGEge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1hcmdpbi10b3A6IDMycHg7XG4gICAgcGFkZGluZzogMTRweCAyOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRwdXJwbGUtNTAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAkcHVycGxlLTUwMDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJHgtcHVycGxlLWhvdmVyO1xuICAgICAgYmFja2dyb3VuZDogJHgtcHVycGxlLWhvdmVyO1xuICAgIH1cbiAgfVxuXG4gICZfX2N0YS1hcnJvdyB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gIH1cblxuICBAaW5jbHVkZSByZXNwb25kKG1vYmlsZSkge1xuICAgIHBhZGRpbmc6IDMycHggMjBweCA0OHB4O1xuXG4gICAgLy8gVGhlIDI0cHggaGVhZGxpbmUgYWxyZWFkeSBmaXRzIGEgcGhvbmUsIHNvIG9ubHkgdGhlIDQ4cHggc3RyZWFrIHN0ZXBzIGRvd24uXG4gICAgJl9fc3RyZWFrIHtcbiAgICAgIGdhcDogMTJweDtcbiAgICAgIGZvbnQtc2l6ZTogMzRweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiA0MnB4O1xuICAgIH1cblxuICAgICZfX3N0cmVhay1mbGFtZSB7XG4gICAgICB3aWR0aDogMzZweDtcbiAgICAgIGhlaWdodDogMzZweDtcbiAgICB9XG5cbiAgICAvLyBBbGwgdGhyZWUgZml4ZWQgaGVpZ2h0cyBhcmUgZGVza3RvcC1vbmx5LiBUaGUgdGlsZXMgc3RhY2sgaGVyZSBhbmQgdGhlIGJhbm5lciBjb3B5XG4gICAgLy8gY2FuIHdyYXAsIHNvIGhvbGRpbmcgMjQzLzQ0Lzc3IHdvdWxkIGNsaXAuXG4gICAgJl9fY2FyZCB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgJl9fYmFubmVyIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICB9XG5cbiAgICAvLyBUd28gdGlsZXMgZG8gbm90IHN1cnZpdmUgYSBwaG9uZSB3aWR0aCBzaWRlIGJ5IHNpZGUuXG4gICAgJl9fc3RhdHMge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAmX19zdGF0IHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAmX19jdGEge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQ09BLEFBQUEsQ0FBQyxFQUFFLENBQUMsQUFBQSxPQUFPLEVBQUUsQ0FBQyxBQUFBLE1BQU0sRUFBUCxDQUFDLEFvRHFFZCxjQUFjLEFBQUEsTUFBTSxFcERyRVAsQ0FBQyxBb0R5RWQsZUFBZSxBQUFBLE1BQU0sRXBEekVSLENBQUMsQW9EaUZkLGFBQWEsQUFBQSxNQUFNLENwRGpGRTtFR3FCbkIsa0JBQWtCLEVIcEJFLE9BQU87RUdxQnhCLGVBQWUsRUhyQkUsT0FBTztFR3NCbkIsVUFBVSxFSHRCRSxPQUFPO0VHMEI3QixxQkFBcUIsRUh6QkUsSUFBSTtFRzBCdEIsZ0JBQWdCLEVIMUJFLElBQUk7RUcyQnRCLGdCQUFnQixFSDNCRSxJQUFJO0VHNEJyQixlQUFlLEVINUJFLElBQUk7RUc2QmpCLFdBQVcsRUg3QkUsSUFBSSxHQUMxQjs7QUFFRCxBQUFBLElBQUksQ0FBQztFR2dCSCxrQkFBa0IsRUhmRSxVQUFVO0VHZ0IzQixlQUFlLEVIaEJFLFVBQVU7RUdpQnRCLFVBQVUsRUhqQkUsVUFBVTtFQUM5QixXQUFXLEVBQUUsOENBQThDO0VBQzNELFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLEdBQUc7RUFDaEIsV0FBVyxFQUFFLEdBQUc7RUFDaEIsTUFBTSxFQUFFLElBQUksR0FDYjs7QUFFRCxBQUFBLElBQUksQ0FBQztFQUNILFdBQVcsRUFBRSw4Q0FBOEM7RUFDM0QsTUFBTSxFQUFFLElBQUk7RUFDWixNQUFNLEVBQUUsQ0FBQztFQUNULE9BQU8sRUFBRSxDQUFDLEdBc0NYO0VBMUNELEFBTUUsSUFORSxBQU1ELFNBQVMsQUFBQSxNQUFNLENBQUM7SUFDZixPQUFPLEVBQUUsRUFBRTtJQUNYLFFBQVEsRUFBRSxLQUFLO0lBQ2YsR0FBRyxFQUFFLENBQUM7SUFDTixJQUFJLEVBQUUsQ0FBQztJQUNQLEtBQUssRUFBRSxDQUFDO0lBQ1IsTUFBTSxFQUFFLENBQUM7SUFDVCxnQkFBZ0IsRUFBRSxJQUFJO0lBQ3RCLGdCQUFnQixFQUFFLGtCQUFpQixHQUNwQztFQWZILEFBaUJFLElBakJFLENBaUJGLGdCQUFnQixDQUFDO0lHa0NqQixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQStCRSxNQUFNO0lBOUJ0QixjQUFjLEVBOEJFLE1BQU07SUF6QzlCLG1CQUFtQixFSGJTLE1BQU07SUdjMUIsV0FBVyxFSGRTLE1BQU07SUdzQ2xDLHVCQUF1QixFSHJDUyxNQUFNO0lHc0M5QixlQUFlLEVIdENTLE1BQU07SUdrRnRDLFVBQVUsRUhqRmEsSUFBSTtJR2tGM0IsVUFBVSxFSGxGYSxJQUFJO0lHbUYzQixNQUFNLEVIbkZpQixJQUFJO0lBRXpCLGdCQUFnQixFQUFFLFdBQVc7SUFDN0IsUUFBUSxFQUFFLEtBQUs7SUFDZixHQUFHLEVBQUUsQ0FBQztJQUNOLElBQUksRUFBRSxDQUFDO0lBQ1AsS0FBSyxFQUFFLENBQUM7SUFDUixPQUFPLEVBQUUsQ0FBQyxHQWFYO0lBekNILEFBOEJJLElBOUJBLENBaUJGLGdCQUFnQixHQWFaLE9BQU8sQ0FBQztNR3FCWixPQUFPLEVBQUUsWUFBWTtNQUNyQixPQUFPLEVBQUUsV0FBVztNQUNwQixPQUFPLEVBQUUsSUFBSTtNQVhiLHNCQUFzQixFQThDRSxHQUFHO01BN0NuQixjQUFjLEVBNkNFLEdBQUc7TUF4RDNCLG1CQUFtQixFSEFXLE1BQU07TUdDNUIsV0FBVyxFSERXLE1BQU07TUd5QnBDLHVCQUF1QixFSHhCVyxNQUFNO01HeUJoQyxlQUFlLEVIekJXLE1BQU07TUdxRXhDLFVBQVUsRUhwRWUsSUFBSTtNR3FFN0IsVUFBVSxFSHJFZSxJQUFJO01Hc0U3QixNQUFNLEVIdEVtQixJQUFJO01HMEU3QixTQUFTLEVIekVlLEtBQUs7TUcwRTdCLFNBQVMsRUgxRWUsS0FBSztNRzJFN0IsS0FBSyxFSDNFbUIsS0FBSztNQUN6QixnQkFBZ0IsRUFBRSxPQUFPO01BQ3pCLHlCQUF5QixFQUFFLEdBQUc7TUFDOUIsMEJBQTBCLEVBQUUsR0FBRztNQUMvQixTQUFTLEVBQUUsSUFBSSxHQUNoQjs7QUFJTCxBQUFBLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQztFQUM5QixXQUFXLEVBQUUsOENBQThDO0VBQzNELFNBQVMsRUFBRSxJQUFJLEdBQ2hCOztBQUVELEFBQUEsS0FBSyxDQUFDO0VBQ0osV0FBVyxFQUFFLE1BQU0sR0F1QnBCO0VBeEJELEFBR0UsS0FIRyxDQUdGLEFBQUEsSUFBQyxDQUFLLE1BQU0sQUFBWCxFQUFhO0lHL0RmLGtCQUFrQixFSGdFSSxJQUFJO0lHL0R2QixlQUFlLEVIK0RJLElBQUk7SUc5RGxCLFVBQVUsRUg4REksSUFBSTtJR3BEMUIsa0JBQWtCLEVIcURJLElBQUk7SUdwRHZCLGVBQWUsRUhvREksSUFBSTtJR25EbEIsVUFBVSxFSG1ESSxJQUFJO0lHM0QxQixxQkFBcUIsRUg0REksR0FBRztJRzNEekIsa0JBQWtCLEVIMkRJLEdBQUc7SUcxRHBCLGFBQWEsRUgwREksR0FBRztJQUMxQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0UxRWQsT0FBTztJRjJFVixPQUFPLEVBQUUsQ0FBQztJQUNWLE9BQU8sRUFBRSxHQUFHLEdBQ2I7RUFWSCxBQVlFLEtBWkcsQ0FZRixBQUFBLElBQUMsQ0FBSyxVQUFVLEFBQWYsRUFBaUI7SUd4RW5CLGtCQUFrQixFSHlFSSxJQUFJO0lHeEV2QixlQUFlLEVId0VJLElBQUk7SUd2RWxCLFVBQVUsRUh1RUksSUFBSTtJRzdEMUIsa0JBQWtCLEVIOERJLElBQUk7SUc3RHZCLGVBQWUsRUg2REksSUFBSTtJRzVEbEIsVUFBVSxFSDRESSxJQUFJO0lHcEUxQixxQkFBcUIsRUhxRUksR0FBRztJR3BFekIsa0JBQWtCLEVIb0VJLEdBQUc7SUduRXBCLGFBQWEsRUhtRUksR0FBRztJQUMxQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0VuRmQsT0FBTztJRm9GVixPQUFPLEVBQUUsQ0FBQztJQUNWLE9BQU8sRUFBRSxHQUFHLEdBQ2I7RUFuQkgsQUFxQkUsS0FyQkcsQUFxQkYsU0FBUyxDQUFDO0lBQ1QsS0FBSyxFQUFFLE9BQU8sR0FDZjs7QUFHSCxBQUFBLE1BQU0sQ0FBQztFR3RGTCxrQkFBa0IsRUh1RkUsSUFBSTtFR3RGckIsZUFBZSxFSHNGRSxJQUFJO0VHckZoQixVQUFVLEVIcUZFLElBQUk7RUczRXhCLGtCQUFrQixFSDRFRSxJQUFJO0VHM0VyQixlQUFlLEVIMkVFLElBQUk7RUcxRWhCLFVBQVUsRUgwRUUsSUFBSTtFR2xGeEIscUJBQXFCLEVIbUZFLEdBQUc7RUdsRnZCLGtCQUFrQixFSGtGRSxHQUFHO0VHakZsQixhQUFhLEVIaUZFLEdBQUc7RUd3QjFCLFVBQVUsRUh2QlcsSUFBSTtFR3dCekIsVUFBVSxFSHhCVyxJQUFJO0VHeUJ6QixNQUFNLEVIekJlLElBQUk7RUFDekIsZ0JBQWdCLEVFaEdWLE9BQU87RUZpR2IsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENFckdaLE9BQU87RUZzR1osS0FBSyxFRXRHQSxPQUFPO0VGdUdaLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLGNBQWMsRUFBRSxHQUFHO0VBQ25CLFNBQVMsRUFBRSxLQUFLO0VBQ2hCLE9BQU8sRUFBRSxDQUFDO0VBQ1YsT0FBTyxFQUFFLE1BQU07RUFDZixjQUFjLEVBQUUsU0FBUyxHQTRDMUI7RUF6REQsQUFlRSxNQWZJLEFBZUgsTUFBTSxDQUFDO0lHWVIsVUFBVSxFSFhhLElBQUk7SUdZM0IsVUFBVSxFSFphLElBQUk7SUdhM0IsTUFBTSxFSGJpQixJQUFJLEdBQzFCO0VBakJILEFBbUJFLE1BbkJJLEFBbUJILE1BQU0sQ0FBQztJQUNOLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0VBckJILEFBdUJFLE1BdkJJLEFBdUJILE9BQU8sQ0FBQztJR1VULFNBQVMsRUhUYSxLQUFLO0lHVTNCLFNBQVMsRUhWYSxLQUFLO0lHVzNCLEtBQUssRUhYaUIsS0FBSyxHQUMxQjtFQXpCSCxBQTJCRSxNQTNCSSxBQTJCSCxRQUFRLEVBM0JYLE1BQU0sQUEyQlEsS0FBSyxDQUFDO0lBQ2hCLGdCQUFnQixFRTNIYixPQUFPO0lGNEhWLEtBQUssRUV4SEQsT0FBTyxHRnlIWjtFQTlCSCxBQWdDRSxNQWhDSSxBQWdDSCxTQUFTLENBQUM7SUFDVCxLQUFLLEVBQUUsT0FBTztJQUNkLFlBQVksRUFBRSxPQUFPO0lBQ3JCLE1BQU0sRUFBRSxPQUFPLEdBQ2hCO0VBcENILEFBc0NFLE1BdENJLEFBc0NILFNBQVMsQ0FBQztJQUNULEtBQUssRUFBRSxPQUFPO0lBQ2QsWUFBWSxFQUFFLE9BQU87SUFDckIsTUFBTSxFQUFFLE9BQU8sR0FDaEI7RUExQ0gsQUE0Q0UsTUE1Q0ksQUE0Q0gsT0FBTyxDQUFDO0lBQ1AsZ0JBQWdCLEVBQUUsT0FBTztJQUN6QixLQUFLLEVFeklELE9BQU87SUYwSVgsV0FBVyxFQUFFLElBQUksR0FDbEI7RUFoREgsQUFrREUsTUFsREksQUFrREgsTUFBTSxDQUFDO0lBQ04sT0FBTyxFQUFFLENBQUMsR0FDWDtFQXBESCxBQXNERSxNQXRESSxBQXNESCxrQkFBa0IsQ0FBQztJQUNsQixNQUFNLEVBQUUsQ0FBQyxHQUNWOztBQUdILEFBQUEsTUFBTSxHQUFHLE1BQU0sQ0FBQztFQUNkLFdBQVcsRUFBRSxHQUFHLEdBQ2pCOztBRytERyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RUh6RDFCLEFBQUEsS0FBSztFQUNMLE1BQU07RUFDTixRQUFRLENBQUM7SUFDUCxTQUFTLEVBQUUsSUFBSSxHQUNoQjs7QUFHSCxBQUFBLGVBQWUsQ0FBQztFQUNkLEtBQUssRUUxS0EsT0FBTztFRjJLWixTQUFTLEVBQUUsSUFBSSxHQUtoQjtFQVBELEFBSUUsZUFKYSxBQUlaLFNBQVMsQ0FBQztJQUNULEtBQUssRUFBRSxPQUFPLEdBQ2Y7O0FBR0gsQUFBQSxlQUFlLENBQUM7RUFDZDs7OztJQUlFO0VBQ0YsT0FBTyxFQUFFLE1BQU07RUFDZixnQkFBZ0IsRUFBRSxPQUFPO0VBQ3pCLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLEtBQUssRUFBRSxPQUFPLEdBTWY7RUFmRCxBQVdFLGVBWGEsQ0FXYixDQUFDLENBQUM7SUFDQSxlQUFlLEVBQUUsSUFBSTtJQUNyQixLQUFLLEVBQUUsT0FBTyxHQUNmOztDQUdILEFBQUEsQUFBQSxTQUFDLEFBQUEsSUFBWSxBQUFBLFFBQUMsQUFBQSxHQUFXLFNBQVMsQ0FBQztFQUNqQyxPQUFPLEVBQUUsZUFBZSxHQUN6Qjs7QUFFRCxBQUFBLGVBQWUsQ0FBQztFRzFIZCx1QkFBdUIsRUgySE8sT0FBTztFRzFIN0IsZUFBZSxFSDBITyxPQUFPO0VHOUVyQyxVQUFVLEVIK0VXLElBQUk7RUc5RXpCLFVBQVUsRUg4RVcsSUFBSTtFRzdFekIsTUFBTSxFSDZFZSxJQUFJLEdBa0cxQjtFQXBHRCxBQUlFLGVBSmEsQ0FJYixLQUFLLENBQUM7SUdqRk4sVUFBVSxFSGtGYSxJQUFJO0lHakYzQixVQUFVLEVIaUZhLElBQUk7SUdoRjNCLE1BQU0sRUhnRmlCLElBQUk7SUc1RTNCLFNBQVMsRUg2RWEsS0FBSztJRzVFM0IsU0FBUyxFSDRFYSxLQUFLO0lHM0UzQixLQUFLLEVIMkVpQixLQUFLLEdBQzFCO0VBUEgsQUFTRSxlQVRhLENBU2IsWUFBWSxDQUFDO0lHbkliLHVCQUF1QixFSG9JUyxRQUFRO0lHbkloQyxlQUFlLEVIbUlTLFFBQVE7SUd4S3hDLFlBQVksRUh5S0ksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lHeEtwQixRQUFRLEVId0tJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJR3ZLaEIsSUFBSSxFSHVLSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0F3RnZCO0lBbkdILEFBYUksZUFiVyxDQVNiLFlBQVksQ0FJVixDQUFDLEFBQUEsVUFBVSxDQUFDO01BQ1YsT0FBTyxFQUFFLEtBQUs7TUFDZCxLQUFLLEVBQUUsSUFBSTtNQUNYLE9BQU8sRUFBRSxHQUFHO01BQ1osWUFBWSxFQUFFLElBQUk7TUFDbEIsV0FBVyxFQUFFLEdBQUc7TUFDaEIsU0FBUyxFQUFFLElBQUksR0FDaEI7SUFwQkwsQUFzQkksZUF0QlcsQ0FTYixZQUFZLEdBYVIsR0FBRyxDQUFDO01HcExSLFlBQVksRUhxTE0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO01HcEx0QixRQUFRLEVIb0xNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtNR25MbEIsSUFBSSxFSG1MTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TUd2SjFCLE9BQU8sRUFBRSxZQUFZO01BQ3JCLE9BQU8sRUFBRSxXQUFXO01BQ3BCLE9BQU8sRUFBRSxJQUFJO01BWGIsc0JBQXNCLEVBOENFLEdBQUc7TUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztNQS9CM0IsdUJBQXVCLEVIbUpXLFFBQVE7TUdsSmxDLGVBQWUsRUhrSlcsUUFBUTtNR3RHMUMsVUFBVSxFSHVHZSxJQUFJO01HdEc3QixVQUFVLEVIc0dlLElBQUk7TUdyRzdCLE1BQU0sRUhxR21CLElBQUk7TUFDekIsTUFBTSxFQUFFLFFBQVEsR0FtRGpCO01BOUVMLEFBNkJNLGVBN0JTLENBU2IsWUFBWSxHQWFSLEdBQUcsR0FPRCxHQUFHLENBQUM7UUc3SlYsT0FBTyxFQUFFLFlBQVk7UUFDckIsT0FBTyxFQUFFLFdBQVc7UUFDcEIsT0FBTyxFQUFFLElBQUk7UUFYYixzQkFBc0IsRUErQkUsTUFBTTtRQTlCdEIsY0FBYyxFQThCRSxNQUFNO1FBekM5QixtQkFBbUIsRUhrTGEsTUFBTTtRR2pMOUIsV0FBVyxFSGlMYSxNQUFNO1FHekp0Qyx1QkFBdUIsRUgwSmEsTUFBTTtRR3pKbEMsZUFBZSxFSHlKYSxNQUFNO1FBQ3BDLE9BQU8sRUFBRSxJQUFJO1FBQ2IsU0FBUyxFQUFFLElBQUk7UUFDZixNQUFNLEVBQUUsT0FBTyxHQXNDaEI7UUF6RVAsQUFxQ1EsZUFyQ08sQ0FTYixZQUFZLEdBYVIsR0FBRyxHQU9ELEdBQUcsQ0FRSCxDQUFDLENBQUM7VUFDQSxTQUFTLEVBQUUsSUFBSTtVQUNmLE9BQU8sRUFBRSxLQUFLO1VBQ2QsS0FBSyxFQUFFLElBQUk7VUFDWCxNQUFNLEVBQUUsZ0JBQWdCLEdBQ3pCO1FBMUNULEFBNENRLGVBNUNPLENBU2IsWUFBWSxHQWFSLEdBQUcsR0FPRCxHQUFHLEFBZUYsTUFBTSxDQUFDO1VBQ04sS0FBSyxFRW5QSCxPQUFPLEdGb1BWO1FBOUNULEFBZ0RRLGVBaERPLENBU2IsWUFBWSxHQWFSLEdBQUcsR0FPRCxHQUFHLEFBbUJGLGdCQUFnQixDQUFDO1VHaEx4QixPQUFPLEVBQUUsWUFBWTtVQUNyQixPQUFPLEVBQUUsV0FBVztVQUNwQixPQUFPLEVBQUUsSUFBSTtVQVhiLHNCQUFzQixFQThDRSxHQUFHO1VBN0NuQixjQUFjLEVBNkNFLEdBQUc7VUEvQjNCLHVCQUF1QixFSDRLZSxVQUFVO1VHM0t4QyxlQUFlLEVIMktlLFVBQVU7VUFFeEMsTUFBTSxFQUFFLElBQUk7VUFDWixTQUFTLEVBQUUsSUFBSTtVQUNmLFdBQVcsRUFBRSxHQUFHO1VBQ2hCLFNBQVMsRUFBRSxJQUFJO1VBQ2YsWUFBWSxFQUFFLElBQUksR0FnQm5CO1VBeEVULEFBMERVLGVBMURLLENBU2IsWUFBWSxHQWFSLEdBQUcsR0FPRCxHQUFHLEFBbUJGLGdCQUFnQixDQVVmLElBQUksQ0FBQztZQUNILE1BQU0sRUFBRSxPQUFPLEdBQ2hCO1VBNURYLEFBOERVLGVBOURLLENBU2IsWUFBWSxHQWFSLEdBQUcsR0FPRCxHQUFHLEFBbUJGLGdCQUFnQixDQWNmLElBQUksQUFBQSxZQUFZLENBQUM7WUFDZixXQUFXLEVBQUUsTUFBTSxHQUNwQjtVQWhFWCxBQWtFVSxlQWxFSyxDQVNiLFlBQVksR0FhUixHQUFHLEdBT0QsR0FBRyxBQW1CRixnQkFBZ0IsQ0FrQmYsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNWLFdBQVcsRUFBRSxJQUFJLEdBSWxCO1lBdkVYLEFBb0VZLGVBcEVHLENBU2IsWUFBWSxHQWFSLEdBQUcsR0FPRCxHQUFHLEFBbUJGLGdCQUFnQixDQWtCZixJQUFJLEdBQUcsSUFBSSxBQUVSLE1BQU0sQ0FBQztjQUNOLGVBQWUsRUFBRSxTQUFTLEdBQzNCO01BdEViLEFBMkVNLGVBM0VTLENBU2IsWUFBWSxHQWFSLEdBQUcsR0FxREQsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNWLFdBQVcsRUFBRSxJQUFJLEdBQ2xCO0lBN0VQLEFBaUZNLGVBakZTLENBU2IsWUFBWSxHQXVFUixNQUFNLEFBQ0wsWUFBWSxDQUFDO01BQ1osTUFBTSxFQUFFLFlBQVksR0FDckI7SUFuRlAsQUFxRk0sZUFyRlMsQ0FTYixZQUFZLEdBdUVSLE1BQU0sQUFLTCxXQUFXLENBQUM7TUFDWCxNQUFNLEVBQUUsWUFBWSxHQUNyQjtJQXZGUCxBQXlGTSxlQXpGUyxDQVNiLFlBQVksR0F1RVIsTUFBTSxHQVNKLEdBQUcsQ0FBQztNR3pOVixPQUFPLEVBQUUsWUFBWTtNQUNyQixPQUFPLEVBQUUsV0FBVztNQUNwQixPQUFPLEVBQUUsSUFBSTtNQVhiLHNCQUFzQixFQThDRSxHQUFHO01BN0NuQixjQUFjLEVBNkNFLEdBQUc7TUF4RDNCLG1CQUFtQixFQTZETyxNQUFNO01BNUR4QixXQUFXLEVBNERPLE1BQU07TUFwQ2hDLHVCQUF1QixFSHFOYSxNQUFNO01HcE5sQyxlQUFlLEVIb05hLE1BQU0sR0FNckM7TUFqR1AsQUE2RlEsZUE3Rk8sQ0FTYixZQUFZLEdBdUVSLE1BQU0sR0FTSixHQUFHLENBSUgsQ0FBQyxBQUFBLEdBQUcsQ0FBQztRQUNILFNBQVMsRUFBRSxJQUFJO1FBQ2YsWUFBWSxFQUFFLEdBQUcsR0FDbEI7O0FBTVQsQUFBQSxhQUFhLENBQUM7RUduTFosVUFBVSxFSG9MVyxJQUFJO0VHbkx6QixVQUFVLEVIbUxXLElBQUk7RUdsTHpCLE1BQU0sRUhrTGUsSUFBSSxHQVExQjtFQU5HLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztJQUg1QixBQUVFLGFBRlcsQUFFVixVQUFVLENBQUM7TUFFUixVQUFVLEVBQUUsSUFBSTtNQUNoQixRQUFRLEVBQUUsUUFBUTtNQUNsQixjQUFjLEVBQUUsSUFBSSxHQUV2Qjs7QUFHSCxBQUFBLGFBQWEsQ0FBQztFQUNaLE1BQU0sRUFBRSxDQUFDO0VBQ1QsT0FBTyxFQUFFLENBQUMsR0FDWDs7QUFFRCxBQUFBLGVBQWUsQ0FBQztFQUFFLGdCQUFnQixFQUFFLE9BQU8sR0FBSzs7QUFDaEQsQUFBQSxrQkFBa0IsQ0FBQztFQUFFLGdCQUFnQixFQUFFLE9BQU8sR0FBSTs7QUFDbEQsQUFBQSxpQkFBaUIsQ0FBQztFQUFFLGdCQUFnQixFQUFFLE9BQU8sR0FBSTs7QUFDakQsQUFBQSxVQUFVLENBQUM7RUFBRSxLQUFLLEVBQUUsT0FBTyxHQUFJOztBQUMvQixBQUFBLFNBQVMsQ0FBQztFQUFFLEtBQUssRUFBRSxPQUFPLEdBQUk7O0FBQzlCLEFBQUEsVUFBVSxDQUFDO0VBQUUsS0FBSyxFQUFFLE9BQU8sR0FBSTs7QUFDL0IsQUFBQSxnQkFBZ0IsQ0FBQztFQUFFLEtBQUssRUFBRSxPQUFPLEdBQUk7O0FBQ3JDLEFBQUEsWUFBWSxDQUFDO0VBQUUsS0FBSyxFQUFFLE9BQU8sR0FBSTs7QUFDakMsQUFBQSxXQUFXLENBQUM7RUFBRSxLQUFLLEVBQUUsT0FBTyxHQUFJOztBQUVoQyxBQUFBLFFBQVEsQ0FBQztFQUNQLGdCQUFnQixFQUFFLE9BQU8sR0FDMUI7O0FBRUQsQUFBQSxPQUFPLENBQUM7RUFDTixnQkFBZ0IsRUFBRSxPQUFPLEdBQzFCOztBQUVELEFBQUEsVUFBVSxDQUFDO0VBQ1QsZ0JBQWdCLEVBQUUsT0FBTyxHQUMxQjs7QUFFRCxBQUFBLE9BQU8sQ0FBQztFQUNOLGdCQUFnQixFQUFFLE9BQU8sR0FDMUI7O0FBRUQsQUFBQSxVQUFVLENBQUM7RUdoUlQsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFYYixzQkFBc0IsRUErQkUsTUFBTTtFQTlCdEIsY0FBYyxFQThCRSxNQUFNO0VINFA5QixVQUFVLEVBQUUsS0FBSyxHQUNsQjs7QUFFRCxBQUFBLFVBQVUsQ0FBQztFR25UVCxZQUFZLEVIb1RFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtFR25UbEIsUUFBUSxFSG1URSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7RUdsVGQsSUFBSSxFSGtURSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FDdkI7O0FBRUQsQUFBQSxZQUFZLENBQUM7RUd2VFgsWUFBWSxFSHdURSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7RUd2VGxCLFFBQVEsRUh1VEUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0VHdFRkLElBQUksRUhzVEUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQ3ZCOztBQUVELEFBQUEsWUFBWSxDQUFDO0VHN1JYLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBWGIsc0JBQXNCLEVBOENFLEdBQUc7RUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztFQS9CM0IsdUJBQXVCLEVIeVJPLE1BQU07RUd4UjVCLGVBQWUsRUh3Uk8sTUFBTTtFRzdUcEMsWUFBWSxFSDhURSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7RUc3VGxCLFFBQVEsRUg2VEUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0VHNVRkLElBQUksRUg0VEUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQ3ZCOztBQUVELEFBQUEsV0FBVyxDQUFDO0VHblNWLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBWGIsc0JBQXNCLEVBK0JFLE1BQU07RUE5QnRCLGNBQWMsRUE4QkUsTUFBTTtFQXBEOUIsWUFBWSxFSG1VRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7RUdsVWxCLFFBQVEsRUhrVUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0VHalVkLElBQUksRUhpVUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQ3ZCOztBQUVELEFBQUEsZUFBZSxDQUFDO0VHeFNkLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBWGIsc0JBQXNCLEVBOENFLEdBQUc7RUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztFQW9CM0IsU0FBUyxFSGlQVyxNQUFNO0VHaFAxQixTQUFTLEVIZ1BXLE1BQU07RUcvTzFCLEtBQUssRUgrT2UsTUFBTSxHQWMzQjtFQWhCRCxBQUlFLGVBSmEsQUFJWixTQUFTLENBQUM7SUcvVFgsbUJBQW1CLEVIK1RvQixNQUFNO0lHOVRyQyxXQUFXLEVIOFRvQixNQUFNLEdBQUs7RUFKcEQsQUFLRSxlQUxhLEFBS1osUUFBUSxDQUFDO0lHdlNWLHVCQUF1QixFSHVTbUIsYUFBYTtJR3RTL0MsZUFBZSxFSHNTbUIsYUFBYSxHQUFLO0VBTDlELEFBTUUsZUFOYSxBQU1aLElBQUksQ0FBQztJR3hTTix1QkFBdUIsRUh3U2UsUUFBUTtJR3ZTdEMsZUFBZSxFSHVTZSxRQUFRLEdBQUs7RUFOckQsQUFPRSxlQVBhLEFBT1osS0FBSyxDQUFDO0lHL1JQLGlCQUFpQixFSCtSVyxJQUFJO0lHOVJ4QixTQUFTLEVIOFJXLElBQUksR0FBSztFQVB2QyxBQVFFLGVBUmEsQUFRWixPQUFPLENBQUM7SUc5VFQsa0JBQWtCLEVIOFRrQixNQUFNO0lHN1RsQyxVQUFVLEVINlRrQixNQUFNLEdBQUs7RUFSakQsQUFVRSxlQVZhLEFBVVosT0FBTyxDQUFDO0lHbFRULE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBK0JFLE1BQU07SUE5QnRCLGNBQWMsRUE4QkUsTUFBTSxHSGlTN0I7SUFmSCxBQVlJLGVBWlcsQUFVWixPQUFPLEFBRUwsT0FBTyxDQUFDO01HOVNYLHVCQUF1QixFSCtTVyxNQUFNO01HOVNoQyxlQUFlLEVIOFNXLE1BQU0sR0FDckM7O0FBSUwsQUFBQSxpQkFBaUIsQ0FBQztFRzFUaEIsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFYYixzQkFBc0IsRUErQkUsTUFBTTtFQTlCdEIsY0FBYyxFQThCRSxNQUFNLEdIaVQvQjtFQWJELEFBR0UsaUJBSGUsQUFHZCxLQUFLLENBQUM7SUczVlAsWUFBWSxFSDJWVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SUcxVjNCLFFBQVEsRUgwVlcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lHelZ2QixJQUFJLEVIeVZXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFLO0VBSHRDLEFBSUUsaUJBSmUsQUFJZCxJQUFJLENBQUM7SUdqVk4sbUJBQW1CLEVIaVZlLFVBQVU7SUdoVnBDLFdBQVcsRUhnVmUsVUFBVSxHQUFLO0VBSm5ELEFBS0UsaUJBTGUsQUFLZCxPQUFPLENBQUM7SUdsVlQsbUJBQW1CLEVIa1ZrQixRQUFRO0lHalZyQyxXQUFXLEVIaVZrQixRQUFRLEdBQUs7RUFMcEQsQUFNRSxpQkFOZSxBQU1kLE9BQU8sQ0FBQztJR25WVCxtQkFBbUIsRUhtVmtCLE1BQU07SUdsVm5DLFdBQVcsRUhrVmtCLE1BQU0sR0FBSztFQU5sRCxBQU9FLGlCQVBlLEFBT2QsT0FBTyxDQUFDO0lHM1RULHVCQUF1QixFSDJUa0IsTUFBTTtJRzFUdkMsZUFBZSxFSDBUa0IsTUFBTSxHQUFLO0VBUHRELEFBUUUsaUJBUmUsQUFRZCxRQUFRLENBQUM7SUc1VFYsdUJBQXVCLEVINFRtQixhQUFhO0lHM1QvQyxlQUFlLEVIMlRtQixhQUFhLEdBQUs7RUFSOUQsQUFTRSxpQkFUZSxBQVNkLE9BQU8sQ0FBQztJRzdUVCx1QkFBdUIsRUg2VGtCLFlBQVk7SUc1VDdDLGVBQWUsRUg0VGtCLFlBQVksR0FBSztFQVQ1RCxBQVVFLGlCQVZlLEFBVWQsTUFBTSxDQUFDO0lHOVRSLHVCQUF1QixFSDhUaUIsVUFBVTtJRzdUMUMsZUFBZSxFSDZUaUIsVUFBVSxHQUFLO0VBVnpELEFBV0UsaUJBWGUsQUFXZCxJQUFJLENBQUM7SUcvVE4sdUJBQXVCLEVIK1RlLFFBQVE7SUc5VHRDLGVBQWUsRUg4VGUsUUFBUSxHQUFLO0VBWHJELEFBWUUsaUJBWmUsQUFZZCxLQUFLLENBQUM7SUd0VFAsaUJBQWlCLEVIc1RXLElBQUk7SUdyVHhCLFNBQVMsRUhxVFcsSUFBSSxHQUFLOztBQUd2QyxBQUFBLGNBQWMsQ0FBQztFR3pVYixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQThDRSxHQUFHO0VBN0NuQixjQUFjLEVBNkNFLEdBQUcsR0hpVDVCO0VBYkQsQUFHRSxjQUhZLEFBR1gsS0FBSyxDQUFDO0lHMVdQLFlBQVksRUgwV1csQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lHelczQixRQUFRLEVIeVdXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJR3hXdkIsSUFBSSxFSHdXVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBSztFQUh0QyxBQUlFLGNBSlksQUFJWCxJQUFJLENBQUM7SUdoV04sbUJBQW1CLEVIZ1dlLFVBQVU7SUcvVnBDLFdBQVcsRUgrVmUsVUFBVSxHQUFLO0VBSm5ELEFBS0UsY0FMWSxBQUtYLE9BQU8sQ0FBQztJR2pXVCxtQkFBbUIsRUhpV2tCLFFBQVE7SUdoV3JDLFdBQVcsRUhnV2tCLFFBQVEsR0FBSztFQUxwRCxBQU1FLGNBTlksQUFNWCxPQUFPLENBQUM7SUdsV1QsbUJBQW1CLEVIa1drQixNQUFNO0lHalduQyxXQUFXLEVIaVdrQixNQUFNLEdBQUs7RUFObEQsQUFPRSxjQVBZLEFBT1gsT0FBTyxDQUFDO0lHMVVULHVCQUF1QixFSDBVa0IsTUFBTTtJR3pVdkMsZUFBZSxFSHlVa0IsTUFBTSxHQUFLO0VBUHRELEFBUUUsY0FSWSxBQVFYLFFBQVEsQ0FBQztJRzNVVix1QkFBdUIsRUgyVW1CLGFBQWE7SUcxVS9DLGVBQWUsRUgwVW1CLGFBQWEsR0FBSztFQVI5RCxBQVNFLGNBVFksQUFTWCxPQUFPLENBQUM7SUc1VVQsdUJBQXVCLEVINFVrQixZQUFZO0lHM1U3QyxlQUFlLEVIMlVrQixZQUFZLEdBQUs7RUFUNUQsQUFVRSxjQVZZLEFBVVgsTUFBTSxDQUFDO0lHN1VSLHVCQUF1QixFSDZVaUIsVUFBVTtJRzVVMUMsZUFBZSxFSDRVaUIsVUFBVSxHQUFLO0VBVnpELEFBV0UsY0FYWSxBQVdYLElBQUksQ0FBQztJRzlVTix1QkFBdUIsRUg4VWUsUUFBUTtJRzdVdEMsZUFBZSxFSDZVZSxRQUFRLEdBQUs7RUFYckQsQUFZRSxjQVpZLEFBWVgsS0FBSyxDQUFDO0lHclVQLGlCQUFpQixFSHFVVyxJQUFJO0lHcFV4QixTQUFTLEVIb1VXLElBQUksR0FBSzs7QUFHdkMsQUFBQSxPQUFPLENBQUM7RUFDTixPQUFPLEVBQUUsSUFBSSxHQUNkOztBQUdELEFBQUEsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFELEtBQUMsQUFBQSxFQUFZO0VBQ2hCLHFCQUFxQixFQUFFLElBQUk7RUFDM0IsbUJBQW1CLEVBQUUsSUFBSTtFQUN6QixrQkFBa0IsRUFBRSxJQUFJO0VBQ3hCLDJCQUEyQixFQUFFLFdBQVc7RUFDeEMsZUFBZSxFQUFFLElBQUk7RUFDckIsTUFBTSxFQUFFLENBQUM7RUFDVCxLQUFLLEVBQUUsSUFBSTtFQUNYLE9BQU8sRUFBRSxDQUFDO0VBQ1YsYUFBYSxFQUFFLEdBQUc7RUFDbEIsVUFBVSxFQUFFLFdBQVc7RUFDdkIsZ0JBQWdCLEVBQUUsNkZBQTZGO0VBQy9HLE1BQU0sRUFBRSxPQUFPLEdBMEZoQjtFQXRHRCxBQWNFLEtBZEcsQ0FBQSxBQUFBLElBQUMsQ0FBRCxLQUFDLEFBQUEsQ0FjSCxNQUFNLENBQUM7SUFDTixPQUFPLEVBQUUsSUFBSSxHQUNkO0VBaEJILEFBa0JFLEtBbEJHLENBQUEsQUFBQSxJQUFDLENBQUQsS0FBQyxBQUFBLENBa0JILHNCQUFzQixDQUFDO0lBQ3RCLGtCQUFrQixFQUFFLElBQUk7SUFDeEIsTUFBTSxFQUFFLGlCQUFpQjtJQUN6QixNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxJQUFJO0lBQ1gsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLE9BQU87SUFDbkIsTUFBTSxFQUFFLE9BQU87SUFDZixVQUFVLEVBQUUsS0FBSyxHQUNsQjtFQTNCSCxBQTZCRSxLQTdCRyxDQUFBLEFBQUEsSUFBQyxDQUFELEtBQUMsQUFBQSxDQTZCSCwrQkFBK0IsQ0FBQztJQUMvQixLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osTUFBTSxFQUFFLE9BQU87SUFDZixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsV0FBVyxHQUN4QjtFQW5DSCxBQXFDRSxLQXJDRyxDQUFBLEFBQUEsSUFBQyxDQUFELEtBQUMsQUFBQSxDQXFDSCxrQkFBa0IsQ0FBQztJQUNsQixlQUFlLEVBQUUsSUFBSTtJQUNyQixNQUFNLEVBQUUsaUJBQWlCO0lBQ3pCLE1BQU0sRUFBRSxJQUFJO0lBQ1osS0FBSyxFQUFFLElBQUk7SUFDWCxhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsT0FBTztJQUNuQixNQUFNLEVBQUUsT0FBTyxHQUNoQjtFQTdDSCxBQStDRSxLQS9DRyxDQUFBLEFBQUEsSUFBQyxDQUFELEtBQUMsQUFBQSxDQStDSCxrQkFBa0IsQ0FBQztJQUNsQixLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osTUFBTSxFQUFFLE9BQU87SUFDZixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsV0FBVyxHQUN4QjtFQXJESCxBQXVERSxLQXZERyxDQUFBLEFBQUEsSUFBQyxDQUFELEtBQUMsQUFBQSxDQXVESCxrQkFBa0IsQ0FBQztJQUNsQixNQUFNLEVBQUUsQ0FBQztJQUNULE9BQU8sRUFBRSxDQUFDLEdBQ1g7RUExREgsQUE0REUsS0E1REcsQ0FBQSxBQUFBLElBQUMsQ0FBRCxLQUFDLEFBQUEsQ0E0REgsV0FBVyxDQUFDO0lBQ1gsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLE1BQU0sRUFBRSxPQUFPO0lBQ2YsVUFBVSxFQUFFLFdBQVc7SUFDdkIsWUFBWSxFQUFFLFdBQVc7SUFDekIsWUFBWSxFQUFFLE1BQU07SUFDcEIsS0FBSyxFQUFFLFdBQVcsR0FDbkI7RUFwRUgsQUFzRUUsS0F0RUcsQ0FBQSxBQUFBLElBQUMsQ0FBRCxLQUFDLEFBQUEsQ0FzRUgsV0FBVyxDQUFDO0lBQ1gsTUFBTSxFQUFFLGlCQUFpQjtJQUN6QixNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxJQUFJO0lBQ1gsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLE9BQU87SUFDbkIsTUFBTSxFQUFFLE9BQU8sR0FDaEI7RUE3RUgsQUErRUUsS0EvRUcsQ0FBQSxBQUFBLElBQUMsQ0FBRCxLQUFDLEFBQUEsQ0ErRUgsYUFBYSxDQUFDO0lBQ2IsT0FBTyxFQUFFLElBQUksR0FDZDtFQWpGSCxBQW1GRSxLQW5GRyxDQUFBLEFBQUEsSUFBQyxDQUFELEtBQUMsQUFBQSxDQW1GSCxnQkFBZ0IsQ0FBQztJQUNoQixVQUFVLEVBQUUsT0FBTztJQUNuQixNQUFNLEVBQUUsbUJBQW1CO0lBQzNCLGFBQWEsRUFBRSxHQUFHLEdBQ25CO0VBdkZILEFBeUZFLEtBekZHLENBQUEsQUFBQSxJQUFDLENBQUQsS0FBQyxBQUFBLENBeUZILGdCQUFnQixDQUFDO0lBQ2hCLFVBQVUsRUFBRSxPQUFPO0lBQ25CLE1BQU0sRUFBRSxtQkFBbUI7SUFDM0IsYUFBYSxFQUFFLEdBQUcsR0FDbkI7RUE3RkgsQUErRkUsS0EvRkcsQ0FBQSxBQUFBLElBQUMsQ0FBRCxLQUFDLEFBQUEsQ0ErRkgsTUFBTSxBQUFBLGdCQUFnQixDQUFDO0lBQ3RCLFVBQVUsRUFBRSxPQUFPLEdBQ3BCO0VBakdILEFBbUdFLEtBbkdHLENBQUEsQUFBQSxJQUFDLENBQUQsS0FBQyxBQUFBLENBbUdILE1BQU0sQUFBQSxnQkFBZ0IsQ0FBQztJQUN0QixVQUFVLEVBQUUsT0FBTyxHQUNwQjs7QUFHSCxBQUFBLGlCQUFpQixBQUFBLGVBQWUsQ0FBQztFQUMvQixLQUFLLEVBQUUsSUFBSSxDQUFBLFVBQVU7RUFDckIsU0FBUyxFQUFFLElBQUksQ0FBQSxVQUFVO0VBQ3pCLFNBQVMsRUFBRSxJQUFJLENBQUEsVUFBVTtFQUN6QixPQUFPLEVBQUUsSUFBSTtFQUNiLEdBQUcsRUFBRSxJQUFJLEdBWVY7RUFqQkQsQUFNRSxpQkFOZSxBQUFBLGVBQWUsQ0FNOUIsdUJBQXVCLENBQUM7SUFDdEIsU0FBUyxFQUFFLGVBQWU7SUFDMUIsU0FBUyxFQUFFLGVBQWU7SUFDMUIsS0FBSyxFQUFFLGVBQWUsR0FDdkI7RUFWSCxBQVdFLGlCQVhlLEFBQUEsZUFBZSxDQVc5QixLQUFLLENBQUMsV0FBVyxDQUFDO0lBQ2hCLEdBQUcsRUFBRSxJQUFJLEdBSVY7SUFoQkgsQUFhSSxpQkFiYSxBQUFBLGVBQWUsQ0FXOUIsS0FBSyxDQUFDLFdBQVcsR0FFYixHQUFHLENBQUM7TUFDSixNQUFNLEVBQUUsQ0FBQyxDQUFBLFVBQVUsR0FDcEI7O0FJemhCTCxBQUFBLGNBQWMsQ0FBQztFQUNiLFFBQVEsRUFBRSxLQUFLO0VBQ2YsR0FBRyxFQUFFLENBQUM7RUFDTixJQUFJLEVBQUUsQ0FBQztFQUNQLEtBQUssRUFBRSxDQUFDO0VBQ1IsTUFBTSxFQUFFLENBQUM7RUFDVCxPQUFPLEVBQUUsSUFBSTtFQUNiLFFBQVEsRUFBRSxNQUFNO0VBRWhCLGdCQUFnQixFQUFFLE9BQU87RUFDekIsZ0JBQWdCLEVBQUUsd0JBQXVCLEdBZ0IxQztFQTFCRCxBQVlFLGNBWlksQUFZWCxTQUFTLEVBWlosY0FBYyxBQVlDLFNBQVMsQ0FBQztJQUNyQixrQkFBa0IsRUFBRSxjQUFjO0lBQy9CLGVBQWUsRUFBRSxjQUFjO0lBQzdCLGFBQWEsRUFBRSxjQUFjO0lBQzFCLFVBQVUsRUFBRSxjQUFjLEdBQ25DO0VBakJILEFBbUJFLGNBbkJZLEFBbUJYLFNBQVMsRUFuQlosY0FBYyxBQW1CQyxTQUFTLEFBQUEsZ0JBQWdCLENBQUM7SUFDckMsT0FBTyxFQUFFLENBQUMsR0FDWDtFQXJCSCxBQXVCRSxjQXZCWSxBQXVCWCxTQUFTLEFBQUEsZ0JBQWdCLEVBdkI1QixjQUFjLEFBdUJpQixTQUFTLENBQUM7SUFDckMsT0FBTyxFQUFFLENBQUMsR0FDWDs7QUFHSCxBQUFBLFdBQVcsQ0FBQztFRHlDVixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQStCRSxNQUFNO0VBOUJ0QixjQUFjLEVBOEJFLE1BQU07RUF6QzlCLG1CQUFtQixFQ3BCTyxNQUFNO0VEcUJ4QixXQUFXLEVDckJPLE1BQU07RUQ2Q2hDLHVCQUF1QixFQzVDTyxNQUFNO0VENkM1QixlQUFlLEVDN0NPLE1BQU07RUFFcEMsUUFBUSxFQUFFLEtBQUs7RUFDZixHQUFHLEVBQUUsQ0FBQztFQUNOLElBQUksRUFBRSxDQUFDO0VBQ1AsS0FBSyxFQUFFLENBQUM7RUFDUixNQUFNLEVBQUUsQ0FBQztFQUNULE9BQU8sRUFBRSxJQUFJO0VBQ2IsUUFBUSxFQUFFLE1BQU07RUFDaEIsY0FBYyxFQUFFLElBQUksR0FvQ3JCO0VBaERELEFBY0UsV0FkUyxDQWNULE1BQU0sQ0FBQztJRDJCUCxPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQStCRSxNQUFNO0lBOUJ0QixjQUFjLEVBOEJFLE1BQU07SUFoQjlCLHVCQUF1QixFQzlCUyxNQUFNO0lEK0I5QixlQUFlLEVDL0JTLE1BQU07SUFFcEMsVUFBVSxFQUFFLEtBQUs7SUFDakIsU0FBUyxFQUFFLEtBQUs7SUFDaEIsY0FBYyxFQUFFLElBQUk7SUFFcEIsa0JBQWtCLEVBQUUsY0FBYztJQUMvQixlQUFlLEVBQUUsY0FBYztJQUM3QixhQUFhLEVBQUUsY0FBYztJQUMxQixVQUFVLEVBQUUsY0FBYyxHQVNuQztJQW5DSCxBQTRCSSxXQTVCTyxDQWNULE1BQU0sQUFjSCxTQUFTLENBQUM7TUFDVCxTQUFTLEVBQUUsY0FBYyxHQUMxQjtJQTlCTCxBQWdDSSxXQWhDTyxDQWNULE1BQU0sQUFrQkgsU0FBUyxBQUFBLGdCQUFnQixDQUFDO01BQ3pCLFNBQVMsRUFBRSxpQkFBaUIsR0FDN0I7RUFsQ0wsQUFzQ0ksV0F0Q08sQUFxQ1IsU0FBUyxDQUNSLE1BQU0sQ0FBQztJQUNMLFNBQVMsRUFBRSxpQkFBaUIsR0FDN0I7RUF4Q0wsQUE0Q0ksV0E1Q08sQUEyQ1IsU0FBUyxBQUFBLGdCQUFnQixDQUN4QixNQUFNLENBQUM7SUFDTCxTQUFTLEVBQUUsYUFBYSxHQUN6Qjs7QUFJTCxBQUFBLHdCQUF3QixDQUFDO0VEVHZCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBWGIsc0JBQXNCLEVBOENFLEdBQUc7RUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztFQS9CM0IsdUJBQXVCLEVDTU8sTUFBTTtFREw1QixlQUFlLEVDS08sTUFBTTtFRDZDcEMsU0FBUyxFQzVDVyxLQUFLO0VENkN6QixTQUFTLEVDN0NXLEtBQUs7RUQ4Q3pCLEtBQUssRUM5Q2UsS0FBSztFQUN6QixRQUFRLEVBQUUsTUFBTSxHQTZCakI7RUFsQ0QsQUFPRSx3QkFQc0IsR0FPcEIsZ0JBQWdCLENBQUM7SUQ5Q25CLFlBQVksRUMrQ0ksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lEOUNwQixRQUFRLEVDOENJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJRDdDaEIsSUFBSSxFQzZDSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SUFDdEIsa0JBQWtCLEVBQUUsZ0JBQWdCO0lBQ2pDLGVBQWUsRUFBRSxnQkFBZ0I7SUFDL0IsYUFBYSxFQUFFLGdCQUFnQjtJQUM1QixVQUFVLEVBQUUsZ0JBQWdCLEdBcUJyQztJQWpDSCxBQWVNLHdCQWZrQixHQU9wQixnQkFBZ0IsQUFPZixTQUFTLEFBQ1AsV0FBVyxDQUFDO01BQUUsU0FBUyxFQUFFLGVBQWUsR0FBSTtJQWZuRCxBQWdCTSx3QkFoQmtCLEdBT3BCLGdCQUFnQixBQU9mLFNBQVMsQUFFUCxZQUFZLENBQUM7TUFBRSxTQUFTLEVBQUUsZUFBZSxHQUFJO0lBaEJwRCxBQW9CTSx3QkFwQmtCLEdBT3BCLGdCQUFnQixBQVlmLFNBQVMsQUFBQSxnQkFBZ0IsQUFDdkIsV0FBVyxFQXBCbEIsd0JBQXdCLEdBT3BCLGdCQUFnQixBQVlhLFlBQVksQUFDdEMsV0FBVyxDQUFDO01BQUUsU0FBUyxFQUFFLGlCQUFpQixHQUFJO0lBcEJyRCxBQXFCTSx3QkFyQmtCLEdBT3BCLGdCQUFnQixBQVlmLFNBQVMsQUFBQSxnQkFBZ0IsQUFFdkIsWUFBWSxFQXJCbkIsd0JBQXdCLEdBT3BCLGdCQUFnQixBQVlhLFlBQVksQUFFdEMsWUFBWSxDQUFDO01BQUUsU0FBUyxFQUFFLGdCQUFnQixHQUFJO0lBckJyRCxBQXlCTSx3QkF6QmtCLEdBT3BCLGdCQUFnQixBQWlCZixTQUFTLEFBQ1AsV0FBVyxFQXpCbEIsd0JBQXdCLEdBT3BCLGdCQUFnQixBQWlCSCxlQUFlLEFBQ3pCLFdBQVcsQ0FBQztNQUFFLFNBQVMsRUFBRSxpQkFBaUIsR0FBSTtJQXpCckQsQUEwQk0sd0JBMUJrQixHQU9wQixnQkFBZ0IsQUFpQmYsU0FBUyxBQUVQLFlBQVksRUExQm5CLHdCQUF3QixHQU9wQixnQkFBZ0IsQUFpQkgsZUFBZSxBQUV6QixZQUFZLENBQUM7TUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEdBQUk7SUExQnJELEFBOEJNLHdCQTlCa0IsR0FPcEIsZ0JBQWdCLEFBc0JmLFNBQVMsQUFBQSxnQkFBZ0IsQUFDdkIsV0FBVyxDQUFDO01BQUUsU0FBUyxFQUFFLGVBQWUsR0FBSTtJQTlCbkQsQUErQk0sd0JBL0JrQixHQU9wQixnQkFBZ0IsQUFzQmYsU0FBUyxBQUFBLGdCQUFnQixBQUV2QixZQUFZLENBQUM7TUFBRSxTQUFTLEVBQUUsZUFBZSxHQUFJOztBQUtwRCxBQUFBLGdCQUFnQixDQUFDO0VBQ2YsZ0JBQWdCLEVGakhWLE9BQU87RUVrSGIsYUFBYSxFQUFFLEdBQUc7RUFDbEIsVUFBVSxFQUFFLHdCQUF3QixHQTJGckM7RUE5RkQsQUFLRSxnQkFMYyxBQUtiLE1BQU0sQ0FBQztJQUNOLEtBQUssRUFBRSxLQUFLLEdBQ2I7RUFQSCxBQVNFLGdCQVRjLENBU2QsTUFBTSxDQUFDO0lEdERQLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBOENFLEdBQUc7SUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztJQXhEM0IsbUJBQW1CLEVDMkVTLE1BQU07SUQxRTFCLFdBQVcsRUMwRVMsTUFBTTtJQUNoQyxRQUFRLEVBQUUsUUFBUTtJQUVsQixzQkFBc0IsRUFBRSxHQUFHO0lBQzNCLHVCQUF1QixFQUFFLEdBQUcsR0EwRDdCO0lBekVILEFBaUJJLGdCQWpCWSxDQVNkLE1BQU0sQ0FRSixNQUFNLEFBQUEsS0FBSyxDQUFDO01BQ1YsUUFBUSxFQUFFLFFBQVE7TUFDbEIsR0FBRyxFQUFFLENBQUM7TUFDTixLQUFLLEVBQUUsQ0FBQztNQUNSLE1BQU0sRUFBRSxJQUFJO01BQ1osVUFBVSxFQUFFLElBQUk7TUFDaEIsV0FBVyxFQUFFLElBQUk7TUFDakIsU0FBUyxFQUFFLElBQUksR0FLaEI7TUE3QkwsQUEwQk0sZ0JBMUJVLENBU2QsTUFBTSxDQVFKLE1BQU0sQUFBQSxLQUFLLENBU1QsQ0FBQyxBQUFBLEtBQUssQ0FBQztRQUNMLFlBQVksRUFBRSxHQUFHLEdBQ2xCO0lBNUJQLEFBK0JJLGdCQS9CWSxDQVNkLE1BQU0sQUFzQkgsTUFBTSxDQUFDO01BQ04sZ0JBQWdCLEVGckpoQixPQUFPO01Fc0pQLEtBQUssRUZqSkgsT0FBTyxHRWtKVjtJQWxDTCxBQW9DSSxnQkFwQ1ksQ0FTZCxNQUFNLEFBMkJILFFBQVEsQ0FBQztNQUNSLGdCQUFnQixFRnpKZixPQUFPO01FMEpSLEtBQUssRUZ0SkgsT0FBTyxHRXVKVjtJQXZDTCxBQXlDSSxnQkF6Q1ksQ0FTZCxNQUFNLENBZ0NKLEtBQUssQ0FBQztNRHBIUixZQUFZLEVDcUhNLENBQUM7TURwSGYsUUFBUSxFQ29ITSxDQUFDO01EbkhYLElBQUksRUNtSE0sQ0FBQztNQUNmLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLElBQUk7TUFDakIsVUFBVSxFQUFFLE1BQU0sR0FTbkI7TUF0REwsQUErQ00sZ0JBL0NVLENBU2QsTUFBTSxDQWdDSixLQUFLLENBTUgsQ0FBQyxBQUFBLEdBQUcsQ0FBQztRQUNILE1BQU0sRUFBRSxLQUFLLEdBQ2Q7TUFqRFAsQUFtRE0sZ0JBbkRVLENBU2QsTUFBTSxDQWdDSixLQUFLLENBVUgsSUFBSSxDQUFDO1FBQ0gsV0FBVyxFQUFFLEdBQUcsR0FDakI7SUFyRFAsQUF3REksZ0JBeERZLENBU2QsTUFBTSxDQStDSixNQUFNLENBQUM7TUFDTCxnQkFBZ0IsRUFBRSxXQUFXO01BQzdCLE1BQU0sRUFBRSxJQUFJO01BQ1osS0FBSyxFQUFFLElBQUk7TUFDWCxTQUFTLEVBQUUsSUFBSTtNQUNmLFdBQVcsRUFBRSxHQUFHO01BQ2hCLE1BQU0sRUFBRSxLQUFLO01BQ2IsU0FBUyxFQUFFLENBQUM7TUFDWixPQUFPLEVBQUUsRUFBRTtNQUNYLFdBQVcsRUFBRSxZQUFZO01BQ3pCLGNBQWMsRUFBRSxJQUFJLEdBTXJCO01BeEVMLEFBb0VNLGdCQXBFVSxDQVNkLE1BQU0sQ0ErQ0osTUFBTSxBQVlILE1BQU0sQ0FBQztRQUNOLE1BQU0sRUFBRSxPQUFPO1FBQ2YsT0FBTyxFQUFFLENBQUMsR0FDWDtFQXZFUCxBQTJFRSxnQkEzRWMsQ0EyRWQsT0FBTyxDQUFDO0lEeEhSLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBK0JFLE1BQU07SUE5QnRCLGNBQWMsRUE4QkUsTUFBTTtJQXpDOUIsbUJBQW1CLEVDNklTLE1BQU07SUQ1STFCLFdBQVcsRUM0SVMsTUFBTTtJRHBIbEMsdUJBQXVCLEVDcUhTLE1BQU07SURwSDlCLGVBQWUsRUNvSFMsTUFBTTtJQUVwQyxNQUFNLEVBQUUsTUFBTTtJQUNkLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFNBQVMsRUFBRSxLQUFLLEdBQ2pCO0VBbkZILEFBcUZFLGdCQXJGYyxDQXFGZCxNQUFNLENBQUM7SURsSVAsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0lBeEQzQixtQkFBbUIsRUN1SlMsTUFBTTtJRHRKMUIsV0FBVyxFQ3NKUyxNQUFNO0lEOUhsQyx1QkFBdUIsRUMrSFMsUUFBUTtJRDlIaEMsZUFBZSxFQzhIUyxRQUFRLEdBS3ZDO0lBN0ZILEFBMEZJLGdCQTFGWSxDQXFGZCxNQUFNLENBS0osTUFBTSxBQUFBLGFBQWEsQ0FBQztNQUNsQixZQUFZLEVBQUUsR0FBRyxHQUNsQjs7QUc5TUwsQUFBQSxhQUFhLENBQUM7RUpxRVosT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFYYixzQkFBc0IsRUE4Q0UsR0FBRztFQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0VBeEQzQixtQkFBbUIsRUloRE8sTUFBTTtFSmlEeEIsV0FBVyxFSWpETyxNQUFNO0VKeUVoQyx1QkFBdUIsRUl4RU8sTUFBTTtFSnlFNUIsZUFBZSxFSXpFTyxNQUFNO0VBRXBDLFFBQVEsRUFBRSxLQUFLO0VBQ2YsT0FBTyxFQUFFLEVBQUU7RUFDWCxHQUFHLEVBQUUsQ0FBQztFQUNOLElBQUksRUFBRSxDQUFDO0VBQ1AsS0FBSyxFQUFFLENBQUM7RUFDUixNQUFNLEVBQUUsQ0FBQztFQUVULGdCQUFnQixFQUFFLE9BQU87RUFDekIsZ0JBQWdCLEVBQUUsd0JBQXVCLEdBZTFDO0VBNUJELEFBZUUsYUFmVyxDQWVYLGtCQUFrQixDQUFDO0lKc0RuQixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQThDRSxHQUFHO0lBN0NuQixjQUFjLEVBNkNFLEdBQUc7SUF4RDNCLG1CQUFtQixFSWpDUyxNQUFNO0lKa0MxQixXQUFXLEVJbENTLE1BQU07SUowRGxDLHVCQUF1QixFSXpEUyxNQUFNO0lKMEQ5QixlQUFlLEVJMURTLE1BQU07SUFFcEMsVUFBVSxFQUFFLEtBQUs7SUFDakIsU0FBUyxFQUFFLEtBQUssR0FNakI7SUEzQkgsQUF1QkksYUF2QlMsQ0FlWCxrQkFBa0IsQ0FRaEIsV0FBVyxDQUFDO01BQ1YsS0FBSyxFQUFFLElBQUk7TUFDWCxTQUFTLEVBQUUsSUFBSSxHQUNoQjs7QUcxQkwsQUFBQSxrQkFBa0IsQ0FBQztFUHFFakIsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFYYixzQkFBc0IsRUE4Q0UsR0FBRztFQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0VBL0IzQix1QkFBdUIsRU96RU8sVUFBVTtFUDBFaEMsZUFBZSxFTzFFTyxVQUFVO0VBQ3hDLGdCQUFnQixFQUFFLE9BQU87RUFDekIsVUFBVSxFQUFFLGlCQUFpQjtFQUM3QixhQUFhLEVBQUUsaUJBQWlCO0VBQ2hDLE1BQU0sRUFBRSxJQUFJO0VBQ1osVUFBVSxFQUFFLElBQUk7RUFDaEIsVUFBVSxFQUFFLElBQUksR0E4RmpCO0VBdEdELEFBVUUsa0JBVmdCLEdBVWQsR0FBRztFQVZQLGtCQUFrQixHQVdkLHVCQUF1QixDQUFDO0lQMEQxQixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQThDRSxHQUFHO0lBN0NuQixjQUFjLEVBNkNFLEdBQUc7SUF4RDNCLG1CQUFtQixFT3JDUyxNQUFNO0lQc0MxQixXQUFXLEVPdENTLE1BQU07SUFDaEMsWUFBWSxFQUFFLGlCQUFpQjtJQUMvQixVQUFVLEVBQUUsVUFBVTtJQUN0QixLQUFLLEVBQUUsT0FBTztJQUNkLE1BQU0sRUFBRSxPQUFPO0lBQ2YsU0FBUyxFQUFFLElBQUk7SUFDZixTQUFTLEVBQUUsSUFBSTtJQUNmLE9BQU8sRUFBRSxNQUFNO0lBQ2YsUUFBUSxFQUFFLFFBQVEsR0FxRG5CO0lBMUVILEFBdUJJLGtCQXZCYyxHQVVkLEdBQUcsQUFhRixPQUFPO0lBdkJaLGtCQUFrQixHQVdkLHVCQUF1QixBQVl0QixPQUFPLENBQUM7TUFDUCxnQkFBZ0IsRUFBRSxPQUFPO01BQ3pCLEtBQUssRUFBRSxPQUFPLEdBZWY7TUF4Q0wsQUEyQk0sa0JBM0JZLEdBVWQsR0FBRyxBQWFGLE9BQU8sQUFJTCxNQUFNO01BM0JiLGtCQUFrQixHQVdkLHVCQUF1QixBQVl0QixPQUFPLEFBSUwsTUFBTSxDQUFDO1FBQ04sT0FBTyxFQUFFLEVBQUU7UUFDWCxRQUFRLEVBQUUsUUFBUTtRQUNsQixJQUFJLEVBQUUsQ0FBQztRQUNQLEtBQUssRUFBRSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUM7UUFDVCxNQUFNLEVBQUUsR0FBRztRQUNYLGdCQUFnQixFQUFFLE9BQU8sR0FDMUI7TUFuQ1AsQUFxQ00sa0JBckNZLEdBVWQsR0FBRyxBQWFGLE9BQU8sQ0FjTixNQUFNO01BckNaLGtCQUFrQixHQVdkLHVCQUF1QixBQVl0QixPQUFPLENBY04sTUFBTSxDQUFDO1FBQ0wsTUFBTSxFQUFFLE9BQU8sR0FDaEI7SUF2Q1AsQUEwQ0ksa0JBMUNjLEdBVWQsR0FBRyxBQWdDRixJQUFLLENBQUEsT0FBTyxDQUFDLE1BQU07SUExQ3hCLGtCQUFrQixHQVdkLHVCQUF1QixBQStCdEIsSUFBSyxDQUFBLE9BQU8sQ0FBQyxNQUFNLENBQUM7TUFDbkIsZ0JBQWdCLEVBQUUsT0FBTztNQUN6QixLQUFLLEVBQUUsT0FBTztNQUNkLE1BQU0sRUFBRSxPQUFPLEdBQ2hCO0lBOUNMLEFBZ0RJLGtCQWhEYyxHQVVkLEdBQUcsQ0FzQ0gsS0FBSztJQWhEVCxrQkFBa0IsR0FXZCx1QkFBdUIsQ0FxQ3ZCLEtBQUssQ0FBQztNUFRSLFlBQVksRU9VTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TVBUdEIsUUFBUSxFT1NNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtNUFJsQixJQUFJLEVPUU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO01BQ3RCLElBQUksRUFBRSxtQ0FBbUM7TUFDekMsS0FBSyxFQUFFLE9BQU87TUFDZCxjQUFjLEVBQUUsQ0FBQztNQUNqQixNQUFNLEVBQUUsU0FBUyxHQUNsQjtJQXRETCxBQXdESSxrQkF4RGMsR0FVZCxHQUFHLENBOENILE1BQU07SUF4RFYsa0JBQWtCLEdBV2QsdUJBQXVCLENBNkN2QixNQUFNLENBQUM7TUFDTCxPQUFPLEVBQUUsSUFBSTtNQUNiLFdBQVcsRUFBRSxNQUFNO01BQ25CLGVBQWUsRUFBRSxNQUFNO01BQ3ZCLFNBQVMsRUFBRSxPQUFPO01BQ2xCLFdBQVcsRUFBRSxHQUFHO01BQ2hCLFNBQVMsRUFBRSxJQUFJO01BQ2YsU0FBUyxFQUFFLElBQUk7TUFDZixPQUFPLEVBQUUsQ0FBQztNQUNWLFVBQVUsRUFBRSxNQUFNLEdBUW5CO01BekVMLEFBbUVNLGtCQW5FWSxHQVVkLEdBQUcsQ0E4Q0gsTUFBTSxDQVdKLEdBQUc7TUFuRVQsa0JBQWtCLEdBV2QsdUJBQXVCLENBNkN2QixNQUFNLENBV0osR0FBRyxDQUFDO1FBQ0YsT0FBTyxFQUFFLEtBQUs7UUFDZCxLQUFLLEVBQUUsSUFBSTtRQUNYLE1BQU0sRUFBRSxJQUFJO1FBQ1osVUFBVSxFQUFFLE9BQU8sR0FDcEI7RUF4RVAsQUE0RUUsa0JBNUVnQixHQTRFZCxHQUFHLEFBQUEsU0FBUyxDQUFDO0lQRGYsdUJBQXVCLEVPRVMsTUFBTTtJUEQ5QixlQUFlLEVPQ1MsTUFBTTtJQUNwQyxnQkFBZ0IsRUFBRSxPQUFPO0lBQ3pCLEtBQUssRUFBRSxPQUFPO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixPQUFPLEVBQUUsQ0FBQztJQUNWLE1BQU0sRUFBRSxDQUFDO0lBQ1QsWUFBWSxFQUFFLGlCQUFpQixHQWtCaEM7SUFyR0gsQUFxRkksa0JBckZjLEdBNEVkLEdBQUcsQUFBQSxTQUFTLEFBU1gsTUFBTSxDQUFDO01BQ04sTUFBTSxFQUFFLE9BQU87TUFDZixLQUFLLEVBQUUsT0FBTztNQUNkLGdCQUFnQixFQUFFLE9BQU8sR0FDMUI7SUF6RkwsQUEyRkksa0JBM0ZjLEdBNEVkLEdBQUcsQUFBQSxTQUFTLEFBZVgsTUFBTSxDQUFDO01BQ04sT0FBTyxFQUFFLElBQUksR0FDZDtJQTdGTCxBQStGSSxrQkEvRmMsR0E0RWQsR0FBRyxBQUFBLFNBQVMsQ0FtQlosZUFBZSxDQUFDO01BQ2QsT0FBTyxFQUFFLEtBQUs7TUFDZCxLQUFLLEVBQUUsSUFBSTtNQUNYLE1BQU0sRUFBRSxJQUFJO01BQ1osVUFBVSxFQUFFLE9BQU8sR0FDcEI7O0FBS0wsQUFBQSxrQkFBa0IsQ0FBQztFUHBDakIsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFYYixzQkFBc0IsRUErQkUsTUFBTTtFQTlCdEIsY0FBYyxFQThCRSxNQUFNO0VPZ0I5QixhQUFhLEVBQUUsSUFBSSxHQUNwQjs7QUFFRCxBQUFBLGFBQWEsQ0FBQztFUHpDWixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQThDRSxHQUFHO0VBN0NuQixjQUFjLEVBNkNFLEdBQUc7RUFjM0IsVUFBVSxFT1JXLElBQUk7RVBTekIsVUFBVSxFT1RXLElBQUk7RVBVekIsTUFBTSxFT1ZlLElBQUk7RUFDekIsVUFBVSxFQUFFLGNBQWM7RUFDMUIsU0FBUyxFQUFFLElBQUk7RUFDZixLQUFLLEVBQUUsSUFBSSxHQWtKWjtFQXZKRCxBQU9FLGFBUFcsQ0FPWCxlQUFlLENBQUM7SVA5RWhCLFlBQVksRU8rRUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lQOUVwQixRQUFRLEVPOEVJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJUDdFaEIsSUFBSSxFTzZFSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SUFDdEIsWUFBWSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENSbkhkLE9BQU87SVFvSGhCLEtBQUssRUFBRSxLQUFLLEdBY2I7SUF4QkgsQUFZSSxhQVpTLENBT1gsZUFBZSxDQUtiLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxNQUFNLEFBQVgsRUFBYTtNQUNqQixNQUFNLEVBQUUsSUFBSTtNQUNaLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLEdBQUc7TUFDaEIsTUFBTSxFQUFFLElBQUk7TUFDWixXQUFXLEVBQUUsSUFBSTtNQUNqQixLQUFLLEVBQUUsR0FBRyxHQUNYO0lBbkJMLEFBcUJJLGFBckJTLENBT1gsZUFBZSxDQWNiLDJCQUEyQixDQUFDO01BQzFCLEtBQUssRVIvSEMsT0FBTyxHUWdJZDtFQXZCTCxBQTBCRSxhQTFCVyxDQTBCWCxtQkFBbUIsQ0FBQztJUG5FcEIsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0lBeEQzQixtQkFBbUIsRUE2RE8sTUFBTTtJQTVEeEIsV0FBVyxFQTRETyxNQUFNO0lBcENoQyx1QkFBdUIsRU8rRFMsTUFBTTtJUDlEOUIsZUFBZSxFTzhEUyxNQUFNO0lQbkd0QyxZQUFZLEVPb0dJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztJUG5HckIsUUFBUSxFT21HSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7SVBsR2pCLElBQUksRU9rR0ksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO0lQYnpCLFNBQVMsRU9jYSxLQUFLO0lQYjNCLFNBQVMsRU9hYSxLQUFLO0lQWjNCLEtBQUssRU9ZaUIsS0FBSztJQUN6QixZQUFZLEVBQUUsY0FBYztJQUM1QixNQUFNLEVBQUUsT0FBTztJQUNmLEtBQUssRVIxSUcsT0FBTyxHUThJaEI7SUFyQ0gsQUFrQ0ksYUFsQ1MsQ0EwQlgsbUJBQW1CLEFBUWhCLE1BQU0sQ0FBQztNQUNOLEtBQUssRVI3SUUsT0FBTyxHUThJZjtFQXBDTCxBQXVDRSxhQXZDVyxDQXVDWCxvQkFBb0IsQ0FBQztJUGhGckIsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0lBeEQzQixtQkFBbUIsRUE2RE8sTUFBTTtJQTVEeEIsV0FBVyxFQTRETyxNQUFNO0lBcENoQyx1QkFBdUIsRU80RVMsTUFBTTtJUDNFOUIsZUFBZSxFTzJFUyxNQUFNO0lQaEh0QyxZQUFZLEVPaUhJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztJUGhIckIsUUFBUSxFT2dISSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7SVAvR2pCLElBQUksRU8rR0ksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO0lQMUJ6QixTQUFTLEVPMkJhLEtBQUs7SVAxQjNCLFNBQVMsRU8wQmEsS0FBSztJUHpCM0IsS0FBSyxFT3lCaUIsS0FBSztJQUN6QixTQUFTLEVBQUUsSUFBSSxHQWFoQjtJQXpESCxBQThDSSxhQTlDUyxDQXVDWCxvQkFBb0IsR0FPZCxDQUFDLENBQUM7TUFDSixNQUFNLEVBQUUsT0FBTztNQUNmLE1BQU0sRUFBRSxHQUFHO01BQ1gsS0FBSyxFUjNKRSxPQUFPLEdRa0tmO01BeERMLEFBa0RNLGFBbERPLENBdUNYLG9CQUFvQixHQU9kLENBQUMsQUFJRixNQUFNLENBQUM7UUFDTixLQUFLLEVSNUpELE9BQU8sR1E2Slo7TUFwRFAsQUFxRE0sYUFyRE8sQ0F1Q1gsb0JBQW9CLEdBT2QsQ0FBQyxBQU9GLE9BQU8sQ0FBRTtRQUNSLEtBQUssRVJ0S04sT0FBTyxHUXVLUDtFQXZEUCxBQTJERSxhQTNEVyxDQTJEWCwyQkFBMkIsQ0FBQztJQUMxQixPQUFPLEVBQUUsSUFBSSxHQUNkO0VBN0RILEFBK0RFLGFBL0RXLENBK0RYLG9CQUFvQixDQUFDO0lQeEdyQixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQThDRSxHQUFHO0lBN0NuQixjQUFjLEVBNkNFLEdBQUc7SUFuRTNCLFlBQVksRU93SUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lQdklwQixRQUFRLEVPdUlJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJUHRJaEIsSUFBSSxFT3NJSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SUFDdEIsU0FBUyxFQUFFLEtBQUssR0FvRmpCO0lBdEpILEFBb0VJLGFBcEVTLENBK0RYLG9CQUFvQixHQUtkLGlCQUFpQixDQUFDO01QN0d4QixPQUFPLEVBQUUsWUFBWTtNQUNyQixPQUFPLEVBQUUsV0FBVztNQUNwQixPQUFPLEVBQUUsSUFBSTtNQVhiLHNCQUFzQixFQThDRSxHQUFHO01BN0NuQixjQUFjLEVBNkNFLEdBQUc7TUF4RDNCLG1CQUFtQixFQTZETyxNQUFNO01BNUR4QixXQUFXLEVBNERPLE1BQU07TUF4RWhDLFlBQVksRU82SU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO01QNUl0QixRQUFRLEVPNElNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtNUDNJbEIsSUFBSSxFTzJJTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TUFDdEIsWUFBWSxFQUFFLGNBQWM7TUFDNUIsS0FBSyxFUmpMQyxPQUFPO01Ra0xiLE1BQU0sRUFBRSxPQUFPO01BQ2YsU0FBUyxFQUFFLEtBQUs7TUFDaEIsUUFBUSxFQUFFLFFBQVEsR0EwRW5CO01BckpMLEFBNkVNLGFBN0VPLENBK0RYLG9CQUFvQixHQUtkLGlCQUFpQixDQVNuQixNQUFNLENBQUM7UVBuRVgsVUFBVSxFT29FaUIsSUFBSTtRUG5FL0IsVUFBVSxFT21FaUIsSUFBSTtRUGxFL0IsTUFBTSxFT2tFcUIsSUFBSTtRQUN6QixTQUFTLEVBQUUsS0FBSztRQUNoQixLQUFLLEVBQUUsS0FBSztRQUNaLE9BQU8sRUFBRSxJQUFJO1FBQ2IsV0FBVyxFQUFFLE1BQU07UUFDbkIsUUFBUSxFQUFFLE1BQU07UUFDaEIsYUFBYSxFQUFFLFFBQVE7UUFDdkIsS0FBSyxFUjlMRCxPQUFPLEdReU1aO1FBaEdQLEFBdUZRLGFBdkZLLENBK0RYLG9CQUFvQixHQUtkLGlCQUFpQixDQVNuQixNQUFNLEFBVUgsTUFBTSxDQUFDO1VBQ04sUUFBUSxFQUFFLFFBQVE7VUFDbEIsR0FBRyxFQUFFLEdBQUc7VUFDUixLQUFLLEVBQUUsSUFBSTtVQUVYLFdBQVcsRUFBRSxXQUFXO1VBQ3hCLE9BQU8sRUFBRSxPQUFPO1VBQ2hCLEtBQUssRVJ2TUgsT0FBTyxHUXdNVjtNQS9GVCxBQWtHTSxhQWxHTyxDQStEWCxvQkFBb0IsR0FLZCxpQkFBaUIsQ0E4Qm5CLFFBQVEsQ0FBQztRQUNQLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLEdBQUcsRUFBRSxJQUFJO1FBQ1QsSUFBSSxFQUFFLElBQUk7UUFDVixnQkFBZ0IsRUFBRSxPQUFPO1FBQ3pCLE1BQU0sRUFBRSxpQkFBaUI7UUFDekIsVUFBVSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxzQkFBc0I7UUFDOUMsU0FBUyxFQUFFLEtBQUs7UUFDaEIsS0FBSyxFQUFFLElBQUk7UUFDWCxPQUFPLEVBQUUsQ0FBQyxHQWlCWDtRQTVIUCxBQTZHUSxhQTdHSyxDQStEWCxvQkFBb0IsR0FLZCxpQkFBaUIsQ0E4Qm5CLFFBQVEsQ0FXTixhQUFhLENBQUM7VUFDWixPQUFPLEVBQUUsaUJBQWlCO1VBQzFCLFdBQVcsRUFBRSxNQUFNLEdBS3BCO1VBcEhULEFBaUhVLGFBakhHLENBK0RYLG9CQUFvQixHQUtkLGlCQUFpQixDQThCbkIsUUFBUSxDQVdOLGFBQWEsQUFJVixNQUFNLENBQUM7WUFDTixnQkFBZ0IsRUFBRSxPQUFPLEdBQzFCO1FBbkhYLEFBcUhRLGFBckhLLENBK0RYLG9CQUFvQixHQUtkLGlCQUFpQixDQThCbkIsUUFBUSxDQW1CTixzQkFBc0IsQ0FBQztVQUNyQixXQUFXLEVBQUUsSUFBSTtVQUNqQixZQUFZLEVBQUUsR0FBRyxHQUNsQjtRQXhIVCxBQXlIUSxhQXpISyxDQStEWCxvQkFBb0IsR0FLZCxpQkFBaUIsQ0E4Qm5CLFFBQVEsQ0F1Qk4sbUJBQW1CLENBQUM7VUFDbEIsV0FBVyxFQUFFLElBQUksR0FDbEI7TUEzSFQsQUE4SE0sYUE5SE8sQ0ErRFgsb0JBQW9CLEdBS2QsaUJBQWlCLENBMERuQixVQUFVLENBQUM7UUFDVCxXQUFXLEVBQUUsR0FBRztRQUNoQixZQUFZLEVBQUUsR0FBRztRQUNqQixVQUFVLEVBQUUsTUFBTSxHQUtuQjtRQXRJUCxBQW1JUSxhQW5JSyxDQStEWCxvQkFBb0IsR0FLZCxpQkFBaUIsQ0EwRG5CLFVBQVUsQUFLUCxXQUFXLENBQUM7VUFDWCxLQUFLLEVBQUUsV0FBVyxHQUNuQjtNQXJJVCxBQXdJTSxhQXhJTyxDQStEWCxvQkFBb0IsR0FLZCxpQkFBaUIsQ0FvRW5CLFlBQVksQ0FBQztRQUNYLFdBQVcsRUFBRSxHQUFHO1FBQ2hCLFlBQVksRUFBRSxHQUFHO1FBQ2pCLFVBQVUsRUFBRSxHQUFHO1FBQ2YsVUFBVSxFQUFFLE1BQU0sR0FDbkI7TUE3SVAsQUErSU0sYUEvSU8sQ0ErRFgsb0JBQW9CLEdBS2QsaUJBQWlCLENBMkVuQixhQUFhLENBQUM7UUFDWixhQUFhLEVBQUUsR0FBRztRQUNsQixXQUFXLEVBQUUsR0FBRztRQUNoQixZQUFZLEVBQUUsR0FBRztRQUNqQixVQUFVLEVBQUUsTUFBTSxHQUNuQjs7QUFLUCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RUFDdEIsQUFDRSxJQURFLENBQ0YsYUFBYSxDQUFDO0lBQ1osU0FBUyxFQUFFLElBQUk7SUFDZixNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxDQUFDO0lBQ2IsVUFBVSxFQUFFLElBQUksR0FtS2pCO0lBeEtILEFBT0ksSUFQQSxDQUNGLGFBQWEsQ0FNWCwyQkFBMkIsQ0FBQztNQUMxQixPQUFPLEVBQUUsWUFBWTtNQUNyQixPQUFPLEVBQUUsV0FBVztNQUNwQixPQUFPLEVBQUUsSUFBSTtNQUNiLFdBQVcsRUFBRSxNQUFNO01BQ25CLEtBQUssRUFBRSxDQUFDO01BQ1IsTUFBTSxFQUFFLElBQUk7TUFDWixPQUFPLEVBQUUsTUFBTTtNQUNmLEdBQUcsRUFBRSxHQUFHO01BQ1IsTUFBTSxFQUFFLE9BQU87TUFDZixXQUFXLEVBQUUsY0FBYztNQUMzQixTQUFTLEVBQUUsSUFBSTtNQUNmLFdBQVcsRUFBRSxHQUFHO01BQ2hCLGNBQWMsRUFBRSxTQUFTO01BQ3pCLGNBQWMsRUFBRSxHQUFHO01BQ25CLEtBQUssRVJ6UkQsT0FBTyxHUTBSWjtJQXZCTCxBQXlCSSxJQXpCQSxDQUNGLGFBQWEsQ0F3QlgsZUFBZSxDQUFDO01BQ2QsS0FBSyxFQUFFLENBQUM7TUFDUixNQUFNLEVBQUUsSUFBSTtNQUNaLFNBQVMsRUFBRSxDQUFDLEdBQ2I7SUE3QkwsQUErQkksSUEvQkEsQ0FDRixhQUFhLENBOEJYLG9CQUFvQixDQUFDO01BQ25CLEtBQUssRUFBRSxDQUFDO01BQ1IsU0FBUyxFQUFFLEtBQUs7TUFDaEIsU0FBUyxFQUFFLElBQUk7TUFDZixLQUFLLEVBQUUsSUFBSTtNQUNYLE1BQU0sRUFBRSxJQUFJLEdBQ2I7SUFyQ0wsQUF1Q0ksSUF2Q0EsQ0FDRixhQUFhLENBc0NYLG9CQUFvQixDQUFDO01BQ25CLE9BQU8sRUFBRSxlQUFlO01BQ3hCLEtBQUssRUFBRSxDQUFDO01BQ1IsS0FBSyxFQUFFLElBQUk7TUFDWCxTQUFTLEVBQUUsS0FBSztNQUNoQixVQUFVLEVBQUUsY0FBYyxHQTZHM0I7TUF6SkwsQUE4Q00sSUE5Q0YsQ0FDRixhQUFhLENBc0NYLG9CQUFvQixBQU9qQixZQUFZLENBQUM7UUFDWixPQUFPLEVBQUUsdUJBQXVCO1FBQ2hDLE9BQU8sRUFBRSxzQkFBc0I7UUFDL0IsT0FBTyxFQUFFLGVBQWU7UUFDeEIsY0FBYyxFQUFFLE1BQU07UUFDdEIsZ0JBQWdCLEVBQUUsSUFBSTtRQUN0QixRQUFRLEVBQUUsT0FBTyxHQUNsQjtNQXJEUCxBQXVETSxJQXZERixDQUNGLGFBQWEsQ0FzQ1gsb0JBQW9CLEdBZ0JkLGlCQUFpQixDQUFDO1FBQ3BCLE1BQU0sRUFBRSxJQUFJO1FBQ1osVUFBVSxFQUFFLElBQUk7UUFDaEIsVUFBVSxFQUFFLElBQUk7UUFDaEIsU0FBUyxFQUFFLEtBQUs7UUFDaEIsT0FBTyxFQUFFLENBQUM7UUFDVixZQUFZLEVBQUUsSUFBSTtRQUNsQixhQUFhLEVBQUUsY0FBYztRQUM3QixRQUFRLEVBQUUsT0FBTztRQUNqQixRQUFRLEVBQUUsUUFBUSxHQXdGbkI7UUF4SlAsQUFrRVEsSUFsRUosQ0FDRixhQUFhLENBc0NYLG9CQUFvQixHQWdCZCxpQkFBaUIsQUFXbEIsV0FBVyxDQUFDO1VBQ1gsYUFBYSxFQUFFLElBQUksR0FDcEI7UUFwRVQsQUFzRVEsSUF0RUosQ0FDRixhQUFhLENBc0NYLG9CQUFvQixHQWdCZCxpQkFBaUIsQUFlbEIsT0FBTyxDQUFDO1VBQ1AsUUFBUSxFQUFFLFFBQVE7VUFDbEIsR0FBRyxFQUFFLEdBQUc7VUFDUixLQUFLLEVBQUUsSUFBSTtVQUNYLFNBQVMsRUFBRSxnQkFBZ0I7VUFDM0IsV0FBVyxFQUFFLFdBQVc7VUFDeEIsT0FBTyxFQUFFLE9BQU87VUFDaEIsS0FBSyxFUmhWTCxPQUFPO1VRaVZQLFNBQVMsRUFBRSxJQUFJO1VBQ2YsY0FBYyxFQUFFLElBQUksR0FDckI7UUFoRlQsQUFrRlEsSUFsRkosQ0FDRixhQUFhLENBc0NYLG9CQUFvQixHQWdCZCxpQkFBaUIsQ0EyQm5CLEdBQUcsQUFBQSxNQUFNLENBQUM7VUFDUixRQUFRLEVBQUUsUUFBUTtVQUNsQixHQUFHLEVBQUUsQ0FBQztVQUNOLElBQUksRUFBRSxDQUFDO1VBQ1AsS0FBSyxFQUFFLENBQUM7VUFDUixNQUFNLEVBQUUsQ0FBQztVQUNULEtBQUssRUFBRSxJQUFJO1VBQ1gsU0FBUyxFQUFFLElBQUk7VUFDZixNQUFNLEVBQUUsSUFBSTtVQUNaLFVBQVUsRUFBRSxDQUFDO1VBQ2IsVUFBVSxFQUFFLElBQUk7VUFDaEIsT0FBTyxFQUFFLElBQUk7VUFDYixXQUFXLEVBQUUsTUFBTTtVQUNuQixRQUFRLEVBQUUsT0FBTztVQUNqQixPQUFPLEVBQUUsYUFBYTtVQUN0QixTQUFTLEVBQUUsSUFBSTtVQUNmLFdBQVcsRUFBRSxHQUFHO1VBQ2hCLE1BQU0sRUFBRSxPQUFPLEdBSWhCO1VBdkdULEFBb0dVLElBcEdOLENBQ0YsYUFBYSxDQXNDWCxvQkFBb0IsR0FnQmQsaUJBQWlCLENBMkJuQixHQUFHLEFBQUEsTUFBTSxBQWtCTixPQUFPLENBQUM7WUFDUCxPQUFPLEVBQUUsSUFBSSxHQUNkO1FBdEdYLEFBeUdRLElBekdKLENBQ0YsYUFBYSxDQXNDWCxvQkFBb0IsR0FnQmQsaUJBQWlCLENBa0RuQixrQkFBa0IsQ0FBQSxBQUFBLGVBQUMsQUFBQSxFQUFpQjtVQUNsQyxTQUFTLEVBQUUsQ0FBQztVQUNaLGFBQWEsRUFBRSxJQUFJLENBQUEsVUFBVSxHQWdCOUI7VUEzSFQsQUE0R1UsSUE1R04sQ0FDRixhQUFhLENBc0NYLG9CQUFvQixHQWdCZCxpQkFBaUIsQ0FrRG5CLGtCQUFrQixDQUFBLEFBQUEsZUFBQyxBQUFBLENBR2hCLFFBQVEsQ0FBQztZQUNSLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQyxHQUFHO1lBQ2xDLFNBQVMsRUFBRSxJQUFJO1lBQ2YsV0FBVyxFQUFFLEdBQUc7WUFDaEIsS0FBSyxFUm5YUCxPQUFPO1lRb1hMLFNBQVMsRUFBRSxDQUFDO1lBQ1osV0FBVyxFQUFFLENBQUMsR0FDZjtVQW5IWCxBQW9IVSxJQXBITixDQUNGLGFBQWEsQ0FzQ1gsb0JBQW9CLEdBZ0JkLGlCQUFpQixDQWtEbkIsa0JBQWtCLENBQUEsQUFBQSxlQUFDLEFBQUEsQ0FXaEIsT0FBTyxDQUFDO1lBQ1AsT0FBTyxFQUFFLEtBQUs7WUFDZCxTQUFTLEVBQUUsSUFBSTtZQUNmLFdBQVcsRUFBRSxHQUFHO1lBQ2hCLEtBQUssRVIzWFAsT0FBTztZUTRYTCxRQUFRLEVBQUUsTUFBTSxHQUNqQjtRQTFIWCxBQTZIUSxJQTdISixDQUNGLGFBQWEsQ0FzQ1gsb0JBQW9CLEdBZ0JkLGlCQUFpQixDQXNFbkIsTUFBTSxDQUFBLEFBQUEsZUFBQyxBQUFBLEVBQWlCO1VBQ3RCLFNBQVMsRUFBRSxDQUFDO1VBQ1osYUFBYSxFQUFFLElBQUksQ0FBQSxVQUFVLEdBaUI5QjtVQWhKVCxBQWdJVSxJQWhJTixDQUNGLGFBQWEsQ0FzQ1gsb0JBQW9CLEdBZ0JkLGlCQUFpQixDQXNFbkIsTUFBTSxDQUFBLEFBQUEsZUFBQyxBQUFBLENBR0osUUFBUSxDQUFDO1lBQ1IsT0FBTyxFQUFFLHFCQUFxQixDQUFDLEdBQUc7WUFDbEMsU0FBUyxFQUFFLElBQUk7WUFDZixXQUFXLEVBQUUsR0FBRztZQUNoQixLQUFLLEVSdllQLE9BQU87WVF3WUwsU0FBUyxFQUFFLENBQUM7WUFDWixXQUFXLEVBQUUsQ0FBQyxHQUNmO1VBdklYLEFBd0lVLElBeElOLENBQ0YsYUFBYSxDQXNDWCxvQkFBb0IsR0FnQmQsaUJBQWlCLENBc0VuQixNQUFNLENBQUEsQUFBQSxlQUFDLEFBQUEsQ0FXSixPQUFPLENBQUM7WUFDUCxPQUFPLEVBQUUscUJBQXFCO1lBQzlCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsV0FBVyxFQUFFLEdBQUc7WUFDaEIsS0FBSyxFUi9ZUCxPQUFPO1lRZ1pMLFdBQVcsRUFBRSxPQUFPO1lBQ3BCLFFBQVEsRUFBRSxNQUFNLEdBQ2pCO1FBL0lYLEFBa0pRLElBbEpKLENBQ0YsYUFBYSxDQXNDWCxvQkFBb0IsR0FnQmQsaUJBQWlCLENBMkZuQixRQUFRLENBQUM7VUFDUCxHQUFHLEVBQUUsSUFBSTtVQUNULElBQUksRUFBRSxDQUFDO1VBQ1AsT0FBTyxFQUFFLEdBQUc7VUFDWixTQUFTLEVBQUUsSUFBSSxHQUNoQjtJQXZKVCxBQTJKSSxJQTNKQSxDQUNGLGFBQWEsQ0EwSlgsbUJBQW1CLENBQUM7TUFDbEIsS0FBSyxFQUFFLENBQUM7TUFDUixPQUFPLEVBQUUsSUFBSTtNQUNiLEtBQUssRUFBRSxJQUFJO01BQ1gsU0FBUyxFQUFFLEtBQUs7TUFDaEIsU0FBUyxFQUFFLEtBQUs7TUFDaEIsVUFBVSxFQUFFLElBQUk7TUFDaEIsVUFBVSxFQUFFLElBQUk7TUFDaEIsTUFBTSxFQUFFLElBQUk7TUFDWixXQUFXLEVBQUUsSUFBSTtNQUNqQixZQUFZLEVBQUUsSUFBSTtNQUNsQixVQUFVLEVBQUUsY0FBYyxHQUMzQjtFQXZLTCxBQTJLSSxJQTNLQSxDQTBLRiwyQkFBMkIsQ0FDekIsbUJBQW1CLENBQUM7SUFDbEIsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUksR0FDZDtFQS9LTCxBQWtMRSxJQWxMRSxDQWtMRixNQUFNLENBQUEsQUFBQSxlQUFDLEFBQUEsQ0FBZ0IsSUFBSyxDQUFBLGtCQUFrQixDQUFDLElBQUssRUFBQSxBQUFBLGVBQUMsQUFBQSxFQUFpQixRQUFRLENBQUM7SUFDN0UsT0FBTyxFQUFFLHFCQUFxQixDQUFDLEdBQUc7SUFDbEMsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixLQUFLLEVSemJDLE9BQU87SVEwYmIsU0FBUyxFQUFFLENBQUM7SUFDWixXQUFXLEVBQUUsQ0FBQyxHQUNmOztBR2pjTCxBQUFBLGtCQUFrQixDQUFDO0VWcUVqQixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQStCRSxNQUFNO0VBOUJ0QixjQUFjLEVBOEJFLE1BQU07RUFoQjlCLHVCQUF1QixFVXpFTyxVQUFVO0VWMEVoQyxlQUFlLEVVMUVPLFVBQVUsR0F3SHpDO0VBMUhELEFBSUUsa0JBSmdCLENBSWhCLG9CQUFvQixDQUFDO0lBQ25CLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLDBCQUEwQixFQUFFLEtBQUs7SUFDakMsS0FBSyxFQUFFLElBQUksR0FDWjtFQVJILEFBVUUsa0JBVmdCLENBVWhCLGVBQWUsQ0FBQztJVjJEaEIsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0lBeEQzQixtQkFBbUIsRUE2RE8sTUFBTTtJQTVEeEIsV0FBVyxFQTRETyxNQUFNO0lBbEVoQyxxQkFBcUIsRVVqQ1MsTUFBTTtJVmtDNUIsYUFBYSxFVWxDUyxNQUFNO0lBQ2xDLFNBQVMsRUFBRSxJQUFJO0lBQ2YsZ0JBQWdCLEVYSEssT0FBTyxHV3FDN0I7SUFoREgsQUFnQkksa0JBaEJjLENBVWhCLGVBQWUsR0FNVCxHQUFHLENBQUM7TVZxRFYsT0FBTyxFQUFFLFlBQVk7TUFDckIsT0FBTyxFQUFFLFdBQVc7TUFDcEIsT0FBTyxFQUFFLElBQUk7TUFYYixzQkFBc0IsRUE4Q0UsR0FBRztNQTdDbkIsY0FBYyxFQTZDRSxHQUFHO01BeEQzQixtQkFBbUIsRUE2RE8sTUFBTTtNQTVEeEIsV0FBVyxFQTRETyxNQUFNO01BcENoQyx1QkFBdUIsRVV6RFcsTUFBTTtNVjBEaEMsZUFBZSxFVTFEVyxNQUFNO01Wc0d4QyxVQUFVLEVVckdlLElBQUk7TVZzRzdCLFVBQVUsRVV0R2UsSUFBSTtNVnVHN0IsTUFBTSxFVXZHbUIsSUFBSTtNQUN6QixnQkFBZ0IsRVhURyxPQUFPO01XVTFCLEtBQUssRVhoQkMsT0FBTztNV2lCYixjQUFjLEVBQUUsU0FBUztNQUN6QixXQUFXLEVBQUUsR0FBRyxHQUNqQjtJQXhCTCxBQTBCSSxrQkExQmMsQ0FVaEIsZUFBZSxDQWdCYixlQUFlLENBQUM7TUFDZCxTQUFTLEVBQUUsSUFBSSxHQUNoQjtJQTVCTCxBQThCSSxrQkE5QmMsQ0FVaEIsZUFBZSxDQW9CYixhQUFhLENBQUM7TVZTaEIsWUFBWSxFVVJNLENBQUM7TVZTZixRQUFRLEVVVE0sQ0FBQztNVlVYLElBQUksRVVWTSxDQUFDO01WNENuQix1QkFBdUIsRVUzQ1csVUFBVTtNVjRDcEMsZUFBZSxFVTVDVyxVQUFVO01BQ3hDLFNBQVMsRUFBRSxLQUFLLEdBQ2pCO0lBbENMLEFBb0NJLGtCQXBDYyxDQVVoQixlQUFlLENBMEJiLGFBQWEsQ0FBQztNVkdoQixZQUFZLEVVRk0sR0FBRTtNVkdoQixRQUFRLEVVSE0sR0FBRTtNVklaLElBQUksRVVKTSxHQUFFO01BQ2hCLFNBQVMsRUFBRSxLQUFLLEdBQ2pCO0lBdkNMLEFBeUNJLGtCQXpDYyxDQVVoQixlQUFlLENBK0JiLGlCQUFpQixDQUFDO01BQ2hCLFNBQVMsRUFBRSxLQUFLLEdBQ2pCO0lBM0NMLEFBNkNJLGtCQTdDYyxDQVVoQixlQUFlLENBbUNiLHNCQUFzQixDQUFDO01BQ3JCLFNBQVMsRUFBRSxLQUFLLEdBQ2pCO0VBL0NMLEFBa0RFLGtCQWxEZ0IsQ0FrRGhCLFlBQVksQ0FBQztJVm1CYixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQThDRSxHQUFHO0lBN0NuQixjQUFjLEVBNkNFLEdBQUc7SUF4RDNCLG1CQUFtQixFQTZETyxNQUFNO0lBNUR4QixXQUFXLEVBNERPLE1BQU07SUFsRWhDLHFCQUFxQixFVU9TLE1BQU07SVZONUIsYUFBYSxFVU1TLE1BQU07SUFDbEMsU0FBUyxFQUFFLElBQUksR0FvRWhCO0lBekhILEFBdURJLGtCQXZEYyxDQWtEaEIsWUFBWSxHQUtOLEdBQUcsQ0FBQztNVmNWLE9BQU8sRUFBRSxZQUFZO01BQ3JCLE9BQU8sRUFBRSxXQUFXO01BQ3BCLE9BQU8sRUFBRSxJQUFJO01BWGIsc0JBQXNCLEVBOENFLEdBQUc7TUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztNQXhEM0IsbUJBQW1CLEVBNkRPLE1BQU07TUE1RHhCLFdBQVcsRUE0RE8sTUFBTTtNQVNoQyxVQUFVLEVVL0RlLElBQUk7TVZnRTdCLFVBQVUsRVVoRWUsSUFBSTtNVmlFN0IsTUFBTSxFVWpFbUIsSUFBSSxHQUMxQjtJQTFETCxBQTRESSxrQkE1RGMsQ0FrRGhCLFlBQVksQ0FVVixlQUFlLENBQUM7TUFDZCxLQUFLLEVBQUUsT0FBTztNQUNkLFNBQVMsRUFBRSxJQUFJO01BQ2YsWUFBWSxFQUFFLElBQ2hCLEdBQUM7SUFoRUwsQUFrRUksa0JBbEVjLENBa0RoQixZQUFZLENBZ0JWLGFBQWEsQ0FBQztNVjNCaEIsWUFBWSxFVTRCTSxDQUFDO01WM0JmLFFBQVEsRVUyQk0sQ0FBQztNVjFCWCxJQUFJLEVVMEJNLENBQUM7TUFDZixLQUFLLEVBQUUsT0FBTztNQUNkLFNBQVMsRUFBRSxLQUFLO01BQ2hCLE1BQU0sRUFBRSxPQUFPLEdBQ2hCO0lBdkVMLEFBeUVJLGtCQXpFYyxDQWtEaEIsWUFBWSxDQXVCVixhQUFhLENBQUM7TVZsQ2hCLFlBQVksRVVtQ00sR0FBRTtNVmxDaEIsUUFBUSxFVWtDTSxHQUFFO01WakNaLElBQUksRVVpQ00sR0FBRTtNVkNwQix1QkFBdUIsRVVBVyxNQUFNO01WQ2hDLGVBQWUsRVVEVyxNQUFNO01BQ3BDLGNBQWMsRUFBRSxNQUFNO01BQ3RCLFNBQVMsRUFBRSxLQUFLLEdBQ2pCO0lBOUVMLEFBZ0ZJLGtCQWhGYyxDQWtEaEIsWUFBWSxDQThCVixpQkFBaUIsQ0FBQztNVkxwQix1QkFBdUIsRVVNVyxNQUFNO01WTGhDLGVBQWUsRVVLVyxNQUFNO01BQ3BDLFNBQVMsRUFBRSxJQUFJO01BQ2YsU0FBUyxFQUFFLEtBQUs7TUFDaEIsY0FBYyxFQUFFLFNBQVMsR0FTMUI7TUE3RkwsQUFzRk0sa0JBdEZZLENBa0RoQixZQUFZLENBOEJWLGlCQUFpQixHQU1iLEdBQUcsQ0FBQztRQUNKLE1BQU0sRUFBRSxPQUFPLEdBQ2hCO01BeEZQLEFBMEZNLGtCQTFGWSxDQWtEaEIsWUFBWSxDQThCVixpQkFBaUIsQ0FVZixDQUFDLENBQUM7UUFDQSxhQUFhLEVBQUUsSUFBSSxHQUNwQjtJQTVGUCxBQStGSSxrQkEvRmMsQ0FrRGhCLFlBQVksQ0E2Q1Ysc0JBQXNCLENBQUM7TVZwQnpCLHVCQUF1QixFVXFCVyxNQUFNO01WcEJoQyxlQUFlLEVVb0JXLE1BQU07TUFDcEMsU0FBUyxFQUFFLElBQUk7TUFDZixTQUFTLEVBQUUsS0FBSztNQUNoQixjQUFjLEVBQUUsU0FBUyxHQUMxQjtJQXBHTCxBQXVHTSxrQkF2R1ksQ0FrRGhCLFlBQVksQUFvRFQsVUFBVyxDQUFBLElBQUksSUFDWixHQUFHLENBQUM7TUFDSixnQkFBZ0IsRUFBRSxPQUFPLEdBQzFCO0lBekdQLEFBMkdNLGtCQTNHWSxDQWtEaEIsWUFBWSxBQW9EVCxVQUFXLENBQUEsSUFBSSxFQUtkLGVBQWUsRUEzR3JCLGtCQUFrQixDQWtEaEIsWUFBWSxBQW9EVCxVQUFXLENBQUEsSUFBSSxFQUtHLGFBQWEsQ0FBQztNQUM3QixnQkFBZ0IsRUFBRSxPQUFPLEdBQzFCO0lBN0dQLEFBaUhNLGtCQWpIWSxDQWtEaEIsWUFBWSxBQThEVCxVQUFXLENBQUEsR0FBRyxJQUNYLEdBQUcsQ0FBQztNQUNKLGdCQUFnQixFQUFFLE9BQU8sR0FDMUI7SUFuSFAsQUFxSE0sa0JBckhZLENBa0RoQixZQUFZLEFBOERULFVBQVcsQ0FBQSxHQUFHLEVBS2IsZUFBZSxFQXJIckIsa0JBQWtCLENBa0RoQixZQUFZLEFBOERULFVBQVcsQ0FBQSxHQUFHLEVBS0ksYUFBYSxDQUFDO01BQzdCLGdCQUFnQixFQUFFLE9BQU8sR0FDMUI7O0FHdkhQLEFBQUEseUJBQXlCLENBQUM7RWJxRXhCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBWGIsc0JBQXNCLEVBOENFLEdBQUc7RUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztFYXhHM0IsZ0JBQWdCLEVBQUUsT0FBTyxHQUsxQjtFQVBELEFBSUUseUJBSnVCLENBSXZCLDhCQUE4QixDQUFDO0libUMvQixZQUFZLEVhbENJLEdBQUU7SWJtQ2QsUUFBUSxFYW5DSSxHQUFFO0lib0NWLElBQUksRWFwQ0ksR0FBRSxHQUNqQjs7QUFHSCxBQUFBLGtCQUFrQixDQUFDO0VBQ2pCLFNBQVMsRUFBRSxJQUFJO0VBQ2YsYUFBYSxFQUFFLElBQUk7RUFDbkIsVUFBVSxFQUFFLElBQUksR0ErRGpCO0VBbEVELEFBT0Usa0JBUGdCLENBT2hCLHVCQUF1QixDQUFDO0licUR4QixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQThDRSxHQUFHO0lBN0NuQixjQUFjLEVBNkNFLEdBQUc7SUF4RDNCLG1CQUFtQixFQTZETyxNQUFNO0lBNUR4QixXQUFXLEVBNERPLE1BQU07SUFwQ2hDLHVCQUF1QixFYXpEUyxVQUFVO0liMERsQyxlQUFlLEVhMURTLFVBQVU7SUFDeEMsVUFBVSxFQUFFLElBQUk7SUFDaEIsWUFBWSxFQUFFLElBQUk7SUFDbEIsS0FBSyxFQVBXLEtBQUssR0F1QnRCO0lBNUJILEFBY0ksa0JBZGMsQ0FPaEIsdUJBQXVCLEdBT2pCLEdBQUcsQ0FBQztNYjhDVixPQUFPLEVBQUUsWUFBWTtNQUNyQixPQUFPLEVBQUUsV0FBVztNQUNwQixPQUFPLEVBQUUsSUFBSTtNQVhiLHNCQUFzQixFQThDRSxHQUFHO01BN0NuQixjQUFjLEVBNkNFLEdBQUc7TUF4RDNCLG1CQUFtQixFQTZETyxNQUFNO01BNUR4QixXQUFXLEVBNERPLE1BQU07TWF0RjVCLFlBQVksRUFBRSxJQUFJO01BQ2xCLGNBQWMsRUFBRSxTQUFTLEdBVTFCO01BM0JMLEFBbUJNLGtCQW5CWSxDQU9oQix1QkFBdUIsR0FPakIsR0FBRyxHQUtELElBQUksQUFBQSxZQUFZLENBQUM7UUFDbkIsU0FBUyxFQUFFLElBQUk7UUFDZixZQUFZLEVBQUUsR0FBRyxHQUtsQjtRQTFCUCxBQXVCUSxrQkF2QlUsQ0FPaEIsdUJBQXVCLEdBT2pCLEdBQUcsR0FLRCxJQUFJLEFBQUEsWUFBWSxHQUlkLENBQUMsQUFBQSxXQUFXLENBQUM7VUFDZixTQUFTLEVBQUUsSUFBSSxHQUNoQjtFQXpCVCxBQThCRSxrQkE5QmdCLENBOEJoQiw0QkFBNEIsQ0FBQztJQUMzQixPQUFPLEVBQUUsSUFBSTtJQUNiLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLE9BQU87SUFDcEIsR0FBRyxFQUxpQixJQUFJO0lBTXhCLEtBQUssRUFBRSxJQUFJLEdBOEJaO0lBakVILEFBb0NJLGtCQXBDYyxDQThCaEIsNEJBQTRCLENBTTFCLGlCQUFpQixDQUFDO01id0JwQixPQUFPLEVBQUUsWUFBWTtNQUNyQixPQUFPLEVBQUUsV0FBVztNQUNwQixPQUFPLEVBQUUsSUFBSTtNQVhiLHNCQUFzQixFQStCRSxNQUFNO01BOUJ0QixjQUFjLEVBOEJFLE1BQU07TUF6QzlCLG1CQUFtQixFQThDTyxNQUFNO01BN0N4QixXQUFXLEVBNkNPLE1BQU07TUFyQmhDLHVCQUF1QixFYTVCVyxhQUFhO01iNkJ2QyxlQUFlLEVhN0JXLGFBQWE7TUFDM0MsTUFBTSxFQUFFLElBQUk7TUFDWixVQUFVLEVBQUUsQ0FBQztNQUNiLFVBQVUsRUFBRSxJQUFJO01BQ2hCLFNBQVMsRUFBRSxDQUFDO01BQ1osS0FBSyxFQUFFLHVCQUE4QztNQUVyRCxnQkFBZ0IsRWRwRGQsT0FBTyxHY3FEVjtJQTlDTCxBQWdESSxrQkFoRGMsQ0E4QmhCLDRCQUE0QixDQWtCMUIsaUJBQWlCLENBQUM7TWJZcEIsT0FBTyxFQUFFLFlBQVk7TUFDckIsT0FBTyxFQUFFLFdBQVc7TUFDcEIsT0FBTyxFQUFFLElBQUk7TUFYYixzQkFBc0IsRUE4Q0UsR0FBRztNQTdDbkIsY0FBYyxFQTZDRSxHQUFHO01BeEQzQixtQkFBbUIsRUE2RE8sTUFBTTtNQTVEeEIsV0FBVyxFQTRETyxNQUFNO01BcENoQyx1QkFBdUIsRWFoQlcsVUFBVTtNYmlCcEMsZUFBZSxFYWpCVyxVQUFVO01BQ3hDLElBQUksRUFBRSxRQUFRO01BQ2QsVUFBVSxFQUFFLElBQUksR0FPakI7TUEzREwsQUFzRE0sa0JBdERZLENBOEJoQiw0QkFBNEIsQ0FrQjFCLGlCQUFpQixDQU1mLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDUCxTQUFTLEVBQUUsSUFBSTtRQUNmLFlBQVksRUFBRSxHQUFHO1FBQ2pCLGNBQWMsRUFBRSxNQUFNLEdBQ3ZCO0lBMURQLEFBNkRJLGtCQTdEYyxDQThCaEIsNEJBQTRCLENBK0IxQixpQkFBaUIsR0FBRyxHQUFHLENBQUM7TWJEMUIsT0FBTyxFQUFFLFlBQVk7TUFDckIsT0FBTyxFQUFFLFdBQVc7TUFDcEIsT0FBTyxFQUFFLElBQUk7TUFYYixzQkFBc0IsRUE4Q0UsR0FBRztNQTdDbkIsY0FBYyxFQTZDRSxHQUFHO01hbEN2QixLQUFLLEVBQUUsSUFBSSxHQUNaOztBQUdMLEFBQUEsMEJBQTBCLENBQUM7RWJQekIsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFYYixzQkFBc0IsRUE4Q0UsR0FBRztFQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0VBeEQzQixtQkFBbUIsRUE2RE8sTUFBTTtFQTVEeEIsV0FBVyxFQTRETyxNQUFNO0VBcENoQyx1QkFBdUIsRWFHTyxVQUFVO0ViRmhDLGVBQWUsRWFFTyxVQUFVO0VBQ3hDLFNBQVMsRUFBRSxJQUFJO0VBQ2YsVUFBVSxFQUFFLElBQUksR0EwQmpCO0VBOUJELEFBS0UsMEJBTHdCLENBS3hCLE9BQU8sQ0FBQztJYlpSLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBOENFLEdBQUc7SUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztJQXhEM0IsbUJBQW1CLEVBNkRPLE1BQU07SUE1RHhCLFdBQVcsRUE0RE8sTUFBTTtJQXBDaEMsdUJBQXVCLEVhUVMsVUFBVTtJYlBsQyxlQUFlLEVhT1MsVUFBVTtJQUN4QyxNQUFNLEVBQUUsT0FBTztJQUNmLGFBQWEsRUFBRSxHQUFHLEdBb0JuQjtJQTdCSCxBQVVJLDBCQVZzQixDQUt4QixPQUFPLEFBS0osU0FBUyxDQUFDO01BQ1QsTUFBTSxFQUFFLE9BQU87TUFDZixLQUFLLEVkcEZFLE9BQU8sR2N3RmY7TUFoQkwsQUFhTSwwQkFib0IsQ0FLeEIsT0FBTyxBQUtKLFNBQVMsQ0FHUixZQUFZLEVBYmxCLDBCQUEwQixDQUt4QixPQUFPLEFBS0osU0FBUyxDQUdNLFlBQVksQ0FBQztRQUN6QixLQUFLLEVkdEZBLE9BQU8sR2N1RmI7SUFmUCxBQWlCSSwwQkFqQnNCLENBS3hCLE9BQU8sQ0FZTCxZQUFZLENBQUM7TUFDWCxTQUFTLEVBQUUsSUFBSTtNQUNmLFlBQVksRUFBRSxHQUFHLEdBQ2xCO0lBcEJMLEFBcUJJLDBCQXJCc0IsQ0FLeEIsT0FBTyxDQWdCTCxZQUFZLENBQUM7TUFDWCxjQUFjLEVBQUUsU0FBUztNQUN6QixTQUFTLEVBQUUsSUFBSTtNQUNmLFdBQVcsRUFBRSxJQUFJO01BQ2pCLGNBQWMsRUFBRSxHQUFHO01BQ25CLFlBQVksRUFBRSxJQUFJO01BQ2xCLFdBQVcsRUFBRSxNQUFNLEdBQ3BCOztBR3hHTCxBQUVFLGlCQUZlLENBRWYsV0FBVyxDQUFDO0VoQm1FWixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQThDRSxHQUFHO0VBN0NuQixjQUFjLEVBNkNFLEdBQUc7RUF4RDNCLG1CQUFtQixFQTZETyxNQUFNO0VBNUR4QixXQUFXLEVBNERPLE1BQU07RUF4RWhDLFlBQVksRWdCbkNJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtFaEJvQ3BCLFFBQVEsRWdCcENJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtFaEJxQ2hCLElBQUksRWdCckNJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtFaEJvSHhCLFVBQVUsRWdCbkhhLElBQUk7RWhCb0gzQixVQUFVLEVnQnBIYSxJQUFJO0VoQnFIM0IsTUFBTSxFZ0JySGlCLElBQUk7RUFDekIsZ0JBQWdCLEVBQUMsT0FBTztFQUN4QixLQUFLLEVqQkxELE9BQU87RWlCTVgsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsR0FBRztFQUNoQixNQUFNLEVBQUUsT0FBTyxHQWlCaEI7RUEzQkgsQUFZSSxpQkFaYSxDQUVmLFdBQVcsQ0FVVCxlQUFlLENBQUM7SUFDZCxXQUFXLEVBQUUsSUFBSSxHQUNsQjtFQWRMLEFBZ0JJLGlCQWhCYSxDQUVmLFdBQVcsQ0FjVCxhQUFhLENBQUM7SUFDWixXQUFXLEVBQUUsSUFBSSxHQUNsQjtFQWxCTCxBQW9CSSxpQkFwQmEsQ0FFZixXQUFXLENBa0JULGVBQWUsR0FBRyxhQUFhLENBQUM7SUFDOUIsV0FBVyxFQUFFLElBQUksR0FDbEI7RUF0QkwsQUF3QkksaUJBeEJhLENBRWYsV0FBVyxBQXNCUixNQUFNLENBQUM7SUFDTixnQkFBZ0IsRUFBQyxzQkFBa0IsR0FDcEM7O0FBMUJMLEFBNkJFLGlCQTdCZSxDQTZCZixTQUFTLENBQUM7RWhCVVYsWUFBWSxFZ0JUSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7RWhCVXBCLFFBQVEsRWdCVkksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0VoQldoQixJQUFJLEVnQlhJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtFQUN0QixPQUFPLEVBQUUsSUFBSSxHQXFGZDtFQXBISCxBQWdDSSxpQkFoQ2EsQ0E2QmYsU0FBUyxHQUdILEdBQUcsQ0FBQztJaEJxQ1YsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUErQkUsTUFBTTtJQTlCdEIsY0FBYyxFQThCRSxNQUFNO0lBcEQ5QixZQUFZLEVnQkxNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJaEJNdEIsUUFBUSxFZ0JOTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SWhCT2xCLElBQUksRWdCUE0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQ3ZCO0VBbkNMLEFBb0NJLGlCQXBDYSxDQTZCZixTQUFTLENBT1AsZ0JBQWdCLENBQUM7SWhCY25CLG1CQUFtQixFZ0JiVyxNQUFNO0loQmM1QixXQUFXLEVnQmRXLE1BQU07SUFDaEMsU0FBUyxFQUFFLEtBQUssR0F5Q2pCO0lBL0VMLEFBd0NNLGlCQXhDVyxDQTZCZixTQUFTLENBT1AsZ0JBQWdCLENBSWQsa0JBQWtCLENBQUM7TUFDakIsUUFBUSxFQUFFLFFBQVE7TUFDbEIsS0FBSyxFQUFFLEtBQUs7TUFDWixNQUFNLEVBQUUsS0FBSztNQUNiLFFBQVEsRUFBRSxNQUFNLEdBQ2pCO0lBN0NQLEFBK0NNLGlCQS9DVyxDQTZCZixTQUFTLENBT1AsZ0JBQWdCLENBV2QsWUFBWSxDQUFDO01BQ1gsTUFBTSxFQUFFLGNBQWM7TUFDdEIsTUFBTSxFQUFFLEtBQUs7TUFFYixNQUFNLEVBQUUsUUFBUTtNQUNoQixLQUFLLEVBQUUsS0FBSztNQUNaLE1BQU0sRUFBRSxPQUFPLEdBY2hCO01BbkVQLEFBdURRLGlCQXZEUyxDQTZCZixTQUFTLENBT1AsZ0JBQWdCLENBV2QsWUFBWSxDQVFWLEdBQUcsQ0FBQztRQUNGLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLElBQUksRUFBRSxHQUFHO1FBQ1QsR0FBRyxFQUFFLEdBQUc7UUFDUixNQUFNLEVBQUUsSUFBSTtRQUNaLEtBQUssRUFBRSxJQUFJO1FBQ1QsaUJBQWlCLEVBQUUscUJBQW9CO1FBQ3JDLGFBQWEsRUFBRSxxQkFBb0I7UUFDakMsU0FBUyxFQUFFLHFCQUFxQixHQUN2QztJQWhFVCxBQXFFTSxpQkFyRVcsQ0E2QmYsU0FBUyxDQU9QLGdCQUFnQixDQWlDZCxpQkFBaUIsQ0FBQztNQUNoQixTQUFTLEVBQUUsSUFBSTtNQUNmLFdBQVcsRUFBRSxHQUFHO01BQ2hCLGNBQWMsRUFBRSxJQUFJLEdBQ3JCO0lBekVQLEFBMkVNLGlCQTNFVyxDQTZCZixTQUFTLENBT1AsZ0JBQWdCLENBdUNkLGVBQWUsQ0FBQztNQUNkLFNBQVMsRUFBRSxJQUFJO01BQ2YsY0FBYyxFQUFFLFNBQVMsR0FDMUI7RUE5RVAsQUFpRkksaUJBakZhLENBNkJmLFNBQVMsQ0FvRFAsY0FBYyxDQUFDO0lBQ2IsWUFBWSxFQUFFLElBQUksR0FpQ25CO0lBbkhMLEFBdUZNLGlCQXZGVyxDQTZCZixTQUFTLENBb0RQLGNBQWMsQ0FNWixjQUFjLENBQUM7TWhCbEJuQixPQUFPLEVBQUUsWUFBWTtNQUNyQixPQUFPLEVBQUUsV0FBVztNQUNwQixPQUFPLEVBQUUsSUFBSTtNQVhiLHNCQUFzQixFQThDRSxHQUFHO01BN0NuQixjQUFjLEVBNkNFLEdBQUc7TUEvQjNCLHVCQUF1QixFZ0JjYSxhQUFhO01oQmJ6QyxlQUFlLEVnQmFhLGFBQWE7TUFDM0MsU0FBUyxFQUFFLElBQUk7TUFDZixXQUFXLEVBQUUsSUFBSSxHQUNsQjtJQTVGUCxBQThGTSxpQkE5RlcsQ0E2QmYsU0FBUyxDQW9EUCxjQUFjLENBYVosc0JBQXNCLENBQUM7TWhCekIzQixPQUFPLEVBQUUsWUFBWTtNQUNyQixPQUFPLEVBQUUsV0FBVztNQUNwQixPQUFPLEVBQUUsSUFBSTtNQVhiLHNCQUFzQixFQThDRSxHQUFHO01BN0NuQixjQUFjLEVBNkNFLEdBQUc7TUEvQjNCLHVCQUF1QixFZ0JxQmEsYUFBYTtNaEJwQnpDLGVBQWUsRWdCb0JhLGFBQWE7TUFDM0MsU0FBUyxFQUFFLElBQUk7TUFDZixXQUFXLEVBQUUsSUFBSTtNQUNqQixXQUFXLEVBQUUsSUFBSSxHQUNsQjtJQXBHUCxBQXVHTSxpQkF2R1csQ0E2QmYsU0FBUyxDQW9EUCxjQUFjLENBc0JaLFVBQVUsQ0FBQztNQUNULGFBQWEsRUFBRSxjQUFjO01BQzdCLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLElBQUk7TUFDakIsVUFBVSxFQUFFLElBQUksR0FDakI7SUE1R1AsQUE2R00saUJBN0dXLENBNkJmLFNBQVMsQ0FvRFAsY0FBYyxDQTRCWixXQUFXLENBQUM7TUFDVixTQUFTLEVBQUUsSUFBSTtNQUNmLFdBQVcsRUFBRSxJQUFJO01BQ2pCLFVBQVUsRUFBRSxJQUFJO01BQ2hCLFVBQVUsRUFBRSxNQUFNLEdBQ25COztBQWxIUCxBQXNIRSxpQkF0SGUsQ0FzSGYsV0FBVyxDQUFDO0VoQi9FWixZQUFZLEVnQmdGSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7RWhCL0VwQixRQUFRLEVnQitFSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7RWhCOUVoQixJQUFJLEVnQjhFSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7RUFDdEIsZ0JBQWdCLEVBQUUsT0FBTztFQUN6QixVQUFVLEVBQUUsSUFBSSxHQTJCakI7RUFwSkgsQUEySEksaUJBM0hhLENBc0hmLFdBQVcsR0FLUCxHQUFHLENBQUM7SWhCdERSLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBOENFLEdBQUc7SUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztJQXhEM0IsbUJBQW1CLEVBNkRPLE1BQU07SUE1RHhCLFdBQVcsRUE0RE8sTUFBTTtJQXBDaEMsdUJBQXVCLEVnQmtEVyxNQUFNO0loQmpEaEMsZUFBZSxFZ0JpRFcsTUFBTTtJaEJ0RnhDLFlBQVksRWdCdUZNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRztJaEJ0RnJCLFFBQVEsRWdCc0ZNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRztJaEJyRmpCLElBQUksRWdCcUZNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRztJQUNyQixTQUFTLEVBQUUsSUFBSTtJQUNmLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLE1BQU0sRUFBRSxPQUFPO0lBQ2YsS0FBSyxFakI3SEMsT0FBTztJaUI4SGIsY0FBYyxFQUFFLEtBQUssR0FZdEI7SUEvSUwsQUFvSU0saUJBcElXLENBc0hmLFdBQVcsR0FLUCxHQUFHLENBU0gsQ0FBQyxDQUFDO01BQ0EsU0FBUyxFQUFFLElBQUk7TUFDZixZQUFZLEVBQUUsR0FBRyxHQUlsQjtNQTFJUCxBQXVJUSxpQkF2SVMsQ0FzSGYsV0FBVyxHQUtQLEdBQUcsQ0FTSCxDQUFDLEFBR0UsVUFBVSxDQUFFO1FBQ1gsU0FBUyxFQUFFLElBQUksR0FDaEI7SUF6SVQsQUEySU0saUJBM0lXLENBc0hmLFdBQVcsR0FLUCxHQUFHLEFBZ0JGLE1BQU0sQ0FBQztNQUNOLGdCQUFnQixFQUFFLE9BQU87TUFDekIsS0FBSyxFakIvSU4sT0FBTyxHaUJnSlA7RUE5SVAsQUFpSkksaUJBakphLENBc0hmLFdBQVcsR0EyQlAsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNWLFdBQVcsRUFBRSxpQkFBaUIsR0FDL0I7O0FHbkpMLEFBQUEsYUFBYSxDQUFDO0VuQmtEWixtQkFBbUIsRW1CakRPLFFBQVE7RW5Ca0QxQixXQUFXLEVtQmxETyxRQUFRO0VuQnVIbEMsVUFBVSxFbUJ0SFcsSUFBSTtFbkJ1SHpCLFVBQVUsRW1CdkhXLElBQUk7RW5Cd0h6QixNQUFNLEVtQnhIZSxJQUFJLEdBQzFCOztBQUVELEFBQUEsVUFBVSxHQUFHLFVBQVUsQ0FBQztFQUN0QixXQUFXLEVBQUUsSUFBSSxHQUNsQjs7QUFFRCxBQUFBLFVBQVUsQ0FBQztFbkIrR1QsVUFBVSxFbUI5R1csSUFBSTtFbkIrR3pCLFVBQVUsRW1CL0dXLElBQUk7RW5CZ0h6QixNQUFNLEVtQmhIZSxJQUFJO0VBQ3pCLEtBQUssRUFBRSxPQUFPO0VBQ2QsTUFBTSxFQUFFLE9BQU87RUFDZixTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLGNBQWMsRUFBRSxTQUFTO0VBQ3pCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLGNBQWMsRUFBRSxHQUFHLEdBK0JwQjtFQXZDRCxBQVVFLFVBVlEsQUFVUCxPQUFPLENBQUM7SUFDUCxhQUFhLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3BCdEJyQixPQUFPO0lvQnVCVixLQUFLLEVBQUUsT0FBTyxHQUNmO0VBYkgsQUFlRSxVQWZRLEFBZVAsSUFBSyxDWmtCRSxPQUFPLENZbEJELE1BQU0sQ0FBQztJQUNuQixhQUFhLEVBQUUsaUJBQWlCO0lBQ2hDLE1BQU0sRUFBRSxPQUFPLEdBQ2hCO0VBbEJILEFBb0JFLFVBcEJRLENBb0JSLENBQUMsQ0FBQztJbkIyRkYsVUFBVSxFbUIxRmEsSUFBSTtJbkIyRjNCLFVBQVUsRW1CM0ZhLElBQUk7SW5CNEYzQixNQUFNLEVtQjVGaUIsSUFBSTtJQUN6QixNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxPQUFPO0lBQ2QsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLElBQUk7SUFDYixlQUFlLEVBQUUsSUFBSSxHQUN0QjtFQTNCSCxBQTZCRSxVQTdCUSxDQTZCUixJQUFJLEFBQUEsT0FBTyxDQUFDO0lBQ1YsUUFBUSxFQUFFLFFBQVE7SUFDbEIsR0FBRyxFQUFFLENBQUM7SUFDTixLQUFLLEVBQUUsS0FBSztJQUNaLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixnQkFBZ0IsRUFBRSxPQUFPO0lBQ3pCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxNQUFNLEdBQ25COztBQUdILEFBQUEsZUFBZSxDQUFDO0VuQjRFZCxTQUFTLEVtQnRFVyxLQUFLO0VuQnVFekIsU0FBUyxFbUJ2RVcsS0FBSztFbkJ3RXpCLEtBQUssRW1CeEVlLEtBQUssR0FpRzFCO0VBckdHLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztJQUY1QixBQUNFLGVBRGEsQUFDWixlQUFlLENBQUM7TUFFYixPQUFPLEVBQUUsSUFBSSxHQUVoQjtFQUxILEFBUUUsZUFSYSxDQVFiLGNBQWMsQ0FBQztJQUNiLFdBQVcsRUFBRSxHQUFHLEdBQ2pCO0VBVkgsQUFZRSxlQVphLENBWWIsWUFBWSxDQUFDO0luQjBEYixVQUFVLEVtQnpEYSxLQUFLO0luQjBENUIsVUFBVSxFbUIxRGEsS0FBSztJbkIyRDVCLE1BQU0sRW1CM0RpQixLQUFLO0luQitENUIsU0FBUyxFbUI5RGEsS0FBSztJbkIrRDNCLFNBQVMsRW1CL0RhLEtBQUs7SW5CZ0UzQixLQUFLLEVtQmhFaUIsS0FBSztJQUN6QixRQUFRLEVBQUUsTUFBTSxHQVFqQjtJQXZCSCxBQWlCSSxlQWpCVyxDQVliLFlBQVksQ0FLVixHQUFHLENBQUM7TUFDRixPQUFPLEVBQUUsS0FBSztNQUNkLEtBQUssRUFBRSxJQUFJO01BQ1gsTUFBTSxFQUFFLElBQUk7TUFDWixVQUFVLEVBQUUsT0FBTyxHQUNwQjtFQXRCTCxBQXlCRSxlQXpCYSxDQXlCYixlQUFlLENBQUM7SW5CTmhCLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBOENFLEdBQUc7SUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztJQXhEM0IsbUJBQW1CLEVBNkRPLE1BQU07SUE1RHhCLFdBQVcsRUE0RE8sTUFBTTtJQXBDaEMsdUJBQXVCLEVtQkVTLE1BQU07SW5CRDlCLGVBQWUsRW1CQ1MsTUFBTTtJQUNwQyxnQkFBZ0IsRXBCaEZiLE9BQU87SW9CaUZWLEtBQUssRXBCN0VELE9BQU87SW9COEVYLE1BQU0sRUFBRSxJQUFJO0lBQ1osS0FBSyxFQUFFLEtBQUs7SUFDWixNQUFNLEVBQUUsT0FBTyxHQWlCaEI7SUFqREgsQUFtQ0ksZUFuQ1csQ0F5QmIsZUFBZSxDQVViLENBQUMsQ0FBQztNQUNBLFNBQVMsRUFBRSxJQUFJO01BQ2YsWUFBWSxFQUFFLEdBQUcsR0FDbEI7SUF0Q0wsQUF3Q0ksZUF4Q1csQ0F5QmIsZUFBZSxDQWViLElBQUksQ0FBQztNQUNILFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLEdBQUc7TUFDaEIsY0FBYyxFQUFFLFNBQVMsR0FDMUI7SUE1Q0wsQUE4Q0ksZUE5Q1csQ0F5QmIsZUFBZSxBQXFCWixVQUFVLENBQUM7TUFDVixVQUFVLEVBQUUsTUFBTSxHQUNuQjtFQWhETCxBQW1ERSxlQW5EYSxDQW1EYix1QkFBdUIsQ0FBQztJbkJoQ3hCLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBK0JFLE1BQU07SUE5QnRCLGNBQWMsRUE4QkUsTUFBTTtJQXpDOUIsbUJBQW1CLEVBOENPLE1BQU07SUE3Q3hCLFdBQVcsRUE2Q08sTUFBTTtJQXJCaEMsdUJBQXVCLEVtQjRCUyxNQUFNO0luQjNCOUIsZUFBZSxFbUIyQlMsTUFBTTtJQUNwQyxTQUFTLEVBQUUsSUFBSTtJQUNmLFVBQVUsRUFBRSxJQUFJLEdBS2pCO0lBNURILEFBeURJLGVBekRXLENBbURiLHVCQUF1QixDQU1yQixhQUFhLEdBQUcsSUFBSSxBQUFBLFlBQVksQ0FBQztNQUMvQixZQUFZLEVBQUUsR0FBRyxHQUNsQjtFQTNETCxBQThERSxlQTlEYSxDQThEYix3QkFBd0IsQ0FBQztJbkIzQ3pCLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBK0JFLE1BQU07SUE5QnRCLGNBQWMsRUE4QkUsTUFBTTtJQXpDOUIsbUJBQW1CLEVBOENPLE1BQU07SUE3Q3hCLFdBQVcsRUE2Q08sTUFBTTtJQXJCaEMsdUJBQXVCLEVtQnVDUyxNQUFNO0luQnRDOUIsZUFBZSxFbUJzQ1MsTUFBTTtJQUNwQyxTQUFTLEVBQUUsSUFBSTtJQUNmLFVBQVUsRUFBRSxJQUFJLEdBb0NqQjtJQXRHSCxBQW9FSSxlQXBFVyxDQThEYix3QkFBd0IsQ0FNdEIsZ0JBQWdCLENBQUM7TW5CakRuQixPQUFPLEVBQUUsWUFBWTtNQUNyQixPQUFPLEVBQUUsV0FBVztNQUNwQixPQUFPLEVBQUUsSUFBSTtNQVhiLHNCQUFzQixFQThDRSxHQUFHO01BN0NuQixjQUFjLEVBNkNFLEdBQUc7TUF4RDNCLG1CQUFtQixFQTZETyxNQUFNO01BNUR4QixXQUFXLEVBNERPLE1BQU07TUFwQ2hDLHVCQUF1QixFbUI2Q2EsTUFBTTtNbkI1Q2xDLGVBQWUsRW1CNENhLE1BQU07TUFDcEMsZ0JBQWdCLEVBQUUsT0FBTztNQUN6QixNQUFNLEVBQUUsQ0FBQztNQUNULGFBQWEsRUFBRSxHQUFHO01BQ2xCLE1BQU0sRUFBRSxPQUFPO01BQ2YsTUFBTSxFQUFFLElBQUk7TUFDWixLQUFLLEVBQUUsS0FBSztNQUNaLFFBQVEsRUFBRSxRQUFRLEdBdUJyQjtNQXBHTCxBQStFTSxlQS9FUyxDQThEYix3QkFBd0IsQ0FNdEIsZ0JBQWdCLENBV2QsV0FBVyxDQUFDO1FBQ1YsTUFBTSxFQUFFLGNBQWM7UUFDdEIsWUFBWSxFQUFFLEdBQUc7UUFDakIsTUFBTSxFQUFFLElBQUk7UUFDWixLQUFLLEVBQUUsSUFBSSxHQUNaO01BcEZQLEFBc0ZNLGVBdEZTLENBOERiLHdCQUF3QixDQU10QixnQkFBZ0IsQ0FrQmQsV0FBVyxDQUFDO1FBQ1YsU0FBUyxFQUFFLElBQUk7UUFDZixXQUFXLEVBQUUsR0FBRztRQUNoQixjQUFjLEVBQUUsU0FBUztRQUN6QixnQkFBZ0IsRXBCOUlqQixPQUFPO1FvQitJTixLQUFLLEVBQUUsSUFBSSxHQUNaO01BNUZQLEFBOEZNLGVBOUZTLENBOERiLHdCQUF3QixDQU10QixnQkFBZ0IsQ0EwQmQsWUFBWSxDQUFDO1FBQ1gsUUFBUSxFQUFFLFFBQVE7UUFDbEIsS0FBSyxFQUFFLEdBQUc7UUFDVixNQUFNLEVBQUUsT0FBTztRQUNmLFNBQVMsRUFBRSxJQUFJLEdBQ2hCOztBQU1QLEFBQUEsdUJBQXVCLEFBQUEsb0JBQW9CLENBQUM7RUFDMUMsT0FBTyxFQUFFLElBQUksR0FJZDtFQUhDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztJQUYxQixBQUFBLHVCQUF1QixBQUFBLG9CQUFvQixDQUFDO01BR3hDLE9BQU8sRUFBRSxLQUFLLEdBRWpCOztBQUNELEFBQUEsd0JBQXdCLEFBQUEscUJBQXFCLENBQUM7RUFDNUMsT0FBTyxFQUFFLElBQUksR0FJZDtFQUhDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztJQUYxQixBQUFBLHdCQUF3QixBQUFBLHFCQUFxQixDQUFDO01BRzFDLE9BQU8sRUFBRSxLQUFLLEdBRWpCOztBQUdDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFQUQxQixBQUFBLGdCQUFnQixDQUFDO0lBRWIsY0FBYyxFQUFFLE1BQU0sR0FFekI7O0FBR0MsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VBRDFCLEFBQUEsaUJBQWlCLENBQUM7SUFFZCxjQUFjLEVBQUUsY0FBYyxHQUVqQzs7QUFDRCxNQUFNLE1BQU0sTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO0VBQ3RDLEFBQUEsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGNBQWMsQUFBQSxRQUFRLEFBQUEsaUJBQWlCLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUMxRSxZQUFZLEVBQUUsQ0FBQyxHQUNoQjs7QUFHSCxNQUFNLE1BQU0sTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO0VBQ3RDLEFBQUEsSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ3BCLFlBQVksRUFBRSxHQUFHLENBQUEsVUFBVSxHQUM1Qjs7QUFHSCxBQUFBLGdCQUFnQixDQUFDO0VuQmpFZixTQUFTLEVtQmtFVyxLQUFLO0VuQmpFekIsU0FBUyxFbUJpRVcsS0FBSztFbkJoRXpCLEtBQUssRW1CZ0VlLEtBQUssR0FtTzFCO0VBcE9ELEFBR0UsZ0JBSGMsQ0FHZCxXQUFXLENBQUM7SUFDVixPQUFPLEVBQUUsSUFBSSxHQWVkO0lBZEMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO01BTDVCLEFBR0UsZ0JBSGMsQ0FHZCxXQUFXLENBQUM7UUFHUixPQUFPLEVBQUUsS0FBSztRQUNkLFdBQVcsRUFBRSxDQUFDO1FBQ2QsVUFBVSxFQUFFLFVBQVU7UUFDdEIsWUFBWSxFQUFFLElBQUksR0FVckI7UUFuQkgsQUFXTSxnQkFYVSxDQUdkLFdBQVcsQ0FRUCxHQUFHLENBQUM7VUFDRixPQUFPLEVBQUUsS0FBSztVQUNkLEtBQUssRUFBRSxLQUFLO1VBQ1osTUFBTSxFQUFFLElBQUk7VUFDWixZQUFZLEVBQUUsU0FBUztVQUN2QixVQUFVLEVBQUUsT0FBTyxHQUNwQjtFQWpCUCxBQXNCRSxnQkF0QmMsQ0FzQmQsYUFBYSxDQUFDO0lBQ1osYUFBYSxFQUFFLEdBQUcsR0FLbkI7SUE1QkgsQUF3QkksZ0JBeEJZLENBc0JkLGFBQWEsR0FFUCxHQUFHLENBQUM7TUFDTixTQUFTLEVBQUUsSUFBSTtNQUNmLFlBQVksRUFBRSxHQUFHLEdBQ2xCO0VBM0JMLEFBOEJFLGdCQTlCYyxDQThCZCxpQkFBaUIsQ0FBQztJQUNoQixhQUFhLEVBQUUsSUFBSTtJQUNuQixLQUFLLEVBQUUsSUFBSTtJQUNYLFNBQVMsRUFBRSxJQUFJLEdBd0JoQjtJQXZCQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7TUFsQzVCLEFBOEJFLGdCQTlCYyxDQThCZCxpQkFBaUIsQ0FBQztRQUtkLGNBQWMsRUFBRSxNQUFNLEdBc0J6QjtJQXpESCxBQXVDTSxnQkF2Q1UsQ0E4QmQsaUJBQWlCLEdBUWIsR0FBRyxBQUNGLFVBQVcsQ0FBQSxHQUFHLENBQUMsT0FBTyxDQUFDO01BQ3RCLEtBQUssRUFBRSxJQUFJO01BQ1gsT0FBTyxFQUFFLEdBQUc7TUFDWixNQUFNLEVBQUUsS0FBSyxHQUtkO01BSkMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO1FBM0NoQyxBQXVDTSxnQkF2Q1UsQ0E4QmQsaUJBQWlCLEdBUWIsR0FBRyxBQUNGLFVBQVcsQ0FBQSxHQUFHLENBQUMsT0FBTyxDQUFDO1VBS3BCLE1BQU0sRUFBRSxDQUFDO1VBQ1QsT0FBTyxFQUFFLEVBQUUsR0FFZDtJQS9DUCxBQWlETSxnQkFqRFUsQ0E4QmQsaUJBQWlCLEdBUWIsR0FBRyxHQVdDLElBQUksQUFBQSxZQUFZLENBQUM7TUFDbkIsWUFBWSxFQUFFLEdBQUcsR0FDbEI7SUFuRFAsQUFzREksZ0JBdERZLENBOEJkLGlCQUFpQixDQXdCZixVQUFVLENBQUM7TUFDVCxNQUFNLEVBQUUsT0FBTyxHQUNoQjtFQXhETCxBQTJERSxnQkEzRGMsQ0EyRGQsWUFBWSxDQUFDO0lBQ1gsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixNQUFNLEVBQUUsV0FBVztJQUNuQixVQUFVLEVBQUUsSUFBSTtJQUNoQixjQUFjLEVBQUUsU0FBUyxHQUMxQjtFQWpFSCxBQW1FRSxnQkFuRWMsQ0FtRWQsZ0JBQWdCLENBQUM7SW5CcElqQixTQUFTLEVtQnFJYSxLQUFLO0luQnBJM0IsU0FBUyxFbUJvSWEsS0FBSztJbkJuSTNCLEtBQUssRW1CbUlpQixLQUFLO0lBQ3pCLGdCQUFnQixFcEJsUVosT0FBTztJb0JtUVgsTUFBTSxFQUFFLGlCQUFpQjtJQUN6QixhQUFhLEVBQUUsR0FBRztJQUNsQixXQUFXLEVBQUUsSUFBSSxHQTJEbEI7SUFuSUgsQUEwRUksZ0JBMUVZLENBbUVkLGdCQUFnQixDQU9kLGNBQWMsQ0FBQztNbkJwTWpCLE9BQU8sRUFBRSxZQUFZO01BQ3JCLE9BQU8sRUFBRSxXQUFXO01BQ3BCLE9BQU8sRUFBRSxJQUFJO01BWGIsc0JBQXNCLEVBK0JFLE1BQU07TUE5QnRCLGNBQWMsRUE4QkUsTUFBTTtNQXBEOUIsWUFBWSxFbUJvT00sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO01uQm5PdEIsUUFBUSxFbUJtT00sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO01uQmxPbEIsSUFBSSxFbUJrT00sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO01uQm5KMUIsVUFBVSxFbUJvSmUsSUFBSTtNbkJuSjdCLFVBQVUsRW1CbUplLElBQUk7TW5CbEo3QixNQUFNLEVtQmtKbUIsSUFBSTtNbkI5STdCLFNBQVMsRW1CK0llLEtBQUs7TW5COUk3QixTQUFTLEVtQjhJZSxLQUFLO01uQjdJN0IsS0FBSyxFbUI2SW1CLEtBQUssR0FvRDFCO01BbElMLEFBZ0ZNLGdCQWhGVSxDQW1FZCxnQkFBZ0IsQ0FPZCxjQUFjLEFBTVgsV0FBVyxDQUFDO1FuQnZKakIsVUFBVSxFbUJ3SmlCLElBQUk7UW5CdkovQixVQUFVLEVtQnVKaUIsSUFBSTtRbkJ0Si9CLE1BQU0sRW1Cc0pxQixJQUFJLEdBQzFCO01BbEZQLEFBb0ZNLGdCQXBGVSxDQW1FZCxnQkFBZ0IsQ0FPZCxjQUFjLENBVVosbUJBQW1CLENBQUM7UW5COU14QixPQUFPLEVBQUUsWUFBWTtRQUNyQixPQUFPLEVBQUUsV0FBVztRQUNwQixPQUFPLEVBQUUsSUFBSTtRQVhiLHNCQUFzQixFQThDRSxHQUFHO1FBN0NuQixjQUFjLEVBNkNFLEdBQUc7UUEvQjNCLHVCQUF1QixFbUIwTWEsYUFBYTtRbkJ6TXpDLGVBQWUsRW1CeU1hLGFBQWE7UUFDM0MsU0FBUyxFQUFFLElBQUksR0FtQmhCO1FBMUdQLEFBeUZRLGdCQXpGUSxDQW1FZCxnQkFBZ0IsQ0FPZCxjQUFjLENBVVosbUJBQW1CLENBS2pCLG1CQUFtQixDQUFDO1VBQ2xCLGNBQWMsRUFBRSxLQUFLO1VBR3JCLFNBQVMsRUFBRSxJQUFJO1VBQ2YsS0FBSyxFQUFFLE9BQU87VUFDZCxXQUFXLEVBQUUsR0FBRyxHQUVqQjtRQWpHVCxBQW1HUSxnQkFuR1EsQ0FtRWQsZ0JBQWdCLENBT2QsY0FBYyxDQVVaLG1CQUFtQixDQWVqQixtQkFBbUIsQ0FBQztVQUVsQixTQUFTLEVBQUUsSUFBSTtVQUNmLFdBQVcsRUFBRSxHQUFHO1VBQ2hCLFdBQVcsRUFBRSxJQUFJO1VBQ2pCLEtBQUssRUFBRSxPQUFPLEdBQ2Y7TUF6R1QsQUE0R00sZ0JBNUdVLENBbUVkLGdCQUFnQixDQU9kLGNBQWMsQ0FrQ1osMkJBQTJCLENBQUM7UW5CbkxoQyxVQUFVLEVtQm9MaUIsSUFBSTtRbkJuTC9CLFVBQVUsRW1CbUxpQixJQUFJO1FuQmxML0IsTUFBTSxFbUJrTHFCLElBQUk7UW5COUsvQixTQUFTLEVtQitLaUIsS0FBSztRbkI5Sy9CLFNBQVMsRW1COEtpQixLQUFLO1FuQjdLL0IsS0FBSyxFbUI2S3FCLEtBQUssR0FDMUI7TUEvR1AsQUFpSE0sZ0JBakhVLENBbUVkLGdCQUFnQixDQU9kLGNBQWMsQ0F1Q1osb0JBQW9CLENBQUM7UUFDbkIsS0FBSyxFcEJuVE4sT0FBTztRb0JvVE4sU0FBUyxFQUFFLElBQUk7UUFDZixXQUFXLEVBQUUsR0FBRztRQUNoQixXQUFXLEVBQUUsSUFBSTtRQUNqQixVQUFVLEVBQUUsS0FBSyxHQVNsQjtRQS9IUCxBQXdIVSxnQkF4SE0sQ0FtRWQsZ0JBQWdCLENBT2QsY0FBYyxDQXVDWixvQkFBb0IsQ0FPaEIsa0JBQWtCLENBQUM7VUFDbkIsS0FBSyxFcEIxVFIsT0FBTztVb0IyVEosU0FBUyxFQUFFLElBQUk7VUFDZixXQUFXLEVBQUUsSUFBSTtVQUNqQixVQUFVLEVBQUUsS0FBSyxHQUNsQjtFQTdIVCxBQXFJRSxnQkFySWMsQ0FxSWQsWUFBWSxDQUFDO0lBQ1gsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixNQUFNLEVBQUUsV0FBVztJQUNuQixVQUFVLEVBQUUsSUFBSTtJQUNoQixjQUFjLEVBQUUsU0FBUyxHQUMxQjtFQTNJSCxBQTZJRSxnQkE3SWMsQ0E2SWQsY0FBYyxDQUFDO0luQnZRZixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQThDRSxHQUFHO0lBN0NuQixjQUFjLEVBNkNFLEdBQUc7SUF4RDNCLG1CQUFtQixFQTZETyxNQUFNO0lBNUR4QixXQUFXLEVBNERPLE1BQU07SUFTaEMsVUFBVSxFbUJzTmEsSUFBSTtJbkJyTjNCLFVBQVUsRW1CcU5hLElBQUk7SW5CcE4zQixNQUFNLEVtQm9OaUIsSUFBSTtJbkJoTjNCLFNBQVMsRW1CaU5hLEtBQUs7SW5CaE4zQixTQUFTLEVtQmdOYSxLQUFLO0luQi9NM0IsS0FBSyxFbUIrTWlCLEtBQUs7SUFDekIsZ0JBQWdCLEVwQjlVWixPQUFPO0lvQitVWCxNQUFNLEVBQUUsaUJBQWlCO0lBQ3pCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLE9BQU8sRUFBRSxLQUFLO0lBQ2QsTUFBTSxFQUFFLE9BQU8sR0EwQmhCO0lBaExILEFBd0pJLGdCQXhKWSxDQTZJZCxjQUFjLEdBV1IsR0FBRyxDQUFDO01BQ04sV0FBVyxFQUFFLElBQUksR0FNbEI7TUEvSkwsQUEySk0sZ0JBM0pVLENBNklkLGNBQWMsR0FXUixHQUFHLEFBR0osWUFBWSxDQUFDO1FBQ1osS0FBSyxFQUFFLElBQUk7UUFDWCxTQUFTLEVBQUUsSUFBSSxHQUNoQjtJQTlKUCxBQWlLSSxnQkFqS1ksQ0E2SWQsY0FBYyxDQW9CWixHQUFHLEFBQUEsc0JBQXNCLENBQUU7TUFDekIsS0FBSyxFQUFFLE9BQU8sR0FJZjtNQXRLTCxBQW1LTSxnQkFuS1UsQ0E2SWQsY0FBYyxDQW9CWixHQUFHLEFBQUEsc0JBQXNCLEFBRXRCLFdBQVcsQ0FBQztRQUNYLEtBQUssRUFBRSxPQUFPLEdBQ2Y7SUFyS1AsQUF3S0ksZ0JBeEtZLENBNklkLGNBQWMsQ0EyQlosUUFBUSxDQUFDO01uQmxTWCxPQUFPLEVBQUUsWUFBWTtNQUNyQixPQUFPLEVBQUUsV0FBVztNQUNwQixPQUFPLEVBQUUsSUFBSTtNQVhiLHNCQUFzQixFQStCRSxNQUFNO01BOUJ0QixjQUFjLEVBOEJFLE1BQU07TW1COFExQixTQUFTLEVBQUUsSUFBSTtNQUNmLFdBQVcsRUFBRSxHQUFHLEdBSWpCO01BL0tMLEFBNEtNLGdCQTVLVSxDQTZJZCxjQUFjLENBMkJaLFFBQVEsQ0FJTixnQkFBZ0IsQ0FBRTtRQUNoQixLQUFLLEVBQUUsT0FBTyxHQUNmO0VBOUtQLEFBa0xFLGdCQWxMYyxDQWtMZCxhQUFhLENBQUM7SW5CNVNkLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBK0JFLE1BQU07SUE5QnRCLGNBQWMsRUE4QkUsTUFBTTtJQWhCOUIsdUJBQXVCLEVtQndTUyxNQUFNO0luQnZTOUIsZUFBZSxFbUJ1U1MsTUFBTTtJbkIzUHRDLFVBQVUsRW1CNFBhLElBQUk7SW5CM1AzQixVQUFVLEVtQjJQYSxJQUFJO0luQjFQM0IsTUFBTSxFbUIwUGlCLElBQUk7SUFFekIsZ0JBQWdCLEVwQnBYWixPQUFPO0lvQnFYWCxNQUFNLEVBQUUsaUJBQWlCO0lBQ3pCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLE9BQU8sRUFBRSxLQUFLLEdBd0NmO0lBbk9ILEFBNkxJLGdCQTdMWSxDQWtMZCxhQUFhLEdBV1QsR0FBRyxDQUFDO01BQ0osV0FBVyxFQUFFLElBQUksR0FDbEI7SUEvTEwsQUFpTUksZ0JBak1ZLENBa0xkLGFBQWEsQ0FlWCxPQUFPLENBQUM7TW5CM1RWLE9BQU8sRUFBRSxZQUFZO01BQ3JCLE9BQU8sRUFBRSxXQUFXO01BQ3BCLE9BQU8sRUFBRSxJQUFJO01BWGIsc0JBQXNCLEVBK0JFLE1BQU07TUE5QnRCLGNBQWMsRUE4QkUsTUFBTTtNbUIwUzFCLGNBQWMsRUFBRSxHQUFHO01BRW5CLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLEdBQUcsR0FDakI7SUExTUwsQUE2TU0sZ0JBN01VLENBa0xkLGFBQWEsQ0EwQlgsY0FBYyxHQUNWLE1BQU0sQ0FBQztNbkJwUmIsVUFBVSxFbUJxUmlCLElBQUk7TW5CcFIvQixVQUFVLEVtQm9SaUIsSUFBSTtNbkJuUi9CLE1BQU0sRW1CbVJxQixJQUFJO01BQ3pCLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLEdBQUcsR0FDakI7SUFqTlAsQUFvTkksZ0JBcE5ZLENBa0xkLGFBQWEsQUFrQ1YsT0FBTyxDQUFDO01BQ1AsZ0JBQWdCLEVBQUUsT0FBTyxHQWExQjtNQWxPTCxBQXVOTSxnQkF2TlUsQ0FrTGQsYUFBYSxBQWtDVixPQUFPLENBR04sT0FBTyxDQUFDO1FBQ04sS0FBSyxFQUFFLE9BQU8sR0FDZjtNQXpOUCxBQTROUSxnQkE1TlEsQ0FrTGQsYUFBYSxBQWtDVixPQUFPLENBT04sY0FBYyxHQUNWLE1BQU0sQ0FBQztRQUNQLGdCQUFnQixFQUFFLE9BQU87UUFDekIsWUFBWSxFQUFFLFdBQVc7UUFDekIsS0FBSyxFQUFFLE9BQU8sR0FDZjs7QUFVVCxBQUFBLGlCQUFpQixDQUFFO0VBQ2pCLFVBQVUsRUFBRSxJQUFJLEdBQ2pCOztBQUNELEFBQUEscUJBQXFCLENBQUU7RUFDckIsYUFBYSxFQUFFLElBQUksR0FDcEI7O0FBR0QsQUFBQSxPQUFPLENBQUM7RUFDTixPQUFPLEVBQUUsSUFBSTtFQUNiLFNBQVMsRUFBRSxJQUFJO0VBQ2YsTUFBTSxFQUFFLE9BQU87RUFDZixLQUFLLEVBQUUsT0FBTztFQUNkLE9BQU8sRUFBRSxDQUFDO0VBQ1YsTUFBTSxFQUFFLENBQUM7RUFDVCxXQUFXLEVBQUUsQ0FBQztFQUNkLGNBQWMsRUFBRSxHQUFHO0VBQ25CLGNBQWMsRUFBRSxJQUFJLEdBQ3JCOztBQUVELEFBQUEsWUFBWSxDQUFDO0VBQ1gsY0FBYyxFQUFFLElBQUksR0FDckI7O0FBRUQsQUFBQSxhQUFhLENBQUM7RUFDWixPQUFPLEVBQUUsSUFBSSxHQUNkOztBQU5ELEFBQUEsWUFBWSxDQVFDO0VBQ1gsUUFBUSxFQUFFLFFBQVE7RUFDbEIsR0FBRyxFQUFFLElBQUk7RUFDVCxJQUFJLEVBQUUsQ0FBQztFQUNQLEtBQUssRUFBRSxDQUFDO0VBQ1IsVUFBVSxFQUFFLE9BQU87RUFDbkIsT0FBTyxFQUFFLElBQUk7RUFDYixjQUFjLEVBQUUsTUFBTTtFQUN0QixPQUFPLEVBQUUsTUFBTTtFQUNmLE9BQU8sRUFBRSxJQUFJLEdBT2Q7RUFoQkQsQUFXRSxZQVhVLENBV1YsVUFBVSxDQUFDO0lBQ1QsT0FBTyxFQUFFLFNBQVM7SUFDbEIsYUFBYSxFQUFFLGNBQWM7SUFDN0IsV0FBVyxFQUFFLENBQUMsR0FDZjs7QUFHSCxBQUFBLGFBQWEsQ0FBQztFQUNaLE1BQU0sRUFBRSxHQUFHO0VBQ1gsVUFBVSxFQUFFLElBQUk7RUFDaEIsTUFBTSxFQUFFLE1BQU0sR0FDZjs7QUFFRCx1QkFBdUI7QUFDdkIsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VBN0J4QixBQUFBLGFBQWEsQ0E4Qkc7SUFDWixPQUFPLEVBQUUsSUFBSSxHQUNkO0VBaERILEFBQUEsT0FBTyxDQWtERztJQUNOLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7RUF4Q0gsQUFBQSxZQUFZLENBMENHO0lBQ1gsT0FBTyxFQUFFLElBQUk7SUFDYixLQUFLLEVBQUUsS0FBSyxHQUNiO0VBMWVILEFBQUEsYUFBYSxDQTRlRztJQUNaLEtBQUssRUFBRSxLQUFLLENBQUEsVUFBVTtJQUN0QixlQUFlLEVBQUUsTUFBTTtJQUN2QixXQUFXLEVBQUUsTUFBTTtJQUNuQixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxJQUFJLEdBQ2pCOztBR3RmSCxBQUFBLFlBQVksQ0FBQztFQUNYLE9BQU8sRUFBRSxJQUFJO0VBQ2IsUUFBUSxFQUFFLFFBQVEsR0EwQ25CO0VBekNDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztJQUgxQixBQUFBLFlBQVksQ0FBQztNQUlULE9BQU8sRUFBRSxLQUFLO01BQ2QsT0FBTyxFQUFFLFNBQVMsR0F1Q3JCO0VBcENFLEFBQUQsb0JBQVMsQ0FBQztJQUNSLFNBQVMsRUFBRSxJQUFJO0lBQ2YsTUFBTSxFQUFFLE9BQU87SUFDZixLQUFLLEVBQUUsT0FBTztJQUNkLFdBQVcsRUFBRSxDQUFDO0lBQ2QsV0FBVyxFQUFFLElBQUksR0FDbEI7RUFFQSxBQUFELHNCQUFXLENBQUM7SUFDVixRQUFRLEVBQUUsUUFBUTtJQUNsQixHQUFHLEVBQUUsSUFBSTtJQUNULElBQUksRUFBRSxDQUFDO0lBQ1AsVUFBVSxFQUFFLE9BQU87SUFDbkIsT0FBTyxFQUFFLElBQUk7SUFDYixTQUFTLEVBQUUsS0FBSyxHQUNqQjtFQUVBLEFBQUQsa0JBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLEtBQUssRUFBRSxPQUFPO0lBQ2QsTUFBTSxFQUFFLE9BQU87SUFDZixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLGNBQWMsRUFBRSxHQUFHO0lBQ25CLGFBQWEsRUFBRSxjQUFjO0lBQzdCLFdBQVcsRUFBRSxNQUFNLEdBU3BCO0lBbEJBLEFBV0Msa0JBWEssQUFXSixPQUFPLENBQUM7TUFDUCxLQUFLLEVBQUUsT0FBTyxHQUNmO0lBYkYsQUFlQyxrQkFmSyxBQWVKLE1BQU0sQ0FBQztNQUNOLEtBQUssRUFBRSxPQUFPLEdBQ2Y7O0FBSUw7OztrRUFHa0U7QUFlbEUsQUFBQSxhQUFhLEFBQUEsSUFBSyxDQUFBLHNCQUFzQixBQUFBLFVBQVUsRUFBRTtFQUNsRCxRQUFRLEVBQUUsS0FBSztFQUNmLEdBQUcsRUFkbUIsSUFBSTtFQWUxQixJQUFJLEVBQUUsQ0FBQztFQUNQLE1BQU0sRUFBRSxDQUFDO0VBQ1QsS0FBSyxFQW5CaUIsS0FBSztFQW9CM0IsU0FBUyxFQXBCYSxLQUFLO0VBcUIzQixTQUFTLEVBckJhLEtBQUs7RUFzQjNCLFVBQVUsRUFBRSxDQUFDO0VBQ2IsVUFBVSxFQUFFLElBQUk7RUFDaEIsTUFBTSxFQUFFLElBQUk7RUFDWixPQUFPLEVBQUUsQ0FBQztFQUNWLGdCQUFnQixFQWpCRyxPQUFPO0VBa0IxQixZQUFZLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3hCL0NYLE9BQU87RXdCZ0RuQixPQUFPLEVBQUUsR0FBRztFQUNaLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLE9BQU8sRUFBRSxLQUFLO0VBQ2QsVUFBVSxFQUFFLDREQUE0RCxHQUN6RTs7QUFHRCxBQUNFLFVBRFEsQUFBQSxJQUFLLENmbkZmLGtCQUFrQixFZW9GaEIsYUFBYSxBQUFBLElBQUssQ0F2QkYsc0JBQXNCLEFBQUEsVUFBVSxFQXVCSTtFQUNsRCxHQUFHLEVBQUUsS0FBa0QsR0FDeEQ7O0FBS0gsQUFBQSxVQUFVLEFBQUEsSUFBSyxHQUFFLGFBQWEsQ0FBQyxzQkFBc0IsQUFBQSxVQUFVLEVBQUU7RUFDL0QsV0FBVyxFQTNDVyxJQUFJLEdBNEQzQjtFQWxCRCxBQUdFLFVBSFEsQUFBQSxJQUFLLEdBQUUsYUFBYSxDQUFDLHNCQUFzQixBQUFBLFVBQVUsSUFHM0QsZUFBZSxDQUFDO0lBQ2hCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsR0FBRyxFQUFFLENBQUM7SUFDTixJQUFJLEVBQUUsQ0FBQztJQUNQLEtBQUssRUFBRSxDQUFDO0lBQ1IsT0FBTyxFQUFFLEdBQUcsR0FDYjtFQVRILEFBYUUsVUFiUSxBQUFBLElBQUssR0FBRSxhQUFhLENBQUMsc0JBQXNCLEFBQUEsVUFBVSxJQWEzRCxlQUFlLEdBQUcsQ0FBQyxDQUFDLGtCQUFrQixDQUFDO0lBQ3ZDLE1BQU0sRUFwRGlCLElBQUk7SUFxRDNCLFVBQVUsRUFyRGEsSUFBSTtJQXNEM0IsVUFBVSxFQXREYSxJQUFJLEdBdUQ1Qjs7QUFJSCxBQUFBLFVBQVUsQUFBQSxJQUFLLENmaEhmLGtCQUFrQixDZWdIZ0IsSUFBSyxHQXJCdEIsYUFBYSxDQUFDLHNCQUFzQixBQUFBLFVBQVUsRUFxQjBCO0VBQ3ZGLFdBQVcsRUFBRSxLQUFrRCxHQVloRTtFQWJELEFBTUUsVUFOUSxBQUFBLElBQUssQ2ZoSGYsa0JBQWtCLENlZ0hnQixJQUFLLEdBckJ0QixhQUFhLENBQUMsc0JBQXNCLEFBQUEsVUFBVSxJQTJCM0QsZUFBZSxHQUFHLENBQUMsQ0FBQztJQUNwQixRQUFRLEVBQUUsS0FBSztJQUNmLEdBQUcsRUF2RWlCLElBQUk7SUF3RXhCLElBQUksRUFBRSxDQUFDO0lBQ1AsS0FBSyxFQUFFLENBQUM7SUFDUixPQUFPLEVBQUUsR0FBRyxHQUNiOztBQUlILEFBQUEsYUFBYSxBQUFBLElBQUssQ0FBQSxzQkFBc0IsQUFBQSxVQUFVLEFBQUEsYUFBYSxFQUFFO0VBQy9ELEtBQUssRUFqRjJCLElBQUk7RUFrRnBDLFNBQVMsRUFsRnVCLElBQUk7RUFtRnBDLFNBQVMsRUFuRnVCLElBQUksR0FvRnJDOztBQXZFaUIsQUFBTCxzQkFBMkIsQUFBQSxVQUFVLENBMEVqQjtFQUMvQixPQUFPLEVBQUUsSUFBSTtFQUNiLGNBQWMsRUFBRSxNQUFNO0VBQ3RCLFdBQVcsRUFBRSxPQUFPO0VBQ3BCLGVBQWUsRUFBRSxVQUFVO0VBQzNCLEtBQUssRUFBRSxJQUFJO0VBQ1gsU0FBUyxFQUFFLENBQUM7RUFDWixTQUFTLEVBQUUsSUFBSTtFQUNmLE1BQU0sRUFBRSxJQUFJO0VBQ1osVUFBVSxFQUFFLENBQUM7RUFDYixVQUFVLEVBQUUsSUFBSTtFQUloQixZQUFZLEVBQUUsQ0FBQztFQUNmLGFBQWEsRUFBRSxDQUFDLEdBcUlqQjtFQXBKRCxBQWlCRSxzQkFqQm9CLEFBQUEsVUFBVSxDQWlCOUIsZUFBZSxDQUFDO0lBQ2QsT0FBTyxFQUFFLElBQUk7SUFDYixTQUFTLEVBQUUsTUFBTTtJQUNqQixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsYUFBYTtJQUM5QixJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxJQUFJO0lBQ1gsVUFBVSxFQUFFLFVBQVU7SUFHdEIsT0FBTyxFQUFFLG1CQUFtQjtJQUM1QixnQkFBZ0IsRXhCL0hOLE9BQU87SXdCZ0lqQixhQUFhLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3hCeklkLE9BQU87SXdCMklqQixRQUFRLEVBQUUsTUFBTTtJQUNoQixHQUFHLEVBQUUsQ0FBQztJQUNOLE9BQU8sRUFBRSxDQUFDLEdBQ1g7RUFsQ0gsQUFvQ0Usc0JBcENvQixBQUFBLFVBQVUsQ0FvQzlCLHNCQUFzQixDQUFDO0lBR3JCLElBQUksRUFBRSxRQUFRO0lBQ2QsU0FBUyxFQUFFLENBQUM7SUFDWixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLGNBQWMsRUFBRSxLQUFLO0lBQ3JCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLEtBQUssRXhCL0pLLE9BQU87SXdCZ0tqQixXQUFXLEVBQUUsTUFBTTtJQUNuQixRQUFRLEVBQUUsTUFBTSxHQUNqQjtFQWpESCxBQW1ERSxzQkFuRG9CLEFBQUEsVUFBVSxDQW1EOUIsdUJBQXVCLENBQUM7SUFDdEIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsSUFBSSxFQUFFLFFBQVE7SUFFZCxTQUFTLEVBQUUsQ0FBQztJQUNaLE1BQU0sRUFBRSxJQUFJO0lBQ1osVUFBVSxFQUFFLENBQUM7SUFDYixVQUFVLEVBQUUsSUFBSTtJQUNoQixPQUFPLEVBQUUsQ0FBQztJQUNWLE1BQU0sRUFBRSxJQUFJO0lBQ1osVUFBVSxFQUFFLFdBQVc7SUFDdkIsS0FBSyxFeEJ6S0ssT0FBTztJd0IwS2pCLFdBQVcsRUFBRSxDQUFDO0lBQ2QsTUFBTSxFQUFFLE9BQU87SUFHZixZQUFZLEVBQUUsSUFBSSxHQU9uQjtJQTVFSCxBQXVFSSxzQkF2RWtCLEFBQUEsVUFBVSxDQW1EOUIsdUJBQXVCLENBb0JyQixHQUFHLENBQUM7TUFDRixPQUFPLEVBQUUsS0FBSztNQUNkLEtBQUssRUFBRSxJQUFJO01BQ1gsTUFBTSxFQUFFLElBQUksR0FDYjtFQTNFTCxBQThFRSxzQkE5RW9CLEFBQUEsVUFBVSxDQThFOUIsYUFBYSxDQUFDO0lBQ1osT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsTUFBTTtJQUN0QixXQUFXLEVBQUUsT0FBTztJQUNwQixJQUFJLEVBQUUsUUFBUTtJQUNkLFVBQVUsRUFBRSxDQUFDO0lBQ2IsVUFBVSxFQUFFLElBQUk7SUFDaEIsT0FBTyxFQUFFLFNBQVMsR0FDbkI7RUF0RkgsQUF3RkUsc0JBeEZvQixBQUFBLFVBQVUsQ0F3RjlCLFVBQVUsQ0FBQztJQUNULE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLElBQUk7SUFDVCxNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxDQUFDO0lBQ2IsVUFBVSxFQUFFLElBQUk7SUFDaEIsTUFBTSxFQUFFLFNBQVM7SUFDakIsT0FBTyxFQUFFLE1BQU07SUFDZixNQUFNLEVBQUUsSUFBSTtJQUNaLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLEtBQUssRXhCN0tRLE9BQU87SXdCOEtwQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLGNBQWMsRUFBRSxLQUFLO0lBQ3JCLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLE1BQU0sRUFBRSxPQUFPO0lBQ2YsVUFBVSxFQUFFLGtDQUFrQyxHQVkvQztJQXZISCxBQTZHSSxzQkE3R2tCLEFBQUEsVUFBVSxDQXdGOUIsVUFBVSxBQXFCUCxJQUFLLENmMU1BLE9BQU8sQ2UwTUMsTUFBTSxDQUFDO01BQ25CLE1BQU0sRUFBRSxJQUFJO01BQ1osZ0JBQWdCLEV4QnRPUixPQUFPLEd3QnVPaEI7SUFoSEwsQUFrSEksc0JBbEhrQixBQUFBLFVBQVUsQ0F3RjlCLFVBQVUsQUEwQlAsT0FBTyxDQUFDO01BQ1AsTUFBTSxFQUFFLElBQUk7TUFDWixnQkFBZ0IsRXhCM09SLE9BQU87TXdCNE9mLEtBQUssRXhCL0xNLE9BQU8sR3dCZ01uQjtFQXRITCxBQTBIRSxzQkExSG9CLEFBQUEsVUFBVSxDQTBIOUIsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUFFLFdBQVcsRUFBRSxDQUFDLEdBQUk7RUExSDlDLEFBNEhFLHNCQTVIb0IsQUFBQSxVQUFVLENBNEg5QixnQkFBZ0IsQ0FBQztJQUNmLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLFdBQVcsRUFBRSxDQUFDLEdBT2Y7SUExSUgsQUFxSUksc0JBcklrQixBQUFBLFVBQVUsQ0E0SDlCLGdCQUFnQixDQVNkLEdBQUcsQ0FBQztNQUNGLE9BQU8sRUFBRSxLQUFLO01BQ2QsS0FBSyxFQUFFLElBQUk7TUFDWCxNQUFNLEVBQUUsSUFBSSxHQUNiO0VBeklMLEFBNElFLHNCQTVJb0IsQUFBQSxVQUFVLENBNEk5QixpQkFBaUIsQ0FBQztJQUNoQixJQUFJLEVBQUUsUUFBUTtJQUNkLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLGFBQWEsRUFBRSxRQUFRLEdBQ3hCO0VBaEpILEFBbUpFLHNCQW5Kb0IsQUFBQSxVQUFVLENBbUo5QixlQUFlLENBQUM7SUFBRSxPQUFPLEVBQUUsSUFBSSxHQUFJOztBQUlyQyxBQUNFLHNCQURvQixBQUFBLFVBQVUsQUFBQSwyQkFBMkIsQ0FDekQsZUFBZSxDQUFDO0VBQ2QsT0FBTyxFQUFFLElBQUk7RUFDYixTQUFTLEVBQUUsTUFBTTtFQUNqQixXQUFXLEVBQUUsTUFBTTtFQUNuQixHQUFHLEVBQUUsSUFBSTtFQUNULElBQUksRUFBRSxRQUFRO0VBQ2QsVUFBVSxFQUFFLFVBQVU7RUFDdEIsS0FBSyxFQUFFLElBQUk7RUFDWCxPQUFPLEVBQUUsU0FBUztFQUNsQixnQkFBZ0IsRUFoUEMsT0FBTyxHQWlQekI7O0FBWEgsQUFhRSxzQkFib0IsQUFBQSxVQUFVLEFBQUEsMkJBQTJCLENBYXpELHVCQUF1QixDQUFDO0VBQ3RCLElBQUksRUFBRSxRQUFRO0VBQ2QsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsSUFBSTtFQUNaLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLFVBQVUsRUFBRSxLQUFLO0VBQ2pCLGdCQUFnQixFeEI3UU4sT0FBTyxHd0I4UWxCOztBQXBCSCxBQXNCRSxzQkF0Qm9CLEFBQUEsVUFBVSxBQUFBLDJCQUEyQixDQXNCekQscUJBQXFCLENBQUM7RUFDcEIsSUFBSSxFQUFFLFFBQVE7RUFDZCxTQUFTLEVBQUUsQ0FBQyxHQUNiOztBQXpCSCxBQTJCRSxzQkEzQm9CLEFBQUEsVUFBVSxBQUFBLDJCQUEyQixDQTJCekQscUJBQXFCLENBQUM7RUFDcEIsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsR0FBRztFQUNoQixXQUFXLEVBQUUsR0FBRztFQUNoQixLQUFLLEVBQUUsT0FBTztFQUNkLFdBQVcsRUFBRSxNQUFNO0VBQ25CLFFBQVEsRUFBRSxNQUFNO0VBQ2hCLGFBQWEsRUFBRSxRQUFRLEdBQ3hCOztBQW5DSCxBQXFDRSxzQkFyQ29CLEFBQUEsVUFBVSxBQUFBLDJCQUEyQixDQXFDekQseUJBQXlCLENBQUM7RUFDeEIsVUFBVSxFQUFFLEdBQUc7RUFDZixTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLEtBQUssRUFBRSxPQUFPO0VBQ2QsV0FBVyxFQUFFLE1BQU07RUFDbkIsUUFBUSxFQUFFLE1BQU07RUFDaEIsYUFBYSxFQUFFLFFBQVEsR0FDeEI7O0FBOUNILEFBZ0RFLHNCQWhEb0IsQUFBQSxVQUFVLEFBQUEsMkJBQTJCLENBZ0R6RCxlQUFlLENBQUM7RUFDZCxPQUFPLEVBQUUsSUFBSTtFQUNiLElBQUksRUFBRSxRQUFRO0VBQ2QsV0FBVyxFQUFFLE1BQU07RUFDbkIsZUFBZSxFQUFFLE1BQU07RUFDdkIsVUFBVSxFQUFFLFVBQVU7RUFDdEIsS0FBSyxFQUFFLElBQUk7RUFDWCxVQUFVLEVBQUUsSUFBSTtFQUNoQixPQUFPLEVBQUUsU0FBUztFQUNsQixVQUFVLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3hCNVRYLE9BQU87RXdCNlRqQixnQkFBZ0IsRUFoU0MsT0FBTyxHQWlTekI7O0FBM0RILEFBNkRFLHNCQTdEb0IsQUFBQSxVQUFVLEFBQUEsMkJBQTJCLENBNkR6RCwwQkFBMEIsQ0FBQztFQUN6QixPQUFPLEVBQUUsV0FBVztFQUNwQixXQUFXLEVBQUUsTUFBTTtFQUNuQixlQUFlLEVBQUUsTUFBTTtFQUN2QixHQUFHLEVBQUUsR0FBRztFQUNSLElBQUksRUFBRSxRQUFRO0VBQ2QsVUFBVSxFQUFFLFVBQVU7RUFDdEIsS0FBSyxFQUFFLElBQUk7RUFFWCxTQUFTLEVBQUUsQ0FBQztFQUNaLE1BQU0sRUFBRSxJQUFJO0VBQ1osVUFBVSxFQUFFLENBQUM7RUFDYixVQUFVLEVBQUUsSUFBSTtFQUNoQixPQUFPLEVBQUUsU0FBUztFQUNsQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3hCOVVQLE9BQU87RXdCK1VqQixhQUFhLEVBQUUsR0FBRztFQUNsQixnQkFBZ0IsRUFBRSxPQUFPO0VBQ3pCLEtBQUssRUFBRSxPQUFPO0VBQ2QsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsR0FBRztFQUVoQixjQUFjLEVBQUUsSUFBSTtFQUNwQixjQUFjLEVBQUUsTUFBTTtFQUN0QixXQUFXLEVBQUUsR0FBRztFQUNoQixNQUFNLEVBQUUsT0FBTztFQUNmLFVBQVUsRUFBRSxrQ0FBa0MsR0FVL0M7RUFoR0gsQUF3Rkksc0JBeEZrQixBQUFBLFVBQVUsQUFBQSwyQkFBMkIsQ0E2RHpELDBCQUEwQixBQTJCdkIsTUFBTSxDQUFDO0lBQ04sZ0JBQWdCLEV4Qm5WUixPQUFPLEd3Qm9WaEI7RUExRkwsQUE0Rkksc0JBNUZrQixBQUFBLFVBQVUsQUFBQSwyQkFBMkIsQ0E2RHpELDBCQUEwQixDQStCeEIsS0FBSyxDQUFDO0lBQ0osU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsQ0FBQyxHQUNmOztBQS9GTCxBQWtHRSxzQkFsR29CLEFBQUEsVUFBVSxBQUFBLDJCQUEyQixDQWtHekQsNEJBQTRCLENBQUM7RUFDM0IsV0FBVyxFQUFFLE1BQU0sR0FDcEI7O0FBSUgsQUFDRSxzQkFEb0IsQUFBQSxVQUFVLEFBQUEsYUFBYSxDQUMzQyxlQUFlLENBQUM7RUFBRSxlQUFlLEVBQUUsTUFBTSxHQUFJOztBQUQvQyxBQUVFLHNCQUZvQixBQUFBLFVBQVUsQUFBQSxhQUFhLENBRTNDLHNCQUFzQixDQUFDO0VBQUUsT0FBTyxFQUFFLElBQUksR0FBSTs7QUFGNUMsQUFHRSxzQkFIb0IsQUFBQSxVQUFVLEFBQUEsYUFBYSxDQUczQyxVQUFVLENBQUM7RUFBRSxlQUFlLEVBQUUsTUFBTSxHQUFJOztBQUgxQyxBQUlFLHNCQUpvQixBQUFBLFVBQVUsQUFBQSxhQUFhLENBSTNDLGlCQUFpQixDQUFDO0VBQUUsT0FBTyxFQUFFLElBQUksR0FBSTs7QUFKdkMsQUFPSSxzQkFQa0IsQUFBQSxVQUFVLEFBQUEsYUFBYSxBQU0xQywyQkFBMkIsQ0FDMUIsZUFBZSxDQUFDO0VBQ2QsZUFBZSxFQUFFLE1BQU07RUFDdkIsT0FBTyxFQUFFLElBQUksR0FDZDs7QUFWTCxBQVlJLHNCQVprQixBQUFBLFVBQVUsQUFBQSxhQUFhLEFBTTFDLDJCQUEyQixDQU0xQixxQkFBcUIsQ0FBQztFQUFFLE9BQU8sRUFBRSxJQUFJLEdBQUk7O0FBWjdDLEFBY0ksc0JBZGtCLEFBQUEsVUFBVSxBQUFBLGFBQWEsQUFNMUMsMkJBQTJCLENBUTFCLGVBQWUsQ0FBQztFQUNkLE9BQU8sRUFBRSxRQUFRLEdBQ2xCOztBQWhCTCxBQWtCSSxzQkFsQmtCLEFBQUEsVUFBVSxBQUFBLGFBQWEsQUFNMUMsMkJBQTJCLENBWTFCLDRCQUE0QixDQUFDO0VBQUUsT0FBTyxFQUFFLElBQUksR0FBSTs7QUFsQnBELEFBb0JJLHNCQXBCa0IsQUFBQSxVQUFVLEFBQUEsYUFBYSxBQU0xQywyQkFBMkIsQ0FjMUIsMEJBQTBCLENBQUM7RUFDekIsT0FBTyxFQUFFLElBQUk7RUFDYixHQUFHLEVBQUUsQ0FBQyxHQUNQOztBQVVMLEFBQ0UsVUFEUSxBQUFBLElBQUssR0E1VUUsYUFBYSxDQUFDLHNCQUFzQixBQUFBLFVBQVUsSUE2VTNELGFBQWEsR0FBRyxDQUFDLENBQUM7RUFDbEIsV0FBVyxFQTFYUyxLQUFLO0VBMlh6QixVQUFVLEVBQUUsc0JBQXNCLEdBQ25DOztBQUdILEFBQ0UsVUFEUSxBQUFBLElBQUssR0FBRSxhQUFhLENBQUMsc0JBQXNCLEFBQUEsVUFBVSxBQUFBLGFBQWEsSUFDeEUsYUFBYSxHQUFHLENBQUMsQ0FBQztFQUNsQixXQUFXLEVBaFltQixJQUFJLEdBaVluQzs7QUFHSCx5REFBeUQ7QUFDekQsQUFBQSxjQUFjLENBQUM7RUFDYixPQUFPLEVBQUUsSUFBSSxHQUNkOztBQUVELHdFQUF3RTtBQUN4RSxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RUFJdEIsQUFBQSxzQkFBc0IsQUFBQSxVQUFVLEFBQUEsZUFBZSxDQUFDLGNBQWMsQ0FBQztJQUM3RCxPQUFPLEVBQUUsS0FBSztJQUNkLFFBQVEsRUFBRSxLQUFLO0lBQ2YsR0FBRyxFQS9Zd0IsSUFBSTtJQWdaL0IsSUFBSSxFQW5aZ0IsS0FBSztJQW9aekIsS0FBSyxFQUFFLENBQUM7SUFDUixNQUFNLEVBQUUsQ0FBQztJQUNULE9BQU8sRUFBRSxFQUFFO0lBQ1gsZ0JBQWdCLEVBQUUsa0JBQWtCLEdBQ3JDO0VBS0QsQUFBQSxVQUFVLEFBQUEsSUFBSyxDQS9ZQyxzQkFBc0IsQUFBQSxVQUFVLEVBK1lDLFlBQVksQ0FBQztJQUM1RCxPQUFPLEVBQUUsSUFBSSxHQUNkO0VBSUQsQUFFRSxVQUZRLEFBQUEsSUFBSyxDZmxkakIsa0JBQWtCLEVlb2RkLHNCQUFzQixBQUFBLFVBQVUsQUFBQSxlQUFlLENBQUMsY0FBYyxDQUFDO0lBQzdELEdBQUcsRUFBRSxLQUF5RCxHQUMvRDtFQVFILEFBQ0UsVUFEUSxBQUFBLElBQUssR0FuWUEsYUFBYSxDQUFDLHNCQUFzQixBQUFBLFVBQVUsRUFvWTNELHdCQUF3QjtFQUQxQixVQUFVLEFBQUEsSUFBSyxHQW5ZQSxhQUFhLENBQUMsc0JBQXNCLEFBQUEsVUFBVSxFQXFZM0QscUJBQXFCLENBQUM7SUFDcEIsWUFBWSxFQS9hYSxJQUFJLEdBZ2I5QjtFQXJhTCxBQUFBLGFBQWEsQUFBQSxJQUFLLENBQUEsc0JBQXNCLEFBQUEsVUFBVSxFQXdhSTtJQUNsRCxHQUFHLEVBcGJ3QixJQUFJO0lBcWIvQixJQUFJLEVBeGJnQixNQUFLO0lBeWJ6QixLQUFLLEVBemJlLEtBQUs7SUEwYnpCLFNBQVMsRUExYlcsS0FBSztJQTJiekIsU0FBUyxFQTNiVyxLQUFLO0lBNGJ6QixjQUFjLEVBQUUsSUFBSTtJQUNwQixVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsbUJBQW1CO0lBQ3pDLFVBQVUsRUFBRSxlQUFlO0lBTTNCLE9BQU8sRUFBRSxHQUFHLEdBQ2I7RUFFRCxBQUFBLGFBQWEsQUFBQSxJQUFLLENBQUEsc0JBQXNCLEFBQUEsVUFBVSxBQUFBLGVBQWUsRUFBRTtJQUNqRSxJQUFJLEVBQUUsQ0FBQyxHQUNSO0VBeFhILEFBQUEsYUFBYSxBQUFBLElBQUssQ0FBQSxzQkFBc0IsQUFBQSxVQUFVLEFBQUEsYUFBYSxFQThYSTtJQUMvRCxLQUFLLEVBaGRlLEtBQUs7SUFpZHpCLFNBQVMsRUFqZFcsS0FBSztJQWtkekIsU0FBUyxFQWxkVyxLQUFLLEdBbWQxQjtFQUtELEFBRUUsVUFGUSxBQUFBLElBQUssR0E1YUEsYUFBYSxDQUFDLHNCQUFzQixBQUFBLFVBQVUsSUE4YXpELGVBQWUsR0FBRyxDQUFDLEFBQUEsSUFBSyxDekI5TjlCLGFBQWE7RXlCNE5YLFVBQVUsQUFBQSxJQUFLLEdBNWFBLGFBQWEsQ0FBQyxzQkFBc0IsQUFBQSxVQUFVLElBK2F6RCxhQUFhLEdBQUcsQ0FBQztFQUZyQixVQUFVLEFBQUEsSUFBSyxHQTFGQSxhQUFhLENBQUMsc0JBQXNCLEFBQUEsVUFBVSxBQUFBLGFBQWEsSUEyRnRFLGVBQWUsR0FBRyxDQUFDLEFBQUEsSUFBSyxDekI5TjlCLGFBQWE7RXlCNk5YLFVBQVUsQUFBQSxJQUFLLEdBMUZBLGFBQWEsQ0FBQyxzQkFBc0IsQUFBQSxVQUFVLEFBQUEsYUFBYSxJQTRGdEUsYUFBYSxHQUFHLENBQUMsQ0FBQztJQUNsQixXQUFXLEVBQUUsQ0FBQyxHQUNmO0VBcllMLEFBaUJFLHNCQWpCb0IsQUFBQSxVQUFVLENBaUI5QixlQUFlLENBeVhHO0lBQUUsT0FBTyxFQUFFLElBQUksR0FBSTtFQTFZdkMsQUFtSkUsc0JBbkpvQixBQUFBLFVBQVUsQ0FtSjlCLGVBQWUsQ0EwUEc7SUFDZCxPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsR0FBRyxFQUFFLENBQUM7SUFDTixJQUFJLEVBQUUsQ0FBQztJQUNQLEtBQUssRUF6ZW9CLElBQUk7SUEwZTdCLE1BQU0sRUExZW1CLElBQUk7SUEyZTdCLE1BQU0sRUFBRSxDQUFDO0lBQ1QsYUFBYSxFQUFFLENBQUM7SUFDaEIsZ0JBQWdCLEVBQUUsV0FBVztJQUM3QixLQUFLLEVBQUUsT0FBTztJQUNkLFNBQVMsRUFBRSxJQUFJO0lBQ2YsT0FBTyxFQUFFLEdBQUc7SUFDWixNQUFNLEVBQUUsT0FBTyxHQUNoQjtFQTlKTCxBQUdFLHNCQUhvQixBQUFBLFVBQVUsQUFBQSxhQUFhLENBRzNDLFVBQVUsQ0ErSks7SUFBRSxlQUFlLEVBQUUsVUFBVSxHQUFJO0VBbEtsRCxBQUlFLHNCQUpvQixBQUFBLFVBQVUsQUFBQSxhQUFhLENBSTNDLGlCQUFpQixDQStKSztJQUFFLE9BQU8sRUFBRSxNQUFNLEdBQUk7RUExQjNDLEFBOEJJLHNCQTlCa0IsQUFBQSxVQUFVLEFBNkI3QiwyQkFBMkIsQUFBQSxhQUFhLENBQ3ZDLHFCQUFxQixDQUFDO0lBQUUsT0FBTyxFQUFFLEtBQUssR0FBSTtFQTlCOUMsQUErQkksc0JBL0JrQixBQUFBLFVBQVUsQUE2QjdCLDJCQUEyQixBQUFBLGFBQWEsQ0FFdkMsNEJBQTRCLENBQUM7SUFBRSxPQUFPLEVBQUUsTUFBTSxHQUFJO0VBL0J0RCxBQWdDSSxzQkFoQ2tCLEFBQUEsVUFBVSxBQTZCN0IsMkJBQTJCLEFBQUEsYUFBYSxDQUd2QywwQkFBMEIsQ0FBQztJQUN6QixPQUFPLEVBQUUsU0FBUztJQUNsQixHQUFHLEVBQUUsR0FBRyxHQUNUOztBQ3JqQlA7O2tFQUVrRTtBQUtsRSxBQUFBLFlBQVksQUFBQSxJQUFLLENBQUEsdUJBQXVCO0FBQ3hDLFlBQVksQUFBQSxJQUFLLENBQUEsV0FBVyxFQUFFO0VBQzVCLGVBQWUsRUFBRSxVQUFVO0VBQzNCLElBQUksRUFBRSxRQUFRLEdBQ2Y7O0FBT0QsQUFBQSxZQUFZLEdBQUcsR0FBRyxBQUFBLElBQUssR0FBRSx1QkFBdUI7QUFDaEQsWUFBWSxHQUFHLEdBQUcsQUFBQSxJQUFLLEdBQUUsV0FBVyxFQUFFO0VBQ3BDLElBQUksRUFBRSxRQUFRO0VBQ2QsU0FBUyxFQUFFLENBQUM7RUFDWixLQUFLLEVBQUUsSUFBSSxHQUNaOztBQUVELEFBQUEsWUFBWSxBQUFBLGlCQUFpQixDQUFDO0VBQzVCLGVBQWUsRUFBRSxVQUFVLEdBQzVCOztBQXBCZ0IsQUFBTCx1QkFBNEIsQ0FzQmhCO0VBQ3RCLEtBQUssRUFBRSxJQUFJO0VBQ1gsU0FBUyxFQUFFLE1BQU07RUFDakIsV0FBVyxFQUFFLENBQUM7RUFDZCxZQUFZLEVBQUUsQ0FBQztFQUNmLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLFVBQVUsRUFBRSxVQUFVLEdBcVN2QjtFQW5TRSxBQUFELDhCQUFRLENBQUM7SUFDUCxPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxhQUFhO0lBQzlCLEdBQUcsRUFBRSxJQUFJO0lBQ1QsT0FBTyxFQUFFLG1CQUFtQjtJQUM1QixVQUFVLEVBQUUsT0FBTztJQUNuQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3pCMkNKLE9BQU87SXlCMUNwQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEV6QjBCQSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsc0JBQXNCO0l5QnpCNUMsVUFBVSxFQUFFLFVBQVUsR0FDdkI7RUFFQSxBQUFELGdDQUFVLENBQUM7SUFDVCxPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLEdBQUcsRUFBRSxJQUFJO0lBQ1QsU0FBUyxFQUFFLENBQUM7SUFDWixJQUFJLEVBQUUsUUFBUSxHQUNmO0VBRUEsQUFBRCwrQkFBUyxDQUFDO0lBQ1IsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osYUFBYSxFQUFFLEdBQUc7SUFDbEIsUUFBUSxFQUFFLE1BQU07SUFDaEIsZ0JBQWdCLEVBQUUsT0FBTyxHQVExQjtJQWRBLEFBUUMsK0JBUk8sQ0FRUCxHQUFHLENBQUM7TUFDRixPQUFPLEVBQUUsS0FBSztNQUNkLEtBQUssRUFBRSxJQUFJO01BQ1gsTUFBTSxFQUFFLElBQUk7TUFDWixVQUFVLEVBQUUsS0FBSyxHQUNsQjtFQUdGLEFBQUQsNkJBQU8sQ0FBQztJQUNOLFNBQVMsRUFBRSxDQUFDLEdBQ2I7RUFFQSxBQUFELDhCQUFRLENBQUM7SUFDUCxNQUFNLEVBQUUsT0FBTztJQUNmLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLENBQUM7SUFDZCxjQUFjLEVBQUUsQ0FBQztJQUNqQixLQUFLLEVBQUUsT0FBTyxHQUNmO0VBRUEsQUFBRCxrQ0FBWSxDQUFDO0lBQ1gsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsSUFBSTtJQUNULGFBQWEsRUFBRSxJQUFJLEdBS3BCO0lBVEEsQUFNQyxrQ0FOVSxDQU1WLDhCQUE4QixDQUFDO01BQzdCLGFBQWEsRUFBRSxDQUFDLEdBQ2pCO0VBR0YsQUFBRCwrQkFBUyxDQUFDO0lBQ1IsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLEdBQUc7SUFDUixLQUFLLEVBQUUsT0FBTztJQUNkLFdBQVcsRUFBRSxxQkFBcUI7SUFDbEMsV0FBVyxFQUFFLEdBQUc7SUFDaEIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsQ0FBQztJQUNkLGNBQWMsRUFBRSxPQUFPO0lBQ3ZCLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLE1BQU0sRUFBRSxPQUFPO0lBQ2YsZUFBZSxFQUFFLElBQUksR0FTdEI7SUF2QkEsQUFnQkMsK0JBaEJPLENBZ0JQLENBQUMsQ0FBQztNQUNBLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0lBbEJGLEFBb0JDLCtCQXBCTyxBQW9CTixNQUFNLENBQUM7TUFDTixlQUFlLEVBQUUsU0FBUyxHQUMzQjtFQUdGLEFBQUQsb0NBQWMsQ0FBQztJQUNiLE9BQU8sRUFBRSxLQUFLO0lBQ2QsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osVUFBVSxFQUFFLE9BQU8sR0FDcEI7RUFJQSxBQUFELGtDQUFZLENBQUM7SUFDWCxJQUFJLEVBQUUsUUFBUSxHQUNmO0VBRUEsQUFBRCwrQkFBUyxDQUFDO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixTQUFTLEVBQUUsSUFBSTtJQUNmLEdBQUcsRUFBRSxHQUFHO0lBQ1IsYUFBYSxFQUFFLElBQUksR0FDcEI7RUFFQSxBQUFELDhCQUFRLENBQUM7SUFDUCxPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsT0FBTztJQUNoQixhQUFhLEVBQUUsSUFBSTtJQUNuQixnQkFBZ0IsRXpCaklOLE9BQU87SXlCa0lqQixLQUFLLEV6QjdISyxPQUFPO0l5QjhIakIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsQ0FBQztJQUNqQixVQUFVLEVBQUUsTUFBTSxHQUNuQjtFQUVBLEFBQUQsa0NBQVksQ0FBQztJQUNYLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsU0FBUyxFQUFFLElBQUk7SUFDZixHQUFHLEVBQUUsR0FBRztJQUNSLEtBQUssRUFBRSxPQUFPO0lBQ2QsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGNBQWMsRUFBRSxDQUFDLEdBQ2xCO0VBRUEsQUFBRCx1Q0FBaUIsQ0FBQztJQUNoQixLQUFLLEVBQUUsT0FBTyxHQUNmO0VBRUEsQUFBRCxzQ0FBZ0IsQ0FBQztJQUNmLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLE9BQU8sR0FDZjtFQUVBLEFBQUQsOEJBQVEsQ0FBQztJQUNQLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLFVBQVU7SUFDdkIsR0FBRyxFQUFFLElBQUk7SUFDVCxJQUFJLEVBQUUsUUFBUSxHQUNmO0VBRUEsQUFBRCw2QkFBTyxDQUFDO0lBQ04sT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsTUFBTTtJQUN0QixXQUFXLEVBQUUsTUFBTTtJQUNuQixVQUFVLEVBQUUsTUFBTTtJQUNsQixHQUFHLEVBQUUsR0FBRztJQUNSLFNBQVMsRUFBRSxDQUFDLEdBQ2I7RUFFQSxBQUFELGtDQUFZLENBQUM7SUFDWCxPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLEtBQUssRUFBRSxJQUFJO0lBQ1gsU0FBUyxFQUFFLENBQUMsR0FDYjtFQUtBLEFBQUQsa0NBQVksQ0FBQztJQUNYLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSSxHQXlCYjtJQS9CQSxBQVFDLGtDQVJVLENBUVYsR0FBRztJQVJKLGtDQUFXLENBU1YsR0FBRyxDQUFDO01BQ0YsT0FBTyxFQUFFLEtBQUs7TUFDZCxLQUFLLEVBQUUsSUFBSTtNQUNYLE1BQU0sRUFBRSxJQUFJLEdBQ2I7SUFFQSxBQUFELDBDQUFTLENBQUM7TUFDUixLQUFLLEVBMU5NLE9BQU8sR0EyTm5CO0lBRUEsQUFDQyw0Q0FEUyxDQUNULEdBQUcsQ0FBQztNQUNGLEtBQUssRUFBRSxJQUFJO01BQ1gsTUFBTSxFQUFFLElBQUksR0FDYjtJQUdGLEFBQUQsd0NBQU8sQ0FBQztNQUNOLFVBQVUsRUFBRSxPQUFPO01BQ25CLGFBQWEsRUFBRSxHQUFHO01BQ2xCLFNBQVMsRUFBRSw2Q0FBNkMsR0FDekQ7RUFHRixBQUFELG1DQUFhLENBQUM7SUFDWixJQUFJLEVBQUUsSUFBSTtJQUNWLE1BQU0sRUFBRSxPQUFPO0lBQ2YsWUFBWSxFQUFFLEdBQUcsR0FDbEI7RUFFQSxBQUFELHNDQUFnQixDQUFDO0lBQ2YsSUFBSSxFQUFFLElBQUk7SUFDVixNQUFNLEVBbFBTLE9BQU87SUFtUHRCLFlBQVksRUFBRSxHQUFHO0lBQ2pCLGNBQWMsRUFBRSxLQUFLO0lBQ3JCLFNBQVMsRUFBRSxjQUFjO0lBQ3pCLGdCQUFnQixFQUFFLE9BQU87SUFDekIsVUFBVSxFQUFFLDJCQUEyQixHQUN4QztFQUVBLEFBQUQsbUNBQWEsQ0FBQztJQUNaLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFekIvTkssT0FBTyxHeUJxT2xCO0lBVkEsQUFNQyxtQ0FOVyxDQU1YLElBQUksQ0FBQztNQUNILFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLEdBQUcsR0FDakI7RUFHRixBQUFELG1DQUFhLENBQUM7SUFDWixVQUFVLEVBQUUsR0FBRztJQUNmLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFekI1T0ssT0FBTyxHeUI2T2xCO0VBRUEsQUFBRCxzQ0FBZ0IsQ0FBQztJQUNmLFVBQVUsRUFBRSxHQUFHO0lBQ2YsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsR0FBRztJQUNoQixLQUFLLEV6QnRQSyxPQUFPLEd5QnVQbEI7RUFFQSxBQUFELDZCQUFPLENBQUM7SUFDTixPQUFPLEVBQUUsS0FBSztJQUNkLE1BQU0sRUFBRSxNQUFNO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixVQUFVLEVBQUUsT0FBTztJQUNuQixhQUFhLEVBQUUsR0FBRztJQUNsQixTQUFTLEVBQUUsNkNBQTZDLEdBb0J6RDtJQWxCRSxBQUFELG9DQUFRLENBQUM7TUFDUCxLQUFLLEVBQUUsS0FBSztNQUNaLE1BQU0sRUFBRSxHQUFHLEdBQ1o7SUFFQSxBQUFELG9DQUFRLENBQUM7TUFDUCxLQUFLLEVBQUUsS0FBSztNQUNaLE1BQU0sRUFBRSxHQUFHLEdBQ1o7SUFFQSxBQUFELHlDQUFhLENBQUM7TUFDWixLQUFLLEVBQUUsSUFBSSxHQUNaO0lBRUEsQUFBRCx1Q0FBVyxDQUFDO01BQ1YsS0FBSyxFQUFFLEdBQUc7TUFDVixNQUFNLEVBQUUsR0FBRyxHQUNaO0VBR0YsQUFBRCx5Q0FBbUIsQ0FBQztJQUNsQixVQUFVLEVBQUUsT0FBTztJQUNuQixTQUFTLEVBQUUsNkNBQTZDLEdBQ3pEO0VBRUEsQUFBRCx1Q0FBaUIsQ0FBQztJQUNoQixLQUFLLEVBQUUsS0FBSztJQUNaLFNBQVMsRUFBRSxJQUFJO0lBQ2YsTUFBTSxFQUFFLElBQUk7SUFDWixhQUFhLEVBQUUsSUFBSSxHQUNwQjtFQUVBLEFBQUQsdUNBQWlCLENBQUM7SUFDaEIsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLGFBQWEsRUFBRSxJQUFJLEdBQ3BCOztBdkI5R0MsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0V1QnBMekIsQUFBRCw4QkFBUSxDQXVTRztJQUNQLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLFdBQVcsRUFBRSxVQUFVO0lBQ3ZCLEdBQUcsRUFBRSxJQUFJO0lBQ1QsT0FBTyxFQUFFLG1CQUFtQixHQUM3QjtFQTlKRixBQUFELDhCQUFRLENBZ0tHO0lBQ1AsT0FBTyxFQUFFLElBQUk7SUFDYixxQkFBcUIsRUFBRSx5QkFBeUI7SUFDaEQsYUFBYSxFQUFFLE1BQU07SUFDckIsS0FBSyxFQUFFLElBQUk7SUFDWCxHQUFHLEVBQUUsSUFBSSxHQUNWO0VBL0pGLEFBQUQsNkJBQU8sQ0FpS0c7SUFDTixLQUFLLEVBQUUsSUFBSSxHQUNaOztBdkJqSUQsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0V1QnJOWCxBQUFMLHVCQUE0QixDQTJWZDtJQUN0QixPQUFPLEVBQUUsV0FBVyxHQThCckI7SUE1VkEsQUFBRCw4QkFBUSxDQWdVRztNQUNQLE9BQU8sRUFBRSxtQkFBbUIsR0FDN0I7SUF6UkYsQUFBRCw4QkFBUSxDQTJSRztNQUNQLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0lBalRGLEFBQUQsK0JBQVMsQ0FtVEc7TUFDUixLQUFLLEVBQUUsSUFBSTtNQUNYLE1BQU0sRUFBRSxJQUFJLEdBQ2I7SUE3TEYsQUFBRCw4QkFBUSxDQWdNRztNQUNQLE9BQU8sRUFBRSxJQUFJO01BQ2IscUJBQXFCLEVBQUUseUJBQXlCO01BQ2hELGFBQWEsRUFBRSxNQUFNO01BQ3JCLFdBQVcsRUFBRSxLQUFLO01BQ2xCLEdBQUcsRUFBRSxJQUFJO01BQ1QsS0FBSyxFQUFFLElBQUk7TUFDWCxXQUFXLEVBQUUsSUFBSTtNQUNqQixVQUFVLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3pCcFNWLE9BQU8sR3lCcVNuQjtJQWxNRixBQUFELDZCQUFPLENBb01HO01BQ04sS0FBSyxFQUFFLElBQUksR0FDWjs7QXZCaktELE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFdUJ4TlgsQUFBTCx1QkFBNEIsQ0E4WGQ7SUFDdEIsT0FBTyxFQUFFLFdBQVcsR0E0RXJCO0lBN2FBLEFBQUQsOEJBQVEsQ0FtV0c7TUFDUCxPQUFPLEVBQUUsSUFBSTtNQUNiLEdBQUcsRUFBRSxJQUFJLEdBQ1Y7SUF6VkYsQUFBRCxnQ0FBVSxDQTJWRztNQUNULEdBQUcsRUFBRSxJQUFJLEdBQ1Y7SUFyVkYsQUFBRCwrQkFBUyxDQXVWRztNQUNSLEtBQUssRUFBRSxJQUFJO01BQ1gsTUFBTSxFQUFFLElBQUksR0FDYjtJQXRVRixBQUFELDhCQUFRLENBd1VHO01BQ1AsU0FBUyxFQUFFLElBQUksR0FDaEI7SUF4UUYsQUFBRCw4QkFBUSxDQTBRRztNQUNQLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLElBQUksR0FDbEI7SUExT0YsQUFBRCw4QkFBUSxDQTRPRztNQUNQLEdBQUcsRUFBRSxHQUFHO01BQ1IsV0FBVyxFQUFFLElBQUksR0FDbEI7SUF4T0YsQUFBRCw2QkFBTyxDQTBPRztNQUNOLEdBQUcsRUFBRSxHQUFHO01BQ1IsU0FBUyxFQUFFLENBQUMsR0FDYjtJQUVBLEFBQUQsa0NBQVksRUFDWCwwQ0FBbUIsRUFDbkIsNENBQXFCLENBQUM7TUFDckIsS0FBSyxFQUFFLElBQUk7TUFDWCxNQUFNLEVBQUUsSUFBSSxHQU9iO01BWEEsQUFNQyxrQ0FOVSxDQU1WLEdBQUc7TUFOSixrQ0FBVyxDQU9WLEdBQUcsRUFOSiwwQ0FBbUIsQ0FLbEIsR0FBRztNQUxKLDBDQUFtQixDQU1sQixHQUFHLEVBTEosNENBQXFCLENBSXBCLEdBQUc7TUFKSiw0Q0FBcUIsQ0FLcEIsR0FBRyxDQUFDO1FBQ0YsS0FBSyxFQUFFLElBQUk7UUFDWCxNQUFNLEVBQUUsSUFBSSxHQUNiO0lBbE5GLEFBQ0MsNENBRFMsQ0FDVCxHQUFHLENBb05zQjtNQUN6QixLQUFLLEVBQUUsSUFBSTtNQUNYLE1BQU0sRUFBRSxJQUFJLEdBQ2I7SUExTEYsQUFBRCxtQ0FBYSxDQTRMRztNQUNaLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLElBQUksR0FLbEI7TUFuTUYsQUFNQyxtQ0FOVyxDQU1YLElBQUksQ0EwTEc7UUFDSCxTQUFTLEVBQUUsSUFBSSxHQUNoQjtJQXRMSixBQUFELG1DQUFhLENBeUxHO01BQ1osU0FBUyxFQUFFLElBQUk7TUFDZixXQUFXLEVBQUUsSUFBSSxHQUNsQjtJQXBMRixBQUFELHNDQUFnQixDQXNMRztNQUNmLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLElBQUksR0FDbEI7SUFoSkYsQUFBRCx1Q0FBaUIsQ0FrSkc7TUFDaEIsTUFBTSxFQUFFLElBQUk7TUFDWixLQUFLLEVBQUUsS0FBSyxHQUNiOztBQ2pkTDs7a0VBRWtFO0FBS2xFLEFBQUEsa0JBQWtCLENBQUM7RUFDakIsT0FBTyxFQUFFLFdBQVcsR0FzT3JCO0VBdk9ELEFBSUUsa0JBSmdCLENBSWhCLE1BQU0sQ0FBQztJeEIyTlAsU0FBUyxFQUFFLENBQUM7SUFDWixVQUFVLEVBQUUsQ0FBQztJQUNiLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLGNBQWMsRUFBRSxJQUFJLEd3QjdObkI7RUFOSCxBQVFFLGtCQVJnQixDQVFoQixNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ2QsV0FBVyxFQUFFLENBQUMsR0FDZjtFQUVBLEFBQUQseUJBQVEsQ0FBQztJQUNQLE9BQU8sRUFBRSxJQUFJO0lBQ2IsY0FBYyxFQUFFLE1BQU07SUFDdEIsS0FBSyxFQUFFLElBQUk7SUFDWCxTQUFTLEVBQUUsS0FBSztJQUNoQixNQUFNLEVBQUUsS0FBSztJQUNiLE9BQU8sRUFBRSxDQUFDO0lBQ1YsVUFBVSxFQUFFLE9BQU87SUFDbkIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEMxQkVQLE9BQU87STBCRGpCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLFFBQVEsRUFBRSxNQUFNLEdBT2pCO0lBbEJBLEFBYUMseUJBYk0sQUFhTCxJQUFLLENBQUEseUJBQXlCLEVBQUU7TUFDL0IsTUFBTSxFQUFFLElBQUk7TUFDWixVQUFVLEVBQUUsS0FBSztNQUNqQixXQUFXLEVBQUUsSUFBSSxHQUNsQjtFQUdGLEFBQUQsMEJBQVMsQ0FBQztJQUNSLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLGFBQWE7SUFDOUIsR0FBRyxFQUFFLElBQUk7SUFDVCxJQUFJLEVBQUUsUUFBUTtJQUNkLFVBQVUsRUFBRSxDQUFDO0lBQ2IsT0FBTyxFQUFFLE1BQU07SUFDZixVQUFVLEVBQUUsVUFBVSxHQUN2QjtFQUVBLEFBQUQseUJBQVEsQ0FBQztJQUNQLE1BQU0sRUFBRSxDQUFDO0lBQ1QsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLEtBQUssRTFCdEJLLE9BQU8sRzBCdUJsQjtFQUVBLEFBQUQsd0JBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxRQUFRO0lBQ3pCLElBQUksRUFBRSxRQUFRO0lBQ2QsR0FBRyxFQUFFLElBQUk7SUFDVCxNQUFNLEVBQUUsSUFBSTtJQUNaLE9BQU8sRUFBRSxDQUFDO0lBQ1YsTUFBTSxFQUFFLENBQUM7SUFDVCxVQUFVLEVBQUUsV0FBVztJQUN2QixLQUFLLEV6QnRFRixPQUFPO0l5QnVFVixXQUFXLEVBQUUsOENBQThDO0lBQzNELFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLENBQUM7SUFDZCxjQUFjLEVBQUUsT0FBTztJQUN2QixVQUFVLEVBQUUsS0FBSztJQUNqQixNQUFNLEVBQUUsT0FBTyxHQUtoQjtJQXRCQSxBQW1CQyx3QkFuQkssQUFtQkosTUFBTSxDQUFDO01BQ04sT0FBTyxFQUFFLElBQUksR0FDZDtFQUdGLEFBQUQsNkJBQVksQ0FBQztJQUNYLElBQUksRUFBRSxRQUFRO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsQ0FBQztJQUNkLEtBQUssRUFBRSxPQUFPLEdBQ2Y7RUExRE8sQUFBTCx5QkFBOEIsQ0E0RHhCO0lBQ1AsT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsTUFBTTtJQUN0QixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixJQUFJLEVBQUUsUUFBUTtJQUNkLFVBQVUsRUFBRSxDQUFDO0lBQ2IsT0FBTyxFQUFFLFlBQVk7SUFDckIsVUFBVSxFQUFFLE1BQU07SUFDbEIsVUFBVSxFQUFFLFVBQVUsR0FDdkI7RUFFQSxBQUFELCtCQUFjLENBQUM7SUFDYixNQUFNLEVBQUUsUUFBUTtJQUNoQixXQUFXLEVBQUUsOENBQThDO0lBQzNELFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFQUFFLE9BQU8sR0FDZjtFQUVBLEFBQUQscUNBQW9CLENBQUM7SUFDbkIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsS0FBSyxFQUFFLEtBQUs7SUFDWixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxxQkFBcUI7SUFDbEMsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixVQUFVLEVBQUUsTUFBTTtJQUNsQixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsQ0FBQztJQUNqQixVQUFVLEVBQUUsTUFBTTtJQUNsQixLQUFLLEVBQUUsT0FBTyxHQUNmO0VBRUEsQUFBRCw2QkFBWSxDQUFDO0lBQ1gsT0FBTyxFQUFFLFdBQVc7SUFDcEIsY0FBYyxFQUFFLEdBQUc7SUFDbkIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsS0FBSyxFQUFFLEtBQUs7SUFDWixTQUFTLEVBQUUsS0FBSztJQUNoQixTQUFTLEVBQUUsS0FBSztJQUNoQixNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE9BQU8sRUFBRSxDQUFDO0lBQ1YsTUFBTSxFQUFFLENBQUM7SUFDVCxhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEV6QjVJUCxPQUFPO0l5QjZJVixLQUFLLEVBQUUsSUFBSTtJQUNYLFdBQVcsRUFBRSw4Q0FBOEM7SUFDM0QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsQ0FBQztJQUNkLGNBQWMsRUFBRSxPQUFPO0lBQ3ZCLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLE1BQU0sRUFBRSxPQUFPLEdBS2hCO0lBM0JBLEFBd0JDLDZCQXhCVSxBQXdCVCxNQUFNLENBQUM7TUFDTixPQUFPLEVBQUUsR0FBRyxHQUNiO0VBR0YsQUFBRCx5QkFBUSxFQUNQLDRCQUFVLENBQUM7SUFDVixPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxHQUFHO0lBQ25CLFdBQVcsRUFBRSxPQUFPO0lBQ3BCLElBQUksRUFBRSxRQUFRO0lBQ2QsTUFBTSxFQUFFLElBQUk7SUFDWixVQUFVLEVBQUUsSUFBSTtJQUNoQixVQUFVLEVBQUUsR0FBRyxDQUFDLEtBQUssQzFCdklYLE9BQU87STBCd0lqQixVQUFVLEVBQUUsVUFBVSxHQUN2QjtFQUVBLEFBQUQsd0JBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxJQUFJO0lBQ2IsY0FBYyxFQUFFLE1BQU07SUFDdEIsZUFBZSxFQUFFLE1BQU07SUFDdkIsR0FBRyxFQUFFLEdBQUc7SUFDUixJQUFJLEVBQUUsS0FBSztJQUNYLFNBQVMsRUFBRSxDQUFDO0lBQ1osTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsU0FBUztJQUNsQixVQUFVLEVBQUUsVUFBVTtJQUN0QixVQUFVLEVBQUUsT0FBTztJQUNuQixZQUFZLEVBQUUsR0FBRyxDQUFDLEtBQUssQzFCdEpiLE9BQU8sRzBCMkpsQjtJQWhCQSxBQWFDLHdCQWJLLEFBYUosV0FBVyxDQUFDO01BQ1gsWUFBWSxFQUFFLENBQUMsR0FDaEI7RUFHRixBQUFELDBCQUFTLENBQUM7SUFDUixXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsVUFBVSxFQUFFLE1BQU07SUFDbEIsV0FBVyxFQUFFLElBQUk7SUFDakIsY0FBYyxFQUFFLENBQUM7SUFDakIsS0FBSyxFQUFFLE9BQU87SUFDZCxXQUFXLEVBQUUsTUFBTTtJQUNuQixRQUFRLEVBQUUsTUFBTTtJQUNoQixhQUFhLEVBQUUsUUFBUSxHQUN4QjtFQUVBLEFBQUQsK0JBQWMsQ0FBQztJQUNiLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLEdBQUc7SUFDUixTQUFTLEVBQUUsQ0FBQyxHQUNiO0VBRUEsQUFBRCx5QkFBUSxDQUFDO0lBQ1AsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLEtBQUssRUFBRSxPQUFPLEdBQ2Y7RUFFQSxBQUFELDBCQUFTLENBQUM7SUFDUixPQUFPLEVBQUUsV0FBVztJQUNwQixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsR0FBRztJQUNSLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLENBQUMsR0FTZjtJQVBFLEFBQUQsOEJBQUssQ0FBQztNQUNKLEtBQUssRUE3TkcsT0FBTyxHQThOaEI7SUFFQSxBQUFELGdDQUFPLENBQUM7TUFDTixLQUFLLEVBaE9LLE9BQU8sR0FpT2xCO0VBR0YsQUFBRCw4QkFBYSxDQUFDO0lBQ1osS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLElBQUksRUFBRSxRQUFRLEdBQ2Y7O0F4QmpCQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RXdCck41QixBQUFBLGtCQUFrQixDQTBPRztJQUNqQixPQUFPLEVBQUUsV0FBVyxHQUNyQjs7QXhCcEJDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFd0J4TjVCLEFBQUEsa0JBQWtCLENBZ1BHO0lBQ2pCLE9BQU8sRUFBRSxXQUFXLEdBMkJyQjtJQWhRQSxBQUFELHlCQUFRLENBdU9HO01BQ1AsT0FBTyxFQUFFLENBQUMsR0FDWDtJQTFNRixBQUFELHlCQUFRLENBNE1HO01BQ1AsU0FBUyxFQUFFLElBQUksR0FDaEI7SUF4RkYsQUFBRCx3QkFBTyxDQTBGRztNQUNOLE9BQU8sRUFBRSxTQUFTLEdBQ25CO0lBN05GLEFBQUQsMEJBQVMsQ0ErTkc7TUFDUixPQUFPLEVBQUUsTUFBTSxHQUNoQjtJQTlFRixBQUFELDBCQUFTLENBZ0ZHO01BQ1IsV0FBVyxFQUFFLE1BQU0sR0FDcEI7SUE3SUYsQUFBRCw2QkFBWSxDQStJRztNQUNYLEtBQUssRUFBRSxJQUFJO01BQ1gsU0FBUyxFQUFFLENBQUM7TUFDWixTQUFTLEVBQUUsSUFBSSxHQUNoQjs7QUNsUkw7O2tFQUVrRTtBRk1qRCxBQUFMLFdBQWdCLENFRGhCO0VBQ1YsS0FBSyxFQUFFLElBQUk7RUFDWCxTQUFTLEVBQUUsTUFBTTtFQUNqQixXQUFXLEVBQUUsQ0FBQztFQUNkLFlBQVksRUFBRSxDQUFDO0VBQ2YsT0FBTyxFQUFFLFdBQVcsR0E0ZnJCO0VBMWZFLEFBQUQsa0JBQVEsQ0FBQztJQUNQLFVBQVUsRUFBRSxPQUFPO0lBQ25CLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDM0JhUCxPQUFPO0kyQlpqQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsc0JBQXNCO0lBQzVDLFFBQVEsRUFBRSxNQUFNLEdBQ2pCO0VBRUEsQUFBRCxtQkFBUyxDQUFDO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsYUFBYTtJQUM5QixLQUFLLEVBQUUsSUFBSTtJQUNYLFNBQVMsRUFBRSxDQUFDO0lBQ1osTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsQ0FBQztJQUNULE9BQU8sRUFBRSxjQUFjO0lBQ3ZCLE1BQU0sRUFBRSxDQUFDO0lBQ1QsVUFBVSxFQUFFLFdBQVc7SUFDdkIsVUFBVSxFQUFFLElBQUk7SUFDaEIsTUFBTSxFQUFFLE9BQU87SUFDZixVQUFVLEVBQUUsSUFBSTtJQUNoQixjQUFjLEVBQUUsSUFBSTtJQUNwQixjQUFjLEVBQUUsQ0FBQztJQUNqQixXQUFXLEVBQUUscUJBQXFCLEdBQ25DO0VBRUEsQUFBRCxrQkFBUSxBQUFBLElBQUssQ0FBQSx1QkFBdUIsQ0FBQyxJQUFLLENBQUEsSUFBSyxDQUFBLHNCQUFzQixHQUFJLG1CQUFRLENBQUM7SUFDaEYsYUFBYSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEMzQndCWCxPQUFPLEcyQnZCckI7RUFFQSxBQUFELGtCQUFRLENBQUM7SUFDUCxNQUFNLEVBQUUsQ0FBQztJQUNULFdBQVcsRUFBRSxxQkFBcUI7SUFDbEMsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixVQUFVLEVBQUUsTUFBTTtJQUNsQixLQUFLLEUzQmZLLE9BQU87STJCZ0JqQixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsQ0FBQztJQUNqQixjQUFjLEVBQUUsSUFBSSxHQUNyQjtFQUVBLEFBQUQsb0JBQVUsQ0FBQztJQUNULEtBQUssRTNCeEJLLE9BQU87STJCeUJqQixTQUFTLEVBQUUsSUFBSTtJQUNmLElBQUksRUFBRSxRQUFRLEdBQ2Y7RUFwQjhDLEFBQUwsc0JBQTJCLENBc0J4RDtJQUNYLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsT0FBTyxFQUFFLGdCQUFnQixHQUMxQjtFQUVBLEFBQUQsa0JBQVEsQUFBQSxJQUFLLENBNUJBLHVCQUF1QixFQTRCRyxzQkFBVyxDQUFDO0lBQ2pELGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDM0JKWCxPQUFPLEcyQktyQjtFQUVBLEFBQUQsa0JBQVEsQ0FBQztJQUNQLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLEdBQUc7SUFDUixLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxDQUFDO0lBQ1QsT0FBTyxFQUFFLFVBQVU7SUFDbkIsVUFBVSxFQUFFLElBQUk7SUFDaEIsU0FBUyxFQUFFLENBQUM7SUFDWixNQUFNLEVBQUUsSUFBSTtJQUNaLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDM0I3QlAsT0FBTztJMkI4QmpCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFsRlEsT0FBTztJQW1GekIsTUFBTSxFQUFFLE9BQU87SUFDZixVQUFVLEVBQUUsSUFBSTtJQUNoQixjQUFjLEVBQUUsSUFBSTtJQUNwQixjQUFjLEVBQUUsQ0FBQztJQUNqQixXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLEtBQUssRTNCdkNLLE9BQU87STJCd0NqQixVQUFVLEVBQUUsSUFBSTtJQUNoQixPQUFPLEVBQUUsQ0FBQyxHQUNYO0VBRUEsQUFBRCx1QkFBYSxDQUFDO0lBQ1osT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osTUFBTSxFQUFFLEtBQUssQ0FBQyxLQUFLLEMzQm5EVCxPQUFPO0kyQm9EakIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsS0FBSyxFM0JyREssT0FBTztJMkJzRGpCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLENBQUMsR0FLZjtJQWhCQSxBQWFDLHVCQWJXLENBYVgsR0FBRyxDQUFDO01BQ0YsV0FBVyxFQUFFLENBQUMsR0FDZjtFQUdGLEFBQUQsdUJBQWEsQ0FBQztJQUNaLElBQUksRUFBRSxRQUFRO0lBQ2QsU0FBUyxFQUFFLENBQUM7SUFDWixNQUFNLEVBQUUsQ0FBQztJQUNULFdBQVcsRUFBRSxxQkFBcUI7SUFDbEMsV0FBVyxFQUFFLEdBQUc7SUFDaEIsU0FBUyxFQUFFLElBQUk7SUFDZixVQUFVLEVBQUUsTUFBTTtJQUNsQixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsQ0FBQztJQUNqQixLQUFLLEUzQnhFSyxPQUFPO0kyQnlFakIsY0FBYyxFQUFFLElBQUksR0FDckI7RUFFQSxBQUFELDBCQUFnQixDQUFDO0lBQ2YsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixLQUFLLEUzQnRHSyxPQUFPO0kyQnVHakIsU0FBUyxFQUFFLElBQUksR0FDaEI7RUFFQSxBQUFELGlCQUFPLENBQUM7SUFDTixPQUFPLEVBQUUsSUFBSTtJQUNiLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFNBQVMsRUFBRSxDQUFDLEdBQ2I7RUFJQSxBQUFELGlCQUFPLENBQUM7SUFDTixJQUFJLEVBQUUsU0FBUztJQUNmLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLFNBQVMsRUFBRSxDQUFDO0lBQ1osT0FBTyxFQUFFLENBQUM7SUFDVixZQUFZLEVBQUUsR0FBRyxDQUFDLEtBQUssQzNCM0hiLE9BQU87STJCNEhqQixPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLEdBQUcsRUFBRSxDQUFDLEdBQ1A7RUFFQSxBQUFELGlCQUFPLENBQUM7SUFDTixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLEdBQUcsRUFBRSxJQUFJO0lBQ1QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsQ0FBQztJQUNULE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE1BQU0sRUFBRSxDQUFDO0lBQ1QsYUFBYSxFQUFFLENBQUM7SUFDaEIsVUFBVSxFQUFFLFdBQVc7SUFDdkIsTUFBTSxFQUFFLE9BQU87SUFDZixVQUFVLEVBQUUsSUFBSTtJQUNoQixjQUFjLEVBQUUsSUFBSTtJQUNwQixjQUFjLEVBQUUsQ0FBQztJQUNqQixXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLEtBQUssRTNCNUlLLE9BQU87STJCNklqQixTQUFTLEVBQUUsQ0FBQztJQUNaLE1BQU0sRUFBRSxJQUFJO0lBQ1osVUFBVSxFQUFFLElBQUksR0EwQmpCO0lBNUNBLEFBb0JDLGlCQXBCSyxBQW9CSixNQUFNLENBQUM7TUFDTixVQUFVLEVBQUUsV0FBVyxHQUN4QjtJQUVBLEFBQUQsMkJBQVcsQ0FBQztNQUNWLFVBQVUsRUFBRSxXQUFXLEdBV3hCO01BWkEsQUFHQywyQkFIUyxDQUdULGtCQUFrQixBQUFBLElBQUssQ0FBQSx3QkFBd0IsRUFBRTtRQUMvQyxVQUFVLEUzQnhLSixPQUFPO1EyQnlLYixLQUFLLEUzQm5LQyxPQUFPLEcyQm9LZDtNQU5GLEFBUUMsMkJBUlMsQ0FRVCxzQkFBc0IsQ0FBQztRQUNyQixLQUFLLEUzQjVKQyxPQUFPO1EyQjZKYixXQUFXLEVBQUUsR0FBRyxHQUNqQjtJQUdGLEFBQ0MsNEJBRFUsQ0FDVixzQkFBc0IsQ0FBQztNQUNyQixlQUFlLEVBQUUsWUFBWTtNQUM3QixLQUFLLEUzQnRLQyxPQUFPLEcyQnVLZDtFQUlKLEFBQUQsa0JBQVEsQ0FBQztJQUNQLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRTNCekxBLE9BQU87STJCMExqQixLQUFLLEUzQnZMSyxPQUFPO0kyQndMakIsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLGNBQWMsRUFBRSxJQUFJLEdBT3JCO0lBekMwQixBQUFMLHdCQUE2QixDQW9DekM7TUFDTixVQUFVLEVBQUUsT0FBTztNQUNuQixLQUFLLEVBQUUsT0FBTztNQUNkLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0VBR0YsQUFBRCxzQkFBWSxDQUFDO0lBQ1gsTUFBTSxFQUFFLENBQUM7SUFDVCxTQUFTLEVBQUUsQ0FBQztJQUNaLGFBQWEsRUFBRSxRQUFRO0lBQ3ZCLFdBQVcsRUFBRSxxQkFBcUI7SUFDbEMsV0FBVyxFQUFFLEdBQUc7SUFDaEIsU0FBUyxFQUFFLElBQUk7SUFDZixVQUFVLEVBQUUsTUFBTTtJQUNsQixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsQ0FBQztJQUNqQixjQUFjLEVBQUUsSUFBSTtJQUNwQixLQUFLLEUzQjlNSyxPQUFPLEcyQitNbEI7RUFFQSxBQUFELG1CQUFTLENBQUM7SUFJUixJQUFJLEVBQUUsU0FBUztJQUNmLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLGFBQWE7SUFDOUIsR0FBRyxFQUFFLElBQUk7SUFDVCxPQUFPLEVBQUUsbUJBQW1CO0lBQzVCLGdCQUFnQixFQUFFLE9BQU87SUFDekIsZ0JBQWdCLEVBQ2Qsd0NBQXdDLEVBQ3hDLDBHQUEwRztJQUM1RyxtQkFBbUIsRUFBRSxvQkFBb0I7SUFDekMsZUFBZSxFQUFFLFlBQVk7SUFDN0IsaUJBQWlCLEVBQUUsb0JBQW9CO0lBQ3ZDLHFCQUFxQixFQUFFLGVBQWU7SUFDdEMsU0FBUyxFQUFFLENBQUMsR0FDYjtFQUVBLEFBQUQsaUJBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxJQUFJO0lBQ2IsY0FBYyxFQUFFLE1BQU07SUFDdEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsS0FBSyxFQUFFLElBQUk7SUFDWCxVQUFVLEVBQUUsTUFBTTtJQUNsQixHQUFHLEVBQUUsR0FBRztJQUNSLE9BQU8sRUFBRSxTQUFTLEdBQ25CO0VBRUEsQUFBRCxzQkFBWSxDQUFDO0lBQ1gsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRTNCclFBLE9BQU87STJCc1FqQixLQUFLLEVBQUUsT0FBTztJQUNkLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0VBRUEsQUFBRCx5QkFBZSxDQUFDO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixLQUFLLEUzQmxRSyxPQUFPO0kyQm1RakIsV0FBVyxFQUFFLElBQUksR0FDbEI7RUFFQSxBQUFELHVCQUFhLENBQUM7SUFDWixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLEtBQUssRTNCdFFLLE9BQU87STJCdVFqQixXQUFXLEVBQUUsSUFBSSxHQUNsQjtFQUVBLEFBQUQsbUJBQVMsQ0FBQztJQUNSLE9BQU8sRUFBRSxJQUFJO0lBQ2IsSUFBSSxFQUFFLFNBQVM7SUFDZixjQUFjLEVBQUUsTUFBTTtJQUN0QixXQUFXLEVBQUUsVUFBVTtJQUN2QixHQUFHLEVBQUUsSUFBSTtJQUNULEtBQUssRUFBRSxJQUFJO0lBQ1gsU0FBUyxFQUFFLEtBQUs7SUFDaEIsU0FBUyxFQUFFLENBQUMsR0FDYjtFQUVBLEFBQUQsd0JBQWMsQ0FBQztJQUNiLE9BQU8sRUFBRSxJQUFJO0lBQ2IsY0FBYyxFQUFFLE1BQU07SUFDdEIsV0FBVyxFQUFFLFVBQVU7SUFDdkIsR0FBRyxFQUFFLEdBQUc7SUFDUixLQUFLLEVBQUUsSUFBSSxHQUNaO0VBRUEsQUFBRCxvQkFBVSxDQUFDO0lBQ1QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixLQUFLLEUzQm5TSyxPQUFPO0kyQm9TakIsV0FBVyxFQUFFLElBQUksR0FDbEI7RUFFQSxBQUFELHlCQUFlLENBQUM7SUFDZCxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLEtBQUssRTNCdlNLLE9BQU87STJCd1NqQixXQUFXLEVBQUUsSUFBSTtJQUNqQixNQUFNLEVBQUUsQ0FBQztJQUNULGFBQWEsRUFBRSxRQUFRLEdBQ3hCO0VBRUEsQUFBRCxnQkFBTSxDQUFDO0lBQ0wsT0FBTyxFQUFFLFdBQVc7SUFDcEIsY0FBYyxFQUFFLEdBQUc7SUFDbkIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsR0FBRyxFQUFFLEdBQUc7SUFDUixVQUFVLEVBQUUsVUFBVTtJQUN0QixLQUFLLEVBQUUsSUFBSTtJQUNYLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLFNBQVMsRUFBRSxDQUFDO0lBQ1osTUFBTSxFQUFFLElBQUk7SUFDWixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsQ0FBQztJQUNULE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE1BQU0sRUFBRSxDQUFDO0lBQ1QsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFM0IzVUEsT0FBTztJMkI0VWpCLEtBQUssRUFBRSxPQUFPO0lBQ2QsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxjQUFjLEVBQUUsSUFBSTtJQUNwQixXQUFXLEVBQUUsTUFBTTtJQUNuQixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsT0FBTyxHQVNoQjtJQS9CQSxBQXdCQyxnQkF4QkksQUF3QkgsTUFBTSxDQUFDO01BQ04sT0FBTyxFQUFFLElBQUksR0FDZDtJQTFCRixBQTRCQyxnQkE1QkksQUE0QkgsTUFBTSxDQUFDO01BQ04sT0FBTyxFQUFFLENBQUMsR0FDWDtFQUdGLEFBQUQsc0JBQVksQ0FBQztJQUNYLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxRQUFRO0lBQ3pCLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLE1BQU0sRUFBRSxDQUFDO0lBQ1QsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxXQUFXLEVBQUUsR0FBRztJQUNoQixTQUFTLEVBQUUsSUFBSTtJQUNmLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLFdBQVcsRUFBRSxDQUFDO0lBQ2QsY0FBYyxFQUFFLE9BQU87SUFDdkIsVUFBVSxFQUFFLE1BQU07SUFDbEIsY0FBYyxFQUFFLElBQUk7SUFDcEIsS0FBSyxFQUFFLE9BQU8sR0FDZjtFQUVBLEFBQUQsc0JBQVksQ0FBQztJQUNYLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLENBQUMsR0FDZjtFQUVBLEFBQUQsb0JBQVUsQ0FBQztJQUNULElBQUksRUFBRSxTQUFTO0lBQ2YsS0FBSyxFQUFFLElBQUk7SUFDWCxTQUFTLEVBQUUsS0FBSztJQUNoQixTQUFTLEVBQUUsQ0FBQztJQUNaLFVBQVUsRUFBRSxPQUFPO0lBQ25CLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDM0J6WFAsT0FBTztJMkIwWGpCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLFVBQVUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsR0FDN0M7RUFFQSxBQUFELHdCQUFjLENBQUM7SUFDYixRQUFRLEVBQUUsUUFBUTtJQUNsQixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLE1BQU0sRUFBRSxLQUFLO0lBQ2IsVUFBVSxFQUFFLGlEQUEyRixHQVl4RztJQUpFLEFBQUQsK0JBQVEsQ0FBQztNQUNQLE1BQU0sRUFBRSxJQUFJO01BQ1osVUFBVSxFQUFFLElBQUksR0FDakI7RUFHRixBQUFELDBCQUFnQixDQUFDO0lBQ2YsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJLEdBQ2I7RUFFQSxBQUFELHlCQUFlLENBQUM7SUFDZCxPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixhQUFhLEVBQUUsSUFBSTtJQUNuQixVQUFVLEVBQUUsdUJBQXVCLEdBU3BDO0lBaEJBLEFBU0MseUJBVGEsQ0FTYixHQUFHLENBQUM7TUFDRixPQUFPLEVBQUUsS0FBSztNQUNkLEtBQUssRUFBRSxJQUFJO01BQ1gsTUFBTSxFQUFFLElBQUk7TUFDWixVQUFVLEVBQUUsT0FBTztNQUNuQixNQUFNLEVBQUUsYUFBYSxDQUFDLFNBQVMsR0FDaEM7RUFHRixBQUFELHlCQUFlLENBQUM7SUFDZCxPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLFdBQVcsRUFBRSxVQUFVO0lBQ3ZCLEdBQUcsRUFBRSxHQUFHO0lBQ1IsT0FBTyxFQUFFLGFBQWEsR0FDdkI7RUFFQSxBQUFELHlCQUFlLENBQUM7SUFDZCxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLEtBQUssRUFBRSxPQUFPO0lBQ2QsV0FBVyxFQUFFLElBQUk7SUFDakIsYUFBYSxFQUFFLFFBQVEsR0FDeEI7RUFHQSxBQUFELDZCQUFtQixDQUFDO0lBQ2xCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFM0IzYkssT0FBTztJMkI0YmpCLFdBQVcsRUFBRSxJQUFJLEdBQ2xCO0VBRUEsQUFBRCx5QkFBZSxDQUFDO0lBQ2QsT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsR0FBRztJQUNuQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxNQUFNO0lBQ25CLEdBQUcsRUFBRSxHQUFHLEdBQ1Q7RUFFQSxBQUFELHdCQUFjLENBQUM7SUFDYixPQUFPLEVBQUUsV0FBVztJQUNwQixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsR0FBRztJQUNSLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFVBQVUsRTNCamRBLE9BQU87STJCa2RqQixhQUFhLEVBQUUsR0FBRztJQUNsQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRTNCamRLLE9BQU87STJCa2RqQixVQUFVLEVBQUUsTUFBTSxHQU1uQjtJQWpCQSxBQWFDLHdCQWJZLENBYVosR0FBRyxDQUFDO01BQ0YsU0FBUyxFQUFFLElBQUk7TUFDZixXQUFXLEVBQUUsQ0FBQyxHQUNmO0VBR0YsQUFBRCw2QkFBbUIsQ0FBQztJQUNsQixPQUFPLEVBQUUsS0FBSztJQUNkLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxPQUFPLEdBT2Y7SUFIRSxBQUFELGtDQUFNLENBQUM7TUFDTCxVQUFVLEVBQUUsT0FBTyxHQUNwQjs7QXpCaFRELE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTTtFeUI2QjFCLEFBQUQsbUJBQVMsQ0F5Ukc7SUFDUixHQUFHLEVBQUUsSUFBSTtJQUNULE9BQU8sRUFBRSxJQUFJLEdBQ2Q7O0F6QnRURCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RXlCOUV6QixBQUFELGlCQUFPLENBMFlHO0lBQ04sY0FBYyxFQUFFLE1BQU0sR0FDdkI7RUFwWUYsQUFBRCxpQkFBTyxDQXNZRztJQUNOLElBQUksRUFBRSxJQUFJO0lBQ1YsU0FBUyxFQUFFLElBQUk7SUFDZixZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDM0JoZ0JoQixPQUFPO0kyQmlnQmYsT0FBTyxFQUFFLEtBQUssR0FDZjtFQTVTRixBQUFELG1CQUFTLENBOFNHO0lBQ1IsSUFBSSxFQUFFLElBQUk7SUFDVixjQUFjLEVBQUUsTUFBTTtJQUN0QixXQUFXLEVBQUUsT0FBTztJQUNwQixPQUFPLEVBQUUsU0FBUztJQUNsQixHQUFHLEVBQUUsSUFBSSxHQUNWO0VBelBGLEFBQUQsbUJBQVMsQ0E0UEc7SUFDUixJQUFJLEVBQUUsSUFBSTtJQUNWLEtBQUssRUFBRSxJQUFJO0lBQ1gsU0FBUyxFQUFFLElBQUksR0FDaEI7RUE5SkYsQUFBRCxvQkFBVSxDQWdLRztJQUNULElBQUksRUFBRSxJQUFJO0lBQ1YsS0FBSyxFQUFFLElBQUk7SUFDWCxTQUFTLEVBQUUsS0FBSztJQUNoQixVQUFVLEVBQUUsTUFBTSxHQUNuQjs7QXpCelZELE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFdUJwTlgsQUFBTCxXQUFnQixDRWtqQmQ7SUFDVixPQUFPLEVBQUUsV0FBVyxHQXNCckI7SUEzakJBLEFBQUQsbUJBQVMsQ0F1aUJHO01BQ1IsT0FBTyxFQUFFLFNBQVMsR0FDbkI7SUFLQSxBQUFELG1CQUFTLEVBQ1Isd0JBQWEsQ0FBQztNQUNiLFdBQVcsRUFBRSxNQUFNO01BQ25CLFVBQVUsRUFBRSxNQUFNLEdBQ25CO0lBL2hCNEMsQUFBTCxzQkFBMkIsQ0FpaUJ0RDtNQUNYLE9BQU8sRUFBRSxlQUFlLEdBQ3pCO0lBMWRGLEFBQUQsdUJBQWEsQ0E0ZEc7TUFDWixTQUFTLEVBQUUsSUFBSSxHQUNoQjs7QXpCalhELE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFdUJ2TlgsQUFBTCxXQUFnQixDRTZrQmQ7SUFDVixPQUFPLEVBQUUsV0FBVyxHQTZCckI7SUE3bEJBLEFBQUQsbUJBQVMsQ0Fra0JHO01BQ1IsT0FBTyxFQUFFLFNBQVMsR0FDbkI7SUEvY0YsQUFBRCxpQkFBTyxDQWtkRztNQUNOLFVBQVUsRUFBRSxDQUFDLEdBQ2Q7SUE1V0YsQUFBRCxtQkFBUyxDQThXRztNQUNSLE9BQU8sRUFBRSxJQUFJO01BQ2IsR0FBRyxFQUFFLElBQUksR0FDVjtJQXRURixBQUFELG1CQUFTLENBd1RHO01BQ1IsS0FBSyxFQUFFLElBQUk7TUFDWCxTQUFTLEVBQUUsQ0FBQyxHQUNiO0lBaFRGLEFBQUQsd0JBQWMsQ0FrVEc7TUFDYixXQUFXLEVBQUUsTUFBTSxHQUNwQjtJQTdORixBQUFELG9CQUFVLENBK05HO01BQ1QsS0FBSyxFQUFFLElBQUk7TUFDWCxTQUFTLEVBQUUsSUFBSSxHQUNoQjs7QUNsbkJMOztrRUFFa0U7QUFTbEUsQUFBQSxpQkFBaUIsQ0FBQztFQUNoQixLQUFLLEVBQUUsSUFBSTtFQUNYLFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLENBQUM7RUFDZCxZQUFZLEVBQUUsQ0FBQztFQUNmLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLFVBQVUsRUFBRSxVQUFVLEdBb0V2QjtFQWxFRSxBQUFELHdCQUFRLENBQUM7SUFDUCxPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxPQUFPO0lBQ3BCLEdBQUcsRUFBRSxJQUFJO0lBQ1QsS0FBSyxFQUFFLElBQUk7SUFDWCxTQUFTLEVBQUUsTUFBTTtJQUNqQixXQUFXLEVBQUUsQ0FBQztJQUNkLFlBQVksRUFBRSxDQUFDO0lBQ2YsT0FBTyxFQUFFLE1BQU07SUFDZixVQUFVLEVBQUUsVUFBVSxHQUN2QjtFQUtBLEFBQUQsMkJBQVcsQ0FBQztJQUNWLElBQUksRUFBRSxTQUFTO0lBQ2YsU0FBUyxFQUFFLElBQUk7SUFDZixTQUFTLEVBQUUsQ0FBQyxHQUNiO0VBRUEsQUFBRCwyQkFBVyxDQUFDO0lBQ1YsT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsTUFBTTtJQUN0QixHQUFHLEVBQUUsSUFBSTtJQUNULElBQUksRUFBRSxTQUFTO0lBQ2YsU0FBUyxFQUFFLElBQUk7SUFDZixTQUFTLEVBQUUsQ0FBQyxHQUNiO0VBcENILEFBc0NFLGlCQXRDZSxDQXNDZixpQkFBaUIsQ0FBQztJQUNoQixTQUFTLEVBQUUsSUFBSTtJQUNmLE1BQU0sRUFBRSxDQUFDO0lBQ1QsT0FBTyxFQUFFLENBQUM7SUFDVixLQUFLLEVBQUUsSUFBSSxHQUNaO0VBM0NILEFBK0NFLGlCQS9DZSxDQStDZixZQUFZLENBQUM7SUFDWCxTQUFTLEVBQUUsSUFBSSxHQUNoQjtFQWpESCxBQW1ERSxpQkFuRGUsQ0FtRGYsa0JBQWtCLENBQUM7SUFDakIsT0FBTyxFQUFFLENBQUMsR0FDWDtFQXJESCxBQXVERSxpQkF2RGUsQ0F1RGYseUJBQXlCLENBQUM7SUFDeEIsU0FBUyxFQUFFLElBQUksR0FDaEI7RUF6REgsQUEyREUsaUJBM0RlLENBMkRmLGlCQUFpQixDQUFDO0lBQ2hCLE9BQU8sRUFBRSxDQUFDLEdBQ1g7RUE3REgsQUErREUsaUJBL0RlLENBK0RmLHdCQUF3QixDQUFDO0lBQ3ZCLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0VBakVILEFBbUVFLGlCQW5FZSxDQW1FZixhQUFhLENBQUM7SUFDWixPQUFPLEVBQUUsQ0FBQyxHQUNYO0VBckVILEFBdUVFLGlCQXZFZSxDQXVFZixvQkFBb0IsQ0FBQztJQUNuQixTQUFTLEVBQUUsSUFBSSxHQUNoQjs7QTFCcUlDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFMEJ0TXpCLEFBQUQsd0JBQVEsQ0FzRUc7SUFDUCxjQUFjLEVBQUUsTUFBTSxHQUN2QjtFQUVBLEFBQUQsMkJBQVcsRUFDViwyQkFBVSxDQUFDO0lBQ1YsSUFBSSxFQUFFLElBQUk7SUFDVixLQUFLLEVBQUUsSUFBSSxHQUNaO0VBSUgsQUFBQSxZQUFZLENBQUM7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxDQUFDLEdBQ2Q7O0ExQm9IQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RTBCak41QixBQUFBLGlCQUFpQixDQWlHRztJQUNoQixPQUFPLEVBQUUsY0FBYyxHQVN4QjtJQW5HQSxBQUFELHdCQUFRLENBK0ZHO01BQ1AsWUFBWSxFQUFFLENBQUM7TUFDZixhQUFhLEVBQUUsQ0FBQyxHQUNqQjs7QTFCMEdELE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFMEJwTjVCLEFBQUEsaUJBQWlCLENBK0dHO0lBQ2hCLE9BQU8sRUFBRSxjQUFjLEdBQ3hCOztBQUdILEFBQUEsaUJBQWlCLENBQUM7RUFDaEIsS0FBSyxFQUFFLElBQUk7RUFDWCxTQUFTLEVBQUUsTUFBTTtFQUNqQixNQUFNLEVBQUUsTUFBTTtFQUNkLE9BQU8sRUFBRSxhQUFhO0VBQ3RCLFVBQVUsRUFBRSxVQUFVLEdBQ3ZCOztBQWhDQyxBQUFBLFlBQVksQ0FrQ0Q7RUFDWCxPQUFPLEVBQUUsSUFBSTtFQUNiLGNBQWMsRUFBRSxNQUFNO0VBQ3RCLEdBQUcsRUFBRSxJQUFJO0VBQ1QsS0FBSyxFQUFFLElBQUk7RUFDWCxTQUFTLEVBQUUsS0FBSztFQUNoQixNQUFNLEVBQUUsS0FBSztFQUNiLE9BQU8sRUFBRSxJQUFJO0VBQ2IsVUFBVSxFQUFFLElBQUk7RUFDaEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEM1QnpERixPQUFPO0U0QjBEdEIsYUFBYSxFQUFFLEdBQUc7RUFDbEIsVUFBVSxFQUFFLFVBQVUsR0F3bUJ2QjtFQW5uQkQsQUFlRSxZQWZVLENBZVYsTUFBTSxDQUFDO0kxQmdGUCxTQUFTLEVBQUUsQ0FBQztJQUNaLFVBQVUsRUFBRSxDQUFDO0lBQ2IsVUFBVSxFQUFFLElBQUk7SUFDaEIsY0FBYyxFQUFFLENBQUM7SUFDakIsY0FBYyxFQUFFLElBQUksRzBCbEZuQjtFQWpCSCxBQW1CRSxZQW5CVSxDQW1CVixNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ2QsV0FBVyxFQUFFLENBQUMsR0FDZjtFQUVBLEFBQUQsb0JBQVMsQ0FBQztJQUNSLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLGFBQWE7SUFDOUIsR0FBRyxFQUFFLElBQUk7SUFDVCxJQUFJLEVBQUUsUUFBUSxHQUNmO0VBRUEsQUFBRCxtQkFBUSxDQUFDO0lBQ1AsTUFBTSxFQUFFLENBQUM7SUFDVCxXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsVUFBVSxFQUFFLE1BQU07SUFDbEIsV0FBVyxFQUFFLElBQUk7SUFDakIsY0FBYyxFQUFFLENBQUM7SUFDakIsS0FBSyxFQTNLVyxPQUFPLEdBNEt4QjtFQUVBLEFBQUQsdUJBQVksQ0FBQztJQUNYLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxRQUFRO0lBQ3pCLElBQUksRUFBRSxRQUFRO0lBQ2QsR0FBRyxFQUFFLEdBQUc7SUFDUixNQUFNLEVBQUUsSUFBSTtJQUNaLE9BQU8sRUFBRSxDQUFDO0lBQ1YsTUFBTSxFQUFFLENBQUM7SUFDVCxVQUFVLEVBQUUsV0FBVztJQUN2QixLQUFLLEUzQjFMRixPQUFPO0kyQjJMVixXQUFXLEVBQUUsOENBQThDO0lBQzNELFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLENBQUM7SUFDZCxjQUFjLEVBQUUsT0FBTztJQUN2QixVQUFVLEVBQUUsS0FBSztJQUNqQixNQUFNLEVBQUUsT0FBTyxHQUtoQjtJQXRCQSxBQW1CQyx1QkFuQlUsQUFtQlQsTUFBTSxDQUFDO01BQ04sT0FBTyxFQUFFLElBQUksR0FDZDtFQUdGLEFBQUQsdUJBQVksQ0FBQztJQUNYLE9BQU8sRUFBRSxLQUFLO0lBQ2QsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osVUFBVSxFQUFFLE9BQU8sR0FDcEI7RUFFQSxBQUFELHNCQUFXLENBQUM7SUFDVixPQUFPLEVBQUUsSUFBSTtJQUNiLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLEdBQUcsRUFBRSxPQUFPO0lBQ1osSUFBSSxFQUFFLFFBQVE7SUFDZCxNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFVBQVUsRUFBRSxJQUFJLEdBS2pCO0lBSEUsQUFBRCw2QkFBUSxDQUFDO01BQ1AsZUFBZSxFQUFFLGFBQWEsR0FDL0I7RUFHRixBQUFELGtCQUFPLEVBQ04sbUJBQU8sQ0FBQztJQUNQLElBQUksRUFBRSxRQUFRO0lBQ2QsVUFBVSxFQUFFLENBQUM7SUFDYixRQUFRLEVBQUUsSUFBSSxHQUNmO0VBRUEsQUFBRCx1QkFBWSxDQUFDO0lBQ1gsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsSUFBSSxFQUFFLFFBQVE7SUFDZCxNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE9BQU8sRUFBRSxNQUFNO0lBQ2YsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBdk9RLE9BQU87SUF3T2hDLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUExT1csT0FBTztJQTJPNUIsS0FBSyxFQUFFLElBQUk7SUFDWCxXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsY0FBYyxFQUFFLENBQUM7SUFDakIsVUFBVSxFQUFFLFVBQVU7SUFDdEIsTUFBTSxFQUFFLE9BQU8sR0FLaEI7SUF4QkEsQUFxQkMsdUJBckJVLEFBcUJULE1BQU0sQ0FBQztNQUNOLFVBQVUsRUFBRSxPQUFtQyxHQUNoRDtFQUdGLEFBQUQsaUJBQU0sQ0FBQztJQUNMLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLEdBQUc7SUFDUixJQUFJLEVBQUUsUUFBUTtJQUNkLFNBQVMsRUFBRSxDQUFDO0lBQ1osTUFBTSxFQUFFLElBQUksR0FLYjtJQUhFLEFBQUQsMEJBQVUsQ0FBQztNQUNULElBQUksRUFBRSxRQUFRLEdBQ2Y7RUFHRixBQUFELHFCQUFVLENBQUM7SUFDVCxPQUFPLEVBQUUsV0FBVztJQUNwQixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixVQUFVLEVBQUUsSUFBSTtJQUNoQixVQUFVLEVBQUUsSUFBSTtJQUNoQixPQUFPLEVBQUUsQ0FBQztJQUNWLE1BQU0sRUFBRSxDQUFDO0lBQ1QsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLFdBQVc7SUFDdkIsS0FBSyxFQXhSVyxPQUFPO0lBeVJ2QixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxDQUFDO0lBQ2QsTUFBTSxFQUFFLE9BQU8sR0FTaEI7SUF6QkEsQUFrQkMscUJBbEJRLENBa0JSLEdBQUcsQ0FBQztNQUNGLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0lBcEJGLEFBc0JDLHFCQXRCUSxBQXNCUCxNQUFNLENBQUM7TUFDTixVQUFVLEVBN1JTLE9BQU8sR0E4UjNCO0VBR0YsQUFBRCxtQkFBUSxDQUFDO0lBQ1AsSUFBSSxFQUFFLFFBQVE7SUFDZCxXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsVUFBVSxFQUFFLE1BQU07SUFDbEIsV0FBVyxFQUFFLElBQUk7SUFDakIsY0FBYyxFQUFFLENBQUM7SUFDakIsS0FBSyxFQUFFLElBQUk7SUFDWCxXQUFXLEVBQUUsTUFBTSxHQUNwQjtFQUVBLEFBQUQsNEJBQWlCLENBQUM7SUFDaEIsV0FBVyxFQUFFLEdBQUcsR0FDakI7RUFFQSxBQUFELHdCQUFhLENBQUM7SUFDWixPQUFPLEVBQUUsS0FBSztJQUNkLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxPQUFPLEdBQ3BCO0VBRUEsQUFBRCxvQkFBUyxDQUFDO0lBQ1IsT0FBTyxFQUFFLFdBQVc7SUFDcEIsY0FBYyxFQUFFLEdBQUc7SUFDbkIsV0FBVyxFQUFFLE9BQU87SUFDcEIsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsS0FBSztJQUNaLE1BQU0sRUFBRSxJQUFJO0lBQ1osT0FBTyxFQUFFLEdBQUc7SUFDWixHQUFHLEVBQUUsR0FBRztJQUNSLE1BQU0sRUFBRSxpQkFBaUI7SUFDekIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLE9BQU87SUFDbkIsV0FBVyxFQUFFLElBQUk7SUFDakIsVUFBVSxFQUFFLFVBQVUsR0FDdkI7RUFFQSxBQUFELHdCQUFhLENBQUM7SUFDWixJQUFJLEVBQUUsS0FBSztJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osVUFBVSxFQUFFLENBQUM7SUFDYixVQUFVLEVBQUUsSUFBSTtJQUNoQixPQUFPLEVBQUUsQ0FBQztJQUNWLE1BQU0sRUFBRSxDQUFDO0lBQ1QsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLFdBQVc7SUFDdkIsS0FBSyxFQXRWVyxPQUFPO0lBdVZ2QixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxDQUFDO0lBQ2QsTUFBTSxFQUFFLE9BQU8sR0FPaEI7SUFwQkEsQUFlQyx3QkFmVyxBQWVWLFVBQVUsQ0FBQztNQUNWLFVBQVUsRUFBRSxJQUFJO01BQ2hCLEtBQUssRUEvVlMsT0FBTztNQWdXckIsVUFBVSxFQUFFLElBQUksR0FDakI7RUFHRixBQUFELHVCQUFZLENBQUM7SUFDWCxPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxhQUFhO0lBQzlCLEdBQUcsRUFBRSxJQUFJO0lBQ1QsSUFBSSxFQUFFLFFBQVEsR0FDZjtFQUVBLEFBQUQsd0JBQWEsQ0FBQztJQUNaLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFQS9XVyxPQUFPLEdBZ1h4QjtFQUVBLEFBQUQsdUJBQVksQ0FBQztJQUNYLE9BQU8sRUFBRSxJQUFJO0lBQ2IscUJBQXFCLEVBQUUseUJBQXlCO0lBQ2hELEdBQUcsRUFBRSxHQUFHO0lBQ1IsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGFBQWEsRUFBRSxJQUFJO0lBQ25CLFVBQVUsRUFBRSxVQUFVLEdBQ3ZCO0VBRUEsQUFBRCxzQkFBVyxDQUFDO0lBQ1YsT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsTUFBTTtJQUN0QixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixHQUFHLEVBQUUsR0FBRztJQUNSLEtBQUssRUFBRSxJQUFJO0lBQ1gsU0FBUyxFQUFFLENBQUM7SUFDWixNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLE1BQU0sRUFBRSxxQkFBcUI7SUFDN0IsYUFBYSxFQUFFLElBQUk7SUFDbkIsVUFBVSxFQUFFLFdBQVc7SUFDdkIsVUFBVSxFQUFFLFVBQVU7SUFDdEIsS0FBSyxFQUFFLE9BQU87SUFDZCxNQUFNLEVBQUUsT0FBTyxHQVVoQjtJQTNCQSxBQW1CQyxzQkFuQlMsQUFtQlIsWUFBWSxDQUFDO01BQ1osVUFBVSxFNUJqWUYsT0FBTztNNEJrWWYsWUFBWSxFQTlZVSxPQUFPLEdBK1k5QjtJQXRCRixBQXdCQyxzQkF4QlMsQUF3QlIsTUFBTSxBQUFBLElBQUssQ0FBQSxZQUFZLEVBQUU7TUFDeEIsVUFBVSxFQUFFLG1CQUFtQixHQUNoQztFQUdGLEFBQUQsc0JBQVcsQ0FBQztJQUNWLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFQTVaVyxPQUFPLEdBNlp4QjtFQUVBLEFBQUQsd0JBQWEsQ0FBQztJQUNaLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFQW5hVyxPQUFPO0lBb2F2QixXQUFXLEVBQUUsR0FBRyxHQUNqQjtFQUVBLEFBQUQsc0JBQVcsQ0FBQztJQUNWLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsR0FBRyxFQUFFLEdBQUc7SUFDUixVQUFVLEVBQUUsR0FBRztJQUNmLFVBQVUsRUFBRSxHQUFHLEdBQ2hCO0VBRUEsQUFBRCxpQkFBTSxDQUFDO0lBQ0wsS0FBSyxFQUFFLEdBQUc7SUFDVixNQUFNLEVBQUUsR0FBRztJQUNYLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFqYk8sT0FBTyxHQWtiekI7RUFFQSxBQUFELHlCQUFjLENBQUM7SUFDYixhQUFhLEVBQUUsSUFBSTtJQUNuQixTQUFTLEVBQUUsSUFBSTtJQUNmLEtBQUssRUF6YlcsT0FBTyxHQTBieEI7RUFFQSxBQUFELDhCQUFtQixDQUFDO0lBQ2xCLEtBQUssRUE5YlcsT0FBTztJQStidkIsV0FBVyxFQUFFLEdBQUcsR0FDakI7RUFFQSxBQUFELGlDQUFzQixDQUFDO0lBQ3JCLFdBQVcsRUFBRSxHQUFHLEdBQ2pCO0VBRUEsQUFBRCw4QkFBbUIsQ0FBQztJQUNsQixXQUFXLEVBQUUsR0FBRyxHQUNqQjtFQUVBLEFBQUQsOEJBQW1CLENBQUM7SUFDbEIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFQTNjVyxPQUFPLEdBNGN4QjtFQUVBLEFBQUQsdUJBQVksQ0FBQztJQUNYLE9BQU8sRUFBRSxJQUFJO0lBQ2IsY0FBYyxFQUFFLE1BQU07SUFDdEIsR0FBRyxFQUFFLElBQUksR0FDVjtFQUVBLEFBQUQsc0JBQVcsQ0FBQztJQUNWLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLElBQUk7SUFDVCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osVUFBVSxFQUFFLENBQUM7SUFDYixVQUFVLEVBQUUsSUFBSTtJQUNoQixPQUFPLEVBQUUsU0FBUztJQUNsQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0E1ZEEsT0FBTztJQTZkeEIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLElBQUk7SUFDaEIsS0FBSyxFQUFFLE9BQU87SUFDZCxVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsT0FBTyxHQU1oQjtJQXBCQSxBQWdCQyxzQkFoQlMsQUFnQlIsTUFBTSxDQUFDO01BQ04sWUFBWSxFQUFFLE9BQStCO01BQzdDLFVBQVUsRUFBRSxPQUFPLEdBQ3BCO0VBR0YsQUFBRCw0QkFBaUIsQ0FBQztJQUNoQixJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsS0FBSztJQUNqQixVQUFVLEVBNWVXLE9BQU8sR0E2ZTdCO0VBRUEsQUFBRCwyQkFBZ0IsQ0FBQztJQUNmLE9BQU8sRUFBRSxJQUFJO0lBQ2IsY0FBYyxFQUFFLE1BQU07SUFDdEIsR0FBRyxFQUFFLEdBQUc7SUFDUixTQUFTLEVBQUUsQ0FBQyxHQUNiO0VBRUEsQUFBRCw0QkFBaUIsQ0FBQztJQUNoQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLEtBQUssRUE5ZlcsT0FBTyxHQStmeEI7RUFFQSxBQUFELDJCQUFnQixDQUFDO0lBQ2YsU0FBUyxFQUFFLElBQUk7SUFDZixLQUFLLEVBbGdCVyxPQUFPLEdBbWdCeEI7RUFFQSxBQUFELG1CQUFRLENBQUM7SUFDUCxPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxjQUFjLEdBS3hCO0lBSEUsQUFBRCwwQkFBUSxDQUFDO01BQ1AsT0FBTyxFQUFFLFNBQVMsR0FDbkI7RUFHRixBQUFELDJCQUFnQixDQUFDO0lBQ2YsTUFBTSxFQUFFLFFBQVE7SUFDaEIsU0FBUyxFQUFFLElBQUk7SUFDZixLQUFLLEVBcGhCVyxPQUFPLEdBcWhCeEI7RUFFQSxBQUFELHVCQUFZLENBQUM7SUFDWCxPQUFPLEVBQUUsV0FBVztJQUNwQixjQUFjLEVBQUUsR0FBRztJQUNuQixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixHQUFHLEVBQUUsR0FBRztJQUNSLEtBQUssRUFBRSxJQUFJO0lBQ1gsU0FBUyxFQUFFLENBQUM7SUFDWixNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsTUFBTSxFQUFFLENBQUM7SUFDVCxhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEUzQnhpQlAsT0FBTztJMkJ5aUJWLEtBQUssRUFBRSxJQUFJO0lBQ1gsV0FBVyxFQUFFLDhDQUE4QztJQUMzRCxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxDQUFDO0lBQ2QsY0FBYyxFQUFFLE9BQU87SUFDdkIsVUFBVSxFQUFFLFVBQVU7SUFDdEIsTUFBTSxFQUFFLE9BQU8sR0FLaEI7SUEzQkEsQUF3QkMsdUJBeEJVLEFBd0JULE1BQU0sQ0FBQztNQUNOLFVBQVUsRUFBRSxPQUFpQixHQUM5QjtFQUdGLEFBQUQsNEJBQWlCLENBQUM7SUFDaEIsT0FBTyxFQUFFLEtBQUs7SUFDZCxJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixVQUFVLEVBQUUsT0FBTztJQUVuQixNQUFNLEVBQUUsYUFBYSxDQUFDLFNBQVMsR0FDaEM7RUFFQSxBQUFELHdCQUFhLENBQUM7SUFDWixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxDQUFDO0lBQ2IsVUFBVSxFQUFFLElBQUk7SUFDaEIsT0FBTyxFQUFFLENBQUM7SUFDVixNQUFNLEVBQUUsQ0FBQztJQUNULFVBQVUsRUFBRSxXQUFXO0lBQ3ZCLEtBQUssRTNCemtCRixPQUFPO0kyQjBrQlYsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixNQUFNLEVBQUUsT0FBTyxHQUtoQjtJQWhCQSxBQWFDLHdCQWJXLEFBYVYsTUFBTSxDQUFDO01BQ04sT0FBTyxFQUFFLElBQUksR0FDZDtFQUdGLEFBQUQsd0JBQWEsQ0FBQztJQUNaLE9BQU8sRUFBRSxJQUFJO0lBQ2IsY0FBYyxFQUFFLEdBQUc7SUFDbkIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsR0FBRyxFQUFFLEdBQUc7SUFDUixLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osVUFBVSxFQUFFLElBQUk7SUFDaEIsVUFBVSxFQUFFLElBQUk7SUFDaEIsVUFBVSxFQUFFLElBQUk7SUFDaEIsT0FBTyxFQUFFLG1CQUFtQjtJQUM1QixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQzNCL2xCZCxPQUFPO0kyQmdtQlYsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLElBQUk7SUFDaEIsS0FBSyxFM0JsbUJGLE9BQU87STJCbW1CVixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLE1BQU0sRUFBRSxPQUFPLEdBS2hCO0lBeEJBLEFBcUJDLHdCQXJCVyxBQXFCVixNQUFNLENBQUM7TUFDTixVQUFVLEU1QnZsQkYsT0FBTyxHNEJ3bEJoQjtFQUdGLEFBQUQsMEJBQWUsRUFDZCx3QkFBWSxDQUFDO0lBQ1osT0FBTyxFQUFFLElBQUk7SUFDYixxQkFBcUIsRUFBRSx5QkFBeUIsR0FDakQ7RUFFQSxBQUFELDBCQUFlLENBQUM7SUFDZCxhQUFhLEVBQUUsR0FBRztJQUNsQixPQUFPLEVBQUUsS0FBSztJQUNkLFVBQVUsRUFBRSxPQUFPO0lBQ25CLGFBQWEsRUFBRSxHQUFHLEdBQ25CO0VBRUEsQUFBRCx5QkFBYyxDQUFDO0lBQ2IsVUFBVSxFQUFFLE1BQU07SUFDbEIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixLQUFLLEVBM25CVyxPQUFPLEdBNG5CeEI7RUFFQSxBQUFELHdCQUFhLENBQUM7SUFDWixPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxVQUFVO0lBQzNCLEdBQUcsRUFBRSxHQUFHO0lBQ1IsS0FBSyxFQUFFLElBQUk7SUFDWCxTQUFTLEVBQUUsQ0FBQztJQUNaLE1BQU0sRUFBRSxJQUFJO0lBQ1osVUFBVSxFQUFFLElBQUk7SUFDaEIsVUFBVSxFQUFFLElBQUk7SUFDaEIsT0FBTyxFQUFFLE9BQU87SUFDaEIsTUFBTSxFQUFFLENBQUM7SUFDVCxhQUFhLEVBQUUsQ0FBQztJQUNoQixVQUFVLEVBQUUsV0FBVztJQUN2QixLQUFLLEVBQUUsT0FBTztJQUNkLE1BQU0sRUFBRSxPQUFPLEdBaUJoQjtJQWpDQSxBQWtCQyx3QkFsQlcsQUFrQlYsU0FBUyxDQUFDO01BQ1QsTUFBTSxFQUFFLE9BQU87TUFDZixjQUFjLEVBQUUsSUFBSSxHQUNyQjtJQXJCRixBQXVCQyx3QkF2QlcsQUF1QlYsWUFBWSxDQUFDLDhCQUE4QjtJQXZCN0Msd0JBQVksQUF3QlYsU0FBUyxDQUFDLDhCQUE4QixDQUFDO01BQ3hDLFVBQVUsRUFucEJTLE9BQU87TUFvcEIxQixLQUFLLEVBenBCUyxPQUFPLEdBMHBCdEI7SUEzQkYsQUE2QkMsd0JBN0JXLEFBNkJWLFlBQVksQ0FBQyw4QkFBOEIsQ0FBQztNQUMzQyxVQUFVLEU1QjdvQkYsT0FBTztNNEI4b0JmLEtBQUssRUEzcEJVLE9BQU8sR0E0cEJ2QjtFQUdGLEFBQUQsOEJBQW1CLENBQUM7SUFDbEIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFQTNxQlcsT0FBTyxHQTRxQnhCO0VBRUEsQUFBRCxtQkFBUSxDQUFDO0lBQ1AsUUFBUSxFQUFFLEtBQUs7SUFDZixLQUFLLEVBQUUsQ0FBQztJQUNSLE9BQU8sRUFBRSxJQUFJO0lBQ2IsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixPQUFPLEVBQUUsSUFBSSxHQUNkO0VBRUEsQUFBRCw0QkFBaUIsQ0FBQztJQUNoQixRQUFRLEVBQUUsUUFBUTtJQUNsQixLQUFLLEVBQUUsQ0FBQztJQUNSLFVBQVUsRUFBRSxtQkFBbUIsR0FDaEM7RUFFQSxBQUFELHlCQUFjLENBQUM7SUFDYixRQUFRLEVBQUUsUUFBUTtJQUNsQixPQUFPLEVBQUUsQ0FBQztJQUNWLE9BQU8sRUFBRSxJQUFJO0lBQ2IsY0FBYyxFQUFFLE1BQU07SUFDdEIsS0FBSyxFQUFFLEtBQUs7SUFDWixTQUFTLEVBQUUsSUFBSTtJQUNmLE1BQU0sRUFBRSxJQUFJO0lBQ1osVUFBVSxFQUFFLGtCQUFrQjtJQUM5QixRQUFRLEVBQUUsSUFBSTtJQUNkLE9BQU8sRUFBRSxjQUFjO0lBQ3ZCLE1BQU0sRUFBRSxpQkFBaUI7SUFDekIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLElBQUk7SUFDaEIsVUFBVSxFQUFFLFVBQVU7SUFDdEIsVUFBVSxFQUNSLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFFLElBQUcsQ0FBQyxzQkFBc0IsRUFDckMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUUsSUFBRyxDQUFDLHNCQUFzQixHQUMxQztFQUVBLEFBQUQsMEJBQWUsQ0FBQztJQUNkLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLFVBQVU7SUFDdkIsZUFBZSxFQUFFLGFBQWE7SUFDOUIsR0FBRyxFQUFFLElBQUk7SUFDVCxhQUFhLEVBQUUsSUFBSTtJQUNuQixjQUFjLEVBQUUsSUFBSTtJQUNwQixhQUFhLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0F2dEJQLE9BQU8sR0F3dEJ6QjtFQUVBLEFBQUQseUJBQWMsQ0FBQztJQUNiLE1BQU0sRUFBRSxDQUFDO0lBQ1QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixLQUFLLEVBaHVCVyxPQUFPLEdBaXVCeEI7RUFFQSxBQUFELHlCQUFjLENBQUM7SUFDYixPQUFPLEVBQUUsV0FBVztJQUNwQixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osVUFBVSxFQUFFLElBQUk7SUFDaEIsVUFBVSxFQUFFLElBQUk7SUFDaEIsT0FBTyxFQUFFLENBQUM7SUFDVixNQUFNLEVBQUUsQ0FBQztJQUNULGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxXQUFXO0lBQ3ZCLEtBQUssRUE5dUJXLE9BQU87SUErdUJ2QixNQUFNLEVBQUUsT0FBTyxHQU1oQjtJQW5CQSxBQWVDLHlCQWZZLEFBZVgsTUFBTSxDQUFDO01BQ04sVUFBVSxFQTl1QlMsT0FBTztNQSt1QjFCLEtBQUssRUFwdkJTLE9BQU8sR0FxdkJ0Qjs7QTFCNWhCRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RTBCN0Y1QixBQUFBLGlCQUFpQixDQThuQkc7SUFDaEIsT0FBTyxFQUFFLGFBQWEsR0FDdkI7RUExcEJELEFBQUEsWUFBWSxDQTRwQkM7SUFDWCxPQUFPLEVBQUUsSUFBSSxHQWdDZDtJQWpsQkEsQUFBRCxzQkFBVyxDQXFqQkc7TUFDVixTQUFTLEVBQUUsSUFBSTtNQUNmLE1BQU0sRUFBRSxJQUFJO01BQ1osVUFBVSxFQUFFLENBQUM7TUFDYixVQUFVLEVBQUUsSUFBSSxHQUNqQjtJQTlXRixBQUFELHNCQUFXLENBZ1hHO01BQ1YsU0FBUyxFQUFFLElBQUksR0FDaEI7SUExWkYsQUFBRCx1QkFBWSxDQTRaRztNQUNYLE1BQU0sRUFBRSxJQUFJO01BQ1osVUFBVSxFQUFFLENBQUMsR0FDZDtJQXBaRixBQUFELHNCQUFXLENBc1pHO01BQ1YsTUFBTSxFQUFFLElBQUk7TUFDWixVQUFVLEVBQUUsSUFBSTtNQUNoQixVQUFVLEVBQUUsSUFBSTtNQUNoQixPQUFPLEVBQUUsWUFBWSxHQUN0QjtJQTdTRixBQUFELDRCQUFpQixDQStTRztNQUNoQixVQUFVLEVBQUUsSUFBSTtNQUNoQixLQUFLLEVBQUUsSUFBSTtNQUNYLE1BQU0sRUFBRSxJQUFJLEdBQ2I7O0ExQmxrQkQsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0UwQjFIMUIsQUFBQSxZQUFZLENBa3NCQztJQUNYLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsR0FBRyxFQUFFLElBQUksR0E0RlY7SUF4dUJBLEFBQUQsb0JBQVMsQ0FncEJHO01BQ1IsY0FBYyxFQUFFLE1BQU07TUFDdEIsV0FBVyxFQUFFLFVBQVU7TUFDdkIsR0FBRyxFQUFFLEdBQUc7TUFDUixhQUFhLEVBQUUsS0FBSyxHQUNyQjtJQWxtQkYsQUFBRCxzQkFBVyxDQW9tQkc7TUFDVixXQUFXLEVBQUUsTUFBTTtNQUNuQixHQUFHLEVBQUUsR0FBRyxHQUNUO0lBdmZGLEFBQUQsb0JBQVMsQ0EyZkc7TUFDUixRQUFRLEVBQUUsUUFBUTtNQUNsQixHQUFHLEVBQUUsSUFBSTtNQUNULEtBQUssRUFBRSxJQUFJO01BQ1gsT0FBTyxFQUFFLENBQUM7TUFDVixLQUFLLEVBQUUsSUFBSTtNQUNYLE1BQU0sRUFBRSxJQUFJO01BQ1osV0FBVyxFQUFFLENBQUM7TUFDZCxPQUFPLEVBQUUsR0FBRyxHQUNiO0lBcGZGLEFBQUQsd0JBQWEsQ0F1Zkc7TUFDWixJQUFJLEVBQUUsUUFBUTtNQUNkLE9BQU8sRUFBRSxLQUFLO01BQ2QsU0FBUyxFQUFFLElBQUksR0FDaEI7SUEza0JGLEFBQUQsaUJBQU0sQ0E2a0JHO01BQ0wsU0FBUyxFQUFFLElBQUk7TUFDZixPQUFPLEVBQUUsR0FBRyxHQUNiO0lBeGlCRixBQUFELG1CQUFRLENBMGlCRztNQUNQLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLE1BQU0sR0FDcEI7SUEvZUYsQUFBRCx1QkFBWSxDQWlmRztNQUNYLFNBQVMsRUFBRSxJQUFJO01BQ2YsT0FBTyxFQUFFLEdBQUcsR0FDYjtJQXRlRixBQUFELHVCQUFZLENBd2VHO01BQ1gsR0FBRyxFQUFFLEdBQUc7TUFDUixhQUFhLEVBQUUsSUFBSSxHQUNwQjtJQWhlRixBQUFELHNCQUFXLENBa2VHO01BQ1YsVUFBVSxFQUFFLElBQUk7TUFDaEIsT0FBTyxFQUFFLFNBQVM7TUFDbEIsR0FBRyxFQUFFLEdBQUcsR0FDVDtJQXpjRixBQUFELHNCQUFXLENBMmNHO01BQ1YsU0FBUyxFQUFFLElBQUksR0FDaEI7SUF2Y0YsQUFBRCx3QkFBYSxDQXljRztNQUNaLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0lBNU9GLEFBQUQsd0JBQWEsQ0ErT0c7TUFDWixHQUFHLEVBQUUsR0FBRztNQUNSLFVBQVUsRUFBRSxJQUFJO01BQ2hCLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7SUFoTkYsQUFBRCw4QkFBbUIsQ0FrTkc7TUFDbEIsS0FBSyxFQUFFLElBQUk7TUFDWCxNQUFNLEVBQUUsSUFBSTtNQUNaLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0lBaFFGLEFBQUQseUJBQWMsQ0FrUUc7TUFDYixTQUFTLEVBQUUsSUFBSSxHQUNoQjtJQWpaRixBQUFELDRCQUFpQixDQW1aRztNQUNoQixVQUFVLEVBQUUsSUFBSTtNQUNoQixLQUFLLEVBQUUsSUFBSTtNQUNYLE1BQU0sRUFBRSxJQUFJLEdBQ2I7O0FDcjRCTDtnRkFDZ0Y7QUFDaEYsVUFBVSxDQUFWLG1CQUFVO0VBQ1IsRUFBRTtFQUNGLElBQUk7SUFDRixPQUFPLEVBQUUsQ0FBQztFQUVaLEdBQUc7SUFDRCxPQUFPLEVBQUUsSUFBSTs7QUFJakIsQUFBQSxvQkFBb0IsQ0FBQztFQUNuQixPQUFPLEVBQUUsS0FBSztFQUNkLFVBQVUsRUFBRSxPQUFPO0VBQ25CLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLFNBQVMsRUFBRSw2Q0FBNkMsR0E0Q3pEO0VBMUNFLEFBQUQsMkJBQVEsQ0FBQztJQUNQLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLGFBQWEsRUFBRSxHQUFHLEdBQ25CO0VBRUEsQUFBRCwwQkFBTyxDQUFDO0lBQ04sSUFBSSxFQUFFLFFBQVE7SUFDZCxNQUFNLEVBQUUsSUFBSTtJQUNaLFNBQVMsRUFBRSxLQUFLLEdBQ2pCO0VBRUEsQUFBRCxnQ0FBYSxDQUFDO0lBQ1osTUFBTSxFQUFFLElBQUk7SUFDWixLQUFLLEVBQUUsSUFBSSxHQUNaO0VBRUEsQUFBRCw2QkFBVSxDQUFDO0lBQ1QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsS0FBSztJQUNiLGFBQWEsRUFBRSxHQUFHLEdBQ25CO0VBRUEsQUFBRCwyQkFBUSxDQUFDO0lBQ1AsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osYUFBYSxFQUFFLEdBQUcsR0FDbkI7RUFFQSxBQUFELHlCQUFNLENBQUM7SUFDTCxJQUFJLEVBQUUsS0FBSztJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osYUFBYSxFQUFFLEdBQUcsR0FDbkI7RUFFQSxBQUFELDBCQUFPLENBQUM7SUFDTixNQUFNLEVBQUUsS0FBSztJQUNiLEtBQUssRUFBRSxJQUFJO0lBQ1gsYUFBYSxFQUFFLEdBQUcsR0FDbkI7O0FBR0gsQUFBQSx5QkFBeUI7QUFDekIsK0JBQStCLENBQUM7RUFDOUIsT0FBTyxFQUFFLElBQUk7RUFDYixXQUFXLEVBQUUsTUFBTTtFQUNuQixHQUFHLEVBQUUsSUFBSTtFQUNULE9BQU8sRUFBRSxTQUFTLEdBQ25COztBQUVELEFBQUEsNkJBQTZCLENBQUM7RUFDNUIsSUFBSSxFQUFFLFFBQVE7RUFDZCxTQUFTLEVBQUUsQ0FBQztFQUNaLE9BQU8sRUFBRSxJQUFJLEdBQ2Q7O0FBRUQsQUFBQSwyQkFBMkIsQ0FBQztFQUMxQixPQUFPLEVBQUUsSUFBSTtFQUNiLEdBQUcsRUFBRSxHQUFHLEdBQ1Q7O0FBRUQsQUFBQSwrQkFBK0IsQ0FBQztFQUM5QixPQUFPLEVBQUUsTUFBTSxHQUNoQjs7QUFFRCxBQUFBLGtDQUFrQyxDQUFDLDBCQUEwQixDQUFDO0VBQzVELFNBQVMsRUFBRSxJQUFJO0VBQ2YsTUFBTSxFQUFFLElBQUksR0FDYjs7QUN4RkQ7O2tFQUVrRTtBQVFsRSxBQUFBLGlCQUFpQixDQUFDO0VBQ2hCLEtBQUssRUFBRSxJQUFJO0VBQ1gsU0FBUyxFQUFFLEtBQUs7RUFDaEIsV0FBVyxFQUFFLENBQUM7RUFDZCxZQUFZLEVBQUUsQ0FBQztFQUNmLE9BQU8sRUFBRSxDQUFDO0VBQ1YsVUFBVSxFQUFFLFVBQVUsR0FnWHZCO0VBdFhELEFBU0UsaUJBVGUsQ0FTZixNQUFNLENBQUM7STVCbU5QLFNBQVMsRUFBRSxDQUFDO0lBQ1osVUFBVSxFQUFFLENBQUM7SUFDYixVQUFVLEVBQUUsSUFBSTtJQUNoQixjQUFjLEVBQUUsQ0FBQztJQUNqQixjQUFjLEVBQUUsSUFBSSxHNEJyTm5CO0VBWEgsQUFhRSxpQkFiZSxDQWFmLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDZCxXQUFXLEVBQUUsQ0FBQyxHQUNmO0VBRUEsQUFBRCx3QkFBUSxDQUFDO0lBQ1AsT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsTUFBTTtJQUN0QixLQUFLLEVBQUUsSUFBSTtJQUNYLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLE9BQU8sRUFBRSxDQUFDO0lBQ1YsVUFBVSxFQUFFLE9BQU87SUFDbkIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEM5QkxQLE9BQU87SThCTWpCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLFFBQVEsRUFBRSxPQUFPLEdBOEJsQjtJQTVCRSxBQUFELHdDQUFpQixDQUFDO01BQ2hCLE1BQU0sRUFBRSxLQUFLO01BQ2IsVUFBVSxFQUFFLEtBQUs7TUFDakIsVUFBVSxFQUFFLEtBQUs7TUFFakIsUUFBUSxFQUFFLE9BQU8sR0FzQmxCO01BM0JBLEFBVUMsd0NBVmUsQ0FVZixnQ0FBZ0MsQ0FBQztRQUMvQixJQUFJLEVBQUUsUUFBUTtRQUNkLGVBQWUsRUFBRSxNQUFNO1FBQ3ZCLFVBQVUsRUFBRSxDQUFDO1FBQ2IsR0FBRyxFQUFFLENBQUM7UUFDTixPQUFPLEVBQUUsTUFBTTtRQUNmLFFBQVEsRUFBRSxPQUFPLEdBQ2xCO01BakJGLEFBbUJDLHdDQW5CZSxDQW1CZiwwQkFBMEI7TUFuQjNCLHdDQUFnQixDQW9CZix1QkFBdUIsQ0FBQztRQUN0QixRQUFRLEVBQUUsT0FBTyxHQUNsQjtNQXRCRixBQXdCQyx3Q0F4QmUsQ0F3QmYsNEJBQTRCLENBQUM7UUFDM0IsT0FBTyxFQUFFLEVBQUUsR0FDWjtFQUlKLEFBQUQseUJBQVMsQ0FBQztJQUNSLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLGFBQWE7SUFDOUIsR0FBRyxFQUFFLElBQUk7SUFDVCxPQUFPLEVBQUUsV0FBVztJQUNwQixVQUFVLEVBQUUsVUFBVSxHQUN2QjtFQUVBLEFBQUQsd0JBQVEsQ0FBQztJQUNQLE1BQU0sRUFBRSxDQUFDO0lBQ1QsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLEtBQUssRTlCbERLLE9BQU8sRzhCbURsQjtFQUVBLEFBQUQsdUJBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxRQUFRO0lBQ3pCLElBQUksRUFBRSxRQUFRO0lBQ2QsR0FBRyxFQUFFLElBQUk7SUFDVCxNQUFNLEVBQUUsSUFBSTtJQUNaLE9BQU8sRUFBRSxDQUFDO0lBQ1YsTUFBTSxFQUFFLENBQUM7SUFDVCxVQUFVLEVBQUUsV0FBVztJQUN2QixLQUFLLEU3QmxHRixPQUFPO0k2Qm1HVixXQUFXLEVBQUUsOENBQThDO0lBQzNELFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLENBQUM7SUFDZCxjQUFjLEVBQUUsT0FBTztJQUN2QixVQUFVLEVBQUUsS0FBSztJQUNqQixNQUFNLEVBQUUsT0FBTyxHQUtoQjtJQXRCQSxBQW1CQyx1QkFuQkssQUFtQkosTUFBTSxDQUFDO01BQ04sT0FBTyxFQUFFLElBQUksR0FDZDtFQUdGLEFBQUQsNEJBQVksQ0FBQztJQUNYLElBQUksRUFBRSxRQUFRO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsQ0FBQztJQUNkLEtBQUssRUFBRSxPQUFPLEdBQ2Y7RUFFQSxBQUFELDJCQUFXLENBQUM7SUFDVixPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLEdBQUcsRUFBRSxJQUFJO0lBQ1QsT0FBTyxFQUFFLElBQUk7SUFDYixVQUFVLEVBQUUsVUFBVSxHQUt2QjtJQVZBLEFBT0MsMkJBUFMsQ0FPVCwwQkFBMEIsQ0FBQztNQUN6QixTQUFTLEVBQUUsS0FBSyxHQUNqQjtFQUdGLEFBQUQsd0JBQVEsQ0FBQztJQUNQLE9BQU8sRUFBRSxJQUFJO0lBQ2IsY0FBYyxFQUFFLE1BQU07SUFDdEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsR0FBRyxFQUFFLElBQUk7SUFDVCxPQUFPLEVBQUUsY0FBYztJQUN2QixVQUFVLEVBQUUsTUFBTTtJQUNsQixVQUFVLEVBQUUsVUFBVSxHQUN2QjtFQUVBLEFBQUQsNkJBQWEsQ0FBQztJQUNaLE1BQU0sRUFBRSxDQUFDO0lBQ1QsV0FBVyxFQUFFLDhDQUE4QztJQUMzRCxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLEtBQUssRUFqSlEsT0FBTyxHQWtKckI7RUFFQSxBQUFELDJCQUFXLENBQUM7SUFDVixPQUFPLEVBQUUsV0FBVztJQUNwQixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixLQUFLLEVBQUUsSUFBSTtJQUNYLFNBQVMsRUFBRSxDQUFDO0lBQ1osTUFBTSxFQUFFLElBQUk7SUFDWixVQUFVLEVBQUUsSUFBSTtJQUNoQixVQUFVLEVBQUUsSUFBSTtJQUNoQixPQUFPLEVBQUUsTUFBTTtJQUNmLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDN0JqS2QsT0FBTztJNkJrS1YsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLFdBQVc7SUFDdkIsS0FBSyxFN0JwS0YsT0FBTztJNkJxS1YsV0FBVyxFQUFFLDhDQUE4QztJQUMzRCxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxDQUFDO0lBQ2QsY0FBYyxFQUFFLE9BQU87SUFDdkIsVUFBVSxFQUFFLFVBQVU7SUFDdEIsTUFBTSxFQUFFLE9BQU87SUFDZixXQUFXLEVBQUUsTUFBTSxHQUtwQjtJQTFCQSxBQXVCQywyQkF2QlMsQUF1QlIsTUFBTSxDQUFDO01BQ04sT0FBTyxFQUFFLEdBQUcsR0FDYjtFQUdGLEFBQUQsdUJBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxJQUFJO0lBQ2IsY0FBYyxFQUFFLE1BQU07SUFDdEIsR0FBRyxFQUFFLElBQUk7SUFDVCxPQUFPLEVBQUUsY0FBYztJQUN2QixVQUFVLEVBQUUsVUFBVSxHQUt2QjtJQUhFLEFBQUQsZ0NBQVUsQ0FBQztNQUNULEdBQUcsRUFBRSxDQUFDLEdBQ1A7RUFHRixBQUFELDBCQUFVLENBQUM7SUFDVCxPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLEdBQUcsRUFBRSxJQUFJO0lBQ1QsU0FBUyxFQUFFLENBQUM7SUFDWixVQUFVLEVBQUUsVUFBVSxHQUN2QjtFQUdBLEFBQUQseUJBQVMsQ0FBQztJQUNSLElBQUksRUFBRSxPQUFPO0lBQ2IsS0FBSyxFQUFFLEdBQUc7SUFDVixNQUFNLEVBQUUsSUFBSTtJQUNaLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRTdCN01QLE9BQU8sRzZCOE1YO0VBRUEsQUFBRCx1QkFBTyxDQUFDO0lBQ04sT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsTUFBTTtJQUN0QixHQUFHLEVBQUUsR0FBRztJQUNSLFNBQVMsRUFBRSxDQUFDO0lBQ1osSUFBSSxFQUFFLFFBQVEsR0FDZjtFQUVBLEFBQUQsMEJBQVUsQ0FBQztJQUNULFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE9BQU8sRUFBRSxLQUFLO0lBQ2QsU0FBUyxFQUFFLENBQUM7SUFDWixVQUFVLEVBQUUsSUFBSTtJQUVoQixhQUFhLEVBQUUsSUFBSSxHQUNwQjtFQUVBLEFBQUQsdUJBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxLQUFLO0lBQ2QsU0FBUyxFQUFFLENBQUM7SUFDWixXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsY0FBYyxFQUFFLENBQUM7SUFDakIsS0FBSyxFOUJ0TUssT0FBTyxHOEJ1TWxCO0VBRUEsQUFBRCwwQkFBVSxDQUFDO0lBQ1QsT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsTUFBTTtJQUN0QixHQUFHLEVBQUUsR0FBRyxHQUNUO0VBRUEsQUFBRCx5QkFBUyxDQUFDO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsR0FBRyxHQUNUO0VBRUEsQUFBRCw4QkFBYyxDQUFDO0lBQ2IsT0FBTyxFQUFFLEtBQUs7SUFDZCxJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixTQUFTLEVBQUUsSUFBSTtJQUNmLFNBQVMsRUFBRSxJQUFJO0lBQ2YsVUFBVSxFQUFFLElBQUk7SUFDaEIsVUFBVSxFQUFFLElBQUk7SUFDaEIsV0FBVyxFQUFFLENBQUM7SUFDZCxVQUFVLEVBQUUsT0FBTyxHQUNwQjtFQUVBLEFBQUQsK0JBQWUsQ0FBQztJQUNkLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFQXBRUSxPQUFPO0lBcVFwQixXQUFXLEVBQUUsTUFBTSxHQUNwQjtFQUVBLEFBQUQsK0JBQWUsQ0FBQztJQUNkLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFQTNRUSxPQUFPLEdBNFFyQjtFQUVBLEFBQUQsMEJBQVUsQ0FBQztJQUNULE9BQU8sRUFBRSxZQUFZO0lBQ3JCLEtBQUssRUFBRSxHQUFHO0lBQ1YsTUFBTSxFQUFFLElBQUk7SUFDWixnQkFBZ0IsRTlCelBOLE9BQU8sRzhCMFBsQjtFQUVBLEFBQUQsdUJBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsS0FBSyxFQUFFLElBQUk7SUFDWCxTQUFTLEVBQUUsQ0FBQztJQUNaLE1BQU0sRUFBRSxJQUFJO0lBQ1osVUFBVSxFQUFFLElBQUk7SUFDaEIsVUFBVSxFQUFFLElBQUk7SUFDaEIsT0FBTyxFQUFFLE1BQU07SUFDZixNQUFNLEVBQUUsSUFBSTtJQUNaLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRTdCclNQLE9BQU87STZCc1NWLEtBQUssRUFBRSxPQUFPO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixVQUFVLEVBQUUsVUFBVTtJQUN0QixNQUFNLEVBQUUsT0FBTztJQUNmLFdBQVcsRUFBRSxNQUFNLEdBS3BCO0lBdkJBLEFBb0JDLHVCQXBCSyxBQW9CSixNQUFNLENBQUM7TUFDTixPQUFPLEVBQUUsSUFBSSxHQUNkO0VBR0YsQUFBRCx1QkFBTyxDQUFDO0lBQ04sUUFBUSxFQUFFLFFBQVE7SUFDbEIsR0FBRyxFQUFFLElBQUk7SUFDVCxLQUFLLEVBQUUsQ0FBQztJQUNSLElBQUksRUFBRSxRQUFRLEdBQ2Y7RUFFQSxBQUFELHdCQUFRLENBQUM7SUFDUCxPQUFPLEVBQUUsV0FBVztJQUNwQixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixLQUFLLEVBQUUsSUFBSTtJQUNYLFNBQVMsRUFBRSxJQUFJO0lBQ2YsU0FBUyxFQUFFLElBQUk7SUFDZixNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE9BQU8sRUFBRSxDQUFDO0lBQ1YsTUFBTSxFQUFFLHFCQUFxQjtJQUM3QixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsV0FBVztJQUN2QixLQUFLLEU5QnZTSyxPQUFPO0k4QndTakIsU0FBUyxFQUFFLElBQUk7SUFDZixNQUFNLEVBQUUsT0FBTyxHQUtoQjtJQXJCQSxBQWtCQyx3QkFsQk0sQUFrQkwsTUFBTSxDQUFDO01BQ04sVUFBVSxFOUJ0U0YsT0FBTyxHOEJ1U2hCO0VBR0YsQUFBRCw0QkFBWSxDQUFDO0lBQ1gsUUFBUSxFQUFFLFFBQVE7SUFDbEIsR0FBRyxFQUFFLGdCQUFnQjtJQUNyQixLQUFLLEVBQUUsQ0FBQztJQUNSLE9BQU8sRUFBRSxFQUFFO0lBQ1gsU0FBUyxFQUFFLEtBQUs7SUFDaEIsT0FBTyxFQUFFLENBQUM7SUFDVixVQUFVLEVBQUUsT0FBTztJQUNuQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FqVkUsT0FBTztJQWtWMUIsYUFBYSxFQUFFLEdBQUc7SUFHbEIsUUFBUSxFQUFFLE1BQU07SUFDaEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixHQUszQztJQWxCQSxBQWVDLDRCQWZVLEFBZVQsT0FBTyxDQUFDO01BQ1AsT0FBTyxFQUFFLElBQUksR0FDZDtFQUdGLEFBQUQsNEJBQVksQ0FBQztJQUNYLE9BQU8sRUFBRSxLQUFLO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxPQUFPLEVBQUUsU0FBUztJQUNsQixNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxXQUFXO0lBQ3ZCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFdBQVcsRUFBRSxxQkFBcUI7SUFDbEMsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsQ0FBQztJQUNqQixLQUFLLEVBNVdRLE9BQU87SUE2V3BCLE1BQU0sRUFBRSxPQUFPLEdBYWhCO0lBMUJBLEFBZUMsNEJBZlUsR0FBWCw0QkFBVyxDQWVKO01BQ0osVUFBVSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBN1dKLE9BQU8sR0E4V3pCO0lBakJGLEFBbUJDLDRCQW5CVSxBQW1CVCxNQUFNLENBQUM7TUFDTixVQUFVLEU5QmxWRixPQUFPLEc4Qm1WaEI7SUFFQSxBQUFELG9DQUFTLENBQUM7TUFDUixLQUFLLEVBdFhPLE9BQU8sR0F1WHBCOztBNUJsS0QsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0U0QmxONUIsQUFBQSxpQkFBaUIsQ0F5WEc7SUFDaEIsU0FBUyxFQUFFLElBQUksR0FpQmhCO0lBMVhBLEFBQUQsd0JBQVEsQ0EyV0c7TUFDUCxTQUFTLEVBQUUsSUFBSSxHQUNoQjtJQW5VRixBQUFELHlCQUFTLENBcVVHO01BQ1IsT0FBTyxFQUFFLFdBQVcsR0FDckI7SUF4TkYsQUFBRCx1QkFBTyxDQTBORztNQUNOLE9BQU8sRUFBRSxjQUFjLEdBQ3hCO0lBNVFGLEFBQUQsd0JBQVEsQ0E4UUc7TUFDUCxPQUFPLEVBQUUsY0FBYyxHQUN4Qjs7QTVCckxELE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFNEIxSnpCLEFBQUQseUJBQVMsQ0FxVkc7SUFDUixPQUFPLEVBQUUsV0FBVyxHQUNyQjtFQTlVRixBQUFELHdCQUFRLENBZ1ZHO0lBQ1AsU0FBUyxFQUFFLElBQUksR0FDaEI7RUE1T0YsQUFBRCx1QkFBTyxDQThPRztJQUNOLE9BQU8sRUFBRSxjQUFjLEdBQ3hCO0VBaFNGLEFBQUQsd0JBQVEsQ0FrU0c7SUFDUCxPQUFPLEVBQUUsY0FBYyxHQUN4QjtFQXJMRixBQUFELHlCQUFTLENBdUxHO0lBQ1IsU0FBUyxFQUFFLElBQUk7SUFDZixPQUFPLEVBQUUsR0FBRyxHQUNiO0VBdktGLEFBQUQsK0JBQWUsQ0F5S0c7SUFDZCxXQUFXLEVBQUUsTUFBTSxHQUNwQjtFQWhHRixBQUFELDRCQUFZLENBa0dHO0lBQ1gsU0FBUyxFQUFFLENBQUM7SUFDWixLQUFLLEVBQUUsV0FBVztJQUNsQixTQUFTLEVBQUUsSUFBSSxHQUNoQjtFQS9SRixBQUFELDJCQUFXLENBaVNHO0lBQ1YsS0FBSyxFQUFFLElBQUksR0FDWjs7QUMzYkw7O2tFQUVrRTtBQVVsRSxBQUFBLGFBQWEsQ0FBQztFQUNaLEtBQUssRUFBRSxJQUFJO0VBQ1gsU0FBUyxFQUFFLEtBQUs7RUFDaEIsV0FBVyxFQUFFLENBQUM7RUFDZCxZQUFZLEVBQUUsQ0FBQztFQUNmLE9BQU8sRUFBRSxDQUFDO0VBQ1YsVUFBVSxFQUFFLFVBQVUsR0FrVHZCO0VBeFRELEFBU0UsYUFUVyxDQVNYLE1BQU0sQ0FBQztJN0JpTlAsU0FBUyxFQUFFLENBQUM7SUFDWixVQUFVLEVBQUUsQ0FBQztJQUNiLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLGNBQWMsRUFBRSxJQUFJLEc2Qm5ObkI7RUFYSCxBQWFFLGFBYlcsQ0FhWCxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ2QsV0FBVyxFQUFFLENBQUMsR0FDZjtFQUVBLEFBQUQsb0JBQVEsQ0FBQztJQUNQLE9BQU8sRUFBRSxJQUFJO0lBQ2IsY0FBYyxFQUFFLE1BQU07SUFDdEIsS0FBSyxFQUFFLElBQUk7SUFDWCxTQUFTLEVBQUUsS0FBSztJQUNoQixNQUFNLEVBQUUsS0FBSztJQUNiLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLE9BQU8sRUFBRSxDQUFDO0lBQ1YsVUFBVSxFQUFFLE9BQU87SUFDbkIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEMvQlZQLE9BQU87SStCV2pCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLFFBQVEsRUFBRSxNQUFNLEdBQ2pCO0VBRUEsQUFBRCxxQkFBUyxDQUFDO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsYUFBYTtJQUM5QixHQUFHLEVBQUUsSUFBSTtJQUNULE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFVBQVUsRUFBRSxVQUFVLEdBQ3ZCO0VBRUEsQUFBRCxvQkFBUSxDQUFDO0lBQ1AsTUFBTSxFQUFFLENBQUM7SUFDVCxXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsVUFBVSxFQUFFLE1BQU07SUFDbEIsV0FBVyxFQUFFLElBQUk7SUFDakIsY0FBYyxFQUFFLENBQUM7SUFDakIsS0FBSyxFL0IxQkssT0FBTyxHK0IyQmxCO0VBRUEsQUFBRCx1QkFBVyxDQUFDO0lBQ1YsT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsTUFBTTtJQUN0QixHQUFHLEVBQUUsSUFBSTtJQUNULE9BQU8sRUFBRSxJQUFJO0lBQ2IsVUFBVSxFQUFFLFVBQVUsR0FLdkI7SUFWQSxBQU9DLHVCQVBTLENBT1QsMEJBQTBCLENBQUM7TUFDekIsU0FBUyxFQUFFLEtBQUssR0FDakI7RUFHRixBQUFELG9CQUFRLENBQUM7SUFDUCxPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLElBQUksRUFBRSxRQUFRO0lBQ2QsVUFBVSxFQUFFLENBQUM7SUFDYixHQUFHLEVBQUUsSUFBSTtJQUNULE9BQU8sRUFBRSxjQUFjO0lBQ3ZCLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLFVBQVUsRUFBRSxVQUFVLEdBQ3ZCO0VBRUEsQUFBRCwwQkFBYyxDQUFDO0lBQ2IsTUFBTSxFQUFFLENBQUM7SUFDVCxXQUFXLEVBQUUsOENBQThDO0lBQzNELFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFQTVGTyxPQUFPLEdBNkZwQjtFQUVBLEFBQUQsZ0NBQW9CLENBQUM7SUFDbkIsTUFBTSxFQUFFLENBQUM7SUFDVCxTQUFTLEVBQUUsS0FBSztJQUNoQixXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFQXJHTyxPQUFPLEdBc0dwQjtFQUVBLEFBQUQsb0JBQVEsQ0FBQztJQUNQLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLEtBQUssRUFBRSxJQUFJO0lBQ1gsU0FBUyxFQUFFLENBQUM7SUFDWixNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFVBQVUsRUFBRSxHQUFHO0lBQ2YsT0FBTyxFQUFFLE1BQU07SUFDZixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQzlCdkhkLE9BQU87SThCd0hWLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxXQUFXO0lBQ3ZCLEtBQUssRTlCMUhGLE9BQU87SThCMkhWLFdBQVcsRUFBRSw4Q0FBOEM7SUFDM0QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsQ0FBQztJQUNkLGNBQWMsRUFBRSxPQUFPO0lBQ3ZCLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLE1BQU0sRUFBRSxPQUFPO0lBQ2YsV0FBVyxFQUFFLE1BQU0sR0FLcEI7SUEzQkEsQUF3QkMsb0JBeEJNLEFBd0JMLE1BQU0sQ0FBQztNQUNOLE9BQU8sRUFBRSxHQUFHLEdBQ2I7RUFHRixBQUFELG1CQUFPLENBQUM7SUFDTixPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLElBQUksRUFBRSxRQUFRO0lBQ2QsVUFBVSxFQUFFLENBQUM7SUFDYixHQUFHLEVBQUUsSUFBSTtJQUNULE9BQU8sRUFBRSxjQUFjO0lBQ3ZCLFVBQVUsRUFBRSxVQUFVLEdBQ3ZCO0VBRUEsQUFBRCxzQkFBVSxDQUFDO0lBQ1QsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsVUFBVTtJQUMzQixJQUFJLEVBQUUsUUFBUTtJQUNkLFVBQVUsRUFBRSxDQUFDO0lBRWIsR0FBRyxFQUFFLElBQUk7SUFDVCxZQUFZLEVBQUUsQ0FBQztJQUNmLGFBQWEsRUFBRSxDQUFDO0lBQ2hCLFNBQVMsRUFBRSxDQUFDO0lBQ1osVUFBVSxFQUFFLFVBQVUsR0FDdkI7RUFFQSxBQUFELG1CQUFPLENBQUM7SUFDTixRQUFRLEVBQUUsUUFBUTtJQUNsQixJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxLQUFLO0lBQ1osTUFBTSxFQUFFLEtBQUssR0FDZDtFQUVBLEFBQUQsdUJBQVcsQ0FBQztJQUNWLE9BQU8sRUFBRSxLQUFLO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLFNBQVMsRUFBRSxjQUFjLEdBQzFCO0VBRUEsQUFBRCx5QkFBYSxDQUFDO0lBQ1osTUFBTSxFQXZLVyxPQUFPLEdBd0t6QjtFQUVBLEFBQUQsNEJBQWdCLENBQUM7SUFDZixVQUFVLEVBQUUsNEJBQTRCLEdBQ3pDO0VBRUEsQUFBRCx5QkFBYSxDQUFDO0lBQ1osUUFBUSxFQUFFLFFBQVE7SUFDbEIsS0FBSyxFQUFFLENBQUM7SUFDUixPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLEdBQUcsRUFBRSxDQUFDO0lBQ04sY0FBYyxFQUFFLElBQUk7SUFDcEIsVUFBVSxFQUFFLE1BQU0sR0FDbkI7RUFFQSxBQUFELHlCQUFhLENBQUM7SUFDWixXQUFXLEVBQUUsOENBQThDO0lBQzNELFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLENBQUM7SUFDZCxjQUFjLEVBQUUsTUFBTTtJQUN0QixjQUFjLEVBQUUsU0FBUztJQUN6QixLQUFLLEVBQUUsT0FBTztJQUdkLGFBQWEsRUFBRSxJQUFJLEdBQ3BCO0VBRUEsQUFBRCx5QkFBYSxDQUFDO0lBQ1osV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxDQUFDO0lBQ2QsS0FBSyxFL0JsTEssT0FBTztJK0JtTGpCLGFBQWEsRUFBRSxJQUFJLEdBQ3BCO0VBRUEsQUFBRCx3QkFBWSxDQUFDO0lBQ1gsV0FBVyxFQUFFLDhDQUE4QztJQUMzRCxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxDQUFDO0lBQ2QsS0FBSyxFQUFFLE9BQU8sR0FDZjtFQUVBLEFBQUQscUJBQVMsQ0FBQztJQUNSLE9BQU8sRUFBRSxJQUFJO0lBQ2IsY0FBYyxFQUFFLE1BQU07SUFDdEIsZUFBZSxFQUFFLE1BQU07SUFDdkIsSUFBSSxFQUFFLFFBQVE7SUFDZCxHQUFHLEVBQUUsSUFBSTtJQUNULE1BQU0sRUFBRSxDQUFDO0lBQ1QsT0FBTyxFQUFFLENBQUM7SUFDVixVQUFVLEVBQUUsSUFBSTtJQUNoQixTQUFTLEVBQUUsQ0FBQyxHQUNiO0VBRUEsQUFBRCwwQkFBYyxDQUFDO0lBQ2IsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsR0FBRztJQUNSLFNBQVMsRUFBRSxDQUFDLEdBQ2I7RUFFQSxBQUFELHlCQUFhLENBQUM7SUFDWixJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixhQUFhLEVBQUUsR0FBRyxHQWFuQjtJQVhFLEFBQUQsK0JBQU8sQ0FBQztNQUNOLFVBQVUsRUFyUEQsT0FBTyxHQXNQakI7SUFFQSxBQUFELG1DQUFXLENBQUM7TUFDVixVQUFVLEVBeFBHLE9BQU8sR0F5UHJCO0lBRUEsQUFBRCwrQkFBTyxDQUFDO01BQ04sVUFBVSxFQTNQRCxPQUFPLEdBNFBqQjtFQUdGLEFBQUQsMEJBQWMsQ0FBQztJQUNiLElBQUksRUFBRSxRQUFRO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsOENBQThDO0lBQzNELFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFQTFRTyxPQUFPLEdBMlFwQjtFQUVBLEFBQUQsMkJBQWUsQ0FBQztJQUNkLFdBQVcsRUFBRSw4Q0FBOEM7SUFDM0QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsR0FBRztJQUNoQixLQUFLLEUvQm5QSyxPQUFPLEcrQm9QbEI7RUFFQSxBQUFELHFCQUFTLENBQUM7SUFDUixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxhQUFhO0lBQzlCLEdBQUcsRUFBRSxJQUFJO0lBQ1QsU0FBUyxFQUFFLENBQUMsR0FDYjtFQUVBLEFBQUQsbUJBQU8sQ0FBQztJQUNOLE1BQU0sRUFBRSxDQUFDO0lBQ1QsU0FBUyxFQUFFLENBQUM7SUFDWixXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsVUFBVSxFQUFFLE1BQU07SUFDbEIsV0FBVyxFQUFFLElBQUk7SUFDakIsY0FBYyxFQUFFLENBQUM7SUFDakIsS0FBSyxFQXRTTyxPQUFPLEdBdVNwQjtFQUVBLEFBQUQscUJBQVMsQ0FBQztJQUNSLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxRQUFRO0lBQ3pCLElBQUksRUFBRSxRQUFRO0lBQ2QsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsQ0FBQztJQUNWLE1BQU0sRUFBRSxDQUFDO0lBQ1QsVUFBVSxFQUFFLFdBQVc7SUFDdkIsS0FBSyxFOUJ0VEYsT0FBTztJOEJ1VFYsV0FBVyxFQUFFLDhDQUE4QztJQUMzRCxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxDQUFDO0lBQ2QsY0FBYyxFQUFFLE9BQU87SUFDdkIsTUFBTSxFQUFFLE9BQU87SUFDZixXQUFXLEVBQUUsTUFBTSxHQUtwQjtJQXJCQSxBQWtCQyxxQkFsQk8sQUFrQk4sTUFBTSxDQUFDO01BQ04sT0FBTyxFQUFFLElBQUksR0FDZDs7QTdCdEdELE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFNkJoTjVCLEFBQUEsYUFBYSxDQTJURztJQUNaLFNBQVMsRUFBRSxJQUFJLEdBbUNoQjtJQTlVQSxBQUFELG9CQUFRLENBNlNHO01BQ1AsU0FBUyxFQUFFLElBQUksR0FDaEI7SUEvUkYsQUFBRCxxQkFBUyxDQWlTRztNQUNSLE9BQU8sRUFBRSxXQUFXLEdBQ3JCO0lBdE1GLEFBQUQsbUJBQU8sQ0F3TUc7TUFDTixPQUFPLEVBQUUsY0FBYyxHQUN4QjtJQXZRRixBQUFELG9CQUFRLENBeVFHO01BQ1AsT0FBTyxFQUFFLGNBQWMsR0FDeEI7SUFwTUYsQUFBRCxzQkFBVSxDQXNNRztNQUNULEdBQUcsRUFBRSxJQUFJO01BQ1QsZUFBZSxFQUFFLE1BQU0sR0FDeEI7SUEzSEYsQUFBRCxxQkFBUyxDQTZIRztNQUNSLE9BQU8sRUFBRSxJQUFJLEdBQ2Q7SUEvTEYsQUFBRCxtQkFBTyxDQWlNRztNQUNOLEtBQUssRUFBRSxLQUFLO01BQ1osTUFBTSxFQUFFLEtBQUssR0FDZDtJQXJKRixBQUFELHlCQUFhLENBdUpHO01BQ1osU0FBUyxFQUFFLElBQUksR0FDaEI7O0E3QjNJRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RTZCbEx6QixBQUFELHFCQUFTLENBbVVHO0lBQ1IsT0FBTyxFQUFFLFdBQVcsR0FDckI7RUE1VEYsQUFBRCxvQkFBUSxDQThURztJQUNQLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0VBNU9GLEFBQUQsbUJBQU8sQ0E4T0c7SUFDTixPQUFPLEVBQUUsY0FBYyxHQUN4QjtFQTdTRixBQUFELG9CQUFRLENBK1NHO0lBQ1AsT0FBTyxFQUFFLGNBQWMsR0FDeEI7RUExT0YsQUFBRCxzQkFBVSxDQTRPRztJQUNULGNBQWMsRUFBRSxNQUFNO0lBQ3RCLFdBQVcsRUFBRSxNQUFNLEdBQ3BCO0VBekdGLEFBQUQscUJBQVMsQ0EyR0c7SUFDUixjQUFjLEVBQUUsTUFBTTtJQUN0QixXQUFXLEVBQUUsT0FBTztJQUNwQixHQUFHLEVBQUUsSUFBSTtJQUNULFVBQVUsRUFBRSxNQUFNLEdBQ25CO0VBNUZGLEFBQUQscUJBQVMsQ0E4Rkc7SUFDUixlQUFlLEVBQUUsTUFBTSxHQUN4QjtFQWpTRixBQUFELG9CQUFRLENBbVNHO0lBQ1AsS0FBSyxFQUFFLElBQUksR0FDWjs7QUNsWkwsOERBQThEO0FBb0I5RCxVQUFVLENBQVYsd0JBQVU7RUFDUixFQUFFO0lBQUcsU0FBUyxFQUFFLGNBQWM7O0FBR2hDLEFBQUEsb0JBQW9CLENBQUM7RUFDbkIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsT0FBTyxFQUFFLElBQUk7RUFDYixjQUFjLEVBQUUsTUFBTTtFQUN0QixLQUFLLEVBdEJnQyxLQUFLO0VBeUIxQyxTQUFTLEVBQUUsa0JBQXlEO0VBSXBFLFVBQVUsRUFBRSxrQkFBa0I7RUFDOUIsVUFBVSxFQUFFLG1CQUFtQjtFQUMvQixRQUFRLEVBQUUsTUFBTTtFQUNoQixVQUFVLEVBQUUsT0FBTztFQUNuQixhQUFhLEVBQUUsR0FBRztFQUNsQixVQUFVLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsc0JBQXNCO0VBQzdDLFdBQVcsRUFBRSxxQkFBcUIsR0F1ZW5DO0VBeGZELEFBbUJFLG9CQW5Ca0IsQ0FtQmxCLENBQUM7RUFuQkgsb0JBQW9CLENBb0JsQixDQUFDLEFBQUEsUUFBUTtFQXBCWCxvQkFBb0IsQ0FxQmxCLENBQUMsQUFBQSxPQUFPLENBQUM7SUFDUCxVQUFVLEVBQUUsVUFBVSxHQUN2QjtFQUVBLEFBQUQsMkJBQVEsQ0FBQztJOUJxTFQsU0FBUyxFQUFFLENBQUM7SUFDWixVQUFVLEVBQUUsQ0FBQztJQUNiLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLGNBQWMsRUFBRSxJQUFJO0k4QnZMbEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsR0FBRyxFQUFFLElBQUk7SUFDVCxLQUFLLEVBQUUsSUFBSTtJQUNYLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLE1BQU0sRUFBRSxDQUFDO0lBQ1QsT0FBTyxFQUFFLENBQUM7SUFDVixNQUFNLEVBQUUsQ0FBQztJQUNULGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxXQUFXO0lBQ3ZCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLEtBQUssRWhDaENLLE9BQU87SWdDaUNqQixNQUFNLEVBQUUsT0FBTyxHQU1oQjtJQXZCQSxBQW1CQywyQkFuQk0sQUFtQkwsTUFBTSxDQUFDO01BQ04sVUFBVSxFQUFFLG1CQUFtQjtNQUMvQixLQUFLLEVoQ3JDRyxPQUFPLEdnQ3NDaEI7RUFHRixBQUFELDJCQUFRLENBQUM7SUFDUCxXQUFXLEVBQUUsQ0FBQztJQUNkLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLE9BQU8sRUF0RTRCLElBQUksQ0FBSixJQUFJLENBc0UwQixDQUFDO0lBQ2xFLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLElBQUk7SUFDakIsY0FBYyxFQUFFLENBQUM7SUFDakIsY0FBYyxFQUFFLElBQUk7SUFDcEIsS0FBSyxFaEMvQ0ssT0FBTyxHZ0NnRGxCO0VBRUEsQUFBRCwwQkFBTyxDQUFDO0lBQ04sT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsTUFBTTtJQUN0QixHQUFHLEVBQUUsSUFBSTtJQUNULElBQUksRUFBRSxRQUFRO0lBR2QsVUFBVSxFQUFFLENBQUM7SUFDYixVQUFVLEVBQUUsSUFBSTtJQUNoQixPQUFPLEVBQUUsSUFBSSxDQXhGc0IsSUFBSSxDQXdGRyxDQUFDLEdBQzVDO0VBRUEsQUFBRCw2QkFBVSxDQUFDO0lBQ1QsT0FBTyxFQUFFLElBQUk7SUFDYixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxNQUFNO0lBQ25CLEdBQUcsRUFBRSxJQUFJLEdBQ1Y7RUFFQSxBQUFELGtDQUFlLENBQUM7SUFDZCxPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLEdBQUcsRUFBRSxHQUFHO0lBQ1IsU0FBUyxFQUFFLENBQUMsR0FDYjtFQUVBLEFBQUQsa0NBQWUsQ0FBQztJQUNkLFdBQVcsRUFBRSxDQUFDO0lBQ2QsS0FBSyxFaENqRkssT0FBTyxHZ0NrRmxCO0VBRUEsQUFBRCxrQ0FBZSxDQUFDO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsT0FBTztJQUN2QixLQUFLLEVoQ3pGSyxPQUFPLEdnQzBGbEI7RUFFQSxBQUFELDZCQUFVLENBQUM7SUFDVCxXQUFXLEVBQUUsQ0FBQztJQUNkLE1BQU0sRUFBRSxHQUFHO0lBQ1gsTUFBTSxFQUFFLE9BQWlDO0lBQ3pDLFVBQVUsRWhDcEdBLE9BQU8sR2dDcUdsQjtFQUVBLEFBQUQsNkJBQVUsQ0FBQztJQUNULE9BQU8sRUFBRSxJQUFJO0lBQ2IsY0FBYyxFQUFFLE1BQU07SUFDdEIsV0FBVyxFQUFFLFVBQVU7SUFDdkIsR0FBRyxFQUFFLEdBQUcsR0FDVDtFQUVBLEFBQUQsbUNBQWdCLENBQUM7SUFDZixNQUFNLEVBQUUsQ0FBQztJQUNULFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsY0FBYyxFQUFFLE9BQU87SUFDdkIsS0FBSyxFaEM3R0ssT0FBTyxHZ0M4R2xCO0VBRUEsQUFBRCx3QkFBSyxDQUFDO0lBQ0osT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsR0FBRztJQUNSLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLElBQUk7SUFDakIsY0FBYyxFQUFFLE9BQU87SUFDdkIsS0FBSyxFaEMxSEssT0FBTyxHZ0MySGxCO0VBRUEsQUFBRCw2QkFBVSxDQUFDO0lBQ1QsV0FBVyxFQUFFLENBQUMsR0FDZjtFQUVBLEFBQUQsNEJBQVMsQ0FBQztJQUNSLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLENBQUM7SUFDZCxNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ2hDdklQLE9BQU87SWdDd0lqQixhQUFhLEVBQUUsR0FBRztJQUNsQixRQUFRLEVBQUUsTUFBTSxHQUNqQjtFQUdBLEFBQUQsK0JBQVksQ0FBQztJQUNYLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLGFBQWE7SUFDOUIsR0FBRyxFQUFFLElBQUk7SUFDVCxPQUFPLEVBQUUsSUFBSSxDQXhLc0IsSUFBSSxDQXdLUyxJQUFJLEdBQ3JEO0VBRUEsQUFBRCxvQ0FBaUIsQ0FBQztJQUNoQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLEtBQUssRWhDMUhLLE9BQU8sR2dDMkhsQjtFQUVBLEFBQUQsc0NBQW1CLENBQUM7STlCNkNwQixTQUFTLEVBQUUsQ0FBQztJQUNaLFVBQVUsRUFBRSxDQUFDO0lBQ2IsVUFBVSxFQUFFLElBQUk7SUFDaEIsY0FBYyxFQUFFLENBQUM7SUFDakIsY0FBYyxFQUFFLElBQUk7SThCL0NsQixNQUFNLEVBQUUsSUFBSTtJQUNaLE1BQU0sRUFBRSxDQUFDO0lBQ1QsT0FBTyxFQUFFLENBQUM7SUFDVixNQUFNLEVBQUUsQ0FBQztJQUNULGFBQWEsRUFBRSxDQUFDO0lBQ2hCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFdBQVcsRUFBRSxxQkFBcUI7SUFDbEMsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixLQUFLLEVoQy9LSyxPQUFPO0lnQ2dMakIsTUFBTSxFQUFFLE9BQU8sR0FDaEI7RUFFQSxBQUFELHlCQUFNLENBQUM7SUFDTCxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FqTTBCLEtBQUs7SUFrTXhDLE9BQU8sRUFBRSxjQUFjLEdBQ3hCO0VBRUEsQUFBRCw4QkFBVyxDQUFDO0lBQ1YsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsYUFBYTtJQUM5QixhQUFhLEVBQUUsR0FBRyxHQUNuQjtFQUVBLEFBQUQsK0JBQVksQ0FBQztJQUNYLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFaEM1SkssT0FBTyxHZ0M2SmxCO0VBRUEsQUFBRCw2QkFBVSxDQUFDO0lBQ1QsT0FBTyxFQUFFLElBQUksR0FDZDtFQUVBLEFBQUQsK0JBQVksQ0FBQztJOUJPYixTQUFTLEVBQUUsQ0FBQztJQUNaLFVBQVUsRUFBRSxDQUFDO0lBQ2IsVUFBVSxFQUFFLElBQUk7SUFDaEIsY0FBYyxFQUFFLENBQUM7SUFDakIsY0FBYyxFQUFFLElBQUk7SThCVGxCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsQ0FBQztJQUNULE9BQU8sRUFBRSxDQUFDO0lBQ1YsTUFBTSxFQUFFLENBQUM7SUFDVCxhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsV0FBVztJQUN2QixVQUFVLEVBQUUsSUFBSTtJQUNoQixLQUFLLEVoQzNNSyxPQUFPO0lnQzRNakIsTUFBTSxFQUFFLE9BQU8sR0FjaEI7SUE1QkEsQUFnQkMsK0JBaEJVLEFBZ0JULE1BQU0sQUFBQSxJQUFLLENBQUEsU0FBUyxFQUFFO01BQ3JCLFVBQVUsRUFBRSxtQkFBbUIsR0FDaEM7SUFsQkYsQUFzQkMsK0JBdEJVLEFBc0JULFNBQVMsQ0FBQztNQUNULFlBQVksRUFBRSxXQUFXO01BQ3pCLFVBQVUsRUFBRSxXQUFXO01BQ3ZCLEtBQUssRWhDMU5HLE9BQU87TWdDMk5mLE1BQU0sRUFBRSxPQUFPLEdBQ2hCO0VBR0YsQUFBRCx5QkFBTSxDQUFDO0lBQ0wsT0FBTyxFQUFFLElBQUksR0FDZDtFQUVBLEFBQUQsOEJBQVcsQ0FBQztJQUNWLElBQUksRUFBRSxLQUFLO0lBQ1gsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixNQUFNLEVBQUUsSUFBSTtJQUNaLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFaEM5TUssT0FBTyxHZ0MrTWxCO0VBRUEsQUFBRCwyQkFBUSxDQUFDO0lBQ1AsT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsTUFBTSxHQUN2QjtFQUVBLEFBQUQsMEJBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxJQUFJLEdBQ2Q7RUFJQSxBQUFELHlCQUFNLENBQUM7STlCakRQLFNBQVMsRUFBRSxDQUFDO0lBQ1osVUFBVSxFQUFFLENBQUM7SUFDYixVQUFVLEVBQUUsSUFBSTtJQUNoQixjQUFjLEVBQUUsQ0FBQztJQUNqQixjQUFjLEVBQUUsSUFBSTtJOEIrQ2xCLElBQUksRUFBRSxLQUFLO0lBQ1gsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBR1osTUFBTSxFQUFFLENBQUM7SUFDVCxPQUFPLEVBQUUsQ0FBQztJQUNWLE1BQU0sRUFBRSxxQkFBcUI7SUFDN0IsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLFdBQVc7SUFDdkIsVUFBVSxFQUFFLElBQUk7SUFDaEIsTUFBTSxFQUFFLE9BQU8sR0E4QmhCO0lBOUNBLEFBa0JDLHlCQWxCSSxBQWtCSCxRQUFRLENBQUM7TUFDUixNQUFNLEVBQUUsT0FBTyxHQUNoQjtJQXBCRixBQXlCQyx5QkF6QkksQUF5QkgsU0FBUyxDQUFDO01BQ1QsWUFBWSxFQUFFLFdBQVc7TUFDekIsVUFBVSxFQUFFLFdBQVc7TUFDdkIsTUFBTSxFQUFFLE9BQU8sR0FDaEI7SUE3QkYsQUFpQ0MseUJBakNJLEFBaUNILGFBQWEsQ0FBQztNQUNiLFlBQVksRWhDclNKLE9BQU87TWdDc1NmLFVBQVUsRWhDdlNGLE9BQU8sR2dDd1NoQjtJQXBDRixBQXNDQyx5QkF0Q0ksQUFzQ0gsWUFBWSxDQUFDO01BQ1osWUFBWSxFQUFFLFdBQVc7TUFDekIsVUFBVSxFaEN6U0YsT0FBTyxHZ0M4U2hCO01BN0NGLEFBMENHLHlCQTFDRSxBQXNDSCxZQUFZLENBSVgsNkJBQTZCLENBQUM7UUFDNUIsS0FBSyxFQUFFLE9BQU8sR0FDZjtFQUlKLEFBQUQsNkJBQVUsQ0FBQztJQUNULE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFaENwUkssT0FBTyxHZ0M2UmxCO0lBbEJBLEFBV0MsNkJBWFEsQUFXUCxTQUFTLENBQUU7TUFBRSxLQUFLLEVoQ3BUVCxPQUFPLEdnQ29Ua0I7SUFYcEMsQUFZQyw2QkFaUSxBQVlQLFFBQVEsQ0FBRztNQUFFLEtBQUssRWhDclRULE9BQU8sR2dDcVRrQjtJQVpwQyxBQWFDLDZCQWJRLEFBYVAsV0FBVyxDQUFDO01BQUUsS0FBSyxFaEM5U1YsT0FBTyxHZ0M4U2U7SUFiakMsQUFjQyw2QkFkUSxBQWNQLFNBQVMsQ0FBRTtNQUNWLFVBQVUsRWhDMVRGLE9BQU87TWdDMlRmLEtBQUssRWhDalRHLE9BQU8sR2dDa1RoQjtFQUdGLEFBQUQsOEJBQVcsQ0FBQztJQUNWLFdBQVcsRUFBRSxDQUFDO0lBQ2QsS0FBSyxFQUFFLEdBQUc7SUFDVixVQUFVLEVBQUUsT0FBTztJQUNuQixVQUFVLEVoQ3RTQSxPQUFPLEdnQ3VTbEI7RUFFQSxBQUFELDJCQUFRLENBQUM7SUFDUCxPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLElBQUksRUFBRSxRQUFRO0lBQ2QsU0FBUyxFQUFFLENBQUM7SUFDWixPQUFPLEVBQUUsY0FBYyxHQUN4QjtFQUVBLEFBQUQsK0JBQVksQ0FBQztJQUNYLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFaENsVEssT0FBTyxHZ0NtVGxCO0VBRUEsQUFBRCxrQ0FBZSxDQUFDO0lBQ2QsT0FBTyxFQUFFLElBQUk7SUFDYixJQUFJLEVBQUUsUUFBUTtJQUNkLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLE9BQU8sRUFBRSxNQUFNLEdBQ2hCO0VBRUEsQUFBRCw2QkFBVSxDQUFDO0lBQ1QsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osTUFBTSxFQUFFLEtBQUssQ0FBQyxLQUFLLENoQzFXVCxPQUFPO0lnQzJXakIsZ0JBQWdCLEVoQ3hXTixPQUFPO0lnQ3lXakIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsU0FBUyxFQUFFLDZDQUE2QyxHQUN6RDtFQUVBLEFBQUQsaUNBQWMsQ0FBQztJQUNiLE1BQU0sRUFBRSxJQUFJO0lBQ1osT0FBTyxFQUFFLE1BQU07SUFDZixVQUFVLEVBQUUsTUFBTTtJQUNsQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRWhDL1VLLE9BQU8sR2dDZ1ZsQjtFQUVBLEFBQUQsZ0NBQWEsQ0FBQztJQUNaLE9BQU8sRUFBRSxJQUFJO0lBQ2IsY0FBYyxFQUFFLE1BQU07SUFDdEIsR0FBRyxFQUFFLEdBQUc7SUFDUixVQUFVLEVBQUUsS0FBSztJQUNqQixVQUFVLEVBQUUsSUFBSSxHQUNqQjtFQUVBLEFBQUQsMEJBQU8sQ0FBQztJOUI5S1IsU0FBUyxFQUFFLENBQUM7SUFDWixVQUFVLEVBQUUsQ0FBQztJQUNiLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLGNBQWMsRUFBRSxJQUFJO0k4QjRLbEIsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsR0FBRztJQUNSLE1BQU0sRUFBRSxJQUFJO0lBSVosV0FBVyxFQUFFLENBQUM7SUFFZCxNQUFNLEVBQUUsQ0FBQztJQUNULE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDaENuWVAsT0FBTztJZ0NvWWpCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxPQUFPO0lBQ25CLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLEtBQUssRWhDeldLLE9BQU87SWdDMFdqQixXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsVUFBVSxFQUFFLElBQUk7SUFDaEIsTUFBTSxFQUFFLE9BQU8sR0FPaEI7SUE5QkEsQUF5QkMsMEJBekJLLEFBeUJKLFlBQVksQ0FBQztNQUNaLFlBQVksRWhDeFpKLE9BQU87TWdDeVpmLFVBQVUsRWhDNVpGLE9BQU87TWdDNlpmLEtBQUssRWhDMVpHLE9BQU8sR2dDMlpoQjtFQUdGLEFBQUQsZ0NBQWEsQ0FBQztJQUNaLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLENBQUMsR0FDZjtFQUVBLEFBQUQsMkJBQVEsQ0FBQztJQUNQLFdBQVcsRUFBRSxDQUFDO0lBQ2QsTUFBTSxFQUFFLENBQUM7SUFDVCxPQUFPLEVBQUUsSUFBSSxDQXRic0IsSUFBSSxDQXNiRyxDQUFDO0lBQzNDLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFaEM5WUssT0FBTyxHZ0MrWWxCO0VBRUEsQUFBRCw2QkFBVSxDQUFDO0lBQ1QsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsUUFBUTtJQUN6QixHQUFHLEVBQUUsSUFBSTtJQUNULFdBQVcsRUFBRSxDQUFDO0lBQ2QsT0FBTyxFQUFFLElBQUksQ0FsY3NCLElBQUksQ0FBSixJQUFJLEdBbWN4QztFQUVBLEFBQUQseUJBQU0sQ0FBQztJOUJ0T1AsU0FBUyxFQUFFLENBQUM7SUFDWixVQUFVLEVBQUUsQ0FBQztJQUNiLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLGNBQWMsRUFBRSxJQUFJO0k4Qm9PbEIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsR0FBRyxFQUFFLEdBQUc7SUFHUixNQUFNLEVBQUUsSUFBSTtJQUdaLE1BQU0sRUFBRSxDQUFDO0lBQ1QsT0FBTyxFQUFFLFNBQVM7SUFDbEIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLElBQUk7SUFDaEIsTUFBTSxFQUFFLE9BQU87SUFDZixXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsY0FBYyxFQUFFLE9BQU87SUFDdkIsV0FBVyxFQUFFLE1BQU0sR0FvQ3BCO0lBbENFLEFBQUQsZ0NBQVEsQ0FBQztNQUNQLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDaEN0Y1QsT0FBTztNZ0N1Y2YsZ0JBQWdCLEVoQ3pjUixPQUFPO01nQzBjZixLQUFLLEVoQ2xjRyxPQUFPLEdnQzhjaEI7TUFmQSxBQUtDLGdDQUxNLEFBS0wsTUFBTSxBQUFBLElBQUssQ0F6UEYsU0FBUyxFQXlQSTtRQUNyQixnQkFBZ0IsRUF6ZGUsT0FBTyxHQTBkdkM7TUFQRixBQVNDLGdDQVRNLEFBU0wsU0FBUyxDQUFDO1FBQ1QsWUFBWSxFaEMvY04sT0FBTztRZ0NnZGIsS0FBSyxFaEMxY0MsT0FBTztRZ0MyY2IsTUFBTSxFQUFFLFdBQVc7UUFDbkIsT0FBTyxFQUFFLEdBQUcsR0FDYjtJQUdGLEFBQUQsa0NBQVUsQ0FBQztNQUNULE1BQU0sRUFBRSxDQUFDO01BQ1QsZ0JBQWdCLEVoQ2hlUixPQUFPO01nQ2llZixLQUFLLEVBQUUsT0FBTyxHQWFmO01BaEJBLEFBS0Msa0NBTFEsQUFLUCxNQUFNLEFBQUEsSUFBSyxDQTFRRixTQUFTLEVBMFFJO1FBQ3JCLGdCQUFnQixFaENuZVYsT0FBTyxHZ0NvZWQ7TUFQRixBQVVDLGtDQVZRLEFBVVAsU0FBUyxDQUFDO1FBQ1QsWUFBWSxFQUFFLFdBQVc7UUFDekIsZ0JBQWdCLEVBamZlLE9BQU87UUFrZnRDLEtBQUssRUFBRSxPQUFPO1FBQ2QsTUFBTSxFQUFFLFdBQVcsR0FDcEI7RUFJSixBQUFELGlDQUFjLENBQUM7SUFDYixXQUFXLEVBQUUsQ0FBQztJQUNkLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsc0JBQXNCO0lBQzlCLGdCQUFnQixFQUFFLFdBQVc7SUFDN0IsYUFBYSxFQUFFLEdBQUc7SUFDbEIsU0FBUyxFQUFFLDZDQUE2QyxHQUN6RDs7QUFLSCxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUs7RUFDbEIsQUFBQSwwQkFBMEIsQUFBQSxJQUFLLENKN0hqQixZQUFZLENJNkhrQixNQUFNLENBQUM7SUFDakQsWUFBWSxFaENoZ0JGLE9BQU8sR2dDaWdCbEI7O0FBSUgsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VBdlpyQixBQUFELDZCQUFVLENBd1pvQjtJQUM1QixjQUFjLEVBQUUsR0FBRztJQUNuQixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsYUFBYSxHQUMvQjs7QUFHSCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RUFqWXJCLEFBQUQsNEJBQVMsQ0FtWU87SUFBRSxjQUFjLEVBQUUsTUFBTSxHQUFJO0VBNVYzQyxBQUFELHlCQUFNLENBNlZVO0lBQUUsSUFBSSxFQUFFLFFBQVEsR0FBSTtFQTNNbkMsQUFBRCw4QkFBVyxDQTRNSztJQUFFLEtBQUssRUFBRSxJQUFJO0lBQUUsTUFBTSxFQUFFLEdBQUcsR0FBSTtFQTNKN0MsQUFBRCxnQ0FBYSxDQTRKRztJQUFFLFVBQVUsRUFBRSxLQUFLLEdBQUk7RUFHcEMsQUFDQyw0QkFETyxBQUFBLGFBQWEsQ0FDcEIsK0JBQStCLENBQUM7SUFBRSxPQUFPLEVBQUUsSUFBSSxHQUFJO0VBRHBELEFBR0MsNEJBSE8sQUFBQSxhQUFhLENBR3BCLHlCQUF5QjtFQUgxQiw0QkFBUSxBQUFBLGFBQWEsQ0FJcEIsOEJBQThCO0VBSi9CLDRCQUFRLEFBQUEsYUFBYSxDQUtwQiwrQkFBK0IsQ0FBQztJQUM5QixPQUFPLEVBQUUsSUFBSSxHQUNkOztBOUJuVkgsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0U4QnJKekIsQUFBRCwyQkFBUSxDQStlSTtJQUFFLE9BQU8sRUFqakJnQixJQUFJLENBQUosSUFBSSxDQWlqQmtELENBQUMsR0FBSTtFQW5lL0YsQUFBRCwwQkFBTyxDQW9lSztJQUFFLE9BQU8sRUFBRSxJQUFJLENBbGpCVSxJQUFJLENBa2pCcUIsQ0FBQyxHQUFJO0VBN2JsRSxBQUFELDZCQUFVLENBK2JHO0lBQUUsTUFBTSxFQUFFLE9BQXVDLEdBQUk7RUFsSWpFLEFBQUQsMkJBQVEsQ0FtSUk7SUFBRSxPQUFPLEVBQUUsSUFBSSxDQXJqQlUsSUFBSSxDQXFqQnFCLENBQUMsR0FBSTtFQTFIbEUsQUFBRCw2QkFBVSxDQTJIRztJQUFFLE9BQU8sRUFBRSxJQUFJLENBdGpCUyxJQUFJLENBQUosSUFBSSxHQXNqQjJEOztBQ3BqQnRHLEFBQUEsZ0JBQWdCLENBQUM7RUFDZixRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsSUFBSTtFQUNiLGNBQWMsRUFBRSxNQUFNO0VBQ3RCLEtBQUssRUFWaUIsS0FBSztFQWMzQixTQUFTLEVBQUUsa0JBQXFEO0VBQ2hFLFVBQVUsRUFBRSxrQkFBcUQ7RUFDakUsUUFBUSxFQUFFLE1BQU07RUFDaEIsVUFBVSxFQUFFLE9BQU87RUFDbkIsYUFBYSxFQUFFLEdBQUc7RUFDbEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHNCQUFzQjtFQUM3QyxXQUFXLEVBQUUscUJBQXFCLEdBME5uQztFQXhPRCxBQWdCRSxnQkFoQmMsQ0FnQmQsQ0FBQztFQWhCSCxnQkFBZ0IsQ0FpQmQsQ0FBQyxBQUFBLFFBQVE7RUFqQlgsZ0JBQWdCLENBa0JkLENBQUMsQUFBQSxPQUFPLENBQUM7SUFDUCxVQUFVLEVBQUUsVUFBVSxHQUN2QjtFQUVBLEFBQUQsdUJBQVEsQ0FBQztJL0JzTVQsU0FBUyxFQUFFLENBQUM7SUFDWixVQUFVLEVBQUUsQ0FBQztJQUNiLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLGNBQWMsRUFBRSxJQUFJO0krQnhNbEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsR0FBRyxFQUFFLElBQUk7SUFDVCxLQUFLLEVBQUUsSUFBSTtJQUNYLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLE1BQU0sRUFBRSxDQUFDO0lBQ1QsT0FBTyxFQUFFLENBQUM7SUFDVixNQUFNLEVBQUUsQ0FBQztJQUNULGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxXQUFXO0lBQ3ZCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLEtBQUssRWpDZkssT0FBTztJaUNnQmpCLE1BQU0sRUFBRSxPQUFPLEdBTWhCO0lBdkJBLEFBbUJDLHVCQW5CTSxBQW1CTCxNQUFNLENBQUM7TUFDTixVQUFVLEVBQUUsbUJBQW1CO01BQy9CLEtBQUssRWpDcEJHLE9BQU8sR2lDcUJoQjtFQUdGLEFBQUQsdUJBQVEsQ0FBQztJQUNQLFdBQVcsRUFBRSxDQUFDO0lBQ2QsTUFBTSxFQUFFLFVBQVU7SUFDbEIsT0FBTyxFQXZEYyxJQUFJLENBQUosSUFBSSxDQXVEZ0MsQ0FBQztJQUMxRCxXQUFXLEVBQUUsR0FBRztJQUNoQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLEtBQUssRWpDOUJLLE9BQU8sR2lDK0JsQjtFQUVBLEFBQUQsc0JBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxJQUFJO0lBQ2IsY0FBYyxFQUFFLE1BQU07SUFDdEIsR0FBRyxFQUFFLElBQUk7SUFDVCxJQUFJLEVBQUUsUUFBUTtJQUNkLFVBQVUsRUFBRSxDQUFDO0lBQ2IsVUFBVSxFQUFFLElBQUk7SUFDaEIsT0FBTyxFQUFFLElBQUksQ0F2RVEsSUFBSSxHQXdFMUI7RUFFQSxBQUFELHdCQUFTLENBQUM7SUFDUixNQUFNLEVBQUUsQ0FBQztJQUNULFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFakNsREssT0FBTyxHaUN5RGxCO0lBWkEsQUFTQyx3QkFUTyxDQVNQLENBQUMsQ0FBQztNQUNBLFdBQVcsRUFBRSxHQUFHLEdBQ2pCO0VBR0YsQUFBRCx1QkFBUSxDQUFDO0lBQ1AsT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsTUFBTTtJQUN0QixHQUFHLEVBQUUsR0FBRyxHQUNUO0VBRUEsQUFBRCx1QkFBUSxDQUFDO0lBQ1AsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsR0FBRztJQUNSLE1BQU0sRUFBRSxDQUFDO0lBQ1QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsQ0FBQztJQUNqQixjQUFjLEVBQUUsSUFBSTtJQUNwQixLQUFLLEVqQzNFSyxPQUFPLEdpQzRFbEI7RUFFQSxBQUFELDBCQUFXLENBQUM7SUFDVixXQUFXLEVBQUUsR0FBRztJQUNoQixLQUFLLEVqQ2pGSyxPQUFPLEdpQ2tGbEI7RUFFQSxBQUFELHNCQUFPLENBQUM7SUFDTixRQUFRLEVBQUUsUUFBUTtJQUNsQixPQUFPLEVBQUUsV0FBVztJQUNwQixXQUFXLEVBQUUsTUFBTTtJQUNuQixLQUFLLEVqQ25GSyxPQUFPO0lpQ29GakIsTUFBTSxFQUFFLE9BQU8sR0FNaEI7SUFYQSxBQU9DLHNCQVBLLEFBT0osTUFBTSxDQUFDLHlCQUF5QjtJQVBsQyxzQkFBTSxBQVFKLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQztNQUN2QyxPQUFPLEVBQUUsQ0FBQyxHQUNYO0VBR0YsQUFBRCx5QkFBVSxDQUFDO0lBQ1QsUUFBUSxFQUFFLFFBQVE7SUFDbEIsTUFBTSxFQUFFLGdCQUFnQjtJQUN4QixJQUFJLEVBQUUsR0FBRztJQUNULE9BQU8sRUFBRSxFQUFFO0lBQ1gsS0FBSyxFQUFFLEtBQUs7SUFDWixXQUFXLEVBQUUsTUFBTTtJQUNuQixPQUFPLEVBQUUsUUFBUTtJQUNqQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVqQ3hFRyxPQUFPO0lpQ3lFcEIsS0FBSyxFQUFFLE9BQU87SUFDZCxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE9BQU8sRUFBRSxDQUFDO0lBQ1YsY0FBYyxFQUFFLElBQUk7SUFDcEIsVUFBVSxFQUFFLGtCQUFrQixHQVcvQjtJQTVCQSxBQW1CQyx5QkFuQlEsQUFtQlAsT0FBTyxDQUFDO01BQ1AsT0FBTyxFQUFFLEVBQUU7TUFDWCxRQUFRLEVBQUUsUUFBUTtNQUNsQixHQUFHLEVBQUUsSUFBSTtNQUNULElBQUksRUFBRSxHQUFHO01BQ1QsV0FBVyxFQUFFLElBQUk7TUFDakIsTUFBTSxFQUFFLHFCQUFxQjtNQUM3QixnQkFBZ0IsRWpDekZMLE9BQU8sR2lDMEZuQjtFQUdGLEFBQUQsd0JBQVMsQ0FBQztJQUNSLEtBQUssRUFBRSxJQUFJO0lBTVgsTUFBTSxFQUFFLEtBQUs7SUFDYixPQUFPLEVBQUUsU0FBUztJQUNsQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ2pDM0lQLE9BQU87SWlDNElqQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsT0FBTztJQUNuQixVQUFVLEVBQUUsSUFBSTtJQUNoQixLQUFLLEVqQ3pJSyxPQUFPO0lpQzBJakIsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxTQUFTLEVBQUUsSUFBSTtJQUdmLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsTUFBTSxFQUFFLFFBQVEsR0FTakI7SUE3QkEsQUFzQkMsd0JBdEJPLEFBc0JOLE1BQU0sQ0FBQztNQUNOLFlBQVksRWpDaktKLE9BQU8sR2lDa0toQjtJQXhCRixBQTBCQyx3QkExQk8sQUEwQk4sYUFBYSxDQUFDO01BQ2IsS0FBSyxFakNySkcsT0FBTyxHaUNzSmhCO0VBR0YsQUFBRCx5QkFBVSxDQUFDO0lBQ1QsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsUUFBUTtJQUN6QixHQUFHLEVBQUUsSUFBSTtJQUNULFdBQVcsRUFBRSxDQUFDO0lBQ2QsT0FBTyxFQUFFLElBQUksQ0FoTVEsSUFBSSxDQUFKLElBQUksR0FpTTFCO0VBRUEsQUFBRCxxQkFBTSxDQUFDO0kvQjhCUCxTQUFTLEVBQUUsQ0FBQztJQUNaLFVBQVUsRUFBRSxDQUFDO0lBQ2IsVUFBVSxFQUFFLElBQUk7SUFDaEIsY0FBYyxFQUFFLENBQUM7SUFDakIsY0FBYyxFQUFFLElBQUk7SStCaENsQixPQUFPLEVBQUUsV0FBVztJQUNwQixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUd2QixNQUFNLEVBQUUsSUFBSTtJQUdaLE1BQU0sRUFBRSxDQUFDO0lBQ1QsT0FBTyxFQUFFLFNBQVM7SUFDbEIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLElBQUk7SUFDaEIsTUFBTSxFQUFFLE9BQU87SUFDZixXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsY0FBYyxFQUFFLE9BQU87SUFDdkIsV0FBVyxFQUFFLE1BQU0sR0FxQnBCO0lBbkJFLEFBQUQsNEJBQVEsQ0FBQztNQUNQLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDakNqTVQsT0FBTztNaUNrTWYsZ0JBQWdCLEVqQ3BNUixPQUFPO01pQ3FNZixLQUFLLEVqQzdMRyxPQUFPLEdpQ2tNaEI7TUFSQSxBQUtDLDRCQUxNLEFBS0wsTUFBTSxDQUFDO1FBQ04sZ0JBQWdCLEVBOU5NLE9BQU8sR0ErTjlCO0lBR0YsQUFBRCw2QkFBUyxDQUFDO01BQ1IsTUFBTSxFQUFFLENBQUM7TUFDVCxnQkFBZ0IsRWpDeExSLE9BQU87TWlDeUxmLEtBQUssRUFBRSxPQUFPLEdBS2Y7TUFSQSxBQUtDLDZCQUxPLEFBS04sTUFBTSxDQUFDO1FBQ04sZ0JBQWdCLEVBdk9PLE9BQU8sR0F3Ty9COztBL0JuQkgsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0UrQjVEekIsQUFBRCx3QkFBUyxDQXdGZ0I7SUFDdkIsU0FBUyxFQUFFLElBQUksR0FDaEI7O0EvQjNCQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RStCdEt6QixBQUFELHVCQUFRLENBc01HO0lBQ1AsT0FBTyxFQUFFLFdBQVcsR0FDckI7RUE1TEYsQUFBRCxzQkFBTyxDQThMRztJQUNOLE9BQU8sRUFBRSxTQUFTLEdBQ25CO0VBdEVGLEFBQUQseUJBQVUsQ0F3RUc7SUFDVCxPQUFPLEVBQUUsY0FBYyxHQUN4Qjs7QUN0UUwsQUFBQSxVQUFVLEFBQUEscUJBQXFCLENBQUM7RUFDOUIsZ0JBQWdCLEVBQUUsQ0FBQztFQUNuQixZQUFZLEVBQUUsUUFBUTtFQUN0QixhQUFhLEVBQUUsQ0FBQztFQUNoQixRQUFRLEVBQUUsUUFBUTtFQUNsQixJQUFJLEVBQUUsUUFBUTtFQUVkLGdCQUFnQixFQUFFLE9BQU8sR0FDMUI7O0FBU0MsQUFBQSxxQkFBcUIsQ0FKdkIsZ0JBQWdCLENBSVU7RUFDdEIsVUFBVSxFQUFFLFVBQVU7RUFDdEIsV0FBVyxFQUFFLHFCQUFxQjtFQUNsQyxNQUFNLEVBQUUsTUFBTTtFQUdkLFNBQVMsRUFBRSxLQUFLO0VBQ2hCLE9BQU8sRUFBRSxjQUFjO0VBQ3ZCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEtBQUssRUFBRSxJQUFJLEdBT1o7RUFoQkQsQUFXRSxxQkFYbUIsQ0FKdkIsZ0JBQWdCLENBZVosQ0FBQztFQVhILHFCQUFxQixDQUp2QixnQkFBZ0IsQ0FnQlosQ0FBQyxBQUFBLFFBQVE7RUFaWCxxQkFBcUIsQ0FKdkIsZ0JBQWdCLENBaUJaLENBQUMsQUFBQSxPQUFPLENBQUM7SUFDUCxVQUFVLEVBQUUsVUFBVSxHQUN2Qjs7QUFHRixBQUFELHNCQUFPLENBQUM7RUFDTixXQUFXLEVBQUUsTUFBTTtFQUNuQixVQUFVLEVBQUUsSUFBSTtFQUNoQixNQUFNLEVBQUUsQ0FBQztFQUNULEtBQUssRUFBRSxPQUFPO0VBQ2QsTUFBTSxFQUFFLE9BQU87RUFDZixPQUFPLEVBQUUsV0FBVztFQUNwQixXQUFXLEVBQUUscUJBQXFCO0VBQ2xDLFNBQVMsRUFBRSxJQUFJO0VBRWYsVUFBVSxFQUFFLE1BQU07RUFDbEIsV0FBVyxFQUFFLEdBQUc7RUFDaEIsR0FBRyxFQUFFLEdBQUc7RUFDUixjQUFjLEVBQUUsT0FBTztFQUN2QixXQUFXLEVBQUUsSUFBSTtFQUlqQixNQUFNLEVBQUUsUUFBUTtFQUNoQixPQUFPLEVBQUUsQ0FBQztFQUNWLFVBQVUsRUFBRSxLQUFLO0VBQ2pCLGVBQWUsRUFBRSxJQUFJO0VBQ3JCLGNBQWMsRUFBRSxNQUFNLEdBS3ZCO0VBM0JBLEFBd0JDLHNCQXhCSyxBQXdCSixNQUFNLENBQUM7SUFDTixLQUFLLEVBbERvQixPQUFPLEdBbURqQzs7QUFHRixBQUFELDRCQUFhLENBQUM7RUFDWixPQUFPLEVBQUUsS0FBSztFQUNkLFdBQVcsRUFBRSxDQUFDO0VBQ2QsTUFBTSxFQUFFLElBQUk7RUFDWixLQUFLLEVBQUUsSUFBSSxHQUNaOztBQUlBLEFBQUQsNEJBQWEsQ0FBQztFQUNaLE9BQU8sRUFBRSxLQUFLO0VBQ2QsV0FBVyxFQUFFLElBQUk7RUFFakIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsR0FBRyxFQUFFLEdBQUcsR0FDVDs7QUFFQSxBQUFELHVCQUFRLENBQUM7RUFDUCxLQUFLLEVsQ2pESyxPQUFPO0VrQ2tEakIsV0FBVyxFQUFFLHFCQUFxQjtFQUNsQyxTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLGNBQWMsRUFBRSxDQUFDO0VBQ2pCLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLE1BQU0sRUFBRSxRQUFRLEdBQ2pCOztBQUVBLEFBQUQsc0JBQU8sQ0FBQztFQUNOLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDQWpGSCxPQUFPO0VBa0Y1QixPQUFPLEVBQUUsSUFBSTtFQUNiLEdBQUcsRUFBRSxJQUFJO0VBQ1QsYUFBYSxFQUFFLElBQUk7RUFFbkIsU0FBUyxFQUFFLEtBQUssR0FDakI7O0FBRUEsQUFBRCxxQkFBTSxDQUFDO0VBQ0wsVUFBVSxFQUFFLElBQUk7RUFDaEIsTUFBTSxFQUFFLENBQUM7RUFDVCxhQUFhLEVBQUUscUJBQXFCO0VBQ3BDLGFBQWEsRUFBRSxDQUFDO0VBQ2hCLEtBQUssRWxDM0VLLE9BQU87RWtDNEVqQixNQUFNLEVBQUUsT0FBTztFQUNmLFdBQVcsRUFBRSxxQkFBcUI7RUFDbEMsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsR0FBRztFQUNoQixjQUFjLEVBQUUsQ0FBQztFQUNqQixXQUFXLEVBQUUsSUFBSTtFQUNqQixhQUFhLEVBQUUsSUFBSTtFQUluQixTQUFTLEVBQUUsQ0FBQztFQUlaLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxJQUFJO0VBQ3BCLFVBQVUsRUFBRSx5Q0FBeUMsR0FVdEQ7RUFSRSxBQUFELDZCQUFTLENBQUM7SUFDUixtQkFBbUIsRWxDekdYLE9BQU87SWtDMEdmLEtBQUssRWxDMUdHLE9BQU8sR2tDMkdoQjtFQTNCRixBQTZCQyxxQkE3QkksQUE2QkgsTUFBTSxDQUFDO0lBQ04sS0FBSyxFbEM5R0csT0FBTyxHa0MrR2hCOztBQUdGLEFBQUQsdUJBQVEsQ0FBQztFQUNQLFVBQVUsRUFBRSxPQUFPO0VBQ25CLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLEtBQUssRWxDMUZLLE9BQU87RWtDMkZqQixTQUFTLEVBQUUsSUFBSTtFQUNmLGFBQWEsRUFBRSxJQUFJO0VBQ25CLE9BQU8sRUFBRSxTQUFTLEdBQ25COztBQUVBLEFBQUQsdUJBQVEsQ0FBQztFQUNQLFdBQVcsRUFBRSxNQUFNO0VBQ25CLFVBQVUsRUFBRSxPQUFPO0VBQ25CLGFBQWEsRUFBRSxHQUFHO0VBSWxCLE1BQU0sRUFBRSxJQUFJO0VBQ1osVUFBVSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHNCQUFzQjtFQUM3QyxVQUFVLEVBQUUsVUFBVTtFQUN0QixPQUFPLEVBQUUsSUFBSTtFQUNiLGNBQWMsRUFBRSxHQUFHO0VBQ25CLEdBQUcsRUFBRSxJQUFJO0VBQ1QsTUFBTSxFQUFFLElBQUk7RUFDWixlQUFlLEVBQUUsVUFBVTtFQUMzQixJQUFJLEVBQUUsR0FBRztFQUNULFNBQVMsRUFBRSxrQkFBa0I7RUFDN0IsU0FBUyxFQUFFLENBQUM7RUFDWixPQUFPLEVBQUUsZ0JBQWdCO0VBQ3pCLGNBQWMsRUFBRSxJQUFJO0VBQ3BCLFFBQVEsRUFBRSxLQUFLO0VBQ2YsU0FBUyxFQUFFLGdCQUFnQjtFQUMzQixLQUFLLEVBQUUsV0FBVztFQUVsQixPQUFPLEVBQUUsR0FBRyxHQUNiOztBQUVBLEFBQUQsNkJBQWMsQ0FBQztFQUNiLE9BQU8sRUFBRSxLQUFLO0VBQ2QsV0FBVyxFQUFFLENBQUM7RUFDZCxNQUFNLEVBQUUsSUFBSTtFQUNaLFVBQVUsRUFBRSxPQUFPO0VBQ25CLEtBQUssRUFBRSxJQUFJLEdBQ1o7O0FBRUEsQUFBRCwrQkFBZ0IsQ0FBQztFQUNmLEtBQUssRUFBRSxPQUFPO0VBQ2QsSUFBSSxFQUFFLFFBQVE7RUFDZCxXQUFXLEVBQUUsOENBQThDO0VBQzNELFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLEdBQUc7RUFDaEIsY0FBYyxFQUFFLE9BQU87RUFDdkIsV0FBVyxFQUFFLElBQUk7RUFDakIsV0FBVyxFQUFFLE1BQU0sR0FDcEI7O0FBRUEsQUFBRCw2QkFBYyxDQUFDO0VBQ2Isa0JBQWtCLEVBQUUsSUFBSTtFQUN4QixVQUFVLEVBQUUsSUFBSTtFQUNoQixXQUFXLEVBQUUsTUFBTTtFQUNuQixVQUFVLEVBQUUsSUFBSTtFQUNoQixNQUFNLEVBQUUsQ0FBQztFQUNULFVBQVUsRUFBRSxJQUFJO0VBQ2hCLEtBQUssRUFBRSxPQUFPO0VBQ2QsTUFBTSxFQUFFLE9BQU87RUFDZixPQUFPLEVBQUUsV0FBVztFQUNwQixXQUFXLEVBQUUsQ0FBQztFQUNkLE1BQU0sRUFBRSxlQUFlO0VBQ3ZCLGVBQWUsRUFBRSxNQUFNO0VBQ3ZCLGNBQWMsRUFBRSxDQUFDO0VBQ2pCLFdBQVcsRUFBRSxDQUFDO0VBQ2QsTUFBTSxFQUFFLENBQUM7RUFDVCxVQUFVLEVBQUUsWUFBWTtFQUN4QixTQUFTLEVBQUUsWUFBWTtFQUN2QixPQUFPLEVBQUUsQ0FBQztFQUNWLGNBQWMsRUFBRSxJQUFJO0VBQ3BCLEtBQUssRUFBRSxlQUFlLEdBUXZCO0VBNUJBLEFBc0JDLDZCQXRCWSxDQXNCWixHQUFHLENBQUM7SUFDRixPQUFPLEVBQUUsS0FBSztJQUNkLE1BQU0sRUFBRSxJQUFJO0lBQ1osVUFBVSxFQUFFLE9BQU87SUFDbkIsS0FBSyxFQUFFLElBQUksR0FDWjs7QUFHRixBQUFELHVCQUFRLENBQUM7RUFDUCxXQUFXLEVBQUUsTUFBTTtFQUNuQixPQUFPLEVBQUUsSUFBSTtFQUNiLEdBQUcsRUFBRSxJQUFJO0VBQ1QsYUFBYSxFQUFFLElBQUksR0FDcEI7O0FBRUEsQUFBRCx3QkFBUyxDQUFDO0VBQ1IsVUFBVSxFQUFFLE9BQU87RUFDbkIsYUFBYSxFQUFFLEdBQUc7RUFDbEIsV0FBVyxFQUFFLENBQUM7RUFDZCxNQUFNLEVBQUUsSUFBSTtFQUNaLFVBQVUsRUFBRSxLQUFLO0VBQ2pCLEtBQUssRUFBRSxJQUFJLEdBQ1o7O0FBRUEsQUFBRCwrQkFBZ0IsQ0FBQztFQUNmLFdBQVcsRUFBRSxNQUFNO0VBQ25CLE9BQU8sRUFBRSxJQUFJO0VBQ2IsY0FBYyxFQUFFLEdBQUc7RUFDbkIsU0FBUyxFQUFFLElBQUk7RUFDZixHQUFHLEVBQUUsR0FBRztFQUNSLGVBQWUsRUFBRSxVQUFVLEdBQzVCOztBQUVBLEFBQUQsNEJBQWEsQ0FBQztFQUNaLFdBQVcsRUFBRSxNQUFNO0VBQ25CLFVBQVUsRUFBRSxPQUFPO0VBQ25CLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDbEMzTlAsT0FBTztFa0M0TmpCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLEtBQUssRWxDeE5LLE9BQU87RWtDeU5qQixNQUFNLEVBQUUsT0FBTztFQUNmLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLFdBQVcsRUFBRSxxQkFBcUI7RUFDbEMsU0FBUyxFQUFFLElBQUk7RUFDZixVQUFVLEVBQUUsTUFBTTtFQUNsQixXQUFXLEVBQUUsR0FBRztFQUNoQixHQUFHLEVBQUUsR0FBRztFQUVSLE1BQU0sRUFBRSxJQUFJO0VBQ1osZUFBZSxFQUFFLFFBQVE7RUFDekIsY0FBYyxFQUFFLE9BQU87RUFDdkIsV0FBVyxFQUFFLElBQUk7RUFDakIsVUFBVSxFQUFFLElBQUk7RUFDaEIsVUFBVSxFQUFFLElBQUk7RUFDaEIsT0FBTyxFQUFFLENBQUM7RUFDVixPQUFPLEVBQUUsUUFBUTtFQUNqQixVQUFVLEVBQUUsS0FBSztFQUNqQixjQUFjLEVBQUUsSUFBSTtFQUNwQixjQUFjLEVBQUUsTUFBTTtFQUN0QixXQUFXLEVBQUUsTUFBTTtFQUNuQixLQUFLLEVBQUUsS0FBSyxHQVViO0VBcENBLEFBNEJDLDRCQTVCVyxBQTRCVixNQUFNLEFBQUEsSUFBSyxDRnBDQSxTQUFTLEVFb0NFO0lBQ3JCLFlBQVksRUFBRSxPQUFPLEdBQ3RCO0VBOUJGLEFBZ0NDLDRCQWhDVyxBQWdDVixTQUFTLENBQUM7SUFDVCxNQUFNLEVBQUUsT0FBTztJQUNmLE9BQU8sRUFBRSxJQUFJLEdBQ2Q7O0FBR0YsQUFBRCw0QkFBYSxDQUFDO0VBQ1osVUFBVSxFQUFFLElBQUk7RUFDaEIsTUFBTSxFQUFFLENBQUM7RUFDVCxLQUFLLEVsQzlPSyxPQUFPO0VrQytPakIsTUFBTSxFQUFFLE9BQU87RUFDZixXQUFXLEVBQUUsOENBQThDO0VBQzNELFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLEdBQUc7RUFDaEIsY0FBYyxFQUFFLE9BQU87RUFDdkIsV0FBVyxFQUFFLElBQUk7RUFDakIsV0FBVyxFQUFFLElBQUk7RUFDakIsT0FBTyxFQUFFLE9BQU87RUFDaEIsVUFBVSxFQUFFLElBQUk7RUFDaEIsY0FBYyxFQUFFLElBQUk7RUFDcEIsY0FBYyxFQUFFLE1BQU0sR0FDdkI7O0FBRUEsQUFBRCw0QkFBYSxDQUFDO0VBQ1osS0FBSyxFbEM5UUssT0FBTztFa0MrUWpCLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLFNBQVMsRUFBRSxJQUFJO0VBQ2YsTUFBTSxFQUFFLENBQUMsR0FDVjs7QUFFQSxBQUFELDRCQUFhLENBQUM7RUFDWixPQUFPLEVBQUUsSUFBSSxHQUNkOztBQUVBLEFBQUQsc0JBQU8sQ0FBQztFQUNOLFVBQVUsRUFBRSxPQUFPO0VBQ25CLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDQTdTSSxPQUFPO0VBOFM1QixhQUFhLEVBQUUsSUFBSTtFQUVuQixTQUFTLEVBQUUsS0FBSztFQUNoQixPQUFPLEVBQUUsSUFBSSxHQVVkO0VBUkUsQUFBRCw4QkFBUyxDQUFDO0lBQ1IsVUFBVSxFQUFFLElBQUksR0FDakI7RUFHQSxBQUFELGdDQUFXLENBQUM7SUFDVixVQUFVLEVBQUUsS0FBSyxHQUNsQjs7QUFHRixBQUFELHFCQUFNLENBQUM7RUFDTCxPQUFPLEVBQUUsSUFBSTtFQUNiLEdBQUcsRUFBRSxJQUFJO0VBQ1QsYUFBYSxFQUFFLElBQUksR0FTcEI7RUFaQSxBQUtDLHFCQUxJLEFBS0gsV0FBVyxDQUFDO0lBQ1gsYUFBYSxFQUFFLENBQUMsR0FDakI7RUFFQSxBQUFELDJCQUFPLENBQUMsdUJBQXVCLENBQUM7SUFDOUIsSUFBSSxFQUFFLFFBQVEsR0FDZjs7QUFHRixBQUFELHVCQUFRLENBQUM7RUFDUCxPQUFPLEVBQUUsSUFBSTtFQUNiLElBQUksRUFBRSxLQUFLO0VBQ1gsY0FBYyxFQUFFLE1BQU07RUFDdEIsU0FBUyxFQUFFLENBQUMsR0FLYjtFQUhFLEFBQUQsNkJBQU8sQ0FBQztJQUNOLElBQUksRUFBRSxRQUFRLEdBQ2Y7O0FBR0YsQUFBRCw4QkFBZSxDQUFDO0VBQ2QsUUFBUSxFQUFFLFFBQVE7RUFDbEIsS0FBSyxFQUFFLElBQUksR0FZWjtFQVZFLEFBQ0Msb0NBREssQ0FDTCxzQ0FBc0MsQ0FBQztJQUNyQyxZQUFZLEVsQ25WTixPQUFPLEdrQ29WZDtFQUhGLEFBS0Msb0NBTEssQ0FLTCw2QkFBNkIsQ0FBQztJQUM1QixnQkFBZ0IsRUFBRSwyTEFBMkw7SUFDN00sU0FBUyxFQUFFLGdCQUFnQixDQUFDLGNBQWMsR0FDM0M7O0FBSUosQUFBRCxzQ0FBdUIsQ0FBQztFQUN0QixXQUFXLEVBQUUsTUFBTTtFQUNuQixVQUFVLEVBQUUsT0FBTztFQUNuQixNQUFNLEVBQUUsaUJBQWlCO0VBQ3pCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLE1BQU0sRUFBRSxPQUFPO0VBQ2YsT0FBTyxFQUFFLElBQUk7RUFDYixHQUFHLEVBQUUsR0FBRztFQUNSLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLE9BQU8sRUFBRSxpQkFBaUI7RUFDMUIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsVUFBVSxFQUFFLElBQUk7RUFFaEIsY0FBYyxFQUFFLElBQUk7RUFDcEIsVUFBVSxFQUFFLHVCQUF1QjtFQUNuQyxLQUFLLEVBQUUsSUFBSSxHQUNaOztBQUVBLEFBQUQsNEJBQWEsQ0FBQztFQUNaLE9BQU8sRUFBRSxJQUFJO0VBQ2IsSUFBSSxFQUFFLFFBQVE7RUFDZCxTQUFTLEVBQUUsSUFBSTtFQUNmLEdBQUcsRUFBRSxHQUFHO0VBQ1IsU0FBUyxFQUFFLENBQUMsR0FDYjs7QUFFQSxBQUFELDJCQUFZLENBQUM7RUFDWCxXQUFXLEVBQUUsTUFBTTtFQUNuQixVQUFVLEVBQUUsT0FBTztFQUNuQixhQUFhLEVBQUUsSUFBSTtFQUNuQixLQUFLLEVsQzNYSyxPQUFPO0VrQzRYakIsT0FBTyxFQUFFLFdBQVc7RUFHcEIsV0FBVyxFQUFFLHFCQUFxQjtFQUNsQyxTQUFTLEVBQUUsSUFBSTtFQUVmLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLE1BQU0sRUFBRSxJQUFJO0VBQ1osZUFBZSxFQUFFLE1BQU07RUFDdkIsY0FBYyxFQUFFLE1BQU07RUFDdEIsV0FBVyxFQUFFLElBQUk7RUFDakIsT0FBTyxFQUFFLE9BQU87RUFDaEIsVUFBVSxFQUFFLE1BQU07RUFDbEIsV0FBVyxFQUFFLE1BQU0sR0FDcEI7O0FBRUEsQUFBRCxtQ0FBb0IsQ0FBQztFQUNuQixLQUFLLEVsQ3BZSyxPQUFPO0VrQ3FZakIsSUFBSSxFQUFFLFFBQVE7RUFDZCxTQUFTLEVBQUUsSUFBSSxHQUNoQjs7QUFFQSxBQUFELDZCQUFjLENBQUM7RUFDYixnQkFBZ0IsRUFBRSwyTEFBMkw7RUFDN00sbUJBQW1CLEVBQUUsTUFBTTtFQUMzQixpQkFBaUIsRUFBRSxTQUFTO0VBQzVCLE1BQU0sRUFBRSxHQUFHO0VBQ1gsUUFBUSxFQUFFLFFBQVE7RUFDbEIsS0FBSyxFQUFFLElBQUk7RUFDWCxHQUFHLEVBQUUsR0FBRztFQUNSLFNBQVMsRUFBRSxnQkFBZ0I7RUFDM0IsVUFBVSxFQUFFLG9CQUFvQjtFQUNoQyxLQUFLLEVBQUUsSUFBSSxHQUNaOztBQUVBLEFBQUQsZ0NBQWlCLENBQUM7RUFDaEIsVUFBVSxFQUFFLE9BQU87RUFDbkIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBM2FJLE9BQU87RUE0YTVCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLE9BQU8sRUFBRSxJQUFJO0VBQ2IsY0FBYyxFQUFFLE1BQU07RUFDdEIsR0FBRyxFQUFFLEdBQUc7RUFDUixVQUFVLEVBQUUsR0FBRztFQUNmLFVBQVUsRUFBRSxLQUFLO0VBQ2pCLFVBQVUsRUFBRSxJQUFJO0VBRWhCLE9BQU8sRUFBRSxHQUFHO0VBQ1osUUFBUSxFQUFFLE1BQU07RUFDaEIsS0FBSyxFQUFFLElBQUksR0FDWjs7QUFFQSxBQUFELDhCQUFlLENBQUM7RUFDZCxXQUFXLEVBQUUsTUFBTTtFQUNuQixVQUFVLEVBQUUsSUFBSTtFQUNoQixNQUFNLEVBQUUsQ0FBQztFQUNULGFBQWEsRUFBRSxHQUFHO0VBQ2xCLEtBQUssRWxDeGFLLE9BQU87RWtDeWFqQixNQUFNLEVBQUUsT0FBTztFQUNmLE9BQU8sRUFBRSxJQUFJO0VBQ2IsV0FBVyxFQUFFLENBQUM7RUFDZCxXQUFXLEVBQUUscUJBQXFCO0VBQ2xDLFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLEdBQUc7RUFDaEIsR0FBRyxFQUFFLEdBQUc7RUFFUixNQUFNLEVBQUUsSUFBSTtFQUNaLGNBQWMsRUFBRSxNQUFNO0VBQ3RCLE1BQU0sRUFBRSxDQUFDO0VBQ1QsVUFBVSxFQUFFLElBQUk7RUFDaEIsVUFBVSxFQUFFLElBQUk7RUFDaEIsU0FBUyxFQUFFLENBQUM7RUFDWixPQUFPLEVBQUUsUUFBUTtFQUNqQixVQUFVLEVBQUUsSUFBSTtFQUNoQixjQUFjLEVBQUUsSUFBSTtFQUNwQixLQUFLLEVBQUUsSUFBSSxHQWVaO0VBdENBLEFBeUJDLDhCQXpCYSxHQUFkLDhCQUFjLENBeUJQO0lBQ0osV0FBVyxFQUFFLENBQUMsR0FDZjtFQTNCRixBQTZCQyw4QkE3QmEsR0E2QlgsSUFBSSxBQUFBLFdBQVcsQ0FBQztJQUNoQixTQUFTLEVBQUUsQ0FBQztJQUNaLFVBQVUsRUFBRSxJQUFJLEdBQ2pCO0VBaENGLEFBa0NDLDhCQWxDYSxBQWtDWixNQUFNLEVBQ04sd0NBQVUsQ0FBQztJQUNWLFVBQVUsRUFBRSx3QkFBd0IsR0FDckM7O0FBR0YsQUFBRCxnQ0FBaUIsQ0FBQztFQUNoQixNQUFNLEVBQUUsS0FBSyxDQUFDLEtBQUssQ2xDemRULE9BQU87RWtDMGRqQixhQUFhLEVBQUUsR0FBRztFQUNsQixXQUFXLEVBQUUsQ0FBQztFQUNkLE1BQU0sRUFBRSxJQUFJO0VBQ1osUUFBUSxFQUFFLFFBQVE7RUFDbEIsS0FBSyxFQUFFLElBQUksR0FlWjtFQVhFLEFBQUQseUNBQVUsQUFBQSxPQUFPLENBQUM7SUFDaEIsTUFBTSxFQUFFLEtBQUssQ2xDbmVMLE9BQU87SWtDb2VmLFlBQVksRUFBRSxXQUFXO0lBQ3pCLE9BQU8sRUFBRSxFQUFFO0lBQ1gsTUFBTSxFQUFFLEdBQUc7SUFDWCxJQUFJLEVBQUUsR0FBRztJQUNULFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEdBQUcsRUFBRSxHQUFHO0lBQ1IsU0FBUyxFQUFFLGFBQWE7SUFDeEIsS0FBSyxFQUFFLEdBQUcsR0FDWDs7QUFHRixBQUFELHVCQUFRLENBQUM7RUFDUCxLQUFLLEVsQ3RlSyxPQUFPO0VrQ3VlakIsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsR0FBRztFQUNoQixhQUFhLEVBQUUsR0FBRyxHQUNuQjs7QUFFQSxBQUFELHVCQUFRLENBQUM7RUFDUCxVQUFVLEVBQUUsT0FBTztFQUNuQixNQUFNLEVBQUUsaUJBQWlCO0VBQ3pCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLEtBQUssRWxDN2VLLE9BQU87RWtDOGVqQixTQUFTLEVBQUUsSUFBSTtFQUNmLE1BQU0sRUFBRSxJQUFJO0VBQ1osT0FBTyxFQUFFLE1BQU07RUFDZixLQUFLLEVBQUUsSUFBSSxHQTJDWjtFQW5EQSxBaEM5TUQsdUJnQzhNUSxBaEM5TVAsMkJBQTJCLENBQUM7SWdDNk56QixLQUFLLEVsQzdmRyxPQUFPO0lrQzhmZixPQUFPLEVBQUUsQ0FBQyxHaEM5TjBCO0VnQzhNdkMsQWhDN01ELHVCZ0M2TVEsQWhDN01QLGlCQUFpQixDQUFXO0lnQzROekIsS0FBSyxFbEM3ZkcsT0FBTztJa0M4ZmYsT0FBTyxFQUFFLENBQUMsR2hDN04wQjtFZ0M2TXZDLEFoQzVNRCx1QmdDNE1RLEFoQzVNUCxrQkFBa0IsQ0FBVTtJZ0MyTnpCLEtBQUssRWxDN2ZHLE9BQU87SWtDOGZmLE9BQU8sRUFBRSxDQUFDLEdoQzVOMEI7RWdDNE12QyxBaEMzTUQsdUJnQzJNUSxBaEMzTVAsc0JBQXNCLENBQU07SWdDME56QixLQUFLLEVsQzdmRyxPQUFPO0lrQzhmZixPQUFPLEVBQUUsQ0FBQyxHaEMzTjBCO0VnQzJNdkMsQUFtQkMsdUJBbkJNLEFBbUJMLGFBQWEsQ0FBQztJQUNiLEtBQUssRWxDbGdCRyxPQUFPO0lrQ21nQmYsT0FBTyxFQUFFLENBQUMsR0FDWDtFQXRCRixBQXdCQyx1QkF4Qk0sQUF3QkwsTUFBTSxDQUFDO0lBQ04sWUFBWSxFbEMvZ0JKLE9BQU87SWtDZ2hCZixPQUFPLEVBQUUsSUFBSSxHQUNkO0VBM0JGLEFBNkJDLHVCQTdCTSxBQTZCTCxTQUFTLENBQUM7SUFDVCxVQUFVLEVBQUUsT0FBTztJQUNuQixLQUFLLEVsQzNnQkcsT0FBTztJa0M0Z0JmLE1BQU0sRUFBRSxXQUFXLEdBQ3BCO0VBakNGLEFBcUNDLHVCQXJDTSxDQXFDTCxBQUFBLFFBQUMsQUFBQSxFQUFVO0lBQ1YsTUFBTSxFQUFFLE9BQU8sR0FDaEI7RUFFQSxBQUFELGdDQUFVLENBQUM7SUFDVCxZQUFZLEVsQ3JnQkosT0FBTyxHa0NzZ0JoQjtFQUVBLEFBQUQsNkJBQU8sQ0FBQztJQUVOLElBQUksRUFBRSxTQUFTO0lBQ2YsU0FBUyxFQUFFLEtBQUs7SUFDaEIsS0FBSyxFQUFFLEtBQUssR0FDYjs7QUEvaUJMLEFBbWpCRSxnQkFuakJjLENBbWpCZCxLQUFLLEFBQUEsdUJBQXVCO0FBbmpCOUIsZ0JBQWdCLENBb2pCZCxLQUFLLEFBQUEsdUJBQXVCLENBQUEsQUFBQSxJQUFDLENBQUssTUFBTSxBQUFYO0FBcGpCL0IsZ0JBQWdCLENBcWpCZCxLQUFLLEFBQUEsdUJBQXVCLENBQUEsQUFBQSxJQUFDLENBQUssT0FBTyxBQUFaO0FBcmpCL0IsZ0JBQWdCLENBc2pCZCxLQUFLLEFBQUEsdUJBQXVCLENBQUEsQUFBQSxJQUFDLENBQUssUUFBUSxBQUFiO0FBdGpCL0IsZ0JBQWdCLENBdWpCZCxNQUFNLEFBQUEsdUJBQXVCLENBQUM7RUFDNUIsYUFBYSxFQUFFLEdBQUcsR0FDbkI7O0FBempCSCxBQThqQkUsZ0JBOWpCYyxDQThqQmQsS0FBSyxBQUFBLHVCQUF1QixDQUFBLEFBQUEsSUFBQyxDQUFLLE1BQU0sQUFBWDtBQTlqQi9CLGdCQUFnQixDQStqQmQsS0FBSyxBQUFBLHVCQUF1QixDQUFBLEFBQUEsSUFBQyxDQUFLLE9BQU8sQUFBWjtBQS9qQi9CLGdCQUFnQixDQWdrQmQsS0FBSyxBQUFBLHVCQUF1QixDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYixFQUFlO0VBQzFDLE1BQU0sRUFBRSxpQkFBaUI7RUFDekIsT0FBTyxFQUFFLE1BQU0sR0FTaEI7RUEza0JILEFBb2tCSSxnQkFwa0JZLENBOGpCZCxLQUFLLEFBQUEsdUJBQXVCLENBQUEsQUFBQSxJQUFDLENBQUssTUFBTSxBQUFYLENBTTFCLE1BQU07RUFwa0JYLGdCQUFnQixDQStqQmQsS0FBSyxBQUFBLHVCQUF1QixDQUFBLEFBQUEsSUFBQyxDQUFLLE9BQU8sQUFBWixDQUsxQixNQUFNO0VBcGtCWCxnQkFBZ0IsQ0Fna0JkLEtBQUssQUFBQSx1QkFBdUIsQ0FBQSxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWIsQ0FJMUIsTUFBTSxDQUFDO0lBQ04sWUFBWSxFbEM5akJKLE9BQU8sR2tDK2pCaEI7RUF0a0JMLEFBd2tCSSxnQkF4a0JZLENBOGpCZCxLQUFLLEFBQUEsdUJBQXVCLENBQUEsQUFBQSxJQUFDLENBQUssTUFBTSxBQUFYLENBVTFCLGdDQUFnQztFQXhrQnJDLGdCQUFnQixDQStqQmQsS0FBSyxBQUFBLHVCQUF1QixDQUFBLEFBQUEsSUFBQyxDQUFLLE9BQU8sQUFBWixDQVMxQixnQ0FBZ0M7RUF4a0JyQyxnQkFBZ0IsQ0Fna0JkLEtBQUssQUFBQSx1QkFBdUIsQ0FBQSxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWIsQ0FRMUIsZ0NBQWdDLENBQUM7SUFDaEMsWUFBWSxFbEN2aUJKLE9BQU8sR2tDd2lCaEI7O0FBMWtCTCxBQThrQkUsZ0JBOWtCYyxDQThrQmQsS0FBSyxBQUFBLHVCQUF1QixDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYixFQUFlO0VBQzFDLGVBQWUsRUFBRSxTQUFTO0VBQzFCLFVBQVUsRUFBRSxTQUFTLEdBT3RCO0VBdmxCSCxBQWtsQkksZ0JBbGxCWSxDQThrQmQsS0FBSyxBQUFBLHVCQUF1QixDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYixDQUkxQiwyQkFBMkIsRUFsbEJoQyxnQkFBZ0IsQ0E4a0JkLEtBQUssQUFBQSx1QkFBdUIsQ0FBQSxBQUFBLElBQUMsQ0FBSyxRQUFRLEFBQWIsQ0FLMUIsMkJBQTJCLENBQUM7SUFDM0Isa0JBQWtCLEVBQUUsSUFBSTtJQUN4QixNQUFNLEVBQUUsQ0FBQyxHQUNWOztBQUdGLEFBQUQsNkJBQWMsQ0FBQztFQUNiLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEtBQUssRUFBRSxJQUFJLEdBQ1o7O0FBRUEsQUFBRCx3QkFBUyxDQUFDO0VBQ1IsVUFBVSxFQUFFLElBQUk7RUFDaEIsa0JBQWtCLEVBQUUsSUFBSTtFQUN4QixnQkFBZ0IsRUFBRSwyTEFBMkw7RUFDN00sbUJBQW1CLEVBQUUsaUJBQWlCO0VBQ3RDLGlCQUFpQixFQUFFLFNBQVM7RUFDNUIsYUFBYSxFQUFFLElBQUksR0FrQnBCO0VBeEJBLEFBUUMsd0JBUk8sQUFRTixTQUFTLENBQUM7SUFDVCxnQkFBZ0IsRUFBRSxPQUFPO0lBQ3pCLEtBQUssRWxDdmxCRyxPQUFPO0lrQ3dsQmYsTUFBTSxFQUFFLFdBQVcsR0FDcEI7RUFaRixBQWdCQyx3QkFoQk8sQUFnQk4sU0FBUyxDQUFDO0lBQ1QsS0FBSyxFbENobUJHLE9BQU8sR2tDaW1CaEI7RUFsQkYsQUFxQkMsd0JBckJPLENBcUJQLE1BQU0sQ0FBQztJQUNMLEtBQUssRWxDaG1CRyxPQUFPLEdrQ2ltQmhCOztBQUdGLEFBQUQsNEJBQWEsQ0FBQztFQUNaLE9BQU8sRUFBRSxJQUFJO0VBQ2IsU0FBUyxFQUFFLElBQUk7RUFDZixHQUFHLEVBQUUsSUFBSSxHQUNWOztBQUVBLEFBQUQsNEJBQWEsQ0FBQztFQUNaLFdBQVcsRUFBRSxNQUFNO0VBQ25CLE9BQU8sRUFBRSxJQUFJO0VBQ2IsR0FBRyxFQUFFLEdBQUcsR0FDVDs7QUFFQSxBQUFELHNCQUFPLENBQUM7RUFDTixLQUFLLEVsQ3BuQkssT0FBTztFa0NxbkJqQixTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxHQUFHLEdBQ2pCOztBQUlBLEFBQUQsOEJBQWUsQ0FBQztFQUNkLE9BQU8sRUFBRSxJQUFJO0VBQ2IsR0FBRyxFQUFFLEdBQUcsR0FDVDs7QUFFQSxBQUFELHdCQUFTLENBQUM7RUFDUixVQUFVLEVBQUUsT0FBTztFQUNuQixNQUFNLEVBQUUsaUJBQWlCO0VBQ3pCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLEtBQUssRWxDcG9CSyxPQUFPO0VrQ3FvQmpCLE1BQU0sRUFBRSxPQUFPO0VBQ2YsV0FBVyxFQUFFLHFCQUFxQjtFQUNsQyxTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxHQUFHO0VBRWhCLE1BQU0sRUFBRSxJQUFJO0VBQ1osY0FBYyxFQUFFLE9BQU87RUFDdkIsV0FBVyxFQUFFLElBQUk7RUFDakIsVUFBVSxFQUFFLElBQUk7RUFDaEIsVUFBVSxFQUFFLElBQUk7RUFDaEIsU0FBUyxFQUFFLElBQUk7RUFDZixPQUFPLEVBQUUsTUFBTTtFQUNmLGNBQWMsRUFBRSxJQUFJLEdBV3JCO0VBNUJBLEFBbUJDLHdCQW5CTyxBQW1CTixNQUFNLEFBQUEsSUFBSyxDQUFBLGtDQUFrQyxFQUFFO0lBQzlDLFlBQVksRUFBRSxPQUFPLEdBQ3RCO0VBRlcsQUFBTCxrQ0FBdUMsQ0FJbEM7SUFDVixVQUFVLEVBQUUsT0FBTztJQUNuQixZQUFZLEVBN3FCYSxPQUFPO0lBOHFCaEMsS0FBSyxFbEN2cEJHLE9BQU8sR2tDd3BCaEI7O0FBR0YsQUFBRCxpQ0FBa0IsQ0FBQztFQUNqQixPQUFPLEVBQUUsSUFBSTtFQUNiLFNBQVMsRUFBRSxJQUFJO0VBQ2YsR0FBRyxFQUFFLElBQUksR0FDVjs7QUFFQSxBQUFELDZCQUFjLENBQUM7RUFDYixlQUFlLEVBQUUsTUFBTTtFQUN2QixVQUFVLEVBQUUsTUFBTTtFQUNsQixLQUFLLEVBQUUsSUFBSSxHQUNaOztBQUVBLEFBQUQsNkJBQWMsQ0FBQztFQUNiLEtBQUssRWxDMXBCSyxPQUFPO0VrQzJwQmpCLFNBQVMsRUFBRSxJQUFJO0VBQ2YsVUFBVSxFQUFFLEdBQUcsR0FDaEI7O0FBRUEsQUFBRCw0QkFBYSxDQUFDO0VBQ1osS0FBSyxFbENqckJLLE9BQU87RWtDa3JCakIsU0FBUyxFQUFFLElBQUk7RUFDZixVQUFVLEVBQUUsR0FBRyxHQUNoQjs7QUFFQSxBQUFELHlCQUFVLENBQUM7RUFDVCxPQUFPLEVBQUUsSUFBSTtFQUNiLGVBQWUsRUFBRSxRQUFRO0VBRXpCLFNBQVMsRUFBRSxLQUFLO0VBQ2hCLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLFFBQVEsRUFBRSxRQUFRLEdBQ25COztBQUVBLEFBQUQsc0JBQU8sQ0FBQztFQUNOLFVBQVUsRUFBRSxPQUFPO0VBQ25CLE1BQU0sRUFBRSxDQUFDO0VBQ1QsYUFBYSxFQUFFLEdBQUc7RUFDbEIsS0FBSyxFQUFFLE9BQU87RUFDZCxNQUFNLEVBQUUsT0FBTztFQUNmLFdBQVcsRUFBRSw4Q0FBOEM7RUFDM0QsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsR0FBRztFQUNoQixjQUFjLEVBQUUsT0FBTztFQUN2QixXQUFXLEVBQUUsSUFBSTtFQUNqQixTQUFTLEVBQUUsS0FBSztFQUNoQixPQUFPLEVBQUUsU0FBUztFQUNsQixjQUFjLEVBQUUsSUFBSTtFQUNwQixVQUFVLEVBQUUscUJBQXFCLEdBVWxDO0VBeEJBLEFBZ0JDLHNCQWhCSyxBQWdCSixNQUFNLEFBQUEsSUFBSyxDRmpnQkEsU0FBUyxFRWlnQkU7SUFDckIsVUFBVSxFQUFFLE9BQU8sR0FDcEI7RUFsQkYsQUFvQkMsc0JBcEJLLEFBb0JKLFNBQVMsQ0FBQztJQUNULE1BQU0sRUFBRSxPQUFPO0lBQ2YsT0FBTyxFQUFFLEdBQUcsR0FDYjs7QWhDM2hCRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RWdDeE0xQixBQUFBLHFCQUFxQixDQUp2QixnQkFBZ0IsQ0E4dUJZO0lBQ3RCLE9BQU8sRUFBRSxjQUFjLEdBQ3hCO0VBNXFCRixBQUFELHVCQUFRLENBOHFCRztJQUNQLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0VBdGlCRixBQUFELHVCQUFRLENBd2lCRztJQUNQLFdBQVcsRUFBRSxVQUFVO0lBQ3ZCLGNBQWMsRUFBRSxNQUFNLEdBQ3ZCO0VBOWJGLEFBQUQscUJBQU0sQ0FnY0c7SUFDTCxjQUFjLEVBQUUsTUFBTSxHQUN2QjtFQW5OQSxBQUFELDZCQUFPLENBcU5RO0lBQ2IsU0FBUyxFQUFFLEtBQUs7SUFDaEIsS0FBSyxFQUFFLEtBQUssR0FDYjs7QUFNTCxBQUFBLFVBQVUsQUFBQSxJQUFLLEdWMXJCRSxhQUFhLENBQUMsc0JBQXNCLEFBQUEsVUFBVSxFVTByQkUsdUJBQXVCLENBQUM7RUFDdkYsSUFBSSxFQUFFLHFCQUF5QztFQUMvQyxTQUFTLEVBQUUsMEJBQThDLEdBQzFEOztBQUVELEFBQUEsVUFBVSxBQUFBLElBQUssR1Y1V0UsYUFBYSxDQUFDLHNCQUFzQixBQUFBLFVBQVUsQUFBQSxhQUFhLEVVNFdFLHVCQUF1QixDQUFDO0VBQ3BHLElBQUksRUFBRSxvQkFBbUQ7RUFDekQsU0FBUyxFQUFFLHlCQUF3RCxHQUNwRTs7QUFFRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RUFDdEIsQUFBQSx1QkFBdUI7RUFDdkIsVUFBVSxBQUFBLElBQUssR1Z0c0JBLGFBQWEsQ0FBQyxzQkFBc0IsQUFBQSxVQUFVLEVVc3NCSSx1QkFBdUI7RUFDeEYsVUFBVSxBQUFBLElBQUssR1ZwWEEsYUFBYSxDQUFDLHNCQUFzQixBQUFBLFVBQVUsQUFBQSxhQUFhLEVVb1hJLHVCQUF1QixDQUFDO0lBQ3BHLE1BQU0sRUFBRSxJQUFJO0lBQ1osR0FBRyxFQUFFLElBQUk7SUFDVCxJQUFJLEVBQUUsR0FBRztJQUNULFNBQVMsRUFBRSxrQkFBa0IsR0FDOUI7O0FDenlCSCxBQUFBLGdCQUFnQixDQUFDO0VBQ2YsUUFBUSxFQUFFLFFBQVE7RUFDbEIsZ0JBQWdCLEVBQUUsT0FBTztFQUN6QixNQUFNLEVBQUUsS0FBSyxHQWtGZDtFQXJGRCxBQUtFLGdCQUxjLENBS2Qsa0JBQWtCLENBQUM7SUFDakIsZUFBZSxFQUFFLEtBQUs7SUFDdEIscUJBQXFCLEVBQUUsTUFBTTtJQUM3QixxQkFBcUIsRUFBRSxHQUFHO0lBQzFCLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFFBQVEsRUFBRSxRQUFRLEdBdURuQjtJQWpFSCxBQVlJLGdCQVpZLENBS2Qsa0JBQWtCLEFBT2YsWUFBWSxDQUFDO01BQ1osZ0JBQWdCLEVBQUUsNkNBQTZDLEdBV2hFO01BeEJMLEFBZU0sZ0JBZlUsQ0FLZCxrQkFBa0IsQUFPZixZQUFZLENBR1gsZ0JBQWdCLENBQUM7UUFDZixXQUFXLEVBQUUsR0FBRztRQUNoQixLQUFLLEVBQUUsS0FBSyxHQUNiO01BbEJQLEFBb0JNLGdCQXBCVSxDQUtkLGtCQUFrQixBQU9mLFlBQVksQ0FRWCxhQUFhLENBQUM7UUFDWixTQUFTLEVBQUUsSUFBSTtRQUNmLFVBQVUsRUFBRSxJQUFJLEdBQ2pCO0lBdkJQLEFBMEJJLGdCQTFCWSxDQUtkLGtCQUFrQixDQXFCaEIsZ0JBQWdCLENBQUM7TUFDZixRQUFRLEVBQUUsUUFBUTtNQUNsQixHQUFHLEVBQUUsSUFBSTtNQUNULElBQUksRUFBRSxJQUFJO01BQ1YsS0FBSyxFQUFFLEtBQUs7TUFDWixLQUFLLEVBQUUsT0FBTztNQUNkLFdBQVcsRUFBRSxHQUFHO01BQ2hCLFdBQVcsRUFBRSxJQUFJLEdBdUJsQjtNQXhETCxBQW1DTSxnQkFuQ1UsQ0FLZCxrQkFBa0IsQ0FxQmhCLGdCQUFnQixDQVNkLEVBQUUsQ0FBQztRQUNELE1BQU0sRUFBRSxDQUFDO1FBQ1QsT0FBTyxFQUFFLENBQUM7UUFDVixXQUFXLEVBQUUsR0FBRyxHQUNqQjtNQXZDUCxBQXlDTSxnQkF6Q1UsQ0FLZCxrQkFBa0IsQ0FxQmhCLGdCQUFnQixDQWVkLENBQUMsQ0FBQztRQUNBLE1BQU0sRUFBRSxDQUFDO1FBQ1QsT0FBTyxFQUFFLENBQUMsR0FDWDtNQTVDUCxBQThDTSxnQkE5Q1UsQ0FLZCxrQkFBa0IsQ0FxQmhCLGdCQUFnQixDQW9CZCxFQUFFLEVBOUNSLGdCQUFnQixDQUtkLGtCQUFrQixDQXFCaEIsZ0JBQWdCLENBb0JWLFdBQVcsQ0FBQztRQUNkLFNBQVMsRUFBRSxJQUFJO1FBQ2YsY0FBYyxFQUFFLFNBQVMsR0FDMUI7TUFqRFAsQUFtRE0sZ0JBbkRVLENBS2Qsa0JBQWtCLENBcUJoQixnQkFBZ0IsQ0F5QmQsQ0FBQyxFQW5EUCxnQkFBZ0IsQ0FLZCxrQkFBa0IsQ0FxQmhCLGdCQUFnQixDQXlCWCxhQUFhLENBQUM7UUFDZixVQUFVLEVBQUUsR0FBRztRQUNmLFNBQVMsRUFBRSxJQUFJO1FBQ2YsV0FBVyxFQUFFLEdBQUcsR0FDakI7SUF2RFAsQUEwREksZ0JBMURZLENBS2Qsa0JBQWtCLENBcURoQixlQUFlLENBQUM7TUFDZCxRQUFRLEVBQUUsUUFBUTtNQUNsQixNQUFNLEVBQUUsSUFBSTtNQUNaLElBQUksRUFBRSxJQUFJO01BQ1YsS0FBSyxFQUFFLE9BQU87TUFDZCxXQUFXLEVBQUUsR0FBRyxHQUNqQjtFQWhFTCxBQW1FRSxnQkFuRWMsQ0FtRWQsUUFBUSxDQUFDO0lBQ1AsUUFBUSxFQUFFLFFBQVE7SUFDbEIsTUFBTSxFQUFFLENBQUM7SUFDVCxNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxJQUFJLEdBYVo7SUFwRkgsQUF5RUksZ0JBekVZLENBbUVkLFFBQVEsQ0FNTixPQUFPLENBQUM7TUFDTixnQkFBZ0IsRUFBRSxJQUFJO01BQ3RCLGFBQWEsRUFBRSxHQUFHO01BQ2xCLE1BQU0sRUFBRSxHQUFHO01BQ1gsTUFBTSxFQUFFLElBQUk7TUFDWixLQUFLLEVBQUUsSUFBSSxHQUtaO01BbkZMLEFBZ0ZNLGdCQWhGVSxDQW1FZCxRQUFRLENBTU4sT0FBTyxBQU9KLE9BQU8sQ0FBQztRQUNQLGdCQUFnQixFQUFFLE9BQU8sR0FDMUI7O0FBS1AsQUFBQSxpQkFBaUIsQ0FBQztFQUNoQixPQUFPLEVBQUUsSUFBSSxHQXFLZDtFQXBLRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7SUFGM0IsQUFBQSxpQkFBaUIsQ0FBQztNQUdkLE9BQU8sRUFBRSxJQUFJLEdBbUtoQjtFQXRLRCxBQU1FLGlCQU5lLENBTWYsZ0JBQWdCLENBQUM7SUFDZixNQUFNLEVBQUUsS0FBSyxHQXNDZDtJQXJDQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7TUFSNUIsQUFNRSxpQkFOZSxDQU1mLGdCQUFnQixDQUFDO1FBR2IsTUFBTSxFQUFFLElBQUk7UUFDWixhQUFhLEVBQUUsSUFBSTtRQUNuQixjQUFjLEVBQUUsY0FBYyxHQWtDakM7SUE3Q0gsQUFjSSxpQkFkYSxDQU1mLGdCQUFnQixDQVFkLE1BQU0sQ0FBQztNQUNMLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLElBQUksR0FDbEI7SUFqQkwsQUFtQkksaUJBbkJhLENBTWYsZ0JBQWdCLENBYWQsS0FBSyxDQUFDO01BQ0osU0FBUyxFQUFFLElBQUksR0FDaEI7SUFyQkwsQUF1QkksaUJBdkJhLENBTWYsZ0JBQWdCLENBaUJkLFlBQVksQ0FBQztNQUNYLFVBQVUsRUFBRSxJQUFJO01BS2hCLEtBQUssRUFBRSxLQUFLO01BQ1osTUFBTSxFQUFFLE9BQU8sR0FjaEI7TUFuQkMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO1FBekI5QixBQXVCSSxpQkF2QmEsQ0FNZixnQkFBZ0IsQ0FpQmQsWUFBWSxDQUFDO1VBR1QsVUFBVSxFQUFFLEdBQUc7VUFDZixhQUFhLEVBQUUsR0FBRyxHQWlCckI7TUE1Q0wsQUFnQ00saUJBaENXLENBTWYsZ0JBQWdCLENBaUJkLFlBQVksR0FTUixHQUFHLENBQUM7UUFDSixVQUFVLEVBQUUsSUFBSTtRQUNoQixXQUFXLEVBQUUsSUFBSSxHQVNsQjtRQTNDUCxBQW1DUSxpQkFuQ1MsQ0FNZixnQkFBZ0IsQ0FpQmQsWUFBWSxHQVNSLEdBQUcsQUFHRixNQUFNLENBQUM7VUFDTixlQUFlLEVBQUUsU0FBUyxHQUMzQjtRQXJDVCxBQXVDUSxpQkF2Q1MsQ0FNZixnQkFBZ0IsQ0FpQmQsWUFBWSxHQVNSLEdBQUcsR0FPRCxDQUFDLENBQUM7VUFDRixXQUFXLEVBQUUsR0FBRztVQUNoQixXQUFXLEVBQUUsSUFBSSxHQUNsQjtFQTFDVCxBQStDRSxpQkEvQ2UsQ0ErQ2YsaUJBQWlCLENBQUM7SUFDaEIsVUFBVSxFQUFFLElBQUk7SUFDaEIsYUFBYSxFQUFFLElBQUksR0FvSHBCO0lBbkhDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztNQWxENUIsQUErQ0UsaUJBL0NlLENBK0NmLGlCQUFpQixDQUFDO1FBSWQsY0FBYyxFQUFFLE1BQU0sR0FrSHpCO0lBcktILEFBc0RJLGlCQXREYSxDQStDZixpQkFBaUIsQ0FPZixnQkFBZ0IsQ0FBQztNQUNmLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLEdBQUc7TUFDaEIsU0FBUyxFQUFFLEtBQUssR0FRakI7TUFqRUwsQUEyRE0saUJBM0RXLENBK0NmLGlCQUFpQixDQU9mLGdCQUFnQixHQUtaLEdBQUcsQ0FBQztRQUNKLE1BQU0sRUFBRSxJQUFJO1FBQ1osS0FBSyxFQUFFLEtBQUs7UUFDWixVQUFVLEVBQUUsTUFBTTtRQUNsQixjQUFjLEVBQUUsU0FBUyxHQUMxQjtJQWhFUCxBQW1FSSxpQkFuRWEsQ0ErQ2YsaUJBQWlCLENBb0JmLFNBQVMsQ0FBQztNQUNSLFVBQVUsRUFBRSxjQUFjO01BQzFCLGFBQWEsRUFBRSxjQUFjO01BQzdCLFNBQVMsRUFBRSxLQUFLLEdBc0JqQjtNQTVGTCxBQXdFTSxpQkF4RVcsQ0ErQ2YsaUJBQWlCLENBb0JmLFNBQVMsR0FLTCxHQUFHLENBQUM7UUFDSixNQUFNLEVBQUUsSUFBSTtRQUNaLEtBQUssRUFBRSxLQUFLLEdBS2I7UUEvRVAsQUE0RVEsaUJBNUVTLENBK0NmLGlCQUFpQixDQW9CZixTQUFTLEdBS0wsR0FBRyxHQUlELEdBQUcsQ0FBQztVQUNKLFVBQVUsRUFBRSxNQUFNLEdBQ25CO01BOUVULEFBaUZNLGlCQWpGVyxDQStDZixpQkFBaUIsQ0FvQmYsU0FBUyxHQWNMLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDVixXQUFXLEVBQUUsY0FBYyxHQUM1QjtNQW5GUCxBQXFGTSxpQkFyRlcsQ0ErQ2YsaUJBQWlCLENBb0JmLFNBQVMsQ0FrQlAsS0FBSyxDQUFDO1FBQ0osU0FBUyxFQUFFLElBQUksR0FDaEI7TUF2RlAsQUF5Rk0saUJBekZXLENBK0NmLGlCQUFpQixDQW9CZixTQUFTLENBc0JQLE1BQU0sQ0FBQztRQUNMLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0lBM0ZQLEFBOEZJLGlCQTlGYSxDQStDZixpQkFBaUIsQ0ErQ2YsZ0JBQWdCLENBQUM7TUFDZixTQUFTLEVBQUMsSUFBSTtNQUNkLE1BQU0sRUFBRSxNQUFNO01BQ2QsU0FBUyxFQUFFLEtBQUssR0FVakI7TUFUQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7UUFsRzlCLEFBOEZJLGlCQTlGYSxDQStDZixpQkFBaUIsQ0ErQ2YsZ0JBQWdCLENBQUM7VUFLYixTQUFTLEVBQUUsSUFBSTtVQUNmLGFBQWEsRUFBRSxHQUFHLEdBT3JCO01BM0dMLEFBc0dNLGlCQXRHVyxDQStDZixpQkFBaUIsQ0ErQ2YsZ0JBQWdCLENBUWQsTUFBTSxDQUFDO1FBQ0wsV0FBVyxFQUFFLEdBQUc7UUFDaEIsTUFBTSxFQUFFLE1BQU07UUFDZCxjQUFjLEVBQUUsU0FBUyxHQUMxQjtJQTFHUCxBQTZHSSxpQkE3R2EsQ0ErQ2YsaUJBQWlCLENBOERmLGlCQUFpQixDQUFDO01BQ2hCLE1BQU0sRUFBRSxNQUFNO01BQ2QsS0FBSyxFQUFFLEtBQUssR0FhYjtNQVpDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztRQWhIOUIsQUE2R0ksaUJBN0dhLENBK0NmLGlCQUFpQixDQThEZixpQkFBaUIsQ0FBQztVQUlkLEtBQUssRUFBRSxJQUFJLEdBV2Q7TUE1SEwsQUFvSE0saUJBcEhXLENBK0NmLGlCQUFpQixDQThEZixpQkFBaUIsQ0FPZixNQUFNLENBQUM7UUFDTCxLQUFLLEVBQUUsSUFBSSxHQUNaO01BdEhQLEFBd0hNLGlCQXhIVyxDQStDZixpQkFBaUIsQ0E4RGYsaUJBQWlCLENBV2YsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNkLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLFdBQVcsRUFBRSxDQUFDLEdBQ2Y7SUEzSFAsQUE4SEksaUJBOUhhLENBK0NmLGlCQUFpQixDQStFZixpQkFBaUIsQ0FBQztNQUNoQixXQUFXLEVBQUUsSUFBSSxHQXFDbEI7TUFwQ0MsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO1FBaEk5QixBQThISSxpQkE5SGEsQ0ErQ2YsaUJBQWlCLENBK0VmLGlCQUFpQixDQUFDO1VBR2QsV0FBVyxFQUFFLENBQUMsR0FtQ2pCO01BcEtMLEFBcUlNLGlCQXJJVyxDQStDZixpQkFBaUIsQ0ErRWYsaUJBQWlCLENBT2YsWUFBWSxDQUFDO1FBQ1gsU0FBUyxFQUFFLElBQUk7UUFDZixXQUFXLEVBQUUsR0FBRztRQUNoQixTQUFTLEVBQUUsS0FBSyxHQU1qQjtRQTlJUCxBQTBJUSxpQkExSVMsQ0ErQ2YsaUJBQWlCLENBK0VmLGlCQUFpQixDQU9mLFlBQVksR0FLUixHQUFHLENBQUM7VUFDSixNQUFNLEVBQUUsSUFBSTtVQUNaLGNBQWMsRUFBRSxTQUFTLEdBQzFCO01BN0lULEFBZ0pNLGlCQWhKVyxDQStDZixpQkFBaUIsQ0ErRWYsaUJBQWlCLENBa0JmLGdCQUFnQixDQUFDO1FqQ2hLckIsT0FBTyxFQUFFLFlBQVk7UUFDckIsT0FBTyxFQUFFLFdBQVc7UUFDcEIsT0FBTyxFQUFFLElBQUk7UUFYYixzQkFBc0IsRUErQkUsTUFBTTtRQTlCdEIsY0FBYyxFQThCRSxNQUFNO1FpQzRJeEIsVUFBVSxFQUFFLEtBQUs7UUFDakIsU0FBUyxFQUFFLEtBQUs7UUFDaEIsVUFBVSxFQUFFLEtBQUssR0FlbEI7UUFuS1AsQUF3SlEsaUJBeEpTLENBK0NmLGlCQUFpQixDQStFZixpQkFBaUIsQ0FrQmYsZ0JBQWdCLEdBUVosR0FBRyxDQUFDO1VqQ3RNWixZQUFZLEVpQ3VNVSxDQUFDO1VqQ3RNbkIsUUFBUSxFaUNzTVUsQ0FBQztVakNyTWYsSUFBSSxFaUNxTVUsQ0FBQyxHQUNoQjtRQTFKVCxBQTRKUSxpQkE1SlMsQ0ErQ2YsaUJBQWlCLENBK0VmLGlCQUFpQixDQWtCZixnQkFBZ0IsQ0FZZCxjQUFjLENBQUM7VUFDYixNQUFNLEVBQUUsY0FBYztVQUN0QixLQUFLLEVBQUUsSUFBSTtVQUNYLFNBQVMsRUFBRSxJQUFJO1VBQ2YsV0FBVyxFQUFFLEdBQUc7VUFDaEIsS0FBSyxFQUFFLEdBQUcsR0FDWDs7QUFNVCxBQUFBLGtCQUFrQixDQUFDO0VBQ2pCLE9BQU8sRUFBRSxJQUFJLEdBNlJkO0VBOVJELEFBR0Usa0JBSGdCLENBR2hCLGdCQUFnQixDQUFDO0lBQ2YsTUFBTSxFQUFFLEtBQUssR0FxQ2Q7SUFwQ0MsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO01BTDVCLEFBR0Usa0JBSGdCLENBR2hCLGdCQUFnQixDQUFDO1FBR2IsTUFBTSxFQUFFLElBQUk7UUFDWixhQUFhLEVBQUUsSUFBSTtRQUNuQixjQUFjLEVBQUUsY0FBYyxHQWlDakM7SUF6Q0gsQUFVSSxrQkFWYyxDQUdoQixnQkFBZ0IsQ0FPZCxNQUFNLENBQUM7TUFDTCxTQUFTLEVBQUUsSUFBSTtNQUNmLFdBQVcsRUFBRSxJQUFJLEdBQ2xCO0lBYkwsQUFlSSxrQkFmYyxDQUdoQixnQkFBZ0IsQ0FZZCxLQUFLLENBQUM7TUFDSixTQUFTLEVBQUUsSUFBSSxHQUNoQjtJQWpCTCxBQW1CSSxrQkFuQmMsQ0FHaEIsZ0JBQWdCLENBZ0JkLFlBQVksQ0FBQztNQUNYLFVBQVUsRUFBRSxJQUFJO01BS2hCLEtBQUssRUFBRSxLQUFLO01BQ1osTUFBTSxFQUFFLE9BQU8sR0FjaEI7TUFuQkMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO1FBckI5QixBQW1CSSxrQkFuQmMsQ0FHaEIsZ0JBQWdCLENBZ0JkLFlBQVksQ0FBQztVQUdULFVBQVUsRUFBRSxHQUFHO1VBQ2YsYUFBYSxFQUFFLElBQUksR0FpQnRCO01BeENMLEFBNEJNLGtCQTVCWSxDQUdoQixnQkFBZ0IsQ0FnQmQsWUFBWSxHQVNSLEdBQUcsQ0FBQztRQUNKLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLFdBQVcsRUFBRSxJQUFJLEdBU2xCO1FBdkNQLEFBK0JRLGtCQS9CVSxDQUdoQixnQkFBZ0IsQ0FnQmQsWUFBWSxHQVNSLEdBQUcsQUFHRixNQUFNLENBQUM7VUFDTixlQUFlLEVBQUUsU0FBUyxHQUMzQjtRQWpDVCxBQW1DUSxrQkFuQ1UsQ0FHaEIsZ0JBQWdCLENBZ0JkLFlBQVksR0FTUixHQUFHLEdBT0QsQ0FBQyxDQUFDO1VBQ0YsV0FBVyxFQUFFLEdBQUc7VUFDaEIsV0FBVyxFQUFFLElBQUksR0FDbEI7RUF0Q1QsQUEyQ0Usa0JBM0NnQixDQTJDaEIsaUJBQWlCLENBQUM7SUFDaEIsVUFBVSxFQUFFLElBQUk7SUFDaEIsYUFBYSxFQUFFLElBQUksR0FvSHBCO0lBbkhDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztNQTlDNUIsQUEyQ0Usa0JBM0NnQixDQTJDaEIsaUJBQWlCLENBQUM7UUFJZCxjQUFjLEVBQUUsTUFBTSxHQWtIekI7SUFqS0gsQUFrREksa0JBbERjLENBMkNoQixpQkFBaUIsQ0FPZixnQkFBZ0IsQ0FBQztNQUNmLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLEdBQUc7TUFDaEIsU0FBUyxFQUFFLEtBQUssR0FRakI7TUE3REwsQUF1RE0sa0JBdkRZLENBMkNoQixpQkFBaUIsQ0FPZixnQkFBZ0IsR0FLWixHQUFHLENBQUM7UUFDSixVQUFVLEVBQUUsSUFBSTtRQUNoQixTQUFTLEVBQUUsS0FBSztRQUNoQixVQUFVLEVBQUUsTUFBTTtRQUNsQixjQUFjLEVBQUUsU0FBUyxHQUMxQjtJQTVEUCxBQStESSxrQkEvRGMsQ0EyQ2hCLGlCQUFpQixDQW9CZixTQUFTLENBQUM7TUFDUixVQUFVLEVBQUUsY0FBYztNQUMxQixhQUFhLEVBQUUsY0FBYztNQUM3QixTQUFTLEVBQUUsS0FBSyxHQXNCakI7TUF4RkwsQUFvRU0sa0JBcEVZLENBMkNoQixpQkFBaUIsQ0FvQmYsU0FBUyxHQUtMLEdBQUcsQ0FBQztRQUNKLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLFNBQVMsRUFBRSxLQUFLLEdBS2pCO1FBM0VQLEFBd0VRLGtCQXhFVSxDQTJDaEIsaUJBQWlCLENBb0JmLFNBQVMsR0FLTCxHQUFHLEdBSUQsR0FBRyxDQUFDO1VBQ0osVUFBVSxFQUFFLE1BQU0sR0FDbkI7TUExRVQsQUE2RU0sa0JBN0VZLENBMkNoQixpQkFBaUIsQ0FvQmYsU0FBUyxHQWNMLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDVixXQUFXLEVBQUUsY0FBYyxHQUM1QjtNQS9FUCxBQWlGTSxrQkFqRlksQ0EyQ2hCLGlCQUFpQixDQW9CZixTQUFTLENBa0JQLEtBQUssQ0FBQztRQUNKLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO01BbkZQLEFBcUZNLGtCQXJGWSxDQTJDaEIsaUJBQWlCLENBb0JmLFNBQVMsQ0FzQlAsTUFBTSxDQUFDO1FBQ0wsU0FBUyxFQUFFLElBQUksR0FDaEI7SUF2RlAsQUEwRkksa0JBMUZjLENBMkNoQixpQkFBaUIsQ0ErQ2YsZ0JBQWdCLENBQUM7TUFDZixTQUFTLEVBQUMsSUFBSTtNQUNkLE1BQU0sRUFBRSxNQUFNO01BQ2QsU0FBUyxFQUFFLEtBQUssR0FVakI7TUFUQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7UUE5RjlCLEFBMEZJLGtCQTFGYyxDQTJDaEIsaUJBQWlCLENBK0NmLGdCQUFnQixDQUFDO1VBS2IsU0FBUyxFQUFFLElBQUk7VUFDZixhQUFhLEVBQUUsR0FBRyxHQU9yQjtNQXZHTCxBQWtHTSxrQkFsR1ksQ0EyQ2hCLGlCQUFpQixDQStDZixnQkFBZ0IsQ0FRZCxNQUFNLENBQUM7UUFDTCxXQUFXLEVBQUUsR0FBRztRQUNoQixNQUFNLEVBQUUsTUFBTTtRQUNkLGNBQWMsRUFBRSxTQUFTLEdBQzFCO0lBdEdQLEFBeUdJLGtCQXpHYyxDQTJDaEIsaUJBQWlCLENBOERmLGlCQUFpQixDQUFDO01BQ2hCLE1BQU0sRUFBRSxNQUFNO01BQ2QsS0FBSyxFQUFFLEtBQUssR0FhYjtNQVpDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztRQTVHOUIsQUF5R0ksa0JBekdjLENBMkNoQixpQkFBaUIsQ0E4RGYsaUJBQWlCLENBQUM7VUFJZCxLQUFLLEVBQUUsSUFBSSxHQVdkO01BeEhMLEFBZ0hNLGtCQWhIWSxDQTJDaEIsaUJBQWlCLENBOERmLGlCQUFpQixDQU9mLE1BQU0sQ0FBQztRQUNMLEtBQUssRUFBRSxJQUFJLEdBQ1o7TUFsSFAsQUFvSE0sa0JBcEhZLENBMkNoQixpQkFBaUIsQ0E4RGYsaUJBQWlCLENBV2YsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNkLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLFdBQVcsRUFBRSxDQUFDLEdBQ2Y7SUF2SFAsQUEwSEksa0JBMUhjLENBMkNoQixpQkFBaUIsQ0ErRWYsaUJBQWlCLENBQUM7TUFDaEIsV0FBVyxFQUFFLElBQUksR0FxQ2xCO01BcENDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztRQTVIOUIsQUEwSEksa0JBMUhjLENBMkNoQixpQkFBaUIsQ0ErRWYsaUJBQWlCLENBQUM7VUFHZCxXQUFXLEVBQUUsQ0FBQyxHQW1DakI7TUFoS0wsQUFpSU0sa0JBaklZLENBMkNoQixpQkFBaUIsQ0ErRWYsaUJBQWlCLENBT2YsWUFBWSxDQUFDO1FBQ1gsU0FBUyxFQUFFLElBQUk7UUFDZixXQUFXLEVBQUUsR0FBRztRQUNoQixTQUFTLEVBQUUsS0FBSyxHQU1qQjtRQTFJUCxBQXNJUSxrQkF0SVUsQ0EyQ2hCLGlCQUFpQixDQStFZixpQkFBaUIsQ0FPZixZQUFZLEdBS1IsR0FBRyxDQUFDO1VBQ0osTUFBTSxFQUFFLElBQUk7VUFDWixjQUFjLEVBQUUsU0FBUyxHQUMxQjtNQXpJVCxBQTRJTSxrQkE1SVksQ0EyQ2hCLGlCQUFpQixDQStFZixpQkFBaUIsQ0FrQmYsZ0JBQWdCLENBQUM7UWpDcFVyQixPQUFPLEVBQUUsWUFBWTtRQUNyQixPQUFPLEVBQUUsV0FBVztRQUNwQixPQUFPLEVBQUUsSUFBSTtRQVhiLHNCQUFzQixFQStCRSxNQUFNO1FBOUJ0QixjQUFjLEVBOEJFLE1BQU07UWlDZ1R4QixVQUFVLEVBQUUsS0FBSztRQUNqQixTQUFTLEVBQUUsS0FBSztRQUNoQixVQUFVLEVBQUUsS0FBSyxHQWVsQjtRQS9KUCxBQW9KUSxrQkFwSlUsQ0EyQ2hCLGlCQUFpQixDQStFZixpQkFBaUIsQ0FrQmYsZ0JBQWdCLEdBUVosR0FBRyxDQUFDO1VqQzFXWixZQUFZLEVpQzJXVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7VWpDMVcxQixRQUFRLEVpQzBXVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7VWpDeld0QixJQUFJLEVpQ3lXVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FDdkI7UUF0SlQsQUF3SlEsa0JBeEpVLENBMkNoQixpQkFBaUIsQ0ErRWYsaUJBQWlCLENBa0JmLGdCQUFnQixDQVlkLGNBQWMsQ0FBQztVQUNiLE1BQU0sRUFBRSxjQUFjO1VBQ3RCLEtBQUssRUFBRSxJQUFJO1VBQ1gsU0FBUyxFQUFFLElBQUk7VUFDZixXQUFXLEVBQUUsR0FBRztVQUNoQixLQUFLLEVBQUUsR0FBRyxHQUNYO0VBOUpULEFBbUtFLGtCQW5LZ0IsQ0FtS2hCLHdCQUF3QixDQUFDO0lqQ3pYekIsWUFBWSxFaUMwWEksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO0lqQ3pYckIsUUFBUSxFaUN5WEksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO0lqQ3hYakIsSUFBSSxFaUN3WEksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQ3hCO0VBcktILEFBdUtFLGtCQXZLZ0IsQ0F1S2hCLGlCQUFpQixDQUFDO0lqQzdYbEIsWUFBWSxFaUM4WEksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO0lqQzdYckIsUUFBUSxFaUM2WEksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO0lqQzVYakIsSUFBSSxFaUM0WEksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBb0J4QjtJQTVMSCxBQTBLSSxrQkExS2MsQ0F1S2hCLGlCQUFpQixDQUdmLG1CQUFtQixDQUFDO01qQ2xXdEIsT0FBTyxFQUFFLFlBQVk7TUFDckIsT0FBTyxFQUFFLFdBQVc7TUFDcEIsT0FBTyxFQUFFLElBQUk7TUFYYixzQkFBc0IsRUE4Q0UsR0FBRztNQTdDbkIsY0FBYyxFQTZDRSxHQUFHO01BL0IzQix1QkFBdUIsRWlDOFZXLFFBQVE7TWpDN1ZsQyxlQUFlLEVpQzZWVyxRQUFRO01qQ3ZYMUMsbUJBQW1CLEVpQ3dYVyxNQUFNO01qQ3ZYNUIsV0FBVyxFaUN1WFcsTUFBTTtNQUVoQyxVQUFVLEVBQUUsR0FBRyxHQVloQjtNQTNMTCxBQWlMTSxrQkFqTFksQ0F1S2hCLGlCQUFpQixDQUdmLG1CQUFtQixHQU9mLE1BQU0sQ0FBQztRQUNQLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLFVBQVUsRUFBRSxJQUFJLEdBQ2pCO01BcExQLEFBc0xNLGtCQXRMWSxDQXVLaEIsaUJBQWlCLENBR2YsbUJBQW1CLEdBWWYsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLE1BQU0sQUFBWCxFQUFhO1FBQ25CLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLEtBQUssRUFBRSxjQUFjO1FBQ3JCLE1BQU0sRUFBRSxjQUFjLEdBQ3ZCO0VBMUxQLEFBZ01JLGtCQWhNYyxDQThMaEIsWUFBWSxDQUVWLGVBQWUsQ0FBQztJQUNkLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGFBQWEsRUFBRSxJQUFJO0lBQ25CLE1BQU0sRUFBRSxPQUFPLEdBb0NoQjtJQXZPTCxBQXFNTSxrQkFyTVksQ0E4TGhCLFlBQVksQ0FFVixlQUFlLEdBS1gsR0FBRyxDQUFDO01BQ0osU0FBUyxFQUFFLElBQUk7TUFDZixXQUFXLEVBQUUsSUFBSTtNQUNqQixTQUFTLEVBQUUsSUFBSTtNQUNmLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDbEN4Y3pCLE9BQU87TWtDeWNOLFVBQVUsRUFBRSxHQUFHLENBQUMsS0FBSyxDbEN6Y3RCLE9BQU87TWtDMGNOLFVBQVUsRUFBRSxNQUFNO01BQ2xCLGNBQWMsRUFBRSxTQUFTO01BQ3pCLEtBQUssRWxDNWNOLE9BQU8sR2tDcWVQO01BdE9QLEFBK01RLGtCQS9NVSxDQThMaEIsWUFBWSxDQUVWLGVBQWUsR0FLWCxHQUFHLEFBVUYsWUFBWSxDQUFDO1FBQ1osV0FBVyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENsQy9jekIsT0FBTztRa0NnZEosc0JBQXNCLEVBQUUsR0FBRztRQUMzQix5QkFBeUIsRUFBRSxHQUFHLEdBQy9CO01Bbk5ULEFBcU5RLGtCQXJOVSxDQThMaEIsWUFBWSxDQUVWLGVBQWUsR0FLWCxHQUFHLEFBZ0JGLFdBQVcsQ0FBQztRQUNYLFlBQVksRUFBRSxHQUFHLENBQUMsS0FBSyxDbENyZDFCLE9BQU87UWtDc2RKLHVCQUF1QixFQUFFLEdBQUc7UUFDNUIsMEJBQTBCLEVBQUUsR0FBRyxHQUNoQztNQXpOVCxBQTJOUSxrQkEzTlUsQ0E4TGhCLFlBQVksQ0FFVixlQUFlLEdBS1gsR0FBRyxBQXNCRixNQUFNLEFBQUEsSUFBSyxDMUI5YVYsT0FBTyxFMEI4YVk7UUFDbkIsS0FBSyxFQUFFLE9BQU87UUFDZCxNQUFNLEVBQUUsT0FBTztRQUNmLGdCQUFnQixFQUFFLE9BQU8sR0FDMUI7TUEvTlQsQUFpT1Esa0JBak9VLENBOExoQixZQUFZLENBRVYsZUFBZSxHQUtYLEdBQUcsQUE0QkYsT0FBTyxDQUFDO1FBQ1AsS0FBSyxFQUFFLE9BQU87UUFDZCxNQUFNLEVBQUUsT0FBTztRQUNmLGdCQUFnQixFbENuZW5CLE9BQU8sR2tDb2VMO0VBck9ULEFBeU9JLGtCQXpPYyxDQThMaEIsWUFBWSxDQTJDVixLQUFLLENBQUU7SWpDamFULE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBOENFLEdBQUc7SUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztJQXhEM0IsbUJBQW1CLEVpQ3NiVyxNQUFNO0lqQ3JiNUIsV0FBVyxFaUNxYlcsTUFBTTtJQUNoQyxRQUFRLEVBQUUsUUFBUTtJQUNsQixVQUFVLEVBQUUsSUFBSTtJQUNoQixPQUFPLEVBQUUsR0FBRyxHQThDYjtJQTVSTCxBQWdQTSxrQkFoUFksQ0E4TGhCLFlBQVksQ0EyQ1YsS0FBSyxDQU9ILElBQUksQ0FBQztNakN4YVQsT0FBTyxFQUFFLFlBQVk7TUFDckIsT0FBTyxFQUFFLFdBQVc7TUFDcEIsT0FBTyxFQUFFLElBQUk7TUFYYixzQkFBc0IsRUErQkUsTUFBTTtNQTlCdEIsY0FBYyxFQThCRSxNQUFNO01BaEI5Qix1QkFBdUIsRWlDb2FhLE1BQU07TWpDbmFsQyxlQUFlLEVpQ21hYSxNQUFNO01BQ3BDLFNBQVMsRUFBRSxLQUFLO01BQ2hCLFNBQVMsRUFBRSxJQUFJO01BQ2YsY0FBYyxFQUFFLE1BQU07TUFDdEIsV0FBVyxFQUFFLElBQUksR0FDbEI7SUF2UFAsQUF5UE0sa0JBelBZLENBOExoQixZQUFZLENBMkNWLEtBQUssQ0FnQkgsS0FBSyxDQUFFO01qQy9jWCxZQUFZLEVpQ2dkUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TWpDL2N4QixRQUFRLEVpQytjUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TWpDOWNwQixJQUFJLEVpQzhjUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TWpDaGM1QixrQkFBa0IsRWlDaWNhLE9BQU87TWpDaGM5QixVQUFVLEVpQ2djYSxPQUFPO01BQ2hDLE1BQU0sRUFBRSxJQUFJO01BQ1osU0FBUyxFQUFFLElBQUk7TUFDZixjQUFjLEVBQUUsS0FBSyxHQUN0QjtJQS9QUCxBQWlRTSxrQkFqUVksQ0E4TGhCLFlBQVksQ0EyQ1YsS0FBSyxDQXdCSCxNQUFNLENBQUM7TWpDdmZYLGtCQUFrQixFaUN3ZlEsSUFBSTtNakN2ZjNCLGVBQWUsRWlDdWZRLElBQUk7TWpDdGZ0QixVQUFVLEVpQ3NmUSxJQUFJO01qQ3hkOUIsWUFBWSxFaUN5ZFEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO01qQ3hkeEIsUUFBUSxFaUN3ZFEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO01qQ3ZkcEIsSUFBSSxFaUN1ZFEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO01qQ3pjNUIsa0JBQWtCLEVpQzBjYSxPQUFPO01qQ3pjOUIsVUFBVSxFaUN5Y2EsT0FBTztNQUNoQyxNQUFNLEVBQUUsSUFBSTtNQUNaLGFBQWEsRUFBRSxDQUFDO01BQ2hCLE9BQU8sRUFBRSxDQUFDO01BQ1YsU0FBUyxFQUFFLElBQUk7TUFDZixXQUFXLEVBQUUsR0FBRyxHQVVqQjtNQW5SUCxBQTJRUSxrQkEzUVUsQ0E4TGhCLFlBQVksQ0EyQ1YsS0FBSyxDQXdCSCxNQUFNLEFBVUgsTUFBTSxDQUFDO1FBQ04sT0FBTyxFQUFFLENBQUMsR0FDWDtNQTdRVCxBQStRUSxrQkEvUVUsQ0E4TGhCLFlBQVksQ0EyQ1YsS0FBSyxDQXdCSCxNQUFNLEFBY0gsZUFBZSxDQUFDO1FBQ2YsS0FBSyxFQUFFLFdBQVc7UUFDbEIsV0FBVyxFQUFFLFVBQVUsR0FDeEI7SUFsUlQsQUFxUk0sa0JBclJZLENBOExoQixZQUFZLENBMkNWLEtBQUssQ0E0Q0gsTUFBTSxHQUFHLENBQUMsQUFBQSxnQkFBZ0IsQ0FBQztNQUN6QixRQUFRLEVBQUUsUUFBUTtNQUNsQixHQUFHLEVBQUUsSUFBSTtNQUNULEtBQUssRUFBRSxJQUFJO01BQ1gsS0FBSyxFQUFFLE9BQU87TUFDZCxTQUFTLEVBQUUsR0FBRyxHQUNmOztBQ3hoQlAsQUFBQSx5QkFBeUIsQ0FBQztFbEN1Q3hCLFlBQVksRWtDdENFLENBQUM7RWxDdUNYLFFBQVEsRWtDdkNFLENBQUM7RWxDd0NQLElBQUksRWtDeENFLENBQUMsR0FDaEI7O0FBRUQsQUFBQSxvQkFBb0IsQ0FBQztFQUNuQixVQUFVLEVBQUUsSUFBSTtFQUNoQixhQUFhLEVBQUUsZUFBZSxHQUMvQjs7QUFFRCxBQUFBLHVCQUF1QixDQUFDO0VBQ3RCLFVBQVUsRUFBRSxJQUFJLEdBNENqQjtFQTdDRCxBQUVFLHVCQUZxQixHQUVuQixVQUFVLENBQUM7SWxDMERiLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBOENFLEdBQUc7SUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztJQXhEM0IsbUJBQW1CLEVrQ3JDUyxNQUFNO0lsQ3NDMUIsV0FBVyxFa0N0Q1MsTUFBTTtJbEMyR2xDLFVBQVUsRWtDMUdhLElBQUk7SWxDMkczQixVQUFVLEVrQzNHYSxJQUFJO0lsQzRHM0IsTUFBTSxFa0M1R2lCLElBQUk7SUFDekIsYUFBYSxFQUFFLHFCQUFxQjtJQUNwQyxTQUFTLEVBQUUsSUFBSTtJQUNmLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLE9BQU8sR0EwQmhCO0lBbkNILEFBVUksdUJBVm1CLEdBRW5CLFVBQVUsQ0FRVixLQUFLLENBQUM7TUFDSixTQUFTLEVBQUUsSUFBSTtNQUNmLEtBQUssRUFBRSxPQUFPO01BQ2QsY0FBYyxFQUFFLEdBQUc7TUFDbkIsV0FBVyxFQUFFLElBQUk7TUFDakIsV0FBVyxFQUFFLElBQUk7TUFDakIsT0FBTyxFQUFFLFlBQVk7TUFDckIsV0FBVyxFQUFFLElBQUk7TUFDakIsY0FBYyxFQUFFLEdBQUc7TUFDbkIsV0FBVyxFQUFFLEdBQUc7TUFDaEIsT0FBTyxFQUFFLE1BQU07TUFDZixXQUFXLEVBQUUsTUFBTTtNQUNuQixVQUFVLEVBQUUsT0FBTztNQUNuQixLQUFLLEVBQUUsT0FBTztNQUNkLGFBQWEsRUFBRSxHQUFHO01BQ2xCLGNBQWMsRUFBRSxTQUFTLEdBQzFCO0lBMUJMLEFBMkJJLHVCQTNCbUIsR0FFbkIsVUFBVSxBQXlCVCxPQUFPLENBQUM7TUFDUCxZQUFZLEVuQ3ZDWCxPQUFPO01tQ3dDUixLQUFLLEVBQUUsT0FBTztNQUNkLE1BQU0sRUFBRSxPQUFPLEdBQ2hCO0lBL0JMLEFBZ0NJLHVCQWhDbUIsR0FFbkIsVUFBVSxBQThCVCxNQUFNLEFBQUEsSUFBSyxDM0JDTixPQUFPLEUyQkRRO01BQ25CLFlBQVksRW5DNUNYLE9BQU8sR21DNkNUO0VBbENMLEFBb0NFLHVCQXBDcUIsR0FvQ25CLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDeEIsV0FBVyxFQUFFLElBQUksR0FDbEI7RUF0Q0gsQUF1Q0UsdUJBdkNxQixHQXVDbkIsY0FBYyxDQUFDO0lsQ1RqQixZQUFZLEVrQ1VJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJbENUcEIsUUFBUSxFa0NTSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SWxDUmhCLElBQUksRWtDUUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lsQ29CeEIsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0lBL0IzQix1QkFBdUIsRWtDeEJTLFFBQVE7SWxDeUJoQyxlQUFlLEVrQ3pCUyxRQUFRO0lBQ3RDLFVBQVUsRUFBRSxHQUFHLEdBQ2hCOztBQUdILEFBQUEsMkJBQTJCLENBQUM7RWxDakIxQixZQUFZLEVrQ2tCRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7RWxDakJsQixRQUFRLEVrQ2lCRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7RWxDaEJkLElBQUksRWtDZ0JFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtFbENQdEIsbUJBQW1CLEVrQ1FPLFFBQVE7RWxDUDFCLFdBQVcsRWtDT08sUUFBUTtFbENpQmxDLHVCQUF1QixFa0NoQk8sUUFBUTtFbENpQjlCLGVBQWUsRWtDakJPLFFBQVE7RUFDdEMsWUFBWSxFQUFFLEdBQUc7RUFDakIsYUFBYSxFQUFFLEdBQUcsR0FNbkI7RUFYRCxBQU9FLDJCQVB5QixDQU96QixNQUFNLENBQUM7SWxDeURQLFVBQVUsRWtDeERhLElBQUk7SWxDeUQzQixVQUFVLEVrQ3pEYSxJQUFJO0lsQzBEM0IsTUFBTSxFa0MxRGlCLElBQUk7SWxDOEQzQixTQUFTLEVrQzdEYSxLQUFLO0lsQzhEM0IsU0FBUyxFa0M5RGEsS0FBSztJbEMrRDNCLEtBQUssRWtDL0RpQixLQUFLLEdBQzFCOztBQUdILEFBQUEsYUFBYSxDQUFDO0VBQ1osVUFBVSxFQUFFLElBQUk7RUFDaEIsYUFBYSxFQUFFLEdBQUcsR0E4Sm5CO0VBaEtELEFBSUUsYUFKVyxDQUlYLDJCQUEyQixDQUFDO0lBQzFCLGFBQWEsRUFBRSxJQUFJLEdBeUJwQjtJQTlCSCxBQU9JLGFBUFMsQ0FJWCwyQkFBMkIsQ0FHekIsaUJBQWlCLENBQUM7TUFDaEIsU0FBUyxFQUFFLElBQUk7TUFDZixhQUFhLEVBQUUsSUFBSSxHQW9CcEI7TUE3QkwsQUFXTSxhQVhPLENBSVgsMkJBQTJCLENBR3pCLGlCQUFpQixDQUlmLENBQUMsQ0FBQztRbEN6Q04sWUFBWSxFa0MwQ1EsQ0FBQyxDQUFDLElBQUk7UWxDekN0QixRQUFRLEVrQ3lDUSxDQUFDLENBQUMsSUFBSTtRbEN4Q2xCLElBQUksRWtDd0NRLENBQUMsQ0FBQyxJQUFJO1FBQ3BCLEtBQUssRUFBRSxJQUFJO1FBQ1gsVUFBVSxFQUFFLE1BQU0sR0FDbkI7TUFmUCxBQWdCTSxhQWhCTyxDQUlYLDJCQUEyQixDQUd6QixpQkFBaUIsQ0FTZixjQUFjLENBQUM7UWxDOUNuQixZQUFZLEVrQytDUSxDQUFDLENBQUMsSUFBSTtRbEM5Q3RCLFFBQVEsRWtDOENRLENBQUMsQ0FBQyxJQUFJO1FsQzdDbEIsSUFBSSxFa0M2Q1EsQ0FBQyxDQUFDLElBQUk7UUFDcEIsV0FBVyxFQUFFLElBQUksR0FDbEI7TUFuQlAsQUFvQk0sYUFwQk8sQ0FJWCwyQkFBMkIsQ0FHekIsaUJBQWlCLENBYWYsZ0JBQWdCLENBQUM7UWxDbERyQixZQUFZLEVrQ21EUSxDQUFDLENBQUMsS0FBSztRbENsRHZCLFFBQVEsRWtDa0RRLENBQUMsQ0FBQyxLQUFLO1FsQ2pEbkIsSUFBSSxFa0NpRFEsQ0FBQyxDQUFDLEtBQUs7UWxDOEIzQixVQUFVLEVrQzdCaUIsSUFBSTtRbEM4Qi9CLFVBQVUsRWtDOUJpQixJQUFJO1FsQytCL0IsTUFBTSxFa0MvQnFCLElBQUk7UUFDekIsU0FBUyxFQUFFLElBQUk7UUFDZixVQUFVLEVBQUUsTUFBTTtRQUNsQixjQUFjLEVBQUUsU0FBUztRQUN6QixXQUFXLEVBQUUsSUFBSTtRQUNqQixPQUFPLEVBQUUsR0FBRyxHQUNiO0VBNUJQLEFBZ0NFLGFBaENXLENBZ0NYLDJCQUEyQixHQUFHLDJCQUEyQixDQUFDO0lBQ3hELFVBQVUsRUFBRSxJQUFJLEdBQ2pCO0VBbENILEFBb0NFLGFBcENXLENBb0NYLGtCQUFrQixDQUFDO0lBQ2pCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsS0FBSyxFQUFFLE9BQU8sR0E4QmY7SUFwRUgsQUF1Q0ksYUF2Q1MsQ0FvQ1gsa0JBQWtCLENBR2hCLFFBQVEsQ0FBQztNQUNQLE1BQU0sRUFBRSxJQUFJO01BQ1osS0FBSyxFQUFFLElBQUk7TUFDWCxXQUFXLEVBQUUsSUFBSTtNQUNqQixJQUFJLEVBQUUsUUFBUSxHQUNmO0lBNUNMLEFBNkNJLGFBN0NTLENBb0NYLGtCQUFrQixDQVNoQixLQUFLLENBQUM7TWxDM0VSLFlBQVksRWtDNEVNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtNbEMzRXRCLFFBQVEsRWtDMkVNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtNbEMxRWxCLElBQUksRWtDMEVNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQU12QjtNQXBETCxBQStDTSxhQS9DTyxDQW9DWCxrQkFBa0IsQ0FTaEIsS0FBSyxHQUVELElBQUksQ0FBQztRQUNMLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7SUFuRFAsQUFxREksYUFyRFMsQ0FvQ1gsa0JBQWtCLENBaUJoQixPQUFPLENBQUM7TUFDTixZQUFZLEVBQUUsSUFBSTtNQUNsQixTQUFTLEVBQUUsSUFBSTtNQUNmLFdBQVcsRUFBRSxHQUFHO01BQ2hCLEtBQUssRW5DaElKLE9BQU87TW1DaUlSLE1BQU0sRUFBRSxPQUFPLEdBU2hCO01BbkVMLEFBNERNLGFBNURPLENBb0NYLGtCQUFrQixDQWlCaEIsT0FBTyxDQU9MLFVBQVUsQ0FBQztRQUNULFNBQVMsRUFBRSxHQUFHLEdBQ2Y7TUE5RFAsQUErRE0sYUEvRE8sQ0FvQ1gsa0JBQWtCLENBaUJoQixPQUFPLEdBVUgsSUFBSSxDQUFDO1FBQ0wsV0FBVyxFQUFFLEdBQUc7UUFDaEIsY0FBYyxFQUFFLFNBQVMsR0FDMUI7RUFsRVAsQUFzRUUsYUF0RVcsQ0FzRVgsMkJBQTJCLENBQUM7SUFDMUIsVUFBVSxFQUFFLElBQUksR0F3RmpCO0lBL0pILEFBd0VJLGFBeEVTLENBc0VYLDJCQUEyQixHQUV2QixHQUFHLENBQUM7TUFDSixnQkFBZ0IsRUFBRSxPQUFPO01BQ3pCLGFBQWEsRUFBRSxHQUFHO01BQ2xCLE1BQU0sRUFBRSxLQUFLO01BQ2IsVUFBVSxFQUFFLElBQUk7TUFDaEIsS0FBSyxFQUFFLElBQUksR0FZWjtNQXpGTCxBQThFTSxhQTlFTyxDQXNFWCwyQkFBMkIsR0FFdkIsR0FBRyxBQU1GLFlBQVksQ0FBQztRQUNaLE9BQU8sRUFBRSxDQUFDLEdBU1g7UUF4RlAsQUFpRlUsYUFqRkcsQ0FzRVgsMkJBQTJCLEdBRXZCLEdBQUcsQUFNRixZQUFZLENBRVgsaUJBQWlCLENBQ2YsVUFBVSxDQUFDO1VBQ1QsVUFBVSxFQUFFLE1BQU0sR0FDbkI7UUFuRlgsQUFvRlUsYUFwRkcsQ0FzRVgsMkJBQTJCLEdBRXZCLEdBQUcsQUFNRixZQUFZLENBRVgsaUJBQWlCLENBSWYsUUFBUSxDQUFDO1VBQ1AsVUFBVSxFQUFFLE1BQU0sR0FDbkI7SUF0RlgsQUEyRk0sYUEzRk8sQ0FzRVgsMkJBQTJCLEdBb0J2QixHQUFHLEFBQUEsWUFBWSxDQUNmLFdBQVcsQ0FBQyxLQUFLLEFBQUEsWUFBWSxDQUFDO01BQzVCLFVBQVUsRUFBRSxNQUFNLEdBQ25CO0lBN0ZQLEFBZ0dNLGFBaEdPLENBc0VYLDJCQUEyQixHQXlCdkIsR0FBRyxBQUFBLFdBQVcsQ0FDZCxXQUFXLENBQUMsS0FBSyxBQUFBLFdBQVcsQ0FBQztNQUMzQixVQUFVLEVBQUUsTUFBTSxHQUNuQjtJQWxHUCxBQW9HSSxhQXBHUyxDQXNFWCwyQkFBMkIsQ0E4QnpCLGFBQWEsQ0FBQztNQUNaLGFBQWEsRUFBRSxJQUFJO01BQ25CLFdBQVcsRUFBRSxJQUFJO01BQ2pCLFNBQVMsRUFBRSxLQUFLLEdBQ2pCO0lBeEdMLEFBeUdJLGFBekdTLENBc0VYLDJCQUEyQixDQW1DekIsaUJBQWlCLENBQUM7TUFDaEIsVUFBVSxFQUFFLElBQUk7TUFDaEIsU0FBUyxFQUFFLEtBQUs7TUFJaEIsS0FBSyxFQUFFLElBQUksR0ErQ1o7TUFsREMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO1FBNUc5QixBQXlHSSxhQXpHUyxDQXNFWCwyQkFBMkIsQ0FtQ3pCLGlCQUFpQixDQUFDO1VBSWQsU0FBUyxFQUFFLENBQ2IsR0FnREQ7TUE5SkwsQUFnSE0sYUFoSE8sQ0FzRVgsMkJBQTJCLENBbUN6QixpQkFBaUIsQ0FPZixVQUFVLENBQUM7UWxDN0RmLFVBQVUsRWtDOERpQixJQUFJO1FsQzdEL0IsVUFBVSxFa0M2RGlCLElBQUk7UWxDNUQvQixNQUFNLEVrQzREcUIsSUFBSTtRbEN4RC9CLFNBQVMsRWtDeURpQixJQUFJO1FsQ3hEOUIsU0FBUyxFa0N3RGlCLElBQUk7UWxDdkQ5QixLQUFLLEVrQ3VEcUIsSUFBSTtRQUN4QixLQUFLLEVBQUUsSUFBSTtRQUNYLE1BQU0sRUFBRSxPQUFPO1FBQ2YsU0FBUyxFQUFFLElBQUk7UUFDZixVQUFVLEVBQUUsTUFBTSxHQUNuQjtNQXZIUCxBQXdITSxhQXhITyxDQXNFWCwyQkFBMkIsQ0FtQ3pCLGlCQUFpQixDQWVmLFdBQVcsQ0FBQztRbENyRWhCLFVBQVUsRWtDc0VpQixJQUFJO1FsQ3JFL0IsVUFBVSxFa0NxRWlCLElBQUk7UWxDcEUvQixNQUFNLEVrQ29FcUIsSUFBSTtRbENoRS9CLFNBQVMsRWtDaUVpQixJQUFJO1FsQ2hFOUIsU0FBUyxFa0NnRWlCLElBQUk7UWxDL0Q5QixLQUFLLEVrQytEcUIsSUFBSTtRQUN4QixLQUFLLEVBQUUsSUFBSTtRQUNYLFVBQVUsRUFBRSxNQUFNLEdBU25CO1FBcklQLEFBNkhRLGFBN0hLLENBc0VYLDJCQUEyQixDQW1DekIsaUJBQWlCLENBZWYsV0FBVyxDQUtULEtBQUssQ0FBQztVQUNKLEtBQUssRUFBRSxPQUFPO1VBQ2QsU0FBUyxFQUFFLElBQUk7VUFDZixNQUFNLEVBQUUsT0FBTyxHQUloQjtVQXBJVCxBQWlJVSxhQWpJRyxDQXNFWCwyQkFBMkIsQ0FtQ3pCLGlCQUFpQixDQWVmLFdBQVcsQ0FLVCxLQUFLLEFBSUYsTUFBTSxDQUFDO1lBQ04sS0FBSyxFbkN6TVYsT0FBTyxHbUMwTUg7TUFuSVgsQUFzSU0sYUF0SU8sQ0FzRVgsMkJBQTJCLENBbUN6QixpQkFBaUIsQ0E2QmYsS0FBSyxDQUFDO1FsQ3BLVixZQUFZLEVrQ3FLUSxDQUFDO1FsQ3BLakIsUUFBUSxFa0NvS1EsQ0FBQztRbENuS2IsSUFBSSxFa0NtS1EsQ0FBQyxHQWdCaEI7UUF2SlAsQUF3SVEsYUF4SUssQ0FzRVgsMkJBQTJCLENBbUN6QixpQkFBaUIsQ0E2QmYsS0FBSyxDQUVILE1BQU0sQ0FBQztVQUNMLFNBQVMsRUFBRSxJQUFJO1VBQ2YsV0FBVyxFQUFFLEdBQUcsR0FDakI7UUEzSVQsQUE0SVEsYUE1SUssQ0FzRVgsMkJBQTJCLENBbUN6QixpQkFBaUIsQ0E2QmYsS0FBSyxDQU1ILFdBQVcsQ0FBQztVQUNWLEdBQUcsRUFBRSxRQUFRLEdBU2Q7VUF0SlQsQUE4SVUsYUE5SUcsQ0FzRVgsMkJBQTJCLENBbUN6QixpQkFBaUIsQ0E2QmYsS0FBSyxDQU1ILFdBQVcsR0FFUCxHQUFHLENBQUM7WUFDSixVQUFVLEVBQUUsQ0FBQztZQUNiLEtBQUssRUFBRSxJQUFJLEdBS1o7WUFySlgsQUFpSlksYUFqSkMsQ0FzRVgsMkJBQTJCLENBbUN6QixpQkFBaUIsQ0E2QmYsS0FBSyxDQU1ILFdBQVcsR0FFUCxHQUFHLENBR0gsSUFBSSxBQUFBLFlBQVksQ0FBQztjQUNmLFlBQVksRUFBRSxHQUFHO2NBQ2pCLFdBQVcsRUFBRSxHQUFHLEdBQ2pCO01BcEpiLEFBd0pNLGFBeEpPLENBc0VYLDJCQUEyQixDQW1DekIsaUJBQWlCLENBK0NmLFFBQVEsQ0FBQztRbENyR2IsVUFBVSxFa0NzR2lCLElBQUk7UWxDckcvQixVQUFVLEVrQ3FHaUIsSUFBSTtRbENwRy9CLE1BQU0sRWtDb0dxQixJQUFJO1FsQ2hHL0IsU0FBUyxFa0NpR2lCLEtBQUs7UWxDaEcvQixTQUFTLEVrQ2dHaUIsS0FBSztRbEMvRi9CLEtBQUssRWtDK0ZxQixLQUFLO1FBQ3pCLEtBQUssRUFBRSxJQUFJO1FBQ1gsU0FBUyxFQUFFLElBQUksR0FDaEI7O0FBS1AsQUFBQSxvQkFBb0IsQ0FBQztFbEM1Sm5CLHVCQUF1QixFa0M2Sk8sUUFBUTtFbEM1SjlCLGVBQWUsRWtDNEpPLFFBQVE7RUFDdEMsTUFBTSxFQUFFLFNBQVMsR0FDbEI7O0FHMU9ELEFBQUEsV0FBVyxDQUFDO0VBQ1YsU0FBUyxFQUFFLEtBQUs7RUFDaEIsS0FBSyxFQUFFLElBQUksR0FLWjtFQVBELEFBSUUsV0FKUyxHQUlMLE9BQU8sQ0FBQztJQUNWLE1BQU0sRUFBRSxTQUFTLEdBQ2xCOztBQUdILEFBQUEsb0JBQW9CLENBQUM7RUFDbkIsS0FBSyxFQUFFLElBQUksR0FNWjtFQVBELEFBR0Usb0JBSGtCLENBR2xCLG1CQUFtQixDQUFDO0lBQ2xCLGdCQUFnQixFdENYWixPQUFPO0lzQ1lYLE9BQU8sRUFBRSxXQUFXLEdBQ3JCOztBQUdILEFBQUEsbUJBQW1CLENBQUM7RXJDc0dsQixVQUFVLEVxQ3JHVyxLQUFLO0VyQ3NHMUIsVUFBVSxFcUN0R1csS0FBSztFckN1RzFCLE1BQU0sRXFDdkdlLEtBQUs7RUFDMUIsZ0JBQWdCLEVBQUUsT0FBTztFQUN6QixPQUFPLEVBQUUsY0FBYyxHQXdCeEI7RUEzQkQsQUFLRSxtQkFMaUIsQ0FLakIsS0FBSyxDQUFDO0lBQ0osU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsSUFBSTtJQUNqQixVQUFVLEVBQUUsSUFBSSxHQUNqQjtFQVRILEFBV0UsbUJBWGlCLENBV2pCLE9BQU8sQ0FBQztJQUNOLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLElBQUk7SUFDakIsVUFBVSxFQUFFLElBQUksR0FDakI7RUFmSCxBQWlCRSxtQkFqQmlCLENBaUJqQixLQUFLLENBQUM7SUFDSixVQUFVLEVBQUUsR0FBRztJQUNmLFVBQVUsRUFBRSxJQUFJLEdBT2pCO0lBMUJILEFBcUJJLG1CQXJCZSxDQWlCakIsS0FBSyxDQUlILElBQUksQ0FBQztNQUNILFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLEdBQUc7TUFDaEIsY0FBYyxFQUFFLFNBQVMsR0FDMUI7O0FBSUwsQUFDRSxnQkFEYyxDQUNkLElBQUksQ0FBQztFQUNILFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLEdBQUc7RUFDaEIsY0FBYyxFQUFFLFNBQVMsR0FDMUI7O0FBTEgsQUFPRSxnQkFQYyxDQU9kLFdBQVcsQ0FBQztFckNrRVosVUFBVSxFcUNqRWEsSUFBSTtFckNrRTNCLFVBQVUsRXFDbEVhLElBQUk7RXJDbUUzQixNQUFNLEVxQ25FaUIsSUFBSTtFckN1RTNCLFNBQVMsRXFDdEVhLEtBQUs7RXJDdUUzQixTQUFTLEVxQ3ZFYSxLQUFLO0VyQ3dFM0IsS0FBSyxFcUN4RWlCLEtBQUs7RUFDekIsYUFBYSxFQUFFLElBQUksR0E0QnBCO0VBdENILEFBWUksZ0JBWlksQ0FPZCxXQUFXLENBS1QsS0FBSyxDQUFDO0lBQ0osTUFBTSxFQUFFLGNBQWM7SUFDdEIsWUFBWSxFQUFFLElBQUk7SUFDbEIsc0JBQXNCLEVBQUUsR0FBRztJQUMzQix5QkFBeUIsRUFBRSxHQUFHO0lBQzlCLEtBQUssRUFBRSxLQUFLO0lBQ1osTUFBTSxFQUFFLElBQUk7SUFDWixXQUFXLEVBQUUsSUFBSTtJQUNqQixXQUFXLEVBQUUsR0FBRztJQUNoQixPQUFPLEVBQUUsQ0FBQyxHQUNYO0VBdEJMLEFBd0JJLGdCQXhCWSxDQU9kLFdBQVcsQ0FpQlQsV0FBVyxDQUFDO0lyQ0lkLHVCQUF1QixFcUNIVyxNQUFNO0lyQ0loQyxlQUFlLEVxQ0pXLE1BQU07SXJDZ0R4QyxVQUFVLEVxQy9DZSxJQUFJO0lyQ2dEN0IsVUFBVSxFcUNoRGUsSUFBSTtJckNpRDdCLE1BQU0sRXFDakRtQixJQUFJO0lyQ3FEN0IsU0FBUyxFcUNwRGUsSUFBSTtJckNxRDVCLFNBQVMsRXFDckRlLElBQUk7SXJDc0Q1QixLQUFLLEVxQ3REbUIsSUFBSTtJQUN4QixnQkFBZ0IsRXRDN0VmLE9BQU87SXNDOEVSLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDdEM5RWhCLE9BQU87SXNDK0VSLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLHVCQUF1QixFQUFFLEdBQUc7SUFDNUIsMEJBQTBCLEVBQUUsR0FBRyxHQUtoQztJQXJDTCxBQWtDTSxnQkFsQ1UsQ0FPZCxXQUFXLENBaUJULFdBQVcsQ0FVVCxDQUFDLEFBQUEsR0FBRyxDQUFDO01BQ0gsU0FBUyxFQUFFLElBQUksR0FDaEI7O0FBcENQLEFBeUNJLGdCQXpDWSxDQXdDZCxjQUFjLENBQ1osV0FBVyxDQUFDO0VBQ1YsZ0JBQWdCLEV0Q3JGVCxPQUFPO0VzQ3NGZCxNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3RDdEZWLE9BQU8sR3NDdUZmOztBQU9MLEFBQUEsVUFBVSxDQUFDO0VyQ3NCVCxVQUFVLEVxQ3JCVyxJQUFJO0VyQ3NCekIsVUFBVSxFcUN0QlcsSUFBSTtFckN1QnpCLE1BQU0sRXFDdkJlLElBQUk7RUFDekIsZ0JBQWdCLEVBQUUsT0FBTztFQUN6QixPQUFPLEVBQUUsU0FBUyxHQXFCbkI7RUF4QkQsQUFLRSxVQUxRLENBS1IsVUFBVSxDQUFDO0lBQ1QsU0FBUyxFQUFFLElBQUk7SUFDZixZQUFZLEVBQUUsSUFBSTtJQUNsQixVQUFVLEVBQUUsSUFBSSxHQVNqQjtJQWpCSCxBQVVJLFVBVk0sQ0FLUixVQUFVLEFBS1AsT0FBTyxDQUFDO01BQ1AsYUFBYSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEN0Qy9HdkIsT0FBTyxHc0NnSFQ7SUFaTCxBQWNJLFVBZE0sQ0FLUixVQUFVLEFBU1AsTUFBTSxBQUFBLElBQUssQzlCdEVOLE9BQU8sRThCc0VRO01BQ25CLE1BQU0sRUFBRSxPQUFPLEdBQ2hCO0VBaEJMLEFBbUJFLFVBbkJRLENBbUJSLFVBQVUsQ0FBQztJckM5RVgsWUFBWSxFcUMrRUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO0lyQzlFbEIsUUFBUSxFcUM4RUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO0lyQzdFZCxJQUFJLEVxQzZFSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7SXJDakR0QixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQThDRSxHQUFHO0lBN0NuQixjQUFjLEVBNkNFLEdBQUc7SUEvQjNCLHVCQUF1QixFcUM2Q1MsUUFBUTtJckM1Q2hDLGVBQWUsRXFDNENTLFFBQVEsR0FDdkM7O0FBR0gsQUFBQSxTQUFTLENBQUM7RXJDSlIsVUFBVSxFcUNLVyxJQUFJO0VyQ0p6QixVQUFVLEVxQ0lXLElBQUk7RXJDSHpCLE1BQU0sRXFDR2UsSUFBSTtFQUN6QixNQUFNLEVBQUUsTUFBTSxHQW1DZjtFQXJDRCxBQUlFLFNBSk8sQ0FJUCxTQUFTLENBQUM7SXJDckRWLHVCQUF1QixFcUNzRFMsTUFBTTtJckNyRDlCLGVBQWUsRXFDcURTLE1BQU07SUFDcEMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEN0Q3BJbEIsT0FBTztJc0NxSVYsYUFBYSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEN0Q3JJckIsT0FBTztJc0NzSVYsS0FBSyxFdEN0SUYsT0FBTztJc0N1SVYsU0FBUyxFQUFFLElBQUk7SUFDZixVQUFVLEVBQUUsSUFBSTtJQUNoQixTQUFTLEVBQUUsSUFBSTtJQUNmLGNBQWMsRUFBRSxTQUFTLEdBd0IxQjtJQXBDSCxBQWNJLFNBZEssQ0FJUCxTQUFTLEFBVU4sT0FBTyxDQUFDO01BQ1AsZ0JBQWdCLEV0QzdJZixPQUFPO01zQzhJUixLQUFLLEVBQUUsT0FBTyxHQUNmO0lBakJMLEFBbUJJLFNBbkJLLENBSVAsU0FBUyxBQWVOLE1BQU0sQUFBQSxJQUFLLEM5QnJHTixPQUFPLEU4QnFHUTtNQUNuQixnQkFBZ0IsRUFBRSx1QkFBdUI7TUFDekMsS0FBSyxFdEMvSUgsT0FBTztNc0NnSlQsTUFBTSxFQUFFLE9BQU8sR0FDaEI7SUF2QkwsQUF5QkksU0F6QkssQ0FJUCxTQUFTLEFBcUJOLFlBQVksQ0FBQztNQUNaLFdBQVcsRUFBRSxHQUFHLENBQUMsS0FBSyxDdEN4SnJCLE9BQU87TXNDeUpSLHNCQUFzQixFQUFFLEdBQUc7TUFDM0IseUJBQXlCLEVBQUUsR0FBRyxHQUMvQjtJQTdCTCxBQStCSSxTQS9CSyxDQUlQLFNBQVMsQUEyQk4sV0FBVyxDQUFDO01BQ1gsWUFBWSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEN0QzlKdEIsT0FBTztNc0MrSlIsdUJBQXVCLEVBQUUsR0FBRztNQUM1QiwwQkFBMEIsRUFBRSxHQUFHLEdBQ2hDOztBQUlMLEFBRUUsa0JBRmdCLENBRWhCLFNBQVMsQ0FBQztFQUNSLGdCQUFnQixFQUFFLElBQUk7RUFDdEIsYUFBYSxFQUFFLEdBQUcsR0FhbkI7RUFqQkgsQUFNSSxrQkFOYyxDQUVoQixTQUFTLENBSVAsVUFBVSxDQUFDO0lyQ2pEYixVQUFVLEVxQ2tEZSxJQUFJO0lyQ2pEN0IsVUFBVSxFcUNpRGUsSUFBSTtJckNoRDdCLE1BQU0sRXFDZ0RtQixJQUFJO0lyQzVDN0IsU0FBUyxFcUM2Q2UsSUFBSTtJckM1QzVCLFNBQVMsRXFDNENlLElBQUk7SXJDM0M1QixLQUFLLEVxQzJDbUIsSUFBSTtJQUN4QixNQUFNLEVBQUUsSUFBSTtJQUNaLFNBQVMsRUFBRSxJQUFJO0lBQ2YsVUFBVSxFQUFFLE1BQU0sR0FDbkI7RUFaTCxBQWNJLGtCQWRjLENBRWhCLFNBQVMsQ0FZUCxLQUFLLENBQUM7SUFDSixjQUFjLEVBQUUsU0FBUyxHQUMxQjs7QUFoQkwsQUFtQkUsa0JBbkJnQixDQW1CaEIsU0FBUyxHQUFHLFNBQVMsQ0FBQztFQUNwQixXQUFXLEVBQUUsSUFBSSxHQUNsQjs7QUFHSCxBQUFBLGdCQUFnQixDQUFDO0VyQ25FZixVQUFVLEVxQ29FVyxJQUFJO0VyQ25FekIsVUFBVSxFcUNtRVcsSUFBSTtFckNsRXpCLE1BQU0sRXFDa0VlLElBQUksR0F1QzFCO0VBeENELEFBR0UsZ0JBSGMsQUFHYixZQUFZLENBQUM7SUFDWixnQkFBZ0IsRUFBRSxJQUFJO0lBQ3RCLE1BQU0sRUFBRSxjQUFjO0lBQ3RCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLE9BQU8sRUFBRSxJQUFJLEdBUWQ7SUFmSCxBQVNJLGdCQVRZLEFBR2IsWUFBWSxDQU1YLGlCQUFpQixDQUFDO01BQ2hCLE9BQU8sRUFBRSxJQUFJLEdBQ2Q7SUFYTCxBQVlJLGdCQVpZLEFBR2IsWUFBWSxDQVNYLEtBQUssR0FBRyxDQUFDLENBQUM7TUFDUixPQUFPLEVBQUUsSUFBSSxHQUNkO0VBZEwsQUFpQkUsZ0JBakJjLENBaUJkLEtBQUssQ0FBQztJckNyS04sWUFBWSxFcUNzS0ksQ0FBQztJckNyS2IsUUFBUSxFcUNxS0ksQ0FBQztJckNwS1QsSUFBSSxFcUNvS0ksQ0FBQztJQUNmLFNBQVMsRUFBRSxJQUFJLEdBS2hCO0lBeEJILEFBcUJJLGdCQXJCWSxDQWlCZCxLQUFLLENBSUgsSUFBSSxDQUFDO01BQ0gsWUFBWSxFQUFFLEdBQUcsR0FDbEI7RUF2QkwsQUEwQkUsZ0JBMUJjLENBMEJkLE9BQU8sQ0FBQztJckMxSVIsdUJBQXVCLEVxQzJJUyxNQUFNO0lyQzFJOUIsZUFBZSxFcUMwSVMsTUFBTTtJckN4RnRDLFNBQVMsRXFDeUZhLEtBQUs7SXJDeEYzQixTQUFTLEVxQ3dGYSxLQUFLO0lyQ3ZGM0IsS0FBSyxFcUN1RmlCLEtBQUs7SUFDekIsU0FBUyxFQUFFLElBQUksR0FVaEI7SUF2Q0gsQUErQkksZ0JBL0JZLENBMEJkLE9BQU8sQ0FLTCxJQUFJLENBQUM7TUFDSCxZQUFZLEVBQUUsR0FBRztNQUNqQixjQUFjLEVBQUUsU0FBUyxHQUMxQjtJQWxDTCxBQW9DSSxnQkFwQ1ksQ0EwQmQsT0FBTyxDQVVMLENBQUMsQUFBQSxHQUFHLENBQUM7TUFDSCxTQUFTLEVBQUUsSUFBSSxHQUNoQjs7QUFJTCxBQUVFLDRCQUYwQixHQUV0QixHQUFHLENBQUM7RXJDNUpSLHVCQUF1QixFcUM2SlMsTUFBTTtFckM1SjlCLGVBQWUsRXFDNEpTLE1BQU07RUFDcEMsTUFBTSxFQUFFLGVBQWU7RUFDdkIsYUFBYSxFQUFFLEdBQUc7RUFDbEIsTUFBTSxFQUFFLEdBQUc7RUFDWCxLQUFLLEVBQUUsSUFBSSxHQVFaO0VBZkgsQUFTSSw0QkFUd0IsR0FFdEIsR0FBRyxDQU9MLElBQUksQUFBQSxLQUFLLENBQUM7SUFDUixLQUFLLEVBQUUsSUFBSTtJQUNYLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsY0FBYyxFQUFFLFNBQVMsR0FDMUI7O0FBSUwsQUFBQSwyQkFBMkIsQ0FBQztFQUMxQixVQUFVLEVBQUUsSUFBSSxHQXFGakI7RUF0RkQsQUFHRSwyQkFIeUIsR0FHckIsR0FBRyxDQUFDO0lBQ04sZ0JBQWdCLEVBQUUsT0FBTztJQUN6QixhQUFhLEVBQUUsR0FBRztJQUNsQixNQUFNLEVBQUUsR0FBRztJQUNYLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLEtBQUssRUFBRSxJQUFJLEdBYVo7SUFyQkgsQUFVSSwyQkFWdUIsR0FHckIsR0FBRyxBQU9KLFlBQVksQ0FBQztNQUNaLE9BQU8sRUFBRSxDQUFDLEdBU1g7TUFwQkwsQUFhUSwyQkFibUIsR0FHckIsR0FBRyxBQU9KLFlBQVksQ0FFWCxpQkFBaUIsQ0FDZixVQUFVLENBQUM7UUFDVCxVQUFVLEVBQUUsTUFBTSxHQUNuQjtNQWZULEFBZ0JRLDJCQWhCbUIsR0FHckIsR0FBRyxBQU9KLFlBQVksQ0FFWCxpQkFBaUIsQ0FJZixRQUFRLENBQUM7UUFDUCxVQUFVLEVBQUUsTUFBTSxHQUNuQjtFQWxCVCxBQXVCRSwyQkF2QnlCLENBdUJ6QixhQUFhLENBQUM7SXJDbk1kLHVCQUF1QixFcUNvTVMsTUFBTTtJckNuTTlCLGVBQWUsRXFDbU1TLE1BQU07SUFDcEMsS0FBSyxFQUFFLElBQUk7SUFDWCxTQUFTLEVBQUUsSUFBSTtJQUNmLE1BQU0sRUFBRSxrQkFBa0I7SUFDMUIsZ0JBQWdCLEVBQUUsT0FBTyxHQVMxQjtJQXJDSCxBQThCSSwyQkE5QnVCLENBdUJ6QixhQUFhLENBT1gsSUFBSSxDQUFDO01BQ0gsV0FBVyxFQUFFLEdBQUc7TUFDaEIsY0FBYyxFQUFFLEdBQUc7TUFDbkIsU0FBUyxFQUFFLElBQUk7TUFDZixLQUFLLEVBQUUsT0FBTztNQUNkLGNBQWMsRUFBRSxTQUFTLEdBQzFCO0VBcENMLEFBdUNFLDJCQXZDeUIsQ0F1Q3pCLGFBQWEsQ0FBQztJQUNaLGFBQWEsRUFBRSxJQUFJO0lBQ25CLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFNBQVMsRUFBRSxLQUFLLEdBQ2pCO0VBM0NILEFBNkNFLDJCQTdDeUIsQ0E2Q3pCLGlCQUFpQixDQUFDO0lBQ2hCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLEtBQUssRUFBRSxJQUFJLEdBcUNaO0lBcENDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztNQWpENUIsQUE2Q0UsMkJBN0N5QixDQTZDekIsaUJBQWlCLENBQUM7UUFLZCxTQUFTLEVBQUUsQ0FDYixHQWtDRDtJQXJGSCxBQXFESSwyQkFyRHVCLENBNkN6QixpQkFBaUIsQ0FRZixVQUFVLENBQUM7TXJDcExiLFVBQVUsRXFDcUxlLElBQUk7TXJDcEw3QixVQUFVLEVxQ29MZSxJQUFJO01yQ25MN0IsTUFBTSxFcUNtTG1CLElBQUk7TXJDL0s3QixTQUFTLEVxQ2dMZSxJQUFJO01yQy9LNUIsU0FBUyxFcUMrS2UsSUFBSTtNckM5SzVCLEtBQUssRXFDOEttQixJQUFJO01BQ3hCLEtBQUssRUFBRSxJQUFJO01BQ1gsTUFBTSxFQUFFLE9BQU87TUFDZixTQUFTLEVBQUUsSUFBSTtNQUNmLFVBQVUsRUFBRSxNQUFNLEdBQ25CO0lBNURMLEFBOERJLDJCQTlEdUIsQ0E2Q3pCLGlCQUFpQixDQWlCZixLQUFLLENBQUM7TXJDOVFSLFlBQVksRXFDK1FNLENBQUM7TXJDOVFmLFFBQVEsRXFDOFFNLENBQUM7TXJDN1FYLElBQUksRXFDNlFNLENBQUMsR0FnQmhCO01BL0VMLEFBaUVNLDJCQWpFcUIsQ0E2Q3pCLGlCQUFpQixDQWlCZixLQUFLLENBR0gsTUFBTSxDQUFDO1FBQ0wsU0FBUyxFQUFFLElBQUk7UUFDZixXQUFXLEVBQUUsR0FBRyxHQUNqQjtNQXBFUCxBQXNFTSwyQkF0RXFCLENBNkN6QixpQkFBaUIsQ0FpQmYsS0FBSyxDQVFILFdBQVcsQ0FBQztRQUNWLEdBQUcsRUFBRSxRQUFRLEdBT2Q7UUE5RVAsQUF5RVUsMkJBekVpQixDQTZDekIsaUJBQWlCLENBaUJmLEtBQUssQ0FRSCxXQUFXLEdBRVAsR0FBRyxDQUNILElBQUksQUFBQSxZQUFZLENBQUM7VUFDZixZQUFZLEVBQUUsR0FBRztVQUNqQixXQUFXLEVBQUUsR0FBRyxHQUNqQjtJQTVFWCxBQWlGSSwyQkFqRnVCLENBNkN6QixpQkFBaUIsQ0FvQ2YsUUFBUSxDQUFDO01BQ1AsS0FBSyxFQUFFLElBQUk7TUFDWCxTQUFTLEVBQUUsSUFBSSxHQUNoQjs7QUFJTCxBQUFBLHNCQUFzQixDQUFDO0VyQzFRckIsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFYYixzQkFBc0IsRUErQkUsTUFBTTtFQTlCdEIsY0FBYyxFQThCRSxNQUFNO0VBekM5QixtQkFBbUIsRXFDK1JPLE1BQU07RXJDOVJ4QixXQUFXLEVxQzhSTyxNQUFNO0VyQ3RRaEMsdUJBQXVCLEVxQ3VRTyxNQUFNO0VyQ3RRNUIsZUFBZSxFcUNzUU8sTUFBTTtFQUVwQyxRQUFRLEVBQUUsUUFBUTtFQUNsQixHQUFHLEVBQUUsQ0FBQztFQUNOLElBQUksRUFBRSxDQUFDO0VBQ1AsS0FBSyxFQUFFLENBQUM7RUFDUixNQUFNLEVBQUUsQ0FBQztFQUNULE9BQU8sRUFBRSxDQUFDO0VBRVYsZ0JBQWdCLEVBQUUsT0FBTztFQUN6QixnQkFBZ0IsRUFBRSx3QkFBdUI7RUFDekMsYUFBYSxFQUFFLEdBQUc7RUFDbEIsS0FBSyxFQUFFLElBQUk7RUFDWCxTQUFTLEVBQUUsSUFBSSxHQVNoQjtFQXpCRCxBQWtCRSxzQkFsQm9CLEdBa0JsQixJQUFJLENBQUM7SUFDTCxVQUFVLEVBQUUsTUFBTSxHQUNuQjtFQXBCSCxBQXNCRSxzQkF0Qm9CLEFBc0JuQixPQUFPLENBQUM7SUFDUCxPQUFPLEVBQUUsSUFBSSxHQUNkOztBQUdILEFBQUEscUJBQXFCLENBQUM7RXJDclNwQixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQStCRSxNQUFNO0VBOUJ0QixjQUFjLEVBOEJFLE1BQU07RUF6QzlCLG1CQUFtQixFcUMwVE8sTUFBTTtFckN6VHhCLFdBQVcsRXFDeVRPLE1BQU07RXJDalNoQyx1QkFBdUIsRXFDa1NPLE1BQU07RXJDalM1QixlQUFlLEVxQ2lTTyxNQUFNO0VBRXBDLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxDQUFDO0VBQ04sSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsQ0FBQztFQUNSLE1BQU0sRUFBRSxDQUFDO0VBQ1QsT0FBTyxFQUFFLENBQUM7RUFFVixnQkFBZ0IsRUFBRSxPQUFPO0VBQ3pCLGdCQUFnQixFQUFFLHdCQUF1QjtFQUN6QyxhQUFhLEVBQUUsR0FBRztFQUNsQixLQUFLLEVBQUUsSUFBSTtFQUNYLFNBQVMsRUFBRSxJQUFJLEdBU2hCO0VBekJELEFBa0JFLHFCQWxCbUIsR0FrQmpCLElBQUksQ0FBQztJQUNMLFVBQVUsRUFBRSxNQUFNLEdBQ25CO0VBcEJILEFBc0JFLHFCQXRCbUIsQUFzQmxCLE9BQU8sQ0FBQztJQUNQLE9BQU8sRUFBRSxJQUFJLEdBQ2Q7O0FBR0gsQUFBQSwyQkFBMkIsQ0FBQztFQUMxQixXQUFXLEVBQUUsSUFBSTtFQUNqQixhQUFhLEVBQUUsSUFBSSxHQW1CcEI7RUFyQkQsQUFHRSwyQkFIeUIsQ0FHekIsSUFBSSxDQUFDO0lBQ0gsU0FBUyxFQUFFLElBQUk7SUFDZixLQUFLLEVBQUUsT0FBTztJQUNkLGNBQWMsRUFBRSxLQUFLO0lBQ3JCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxJQUFJLEdBQ2pCO0VBWkgsQUFhRSwyQkFieUIsQ0FhekIsY0FBYyxDQUFDO0lBQ2IsU0FBUyxFQUFFLEtBQUssR0FNakI7SUFwQkgsQUFlSSwyQkFmdUIsQ0FhekIsY0FBYyxDQUVaLG1CQUFtQixDQUFDO01BQ2xCLEtBQUssRXRDdlpKLE9BQU87TXNDd1pSLE1BQU0sRUFBRSxPQUFPO01BQ2YsV0FBVyxFQUFFLEdBQUcsR0FDakI7O0FBSUwsQUFBQSxzQkFBc0IsQ0FBQztFQUNyQixVQUFVLEVBQUUsSUFBSTtFQUNoQixVQUFVLEVBQUUsTUFBTTtFQUNsQixLQUFLLEVBQUUsSUFBSSxHQUtaO0VBUkQsQUFJRSxzQkFKb0IsQ0FJcEIsQ0FBQyxDQUFDO0lBQ0EsS0FBSyxFQUFFLE9BQU87SUFDZCxTQUFTLEVBQUUsSUFBSSxHQUNoQjs7QUFHSCxBQUFBLGtCQUFrQixDQUFDO0VyQzNWakIsdUJBQXVCLEVxQzRWTyxRQUFRO0VyQzNWOUIsZUFBZSxFcUMyVk8sUUFBUSxHQUN2Qzs7QUd4YUQsQUFBQSxjQUFjLENBQUM7RUFDYixNQUFNLEVBQUUsTUFBTSxHQXNCZjtFQXZCRCxBQUdFLGNBSFksR0FHVixHQUFHLENBQUM7SXhDcUhOLFVBQVUsRXdDcEhhLElBQUk7SXhDcUgzQixVQUFVLEV3Q3JIYSxJQUFJO0l4Q3NIM0IsTUFBTSxFd0N0SGlCLElBQUk7SUFDekIsS0FBSyxFQUFFLE9BQU87SXhDOFJoQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxDQUFDO0lBQ2QsV0FBVyxFQUFFLEdBQUcsR3dDblJmO0l4QzJMQyxNQUFNLE1BQU0sTUFBTSxNQUFNLFNBQVMsRUFBRSxNQUFNO013QzdNN0MsQUFHRSxjQUhZLEdBR1YsR0FBRyxDQUFDO1F4Q29TSixTQUFTLEVBQUUsSUFBSSxHd0NyUmhCO0lBbEJILEFBU0ksY0FUVSxHQUdWLEdBQUcsQUFNRixPQUFPLENBQUM7TUFDUCxhQUFhLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3pDWnZCLE9BQU87TXlDYVIsTUFBTSxFQUFFLE9BQU8sR0FDaEI7SUFaTCxBQWNJLGNBZFUsR0FHVixHQUFHLEFBV0YsSUFBSyxDakM0QkEsT0FBTyxDaUM1QkMsTUFBTSxDQUFDO01BQ25CLGFBQWEsRUFBRSxpQkFBaUI7TUFDaEMsTUFBTSxFQUFFLE9BQU8sR0FDaEI7RUFqQkwsQUFvQkUsY0FwQlksR0FvQlYsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNWLFdBQVcsRXhDcVJNLElBQUksR3dDcFJ0Qjs7QUFHSCxBQUFBLGdCQUFnQixDQUFDO0VBQ2YsUUFBUSxFQUFFLFFBQVEsR0FDbkI7O0FBRUQsQUFBQSxlQUFlLENBQUM7RXhDVWQsWUFBWSxFd0NURSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7RXhDVW5CLFFBQVEsRXdDVkUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO0V4Q1dmLElBQUksRXdDWEUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO0V4Q2dHdkIsU0FBUyxFd0MvRlcsS0FBSztFeENnR3pCLFNBQVMsRXdDaEdXLEtBQUs7RXhDaUd6QixLQUFLLEV3Q2pHZSxLQUFLO0VBQ3pCLE1BQU0sRUFBRSxPQUFPLEdBa1NoQjtFQXJTRCxBQUtFLGVBTGEsQ0FLYixnQkFBZ0IsQ0FBQztJeENLakIsWUFBWSxFd0NKSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SXhDS3BCLFFBQVEsRXdDTEksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0l4Q01oQixJQUFJLEV3Q05JLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJeENxRnhCLFVBQVUsRXdDcEZhLElBQUk7SXhDcUYzQixVQUFVLEV3Q3JGYSxJQUFJO0l4Q3NGM0IsTUFBTSxFd0N0RmlCLElBQUk7SUFDekIsTUFBTSxFQUFFLGNBQWM7SUFDdEIsVUFBVSxFQUFFLENBQUM7SUFDYixTQUFTLEVBQUUsSUFBSTtJQUNmLE1BQU0sRUFBRSxhQUFhLEdBNkR0QjtJQXhFSCxBQWNJLGVBZFcsQ0FLYixnQkFBZ0IsQ0FTZCxHQUFHLENBQUU7TUFDSCxTQUFTLEVBQUUsSUFBSTtNQUNmLE9BQU8sRUFBRSxJQUFJO01BQ2IsVUFBVSxFQUFFLFdBQVcsR0FDeEI7SUFsQkwsQUFvQkksZUFwQlcsQ0FLYixnQkFBZ0IsR0FlVixHQUFHLENBQUM7TXhDb0JWLE9BQU8sRUFBRSxZQUFZO01BQ3JCLE9BQU8sRUFBRSxXQUFXO01BQ3BCLE9BQU8sRUFBRSxJQUFJO01BWGIsc0JBQXNCLEVBOENFLEdBQUc7TUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztNQS9CM0IsdUJBQXVCLEV3Q3hCVyxNQUFNO014Q3lCaEMsZUFBZSxFd0N6QlcsTUFBTSxHQWFyQztNQW5DTCxBQXdCTSxlQXhCUyxDQUtiLGdCQUFnQixHQWVWLEdBQUcsQUFJSixZQUFZLENBQUM7UUFDWixZQUFZLEVBQUUsSUFBSTtReEN3RXhCLFNBQVMsRXdDdkVpQixJQUFJO1F4Q3dFOUIsU0FBUyxFd0N4RWlCLElBQUk7UXhDeUU5QixLQUFLLEV3Q3pFcUIsSUFBSTtRQUN4QixNQUFNLEVBQUUsT0FBTyxHQUNoQjtNQTVCUCxBQThCTSxlQTlCUyxDQUtiLGdCQUFnQixHQWVWLEdBQUcsQUFVSixXQUFXLENBQUM7UUFDWCxXQUFXLEVBQUUsSUFBSTtReENrRXZCLFNBQVMsRXdDakVpQixJQUFJO1F4Q2tFOUIsU0FBUyxFd0NsRWlCLElBQUk7UXhDbUU5QixLQUFLLEV3Q25FcUIsSUFBSTtRQUN4QixNQUFNLEVBQUUsT0FBTyxHQUNoQjtJQWxDUCxBQW9DSSxlQXBDVyxDQUtiLGdCQUFnQixDQStCZCxlQUFlLENBQUM7TUFDZCxRQUFRLEVBQUUsUUFBUSxHQWtDbkI7TUF2RUwsQUFzQ00sZUF0Q1MsQ0FLYixnQkFBZ0IsQ0ErQmQsZUFBZSxDQUViLE1BQU0sQUFBQSxZQUFZLENBQUM7UXhDNUR2QixrQkFBa0IsRXdDNkRRLFFBQVE7UXhDNUQvQixlQUFlLEV3QzREUSxRQUFRO1F4QzNEMUIsVUFBVSxFd0MyRFEsUUFBUTtReEM3QmxDLFlBQVksRXdDOEJRLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztReEM3QnRCLFFBQVEsRXdDNkJRLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztReEM1QmxCLElBQUksRXdDNEJRLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixnQkFBZ0IsRUFBRSxXQUFXO1FBQzdCLE1BQU0sRUFBRSxJQUFJO1FBQ1osYUFBYSxFQUFFLENBQUM7UUFDaEIsTUFBTSxFQUFFLEdBQUc7UUFDWCxPQUFPLEVBQUUsQ0FBQztRQUNWLEtBQUssRXpDM0VOLE9BQU87UXlDNEVOLFdBQVcsRUFBRSxHQUFHLEdBdUJqQjtRQXRFUCxBQWlEUSxlQWpETyxDQUtiLGdCQUFnQixDQStCZCxlQUFlLENBRWIsTUFBTSxBQUFBLFlBQVksQUFXZixNQUFNLENBQUM7VUFDTixPQUFPLEVBQUUsQ0FBQyxHQUNYO1FBbkRULEFBcURRLGVBckRPLENBS2IsZ0JBQWdCLENBK0JkLGVBQWUsQ0FFYixNQUFNLEFBQUEsWUFBWSxBQWVmLGVBQWUsQ0FBQztVQUNmLEtBQUssRUFBRSxXQUFXO1VBQ2xCLFdBQVcsRUFBRSxVQUFVLEdBQ3hCO1FBeERULEFBMERRLGVBMURPLENBS2IsZ0JBQWdCLENBK0JkLGVBQWUsQ0FFYixNQUFNLEFBQUEsWUFBWSxBQW9CZixZQUFZLENBQUM7VUFDWixPQUFPLEVBQUUsSUFBSSxHQUNkO1FBNURULEFBOERRLGVBOURPLENBS2IsZ0JBQWdCLENBK0JkLGVBQWUsQ0FFYixNQUFNLEFBQUEsWUFBWSxHQXdCWixDQUFDLEFBQUEsZ0JBQWdCLENBQUM7VUFDcEIsUUFBUSxFQUFFLFFBQVE7VUFDbEIsR0FBRyxFQUFFLElBQUk7VUFDVCxLQUFLLEVBQUUsS0FBSztVQUNaLEtBQUssRUFBRSxPQUFPO1VBQ2QsU0FBUyxFQUFFLEdBQUc7VUFDZCxjQUFjLEVBQUUsSUFBSSxHQUNyQjtFQXJFVCxBQTBFRSxlQTFFYSxDQTBFYixnQkFBZ0IsQ0FBQztJeENsQ2pCLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBOENFLEdBQUc7SUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztJQTdEM0IscUJBQXFCLEV3QzREUyxVQUFVO0l4QzNEaEMsYUFBYSxFd0MyRFMsVUFBVTtJeEN2RHhDLG1CQUFtQixFd0N3RFMsVUFBVTtJeEN2RDlCLFdBQVcsRXdDdURTLFVBQVU7SXhDL0J0Qyx1QkFBdUIsRXdDZ0NTLFVBQVU7SXhDL0JsQyxlQUFlLEV3QytCUyxVQUFVO0l4Q3RCMUMsaUJBQWlCLEV3Q3VCSSxJQUFJO0l4Q3RCakIsU0FBUyxFd0NzQkksSUFBSTtJeENyRXpCLFlBQVksRXdDc0VJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJeENyRXBCLFFBQVEsRXdDcUVJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJeENwRWhCLElBQUksRXdDb0VJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJQUN0QixnQkFBZ0IsRUFBRSxPQUFPO0lBQ3pCLEtBQUssRUFBRSxPQUFPLEdBbUNmO0lBckhILEFBcUZNLGVBckZTLENBMEViLGdCQUFnQixBQVViLEtBQUssR0FDRixHQUFHLENBQUM7TXhDaEVWLG1CQUFtQixFd0NpRWEsVUFBVTtNeENoRWxDLFdBQVcsRXdDZ0VhLFVBQVU7TUFDcEMsWUFBWSxFQUFFLEdBQUcsR0FDbEI7SUF4RlAsQUEyRkksZUEzRlcsQ0EwRWIsZ0JBQWdCLEdBaUJaLEdBQUcsQ0FBQztNeENuRFIsT0FBTyxFQUFFLFlBQVk7TUFDckIsT0FBTyxFQUFFLFdBQVc7TUFDcEIsT0FBTyxFQUFFLElBQUk7TUFYYixzQkFBc0IsRUErQkUsTUFBTTtNQTlCdEIsY0FBYyxFQThCRSxNQUFNO01BcEQ5QixZQUFZLEV3Q21GTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TXhDbEZ0QixRQUFRLEV3Q2tGTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TXhDakZsQixJQUFJLEV3Q2lGTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TXhDeEUxQixtQkFBbUIsRXdDeUVXLE1BQU07TXhDeEU1QixXQUFXLEV3Q3dFVyxNQUFNO014Q2hEcEMsdUJBQXVCLEV3Q2lEVyxNQUFNO014Q2hEaEMsZUFBZSxFd0NnRFcsTUFBTTtNeENKeEMsVUFBVSxFd0NLZSxJQUFJO014Q0o3QixVQUFVLEV3Q0llLElBQUk7TXhDSDdCLE1BQU0sRXdDR21CLElBQUk7TXhDQzdCLFNBQVMsRXdDQWUsTUFBTTtNeENDOUIsU0FBUyxFd0NEZSxNQUFNO014Q0U5QixLQUFLLEV3Q0ZtQixNQUFNO01BQzFCLE1BQU0sRUFBRSxxQkFBcUI7TUFDN0IsS0FBSyxFQUFFLElBQUk7TUFDWCxTQUFTLEVBQUUsSUFBSTtNQUNmLE1BQU0sRUFBRSxhQUFhLEdBT3RCO01BNUdMLEFBdUdNLGVBdkdTLENBMEViLGdCQUFnQixHQWlCWixHQUFHLENBWUgsc0JBQXNCLENBQUM7UXhDTjNCLFNBQVMsRXdDT2lCLE1BQU07UXhDTmhDLFNBQVMsRXdDTWlCLE1BQU07UXhDTGhDLEtBQUssRXdDS3FCLE1BQU07UUFDMUIsS0FBSyxFQUFFLE9BQU87UUFDZCxJQUFJLEVBQUUsT0FBTyxHQUNkO0lBM0dQLEFBOEdJLGVBOUdXLENBMEViLGdCQUFnQixDQW9DZCxHQUFHLEFBQUEsWUFBWSxDQUFDO01BQ2QsaUJBQWlCLEVBQUUsSUFBSSxHQUN4QjtJQWhITCxBQWtISSxlQWxIVyxDQTBFYixnQkFBZ0IsQ0F3Q2QsR0FBRyxBQUFBLFdBQVcsQ0FBQztNQUNiLGtCQUFrQixFQUFFLElBQUksR0FDekI7RUFwSEwsQUF1SEUsZUF2SGEsQ0F1SGIsY0FBYyxDQUFDO0l4Qy9FZixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQThDRSxHQUFHO0lBN0NuQixjQUFjLEVBNkNFLEdBQUc7SUE3RDNCLHFCQUFxQixFd0N5R1MsVUFBVTtJeEN4R2hDLGFBQWEsRXdDd0dTLFVBQVU7SXhDcEd4QyxtQkFBbUIsRXdDcUdTLFVBQVU7SXhDcEc5QixXQUFXLEV3Q29HUyxVQUFVO0l4QzVFdEMsdUJBQXVCLEV3QzZFUyxVQUFVO0l4QzVFbEMsZUFBZSxFd0M0RVMsVUFBVTtJeENuRTFDLGlCQUFpQixFd0NvRUksSUFBSTtJeENuRWpCLFNBQVMsRXdDbUVJLElBQUk7SXhDbEh6QixZQUFZLEV3Q21ISSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SXhDbEhwQixRQUFRLEV3Q2tISSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SXhDakhoQixJQUFJLEV3Q2lISSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0F3RXZCO0lBck1ILEFBK0hJLGVBL0hXLENBdUhiLGNBQWMsQ0FRWixhQUFhLENBQUM7TXhDdkZoQixPQUFPLEVBQUUsWUFBWTtNQUNyQixPQUFPLEVBQUUsV0FBVztNQUNwQixPQUFPLEVBQUUsSUFBSTtNQVhiLHNCQUFzQixFQStCRSxNQUFNO01BOUJ0QixjQUFjLEVBOEJFLE1BQU07TUFwRDlCLFlBQVksRXdDdUhNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtNeEN0SHRCLFFBQVEsRXdDc0hNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtNeENySGxCLElBQUksRXdDcUhNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtNeEN0QzFCLFVBQVUsRXdDdUNlLElBQUk7TXhDdEM3QixVQUFVLEV3Q3NDZSxJQUFJO014Q3JDN0IsTUFBTSxFd0NxQ21CLElBQUk7TXhDakM3QixTQUFTLEV3Q2tDZSxNQUFNO014Q2pDOUIsU0FBUyxFd0NpQ2UsTUFBTTtNeENoQzlCLEtBQUssRXdDZ0NtQixNQUFNO01BQzFCLE1BQU0sRUFBRSxjQUFjO01BQ3RCLFNBQVMsRUFBRSxJQUFJO01BQ2YsTUFBTSxFQUFFLGFBQWE7TUFDckIsT0FBTyxFQUFFLFFBQVEsR0E2RGxCO01BcE1MLEFBeUlNLGVBeklTLENBdUhiLGNBQWMsQ0FRWixhQUFhLEFBVVYsZUFBZSxDQUFDO1FBQ2YsVUFBVSxFQUFFLE9BQU87UUFDbkIsS0FBSyxFQUFFLElBQUksR0FDWjtNQTVJUCxBQThJTSxlQTlJUyxDQXVIYixjQUFjLENBUVosYUFBYSxBQWVWLFlBQVksQ0FBQztRQUNaLGdCQUFnQixFekMxS2hCLE9BQU87UXlDMktQLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDekMvS3pCLE9BQU8sR3lDZ0xQO01BakpQLEFBbUpNLGVBbkpTLENBdUhiLGNBQWMsQ0FRWixhQUFhLEFBb0JWLGNBQWMsQ0FBQztRQUNkLGdCQUFnQixFekMvS2hCLE9BQU8sR3lDZ0xSO01BckpQLEFBdUpNLGVBdkpTLENBdUhiLGNBQWMsQ0FRWixhQUFhLEFBd0JWLE1BQU0sQ0FBQztRQUNOLGdCQUFnQixFQUFFLE9BQU8sR0FDMUI7TUF6SlAsQUEySk0sZUEzSlMsQ0F1SGIsY0FBYyxDQVFaLGFBQWEsQ0E0Qlgsb0JBQW9CLENBQUM7UUFDbkIsYUFBYSxFQUFFLEdBQUc7UUFDbEIsU0FBUyxFQUFFLElBQUksR0FLaEI7UUFsS1AsQUE4SlEsZUE5Sk8sQ0F1SGIsY0FBYyxDQVFaLGFBQWEsQ0E0Qlgsb0JBQW9CLEdBR2hCLGFBQWEsQ0FBQztVQUNkLFNBQVMsRUFBRSxJQUFJO1VBQ2YsV0FBVyxFQUFFLElBQUksR0FDbEI7TUFqS1QsQUFvS00sZUFwS1MsQ0F1SGIsY0FBYyxDQVFaLGFBQWEsQ0FxQ1gscUJBQXFCLEVBcEszQixlQUFlLENBdUhiLGNBQWMsQ0FRWixhQUFhLENBcUNZLHNCQUFzQixDQUFDO1F4QzVIbEQsT0FBTyxFQUFFLFlBQVk7UUFDckIsT0FBTyxFQUFFLFdBQVc7UUFDcEIsT0FBTyxFQUFFLElBQUk7UUFYYixzQkFBc0IsRUE4Q0UsR0FBRztRQTdDbkIsY0FBYyxFQTZDRSxHQUFHO1FBL0IzQix1QkFBdUIsRXdDd0hhLFVBQVU7UXhDdkh0QyxlQUFlLEV3Q3VIYSxVQUFVO1F4QzlHOUMsaUJBQWlCLEV3QytHUSxJQUFJO1F4QzlHckIsU0FBUyxFd0M4R1EsSUFBSTtReEN0RTdCLFNBQVMsRXdDdUVpQixJQUFJO1F4Q3RFOUIsU0FBUyxFd0NzRWlCLElBQUk7UXhDckU5QixLQUFLLEV3Q3FFcUIsSUFBSTtRQUN4QixVQUFVLEVBQUUsSUFBSTtRQUNoQixTQUFTLEVBQUUsSUFBSSxHQUtoQjtRQS9LUCxBQTRLUSxlQTVLTyxDQXVIYixjQUFjLENBUVosYUFBYSxDQXFDWCxxQkFBcUIsQ0FRbkIsQ0FBQyxFQTVLVCxlQUFlLENBdUhiLGNBQWMsQ0FRWixhQUFhLENBcUNZLHNCQUFzQixDQVEzQyxDQUFDLENBQUM7VUFDQSxNQUFNLEVBQUUsR0FBRyxHQUNaO01BOUtULEFBaUxNLGVBakxTLENBdUhiLGNBQWMsQ0FRWixhQUFhLENBa0RYLHFCQUFxQixDQUFDO1FBQ3BCLFVBQVUsRUFBRSxJQUFJLEdBQ2pCO01BbkxQLEFBcUxNLGVBckxTLENBdUhiLGNBQWMsQ0FRWixhQUFhLENBc0RYLHVCQUF1QixDQUFDO1F4QzdJNUIsT0FBTyxFQUFFLFlBQVk7UUFDckIsT0FBTyxFQUFFLFdBQVc7UUFDcEIsT0FBTyxFQUFFLElBQUk7UUFYYixzQkFBc0IsRUE4Q0UsR0FBRztRQTdDbkIsY0FBYyxFQTZDRSxHQUFHO1FBL0IzQix1QkFBdUIsRXdDeUlhLFVBQVU7UXhDeEl0QyxlQUFlLEV3Q3dJYSxVQUFVO1F4Qy9IOUMsaUJBQWlCLEV3Q2dJUSxJQUFJO1F4Qy9IckIsU0FBUyxFd0MrSFEsSUFBSTtReEN2RjdCLFNBQVMsRXdDd0ZpQixJQUFJO1F4Q3ZGOUIsU0FBUyxFd0N1RmlCLElBQUk7UXhDdEY5QixLQUFLLEV3Q3NGcUIsSUFBSTtRQUt4QixTQUFTLEVBQUUsR0FBRyxHQUtmO1FBVEMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO1VBMUxoQyxBQXFMTSxlQXJMUyxDQXVIYixjQUFjLENBUVosYUFBYSxDQXNEWCx1QkFBdUIsQ0FBQztZQU1wQixTQUFTLEVBQUUsSUFBSTtZQUNmLFNBQVMsRUFBRSxLQUFLLEdBT25CO1FBbk1QLEFBZ01RLGVBaE1PLENBdUhiLGNBQWMsQ0FRWixhQUFhLENBc0RYLHVCQUF1QixDQVdyQixDQUFDLENBQUM7VUFDQSxNQUFNLEVBQUUsR0FBRyxHQUNaO0VBbE1ULEFBdU1FLGVBdk1hLEFBdU1aLFVBQVUsQ0FBQztJeEM3TFosWUFBWSxFd0M4TEksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO0l4QzdMckIsUUFBUSxFd0M2TEksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO0l4QzVMakIsSUFBSSxFd0M0TEksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO0l4Q3ZHekIsU0FBUyxFd0N3R2EsS0FBSztJeEN2RzNCLFNBQVMsRXdDdUdhLEtBQUs7SXhDdEczQixLQUFLLEV3Q3NHaUIsS0FBSztJQUN6QixVQUFVLEVBQUUsd0JBQXdCO0lBQ3BDLGdCQUFnQixFQUFFLElBQUk7SUFDdEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsR0FBRyxFQUFFLElBQUk7SUFDVCxJQUFJLEVBQUUsQ0FBQztJQUNQLE9BQU8sRUFBRSxFQUFFO0lBQ1gsTUFBTSxFQUFFLEtBQUs7SUFDYixXQUFXLEVBQUUsR0FBRyxHQW1GakI7SUFwU0gsQUFtTkksZUFuTlcsQUF1TVosVUFBVSxBQVlSLE1BQU0sQ0FBQztNQUNOLElBQUksRUFBRSxPQUFPO01BQ2IsS0FBSyxFQUFFLENBQUMsR0FDVDtJQXROTCxBQXdOSSxlQXhOVyxBQXVNWixVQUFVLENBaUJULGdCQUFnQixDQUFDO014QzdIbkIsVUFBVSxFd0M4SGUsSUFBSTtNeEM3SDdCLFVBQVUsRXdDNkhlLElBQUk7TXhDNUg3QixNQUFNLEV3QzRIbUIsSUFBSTtNQUN6QixVQUFVLEVBQUUsY0FBYztNQUMxQixTQUFTLEVBQUUsSUFBSTtNQUNmLE1BQU0sRUFBRSxPQUFPLEdBS2hCO01Bak9MLEFBOE5NLGVBOU5TLEFBdU1aLFVBQVUsQ0FpQlQsZ0JBQWdCLENBTWQsS0FBSyxDQUFDO1FBQ0osTUFBTSxFQUFFLE9BQU8sR0FDaEI7SUFoT1AsQUFtT0ksZUFuT1csQUF1TVosVUFBVSxDQTRCVCxxQkFBcUIsQ0FBQztNeENuTnhCLHFCQUFxQixFd0NvTlcsTUFBTTtNeENuTjlCLGFBQWEsRXdDbU5XLE1BQU07TXhDdEx0Qyx1QkFBdUIsRXdDdUxXLE1BQU07TXhDdExoQyxlQUFlLEV3Q3NMVyxNQUFNO014QzFJeEMsVUFBVSxFd0MySWUsSUFBSTtNeEMxSTdCLFVBQVUsRXdDMEllLElBQUk7TXhDekk3QixNQUFNLEV3Q3lJbUIsSUFBSTtNQUN6QixnQkFBZ0IsRUFBRSxJQUFJLEdBV3ZCO01BbFBMLEFBeU9NLGVBek9TLEFBdU1aLFVBQVUsQ0E0QlQscUJBQXFCLEdBTWpCLEdBQUcsQ0FBQztReEN4SVYsU0FBUyxFd0N5SWlCLElBQUk7UXhDeEk5QixTQUFTLEV3Q3dJaUIsSUFBSTtReEN2STlCLEtBQUssRXdDdUlxQixJQUFJO1FBQ3hCLEtBQUssRUFBRSxPQUFPO1FBQ2QsTUFBTSxFQUFFLE9BQU87UUFDZixXQUFXLEVBQUUsR0FBRztRQUNoQixVQUFVLEVBQUUsTUFBTTtRQUNsQixNQUFNLEVBQUUsMEJBQTBCO1FBQ2xDLE1BQU0sRUFBRSxHQUFHLEdBQ1o7SUFqUFAsQUFvUEksZUFwUFcsQUF1TVosVUFBVSxDQTZDVCxjQUFjLENBQUM7TUFDYixhQUFhLEVBQUUsR0FBRyxHQThDbkI7TUFuU0wsQUF1UE0sZUF2UFMsQUF1TVosVUFBVSxDQTZDVCxjQUFjLENBR1osYUFBYSxDQUFDO1F4Q3pNbEIsdUJBQXVCLEV3QzBNYSxNQUFNO1F4Q3pNbEMsZUFBZSxFd0N5TWEsTUFBTTtReEM3SjFDLFVBQVUsRXdDOEppQixJQUFJO1F4QzdKL0IsVUFBVSxFd0M2SmlCLElBQUk7UXhDNUovQixNQUFNLEV3QzRKcUIsSUFBSTtReEN4Si9CLFNBQVMsRXdDeUppQixJQUFJO1F4Q3hKOUIsU0FBUyxFd0N3SmlCLElBQUk7UXhDdko5QixLQUFLLEV3Q3VKcUIsSUFBSTtRQUN4QixNQUFNLEVBQUUsR0FBRztRQUNYLE1BQU0sRUFBRSwwQkFBMEI7UUFDbEMsYUFBYSxFQUFFLElBQUk7UUFDbkIsT0FBTyxFQUFFLENBQUMsR0FvQ1g7UUFsU1AsQUFnUVEsZUFoUU8sQUF1TVosVUFBVSxDQTZDVCxjQUFjLENBR1osYUFBYSxBQVNWLE1BQU0sQ0FBQztVQUNOLGFBQWEsRUFBRSxDQUFDO1VBQ2hCLGdCQUFnQixFQUFFLFdBQVcsR0FDOUI7UUFuUVQsQUFxUVEsZUFyUU8sQUF1TVosVUFBVSxDQTZDVCxjQUFjLENBR1osYUFBYSxBQWNWLFlBQVksQ0FBQztVQUNaLE1BQU0sRUFBRSxzQkFBc0IsR0FDL0I7UUF2UVQsQUF5UVEsZUF6UU8sQUF1TVosVUFBVSxDQTZDVCxjQUFjLENBR1osYUFBYSxBQWtCVixjQUFjLENBQUM7VUFDZCxnQkFBZ0IsRUFBRSxPQUFPO1VBQ3pCLGFBQWEsRUFBRSxDQUFDLEdBU2pCO1VBcFJULEFBNlFVLGVBN1FLLEFBdU1aLFVBQVUsQ0E2Q1QsY0FBYyxDQUdaLGFBQWEsQUFrQlYsY0FBYyxBQUlaLE1BQU0sQ0FBQztZQUNOLGFBQWEsRUFBRSxJQUFJLEdBQ3BCO1VBL1FYLEFBaVJVLGVBalJLLEFBdU1aLFVBQVUsQ0E2Q1QsY0FBYyxDQUdaLGFBQWEsQUFrQlYsY0FBYyxDQVFiLG9CQUFvQixDQUFDO1lBQ25CLEtBQUssRUFBRSxPQUFPLEdBQ2Y7UUFuUlgsQUFzUlEsZUF0Uk8sQUF1TVosVUFBVSxDQTZDVCxjQUFjLENBR1osYUFBYSxBQStCVixJQUFLLENBQUEsTUFBTSxFQUFFO1VBQ1osTUFBTSxFQUFFLE9BQU8sR0FJaEI7VUEzUlQsQUF3UlUsZUF4UkssQUF1TVosVUFBVSxDQTZDVCxjQUFjLENBR1osYUFBYSxBQStCVixJQUFLLENBQUEsTUFBTSxDQUVULE1BQU0sQ0FBQztZQUNOLGdCQUFnQixFQUFFLElBQUksR0FDdkI7UUExUlgsQUE2UlEsZUE3Uk8sQUF1TVosVUFBVSxDQTZDVCxjQUFjLENBR1osYUFBYSxDQXNDWCxvQkFBb0IsQ0FBQztVQUNuQixPQUFPLEVBQUUsR0FBRztVQUNaLFVBQVUsRUFBRSxNQUFNO1VBQ2xCLGFBQWEsRUFBRSxDQUFDLEdBQ2pCOztBQU1ULEFBQUEsa0JBQWtCLENBQUM7RXhDN1JqQixZQUFZLEV3QzhSRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7RXhDN1JsQixRQUFRLEV3QzZSRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7RXhDNVJkLElBQUksRXdDNFJFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtFeEN2TXRCLFNBQVMsRXdDd01XLEtBQUs7RXhDdk16QixTQUFTLEV3Q3VNVyxLQUFLO0V4Q3RNekIsS0FBSyxFd0NzTWUsS0FBSyxHQXFDMUI7RUF2Q0QsQUFJRSxrQkFKZ0IsQ0FJaEIsU0FBUyxDQUFDO0lBQ1IsYUFBYSxFQUFFLGNBQWM7SUFDN0IsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixNQUFNLEVBQUUsV0FBVztJQUNuQixVQUFVLEVBQUUsSUFBSTtJQUNoQixjQUFjLEVBQUUsU0FBUyxHQVkxQjtJQXRCSCxBQVlJLGtCQVpjLENBSWhCLFNBQVMsR0FRTCxjQUFjLENBQUM7TUFDZixnQkFBZ0IsRXpDblZmLE9BQU87TXlDb1ZSLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDekNwVmhCLE9BQU87TXlDcVZSLGFBQWEsRUFBRSxHQUFHO01BQ2xCLE9BQU8sRUFBRSxHQUFHO01BQ1osV0FBVyxFQUFFLEdBQUc7TUFDaEIsV0FBVyxFQUFFLElBQUk7TUFDakIsU0FBUyxFQUFFLElBQUk7TUFDZixLQUFLLEVBQUUsT0FBTyxHQUNmO0VBckJMLEFBd0JFLGtCQXhCZ0IsQ0F3QmhCLFlBQVksQ0FBQztJeEM5TmIsU0FBUyxFd0MrTmEsS0FBSztJeEM5TjNCLFNBQVMsRXdDOE5hLEtBQUs7SXhDN04zQixLQUFLLEV3QzZOaUIsS0FBSztJQUV6QixjQUFjLEVBQUUsTUFBTTtJQUN0QixhQUFhLEVBQUUsSUFBSTtJQUNuQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHLEdBUWpCO0lBdENILEFBK0JJLGtCQS9CYyxDQXdCaEIsWUFBWSxDQU9WLGdCQUFnQixDQUFFO01BQ2hCLEtBQUssRUFBRSxPQUFPLEdBQ2Y7SUFqQ0wsQUFtQ0ksa0JBbkNjLENBd0JoQixZQUFZLEFBV1QsT0FBTyxDQUFDO01BQ1AsTUFBTSxFQUFFLE9BQU8sR0FDaEI7O0FBSUwsQUFBQSxrQkFBa0IsQ0FBQztFQUNqQixPQUFPLEVBQUUsQ0FBQyxDQUFBLFVBQVUsR0FDckI7O0FBRUQsQUFBQSxhQUFhLENBQUM7RUFDWixPQUFPLEVBQUUsQ0FBQyxDQUFBLFVBQVU7RXhDM1VwQixZQUFZLEV3QzRVRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7RXhDM1VsQixRQUFRLEV3QzJVRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7RXhDMVVkLElBQUksRXdDMFVFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtFQUN0QixVQUFVLEVBQUUsS0FBSztFQUNqQixrQkFBa0IsRUF5R25CO0VBN0dELEFBTUUsYUFOVyxBQU1WLE1BQU0sQ0FBQztJQUNOLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLG9CQUFvQixFQUNyQjtFQVRILEFBV0UsYUFYVyxDQVdYLG1CQUFtQixDQUFDO0l4QzFVcEIsbUJBQW1CLEV3QzJVUyxNQUFNO0l4QzFVMUIsV0FBVyxFd0MwVVMsTUFBTTtJeENsVGxDLHVCQUF1QixFd0NtVFMsTUFBTTtJeENsVDlCLGVBQWUsRXdDa1RTLE1BQU07SUFDcEMsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixTQUFTLEVBQUUsSUFBSSxHQWNoQjtJQTlCSCxBQWtCSSxhQWxCUyxDQVdYLG1CQUFtQixHQU9mLEdBQUcsQ0FBQztNQUNKLE1BQU0sRUFBRSxPQUFPLEdBQ2hCO0l4QzNMRCxNQUFNLE1BQU0sTUFBTSxNQUFNLFNBQVMsRUFBRSxNQUFNO013Q3VLN0MsQUF1Qk0sYUF2Qk8sQ0FXWCxtQkFBbUIsQ0FZZixjQUFjLENBQUU7UUFDZCxXQUFXLEVBRlksS0FBSSxHQUc1QjtNQXpCUCxBQTBCTSxhQTFCTyxDQVdYLG1CQUFtQixDQWVmLGVBQWUsQ0FBRTtRQUNmLFlBQVksRUFMVyxLQUFJLEdBTTVCO0VBNUJQLEFBZ0NFLGFBaENXLENBZ0NYLGdCQUFnQixDQUFDO0lBQ2YsV0FBVyxFQUFFLGNBQWM7SUFDM0IsU0FBUyxFQUFFLEtBQUssR0EwRWpCO0lBNUdILEFBb0NJLGFBcENTLENBZ0NYLGdCQUFnQixDQUlkLFdBQVcsQ0FBQztNeEM5VmQsa0JBQWtCLEV3QytWVyxVQUFVO014QzlWL0IsVUFBVSxFd0M4VlcsVUFBVTtNQUNuQyxLQUFLLEVBQUUsSUFBSTtNQUNYLFNBQVMsRUFBRSxJQUFJO01BQ2YsTUFBTSxFQUFFLFNBQVMsR0FDbEI7SUF6Q0wsQUEyQ0ksYUEzQ1MsQ0FnQ1gsZ0JBQWdCLENBV2Qsd0JBQXdCLENBQUM7TXhDclgzQixZQUFZLEV3Q3NYTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TXhDclh0QixRQUFRLEV3Q3FYTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TXhDcFhsQixJQUFJLEV3Q29YTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TUFDdEIsU0FBUyxFQUFFLElBQUk7TUFDZixjQUFjLEVBQUUsR0FBRyxHQThCcEI7TUE1RUwsQUFnRE0sYUFoRE8sQ0FnQ1gsZ0JBQWdCLENBV2Qsd0JBQXdCLEFBS3JCLElBQUssQ0FBQSxNQUFNLEVBQUU7UUFDWixhQUFhLEVBQUUsY0FBYyxHQUM5QjtNQWxEUCxBQW9ETSxhQXBETyxDQWdDWCxnQkFBZ0IsQ0FXZCx3QkFBd0IsQ0FTdEIsaUJBQWlCLENBQUM7UUFDaEIsS0FBSyxFQUFFLEtBQUs7UUFDWixTQUFTLEVBQUUsSUFBSTtRQUNmLGdCQUFnQixFQUFFLE9BQU87UUFDekIsYUFBYSxFQUFFLEdBQUc7UUFDbEIsS0FBSyxFQUFFLElBQUk7UUFDWCxTQUFTLEVBQUUsSUFBSTtRQUNmLFdBQVcsRUFBRSxHQUFHO1FBQ2hCLE1BQU0sRUFBRSxLQUFLO1FBQ2IsT0FBTyxFQUFFLEdBQUc7UUFDWixPQUFPLEVBQUUsSUFBSTtRQUNiLFdBQVcsRUFBRSxNQUFNO1FBQ25CLGVBQWUsRUFBRSxhQUFhO1FBQzlCLGNBQWMsRUFBRSxXQUFXLEdBVTVCO1FBUkMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO1VBbkVoQyxBQW9ETSxhQXBETyxDQWdDWCxnQkFBZ0IsQ0FXZCx3QkFBd0IsQ0FTdEIsaUJBQWlCLENBQUM7WUFnQmQsY0FBYyxFQUFFLE1BQU07WUFDdEIsR0FBRyxFQUFFLEdBQUcsR0FNWDtRQTNFUCxBQXdFUSxhQXhFSyxDQWdDWCxnQkFBZ0IsQ0FXZCx3QkFBd0IsQ0FTdEIsaUJBQWlCLEFBb0JkLE9BQU8sQ0FBQztVQUNQLE1BQU0sRUFBRSxPQUFPLEdBQ2hCO0lBMUVULEFBOEVJLGFBOUVTLENBZ0NYLGdCQUFnQixBQThDYixlQUFnQixDQUFBLENBQUMsRUFBRTtNQUNsQixZQUFZLEVBQUUsY0FBYyxHQUM3QjtJQWhGTCxBQWtGSSxhQWxGUyxDQWdDWCxnQkFBZ0IsQUFrRGIsWUFBWSxDQUFDO01BQ1osZ0JBQWdCLEV6Q2xjZCxPQUFPLEd5QzBkVjtNQTNHTCxBQXFGTSxhQXJGTyxDQWdDWCxnQkFBZ0IsQUFrRGIsWUFBWSxDQUdYLFdBQVcsQ0FBQztRQUNWLEtBQUssRUFBRSxPQUFPLEdBQ2Y7TUF2RlAsQUEwRlEsYUExRkssQ0FnQ1gsZ0JBQWdCLEFBa0RiLFlBQVksQ0FPWCx3QkFBd0IsQUFDckIsSUFBSyxDQTFDRixNQUFNLEVBMENJO1FBQ1osYUFBYSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEN6QzljM0IsT0FBTyxHeUMrY0w7TUE1RlQsQUE4RlEsYUE5RkssQ0FnQ1gsZ0JBQWdCLEFBa0RiLFlBQVksQ0FPWCx3QkFBd0IsQ0FLdEIsaUJBQWlCLENBQUM7UUFDaEIsZ0JBQWdCLEVBQUUsT0FBTztRQUN6QixLQUFLLEVBQUUsT0FBTyxHQVNmO1FBekdULEFBa0dVLGFBbEdHLENBZ0NYLGdCQUFnQixBQWtEYixZQUFZLENBT1gsd0JBQXdCLENBS3RCLGlCQUFpQixDQUlmLHVCQUF1QixBQUFBLElBQUssQzNDbEp0QyxnQkFBZ0IsRTJDa0p3QztVQUM1QyxLQUFLLEV6Q3RkVixPQUFPLEd5Q3VkSDtRQXBHWCxBQXNHVSxhQXRHRyxDQWdDWCxnQkFBZ0IsQUFrRGIsWUFBWSxDQU9YLHdCQUF3QixDQUt0QixpQkFBaUIsQ0FRZixzQkFBc0IsQUFBQSxJQUFLLEMzQ3RKckMsZ0JBQWdCLEUyQ3NKdUM7VUFDM0MsS0FBSyxFQUFFLE9BQU8sR0FDZjs7QUd6ZFgsQUFBQSxXQUFXLENBQUM7RUFDVixNQUFNLEVBQUUsYUFBYSxHQW1CdEI7RUFwQkQsQUFHRSxXQUhTLENBR1QsZ0JBQWdCLENBQUM7STNDcUhqQixVQUFVLEUyQ3BIYSxJQUFJO0kzQ3FIM0IsVUFBVSxFMkNySGEsSUFBSTtJM0NzSDNCLE1BQU0sRTJDdEhpQixJQUFJO0kzQytSM0IsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsQ0FBQztJQUNkLFdBQVcsRUFBRSxHQUFHO0kyQy9SZCxLQUFLLEVBQUUsT0FBTztJQUNkLFlBQVksRUFBRSxJQUFJLEdBWW5CO0kzQzBMQyxNQUFNLE1BQU0sTUFBTSxNQUFNLFNBQVMsRUFBRSxNQUFNO00yQzdNN0MsQUFHRSxXQUhTLENBR1QsZ0JBQWdCLENBQUM7UTNDb1NmLFNBQVMsRUFBRSxJQUFJLEcyQ3BSaEI7SUFuQkgsQUFTSSxXQVRPLENBR1QsZ0JBQWdCLEFBTWIsT0FBTyxDQUFDO01BQ1AsYUFBYSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEM1Q1p2QixPQUFPO000Q2FSLEtBQUssRUFBRSxJQUFJO01BQ1gsTUFBTSxFQUFFLE9BQU8sR0FDaEI7SUFiTCxBQWVJLFdBZk8sQ0FHVCxnQkFBZ0IsQUFZYixJQUFLLENwQzJCQSxPQUFPLENvQzNCQyxNQUFNLENBQUM7TUFDbkIsYUFBYSxFQUFFLGlCQUFpQjtNQUNoQyxNQUFNLEVBQUUsT0FBTyxHQUNoQjs7QUFJTCxBQUFBLFdBQVcsQ0FBQztFQUNWLE1BQU0sRUFBRSxVQUFVLEdBZ0JuQjtFQWpCRCxBQUdFLFdBSFMsQ0FHVCxrQkFBa0IsQ0FBQztJM0MrRm5CLFVBQVUsRTJDOUZhLEtBQUs7STNDK0Y1QixVQUFVLEUyQy9GYSxLQUFLO0kzQ2dHNUIsTUFBTSxFMkNoR2lCLEtBQUs7STNDb0c1QixTQUFTLEUyQ25HYSxLQUFLO0kzQ29HM0IsU0FBUyxFMkNwR2EsS0FBSztJM0NxRzNCLEtBQUssRTJDckdpQixLQUFLLEdBTTFCO0lBWEgsQUFPSSxXQVBPLENBR1Qsa0JBQWtCLEFBSWYsTUFBTSxDQUFDO00zQzJGVixVQUFVLEUyQzFGZSxLQUFLO00zQzJGOUIsVUFBVSxFMkMzRmUsS0FBSztNM0M0RjlCLE1BQU0sRTJDNUZtQixLQUFLO00zQ2dHOUIsU0FBUyxFMkMvRmUsS0FBSztNM0NnRzdCLFNBQVMsRTJDaEdlLEtBQUs7TTNDaUc3QixLQUFLLEUyQ2pHbUIsS0FBSyxHQUMxQjtFQVZMLEFBYUUsV0FiUyxDQWFULGdCQUFnQixDQUFDO0lBQ2YsU0FBUyxFQUFFLElBQUk7SUFDZixNQUFNLEVBQUUsTUFBTSxHQUNmOztBQUdILEFBQUEsY0FBYyxDQUFDO0UzQzRCYixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQThDRSxHQUFHO0VBN0NuQixjQUFjLEVBNkNFLEdBQUc7RUE3RDNCLHFCQUFxQixFMkNGTyxVQUFVO0UzQ0c5QixhQUFhLEUyQ0hPLFVBQVU7RTNDZ0N0Qyx1QkFBdUIsRTJDL0JPLGFBQWE7RTNDZ0NuQyxlQUFlLEUyQ2hDTyxhQUFhO0UzQ3lDM0MsaUJBQWlCLEUyQ3hDRSxJQUFJO0UzQ3lDZixTQUFTLEUyQ3pDRSxJQUFJO0UzQ2lGdkIsU0FBUyxFMkNoRlcsS0FBSztFM0NpRnpCLFNBQVMsRTJDakZXLEtBQUs7RTNDa0Z6QixLQUFLLEUyQ2xGZSxLQUFLO0VBQ3pCLE1BQU0sRUFBRSxVQUFVO0VBQ2xCLFVBQVUsRUFBRSxLQUFLLEdBZ0NsQjtFQXZDRCxBQVNFLGNBVFksQ0FTWixpQkFBaUIsQ0FBQztJQUNoQixNQUFNLEVBQUUsUUFBUSxHQTRCakI7SUF0Q0gsQUFZSSxjQVpVLENBU1osaUJBQWlCLENBR2YsYUFBYSxDQUFDO00zQ2dCaEIsT0FBTyxFQUFFLFlBQVk7TUFDckIsT0FBTyxFQUFFLFdBQVc7TUFDcEIsT0FBTyxFQUFFLElBQUk7TUFYYixzQkFBc0IsRUE4Q0UsR0FBRztNQTdDbkIsY0FBYyxFQTZDRSxHQUFHO01BeEQzQixtQkFBbUIsRTJDS1csTUFBTTtNM0NKNUIsV0FBVyxFMkNJVyxNQUFNO00zQ29CcEMsdUJBQXVCLEUyQ25CVyxhQUFhO00zQ29CdkMsZUFBZSxFMkNwQlcsYUFBYTtNQUMzQyxTQUFTLEVBQUUsSUFBSTtNQUNmLGFBQWEsRUFBRSxHQUFHLEdBZW5CO01BaENMLEFBbUJNLGNBbkJRLENBU1osaUJBQWlCLENBR2YsYUFBYSxDQU9YLGNBQWMsQ0FBQztRQUNiLFdBQVcsRUFBRSxHQUFHO1FBQ2hCLGNBQWMsRUFBRSxTQUFTLEdBQzFCO01BdEJQLEFBd0JNLGNBeEJRLENBU1osaUJBQWlCLENBR2YsYUFBYSxDQVlYLGFBQWEsQ0FBQztRQUNaLGNBQWMsRUFBRSxTQUFTLEdBQzFCO01BMUJQLEFBNEJNLGNBNUJRLENBU1osaUJBQWlCLENBR2YsYUFBYSxDQWdCWCxLQUFLLENBQUM7UUFDSixLQUFLLEVBQUUsT0FBTztRQUNkLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0lBL0JQLEFBa0NJLGNBbENVLENBU1osaUJBQWlCLENBeUJmLE1BQU0sQ0FBQztNQUNMLE1BQU0sRUFBRSxJQUFJO01BQ1osS0FBSyxFQUFFLEtBQUssR0FDYjs7QUFJTCxBQUFBLG9CQUFvQixDQUFDO0UzQ2JuQixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQThDRSxHQUFHO0VBN0NuQixjQUFjLEVBNkNFLEdBQUc7RUFuRTNCLFlBQVksRTJDNkNFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtFM0M1Q2xCLFFBQVEsRTJDNENFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtFM0MzQ2QsSUFBSSxFMkMyQ0UsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0UzQ29DdEIsVUFBVSxFMkNuQ1csSUFBSTtFM0NvQ3pCLFVBQVUsRTJDcENXLElBQUk7RTNDcUN6QixNQUFNLEUyQ3JDZSxJQUFJO0UzQ3lDekIsU0FBUyxFMkN4Q1csS0FBSztFM0N5Q3pCLFNBQVMsRTJDekNXLEtBQUs7RTNDMEN6QixLQUFLLEUyQzFDZSxLQUFLO0VBQ3pCLFFBQVEsRUFBRSxRQUFRLEdBNENuQjtFQWpERCxBQU9FLG9CQVBrQixBQU9qQixNQUFNLENBQUM7SUFDTixLQUFLLEU1Q3hGRCxPQUFPO0k0Q3lGWCxPQUFPLEVBQUUsR0FBRztJQUNaLElBQUksRUFBRSw4QkFBOEI7SUFDcEMsUUFBUSxFQUFFLFFBQVE7SUFDbEIsR0FBRyxFQUFFLEdBQUc7SUFDUixLQUFLLEVBQUUsSUFBSTtJQUNYLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLGlCQUFpQixFQUFDLGFBQWE7SUFDL0IsY0FBYyxFQUFDLGFBQWE7SUFDNUIsYUFBYSxFQUFDLGFBQWE7SUFDM0IsU0FBUyxFQUFDLGFBQWEsR0FDeEI7RUFwQkgsQUFzQkUsb0JBdEJrQixBQXNCakIsT0FBTyxDQUFDO0lBQ1AsZ0JBQWdCLEU1QzNHYixPQUFPO0k0QzRHVixPQUFPLEVBQUUsRUFBRTtJQUNYLE9BQU8sRUFBRSxLQUFLO0lBQ2QsUUFBUSxFQUFFLFFBQVE7SUFDbEIsR0FBRyxFQUFFLEdBQUc7SUFDUixLQUFLLEVBQUUsR0FBRztJQUNWLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLE9BQU87SUFDZixjQUFjLEVBQUUsSUFBSSxHQUNyQjtFQWhDSCxBQWtDRSxvQkFsQ2tCLENBa0NsQixNQUFNLENBQUM7STNDN0dQLGtCQUFrQixFMkM4R0ksSUFBSTtJM0M3R3ZCLGVBQWUsRTJDNkdJLElBQUk7STNDNUdsQixVQUFVLEUyQzRHSSxJQUFJO0lBQ3hCLGdCQUFnQixFNUN4SGIsT0FBTztJNEN5SFYsTUFBTSxFQUFFLElBQUk7SUFDWixLQUFLLEU1Q3RIRCxPQUFPO0k0Q3VIWCxNQUFNLEVBQUUsT0FBTztJQUNmLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsQ0FBQztJQUNULE9BQU8sRUFBRSxJQUFJO0lBQ2IsWUFBWSxFQUFFLElBQUk7SUFDbEIsY0FBYyxFQUFFLFNBQVM7SUFDekIsS0FBSyxFQUFFLElBQUksR0FDWjs7QUFHSCxBQUFBLGFBQWEsQ0FBQztFQUNaLFNBQVMsRUFBRSxJQUFJO0VBQ2YsTUFBTSxFQUFFLE1BQU0sR0FtQ2Y7RUFyQ0QsQUFJRSxhQUpXLEdBSVAsR0FBRyxDQUFDO0lBQ04sWUFBWSxFQUFFLEdBQUcsR0ErQmxCO0lBcENILEFBT0ksYUFQUyxHQUlQLEdBQUcsQUFHSixRQUFRLENBQUM7TUFDUixLQUFLLEVBQUUsd0JBQXdCLEdBQ2hDO0lBVEwsQUFhSSxhQWJTLEdBSVAsR0FBRyxBQVNKLE1BQU0sQ0FBQztNQUNOLEtBQUssRUFBRSxzQkFBc0IsR0FDOUI7SUFmTCxBQXFCSSxhQXJCUyxHQUlQLEdBQUcsQUFpQkosV0FBVyxDQUFDO01BQ1gsS0FBSyxFQUFFLHdCQUF3QixHQUNoQztJQXZCTCxBQXlCSSxhQXpCUyxHQUlQLEdBQUcsQUFxQkosYUFBYSxDQUFDO01BQ2IsS0FBSyxFQUFFLHlCQUF5QixHQUNqQztJQTNCTCxBQTZCSSxhQTdCUyxHQUlQLEdBQUcsQUF5QkosVUFBVSxDQUFDO01BQ1YsS0FBSyxFQUFFLHVCQUF1QixHQUMvQjtJQS9CTCxBQWlDSSxhQWpDUyxHQUlQLEdBQUcsQUE2QkosVUFBVSxDQUFDO01BQ1YsS0FBSyxFQUFFLE9BQXNCLEdBQzlCOztBQUlMLEFBQUEsY0FBYyxDQUFDO0UzQzlDYixTQUFTLEUyQytDVyxLQUFLO0UzQzlDekIsU0FBUyxFMkM4Q1csS0FBSztFM0M3Q3pCLEtBQUssRTJDNkNlLEtBQUs7RUFDekIsVUFBVSxFQUFFLElBQUksR0FnT2pCO0VBbE9ELEFBSUUsY0FKWSxDQUlaLGtCQUFrQixDQUFFO0lBQ2xCLGFBQWEsRUFBRSxjQUFjO0lBQzdCLGNBQWMsRUFBRSxHQUFHO0lBQ25CLGFBQWEsRUFBRSxHQUFHO0kzQ2pJcEIsbUJBQW1CLEUyQ2tJUyxNQUFNO0kzQ2pJMUIsV0FBVyxFMkNpSVMsTUFBTSxHQUtqQztJQWJILEFBU0ksY0FUVSxDQUlaLGtCQUFrQixDQUtoQixDQUFDLENBQUU7TUFDRCxTQUFTLEVBQUUsSUFBSTtNQUNmLE9BQU8sRUFBRSxJQUFJLEdBQ2Q7RUFaTCxBQWVFLGNBZlksQ0FlWixXQUFXLENBQUM7STNDbkVaLFVBQVUsRTJDb0VhLElBQUk7STNDbkUzQixVQUFVLEUyQ21FYSxJQUFJO0kzQ2xFM0IsTUFBTSxFMkNrRWlCLElBQUk7SUFDekIsS0FBSyxFQUFFLE9BQU87SUFDZCxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLGNBQWMsRUFBRSxTQUFTLEdBQzFCO0VBckJILEFBdUJFLGNBdkJZLENBdUJaLFdBQVcsQ0FBQztJQUNWLFVBQVUsRUFBRSxHQUFHLEdBQ2hCO0VBekJILEFBMkJFLGNBM0JZLENBMkJaLFlBQVksQ0FBQztJQUNYLEtBQUssRTVDMU1GLE9BQU87STRDMk1WLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsYUFBYSxFQUFFLElBQUksR0FDcEI7RUFoQ0gsQUFrQ0UsY0FsQ1ksQ0FrQ1osWUFBWSxDQUFDO0lBQ1gsVUFBVSxFQUFFLE1BQU07SUFDbEIsU0FBUyxFQUFFLEtBQUssR0FDakI7RUFyQ0gsQUF1Q0UsY0F2Q1ksQ0F1Q1osWUFBWSxDQUFDO0lBQ1gsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixZQUFZLEVBQUUsSUFBSSxHQUNuQjtFQTVDSCxBQStDSSxjQS9DVSxDQThDWixrQkFBa0IsQUFDZixZQUFZLENBQUM7SUFDWixXQUFXLEVBQUUsR0FBRztJQUNoQixVQUFVLEVBQUUsR0FBRyxHQUNoQjtFQWxETCxBQW9ESSxjQXBEVSxDQThDWixrQkFBa0IsQUFNZixhQUFhLENBQUM7SUFDYixXQUFXLEVBQUUsR0FBRztJQUNoQixhQUFhLEVBQUUsR0FBRyxHQUNuQjtFQXZETCxBQXlESSxjQXpEVSxDQThDWixrQkFBa0IsQUFXZixVQUFVLENBQUM7SUFDVixLQUFLLEU1Q3RPSixPQUFPLEc0Q3VPVDtFQTNETCxBQTZESSxjQTdEVSxDQThDWixrQkFBa0IsQUFlZixTQUFTLENBQUM7SUFDVCxLQUFLLEU1Q3pPSCxPQUFPLEc0QzBPVjtFQS9ETCxBQWlFSSxjQWpFVSxDQThDWixrQkFBa0IsQUFtQmYsU0FBUyxDQUFDO0lBQ1QsS0FBSyxFNUNqUEwsT0FBTyxHNENrUFI7RUFuRUwsQUFzRUUsY0F0RVksQ0FzRVosYUFBYSxDQUFDO0lBQ1osU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsR0FBRyxHQWFqQjtJQXRGSCxBQTJFSSxjQTNFVSxDQXNFWixhQUFhLEFBS1YsVUFBVSxDQUFDO01BQ1YsS0FBSyxFNUN4UEosT0FBTyxHNEN5UFQ7SUE3RUwsQUErRUksY0EvRVUsQ0FzRVosYUFBYSxBQVNWLFNBQVMsQ0FBQztNQUNULEtBQUssRTVDM1BILE9BQU8sRzRDNFBWO0lBakZMLEFBbUZJLGNBbkZVLENBc0VaLGFBQWEsQUFhVixTQUFTLENBQUM7TUFDVCxLQUFLLEU1Q25RTCxPQUFPLEc0Q29RUjtFQXJGTCxBQXdGRSxjQXhGWSxDQXdGWixXQUFXLENBQUM7SUFDVixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLGNBQWMsRUFBRSxTQUFTLEdBQzFCO0VBN0ZILEFBK0ZFLGNBL0ZZLENBK0ZaLHNCQUFzQixDQUFDO0lBQ3JCLFVBQVUsRUFBRSxJQUFJLEdBQ2pCO0VBakdILEFBbUdFLGNBbkdZLENBbUdaLDhCQUE4QixDQUFDO0lBQzdCLElBQUksRUFBRSxDQUFDO0lBQ1AsT0FBTyxFQUFFLFFBQVEsR0FDbEI7RUF0R0gsQUF3R0UsY0F4R1ksQ0F3R1osWUFBWSxDQUFDO0kzQzdPYixZQUFZLEUyQzhPSSxDQUFDO0kzQzdPYixRQUFRLEUyQzZPSSxDQUFDO0kzQzVPVCxJQUFJLEUyQzRPSSxDQUFDO0lBQ2YsYUFBYSxFQUFFLGNBQWM7SUFDN0IsVUFBVSxFQUFFLGNBQWM7SUFDMUIsT0FBTyxFQUFFLE1BQU0sR0FXaEI7SUF2SEgsQUE4R0ksY0E5R1UsQ0F3R1osWUFBWSxDQU1WLEtBQUssQ0FBQztNQUNKLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0lBaEhMLEFBa0hJLGNBbEhVLENBd0daLFlBQVksQ0FVVixNQUFNLENBQUM7TUFDTCxTQUFTLEVBQUUsSUFBSTtNQUNmLFdBQVcsRUFBRSxHQUFHO01BQ2hCLFdBQVcsRUFBRSxJQUFJLEdBQ2xCO0VBdEhMLEFBMEhJLGNBMUhVLENBeUhaLGlCQUFpQixDQUNmLFlBQVksQ0FBQztJM0MvUGYsWUFBWSxFMkNnUU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHO0kzQy9QckIsUUFBUSxFMkMrUE0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHO0kzQzlQakIsSUFBSSxFMkM4UE0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHO0lBQ3JCLFVBQVUsRUFBRSxJQUFJLEdBU2pCO0lBcklMLEFBOEhNLGNBOUhRLENBeUhaLGlCQUFpQixDQUNmLFlBQVksQUFJVCxVQUFXLENBQUEsSUFBSSxFQUFFO01BQ2hCLFVBQVUsRUFBRSxjQUFjLEdBQzNCO0lBaElQLEFBa0lNLGNBbElRLENBeUhaLGlCQUFpQixDQUNmLFlBQVksQUFRVCxVQUFXLENqQzlMRixHQUFHLEVpQzhMSTtNQUNmLFlBQVksRUFBRSxjQUFjLEdBQzdCO0VBcElQLEFBd0lFLGNBeElZLENBd0laLG9CQUFvQixDQUFDO0lBQ25CLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGFBQWEsRUFBRSxLQUFLLEdBQ3JCO0VBM0lILEFBNklFLGNBN0lZLENBNklaLFVBQVUsQ0FBQztJQUNULEtBQUssRUFBRSxJQUFJO0lBQ1gsU0FBUyxFQUFFLElBQUk7SUFDZixhQUFhLEVBQUUsSUFBSSxHQVVwQjtJQTFKSCxBQWtKSSxjQWxKVSxDQTZJWixVQUFVLEdBS0osR0FBRyxDQUFDO01BQ04sVUFBVSxFQUFFLElBQUksR0FDakI7SUFwSkwsQUFzSkksY0F0SlUsQ0E2SVosVUFBVSxDQVNSLGlCQUFpQixDQUFDO00zQzFNcEIsVUFBVSxFMkMyTWUsSUFBSTtNM0MxTTdCLFVBQVUsRTJDME1lLElBQUk7TTNDek03QixNQUFNLEUyQ3lNbUIsSUFBSTtNM0NyTTdCLFNBQVMsRTJDc01lLElBQUk7TTNDck01QixTQUFTLEUyQ3FNZSxJQUFJO00zQ3BNNUIsS0FBSyxFMkNvTW1CLElBQUksR0FDekI7RUF6SkwsQUE0SkUsY0E1SlksQ0E0SlosY0FBYyxDQUFDO0lBQ2IsVUFBVSxFQUFFLElBQUksR0FVakI7SUF2S0gsQUErSkksY0EvSlUsQ0E0SlosY0FBYyxDQUdaLFNBQVMsRUEvSmIsY0FBYyxDQTRKWixjQUFjLENBR0QsV0FBVyxDQUFDO01BQ3JCLFdBQVcsRUFBRSxHQUFHO01BQ2hCLFdBQVcsRUFBRSxHQUFHLEdBQ2pCO0lBbEtMLEFBb0tJLGNBcEtVLENBNEpaLGNBQWMsQ0FRWixHQUFHLEdBQUcsR0FBRyxDQUFDO01BQ1IsV0FBVyxFQUFFLElBQUksR0FDbEI7RUF0S0wsQUF5S0UsY0F6S1ksQ0F5S1osYUFBYSxDQUFDO0lBQ1osVUFBVSxFQUFFLElBQUk7SUFDaEIsT0FBTyxFQUFFLE1BQU07SUFDZixVQUFVLEVBQUUsY0FBYztJQUMxQixhQUFhLEVBQUUsY0FBYyxHQUM5QjtFQTlLSCxBQWdMRSxjQWhMWSxDQWdMWixTQUFTLENBQUM7SUFDUixVQUFVLEVBQUUsSUFBSSxHQXlDakI7SUExTkgsQUFvTEksY0FwTFUsQ0FnTFosU0FBUyxDQUlQLGFBQWEsQ0FBQztNQUNaLFlBQVksRUFBRSxHQUFHO01BQ2pCLE9BQU8sRUFBRSxZQUFZO01BQ3JCLEtBQUssRUFBRSxJQUFJO01BQ1gsUUFBUSxFQUFFLFFBQVE7TUFDbEIsVUFBVSxFQUFFLEtBQUssR0FLbEI7TUE5TEwsQUEwTE0sY0ExTFEsQ0FnTFosU0FBUyxDQUlQLGFBQWEsQUFNVixvQkFBb0IsQ0FBRTtRQUNyQixVQUFVLEVBQUUsQ0FBQztRQUNiLEtBQUssRUFBRSxJQUFJLEdBQ1o7SUE3TFAsQUFnTUksY0FoTVUsQ0FnTFosU0FBUyxDQWdCUCxZQUFZLENBQUM7TTNDclVmLFlBQVksRTJDc1VNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtNM0NyVXRCLFFBQVEsRTJDcVVNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtNM0NwVWxCLElBQUksRTJDb1VNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtNM0NyUDFCLFVBQVUsRTJDc1BlLElBQUk7TTNDclA3QixVQUFVLEUyQ3FQZSxJQUFJO00zQ3BQN0IsTUFBTSxFMkNvUG1CLElBQUk7TTNDaFA3QixTQUFTLEUyQ2lQZSxJQUFJO00zQ2hQNUIsU0FBUyxFMkNnUGUsSUFBSTtNM0MvTzVCLEtBQUssRTJDK09tQixJQUFJO01BQ3hCLFVBQVUsRUFBRSxLQUFLO01BQ2pCLFlBQVksRUFBRSxHQUFHLEdBSWxCO01Bek1MLEFBc01NLGNBdE1RLENBZ0xaLFNBQVMsQ0FnQlAsWUFBWSxDQU1WLEdBQUcsQ0FBRTtRQUNILE9BQU8sRUFBRSxLQUFLLEdBQ2Y7SUF4TVAsQUEyTUksY0EzTVUsQ0FnTFosU0FBUyxDQTJCUCxhQUFhLENBQUM7TUFHWixPQUFPLEVBQUUsS0FBSztNQUNkLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLEdBQUcsR0FDakI7SUFqTkwsQUFtTkksY0FuTlUsQ0FnTFosU0FBUyxDQW1DUCxZQUFZLENBQUM7TTNDeFZmLFlBQVksRTJDeVZNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtNM0N4VnRCLFFBQVEsRTJDd1ZNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtNM0N2VmxCLElBQUksRTJDdVZNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtNQUV0QixXQUFXLEVBQUUsSUFBSTtNQUNqQixTQUFTLEVBQUUsSUFBSTtNQUNmLFdBQVcsRUFBRSxJQUFJLEdBQ2xCO0VBek5MLEFBNE5FLGNBNU5ZLENBNE5aLFdBQVcsQ0FBQztJM0M3VFosdUJBQXVCLEUyQzhUUyxNQUFNO0kzQzdUOUIsZUFBZSxFMkM2VFMsTUFBTTtJM0NsV3RDLFlBQVksRTJDbVdJLENBQUM7STNDbFdiLFFBQVEsRTJDa1dJLENBQUM7STNDaldULElBQUksRTJDaVdJLENBQUM7STNDNVFqQixTQUFTLEUyQzZRYSxLQUFLO0kzQzVRM0IsU0FBUyxFMkM0UWEsS0FBSztJM0MzUTNCLEtBQUssRTJDMlFpQixLQUFLO0lBQ3pCLGNBQWMsRUFBRSxLQUFLLEdBQ3RCOztBR3ZZSCxBQUFBLFdBQVcsQ0FBQztFQUNWLE1BQU0sRUFBRSxNQUFNLEdBdUJmO0VBeEJELEFBR0UsV0FIUyxDQUdULGdCQUFnQixDQUFDO0k5QytHakIsVUFBVSxFOEM5R2EsSUFBSTtJOUMrRzNCLFVBQVUsRThDL0dhLElBQUk7STlDZ0gzQixNQUFNLEU4Q2hIaUIsSUFBSTtJQUN6QixLQUFLLEVBQUUsT0FBTztJQUNkLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLElBQUksR0FZbEI7SUFuQkgsQUFTSSxXQVRPLENBR1QsZ0JBQWdCLEFBTWIsT0FBTyxDQUFDO01BQ1AsYUFBYSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEMvQ2xCdkIsT0FBTztNK0NtQlIsS0FBSyxFQUFFLElBQUk7TUFDWCxNQUFNLEVBQUUsT0FBTyxHQUNoQjtJQWJMLEFBZUksV0FmTyxDQUdULGdCQUFnQixBQVliLElBQUssQ3ZDcUJBLE9BQU8sQ3VDckJDLE1BQU0sQ0FBQztNQUNuQixhQUFhLEVBQUUsaUJBQWlCO01BQ2hDLE1BQU0sRUFBRSxPQUFPLEdBQ2hCO0VBbEJMLEFBcUJFLFdBckJTLENBcUJULGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO0lBQ2xDLFdBQVcsRUFBRSxJQUFJLEdBQ2xCOztBQUdILEFBQUEsZUFBZSxDQUFDO0U5Q09kLFlBQVksRThDTkUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0U5Q09sQixRQUFRLEU4Q1BFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtFOUNRZCxJQUFJLEU4Q1JFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtFOUM2RnRCLFNBQVMsRThDNUZXLEtBQUs7RTlDNkZ6QixTQUFTLEU4QzdGVyxLQUFLO0U5QzhGekIsS0FBSyxFOEM5RmUsS0FBSyxHQTJGMUI7RUE3RkQsQUFJRSxlQUphLENBSWIsZ0JBQWdCLENBQUM7STlDb0ZqQixVQUFVLEU4Q25GYSxJQUFJO0k5Q29GM0IsVUFBVSxFOENwRmEsSUFBSTtJOUNxRjNCLE1BQU0sRThDckZpQixJQUFJO0lBQ3pCLE1BQU0sRUFBRSxjQUFjO0lBQ3RCLGdCQUFnQixFQUFFLE9BQU87SUFDekIsTUFBTSxFQUFFLGNBQWM7SUFDdEIsU0FBUyxFQUFFLElBQUk7SUFDZixNQUFNLEVBQUUsT0FBTyxHQUtoQjtJQWZILEFBWUksZUFaVyxDQUliLGdCQUFnQixDQVFkLEtBQUssQ0FBQztNQUNKLE1BQU0sRUFBRSxPQUFPLEdBQ2hCO0VBZEwsQUFpQkUsZUFqQmEsQ0FpQmIsZ0JBQWdCLENBQUM7SUFDZixNQUFNLEVBQUUsU0FBUyxHQVlsQjtJQTlCSCxBQW1CSSxlQW5CVyxDQWlCYixnQkFBZ0IsR0FFWixHQUFHLENBQUM7TUFsRFIsU0FBUyxFQUFFLENBQUM7TUFDWixTQUFTLEVBQUUsSUFBSTtNQUNmLEtBQUssRUFBRSxTQUFRO01BbURYLFNBQVMsRUFBRSxJQUFJO01BQ2YsS0FBSyxFQUFFLElBQUk7TTlDY2YsT0FBTyxFQUFFLFlBQVk7TUFDckIsT0FBTyxFQUFFLFdBQVc7TUFDcEIsT0FBTyxFQUFFLElBQUk7TUFYYixzQkFBc0IsRUE4Q0UsR0FBRztNQTdDbkIsY0FBYyxFQTZDRSxHQUFHO01BL0IzQix1QkFBdUIsRThDbEJXLFVBQVU7TTlDbUJwQyxlQUFlLEU4Q25CVyxVQUFVO01BQ3hDLFlBQVksRUFBRSxHQUFHO01BQ2pCLFdBQVcsRUFBRSxNQUFNO01BQ25CLGVBQWUsRUFBRSxNQUFNLEdBQ3hCO0VBN0JMLEFBZ0NFLGVBaENhLENBZ0NiLGNBQWMsQ0FBQztJQUNiLE1BQU0sRUFBRSxXQUFXO0lBQ25CLGdCQUFnQixFQUFFLE9BQU8sR0EwRDFCO0lBNUZILEFBbUNJLGVBbkNXLENBZ0NiLGNBQWMsQ0FHWixhQUFhLENBQUM7TTlDUWhCLHVCQUF1QixFOENQVyxVQUFVO005Q1FwQyxlQUFlLEU4Q1JXLFVBQVU7TUFuRTVDLFNBQVMsRUFBRSxDQUFDO01BQ1osU0FBUyxFQUFFLElBQUk7TUFDZixLQUFLLEVBQUUsU0FBUTtNQXFFWCxVQUFVLEVBQUUsQ0FBQztNQUNiLFVBQVUsRUFBRSxJQUFJO01BQ2hCLE1BQU0sRUFBRSxJQUFJO01BQ1osTUFBTSxFQUFFLGlCQUFpQjtNQUN6QixNQUFNLEVBQUUsaUJBQWlCO01BRXpCLFNBQVMsRUFBRSxJQUFJO01BQ2YsT0FBTyxFQUFFLENBQUM7TUFDVixLQUFLLEVBQUUsT0FBTyxHQTJDZjtNQTNGTCxBQWlETSxlQWpEUyxDQWdDYixjQUFjLENBR1osYUFBYSxBQWNWLFlBQVksQ0FBRTtRQUNiLEtBQUssRS9DcEZOLE9BQU8sRytDcUZQO01BbkRQLEFBeURPLGVBekRRLENBZ0NiLGNBQWMsQ0FHWixhQUFhLEFBc0JULGVBQWUsQ0FBQztRQUNmLGdCQUFnQixFQUFFLE9BQU8sR0FTMUI7TUFuRVIsQUEyRU0sZUEzRVMsQ0FnQ2IsY0FBYyxDQUdaLGFBQWEsQUF3Q1YsSUFBSyxDTndNRSxNQUFNLENNeE1ELElBQUssQ0FBQSxlQUFlLEVBQUU7UUFDakMsTUFBTSxFQUFFLE9BQU8sR0FLaEI7UUFqRlAsQUE2RVEsZUE3RU8sQ0FnQ2IsY0FBYyxDQUdaLGFBQWEsQUF3Q1YsSUFBSyxDTndNRSxNQUFNLENNeE1ELElBQUssQ0FBQSxlQUFlLENBRTlCLE1BQU0sQ0FBQztVQUNOLE9BQU8sRUFBRSxHQUFHLEdBRWI7TUFoRlQsQUFtRk0sZUFuRlMsQ0FnQ2IsY0FBYyxDQUdaLGFBQWEsQ0FnRFgsb0JBQW9CLENBQUM7UUFDbkIsT0FBTyxFQUFFLEdBQUc7UUFDWixXQUFXLEVBQUUsSUFBSTtRQUNqQixVQUFVLEVBQUUsSUFBSTtRQUNoQixPQUFPLEVBQUUsUUFBUTtRQUNqQixTQUFTLEVBQUUsSUFBSTtRQUNmLFNBQVMsRUFBRSxJQUFJLEdBQ2hCOztBQUtQLEFBQUEsV0FBVyxFQUFFLFdBQVcsRUFBRSxhQUFhLENBQUM7RUFDdEMsVUFBVSxFQUFFLElBQUksR0FDakI7O0FBRUQsQUFDRSxXQURTLEFBQ1IsY0FBYyxBQUFBLHVCQUF1QixDQUFDO0VBQ3JDLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLGFBQWEsRUFBRSxHQUFHLEdBQ25COztBQUdILEFBQUEsV0FBVyxDQUFDO0VBQ1YsUUFBUSxFQUFFLFFBQVEsR0FlbkI7RUFoQkQsQUFHRSxXQUhTLEdBR1AsWUFBWSxBQUFBLE1BQU0sQ0FBQztJQUNuQixLQUFLLEVBQUUsSUFBSSxHQUNaO0VBTEgsQUFPRSxXQVBTLEFBT1IsTUFBTSxDQUFDO0lBQ04sT0FBTyxFQUFFLEdBQUc7SUFDWixRQUFRLEVBQUUsUUFBUTtJQUNsQixHQUFHLEVBQUUsQ0FBQztJQUNOLElBQUksRUFBRSxJQUFJO0lBQ1YsV0FBVyxFQUFFLElBQUk7SUFDakIsU0FBUyxFQUFFLElBQUk7SUFDZixLQUFLLEVBQUUsSUFBSSxHQUNaOztBQUdILEFBQUEsU0FBUyxDQUFDO0VBQ1IsS0FBSyxFQUFFLEdBQUc7RUFDVixhQUFhLEVBQUUsSUFBSSxHQUlwQjtFQUhDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztJQUgxQixBQUFBLFNBQVMsQ0FBQztNQUlOLEtBQUssRUFBRSxJQUFJLEdBRWQ7O0FBRUQsQUFBQSxjQUFjLENBQUM7RUFDYixXQUFXLEVBQUUsSUFBSSxHQVFsQjtFQVRELEFBRUUsY0FGWSxHQUVWLFlBQVksQUFBQSxNQUFNLENBQUM7SUFDbkIsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLGFBQWEsRUFBRSxDQUFDO0lBQ2hCLGFBQWEsRUFBRSxpQkFBaUI7SUFDaEMsS0FBSyxFL0M3S0YsT0FBTyxHK0M4S1g7O0FBR0gsQUFDRSxnQkFEYyxHQUNaLFlBQVksR0FBRyxZQUFZLEVBRGIsU0FBUyxHQUN2QixZQUFZLEdBQUcsWUFBWSxDQUFDO0VBQzVCLFdBQVcsRUFBRSxJQUFJLEdBSWxCO0VBSEMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0lBSDVCLEFBQ0UsZ0JBRGMsR0FDWixZQUFZLEdBQUcsWUFBWSxFQURiLFNBQVMsR0FDdkIsWUFBWSxHQUFHLFlBQVksQ0FBQztNQUcxQixXQUFXLEVBQUUsSUFBSSxHQUVwQjs7QUFOSCxBQVFFLGdCQVJjLENBUWQsU0FBUyxFQVJPLFNBQVMsQ0FRekIsU0FBUyxDQUFDO0VBQ1IsU0FBUyxFQUFFLEtBQUs7RUFDaEIsU0FBUyxFQUFFLEtBQUssR0FDakI7O0FBWEgsQUFhRSxnQkFiYyxDQWFkLFVBQVUsRUFiTSxTQUFTLENBYXpCLFVBQVUsQ0FBQztFQUNULFNBQVMsRUFBRSxJQUFJO0VBQ2YsU0FBUyxFQUFFLElBQUksR0FDaEI7O0FBSUQsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VBRDFCLEFBQUEsZUFBZSxDQUFDO0lBRVosU0FBUyxFQUFFLENBQUMsQ0FBQSxVQUFVO0lBQ3RCLFNBQVMsRUFBRSxDQUFDLENBQUEsVUFBVTtJQUN0QixXQUFXLEVBQUUsQ0FBQyxDQUFBLFVBQVUsR0FFM0I7O0FBRUQsQUFDRSxnQkFEYyxHQUNaLFlBQVksR0FBRyxZQUFZLEVBRGIsU0FBUyxHQUN2QixZQUFZLEdBQUcsWUFBWSxDQUFDO0VBQzVCLFdBQVcsRUFBRSxJQUFJLEdBQ2xCOztBQUhILEFBS0UsZ0JBTGMsQ0FLZCxVQUFVLEVBTE0sU0FBUyxDQUt6QixVQUFVLENBQUM7RUFDVCxTQUFTLEVBQUUsS0FBSztFQUNoQixTQUFTLEVBQUUsS0FBSyxHQUNqQjs7QUFSSCxBQVVFLGdCQVZjLENBVWQsU0FBUyxFQVZPLFNBQVMsQ0FVekIsU0FBUyxDQUFDO0VBQ1IsU0FBUyxFQUFFLEtBQUs7RUFDaEIsU0FBUyxFQUFFLEtBQUssR0FDakI7O0FBYkgsQUFlRSxnQkFmYyxDQWVkLFVBQVUsRUFmTSxTQUFTLENBZXpCLFVBQVUsQ0FBQztFQUNULFNBQVMsRUFBRSxJQUFJO0VBQ2YsU0FBUyxFQUFFLElBQUksR0FDaEI7O0FBR0gsQUFBQSxrQkFBa0IsQ0FBQztFQUNqQixRQUFRLEVBQUUsSUFBSSxHQUNmOztBQUVELEFBQ0UsU0FETyxDQUNQLFNBQVMsQ0FBQztFQUNSLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLFdBQVcsRUFBRSxNQUFNO0VBQ25CLFFBQVEsRUFBRSxRQUFRLEdBU25CO0VBYkgsQUFNSSxTQU5LLENBQ1AsU0FBUyxHQUtMLFlBQVksQUFBQSxNQUFNLENBQUM7SUFDbkIsS0FBSyxFQUFFLEtBQUs7SUFDWixNQUFNLEVBQUUsSUFBSTtJQUNaLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFVBQVUsRUFBRSxVQUFVLEdBQ3ZCOztBQVpMLEFBY0UsU0FkTyxDQWNQLFlBQVksQ0FBQztFQUNYLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLFdBQVcsRUFBRSxNQUFNO0VBQ25CLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLFdBQVcsRUFBRSxDQUFDLENBQUEsVUFBVSxHQVN6QjtFQTNCSCxBQW9CSSxTQXBCSyxDQWNQLFlBQVksR0FNUixZQUFZLEFBQUEsTUFBTSxDQUFDO0lBQ25CLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixXQUFXLEVBQUUsSUFBSTtJQUNqQixPQUFPLEVBQUUsYUFBYTtJQUN0QixVQUFVLEVBQUUsVUFBVSxHQUN2Qjs7QUExQkwsQUE2QkUsU0E3Qk8sQ0E2QlAsUUFBUSxDQUFDO0VBQ1AsV0FBVyxFQUFFLEtBQUs7RUFDbEIsY0FBYyxFQUFFLElBQUk7RUFDcEIsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsSUFBSTtFQUNqQixLQUFLLEVBQUUsSUFBSTtFQUNYLFdBQVcsRUFBRSxNQUFNLEdBQ3BCOztBQXBDSCxBQXFDRSxTQXJDTyxDQXFDUCxXQUFXLENBQUM7RUFDVixXQUFXLEVBQUUsS0FBSztFQUNsQixjQUFjLEVBQUUsSUFBSTtFQUNwQixTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLEtBQUssRUFBRSxJQUFJO0VBQ1gsV0FBVyxFQUFFLE1BQU0sR0FDcEI7O0FBR0gsQUFDRSxTQURPLENBQ1AsZ0JBQWdCLENBQUM7RUFDZixRQUFRLEVBQUUsUUFBUTtFQUNsQixNQUFNLEVBQUUsaUJBQWlCO0VBQ3pCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLE9BQU8sRUFBRSxRQUFRO0VBQ2pCLFNBQVMsRUFBRSxJQUFJLEdBcUNoQjtFQTNDSCxBQVFJLFNBUkssQ0FDUCxnQkFBZ0IsQ0FPZCxjQUFjLENBQUM7SUFDYixTQUFTLEVBQUUsS0FBSztJQUNoQixTQUFTLEVBQUUsS0FBSyxHQVFqQjtJQWxCTCxBQVlNLFNBWkcsQ0FDUCxnQkFBZ0IsQ0FPZCxjQUFjLENBSVosQ0FBQyxDQUFDO01BQ0EsUUFBUSxFQUFFLFFBQVE7TUFDbEIsR0FBRyxFQUFFLElBQUk7TUFDVCxLQUFLLEVBQUUsSUFBSTtNQUNYLFNBQVMsRUFBRSxHQUFHLEdBQ2Y7RUFqQlAsQUFvQkksU0FwQkssQ0FDUCxnQkFBZ0IsQ0FtQmQsUUFBUSxDQUFDO0lBQ1AsUUFBUSxFQUFFLFFBQVE7SUFDbEIsR0FBRyxFQUFFLElBQUk7SUFDVCxJQUFJLEVBQUUsR0FBRztJQUNULFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGdCQUFnQixFQUFFLE9BQU87SUFDekIsU0FBUyxFQUFFLEtBQUs7SUFDaEIsVUFBVSxFQUFFLEtBQUs7SUFDakIsT0FBTyxFQUFFLENBQUMsR0FjWDtJQTFDTCxBQThCTSxTQTlCRyxDQUNQLGdCQUFnQixDQW1CZCxRQUFRLEdBVUosR0FBRyxDQUFDO01BQ0osVUFBVSxFQUFFLEdBQUc7TUFDZixhQUFhLEVBQUUsR0FBRztNQUNsQixZQUFZLEVBQUUsSUFBSTtNQUNsQixVQUFVLEVBQUUsSUFBSTtNQUNoQixXQUFXLEVBQUUsSUFBSTtNQUNqQixNQUFNLEVBQUUsT0FBTyxHQUtoQjtNQXpDUCxBQXNDUSxTQXRDQyxDQUNQLGdCQUFnQixDQW1CZCxRQUFRLEdBVUosR0FBRyxBQVFGLE1BQU0sQ0FBQztRQUNOLGdCQUFnQixFQUFFLE9BQU8sR0FDMUI7O0FBeENULEFBOENJLFNBOUNLLENBNkNQLFNBQVMsR0FDTCxZQUFZLEFBQUEsTUFBTSxDQUFDO0VBQ25CLEtBQUssRUFBRSxLQUFLLEdBQ2I7O0FBaERMLEFBb0RJLFNBcERLLENBbURQLG1CQUFtQixHQUNmLFlBQVksQUFBQSxNQUFNLENBQUM7RUFDbkIsS0FBSyxFQUFFLEtBQUs7RUFDWixNQUFNLEVBQUUsSUFBSTtFQUNaLGFBQWEsRUFBRSxDQUFDO0VBQ2hCLGFBQWEsRUFBRSxpQkFBaUIsR0FDakM7O0FBekRMLEFBNERFLFNBNURPLENBNERQLFVBQVUsQ0FBQztFQUNULFNBQVMsRUFBRSxJQUFJO0VBQ2YsS0FBSyxFL0NsVkYsT0FBTztFK0NtVlYsTUFBTSxFQUFFLE9BQU8sR0FDaEI7O0FBR0gsQUFBQSxhQUFhLEVBQUUsYUFBYSxDQUFDO0VBQzNCLEtBQUssRUFBRSxHQUFHO0VBQ1YsU0FBUyxFQUFFLElBQUksR0FJaEI7RUFIQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7SUFIMUIsQUFBQSxhQUFhLEVBQUUsYUFBYSxDQUFDO01BSXpCLEtBQUssRUFBRSxJQUFJLEdBRWQ7O0FBRUQsQUFDRSxVQURRLEdBQ04sQ0FBQyxDQUFDO0VBQ0YsS0FBSyxFQUFFLEtBQUssR0FDYjs7QUFISCxBQUtFLFVBTFEsQ0FLUixXQUFXLEdBQUcsV0FBVyxDQUFDO0U5Q3ZSMUIsdUJBQXVCLEU4Q3dSUyxNQUFNO0U5Q3ZSOUIsZUFBZSxFOEN1UlMsTUFBTTtFQUNwQyxVQUFVLEVBQUUsSUFBSTtFQUNoQixTQUFTLEVBQUUsSUFBSTtFQUNmLFNBQVMsRUFBRSxJQUFJO0VBQ2YsWUFBWSxFQUFFLEdBQUc7RUFDakIsZ0JBQWdCLEUvQzFXYixPQUFPO0UrQzJXVix1QkFBdUIsRUFBRSxHQUFHO0VBQzVCLDBCQUEwQixFQUFFLEdBQUc7RUFDL0IsU0FBUyxFQUFFLElBQUk7RUFDZixLQUFLLEUvQzFXRCxPQUFPLEcrQzJXWjs7QUFHSCxBQUFBLG9CQUFvQixDQUFDO0VBQ25CLGlCQUFpQixFQUFFLEtBQUssR0FDekI7O0FBRUQsQUFDRSxnQkFEYyxDQUNkLGVBQWUsQ0FBQztFQUNkLGFBQWEsRUFBRSxHQUFHLEdBQ25COztBQUhILEFBS0UsZ0JBTGMsQ0FLZCx1QkFBdUIsQ0FBQztFQUN0QixZQUFZLEVBQUUsSUFBSSxHQUluQjtFQVZILEFBT0ksZ0JBUFksQ0FLZCx1QkFBdUIsQ0FFckIsZUFBZSxDQUFDO0lBQ2QsYUFBYSxFQUFFLEdBQUcsR0FDbkI7O0FBVEwsQUFZRSxnQkFaYyxDQVlkLG9CQUFvQixDQUFDO0VBQ25CLFlBQVksRUFBRSxJQUFJLEdBS25CO0VBbEJILEFBY0ksZ0JBZFksQ0FZZCxvQkFBb0IsQ0FFbEIsWUFBWSxDQUFDO0lBQ1gsS0FBSyxFQUFFLEtBQUs7SUFDWixhQUFhLEVBQUUsR0FBRyxHQUNuQjs7QUFJTCxBQUNFLGVBRGEsQUFDWixNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztFQUNuQixNQUFNLEVBQUUsSUFBSTtFQUNaLGFBQWEsRUFBRSxJQUFJLEdBQ3BCOztBQUdILEFBQUEsU0FBUyxDQUFDO0VBQ04sTUFBTSxFQUFFLGtCQUFrQjtFQUMxQixLQUFLLEUvQ3BaRixPQUFPO0UrQ3FaVixTQUFTLEVBQUUsR0FBRyxHQUNqQjs7QUFHQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RUFEMUIsQUFBQSx1QkFBdUIsQ0FBQztJOUMxVnRCLHNCQUFzQixFOEM0VkksTUFBTTtJOUMzVnhCLGNBQWMsRThDMlZJLE1BQU07SUFDOUIsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQSxVQUFVO0lBQy9CLEdBQUcsRUFBRSxHQUFHO0lBQ1IsS0FBSyxFQUFFLElBQUksR0FNZDtJQVhELEFBTUksdUJBTm1CLEdBTWpCLE1BQU0sQ0FBQztNQUNQLEtBQUssRUFBRSxJQUFJLENBQUEsVUFBVTtNQUNyQixNQUFNLEVBQUUsQ0FBQyxDQUFBLFVBQVUsR0FDcEI7O0FHL1pMLEFBQUEsY0FBYyxDQUFDO0VBQ2QsT0FBTyxFQUFFLElBQUksR0FDYjs7QUFFRCxBQUFBLFFBQVEsRUFxQ1IsY0FBYyxFQUlkLGVBQWUsRUFNZixhQUFhLEVBc0JiLGNBQWMsQUFBQSxNQUFNLEVBSXBCLGVBQWUsQUFBQSxNQUFNLEVBUXJCLGFBQWEsQUFBQSxNQUFNLENBakZWO0VBQ1IsUUFBUSxFQUFFLFFBQVE7RUFDbEIsU0FBUyxFQUFFLEtBQUs7RUFDaEIsU0FBUyxFQUFFLEtBQUs7RUFDaEIsS0FBSyxFQUFFLFdBQVc7RUFDakIsS0FBSyxFQUFFLG1CQUFtQjtFQUMzQixVQUFVLEVBQUUsSUFBSTtFQUNoQixHQUFHLEVBQUUsS0FBSztFQUNWLElBQUksRUFBRSxJQUFJO0VBQ1YsT0FBTyxFQUFFLEVBQUU7RUFDWCxhQUFhLEVBQUUsR0FBRztFQUNsQixPQUFPLEVBQUUsU0FBUztFQUNsQixTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxXQUFXO0VBQ3hCLGdCQUFnQixFQUFFLE9BQWE7RUFDL0IsS0FBSyxFQUFFLEtBQUs7RUFDWixXQUFXLEVBQUUsSUFBSTtFQUNqQixVQUFVLEVBQUUsSUFBSTtFQUNoQixjQUFjLEVBQUUsS0FBSyxHQWlCckI7RUFuQ0QsQUFvQkMsUUFwQk8sQ0FvQlAsVUFBVSxFQWlCWCxjQUFjLENBakJiLFVBQVUsRUFxQlgsZUFBZSxDQXJCZCxVQUFVLEVBMkJYLGFBQWEsQ0EzQlosVUFBVSxFQWlEWCxjQUFjLEFBQUEsTUFBTSxDQWpEbkIsVUFBVSxFQXFEWCxlQUFlLEFBQUEsTUFBTSxDQXJEcEIsVUFBVSxFQTZEWCxhQUFhLEFBQUEsTUFBTSxDQTdEbEIsVUFBVSxDQUFDO0lBQ1YsS0FBSyxFQUFFLE9BQU87SUFDZCxXQUFXLEVBQUUsR0FBRztJQUNkLGNBQWMsRUFBRSxJQUFJLEdBQ3RCO0VBeEJGLEFBMEJDLFFBMUJPLENBMEJQLFFBQVEsRUFXVCxjQUFjLENBWGIsUUFBUSxFQWVULGVBQWUsQ0FmZCxRQUFRLEVBcUJULGFBQWEsQ0FyQlosUUFBUSxFQTJDVCxjQUFjLEFBQUEsTUFBTSxDQTNDbkIsUUFBUSxFQStDVCxlQUFlLEFBQUEsTUFBTSxDQS9DcEIsUUFBUSxFQXVEVCxhQUFhLEFBQUEsTUFBTSxDQXZEbEIsUUFBUSxDQUFDO0lBQ1IsTUFBTSxFQUFFLElBQUk7SUFDVixjQUFjLEVBQUUsSUFBSSxHQUN0QjtFQUVELE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztJQS9CekIsQUFBQSxRQUFRLEVBcUNSLGNBQWMsRUFJZCxlQUFlLEVBTWYsYUFBYSxFQXNCYixjQUFjLEFBQUEsTUFBTSxFQUlwQixlQUFlLEFBQUEsTUFBTSxFQVFyQixhQUFhLEFBQUEsTUFBTSxDQWpGVjtNQWdDUCxTQUFTLEVBQUUsSUFBSTtNQUNmLE9BQU8sRUFBRSxTQUFTLEdBRW5COztBQU1ELEFBQUEsZUFBZSxDQUFDO0VBRWYsR0FBRyxFQUFFLElBQUk7RUFDVCxJQUFJLEVBQUUsTUFBTSxHQUNaOztBQUVELEFBQUEsYUFBYSxDQUFDO0VBRWIsSUFBSSxFQUFFLE9BQU87RUFDYixLQUFLLEVBQUUsSUFBSSxHQUNYOztBQUVELEFBQUEsUUFBUSxBQUFBLE1BQU0sRUFnQmQsY0FBYyxBQUFBLE1BQU0sRUFJcEIsZUFBZSxBQUFBLE1BQU0sRUFRckIsYUFBYSxBQUFBLE1BQU0sQ0E1Qko7RUFDZCxRQUFRLEVBQUUsUUFBUTtFQUNsQixJQUFJLEVBQUUsS0FBSztFQUNYLEdBQUcsRUFBRSxJQUFJO0VBQ1QsWUFBWSxFQUFFLFdBQVcsQ0FBQyxPQUFhO0VBQ3ZDLFlBQVksRUFBRSxLQUFLO0VBQ25CLFlBQVksRUFBRSxrQkFBa0I7RUFDaEMsTUFBTSxFQUFFLEdBQUc7RUFDWCxLQUFLLEVBQUUsR0FBRztFQUNWLE9BQU8sRUFBRSxHQUFHLEdBS1o7RUFIQSxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7SUFYekIsQUFBQSxRQUFRLEFBQUEsTUFBTSxFQWdCZCxjQUFjLEFBQUEsTUFBTSxFQUlwQixlQUFlLEFBQUEsTUFBTSxFQVFyQixhQUFhLEFBQUEsTUFBTSxDQTVCSjtNQVliLE9BQU8sRUFBRSxJQUFJLEdBRWQ7O0FBTUQsQUFBQSxlQUFlLEFBQUEsTUFBTSxDQUFDO0VBRXJCLElBQUksRUFBRSxLQUFLO0VBQ1gsR0FBRyxFQUFFLEtBQUs7RUFDVixZQUFZLEVBQUUsT0FBYSxDQUFDLFdBQVc7RUFDdkMsWUFBWSxFQUFFLGtCQUFrQixHQUNoQzs7QUFFRCxBQUFBLGFBQWEsQUFBQSxNQUFNLENBQUM7RUFFbkIsSUFBSSxFQUFFLE9BQU87RUFDYixLQUFLLEVBQUUsS0FBSztFQUNaLFlBQVksRUFBRSxrQkFBa0IsR0FDaEM7O0FBRUQsQUFBQSxhQUFhLENBQUM7RUFDYixLQUFLLEVBQUUsS0FBSztFQUNaLE9BQU8sRUFBRSxnQkFBZ0I7RUFDekIsS0FBSyxFQUFFLFNBQVM7RUFDaEIsTUFBTSxFQUFFLE9BQU87RUFDZixTQUFTLEVBQUUsSUFBSSxHQUNmOztBQVdELEFBQUEsY0FBYyxDQUFDO0VBQ2QsUUFBUSxFQUFFLFFBQVE7RUFDbEIsU0FBUyxFQUFFLEtBQUs7RUFDaEIsU0FBUyxFQUFFLEtBQUs7RUFDaEIsVUFBVSxFQUFFLEtBQUs7RUFDakIsT0FBTyxFQUFFLElBQUk7RUFDYixnQkFBZ0IsRUFBRSxPQUFPO0VBQ3pCLE9BQU8sRUFBRSxDQUFDO0VBQ1YsTUFBTSxFQUFFLE9BQU87RUFDZixjQUFjLEVBQUUsSUFBSSxHQW1HcEI7RUE1R0QsQUFXQyxjQVhhLENBV2IsT0FBTyxDQUFDO0lBQ1AsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixjQUFjLEVBQUUsU0FBUztJQUN6QixVQUFVLEVBQUUsTUFBTTtJQUNsQixLQUFLLEVBQUUsT0FBTyxHQUNkO0VBakJGLEFBbUJDLGNBbkJhLENBbUJiLFFBQVEsQ0FBQztJQUNSLFNBQVMsRUFBRSxJQUFJO0lBQ2YsVUFBVSxFQUFFLEdBQUc7SUFDZixhQUFhLEVBQUUsR0FBRyxHQWFsQjtJQW5DRixBQXdCRSxjQXhCWSxDQW1CYixRQUFRLEdBS0wsR0FBRyxDQUFDO01qRGhFTixPQUFPLEVBQUUsWUFBWTtNQUNyQixPQUFPLEVBQUUsV0FBVztNQUNwQixPQUFPLEVBQUUsSUFBSTtNQVhiLHNCQUFzQixFQThDRSxHQUFHO01BN0NuQixjQUFjLEVBNkNFLEdBQUc7TUF4RDNCLG1CQUFtQixFaURxRlEsTUFBTTtNakRwRnpCLFdBQVcsRWlEb0ZRLE1BQU07TUFDaEMsVUFBVSxFQUFFLElBQUk7TUFDaEIsVUFBVSxFQUFFLElBQUksR0FNaEI7TUFsQ0gsQUE4QkcsY0E5QlcsQ0FtQmIsUUFBUSxHQUtMLEdBQUcsR0FNRixDQUFDLENBQUM7UUFBRSxTQUFTLEVBQUUsSUFBSSxHQUFJO01BOUI1QixBQStCRyxjQS9CVyxDQW1CYixRQUFRLEdBS0wsR0FBRyxHQU9GLEdBQUcsQ0FBQztRQUFFLFdBQVcsRUFBRSxHQUFHLEdBQUk7TUEvQi9CLEFBaUNHLGNBakNXLENBbUJiLFFBQVEsR0FLTCxHQUFHLEFBU0gsVUFBVSxDQUFDO1FBQUUsS0FBSyxFQUFFLE9BQU8sR0FBSTtFQWpDbkMsQUFxQ0MsY0FyQ2EsQUFxQ1osT0FBTyxDQUFDO0lBQ1IsU0FBUyxFQUFFLE1BQU0sR0FDakI7RUF2Q0YsQUF5Q0MsY0F6Q2EsQUF5Q1osT0FBTyxBQUFBLE1BQU0sQ0FBQztJQWpEZixRQUFRLEVBQUUsUUFBUTtJQUNsQixLQUFLLEVBQUUsR0FBRztJQUNWLE1BQU0sRUFBRSxHQUFHO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixZQUFZLEVBQUUsS0FBSztJQUNuQixPQUFPLEVBQUUsRUFBRTtJQThDVixJQUFJLEVBQUUsQ0FBQztJQUNQLEtBQUssRUFBRSxDQUFDO0lBQ1IsTUFBTSxFQUFFLElBQUk7SUFDWixZQUFZLEVBQUUsbUJBQW1CO0lBQ2pDLFlBQVksRUFBRSxnQkFBZ0IsR0FDOUI7RUFoREYsQUFrREMsY0FsRGEsQUFrRFosWUFBWSxBQUFBLE1BQU0sQ0FBQztJQTFEcEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsS0FBSyxFQUFFLEdBQUc7SUFDVixNQUFNLEVBQUUsR0FBRztJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osWUFBWSxFQUFFLEtBQUs7SUFDbkIsT0FBTyxFQUFFLEVBQUU7SUF1RFYsSUFBSSxFQUFFLElBQUk7SUFDVixNQUFNLEVBQUUsSUFBSTtJQUNaLFlBQVksRUFBRSxtQkFBbUI7SUFDakMsWUFBWSxFQUFFLGdCQUFnQixHQUM5QjtFQXhERixBQTBEQyxjQTFEYSxBQTBEWixhQUFhLEFBQUEsTUFBTSxDQUFDO0lBbEVyQixRQUFRLEVBQUUsUUFBUTtJQUNsQixLQUFLLEVBQUUsR0FBRztJQUNWLE1BQU0sRUFBRSxHQUFHO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixZQUFZLEVBQUUsS0FBSztJQUNuQixPQUFPLEVBQUUsRUFBRTtJQStEVixLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osWUFBWSxFQUFFLG1CQUFtQjtJQUNqQyxZQUFZLEVBQUUsZ0JBQWdCLEdBQzlCO0VBaEVGLEFBa0VDLGNBbEVhLEFBa0VaLElBQUksQUFBQSxNQUFNLENBQUM7SUExRVosUUFBUSxFQUFFLFFBQVE7SUFDbEIsS0FBSyxFQUFFLEdBQUc7SUFDVixNQUFNLEVBQUUsR0FBRztJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osWUFBWSxFQUFFLEtBQUs7SUFDbkIsT0FBTyxFQUFFLEVBQUU7SUF1RVYsSUFBSSxFQUFFLENBQUM7SUFDUCxLQUFLLEVBQUUsQ0FBQztJQUNSLEdBQUcsRUFBRSxJQUFJO0lBQ1QsWUFBWSxFQUFFLG1CQUFtQjtJQUNqQyxZQUFZLEVBQUUsZ0JBQWdCLEdBQzlCO0VBekVGLEFBMkVDLGNBM0VhLEFBMkVaLFNBQVMsQUFBQSxNQUFNLENBQUM7SUFuRmpCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEtBQUssRUFBRSxHQUFHO0lBQ1YsTUFBTSxFQUFFLEdBQUc7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLFlBQVksRUFBRSxLQUFLO0lBQ25CLE9BQU8sRUFBRSxFQUFFO0lBZ0ZWLElBQUksRUFBRSxJQUFJO0lBQ1YsR0FBRyxFQUFFLElBQUk7SUFDVCxZQUFZLEVBQUUsbUJBQW1CO0lBQ2pDLFlBQVksRUFBRSxnQkFBZ0IsR0FDOUI7RUFqRkYsQUFtRkMsY0FuRmEsQUFtRlosVUFBVSxBQUFBLE1BQU0sQ0FBQztJQTNGbEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsS0FBSyxFQUFFLEdBQUc7SUFDVixNQUFNLEVBQUUsR0FBRztJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osWUFBWSxFQUFFLEtBQUs7SUFDbkIsT0FBTyxFQUFFLEVBQUU7SUF3RlYsS0FBSyxFQUFFLElBQUk7SUFDWCxHQUFHLEVBQUUsSUFBSTtJQUNULFlBQVksRUFBRSxtQkFBbUI7SUFDakMsWUFBWSxFQUFFLGdCQUFnQixHQUM5QjtFQXpGRixBQTJGQyxjQTNGYSxBQTJGWixLQUFLLEFBQUEsTUFBTSxDQUFDO0lBbkdiLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEtBQUssRUFBRSxHQUFHO0lBQ1YsTUFBTSxFQUFFLEdBQUc7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLFlBQVksRUFBRSxLQUFLO0lBQ25CLE9BQU8sRUFBRSxFQUFFO0lBZ0dWLEdBQUcsRUFBRSxDQUFDO0lBQ04sTUFBTSxFQUFFLENBQUM7SUFDVCxJQUFJLEVBQUUsSUFBSTtJQUNWLFlBQVksRUFBRSxtQkFBbUI7SUFDakMsWUFBWSxFQUFFLGdCQUFnQixHQUM5QjtFQWxHRixBQW9HQyxjQXBHYSxBQW9HWixNQUFNLEFBQUEsTUFBTSxDQUFDO0lBNUdkLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEtBQUssRUFBRSxHQUFHO0lBQ1YsTUFBTSxFQUFFLEdBQUc7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLFlBQVksRUFBRSxLQUFLO0lBQ25CLE9BQU8sRUFBRSxFQUFFO0lBeUdWLEdBQUcsRUFBRSxDQUFDO0lBQ04sTUFBTSxFQUFFLENBQUM7SUFDVCxLQUFLLEVBQUUsSUFBSTtJQUNYLFlBQVksRUFBRSxtQkFBbUI7SUFDakMsWUFBWSxFQUFFLGdCQUFnQixHQUM5Qjs7QUFHRixBQUFBLEdBQUcsQ0FBQztFQUNGLFNBQVMsRUFBRSxlQUFlLEdBQzNCOztBR2hPRCxBQUNFLGlCQURlLENBQ2YsZUFBZSxDQUFDO0VwRDBIaEIsVUFBVSxFb0R6SGEsS0FBSztFcEQwSDVCLFVBQVUsRW9EMUhhLEtBQUs7RXBEMkg1QixNQUFNLEVvRDNIaUIsS0FBSztFcEQrSDVCLFNBQVMsRW9EOUhhLEtBQUs7RXBEK0gzQixTQUFTLEVvRC9IYSxLQUFLO0VwRGdJM0IsS0FBSyxFb0RoSWlCLEtBQUs7RUFDekIsTUFBTSxFQUFFLGVBQWU7RUFDdkIsU0FBUyxFQUFFLElBQUk7RUFDZixLQUFLLEVBQUUsSUFBSTtFQUNYLE1BQU0sRUFBRSxPQUFPO0VBQ2YsUUFBUSxFQUFFLFFBQVEsR0FxQm5CO0VBN0JILEFBVUksaUJBVmEsQ0FDZixlQUFlLEdBU1gsZUFBZSxDQUFDO0lBQ2hCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEdBQUcsRUFBRSxDQUFDO0lBQ04sSUFBSSxFQUFFLENBQUM7SUFDUCxLQUFLLEVBQUUsQ0FBQztJQUNSLE1BQU0sRUFBRSxDQUFDO0lBQ1QsT0FBTyxFQUFFLENBQUM7SUFDVixVQUFVLEVBQUUsTUFBTSxHQUNuQjtFQWxCTCxBQW9CSSxpQkFwQmEsQ0FDZixlQUFlLEdBbUJYLGVBQWUsQ0FBQztJQUNoQixRQUFRLEVBQUUsUUFBUTtJQUNsQixHQUFHLEVBQUUsQ0FBQztJQUNOLElBQUksRUFBRSxDQUFDO0lBQ1AsS0FBSyxFQUFFLENBQUM7SUFDUixNQUFNLEVBQUUsQ0FBQztJQUNULE9BQU8sRUFBRSxDQUFDO0lBQ1YsZ0JBQWdCLEVBQUUsT0FBTyxHQUMxQjs7QUE1QkwsQUErQkUsaUJBL0JlLEdBK0JiLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxNQUFNLEFBQVgsRUFBYTtFQUNuQixPQUFPLEVBQUUsQ0FBQyxHQUNYOztBQUdILEFBQUEsR0FBRyxBQUFBLGNBQWMsQ0FDakI7RXBEbUNFLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBWGIsc0JBQXNCLEVBOENFLEdBQUc7RUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztFQWMzQixVQUFVLEVvRHBGVyxLQUFLO0VwRHFGMUIsVUFBVSxFb0RyRlcsS0FBSztFcERzRjFCLE1BQU0sRW9EdEZlLEtBQUs7RUFDMUIsVUFBVSxFQUFFLElBQUksR0FPakI7RUFYRCxBQUtFLEdBTEMsQUFBQSxjQUFjLENBS2YsWUFBWSxDQUFDO0lBQ1gsV0FBVyxFQUFFLElBQUksR0FDbEI7RUFQSCxBQVFFLEdBUkMsQUFBQSxjQUFjLENBUWYsa0JBQWtCLENBQUM7SUFDakIsS0FBSyxFQUFFLEtBQUssR0FDYjs7QUFHSCxBQUNFLGNBRFksQ0FDWixNQUFNLENBQUM7RXBEeUVQLFVBQVUsRW9EeEVhLElBQUk7RXBEeUUzQixVQUFVLEVvRHpFYSxJQUFJO0VwRDBFM0IsTUFBTSxFb0QxRWlCLElBQUk7RXBEOEUzQixTQUFTLEVvRDdFYSxJQUFJO0VwRDhFMUIsU0FBUyxFb0Q5RWEsSUFBSTtFcEQrRTFCLEtBQUssRW9EL0VpQixJQUFJO0VBQ3hCLFNBQVMsRUFBRSxJQUFJLEdBQ2hCOztBQUdILEFBQUEsY0FBYyxDQUFDO0VwRHdFYixTQUFTLEVvRHZFVyxLQUFLO0VwRHdFekIsU0FBUyxFb0R4RVcsS0FBSztFcER5RXpCLEtBQUssRW9EekVlLEtBQUssR0FxQzFCO0VBdENELEFBR0UsY0FIWSxDQUdaLFVBQVUsQ0FBQztJQUNULGFBQWEsRUFBRSxJQUFJO0lBQ25CLFNBQVMsRUFBRSxJQUFJLEdBSWhCO0lBVEgsQUFNSSxjQU5VLENBR1osVUFBVSxDQUdSLGVBQWUsQ0FBQztNQUNkLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0VBUkwsQUFXRSxjQVhZLENBV1osdUJBQXVCLENBQUM7SXBEdUR4QixVQUFVLEVvRHREYSxJQUFJO0lwRHVEM0IsVUFBVSxFb0R2RGEsSUFBSTtJcER3RDNCLE1BQU0sRW9EeERpQixJQUFJO0lBQ3pCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLGdCQUFnQixFQUFFLE9BQU8sR0FtQjFCO0lBakNILEFBZ0JJLGNBaEJVLENBV1osdUJBQXVCLEdBS25CLGFBQWEsQ0FBQztNcERrRGxCLFVBQVUsRW9EakRlLElBQUk7TXBEa0Q3QixVQUFVLEVvRGxEZSxJQUFJO01wRG1EN0IsTUFBTSxFb0RuRG1CLElBQUk7TUFDekIsYUFBYSxFQUFFLEdBQUc7TUFDbEIsZ0JBQWdCLEVyRDNFZixPQUFPO01xRDRFUixTQUFTLEVBQUUsSUFBSTtNQUNmLFdBQVcsRUFBRSxHQUFHO01BQ2hCLEtBQUssRUFBRSxPQUFPO01BQ2QsV0FBVyxFQUFFLEdBQUcsR0FTakI7TUFoQ0wsQUF5Qk0sY0F6QlEsQ0FXWix1QkFBdUIsR0FLbkIsYUFBYSxBQVNaLFFBQVEsQ0FBQztRQUNSLGdCQUFnQixFckRsRmpCLE9BQU8sR3FEbUZQO01BM0JQLEFBNkJNLGNBN0JRLENBV1osdUJBQXVCLEdBS25CLGFBQWEsQUFhWixNQUFNLENBQUM7UUFDTixnQkFBZ0IsRUFBRSxPQUFPLEdBQzFCO0VBL0JQLEFBbUNFLGNBbkNZLENBbUNaLFFBQVEsQ0FBQztJQUNQLFVBQVUsRUFBRSxJQUFJLEdBQ2pCOztBQzlGSCxBQUFBLG1CQUFtQixDQUFDO0VyRDBDbEIsWUFBWSxFcUR6Q0UsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO0VyRDBDbkIsUUFBUSxFcUQxQ0UsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO0VyRDJDZixJQUFJLEVxRDNDRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7RUFDdkIsUUFBUSxFQUFFLFFBQVEsR0FDbkI7O0FBRUQsQUFBQSxhQUFhLENBQUM7RXJEcUNaLFlBQVksRXFEcENFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztFckRxQ25CLFFBQVEsRXFEckNFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztFckRzQ2YsSUFBSSxFcUR0Q0UsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO0VyRDJIdkIsU0FBUyxFcUQxSFcsS0FBSztFckQySHpCLFNBQVMsRXFEM0hXLEtBQUs7RXJENEh6QixLQUFLLEVxRDVIZSxLQUFLO0VBQ3pCLGdCQUFnQixFdERIVixPQUFPO0VzREtiLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxDQUFDO0VBQ04sSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsQ0FBQztFQUNSLE1BQU0sRUFBRSxDQUFDLEdBcUhWO0VBOUhELEFBV0UsYUFYVyxDQVdYLE9BQU8sQ0FBQztJckQyR1IsVUFBVSxFcUQxR2EsSUFBSTtJckQyRzNCLFVBQVUsRXFEM0dhLElBQUk7SXJENEczQixNQUFNLEVxRDVHaUIsSUFBSTtJQUN6QixhQUFhLEVBQUUsY0FBYztJQUM3QixZQUFZLEVBQUUsY0FBYyxHQXNDN0I7SUFwREgsQUFnQkksYUFoQlMsQ0FXWCxPQUFPLENBS0wsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLE1BQU0sQUFBWCxFQUFhO01yRHFCckIsWUFBWSxFcURwQk0sQ0FBQztNckRxQmYsUUFBUSxFcURyQk0sQ0FBQztNckRzQlgsSUFBSSxFcUR0Qk0sQ0FBQztNQUNmLE1BQU0sRUFBRSxJQUFJO01BQ1osU0FBUyxFQUFFLElBQUk7TUFDZixXQUFXLEVBQUUsR0FBRztNQUNoQixNQUFNLEVBQUUsSUFBSTtNQUNaLFdBQVcsRUFBRSxJQUFJO01BQ2pCLFdBQVcsRUFBRSxJQUFJO01BQ2pCLE9BQU8sRUFBRSxJQUFJLEdBQ2Q7SUF6QkwsQUEyQkksYUEzQlMsQ0FXWCxPQUFPLENBZ0JMLE1BQU0sQ0FBQSxBQUFBLElBQUMsQ0FBSyxPQUFPLEFBQVosRUFBYztNckRVdkIsWUFBWSxFcURUTSxDQUFDO01yRFVmLFFBQVEsRXFEVk0sQ0FBQztNckRXWCxJQUFJLEVxRFhNLENBQUM7TXJEZ0duQixTQUFTLEVxRC9GZSxJQUFJO01yRGdHNUIsU0FBUyxFcURoR2UsSUFBSTtNckRpRzVCLEtBQUssRXFEakdtQixJQUFJO01BQ3hCLGdCQUFnQixFQUFFLElBQUk7TUFDdEIsTUFBTSxFQUFFLElBQUk7TUFDWixLQUFLLEVBQUUsT0FBTztNQUNkLFNBQVMsRUFBRSxJQUFJO01BQ2YsTUFBTSxFQUFFLE1BQU07TUFDZCxVQUFVLEVBQUUsSUFBSSxHQUNqQjtJQXBDTCxBQXNDSSxhQXRDUyxDQVdYLE9BQU8sQ0EyQkwsTUFBTSxDQUFBLEFBQUEsSUFBQyxDQUFLLFFBQVEsQUFBYixFQUFlO01yRER4QixZQUFZLEVxREVNLENBQUM7TXJERGYsUUFBUSxFcURDTSxDQUFDO01yREFYLElBQUksRXFEQU0sQ0FBQztNckRxRm5CLFNBQVMsRXFEcEZlLElBQUk7TXJEcUY1QixTQUFTLEVxRHJGZSxJQUFJO01yRHNGNUIsS0FBSyxFcUR0Rm1CLElBQUk7TUFDeEIsZ0JBQWdCLEVBQUUsV0FBVztNQUM3QixNQUFNLEVBQUUsSUFBSTtNQUNaLEtBQUssRUFBRSxPQUFPO01BQ2QsTUFBTSxFQUFFLEdBQUc7TUFDWCxVQUFVLEVBQUUsSUFBSSxHQUNqQjtJQTlDTCxBQWdESSxhQWhEUyxDQVdYLE9BQU8sQ0FxQ0wsQ0FBQyxBQUFBLEdBQUcsQ0FBQztNQUNILFNBQVMsRUFBRSxJQUFJO01BQ2YsS0FBSyxFQUFFLElBQUksR0FDWjtFQW5ETCxBQXNERSxhQXREVyxDQXNEWCxJQUFJLENBQUM7SXJEZ0VMLFVBQVUsRXFEL0RhLElBQUk7SXJEZ0UzQixVQUFVLEVxRGhFYSxJQUFJO0lyRGlFM0IsTUFBTSxFcURqRWlCLElBQUk7SUFDekIsWUFBWSxFQUFFLGNBQWM7SUFDNUIsYUFBYSxFQUFFLGNBQWM7SUFDN0IsT0FBTyxFQUFFLElBQUksR0FTZDtJQW5FSCxBQTRESSxhQTVEUyxDQXNEWCxJQUFJLENBTUYsQ0FBQyxBQUFBLEdBQUcsQ0FBQztNckR2QlAsWUFBWSxFcUR3Qk0sR0FBRTtNckR2QmhCLFFBQVEsRXFEdUJNLEdBQUU7TXJEdEJaLElBQUksRXFEc0JNLEdBQUUsR0FDakI7SUE5REwsQUFnRUksYUFoRVMsQ0FzRFgsSUFBSSxDQVVGLE1BQU0sQ0FBQztNckQzQlQsWUFBWSxFcUQ0Qk0sS0FBSTtNckQzQmxCLFFBQVEsRXFEMkJNLEtBQUk7TXJEMUJkLElBQUksRXFEMEJNLEtBQUksR0FDbkI7RUFsRUwsQUFxRUUsYUFyRVcsQ0FxRVgsS0FBSyxDQUFDO0lyRGhDTixZQUFZLEVxRGlDSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SXJEaENwQixRQUFRLEVxRGdDSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SXJEL0JoQixJQUFJLEVxRCtCSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SUFDdEIsWUFBWSxFQUFFLGNBQWM7SUFDNUIsVUFBVSxFQUFFLElBQUk7SUFDaEIsVUFBVSxFQUFFLElBQUksR0E4Q2pCO0lBdkhILEFBMkVJLGFBM0VTLENBcUVYLEtBQUssR0FNQyxHQUFHLEFBQUEsSUFBSyxDQUFBLE9BQU8sRUFBRTtNckR0Q3ZCLFlBQVksRXFEdUNNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtNckR0Q3RCLFFBQVEsRXFEc0NNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtNckRyQ2xCLElBQUksRXFEcUNNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtNQUN0QixhQUFhLEVBQUUsY0FBYyxHQXFDOUI7TUFsSEwsQUErRU0sYUEvRU8sQ0FxRVgsS0FBSyxHQU1DLEdBQUcsQUFBQSxJQUFLLENBQUEsT0FBTyxFQUlqQixPQUFPLENBQUM7UUFDTixXQUFXLEVBQUUsSUFBSTtRQUNqQixZQUFZLEVBQUUsSUFBSSxHQWdDbkI7UUFqSFAsQUFtRlEsYUFuRkssQ0FxRVgsS0FBSyxHQU1DLEdBQUcsQUFBQSxJQUFLLENBQUEsT0FBTyxFQUlqQixPQUFPLENBSUwsWUFBWSxDQUFDO1VBQ1gsTUFBTSxFQUFFLGNBQWM7VUFDdEIsT0FBTyxFQUFFLE9BQU8sR0FXakI7VUFoR1QsQUF1RlUsYUF2RkcsQ0FxRVgsS0FBSyxHQU1DLEdBQUcsQUFBQSxJQUFLLENBQUEsT0FBTyxFQUlqQixPQUFPLENBSUwsWUFBWSxDQUlWLEtBQUssQ0FBQztZQUNKLEtBQUssRXRENUZWLE9BQU87WXNENkZGLFNBQVMsRUFBRSxJQUFJO1lBQ2YsTUFBTSxFQUFFLEtBQUssR0FLZDtZQS9GWCxBQTRGWSxhQTVGQyxDQXFFWCxLQUFLLEdBTUMsR0FBRyxBQUFBLElBQUssQ0FBQSxPQUFPLEVBSWpCLE9BQU8sQ0FJTCxZQUFZLENBSVYsS0FBSyxBQUtGLFNBQVMsQ0FBQztjQUNULEtBQUssRUFBRSxJQUFJLEdBQ1o7UUE5RmIsQUFrR1EsYUFsR0ssQ0FxRVgsS0FBSyxHQU1DLEdBQUcsQUFBQSxJQUFLLENBQUEsT0FBTyxFQUlqQixPQUFPLENBbUJMLFdBQVcsQ0FBQztVQUNWLE1BQU0sRUFBRSxNQUFNLEdBU2Y7VUE1R1QsQUFxR1UsYUFyR0csQ0FxRVgsS0FBSyxHQU1DLEdBQUcsQUFBQSxJQUFLLENBQUEsT0FBTyxFQUlqQixPQUFPLENBbUJMLFdBQVcsR0FHTCxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUNqQixZQUFZLEVBQUUsR0FBRyxHQUNsQjtVQXZHWCxBQXlHVSxhQXpHRyxDQXFFWCxLQUFLLEdBTUMsR0FBRyxBQUFBLElBQUssQ0FBQSxPQUFPLEVBSWpCLE9BQU8sQ0FtQkwsV0FBVyxHQU9MLEdBQUcsR0FBRyxHQUFHLENBQUM7WUFDWixXQUFXLEVBQUUsSUFBSSxHQUNsQjtRQTNHWCxBQThHUSxhQTlHSyxDQXFFWCxLQUFLLEdBTUMsR0FBRyxBQUFBLElBQUssQ0FBQSxPQUFPLEVBSWpCLE9BQU8sQUErQkosT0FBTyxDQUFDO1VBQ1AsT0FBTyxFQUFFLElBQUksR0FDZDtJQWhIVCxBQW9ISSxhQXBIUyxDQXFFWCxLQUFLLEdBK0NDLEdBQUcsQUFBQSxPQUFPLENBQUM7TXJEL0VqQixZQUFZLEVxRGdGTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TXJEL0V0QixRQUFRLEVxRCtFTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TXJEOUVsQixJQUFJLEVxRDhFTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FDdkI7O0FBR0gsY0FBYyxDQUFkLFlBQWM7RUF6SGhCLEFBcUVFLGFBckVXLENBcUVYLEtBQUssQ0FxREc7SUFDSixNQUFNLEVBQUUsQ0FBQyxHQUNWOztBQUlMLEFBQUEsZ0JBQWdCLENBQUM7RXJEM0ZmLFlBQVksRXFENEZFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztFckQzRm5CLFFBQVEsRXFEMkZFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztFckQxRmYsSUFBSSxFcUQwRkUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO0VBQ3ZCLGdCQUFnQixFdERsSVYsT0FBTztFc0RtSWIsVUFBVSxFQUFFLElBQUksR0FnRmpCO0VBbkZELEFBS0UsZ0JBTGMsQ0FLZCxLQUFLLENBQUM7SXJEaEdOLFlBQVksRXFEaUdJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJckRoR3BCLFFBQVEsRXFEZ0dJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJckQvRmhCLElBQUksRXFEK0ZJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJQUN0QixVQUFVLEVBQUUsSUFBSTtJQUNoQixVQUFVLEVBQUUsSUFBSSxHQW9FakI7SUE1RUgsQUFVSSxnQkFWWSxDQUtkLEtBQUssR0FLQyxHQUFHLEFBQUEsSUFBSyxDQS9EQSxPQUFPLEVBK0RFO01yRHJHdkIsWUFBWSxFcURzR00sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO01yRHJHdEIsUUFBUSxFcURxR00sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO01yRHBHbEIsSUFBSSxFcURvR00sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO01BQ3RCLGFBQWEsRUFBRSxjQUFjLEdBMkQ5QjtNQXZFTCxBQWVRLGdCQWZRLENBS2QsS0FBSyxHQUtDLEdBQUcsQUFBQSxJQUFLLENBL0RBLE9BQU8sRUFtRWpCLGNBQWMsR0FDVixHQUFHLENBQUM7UXJEMUdaLFlBQVksRXFEMkdVLENBQUM7UXJEMUduQixRQUFRLEVxRDBHVSxDQUFDO1FyRHpHZixJQUFJLEVxRHlHVSxDQUFDLEdBQ2hCO01BakJULEFBa0JRLGdCQWxCUSxDQUtkLEtBQUssR0FLQyxHQUFHLEFBQUEsSUFBSyxDQS9EQSxPQUFPLEVBbUVqQixjQUFjLENBSVosS0FBSyxDQUFDO1FBQ0osU0FBUyxFQUFFLElBQUksR0FDaEI7TUFwQlQsQUFxQlEsZ0JBckJRLENBS2QsS0FBSyxHQUtDLEdBQUcsQUFBQSxJQUFLLENBL0RBLE9BQU8sRUFtRWpCLGNBQWMsQ0FPWixhQUFhLENBQUM7UXJEaEhwQixZQUFZLEVxRGlIVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7UXJEaEgxQixRQUFRLEVxRGdIVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7UXJEL0d0QixJQUFJLEVxRCtHVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7UUFDdEIsU0FBUyxFQUFFLElBQUk7UUFDZixLQUFLLEVBQUUsSUFBSTtRQUNYLE1BQU0sRUFBRSxJQUFJO1FBQ1osV0FBVyxFQUFFLElBQUk7UUFDakIsVUFBVSxFQUFFLE1BQU07UUFDbEIsTUFBTSxFQUFFLE1BQU0sR0FLZjtRQWpDVCxBQTZCVSxnQkE3Qk0sQ0FLZCxLQUFLLEdBS0MsR0FBRyxBQUFBLElBQUssQ0EvREEsT0FBTyxFQW1FakIsY0FBYyxDQU9aLGFBQWEsQUFRVixNQUFNLENBQUM7VUFDTixLQUFLLEV0RGxLVixPQUFPO1VzRG1LRixZQUFZLEV0RG5LakIsT0FBTyxHc0RvS0g7TUFoQ1gsQUFvQ00sZ0JBcENVLENBS2QsS0FBSyxHQUtDLEdBQUcsQUFBQSxJQUFLLENBL0RBLE9BQU8sRUF5RmpCLE9BQU8sQ0FBQztRQUNOLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFlBQVksRUFBRSxJQUFJLEdBZ0NuQjtRQXRFUCxBQXdDUSxnQkF4Q1EsQ0FLZCxLQUFLLEdBS0MsR0FBRyxBQUFBLElBQUssQ0EvREEsT0FBTyxFQXlGakIsT0FBTyxDQUlMLFlBQVksQ0FBQztVQUNYLE1BQU0sRUFBRSxjQUFjO1VBQ3RCLE9BQU8sRUFBRSxPQUFPLEdBV2pCO1VBckRULEFBNENVLGdCQTVDTSxDQUtkLEtBQUssR0FLQyxHQUFHLEFBQUEsSUFBSyxDQS9EQSxPQUFPLEVBeUZqQixPQUFPLENBSUwsWUFBWSxDQUlWLEtBQUssQ0FBQztZQUNKLEtBQUssRXREakxWLE9BQU87WXNEa0xGLFNBQVMsRUFBRSxJQUFJO1lBQ2YsTUFBTSxFQUFFLEtBQUssR0FLZDtZQXBEWCxBQWlEWSxnQkFqREksQ0FLZCxLQUFLLEdBS0MsR0FBRyxBQUFBLElBQUssQ0EvREEsT0FBTyxFQXlGakIsT0FBTyxDQUlMLFlBQVksQ0FJVixLQUFLLEFBS0YsU0FBUyxDQUFDO2NBQ1QsS0FBSyxFQUFFLElBQUksR0FDWjtRQW5EYixBQXVEUSxnQkF2RFEsQ0FLZCxLQUFLLEdBS0MsR0FBRyxBQUFBLElBQUssQ0EvREEsT0FBTyxFQXlGakIsT0FBTyxDQW1CTCxXQUFXLENBQUM7VUFDVixNQUFNLEVBQUUsTUFBTSxHQVNmO1VBakVULEFBMERVLGdCQTFETSxDQUtkLEtBQUssR0FLQyxHQUFHLEFBQUEsSUFBSyxDQS9EQSxPQUFPLEVBeUZqQixPQUFPLENBbUJMLFdBQVcsR0FHTCxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUNqQixZQUFZLEVBQUUsR0FBRyxHQUNsQjtVQTVEWCxBQThEVSxnQkE5RE0sQ0FLZCxLQUFLLEdBS0MsR0FBRyxBQUFBLElBQUssQ0EvREEsT0FBTyxFQXlGakIsT0FBTyxDQW1CTCxXQUFXLEdBT0wsR0FBRyxHQUFHLEdBQUcsQ0FBQztZQUNaLFdBQVcsRUFBRSxJQUFJLEdBQ2xCO1FBaEVYLEFBbUVRLGdCQW5FUSxDQUtkLEtBQUssR0FLQyxHQUFHLEFBQUEsSUFBSyxDQS9EQSxPQUFPLEVBeUZqQixPQUFPLEFBK0JKLE9BQU8sQ0FBQztVQUNQLE9BQU8sRUFBRSxJQUFJLEdBQ2Q7SUFyRVQsQUF5RUksZ0JBekVZLENBS2QsS0FBSyxHQW9FQyxHQUFHLEFBQUEsT0FBTyxDQUFDO01yRHBLakIsWUFBWSxFcURxS00sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO01yRHBLdEIsUUFBUSxFcURvS00sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO01yRG5LbEIsSUFBSSxFcURtS00sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQ3ZCOztBQUdILGNBQWMsQ0FBZCxZQUFjO0VBOUVoQixBQUtFLGdCQUxjLENBS2QsS0FBSyxDQTBFRztJQUNKLE1BQU0sRUFBRSxDQUFDLEdBQ1Y7O0FBSUwsQUFBQSxRQUFRLENBQUM7RXJEL0ZQLFVBQVUsRXFEZ0dXLEtBQUs7RXJEL0YxQixVQUFVLEVxRCtGVyxLQUFLO0VyRDlGMUIsTUFBTSxFcUQ4RmUsS0FBSyxHQW1GM0I7RUFwRkQsQUFHRSxRQUhNLEdBR0osZ0JBQWdCO0VBSHBCLFFBQVEsR0FJSix3QkFBd0I7RUFKNUIsUUFBUSxHQUtKLEdBQUcsQ0FBQztJckRyTE4sWUFBWSxFcURzTEksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHO0lyRHJMbkIsUUFBUSxFcURxTEksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHO0lyRHBMZixJQUFJLEVxRG9MSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUc7SXJEM0t2QixtQkFBbUIsRXFENEtTLE1BQU07SXJEM0sxQixXQUFXLEVxRDJLUyxNQUFNO0lyRG5KbEMsdUJBQXVCLEVxRG9KUyxNQUFNO0lyRG5KOUIsZUFBZSxFcURtSlMsTUFBTTtJQUNwQzs7OzswQkFJc0I7SUFDdEIsU0FBUyxFQUFFLEdBQUc7SUFDZCxVQUFVLEVBQUUsSUFBSTtJQUNoQixRQUFRLEVBQUUsUUFBUTtJQUNsQixhQUFhLEVBQUUsY0FBYztJQUM3QixZQUFZLEVBQUUsY0FBYztJQUM1QixZQUFZLEVBQUUsSUFBSTtJQUNsQixhQUFhLEVBQUUsSUFBSSxHQWlEcEI7SUFyRUgsQUFzQkksUUF0QkksR0FHSixnQkFBZ0IsQ0FtQmhCLGNBQWM7SUF0QmxCLFFBQVEsR0FJSix3QkFBd0IsQ0FrQnhCLGNBQWM7SUF0QmxCLFFBQVEsR0FLSixHQUFHLENBaUJILGNBQWMsQ0FBQztNQUNiLEtBQUssRUFBRSxJQUFJO01BQ1gsTUFBTSxFQUFFLE9BQU8sR0FtQmhCO01BM0NMLEFBMEJNLFFBMUJFLEdBR0osZ0JBQWdCLENBbUJoQixjQUFjLEFBSVgsU0FBUztNQTFCaEIsUUFBUSxHQUlKLHdCQUF3QixDQWtCeEIsY0FBYyxBQUlYLFNBQVM7TUExQmhCLFFBQVEsR0FLSixHQUFHLENBaUJILGNBQWMsQUFJWCxTQUFTLENBQUM7UUFDVCxNQUFNLEVBQUUsT0FBTyxHQU9oQjtRQWxDUCxBQTRCUSxRQTVCQSxHQUdKLGdCQUFnQixDQW1CaEIsY0FBYyxBQUlYLFNBQVMsQ0FFUixJQUFJO1FBNUJaLFFBQVEsR0FJSix3QkFBd0IsQ0FrQnhCLGNBQWMsQUFJWCxTQUFTLENBRVIsSUFBSTtRQTVCWixRQUFRLEdBS0osR0FBRyxDQWlCSCxjQUFjLEFBSVgsU0FBUyxDQUVSLElBQUksQ0FBQztVQUNILFVBQVUsRUFBRSxNQUFNLEdBQ25CO1FBOUJULEFBK0JRLFFBL0JBLEdBR0osZ0JBQWdCLENBbUJoQixjQUFjLEFBSVgsU0FBUyxDQUtSLENBQUM7UUEvQlQsUUFBUSxHQUlKLHdCQUF3QixDQWtCeEIsY0FBYyxBQUlYLFNBQVMsQ0FLUixDQUFDO1FBL0JULFFBQVEsR0FLSixHQUFHLENBaUJILGNBQWMsQUFJWCxTQUFTLENBS1IsQ0FBQyxDQUFDO1VBQ0EsT0FBTyxFQUFFLElBQUksR0FDZDtNQWpDVCxBQW9DTSxRQXBDRSxHQUdKLGdCQUFnQixDQW1CaEIsY0FBYyxDQWNaLElBQUk7TUFwQ1YsUUFBUSxHQUlKLHdCQUF3QixDQWtCeEIsY0FBYyxDQWNaLElBQUk7TUFwQ1YsUUFBUSxHQUtKLEdBQUcsQ0FpQkgsY0FBYyxDQWNaLElBQUksQ0FBQztRckRwTlQsWUFBWSxFcURxTlEsR0FBRTtRckRwTmxCLFFBQVEsRXFEb05RLEdBQUU7UXJEbk5kLElBQUksRXFEbU5RLEdBQUUsR0FDakI7TUF0Q1AsQUF3Q00sUUF4Q0UsR0FHSixnQkFBZ0IsQ0FtQmhCLGNBQWMsQ0FrQlosQ0FBQyxBQUFBLEdBQUc7TUF4Q1YsUUFBUSxHQUlKLHdCQUF3QixDQWtCeEIsY0FBYyxDQWtCWixDQUFDLEFBQUEsR0FBRztNQXhDVixRQUFRLEdBS0osR0FBRyxDQWlCSCxjQUFjLENBa0JaLENBQUMsQUFBQSxHQUFHLENBQUM7UXJEeE5ULFlBQVksRXFEeU5RLEdBQUU7UXJEeE5sQixRQUFRLEVxRHdOUSxHQUFFO1FyRHZOZCxJQUFJLEVxRHVOUSxHQUFFLEdBQ2pCO0lBMUNQLEFBNkNJLFFBN0NJLEdBR0osZ0JBQWdCLENBMENoQixRQUFRO0lBN0NaLFFBQVEsR0FJSix3QkFBd0IsQ0F5Q3hCLFFBQVE7SUE3Q1osUUFBUSxHQUtKLEdBQUcsQ0F3Q0gsUUFBUSxDQUFDO01BQ1AsUUFBUSxFQUFFLFFBQVE7TUFDbEIsR0FBRyxFQUFFLElBQUk7TUFDVCxJQUFJLEVBQUUsQ0FBQztNQUNQLGdCQUFnQixFdER0UWQsT0FBTztNc0R1UVQsWUFBWSxFQUFFLElBQUk7TUFDbEIsVUFBVSxFQUFFLGlCQUFpQjtNQUM3QixVQUFVLEVBQUUsS0FBSztNQUNqQixTQUFTLEVBQUUsSUFBSTtNQUNmLFVBQVUsRUFBRSxNQUFNO01BQ2xCLE9BQU8sRUFBRSxDQUFDLEdBYVg7TUFwRUwsQUF5RE0sUUF6REUsR0FHSixnQkFBZ0IsQ0EwQ2hCLFFBQVEsR0FZRixHQUFHO01BekRiLFFBQVEsR0FJSix3QkFBd0IsQ0F5Q3hCLFFBQVEsR0FZRixHQUFHO01BekRiLFFBQVEsR0FLSixHQUFHLENBd0NILFFBQVEsR0FZRixHQUFHLENBQUM7UXJEM01aLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLE9BQU8sRUFBRSxXQUFXO1FBQ3BCLE9BQU8sRUFBRSxJQUFJO1FBWGIsc0JBQXNCLEVBOENFLEdBQUc7UUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztRQXhEM0IsbUJBQW1CLEVxRGdPYSxNQUFNO1FyRC9OOUIsV0FBVyxFcUQrTmEsTUFBTTtRQUNoQyxVQUFVLEVBQUUsSUFBSTtRQUNoQixPQUFPLEVBQUUsTUFBTTtRQUNmLFdBQVcsRUFBRSxNQUFNLEdBS3BCO1FBbkVQLEFBZ0VRLFFBaEVBLEdBR0osZ0JBQWdCLENBMENoQixRQUFRLEdBWUYsR0FBRyxBQU9KLE1BQU07UUFoRWYsUUFBUSxHQUlKLHdCQUF3QixDQXlDeEIsUUFBUSxHQVlGLEdBQUcsQUFPSixNQUFNO1FBaEVmLFFBQVEsR0FLSixHQUFHLENBd0NILFFBQVEsR0FZRixHQUFHLEFBT0osTUFBTSxDQUFDO1VBQ04sZ0JBQWdCLEVBQUUsSUFBSSxHQUN2QjtFQWxFVCxBQXVFRSxRQXZFTSxHQXVFSixnQkFBZ0IsR0FBRyxHQUFHO0VBdkUxQixRQUFRLEdBd0VKLHdCQUF3QixHQUFHLEdBQUcsQ0FBQztJckQ3T2pDLG1CQUFtQixFcUQ4T1MsTUFBTTtJckQ3TzFCLFdBQVcsRXFENk9TLE1BQU07SXJEck5sQyx1QkFBdUIsRXFEc05TLE1BQU07SXJEck45QixlQUFlLEVxRHFOUyxNQUFNO0lyRHpLdEMsVUFBVSxFcUQwS2EsSUFBSTtJckR6SzNCLFVBQVUsRXFEeUthLElBQUk7SXJEeEszQixNQUFNLEVxRHdLaUIsSUFBSSxHQUMxQjtFQTVFSCxBQWdGSSxRQWhGSSxHQThFSixnQkFBZ0IsQUFBQSxTQUFTLENBRXpCLGNBQWMsR0FBRyxJQUFJO0VBaEZ6QixRQUFRLEdBK0VKLHdCQUF3QixBQUFBLFNBQVMsQ0FDakMsY0FBYyxHQUFHLElBQUksQ0FBQztJQUNwQixLQUFLLEVBQUUsT0FBTyxHQUNmOztBQUlMLEFBQUEsY0FBYyxDQUFDO0VyRHJMYixVQUFVLEVxRHNMVyxJQUFJO0VyRHJMekIsVUFBVSxFcURxTFcsSUFBSTtFckRwTHpCLE1BQU0sRXFEb0xlLElBQUk7RUFDekIsZ0JBQWdCLEV0RDdTVixPQUFPO0VzRDhTYixNQUFNLEVBQUUsSUFBSSxHQWtEYjtFQXJERCxBQUtFLGNBTFksQ0FLWixLQUFLLENBQUM7SXJEM1FOLFlBQVksRXFENFFJLEdBQUU7SXJEM1FkLFFBQVEsRXFEMlFJLEdBQUU7SXJEMVFWLElBQUksRXFEMFFJLEdBQUUsR0FrQmpCO0lBeEJILEFBUUksY0FSVSxDQUtaLEtBQUssQUFHRixPQUFPLENBQUM7TXJEN0xYLFVBQVUsRXFEOExlLElBQUk7TXJEN0w3QixVQUFVLEVxRDZMZSxJQUFJO01yRDVMN0IsTUFBTSxFcUQ0TG1CLElBQUk7TXJEeEw3QixTQUFTLEVxRHlMZSxJQUFJO01yRHhMNUIsU0FBUyxFcUR3TGUsSUFBSTtNckR2TDVCLEtBQUssRXFEdUxtQixJQUFJO01BQ3hCLFNBQVMsRUFBRSxHQUFHLEdBWWY7TUF2QkwsQUFhTSxjQWJRLENBS1osS0FBSyxBQUdGLE9BQU8sQUFLTCxLQUFLLENBQUM7UUFDTCxpQkFBaUIsRUFBRSxZQUFZO1FBQ3ZCLFNBQVMsRUFBRSxZQUFZO1FBQy9CLFdBQVcsRUFBRSxJQUFJLEdBQ2xCO01BakJQLEFBbUJNLGNBbkJRLENBS1osS0FBSyxBQUdGLE9BQU8sQUFXTCxNQUFNLENBQUM7UUFDTixpQkFBaUIsRUFBRSxjQUFjO1FBQ3pCLFNBQVMsRUFBRSxjQUFjLEdBQ2xDO0VBdEJQLEFBMEJFLGNBMUJZLENBMEJaLEtBQUssQ0FBQztJckRoU04sWUFBWSxFcURpU0ksR0FBRTtJckRoU2QsUUFBUSxFcURnU0ksR0FBRTtJckQvUlYsSUFBSSxFcUQrUkksR0FBRSxHQU9qQjtJQWxDSCxBQTZCSSxjQTdCVSxDQTBCWixLQUFLLENBR0gsZ0JBQWdCLENBQUM7TUFDZixRQUFRLEVBQUUsTUFBTTtNQUNoQixhQUFhLEVBQUUsUUFBUTtNQUN2QixXQUFXLEVBQUUsTUFBTSxHQUNwQjtFQWpDTCxBQW9DRSxjQXBDWSxBQW9DWCxZQUFZLENBQUM7SUFDWixPQUFPLEVBQUUsQ0FBQyxHQUtYO0lBMUNILEFBdUNJLGNBdkNVLEFBb0NYLFlBQVksQ0FHWCxLQUFLLENBQUM7TUFDSixVQUFVLEVBQUUsTUFBTSxHQUNuQjtFQXpDTCxBQTRDRSxjQTVDWSxBQTRDWCxpQkFBaUIsQ0FBQztJckRqT25CLFVBQVUsRXFEa09hLElBQUk7SXJEak8zQixVQUFVLEVxRGlPYSxJQUFJO0lyRGhPM0IsTUFBTSxFcURnT2lCLElBQUk7SUFDekIsU0FBUyxFQUFFLGVBQWUsQ0FBQyxVQUFVO0lBQ3JDLGdCQUFnQixFQUFFLHVCQUF1QixHQUsxQztJQXBESCxBQWlESSxjQWpEVSxBQTRDWCxpQkFBaUIsQ0FLaEIsS0FBSyxDQUFDO01BQ0osVUFBVSxFQUFFLE1BQU0sR0FDbkI7O0FBSUwsQUFBQSxTQUFTLENBQUM7RXJEL1JSLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBWGIsc0JBQXNCLEVBOENFLEdBQUc7RUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztFQXhEM0IsbUJBQW1CLEVxRG9UTyxNQUFNO0VyRG5UeEIsV0FBVyxFcURtVE8sTUFBTTtFckQzUmhDLHVCQUF1QixFcUQ0Uk8sTUFBTTtFckQzUjVCLGVBQWUsRXFEMlJPLE1BQU07RXJEL09wQyxVQUFVLEVxRGdQVyxJQUFJO0VyRC9PekIsVUFBVSxFcUQrT1csSUFBSTtFckQ5T3pCLE1BQU0sRXFEOE9lLElBQUk7RUFDekIsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsR0FBRztFQUNoQixNQUFNLEVBQUUsSUFBSSxHQUNiOztBQUVELGdCQUFnQjtBQUNoQixBQUVJLGdCQUZZLEFBQ2Isc0JBQXNCLENBQ3JCLE1BQU0sQ0FBQztFQUNMLGlDQUFpQztFQUNqQyxNQUFNLEVBQUUsSUFBSSxHQU1iO0VBVkwsQUFNTSxnQkFOVSxBQUNiLHNCQUFzQixDQUNyQixNQUFNLENBSUosS0FBSyxDQUFDO0lyRGhUVixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQThDRSxHQUFHO0lBN0NuQixjQUFjLEVBNkNFLEdBQUc7SXFENlFyQixTQUFTLEVBQUUsSUFBSSxHQUNoQjs7QUFUUCxBQVlJLGdCQVpZLEFBQ2Isc0JBQXNCLENBV3JCLE1BQU0sQ0FBQztFckRuUVQsVUFBVSxFcURvUWUsSUFBSTtFckRuUTdCLFVBQVUsRXFEbVFlLElBQUk7RXJEbFE3QixNQUFNLEVxRGtRbUIsSUFBSTtFQUN6QixNQUFNLEVBQUUsSUFBSSxHQUNiOztBQWZMLEFBaUJJLGdCQWpCWSxBQUNiLHNCQUFzQixDQWdCckIsT0FBTyxDQUFDO0VyRDlVVixtQkFBbUIsRXFEK1VXLE9BQU87RXJEOVU3QixXQUFXLEVxRDhVVyxPQUFPO0VyRHRUckMsdUJBQXVCLEVxRHVUVyxVQUFVO0VyRHRUcEMsZUFBZSxFcURzVFcsVUFBVTtFQUN4QyxNQUFNLEVBQUUsQ0FBQztFQUNULFVBQVUsRUFBRSxDQUFDO0VBQ2IsU0FBUyxFQUFFLEtBQUssR0F5QmpCO0VBL0NMLEFBd0JNLGdCQXhCVSxBQUNiLHNCQUFzQixDQWdCckIsT0FBTyxBQU9KLGNBQWMsQ0FBQztJQUNkLFVBQVUsRUFBRSxJQUFJLEdBQ2pCO0VBMUJQLEFBNEJNLGdCQTVCVSxBQUNiLHNCQUFzQixDQWdCckIsT0FBTyxBQVdKLGFBQWEsQ0FBQztJQUNiLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGFBQWEsRUFBRSxJQUFJLEdBQ3BCO0VBL0JQLEFBaUNNLGdCQWpDVSxBQUNiLHNCQUFzQixDQWdCckIsT0FBTyxBQWdCSixXQUFXLENBQUM7SUFDWCxTQUFTLEVBQUUsS0FBSztJQUNoQixTQUFTLEVBQUUsS0FBSyxHQUNqQjtFQXBDUCxBQXNDTSxnQkF0Q1UsQUFDYixzQkFBc0IsQ0FnQnJCLE9BQU8sQUFxQkosV0FBVyxDQUFDO0lyRGhWakIsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0lBL0IzQix1QkFBdUIsRXFENFVhLE1BQU07SXJEM1VsQyxlQUFlLEVxRDJVYSxNQUFNLEdBTXJDO0lBOUNQLEFBMENRLGdCQTFDUSxBQUNiLHNCQUFzQixDQWdCckIsT0FBTyxBQXFCSixXQUFXLEdBSVIsR0FBRyxDQUFDO01BQ0osU0FBUyxFQUFFLEtBQUs7TUFDaEIsU0FBUyxFQUFFLEtBQUssR0FDakI7O0FBN0NULEFBaURJLGdCQWpEWSxBQUNiLHNCQUFzQixDQWdEckIsY0FBYyxDQUFDO0VBQ2IsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsaUJBQWlCO0VBQ3pCLEtBQUssRUFBRSxPQUFPO0VBQ2QsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsR0FBRyxHQUNqQjs7QUF2REwsQUEyREksZ0JBM0RZLEFBMERiLG9CQUFvQixDQUNuQixNQUFNLENBQUM7RUFDTCxNQUFNLEVBQUUsSUFBSSxHQU1iO0VBbEVMLEFBOERNLGdCQTlEVSxBQTBEYixvQkFBb0IsQ0FDbkIsTUFBTSxDQUdKLEtBQUssQ0FBQztJckR4V1YsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0lxRHFVckIsU0FBUyxFQUFFLElBQUksR0FDaEI7O0FBakVQLEFBb0VJLGdCQXBFWSxBQTBEYixvQkFBb0IsQ0FVbkIsTUFBTSxDQUFDO0VyRDNUVCxVQUFVLEVxRDRUZSxJQUFJO0VyRDNUN0IsVUFBVSxFcUQyVGUsSUFBSTtFckQxVDdCLE1BQU0sRXFEMFRtQixJQUFJO0VBQ3pCLE1BQU0sRUFBRSxJQUFJLEdBS2I7RUEzRUwsQUF3RU0sZ0JBeEVVLEFBMERiLG9CQUFvQixDQVVuQixNQUFNLEFBSUgsUUFBUSxDQUFDO0lBQ1IsVUFBVSxFQUFFLEdBQUcsR0FDaEI7O0FBMUVQLEFBNkVJLGdCQTdFWSxBQTBEYixvQkFBb0IsQ0FtQm5CLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFBLEFBQUEsSUFBQyxDQUFLLE9BQU8sQUFBWixFQUFjO0VBQzlCLGdCQUFnQixFQUFFLE9BQU87RUFDekIsTUFBTSxFQUFFLElBQUk7RUFDWixhQUFhLEVBQUUsR0FBRztFQUNsQixLQUFLLEVBQUUsT0FBTztFQUNkLFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLElBQUk7RUFDakIsTUFBTSxFQUFFLElBQUk7RUFDWixXQUFXLEVBQUUsSUFBSTtFQUNqQixNQUFNLEVBQUUsUUFBUTtFQUNoQixXQUFXLEVBQUUsR0FBRztFQUNoQixVQUFVLEVBQUUsSUFBSTtFQUNoQixTQUFTLEVBQUUsSUFBSTtFQUNmLEtBQUssRUFBRSxJQUFJLEdBQ1o7O0FBM0ZMLEFBNkZJLGdCQTdGWSxBQTBEYixvQkFBb0IsQ0FtQ25CLE9BQU8sQ0FBQztFckQxWlYsbUJBQW1CLEVxRDJaVyxPQUFPO0VyRDFaN0IsV0FBVyxFcUQwWlcsT0FBTztFckRsWXJDLHVCQUF1QixFcURtWVcsVUFBVTtFckRsWXBDLGVBQWUsRXFEa1lXLFVBQVU7RUFDeEMsTUFBTSxFQUFFLENBQUM7RUFDVCxVQUFVLEVBQUUsQ0FBQztFQUNiLFNBQVMsRUFBRSxLQUFLLEdBK0pqQjtFQWpRTCxBQW9HTSxnQkFwR1UsQUEwRGIsb0JBQW9CLENBbUNuQixPQUFPLEFBT0osY0FBYyxDQUFDO0lBQ2QsVUFBVSxFQUFFLElBQUksR0FDakI7RUF0R1AsQUF3R00sZ0JBeEdVLEFBMERiLG9CQUFvQixDQW1DbkIsT0FBTyxBQVdKLGFBQWEsQ0FBQztJQUNiLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGFBQWEsRUFBRSxJQUFJLEdBQ3BCO0VBM0dQLEFBNkdNLGdCQTdHVSxBQTBEYixvQkFBb0IsQ0FtQ25CLE9BQU8sQ0FnQkwsUUFBUSxDQUFDO0lBQ1AsZ0JBQWdCLEVBQUUsT0FBTztJQUN6QixLQUFLLEVBQUUsSUFBSSxHQUNaO0VBaEhQLEFBa0hNLGdCQWxIVSxBQTBEYixvQkFBb0IsQ0FtQ25CLE9BQU8sQ0FxQkwsSUFBSSxDQUFDO0lBQ0gsU0FBUyxFQUFFLElBQUksR0FDaEI7RUFwSFAsQUFzSE0sZ0JBdEhVLEFBMERiLG9CQUFvQixDQW1DbkIsT0FBTyxHQXlCRCxJQUFJLENBQUM7SUFDUCxNQUFNLEVBQUUsSUFBSTtJQUNaLFdBQVcsRUFBRSxJQUFJLEdBS2xCO0lBN0hQLEFBeUhRLGdCQXpIUSxBQTBEYixvQkFBb0IsQ0FtQ25CLE9BQU8sR0F5QkQsSUFBSSxBQUdMLFlBQVksQ0FBQztNQUNWLFdBQVcsRUFBRSxLQUFLO01BQ2xCLEtBQUssRUFBRSxHQUFHLEdBQ2I7RUE1SFQsQUErSE0sZ0JBL0hVLEFBMERiLG9CQUFvQixDQW1DbkIsT0FBTyxDQWtDTCxRQUFRLENBQUM7SXJEdmViLGtCQUFrQixFcUR3ZVEsSUFBSTtJckR2ZTNCLGVBQWUsRXFEdWVRLElBQUk7SXJEdGV0QixVQUFVLEVxRHNlUSxJQUFJO0lyRHRkOUIsa0JBQWtCLEVxRHVkUSxVQUFVO0lyRHRkakMsZUFBZSxFcURzZFEsVUFBVTtJckRyZDVCLFVBQVUsRXFEcWRRLFVBQVU7SUFDOUIsTUFBTSxFQUFFLGNBQWM7SUFDdEIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsTUFBTTtJQUNuQixNQUFNLEVBQUUsZ0JBQWdCO0lBQ3hCLE1BQU0sRUFBRSxLQUFLO0lBQ2IsT0FBTyxFQUFFLENBQUM7SUFDVixXQUFXLEVBQUUsR0FBRztJQUNoQixZQUFZLEVBQUUsR0FBRyxHQVFsQjtJQWpKUCxBQTJJUSxnQkEzSVEsQUEwRGIsb0JBQW9CLENBbUNuQixPQUFPLENBa0NMLFFBQVEsQUFZTCxNQUFNLENBQUM7TUFDTixVQUFVLEVBQUUsS0FBSyxHQUNsQjtJQTdJVCxBQThJUSxnQkE5SVEsQUEwRGIsb0JBQW9CLENBbUNuQixPQUFPLENBa0NMLFFBQVEsQUFlTCxPQUFPLENBQUM7TUFDUCxVQUFVLEVBQUUsS0FBSyxHQUNsQjtFQWhKVCxBQW1KTSxnQkFuSlUsQUEwRGIsb0JBQW9CLENBbUNuQixPQUFPLENBc0RMLEtBQUssQ0FBQztJckQ3YlYsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0lBeEQzQixtQkFBbUIsRXFEa2RhLE1BQU07SXJEamQ5QixXQUFXLEVxRGlkYSxNQUFNO0lyRHpidEMsdUJBQXVCLEVxRDBiYSxVQUFVO0lyRHpidEMsZUFBZSxFcUR5YmEsVUFBVTtJckQ5YzlDLGtCQUFrQixFcUQrY2EsT0FBTztJckQ5YzlCLFVBQVUsRXFEOGNhLE9BQU87SUFDaEMsUUFBUSxFQUFFLFFBQVE7SUFDbEIsVUFBVSxFQUFFLGNBQWM7SUFDMUIsVUFBVSxFQUFFLElBQUksR0E0RGpCO0lBdE5QLEFBNEpRLGdCQTVKUSxBQTBEYixvQkFBb0IsQ0FtQ25CLE9BQU8sQ0FzREwsS0FBSyxBQVNGLGFBQWEsQ0FBQztNQUNiLGFBQWEsRUFBRSxjQUFjLEdBQzlCO0lBOUpULEFBZ0tRLGdCQWhLUSxBQTBEYixvQkFBb0IsQ0FtQ25CLE9BQU8sQ0FzREwsS0FBSyxDQWFILElBQUksQ0FBQztNQUNILE1BQU0sRUFBRSxJQUFJO01BQ1osV0FBVyxFQUFFLElBQUk7TUFDakIsU0FBUyxFQUFFLEtBQUssR0FDakI7SUFwS1QsQUFzS1EsZ0JBdEtRLEFBMERiLG9CQUFvQixDQW1DbkIsT0FBTyxDQXNETCxLQUFLLENBbUJILEtBQUssQ0FBQztNckQ5ZVosWUFBWSxFcUQrZVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHO01yRDllekIsUUFBUSxFcUQ4ZVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHO01yRDdlckIsSUFBSSxFcUQ2ZVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHO01BQ3JCLE1BQU0sRUFBRSxJQUFJO01BQ1osU0FBUyxFQUFFLElBQUk7TUFDZixXQUFXLEVBQUUsSUFBSTtNQUNqQixNQUFNLEVBQUUsR0FBRztNQUNYLE9BQU8sRUFBRSxDQUFDLEdBQ1g7SUE3S1QsQUErS1EsZ0JBL0tRLEFBMERiLG9CQUFvQixDQW1DbkIsT0FBTyxDQXNETCxLQUFLLENBNEJILE1BQU0sQ0FBQztNckR2aEJiLGtCQUFrQixFcUR3aEJVLElBQUk7TXJEdmhCN0IsZUFBZSxFcUR1aEJVLElBQUk7TXJEdGhCeEIsVUFBVSxFcURzaEJVLElBQUk7TXJEeGZoQyxZQUFZLEVxRHlmVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TXJEeGYxQixRQUFRLEVxRHdmVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TXJEdmZ0QixJQUFJLEVxRHVmVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TXJEemU5QixrQkFBa0IsRXFEMGVlLE9BQU87TXJEemVoQyxVQUFVLEVxRHllZSxPQUFPO01BQ2hDLGdCQUFnQixFQUFFLFdBQVc7TUFDN0IsTUFBTSxFQUFFLElBQUk7TUFDWixXQUFXLEVBQUUsY0FBYztNQUMzQixhQUFhLEVBQUUsQ0FBQztNQUNoQixNQUFNLEVBQUUsR0FBRztNQUNYLE9BQU8sRUFBRSxDQUFDO01BQ1YsV0FBVyxFQUFFLElBQUksR0E0QmxCO01Bck5ULEFBMkxVLGdCQTNMTSxBQTBEYixvQkFBb0IsQ0FtQ25CLE9BQU8sQ0FzREwsS0FBSyxDQTRCSCxNQUFNLEFBWUgsTUFBTSxDQUFDO1FBQ04sT0FBTyxFQUFFLENBQUMsR0FDWDtNQTdMWCxBQStMVSxnQkEvTE0sQUEwRGIsb0JBQW9CLENBbUNuQixPQUFPLENBc0RMLEtBQUssQ0E0QkgsTUFBTSxBQWdCSCxlQUFlLENBQUM7UUFDZixLQUFLLEVBQUUsV0FBVztRQUNsQixXQUFXLEVBQUUsVUFBVSxHQUN4QjtNQWxNWCxBQW9NVSxnQkFwTU0sQUEwRGIsb0JBQW9CLENBbUNuQixPQUFPLENBc0RMLEtBQUssQ0E0QkgsTUFBTSxBQXFCSCxZQUFZLENBQUM7UUFDWixPQUFPLEVBQUUsSUFBSSxHQUNkO01BdE1YLEFBd01VLGdCQXhNTSxBQTBEYixvQkFBb0IsQ0FtQ25CLE9BQU8sQ0FzREwsS0FBSyxDQTRCSCxNQUFNLEdBeUJBLENBQUMsQUFBQSxHQUFHLENBQUM7UUFDUCxRQUFRLEVBQUUsUUFBUTtRQUNsQixHQUFHLEVBQUUsQ0FBQztRQUNOLEtBQUssRUFBRSxJQUFJO1FBQ1gsTUFBTSxFQUFFLENBQUM7UUFDVCxLQUFLLEVBQUUsSUFBSTtRQUNYLFNBQVMsRUFBRSxJQUFJO1FBQ2YsS0FBSyxFQUFFLElBQUk7UUFDWCxNQUFNLEVBQUUsSUFBSTtRQUNaLE1BQU0sRUFBRSxNQUFNO1FBQ2QsY0FBYyxFQUFFLElBQUk7UUFDcEIsVUFBVSxFQUFFLE1BQU0sR0FDbkI7RUFwTlgsQUEwTlUsZ0JBMU5NLEFBMERiLG9CQUFvQixDQW1DbkIsT0FBTyxBQTJISix3QkFBd0IsQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUN2QyxHQUFHLENBQ0gsS0FBSyxDQUFDO0lBQ0osTUFBTSxFQUFFLElBQUksR0FDYjtFQTVOWCxBQTZOVSxnQkE3Tk0sQUEwRGIsb0JBQW9CLENBbUNuQixPQUFPLEFBMkhKLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQ3ZDLEdBQUcsQ0FJSCxJQUFJLENBQUM7SUFDSCxTQUFTLEVBQUUsSUFBSTtJQUNmLE1BQU0sRUFBRSxDQUFDO0lBQ1QsU0FBUyxFQUFFLENBQUMsR0FDYjtFQWpPWCxBQWtPVSxnQkFsT00sQUEwRGIsb0JBQW9CLENBbUNuQixPQUFPLEFBMkhKLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQ3ZDLEdBQUcsQ0FTSCxDQUFDLENBQUM7SUFDQSxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLE1BQU0sRUFBRSxPQUFPLEdBQ2hCO0VBdE9YLEFBeU9RLGdCQXpPUSxBQTBEYixvQkFBb0IsQ0FtQ25CLE9BQU8sQUEySEosd0JBQXdCLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FpQnZDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDVixXQUFXLEVBQUUsSUFBSSxHQUNsQjtFQTNPVCxBQStPUSxnQkEvT1EsQUEwRGIsb0JBQW9CLENBbUNuQixPQUFPLEFBaUpKLHdCQUF3QixDQUFDLFVBQVUsQ0FDbEMsS0FBSyxDQUFDO0lBQ0osVUFBVSxFQUFFLElBQUk7SUFDaEIsYUFBYSxFQUFFLElBQUksR0FRcEI7SUF6UFQsQUFtUFUsZ0JBblBNLEFBMERiLG9CQUFvQixDQW1DbkIsT0FBTyxBQWlKSix3QkFBd0IsQ0FBQyxVQUFVLENBQ2xDLEtBQUssR0FJRCxNQUFNLENBQUM7TUFDUCxXQUFXLEVBQUUsSUFBSTtNQUNqQixXQUFXLEVBQUUsSUFBSTtNQUNqQixTQUFTLEVBQUUsSUFBSTtNQUNmLEtBQUssRUFBRSxPQUFPLEdBQ2Y7RUF4UFgsQUE0UFUsZ0JBNVBNLEFBMERiLG9CQUFvQixDQW1DbkIsT0FBTyxBQWlKSix3QkFBd0IsQ0FBQyxVQUFVLENBYWxDLEtBQUssR0FBRyxLQUFLLEdBQ1QsTUFBTSxDQUFDO0lBQ1AsV0FBVyxFQUFFLGlCQUFpQixHQUMvQjs7QUE5UFgsQUFtUUksZ0JBblFZLEFBMERiLG9CQUFvQixDQXlNbkIsZUFBZSxDQUFDO0VBQ2QsT0FBTyxFQUFFLFFBQVE7RUFDakIsTUFBTSxFQUFFLE9BQU8sR0FlaEI7RUFwUkwsQUF1UU0sZ0JBdlFVLEFBMERiLG9CQUFvQixDQXlNbkIsZUFBZSxHQUlYLEdBQUcsQ0FBQztJQUNKLE1BQU0sRUFBRSxNQUFNO0lBQ2QsVUFBVSxFQUFFLElBQUk7SUFDaEIsU0FBUyxFQUFFLElBQUk7SUFDZixLQUFLLEVBQUUsT0FBTztJQUNkLGFBQWEsRUFBRSxxQkFBcUI7SUFDcEMsTUFBTSxFQUFFLE9BQU8sR0FNaEI7SUFuUlAsQUErUVEsZ0JBL1FRLEFBMERiLG9CQUFvQixDQXlNbkIsZUFBZSxHQUlYLEdBQUcsQUFRRixPQUFPLENBQUM7TUFDUCxLQUFLLEVBQUUsT0FBTztNQUNkLG1CQUFtQixFdERsb0J0QixPQUFPLEdzRG1vQkw7O0FBTVQsc0JBQXNCO0FBQ3RCLDJDQUEyQztBQUMzQyxBQUFBLFlBQVksQ0FBQztFQUNYLFVBQVUsRUFBRSxNQUFNLEdBQ25COztBQUVELEFBQUEsd0JBQXdCLENBQUM7RUFDdkIsUUFBUSxFQUFFLEtBQUs7RUFDZixJQUFJLEVBQUUsQ0FBQztFQUNQLEtBQUssRUFBRSxDQUFDO0VBQ1IsZ0JBQWdCLEVBQUUsMEJBQXlCO0VBQzNDLE1BQU0sRUFBRSxJQUFJO0VBQ1osT0FBTyxFQUFFLENBQUMsR0FTWDtFQWZELEFBUUUsd0JBUnNCLEFBUXJCLElBQUksQ0FBQztJQUNKLEdBQUcsRUFBRSxDQUFDLEdBQ1A7RUFWSCxBQVlFLHdCQVpzQixBQVlyQixPQUFPLENBQUM7SUFDUCxNQUFNLEVBQUUsQ0FBQyxHQUNWOztBQUdILEFBQUEsWUFBWSxDQUFDO0VBQ1gsT0FBTyxFQUFFLElBQUksR0FDZDs7QUFFRCxBQUVFLFlBRlUsQUFFVCxJQUFLLENBQUEsV0FBVyxFQUFFO0VBQ2pCLE1BQU0sRUFBRSxrQkFBa0IsR0FDM0I7O0FBSkgsQUFPSSxZQVBRLEFBTVQsaUJBQWlCLEFBQ2YsSUFBSyxDQUFBLFlBQVksRUFBRTtFQUNsQixNQUFNLEVBQUUsNkJBQTZCLEdBQ3RDOztBQVRMLEFBV0ksWUFYUSxBQU1ULGlCQUFpQixBQUtmLFlBQVksR0FBRyxHQUFHLENBQUM7RUFDbEIsWUFBWSxFQUFFLGtCQUFrQixHQUNqQzs7QUFiTCxBQWVJLFlBZlEsQUFNVCxpQkFBaUIsQ0FTaEIsYUFBYSxDQUFDO0VBQ1osT0FBTyxFQUFFLElBQUksR0FDZDs7QUFJTCxBQUFBLGlCQUFpQixDQUFDO0VBQ2hCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE1BQU0sRUFBRSxjQUFjO0VBQ3RCLFNBQVMsRUFBRSxlQUFpQixDQUFDLFVBQVU7RUFDdkMsZ0JBQWdCLEVBQUUsc0JBQXNCO0VBQ3hDLE9BQU8sRUFBRSxFQUFFO0VBQ1gsY0FBYyxFQUFFLElBQUksR0FDckI7O0FDaHNCQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RUFEMUIsQUFBQSxrQkFBa0IsQ0FBQztJQUVmLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLGVBQWUsRUFBRSxVQUFVLEdBMEI5QjtJQTdCRCxBQUlJLGtCQUpjLENBSWQsa0JBQWtCLEdBQUcsR0FBRyxDQUFDO01BQ3ZCLFFBQVEsRUFBRSxNQUFNO01BQ2hCLFFBQVEsRUFBRSxPQUFPLEdBQ2xCO0lBUEwsQUFRSSxrQkFSYyxDQVFkLGlCQUFpQjtJQVJyQixrQkFBa0IsQ0FTZCxpQkFBaUIsQ0FBQztNQUNoQixJQUFJLEVBQUUsSUFBSTtNQUNWLE1BQU0sRUFBRSxJQUFJO01BQ1osVUFBVSxFQUFFLElBQUksR0FDakI7SUFiTCxBQWNJLGtCQWRjLENBY2QsZUFBZTtJQWRuQixrQkFBa0IsQ0FlZCxlQUFlO0lBZm5CLGtCQUFrQixDQWdCZCxvQkFBb0IsQ0FBQztNQUNuQixNQUFNLEVBQUUsSUFBSSxHQUNiO0lBbEJMLEFBbUJJLGtCQW5CYyxDQW1CZCxrQkFBa0IsQ0FBQztNQUNqQixJQUFJLEVBQUUsSUFBSTtNQUNWLFVBQVUsRUFBRSxJQUFJO01BQ2hCLE1BQU0sRUFBRSxJQUFJO01BQ1osUUFBUSxFQUFFLE1BQU0sR0FDakI7SUF4QkwsQUF5Qkksa0JBekJjLENBeUJkLEVBQUUsQUFBQSxZQUFZLENBQUM7TUFDYixhQUFhLEVBQUUsSUFBSSxHQUNwQjs7QUFJTCxBQUFBLGtCQUFrQixDQUFDO0V0RFdqQixZQUFZLEVzRFZFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSztFdERXbkIsUUFBUSxFc0RYRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7RXREWWYsSUFBSSxFc0RaRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7RUFDdkIsVUFBVSxFQUFFLEtBQUs7RUFDakIsUUFBUSxFQUFFLFFBQVEsR0EwQm5CO0VBN0JELEFBS0Usa0JBTGdCLEdBS2QsR0FBRyxBQUFBLG1CQUFtQixDQUFDO0lBQ3ZCLFVBQVUsRUFBRSxJQUFJLEdBQ2pCO0VBUEgsQUFTRSxrQkFUZ0IsR0FTZCxHQUFHLENBQUM7SUFDSixRQUFRLEVBQUUsUUFBUTtJQUNsQixHQUFHLEVBQUUsQ0FBQztJQUNOLElBQUksRUFBRSxDQUFDO0lBQ1AsS0FBSyxFQUFFLENBQUM7SUFDUixNQUFNLEVBQUUsQ0FBQztJQUNULFFBQVEsRUFBRSxNQUFNLEdBYWpCO0lBNUJILEFBa0JNLGtCQWxCWSxHQVNkLEdBQUcsR0FRRCxHQUFHLEFBQ0YsaUJBQWlCLENBQUM7TXREUHZCLFlBQVksRXNEUVEsQ0FBQztNdERQakIsUUFBUSxFc0RPUSxDQUFDO010RE5iLElBQUksRXNETVEsQ0FBQztNQUNmLE1BQU0sRUFBRSxJQUFJLEdBQ2I7SUFyQlAsQUF1Qk0sa0JBdkJZLEdBU2QsR0FBRyxHQVFELEdBQUcsQUFNRixpQkFBaUIsQ0FBQztNdERadkIsWUFBWSxFc0RhUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TXREWnhCLFFBQVEsRXNEWVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO010RFhwQixJQUFJLEVzRFdRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtNQUN0QixVQUFVLEVBQUUsSUFBSSxHQUNqQjs7QUFLUCxBQUFBLGVBQWUsQ0FBQztFdEQ2RGQsVUFBVSxFc0Q1RFcsSUFBSTtFdEQ2RHpCLFVBQVUsRXNEN0RXLElBQUk7RXREOER6QixNQUFNLEVzRDlEZSxJQUFJO0VBQ3pCLFlBQVksRUFBRSxpQkFBaUI7RUFDL0IsZ0JBQWdCLEVBQUUsT0FBTztFQUN6QixNQUFNLEVBQUUsS0FBSyxHQVlkO0VBaEJELEFBTUUsZUFOYSxDQU1iLENBQUMsQUFBQSxhQUFhLENBQUM7SUFDYixNQUFNLEVBQUUsTUFBTTtJQUNkLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDdkRyRWQsT0FBTztJdURzRVYsS0FBSyxFdkR0RUYsT0FBTyxHdUR1RVg7RUFWSCxBQVlFLGVBWmEsQ0FZYixJQUFJLENBQUM7SUFDSCxLQUFLLEVBQUUsT0FBTztJQUNkLFNBQVMsRUFBRSxJQUFJLEdBQ2hCOztBQUdILEFBQUEsZUFBZSxDQUFDO0V0RDJDZCxVQUFVLEVzRDFDVyxJQUFJO0V0RDJDekIsVUFBVSxFc0QzQ1csSUFBSTtFdEQ0Q3pCLE1BQU0sRXNENUNlLElBQUk7RUFDekIsWUFBWSxFQUFFLGlCQUFpQixHQWtDaEM7RUFwQ0QsQUFJRSxlQUphLENBSWIsSUFBSSxDQUFDO0l0RDFDTCxZQUFZLEVzRDJDSSxDQUFDO0l0RDFDYixRQUFRLEVzRDBDSSxDQUFDO0l0RHpDVCxJQUFJLEVzRHlDSSxDQUFDO0lBQ2YsZ0JBQWdCLEVBQUUsT0FBTyxHQTZCMUI7SUFuQ0gsQUFRSSxlQVJXLENBSWIsSUFBSSxDQUlGLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBSyxNQUFNLEFBQVgsRUFBYTtNdEQ5Q3JCLFlBQVksRXNEK0NNLENBQUM7TXREOUNmLFFBQVEsRXNEOENNLENBQUM7TXREN0NYLElBQUksRXNENkNNLENBQUM7TUFDZixnQkFBZ0IsRUFBRSxXQUFXO01BQzdCLE1BQU0sRUFBRSxJQUFJO01BQ1osU0FBUyxFQUFFLElBQUk7TUFDZixXQUFXLEVBQUUsR0FBRztNQUNoQixNQUFNLEVBQUUsSUFBSTtNQUNaLGNBQWMsRUFBRSxNQUFNO01BQ3RCLFdBQVcsRUFBRSxJQUFJO01BQ2pCLE9BQU8sRUFBRSxJQUFJLEdBQ2Q7SUFsQkwsQUFvQkksZUFwQlcsQ0FJYixJQUFJLENBZ0JGLE1BQU0sQ0FBQSxBQUFBLElBQUMsQ0FBSyxPQUFPLEFBQVosRUFBYztNQUNuQixnQkFBZ0IsRUFBRSxPQUFPO01BQ3pCLE1BQU0sRUFBRSxJQUFJO01BQ1osYUFBYSxFQUFFLEdBQUc7TUFDbEIsS0FBSyxFQUFFLE9BQU87TUFDZCxTQUFTLEVBQUUsSUFBSTtNQUNmLFdBQVcsRUFBRSxJQUFJO01BQ2pCLE1BQU0sRUFBRSxJQUFJO01BQ1osV0FBVyxFQUFFLElBQUk7TUFDakIsTUFBTSxFQUFFLFFBQVE7TUFDaEIsV0FBVyxFQUFFLEdBQUc7TUFDaEIsVUFBVSxFQUFFLElBQUk7TUFDaEIsU0FBUyxFQUFFLElBQUk7TUFDZixLQUFLLEVBQUUsSUFBSSxHQUNaOztBQUlMLEFBQUEsb0JBQW9CLENBQUM7RUFDbkIsTUFBTSxFQUFFLElBQUksR0FDYjs7QUFFRCxBQUFBLFlBQVksQ0FBQztFdERPWCxTQUFTLEVzRE5XLEtBQUs7RXRET3pCLFNBQVMsRXNEUFcsS0FBSztFdERRekIsS0FBSyxFc0RSZSxLQUFLO0VBQ3pCLGdCQUFnQixFdkR2SFYsT0FBTztFdUR3SGIsWUFBWSxFQUFFLGlCQUFpQjtFQUMvQixVQUFVLEVBQUUsSUFBSTtFQUNoQixNQUFNLEVBQUUsSUFBSSxHQWFiO0VBbEJELEFBT0UsWUFQVSxDQU9WLGNBQWMsQ0FBQztJQUNiLE1BQU0sRUFBRSxNQUFNO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixTQUFTLEVBQUUsSUFBSSxHQUNoQjtFQVhILEFBYUUsWUFiVSxDQWFWLFNBQVMsQ0FBQztJQUNSLFNBQVMsRUFBRSxJQUFJO0lBQ2YsTUFBTSxFQUFFLE1BQU07SUFDZCxTQUFTLEVBQUUsSUFBSSxHQUNoQjs7QUFHSCxBQUFBLEVBQUUsQUFBQSxZQUFZLENBQUM7RUFDYixVQUFVLEVBQUUsSUFBSTtFQUNoQixNQUFNLEVBQUUsQ0FBQztFQUNULE9BQU8sRUFBRSxDQUFDLEdBOEZYO0VBakdELEFBS0UsRUFMQSxBQUFBLFlBQVksQ0FLWixFQUFFLENBQUM7SUFDRCxnQkFBZ0IsRUFBRSxPQUFPO0lBQ3pCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsTUFBTSxFQUFFLEtBQUs7SXREL0VmLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBK0JFLE1BQU07SUE5QnRCLGNBQWMsRUE4QkUsTUFBTTtJQWhCOUIsdUJBQXVCLEVzRDJFUyxNQUFNO0l0RDFFOUIsZUFBZSxFc0QwRVMsTUFBTTtJQUNwQyxNQUFNLEVBQUUsT0FBTyxHQTRCaEI7SUF4Q0gsQUFjSSxFQWRGLEFBQUEsWUFBWSxDQUtaLEVBQUUsR0FTRSxJQUFJLENBQUM7TUFDTCxVQUFVLEVBQUUsSUFBSTtNdERyRnBCLE9BQU8sRUFBRSxZQUFZO01BQ3JCLE9BQU8sRUFBRSxXQUFXO01BQ3BCLE9BQU8sRUFBRSxJQUFJO01BWGIsc0JBQXNCLEVBOENFLEdBQUc7TUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztNQXhEM0IsbUJBQW1CLEVzRDBHVyxNQUFNO010RHpHNUIsV0FBVyxFc0R5R1csTUFBTSxHQUNqQztJQWxCTCxBQW9CSSxFQXBCRixBQUFBLFlBQVksQ0FLWixFQUFFLENBZUEsZUFBZSxDQUFDO010RDFGbEIsT0FBTyxFQUFFLFlBQVk7TUFDckIsT0FBTyxFQUFFLFdBQVc7TUFDcEIsT0FBTyxFQUFFLElBQUk7TUFJYix1QkFBdUIsRXNEc0ZXLFFBQVE7TXREckZsQyxlQUFlLEVzRHFGVyxRQUFRO010RDFIMUMsWUFBWSxFc0QySE0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO010RDFIdEIsUUFBUSxFc0QwSE0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO010RHpIbEIsSUFBSSxFc0R5SE0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO01BQ3RCLFNBQVMsRUFBRSxJQUFJO01BQ2YsTUFBTSxFQUFFLE1BQU07TUFDZCxTQUFTLEVBQUUsSUFBSSxHQUNoQjtJQTNCTCxBQThCTSxFQTlCSixBQUFBLFlBQVksQ0FLWixFQUFFLENBd0JBLGNBQWMsQ0FDWixlQUFlLEFBQUEsT0FBTyxDQUFDO01BQ3JCLE9BQU8sRUFBRSxPQUFPLEdBQ2pCO0lBaENQLEFBb0NNLEVBcENKLEFBQUEsWUFBWSxDQUtaLEVBQUUsQ0E4QkEsZUFBZSxDQUNiLGVBQWUsQUFBQSxPQUFPLENBQUM7TUFDckIsT0FBTyxFQUFFLE9BQU8sR0FDakI7RUF0Q1AsQUEyQ0ksRUEzQ0YsQUFBQSxZQUFZLENBMENaLEVBQUUsQUFBQSxtQkFBbUIsR0FDakIsSUFBSSxDQUFDO0lBQ0wsV0FBVyxFQUFFLElBQUk7SUFDakIsU0FBUyxFQUFFLElBQUksR0FDaEI7RUE5Q0wsQUFnREksRUFoREYsQUFBQSxZQUFZLENBMENaLEVBQUUsQUFBQSxtQkFBbUIsR0FNakIsRUFBRSxDQUFDO0lBQ0gsT0FBTyxFQUFFLENBQUMsR0FlWDtJQWhFTCxBQW1ETSxFQW5ESixBQUFBLFlBQVksQ0EwQ1osRUFBRSxBQUFBLG1CQUFtQixHQU1qQixFQUFFLENBR0YsRUFBRSxDQUFDO01BQ0QsV0FBVyxFQUFFLE1BQU07TUFDbkIsVUFBVSxFQUFFLElBQUksR0FVakI7TUEvRFAsQUFzRFEsRUF0RE4sQUFBQSxZQUFZLENBMENaLEVBQUUsQUFBQSxtQkFBbUIsR0FNakIsRUFBRSxDQUdGLEVBQUUsQUFHQyxNQUFNLENBQUM7UUFDTixlQUFlLEVBQUUsU0FBUyxHQUMzQjtNQXhEVCxBQTBEUSxFQTFETixBQUFBLFlBQVksQ0EwQ1osRUFBRSxBQUFBLG1CQUFtQixHQU1qQixFQUFFLENBR0YsRUFBRSxHQU9FLElBQUksQ0FBQztRQUNMLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLGNBQWMsRUFBRSxJQUFJLEdBQ3JCO0VBOURULEFBbUVFLEVBbkVBLEFBQUEsWUFBWSxDQW1FWixFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ04sZ0JBQWdCLEVBQUUsSUFBSTtJQUN0QixNQUFNLEVBQUUsQ0FBQztJQUNULE9BQU8sRUFBRSxVQUFVLEdBMEJwQjtJQWhHSCxBQXdFSSxFQXhFRixBQUFBLFlBQVksQ0FtRVosRUFBRSxHQUFHLEVBQUUsQ0FLTCxFQUFFLENBQUM7TUFDRCxnQkFBZ0IsRUFBRSxJQUFJO01BQ3RCLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLEdBQUcsR0FvQmpCO01BL0ZMLEFBNkVNLEVBN0VKLEFBQUEsWUFBWSxDQW1FWixFQUFFLEdBQUcsRUFBRSxDQUtMLEVBQUUsR0FLRSxJQUFJLENBQUM7UUFDTCxVQUFVLEVBQUUsSUFBSTtRQUNoQixXQUFXLEVBQUUsSUFBSTtRQUNqQixjQUFjLEVBQUUsU0FBUyxHQUMxQjtNQWpGUCxBQW1GTSxFQW5GSixBQUFBLFlBQVksQ0FtRVosRUFBRSxHQUFHLEVBQUUsQ0FLTCxFQUFFLEdBV0UsRUFBRSxDQUFDO1FBQ0gsT0FBTyxFQUFFLENBQUMsR0FVWDtRQTlGUCxBQXNGUSxFQXRGTixBQUFBLFlBQVksQ0FtRVosRUFBRSxHQUFHLEVBQUUsQ0FLTCxFQUFFLEdBV0UsRUFBRSxDQUdGLEVBQUUsQ0FBQztVQUNELFdBQVcsRUFBRSxNQUFNO1VBQ25CLFVBQVUsRUFBRSxJQUFJO1VBQ2hCLFdBQVcsRUFBRSxJQUFJLEdBSWxCO1VBN0ZULEFBMEZVLEVBMUZSLEFBQUEsWUFBWSxDQW1FWixFQUFFLEdBQUcsRUFBRSxDQUtMLEVBQUUsR0FXRSxFQUFFLENBR0YsRUFBRSxBQUlDLE1BQU0sQ0FBQztZQUNOLGVBQWUsRUFBRSxTQUFTLEdBQzNCOztBQ3ZPWCxBQUFBLGdCQUFnQixDQUFDO0V2RHFFZixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQStCRSxNQUFNO0VBOUJ0QixjQUFjLEVBOEJFLE1BQU07RUF6QzlCLG1CQUFtQixFdURoRE8sTUFBTTtFdkRpRHhCLFdBQVcsRXVEakRPLE1BQU07RXZEeUVoQyx1QkFBdUIsRXVEeEVPLE1BQU07RXZEeUU1QixlQUFlLEV1RHpFTyxNQUFNO0VBQ3BDLFFBQVEsRUFBRSxLQUFLO0VBQ2YsR0FBRyxFQUFFLENBQUM7RUFDTixJQUFJLEVBQUUsQ0FBQztFQUNQLEtBQUssRUFBRSxDQUFDO0VBQ1IsTUFBTSxFQUFFLENBQUM7RUFDVCxnQkFBZ0IsRUFBRSxPQUFPLEdBa0oxQjtFQTNKRCxBQVdFLGdCQVhjLENBV2QsWUFBWSxDQUFDO0l2RDBEYixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQStCRSxNQUFNO0lBOUJ0QixjQUFjLEVBOEJFLE1BQU07SUFoQjlCLHVCQUF1QixFdUQ5RFMsTUFBTTtJdkQrRDlCLGVBQWUsRXVEL0RTLE1BQU07SXZEaUh0QyxTQUFTLEV1RGhIYSxLQUFLO0l2RGlIM0IsU0FBUyxFdURqSGEsS0FBSztJdkRrSDNCLEtBQUssRXVEbEhpQixLQUFLO0lBRXpCLGdCQUFnQixFQUFFLE9BQU87SUFDekIsTUFBTSxFQUFFLGlCQUFpQjtJQUN6QixhQUFhLEVBQUUsR0FBRztJQUNsQixPQUFPLEVBQUUsV0FBVyxHQXVJckI7SUExSkgsQUFxQkksZ0JBckJZLENBV2QsWUFBWSxHQVVSLEdBQUcsQ0FBQztNdkRrQ1Isa0JBQWtCLEV1RGpDVyxNQUFNO012RGtDM0IsVUFBVSxFdURsQ1csTUFBTSxHQUNoQztJQXZCTCxBQXlCSSxnQkF6QlksQ0FXZCxZQUFZLENBY1YsYUFBYSxDQUFDO012RDRDaEIsT0FBTyxFQUFFLFlBQVk7TUFDckIsT0FBTyxFQUFFLFdBQVc7TUFDcEIsT0FBTyxFQUFFLElBQUk7TUFYYixzQkFBc0IsRUE4Q0UsR0FBRztNQTdDbkIsY0FBYyxFQTZDRSxHQUFHO01BL0IzQix1QkFBdUIsRXVEaERXLE1BQU07TXZEaURoQyxlQUFlLEV1RGpEVyxNQUFNO01BRXBDLFNBQVMsRUFBRSxJQUFJO01BQ2YsTUFBTSxFQUFFLGNBQWM7TUFDdEIsS0FBSyxFeERqQ0osT0FBTyxHd0RrQ1Q7SUFoQ0wsQUFrQ0ksZ0JBbENZLENBV2QsWUFBWSxDQXVCVixXQUFXLENBQUM7TXZEbUNkLE9BQU8sRUFBRSxZQUFZO01BQ3JCLE9BQU8sRUFBRSxXQUFXO01BQ3BCLE9BQU8sRUFBRSxJQUFJO01BWGIsc0JBQXNCLEVBK0JFLE1BQU07TUE5QnRCLGNBQWMsRUE4QkUsTUFBTTtNQTlDOUIscUJBQXFCLEV1RFRXLE1BQU07TXZEVTlCLGFBQWEsRXVEVlcsTUFBTTtNdkR1Q3RDLHVCQUF1QixFdUR0Q1csTUFBTTtNdkR1Q2hDLGVBQWUsRXVEdkNXLE1BQU0sR0E4Q3JDO01BbkZMLEFBaURNLGdCQWpEVSxDQVdkLFlBQVksQ0F1QlYsV0FBVyxHQWVQLEtBQUssQUFBQSxXQUFXLENBQUM7UUFDakIsT0FBTyxFQUFFLElBQUksR0FDZDtNQW5EUCxBQXFETSxnQkFyRFUsQ0FXZCxZQUFZLENBdUJWLFdBQVcsR0FtQlAsS0FBSyxDQUFDO1F2RG1FWixVQUFVLEV1RGxFaUIsSUFBSTtRdkRtRS9CLFVBQVUsRXVEbkVpQixJQUFJO1F2RG9FL0IsTUFBTSxFdURwRXFCLElBQUk7UUFDekIsVUFBVSxFQUFFLGNBQWM7UUFDMUIsV0FBVyxFQUFFLElBQUk7UUFDakIsWUFBWSxFQUFFLElBQUk7UUFDbEIsYUFBYSxFQUFFLGNBQWM7UUFDN0IsYUFBYSxFQUFFLENBQUM7UUFDaEIsVUFBVSxFQUFFLE1BQU0sR0FVbkI7UUF0RVAsQXZENFRFLGdCdUQ1VGMsQ0FXZCxZQUFZLENBdUJWLFdBQVcsR0FtQlAsS0FBSyxBdkR1UVYsMkJBQTJCLENBQUM7VXVEOVByQixLQUFLLEVBQUUsT0FBTztVQUNkLFVBQVUsRUFBRSxNQUFNO1VBQ2xCLE9BQU8sRUFBRSxDQUFDO1VBQ1YsU0FBUyxFQUFFLElBQUksR3ZEMlBpQjtRdUQ1VDFDLEF2RDZURSxnQnVEN1RjLENBV2QsWUFBWSxDQXVCVixXQUFXLEdBbUJQLEtBQUssQXZEd1FWLGlCQUFpQixDQUFXO1V1RC9QckIsS0FBSyxFQUFFLE9BQU87VUFDZCxVQUFVLEVBQUUsTUFBTTtVQUNsQixPQUFPLEVBQUUsQ0FBQztVQUNWLFNBQVMsRUFBRSxJQUFJLEd2RDRQaUI7UXVEN1QxQyxBdkQ4VEUsZ0J1RDlUYyxDQVdkLFlBQVksQ0F1QlYsV0FBVyxHQW1CUCxLQUFLLEF2RHlRVixrQkFBa0IsQ0FBVTtVdURoUXJCLEtBQUssRUFBRSxPQUFPO1VBQ2QsVUFBVSxFQUFFLE1BQU07VUFDbEIsT0FBTyxFQUFFLENBQUM7VUFDVixTQUFTLEVBQUUsSUFBSSxHdkQ2UGlCO1F1RDlUMUMsQXZEK1RFLGdCdUQvVGMsQ0FXZCxZQUFZLENBdUJWLFdBQVcsR0FtQlAsS0FBSyxBdkQwUVYsc0JBQXNCLENBQU07VXVEalFyQixLQUFLLEVBQUUsT0FBTztVQUNkLFVBQVUsRUFBRSxNQUFNO1VBQ2xCLE9BQU8sRUFBRSxDQUFDO1VBQ1YsU0FBUyxFQUFFLElBQUksR3ZEOFBpQjtRdUQvVDFDLEFBbUVRLGdCQW5FUSxDQVdkLFlBQVksQ0F1QlYsV0FBVyxHQW1CUCxLQUFLLEdBY0gsS0FBSyxDQUFFO1VBQ1AsVUFBVSxFQUFFLENBQUMsR0FDZDtNQXJFVCxBQXdFTSxnQkF4RVUsQ0FXZCxZQUFZLENBdUJWLFdBQVcsQ0FzQ1QsY0FBYyxDQUFDO1F2REhuQixPQUFPLEVBQUUsWUFBWTtRQUNyQixPQUFPLEVBQUUsV0FBVztRQUNwQixPQUFPLEVBQUUsSUFBSTtRQVhiLHNCQUFzQixFQThDRSxHQUFHO1FBN0NuQixjQUFjLEVBNkNFLEdBQUc7UUEvQjNCLHVCQUF1QixFdUREYSxZQUFZO1F2REV4QyxlQUFlLEV1REZhLFlBQVk7UUFDMUMsTUFBTSxFQUFFLFFBQVEsR0FNakI7UUFqRlAsQUE0RVEsZ0JBNUVRLENBV2QsWUFBWSxDQXVCVixXQUFXLENBc0NULGNBQWMsR0FJVixNQUFNLENBQUM7VXZEckJmLGtCQUFrQixFdURzQmUsTUFBTTtVdkRyQi9CLFVBQVUsRXVEcUJlLE1BQU07VXZEMkN2QyxVQUFVLEV1RDFDbUIsSUFBSTtVdkQyQ2pDLFVBQVUsRXVEM0NtQixJQUFJO1V2RDRDakMsTUFBTSxFdUQ1Q3VCLElBQUk7VUFDekIsS0FBSyxFQUFFLElBQUksR0FDWjtJQWhGVCxBQXFGSSxnQkFyRlksQ0FXZCxZQUFZLENBMEVWLFdBQVcsQ0FBQztNdkRoQmQsT0FBTyxFQUFFLFlBQVk7TUFDckIsT0FBTyxFQUFFLFdBQVc7TUFDcEIsT0FBTyxFQUFFLElBQUk7TUFYYixzQkFBc0IsRUErQkUsTUFBTTtNQTlCdEIsY0FBYyxFQThCRSxNQUFNO01BOUM5QixxQkFBcUIsRXVEMENXLE1BQU07TXZEekM5QixhQUFhLEV1RHlDVyxNQUFNO012RFp0Qyx1QkFBdUIsRXVEYVcsTUFBTTtNdkRaaEMsZUFBZSxFdURZVyxNQUFNLEdBc0NyQztNQTlITCxBQTBGTSxnQkExRlUsQ0FXZCxZQUFZLENBMEVWLFdBQVcsR0FLUCxLQUFLLEFBQUEsV0FBVyxDQUFDO1FBQ2pCLE9BQU8sRUFBRSxJQUFJLEdBQ2Q7TUE1RlAsQUE4Rk0sZ0JBOUZVLENBV2QsWUFBWSxDQTBFVixXQUFXLEdBU1AsS0FBSyxDQUFDO1FBQ04sTUFBTSxFQUFFLFFBQVE7UXZEeUJ0QixVQUFVLEV1RHhCaUIsSUFBSTtRdkR5Qi9CLFVBQVUsRXVEekJpQixJQUFJO1F2RDBCL0IsTUFBTSxFdUQxQnFCLElBQUk7UUFFekIsVUFBVSxFQUFFLGNBQWM7UUFDMUIsV0FBVyxFQUFFLElBQUk7UUFDakIsWUFBWSxFQUFFLElBQUk7UUFDbEIsYUFBYSxFQUFFLGNBQWM7UUFDN0IsYUFBYSxFQUFFLENBQUM7UUFDaEIsVUFBVSxFQUFFLE1BQU0sR0FTbkI7UUFoSFAsQXZENFRFLGdCdUQ1VGMsQ0FXZCxZQUFZLENBMEVWLFdBQVcsR0FTUCxLQUFLLEF2RDhOViwyQkFBMkIsQ0FBQztVdURuTnJCLEtBQUssRUFBRSxPQUFPO1VBQ2QsVUFBVSxFQUFFLE1BQU07VUFDbEIsT0FBTyxFQUFFLENBQUMsR3ZEaU5zQjtRdUQ1VDFDLEF2RDZURSxnQnVEN1RjLENBV2QsWUFBWSxDQTBFVixXQUFXLEdBU1AsS0FBSyxBdkQrTlYsaUJBQWlCLENBQVc7VXVEcE5yQixLQUFLLEVBQUUsT0FBTztVQUNkLFVBQVUsRUFBRSxNQUFNO1VBQ2xCLE9BQU8sRUFBRSxDQUFDLEd2RGtOc0I7UXVEN1QxQyxBdkQ4VEUsZ0J1RDlUYyxDQVdkLFlBQVksQ0EwRVYsV0FBVyxHQVNQLEtBQUssQXZEZ09WLGtCQUFrQixDQUFVO1V1RHJOckIsS0FBSyxFQUFFLE9BQU87VUFDZCxVQUFVLEVBQUUsTUFBTTtVQUNsQixPQUFPLEVBQUUsQ0FBQyxHdkRtTnNCO1F1RDlUMUMsQXZEK1RFLGdCdUQvVGMsQ0FXZCxZQUFZLENBMEVWLFdBQVcsR0FTUCxLQUFLLEF2RGlPVixzQkFBc0IsQ0FBTTtVdUR0TnJCLEtBQUssRUFBRSxPQUFPO1VBQ2QsVUFBVSxFQUFFLE1BQU07VUFDbEIsT0FBTyxFQUFFLENBQUMsR3ZEb05zQjtRdUQvVDFDLEFBNkdRLGdCQTdHUSxDQVdkLFlBQVksQ0EwRVYsV0FBVyxHQVNQLEtBQUssR0FlSCxLQUFLLENBQUU7VUFDUCxVQUFVLEVBQUUsQ0FBQyxHQUNkO01BL0dULEFBa0hNLGdCQWxIVSxDQVdkLFlBQVksQ0EwRVYsV0FBVyxDQTZCVCxlQUFlLENBQUM7UUFDZCxNQUFNLEVBQUUsS0FBSyxHQUNkO01BcEhQLEFBc0hNLGdCQXRIVSxDQVdkLFlBQVksQ0EwRVYsV0FBVyxDQWlDVCxrQkFBa0IsQ0FBQztRdkQvRHZCLGtCQUFrQixFdURnRWUsTUFBTTtRdkQvRC9CLFVBQVUsRXVEK0RlLE1BQU07UUFDL0IsTUFBTSxFQUFFLFFBQVEsR0FLbkI7UUE3SFAsQUF5SFUsZ0JBekhNLENBV2QsWUFBWSxDQTBFVixXQUFXLENBaUNULGtCQUFrQixHQUdaLE1BQU0sQ0FBQztVdkREakIsVUFBVSxFdURFcUIsSUFBSTtVdkREbkMsVUFBVSxFdURDcUIsSUFBSTtVdkRBbkMsTUFBTSxFdURBeUIsSUFBSTtVQUN6QixLQUFLLEVBQUUsS0FBSyxHQUNYO0lBNUhiLEFBZ0lJLGdCQWhJWSxDQVdkLFlBQVksQ0FxSFYsUUFBUSxDQUFDO012RDNEWCxPQUFPLEVBQUUsWUFBWTtNQUNyQixPQUFPLEVBQUUsV0FBVztNQUNwQixPQUFPLEVBQUUsSUFBSTtNQVhiLHNCQUFzQixFQThDRSxHQUFHO01BN0NuQixjQUFjLEVBNkNFLEdBQUc7TUF4RDNCLG1CQUFtQixFdURnRlcsTUFBTTtNdkQvRTVCLFdBQVcsRXVEK0VXLE1BQU07TXZEdkRwQyx1QkFBdUIsRXVEd0RXLE1BQU07TXZEdkRoQyxlQUFlLEV1RHVEVyxNQUFNO01BRXBDLE1BQU0sRUFBRSxTQUFTLEdBQ2xCO0lBdElMLEFBd0lLLGdCQXhJVyxDQVdkLFlBQVksQ0E2SFQsWUFBWSxDQUFDO012RHRGaEIsbUJBQW1CLEV1RHVGVyxNQUFNO012RHRGNUIsV0FBVyxFdURzRlcsTUFBTTtNdkQ5RHBDLHVCQUF1QixFdUQrRFcsTUFBTTtNdkQ5RGhDLGVBQWUsRXVEOERXLE1BQU07TXZEbEJ4QyxVQUFVLEV1RG1CZSxJQUFJO012RGxCN0IsVUFBVSxFdURrQmUsSUFBSTtNdkRqQjdCLE1BQU0sRXVEaUJtQixJQUFJO01BQ3pCLE1BQU0sRUFBRSxTQUFTLEdBQ2xCO0lBN0lMLEFBK0lJLGdCQS9JWSxDQVdkLFlBQVksQ0FvSVYsV0FBVyxDQUFDO012RDFFZCxPQUFPLEVBQUUsWUFBWTtNQUNyQixPQUFPLEVBQUUsV0FBVztNQUNwQixPQUFPLEVBQUUsSUFBSTtNQVhiLHNCQUFzQixFQThDRSxHQUFHO01BN0NuQixjQUFjLEVBNkNFLEdBQUc7TUEvQjNCLHVCQUF1QixFdURzRVcsTUFBTTtNdkRyRWhDLGVBQWUsRXVEcUVXLE1BQU07TUFFcEMsU0FBUyxFQUFFLElBQUksR0FNaEI7TUF6SkwsQUFxSk0sZ0JBckpVLENBV2QsWUFBWSxDQW9JVixXQUFXLEdBTVAsQ0FBQyxDQUFDO1FBQ0YsS0FBSyxFQUFFLElBQUk7UUFDWCxZQUFZLEVBQUUsR0FBRyxHQUNsQjs7QUFJUCxBQUFBLGdCQUFnQixDQUFFO0VBQ2hCLE1BQU0sRUFBRSxRQUFRO0V2RHRHaEIsa0JBQWtCLEV1RHVHTyxNQUFNO0V2RHRHdkIsVUFBVSxFdURzR08sTUFBTTtFQUMvQixPQUFPLEVBQUUsS0FBSyxHQVVmO0VBYkQsQUFJRSxnQkFKYyxDQUlkLGVBQWUsQ0FBRTtJdkQ5R2pCLG1CQUFtQixFdUQrR1MsTUFBTTtJdkQ5RzFCLFdBQVcsRXVEOEdTLE1BQU0sR0FPakM7SUFaSCxBQU1JLGdCQU5ZLENBSWQsZUFBZSxDQUViLENBQUMsQ0FBRTtNQUNELFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0lBUkwsQUFTSSxnQkFUWSxDQUlkLGVBQWUsQ0FLYixJQUFJLENBQUU7TUFDSixLQUFLLEVBQUUsT0FBTyxHQUNmOztBQUdMLEFBQUEsb0JBQW9CLENBQUU7RUFDcEIsTUFBTSxFQUFFLFFBQVE7RXZEcEhoQixrQkFBa0IsRXVEcUhPLE1BQU07RXZEcEh2QixVQUFVLEV1RG9ITyxNQUFNO0VBQy9CLE1BQU0sRUFBRSxPQUFPO0VBQ2YsS0FBSyxFQUFFLE9BQU87RUFDZCxvQkFBb0IsRUFBRSxTQUFTO0VBQy9CLFNBQVMsRUFBRSxJQUFJLEdBSWhCO0VBVkQsQUFPRSxvQkFQa0IsQ0FPbEIsQ0FBQyxDQUFFO0lBQ0QsS0FBSyxFQUFFLE9BQU8sR0FDZjs7QUdyTEgsQUFBQSxnQkFBZ0IsQ0FBQyxPQUFPLEFBQUEsYUFBYSxDQUFDO0UxRDZFcEMsdUJBQXVCLEUwRDVFTyxVQUFVO0UxRDZFaEMsZUFBZSxFMEQ3RU8sVUFBVTtFQUN4QyxNQUFNLEVBQUUsSUFBSTtFQUNaLFNBQVMsRUFBRSxLQUFLLEdBcUJqQjtFQXhCRCxBQUtFLGdCQUxjLENBQUMsT0FBTyxBQUFBLGFBQWEsQ0FLbkMsS0FBSyxDQUFDO0kxRGtFTixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQThDRSxHQUFHO0lBN0NuQixjQUFjLEVBNkNFLEdBQUc7SUF4RDNCLG1CQUFtQixFMEQ3Q1MsTUFBTTtJMUQ4QzFCLFdBQVcsRTBEOUNTLE1BQU07STFEc0VsQyx1QkFBdUIsRTBEckVTLFVBQVU7STFEc0VsQyxlQUFlLEUwRHRFUyxVQUFVO0kxRGlEMUMsa0JBQWtCLEUwRGhEUyxPQUFPO0kxRGlEMUIsVUFBVSxFMERqRFMsT0FBTztJQUNoQyxNQUFNLEVBQUUsT0FBTztJQUNmLFNBQVMsRUFBRSxLQUFLLEdBWWpCO0lBdkJILEFBYUksZ0JBYlksQ0FBQyxPQUFPLEFBQUEsYUFBYSxDQUtuQyxLQUFLLENBUUgsSUFBSSxDQUFDO00xRDBEUCxPQUFPLEVBQUUsWUFBWTtNQUNyQixPQUFPLEVBQUUsV0FBVztNQUNwQixPQUFPLEVBQUUsSUFBSTtNQVhiLHNCQUFzQixFQThDRSxHQUFHO01BN0NuQixjQUFjLEVBNkNFLEdBQUc7TUEvQjNCLHVCQUF1QixFMEQ5RFcsUUFBUTtNMUQrRGxDLGVBQWUsRTBEL0RXLFFBQVE7TUFDdEMsWUFBWSxFQUFFLEdBQUc7TUFDakIsU0FBUyxFQUFFLEtBQUssR0FDakI7SUFsQkwsQUFvQkksZ0JBcEJZLENBQUMsT0FBTyxBQUFBLGFBQWEsQ0FLbkMsS0FBSyxDQWVILEtBQUssQ0FBQztNQUNKLEtBQUssRUFBRSxJQUFJLEdBQ1o7O0FDdkJMLEFBRUUsZ0JBRmMsQUFFYixtQkFBbUIsQ0FBQztFQUNuQixRQUFRLEVBQUUsSUFBSTtFQUNkLEtBQUssRUFBRSxLQUFLLEdBeVJiO0VBN1JILEFBTUksZ0JBTlksQUFFYixtQkFBbUIsQ0FJbEIsTUFBTSxDQUFDO0lBQ0wsTUFBTSxFQUFFLElBQUksR0FNYjtJQWJMLEFBU00sZ0JBVFUsQUFFYixtQkFBbUIsQ0FJbEIsTUFBTSxDQUdKLEtBQUssQ0FBQztNM0QrRFYsT0FBTyxFQUFFLFlBQVk7TUFDckIsT0FBTyxFQUFFLFdBQVc7TUFDcEIsT0FBTyxFQUFFLElBQUk7TUFYYixzQkFBc0IsRUE4Q0UsR0FBRztNQTdDbkIsY0FBYyxFQTZDRSxHQUFHO00yRGxHckIsU0FBUyxFQUFFLElBQUksR0FDaEI7RUFaUCxBQWVJLGdCQWZZLEFBRWIsbUJBQW1CLENBYWxCLE1BQU0sQ0FBQztJM0Q0R1QsVUFBVSxFMkQzR2UsSUFBSTtJM0Q0RzdCLFVBQVUsRTJENUdlLElBQUk7STNENkc3QixNQUFNLEUyRDdHbUIsSUFBSTtJQUN6QixNQUFNLEVBQUUsSUFBSSxHQUtiO0lBdEJMLEFBbUJNLGdCQW5CVSxBQUViLG1CQUFtQixDQWFsQixNQUFNLEFBSUgsUUFBUSxDQUFDO01BQ1IsVUFBVSxFQUFFLEdBQUcsR0FDaEI7RUFyQlAsQUF3QkksZ0JBeEJZLEFBRWIsbUJBQW1CLENBc0JsQixPQUFPLENBQUM7STNENkJWLG1CQUFtQixFMkQ1QlcsT0FBTztJM0Q2QjdCLFdBQVcsRTJEN0JXLE9BQU87STNEcURyQyx1QkFBdUIsRTJEcERXLFVBQVU7STNEcURwQyxlQUFlLEUyRHJEVyxVQUFVO0lBQ3hDLE1BQU0sRUFBRSxDQUFDO0lBQ1QsVUFBVSxFQUFFLENBQUM7SUFDYixTQUFTLEVBQUUsS0FBSyxHQStQakI7SUE1UkwsQUErQk0sZ0JBL0JVLEFBRWIsbUJBQW1CLENBc0JsQixPQUFPLEFBT0osY0FBYyxDQUFDO01BQ2QsVUFBVSxFQUFFLElBQUk7TUFDaEIsYUFBYSxFQUFFLGlCQUFpQixHQUNqQztJQWxDUCxBQW9DTSxnQkFwQ1UsQUFFYixtQkFBbUIsQ0FzQmxCLE9BQU8sQUFZSixJQUFLLENBQUEsY0FBYyxFQUFFO01BQ3BCLFVBQVUsRUFBRSxJQUFJLEdBQ2pCO0lBdENQLEFBd0NNLGdCQXhDVSxBQUViLG1CQUFtQixDQXNCbEIsT0FBTyxDQWdCTCxHQUFHLEFBQUEsY0FBYyxDQUFDO01BQ2hCLFdBQVcsRUFBRSxJQUFJO01BQ2pCLGFBQWEsRUFBRSxJQUFJO01BQ25CLFNBQVMsRUFBRSxJQUFJO01BQ2YsS0FBSyxFQUFFLE9BQU87TUFDZCxjQUFjLEVBQUUsTUFBTTtNQUN0QixXQUFXLEVBQUUsSUFBSTtNQUNqQixXQUFXLEVBQUUsSUFBSTtNQUNqQixjQUFjLEVBQUUsU0FBUyxHQUMxQjtJQWpEUCxBQW1ETSxnQkFuRFUsQUFFYixtQkFBbUIsQ0FzQmxCLE9BQU8sQ0EyQkwsR0FBRyxBQUFBLGtCQUFrQixDQUFDO00zRHFCMUIsT0FBTyxFQUFFLFlBQVk7TUFDckIsT0FBTyxFQUFFLFdBQVc7TUFDcEIsT0FBTyxFQUFFLElBQUk7TUFYYixzQkFBc0IsRUErQkUsTUFBTTtNQTlCdEIsY0FBYyxFQThCRSxNQUFNO01BaEI5Qix1QkFBdUIsRTJEekJhLE1BQU07TTNEMEJsQyxlQUFlLEUyRDFCYSxNQUFNLEdBQ3JDO0lBdERQLEFBdURNLGdCQXZEVSxBQUViLG1CQUFtQixDQXNCbEIsT0FBTyxDQStCTCxHQUFHLEFBQUEsaUJBQWlCLENBQUM7TTNEaUJ6QixPQUFPLEVBQUUsWUFBWTtNQUNyQixPQUFPLEVBQUUsV0FBVztNQUNwQixPQUFPLEVBQUUsSUFBSTtNQVhiLHNCQUFzQixFQThDRSxHQUFHO01BN0NuQixjQUFjLEVBNkNFLEdBQUc7TTJEcERyQixXQUFXLEVBQUUsSUFBSTtNQUNqQixjQUFjLEVBQUUsSUFBSSxHQTJDckI7TUFyR1AsQUEyRFEsZ0JBM0RRLEFBRWIsbUJBQW1CLENBc0JsQixPQUFPLENBK0JMLEdBQUcsQUFBQSxpQkFBaUIsQ0FJbEIsR0FBRyxBQUFBLGFBQWEsQ0FBQztRQUNmLFNBQVMsRUFBRSxJQUFJO1EzRHFFdkIsU0FBUyxFMkRwRW1CLEtBQUs7UTNEcUVqQyxTQUFTLEUyRHJFbUIsS0FBSztRM0RzRWpDLEtBQUssRTJEdEV1QixLQUFLLEdBQzFCO01BOURULEFBK0RRLGdCQS9EUSxBQUViLG1CQUFtQixDQXNCbEIsT0FBTyxDQStCTCxHQUFHLEFBQUEsaUJBQWlCLENBUWxCLEdBQUcsQUFBQSxrQkFBa0IsQ0FBQztRM0RTNUIsT0FBTyxFQUFFLFlBQVk7UUFDckIsT0FBTyxFQUFFLFdBQVc7UUFDcEIsT0FBTyxFQUFFLElBQUk7UUFYYixzQkFBc0IsRUE4Q0UsR0FBRztRQTdDbkIsY0FBYyxFQTZDRSxHQUFHLEcyRFRwQjtRQXBHVCxBQWlFVSxnQkFqRU0sQUFFYixtQkFBbUIsQ0FzQmxCLE9BQU8sQ0ErQkwsR0FBRyxBQUFBLGlCQUFpQixDQVFsQixHQUFHLEFBQUEsa0JBQWtCLENBRW5CLFlBQVksQ0FBQztVQUNYLFlBQVksRUFBRSxJQUFJLEdBSW5CO1VBdEVYLEFBbUVZLGdCQW5FSSxBQUViLG1CQUFtQixDQXNCbEIsT0FBTyxDQStCTCxHQUFHLEFBQUEsaUJBQWlCLENBUWxCLEdBQUcsQUFBQSxrQkFBa0IsQ0FFbkIsWUFBWSxHQUVSLElBQUksQ0FBQztZQUNMLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO1FBckViLEFBeUVVLGdCQXpFTSxBQUViLG1CQUFtQixDQXNCbEIsT0FBTyxDQStCTCxHQUFHLEFBQUEsaUJBQWlCLENBUWxCLEdBQUcsQUFBQSxrQkFBa0IsQ0FVbkIsYUFBYSxDQUFDO1VBQ1osUUFBUSxFQUFFLFFBQVEsR0F5Qm5CO1VBbkdYLEFBMkVZLGdCQTNFSSxBQUViLG1CQUFtQixDQXNCbEIsT0FBTyxDQStCTCxHQUFHLEFBQUEsaUJBQWlCLENBUWxCLEdBQUcsQUFBQSxrQkFBa0IsQ0FVbkIsYUFBYSxDQUVYLE1BQU0sQ0FBQztZM0RqRWpCLGtCQUFrQixFMkRrRWMsSUFBSTtZM0RqRWpDLGVBQWUsRTJEaUVjLElBQUk7WTNEaEU1QixVQUFVLEUyRGdFYyxJQUFJO1lBQ3hCLGdCQUFnQixFQUFFLFdBQVc7WUFDN0IsTUFBTSxFQUFFLGlCQUFpQjtZQUN6QixhQUFhLEVBQUUsR0FBRztZQUNsQixLQUFLLEVBQUUsT0FBTztZQUNkLFNBQVMsRUFBRSxJQUFJO1lBQ2YsV0FBVyxFQUFFLElBQUk7WUFDakIsU0FBUyxFQUFFLEtBQUs7WUFDaEIsT0FBTyxFQUFFLENBQUM7WUFDVixPQUFPLEVBQUUsYUFBYSxHQUt2QjtZQTFGYixBQXVGYyxnQkF2RkUsQUFFYixtQkFBbUIsQ0FzQmxCLE9BQU8sQ0ErQkwsR0FBRyxBQUFBLGlCQUFpQixDQVFsQixHQUFHLEFBQUEsa0JBQWtCLENBVW5CLGFBQWEsQ0FFWCxNQUFNLEFBWUgsWUFBWSxDQUFDO2NBQ1osT0FBTyxFQUFFLElBQUksR0FDZDtVQXpGZixBQTJGWSxnQkEzRkksQUFFYixtQkFBbUIsQ0FzQmxCLE9BQU8sQ0ErQkwsR0FBRyxBQUFBLGlCQUFpQixDQVFsQixHQUFHLEFBQUEsa0JBQWtCLENBVW5CLGFBQWEsQ0FrQlgsQ0FBQyxBQUFBLGdCQUFnQixDQUFDO1lBQ2hCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLEdBQUcsRUFBRSxHQUFHO1lBQ1IsS0FBSyxFQUFFLElBQUk7WUFDWCxVQUFVLEVBQUUsSUFBSTtZQUNoQixLQUFLLEVBQUUsT0FBTztZQUNkLGNBQWMsRUFBRSxJQUFJLEdBQ3JCO0lBbEdiLEFBdUdNLGdCQXZHVSxBQUViLG1CQUFtQixDQXNCbEIsT0FBTyxDQStFTCxjQUFjLENBQ2Q7TTNEaENKLE9BQU8sRUFBRSxZQUFZO01BQ3JCLE9BQU8sRUFBRSxXQUFXO01BQ3BCLE9BQU8sRUFBRSxJQUFJO01BWGIsc0JBQXNCLEVBOENFLEdBQUc7TUE3Q25CLGNBQWMsRUE2Q0UsR0FBRyxHMkRHdEI7TUFoSFAsQUEwR1EsZ0JBMUdRLEFBRWIsbUJBQW1CLENBc0JsQixPQUFPLENBK0VMLGNBQWMsQUFHWCxJQUFLLENBdEVGLGNBQWMsRUFzRUk7UUFDcEIsVUFBVSxFQUFFLGlCQUFpQixHQUM5QjtNQTVHVCxBQTZHUSxnQkE3R1EsQUFFYixtQkFBbUIsQ0FzQmxCLE9BQU8sQ0ErRUwsY0FBYyxDQU1WLGNBQWMsQ0FBQztRM0QvQnZCLHVCQUF1QixFMkRnQ2UsYUFBYTtRM0QvQjNDLGVBQWUsRTJEK0JlLGFBQWEsR0FDNUM7SUEvR1QsQUFrSE0sZ0JBbEhVLEFBRWIsbUJBQW1CLENBc0JsQixPQUFPLEdBMEZELElBQUksQ0FBQztNQUNQLE1BQU0sRUFBRSxJQUFJO01BQ1osV0FBVyxFQUFFLElBQUksR0FLbEI7TUF6SFAsQUFxSFEsZ0JBckhRLEFBRWIsbUJBQW1CLENBc0JsQixPQUFPLEdBMEZELElBQUksQUFHTCxZQUFZLENBQUM7UUFDVixXQUFXLEVBQUUsS0FBSztRQUNsQixLQUFLLEVBQUUsR0FBRyxHQUNiO0lBeEhULEFBMkhNLGdCQTNIVSxBQUViLG1CQUFtQixDQXNCbEIsT0FBTyxDQW1HTCxVQUFVLENBQUM7TTNEbkRmLE9BQU8sRUFBRSxZQUFZO01BQ3JCLE9BQU8sRUFBRSxXQUFXO01BQ3BCLE9BQU8sRUFBRSxJQUFJO01BWGIsc0JBQXNCLEVBOENFLEdBQUc7TUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztNQXhEM0IsbUJBQW1CLEUyRHdFYSxNQUFNO00zRHZFOUIsV0FBVyxFMkR1RWEsTUFBTTtNQUNoQyxZQUFZLEVBQUUsaUJBQWlCO01BQy9CLEtBQUssRUFBRSxHQUFHLEdBT1g7TUF0SVAsQUFnSVEsZ0JBaElRLEFBRWIsbUJBQW1CLENBc0JsQixPQUFPLENBbUdMLFVBQVUsQ0FLUixJQUFJLENBQUM7UUFDSCxNQUFNLEVBQUUsbUJBQW1CLEdBQzVCO01BbElULEFBbUlRLGdCQW5JUSxBQUViLG1CQUFtQixDQXNCbEIsT0FBTyxDQW1HTCxVQUFVLENBUVIsS0FBSyxDQUFDO1FBQ0osTUFBTSxFQUFFLElBQUksR0FDYjtJQXJJVCxBQXdJTSxnQkF4SVUsQUFFYixtQkFBbUIsQ0FzQmxCLE9BQU8sQ0FnSEwsS0FBSyxDQUFDO00zRGhFVixPQUFPLEVBQUUsWUFBWTtNQUNyQixPQUFPLEVBQUUsV0FBVztNQUNwQixPQUFPLEVBQUUsSUFBSTtNQVhiLHNCQUFzQixFQThDRSxHQUFHO01BN0NuQixjQUFjLEVBNkNFLEdBQUc7TUF4RDNCLG1CQUFtQixFMkRxRmEsTUFBTTtNM0RwRjlCLFdBQVcsRTJEb0ZhLE1BQU07TTNENUR0Qyx1QkFBdUIsRTJENkRhLFVBQVU7TTNENUR0QyxlQUFlLEUyRDREYSxVQUFVO00zRGpGOUMsa0JBQWtCLEUyRGtGYSxPQUFPO00zRGpGOUIsVUFBVSxFMkRpRmEsT0FBTztNM0RsR3RDLFlBQVksRTJEbUdRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtNM0RsR3RCLFFBQVEsRTJEa0dRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtNM0RqR2xCLElBQUksRTJEaUdRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtNQUNwQixRQUFRLEVBQUUsUUFBUTtNQUNsQixVQUFVLEVBQUUsSUFBSSxHQTRJakI7TUEzUlAsQUFpSlEsZ0JBakpRLEFBRWIsbUJBQW1CLENBc0JsQixPQUFPLENBZ0hMLEtBQUssQUFTRixJQUFLLENBN0dGLGNBQWMsRUE2R0k7UUFDcEIsV0FBVyxFQUFFLGlCQUFpQixHQUMvQjtNQW5KVCxBQXFKUSxnQkFySlEsQUFFYixtQkFBbUIsQ0FzQmxCLE9BQU8sQ0FnSEwsS0FBSyxBQWFGLFdBQVcsQ0FBQztRM0QzR25CLFlBQVksRTJENEdVLEdBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtRM0QzR3pCLFFBQVEsRTJEMkdVLEdBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtRM0QxR3JCLElBQUksRTJEMEdVLEdBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUN0QjtNQXZKVCxBQXlKUSxnQkF6SlEsQUFFYixtQkFBbUIsQ0FzQmxCLE9BQU8sQ0FnSEwsS0FBSyxBQWlCRixhQUFhLENBQUM7UTNEL0dyQixZQUFZLEUyRGdIVSxLQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7UTNEL0czQixRQUFRLEUyRCtHVSxLQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7UTNEOUd2QixJQUFJLEUyRDhHVSxLQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FDeEI7TUEzSlQsQUE2SlEsZ0JBN0pRLEFBRWIsbUJBQW1CLENBc0JsQixPQUFPLENBZ0hMLEtBQUssQ0FxQkgsSUFBSSxDQUFDO1FBQ0gsTUFBTSxFQUFFLElBQUk7UUFDWixXQUFXLEVBQUUsSUFBSTtRQUVqQixTQUFTLEVBQUUsSUFBSTtRQUNmLEtBQUssRUFBRSxPQUFPO1FBQ2QsY0FBYyxFQUFFLE1BQU07UUFDdEIsV0FBVyxFQUFFLElBQUk7UUFDakIsV0FBVyxFQUFFLEdBQUcsR0FDakI7TUF0S1QsQUF3S1EsZ0JBeEtRLEFBRWIsbUJBQW1CLENBc0JsQixPQUFPLENBZ0hMLEtBQUssQ0FnQ0gsY0FBYyxDQUFDO1FBQ2IsTUFBTSxFQUFFLGFBQWEsR0FDdEI7TUExS1QsQUE0S1EsZ0JBNUtRLEFBRWIsbUJBQW1CLENBc0JsQixPQUFPLENBZ0hMLEtBQUssQ0FvQ0gscUJBQXFCLENBQUM7UTNEbEk1QixZQUFZLEUyRG1JVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7UTNEbEkxQixRQUFRLEUyRGtJVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7UTNEakl0QixJQUFJLEUyRGlJVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7UTNEbkg5QixrQkFBa0IsRTJEb0hlLE9BQU87UTNEbkhoQyxVQUFVLEUyRG1IZSxPQUFPO1EzRHRHeEMsT0FBTyxFQUFFLFlBQVk7UUFDckIsT0FBTyxFQUFFLFdBQVc7UUFDcEIsT0FBTyxFQUFFLElBQUk7UUFYYixzQkFBc0IsRUE4Q0UsR0FBRztRQTdDbkIsY0FBYyxFQTZDRSxHQUFHLEcyRDZGcEI7UUExTVQsQUFnTFUsZ0JBaExNLEFBRWIsbUJBQW1CLENBc0JsQixPQUFPLENBZ0hMLEtBQUssQ0FvQ0gscUJBQXFCLENBSW5CLG1CQUFtQixDQUFDO1VBQ2xCLFFBQVEsRUFBRSxRQUFRO1VBQ2xCLE9BQU8sRUFBRSxFQUFFO1VBQ1gsR0FBRyxFQUFFLElBQUk7VUFDVCxPQUFPLEVBQUUsT0FBTztVQUNoQixhQUFhLEVBQUUsR0FBRztVQUNsQixnQkFBZ0IsRUFBRSxPQUFhO1VBQy9CLEtBQUssRUFBRSxLQUFLO1VBQ1osTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBYSxHQWlCaEM7VUF6TVgsQUF5TFksZ0JBekxJLEFBRWIsbUJBQW1CLENBc0JsQixPQUFPLENBZ0hMLEtBQUssQ0FvQ0gscUJBQXFCLENBSW5CLG1CQUFtQixBQVNoQixNQUFNLENBQUM7WUFDTixRQUFRLEVBQUUsUUFBUTtZQUNsQixJQUFJLEVBQUUsR0FBRztZQUNULEdBQUcsRUFBRSxLQUFLO1lBQ1YsWUFBWSxFQUFFLE9BQWEsQ0FBQyxXQUFXO1lBQ3ZDLFlBQVksRUFBRSxLQUFLO1lBQ25CLFlBQVksRUFBRSxrQkFBa0I7WUFDaEMsTUFBTSxFQUFFLEdBQUc7WUFDWCxLQUFLLEVBQUUsR0FBRztZQUNWLE9BQU8sRUFBRSxHQUFHLEdBQ2I7VUFuTWIsQUFvTVksZ0JBcE1JLEFBRWIsbUJBQW1CLENBc0JsQixPQUFPLENBZ0hMLEtBQUssQ0FvQ0gscUJBQXFCLENBSW5CLG1CQUFtQixDQW9CakIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxFQUFFLEdBQUc7WUFDWCxLQUFLLEVBQUUsT0FBTztZQUNkLFdBQVcsRUFBRSxPQUFPLEdBQ3JCO01BeE1iLEFBNE1RLGdCQTVNUSxBQUViLG1CQUFtQixDQXNCbEIsT0FBTyxDQWdITCxLQUFLLENBb0VILEtBQUssQ0FBQztRM0RsS1osWUFBWSxFMkRtS1UsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1EzRGxLMUIsUUFBUSxFMkRrS1UsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1EzRGpLdEIsSUFBSSxFMkRpS1UsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1EzRG5KOUIsa0JBQWtCLEUyRG9KZSxPQUFPO1EzRG5KaEMsVUFBVSxFMkRtSmUsT0FBTztRQUNoQyxNQUFNLEVBQUUsSUFBSTtRQUNaLGFBQWEsRUFBRSxHQUFHO1FBQ2xCLE9BQU8sRUFBRSxHQUFHO1FBQ1osU0FBUyxFQUFFLElBQUk7UUFDZixXQUFXLEVBQUUsSUFBSTtRQUNqQixPQUFPLEVBQUUsQ0FBQztRQUNWLE1BQU0sRUFBRSxHQUFHO1FBQ1gsV0FBVyxFQUFFLElBQUksR0FLbEI7UUEzTlQsQUF1TlUsZ0JBdk5NLEFBRWIsbUJBQW1CLENBc0JsQixPQUFPLENBZ0hMLEtBQUssQ0FvRUgsS0FBSyxBQVdGLFlBQVksQ0FBQztVM0Q3S3RCLFlBQVksRTJEOEtZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtVM0Q3SzVCLFFBQVEsRTJENktZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtVM0Q1S3hCLElBQUksRTJENEtZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtVM0R2RmhDLFNBQVMsRTJEd0ZxQixJQUFJO1UzRHZGbEMsU0FBUyxFMkR1RnFCLElBQUk7VTNEdEZsQyxLQUFLLEUyRHNGeUIsSUFBSSxHQUN6QjtNQTFOWCxBQTZOUSxnQkE3TlEsQUFFYixtQkFBbUIsQ0FzQmxCLE9BQU8sQ0FnSEwsS0FBSyxDQXFGSCxXQUFXLENBQUM7UUFDVixLQUFLLEVBQUUsS0FBSyxHQUNiO01BL05ULEFBaU9RLGdCQWpPUSxBQUViLG1CQUFtQixDQXNCbEIsT0FBTyxDQWdITCxLQUFLLENBeUZILGdCQUFnQixDQUFDO1EzRHpKdkIsT0FBTyxFQUFFLFlBQVk7UUFDckIsT0FBTyxFQUFFLFdBQVc7UUFDcEIsT0FBTyxFQUFFLElBQUk7UUFYYixzQkFBc0IsRUE4Q0UsR0FBRztRQTdDbkIsY0FBYyxFQTZDRSxHQUFHO1FBeEQzQixtQkFBbUIsRTJEOEtlLE1BQU07UTNEN0toQyxXQUFXLEUyRDZLZSxNQUFNO1EzRHJKeEMsdUJBQXVCLEUyRHNKZSxVQUFVO1EzRHJKeEMsZUFBZSxFMkRxSmUsVUFBVTtRQUN4QyxTQUFTLEVBQUUsR0FBRztRQUNkLFFBQVEsRUFBRSxRQUFRLEdBT25CO1FBN09ULEFBME9VLGdCQTFPTSxBQUViLG1CQUFtQixDQXNCbEIsT0FBTyxDQWdITCxLQUFLLENBeUZILGdCQUFnQixBQVNiLE9BQU8sQ0FBQztVQUNQLFNBQVMsRUFBRSxHQUFHLEdBQ2Y7TUE1T1gsQUErT1EsZ0JBL09RLEFBRWIsbUJBQW1CLENBc0JsQixPQUFPLENBZ0hMLEtBQUssQ0F1R0gsTUFBTSxDQUFDO1EzRHJPYixrQkFBa0IsRTJEc09VLElBQUk7UTNEck83QixlQUFlLEUyRHFPVSxJQUFJO1EzRHBPeEIsVUFBVSxFMkRvT1UsSUFBSTtRM0R0TWhDLFlBQVksRTJEdU1VLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtRM0R0TTFCLFFBQVEsRTJEc01VLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtRM0RyTXRCLElBQUksRTJEcU1VLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtRM0R2TDlCLGtCQUFrQixFMkR3TGUsT0FBTztRM0R2TGhDLFVBQVUsRTJEdUxlLE9BQU87UUFDaEMsZ0JBQWdCLEVBQUUsV0FBVztRQUM3QixNQUFNLEVBQUUsSUFBSTtRQUNaLGFBQWEsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sRUFBRSxHQUFHO1FBQ1gsT0FBTyxFQUFFLENBQUM7UUFDVixXQUFXLEVBQUUsSUFBSSxHQWtDbEI7UUExUlQsQUEwUFUsZ0JBMVBNLEFBRWIsbUJBQW1CLENBc0JsQixPQUFPLENBZ0hMLEtBQUssQ0F1R0gsTUFBTSxBQVdILE1BQU0sQ0FBQztVQUNOLE9BQU8sRUFBRSxDQUFDLEdBQ1g7UUE1UFgsQUE4UFUsZ0JBOVBNLEFBRWIsbUJBQW1CLENBc0JsQixPQUFPLENBZ0hMLEtBQUssQ0F1R0gsTUFBTSxBQWVILGVBQWUsQ0FBQztVQUNmLEtBQUssRUFBRSxXQUFXO1VBQ2xCLFdBQVcsRUFBRSxVQUFVLEdBQ3hCO1FBalFYLEFBbVFVLGdCQW5RTSxBQUViLG1CQUFtQixDQXNCbEIsT0FBTyxDQWdITCxLQUFLLENBdUdILE1BQU0sQUFvQkgsWUFBWSxDQUFDO1VBQ1osT0FBTyxFQUFFLElBQUksR0FDZDtRQXJRWCxBQXVRVSxnQkF2UU0sQUFFYixtQkFBbUIsQ0FzQmxCLE9BQU8sQ0FnSEwsS0FBSyxDQXVHSCxNQUFNLEdBd0JBLENBQUMsQUFBQSxnQkFBZ0IsQ0FBQztVQUNwQixRQUFRLEVBQUUsUUFBUTtVQUNsQixHQUFHLEVBQUUsSUFBSTtVQUNULEtBQUssRUFBRSxJQUFJO1VBQ1gsS0FBSyxFQUFFLE9BQU87VUFDZCxTQUFTLEVBQUUsR0FBRztVQUNkLGNBQWMsRUFBRSxJQUFJLEdBU3JCO1VBdFJYLEFBOFFZLGdCQTlRSSxBQUViLG1CQUFtQixDQXNCbEIsT0FBTyxDQWdITCxLQUFLLENBdUdILE1BQU0sR0F3QkEsQ0FBQyxBQUFBLGdCQUFnQixBQU9sQixLQUFLLENBQUM7WUFDTCxHQUFHLEVBQUUsSUFBSTtZQUNULEtBQUssRUFBRSxJQUFJLEdBQ1o7VUFqUmIsQUFrUlksZ0JBbFJJLEFBRWIsbUJBQW1CLENBc0JsQixPQUFPLENBZ0hMLEtBQUssQ0F1R0gsTUFBTSxHQXdCQSxDQUFDLEFBQUEsZ0JBQWdCLEFBV2xCLE9BQU8sQ0FBQztZQUNQLEdBQUcsRUFBRSxJQUFJO1lBQ1QsS0FBSyxFQUFFLElBQUksR0FDWjtRQXJSYixBQXVSVSxnQkF2Uk0sQUFFYixtQkFBbUIsQ0FzQmxCLE9BQU8sQ0FnSEwsS0FBSyxDQXVHSCxNQUFNLEFBd0NILFNBQVMsQ0FBQztVQUNULFdBQVcsRUFBRSxJQUFJLEdBQ2xCOztBQU9YLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFQWhTeEIsQUFFRSxnQkFGYyxBQUViLG1CQUFtQixDQStSZ0I7SUFDbEMsUUFBUSxFQUFFLGdCQUFnQjtJQUMxQixHQUFHLEVBQUUsWUFBWTtJQUNqQixJQUFJLEVBQUUsWUFBWTtJQUNsQixLQUFLLEVBQUUsWUFBWTtJQUNuQixNQUFNLEVBQUUsWUFBWTtJQUNwQixLQUFLLEVBQUUsZUFBZTtJQUN0QixTQUFTLEVBQUUsZUFBZTtJQUMxQixTQUFTLEVBQUUsWUFBWTtJQUN2QixhQUFhLEVBQUUsQ0FBQztJQUNoQixVQUFVLEVBQUUsSUFBSTtJQUNoQixPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLFVBQVUsRUFBRSxJQUFJLEdBd0RqQjtJQXZXSCxBQWVJLGdCQWZZLEFBRWIsbUJBQW1CLENBYWxCLE1BQU0sQ0FrU0M7TUFDTCxRQUFRLEVBQUUsTUFBTTtNQUNoQixNQUFNLEVBQUUsQ0FBQztNQUNULGdCQUFnQixFQUFFLElBQUk7TUFDdEIsVUFBVSxFQUFFLGlCQUFpQjtNQUM3QixPQUFPLEVBQUUsQ0FBQyxHQUNYO0lBdlRMLEFBd0JJLGdCQXhCWSxBQUViLG1CQUFtQixDQXNCbEIsT0FBTyxDQWlTQztNQUNOLFNBQVMsRUFBRSxDQUFDLEdBNENiO01BckVILEFBNkJJLGdCQTdCWSxBQUFBLG1CQUFtQixDQXdCakMsT0FBTyxHQUtILGNBQWMsQUFBQSxJQUFLLENBQUEsa0JBQWtCLEVBQUU7UUFDdkMsY0FBYyxFQUFFLE1BQU0sR0FXdkI7UUF6Q0wsQUFnQ00sZ0JBaENVLEFBQUEsbUJBQW1CLENBd0JqQyxPQUFPLEdBS0gsY0FBYyxBQUFBLElBQUssQ0FBQSxrQkFBa0IsRUFHckMsS0FBSyxDQUFDO1VBQ0osSUFBSSxFQUFFLFFBQVE7VUFDZCxVQUFVLEVBQUUsSUFBSSxHQU1qQjtVQXhDUCxBQW9DUSxnQkFwQ1EsQUFBQSxtQkFBbUIsQ0F3QmpDLE9BQU8sR0FLSCxjQUFjLEFBQUEsSUFBSyxDQUFBLGtCQUFrQixFQUdyQyxLQUFLLEFBSUYsSUFBSyxDQWpTSixjQUFjLEVBaVNNO1lBQ3BCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFVBQVUsRUFBRSxpQkFBaUIsR0FDOUI7TUF4VVgsQUEySE0sZ0JBM0hVLEFBRWIsbUJBQW1CLENBc0JsQixPQUFPLENBbUdMLFVBQVUsQ0FrTkM7UUFDVCxLQUFLLEVBQUUsSUFBSTtRQUNYLFlBQVksRUFBRSxJQUFJO1FBQ2xCLGFBQWEsRUFBRSxpQkFBaUIsR0FDakM7TUFoREwsQUFrREksZ0JBbERZLEFBQUEsbUJBQW1CLENBd0JqQyxPQUFPLEdBMEJILGNBQWMsQUFBQSxjQUFjLENBQUM7UUFDN0IsV0FBVyxFQUFFLElBQUksR0FpQmxCO1FBcEVMLEFBcURNLGdCQXJEVSxBQUFBLG1CQUFtQixDQXdCakMsT0FBTyxHQTBCSCxjQUFjLEFBQUEsY0FBYyxDQUc1QixrQkFBa0IsQ0FBQztVQUNqQixLQUFLLEVBQUUsSUFBSSxHQU1aO1VBNURQLEFBd0RRLGdCQXhEUSxBQUFBLG1CQUFtQixDQXdCakMsT0FBTyxHQTBCSCxjQUFjLEFBQUEsY0FBYyxDQUc1QixrQkFBa0IsQ0FHaEIsaUJBQWlCLENBQUM7WUFDaEIsV0FBVyxFQUFFLElBQUk7WUFDakIsY0FBYyxFQUFFLElBQUksR0FDckI7UUEzRFQsQUE4RE0sZ0JBOURVLEFBQUEsbUJBQW1CLENBd0JqQyxPQUFPLEdBMEJILGNBQWMsQUFBQSxjQUFjLENBWTVCLGNBQWMsQ0FBQztVQUNiLEtBQUssRUFBRSxJQUFJO1VBQ1gsT0FBTyxFQUFFLG1CQUFtQjtVQUM1QixVQUFVLEVBQUUsaUJBQWlCO1VBQzdCLFVBQVUsRUFBRSxDQUFDLEdBQ2Q7O0FDaldULEFBQUEsV0FBVyxDQUFDO0U1RHFFVixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQThDRSxHQUFHO0VBN0NuQixjQUFjLEVBNkNFLEdBQUc7RTREeEczQixhQUFhLEVBQUUsSUFBSSxHQUNwQjs7QUFFRCxBQUFBLG9CQUFvQixDQUFDO0U1RGdFbkIsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFYYixzQkFBc0IsRUErQkUsTUFBTTtFQTlCdEIsY0FBYyxFQThCRSxNQUFNO0VBaEI5Qix1QkFBdUIsRTREcEVTLE1BQU07RTVEcUU5QixlQUFlLEU0RHJFUyxNQUFNO0VBRXBDLE1BQU0sRUFBRSxtQkFBbUI7RUFDM0IsT0FBTyxFQUFFLFFBQVE7RUFDakIsVUFBVSxFQUFFLElBQUk7RUFDaEIsVUFBVSxFQUFFLEtBQUs7RUFDakIsU0FBUyxFQUFFLEtBQUs7RUFDaEIsVUFBVSxFQUFFLElBQUksR0FlbkI7RUF4QkQsQUFVSSxvQkFWZ0IsQ0FVaEIsU0FBUyxDQUFDO0lBQ1IsTUFBTSxFQUFFLEtBQUssR0FZZDtJQXZCTCxBQVlNLG9CQVpjLENBVWhCLFNBQVMsQ0FFUCxhQUFhLENBQUM7TUFDWixTQUFTLEVBQUUsSUFBSTtNQUNmLEtBQUssRUFBRSxPQUFPO01BQ2QsY0FBYyxFQUFFLE1BQU07TUFDdEIsV0FBVyxFQUFFLElBQUk7TUFDakIsV0FBVyxFQUFFLEdBQUc7TUFDaEIsWUFBWSxFQUFFLElBQUksR0FJbkI7TUF0QlAsQUFtQlEsb0JBbkJZLENBVWhCLFNBQVMsQ0FFUCxhQUFhLEFBT1YsSUFBSSxDQUFDO1FBQ0osU0FBUyxFQUFFLElBQUksR0FDaEI7O0FHN0JULEFBRUUsZ0JBRmMsQUFFYixZQUFZLENBQUM7RUFDWixRQUFRLEVBQUUsSUFBSTtFQUNkLEtBQUssRUFBRSxLQUFLO0VBQ1osT0FBTyxFQUFFLFNBQVMsR0FPbkI7RUFaSCxBQU1JLGdCQU5ZLEFBRWIsWUFBWSxDQUlYLE1BQU0sQ0FBQztJQUNMLFVBQVUsRUFBRSxJQUFJLEdBSWpCO0lBWEwsQUFRTSxnQkFSVSxBQUViLFlBQVksQ0FJWCxNQUFNLENBRUosTUFBTSxDQUFDO01BQ0wsS0FBSyxFQUFFLElBQUksR0FDWjs7QUNUUCxBQUFBLFdBQVcsQ0FBQztFaEVvRFYsbUJBQW1CLEVnRW5ETyxRQUFRO0VoRW9EMUIsV0FBVyxFZ0VwRE8sUUFBUTtFaEV5SGxDLFVBQVUsRWdFeEhXLElBQUk7RWhFeUh6QixVQUFVLEVnRXpIVyxJQUFJO0VoRTBIekIsTUFBTSxFZ0UxSGUsSUFBSSxHQThDMUI7RUFoREQsQUFJRSxXQUpTLEdBSVAsR0FBRyxDQUFDO0loRXNITixVQUFVLEVnRXJIYSxJQUFJO0loRXNIM0IsVUFBVSxFZ0V0SGEsSUFBSTtJaEV1SDNCLE1BQU0sRWdFdkhpQixJQUFJO0lBQ3pCLEtBQUssRUFBRSxPQUFPO0lBQ2QsTUFBTSxFQUFFLE9BQU87SUFDZixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLGNBQWMsRUFBRSxHQUFHLEdBK0JwQjtJQTNDSCxBQWNJLFdBZE8sR0FJUCxHQUFHLEFBVUYsT0FBTyxDQUFDO01BQ1AsYUFBYSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENqRWZ2QixPQUFPO01pRWdCUixLQUFLLEVBQUUsT0FBTyxHQUNmO0lBakJMLEFBbUJJLFdBbkJPLEdBSVAsR0FBRyxBQWVGLElBQUssQ3pEeUJBLE9BQU8sQ3lEekJDLE1BQU0sQ0FBQztNQUNuQixhQUFhLEVBQUUsaUJBQWlCO01BQ2hDLE1BQU0sRUFBRSxPQUFPLEdBQ2hCO0lBdEJMLEFBd0JJLFdBeEJPLEdBSVAsR0FBRyxDQW9CSCxDQUFDLENBQUM7TWhFa0dKLFVBQVUsRWdFakdlLElBQUk7TWhFa0c3QixVQUFVLEVnRWxHZSxJQUFJO01oRW1HN0IsTUFBTSxFZ0VuR21CLElBQUk7TUFDekIsTUFBTSxFQUFFLElBQUk7TUFDWixLQUFLLEVBQUUsT0FBTztNQUNkLE9BQU8sRUFBRSxZQUFZO01BQ3JCLE9BQU8sRUFBRSxJQUFJO01BQ2IsZUFBZSxFQUFFLElBQUksR0FDdEI7SUEvQkwsQUFpQ0ksV0FqQ08sR0FJUCxHQUFHLENBNkJILElBQUksQUFBQSxPQUFPLENBQUM7TUFDVixRQUFRLEVBQUUsUUFBUTtNQUNsQixHQUFHLEVBQUUsQ0FBQztNQUNOLEtBQUssRUFBRSxLQUFLO01BQ1osS0FBSyxFQUFFLElBQUk7TUFDWCxNQUFNLEVBQUUsSUFBSTtNQUNaLGdCQUFnQixFQUFFLE9BQU87TUFDekIsYUFBYSxFQUFFLEdBQUc7TUFDbEIsVUFBVSxFQUFFLE1BQU0sR0FDbkI7RUExQ0wsQUE2Q0UsV0E3Q1MsR0E2Q1AsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNWLFdBQVcsRUFBRSxJQUFJLEdBQ2xCOztBQUdILEFBQUEsZUFBZSxDQUFDO0VoRXdFZCxVQUFVLEVnRXZFVyxJQUFJO0VoRXdFekIsVUFBVSxFZ0V4RVcsSUFBSTtFaEV5RXpCLE1BQU0sRWdFekVlLElBQUk7RUFDekIsS0FBSyxFQUFFLE9BQU87RUFDZCxNQUFNLEVBQUUsT0FBTztFQUNmLFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLE1BQU07RUFDbkIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsY0FBYyxFQUFFLEdBQUc7RUFDbkIsVUFBVSxFQUFFLElBQUksR0FtQmpCO0VBM0JELEFBVUUsZUFWYSxHQVVYLEdBQUcsQ0FBQztJaEU4RE4sVUFBVSxFZ0U3RGEsSUFBSTtJaEU4RDNCLFVBQVUsRWdFOURhLElBQUk7SWhFK0QzQixNQUFNLEVnRS9EaUIsSUFBSSxHQVcxQjtJQXRCSCxBQWFJLGVBYlcsR0FVWCxHQUFHLEFBR0YsT0FBTyxDQUFDO01BQ1AsYUFBYSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENqRWhFdkIsT0FBTztNaUVpRVIsS0FBSyxFQUFFLE9BQU8sR0FDZjtJQWhCTCxBQWtCSSxlQWxCVyxHQVVYLEdBQUcsQUFRRixJQUFLLEN6RHhCQSxPQUFPLEN5RHdCQyxNQUFNLENBQUM7TUFDbkIsYUFBYSxFQUFFLGlCQUFpQjtNQUNoQyxNQUFNLEVBQUUsT0FBTyxHQUNoQjtFQXJCTCxBQXdCRSxlQXhCYSxHQXdCWCxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ1YsV0FBVyxFQUFFLElBQUksR0FDbEI7O0FBR0gsQUFBQSxTQUFTLENBQUM7RWhFMkNSLFVBQVUsRWdFMUNXLElBQUk7RWhFMkN6QixVQUFVLEVnRTNDVyxJQUFJO0VoRTRDekIsTUFBTSxFZ0U1Q2UsSUFBSTtFaEVnRHpCLFNBQVMsRWdFL0NXLEtBQUs7RWhFZ0R6QixTQUFTLEVnRWhEVyxLQUFLO0VoRWlEekIsS0FBSyxFZ0VqRGUsS0FBSztFQUN6QixVQUFVLEVBQUUsY0FBYztFQUMxQixZQUFZLEVBQUUsY0FBYztFQUM1QixPQUFPLEVBQUUsTUFBTSxHQVloQjtFQWpCRCxBQU9FLFNBUE8sQ0FPUCxJQUFJLENBQUM7SUFDSCxXQUFXLEVBQUUsR0FBRyxHQUNqQjtFQVRILEFBV0UsU0FYTyxBQVdOLFNBQVMsQ0FBQztJQUNULGdCQUFnQixFQUFFLE9BQU8sR0FJMUI7SUFoQkgsQUFhSSxTQWJLLEFBV04sU0FBUyxDQUVSLElBQUksQ0FBQztNQUNILEtBQUssRUFBRSxPQUFPLEdBQ2Y7O0FBSUwsQUFBQSxTQUFTLEFBQUEsWUFBWSxDQUFDO0VBQ3BCLFdBQVcsRUFBRSxjQUFjLEdBQzVCOztBQUVELEFBQUEsU0FBUyxDQUFDO0VBQ1IsTUFBTSxFQUFFLGNBQWM7RUFDdEIsT0FBTyxFQUFFLEdBQUcsR0FDYjs7QUFFRCxBQUFBLGNBQWMsQ0FBQztFQUNiLGVBQWUsRUFBRSxJQUFJO0VBQ3JCLFlBQVksRUFBRSxDQUFDLEdBQ2hCOztBQzVHRCxBQUFBLHNCQUFzQixDQUFFO0VqRXFFdEIsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFYYixzQkFBc0IsRUE4Q0UsR0FBRztFQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0VpRXhHNUIsVUFBVSxFQUFFLElBQUksR0E2QmhCO0VBNUJBLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztJQUh6QixBQUFBLHNCQUFzQixDQUFFO01qRTREdEIsc0JBQXNCLEVpRXhERSxNQUFNO01qRXlEdEIsY0FBYyxFaUV6REUsTUFBTSxHQTJCL0I7RUEvQkQsQUFNQyxzQkFOcUIsQ0FNckIsTUFBTSxDQUFFO0lBQ1AsTUFBTSxFQUFFLENBQUM7SUFDVCxXQUFXLEVBQUUsR0FBRztJQUNWLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLEtBQUssRUFBRSxPQUFPO0lBQ2QsV0FBVyxFQUFFLElBQUk7SUFDakIsY0FBYyxFQUFFLE1BQU07SWpFeUQ1QixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQThDRSxHQUFHO0lBN0NuQixjQUFjLEVBNkNFLEdBQUc7SUF4RDNCLG1CQUFtQixFQTZETyxNQUFNO0lBNUR4QixXQUFXLEVBNERPLE1BQU07SWlFakdoQyxVQUFVLEVBQUUsSUFBSSxHQUNoQjtFQWZGLEFBZ0JDLHNCQWhCcUIsQ0FnQnJCLFNBQVMsQ0FBRTtJakV1QlYsWUFBWSxFaUV0QkUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lqRXVCbEIsUUFBUSxFaUV2QkUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lqRXdCZCxJQUFJLEVpRXhCRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SUFDdEIsYUFBYSxFQUFFLElBQUksR0FDbkI7RUFuQkYsQUFvQkMsc0JBcEJxQixDQW9CckIsU0FBUyxDQUFFO0lBQ1YsVUFBVSxFQUFFLEtBQUssR0FTakI7SUFSQSxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7TUF0QjFCLEFBb0JDLHNCQXBCcUIsQ0FvQnJCLFNBQVMsQ0FBRTtRQUdULFVBQVUsRUFBRSxJQUFJLEdBT2pCO0lBOUJGLEFBeUJFLHNCQXpCb0IsQ0FvQnJCLFNBQVMsR0FLTixHQUFHLEFBQUEsSUFBSyxFQUFBLEFBQUEsS0FBQyxBQUFBLEdBQVM7TUFDbkIsU0FBUyxFQUFFLE9BQU87TUFDVCxjQUFjLEVBQUUsTUFBTTtNQUN0QixXQUFXLEVBQUUsSUFBSSxHQUMxQjs7QUFJSCxBQUFBLHNCQUFzQixDQUFDO0VBQ25CLGFBQWEsRUFBRSxJQUFJLEdBQ3RCOztBQUVELEFBQUEsbUJBQW1CLENBQUM7RWpFZ0NsQixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQThDRSxHQUFHO0VBN0NuQixjQUFjLEVBNkNFLEdBQUc7RWlFbkV6QixNQUFNLEVBQUUsUUFBUSxHQVluQjtFQWRELEFBR0ksbUJBSGUsQ0FHZixNQUFNLENBQUM7SUFDSCxXQUFXLEVBQUUsR0FBRztJQUNoQixTQUFTLEVBQUUsTUFBTTtJQUNqQixLQUFLLEVsRTdDTixPQUFPO0lrRThDTixXQUFXLEVBQUUsSUFBSTtJQUNqQixhQUFhLEVBQUUsR0FBRztJQUNsQixjQUFjLEVBQUUsTUFBTTtJakV1QjVCLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBOENFLEdBQUc7SUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztJQXhEM0IsbUJBQW1CLEVBNkRPLE1BQU07SUE1RHhCLFdBQVcsRUE0RE8sTUFBTTtJaUUvRGhDLFVBQVUsRUFBRSxJQUFJO0lBQ1YsTUFBTSxFQUFFLE9BQU8sR0FDbEI7O0FBR0wsQUFBQSxjQUFjLENBQUM7RWpFZ0JiLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBWGIsc0JBQXNCLEVBOENFLEdBQUc7RUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztFQXhEM0IsbUJBQW1CLEVBNkRPLE1BQU07RUE1RHhCLFdBQVcsRUE0RE8sTUFBTTtFQXBDaEMsdUJBQXVCLEVpRXBCUyxNQUFNO0VqRXFCOUIsZUFBZSxFaUVyQlMsTUFBTSxHQUN2Qzs7QUFFRCxBQUFBLHlCQUF5QixDQUFDO0VqRTRGeEIsb0JBQW9CLEVpRTNGSSxDQUFDO0VqRTRGekIsaUJBQWlCLEVpRTVGTyxDQUFDO0VqRTZGekIsWUFBWSxFaUU3RlksQ0FBQztFakVpR3pCLGtCQUFrQixFaUVoR0ksR0FBRztFakVpR3pCLGVBQWUsRWlFakdPLEdBQUc7RWpFa0d6QixVQUFVLEVpRWxHWSxHQUFHLEdBSTFCO0VBSEMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0lBSDFCLEFBQUEseUJBQXlCLENBQUM7TWpFNEZ4QixvQkFBb0IsRWlFeEZHLENBQUM7TWpFeUZ4QixpQkFBaUIsRWlFekZNLENBQUM7TWpFMEZ4QixZQUFZLEVpRTFGVyxDQUFDLEdBRXpCOztBQUVELEFBQUEsaUJBQWlCLENBQUM7RWpFZ0doQiwyQkFBMkIsRUFBRSxLQUFLO0VBQ2xDLGlCQUFpQixFQUFFLFlBQVk7RUFDL0Isd0JBQXdCLEVBQUMsS0FBSztFQUM5QixzQkFBc0IsRUFBQyxLQUFLO0VBQzVCLHVCQUF1QixFQUFDLEtBQUs7RUFDN0IsWUFBWSxFQUFDLFlBQVksR2lFbkcxQjs7QUFFRCxBQUFBLHNCQUFzQixDQUFDO0VBQ3JCLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLFNBQVMsRUFBRSxNQUFNO0VBQ2pCLEtBQUssRUFBRSxPQUFPO0VBQ2QsV0FBVyxFQUFFLElBQUk7RUFDakIsY0FBYyxFQUFFLE1BQU0sR0FDdkI7O0FBRUQsQUFBQSxVQUFVLENBQUM7RUFDVixTQUFTLEVBQUUsSUFBSTtFQUNmLEtBQUssRUFBRSxPQUFPO0VBQ2QsY0FBYyxFQUFFLEtBQUs7RUFDckIsY0FBYyxFQUFFLFNBQVM7RUFDekIsV0FBVyxFQUFFLElBQUk7RUFDZCxXQUFXLEVBQUUsSUFBSSxHQUNwQjs7QUFFRCxBQUFBLDJCQUEyQixDQUFDO0VBQ3hCLGdCQUFnQixFQUFFLE9BQU8sR0FDNUI7O0FBRUQsQUFBQSxvQkFBb0IsQ0FBRTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixTQUFTLEVBQUUsS0FBSztFQUNoQixNQUFNLEVBQUUsTUFBTSxHQVdkO0VBZEQsQUFJQyxvQkFKbUIsQ0FJbkIsR0FBRyxDQUFFO0lBQ0osTUFBTSxFQUFFLFFBQVEsR0FDaEI7RUFORixBQU9DLG9CQVBtQixDQU9uQixPQUFPLENBQUU7SUFDTixpQkFBaUIsRUFBRyxLQUFLO0lBQ3pCLGNBQWMsRUFBRSxJQUFJLEdBSXRCO0lBYkYsQUFVRSxvQkFWa0IsQ0FPbkIsT0FBTyxHQUdKLE9BQU8sQ0FBRTtNQUNQLFdBQVcsRUFBRSxJQUFJLEdBQ3BCOztBQUlILEFBQUEsc0JBQXNCLENBQUM7RUFDckIsU0FBUyxFQUFFLEtBQUs7RUFDaEIsTUFBTSxFQUFFLE1BQU07RUFDZCxPQUFPLEVBQUUsV0FBVyxHQWdCckI7RUFuQkQsQUFJRSxzQkFKb0IsQ0FJcEIsT0FBTyxDQUFDO0lBQ04sU0FBUyxFQUFFLElBQUk7SUFDZixLQUFLLEVBQUUsT0FBTztJQUNkLGNBQWMsRUFBRSxLQUFLO0lBQ3JCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLE9BQU8sRUFBRSxRQUFRLEdBQ2xCO0VBWkgsQUFhRSxzQkFib0IsQ0FhcEIsTUFBTSxDQUFDO0lBQ0wsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixLQUFLLEVBQUUsT0FBTztJQUNkLFdBQVcsRUFBRSxHQUFHLEdBQ2pCOztBQUdILEFBQUEsbUJBQW1CLENBQUM7RUFDbEIsVUFBVSxFQUFFLElBQUksR0F3QmpCO0VBekJELEFBRUMsbUJBRmtCLENBRWxCLE1BQU0sQ0FBQztJQUNOLEtBQUssRUFBRSxNQUFNO0lBQ2IsTUFBTSxFQUFFLElBQUksR0FLWjtJQUpBLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztNQUwxQixBQUVDLG1CQUZrQixDQUVsQixNQUFNLENBQUM7UUFJTCxLQUFLLEVBQUUsSUFBSTtRQUNYLE1BQU0sRUFBRSxJQUFJLEdBRWI7RUFURixBQVVDLG1CQVZrQixDQVVsQixHQUFHLENBQUM7SUFDSCxTQUFTLEVBQUUsSUFBSSxHQUNmO0VBWkYsQUFhRSxtQkFiaUIsR0FhZixPQUFPLENBQUU7SUFDWCxhQUFhLEVBQUUsR0FBRyxHQVVsQjtJQXhCRixBQWVFLG1CQWZpQixHQWFmLE9BQU8sQ0FFVCxNQUFNLENBQUU7TUFDUCxXQUFXLEVBQUUsR0FBRztNQUNoQixTQUFTLEVBQUUsSUFBSTtNQUNmLEtBQUssRUFBRSxPQUFPO01BQ2QsY0FBYyxFQUFFLEdBQUc7TUFDbkIsV0FBVyxFQUFFLENBQUM7TUFDZCxjQUFjLEVBQUUsU0FBUztNQUN6QixNQUFNLEVBQUUsUUFBUSxHQUNoQjs7QUFJSCxBQUFBLFdBQVcsQ0FBQztFakV0RlYsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFYYixzQkFBc0IsRUE4Q0UsR0FBRztFQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0VpRW1EM0IsV0FBVyxFQUFFLEdBQUc7RUFDaEIsU0FBUyxFQUFFLElBQUk7RUFDZixLQUFLLEVBQUUsT0FBTztFQUNkLGNBQWMsRUFBRSxHQUFHO0VBQ25CLFdBQVcsRUFBRSxDQUFDO0VBQ2QsTUFBTSxFQUFFLFdBQVcsR0FDcEI7O0FBQ0QsQUFBQSxVQUFVLENBQUU7RUFDWCxLQUFLLEVBQUUsSUFBSTtFQUNWLE9BQU8sRUFBRSxPQUFPO0VBQ2hCLFdBQVcsRUFBRSxJQUFJLEdBbUJsQjtFQXRCRCxBQUlDLFVBSlMsQUFJUixNQUFNLENBQUU7SUFDUixVQUFVLEVsRW5LRSxPQUFPLEdrRXVLbkI7SUFURixBQU1FLFVBTlEsQUFJUixNQUFNLEdBRUosSUFBSSxDQUFFO01BQ1AsVUFBVSxFbEVyS0MsT0FBTyxHa0VzS2xCO0VBUkgsQUFVQyxVQVZTLEFBVVIsT0FBTyxDQUFFO0lBQ1QsVUFBVSxFbEV2S0csT0FBTyxHa0UyS3BCO0lBZkYsQUFZRSxVQVpRLEFBVVIsT0FBTyxHQUVMLElBQUksQ0FBRTtNQUNQLFVBQVUsRWxFektFLE9BQU8sR2tFMEtuQjtFQWRILEFBZ0JDLFVBaEJTLEFBZ0JSLElBQUksQ0FBRTtJQUNOLFVBQVUsRWxFOUtBLE9BQU8sR2tFa0xqQjtJQXJCRixBQWtCRSxVQWxCUSxBQWdCUixJQUFJLEdBRUYsSUFBSSxDQUFFO01BQ1AsVUFBVSxFbEVoTEQsT0FBTyxHa0VpTGhCOztBR3hMSCxBQUFBLGVBQWUsQ0FBQztFQUNaLFVBQVUsRUFBRSxPQUFPO0VBQ25CLE1BQU0sRUFBRSxPQUFPLEdBQ2xCOztBQUVELEFBQ0ksUUFESSxBQUNILGVBQWUsQ0FBQztFQUNiLE1BQU0sRUFBRSxJQUFJO0VBQ1osTUFBTSxFQUFFLElBQUk7RUFDWixVQUFVLEVBQUUsSUFBSSxHQUNuQjs7QUFHTCxBQUFBLGtCQUFrQixDQUFDO0VwRXdEakIsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFYYixzQkFBc0IsRUE4Q0UsR0FBRztFQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0VBL0IzQix1QkFBdUIsRW9FNURTLFVBQVU7RXBFNkRsQyxlQUFlLEVvRTdEUyxVQUFVO0VwRW1DMUMsbUJBQW1CLEVvRWxDUyxVQUFVO0VwRW1DOUIsV0FBVyxFb0VuQ1MsVUFBVTtFQUNwQyxXQUFXLEVBQUUsSUFBSSxHQUNwQjs7QUFFRCxBQUFBLFVBQVUsQ0FBQztFQUNQLE1BQU0sRUFBRSxJQUFJO0VBQ1osS0FBSyxFQUFFLElBQUk7RUFDWCxXQUFXLEVBQUUsY0FBYztFQUMzQixhQUFhLEVBQUUsY0FBYyxHQUNoQzs7QUFFRCxBQUFBLHVCQUF1QixDQUFDO0VBQ3BCLE1BQU0sRUFBRSxXQUFXO0VBQ25CLFNBQVMsRUFBRSxLQUFLLEdBQ25COztBQUVELEFBQUEsS0FBSyxBQUFBLG9CQUFvQixDQUFFO0VBQzFCLE9BQU8sRUFBRSxLQUFLO0VBQ2QsTUFBTSxFQUFFLElBQUk7RUFDVCxNQUFNLEVBQUUsTUFBTSxHQUNqQjs7QUFFRCxBQUFBLEVBQUUsQUFBQSxxQkFBcUIsQ0FBQztFQUNwQixNQUFNLEVBQUUsSUFBSTtFQUNaLE9BQU8sRUFBRSxDQUFDO0VBQ1YsTUFBTSxFQUFFLEdBQUc7RUFDWCxVQUFVLEVBQUUsT0FBTztFQUNuQixNQUFNLEVBQUUsTUFBTTtFQUNkLEtBQUssRUFBRSxJQUFJLEdBQ2Q7O0FBRUQsQUFBQSxJQUFJLEFBQUEsZUFBZSxDQUFFO0VBQ2pCLE9BQU8sRUFBRSxLQUFLO0VBQ2QsT0FBTyxFQUFFLFFBQVE7RUFDakIsU0FBUyxFQUFFLENBQUM7RUFDWixTQUFTLEVBQUUsSUFBSTtFQUNmLEtBQUssRUFBRSxPQUFPO0VBQ2QsY0FBYyxFQUFFLEtBQUs7RUFDckIsY0FBYyxFQUFFLFNBQVM7RUFDekIsV0FBVyxFQUFFLElBQUk7RUFDakIsV0FBVyxFQUFFLElBQUksR0FDcEI7O0FBRUQsQUFDSSx3QkFEb0IsQUFDbkIsbUJBQW1CLENBQUM7RUFDakIsTUFBTSxFQUFFLGNBQWM7RUFDdEIsU0FBUyxFQUFFLEtBQUs7RUFDaEIsS0FBSyxFQUFFLEtBQUs7RUFDWixZQUFZLEVBQUUsZUFBZTtFQUM3QixVQUFVLEVBQUUsZ0JBQWdCLEdBa0MvQjtFQXhDTCxBQU9RLHdCQVBnQixBQUNuQixtQkFBbUIsR0FNZCxHQUFHLEFBQUEsaUJBQWlCLENBQUM7SUFDbkIsV0FBVyxFQUFFLElBQUk7SUFDakIsVUFBVSxFQUFFLEtBQUs7SUFDakIsTUFBTSxFQUFFLE9BQU8sR0FDbEI7RUFYVCxBQWFZLHdCQWJZLEFBQ25CLG1CQUFtQixDQVdoQixjQUFjLENBQ1YsSUFBSSxBQUFBLFNBQVMsQ0FBQztJQUNWLFdBQVcsRUFBRSxPQUFPLEdBQ3ZCO0VBZmIsQUFpQlEsd0JBakJnQixBQUNuQixtQkFBbUIsQ0FnQmhCLFFBQVEsQ0FBQztJQUNULFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEdBQUcsRUFBRSxJQUFJO0lBQ1QsSUFBSSxFQUFFLENBQUM7SUFDUCxnQkFBZ0IsRXJFOUVoQixPQUFPO0lxRStFUCxZQUFZLEVBQUUsSUFBSTtJQUNsQixVQUFVLEVBQUUsaUJBQWlCO0lBQzdCLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLENBQUMsR0FZVDtJQXZDVCxBQTRCWSx3QkE1QlksQUFDbkIsbUJBQW1CLENBZ0JoQixRQUFRLEdBV0EsR0FBRyxDQUFDO01wRWxCbEIsT0FBTyxFQUFFLFlBQVk7TUFDckIsT0FBTyxFQUFFLFdBQVc7TUFDcEIsT0FBTyxFQUFFLElBQUk7TUFYYixzQkFBc0IsRUE4Q0UsR0FBRztNQTdDbkIsY0FBYyxFQTZDRSxHQUFHO01BeEQzQixtQkFBbUIsRW9FdUNxQixNQUFNO01wRXRDdEMsV0FBVyxFb0VzQ3FCLE1BQU07TUFDaEMsVUFBVSxFQUFFLElBQUk7TUFDaEIsT0FBTyxFQUFFLE1BQU07TUFDZixXQUFXLEVBQUUsT0FBTyxHQUt2QjtNQXRDYixBQW1DZ0Isd0JBbkNRLEFBQ25CLG1CQUFtQixDQWdCaEIsUUFBUSxHQVdBLEdBQUcsQUFPRixNQUFNLENBQUM7UUFDUixnQkFBZ0IsRUFBRSxJQUFJLEdBQ3JCOztBQU1qQixBQUFBLG1CQUFtQixDQUFDO0VwRWpDbEIsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFYYixzQkFBc0IsRUE4Q0UsR0FBRztFQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0VBL0IzQix1QkFBdUIsRW9FNkJPLFVBQVU7RXBFNUJoQyxlQUFlLEVvRTRCTyxVQUFVO0VBQ3hDLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLFNBQVMsRUFBRSxJQUFJO0VBQ2hCLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLEtBQUssRUFBRSxPQUFPO0VBQ2QsV0FBVyxFQUFFLEdBQUcsR0FJaEI7RUFYRCxBQVFFLG1CQVJpQixHQVFmLEdBQUcsQ0FBQztJQUNKLE9BQU8sRUFBRSxpQkFBaUIsR0FDM0I7O0FBR0gsQUFBQSxXQUFXLENBQUM7RUFDVixPQUFPLEVBQUUsSUFBSSxHQUNkOztBR3JIRCxBQUFBLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxNQUFDLEFBQUEsQ0FBWSwyQkFBMkI7QUFDN0MsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFELE1BQUMsQUFBQSxDQUFZLDJCQUEyQixDQUFDO0VBQzVDLGtCQUFrQixFQUFFLElBQUk7RUFDeEIsTUFBTSxFQUFFLENBQUMsR0FDVjs7QUFFRCxBQUFBLGtCQUFrQixDQUFDO0VBQ2pCLEtBQUssRUFBRSxPQUFPO0VBQ2QsU0FBUyxFQUFFLElBQUk7RUFDZixjQUFjLEVBQUUsTUFBTTtFQUN0QixXQUFXLEVBQUUsR0FBRztFQUNoQixXQUFXLEVBQUUsSUFBSTtFQUNqQixjQUFjLEVBQUUsTUFBTSxHQUN2Qjs7QUFFRCxBQUFBLGVBQWUsQ0FBQztFQUNkLFNBQVMsRUFBRSxLQUFLO0VBQ2hCLFNBQVMsRUFBRSxJQUFJO0VBQ2YsS0FBSyxFQUFFLE9BQU87RUFDZCxNQUFNLEVBQUUsaUJBQWlCO0VBQ3pCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLE1BQU0sRUFBRSxJQUFJLEdBQ2I7O0FBRUQsQUFBQSxZQUFZLENBQUM7RUFDWCxXQUFXLEVBQUUsSUFBSTtFQUNqQixXQUFXLEVBQUUsSUFBSTtFQUNqQixTQUFTLEVBQUUsSUFBSTtFQUNmLEtBQUssRXhFL0JELE9BQU87RXdFZ0NYLGNBQWMsRUFBRSxTQUFTO0VBQ3pCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxJQUFJLEdBTVY7RUFkRCxBQVNFLFlBVFUsQ0FTVixLQUFLLENBQUM7SUFDSixXQUFXLEVBQUUsR0FBRztJQUNoQixRQUFRLEVBQUUsUUFBUTtJQUNsQixHQUFHLEVBQUUsSUFBSSxHQUNWOztBQUlIOztnREFFZ0Q7QUFDaEQsQUFDRSxFQURBLENBQ0EsSUFBSSxDQUFDO0VBQ0gsS0FBSyxFeEVoREYsT0FBTyxHd0VpRFg7O0FBR0gsQUFBQSxRQUFRLENBQUM7RXZFbUJQLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBWGIsc0JBQXNCLEVBOENFLEdBQUc7RUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztFQXhEM0IsbUJBQW1CLEV1RUVPLE9BQU87RXZFRHpCLFdBQVcsRXVFQ08sT0FBTztFQUNqQyxTQUFTLEVBQUUsS0FBSztFQUNoQixNQUFNLEVBQUUsSUFBSTtFQUNaLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDeEVuRE4sT0FBTztFd0VvRGxCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLFFBQVEsRUFBRSxNQUFNLEdBNEJqQjtFQXBDRCxBQVNFLFFBVE0sQ0FTTixPQUFPLENBQUM7SUFDTixnQkFBZ0IsRUFBRSxDQUFDO0lBQ2YsUUFBUSxFQUFFLENBQUM7SUFDUCxJQUFJLEVBQUUsQ0FBQyxHQXVCaEI7SUFuQ0gsQUFhSSxRQWJJLENBU04sT0FBTyxBQUlKLElBQUssQ0FBQSxZQUFZLEVBQUU7TUFDbEIsV0FBVyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEN4RTVEZixPQUFPLEd3RTZEZjtJQWZMLEFBZ0JJLFFBaEJJLENBU04sT0FBTyxDQU9MLEtBQUssQ0FBQztNQUNKLFFBQVEsRUFBRSxRQUFRO01BQ2xCLE9BQU8sRUFBRSxDQUFDLEdBS1g7TUF2QkwsQUFtQk0sUUFuQkUsQ0FTTixPQUFPLENBT0wsS0FBSyxBQUdGLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDaEIsS0FBSyxFQUFFLElBQUk7UUFDWCxVQUFVLEV4RXpFWCxPQUFPLEd3RTBFUDtJQXRCUCxBQXdCSSxRQXhCSSxDQVNOLE9BQU8sQ0FlTCxLQUFLLENBQUM7TUFDSixPQUFPLEVBQUUsS0FBSztNQUNkLE1BQU0sRUFBRSxJQUFJO01BQ1osV0FBVyxFQUFFLElBQUk7TUFDakIsVUFBVSxFQUFFLE1BQU07TUFDbEIsTUFBTSxFQUFFLE9BQU87TUFDZixXQUFXLEVBQUUsSUFBSSxHQUlsQjtNQWxDTCxBQStCTSxRQS9CRSxDQVNOLE9BQU8sQ0FlTCxLQUFLLEFBT0YsTUFBTSxDQUFDO1FBQ04sVUFBVSxFQUFFLElBQUksR0FDakI7O0FBS1AsQUFBQSxPQUFPLENBQUM7RXZFbkJOLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBSWIsdUJBQXVCLEV1RWVPLGFBQWE7RXZFZG5DLGVBQWUsRXVFY08sYUFBYTtFQUMzQyxTQUFTLEVBQUUsS0FBSztFQUNoQixVQUFVLEVBQUUsSUFBSTtFQUNoQixLQUFLLEV4RS9GQSxPQUFPLEd3RXlHYjtFQWZELEFBTUUsT0FOSyxDQU1MLEtBQUssQ0FBQztJQUNKLEtBQUssRUFBRSxLQUFLLEdBT2I7SUFkSCxBQVFJLE9BUkcsQ0FNTCxLQUFLLEFBRUYsVUFBVyxDL0IrVkssQ0FBQyxFK0IvVkg7TUFDYixVQUFVLEVBQUUsTUFBTSxHQUNuQjtJQVZMLEFBV0ksT0FYRyxDQU1MLEtBQUssQUFLRixVQUFXLENBQUEsQ0FBQyxFQUFFO01BQ2IsVUFBVSxFQUFFLEtBQUssR0FDbEI7O0FHcEdMLEFBQUEsc0JBQXNCLENBQUM7RTFFb0VyQixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQStCRSxNQUFNO0VBOUJ0QixjQUFjLEVBOEJFLE1BQU0sRzBFeEQvQjtFQWxDRCxBQUVFLHNCQUZvQixDQUVwQixTQUFTLENBQUM7STFFa0VWLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBOENFLEdBQUc7SUE3Q25CLGNBQWMsRUE2Q0UsR0FBRyxHMEU5RTFCO0lBM0JILEFBSUksc0JBSmtCLENBRXBCLFNBQVMsQUFFTixjQUFjLENBQUM7TUFDWixhQUFhLEVBQUUsR0FBRyxHQUNyQjtJQU5MLEFBT0ksc0JBUGtCLENBRXBCLFNBQVMsQUFLTixhQUFhLENBQUM7TUFDWCxhQUFhLEVBQUUsR0FBRyxHQUNyQjtJQVRMLEFBVUksc0JBVmtCLENBRXBCLFNBQVMsQUFRTixJQUFLLENmc0JFLGNBQWMsQ2V0QkQsSUFBSyxDQUFBLGFBQWEsRUFBRTtNQUNyQyxhQUFhLEVBQUUsSUFBSSxHQUN0QjtJQVpMLEFBYUksc0JBYmtCLENBRXBCLFNBQVMsQ0FXUCxTQUFTLENBQUM7TUFDUixLQUFLLEVBQUUsT0FBTztNQUNkLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLElBQUksR0FDbEI7SUFqQkwsQUFrQkksc0JBbEJrQixDQUVwQixTQUFTLENBZ0JQLGtCQUFrQixDQUFDO00xRWtEckIsT0FBTyxFQUFFLFlBQVk7TUFDckIsT0FBTyxFQUFFLFdBQVc7TUFDcEIsT0FBTyxFQUFFLElBQUk7TUFYYixzQkFBc0IsRUE4Q0UsR0FBRztNQTdDbkIsY0FBYyxFQTZDRSxHQUFHLEcwRS9FeEI7TUExQkwsQUFvQk0sc0JBcEJnQixDQUVwQixTQUFTLENBZ0JQLGtCQUFrQixBQUVmLGNBQWMsQ0FBQztRQUNkLFdBQVcsRUFBRSxLQUFLLEdBQ25CO01BdEJQLEFBdUJNLHNCQXZCZ0IsQ0FFcEIsU0FBUyxDQWdCUCxrQkFBa0IsQUFLZixJQUFLLENmU0EsY0FBYyxFZVRFO1FBQ3BCLFdBQVcsRUFBRSxJQUFJLEdBQ2xCO0VBekJQLEFBNEJFLHNCQTVCb0IsQ0E0QnBCLGtCQUFrQixDQUFDO0lBQ2pCLEtBQUssRUFBRSxPQUFPO0lBQ2QsWUFBWSxFQUFFLEdBQUc7SUFDakIsYUFBYSxFQUFFLElBQUk7SUFDbkIsS0FBSyxFQUFDLElBQ1IsR0FBQzs7QUFJSCxBQUFBLGlCQUFpQixDQUFDO0UxRStCaEIsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFYYixzQkFBc0IsRUErQkUsTUFBTTtFQTlCdEIsY0FBYyxFQThCRSxNQUFNLEcwRXZCL0I7RUE5QkQsQUFFRSxpQkFGZSxDQUVmLFNBQVMsQ0FBQztJMUU2QlYsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0kwRWhFekIsYUFBYSxFQUFFLEdBQUcsR0F5Qm5CO0lBN0JILEFBS0ksaUJBTGEsQ0FFZixTQUFTLEFBR04sSUFBSyxDZlZFLGNBQWMsQ2VVRCxJQUFLLENBaENBLGFBQWEsRUFnQ0U7TUFDdkMsYUFBYSxFQUFFLElBQUksR0FDcEI7SUFQTCxBQVFJLGlCQVJhLENBRWYsU0FBUyxDQU1QLFVBQVUsQ0FBQztNQUNULFlBQVksRUFBRSxJQUFJLEdBQ25CO0lBVkwsQUFXSSxpQkFYYSxDQUVmLFNBQVMsQ0FTUCxLQUFLLENBQUM7TUFDSixXQUFXLEVBQUUsSUFBSTtNQUNqQixLQUFLLEVBQUUsT0FBTztNQUNkLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLElBQUksR0FDbEI7SUFoQkwsQUFpQkksaUJBakJhLENBRWYsU0FBUyxDQWVQLGtCQUFrQixDQUFDO00xRWNyQixPQUFPLEVBQUUsWUFBWTtNQUNyQixPQUFPLEVBQUUsV0FBVztNQUNwQixPQUFPLEVBQUUsSUFBSTtNQVhiLHNCQUFzQixFQThDRSxHQUFHO01BN0NuQixjQUFjLEVBNkNFLEdBQUc7TTBFakR2QixZQUFZLEVBQUUsSUFBSSxHQVNuQjtNQTVCTCxBQW9CTSxpQkFwQlcsQ0FFZixTQUFTLENBZVAsa0JBQWtCLEFBR2YsY0FBYyxDQUFDO1FBQ2QsV0FBVyxFQUFFLEtBQUssR0FDbkI7TUF0QlAsQUF1Qk0saUJBdkJXLENBRWYsU0FBUyxDQWVQLGtCQUFrQixDQU1oQixrQkFBa0IsQ0FBQztRQUNqQixLQUFLLEVBQUUsT0FBTztRQUNkLFlBQVksRUFBRSxHQUFHO1FBQ2pCLEtBQUssRUFBQyxJQUNSLEdBQUM7O0FBTVAsQUFBQSxrQkFBa0IsQ0FBQztFMUVGakIsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFYYixzQkFBc0IsRUErQkUsTUFBTTtFQTlCdEIsY0FBYyxFQThCRSxNQUFNLEcwRUkvQjtFQXhCRCxBQUVFLGtCQUZnQixDQUVoQixTQUFTLENBQUM7STFFSlYsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0kwRS9CekIsYUFBYSxFQUFFLEdBQUcsR0FtQm5CO0lBdkJILEFBS0ksa0JBTGMsQ0FFaEIsU0FBUyxBQUdOLElBQUssQ2YzQ0UsY0FBYyxDZTJDRCxJQUFLLENBakVBLGFBQWEsRUFpRUU7TUFDdkMsYUFBYSxFQUFFLElBQUksR0FDcEI7SUFQTCxBQVFJLGtCQVJjLENBRWhCLFNBQVMsQ0FNUCxVQUFVLENBQUM7TUFDVCxZQUFZLEVBQUUsSUFBSSxHQUNuQjtJQVZMLEFBV0ksa0JBWGMsQ0FFaEIsU0FBUyxDQVNQLGtCQUFrQixDQUFDO00xRWJyQixPQUFPLEVBQUUsWUFBWTtNQUNyQixPQUFPLEVBQUUsV0FBVztNQUNwQixPQUFPLEVBQUUsSUFBSTtNQVhiLHNCQUFzQixFQThDRSxHQUFHO01BN0NuQixjQUFjLEVBNkNFLEdBQUc7TTBFdEJ2QixZQUFZLEVBQUUsSUFBSSxHQVNuQjtNQXRCTCxBQWNNLGtCQWRZLENBRWhCLFNBQVMsQ0FTUCxrQkFBa0IsQUFHZixjQUFjLENBQUM7UUFDZCxXQUFXLEVBQUUsS0FBSyxHQUNuQjtNQWhCUCxBQWlCTSxrQkFqQlksQ0FFaEIsU0FBUyxDQVNQLGtCQUFrQixDQU1oQixrQkFBa0IsQ0FBQztRQUNqQixLQUFLLEVBQUUsT0FBTztRQUNkLFlBQVksRUFBRSxHQUFHO1FBQ2pCLEtBQUssRUFBQyxJQUNSLEdBQUM7O0FHeERQLEFBQUEsb0JBQW9CLENBQUM7RUFDbkIsS0FBSyxFQUFFLElBQUk7RUFDWCxLQUFLLEVBQUUsc0JBQXNCLEdBQzlCOztBQUdDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFQUQxQixBQUFBLG9CQUFvQixDQUFDO0k3RXVCbkIsc0JBQXNCLEU2RXJCYyxNQUFNLEM3RXFCWixVQUFVO0lBQ2hDLGNBQWMsRTZFdEJjLE1BQU0sQzdFc0JaLFVBQVUsRzZFakJ6QztJQVBELEFBR0ksb0JBSGdCLENBR2hCLG9CQUFvQixDQUFDO01BQ25CLGVBQWUsRUFBRSxVQUFVLEdBQzVCOztBQUlMLEFBQUEsd0JBQXdCLENBQUM7RTdFbUJ2QixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQThDRSxHQUFHO0VBN0NuQixjQUFjLEVBNkNFLEdBQUc7RTZFdEQzQixNQUFNLEVBQUUsVUFBVTtFQUNsQixHQUFHLEVBQUUsSUFBSTtFQUNULFNBQVMsRUFBRSxJQUFJLEdBZWhCO0VBbkJELEFBTUUsd0JBTnNCLENBTXRCLFlBQVksQ0FBQztJN0VhYixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQThDRSxHQUFHO0lBN0NuQixjQUFjLEVBNkNFLEdBQUc7SUF4RDNCLG1CQUFtQixFNkVRUyxNQUFNO0k3RVAxQixXQUFXLEU2RU9TLE1BQU07STdFaUJsQyx1QkFBdUIsRTZFaEJTLE1BQU07STdFaUI5QixlQUFlLEU2RWpCUyxNQUFNO0lBQ3BDLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEdBQUcsRUFBRSxJQUFJLEdBT1Y7SUFOQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7TUFaNUIsQUFNRSx3QkFOc0IsQ0FNdEIsWUFBWSxDQUFDO1FBT1QsV0FBVyxFQUFFLENBQUM7UUFDZCxjQUFjLEVBQUUsTUFBTTtRQUN0QixXQUFXLEVBQUUsVUFBVTtRQUN2QixLQUFLLEVBQUUsSUFBSSxHQUVkOztBQUdILEFBQUEsdUJBQXVCLENBQUM7RTdFRnRCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBWGIsc0JBQXNCLEVBOENFLEdBQUc7RUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztFQXhEM0IsbUJBQW1CLEU2RXVCTyxNQUFNO0U3RXRCeEIsV0FBVyxFNkVzQk8sTUFBTTtFN0VFaEMsdUJBQXVCLEU2RURPLE1BQU07RTdFRTVCLGVBQWUsRTZFRk8sTUFBTTtFQUNwQyxVQUFVLEVBQUUsS0FBSztFQUNqQixTQUFTLEVBQUUsSUFBSSxHQUNoQjs7QUFFRCxBQUFBLHVCQUF1QixDQUFDO0U3RVZ0QixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQThDRSxHQUFHO0VBN0NuQixjQUFjLEVBNkNFLEdBQUcsRzZFbUQ1QjtFQTlFRCxBQUdFLHVCQUhxQixDQUdyQixxQkFBcUIsQ0FBQztJN0VidEIsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUErQkUsTUFBTTtJQTlCdEIsY0FBYyxFQThCRSxNQUFNO0k2RVA1QixVQUFVLEVBQUUsSUFBSTtJQUNoQixXQUFXLEVBQUUsSUFBSSxHQXVFbEI7SUE3RUgsQUFRSSx1QkFSbUIsQ0FHckIscUJBQXFCLENBS25CLG9CQUFvQixDQUFDO003RWxCdkIsT0FBTyxFQUFFLFlBQVk7TUFDckIsT0FBTyxFQUFFLFdBQVc7TUFDcEIsT0FBTyxFQUFFLElBQUk7TUFYYixzQkFBc0IsRUE4Q0UsR0FBRztNQTdDbkIsY0FBYyxFQTZDRSxHQUFHLEc2RWlEeEI7TUE1RUwsQUFXTSx1QkFYaUIsQ0FHckIscUJBQXFCLENBS25CLG9CQUFvQixBQUdqQixLQUFLLEVBWFosdUJBQXVCLENBR3JCLHFCQUFxQixDQUtuQixvQkFBb0IsQUFHVCxNQUFNLENBQUM7UUFDZCxVQUFVLEVBQUUsSUFBSSxHQUNqQjtNQWJQLEFBZU0sdUJBZmlCLENBR3JCLHFCQUFxQixDQUtuQixvQkFBb0IsR0FPaEIsR0FBRyxDQUFDO1FBQ0osU0FBUyxFQUFFLEtBQUs7UUFDaEIsVUFBVSxFQUFFLElBQUk7UUFDaEIsTUFBTSxFQUFFLE1BQU0sR0FLZjtRQUpDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztVQW5CaEMsQUFlTSx1QkFmaUIsQ0FHckIscUJBQXFCLENBS25CLG9CQUFvQixHQU9oQixHQUFHLENBQUM7WUFLRixTQUFTLEVBQUUsZ0JBQWdCO1lBQzNCLFNBQVMsRUFBRSxnQkFBZ0IsR0FFOUI7TUF2QlAsQUEwQlEsdUJBMUJlLENBR3JCLHFCQUFxQixDQUtuQixvQkFBb0IsQ0FpQmxCLHlCQUF5QixHQUNyQixNQUFNLENBQUM7UUFDUCxLQUFLLEVBQUUsS0FBSztRQUNaLE1BQU0sRUFBRSxJQUFJLEdBS2I7UUFKQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7VUE3QmxDLEFBMEJRLHVCQTFCZSxDQUdyQixxQkFBcUIsQ0FLbkIsb0JBQW9CLENBaUJsQix5QkFBeUIsR0FDckIsTUFBTSxDQUFDO1lBSUwsS0FBSyxFQUFFLElBQUksQ0FBQSxVQUFVO1lBQ3JCLE1BQU0sRUFBRSxJQUFJLENBQUEsVUFBVSxHQUV6QjtNQWpDVCxBQXdDTSx1QkF4Q2lCLENBR3JCLHFCQUFxQixDQUtuQixvQkFBb0IsQ0FnQ2xCLGdCQUFnQixDQUFDO1E3RWxEckIsT0FBTyxFQUFFLFlBQVk7UUFDckIsT0FBTyxFQUFFLFdBQVc7UUFDcEIsT0FBTyxFQUFFLElBQUk7UUFYYixzQkFBc0IsRUE4Q0UsR0FBRztRQTdDbkIsY0FBYyxFQTZDRSxHQUFHO1FBeEQzQixtQkFBbUIsRTZFdUVhLE1BQU07UTdFdEU5QixXQUFXLEU2RXNFYSxNQUFNO1E3RTlDdEMsdUJBQXVCLEU2RStDYSxhQUFhO1E3RTlDekMsZUFBZSxFNkU4Q2EsYUFBYTtRQUMzQyxXQUFXLEVBQUUsSUFBSTtRQUNqQixXQUFXLEVBQUUsSUFBSSxHQWFsQjtRQTFEUCxBQStDUSx1QkEvQ2UsQ0FHckIscUJBQXFCLENBS25CLG9CQUFvQixDQWdDbEIsZ0JBQWdCLENBT2QsTUFBTSxDQUFDO1VBQ0wsU0FBUyxFQUFFLElBQUk7VUFDZixXQUFXLEVBQUUsR0FBRyxHQUlqQjtVQUhDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztZQWxEbEMsQUErQ1EsdUJBL0NlLENBR3JCLHFCQUFxQixDQUtuQixvQkFBb0IsQ0FnQ2xCLGdCQUFnQixDQU9kLE1BQU0sQ0FBQztjQUlILFNBQVMsRUFBRSxJQUFJLEdBRWxCO1FBckRULEFBdURRLHVCQXZEZSxDQUdyQixxQkFBcUIsQ0FLbkIsb0JBQW9CLENBZ0NsQixnQkFBZ0IsQ0FlZCxPQUFPLENBQUM7VTdFakVkLE9BQU8sRUFBRSxZQUFZO1VBQ3JCLE9BQU8sRUFBRSxXQUFXO1VBQ3BCLE9BQU8sRUFBRSxJQUFJO1VBWGIsc0JBQXNCLEVBOENFLEdBQUc7VUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztVQXhEM0IsbUJBQW1CLEU2RWhETyxNQUFNO1U3RWlEeEIsV0FBVyxFNkVqRE8sTUFBTTtVQUNoQyxNQUFNLEVBQUUsTUFBTSxHQXFJUDtVQXpEVCxBQTFFRSx1QkEwRXFCLENBR3JCLHFCQUFxQixDQUtuQixvQkFBb0IsQ0FnQ2xCLGdCQUFnQixDQWVkLE9BQU8sQUFqSVosU0FBUyxDQUFDO1lBQ1QsS0FBSyxFQUFFLE9BQU8sR0FJZjtZQXFFSCxBQXhFSSx1QkF3RW1CLENBR3JCLHFCQUFxQixDQUtuQixvQkFBb0IsQ0FnQ2xCLGdCQUFnQixDQWVkLE9BQU8sQUFqSVosU0FBUyxDQUVSLENBQUMsQUFBQSxHQUFHLENBQUM7Y0FDSCxVQUFVLEVBQUUsR0FBRyxHQUNoQjtVQXNFTCxBQW5FRSx1QkFtRXFCLENBR3JCLHFCQUFxQixDQUtuQixvQkFBb0IsQ0FnQ2xCLGdCQUFnQixDQWVkLE9BQU8sQUExSFosU0FBUyxDQUFDO1lBQ1QsS0FBSyxFQUFFLE9BQU8sR0FJZjtZQThESCxBQWpFSSx1QkFpRW1CLENBR3JCLHFCQUFxQixDQUtuQixvQkFBb0IsQ0FnQ2xCLGdCQUFnQixDQWVkLE9BQU8sQUExSFosU0FBUyxDQUVSLENBQUMsQUFBQSxHQUFHLENBQUM7Y0FDSCxhQUFhLEVBQUUsR0FBRyxHQUNuQjtVQStETCxBQTNESSx1QkEyRG1CLENBR3JCLHFCQUFxQixDQUtuQixvQkFBb0IsQ0FnQ2xCLGdCQUFnQixDQWVkLE9BQU8sQUFuSFosaUJBQWlCLENBQ2hCLENBQUMsQUFBQSxHQUFHLENBQUM7WUFDSCxVQUFVLEVBQUUsR0FBRyxHQUNoQjtVQXlETCxBQXJESSx1QkFxRG1CLENBR3JCLHFCQUFxQixDQUtuQixvQkFBb0IsQ0FnQ2xCLGdCQUFnQixDQWVkLE9BQU8sQUE3R1osaUJBQWlCLENBQ2hCLENBQUMsQUFBQSxHQUFHLENBQUM7WUFDSCxhQUFhLEVBQUUsR0FBRyxHQUNuQjtVQW1ETCxBQWhERSx1QkFnRHFCLENBR3JCLHFCQUFxQixDQUtuQixvQkFBb0IsQ0FnQ2xCLGdCQUFnQixDQWVkLE9BQU8sQ0F2R2IsQ0FBQyxBQUFBLEdBQUcsQ0FBQztZQUNILFNBQVMsRUFBRSxJQUFJLEdBQ2hCO01BOENILEFBNERNLHVCQTVEaUIsQ0FHckIscUJBQXFCLENBS25CLG9CQUFvQixDQW9EbEIsU0FBUyxDQUFDO1FBQ1IsV0FBVyxFQUFFLEdBQUcsR0FjakI7UUEzRVAsQUErRFEsdUJBL0RlLENBR3JCLHFCQUFxQixDQUtuQixvQkFBb0IsQ0FvRGxCLFNBQVMsR0FHTCxHQUFHLENBQUM7VTdFekVaLE9BQU8sRUFBRSxZQUFZO1VBQ3JCLE9BQU8sRUFBRSxXQUFXO1VBQ3BCLE9BQU8sRUFBRSxJQUFJO1VBWGIsc0JBQXNCLEVBOENFLEdBQUc7VUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztVQXhEM0IsbUJBQW1CLEU2RThGZSxNQUFNO1U3RTdGaEMsV0FBVyxFNkU2RmUsTUFBTTtVN0VyRXhDLHVCQUF1QixFNkVzRWUsVUFBVTtVN0VyRXhDLGVBQWUsRTZFcUVlLFVBQVU7VUFDeEMsVUFBVSxFQUFFLElBQUksR0FDakI7UUFwRVQsQUFzRVEsdUJBdEVlLENBR3JCLHFCQUFxQixDQUtuQixvQkFBb0IsQ0FvRGxCLFNBQVMsQ0FVUCxhQUFhLENBQUM7VUFDWixTQUFTLEVBQUUsSUFBSTtVQUNmLFdBQVcsRUFBRSxHQUFHO1VBQ2hCLFdBQVcsRUFBRSxJQUFJLEdBQ2xCOztBQVVULEFBQUEseUJBQXlCLENBQUM7RTdFOUZ4QixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQStCRSxNQUFNO0VBOUJ0QixjQUFjLEVBOEJFLE1BQU07RUFwRDlCLFlBQVksRTZFOEhFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtFN0U3SGxCLFFBQVEsRTZFNkhFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtFN0U1SGQsSUFBSSxFNkU0SEUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0VBQ3RCLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLGdCQUFnQixFQUFFLE9BQU8sR0FTMUI7RUFiRCxBQU1FLHlCQU51QixDQU12QixNQUFNLENBQUM7STdFcEdQLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBK0JFLE1BQU07SUE5QnRCLGNBQWMsRUE4QkUsTUFBTTtJQXBDOUIsa0JBQWtCLEU2RW9IUyxNQUFNO0k3RW5IekIsVUFBVSxFNkVtSFMsTUFBTTtJN0U3Q2pDLFNBQVMsRTZFOENhLE1BQU07STdFN0M1QixTQUFTLEU2RTZDYSxNQUFNO0k3RTVDNUIsS0FBSyxFNkU0Q2lCLE1BQU07SUFDMUIsYUFBYSxFQUFFLElBQUk7SUFDbkIsU0FBUyxFQUFFLElBQUksR0FDaEI7O0FBR0gsQUFBQSxlQUFlLENBQUM7RTdFN0dkLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBWGIsc0JBQXNCLEVBOENFLEdBQUc7RUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztFQS9CM0IsdUJBQXVCLEU2RXlHTyxVQUFVO0U3RXhHaEMsZUFBZSxFNkV3R08sVUFBVTtFQUN4QyxhQUFhLEVBQUUsSUFBSSxHQW9OcEI7RUFuTkMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0lBSjFCLEFBQUEsZUFBZSxDQUFDO01BS1osUUFBUSxFQUFFLElBQUksR0FrTmpCO0VBdk5ELEFBUUUsZUFSYSxHQVFYLEdBQUcsQ0FBQztJQUNKLGNBQWMsRUFBRSxJQUFJLEdBQ3JCO0VBVkgsQUFZRSxlQVphLENBWWIsT0FBTyxDQUFDO0lBQ04sUUFBUSxFQUFFLFFBQVE7SUFDbEIsR0FBRyxFQUFFLENBQUM7SUFDTixLQUFLLEVBQUUsSUFBSTtJQUNYLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLElBQUksR0FNbEI7SUF2QkgsQUFtQkksZUFuQlcsQ0FZYixPQUFPLEdBT0gsR0FBRyxDQUFDO003RWhJUixPQUFPLEVBQUUsWUFBWTtNQUNyQixPQUFPLEVBQUUsV0FBVztNQUNwQixPQUFPLEVBQUUsSUFBSTtNQVhiLHNCQUFzQixFQThDRSxHQUFHO01BN0NuQixjQUFjLEVBNkNFLEdBQUc7TUF4RDNCLG1CQUFtQixFNkVoRE8sTUFBTTtNN0VpRHhCLFdBQVcsRTZFakRPLE1BQU07TUFDaEMsTUFBTSxFQUFFLE1BQU07TUFvTVYsU0FBUyxFQUFFLElBQUksR0FDaEI7TUF0QkwsQUE3S0UsZUE2S2EsQ0FZYixPQUFPLEdBT0gsR0FBRyxBQWhNTixTQUFTLENBQUM7UUFDVCxLQUFLLEVBQUUsT0FBTyxHQUlmO1FBd0tILEFBM0tJLGVBMktXLENBWWIsT0FBTyxHQU9ILEdBQUcsQUFoTU4sU0FBUyxDQUVSLENBQUMsQUFBQSxHQUFHLENBQUM7VUFDSCxVQUFVLEVBQUUsR0FBRyxHQUNoQjtNQXlLTCxBQXRLRSxlQXNLYSxDQVliLE9BQU8sR0FPSCxHQUFHLEFBekxOLFNBQVMsQ0FBQztRQUNULEtBQUssRUFBRSxPQUFPLEdBSWY7UUFpS0gsQUFwS0ksZUFvS1csQ0FZYixPQUFPLEdBT0gsR0FBRyxBQXpMTixTQUFTLENBRVIsQ0FBQyxBQUFBLEdBQUcsQ0FBQztVQUNILGFBQWEsRUFBRSxHQUFHLEdBQ25CO01Ba0tMLEFBOUpJLGVBOEpXLENBWWIsT0FBTyxHQU9ILEdBQUcsQUFsTE4saUJBQWlCLENBQ2hCLENBQUMsQUFBQSxHQUFHLENBQUM7UUFDSCxVQUFVLEVBQUUsR0FBRyxHQUNoQjtNQTRKTCxBQXhKSSxlQXdKVyxDQVliLE9BQU8sR0FPSCxHQUFHLEFBNUtOLGlCQUFpQixDQUNoQixDQUFDLEFBQUEsR0FBRyxDQUFDO1FBQ0gsYUFBYSxFQUFFLEdBQUcsR0FDbkI7TUFzSkwsQUFuSkUsZUFtSmEsQ0FZYixPQUFPLEdBT0gsR0FBRyxDQXRLUCxDQUFDLEFBQUEsR0FBRyxDQUFDO1FBQ0gsU0FBUyxFQUFFLElBQUksR0FDaEI7RUFpSkgsQUF5QkUsZUF6QmEsQ0F5QmIsZ0JBQWdCLENBQUM7STdFdElqQixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQStCRSxNQUFNO0lBOUJ0QixjQUFjLEVBOEJFLE1BQU07STZFa0g1QixTQUFTLEVBQUUsS0FBSyxHQWdFakI7SUEzRkgsQUE2QkksZUE3QlcsQ0F5QmIsZ0JBQWdCLEdBSVosR0FBRyxDQUFDO003RTFJUixPQUFPLEVBQUUsWUFBWTtNQUNyQixPQUFPLEVBQUUsV0FBVztNQUNwQixPQUFPLEVBQUUsSUFBSTtNQVhiLHNCQUFzQixFQThDRSxHQUFHO01BN0NuQixjQUFjLEVBNkNFLEdBQUc7TUF4RDNCLG1CQUFtQixFNkUrSlcsTUFBTTtNN0U5SjVCLFdBQVcsRTZFOEpXLE1BQU07TUFDaEMsVUFBVSxFQUFFLElBQUk7TUFDaEIsU0FBUyxFQUFFLEtBQUs7TUFDaEIsWUFBWSxFQUFFLElBQUksR0FDbkI7SUFuQ0wsQUFxQ0ksZUFyQ1csQ0F5QmIsZ0JBQWdCLENBWWQsV0FBVyxDQUFDO01BQ1YsZ0JBQWdCLEVBQUUsT0FBTyxHQVcxQjtNQWpETCxBQXdDTSxlQXhDUyxDQXlCYixnQkFBZ0IsQ0FZZCxXQUFXLENBR1QsSUFBSSxDQUFDO1FBQ0gsU0FBUyxFQUFFLElBQUk7UUFDZixXQUFXLEVBQUUsSUFBSTtRQUNqQixjQUFjLEVBQUUsU0FBUyxHQUMxQjtNQTVDUCxBQThDTSxlQTlDUyxDQXlCYixnQkFBZ0IsQ0FZZCxXQUFXLEdBU0wsV0FBVyxDQUFDO1FBQ2QsZ0JBQWdCLEVBQUUsT0FBTyxHQUMxQjtJQWhEUCxBQW9ETSxlQXBEUyxDQXlCYixnQkFBZ0IsQ0EwQmQsV0FBVyxHQUNQLEdBQUcsQ0FBQztNQUNKLFNBQVMsRUFBRSxLQUFLO01BQ2hCLFdBQVcsRUFBRSxNQUFNO01BQ25CLFFBQVEsRUFBRSxNQUFNO01BQ2hCLGFBQWEsRUFBRSxRQUFRLEdBQ3hCO0lBekRQLEFBMkRNLGVBM0RTLENBeUJiLGdCQUFnQixDQTBCZCxXQUFXLEFBUVIsVUFBVyxDbkU3SEYsR0FBRyxFbUU2SEk7TUFDZixnQkFBZ0IsRUFBRSxPQUFPO01BQ3pCLEtBQUssRUFBRSxPQUFPLEdBQ2Y7SUE5RFAsQUFnRU0sZUFoRVMsQ0F5QmIsZ0JBQWdCLENBMEJkLFdBQVcsQUFhUixVQUFXLENuRTVJRixJQUFJLEVtRTRJSTtNQUNoQixnQkFBZ0IsRUFBRSxPQUFPO01BQ3pCLEtBQUssRUFBRSxPQUFPLEdBQ2Y7SUFuRVAsQUFxRU0sZUFyRVMsQ0F5QmIsZ0JBQWdCLENBMEJkLFdBQVcsQUFrQlIsVUFBVSxDQUFDO01BQ1YsZ0JBQWdCLEVBQUUsT0FBTztNQUN6QixLQUFLLEVBQUUsT0FBTztNQUNkLFNBQVMsRUFBRSxJQUFJO01BQ2YsY0FBYyxFQUFFLFNBQVMsR0FLMUI7TUE5RVAsQUEyRVEsZUEzRU8sQ0F5QmIsZ0JBQWdCLENBMEJkLFdBQVcsQUFrQlIsVUFBVSxHQU1MLFVBQVUsQ0FBQztRQUNiLGdCQUFnQixFQUFFLE9BQU8sR0FDMUI7SUE3RVQsQUFnRk0sZUFoRlMsQ0F5QmIsZ0JBQWdCLENBMEJkLFdBQVcsQUE2QlIsTUFBTSxDQUFDO01BQ04sZ0JBQWdCLEU5RXJRakIsT0FBTztNOEVzUU4sS0FBSyxFQUFFLE9BQU87TUFDZCxTQUFTLEVBQUUsSUFBSTtNQUNmLGNBQWMsRUFBRSxTQUFTLEdBQzFCO0lBckZQLEFBdUZNLGVBdkZTLENBeUJiLGdCQUFnQixDQTBCZCxXQUFXLENBb0NULG9CQUFvQixDQUFDO01BQ25CLFdBQVcsRUFBQyxJQUFJLEdBQ2pCO0VBekZQLEFBNkZFLGVBN0ZhLENBNkZiLGVBQWUsQ0FBQztJN0UxTWhCLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBK0JFLE1BQU07SUE5QnRCLGNBQWMsRUE4QkUsTUFBTSxHNkVzTjdCO0lBL0hILEFBZ0dJLGVBaEdXLENBNkZiLGVBQWUsR0FHWCxHQUFHLENBQUM7TTdFN01SLE9BQU8sRUFBRSxZQUFZO01BQ3JCLE9BQU8sRUFBRSxXQUFXO01BQ3BCLE9BQU8sRUFBRSxJQUFJO01BWGIsc0JBQXNCLEVBOENFLEdBQUc7TUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztNQXhEM0IsbUJBQW1CLEU2RWtPVyxNQUFNO003RWpPNUIsV0FBVyxFNkVpT1csTUFBTTtNN0V6TXBDLHVCQUF1QixFNkUwTVcsTUFBTTtNN0V6TWhDLGVBQWUsRTZFeU1XLE1BQU07TUFDcEMsVUFBVSxFQUFFLElBQUk7TUFDaEIsU0FBUyxFQUFFLEtBQUssR0FDakI7SUF0R0wsQUF3R0ksZUF4R1csQ0E2RmIsZUFBZSxDQVdiLFdBQVcsQ0FBQztNQUNWLGdCQUFnQixFQUFFLE9BQU8sR0FXMUI7TUFwSEwsQUEyR00sZUEzR1MsQ0E2RmIsZUFBZSxDQVdiLFdBQVcsQ0FHVCxJQUFJLENBQUM7UUFDSCxTQUFTLEVBQUUsSUFBSTtRQUNmLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLGNBQWMsRUFBRSxTQUFTLEdBQzFCO01BL0dQLEFBaUhNLGVBakhTLENBNkZiLGVBQWUsQ0FXYixXQUFXLEdBU0wsV0FBVyxDQUFDO1FBQ2QsZ0JBQWdCLEVBQUUsT0FBTyxHQUMxQjtJQW5IUCxBQXVITSxlQXZIUyxDQTZGYixlQUFlLENBeUJiLFdBQVcsQUFDUixVQUFXLENuRXpMRixHQUFHLEVtRXlMSTtNQUNmLGdCQUFnQixFQUFFLE9BQU8sR0FDMUI7SUF6SFAsQUEySE0sZUEzSFMsQ0E2RmIsZUFBZSxDQXlCYixXQUFXLEFBS1IsVUFBVyxDbkV2TUYsSUFBSSxFbUV1TUk7TUFDaEIsZ0JBQWdCLEVBQUUsT0FBTyxHQUMxQjtFQTdIUCxBQWlJRSxlQWpJYSxDQWlJYixpQkFBaUIsQ0FBQztJN0U5T2xCLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBOENFLEdBQUc7SUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztJNkUyTXpCLEtBQUssRUFBRSxJQUFJO0lBQ1gsV0FBVyxFQUFFLE1BQU07SUFDbkIsVUFBVSxFQUFFLE1BQU07SUFDbEIsVUFBVSxFQUFFLE1BQU07SUFDbEIsYUFBYSxFQUFFLElBQUksR0ErRXBCO0lBOUVDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztNQXhJNUIsQUFpSUUsZUFqSWEsQ0FpSWIsaUJBQWlCLENBQUM7UUFRZCxVQUFVLEVBQUUsS0FBSztRQUNqQixVQUFVLEVBQUUsS0FBSyxHQTRFcEI7SUF0TkgsQUE2SUksZUE3SVcsQ0FpSWIsaUJBQWlCLEdBWWIsR0FBRyxDQUFDO003RTFQUixPQUFPLEVBQUUsWUFBWTtNQUNyQixPQUFPLEVBQUUsV0FBVztNQUNwQixPQUFPLEVBQUUsSUFBSTtNQVhiLHNCQUFzQixFQStCRSxNQUFNO01BOUJ0QixjQUFjLEVBOEJFLE1BQU0sRzZFOE8zQjtNQXZKTCxBQWdKTSxlQWhKUyxDQWlJYixpQkFBaUIsR0FZYixHQUFHLEdBR0QsR0FBRyxDQUFDO1E3RTdQVixPQUFPLEVBQUUsWUFBWTtRQUNyQixPQUFPLEVBQUUsV0FBVztRQUNwQixPQUFPLEVBQUUsSUFBSTtRQVhiLHNCQUFzQixFQThDRSxHQUFHO1FBN0NuQixjQUFjLEVBNkNFLEdBQUc7UUF4RDNCLG1CQUFtQixFNkVrUmEsTUFBTTtRN0VqUjlCLFdBQVcsRTZFaVJhLE1BQU07UTdFelB0Qyx1QkFBdUIsRTZFMFBhLE1BQU07UTdFelBsQyxlQUFlLEU2RXlQYSxNQUFNO1FBQ3BDLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLFNBQVMsRUFBRSxLQUFLLEdBQ2pCO0lBdEpQLEFBMEpNLGVBMUpTLENBaUliLGlCQUFpQixHQXdCYixHQUFHLEFBQUEsWUFBWSxDQUNmLFdBQVcsQ0FBQztNQUNWLFdBQVcsRUFBRSxjQUFjLEdBQzVCO0lBNUpQLEFBOEpNLGVBOUpTLENBaUliLGlCQUFpQixHQXdCYixHQUFHLEFBQUEsWUFBWSxDQUtmLFdBQVcsQ0FBQztNQUNWLFdBQVcsRUFBRSxjQUFjLEdBQzVCO0lBaEtQLEFBbUtJLGVBbktXLENBaUliLGlCQUFpQixDQWtDZixXQUFXLENBQUM7TUFDVixnQkFBZ0IsRUFBRSxPQUFPO01BQ3pCLFlBQVksRUFBRSxjQUFjLEdBa0I3QjtNQXZMTCxBQXdLUSxlQXhLTyxDQWlJYixpQkFBaUIsQ0FrQ2YsV0FBVyxBQUlSLFdBQVcsR0FDUixJQUFJLENBQUM7UUFDTCxTQUFTLEVBQUUsSUFBSTtRQUNmLFVBQVUsRUFBRSxNQUFNLEdBQ25CO01BM0tULEFBOEtNLGVBOUtTLENBaUliLGlCQUFpQixDQWtDZixXQUFXLENBV1QsSUFBSSxDQUFDO1FBQ0gsU0FBUyxFQUFFLElBQUk7UUFDZixXQUFXLEVBQUUsSUFBSTtRQUNqQixjQUFjLEVBQUUsU0FBUyxHQUMxQjtNQWxMUCxBQW9MTSxlQXBMUyxDQWlJYixpQkFBaUIsQ0FrQ2YsV0FBVyxHQWlCTCxXQUFXLENBQUM7UUFDZCxnQkFBZ0IsRUFBRSxPQUFPLEdBQzFCO0lBdExQLEFBeUxJLGVBekxXLENBaUliLGlCQUFpQixDQXdEZixXQUFXLENBQUM7TUFDVixZQUFZLEVBQUUsY0FBYyxHQTJCN0I7TUFyTkwsQUE0TE0sZUE1TFMsQ0FpSWIsaUJBQWlCLENBd0RmLFdBQVcsQUFHUixVQUFXLENuRTlQRixHQUFHLEVtRThQSTtRQUNmLGdCQUFnQixFQUFFLE9BQU8sR0FDMUI7TUE5TFAsQUFnTU0sZUFoTVMsQ0FpSWIsaUJBQWlCLENBd0RmLFdBQVcsQUFPUixVQUFXLENuRTVRRixJQUFJLEVtRTRRSTtRQUNoQixnQkFBZ0IsRUFBRSxPQUFPLEdBQzFCO01BbE1QLEFBb01NLGVBcE1TLENBaUliLGlCQUFpQixDQXdEZixXQUFXLEdBV1AsR0FBRyxDQUFDO1E3RWpUVixPQUFPLEVBQUUsWUFBWTtRQUNyQixPQUFPLEVBQUUsV0FBVztRQUNwQixPQUFPLEVBQUUsSUFBSTtRQVhiLHNCQUFzQixFQThDRSxHQUFHO1FBN0NuQixjQUFjLEVBNkNFLEdBQUc7UUEvQjNCLHVCQUF1QixFNkU2U2EsTUFBTTtRN0U1U2xDLGVBQWUsRTZFNFNhLE1BQU0sR0FjckM7UUFwTlAsQUF5TVUsZUF6TUssQ0FpSWIsaUJBQWlCLENBd0RmLFdBQVcsR0FXUCxHQUFHLEFBSUYsV0FBVyxHQUNSLElBQUksQ0FBQztVQUNMLFNBQVMsRUFBRSxJQUFJO1VBQ2YsU0FBUyxFQUFFLElBQUk7VUFDZixVQUFVLEVBQUUsTUFBTSxHQUNuQjtRQTdNWCxBQWdOUSxlQWhOTyxDQWlJYixpQkFBaUIsQ0F3RGYsV0FBVyxHQVdQLEdBQUcsQUFZRixpQkFBaUIsQ0FBQztVN0UzVnpCLFlBQVksRTZFNFZVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtVN0UzVjFCLFFBQVEsRTZFMlZVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtVN0UxVnRCLElBQUksRTZFMFZVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtVQUN0QixRQUFRLEVBQUUsUUFBUSxHQUNuQjs7QUFNVCxBQUFBLHdCQUF3QixDQUFDO0VBQ3ZCLFVBQVUsRUFBRSxLQUFLO0VBQ2pCLFNBQVMsRUFBRSxLQUFLLEdBQ2pCOztBQUVELEFBQUEsdUJBQXVCLENBQUM7RUFDdEIsVUFBVSxFQUFFLE1BQU0sR0FDbkI7O0FBTUQ7Ozt1Q0FHdUM7QUc5WnZDOzs7Ozs7Ozs7Ozt1RUFXdUU7QUE0R3ZFLEFBQUEsdUJBQXVCLENBQUM7RWhGekN0Qix1QkFBdUIsRWdGMENPLFVBQVU7RWhGekNoQyxlQUFlLEVnRnlDTyxVQUFVO0VBS3hDLE9BQU8sRUFwRGEsR0FDMEMsQ0FDMUMsSUFBSSxDQWtEWSxDQUFDLENBbERqQixJQUFJO0VBc0R4QixnQkFBZ0IsRWxGMUZKLE9BQU8sR2tGOEdwQjtFQTlCRCxBQWlCRSx1QkFqQnFCLEdBaUJuQixlQUFlLENBQUM7SUFDaEIsSUFBSSxFQUFFLFFBQVE7SUFDZCxTQUFTLEVBQUUsQ0FBQztJQUNaLFNBQVMsRUFBRSxJQUFJO0lBQ2YsS0FBSyxFQUFFLElBQUksR0FDWjs7QUFVSCxBQUFBLHFCQUFxQixDQUFDO0VBQ3BCLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDbEYzSFosT0FBTztFa0Y0SG5CLE9BQU8sRUFBRSxJQUFJO0VBQ2IsV0FBVyxFQUFFLHFCQUFxQjtFQUdsQyxHQUFHLEVBQUUsSUFBSTtFQUNULE1BQU0sRUFBRSxDQUFDLEdBMkNWO0VBekNFLEFBQUQsMEJBQU0sQ0FBQztJaEZzRVAsU0FBUyxFQUFFLENBQUM7SUFDWixVQUFVLEVBQUUsQ0FBQztJQUNiLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLGNBQWMsRUFBRSxJQUFJO0lnRnhFbEIsVUFBVSxFQUFFLElBQUk7SUFDaEIsTUFBTSxFQUFFLENBQUM7SUFJVCxhQUFhLEVBQUUscUJBQXFCO0lBQ3BDLGFBQWEsRUFBRSxDQUFDO0lBQ2hCLEtBQUssRWxGeElLLE9BQU87SWtGeUlqQixNQUFNLEVBQUUsT0FBTztJQUNmLFdBQVcsRUFBRSxxQkFBcUI7SUFDbEMsU0FBUyxFQUFFLElBQUk7SUFJZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBOUhPLElBQUk7SUFpSXRCLGFBQWEsRUFBRSxJQUFJO0lBSW5CLE9BQU8sRUFwSVcsR0FBRyxDQW9JSyxHQUFHLENBbklYLENBQUM7SUFvSW5CLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLFVBQVUsRUFBRSx5Q0FBeUMsR0FjdEQ7SUF4Q0EsQUE0QkMsMEJBNUJJLEFBNEJILE1BQU0sQ0FBQztNQUNOLEtBQUssRWxGdEtHLE9BQU8sR2tGdUtoQjtJQTlCRixBQWdDQywwQkFoQ0ksQUFnQ0gsTUFBTSxDQUFDO01BQ04sT0FBTyxFQUFFLElBQUksR0FDZDtJQUVBLEFBQUQsa0NBQVMsQ0FBQztNQUNSLG1CQUFtQixFbEYvS1gsT0FBTztNa0ZnTGYsS0FBSyxFQXZMUyxPQUFPLEdBd0x0Qjs7QUFJTCxBQUFBLHFCQUFxQixDQUFDO0VBQ3BCLFdBQVcsRUFBRSxNQUFNO0VBQ25CLE9BQU8sRUFBRSxJQUFJO0VBRWIsZUFBZSxFQUFFLGFBQWE7RUFDOUIsR0FBRyxFQUFFLElBQUk7RUFDVCxNQUFNLEVBQUUsUUFBUSxHQXNFakI7RUFwRUUsQUFBRCw0QkFBUSxDQUFDO0lBQ1AsS0FBSyxFbEZqTEssT0FBTztJa0ZrTGpCLFdBQVcsRUFBRSxxQkFBcUI7SUFDbEMsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixjQUFjLEVBQUUsQ0FBQztJQUNqQixXQUFXLEVBQUUsSUFBSTtJQUdqQixNQUFNLEVBQUUsQ0FBQztJQUNULFVBQVUsRUFBRSxDQUFDLEdBQ2Q7RUFFQSxBQUFELDhCQUFVLENBQUM7SUFDVCxPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxDQUFDO0lBQ2QsR0FBRyxFQUFFLEdBQUcsR0FDVDtFQUlBLEFBQUQsNkJBQVMsQ0FBQztJaEZGVixTQUFTLEVBQUUsQ0FBQztJQUNaLFVBQVUsRUFBRSxDQUFDO0lBQ2IsVUFBVSxFQUFFLElBQUk7SUFDaEIsY0FBYyxFQUFFLENBQUM7SUFDakIsY0FBYyxFQUFFLElBQUk7SWdGQWxCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLFVBQVUsRUFBRSxPQUFPO0lBQ25CLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDbEY5TVAsT0FBTztJa0YrTWpCLGFBQWEsRUF2SUcsR0FBRztJQTBJbkIsVUFBVSxFQUFFLFVBQVU7SUFDdEIsS0FBSyxFbEYvTUssT0FBTztJa0ZnTmpCLE1BQU0sRUFBRSxPQUFPO0lBQ2YsT0FBTyxFQUFFLFdBQVc7SUFDcEIsTUFBTSxFQS9JVSxJQUFJO0lBZ0pwQixlQUFlLEVBQUUsTUFBTTtJQUN2QixPQUFPLEVBQUUsQ0FBQztJQUNWLFVBQVUsRUFBRSxzRUFBc0U7SUFDbEYsS0FBSyxFQW5KVyxJQUFJLEdBaUxyQjtJQTlDQSxBQWtCQyw2QkFsQk8sQUFrQk4sTUFBTSxBQUFBLElBQUssRUFBQSxBQUFBLFFBQUMsQUFBQSxHQUFXO01BQ3RCLFVBQVUsRWxGeE9GLE9BQU87TWtGeU9mLFlBQVksRWxGdE9KLE9BQU87TWtGdU9mLEtBQUssRWxGdk9HLE9BQU8sR2tGd09oQjtJQXRCRixBQXdCQyw2QkF4Qk8sQUF3Qk4sTUFBTSxDQUFDO01BQ04sWUFBWSxFbEYzT0osT0FBTztNa0Y0T2YsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ2xGOU9iLE9BQU87TWtGK09mLE9BQU8sRUFBRSxJQUFJLEdBQ2Q7SUE1QkYsQUFnQ0MsNkJBaENPLENBZ0NOLEFBQUEsUUFBQyxBQUFBLEVBQVU7TUFDVixVQUFVLEVBQUUsT0FBTztNQUNuQixZQUFZLEVsRjdPSixPQUFPO01rRjhPZixLQUFLLEVsRjVPRyxPQUFPO01rRjZPZixNQUFNLEVBQUUsT0FBTyxHQUNoQjtJQXJDRixBQXlDQyw2QkF6Q08sQ0F5Q1AsR0FBRyxDQUFDO01BQ0YsT0FBTyxFQUFFLEtBQUs7TUFDZCxNQUFNLEVBektRLElBQUk7TUEwS2xCLEtBQUssRUExS1MsSUFBSSxHQTJLbkI7O0FBV0wsQUFBQSxzQkFBc0IsQ0FBQztFQUNyQixPQUFPLEVBQUUsSUFBSTtFQUNiLGNBQWMsRUFBRSxNQUFNO0VBQ3RCLFdBQVcsRUFBRSxNQUFNO0VBRW5CLGVBQWUsRUFBRSxNQUFNO0VBQ3ZCLEdBQUcsRUFBRSxHQUFHO0VBQ1IsT0FBTyxFQUFFLFNBQVM7RUFDbEIsVUFBVSxFQUFFLE1BQU07RUFNbEIsVUFBVSxFQUFFLG1CQUFrQyxHQXlGL0M7RUF2RkUsQUFBRCw2QkFBUSxDQUFDO0lBQ1AsTUFBTSxFQUFFLENBQUM7SUFDVCxLQUFLLEVsRmhSSyxPQUFPO0lrRmlSakIsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFVBQVUsRUFBRSxNQUFNLEdBQ25CO0VBRUEsQUFBRCxtQ0FBYyxDQUFDO0lBQ2IsTUFBTSxFQUFFLENBQUM7SUFNVCxLQUFLLEVsRmhTSyxPQUFPO0lrRmlTakIsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFVBQVUsRUFBRSxNQUFNLEdBQ25CO0VBYUEsQUFBRCwyQkFBTSxDQUFDO0lBQ0wsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsSUFBSSxFQUFFLFFBQVE7SUFDZCxHQUFHLEVBQUUsR0FBRztJQUdSLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLEtBQUssRUFBRSxLQUFLO0lBQ1osTUFBTSxFQUFFLElBQUk7SUFDWixVQUFVLEVBQUUsSUFBSTtJQUNoQixVQUFVLEVBQUUsSUFBSTtJQUdoQixNQUFNLEVBQUUsUUFBUTtJQUNoQixPQUFPLEVBQUUsU0FBUztJQUNsQixVQUFVLEVBQUUsT0FBTztJQUNuQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ2xGbFZQLE9BQU87SWtGbVZqQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsSUFBSTtJQUNoQixLQUFLLEVsRnJWSyxPQUFPO0lrRnNWakIsTUFBTSxFQUFFLE9BQU87SUFDZixXQUFXLEVBQUUsb0NBQW9DO0lBQ2pELFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsY0FBYyxFQUFFLE9BQU87SUFDdkIsV0FBVyxFQUFFLElBQUk7SUFHakIsVUFBVSxFQUFFLE1BQU07SUFDbEIsY0FBYyxFQUFFLElBQUk7SUFDcEIsV0FBVyxFQUFFLE1BQU0sR0FnQnBCO0lBaERBLEFBa0NDLDJCQWxDSSxBQWtDSCxNQUFNLEFBQUEsSUFBSyxFQTlIQSxBQUFBLFFBQUMsQUFBQSxHQThIVztNQUN0QixVQUFVLEVsRnRXRixPQUFPO01rRnVXZixVQUFVLEVBQUUsSUFBSSxHQUNqQjtJQXJDRixBQTBDQywyQkExQ0ksQ0EwQ0gsQUFBQSxRQUFDLEFBQUEsRUFBVTtNQUNWLFVBQVUsRUFBRSxPQUFPO01BQ25CLFlBQVksRUFBRSxPQUFPO01BQ3JCLEtBQUssRUFBRSxPQUFPO01BQ2QsTUFBTSxFQUFFLE9BQU8sR0FDaEI7O0FBSUwsQUFBQSx5QkFBeUIsQ0FBQztFQUl4QixVQUFVLEVBQUUsR0FBRyxHQUNoQjs7QWhGckxHLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFZ0ZkNUIsQUFBQSxxQkFBcUIsQ0FzTUc7SUFDcEIsV0FBVyxFQUFFLFVBQVU7SUFDdkIsY0FBYyxFQUFFLE1BQU07SUFDdEIsR0FBRyxFQUFFLElBQUksR0FDVjtFQTlQSCxBQUFBLHFCQUFxQixDQWdRRztJQUNwQixHQUFHLEVBQUUsSUFBSTtJQUdULFVBQVUsRUFBRSxJQUFJLEdBQ2pCO0VBNUhILEFBQUEsc0JBQXNCLENBOEhHO0lBR3JCLFVBQVUsRUF0VVEsS0FBSyxHQXVVeEI7O0FDbGFIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7MEJBMkIwQjtBQXlDMUIsQUFBQSxpQkFBaUIsQ0FBQztFQUNoQixnQkFBZ0IsRUFBRSxPQUFPO0VBQ3pCLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDbkZpQkYsT0FBTztFbUZoQnRCLGFBQWEsRUFBRSxJQUFJO0VBQ25CLFVBQVUsRW5GQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLHNCQUFzQjtFbUZDOUMsVUFBVSxFQUFFLFVBQVU7RWpGL0J0QixZQUFZLEVpRm1DRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7RWpGbENsQixRQUFRLEVpRmtDRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7RWpGakNkLElBQUksRWlGaUNFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtFQU10QixVQUFVLEVBQUUsVUFBVTtFQUN0QixTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxxQkFBcUI7RUFHbEMsTUFBTSxFQUFFLFdBQVc7RUFDbkIsT0FBTyxFQUFFLElBQUksR0FtWWQ7RUF4WkQsQUEyQkUsaUJBM0JlLENBMkJmLFNBQVMsQ0FBSTtJQUFFLEtBQUssRUF4RFAsT0FBTyxHQXdEZTtFQTNCckMsQUE0QkUsaUJBNUJlLENBNEJmLFlBQVksQ0FBQztJQUFFLEtBQUssRUF4RFAsT0FBTyxHQXdEbUI7RUE1QnpDLEFBNkJFLGlCQTdCZSxDQTZCZixXQUFXLENBQUU7SUFBRSxLQUFLLEVBeERQLE9BQU8sR0F3RGU7RUFFbEMsQUFBRCx3QkFBUSxDQUFDO0lqRjNCVCxPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQThDRSxHQUFHO0lBN0NuQixjQUFjLEVBNkNFLEdBQUc7SUF4RDNCLG1CQUFtQixFaUZnRFMsTUFBTTtJakYvQzFCLFdBQVcsRWlGK0NTLE1BQU07SWpGdkJsQyx1QkFBdUIsRWlGd0JTLGFBQWE7SWpGdkJyQyxlQUFlLEVpRnVCUyxhQUFhO0lBQzNDLEtBQUssRW5GcEVLLE9BQU87SW1GcUVqQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBSWpCLE1BQU0sRUFBRSxRQUFRLEdBQ2pCO0VBRUEsQUFBRCw4QkFBYyxDQUFDO0lqRnpDZixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQThDRSxHQUFHO0lBN0NuQixjQUFjLEVBNkNFLEdBQUc7SUF4RDNCLG1CQUFtQixFaUY4RFMsTUFBTTtJakY3RDFCLFdBQVcsRWlGNkRTLE1BQU07SUFDaEMsR0FBRyxFQUFFLEdBQUcsR0FDVDtFQUVBLEFBQUQsNkJBQWEsQ0FBQztJQUNaLEtBQUssRUFBRSxPQUFPO0lBQ2QsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJLEdBQ2xCO0VBS0EsQUFBRCw4QkFBYyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEFBQUEsS0FBSyxDQUFDO0lBQzFELE1BQU0sRUFBRSxJQUFJLEdBQ2I7RUFNQSxBQUFELHVCQUFPLENBQUM7SWpGbEVSLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBK0JFLE1BQU07SUE5QnRCLGNBQWMsRUE4QkUsTUFBTTtJaUZtRDVCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENuRjVESixPQUFPO0ltRjZEcEIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLFVBQVU7SUFDdEIsUUFBUSxFQUFFLE1BQU0sR0FDakI7RUFXQSxBQUFELDBCQUFVLENBQUM7SWpGMUZYLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBOENFLEdBQUc7SUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztJQS9CM0IsdUJBQXVCLEVpRnNGUyxVQUFVO0lqRnJGbEMsZUFBZSxFaUZxRlMsVUFBVTtJakYvRzFDLG1CQUFtQixFaUZnSFMsVUFBVTtJakYvRzlCLFdBQVcsRWlGK0dTLFVBQVU7SUFDcEMsUUFBUSxFQUFFLE1BQU0sR0FDakI7RUFhQSxBQUFELHdCQUFRLENBQUM7SWpGNUdULE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBK0JFLE1BQU07SUE5QnRCLGNBQWMsRUE4QkUsTUFBTTtJQXBEOUIsWUFBWSxFaUY0SUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lqRjNJcEIsUUFBUSxFaUYySUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lqRjFJaEIsSUFBSSxFaUYwSUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lBQ3RCLGFBQWEsRUFBRSxJQUFJO0lBQ25CLFNBQVMsRUE1SEcsS0FBSyxHQTZIbEI7RUFFQSxBQUFELHVCQUFPLENBQUM7SWpGbkhSLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBK0JFLE1BQU07SUE5QnRCLGNBQWMsRUE4QkUsTUFBTTtJQXBEOUIsWUFBWSxFaUZtSkksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lqRmxKcEIsUUFBUSxFaUZrSkksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lqRmpKaEIsSUFBSSxFaUZpSkksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lBQ3RCLGFBQWEsRUFBRSxJQUFJLEdBQ3BCO0VBRUEsQUFBRCx5QkFBUyxDQUFDO0lqRnpIVixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQThDRSxHQUFHO0lBN0NuQixjQUFjLEVBNkNFLEdBQUc7SWlGc0Z6QixhQUFhLEVBQUUsSUFBSTtJQUluQixVQUFVLEVBQUUsSUFBSTtJQUNoQixVQUFVLEVBQUUsTUFBTTtJQUNsQixXQUFXLEVBQUUsTUFBTTtJQUNuQixLQUFLLEVBQUUsSUFBSSxHQUNaO0VBRUEsQUFBRCx5QkFBUyxDQUFDO0lqRnJJVixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQStCRSxNQUFNO0lBOUJ0QixjQUFjLEVBOEJFLE1BQU07SUFwRDlCLFlBQVksRWlGcUtJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJakZwS3BCLFFBQVEsRWlGb0tJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJakZuS2hCLElBQUksRWlGbUtJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUN2QjtFQU1BLEFBQUQsdUJBQU8sQ0FBQztJakY5SVIsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0lBeEQzQixtQkFBbUIsRWlGbUtTLE1BQU07SWpGbEsxQixXQUFXLEVpRmtLUyxNQUFNO0lBQ2hDLGdCQUFnQixFQUFFLE9BQU87SUFDekIsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUUsSUFBRyxDQUFDLENBQUMsQ25GbkliLE9BQU87SW1Gb0lwQixVQUFVLEVBQUUsVUFBVTtJQUN0QixLQUFLLEVuRjNMSyxPQUFPO0ltRjRMakIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixVQUFVLEVBN0tDLElBQUk7SUE4S2YsY0FBYyxFQUFFLElBQUksR0FDckI7RUFFQSxBQUFELHNCQUFNLENBQUM7SWpGNUpQLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBOENFLEdBQUc7SUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztJQXhEM0IsbUJBQW1CLEVpRmlMUyxNQUFNO0lqRmhMMUIsV0FBVyxFaUZnTFMsTUFBTTtJQUNoQyxnQkFBZ0IsRUFBRSxPQUFPO0lBQ3pCLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFFLElBQUcsQ0FBQyxDQUFDLENuRmpKYixPQUFPO0ltRmtKcEIsVUFBVSxFQUFFLFVBQVU7SUFDdEIsVUFBVSxFQXRMQyxJQUFJLEdBdUxoQjtFQUlBLEFBQUQsd0JBQVEsQ0FBRSx1QkFBTTtFQUNmLHdCQUFPLENBQUUsc0JBQUssQ0FBQztJQUNkLFNBQVMsRUFwTEcsS0FBSztJQXFMakIsWUFBWSxFQXZMQSxJQUFJLEdBd0xqQjtFQUlBLEFBQUQsd0JBQVEsQ0FBRSx1QkFBTTtFQUNmLDZCQUFZLENBQUUsdUJBQU0sQ0FBQztJQUNwQixXQUFXLEVBQUUsR0FBRyxHQUNqQjtFQUVBLEFBQUQsd0JBQVEsQ0FBRSxzQkFBSyxDQUFDO0lBQ2QsS0FBSyxFQTdOTSxPQUFPO0lBOE5sQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJLEdBUWxCO0lBWkEsQUFNQyx3QkFOTSxDQUFFLHNCQUFLLEdBTVgsR0FBRyxDQUFDO01BQ0osU0FBUyxFQXRNQyxLQUFLO01BdU1mLFFBQVEsRUFBRSxNQUFNO01BQ2hCLGFBQWEsRUFBRSxRQUFRO01BQ3ZCLFdBQVcsRUFBRSxNQUFNLEdBQ3BCO0VBS0YsQUFBRCx3QkFBUSxDQUFFLGdDQUFlLENBQUM7SUFDeEIsS0FBSyxFbkYxT0ssT0FBTztJbUYyT2pCLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLFdBQVcsRUFBRSxHQUFHLEdBQ2pCO0VBSUEsQUFBRCx3QkFBUSxDQUFFLDZCQUFZLENBQUM7SUFDckIsV0FBVyxFQUFFLEdBQUcsR0FDakI7RUFPQSxBQUFELDBCQUFVLENBQUUsd0JBQU8sQ0FBRSxzQkFBSyxDQUFDO0lBQ3pCLFdBQVcsRUFBRSxHQUFHLEdBQ2pCO0VBS0EsQUFBRCwwQkFBVSxDQUFFLHdCQUFPLENBQUUsZ0NBQWUsQ0FBQztJQUNuQyxVQUFVLEVBQUUsTUFBTSxHQUNuQjtFQUVBLEFBQUQsMEJBQVUsQ0FBRSx3QkFBTyxDQUFFLGtDQUFpQixDQUFDO0lBQ3JDLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLFdBQVcsRUFBRSxHQUFHLEdBQ2pCO0VBSUEsQUFBRCx1QkFBTyxDQUFFLHVCQUFNO0VBQ2QsdUJBQU0sQ0FBRSxzQkFBSyxDQUFDO0lqRmxPZix1QkFBdUIsRWlGbU9TLE1BQU07SWpGbE85QixlQUFlLEVpRmtPUyxNQUFNO0lBQ3BDLFNBQVMsRUFuUEcsS0FBSztJQW9QakIsT0FBTyxFQUFFLENBQUMsQ0FsUEUsSUFBSSxHQW1QakI7RUFFQSxBQUFELDZCQUFhLENBQUUsdUJBQU07RUFDcEIsNkJBQVksQ0FBRSxzQkFBSyxDQUFDO0lBQ25CLFNBQVMsRUF4UEcsSUFBSSxHQXlQakI7RUFPQSxBQUFELDRCQUFZLENBQUM7SUFDWCxXQUFXLEVBQUUsTUFBTTtJQUNuQixhQUFhLEVBQUUsSUFBSTtJQUNuQixVQUFVLEVBQUUsVUFBVTtJQUN0QixPQUFPLEVBQUUsV0FBVztJQUNwQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLE1BQU0sRUFBRSxJQUFJO0lBQ1osZUFBZSxFQUFFLE1BQU07SUFDdkIsV0FBVyxFQUFFLElBQUk7SUFDakIsY0FBYyxFQUFFLFFBQVE7SUFDeEIsT0FBTyxFQUFFLE9BQU8sR0FxQmpCO0lBakJFLEFBQUQscUNBQVUsQ0FBQztNQUFFLEtBQUssRUFBRSxJQUFJLEdBQUk7SUFDM0IsQUFBRCxnQ0FBSyxFQUNKLGdDQUFJLEVBQ0osZ0NBQUksRUFDSixnQ0FBSSxFQUNKLGdDQUFJLENBQU07TUFBRSxLQUFLLEVBQUUsSUFBSSxHQUFJO0lBQzNCLEFBQUQsaUNBQU0sQ0FBSztNQUFFLEtBQUssRUFBRSxJQUFJLEdBQUk7SUFFM0IsQUFBRCxnQ0FBSyxFQUNKLGdDQUFJLEVBQ0osZ0NBQUksQ0FBTTtNQUFFLFVBQVUsRUFBRSxPQUFPO01BQUUsS0FBSyxFQUFFLE9BQU8sR0FBSTtJQUNuRCxBQUFELGdDQUFLLEVBQ0osZ0NBQUksQ0FBTTtNQUFFLFVBQVUsRUFBRSxPQUFPO01BQUUsS0FBSyxFQUFFLE9BQU8sR0FBSTtJQVpuRCxBQUFELHFDQUFVLENBYUM7TUFBRSxVQUFVLEVBQUUsT0FBTztNQUFFLEtBQUssRUFBRSxPQUFPLEdBQUk7SUFQbkQsQUFBRCxpQ0FBTSxDQVFLO01BQUUsVUFBVSxFQUFFLE9BQU87TUFBRSxLQUFLLEVBQUUsT0FBTyxHQUFJO0lBQ25ELEFBQUQsa0NBQU8sQ0FBSTtNQUFFLFVBQVUsRUFBRSxPQUFPO01BQUUsS0FBSyxFQUFFLE9BQU8sR0FBSTtJQUNuRCxBQUFELG1DQUFRLENBQUc7TUFBRSxVQUFVLEVBQUUsT0FBTztNQUFFLEtBQUssRUFBRSxPQUFPLEdBQUk7RUFLckQsQUFBRCx5QkFBUyxDQUFFLHVCQUFNO0VBQ2hCLHlCQUFRLENBQUUsc0JBQUssQ0FBQztJakZ2UmpCLHVCQUF1QixFaUZ3UlMsTUFBTTtJakZ2UjlCLGVBQWUsRWlGdVJTLE1BQU07SUFDcEMsU0FBUyxFQXpTRyxLQUFLO0lBMFNqQixPQUFPLEVBQUUsQ0FBQyxDQXZTRSxJQUFJLEdBd1NqQjtFQUlBLEFBQUQsdUJBQU8sQ0FBQztJQUNOLEtBQUssRUE1VU0sT0FBTztJQTZVbEIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixlQUFlLEVBQUUsU0FBUyxHQUMzQjtFQUVBLEFBQ0MsOEJBRFksR0FDVixJQUFJLENBQUM7SUFDTCxTQUFTLEVBclRDLElBQUk7SUFzVGQsVUFBVSxFQUFFLE1BQU0sR0FDbkI7RUFNRixBQUFELHVCQUFPLENBQUM7SWpGdlRSLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBOENFLEdBQUc7SUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztJQXhEM0IsbUJBQW1CLEVpRjRVUyxNQUFNO0lqRjNVMUIsV0FBVyxFaUYyVVMsTUFBTTtJakZuVGxDLHVCQUF1QixFaUZvVFMsTUFBTTtJakZuVDlCLGVBQWUsRWlGbVRTLE1BQU07SUFDcEMsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRyxHQUNqQjtFQUVBLEFBQ0Msd0JBRE0sR0FDSixJQUFJLENBQUM7SUFDTCxTQUFTLEVBQUUsSUFBSTtJQUNmLFNBQVMsRUF4VUMsSUFBSTtJQXlVZCxVQUFVLEVBQUUsTUFBTSxHQUNuQjtFQVNGLEFBQUQsNkJBQWEsQ0FBQztJQUNaLGdCQUFnQixFQXJYTCxPQUFPO0lBc1hsQixLQUFLLEVuRnBYSyxPQUFPO0ltRnFYakIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsY0FBYyxFQUFFLElBQUksR0FDckI7RUFTQSxBQUFELG9DQUFvQixDQUFDO0lBQ25CLGdCQUFnQixFQUFFLE9BQU87SUFDekIsVUFBVSxFQUFFLElBQUksR0FDakI7RUFFQSxBQUFELDhCQUFjLENBQUM7SUFDYixLQUFLLEVBQUUsT0FBTztJQUNkLFdBQVcsRUFBRSxxQkFBcUI7SUFDbEMsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsU0FBUyxHQUMxQjtFQVlBLEFBQUQseUJBQVMsQ0FBQztJakZuWFYsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0lBeEQzQixtQkFBbUIsRWlGd1lTLE1BQU07SWpGdlkxQixXQUFXLEVpRnVZUyxNQUFNO0lBQ2hDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENuRnZXWixPQUFPO0ltRndXcEIsVUFBVSxFQUFFLFVBQVU7SUFDdEIsS0FBSyxFbkYvWkssT0FBTztJbUZnYWpCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsVUFBVSxFQTdZQyxJQUFJO0lBOFlmLFlBQVksRUExWUEsSUFBSSxHQTJZakI7RUFFQSxBQUFELDhCQUFjLENBQUM7SWpGaFlmLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBOENFLEdBQUc7SUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztJQXhEM0IsbUJBQW1CLEVpRnFaUyxNQUFNO0lqRnBaMUIsV0FBVyxFaUZvWlMsTUFBTSxHQUtqQztJQVBBLEFBSUMsOEJBSlksR0FBYiw4QkFBYSxDQUlOO01BQ0osV0FBVyxFQUFFLElBQUksR0FDbEI7RUFHRixBQUFELDZCQUFhLENBQUM7SUFDWixhQUFhLEVBQUUsR0FBRztJQUNsQixPQUFPLEVBQUUsWUFBWTtJQUNyQixNQUFNLEVBQUUsR0FBRztJQUNYLFlBQVksRUFBRSxHQUFHO0lBQ2pCLEtBQUssRUFBRSxHQUFHLEdBS1g7SUFIRSxBQUFELG1DQUFPLENBQUs7TUFBRSxnQkFBZ0IsRUFqYm5CLE9BQU8sR0FpYjJCO0lBQzVDLEFBQUQsdUNBQVcsQ0FBQztNQUFFLGdCQUFnQixFQWpibkIsT0FBTyxHQWliK0I7SUFDaEQsQUFBRCxtQ0FBTyxDQUFLO01BQUUsZ0JBQWdCLEVBamJuQixPQUFPLEdBaWIyQjs7QWpGOVA3QyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RWlGeEo1QixBQUFBLGlCQUFpQixDQTJaRztJQUNoQixPQUFPLEVBQUUsSUFBSSxHQXdCZDtJQXRWQSxBQUFELDBCQUFVLENBc1VHO01BQ1QsVUFBVSxFQUFFLElBQUk7TUFDaEIsVUFBVSxFQUFFLE1BQU0sR0FDbkI7SUExU0YsQUFBRCx5QkFBUyxDQTRTRztNQUNSLFVBQVUsRUFBRSxLQUFLO01BQ2pCLFVBQVUsRUFBRSxLQUFLLEdBQ2xCO0lBckRGLEFBQUQseUJBQVMsQ0F5REc7TWpGNVpaLGlCQUFpQixFaUY2Wk0sSUFBSTtNakY1Wm5CLFNBQVMsRWlGNFpNLElBQUk7TUFDdkIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQTNiUixJQUFJLEdBNGJmOztBR3ZmTDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQXFCMEI7QUFpQzFCLEFBQUEsaUJBQWlCLENBQUM7RUFDaEIsZ0JBQWdCLEVBQUUsT0FBTztFQUN6QixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3RGK0JGLE9BQU87RXNGOUJ0QixhQUFhLEVBQUUsSUFBSTtFQUNuQixVQUFVLEV0RmNFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxzQkFBc0I7RXNGYjlDLFVBQVUsRUFBRSxVQUFVO0VwRmpCdEIsWUFBWSxFb0ZxQkUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0VwRnBCbEIsUUFBUSxFb0ZvQkUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0VwRm5CZCxJQUFJLEVvRm1CRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7RUFPdEIsVUFBVSxFQUFFLFVBQVU7RUFDdEIsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUscUJBQXFCO0VBRWxDLE1BQU0sRUFBRSxXQUFXO0VBQ25CLE9BQU8sRUFBRSxJQUFJLEdBZ1NkO0VBOVJFLEFBQUQsd0JBQVEsQ0FBQztJcEZMVCxPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQThDRSxHQUFHO0lBN0NuQixjQUFjLEVBNkNFLEdBQUc7SUF4RDNCLG1CQUFtQixFb0YwQlMsTUFBTTtJcEZ6QjFCLFdBQVcsRW9GeUJTLE1BQU07SXBGRGxDLHVCQUF1QixFb0ZFUyxhQUFhO0lwRkRyQyxlQUFlLEVvRkNTLGFBQWE7SUFDM0MsS0FBSyxFdEY5Q0ssT0FBTztJc0YrQ2pCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsTUFBTSxFQUFFLFFBQVEsR0FDakI7RUFFQSxBQUFELDhCQUFjLENBQUM7SXBGaEJmLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBOENFLEdBQUc7SUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztJQXhEM0IsbUJBQW1CLEVvRnFDUyxNQUFNO0lwRnBDMUIsV0FBVyxFb0ZvQ1MsTUFBTTtJQUNoQyxHQUFHLEVBQUUsR0FBRyxHQUNUO0VBRUEsQUFBRCw2QkFBYSxDQUFDO0lBQ1osS0FBSyxFdEY3REssT0FBTztJc0Y4RGpCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUksR0FDbEI7RUFLQSxBQUFELDhCQUFjLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQUFBQSxLQUFLLENBQUM7SUFDMUQsTUFBTSxFQUFFLElBQUksR0FDYjtFQUtBLEFBQUQsdUJBQU8sQ0FBQztJcEZ2Q1IsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUErQkUsTUFBTTtJQTlCdEIsY0FBYyxFQThCRSxNQUFNO0lvRnVCNUIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsU0FBUyxFQUFFLElBQUk7SUFDZixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3RGaENKLE9BQU87SXNGaUNwQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsVUFBVTtJQUN0QixRQUFRLEVBQUUsTUFBTTtJQUVoQixVQUFVLEVBQUUsSUFBSSxHQUNqQjtFQVNBLEFBQUQsc0JBQU0sQ0FBQztJcEY5RFAsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0lBeEQzQixtQkFBbUIsRW9GbUZTLE1BQU07SXBGbEYxQixXQUFXLEVvRmtGUyxNQUFNO0lBQ2hDLGdCQUFnQixFQUFFLE9BQU87SUFDekIsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUUsSUFBRyxDQUFDLENBQUMsQ3RGbkRiLE9BQU87SXNGb0RwQixVQUFVLEVBQUUsVUFBVTtJQUN0QixVQUFVLEVBN0dFLElBQUk7SUFnSGhCLFNBQVMsRUFBRSxXQUFXLEdBQ3ZCO0VBT0EsQUFBRCxzQkFBTSxBQUFBLFdBQVcsQ0FBQztJQUNoQixhQUFhLEVBQUUsSUFBSSxHQUNwQjtFQUVBLEFBQUQsNEJBQVksQ0FBQztJQUNYLFVBQVUsRUE5SEUsSUFBSSxHQStIakI7RUFlQSxBQUFELDRCQUFZLENBQUUsdUJBQU0sQ0FBQztJQUNuQixLQUFLLEV0RjVJSyxPQUFPO0lzRjZJakIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixjQUFjLEVBQUUsTUFBTTtJQUN0QixXQUFXLEVBQUUsSUFBSSxHQUNsQjtFQUlBLEFBQUQsNkJBQWEsQ0FBQztJQUNaLGdCQUFnQixFQTdKSixPQUFPO0lBOEpuQixXQUFXLEVBQUUsR0FBRyxHQUNqQjtFQU9BLEFBQUQsdUJBQU8sQ0FBQztJcEZ4SFIsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0lBeEQzQixtQkFBbUIsRW9GNklTLE1BQU07SXBGNUkxQixXQUFXLEVvRjRJUyxNQUFNO0lwRnhKbEMsWUFBWSxFb0Z5SkksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lwRnhKcEIsUUFBUSxFb0Z3SkksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lwRnZKaEIsSUFBSSxFb0Z1SkksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lBQ3RCLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLEtBQUssRXRGbEtLLE9BQU87SXNGbUtqQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLE9BQU8sRUFBRSxDQUFDLENBdEtFLEdBQUcsR0F1S2hCO0VBS0EsQUFBRCw2QkFBYSxDQUFDO0lwRnBLZCxZQUFZLEVvRnFLSSxDQUFDLENBQUMsQ0FBQyxDQXJLTCxLQUFLO0lwRkNmLFFBQVEsRW9Gb0tJLENBQUMsQ0FBQyxDQUFDLENBcktMLEtBQUs7SXBGRVgsSUFBSSxFb0ZtS0ksQ0FBQyxDQUFDLENBQUMsQ0FyS0wsS0FBSztJQXNLakIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsUUFBUSxFQUFFLE1BQU07SUFDaEIsWUFBWSxFQWpMQSxJQUFJO0lBa0xoQixhQUFhLEVBQUUsUUFBUTtJQUN2QixXQUFXLEVBQUUsTUFBTTtJQUNuQixLQUFLLEVBM0tPLEtBQUssR0E0S2xCO0VBRUEsQUFBRCw2QkFBYSxDQUFDO0lwRjlLZCxZQUFZLEVvRitLSSxDQUFDLENBQUMsQ0FBQyxDQTlLTCxLQUFLO0lwRkFmLFFBQVEsRW9GOEtJLENBQUMsQ0FBQyxDQUFDLENBOUtMLEtBQUs7SXBGQ1gsSUFBSSxFb0Y2S0ksQ0FBQyxDQUFDLENBQUMsQ0E5S0wsS0FBSztJQStLakIsR0FBRyxFQUFFLEdBQUc7SUFDUixLQUFLLEVBaExPLEtBQUssR0FpTGxCO0VBRUEsQUFBRCw4QkFBYyxDQUFDO0lwRnBMZixZQUFZLEVvRnFMSSxDQUFDLENBQUMsQ0FBQyxDQW5MTCxLQUFLO0lwRkRmLFFBQVEsRW9Gb0xJLENBQUMsQ0FBQyxDQUFDLENBbkxMLEtBQUs7SXBGQVgsSUFBSSxFb0ZtTEksQ0FBQyxDQUFDLENBQUMsQ0FuTEwsS0FBSztJcEZrQ25CLHVCQUF1QixFb0ZrSlMsTUFBTTtJcEZqSjlCLGVBQWUsRW9GaUpTLE1BQU07SUFDcEMsS0FBSyxFQXJMTyxLQUFLLEdBc0xsQjtFQUlBLEFBQUQsZ0NBQWdCLENBQUM7SXBGNUxqQixZQUFZLEVvRjZMSSxDQUFDLENBQUMsQ0FBQyxDQTFMTCxLQUFLO0lwRkZmLFFBQVEsRW9GNExJLENBQUMsQ0FBQyxDQUFDLENBMUxMLEtBQUs7SXBGRFgsSUFBSSxFb0YyTEksQ0FBQyxDQUFDLENBQUMsQ0ExTEwsS0FBSztJQTJMakIsR0FBRyxFQUFFLEdBQUc7SUFDUixLQUFLLEVBNUxPLEtBQUssR0E2TGxCO0VBRUEsQUFBRCw2QkFBYSxDQUFDO0lwRmxNZCxZQUFZLEVvRm1NSSxDQUFDLENBQUMsQ0FBQyxDQS9MTCxLQUFLO0lwRkhmLFFBQVEsRW9Ga01JLENBQUMsQ0FBQyxDQUFDLENBL0xMLEtBQUs7SXBGRlgsSUFBSSxFb0ZpTUksQ0FBQyxDQUFDLENBQUMsQ0EvTEwsS0FBSztJcEZnQ25CLHVCQUF1QixFb0ZnS1MsTUFBTTtJcEYvSjlCLGVBQWUsRW9GK0pTLE1BQU07SUFDcEMsS0FBSyxFQWpNTyxLQUFLLEdBc01sQjtJQVJBLEFBS0MsNkJBTFcsQUFLVixXQUFXLENBQUM7TUFDWCxhQUFhLEVBak5ILElBQUksR0FrTmY7RUFhRixBQUFELDRCQUFZLENBQUM7SXBGeExiLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBOENFLEdBQUc7SUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztJQXhEM0IsbUJBQW1CLEVvRjZNUyxNQUFNO0lwRjVNMUIsV0FBVyxFb0Y0TVMsTUFBTTtJQUNoQyxVQUFVLEVBQUUsT0FBTztJQUNuQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsVUFBVTtJQUN0QixLQUFLLEV0RnJPSyxPQUFPO0lzRjJPakIsSUFBSSxFQUFFLFFBQVE7SUFDZCxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLEdBQUcsRUFBRSxHQUFHO0lBQ1IsTUFBTSxFQUFFLElBQUk7SUFDWixXQUFXLEVBQUUsSUFBSTtJQUNqQixTQUFTLEVBQUUsSUFBSTtJQUNmLFNBQVMsRUFBRSxDQUFDO0lBQ1osT0FBTyxFQUFFLEtBQUs7SUFDZCxVQUFVLEVBQUUsTUFBTSxHQUNuQjtFQUVBLEFBQUQsNEJBQVksQ0FBQztJcEY5T2IsWUFBWSxFb0YrT0ksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lwRjlPcEIsUUFBUSxFb0Y4T0ksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lwRjdPaEIsSUFBSSxFb0Y2T0ksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lBQ3RCLE9BQU8sRUFBRSxLQUFLO0lBQ2QsTUFBTSxFQUFFLElBQUk7SUFDWixVQUFVLEVBQUUsT0FBTztJQUNuQixLQUFLLEVBQUUsSUFBSSxHQUNaO0VBS0EsQUFBRCxrQ0FBa0IsQ0FBQztJQUNqQixTQUFTLEVBQUUsQ0FBQztJQUNaLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLGFBQWEsRUFBRSxRQUFRO0lBQ3ZCLFdBQVcsRUFBRSxNQUFNLEdBQ3BCO0VBSUEsQUFBRCxzQkFBTSxDQUFDO0lwRmxRUCxZQUFZLEVvRm1RSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SXBGbFFwQixRQUFRLEVvRmtRSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SXBGalFoQixJQUFJLEVvRmlRSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SUFDdEIsZ0JBQWdCLEV0RnZOSCxPQUFPO0lzRndOcEIsYUFBYSxFQUFFLEtBQUs7SUFDcEIsVUFBVSxFQUFFLFVBQVU7SUFDdEIsTUFBTSxFQTdQTSxHQUFHO0lBOFBmLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLEtBQUssRUFoUU8sSUFBSSxHQWlRakI7RUFJQSxBQUFELDJCQUFXLENBQUM7SUFDVixnQkFBZ0IsRXRGelFOLE9BQU87SXNGMFFqQixhQUFhLEVBQUUsS0FBSztJQUNwQixNQUFNLEVBQUUsSUFBSSxHQUNiO0VBTUEsQUFBRCxnQ0FBZ0IsQ0FBQztJQUNmLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLE1BQU0sR0FDcEI7RUFTQSxBQUFELHNCQUFNLENBQUM7SXBGMVJQLG1CQUFtQixFb0YyUlMsTUFBTTtJcEYxUjFCLFdBQVcsRW9GMFJTLE1BQU07SXBGbFFsQyx1QkFBdUIsRW9GbVFTLE1BQU07SXBGbFE5QixlQUFlLEVvRmtRUyxNQUFNO0lBQ3BDLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDdEZuVFAsT0FBTztJc0ZvVGpCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLEtBQUssRXRGcFRLLE9BQU87SXNGcVRqQixNQUFNLEVBQUUsT0FBTztJQUNmLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsVUFBVSxFQUFFLE1BQU07SUFDbEIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsTUFBTSxFQUFFLElBQUk7SUFDWixXQUFXLEVBQUUsQ0FBQztJQUNkLEtBQUssRUFBRSxJQUFJLEdBY1o7SUEzQkEsQUFtQkMsc0JBbkJJLEFBbUJILE9BQU8sQ0FBQztNQUNQLE9BQU8sRUFBRSxHQUFHLEdBQ2I7SUFyQkYsQUF1QkMsc0JBdkJJLEFBdUJILE1BQU0sQ0FBQztNQUNOLFlBQVksRXRGalZKLE9BQU87TXNGa1ZmLEtBQUssRXRGbFZHLE9BQU8sR3NGbVZoQjs7QUFhTCxBQUFBLHNCQUFzQixDQUFDLGVBQWUsQ0FBQztFQUNyQyxnQkFBZ0IsRUFBRSxPQUFPO0VBR3pCLEtBQUssRUFBRSxLQUFLO0VBQ1osTUFBTSxFQUFFLEtBQUs7RUFDYixVQUFVLEVBQUUsVUFBVTtFQUN0QixPQUFPLEVBQUUsUUFBUTtFQUNqQixJQUFJLEVBQUUsS0FBSztFQVdYLEdBQUcsRUFBRSxJQUFJO0VBR1QsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsSUFBSTtFQUNqQixjQUFjLEVBQUUsTUFBTSxHQVF2QjtFQWhDRCxBQTBCRSxzQkExQm9CLENBQUMsZUFBZSxDQTBCcEMsVUFBVSxDQUFDO0lBR1QsS0FBSyxFQUFFLE9BQU87SUFDZCxXQUFXLEVBQUUsR0FBRyxHQUNqQjs7QUFHSCxBQUFBLHNCQUFzQixDbkN4VXRCLGVBQWUsQUFBQSxNQUFNLENtQ3dVd0I7RUFRM0MsWUFBWSxFQUFFLGFBQWE7RUFDM0IsWUFBWSxFQUFFLG1CQUFtQjtFQU1qQyxHQUFHLEVBQUUsSUFBSTtFQU1ULElBQUksRUFBRSxJQUFJO0VBZVYsZ0JBQWdCLEVBQUUsV0FBVztFQUM3QixTQUFTLEVBQUUsQ0FBQztFQUNaLFVBQVUsRUFBRSxDQUFDO0VBQ2IsT0FBTyxFQUFFLENBQUMsR0FDWDs7QUFFRCxBQUFBLDBCQUEwQixDQUFDO0VBQ3pCLE1BQU0sRUFBRSxRQUFRLEdBS2pCO0VBTkQsQUFHRSwwQkFId0IsQUFHdkIsV0FBVyxDQUFDO0lBQ1gsYUFBYSxFQUFFLENBQUMsR0FDakI7O0FBR0gsQUFBQSw0QkFBNEIsQ0FBQztFQUMzQixXQUFXLEVBQUUsR0FBRyxHQUNqQjs7QUFFRCxBQUFBLDJCQUEyQixDQUFDO0VBQzFCLFdBQVcsRUFBRSxHQUFHLEdBQ2pCOztBcEZwUEcsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VvRnRLNUIsQUFBQSxpQkFBaUIsQ0E2Wkc7SUFDaEIsT0FBTyxFQUFFLElBQUksR0FRZDtJQS9ZQSxBQUFELHdCQUFRLENBMFlHO01wRmxhWCxtQkFBbUIsRW9GbWFXLFVBQVU7TXBGbGFoQyxXQUFXLEVvRmthVyxVQUFVO01wRmhaeEMsT0FBTyxFQUFFLFlBQVk7TUFDckIsT0FBTyxFQUFFLFdBQVc7TUFDcEIsT0FBTyxFQUFFLElBQUk7TUFYYixzQkFBc0IsRUErQkUsTUFBTTtNQTlCdEIsY0FBYyxFQThCRSxNQUFNO01vRjRYMUIsR0FBRyxFQUFFLElBQUksR0FDVjs7QUczZEw7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQXVCMEI7QUE2QjFCLEFBQUEsaUJBQWlCLENBQUM7RUFDaEIsZ0JBQWdCLEVBQUUsT0FBTztFQUN6QixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3pGaUNGLE9BQU87RXlGaEN0QixhQUFhLEVBQUUsSUFBSTtFQUNuQixVQUFVLEV6RmdCRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsc0JBQXNCO0V5RmY5QyxVQUFVLEVBQUUsVUFBVTtFdkZmdEIsWUFBWSxFdUZrQkUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0V2RmpCbEIsUUFBUSxFdUZpQkUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0V2RmhCZCxJQUFJLEV1RmdCRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7RUFDdEIsV0FBVyxFQUFFLHFCQUFxQjtFQUdsQyxNQUFNLEVBQUUsUUFBUTtFQUNoQixPQUFPLEVBQUUsSUFBSSxHQTRGZDtFQTFGRSxBQUFELHdCQUFRLENBQUM7SUFDUCxLQUFLLEV6RmpDSyxPQUFPO0l5RmtDakIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixNQUFNLEVBQUUsUUFBUSxHQUNqQjtFQUVBLEFBQUQsdUJBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxJQUFJO0lBQ2IscUJBQXFCLEVBQUUscUNBQTRDO0lBQ25FLEdBQUcsRUFBRSxJQUFJLEdBQ1Y7RUFFQSxBQUFELHVCQUFPLENBQUM7SUFDTixnQkFBZ0IsRUFBRSxPQUFPO0lBQ3pCLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDekZJSixPQUFPO0l5RkhwQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsVUFBVTtJQUN0QixVQUFVLEVBL0NHLEtBQUs7SUFpRGxCLFNBQVMsRUFBRSxDQUFDO0lBQ1osT0FBTyxFQUFFLFNBQVMsR0FDbkI7RUFFQSxBQUFELHVCQUFPLENBQUM7SUFDTixLQUFLLEV6RjNESyxPQUFPO0l5RjREakIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixhQUFhLEVBQUUsR0FBRztJQUdsQixhQUFhLEVBQUUsVUFBVTtJQUN6QixTQUFTLEVBQUUsVUFBVSxHQUN0QjtFQUVBLEFBQUQsd0JBQVEsQ0FBQztJdkZoQ1QsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0lBeEQzQixtQkFBbUIsRXVGcURTLE1BQU07SXZGcEQxQixXQUFXLEV1Rm9EUyxNQUFNO0l2RjVCbEMsdUJBQXVCLEV1RjZCUyxhQUFhO0l2RjVCckMsZUFBZSxFdUY0QlMsYUFBYSxHQUM1QztFQUVBLEFBQUQsd0JBQVEsQ0FBQztJQUNQLEtBQUssRXpGNUVLLE9BQU87SXlGNkVqQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJLEdBQ2xCO0VBSUEsQUFBRCx5QkFBUyxDQUFDO0lBQ1IsT0FBTyxFQUFFLFdBQVc7SXZGbkV0QixtQkFBbUIsRXVGb0VTLE1BQU07SXZGbkUxQixXQUFXLEV1Rm1FUyxNQUFNO0l2Ri9FbEMsWUFBWSxFdUZnRkksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0l2Ri9FcEIsUUFBUSxFdUYrRUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0l2RjlFaEIsSUFBSSxFdUY4RUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lBQ3RCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsR0FBRyxFQUFFLEdBQUc7SUFDUixXQUFXLEVBQUUsQ0FBQyxHQVNmO0lBUEUsQUFBRCw2QkFBSyxDQUFDO01BQ0osS0FBSyxFQWpHRSxPQUFPLEdBa0dmO0lBRUEsQUFBRCwrQkFBTyxDQUFDO01BQ04sS0FBSyxFQXBHRSxPQUFPLEdBcUdmO0VBS0YsQUFBRCw2QkFBYSxDQUFDO0l2RmpHZCxZQUFZLEV1RmtHSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SXZGakdwQixRQUFRLEV1RmlHSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SXZGaEdoQixJQUFJLEV1RmdHSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SUFDdEIsTUFBTSxFQUFFLElBQUk7SUFDWixLQUFLLEVBQUUsSUFBSSxHQUNaO0VBRUEsQUFBRCx3QkFBUSxDQUFDO0lBQ1AsT0FBTyxFQUFFLEtBQUs7SUFDZCxNQUFNLEVBdEdPLElBQUk7SUF1R2pCLFVBQVUsRUFBRSxHQUFHO0lBSWYsU0FBUyxFQUFFLElBQUk7SUFHZixLQUFLLEVBQUUsSUFBSSxHQUNaOztBRzVKSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQWdEMEI7QUFrRDFCLEFBQUEsa0JBQWtCLENBQUM7RUFDakIsZ0JBQWdCLEVBQUUsT0FBTztFQUN6QixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQzVGYkYsT0FBTztFNEZjdEIsYUFBYSxFQUFFLElBQUk7RUFDbkIsVUFBVSxFNUY5QkUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLHNCQUFzQjtFNEYrQjlDLFVBQVUsRUFBRSxVQUFVO0UxRjdEdEIsWUFBWSxFMEZpRUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0UxRmhFbEIsUUFBUSxFMEZnRUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0UxRi9EZCxJQUFJLEUwRitERSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7RUFDdEIsV0FBVyxFQUFFLHFCQUFxQjtFQUdsQyxNQUFNLEVBQUUsUUFBUTtFQUNoQixPQUFPLEVBQUUsSUFBSSxHQXFWZDtFQW5WRSxBQUFELHlCQUFRLENBQUM7SUFDUCxLQUFLLEU1RmhGSyxPQUFPO0k0RmlGakIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixNQUFNLEVBQUUsUUFBUSxHQUNqQjtFQUtBLEFBQUQsd0JBQU8sQ0FBQztJMUZyRFIsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0lBeEQzQixtQkFBbUIsRTBGMEVTLFVBQVU7STFGekU5QixXQUFXLEUwRnlFUyxVQUFVO0lBQ3BDLEdBQUcsRUE1Q1csSUFBSSxHQTZDbkI7RUFLQSxBQUFELHlCQUFRLENBQUM7STFGNUZULFlBQVksRTBGNkZJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJMUY1RmpCLFFBQVEsRTBGNEZJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJMUYzRmIsSUFBSSxFMEYyRkksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25CLFNBQVMsRUFBRSxDQUFDLEdBQ2I7RUFFQSxBQUFELDZCQUFZLENBQUM7SUFDWCxNQUFNLEVBM0RRLEtBQUssR0E0RHBCO0VBS0EsQUFBRCxnQ0FBZSxDQUFDO0lBQ2QsT0FBTyxFQUFFLEtBQUssR0FDZjtFQUVBLEFBQUQsMEJBQVMsQ0FBQztJMUY5RVYsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0lBeEQzQixtQkFBbUIsRTBGbUdTLE1BQU07STFGbEcxQixXQUFXLEUwRmtHUyxNQUFNO0kxRmhFbEMsaUJBQWlCLEUwRmlFSSxJQUFJO0kxRmhFakIsU0FBUyxFMEZnRUksSUFBSTtJQUN2QixVQUFVLEVBQUUsSUFBSSxHQUNqQjtFQUlBLEFBQUQsK0JBQWMsQ0FBQztJMUZ2RmYsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0lBeEQzQixtQkFBbUIsRTBGNEdTLE1BQU07STFGM0cxQixXQUFXLEUwRjJHUyxNQUFNLEdBS2pDO0lBUEEsQUFJQywrQkFKWSxHQUFiLCtCQUFhLENBSU47TUFDSixXQUFXLEVBQUUsSUFBSSxHQUNsQjtFQUdGLEFBQUQsOEJBQWEsQ0FBQztJQUNaLGFBQWEsRUFBRSxHQUFHO0kxRi9IcEIsWUFBWSxFMEZnSUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0kxRi9IcEIsUUFBUSxFMEYrSEksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0kxRjlIaEIsSUFBSSxFMEY4SEksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lBQ3RCLE1BQU0sRUFBRSxHQUFHO0lBQ1gsWUFBWSxFQUFFLEdBQUc7SUFDakIsS0FBSyxFQUFFLEdBQUcsR0FnQlg7SUFkRSxBQUFELHFDQUFRLENBQUM7TUFDUCxnQkFBZ0IsRUF0R0Qsd0JBQXdCLEdBdUd4QztJQUtBLEFBQUQsdUNBQVUsQ0FBQztNQUNULGdCQUFnQixFQTVHRCx3QkFBd0IsR0E2R3hDO0lBRUEsQUFBRCxvQ0FBTyxDQUFDO01BQ04sZ0JBQWdCLEVBL0dELHlCQUF5QixHQWdIekM7RUFHRixBQUFELGdDQUFlLENBQUM7SUFDZCxLQUFLLEU1Ri9KSyxPQUFPO0k0RmdLakIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSSxHQUNsQjtFQUtBLEFBQUQseUJBQVEsQ0FBQztJMUYvSlQsWUFBWSxFMEZnS0ksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0kxRi9KakIsUUFBUSxFMEYrSkksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0kxRjlKYixJQUFJLEUwRjhKSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkIsT0FBTyxFQUFFLElBQUk7SUFDYixHQUFHLEVBdEhXLElBQUksQ0FESixJQUFJO0lBd0hsQixxQkFBcUIsRUFBRSx5QkFBeUI7SUFDaEQsU0FBUyxFQUFFLENBQUMsR0FDYjtFQU1BLEFBQUQsd0JBQU8sQ0FBQztJMUY3SVIsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUErQkUsTUFBTTtJQTlCdEIsY0FBYyxFQThCRSxNQUFNO0kwRnlINUIsVUFBVSxFQUFFLFVBQVU7SUFDdEIsU0FBUyxFQUFFLENBQUMsR0FDYjtFQUVBLEFBQUQsNkJBQVksQ0FBQztJMUZuSmIsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0lBeEQzQixtQkFBbUIsRTBGd0tTLE1BQU07STFGdksxQixXQUFXLEUwRnVLUyxNQUFNO0lBQ2hDLEdBQUcsRUFBRSxHQUFHLEdBQ1Q7RUFFQSxBQUFELDhCQUFhLENBQUM7SUFDWixLQUFLLEU1RmhNSyxPQUFPO0k0RmlNakIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSSxHQUNsQjtFQUVBLEFBQUQsNkJBQVksQ0FBQztJMUZoS2IsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0lBeEQzQixtQkFBbUIsRTBGcUxTLE1BQU07STFGcEwxQixXQUFXLEUwRm9MUyxNQUFNO0kxRmxKbEMsaUJBQWlCLEUwRm1KSSxJQUFJO0kxRmxKakIsU0FBUyxFMEZrSkksSUFBSTtJQUN2QixHQUFHLEVBQUUsR0FBRztJQUNSLE1BQU0sRUFBRSxVQUFVLEdBQ25CO0VBRUEsQUFBRCx5QkFBUSxDQUFDO0lBQ1AsS0FBSyxFNUY5TUssT0FBTztJNEYrTWpCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUksR0FDbEI7RUFTQSxBQUFELDBCQUFTLENBQUM7SUFDUixPQUFPLEVBQUUsV0FBVztJMUYxTXRCLG1CQUFtQixFMEYyTVMsTUFBTTtJMUYxTTFCLFdBQVcsRTBGME1TLE1BQU07STFGdE5sQyxZQUFZLEUwRnVOSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7STFGdE5wQixRQUFRLEUwRnNOSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7STFGck5oQixJQUFJLEUwRnFOSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SUFDdEIsS0FBSyxFNUZqT0ssT0FBTztJNEZrT2pCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsR0FBRyxFQUFFLEdBQUc7SUFDUixXQUFXLEVBQUUsQ0FBQyxHQVNmO0lBUEUsQUFBRCw4QkFBSyxDQUFDO01BQ0osS0FBSyxFQXBNTyxPQUFPLEdBcU1wQjtJQUVBLEFBQUQsZ0NBQU8sQ0FBQztNQUNOLEtBQUssRUF2TU8sT0FBTyxHQXdNcEI7RUFLRixBQUFELDhCQUFhLENBQUM7STFGek9kLFlBQVksRTBGME9JLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJMUZ6T3BCLFFBQVEsRTBGeU9JLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJMUZ4T2hCLElBQUksRTBGd09JLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJQUN0QixNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxJQUFJLEdBQ1o7RUFLQSxBQUFELHVCQUFNLENBQUM7SUFDTCxnQkFBZ0IsRTVGdE1ILE9BQU87STRGdU1wQixhQUFhLEVBQUUsS0FBSztJQUNwQixVQUFVLEVBQUUsVUFBVTtJQUN0QixNQUFNLEVBek1RLEdBQUc7SUEwTWpCLFVBQVUsRUFBRSxJQUFJO0lBR2hCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsUUFBUSxFQUFFLE1BQU07SUFDaEIsS0FBSyxFQTNNUyxLQUFLLEdBNE1wQjtFQUlBLEFBQUQsNEJBQVcsQ0FBQztJQUNWLGdCQUFnQixFQXRQRixPQUFPO0lBdVByQixhQUFhLEVBQUUsS0FBSztJQUNwQixNQUFNLEVBQUUsSUFBSSxHQW1CYjtJQWpCRSxBQUFELGlDQUFNLENBQUM7TUFDTCxnQkFBZ0IsRUFsUEosT0FBTyxHQW1QcEI7SUFFQSxBQUFELG9DQUFTLENBQUM7TUFDUixnQkFBZ0IsRUFyUEosT0FBTyxHQXNQcEI7SUFFQSxBQUFELG1DQUFRLENBQUM7TUFDUCxnQkFBZ0IsRUF4UEosT0FBTyxHQXlQcEI7SUFJQSxBQUFELG9DQUFTLENBQUM7TUFDUixnQkFBZ0IsRTVGelNSLE9BQU8sRzRGMFNoQjtFQUdGLEFBQUQsMEJBQVMsQ0FBQztJMUYzUFYsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0lBeEQzQixtQkFBbUIsRTBGZ1JTLE1BQU07STFGL1ExQixXQUFXLEUwRitRUyxNQUFNO0lBQ2hDLEdBQUcsRUFBRSxJQUFJO0lBQ1QsTUFBTSxFQUFFLFVBQVUsR0FDbkI7RUFJQSxBQUFELCtCQUFjLENBQUM7SUFDYixLQUFLLEU1RnZUSyxPQUFPO0lFb0JuQixZQUFZLEUwRm9TSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7STFGblNwQixRQUFRLEUwRm1TSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7STFGbFNoQixJQUFJLEUwRmtTSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SUFHdEIsTUFBTSxFQUFFLElBQUk7SUFDWixLQUFLLEVBQUUsSUFBSSxHQUNaO0VBSUEsQUFBRCxnQ0FBZSxDQUFDO0lBQ2QsS0FBSyxFNUZyVEssT0FBTztJNEZzVGpCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUksR0FDbEI7RUFFQSxBQUFELDBCQUFTLENBQUM7SUFDUixnQkFBZ0IsRUEvUEYsT0FBTztJMUZ4QnZCLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBOENFLEdBQUc7SUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztJQXhEM0IsbUJBQW1CLEUwRjRTUyxNQUFNO0kxRjNTMUIsV0FBVyxFMEYyU1MsTUFBTTtJQUNoQyxVQUFVLEVBQUUsVUFBVTtJQUN0QixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQzVGL1VQLE9BQU87STRGZ1ZqQixhQUFhLEVBQUUsR0FBRztJQUNsQixHQUFHLEVBQUUsSUFBSTtJQUNULFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE9BQU8sRUFBRSxJQUFJLEdBQ2Q7RUFFQSxBQUFELCtCQUFjLENBQUM7SUFDYixLQUFLLEU1RnJWSyxPQUFPO0lFb0JuQixZQUFZLEUwRmtVSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7STFGalVwQixRQUFRLEUwRmlVSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7STFGaFVoQixJQUFJLEUwRmdVSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SUFDdEIsTUFBTSxFQUFFLElBQUk7SUFDWixLQUFLLEVBQUUsSUFBSSxHQUNaO0VBR0EsQUFBRCwrQkFBYyxDQUFDO0kxRjFTZixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQStCRSxNQUFNO0lBOUJ0QixjQUFjLEVBOEJFLE1BQU07SUFwRDlCLFlBQVksRTBGMFVJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJMUZ6VXBCLFFBQVEsRTBGeVVJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJMUZ4VWhCLElBQUksRTBGd1VJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJQUN0QixTQUFTLEVBQUUsQ0FBQyxHQUNiO0VBS0EsQUFBRCxnQ0FBZSxDQUFDO0kxRm5UaEIsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0lBeEQzQixtQkFBbUIsRTBGd1VTLE1BQU07STFGdlUxQixXQUFXLEUwRnVVUyxNQUFNO0lBQ2hDLEtBQUssRTVGdFdLLE9BQU87STRGdVdqQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLEdBQUcsRUFBRSxHQUFHO0lBQ1IsV0FBVyxFQUFFLElBQUksR0FDbEI7RUFJQSxBQUFELCtCQUFjLENBQUM7SUFDYixLQUFLLEU1RnZXSyxPQUFPO0k0RndXakIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixVQUFVLEVBQUUsR0FBRztJQUNmLFdBQVcsRUFBRSxRQUFRLEdBQ3RCO0VBV0EsQUFBRCx1QkFBTSxDQUFDO0kxRm5MUCxTQUFTLEVBQUUsQ0FBQztJQUNaLFVBQVUsRUFBRSxDQUFDO0lBQ2IsVUFBVSxFQUFFLElBQUk7SUFDaEIsY0FBYyxFQUFFLENBQUM7SUFDakIsY0FBYyxFQUFFLElBQUk7STBGaUxsQixPQUFPLEVBQUUsV0FBVztJMUZ0V3RCLG1CQUFtQixFMEZ1V1MsTUFBTTtJMUZ0VzFCLFdBQVcsRTBGc1dTLE1BQU07STFGbFhsQyxZQUFZLEUwRm1YSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7STFGbFhwQixRQUFRLEUwRmtYSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7STFGalhoQixJQUFJLEUwRmlYSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SUFJdEIsVUFBVSxFQUFFLFVBQVU7SUFDdEIsR0FBRyxFQUFFLEdBQUc7SUFDUixNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFVBQVUsRUFBRSxJQUFJO0lBR2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLE9BQU8sRUFBRSxRQUFRO0lBRWpCLFVBQVUsRUEzVUksT0FBTztJQTRVckIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEM1RnZZUCxPQUFPO0k0RndZakIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLElBQUk7SUFDaEIsS0FBSyxFNUYzWUssT0FBTztJNEY0WWpCLE1BQU0sRUFBRSxPQUFPO0lBQ2YsV0FBVyxFQUFFLG9DQUFvQztJQUNqRCxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLGNBQWMsRUFBRSxPQUFPO0lBQ3ZCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLFdBQVcsRUFBRSxNQUFNLEdBTXBCO0lBckNBLEFBaUNDLHVCQWpDSSxBQWlDSCxNQUFNLENBQUM7TUFDTixVQUFVLEU1RnhhRixPQUFPO000RnlhZixVQUFVLEVBQUUsSUFBSSxHQUNqQjtFQUdGLEFBQUQsNEJBQVcsQ0FBQztJMUZ0WlosWUFBWSxFMEZ1WkksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0kxRnRacEIsUUFBUSxFMEZzWkksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0kxRnJaaEIsSUFBSSxFMEZxWkksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lBQ3RCLE1BQU0sRUFBRSxJQUFJO0lBQ1osS0FBSyxFQUFFLElBQUksR0FDWjs7QTFGM09DLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFMEY1RnpCLEFBQUQsd0JBQU8sQ0ErVUc7SUFDTixHQUFHLEVBQUUsSUFBSSxHQUNWO0VBclFGLEFBQUQseUJBQVEsQ0F1UUc7SUFDUCxxQkFBcUIsRUFBRSx5QkFBeUIsR0FDakQ7O0ExRnRQRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RTBGMUg1QixBQUFBLGtCQUFrQixDQXFYRztJQUNqQixPQUFPLEVBQUUsSUFBSSxHQXFDZDtJQWhZQSxBQUFELHdCQUFPLENBNlZHO00xRmxaVixPQUFPLEVBQUUsWUFBWTtNQUNyQixPQUFPLEVBQUUsV0FBVztNQUNwQixPQUFPLEVBQUUsSUFBSTtNQVhiLHNCQUFzQixFQStCRSxNQUFNO01BOUJ0QixjQUFjLEVBOEJFLE1BQU0sRzBGOFgzQjtJQXRWRixBQUFELHlCQUFRLENBd1ZHO00xRnBiWCxZQUFZLEUwRnFiTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TTFGcGJ0QixRQUFRLEUwRm9iTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TTFGbmJsQixJQUFJLEUwRm1iTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TUFDdEIsS0FBSyxFQUFFLElBQUksR0FDWjtJQXRWRixBQUFELDZCQUFZLENBd1ZHO01BQ1gsTUFBTSxFQWxaTSxLQUFLLEdBbVpsQjtJQTVSRixBQUFELHlCQUFRLENBOFJHO00xRjdiWCxZQUFZLEUwRjhiTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TTFGN2J0QixRQUFRLEUwRjZiTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TTFGNWJsQixJQUFJLEUwRjRiTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TUFDdEIsVUFBVSxFQUFFLElBQUk7TUFDaEIsS0FBSyxFQUFFLElBQUksR0FDWjtJQTdJRixBQUFELDBCQUFTLENBaUpHO00xRjFiWixtQkFBbUIsRTBGMmJXLFVBQVU7TTFGMWJoQyxXQUFXLEUwRjBiVyxVQUFVO00xRnhaeEMsaUJBQWlCLEUwRnlaTSxJQUFJO00xRnhabkIsU0FBUyxFMEZ3Wk0sSUFBSSxHQUN4QjtJQWhJRixBQUFELCtCQUFjLENBa0lHO00xRjFjakIsWUFBWSxFMEY2Y00sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO00xRjVjdEIsUUFBUSxFMEY0Y00sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO00xRjNjbEIsSUFBSSxFMEYyY00sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQ3ZCO0lBL0ZGLEFBQUQsdUJBQU0sQ0FpR0c7TUFDTCxNQUFNLEVBQUUsYUFBYSxHQUN0Qjs7QUc1Zkw7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQXVCMEI7QUE4QzFCLEFBQUEsc0JBQXNCLENBQUM7RTdGR3JCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBWGIsc0JBQXNCLEVBOENFLEdBQUc7RUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztFQXhEM0IsbUJBQW1CLEU2RmtCTyxPQUFPO0U3RmpCekIsV0FBVyxFNkZpQk8sT0FBTztFQUdqQyxNQUFNLEVBQUUsUUFBUTtFQUNoQixHQUFHLEVBQUUsSUFBSSxHQWlCVjtFQXZCRCxBQVFFLHNCQVJvQixHQVFsQixDQUFDLENBQUM7STdGbkNKLFlBQVksRTZGdUNJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJN0Z0Q2pCLFFBQVEsRTZGc0NJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJN0ZyQ2IsSUFBSSxFNkZxQ0ksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBS25CLFNBQVMsRUFBRSxDQUFDLEdBQ2I7RTdGa0lDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztJNkZwSjVCLEFBQUEsc0JBQXNCLENBQUM7TTdGR3JCLE9BQU8sRUFBRSxZQUFZO01BQ3JCLE9BQU8sRUFBRSxXQUFXO01BQ3BCLE9BQU8sRUFBRSxJQUFJO01BWGIsc0JBQXNCLEVBK0JFLE1BQU07TUE5QnRCLGNBQWMsRUE4QkUsTUFBTSxHNkZGL0I7O0FBRUQsQUFBQSxrQkFBa0IsQ0FBQztFQUNqQixnQkFBZ0IsRUFBRSxPQUFPO0VBQ3pCLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDL0ZURixPQUFPO0UrRlV0QixhQUFhLEVBQUUsSUFBSTtFQUNuQixVQUFVLEUvRjFCRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsc0JBQXNCO0UrRjJCOUMsVUFBVSxFQUFFLFVBQVU7RUFDdEIsV0FBVyxFQUFFLHFCQUFxQjtFQUNsQyxPQUFPLEVBQUUsSUFBSTtFQUtiLFNBQVMsRUFBRSxLQUFLLEdBdVpqQjtFQS9ZRSxBQUFELHlCQUFRLENBQUM7SUFDUCxLQUFLLEUvRmhGSyxPQUFPO0krRmlGakIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixNQUFNLEVBQUUsUUFBUSxHQUNqQjtFQW1CQSxBQUFELHdCQUFPLENBQUM7STdGbkVSLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBOENFLEdBQUc7SUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztJQXhEM0IsbUJBQW1CLEU2RndGUyxPQUFPO0k3RnZGM0IsV0FBVyxFNkZ1RlMsT0FBTztJN0YvRG5DLHVCQUF1QixFNkZnRVMsYUFBYTtJN0YvRHJDLGVBQWUsRTZGK0RTLGFBQWE7SUFDM0MsR0FBRyxFQWxGUSxJQUFJLEdBbUZoQjtFQXNCQSxBQUFELHdCQUFPLENBQUM7STdGOUZSLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBK0JFLE1BQU07SUE5QnRCLGNBQWMsRUE4QkUsTUFBTTtJQXBEOUIsWUFBWSxFNkY4SEksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0k3RjdIcEIsUUFBUSxFNkY2SEksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0k3RjVIaEIsSUFBSSxFNkY0SEksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0k3RjFGeEIsdUJBQXVCLEU2RjJGUyxhQUFhO0k3RjFGckMsZUFBZSxFNkYwRlMsYUFBYTtJQUMzQyxLQUFLLEVBdEhNLEtBQUssR0F1SGpCO0VBa0JBLEFBQUQseUJBQVEsQ0FBQztJN0ZuSlQsWUFBWSxFNkZvSkksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0k3Rm5KcEIsUUFBUSxFNkZtSkksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0k3RmxKaEIsSUFBSSxFNkZrSkksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lBQ3RCLFFBQVEsRUFBRSxRQUFRLEdBQ25CO0VBYUEsQUFBRCw2QkFBWSxDQUFDO0lBQ1gsT0FBTyxFQUFFLEtBQUs7SUFDZCxNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxJQUFJLEdBQ1o7RUFFQSxBQUFELDhCQUFhLENBQUM7SUFDWixNQUFNLEVBcktFLE9BQU8sR0FzS2hCO0VBTUEsQUFBRCw0QkFBVyxDQUFDO0lBQ1YsTUFBTSxFQUFFLE9BQU87SUFDZixVQUFVLEVBQUUsa0JBQWtCLEdBSy9CO0lBUEEsQUFJQyw0QkFKUyxBQUlSLE1BQU0sQ0FBQztNQUNOLE9BQU8sRUFBRSxJQUFJLEdBQ2Q7RUFPRixBQUFELDBCQUFTLENBQUM7SUFDUixJQUFJLEVBQUUsR0FBRztJQUNULGNBQWMsRUFBRSxJQUFJO0lBQ3BCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLEdBQUcsRUFBRSxHQUFHO0k3RjNPUCxjQUFjLEU2RjRPSSxxQkFBcUI7STdGM09yQyxZQUFZLEU2RjJPSSxxQkFBcUI7STdGMU90QyxhQUFhLEU2RjBPSSxxQkFBcUI7STdGek8xQyxpQkFBaUIsRTZGeU9JLHFCQUFxQjtJN0Z4T2xDLFNBQVMsRTZGd09JLHFCQUFxQixHQUN6QztFQWFBLEFBQUQsa0NBQWlCLENBQUM7SUFDaEIsS0FBSyxFL0Y1TkssT0FBTztJK0Y2TmpCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFJakIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsY0FBYyxFQUFFLFNBQVMsR0FDMUI7RUFFQSxBQUFELGdDQUFlLENBQUM7SUFDZCxLQUFLLEUvRnZPSyxPQUFPO0krRndPakIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixVQUFVLEVBQUUsTUFBTSxHQUNuQjtFQU9BLEFBQUQsOEJBQWEsQ0FBQztJQUNaLEtBQUssRS9GclBLLE9BQU87SStGc1BqQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBR2pCLFVBQVUsRUFBRSxHQUFHO0lBQ2YsVUFBVSxFQUFFLEtBQUssR0FDbEI7RUFNQSxBQUFELG9DQUFtQixDQUFDO0lBQ2xCLEtBQUssRUFBRSxPQUFPO0lBQ2QsV0FBVyxFQUFFLEdBQUcsR0FDakI7RUFrQkEsQUFBRCx1QkFBTSxDQUFDO0lBQ0wsZ0JBQWdCLEUvRnZQSCxPQUFPO0krRndQcEIsYUFBYSxFQUFFLElBQUk7SUFDbkIsVUFBVSxFQUFFLFVBQVU7SUFDdEIsS0FBSyxFQUFFLE9BQU87SUFDZCxTQUFTLEVBQUUsSUFBSTtJQUNmLElBQUksRUFBRSxHQUFHO0lBQ1QsV0FBVyxFQUFFLElBQUk7SUFDakIsU0FBUyxFQUFFLEtBQUs7SUFDaEIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsY0FBYyxFQUFFLElBQUk7SUFDcEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsT0FBTyxFQUFFLENBQUM7STdGcFVULGNBQWMsRTZGcVVJLG9CQUFvQjtJN0ZwVXBDLFlBQVksRTZGb1VJLG9CQUFvQjtJN0ZuVXJDLGFBQWEsRTZGbVVJLG9CQUFvQjtJN0ZsVXpDLGlCQUFpQixFNkZrVUksb0JBQW9CO0k3RmpVakMsU0FBUyxFNkZpVUksb0JBQW9CLEdBQ3hDO0VBRUEsQUFBRCw0QkFBVyxDQUFDO0k3RmxRWixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQThDRSxHQUFHO0lBN0NuQixjQUFjLEVBNkNFLEdBQUc7SUF4RDNCLG1CQUFtQixFNkZ1UlMsTUFBTTtJN0Z0UjFCLFdBQVcsRTZGc1JTLE1BQU07SUFDaEMsV0FBVyxFQUFFLEdBQUc7SUFDaEIsR0FBRyxFQUFFLEdBQUc7SUFDUixhQUFhLEVBQUUsR0FBRyxHQUNuQjtFQUVBLEFBQUQsMkJBQVUsQ0FBQztJQUNULGFBQWEsRUFBRSxHQUFHO0k3RnpTcEIsWUFBWSxFNkYwU0ksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0k3RnpTcEIsUUFBUSxFNkZ5U0ksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0k3RnhTaEIsSUFBSSxFNkZ3U0ksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lBQ3RCLE1BQU0sRUFBRSxHQUFHO0lBQ1gsS0FBSyxFQUFFLEdBQUcsR0FDWDtFQUtBLEFBQUQsMkJBQVUsQ0FBQztJN0ZwUlgsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0lBeEQzQixtQkFBbUIsRTZGeVNTLE1BQU07STdGeFMxQixXQUFXLEU2RndTUyxNQUFNO0k3RmhSbEMsdUJBQXVCLEU2RmlSUyxhQUFhO0k3RmhSckMsZUFBZSxFNkZnUlMsYUFBYTtJQUMzQyxLQUFLLEVBQUUsT0FBTztJQUNkLEdBQUcsRUFBRSxJQUFJLEdBS1Y7SUFWQSxBQU9DLDJCQVBRLENBT1IsTUFBTSxDQUFDO01BQ0wsV0FBVyxFQUFFLEdBQUcsR0FDakI7RUFxQkYsQUFBRCx5QkFBUSxDQUFDO0k3RmxUVCxPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQStCRSxNQUFNO0lBOUJ0QixjQUFjLEVBOEJFLE1BQU07SUFwRDlCLFlBQVksRTZGa1ZJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJN0ZqVnBCLFFBQVEsRTZGaVZJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJN0ZoVmhCLElBQUksRTZGZ1ZJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJN0Y5U3hCLHVCQUF1QixFNkYrU1MsYUFBYTtJN0Y5U3JDLGVBQWUsRTZGOFNTLGFBQWE7SUFDM0MsR0FBRyxFQUFFLElBQUk7SUFDVCxLQUFLLEVBQUUsS0FBSyxHQUNiO0VBRUEsQUFBRCw4QkFBYSxDQUFDO0lBQ1osS0FBSyxFL0ZqV0ssT0FBTztJK0ZrV2pCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsY0FBYyxFQUFFLFVBQVUsR0FDM0I7RUFFQSxBQUFELDhCQUFhLENBQUM7SUFDWixLQUFLLEUvRjFXSyxPQUFPO0krRjJXakIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSSxHQUNsQjtFQUlBLEFBQUQsdUJBQU0sQ0FBQztJQUNMLGdCQUFnQixFL0Y5VEgsT0FBTztJK0YrVHBCLGFBQWEsRUFBRSxLQUFLO0lBQ3BCLE1BQU0sRUF6VkssR0FBRztJQTBWZCxVQUFVLEVBQUUsR0FBRztJQUNmLFNBQVMsRUFBRSxJQUFJO0lBQ2YsUUFBUSxFQUFFLE1BQU07SUFDaEIsS0FBSyxFQTVWTSxLQUFLLEdBNlZqQjtFQUVBLEFBQUQsNEJBQVcsQ0FBQztJQUNWLGdCQUFnQixFL0YvV04sT0FBTztJK0ZnWGpCLGFBQWEsRUFBRSxLQUFLO0lBQ3BCLE1BQU0sRUFBRSxJQUFJLEdBQ2I7RUFZQSxBQUFELDBCQUFTLENBQUM7STdGdFdWLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBK0JFLE1BQU07SUE5QnRCLGNBQWMsRUE4QkUsTUFBTTtJNkZrVjVCLEdBQUcsRUFBRSxJQUFJO0lBQ1QsVUFBVSxFQUFFLElBQUksR0FDakI7RUFFQSxBQUFELCtCQUFjLENBQUM7STdGNVdmLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBOENFLEdBQUc7SUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztJQXhEM0IsbUJBQW1CLEU2RmlZUyxNQUFNO0k3RmhZMUIsV0FBVyxFNkZnWVMsTUFBTTtJQUNoQyxNQUFNLEVBQUUsT0FBTztJQUNmLEdBQUcsRUFBRSxJQUFJLEdBQ1Y7RUFFQSxBQUFELDhCQUFhLENBQUM7SUFDWixhQUFhLEVBQUUsR0FBRztJN0ZsWnBCLFlBQVksRTZGbVpJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJN0ZsWnBCLFFBQVEsRTZGa1pJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJN0ZqWmhCLElBQUksRTZGaVpJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJQUN0QixNQUFNLEVBQUUsR0FBRztJQUNYLEtBQUssRUFBRSxHQUFHLEdBQ1g7RUFJQSxBQUFELGdDQUFlLENBQUM7SUFDZCxLQUFLLEUvRm5hSyxPQUFPO0lFUW5CLFlBQVksRTZGNFpJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJN0YzWnBCLFFBQVEsRTZGMlpJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJN0YxWmhCLElBQUksRTZGMFpJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJQUN0QixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFNBQVMsRUFBRSxDQUFDO0lBQ1osUUFBUSxFQUFFLE1BQU07SUFDaEIsYUFBYSxFQUFFLFFBQVE7SUFDdkIsV0FBVyxFQUFFLE1BQU0sR0FDcEI7RUFFQSxBQUFELGdDQUFlLENBQUM7SUFDZCxLQUFLLEUvRjlhSyxPQUFPO0lFT25CLFlBQVksRTZGd2FJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJN0Z2YXBCLFFBQVEsRTZGdWFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJN0Z0YWhCLElBQUksRTZGc2FJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtJQUN0QixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJLEdBQ2xCO0U3RjFQQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7STZGOUg1QixBQUFBLGtCQUFrQixDQUFDO01BMlhmLE9BQU8sRUFBRSxJQUFJLEdBd0NoQjtNQXRYRSxBQUFELHdCQUFPLENBd1ZHO1E3RjNaVixPQUFPLEVBQUUsWUFBWTtRQUNyQixPQUFPLEVBQUUsV0FBVztRQUNwQixPQUFPLEVBQUUsSUFBSTtRQVhiLHNCQUFzQixFQStCRSxNQUFNO1FBOUJ0QixjQUFjLEVBOEJFLE1BQU07UUF6QzlCLG1CQUFtQixFNkZnYlcsT0FBTztRN0YvYTdCLFdBQVcsRTZGK2FXLE9BQU87UTdGdlpyQyx1QkFBdUIsRTZGd1pXLFVBQVU7UTdGdlpwQyxlQUFlLEU2RnVaVyxVQUFVO1FBQ3hDLEdBQUcsRUFBRSxJQUFJLEdBQ1Y7TUFsVUYsQUFBRCx3QkFBTyxDQTJVRztRN0Z2YlYsa0JBQWtCLEU2RndiVyxNQUFNO1E3RnZiM0IsVUFBVSxFNkZ1YlcsTUFBTSxHQUNoQztNQXpIRixBQUFELHlCQUFRLENBbUlHO1FBQ1AsS0FBSyxFQUFFLElBQUksR0FDWjs7QUczZkwsVUFBVTtFQUNSLFdBQVcsRUFBRSxPQUFPO0VBQ3BCLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLFlBQVksRUFBRSxJQUFJO0VBQ2xCLEdBQUcsRUFBRSxxREFBcUQsQ0FBQyxlQUFlLEVBQ3JFLG9EQUFvRCxDQUFDLGNBQWM7O0FBRzFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQW1CMEI7QUFnQzFCLEFBQUEsb0JBQW9CLENBQUM7RUFDbkIsZ0JBQWdCLEVBQUUsT0FBTztFQUN6QixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ2xHcUJGLE9BQU87RWtHcEJ0QixhQUFhLEVBQUUsSUFBSTtFQUNuQixVQUFVLEVsR0lFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxzQkFBc0I7RWtHSDlDLFVBQVUsRUFBRSxVQUFVO0VoR0d0QixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFZ0dXRSxNQUFNO0VoR1Z0QixjQUFjLEVnR1VFLE1BQU07RUFDOUIsV0FBVyxFQUFFLHFCQUFxQjtFQU9sQyxTQUFTLEVBQUUsS0FBSztFQUNoQixPQUFPLEVBQUUsSUFBSSxHQW9QZDtFQWxQRSxBQUFELDJCQUFRLENBQUM7SUFDUCxLQUFLLEVsR25ESyxPQUFPO0lrR29EakIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixNQUFNLEVBQUUsUUFBUSxHQUNqQjtFQVNBLEFBQUQsNEJBQVMsQ0FBQztJaEc1QlYsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFoQ2IsWUFBWSxFZ0c0REksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0loRzNEcEIsUUFBUSxFZ0cyREksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0loRzFEaEIsSUFBSSxFZ0cwREksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0loR2pEeEIsbUJBQW1CLEVnR3NEUyxNQUFNO0loR3JEMUIsV0FBVyxFZ0dxRFMsTUFBTTtJQUNoQyxVQUFVLEVBQUUsSUFBSTtJQUdoQixjQUFjLEVBQUUsR0FBRyxHQUNwQjtFQVVBLEFBQUQsMEJBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxJQUFJO0loR3RFZixtQkFBbUIsRWdHdUVTLE1BQU07SWhHdEUxQixXQUFXLEVnR3NFUyxNQUFNO0lBQ2hDLEdBQUcsRUFoRU8sR0FBRztJQW1GYixlQUFlLEVBQUUsTUFBTTtJQUN2QixlQUFlLEVBQUUsV0FBVztJQUc1QixLQUFLLEVBQUUsZ0JBQWdCO0lBQ3ZCLEtBQUssRUFBRSxXQUFXO0lBSWxCLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0VBSUEsQUFBRCw0QkFBUyxDQUFDO0lBQ1IsTUFBTSxFQUFFLEdBQUcsR0FDWjtFQU9BLEFBQUQsK0JBQVksRUFDWCwrQkFBVyxDQUFDO0lBQ1gsS0FBSyxFbEd2SUssT0FBTztJa0d3SWpCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsY0FBYyxFQUFFLE1BQU07SUFDdEIsV0FBVyxFQUFFLElBQUksR0FDbEI7RUFNQSxBQUFELCtCQUFZLENBQUM7SUFDWCxVQUFVLEVBQUUsTUFBTSxHQUNuQjtFQUtBLEFBQUQsK0JBQVksQ0FBQztJQUNYLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLFdBQVcsRUFBRSxNQUFNLEdBQ3BCO0VBVUEsQUFBRCwwQkFBTyxDQUFDO0loR2hJUixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQXJCYixtQkFBbUIsRWdHcUpTLE1BQU07SWhHcEoxQixXQUFXLEVnR29KUyxNQUFNO0loRzVIbEMsdUJBQXVCLEVnRzZIUyxNQUFNO0loRzVIOUIsZUFBZSxFZ0c0SFMsTUFBTTtJQUNwQyxhQUFhLEVBOUlILEdBQUc7SUErSWIsVUFBVSxFQUFFLFVBQVU7SUFNdEIsS0FBSyxFQXpKRSxPQUFPO0lBMEpkLFdBQVcsRUFBRSxtQkFBbUI7SUFDaEMsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixNQUFNLEVBM0pJLElBQUk7SUE0SmQsV0FBVyxFQUFFLElBQUksR0FnQmxCO0lBYkUsQUFBRCxnQ0FBTyxDQUFDO01BQUUsZ0JBQWdCLEVBaktuQixPQUFPLEdBaUsyQjtJQUN4QyxBQUFELGdDQUFPLENBQUM7TUFBRSxnQkFBZ0IsRUFyS25CLE9BQU8sR0FxSzJCO0lBQ3hDLEFBQUQsOEJBQUssQ0FBRztNQUFFLGdCQUFnQixFQTlLckIsT0FBTyxHQThLMkI7SUFDdEMsQUFBRCw4QkFBSyxDQUFHO01BQUUsZ0JBQWdCLEVBOUtyQixPQUFPLEdBOEsyQjtJQUN0QyxBQUFELDhCQUFLLENBQUc7TUFBRSxnQkFBZ0IsRUE5S3JCLE9BQU8sR0E4SzJCO0lBQ3RDLEFBQUQsOEJBQUssQ0FBRztNQUFFLGdCQUFnQixFQTlLckIsT0FBTyxHQThLMkI7SUFPdEMsQUFBRCxtQ0FBVSxDQUFDO01BQUUsZ0JBQWdCLEVBQUUsT0FBTyxHQUFJO0VBVTNDLEFBQUQsNEJBQVMsQ0FBQztJaEd6S1YsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0lBeEQzQixtQkFBbUIsRWdHOExTLE1BQU07SWhHN0wxQixXQUFXLEVnRzZMUyxNQUFNO0loR3JLbEMsdUJBQXVCLEVnR3NLUyxNQUFNO0loR3JLOUIsZUFBZSxFZ0dxS1MsTUFBTTtJaEc1SnRDLGlCQUFpQixFZ0c2SkksSUFBSTtJaEc1SmpCLFNBQVMsRWdHNEpJLElBQUk7SUFDdkIsR0FBRyxFQUFFLEdBQUc7SUFDUixVQUFVLEVBQUUsSUFBSTtJQUNoQixXQUFXLEVBQUUsSUFBSSxHQUNsQjtFQUVBLEFBQUQsaUNBQWMsQ0FBQztJaEduTGYsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUE4Q0UsR0FBRztJQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0lBeEQzQixtQkFBbUIsRWdHd01TLE1BQU07SWhHdk0xQixXQUFXLEVnR3VNUyxNQUFNO0lBQ2hDLEdBQUcsRUFBRSxHQUFHLEdBQ1Q7RUFRQSxBQUFELGlDQUFjLEdBQUksaUNBQWEsQ0FBQztJQUM5QixXQUFXLEVBQUUsR0FBRyxHQUNqQjtFQU1BLEFBQUQsa0NBQWUsQ0FBQztJQUNkLEtBQUssRWxHOU9LLE9BQU87SWtHK09qQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLFdBQVcsRUFBRSxJQUFJLEdBQ2xCO0VBS0EsQUFBRCwwQkFBTyxDQUFDO0loR2xOUixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQThDRSxHQUFHO0lBN0NuQixjQUFjLEVBNkNFLEdBQUc7SUF4RDNCLG1CQUFtQixFZ0d1T1MsTUFBTTtJaEd0TzFCLFdBQVcsRWdHc09TLE1BQU07SUFDaEMsR0FBRyxFQUFFLEdBQUcsR0FDVDtFQU1BLEFBQUQsNEJBQVMsQ0FBQztJaEcxUFYsWUFBWSxFZ0cyUEksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0loRzFQcEIsUUFBUSxFZ0cwUEksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0loR3pQaEIsSUFBSSxFZ0d5UEksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lBQ3RCLE1BQU0sRUFBRSxHQUFHO0lBQ1gsS0FBSyxFQUFFLElBQUksR0FNWjtJQUpFLEFBQUQsZ0NBQUssQ0FBQztNQUFFLGdCQUFnQixFQTFQbkIsT0FBTztNQTBQdUIsYUFBYSxFQUFFLFdBQVcsR0FBSTtJQUNoRSxBQUFELGdDQUFLLENBQUM7TUFBRSxnQkFBZ0IsRUExUG5CLE9BQU8sR0EwUHlCO0lBQ3BDLEFBQUQsZ0NBQUssQ0FBQztNQUFFLGdCQUFnQixFQTFQbkIsT0FBTyxHQTBQeUI7SUFDcEMsQUFBRCxnQ0FBSyxDQUFDO01BQUUsZ0JBQWdCLEVBMVBuQixPQUFPO01BMFB1QixhQUFhLEVBQUUsV0FBVyxHQUFJO0VBSWxFLEFBQUQsaUNBQWMsQ0FBQztJQUNiLGdCQUFnQixFbEcxTkgsT0FBTztJRTdDdEIsWUFBWSxFZ0d3UUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0loR3ZRcEIsUUFBUSxFZ0d1UUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0loR3RRaEIsSUFBSSxFZ0dzUUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0lBQ3RCLE1BQU0sRUFBRSxJQUFJO0lBQ1osTUFBTSxFQUFFLEtBQUs7SUFDYixLQUFLLEVBQUUsR0FBRyxHQUNYO0VBSUEsQUFBRCxnQ0FBYSxDQUFDO0lBQ1osYUFBYSxFQUFFLEdBQUc7SWhHalJwQixZQUFZLEVnR2tSSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SWhHalJwQixRQUFRLEVnR2lSSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SWhHaFJoQixJQUFJLEVnR2dSSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7SUFDdEIsTUFBTSxFQUFFLEdBQUc7SUFDWCxLQUFLLEVBQUUsR0FBRyxHQUlYO0lBRkUsQUFBRCxzQ0FBTyxDQUFDO01BQUUsZ0JBQWdCLEVBelFuQixPQUFPLEdBeVEyQjtJQUN4QyxBQUFELHNDQUFPLENBQUM7TUFBRSxnQkFBZ0IsRUF2UW5CLE9BQU8sR0F1UTJCO0VoR3JHekMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0lnRzVKNUIsQUFBQSxvQkFBb0IsQ0FBQztNQXFRakIsT0FBTyxFQUFFLElBQUksR0FFaEI7O0FHdlVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt5Q0F1QnlDO0FBd0J6QyxBQUFBLFlBQVksQ0FBQztFQUNYLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLFdBQVcsRUFBRSxxQkFBcUI7RUFFbEMsbUJBQW1CO0VBZ0ZuQixnQkFBZ0IsRUFpRmpCO0VBcktELEFBTUUsWUFOVSxDQU1WLGlCQUFpQixDQUFDLFFBQVEsQUFBQSxLQUFLLENBQUM7SUFDOUIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQTVCYSxHQUFHO0lBK0JuQixVQUFVLEVBQUUsVUFBVTtJQUN0QixNQUFNLEVBakNVLElBQUk7SUFrQ3BCLEtBQUssRUEzQlcsS0FBSztJQThCckIsT0FBTyxFQUFFLFlBQVk7SUFDckIsVUFBVSxFQUFFLE9BQU87SUFDbkIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENyR3BDUCxPQUFPO0lxR3FDakIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQWhDTSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsc0JBQXFCO0lBb0NqRCxXQUFXLEVBQUUsSUFBSTtJQUNqQixNQUFNLEVBQUUsT0FBTztJQUNmLFdBQVcsRUFBRSxNQUFNO0lBQ25CLFVBQVUsRUFBRSxpQkFBaUIsR0FzRDlCO0lBbEZILEFBOEJJLFlBOUJRLENBTVYsaUJBQWlCLENBQUMsUUFBUSxBQUFBLEtBQUssQUF3QjVCLE1BQU0sQ0FBQztNQUNOLFlBQVksRXJHL0NKLE9BQU8sR3FHZ0RoQjtJQWhDTCxBQTRDSSxZQTVDUSxDQU1WLGlCQUFpQixDQUFDLFFBQVEsQUFBQSxLQUFLLEFBc0M1QixPQUFPLENBQUM7TUFDUCxPQUFPLEVBQUUsRUFBRTtNQUNYLElBQUksRUFBRSxRQUFRO01BQ2QsS0FBSyxFQUFFLElBQUk7TUFDWCxNQUFNLEVBQUUsSUFBSTtNQUNaLFVBQVUsRUFBRSw0Q0FBNEMsQ0FBQyxTQUFTLENBQUMsV0FBYSxDQUFDLElBQUksR0FDdEY7SUFsREwsQUFvREksWUFwRFEsQ0FNVixpQkFBaUIsQ0FBQyxRQUFRLEFBQUEsS0FBSyxHQThDM0IsSUFBSSxDQUFDO01BRUwsSUFBSSxFQUFFLFFBQVE7TUFDZCxTQUFTLEVBQUUsQ0FBQztNQUNaLFFBQVEsRUFBRSxNQUFNO01BQ2hCLGFBQWEsRUFBRSxRQUFRO01BRXZCLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLEdBQUc7TUFDaEIsY0FBYyxFQUFFLEtBQUs7TUFDckIsV0FBVyxFQUFFLElBQUk7TUFDakIsY0FBYyxFQUFFLElBQUk7TUFDcEIsS0FBSyxFckduREcsT0FBTztNcUdxRGYsU0FBUyxFQUFFLGVBQWUsR0FDM0I7SUFuRUwsQUF1RUksWUF2RVEsQ0FNVixpQkFBaUIsQ0FBQyxRQUFRLEFBQUEsS0FBSyxDQWlFN0Isb0JBQW9CLENBQUM7TUFDbkIsT0FBTyxFQUFFLElBQUksR0FDZDtJQXpFTCxBQTJFSSxZQTNFUSxDQU1WLGlCQUFpQixDQUFDLFFBQVEsQUFBQSxLQUFLLEFBcUU1QixNQUFNLENBQUM7TUFDTixPQUFPLEVBQUUsRUFBRTtNQUNYLElBQUksRUFBRSxRQUFRO01BQ2QsS0FBSyxFQUFFLElBQUk7TUFDWCxNQUFNLEVBQUUsSUFBSTtNQUNaLFVBQVUsRUFBRSwwUEFBd0IsQ0FBQyxTQUFTLENBQUMsV0FBYSxDQUFDLElBQUksR0FDbEU7RUFqRkwsQUFzRkUsWUF0RlUsQ0FzRlYsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUM7SUFHakMsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixjQUFjLEVBQUUsQ0FBQztJQUNqQixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsSUFBSTtJQUNwQixLQUFLLEVyRzNHSyxPQUFPLEdxR2lMbEI7SUFwS0gsQUFnR0ksWUFoR1EsQ0FzRlYsaUJBQWlCLENBQUMsZ0JBQWdCLEdBVTlCLGdCQUFnQixHQUFHLFFBQVEsQ0FBQztNQUU1QixVQUFVLEVBQUUsR0FBRztNQUlmLFVBQVUsRUFBRSxVQUFVO01BQ3RCLEtBQUssRUFwSFMsS0FBSztNQXFIbkIsVUFBVSxFQUFFLE9BQU87TUFDbkIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENyRzFIVCxPQUFPO01xRzJIZixhQUFhLEVBQUUsR0FBRztNQUNsQixVQUFVLEVBckhJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFFLElBQUcsQ0FBQyxzQkFBcUIsRUFDdEMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUUsSUFBRyxDQUFDLHNCQUFxQjtNQXNIbEQsUUFBUSxFQUFFLE1BQU0sR0FDakI7SUE5R0wsQUFnSEksWUFoSFEsQ0FzRlYsaUJBQWlCLENBQUMsZ0JBQWdCLENBMEJoQyxRQUFRLENBQUMsRUFBRSxDQUFDO01BQ1YsT0FBTyxFQUFFLEtBQUssR0FLZjtNQXRITCxBQW1ITSxZQW5ITSxDQXNGVixpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0EwQmhDLFFBQVEsQ0FBQyxFQUFFLEdBR1AsRUFBRSxDQUFDO1FBQ0gsVUFBVSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENyR3RJZixPQUFPLEdxR3VJZDtJQXJIUCxBQXdISSxZQXhIUSxDQXNGVixpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FrQ2hDLFFBQVEsQ0FBQyxFQUFFLENBQUM7TUFDVixPQUFPLEVBQUUsSUFBSTtNQUNiLFdBQVcsRUFBRSxNQUFNO01BQ25CLGVBQWUsRUFBRSxhQUFhO01BQzlCLEdBQUcsRUFBRSxHQUFHO01BR1IsU0FBUyxFQUFFLENBQUM7TUFFWixPQUFPLEVBQUUsbUJBQW1CO01BRzVCLFdBQVcsRUFBRSxxQkFBcUI7TUFDbEMsU0FBUyxFQUFFLElBQUk7TUFDZixXQUFXLEVBQUUsR0FBRztNQUNoQixjQUFjLEVBQUUsQ0FBQztNQUNqQixXQUFXLEVBQUUsSUFBSTtNQUNqQixLQUFLLEVBQUUsT0FBTyxHQTBCZjtNQW5LTCxBQTJJTSxZQTNJTSxDQXNGVixpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FrQ2hDLFFBQVEsQ0FBQyxFQUFFLEFBbUJSLE1BQU0sQ0FBQztRQUdOLFVBQVUsRXJHckpKLE9BQU8sR3FHc0pkO01BL0lQLEFBaUpNLFlBakpNLENBc0ZWLGlCQUFpQixDQUFDLGdCQUFnQixDQWtDaEMsUUFBUSxDQUFDLEVBQUUsR0F5QlAsSUFBSSxDQUFDO1FBQ0wsUUFBUSxFQUFFLE1BQU07UUFDaEIsYUFBYSxFQUFFLFFBQVE7UUFDdkIsV0FBVyxFQUFFLE1BQU0sR0FDcEI7TUFySlAsQUEySlEsWUEzSkksQ0FzRlYsaUJBQWlCLENBQUMsZ0JBQWdCLENBa0NoQyxRQUFRLENBQUMsRUFBRSxBQWtDUixZQUFZLEFBQ1YsTUFBTSxDQUFDO1FBQ04sT0FBTyxFQUFFLEVBQUU7UUFDWCxJQUFJLEVBQUUsUUFBUTtRQUNkLEtBQUssRUFBRSxJQUFJO1FBQ1gsTUFBTSxFQUFFLElBQUk7UUFDWixVQUFVLEVBQUUsbVFBQXdCLENBQUMsU0FBUyxDQUFDLFdBQWEsQ0FBQyxJQUFJLEdBQ2xFOztBQ2hOVDs7Ozs7Ozs7O2tCQVNrQjtBQTRDbEIsQUFBQSxrQkFBa0IsQ0FBQztFQUNqQixRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsWUFBWTtFQUNyQixXQUFXLEVBQUUscUJBQXFCO0VBNkVsQyx1QkFBdUI7RUEwQ3ZCLHlCQUF5QjtFQUV6Qjs7d0VBRXNFO0VBb0R0RSwrQ0FBK0M7RUF1RC9DOzsrREFFNkQ7RUFzSjdEOzs7d0VBR3NFO0VBYXRFOzttRUFFaUU7RUFjakU7OzsrQ0FHNkM7RUF5QjdDOzt5Q0FFdUM7RUFDdkM7OztxREFHbUQ7RUFrQm5ELGtCQUFrQixFQStFbkI7RUEvaEJFLEFBQUQsMkJBQVUsQ0FBQztJQUNULE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLEdBQUcsRUEzQ2lCLEdBQUc7SUErQ3ZCLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLEtBQUssRUFsRGUsS0FBSztJQW1EekIsTUFBTSxFQWxEYyxJQUFJO0lBbUR4QixPQUFPLEVBQUUsWUFBWTtJQUNyQixVQUFVLEVBQUUsT0FBTztJQUNuQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3RHeENQLE9BQU87SXNHeUNqQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBdkJVLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxzQkFBcUI7SUF3QnJELE1BQU0sRUFBRSxPQUFPO0lBQ2YsV0FBVyxFQUFFLE1BQU07SUFDbkIsVUFBVSxFQUFFLGlCQUFpQixHQVM5QjtJQTFCQSxBQW1CQywyQkFuQlEsQUFtQlAsTUFBTSxDQUFDO01BQ04sWUFBWSxFdEcvQ0osT0FBTyxHc0dnRGhCO0lBckJGLEFBdUJDLDJCQXZCUSxBQXVCUCxRQUFRLENBQUM7TUFDUixZQUFZLEV0RzVESixPQUFPLEdzRzZEaEI7RUFHRixBQUFELGdDQUFlLENBQUM7SUFDZCxJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxPQUFPLEdBQ2Y7RUFFQSxBQUFELGlDQUFnQixDQUFDO0lBR2YsSUFBSSxFQUFFLFFBQVE7SUFDZCxTQUFTLEVBQUUsQ0FBQztJQUNaLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGFBQWEsRUFBRSxRQUFRO0lBQ3ZCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFHakIsY0FBYyxFQUFFLEtBQUs7SUFDckIsS0FBSyxFdEc3Q0ssT0FBTztJc0crQ2pCLFNBQVMsRUFBRSxlQUFlLEdBQzNCO0VBRUEsQUFBRCxpQ0FBZ0IsQ0FBQztJQUNmLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLE9BQU87SUFDZCxVQUFVLEVBQUUsY0FBYyxHQUMzQjtFQUVBLEFBQUQsMkJBQVUsQUFBQSxRQUFRLENBQUUsaUNBQWUsQ0FBQztJQUNsQyxTQUFTLEVBQUUsY0FBYyxHQUMxQjtFQUVBLEFBQUQseUJBQVEsQ0FBQztJQUNQLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEdBQUcsRUFBRSxnQkFBZ0I7SUFDckIsSUFBSSxFQUFFLENBQUM7SUFDUCxPQUFPLEVBQUUsRUFBRTtJQUNYLE9BQU8sRUFBRSxJQUFJO0lBQ2IsVUFBVSxFQUFFLE9BQU87SUFDbkIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEN0R2pHUCxPQUFPO0lzR2tHakIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQS9FVSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBRSxJQUFHLENBQUMsc0JBQXFCLEVBQ3RDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFFLElBQUcsQ0FBQyxzQkFBcUI7SUErRXhELFFBQVEsRUFBRSxNQUFNLEdBQ2pCO0VBSUEsQUFBRCwyQkFBVSxDQUFDO0lBQ1QsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBdEhlLEtBQUs7SUF1SHpCLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7RUFFQSxBQUFELDBCQUFTLENBQUM7SUFDUixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxhQUFhO0lBQzlCLEdBQUcsRUFBRSxHQUFHO0lBRVIsT0FBTyxFQUFFLG1CQUFtQjtJQUM1QixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRUFBRSxPQUFPO0lBQ2QsTUFBTSxFQUFFLE9BQU8sR0FVaEI7SUFyQkEsQUFhQywwQkFiTyxBQWFOLE1BQU0sQ0FBQztNQUNOLFVBQVUsRXRHbkhGLE9BQU8sR3NHb0hoQjtJQWZGLEFBa0JDLDBCQWxCTyxBQWtCTixVQUFVLENBQUM7TUFDVixLQUFLLEV0R3BHRyxPQUFPLEdzR3FHaEI7RUFHRixBQUFELGdDQUFlLENBQUM7SUFDZCxJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRXRHaEpLLE9BQU8sR3NHaUpsQjtFQUVBLEFBQUQsd0JBQU8sQ0FBQztJQUNOLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLEdBQUc7SUFDVixVQUFVLEV0Ry9JQSxPQUFPLEdzR2dKbEI7RUFPQSxBQUFELDZCQUFZLENBQUM7SUFDWCxJQUFJLEVBQUUsUUFBUTtJQUNkLFNBQVMsRUFBRSxDQUFDO0lBQ1osT0FBTyxFQUFFLGNBQWMsR0FDeEI7RUFFQSxBQUFELDBCQUFTLENBQUM7SUFFUixRQUFRLEVBQUUsUUFBUTtJQUNsQixVQUFVLEVBQUUsVUFBVTtJQUN0QixPQUFPLEVBQUUsSUFBSTtJQUdiLGVBQWUsRUFBRSxhQUFhO0lBQzlCLEtBQUssRUF4S2UsS0FBSztJQXlLekIsYUFBYSxFQUFFLElBQUksR0FDcEI7RUFFQSxBQUFELHlCQUFRLENBQUM7SUFJUCxVQUFVLEVBQUUsVUFBVTtJQUN0QixJQUFJLEVBQUUsUUFBUTtJQUNkLE9BQU8sRUFBRSxJQUFJO0lBQ2IsY0FBYyxFQUFFLE1BQU07SUFDdEIsZUFBZSxFQUFFLE1BQU07SUFDdkIsR0FBRyxFQTlLaUIsR0FBRztJQStLdkIsS0FBSyxFQWxMZSxLQUFLO0lBbUx6QixNQUFNLEVBbExjLElBQUk7SUFtTHhCLE9BQU8sRUFoTGEsR0FBRyxDQUNILElBQUk7SUFnTHhCLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDdEdyTFAsT0FBTztJc0dzTGpCLGFBQWEsRUFwTE8sR0FBRztJQXFMdkIsTUFBTSxFQUFFLE9BQU87SUFDZixVQUFVLEVBQUUsa0NBQWtDLEdBZS9DO0lBL0JBLEFBa0JDLHlCQWxCTSxBQWtCTCxNQUFNLENBQUM7TUFDTixZQUFZLEV0RzFMSixPQUFPLEdzRzJMaEI7SUFwQkYsQUF1QkMseUJBdkJNLEFBdUJMLFdBQVcsQ0FBQztNQUNYLFlBQVksRXRHeE1KLE9BQU8sR3NHeU1oQjtJQXpCRixBQTRCQyx5QkE1Qk0sQUE0QkwsUUFBUSxDQUFDO01BQ1IsTUFBTSxFQTNMYyxLQUFLLENBMkxRLEtBQUssQ0E1THBCLE9BQU8sR0E2TDFCO0VBS0YsQUFBRCxnQ0FBZSxDQUFDO0lBQ2QsUUFBUSxFQUFFLFFBQVE7SUFDbEIsR0FBRyxFQUFFLGdCQUFnQjtJQUNyQixJQUFJLEVBQUUsQ0FBQztJQUNQLE9BQU8sRUFBRSxFQUFFO0lBQ1gsVUFBVSxFQUFFLFVBQVU7SUFFdEIsS0FBSyxFQWxOZSxLQUFLO0lBbU56QixPQUFPLEVBQUUsY0FBYztJQUN2QixVQUFVLEVBQUUsT0FBTztJQUNuQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3RHck5QLE9BQU87SXNHc05qQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBbk1VLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFFLElBQUcsQ0FBQyxzQkFBcUIsRUFDdEMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUUsSUFBRyxDQUFDLHNCQUFxQixHQXlNekQ7SUFuQkEsQUFlQyxnQ0FmYSxBQWVaLE1BQU0sQ0FBQztNQUNOLElBQUksRUFBRSxJQUFJO01BQ1YsS0FBSyxFQUFFLENBQUMsR0FDVDtFQUdGLEFBQUQsdUNBQXNCLENBQUM7SUFDckIsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsR0FBRztJQUNSLGFBQWEsRUFBRSxHQUFHLEdBQ25CO0VBRUEsQUFBRCx1Q0FBc0IsQ0FBQztJQUNyQixJQUFJLEVBQUUsUUFBUTtJQUNkLFNBQVMsRUFBRSxDQUFDO0lBQ1osTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsS0FBSztJQUNkLFVBQVUsRUFBRSxPQUFPO0lBQ25CLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDdEc3T1AsT0FBTztJc0c4T2pCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFdBQVcsRUFBRSxxQkFBcUI7SUFDbEMsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixLQUFLLEV0R3BOSyxPQUFPO0lzR3FOakIsTUFBTSxFQUFFLE9BQU8sR0FXaEI7SUF2QkEsQUFjQyx1Q0Fkb0IsQUFjbkIsTUFBTSxDQUFDO01BQ04sT0FBTyxFQUFFLElBQUk7TUFDYixZQUFZLEV0Ry9QSixPQUFPLEdzR2dRaEI7SUFqQkYsQUFvQkMsdUNBcEJvQixBQW9CbkIsUUFBUSxDQUFDO01BQ1IsSUFBSSxFQUFFLFFBQVEsR0FDZjtFQU1GLEFBQUQsK0JBQWMsQ0FBQztJQUNiLElBQUksRUFBRSxRQUFRO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsS0FBSztJQUNyQixjQUFjLEVBQUUsU0FBUztJQUN6QixLQUFLLEVBblFlLE9BQU8sR0FvUTVCO0VBRUEsQUFBRCwrQkFBYyxDQUFDO0lBQ2IsSUFBSSxFQUFFLFFBQVE7SUFDZCxTQUFTLEVBQUUsQ0FBQztJQUNaLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFQTdRZSxPQUFPO0lBOFEzQixXQUFXLEVBQUUsTUFBTTtJQUNuQixRQUFRLEVBQUUsTUFBTTtJQUNoQixhQUFhLEVBQUUsUUFBUSxHQUN4QjtFQUVBLEFBQUQsMEJBQVMsQ0FBQztJQUNSLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsR0FBRyxFQTlSaUIsSUFBSTtJQStSeEIsS0FBSyxFQWpTZSxLQUFLO0lBa1N6QixNQUFNLEVBalNjLEtBQUssR0FrUzFCO0VBRUEsQUFBRCx5QkFBUSxDQUFDO0lBQ1AsVUFBVSxFQUFFLFVBQVU7SUFDdEIsSUFBSSxFQUFFLEtBQUs7SUFDWCxTQUFTLEVBQUUsQ0FBQztJQUNaLE9BQU8sRUFBRSxJQUFJO0lBQ2IsY0FBYyxFQUFFLE1BQU0sR0FDdkI7RUFFQSxBQUFELGdDQUFlLENBQUM7SUFDZCxPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxhQUFhO0lBQzlCLEdBQUcsRUFBRSxHQUFHO0lBQ1IsYUFBYSxFQUFFLEdBQUcsR0FDbkI7RUFFQSxBQUFELDhCQUFhLENBQUM7SUFDWixJQUFJLEVBQUUsUUFBUTtJQUNkLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFHaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFdEczUkssT0FBTztJc0c0UmpCLFdBQVcsRUFBRSxNQUFNLEdBQ3BCO0VBRUEsQUFBRCx1QkFBTSxDQUFDO0lBQ0wsSUFBSSxFQUFFLFFBQVE7SUFDZCxPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixhQUFhLEVBQUUsR0FBRztJQUNsQixLQUFLLEVBQUUsT0FBTztJQUNkLE1BQU0sRUFBRSxPQUFPLEdBbUJoQjtJQTVCQSxBQVdDLHVCQVhJLEFBV0gsTUFBTSxDQUFDO01BQ04sVUFBVSxFdEczVUYsT0FBTyxHc0c0VWhCO0lBYkYsQUFnQkMsdUJBaEJJLEFBZ0JILGVBQWUsQ0FBQztNQUNmLE1BQU0sRUFBRSxPQUFPLEdBS2hCO01BdEJGLEFBbUJHLHVCQW5CRSxBQWdCSCxlQUFlLEFBR2IsTUFBTSxDQUFDO1FBQ04sVUFBVSxFQUFFLElBQUksR0FDakI7SUFyQkosQUF5QkMsdUJBekJJLEFBeUJILGVBQWUsQ0FBQztNQUNmLFVBQVUsRUFBRSxNQUFNLEdBQ25CO0VBR0YsQUFBRCx1QkFBTSxDQUFDO0lBQ0wsT0FBTyxFQUFFLElBQUksR0FDZDtFQUVBLEFBQUQsNEJBQVcsQ0FBQztJQUNWLElBQUksRUFBRSxLQUFLO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixXQUFXLEVBQUUsSUFBSTtJQUNqQixVQUFVLEVBQUUsTUFBTTtJQUNsQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLEtBQUssRXRHbFdLLE9BQU8sR3NHbVdsQjtFQUVBLEFBQUQsd0JBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxJQUFJLEdBQ2Q7RUFFQSxBQUFELHVCQUFNLENBQUM7SUFDTCxRQUFRLEVBQUUsUUFBUTtJQUNsQixJQUFJLEVBQUUsS0FBSztJQUNYLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsTUFBTSxFQXhXYyxJQUFJO0lBeVd4QixNQUFNLEVBQUUsT0FBTyxHQUtoQjtJQVpBLEFBU0MsdUJBVEksQUFTSCxXQUFXLENBQUM7TUFDWCxNQUFNLEVBQUUsT0FBTyxHQUNoQjtFQUdGLEFBQUQsOEJBQWEsQ0FBQztJQUVaLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE9BQU8sRUFBRSxDQUFDO0lBQ1YsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixLQUFLLEVBQUUsSUFBcUM7SUFDNUMsTUFBTSxFQUFFLElBQXFDO0lBQzdDLGFBQWEsRUFyWE8sR0FBRztJQXNYdkIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixLQUFLLEV0R3pXSyxPQUFPLEdzRzBXbEI7RUFFQSxBQUFELHVCQUFNLEFBQUEsU0FBUyxDQUFFLDhCQUFZLENBQUM7SUFDNUIsVUFBVSxFdEc3WUEsT0FBTztJc0c4WWpCLEtBQUssRXRHcFlLLE9BQU8sR3NHcVlsQjtFQUVBLEFBQUQsdUJBQU0sQUFBQSxXQUFXLENBQUUsOEJBQVksQ0FBQztJQUM5QixLQUFLLEV0R2haSyxPQUFPO0lzR2laakIsVUFBVSxFQUFFLElBQUksR0FDakI7RUFFQSxBQUFELHVCQUFNLEFBQUEsSUFBSyxDQUFBLFdBQVcsQ0FBQyxNQUFNLENBQUUsOEJBQVksQ0FBQztJQUMxQyxVQUFVLEV0R2hhQSxPQUFPLEdzR2lhbEI7RUFNQSxBQUFELHVCQUFNLEFBQUEsWUFBWSxBQUFBLFFBQVEsRUFDekIsdUJBQUssQUFBQSxTQUFTLEFBQUEsUUFBUSxFQUN0Qix1QkFBSyxBQUFBLE9BQU8sQUFBQSxRQUFRLENBQUM7SUFDcEIsT0FBTyxFQUFFLEVBQUU7SUFDWCxRQUFRLEVBQUUsUUFBUTtJQUNsQixHQUFHLEVBblppQixHQUFHO0lBb1p2QixNQUFNLEVBcFpjLEdBQUc7SUFxWnZCLElBQUksRUFBRSxDQUFDO0lBQ1AsS0FBSyxFQUFFLENBQUM7SUFDUixVQUFVLEV0R2hiQSxPQUFPLEdzR2libEI7RUFLQSxBQUFELHVCQUFNLEFBQUEsU0FBUyxBQUFBLFFBQVEsQ0FBQztJQUN0QixJQUFJLEVBQUUsR0FBRyxHQUNWO0VBRUEsQUFBRCx1QkFBTSxBQUFBLE9BQU8sQUFBQSxRQUFRLENBQUM7SUFDcEIsS0FBSyxFQUFFLEdBQUcsR0FDWDtFQUdBLEFBQUQsdUJBQU0sQUFBQSxTQUFTLEFBQUEsT0FBTyxBQUFBLFFBQVEsQ0FBQztJQUM3QixPQUFPLEVBQUUsSUFBSSxHQUNkO0VBTUEsQUFBRCwwQkFBUyxDQUFFLHdCQUFNLENBQUM7SUFDaEIsSUFBSSxFQUFFLEtBQUs7SUFDWCxVQUFVLEVBQUUsQ0FBQyxHQUNkO0VBRUEsQUFBRCwwQkFBUyxDQUFFLHVCQUFLLENBQUM7SUFDZixNQUFNLEVBQUUsSUFBSSxHQUNiO0VBRUEsQUFBRCwwQkFBUyxDQUFFLDhCQUFZLENBQUM7SUFDdEIsS0FBSyxFQUFFLElBQUk7SUFHWCxNQUFNLEVBQUUsZ0JBQW1DLEdBQzVDO0VBRUEsQUFBRCx1QkFBTSxBQUFBLFNBQVMsQ0FBRSw4QkFBWTtFQUM1Qix1QkFBSyxBQUFBLE9BQU8sQ0FBRSw4QkFBWTtFQUMxQix1QkFBSyxBQUFBLFNBQVMsQUFBQSxNQUFNLENBQUUsOEJBQVk7RUFDbEMsdUJBQUssQUFBQSxPQUFPLEFBQUEsTUFBTSxDQUFFLDhCQUFZLENBQUM7SUFDaEMsVUFBVSxFdEd4ZEEsT0FBTztJc0d5ZGpCLEtBQUssRUFBRSxPQUFPLEdBQ2Y7RUFTQSxBQUFELHVCQUFNLEFBQUEsU0FBUyxDQUFFLDhCQUFZLENBQUM7SUFDNUIsYUFBYSxFQTdjTyxHQUFHLENBNmNRLENBQUMsQ0FBQyxDQUFDLENBN2NkLEdBQUc7SUE4Y3ZCLFlBQVksRUEvY1EsR0FBRyxHQWdkeEI7RUFFQSxBQUFELHVCQUFNLEFBQUEsT0FBTyxDQUFFLDhCQUFZLENBQUM7SUFDMUIsYUFBYSxFQUFFLENBQUMsQ0FsZEksR0FBRyxDQUFILEdBQUcsQ0FrZDBCLENBQUM7SUFDbEQsV0FBVyxFQXBkUyxHQUFHLEdBcWR4QjtFQUdBLEFBQUQsdUJBQU0sQUFBQSxTQUFTLEFBQUEsT0FBTyxDQUFFLDhCQUFZLENBQUM7SUFDbkMsYUFBYSxFQXhkTyxHQUFHO0lBeWR2QixZQUFZLEVBQUUsQ0FBQztJQUNmLFdBQVcsRUFBRSxDQUFDLEdBQ2Y7RUFJRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7SUFwWnZCLEFBQUQseUJBQVEsQ0FxWkc7TUFDUCxjQUFjLEVBQUUsTUFBTTtNQUN0QixTQUFTLEVBQUUsa0JBQWtCLEdBQzlCO0lBellGLEFBQUQsMkJBQVUsQ0EyWUc7TUFDVCxLQUFLLEVBQUUsSUFBSTtNQUNYLE9BQU8sRUFBRSxJQUFJO01BQ2IsU0FBUyxFQUFFLElBQUk7TUFDZixPQUFPLEVBQUUsR0FBRztNQUNaLEdBQUcsRUFBRSxHQUFHLEdBQ1Q7SUEzWUYsQUFBRCwwQkFBUyxDQTZZRztNQUNSLE9BQU8sRUFBRSxRQUFRO01BQ2pCLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDdEc5ZlQsT0FBTztNc0crZmYsYUFBYSxFQUFFLEdBQUcsR0FNbkI7TUF0WkYsQUFrQkMsMEJBbEJPLEFBa0JOLFVBQVUsQ0FnWUc7UUFDVixZQUFZLEV0RzFnQk4sT0FBTztRc0cyZ0JiLFVBQVUsRXRHOWdCSixPQUFPLEdzRytnQmQ7SUF6WEosQUFBRCx3QkFBTyxDQTRYRztNQUNOLEtBQUssRUFBRSxJQUFJO01BQ1gsTUFBTSxFQUFFLEdBQUcsR0FDWjtJQUlBLEFBQUQseUJBQVEsR0FBSSx5QkFBTyxDQUFDO01BQ2xCLE9BQU8sRUFBRSxJQUFJLEdBQ2Q7SUFuTkYsQUF5QkMsdUJBekJJLEFBeUJILGVBQWUsQ0E0TE07TUFDcEIsVUFBVSxFQUFFLE9BQU8sR0FDcEI7SUF4WEYsQUFBRCwwQkFBUyxDQTZYRztNQUNSLGNBQWMsRUFBRSxNQUFNO01BQ3RCLEtBQUssRUFBRSxJQUFJO01BQ1gsR0FBRyxFQUFFLElBQUksR0FDVjtJQXJYRixBQUFELHlCQUFRLENBdVhHO01BQ1AsS0FBSyxFQUFFLElBQUksR0FDWjtJQXRWRixBQUFELGdDQUFlLENBd1ZHO01BQ2QsU0FBUyxFQUFFLGtCQUFrQixHQUM5QjtJQTVRRixBQUFELDBCQUFTLENBOFFHO01BQ1IsZUFBZSxFQUFFLE1BQU07TUFDdkIsS0FBSyxFQUFFLElBQUk7TUFDWCxNQUFNLEVBQUUsSUFBSSxHQUNiO0lBMVFGLEFBQUQseUJBQVEsQ0E0UUc7TUFDUCxJQUFJLEVBQUUsUUFBUTtNQUNkLEtBQUssRUFBRSxJQUFJO01BQ1gsU0FBUyxFQWhpQlMsS0FBaUIsR0FpaUJwQztJQWhIRixBQUFELDBCQUFTLENBQUUsdUJBQUssQ0FrSEc7TUFDZixNQUFNLEVBemlCWSxJQUFJLEdBMGlCdkI7SUFoSEYsQUFBRCwwQkFBUyxDQUFFLDhCQUFZLENBa0hHO01BQ3RCLE1BQU0sRUFBRSxJQUFxQyxHQUM5Qzs7QUNwbEJMLEFBQUEscUJBQXFCLENBQUM7RXJHcUVwQixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQThDRSxHQUFHO0VBN0NuQixjQUFjLEVBNkNFLEdBQUc7RUF4RDNCLG1CQUFtQixFcUdoRE8sTUFBTTtFckdpRHhCLFdBQVcsRXFHakRPLE1BQU07RUFDaEMsVUFBVSxFQUFFLElBQUksR0FnQmpCO0VBbkJELEFBS0UscUJBTG1CLENBS25CLEtBQUssQ0FBQztJQUNKLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLE1BQU0sRUFBRSxPQUFPLEdBVWhCO0lBbEJILEFBVUkscUJBVmlCLENBS25CLEtBQUssQ0FLSCxDQUFDLEFBQUEsS0FBSyxDQUFDO01BQ0wsU0FBUyxFQUFFLElBQUksR0FDaEI7SUFaTCxBQWNJLHFCQWRpQixDQUtuQixLQUFLLENBU0gsSUFBSSxDQUFDO01BQ0gsV0FBVyxFQUFFLEdBQUc7TUFDaEIsU0FBUyxFQUFFLElBQUksR0FDaEI7O0FBSUwsQUFBQSxzQkFBc0IsQ0FBQztFckdnRHJCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBWGIsc0JBQXNCLEVBOENFLEdBQUc7RUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztFcUduRjNCLFNBQVMsRUFBRSxJQUFJO0VBQ2YsTUFBTSxFQUFFLFVBQVU7RUFDbEIsT0FBTyxFQUFFLElBQUksR0FxQmQ7RUF6QkQsQUFNRSxzQkFOb0IsR0FNbEIsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNWLFdBQVcsRUFBRSxJQUFJLEdBQ2xCO0VBUkgsQUFVRSxzQkFWb0IsQ0FVcEIsWUFBWSxDQUFDO0lyR3NDYixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQThDRSxHQUFHO0lBN0NuQixjQUFjLEVBNkNFLEdBQUc7SUF4RDNCLG1CQUFtQixFcUdqQlMsTUFBTTtJckdrQjFCLFdBQVcsRXFHbEJTLE1BQU07SXJHMENsQyx1QkFBdUIsRXFHekNTLE1BQU07SXJHMEM5QixlQUFlLEVxRzFDUyxNQUFNO0lBQ3BDLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEdBQUcsRUFBRSxJQUFJLEdBU1Y7SUFSQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7TUFoQjVCLEFBVUUsc0JBVm9CLENBVXBCLFlBQVksQ0FBQztRQU9ULFVBQVUsRUFBRSxJQUFJO1FBQ2hCLGNBQWMsRUFBRSxNQUFNO1FBQ3RCLFdBQVcsRUFBRSxVQUFVO1FBQ3ZCLFdBQVcsRUFBRSxDQUFDO1FBQ2QsVUFBVSxFQUFFLElBQUk7UUFDaEIsR0FBRyxFQUFFLElBQUksR0FFWjs7QUFHSCxBQUFBLGtCQUFrQixDQUFDO0VyR3FCakIsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFYYixzQkFBc0IsRUErQkUsTUFBTTtFQTlCdEIsY0FBYyxFQThCRSxNQUFNO0VxR3pDOUIsTUFBTSxFQUFFLE1BQU0sR0E0RGY7RUE5REQsQUFJRSxrQkFKZ0IsR0FJZCxHQUFHLENBQUM7SXJHaUJOLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBOENFLEdBQUc7SUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztJQXhEM0IsbUJBQW1CLEVxR0lTLE1BQU07SXJHSDFCLFdBQVcsRXFHR1MsTUFBTTtJQUVoQyxVQUFVLEVBQUUsSUFBSTtJQUNoQixhQUFhLEVBQUUsY0FBYyxHQW9EOUI7SUE3REgsQUFXSSxrQkFYYyxHQUlkLEdBQUcsQ0FPSCxJQUFJLENBQUM7TUFDSCxTQUFTLEVBQUUsSUFBSTtNQUNmLE1BQU0sRUFBRSxPQUFPLEdBQ2hCO0lBZEwsQUFnQkksa0JBaEJjLEdBSWQsR0FBRyxDQVlILENBQUMsQUFBQSxLQUFLLENBQUM7TUFDTCxTQUFTLEVBQUUsSUFBSTtNQUNmLE1BQU0sRUFBRSxPQUFPLEdBQ2hCO0lBbkJMLEFBcUJJLGtCQXJCYyxHQUlkLEdBQUcsQ0FpQkgsYUFBYTtJQXJCakIsa0JBQWtCLEdBSWQsR0FBRyxDQWtCSCxhQUFhO0lBdEJqQixrQkFBa0IsR0FJZCxHQUFHLENBbUJILGVBQWUsQ0FBQztNckdGbEIsT0FBTyxFQUFFLFlBQVk7TUFDckIsT0FBTyxFQUFFLFdBQVc7TUFDcEIsT0FBTyxFQUFFLElBQUk7TUFYYixzQkFBc0IsRUE4Q0UsR0FBRztNQTdDbkIsY0FBYyxFQTZDRSxHQUFHLEdxR2pDeEI7SUF6QkwsQUEyQkksa0JBM0JjLEdBSWQsR0FBRyxDQXVCSCxhQUFhLENBQUM7TXJHcENoQixZQUFZLEVxR3FDTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TXJHcEN0QixRQUFRLEVxR29DTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TXJHbkNsQixJQUFJLEVxR21DTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7TUFDdEIsU0FBUyxFQUFFLEtBQUssR0FJakI7TUFqQ0wsQUE4Qk0sa0JBOUJZLEdBSWQsR0FBRyxDQXVCSCxhQUFhLENBR1gsSUFBSSxDQUFDO1FBQ0gsTUFBTSxFQUFFLE9BQU8sR0FDaEI7SUFoQ1AsQUFtQ0ksa0JBbkNjLEdBSWQsR0FBRyxDQStCSCxhQUFhO0lBbkNqQixrQkFBa0IsR0FJZCxHQUFHLENBZ0NILGVBQWUsQ0FBQztNckdUbEIsdUJBQXVCLEVxR1VXLE1BQU07TXJHVGhDLGVBQWUsRXFHU1csTUFBTSxHQUNyQztJQXRDTCxBQXdDSSxrQkF4Q2MsR0FJZCxHQUFHLENBb0NILGFBQWEsQ0FBQztNQUNaLFNBQVMsRUFBRSxLQUFLLEdBSWpCO01BSEMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO1FBMUM5QixBQXdDSSxrQkF4Q2MsR0FJZCxHQUFHLENBb0NILGFBQWEsQ0FBQztVQUdWLFNBQVMsRUFBRSxLQUFLLEdBRW5CO0lBN0NMLEFBK0NJLGtCQS9DYyxHQUlkLEdBQUcsQ0EyQ0gsZUFBZSxDQUFDO01BQ2QsU0FBUyxFQUFFLElBQUksR0FDaEI7SUFqREwsQUFtREksa0JBbkRjLEdBSWQsR0FBRyxBQStDRixXQUFXLENBQUM7TUFDWCxVQUFVLEVBQUUsSUFBSSxHQVFqQjtNQTVETCxBQXNETSxrQkF0RFksR0FJZCxHQUFHLEFBK0NGLFdBQVcsQ0FHVixJQUFJLENBQUM7UUFDSCxTQUFTLEVBQUUsSUFBSTtRQUNmLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLGNBQWMsRUFBRSxTQUFTO1FBQ3pCLE1BQU0sRUFBRSxPQUFPLEdBQ2hCOztBeEcwRlAsQUFBQSxlQUFlLEMyR3ZNQztFeEc2RWQsdUJBQXVCLEV3RzVFTyxPQUFPO0V4RzZFN0IsZUFBZSxFd0c3RU8sT0FBTztFeEd5SHJDLFVBQVUsRXdHeEhXLElBQUk7RXhHeUh6QixVQUFVLEV3R3pIVyxJQUFJO0V4RzBIekIsTUFBTSxFd0cxSGUsSUFBSTtFQU16QixRQUFRLEVBQUUsUUFBUTtFQUNsQixhQUFhLEVBQUUsY0FBYyxHQWdROUI7RUF0UUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0kzR29NMUIsQUFBQSxlQUFlLEMyR3ZNQztNeEcwSGQsVUFBVSxFd0d0SGEsSUFBSTtNeEd1SDNCLFVBQVUsRXdHdkhhLElBQUk7TXhHd0gzQixNQUFNLEV3R3hIaUIsSUFBSTtNQUN6QixXQUFXLEVBQUUsTUFBTSxHQW9RdEI7RUF6UUQsQUFXRSxlQVhhLENBV2Isc0JBQXNCLENBQUM7SUFDckIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTSxHQUlwQjtJQUhDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztNQWY1QixBQVdFLGVBWGEsQ0FXYixzQkFBc0IsQ0FBQztRQUtuQixPQUFPLEVBQUUsSUFBSSxHQUVoQjtFQWxCSCxBQW9CRSxlQXBCYSxDQW9CYixtQkFBbUIsQ0FBQztJQUNsQixPQUFPLEVBQUUsSUFBSTtJQUNiLFNBQVMsRUFBRSxJQUFJO0lBQ2YsTUFBTSxFQUFFLE9BQU87SUFDZixLQUFLLEVBQUUsT0FBTztJQUNkLE9BQU8sRUFBRSxNQUFNO0lBQ2YsY0FBYyxFQUFFLEdBQUc7SUFDbkIsTUFBTSxFQUFFLENBQUM7SUFDVCxXQUFXLEVBQUUsQ0FBQyxHQUlmO0lBSEMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO01BN0I1QixBQW9CRSxlQXBCYSxDQW9CYixtQkFBbUIsQ0FBQztRQVVoQixPQUFPLEVBQUUsS0FBSyxHQUVqQjtFQWhDSCxBQWtDRSxlQWxDYSxDQWtDYixpQkFBaUIsQ0FBQztJQUNoQixRQUFRLEVBQUUsUUFBUTtJQUNsQixHQUFHLEVBQUUsSUFBSTtJQUNULElBQUksRUFBRSxDQUFDO0lBQ1AsS0FBSyxFQUFFLENBQUM7SUFDUixVQUFVLEVBQUUsT0FBTztJQUNuQixPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLE9BQU8sRUFBRSxNQUFNO0lBQ2YsT0FBTyxFQUFFLElBQUksR0F3QmQ7SUFuRUgsQUE2Q0ksZUE3Q1csQ0FrQ2IsaUJBQWlCLENBV2YsdUJBQXVCLENBQUM7TUFDdEIsT0FBTyxFQUFFLElBQUk7TUFDYixXQUFXLEVBQUUsTUFBTTtNQUNuQixVQUFVLEVBQUUsSUFBSTtNQUNoQixVQUFVLEVBQUUsSUFBSTtNQUNoQixPQUFPLEVBQUUsTUFBTTtNQUNmLGFBQWEsRUFBRSxjQUFjO01BQzdCLEtBQUssRUFBRSxPQUFPO01BQ2QsTUFBTSxFQUFFLE9BQU87TUFDZixTQUFTLEVBQUUsSUFBSTtNQUNmLFdBQVcsRUFBRSxHQUFHO01BQ2hCLGNBQWMsRUFBRSxTQUFTO01BQ3pCLGNBQWMsRUFBRSxHQUFHLEdBU3BCO01BbEVMLEFBMkRNLGVBM0RTLENBa0NiLGlCQUFpQixDQVdmLHVCQUF1QixBQWNwQixPQUFPLENBQUM7UUFDUCxLQUFLLEVBQUUsT0FBTyxHQUNmO01BN0RQLEFBK0RNLGVBL0RTLENBa0NiLGlCQUFpQixDQVdmLHVCQUF1QixBQWtCcEIsSUFBSyxDakduQkYsT0FBTyxDaUdtQkcsTUFBTSxDQUFDO1FBQ25CLEtBQUssRUFBRSxPQUFPLEdBQ2Y7RUFqRVAsQUFxRUUsZUFyRWEsQ0FxRWIsaUJBQWlCLENBQUM7SUFDaEIsT0FBTyxFQUFFLElBQUksR0FJZDtJQUhDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztNQXZFNUIsQUFxRUUsZUFyRWEsQ0FxRWIsaUJBQWlCLENBQUM7UUFHZCxPQUFPLEVBQUUsSUFBSSxHQUVoQjtFQTFFSCxBQTJFRSxlQTNFYSxDQTJFYixZQUFZLENBQUU7SUFDWixNQUFNLEVBQUUsU0FBUyxHQUtsQjtJQWpGSCxBQTZFRyxlQTdFWSxDQTJFYixZQUFZLENBRVgsR0FBRyxDQUFFO01BQ0osU0FBUyxFQUFFLEtBQUs7TUFDZCxVQUFVLEVBQUUsSUFBSSxHQUNsQjtFQUdBLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztJQW5GNUIsQUFrRkUsZUFsRmEsQ0FrRmIsWUFBWSxDQUFDO01BRVQsT0FBTyxFQUFFLElBQUksR0FFaEI7RUF0RkgsQUF1RkUsZUF2RmEsQ0F1RmIsS0FBSyxDQUFDO0lBQ0osV0FBVyxFQUFFLElBQUksR0FDbEI7RUF6RkgsQUEyRkUsZUEzRmEsQ0EyRmIsaUJBQWlCLEVBM0ZuQixlQUFlLENBb0hiLHNCQUFzQixDQXpCSjtJQUNoQixXQUFXLEVBQUUsaUJBQWlCLEdBYy9CO0lBYkMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO01BN0Y1QixBQTJGRSxlQTNGYSxDQTJGYixpQkFBaUIsRUEzRm5CLGVBQWUsQ0FvSGIsc0JBQXNCLENBekJKO1FBR2QsV0FBVyxFQUFFLENBQUM7UUFDZCxXQUFXLEVBQUUsSUFBSSxHQVdwQjtJQTFHSCxBQWlHSSxlQWpHVyxDQTJGYixpQkFBaUIsQ0FNZixFQUFFLEVBakdOLGVBQWUsQ0FvSGIsc0JBQXNCLENBbkJwQixFQUFFLENBQUM7TUFDRCxPQUFPLEVBQUUsUUFBUTtNQUNqQixTQUFTLEVBQUUsSUFBSTtNQUNmLFdBQVcsRUFBRSxHQUFHO01BQ2hCLGNBQWMsRUFBRSxHQUFHO01BQ25CLEtBQUssRXpHckdDLE9BQU87TXlHc0diLGNBQWMsRUFBRSxTQUFTLEdBQzFCO0VBeEdMLEFBMkdFLGVBM0dhLENBMkdiLHNCQUFzQixDQUFDO0lBQ3JCLFFBQVEsRUFBRSxNQUFNLEdBTWpCO0lBbEhILEFBNkdJLGVBN0dXLENBMkdiLHNCQUFzQixHQUVsQixFQUFFLENBQUM7TUFDSCxXQUFXLEVBQUUsTUFBTTtNQUNuQixRQUFRLEVBQUUsTUFBTTtNQUNoQixhQUFhLEVBQUUsUUFBUSxHQUN4QjtFQWpITCxBQW9IRSxlQXBIYSxDQW9IYixzQkFBc0IsQ0FBQztJQUVyQixNQUFNLEVBQUUsT0FBTztJQUNmLE9BQU8sRUFBRSxJQUFJO0lBQ2IsZUFBZSxFQUFFLE1BQU07SUFDdkIsY0FBYyxFQUFFLE1BQU0sR0FDdkI7RUExSEgsQUEySEUsZUEzSGEsQ0EySGIsY0FBYyxDQUFFO0lBQ2QsTUFBTSxFQUFFLE9BQU8sR0FTaEI7SUFySUgsQUE2SEksZUE3SFcsQ0EySGIsY0FBYyxBQUVYLE1BQU0sQ0FBQztNQUNOLFFBQVEsRUFBRSxRQUFRO01BQ2xCLEdBQUcsRUFBRSxHQUFHO01BQ1IsSUFBSSxFQUFFLEdBQUc7TUFDVCxXQUFXLEVBQUUsV0FBVztNQUN4QixPQUFPLEVBQUUsT0FBTztNQUNoQixLQUFLLEV6RzVIQyxPQUFPLEd5RzZIZDtFQXBJTCxBQXNJRSxlQXRJYSxDQXNJYixhQUFhLENBQUM7SUFDWixRQUFRLEVBQUUsUUFBUTtJQUNsQixHQUFHLEVBQUUsSUFBSTtJQUNULElBQUksRUFBRSxJQUFJO0lBQ1YsZ0JBQWdCLEVBQUUsT0FBTztJQUN6QixNQUFNLEVBQUUsaUJBQWlCO0lBQ3pCLFVBQVUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsc0JBQXNCO0lBQzlDLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLEtBQUssRUFBRSxJQUFJO0lBQ1gsT0FBTyxFQUFFLENBQUMsR0FVWDtJQXpKSCxBQWlKSSxlQWpKVyxDQXNJYixhQUFhLEdBV1YsR0FBRyxDQUFDO01BQ0gsT0FBTyxFQUFFLGlCQUFpQjtNQUMxQixXQUFXLEVBQUUsTUFBTSxHQUtwQjtNQXhKTCxBQXFKTSxlQXJKUyxDQXNJYixhQUFhLEdBV1YsR0FBRyxBQUlELE1BQU0sQ0FBQztRQUNOLGdCQUFnQixFQUFFLE9BQU8sR0FDMUI7RTNHZ0RQLEFBU0UsZUFUYSxDQVNiLFlBQVksQzJHckRDO0l4RzlFYix1QkFBdUIsRXdHK0VTLFFBQVE7SXhHOUVoQyxlQUFlLEV3RzhFUyxRQUFRO0l4R25IeEMsWUFBWSxFd0dvSEksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0l4R25IcEIsUUFBUSxFd0dtSEksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO0l4R2xIaEIsSUFBSSxFd0drSEksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBMkd2QjtJM0dqRUgsQUFhSSxlQWJXLENBU2IsWUFBWSxDQUlWLENBQUMsQUFBQSxVQUFVLEMyR3JEQztNQUNWLE9BQU8sRUFBRSxLQUFLO01BQ2QsS0FBSyxFQUFFLElBQUk7TUFDWCxPQUFPLEVBQUUsR0FBRztNQUNaLFlBQVksRUFBRSxHQUFHO01BQ2pCLFdBQVcsRUFBRSxHQUFHO01BQ2hCLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0kzR2lDTCxBQXNCSSxlQXRCVyxDQVNiLFlBQVksR0FhUixHQUFHLEMyR3JEQztNeEcvSFIsWUFBWSxFd0dnSU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO014Ry9IdEIsUUFBUSxFd0crSE0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO014RzlIbEIsSUFBSSxFd0c4SE0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO014R2xHMUIsT0FBTyxFQUFFLFlBQVk7TUFDckIsT0FBTyxFQUFFLFdBQVc7TUFDcEIsT0FBTyxFQUFFLElBQUk7TUFYYixzQkFBc0IsRUE4Q0UsR0FBRztNQTdDbkIsY0FBYyxFQTZDRSxHQUFHO01BL0IzQix1QkFBdUIsRXdHOEZXLFFBQVE7TXhHN0ZsQyxlQUFlLEV3RzZGVyxRQUFRO014R2pEMUMsVUFBVSxFd0drRGUsSUFBSTtNeEdqRDdCLFVBQVUsRXdHaURlLElBQUk7TXhHaEQ3QixNQUFNLEV3R2dEbUIsSUFBSTtNQUN6QixNQUFNLEVBQUUsR0FBRyxHQXVEWjtNM0c3QkwsQUE2Qk0sZUE3QlMsQ0FTYixZQUFZLEdBYVIsR0FBRyxHQU9ELEdBQUcsQzJHckRDO1F4R3hHVixPQUFPLEVBQUUsWUFBWTtRQUNyQixPQUFPLEVBQUUsV0FBVztRQUNwQixPQUFPLEVBQUUsSUFBSTtRQVhiLHNCQUFzQixFQStCRSxNQUFNO1FBOUJ0QixjQUFjLEVBOEJFLE1BQU07UUF6QzlCLG1CQUFtQixFd0c2SGEsTUFBTTtReEc1SDlCLFdBQVcsRXdHNEhhLE1BQU07UXhHcEd0Qyx1QkFBdUIsRXdHcUdhLE1BQU07UXhHcEdsQyxlQUFlLEV3R29HYSxNQUFNO1FBQ3BDLE9BQU8sRUFBRSxJQUFJO1FBQ2IsU0FBUyxFQUFFLElBQUk7UUFDZixNQUFNLEVBQUUsT0FBTyxHQTBDaEI7UTNHeEJQLEFBcUNRLGVBckNPLENBU2IsWUFBWSxHQWFSLEdBQUcsR0FPRCxHQUFHLENBUUgsQ0FBQyxDMkdyREM7VUFDQSxTQUFTLEVBQUUsSUFBSTtVQUNmLE9BQU8sRUFBRSxLQUFLO1VBQ2QsS0FBSyxFQUFFLElBQUk7VUFDWCxNQUFNLEVBQUUsZ0JBQWdCLEdBQ3pCO1EzR1dULEFBNENRLGVBNUNPLENBU2IsWUFBWSxHQWFSLEdBQUcsR0FPRCxHQUFHLEFBZUYsTUFBTSxDMkdyREM7VUFDTixLQUFLLEV6RzlMSCxPQUFPLEd5RytMVjtRQWhNVCxBQWtNUSxlQWxNTyxDQTJKYixZQUFZLEdBYVIsR0FBRyxHQU9ELEdBQUcsQUFtQkYsT0FBTyxDQUFDO1VBQ1AsS0FBSyxFekdsTUgsT0FBTyxHeUdtTVY7UTNHR1QsQUFnRFEsZUFoRE8sQ0FTYixZQUFZLEdBYVIsR0FBRyxHQU9ELEdBQUcsQUFtQkYsZ0JBQWdCLEMyR2pEQztVeEcvSHhCLE9BQU8sRUFBRSxZQUFZO1VBQ3JCLE9BQU8sRUFBRSxXQUFXO1VBQ3BCLE9BQU8sRUFBRSxJQUFJO1VBWGIsc0JBQXNCLEVBOENFLEdBQUc7VUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztVQS9CM0IsdUJBQXVCLEV3RzJIZSxVQUFVO1V4RzFIeEMsZUFBZSxFd0cwSGUsVUFBVTtVQUV4QyxNQUFNLEVBQUUsSUFBSTtVQUNaLFNBQVMsRUFBRSxJQUFJO1VBQ2YsV0FBVyxFQUFFLEdBQUc7VUFDaEIsU0FBUyxFQUFFLElBQUk7VUFDZixZQUFZLEVBQUUsSUFBSSxHQWdCbkI7VTNHdkJULEFBMERVLGVBMURLLENBU2IsWUFBWSxHQWFSLEdBQUcsR0FPRCxHQUFHLEFBbUJGLGdCQUFnQixDQVVmLElBQUksQzJHakRDO1lBQ0gsTUFBTSxFQUFFLE9BQU8sR0FDaEI7VTNHWFgsQUE4RFUsZUE5REssQ0FTYixZQUFZLEdBYVIsR0FBRyxHQU9ELEdBQUcsQUFtQkYsZ0JBQWdCLENBY2YsSUFBSSxBQUFBLFlBQVksQzJHakRDO1lBQ2YsV0FBVyxFQUFFLE1BQU0sR0FDcEI7VTNHZlgsQUFrRVUsZUFsRUssQ0FTYixZQUFZLEdBYVIsR0FBRyxHQU9ELEdBQUcsQUFtQkYsZ0JBQWdCLENBa0JmLElBQUksR0FBRyxJQUFJLEMyR2pEQztZQUNWLFdBQVcsRUFBRSxJQUFJLEdBSWxCO1kzR3RCWCxBQW9FWSxlQXBFRyxDQVNiLFlBQVksR0FhUixHQUFHLEdBT0QsR0FBRyxBQW1CRixnQkFBZ0IsQ0FrQmYsSUFBSSxHQUFHLElBQUksQUFFUixNQUFNLEMyR2pEQztjQUNOLGVBQWUsRUFBRSxTQUFTLEdBQzNCO00zR3JCYixBQTJFTSxlQTNFUyxDQVNiLFlBQVksR0FhUixHQUFHLEdBcURELEdBQUcsR0FBRyxHQUFHLEMyR2pEQztRQUNWLFdBQVcsRUFBRSxHQUFHLEdBQ2pCO0lBbk9QLEFBdU9NLGVBdk9TLENBMkpiLFlBQVksR0EyRVIsTUFBTSxBQUNMLFFBQVEsQ0FBQztNeEc3R2QsVUFBVSxFd0c4R2lCLElBQUk7TXhHN0cvQixVQUFVLEV3RzZHaUIsSUFBSTtNeEc1Ry9CLE1BQU0sRXdHNEdxQixJQUFJO014R3hHL0IsU0FBUyxFd0d5R2lCLEtBQUs7TXhHeEcvQixTQUFTLEV3R3dHaUIsS0FBSztNeEd2Ry9CLEtBQUssRXdHdUdxQixLQUFLLEdBSzFCO01BOU9QLEFBME9RLGVBMU9PLENBMkpiLFlBQVksR0EyRVIsTUFBTSxBQUNMLFFBQVEsQUFHTixNQUFNLENBQUM7UUFDTixnQkFBZ0IsRXpHM09uQixPQUFPO1F5RzRPSixLQUFLLEVBQUUsS0FBSyxHQUNiO0lBN09ULEFBK09NLGVBL09TLENBMkpiLFlBQVksR0EyRVIsTUFBTSxBQVNMLEtBQUssQ0FBQztNQUNMLFdBQVcsRUFBRSxHQUFHLEdBSWpCO01BSEMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO1FBalBoQyxBQStPTSxlQS9PUyxDQTJKYixZQUFZLEdBMkVSLE1BQU0sQUFTTCxLQUFLLENBQUM7VUFHSCxPQUFPLEVBQUUsSUFBSSxHQUVoQjtJM0c3Q1AsQUFpRk0sZUFqRlMsQ0FTYixZQUFZLEdBdUVSLE1BQU0sQUFDTCxZQUFZLEMyR2xDQztNQUNaLE1BQU0sRUFBRSxZQUFZLEdBQ3JCO0kzR2pEUCxBQXFGTSxlQXJGUyxDQVNiLFlBQVksR0F1RVIsTUFBTSxBQUtMLFdBQVcsQzJHbENDO01BQ1gsTUFBTSxFQUFFLFlBQVksR0FDckI7STNHckRQLEFBeUZNLGVBekZTLENBU2IsWUFBWSxHQXVFUixNQUFNLEdBU0osR0FBRyxDMkdsQ0M7TXhHdkxWLE9BQU8sRUFBRSxZQUFZO01BQ3JCLE9BQU8sRUFBRSxXQUFXO01BQ3BCLE9BQU8sRUFBRSxJQUFJO01BWGIsc0JBQXNCLEVBOENFLEdBQUc7TUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztNQXhEM0IsbUJBQW1CLEVBNkRPLE1BQU07TUE1RHhCLFdBQVcsRUE0RE8sTUFBTTtNQXBDaEMsdUJBQXVCLEV3R21MYSxNQUFNO014R2xMbEMsZUFBZSxFd0drTGEsTUFBTSxHQU1yQztNM0cvRFAsQUE2RlEsZUE3Rk8sQ0FTYixZQUFZLEdBdUVSLE1BQU0sR0FTSixHQUFHLENBSUgsQ0FBQyxBQUFBLEdBQUcsQzJHbENDO1FBQ0gsU0FBUyxFQUFFLElBQUk7UUFDZixZQUFZLEVBQUUsR0FBRyxHQUNsQjs7QUFPUCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RUFEMUIsQUFFSSxxQkFGaUIsQ0FFakIsaUJBQWlCLEVBRnJCLHFCQUFxQixDQTNRckIsZUFBZSxDQW9IYixzQkFBc0IsRUFwSHhCLGVBQWUsQ0EyUWYscUJBQXFCLENBdkpuQixzQkFBc0I7RUF1SnhCLHFCQUFxQixDQUdqQixzQkFBc0IsQ0FBQztJQUNyQixXQUFXLEVBQUUsQ0FBQyxHQUNmOztBQUtMLEFBQUEsZUFBZSxBQUFBLHdCQUF3QjtBQUN2QyxlQUFlLEFBQUEscUJBQXFCLENBQUM7RXhHNUpuQyxVQUFVLEV3RzZKVyxJQUFJO0V4RzVKekIsVUFBVSxFd0c0SlcsSUFBSTtFeEczSnpCLE1BQU0sRXdHMkplLElBQUk7RUFDekIsZ0JBQWdCLEVBQUUsT0FBTztFQUN6QixhQUFhLEVBQUUsSUFBSTtFQUNuQixXQUFXLEVBQUUsTUFBTSxHQXFEcEI7RUExREQsQUFPRSxlQVBhLEFBQUEsd0JBQXdCLENBT3JDLHVCQUF1QjtFQU56QixlQUFlLEFBQUEscUJBQXFCLENBTWxDLHVCQUF1QixDQUFDO0lBQ3RCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFVBQVUsRUFBRSxJQUFJLEdBQ2pCO0VBVkgsQUFZRSxlQVphLEFBQUEsd0JBQXdCLENBWXJDLG9CQUFvQjtFQVh0QixlQUFlLEFBQUEscUJBQXFCLENBV2xDLG9CQUFvQixDQUFDO0lBQ25CLE1BQU0sRUFBRSxNQUFNLEdBTWY7SUFuQkgsQUFlSSxlQWZXLEFBQUEsd0JBQXdCLENBWXJDLG9CQUFvQixDQUdsQixHQUFHO0lBZFAsZUFBZSxBQUFBLHFCQUFxQixDQVdsQyxvQkFBb0IsQ0FHbEIsR0FBRyxDQUFDO01BQ0YsU0FBUyxFQUFFLEtBQUs7TUFDaEIsVUFBVSxFQUFFLElBQUksR0FDakI7RUFsQkwsQUFxQkUsZUFyQmEsQUFBQSx3QkFBd0IsQ0FxQnJDLFdBQVc7RUFwQmIsZUFBZSxBQUFBLHFCQUFxQixDQW9CbEMsV0FBVyxDQUFDO0lBQ1YsTUFBTSxFQUFFLElBQUk7SUFDWixLQUFLLEVBQUUsSUFBSSxHQUNaO0VBeEJILEFBMEJFLGVBMUJhLEFBQUEsd0JBQXdCLENBMEJyQyxXQUFXO0VBekJiLGVBQWUsQUFBQSxxQkFBcUIsQ0F5QmxDLFdBQVcsQ0FBQztJQUNWLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRUFBRSxPQUFPO0lBQ2QsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxXQUFXLEVBQUUsR0FBRztJQUNoQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLFdBQVcsRUFBRSxNQUFNLEdBQ3BCO0VBbkNILEFBcUNFLGVBckNhLEFBQUEsd0JBQXdCLENBcUNyQyxXQUFXO0VBcENiLGVBQWUsQUFBQSxxQkFBcUIsQ0FvQ2xDLFdBQVcsQ0FBQztJQUNWLE9BQU8sRUFBRSxJQUFJO0lBQ2IsY0FBYyxFQUFFLE1BQU07SUFDdEIsZUFBZSxFQUFFLE1BQU07SUFDdkIsV0FBVyxFQUFFLElBQUk7SUFDakIsU0FBUyxFQUFFLENBQUMsR0FLYjtJQS9DSCxBQTRDSSxlQTVDVyxBQUFBLHdCQUF3QixDQXFDckMsV0FBVyxDQU9ULFdBQVc7SUEzQ2YsZUFBZSxBQUFBLHFCQUFxQixDQW9DbEMsV0FBVyxDQU9ULFdBQVcsQ0FBQztNQUNWLFdBQVcsRUFBRSxDQUFDLEdBQ2Y7RUE5Q0wsQUFpREUsZUFqRGEsQUFBQSx3QkFBd0IsQ0FpRHJDLFdBQVc7RUFoRGIsZUFBZSxBQUFBLHFCQUFxQixDQWdEbEMsV0FBVyxDQUFDO0lBQ1YsS0FBSyxFQUFFLE9BQU87SUFDZCxXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLElBQUk7SUFDakIsY0FBYyxFQUFFLENBQUM7SUFDakIsV0FBVyxFQUFFLE1BQU0sR0FDcEI7O0FBT0QsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VBRDFCLEFBTUksZUFOVyxBQUFBLHdCQUF3QixDQU1uQyxTQUFTLENBQUM7SUFDUixRQUFRLEVBQUUsUUFBUTtJQUNsQixHQUFHLEVBQUUsR0FBRztJQUNSLElBQUksRUFBRSxHQUFHO0lBQ1QsU0FBUyxFQUFFLHFCQUFxQjtJQUNoQyxPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLFNBQVMsRUFBRSxDQUFDLEdBQ2I7RUFkTCxBQWdCSSxlQWhCVyxBQUFBLHdCQUF3QixDQWdCbkMsb0JBQW9CLENBQUM7SUFDbkIsTUFBTSxFQUFFLE1BQU0sR0FNZjtJQXZCTCxBQW1CTSxlQW5CUyxBQUFBLHdCQUF3QixDQWdCbkMsb0JBQW9CLENBR2xCLEdBQUcsQ0FBQztNQUNGLFNBQVMsRUFBRSxLQUFLO01BQ2hCLFVBQVUsRUFBRSxJQUFJLEdBQ2pCO0VBdEJQLEFBNEJJLGVBNUJXLEFBQUEsd0JBQXdCLENBNEJuQyxXQUFXLENBQUM7SUFDVixPQUFPLEVBQUUsSUFBSSxHQUNkOztBQUtMLEFBQ0UsZUFEYSxBQUFBLHFCQUFxQixDQUNsQyxvQkFBb0IsQ0FBQztFQUNuQixZQUFZLEVBQUUsSUFBSSxHQUNuQjs7QUFISCxBQUtFLGVBTGEsQUFBQSxxQkFBcUIsQ0FLbEMscUJBQXFCLENBQUM7RUFDcEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsT0FBTyxFQUFFLElBQUk7RUFDYixXQUFXLEVBQUUsTUFBTTtFQUNuQixZQUFZLEVBQUUsSUFBSSxHQW1KbkI7RUE1SkgsQUFXSSxlQVhXLEFBQUEscUJBQXFCLENBVy9CLDBCQUFLLENBQUM7SUFDTCxPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxhQUFhO0lBQzlCLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLEtBQUssRUFBRSxLQUFLO0lBQ1osTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsZ0JBQWdCO0lBQ3pCLE1BQU0sRUFBRSxpQkFBaUI7SUFDekIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLE9BQU87SUFDbkIsS0FBSyxFQUFFLE9BQU87SUFDZCxXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsV0FBVyxFQUFFLE1BQU0sR0FDcEI7RUE1QkwsQUE4QkksZUE5QlcsQUFBQSxxQkFBcUIsQ0E4Qi9CLDJCQUFNLENBQUM7SUFDTixRQUFRLEVBQUUsTUFBTTtJQUNoQixhQUFhLEVBQUUsUUFBUTtJQUN2QixTQUFTLEVBQUUsQ0FBQyxHQUNiO0VBbENMLEFBb0NJLGVBcENXLEFBQUEscUJBQXFCLENBb0MvQiw0QkFBTyxDQUFDO0lBQ1AsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osV0FBVyxFQUFFLENBQUM7SUFDZCxVQUFVLEVBQUUsT0FBTyxHQUNwQjtFQTFDTCxBQThDSSxlQTlDVyxBQUFBLHFCQUFxQixDQThDL0IsOEJBQVMsQ0FBQztJQUNULFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEdBQUcsRUFBRSxnQkFBZ0I7SUFDckIsSUFBSSxFQUFFLENBQUM7SUFDUCxVQUFVLEVBQUUsVUFBVTtJQUt0QixTQUFTLEVBQUUsS0FBSztJQUNoQixLQUFLLEVBQUUsV0FBVztJQUNsQixTQUFTLEVBQUUsa0JBQWtCO0lBRTdCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLGdCQUFnQixFQUFFLE9BQU87SUFHekIsTUFBTSxFQUFFLGlCQUFpQjtJQUN6QixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUUsSUFBRyxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFFLElBQUcsQ0FBQyxzQkFBc0I7SUFDMUYsT0FBTyxFQUFFLEVBQUU7SUFHWCxVQUFVLEVBQUUsSUFBSTtJQUNoQixVQUFVLEVBQUUsTUFBTTtJQUNsQixVQUFVLEVBQUUsSUFBSSxHQUNqQjtFQXhFTCxBQTBFSSxlQTFFVyxBQUFBLHFCQUFxQixDQTBFL0IsNEJBQU8sQ0FBQztJQUNQLE9BQU8sRUFBRSxJQUFJO0lBQ2IsS0FBSyxFQUFFLE9BQU87SUFDZCxXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsY0FBYyxFQUFFLENBQUM7SUFDakIsV0FBVyxFQUFFLE1BQU0sR0FDcEI7RUFuRkwsQUFxRkksZUFyRlcsQUFBQSxxQkFBcUIsQ0FxRi9CLDZCQUFRLENBQUM7SUFDUixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxhQUFhO0lBQzlCLEdBQUcsRUFBRSxHQUFHO0lBQ1IsVUFBVSxFQUFFLFVBQVU7SUFHdEIsVUFBVSxFQUFFLElBQUk7SUFDaEIsT0FBTyxFQUFFLElBQUk7SUFDYixhQUFhLEVBQUUsR0FBRztJQUNsQixLQUFLLEVBQUUsT0FBTztJQUNkLFdBQVcsRUFBRSxxQkFBcUI7SUFDbEMsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsQ0FBQztJQUNqQixXQUFXLEVBQUUsTUFBTTtJQUNuQixNQUFNLEVBQUUsT0FBTyxHQVdoQjtJQWxITCxBQXlHTSxlQXpHUyxBQUFBLHFCQUFxQixDQXFGL0IsNkJBQVEsQUFvQk4sTUFBTSxDQUFDO01BQ04sZ0JBQWdCLEVBQUUsT0FBTyxHQUMxQjtJQTNHUCxBQThHTSxlQTlHUyxBQUFBLHFCQUFxQixDQThHN0IsdUNBQVUsRUE5R2pCLGVBQWUsQUFBQSxxQkFBcUIsQ0ErRzdCLHVDQUFVLEFBQUEsTUFBTSxDQUFDO01BQ2hCLGdCQUFnQixFQUFFLE9BQU8sR0FDMUI7RUFqSFAsQUFxSEksZUFySFcsQUFBQSxxQkFBcUIsQ0FxSC9CLDZCQUFRLEdBQUcsNkJBQTZCLENBQUM7SUFDeEMsVUFBVSxFQUFFLEdBQUcsR0FDaEI7RUF2SEwsQUF5SEksZUF6SFcsQUFBQSxxQkFBcUIsQ0F5SC9CLG1DQUFjLENBQUM7SUFDZCxPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLFNBQVMsRUFBRSxDQUFDLEdBQ2I7RUE3SEwsQUFnSUksZUFoSVcsQUFBQSxxQkFBcUIsQ0FnSS9CLG1DQUFjLENBQUM7SUFDZCxRQUFRLEVBQUUsTUFBTTtJQUNoQixhQUFhLEVBQUUsUUFBUSxHQUN4QjtFQW5JTCxBQXNJSSxlQXRJVyxBQUFBLHFCQUFxQixDQXNJL0Isa0NBQWEsQ0FBQztJQUNiLEtBQUssRUFBRSxPQUFPO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixRQUFRLEVBQUUsTUFBTTtJQUNoQixhQUFhLEVBQUUsUUFBUSxHQUN4QjtFQTdJTCxBQStJSSxlQS9JVyxBQUFBLHFCQUFxQixDQStJL0Isb0NBQWUsQ0FBQztJQUNmLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLENBQUM7SUFDZCxLQUFLLEVBQUUsT0FBTyxHQUNmO0VBbkpMLEFBcUpJLGVBckpXLEFBQUEscUJBQXFCLENBcUovQix1Q0FBa0IsQ0FBQyxvQ0FBb0MsQ0FBQztJQUN2RCxPQUFPLEVBQUUsS0FBSyxHQUNmO0VBdkpMLEFBeUpJLGVBekpXLEFBQUEscUJBQXFCLENBeUovQixpQ0FBWSxDQUFDLDBCQUEwQixDQUFDO0lBQ3ZDLE1BQU0sRUFBRSxPQUFPLEdBQ2hCOztBQTNKTCxBQWdLRSxlQWhLYSxBQUFBLHFCQUFxQixDQWdLbEMsV0FBVyxDQUFDO0VBQ1YsT0FBTyxFQUFFLElBQUk7RUFDYixXQUFXLEVBQUUsTUFBTTtFQUNuQixHQUFHLEVBQUUsR0FBRztFQUVSLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLFlBQVksRUFBRSxHQUFHLEdBTWxCO0VBSkMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0lBeEs1QixBQWdLRSxlQWhLYSxBQUFBLHFCQUFxQixDQWdLbEMsV0FBVyxDQUFDO01BU1IsR0FBRyxFQUFFLEdBQUc7TUFDUixZQUFZLEVBQUUsQ0FBQyxHQUVsQjs7QUE1S0gsQUE4S0UsZUE5S2EsQUFBQSxxQkFBcUIsQ0E4S2xDLGdCQUFnQixDQUFDO0VBQ2YsT0FBTyxFQUFFLFdBQVc7RUFDcEIsV0FBVyxFQUFFLE1BQU07RUFDbkIsR0FBRyxFQUFFLEdBQUc7RUFDUixVQUFVLEVBQUUsVUFBVTtFQUV0QixTQUFTLEVBQUUsQ0FBQztFQUNaLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLElBQUk7RUFDWixVQUFVLEVBQUUsQ0FBQztFQUNiLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLE9BQU8sRUFBRSxNQUFNO0VBQ2YsTUFBTSxFQUFFLElBQUk7RUFDWixhQUFhLEVBQUUsR0FBRztFQUNsQixVQUFVLEVBQUUsV0FBVztFQUN2QixLQUFLLEVBQUUsT0FBTztFQUNkLFdBQVcsRUFBRSxxQkFBcUI7RUFDbEMsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsR0FBRztFQUNoQixXQUFXLEVBQUUsSUFBSTtFQUNqQixXQUFXLEVBQUUsTUFBTTtFQUNuQixNQUFNLEVBQUUsT0FBTztFQUNmLFVBQVUsRUFBRSxrQ0FBa0MsR0FnQi9DO0VBcE5ILEFBc01JLGVBdE1XLEFBQUEscUJBQXFCLENBOEtsQyxnQkFBZ0IsQUF3QmIsTUFBTSxDQUFDO0lBQ04sZ0JBQWdCLEVBQUUsd0JBQXdCLEdBQzNDO0VBSUQsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0lBNU01QixBQThLRSxlQTlLYSxBQUFBLHFCQUFxQixDQThLbEMsZ0JBQWdCLENBQUM7TUErQmIsR0FBRyxFQUFFLENBQUM7TUFDTixPQUFPLEVBQUUsS0FBSyxHQU1qQjtNQXBOSCxBQWdOTSxlQWhOUyxBQUFBLHFCQUFxQixDQThLbEMsZ0JBQWdCLEdBa0NWLElBQUksQ0FBQztRQUNMLE9BQU8sRUFBRSxJQUFJLEdBQ2Q7O0FBbE5QLEFBc05FLGVBdE5hLEFBQUEscUJBQXFCLENBc05sQyxpQkFBaUIsQ0FBQztFQUNoQixTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxDQUFDLEdBQ2Y7O0FBek5ILEFBNE5FLGVBNU5hLEFBQUEscUJBQXFCLENBNE5sQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0VBQ2xCLFdBQVcsRUFBRSxDQUFDLEdBQ2Y7O0FBS0MsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VBbk81QixBQWtPRSxlQWxPYSxBQUFBLHFCQUFxQixDQWtPbEMsV0FBVyxDQUFDO0lBRVIsT0FBTyxFQUFFLElBQUksR0FFaEI7O0FBTUgsQUFBQSxlQUFlLEFBQUEsSUFBSyxDQUFBLHdCQUF3QjtBQUM1QyxlQUFlLEFBQUEsSUFBSyxDQUFBLHFCQUFxQixFQUFFO0V4RzFlekMsVUFBVSxFd0cyZVcsSUFBSTtFeEcxZXpCLFVBQVUsRXdHMGVXLElBQUk7RXhHemV6QixNQUFNLEV3R3llZSxJQUFJO0VBQ3pCLGFBQWEsRUFBRSxJQUFJLEdBQ3BCOztBeEd4WkcsTUFBTSxNQUFNLE1BQU0sTUFBTSxTQUFTLEVBQUUsTUFBTTtFd0c0WjNDLEFBRU0sa0JBRlksQ0FDaEIsWUFBWSxHQUNOLEdBQUcsR0FBRyxHQUFHLENBQUU7SUFDVCxTQUFTLEVBQUUsSUFBSTtJQUNmLE9BQU8sRUFBRSxHQUFHLEdBUWY7SUFaUCxBQUtVLGtCQUxRLENBQ2hCLFlBQVksR0FDTixHQUFHLEdBQUcsR0FBRyxHQUdMLEdBQUcsQ0FBRTtNQUNILFdBQVcsRUFBRSxDQUFDLEdBQ2pCO0lBUFgsQUFRVSxrQkFSUSxDQUNoQixZQUFZLEdBQ04sR0FBRyxHQUFHLEdBQUcsQ0FNUCxDQUFDLENBQUU7TUFDQyxVQUFVLEVBQUUsSUFBSTtNQUNoQixZQUFZLEVBQUUsR0FBRyxHQUNwQjtFQVhYLEFBYU0sa0JBYlksQ0FDaEIsWUFBWSxDQVlSLENBQUMsQUFBQSxVQUFVLENBQUU7SUFDVCxNQUFNLEVBQUUsU0FBUyxHQUNwQjs7QW5FeG5CVCxBQUFBLFdBQVcsQ29FT0U7RUFDVCxTQUFTLEVBQUUsQ0FBQyxHQUNmOztBbkRrSUQsQUFBQSxFQUFFLEFBQUEsWUFBWSxDbURqSUU7RXpHaUlkLFNBQVMsRUFBRSxJQUFJO0VBQ2YsU0FBUyxFQUFFLENBQUM7RUFDWixLQUFLLEVBQUUsSUFBSSxHeUc1SFo7RW5EMEhELEFBY0ksRUFkRixBQUFBLFlBQVksQ0FLWixFQUFFLEdBU0UsSUFBSSxDbUQ3SUs7SUFDUCxPQUFPLEVBQUUsTUFBTTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFVBQVUsRUFBRSxDQUFDLEdBQ2hCOztBbkQySEwsQUFzRlEsRUF0Rk4sQUFBQSxZQUFZLENBbUVaLEVBQUUsR0FBRyxFQUFFLENBS0wsRUFBRSxHQVdFLEVBQUUsQ0FHRixFQUFFLENtRC9NeUI7RUFDL0IsVUFBVSxFQUFFLENBQUM7RUFDYixXQUFXLEVBQUUsQ0FBQztFekc4TmhCLFdBQVcsRXlHN05LLEdBQUc7RXpHOE5uQixjQUFjLEV5RzlORSxHQUFHO0VBQ2pCLFlBQVksRUFBRSxJQUFJLEdBQ3JCOztBeEU4REQsQUF1QkksaUJBdkJhLENBTWYsZ0JBQWdCLENBaUJkLFlBQVksQ3dFbkZpQztFQUM3QyxXQUFXLEVBQUUsTUFBTSxHQUN0Qjs7QXpGM0JELEFBRUUsaUJBRmUsQ0FFZixXQUFXLEN5RjhCSTtFQUNULFdBQVcsRUFBRSxHQUFHO0VBQ2hCLE9BQU8sRUFBRSxNQUFNLEdBUWxCO0V6RjFDTCxBQVlJLGlCQVphLENBRWYsV0FBVyxDQVVULGVBQWUsQ3lGdUJNO0lBQ2IsV0FBVyxFQUFFLENBQUMsR0FDakI7RXpHMktMLE1BQU0sTUFBTSxNQUFNLE1BQU0sU0FBUyxFQUFFLEtBQUs7SWdCaE41QyxBQUVFLGlCQUZlLENBRWYsV0FBVyxDeUY4Qkk7TUFPTCxTQUFTLEVBQUUsSUFBSTtNQUNmLE9BQU8sRUFBRSxNQUFNLEdBRXRCOztBekYxQ0wsQUFvQ0ksaUJBcENhLENBNkJmLFNBQVMsQ0FPUCxnQkFBZ0IsQ3lGUU07RXpHTHhCLFlBQVksRXlHTVksQ0FBQztFekdMckIsUUFBUSxFeUdLWSxDQUFDO0V6R0pqQixJQUFJLEV5R0lZLENBQUMsR0FPbEI7RXpGcERULEFBK0NNLGlCQS9DVyxDQTZCZixTQUFTLENBT1AsZ0JBQWdCLENBV2QsWUFBWSxDeUZEUTtJQUNWLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsS0FBSztJQUNkLFVBQVUsRUFBRSxLQUFLLEdBQ3BCOztBekZuRGIsQUFpRkksaUJBakZhLENBNkJmLFNBQVMsQ0FvRFAsY0FBYyxDeUY1Qk07RXpHZHRCLFlBQVksRXlHZVksQ0FBQztFekdkckIsUUFBUSxFeUdjWSxDQUFDO0V6R2JqQixJQUFJLEV5R2FZLENBQUMsR0FNbEI7RUE3QlQsQUF5QmdCLGlCQXpCQyxDQVliLFNBQVMsQ0FVTCxjQUFjLEdBRVIsR0FBRyxHQUNDLEdBQUcsQ0FBRTtJQUNILFVBQVUsRUFBRSxHQUFHLEdBQ2xCOztBQTNCakIsQUE4QlEsaUJBOUJTLENBWWIsU0FBUyxDQWtCTCxNQUFNLENBQUU7RUFDSixLQUFLLEVBQUUsSUFBSTtFQUNYLE9BQU8sRUFBRSxLQUFLLEdBQ2pCOztBQU9ULEFBQ0ksa0JBRGMsQUFBQSxZQUFZLENBQzFCLGVBQWUsQ0FBRTtFekdzRG5CLFNBQVMsRXlHckRpQixJQUFJO0V6R3NEOUIsU0FBUyxFeUd0RGlCLElBQUk7RXpHdUQ5QixLQUFLLEV5R3ZEcUIsSUFBSTtFQUN4QixXQUFXLEVBQUUsTUFBTTtFQUNuQixXQUFXLEVBQUUsR0FBRztFQUNoQixZQUFZLEVBQUUsSUFBSSxHQUNyQjs7QUFOTCxBQU9JLGtCQVBjLEFBQUEsWUFBWSxDQU8xQixhQUFhLENBQUU7RUFDWCxPQUFPLEVBQUUsWUFBWTtFQUNyQixTQUFTLEVBQUUsQ0FBQyxHQUNmOztBQU1MLEFBQ0ksZ0JBRFksQ0FDWixjQUFjO0FBRGxCLGdCQUFnQixDQUVaLGFBQWEsQ0FBRTtFekdrRGpCLFNBQVMsRUFBRSxJQUFJO0VBQ2YsU0FBUyxFQUFFLENBQUM7RUFDWixLQUFLLEVBQUUsSUFBSTtFeUdsREwsVUFBVSxFQUFFLElBQUk7RUFDaEIsTUFBTSxFQUFFLElBQUk7RUFDWixPQUFPLEVBQUUsUUFBUSxHQUNwQjs7QXpHNEdELE1BQU0sTUFBTSxNQUFNLE1BQU0sU0FBUyxFQUFFLE1BQU07RXlHMUc3QyxBQUFBLGlCQUFpQixBQUFBLGNBQWMsR0FBRyxHQUFHLENBQUM7SUFFOUIsS0FBSyxFQUFFLEtBQUssR0FFbkI7O0F6R3lHRyxNQUFNLE1BQU0sTUFBTSxNQUFNLFNBQVMsRUFBRSxNQUFNO0V5R2pHekMsQUFNSCxJQU5PLENBTVAsZUFBZSxDQUFFO0lBQ2QsS0FBSyxFekcrRGdCLEtBQTJDO0l5RzlEaEUsU0FBUyxFQUFFLEtBQUs7SUFDaEIsU0FBUyxFQUFFLENBQUM7SXpHeUhkLFlBQVksRXlHOU9DLElBQUk7SXpHK09qQixhQUFhLEV5Ry9PQSxJQUFJLEdBNEhsQjtJQWhCRyxBQVdBLElBWEksQ0FNUCxlQUFlLENBS1osZUFBZSxDQUFFO016R3VIbkIsWUFBWSxFeUd0SFEsQ0FBQztNekd1SHJCLGFBQWEsRXlHdkhPLENBQUM7TUFDZixLQUFLLEVBQUUsSUFBSTtNQUNYLFNBQVMsRUFBRSxJQUFJLEdBQ2xCO0VBZkQsQUFpQkosSUFqQlEsQ0FpQlIsYUFBYSxDQUFDLGdCQUFnQixDQUFFO0lBQzVCLFNBQVMsRUFBRSxDQUFDO0lBQ1osS0FBSyxFQUFFLElBQUksR0FDZDtFQXBCRyxBQXFCSixJQXJCUSxDQXFCUixlQUFlLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBRTtJQUNoQyxNQUFNLEVBQUUsUUFBUSxHQUNuQjtFQXZCRyxBQTRCSixJQTVCUSxDQTRCUixlQUFlLENBQUU7SXpHR2YsU0FBUyxFQUFFLElBQUk7SUFDZixTQUFTLEVBQUUsQ0FBQztJQUNaLEtBQUssRUFBRSxJQUFJO0lBdEdYLFlBQVksRXlHbUdJLENBQUM7SXpHbEdiLFFBQVEsRXlHa0dJLENBQUM7SXpHakdULElBQUksRXlHaUdJLENBQUMsR0FtQmxCO0lBakRHLEFBK0JBLElBL0JJLENBNEJSLGVBQWUsQ0FHWCxZQUFZLENBQUU7TXpHQWhCLFNBQVMsRUFBRSxJQUFJO01BQ2YsU0FBUyxFQUFFLENBQUM7TUFDWixLQUFLLEVBQUUsSUFBSTtNQUdYLFVBQVUsRUFBRSxJQUFJO01BQ2hCLFVBQVUsRUFBRSxDQUFDO01BQ2IsTUFBTSxFQUFFLElBQUk7TXlHSk4sS0FBSyxFQUFFLElBQUk7TUFDWCxTQUFTLEVBQUUsS0FBSztNQUNoQixZQUFZLEVBQUUsU0FBUztNQUN2QixRQUFRLEVBQUUsTUFBTSxHQVFuQjtNQTdDRCxBQXVDSSxJQXZDQSxDQTRCUixlQUFlLENBR1gsWUFBWSxDQVFSLEdBQUcsQ0FBRTtRQUNELEtBQUssRUFBRSxJQUFJO1FBQ1gsT0FBTyxFQUFFLEtBQUs7UUFDZCxNQUFNLEVBQUUsSUFBSTtRQUNaLFVBQVUsRUFBRSxPQUFPLEdBQ3RCO0lBNUNMLEFBOENBLElBOUNJLENBNEJSLGVBQWUsQ0FrQlgsZUFBZSxDQUFFO01BQ2IsS0FBSyxFQUFFLElBQUksR0FDZDtFdEY4QkgsQUFBQSxJQUFJLENBQUMsZ0JBQWdCLENzRjNCTDtJekdwQmhCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsU0FBUyxFQUFFLENBQUM7SUFDWixLQUFLLEVBQUUsSUFBSTtJQXRHWCxZQUFZLEV5RzBISSxDQUFDO0l6R3pIYixRQUFRLEV5R3lISSxDQUFDO0l6R3hIVCxJQUFJLEV5R3dISSxDQUFDO0lBQ2YsWUFBWSxFQWhLTixJQUFJLEdBc0xiO0lBNUVHLEFBd0RJLElBeERBLENBbURSLGdCQUFnQixHQUlWLGNBQWMsQUFBQSxRQUFRLEdBQ2xCLEdBQUcsQ0FBRTtNekc3SGIsWUFBWSxFeUc4SFksQ0FBQztNekc3SHJCLFFBQVEsRXlHNkhZLENBQUM7TXpHNUhqQixJQUFJLEV5RzRIWSxDQUFDLEdBSWxCO01BN0RMLEFBMERRLElBMURKLENBbURSLGdCQUFnQixHQUlWLGNBQWMsQUFBQSxRQUFRLEdBQ2xCLEdBQUcsR0FFQyxHQUFHLENBQUU7UUFDSCxZQUFZLEVBcktsQixJQUFJLEdBc0tEO0lBNURULEFBK0RBLElBL0RJLENBbURSLGdCQUFnQixDQVlaLGdCQUFnQixDQUFFO016R2hDcEIsU0FBUyxFQUFFLElBQUk7TUFDZixTQUFTLEVBQUUsQ0FBQztNQUNaLEtBQUssRUFBRSxJQUFJO015R2dDTCxPQUFPLEVBQUUsSUFBSSxHQVVoQjtNQTNFRCxBQWtFSSxJQWxFQSxDQW1EUixnQkFBZ0IsQ0FZWixnQkFBZ0IsQ0FHWixjQUFjLENBQUU7UXpHbkN0QixTQUFTLEVBQUUsSUFBSTtRQUNmLFNBQVMsRUFBRSxDQUFDO1FBQ1osS0FBSyxFQUFFLElBQUk7UXlHbUNELEtBQUssRUFBRSxJQUFJLEdBTWQ7UUExRUwsQUFxRVEsSUFyRUosQ0FtRFIsZ0JBQWdCLENBWVosZ0JBQWdCLENBR1osY0FBYyxDQUdWLDJCQUEyQixDQUFFO1V6R3RDdkMsU0FBUyxFQUFFLElBQUk7VUFDZixTQUFTLEVBQUUsQ0FBQztVQUNaLEtBQUssRUFBRSxJQUFJO1VBR1gsVUFBVSxFQUFFLElBQUk7VUFDaEIsVUFBVSxFQUFFLENBQUM7VUFDYixNQUFNLEVBQUUsSUFBSTtVeUdrQ0UsS0FBSyxFQUFFLElBQUksR0FDZDtFQXpFVCxBQStFQSxJQS9FSSxDQThFUixXQUFXLENBQ1AsZ0JBQWdCLENBQUU7SUFDZCxZQUFZLEVBQUUsSUFBSSxHQUNyQjtFQWpGRCxBQW1GSixJQW5GUSxDQW1GUixjQUFjO0VBbkZWLElBQUksQ0FvRlIsV0FBVyxDQUFFO0l6R3pKWCxZQUFZLEV5RzBKSSxDQUFDO0l6R3pKYixRQUFRLEV5R3lKSSxDQUFDO0l6R3hKVCxJQUFJLEV5R3dKSSxDQUFDLEdBQ2xCO0VBdEZHLEFBdUZKLElBdkZRLENBdUZSLGNBQWMsQ0FBRTtJekd4RGQsU0FBUyxFQUFFLElBQUk7SUFDZixTQUFTLEVBQUUsQ0FBQztJQUNaLEtBQUssRUFBRSxJQUFJO0l5R3dEVCxVQUFVLEVBQUUsQ0FBQyxHQUNoQjtFQTFGRyxBQTRGQSxJQTVGSSxDQTJGUixZQUFZLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FDcEMsa0JBQWtCLENBQUU7SXpHN0R0QixTQUFTLEVBQUUsSUFBSTtJQUNmLFNBQVMsRUFBRSxDQUFDO0lBQ1osS0FBSyxFQUFFLElBQUk7SUFHWCxVQUFVLEVBQUUsSUFBSTtJQUNoQixVQUFVLEVBQUUsQ0FBQztJQUNiLE1BQU0sRUFBRSxJQUFJO0l5R3lETixLQUFLLEVBQUUsZUFBZTtJQUN0QixNQUFNLEVBQUUsZUFBZSxHQUMxQjtFQWpHRCxBQW1HSixJQW5HUSxDQW1HUixjQUFjLENBQUU7SXpHcEVkLFNBQVMsRUFBRSxJQUFJO0lBQ2YsU0FBUyxFQUFFLENBQUM7SUFDWixLQUFLLEVBQUUsSUFBSTtJeUdvRVQsWUFBWSxFQS9NTixJQUFJO0l6R3FDWixZQUFZLEV5RzJLSSxDQUFDO0l6RzFLYixRQUFRLEV5RzBLSSxDQUFDO0l6R3pLVCxJQUFJLEV5R3lLSSxDQUFDLEdBQ2xCO0VBdkdHLEFBMkdKLElBM0dRLENBMkdSLE1BQU0sQ0FBRTtJQUNKLFNBQVMsRUFBRSxlQUFlO0lBQzFCLE1BQU0sRUFBRSxlQUFlLEdBQzFCO0VBOUdHLEFBa0hKLElBbEhRLENBa0hSLGVBQWUsQ0FBRTtJekduRmYsU0FBUyxFQUFFLElBQUk7SUFDZixTQUFTLEVBQUUsQ0FBQztJQUNaLEtBQUssRUFBRSxJQUFJO0lBdEdYLFlBQVksRXlHeUxJLENBQUM7SXpHeExiLFFBQVEsRXlHd0xJLENBQUM7SXpHdkxULElBQUksRXlHdUxJLENBQUMsR0FrQmxCO0lBdElHLEFBcUhBLElBckhJLENBa0hSLGVBQWUsQ0FHWCxnQkFBZ0IsQ0FBQztNekcxTG5CLFlBQVksRXlHMkxRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtNekcxTHhCLFFBQVEsRXlHMExRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtNekd6THBCLElBQUksRXlHeUxRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQU16QjtNQTVIRCxBQXVISSxJQXZIQSxDQWtIUixlQUFlLENBR1gsZ0JBQWdCLEdBRVYsR0FBRyxDQUFFO1F6RzVMYixZQUFZLEV5RzZMWSxDQUFDO1F6RzVMckIsUUFBUSxFeUc0TFksQ0FBQztRekczTGpCLElBQUksRXlHMkxZLENBQUM7UUFDZixTQUFTLEVBQUUsSUFBSTtRQUNmLFNBQVMsRUFBRSxDQUFDLEdBQ2Y7SUEzSEwsQUE4SEksSUE5SEEsQ0FrSFIsZUFBZSxDQVdYLGNBQWMsQ0FDVixhQUFhLENBQUU7TXpHL0ZyQixTQUFTLEVBQUUsSUFBSTtNQUNmLFNBQVMsRUFBRSxDQUFDO01BQ1osS0FBSyxFQUFFLElBQUk7TXlHK0ZELEtBQUssRUFBRSxTQUFVLEdBQ3BCO0lBaklMLEFBbUlBLElBbklJLENBa0hSLGVBQWUsQUFpQlYsZUFBZSxDQUFFO01BQ2QsU0FBUyxFQUFFLEtBQUssR0FDbkI7RUFySUQsQUF1SUosSUF2SVEsQ0F1SVIsa0JBQWtCLENBQUU7SXpHeEdsQixTQUFTLEVBQUUsSUFBSTtJQUNmLFNBQVMsRUFBRSxDQUFDO0lBQ1osS0FBSyxFQUFFLElBQUk7SUF0R1gsWUFBWSxFeUc4TUksQ0FBQztJekc3TWIsUUFBUSxFeUc2TUksQ0FBQztJekc1TVQsSUFBSSxFeUc0TUksQ0FBQztJQUNmLFlBQVksRUFwUE4sSUFBSSxHQXFQYjs7QUFFRCxNQUFNLE1BQUMsTUFBa0IsTXpHNUNHLFNBQVMsRUFBRSxNQUFNLE95RzRDckMsU0FBUyxFQUFFLEtBQUs7RUE3SXBCLEFBOElBLElBOUlJLENBOElKLHlCQUF5QixDQUFDO0lBQ3RCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsS0FBSyxFQUFFLElBQUk7SUFDWCxTQUFTLEVBQUUsSUFBSTtJQUNmLFlBQVksRUFBRSxDQUFDO0lBQ2YsYUFBYSxFQUFFLENBQUMsR0FlbkI7SUFsS0QsQUFxSkksSUFySkEsQ0E4SUoseUJBQXlCLENBT3JCLGVBQWUsQ0FBQztNQUNaLElBQUksRUFBRSxRQUFRO01BQ2QsS0FBSyxFQUFFLElBQUk7TUFDWCxTQUFTLEVBQUUsQ0FBQyxHQUNmO0lBekpMLEFBMEpJLElBMUpBLENBOElKLHlCQUF5QixDQVlyQixrQkFBa0IsQ0FBQztNQUNmLElBQUksRUFBRSxRQUFRO01BQ2QsS0FBSyxFQUFFLElBQUk7TUFDWCxTQUFTLEVBQUUsQ0FBQztNQUNaLFlBQVksRUFBRSxDQUFDO01BQ2YsVUFBVSxFQUFFLElBQUk7TUFDaEIsY0FBYyxFQUFFLElBQUksR0FDdkI7O0F6R2hFTCxNQUFNLE1BQU0sTUFBTSxNQUFNLFNBQVMsRUFBRSxNQUFNO0V5R2pHekMsQUF5S0EsSUF6S0ksQ0F3S1Isa0JBQWtCLEFBQUEsWUFBWSxDQUMxQixhQUFhLENBQUU7SXpHOU9qQixZQUFZLEV5RytPUSxDQUFDO0l6RzlPakIsUUFBUSxFeUc4T1EsQ0FBQztJekc3T2IsSUFBSSxFeUc2T1EsQ0FBQztJekd4SnJCLFNBQVMsRXlHeUppQixJQUFJO0l6R3hKOUIsU0FBUyxFeUd3SmlCLElBQUk7SXpHdko5QixLQUFLLEV5R3VKcUIsSUFBSTtJQUN4QixjQUFjLEVBQUUsQ0FBQyxHQUNwQjtFQTdLRCxBQThLQSxJQTlLSSxDQXdLUixrQkFBa0IsQUFBQSxZQUFZLENBTTFCLGlCQUFpQixDQUFFO0l6RzVKckIsU0FBUyxFeUc2SmlCLEdBQUc7SXpHNUo3QixTQUFTLEV5RzRKaUIsR0FBRztJekczSjdCLEtBQUssRXlHMkpxQixHQUFHLEdBQzFCO0VBaExELEFBaUxBLElBakxJLENBd0tSLGtCQUFrQixBQUFBLFlBQVksQ0FTMUIsc0JBQXNCLENBQUU7SXpHL0oxQixTQUFTLEV5R2dLaUIsR0FBRztJekcvSjdCLFNBQVMsRXlHK0ppQixHQUFHO0l6RzlKN0IsS0FBSyxFeUc4SnFCLEdBQUcsR0FDMUI7RUFuTEQsQUFvTEEsSUFwTEksQ0F3S1Isa0JBQWtCLEFBQUEsWUFBWSxDQVkxQixZQUFZLENBQUU7SUFDVixTQUFTLEVBQUUsSUFBSTtJQUNmLGNBQWMsRUFBRSxLQUFLLEdBQ3hCO0VBdkxELEFBNkxKLElBN0xRLENBNkxSLE1BQU0sQ0FBRTtJQUNKLFNBQVMsRUFBRSxpQkFBaUIsR0FDL0I7RUEvTEcsQUFnTUosSUFoTVEsQ0FnTVIsZ0JBQWdCLENBQUU7SUFDZCxTQUFTLEVBQUUsSUFBSSxHQUNsQjtFQWxNRyxBQXVNSixJQXZNUSxDQXVNUixnQkFBZ0IsQ0FBQyxVQUFVO0VBdk12QixJQUFJLENBd01SLFNBQVMsQ0FBQyxVQUFVLENBQUU7SXpHdExwQixTQUFTLEV5R3VMYSxLQUFLO0l6R3RMM0IsU0FBUyxFeUdzTGEsS0FBSztJekdyTDNCLEtBQUssRXlHcUxpQixLQUFLLEdBQzVCO0VBMU1HLEFBMk1KLElBM01RLENBMk1SLGdCQUFnQixDQUFDLFNBQVM7RUEzTXRCLElBQUksQ0E0TVIsU0FBUyxDQUFDLFNBQVMsQ0FBRTtJekcxTG5CLFNBQVMsRXlHMkxhLElBQUk7SXpHMUwxQixTQUFTLEV5RzBMYSxJQUFJO0l6R3pMMUIsS0FBSyxFeUd5TGlCLElBQUksR0FDM0I7RUE5TUcsQUErTUosSUEvTVEsQ0ErTVIsU0FBUyxDQUFDLFNBQVMsR0FBRyxZQUFZLEFBQUEsTUFBTSxDQUFFO0lBQ3RDLEtBQUssRUFBRSxJQUFJLEdBQ2Q7RUFqTkcsQUFtTkEsSUFuTkksQ0FrTlIsZ0JBQWdCLENBQ1osWUFBWSxDQUFFO0lBQ1YsV0FBVyxFQUFFLEdBQUcsR0FDbkI7RUFyTkQsQUE2TkosSUE3TlEsQ0E2TlIsS0FBSyxBQUFBLFlBQVk7RUE3TmIsSUFBSSxDQThOUixHQUFHLEFBQUEsWUFBWTtFQTlOWCxJQUFJLENBK05SLEdBQUcsQUFBQSxxQkFBcUIsQ0FBQztJQUNyQixLQUFLLEVBQUUsS0FBSyxHQUNmO0VsR3JFQyxBQXlCSSxJQXpCQSxDQUNGLGFBQWEsQ0F3QlgsZUFBZSxDa0dtREE7SXpHN1NuQixZQUFZLEV5RzhTUSxDQUFDO0l6RzdTakIsUUFBUSxFeUc2U1EsQ0FBQztJekc1U2IsSUFBSSxFeUc0U1EsQ0FBQztJQUNmLEtBQUssRUFBRSxJQUFJLEdBQ2Q7RWxHL0VILEFBdUNJLElBdkNBLENBQ0YsYUFBYSxDQXNDWCxvQkFBb0IsQ2tHeUNBO0lBQ2xCLFNBQVMsRUFBRSxDQUFDO0l6R2xUbEIsWUFBWSxFeUdtVFEsT0FBTztJekdsVHZCLFFBQVEsRXlHa1RRLE9BQU87SXpHalRuQixJQUFJLEV5R2lUUSxPQUFPLEdBY3hCO0lsR2hHSCxBQXVETSxJQXZERixDQUNGLGFBQWEsQ0FzQ1gsb0JBQW9CLEdBZ0JkLGlCQUFpQixDa0c0QkE7TUFDakIsU0FBUyxFQUFFLENBQUMsR0FXZjtNQTNQTCxBQWlQUSxJQWpQSixDQXVPUixhQUFhLENBS1Qsb0JBQW9CLEdBR2QsaUJBQWlCLENBRWYsTUFBTSxDQUFFO1F6R2xObEIsU0FBUyxFQUFFLElBQUk7UUFDZixTQUFTLEVBQUUsQ0FBQztRQUNaLEtBQUssRUFBRSxJQUFJO1F5R2tORyxPQUFPLEVBQUUsbUJBQW1CO1FBQzVCLFNBQVMsRUFBRSxJQUFJLEdBTWxCO1FBMVBULEFBcVBZLElBclBSLENBdU9SLGFBQWEsQ0FLVCxvQkFBb0IsR0FHZCxpQkFBaUIsQ0FFZixNQUFNLEFBSUQsTUFBTSxDQUFFO1VBQ0wsU0FBUyxFQUFFLEdBQUc7VUFDZCxLQUFLLEVBQUUsR0FBRztVQUNWLEdBQUcsRUFBRSxHQUFHLEdBQ1g7RWxHN0ZmLEFBMkpJLElBM0pBLENBQ0YsYUFBYSxDQTBKWCxtQkFBbUIsQ2tHMURBO0l6R2xVdkIsWUFBWSxFeUdtVVEsT0FBTztJekdsVXZCLFFBQVEsRXlHa1VRLE9BQU87SXpHalVuQixJQUFJLEV5R2lVUSxPQUFPO0l6Ry9OM0IsU0FBUyxFQUFFLElBQUk7SUFDZixTQUFTLEVBQUUsQ0FBQztJQUNaLEtBQUssRUFBRSxJQUFJO0l5RytOTCxPQUFPLEVBQUUsS0FBSztJQUNkLFNBQVMsRUFBRSxJQUFJLEdBQ2xCO0VsR3RHSCxBQStCSSxJQS9CQSxDQUNGLGFBQWEsQ0E4Qlgsb0JBQW9CLENrR3dFQTtJekd4VXhCLFlBQVksRXlHeVVRLE9BQU87SXpHeFV2QixRQUFRLEV5R3dVUSxPQUFPO0l6R3ZVbkIsSUFBSSxFeUd1VVEsT0FBTztJekdyTzNCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsU0FBUyxFQUFFLENBQUM7SUFDWixLQUFLLEVBQUUsSUFBSSxHeUdxT1I7RUF0UUQsQUFnUkksSUFoUkEsQ0E4UVIsZUFBZSxDQUNYLFlBQVksR0FDTixHQUFHLEdBQUcsR0FBRyxDQUFFO0lBQ1QsU0FBUyxFQUFFLElBQUk7SUFDZixPQUFPLEVBQUUsR0FBRyxHQVFmO0lBMVJMLEFBbVJRLElBblJKLENBOFFSLGVBQWUsQ0FDWCxZQUFZLEdBQ04sR0FBRyxHQUFHLEdBQUcsR0FHTCxHQUFHLENBQUU7TUFDSCxXQUFXLEVBQUUsQ0FBQyxHQUNqQjtJQXJSVCxBQXNSUSxJQXRSSixDQThRUixlQUFlLENBQ1gsWUFBWSxHQUNOLEdBQUcsR0FBRyxHQUFHLENBTVAsQ0FBQyxDQUFFO01BQ0MsVUFBVSxFQUFFLElBQUk7TUFDaEIsWUFBWSxFQUFFLEdBQUcsR0FDcEI7RUF6UlQsQUEyUkksSUEzUkEsQ0E4UVIsZUFBZSxDQUNYLFlBQVksQ0FZUixDQUFDLEFBQUEsVUFBVSxDQUFFO0lBQ1QsTUFBTSxFQUFFLFNBQVMsR0FDcEI7RUE3UkwsQUErUkEsSUEvUkksQ0E4UVIsZUFBZSxDQWlCWCxNQUFNLENBQUU7SUFDSixTQUFTLEVBQUUsQ0FBQztJQUNaLE9BQU8sRUFBRSxLQUFLLEdBQ2pCO0VBbFNELEFBbVNBLElBblNJLENBOFFSLGVBQWUsQ0FxQlgsS0FBSyxDQUFFO0lBQ0gsV0FBVyxFQWhaSixJQUFJO0l6RzhIakIsU0FBUyxFeUdtUmlCLEtBQUs7SXpHbFIvQixTQUFTLEV5R2tSaUIsS0FBSztJekdqUi9CLEtBQUssRXlHaVJxQixLQUFLLEdBQzVCO0VBdFNELEFBdVNBLElBdlNJLENBOFFSLGVBQWUsQ0F5QlgsWUFBWSxHQUFHLE1BQU0sQUFBQSxXQUFXLENBQUU7SUFDOUIsWUFBWSxFQXBaTCxJQUFJLEdBcVpkO0VBelNELEFBK1NBLElBL1NJLENBOFNSLGdCQUFnQixDQUNaLGFBQWEsQ0FBRTtJQUNYLFdBQVcsRUFBRSxNQUFNO0lBQ25CLE1BQU0sRUFBRSxVQUFVLEdBSXJCO0lBclRELEFBa1RJLElBbFRBLENBOFNSLGdCQUFnQixDQUNaLGFBQWEsR0FHUCxHQUFHLENBQUU7TUFDSCxZQUFZLEVBQUUsR0FBRyxHQUNwQjtFQXBUTCxBQTJUSixJQTNUUSxDQTJUUixXQUFXLENBQUU7SUFDVCxPQUFPLEVBQUUsSUFBSSxHQUNoQjtFQTdURyxBQThUSixJQTlUUSxDQThUUixhQUFhLENBQUMsV0FBVyxDQUFFO0lBQ3ZCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsYUFBYSxFQUFFLEdBQUcsR0FDckI7O0FBQ0QsTUFBTSxNQUFDLE1BQWtDLE16R2pPYixTQUFTLEVBQUUsTUFBTSxPeUdpT3JCLFNBQVMsRUFBRSxLQUFLO0VBbFVwQyxBQW1VQSxJQW5VSSxDQW1VSixhQUFhLENBQUU7SUFDWCxPQUFPLEVBQUUsV0FBVyxHQUN2QjtFQXJVRCxBQXNVQSxJQXRVSSxDQXNVSixvQkFBb0IsQ0FBRTtJQUNsQixhQUFhLEVBQUUsSUFBSSxHQUN0QjtFQXhVRCxBQXlVQSxJQXpVSSxDQXlVSixzQkFBc0IsR0FBRyxzQkFBc0IsQ0FBRTtJQUM3QyxVQUFVLEVBQUUsSUFBSSxHQUNuQjtFQTNVRCxBQTRVQSxJQTVVSSxDQTRVSixtQkFBbUI7RUE1VW5CLElBQUksQ0E2VUosYUFBYSxDQUFDLFdBQVcsQ0FBRTtJQUN2QixLQUFLLEVBQUUsSUFBSTtJQUNYLFNBQVMsRUFBRSxJQUFJO0lBQ2YsY0FBYyxFQUFFLE1BQU07SUFDdEIsV0FBVyxFQUFFLE9BQU87SUFJcEIsTUFBTSxFQUFFLElBQUk7SUFDWixVQUFVLEVBQUUsSUFBSTtJQUNoQixPQUFPLEVBQUUsSUFBSTtJQUNiLEdBQUcsRUFBRSxJQUFJLEdBQ1o7RUF6VkQsQUEwVkEsSUExVkksQ0EwVkosMkJBQTJCLENBQUU7SUFDekIsZUFBZSxFQUFFLGFBQWE7SUFDOUIsU0FBUyxFQUFFLElBQUk7SUFDZixHQUFHLEVBQUUsSUFBSSxHQUNaO0VBOVZELEFBK1ZBLElBL1ZJLENBK1ZKLGtCQUFrQixDQUFFO0lBQ2hCLElBQUksRUFBRSxRQUFRLEdBQ2pCOztBekdoUUQsTUFBTSxNQUFNLE1BQU0sTUFBTSxTQUFTLEVBQUUsTUFBTTtFeUdqR3pDLEFBdVdKLElBdldRLENBdVdSLHVCQUF1QixDQUFFO0lBQ3JCLE9BQU8sRUFBRSxLQUFLLEdBYWpCO0lBclhHLEFBeVdBLElBeldJLENBdVdSLHVCQUF1QixDQUVuQixXQUFXLENBQUU7TUFDVCxPQUFPLEVBQUUsS0FBSyxHQUNqQjtJQTNXRCxBQTRXQSxJQTVXSSxDQXVXUix1QkFBdUIsQ0FLbkIscUJBQXFCLENBQUU7TUFDbkIsT0FBTyxFQUFFLEtBQUs7TUFDZCxNQUFNLEVBQUUsQ0FBQyxHQU1aO0VBcFhELEFBMlhBLElBM1hJLENBMFhSLHlCQUF5QixDQUNyQixNQUFNLENBQUU7SXpHNVZWLFNBQVMsRUFBRSxJQUFJO0lBQ2YsU0FBUyxFQUFFLENBQUM7SUFDWixLQUFLLEVBQUUsSUFBSSxHeUc0VlI7O0F6R3pSRCxNQUFNLE1BQU0sTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO0V5R2tTcEIsQUFTeEIsSUFUNEIsQ0FTNUIsV0FBVyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDcEIsV0FBVyxFQUFFLElBQUksR0FDcEI7RUFYdUIsQUFnQnhCLElBaEI0QixDQWdCNUIsa0JBQWtCLENBQUU7SXpHM2RsQixZQUFZLEV5RzRkSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7SXpHM2RyQixRQUFRLEV5RzJkSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7SXpHMWRqQixJQUFJLEV5RzBkSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FDMUI7RUFsQnVCLEFBb0JwQixJQXBCd0IsQ0FtQjVCLGVBQWUsQ0FDWCxJQUFJLENBQUU7SUFDRixPQUFPLEVBQUUsS0FBSztJQUNkLEtBQUssRUFBRSxJQUFJLEdBWWQ7SUFsQ21CLEFBdUJoQixJQXZCb0IsQ0FtQjVCLGVBQWUsQ0FDWCxJQUFJLENBR0EsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLE1BQU0sQUFBWCxFQUFjO01BQ2hCLFNBQVMsRUFBRSxDQUFDO016R25ldEIsWUFBWSxFeUdvZVksQ0FBQztNekduZXJCLFFBQVEsRXlHbWVZLENBQUM7TXpHbGVqQixJQUFJLEV5R2tlWSxDQUFDO01BQ2YsV0FBVyxFQUFFLENBQUM7TUFDZCxTQUFTLEVBQUUsSUFBSSxHQUNsQjtJQTVCZSxBQTZCaEIsSUE3Qm9CLENBbUI1QixlQUFlLENBQ1gsSUFBSSxDQVNBLE1BQU0sQ0FBQSxBQUFBLElBQUMsQ0FBSyxPQUFPLEFBQVosRUFBZTtNQUNsQixNQUFNLEVBQUUsQ0FBQztNQUNULE9BQU8sRUFBRSxLQUFLO01BQ2QsU0FBUyxFQUFFLElBQUksR0FDbEI7RUFqQ2UsQUFxQ3hCLElBckM0QixDQXFDNUIsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUU7SUFDbEQsSUFBSSxFQUFFLElBQUksR0FDYjtFQXZDdUIsQUFpRFosSUFqRGdCLENBNkM1QixtQkFBbUIsR0FFYixjQUFjLEdBQ1YsR0FBRyxHQUNDLElBQUk7RUFqRE0sSUFBSSxDQThDNUIsV0FBVyxHQUNMLGNBQWMsR0FDVixHQUFHLEdBQ0MsSUFBSSxDQUFFO0lBQ0osV0FBVyxFQUFFLGVBQWU7SUFDNUIsWUFBWSxFQUFFLGVBQWUsR0FDaEM7RUFwRFcsQUEyRFosSUEzRGdCLENBd0Q1QixtQkFBbUIsR0FDYixjQUFjLEdBQ1YsR0FBRyxBQUNBLFVBQVcsQ0FBQSxDQUFDLEVBQUc7SXpHemExQixTQUFTLEV5RzBheUMsS0FBSyxDekcxYXJDLFVBQVU7SUFDNUIsU0FBUyxFeUd5YXlDLEtBQUssQ3pHemFyQyxVQUFVO0lBQzVCLEtBQUssRXlHd2E2QyxLQUFLLEN6R3hhekMsVUFBVSxHeUd5YWI7RUE3RFcsQUE4RFosSUE5RGdCLENBd0Q1QixtQkFBbUIsR0FDYixjQUFjLEdBQ1YsR0FBRyxBQUlBLFVBQVcsQ2pFakhILENBQUMsRWlFaUhNO0l6RzVhMUIsU0FBUyxFeUc2YXlDLElBQUksQ3pHN2FwQyxVQUFVO0lBQzVCLFNBQVMsRXlHNGF5QyxJQUFJLEN6RzVhcEMsVUFBVTtJQUM1QixLQUFLLEV5RzJhNkMsSUFBSSxDekczYXhDLFVBQVUsR3lHNGFiO0VBaEVXLEFBaUVaLElBakVnQixDQXdENUIsbUJBQW1CLEdBQ2IsY0FBYyxHQUNWLEdBQUcsQUFPQSxVQUFXLENsQ2hkUixDQUFDLEVrQ2dkVztJekcvYTFCLFNBQVMsRXlHZ2J5QyxLQUFLLEN6R2hickMsVUFBVTtJQUM1QixTQUFTLEV5RytheUMsS0FBSyxDekcvYXJDLFVBQVU7SUFDNUIsS0FBSyxFeUc4YTZDLEtBQUssQ3pHOWF6QyxVQUFVLEd5RythYjtFQW5FVyxBQW9FWixJQXBFZ0IsQ0F3RDVCLG1CQUFtQixHQUNiLGNBQWMsR0FDVixHQUFHLEFBVUEsVUFBVyxDQUFBLENBQUMsRUFBRztJekdoU3hCLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLFNBQVMsRUFBRSxlQUFlO0lBQzFCLFlBQVksRUFBRSxZQUFZO0lBQzFCLFFBQVEsRUFBRSxZQUFZO0lBQ3RCLElBQUksRUFBRSxZQUFZLEd5RzhSVDtFQXRFVyxBQXVFWixJQXZFZ0IsQ0F3RDVCLG1CQUFtQixHQUNiLGNBQWMsR0FDVixHQUFHLEFBYUEsVUFBVyxDQUFBLENBQUMsRUFBRztJekdyYjFCLFNBQVMsRXlHc2J5QyxLQUFLLEN6R3RickMsVUFBVTtJQUM1QixTQUFTLEV5R3FieUMsS0FBSyxDekdyYnJDLFVBQVU7SUFDNUIsS0FBSyxFeUdvYjZDLEtBQUssQ3pHcGJ6QyxVQUFVLEd5R3FiYjtFQXpFVyxBQTBFWixJQTFFZ0IsQ0F3RDVCLG1CQUFtQixHQUNiLGNBQWMsR0FDVixHQUFHLEFBZ0JBLFVBQVcsQ0FBQSxDQUFDLEVBQUc7SXpHeGIxQixTQUFTLEV5R3lieUMsSUFBSSxDekd6YnBDLFVBQVU7SUFDNUIsU0FBUyxFeUd3YnlDLElBQUksQ3pHeGJwQyxVQUFVO0lBQzVCLEtBQUssRXlHdWI2QyxJQUFJLEN6R3ZieEMsVUFBVSxHeUcyYmI7SUEvRVcsQUE0RVIsSUE1RVksQ0F3RDVCLG1CQUFtQixHQUNiLGNBQWMsR0FDVixHQUFHLEFBZ0JBLFVBQVcsQ0FBQSxDQUFDLEVBRVQsTUFBTSxDQUFFO01BQ0osT0FBTyxFQUFFLEtBQUssR0FDakI7RUE5RU8sQUF3RlosSUF4RmdCLENBb0Y1QixXQUFXLEdBQ0wsY0FBYyxHQUNWLEdBQUcsQUFFQSxVQUFXLENBN0JBLENBQUMsRUE2Qkc7SXpHdGMxQixTQUFTLEV5R3VjeUMsSUFBSSxDekd2Y3BDLFVBQVU7SUFDNUIsU0FBUyxFeUdzY3lDLElBQUksQ3pHdGNwQyxVQUFVO0lBQzVCLEtBQUssRXlHcWM2QyxJQUFJLEN6R3JjeEMsVUFBVSxHeUdzY2I7RUExRlcsQUEyRlosSUEzRmdCLENBb0Y1QixXQUFXLEdBQ0wsY0FBYyxHQUNWLEdBQUcsQUFLQSxVQUFXLENqRTlJSCxDQUFDLEVpRThJTTtJekd6YzFCLFNBQVMsRXlHMGN5QyxLQUFLLEN6RzFjckMsVUFBVTtJQUM1QixTQUFTLEV5R3ljeUMsS0FBSyxDekd6Y3JDLFVBQVU7SUFDNUIsS0FBSyxFeUd3YzZDLEtBQUssQ3pHeGN6QyxVQUFVLEd5R3ljYjtFQTdGVyxBQThGWixJQTlGZ0IsQ0FvRjVCLFdBQVcsR0FDTCxjQUFjLEdBQ1YsR0FBRyxBQVFBLFVBQVcsQ2xDN2VSLENBQUMsRWtDNmVXO0l6RzVjMUIsU0FBUyxFeUc2Y3lDLEtBQUssQ3pHN2NyQyxVQUFVO0lBQzVCLFNBQVMsRXlHNGN5QyxLQUFLLEN6RzVjckMsVUFBVTtJQUM1QixLQUFLLEV5RzJjNkMsS0FBSyxDekczY3pDLFVBQVUsR3lHNGNiO0VBaEdXLEFBaUdaLElBakdnQixDQW9GNUIsV0FBVyxHQUNMLGNBQWMsR0FDVixHQUFHLEFBV0EsVUFBVyxDQTdCQSxDQUFDLEVBNkJHO0l6RzdUeEIsU0FBUyxFQUFFLFlBQVk7SUFDdkIsU0FBUyxFQUFFLGVBQWU7SUFDMUIsWUFBWSxFQUFFLFlBQVk7SUFDMUIsUUFBUSxFQUFFLFlBQVk7SUFDdEIsSUFBSSxFQUFFLFlBQVksR3lHNFRUO0VBcEdXLEFBcUdaLElBckdnQixDQW9GNUIsV0FBVyxHQUNMLGNBQWMsR0FDVixHQUFHLEFBZUEsVUFBVyxDQTlCQSxDQUFDLEVBOEJHO0l6R25kMUIsU0FBUyxFeUdvZHlDLElBQUksQ3pHcGRwQyxVQUFVO0lBQzVCLFNBQVMsRXlHbWR5QyxJQUFJLEN6R25kcEMsVUFBVTtJQUM1QixLQUFLLEV5R2tkNkMsSUFBSSxDekdsZHhDLFVBQVUsR3lHbWRiO0VBdkdXLEFBd0daLElBeEdnQixDQW9GNUIsV0FBVyxHQUNMLGNBQWMsR0FDVixHQUFHLEFBa0JBLFVBQVcsQ0E5QkEsQ0FBQyxFQThCRztJekd0ZDFCLFNBQVMsRXlHdWR5QyxLQUFLLEN6R3ZkckMsVUFBVTtJQUM1QixTQUFTLEV5R3NkeUMsS0FBSyxDekd0ZHJDLFVBQVU7SUFDNUIsS0FBSyxFeUdxZDZDLEtBQUssQ3pHcmR6QyxVQUFVLEd5R3NkYjs7QXpHL1lULE1BQU0sTUFBQyxNQUFtQyxNQUdsQixTQUFTLEVBQUUsS0FBSyxPQUhoQixTQUFTLEVBQUUsTUFBTTtFeUdxU3JCLEFBa0h2QixJQWxIMkIsQ0FrSDNCLFlBQVksQ0FBRTtJQUNiLE1BQU0sRUFBRSxNQUFNLEdBSWQ7SUF2SHNCLEFBb0h0QixJQXBIMEIsQ0FrSDNCLFlBQVksQ0FFWCxHQUFHLENBQUU7TUFDSixLQUFLLEVBQUUsSUFBSSxHQUNYO0VBNWZDLEFBc1JRLElBdFJKLENBOFFSLGVBQWUsQ0FDWCxZQUFZLEdBQ04sR0FBRyxHQUFHLEdBQUcsQ0FNUCxDQUFDLENBMk9SO0lBQ0YsT0FBTyxFQUFFLElBQUksR0FDYjtFQTdIcUIsQUFrSXRCLElBbEkwQixDQWlJM0Isa0JBQWtCLENBQUMsNEJBQTRCLENBQzlDLGlCQUFpQjtFQWxJSyxJQUFJLENBaUkzQixrQkFBa0IsQ0FBQyw0QkFBNEIsQ0FFOUMsZ0JBQWdCLENBQUU7SUFDakIsS0FBSyxFQUFFLHVCQUF1QixHQUM5QjtFQXJJcUIsQUFzSXRCLElBdEkwQixDQWlJM0Isa0JBQWtCLENBQUMsNEJBQTRCLENBSzlDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUU7SUFDMUQsVUFBVSxFQUFFLElBQUksR0FDaEI7O0FBU0gsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VBakpBLEFBa0l0QixJQWxJMEIsQ0FpSTNCLGtCQUFrQixDQUFDLDRCQUE0QixDQUM5QyxpQkFBaUI7RUFsSUssSUFBSSxDQWlJM0Isa0JBQWtCLENBQUMsNEJBQTRCLENBRTlDLGdCQUFnQixDQWlCRztJQUNmLEtBQUssRUFBRSxJQUFJO0lBQ1gsU0FBUyxFQUFFLENBQUMsR0FDYjs7QUFZTCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RXhHdmtCeEIsQUFBQSx3QkFBd0IsQ3dHeWtCRztJQUN2QixLQUFLLEVBQUUsaUJBQWlCLENBQUMsVUFBVTtJQUNuQyxTQUFTLEVBQUUsWUFBWTtJQUN2QixTQUFTLEVBQUUsaUJBQWlCLENBQUMsVUFBVSxHQUN4QztFQUVELEFBQUEsYUFBYSxDQUFDO0lBQ1osS0FBSyxFQUFFLGlCQUFpQjtJQUN4QixVQUFVLEVBQUUsSUFBSSxHQUNqQjtFeEc5aUJILEFBMkVFLGdCQTNFYyxDQTJFZCxPQUFPLEN3R3Fla0I7SUFDdkIsU0FBUyxFQUFFLFlBQVk7SUFDdkIsbUJBQW1CLEVBQUUsT0FBTztJQUM1QixXQUFXLEVBQUUsT0FBTyxHQUNyQjtFckN0b0JILEFBQUEsS0FBSyxBQUFBLG9CQUFvQixDcUN5b0JHO0lBQ3hCLE1BQU0sRUFBRSxNQUFNLEdBQ2Y7RXJDaG5CSCxBQUNJLHdCQURvQixBQUNuQixtQkFBbUIsQ3FDZ25Cc0I7SUFDMUMsS0FBSyxFQUFFLGVBQWU7SUFDdEIsU0FBUyxFQUFFLGVBQWU7SUFDMUIsVUFBVSxFQUFFLFVBQVUsR0FtQnZCO0lyQ3ZvQkgsQUFPUSx3QkFQZ0IsQUFDbkIsbUJBQW1CLEdBTWQsR0FBRyxBQUFBLGlCQUFpQixDcUM4bUJIO01BQ3JCLE9BQU8sRUFBRSx1QkFBdUI7TUFDaEMsT0FBTyxFQUFFLGVBQWU7TUFDeEIsbUJBQW1CLEVBQUUsTUFBTTtNQUMzQixXQUFXLEVBQUUsTUFBTTtNQUNuQixRQUFRLEVBQUUsTUFBTSxHQUNqQjtJQVZILEFBV0Usd0JBWHNCLEFBQUEsbUJBQW1CLENBV3pDLGNBQWMsQ0FBQztNQUNiLFFBQVEsRUFBRSxNQUFNO01BQ2hCLElBQUksRUFBRSxDQUFDO01BQ1AsU0FBUyxFQUFFLENBQUMsR0FDYjtJckNob0JMLEFBYVksd0JBYlksQUFDbkIsbUJBQW1CLENBV2hCLGNBQWMsQ0FDVixJQUFJLEFBQUEsU0FBUyxDcUNvbkJRO01BQzNCLE9BQU8sRUFBRSxLQUFLO01BQ2QsUUFBUSxFQUFFLE1BQU07TUFDaEIsV0FBVyxFQUFFLE1BQU07TUFDbkIsYUFBYSxFQUFFLFFBQVEsR0FDeEI7O0FBT0wsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VBQ3RCLEFBQ0UsSUFERSxDQUFDLGtCQUFrQixBQUFBLFlBQVksQ0FDakMsZUFBZTtFQURqQixJQUFJLENBQUMsa0JBQWtCLEFBQUEsWUFBWSxDQUVqQyxZQUFZLENBQUM7SUFDWCxTQUFTLEVBQUUsS0FBSyxHQUNqQjtFQUpILEFBS0UsSUFMRSxDQUFDLGtCQUFrQixBQUFBLFlBQVksQ0FLakMsYUFBYSxDQUFDO0lBQ1osU0FBUyxFQUFFLEtBQUssR0FDakI7RUFwbUJELEFBeUtBLElBektJLENBd0tSLGtCQUFrQixBQUFBLFlBQVksQ0FDMUIsYUFBYSxDQTRiQztJekdubEJoQixTQUFTLEV5R29sQmUsSUFBSTtJekdubEI1QixTQUFTLEV5R21sQmUsSUFBSTtJekdsbEI1QixLQUFLLEV5R2tsQm1CLElBQUk7SUFDeEIsU0FBUyxFQUFFLElBQUksR0FDaEI7RUF4bUJELEFBOEtBLElBOUtJLENBd0tSLGtCQUFrQixBQUFBLFlBQVksQ0FNMUIsaUJBQWlCLENBMmJDO0l6R3ZsQnBCLFNBQVMsRXlHd2xCZSxLQUFLO0l6R3ZsQjdCLFNBQVMsRXlHdWxCZSxLQUFLO0l6R3RsQjdCLEtBQUssRXlHc2xCbUIsS0FBSyxHQUMxQjtFQTNtQkQsQUFpTEEsSUFqTEksQ0F3S1Isa0JBQWtCLEFBQUEsWUFBWSxDQVMxQixzQkFBc0IsQ0EyYkM7SXpHMWxCekIsU0FBUyxFeUcybEJlLEtBQUs7SXpHMWxCN0IsU0FBUyxFeUcwbEJlLEtBQUs7SXpHemxCN0IsS0FBSyxFeUd5bEJtQixLQUFLLEdBQzFCO0VBOW1CRCxBQW9MQSxJQXBMSSxDQXdLUixrQkFBa0IsQUFBQSxZQUFZLENBWTFCLFlBQVksQ0EyYkM7SUFDWCxTQUFTLEVBQUUsSUFBSSxHQUNoQjs7QUczdEJMLEFBQUEsVUFBVSxDQUFFO0VBQ1IsT0FBTyxFQUFFLElBQUk7RUFDYixXQUFXLEVBQUUsT0FBTztFR21IcEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFPLEdIL0RwQjtFQXRERCxBR3NISSxVSHRITSxHR3NISixDQUFDLENBQUU7SUFDRCxPQUFPLEVBQUUsQ0FBQyxDSHBISSxHQUFHLEdHcUhwQjtFSHhITCxBQUlJLFVBSk0sR0FJSixJQUFJLENBQUU7SUFDSixJQUFJLEVBQUUsQ0FBQztJQUNQLE9BQU8sRUFBRSxLQUFLO0lBQ2QsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsT0FBTztJQUNwQixRQUFRLEVBQUUsUUFBUTtJQUNsQixNQUFNLEVBQUUsT0FBTyxHQTBDbEI7SUFyREwsQUFZUSxVQVpFLEdBSUosSUFBSSxBQVFELE9BQU8sQ0FBRTtNQUNOLE9BQU8sRUFBRSxHQUFHO01BQ1osUUFBUSxFQUFFLFFBQVE7TUFDbEIsSUFBSSxFQUFFLEdBQUc7TUFDVCxXQUFXLEVBQUUsSUFBSTtNQUNqQixNQUFNLEVBQUUsSUFBSTtNR3VDdEIsTUFBTSxFQUFFLENBQUM7TUFDVCxLQUFLLEVBQUUsQ0FBQztNQWVKLFdBQVcsRUFaTCxHQUFVLENBWUksS0FBSyxDQWpCVixXQUFXO01Ba0IxQixZQUFZLEVBYk4sR0FBVSxDQWFLLEtBQUssQ0FsQlgsV0FBVztNQW1CMUIsVUFBVSxFSHhEbUIsR0FBRyxDR3dEWixLQUFLLENoSDlFeEIsT0FBTztNNkd1QkYsT0FBTyxFQUFFLElBQUksR0FFaEI7SUFyQlQsQUFzQlEsVUF0QkUsR0FJSixJQUFJLENBa0JGLElBQUksQ0FBRTtNQUNGLE9BQU8sRUFBRSxRQUFRO01BQ2pCLE9BQU8sRUFBRSxLQUFLO01BQ2QsS0FBSyxFQUFFLElBQUk7TUFDWCxVQUFVLEVBQUUsT0FBTztNQUNuQixLQUFLLEVBQUUsT0FBTztNQUNkLFdBQVcsRUFBRSxJQUFJO01BQ2pCLFNBQVMsRUFBRSxJQUFJLEdBQ2xCO0lBOUJULEFBaUNZLFVBakNGLEdBSUosSUFBSSxBQTRCRCxZQUFZLENBQ1QsSUFBSSxDQUFFO01BQ0YsYUFBYSxFQUFFLFdBQVcsR0FDN0I7SUFuQ2IsQUF1Q1ksVUF2Q0YsR0FJSixJQUFJLEFBa0NELFdBQVcsQ0FDUixJQUFJLENBQUU7TUFDRixhQUFhLEVBQUUsV0FBVyxHQUM3QjtJQXpDYixBQTZDWSxVQTdDRixHQUlKLElBQUksQUF3Q0QsT0FBTyxBQUNILE9BQU8sQ0FBRTtNQUNOLE9BQU8sRUFBRSxLQUFLLEdBQ2pCO0lBL0NiLEFBZ0RZLFVBaERGLEdBSUosSUFBSSxBQXdDRCxPQUFPLENBSUosSUFBSSxDQUFFO01BQ0YsVUFBVSxFN0dyRG5CLE9BQU87TTZHc0RFLEtBQUssRUFBRSxJQUFJLEdBQ2Q7O0FBdURiLEFBQUEscUJBQXFCLENBQUU7RUE3Q25CLFlBQVksRUFBRSxLQUFLO0VBQ25CLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLGVBQWUsRUFBRSxRQUFRO0VBQ3pCLEtBQUssRUFBRSxJQUFJLEdBNENkO0VBM0NHLE1BQU0sTUFBTSxNQUFNLE1BQU0sU0FBUyxFQUFFLE1BQU07SUF5QzdDLEFBQUEscUJBQXFCLENBQUU7TUF4Q2YsS0FBSyxFQUFFLGlCQUF5QjtNQUNoQyxXQUFXLEVBQUUsS0FBWSxHQXlDaEM7RUFGRCxBQW5DWSxxQkFtQ1MsQ0FyQ2pCLEVBQUUsR0FDSSxDQUFDLEFBQ0UsWUFBWSxDQUFFO0lBQ1gsS0FBSyxFQW1Da0IsSUFBSTtJQWxDM0IsYUFBYSxFQUFFLElBQUksR0FDdEI7RUFnQ2IsQUEvQlkscUJBK0JTLENBckNqQixFQUFFLEdBQ0ksQ0FBQyxHQUtHLENBQUMsQ0FBRTtJQUNELEtBQUssRUFBRSx1QkFBaUMsR0FJM0M7SUEwQmIsQUE3QmdCLHFCQTZCSyxDQXJDakIsRUFBRSxHQUNJLENBQUMsR0FLRyxDQUFDLEdBRUcsQ0FBQyxDQUFFO01BQ0QsWUFBWSxFQTZCYSxHQUFHLEdBNUIvQjtFQTJCakIsQUF2QlkscUJBdUJTLENBckNqQixFQUFFLEdBYUksRUFBRSxHQUNFLENBQUMsQ0FBRTtJQUNELFdBQVcsRUF1QmtCLEdBQUcsR0F0Qm5DO0VBcUJiLEFBakJRLHFCQWlCYSxDQWxCakIsS0FBSyxDQUNELEVBQUUsQ0FBRTtJQUNBLEtBQUssRUFBRSxPQUFPO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixPQUFPLEVBQUUsUUFBUTtJQUNqQixXQUFXLEVBQUUsR0FBRyxHQUNuQjtFQVlULEFBVFEscUJBU2EsQ0FWakIsS0FBSyxDQUNELEVBQUUsQ0FBRTtJQUNBLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLEtBQUssRUFBRSxPQUFPO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixjQUFjLEVBQUUsU0FBUyxHQUM1Qjs7QUE2QlQsQUFBQSxrQkFBa0IsQ0FBRTtFQXBCaEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsVUFBVSxFQUFFLE9BQU87RUFDbkIsYUFBYSxFQUFFLEdBQUc7RUFDbEIsT0FBTyxFQUFFLEdBQUc7RTVHaERkLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBWGIsc0JBQXNCLEVBK0JFLE1BQU07RUE5QnRCLGNBQWMsRUE4QkUsTUFBTTtFNEc0QjVCLE1BQU0sRUFBRSxPQUFPO0VBQ2YsS0FBSyxFQUFFLElBQUksR0FnQmQ7RUFGRCxBQWJJLGtCQWFjLENBYmQsYUFBYSxDQUFFO0lBQ1gsTUFBTSxFQUFFLG1CQUE4QixHQUl6QztJQVFMLEFBWFEsa0JBV1UsQ0FiZCxhQUFhLEdBRVAsYUFBYSxDQUFFO01BQ2IsVUFBVSxFQVdhLEdBQUcsR0FWN0I7RUFTVCxBQVBJLGtCQU9jLENBUGQsUUFBUSxDQUFFO0lBQ04sT0FBTyxFQUFFLElBQUk7SUFDYixLQUFLLEVBQUUsT0FBTztJNUdvSXBCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEdBQUcsRUFBRSxHQUFHO0lBQ1IsSUFBSSxFQUFFLEdBQUc7SUFDVCxVQUFVLEVBQUUsS0FBSztJQUNqQixXQUFXLEVBQUUsS0FBSztJQUtsQixTQUFTLEU0RzVJb0IsSUFBSSxHQUM5Qjs7QUFNTCxBQUFBLGFBQWEsQ0FBRTtFQUNYLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLE9BQU8sRUFBRSxLQUFLO0VBQ2QsU0FBUyxFQUFFLElBQUk7RUFDZixPQUFPLEVBQUUsSUFBSTtFQUNiLFdBQVcsRUFBRSxNQUFNO0VBQ25CLGVBQWUsRUFBRSxNQUFNLEdBQzFCOztBQUVELEFBQUEscUJBQXFCLENBQUU7RUFDbkIsVUFBVSxFQUFFLE9BQU87RUFDbkIsS0FBSyxFQUFFLE9BQU87RUFDZCxNQUFNLEVBQUUsT0FBTyxHQUNsQjs7QUFFRCxBQUFBLHFCQUFxQixDQUFFO0VBQ25CLFVBQVUsRTdHNUpQLE9BQU87RTZHNkpWLEtBQUssRUFBRSxJQUFJO0VBQ1gsUUFBUSxFQUFFLFFBQVE7RUFDbEIsT0FBTyxFQUFFLE1BQU0sR0FNbEI7RUFWRCxBQUtJLHFCQUxpQixDQUtqQixVQUFVLENBQUU7STVHaUdkLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEdBQUcsRUFBRSxHQUFHO0lBQ1IsVUFBVSxFQUFFLElBQUs7SUFpQmpCLFNBQVMsRTRHbkhzQixJQUFJO0lBQzdCLEtBQUssRUFBRSxHQUFHO0lBQ1YsTUFBTSxFQUFFLE9BQU8sR0FDbEI7O0FBR0wsQUFBQSx5QkFBeUIsQ0FBRTtFQUN2QixNQUFNLEVBQUUsT0FBTyxHQUlsQjtFQUxELEFBRUkseUJBRnFCLENBRXJCLFFBQVEsQ0FBRTtJQUNOLE9BQU8sRUFBRSxLQUFLLEdBQ2pCOztBQU1MLEFBQUEsY0FBYyxDQUFFO0VBQ1osT0FBTyxFQUFFLElBQUk7RUFDYixVQUFVLEVBQUUsSUFBSTtFNUc1R2xCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBWGIsc0JBQXNCLEVBOENFLEdBQUc7RUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztFQXhEM0IsbUJBQW1CLEU0R2lJUyxPQUFPO0U1R2hJM0IsV0FBVyxFNEdnSVMsT0FBTztFQUNqQyxhQUFhLEVBQUUsR0FBRyxHQW1CckI7RUF4QkQsQUFNSSxjQU5VLENBTVYsU0FBUyxDQUFDLFVBQVU7RUFOeEIsY0FBYyxDQU9WLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUM7SUFDdEMsU0FBUyxFQUFFLENBQUM7SUFDWixTQUFTLEVBQUUsSUFBSSxHQUNsQjtFQVZMLEFBV0ksY0FYVSxDQVdWLE1BQU0sQUFBQSxRQUFRLENBQUU7SUFDWixVQUFVLEVBQUUsSUFBSTtJQUNoQixVQUFVLEVBQUUsQ0FBQztJQUNiLE1BQU0sRUFBRSxJQUFJLEdBQ2Y7RUFmTCxBQWlCUSxjQWpCTSxHQWdCUixDQUFDLEFBQ0UsWUFBWSxDQUFFO0lBQ1gsSUFBSSxFQUFFLENBQUMsR0FDVjtFQW5CVCxBQW9CUSxjQXBCTSxHQWdCUixDQUFDLEdBSUcsQ0FBQyxDQUFFO0lBQ0QsV0FBVyxFQUFFLElBQUksR0FDcEI7O0FJMUxULEFBQUEsbUJBQW1CLENBQUU7RUFDcEIsTUFBTSxFQUFFLENBQUM7RUFDVCxLQUFLLEVqSGZDLE9BQU87RWlIZ0JiLFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLEdBQUcsR0FJaEI7RUFSRCxBQUtDLG1CQUxrQixBQUtqQixJQUFJLENBQUU7SUFDTixLQUFLLEVBQUUsT0FBTyxHQUNkOztBQU9GLEFBQUEsY0FBYyxDQUFFO0VoSHlCZCxtQkFBbUIsRWdIeEJNLE1BQU07RWhIeUJ2QixXQUFXLEVnSHpCTSxNQUFNLEdBQ2hDOztBQUVELEFBQ0MsYUFEWSxHQUNWLENBQUMsR0FBRyxDQUFDLENBQUU7RUFDUixZQUFZLEVBQUUsSUFBSSxHQUNsQjs7QUFHRixBQUFBLGFBQWEsQ0FBRTtFRDRGYixPQUFPLEVBQUUsS0FBSztFQUNkLFFBQVEsRUFBRSxRQUFRLEdDM0ZuQjtFQUZELEFEOEZFLGFDOUZXLEdEOEZULENBQUMsQ0FBRTtJQUNILE9BQU8sRUFBRSxZQUFZLEdBQ3RCOztBQzdGSCxBQUNDLHlCQUR3QixHQUN0QixDQUFDLENBQUU7RUFDSixjQUFjLEVBQUUsR0FBRyxHQUNuQjs7QUFFRixBQUNDLDRCQUQyQixHQUN6QixDQUFDLENBQUU7RUFDSixjQUFjLEVBQUUsTUFBTSxHQUN0Qjs7QUFFRixBQUFBLHNCQUFzQixDQUFFO0VEbUd0QixNQUFNLEVBQUUsSUFBTyxHQ2pHaEI7RUFGRCxBRG9HRSxzQkNwR29CLEdEb0dsQixDQUFDLENBQUU7SUFDSCxNQUFNLEVDcEdlLEdBQUcsR0RxR3pCOztBQ25HSCxBQUFBLHFCQUFxQixDQUFFO0VEZ0dyQixNQUFNLEVBQUUsSUFBTyxHQzlGaEI7RUFGRCxBRGlHRSxxQkNqR21CLEdEaUdqQixDQUFDLENBQUU7SUFDSCxNQUFNLEVDakdlLEdBQUcsR0RrR3pCOztBQ2hHSCxBQUFBLHdCQUF3QixDQUFFO0VENkZ4QixNQUFNLEVBQUUsSUFBTyxHQzNGaEI7RUFGRCxBRDhGRSx3QkM5RnNCLEdEOEZwQixDQUFDLENBQUU7SUFDSCxNQUFNLEVDOUZlLEdBQUcsR0QrRnpCOztBQzdGSCxBQUFBLDJCQUEyQixDQUFFO0VoSDZMM0IsV0FBVyxFK0doSE0sS0FBTztFL0dpSHhCLFlBQVksRStHakhLLEtBQU87RS9Hb0h4QixVQUFVLEUrRzlHTyxJQUFPO0UvRytHeEIsYUFBYSxFK0cvR0ksSUFBTyxHQ2hGekI7RUFIRCxBRDhFRSwyQkM5RXlCLEdEOEV2QixDQUFDLENBQUU7SS9HK0dMLFdBQVcsRWdINUxXLElBQUk7SWhINkwxQixZQUFZLEVnSDdMVSxJQUFJLEdEK0V6QjtFQ2hGSCxBRDhFRSwyQkM5RXlCLEdEOEV2QixDQUFDLENBTUU7SS9HNkdMLFVBQVUsRWdIL0xZLEdBQUc7SWhIZ016QixhQUFhLEVnSGhNUyxHQUFHLEdEb0Z4Qjs7QUNsRkgsQWhIaVBJLG9CZ0hqUGdCLEdoSGdQaEIsQ0FBQyxBQUNBLFlBQVksQ0FBRTtFQUNiLFVBQVUsRUFBRSxZQUFZLEdBQ3pCOztBZ0huUEwsQWhIb1BJLG9CZ0hwUGdCLEdoSGdQaEIsQ0FBQyxBQUlBLFdBQVcsQ0FBRTtFQUNaLGFBQWEsRUFBRSxZQUFZLEdBQzVCOztBZ0hsUEwsQUFBQSxXQUFXLENBQUU7RUFDWixLQUFLLEVqSHJFQSxPQUFPLEdpSHNFWjs7QUFDRCxBQUFBLFlBQVksQ0FBRTtFQUNiLEtBQUssRWpIcEVFLE9BQU8sR2lIcUVkOztBQUNELEFBQUEsVUFBVSxDQUFFO0VBQ1gsS0FBSyxFakhyRUcsT0FBTyxHaUhzRWY7O0FBQ0QsQUFBQSxlQUFlLENBQUU7RUFDaEIsS0FBSyxFakgzRUMsT0FBTyxHaUg0RWI7O0FBQ0QsQUFBQSxtQkFBbUI7QUFDbkIsWUFBWSxDQUFFO0VBQ2IsS0FBSyxFQUFFLGtCQUFrQixHQUN6Qjs7QUFFRCxBQUFBLFFBQVEsQ0FBRTtFaEhiUixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQThDRSxHQUFHO0VBN0NuQixjQUFjLEVBNkNFLEdBQUcsR2dIdEI1Qjs7QUFDRCxBQUFBLGNBQWMsQ0FBRTtFaEg5Q2QsWUFBWSxFZ0grQ0MsQ0FBQztFaEg5Q1YsUUFBUSxFZ0g4Q0MsQ0FBQztFaEg3Q04sSUFBSSxFZ0g2Q0MsQ0FBQyxHQUNmOztBQUVELEFBQUEsTUFBTSxBQUFBLEtBQUssQ0FBRTtFQUNaLFNBQVMsRUFBRSxLQUFLLEdBQ2hCOztBQW1CRCxBQUFBLHFCQUFxQixDQUFFO0VBQ3RCLFFBQVEsRUFBRSxJQUFJO0VBQ2QsVUFBVSxFQUFFLE9BQU8sR0F5Qm5CO0VoSHVFRyxNQUFNLE1BQU0sTUFBTSxNQUFNLFNBQVMsRUFBRSxLQUFLO0lnSGxHNUMsQUFBQSxxQkFBcUIsQ0FBRTtNaEh6Q3JCLE9BQU8sRUFBRSxZQUFZO01BQ3JCLE9BQU8sRUFBRSxXQUFXO01BQ3BCLE9BQU8sRUFBRSxJQUFJO01BWGIsc0JBQXNCLEVBOENFLEdBQUc7TUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztNZ0hjM0IsVUFBVSxFQVhpQixPQUFPLEdBNEJuQztNQTNCRCxBQVdFLHFCQVhtQixDQVduQixjQUFjLENBQUU7UUFDZixLQUFLLEVBQUUsS0FBSyxHQUNaO01BYkgsQUFjRSxxQkFkbUIsQ0FjbkIsbUJBQW1CLENBQUU7UWhIckZyQixZQUFZLEVnSHNGRyxDQUFDO1FoSHJGWixRQUFRLEVnSHFGRyxDQUFDO1FoSHBGUixJQUFJLEVnSG9GRyxDQUFDLEdBQ2Y7TUFoQkgsQUFpQkUscUJBakJtQixDQWlCbkIsZUFBZSxDQUFFO1FoSDFEakIsT0FBTyxFQUFFLFlBQVk7UUFDckIsT0FBTyxFQUFFLFdBQVc7UUFDcEIsT0FBTyxFQUFFLElBQUk7UUFYYixzQkFBc0IsRUE4Q0UsR0FBRztRQTdDbkIsY0FBYyxFQTZDRSxHQUFHLEdnSDBCMUI7UUF0QkgsQUFtQkcscUJBbkJrQixDQWlCbkIsZUFBZSxHQUVaLGVBQWUsQ0FBRTtVQUNsQixXQUFXLEVBQUUsQ0FBQyxHQUNkO01BckJKLEFBdUJFLHFCQXZCbUIsQ0F1Qm5CLHdCQUF3QixDQUFFO1FoSDlGMUIsWUFBWSxFZ0grRkcsQ0FBQztRaEg5RlosUUFBUSxFZ0g4RkcsQ0FBQztRaEg3RlIsSUFBSSxFZ0g2RkcsQ0FBQyxHQUNmOztBaEh5RUMsTUFBTSxNQUFNLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztFZ0h0RTVDLEFBQUEsb0JBQW9CLENBQUU7SWhIckVwQixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQThDRSxHQUFHO0lBN0NuQixjQUFjLEVBNkNFLEdBQUc7SStHYXpCLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBTyxHQ2dDcEI7SUFiRCxBRGxCSSxvQkNrQmdCLEdEbEJkLENBQUMsQ0FBRTtNQUNELE9BQU8sRUFBRSxDQUFDLENDeUJFLEdBQWUsR0R4QjlCO0lDZ0JMLEFEbEJJLG9CQ2tCZ0IsR0RsQmQsQ0FBQyxDQzJCQTtNQUNKLEtBQUssRUFBRSxHQUFHLEdBQ1Y7O0FBR0gsQUFBQSxxQkFBcUIsQ0FBRTtFaEhqSHJCLFlBQVksRWdIa0hDLENBQUM7RWhIakhWLFFBQVEsRWdIaUhDLENBQUM7RWhIaEhOLElBQUksRWdIZ0hDLENBQUM7RUFDZixPQUFPLEVBQUUsSUFBSTtFQUNiLFVBQVUsRUFBRSxPQUFPLEdBQ25COztBQVNELEFBQUEsY0FBYyxDQUFFO0VBQ2YsVUFBVSxFQUFFLE9BQU87RWhId0VsQixZQUFZLEVnSC9FQyxJQUFJO0VoSGdGakIsYUFBYSxFZ0hoRkEsSUFBSTtFQVNsQixXQUFXLEVBQUUsSUFBSTtFQUNqQixjQUFjLEVBQUUsSUFBSSxHQUNwQjs7QUFDRCxBQUFBLG9CQUFvQixDQUFFO0VBQ3JCLE1BQU0sRUFBRSxPQUFPO0VBQ2YsS0FBSyxFQUFFLElBQUk7RUFDWCxTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxHQUFHLEdBQ2hCOztBQWNELEFBQUEsc0JBQXNCLENBQUU7RWhIekh0QixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQThDRSxHQUFHO0VBN0NuQixjQUFjLEVBNkNFLEdBQUc7RUF4RDNCLG1CQUFtQixFQTZETyxNQUFNO0VBNUR4QixXQUFXLEVBNERPLE1BQU07RWdIaUZqQyxNQUFNLEVBQUUsT0FBTyxHQUVmOztBQUNELEFBQ0MsMkJBRDBCLENBQzFCLEdBQUcsQ0FBRTtFQUNKLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLElBQUk7RUFDWixhQUFhLEVBQUUsR0FBRztFQUNsQixPQUFPLEVBQUUsS0FBSyxHQUNkOztBQUVGLEFBQUEsNEJBQTRCLENBQUU7RUFDN0IsS0FBSyxFQUFFLElBQUk7RUFDWCxZQUFZLEVBQUUsSUFBSTtFQUNsQixXQUFXLEVBQUUsR0FBRztFQUNoQixTQUFTLEVBQUUsSUFBSSxHQUNmOztBQUNELEFBQUEsNEJBQTRCLENBQUU7RUFDN0IsT0FBTyxFQUFFLEtBQUs7RUFDZCxLQUFLLEVBQUUsSUFBSTtFQUNYLFNBQVMsRUFBRSxHQUFHO0VBQ2QsT0FBTyxFQUFFLFdBQVcsR0FDcEI7O0FBS0QsQUFBQSxlQUFlLENBQUU7RWhIbUJmLFlBQVksRWdIL0VDLElBQUk7RWhIZ0ZqQixhQUFhLEVnSGhGQSxJQUFJO0VoSG1GakIsV0FBVyxFZ0hyQkUsSUFBSTtFaEhzQmpCLGNBQWMsRWdIdEJELElBQUk7RUFDbEIsS0FBSyxFQUFFLElBQUksR0FDWDs7QUFDRCxBQUFBLHFCQUFxQixDQUFFO0VBQ3RCLFVBQVUsRUFwSGtCLE9BQU8sR0FxSG5DOztBaEhsQkcsTUFBTSxNQUFNLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztFZ0hzQjVDLEFBQUEsdUJBQXVCLENBQUU7SUFLdkIsS0FBSyxFQUFFLEtBQUssR0FFYjs7QUFDRCxBQUFBLDhCQUE4QixDQUFFO0VBQy9CLFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLEdBQUcsR0FDaEI7O0FBRUQsQWhIMkRJLGFnSDNEUyxHaEgwRFQsQ0FBQyxBQUNBLFlBQVksQ0FBRTtFQUNiLFVBQVUsRUFBRSxZQUFZLEdBQ3pCOztBZ0g3REwsQWhIOERJLGFnSDlEUyxHaEgwRFQsQ0FBQyxBQUlBLFdBQVcsQ0FBRTtFQUNaLGFBQWEsRUFBRSxZQUFZLEdBQzVCOztBZ0g1Q0wsQUFBQSxVQUFVLENBQUU7RUFDWCxPQUFPLEVBQUUsS0FBSztFQUNkLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLElBQUk7RUFDWixhQUFhLEVBQUUsR0FBRztFQUNsQixVQUFVLEVBQUUsT0FBTztFQUNuQixTQUFTLEVBQUUsSUFBSTtFaEh4TWQsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFYYixzQkFBc0IsRUE4Q0UsR0FBRztFQTdDbkIsY0FBYyxFQTZDRSxHQUFHLEdnSHlLNUI7RUFaRCxBQVJFLFVBUVEsR0FUUCxDQUFDLEFBQ0QsWUFBWSxDQUFFO0lBQ2QsWUFBWSxFQWVVLElBQUksR0FkMUI7RUFNSCxBQUxFLFVBS1EsR0FUUCxDQUFDLEFBSUQsV0FBVyxDQUFFO0lBQ2IsYUFBYSxFQVlTLElBQUksR0FYMUI7RUFHSCxBQVNDLFVBVFMsQ0FTVCxLQUFLLENBQUU7SUFDTixPQUFPLEVBQUUsS0FBSyxHQUNkOztBQUVGLEFBQUEsa0JBQWtCLENBQUU7RUFDbkIsVUFBVSxFQWhSTyxJQUFJO0VBaVJyQixVQUFVLEVBalJPLElBQUk7RUFrUnJCLE1BQU0sRUFsUlcsSUFBSSxHQW1SckI7O0FBQ0QsQUFBQSxtQkFBbUIsQ0FBRTtFQUNwQixhQUFhLEVBQUUsSUFBSSxHQUVuQjtFQUhELEFBMUJFLG1CQTBCaUIsR0EzQmhCLENBQUMsQUFDRCxZQUFZLENBQUU7SUFDZCxZQUFZLEVBMkJVLElBQUksR0ExQjFCO0VBd0JILEFBdkJFLG1CQXVCaUIsR0EzQmhCLENBQUMsQUFJRCxXQUFXLENBQUU7SUFDYixhQUFhLEVBd0JTLElBQUksR0F2QjFCOztBQTRDSCxBQWpCQyxrQkFpQmlCLENBakJqQixLQUFLLENBQUU7RUFDTixLQUFLLEVBQUUsT0FBTyxHQUlkO0VBWUYsQWhIWUUsa0JnSFpnQixDQWpCakIsS0FBSyxBaEg2QkgsMkJBQTJCLENBQUM7SWdIMUI1QixLQUFLLEVBQUUsT0FBTyxHaEgwQnlCO0VnSFoxQyxBaEhhRSxrQmdIYmdCLENBakJqQixLQUFLLEFoSDhCSCxpQkFBaUIsQ0FBVztJZ0gzQjVCLEtBQUssRUFBRSxPQUFPLEdoSDJCeUI7RWdIYjFDLEFoSGNFLGtCZ0hkZ0IsQ0FqQmpCLEtBQUssQWhIK0JILGtCQUFrQixDQUFVO0lnSDVCNUIsS0FBSyxFQUFFLE9BQU8sR2hINEJ5QjtFZ0hkMUMsQWhIZUUsa0JnSGZnQixDQWpCakIsS0FBSyxBaEhnQ0gsc0JBQXNCLENBQU07SWdIN0I1QixLQUFLLEVBQUUsT0FBTyxHaEg2QnlCOztBZ0hmMUMsQUFWRSxrQkFVZ0IsQ0FYakIseUJBQXlCLENBQ3hCLEtBQUssQ0FBRTtFQUNOLEtBQUssRUFBRSxPQUFPLEdBS2Q7RUFJSCxBQVJHLGtCQVFlLENBWGpCLHlCQUF5QixDQUN4QixLQUFLLEFBRUgsWUFBWSxDQUFFO0lBQ2QsS0FBSyxFQUFFLE9BQU87SUFDZCxPQUFPLEVBQUUsQ0FBQyxHQUNWOztBQVFKLEFBQUEsZ0JBQWdCLENBQUU7RUFDakIsTUFBTSxFQS9TVyxJQUFJLEdBb1RyQjtFQU5ELEFBRUMsZ0JBRmUsQ0FFZix5QkFBeUIsQ0FBQyxDQUFDLENBQUU7SUFDNUIsU0FBUyxFQUFFLEdBQUc7SUFDZCxXQUFXLEVBQUUsR0FBRyxHQUNoQjs7QUFHRixBQUFBLGdCQUFnQixDQUFFO0VoSHRQaEIsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFYYixzQkFBc0IsRUE4Q0UsR0FBRztFQTdDbkIsY0FBYyxFQTZDRSxHQUFHLEdnSG1ONUI7O0FBRUQsQUFBQSx5QkFBeUIsQ0FBRTtFaEgxUHpCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBWGIsc0JBQXNCLEVBOENFLEdBQUc7RUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztFQXhEM0IsbUJBQW1CLEVBNkRPLE1BQU07RUE1RHhCLFdBQVcsRUE0RE8sTUFBTTtFQXhFaEMsWUFBWSxFZ0gwUkMsQ0FBQztFaEh6UlYsUUFBUSxFZ0h5UkMsQ0FBQztFaEh4Uk4sSUFBSSxFZ0h3UkMsQ0FBQyxHQVlmO0VBZEQsQUFHQyx5QkFId0IsQ0FHeEIsS0FBSyxDQUFFO0loSDNSTixZQUFZLEVnSDRSRSxDQUFDO0loSDNSWCxRQUFRLEVnSDJSRSxDQUFDO0loSDFSUCxJQUFJLEVnSDBSRSxDQUFDLEdBSWY7SUFSRixBQUtFLHlCQUx1QixDQUd4QixLQUFLLEFBRUgsWUFBWSxDQUFFO01BQ2QsT0FBTyxFQVBvQixJQUFJLEdBUS9CO0VBUEgsQUFTQyx5QkFUd0IsQ0FTeEIsQ0FBQyxDQUFFO0lBQ0YsU0FBUyxFQUFFLEdBQUc7SUFDZCxZQUFZLEVBQUUsSUFBSTtJQUNsQixPQUFPLEVBQUUsSUFBSSxHQUNiOztBQUdGLEFBQUEsZUFBZSxDQUFFO0VoSDFRZixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQThDRSxHQUFHO0VBN0NuQixjQUFjLEVBNkNFLEdBQUc7RUF4RDNCLG1CQUFtQixFQTZETyxNQUFNO0VBNUR4QixXQUFXLEVBNERPLE1BQU0sR2dIMFBqQztFQTFCRCxBQUdFLGVBSGEsR0FFWixDQUFDLEdBQ0EsQ0FBQyxDQUFFO0lBQ0osV0FBVyxFQUFFLElBQUksR0FDakI7RUFMSCxBQU9DLGVBUGMsQ0FPZCxLQUFLLENBQUU7SUFDTixTQUFTLEVBQUUsQ0FBQztJaEhoVFosWUFBWSxFZ0hpVEUsQ0FBQztJaEhoVFgsUUFBUSxFZ0hnVEUsQ0FBQztJaEgvU1AsSUFBSSxFZ0grU0UsQ0FBQztJQUNmLFVBQVUsRUFBQyxJQUFJO0lBQ2YsTUFBTSxFQUFFLENBQUM7SUFDVCxTQUFTLEVBQUUsT0FBTyxHQUNsQjtFQWJGLEFBY0MsZUFkYyxDQWNkLFdBQVcsQ0FBRTtJQUNaLE9BQU8sRUFBRSxJQUFJO0lBQ2IsTUFBTSxFQUFFLE9BQU87SWhIeFNmLGtCQUFrQixFZ0h5U08sT0FBTztJaEh4U3hCLFVBQVUsRWdId1NPLE9BQU87SWhIM1JoQyxPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQThDRSxHQUFHO0lBN0NuQixjQUFjLEVBNkNFLEdBQUc7SUF4RDNCLG1CQUFtQixFQTZETyxNQUFNO0lBNUR4QixXQUFXLEVBNERPLE1BQU0sR2dIc1BoQztJQXRCRixBQW1CRSxlQW5CYSxDQWNkLFdBQVcsQUFLVCxNQUFNLENBQUU7TUFDUixPQUFPLEVBQUUsQ0FBQyxHQUNWO0VBckJILEFBdUJDLGVBdkJjLENBdUJkLFlBQVksQ0FBRTtJQUNiLFNBQVMsRUFBRSxJQUFJLEdBQ2Y7O0FBRUYsQUFBQSxzQkFBc0IsQ0FBRTtFQUN2QixVQUFVLEVBQUUsT0FBTyxHQUNuQjs7QUFFRCxBQUFBLHNCQUFzQixDQUFFO0VBQ3ZCLFVBQVUsRUFBRSxJQUFJLEdBQ2hCOztBQUVELEFBQUEscUJBQXFCLENBQUU7RUFDdEIsVUFBVSxFQUFFLE9BQU8sR0FPbkI7RUFSRCxBQUVDLHFCQUZvQixDQUVwQixLQUFLLENBQUU7SUFDTixLQUFLLEVBQUUsSUFBSSxHQUlYO0lBUEYsQWhIdERFLHFCZ0hzRG1CLENBRXBCLEtBQUssQWhIeERILDJCQUEyQixDQUFDO01nSDJENUIsT0FBTyxFQXpEb0IsSUFBSSxHaEhGUTtJZ0hzRDFDLEFoSHJERSxxQmdIcURtQixDQUVwQixLQUFLLEFoSHZESCxpQkFBaUIsQ0FBVztNZ0gwRDVCLE9BQU8sRUF6RG9CLElBQUksR2hIRFE7SWdIcUQxQyxBaEhwREUscUJnSG9EbUIsQ0FFcEIsS0FBSyxBaEh0REgsa0JBQWtCLENBQVU7TWdIeUQ1QixPQUFPLEVBekRvQixJQUFJLEdoSEFRO0lnSG9EMUMsQWhIbkRFLHFCZ0htRG1CLENBRXBCLEtBQUssQWhIckRILHNCQUFzQixDQUFNO01nSHdENUIsT0FBTyxFQXpEb0IsSUFBSSxHaEhDUTs7QWdIZ0UxQyxBQUFBLGNBQWMsQ0FBRTtFQUNmLE1BQU0sRUFBRSxVQUFVO0VBQ2xCLE9BQU8sRUFBRSxDQUFDO0VBQ1YsZUFBZSxFQUFFLElBQUksR0FrQ3JCO0VBckNELEFBS0UsY0FMWSxHQUlYLEVBQUUsR0FDRCxFQUFFLENBQUU7SUFDTCxVQUFVLEVBQUUsR0FBRyxHQUNmO0VBUEgsQUFTQyxjQVRhLENBU2IsQ0FBQyxDQUFFO0loSG5VRixPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQThDRSxHQUFHO0lBN0NuQixjQUFjLEVBNkNFLEdBQUc7SUF4RDNCLG1CQUFtQixFQTZETyxNQUFNO0lBNUR4QixXQUFXLEVBNERPLE1BQU07SWdIMlJoQyxVQUFVLEVBQUUsT0FBTztJQUNuQixLQUFLLEVBQUUsSUFBSTtJQUNYLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLGVBQWUsRUFBRSxJQUFJO0lBQ3JCLFdBQVcsRUFBRSxxQkFBcUIsR0FXbEM7SUExQkYsQUFtQkUsY0FuQlksQ0FTYixDQUFDLEFBVUMsT0FBTyxDQUFFO01BQ1QsaUJBQWlCLEVqSHJaYixPQUFPO01pSHNaWCxVQUFVLEVBQUUsT0FBTyxHQUluQjtNQXpCSCxBQXNCRyxjQXRCVyxDQVNiLENBQUMsQUFVQyxPQUFPLENBR1AsSUFBSSxDQUFFO1FBQ0wsS0FBSyxFQUFFLElBQUksR0FDWDtFQXhCSixBQTJCQyxjQTNCYSxDQTJCYixLQUFLLENBQUU7SWhIblhOLFlBQVksRWdIb1hFLENBQUM7SWhIblhYLFFBQVEsRWdIbVhFLENBQUM7SWhIbFhQLElBQUksRWdIa1hFLENBQUM7SUFDZixTQUFTLEVBQUUsSUFBSSxHQUNmO0VBOUJGLEFBK0JDLGNBL0JhLENBK0JiLElBQUksQ0FBRTtJQUNMLEtBQUssRUFBRSxPQUFPO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixZQUFZLEVBQUUsSUFBSSxHQUNsQjs7QUFNRixBQUFBLGlCQUFpQixDQUFFO0VBQ2xCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLFVBQVUsRUFBRSxJQUFJO0VBMVVoQixVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQU0sa0JBQUk7RUE0VTdCLFVBQVUsRUFBRSxHQUFHLENBQUMsS0FBSyxDakgvYWYsT0FBTyxHaUhnYmI7O0FBQ0QsQUFBQSx5QkFBeUIsQ0FBRTtFQUMxQixPQUFPLEVBQUUsY0FBYztFQUN2QixhQUFhLEVBQUUsaUJBQWlCO0VoSDVXL0IsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFYYixzQkFBc0IsRUE4Q0UsR0FBRztFQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0VBeEQzQixtQkFBbUIsRWdIaVlNLE1BQU07RWhIaFl2QixXQUFXLEVnSGdZTSxNQUFNLEdBTWhDO0VBVkQsQUFNRSx5QkFOdUIsR0FLdEIsQ0FBQyxHQUNBLENBQUMsQ0FBRTtJQUNKLFlBQVksRUFBRSxJQUFJLEdBQ2xCOztBQUdILEFBQUEsMkJBQTJCLENBQUU7RUFDNUIsTUFBTSxFQUFFLFFBQVEsR0FDaEI7O0FBQ0QsQUFBQSxXQUFXLENBQUU7RUFDWixPQUFPLEVBQUUsZ0JBQWdCLEdBQ3pCOztBQUtELEFBQ0MsTUFESyxBQUFBLFFBQVEsQUFDWixNQUFNLENBQUU7RUFDUixTQUFTLEVBQUUsSUFBSTtFQUNmLGNBQWMsRUFBRSxJQUFJO0VBQ3BCLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLGNBQWMsRUFBRSxDQUFDO0VBQ2pCLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLFVBQVUsRUFBRSxDQUFDO0VBQ2IsTUFBTSxFQUFFLElBQUk7RUFDWixPQUFPLEVBQUUsTUFBTTtFQUNmLGFBQWEsRUFBRSxHQUFHLEdBQ2xCOztBQU1GLEFBQUEsUUFBUSxDQUFFO0VBQ1QsY0FBYyxFQUFFLE1BQU07RUFDdEIsT0FBTyxFQUFFLFlBQVk7RUFDckIsU0FBUyxFQUFFLElBQUksR0FVZjtFQWJELEFBSUMsUUFKTyxBQUlOLGNBQWMsQ0FBRTtJQUNoQixTQUFTLEVBQUUsSUFBSSxHQUNmO0VBTkYsQUFPQyxRQVBPLEFBT04sZ0JBQWdCLENBQUU7SUFDbEIsU0FBUyxFQUFFLElBQUksR0FDZjtFQVRGLEFBVUMsUUFWTyxBQVVOLHNCQUFzQixDQUFFO0lBQ3hCLFNBQVMsRUFBRSxJQUFJLEdBQ2Y7O0FBRUYsQUFBQSxjQUFjLENBQUU7RUFDZixhQUFhLEVBQUUsSUFBSSxHQUNuQjs7QUFLRCxBQUFBLGFBQWEsQ0FBRTtFQUNkLFdBQVcsRUFBRSxNQUFNO0VBQ25CLEtBQUssRWpIOWVDLE9BQU87RWlIK2ViLFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLEdBQUc7RUFDaEIsTUFBTSxFQUFFLE9BQU8sR0FJZjtFQVRELEFBTUMsYUFOWSxDQU1aLENBQUMsQ0FBRTtJQUNGLGFBQWEsRUFBRSxHQUFHLEdBQ2xCOztBQU1GLEFBQ0MsWUFEVyxHQUNULFlBQVksQ0FBRTtFQUNmLFVBQVUsRUFBRSxJQUFJLEdBQ2hCOztBQVFGLEFBQUEsaUJBQWlCLENBQUU7RWhIOWJqQixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQThDRSxHQUFHO0VBN0NuQixjQUFjLEVBNkNFLEdBQUc7RUF4RDNCLG1CQUFtQixFZ0htZE0sUUFBUTtFaEhsZHpCLFdBQVcsRWdIa2RNLFFBQVE7RUFDbEMsTUFBTSxFQUFFLFFBQVEsR0FDaEI7O0FBQ0QsQUFBQSx1QkFBdUIsQ0FBRTtFaEhqZXZCLFlBQVksRWdIa2VDLENBQUM7RWhIamVWLFFBQVEsRWdIaWVDLENBQUM7RWhIaGVOLElBQUksRWdIZ2VDLENBQUMsR0FDZjs7QUFDRCxBQUFBLHVCQUF1QixDQUFFO0VBQ3hCLFlBQVksRUFBRSxJQUFJO0VBQ2xCLEtBQUssRUFBRSxHQUFHO0VBQ1YsU0FBUyxFQUFFLEtBQUssR0FDaEI7O0FBRUQsQUFBQSxlQUFlLENBQUU7RUFDaEIsU0FBUyxFQUFFLElBQUk7RUFDZixLQUFLLEVBQUUsT0FBTyxHQUNkOztBQUlELEFBQUEsa0JBQWtCLENBQUU7RWhIbmRsQixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQThDRSxHQUFHO0VBN0NuQixjQUFjLEVBNkNFLEdBQUcsR2dIaWQ1QjtFQW5DRCxBQUVDLGtCQUZpQixHQUVmLEdBQUcsQ0FBRTtJQUNOLE9BQU8sRUFBRSxLQUFLO0lBQ2QsTUFBTSxFQUFFLE9BQU87SUFDZixjQUFjLEVBQUUsR0FBRztJQUNuQixLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLFVBQVUsRWpIbGlCTCxPQUFPO0lpSG1pQlosYUFBYSxFQUFFLEdBQUc7SUFDbEIsT0FBTyxFQUFFLEdBQUcsR0FlWjtJQXpCRixBQVdFLGtCQVhnQixHQUVmLEdBQUcsR0FTRixDQUFDLENBQUU7TUFDSixXQUFXLEVBQUUsR0FBRyxHQUNoQjtJQWJILEFBY0Usa0JBZGdCLEdBRWYsR0FBRyxBQVlILE1BQU0sQ0FBRTtNQUNSLE9BQU8sRUFBRSxDQUFDLEdBQ1Y7SUFoQkgsQUFpQkUsa0JBakJnQixHQUVmLEdBQUcsQUFlSCxZQUFZLENBQUU7TUFDZCx1QkFBdUIsRUFBRSxDQUFDO01BQzFCLDBCQUEwQixFQUFFLENBQUMsR0FDN0I7SUFwQkgsQUFxQkUsa0JBckJnQixHQUVmLEdBQUcsQUFtQkgsV0FBVyxDQUFFO01BQ2Isc0JBQXNCLEVBQUUsQ0FBQztNQUN6Qix5QkFBeUIsRUFBRSxDQUFDLEdBQzVCO0VBeEJILEFBMEJDLGtCQTFCaUIsQ0EwQmpCLENBQUMsQ0FBRTtJQUNGLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEdBQUcsRUFBRSxJQUFJO0lBQ1QsT0FBTyxFQUFFLFlBQVk7SUFDckIsS0FBSyxFQUFFLElBQUk7SUFDWCxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGNBQWMsRUFBRSxHQUFHLEdBQ25COztBQUlGLEFBQUEsaUJBQWlCLEFBQUEseUJBQXlCLENBQUU7RUFDM0MsT0FBTyxFQUFFLFlBQVksR0F1QnJCO0VBeEJELEFBRUMsaUJBRmdCLEFBQUEseUJBQXlCLENBRXpDLFFBQVEsQ0FBRTtJQUNULE1BQU0sRUFBRSxDQUFDO0lBQ1QsV0FBVyxFQUFFLE9BQU8sR0FLcEI7SUFURixBQUtFLGlCQUxlLEFBQUEseUJBQXlCLENBRXpDLFFBQVEsQ0FHUCxvQkFBb0IsQ0FBRTtNQUNyQixZQUFZLEVBQUUsR0FBRztNQUNqQixhQUFhLEVBQUUsR0FBRyxHQUNsQjtFQVJILEFBWUcsaUJBWmMsQUFBQSx5QkFBeUIsR0FVdkMsZ0JBQWdCLEdBQ2YsZ0JBQWdCLEdBQ2YsUUFBUSxDQUFFO0lBQ1gsVUFBVSxFQUFFLElBQUksR0FRaEI7SUFyQkosQUFjSSxpQkFkYSxBQUFBLHlCQUF5QixHQVV2QyxnQkFBZ0IsR0FDZixnQkFBZ0IsR0FDZixRQUFRLENBRVQsRUFBRSxDQUFFO01BQ0gsU0FBUyxFQUFFLENBQUM7TUFDWixPQUFPLEVBQUUsR0FBRyxHQUlaO01BcEJMLEFBaUJLLGlCQWpCWSxBQUFBLHlCQUF5QixHQVV2QyxnQkFBZ0IsR0FDZixnQkFBZ0IsR0FDZixRQUFRLENBRVQsRUFBRSxHQUdDLElBQUksR0FBRyxJQUFJLENBQUU7UUFDZCxhQUFhLEVBQUUsQ0FBQyxHQUNoQjs7QUFPTixBQUFBLFdBQVcsQ0FBRTtFQUNaLE9BQU8sRUFBRSxZQUFZO0VoSDFsQmpCLGNBQWMsRWdIMmxCQyxjQUFjO0VoSDFsQjNCLFlBQVksRWdIMGxCQyxjQUFjO0VoSHpsQjVCLGFBQWEsRWdIeWxCQyxjQUFjO0VoSHhsQmhDLGlCQUFpQixFZ0h3bEJDLGNBQWM7RWhIdmxCeEIsU0FBUyxFZ0h1bEJDLGNBQWMsR0FDakM7O0FBS0QsQUFBQSxrQkFBa0IsQ0FBRTtFQUNuQixNQUFNLEVBQUUsT0FBTyxHQUtmO0VBTkQsQUFFQyxrQkFGaUIsQUFFaEIsT0FBTyxFQUZULGtCQUFrQixBQUdoQixNQUFNLENBQUU7SUFDUixVQUFVLEVBQUUsT0FBTyxHQUNuQjs7QUFJRixBQUFBLGFBQWEsQ0FBRTtFQUNkLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VBQ3RCLE1BQU0sRUFBRSxJQUFJO0VBQ1osS0FBSyxFQUFFLEdBQUc7RUFDVixXQUFXLEVBQUUsR0FBRyxHQXVDaEI7RUE3Q0QsQUFPQyxhQVBZLEFBT1gsT0FBTyxFQVBULGFBQWEsQUFPRCxNQUFNLENBQUU7SUFDbEIsTUFBTSxFQUFFLENBQUM7SUFDVCxLQUFLLEVBQUUsQ0FBQztJQUNSLE9BQU8sRUFBRSxHQUFHO0lBQ1osT0FBTyxFQUFFLEtBQUs7SUFDZCxRQUFRLEVBQUUsUUFBUTtJQUNsQixJQUFJLEVBQUUsQ0FBQztJQUNQLFlBQVksRUFBRSxLQUFLO0lBQ25CLFlBQVksRUFBRSxXQUFXO0lBQ3pCLGdCQUFnQixFQUFFLEdBQUc7SUFDckIsbUJBQW1CLEVBQUUsR0FBRztJQUN4QixpQkFBaUIsRUFBRSxHQUFHO0lBQ3RCLGtCQUFrQixFQUFFLEdBQUcsR0FDdkI7RUFwQkYsQUFxQkMsYUFyQlksQUFxQlgsT0FBTyxDQUFFO0lBQ1QsbUJBQW1CLEVBeEJJLE9BQU87SUF5QjlCLEdBQUcsRUFBRSxJQUFJLEdBQ1Q7RUF4QkYsQUF5QkMsYUF6QlksQUFPRCxNQUFNLENBa0JSO0lBQ1IsZ0JBQWdCLEVBNUJPLE9BQU87SUE2QjlCLE1BQU0sRUFBRSxJQUFJLEdBQ1o7RUFDRCxBQUNDLHdCQUR1QixDQTdCekIsYUFBYSxBQThCVixPQUFPLENBQUU7SUFDVCxPQUFPLEVBQUUsSUFBSSxHQUNiO0VBSEYsQUFJQyx3QkFKdUIsQ0E3QnpCLGFBQWEsQUFpQ1YsTUFBTSxDQUFFO0lBQ1IsZ0JBQWdCLEVBbkNLLE9BQU8sR0FvQzVCO0VBRUYsQUFDQyx1QkFEc0IsQ0FyQ3hCLGFBQWEsQUFzQ1YsT0FBTyxDQUFFO0lBQ1QsbUJBQW1CLEVBeENFLE9BQU8sR0F5QzVCO0VBSEYsQUFJQyx1QkFKc0IsQ0FyQ3hCLGFBQWEsQUF5Q1YsTUFBTSxDQUFFO0lBQ1IsT0FBTyxFQUFFLElBQUksR0FDYjs7QUFTSCxBQUFBLFdBQVcsQ0FBRTtFQUNaLFNBQVMsRUFBRSxJQUFJO0VBQ2YsS0FBSyxFakhqcUJDLE9BQU87RWlIa3FCYixNQUFNLEVBQUUsT0FBTyxHQU9mO0VBVkQsQUFJQyxXQUpVLEFBSVQsWUFBWSxDQUFFO0lBQ2QsU0FBUyxFQUFFLElBQUksR0FDZjtFQU5GLEFBT0MsV0FQVSxBQU9ULFlBQVksQ0FBRTtJQUNkLFNBQVMsRUFBRSxJQUFJLEdBQ2Y7O0FBTUYsQUFBQSxnQkFBZ0IsQ0FBRTtFQUNqQixTQUFTLEVBQUUsSUFBSTtFQUNmLEtBQUssRUFBRSxPQUFPLEdBQ2Q7O0FBQ0QsQUFBQSx3QkFBd0IsQ0FBRTtFQUN6QixLQUFLLEVqSGhyQkUsT0FBTyxHaUhpckJkOztBQUtELEFBQUEsa0JBQWtCLENBQUU7RUFDbkIsU0FBUyxFQUFFLElBQUk7RUFDZixZQUFZLEVBQUUsR0FBRyxHQUNqQjs7QWhIaGZHLE1BQU0sTUFBTSxNQUFNLE1BQU0sU0FBUyxFQUFFLE1BQU07RWdIcWY1QyxBQUVFLFNBRk8sQ0FDUixFQUFFLEdBQ0MsQ0FBQyxDQUFFO0loSG5kTixZQUFZLEVnSG9kSSxJQUFNO0loSG5kdEIsYUFBYSxFZ0htZEcsSUFBTSxHQU9wQjtJQVZILEFBSUcsU0FKTSxDQUNSLEVBQUUsR0FDQyxDQUFDLEFBRUQsWUFBWSxDQUFFO01BQ2QsWUFBWSxFQWlCTSxJQUFJLEdBaEJ0QjtJQU5KLEFBT0csU0FQTSxDQUNSLEVBQUUsR0FDQyxDQUFDLEFBS0QsV0FBVyxDQUFFO01BQ2IsYUFBYSxFQWNLLElBQUksR0FidEI7RUFJSixBQUFBLGNBQWMsQ0FBRTtJaEg5ZGYsWUFBWSxFZ0h1ZVMsSUFBSTtJaEh0ZXpCLGFBQWEsRWdIc2VRLElBQUksR0FQekI7O0FoSGpnQkUsTUFBTSxNQUFNLE1BQU0sTUFBTSxTQUFTLEVBQUUsTUFBTTtFZ0hrZjVDLEFBRUUsU0FGTyxDQUNSLEVBQUUsR0FDQyxDQUFDLENBQUU7SWhIbmROLFlBQVksRWdIb2RJLEdBQU07SWhIbmR0QixhQUFhLEVnSG1kRyxHQUFNLEdBT3BCO0lBVkgsQUFJRyxTQUpNLENBQ1IsRUFBRSxHQUNDLENBQUMsQUFFRCxZQUFZLENBQUU7TUFDZCxZQUFZLEVBb0JNLEdBQUcsR0FuQnJCO0lBTkosQUFPRyxTQVBNLENBQ1IsRUFBRSxHQUNDLENBQUMsQUFLRCxXQUFXLENBQUU7TUFDYixhQUFhLEVBaUJLLEdBQUcsR0FoQnJCO0VBSUosQUFBQSxjQUFjLENBQUU7SWhIOWRmLFlBQVksRWdIMGVTLEdBQUc7SWhIemV4QixhQUFhLEVnSHllUSxHQUFHLEdBVnhCOztBQWdCRixBQUFBLG9CQUFvQixDQUFFO0VBQ3JCLEtBQUssRUFBRSxPQUFPO0VBQ2QsU0FBUyxFQUFFLElBQUk7RUFDZixVQUFVLEVBQUUsSUFBSTtFQWhvQmhCLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBTSxrQkFBSSxHQXFvQjdCO0VoSHpoQkcsTUFBTSxNQUFNLE1BQU0sTUFBTSxTQUFTLEVBQUUsTUFBTTtJZ0hpaEI3QyxBQUFBLG9CQUFvQixDQUFFO01BTXBCLFNBQVMsRUFBRSxJQUFJLEdBRWhCOztBQUVELEFBQ0MsU0FEUSxDQUNSLEtBQUssQ0FBRTtFQUNOLGVBQWUsRUFBRSxRQUFRO0VBQ3pCLEtBQUssRUFBRSxJQUFJO0VBQ1gsU0FBUyxFQUFFLE9BQU8sR0FDbEI7O0FBOUNELEFBRUUsU0FGTyxDQUNSLEVBQUUsR0FDQyxDQUFDLENBOENDO0VBQ0osVUFBVSxFQUFFLE1BQU07RUFDbEIsY0FBYyxFQUFFLE1BQU0sR0FJdEI7RUF0REYsQUFJRyxTQUpNLENBQ1IsRUFBRSxHQUNDLENBQUMsQUFFRCxZQUFZLENBK0NDO0lBQ2QsVUFBVSxFQUFFLElBQUksR0FDaEI7O0FBWkosQUFjRSxTQWRPLENBTVIsRUFBRSxDQVFELEVBQUUsQ0FBRTtFQUNILGFBQWEsRUFBRSxpQkFBaUI7RUFDaEMsV0FBVyxFQUFFLEdBQUc7RWhIdGdCakIsV0FBVyxFZ0h1Z0JJLElBQUk7RWhIdGdCbkIsY0FBYyxFZ0hzZ0JDLElBQUksR0FDbEI7O0FBbEJILEFBbUJFLFNBbkJPLENBTVIsRUFBRSxDQWFELEVBQUUsQ0FBRTtFQUNILGFBQWEsRUFBRSxpQkFBaUI7RWhIMWdCakMsV0FBVyxFZ0gyZ0JJLElBQUk7RWhIMWdCbkIsY0FBYyxFZ0gwZ0JDLElBQUksR0FDbEI7O0FBSUgsQUFBQSx1QkFBdUIsQ0FBRTtFQUN4QixNQUFNLEVBQUUsUUFBUTtFQUNoQixLQUFLLEVBQUUsT0FBTztFQUNkLGNBQWMsRUFBRSxHQUFHO0VBQ25CLGNBQWMsRUFBRSxTQUFTO0VBQ3pCLFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLElBQUksR0FDakI7O0FBQ0QsQUFBQSxvQkFBb0IsQ0FBRTtFQUNyQixVQUFVLEVBQUUsTUFBTTtFaEh6aEJqQixXQUFXLEVnSDBoQkUsSUFBSTtFaEh6aEJqQixjQUFjLEVnSHloQkQsSUFBSSxHQUNsQjs7QUFDRCxBQUFBLElBQUksQ0FBRTtFQUNMLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLFdBQVcsRUFBRSxNQUFNO0VBQ25CLE1BQU0sRUFBRSxPQUFPO0VBQ2YsVUFBVSxFQUFFLE1BQU0sR0FDbEI7O0FBQ0QsQUFBQSxhQUFhLENBQUU7RUFDZCxTQUFTLEVBQUUsS0FBSztFQUNoQixXQUFXLEVBQUUsSUFBSTtFQUNqQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ2pIenhCWCxPQUFPO0VpSDB4QmIsT0FBTyxFQUFFLE1BQU07RUFDZixXQUFXLEVBQUUsR0FBRztFQUNoQixTQUFTLEVBQUUsSUFBSTtFQUNmLEtBQUssRWpIN3hCQyxPQUFPO0VpSDh4QmIsYUFBYSxFQUFFLEdBQUcsR0FDbEI7O0FBRUQsQUFBQSxTQUFTLENBQUU7RUFDVixXQUFXLEVBQUUsR0FBRyxHQUNoQjs7QUFVRCxBQUFBLHlCQUF5QixDQUFFO0VoSHR1QnpCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBWGIsc0JBQXNCLEVBOENFLEdBQUc7RUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztFQXhEM0IsbUJBQW1CLEVnSDJ2Qk0sT0FBTztFaEgxdkJ4QixXQUFXLEVnSDB2Qk0sT0FBTyxHQVNqQztFQVhELEFBR0MseUJBSHdCLEdBR3RCLEdBQUcsQ0FBRTtJaEh6dUJOLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBOENFLEdBQUc7SUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztJQXhEM0IsbUJBQW1CLEVnSDh2Qk8sTUFBTTtJaEg3dkJ4QixXQUFXLEVnSDZ2Qk8sTUFBTTtJQUNoQyxPQUFPLEVBQUUsU0FBUyxHQUlsQjtJQVZGLEFBT0UseUJBUHVCLEdBR3RCLEdBQUcsR0FJRixHQUFHLENBQUU7TUFDTixXQUFXLEVBQUUsaUJBQWlCLEdBQzlCOztBQUlILEFBQUEsdUJBQXVCLENBQUU7RUFDeEIsYUFBYSxFQUFFLElBQUk7RWhIcHZCbEIsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFYYixzQkFBc0IsRUE4Q0UsR0FBRztFQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0VBeEQzQixtQkFBbUIsRWdIeXdCTSxNQUFNO0VoSHh3QnZCLFdBQVcsRWdId3dCTSxNQUFNLEdBQ2hDOztBQUtELEFBQUEsZUFBZSxDQUFFO0VBQ2hCLEtBQUssRUFBRSxLQUFLLEdBQ1o7O0FBS0QsQUFBQSxTQUFTLENBQUU7RUFDVixLQUFLLEVqSDMwQkMsT0FBTztFaUg0MEJiLE1BQU0sRUFBRSxPQUFPO0VBQ2YsU0FBUyxFQUFFLElBQUksR0FDZjs7QUFDRCxBQUFBLGVBQWUsQ0FBRTtFQUNoQixTQUFTLEVBQUUsSUFBSSxHQUNmOztBQU1ELEFBQUEsUUFBUSxDQUFFO0VoSGh4QlIsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFYYixzQkFBc0IsRUE4Q0UsR0FBRztFQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0VBeEQzQixtQkFBbUIsRWdIcXlCTSxNQUFNO0VoSHB5QnZCLFdBQVcsRWdIb3lCTSxNQUFNO0VoSDV3Qi9CLHVCQUF1QixFZ0g2d0JNLE1BQU07RWhINXdCM0IsZUFBZSxFZ0g0d0JNLE1BQU07RUFDcEMsY0FBYyxFQUFFLE1BQU07RUFDdEIsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsSUFBSTtFQUNaLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLFVBQVUsRWpILzFCSixPQUFPO0VpSGcyQmIsS0FBSyxFQUFFLElBQUk7RUFDWCxTQUFTLEVBQUUsSUFBSTtFQUNmLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLE1BQU0sRUFBRSxPQUFPLEdBQ2Y7O0FBTUQsQUFDQyxTQURRLENBQ1IsUUFBUSxDQUFFO0VBQ1QsTUFBTSxFQUFFLENBQUM7RUFDVCxNQUFNLEVBQUUsQ0FBQztFQUNULE9BQU8sRUF0MkJNLElBQUksQ0FzMkJNLENBQUMsR0FJeEI7RUFSRixBQUtFLFNBTE8sQ0FDUixRQUFRLEdBSUwsUUFBUSxDQUFFO0lBQ1gsVUFBVSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBUFYsT0FBTyxHQVFsQjs7QUFHSCxBQUFBLGVBQWUsQ0FBRTtFQUNoQixVQUFVLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FaUixPQUFPO0VBYXBCLE9BQU8sRUFBRSxJQUFJLENBOTJCQyxJQUFJO0VBKzJCbEIsVUFBVSxFQUFFLE1BQU0sR0FDbEI7O0FBRUQsQUFBQSxZQUFZLENBQUU7RWhIbnpCWixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQThDRSxHQUFHO0VBN0NuQixjQUFjLEVBNkNFLEdBQUc7RUF4RDNCLG1CQUFtQixFZ0h3MEJNLE1BQU07RWhIdjBCdkIsV0FBVyxFZ0h1MEJNLE1BQU07RUFDaEMsT0FBTyxFQUFFLENBQUMsQ0FyM0JJLElBQUk7RUFzM0JsQixVQUFVLEVBdjNCTyxJQUFJLEdBMjNCckI7RUFSRCxBQUtDLFlBTFcsR0FLVCxZQUFZLENBQUU7SUFDZixVQUFVLEVBeDNCRyxJQUFJLEdBeTNCakI7O0FBRUYsQUFBQSwwQkFBMEIsQ0FBRTtFaEgvMEIxQixtQkFBbUIsRWdIZzFCTSxVQUFVO0VoSC8wQjNCLFdBQVcsRWdIKzBCTSxVQUFVO0VoSGhwQm5DLFdBQVcsRWdIaXBCRSxJQUFJO0VoSGhwQmpCLGNBQWMsRWdIZ3BCRCxJQUFJLEdBSWxCO0VBTkQsQUFHQywwQkFIeUIsQ0FHekIsc0JBQXNCLENBQUU7SUFDdkIsV0FBVyxFQUFFLElBQUksR0FDakI7O0FBSUYsQUFBQSxzQkFBc0IsQ0FBRTtFQUN2QixVQUFVLEVBQUUsR0FBRztFQUNmLEtBQUssRUFBRSxLQUFLO0VBQ1osVUFBVSxFQUFFLEtBQUs7RUFDakIsU0FBUyxFQUFFLElBQUk7RUFDZixLQUFLLEVBQUUsT0FBTztFQUNkLGFBQWEsRUFBRSxJQUFJLEdBQ25COztBQUNELEFBQUEsdUJBQXVCLENBQUU7RWhIMzJCdkIsWUFBWSxFZ0g0MkJDLENBQUM7RWhIMzJCVixRQUFRLEVnSDIyQkMsQ0FBQztFaEgxMkJOLElBQUksRWdIMDJCQyxDQUFDLEdBQ2Y7O0FBRUQsQUFBQSxVQUFVLENBQUU7RWhIajFCVixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQThDRSxHQUFHO0VBN0NuQixjQUFjLEVBNkNFLEdBQUc7RStHYXpCLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBTyxHQ2t5QnBCO0VBSEQsQUQ5eEJJLFVDOHhCTSxHRDl4QkosQ0FBQyxDQUFFO0lBQ0QsT0FBTyxFQUFFLENBQUMsQ0MreEJDLEdBQWUsR0Q5eEI3Qjs7QUNneUJMLEFBQUEsc0JBQXNCLENBQUU7RUFDdkIsU0FBUyxFQUFFLEtBQUssR0FDaEI7O0FBQ0QsQUFDQyxrQkFEaUIsR0FDZixDQUFDLENBQUU7RUFDSixLQUFLLEVBQUUsR0FBRyxHQUNWOztBQUVGLEFBQ0Msb0JBRG1CLEdBQ2pCLENBQUMsQ0FBRTtFQUNKLEtBQUssRUFBRSxNQUFNLEdBQ2I7O0FBRUYsQUFDQyxtQkFEa0IsR0FDaEIsQ0FBQyxDQUFFO0VBQ0osS0FBSyxFQUFFLEdBQUcsR0FDVjs7QUFNRixBQUFBLFVBQVUsQ0FBRTtFaEgzMkJWLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBWGIsc0JBQXNCLEVBOENFLEdBQUc7RUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztFQXhEM0IsbUJBQW1CLEVnSGc0Qk0sTUFBTTtFaEgvM0J2QixXQUFXLEVnSCszQk0sTUFBTSxHQVNoQztFQVhELEFBR0MsVUFIUyxDQUdULENBQUMsQ0FBRTtJQUNGLFNBQVMsRUFBRSxJQUFJO0lBQ2YsS0FBSyxFQUFFLE9BQU8sR0FDZDtFQU5GLEFBT0MsVUFQUyxDQU9ULElBQUksQ0FBRTtJaEhoNUJMLFlBQVksRWdIaTVCRSxDQUFDO0loSGg1QlgsUUFBUSxFZ0hnNUJFLENBQUM7SWhILzRCUCxJQUFJLEVnSCs0QkUsQ0FBQztJQUNmLFlBQVksRUFBRSxJQUFJLEdBQ2xCOztBQUdGLEFBQUEsWUFBWSxDQUFFO0VBQ2IsU0FBUyxFQUFFLEtBQUs7RUFDaEIsVUFBVSxFQUFFLE9BQU87RUFDbkIsYUFBYSxFQUFFLEdBQUc7RUFDbEIsT0FBTyxFQUFFLG1CQUFtQixHQUM1Qjs7QUFFRCxBQUFBLGdCQUFnQixDQUFFO0VBQ2pCLEtBQUssRUFBRSxPQUFPLEdBQ2Q7O0FBS0QsQUFBQSwwQkFBMEIsQ0FBRTtFQUMzQixPQUFPLEVBQUUsSUFBSSxHQUliO0VBSEEsQUFBQSxVQUFVLENBRlgsMEJBQTBCLENBRVg7SUFDYixPQUFPLEVBQUUsS0FBSyxHQUNkOztBQUlELEFBQUEsVUFBVSxDQURYLHNCQUFzQixDQUNQO0VBQ2IsT0FBTyxFQUFFLElBQUksR0FDYjs7QUFNRixBQUFBLFdBQVcsQ0FBRTtFQUNaLE9BQU8sRUFBRSxTQUFTO0VBQ2xCLFVBQVUsRUFBRSxPQUFPO0VBQ25CLGFBQWEsRUFBRSxHQUFHLEdBU2xCO0VBWkQsQUFJQyxXQUpVLEdBSVIsV0FBVyxDQUFFO0lBQ2QsVUFBVSxFQUFFLEdBQUcsR0FDZjtFQU5GLEFBUUUsV0FSUyxBQU9ULFVBQVUsQ0FDVixvQkFBb0IsQ0FBRTtJQUNyQixPQUFPLEVBQUUsSUFBSSxHQUNiOztBQUlILEFBQUEsb0JBQW9CLENBQUU7RWhIcDZCcEIsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFYYixzQkFBc0IsRUE4Q0UsR0FBRztFQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0VBeEQzQixtQkFBbUIsRWdIeTdCTSxNQUFNO0VoSHg3QnZCLFdBQVcsRWdIdzdCTSxNQUFNLEdBQ2hDOztBQUNELEFBQUEsb0NBQW9DLENBQUU7RWhIdDhCcEMsWUFBWSxFZ0h1OEJDLENBQUM7RWhIdDhCVixRQUFRLEVnSHM4QkMsQ0FBQztFaEhyOEJOLElBQUksRWdIcThCQyxDQUFDLEdBQ2Y7O0FBQ0QsQUFBQSwwQkFBMEIsQ0FBRTtFQUMzQixLQUFLLEVqSG4vQkMsT0FBTztFaUhvL0JiLFNBQVMsRUFBRSxJQUFJO0VBQ2YsTUFBTSxFQUFFLE9BQU87RUFDZixPQUFPLEVBQUUsR0FBRyxHQUNaOztBQUVELEFBQUEsb0JBQW9CLENBQUU7RUFDckIsT0FBTyxFQUFFLFFBQVEsR0FDakI7O0FBS0QsQUFBQSxpQkFBaUIsQ0FBRTtFQUNsQixVQUFVLEVBQUUsSUFBSTtFQUNoQixNQUFNLEVBQUUsQ0FBQztFQUNULE9BQU8sRUFBRSxDQUFDLEdBdUJWO0VBMUJELEFBSUMsaUJBSmdCLENBSWhCLEVBQUUsQ0FBRTtJQUNILFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLE9BQU8sRUFBRSxDQUFDLEdBQ1Y7RUFSRixBQVNDLGlCQVRnQixDQVNoQixFQUFFLEdBQUcsRUFBRTtFQVRSLGlCQUFpQixDQVVoQixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1YsVUFBVSxFQUFFLEdBQUcsR0FDZjtFQVpGLEFBY0UsaUJBZGUsR0FhZCxFQUFFLEdBQ0QsS0FBSyxDQUFDLElBQUksQ0FBQztJQUNaLFdBQVcsRUFBRSxHQUFHLEdBQ2hCO0VBaEJILEFBaUJFLGlCQWpCZSxHQWFkLEVBQUUsR0FJRCxFQUFFLENBQUU7SUFDTCxhQUFhLEVBQUUsSUFBSSxHQU1uQjtJQXhCSCxBQW9CSSxpQkFwQmEsR0FhZCxFQUFFLEdBSUQsRUFBRSxHQUVELEVBQUUsR0FDRCxFQUFFLENBQUU7TUFDTCxhQUFhLEVBQUUsSUFBSSxHQUNuQjs7QUFNTCxBQUFBLFlBQVksQ0FBRTtFQUNiLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLE1BQU0sRUFBRSxNQUFNO0VBQ2QsT0FBTyxFQUFFLENBQUMsR0FJVjtFQVBELEFBSUMsWUFKVyxHQUlULEVBQUUsQ0FBRTtJQUNMLGFBQWEsRUFBRSxJQUFJLEdBQ25COztBQUdGLEFBQUEsZUFBZSxDQUFFO0VoSDc0QmYsb0JBQW9CLEVnSDg0QkMsQ0FBQztFaEg3NEJ0QixpQkFBaUIsRWdINjRCSSxDQUFDO0VoSDU0QnRCLFlBQVksRWdINDRCUyxDQUFDLEdBQ3ZCOztBQUVELEFBQUEsZUFBZSxDQUFFO0VoSGwrQmYsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFYYixzQkFBc0IsRUE4Q0UsR0FBRztFQTdDbkIsY0FBYyxFQTZDRSxHQUFHO0VBeEQzQixtQkFBbUIsRWdIdS9CTSxNQUFNO0VoSHQvQnZCLFdBQVcsRWdIcy9CTSxNQUFNO0VBQ2hDLFVBQVUsRUFBRSxPQUFPO0VBQ25CLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLE9BQU8sRUFBRSxRQUFRO0VBQ2pCLEtBQUssRUFBRSxPQUFPLEdBY2Q7RUFwQkQsQUFPQyxlQVBjLENBT2QsSUFBSSxDQUFFO0lBQ0wsV0FBVyxFQUFFLE1BQU07SUFDbkIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsU0FBUztJQUN6QixjQUFjLEVBQUUsS0FBSyxHQUNyQjtFQWJGLEFBY0MsZUFkYyxDQWNkLENBQUMsQ0FBRTtJQUNGLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLE9BQU8sRUFBRSxLQUFLO0lBQ2QsTUFBTSxFQUFFLE9BQU87SUFDZixTQUFTLEVBQUUsSUFBSSxHQUNmOztBQU1GLEFBRUMsS0FGSSxBQUFBLGVBQWUsQ0FFbkIsSUFBSTtBQURMLEtBQUssQUFBQSxZQUFZLENBQ2hCLElBQUksQ0FBRTtFQUNMLFNBQVMsRUFBRSxJQUFJO0VBQ2YsS0FBSyxFQUFFLE9BQU8sR0FDZDs7QUFPRixBQUFBLGVBQWUsQ0FBRTtFQUNoQixPQUFPLEVBQUUsSUFBSSxHQUNiOztBaEg5M0JHLE1BQU0sTUFBTSxNQUFNLE1BQU0sU0FBUyxFQUFFLEtBQUs7RWdIbzRCNUMsQUFBQSx1QkFBdUIsQ0FBRTtJQUV2QixPQUFPLEVBQUUsS0FBSyxHQUVmOztBQU1ELEFBQUEsWUFBWSxDQUFFO0VBQ2IsS0FBSyxFQUFFLElBQUksR0FLWDtFQU5ELEFBRUMsWUFGVyxDQUVYLFVBQVUsQ0FBRTtJQUNYLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEdBQUcsRUFBRSxJQUFJLEdBQ1Q7O0FZN2xDRixBQUFBLHVCQUF1QixDQUFFO0VBQ3hCLFNBQVMsRUFBRSxJQUFJLEdBQ2Y7O0FBQ0QsQUFBQSxzQkFBc0IsQ0FBRTtFQUN2QixLQUFLLEVBQUUsSUFBSSxHQUNYOztBQUNELEFBQUEsdUJBQXVCLENBQUU7RUFDeEIsS0FBSyxFQUFFLEtBQUssR0FDWjs7QUFFRCxBQUFBLG9CQUFvQixDQUFFO0VBQ3JCLEtBQUssRUFBRSxLQUFLLEdBQ1o7O0FBR0QsQUFBQSx3QkFBd0IsQ0FBRTtFQUN6QixLQUFLLEVBQUUsS0FBSyxHQUNaOztBQU9ELEFBQUEsU0FBUyxDQUFFO0VBQ1YsV0FBVyxFQUFFLEdBQUc7RUFDaEIsU0FBUyxFQUFFLElBQUksR0FDZjs7QUFFRCxBQUNDLG9CQURtQixDQUNuQixLQUFLLENBQUU7RUFDTixVQUFVLEVBQUUsTUFBTSxHQUNsQjs7QUFNRixBQUFBLGdCQUFnQixDQUFFO0VBQ2pCLE9BQU8sRUFBRSxJQUFJLENBSE8sSUFBSSxHQUl4Qjs7QUFFRCxBQUFBLG9CQUFvQixDQUFFO0U1SHFCcEIsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFYYixzQkFBc0IsRUE4Q0UsR0FBRztFQTdDbkIsY0FBYyxFQTZDRSxHQUFHLEc0SHJENUI7RUFMRCxBQUVDLG9CQUZtQixHQUVqQixDQUFDLEdBQUcsQ0FBQyxDQUFFO0lBQ1IsWUFBWSxFQVZHLElBQUksR0FXbkI7O0FBR0YsQUFFRSxRQUZNLENBQ1AsRUFBRSxHQUNDLENBQUMsQ0FBRTtFQUNKLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLGFBQWEsRUFBRSxDQUFDO0VBQ2hCLFlBQVksRUFBRSxDQUFDLEdBVWY7RUFmSCxBQU1HLFFBTkssQ0FDUCxFQUFFLEdBQ0MsQ0FBQyxHQUlBLENBQUMsQ0FBRTtJQUNKLFlBQVksRUFyQkMsSUFBSSxHQXNCakI7RUFSSixBQVNHLFFBVEssQ0FDUCxFQUFFLEdBQ0MsQ0FBQyxBQU9ELFlBQVksQ0FBRTtJQUNkLFlBQVksRUF2QkssSUFBSSxHQXdCckI7RUFYSixBQVlHLFFBWkssQ0FDUCxFQUFFLEdBQ0MsQ0FBQyxBQVVELFdBQVcsQ0FBRTtJQUNiLGFBQWEsRUExQkksSUFBSSxHQTJCckI7O0FBZEosQUFpQkMsUUFqQk8sQ0FpQlAsY0FBYyxDQUFFO0VBQ2YsWUFBWSxFQUFFLEtBQWtCLEdBQ2hDOztBQUVGLEFBQUEsZ0JBQWdCLENBQUU7RUFDakIsVUFBVSxFQUFFLFdBQVcsR0FDdkI7O0E1SDRIRyxNQUFNLE1BQU0sTUFBTSxNQUFNLFNBQVMsRUFBRSxNQUFNO0U0SDFINUMsQUFBQSx1QkFBdUIsQ0FBRTtJQUN4QixLQUFLLEVBQUUsS0FBSyxHQUNaO0VBQ0QsQUFBQSx5QkFBeUIsQ0FBRTtJQUMxQixLQUFLLEVBQUUsS0FBSyxHQUNaOztBQUdGLEFBQUEsZ0NBQWdDLENBQUU7RUFDakMsS0FBSyxFQUFFLElBQUksR0FDWDs7QUFFRCxBQUFBLGdCQUFnQixDQUFFO0VBQ2pCLE9BQU8sRUFBRSxPQUFPO0VBQ2hCLFNBQVMsRUFBRSxJQUFJO0VBQ2YsS0FBSyxFQUFFLE9BQU8sR0FDZDs7QUFHRCxBQUFBLG9CQUFvQixDQUFFO0U1SDlCcEIsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsT0FBTyxFQUFFLElBQUk7RUFYYixzQkFBc0IsRUErQkUsTUFBTTtFQTlCdEIsY0FBYyxFQThCRSxNQUFNO0VBaEI5Qix1QkFBdUIsRTRIMEJNLGFBQWE7RTVIekJsQyxlQUFlLEU0SHlCTSxhQUFhLEdBQzNDOztBQUVELEFBQUEsUUFBUSxDQUFFO0U1SG5DUixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQThDRSxHQUFHO0VBN0NuQixjQUFjLEVBNkNFLEdBQUc7RTRIQTVCLFNBQVMsRUFBRSxJQUFJLEdBQ2Y7O0FBQ0QsQUFBQSxhQUFhLENBQUU7RUFDZCxPQUFPLEVBQUUsR0FBRyxHQUNaOztBQUNELEFBQUEsY0FBYyxDQUFFO0VBQ2YsWUFBWSxFQUFFLElBQUksR0FDbEI7O0FBRUQsQUFBQSxlQUFlLENBQUU7RUFDaEIsS0FBSyxFQUFFLE9BQU8sR0FDZDs7QUFHRCxBQUFBLGtCQUFrQixDQUFFO0VBQ25CLE1BQU0sRUFIYyxJQUFJLEdBSXhCOztBQUtELEFBQUEsVUFBVSxDQUFFO0VBQ1gsVUFBVSxFQUFFLE9BQU87RUFDbkIsS0FBSyxFQUFFLElBQUk7RUFDWCxTQUFTLEVBQUUsSUFBSTtFQUNmLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLE9BQU8sRUFBRSxHQUFpQixDQUFDLElBQUk7RUFDL0IsV0FBVyxFQVRFLElBQUksR0F5QmpCO0VBdEJELEFBT0MsVUFQUyxBQU9SLEtBQUssQ0FBRTtJQUNQLE9BQU8sRUFUVSxNQUF1QyxDQVM3QixJQUFJLEdBQy9CO0VBVEYsQUFVQyxVQVZTLENBVVQsQ0FBQyxDQUFFO0lBQ0YsT0FBTyxFQUFFLElBQUk7SUFDYixZQUFZLEVBQUUsR0FBRztJQUNqQixTQUFTLEVBQUUsSUFBSSxHQUNmO0VBZEYsQUFlQyxVQWZTLEFBZVIsV0FBVyxDQUFFO0lBQ2IsVUFBVSxFQUFFLE9BQU87SUFDbkIsS0FBSyxFQUFFLE9BQU8sR0FJZDtJQXJCRixBQWtCRSxVQWxCUSxBQWVSLFdBQVcsQ0FHWCxDQUFDLENBQUU7TUFDRixPQUFPLEVBQUUsTUFBTSxHQUNmOztBQUdILEFBQUEscUJBQXFCLENBQUU7RTVIakZyQixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQThDRSxHQUFHO0VBN0NuQixjQUFjLEVBNkNFLEdBQUc7RTRIOEM1QixTQUFTLEVBQUUsSUFBSSxHQVlmO0VBZEQsQUFHQyxxQkFIb0IsQ0FHcEIsSUFBSSxDQUFFO0lBQ0wsVUFBVSxFQUFFLFdBQVc7SUFDdkIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFQUFFLE9BQU87SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLGFBQWEsRUFBRSxHQUFHLEdBQ2xCO0VBVEYsQUFVQyxxQkFWb0IsQ0FVcEIsS0FBSyxDQUFFO0lBQ04sV0FBVyxFQUFFLEdBQUc7SUFDaEIsY0FBYyxFQUFFLElBQUksR0FDcEI7O0FBSUYsQUFBQSw0QkFBNEIsQ0FBRTtFNUhsRzVCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBWGIsc0JBQXNCLEVBOENFLEdBQUc7RUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztFQXhEM0IsbUJBQW1CLEU0SHVITSxNQUFNO0U1SHRIdkIsV0FBVyxFNEhzSE0sTUFBTSxHQWFoQztFQWZELEFBR0MsNEJBSDJCLEdBR3pCLENBQUMsQUFBQSxZQUFZLENBQUU7STVIbkloQixZQUFZLEU0SG9JRSxDQUFDO0k1SG5JWCxRQUFRLEU0SG1JRSxDQUFDO0k1SGxJUCxJQUFJLEU0SGtJRSxDQUFDLEdBQ2Y7RUFMRixBQU1DLDRCQU4yQixDQU0zQixjQUFjLENBQUU7SUFDZixVQUFVLEVBQUUsTUFBTTtJQUNsQixLQUFLLEVBQUUsSUFBSTtJQUNYLEtBQUssRUFBRSxPQUFPO0lBQ2QsU0FBUyxFQUFFLElBQUksR0FJZjtJNUhxQkUsTUFBTSxNQUFNLE1BQU0sTUFBTSxTQUFTLEVBQUUsTUFBTTtNNEhuQzdDLEFBTUMsNEJBTjJCLENBTTNCLGNBQWMsQ0FBRTtRQU1kLEtBQUssRUFBRSxLQUFLLEdBRWI7O0FBRUYsQUFDQyx5QkFEd0IsQ0FDeEIsWUFBWSxDQUFFO0VBQ2IsU0FBUyxFQUFFLElBQUk7RUFDZixLQUFLLEVBQUUsT0FBTztFQUNkLGFBQWEsRUFBRSxHQUFHLEdBQ2xCOztBQUlGLEFBQ0UsWUFEVSxDQUNWLEtBQUssQUFBQSxRQUFRLENBQUM7RUFDWixNQUFNLEVBQUUsaUJBQWlCO0VBQ3pCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLE1BQU0sRUFBRSxJQUFJO0VBQ1osVUFBVSxFQUFFLE9BQU8sR0FDcEI7O0FBSUgsQUFBQSxXQUFXLENBQUU7RUFDWixNQUFNLEVBQUcsUUFBUTtFQUNqQixPQUFPLEVBQUUsWUFBWTtFQUNyQixLQUFLLEVBQUUsT0FBTztFQUNkLE1BQU0sRUFBRSxPQUFPO0U1SHpJZCxPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQThDRSxHQUFHO0VBN0NuQixjQUFjLEVBNkNFLEdBQUc7RUF4RDNCLG1CQUFtQixFQTZETyxNQUFNO0VBNUR4QixXQUFXLEVBNERPLE1BQU0sRzRINkdqQztFQWxCRCxBQU9DLFdBUFUsQ0FPVixDQUFDLENBQUU7SUFDRixTQUFTLEVBQUUsSUFBSTtJQUNmLE9BQU8sRUFBRSxLQUFLLEdBQ2Q7RUFWRixBQVdDLFdBWFUsQ0FXVixLQUFLLENBQUU7SUFDTixPQUFPLEVBQUUsS0FBSztJQUNkLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsY0FBYyxFQUFFLFNBQVM7SUFDekIsWUFBWSxFQUFFLElBQUksR0FDbEI7O0FBSUYsQUFFRSxpQkFGZSxHQUNkLENBQUMsR0FDQSxDQUFDLENBQUU7RUFDSixVQUFVLEVBQUUsSUFBSSxHQUNoQjs7QUFTSCxBQUFBLGtCQUFrQixDQUFFO0VBQ25CLFFBQVEsRUFBRSxRQUFRLEdBQ2xCOztBQUVELEFBQUEsY0FBYyxDQUFFO0VBQ2YsUUFBUSxFQUFFLFFBQVE7RUFDbEIsT0FBTyxFQUFFLEVBQUU7RUFDWCxHQUFHLEVBQUUsaUJBQWlCO0VBQ3RCLElBQUksRUFBRSxHQUFHO0VBQ1QsU0FBUyxFQUFFLGtCQUFrQjtFQUM3QixVQUFVLEVBQUUsSUFBSTtFQUNoQixLQUFLLEVBQUUsS0FBSztFQUNaLFNBQVMsRUFBRSxpQkFBaUI7RUFDNUIsT0FBTyxFQUFFLElBQUk7RUFDYixNQUFNLEVBQUUsaUJBQWlCO0VBQ3pCLFVBQVUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBTSxtQkFBTztFQUNsQyxhQUFhLEVBQUUsR0FBRyxHQUNsQjs7QUFDRCxBQUFBLHdCQUF3QixDQUFFO0VBQ3pCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxHQUFHO0VBQ1IsSUFBSSxFQUFFLEdBQUc7RUFDVCxTQUFTLEVBQUUsc0JBQXNCO0VBQ2pDLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLElBQUk7RUFDWixVQUFVLEVBQUUsbUNBQW1DLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTO0VBQ3ZFLGVBQWUsRUFBRSxPQUFPLEdBQ3hCOztBQUNELEFBQUEscUJBQXFCLENBQUU7RUFDdEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsR0FBRyxFQUFFLElBQUk7RUFDVCxLQUFLLEVBQUUsSUFBSTtFQUNYLFNBQVMsRUFBRSxJQUFJO0VBQ2YsS0FBSyxFN0gvUUMsT0FBTztFNkhnUmIsTUFBTSxFQUFFLE9BQU8sR0FDZjs7QUFDRCxBQUFBLHFCQUFxQixDQUFFO0VBQ3RCLE1BQU0sRUFBRSxRQUFRO0VBQ2hCLE9BQU8sRUFBRSxNQUFNO0VBQ2YsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsR0FBRztFQUNoQixLQUFLLEVBQUUsT0FBTztFQUNkLFVBQVUsRUFBRSxNQUFNLEdBQ2xCOztBQUtELEFBQUEsa0JBQWtCLEdBQUcsTUFBTSxDQUFFO0VBQzVCLE1BQU0sRUFBRSxXQUFXLEdBQ25COztBQUNELEFBQUEsTUFBTSxDQUFFO0U1SDFOTixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsSUFBSTtFQVhiLHNCQUFzQixFQThDRSxHQUFHO0VBN0NuQixjQUFjLEVBNkNFLEdBQUc7RUEvQjNCLHVCQUF1QixFNEhzTk0sYUFBYTtFNUhyTmxDLGVBQWUsRTRIcU5NLGFBQWEsR0FPM0M7RUFURCxBQUdDLE1BSEssR0FHSCxrQkFBa0IsQ0FBRTtJQUNyQixVQUFVLEVBQUUsSUFBSSxHQUNoQjtFQUxGLEFBTUMsTUFOSyxHQU1ILE1BQU0sQ0FBRTtJQUNULFVBQVUsRUFBRSxJQUFJLEdBQ2hCOztBQU1GLEFBQUEsY0FBYyxDQUFFO0VBQ2YsV0FBVyxFQUFFLEdBQUc7RUFDaEIsS0FBSyxFQUFFLE9BQU87RUFDZCxTQUFTLEVBQUUsSUFBSSxHQUNmOztBQUVELEFBQUEsWUFBWSxDQUFFO0VBQ2IsV0FBVyxFQUFFLEdBQUc7RUFDaEIsU0FBUyxFQUFFLElBQUk7RTVIaFBkLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBWGIsc0JBQXNCLEVBOENFLEdBQUc7RUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztFQXhEM0IsbUJBQW1CLEVBNkRPLE1BQU07RUE1RHhCLFdBQVcsRUE0RE8sTUFBTSxHNEg2TWpDO0VBVEQsQUFJQyxZQUpXLENBSVgsZ0JBQWdCLENBQUU7SUFDakIsU0FBUyxFQUFFLEdBQUc7SUFDZCxjQUFjLEVBQUUsTUFBTTtJQUN0QixhQUFhLEVBQUUsR0FBRyxHQUNsQjs7QUFHRixBQUFBLGFBQWEsQ0FBQztFQUNiLE1BQU0sRUFBRSxPQUFPLEdBQ2Y7O0FBRUQsQUFBQSxzQkFBc0IsQ0FBRTtFQUN2QixTQUFTLEVBQUUsR0FBRztFQUNkLGNBQWMsRUFBRSxNQUFNO0VBQ3RCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLFlBQVksRUFBRSxHQUFHLEdBQ2pCOztBQUVELEFBQUEsb0JBQW9CLENBQUU7RUFDckIsU0FBUyxFQUFFLElBQUk7RUFDZixjQUFjLEVBQUUsTUFBTTtFQUN0QixhQUFhLEVBQUUsR0FBRztFQUNsQixjQUFjLEVBQUUsR0FBRyxHQUNuQjs7QUloVkQsQUFDSSxpQkFEYSxDQUNiLFlBQVksR0FBRyxHQUFHLENBQUM7RUFDZixXQUFXLEVBQUUsSUFBSTtFQUNqQixVQUFVLEVBQUUsY0FBYyxHQUM3Qjs7QUFKTCxBQU1JLGlCQU5hLENBTWIsYUFBYSxDQUFDO0VBQ1YsT0FBTyxFQUFFLElBQUk7RUFDYixXQUFXLEVBQUUsTUFBTTtFQUNuQixJQUFJLEVBQUUsSUFBSTtFQUNWLFlBQVksRUFBRSxHQUFHO0VBQ2pCLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLFNBQVMsRUFBRSxJQUFJO0VBQ2YsYUFBYSxFQUFFLGlCQUFpQjtFQUNoQyxNQUFNLEVBQUUsT0FBTyxHQW9CbEI7RUFsQ0wsQUFnQlEsaUJBaEJTLENBTWIsYUFBYSxBQVVSLE1BQU0sQ0FBQztJQUNKLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLE1BQU07SUFDbkIsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsV0FBVyxHQUN0QjtFQXJCVCxBQXVCUSxpQkF2QlMsQ0FNYixhQUFhLENBaUJULENBQUMsQUFBQSxHQUFHLEFBQUEsU0FBUyxDQUFDO0lBQ1YsS0FBSyxFQUFFLE9BQU8sR0FLakI7SUE3QlQsQUEwQlksaUJBMUJLLENBTWIsYUFBYSxDQWlCVCxDQUFDLEFBQUEsR0FBRyxBQUFBLFNBQVMsQUFHUixNQUFNLENBQUM7TUFDSixLQUFLLEVBQUUsT0FBTyxHQUNqQjtFQTVCYixBQStCUSxpQkEvQlMsQ0FNYixhQUFhLENBeUJULEdBQUcsQ0FBQztJQUNBLFNBQVMsRUFBRSxJQUFJLEdBQ2xCOztBQWpDVCxBQW9DSSxpQkFwQ2EsQ0FvQ2IsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFELEtBQUMsQUFBQSxFQUFZO0VBQ2QsT0FBTyxFQUFFLElBQUksR0FRaEI7RUE3Q0wsQUF1Q1EsaUJBdkNTLENBb0NiLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxLQUFDLEFBQUEsQ0FHRCxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsY0FBYztJQUN0QixVQUFVLEVBQUUsY0FBYztJQUMxQixhQUFhLEVBQUUsY0FBYyxHQUNoQzs7QUE1Q1QsQUErQ0ksaUJBL0NhLENBK0NiLEtBQUssQ0FBQSxBQUFBLEdBQUMsRUFBSyxXQUFXLEFBQWhCO0FBL0NWLGlCQUFpQixDQWdEYixLQUFLLENBQUEsQUFBQSxHQUFDLEVBQUssTUFBTSxBQUFYO0FBaERWLGlCQUFpQixDQWlEYixLQUFLLENBQUEsQUFBQSxHQUFDLEVBQUssZUFBZSxBQUFwQixFQUFzQjtFQUN4QixPQUFPLEVBQUUsWUFBWTtFQUNyQixNQUFNLEVBQUUsUUFBUTtFQUNoQixPQUFPLEVBQUUsU0FBUztFQUNsQixTQUFTLEVBQUUsSUFBSTtFQUNmLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLHFCQUFxQixHQVloQztFQXBFTCxBQTBEUSxpQkExRFMsQ0ErQ2IsS0FBSyxDQUFBLEFBQUEsR0FBQyxFQUFLLFdBQVcsQUFBaEIsQ0FXRCxPQUFPO0VBMURoQixpQkFBaUIsQ0FnRGIsS0FBSyxDQUFBLEFBQUEsR0FBQyxFQUFLLE1BQU0sQUFBWCxDQVVELE9BQU87RUExRGhCLGlCQUFpQixDQWlEYixLQUFLLENBQUEsQUFBQSxHQUFDLEVBQUssZUFBZSxBQUFwQixDQVNELE9BQU8sQ0FBQztJQUNMLFdBQVcsRUFBRSxXQUFXO0lBQ3hCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLFlBQVksRUFBRSxJQUFJLEdBQ3JCO0VBOURULEFBZ0VRLGlCQWhFUyxDQStDYixLQUFLLENBQUEsQUFBQSxHQUFDLEVBQUssV0FBVyxBQUFoQixDQWlCRCxNQUFNO0VBaEVmLGlCQUFpQixDQWdEYixLQUFLLENBQUEsQUFBQSxHQUFDLEVBQUssTUFBTSxBQUFYLENBZ0JELE1BQU07RUFoRWYsaUJBQWlCLENBaURiLEtBQUssQ0FBQSxBQUFBLEdBQUMsRUFBSyxlQUFlLEFBQXBCLENBZUQsTUFBTSxDQUFDO0lBQ0osS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsT0FBTyxHQUNsQjs7QUFuRVQsQUFzRUksaUJBdEVhLENBc0ViLEtBQUssQ0FBQSxBQUFBLEdBQUMsRUFBSyxXQUFXLEFBQWhCLENBQWlCLE9BQU8sQ0FBQztFQUMzQixPQUFPLEVBQUUsT0FBTyxHQUNuQjs7QUF4RUwsQUF5RUksaUJBekVhLENBeUViLEtBQUssQ0FBQSxBQUFBLEdBQUMsRUFBSyxNQUFNLEFBQVgsQ0FBWSxPQUFPLENBQUM7RUFDdEIsT0FBTyxFQUFFLE9BQU8sR0FDbkI7O0FBM0VMLEFBNEVJLGlCQTVFYSxDQTRFYixLQUFLLENBQUEsQUFBQSxHQUFDLEVBQUssZUFBZSxBQUFwQixDQUFxQixPQUFPLENBQUM7RUFDL0IsT0FBTyxFQUFFLE9BQU8sR0FDbkI7O0FBOUVMLEFBaUZRLGlCQWpGUyxDQWdGYixNQUFNLENBQ0YsS0FBSyxDQUFDO0VBQ0YsT0FBTyxFQUFFLElBQUksR0FDaEI7O0FBbkZULEFBcUZRLGlCQXJGUyxDQWdGYixNQUFNLENBS0YsS0FBSyxDQUFDO0VoSWRaLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE9BQU8sRUFBRSxXQUFXO0VBQ3BCLE9BQU8sRUFBRSxJQUFJO0VBckJiLG1CQUFtQixFZ0ltQ2lCLE1BQU07RWhJbENsQyxXQUFXLEVnSWtDaUIsTUFBTTtFaElWMUMsdUJBQXVCLEVnSVdpQixNQUFNO0VoSVZ0QyxlQUFlLEVnSVVpQixNQUFNO0VBQ3BDLGdCQUFnQixFaklqRmQsT0FBTztFaUlrRlQsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENqSWxGZixPQUFPO0VpSW1GVCxhQUFhLEVBQUUsR0FBRztFQUNsQixTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLEtBQUssRWpJMUZULE9BQU87RWlJMkZILFdBQVcsRUFBRSxHQUFHO0VBQ2hCLGNBQWMsRUFBRSxTQUFTLEdBZ0I1QjtFQWhIVCxBQWtHWSxpQkFsR0ssQ0FnRmIsTUFBTSxDQUtGLEtBQUssQUFhQSxNQUFNLENBQUM7SUFDSixnQkFBZ0IsRWpJMUZwQixPQUFPO0lpSTJGSCxZQUFZLEVqSTNGaEIsT0FBTyxHaUk0Rk47RUFyR2IsQUF1R1ksaUJBdkdLLENBZ0ZiLE1BQU0sQ0FLRixLQUFLLEFBa0JBLEtBQUssQ0FBQztJQUNILGdCQUFnQixFQUFFLE1BQU07SUFDeEIsWUFBWSxFQUFFLE1BQU0sR0FDdkI7RUExR2IsQUE0R1ksaUJBNUdLLENBZ0ZiLE1BQU0sQ0FLRixLQUFLLEFBdUJBLEtBQUssQ0FBQztJQUNILGdCQUFnQixFQUFFLElBQUk7SUFDdEIsWUFBWSxFQUFFLElBQUksR0FDckI7O0FDaEhiLEFBQUEscUJBQXFCLENBQUM7RUFDcEIsYUFBYSxFQUFFLElBQUksR0FzYnBCO0VBdmJELEFBR0UscUJBSG1CLENBR25CLENBQUMsQ0FBQztJQUNBLGVBQWUsRUFBRSxJQUFJO0lBQ3JCLEtBQUssRWxJSkYsT0FBTztJa0lLVixNQUFNLEVBQUUsT0FBTyxHQUloQjtJQVZILEFBT0kscUJBUGlCLENBR25CLENBQUMsQUFJRSxNQUFNLENBQUM7TUFDTixlQUFlLEVBQUUsU0FBUyxHQUMzQjtFQVRMLEFBWUUscUJBWm1CLEFBWWxCLEtBQUssQ0FBQztJQUNMLFVBQVUsRUFBRSxJQUFJLEdBS2pCO0lBbEJILEFBY0kscUJBZGlCLEFBWWxCLEtBQUssR0FFSCxHQUFHLENBQUM7TWpJMERQLE9BQU8sRUFBRSxZQUFZO01BQ3JCLE9BQU8sRUFBRSxXQUFXO01BQ3BCLE9BQU8sRUFBRSxJQUFJO01BWGIsc0JBQXNCLEVBOENFLEdBQUc7TUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztNQS9CM0IsdUJBQXVCLEVpSTlEVyxVQUFVO01qSStEcEMsZUFBZSxFaUkvRFcsVUFBVSxHQUN6QztFQWpCTCxBQW9CRSxxQkFwQm1CLEFBb0JsQixVQUFVLENBQUM7SUFDVixVQUFVLEVBQUUsSUFBSSxHQWtCakI7SUF2Q0gsQUF3Qk0scUJBeEJlLEFBb0JsQixVQUFVLEdBR1IsZUFBZSxHQUNiLEdBQUcsQUFBQSxJQUFLLENBQUEsaUJBQWlCLEVBQUU7TWpJc0RoQyx1QkFBdUIsRWlJckRhLGFBQWE7TWpJc0R6QyxlQUFlLEVpSXREYSxhQUFhO01BQzNDLFlBQVksRUFBRSxJQUFJLEdBQ25CO0lBM0JQLEFBOEJJLHFCQTlCaUIsQUFvQmxCLFVBQVUsR0FVUixPQUFPLENBQUM7TWpJMENYLE9BQU8sRUFBRSxZQUFZO01BQ3JCLE9BQU8sRUFBRSxXQUFXO01BQ3BCLE9BQU8sRUFBRSxJQUFJO01BWGIsc0JBQXNCLEVBOENFLEdBQUc7TUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztNQXhEM0IsbUJBQW1CLEVpSXJCVyxNQUFNO01qSXNCNUIsV0FBVyxFaUl0QlcsTUFBTTtNQUNoQyxVQUFVLEVBQUUsSUFBSTtNQUNoQixTQUFTLEVBQUUsSUFBSTtNQUNmLFdBQVcsRUFBRSxJQUFJO01BQ2pCLGNBQWMsRUFBRSxTQUFTO01BQ3pCLGFBQWEsRUFBRSxpQkFBaUIsR0FDakM7RUF0Q0wsQUF5Q0UscUJBekNtQixHQXlDbEIsZUFBZSxDQUFDO0lqSStCakIsT0FBTyxFQUFFLFlBQVk7SUFDckIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsT0FBTyxFQUFFLElBQUk7SUFYYixzQkFBc0IsRUErQkUsTUFBTTtJQTlCdEIsY0FBYyxFQThCRSxNQUFNO0lpSW5ENUIsTUFBTSxFQUFFLE1BQU0sR0F1RmY7SUFsSUgsQUE2Q0kscUJBN0NpQixHQXlDbEIsZUFBZSxHQUliLEdBQUcsQUFBQSxJQUFLLENBckJFLGlCQUFpQixFQXFCQTtNakkyQjlCLE9BQU8sRUFBRSxZQUFZO01BQ3JCLE9BQU8sRUFBRSxXQUFXO01BQ3BCLE9BQU8sRUFBRSxJQUFJO01BWGIsc0JBQXNCLEVBOENFLEdBQUc7TUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztNQXhEM0IsbUJBQW1CLEVpSU5XLE1BQU07TWpJTzVCLFdBQVcsRWlJUFcsTUFBTTtNQUNoQyxVQUFVLEVBQUUsSUFBSTtNQUNoQixhQUFhLEVBQUUsY0FBYyxHQTBDOUI7TUEzRkwsQUFtRE0scUJBbkRlLEdBeUNsQixlQUFlLEdBSWIsR0FBRyxBQUFBLElBQUssQ0FyQkUsaUJBQWlCLEVBMkIxQixJQUFJLENBQUM7UUFDSCxPQUFPLEVBQUUsS0FBSztRQUNkLFdBQVcsRUFBRSxNQUFNO1FBQ25CLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLGFBQWEsRUFBRSxRQUFRO1FBQ3ZCLE1BQU0sRUFBRSxPQUFPLEdBQ2hCO01BekRQLEFBMkRNLHFCQTNEZSxHQXlDbEIsZUFBZSxHQUliLEdBQUcsQUFBQSxJQUFLLENBckJFLGlCQUFpQixFQW1DMUIsVUFBVSxDQUFDO1FqSWFmLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLE9BQU8sRUFBRSxXQUFXO1FBQ3BCLE9BQU8sRUFBRSxJQUFJO1FBWGIsc0JBQXNCLEVBOENFLEdBQUc7UUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztRaUloRHJCLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLE9BQU8sRUFBRSxLQUFLLEdBZ0JmO1FBL0VQLEFBaUVVLHFCQWpFVyxHQXlDbEIsZUFBZSxHQUliLEdBQUcsQUFBQSxJQUFLLENBckJFLGlCQUFpQixFQW1DMUIsVUFBVSxHQUtQLENBQUMsR0FDQyxJQUFJLENBQUM7VUFDSixNQUFNLEVBQUUsT0FBTyxHQUNoQjtRQW5FWCxBQXFFUSxxQkFyRWEsR0F5Q2xCLGVBQWUsR0FJYixHQUFHLEFBQUEsSUFBSyxDQXJCRSxpQkFBaUIsRUFtQzFCLFVBQVUsQUFVUCxPQUFPLENBQUM7VWpJM0JmLFlBQVksRWlJNEJVLENBQUM7VWpJM0JuQixRQUFRLEVpSTJCVSxDQUFDO1VqSTFCZixJQUFJLEVpSTBCVSxDQUFDO1VqSVF2Qix1QkFBdUIsRWlJUGUsUUFBUTtVaklRdEMsZUFBZSxFaUlSZSxRQUFRO1VBQ3RDLFNBQVMsRUFBRSxJQUFJLEdBTWhCO1VBOUVULEFBeUVVLHFCQXpFVyxHQXlDbEIsZUFBZSxHQUliLEdBQUcsQUFBQSxJQUFLLENBckJFLGlCQUFpQixFQW1DMUIsVUFBVSxBQVVQLE9BQU8sR0FJTCxNQUFNLENBQUM7WUFDTixVQUFVLEVBQUUsSUFBSTtZQUNoQixVQUFVLEVBQUUsSUFBSTtZQUNoQixPQUFPLEVBQUUsQ0FBQyxHQUNYO01BN0VYLEFBaUZNLHFCQWpGZSxHQXlDbEIsZUFBZSxHQUliLEdBQUcsQUFBQSxJQUFLLENBckJFLGlCQUFpQixDQXlEekIsV0FBVyxDQUFDO1FBQ1gsVUFBVSxFQUFFLElBQUksR0FRakI7UUExRlAsQUFvRlEscUJBcEZhLEdBeUNsQixlQUFlLEdBSWIsR0FBRyxBQUFBLElBQUssQ0FyQkUsaUJBQWlCLENBeUR6QixXQUFXLENBR1YsSUFBSSxDQUFDO1VBQ0gsU0FBUyxFQUFFLElBQUk7VUFDZixXQUFXLEVBQUUsSUFBSTtVQUNqQixjQUFjLEVBQUUsU0FBUztVQUN6QixNQUFNLEVBQUUsT0FBTyxHQUNoQjtJQXpGVCxBQTZGSSxxQkE3RmlCLEdBeUNsQixlQUFlLEdBb0RiLGlCQUFpQixDQUFDO01qSXJCckIsT0FBTyxFQUFFLFlBQVk7TUFDckIsT0FBTyxFQUFFLFdBQVc7TUFDcEIsT0FBTyxFQUFFLElBQUk7TUFYYixzQkFBc0IsRUErQkUsTUFBTTtNQTlCdEIsY0FBYyxFQThCRSxNQUFNLEdpSW1DM0I7TUFqSUwsQUFnR00scUJBaEdlLEdBeUNsQixlQUFlLEdBb0RiLGlCQUFpQixHQUdkLEdBQUcsQ0FBQztRakl4QlYsT0FBTyxFQUFFLFlBQVk7UUFDckIsT0FBTyxFQUFFLFdBQVc7UUFDcEIsT0FBTyxFQUFFLElBQUk7UUFYYixzQkFBc0IsRUE4Q0UsR0FBRztRQTdDbkIsY0FBYyxFQTZDRSxHQUFHO1FBeEQzQixtQkFBbUIsRWlJNkNhLE1BQU07UWpJNUM5QixXQUFXLEVpSTRDYSxNQUFNO1FqSXBCdEMsdUJBQXVCLEVpSXFCYSxhQUFhO1FqSXBCekMsZUFBZSxFaUlvQmEsYUFBYTtRQUMzQyxZQUFZLEVBQUUsR0FBRztRQUNqQixVQUFVLEVBQUUsSUFBSTtRQUNoQixhQUFhLEVBQUUsY0FBYyxHQTBCOUI7UUFoSVAsQUF3R1EscUJBeEdhLEdBeUNsQixlQUFlLEdBb0RiLGlCQUFpQixHQUdkLEdBQUcsQ0FRSCxJQUFJLENBQUM7VUFDSCxPQUFPLEVBQUUsS0FBSztVQUNkLFdBQVcsRUFBRSxNQUFNO1VBQ25CLFFBQVEsRUFBRSxNQUFNO1VBQ2hCLGFBQWEsRUFBRSxRQUFRO1VBQ3ZCLE1BQU0sRUFBRSxPQUFPLEdBQ2hCO1FBOUdULEFBZ0hRLHFCQWhIYSxHQXlDbEIsZUFBZSxHQW9EYixpQkFBaUIsR0FHZCxHQUFHLENBZ0JILFVBQVUsQ0FBQztVakl4Q2pCLE9BQU8sRUFBRSxZQUFZO1VBQ3JCLE9BQU8sRUFBRSxXQUFXO1VBQ3BCLE9BQU8sRUFBRSxJQUFJO1VBWGIsc0JBQXNCLEVBOENFLEdBQUc7VUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztVaUlLbkIsU0FBUyxFQUFFLEtBQUs7VUFDaEIsU0FBUyxFQUFFLEtBQUs7VUFDaEIsT0FBTyxFQUFFLEtBQUssR0FXZjtVQS9IVCxBQXFIVSxxQkFySFcsR0F5Q2xCLGVBQWUsR0FvRGIsaUJBQWlCLEdBR2QsR0FBRyxDQWdCSCxVQUFVLEFBS1AsT0FBTyxDQUFDO1lqSTNFakIsWUFBWSxFaUk0RVksQ0FBQztZakkzRXJCLFFBQVEsRWlJMkVZLENBQUM7WWpJMUVqQixJQUFJLEVpSTBFWSxDQUFDO1lqSXhDekIsdUJBQXVCLEVpSXlDaUIsUUFBUTtZakl4Q3hDLGVBQWUsRWlJd0NpQixRQUFRO1lBQ3RDLFNBQVMsRUFBRSxJQUFJLEdBTWhCO1lBOUhYLEFBeUhZLHFCQXpIUyxHQXlDbEIsZUFBZSxHQW9EYixpQkFBaUIsR0FHZCxHQUFHLENBZ0JILFVBQVUsQUFLUCxPQUFPLEdBSUwsTUFBTSxDQUFDO2NBQ04sVUFBVSxFQUFFLElBQUk7Y0FDaEIsVUFBVSxFQUFFLElBQUk7Y0FDaEIsT0FBTyxFQUFFLENBQUMsR0FDWDtFQTdIYixBQW9JRSxxQkFwSW1CLEdBb0lsQixRQUFRLENBQUM7SWpJNURWLE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBWGIsc0JBQXNCLEVBOENFLEdBQUc7SUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztJQXhEM0IsbUJBQW1CLEVpSWlGUyxNQUFNO0lqSWhGMUIsV0FBVyxFaUlnRlMsTUFBTTtJakl4RGxDLHVCQUF1QixFaUl5RFMsTUFBTTtJakl4RDlCLGVBQWUsRWlJd0RTLE1BQU07SUFDcEMsVUFBVSxFQUFFLEtBQUs7SUFDakIsU0FBUyxFQUFFLElBQUksR0FDaEI7RUExSUgsQUE0SUUscUJBNUltQixDQTRJbkIsWUFBWSxDQUFDO0lBQ1gsWUFBWSxFQUFFLElBQUk7SUFDbEIsU0FBUyxFQUFFLEtBQUssR0FpQ2pCO0lBL0tILEFBZ0pJLHFCQWhKaUIsQ0E0SW5CLFlBQVksR0FJVCxlQUFlLENBQUM7TUFDZixPQUFPLEVBQUUsR0FBRztNQUNaLE1BQU0sRUFBRSxpQkFBaUIsR0F3QjFCO01BMUtMLEFBb0pNLHFCQXBKZSxDQTRJbkIsWUFBWSxHQUlULGVBQWUsR0FJYixPQUFPLENBQUM7UWpJNUViLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLE9BQU8sRUFBRSxXQUFXO1FBQ3BCLE9BQU8sRUFBRSxJQUFJO1FBWGIsc0JBQXNCLEVBOENFLEdBQUc7UUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztRQXhEM0IsbUJBQW1CLEVpSWlHYSxNQUFNO1FqSWhHOUIsV0FBVyxFaUlnR2EsTUFBTTtRakl4RXRDLHVCQUF1QixFaUl5RWEsTUFBTTtRakl4RWxDLGVBQWUsRWlJd0VhLE1BQU07UUFDcEMsTUFBTSxFQUFFLE9BQU87UUFDZixVQUFVLEVBQUUsSUFBSTtRQUNoQixnQkFBZ0IsRUFBRSxPQUFPLEdBQzFCO01BM0pQLEFBNkpNLHFCQTdKZSxDQTRJbkIsWUFBWSxHQUlULGVBQWUsR0FhYixHQUFHLEFBQUEsSUFBSyxDQUFBLE9BQU8sRUFBRTtRaklyRnRCLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLE9BQU8sRUFBRSxXQUFXO1FBQ3BCLE9BQU8sRUFBRSxJQUFJO1FBWGIsc0JBQXNCLEVBOENFLEdBQUc7UUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztRQXhEM0IsbUJBQW1CLEVpSTBHYSxNQUFNO1FqSXpHOUIsV0FBVyxFaUl5R2EsTUFBTSxHQVVqQztRQXpLUCxBQWdLUSxxQkFoS2EsQ0E0SW5CLFlBQVksR0FJVCxlQUFlLEdBYWIsR0FBRyxBQUFBLElBQUssQ0FBQSxPQUFPLElBR2IsR0FBRyxBQUFBLGNBQWMsQ0FBQztVQUNqQixTQUFTLEVBQUUsS0FBSyxHQUNqQjtRQWxLVCxBQW1LUSxxQkFuS2EsQ0E0SW5CLFlBQVksR0FJVCxlQUFlLEdBYWIsR0FBRyxBQUFBLElBQUssQ0FBQSxPQUFPLElBTWIsR0FBRyxBQUFBLGFBQWEsQ0FBQztVQUNoQixTQUFTLEVBQUUsS0FBSyxHQUNqQjtRQXJLVCxBQXNLUSxxQkF0S2EsQ0E0SW5CLFlBQVksR0FJVCxlQUFlLEdBYWIsR0FBRyxBQUFBLElBQUssQ0FBQSxPQUFPLENBU2IsV0FBVyxDQUFDO1VqSWpIbkIsbUJBQW1CLEVpSWtIZSxVQUFVO1VqSWpIcEMsV0FBVyxFaUlpSGUsVUFBVSxHQUNyQztJQXhLVCxBQTRLSSxxQkE1S2lCLENBNEluQixZQUFZLENBZ0NWLGVBQWUsR0FBRyxlQUFlLENBQUM7TUFDaEMsVUFBVSxFQUFFLElBQUksR0FDakI7RUE5S0wsQUFpTEUscUJBakxtQixDQWlMbkIsYUFBYSxDQUFDO0lqSXpHZCxPQUFPLEVBQUUsWUFBWTtJQUNyQixPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQVhiLHNCQUFzQixFQStCRSxNQUFNO0lBOUJ0QixjQUFjLEVBOEJFLE1BQU07SUFwRDlCLFlBQVksRWlJeUlJLENBQUM7SWpJeEliLFFBQVEsRWlJd0lJLENBQUM7SWpJdklULElBQUksRWlJdUlJLENBQUMsR0FDaEI7RUFwTEgsQUFzTEUscUJBdExtQixDQXNMbkIsYUFBYSxDQUFDO0lBQ1osUUFBUSxFQUFFLFFBQVE7SUFDbEIsYUFBYSxFQUFFLElBQUk7SUFDbkIsS0FBSyxFQUFFLElBQUk7SUFDWCxPQUFPLEVBQUUsSUFBSTtJQUNiLGVBQWUsRUFBRSxNQUFNLEdBNEN4QjtJQXZPSCxBQTZMSSxxQkE3TGlCLENBc0xuQixhQUFhLEdBT1YsS0FBSztJQTdMVixxQkFBcUIsQ0FzTG5CLGFBQWEsR0FRVixNQUFNLENBQUM7TUFDTixPQUFPLEVBQUUsS0FBSztNQUdkLFNBQVMsRUFBRSxJQUFJO01BQ2YsVUFBVSxFQUFFLG1CQUFtQjtNQUMvQixLQUFLLEVBQUUsSUFBSTtNQUNYLE1BQU0sRUFBRSxJQUFJLEdBQ2I7SUF0TUwsQUF3TUkscUJBeE1pQixDQXNMbkIsYUFBYSxDQWtCWCxtQkFBbUIsQ0FBQztNQUNsQixRQUFRLEVBQUUsUUFBUTtNQUNsQixHQUFHLEVBQUUsQ0FBQztNQUNOLElBQUksRUFBRSxDQUFDO01BQ1AsS0FBSyxFQUFFLENBQUM7TUFDUixNQUFNLEVBQUUsQ0FBQztNQUNULE9BQU8sRUFBRSxJQUFJO01BQ2IsV0FBVyxFQUFFLE1BQU07TUFDbkIsZUFBZSxFQUFFLE1BQU07TUFFdkIsY0FBYyxFQUFFLElBQUk7TUFDcEIsTUFBTSxFQUFFLE9BQU8sR0FtQmhCO01BdE9MLEFBcU5NLHFCQXJOZSxDQXNMbkIsYUFBYSxDQWtCWCxtQkFBbUIsQUFhaEIsVUFBVSxDQUFDO1FBQ1YsT0FBTyxFQUFFLElBQUksR0FDZDtNQXZOUCxBQXlOTSxxQkF6TmUsQ0FzTG5CLGFBQWEsQ0FrQlgsbUJBQW1CLENBaUJqQixDQUFDLENBQUM7UUFDQSxPQUFPLEVBQUUsSUFBSTtRQUNiLFdBQVcsRUFBRSxNQUFNO1FBQ25CLGVBQWUsRUFBRSxNQUFNO1FBQ3ZCLEtBQUssRUFBRSxJQUFJO1FBQ1gsTUFBTSxFQUFFLElBQUk7UUFDWixZQUFZLEVBQUUsR0FBRztRQUNqQixhQUFhLEVBQUUsR0FBRztRQUNsQixVQUFVLEVBQUUsbUJBQW1CO1FBQy9CLEtBQUssRUFBRSxJQUFJO1FBQ1gsU0FBUyxFQUFFLElBQUk7UUFDZixPQUFPLEVBQUUsR0FBRyxHQUNiO0VBck9QLEFBeU9FLHFCQXpPbUIsQ0F5T25CLGNBQWMsQ0FBQztJakkvTGYsWUFBWSxFaUlnTUksQ0FBQztJakkvTGIsUUFBUSxFaUkrTEksQ0FBQztJakk5TFQsSUFBSSxFaUk4TEksQ0FBQztJQUNmLFNBQVMsRUFBRSxDQUFDLEdBMk1iO0lBdGJILEFBNk9JLHFCQTdPaUIsQ0F5T25CLGNBQWMsQ0FJWixhQUFhLENBQUM7TUFDWixVQUFVLEVBQUUsSUFBSTtNQUNoQixjQUFjLEVBQUUsR0FBRyxHQUNwQjtJQWhQTCxBQWtQSSxxQkFsUGlCLENBeU9uQixjQUFjLENBU1osYUFBYSxDQUFDO01qSTFLaEIsT0FBTyxFQUFFLFlBQVk7TUFDckIsT0FBTyxFQUFFLFdBQVc7TUFDcEIsT0FBTyxFQUFFLElBQUk7TUFYYixzQkFBc0IsRUErQkUsTUFBTTtNQTlCdEIsY0FBYyxFQThCRSxNQUFNLEdpSW9LM0I7TUFsUUwsQUFvUE0scUJBcFBlLENBeU9uQixjQUFjLENBU1osYUFBYSxHQUVWLEdBQUcsQ0FBQztRakk1S1QsT0FBTyxFQUFFLFlBQVk7UUFDckIsT0FBTyxFQUFFLFdBQVc7UUFDcEIsT0FBTyxFQUFFLElBQUk7UUFYYixzQkFBc0IsRUE4Q0UsR0FBRztRQTdDbkIsY0FBYyxFQTZDRSxHQUFHO1FBeEQzQixtQkFBbUIsRWlJaU1hLE1BQU07UWpJaE05QixXQUFXLEVpSWdNYSxNQUFNO1FBQ2hDLGFBQWEsRUFBRSxHQUFHLEdBVW5CO1FBalFQLEFBeVBRLHFCQXpQYSxDQXlPbkIsY0FBYyxDQVNaLGFBQWEsR0FFVixHQUFHLEFBS0QsT0FBTyxDQUFDO1VBQ1AsV0FBVyxFQUFFLEdBQUcsR0FDakI7UUEzUFQsQUE2UFEscUJBN1BhLENBeU9uQixjQUFjLENBU1osYUFBYSxHQUVWLEdBQUcsQUFTRCxNQUFNLENBQUM7VUFDTixVQUFVLEVBQUUsSUFBSTtVQUNoQixVQUFVLEVBQUUsaUJBQWlCLEdBQzlCO0lBaFFULEFBb1FJLHFCQXBRaUIsQ0F5T25CLGNBQWMsQ0EyQlosZUFBZSxDQUFDO01BQ2QsU0FBUyxFQUFFLEtBQUssR0FDakI7SUF0UUwsQUF5UU0scUJBelFlLENBeU9uQixjQUFjLENBK0JaLGNBQWMsQUFDWCxNQUFNLENBQUM7TWpJcE5aLG1CQUFtQixFaUlxTmEsVUFBVTtNaklwTmxDLFdBQVcsRWlJb05hLFVBQVU7TUFDcEMsT0FBTyxFQUFFLE1BQU0sR0FDaEI7SUE1UVAsQUE4UU0scUJBOVFlLENBeU9uQixjQUFjLENBK0JaLGNBQWMsR0FNWCxLQUFLLENBQUM7TWpJcE9YLFlBQVksRWlJcU9RLEdBQUU7TWpJcE9sQixRQUFRLEVpSW9PUSxHQUFFO01qSW5PZCxJQUFJLEVpSW1PUSxHQUFFO01BQ2hCLFNBQVMsRUFBRSxLQUFLO01BQ2hCLE1BQU0sRUFBRSxPQUFPLEdBQ2hCO0lBbFJQLEFBb1JNLHFCQXBSZSxDQXlPbkIsY0FBYyxDQStCWixjQUFjLEdBWVgsT0FBTyxDQUFDO01qSTFPYixZQUFZLEVpSTJPUSxHQUFFO01qSTFPbEIsUUFBUSxFaUkwT1EsR0FBRTtNakl6T2QsSUFBSSxFaUl5T1EsR0FBRTtNQUNoQixTQUFTLEVBQUUsS0FBSztNQUNoQixVQUFVLEVBQUUsTUFBTSxHQUNuQjtJQXhSUCxBQTBSTSxxQkExUmUsQ0F5T25CLGNBQWMsQ0ErQlosY0FBYyxHQWtCWCxVQUFVLENBQUM7TWpJaFBoQixZQUFZLEVpSWlQUSxHQUFHO01qSWhQbkIsUUFBUSxFaUlnUFEsR0FBRztNakkvT2YsSUFBSSxFaUkrT1EsR0FBRztNQUNqQixTQUFTLEVBQUUsS0FBSztNQUNoQixhQUFhLEVBQUUsSUFBSTtNQUNuQixVQUFVLEVBQUUsSUFBSSxHQUNqQjtJQS9SUCxBQWlTTSxxQkFqU2UsQ0F5T25CLGNBQWMsQ0ErQlosY0FBYyxHQXlCWCxPQUFPLENBQUM7TWpJbk5iLHVCQUF1QixFaUlvTmEsTUFBTTtNakluTmxDLGVBQWUsRWlJbU5hLE1BQU07TUFDcEMsU0FBUyxFQUFFLEtBQUssR0FNakI7TUF6U1AsQUFvU1EscUJBcFNhLENBeU9uQixjQUFjLENBK0JaLGNBQWMsR0F5QlgsT0FBTyxHQUdMLE1BQU0sQ0FBQztRQUNOLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLE9BQU8sRUFBRSxDQUFDLEdBQ1g7SUF4U1QsQUEyU00scUJBM1NlLENBeU9uQixjQUFjLENBK0JaLGNBQWMsQ0FtQ1osYUFBYSxHQUFHLGFBQWEsQ0FBQztNQUM1QixVQUFVLEVBQUUsR0FBRztNQUNmLFdBQVcsRUFBRSxHQUFHO01BQ2hCLFVBQVUsRUFBRSxHQUFHLENBQUMsTUFBTSxDbEl2U2pCLE9BQU8sR2tJd1NiO0lBL1NQLEFBaVRNLHFCQWpUZSxDQXlPbkIsY0FBYyxDQStCWixjQUFjLENBeUNaLGNBQWMsQ0FBQztNQUNiLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLEdBQUc7TUFDaEIsY0FBYyxFQUFFLFNBQVM7TUFDekIsY0FBYyxFQUFFLEtBQUs7TUFDckIsS0FBSyxFbEk5U0QsT0FBTyxHa0krU1o7SUF2VFAsQUF5VE0scUJBelRlLENBeU9uQixjQUFjLENBK0JaLGNBQWMsQ0FpRFosY0FBYyxDQUFDO01BQ2IsU0FBUyxFQUFFLElBQUk7TUFDZixXQUFXLEVBQUUsSUFBSTtNQUNqQixVQUFVLEVBQUUsVUFBVSxHQUN2QjtJQTdUUCxBQStUTSxxQkEvVGUsQ0F5T25CLGNBQWMsQ0ErQlosY0FBYyxDQXVEWixZQUFZLENBQUM7TUFDWCxTQUFTLEVBQUUsSUFBSTtNQUNmLFdBQVcsRUFBRSxJQUFJO01BQ2pCLEtBQUssRWxJMVRELE9BQU8sR2tJMlRaO0lBblVQLEFBcVVNLHFCQXJVZSxDQXlPbkIsY0FBYyxDQStCWixjQUFjLENBNkRaLGVBQWUsQ0FBQztNQUNkLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLElBQUk7TUFDakIsS0FBSyxFQUFFLE9BQW9CLEdBQzVCO0lBelVQLEFBMlVNLHFCQTNVZSxDQXlPbkIsY0FBYyxDQStCWixjQUFjLENBbUVaLGFBQWEsQ0FBQztNQUNaLFNBQVMsRUFBRSxJQUFJO01BQ2YsVUFBVSxFQUFFLE1BQU07TUFDbEIsS0FBSyxFbEkzVU4sT0FBTyxHa0k0VVA7SUEvVVAsQUFvVlEscUJBcFZhLENBeU9uQixjQUFjLENBeUdaLGlCQUFpQixBQUNkLE9BQU8sQ0FDTixLQUFLLEdBQUcsR0FBRyxDQUFDO01BQ1YsU0FBUyxFQUFFLElBQUk7TUFDZixVQUFVLEVBQUUsTUFBTSxHQUNuQjtJQXZWVCxBQTBWTSxxQkExVmUsQ0F5T25CLGNBQWMsQ0F5R1osaUJBQWlCLEdBUWQsS0FBSyxDQUFDO01BQ0wsU0FBUyxFQUFFLEtBQUs7TUFDaEIsU0FBUyxFQUFFLEtBQUs7TUFDaEIsUUFBUSxFQUFFLE1BQU07TUFDaEIsV0FBVyxFQUFFLE1BQU07TUFDbkIsYUFBYSxFQUFFLFFBQVEsR0FDeEI7SUFoV1AsQUFrV00scUJBbFdlLENBeU9uQixjQUFjLENBeUdaLGlCQUFpQixDQWdCZixLQUFLLEdBQUcsR0FBRyxDQUFDO01BQ1YsV0FBVyxFQUFFLEdBQUcsR0FDakI7SUFwV1AsQUFzV00scUJBdFdlLENBeU9uQixjQUFjLENBeUdaLGlCQUFpQixDQW9CZixLQUFLLENBQUEsQUFBQSxJQUFDLENBQUQsUUFBQyxBQUFBLEVBQWU7TUFDbkIsT0FBTyxFQUFFLElBQUksR0FDZDtJQXhXUCxBQTBXTSxxQkExV2UsQ0F5T25CLGNBQWMsQ0F5R1osaUJBQWlCLENBd0JmLEtBQUssQ0FBQztNaklsU1YsT0FBTyxFQUFFLFlBQVk7TUFDckIsT0FBTyxFQUFFLFdBQVc7TUFDcEIsT0FBTyxFQUFFLElBQUk7TUFyQmIsbUJBQW1CLEVpSXVUYSxNQUFNO01qSXRUOUIsV0FBVyxFaUlzVGEsTUFBTTtNakk5UnRDLHVCQUF1QixFaUkrUmEsTUFBTTtNakk5UmxDLGVBQWUsRWlJOFJhLE1BQU07TUFDcEMsZ0JBQWdCLEVsSXJXVixPQUFPO01rSXNXYixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ2xJdFdYLE9BQU87TWtJdVdiLGFBQWEsRUFBRSxHQUFHO01BQ2xCLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLElBQUk7TUFDakIsS0FBSyxFbEk5V0wsT0FBTztNa0krV1AsV0FBVyxFQUFFLEdBQUc7TUFDaEIsY0FBYyxFQUFFLFNBQVM7TUFDekIsTUFBTSxFQUFFLE9BQU8sR0FlaEI7TUFyWVAsQUF3WFEscUJBeFhhLENBeU9uQixjQUFjLENBeUdaLGlCQUFpQixDQXdCZixLQUFLLEFBY0YsU0FBUyxDQUFDO1FBQ1QsTUFBTSxFQUFFLFdBQVcsR0FDcEI7TUExWFQsQUE0WFEscUJBNVhhLENBeU9uQixjQUFjLENBeUdaLGlCQUFpQixDQXdCZixLQUFLLEFBa0JGLFNBQVMsQUFBQSxJQUFLLENBQUEsTUFBTSxFQUFFO1FBQ3JCLGdCQUFnQixFQUFFLE9BQU87UUFDekIsWUFBWSxFQUFFLE9BQU8sR0FDdEI7TUEvWFQsQUFpWVEscUJBallhLENBeU9uQixjQUFjLENBeUdaLGlCQUFpQixDQXdCZixLQUFLLEFBdUJGLE1BQU0sQ0FBQztRQUNOLGdCQUFnQixFbEl4WGQsT0FBTztRa0l5WFQsWUFBWSxFbEl6WFYsT0FBTyxHa0kwWFY7SUFwWVQsQUF3WUkscUJBeFlpQixDQXlPbkIsY0FBYyxDQStKWixnQkFBZ0IsQ0FBQztNQUNmLFVBQVUsRUFBRSxJQUFJLEdBa0NqQjtNQTNhTCxBQTBZTSxxQkExWWUsQ0F5T25CLGNBQWMsQ0ErSlosZ0JBQWdCLEdBRWIsR0FBRyxDQUFDO1FqSWxVVCxPQUFPLEVBQUUsWUFBWTtRQUNyQixPQUFPLEVBQUUsV0FBVztRQUNwQixPQUFPLEVBQUUsSUFBSTtRQVhiLHNCQUFzQixFQThDRSxHQUFHO1FBN0NuQixjQUFjLEVBNkNFLEdBQUc7UUF4RDNCLG1CQUFtQixFaUl1VmEsTUFBTTtRakl0VjlCLFdBQVcsRWlJc1ZhLE1BQU07UWpJOVR0Qyx1QkFBdUIsRWlJK1RhLE1BQU07UWpJOVRsQyxlQUFlLEVpSThUYSxNQUFNO1FBQ3BDLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLGdCQUFnQixFQUFFLE9BQU87UUFDekIsTUFBTSxFQUFFLGlCQUFpQixHQTBCMUI7UUExYVAsQUFrWlEscUJBbFphLENBeU9uQixjQUFjLENBK0paLGdCQUFnQixHQUViLEdBQUcsQUFRRCxRQUFRLENBQUM7VUFDUixnQkFBZ0IsRUFBRSxPQUNwQixHQUFDO1FBcFpULEFBc1pRLHFCQXRaYSxDQXlPbkIsY0FBYyxDQStKWixnQkFBZ0IsR0FFYixHQUFHLENBWUYsS0FBSyxDQUFDO1VqSTVXWixZQUFZLEVpSTZXVSxDQUFDO1VqSTVXbkIsUUFBUSxFaUk0V1UsQ0FBQztVakkzV2YsSUFBSSxFaUkyV1UsQ0FBQztVakkvVXZCLE9BQU8sRUFBRSxZQUFZO1VBQ3JCLE9BQU8sRUFBRSxXQUFXO1VBQ3BCLE9BQU8sRUFBRSxJQUFJO1VBWGIsc0JBQXNCLEVBOENFLEdBQUc7VUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztVQS9CM0IsdUJBQXVCLEVpSTJVZSxVQUFVO1VqSTFVeEMsZUFBZSxFaUkwVWUsVUFBVTtVQUN4QyxZQUFZLEVBQUUsSUFBSTtVQUNsQixTQUFTLEVBQUUsSUFBSSxHQUtoQjtVQWhhVCxBQTRaVSxxQkE1WlcsQ0F5T25CLGNBQWMsQ0ErSlosZ0JBQWdCLEdBRWIsR0FBRyxDQVlGLEtBQUssQUFNRixPQUFPLENBQUM7WUFBRSxLQUFLLEVBQUUsT0FBTyxHQUFJO1VBNVp2QyxBQTZaVSxxQkE3WlcsQ0F5T25CLGNBQWMsQ0ErSlosZ0JBQWdCLEdBRWIsR0FBRyxDQVlGLEtBQUssQUFPRixRQUFRLENBQUM7WUFBRSxLQUFLLEVBQUUsT0FBTyxHQUFJO1VBN1p4QyxBQThaVSxxQkE5WlcsQ0F5T25CLGNBQWMsQ0ErSlosZ0JBQWdCLEdBRWIsR0FBRyxDQVlGLEtBQUssQUFRRixTQUFTLENBQUM7WUFBRSxLQUFLLEVBQUUsT0FBTyxHQUFJO1VBOVp6QyxBQStaVSxxQkEvWlcsQ0F5T25CLGNBQWMsQ0ErSlosZ0JBQWdCLEdBRWIsR0FBRyxDQVlGLEtBQUssQUFTRixRQUFRLENBQUM7WUFBRSxLQUFLLEVBQUUsT0FBTyxHQUFJO1FBL1p4QyxBQWthUSxxQkFsYWEsQ0F5T25CLGNBQWMsQ0ErSlosZ0JBQWdCLEdBRWIsR0FBRyxDQXdCRixPQUFPLENBQUM7VWpJMVZkLE9BQU8sRUFBRSxZQUFZO1VBQ3JCLE9BQU8sRUFBRSxXQUFXO1VBQ3BCLE9BQU8sRUFBRSxJQUFJO1VBWGIsc0JBQXNCLEVBOENFLEdBQUc7VUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztVQS9CM0IsdUJBQXVCLEVpSXNWZSxRQUFRO1VqSXJWdEMsZUFBZSxFaUlxVmUsUUFBUSxHQUt2QztVQXphVCxBQXFhVSxxQkFyYVcsQ0F5T25CLGNBQWMsQ0ErSlosZ0JBQWdCLEdBRWIsR0FBRyxDQXdCRixPQUFPLEdBR0gsTUFBTSxDQUFDO1lBQ1AsVUFBVSxFQUFFLElBQUk7WUFDaEIsVUFBVSxFQUFFLElBQUksR0FDakI7SUF4YVgsQUE2YUkscUJBN2FpQixDQXlPbkIsY0FBYyxDQW9NWixpQkFBaUIsQ0FBQztNaklyV3BCLE9BQU8sRUFBRSxZQUFZO01BQ3JCLE9BQU8sRUFBRSxXQUFXO01BQ3BCLE9BQU8sRUFBRSxJQUFJO01BWGIsc0JBQXNCLEVBOENFLEdBQUc7TUE3Q25CLGNBQWMsRUE2Q0UsR0FBRztNQS9CM0IsdUJBQXVCLEVpSWlXVyxRQUFRO01qSWhXbEMsZUFBZSxFaUlnV1csUUFBUTtNQUN0QyxNQUFNLEVBQUUsTUFBTSxHQUtmO01BcmJMLEFBaWJNLHFCQWpiZSxDQXlPbkIsY0FBYyxDQW9NWixpQkFBaUIsR0FJZCxNQUFNLENBQUM7UUFDTixTQUFTLEVBQUUsS0FBSztRQUNoQixjQUFjLEVBQUUsU0FBUyxHQUMxQjs7QUNwYVAsQUFBQSxtQkFBbUIsQ0FBQztFQUNsQixPQUFPLEVBQUUsSUFBSTtFQUNiLGVBQWUsRUFBRSxNQUFNO0VBQ3ZCLElBQUksRUFBRSxRQUFRO0VBQ2QsU0FBUyxFQUFFLENBQUM7RUFDWixLQUFLLEVBQUUsSUFBSTtFQUNYLFVBQVUsRXBJaUJFLE9BQU8sR29JaEJwQjs7QUFFRCxBQUFBLGNBQWMsQ0FBQztFQUNiLElBQUksRUFBRSxRQUFRO0VBQ2QsU0FBUyxFQUFFLENBQUM7RUFDWixLQUFLLEVBQUUsSUFBSTtFQUNYLE9BQU8sRUFBRSxjQUFjO0VBQ3ZCLFVBQVUsRXBJU0UsT0FBTztFb0lSbkIsVUFBVSxFQUFFLFVBQVU7RUFDdEIsVUFBVSxFQUFFLElBQUksR0FvZmpCO0VBM2ZELEFBV0UsY0FYWSxDQVdaLE1BQU0sQ0FBQztJbElrTVAsU0FBUyxFQUFFLENBQUM7SUFDWixVQUFVLEVBQUUsQ0FBQztJQUNiLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLGNBQWMsRUFBRSxJQUFJLEdrSXBNbkI7RUFiSCxBQWVFLGNBZlksQ0FlWixNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ2QsV0FBVyxFQUFFLENBQUMsR0FDZjtFQUVBLEFBQUQsc0JBQVMsQ0FBQztJQUNSLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLGFBQWE7SUFDOUIsR0FBRyxFQUFFLElBQUk7SUFDVCxhQUFhLEVBQUUsSUFBSSxHQUNwQjtFQUVBLEFBQUQscUJBQVEsQ0FBQztJQUNQLE1BQU0sRUFBRSxDQUFDO0lBQ1QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEVBdERZLE9BQU8sR0F1RHpCO0VBTUEsQUFBRCwyQkFBYyxDQUFDO0lBQ2IsT0FBTyxFQUFFLFdBQVc7SUFDcEIsSUFBSSxFQUFFLFFBQVE7SUFDZCxXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixVQUFVLEVBQUUsVUFBVTtJQUN0QixNQUFNLEVBQUUsSUFBSTtJQUNaLE9BQU8sRUFBRSxNQUFNO0lBRWYsVUFBVSxFcElsQ0EsT0FBTztJb0ltQ2pCLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDbkl6RWQsT0FBTztJbUkwRVYsYUFBYSxFQUFFLEdBQUc7SUFDbEIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEVuSTlFRixPQUFPO0ltSStFVixNQUFNLEVBQUUsT0FBTyxHQUtoQjtJQXJCQSxBQWtCQywyQkFsQlksQUFrQlgsTUFBTSxDQUFDO01BQ04sVUFBVSxFcEloRUYsT0FBTyxHb0lpRWhCO0VBR0YsQUFBRCxvQkFBTyxDQUFDO0lBQ04sT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsSUFBSTtJQUNULGFBQWEsRUFBRSxJQUFJLEdBQ3BCO0VBRUEsQUFBRCxtQkFBTSxDQUFDO0lBQ0wsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLEdBQUc7SUFDUixVQUFVLEVBQUUsVUFBVTtJQUN0QixNQUFNLEVBQUUsSUFBSTtJQUNaLE9BQU8sRUFBRSxNQUFNO0lBQ2YsVUFBVSxFQUFFLElBQUk7SUFDaEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENwSWZKLE9BQU87SW9JZ0JwQixhQUFhLEVBQUUsR0FBRztJQUNsQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRXBJMUVLLE9BQU87SW9JMkVqQixNQUFNLEVBQUUsT0FBTyxHQU9oQjtJQUxFLEFBQUQsMkJBQVMsQ0FBQztNQUNSLFlBQVksRW5JOUdYLE9BQU87TW1JK0dSLFVBQVUsRXBJN0ZGLE9BQU87TW9JOEZmLEtBQUssRW5JaEhKLE9BQU8sR21JaUhUO0VBR0YsQUFBRCx5QkFBWSxDQUFDO0lBQ1gsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsU0FBUyxFQUFFLElBQUk7SUFDZixPQUFPLEVBQUUsS0FBSztJQUNkLFVBQVUsRUF2SFEsT0FBTztJQXdIekIsYUFBYSxFQUFFLElBQUk7SUFDbkIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEVwSS9GSyxPQUFPLEdvSWdHbEI7RUFFQSxBQUFELDJCQUFjLENBQUUseUJBQVcsQ0FBQztJQUMxQixVQUFVLEVBQUUseUJBQXlCO0lBQ3JDLEtBQUssRW5JcElGLE9BQU8sR21JcUlYO0VBRUEsQUFBRCxzQkFBUyxDQUFDO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsR0FBRztJQUNSLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLE1BQU0sRUFBRSxJQUFJO0lBQ1osYUFBYSxFQUFFLElBQUk7SUFDbkIsT0FBTyxFQUFFLE1BQU07SUFDZixVQUFVLEVBMUlXLE9BQU87SUEySTVCLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDQTFJUSxPQUFPO0lBMkloQyxhQUFhLEVBQUUsR0FBRyxHQUNuQjtFQUVBLEFBQUQsMkJBQWMsQ0FBQztJQUNiLE9BQU8sRUFBRSxLQUFLO0lBQ2QsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osVUFBVSxFQUFFLE9BQU87SUFJbkIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsR0FBRyxFQUFFLElBQUksR0FDVjtFQUVBLEFBQUQsMkJBQWMsQ0FBQztJQUNiLElBQUksRUFBRSxRQUFRO0lBQ2QsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLEtBQUssRXBJckhLLE9BQU8sR29Jc0hsQjtFQUVBLEFBQUQsNEJBQWUsQ0FBQztJQUNkLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLElBQUksRUFBRSxRQUFRO0lBQ2QsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsVUFBVSxFQUFFLFVBQVU7SUFFdEIsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsS0FBSztJQUNkLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE1BQU0sRUFBRSxDQUFDO0lBQ1QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsQ0FBQztJQUNkLEtBQUssRXBJcklLLE9BQU87SW9Jc0lqQixNQUFNLEVBQUUsT0FBTyxHQUNoQjtFQUVBLEFBQUQsb0JBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxJQUFJO0lBQ2IscUJBQXFCLEVBQUUsd0JBQXdCO0lBQy9DLEdBQUcsRUFBRSxJQUFJO0lBQ1QsV0FBVyxFQUFFLEtBQUssR0FDbkI7RUFFQSxBQUFELDZCQUFnQixDQUFDO0lBQ2YsT0FBTyxFQUFFLFFBQVEsR0FDbEI7RUFFQSxBQUFELHFCQUFRLENBQUM7SUFDUCxXQUFXLEVBQUUsTUFBTTtJQUNuQixPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLEdBQUcsRUFBRSxHQUFHO0lBQ1IsT0FBTyxFQUFFLFNBQVM7SUFDbEIsVUFBVSxFQUFFLE1BQU0sR0FDbkI7RUFFQSxBQUFELDJCQUFjLENBQUM7SUFDYixNQUFNLEVBQUUsQ0FBQztJQUNULFdBQVcsRUFBRSxxQkFBcUI7SUFDbEMsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsQ0FBQztJQUNqQixVQUFVLEVBQUUsTUFBTTtJQUNsQixLQUFLLEVBQUUsT0FBTyxHQUNmO0VBRUEsQUFBRCxpQ0FBb0IsQ0FBQztJQUNuQixNQUFNLEVBQUUsQ0FBQztJQUNULFNBQVMsRUFBRSxLQUFLO0lBQ2hCLFdBQVcsRUFBRSxxQkFBcUI7SUFDbEMsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsQ0FBQztJQUNqQixVQUFVLEVBQUUsTUFBTTtJQUNsQixLQUFLLEVBQUUsT0FBTyxHQUNmO0VBRUEsQUFBRCxxQkFBUSxDQUFDLDJCQUEyQixDQUFDO0lBQ25DLFVBQVUsRUFBRSxJQUFJLEdBQ2pCO0VBRUEsQUFBRCxrQ0FBcUIsQ0FBQztJQUNwQixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3BJekpKLE9BQU87SW9JMEpwQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsSUFBSSxHQUNqQjtFQUVBLEFBQUQsNkJBQWdCLENBQUM7SUFDZixLQUFLLEVBQUUsSUFBSTtJQUNYLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLGVBQWUsRUFBRSxRQUFRO0lBQ3pCLFlBQVksRUFBRSxLQUFLLEdBQ3BCO0VBRUEsQUFBRCwwQkFBYSxDQUFDO0lBQ1osTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsTUFBTTtJQUNmLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDcEl4S1gsT0FBTztJb0l5S3BCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFcElsT0ssT0FBTztJb0ltT2pCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGNBQWMsRUFBRSxNQUFNLEdBYXZCO0lBWEUsQUFBRCxnQ0FBTyxDQUFDO01BQ04sS0FBSyxFQUFFLEdBQUcsR0FDWDtJQUVBLEFBQUQsZ0NBQU8sQ0FBQztNQUNOLEtBQUssRUFBRSxHQUFHLEdBQ1g7SUFFQSxBQUFELG1DQUFVLENBQUM7TUFDVCxLQUFLLEVBQUUsR0FBRyxHQUNYO0VBR0YsQUFBRCw0QkFBZSxDQUFDO0lBQ2QsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLEdBQUc7SUFDUixPQUFPLEVBQUUsQ0FBQztJQUNWLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE1BQU0sRUFBRSxDQUFDO0lBQ1QsSUFBSSxFQUFFLE9BQU87SUFDYixLQUFLLEVBQUUsT0FBTztJQUNkLE1BQU0sRUFBRSxPQUFPLEdBS2hCO0lBZEEsQUFXQyw0QkFYYSxBQVdaLE1BQU0sQ0FBQztNQUNOLEtBQUssRUE3UlUsT0FBTyxHQThSdkI7RUFLRixBQUFELGlDQUFvQixDQUFDO0lBQ25CLElBQUksRUFBRSxRQUFRO0lBQ2QsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJLEdBVWI7SUFkQSxBQU1DLGlDQU5rQixDQU1sQixJQUFJLENBQUM7TUFDSCxJQUFJLEVwSTVRSSxPQUFPLEdvSTZRaEI7SUFFQSxBQUFELHNDQUFNLENBQUMsK0JBQStCO0lBQ3JDLHVDQUFNLENBQUMsaUNBQWlDLENBQUM7TUFDeEMsSUFBSSxFcEk1UkksT0FBTyxHb0k2UmhCO0VBR0YsQUFBRCwyQkFBYyxDQUFDO0lBQ2IsTUFBTSxFQUFFLElBQUk7SUFDWixhQUFhLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3BJak9YLE9BQU8sR29Jc09yQjtJQVBBLEFBSUMsMkJBSlksQUFJWCxXQUFXLENBQUM7TUFDWCxhQUFhLEVBQUUsQ0FBQyxHQUNqQjtFQUdGLEFBQUQsMEJBQWEsQ0FBQztJQUNaLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFQWpVWSxPQUFPO0lBa1V4QixjQUFjLEVBQUUsTUFBTSxHQWV2QjtJQWJFLEFBQUQsZ0NBQU8sQ0FBQztNQUNOLE9BQU8sRUFBRSxJQUFJO01BQ2IsV0FBVyxFQUFFLE1BQU07TUFDbkIsR0FBRyxFQUFFLElBQUksR0FDVjtJQUVBLEFBQUQsZ0NBQU8sQ0FBQztNQUNOLEtBQUssRXBJN1NHLE9BQU8sR29JOFNoQjtJQUVBLEFBQUQsbUNBQVUsQ0FBQztNQUNULEtBQUssRXBJalRHLE9BQU8sR29Ja1RoQjtFQUlGLEFBQUQsNkJBQWdCLENBQUM7SUFDZixPQUFPLEVBQUUsS0FBSztJQUNkLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUF4VmtCLE9BQU8sR0F5VnBDO0VBRUEsQUFBRCxnQ0FBbUIsQ0FBQztJQUNsQixPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLEdBQUcsRUFBRSxJQUFJO0lBQ1QsT0FBTyxFQUFFLEtBQUssR0FDZjtFQUVBLEFBQUQsb0NBQXVCLENBQUM7SUFDdEIsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsSUFBSTtJQUNULE9BQU8sRUFBRSxJQUFJO0lBQ2IsVUFBVSxFQUFFLElBQUk7SUFDaEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENwSXRSSixPQUFPO0lvSXVScEIsYUFBYSxFQUFFLEdBQUcsR0FDbkI7RUFFQSxBQUFELHNDQUF5QixDQUFDO0lBQ3hCLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLGFBQWEsRUFBRSxHQUFHLEdBQ25CO0VBRUEsQUFBRCw0QkFBZSxDQUFDO0lBQ2QsU0FBUyxFQUFFLENBQUMsR0FDYjtFQUVBLEFBQUQsNkJBQWdCLENBQUM7SUFDZixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRW5JL1hGLE9BQU87SW1JZ1lWLGFBQWEsRUFBRSxVQUFVLEdBQzFCO0VBRUEsQUFBRCw2QkFBZ0IsQ0FBQztJQUNmLFVBQVUsRUFBRSxHQUFHO0lBQ2YsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEVwSXhXSyxPQUFPLEdvSXlXbEI7RUFFQSxBQUFELDhCQUFpQixDQUFDO0lBQ2hCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFVBQVUsRUFBRSxHQUFHLENBQUMsS0FBSyxDcEl2VFIsT0FBTztJb0l3VHBCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFcElqWEssT0FBTyxHb0l5WGxCO0lBSkUsQUFBRCxxQ0FBUSxDQUFDO01BQ1AsT0FBTyxFQUFFLFNBQVM7TUFDbEIsVUFBVSxFQUFFLENBQUMsR0FDZDtFQU9GLEFBQUQsNkJBQWdCLENBQUM7SUFDZixPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLEdBQUcsRUFBRSxJQUFJLEdBQ1Y7RUFFQSxBQUFELCtCQUFrQixDQUFDO0lBQ2pCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLEdBQUc7SUFHUixVQUFVLEVBQUUsSUFBSTtJQUNoQiwwQkFBMEIsRUFBRSxLQUFLO0lBQ2pDLGNBQWMsRUFBRSxHQUFHLEdBQ3BCO0VBRUEsQUFBRCw0QkFBZSxDQUFDO0lBQ2QsT0FBTyxFQUFFLFdBQVc7SUFDcEIsSUFBSSxFQUFFLFFBQVE7SUFDZCxXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixHQUFHLEVBQUUsR0FBRztJQUNSLFVBQVUsRUFBRSxVQUFVO0lBT3RCLE1BQU0sRUFBRSxJQUFJO0lBQ1osT0FBTyxFQUFFLE1BQU07SUFDZixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3BJMVdKLE9BQU87SW9JMldwQixhQUFhLEVBQUUsR0FBRztJQUNsQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRXBJcmFLLE9BQU87SW9Jc2FqQixNQUFNLEVBQUUsT0FBTyxHQVFoQjtJQUxFLEFBQUQsb0NBQVMsQ0FBQztNQUNSLFlBQVksRW5JMWNYLE9BQU87TW1JMmNSLFVBQVUsRXBJemJGLE9BQU87TW9JMGJmLEtBQUssRW5JNWNKLE9BQU8sR21JNmNUO0VBR0YsQUFBRCxpQ0FBb0IsQ0FBQztJQUNuQixJQUFJLEVBQUUsUUFBUTtJQUNkLFNBQVMsRUFBRSxJQUFJO0lBQ2YsS0FBSyxFQUFFLE9BQU8sR0FDZjtFQUVBLEFBQUQsNEJBQWUsQ0FBQztJQUNkLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLFVBQVU7SUFDdkIsR0FBRyxFQUFFLElBQUk7SUFDVCxVQUFVLEVBQUUsVUFBVTtJQUN0QixPQUFPLEVBQUUsSUFBSTtJQUNiLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDcEl2WUosT0FBTztJb0l3WXBCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsR0FDN0M7RUFFQSxBQUFELGlDQUFvQixDQUFDO0lBQ25CLE9BQU8sRUFBRSxJQUFJO0lBQ2IsSUFBSSxFQUFFLFFBQVE7SUFDZCxjQUFjLEVBQUUsTUFBTTtJQUN0QixHQUFHLEVBQUUsR0FBRztJQUVSLFNBQVMsRUFBRSxDQUFDLEdBQ2I7RUFJQSxBQUFELDRCQUFlLENBQUUsNkJBQWUsQ0FBQztJQUMvQixPQUFPLEVBQUUsV0FBVztJQUNwQixrQkFBa0IsRUFBRSxRQUFRO0lBQzVCLGtCQUFrQixFQUFFLENBQUM7SUFDckIsVUFBVSxFQUFFLElBQUk7SUFDaEIsUUFBUSxFQUFFLE1BQU0sR0FDakI7RUFFQSxBQUFELDZCQUFnQixDQUFDO0lBQ2YsT0FBTyxFQUFFLElBQUk7SUFDYixTQUFTLEVBQUUsSUFBSTtJQUNmLEdBQUcsRUFBRSxRQUFRO0lBQ2IsVUFBVSxFQUFFLEdBQUcsR0FDaEI7RUFFQSxBQUFELDRCQUFlLENBQUM7SUFDZCxPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLEdBQUcsRUFBRSxHQUFHO0lBQ1IsU0FBUyxFQUFFLENBQUMsR0FDYjtFQUdBLEFBQUQsa0NBQXFCLENBQUM7SUFDcEIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsS0FBSztJQUNyQixjQUFjLEVBQUUsU0FBUztJQUN6QixLQUFLLEVwSTFlSyxPQUFPLEdvSTJlbEI7RUFFQSxBQUFELGtDQUFxQixDQUFDO0lBQ3BCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFQS9nQlksT0FBTyxHQWdoQnpCOztBQUdILEFBQUEsYUFBYSxDQUFDO0VBQ1osT0FBTyxFQUFFLElBQUk7RUFDYixjQUFjLEVBQUUsTUFBTTtFQUN0QixVQUFVLEVBQUUsVUFBVTtFQUN0QixLQUFLLEVBQUUsS0FBSztFQUtaLE1BQU0sRUFBRSxLQUFLO0VBQ2IsVUFBVSxFQUFFLElBQUk7RUFDaEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENwSTFjRixPQUFPO0VvSTJjdEIsYUFBYSxFQUFFLEdBQUc7RUFDbEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLHNCQUFzQjtFQUM1QyxRQUFRLEVBQUUsT0FBTyxHQXlYbEI7RUF2WEUsQUFBRCxvQkFBUSxDQUFDO0lBQ1AsUUFBUSxFQUFFLFFBQVE7SUFDbEIsSUFBSSxFQUFFLFFBQVE7SUFDZCxNQUFNLEVBQUUsS0FBSztJQUNiLFFBQVEsRUFBRSxPQUFPO0lBQ2pCLFVBQVUsRXBJOWdCQSxPQUFPO0lvSStnQmpCLGFBQWEsRUFBRSxXQUFXLEdBQzNCO0VBRUEsQUFBRCxvQkFBUSxDQUFDO0lBQ1AsUUFBUSxFQUFFLFFBQVE7SUFDbEIsR0FBRyxFQUFFLElBQUk7SUFDVCxJQUFJLEVBQUUsSUFBSTtJQUNWLE9BQU8sRUFBRSxDQUFDO0lBQ1YsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsVUFBVSxFQUFFLFVBQVU7SUFDdEIsT0FBTyxFQUFFLE9BQU87SUFDaEIsVUFBVSxFQUFFLE9BQU87SUFDbkIsYUFBYSxFQUFFLElBQUk7SUFDbkIsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLEtBQUssRUFBRSxPQUFPLEdBQ2Y7RUFFQSxBQUFELG1CQUFPLENBQUM7SUFDTixRQUFRLEVBQUUsUUFBUTtJQUNsQixHQUFHLEVBQUUsSUFBSTtJQUNULEtBQUssRUFBRSxJQUFJO0lBQ1gsT0FBTyxFQUFFLENBQUMsR0FDWDtFQUVBLEFBQUQsdUJBQVcsQ0FBQztJQUNWLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsQ0FBQztJQUNWLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDcEk1ZkosT0FBTztJb0k2ZnBCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLENBQUM7SUFDZCxLQUFLLEVwSXRqQkssT0FBTztJb0l1akJqQixNQUFNLEVBQUUsT0FBTyxHQU1oQjtJQW5CQSxBQWVDLHVCQWZTLEFBZVIsTUFBTSxDQUFDO01BQ04sS0FBSyxFQXhsQlUsT0FBTztNQXlsQnRCLFVBQVUsRUF4bEJNLE9BQU8sR0F5bEJ4QjtFQUdGLEFBQUQsd0JBQVksQ0FBQztJQUNYLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEdBQUcsRUFBRSxnQkFBZ0I7SUFDckIsS0FBSyxFQUFFLENBQUM7SUFDUixVQUFVLEVBQUUsVUFBVTtJQUN0QixLQUFLLEVBQUUsS0FBSztJQUNaLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLE9BQU8sRUFBRSxDQUFDO0lBQ1YsVUFBVSxFQUFFLElBQUk7SUFDaEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENwSWxoQkosT0FBTztJb0ltaEJwQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsc0JBQXNCO0lBQzdDLFFBQVEsRUFBRSxNQUFNLEdBQ2pCO0VBRUEsQUFBRCx3QkFBWSxDQUFDO0lBQ1gsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsR0FBRztJQUNSLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsU0FBUztJQUNsQixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsQ0FBQztJQUNULFdBQVcsRUFBRSxxQkFBcUI7SUFDbEMsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsQ0FBQztJQUNqQixLQUFLLEVBQUUsT0FBTztJQUNkLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE1BQU0sRUFBRSxPQUFPLEdBTWhCO0lBdkJBLEFBbUJDLHdCQW5CVSxBQW1CVCxNQUFNLENBQUM7TUFDTixVQUFVLEVBQUUsT0FBTztNQUNuQixLQUFLLEVBQUUsT0FBTyxHQUNmO0VBR0YsQUFBRCw2QkFBaUIsQ0FBQztJQUNoQixJQUFJLEVBQUUsUUFBUTtJQUNkLE9BQU8sRUFBRSxLQUFLO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxPQUFPLEdBQ3BCO0VBRUEsQUFBRCxtQkFBTyxDQUFDO0lBQ04sT0FBTyxFQUFFLElBQUk7SUFDYixJQUFJLEVBQUUsUUFBUTtJQUNkLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLEdBQUcsRUFBRSxHQUFHO0lBQ1IsVUFBVSxFQUFFLENBQUM7SUFDYixPQUFPLEVBQUUsSUFBSTtJQUNiLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLFFBQVEsRUFBRSxNQUFNLEdBQ2pCO0VBRUEsQUFBRCxvQkFBUSxDQUFDO0lBQ1AsT0FBTyxFQUFFLFdBQVc7SUFDcEIsa0JBQWtCLEVBQUUsUUFBUTtJQUM1QixrQkFBa0IsRUFBRSxDQUFDO0lBQ3JCLFdBQVcsRUFBRSxDQUFDO0lBQ2QsVUFBVSxFQUFFLElBQUk7SUFDaEIsUUFBUSxFQUFFLE1BQU07SUFDaEIsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLEtBQUssRUFwcUJZLE9BQU8sR0FxcUJ6QjtFQUVBLEFBQUQsbUJBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxJQUFJO0lBQ2IsSUFBSSxFQUFFLFFBQVE7SUFDZCxjQUFjLEVBQUUsR0FBRztJQUNuQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxNQUFNO0lBQ25CLEdBQUcsRUFBRSxHQUFHLEdBQ1Q7RUFFQSxBQUFELGtCQUFNLENBQUM7SUFDTCxPQUFPLEVBQUUsV0FBVztJQUNwQixXQUFXLEVBQUUsTUFBTTtJQUNuQixVQUFVLEVBQUUsVUFBVTtJQUN0QixHQUFHLEVBQUUsR0FBRztJQUNSLE1BQU0sRUFBRSxJQUFJO0lBQ1osT0FBTyxFQUFFLEtBQUs7SUFDZCxVQUFVLEVBdHJCUSxPQUFPO0lBdXJCekIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEVwSTlwQkssT0FBTztJb0krcEJqQixVQUFVLEVBQUUsTUFBTSxHQUNuQjtFQUVBLEFBQUQsdUJBQVcsQ0FBQztJQUNWLElBQUksRUFBRSxRQUFRO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsQ0FBQztJQUNkLEtBQUssRUFBRSxPQUFPLEdBUWY7SUFORSxBQUFELDRCQUFNLENBQUM7TUFDTCxPQUFPLEVBQUUsS0FBSztNQUNkLEtBQUssRUFBRSxJQUFJO01BQ1gsTUFBTSxFQUFFLElBQUk7TUFDWixVQUFVLEVBQUUsT0FBTyxHQUNwQjtFQUdGLEFBQUQsbUJBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxJQUFJO0lBQ2IsSUFBSSxFQUFFLFFBQVE7SUFDZCxjQUFjLEVBQUUsTUFBTTtJQUN0QixXQUFXLEVBQUUsQ0FBQztJQUVkLEdBQUcsRUFBRSxHQUFHO0lBQ1IsVUFBVSxFQUFFLENBQUM7SUFDYixRQUFRLEVBQUUsTUFBTSxHQUNqQjtFQUVBLEFBQUQsdUJBQVcsQ0FBQztJQUNWLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLEdBQUc7SUFDUixXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsY0FBYyxFQUFFLENBQUM7SUFDakIsS0FBSyxFcElwc0JLLE9BQU8sR29JcXNCbEI7RUFLQSxBQUFELHdCQUFZLENBQUM7SUFDWCxRQUFRLEVBQUUsTUFBTTtJQUNoQixTQUFTLEVBQUUsQ0FBQztJQUNaLGFBQWEsRUFBRSxRQUFRO0lBQ3ZCLFdBQVcsRUFBRSxNQUFNLEdBQ3BCO0VBRUEsQUFBRCx3QkFBWSxDQUFDO0lBQ1gsSUFBSSxFQUFFLFFBQVE7SUFDZCxXQUFXLEVBQUUsTUFBTSxHQUNwQjtFQUVBLEFBQUQsd0JBQVksQ0FBQztJQUNYLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxTQUFTLEVBQUUsSUFBSTtJQUNmLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLEtBQUssRXBJM3RCSyxPQUFPLEdvSWt2QmxCO0lBckJFLEFBQUQsNkJBQU0sQ0FBQztNQUNMLE9BQU8sRUFBRSxLQUFLO01BQ2QsS0FBSyxFQUFFLElBQUk7TUFDWCxNQUFNLEVBQUUsSUFBSTtNQUNaLFVBQVUsRUFBRSxPQUFPLEdBQ3BCO0lBSUEsQUFBRCw2QkFBTSxDQUFDO01BQ0wsT0FBTyxFQUFFLElBQUk7TUFDYixXQUFXLEVBQUUsTUFBTTtNQUNuQixlQUFlLEVBQUUsTUFBTTtNQUN2QixNQUFNLEVBQUUsSUFBSSxHQU9iO01BWEEsQUFNQyw2QkFOSSxDQU1KLEdBQUcsQ0FBQztRQUNGLE9BQU8sRUFBRSxLQUFLO1FBQ2QsS0FBSyxFQUFFLElBQUk7UUFDWCxNQUFNLEVBQUUsSUFBSSxHQUNiO0VBSUosQUFBRCx1QkFBVyxDQUFDO0lBQ1YsSUFBSSxFQUFFLFFBQVE7SUFDZCxNQUFNLEVBQUUsTUFBTTtJQUNkLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFQWp4QmUsT0FBTyxHQWt4QjVCO0VBRUEsQUFBRCx1QkFBVyxDQUFDO0lBQ1YsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsYUFBYTtJQUM5QixHQUFHLEVBQUUsSUFBSTtJQUNULFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLElBQUk7SUFDakIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENwSTdzQlIsT0FBTyxHb0k4c0JyQjtFQUVBLEFBQUQsNkJBQWlCLENBQUM7SUFDaEIsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLEtBQUssRUExeUJZLE9BQU8sR0EyeUJ6QjtFQUVBLEFBQUQsbUJBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLEdBQUcsRUFBRSxHQUFHLEdBQ1Q7RUFFQSxBQUFELGtCQUFNLENBQUM7SUFDTCxPQUFPLEVBQUUsV0FBVztJQUNwQixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osVUFBVSxFQXB6QlMsT0FBTztJQXF6QjFCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFQXh6QmUsT0FBTyxHQTh6QjVCO0lBSkUsQUFBRCxzQkFBSyxDQUFDO01BQ0osVUFBVSxFcElqekJGLE9BQU87TW9Ja3pCZixLQUFLLEVwSTV5QkcsT0FBTyxHb0k2eUJoQjtFQUdGLEFBQUQsc0JBQVUsQ0FBQztJQUNULE9BQU8sRUFBRSxJQUFJO0lBQ2IsSUFBSSxFQUFFLFFBQVE7SUFDZCxjQUFjLEVBQUUsTUFBTTtJQUN0QixHQUFHLEVBQUUsR0FBRztJQUNSLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFdBQVcsRUFBRSxHQUFHLEdBQ2pCO0VBRUEsQUFBRCxrQkFBTSxDQUFDO0lBQ0wsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixVQUFVLEVBQUUsVUFBVTtJQUN0QixHQUFHLEVBQUUsR0FBRztJQUNSLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsYUFBYTtJQUN0QixVQUFVLEVuSTExQlAsT0FBTztJbUkyMUJWLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDbkkzMUJkLE9BQU87SW1JNDFCVixhQUFhLEVBQUUsR0FBRztJQUNsQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLE9BQU8sR0FlaEI7SUEvQkEsQUFrQkMsa0JBbEJJLEFBa0JILE1BQU0sQ0FBQztNQUNOLE9BQU8sRUFBRSxHQUFHLEdBQ2I7SUFFQSxBQUFELHlCQUFRLENBQUM7TUFDUCxVQUFVLEVBQUUsSUFBSTtNQUNoQixLQUFLLEVuSXoyQkosT0FBTyxHbUkrMkJUO01BUkEsQUFJQyx5QkFKTSxBQUlMLE1BQU0sQ0FBQztRQUNOLFVBQVUsRXBJMTFCSixPQUFPO1FvSTIxQmIsT0FBTyxFQUFFLENBQUMsR0FDWDtFQUlKLEFBQUQsdUJBQVcsQ0FBQztJQUNWLElBQUksRUFBRSxRQUFRO0lBQ2QsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osVUFBVSxFQUFFLE9BQU8sR0FDcEI7RUFFQSxBQUFELHVCQUFXLENBQUM7SUFDVixjQUFjLEVBQUUsSUFBSSxHQU1yQjtJQVBBLEFBR0MsdUJBSFMsQ0FHVCxvQkFBb0IsQ0FBQztNQUNuQixVQUFVLEVBQUUsT0FBTztNQUNuQixTQUFTLEVBQUUsNkNBQTZDLEdBQ3pEO0VBR0YsQUFBRCw2QkFBaUIsQ0FBQztJQUNoQixNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxHQUFHO0lBQ1YsU0FBUyxFQUFFLElBQUksR0FDaEI7RUFFQSxBQUFELDJCQUFlLENBQUM7SUFDZCxNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxJQUFJO0lBQ1gsYUFBYSxFQUFFLEdBQUcsR0FDbkI7RUFFQSxBQUFELDRCQUFnQixDQUFDO0lBQ2YsTUFBTSxFQUFFLElBQUk7SUFDWixLQUFLLEVBQUUsR0FBRztJQUNWLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0VBRUEsQUFBRCwyQkFBZSxDQUFDO0lBQ2QsTUFBTSxFQUFFLElBQUk7SUFDWixLQUFLLEVBQUUsSUFBSTtJQUNYLFNBQVMsRUFBRSxJQUFJO0lBQ2YsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLElBQUksR0FDakI7O0FBR0gsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNO0VBdDRCekIsQUFBQSxjQUFjLENBdTRCRztJQUNiLE9BQU8sRUFBRSxjQUFjLEdBTXhCO0lBMXVCQSxBQUFELG9CQUFPLENBc3VCRztNQUNOLHFCQUFxQixFQUFFLHdCQUF3QjtNQUMvQyxHQUFHLEVBQUUsSUFBSSxHQUNWOztBQUlMLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFQWo1QnhCLEFBQUEsY0FBYyxDQWs1Qkc7SUFDYixPQUFPLEVBQUUsY0FBYyxHQTBEeEI7SUExN0JBLEFBQUQsc0JBQVMsQ0FrNEJHO01BQ1IsY0FBYyxFQUFFLE1BQU07TUFDdEIsV0FBVyxFQUFFLFVBQVU7TUFDdkIsR0FBRyxFQUFFLElBQUksR0FDVjtJQTkzQkYsQUFBRCxxQkFBUSxDQWc0Qkc7TUFDUCxTQUFTLEVBQUUsSUFBSTtNQUNmLFdBQVcsRUFBRSxJQUFJLEdBQ2xCO0lBdjNCRixBQUFELDJCQUFjLENBeTNCRztNQUNiLEtBQUssRUFBRSxJQUFJLEdBQ1o7SUFwMkJGLEFBQUQsb0JBQU8sQ0F3MkJHO01BQ04sU0FBUyxFQUFFLE1BQU07TUFDakIsR0FBRyxFQUFFLEdBQUcsR0FDVDtJQXAyQkYsQUFBRCxtQkFBTSxDQXMyQkc7TUFHTCxJQUFJLEVBQUUsUUFBUTtNQUNkLGVBQWUsRUFBRSxNQUFNO01BQ3ZCLFNBQVMsRUFBRSxDQUFDO01BQ1osT0FBTyxFQUFFLE1BQU07TUFDZixHQUFHLEVBQUUsR0FBRztNQUNSLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0lBSUEsQUFBRCx5QkFBWSxDQUFDO01BQ1gsU0FBUyxFQUFFLENBQUM7TUFDWixRQUFRLEVBQUUsTUFBTTtNQUNoQixhQUFhLEVBQUUsUUFBUTtNQUN2QixXQUFXLEVBQUUsTUFBTSxHQUNwQjtJQWoyQkYsQUFBRCx5QkFBWSxDQW0yQkc7TUFDWCxJQUFJLEVBQUUsUUFBUTtNQUNkLFNBQVMsRUFBRSxJQUFJO01BQ2YsT0FBTyxFQUFFLEtBQUssR0FDZjtJQS94QkYsQUFBRCxvQkFBTyxDQWl5Qkc7TUFDTixxQkFBcUIsRUFBRSxLQUFLO01BQzVCLGVBQWUsRUFBRSxNQUFNLEdBQ3hCO0lBenhCRixBQUFELHFCQUFRLENBMnhCRztNQUNQLE9BQU8sRUFBRSxTQUFTLEdBQ25COztBQXVCTCxBQUFBLGVBQWUsQ0FBQztFQUNkLFFBQVEsRUFBRSxLQUFLO0VBQ2YsTUFBTSxFQUFFLElBQUk7RUFDWixJQUFJLEVBQUUsR0FBRztFQUNULFNBQVMsRUFBRSxnQkFBZ0I7RUFHM0IsT0FBTyxFQUFFLEdBQUc7RUFDWixVQUFVLEVBQUUsVUFBVTtFQUN0QixPQUFPLEVBQUUsSUFBSTtFQUNiLFdBQVcsRUFBRSxNQUFNO0VBQ25CLGVBQWUsRUFBRSxVQUFVO0VBQzNCLEdBQUcsRUFBRSxJQUFJO0VBR1QsTUFBTSxFQUFFLElBQUk7RUFDWixLQUFLLEVBQUUsV0FBVztFQUNsQixTQUFTLEVBQUUsa0JBQWtCO0VBQzdCLE9BQU8sRUFBRSxnQkFBZ0I7RUFDekIsYUFBYSxFQUFFLEdBQUc7RUFDbEIsVUFBVSxFcEloOUJLLE9BQU87RW9JaTlCdEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHNCQUFzQixHQUM5Qzs7QUFJRCxBQUFBLFVBQVUsQUFBQSxJQUFLLEc1R3g3QkUsYUFBYSxDQUFDLHNCQUFzQixBQUFBLFVBQVUsRTRHdzdCRSxlQUFlLENBQUM7RUFDL0UsSUFBSSxFQUFFLHFCQUF5QztFQUMvQyxTQUFTLEVBQUUsMEJBQThDLEdBQzFEOztBQUtELEFBQUEsVUFBVSxBQUFBLElBQUssRzVHN21CRSxhQUFhLENBQUMsc0JBQXNCLEFBQUEsVUFBVSxBQUFBLGFBQWEsRTRHNm1CRSxlQUFlLENBQUM7RUFDNUYsSUFBSSxFQUFFLG9CQUFtRDtFQUN6RCxTQUFTLEVBQUUseUJBQXdELEdBQ3BFOztBQU9FLEFBQUQsc0JBQVEsQ0FBQztFQUNQLElBQUksRUFBRSxRQUFRO0VBQ2QsT0FBTyxFQUFFLEtBQUs7RUFDZCxLQUFLLEVBQUUsSUFBSTtFQUNYLE1BQU0sRUFBRSxJQUFJO0VBQ1osVUFBVSxFQUFFLE9BQU87RUFDbkIsWUFBWSxFQUFFLEtBQUssR0FDcEI7O0FBRUEsQUFBRCx3QkFBVSxDQUFDO0VBQ1QsSUFBSSxFQUFFLFFBQVE7RUFDZCxTQUFTLEVBQUUsQ0FBQztFQUNaLFFBQVEsRUFBRSxNQUFNO0VBQ2hCLGFBQWEsRUFBRSxRQUFRO0VBQ3ZCLFdBQVcsRUFBRSxNQUFNO0VBQ25CLFdBQVcsRUFBRSxxQkFBcUI7RUFDbEMsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsR0FBRztFQUNoQixXQUFXLEVBQUUsSUFBSTtFQUNqQixjQUFjLEVBQUUsT0FBTztFQUN2QixLQUFLLEVBQUUsT0FBTyxHQUNmOztBQUtBLEFBQUQsc0JBQVEsQ0FBQztFbEk1MUJULFNBQVMsRUFBRSxDQUFDO0VBQ1osVUFBVSxFQUFFLENBQUM7RUFDYixVQUFVLEVBQUUsSUFBSTtFQUNoQixjQUFjLEVBQUUsQ0FBQztFQUNqQixjQUFjLEVBQUUsSUFBSTtFa0kwMUJsQixJQUFJLEVBQUUsUUFBUTtFQUNkLE9BQU8sRUFBRSxJQUFJO0VBQ2IsV0FBVyxFQUFFLE1BQU07RUFDbkIsZUFBZSxFQUFFLE1BQU07RUFDdkIsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsSUFBSTtFQUNaLE1BQU0sRUFBRSxDQUFDO0VBQ1QsT0FBTyxFQUFFLENBQUM7RUFDVixNQUFNLEVBQUUsQ0FBQztFQUNULGFBQWEsRUFBRSxHQUFHO0VBQ2xCLFVBQVUsRUFBRSxXQUFXO0VBQ3ZCLEtBQUssRUFBRSxPQUFPO0VBQ2QsTUFBTSxFQUFFLE9BQU8sR0FZaEI7RUExQkEsQUFnQkMsc0JBaEJNLENBZ0JOLEdBQUcsQ0FBQztJQUNGLE9BQU8sRUFBRSxLQUFLO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxPQUFPLEdBQ3BCO0VBckJGLEFBdUJDLHNCQXZCTSxBQXVCTCxNQUFNLENBQUM7SUFDTixVQUFVLEVBQUUseUJBQXlCLEdBQ3RDOztBQUlMLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFQW5HeEIsQUFBQSxlQUFlLENBb0dHO0lBQ2QsTUFBTSxFQUFFLElBQUk7SUFDWixTQUFTLEVBQUUsa0JBQWtCO0lBQzdCLEdBQUcsRUFBRSxJQUFJLEdBS1Y7SUFoRUEsQUFBRCxzQkFBUSxDQTZERztNQUNQLFlBQVksRUFBRSxDQUFDLEdBQ2hCO0VBTUgsQUFBQSxVQUFVLEFBQUEsSUFBSyxHNUcvZ0NBLGFBQWEsQ0FBQyxzQkFBc0IsQUFBQSxVQUFVLEU0RytnQ0ksZUFBZTtFQUNoRixVQUFVLEFBQUEsSUFBSyxHNUc3ckJBLGFBQWEsQ0FBQyxzQkFBc0IsQUFBQSxVQUFVLEFBQUEsYUFBYSxFNEc2ckJJLGVBQWUsQ0FBQztJQUM1RixJQUFJLEVBQUUsR0FBRztJQUNULFNBQVMsRUFBRSxrQkFBa0IsR0FDOUI7O0FBdUJILEFBQUEsZUFBZSxDQUFDO0VBQ2QsUUFBUSxFQUFFLFFBQVE7RUFDbEIsT0FBTyxFQUFFLElBQUk7RUFDYixjQUFjLEVBQUUsTUFBTTtFQUl0QixLQUFLLEVBWGdCLEtBQUs7RUFnQjFCLFNBQVMsRUFBRSxrQkFBb0Q7RUFDL0QsT0FBTyxFQWhCZSxJQUFJLENBQUosSUFBSSxDQWdCNkIsSUFBSTtFQUMzRCxVQUFVLEVBQUUsT0FBTztFQUNuQixhQUFhLEVBQUUsR0FBRztFQUNsQixVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCO0VBQzlDLFdBQVcsRUFBRSxxQkFBcUIsR0EyRm5DO0VBekZFLEFBQUQsc0JBQVEsQ0FBQztJbElyN0JULFNBQVMsRUFBRSxDQUFDO0lBQ1osVUFBVSxFQUFFLENBQUM7SUFDYixVQUFVLEVBQUUsSUFBSTtJQUNoQixjQUFjLEVBQUUsQ0FBQztJQUNqQixjQUFjLEVBQUUsSUFBSTtJa0ltN0JsQixRQUFRLEVBQUUsUUFBUTtJQUNsQixHQUFHLEVBQUUsSUFBSTtJQUNULEtBQUssRUFBRSxJQUFJO0lBQ1gsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osTUFBTSxFQUFFLENBQUM7SUFDVCxPQUFPLEVBQUUsQ0FBQztJQUNWLE1BQU0sRUFBRSxDQUFDO0lBQ1QsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLFdBQVc7SUFDdkIsVUFBVSxFQUFFLElBQUk7SUFDaEIsS0FBSyxFcEkzb0NLLE9BQU87SW9JNG9DakIsTUFBTSxFQUFFLE9BQU8sR0FNaEI7SUF2QkEsQUFtQkMsc0JBbkJNLEFBbUJMLE1BQU0sQ0FBQztNQUNOLFVBQVUsRUFBRSxXQUFXO01BQ3ZCLEtBQUssRXBJNW9DRyxPQUFPLEdvSTZvQ2hCO0VBR0YsQUFBRCxzQkFBUSxDQUFDO0lBQ1AsTUFBTSxFQUFFLFVBQVU7SUFDbEIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsQ0FBQztJQUNqQixjQUFjLEVBQUUsSUFBSTtJQUNwQixLQUFLLEVwSXZwQ0ssT0FBTyxHb0l3cENsQjtFQUVBLEFBQUQsd0JBQVUsQ0FBQztJQUNULE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLFFBQVE7SUFDekIsR0FBRyxFQUFFLElBQUk7SUFDVCxVQUFVLEVBQUUsSUFBSSxHQUNqQjtFQUVBLEFBQUQsb0JBQU0sQ0FBQztJbEloK0JQLFNBQVMsRUFBRSxDQUFDO0lBQ1osVUFBVSxFQUFFLENBQUM7SUFDYixVQUFVLEVBQUUsSUFBSTtJQUNoQixjQUFjLEVBQUUsQ0FBQztJQUNqQixjQUFjLEVBQUUsSUFBSTtJa0k4OUJsQixPQUFPLEVBQUUsV0FBVztJQUNwQixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUd2QixNQUFNLEVBQUUsSUFBSTtJQUNaLE1BQU0sRUFBRSxDQUFDO0lBQ1QsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLElBQUk7SUFDaEIsTUFBTSxFQUFFLE9BQU87SUFDZixXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUcsR0ErQmpCO0lBM0JFLEFBQUQsMkJBQVEsQ0FBQztNQUNQLEdBQUcsRUFBRSxJQUFJO01BQ1QsU0FBUyxFQUFFLElBQUk7TUFDZixPQUFPLEVBQUUsU0FBUztNQUNsQixXQUFXLEVBQUUsSUFBSTtNQUNqQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3BJOXJDVCxPQUFPO01vSStyQ2YsZ0JBQWdCLEVBQUUsT0FBTztNQUN6QixLQUFLLEVwSTNyQ0csT0FBTyxHb0lnc0NoQjtNQVpBLEFBU0MsMkJBVE0sQUFTTCxNQUFNLENBQUM7UUFDTixnQkFBZ0IsRUFBRSxPQUFPLEdBQzFCO0lBR0YsQUFBRCw0QkFBUyxDQUFDO01BQ1IsR0FBRyxFQUFFLElBQUk7TUFDVCxTQUFTLEVBQUUsSUFBSTtNQUNmLE9BQU8sRUFBRSxTQUFTO01BQ2xCLFdBQVcsRUFBRSxJQUFJO01BQ2pCLE1BQU0sRUFBRSxDQUFDO01BQ1QsZ0JBQWdCLEVwSTFyQ1IsT0FBTztNb0kyckNmLEtBQUssRUFBRSxPQUFPLEdBS2Y7TUFaQSxBQVNDLDRCQVRPLEFBU04sTUFBTSxDQUFDO1FBQ04sZ0JBQWdCLEVwSTdyQ1YsT0FBTyxHb0k4ckNkOztBbElsaENILE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFa0l5NkI1QixBQUFBLGVBQWUsQ0ErR0c7SUFDZCxPQUFPLEVBQUUsSUFBSSxHQVVkO0lBdkdBLEFBQUQsc0JBQVEsQ0ErRkc7TUFDUCxHQUFHLEVBQUUsSUFBSTtNQUNULEtBQUssRUFBRSxJQUFJLEdBQ1o7SUEvREYsQUFBRCx3QkFBVSxDQWlFRztNQUNULFVBQVUsRUFBRSxJQUFJLEdBQ2pCOztBQ3J2Q0wsQUFBQSxnQkFBZ0IsQ0FBQztFQUNmLElBQUksRUFBRSxRQUFRO0VBQ2QsU0FBUyxFQUFFLENBQUM7RUFDWixLQUFLLEVBQUUsSUFBSTtFQUNYLFNBQVMsRUFBRSxLQUFLO0VBQ2hCLE9BQU8sRUFBRSxjQUFjO0VBQ3ZCLFVBQVUsRUFBRSxVQUFVO0VBQ3RCLFVBQVUsRUFBRSxJQUFJLEdBdWRqQjtFQTlkRCxBQVdFLGdCQVhjLENBV2QsTUFBTSxDQUFDO0luSStNUCxTQUFTLEVBQUUsQ0FBQztJQUNaLFVBQVUsRUFBRSxDQUFDO0lBQ2IsVUFBVSxFQUFFLElBQUk7SUFDaEIsY0FBYyxFQUFFLENBQUM7SUFDakIsY0FBYyxFQUFFLElBQUksR21Jak5uQjtFQWJILEFBZUUsZ0JBZmMsQ0FlZCxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ2QsV0FBVyxFQUFFLENBQUMsR0FDZjtFQWpCSCxBQXNCRSxnQkF0QmMsQ0FzQmQsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFLLE1BQU0sQUFBWCxFQUFhO0lBQ2pCLE9BQU8sRUFBRSxDQUFDO0lBQ1YsVUFBVSxFQUFFLElBQUk7SUFDaEIsTUFBTSxFQUFFLENBQUM7SUFDVCxhQUFhLEVBQUUsQ0FBQyxHQUNqQjtFQUdBLEFBQUQsNEJBQWEsQ0FBQztJQUNaLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLEdBQUc7SUFDUixhQUFhLEVBQUUsSUFBSSxHQUNwQjtFQUVBLEFBQUQsdUJBQVEsQ0FBQztJQUNQLE9BQU8sRUFBRSxDQUFDO0lBQ1YsVUFBVSxFQUFFLElBQUk7SUFDaEIsTUFBTSxFQUFFLENBQUM7SUFDVCxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRXJJdkJLLE9BQU87SXFJd0JqQixNQUFNLEVBQUUsT0FBTyxHQWNoQjtJQXRCQSxBQVVDLHVCQVZNLEFBVUwsTUFBTSxDQUFDO01BQ04sS0FBSyxFQXhEYSxPQUFPLEdBeUQxQjtJQUVBLEFBQUQsZ0NBQVUsQ0FBQztNQUNULEtBQUssRXJJMUNHLE9BQU87TXFJMkNmLE1BQU0sRUFBRSxPQUFPLEdBS2hCO01BUEEsQUFJQyxnQ0FKUSxBQUlQLE1BQU0sQ0FBQztRQUNOLEtBQUssRXJJOUNDLE9BQU8sR3FJK0NkO0VBSUosQUFBRCwyQkFBWSxDQUFDO0lBQ1gsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVySTFDSyxPQUFPLEdxSTJDbEI7RUFHQSxBQUFELHVCQUFRLENBQUM7SUFDUCxNQUFNLEVBQUUsUUFBUTtJQUNoQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxDQUFDO0lBQ2QsY0FBYyxFQUFFLENBQUM7SUFDakIsS0FBSyxFQUFFLE9BQU8sR0FDZjtFQUVBLEFBQUQseUJBQVUsQ0FBQztJQUNULE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLGFBQWE7SUFDOUIsR0FBRyxFQUFFLElBQUk7SUFDVCxhQUFhLEVBQUUsSUFBSSxHQUNwQjtFQUVBLEFBQUQseUJBQVUsQ0FBQztJQUNULE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLElBQUksR0FDVjtFQUtBLEFBQUQsd0JBQVMsQ0FBQztJQUNSLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLEdBQUcsRUFBRSxHQUFHO0lBQ1IsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsUUFBUTtJQUNqQixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3JJekJKLE9BQU87SXFJMEJwQixhQUFhLEVBQUUsR0FBRztJQUNsQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLEtBQUssRXJJckZLLE9BQU87SXFJc0ZqQixNQUFNLEVBQUUsT0FBTyxHQVNoQjtJQVBFLEFBQUQsZ0NBQVMsQ0FBQztNQUNSLFlBQVksRUFBRSxJQUFJO01BQ2xCLFlBQVksRXJJcEdKLE9BQU87TXFJcUdmLFVBQVUsRXJJekdGLE9BQU87TXFJMEdmLFVBQVUsRUF4SGdCLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxzQkFBc0I7TUF5SDVELEtBQUssRXJJeEdHLE9BQU8sR3FJeUdoQjtFQUdGLEFBQUQsNkJBQWMsQ0FBQztJQUNiLFNBQVMsRUFBRSxJQUFJLEdBaUJoQjtJQWJFLEFBQUQsa0NBQU0sQ0FBQztNQUNMLElBQUksRUFBRSxRQUFRO01BQ2QsT0FBTyxFQUFFLEtBQUs7TUFDZCxLQUFLLEVBQUUsSUFBSTtNQUNYLE1BQU0sRUFBRSxJQUFJO01BQ1osZ0JBQWdCLEVBQUUsT0FBTztNQUN6QixtQkFBbUIsRUFBRSxTQUFTO01BQzlCLFdBQVcsRUFBRSxTQUFTO01BQ3RCLHFCQUFxQixFQUFFLE1BQU07TUFDN0IsYUFBYSxFQUFFLE1BQU07TUFDckIsaUJBQWlCLEVBQUUsT0FBTztNQUMxQixTQUFTLEVBQUUsT0FBTyxHQUNuQjtFQUdGLEFBQUQsZ0NBQWlCLENBQUUsa0NBQWtCLENBQUM7SUFDcEMsZ0JBQWdCLEVySWhJTixPQUFPLEdxSWlJbEI7RUFLQSxBQUFELHdCQUFTLENBQUM7SUFDUixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLEdBQUcsRUFBRSxHQUFHO0lBQ1IsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsS0FBSztJQUNaLE1BQU0sRUFBRSxJQUFJO0lBQ1osT0FBTyxFQUFFLEdBQUc7SUFDWixVQUFVLEVBQUUsVUFBVTtJQUN0QixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3JJeklQLE9BQU87SXFJMElqQixhQUFhLEVBQUUsR0FBRyxHQU9uQjtJQUxFLEFBQUQsZ0NBQVMsQ0FBQztNQUNSLElBQUksRUFBRSxRQUFRO01BQ2QsS0FBSyxFQUFFLElBQUk7TUFDWCxNQUFNLEVBQUUsU0FBUyxHQUNsQjtFQUdGLEFBQUQsNkJBQWMsQ0FBQztJQUNiLElBQUksRUFBRSxRQUFRO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixLQUFLLEVySW5KSyxPQUFPLEdxSW9KbEI7RUFFQSxBQUFELDhCQUFlLENBQUM7SUFDZCxJQUFJLEVBQUUsUUFBUTtJQUNkLFNBQVMsRUFBRSxDQUFDO0lBQ1osTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsQ0FBQztJQUNWLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE1BQU0sRUFBRSxDQUFDO0lBQ1QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEVBNUxlLE9BQU8sR0FxTTVCO0lBbEJBLEFuSXdJRCw4Qm1JeEllLEFuSXdJZCwyQkFBMkIsQ0FBQztNbUk1SHpCLEtBQUssRXJJbEtHLE9BQU8sR0U4UnFCO0ltSXhJdkMsQW5JeUlELDhCbUl6SWUsQW5JeUlkLGlCQUFpQixDQUFXO01tSTdIekIsS0FBSyxFcklsS0csT0FBTyxHRStScUI7SW1Jekl2QyxBbkkwSUQsOEJtSTFJZSxBbkkwSWQsa0JBQWtCLENBQVU7TW1JOUh6QixLQUFLLEVySWxLRyxPQUFPLEdFZ1NxQjtJbUkxSXZDLEFuSTJJRCw4Qm1JM0llLEFuSTJJZCxzQkFBc0IsQ0FBTTtNbUkvSHpCLEtBQUssRXJJbEtHLE9BQU8sR0VpU3FCO0ltSTNJdkMsQUFlQyw4QkFmYSxBQWVaLE1BQU0sQ0FBQztNQUNOLE9BQU8sRUFBRSxJQUFJLEdBQ2Q7RUFHRixBQUFELDhCQUFlLENBQUM7SUFDZCxJQUFJLEVBQUUsUUFBUTtJQUNkLE9BQU8sRUFBRSxLQUFLO0lBQ2QsVUFBVSxFQUFFLElBQUk7SUFDaEIsTUFBTSxFQUFFLENBQUM7SUFDVCxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxDQUFDO0lBQ2QsS0FBSyxFcklqTEssT0FBTztJcUlrTGpCLE1BQU0sRUFBRSxPQUFPLEdBQ2hCO0VBR0EsQUFBRCx3QkFBUyxFQUNSLDBCQUFVLENBQUM7SUFDVixPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLEdBQUcsRUFBRSxJQUFJLEdBQ1Y7RUFFQSxBQUFELDBCQUFXLENBQUM7SUFDVixVQUFVLEVBQUUsSUFBSSxHQUNqQjtFQUVBLEFBQUQsdUJBQVEsQ0FBQztJQUNQLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDckk1SUosT0FBTztJcUk2SXBCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFVBQVUsRXJJOUpBLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxzQkFBc0I7SXFJK0o1QyxRQUFRLEVBQUUsTUFBTSxHQUtqQjtJQUhFLEFBQUQsNkJBQU8sQ0FBQztNQUNOLFlBQVksRXJJcE5KLE9BQU8sR3FJcU5oQjtFQUdGLEFBQUQsOEJBQWUsQ0FBQztJQUNkLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLElBQUk7SUFDVCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osT0FBTyxFQUFFLFNBQVM7SUFDbEIsTUFBTSxFQUFFLENBQUM7SUFDVCxVQUFVLEVBQUUsV0FBVztJQUN2QixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsT0FBTyxHQUNoQjtFQUVBLEFBQUQsNkJBQWMsQ0FBRSw4QkFBYyxDQUFDO0lBQzdCLFVBQVUsRUFwUGMsT0FBTyxHQXFQaEM7RUFRQSxBQUFELDZCQUFjLENBQUM7SUFDYixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLEtBQUssRUF0UWUsT0FBTyxHQXVRNUI7RUFFQSxBQUFELDZCQUFjLENBQUM7SUFDYixPQUFPLEVBQUUsV0FBVztJQUNwQixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixTQUFTLEVBQUUsSUFBSTtJQUNmLE9BQU8sRUFBRSxLQUFLO0lBQ2QsVUFBVSxFQTdRWSxPQUFPO0lBOFE3QixhQUFhLEVBQUUsSUFBSTtJQUNuQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRXJJdlBLLE9BQU8sR3FJd1BsQjtFQUVBLEFBQUQsK0JBQWdCLENBQUM7SUFDZixJQUFJLEVBQUUsUUFBUTtJQUNkLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsS0FBSyxFckk5UEssT0FBTyxHcUkrUGxCO0VBRUEsQUFBRCw0QkFBYSxDQUFDO0lBQ1osVUFBVSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENySTVNUixPQUFPLEdxSTZNckI7RUFJQSxBQUFELGdDQUFpQixDQUFDO0lBQ2hCLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsY0FBYyxFQUFFLE1BQU07SUFDdEIsY0FBYyxFQUFFLFNBQVM7SUFDekIsS0FBSyxFckk3UUssT0FBTyxHcUk4UWxCO0VBTUEsQUFBRCxxQkFBTSxDQUFDO0lBQ0wsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsSUFBSTtJQUNULEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsU0FBUztJQUNsQixNQUFNLEVBQUUsQ0FBQztJQUNULFVBQVUsRUFBRSxXQUFXO0lBQ3ZCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE1BQU0sRUFBRSxPQUFPLEdBU2hCO0lBbkJBLEFBWUMscUJBWkksR0FBTCxxQkFBSyxDQVlFO01BQ0osVUFBVSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENySTNPVixPQUFPLEdxSTRPbkI7SUFkRixBQWdCQyxxQkFoQkksQUFnQkgsTUFBTSxDQUFDO01BQ04sVUFBVSxFckk5UkYsT0FBTyxHcUkrUmhCO0VBS0YsQUFBRCx1QkFBUSxDQUFDO0lBQ1AsT0FBTyxFQUFFLEtBQUs7SUFDZCxJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBM1VhLE9BQU8sR0E0VS9CO0VBSUEsQUFBRCxzQkFBTyxDQUFDO0lBQ04sT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsSUFBSTtJQUNULElBQUksRUFBRSxRQUFRO0lBQ2QsU0FBUyxFQUFFLENBQUMsR0FDYjtFQUlBLEFBQUQsc0JBQU8sQ0FBQztJQUNOLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFQWpXZSxPQUFPO0lBa1czQixhQUFhLEVBQUUsVUFBVTtJQUN6QixVQUFVLEVBQUUsVUFBVSxHQUN2QjtFQUVBLEFBQUQsdUJBQVEsQ0FBQztJQUNQLElBQUksRUFBRSxRQUFRO0lBQ2QsT0FBTyxFQUFFLFFBQVE7SUFDakIsVUFBVSxFQXBXYSxPQUFPO0lBcVc5QixhQUFhLEVBQUUsSUFBSTtJQUNuQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRUF4V29CLE9BQU8sR0F5V2pDO0VBRUEsQUFBRCxzQkFBTyxDQUFDO0lBQ04sT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLEdBQUc7SUFDUixJQUFJLEVBQUUsUUFBUTtJQUNkLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFckk1VkssT0FBTyxHcUk2VmxCO0VBRUEsQUFBRCwwQkFBVyxDQUFDO0lBQ1YsU0FBUyxFQUFFLElBQUksR0FDaEI7RUFFQSxBQUFELDZCQUFjLENBQUM7SUFDYixJQUFJLEVBQUUsUUFBUTtJQUNkLFNBQVMsRUFBRSxJQUFJO0lBQ2YsS0FBSyxFckl0V0ssT0FBTyxHcUl1V2xCO0VBSUEsQUFBRCwwQkFBVyxDQUFDO0lBQ1YsT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsTUFBTTtJQUN0QixHQUFHLEVBQUUsSUFBSSxHQUNWO0VBRUEsQUFBRCxnQ0FBaUIsQ0FBQztJQUNoQixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLEdBQUcsRUFBRSxJQUFJO0lBQ1QsT0FBTyxFQUFFLFNBQVMsR0FDbkI7RUFFQSxBQUFELGdDQUFpQixDQUFDO0lBQ2hCLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLEtBQUs7SUFDWixNQUFNLEVBQUUsSUFBSTtJQUNaLE1BQU0sRUFBRSxLQUFLLEdBS2Q7SUFIRSxBQUFELHVDQUFRLENBQUM7TUFDUCxLQUFLLEVBQUUsS0FBSyxHQUNiO0VBR0YsQUFBRCxnQ0FBaUIsQ0FBQztJQUNoQixJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixhQUFhLEVBQUUsSUFBSSxHQUNwQjtFQUVBLEFBQUQsa0NBQW1CLENBQUM7SUFDbEIsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osV0FBVyxFQUFFLElBQUksR0FDbEI7RUFFQSxBQUFELHVCQUFRLENBQUM7SUFDUCxPQUFPLEVBQUUsSUFBSTtJQUNiLFNBQVMsRUFBRSxJQUFJO0lBQ2YsS0FBSyxFcklwWkssT0FBTyxHcUlxWmxCO0VBR0EsQUFBRCx3QkFBUyxDQUFDO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsSUFBSTtJQUNULEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsU0FBUztJQUNsQixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3JJMVdKLE9BQU87SXFJMldwQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVySTNYQSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsc0JBQXNCO0lxSTRYNUMsVUFBVSxFQUFFLElBQUk7SUFDaEIsTUFBTSxFQUFFLE9BQU8sR0FLaEI7SUFqQkEsQUFjQyx3QkFkTyxBQWNOLE1BQU0sQ0FBQztNQUNOLFlBQVksRXJJbGJKLE9BQU8sR3FJbWJoQjtFQUdGLEFBQUQsNkJBQWMsRUFDYiw2QkFBYSxDQUFDO0lBQ2IsSUFBSSxFQUFFLFFBQVE7SUFDZCxTQUFTLEVBQUUsSUFBSTtJQUNmLEtBQUssRXJJMWJLLE9BQU8sR3FJMmJsQjtFQUVBLEFBQUQsNkJBQWMsQ0FBQztJQUNiLFdBQVcsRUFBRSxJQUFJLEdBQ2xCO0VBRUEsQUFBRCw2QkFBYyxDQUFDO0lBQ2IsT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsTUFBTTtJQUN0QixHQUFHLEVBQUUsR0FBRztJQUNSLFNBQVMsRUFBRSxDQUFDLEdBQ2I7RUFFQSxBQUFELDhCQUFlLENBQUM7SUFDZCxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRXJJNWNLLE9BQU8sR3FJNmNsQjtFQUVBLEFBQUQsaUNBQWtCLENBQUM7SUFDakIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEVySXZjSyxPQUFPLEdxSXdjbEI7O0FuSW5SQyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU07RW1JMU03QixBQUFBLGdCQUFnQixDQWllRztJQUNmLE9BQU8sRUFBRSxjQUFjLEdBQ3hCOztBbkluUkMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VtSWhONUIsQUFBQSxnQkFBZ0IsQ0F1ZUc7SUFDZixPQUFPLEVBQUUsY0FBYyxHQWdFeEI7SUFyZUEsQUFBRCx1QkFBUSxDQXVhRztNQUNQLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLElBQUksR0FDbEI7SUFqYUYsQUFBRCx5QkFBVSxDQW1hRztNQUNULGNBQWMsRUFBRSxNQUFNO01BQ3RCLFdBQVcsRUFBRSxPQUFPO01BQ3BCLEdBQUcsRUFBRSxJQUFJLEdBQ1Y7SUEvWkYsQUFBRCx5QkFBVSxDQWlhRztNQUNULFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0lBdFdGLEFBQUQsd0JBQVMsQ0F3V0c7TUFDUixJQUFJLEVBQUUsUUFBUSxHQUNmO0lBaExGLEFBQUQsc0JBQU8sQ0FtTEc7TUFDTixjQUFjLEVBQUUsTUFBTTtNQUN0QixXQUFXLEVBQUUsVUFBVTtNQUN2QixHQUFHLEVBQUUsR0FBRyxHQUNUO0lBekpGLEFBQUQsc0JBQU8sQ0EySkc7TUFDTixTQUFTLEVBQUUsSUFBSSxHQUNoQjtJQU1BLEFBQUQsd0JBQVMsQ0FBRSxxQkFBSyxDQUFDO01BQ2YsT0FBTyxFQUFFLElBQUk7TUFDYixxQkFBcUIsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUk7TUFDL0MsbUJBQW1CLEVBQ2pCLHlDQUNvQjtNQUN0QixXQUFXLEVBQUUsTUFBTTtNQUNuQixVQUFVLEVBQUUsSUFBSTtNQUNoQixPQUFPLEVBQUUsR0FBRyxHQUNiO0lBRUEsQUFBRCx3QkFBUyxDQUFFLHVCQUFPLENBQUM7TUFDakIsU0FBUyxFQUFFLEtBQUs7TUFDaEIsVUFBVSxFQUFFLEtBQUssR0FDbEI7SUFFQSxBQUFELHdCQUFTLENBQUUsc0JBQU0sQ0FBQztNQUNoQixTQUFTLEVBQUUsSUFBSSxHQUNoQjtJQUVBLEFBQUQsd0JBQVMsQ0FBRSxzQkFBTSxDQUFDO01BQ2hCLFNBQVMsRUFBRSxJQUFJO01BQ2YsZUFBZSxFQUFFLFVBQVUsR0FDNUI7SUFFQSxBQUFELHdCQUFTLENBQUUsNkJBQWEsQ0FBQztNQUN2QixTQUFTLEVBQUUsT0FBTyxHQUNuQjs7QUNuaUJMLEFBQUEsZUFBZSxDQUFDO0VBQ2QsSUFBSSxFQUFFLFFBQVE7RUFDZCxTQUFTLEVBQUUsQ0FBQztFQUNaLEtBQUssRUFBRSxJQUFJO0VBR1gsU0FBUyxFQUFFLEtBQUs7RUFDaEIsT0FBTyxFQUFFLGNBQWM7RUFDdkIsVUFBVSxFQUFFLFVBQVU7RUFDdEIsVUFBVSxFQUFFLElBQUksR0Ewa0JqQjtFQW5sQkQsQUFZRSxlQVphLENBWWIsTUFBTSxDQUFDO0lwSTBNUCxTQUFTLEVBQUUsQ0FBQztJQUNaLFVBQVUsRUFBRSxDQUFDO0lBQ2IsVUFBVSxFQUFFLElBQUk7SUFDaEIsY0FBYyxFQUFFLENBQUM7SUFDakIsY0FBYyxFQUFFLElBQUksR29JNU1uQjtFQWRILEFBZ0JFLGVBaEJhLENBZ0JiLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDZCxXQUFXLEVBQUUsQ0FBQyxHQUNmO0VBR0EsQUFBRCwyQkFBYSxDQUFDO0lBQ1osT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixTQUFTLEVBQUUsSUFBSTtJQUNmLEdBQUcsRUFBRSxHQUFHO0lBQ1IsYUFBYSxFQUFFLElBQUksR0FDcEI7RUFFQSxBQUFELHNCQUFRLENBQUM7SUFDUCxPQUFPLEVBQUUsQ0FBQztJQUNWLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE1BQU0sRUFBRSxDQUFDO0lBQ1QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEV0SW5CSyxPQUFPO0lzSW9CakIsTUFBTSxFQUFFLE9BQU8sR0FjaEI7SUF0QkEsQUFVQyxzQkFWTSxBQVVMLE1BQU0sQ0FBQztNQUNOLEtBQUssRUFqRFksT0FBTyxHQWtEekI7SUFFQSxBQUFELCtCQUFVLENBQUM7TUFDVCxLQUFLLEV0SXRDRyxPQUFPO01zSXVDZixNQUFNLEVBQUUsT0FBTyxHQUtoQjtNQVBBLEFBSUMsK0JBSlEsQUFJUCxNQUFNLENBQUM7UUFDTixLQUFLLEV0STFDQyxPQUFPLEdzSTJDZDtFQUlKLEFBQUQsMEJBQVksQ0FBQztJQUNYLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFdEl0Q0ssT0FBTyxHc0l1Q2xCO0VBS0EsQUFBRCx1QkFBUyxDQUFDO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsVUFBVTtJQUN2QixlQUFlLEVBQUUsYUFBYTtJQUM5QixTQUFTLEVBQUUsSUFBSTtJQUNmLEdBQUcsRUFBRSxJQUFJO0lBQ1QsYUFBYSxFQUFFLElBQUksR0FDcEI7RUFFQSxBQUFELHNCQUFRLENBQUM7SUFDUCxJQUFJLEVBQUUsUUFBUTtJQUNkLFNBQVMsRUFBRSxDQUFDO0lBQ1osTUFBTSxFQUFFLENBQUM7SUFDVCxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRUF0RmMsT0FBTyxHQXVGM0I7RUFFQSxBQUFELCtCQUFpQixDQUFDO0lBQ2hCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsU0FBUyxFQUFFLElBQUk7SUFDZixJQUFJLEVBQUUsUUFBUTtJQUNkLEdBQUcsRUFBRSxJQUFJLEdBQ1Y7RUFFQSxBQUFELHNCQUFRLENBQUM7SUFDUCxPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLFNBQVMsRUFBRSxJQUFJO0lBQ2YsR0FBRyxFQUFFLElBQUk7SUFDVCxhQUFhLEVBQUUsSUFBSSxHQUNwQjtFQUVBLEFBQUQscUJBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLEdBQUcsRUFBRSxHQUFHO0lBQ1IsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEV0SXRGSyxPQUFPLEdzSW9HbEI7SUFaRSxBQUFELDJCQUFPLENBQUM7TUFDTixLQUFLLEVBNUdhLE9BQU87TUE2R3pCLFdBQVcsRUFBRSxHQUFHLEdBQ2pCO0lBRUEsQUFBRCw4QkFBVSxDQUFDO01BQ1QsT0FBTyxFQUFFLFFBQVE7TUFDakIsVUFBVSxFQXBIVSxPQUFPO01BcUgzQixhQUFhLEVBQUUsSUFBSTtNQUNuQixXQUFXLEVBQUUsR0FBRztNQUNoQixLQUFLLEVBdEhpQixPQUFPLEdBdUg5QjtFQUdGLEFBQUQsMEJBQVksQ0FBQztJQUNYLElBQUksRUFBRSxRQUFRLEdBQ2Y7RUFFQSxBQUFELDRCQUFjLENBQUM7SUFDYixhQUFhLEVBQUUsSUFBSTtJQUNuQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRUF4SWMsT0FBTyxHQWlKM0I7SUFiQSxBQU1DLDRCQU5ZLENBTVosQ0FBQyxDQUFDO01BQ0EsTUFBTSxFQUFFLFFBQVEsR0FLakI7TUFaRixBQVNHLDRCQVRVLENBTVosQ0FBQyxBQUdFLFdBQVcsQ0FBQztRQUNYLGFBQWEsRUFBRSxDQUFDLEdBQ2pCO0VBS0osQUFBRCx1QkFBUyxDQUFDO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsSUFBSTtJQUNULE1BQU0sRUFBRSxJQUFJO0lBQ1osVUFBVSxFQUFFLFVBQVU7SUFDdEIsYUFBYSxFQUFFLElBQUk7SUFDbkIsT0FBTyxFQUFFLE1BQU07SUFDZixVQUFVLEVBMUphLE9BQU87SUEySjlCLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDdEk5R1AsT0FBTztJc0krR2pCLGFBQWEsRUFBRSxHQUFHLEdBQ25CO0VBRUEsQUFBRCw0QkFBYyxDQUFDO0lBQ2IsSUFBSSxFQUFFLFFBQVEsR0FDZjtFQUVBLEFBQUQsNEJBQWMsQ0FBQztJQUNiLFdBQVcsRUFBRSxvQ0FBb0M7SUFDakQsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsQ0FBQztJQUNqQixLQUFLLEV0STlISyxPQUFPLEdzSStIbEI7RUFJQSxBQUFELHlCQUFXLENBQUM7SUFDVixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxhQUFhO0lBQzlCLEdBQUcsRUFBRSxJQUFJO0lBQ1QsTUFBTSxFQUFFLElBQUk7SUFDWixVQUFVLEVBQUUsVUFBVTtJQUN0QixhQUFhLEVBQUUsSUFBSTtJQUNuQixPQUFPLEVBQUUsTUFBTTtJQUNmLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDdEkxR0osT0FBTztJc0kyR3BCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRXRJM0hBLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsR3NJNEg3QztFQUVBLEFBQUQsK0JBQWlCLENBQUM7SUFDaEIsV0FBVyxFQUFFLG9DQUFvQztJQUNqRCxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLEtBQUssRUFyTWMsT0FBTyxHQXNNM0I7RUFFQSxBQUFELHFCQUFPLENBQUM7SUFDTixPQUFPLEVBQUUsV0FBVztJQUNwQixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsR0FBRztJQUNSLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFlBQVksRUFBRSxJQUFJLEdBQ25CO0VBRUEsQUFBRCxvQkFBTSxDQUFDO0lBQ0wsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osVUFBVSxFQXROVyxPQUFPO0lBdU41QixhQUFhLEVBQUUsR0FBRztJQUNsQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRXRJbE1LLE9BQU8sR3NJd01sQjtJQUpFLEFBQUQsd0JBQUssQ0FBQztNQUNKLFVBQVUsRXRJbk5GLE9BQU87TXNJb05mLEtBQUssRXRJOU1HLE9BQU8sR3NJK01oQjtFQUdGLEFBQUQsOEJBQWdCLENBQUM7SUFDZixPQUFPLEVBQUUsV0FBVztJQUNwQixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsR0FBRztJQUNSLE9BQU8sRUFBRSxDQUFDO0lBQ1YsVUFBVSxFQUFFLElBQUk7SUFDaEIsTUFBTSxFQUFFLENBQUM7SUFDVCxXQUFXLEVBQUUsOENBQThDO0lBQzNELFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsY0FBYyxFQUFFLE9BQU87SUFDdkIsVUFBVSxFQUFFLEtBQUs7SUFDakIsY0FBYyxFQUFFLE1BQU07SUFDdEIsS0FBSyxFdEluT0ssT0FBTztJc0lvT2pCLE1BQU0sRUFBRSxPQUFPLEdBS2hCO0lBcEJBLEFBaUJDLDhCQWpCYyxBQWlCYixNQUFNLENBQUM7TUFDTixLQUFLLEV0SXpLTSxPQUFPLEdzSTBLbkI7RUFHRixBQUFELG1DQUFxQixDQUFDO0lBQ3BCLElBQUksRUFBRSxRQUFRLEdBQ2Y7RUFJQSxBQUFELHVCQUFTLENBQUM7SUFDUixPQUFPLEVBQUUsV0FBVztJQUNwQixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixHQUFHLEVBQUUsR0FBRztJQUNSLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLE1BQU0sRUFBRSxJQUFJO0lBQ1osVUFBVSxFQUFFLFVBQVU7SUFDdEIsT0FBTyxFQUFFLE1BQU07SUFDZixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3RJM1BQLE9BQU87SXNJNFBqQixhQUFhLEVBQUUsR0FBRztJQUNsQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRXRJaFFLLE9BQU87SXNJaVFqQixNQUFNLEVBQUUsT0FBTyxHQWNoQjtJQTlCQSxBQWtCQyx1QkFsQk8sQUFrQk4sTUFBTSxDQUFDO01BQ04sVUFBVSxFdEl2UUYsT0FBTyxHc0l3UWhCO0lBRUEsQUFBRCxnQ0FBVSxDQUFDO01BQ1QsVUFBVSxFdEl4UUYsT0FBTztNc0l5UWYsS0FBSyxFQUFFLElBQUksR0FLWjtNQVBBLEFBSUMsZ0NBSlEsQUFJUCxNQUFNLENBQUM7UUFDTixVQUFVLEV0STlNRCxPQUFPLEdzSStNakI7RUFJSixBQUFELDRCQUFjLENBQUM7SUFDYixJQUFJLEVBQUUsUUFBUSxHQUNmO0VBR0EsQUFBRCxzQkFBUSxDQUFDO0lBQ1AsT0FBTyxFQUFFLElBQUk7SUFDYixTQUFTLEVBQUUsSUFBSTtJQUNmLEdBQUcsRUFBRSxJQUFJO0lBQ1QsYUFBYSxFQUFFLElBQUksR0FDcEI7RUFFQSxBQUFELHFCQUFPLENBQUM7SUFDTixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLEdBQUcsRUFBRSxJQUFJO0lBQ1QsSUFBSSxFQUFFLFNBQVM7SUFDZixTQUFTLEVBQUUsQ0FBQztJQUNaLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDdElwT0osT0FBTztJc0lxT3BCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRXRJclBBLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsR3NJc1A3QztFQUVBLEFBQUQsMEJBQVksQ0FBQztJQUNYLElBQUksRUFBRSxRQUFRO0lBQ2QsT0FBTyxFQUFFLElBQUk7SUFDYixVQUFVLEVBM1RXLE9BQU87SUE0VDVCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxXQUFXLEdBQ3hCO0VBRUEsQUFBRCwwQkFBWSxDQUFDO0lBQ1gsU0FBUyxFQUFFLENBQUMsR0FDYjtFQUVBLEFBQUQsMkJBQWEsQ0FBQztJQUNaLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFdEloVEssT0FBTyxHc0lpVGxCO0VBRUEsQUFBRCwyQkFBYSxDQUFDO0lBQ1osU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEVBalZjLE9BQU8sR0FrVjNCO0VBR0EsQUFBRCxxQkFBTyxDQUFDO0lBQ04sT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixTQUFTLEVBQUUsSUFBSTtJQUNmLEdBQUcsRUFBRSxHQUFHO0lBQ1IsYUFBYSxFQUFFLElBQUk7SUFDbkIsYUFBYSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEN0STNRWCxPQUFPLEdzSTRRckI7RUFJQSxBQUFELG9CQUFNLENBQUM7SUFDTCxPQUFPLEVBQUUsU0FBUztJQUNsQixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsQ0FBQztJQUNULGFBQWEsRUFBRSxDQUFDO0lBQ2hCLGFBQWEsRUFBRSxxQkFBcUI7SUFDcEMsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEV0SS9VSyxPQUFPO0lzSWdWakIsTUFBTSxFQUFFLE9BQU8sR0FVaEI7SUFwQkEsQUFZQyxvQkFaSSxBQVlILE1BQU0sQ0FBQztNQUNOLEtBQUssRUE3V1ksT0FBTyxHQThXekI7SUFFQSxBQUFELDRCQUFTLENBQUM7TUFDUixtQkFBbUIsRXRJbFdYLE9BQU87TXNJbVdmLEtBQUssRXRJbldHLE9BQU8sR3NJb1doQjtFQUlGLEFBQUQseUJBQVcsQ0FBQztJQUNWLE9BQU8sRUFBRSxJQUFJO0lBQ2IsY0FBYyxFQUFFLE1BQU07SUFDdEIsR0FBRyxFQUFFLElBQUksR0FDVjtFQUVBLEFBQUQsd0JBQVUsQ0FBQztJQUNULE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDdEk5U0osT0FBTztJc0krU3BCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFVBQVUsRXRJaFVBLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxzQkFBc0I7SXNJaVU1QyxRQUFRLEVBQUUsTUFBTSxHQUNqQjtFQUVBLEFBQUQsK0JBQWlCLENBQUM7SUFDaEIsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsYUFBYTtJQUM5QixHQUFHLEVBQUUsSUFBSTtJQUNULEtBQUssRUFBRSxJQUFJO0lBQ1gsT0FBTyxFQUFFLFNBQVM7SUFDbEIsTUFBTSxFQUFFLENBQUM7SUFDVCxVQUFVLEVBQUUsV0FBVztJQUN2QixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsT0FBTyxHQUNoQjtFQUVBLEFBQUQsOEJBQWdCLENBQUM7SUFDZixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRUF0WmMsT0FBTyxHQXVaM0I7RUFJQSxBQUFELGdDQUFrQixDQUFDO0lBQ2pCLElBQUksRUFBRSxRQUFRO0lBQ2QsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsS0FBSyxFQUFFLElBQUksR0FNWjtJQUhFLEFBQUQsMkNBQVksQ0FBQyxHQUFHLENBQUM7TUFDZixTQUFTLEVBQUUsY0FBYyxHQUMxQjtFQUdGLEFBQUQsNkJBQWUsQ0FBQztJQUNkLFVBQVUsRUFBRSxHQUFHLENBQUMsS0FBSyxDdEl6VlIsT0FBTyxHc0kwVnJCO0VBR0EsQUFBRCx5QkFBVyxDQUFDO0lBQ1YsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsYUFBYTtJQUM5QixHQUFHLEVBQUUsSUFBSTtJQUNULE9BQU8sRUFBRSxTQUFTLEdBS25CO0lBVkEsQUFPQyx5QkFQUyxHQUFWLHlCQUFVLENBT0g7TUFDSixVQUFVLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3RJcldWLE9BQU8sR3NJc1duQjtFQUdGLEFBQUQsOEJBQWdCLENBQUM7SUFDZixTQUFTLEVBQUUsQ0FBQyxHQUNiO0VBRUEsQUFBRCw4QkFBZ0IsQ0FBQztJQUNmLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFQWpjYyxPQUFPLEdBa2MzQjtFQUVBLEFBQUQsb0NBQXNCLENBQUM7SUFDckIsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixTQUFTLEVBQUUsSUFBSTtJQUNmLEdBQUcsRUFBRSxPQUFPO0lBQ1osU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixLQUFLLEV0SWhiSyxPQUFPLEdzSTBjbEI7SUFqQ0EsQUFZQyxvQ0Fab0IsR0FZbEIsSUFBSSxDQUFDO01BQ0wsT0FBTyxFQUFFLFdBQVc7TUFDcEIsV0FBVyxFQUFFLE1BQU07TUFDbkIsR0FBRyxFQUFFLEdBQUcsR0FDVDtJQWhCRixBQXNCQyxvQ0F0Qm9CLEdBc0JsQixJQUFJLEdBQUcsSUFBSSxBQUFBLFFBQVEsQ0FBQztNQUNwQixPQUFPLEVBQUUsRUFBRTtNQUNYLElBQUksRUFBRSxRQUFRO01BQ2QsS0FBSyxFQUFFLEdBQUc7TUFDVixNQUFNLEVBQUUsR0FBRztNQUNYLFlBQVksRUFBRSxHQUFHO01BQ2pCLGFBQWEsRUFBRSxHQUFHO01BQ2xCLFVBQVUsRXRJMWNGLE9BQU87TXNJNGNmLFNBQVMsRUFBRSxlQUFlLEdBQzNCO0VBR0YsQUFBRCxnQ0FBa0IsQ0FBQztJQUNqQixXQUFXLEVBQUUsR0FBRyxHQUNqQjtFQUVBLEFBQUQsZ0NBQWtCLENBQUM7SUFDakIsSUFBSSxFQUFFLFFBQVE7SUFDZCxPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsQ0FBQztJQUNWLE1BQU0sRUFBRSxDQUFDO0lBQ1QsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLFdBQVc7SUFDdkIsS0FBSyxFQXRmYyxPQUFPO0lBdWYxQixNQUFNLEVBQUUsT0FBTyxHQUtoQjtJQWpCQSxBQWNDLGdDQWRnQixBQWNmLE1BQU0sQ0FBQztNQUNOLFVBQVUsRUF6ZlMsT0FBTyxHQTBmM0I7RUFHRixBQUFELHNCQUFRLENBQUM7SUFDUCxPQUFPLEVBQUUsSUFBSTtJQUNiLFNBQVMsRUFBRSxJQUFJO0lBQ2YsS0FBSyxFdEl2ZUssT0FBTyxHc0l3ZWxCO0VBR0EsQUFBRCx1QkFBUyxDQUFDO0lBQ1IsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLEdBQUc7SUFDUixVQUFVLEVBQUUsSUFBSTtJQUNoQixPQUFPLEVBQUUsQ0FBQztJQUNWLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE1BQU0sRUFBRSxDQUFDO0lBQ1QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEVBemdCZSxPQUFPO0lBMGdCM0IsTUFBTSxFQUFFLE9BQU8sR0FLaEI7SUFqQkEsQUFjQyx1QkFkTyxBQWNOLE1BQU0sQ0FBQztNQUNOLGVBQWUsRUFBRSxTQUFTLEdBQzNCO0VBTUYsQUFBRCw4QkFBZ0IsQ0FBQztJQUNmLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsS0FBSyxHQUNkO0VBRUEsQUFBRCw4QkFBZ0IsQ0FBQztJQUNmLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsS0FBSyxHQUtkO0lBSEUsQUFBRCxxQ0FBUSxDQUFDO01BQ1AsS0FBSyxFQUFFLEdBQUcsR0FDWDtFQUlGLEFBQUQsbUNBQXFCLENBQUM7SUFDcEIsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osYUFBYSxFQUFFLEdBQUcsR0FDbkI7RUFFQSxBQUFELG9DQUFzQixDQUFDO0lBQ3JCLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsU0FBUyxHQUNsQjtFQUVBLEFBQUQsb0NBQXNCLENBQUM7SUFDckIsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLE1BQU0sRUFBRSxLQUFLLEdBQ2Q7RUFHQSxBQUFELDZCQUFlLENBQUM7SUFDZCxPQUFPLEVBQUUsV0FBVztJQUNwQixPQUFPLEVBQUUsY0FBYyxHQUN4QjtFQUVBLEFBQUQsbUNBQXFCLENBQUM7SUFDcEIsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLE1BQU0sRUFBRSxLQUFLLEdBQ2Q7RUFFQSxBQUFELHVDQUF5QixDQUFDO0lBQ3hCLEtBQUssRUFBRSxLQUFLO0lBQ1osTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsS0FBSyxHQUtkO0lBSEUsQUFBRCw4Q0FBUSxDQUFDO01BQ1AsS0FBSyxFQUFFLEtBQUssR0FDYjtFQUlGLEFBQUQsaUNBQW1CLENBQUM7SUFDbEIsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osWUFBWSxFQUFFLElBQUksR0FDbkI7O0FwSTVZQyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU07RW9JdE03QixBQUFBLGVBQWUsQ0FzbEJHO0lBQ2QsT0FBTyxFQUFFLGNBQWMsR0FDeEI7O0FwSTVZQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RW9JNU01QixBQUFBLGVBQWUsQ0E0bEJHO0lBQ2QsT0FBTyxFQUFFLGNBQWMsR0FtRHhCO0lBMWtCQSxBQUFELHNCQUFRLENBeWhCRztNQUNQLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLElBQUksR0FDbEI7SUF0VUYsQUFBRCxzQkFBUSxDQTJVRztNQUNQLE9BQU8sRUFBRSxJQUFJO01BQ2IscUJBQXFCLEVBQUUseUJBQXlCO01BQ2hELEdBQUcsRUFBRSxJQUFJLEdBQ1Y7SUFJQSxBQUFELHFCQUFPLEFBQUEsV0FBVyxDQUFDO01BQ2pCLFdBQVcsRUFBRSxNQUFNLEdBQ3BCO0lBOVVGLEFBQUQscUJBQU8sQ0FnVkc7TUFDTixPQUFPLEVBQUUsSUFBSSxHQUNkO0lBOWNGLEFBQUQseUJBQVcsQ0FrZEc7TUFDVixNQUFNLEVBQUUsSUFBSTtNQUNaLFNBQVMsRUFBRSxJQUFJO01BQ2YsT0FBTyxFQUFFLFNBQVMsR0FDbkI7SUE5YkYsQUFBRCxxQkFBTyxDQWdjRztNQUNOLFlBQVksRUFBRSxDQUFDLEdBQ2hCO0lBclRGLEFBQUQscUJBQU8sQ0F1VEc7TUFDTixTQUFTLEVBQUUsTUFBTTtNQUNqQixVQUFVLEVBQUUsSUFBSSxHQUNqQjtJQS9TRixBQUFELG9CQUFNLENBaVRHO01BQ0wsSUFBSSxFQUFFLFFBQVEsR0FDZjtJQXRPRixBQUFELHlCQUFXLENBeU9HO01BQ1YsV0FBVyxFQUFFLFVBQVUsR0FDeEI7O0FwSWhjRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RW9JL001QixBQUFBLGVBQWUsQ0FvcEJHO0lBQ2QsT0FBTyxFQUFFLGNBQWMsR0F3QnhCO0lBalpBLEFBQUQsc0JBQVEsQ0EyWEc7TUFDUCxHQUFHLEVBQUUsSUFBSSxHQUNWO0lBdFhGLEFBQUQscUJBQU8sQ0F3WEc7TUFDTixHQUFHLEVBQUUsSUFBSTtNQUNULE9BQU8sRUFBRSxTQUFTLEdBQ25CO0lBOVdGLEFBQUQsMEJBQVksQ0FpWEc7TUFDWCxPQUFPLEVBQUUsR0FBRyxHQUNiO0lBdldGLEFBQUQsMkJBQWEsQ0F5V0c7TUFDWixTQUFTLEVBQUUsSUFBSSxHQUNoQjtJQW5XRixBQUFELDJCQUFhLENBcVdHO01BQ1osU0FBUyxFQUFFLElBQUk7TUFDZixXQUFXLEVBQUUsSUFBSSxHQUNsQjs7QUMxcUJMLEFBQUEsbUJBQW1CLENBQUM7RUFDbEIsT0FBTyxFQUFFLElBQUk7RUFDYixlQUFlLEVBQUUsTUFBTTtFQUN2QixJQUFJLEVBQUUsUUFBUTtFQUNkLFNBQVMsRUFBRSxDQUFDO0VBQ1osS0FBSyxFQUFFLElBQUk7RUFDWCxVQUFVLEV2SWVFLE9BQU8sR3VJZHBCOztBQUVELEFBQUEsY0FBYyxDQUFDO0VBQ2IsSUFBSSxFQUFFLFFBQVE7RUFDZCxTQUFTLEVBQUUsQ0FBQztFQUNaLEtBQUssRUFBRSxJQUFJO0VBRVgsU0FBUyxFQUFFLEtBQUs7RUFJaEIsT0FBTyxFQUFFLFdBQVc7RUFDcEIsVUFBVSxFQUFFLFVBQVU7RUFDdEIsVUFBVSxFQUFFLElBQUksR0F3VGpCO0VBblVELEFBY0UsY0FkWSxDQWNaLE1BQU0sQ0FBQztJckk2TFAsU0FBUyxFQUFFLENBQUM7SUFDWixVQUFVLEVBQUUsQ0FBQztJQUNiLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLGNBQWMsRUFBRSxJQUFJLEdxSS9MbkI7RUFoQkgsQUFrQkUsY0FsQlksQ0FrQlosTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUNkLFdBQVcsRUFBRSxDQUFDLEdBQ2Y7RUFJQSxBQUFELHNCQUFTLENBQUM7SUFDUixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLEdBQUcsRUFBRSxJQUFJO0lBQ1QsYUFBYSxFQUFFLElBQUksR0FDcEI7RUFRQSxBQUFELHFCQUFRLENBQUM7SUFDUCxJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBMURVLE9BQU8sR0EyRDVCO0VBRUEsQUFBRCx3QkFBVyxDQUFDO0lBQ1YsU0FBUyxFQUFFLENBQUMsR0FDYjtFQUVBLEFBQUQscUJBQVEsQ0FBQztJQUNQLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFQXZFYSxPQUFPLEdBd0UxQjtFQUVBLEFBQUQsb0JBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsU0FBUyxFQUFFLElBQUk7SUFDZixHQUFHLEVBQUUsSUFBSSxHQUNWO0VBSUEsQUFBRCxvQkFBTyxDQUFDO0lBQ04sT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLEdBQUc7SUFDUixPQUFPLEVBQUUsT0FBTztJQUNoQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEV2SXRFQSxPQUFPO0l1SXVFakIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEV2SXRFSyxPQUFPO0l1SXVFakIsV0FBVyxFQUFFLE1BQU0sR0FDcEI7RUFJQSxBQUFELHlCQUFZLENBQUM7SUFDWCxJQUFJLEVBQUUsUUFBUTtJQUNkLE9BQU8sRUFBRSxLQUFLO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxPQUFPLEdBQ3BCO0VBSUEsQUFBRCxzQkFBUyxDQUFDO0lBQ1IsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLEdBQUc7SUFDUixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRXZJN0ZLLE9BQU87SXVJOEZqQixXQUFXLEVBQUUsTUFBTSxHQUNwQjtFQUVBLEFBQUQsMkJBQWMsQ0FBQztJQUNiLElBQUksRUFBRSxRQUFRO0lBQ2QsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osVUFBVSxFQUFFLE9BQU8sR0FDcEI7RUFHQSxBQUFELHNCQUFTLENBQUM7SUFDUixPQUFPLEVBQUUsV0FBVztJQUNwQixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixHQUFHLEVBQUUsR0FBRztJQUNSLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDdkk1SFAsT0FBTztJdUk2SGpCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFdklqSUssT0FBTztJdUlrSWpCLE1BQU0sRUFBRSxPQUFPLEdBZ0NoQjtJQTdDQSxBQWVDLHNCQWZPLEFBZU4sTUFBTSxDQUFDO01BQ04sVUFBVSxFdkl4SUYsT0FBTyxHdUl5SWhCO0lBakJGLEFBbUJDLHNCQW5CTyxBQW1CTixTQUFTLENBQUM7TUFDVCxPQUFPLEVBQUUsR0FBRztNQUNaLE1BQU0sRUFBRSxPQUFPO01BQ2YsY0FBYyxFQUFFLElBQUksR0FDckI7SUFFQSxBQUFELCtCQUFVLENBQUM7TUFDVCxVQUFVLEV2SS9JRixPQUFPO011SWdKZixLQUFLLEVBQUUsSUFBSSxHQUtaO01BUEEsQUFJQywrQkFKUSxBQUlQLE1BQU0sQ0FBQztRQUNOLFVBQVUsRXZJckZELE9BQU8sR3VJc0ZqQjtJQUtGLEFBQUQsNEJBQU8sQ0FBQztNQUNOLFVBQVUsRUFsS1ksT0FBTztNQW1LN0IsWUFBWSxFQW5LVSxPQUFPO01Bb0s3QixLQUFLLEVBQUUsSUFBSSxHQUtaO01BUkEsQUFLQyw0QkFMSyxBQUtKLE1BQU0sQ0FBQztRQUNOLFVBQVUsRUF2S1UsT0FBTyxHQXdLNUI7RUFLSixBQUFELHdCQUFXLENBQUM7SUFDVixPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLEdBQUcsRUFBRSxJQUFJO0lBQ1QsYUFBYSxFQUFFLElBQUksR0FDcEI7RUFFQSxBQUFELHVCQUFVLENBQUM7SUFDVCxNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3ZJNUdKLE9BQU87SXVJNkdwQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsSUFBSTtJQUNoQixVQUFVLEV2STlIQSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsc0JBQXNCO0l1SStINUMsUUFBUSxFQUFFLE1BQU0sR0FDakI7RUFFQSxBQUFELDhCQUFpQixDQUFDO0lBQ2hCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLGFBQWE7SUFDOUIsR0FBRyxFQUFFLElBQUk7SUFDVCxLQUFLLEVBQUUsSUFBSTtJQUNYLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE1BQU0sRUFBRSxDQUFDO0lBQ1QsVUFBVSxFQUFFLFdBQVc7SUFDdkIsVUFBVSxFQUFFLElBQUk7SUFDaEIsTUFBTSxFQUFFLE9BQU8sR0FDaEI7RUFFQSxBQUFELDZCQUFnQixDQUFDO0lBQ2YsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixLQUFLLEVBaE5hLE9BQU8sR0FpTjFCO0VBS0EsQUFBRCwrQkFBa0IsQ0FBQztJQUNqQixJQUFJLEVBQUUsUUFBUTtJQUNkLE9BQU8sRUFBRSxLQUFLO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxDQUFDO0lBQ2QsVUFBVSxFQUFFLE1BQU07SUFDbEIsS0FBSyxFdkl0TUssT0FBTyxHdUl1TWxCO0VBRUEsQUFBRCw0QkFBZSxDQUFDO0lBQ2QsVUFBVSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEN2SXBKUixPQUFPLEd1SXFKckI7RUFHQSxBQUFELHlCQUFZLENBQUM7SUFDWCxPQUFPLEVBQUUsYUFBYTtJQUN0QixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLEtBQUssRXZJcE5LLE9BQU8sR3VJcU5sQjtFQVVBLEFBQUQsd0JBQVcsQ0FBQztJQUNWLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLGFBQWE7SUFDOUIsVUFBVSxFQUFFLFVBQVU7SUFDdEIsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLEdBQUcsRUFBRSxJQUFJO0lBQ1QsT0FBTyxFQUFFLE1BQU07SUFDZixNQUFNLEVBQUUsQ0FBQztJQUNULGFBQWEsRUFBRSxDQUFDO0lBQ2hCLFVBQVUsRUFBRSxXQUFXO0lBQ3ZCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLEtBQUssRUFBRSxPQUFPO0lBQ2QsTUFBTSxFQUFFLE9BQU8sR0FTaEI7SUF2QkEsQUFnQkMsd0JBaEJTLEdBQVYsd0JBQVUsQ0FnQkg7TUFDSixVQUFVLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3ZJMUxWLE9BQU8sR3VJMkxuQjtJQWxCRixBQW9CQyx3QkFwQlMsQUFvQlIsTUFBTSxDQUFDO01BQ04sVUFBVSxFdklsUUYsT0FBTyxHdUltUWhCO0VBSUYsQUFBRCx3QkFBVyxBQUFBLE1BQU0sQ0FBRSwrQkFBaUIsQ0FBQztJQUNuQyxLQUFLLEV2SXJRSyxPQUFPLEd1SXNRbEI7RUFJQSxBQUFELDZCQUFnQixDQUFDO0lBQ2YsT0FBTyxFQUFFLEtBQUs7SUFDZCxTQUFTLEVBQUUsQ0FBQyxHQUNiO0VBRUEsQUFBRCw2QkFBZ0IsQ0FBQztJQUNmLE9BQU8sRUFBRSxLQUFLO0lBQ2QsYUFBYSxFQUFFLEdBQUc7SUFDbEIsUUFBUSxFQUFFLE1BQU07SUFDaEIsYUFBYSxFQUFFLFFBQVE7SUFDdkIsV0FBVyxFQUFFLE1BQU07SUFDbkIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixLQUFLLEVBblNhLE9BQU8sR0FvUzFCO0VBS0EsQUFBRCxtQ0FBc0IsQ0FBQztJQUNyQixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLFNBQVMsRUFBRSxJQUFJO0lBQ2YsR0FBRyxFQUFFLFFBQVE7SUFDYixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLEtBQUssRXZJeFJLLE9BQU8sR3VJeVJsQjtFQUVBLEFBQUQsK0JBQWtCLENBQUM7SUFDakIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFdkk3UkssT0FBTyxHdUk4UmxCO0VBRUEsQUFBRCwrQkFBa0IsQ0FBQztJQUNqQixJQUFJLEVBQUUsUUFBUTtJQUNkLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUEvVGEsT0FBTyxHQWdVMUI7RUFFQSxBQUFELHFCQUFRLENBQUM7SUFDUCxPQUFPLEVBQUUsSUFBSTtJQUNiLFNBQVMsRUFBRSxJQUFJO0lBQ2YsS0FBSyxFdkk5U0ssT0FBTyxHdUkrU2xCO0VBSUEsQUFBRCxzQkFBUyxDQUFDO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTSxHQUNwQjtFQUVBLEFBQUQsc0JBQVMsQ0FBRSxzQkFBUSxDQUFDO0lBQ2xCLElBQUksRUFBRSxRQUFRO0lBQ2QsT0FBTyxFQUFFLFNBQVM7SUFDbEIsU0FBUyxFQUFFLElBQUksR0FDaEI7O0FBTUgsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VBeFV4QixBQUFBLGNBQWMsQ0F5VUc7SUFDYixPQUFPLEVBQUUsY0FBYyxHQW9CeEI7SUF0VUEsQUFBRCxzQkFBUyxDQXFURztNQUNSLGNBQWMsRUFBRSxNQUFNO01BQ3RCLFdBQVcsRUFBRSxVQUFVO01BQ3ZCLEdBQUcsRUFBRSxJQUFJLEdBQ1Y7SUE1U0YsQUFBRCxxQkFBUSxDQWlURztNQUNQLEtBQUssRUFBRSxJQUFJO01BQ1gsTUFBTSxFQUFFLElBQUksR0FDYjtJQWhTRixBQUFELG9CQUFPLENBa1NHO01BQ04sR0FBRyxFQUFFLFFBQVEsR0FDZDs7QXJJekpELE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFcUlwTTVCLEFBQUEsY0FBYyxDQWtXRztJQUNiLE9BQU8sRUFBRSxjQUFjLEdBYXhCO0lBak1BLEFBQUQsOEJBQWlCLENBc0xHO01BQ2hCLE9BQU8sRUFBRSxJQUFJLEdBQ2Q7SUFsSUYsQUFBRCx3QkFBVyxDQW9JRztNQUNWLE9BQU8sRUFBRSxNQUFNLEdBQ2hCO0lBdkpGLEFBQUQseUJBQVksQ0F5Skc7TUFDWCxPQUFPLEVBQUUsYUFBYSxHQUN2Qjs7QUNoWUwsQUFBQSxlQUFlLENBQUM7RUFDZCxPQUFPLEVBQUUsSUFBSTtFQUNiLFdBQVcsRUFBRSxNQUFNO0VBQ25CLFNBQVMsRUFBRSxJQUFJO0VBQ2YsR0FBRyxFQUFFLElBQUk7RUFDVCxhQUFhLEVBQUUsSUFBSSxHQXVFcEI7RUFyRUUsQUFBRCxxQkFBTyxDQUFDO0lBQ04sT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsR0FBRyxHQUNUO0VBRUEsQUFBRCx1QkFBUyxDQUFDO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEV4SUhBLE9BQU87SXdJSWpCLEtBQUssRXhJQUssT0FBTztJd0lDakIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsQ0FBQyxHQUNmO0VBRUEsQUFBRCxzQkFBUSxDQUFDO0lBQ1AsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixjQUFjLEVBQUUsT0FBTztJQUN2QixLQUFLLEV4SVZLLE9BQU8sR3dJV2xCO0VBRUEsQUFBRCw2QkFBZSxDQUFFLHVCQUFRLENBQUM7SUFDeEIsVUFBVSxFeEkzQkEsT0FBTztJd0k0QmpCLEtBQUssRXhJdEJLLE9BQU8sR3dJdUJsQjtFQUVBLEFBQUQsNkJBQWUsQ0FBRSxzQkFBTyxDQUFDO0lBQ3ZCLEtBQUssRXhJMUJLLE9BQU8sR3dJMkJsQjtFQUdBLEFBQUQsK0JBQWlCLENBQUUsdUJBQVEsQ0FBQztJQUMxQixVQUFVLEV4STVCQSxPQUFPO0l3STZCakIsS0FBSyxFeEl6QkssT0FBTztJd0kwQmpCLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0VBRUEsQUFBRCwrQkFBaUIsQ0FBRSxzQkFBTyxDQUFDO0lBQ3pCLEtBQUssRXhJN0JLLE9BQU8sR3dJOEJsQjtFdEkySUMsTUFBTSxNQUFNLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztJc0loTTVDLEFBQUEsZUFBZSxDQUFDO01BOERaLGNBQWMsRUFBRSxNQUFNO01BQ3RCLFdBQVcsRUFBRSxVQUFVO01BQ3ZCLFNBQVMsRUFBRSxNQUFNO01BQ2pCLEdBQUcsRUFBRSxJQUFJO01BTVQsS0FBSyxFQUFFLGdCQUFnQjtNQUN2QixLQUFLLEVBQUUsV0FBVztNQUNsQixXQUFXLEVBQUUsSUFBSTtNQUNqQixZQUFZLEVBQUUsSUFBSSxHQUVyQjs7QUFRRCxBQUFBLFVBQVUsQUFBQSxxQkFBcUIsQ0FBQztFQUM5QixPQUFPLEVBQUUsSUFBSTtFQUNiLGVBQWUsRUFBRSxNQUFNO0VBQ3ZCLElBQUksRUFBRSxRQUFRO0VBQ2QsU0FBUyxFQUFFLENBQUM7RUFLWixVQUFVLEVBQUUsT0FBTztFQUNuQixVQUFVLEV4SWpFRSxPQUFPLEd3SWtFcEI7O0FBRUQsQUFBQSxnQkFBZ0IsQ0FBQztFQUNmLElBQUksRUFBRSxRQUFRO0VBQ2QsU0FBUyxFQUFFLENBQUM7RUFDWixLQUFLLEVBQUUsSUFBSTtFQUNYLFNBQVMsRUFBRSxLQUFLO0VBQ2hCLE1BQU0sRUFBRSxNQUFNO0VBR2QsT0FBTyxFQUFFLFdBQVc7RUFDcEIsVUFBVSxFQUFFLFVBQVU7RUFDdEIsVUFBVSxFQUFFLElBQUksR0ErYmpCO0VBemNELEFBYUUsZ0JBYmMsQ0FhZCxNQUFNLENBQUM7SXRJOEdQLFNBQVMsRUFBRSxDQUFDO0lBQ1osVUFBVSxFQUFFLENBQUM7SUFDYixVQUFVLEVBQUUsSUFBSTtJQUNoQixjQUFjLEVBQUUsQ0FBQztJQUNqQixjQUFjLEVBQUUsSUFBSSxHc0loSG5CO0VBZkgsQUFpQkUsZ0JBakJjLENBaUJkLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDZCxXQUFXLEVBQUUsQ0FBQyxHQUNmO0VBR0EsQUFBRCx3QkFBUyxDQUFDO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsSUFBSTtJQUNULGFBQWEsRUFBRSxJQUFJLEdBQ3BCO0VBUUEsQUFBRCx1QkFBUSxDQUFDO0lBQ1AsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQS9JWSxPQUFPLEdBZ0o5QjtFQUVBLEFBQUQsMEJBQVcsQ0FBQztJQUNWLFNBQVMsRUFBRSxDQUFDLEdBQ2I7RUFFQSxBQUFELHVCQUFRLENBQUM7SUFDUCxNQUFNLEVBQUUsUUFBUTtJQUNoQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLEtBQUssRXhJNUhLLE9BQU8sR3dJNkhsQjtFQUlBLEFBQUQsc0JBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsU0FBUyxFQUFFLElBQUk7SUFDZixHQUFHLEVBQUUsSUFBSSxHQUNWO0VBSUEsQUFBRCxzQkFBTyxDQUFDO0lBQ04sT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLEdBQUc7SUFDUixVQUFVLEVBQUUsV0FBVztJQUN2QixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLEtBQUssRXhJbkpLLE9BQU87SXdJb0pqQixXQUFXLEVBQUUsTUFBTSxHQVFwQjtJQUxFLEFBQUQsNEJBQU8sQ0FBQztNQUNOLE9BQU8sRUFBRSxRQUFRO01BQ2pCLGFBQWEsRUFBRSxHQUFHO01BQ2xCLFVBQVUsRXhJOUpGLE9BQU8sR3dJK0poQjtFQUdGLEFBQUQsMkJBQVksQ0FBQztJQUNYLElBQUksRUFBRSxRQUFRO0lBQ2QsT0FBTyxFQUFFLEtBQUssR0FDZjtFQUtBLEFBQUQsc0JBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLEdBQUcsRUFBRSxHQUFHO0lBQ1IsYUFBYSxFQUFFLElBQUk7SUFDbkIsT0FBTyxFQUFFLEdBQUc7SUFDWixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBNU1ZLE9BQU8sR0E2TTlCO0VBRUEsQUFBRCxxQkFBTSxDQUFDO0lBQ0wsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsSUFBSSxFQUFFLFFBQVE7SUFDZCxVQUFVLEVBQUUsVUFBVTtJQUN0QixLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osR0FBRyxFQUFFLEdBQUc7SUFDUixPQUFPLEVBQUUsUUFBUTtJQUNqQixNQUFNLEVBQUUsQ0FBQztJQUNULGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxXQUFXO0lBQ3ZCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLENBQUM7SUFDZCxXQUFXLEVBQUUsTUFBTTtJQUNuQixLQUFLLEV4SW5NSyxPQUFPO0l3SW9NakIsTUFBTSxFQUFFLE9BQU8sR0FPaEI7SUFMRSxBQUFELDZCQUFTLENBQUM7TUFDUixVQUFVLEVBQUUsT0FBTztNQUNuQixLQUFLLEV4SXRNRyxPQUFPO013SXVNZixVQUFVLEV4SWxLRixDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLEd3SW1LM0M7RUFJRixBQUFELDBCQUFXLENBQUM7SUFDVixPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLEdBQUcsRUFBRSxJQUFJO0lBQ1QsYUFBYSxFQUFFLElBQUksR0FDcEI7RUFFQSxBQUFELHlCQUFVLENBQUM7SUFDVCxNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3hJMU5QLE9BQU87SXdJMk5qQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsT0FBTztJQUNuQixVQUFVLEV4SWxMQSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsc0JBQXNCO0l3SW1MNUMsUUFBUSxFQUFFLE1BQU0sR0FDakI7RUFFQSxBQUFELGdDQUFpQixDQUFDO0lBQ2hCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLGFBQWE7SUFDOUIsR0FBRyxFQUFFLElBQUk7SUFDVCxLQUFLLEVBQUUsSUFBSTtJQUNYLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE1BQU0sRUFBRSxDQUFDO0lBQ1QsVUFBVSxFQUFFLFdBQVc7SUFDdkIsVUFBVSxFQUFFLElBQUk7SUFDaEIsTUFBTSxFQUFFLE9BQU8sR0FDaEI7RUFFQSxBQUFELCtCQUFnQixDQUFDO0lBQ2YsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixLQUFLLEV4STNPSyxPQUFPLEd3STRPbEI7RUFLQSxBQUFELGlDQUFrQixDQUFDO0lBQ2pCLElBQUksRUFBRSxRQUFRO0lBQ2QsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsS0FBSyxFQUFFLElBQUksR0FNWjtJQUhFLEFBQUQsNENBQVksQ0FBQyxHQUFHLENBQUM7TUFDZixTQUFTLEVBQUUsY0FBYyxHQUMxQjtFQUdGLEFBQUQsOEJBQWUsQ0FBQztJQUNkLFVBQVUsRUFBRSxHQUFHLENBQUMsS0FBSyxDeElyUVgsT0FBTyxHd0lzUWxCO0VBTUEsQUFBRCwwQkFBVyxDQUFDO0lBQ1YsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsYUFBYTtJQUM5QixVQUFVLEVBQUUsVUFBVTtJQUN0QixNQUFNLEVBQUUsSUFBSTtJQUNaLEdBQUcsRUFBRSxJQUFJO0lBQ1QsT0FBTyxFQUFFLE1BQU0sR0FLaEI7SUFaQSxBQVNDLDBCQVRTLEdBQVYsMEJBQVUsQ0FTSDtNQUNKLFVBQVUsRUFBRSxHQUFHLENBQUMsS0FBSyxDeEl0UmIsT0FBTyxHd0l1UmhCO0VBR0YsQUFBRCwrQkFBZ0IsQ0FBQztJQUNmLFNBQVMsRUFBRSxDQUFDLEdBQ2I7RUFFQSxBQUFELCtCQUFnQixDQUFDO0lBQ2YsYUFBYSxFQUFFLEdBQUc7SUFDbEIsUUFBUSxFQUFFLE1BQU07SUFDaEIsYUFBYSxFQUFFLFFBQVE7SUFDdkIsV0FBVyxFQUFFLE1BQU07SUFDbkIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixLQUFLLEV4SS9SSyxPQUFPLEd3SWdTbEI7RUFJQSxBQUFELHFDQUFzQixDQUFDO0lBQ3JCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsU0FBUyxFQUFFLElBQUk7SUFDZixHQUFHLEVBQUUsUUFBUTtJQUNiLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFeEk1U0ssT0FBTyxHd0k2U2xCO0VBRUEsQUFBRCxpQ0FBa0IsQ0FBQztJQUNqQixXQUFXLEVBQUUsR0FBRztJQUNoQixLQUFLLEV4SWpUSyxPQUFPLEd3SWtUbEI7RUFFQSxBQUFELCtCQUFnQixDQUFDO0lBQ2YsSUFBSSxFQUFFLFFBQVE7SUFDZCxPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsQ0FBQztJQUNWLE1BQU0sRUFBRSxDQUFDO0lBQ1QsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLFdBQVc7SUFDdkIsS0FBSyxFeEk5VEssT0FBTztJd0krVGpCLE1BQU0sRUFBRSxPQUFPLEdBS2hCO0lBakJBLEFBY0MsK0JBZGMsQUFjYixNQUFNLENBQUM7TUFDTixVQUFVLEVBaldVLE9BQU8sR0FrVzVCO0VBS0YsQUFBRCxvQ0FBcUIsQ0FBQztJQUNwQixJQUFJLEVBQUUsUUFBUTtJQUNkLE9BQU8sRUFBRSxLQUFLO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxPQUFPLEdBQ3BCO0VBRUEsQUFBRCxzQkFBTyxDQUFDO0lBQ04sUUFBUSxFQUFFLFFBQVEsR0FDbkI7RUFHQSxBQUFELDBCQUFXLENBQUM7SUFDVixjQUFjLEVBQUUsSUFBSSxHQVVyQjtJQVJFLEFBQUQsbUNBQVUsQ0FBQztNQUNULFFBQVEsRUFBRSxRQUFRO01BQ2xCLEdBQUcsRUFBRSxDQUFDO01BQ04sS0FBSyxFQUFFLENBQUM7TUFDUixJQUFJLEVBQUUsQ0FBQztNQUNQLE9BQU8sRUFBRSxDQUFDO01BQ1YsVUFBVSxFeEkxVkYsT0FBTyxHd0kyVmhCO0VBR0YsQUFBRCxpQ0FBa0IsQ0FBQztJQUNqQixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLEdBQUcsRUFBRSxJQUFJO0lBQ1QsYUFBYSxFQUFFLElBQUksR0FDcEI7RUFFQSxBQUFELGdDQUFpQixDQUFDO0lBQ2hCLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLEtBQUs7SUFDWixNQUFNLEVBQUUsSUFBSTtJQUNaLGFBQWEsRUFBRSxHQUFHLEdBQ25CO0VBRUEsQUFBRCxtQ0FBb0IsQ0FBQztJQUNuQixJQUFJLEVBQUUsUUFBUTtJQUNkLFNBQVMsRUFBRSxDQUFDO0lBQ1osT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsTUFBTTtJQUN0QixHQUFHLEVBQUUsSUFBSSxHQUNWO0VBRUEsQUFBRCxnQ0FBaUIsQ0FBQztJQUNoQixNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxHQUFHO0lBQ1YsU0FBUyxFQUFFLElBQUksR0FDaEI7RUFHQSxBQUFELCtCQUFnQixDQUFDO0lBQ2YsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixTQUFTLEVBQUUsSUFBSTtJQUNmLEdBQUcsRUFBRSxJQUFJLEdBQ1Y7RUFFQSxBQUFELCtCQUFnQixDQUFDO0lBQ2YsSUFBSSxFQUFFLFFBQVE7SUFDZCxNQUFNLEVBQUUsSUFBSTtJQUNaLFNBQVMsRUFBRSxJQUFJO0lBQ2YsYUFBYSxFQUFFLEdBQUcsR0FjbkI7SUFaRSxBQUFELHFDQUFPLENBQUM7TUFDTixNQUFNLEVBQUUsSUFBSTtNQUNaLEtBQUssRUFBRSxJQUFJLEdBQ1o7SUFFQSxBQUFELHNDQUFRLENBQUM7TUFDUCxLQUFLLEVBQUUsSUFBSSxHQUNaO0lBRUEsQUFBRCwwQ0FBWSxDQUFDO01BQ1gsS0FBSyxFQUFFLEtBQUssR0FDYjtFQUdGLEFBQUQsK0JBQWdCLENBQUM7SUFDZixPQUFPLEVBQUUsS0FBSztJQUNkLE1BQU0sRUFBRSxJQUFJO0lBQ1osS0FBSyxFQUFFLEtBQUs7SUFDWixTQUFTLEVBQUUsSUFBSTtJQUNmLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLGFBQWEsRUFBRSxJQUFJLEdBQ3BCO0VBRUEsQUFBRCxtQ0FBb0IsQ0FBQztJQUNuQixPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLEdBQUcsRUFBRSxJQUFJO0lBQ1QsYUFBYSxFQUFFLElBQUksR0FDcEI7RUFFQSxBQUFELGtDQUFtQixDQUFDO0lBQ2xCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsVUFBVSxFQUFFLFVBQVU7SUFDdEIsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsTUFBTTtJQUNmLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDeEl0YlAsT0FBTztJd0l1YmpCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxPQUFPO0lBQ25CLFVBQVUsRXhJOVlBLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsR3dJK1k3QztFQUVBLEFBQUQsd0NBQXlCLENBQUM7SUFDeEIsTUFBTSxFQUFFLElBQUk7SUFDWixLQUFLLEVBQUUsR0FBRztJQUNWLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0VBRUEsQUFBRCxpQ0FBa0IsQ0FBQztJQUNqQixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxhQUFhO0lBQzlCLEdBQUcsRUFBRSxJQUFJLEdBQ1Y7RUFFQSxBQUFELGlDQUFrQixDQUFDO0lBQ2pCLE1BQU0sRUFBRSxJQUFJO0lBQ1osS0FBSyxFQUFFLEtBQUs7SUFDWixTQUFTLEVBQUUsSUFBSTtJQUNmLGFBQWEsRUFBRSxHQUFHLEdBS25CO0lBSEUsQUFBRCwwQ0FBVSxDQUFDO01BQ1QsS0FBSyxFQUFFLEtBQUssR0FDYjtFQUlGLEFBQUQsd0JBQVMsQ0FBQztJQUNSLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLGFBQWE7SUFDOUIsR0FBRyxFQUFFLElBQUksR0FDVjtFQUVBLEFBQUQsd0JBQVMsQ0FBQztJQUNSLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLEdBQUcsRUFBRSxHQUFHO0lBQ1IsT0FBTyxFQUFFLFNBQVM7SUFDbEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEN4SWxlUCxPQUFPO0l3SW1lakIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLE9BQU87SUFDbkIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixLQUFLLEV4SWplSyxPQUFPO0l3SWtlakIsTUFBTSxFQUFFLE9BQU8sR0FZaEI7SUFWRSxBQUFELGlDQUFVLENBQUM7TUFDVCxZQUFZLEV4SWxmSixPQUFPO013SW1mZixVQUFVLEV4SW5mRixPQUFPO013SW9mZixLQUFLLEVBQUUsT0FBTyxHQU1mO01BVEEsQUFLQyxpQ0FMUSxBQUtQLE1BQU0sQ0FBQztRQUNOLFlBQVksRXhJemJILE9BQU87UXdJMGJoQixVQUFVLEV4STFiRCxPQUFPLEd3STJiakI7RUFJTCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7SUF4YTFCLEFBQUEsZ0JBQWdCLENBQUM7TUF5YWIsT0FBTyxFQUFFLGNBQWMsR0FnQzFCO01BOUJJLEFBQUQsd0JBQVMsRUFDUixpQ0FBaUIsQ0FBQztRQUNqQixjQUFjLEVBQUUsTUFBTTtRQUN0QixXQUFXLEVBQUUsVUFBVTtRQUN2QixHQUFHLEVBQUUsSUFBSSxHQUNWO01BL0lGLEFBQUQsZ0NBQWlCLENBaUpHO1FBQ2hCLEtBQUssRUFBRSxJQUFJO1FBQ1gsTUFBTSxFQUFFLElBQUksR0FDYjtNQWxaRixBQUFELHVCQUFRLENBdVpHO1FBQ1AsS0FBSyxFQUFFLElBQUk7UUFDWCxNQUFNLEVBQUUsSUFBSSxHQUNiO01BOVlGLEFBQUQsdUJBQVEsQ0FnWkc7UUFDUCxTQUFTLEVBQUUsSUFBSSxHQUNoQjtNQXJXRixBQUFELHNCQUFPLENBdVdHO1FBQ04sT0FBTyxFQUFFLElBQUk7UUFDYixLQUFLLEVBQUUsSUFBSTtRQUNYLFVBQVUsRUFBRSxJQUFJLEdBQ2pCOztBQ3BpQkwsQUFBQSxVQUFVLEFBQUEsbUJBQW1CLENBQUM7RUFDNUIsT0FBTyxFQUFFLElBQUk7RUFDYixlQUFlLEVBQUUsTUFBTTtFQUN2QixJQUFJLEVBQUUsUUFBUTtFQUNkLFNBQVMsRUFBRSxDQUFDO0VBS1osVUFBVSxFQUFFLE9BQU87RUFDbkIsVUFBVSxFekllRSxPQUFPLEd5SWRwQjs7QUFFRCxBQUFBLGNBQWMsQ0FBQztFQUNiLElBQUksRUFBRSxRQUFRO0VBQ2QsU0FBUyxFQUFFLENBQUM7RUFDWixLQUFLLEVBQUUsSUFBSTtFQUdYLFNBQVMsRUFBRSxLQUFLO0VBQ2hCLE1BQU0sRUFBRSxNQUFNO0VBQ2QsT0FBTyxFQUFFLGNBQWM7RUFDdkIsVUFBVSxFQUFFLFVBQVU7RUFDdEIsVUFBVSxFQUFFLElBQUksR0FxN0JqQjtFQS83QkQsQUFhRSxjQWJZLENBYVosTUFBTSxDQUFDO0l2SThMUCxTQUFTLEVBQUUsQ0FBQztJQUNaLFVBQVUsRUFBRSxDQUFDO0lBQ2IsVUFBVSxFQUFFLElBQUk7SUFDaEIsY0FBYyxFQUFFLENBQUM7SUFDakIsY0FBYyxFQUFFLElBQUksR3VJaE1uQjtFQWZILEFBaUJFLGNBakJZLENBaUJaLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDZCxXQUFXLEVBQUUsQ0FBQyxHQUNmO0VBRUEsQUFBRCxvQkFBTyxDQUFDO0lBQ04sUUFBUSxFQUFFLFFBQVEsR0FDbkI7RUFNQSxBQUFELHdCQUFXLENBQUM7SUFDVixjQUFjLEVBQUUsSUFBSSxHQVVyQjtJQVJFLEFBQUQsaUNBQVUsQ0FBQztNQUNULFFBQVEsRUFBRSxRQUFRO01BQ2xCLEdBQUcsRUFBRSxDQUFDO01BQ04sS0FBSyxFQUFFLENBQUM7TUFDUixJQUFJLEVBQUUsQ0FBQztNQUNQLE9BQU8sRUFBRSxDQUFDO01BQ1YsVUFBVSxFekkxQkYsT0FBTyxHeUkyQmhCO0VBR0YsQUFBRCxrQ0FBcUIsQ0FBQztJQUNwQixPQUFPLEVBQUUsS0FBSztJQUNkLE1BQU0sRUFBRSxJQUFJO0lBQ1osS0FBSyxFQUFFLEtBQUs7SUFDWixTQUFTLEVBQUUsSUFBSTtJQUNmLGFBQWEsRUFBRSxJQUFJO0lBQ25CLGFBQWEsRUFBRSxHQUFHLEdBQ25CO0VBRUEsQUFBRCwrQkFBa0IsQ0FBQztJQUNqQixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLEdBQUcsRUFBRSxJQUFJO0lBQ1QsYUFBYSxFQUFFLElBQUksR0FDcEI7RUFJQSxBQUFELDhCQUFpQixDQUFDO0lBQ2hCLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLEtBQUs7SUFDWixNQUFNLEVBQUUsSUFBSTtJQUNaLGFBQWEsRUFBRSxHQUFHLEdBQ25CO0VBRUEsQUFBRCxpQ0FBb0IsQ0FBQztJQUNuQixJQUFJLEVBQUUsUUFBUTtJQUNkLFNBQVMsRUFBRSxDQUFDO0lBQ1osT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsTUFBTTtJQUN0QixHQUFHLEVBQUUsSUFBSSxHQUNWO0VBR0EsQUFBRCw4QkFBaUIsQ0FBQztJQUNoQixNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxHQUFHO0lBQ1YsU0FBUyxFQUFFLElBQUksR0FDaEI7RUFFQSxBQUFELDZCQUFnQixDQUFDO0lBQ2YsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixTQUFTLEVBQUUsSUFBSTtJQUNmLEdBQUcsRUFBRSxHQUFHLEdBQ1Q7RUFHQSxBQUFELDZCQUFnQixDQUFDO0lBQ2YsSUFBSSxFQUFFLFFBQVE7SUFDZCxNQUFNLEVBQUUsSUFBSTtJQUNaLFNBQVMsRUFBRSxJQUFJO0lBQ2YsYUFBYSxFQUFFLEdBQUcsR0FhbkI7SUFYRSxBQUFELG1DQUFPLENBQUM7TUFDTixLQUFLLEVBQUUsS0FBSyxHQUNiO0lBRUEsQUFBRCxvQ0FBUSxDQUFDO01BQ1AsS0FBSyxFQUFFLElBQUksR0FDWjtJQUVBLEFBQUQsd0NBQVksQ0FBQztNQUNYLEtBQUssRUFBRSxLQUFLLEdBQ2I7RUFJRixBQUFELDZCQUFnQixDQUFDO0lBQ2YsT0FBTyxFQUFFLEtBQUs7SUFDZCxNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxLQUFLO0lBQ1osU0FBUyxFQUFFLElBQUk7SUFDZixhQUFhLEVBQUUsSUFBSTtJQUNuQixhQUFhLEVBQUUsR0FBRyxHQUNuQjtFQUVBLEFBQUQsaUNBQW9CLENBQUM7SUFDbkIsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsSUFBSTtJQUNULGFBQWEsRUFBRSxJQUFJLEdBQ3BCO0VBRUEsQUFBRCxzQ0FBeUIsQ0FBQztJQUN4QixJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixhQUFhLEVBQUUsR0FBRyxHQUNuQjtFQUVBLEFBQUQsc0NBQXlCLENBQUM7SUFDeEIsTUFBTSxFQUFFLElBQUk7SUFDWixLQUFLLEVBQUUsS0FBSztJQUNaLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0VBRUEsQUFBRCxtQ0FBc0IsQ0FBQztJQUNyQixPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLEdBQUcsRUFBRSxJQUFJO0lBQ1QsYUFBYSxFQUFFLElBQUksR0FDcEI7RUFFQSxBQUFELGtDQUFxQixDQUFDO0lBQ3BCLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDeklqSlAsT0FBTztJeUlrSmpCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxPQUFPO0lBQ25CLFVBQVUsRXpJekdBLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsR3lJMEc3QztFQUVBLEFBQUQseUNBQTRCLENBQUM7SUFDM0IsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixVQUFVLEVBQUUsVUFBVTtJQUN0QixNQUFNLEVBQUUsSUFBSTtJQUNaLEdBQUcsRUFBRSxJQUFJO0lBQ1QsT0FBTyxFQUFFLE1BQU0sR0FDaEI7RUFFQSxBQUFELHdDQUEyQixDQUFDO0lBQzFCLElBQUksRUFBRSxRQUFRO0lBQ2QsU0FBUyxFQUFFLENBQUM7SUFDWixNQUFNLEVBQUUsSUFBSTtJQUNaLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0VBRUEsQUFBRCxxQ0FBd0IsQ0FBQztJQUN2QixJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxLQUFLO0lBQ1osTUFBTSxFQUFFLElBQUk7SUFDWixhQUFhLEVBQUUsR0FBRyxHQUNuQjtFQUVBLEFBQUQsOEJBQWlCLENBQUM7SUFDaEIsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osYUFBYSxFQUFFLEdBQUcsR0FDbkI7RUFFQSxBQUFELHVDQUEwQixDQUFDO0lBQ3pCLFVBQVUsRUFBRSxHQUFHLENBQUMsS0FBSyxDekl0TFgsT0FBTyxHeUl1TGxCO0VBRUEsQUFBRCxpQ0FBb0IsQ0FBQztJQUNuQixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLE1BQU0sRUFBRSxJQUFJO0lBQ1osR0FBRyxFQUFFLElBQUk7SUFDVCxPQUFPLEVBQUUsTUFBTSxHQUtoQjtJQVhBLEFBUUMsaUNBUmtCLEdBQW5CLGlDQUFtQixDQVFaO01BQ0osVUFBVSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEN6SWxNYixPQUFPLEd5SW1NaEI7RUFHRixBQUFELGdDQUFtQixDQUFDO0lBQ2xCLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLGFBQWEsRUFBRSxHQUFHLEdBQ25CO0VBRUEsQUFBRCxzQ0FBeUIsQ0FBQztJQUN4QixJQUFJLEVBQUUsUUFBUTtJQUNkLFNBQVMsRUFBRSxDQUFDO0lBQ1osT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsTUFBTTtJQUN0QixHQUFHLEVBQUUsR0FBRyxHQUNUO0VBRUEsQUFBRCxzQ0FBeUIsQ0FBQztJQUN4QixNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxHQUFHO0lBQ1YsU0FBUyxFQUFFLElBQUksR0FLaEI7SUFIRSxBQUFELDZDQUFRLENBQUM7TUFDUCxLQUFLLEVBQUUsR0FBRyxHQUNYO0VBR0YsQUFBRCw0Q0FBK0IsQ0FBQztJQUM5QixNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxLQUFLO0lBQ1osU0FBUyxFQUFFLElBQUksR0FDaEI7RUFFQSxBQUFELHlDQUE0QixDQUFDO0lBQzNCLElBQUksRUFBRSxRQUFRO0lBQ2QsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsR0FBRyxHQUNUO0VBRUEsQUFBRCx3Q0FBMkIsQ0FBQztJQUMxQixJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixhQUFhLEVBQUUsR0FBRyxHQUNuQjtFQUVBLEFBQUQsK0JBQWtCLENBQUM7SUFDakIsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsYUFBYTtJQUM5QixHQUFHLEVBQUUsSUFBSSxHQUNWO0VBR0EsQUFBRCwrQkFBa0IsQ0FBQztJQUNqQixNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxLQUFLO0lBQ1osU0FBUyxFQUFFLElBQUk7SUFDZixhQUFhLEVBQUUsR0FBRyxHQUtuQjtJQUhFLEFBQUQsd0NBQVUsQ0FBQztNQUNULEtBQUssRUFBRSxLQUFLLEdBQ2I7RUFJRixBQUFELHlCQUFZLENBQUM7SUFDWCxPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLFNBQVMsRUFBRSxJQUFJO0lBQ2YsR0FBRyxFQUFFLEdBQUc7SUFDUixhQUFhLEVBQUUsSUFBSTtJQUNuQixhQUFhLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3pJN1FkLE9BQU8sR3lJOFFsQjtFQUVBLEFBQUQsd0JBQVcsQ0FBQztJQUNWLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE1BQU0sRUFBRSxDQUFDO0lBQ1QsYUFBYSxFQUFFLHFCQUFxQjtJQUlwQyxXQUFXLEVBQUUsTUFBTTtJQUduQixhQUFhLEVBQUUsQ0FBQztJQUNoQixVQUFVLEVBQUUsSUFBSTtJQUNoQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRXpJM1JLLE9BQU87SXlJNFJqQixNQUFNLEVBQUUsT0FBTyxHQXFCaEI7SUFyQ0EsQUFrQkMsd0JBbEJTLEFBa0JSLE1BQU0sQ0FBQztNQUNOLEtBQUssRXpJN1JHLE9BQU8sR3lJOFJoQjtJQUVBLEFBQUQsZ0NBQVMsQ0FBQztNQUNSLG1CQUFtQixFekk5U1gsT0FBTztNeUkrU2YsS0FBSyxFekkvU0csT0FBTyxHeUlnVGhCO0lBSUEsQUFBRCxrQ0FBVyxDQUFDO01BQ1YsT0FBTyxFQUFFLEdBQUc7TUFDWixNQUFNLEVBQUUsT0FBTyxHQUtoQjtNQVBBLEFBSUMsa0NBSlMsQUFJUixNQUFNLENBQUM7UUFDTixLQUFLLEV6STlTQyxPQUFPLEd5SStTZDtFQU1KLEFBQUQsNEJBQWUsQ0FBQztJQUNkLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxPQUFPO0lBQ3BCLEtBQUssRUFBRSxPQUFPLEdBQ2Y7RUFHQSxBQUFELHNCQUFTLENBQUM7SUFDUixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLEdBQUcsRUFBRSxJQUFJO0lBQ1QsYUFBYSxFQUFFLElBQUksR0FDcEI7RUFRQSxBQUFELHFCQUFRLENBQUM7SUFDUCxJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBeFdVLE9BQU8sR0F5VzVCO0VBRUEsQUFBRCx3QkFBVyxDQUFDO0lBQ1YsU0FBUyxFQUFFLENBQUMsR0FDYjtFQUVBLEFBQUQscUJBQVEsQ0FBQztJQUNQLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFekl4VkssT0FBTyxHeUl5VmxCO0VBRUEsQUFBRCxvQkFBTyxDQUFDO0lBQ04sT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixTQUFTLEVBQUUsSUFBSTtJQUNmLEdBQUcsRUFBRSxHQUFHLEdBQ1Q7RUFFQSxBQUFELG9CQUFPLENBQUM7SUFDTixPQUFPLEVBQUUsV0FBVztJQUNwQixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsR0FBRztJQUNSLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFwWVUsT0FBTztJQXFZM0IsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixLQUFLLEV6STdXSyxPQUFPO0l5SThXakIsV0FBVyxFQUFFLE1BQU0sR0FDcEI7RUFFQSxBQUFELHlCQUFZLENBQUM7SUFDWCxJQUFJLEVBQUUsUUFBUTtJQUNkLE9BQU8sRUFBRSxLQUFLLEdBQ2Y7RUFHQSxBQUFELDJCQUFjLENBQUM7SUFDYixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxhQUFhO0lBQzlCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsR0FBRyxFQUFFLElBQUk7SUFDVCxhQUFhLEVBQUUsSUFBSSxHQUNwQjtFQUlBLEFBQUQsb0JBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLEdBQUcsRUFBRSxHQUFHO0lBQ1IsT0FBTyxFQUFFLEdBQUc7SUFDWixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBcGFVLE9BQU8sR0FxYTVCO0VBSUEsQUFBRCxtQkFBTSxDQUFDO0lBQ0wsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsSUFBSSxFQUFFLFFBQVE7SUFDZCxVQUFVLEVBQUUsVUFBVTtJQUN0QixLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osR0FBRyxFQUFFLEdBQUc7SUFDUixPQUFPLEVBQUUsUUFBUTtJQUNqQixNQUFNLEVBQUUsQ0FBQztJQUNULGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxXQUFXO0lBQ3ZCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLENBQUM7SUFDZCxXQUFXLEVBQUUsTUFBTTtJQUNuQixLQUFLLEV6SWhhSyxPQUFPO0l5SWlhakIsTUFBTSxFQUFFLE9BQU8sR0FPaEI7SUFMRSxBQUFELDJCQUFTLENBQUM7TUFDUixVQUFVLEVBQUUsT0FBTztNQUNuQixLQUFLLEV6SW5hRyxPQUFPO015SW9hZixVQUFVLEV6SS9YRixDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLEd5SWdZM0M7RUFHRixBQUFELDZCQUFnQixDQUFDO0lBQ2YsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixHQUFHLEVBQUUsR0FBRyxHQUNUO0VBR0EsQUFBRCw4QkFBaUIsQ0FBQztJQUNoQixhQUFhLEVBQUUsSUFBSSxHQUNwQjtFQUVBLEFBQUQsd0JBQVcsQ0FBQztJQUNWLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLElBQUk7SUFDVCxhQUFhLEVBQUUsSUFBSSxHQUNwQjtFQUVBLEFBQUQsNkJBQWdCLENBQUM7SUFDZixJQUFJLEVBQUUsUUFBUTtJQUNkLFNBQVMsRUFBRSxJQUFJO0lBQ2YsS0FBSyxFekkxY0ssT0FBTyxHeUkyY2xCO0VBRUEsQUFBRCw4QkFBaUIsQ0FBQztJQUNoQixJQUFJLEVBQUUsUUFBUTtJQUNkLE9BQU8sRUFBRSxLQUFLO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxPQUFPLEdBQ3BCO0VBRUEsQUFBRCw2QkFBZ0IsQ0FBQztJQUNmLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFekkzY0ssT0FBTyxHeUk0Y2xCO0VBR0EsQUFBRCwwQkFBYSxDQUFDO0lBQ1osT0FBTyxFQUFFLElBQUk7SUFDYixjQUFjLEVBQUUsTUFBTTtJQUN0QixHQUFHLEVBQUUsSUFBSSxHQUNWO0VBRUEsQUFBRCx5QkFBWSxDQUFDO0lBQ1gsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEN6STVkUCxPQUFPO0l5STZkakIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLE9BQU87SUFDbkIsVUFBVSxFeklwYkEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixHeUlxYjdDO0VBSUEsQUFBRCxnQ0FBbUIsQ0FBQztJQUNsQixRQUFRLEVBQUUsUUFBUTtJQUNsQixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLE1BQU0sRUFBRSxJQUFJO0lBQ1osR0FBRyxFQUFFLElBQUk7SUFDVCxPQUFPLEVBQUUsTUFBTSxHQUNoQjtFQUVBLEFBQUQsK0JBQWtCLENBQUM7SUFDakIsSUFBSSxFQUFFLFFBQVE7SUFDZCxTQUFTLEVBQUUsQ0FBQztJQUNaLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFekk3ZUssT0FBTyxHeUk4ZWxCO0VBRUEsQUFBRCw0QkFBZSxDQUFDO0lBQ2QsSUFBSSxFQUFFLFFBQVE7SUFDZCxPQUFPLEVBQUUsV0FBVztJQUNwQixXQUFXLEVBQUUsTUFBTTtJQUNuQixVQUFVLEVBQUUsVUFBVTtJQUN0QixNQUFNLEVBQUUsSUFBSTtJQUNaLEdBQUcsRUFBRSxHQUFHO0lBQ1IsT0FBTyxFQUFFLE1BQU07SUFDZixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3pJcmdCUCxPQUFPO0l5SXNnQmpCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxPQUFPO0lBQ25CLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLENBQUM7SUFDZCxLQUFLLEV6STNnQkssT0FBTztJeUk0Z0JqQixNQUFNLEVBQUUsT0FBTyxHQUtoQjtJQXBCQSxBQWlCQyw0QkFqQmEsQUFpQlosTUFBTSxDQUFDO01BQ04sVUFBVSxFeklsaEJGLE9BQU8sR3lJbWhCaEI7RUFPRixBQUFELG9CQUFPLENBQUM7SUFDTixRQUFRLEVBQUUsUUFBUTtJQUNsQixJQUFJLEVBQUUsUUFBUSxHQUNmO0VBRUEsQUFBRCxxQkFBUSxDQUFDO0lBQ1AsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsS0FBSyxFQUFFLElBQUk7SUFDWCxTQUFTLEVBQUUsSUFBSTtJQUNmLFNBQVMsRUFBRSxJQUFJO0lBQ2YsTUFBTSxFQUFFLElBQUk7SUFDWixVQUFVLEVBQUUsSUFBSTtJQUNoQixVQUFVLEVBQUUsSUFBSTtJQUNoQixPQUFPLEVBQUUsQ0FBQztJQUNWLE1BQU0sRUFBRSxxQkFBcUI7SUFDN0IsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLFdBQVc7SUFDdkIsS0FBSyxFekkvaEJLLE9BQU87SXlJZ2lCakIsTUFBTSxFQUFFLE9BQU8sR0FNaEI7SUFyQkEsQUFpQkMscUJBakJNLEFBaUJMLE1BQU0sQ0FBQztNQUNOLFVBQVUsRUE3akJRLE9BQU87TUE4akJ6QixLQUFLLEV6SWxpQkcsT0FBTyxHeUltaUJoQjtFQUdGLEFBQUQseUJBQVksQ0FBQztJQUNYLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEdBQUcsRUFBRSxnQkFBZ0I7SUFDckIsS0FBSyxFQUFFLENBQUM7SUFDUixPQUFPLEVBQUUsRUFBRTtJQUNYLE9BQU8sRUFBRSxJQUFJO0lBQ2IsY0FBYyxFQUFFLE1BQU07SUFDdEIsU0FBUyxFQUFFLEtBQUs7SUFDaEIsT0FBTyxFQUFFLEdBQUc7SUFDWixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3pJcmpCUCxPQUFPO0l5SXNqQmpCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxPQUFPO0lBQ25CLFVBQVUsRUE1a0JjLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsR0FtbEI1RDtJQW5CQSxBQWdCQyx5QkFoQlUsQUFnQlQsT0FBTyxDQUFDO01BQ1AsT0FBTyxFQUFFLElBQUksR0FDZDtFQUdGLEFBQUQseUJBQVksQ0FBQztJQUNYLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLElBQUk7SUFDVCxPQUFPLEVBQUUsU0FBUztJQUNsQixNQUFNLEVBQUUsQ0FBQztJQUNULGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxXQUFXO0lBQ3ZCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsVUFBVSxFQUFFLElBQUk7SUFDaEIsS0FBSyxFekl0a0JLLE9BQU87SXlJdWtCakIsTUFBTSxFQUFFLE9BQU8sR0FTaEI7SUFyQkEsQUFjQyx5QkFkVSxBQWNULE1BQU0sQ0FBQztNQUNOLFVBQVUsRUF0bUJRLE9BQU8sR0F1bUIxQjtJQUVBLEFBQUQsaUNBQVMsQ0FBQztNQUNSLEtBQUssRUF6bUJZLE9BQU8sR0EwbUJ6QjtFQUlGLEFBQUQsOEJBQWlCLENBQUM7SUFDaEIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEN6STFsQlgsT0FBTyxHeUkybEJsQjtFQUtBLEFBQUQsd0JBQVcsQ0FBQztJQUNWLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsVUFBVSxFQUFFLFVBQVU7SUFDdEIsTUFBTSxFQUFFLElBQUk7SUFDWixHQUFHLEVBQUUsSUFBSTtJQUNULE9BQU8sRUFBRSxNQUFNLEdBS2hCO0lBWEEsQUFRQyx3QkFSUyxHQUFWLHdCQUFVLENBUUg7TUFDSixVQUFVLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3pJem1CYixPQUFPLEd5STBtQmhCO0VBS0YsQUFBRCx1QkFBVSxDQUFDO0lBQ1QsSUFBSSxFQUFFLFFBQVE7SUFDZCxPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLEtBQUssRUFBRSxJQUFJLEdBQ1o7RUFFQSxBQUFELDhCQUFpQixDQUFDO0lBQ2hCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLE9BQU8sRUFBRSxDQUFDO0lBQ1YsTUFBTSxFQUFFLENBQUM7SUFDVCxhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsV0FBVztJQUN2QixLQUFLLEV6STVuQkssT0FBTztJeUk2bkJqQixNQUFNLEVBQUUsT0FBTyxHQUtoQjtJQWhCQSxBQWFDLDhCQWJlLEFBYWQsTUFBTSxDQUFDO01BQ04sS0FBSyxFekk5bkJHLE9BQU8sR3lJK25CaEI7RUFHRixBQUFELDZCQUFnQixDQUFDO0lBQ2YsSUFBSSxFQUFFLFFBQVE7SUFDZCxTQUFTLEVBQUUsQ0FBQyxHQUNiO0VBRUEsQUFBRCw2QkFBZ0IsQ0FBQztJQUNmLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFFBQVEsRUFBRSxNQUFNO0lBQ2hCLGFBQWEsRUFBRSxRQUFRO0lBQ3ZCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFekk5b0JLLE9BQU8sR3lJK29CbEI7RUFJQSxBQUFELG1DQUFzQixDQUFDO0lBQ3JCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsU0FBUyxFQUFFLElBQUk7SUFDZixHQUFHLEVBQUUsT0FBTztJQUNaLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFekkzcEJLLE9BQU8sR3lJb3FCbEI7SUFoQkEsQUFXQyxtQ0FYb0IsR0FXbEIsSUFBSSxHQUFHLElBQUksQUFBQSxRQUFRLENBQUM7TUFDcEIsT0FBTyxFQUFFLE9BQU87TUFDaEIsWUFBWSxFQUFFLEdBQUc7TUFDakIsS0FBSyxFekl2cUJHLE9BQU8sR3lJd3FCaEI7RUFHRixBQUFELCtCQUFrQixDQUFDO0lBQ2pCLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLEtBQUssRXpJeHFCSyxPQUFPLEd5SXlxQmxCO0VBRUEsQUFBRCxnQ0FBbUIsQ0FBQztJQUNsQixJQUFJLEVBQUUsUUFBUTtJQUNkLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLEdBQUcsR0FDVDtFQU1BLEFBQUQsK0JBQWtCLENBQUM7SUFDakIsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osT0FBTyxFQUFFLENBQUM7SUFDVixNQUFNLEVBQUUsQ0FBQztJQUNULGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxXQUFXO0lBQ3ZCLEtBQUssRXpJL3JCSyxPQUFPO0l5SWdzQmpCLE1BQU0sRUFBRSxPQUFPLEdBU2hCO0lBcEJBLEFBYUMsK0JBYmdCLEFBYWYsTUFBTSxDQUFDO01BQ04sVUFBVSxFQS90QlEsT0FBTyxHQWd1QjFCO0lBRUEsQUFBRCx1Q0FBUyxBQUFBLE1BQU0sQ0FBQztNQUNkLFVBQVUsRUFBRSxPQUFPLEdBQ3BCO0VBT0YsQUFBRCxvQ0FBdUIsQ0FBQztJQUN0QixJQUFJLEVBQUUsUUFBUTtJQUNkLE9BQU8sRUFBRSxLQUFLO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxPQUFPLEdBUXBCO0lBSkUsQUFBRCwwQ0FBTyxDQUFDO01BQ04sS0FBSyxFQUFFLElBQUk7TUFDWCxNQUFNLEVBQUUsSUFBSSxHQUNiO0VBR0YsQUFBRCxxQkFBUSxDQUFDO0lBQ1AsT0FBTyxFQUFFLElBQUk7SUFDYixTQUFTLEVBQUUsSUFBSTtJQUNmLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLEtBQUssRXpJcHVCSyxPQUFPLEd5SXF1QmxCO0VBRUEsQUFBRCwyQkFBYyxDQUFDO0lBQ2IsT0FBTyxFQUFFLEtBQUs7SUFDZCxVQUFVLEVBQUUsSUFBSTtJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixPQUFPLEVBQUUsU0FBUztJQUNsQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3pJdnZCUCxPQUFPO0l5SXd2QmpCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxPQUFPO0lBQ25CLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFekk1dkJLLE9BQU87SXlJNnZCakIsTUFBTSxFQUFFLE9BQU8sR0FLaEI7SUFoQkEsQUFhQywyQkFiWSxBQWFYLE1BQU0sQ0FBQztNQUNOLFVBQVUsRXpJbndCRixPQUFPLEd5SW93QmhCO0VBSUYsQUFBRCxzQkFBUyxDQUFDO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsYUFBYTtJQUM5QixHQUFHLEVBQUUsSUFBSSxHQUNWO0VBRUEsQUFBRCxzQkFBUyxDQUFDO0lBQ1IsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsR0FBRyxFQUFFLEdBQUc7SUFDUixPQUFPLEVBQUUsU0FBUztJQUNsQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ3pJM3dCUCxPQUFPO0l5STR3QmpCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxPQUFPO0lBQ25CLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFekkxd0JLLE9BQU87SXlJMndCakIsTUFBTSxFQUFFLE9BQU8sR0FZaEI7SUFWRSxBQUFELCtCQUFVLENBQUM7TUFDVCxZQUFZLEV6STN4QkosT0FBTztNeUk0eEJmLFVBQVUsRXpJNXhCRixPQUFPO015STZ4QmYsS0FBSyxFQUFFLE9BQU8sR0FNZjtNQVRBLEFBS0MsK0JBTFEsQUFLUCxNQUFNLENBQUM7UUFDTixZQUFZLEV6SWx1QkgsT0FBTztReUltdUJoQixVQUFVLEV6SW51QkQsT0FBTyxHeUlvdUJqQjtFdkk1bEJILE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztJdUlqTTVCLEFBQUEsY0FBYyxDQUFDO01Ba3lCWCxPQUFPLEVBQUUsY0FBYyxHQTZKMUI7TUEzSkksQUFBRCx5QkFBWSxFQUNYLG9CQUFNLENBQUM7UUFDTixLQUFLLEVBQUUsSUFBSTtRQUNYLFVBQVUsRUFBRSxJQUFJLEdBQ2pCO01BL2hCRixBQUFELHlCQUFZLENBaWlCRztRQUNYLGVBQWUsRUFBRSxNQUFNO1FBS3ZCLGVBQWUsRUFBRSxXQUFXLEdBQzdCO01BdndCRixBQUFELGtDQUFxQixDQTB3Qkc7UUFDcEIsV0FBVyxFQUFFLElBQUk7UUFDakIsWUFBWSxFQUFFLElBQUksR0FDbkI7TUEvYUYsQUFBRCxvQkFBTyxDQWliRztRQUNOLE9BQU8sRUFBRSxJQUFJLEdBQ2Q7TUF6ZkYsQUFBRCxzQkFBUyxDQTJmRztRQUNSLGNBQWMsRUFBRSxNQUFNO1FBQ3RCLFdBQVcsRUFBRSxVQUFVO1FBQ3ZCLEdBQUcsRUFBRSxJQUFJLEdBQ1Y7TUFsZkYsQUFBRCxxQkFBUSxDQXVmRztRQUNQLEtBQUssRUFBRSxJQUFJO1FBQ1gsTUFBTSxFQUFFLElBQUksR0FDYjtNQTllRixBQUFELHFCQUFRLENBZ2ZHO1FBQ1AsU0FBUyxFQUFFLElBQUksR0FDaEI7TUF2V0YsQUFBRCxnQ0FBbUIsQ0EwV0c7UUFDbEIsU0FBUyxFQUFFLElBQUk7UUFDZixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxTQUFTLEdBQ25CO01BcFdGLEFBQUQsK0JBQWtCLENBc1dHO1FBQ2pCLElBQUksRUFBRSxRQUFRLEdBQ2Y7TUFoV0YsQUFBRCw0QkFBZSxDQWtXRztRQUNkLElBQUksRUFBRSxRQUFRO1FBQ2QsZUFBZSxFQUFFLE1BQU0sR0FDeEI7TUEzUEYsQUFBRCx3QkFBVyxDQStQRztRQUNWLFdBQVcsRUFBRSxVQUFVO1FBQ3ZCLFNBQVMsRUFBRSxJQUFJO1FBQ2YsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsU0FBUyxHQUNuQjtNQXBMRixBQUFELGdDQUFtQixDQXNMRztRQUNsQixLQUFLLEVBQUUsSUFBSTtRQUNYLGVBQWUsRUFBRSxRQUFRLEdBQzFCO01BM0dGLEFBQUQsc0JBQVMsQ0E2R0c7UUFDUixjQUFjLEVBQUUsY0FBYztRQUM5QixXQUFXLEVBQUUsT0FBTyxHQUNyQjtNQTd6QkYsQUFBRCwrQkFBa0IsQ0FnMEJHO1FBQ2pCLGNBQWMsRUFBRSxNQUFNO1FBQ3RCLFdBQVcsRUFBRSxVQUFVO1FBQ3ZCLEdBQUcsRUFBRSxJQUFJLEdBQ1Y7TUEzekJGLEFBQUQsOEJBQWlCLENBNnpCRztRQUNoQixLQUFLLEVBQUUsSUFBSTtRQUNYLE1BQU0sRUFBRSxLQUFLLEdBQ2Q7TUFoekJGLEFBQUQsOEJBQWlCLENBa3pCRztRQUNoQixNQUFNLEVBQUUsSUFBSSxHQUNiO01BdnVCRixBQUFELHlDQUE0QixDQXl1Qkc7UUFDM0IsU0FBUyxFQUFFLElBQUk7UUFDZixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxTQUFTLEdBQ25CO01BcHVCRixBQUFELHdDQUEyQixDQXN1Qkc7UUFDMUIsSUFBSSxFQUFFLFFBQVEsR0FDZjtNQWp1QkYsQUFBRCxxQ0FBd0IsQ0FtdUJHO1FBQ3ZCLElBQUksRUFBRSxRQUFRO1FBQ2QsS0FBSyxFQUFFLElBQUksR0FDWjtNQXB0QkYsQUFBRCxpQ0FBb0IsQ0FzdEJHO1FBQ25CLFdBQVcsRUFBRSxVQUFVO1FBQ3ZCLFNBQVMsRUFBRSxJQUFJO1FBQ2YsTUFBTSxFQUFFLElBQUk7UUFDWixHQUFHLEVBQUUsSUFBSTtRQUNULE9BQU8sRUFBRSxTQUFTLEdBQ25CO01BaHJCRixBQUFELHlDQUE0QixDQWtyQkc7UUFDM0IsS0FBSyxFQUFFLElBQUk7UUFDWCxlQUFlLEVBQUUsUUFBUSxHQUMxQjtNQXZxQkYsQUFBRCwrQkFBa0IsQ0F5cUJHO1FBQ2pCLGNBQWMsRUFBRSxjQUFjO1FBQzlCLFdBQVcsRUFBRSxPQUFPLEdBQ3JCO01BcHFCRixBQUFELCtCQUFrQixDQXNxQkc7UUFDakIsS0FBSyxFQUFFLElBQUksR0FLWjtRQXRxQkEsQUFBRCx3Q0FBVSxDQW1xQkc7VUFDVCxLQUFLLEVBQUUsSUFBSSxHQUNaO0V2SXB1QkgsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0l1SThFekIsQUFBRCx3QkFBVyxDQW1xQkc7TUFDVixJQUFJLEVBQUUsUUFBUTtNQUNkLE9BQU8sRUFBRSxRQUFRO01BQ2pCLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0lBaHJCRixBQUFELHlCQUFZLENBa3JCRztNQUNYLFNBQVMsRUFBRSxNQUFNLEdBQ2xCOztBQ3o4QkwsQUFBQSxVQUFVLEFBQUEsc0JBQXNCLENBQUM7RUFDL0IsT0FBTyxFQUFFLElBQUk7RUFDYixlQUFlLEVBQUUsTUFBTTtFQUN2QixJQUFJLEVBQUUsUUFBUTtFQUNkLFNBQVMsRUFBRSxDQUFDO0VBS1osVUFBVSxFQUFFLE9BQU87RUFDbkIsVUFBVSxFMUljRSxPQUFPLEcwSWJwQjs7QUFFRCxBQUFBLGlCQUFpQixDQUFDO0VBQ2hCLElBQUksRUFBRSxRQUFRO0VBQ2QsU0FBUyxFQUFFLENBQUM7RUFDWixLQUFLLEVBQUUsSUFBSTtFQUNYLFNBQVMsRUFBRSxLQUFLO0VBQ2hCLE1BQU0sRUFBRSxNQUFNO0VBQ2QsT0FBTyxFQUFFLGNBQWM7RUFDdkIsVUFBVSxFQUFFLFVBQVU7RUFDdEIsVUFBVSxFQUFFLElBQUksR0ErNEJqQjtFQTM0QkUsQUFBRCx5QkFBUyxDQUFDO0lBQ1IsU0FBUyxFQUFFLEtBQUssR0FDakI7RUFkSCxBQWlCRSxpQkFqQmUsQ0FpQmYsTUFBTSxDQUFDO0l4SXlMUCxTQUFTLEVBQUUsQ0FBQztJQUNaLFVBQVUsRUFBRSxDQUFDO0lBQ2IsVUFBVSxFQUFFLElBQUk7SUFDaEIsY0FBYyxFQUFFLENBQUM7SUFDakIsY0FBYyxFQUFFLElBQUksR3dJM0xuQjtFQW5CSCxBQXFCRSxpQkFyQmUsQ0FxQmYsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUNkLFdBQVcsRUFBRSxDQUFDLEdBQ2Y7RUFFQSxBQUFELHdCQUFRLENBQUM7SUFDUCxNQUFNLEVBQUUsUUFBUTtJQUNoQixXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsY0FBYyxFQUFFLENBQUM7SUFDakIsS0FBSyxFMUl6QkssT0FBTyxHMEkwQmxCO0VBR0EsQUFBRCx3QkFBUSxDQUFDO0lBQ1AsYUFBYSxFQUFFLElBQUksR0FDcEI7RUFFQSxBQUFELHdCQUFRLENBQUM7SUFDUCxPQUFPLEVBQUUsS0FBSztJQUNkLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLENBQUM7SUFDZCxLQUFLLEUxSXpDSyxPQUFPLEcwSTBDbEI7RUFFQSxBQUFELDJCQUFXLENBQUM7SUFDVixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLFNBQVMsRUFBRSxJQUFJO0lBQ2YsR0FBRyxFQUFFLElBQUksR0FDVjtFQU1BLEFBQUQsdUJBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxLQUFLO0lBQ2QsSUFBSSxFQUFFLFFBQVEsR0F3RWY7SUExRUEsQUFJQyx1QkFKSyxDQUlMLFdBQVcsQ0FBQztNQUNWLFFBQVEsRUFBRSxRQUFRO01BQ2xCLFVBQVUsRUFBRSxVQUFVO01BQ3RCLEtBQUssRUFBRSxLQUFLO01BQ1osU0FBUyxFQUFFLElBQUk7TUFDZixNQUFNLEVBQUUsSUFBSTtNQUNaLFVBQVUsRUFBRSxJQUFJO01BQ2hCLFVBQVUsRUFBRSxJQUFJO01BQ2hCLGFBQWEsRUFBRSxDQUFDO01BQ2hCLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDMUl2RVQsT0FBTztNMEl3RWYsYUFBYSxFQUFFLEdBQUc7TUFDbEIsVUFBVSxFQUFFLE9BQU8sR0FDcEI7SUFoQkYsQUFrQkMsdUJBbEJLLENBa0JMLFdBQVcsQ0FBQyxLQUFLLENBQUM7TUFDaEIsVUFBVSxFQUFFLFVBQVU7TUFDdEIsS0FBSyxFQUFFLElBQUk7TUFDWCxNQUFNLEVBQUUsSUFBSTtNQUNaLFVBQVUsRUFBRSxDQUFDO01BQ2IsVUFBVSxFQUFFLElBQUk7TUFDaEIsT0FBTyxFQUFFLGFBQWE7TUFDdEIsTUFBTSxFQUFFLENBQUM7TUFDVCxhQUFhLEVBQUUsR0FBRztNQUNsQixVQUFVLEVBQUUsV0FBVztNQUN2QixXQUFXLEVBQUUscUJBQXFCO01BQ2xDLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLElBQUk7TUFDakIsV0FBVyxFQUFFLENBQUM7TUFDZCxLQUFLLEUxSXJGRyxPQUFPO00wSXNGZixPQUFPLEVBQUUsQ0FBQztNQUNWLE1BQU0sRUFBRSxPQUFPLEdBQ2hCO0lBbkNGLEFBd0NDLHVCQXhDSyxDQXdDTCxXQUFXLENBQUMsV0FBVyxDQUFDO01BQ3RCLFFBQVEsRUFBRSxRQUFRO01BQ2xCLEdBQUcsRUFBRSxDQUFDO01BQ04sS0FBSyxFQUFFLENBQUM7TUFDUixPQUFPLEVBQUUsSUFBSTtNQUNiLFdBQVcsRUFBRSxNQUFNO01BQ25CLGVBQWUsRUFBRSxNQUFNO01BQ3ZCLEtBQUssRUFBRSxJQUFJO01BQ1gsU0FBUyxFQUFFLElBQUk7TUFDZixTQUFTLEVBQUUsSUFBSTtNQUNmLE1BQU0sRUFBRSxJQUFJO01BQ1osVUFBVSxFQUFFLENBQUM7TUFDYixVQUFVLEVBQUUsSUFBSTtNQUNoQixNQUFNLEVBQUUsQ0FBQztNQUNULGFBQWEsRUFBRSxDQUFDO01BQ2hCLGdCQUFnQixFQUFFLFdBQVc7TUFDN0IsZ0JBQWdCLEVBdklTLGdqRUFBZ2pFO01Bd0l6a0UsaUJBQWlCLEVBQUUsU0FBUztNQUM1QixtQkFBbUIsRUFBRSxNQUFNO01BQzNCLGVBQWUsRUFBRSxTQUFTO01BQzFCLE1BQU0sRUFBRSxPQUFPLEdBS2hCO01BakVGLEFBOERHLHVCQTlERyxDQXdDTCxXQUFXLENBQUMsV0FBVyxDQXNCckIsQ0FBQyxDQUFDO1FBQ0EsT0FBTyxFQUFFLElBQUksR0FDZDtJQWhFSixBQW1FQyx1QkFuRUssQUFtRUosY0FBYyxDQUFDLFdBQVcsQ0FBQztNQUMxQixVQUFVLEUxSXJIRixPQUFPLEcwSTBIaEI7TUF6RUYsQUFzRUcsdUJBdEVHLEFBbUVKLGNBQWMsQ0FBQyxXQUFXLENBR3pCLFdBQVcsQ0FBQztRQUNWLGdCQUFnQixFQXJKYSxnakVBQWdqRSxHQXNKOWtFO0VBSUosQUFBRCw0QkFBWSxDQUFDO0lBQ1gsSUFBSSxFQUFFLFFBQVE7SUFDZCxPQUFPLEVBQUUsV0FBVztJQUNwQixXQUFXLEVBQUUsTUFBTTtJQUNuQixVQUFVLEVBQUUsSUFBSSxHQUNqQjtFQUVBLEFBQUQsdUJBQU8sQ0FBQztJQUNOLFNBQVMsRUFBRSxJQUFJO0lBQ2YsS0FBSyxFMUk1SUssT0FBTztJMEk2SWpCLFdBQVcsRUFBRSxNQUFNLEdBQ3BCO0VBSUEsQUFBRCxnQ0FBZ0IsQUFBQSxvQkFBb0IsQ0FBQztJQUNuQyxPQUFPLEVBQUUsWUFBWTtJQUNyQixJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxLQUFLO0lBQ1osTUFBTSxFQUFFLElBQUk7SUFDWixhQUFhLEVBQUUsR0FBRyxHQUNuQjtFQUVBLEFBQUQscUNBQXFCLENBQUM7SUFDcEIsSUFBSSxFQUFFLFFBQVE7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osYUFBYSxFQUFFLEdBQUcsR0FDbkI7RUFJQSxBQUFELDBCQUFVLENBQUM7SUFDVCxVQUFVLEVBQUUsVUFBVTtJQUN0QixLQUFLLEVBQUUsS0FBSztJQUNaLFNBQVMsRUFBRSxJQUFJO0lBQ2YsYUFBYSxFQUFFLElBQUk7SUFDbkIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEMxSXRMUCxPQUFPO0kwSXVMakIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFMUkxTEEsT0FBTyxHMEkyTGxCO0VBRUEsQUFBRCxnQ0FBZ0IsQ0FBQztJQUNmLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsS0FBSyxFMUkvS0ssT0FBTyxHMElvTGxCO0lBUkEsQUFLQyxnQ0FMYyxDQUtkLE1BQU0sQ0FBQztNQUNMLFdBQVcsRUFBRSxHQUFHLEdBQ2pCO0VBR0YsQUFBRCwrQkFBZSxDQUFDO0lBQ2QsTUFBTSxFQUFFLENBQUM7SUFDVCxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLEtBQUssRTFJNUxLLE9BQU8sRzBJNkxsQjtFQUVBLEFBQUQsbUNBQW1CLENBQUM7SUFDbEIsVUFBVSxFQUFFLFVBQVU7SUFDdEIsS0FBSyxFQUFFLEtBQUs7SUFDWixTQUFTLEVBQUUsSUFBSTtJQUNmLGFBQWEsRUFBRSxJQUFJO0lBQ25CLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDMUlsTlAsT0FBTztJMEltTmpCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRTFJdE5BLE9BQU8sRzBJdU5sQjtFQUVBLEFBQUQseUNBQXlCLENBQUM7SUFDeEIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsR0FBRztJQUNWLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLE1BQU0sRUFBRSxJQUFJO0lBQ1osYUFBYSxFQUFFLEdBQUc7SUFDbEIsYUFBYSxFQUFFLEdBQUcsR0FDbkI7RUFJQSxBQUFELHdDQUF3QixDQUFDO0lBQ3ZCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsY0FBYyxFQUFFLE1BQU07SUFDdEIsR0FBRyxFQUFFLENBQUMsR0FDUDtFQUVBLEFBQUQsd0NBQXdCLENBQUM7SUFDdkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osYUFBYSxFQUFFLEdBQUcsR0FLbkI7SUFIRSxBQUFELCtDQUFRLENBQUM7TUFDUCxLQUFLLEVBQUUsR0FBRyxHQUNYO0VBSUYsQUFBRCx5QkFBUyxDQUFDO0lBQ1IsYUFBYSxFQUFFLElBQUk7SUFDbkIsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLEtBQUssRTFJdFBLLE9BQU8sRzBJdVBsQjtFQUVBLEFBQUQsMkJBQVcsQ0FBQztJQUNWLGFBQWEsRUFBRSxJQUFJLEdBQ3BCO0VBRUEsQUFBRCxzQ0FBc0IsQ0FBQztJQUNyQixhQUFhLEVBQUUsR0FBRztJQUNsQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLEtBQUssRTFJelBLLE9BQU8sRzBJMFBsQjtFQUdBLEFBQUQsd0JBQVEsQ0FBQztJQUNQLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsU0FBUyxFQUFFLElBQUk7SUFDZixHQUFHLEVBQUUsSUFBSSxHQUNWO0VBRUEsQUFBRCx1QkFBTyxDQUFDO0lBQ04sT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsVUFBVSxFQUFFLFVBQVU7SUFDdEIsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLE9BQU8sRUFBRSxLQUFLO0lBQ2QsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEMxSWhSUCxPQUFPO0kwSWlSakIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLE9BQU87SUFDbkIsVUFBVSxFMUl4T0EsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLHNCQUFzQjtJMEl5TzVDLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFMUloUkssT0FBTztJMElpUmpCLE1BQU0sRUFBRSxPQUFPLEdBZWhCO0lBOUJBLEFBaUJDLHVCQWpCSyxBQWlCSixNQUFNLENBQUM7TUFDTixZQUFZLEUxSWxTSixPQUFPLEcwSW1TaEI7SUFFQSxBQUFELCtCQUFTLENBQUM7TUFDUixZQUFZLEUxSW5TSixPQUFPO00wSW9TZixVQUFVLEUxSXBTRixPQUFPO00wSXFTZixLQUFLLEVBQUUsT0FBTyxHQUtmO01BUkEsQUFLQywrQkFMTyxBQUtOLE1BQU0sQ0FBQztRQUNOLFlBQVksRTFJeFNOLE9BQU8sRzBJeVNkO0VBS0osQUFBRCw4QkFBYyxDQUFDO0lBQ2IsTUFBTSxFQUFFLFdBQVc7SUFDbkIsVUFBVSxFQUFFLElBQUksR0FDakI7RUFJQSxBQUFELHVCQUFPLENBQUM7SUFDTixPQUFPLEVBQUUsSUFBSTtJQUNiLHFCQUFxQixFQUFFLHlCQUF5QjtJQUNoRCxVQUFVLEVBQUUsVUFBVTtJQUN0QixLQUFLLEVBQUUsS0FBSztJQUNaLFNBQVMsRUFBRSxJQUFJO0lBQ2YsTUFBTSxFQUFFLEtBQUs7SUFDYixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQzFJdlRQLE9BQU87STBJd1RqQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsT0FBTztJQUNuQixVQUFVLEUxSS9RQSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsc0JBQXNCO0kwSWdSNUMsUUFBUSxFQUFFLE1BQU0sR0FDakI7RUFJQSxBQUFELDJCQUFXLENBQUM7SUFDVixPQUFPLEVBQUUsSUFBSTtJQUNiLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLFNBQVMsRUFBRSxDQUFDLEdBS2I7SUFSQSxBQUtDLDJCQUxTLEdBQVYsMkJBQVUsQ0FLSDtNQUNKLFdBQVcsRUFBRSxHQUFHLENBQUMsS0FBSyxDMUl0VWQsT0FBTyxHMEl1VWhCO0VBR0YsQUFBRCw0QkFBWSxDQUFDO0lBQ1gsT0FBTyxFQUFFLFFBQVE7SUFDakIsVUFBVSxFQUFFLFVBQVU7SUFDdEIsYUFBYSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEMxSTdVZCxPQUFPO0kwSThVakIsVUFBVSxFMUk3VUEsT0FBTztJMEk4VWpCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsVUFBVSxFQUFFLE1BQU07SUFDbEIsS0FBSyxFMUk5VUssT0FBTyxHMElzVmxCO0lBaEJBLEFBYUMsNEJBYlUsR0FBWCw0QkFBVyxDQWFKO01BQ0osV0FBVyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEMxSXhWZCxPQUFPLEcwSXlWaEI7RUFLRixBQUFELDJCQUFXLEdBQUksNEJBQVcsQ0FBQztJQUN6QixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLElBQUksRUFBRSxRQUFRO0lBQ2QsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsS0FBSyxHQUNmO0VBRUEsQUFBRCw0QkFBWSxDQUFDO0lBQ1gsT0FBTyxFQUFFLElBQUk7SUFDYixJQUFJLEVBQUUsUUFBUTtJQUNkLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLEdBQUcsRUFBRSxHQUFHO0lBQ1IsVUFBVSxFQUFFLENBQUM7SUFDYixPQUFPLEVBQUUsT0FBTztJQUNoQixVQUFVLEVBQUUsSUFBSSxHQUNqQjtFQUVBLEFBQUQseUJBQVMsQ0FBQztJQUNSLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLGFBQWE7SUFDOUIsSUFBSSxFQUFFLFFBQVE7SUFDZCxVQUFVLEVBQUUsVUFBVTtJQUN0QixHQUFHLEVBQUUsR0FBRztJQUNSLE1BQU0sRUFBRSxJQUFJO0lBQ1osT0FBTyxFQUFFLEtBQUs7SUFDZCxhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEUxSXJZQSxPQUFPO0kwSXNZakIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixLQUFLLEUxSWxZSyxPQUFPLEcwSTJZbEI7SUF0QkEsQUFnQkMseUJBaEJPLEdBZ0JMLElBQUksQ0FBQztNQUNMLFNBQVMsRUFBRSxDQUFDO01BQ1osUUFBUSxFQUFFLE1BQU07TUFDaEIsV0FBVyxFQUFFLE1BQU07TUFDbkIsYUFBYSxFQUFFLFFBQVEsR0FDeEI7RUFHRixBQUFELGdDQUFnQixDQUFDO0lBQ2YsSUFBSSxFQUFFLFFBQVE7SUFDZCxNQUFNLEVBQUUsSUFBSTtJQUNaLE9BQU8sRUFBRSxDQUFDO0lBQ1YsTUFBTSxFQUFFLENBQUM7SUFDVCxVQUFVLEVBQUUsV0FBVztJQUN2QixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxDQUFDO0lBQ2QsS0FBSyxFMUlyWkssT0FBTztJMElzWmpCLE1BQU0sRUFBRSxPQUFPLEdBS2hCO0lBZEEsQUFXQyxnQ0FYYyxBQVdiLE1BQU0sQ0FBQztNQUNOLEtBQUssRTFJL1lHLE9BQU8sRzBJZ1poQjtFQUdGLEFBQUQsc0JBQU0sQ0FBQztJQUNMLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsSUFBSSxFQUFFLFFBQVE7SUFDZCxVQUFVLEVBQUUsVUFBVTtJQUN0QixHQUFHLEVBQUUsR0FBRztJQUNSLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsS0FBSztJQUNkLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDMUkzYVIsT0FBTztJMEk0YWpCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxXQUFXO0lBQ3ZCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFMUkvYUssT0FBTztJMElnYmpCLE1BQU0sRUFBRSxPQUFPLEdBYWhCO0lBN0JBLEFBa0JDLHNCQWxCSSxHQWtCRixJQUFJLEFBQUEsV0FBVyxDQUFDO01BQ2hCLFNBQVMsRUFBRSxDQUFDO01BQ1osUUFBUSxFQUFFLE1BQU07TUFDaEIsV0FBVyxFQUFFLE1BQU07TUFDbkIsYUFBYSxFQUFFLFFBQVEsR0FDeEI7SUF2QkYsQUF5QkMsc0JBekJJLEFBeUJILE1BQU0sQ0FBQztNQUNOLFlBQVksRTFJMWJKLE9BQU87TTBJMmJmLFVBQVUsRTFJL2JGLE9BQU8sRzBJZ2NoQjtFQUdGLEFBQUQsMkJBQVcsQ0FBQztJQUNWLElBQUksRUFBRSxRQUFRO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsQ0FBQyxHQUNmO0VBR0EsQUFBRCw0QkFBWSxDQUFDO0lBQ1gsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixTQUFTLEVBQUUsSUFBSTtJQUNmLEdBQUcsRUFBRSxJQUFJO0lBQ1QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsQ0FBQyxHQUNmO0VBRUEsQUFBRCw0QkFBWSxDQUFDO0lBQ1gsV0FBVyxFQUFFLEdBQUc7SUFDaEIsS0FBSyxFMUlwY0ssT0FBTyxHMElxY2xCO0VBRUEsQUFBRCwyQkFBVyxDQUFDO0lBQ1YsS0FBSyxFQXRlaUIsT0FBTyxHQXVlOUI7RUFFQSxBQUFELDRCQUFZLENBQUM7SUFDWCxTQUFTLEVBQUUsSUFBSTtJQUNmLEtBQUssRTFJL2NLLE9BQU8sRzBJZ2RsQjtFQUVBLEFBQUQsdUJBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLE1BQU0sRUFBRSxJQUFJO0lBQ1osT0FBTyxFQUFFLEdBQUc7SUFDWixNQUFNLEVBQUUsTUFBTTtJQUNkLE1BQU0sRUFBRSxDQUFDO0lBQ1QsVUFBVSxFQUFFLFdBQVc7SUFDdkIsS0FBSyxFMUl0ZUssT0FBTztJMEl1ZWpCLE1BQU0sRUFBRSxPQUFPLEdBS2hCO0lBZkEsQUFZQyx1QkFaSyxBQVlKLE1BQU0sQ0FBQztNQUNOLEtBQUssRTFJNWFNLE9BQU8sRzBJNmFuQjtFQUlGLEFBQUQsZ0NBQWdCLENBQUM7SUFDZixVQUFVLEVBQUUsSUFBSTtJQUNoQixhQUFhLEVBQUUsR0FBRztJQUNsQixXQUFXLEVBQUUscUJBQXFCO0lBQ2xDLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFMUl6ZUssT0FBTyxHMEkwZWxCO0VBRUEsQUFBRCwrQkFBZSxDQUFDO0lBQ2QsTUFBTSxFQUFFLFFBQVE7SUFDaEIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsR0FBRztJQUNoQixLQUFLLEUxSW5mSyxPQUFPLEcwSW9mbEI7RUFHQSxBQUFELHlCQUFTLENBQUM7SUFDUixPQUFPLEVBQUUsSUFBSTtJQUNiLHFCQUFxQixFQUFFLFdBQVc7SUFDbEMsR0FBRyxFQUFFLElBQUk7SUFDVCxNQUFNLEVBQUUsV0FBVyxHQUNwQjtFQUVBLEFBQUQsa0NBQWtCLENBQUM7SUFDakIsU0FBUyxFQUFFLENBQUM7SUFDWixVQUFVLEVBQUUsSUFBSSxHQUNqQjtFQUtBLEFBQUQsMkJBQVcsQ0FBQztJQUNWLE9BQU8sRUFBRSxJQUFJO0lBQ2IscUJBQXFCLEVBQUUseUJBQXlCO0lBQ2hELFVBQVUsRUFBRSxVQUFVO0lBQ3RCLEtBQUssRUFBRSxLQUFLO0lBQ1osU0FBUyxFQUFFLElBQUk7SUFDZixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQzFJaGhCUCxPQUFPO0kwSWloQmpCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxPQUFPO0lBQ25CLFFBQVEsRUFBRSxNQUFNLEdBQ2pCO0VBSUEsQUFBRCwyQkFBVyxDQUFFLDRCQUFXLENBQUM7SUFDdkIsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixVQUFVLEVBQUUsVUFBVTtJQUN0QixNQUFNLEVBQUUsSUFBSTtJQUNaLE9BQU8sRUFBRSxLQUFLO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsQ0FBQyxHQUNmO0VBRUEsQUFBRCwyQkFBVyxDQUFFLDRCQUFXLEdBQUksNEJBQVcsQ0FBQztJQUN0QyxXQUFXLEVBQUUsQ0FBQyxHQUNmO0VBRUEsQUFBRCxnQ0FBZ0IsQ0FBQztJQUNmLE9BQU8sRUFBRSxJQUFJO0lBQ2IsY0FBYyxFQUFFLE1BQU07SUFDdEIsZUFBZSxFQUFFLGFBQWE7SUFDOUIsR0FBRyxFQUFFLEdBQUc7SUFDUixVQUFVLEVBQUUsSUFBSTtJQUNoQixPQUFPLEVBQUUsT0FBTztJQUNoQixVQUFVLEVBQUUsR0FBRyxDQUFDLEtBQUssQzFJOWlCWCxPQUFPO0kwSStpQmpCLFdBQVcsRUFBRSxHQUFHLENBQUMsS0FBSyxDMUkvaUJaLE9BQU87STBJZ2pCakIsTUFBTSxFQUFFLE9BQU8sR0FvQmhCO0lBN0JBLEFBYUMsZ0NBYmMsQUFhYixVQUFXLENBQUEsTUFBTSxFQUFFO01BQ2xCLFdBQVcsRUFBRSxDQUFDLEdBQ2Y7SUFmRixBQWlCQyxnQ0FqQmMsQUFpQmIsTUFBTSxDQUFDO01BQ04sVUFBVSxFMUlwa0JGLE9BQU8sRzBJcWtCaEI7SUFFQSxBQUFELHlDQUFVLENBQUM7TUFDVCxVQUFVLEUxSW5qQkYsT0FBTztNMElvakJmLE1BQU0sRUFBRSxPQUFPLEdBS2hCO01BUEEsQUFJQyx5Q0FKUSxBQUlQLE1BQU0sQ0FBQztRQUNOLFVBQVUsRTFJdmpCSixPQUFPLEcwSXdqQmQ7RUFJSixBQUFELCtCQUFlLENBQUM7SUFDZCxTQUFTLEVBQUUsSUFBSTtJQUNmLEtBQUssRTFJcGtCSyxPQUFPLEcwSXFrQmxCO0VBRUEsQUFBRCx5Q0FBeUIsQ0FBRSwrQkFBYyxDQUFDO0lBQ3hDLEtBQUssRUFBRSxPQUFPLEdBQ2Y7RUFHQSxBQUFELGlDQUFpQixDQUFDO0lBQ2hCLE9BQU8sRUFBRSxLQUFLO0lBQ2QsV0FBVyxFQUFFLENBQUMsR0FDZjtFQUdBLEFBQUQsMENBQTBCLENBQUM7SUFDekIsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUUsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEMxSTlsQmxCLE9BQU8sRzBJK2xCbEI7RUFFQSxBQUFELHVCQUFPLENBQUM7SUFDTixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLFNBQVMsRUFBRSxJQUFJO0lBQ2YsR0FBRyxFQUFFLEdBQUc7SUFDUixVQUFVLEVBQUUsR0FBRyxHQUNoQjtFQUVBLEFBQUQsc0JBQU0sQ0FBQztJQUNMLE9BQU8sRUFBRSxLQUFLO0lBQ2QsVUFBVSxFQUFFLFVBQVU7SUFDdEIsS0FBSyxFQUFFLEdBQUc7SUFDVixNQUFNLEVBQUUsR0FBRztJQUNYLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRTFJL21CQSxPQUFPLEcwSThuQmxCO0lBYkUsQUFBRCw2QkFBUSxDQUFDO01BQ1AsVUFBVSxFMUl6bUJGLE9BQU8sRzBJMG1CaEI7SUFHQSxBQUFELDRCQUFPLENBQUM7TUFDTixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQzFJdm5CVCxPQUFPO00wSXduQmYsVUFBVSxFQUFFLFdBQVcsR0FDeEI7SUFFQSxBQUFELDZCQUFRLEFBQUEsNEJBQTRCLENBQWpCO01BQ2pCLFlBQVksRTFJbm5CSixPQUFPLEcwSW9uQmhCO0VBR0YsQUFBRCw0QkFBWSxDQUFDO0lBQ1gsU0FBUyxFQUFFLENBQUMsR0FDYjtFQUVBLEFBQUQsaUNBQWlCLENBQUM7SUFDaEIsYUFBYSxFQUFFLElBQUk7SUFDbkIsU0FBUyxFQUFFLElBQUk7SUFDZixLQUFLLEUxSTFuQkssT0FBTyxHMEkybkJsQjtFQUdBLEFBQUQsa0NBQWtCLENBQUM7SUFDakIsTUFBTSxFQUFFLFVBQVU7SUFDbEIsU0FBUyxFQUFFLElBQUk7SUFDZixLQUFLLEUxSWpvQkssT0FBTyxHMElrb0JsQjtFQUVBLEFBQUQsMkJBQVcsQ0FBQztJQUNWLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLGFBQWEsRUFBRSxJQUFJO0lBQ25CLE9BQU8sRUFBRSxtQkFBbUI7SUFDNUIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEMxSTlvQlAsT0FBTztJMEkrb0JqQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsT0FBTztJQUNuQixVQUFVLEUxSXRtQkEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixHMEk0bkI3QztJQXBCRSxBQUFELGtDQUFRLENBQUM7TUFDUCxVQUFVLEUxSXBwQkYsT0FBTztNMElxcEJmLFlBQVksRTFJcHBCSixPQUFPO00wSXFwQmYsVUFBVSxFQUFFLElBQUksR0FDakI7SUFLQSxBQUFELGtDQUFRLENBQUM7TUFDUCxPQUFPLEVBQUUsSUFBSTtNQUNiLFdBQVcsRUFBRSxNQUFNO01BQ25CLGVBQWUsRUFBRSxNQUFNO01BQ3ZCLFVBQVUsRUFBRSxJQUFJO01BQ2hCLE9BQU8sRUFBRSxTQUFTO01BQ2xCLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLElBQUk7TUFDakIsVUFBVSxFQUFFLE1BQU07TUFDbEIsS0FBSyxFMUlqcUJHLE9BQU8sRzBJa3FCaEI7RUFHRixBQUFELGtDQUFrQixDQUFDO0lBQ2pCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEdBQUcsRUFBRSxJQUFJO0lBQ1QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLE9BQU8sRUFBRSxDQUFDO0lBQ1YsTUFBTSxFQUFFLENBQUM7SUFDVCxVQUFVLEVBQUUsV0FBVztJQUN2QixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxDQUFDO0lBQ2QsS0FBSyxFMUkvcUJLLE9BQU87STBJZ3JCakIsTUFBTSxFQUFFLE9BQU8sR0FLaEI7SUFoQkEsQUFhQyxrQ0FiZ0IsQUFhZixNQUFNLENBQUM7TUFDTixLQUFLLEUxSWpyQkcsT0FBTyxHMElrckJoQjtFQUdGLEFBQUQsaUNBQWlCLENBQUM7SUFDaEIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixLQUFLLEUxSXpyQkssT0FBTyxHMEkwckJsQjtFQUVBLEFBQUQsZ0NBQWdCLENBQUM7SUFDZixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLFNBQVMsRUFBRSxJQUFJO0lBSWYsR0FBRyxFQUFFLFFBQVE7SUFFYixRQUFRLEVBQUUsTUFBTTtJQUNoQixTQUFTLEVBQUUsSUFBSTtJQUNmLEtBQUssRTFJenNCSyxPQUFPLEcwSTBzQmxCO0VBSUEsQUFBRCxnQ0FBZ0IsQ0FBQztJQUNmLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLElBQUksRUFBRSxRQUFRO0lBQ2QsR0FBRyxFQUFFLEdBQUc7SUFDUixXQUFXLEVBQUUsTUFBTSxHQUNwQjtFQU9BLEFBQUQsZ0NBQWdCLEFBQUEsUUFBUSxDQUFDO0lBQ3ZCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEdBQUcsRUFBRSxHQUFHO0lBQ1IsS0FBSyxFQUFFLGdCQUFnQjtJQUN2QixTQUFTLEVBQUUsZ0JBQWdCO0lBQzNCLFdBQVcsRUFBRSxDQUFDO0lBQ2QsS0FBSyxFQS92QmlCLE9BQU8sR0Fnd0I5QjtFQUVBLEFBQUQsZ0NBQWdCLENBQUM7SUFDZixPQUFPLEVBQUUsS0FBSztJQUNkLElBQUksRUFBRSxRQUFRLEdBQ2Y7RUFFQSxBQUFELGdDQUFnQixDQUFDO0lBQ2YsS0FBSyxFQUFFLE9BQU8sR0FDZjtFeElsakJDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztJd0k0VHpCLEFBQUQseUJBQVMsQ0F5UEc7TUFDUixxQkFBcUIsRUFBRSxjQUFjO01BQ3JDLEdBQUcsRUFBRSxJQUFJLEdBQ1Y7SUE5SEYsQUFBRCw0QkFBWSxDQWdJRztNQUNYLFNBQVMsRUFBRSxLQUFLLEdBQ2pCO0VBTUYsQUFBRCx3QkFBUSxDQUFDO0lBQ1AsYUFBYSxFQUFFLElBQUk7SUFDbkIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLE9BQU87SUFDbkIsU0FBUyxFQUFFLElBQUk7SUFDZixLQUFLLEUxSWx2QkssT0FBTyxHMEltdkJsQjtFQUtBLEFBQUQseUJBQVMsQ0FBQztJQUNSLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLGFBQWE7SUFDOUIsVUFBVSxFQUFFLFVBQVU7SUFDdEIsS0FBSyxFQUFFLEtBQUs7SUFDWixTQUFTLEVBQUUsSUFBSTtJQUNmLEdBQUcsRUFBRSxJQUFJLEdBQ1Y7RUFFQSxBQUFELHlCQUFTLENBQUM7SUFDUixPQUFPLEVBQUUsV0FBVztJQUNwQixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixVQUFVLEVBQUUsVUFBVTtJQUN0QixJQUFJLEVBQUUsUUFBUTtJQUNkLEdBQUcsRUFBRSxHQUFHO0lBQ1IsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsTUFBTTtJQUNmLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDMUloeUJQLE9BQU87STBJaXlCakIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFQUFFLE9BQU87SUFDbkIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsTUFBTTtJQUNuQixLQUFLLEUxSWh5QkssT0FBTztJMElpeUJqQixNQUFNLEVBQUUsT0FBTyxHQTBCaEI7SUExQ0EsQUFrQkMseUJBbEJPLEFBa0JOLFNBQVMsQ0FBQztNQUNULE9BQU8sRUFBRSxHQUFHO01BQ1osTUFBTSxFQUFFLE9BQU87TUFDZixjQUFjLEVBQUUsSUFBSSxHQUNyQjtJQUlBLEFBQUQsa0NBQVUsQ0FBQztNQUNULEtBQUssRUFBRSxLQUFLO01BQ1osT0FBTyxFQUFFLE1BQU07TUFDZixZQUFZLEUxSTN6QkosT0FBTztNMEk0ekJmLFVBQVUsRTFJNXpCRixPQUFPO00wSTZ6QmYsS0FBSyxFQUFFLE9BQU8sR0FNZjtNQVhBLEFBT0Msa0NBUFEsQUFPUCxNQUFNLENBQUM7UUFDTixZQUFZLEUxSWx3QkgsT0FBTztRMEltd0JoQixVQUFVLEUxSW53QkQsT0FBTyxHMElvd0JqQjtJQUdGLEFBQUQsK0JBQU8sQ0FBQztNQUNOLEtBQUssRUFBRSxLQUFLLEdBQ2I7RXhJam9CRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7SXdJMEd6QixBQUFELDhCQUFjLENBaWlCRztNQUNiLFVBQVUsRUFBRSxPQUFPLEdBQ3BCO0lBNWhCRixBQUFELHVCQUFPLENBOGhCRztNQUNOLHFCQUFxQixFQUFFLGNBQWM7TUFDckMsS0FBSyxFQUFFLElBQUk7TUFDWCxNQUFNLEVBQUUsSUFBSSxHQUNiO0lBbGhCRixBQUFELDJCQUFXLENBb2hCRztNQUNWLGNBQWMsRUFBRSxHQUFHO01BQ25CLFdBQVcsRUFBRSxNQUFNO01BQ25CLEdBQUcsRUFBRSxJQUFJO01BQ1QsT0FBTyxFQUFFLFFBQVEsR0FNbEI7TUE5aEJGLEFBS0MsMkJBTFMsR0FBViwyQkFBVSxDQTBoQkQ7UUFDSixXQUFXLEVBQUUsQ0FBQztRQUNkLFVBQVUsRUFBRSxHQUFHLENBQUMsS0FBSyxDMUk1MUJmLE9BQU8sRzBJNjFCZDtJQS9mSixBQUFELDJCQUFXLEdBQUksNEJBQVcsQ0FzZ0JHO01BQ3pCLE9BQU8sRUFBRSxLQUFLO01BQ2QsSUFBSSxFQUFFLFFBQVE7TUFDZCxNQUFNLEVBQUUsSUFBSTtNQUNaLE9BQU8sRUFBRSxDQUFDO01BQ1YsYUFBYSxFQUFFLENBQUM7TUFDaEIsVUFBVSxFQUFFLFdBQVc7TUFDdkIsV0FBVyxFQUFFLEdBQUc7TUFDaEIsVUFBVSxFQUFFLElBQUk7TUFDaEIsS0FBSyxFMUl2MkJHLE9BQU8sRzBJdzJCaEI7SUF2Z0JGLEFBQUQsNEJBQVksQ0F5Z0JHO01BQ1gsY0FBYyxFQUFFLEdBQUc7TUFDbkIsU0FBUyxFQUFFLElBQUk7TUFDZixlQUFlLEVBQUUsUUFBUTtNQUN6QixVQUFVLEVBQUUsT0FBTztNQUduQixTQUFTLEVBQUUsQ0FBQztNQUNaLFVBQVUsRUFBRSxDQUFDO01BQ2IsT0FBTyxFQUFFLENBQUMsR0FDWDtJQWplRixBQUFELHNCQUFNLENBbWVHO01BQ0wsS0FBSyxFQUFFLElBQUksR0FDWjtJQTVYRixBQUFELGtDQUFrQixDQWlZRztNQUNqQixVQUFVLEVBQUUsT0FBTyxHQUNwQjtFQUlILE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztJQTE0QjFCLEFBQUEsaUJBQWlCLENBQUM7TUEyNEJkLE9BQU8sRUFBRSxjQUFjLEdBWTFCO01BOTNCRSxBQUFELHdCQUFRLENBbzNCRztRQUNQLFNBQVMsRUFBRSxJQUFJLEdBQ2hCO01BOTFCRixBQUFELDJCQUFXLENBZzJCRztRQUNWLGNBQWMsRUFBRSxNQUFNO1FBQ3RCLFdBQVcsRUFBRSxVQUFVO1FBQ3ZCLEdBQUcsRUFBRSxHQUFHLEdBQ1Q7O0FDOTVCTCxBQUFBLFVBQVUsQUFBQSxJQUFLLENBQUEsY0FBYyxJQUFJLGFBQWEsQ0FBQztFQUM3QyxPQUFPLEVBQUUsSUFBSSxHQUNkOztBQU1ELEFBQUEsVUFBVSxHQUFHLEdBQUcsQUFBQSxJQUFLLENBUk4sY0FBYztBQVM3QixVQUFVLEdBQUcsR0FBRyxHQUFHLEdBQUcsQUFBQSxJQUFLLEdBQUUsY0FBYyxFQUFFO0VBQzNDLElBQUksRUFBRSxRQUFRO0VBQ2QsU0FBUyxFQUFFLENBQUMsR0FDYjs7QUFaYyxBQUFMLGNBQW1CLENBY2Q7RUFDYixRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsSUFBSTtFQUNiLFdBQVcsRUFBRSxPQUFPO0VBQ3BCLGVBQWUsRUFBRSxhQUFhO0VBQzlCLElBQUksRUFBRSxRQUFRO0VBSWQsTUFBTSxFQUFFLElBQUk7RUFDWixVQUFVLEVBQUUsT0FBTztFQUNuQixhQUFhLEVBQUUsR0FBRyxDQUFDLEtBQUssQzNJZlosT0FBTztFMklnQm5CLFdBQVcsRUFBRSxxQkFBcUIsR0F1Tm5DO0VBbE5FLEFBQUQsb0JBQU8sQ0FBQztJQUNOLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE9BQU87SUFJcEIsSUFBSSxFQUFFLFFBQVE7SUFDZCxTQUFTLEVBQUUsQ0FBQztJQUdaLFlBQVksRUFBRSxJQUFJO0lBQ2xCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLDBCQUEwQixFQUFFLEtBQUssR0FDbEM7RUFFQSxBQUFELG1CQUFNLENBQUM7SXpJcUtQLFNBQVMsRUFBRSxDQUFDO0lBQ1osVUFBVSxFQUFFLENBQUM7SUFDYixVQUFVLEVBQUUsSUFBSTtJQUNoQixjQUFjLEVBQUUsQ0FBQztJQUNqQixjQUFjLEVBQUUsSUFBSTtJeUl2S2xCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLElBQUk7SUFLVCxJQUFJLEVBQUUsUUFBUTtJQUNkLE1BQU0sRUFBRSxDQUFDO0lBQ1QsT0FBTyxFQUFFLE1BQU07SUFDZixNQUFNLEVBQUUsSUFBSTtJQUNaLE1BQU0sRUFBRSxDQUFDO0lBQ1QsWUFBWSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEMzSWJWLE9BQU87STJJY3BCLGFBQWEsRUFBRSxxQkFBcUI7SUFDcEMsYUFBYSxFQUFFLENBQUM7SUFDaEIsVUFBVSxFQUFFLFdBQVc7SUFDdkIsVUFBVSxFQUFFLElBQUk7SUFDaEIsTUFBTSxFQUFFLE9BQU87SUFDZixXQUFXLEVBQUUsTUFBTTtJQUNuQixVQUFVLEVBQUUsSUFBSTtJQUNoQixXQUFXLEVBQUUscUJBQXFCLEdBdUJuQztJQTdDQSxBQXdCQyxtQkF4QkksQUF3QkgsTUFBTSxDQUFDO01BQ04sVUFBVSxFQUFFLE9BQU8sR0FDcEI7SUFFQSxBQUFELDJCQUFTLENBQUM7TUFDUixtQkFBbUIsRTNJeEVYLE9BQU87TTJJeUVmLFVBQVUsRTNJNUVGLE9BQU8sRzJJMEZoQjtNQWhCQSxBQUlDLDJCQUpPLEFBSU4sTUFBTSxDQUFDO1FBQ04sVUFBVSxFM0kvRUosT0FBTyxHMklnRmQ7TUFORixBQVFDLDJCQVJPLENBUVAscUJBQXFCLEFBQUEsSUFBSyxDQUFBLDJCQUEyQixFQUFFO1FBQ3JELFVBQVUsRTNJaEZKLE9BQU87UTJJaUZiLEtBQUssRUFBRSxPQUFPLEdBQ2Y7TUFYRixBQWFDLDJCQWJPLENBYVAseUJBQXlCLENBQUM7UUFDeEIsS0FBSyxFM0lsRkMsT0FBTyxHMkltRmQ7RUFLSixBQUFELHFCQUFRLENBQUM7SUFDUCxPQUFPLEVBQUUsV0FBVztJQUNwQixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEUzSTdGQSxPQUFPO0kySThGakIsS0FBSyxFM0l0RkssT0FBTztJMkl1RmpCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLENBQUM7SUFDZCxjQUFjLEVBQUUsQ0FBQztJQUNqQixjQUFjLEVBQUUsSUFBSSxHQU9yQjtJQWpDNkIsQUFBTCwyQkFBZ0MsQ0E0Qi9DO01BQ04sVUFBVSxFQXhIUSxPQUFPO01BeUh6QixLQUFLLEUzSW5GRyxPQUFPO00ySW9GZixTQUFTLEVBQUUsSUFBSSxHQUNoQjtFQUdGLEFBQUQseUJBQVksQ0FBQztJQUNYLElBQUksRUFBRSxRQUFRO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsQ0FBQztJQUNqQixjQUFjLEVBQUUsSUFBSTtJQUNwQixLQUFLLEUzSTNHSyxPQUFPLEcySTRHbEI7RUFFQSxBQUFELDZCQUFnQixDQUFFLHlCQUFXLENBQUM7SUFDNUIsS0FBSyxFM0lsSEssT0FBTyxHMkltSGxCO0VBR0EsQUFBRCxvQkFBTyxDQUFDO0l6SStFUixTQUFTLEVBQUUsQ0FBQztJQUNaLFVBQVUsRUFBRSxDQUFDO0lBQ2IsVUFBVSxFQUFFLElBQUk7SUFDaEIsY0FBYyxFQUFFLENBQUM7SUFDakIsY0FBYyxFQUFFLElBQUk7SXlJakZsQixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLEdBQUcsRUFBRSxHQUFHO0lBQ1IsSUFBSSxFQUFFLFFBQVE7SUFDZCxNQUFNLEVBQUUsQ0FBQztJQUNULE9BQU8sRUFBRSxNQUFNO0lBQ2YsTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsQ0FBQztJQUNULGFBQWEsRUFBRSxDQUFDO0lBQ2hCLFVBQVUsRUFBRSxXQUFXO0lBQ3ZCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE1BQU0sRUFBRSxPQUFPO0lBQ2YsS0FBSyxFM0lwSUssT0FBTztJMklxSWpCLFdBQVcsRUFBRSxxQkFBcUI7SUFDbEMsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsQ0FBQztJQUNqQixjQUFjLEVBQUUsSUFBSSxHQU1yQjtJQTFCQSxBQXNCQyxvQkF0QkssQUFzQkosTUFBTSxDQUFDO01BQ04sS0FBSyxFM0kxSUcsT0FBTztNMkkySWYsVUFBVSxFQUFFLFdBQVcsR0FDeEI7RUFLRixBQUFELHlCQUFZLENBQUM7SUFDWCxJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUksR0FDYjtFQUlBLEFBQUQsMEJBQWEsQ0FBQztJQUNaLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLEdBQUcsRUFBRSxHQUFHLEdBQ1Q7RUFHQSxBQUFELG1CQUFNLENBQUM7SUFDTCxRQUFRLEVBQUUsUUFBUTtJQUNsQixHQUFHLEVBQUUsaUJBQWlCO0lBQ3RCLElBQUksRUFBRSxJQUFJO0lBQ1YsT0FBTyxFQUFFLEdBQUc7SUFDWixLQUFLLEVBQUUsS0FBSztJQUNaLFNBQVMsRUFBRSxrQkFBa0I7SUFDN0IsT0FBTyxFQUFFLElBQUk7SUFDYixVQUFVLEVBQUUsT0FBTztJQUNuQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBbE1hLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHNCQUFzQixHQThNekQ7SUF0QkEsQUFhQyxtQkFiSSxBQWFILE9BQU8sQ0FBQztNQUNQLE9BQU8sRUFBRSxFQUFFO01BQ1gsUUFBUSxFQUFFLFFBQVE7TUFDbEIsTUFBTSxFQUFFLElBQUk7TUFDWixJQUFJLEVBQUUsSUFBSTtNQUNWLE1BQU0sRUFBRSxxQkFBcUI7TUFDN0IsbUJBQW1CLEVBQUUsT0FBTztNQUM1QixnQkFBZ0IsRUFBRSxDQUFDLEdBQ3BCO0VBR0YsQUFBRCx5QkFBWSxDQUFDO0lBQ1gsYUFBYSxFQUFFLEdBQUc7SUFDbEIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEUzSTVMSyxPQUFPLEcySTZMbEI7RUFFQSxBQUFELHdCQUFXLENBQUM7SUFDVixhQUFhLEVBQUUsSUFBSTtJQUNuQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRTNJdE1LLE9BQU8sRzJJdU1sQjtFQUVBLEFBQUQsdUJBQVUsQ0FBQztJeklMWCxTQUFTLEVBQUUsQ0FBQztJQUNaLFVBQVUsRUFBRSxDQUFDO0lBQ2IsVUFBVSxFQUFFLElBQUk7SUFDaEIsY0FBYyxFQUFFLENBQUM7SUFDakIsY0FBYyxFQUFFLElBQUk7SXlJR2xCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLE1BQU0sRUFBRSxDQUFDO0lBQ1QsT0FBTyxFQUFFLFNBQVM7SUFDbEIsTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsQ0FBQztJQUNULGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRTNJL05BLE9BQU87STJJZ09qQixVQUFVLEVBQUUsSUFBSTtJQUNoQixNQUFNLEVBQUUsT0FBTztJQUNmLEtBQUssRUFBRSxPQUFPO0lBQ2QsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLGNBQWMsRUFBRSxJQUFJLEdBS3JCO0lBeEJBLEFBcUJDLHVCQXJCUSxBQXFCUCxNQUFNLENBQUM7TUFDTixVQUFVLEUzSTdLQyxPQUFPLEcySThLbkI7O0F6SXpDRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RXlJK0N2QixBQUFELG1CQUFNLEVBQ0wsb0JBQU0sQ0FBQztJQUNOLE9BQU8sRUFBRSxNQUFNLEdBQ2hCOztBekkvQ0QsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0V5STFLekIsQUFBRCxvQkFBTyxDQStORztJQUNOLFlBQVksRUFBRSxHQUFHLEdBQ2xCO0VBbE5GLEFBQUQsbUJBQU0sQ0FvTkc7SUFDTCxHQUFHLEVBQUUsR0FBRztJQUNSLE9BQU8sRUFBRSxNQUFNLEdBQ2hCO0VBaklGLEFBQUQsb0JBQU8sQ0FtSUc7SUFDTixPQUFPLEVBQUUsTUFBTSxHQUNoQjtFQS9GRixBQUFELDBCQUFhLENBaUdHO0lBQ1osT0FBTyxFQUFFLElBQUksR0FDZDtFQTdGRixBQUFELG1CQUFNLENBK0ZHO0lBQ0wsSUFBSSxFQUFFLElBQUk7SUFDVixLQUFLLEVBQUUsSUFBSTtJQUNYLEtBQUssRUFBRSxJQUFJO0lBQ1gsU0FBUyxFQUFFLElBQUksR0FDaEI7O0FBMEJMLEFBQUEsV0FBVyxDQUFDO0VBQ1YsUUFBUSxFQUFFLFFBQVE7RUFDbEIsT0FBTyxFQUFFLElBQUk7RUFDYixjQUFjLEVBQUUsTUFBTTtFQUN0QixLQUFLLEVBQUUsS0FBaUQ7RUFLeEQsU0FBUyxFQUFFLGtCQUFnRDtFQUMzRCxPQUFPLEVBZFcsSUFBSTtFQWV0QixVQUFVLEVBQUUsT0FBTztFQUNuQixhQUFhLEVBQUUsR0FBRztFQUNsQixVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCO0VBQzlDLFdBQVcsRUFBRSxxQkFBcUIsR0F1R25DO0VBckdFLEFBQUQsa0JBQVEsQ0FBQztJekkzR1QsU0FBUyxFQUFFLENBQUM7SUFDWixVQUFVLEVBQUUsQ0FBQztJQUNiLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLGNBQWMsRUFBRSxJQUFJO0l5SXlHbEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsR0FBRyxFQUFFLElBQUk7SUFDVCxLQUFLLEVBQUUsSUFBSTtJQUNYLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLE1BQU0sRUFBRSxDQUFDO0lBQ1QsT0FBTyxFQUFFLENBQUM7SUFDVixNQUFNLEVBQUUsQ0FBQztJQUNULGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxXQUFXO0lBQ3ZCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLEtBQUssRTNJalVLLE9BQU87STJJa1VqQixNQUFNLEVBQUUsT0FBTyxHQU1oQjtJQXZCQSxBQW1CQyxrQkFuQk0sQUFtQkwsTUFBTSxDQUFDO01BQ04sVUFBVSxFQUFFLFdBQVc7TUFDdkIsS0FBSyxFM0lsVUcsT0FBTyxHMkltVWhCO0VBR0YsQUFBRCxrQkFBUSxDQUFDO0lBQ1AsTUFBTSxFQUFFLFVBQVU7SUFDbEIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsQ0FBQztJQUNqQixjQUFjLEVBQUUsSUFBSTtJQUNwQixLQUFLLEUzSTdVSyxPQUFPLEcySThVbEI7RUFFQSxBQUFELGlCQUFPLENBQUM7SUFDTixLQUFLLEVBdkRlLEtBQUs7SUF3RHpCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsTUFBTSxFQUFFLFFBQVE7SUFDaEIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsQ0FBQztJQUNqQixLQUFLLEUzSTFWSyxPQUFPLEcySTJWbEI7RUFFQSxBQUFELG9CQUFVLENBQUM7SUFDVCxPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxRQUFRO0lBQ3pCLEdBQUcsRUFBRSxJQUFJO0lBQ1QsVUFBVSxFQUFFLElBQUksR0FDakI7RUFFQSxBQUFELGdCQUFNLENBQUM7SXpJaktQLFNBQVMsRUFBRSxDQUFDO0lBQ1osVUFBVSxFQUFFLENBQUM7SUFDYixVQUFVLEVBQUUsSUFBSTtJQUNoQixjQUFjLEVBQUUsQ0FBQztJQUNqQixjQUFjLEVBQUUsSUFBSTtJeUkrSmxCLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLEtBQUssRUFBRSxJQUFJO0lBR1gsTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsQ0FBQztJQUNULGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLE1BQU0sRUFBRSxPQUFPO0lBQ2YsV0FBVyxFQUFFLHFCQUFxQjtJQUNsQyxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHLEdBK0JqQjtJQTVCRSxBQUFELHVCQUFRLENBQUM7TUFDUCxHQUFHLEVBQUUsSUFBSTtNQUNULFVBQVUsRUFBRSxJQUFJO01BQ2hCLE9BQU8sRUFBRSxTQUFTO01BQ2xCLFdBQVcsRUFBRSxJQUFJO01BQ2pCLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDQWxHSCxPQUFPO01BbUdyQixnQkFBZ0IsRUFBRSxPQUFPO01BQ3pCLEtBQUssRTNJNVhHLE9BQU8sRzJJaVloQjtNQVpBLEFBU0MsdUJBVE0sQUFTTCxNQUFNLENBQUM7UUFDTixnQkFBZ0IsRUFBRSxPQUFPLEdBQzFCO0lBSUYsQUFBRCx5QkFBVSxDQUFDO01BQ1QsR0FBRyxFQUFFLElBQUk7TUFDVCxNQUFNLEVBQUUsSUFBSTtNQUNaLE9BQU8sRUFBRSxTQUFTO01BQ2xCLFdBQVcsRUFBRSxJQUFJO01BQ2pCLE1BQU0sRUFBRSxDQUFDO01BQ1QsZ0JBQWdCLEUzSXhaUixPQUFPO00ySXlaZixLQUFLLEVBQUUsT0FBTyxHQUtmO01BWkEsQUFTQyx5QkFUUSxBQVNQLE1BQU0sQ0FBQztRQUNOLGdCQUFnQixFM0k5VlAsT0FBTyxHMkkrVmpCOztBeklwTkgsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0V5SWtHNUIsQUFBQSxXQUFXLENBd0hHO0lBQ1YsT0FBTyxFQUFFLElBQUksR0FhZDtJQXRIQSxBQUFELGtCQUFRLENBMkdHO01BQ1AsR0FBRyxFQUFFLElBQUk7TUFDVCxLQUFLLEVBQUUsSUFBSSxHQUNaO0lBaEVGLEFBQUQsb0JBQVUsQ0FrRUc7TUFHVCxTQUFTLEVBQUUsSUFBSTtNQUNmLFVBQVUsRUFBRSxJQUFJLEdBQ2pCOztBQzdhTCxBQUFBLFVBQVUsQUFBQSxRQUFRLENBQUM7RUFDakIsT0FBTyxFQUFFLElBQUk7RUFDYixJQUFJLEVBQUUsUUFBUTtFQUNkLFNBQVMsRUFBRSxDQUFDO0VBT1osVUFBVSxFQUFFLE9BQU87RUFDbkIsVUFBVSxFNUlHRSxPQUFPLEc0SUZwQjs7QUFFRCxBQUFBLFFBQVEsQ0FBQztFQUNQLFdBQVcsRUFBRSxxQkFBcUIsR0E2Sm5DO0VBOUpELEFBS0UsUUFMTSxDQUtOLE1BQU0sQ0FBQztJMUkwTFAsU0FBUyxFQUFFLENBQUM7SUFDWixVQUFVLEVBQUUsQ0FBQztJQUNiLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLGNBQWMsRUFBRSxJQUFJLEcwSTVMbkI7RUFQSCxBQVNFLFFBVE0sQ0FTTixNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ2QsV0FBVyxFQUFFLENBQUMsR0FDZjtFQUVBLEFBQUQsY0FBTyxDQUFDO0lBQ04sSUFBSSxFQUFFLFFBQVE7SUFDZCxTQUFTLEVBQUUsQ0FBQztJQUNaLEtBQUssRUFBRSxJQUFJO0lBQ1gsU0FBUyxFQUFFLEtBQUs7SUFDaEIsTUFBTSxFQUFFLE1BQU07SUFDZCxPQUFPLEVBQUUsY0FBYztJQUN2QixVQUFVLEVBQUUsVUFBVSxHQUN2QjtFQUVBLEFBQUQsZUFBUSxDQUFDO0lBQ1AsTUFBTSxFQUFFLFFBQVE7SUFDaEIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEU1SWhDSyxPQUFPLEc0SWlDbEI7RUFLQSxBQUFELGVBQVEsQ0FBQztJQUNQLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLFFBQVE7SUFDckIsR0FBRyxFQUFFLEdBQUc7SUFDUixhQUFhLEVBQUUsSUFBSSxHQUNwQjtFQUVBLEFBQUQsY0FBTyxDQUFDO0lBQ04sSUFBSSxFQUFFLEtBQUs7SUFDWCxTQUFTLEVBQUUsQ0FBQztJQUNaLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDQTFFYixPQUFPO0lBMkVsQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRUFBRSxPQUFPLEdBV2Y7SUFURSxBQUFELHVCQUFVLENBQUM7TUFDVCxtQkFBbUIsRTVJckVYLE9BQU87TTRJc0VmLEtBQUssRTVJekRHLE9BQU8sRzRJMERoQjtJQUdBLEFBQUQsdUJBQVUsQ0FBQztNQUNULFdBQVcsRUFBRSxHQUFHLEdBQ2pCO0VBSUYsQUFBRCxpQkFBVSxDQUFDO0lBQ1QsYUFBYSxFQUFFLElBQUksR0FDcEI7RUFFQSxBQUFELHVCQUFnQixDQUFDO0lBQ2YsYUFBYSxFQUFFLElBQUk7SUFDbkIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixjQUFjLEVBQUUsTUFBTTtJQUN0QixjQUFjLEVBQUUsU0FBUztJQUN6QixLQUFLLEU1SS9FSyxPQUFPLEc0SWdGbEI7RUFFQSxBQUFELGtCQUFXLEdBQUksa0JBQVUsQ0FBQztJQUN4QixVQUFVLEVBQUUsSUFBSSxHQUNqQjtFQUdBLEFBQUQsZ0JBQVMsQ0FBQztJQUNSLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLGFBQWE7SUFDOUIsR0FBRyxFQUFFLElBQUk7SUFDVCxVQUFVLEVBQUUsSUFBSSxHQUNqQjtFQUdBLEFBQUQsd0JBQWlCLENBQUUsZ0JBQVEsQ0FBQztJQUMxQixJQUFJLEVBQUUsUUFBUSxHQUNmO0VBRUEsQUFBRCxnQkFBUyxDQUFDO0lBQ1IsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsR0FBRyxFQUFFLElBQUk7SUFDVCxPQUFPLEVBQUUsU0FBUztJQUNsQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQzVJOUdQLE9BQU87STRJK0dqQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsT0FBTztJQUNuQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRTVJOUdLLE9BQU87STRJK0dqQixNQUFNLEVBQUUsT0FBTyxHQXNCaEI7SUFwQkUsQUFBRCx5QkFBVSxDQUFDO01BQ1QsWUFBWSxFNUkvSEosT0FBTztNNElnSWYsVUFBVSxFNUloSUYsT0FBTztNNElpSWYsS0FBSyxFQUFFLE9BQU8sR0FNZjtNQVRBLEFBS0MseUJBTFEsQUFLUCxNQUFNLENBQUM7UUFDTixZQUFZLEU1SXRFSCxPQUFPO1E0SXVFaEIsVUFBVSxFNUl2RUQsT0FBTyxHNEl3RWpCO0lBdkJKLEFBNEJDLGdCQTVCTyxDQTRCTixBQUFBLFFBQUMsQUFBQSxHQTVCSCxnQkFBUSxDQTZCTixBQUFBLFFBQUMsQUFBQSxDQUFTLE1BQU0sQ0FBQztNQUNoQixZQUFZLEVBMUpHLE9BQU87TUEySnRCLFVBQVUsRUEzSkssT0FBTztNQTRKdEIsS0FBSyxFQUFFLE9BQU87TUFDZCxNQUFNLEVBQUUsT0FBTyxHQUNoQjtFQUdGLEFBQUQsc0JBQWUsQ0FBQztJQUNkLElBQUksRUFBRSxRQUFRLEdBQ2Y7RTFJZ0RDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztJMEl4S3pCLEFBQUQsY0FBTyxDQTJIRztNQUNOLE9BQU8sRUFBRSxjQUFjLEdBQ3hCO0lBbkhGLEFBQUQsZUFBUSxDQXFIRztNQUNQLFNBQVMsRUFBRSxJQUFJO01BQ2YsV0FBVyxFQUFFLElBQUksR0FDbEI7SUF0R0YsQUFBRCxjQUFPLENBd0dHO01BQ04sU0FBUyxFQUFFLElBQUksR0FDaEI7SUFsRUYsQUFBRCxnQkFBUyxDQW9FRztNQUNSLGNBQWMsRUFBRSxjQUFjO01BQzlCLFdBQVcsRUFBRSxPQUFPLEdBQ3JCO0lBMURGLEFBQUQsZ0JBQVMsQ0E0REc7TUFDUixLQUFLLEVBQUUsSUFBSSxHQUNaOztBQU1GLEFBQUQsd0JBQVMsQ0FBQztFQUNSLGFBQWEsRUFBRSxJQUFJO0VBQ25CLFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLEdBQUc7RUFDaEIsV0FBVyxFQUFFLElBQUk7RUFDakIsS0FBSyxFNUkzS0ssT0FBTyxHNEk0S2xCOztBQUVBLEFBQUQsc0JBQU8sQ0FBQztFQUNOLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLEtBQUssRTVJbkxLLE9BQU8sRzRJb0xsQjs7QUFHSCxBQUFBLFVBQVUsQ0FBQztFQUNULE9BQU8sRUFBRSxJQUFJO0VBQ2IsV0FBVyxFQUFFLE1BQU07RUFDbkIsR0FBRyxFQUFFLElBQUk7RUFDVCxNQUFNLEVBQUUsQ0FBQztFQUNULE9BQU8sRUFBRSxLQUFLO0VBQ2QsV0FBVyxFQUFFLEdBQUc7RUFDaEIsTUFBTSxFQUFFLE9BQU8sR0ErRWhCO0VBN0VFLEFBQUQsa0JBQVMsQ0FBQztJQUNSLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLE9BQU8sRUFBRSxDQUFDLEdBQ1g7RUFFQSxBQUFELG9CQUFXLENBQUM7SUFDVixNQUFNLEVBQUUsT0FBTyxHQWlCaEI7SUFsQkEsQUFHQyxvQkFIUyxDQUdULGlCQUFpQixDQUFDO01BQ2hCLFlBQVksRTVJNU1KLE9BQU8sRzRJNk1oQjtJQUxGLEFBT0Msb0JBUFMsQ0FPVCxpQkFBaUIsQ0FBQztNQUNoQixnQkFBZ0IsRUEzTkcsd1FBQXdRLEdBNE41UjtJQVRGLEFBV0Msb0JBWFMsQ0FXVCwwQkFBMEIsQ0FBQztNQUN6QixnQkFBZ0IsRUE5TlAsd05BQXdOLEVBRDlNLHdRQUF3USxHQWdPNVI7SUFiRixBQWVDLG9CQWZTLENBZVQsZ0JBQWdCLENBQUM7TUFDZixLQUFLLEVBQUUsT0FBTyxHQUNmO0VBR0YsQUFBRCxnQkFBTyxDQUFDO0lBQ04sU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEU1STFOSyxPQUFPLEc0STJObEI7RUFVQSxBQUFELGlCQUFRLENBQUM7SUFDUCxJQUFJLEVBQUUsUUFBUTtJQUNkLE9BQU8sRUFBRSxLQUFLO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUEzUEUsd1FBQXdRLENBMlB6UCxXQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FLeEQ7SUFIRSxBQUFELDBCQUFVLENBQUM7TUFDVCxnQkFBZ0IsRUE1UFAsd05BQXdOLEVBRnZOLHdRQUF3USxHQStQblI7RUFHRixBQUFELGlCQUFRLENBQUM7SUFDUCxJQUFJLEVBQUUsUUFBUTtJQUNkLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQzVJcFFQLE9BQU87STRJcVFqQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsT0FBTyxHQWlCcEI7SUFmRSxBQUFELDBCQUFVLENBQUM7TUFDVCxVQUFVLEU1SXpRRixPQUFPLEc0SXNSaEI7TUFkQSxBQUdDLDBCQUhRLEFBR1AsT0FBTyxDQUFDO1FBQ1AsT0FBTyxFQUFFLEVBQUU7UUFDWCxRQUFRLEVBQUUsUUFBUTtRQUNsQixHQUFHLEVBQUUsR0FBRztRQUNSLElBQUksRUFBRSxHQUFHO1FBQ1QsS0FBSyxFQUFFLEdBQUc7UUFDVixNQUFNLEVBQUUsR0FBRztRQUNYLE1BQU0sRUFBRSxhQUFhO1FBQ3JCLFlBQVksRUFBRSxXQUFXO1FBQ3pCLFNBQVMsRUFBRSxhQUFhLEdBQ3pCOztBQU1QLEFBQUEsU0FBUyxDQUFDO0VBQ1IsT0FBTyxFQUFFLElBQUk7RUFDYixjQUFjLEVBQUUsTUFBTTtFQUN0QixHQUFHLEVBQUUsSUFBSSxHQUNWOztBQUdFLEFBQUQsZUFBUSxDQUFDO0VBQ1AsT0FBTyxFQUFFLEtBQUs7RUFDZCxhQUFhLEVBQUUsR0FBRztFQUNsQixTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLEtBQUssRTVJN1JLLE9BQU8sRzRJOFJsQjs7QUFFQSxBQUFELGFBQU0sQ0FBQztFQUNMLE9BQU8sRUFBRSxJQUFJO0VBQ2IsV0FBVyxFQUFFLE1BQU07RUFDbkIsR0FBRyxFQUFFLElBQUksR0FDVjs7QUFFQSxBQUFELGdCQUFTLENBQUM7RUFDUixRQUFRLEVBQUUsUUFBUTtFQUNsQixJQUFJLEVBQUUsS0FBSztFQUNYLFNBQVMsRUFBRSxDQUFDLEdBb0NiO0VBdkNBLEFBS0MsZ0JBTE8sQ0FLUCxNQUFNLENBQUM7SUFDTCxVQUFVLEVBQUUsSUFBSTtJQUNoQixrQkFBa0IsRUFBRSxJQUFJO0lBQ3hCLGVBQWUsRUFBRSxJQUFJO0lBQ3JCLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsYUFBYTtJQUN0QixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQzVJdFRULE9BQU87STRJdVRmLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxPQUFPO0lBQ25CLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFNUl0VEcsT0FBTztJNEl1VGYsTUFBTSxFQUFFLE9BQU87SUFDZixPQUFPLEVBQUUsSUFBSSxHQUtkO0lBekJGLEFBc0JHLGdCQXRCSyxDQUtQLE1BQU0sQUFpQkgsTUFBTSxDQUFDO01BQ04sWUFBWSxFNUl4VU4sT0FBTyxHNEl5VWQ7RUF4QkosQUE0QkMsZ0JBNUJPLEFBNEJOLE9BQU8sQ0FBQztJQUNQLE9BQU8sRUFBRSxFQUFFO0lBQ1gsUUFBUSxFQUFFLFFBQVE7SUFDbEIsR0FBRyxFQUFFLEdBQUc7SUFDUixLQUFLLEVBQUUsSUFBSTtJQUNYLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLEdBQUc7SUFDWCxVQUFVLEVBQUUsSUFBSTtJQUNoQixVQUFVLEVBN1ZILHFWQUFxVixDQTZWcFUsU0FBUyxDQUFDLGNBQWdCO0lBQ2xELGNBQWMsRUFBRSxJQUFJLEdBQ3JCOztBQUdGLEFBQUQsa0JBQVcsQ0FBQztFQUNWLE9BQU8sRUFBRSxJQUFJO0VBQ2IsV0FBVyxFQUFFLE1BQU07RUFDbkIsSUFBSSxFQUFFLFFBQVE7RUFDZCxHQUFHLEVBQUUsSUFBSSxHQUNWOztBMUl0SkMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0UwSWtHekIsQUFBRCxhQUFNLENBdURHO0lBQ0wsU0FBUyxFQUFFLElBQUksR0FDaEI7RUFWRixBQUFELGtCQUFXLENBWUc7SUFDVixJQUFJLEVBQUUsUUFBUSxHQUNmOztBQ3BYTCxBQUFBLFVBQVUsQUFBQSxRQUFRLENBQUM7RUFDakIsT0FBTyxFQUFFLElBQUk7RUFDYixJQUFJLEVBQUUsUUFBUTtFQUNkLFNBQVMsRUFBRSxDQUFDO0VBS1osVUFBVSxFQUFFLE9BQU87RUFDbkIsVUFBVSxFQUFFLE9BQU8sR0FDcEI7O0FBR0UsQUFBRCxjQUFPLENBQUM7RUFDTixJQUFJLEVBQUUsUUFBUTtFQUNkLFNBQVMsRUFBRSxDQUFDO0VBQ1osS0FBSyxFQUFFLElBQUk7RUFDWCxTQUFTLEVBQUUsS0FBSztFQUNoQixNQUFNLEVBQUUsTUFBTTtFQUNkLE9BQU8sRUFBRSxjQUFjO0VBQ3ZCLFVBQVUsRUFBRSxVQUFVLEdBQ3ZCOztBQUVBLEFBQUQsZUFBUSxDQUFDO0VBQ1AsTUFBTSxFQUFFLFFBQVE7RUFDaEIsV0FBVyxFQUFFLHFCQUFxQjtFQUNsQyxTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLEtBQUssRTdJSkssT0FBTyxHNklLbEI7O0FBS0EsQUFBRCxrQkFBVyxHQUFJLGtCQUFVLENBQUM7RUFDeEIsVUFBVSxFQUFFLElBQUksR0FDakI7O0FBekJILEFBNkJFLFFBN0JNLENBNkJOLGdCQUFnQixDQUFDO0VBQ2YsT0FBTyxFQUFFLEtBQUssR0FDZjs7QUFJQSxBQUFELHdCQUFpQixDQUFDO0VBQ2hCLE1BQU0sRUFBRSxRQUFRO0VBQ2hCLFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLEdBQUc7RUFDaEIsV0FBVyxFQUFFLEdBQUc7RUFDaEIsS0FBSyxFN0kzQkssT0FBTyxHNklpQ2xCO0VBWEEsQUFRQyx3QkFSZSxDQVFmLElBQUksQ0FBQztJQUNILEtBQUssRTVJakVKLE9BQU8sRzRJa0VUOztBQTdDTCxBQW9ERSxRQXBETSxDQW9ETiwyQkFBMkIsQ0FBQztFQUMxQixVQUFVLEVBQUUsSUFBSSxHQUNqQjs7QUF0REgsQUEwREUsUUExRE0sQ0EwRE4sZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0VBQ3JCLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLFlBQVksRUFBRSxJQUFJLEdBQ25COztBQUVBLEFBQUQsZ0JBQVMsQ0FBQztFQUNSLE9BQU8sRUFBRSxJQUFJO0VBQ2IsZUFBZSxFQUFFLE1BQU07RUFDdkIsVUFBVSxFQUFFLElBQUksR0FnQmpCO0VBbkJBLEFBT0MsZ0JBUE8sQ0FPUCxNQUFNLENBQUM7SUFDTCxjQUFjLEVBQUUsSUFBSTtJQUNwQixjQUFjLEVBQUUsQ0FBQztJQUNqQixTQUFTLEVBQUUsSUFBSSxHQVFoQjtJQWxCRixBQWVHLGdCQWZLLENBT1AsTUFBTSxBQVFILFFBQVEsQ0FBQztNQUNSLFdBQVcsRUFBRSxHQUFHLEdBQ2pCOztBM0lzSEgsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0UySXJNekIsQUFBRCxjQUFPLENBb0ZHO0lBQ04sT0FBTyxFQUFFLGNBQWMsR0FDeEI7RUE1RUYsQUFBRCxlQUFRLENBOEVHO0lBQ1AsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsSUFBSSxHQUNsQjtFQTdCRixBQU9DLGdCQVBPLENBT1AsTUFBTSxDQXdCVztJQUNmLEtBQUssRUFBRSxJQUFJLEdBQ1o7O0FDeEdMLEFBQUEsVUFBVSxBQUFBLG1CQUFtQixDQUFDO0VBQzVCLE9BQU8sRUFBRSxJQUFJO0VBQ2IsSUFBSSxFQUFFLFFBQVE7RUFDZCxTQUFTLEVBQUUsQ0FBQztFQUdaLFVBQVUsRUFBRSxPQUFPO0VBQ25CLFVBQVUsRTlJa0JFLE9BQU8sRzhJUnBCO0VBakJELEFBWUUsVUFaUSxBQUFBLG1CQUFtQixHQVl6QixVQUFVLENBQUM7SUFDWCxJQUFJLEVBQUUsUUFBUTtJQUNkLFNBQVMsRUFBRSxDQUFDO0lBQ1osS0FBSyxFQUFFLElBQUksR0FDWjs7QUFHSCxBQUFBLGNBQWMsQ0FBQztFQUNiLEtBQUssRUFBRSxJQUFJO0VBRVgsU0FBUyxFQUFFLEtBQUs7RUFDaEIsTUFBTSxFQUFFLE1BQU07RUFDZCxPQUFPLEVBQUUsY0FBYztFQUN2QixVQUFVLEVBQUUsVUFBVTtFQUN0QixVQUFVLEVBQUUsTUFBTTtFQUNsQixXQUFXLEVBQUUscUJBQXFCLEdBcWFuQztFQTdhRCxBQVlFLGNBWlksQ0FZWixNQUFNLENBQUM7STVJeUxQLFNBQVMsRUFBRSxDQUFDO0lBQ1osVUFBVSxFQUFFLENBQUM7SUFDYixVQUFVLEVBQUUsSUFBSTtJQUNoQixjQUFjLEVBQUUsQ0FBQztJQUNqQixjQUFjLEVBQUUsSUFBSSxHNEkzTG5CO0VBZEgsQUFnQkUsY0FoQlksQ0FnQlosTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUNkLFdBQVcsRUFBRSxDQUFDLEdBQ2Y7RUFJQSxBQUFELHFCQUFRLENBQUM7SUFDUCxPQUFPLEVBQUUsV0FBVztJQUNwQixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osYUFBYSxFQUFFLElBQUk7SUFDbkIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFOUk1Q0EsT0FBTyxHOEk2Q2xCO0VBRUEsQUFBRCwyQkFBYyxDQUFDO0lBQ2IsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRTlJckRBLE9BQU87SThJc0RqQixLQUFLLEU5SXBESyxPQUFPLEc4SXFEbEI7RUFFQSxBQUFELHFCQUFRLENBQUM7SUFDUCxNQUFNLEVBQUUsT0FBTztJQUNmLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFOUkvQ0ssT0FBTyxHOElnRGxCO0VBRUEsQUFBRCwyQkFBYyxDQUFDO0lBQ2IsYUFBYSxFQUFFLElBQUk7SUFDbkIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEU5SXpESyxPQUFPLEc4STBEbEI7RUFRQSxBQUFELHFCQUFRLENBQUM7SUFDUCxhQUFhLEVBQUUsSUFBSSxHQW9CcEI7SUFyQkEsQUFHQyxxQkFITSxDQUdOLEdBQUcsQ0FBQztNQUNGLEtBQUssRUFBRSxLQUFLO01BQ1osTUFBTSxFQUFFLEtBQUssR0FDZDtJQU5GLEFBUUMscUJBUk0sQ0FRTixRQUFRO0lBUlQscUJBQU8sQ0FTTixTQUFTLENBQUM7TUFDUixZQUFZLEVBQUUsRUFBRSxHQUNqQjtJQVhGLEFBZ0JDLHFCQWhCTSxDQWdCTixLQUFLLENBQUM7TUFDSixTQUFTLEVBQUUsSUFBSTtNQUNmLFdBQVcsRUFBRSxHQUFHO01BQ2hCLElBQUksRUFBRSxPQUFPLEdBQ2Q7RUFJRixBQUFELG9CQUFPLENBQUM7SUFDTixPQUFPLEVBQUUsSUFBSTtJQUNiLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDOUl0Q0osT0FBTztJOEl1Q3BCLGFBQWEsRUFBRSxJQUFJO0lBQ25CLFVBQVUsRUFBRSxPQUFPO0lBQ25CLFVBQVUsRTlJeERBLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxzQkFBc0I7SThJeUQ1QyxVQUFVLEVBQUUsSUFBSSxHQUNqQjtFQUVBLEFBQUQsc0JBQVMsQ0FBQztJQUNSLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLElBQUk7SUFDVCxPQUFPLEVBQUUsSUFBSTtJQUNiLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRTlJeEhBLE9BQU8sRzhJeUhsQjtFQUVBLEFBQUQsMkJBQWMsQ0FBQztJQUNiLElBQUksRUFBRSxRQUFRO0lBQ2QsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osVUFBVSxFQUFFLE9BQU8sR0FDcEI7RUFFQSxBQUFELDJCQUFjLENBQUM7SUFDYixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRTlJdEhLLE9BQU8sRzhJdUhsQjtFQUdBLEFBQUQsNEJBQWUsQ0FBQztJQUNkLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLEdBQUc7SUFDUixNQUFNLEVBQUUsV0FBVztJQUNuQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLEtBQUssRTlJcklLLE9BQU8sRzhJc0lsQjtFQUVBLEFBQUQsMEJBQWEsQ0FBQztJQUNaLEtBQUssRUFBRSxPQUFPLEdBQ2Y7RUFFQSxBQUFELHVCQUFVLENBQUM7SUFDVCxPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxVQUFVLEdBOEJ4QjtJQWhDQSxBQUlDLHVCQUpRLENBSVIsc0JBQXNCLEdBQUcsc0JBQXNCLENBQUM7TUFDOUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBM0tILE9BQU8sR0E0SzNCO0lBSUEsQUFBRCw2QkFBTyxDQUFDO01BQ04sVUFBVSxFQUFFLElBQUksR0FDakI7SUFNQSxBQUFELCtCQUFTLENBQUM7TUFDUixlQUFlLEVBQUUsTUFBTTtNQUN2QixVQUFVLEVBQUUsTUFBTSxHQVduQjtNQWJBLEFBSUMsK0JBSk8sQ0FJUCxzQkFBc0IsQ0FBQztRQUNyQixJQUFJLEVBQUUsU0FBUztRQUNmLFNBQVMsRUFBRSxJQUFJO1FBQ2YsT0FBTyxFQUFFLENBQUMsR0FDWDtNQVJGLEFBVUMsK0JBVk8sQ0FVUCw0QkFBNEIsQ0FBQztRQUMzQixlQUFlLEVBQUUsTUFBTSxHQUN4QjtFQUlKLEFBQUQsc0JBQVMsQ0FBQztJQUNSLElBQUksRUFBRSxLQUFLO0lBQ1gsU0FBUyxFQUFFLENBQUM7SUFDWixPQUFPLEVBQUUsTUFBTSxHQVNoQjtJQVpBLEFBS0Msc0JBTE8sQUFLTixZQUFZLENBQUM7TUFDWixZQUFZLEVBQUUsQ0FBQyxHQUNoQjtJQVBGLEFBU0Msc0JBVE8sQUFTTixXQUFXLENBQUM7TUFDWCxhQUFhLEVBQUUsQ0FBQyxHQUNqQjtFQUdGLEFBQUQsMkJBQWMsQ0FBQztJQUNiLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFOUlqTUssT0FBTyxHOElrTWxCO0VBRUEsQUFBRCw0QkFBZSxDQUFDO0lBQ2QsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsYUFBYTtJQUM5QixHQUFHLEVBQUUsR0FBRyxHQUNUO0VBRUEsQUFBRCw0QkFBZSxDQUFDO0lBQ2QsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEU5STdNSyxPQUFPLEc4SThNbEI7RUFFQSxBQUFELHFCQUFRLENBQUM7SUFDUCxPQUFPLEVBQUUsS0FBSztJQUNkLEtBQUssRUFBRSxJQUFJO0lBQ1gsU0FBUyxFQUFFLElBQUk7SUFDZixNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxHQUFHLEdBQ2hCO0VBR0EsQUFBRCxzQkFBUyxDQUFDO0lBQ1IsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsR0FBRyxFQUFFLEdBQUc7SUFDUixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxDQUFDLEdBU2Y7SUFQRSxBQUFELDBCQUFLLENBQUM7TUFDSixLQUFLLEVBN1BRLE9BQU8sR0E4UHJCO0lBRUEsQUFBRCw0QkFBTyxDQUFDO01BQ04sS0FBSyxFQWhRVSxPQUFPLEdBaVF2QjtFQUdGLEFBQUQsMEJBQWEsQ0FBQztJQUNaLElBQUksRUFBRSxRQUFRO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSSxHQUNiO0VBRUEsQUFBRCxzQkFBUyxDQUFDO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixHQUFHLEVBQUUsR0FBRztJQUNSLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFOUkxUEssT0FBTyxHOEkyUGxCO0VBS0EsQUFBRCx3QkFBVyxDQUFDO0lBQ1YsVUFBVSxFQUFFLElBQUk7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBN1JBLE9BQU8sR0E4UjdCO0VBRUEsQUFBRCw4QkFBaUIsQ0FBQztJQUNoQixhQUFhLEVBQUUsSUFBSTtJQUNuQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRTlJMVFLLE9BQU8sRzhJMlFsQjtFQUlBLEFBQ0MsdUJBRFEsQ0FDUixLQUFLLENBQUM7SUFDSixNQUFNLEVBQUUsTUFBTTtJQUNkLE1BQU0sRUFBRSxDQUFDO0lBQ1QsVUFBVSxFQUFFLElBQUksR0FRakI7SUFaRixBQU1HLHVCQU5NLENBQ1IsS0FBSyxDQUtILEVBQUUsQ0FBQztNQUNELE9BQU8sRUFBRSxNQUFNO01BQ2YsTUFBTSxFQUFFLENBQUM7TUFDVCxVQUFVLEVBQUUsSUFBSTtNQUNoQixjQUFjLEVBQUUsR0FBRyxHQUNwQjtFQUlKLEFBQUQsOEJBQWlCLENBQUM7SUFDaEIsU0FBUyxFQUFFLEtBQUs7SUFDaEIsVUFBVSxFQUFFLEtBQUssR0FDbEI7RUFHQSxBQUFELDBCQUFhLENBQUM7SUFDWixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLEdBQUcsRUFBRSxHQUFHO0lBQ1IsS0FBSyxFQUFFLElBQUk7SUFDWCxVQUFVLEVBQUUsSUFBSTtJQUNoQixPQUFPLEVBQUUsS0FBSztJQUNkLE1BQU0sRUFBRSxDQUFDO0lBQ1QsYUFBYSxFQUFFLENBQUM7SUFDaEIsVUFBVSxFQUFFLElBQUk7SUFDaEIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEU5STdUSyxPQUFPO0k4SThUakIsTUFBTSxFQUFFLE9BQU8sR0FLaEI7SUFwQkEsQUFpQkMsMEJBakJXLEFBaUJWLE1BQU0sQ0FBQztNQUNOLEtBQUssRTlJblFNLE9BQU8sRzhJb1FuQjtFQUdGLEFBQUQsdUJBQVUsQ0FBQztJQUNULFNBQVMsRUFBRSxJQUFJLEdBQ2hCO0VBR0EsQUFBRCx1QkFBVSxDQUFDO0lBQ1QsVUFBVSxFQUFFLEdBQUc7SUFDZixXQUFXLEVBQUUsSUFBSTtJQUNqQixVQUFVLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0E1VkEsT0FBTyxHQTZWN0I7RUFFQSxBQUFELDZCQUFnQixDQUFDO0lBQ2YsYUFBYSxFQUFFLElBQUk7SUFDbkIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixjQUFjLEVBQUUsTUFBTTtJQUN0QixjQUFjLEVBQUUsU0FBUztJQUN6QixLQUFLLEU5STNVSyxPQUFPLEc4STRVbEI7RUFFQSxBQUFELDBCQUFhLENBQUM7SUFDWixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLEdBQUcsRUFBRSxJQUFJO0lBQ1QsT0FBTyxFQUFFLFNBQVM7SUFDbEIsVUFBVSxFQUFFLE9BQU8sR0FlcEI7SUFwQkEsQUFPQywwQkFQVyxHQUFaLDBCQUFZLENBT0w7TUFDSixVQUFVLEVBQUUsaUJBQWlCLEdBQzlCO0lBVEYsQUFXQywwQkFYVyxBQVdWLFlBQVksQ0FBQztNQUNaLHNCQUFzQixFQUFFLEdBQUc7TUFDM0IsdUJBQXVCLEVBQUUsR0FBRyxHQUM3QjtJQWRGLEFBZ0JDLDBCQWhCVyxBQWdCVixXQUFXLENBQUM7TUFDWCx5QkFBeUIsRUFBRSxHQUFHO01BQzlCLDBCQUEwQixFQUFFLEdBQUcsR0FDaEM7RUFHRixBQUFELDJCQUFjLENBQUM7SUFDYixJQUFJLEVBQUUsUUFBUTtJQUNkLFNBQVMsRUFBRSxDQUFDO0lBQ1osU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEU5SXhXSyxPQUFPLEc4SXlXbEI7RUFFQSxBQUFELDZCQUFnQixDQUFDO0lBQ2YsSUFBSSxFQUFFLFFBQVE7SUFDZCxTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLEtBQUssRTlJbFhLLE9BQU8sRzhJbVhsQjtFQUdBLEFBQUQsbUJBQU0sQ0FBQztJQUNMLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLEdBQUcsRUFBRSxJQUFJO0lBQ1QsVUFBVSxFQUFFLElBQUk7SUFDaEIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEM5SXhZUCxPQUFPO0k4SXlZakIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFOUkxWUEsT0FBTztJOEkyWWpCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFQUFFLE9BQU87SUFDZCxNQUFNLEVBQUUsT0FBTyxHQU1oQjtJQXBCQSxBQWdCQyxtQkFoQkksQUFnQkgsTUFBTSxDQUFDO01BQ04sWUFBWSxFOUlwVkQsT0FBTztNOElxVmxCLFVBQVUsRTlJclZDLE9BQU8sRzhJc1ZuQjtFQUdGLEFBQUQseUJBQVksQ0FBQztJQUNYLElBQUksRUFBRSxRQUFRLEdBQ2Y7RTVJbk5DLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztJNEkzTDVCLEFBQUEsY0FBYyxDQUFDO01BaVpYLE9BQU8sRUFBRSxjQUFjLEdBNEIxQjtNQWpZRSxBQUFELHFCQUFRLENBdVdHO1FBQ1AsU0FBUyxFQUFFLElBQUk7UUFDZixXQUFXLEVBQUUsSUFBSSxHQUNsQjtNQTFRRixBQUFELHVCQUFVLENBNlFHO1FBQ1QsY0FBYyxFQUFFLE1BQU07UUFDdEIsR0FBRyxFQUFFLElBQUksR0FDVjtNQTlPRixBQUFELHNCQUFTLENBZ1BHO1FBQ1IsT0FBTyxFQUFFLENBQUMsR0FDWDtNQXBSRixBQUlDLHVCQUpRLENBSVIsc0JBQXNCLEdBQUcsc0JBQXNCLENBbVJZO1FBQ3pELFdBQVcsRUFBRSxDQUFDO1FBQ2QsVUFBVSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBL2JGLE9BQU87UUFnYzFCLFdBQVcsRUFBRSxJQUFJLEdBQ2xCO01BakRGLEFBQUQsbUJBQU0sQ0FtREc7UUFDTCxLQUFLLEVBQUUsSUFBSSxHQUNaOztBQzNiTCxBQUFBLFlBQVksR0FBRyxHQUFHLEFBQUEsSUFBSyxHQUFFLGlCQUFpQixFQUFFO0VBQzFDLElBQUksRUFBRSxRQUFRO0VBQ2QsU0FBUyxFQUFFLENBQUMsR0FDYjs7QUFFRCxBQUFBLGlCQUFpQixDQUFDO0VBQ2hCLEtBQUssRUFBRSxJQUFJO0VBRVgsU0FBUyxFQUFFLEtBQUs7RUFDaEIsTUFBTSxFQUFFLE1BQU07RUFDZCxPQUFPLEVBQUUsY0FBYztFQUN2QixVQUFVLEVBQUUsVUFBVTtFQUN0QixVQUFVLEVBQUUsTUFBTTtFQUNsQixXQUFXLEVBQUUscUJBQXFCLEdBbVFuQztFQTNRRCxBQVlFLGlCQVplLENBWWYsTUFBTSxDQUFDO0k3SW9NUCxTQUFTLEVBQUUsQ0FBQztJQUNaLFVBQVUsRUFBRSxDQUFDO0lBQ2IsVUFBVSxFQUFFLElBQUk7SUFDaEIsY0FBYyxFQUFFLENBQUM7SUFDakIsY0FBYyxFQUFFLElBQUksRzZJdE1uQjtFQUtBLEFBQUQsd0JBQVEsQ0FBQztJQUNQLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixhQUFhLEVBQUUsSUFBSTtJQUNuQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEUvSTlCQSxPQUFPLEcrSStCbEI7RUFFQSxBQUFELDhCQUFjLENBQUM7SUFDYixPQUFPLEVBQUUsV0FBVztJQUNwQixXQUFXLEVBQUUsTUFBTTtJQUNuQixlQUFlLEVBQUUsTUFBTTtJQUN2QixLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFL0l2Q0EsT0FBTztJK0l3Q2pCLEtBQUssRS9JdENLLE9BQU8sRytJdUNsQjtFQUVBLEFBQUQsd0JBQVEsQ0FBQztJQUdQLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFHaEIsV0FBVyxFQUFFLENBQUM7SUFDZCxjQUFjLEVBQUUsQ0FBQztJQUNqQixLQUFLLEUvSXJDSyxPQUFPLEcrSXNDbEI7RUFHQSxBQUFELHlCQUFTLENBQUM7SUFDUixPQUFPLEVBQUUsSUFBSTtJQUNiLFdBQVcsRUFBRSxNQUFNO0lBQ25CLGVBQWUsRUFBRSxNQUFNO0lBQ3ZCLEdBQUcsRUFBRSxJQUFJO0lBQ1QsYUFBYSxFQUFFLElBQUk7SUFDbkIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEUvSWxESyxPQUFPLEcrSW1EbEI7RUFFQSxBQUFELCtCQUFlLENBQUM7SUFDZCxJQUFJLEVBQUUsUUFBUTtJQUNkLE9BQU8sRUFBRSxLQUFLO0lBQ2QsS0FBSyxFQUFFLElBQUk7SUFDWCxNQUFNLEVBQUUsSUFBSTtJQUNaLFVBQVUsRUFBRSxPQUFPLEdBQ3BCO0VBT0EsQUFBRCx1QkFBTyxDQUFDO0lBQ04sTUFBTSxFQUFFLEtBQUs7SUFDYixPQUFPLEVBQUUsSUFBSTtJQUNiLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDL0luQkosT0FBTztJK0lvQnBCLGFBQWEsRUFBRSxJQUFJO0lBQ25CLFVBQVUsRUFBRSxPQUFPO0lBQ25CLFVBQVUsRS9JckNBLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxzQkFBc0I7SStJc0M1QyxVQUFVLEVBQUUsSUFBSSxHQUNqQjtFQU1BLEFBQUQseUJBQVMsQ0FBQztJQUNSLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsR0FBRyxFQUFFLElBQUk7SUFDVCxNQUFNLEVBQUUsSUFBSTtJQUNaLE9BQU8sRUFBRSxNQUFNO0lBQ2YsVUFBVSxFQUFFLFVBQVU7SUFDdEIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsVUFBVSxFL0k1R0EsT0FBTztJK0k2R2pCLEtBQUssRS9JekdLLE9BQU8sRytJMEdsQjtFQUVBLEFBQUQsOEJBQWMsQ0FBQztJQUNiLElBQUksRUFBRSxRQUFRO0lBQ2QsT0FBTyxFQUFFLEtBQUs7SUFDZCxLQUFLLEVBQUUsSUFBSTtJQUNYLE1BQU0sRUFBRSxJQUFJLEdBQ2I7RUFFQSxBQUFELDhCQUFjLENBQUM7SUFDYixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBRWpCLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLEtBQUssRS9JNUdLLE9BQU8sRytJNkdsQjtFQUdBLEFBQUQsMkJBQVcsQ0FBQztJQUNWLFVBQVUsRUFBRSxJQUFJLEdBQ2pCO0VBRUEsQUFBRCxnQ0FBZ0IsQ0FBQztJQUNmLE9BQU8sRUFBRSxJQUFJO0lBQ2IsV0FBVyxFQUFFLFFBQVE7SUFDckIsR0FBRyxFQUFFLElBQUk7SUFDVCxhQUFhLEVBQUUsSUFBSSxHQUNwQjtFQUVBLEFBQUQsZ0NBQWdCLENBQUM7SUFDZixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRS9JL0hLLE9BQU8sRytJZ0lsQjtFQUlBLEFBQUQsaUNBQWlCLENBQUM7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEUvSTFJSyxPQUFPLEcrSTJJbEI7RUFFQSxBQUFELHNCQUFNLENBQUM7SUFDTCxRQUFRLEVBQUUsTUFBTTtJQUNoQixNQUFNLEVBQUUsR0FBRztJQUNYLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUF2S1csT0FBTyxHQXdLN0I7RUFFQSxBQUFELDJCQUFXLENBQUM7SUFDVixNQUFNLEVBQUUsSUFBSTtJQUNaLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUE1S1UsT0FBTztJQTZLM0IsVUFBVSxFQUFFLGVBQWUsR0FDNUI7RUFHQSxBQUFELHdCQUFRLENBQUM7SUFDUCxPQUFPLEVBQUUsSUFBSTtJQUNiLEdBQUcsRUFBRSxJQUFJO0lBQ1QsVUFBVSxFQUFFLElBQUksR0FDakI7RUFJQSxBQUFELHVCQUFPLENBQUM7SUFDTixJQUFJLEVBQUUsS0FBSztJQUNYLFNBQVMsRUFBRSxDQUFDO0lBQ1osTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsU0FBUztJQUNsQixVQUFVLEVBQUUsVUFBVTtJQUN0QixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEUvSWpMQSxPQUFPLEcrSWtMbEI7RUFFQSxBQUFELDZCQUFhLENBQUM7SUFDWixhQUFhLEVBQUUsR0FBRztJQUNsQixTQUFTLEVBQUUsSUFBSTtJQUNmLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLEtBQUssRS9JbkxLLE9BQU8sRytJb0xsQjtFQUVBLEFBQUQsNkJBQWEsQ0FBQztJQUNaLFNBQVMsRUFBRSxJQUFJO0lBQ2YsV0FBVyxFQUFFLEdBQUc7SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsS0FBSyxFL0l4TEssT0FBTyxHK0l5TGxCO0VBR0EsQUFBRCxzQkFBTSxDQUFDO0lBQ0wsT0FBTyxFQUFFLFdBQVc7SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsZUFBZSxFQUFFLE1BQU07SUFDdkIsR0FBRyxFQUFFLElBQUk7SUFDVCxVQUFVLEVBQUUsSUFBSTtJQUNoQixPQUFPLEVBQUUsU0FBUztJQUNsQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQy9Jak5QLE9BQU87SStJa05qQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEUvSW5OQSxPQUFPO0krSW9OakIsU0FBUyxFQUFFLElBQUk7SUFDZixXQUFXLEVBQUUsR0FBRztJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixLQUFLLEVBQUUsT0FBTztJQUNkLE1BQU0sRUFBRSxPQUFPLEdBTWhCO0lBcEJBLEFBZ0JDLHNCQWhCSSxBQWdCSCxNQUFNLENBQUM7TUFDTixZQUFZLEUvSTdKRCxPQUFPO00rSThKbEIsVUFBVSxFL0k5SkMsT0FBTyxHK0krSm5CO0VBR0YsQUFBRCw0QkFBWSxDQUFDO0lBQ1gsSUFBSSxFQUFFLFFBQVEsR0FDZjtFN0k1QkMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0k2SXRNNUIsQUFBQSxpQkFBaUIsQ0FBQztNQXFPZCxPQUFPLEVBQUUsY0FBYyxHQXNDMUI7TUFwTkUsQUFBRCx5QkFBUyxDQWlMRztRQUNSLEdBQUcsRUFBRSxJQUFJO1FBQ1QsU0FBUyxFQUFFLElBQUk7UUFDZixXQUFXLEVBQUUsSUFBSSxHQUNsQjtNQXpLRixBQUFELCtCQUFlLENBMktHO1FBQ2QsS0FBSyxFQUFFLElBQUk7UUFDWCxNQUFNLEVBQUUsSUFBSSxHQUNiO01BaktGLEFBQUQsdUJBQU8sQ0FxS0c7UUFDTixNQUFNLEVBQUUsSUFBSSxHQUNiO01BeEpGLEFBQUQseUJBQVMsQ0EwSkc7UUFDUixNQUFNLEVBQUUsSUFBSTtRQUNaLE9BQU8sRUFBRSxTQUFTLEdBQ25CO01BcEZGLEFBQUQsd0JBQVEsQ0F1Rkc7UUFDUCxjQUFjLEVBQUUsTUFBTSxHQUN2QjtNQWpGRixBQUFELHVCQUFPLENBbUZHO1FBQ04sTUFBTSxFQUFFLElBQUksR0FDYjtNQTNERixBQUFELHNCQUFNLENBNkRHO1FBQ0wsS0FBSyxFQUFFLElBQUksR0FDWiJ9 */