html.dark-mode body {
  color: #F2F9FF;
}html[dir].dark-mode body {
  background-color: #1D2126;
}
html.dark-mode .link-color,
html.dark-mode a:not([class]) {
  color: rgba(242, 249, 255, 0.7);
}
html.dark-mode .link-color:hover,
html.dark-mode a:not([class]):hover {
  color: rgba(242, 249, 255, 0.5);
}
html.dark-mode h1, html.dark-mode h2, html.dark-mode h3, html.dark-mode h4, html.dark-mode h5, html.dark-mode h6,
html.dark-mode .h1, html.dark-mode .h2, html.dark-mode .h3, html.dark-mode .h4, html.dark-mode .h5, html.dark-mode .h6 {
  color: #F2F9FF;
}
html[dir].dark-mode .bg-body {
  background-color: #1D2126 !important;
}
html[dir].dark-mode .bg-alt {
  background: #1D2126;
}
html.dark-mode .text-body {
  color: #F2F9FF !important;
}
html.dark-mode .text-20 {
  color: rgba(242, 249, 255, 0.2) !important;
}
html.dark-mode .text-50, html.dark-mode .text-muted {
  color: rgba(242, 249, 255, 0.5) !important;
}
html.dark-mode .text-70 {
  color: rgba(242, 249, 255, 0.7) !important;
}
html.dark-mode .text-100 {
  color: #F2F9FF !important;
}
html[dir].dark-mode .border-1 {
  border-color: #19191A !important;
}
html[dir=ltr].dark-mode .border-left-1 {
  border-left-color: #19191A !important;
}
html[dir=rtl].dark-mode .border-left-1 {
  border-right-color: #19191A !important;
}
html[dir=ltr].dark-mode .border-left-1 {
  border-left-color: #19191A !important;
}
html[dir=rtl].dark-mode .border-left-1 {
  border-right-color: #19191A !important;
}
html[dir=ltr].dark-mode .border-right-1 {
  border-right-color: #19191A !important;
}
html[dir=rtl].dark-mode .border-right-1 {
  border-left-color: #19191A !important;
}
html[dir=ltr].dark-mode .border-right-1 {
  border-right-color: #19191A !important;
}
html[dir=rtl].dark-mode .border-right-1 {
  border-left-color: #19191A !important;
}
html[dir].dark-mode .border-top-1 {
  border-top-color: #19191A !important;
}
html[dir].dark-mode .border-top-1 {
  border-top-color: #19191A !important;
}
html[dir].dark-mode .border-bottom-1 {
  border-bottom-color: #19191A !important;
}
html[dir].dark-mode .border-bottom-1 {
  border-bottom-color: #19191A !important;
}
html[dir].dark-mode .border-2 {
  border-color: #19191A !important;
}
html[dir=ltr].dark-mode .border-left-2 {
  border-left-color: #19191A !important;
}
html[dir=rtl].dark-mode .border-left-2 {
  border-right-color: #19191A !important;
}
html[dir=ltr].dark-mode .border-left-2 {
  border-left-color: #19191A !important;
}
html[dir=rtl].dark-mode .border-left-2 {
  border-right-color: #19191A !important;
}
html[dir=ltr].dark-mode .border-right-2 {
  border-right-color: #19191A !important;
}
html[dir=rtl].dark-mode .border-right-2 {
  border-left-color: #19191A !important;
}
html[dir=ltr].dark-mode .border-right-2 {
  border-right-color: #19191A !important;
}
html[dir=rtl].dark-mode .border-right-2 {
  border-left-color: #19191A !important;
}
html[dir].dark-mode .border-top-2 {
  border-top-color: #19191A !important;
}
html[dir].dark-mode .border-top-2 {
  border-top-color: #19191A !important;
}
html[dir].dark-mode .border-bottom-2 {
  border-bottom-color: #19191A !important;
}
html[dir].dark-mode .border-bottom-2 {
  border-bottom-color: #19191A !important;
}
html[dir].dark-mode .border-3 {
  border-color: #19191A !important;
}
html[dir=ltr].dark-mode .border-left-3 {
  border-left-color: #19191A !important;
}
html[dir=rtl].dark-mode .border-left-3 {
  border-right-color: #19191A !important;
}
html[dir=ltr].dark-mode .border-left-3 {
  border-left-color: #19191A !important;
}
html[dir=rtl].dark-mode .border-left-3 {
  border-right-color: #19191A !important;
}
html[dir=ltr].dark-mode .border-right-3 {
  border-right-color: #19191A !important;
}
html[dir=rtl].dark-mode .border-right-3 {
  border-left-color: #19191A !important;
}
html[dir=ltr].dark-mode .border-right-3 {
  border-right-color: #19191A !important;
}
html[dir=rtl].dark-mode .border-right-3 {
  border-left-color: #19191A !important;
}
html[dir].dark-mode .border-top-3 {
  border-top-color: #19191A !important;
}
html[dir].dark-mode .border-top-3 {
  border-top-color: #19191A !important;
}
html[dir].dark-mode .border-bottom-3 {
  border-bottom-color: #19191A !important;
}
html[dir].dark-mode .border-bottom-3 {
  border-bottom-color: #19191A !important;
}
html[dir].dark-mode .border-4 {
  border-color: #19191A !important;
}
html[dir=ltr].dark-mode .border-left-4 {
  border-left-color: #19191A !important;
}
html[dir=rtl].dark-mode .border-left-4 {
  border-right-color: #19191A !important;
}
html[dir=ltr].dark-mode .border-left-4 {
  border-left-color: #19191A !important;
}
html[dir=rtl].dark-mode .border-left-4 {
  border-right-color: #19191A !important;
}
html[dir=ltr].dark-mode .border-right-4 {
  border-right-color: #19191A !important;
}
html[dir=rtl].dark-mode .border-right-4 {
  border-left-color: #19191A !important;
}
html[dir=ltr].dark-mode .border-right-4 {
  border-right-color: #19191A !important;
}
html[dir=rtl].dark-mode .border-right-4 {
  border-left-color: #19191A !important;
}
html[dir].dark-mode .border-top-4 {
  border-top-color: #19191A !important;
}
html[dir].dark-mode .border-top-4 {
  border-top-color: #19191A !important;
}
html[dir].dark-mode .border-bottom-4 {
  border-bottom-color: #19191A !important;
}
html[dir].dark-mode .border-bottom-4 {
  border-bottom-color: #19191A !important;
}
html[dir].dark-mode .border {
  border-color: #19191A !important;
}
html[dir].dark-mode .border-top {
  border-top-color: #19191A !important;
}
html[dir=ltr].dark-mode .border-right {
  border-right-color: #19191A !important;
}
html[dir=rtl].dark-mode .border-right {
  border-left-color: #19191A !important;
}
html[dir].dark-mode .border-bottom {
  border-bottom-color: #19191A !important;
}
html[dir=ltr].dark-mode .border-left {
  border-left-color: #19191A !important;
}
html[dir=rtl].dark-mode .border-left {
  border-right-color: #19191A !important;
}
@media (min-width: 576px) {
  html[dir].dark-mode .border-sm {
    border-color: #19191A !important;
  }
  html[dir].dark-mode .border-top-sm {
    border-top-color: #19191A !important;
  }
  html[dir=ltr].dark-mode .border-right-sm {
    border-right-color: #19191A !important;
  }
  html[dir=rtl].dark-mode .border-right-sm {
    border-left-color: #19191A !important;
  }
  html[dir].dark-mode .border-bottom-sm {
    border-bottom-color: #19191A !important;
  }
  html[dir=ltr].dark-mode .border-left-sm {
    border-left-color: #19191A !important;
  }
  html[dir=rtl].dark-mode .border-left-sm {
    border-right-color: #19191A !important;
  }
}
@media (min-width: 768px) {
  html[dir].dark-mode .border-md {
    border-color: #19191A !important;
  }
  html[dir].dark-mode .border-top-md {
    border-top-color: #19191A !important;
  }
  html[dir=ltr].dark-mode .border-right-md {
    border-right-color: #19191A !important;
  }
  html[dir=rtl].dark-mode .border-right-md {
    border-left-color: #19191A !important;
  }
  html[dir].dark-mode .border-bottom-md {
    border-bottom-color: #19191A !important;
  }
  html[dir=ltr].dark-mode .border-left-md {
    border-left-color: #19191A !important;
  }
  html[dir=rtl].dark-mode .border-left-md {
    border-right-color: #19191A !important;
  }
}
@media (min-width: 992px) {
  html[dir].dark-mode .border-lg {
    border-color: #19191A !important;
  }
  html[dir].dark-mode .border-top-lg {
    border-top-color: #19191A !important;
  }
  html[dir=ltr].dark-mode .border-right-lg {
    border-right-color: #19191A !important;
  }
  html[dir=rtl].dark-mode .border-right-lg {
    border-left-color: #19191A !important;
  }
  html[dir].dark-mode .border-bottom-lg {
    border-bottom-color: #19191A !important;
  }
  html[dir=ltr].dark-mode .border-left-lg {
    border-left-color: #19191A !important;
  }
  html[dir=rtl].dark-mode .border-left-lg {
    border-right-color: #19191A !important;
  }
}
@media (min-width: 1200px) {
  html[dir].dark-mode .border-xl {
    border-color: #19191A !important;
  }
  html[dir].dark-mode .border-top-xl {
    border-top-color: #19191A !important;
  }
  html[dir=ltr].dark-mode .border-right-xl {
    border-right-color: #19191A !important;
  }
  html[dir=rtl].dark-mode .border-right-xl {
    border-left-color: #19191A !important;
  }
  html[dir].dark-mode .border-bottom-xl {
    border-bottom-color: #19191A !important;
  }
  html[dir=ltr].dark-mode .border-left-xl {
    border-left-color: #19191A !important;
  }
  html[dir=rtl].dark-mode .border-left-xl {
    border-right-color: #19191A !important;
  }
}
@media (min-width: 1366px) {
  html[dir].dark-mode .border-xxl {
    border-color: #19191A !important;
  }
  html[dir].dark-mode .border-top-xxl {
    border-top-color: #19191A !important;
  }
  html[dir=ltr].dark-mode .border-right-xxl {
    border-right-color: #19191A !important;
  }
  html[dir=rtl].dark-mode .border-right-xxl {
    border-left-color: #19191A !important;
  }
  html[dir].dark-mode .border-bottom-xxl {
    border-bottom-color: #19191A !important;
  }
  html[dir=ltr].dark-mode .border-left-xxl {
    border-left-color: #19191A !important;
  }
  html[dir=rtl].dark-mode .border-left-xxl {
    border-right-color: #19191A !important;
  }
}
html[dir].dark-mode .border {
  border-color: #19191A !important;
}
html[dir].dark-mode .border-top {
  border-top-color: #19191A !important;
}
html[dir=ltr].dark-mode .border-right {
  border-right-color: #19191A !important;
}
html[dir=rtl].dark-mode .border-right {
  border-left-color: #19191A !important;
}
html[dir].dark-mode .border-bottom {
  border-bottom-color: #19191A !important;
}
html[dir=ltr].dark-mode .border-left {
  border-left-color: #19191A !important;
}
html[dir=rtl].dark-mode .border-left {
  border-right-color: #19191A !important;
}
html[dir].dark-mode .alert-soft-warning {
  background-color: rgba(228, 169, 60, 0.05);
  border-color: rgba(228, 169, 60, 0.3);
}
html.dark-mode .breadcrumb {
  color: rgba(242, 249, 255, 0.5);
}
html.dark-mode .breadcrumb-item.active {
  color: rgba(242, 249, 255, 0.5);
}
html.dark-mode .page-separator {
  color: rgba(242, 249, 255, 0.5);
}
html[dir].dark-mode .page-separator::before {
  background-color: #19191A;
}
html.dark-mode .page-separator__text {
  color: #F2F9FF;
}
html[dir].dark-mode .page-separator__text {
  background-color: #1D2126;
}
html[dir].dark-mode .page-separator__bg-bottom {
  background-color: #1D2126;
}
html[dir].dark-mode .page-separator__bg-top {
  background-color: #1D2126;
}
html.dark-mode .accordion__toggle {
  color: #F2F9FF;
}
html.dark-mode .accordion__menu-link {
  color: rgba(242, 249, 255, 0.7);
}
html.dark-mode .accordion__menu-link:hover {
  color: rgba(242, 249, 255, 0.5);
}
html.dark-mode .accordion__menu-link.active {
  color: #F2F9FF;
}
html[dir].dark-mode .accordion__menu-link:not(:last-child) {
  border-bottom-color: #19191A;
}
html.dark-mode .accordion--boxed .accordion__item {
  /* @alternate */
}
html[dir].dark-mode .accordion--boxed .accordion__item {
  border-color: #19191A;
  background-color: #22282E;
  box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.1), 0px 3px 4px 0px rgba(0, 0, 0, 0.04), 0px 1px 8px 0px rgba(0, 0, 0, 0.02);
}
html[dir].dark-mode .mdk-reveal__content {
  background-color: #22282E;
}
html[dir].dark-mode .mdk-reveal__partial {
  background: linear-gradient(to bottom, rgba(34, 40, 46, 0) 60%, rgba(34, 40, 46, 0.95) 80%, #22282e 100%);
}
html[dir].dark-mode .stack:before, html[dir].dark-mode .stack:after {
  background: #22282E;
  box-shadow: 0 2px 0 #1e2328 inset, 0 2px 0 #1e2328;
}
html[dir].dark-mode .popover {
  background-color: #22282E;
  border-color: #19191A;
}
html.dark-mode .popover-lg {
  /* @alternate */
}
html[dir].dark-mode .popover-lg {
  box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.1), 0px 10px 14px 1px rgba(0, 0, 0, 0.04), 0px 4px 18px 3px rgba(0, 0, 0, 0.02);
}
html[dir].dark-mode .bs-popover-top > .arrow::before {
  border-top-color: #19191a;
}
html[dir].dark-mode .bs-popover-top > .arrow::after {
  border-top-color: #22282E;
}
html[dir=ltr].dark-mode .bs-popover-right > .arrow::before {
  border-right-color: #19191a;
}
html[dir=rtl].dark-mode .bs-popover-right > .arrow::before {
  border-left-color: #19191a;
}
html[dir=ltr].dark-mode .bs-popover-right > .arrow::after {
  border-right-color: #22282E;
}
html[dir=rtl].dark-mode .bs-popover-right > .arrow::after {
  border-left-color: #22282E;
}
html[dir].dark-mode .bs-popover-bottom > .arrow::before {
  border-bottom-color: #19191a;
}
html[dir].dark-mode .bs-popover-bottom > .arrow::after {
  border-bottom-color: #22282E;
}
html[dir=ltr].dark-mode .bs-popover-left > .arrow::before {
  border-left-color: #19191a;
}
html[dir=rtl].dark-mode .bs-popover-left > .arrow::before {
  border-right-color: #19191a;
}
html[dir=ltr].dark-mode .bs-popover-left > .arrow::after {
  border-left-color: #22282E;
}
html[dir=rtl].dark-mode .bs-popover-left > .arrow::after {
  border-right-color: #22282E;
}
html.dark-mode .card {
  /* @alternate */
}
html[dir].dark-mode .card {
  border-color: #19191A;
  background-color: #22282E;
  box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.1), 0px 3px 4px 0px rgba(0, 0, 0, 0.04), 0px 1px 8px 0px rgba(0, 0, 0, 0.02);
}
html.dark-mode .card-title {
  color: #F2F9FF;
}
html[dir].dark-mode .card-header {
  background-color: transparent;
  border-bottom-color: #19191A;
}
html[dir].dark-mode .card-footer {
  background-color: transparent;
  border-top-color: #19191A;
}
html[dir].dark-mode .card-body + .card-body {
  border-top-color: #19191A;
}
html.dark-mode .card--elevated:hover {
  /* @alternate */
}
html[dir].dark-mode .card--elevated:hover {
  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.1), 0px 5px 8px 0px rgba(0, 0, 0, 0.04), 0px 1px 14px 0px rgba(0, 0, 0, 0.02);
}
html.dark-mode .card--raised {
  /* @alternate */
}
html[dir].dark-mode .card--raised {
  box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.1), 0px 10px 14px 1px rgba(0, 0, 0, 0.04), 0px 4px 18px 3px rgba(0, 0, 0, 0.02);
}
html[dir].dark-mode .card--connect::after {
  background-color: #19191A;
}
html[dir].dark-mode .card-feedback::before, html[dir].dark-mode .card-feedback::after {
  border-top-color: #19191A;
}
html[dir].dark-mode .card-feedback::after {
  border-top-color: #22282E;
}
html[dir=ltr].dark-mode .blockquote {
  border-left-color: #19191A;
}
html[dir=rtl].dark-mode .blockquote {
  border-right-color: #19191A;
}
html[dir=ltr].dark-mode .blockquote--reverse {
  border-left: none;
  border-right-color: #19191A;
}
html[dir=rtl].dark-mode .blockquote--reverse {
  border-right: none;
  border-left-color: #19191A;
}
html.dark-mode .chart-legend-item {
  color: rgba(242, 249, 255, 0.5);
}
html[dir].dark-mode .chart-legend-item {
  border-color: #19191A;
}
html.dark-mode #chart-tooltip .popover-body {
  color: rgba(242, 249, 255, 0.7);
}
html[dir].dark-mode .progress {
  background-color: #202224;
}
html[dir].dark-mode .avatar-group .avatar-img, html[dir].dark-mode .avatar-group .avatar-title {
  border-color: #22282E;
}
html.dark-mode .table {
  color: #F2F9FF;
}
html[dir].dark-mode .table th, html[dir].dark-mode .table td {
  border-top-color: #19191A;
}
html[dir].dark-mode .table thead th {
  border-bottom-color: #19191A;
}
html[dir].dark-mode .table tbody + tbody {
  border-top-color: #19191A;
}
html.dark-mode .table thead th {
  color: rgba(242, 249, 255, 0.7);
}
html[dir].dark-mode .table tbody .selected > td {
  background-color: rgba(29, 33, 38, 0.5);
}
html.dark-mode .table .sort.asc, html.dark-mode .table .sort.desc {
  color: #F2F9FF;
}
html[dir].dark-mode .table-bordered {
  border-color: #19191A;
}
html[dir].dark-mode .table-bordered th, html[dir].dark-mode .table-bordered td {
  border-color: #19191A;
}
html.dark-mode .dashboard-area-tabs__tab, html.dark-mode .dashboard-area-tabs__tab * {
  color: #F2F9FF;
}
html[dir].dark-mode .dashboard-area-tabs__tab:not(.active) {
  background-color: #1D2126;
}
html.dark-mode .dashboard-area-tabs__tab:not(.active), html.dark-mode .dashboard-area-tabs__tab:not(.active) * {
  color: rgba(242, 249, 255, 0.5);
}
html.dark-mode .navbar-shadow {
  /* @alternate */
}
html[dir].dark-mode .navbar-shadow {
  box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.1), 0px 10px 14px 1px rgba(0, 0, 0, 0.04), 0px 4px 18px 3px rgba(0, 0, 0, 0.02);
}
html[dir].dark-mode .form-image-group :not(:checked) ~ label {
  border-color: #19191A;
}
html.dark-mode .form-label {
  color: rgba(242, 249, 255, 0.7);
}
html[dir].dark-mode .card-form__body {
  background-color: #1f2429;
}
html.dark-mode .card-form__body label:not([class]) {
  text-transform: uppercase;
  font-size: 0.707rem;
  color: rgba(242, 249, 255, 0.7);
}
html.dark-mode .card-header-tabs-basic a {
  color: rgba(242, 249, 255, 0.54);
}
html.dark-mode .card-header-tabs-basic a:hover {
  color: rgba(242, 249, 255, 0.84);
}
html.dark-mode .card-header-tabs-basic .active {
  color: #F2F9FF;
}
html.dark-mode .page-link {
  color: rgba(242, 249, 255, 0.7);
}
html[dir].dark-mode .page-link {
  background-color: #22282E;
  border-color: #19191A;
}
html.dark-mode .page-link:hover {
  color: rgba(191, 225, 255, 0.7);
}
html[dir].dark-mode .page-link:hover {
  background-color: #171b1f;
  border-color: #0d0d0d;
}
html.dark-mode .btn-link {
  color: rgba(242, 249, 255, 0.7);
}
html.dark-mode .btn-link:hover {
  color: rgba(242, 249, 255, 0.5);
}
html[dir].dark-mode .page-nav::before {
  background-color: #19191A;
}
html.dark-mode .page-nav .page-nav__menu a {
  color: rgba(242, 249, 255, 0.7);
}
html[dir].dark-mode .page-nav .page-nav__menu a:not(.active)::before {
  background-color: #282e34;
  border-color: #19191A;
}
html[dir].dark-mode .page-nav .page-nav__menu a.active::before {
  border-color: #262627;
}
html.dark-mode .list-group:not(.list-group-flush) {
  /* @alternate */
}
html[dir].dark-mode .list-group:not(.list-group-flush) {
  box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);
}
html[dir].dark-mode .list-group-item {
  background-color: #22282E;
  border-color: #19191A;
}
html[dir].dark-mode .footer {
  background-color: #1D2126;
}
html.dark-mode .menu-modal .menu .nav-link:not(.active) {
  color: rgba(242, 249, 255, 0.7);
}
html.dark-mode .menu-modal .menu .nav-link.active:hover {
  color: rgba(39, 44, 51, 0.7);
}
html.dark-mode .sidebar {
  /* @alternate */
}
html[dir].dark-mode .sidebar {
  box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.1), 0px 3px 4px 0px rgba(0, 0, 0, 0.04), 0px 1px 8px 0px rgba(0, 0, 0, 0.02);
}
html[dir].dark-mode .layout-boxed .page-content {
  background-color: #1D2126;
}
@media (min-width: 992px) {
  html.dark-mode .layout-boxed .page-content {
    /* @alternate */
  }
  html[dir].dark-mode .layout-boxed .page-content {
    box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.1), 0px 3px 4px 0px rgba(0, 0, 0, 0.04), 0px 1px 8px 0px rgba(0, 0, 0, 0.02);
  }
}
html.dark-mode .layout-boxed #default-drawer .sidebar-brand {
  /* @alternate */
}
html[dir].dark-mode .layout-boxed #default-drawer .sidebar-brand {
  box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.1), 0px 3px 4px 0px rgba(0, 0, 0, 0.04), 0px 1px 8px 0px rgba(0, 0, 0, 0.02);
}
html[dir].dark-mode .layout-boxed .page-separator__text {
  background-color: #1D2126;
}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvc2Nzcy9kYXJrLW1vZGUuc2NzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19ob3Zlci5zY3NzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JyZWFrcG9pbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BtYXRlcmlhbC9lbGV2YXRpb24vX21peGlucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNDRTtFQUNFLGVBbENzQjtDQWlDeEI7RUFFRSwwQkFqQ3NCO0NBSjFCO0FBd0NFOztFQUVFO0NBdENKO0FDS0U7O0VEb0NJO0NBckNOO0FBNkNFOztFQUVFLGVBckRzQjtDQVUxQjtBQWtERTtFQUNFO0NBaERKO0FBa0RFO0VBQ0Usb0JBOURzQjtDQWMxQjtBQW1ERTtFQUFhO0NBaERmO0FBaURFO0VBQVc7Q0E5Q2I7QUErQ0U7RUFBd0I7Q0E1QzFCO0FBNkNFO0VBQVc7Q0ExQ2I7QUEyQ0U7RUFBWTtDQXhDZDtBQTJDSTtFQUNFO0NBekNOO0FBNENNO0VBQ0U7Q0ExQ1I7QUF5Q007RUFDRTtDQTFDUjtBQTRDTTtFQUNFO0NBMUNSO0FBeUNNO0VBQ0U7Q0ExQ1I7QUFzQ007RUFDRTtDQXBDUjtBQW1DTTtFQUNFO0NBcENSO0FBc0NNO0VBQ0U7Q0FwQ1I7QUFtQ007RUFDRTtDQXBDUjtBQWdDTTtFQUNFO0NBOUJSO0FBZ0NNO0VBQ0U7Q0E5QlI7QUEwQk07RUFDRTtDQXhCUjtBQTBCTTtFQUNFO0NBeEJSO0FBZ0JJO0VBQ0U7Q0FkTjtBQWlCTTtFQUNFO0NBZlI7QUFjTTtFQUNFO0NBZlI7QUFpQk07RUFDRTtDQWZSO0FBY007RUFDRTtDQWZSO0FBV007RUFDRTtDQVRSO0FBUU07RUFDRTtDQVRSO0FBV007RUFDRTtDQVRSO0FBUU07RUFDRTtDQVRSO0FBS007RUFDRTtDQUhSO0FBS007RUFDRTtDQUhS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Q0U7RUdyY0UsMEhBOEdXO0NINlNmO0FBZ0RFO0VBQ0UsMEJBNWhCc0I7RUE2aEJ0QixzQkE1aEJzQjtDQThlMUI7QUFxREU7RUFDRSwwQkEzaUJzQjtDQXdmMUI7QUFrRUU7RUFDRTtDQWhFSjtBQW1FRTtFQUNFO0NBakVKO0FBb0VFO0VHN2VFO0NINmFKO0FBZ0VFO0VHNWVFLDBIQThHVztDSDhUZjtBQXlFSTtFQUNFLDBCQTVrQm9CO0NBcWdCMUI7QUVoZEk7RUZzaEJBO0lHdGZBO0dIcWJGO0VBaUVFO0lHcmZBLDBIQThHVztHSHNVYjtDQUNGO0FBc0VJO0VHNWZBO0NIMGJKO0FBa0VJO0VHM2ZBLDBIQThHVztDSDJVZjtBQXFFSTtFQUNFLDBCQXJsQm9CIiwiZmlsZSI6ImRpc3QvYXNzZXRzL2Nzcy9kYXJrLW1vZGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQG1hdGVyaWFsL2VsZXZhdGlvblxuQHVzZSAnQG1hdGVyaWFsL2VsZXZhdGlvbi9taXhpbnMnIGFzIG1kYy1lbGV2YXRpb24tbWl4aW5zO1xuXG5AaW1wb3J0ICcuL3ZhcmlhYmxlcyc7XG5cbiRkYXJrLWJvZHktY29sb3I6ICAgICAgICAgI0YyRjlGRiAhZGVmYXVsdDtcbiRkYXJrLWhlYWRpbmdzLWNvbG9yOiAgICAgJGRhcmstYm9keS1jb2xvciAhZGVmYXVsdDtcbiRkYXJrLWJvZHktYmc6ICAgICAgICAgICAgIzFEMjEyNiAhZGVmYXVsdDtcbiRkYXJrLWJvcmRlci1jb2xvcjogICAgICAgIzE5MTkxQSAhZGVmYXVsdDtcblxuLy8gY2FyZFxuXG4kZGFyay1jYXJkLXNoYWRvdy1iYXNlLWNvbG9yOiAgIzAwMDAwMCAhZGVmYXVsdDtcbiRkYXJrLWNhcmQtYmc6ICAgICAgICAgICAgIzIyMjgyRSAhZGVmYXVsdDtcbiRkYXJrLWNhcmQtYm9yZGVyLWNvbG9yOiAgIzE5MTkxQSAhZGVmYXVsdDtcblxuLy8gcGFnaW5hdGlvblxuXG4kZGFyay1wYWdpbmF0aW9uLWNvbG9yOiAgICAgICAgICAgICAgICAgIHJnYmEoJGRhcmstYm9keS1jb2xvciwgLjcpICFkZWZhdWx0O1xuJGRhcmstcGFnaW5hdGlvbi1iZzogICAgICAgICAgICAgICAgICAgICAkZGFyay1jYXJkLWJnICFkZWZhdWx0O1xuJGRhcmstcGFnaW5hdGlvbi1ib3JkZXItY29sb3I6ICAgICAgICAgICAkZGFyay1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG5cbiRkYXJrLXBhZ2luYXRpb24taG92ZXItY29sb3I6ICAgICAgICAgICAgZGFya2VuKCRkYXJrLXBhZ2luYXRpb24tY29sb3IsIDEwJSkgIWRlZmF1bHQ7XG4kZGFyay1wYWdpbmF0aW9uLWhvdmVyLWJnOiAgICAgICAgICAgICAgIGRhcmtlbigkZGFyay1jYXJkLWJnLCA1JSkgIWRlZmF1bHQ7XG4kZGFyay1wYWdpbmF0aW9uLWhvdmVyLWJvcmRlci1jb2xvcjogICAgIGRhcmtlbigkZGFyay1ib3JkZXItY29sb3IsIDUlKSAhZGVmYXVsdDtcblxuLy8gcG9wb3ZlclxuJGRhcmstcG9wb3Zlci1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICAkZGFyay1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kZGFyay1wb3BvdmVyLWJnOiAgICAgICAgICAgICAgICAgICAgICAgICRkYXJrLWNhcmQtYmcgIWRlZmF1bHQ7XG4kZGFyay1wb3BvdmVyLWFycm93LWNvbG9yOiAgICAgICAgICAgICAgICRkYXJrLXBvcG92ZXItYmcgIWRlZmF1bHQ7XG4kZGFyay1wb3BvdmVyLWFycm93LW91dGVyLWNvbG9yOiAgICAgICAgIGZhZGUtaW4oJGRhcmstcG9wb3Zlci1ib3JkZXItY29sb3IsIC4wNSkgIWRlZmF1bHQ7XG5cbmh0bWwuZGFyay1tb2RlIHtcblxuICAvLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gX3JlYm9vdC5zY3NzIC8vXG4gIC8vLy8vLy8vLy8vLy8vLy8vL1xuICBcbiAgYm9keSB7XG4gICAgY29sb3I6ICRkYXJrLWJvZHktY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstYm9keS1iZztcbiAgfVxuXG4gIC5saW5rLWNvbG9yLFxuICBhOm5vdChbY2xhc3NdKSB7XG4gICAgY29sb3I6IHJnYmEoJGRhcmstYm9keS1jb2xvciwgLjcpO1xuICAgIFxuICAgIEBpbmNsdWRlIGhvdmVyIHtcbiAgICAgIGNvbG9yOiByZ2JhKCRkYXJrLWJvZHktY29sb3IsIC41KTtcbiAgICB9XG4gIH1cblxuICAvLy8vLy8vLy8vLy8vLy8vXG4gIC8vIF90eXBlLnNjc3MgLy9cbiAgLy8vLy8vLy8vLy8vLy8vL1xuICBcbiAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNixcbiAgLmgxLCAuaDIsIC5oMywgLmg0LCAuaDUsIC5oNiB7XG4gICAgY29sb3I6ICRkYXJrLWhlYWRpbmdzLWNvbG9yO1xuICB9XG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyBfaGVscGVycy5zY3NzIC8vXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgXG4gIC5iZy1ib2R5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ib2R5LWJnICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmJnLWFsdCB7XG4gICAgYmFja2dyb3VuZDogJGRhcmstYm9keS1iZztcbiAgfVxuXG4gIC50ZXh0LWJvZHkgeyBjb2xvcjogJGRhcmstYm9keS1jb2xvciAhaW1wb3J0YW50OyB9XG4gIC50ZXh0LTIwIHsgY29sb3I6IHJnYmEoJGRhcmstYm9keS1jb2xvciwgLjIpICFpbXBvcnRhbnQ7IH1cbiAgLnRleHQtNTAsIC50ZXh0LW11dGVkIHsgY29sb3I6IHJnYmEoJGRhcmstYm9keS1jb2xvciwgLjUpICFpbXBvcnRhbnQ7IH1cbiAgLnRleHQtNzAgeyBjb2xvcjogcmdiYSgkZGFyay1ib2R5LWNvbG9yLCAuNykgIWltcG9ydGFudDsgfVxuICAudGV4dC0xMDAgeyBjb2xvcjogJGRhcmstYm9keS1jb2xvciAhaW1wb3J0YW50OyB9XG4gIFxuICBAZWFjaCAkc2l6ZSBpbiAoMSwgMiwgMywgNCkge1xuICAgIC5ib3JkZXItI3skc2l6ZX0ge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkZGFyay1ib3JkZXItY29sb3IgIWltcG9ydGFudDtcbiAgICB9XG4gICAgQGVhY2ggJHBvc2l0aW9uIGluIChsZWZ0LCByaWdodCwgdG9wLCBib3R0b20pIHtcbiAgICAgIC5ib3JkZXItI3skcG9zaXRpb259LSN7JHNpemV9IHtcbiAgICAgICAgYm9yZGVyLSN7JHBvc2l0aW9ufS1jb2xvcjogJGRhcmstYm9yZGVyLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICAuYm9yZGVyLSN7JHBvc2l0aW9ufS0jeyRzaXplfSB7XG4gICAgICAgIGJvcmRlci0jeyRwb3NpdGlvbn0tY29sb3I6ICRkYXJrLWJvcmRlci1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCkge1xuICAgICAgJGluZml4OiBicmVha3BvaW50LWluZml4KCRicmVha3BvaW50LCAkZ3JpZC1icmVha3BvaW50cyk7XG5cbiAgICAgIC5ib3JkZXIjeyRpbmZpeH0gICAgICAgICB7IGJvcmRlci1jb2xvcjogJGRhcmstYm9yZGVyLWNvbG9yICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5ib3JkZXItdG9wI3skaW5maXh9ICAgICB7IGJvcmRlci10b3AtY29sb3I6ICRkYXJrLWJvcmRlci1jb2xvciAhaW1wb3J0YW50OyB9XG4gICAgICAuYm9yZGVyLXJpZ2h0I3skaW5maXh9ICAgeyBib3JkZXItcmlnaHQtY29sb3I6ICRkYXJrLWJvcmRlci1jb2xvciAhaW1wb3J0YW50OyB9XG4gICAgICAuYm9yZGVyLWJvdHRvbSN7JGluZml4fSAgeyBib3JkZXItYm90dG9tLWNvbG9yOiAkZGFyay1ib3JkZXItY29sb3IgIWltcG9ydGFudDsgfVxuICAgICAgLmJvcmRlci1sZWZ0I3skaW5maXh9ICAgIHsgYm9yZGVyLWxlZnQtY29sb3I6ICRkYXJrLWJvcmRlci1jb2xvciAhaW1wb3J0YW50OyB9XG5cbiAgICB9XG4gIH1cblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIF9ib3JkZXJzLnNjc3MgLy9cbiAgLy8vLy8vLy8vLy8vLy8vLy8vL1xuICBcbiAgLmJvcmRlciAgICAgICAgIHsgYm9yZGVyLWNvbG9yOiAkZGFyay1ib3JkZXItY29sb3IgIWltcG9ydGFudDsgfVxuICAuYm9yZGVyLXRvcCAgICAgeyBib3JkZXItdG9wLWNvbG9yOiAkZGFyay1ib3JkZXItY29sb3IgIWltcG9ydGFudDsgfVxuICAuYm9yZGVyLXJpZ2h0ICAgeyBib3JkZXItcmlnaHQtY29sb3I6ICRkYXJrLWJvcmRlci1jb2xvciAhaW1wb3J0YW50OyB9XG4gIC5ib3JkZXItYm90dG9tICB7IGJvcmRlci1ib3R0b20tY29sb3I6ICRkYXJrLWJvcmRlci1jb2xvciAhaW1wb3J0YW50OyB9XG4gIC5ib3JkZXItbGVmdCAgICB7IGJvcmRlci1sZWZ0LWNvbG9yOiAkZGFyay1ib3JkZXItY29sb3IgIWltcG9ydGFudDsgfVxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIF9hbGVydC5zY3NzIC8vXG4gIC8vLy8vLy8vLy8vLy8vLy8vXG4gIFxuICAuYWxlcnQtc29mdC13YXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCNFNEE5M0MsIC4wNSk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKCNFNEE5M0MsIC4zKTtcbiAgfVxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gX2JyZWFkY3J1bWIuc2NzcyAvL1xuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFxuICAuYnJlYWRjcnVtYiB7XG4gICAgY29sb3I6IHJnYmEoJGRhcmstYm9keS1jb2xvciwgLjUpO1xuICB9XG5cbiAgLmJyZWFkY3J1bWItaXRlbS5hY3RpdmUge1xuICAgIGNvbG9yOiByZ2JhKCRkYXJrLWJvZHktY29sb3IsIC41KTtcbiAgfVxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIF9wYWdlLXNlcGFyYXRvci5zY3NzIC8vXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgLnBhZ2Utc2VwYXJhdG9yIHtcbiAgICBjb2xvcjogcmdiYSgkZGFyay1ib2R5LWNvbG9yLCAuNSk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstYm9yZGVyLWNvbG9yO1xuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstYm9keS1iZztcbiAgICAgIGNvbG9yOiAkZGFyay1oZWFkaW5ncy1jb2xvcjtcbiAgICB9XG4gICAgJl9fYmctYm90dG9tIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWJvZHktYmc7XG4gICAgfVxuICAgICZfX2JnLXRvcCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ib2R5LWJnO1xuICAgIH1cbiAgfVxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyBfYWNjb3JkaW9uLnNjc3MgLy9cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgLmFjY29yZGlvbiB7XG4gICAgJl9fdG9nZ2xlIHtcbiAgICAgIGNvbG9yOiAkZGFyay1ib2R5LWNvbG9yO1xuICAgIH1cblxuICAgICZfX21lbnUtbGluayB7XG4gICAgICBjb2xvcjogcmdiYSgkZGFyay1ib2R5LWNvbG9yLCAuNyk7XG4gICAgXG4gICAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICAgIGNvbG9yOiByZ2JhKCRkYXJrLWJvZHktY29sb3IsIC41KTtcbiAgICAgIH1cblxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICBjb2xvcjogJGRhcmstYm9keS1jb2xvcjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGRhcmstY2FyZC1ib3JkZXItY29sb3I7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi0tYm94ZWQgLmFjY29yZGlvbl9faXRlbSB7XG4gICAgICBib3JkZXItY29sb3I6ICRkYXJrLWNhcmQtYm9yZGVyLWNvbG9yO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstY2FyZC1iZztcblxuICAgICAgQGlmICRlbmFibGUtY2FyZC1zaGFkb3cge1xuICAgICAgICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uLW1peGlucy5lbGV2YXRpb24oMywgJGRhcmstY2FyZC1zaGFkb3ctYmFzZS1jb2xvciwgJHNoYWRvdy1vcGFjaXR5LWJvb3N0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gcmV2ZWFsIGNhcmRzIC8vXG4gIC8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIC5tZGstcmV2ZWFsX19jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1jYXJkLWJnO1xuICB9XG5cbiAgLm1kay1yZXZlYWxfX3BhcnRpYWwge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoJGRhcmstY2FyZC1iZywgMCkgNjAlLCByZ2JhKCRkYXJrLWNhcmQtYmcsIC45NSkgODAlLCByZ2JhKCRkYXJrLWNhcmQtYmcsIDEpIDEwMCUpO1xuICB9XG5cbiAgLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gX3N0YWNrLnNjc3MgLy9cbiAgLy8vLy8vLy8vLy8vLy8vLy9cblxuICAuc3RhY2sge1xuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogJGRhcmstY2FyZC1iZztcbiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDAgZGFya2VuKCRkYXJrLWNhcmQtYmcsIDIlKSBpbnNldCwgMCAycHggMCBkYXJrZW4oJGRhcmstY2FyZC1iZywgMiUpO1xuICAgIH1cbiAgfVxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gX3BvcG92ZXIuc2NzcyAvL1xuICAvLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgLnBvcG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLXBvcG92ZXItYmc7XG4gICAgYm9yZGVyLWNvbG9yOiAkZGFyay1wb3BvdmVyLWJvcmRlci1jb2xvcjtcbiAgfVxuXG4gIC5wb3BvdmVyLWxnIHtcbiAgICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uLW1peGlucy5lbGV2YXRpb24oMTAsICMwMDAsICRzaGFkb3ctb3BhY2l0eS1ib29zdCk7XG4gIH1cblxuICAuYnMtcG9wb3Zlci10b3Age1xuICAgID4gLmFycm93IHtcbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRkYXJrLXBvcG92ZXItYXJyb3ctb3V0ZXItY29sb3I7XG4gICAgICB9XG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRkYXJrLXBvcG92ZXItYXJyb3ctY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmJzLXBvcG92ZXItcmlnaHQge1xuICAgID4gLmFycm93IHtcbiAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJGRhcmstcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjtcbiAgICAgIH1cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAkZGFyay1wb3BvdmVyLWFycm93LWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5icy1wb3BvdmVyLWJvdHRvbSB7XG4gICAgPiAuYXJyb3cge1xuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGRhcmstcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjtcbiAgICAgIH1cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGRhcmstcG9wb3Zlci1hcnJvdy1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuYnMtcG9wb3Zlci1sZWZ0IHtcbiAgICA+IC5hcnJvdyB7XG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBib3JkZXItbGVmdC1jb2xvcjogJGRhcmstcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjtcbiAgICAgIH1cbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICRkYXJrLXBvcG92ZXItYXJyb3ctY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8vLy8vLy8vLy8vLy8vL1xuICAvLyBfY2FyZC5zY3NzIC8vXG4gIC8vLy8vLy8vLy8vLy8vLy9cblxuICAuY2FyZCB7XG4gICAgYm9yZGVyLWNvbG9yOiAkZGFyay1jYXJkLWJvcmRlci1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1jYXJkLWJnO1xuXG4gICAgQGlmICRlbmFibGUtY2FyZC1zaGFkb3cge1xuICAgICAgQGluY2x1ZGUgbWRjLWVsZXZhdGlvbi1taXhpbnMuZWxldmF0aW9uKDMsICRkYXJrLWNhcmQtc2hhZG93LWJhc2UtY29sb3IsICRzaGFkb3ctb3BhY2l0eS1ib29zdCk7XG4gICAgfVxuICB9XG5cbiAgLmNhcmQtdGl0bGUge1xuICAgIGNvbG9yOiAkZGFyay1oZWFkaW5ncy1jb2xvcjtcbiAgfVxuXG4gIC5jYXJkLWhlYWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGRhcmstYm9yZGVyLWNvbG9yO1xuICB9XG5cbiAgLmNhcmQtZm9vdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAkZGFyay1ib3JkZXItY29sb3I7XG4gIH1cblxuICAuY2FyZC1ib2R5ICsgLmNhcmQtYm9keSB7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogJGRhcmstYm9yZGVyLWNvbG9yO1xuICB9XG5cbiAgLmNhcmQtLWVsZXZhdGVkIHtcbiAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uLW1peGlucy5lbGV2YXRpb24oNSwgJGRhcmstY2FyZC1zaGFkb3ctYmFzZS1jb2xvciwgJHNoYWRvdy1vcGFjaXR5LWJvb3N0KTtcbiAgICB9XG4gIH1cblxuICAuY2FyZC0tcmFpc2VkIHtcbiAgICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uLW1peGlucy5lbGV2YXRpb24oMTAsICRkYXJrLWNhcmQtc2hhZG93LWJhc2UtY29sb3IsICRzaGFkb3ctb3BhY2l0eS1ib29zdCk7XG4gIH1cblxuICAuY2FyZC0tY29ubmVjdDo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWJvcmRlci1jb2xvcjtcbiAgfVxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gX2NhcmQtZmVlZGJhY2suc2NzcyAvL1xuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgLmNhcmQtZmVlZGJhY2sge1xuICAgICY6OmJlZm9yZSwgXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJGRhcmstY2FyZC1ib3JkZXItY29sb3I7XG4gICAgfVxuICAgICY6OmFmdGVyIHtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICRkYXJrLWNhcmQtYmc7XG4gICAgfVxuICB9XG5cbiAgLy8vLy8vLy8vLy8vLy8vL1xuICAvLyBfdHlwZS5zY3NzIC8vXG4gIC8vLy8vLy8vLy8vLy8vLy9cblxuICAuYmxvY2txdW90ZSB7XG4gICAgYm9yZGVyLWxlZnQtY29sb3I6ICRkYXJrLWJvcmRlci1jb2xvcjtcbiAgfVxuXG4gIC5ibG9ja3F1b3RlLS1yZXZlcnNlIHtcbiAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICBib3JkZXItcmlnaHQtY29sb3I6ICRkYXJrLWJvcmRlci1jb2xvcjtcbiAgfVxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIGZtLXBsdWdpbi1jaGFydGpzL3Njc3MvY2hhcnRqcy5zY3NzIC8vXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFxuICAuY2hhcnQtbGVnZW5kLWl0ZW0ge1xuICAgIGNvbG9yOiByZ2JhKCRkYXJrLWJvZHktY29sb3IsIC41KTtcbiAgICBib3JkZXItY29sb3I6ICRkYXJrLWJvcmRlci1jb2xvcjtcbiAgfVxuXG4gICNjaGFydC10b29sdGlwIC5wb3BvdmVyLWJvZHkge1xuICAgIGNvbG9yOiByZ2JhKCRkYXJrLWJvZHktY29sb3IsIC43KTtcbiAgfVxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIF9wcm9ncmVzcy5zY3NzIC8vXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFxuICAucHJvZ3Jlc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyMDIyMjQ7XG4gIH1cblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gZm0tYXZhdGFyL2F2YXRhci5zY3NzIC8vXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIC5hdmF0YXItZ3JvdXAge1xuICAgIC5hdmF0YXItaW1nLFxuICAgIC5hdmF0YXItdGl0bGUge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjMjIyODJFO1xuICAgIH1cbiAgfVxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyBfdGFibGVzLnNjc3MgLy9cbiAgLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgLnRhYmxlIHtcbiAgICBjb2xvcjogJGRhcmstYm9keS1jb2xvcjtcblxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICRkYXJrLWJvcmRlci1jb2xvcjtcbiAgICB9XG5cbiAgICB0aGVhZCB0aCB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkZGFyay1ib3JkZXItY29sb3I7XG4gICAgfVxuXG4gICAgdGJvZHkgKyB0Ym9keSB7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiAkZGFyay1ib3JkZXItY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLnRhYmxlIHRoZWFkIHRoIHtcbiAgICBjb2xvcjogcmdiYSgkZGFyay1ib2R5LWNvbG9yLCAuNyk7XG4gIH1cblxuICAudGFibGUgdGJvZHkgLnNlbGVjdGVkID4gdGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGRhcmstYm9keS1iZywgLjUpO1xuICB9XG5cbiAgLnRhYmxlIC5zb3J0IHtcbiAgICAmLmFzYyxcbiAgICAmLmRlc2Mge1xuICAgICAgY29sb3I6ICRkYXJrLWJvZHktY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLnRhYmxlLWJvcmRlcmVkIHtcbiAgICBib3JkZXItY29sb3I6ICRkYXJrLWJvcmRlci1jb2xvcjtcblxuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGRhcmstYm9yZGVyLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIHVpLWh1bWEvc2Nzcy9fZGFzaGJvYXJkLWFyZWEtdGFicy5zY3NzIC8vXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgLmRhc2hib2FyZC1hcmVhLXRhYnNfX3RhYiB7XG4gICAgJiwgKiB7XG4gICAgICBjb2xvcjogJGRhcmstYm9keS1jb2xvcjtcbiAgICB9XG5cbiAgICAmOm5vdCguYWN0aXZlKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ib2R5LWJnO1xuICAgICAgJiwgKiB7XG4gICAgICAgIGNvbG9yOiByZ2JhKCRkYXJrLWJvZHktY29sb3IsIC41KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIHVpLWh1bWEvc2Nzcy9fbmF2YmFyLnNjc3MgLy9cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIC5uYXZiYXItc2hhZG93IHtcbiAgICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uLW1peGlucy5lbGV2YXRpb24oMTAsICMwMDAsICRzaGFkb3ctb3BhY2l0eS1ib29zdCk7XG4gIH1cblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gYnYtZm9ybS1pbWFnZS1ncm91cC9zcmMvQnZGb3JtSW1hZ2VHcm91cC5zY3NzIC8vXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIC5mb3JtLWltYWdlLWdyb3VwIDpub3QoOmNoZWNrZWQpIH4gbGFiZWwge1xuICAgIGJvcmRlci1jb2xvcjogJGRhcmstYm9yZGVyLWNvbG9yO1xuICB9XG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gdWktaHVtYS9zY3NzL19mb3JtLnNjc3MgLy9cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgXG4gIC5mb3JtLWxhYmVsIHtcbiAgICBjb2xvcjogcmdiYSgkZGFyay1ib2R5LWNvbG9yLCAuNyk7XG4gIH1cblxuICAuY2FyZC1mb3JtX19ib2R5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRkYXJrLWJvZHktYmcsIDElKTtcblxuICAgIGxhYmVsOm5vdChbY2xhc3NdKSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZm9udC1zaXplOiAwLjcwN3JlbTtcbiAgICAgIGNvbG9yOiByZ2JhKCRkYXJrLWJvZHktY29sb3IsIC43KTtcbiAgICB9XG4gIH1cblxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyB1aS1odW1hL3Njc3MvX2NhcmQtaGVhZGVyLXRhYnMtYmFzaWMuc2NzcyAvL1xuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIC5jYXJkLWhlYWRlci10YWJzLWJhc2ljIHtcbiAgICBhIHtcbiAgICAgIGNvbG9yOiByZ2JhKCRkYXJrLWJvZHktY29sb3IsIC41NCk7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHJnYmEoJGRhcmstYm9keS1jb2xvciwgLjg0KVxuICAgICAgfVxuICAgIH1cbiAgICAuYWN0aXZlIHtcbiAgICAgIGNvbG9yOiAkZGFyay1ib2R5LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gX3BhZ2luYXRpb24uc2NzcyAvL1xuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgLnBhZ2UtbGluayB7XG4gICAgY29sb3I6ICRkYXJrLXBhZ2luYXRpb24tY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstcGFnaW5hdGlvbi1iZztcbiAgICBib3JkZXItY29sb3I6ICRkYXJrLXBhZ2luYXRpb24tYm9yZGVyLWNvbG9yO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJGRhcmstcGFnaW5hdGlvbi1ob3Zlci1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLXBhZ2luYXRpb24taG92ZXItYmc7XG4gICAgICBib3JkZXItY29sb3I6ICRkYXJrLXBhZ2luYXRpb24taG92ZXItYm9yZGVyLWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyBfYnV0dG9uLnNjc3MgLy9cbiAgLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgLmJ0bi1saW5rIHtcbiAgICBjb2xvcjogcmdiYSgkZGFyay1ib2R5LWNvbG9yLCAuNyk7XG5cbiAgICBAaW5jbHVkZSBob3ZlciB7XG4gICAgICBjb2xvcjogcmdiYSgkZGFyay1ib2R5LWNvbG9yLCAuNSk7XG4gICAgfVxuICB9XG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIHVpLWh1bWEvc2Nzcy9fcGFnZS1uYXYuc2NzcyAvL1xuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAucGFnZS1uYXYge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ib3JkZXItY29sb3I7XG4gICAgfVxuICAgIC5wYWdlLW5hdl9fbWVudSB7XG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6IHJnYmEoJGRhcmstYm9keS1jb2xvciwgLjcpO1xuICAgICAgICAmOm5vdCguYWN0aXZlKTo6YmVmb3JlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRkYXJrLWJvZHktYmcsIDUlKTtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRkYXJrLWJvcmRlci1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYWN0aXZlOjpiZWZvcmUge1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogbGlnaHRlbigkZGFyay1ib3JkZXItY29sb3IsIDUlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgLy8gX2xpc3QtZ3JvdXAuc2NzcyAvL1xuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFxuICAubGlzdC1ncm91cDpub3QoLmxpc3QtZ3JvdXAtZmx1c2gpIHtcbiAgICBAaWYgJGVuYWJsZS1jYXJkLXNoYWRvdyB7XG4gICAgICBAaW5jbHVkZSBtZGMtZWxldmF0aW9uLW1peGlucy5lbGV2YXRpb24oMSwgJGRhcmstY2FyZC1zaGFkb3ctYmFzZS1jb2xvcik7XG4gICAgfVxuICB9XG5cbiAgLmxpc3QtZ3JvdXAtaXRlbSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstY2FyZC1iZztcbiAgICBib3JkZXItY29sb3I6ICRkYXJrLWNhcmQtYm9yZGVyLWNvbG9yO1xuICB9XG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyB1aS1odW1hL3Njc3MvX2Zvb3Rlci5zY3NzIC8vXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAuZm9vdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ib2R5LWJnO1xuICB9XG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIHVpLWh1bWEvc2Nzcy9faWNvbi1ob2xkZXIuc2NzcyAvL1xuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgXG4gIC5pY29uLWhvbGRlci0tb3V0bGluZS1tdXRlZCB7XG4gICAgLy8gQGluY2x1ZGUgaWNvbi1ob2xkZXItb3V0bGluZS12YXJpYW50KHJnYmEoJGRhcmstYm9keS1jb2xvciwgLjUpKTtcbiAgfVxuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIHVpLWh1bWEvc2Nzcy9fbWVudS1tb2RhbC5zY3NzIC8vXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIFxuICAubWVudS1tb2RhbCAubWVudSAubmF2LWxpbms6bm90KC5hY3RpdmUpIHtcbiAgICBjb2xvcjogcmdiYSgkZGFyay1ib2R5LWNvbG9yLCAuNyk7XG4gIH1cblxuICAubWVudS1tb2RhbCAubWVudSAubmF2LWxpbmsuYWN0aXZlOmhvdmVyIHtcbiAgICBjb2xvcjogcmdiYSgkYm9keS1jb2xvciwgLjcpO1xuICB9XG5cbiAgLnNpZGViYXIge1xuICAgIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24tbWl4aW5zLmVsZXZhdGlvbigzLCAjMDAwLCAkc2hhZG93LW9wYWNpdHktYm9vc3QpO1xuICB9XG5cbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyB1aS1odW1hL3Njc3MvX2xheW91dC1ib3hlZC5zY3NzIC8vXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAubGF5b3V0LWJveGVkIHtcbiAgICAucGFnZS1jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLWJvZHktYmc7XG4gICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG4gICAgICAgIEBpbmNsdWRlIG1kYy1lbGV2YXRpb24tbWl4aW5zLmVsZXZhdGlvbigzLCAjMDAwLCAkc2hhZG93LW9wYWNpdHktYm9vc3QpO1xuICAgICAgfVxuICAgIH1cbiAgICAjZGVmYXVsdC1kcmF3ZXIgLnNpZGViYXItYnJhbmQge1xuICAgICAgQGluY2x1ZGUgbWRjLWVsZXZhdGlvbi1taXhpbnMuZWxldmF0aW9uKDMsICMwMDAsICRzaGFkb3ctb3BhY2l0eS1ib29zdCk7XG4gICAgfVxuICAgIC5wYWdlLXNlcGFyYXRvcl9fdGV4dCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1ib2R5LWJnO1xuICAgIH1cbiAgfVxuXG59IiwiLy8gSG92ZXIgbWl4aW4gYW5kIGAkZW5hYmxlLWhvdmVyLW1lZGlhLXF1ZXJ5YCBhcmUgZGVwcmVjYXRlZC5cbi8vXG4vLyBPcmlnaW5hbGx5IGFkZGVkIGR1cmluZyBvdXIgYWxwaGFzIGFuZCBtYWludGFpbmVkIGR1cmluZyBiZXRhcywgdGhpcyBtaXhpbiB3YXNcbi8vIGRlc2lnbmVkIHRvIHByZXZlbnQgYDpob3ZlcmAgc3RpY2tpbmVzcyBvbiBpT1MtYW4gaXNzdWUgd2hlcmUgaG92ZXIgc3R5bGVzXG4vLyB3b3VsZCBwZXJzaXN0IGFmdGVyIGluaXRpYWwgdG91Y2guXG4vL1xuLy8gRm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHdlJ3ZlIGtlcHQgdGhlc2UgbWl4aW5zIGFuZCB1cGRhdGVkIHRoZW0gdG9cbi8vIGFsd2F5cyByZXR1cm4gdGhlaXIgcmVndWxhciBwc2V1ZG8tY2xhc3NlcyBpbnN0ZWFkIG9mIGEgc2hpbW1lZCBtZWRpYSBxdWVyeS5cbi8vXG4vLyBJc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8yNTE5NVxuXG5AbWl4aW4gaG92ZXIoKSB7XG4gICY6aG92ZXIgeyBAY29udGVudDsgfVxufVxuXG5AbWl4aW4gaG92ZXItZm9jdXMoKSB7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBwbGFpbi1ob3Zlci1mb2N1cygpIHtcbiAgJixcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGhvdmVyLWZvY3VzLWFjdGl2ZSgpIHtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxuLy9cbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcbi8vXG4vLyAgICAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpXG4vL1xuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwpKVxuLy8gICAgbWRcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRuICE9IG51bGwgYW5kICRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgNTc2cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtaW4gIT0gMCwgJG1pbiwgbnVsbCk7XG59XG5cbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIGxhcmdlc3QgKGxhc3QpIGJyZWFrcG9pbnQuXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyBjYWxjdWxhdGVkIGFzIHRoZSBtaW5pbXVtIG9mIHRoZSBuZXh0IG9uZSBsZXNzIDAuMDJweFxuLy8gdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA3NjcuOThweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEByZXR1cm4gaWYoJG5leHQsIGJyZWFrcG9pbnQtbWluKCRuZXh0LCAkYnJlYWtwb2ludHMpIC0gLjAyLCBudWxsKTtcbn1cblxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIi1zbVwiXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWluIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRsb3dlciwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJHVwcGVyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBDb3B5cmlnaHQgMjAxNyBHb29nbGUgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG4vL1xuXG5AdXNlIFwic2FzczptYXBcIjtcbkB1c2UgXCJzYXNzOm1hdGhcIjtcbkB1c2UgXCJzYXNzOm1ldGFcIjtcbkB1c2UgXCJAbWF0ZXJpYWwvYmFzZS9taXhpbnNcIiBhcyBiYXNlLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvZmVhdHVyZS10YXJnZXRpbmcvZnVuY3Rpb25zXCIgYXMgZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zO1xuQHVzZSBcIkBtYXRlcmlhbC9mZWF0dXJlLXRhcmdldGluZy9taXhpbnNcIiBhcyBmZWF0dXJlLXRhcmdldGluZy1taXhpbnM7XG5AdXNlIFwiQG1hdGVyaWFsL3RoZW1lL21peGluc1wiIGFzIHRoZW1lLW1peGlucztcbkB1c2UgXCJAbWF0ZXJpYWwvdGhlbWUvdmFyaWFibGVzXCIgYXMgdGhlbWUtdmFyaWFibGVzO1xuQHVzZSBcIi4vZnVuY3Rpb25zXCI7XG5AdXNlIFwiLi92YXJpYWJsZXNcIjtcblxuQG1peGluIGNvcmUtc3R5bGVzKCRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpKSB7XG4gICRmZWF0LWFuaW1hdGlvbjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBhbmltYXRpb24pO1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAZm9yICR6LXZhbHVlIGZyb20gMCB0aHJvdWdoIDI0IHtcbiAgICAubWRjLWVsZXZhdGlvbi0teiN7JHotdmFsdWV9IHtcbiAgICAgIEBpbmNsdWRlIGVsZXZhdGlvbigkei12YWx1ZSwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIH1cbiAgfVxuXG4gIC5tZGMtZWxldmF0aW9uLXRyYW5zaXRpb24ge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgdHJhbnNpdGlvbjogZnVuY3Rpb25zLnRyYW5zaXRpb24tdmFsdWUoKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIHdpbGwtY2hhbmdlOiB2YXJpYWJsZXMuJHByb3BlcnR5O1xuICAgIH1cbiAgfVxufVxuXG4vLy9cbi8vLyBDYWxsZWQgb25jZSBwZXIgYXBwbGljYXRpb24gdG8gc2V0IHVwIHRoZSBnbG9iYWwgZGVmYXVsdCBlbGV2YXRpb24gc3R5bGVzLlxuLy8vXG5AbWl4aW4gb3ZlcmxheS1jb21tb24oJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtYW5pbWF0aW9uOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGFuaW1hdGlvbik7XG4gICRmZWF0LXN0cnVjdHVyZTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBzdHJ1Y3R1cmUpO1xuXG4gIEBpbmNsdWRlIG92ZXJsYXktc2VsZWN0b3JfIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAgIEBpbmNsdWRlIGJhc2UtbWl4aW5zLmVtaXQtb25jZSgnbWRjLWVsZXZhdGlvbi9jb21tb24vc3RydWN0dXJlJykge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LWFuaW1hdGlvbikge1xuICAgICAgQGluY2x1ZGUgYmFzZS1taXhpbnMuZW1pdC1vbmNlKCdtZGMtZWxldmF0aW9uL2NvbW1vbi9hbmltYXRpb24nKSB7XG4gICAgICAgIHRyYW5zaXRpb246IGZ1bmN0aW9ucy5vdmVybGF5LXRyYW5zaXRpb24tdmFsdWUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBiYXNlLW1peGlucy5lbWl0LW9uY2UoJ21kYy1lbGV2YXRpb24vY29tbW9uL2NvbG9yJykge1xuICAgICAgQGluY2x1ZGUgb3ZlcmxheS1maWxsLWNvbG9yKHZhcmlhYmxlcy4kb3ZlcmxheS1jb2xvciwgJHF1ZXJ5OiAkcXVlcnkpO1xuICAgIH1cbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBzaGFkb3cgb2YgdGhlIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGJveC1zaGFkb3cgLSBUaGUgc2hhZG93IHRvIGFwcGx5IHRvIHRoZSBlbGVtZW50LlxuLy8vXG5AbWl4aW4gc2hhZG93KCRib3gtc2hhZG93LCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgYm94LXNoYWRvdzogJGJveC1zaGFkb3c7XG4gIH1cbn1cblxuLy8vXG4vLy8gU2V0cyB0aGUgZWxldmF0aW9uIG92ZXJsYXkgc3VyZmFjZSByZXF1aXJlZCBwb3NpdGlvbmluZy5cbi8vL1xuQG1peGluIG92ZXJsYXktc3VyZmFjZS1wb3NpdGlvbigkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1zdHJ1Y3R1cmU6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgc3RydWN0dXJlKTtcblxuICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1zdHJ1Y3R1cmUpIHtcbiAgICAvKiBAYWx0ZXJuYXRlICovXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgdGhlIGRpbWVuc2lvbnMgb2YgdGhlIGVsZXZhdGlvbiBvdmVybGF5LCBpbmNsdWRpbmcgcG9zaXRpb25pbmcgYW5kIHNpemluZy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggLSBUaGUgd2lkdGggb2YgdGhlIGVsZXZhdGlvbiBvdmVybGF5XG4vLy8gQHBhcmFtIHtOdW1iZXJ9IFskaGVpZ2h0XSAtIFRoZSBoZWlnaHQgb2YgdGhlIGVsZXZhdGlvbiBvdmVybGF5XG4vLy8gQHBhcmFtIHtCb29sZWFufSBbJGhhcy1jb250ZW50LXNpemluZ10gLSBTZXQgdG8gZmFsc2UgaWYgdGhlIGNvbnRhaW5lciBoYXMgbm8gY29udGVudCBzaXppbmdcbi8vL1xuQG1peGluIG92ZXJsYXktZGltZW5zaW9ucyhcbiAgJHdpZHRoLFxuICAkaGVpZ2h0OiAkd2lkdGgsXG4gICRoYXMtY29udGVudC1zaXppbmc6IHRydWUsXG4gICRxdWVyeTogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmFsbCgpXG4pIHtcbiAgJGZlYXQtc3RydWN0dXJlOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIHN0cnVjdHVyZSk7XG5cbiAgQGluY2x1ZGUgb3ZlcmxheS1zZWxlY3Rvcl8ge1xuICAgIEBpbmNsdWRlIGZlYXR1cmUtdGFyZ2V0aW5nLW1peGlucy50YXJnZXRzKCRmZWF0LXN0cnVjdHVyZSkge1xuICAgICAgd2lkdGg6ICR3aWR0aDtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcblxuICAgICAgQGlmICRoYXMtY29udGVudC1zaXppbmcge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIC8qIEBub2ZsaXAgKi9cbiAgICAgICAgbGVmdDogMDtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgLyogQG5vZmxpcCAqL1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy9cbi8vLyBTZXRzIHRoZSBlbGV2YXRpb24gb3ZlcmxheSBmaWxsIGNvbG9yLlxuLy8vIEV4cGVjdGVkIHRvIGJlIGNhbGxlZCBkaXJlY3RseSBvbiB0aGUgZWxldmF0aW9uIG92ZXJsYXkgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvciAtIFRoZSBjb2xvciBvZiB0aGUgZWxldmF0aW9uIG92ZXJsYXkuXG4vLy9cbkBtaXhpbiBvdmVybGF5LWZpbGwtY29sb3IoJGNvbG9yLCAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKSkge1xuICAkZmVhdC1jb2xvcjogZmVhdHVyZS10YXJnZXRpbmctZnVuY3Rpb25zLmNyZWF0ZS10YXJnZXQoJHF1ZXJ5LCBjb2xvcik7XG5cbiAgQGluY2x1ZGUgZmVhdHVyZS10YXJnZXRpbmctbWl4aW5zLnRhcmdldHMoJGZlYXQtY29sb3IpIHtcbiAgICBAaW5jbHVkZSB0aGVtZS1taXhpbnMucHJvcChiYWNrZ3JvdW5kLWNvbG9yLCAkY29sb3IpO1xuICB9XG59XG5cbi8vL1xuLy8vIFNldHMgdGhlIGVsZXZhdGlvbiBvdmVybGF5IG9wYWNpdHkuXG4vLy8gRXhwZWN0ZWQgdG8gYmUgY2FsbGVkIGZyb20gYSBwYXJlbnQgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkb3BhY2l0eSAtIFRoZSBvcGFjaXR5IG9mIHRoZSBlbGV2YXRpb24gb3ZlcmxheS5cbi8vL1xuQG1peGluIG92ZXJsYXktb3BhY2l0eSgkb3BhY2l0eSwgJHF1ZXJ5OiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuYWxsKCkpIHtcbiAgJGZlYXQtY29sb3I6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5jcmVhdGUtdGFyZ2V0KCRxdWVyeSwgY29sb3IpO1xuXG4gIEBpbmNsdWRlIG92ZXJsYXktc2VsZWN0b3JfIHtcbiAgICBAaW5jbHVkZSBmZWF0dXJlLXRhcmdldGluZy1taXhpbnMudGFyZ2V0cygkZmVhdC1jb2xvcikge1xuICAgICAgb3BhY2l0eTogJG9wYWNpdHk7XG4gICAgfVxuICB9XG59XG5cbi8vIEFwcGxpZXMgdGhlIGNvcnJlY3QgQ1NTIHJ1bGVzIHRvIGFuIGVsZW1lbnQgdG8gZ2l2ZSBpdCB0aGUgZWxldmF0aW9uIHNwZWNpZmllZCBieSAkei12YWx1ZS5cbi8vIFRoZSAkei12YWx1ZSBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjQuXG4vLyBJZiAkY29sb3IgaGFzIGFuIGFscGhhIGNoYW5uZWwsIGl0IHdpbGwgYmUgaWdub3JlZCBhbmQgb3ZlcnJpZGRlbi4gVG8gaW5jcmVhc2UgdGhlIG9wYWNpdHkgb2YgdGhlIHNoYWRvdywgdXNlXG4vLyAkb3BhY2l0eS1ib29zdC5cbkBtaXhpbiBlbGV2YXRpb24oXG4gICR6LXZhbHVlLFxuICAkY29sb3I6IHZhcmlhYmxlcy4kYmFzZWxpbmUtY29sb3IsXG4gICRvcGFjaXR5LWJvb3N0OiAwLFxuICAkcXVlcnk6IGZlYXR1cmUtdGFyZ2V0aW5nLWZ1bmN0aW9ucy5hbGwoKVxuKSB7XG4gIEBpZiBtZXRhLnR5cGUtb2YoJHotdmFsdWUpICE9IG51bWJlciBvciBub3QgbWF0aC5pcy11bml0bGVzcygkei12YWx1ZSkge1xuICAgIEBlcnJvciBcIiR6LXZhbHVlIG11c3QgYmUgYSB1bml0bGVzcyBudW1iZXIsIGJ1dCByZWNlaXZlZCAnI3skei12YWx1ZX0nXCI7XG4gIH1cblxuICBAaWYgJHotdmFsdWUgPCAwIG9yICR6LXZhbHVlID4gMjQge1xuICAgIEBlcnJvciBcIiR6LXZhbHVlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyNCwgYnV0IHJlY2VpdmVkICcjeyR6LXZhbHVlfSdcIjtcbiAgfVxuXG4gICRmZWF0LWNvbG9yOiBmZWF0dXJlLXRhcmdldGluZy1mdW5jdGlvbnMuY3JlYXRlLXRhcmdldCgkcXVlcnksIGNvbG9yKTtcblxuICAkY29sb3I6IHRoZW1lLXZhcmlhYmxlcy5wcm9wLXZhbHVlKCRjb2xvcik7XG5cbiAgJHVtYnJhLXotdmFsdWU6IG1hcC5nZXQodmFyaWFibGVzLiR1bWJyYS1tYXAsICR6LXZhbHVlKTtcbiAgJHBlbnVtYnJhLXotdmFsdWU6IG1hcC5nZXQodmFyaWFibGVzLiRwZW51bWJyYS1tYXAsICR6LXZhbHVlKTtcbiAgJGFtYmllbnQtei12YWx1ZTogbWFwLmdldCh2YXJpYWJsZXMuJGFtYmllbnQtbWFwLCAkei12YWx1ZSk7XG5cbiAgJHVtYnJhLWNvbG9yOiByZ2JhKCRjb2xvciwgdmFyaWFibGVzLiR1bWJyYS1vcGFjaXR5ICsgJG9wYWNpdHktYm9vc3QpO1xuICAkcGVudW1icmEtY29sb3I6IHJnYmEoJGNvbG9yLCB2YXJpYWJsZXMuJHBlbnVtYnJhLW9wYWNpdHkgKyAkb3BhY2l0eS1ib29zdCk7XG4gICRhbWJpZW50LWNvbG9yOiByZ2JhKCRjb2xvciwgdmFyaWFibGVzLiRhbWJpZW50LW9wYWNpdHkgKyAkb3BhY2l0eS1ib29zdCk7XG5cbiAgJGJveC1zaGFkb3c6IChcbiAgICAjeycjeyR1bWJyYS16LXZhbHVlfSAjeyR1bWJyYS1jb2xvcn0nfSxcbiAgICAjeycjeyRwZW51bWJyYS16LXZhbHVlfSAjeyRwZW51bWJyYS1jb2xvcn0nfSxcbiAgICAjeyRhbWJpZW50LXotdmFsdWV9ICRhbWJpZW50LWNvbG9yXG4gICk7XG5cbiAgQGluY2x1ZGUgc2hhZG93KCRib3gtc2hhZG93LCAkcXVlcnk6ICRxdWVyeSk7XG59XG5cbi8vIFByaXZhdGVcblxuLy8vXG4vLy8gU2V0cyB0aGUgZWxldmF0aW9uIG92ZXJsYXkgdHJhbnNpdGlvbiB2YWx1ZS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZHVyYXRpb24gLSBUaGUgZHVyYXRpb24gb2YgdGhlIHRyYW5zaXRpb24uXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRlYXNpbmcgLSBUaGUgZWFzaW5nIGZ1bmN0aW9uIGZvciB0aGUgdHJhbnNpdGlvbi5cbi8vLyBAcmV0dXJuIHtTdHJpbmd9XG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbkBtaXhpbiBvdmVybGF5LXNlbGVjdG9yXyB7XG4gIC5tZGMtZWxldmF0aW9uLW92ZXJsYXkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9*/