@charset "UTF-8";
/* ------------------------ DESENVOLVIDO POR -------------------------------  */
/*: Nome: Fábio Calheiros
/*: Email: fabio.calheiros@gmail.com

/*SUMÁRIO */
/* 1 - GERAL  */
html, body {
  padding: 0;
  margin: 0;
  height: 100%;
  width: 100%;
  font-family: 'Montserrat', sans-serif;
  font-size: 13px;
  color: #6c6e72;
  font-weight: 400;
}

.reset {
  padding: 0;
  margin: 0;
}

.reset li {
  list-style: none;
}

#formBusca {
  display: inline-block;
}

.submit_search {
  height: 25px;
  background-color: #681726;
  color: #FFF;
  border: none;
  text-transform: uppercase;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  -ms-border-radius: 5px;
  -o-border-radius: 5px;
  border-radius: 5px;
}

a {
  color: #5e0011;
}

.lato, .entry-text p {
  font-family: 'Lato', sans-serif;
}

.entry-text {
  padding: 8px 0 20px 0;
}

.entry-text h1 {
  font-size: 21px;
  color: #790f21;
  margin-top: 40px;
}

.entry-text h2 {
  font-size: 18px;
  color: #790f21;
  margin-top: 30px;
  margin-bottom: 0;
}

.entry-text h2 + small {
  font-size: 13px;
  font-weight: normal;
  display: block;
  margin-bottom: 15px;
  color: #787878;
  font-family: Lato, sans-serif;
}

.entry-text h3 {
  font-size: 16px;
  color: #790f21;
  margin-top: 20px;
}

.entry-text h4 {
  font-size: 14px;
  color: #790f21;
  margin-top: 20px;
}

.entry-text h5 {
  font-size: 12px;
  color: #790f21;
  margin-top: 20px;
}

.entry-text h6 {
  font-size: 10px;
  color: #790f21;
  margin-top: 20px;
}

.entry-text p {
  margin-bottom: 15px;
  font-size: 15px;
  color: #787878;
}

.entry-text .table thead th {
  color: #FFF;
  text-transform: uppercase;
  border: none;
  font-size: 14px;
  padding-top: 13px;
  padding-bottom: 15px;
  padding-left: 17px;
  font-family: Montserrat, sans-serif;
  font-weight: normal;
}

.entry-text .table tbody tr:nth-child(even) td:nth-child(odd),
.entry-text .table tbody tr:nth-child(even) th:nth-child(odd) {
  background-color: #f5f5f5 !important;
}

.entry-text .table tbody tr:nth-child(even) td,
.entry-text .table tbody tr:nth-child(even) th {
  background-color: #ececec !important;
}

.entry-text .table tbody tr tr,
.entry-text .table tbody tr th,
.entry-text .table tbody tr td {
  border: none !important;
}

.entry-text .table thead th:nth-child(odd) {
  background-color: #ffb500;
}

.entry-text .table thead th:nth-child(even) {
  background-color: #a67312;
}

.entry-text .table td,
.entry-text .table th {
  padding-left: 17px;
  font-weight: normal;
}

.entry-text .wp-caption img {
  max-width: 100%;
  margin: 0 auto;
}

.entry-text .wp-caption {
  margin: 20px 0;
  background: #f5f5f5;
  border: 0;
  max-width: 100%;
  padding: 0;
  text-align: left;
}

.entry-text .wp-caption p.wp-caption-text {
  font-size: 13px;
  line-height: 17px;
  margin: 0;
  padding: 12px 16px;
  font-family: Lato, sans-serif;
}

label {
  color: #790f21;
  font-weight: 700;
  font-size: 12px;
  text-transform: uppercase;
}

input.form-control {
  padding: 22px 12px;
}

select.form-control {
  height: 46px;
}

textarea.form-control {
  height: 250px;
}

.animate {
  -webkit-transition: all 0.5s ease-in-out;
  -moz-transition: all 0.5s ease-in-out;
  -o-transition: all 0.5s ease-in-out;
  -ms-transition: all 0.5s ease-in-out;
  transition: all 0.5s ease-in-out;
}

#copyright {
  background: #fcb315;
  clear: both;
  padding: 20px 0;
  margin-top: 30px;
}

#copyright .bt-18 {
  float: right;
  display: block;
  margin-top: 2px;
}

.txt-copy {
  padding: 7px 0;
}

.txt-copy p {
  margin: 0;
  font-size: 11px;
  color: #681726;
  text-transform: uppercase;
}

/* ------------------- CABEÇALHO NOVO  */
.topo-catalogo {
  border-bottom: #d8d8d8 solid 2px;
  padding-top: 21px;
  padding-bottom: 20px;
}

.topo-catalogo .lista-redes {
  text-align: right;
}

.topo-catalogo .lista-redes {
  margin-top: 12px;
}

.topo-catalogo .lista-redes i {
  font-size: 17px;
}

.topo-catalogo .lista-redes a {
  color: #777;
  display: block;
  margin-right: 5px;
}

.topo-catalogo .lista-redes a:hover, .topo-catalogo .lista-redes a:active, .topo-catalogo .lista-redes a:focus {
  color: #fcb315 !important;
  text-decoration: none !important;
}

/* ------------------- CABEÇALHO NOVO  */
/* ------------------- INTERNAS  */
.title-bread {
  color: #6c6e72;
  font-size: 12px;
}

.top-page {
  margin-bottom: 10px;
  margin-top: 5px;
}

.top-page h1 {
  font-size: 24px;
  color: #5e0011;
  margin-top: 15px;
  margin-bottom: 0;
}

.top-page .inner-header {
  border-bottom: #d0d0d0 solid 1px;
  padding-bottom: 10px;
}

.top-page .redes-compartilha {
  float: right;
}

.top-page .redes-compartilha li {
  padding: 0;
}

table.dataTable thead {
  text-transform: uppercase;
  font-size: 14px;
}

table.dataTable thead th:nth-child(even) {
  background-color: #681726;
  color: #fff;
}

.dataTables_wrapper .dataTables_filter input {
  display: inline-block;
  height: 34px;
  padding: 6px 12px;
  font-size: 14px;
  line-height: 1.42857;
  color: #555555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 0px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
  -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
  transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
}

table.dataTable.no-footer {
  border-top: #c8c8c8 solid 1px;
  border-bottom: #c8c8c8 solid 1px;
  border-left: #c8c8c8 solid 1px;
  border-right: 0;
}

table.dataTable tbody tr td {
  border-top: 0;
  border-bottom: 0;
  border-left: 0;
  border-color: #c8c8c8;
  text-transform: uppercase;
  vertical-align: middle;
}

table.dataTable tbody tr td a:hover, table.dataTable tbody tr td a:active, table.dataTable tbody tr td a:focus {
  text-decoration: none;
}

table.dataTable tbody tr.odd {
  background: #fff;
}

table.dataTable tbody tr.even {
  background: #e4e4e4;
}

table.dataTable tbody tr:hover {
  background-color: #fcb315;
  color: #681726;
  cursor: pointer;
}

table.dataTable tbody tr:hover a {
  color: #681726;
}

table.dataTable thead th, table.dataTable thead td {
  border-bottom: 0;
  background: #681726;
  color: #fff;
}

table.dataTable thead th {
  vertical-align: middle;
}

table.dataTable tbody tr td a {
  color: #6c6e72;
  display: block;
}

table.dataTable.dtr-column > tbody > tr > td.control:before, table.dataTable.dtr-column > tbody > tr > th.control:before {
  line-height: 17px;
}

.dataTables_length {
  padding: 30px 0 0;
}

.dataTables_filter {
  padding: 20px 0;
}

.dataTables_wrapper .dataTables_info, .dataTables_paginate {
  margin-top: 15px;
}

.filter-geral .icon-lupa {
  background: url("../images/ico-lupa.jpg");
  height: 12px;
  width: 12px;
  display: inline-block;
  position: relative;
  top: 2px;
}

.filter-geral .bt-paroquias {
  display: inline-block;
  padding-right: 8px;
  border-right: #bfbfbf solid 1px;
  position: relative;
  top: 3px;
}

.filter-geral .bt-paroquias a {
  color: #3c3c3c;
  font-size: 10px;
  text-transform: uppercase;
}

.filter-geral .filter-regioes {
  margin-left: 8px;
  display: inline-block;
}

.filter-geral .txt-filter {
  padding-left: 3px;
  color: #3c3c3c;
  font-size: 10px;
  text-transform: uppercase;
}

.filter-missas {
  display: none;
  padding-left: 8px;
  position: relative;
  top: -2px;
}

.filter-missas .txt-filter {
  color: #681726;
  display: inline-block;
  position: relative;
  top: 2px;
}

.filter-missas .select-dia {
  display: inline-block;
  margin-right: 5px;
}

.filter-missas .select-hora {
  display: inline-block;
}

.bt-acoes-sociais {
  display: inline-block;
  padding-left: 0;
  position: relative;
  top: 1px;
}

.bt-acoes-sociais a {
  color: #3c3c3c;
  font-size: 10px;
  text-transform: uppercase;
}

.lista-pesquisa {
  color: #6c6e72;
  font-size: 10px;
  text-transform: uppercase;
  margin-top: 8px;
}

.lista-pesquisa span {
  display: inline;
}

.lista-pesquisa ul {
  display: inline;
}

.lista-pesquisa > ul > li {
  padding: 0 6px;
  display: inline;
  border-left: #bfbfbf solid 1px;
}

.lista-pesquisa > ul > li a {
  color: #6c6e72;
}

.lista-pesquisa > ul > li:first-child {
  border-left: 0;
}

.lista-pesquisa > ul > li a.active {
  color: #609d50;
}

.breadcrumb {
  display: inline;
  background: none;
  padding: 0;
  font-size: 12px;
  font-family: 'Lato', sans-serif;
}

.out-breadchumbs {
  margin-top: 10px;
  position: relative;
  padding: 0 0 8px 0;
}

.lista-pesquisa.align-right {
  float: right;
  text-align: right;
}

.title-section {
  margin-top: 15px;
  border-bottom: #d0d0d0 solid 1px;
  padding-bottom: 20px;
  margin-bottom: 30px;
}

.title-section h1 {
  color: #681726;
  font-size: 30px;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  margin-top: 0;
  text-transform: uppercase;
}

.title-section span {
  color: #681726;
  font-weight: 700;
}

.breadcrumb .negrito {
  font-weight: bold;
  color: #000;
}

.content-paroquia {
  margin-top: 20px;
}

.avatar-paroquia {
  background: #e5e5e5;
  padding: 5px 5px 10px 5px;
  margin-bottom: 10px;
}

.avatar-paroquia h2 {
  color: #787878;
  font-size: 10px;
  font-family: 'Lato', sans-serif;
  margin: 5px 0;
}

.avatar-paroquia h3 {
  margin: 0;
  font-size: 12px;
  font-family: 'Lato', sans-serif;
  color: #681726;
}

.avatar-paroquia .txt-avatar {
  padding: 5px;
}

.container-loading {
  display: none;
}

.loading .data-table {
  display: none;
}

.loading .container-loading {
  display: block;
}

.select-paroquia {
  margin-top: 17px;
}

.btn-group.open .dropdown-menu > li > a {
  padding-left: 9px !important;
  padding-right: 9px !important;
}

.info-paroquia {
  margin-top: 0;
  overflow: auto;
}

.info-paroquia ul {
  margin: 0;
  padding: 0;
}

.info-paroquia ul li {
  float: left;
  width: 100%;
  border-top: #d8d8d8 solid 1px;
  padding: 10px 5px;
}

.info-paroquia ul li.site a {
  text-transform: lowercase !important;
  overflow-wrap: break-word;
}

.info-paroquia ul li:first-child {
  padding-top: 0;
}

.info-paroquia ul li:first-child {
  border: 0;
}

.info-paroquia h2 {
  color: #681726;
  font-size: 11px;
  font-family: 'Lato', sans-serif;
  margin: 0 0 2px 0;
  text-transform: uppercase;
}

.info-paroquia h3, .info-paroquia a {
  font-size: 14px;
  font-family: 'Lato', sans-serif;
  margin: 0;
  font-weight: 400;
  color: #787878;
  text-transform: uppercase;
}

.divmapa {
  margin: 25px 0;
}

#map-canvas {
  width: 100%;
  height: 350px;
}

.dados-paroquia {
  margin-top: 2px;
}

.dados-paroquia h2 {
  font-size: 18px;
  color: #681726;
  text-transform: uppercase;
  margin-top: 0;
}

.dados-paroquia h3 {
  font-size: 12px;
  color: #787878;
  margin-bottom: 0;
}

.dados-paroquia.endereco {
  margin-top: 25px;
}

.lista-dados-paroquia li {
  list-style: none;
  color: #787878;
  font-size: 15px;
  font-family: 'Lato', sans-serif;
}

.lista-dados-paroquia li span {
  color: #681726;
}

h3:empty {
  display: none;
}

.col-dados:after {
  content: "";
  width: 1px;
  height: 100%;
  position: absolute;
  top: 0;
  right: -50px;
  background: #d8d8d8;
}

.title-page-paroquia {
  color: #681726;
  font-size: 18px;
  text-transform: uppercase;
  margin-top: 0;
}

.missas table thead th:nth-child(2) {
  width: 35% !important;
}

.missas .dataTables_filter {
  display: none;
}

.missas .filter-missas {
  display: inline-block;
}

.lista-missas {
  vertical-align: middle;
}

.lista-missas ul {
  margin: 0;
  padding: 0;
}

.lista-missas ul li {
  list-style: none;
  margin-bottom: 0;
}

.lista-missas ul li h2 {
  font-size: 15px;
  font-weight: 700;
  color: #681726;
  font-family: 'Lato', sans-serif;
  margin-top: 0;
}

.lista-missas ul li p {
  font-size: 12px;
}

.lista-missas ul li.ContainerMissas {
  margin-bottom: 10px;
}

.lista-missas ul li.ContainerMissas p {
  margin: 0;
}

.lista-missas h3 {
  text-transform: uppercase;
  font-size: 12px;
  margin: 0 0 2px 0;
  font-weight: 700;
  color: #681726;
}

.horario-funcionamento {
  margin-top: 20px;
  margin-bottom: 20px;
  padding: 20px 0 10px 0;
  border-top: #d8d8d8 solid 1px;
  border-bottom: #d8d8d8 solid 1px;
}

.horario-funcionamento p {
  font-family: 'Lato', sans-serif;
}

.horario-funcionamento span {
  font-weight: 700;
  color: #681726;
}

.comunidades {
  margin-top: 10px;
}

.lista-comunidade li {
  font-family: 'Lato', sans-serif;
  margin-bottom: 15px;
}

.lista-comunidade h3 {
  color: #681726;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

.lista-comunidade p {
  font-size: 12px;
  color: #787878;
  margin-bottom: 5px;
}

.lista-comunidade li:nth-child(4n+1) {
  clear: both;
}

.inner-end {
  padding-right: 20px;
}

.extra {
  margin-top: 20px;
  padding-top: 30px;
  border-top: #d8d8d8 solid 1px;
  font-family: 'Lato', sans-serif;
}

.extra b, .lista-pesquisa > span {
  font-size: 15px;
  font-weight: normal;
  color: #681726;
  font-family: 'Lato', sans-serif;
  margin-top: 0;
}

.bootstrap-select.btn-group .dropdown-toggle .filter-option {
  font-size: 10px;
  color: #3c3c3c;
  text-transform: uppercase;
  padding: 4px 40px 4px 7px;
  text-overflow: ellipsis;
}

.bootstrap-select {
  background: none;
  height: 22px;
}

.bootstrap-select .dropdown-toggle {
  padding: 0;
  border: #ccc solid 1px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  background: none;
}

.bootstrap-select .bs-caret {
  color: #666;
}

.bootstrap-select .caret {
  border-left: 4px dashed;
  border-right: 4px solid transparent;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
}

.bootstrap-select.btn-group .dropdown-toggle .caret {
  margin-top: -4px;
  right: 7px;
}

.bootstrap-select.btn-group .dropdown-toggle .filter-option:after {
  content: "";
  width: 1px;
  height: 100%;
  background: #ccc;
  position: absolute;
  right: 25px;
  top: 0;
}

/* 2 - Interna Notícias */
.bootstrap-select .dropdown-toggle:focus {
  outline: 0 !important;
}

.btn-group.open .dropdown-toggle {
  -webkit-box-shadow: none !important;
  box-shadow: none !important;
  background-color: #fff !important;
}

.btn-group.open .filter-option {
  color: #681726 !important;
}

.btn-group.open .dropdown-menu > li > a {
  color: #777777;
  padding: 3px 15px 3px 15px;
  font-size: 12px;
  text-transform: inherit;
  font-family: 'Lato', sans-serif;
}

.btn-group.open .dropdown-menu > li > a:focus {
  outline: 0;
}

.btn-group.open .dropdown-menu > li > a:hover {
  color: #681726;
}

.btn-group.open .dropdown-menu > .active > a, .btn-group.open .dropdown-menu > .active > a:hover, .btn-group.open .dropdown-menu > .active > a:focus {
  background: none;
  color: #681726;
}

.btn-group.open .form-control:focus {
  border-color: #ccc;
  outline: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
}

.bs-searchbox input.form-control {
  padding: 14px 12px;
}

.inner-select-paroquias {
  margin-top: 15px;
  margin-bottom: 10px;
}

.select-responsive {
  margin-top: 20px;
}

/* ------------------- GALERIA DE FOTOS  */
.tpl-galeria {
  margin: 20px 0 40px;
  padding-top: 20px;
  float: left;
  width: 100%;
  border-top: #d8d8d8 solid 1px;
  font-family: 'Lato', sans-serif;
}

.royalSlider {
  width: 100%;
  min-height: 500px;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}

.royalSlider:not(.rsFullscreen) {
  max-height: 500px;
}

.rsDefault, .rsDefault .rsOverflow, .rsDefault .rsSlide, .rsDefault .rsVideoFrameHolder, .rsDefault .rsThumbs {
  background: #f4f4f4;
  color: #FFF;
}

.rsDefault .rsThumbs {
  background: #e4e4e4;
  color: #FFF;
  padding-bottom: 0 !important;
}

.rsDefault .rsGCaption {
  position: relative;
  float: left;
  bottom: 0;
  left: 0;
  text-align: left;
  background: #ffb500;
  color: #7a1022;
  padding: 15px 13px;
  width: 100%;
  font-size: 11px;
  border-radius: 0;
  z-index: 100;
}

.rsDefault .rsThumb {
  width: 156px;
  height: 81px;
}

.rsDefault .rsThumbsHor {
  height: 81px;
}

.rsFullscreen .rsGCaption {
  position: absolute;
  bottom: 81px;
}

.rsDefault .rsThumb.rsNavSelected {
  background: none;
}

.rsDefault .rsThumb.rsNavSelected img {
  opacity: 1;
}

.rsDefault .rsNavSelected:before {
  content: "";
  width: 100%;
  display: block;
  height: 100%;
  position: absolute;
  border: #ffb500 solid 3px;
}

.faronias table th:nth-child(1) {
  width: 50% !important;
}

.gallery-lightbox {
  margin: 20px 50px;
}

.gallery-lightbox ul {
  margin: 0;
  padding: 0;
}

.gallery-lightbox ul li {
  list-style: none;
  margin-bottom: 10px;
}

.gallery-lightbox .cover-image {
  height: 150px;
  width: 100%;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
  border: #d8d8d8 solid 1px;
}

.destaque-regiao {
  margin: 30px 0 60px 0;
  border-bottom: #d8d8d8 solid 1px;
}

.destaque-regiao table {
  margin-bottom: 0 !important;
}

.destaque-regiao .table thead th {
  color: #FFF;
  text-transform: uppercase;
  border: none;
  font-size: 12px;
  padding-top: 13px;
  padding-bottom: 15px;
  padding-left: 17px;
  font-family: Montserrat, sans-serif;
  font-weight: 700;
}

.destaque-regiao .table thead th:nth-child(1) {
  width: 20%;
}

.destaque-regiao .table tbody tr:nth-child(odd) td,
.destaque-regiao .table tbody tr:nth-child(odd) th {
  background-color: #ececec !important;
}

.destaque-regiao .table thead th:nth-child(odd) {
  background-color: #ffb500;
  color: #681726;
}

.destaque-regiao .table thead th:nth-child(even) {
  background-color: #a67312;
}

.destaque-regiao .table td,
.destaque-regiao .table th {
  padding: 15px;
  border-right: #c8c9ca solid 1px !important;
  font-weight: normal;
}

.destaque-regiao .table tr td:last-child {
  border-right: 0 !important;
}

.tr-mobile {
  padding: 15px;
}

.tr-mobile .inner-data-table {
  margin-bottom: 10px;
}

.data-title {
  color: #681726;
  font-family: 'Lato', sans-serif;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.info-table {
  color: #787878;
  font-family: 'Lato', sans-serif;
  font-size: 12px;
}

.faronias .repeat-faronia {
  margin-bottom: 40px;
}

.faronias .repeat-faronia h2 {
  color: #681726;
  font-size: 18px;
  text-transform: uppercase;
  margin-bottom: 20px;
}

.faronias .repeat-faronia a {
  color: #6c6e72;
  font-family: 'Lato', sans-serif;
  font-size: 13px;
}

.faronias .repeat-faronia a:hover {
  color: #681726;
}

.faronias .table thead th {
  color: #FFF;
  text-transform: uppercase;
  border: none;
  font-size: 12px;
  padding-top: 13px;
  padding-bottom: 15px;
  padding-left: 17px;
  font-family: Montserrat, sans-serif;
  font-weight: 700;
}

.faronias .table thead th:nth-child(odd) {
  background-color: #681726;
  color: #fff;
}

.faronias .table thead th:nth-child(even) {
  background-color: #681726;
}

.faronias .table td,
.faronias .table th {
  padding: 15px;
  border-right: #c8c9ca solid 1px !important;
  font-weight: normal;
}

.faronias .table tr td:last-child {
  border-right: 0 !important;
}

.table-missas tr, .table-paroquias tr {
  color: #6c6e72;
  font-family: 'Lato', sans-serif;
  font-size: 13px;
}

.table-missas tr td, .table-missas tr th, .table-paroquias tr td, .table-paroquias tr th {
  padding: 15px !important;
}

/* Novo Mapa */
/* Cores regiões */
text,
circle {
  pointer-events: none;
}

.lista-regioes {
  margin-top: 80px;
}

.lista-regioes .btn-regiao1 {
  color: #fcb315;
  border: 1px solid #fcb315 !important;
}

.lista-regioes .btn-regiao1 span {
  background-color: #f4a803;
}

.lista-regioes .btn-regiao2 {
  color: #00b3d4;
  border: 1px solid #00b3d4 !important;
}

.lista-regioes .btn-regiao2 span {
  background-color: #009dbb;
}

.lista-regioes .btn-regiao3 {
  color: #609d50;
  border: 1px solid #609d50 !important;
}

.lista-regioes .btn-regiao3 span {
  background-color: #568c47;
}

.lista-regioes .btn-regiao4 {
  color: #990000;
  border: 1px solid #990000 !important;
}

.lista-regioes .btn-regiao4 span {
  background-color: maroon;
}

.lista-regioes .btn-regiao5 {
  border: 1px solid #7065a7 !important;
}

.lista-regioes .btn-regiao5 span {
  background-color: #63589a;
}

.lista-regioes.Ativoregiao1 .btn-regiao1 {
  background-color: #fcb315 !important;
  color: #FFF;
}

.lista-regioes.Ativoregiao1 .btn-regiao1 span {
  background-color: #c28502 !important;
  border-color: #c28502 !important;
}

.lista-regioes.Ativoregiao2 .btn-regiao2 {
  background-color: #00b3d4 !important;
  color: #FFF;
}

.lista-regioes.Ativoregiao2 .btn-regiao2 span {
  background-color: #007288 !important;
  border-color: #007288 !important;
}

.lista-regioes.Ativoregiao3 .btn-regiao3 {
  background-color: #609d50 !important;
  color: #FFF;
}

.lista-regioes.Ativoregiao3 .btn-regiao3 span {
  background-color: #416a36 !important;
  border-color: #416a36 !important;
}

.lista-regioes.Ativoregiao4 .btn-regiao4 {
  background-color: #990000 !important;
  color: #FFF;
}

.lista-regioes.Ativoregiao4 .btn-regiao4 span {
  background-color: #4d0000 !important;
  border-color: #4d0000 !important;
}

.lista-regioes.Ativoregiao5 .btn-regiao5 {
  background-color: #7065a7 !important;
  color: #FFF;
}

.lista-regioes.Ativoregiao5 .btn-regiao5 span {
  background-color: #4e467a !important;
  border-color: #4e467a !important;
}

.lista-regioes ul {
  margin-left: 0;
  padding: 0;
}

.lista-regioes ul li {
  display: block;
  margin-bottom: 15px;
  line-height: 42px;
}

.lista-regioes ul li span {
  display: inline-block;
  width: 45px;
  height: 45px;
  font-size: 14px;
  text-align: center;
  line-height: 45px;
  margin-right: 10px;
  -webkit-transition: all, .3s;
  -o-transition: all, .3s;
  transition: all, .3s;
  color: #FFF;
}

.lista-regioes ul li a {
  font-size: 15px;
  font-weight: 300;
  font-family: "Montserrat";
  color: #333;
  position: relative;
  line-height: 1em;
  display: block;
  width: 270px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  -ms-border-radius: 5px;
  -o-border-radius: 5px;
  border-radius: 5px;
  overflow: hidden;
}

.lista-regioes ul li a:hover, .lista-regioes ul li a:focus, .lista-regioes ul li a:active {
  text-decoration: none;
  cursor: pointer;
}

.lista-regioes ul li a:hover span, .lista-regioes ul li a:focus span, .lista-regioes ul li a:active span {
  color: #FFF;
}

.lista-regioes ul li a.btn-regiao1:hover {
  background-color: #fcb315 !important;
  color: #FFF;
}

.lista-regioes ul li a.btn-regiao1:hover span {
  background-color: #c28502 !important;
  border-color: #c28502 !important;
}

.lista-regioes ul li a.btn-regiao2:hover {
  background-color: #00b3d4 !important;
  color: #FFF;
}

.lista-regioes ul li a.btn-regiao2:hover span {
  background-color: #007288 !important;
  border-color: #007288 !important;
}

.lista-regioes ul li a.btn-regiao3:hover {
  background-color: #609d50 !important;
  color: #FFF;
}

.lista-regioes ul li a.btn-regiao3:hover span {
  background-color: #416a36 !important;
  border-color: #416a36 !important;
}

.lista-regioes ul li a.btn-regiao4:hover {
  background-color: #990000 !important;
  color: #FFF;
}

.lista-regioes ul li a.btn-regiao4:hover span {
  background-color: maroon !important;
  border-color: maroon !important;
}

.lista-regioes ul li a.btn-regiao5:hover {
  background-color: #7065a7 !important;
  color: #FFF;
}

.lista-regioes ul li a.btn-regiao5:hover span {
  background-color: #63589a !important;
  border-color: #63589a !important;
}

.content-mapa {
  margin: 45px 0;
  position: relative;
}

.content-mapa .mapa {
  width: 100%;
}

.content-mapa .mapa svg {
  width: 100%;
  max-width: 370px;
  height: 416px;
}

.content-mapa .mapa path {
  fill: #a1a19f;
}

.content-mapa .mapa path.regiao1:hover,
.content-mapa .mapa.AtivoRegiao1 path.regiao1 {
  fill: #fcb315;
}

.content-mapa .mapa path.regiao2:hover,
.content-mapa .mapa.AtivoRegiao2 path.regiao2 {
  fill: #00b3d4;
}

.content-mapa .mapa path.regiao3:hover,
.content-mapa .mapa.AtivoRegiao3 path.regiao3 {
  fill: #609d50;
}

.content-mapa .mapa path.regiao4:hover,
.content-mapa .mapa.AtivoRegiao4 path.regiao4 {
  fill: #990000;
}

.content-mapa .mapa path.regiao5:hover,
.content-mapa .mapa.AtivoRegiao5 path.regiao5 {
  fill: #7065a7;
}

.content-mapa .mapa span {
  display: block;
  position: absolute;
  width: 42px;
  line-height: 38px;
  font-size: 20px;
  font-weight: 500;
  max-height: 42px;
  text-align: center;
  left: 50%;
  top: 50%;
  color: #3d3d3d;
  border: 2px solid #3d3d3d;
  -webkit-border-radius: 100%;
  -moz-border-radius: 100%;
  -ms-border-radius: 100%;
  -o-border-radius: 100%;
  border-radius: 100%;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

.content-mapa #regiao1 {
  width: 287px;
  height: 504px;
}

.content-mapa .regiao2 {
  width: 252px;
  top: -44px;
  left: 123px;
}

.content-mapa .regiao3 {
  width: 234px;
  left: 256px;
  top: -44px;
}

.content-mapa .regiao4 {
  width: 60px;
  left: 218px;
  top: 122px;
}

/* Novo Mapa */
/* content styles */
.inside {
  margin-top: 20px;
  margin-bottom: 20px;
}

.inside-full-height {
  /*
  // if you want to give content full height give him height: 100%;
  // with content full height you can't apply margins to the content
  // content full height does not work in ie http://stackoverflow.com/questions/27384433/ie-display-table-cell-child-ignores-height-100
  */
  height: 100%;
  margin-top: 0;
  margin-bottom: 0;
}

.content {
  padding: 12px 3px;
}

/* columns of same height styles */
.row-height {
  display: table;
  table-layout: fixed;
  height: 100%;
  width: 100%;
}

.col-height {
  display: table-cell;
  float: none;
  height: 100%;
}

.col-top {
  vertical-align: top;
}

.col-middle {
  vertical-align: middle;
}

.col-bottom {
  vertical-align: bottom;
}

@media (min-width: 480px) {
  .row-xs-height {
    display: table;
    table-layout: fixed;
    height: 100%;
    width: 100%;
  }
  .col-xs-height {
    display: table-cell;
    float: none;
    height: 100%;
  }
  .col-xs-top {
    vertical-align: top;
  }
  .col-xs-middle {
    vertical-align: middle;
  }
  .col-xs-bottom {
    vertical-align: bottom;
  }
}

@media (min-width: 768px) {
  .row-sm-height {
    display: table;
    table-layout: fixed;
    height: 100%;
    width: 100%;
  }
  .col-sm-height {
    display: table-cell;
    float: none;
    height: 100%;
  }
  .col-sm-top {
    vertical-align: top;
  }
  .col-sm-middle {
    vertical-align: middle;
  }
  .col-sm-bottom {
    vertical-align: bottom;
  }
}

@media (min-width: 992px) {
  .row-md-height {
    display: table;
    table-layout: fixed;
    height: 100%;
    width: 100%;
  }
  .col-md-height {
    display: table-cell;
    float: none;
    height: 100%;
  }
  .col-md-top {
    vertical-align: top;
  }
  .col-md-middle {
    vertical-align: middle;
  }
  .col-md-bottom {
    vertical-align: bottom;
  }
}

@media (min-width: 1200px) {
  .row-lg-height {
    display: table;
    table-layout: fixed;
    height: 100%;
    width: 100%;
  }
  .col-lg-height {
    display: table-cell;
    float: none;
    height: 100%;
  }
  .col-lg-top {
    vertical-align: top;
  }
  .col-lg-middle {
    vertical-align: middle;
  }
  .col-lg-bottom {
    vertical-align: bottom;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzIjpbIm1haW4uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9jb21wYXNzLXNhc3MtbWl4aW5zL2xpYi9fY29tcGFzcy5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvX2Z1bmN0aW9ucy5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvZnVuY3Rpb25zL19saXN0cy5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvZnVuY3Rpb25zL19jcm9zc19icm93c2VyX3N1cHBvcnQuc2FzcyIsIi4uL25vZGVfbW9kdWxlcy9jb21wYXNzLXNhc3MtbWl4aW5zL2xpYi9jb21wYXNzL2Z1bmN0aW9ucy9fZ3JhZGllbnRfc3VwcG9ydC5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvZnVuY3Rpb25zL19jb25zdGFudHMuc2FzcyIsIi4uL25vZGVfbW9kdWxlcy9jb21wYXNzLXNhc3MtbWl4aW5zL2xpYi9jb21wYXNzL2Z1bmN0aW9ucy9fZGlzcGxheS5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvZnVuY3Rpb25zL19jb2xvcnMuc2FzcyIsIi4uL25vZGVfbW9kdWxlcy9jb21wYXNzLXNhc3MtbWl4aW5zL2xpYi9jb21wYXNzL191dGlsaXRpZXMuc2FzcyIsIi4uL25vZGVfbW9kdWxlcy9jb21wYXNzLXNhc3MtbWl4aW5zL2xpYi9jb21wYXNzL3V0aWxpdGllcy9fY29sb3Iuc2FzcyIsIi4uL25vZGVfbW9kdWxlcy9jb21wYXNzLXNhc3MtbWl4aW5zL2xpYi9jb21wYXNzL3V0aWxpdGllcy9jb2xvci9fY29udHJhc3Quc2FzcyIsIi4uL25vZGVfbW9kdWxlcy9jb21wYXNzLXNhc3MtbWl4aW5zL2xpYi9jb21wYXNzL3V0aWxpdGllcy9fZ2VuZXJhbC5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvdXRpbGl0aWVzL2dlbmVyYWwvX3Jlc2V0LnNhc3MiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFzcy1zYXNzLW1peGlucy9saWIvY29tcGFzcy9yZXNldC9fdXRpbGl0aWVzLnNhc3MiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFzcy1zYXNzLW1peGlucy9saWIvY29tcGFzcy91dGlsaXRpZXMvZ2VuZXJhbC9fY2xlYXJmaXguc2FzcyIsIi4uL25vZGVfbW9kdWxlcy9jb21wYXNzLXNhc3MtbWl4aW5zL2xpYi9jb21wYXNzL3V0aWxpdGllcy9nZW5lcmFsL19oYWNrcy5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvX3N1cHBvcnQuc2FzcyIsIi4uL25vZGVfbW9kdWxlcy9jb21wYXNzLXNhc3MtbWl4aW5zL2xpYi9jb21wYXNzL3V0aWxpdGllcy9nZW5lcmFsL19mbG9hdC5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvdXRpbGl0aWVzL2dlbmVyYWwvX3RhZy1jbG91ZC5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvdXRpbGl0aWVzL2dlbmVyYWwvX21pbi5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvdXRpbGl0aWVzL19zcHJpdGVzLnNhc3MiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFzcy1zYXNzLW1peGlucy9saWIvY29tcGFzcy91dGlsaXRpZXMvc3ByaXRlcy9fYmFzZS5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvdXRpbGl0aWVzL3Nwcml0ZXMvX3Nwcml0ZS1pbWcuc2FzcyIsIi4uL25vZGVfbW9kdWxlcy9jb21wYXNzLXNhc3MtbWl4aW5zL2xpYi9jb21wYXNzL3V0aWxpdGllcy9fdGFibGVzLnNhc3MiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFzcy1zYXNzLW1peGlucy9saWIvY29tcGFzcy91dGlsaXRpZXMvdGFibGVzL19hbHRlcm5hdGluZy1yb3dzLWFuZC1jb2x1bW5zLnNhc3MiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFzcy1zYXNzLW1peGlucy9saWIvY29tcGFzcy91dGlsaXRpZXMvdGFibGVzL19ib3JkZXJzLnNhc3MiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFzcy1zYXNzLW1peGlucy9saWIvY29tcGFzcy91dGlsaXRpZXMvdGFibGVzL19zY2FmZm9sZGluZy5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvdHlwb2dyYXBoeS9fbGlua3Muc2FzcyIsIi4uL25vZGVfbW9kdWxlcy9jb21wYXNzLXNhc3MtbWl4aW5zL2xpYi9jb21wYXNzL3R5cG9ncmFwaHkvbGlua3MvX2hvdmVyLWxpbmsuc2FzcyIsIi4uL25vZGVfbW9kdWxlcy9jb21wYXNzLXNhc3MtbWl4aW5zL2xpYi9jb21wYXNzL3R5cG9ncmFwaHkvbGlua3MvX2xpbmstY29sb3JzLnNhc3MiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFzcy1zYXNzLW1peGlucy9saWIvY29tcGFzcy90eXBvZ3JhcGh5L2xpbmtzL191bnN0eWxlZC1saW5rLnNhc3MiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFzcy1zYXNzLW1peGlucy9saWIvY29tcGFzcy90eXBvZ3JhcGh5L19saXN0cy5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvdHlwb2dyYXBoeS9saXN0cy9faG9yaXpvbnRhbC1saXN0LnNhc3MiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFzcy1zYXNzLW1peGlucy9saWIvY29tcGFzcy90eXBvZ3JhcGh5L2xpc3RzL19idWxsZXRzLnNhc3MiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFzcy1zYXNzLW1peGlucy9saWIvY29tcGFzcy90eXBvZ3JhcGh5L2xpc3RzL19pbmxpbmUtbGlzdC5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvdHlwb2dyYXBoeS9saXN0cy9faW5saW5lLWJsb2NrLWxpc3Quc2FzcyIsIi4uL25vZGVfbW9kdWxlcy9jb21wYXNzLXNhc3MtbWl4aW5zL2xpYi9jb21wYXNzL2NzczMvX2lubGluZS1ibG9jay5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvY3NzMy9fc2hhcmVkLnNhc3MiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFzcy1zYXNzLW1peGlucy9saWIvY29tcGFzcy90eXBvZ3JhcGh5L190ZXh0LnNhc3MiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFzcy1zYXNzLW1peGlucy9saWIvY29tcGFzcy90eXBvZ3JhcGh5L3RleHQvX2VsbGlwc2lzLnNhc3MiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFzcy1zYXNzLW1peGlucy9saWIvY29tcGFzcy90eXBvZ3JhcGh5L3RleHQvX25vd3JhcC5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvdHlwb2dyYXBoeS90ZXh0L19yZXBsYWNlbWVudC5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvdHlwb2dyYXBoeS90ZXh0L19mb3JjZS13cmFwLnNhc3MiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFzcy1zYXNzLW1peGlucy9saWIvY29tcGFzcy9fdHlwb2dyYXBoeS5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvdHlwb2dyYXBoeS9fdmVydGljYWxfcmh5dGhtLnNhc3MiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFzcy1zYXNzLW1peGlucy9saWIvY29tcGFzcy9sYXlvdXQvX2dyaWQtYmFja2dyb3VuZC5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvY3NzMy9faW1hZ2VzLnNhc3MiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFzcy1zYXNzLW1peGlucy9saWIvY29tcGFzcy9jc3MzL19iYWNrZ3JvdW5kLXNpemUuc2FzcyIsIi4uL25vZGVfbW9kdWxlcy9jb21wYXNzLXNhc3MtbWl4aW5zL2xpYi9jb21wYXNzL19jc3MzLnNhc3MiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFzcy1zYXNzLW1peGlucy9saWIvY29tcGFzcy9jc3MzL19ib3JkZXItcmFkaXVzLnNhc3MiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFzcy1zYXNzLW1peGlucy9saWIvY29tcGFzcy9jc3MzL19vcGFjaXR5LnNhc3MiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFzcy1zYXNzLW1peGlucy9saWIvY29tcGFzcy9jc3MzL19ib3gtc2hhZG93LnNhc3MiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFzcy1zYXNzLW1peGlucy9saWIvY29tcGFzcy9jc3MzL190ZXh0LXNoYWRvdy5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvY3NzMy9fY29sdW1ucy5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvY3NzMy9fYm94LXNpemluZy5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvY3NzMy9fYm94LnNhc3MiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFzcy1zYXNzLW1peGlucy9saWIvY29tcGFzcy9jc3MzL19iYWNrZ3JvdW5kLWNsaXAuc2FzcyIsIi4uL25vZGVfbW9kdWxlcy9jb21wYXNzLXNhc3MtbWl4aW5zL2xpYi9jb21wYXNzL2NzczMvX2JhY2tncm91bmQtb3JpZ2luLnNhc3MiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFzcy1zYXNzLW1peGlucy9saWIvY29tcGFzcy9jc3MzL19mb250LWZhY2Uuc2FzcyIsIi4uL25vZGVfbW9kdWxlcy9jb21wYXNzLXNhc3MtbWl4aW5zL2xpYi9jb21wYXNzL2NzczMvX3RyYW5zZm9ybS5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvY3NzMy9fdHJhbnNpdGlvbi5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvY3NzMy9fYXBwZWFyYW5jZS5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvY3NzMy9fcmVnaW9ucy5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvY3NzMy9faHlwaGVuYXRpb24uc2FzcyIsIi4uL25vZGVfbW9kdWxlcy9jb21wYXNzLXNhc3MtbWl4aW5zL2xpYi9jb21wYXNzL2NzczMvX2ZpbHRlci5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvY3NzMy9fcGllLnNhc3MiLCIuLi9ub2RlX21vZHVsZXMvY29tcGFzcy1zYXNzLW1peGlucy9saWIvY29tcGFzcy9jc3MzL191c2VyLWludGVyZmFjZS5zYXNzIiwiLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3Mtc2Fzcy1taXhpbnMvbGliL2NvbXBhc3MvY3NzMy9fZmxleGJveC5zYXNzIiwiX2ZsZXgtYm94LnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcIm5vZGVfbW9kdWxlcy9jb21wYXNzLXNhc3MtbWl4aW5zL2xpYi9jb21wYXNzXCI7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBERVNFTlZPTFZJRE8gUE9SIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICovXG4vKjogTm9tZTogRsOhYmlvIENhbGhlaXJvc1xuLyo6IEVtYWlsOiBmYWJpby5jYWxoZWlyb3NAZ21haWwuY29tXG5cbi8qU1VNw4FSSU8gKi9cblxuLyogMSAtIEdFUkFMICAqL1xuXG5odG1sLCBib2R5e1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDA7XG5cdGhlaWdodDogMTAwJTtcblx0d2lkdGg6IDEwMCU7XG5cdGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7XG5cdGZvbnQtc2l6ZTogMTNweDtcblx0Y29sb3I6ICM2YzZlNzI7XG5cdGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbi5yZXNldHtcblx0cGFkZGluZzogMDtcblx0bWFyZ2luOiAwO1xuXG5cdGxpe1xuXHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdH1cbn1cblxuI2Zvcm1CdXNjYXtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uc3VibWl0X3NlYXJjaHtcblx0aGVpZ2h0OiAyNXB4O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjNjgxNzI2O1xuXHRjb2xvcjogI0ZGRjtcblx0Ym9yZGVyOiBub25lO1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRAaW5jbHVkZSBib3JkZXItcmFkaXVzKDVweCk7XG59XG5cbmF7XG5cdGNvbG9yOiAjNWUwMDExO1xufVxuXG4ubGF0b3tcblx0Zm9udC1mYW1pbHk6ICdMYXRvJywgc2Fucy1zZXJpZjtcbn1cblxuLmVudHJ5LXRleHR7XG5cdHBhZGRpbmc6IDhweCAwIDIwcHggMDtcblxuXHRoMXtcblx0XHRmb250LXNpemU6IDIxcHg7XG5cdFx0Y29sb3I6ICM3OTBmMjE7XG5cdFx0bWFyZ2luLXRvcDogNDBweDtcblx0fVxuXHRoMntcblx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0Y29sb3I6ICM3OTBmMjE7XG5cdFx0bWFyZ2luLXRvcDogMzBweDtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXG5cdFx0JiArIHNtYWxse1xuXHRcdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcblx0XHRcdGNvbG9yOiAjNzg3ODc4O1xuXHRcdFx0Zm9udC1mYW1pbHk6IExhdG8sIHNhbnMtc2VyaWY7XG5cdFx0fVxuXHR9XG5cblx0aDN7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdGNvbG9yOiAjNzkwZjIxO1xuXHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdH1cblx0aDR7XG5cdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdGNvbG9yOiAjNzkwZjIxO1xuXHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdH1cblx0aDV7XG5cdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdGNvbG9yOiAjNzkwZjIxO1xuXHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdH1cblx0aDZ7XG5cdFx0Zm9udC1zaXplOiAxMHB4O1xuXHRcdGNvbG9yOiAjNzkwZjIxO1xuXHRcdG1hcmdpbi10b3A6IDIwcHg7XG5cdH1cblxuXHRwe1xuXHRcdG1hcmdpbi1ib3R0b206IDE1cHg7XG5cdFx0Zm9udC1zaXplOiAxNXB4O1xuXHRcdGNvbG9yOiAjNzg3ODc4O1xuXHRcdEBleHRlbmQgLmxhdG87XG5cdH1cblxuXHQudGFibGUgdGhlYWQgdGh7XG5cdFx0Y29sb3I6ICNGRkY7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdHBhZGRpbmctdG9wOiAxM3B4O1xuXHRcdHBhZGRpbmctYm90dG9tOiAxNXB4O1xuXHRcdHBhZGRpbmctbGVmdDogMTdweDtcblx0XHRmb250LWZhbWlseTogTW9udHNlcnJhdCwgc2Fucy1zZXJpZjtcblx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHR9XG5cblx0LnRhYmxlIHRib2R5IHRye1xuXHRcdCY6bnRoLWNoaWxkKGV2ZW4pe1xuXHRcdFx0dGQ6bnRoLWNoaWxkKG9kZCksXG5cdFx0XHR0aDpudGgtY2hpbGQob2RkKXtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNSAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCY6bnRoLWNoaWxkKGV2ZW4pe1xuXHRcdFx0dGQsXG5cdFx0XHR0aHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2VjZWNlYyAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYgdHIsXG5cdFx0JiB0aCxcblx0XHQmIHRke1xuXHRcdFx0Ym9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG5cblx0LnRhYmxlIHRoZWFkIHRoOm50aC1jaGlsZChvZGQpe1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmI1MDA7XG5cdH1cblxuXHQudGFibGUgdGhlYWQgdGg6bnRoLWNoaWxkKGV2ZW4pe1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNhNjczMTI7XG5cdH1cblxuXHQudGFibGV7XG5cdFx0dGQsXG5cdFx0dGh7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDE3cHg7XG5cdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdH1cblx0fVxuXG5cdC53cC1jYXB0aW9uIGltZyB7XG5cdCAgICBtYXgtd2lkdGg6IDEwMCU7XG5cdCAgICBtYXJnaW46IDAgYXV0bztcblx0fVxuXG5cdC53cC1jYXB0aW9uIHtcblx0XHRtYXJnaW46IDIwcHggMDtcblx0ICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG5cdCAgICBib3JkZXI6IDA7XG5cdCAgICBtYXgtd2lkdGg6IDEwMCU7XG5cdCAgICBwYWRkaW5nOiAwO1xuXHQgICAgdGV4dC1hbGlnbjogbGVmdDtcblx0fVxuXG5cdC53cC1jYXB0aW9uIHAud3AtY2FwdGlvbi10ZXh0IHtcblx0ICAgIGZvbnQtc2l6ZTogMTNweDtcblx0ICAgIGxpbmUtaGVpZ2h0OiAxN3B4O1xuXHQgICAgbWFyZ2luOiAwO1xuXHQgICAgcGFkZGluZzogMTJweCAxNnB4O1xuXHQgICAgZm9udC1mYW1pbHk6IExhdG8sIHNhbnMtc2VyaWY7XG5cdH1cbn1cblxubGFiZWwge1xuICAgY29sb3I6ICM3OTBmMjE7XG4gICBmb250LXdlaWdodDogNzAwO1xuICAgZm9udC1zaXplOiAxMnB4O1xuICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuaW5wdXQuZm9ybS1jb250cm9se1xuXHRwYWRkaW5nOiAyMnB4IDEycHg7XG59XG5cbnNlbGVjdC5mb3JtLWNvbnRyb2x7XG5cdGhlaWdodDogNDZweDtcbn1cblxudGV4dGFyZWEuZm9ybS1jb250cm9sIHtcbiAgICBoZWlnaHQ6IDI1MHB4O1xufVxuXG4uYW5pbWF0ZSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZS1pbi1vdXQ7XG4gIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZS1pbi1vdXQ7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2UtaW4tb3V0O1xuICAtbXMtdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZS1pbi1vdXQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2UtaW4tb3V0O1xufVxuXG5cbiNjb3B5cmlnaHR7XG5cdGJhY2tncm91bmQ6ICNmY2IzMTU7XG5cdGNsZWFyOiBib3RoO1xuXHRwYWRkaW5nOiAyMHB4IDA7XG5cdG1hcmdpbi10b3A6IDMwcHg7XG5cblx0LmJ0LTE4e1xuXHRcdGZsb2F0OiByaWdodDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRtYXJnaW4tdG9wOiAycHg7XG5cdH1cbn1cblxuLnR4dC1jb3B5e1xuXHRwYWRkaW5nOiA3cHggMDtcblx0cHtcblx0XHRtYXJnaW46IDA7XG5cdFx0Zm9udC1zaXplOiAxMXB4O1xuXHRcdGNvbG9yOiAjNjgxNzI2O1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLSBDQUJFw4dBTEhPIE5PVk8gICovXG4udG9wby1jYXRhbG9nb3tcblx0Ym9yZGVyLWJvdHRvbTogI2Q4ZDhkOCBzb2xpZCAycHg7XG5cdHBhZGRpbmctdG9wOiAyMXB4O1xuXHRwYWRkaW5nLWJvdHRvbTogMjBweDtcblx0Lmxpc3RhLXJlZGVze1xuXHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHR9XG5cblx0Lmxpc3RhLXJlZGVze1xuXHRcdG1hcmdpbi10b3A6IDEycHg7XG5cblx0XHRpe1xuXHRcdFx0Zm9udC1zaXplOiAxN3B4O1xuXHRcdH1cblxuXHRcdGF7XG5cdFx0XHRjb2xvcjogIzc3Nztcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiA1cHg7XG5cblx0XHRcdCY6aG92ZXIsXG5cdFx0XHQmOmFjdGl2ZSxcblx0XHRcdCY6Zm9jdXN7XG5cdFx0XHRcdGNvbG9yOiAjZmNiMzE1ICFpbXBvcnRhbnQ7XG5cdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLSBDQUJFw4dBTEhPIE5PVk8gICovXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0gSU5URVJOQVMgICovXG5cbi50aXRsZS1icmVhZHtcblx0Y29sb3I6ICM2YzZlNzI7XG5cdGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLnRvcC1wYWdle1xuXHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHRtYXJnaW4tdG9wOiA1cHg7XG5cdGgxe1xuXHRcdGZvbnQtc2l6ZTogMjRweDtcblx0XHRjb2xvcjogIzVlMDAxMTtcblx0XHRtYXJnaW4tdG9wOiAxNXB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cblxuXHQuaW5uZXItaGVhZGVye1xuXHRcdGJvcmRlci1ib3R0b206ICNkMGQwZDAgc29saWQgMXB4O1xuXHRcdHBhZGRpbmctYm90dG9tOiAxMHB4O1xuXHR9XG5cblx0LnJlZGVzLWNvbXBhcnRpbGhhe1xuXHRcdGZsb2F0OiByaWdodDtcblxuXHRcdCYgbGl7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdH1cblx0fVxufVxuXG5cbnRhYmxlLmRhdGFUYWJsZSB0aGVhZHtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0Zm9udC1zaXplOiAxNHB4O1xufVxuXG50YWJsZS5kYXRhVGFibGUgdGhlYWR7XG5cdHRoOm50aC1jaGlsZChldmVuKXtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjNjgxNzI2O1xuXHRcdGNvbG9yOiAjZmZmO1xuXHR9XG59XG5cbi5kYXRhVGFibGVzX3dyYXBwZXIgLmRhdGFUYWJsZXNfZmlsdGVyIGlucHV0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAzNHB4O1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMS40Mjg1NztcbiAgICBjb2xvcjogIzU1NTU1NTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSk7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4wNzUpO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IDAuMTVzLCBib3gtc2hhZG93IGVhc2UtaW4tb3V0IDAuMTVzO1xuICAgIC1vLXRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlLWluLW91dCAwLjE1cywgYm94LXNoYWRvdyBlYXNlLWluLW91dCAwLjE1cztcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgMC4xNXMsIGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgMC4xNXM7XG59XG5cblxudGFibGUuZGF0YVRhYmxlLm5vLWZvb3RlciB7XG4gICAgYm9yZGVyLXRvcDogI2M4YzhjOCBzb2xpZCAxcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogI2M4YzhjOCBzb2xpZCAxcHg7XG4gICAgYm9yZGVyLWxlZnQ6ICNjOGM4Yzggc29saWQgMXB4O1xuICAgIGJvcmRlci1yaWdodDogMDtcbn1cblxudGFibGUuZGF0YVRhYmxlIHRib2R5IHRyIHRkIHtcbiAgICBib3JkZXItdG9wOiAwO1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgYm9yZGVyLWxlZnQ6IDA7XG5cdGJvcmRlci1jb2xvcjogI2M4YzhjODtcblx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxudGFibGUuZGF0YVRhYmxlIHRib2R5IHRyIHRke1xuXHRhe1xuXHRcdCY6aG92ZXIsXG5cdFx0JjphY3RpdmUsXG5cdFx0Jjpmb2N1c3tcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHR9XG5cdH1cbn1cblxudGFibGUuZGF0YVRhYmxlIHRib2R5IHRyLm9kZHtcblx0YmFja2dyb3VuZDogI2ZmZjtcbn1cblxudGFibGUuZGF0YVRhYmxlIHRib2R5IHRyLmV2ZW57XG5cdGJhY2tncm91bmQ6ICNlNGU0ZTQ7XG59XG5cblxudGFibGUuZGF0YVRhYmxlIHRib2R5IHRyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNiMzE1O1xuICAgIGNvbG9yOiAjNjgxNzI2O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGF7XG4gICAgXHQgY29sb3I6ICM2ODE3MjY7XG4gICAgfVxufVxuXG50YWJsZS5kYXRhVGFibGUgdGhlYWQgdGgsIHRhYmxlLmRhdGFUYWJsZSB0aGVhZCB0ZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICBiYWNrZ3JvdW5kOiAjNjgxNzI2O1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG50YWJsZS5kYXRhVGFibGUgdGhlYWQgdGh7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbnRhYmxlLmRhdGFUYWJsZSB0Ym9keSB0ciB0ZHtcblx0YXtcblx0XHRjb2xvcjojNmM2ZTcyO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59XG5cbnRhYmxlLmRhdGFUYWJsZS5kdHItY29sdW1uPnRib2R5PnRyPnRkLmNvbnRyb2w6YmVmb3JlLCB0YWJsZS5kYXRhVGFibGUuZHRyLWNvbHVtbj50Ym9keT50cj50aC5jb250cm9sOmJlZm9yZSB7XG4gICAgbGluZS1oZWlnaHQ6IDE3cHg7XG59XG5cbi5kYXRhVGFibGVzX2xlbmd0aHtcblx0cGFkZGluZzogMzBweCAwIDA7XG59XG5cbi5kYXRhVGFibGVzX2ZpbHRlcntcblx0cGFkZGluZzogMjBweCAwO1xufVxuXG4uZGF0YVRhYmxlc193cmFwcGVyIC5kYXRhVGFibGVzX2luZm8sIC5kYXRhVGFibGVzX3BhZ2luYXRle1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG59XG5cbi5maWx0ZXItZ2VyYWx7XG5cdC5pY29uLWx1cGF7XG5cdFx0YmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL2ljby1sdXBhLmpwZ1wiKTtcblx0XHRoZWlnaHQ6IDEycHg7XG5cdFx0d2lkdGg6IDEycHg7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBcdFx0dG9wOiAycHg7XG5cdH1cblxuXHQuYnQtcGFyb3F1aWFze1xuXHQgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHQgICAgcGFkZGluZy1yaWdodDogOHB4O1xuXHQgICAgYm9yZGVyLXJpZ2h0OiAjYmZiZmJmIHNvbGlkIDFweDtcblx0ICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ICAgIHRvcDogM3B4O1xuXHRcdGF7XG5cdFx0XHRjb2xvcjogIzNjM2MzYztcblx0XHRcdGZvbnQtc2l6ZTogMTBweDtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0fVxuXHR9XG5cblx0LmZpbHRlci1yZWdpb2Vze1xuXHRcdG1hcmdpbi1sZWZ0OiA4cHg7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR9XG5cblx0LnR4dC1maWx0ZXJ7XG5cdFx0cGFkZGluZy1sZWZ0OiAzcHg7XG5cdFx0Y29sb3I6ICMzYzNjM2M7XG5cdFx0Zm9udC1zaXplOiAxMHB4O1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdH1cbn1cblxuXG4uZmlsdGVyLW1pc3Nhc3tcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIC8vYm9yZGVyLWxlZnQ6ICNiZmJmYmYgc29saWQgMXB4O1xuXHRwYWRkaW5nLWxlZnQ6IDhweDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0b3A6IC0ycHg7XG5cblx0LnR4dC1maWx0ZXJ7XG5cdFx0Y29sb3I6ICM2ODE3MjY7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0b3A6IDJweDtcblx0fVxuXG5cdC5zZWxlY3QtZGlhe1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRtYXJnaW4tcmlnaHQ6IDVweDtcblx0fVxuXG5cdC5zZWxlY3QtaG9yYXtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdH1cbn1cblxuLmJ0LWFjb2VzLXNvY2lhaXN7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAxcHg7XG5cdGF7XG5cdFx0Y29sb3I6ICMzYzNjM2M7XG5cdFx0Zm9udC1zaXplOiAxMHB4O1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdH1cbn1cblxuLy8gLmxpc3RhLXBlc3F1aXNhe1xuLy8gXHRtYXJnaW4tdG9wOiAxN3B4O1xuLy8gICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4vLyAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuLy8gICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4vLyAgICAgd2lkdGg6IDEwMCU7XG4vLyAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4vLyB9XG5cbi8vIC5saXN0YS1wZXNxdWlzYSBsaSxcbi8vIC5saXN0YS1wZXNxdWlzYSBzcGFuLFxuLy8gLmxpc3RhLXBlc3F1aXNhIHVse1xuLy8gXHRkaXNwbGF5OiBpbmxpbmU7XG4vLyB9XG5cbi8vIC5saXN0YS1wZXNxdWlzYSBsaSBhLmFjdGl2ZXtcbi8vIFx0Y29sb3I6ICM1ZTAwMTE7XG4vLyB9XG5cbi5saXN0YS1wZXNxdWlzYSB7XG5cdGNvbG9yOiAjNmM2ZTcyO1xuXHRmb250LXNpemU6IDEwcHg7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdG1hcmdpbi10b3A6IDhweDtcbn1cblxuXHQubGlzdGEtcGVzcXVpc2Egc3BhbiB7XG5cdCAgZGlzcGxheTogaW5saW5lOyB9XG5cdFxuXHQubGlzdGEtcGVzcXVpc2EgdWwge1xuXHQgIGRpc3BsYXk6IGlubGluZTsgfVxuXG5cdC5saXN0YS1wZXNxdWlzYSA+IHVsID4gbGkge1xuXHQgIHBhZGRpbmc6IDAgNnB4O1xuXHQgIGRpc3BsYXk6IGlubGluZTtcblx0ICBib3JkZXItbGVmdDogI2JmYmZiZiBzb2xpZCAxcHg7IH1cblxuXHQgIC5saXN0YS1wZXNxdWlzYSA+IHVsID4gbGkgYSB7XG5cdFx0Y29sb3I6ICM2YzZlNzI7IH1cblxuXHQubGlzdGEtcGVzcXVpc2EgPiB1bCA+IGxpOmZpcnN0LWNoaWxkIHtcblx0ICBib3JkZXItbGVmdDogMDsgfVxuICBcblxuICAubGlzdGEtcGVzcXVpc2EgPiB1bCA+IGxpIGEuYWN0aXZlIHtcblx0Y29sb3I6ICM2MDlkNTA7IH1cblxuLmJyZWFkY3J1bWIge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgICBmb250LWZhbWlseTogJ0xhdG8nLCBzYW5zLXNlcmlmO1xufVxuXG4ub3V0LWJyZWFkY2h1bWJze1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDAgMCA4cHggMDtcbn1cblxuLmxpc3RhLXBlc3F1aXNhLmFsaWduLXJpZ2h0e1xuXHRmbG9hdDogcmlnaHQ7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4udGl0bGUtc2VjdGlvbntcblx0bWFyZ2luLXRvcDogMTVweDtcblx0Ym9yZGVyLWJvdHRvbTogI2QwZDBkMCBzb2xpZCAxcHg7XG4gICAgXHRwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG5cdGgxe1xuXHRcdGNvbG9yOiAjNjgxNzI2O1xuXHRcdGZvbnQtc2l6ZTogMzBweDtcblx0XHRmb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmO1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHR9XG5cblx0c3Bhbntcblx0XHRjb2xvcjogIzY4MTcyNjtcblx0XHRmb250LXdlaWdodDogNzAwO1xuXHR9XG59XG5cbi5icmVhZGNydW1ie1xuXHQubmVncml0b3tcblx0XHRmb250LXdlaWdodDogYm9sZDtcbiAgICBcdFx0Y29sb3I6ICMwMDA7XG5cdH1cbn1cblxuLmNvbnRlbnQtcGFyb3F1aWF7XG5cdG1hcmdpbi10b3A6IDIwcHg7XG59XG5cbi5hdmF0YXItcGFyb3F1aWF7XG5cdGJhY2tncm91bmQ6ICNlNWU1ZTU7XG5cdHBhZGRpbmc6IDVweCA1cHggMTBweCA1cHg7XG5cdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdGgye1xuXHRcdGNvbG9yOiAjNzg3ODc4O1xuXHRcdGZvbnQtc2l6ZTogMTBweDtcblx0XHRmb250LWZhbWlseTogJ0xhdG8nLCBzYW5zLXNlcmlmO1xuXHRcdG1hcmdpbjogNXB4IDA7XG5cdH1cblx0aDN7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRmb250LWZhbWlseTogJ0xhdG8nLCBzYW5zLXNlcmlmO1xuXHRcdGNvbG9yOiAjNjgxNzI2O1xuXHR9XG5cblx0LnR4dC1hdmF0YXJ7XG5cdFx0cGFkZGluZzogNXB4O1xuXHR9XG59XG5cbi5jb250YWluZXItbG9hZGluZ3tcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuLmxvYWRpbmd7XG5cdC5kYXRhLXRhYmxle1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQuY29udGFpbmVyLWxvYWRpbmd7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cbn1cblxuLnNlbGVjdC1wYXJvcXVpYXtcblx0bWFyZ2luLXRvcDogMTdweDtcbn1cblxuXG5cbi5idG4tZ3JvdXAub3BlbiAuZHJvcGRvd24tbWVudSA+IGxpID4gYXtcblx0cGFkZGluZy1sZWZ0OiA5cHggIWltcG9ydGFudDtcblx0cGFkZGluZy1yaWdodDogOXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5pbmZvLXBhcm9xdWlhe1xuXHRtYXJnaW4tdG9wOiAwO1xuXHRvdmVyZmxvdzogYXV0bztcblxuXHR1bHtcblx0XHRtYXJnaW46IDA7XG5cdFx0cGFkZGluZzogMDtcblxuXHRcdGxpe1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdGJvcmRlci10b3A6ICNkOGQ4ZDggc29saWQgMXB4O1xuXHRcdFx0cGFkZGluZzogMTBweCA1cHg7XG5cdFx0XHQmLnNpdGV7XG5cdFx0XHRcdGF7XG5cdFx0XHRcdFx0dGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0JjpmaXJzdC1jaGlsZHtcblx0XHRcdFx0cGFkZGluZy10b3A6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGxpOmZpcnN0LWNoaWxke1xuXHRcdFx0Ym9yZGVyOiAwO1xuXHRcdH1cblx0fVxuXG5cdGgye1xuXHRcdGNvbG9yOiAjNjgxNzI2O1xuXHRcdGZvbnQtc2l6ZTogMTFweDtcblx0XHRmb250LWZhbWlseTogJ0xhdG8nLCBzYW5zLXNlcmlmO1xuXHRcdG1hcmdpbjogMCAwIDJweCAwO1xuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdH1cblx0aDMsIGF7XG5cdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdGZvbnQtZmFtaWx5OiAnTGF0bycsIHNhbnMtc2VyaWY7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdFx0Y29sb3I6ICM3ODc4Nzg7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0fVxufVxuXG4uZGl2bWFwYXtcblx0bWFyZ2luOiAyNXB4IDA7XG59XG5cbiNtYXAtY2FudmFze1xuXHR3aWR0aDogMTAwJTtcblx0aGVpZ2h0OiAzNTBweDtcbn1cblxuLmRhZG9zLXBhcm9xdWlhe1xuXHRtYXJnaW4tdG9wOiAycHg7XG5cdFxuXHRoMntcblx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0Y29sb3I6ICM2ODE3MjY7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHR9XG5cblx0aDN7XG5cdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdGNvbG9yOiAjNzg3ODc4O1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdH1cblxufVxuXG4uZGFkb3MtcGFyb3F1aWEuZW5kZXJlY297XG5cdG1hcmdpbi10b3A6IDI1cHg7XG59XG5cbi5saXN0YS1kYWRvcy1wYXJvcXVpYXtcblx0bGl7XG5cdFx0bGlzdC1zdHlsZTogbm9uZTtcblx0XHRjb2xvcjogIzc4Nzg3ODtcblx0XHRmb250LXNpemU6IDE1cHg7XG5cdFx0Zm9udC1mYW1pbHk6ICdMYXRvJywgc2Fucy1zZXJpZjtcblxuXHRcdHNwYW57XG5cdFx0XHRjb2xvcjogIzY4MTcyNjtcblx0XHR9XG5cdH1cbn1cblxuaDM6ZW1wdHl7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jb2wtZGFkb3M6YWZ0ZXJ7XG5cdGNvbnRlbnQ6IFwiXCI7XG5cdHdpZHRoOiAxcHg7XG5cdGhlaWdodDogMTAwJTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdHJpZ2h0OiAtNTBweDtcblx0YmFja2dyb3VuZDogI2Q4ZDhkODtcbn1cblxuLnRpdGxlLXBhZ2UtcGFyb3F1aWF7XG5cdGNvbG9yOiAjNjgxNzI2O1xuXHRmb250LXNpemU6IDE4cHg7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdG1hcmdpbi10b3A6IDA7XG59XG5cbi5taXNzYXN7XG5cdHRhYmxle1xuXHRcdHRoZWFke1xuXHRcdFx0dGh7XG5cdFx0XHRcdCY6bnRoLWNoaWxkKDIpe1xuXHRcdFx0XHRcdHdpZHRoOiAzNSUgIWltcG9ydGFudDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdCY6bnRoLWNoaWxkKDMpe1xuXHRcdFx0XHRcdC8vd2lkdGg6IDIwJSAhaW1wb3J0YW50O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LmRhdGFUYWJsZXNfZmlsdGVye1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQuZmlsdGVyLW1pc3Nhc3tcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdH1cblxuXHQvLyB0cntcblx0Ly8gXHRjdXJzb3I6IGRlZmF1bHQgIWltcG9ydGFudDtcblx0Ly8gfVxufVxuXG4ubGlzdGEtbWlzc2Fze1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHR1bHtcblx0XHRtYXJnaW46IDA7XG5cdFx0cGFkZGluZzogMDtcblxuXHRcdGxpe1xuXHRcdFx0bGlzdC1zdHlsZTogbm9uZTtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRoMntcblx0XHRcdFx0Zm9udC1zaXplOiAxNXB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0XHRjb2xvcjogIzY4MTcyNjtcblx0XHRcdFx0Zm9udC1mYW1pbHk6ICdMYXRvJywgc2Fucy1zZXJpZjtcblx0XHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHRcdH1cblxuXHRcdFx0cHtcblx0XHRcdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHQmLkNvbnRhaW5lck1pc3Nhc3tcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0XHRcdFx0cHtcblx0XHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRoM3tcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRtYXJnaW46IDAgMCAycHggMDtcblx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdGNvbG9yOiAjNjgxNzI2O1xuXHR9XG59XG5cbi5ob3JhcmlvLWZ1bmNpb25hbWVudG97XG5cdG1hcmdpbi10b3A6IDIwcHg7XG5cdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdHBhZGRpbmc6IDIwcHggMCAxMHB4IDA7XG5cdGJvcmRlci10b3A6ICNkOGQ4ZDggc29saWQgMXB4O1xuXHRib3JkZXItYm90dG9tOiAjZDhkOGQ4IHNvbGlkIDFweDtcblxuXHRwe1xuXHRcdGZvbnQtZmFtaWx5OiAnTGF0bycsIHNhbnMtc2VyaWY7XG5cdH1cblxuXHRzcGFue1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0Y29sb3I6ICM2ODE3MjY7XG5cdH1cbn1cblxuLmNvbXVuaWRhZGVze1xuXHRtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4ubGlzdGEtY29tdW5pZGFkZXtcblx0bGl7XG5cdFx0Zm9udC1mYW1pbHk6ICdMYXRvJywgc2Fucy1zZXJpZjtcblx0XHRtYXJnaW4tYm90dG9tOiAxNXB4O1xuXHR9XG5cblx0aDN7XG5cdFx0Y29sb3I6ICM2ODE3MjY7XG5cdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0fVxuXHRwe1xuXHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRjb2xvcjogIzc4Nzg3ODtcblx0XHRtYXJnaW4tYm90dG9tOiA1cHg7XG5cdH1cblxuXHRsaTpudGgtY2hpbGQoNG4rMSkge1xuXHQgICAgY2xlYXI6IGJvdGg7XG5cdH1cbn1cblxuLmlubmVyLWVuZHtcblx0cGFkZGluZy1yaWdodDogMjBweDtcbn1cblxuLmV4dHJhe1xuXHRtYXJnaW4tdG9wOiAyMHB4O1xuXHRwYWRkaW5nLXRvcDogMzBweDtcblx0Ym9yZGVyLXRvcDogI2Q4ZDhkOCBzb2xpZCAxcHg7XG5cdGZvbnQtZmFtaWx5OiAnTGF0bycsIHNhbnMtc2VyaWY7XG59XG5cbi5leHRyYSBiLCAubGlzdGEtcGVzcXVpc2EgPiBzcGFuIHtcblx0Zm9udC1zaXplOiAxNXB4O1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGNvbG9yOiAjNjgxNzI2O1xuICAgICAgZm9udC1mYW1pbHk6ICdMYXRvJywgc2Fucy1zZXJpZjtcbiAgICAgIG1hcmdpbi10b3A6IDA7IFxufVxuXG4uYm9vdHN0cmFwLXNlbGVjdC5idG4tZ3JvdXAgLmRyb3Bkb3duLXRvZ2dsZSAuZmlsdGVyLW9wdGlvbiB7XG4gICBmb250LXNpemU6IDEwcHg7XG4gICBjb2xvcjogIzNjM2MzYztcbiAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICBwYWRkaW5nOiA0cHggNDBweCA0cHggN3B4O1xuICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5ib290c3RyYXAtc2VsZWN0e1xuXHRiYWNrZ3JvdW5kOiBub25lO1xuXHRoZWlnaHQ6IDIycHg7XG5cdC5kcm9wZG93bi10b2dnbGV7XG5cdFx0cGFkZGluZzogMDtcblx0XHRib3JkZXI6ICNjY2Mgc29saWQgMXB4O1xuXHRcdC13ZWJraXQtYm9yZGVyLXJhZGl1czogNXB4O1xuXHRcdC1tb3otYm9yZGVyLXJhZGl1czogNXB4O1xuXHRcdGJvcmRlci1yYWRpdXM6IDVweDtcblx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHR9XG59XG5cbi5ib290c3RyYXAtc2VsZWN0ICAuYnMtY2FyZXR7XG5cdGNvbG9yOiAjNjY2O1xufVxuXG4uYm9vdHN0cmFwLXNlbGVjdCAuY2FyZXQge1xuICAgIGJvcmRlci1sZWZ0OiA0cHggZGFzaGVkO1xuICAgIGJvcmRlci1yaWdodDogNHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3A6IDRweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiA0cHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi5ib290c3RyYXAtc2VsZWN0LmJ0bi1ncm91cCAuZHJvcGRvd24tdG9nZ2xlIC5jYXJldCB7XG4gICAgbWFyZ2luLXRvcDogLTRweDtcbiAgICByaWdodDogN3B4O1xufVxuXG4uYm9vdHN0cmFwLXNlbGVjdC5idG4tZ3JvdXAgLmRyb3Bkb3duLXRvZ2dsZSAuZmlsdGVyLW9wdGlvbjphZnRlcntcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICNjY2M7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAyNXB4O1xuICAgIHRvcDogMDtcbn1cblxuXG4vKiAyIC0gSW50ZXJuYSBOb3TDrWNpYXMgKi9cbi5ib290c3RyYXAtc2VsZWN0IC5kcm9wZG93bi10b2dnbGU6Zm9jdXN7XG5cdG91dGxpbmU6IDAgIWltcG9ydGFudDtcbn1cblxuLmJ0bi1ncm91cC5vcGVue1xuXHQuZHJvcGRvd24tdG9nZ2xlIHtcblx0ICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXHQgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXHQgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuXHR9XG5cblx0LmZpbHRlci1vcHRpb257XG5cdFx0Y29sb3I6ICM2ODE3MjYgIWltcG9ydGFudDtcblx0fVxuXG5cdC5kcm9wZG93bi1tZW51ID4gbGkgPiBhIHtcblx0ICAgIGNvbG9yOiAjNzc3Nzc3O1xuXHQgICAgcGFkZGluZzogM3B4IDE1cHggM3B4IDE1cHg7XG5cdCAgICBmb250LXNpemU6IDEycHg7XG5cdCAgICB0ZXh0LXRyYW5zZm9ybTogaW5oZXJpdDtcblx0ICAgIGZvbnQtZmFtaWx5OiAnTGF0bycsIHNhbnMtc2VyaWY7XG5cdH1cblxuXHQuZHJvcGRvd24tbWVudSA+IGxpID4gYTpmb2N1c3tcblx0XHRvdXRsaW5lOiAwO1xuXHR9XG5cblx0LmRyb3Bkb3duLW1lbnUgPiBsaSA+IGE6aG92ZXJ7XG5cdFx0Y29sb3I6ICM2ODE3MjY7XG5cdH1cblxuXHQuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhLCAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhOmhvdmVyLCAuZHJvcGRvd24tbWVudSA+IC5hY3RpdmUgPiBhOmZvY3Vze1xuXHRcdGJhY2tncm91bmQ6IG5vbmU7XG5cdFx0Y29sb3I6ICM2ODE3MjY7XG5cdH1cblxuXHQuZm9ybS1jb250cm9sOmZvY3VzIHtcblx0ICAgIGJvcmRlci1jb2xvcjogI2NjYztcblx0ICAgIG91dGxpbmU6IDA7XG5cdCAgICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMDc1KSwgMCAwIDhweCByZ2JhKDEwMiwgMTc1LCAyMzMsIDAuNik7XG5cdCAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAwLjA3NSksIDAgMCA4cHggcmdiYSgxMDIsIDE3NSwgMjMzLCAwLjYpO1xuXHR9XG59XG5cbi5icy1zZWFyY2hib3h7XG5cdGlucHV0LmZvcm0tY29udHJvbCB7XG5cdCAgICBwYWRkaW5nOiAxNHB4IDEycHg7XG5cdH1cbn1cblxuLmlubmVyLXNlbGVjdC1wYXJvcXVpYXN7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuLnNlbGVjdC1yZXNwb25zaXZle1xuXHRtYXJnaW4tdG9wOiAyMHB4O1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tIEdBTEVSSUEgREUgRk9UT1MgICovXG5cbi50cGwtZ2FsZXJpYXtcbiAgICBtYXJnaW46IDIwcHggMCA0MHB4O1xuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci10b3A6ICNkOGQ4ZDggc29saWQgMXB4O1xuICAgIGZvbnQtZmFtaWx5OiAnTGF0bycsIHNhbnMtc2VyaWY7XG59XG5cbi5yb3lhbFNsaWRlcntcblx0d2lkdGg6IDEwMCU7XG5cdCAgICBtaW4taGVpZ2h0OiA1MDBweDtcblx0ICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHQgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7ICBcblx0ICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLnJveWFsU2xpZGVyOm5vdCgucnNGdWxsc2NyZWVuKSB7XG5cdG1heC1oZWlnaHQ6IDUwMHB4O1xufVxuXG4ucnNEZWZhdWx0LCAucnNEZWZhdWx0IC5yc092ZXJmbG93LCAucnNEZWZhdWx0IC5yc1NsaWRlLCAucnNEZWZhdWx0IC5yc1ZpZGVvRnJhbWVIb2xkZXIsIC5yc0RlZmF1bHQgLnJzVGh1bWJzIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjRmNGY0O1xuICAgIGNvbG9yOiAjRkZGO1xufVxuXG4ucnNEZWZhdWx0IC5yc1RodW1icyB7XG5cdGJhY2tncm91bmQ6ICNlNGU0ZTQ7XG5cdGNvbG9yOiAjRkZGO1xuXHQgcGFkZGluZy1ib3R0b206IDAgIWltcG9ydGFudDtcbn1cblxuLnJzRGVmYXVsdCAucnNHQ2FwdGlvbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgYmFja2dyb3VuZDogI2ZmYjUwMDtcbiAgICBjb2xvcjogIzdhMTAyMjtcbiAgICBwYWRkaW5nOiAxNXB4IDEzcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgei1pbmRleDogMTAwO1xufVxuXG4ucnNEZWZhdWx0IC5yc1RodW1iIHtcbiAgICB3aWR0aDogMTU2cHg7XG4gICAgaGVpZ2h0OiA4MXB4O1xufVxuXG4ucnNEZWZhdWx0IC5yc1RodW1ic0hvciB7XG4gICAgaGVpZ2h0OiA4MXB4O1xufVxuXG4ucnNGdWxsc2NyZWVue1xuXHQucnNHQ2FwdGlvbiB7XG4gICAgXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBcdFx0Ym90dG9tOiA4MXB4O1xuICAgIH1cblxuIC8vICAgIC5yb3lhbFNsaWRlcntcblx0Ly8gICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cdC8vIH1cbn1cblxuLnJzRGVmYXVsdCAucnNUaHVtYi5yc05hdlNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGltZ3tcbiAgICBcdG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG4ucnNEZWZhdWx0IC5yc05hdlNlbGVjdGVkOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlcjogI2ZmYjUwMCBzb2xpZCAzcHg7XG59XG5cbi5mYXJvbmlhc3tcblx0dGFibGV7XG5cdFx0dGg6bnRoLWNoaWxkKDEpe1xuXHRcdFx0d2lkdGg6IDUwJSAhaW1wb3J0YW50O1xuXHRcdH1cblx0fVxufVxuXG4uZ2FsbGVyeS1saWdodGJveHtcblx0bWFyZ2luOiAyMHB4IDUwcHg7XG5cdHVse1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0bGl7XG5cdFx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0XHR9XG5cdH1cblxuXHQuY292ZXItaW1hZ2V7XG5cdFx0aGVpZ2h0OiAxNTBweDtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblx0XHRib3JkZXI6ICNkOGQ4ZDggc29saWQgMXB4O1xuXHR9XG59XG5cblxuLmRlc3RhcXVlLXJlZ2lhb3tcblx0IG1hcmdpbjogMzBweCAwIDYwcHggMDtcblx0IGJvcmRlci1ib3R0b206ICNkOGQ4ZDggc29saWQgMXB4O1xuXG5cdCB0YWJsZXtcblx0XHQgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuXHQgfVxuXG5cdC50YWJsZSB0aGVhZCB0aHtcblx0XHRjb2xvcjogI0ZGRjtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0cGFkZGluZy10b3A6IDEzcHg7XG5cdFx0cGFkZGluZy1ib3R0b206IDE1cHg7XG5cdFx0cGFkZGluZy1sZWZ0OiAxN3B4O1xuXHRcdGZvbnQtZmFtaWx5OiBNb250c2VycmF0LCBzYW5zLXNlcmlmO1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdH1cblxuXHQudGFibGUgdGhlYWQgdGg6bnRoLWNoaWxkKDEpe1xuXHRcdHdpZHRoOiAyMCU7XG5cdH1cblxuXHQudGFibGUgdGJvZHkgdHJ7XG5cdFx0JjpudGgtY2hpbGQob2RkKXtcblx0XHRcdHRkLFxuXHRcdFx0dGh7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNlY2VjZWMgIWltcG9ydGFudDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQudGFibGUgdGhlYWQgdGg6bnRoLWNoaWxkKG9kZCl7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmYjUwMDtcblx0XHRjb2xvcjogIzY4MTcyNjtcblx0fVxuXG5cdC50YWJsZSB0aGVhZCB0aDpudGgtY2hpbGQoZXZlbil7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2E2NzMxMjtcblx0fVxuXG5cdC50YWJsZXtcblx0XHR0ZCxcblx0XHR0aHtcblx0XHRcdHBhZGRpbmc6IDE1cHg7XG5cdFx0XHRib3JkZXItcmlnaHQ6ICNjOGM5Y2Egc29saWQgMXB4ICFpbXBvcnRhbnQ7XG5cdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdH1cblx0fVxufVxuXG4uZGVzdGFxdWUtcmVnaWFvIC50YWJsZSB0ciB0ZDpsYXN0LWNoaWxke1xuXHRib3JkZXItcmlnaHQ6IDAgIWltcG9ydGFudDtcbn1cblxuLnRyLW1vYmlsZXtcblx0cGFkZGluZzogMTVweDtcblxuXHQuaW5uZXItZGF0YS10YWJsZXtcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHR9XG59XG5cbi5kYXRhLXRpdGxle1xuXHRjb2xvcjogIzY4MTcyNjtcblx0Zm9udC1mYW1pbHk6ICdMYXRvJywgc2Fucy1zZXJpZjtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRmb250LXdlaWdodDogOTAwO1xuXHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uaW5mby10YWJsZXtcblx0Y29sb3I6ICM3ODc4Nzg7XG5cdGZvbnQtZmFtaWx5OiAnTGF0bycsIHNhbnMtc2VyaWY7XG5cdGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmZhcm9uaWFze1xuXHQucmVwZWF0LWZhcm9uaWF7XG5cdFx0bWFyZ2luLWJvdHRvbTogNDBweDtcblx0XHRoMntcblx0XHRcdGNvbG9yOiAjNjgxNzI2O1xuXHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdFx0fVxuXG5cdFx0YXtcblx0XHRcdGNvbG9yOiAjNmM2ZTcyO1xuXHRcdFx0Zm9udC1mYW1pbHk6ICdMYXRvJywgc2Fucy1zZXJpZjtcblx0XHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHR9XG5cblx0XHRhOmhvdmVye1xuXHRcdFx0Y29sb3I6ICM2ODE3MjY7XG5cdFx0fVxuXHR9XG5cblx0XG5cdC50YWJsZSB0aGVhZCB0aHtcblx0XHRjb2xvcjogI0ZGRjtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0cGFkZGluZy10b3A6IDEzcHg7XG5cdFx0cGFkZGluZy1ib3R0b206IDE1cHg7XG5cdFx0cGFkZGluZy1sZWZ0OiAxN3B4O1xuXHRcdGZvbnQtZmFtaWx5OiBNb250c2VycmF0LCBzYW5zLXNlcmlmO1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdH1cblxuXHQvLyAudGFibGUgdGJvZHkgdHJ7XG5cdC8vIFx0JjpudGgtY2hpbGQob2RkKXtcblx0Ly8gXHRcdHRkLFxuXHQvLyBcdFx0dGh7XG5cdC8vIFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNlY2VjZWMgIWltcG9ydGFudDtcblx0Ly8gXHRcdH1cblx0Ly8gXHR9XG5cdC8vIH1cblxuXHQudGFibGUgdGhlYWQgdGg6bnRoLWNoaWxkKG9kZCl7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzY4MTcyNjtcblx0XHRjb2xvcjogI2ZmZjtcblx0fVxuXG5cdC50YWJsZSB0aGVhZCB0aDpudGgtY2hpbGQoZXZlbil7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogIzY4MTcyNjtcblx0fVxuXG5cdC50YWJsZXtcblx0XHR0ZCxcblx0XHR0aHtcblx0XHRcdHBhZGRpbmc6IDE1cHg7XG5cdFx0XHRib3JkZXItcmlnaHQ6ICNjOGM5Y2Egc29saWQgMXB4ICFpbXBvcnRhbnQ7XG5cdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdH1cblx0fVxufVxuXG4uZmFyb25pYXMgLnRhYmxlIHRyIHRkOmxhc3QtY2hpbGR7XG5cdGJvcmRlci1yaWdodDogMCAhaW1wb3J0YW50O1xufVxuXG4udGFibGUtbWlzc2FzIHRyLCAudGFibGUtcGFyb3F1aWFzIHRye1xuXHRjb2xvcjogIzZjNmU3Mjtcblx0Zm9udC1mYW1pbHk6ICdMYXRvJywgc2Fucy1zZXJpZjtcblx0Zm9udC1zaXplOiAxM3B4O1xuXG5cdHRkLCB0aHtcblx0XHRwYWRkaW5nOiAxNXB4ICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLyogTm92byBNYXBhICovXG5cbi8qIENvcmVzIHJlZ2nDtWVzICovXG5cbnRleHQsXG5jaXJjbGV7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4kcmVnaWFvMTogI2ZjYjMxNTtcbiRyZWdpYW8yOiAjMDBiM2Q0O1xuJHJlZ2lhbzQ6ICM5OTAwMDA7XG4kcmVnaWFvMzogIzYwOWQ1MDtcbiRyZWdpYW81OiAjNzA2NWE3O1xuXG4ubGlzdGEtcmVnaW9lc3tcblx0bWFyZ2luLXRvcDogODBweDtcblxuXHQuYnRuLXJlZ2lhbzF7XG5cdFx0Y29sb3I6ICRyZWdpYW8xO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRyZWdpYW8xICFpbXBvcnRhbnQ7XG5cblx0XHRzcGFue1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRyZWdpYW8xLCA1JSk7XG5cdFx0fVxuXHR9XG5cblx0LmJ0bi1yZWdpYW8ye1xuXHRcdGNvbG9yOiAkcmVnaWFvMjtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAkcmVnaWFvMiAhaW1wb3J0YW50O1xuXG5cdFx0c3Bhbntcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkcmVnaWFvMiwgNSUpO1xuXHRcdH1cblx0fVxuXG5cdC5idG4tcmVnaWFvM3tcblx0XHRjb2xvcjogJHJlZ2lhbzM7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJHJlZ2lhbzMgIWltcG9ydGFudDtcblxuXHRcdHNwYW57XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHJlZ2lhbzMsIDUlKTtcblx0XHR9XG5cdH1cblxuXHQuYnRuLXJlZ2lhbzR7XG5cdFx0Y29sb3I6ICRyZWdpYW80O1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRyZWdpYW80ICFpbXBvcnRhbnQ7XG5cblx0XHRzcGFue1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRyZWdpYW80LCA1JSk7XG5cdFx0fVxuXHR9XG5cblx0LmJ0bi1yZWdpYW81e1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICRyZWdpYW81ICFpbXBvcnRhbnQ7XG5cblx0XHRzcGFue1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRyZWdpYW81LCA1JSk7XG5cdFx0fVxuXHR9XG5cblx0Ji5BdGl2b3JlZ2lhbzEgLmJ0bi1yZWdpYW8xe1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRyZWdpYW8xICFpbXBvcnRhbnQ7XG5cdFx0Y29sb3I6ICNGRkY7XG5cblx0XHQmIHNwYW57XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHJlZ2lhbzEsIDE1JSkgIWltcG9ydGFudDtcblx0XHRcdGJvcmRlci1jb2xvcjogZGFya2VuKCRyZWdpYW8xLCAxNSUpICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG5cblx0Ji5BdGl2b3JlZ2lhbzIgLmJ0bi1yZWdpYW8ye1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRyZWdpYW8yICFpbXBvcnRhbnQ7XG5cdFx0Y29sb3I6ICNGRkY7XG5cblx0XHQmIHNwYW57XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHJlZ2lhbzIsIDE1JSkgIWltcG9ydGFudDtcblx0XHRcdGJvcmRlci1jb2xvcjogZGFya2VuKCRyZWdpYW8yLCAxNSUpICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG5cblx0Ji5BdGl2b3JlZ2lhbzMgLmJ0bi1yZWdpYW8ze1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRyZWdpYW8zICFpbXBvcnRhbnQ7XG5cdFx0Y29sb3I6ICNGRkY7XG5cblx0XHQmIHNwYW57XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHJlZ2lhbzMsIDE1JSkgIWltcG9ydGFudDtcblx0XHRcdGJvcmRlci1jb2xvcjogZGFya2VuKCRyZWdpYW8zLCAxNSUpICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG5cblx0Ji5BdGl2b3JlZ2lhbzQgLmJ0bi1yZWdpYW80e1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRyZWdpYW80ICFpbXBvcnRhbnQ7XG5cdFx0Y29sb3I6ICNGRkY7XG5cblx0XHQmIHNwYW57XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHJlZ2lhbzQsIDE1JSkgIWltcG9ydGFudDtcblx0XHRcdGJvcmRlci1jb2xvcjogZGFya2VuKCRyZWdpYW80LCAxNSUpICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG5cblx0Ji5BdGl2b3JlZ2lhbzUgLmJ0bi1yZWdpYW81e1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRyZWdpYW81ICFpbXBvcnRhbnQ7XG5cdFx0Y29sb3I6ICNGRkY7XG5cblx0XHQmIHNwYW57XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHJlZ2lhbzUsIDE1JSkgIWltcG9ydGFudDtcblx0XHRcdGJvcmRlci1jb2xvcjogZGFya2VuKCRyZWdpYW81LCAxNSUpICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG5cblx0dWx7XG5cdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0cGFkZGluZzogMDtcblx0XHRsaXtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiA0MnB4O1xuXG5cdFx0XHRzcGFue1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdHdpZHRoOiA0NXB4O1xuXHRcdFx0XHRoZWlnaHQ6IDQ1cHg7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRsaW5lLWhlaWdodDogNDVweDtcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xuXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNpdGlvbjogYWxsLCAuM3M7XG5cdFx0XHRcdC1vLXRyYW5zaXRpb246IGFsbCwgLjNzO1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBhbGwsIC4zcztcblx0XHRcdFx0Y29sb3I6ICNGRkY7XG5cdFx0XHR9XG5cblx0XHRcdGF7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTVweDtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0XHRcdFx0Zm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdFwiO1xuXHRcdFx0XHRjb2xvcjogIzMzMztcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMWVtO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblxuXHRcdFx0XHR3aWR0aDogMjcwcHg7XG5cblx0XHRcdFx0LXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1cHg7XG5cdFx0XHRcdC1tb3otYm9yZGVyLXJhZGl1czogNXB4O1xuXHRcdFx0XHQtbXMtYm9yZGVyLXJhZGl1czogNXB4O1xuXHRcdFx0XHQtby1ib3JkZXItcmFkaXVzOiA1cHg7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDVweDtcblxuXHRcdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdFx0XHRcdCY6aG92ZXIsXG5cdFx0XHRcdCY6Zm9jdXMsXG5cdFx0XHRcdCY6YWN0aXZle1xuXHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cblx0XHRcdFx0XHQmIHNwYW57XG5cdFx0XHRcdFx0XHRjb2xvcjogI0ZGRjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmLmJ0bi1yZWdpYW8xOmhvdmVye1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRyZWdpYW8xICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0Y29sb3I6ICNGRkY7XG5cblx0XHRcdFx0XHQmIHNwYW57XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHJlZ2lhbzEsIDE1JSkgIWltcG9ydGFudDtcblx0XHRcdFx0XHRcdGJvcmRlci1jb2xvcjogZGFya2VuKCRyZWdpYW8xLCAxNSUpICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ji5idG4tcmVnaWFvMjpob3Zlcntcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkcmVnaWFvMiAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdGNvbG9yOiAjRkZGO1xuXG5cdFx0XHRcdFx0JiBzcGFue1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRyZWdpYW8yLCAxNSUpICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0XHRib3JkZXItY29sb3I6IGRhcmtlbigkcmVnaWFvMiwgMTUlKSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYuYnRuLXJlZ2lhbzM6aG92ZXJ7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHJlZ2lhbzMgIWltcG9ydGFudDtcblx0XHRcdFx0XHRjb2xvcjogI0ZGRjtcblxuXHRcdFx0XHRcdCYgc3Bhbntcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkcmVnaWFvMywgMTUlKSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0Ym9yZGVyLWNvbG9yOiBkYXJrZW4oJHJlZ2lhbzMsIDE1JSkgIWltcG9ydGFudDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmLmJ0bi1yZWdpYW80OmhvdmVye1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRyZWdpYW80ICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0Y29sb3I6ICNGRkY7XG5cblx0XHRcdFx0XHQmIHNwYW57XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHJlZ2lhbzQsIDUlKSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdFx0Ym9yZGVyLWNvbG9yOiBkYXJrZW4oJHJlZ2lhbzQsIDUlKSAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYuYnRuLXJlZ2lhbzU6aG92ZXJ7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHJlZ2lhbzUgIWltcG9ydGFudDtcblx0XHRcdFx0XHRjb2xvcjogI0ZGRjtcblxuXHRcdFx0XHRcdCYgc3Bhbntcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkcmVnaWFvNSwgNSUpICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0XHRib3JkZXItY29sb3I6IGRhcmtlbigkcmVnaWFvNSwgNSUpICFpbXBvcnRhbnQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4uY29udGVudC1tYXBhe1xuXHRtYXJnaW46IDQ1cHggMDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdC5tYXBhe1xuXHRcdHdpZHRoOiAxMDAlO1xuXHRcdHN2Z3tcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0bWF4LXdpZHRoOiAzNzBweDtcblx0XHRcdGhlaWdodDogNDE2cHg7XG5cdFx0fVxuXG5cdFx0JiBwYXRoe1xuXHRcdFx0ZmlsbDogI2ExYTE5Zjtcblx0XHR9XG5cblx0XHQmIHBhdGgucmVnaWFvMTpob3Zlcixcblx0XHQmLkF0aXZvUmVnaWFvMSBwYXRoLnJlZ2lhbzF7XG5cdFx0XHRmaWxsOiAkcmVnaWFvMTtcblx0XHR9XG5cblx0XHQmIHBhdGgucmVnaWFvMjpob3Zlcixcblx0XHQmLkF0aXZvUmVnaWFvMiBwYXRoLnJlZ2lhbzJ7XG5cdFx0XHRmaWxsOiAkcmVnaWFvMjtcblx0XHR9XG5cblx0XHQmIHBhdGgucmVnaWFvMzpob3Zlcixcblx0XHQmLkF0aXZvUmVnaWFvMyBwYXRoLnJlZ2lhbzN7XG5cdFx0XHRmaWxsOiAkcmVnaWFvMztcblx0XHR9XG5cblx0XHQmIHBhdGgucmVnaWFvNDpob3Zlcixcblx0XHQmLkF0aXZvUmVnaWFvNCBwYXRoLnJlZ2lhbzR7XG5cdFx0XHRmaWxsOiAkcmVnaWFvNDtcblx0XHR9XG5cblx0XHQmIHBhdGgucmVnaWFvNTpob3Zlcixcblx0XHQmLkF0aXZvUmVnaWFvNSBwYXRoLnJlZ2lhbzV7XG5cdFx0XHRmaWxsOiAkcmVnaWFvNTtcblx0XHR9XG5cblx0XHQmIHNwYW57XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdHdpZHRoOiA0MnB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDM4cHg7XG5cdFx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0XHRmb250LXdlaWdodDogNTAwO1xuXHRcdFx0bWF4LWhlaWdodDogNDJweDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdGxlZnQ6IDUwJTtcblx0XHRcdHRvcDogNTAlO1xuXHRcdFx0Y29sb3I6ICMzZDNkM2Q7XG5cdFx0XHRib3JkZXI6IDJweCBzb2xpZCAjM2QzZDNkO1xuXHRcdFx0QGluY2x1ZGUgYm9yZGVyLXJhZGl1cygxMDAlKTtcblx0XHRcdEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoLTUwJSwgLTUwJSkpO1xuXHRcdH1cblx0fVxuXG5cdCNyZWdpYW8xe1xuXHRcdHdpZHRoOiAyODdweDtcblx0XHRoZWlnaHQ6IDUwNHB4O1xuXHR9XG5cblx0LnJlZ2lhbzJ7XG5cdFx0d2lkdGg6IDI1MnB4O1xuXHQgICAgdG9wOiAtNDRweDtcblx0ICAgIGxlZnQ6IDEyM3B4O1xuXHR9XG5cblx0LnJlZ2lhbzN7XG5cdCAgICB3aWR0aDogMjM0cHg7XG5cdCAgICBsZWZ0OiAyNTZweDtcblx0ICAgIHRvcDogLTQ0cHg7XG5cdH1cblxuXHQucmVnaWFvNHtcblx0XHR3aWR0aDogNjBweDtcblx0ICAgIGxlZnQ6IDIxOHB4O1xuXHQgICAgdG9wOiAxMjJweDtcblx0fVxufVxuLyogTm92byBNYXBhICovXG5cblxuQGltcG9ydCBcIl9mbGV4LWJveC5zY3NzXCI7XG4iLCJAaW1wb3J0IFwiY29tcGFzcy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJjb21wYXNzL3V0aWxpdGllc1wiO1xuQGltcG9ydCBcImNvbXBhc3MvdHlwb2dyYXBoeVwiO1xuQGltcG9ydCBcImNvbXBhc3MvY3NzM1wiO1xuIiwiQGltcG9ydCBcImZ1bmN0aW9ucy9saXN0c1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9jcm9zc19icm93c2VyX3N1cHBvcnRcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvZ3JhZGllbnRfc3VwcG9ydFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9jb25zdGFudHNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvZGlzcGxheVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9jb2xvcnNcIjtcbiIsIi8vXG4vLyBBIHBhcnRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIFJ1YnkgbGlzdCBmdW5jdGlvbnMgZnJvbSBDb21wYXNzOlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL0NvbXBhc3MvY29tcGFzcy9ibG9iL3N0YWJsZS9saWIvY29tcGFzcy9zYXNzX2V4dGVuc2lvbnMvZnVuY3Rpb25zL2xpc3RzLnJiXG4vL1xuXG4vLyBjb21wYWN0IGlzIHBhcnQgb2YgbGlic2Fzc1xuXG5AZnVuY3Rpb24gLWNvbXBhc3MtbnRoKCRsaXN0LCAkcGxhY2UpIHtcbiAgLy8gWWVwLCBTYXNzLWxpc3RzIGFyZSAxLWluZGV4ZWQuXG4gIEBpZiAkcGxhY2UgPT0gXCJmaXJzdFwiIHtcbiAgICAkcGxhY2U6IDE7IH1cbiAgQGlmICRwbGFjZSA9PSBcImxhc3RcIiB7XG4gICAgJHBsYWNlOiBsZW5ndGgoJGxpc3QpOyB9XG4gIEByZXR1cm4gbnRoKCRsaXN0LCAkcGxhY2UpOyB9XG5cbi8vIGNvbXBhc3NfbGlzdCBjYW4ndCBiZSBpbXBsZW1lbnRlZCBpbiBzYXNzIHNjcmlwdFxuXG5AZnVuY3Rpb24gLWNvbXBhc3Mtc3BhY2UtbGlzdCgkaXRlbTEsICRpdGVtMjogbnVsbCwgJGl0ZW0zOiBudWxsLCAkaXRlbTQ6IG51bGwsICRpdGVtNTogbnVsbCwgJGl0ZW02OiBudWxsLCAkaXRlbTc6IG51bGwsICRpdGVtODogbnVsbCwgJGl0ZW05OiBudWxsKSB7XG4gIC8vIFN1cHBvcnQgZm9yIHBvbHltb3JwaGlzbS5cbiAgQGlmIHR5cGUtb2YoJGl0ZW0xKSA9PSBcImxpc3RcIiB7XG4gICAgLy8gUGFzc2luZyBhIHNpbmdsZSBhcnJheSBvZiBwcm9wZXJ0aWVzLlxuICAgICRpdGVtczogJGl0ZW0xOyB9XG4gIEBlbHNlIHtcbiAgICAkaXRlbXM6ICRpdGVtMSAkaXRlbTIgJGl0ZW0zICRpdGVtNCAkaXRlbTUgJGl0ZW02ICRpdGVtNyAkaXRlbTggJGl0ZW05OyB9XG4gICRmdWxsOiBmaXJzdC12YWx1ZS1vZigkaXRlbXMpO1xuICBAZm9yICRpIGZyb20gMiB0aHJvdWdoIGxlbmd0aCgkaXRlbXMpIHtcbiAgICAkaXRlbTogbnRoKCRpdGVtcywgJGkpO1xuICAgIEBpZiAkaXRlbSAhPSBudWxsIHtcbiAgICAgICRmdWxsOiAkZnVsbCAkaXRlbTsgfSB9XG4gIEByZXR1cm4gJGZ1bGw7IH1cblxuQGZ1bmN0aW9uIC1jb21wYXNzLWxpc3Qtc2l6ZSgkbGlzdCkge1xuICBAcmV0dXJuIGxlbmd0aCgkbGlzdCk7IH1cblxuQGZ1bmN0aW9uIC1jb21wYXNzLXNsaWNlKCRsaXN0LCAkc3RhcnQsICRlbmQ6IGZhbHNlKSB7XG4gIEBpZiAkZW5kID09IGZhbHNlIHtcbiAgICAkZW5kOiBsZW5ndGgoJGxpc3QpOyB9XG4gICRmdWxsOiBudGgoJGxpc3QsICRzdGFydCk7XG4gIEBmb3IgJGkgZnJvbSAkc3RhcnQgKyAxIHRocm91Z2ggJGVuZCB7XG4gICAgJGZ1bGw6ICRmdWxsLCBudGgoJGxpc3QsICRpKTsgfVxuICBAcmV0dXJuICRmdWxsOyB9XG5cbkBmdW5jdGlvbiByZWplY3QoJGxpc3QsICRyZWplY3QxLCAkcmVqZWN0MjogbnVsbCwgJHJlamVjdDM6IG51bGwsICRyZWplY3Q0OiBudWxsLCAkcmVqZWN0NTogbnVsbCwgJHJlamVjdDY6IG51bGwsICRyZWplY3Q3OiBudWxsLCAkcmVqZWN0ODogbnVsbCwgJHJlamVjdDk6IG51bGwpIHtcbiAgJHJlamVjdHM6ICRyZWplY3QxLCAkcmVqZWN0MiwgJHJlamVjdDMsICRyZWplY3Q0LCAkcmVqZWN0NSwgJHJlamVjdDYsICRyZWplY3Q3LCAkcmVqZWN0OCwgJHJlamVjdDk7XG4gICRmdWxsOiBmYWxzZTtcbiAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xuICAgIEBpZiBpbmRleCgkcmVqZWN0cywgJGl0ZW0pIHt9XG4gICAgQGVsc2Uge1xuICAgICAgQGlmICRmdWxsIHtcbiAgICAgICAgJGZ1bGw6ICRmdWxsLCAkaXRlbTsgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkZnVsbDogJGl0ZW07IH0gfSB9XG4gIEByZXR1cm4gJGZ1bGw7IH1cblxuQGZ1bmN0aW9uIGZpcnN0LXZhbHVlLW9mKCRsaXN0KSB7XG4gIEByZXR1cm4gbnRoKCRsaXN0LCAxKTsgfVxuXG4vL0BpZiBub3QgZnVuY3Rpb24tZXhpc3RzKGNvbXBhY3QpXG5AZnVuY3Rpb24gY29tcGFjdCgkdmFycy4uLikge1xuICAkbGlzdDogKCk7XG4gIEBlYWNoICR2YXIgaW4gJHZhcnMge1xuICAgIEBpZiAkdmFyIHtcbiAgICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICR2YXIsIGNvbW1hKTsgfSB9XG4gIEByZXR1cm4gJGxpc3Q7IH1cbiIsIi8vXG4vLyBBIHBhcnRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIFJ1YnkgY3Jvc3MgYnJvd3NlciBzdXBwb3J0IGZ1bmN0aW9ucyBmcm9tIENvbXBhc3M6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vQ29tcGFzcy9jb21wYXNzL2Jsb2Ivc3RhYmxlL2xpYi9jb21wYXNzL3Nhc3NfZXh0ZW5zaW9ucy9mdW5jdGlvbnMvY3Jvc3NfYnJvd3Nlcl9zdXBwb3J0LnJiXG4vL1xuXG5AZnVuY3Rpb24gcHJlZml4ZWQoJHByZWZpeCwgJHByb3BlcnR5MSwgJHByb3BlcnR5MjogbnVsbCwgJHByb3BlcnR5MzogbnVsbCwgJHByb3BlcnR5NDogbnVsbCwgJHByb3BlcnR5NTogbnVsbCwgJHByb3BlcnR5NjogbnVsbCwgJHByb3BlcnR5NzogbnVsbCwgJHByb3BlcnR5ODogbnVsbCwgJHByb3BlcnR5OTogbnVsbCkge1xuICAkcHJvcGVydGllczogJHByb3BlcnR5MSwgJHByb3BlcnR5MiwgJHByb3BlcnR5MywgJHByb3BlcnR5NCwgJHByb3BlcnR5NSwgJHByb3BlcnR5NiwgJHByb3BlcnR5NywgJHByb3BlcnR5OCwgJHByb3BlcnR5OTtcbiAgJHByZWZpeGVkOiBmYWxzZTtcbiAgQGVhY2ggJGl0ZW0gaW4gJHByb3BlcnRpZXMge1xuICAgIEBpZiB0eXBlLW9mKCRpdGVtKSA9PSBcInN0cmluZ1wiIHtcbiAgICAgICRwcmVmaXhlZDogJHByZWZpeGVkIG9yIHN0ci1pbmRleCgkaXRlbSwgXCJ1cmxcIikgIT0gMSBhbmQgc3RyLWluZGV4KCRpdGVtLCBcInJnYlwiKSAhPSAxIGFuZCBzdHItaW5kZXgoJGl0ZW0sIFwiI1wiKSAhPSAxOyB9XG4gICAgQGVsc2UgaWYgdHlwZS1vZigkaXRlbSkgPT0gXCJjb2xvclwiIHt9XG4gICAgQGVsc2UgaWYgJGl0ZW0gIT0gbnVsbCB7XG4gICAgICAkcHJlZml4ZWQ6IHRydWU7IH0gfVxuICBAcmV0dXJuICRwcmVmaXhlZDsgfVxuXG5AZnVuY3Rpb24gcHJlZml4KCRwcmVmaXgsICRwcm9wZXJ0eTEsICRwcm9wZXJ0eTI6IG51bGwsICRwcm9wZXJ0eTM6IG51bGwsICRwcm9wZXJ0eTQ6IG51bGwsICRwcm9wZXJ0eTU6IG51bGwsICRwcm9wZXJ0eTY6IG51bGwsICRwcm9wZXJ0eTc6IG51bGwsICRwcm9wZXJ0eTg6IG51bGwsICRwcm9wZXJ0eTk6IG51bGwpIHtcbiAgJHByb3BlcnRpZXM6IFwiXCI7XG4gIC8vIFN1cHBvcnQgZm9yIHBvbHltb3JwaGlzbS5cbiAgQGlmIHR5cGUtb2YoJHByb3BlcnR5MSkgPT0gXCJsaXN0XCIge1xuICAgIC8vIFBhc3NpbmcgYSBzaW5nbGUgYXJyYXkgb2YgcHJvcGVydGllcy5cbiAgICAkcHJvcGVydGllczogJHByb3BlcnR5MTsgfVxuICBAZWxzZSB7XG4gICAgLy8gUGFzc2luZyBtdWx0aXBsZSBwcm9wZXJ0aWVzLlxuICAgICRwcm9wZXJ0aWVzOiAkcHJvcGVydHkxLCAkcHJvcGVydHkyLCAkcHJvcGVydHkzLCAkcHJvcGVydHk0LCAkcHJvcGVydHk1LCAkcHJvcGVydHk2LCAkcHJvcGVydHk3LCAkcHJvcGVydHk4LCAkcHJvcGVydHk5OyB9XG4gICRwcm9wczogZmFsc2U7XG4gIEBlYWNoICRpdGVtIGluICRwcm9wZXJ0aWVzIHtcbiAgICBAaWYgJGl0ZW0gPT0gbnVsbCB7fVxuICAgIEBlbHNlIHtcbiAgICAgIEBpZiBwcmVmaXhlZCgkcHJlZml4LCAkaXRlbSkge1xuICAgICAgICAkaXRlbTogI3skcHJlZml4fS0jeyRpdGVtfTsgfVxuICAgICAgQGlmICRwcm9wcyB7XG4gICAgICAgICRwcm9wczogJHByb3BzLCAkaXRlbTsgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICAkcHJvcHM6ICRpdGVtOyB9IH0gfVxuICBAcmV0dXJuICRwcm9wczsgfVxuXG5AZnVuY3Rpb24gLXN2ZygkcHJvcGVydHkxLCAkcHJvcGVydHkyOiBudWxsLCAkcHJvcGVydHkzOiBudWxsLCAkcHJvcGVydHk0OiBudWxsLCAkcHJvcGVydHk1OiBudWxsLCAkcHJvcGVydHk2OiBudWxsLCAkcHJvcGVydHk3OiBudWxsLCAkcHJvcGVydHk4OiBudWxsLCAkcHJvcGVydHk5OiBudWxsKSB7XG4gIEByZXR1cm4gcHJlZml4KFwiLXN2Z1wiLCAkcHJvcGVydHkxLCAkcHJvcGVydHkyLCAkcHJvcGVydHkzLCAkcHJvcGVydHk0LCAkcHJvcGVydHk1LCAkcHJvcGVydHk2LCAkcHJvcGVydHk3LCAkcHJvcGVydHk4LCAkcHJvcGVydHk5KTsgfVxuXG5AZnVuY3Rpb24gLW93ZygkcHJvcGVydHkxLCAkcHJvcGVydHkyOiBudWxsLCAkcHJvcGVydHkzOiBudWxsLCAkcHJvcGVydHk0OiBudWxsLCAkcHJvcGVydHk1OiBudWxsLCAkcHJvcGVydHk2OiBudWxsLCAkcHJvcGVydHk3OiBudWxsLCAkcHJvcGVydHk4OiBudWxsLCAkcHJvcGVydHk5OiBudWxsKSB7XG4gIEByZXR1cm4gcHJlZml4KFwiLW93Z1wiLCAkcHJvcGVydHkxLCAkcHJvcGVydHkyLCAkcHJvcGVydHkzLCAkcHJvcGVydHk0LCAkcHJvcGVydHk1LCAkcHJvcGVydHk2LCAkcHJvcGVydHk3LCAkcHJvcGVydHk4LCAkcHJvcGVydHk5KTsgfVxuXG5AZnVuY3Rpb24gLXdlYmtpdCgkcHJvcGVydHkxLCAkcHJvcGVydHkyOiBudWxsLCAkcHJvcGVydHkzOiBudWxsLCAkcHJvcGVydHk0OiBudWxsLCAkcHJvcGVydHk1OiBudWxsLCAkcHJvcGVydHk2OiBudWxsLCAkcHJvcGVydHk3OiBudWxsLCAkcHJvcGVydHk4OiBudWxsLCAkcHJvcGVydHk5OiBudWxsKSB7XG4gIEByZXR1cm4gcHJlZml4KFwiLXdlYmtpdFwiLCAkcHJvcGVydHkxLCAkcHJvcGVydHkyLCAkcHJvcGVydHkzLCAkcHJvcGVydHk0LCAkcHJvcGVydHk1LCAkcHJvcGVydHk2LCAkcHJvcGVydHk3LCAkcHJvcGVydHk4LCAkcHJvcGVydHk5KTsgfVxuXG5AZnVuY3Rpb24gLW1veigkcHJvcGVydHkxLCAkcHJvcGVydHkyOiBudWxsLCAkcHJvcGVydHkzOiBudWxsLCAkcHJvcGVydHk0OiBudWxsLCAkcHJvcGVydHk1OiBudWxsLCAkcHJvcGVydHk2OiBudWxsLCAkcHJvcGVydHk3OiBudWxsLCAkcHJvcGVydHk4OiBudWxsLCAkcHJvcGVydHk5OiBudWxsKSB7XG4gIEByZXR1cm4gcHJlZml4KFwiLW1velwiLCAkcHJvcGVydHkxLCAkcHJvcGVydHkyLCAkcHJvcGVydHkzLCAkcHJvcGVydHk0LCAkcHJvcGVydHk1LCAkcHJvcGVydHk2LCAkcHJvcGVydHk3LCAkcHJvcGVydHk4LCAkcHJvcGVydHk5KTsgfVxuXG5AZnVuY3Rpb24gLW8oJHByb3BlcnR5MSwgJHByb3BlcnR5MjogbnVsbCwgJHByb3BlcnR5MzogbnVsbCwgJHByb3BlcnR5NDogbnVsbCwgJHByb3BlcnR5NTogbnVsbCwgJHByb3BlcnR5NjogbnVsbCwgJHByb3BlcnR5NzogbnVsbCwgJHByb3BlcnR5ODogbnVsbCwgJHByb3BlcnR5OTogbnVsbCkge1xuICBAcmV0dXJuIHByZWZpeChcIi1vXCIsICRwcm9wZXJ0eTEsICRwcm9wZXJ0eTIsICRwcm9wZXJ0eTMsICRwcm9wZXJ0eTQsICRwcm9wZXJ0eTUsICRwcm9wZXJ0eTYsICRwcm9wZXJ0eTcsICRwcm9wZXJ0eTgsICRwcm9wZXJ0eTkpOyB9XG5cbkBmdW5jdGlvbiAtcGllKCRwcm9wZXJ0eTEsICRwcm9wZXJ0eTI6IG51bGwsICRwcm9wZXJ0eTM6IG51bGwsICRwcm9wZXJ0eTQ6IG51bGwsICRwcm9wZXJ0eTU6IG51bGwsICRwcm9wZXJ0eTY6IG51bGwsICRwcm9wZXJ0eTc6IG51bGwsICRwcm9wZXJ0eTg6IG51bGwsICRwcm9wZXJ0eTk6IG51bGwpIHtcbiAgQHJldHVybiBwcmVmaXgoXCItcGllXCIsICRwcm9wZXJ0eTEsICRwcm9wZXJ0eTIsICRwcm9wZXJ0eTMsICRwcm9wZXJ0eTQsICRwcm9wZXJ0eTUsICRwcm9wZXJ0eTYsICRwcm9wZXJ0eTcsICRwcm9wZXJ0eTgsICRwcm9wZXJ0eTkpOyB9XG4iLCIvL1xuLy8gQSBwYXJ0aWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBSdWJ5IGdyYWRpZW50IHN1cHBvcnQgZnVuY3Rpb25zIGZyb20gQ29tcGFzczpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9Db21wYXNzL2NvbXBhc3MvYmxvYi92MC4xMi4yL2xpYi9jb21wYXNzL3Nhc3NfZXh0ZW5zaW9ucy9mdW5jdGlvbnMvZ3JhZGllbnRfc3VwcG9ydC5yYlxuLy9cblxuQGZ1bmN0aW9uIGNvbG9yLXN0b3BzKCRpdGVtMSwgJGl0ZW0yOiBudWxsLCAkaXRlbTM6IG51bGwsICRpdGVtNDogbnVsbCwgJGl0ZW01OiBudWxsLCAkaXRlbTY6IG51bGwsICRpdGVtNzogbnVsbCwgJGl0ZW04OiBudWxsLCAkaXRlbTk6IG51bGwpIHtcbiAgJGl0ZW1zOiAkaXRlbTIsICRpdGVtMywgJGl0ZW00LCAkaXRlbTUsICRpdGVtNiwgJGl0ZW03LCAkaXRlbTgsICRpdGVtOTtcbiAgJGZ1bGw6ICRpdGVtMTtcbiAgQGVhY2ggJGl0ZW0gaW4gJGl0ZW1zIHtcbiAgICBAaWYgJGl0ZW0gIT0gbnVsbCB7XG4gICAgICAkZnVsbDogJGZ1bGwsICRpdGVtOyB9IH1cbiAgQHJldHVybiAkZnVsbDsgfVxuIiwiLy9cbi8vIEEgcGFydGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgUnVieSBjb25zdGFudHMgZnVuY3Rpb25zIGZyb20gQ29tcGFzczpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9Db21wYXNzL2NvbXBhc3MvYmxvYi9zdGFibGUvbGliL2NvbXBhc3Mvc2Fzc19leHRlbnNpb25zL2Z1bmN0aW9ucy9jb25zdGFudHMucmJcbi8vXG5cbkBmdW5jdGlvbiBvcHBvc2l0ZS1wb3NpdGlvbigkZnJvbSkge1xuICBAaWYgJGZyb20gPT0gdG9wIHtcbiAgICBAcmV0dXJuIGJvdHRvbTsgfVxuICBAZWxzZSBpZiAkZnJvbSA9PSBib3R0b20ge1xuICAgIEByZXR1cm4gdG9wOyB9XG4gIEBlbHNlIGlmICRmcm9tID09IGxlZnQge1xuICAgIEByZXR1cm4gcmlnaHQ7IH1cbiAgQGVsc2UgaWYgJGZyb20gPT0gcmlnaHQge1xuICAgIEByZXR1cm4gbGVmdDsgfVxuICBAZWxzZSBpZiAkZnJvbSA9PSBjZW50ZXIge1xuICAgIEByZXR1cm4gY2VudGVyOyB9IH1cbiIsIi8vXG4vLyBBIHBhcnRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIFJ1YnkgZGlzcGxheSBmdW5jdGlvbnMgZnJvbSBDb21wYXNzOlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL0NvbXBhc3MvY29tcGFzcy9ibG9iL3N0YWJsZS9jb3JlL2xpYi9jb21wYXNzL2NvcmUvc2Fzc19leHRlbnNpb25zL2Z1bmN0aW9ucy9kaXNwbGF5LnJiXG4vL1xuXG5AZnVuY3Rpb24gZWxlbWVudHMtb2YtdHlwZSgkdHlwZSkge1xuICBAaWYgJHR5cGUgPT0gYmxvY2sge1xuICAgIEByZXR1cm4gYWRkcmVzcywgYXJ0aWNsZSwgYXNpZGUsIGJsb2NrcXVvdGUsIGNlbnRlciwgZGlyLCBkaXYsIGRkLCBkZXRhaWxzLCBkbCwgZHQsIGZpZWxkc2V0LCBmaWdjYXB0aW9uLCBmaWd1cmUsIGZvcm0sIGZvb3RlciwgZnJhbWVzZXQsIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIGhyLCBoZWFkZXIsIGhncm91cCwgaXNpbmRleCwgbWFpbiwgbWVudSwgbmF2LCBub2ZyYW1lcywgbm9zY3JpcHQsIG9sLCBwLCBwcmUsIHNlY3Rpb24sIHN1bW1hcnksIHVsOyB9XG4gIEBlbHNlIGlmICR0eXBlID09IGlubGluZSB7XG4gICAgQHJldHVybiBhLCBhYmJyLCBhY3JvbnltLCBhdWRpbywgYiwgYmFzZWZvbnQsIGJkbywgYmlnLCBiciwgY2FudmFzLCBjaXRlLCBjb2RlLCBjb21tYW5kLCBkYXRhbGlzdCwgZGZuLCBlbSwgZW1iZWQsIGZvbnQsIGksIGltZywgaW5wdXQsIGtleWdlbiwga2JkLCBsYWJlbCwgbWFyaywgbWV0ZXIsIG91dHB1dCwgcHJvZ3Jlc3MsIHEsIHJwLCBydCwgcnVieSwgcywgc2FtcCwgc2VsZWN0LCBzbWFsbCwgc3Bhbiwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0ZXh0YXJlYSwgdGltZSwgdHQsIHUsIHZhciwgdmlkZW8sIHdicjsgfVxuICBAZWxzZSBpZiAkdHlwZSA9PSBpbmxpbmUtYmxvY2sge1xuICAgIEByZXR1cm4gaW1nOyB9XG4gIEBlbHNlIGlmICR0eXBlID09IHRhYmxlIHtcbiAgICBAcmV0dXJuIHRhYmxlOyB9XG4gIEBlbHNlIGlmICR0eXBlID09IGxpc3QtaXRlbSB7XG4gICAgQHJldHVybiBsaTsgfVxuICBAZWxzZSBpZiAkdHlwZSA9PSB0YWJsZS1yb3ctZ3JvdXAge1xuICAgIEByZXR1cm4gdGJvZHk7IH1cbiAgQGVsc2UgaWYgJHR5cGUgPT0gdGFibGUtaGVhZGVyLWdyb3VwIHtcbiAgICBAcmV0dXJuIHRoZWFkOyB9XG4gIEBlbHNlIGlmICR0eXBlID09IHRhYmxlLWZvb3Rlci1ncm91cCB7XG4gICAgQHJldHVybiB0Zm9vdDsgfVxuICBAZWxzZSBpZiAkdHlwZSA9PSB0YWJsZS1yb3cge1xuICAgIEByZXR1cm4gdHI7IH1cbiAgQGVsc2UgaWYgJHR5cGUgPT0gdGFibGUtY2VsbCB7XG4gICAgQHJldHVybiB0aCwgdGQ7IH1cbiAgQGVsc2UgaWYgJHR5cGUgPT0gaHRtbDUtYmxvY2sge1xuICAgIEByZXR1cm4gYXJ0aWNsZSwgYXNpZGUsIGRldGFpbHMsIGZpZ2NhcHRpb24sIGZpZ3VyZSwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCwgbWFpbiwgbWVudSwgbmF2LCBzZWN0aW9uLCBzdW1tYXJ5OyB9XG4gIEBlbHNlIGlmICR0eXBlID09IGh0bWw1LWlubGluZSB7XG4gICAgQHJldHVybiBhdWRpbywgY2FudmFzLCBjb21tYW5kLCBkYXRhbGlzdCwgZW1iZWQsIGtleWdlbiwgbWFyaywgbWV0ZXIsIG91dHB1dCwgcHJvZ3Jlc3MsIHJwLCBydCwgcnVieSwgdGltZSwgdmlkZW8sIHdicjsgfVxuICBAZWxzZSBpZiAkdHlwZSA9PSBodG1sNSB7XG4gICAgQHJldHVybiBhcnRpY2xlLCBhc2lkZSwgYXVkaW8sIGNhbnZhcywgY29tbWFuZCwgZGF0YWxpc3QsIGRldGFpbHMsIGVtYmVkLCBmaWdjYXB0aW9uLCBmaWd1cmUsIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIGtleWdlbiwgbWFpbiwgbWFyaywgbWVudSwgbWV0ZXIsIG5hdiwgb3V0cHV0LCBwcm9ncmVzcywgcnAsIHJ0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LCB0aW1lLCB2aWRlbywgd2JyOyB9XG4gIEBlbHNlIGlmICR0eXBlID09IHRleHQtaW5wdXQge1xuICAgIEByZXR1cm4gaW5wdXQsIHRleHRhcmVhOyB9IH1cbiIsIi8vXG4vLyBBIHBhcnRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIFJ1YnkgY29sb3JzIGZ1bmN0aW9ucyBmcm9tIENvbXBhc3M6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vQ29tcGFzcy9jb21wYXNzL2Jsb2Ivc3RhYmxlL2NvcmUvbGliL2NvbXBhc3MvY29yZS9zYXNzX2V4dGVuc2lvbnMvZnVuY3Rpb25zL2NvbG9ycy5yYlxuLy9cblxuLy8gYSBnZW5lcmljaXplZCB2ZXJzaW9uIG9mIGxpZ2h0ZW4vZGFya2VuIHNvIHRoYXQgbmVnYXRpdmUgdmFsdWVzIGNhbiBiZSB1c2VkLlxuQGZ1bmN0aW9uIGFkanVzdC1saWdodG5lc3MoJGNvbG9yLCAkYW1vdW50KSB7XG4gIEByZXR1cm4gYWRqdXN0LWNvbG9yKCRjb2xvciwgJGxpZ2h0bmVzczogJGFtb3VudCk7IH1cblxuLy8gU2NhbGVzIGEgY29sb3IncyBsaWdodG5lc3MgYnkgc29tZSBwZXJjZW50YWdlLlxuLy8gSWYgdGhlIGFtb3VudCBpcyBuZWdhdGl2ZSwgdGhlIGNvbG9yIGlzIHNjYWxlZCBkYXJrZXIsIGlmIHBvc2l0aXZlLCBpdCBpcyBzY2FsZWQgbGlnaHRlci5cbi8vIFRoaXMgd2lsbCBuZXZlciByZXR1cm4gYSBwdXJlIGxpZ2h0IG9yIGRhcmsgY29sb3IgdW5sZXNzIHRoZSBhbW91bnQgaXMgMTAwJS5cbkBmdW5jdGlvbiBzY2FsZS1saWdodG5lc3MoJGNvbG9yLCAkYW1vdW50KSB7XG4gIEByZXR1cm4gc2NhbGUtY29sb3IoJGNvbG9yLCAkbGlnaHRuZXNzOiAkYW1vdW50KTsgfVxuXG4vLyBhIGdlbmVyaWNpemVkIHZlcnNpb24gb2Ygc2F0dXJhdGUvZGVzYXR1cmF0ZSBzbyB0aGF0IG5lZ2F0aXZlIHZhbHVlcyBjYW4gYmUgdXNlZC5cbkBmdW5jdGlvbiBhZGp1c3Qtc2F0dXJhdGlvbigkY29sb3IsICRhbW91bnQpIHtcbiAgQHJldHVybiBhZGp1c3QtY29sb3IoJGNvbG9yLCAkc2F0dXJhdGlvbjogJGFtb3VudCk7IH1cblxuLy8gU2NhbGVzIGEgY29sb3IncyBzYXR1cmF0aW9uIGJ5IHNvbWUgcGVyY2VudGFnZS5cbi8vIElmIHRoZSBhbW91bnQgaXMgbmVnYXRpdmUsIHRoZSBjb2xvciBpcyBkZXNhdHVyYXRlZCwgaWYgcG9zaXRpdmUsIGl0IGlzIHNhdHVyYXRlZC5cbi8vIFRoaXMgd2lsbCBuZXZlciByZXR1cm4gYSBwdXJlIHNhdHVyYXRlZCBvciBkZXNhdHVyYXRlZCBjb2xvciB1bmxlc3MgdGhlIGFtb3VudCBpcyAxMDAlLlxuQGZ1bmN0aW9uIHNjYWxlLXNhdHVyYXRpb24oJGNvbG9yLCAkYW1vdW50KSB7XG4gIEByZXR1cm4gc2NhbGUtY29sb3IoJGNvbG9yLCAkc2F0dXJhdGlvbjogJGFtb3VudCk7IH1cblxuQGZ1bmN0aW9uIHNoYWRlKCRjb2xvciwgJHBlcmNlbnRhZ2UpIHtcbiAgQHJldHVybiBtaXgoIzAwMDAwMCwgJGNvbG9yLCAkcGVyY2VudGFnZSk7IH1cblxuQGZ1bmN0aW9uIHRpbnQoJGNvbG9yLCAkcGVyY2VudGFnZSkge1xuICBAcmV0dXJuIG1peCgjZmZmZmZmLCAkY29sb3IsICRwZXJjZW50YWdlKTsgfVxuIiwiQGltcG9ydCBcInV0aWxpdGllcy9jb2xvclwiO1xuQGltcG9ydCBcInV0aWxpdGllcy9nZW5lcmFsXCI7XG5AaW1wb3J0IFwidXRpbGl0aWVzL3Nwcml0ZXNcIjtcbkBpbXBvcnQgXCJ1dGlsaXRpZXMvdGFibGVzXCI7XG5cbi8vIGRlcHJlY2F0ZWRcbkBpbXBvcnQgXCJ0eXBvZ3JhcGh5L2xpbmtzXCI7XG5AaW1wb3J0IFwidHlwb2dyYXBoeS9saXN0c1wiO1xuQGltcG9ydCBcInR5cG9ncmFwaHkvdGV4dFwiO1xuIiwiQGltcG9ydCBcImNvbG9yL2NvbnRyYXN0XCI7XG4iLCIkY29udHJhc3RlZC1kYXJrLWRlZmF1bHQ6ICMwMDAgIWRlZmF1bHQ7XG4kY29udHJhc3RlZC1saWdodC1kZWZhdWx0OiAjZmZmICFkZWZhdWx0O1xuJGNvbnRyYXN0ZWQtbGlnaHRuZXNzLXRocmVzaG9sZDogMzAlICFkZWZhdWx0O1xuXG4vLyBSZXR1cm5zIHRoZSBgJGxpZ2h0YCBjb2xvciB3aGVuIHRoZSBgJGNvbG9yYCBpcyBkYXJrXG4vLyBhbmQgdGhlIGAkZGFya2AgY29sb3Igd2hlbiB0aGUgYCRjb2xvcmAgaXMgbGlnaHQuXG4vLyBUaGUgYCR0aHJlc2hvbGRgIGlzIGEgcGVyY2VudCBiZXR3ZWVuIGAwJWAgYW5kIGAxMDAlYCBhbmQgaXQgZGV0ZXJtaW5lc1xuLy8gd2hlbiB0aGUgbGlnaHRuZXNzIG9mIGAkY29sb3JgIGNoYW5nZXMgZnJvbSBcImRhcmtcIiB0byBcImxpZ2h0XCIuXG5AZnVuY3Rpb24gY29udHJhc3QtY29sb3IoJGNvbG9yLCAkZGFyazogJGNvbnRyYXN0ZWQtZGFyay1kZWZhdWx0LCAkbGlnaHQ6ICRjb250cmFzdGVkLWxpZ2h0LWRlZmF1bHQsICR0aHJlc2hvbGQ6ICRjb250cmFzdGVkLWxpZ2h0bmVzcy10aHJlc2hvbGQpIHtcbiAgQHJldHVybiBpZihsaWdodG5lc3MoJGNvbG9yKSA8ICR0aHJlc2hvbGQsICRsaWdodCwgJGRhcmspOyB9XG5cbi8vIFNldHMgdGhlIHNwZWNpZmllZCBiYWNrZ3JvdW5kIGNvbG9yIGFuZCBjYWxjdWxhdGVzIGEgZGFyayBvciBsaWdodCBjb250cmFzdGVkIHRleHQgY29sb3IuXG4vLyBUaGUgYXJndW1lbnRzIGFyZSBwYXNzZWQgdGhyb3VnaCB0byB0aGUgW2NvbnRyYXN0LWNvbG9yIGZ1bmN0aW9uXSgjZnVuY3Rpb24tY29udHJhc3QtY29sb3IpLlxuQG1peGluIGNvbnRyYXN0ZWQoJGJhY2tncm91bmQtY29sb3IsICRkYXJrOiAkY29udHJhc3RlZC1kYXJrLWRlZmF1bHQsICRsaWdodDogJGNvbnRyYXN0ZWQtbGlnaHQtZGVmYXVsdCwgJHRocmVzaG9sZDogJGNvbnRyYXN0ZWQtbGlnaHRuZXNzLXRocmVzaG9sZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgY29sb3I6IGNvbnRyYXN0LWNvbG9yKCRiYWNrZ3JvdW5kLWNvbG9yLCAkZGFyaywgJGxpZ2h0LCAkdGhyZXNob2xkKTsgfVxuIiwiQGltcG9ydCBcImdlbmVyYWwvcmVzZXRcIjtcbkBpbXBvcnQgXCJnZW5lcmFsL2NsZWFyZml4XCI7XG5AaW1wb3J0IFwiZ2VuZXJhbC9mbG9hdFwiO1xuQGltcG9ydCBcImdlbmVyYWwvdGFnLWNsb3VkXCI7XG5AaW1wb3J0IFwiZ2VuZXJhbC9oYWNrc1wiO1xuQGltcG9ydCBcImdlbmVyYWwvbWluXCI7XG4iLCIvLyBUaGlzIG1vZHVsZSBoYXMgbW92ZWQuXG5AaW1wb3J0IFwiLi4vLi4vcmVzZXQvdXRpbGl0aWVzXCI7XG4iLCIvLyBCYXNlZCBvbiBbRXJpYyBNZXllcidzIHJlc2V0IDIuMF0oaHR0cDovL21leWVyd2ViLmNvbS9lcmljL3Rvb2xzL2Nzcy9yZXNldC9pbmRleC5odG1sKVxuLy8gR2xvYmFsIHJlc2V0IHJ1bGVzLlxuLy8gRm9yIG1vcmUgc3BlY2lmaWMgcmVzZXRzLCB1c2UgdGhlIHJlc2V0IG1peGlucyBwcm92aWRlZCBiZWxvd1xuQG1peGluIGdsb2JhbC1yZXNldCB7XG4gIGh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSxcbiAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLFxuICBhLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsXG4gIGRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCxcbiAgc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhcixcbiAgYiwgdSwgaSwgY2VudGVyLFxuICBkbCwgZHQsIGRkLCBvbCwgdWwsIGxpLFxuICBmaWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCxcbiAgdGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsXG4gIGFydGljbGUsIGFzaWRlLCBjYW52YXMsIGRldGFpbHMsIGVtYmVkLFxuICBmaWd1cmUsIGZpZ2NhcHRpb24sIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsXG4gIG1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LFxuICB0aW1lLCBtYXJrLCBhdWRpbywgdmlkZW8ge1xuICAgIEBpbmNsdWRlIHJlc2V0LWJveC1tb2RlbDtcbiAgICBAaW5jbHVkZSByZXNldC1mb250OyB9XG4gIC8vIFVubGlrZSBFcmljJ3Mgb3JpZ2luYWwgcmVzZXQsIHdlIHJlc2V0IHRoZSBodG1sIGVsZW1lbnQgdG8gYmUgY29tcGF0aWJsZVxuICAvLyB3aXRoIHRoZSB2ZXJ0aWNhbCByaHl0aG0gbWl4aW5zLlxuICBodG1sIHtcbiAgICBAaW5jbHVkZSByZXNldC1ib2R5OyB9XG4gIG9sLCB1bCB7XG4gICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZTsgfVxuICB0YWJsZSB7XG4gICAgQGluY2x1ZGUgcmVzZXQtdGFibGU7IH1cbiAgY2FwdGlvbiwgdGgsIHRkIHtcbiAgICBAaW5jbHVkZSByZXNldC10YWJsZS1jZWxsOyB9XG4gIHEsIGJsb2NrcXVvdGUge1xuICAgIEBpbmNsdWRlIHJlc2V0LXF1b3RhdGlvbjsgfVxuICBhIGltZyB7XG4gICAgQGluY2x1ZGUgcmVzZXQtaW1hZ2UtYW5jaG9yLWJvcmRlcjsgfVxuICBAaW5jbHVkZSByZXNldC1odG1sNTsgfVxuXG4vLyBSZXNldCBhbGwgZWxlbWVudHMgd2l0aGluIHNvbWUgc2VsZWN0b3Igc2NvcGUuIFRvIHJlc2V0IHRoZSBzZWxlY3RvciBpdHNlbGYsXG4vLyBtaXhpbiB0aGUgYXBwcm9wcmlhdGUgcmVzZXQgbWl4aW4gZm9yIHRoYXQgZWxlbWVudCB0eXBlIGFzIHdlbGwuIFRoaXMgY291bGQgYmVcbi8vIHVzZWZ1bCBpZiB5b3Ugd2FudCB0byBzdHlsZSBhIHBhcnQgb2YgeW91ciBwYWdlIGluIGEgZHJhbWF0aWNhbGx5IGRpZmZlcmVudCB3YXkuXG5AbWl4aW4gbmVzdGVkLXJlc2V0IHtcbiAgZGl2LCBzcGFuLCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLFxuICBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsXG4gIGEsIGFiYnIsIGFjcm9ueW0sIGFkZHJlc3MsIGJpZywgY2l0ZSwgY29kZSxcbiAgZGVsLCBkZm4sIGVtLCBpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLFxuICBzbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLFxuICBiLCB1LCBpLCBjZW50ZXIsXG4gIGRsLCBkdCwgZGQsIG9sLCB1bCwgbGksXG4gIGZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLFxuICB0YWJsZSwgY2FwdGlvbiwgdGJvZHksIHRmb290LCB0aGVhZCwgdHIsIHRoLCB0ZCxcbiAgYXJ0aWNsZSwgYXNpZGUsIGNhbnZhcywgZGV0YWlscywgZW1iZWQsXG4gIGZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCxcbiAgbWVudSwgbmF2LCBvdXRwdXQsIHJ1YnksIHNlY3Rpb24sIHN1bW1hcnksXG4gIHRpbWUsIG1hcmssIGF1ZGlvLCB2aWRlbyB7XG4gICAgQGluY2x1ZGUgcmVzZXQtYm94LW1vZGVsO1xuICAgIEBpbmNsdWRlIHJlc2V0LWZvbnQ7IH1cbiAgdGFibGUge1xuICAgIEBpbmNsdWRlIHJlc2V0LXRhYmxlOyB9XG4gIGNhcHRpb24sIHRoLCB0ZCB7XG4gICAgQGluY2x1ZGUgcmVzZXQtdGFibGUtY2VsbDsgfVxuICBxLCBibG9ja3F1b3RlIHtcbiAgICBAaW5jbHVkZSByZXNldC1xdW90YXRpb247IH1cbiAgYSBpbWcge1xuICAgIEBpbmNsdWRlIHJlc2V0LWltYWdlLWFuY2hvci1ib3JkZXI7IH0gfVxuXG4vLyBSZXNldCB0aGUgYm94IG1vZGVsIG1lYXN1cmVtZW50cy5cbkBtaXhpbiByZXNldC1ib3gtbW9kZWwge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDsgfVxuXG4vLyBSZXNldCB0aGUgZm9udCBhbmQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIHJlc2V0LWZvbnQge1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG4vLyBSZXNldHMgdGhlIG91dGxpbmUgd2hlbiBmb2N1cy5cbi8vIEZvciBhY2Nlc3NpYmlsaXR5IHlvdSBuZWVkIHRvIGFwcGx5IHNvbWUgc3R5bGluZyBpbiBpdHMgcGxhY2UuXG5AbWl4aW4gcmVzZXQtZm9jdXMge1xuICBvdXRsaW5lOiAwOyB9XG5cbi8vIFJlc2V0IGEgYm9keSBlbGVtZW50LlxuQG1peGluIHJlc2V0LWJvZHkge1xuICBsaW5lLWhlaWdodDogMTsgfVxuXG4vLyBSZXNldCB0aGUgbGlzdCBzdHlsZSBvZiBhbiBlbGVtZW50LlxuQG1peGluIHJlc2V0LWxpc3Qtc3R5bGUge1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG5cbi8vIFJlc2V0IGEgdGFibGVcbkBtaXhpbiByZXNldC10YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwOyB9XG5cbi8vIFJlc2V0IGEgdGFibGUgY2VsbCAoYHRoYCwgYHRkYClcbkBtaXhpbiByZXNldC10YWJsZS1jZWxsIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG4vLyBSZXNldCBhIHF1b3RhdGlvbiAoYHFgLCBgYmxvY2txdW90ZWApXG5AbWl4aW4gcmVzZXQtcXVvdGF0aW9uIHtcbiAgcXVvdGVzOiBub25lO1xuICAmOmJlZm9yZSwgJjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBjb250ZW50OiBub25lOyB9IH1cblxuLy8gUmVzZXRzIHRoZSBib3JkZXIuXG5AbWl4aW4gcmVzZXQtaW1hZ2UtYW5jaG9yLWJvcmRlciB7XG4gIGJvcmRlcjogbm9uZTsgfVxuXG4vLyBVbnJlY29nbml6ZWQgZWxlbWVudHMgYXJlIGRpc3BsYXllZCBpbmxpbmUuXG4vLyBUaGlzIHJlc2V0IHByb3ZpZGVzIGEgYmFzaWMgcmVzZXQgZm9yIGJsb2NrIGh0bWw1IGVsZW1lbnRzXG4vLyBzbyB0aGV5IGFyZSByZW5kZXJlZCBjb3JyZWN0bHkgaW4gYnJvd3NlcnMgdGhhdCBkb24ndCByZWNvZ25pemUgdGhlbVxuLy8gYW5kIHJlc2V0IGluIGJyb3dzZXJzIHRoYXQgaGF2ZSBkZWZhdWx0IHN0eWxlcyBmb3IgdGhlbS5cbkBtaXhpbiByZXNldC1odG1sNSB7XG4gICN7ZWxlbWVudHMtb2YtdHlwZShodG1sNS1ibG9jayl9IHtcbiAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbi8vIFJlc2V0cyB0aGUgZGlzcGxheSBvZiBpbmxpbmUgYW5kIGJsb2NrIGVsZW1lbnRzIHRvIHRoZWlyIGRlZmF1bHQgZGlzcGxheVxuLy8gYWNjb3JkaW5nIHRvIHRoZWlyIHRhZyB0eXBlLiBFbGVtZW50cyB0aGF0IGhhdmUgYSBkZWZhdWx0IGRpc3BsYXkgdGhhdCB2YXJpZXMgYWNyb3NzXG4vLyB2ZXJzaW9ucyBvZiBodG1sIG9yIGJyb3dzZXIgYXJlIG5vdCBoYW5kbGVkIGhlcmUsIGJ1dCB0aGlzIGNvdmVycyB0aGUgOTAlIHVzZSBjYXNlLlxuLy8gVXNhZ2UgRXhhbXBsZTpcbi8vXG4vLyAgICAgLy8gVHVybiBvZmYgdGhlIGRpc3BsYXkgZm9yIGJvdGggb2YgdGhlc2UgY2xhc3Nlc1xuLy8gICAgIC51bnJlZ2lzdGVyZWQtb25seSwgLnJlZ2lzdGVyZWQtb25seVxuLy8gICAgICAgZGlzcGxheTogbm9uZVxuLy8gICAgIC8vIE5vdyB0dXJuIG9ubHkgb25lIG9mIHRoZW0gYmFjayBvbiBkZXBlbmRpbmcgb24gc29tZSBvdGhlciBjb250ZXh0LlxuLy8gICAgIGJvZHkucmVnaXN0ZXJlZFxuLy8gICAgICAgK3Jlc2V0LWRpc3BsYXkoXCIucmVnaXN0ZXJlZC1vbmx5XCIpXG4vLyAgICAgYm9keS51bnJlZ2lzdGVyZWRcbi8vICAgICAgICtyZXNldC1kaXNwbGF5KFwiLnVucmVnaXN0ZXJlZC1vbmx5XCIpXG5AbWl4aW4gcmVzZXQtZGlzcGxheSgkc2VsZWN0b3I6IFwiXCIsICRpbXBvcnRhbnQ6IGZhbHNlKSB7XG4gICN7YXBwZW5kLXNlbGVjdG9yKGVsZW1lbnRzLW9mLXR5cGUoXCJpbmxpbmVcIiksICRzZWxlY3Rvcil9IHtcbiAgICBAaWYgJGltcG9ydGFudCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsgfVxuICAgIEBlbHNlIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZTsgfSB9XG4gICN7YXBwZW5kLXNlbGVjdG9yKGVsZW1lbnRzLW9mLXR5cGUoXCJibG9ja1wiKSwgJHNlbGVjdG9yKX0ge1xuICAgIEBpZiAkaW1wb3J0YW50IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgICBAZWxzZSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfSB9IH1cbiIsIi8vIEBkb2Mgb2ZmXG4vLyBFeHRlbmRzIHRoZSBib3R0b20gb2YgdGhlIGVsZW1lbnQgdG8gZW5jbG9zZSBhbnkgZmxvYXRzIGl0IGNvbnRhaW5zLlxuLy8gQGRvYyBvblxuXG5AaW1wb3J0IFwiaGFja3NcIjtcblxuLy8gVGhpcyBiYXNpYyBtZXRob2QgaXMgcHJlZmVycmVkIGZvciB0aGUgdXN1YWwgY2FzZSwgd2hlbiBwb3NpdGlvbmVkXG4vLyBjb250ZW50IHdpbGwgbm90IHNob3cgb3V0c2lkZSB0aGUgYm91bmRzIG9mIHRoZSBjb250YWluZXIuXG4vL1xuLy8gUmVjb21tZW5kYXRpb25zIGluY2x1ZGUgdXNpbmcgdGhpcyBpbiBjb25qdW5jdGlvbiB3aXRoIGEgd2lkdGguXG4vLyBDcmVkaXQ6IFtxdWlya3Ntb2RlLm9yZ10oaHR0cDovL3d3dy5xdWlya3Ntb2RlLm9yZy9ibG9nL2FyY2hpdmVzLzIwMDUvMDMvY2xlYXJpbmdfZmxvYXRzLmh0bWwpXG5AbWl4aW4gY2xlYXJmaXgge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBAaW5jbHVkZSBoYXMtbGF5b3V0OyB9XG5cbi8vIFRoaXMgb2xkZXIgbWV0aG9kIGZyb20gUG9zaXRpb24gSXMgRXZlcnl0aGluZyBjYWxsZWRcbi8vIFtFYXN5IENsZWFyaW5nXShodHRwOi8vd3d3LnBvc2l0aW9uaXNldmVyeXRoaW5nLm5ldC9lYXN5Y2xlYXJpbmcuaHRtbClcbi8vIGhhcyB0aGUgYWR2YW50YWdlIG9mIGFsbG93aW5nIHBvc2l0aW9uZWQgZWxlbWVudHMgdG8gaGFuZ1xuLy8gb3V0c2lkZSB0aGUgYm91bmRzIG9mIHRoZSBjb250YWluZXIgYXQgdGhlIGV4cGVuc2Ugb2YgbW9yZSB0cmlja3kgQ1NTLlxuQG1peGluIGxlZ2FjeS1waWUtY2xlYXJmaXgge1xuICAmOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlxcMDAyMFwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMDtcbiAgICBjbGVhcjogYm90aDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICBAaW5jbHVkZSBoYXMtbGF5b3V0OyB9XG5cbi8vIFRoaXMgaXMgYW4gdXBkYXRlZCB2ZXJzaW9uIG9mIHRoZSBQSUUgY2xlYXJmaXggbWV0aG9kIHRoYXQgcmVkdWNlcyB0aGUgYW1vdW50IG9mIENTUyBvdXRwdXQuXG4vLyBJZiB5b3UgbmVlZCB0byBzdXBwb3J0IEZpcmVmb3ggYmVmb3JlIDMuNSB5b3UgbmVlZCB0byB1c2UgYGxlZ2FjeS1waWUtY2xlYXJmaXhgIGluc3RlYWQuXG4vL1xuLy8gQWRhcHRlZCBmcm9tOiBbQSBuZXcgbWljcm8gY2xlYXJmaXggaGFja10oaHR0cDovL25pY29sYXNnYWxsYWdoZXIuY29tL21pY3JvLWNsZWFyZml4LWhhY2svKVxuQG1peGluIHBpZS1jbGVhcmZpeCB7XG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgQGluY2x1ZGUgaGFzLWxheW91dDsgfVxuIiwiQGltcG9ydCBcIi4uLy4uL3N1cHBvcnRcIjtcblxuLy8gVGhlIGB6b29tYCBhcHByb2FjaCBnZW5lcmF0ZXMgbGVzcyBDU1MgYnV0IGRvZXMgbm90IHZhbGlkYXRlLlxuLy8gU2V0IHRoaXMgdG8gYGJsb2NrYCB0byB1c2UgdGhlIGRpc3BsYXktcHJvcGVydHkgdG8gaGFjayB0aGVcbi8vIGVsZW1lbnQgdG8gZ2FpbiBsYXlvdXQuXG4kZGVmYXVsdC1oYXMtbGF5b3V0LWFwcHJvYWNoOiB6b29tICFkZWZhdWx0O1xuXG4vLyBUaGlzIG1peGluIGNhdXNlcyBhbiBlbGVtZW50IG1hdGNoaW5nIHRoZSBzZWxlY3RvclxuLy8gdG8gZ2FpbiB0aGUgXCJoYXNMYXlvdXRcIiBwcm9wZXJ0eSBpbiBpbnRlcm5ldCBleHBsb3Jlci5cbi8vIE1vcmUgaW5mb3JtYXRpb24gb24gW2hhc0xheW91dF0oaHR0cDovL3JlZmVyZW5jZS5zaXRlcG9pbnQuY29tL2Nzcy9oYXNsYXlvdXQpLlxuQG1peGluIGhhcy1sYXlvdXQoJGFwcHJvYWNoOiAkZGVmYXVsdC1oYXMtbGF5b3V0LWFwcHJvYWNoKSB7XG4gIEBpZiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllIHtcbiAgICBAaWYgJGFwcHJvYWNoID09IHpvb20ge1xuICAgICAgQGluY2x1ZGUgaGFzLWxheW91dC16b29tOyB9XG4gICAgQGVsc2UgaWYgJGFwcHJvYWNoID09IGJsb2NrIHtcbiAgICAgIEBpbmNsdWRlIGhhcy1sYXlvdXQtYmxvY2s7IH1cbiAgICBAZWxzZSB7XG4gICAgICBAd2FybiBcIlVua25vd24gaGFzLWxheW91dCBhcHByb2FjaDogI3skYXBwcm9hY2h9XCI7XG4gICAgICBAaW5jbHVkZSBoYXMtbGF5b3V0LXpvb207IH0gfSB9XG5cbkBtaXhpbiBoYXMtbGF5b3V0LXpvb20ge1xuICBAaWYgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTYgb3IgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTcge1xuICAgICp6b29tOiAxOyB9IH1cblxuQG1peGluIGhhcy1sYXlvdXQtYmxvY2sge1xuICBAaWYgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZSB7XG4gICAgLy8gVGhpcyBtYWtlcyBpZTYgZ2V0IGxheW91dFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAvLyBhbmQgdGhpcyBwdXRzIGl0IGJhY2sgdG8gYmxvY2tcbiAgICAmIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH0gfVxuXG4vLyBBIGhhY2sgdG8gc3VwcGx5IElFNiAoYW5kIGJlbG93KSB3aXRoIGEgZGlmZmVyZW50IHByb3BlcnR5IHZhbHVlLlxuLy8gW1JlYWQgbW9yZV0oaHR0cDovL3d3dy5jc3Nwb3J0YWwuY29tL2Nzcy1oYWNrcy8jaW5fY3NzLWltcG9ydGFudCkuXG5AbWl4aW4gYmFuZy1oYWNrKCRwcm9wZXJ0eSwgJHZhbHVlLCAkaWU2LXZhbHVlKSB7XG4gIEBpZiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllNiB7XG4gICAgI3skcHJvcGVydHl9OiAjeyR2YWx1ZX0gIWltcG9ydGFudDtcbiAgICAjeyRwcm9wZXJ0eX06ICN7JGllNi12YWx1ZX07IH0gfVxuIiwiLy8gVXN1YWxseSBjb21wYXNzIGhhY2tzIGFwcGx5IHRvIGJvdGggaWU2ICYgNyAtLSBzZXQgdGhpcyB0byBmYWxzZSB0byBkaXNhYmxlIHN1cHBvcnQgZm9yIGJvdGguXG4kbGVnYWN5LXN1cHBvcnQtZm9yLWllOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBTZXR0aW5nIHRoaXMgdG8gZmFsc2Ugd2lsbCByZXN1bHQgaW4gc21hbGxlciBvdXRwdXQsIGJ1dCBubyBzdXBwb3J0IGZvciBpZTYgaGFja3NcbiRsZWdhY3ktc3VwcG9ydC1mb3ItaWU2OiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllICFkZWZhdWx0O1xuXG4vLyBTZXR0aW5nIHRoaXMgdG8gZmFsc2Ugd2lsbCByZXN1bHQgaW4gc21hbGxlciBvdXRwdXQsIGJ1dCBubyBzdXBwb3J0IGZvciBpZTcgaGFja3NcbiRsZWdhY3ktc3VwcG9ydC1mb3ItaWU3OiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllICFkZWZhdWx0O1xuXG4vLyBTZXR0aW5nIHRoaXMgdG8gZmFsc2Ugd2lsbCByZXN1bHQgaW4gc21hbGxlciBvdXRwdXQsIGJ1dCBubyBzdXBwb3J0IGZvciBsZWdhY3kgaWU4IGhhY2tzXG4kbGVnYWN5LXN1cHBvcnQtZm9yLWllODogJGxlZ2FjeS1zdXBwb3J0LWZvci1pZSAhZGVmYXVsdDtcblxuLy8gQHByaXZhdGVcbi8vIFRoZSB1c2VyIGNhbiBzaW1wbHkgc2V0ICRsZWdhY3ktc3VwcG9ydC1mb3ItaWUgYW5kIDYsIDcsIGFuZCA4IHdpbGwgYmUgc2V0IGFjY29yZGluZ2x5LFxuLy8gQnV0IGluIGNhc2UgdGhlIHVzZXIgc2V0IGVhY2ggb2YgdGhvc2UgZXhwbGljaXRseSwgd2UgbmVlZCB0byBzeW5jIHRoZSB2YWx1ZSBvZlxuLy8gdGhpcyBjb21iaW5lZCB2YXJpYWJsZS5cbiRsZWdhY3ktc3VwcG9ydC1mb3ItaWU6ICRsZWdhY3ktc3VwcG9ydC1mb3ItaWU2IG9yICRsZWdhY3ktc3VwcG9ydC1mb3ItaWU3IG9yICRsZWdhY3ktc3VwcG9ydC1mb3ItaWU4O1xuXG4vLyBXaGV0aGVyIHRvIG91dHB1dCBsZWdhY3kgc3VwcG9ydCBmb3IgbW96aWxsYS5cbi8vIFVzdWFsbHkgdGhpcyBtZWFucyBoYWNrcyB0byBzdXBwb3J0IEZpcmVmb3ggMy42IG9yIGVhcmxpZXIuXG4kbGVnYWN5LXN1cHBvcnQtZm9yLW1vemlsbGE6IHRydWU7XG5cbi8vIFN1cHBvcnQgZm9yIG1vemlsbGEgaW4gZXhwZXJpbWVudGFsIGNzczMgcHJvcGVydGllcyAoLW1veikuXG4kZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGE6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIFN1cHBvcnQgZm9yIHdlYmtpdCBpbiBleHBlcmltZW50YWwgY3NzMyBwcm9wZXJ0aWVzICgtd2Via2l0KS5cbiRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0OiB0cnVlICFkZWZhdWx0O1xuXG4vLyBTdXBwb3J0IGZvciB3ZWJraXQncyBvcmlnaW5hbCAobm9uLXN0YW5kYXJkKSBncmFkaWVudCBzeW50YXguXG4kc3VwcG9ydC1mb3Itb3JpZ2luYWwtd2Via2l0LWdyYWRpZW50czogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gU3VwcG9ydCBmb3Igb3BlcmEgaW4gZXhwZXJpbWVudGFsIGNzczMgcHJvcGVydGllcyAoLW8pLlxuJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gU3VwcG9ydCBmb3IgbWljcm9zb2Z0IGluIGV4cGVyaW1lbnRhbCBjc3MzIHByb3BlcnRpZXMgKC1tcykuXG4kZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1pY3Jvc29mdDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gU3VwcG9ydCBmb3Iga2h0bWwgaW4gZXhwZXJpbWVudGFsIGNzczMgcHJvcGVydGllcyAoLWtodG1sKS5cbiRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Ita2h0bWw6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBTdXBwb3J0IGZvciBzdmcgaW4gZXhwZXJpbWVudGFsIGNzczMgcHJvcGVydGllcy5cbi8vIFNldHRpbmcgdGhpcyB0byB0cnVlIG1pZ2h0IGFkZCBzaWduaWZpY2FudCBzaXplIHRvIHlvdXJcbi8vIGdlbmVyYXRlZCBzdHlsZXNoZWV0cy5cbiRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itc3ZnOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gU3VwcG9ydCBmb3IgQ1NTIFBJRSBpbiBleHBlcmltZW50YWwgY3NzMyBwcm9wZXJ0aWVzICgtcGllKS5cbiRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItcGllOiBmYWxzZSAhZGVmYXVsdDtcbiIsIi8vIEltcGxlbWVudGF0aW9uIG9mIGZsb2F0OmxlZnQgd2l0aCBmaXggZm9yIHRoZVxuLy8gW2RvdWJsZS1tYXJnaW4gYnVnIGluIElFNS82XShodHRwOi8vd3d3LnBvc2l0aW9uaXNldmVyeXRoaW5nLm5ldC9leHBsb3Jlci9kb3VibGVkLW1hcmdpbi5odG1sKVxuQG1peGluIGZsb2F0LWxlZnQge1xuICBAaW5jbHVkZSBmbG9hdChsZWZ0KTsgfVxuXG4vLyBJbXBsZW1lbnRhdGlvbiBvZiBmbG9hdDpyaWdodCB3aXRoIGZpeCBmb3IgdGhlXG4vLyBbZG91YmxlLW1hcmdpbiBidWcgaW4gSUU1LzZdKGh0dHA6Ly93d3cucG9zaXRpb25pc2V2ZXJ5dGhpbmcubmV0L2V4cGxvcmVyL2RvdWJsZWQtbWFyZ2luLmh0bWwpXG5AbWl4aW4gZmxvYXQtcmlnaHQge1xuICBAaW5jbHVkZSBmbG9hdChyaWdodCk7IH1cblxuLy8gRGlyZWN0aW9uIGluZGVwZW5kZW50IGZsb2F0IG1peGluIHRoYXQgZml4ZXMgdGhlXG4vLyBbZG91YmxlLW1hcmdpbiBidWcgaW4gSUU1LzZdKGh0dHA6Ly93d3cucG9zaXRpb25pc2V2ZXJ5dGhpbmcubmV0L2V4cGxvcmVyL2RvdWJsZWQtbWFyZ2luLmh0bWwpXG5AbWl4aW4gZmxvYXQoJHNpZGU6IGxlZnQpIHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBmbG9hdDogdW5xdW90ZSgkc2lkZSk7IH1cblxuLy8gUmVzZXRzIGZsb2F0ZWQgZWxlbWVudHMgYmFjayB0byB0aGVpciBkZWZhdWx0IG9mIGBmbG9hdDogbm9uZWAgYW5kIGRlZmF1bHRzXG4vLyB0byBgZGlzcGxheTogYmxvY2tgIHVubGVzcyB5b3UgcGFzcyBgaW5saW5lYCBhcyBhbiBhcmd1bWVudFxuLy9cbi8vIFVzYWdlIEV4YW1wbGU6XG4vL1xuLy8gICAgIGJvZHkuaG9tZXBhZ2Vcbi8vICAgICAgICNmb290ZXIgbGlcbi8vICAgICAgICAgK2Zsb2F0LWxlZnRcbi8vICAgICBib2R5LnNpZ251cFxuLy8gICAgICAgI2Zvb3RlciBsaVxuLy8gICAgICAgICArcmVzZXQtZmxvYXRcbkBtaXhpbiByZXNldC1mbG9hdCgkZGlzcGxheTogYmxvY2spIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6ICRkaXNwbGF5OyB9XG4iLCIvLyBFbWl0cyBzdHlsZXMgZm9yIGEgdGFnIGNsb3VkXG5AbWl4aW4gdGFnLWNsb3VkKCRiYXNlLXNpemU6IDFlbSkge1xuICBmb250LXNpemU6ICRiYXNlLXNpemU7XG4gIGxpbmUtaGVpZ2h0OiAxLjIgKiAkYmFzZS1zaXplO1xuICAueHhzLCAueHMsIC5zLCAubCwgLnhsLCAueHhsIHtcbiAgICBsaW5lLWhlaWdodDogMS4yICogJGJhc2Utc2l6ZTsgfVxuICAueHhzIHtcbiAgICBmb250LXNpemU6ICRiYXNlLXNpemUgLyAyOyB9XG4gIC54cyB7XG4gICAgZm9udC1zaXplOiAyICogJGJhc2Utc2l6ZSAvIDM7IH1cbiAgLnMge1xuICAgIGZvbnQtc2l6ZTogMyAqICRiYXNlLXNpemUgLyA0OyB9XG4gIC5sIHtcbiAgICBmb250LXNpemU6IDQgKiAkYmFzZS1zaXplIC8gMzsgfVxuICAueGwge1xuICAgIGZvbnQtc2l6ZTogMyAqICRiYXNlLXNpemUgLyAyOyB9XG4gIC54eGwge1xuICAgIGZvbnQtc2l6ZTogMiAqICRiYXNlLXNpemU7IH0gfVxuIiwiQGltcG9ydCBcImhhY2tzXCI7XG5cbi8vKipcbi8vIENyb3NzIGJyb3dzZXIgbWluLWhlaWdodCBtaXhpbi5cbkBtaXhpbiBtaW4taGVpZ2h0KCR2YWx1ZSkge1xuICBAaW5jbHVkZSBoYWNrZWQtbWluaW11bShoZWlnaHQsICR2YWx1ZSk7IH1cblxuLy8qKlxuLy8gQ3Jvc3MgYnJvd3NlciBtaW4td2lkdGggbWl4aW4uXG5AbWl4aW4gbWluLXdpZHRoKCR2YWx1ZSkge1xuICBAaW5jbHVkZSBoYWNrZWQtbWluaW11bSh3aWR0aCwgJHZhbHVlKTsgfVxuXG4vLyBAcHJpdmF0ZSBUaGlzIG1peGluIGlzIG5vdCBtZWFudCB0byBiZSB1c2VkIGRpcmVjdGx5LlxuQG1peGluIGhhY2tlZC1taW5pbXVtKCRwcm9wZXJ0eSwgJHZhbHVlKSB7XG4gIG1pbi0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgQGluY2x1ZGUgYmFuZy1oYWNrKCRwcm9wZXJ0eSwgYXV0bywgJHZhbHVlKTsgfVxuIiwiQGltcG9ydCBcInNwcml0ZXMvYmFzZVwiO1xuQGltcG9ydCBcInNwcml0ZXMvc3ByaXRlLWltZ1wiO1xuIiwiLy8gRGV0ZXJtaW5lcyB0aG9zZSBzdGF0ZXMgZm9yIHdoaWNoIHlvdSB3YW50IHRvIGVuYWJsZSBtYWdpYyBzcHJpdGUgc2VsZWN0b3JzXG4kc3ByaXRlLXNlbGVjdG9yczogaG92ZXIsIHRhcmdldCwgYWN0aXZlICFkZWZhdWx0O1xuXG4vLyBTZXQgdGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgYW4gZWxlbWVudCB0byB0aGUgb3JpZ2luYWxcbi8vIGRpbWVuc2lvbnMgb2YgYW4gaW1hZ2UgYmVmb3JlIGl0IHdhcyBpbmNsdWRlZCBpbiB0aGUgc3ByaXRlLlxuQG1peGluIHNwcml0ZS1kaW1lbnNpb25zKCRtYXAsICRzcHJpdGUpIHtcbiAgaGVpZ2h0OiBpbWFnZS1oZWlnaHQoc3ByaXRlLWZpbGUoJG1hcCwgJHNwcml0ZSkpO1xuICB3aWR0aDogaW1hZ2Utd2lkdGgoc3ByaXRlLWZpbGUoJG1hcCwgJHNwcml0ZSkpOyB9XG5cbi8vIFNldCB0aGUgYmFja2dyb3VuZCBwb3NpdGlvbiBvZiB0aGUgZ2l2ZW4gc3ByaXRlIGAkbWFwYCB0byBkaXNwbGF5IHRoZVxuLy8gc3ByaXRlIG9mIHRoZSBnaXZlbiBgJHNwcml0ZWAgbmFtZS4gWW91IGNhbiBtb3ZlIHRoZSBpbWFnZSByZWxhdGl2ZSB0byBpdHNcbi8vIG5hdHVyYWwgcG9zaXRpb24gYnkgcGFzc2luZyBgJG9mZnNldC14YCBhbmQgYCRvZmZzZXQteWAuXG5AbWl4aW4gc3ByaXRlLWJhY2tncm91bmQtcG9zaXRpb24oJG1hcCwgJHNwcml0ZSwgJG9mZnNldC14OiAwLCAkb2Zmc2V0LXk6IDApIHtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogc3ByaXRlLXBvc2l0aW9uKCRtYXAsICRzcHJpdGUsICRvZmZzZXQteCwgJG9mZnNldC15KTsgfVxuXG4vLyBEZXRlcm1pbmVzIGlmIHlvdSB3YW50IHRvIGluY2x1ZGUgbWFnaWMgc2VsZWN0b3JzIGluIHlvdXIgc3ByaXRlc1xuJGRpc2FibGUtbWFnaWMtc3ByaXRlLXNlbGVjdG9yczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIEluY2x1ZGUgdGhlIHBvc2l0aW9uIGFuZCAob3B0aW9uYWxseSkgZGltZW5zaW9ucyBvZiB0aGlzIGAkc3ByaXRlYFxuLy8gaW4gdGhlIGdpdmVuIHNwcml0ZSBgJG1hcGAuIFRoZSBzcHJpdGUgdXJsIHNob3VsZCBjb21lIGZyb20gZWl0aGVyIGEgYmFzZVxuLy8gY2xhc3Mgb3IgeW91IGNhbiBzcGVjaWZ5IHRoZSBgc3ByaXRlLXVybGAgZXhwbGljaXRseSBsaWtlIHRoaXM6XG4vL1xuLy8gICAgIGJhY2tncm91bmQ6ICRtYXAgbm8tcmVwZWF0O1xuQG1peGluIHNwcml0ZSgkbWFwLCAkc3ByaXRlLCAkZGltZW5zaW9uczogZmFsc2UsICRvZmZzZXQteDogMCwgJG9mZnNldC15OiAwKSB7XG4gIEBpbmNsdWRlIHNwcml0ZS1iYWNrZ3JvdW5kLXBvc2l0aW9uKCRtYXAsICRzcHJpdGUsICRvZmZzZXQteCwgJG9mZnNldC15KTtcbiAgQGlmICRkaW1lbnNpb25zIHtcbiAgICBAaW5jbHVkZSBzcHJpdGUtZGltZW5zaW9ucygkbWFwLCAkc3ByaXRlKTsgfVxuICBAaWYgbm90ICRkaXNhYmxlLW1hZ2ljLXNwcml0ZS1zZWxlY3RvcnMge1xuICAgIEBpbmNsdWRlIHNwcml0ZS1zZWxlY3RvcnMoJG1hcCwgJHNwcml0ZSwgJHNwcml0ZSwgJG9mZnNldC14LCAkb2Zmc2V0LXkpOyB9IH1cblxuLy8gSW5jbHVkZSB0aGUgc2VsZWN0b3JzIGZvciB0aGUgYCRzcHJpdGVgIGdpdmVuIHRoZSBgJG1hcGAgYW5kIHRoZVxuLy8gYCRmdWxsLXNwcml0ZS1uYW1lYFxuLy8gQHByaXZhdGVcbkBtaXhpbiBzcHJpdGUtc2VsZWN0b3JzKCRtYXAsICRzcHJpdGUtbmFtZSwgJGZ1bGwtc3ByaXRlLW5hbWUsICRvZmZzZXQteDogMCwgJG9mZnNldC15OiAwKSB7XG4gIEBlYWNoICRzZWxlY3RvciBpbiAkc3ByaXRlLXNlbGVjdG9ycyB7XG4gICAgQGlmIHNwcml0ZV9oYXNfc2VsZWN0b3IoJG1hcCwgJHNwcml0ZS1uYW1lLCAkc2VsZWN0b3IpIHtcbiAgICAgICY6I3skc2VsZWN0b3J9LCAmLiN7JGZ1bGwtc3ByaXRlLW5hbWV9XyN7JHNlbGVjdG9yfSwgJi4jeyRmdWxsLXNwcml0ZS1uYW1lfS0jeyRzZWxlY3Rvcn0ge1xuICAgICAgICBAaW5jbHVkZSBzcHJpdGUtYmFja2dyb3VuZC1wb3NpdGlvbigkbWFwLCBcIiN7JHNwcml0ZS1uYW1lfV8jeyRzZWxlY3Rvcn1cIiwgJG9mZnNldC14LCAkb2Zmc2V0LXkpOyB9IH0gfSB9XG5cbi8vIEdlbmVyYXRlcyBhIGNsYXNzIGZvciBlYWNoIHNwYWNlIHNlcGFyYXRlZCBuYW1lIGluIGAkc3ByaXRlLW5hbWVzYC5cbi8vIFRoZSBjbGFzcyB3aWxsIGJlIG9mIHRoZSBmb3JtIC48bWFwLW5hbWU+LTxzcHJpdGUtbmFtZT4uXG4vL1xuLy8gSWYgYSBiYXNlIGNsYXNzIGlzIHByb3ZpZGVkLCB0aGVuIGVhY2ggY2xhc3Mgd2lsbCBleHRlbmQgaXQuXG4vL1xuLy8gSWYgYCRkaW1lbnNpb25zYCBpcyBgdHJ1ZWAsIHRoZSBzcHJpdGUgZGltZW5zaW9ucyB3aWxsIHNwZWNpZmllZC5cbkBtaXhpbiBzcHJpdGVzKCRtYXAsICRzcHJpdGUtbmFtZXMsICRiYXNlLWNsYXNzOiBmYWxzZSwgJGRpbWVuc2lvbnM6IGZhbHNlLCAkcHJlZml4OiBzcHJpdGUtbWFwLW5hbWUoJG1hcCksICRvZmZzZXQteDogMCwgJG9mZnNldC15OiAwKSB7XG4gIEBlYWNoICRzcHJpdGUtbmFtZSBpbiAkc3ByaXRlLW5hbWVzIHtcbiAgICBAaWYgc3ByaXRlX2RvZXNfbm90X2hhdmVfcGFyZW50KCRtYXAsICRzcHJpdGUtbmFtZSkge1xuICAgICAgJGZ1bGwtc3ByaXRlLW5hbWU6IFwiI3skcHJlZml4fS0jeyRzcHJpdGUtbmFtZX1cIjtcbiAgICAgIC4jeyRmdWxsLXNwcml0ZS1uYW1lfSB7XG4gICAgICAgIEBpZiAkYmFzZS1jbGFzcyB7XG4gICAgICAgICAgQGV4dGVuZCAjeyRiYXNlLWNsYXNzfTsgfVxuICAgICAgICBAaW5jbHVkZSBzcHJpdGUoJG1hcCwgJHNwcml0ZS1uYW1lLCAkZGltZW5zaW9ucywgJG9mZnNldC14LCAkb2Zmc2V0LXkpOyB9IH0gfSB9XG4iLCIvLyBAZG9jIG9mZlxuLy8gRXhhbXBsZSAxOlxuLy9cbi8vICAgICBhLnR3aXR0ZXJcbi8vICAgICAgICtzcHJpdGUtaW1nKFwiaWNvbnMtMzIucG5nXCIsIDEpXG4vLyAgICAgYS5mYWNlYm9va1xuLy8gICAgICAgK3Nwcml0ZS1pbWcoXCJpY29ucy0zMnBuZ1wiLCAyKVxuLy9cbi8vIEV4YW1wbGUgMjpcbi8vXG4vLyAgICAgYVxuLy8gICAgICAgK3Nwcml0ZS1iYWNrZ3JvdW5kKFwiaWNvbnMtMzIucG5nXCIpXG4vLyAgICAgICBhLnR3aXR0ZXJcbi8vICAgICAgICAgK3Nwcml0ZS1jb2x1bW4oMSlcbi8vICAgICAgIGEuZmFjZWJvb2tcbi8vICAgICAgICAgK3Nwcml0ZS1yb3coMilcbi8vIEBkb2Mgb25cblxuJHNwcml0ZS1kZWZhdWx0LXNpemU6IDMycHggIWRlZmF1bHQ7XG5cbiRzcHJpdGUtZGVmYXVsdC1tYXJnaW46IDBweCAhZGVmYXVsdDtcblxuJHNwcml0ZS1pbWFnZS1kZWZhdWx0LXdpZHRoOiAkc3ByaXRlLWRlZmF1bHQtc2l6ZSAhZGVmYXVsdDtcblxuJHNwcml0ZS1pbWFnZS1kZWZhdWx0LWhlaWdodDogJHNwcml0ZS1kZWZhdWx0LXNpemUgIWRlZmF1bHQ7XG5cbi8vIFNldHMgYWxsIHRoZSBydWxlcyBmb3IgYSBzcHJpdGUgZnJvbSBhIGdpdmVuIHNwcml0ZSBpbWFnZSB0byBzaG93IGp1c3Qgb25lIG9mIHRoZSBzcHJpdGVzLlxuLy8gVG8gcmVkdWNlIGR1cGxpY2F0aW9uIHVzZSBhIHNwcml0ZS1iZyBtaXhpbiBmb3IgY29tbW9uIHByb3BlcnRpZXMgYW5kIGEgc3ByaXRlLXNlbGVjdCBtaXhpbiBmb3IgcG9zaXRpb25pbmcuXG5AbWl4aW4gc3ByaXRlLWltZygkaW1nLCAkY29sLCAkcm93OiAxLCAkd2lkdGg6ICRzcHJpdGUtaW1hZ2UtZGVmYXVsdC13aWR0aCwgJGhlaWdodDogJHNwcml0ZS1pbWFnZS1kZWZhdWx0LWhlaWdodCwgJG1hcmdpbjogJHNwcml0ZS1kZWZhdWx0LW1hcmdpbikge1xuICBAaW5jbHVkZSBzcHJpdGUtYmFja2dyb3VuZCgkaW1nLCAkd2lkdGgsICRoZWlnaHQpO1xuICBAaW5jbHVkZSBzcHJpdGUtcG9zaXRpb24oJGNvbCwgJHJvdywgJHdpZHRoLCAkaGVpZ2h0LCAkbWFyZ2luKTsgfVxuXG4vLyBTZXRzIHJ1bGVzIGNvbW1vbiBmb3IgYWxsIHNwcml0ZXMsIGFzc3VtZXMgeW91IHdhbnQgYSBzcXVhcmUsIGJ1dCBhbGxvd3MgYSByZWN0YW5ndWxhciByZWdpb24uXG5AbWl4aW4gc3ByaXRlLWJhY2tncm91bmQoJGltZywgJHdpZHRoOiAkc3ByaXRlLWRlZmF1bHQtc2l6ZSwgJGhlaWdodDogJHdpZHRoKSB7XG4gIEBpbmNsdWRlIHNwcml0ZS1iYWNrZ3JvdW5kLXJlY3RhbmdsZSgkaW1nLCAkd2lkdGgsICRoZWlnaHQpOyB9XG5cbi8vIFNldHMgcnVsZXMgY29tbW9uIGZvciBhbGwgc3ByaXRlcywgYXNzdW1lcyBhIHJlY3Rhbmd1bGFyIHJlZ2lvbi5cbkBtaXhpbiBzcHJpdGUtYmFja2dyb3VuZC1yZWN0YW5nbGUoJGltZywgJHdpZHRoOiAkc3ByaXRlLWltYWdlLWRlZmF1bHQtd2lkdGgsICRoZWlnaHQ6ICRzcHJpdGUtaW1hZ2UtZGVmYXVsdC1oZWlnaHQpIHtcbiAgYmFja2dyb3VuZDogaW1hZ2UtdXJsKCRpbWcpIG5vLXJlcGVhdDtcbiAgd2lkdGg6ICR3aWR0aDtcbiAgaGVpZ2h0OiAkaGVpZ2h0O1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8vIEFsbG93cyBob3Jpem9udGFsIHNwcml0ZSBwb3NpdGlvbmluZyBvcHRpbWl6ZWQgZm9yIGEgc2luZ2xlIHJvdyBvZiBzcHJpdGVzLlxuQG1peGluIHNwcml0ZS1jb2x1bW4oJGNvbCwgJHdpZHRoOiAkc3ByaXRlLWltYWdlLWRlZmF1bHQtd2lkdGgsICRtYXJnaW46ICRzcHJpdGUtZGVmYXVsdC1tYXJnaW4pIHtcbiAgQGluY2x1ZGUgc3ByaXRlLXBvc2l0aW9uKCRjb2wsIDEsICR3aWR0aCwgMHB4LCAkbWFyZ2luKTsgfVxuXG4vLyBBbGxvd3MgdmVydGljYWwgc3ByaXRlIHBvc2l0aW9uaW5nIG9wdGltaXplZCBmb3IgYSBzaW5nbGUgY29sdW1uIG9mIHNwcml0ZXMuXG5AbWl4aW4gc3ByaXRlLXJvdygkcm93LCAkaGVpZ2h0OiAkc3ByaXRlLWltYWdlLWRlZmF1bHQtaGVpZ2h0LCAkbWFyZ2luOiAkc3ByaXRlLWRlZmF1bHQtbWFyZ2luKSB7XG4gIEBpbmNsdWRlIHNwcml0ZS1wb3NpdGlvbigxLCAkcm93LCAwcHgsICRoZWlnaHQsICRtYXJnaW4pOyB9XG5cbi8vIEFsbG93cyB2ZXJ0aWNhbCBhbmQgaG9yaXpvbnRhbCBzcHJpdGUgcG9zaXRpb25pbmcgZnJvbSBhIGdyaWQgb2YgZXF1YWwgZGltZW5zaW9uZWQgc3ByaXRlcy5cbkBtaXhpbiBzcHJpdGUtcG9zaXRpb24oJGNvbCwgJHJvdzogMSwgJHdpZHRoOiAkc3ByaXRlLWltYWdlLWRlZmF1bHQtd2lkdGgsICRoZWlnaHQ6ICRzcHJpdGUtaW1hZ2UtZGVmYXVsdC1oZWlnaHQsICRtYXJnaW46ICRzcHJpdGUtZGVmYXVsdC1tYXJnaW4pIHtcbiAgJHg6ICgkY29sIC0gMSkgKiAtJHdpZHRoIC0gKCRjb2wgLSAxKSAqICRtYXJnaW47XG4gICR5OiAoJHJvdyAtIDEpICogLSRoZWlnaHQgLSAoJHJvdyAtIDEpICogJG1hcmdpbjtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogJHggJHk7IH1cblxuLy8gU2ltaWxhciB0byAnc3ByaXRlLXJlcGxhY2UtdGV4dC13aXRoLWRpbWVuc2lvbnMnIGJ1dCBkb2VzIG5vdCBhdXRtYXRpY2x5IHNldCB0aGUgZGVtZW5zaW9uc1xuQG1peGluIHNwcml0ZS1yZXBsYWNlLXRleHQoJG1hcCwgJHNwcml0ZSwgJGRpbWVuc2lvbnM6IGZhbHNlLCAkb2Zmc2V0LXg6IDAsICRvZmZzZXQteTogMCkge1xuICBAaW5jbHVkZSBoaWRlLXRleHQ7XG4gIEBpbmNsdWRlIHNwcml0ZSgkbWFwLCAkc3ByaXRlLCAkZGltZW5zaW9ucywgJG9mZnNldC14LCAkb2Zmc2V0LXkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAkbWFwO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9XG5cbi8vIFNpbWlsYXIgdG8gJ3JlcGxhY2UtdGV4dC13aXRoLWRpbWVuc2lvbnMnIGJ1dCB3aXRoIHNwcml0ZXNcbi8vIFRvIHVzZSwgY3JlYXRlIHlvdXIgc3ByaXRlIGFuZCB0aGVuIHBhc3MgaXQgaW4gdGhlIGAkbWFwYCBwYXJhbVxuLy8gVGhlIG5hbWUgb2YgdGhlIGltYWdlIGluIHRoZSBzcHJpdGUgZm9sZGVyIHNob3VsZCBiZSBgJGltZy1uYW1lYFxuQG1peGluIHNwcml0ZS1yZXBsYWNlLXRleHQtd2l0aC1kaW1lbnNpb25zKCRtYXAsICRzcHJpdGUsICRvZmZzZXQteDogMCwgJG9mZnNldC15OiAwKSB7XG4gIEBpbmNsdWRlIHNwcml0ZS1yZXBsYWNlLXRleHQoJG1hcCwgJHNwcml0ZSwgdHJ1ZSwgJG9mZnNldC14LCAkb2Zmc2V0LXkpOyB9XG4iLCJAaW1wb3J0IFwidGFibGVzL2FsdGVybmF0aW5nLXJvd3MtYW5kLWNvbHVtbnNcIjtcbkBpbXBvcnQgXCJ0YWJsZXMvYm9yZGVyc1wiO1xuQGltcG9ydCBcInRhYmxlcy9zY2FmZm9sZGluZ1wiO1xuIiwiQG1peGluIGFsdGVybmF0aW5nLXJvd3MtYW5kLWNvbHVtbnMoJGV2ZW4tcm93LWNvbG9yLCAkb2RkLXJvdy1jb2xvciwgJGRhcmstaW50ZXJzZWN0aW9uLCAkaGVhZGVyLWNvbG9yOiB3aGl0ZSwgJGZvb3Rlci1jb2xvcjogd2hpdGUpIHtcbiAgdGgge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItY29sb3I7XG4gICAgJi5ldmVuLCAmOm50aC1jaGlsZCgybikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlci1jb2xvciAtICRkYXJrLWludGVyc2VjdGlvbjsgfSB9XG4gIHRyIHtcbiAgICAmLm9kZCwgJjpudGgtY2hpbGQoMm4rMSkge1xuICAgICAgdGQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkb2RkLXJvdy1jb2xvcjtcbiAgICAgICAgJi5ldmVuLCAmOm50aC1jaGlsZCgybikge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvZGQtcm93LWNvbG9yIC0gJGRhcmstaW50ZXJzZWN0aW9uOyB9IH0gfSB9XG4gIHRyLmV2ZW4ge1xuICAgIHRkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRldmVuLXJvdy1jb2xvcjtcbiAgICAgICYuZXZlbiwgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGV2ZW4tcm93LWNvbG9yIC0gJGRhcmstaW50ZXJzZWN0aW9uOyB9IH0gfVxuICB0Zm9vdCB7XG4gICAgdGgsIHRkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmb290ZXItY29sb3I7XG4gICAgICAmLmV2ZW4sICY6bnRoLWNoaWxkKDJuKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmb290ZXItY29sb3IgLSAkZGFyay1pbnRlcnNlY3Rpb247IH0gfSB9IH1cbiIsIkBtaXhpbiBvdXRlci10YWJsZS1ib3JkZXJzKCR3aWR0aDogMnB4LCAkY29sb3I6IGJsYWNrKSB7XG4gIGJvcmRlcjogJHdpZHRoIHNvbGlkICRjb2xvcjtcbiAgdGhlYWQge1xuICAgIHRoIHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkY29sb3I7IH0gfVxuICB0Zm9vdCB7XG4gICAgdGgsIHRkIHtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkY29sb3I7IH0gfVxuICB0aCB7XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkY29sb3I7IH0gfSB9XG5cbkBtaXhpbiBpbm5lci10YWJsZS1ib3JkZXJzKCR3aWR0aDogMnB4LCAkY29sb3I6IGJsYWNrKSB7XG4gIHRoLCB0ZCB7XG4gICAgYm9yZGVyOiB7XG4gICAgICByaWdodDogJHdpZHRoIHNvbGlkICRjb2xvcjtcbiAgICAgIGJvdHRvbTogJHdpZHRoIHNvbGlkICRjb2xvcjtcbiAgICAgIGxlZnQtd2lkdGg6IDBweDtcbiAgICAgIHRvcC13aWR0aDogMHB4OyB9XG4gICAgJjpsYXN0LWNoaWxkLFxuICAgICYubGFzdCB7XG4gICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDBweDsgfSB9XG4gIC8vIElFOCBpZ25vcmVzIHJ1bGVzIHRoYXQgYXJlIGluY2x1ZGVkIG9uIHRoZSBzYW1lIGxpbmUgYXMgOmxhc3QtY2hpbGRcbiAgLy8gc2VlIGh0dHA6Ly93d3cucmljaGFyZHNjYXJyb3R0LmNvLnVrL3Bvc3RzL3ZpZXcvaWU4LWxhc3QtY2hpbGQtYnVnIGZvciBkZXRhaWxzXG4gIHRib2R5LCB0Zm9vdCB7XG4gICAgdHI6bGFzdC1jaGlsZCB7XG4gICAgICB0aCwgdGQge1xuICAgICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAwcHg7IH0gfVxuICAgIHRyLmxhc3Qge1xuICAgICAgdGgsIHRkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMHB4OyB9IH0gfSB9XG4iLCJAbWl4aW4gdGFibGUtc2NhZmZvbGRpbmcge1xuICB0aCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG4gIHRkLFxuICB0aCB7XG4gICAgcGFkZGluZzogMnB4O1xuICAgICYubnVtZXJpYyB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDsgfSB9IH1cbiIsIkBpbXBvcnQgXCJsaW5rcy9ob3Zlci1saW5rXCI7XG5AaW1wb3J0IFwibGlua3MvbGluay1jb2xvcnNcIjtcbkBpbXBvcnQgXCJsaW5rcy91bnN0eWxlZC1saW5rXCI7XG4iLCIvLyBhIGxpbmsgdGhhdCBvbmx5IGhhcyBhbiB1bmRlcmxpbmUgd2hlbiB5b3UgaG92ZXIgb3ZlciBpdFxuQG1peGluIGhvdmVyLWxpbmsge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICY6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9IH1cbiIsIi8vIFNldCBhbGwgdGhlIGNvbG9ycyBmb3IgYSBsaW5rIHdpdGggb25lIG1peGluIGNhbGwuXG4vLyBPcmRlciBvZiBhcmd1bWVudHMgaXM6XG4vL1xuLy8gMS4gbm9ybWFsXG4vLyAyLiBob3ZlclxuLy8gMy4gYWN0aXZlXG4vLyA0LiB2aXNpdGVkXG4vLyA1LiBmb2N1c1xuLy9cbi8vIFRob3NlIHN0YXRlcyBub3Qgc3BlY2lmaWVkIHdpbGwgaW5oZXJpdC5cbi8vIE1peGluIHRvIGFuIGFuY2hvciBsaW5rIGxpa2Ugc286XG4vLyAgICAgYVxuLy8gICAgICAgK2xpbmstY29sb3JzKCMwMGMsICMwY2MsICNjMGMsICNjY2MsICNjYzApXG5cbkBtaXhpbiBsaW5rLWNvbG9ycygkbm9ybWFsLCAkaG92ZXI6IGZhbHNlLCAkYWN0aXZlOiBmYWxzZSwgJHZpc2l0ZWQ6IGZhbHNlLCAkZm9jdXM6IGZhbHNlKSB7XG4gIGNvbG9yOiAkbm9ybWFsO1xuICBAaWYgJHZpc2l0ZWQge1xuICAgICY6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogJHZpc2l0ZWQ7IH0gfVxuICBAaWYgJGZvY3VzIHtcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkZm9jdXM7IH0gfVxuICBAaWYgJGhvdmVyIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAkaG92ZXI7IH0gfVxuICBAaWYgJGFjdGl2ZSB7XG4gICAgJjphY3RpdmUge1xuICAgICAgY29sb3I6ICRhY3RpdmU7IH0gfSB9XG4iLCIvLyBBIGxpbmsgdGhhdCBsb29rcyBhbmQgYWN0cyBsaWtlIHRoZSB0ZXh0IGl0IGlzIGNvbnRhaW5lZCB3aXRoaW5cbkBtaXhpbiB1bnN0eWxlZC1saW5rIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgY3Vyc29yOiBpbmhlcml0O1xuICAmOmFjdGl2ZSwgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTsgfSB9XG4iLCJAaW1wb3J0IFwibGlzdHMvaG9yaXpvbnRhbC1saXN0XCI7XG5AaW1wb3J0IFwibGlzdHMvaW5saW5lLWxpc3RcIjtcbkBpbXBvcnQgXCJsaXN0cy9pbmxpbmUtYmxvY2stbGlzdFwiO1xuQGltcG9ydCBcImxpc3RzL2J1bGxldHNcIjtcbiIsIi8vIEhvcml6b250YWwgbGlzdCBsYXlvdXQgbW9kdWxlLlxuLy9cbi8vIEVhc3kgbW9kZSB1c2luZyBzaW1wbGUgZGVzY2VuZGFudCBsaSBzZWxlY3RvcnM6XG4vL1xuLy8gICB1bC5uYXZcbi8vICAgICAraG9yaXpvbnRhbC1saXN0XG4vL1xuLy8gQWR2YW5jZWQgbW9kZTpcbi8vIElmIHlvdSBuZWVkIHRvIHRhcmdldCB0aGUgbGlzdCBpdGVtcyB1c2luZyBhIGRpZmZlcmVudCBzZWxlY3RvciB0aGVuIHVzZVxuLy8gK2hvcml6b250YWwtbGlzdC1jb250YWluZXIgb24geW91ciB1bC9vbCBhbmQgK2hvcml6b250YWwtbGlzdC1pdGVtIG9uIHlvdXIgbGkuXG4vLyBUaGlzIG1heSBoZWxwIHdoZW4gd29ya2luZyBvbiBsYXlvdXRzIGludm9sdmluZyBuZXN0ZWQgbGlzdHMuIEZvciBleGFtcGxlOlxuLy9cbi8vICAgdWwubmF2XG4vLyAgICAgK2hvcml6b250YWwtbGlzdC1jb250YWluZXJcbi8vICAgICA+IGxpXG4vLyAgICAgICAraG9yaXpvbnRhbC1saXN0LWl0ZW1cblxuQGltcG9ydCBcImJ1bGxldHNcIjtcbkBpbXBvcnQgXCIuLi8uLi91dGlsaXRpZXMvZ2VuZXJhbC9jbGVhcmZpeFwiO1xuQGltcG9ydCBcIi4uLy4uL3V0aWxpdGllcy9nZW5lcmFsL3Jlc2V0XCI7XG5AaW1wb3J0IFwiLi4vLi4vdXRpbGl0aWVzL2dlbmVyYWwvZmxvYXRcIjtcblxuLy8gQ2FuIGJlIG1peGVkIGludG8gYW55IHNlbGVjdG9yIHRoYXQgdGFyZ2V0IGEgdWwgb3Igb2wgdGhhdCBpcyBtZWFudFxuLy8gdG8gaGF2ZSBhIGhvcml6b250YWwgbGF5b3V0LiBVc2VkIHRvIGltcGxlbWVudCAraG9yaXpvbnRhbC1saXN0LlxuQG1peGluIGhvcml6b250YWwtbGlzdC1jb250YWluZXIge1xuICBAaW5jbHVkZSByZXNldC1ib3gtbW9kZWw7XG4gIEBpbmNsdWRlIGNsZWFyZml4OyB9XG5cbi8vIENhbiBiZSBtaXhlZCBpbnRvIGFueSBsaSBzZWxlY3RvciB0aGF0IGlzIG1lYW50IHRvIHBhcnRpY2lwYXRlIGluIGEgaG9yaXpvbnRhbCBsYXlvdXQuXG4vLyBVc2VkIHRvIGltcGxlbWVudCAraG9yaXpvbnRhbC1saXN0LlxuLy9cbi8vIDpsYXN0LWNoaWxkIGlzIG5vdCBmdWxseSBzdXBwb3J0ZWRcbi8vIHNlZSBodHRwOi8vd3d3LnF1aXJrc21vZGUub3JnL2Nzcy9jb250ZW50cy5odG1sI3QyOSBmb3IgdGhlIHN1cHBvcnQgbWF0cml4XG4vL1xuLy8gSUU4IGlnbm9yZXMgcnVsZXMgdGhhdCBhcmUgaW5jbHVkZWQgb24gdGhlIHNhbWUgbGluZSBhcyA6bGFzdC1jaGlsZFxuLy8gc2VlIGh0dHA6Ly93d3cucmljaGFyZHNjYXJyb3R0LmNvLnVrL3Bvc3RzL3ZpZXcvaWU4LWxhc3QtY2hpbGQtYnVnIGZvciBkZXRhaWxzXG4vL1xuLy8gU2V0dGluZyBgJHBhZGRpbmdgIHRvIGBmYWxzZWAgZGlzYWJsZXMgdGhlIHBhZGRpbmcgYmV0d2VlbiBsaXN0IGVsZW1lbnRzXG5AbWl4aW4gaG9yaXpvbnRhbC1saXN0LWl0ZW0oJHBhZGRpbmc6IDRweCwgJGRpcmVjdGlvbjogbGVmdCkge1xuICBAaW5jbHVkZSBuby1idWxsZXQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIEBpbmNsdWRlIGZsb2F0KCRkaXJlY3Rpb24pO1xuICBAaWYgJHBhZGRpbmcge1xuICAgIHBhZGRpbmc6IHtcbiAgICAgIGxlZnQ6ICRwYWRkaW5nO1xuICAgICAgcmlnaHQ6ICRwYWRkaW5nOyB9XG4gICAgJjpmaXJzdC1jaGlsZCwgJi5maXJzdCB7XG4gICAgICBwYWRkaW5nLSN7JGRpcmVjdGlvbn06IDA7IH1cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy0je29wcG9zaXRlLXBvc2l0aW9uKCRkaXJlY3Rpb24pfTogMDsgfVxuICAgICYubGFzdCB7XG4gICAgICBwYWRkaW5nLSN7b3Bwb3NpdGUtcG9zaXRpb24oJGRpcmVjdGlvbil9OiAwOyB9IH0gfVxuXG4vLyBBIGxpc3Qob2wsdWwpIHRoYXQgaXMgbGF5ZWQgb3V0IHN1Y2ggdGhhdCB0aGUgZWxlbWVudHMgYXJlIGZsb2F0ZWQgbGVmdCBhbmQgd29uJ3Qgd3JhcC5cbi8vIFRoaXMgaXMgbm90IGFuIGlubGluZSBsaXN0LlxuLy9cbi8vIFNldHRpbmcgYCRwYWRkaW5nYCB0byBgZmFsc2VgIGRpc2FibGVzIHRoZSBwYWRkaW5nIGJldHdlZW4gbGlzdCBlbGVtZW50c1xuQG1peGluIGhvcml6b250YWwtbGlzdCgkcGFkZGluZzogNHB4LCAkZGlyZWN0aW9uOiBsZWZ0KSB7XG4gIEBpbmNsdWRlIGhvcml6b250YWwtbGlzdC1jb250YWluZXI7XG4gIGxpIHtcbiAgICBAaW5jbHVkZSBob3Jpem9udGFsLWxpc3QtaXRlbSgkcGFkZGluZywgJGRpcmVjdGlvbik7IH0gfVxuIiwiLy8gVHVybiBvZmYgdGhlIGJ1bGxldCBmb3IgYW4gZWxlbWVudCBvZiBhIGxpc3RcbkBtaXhpbiBuby1idWxsZXQge1xuICBsaXN0LXN0eWxlLWltYWdlOiBub25lO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi8vIHR1cm5zIG9mZiB0aGUgYnVsbGV0cyBmb3IgYW4gZW50aXJlIGxpc3RcbkBtaXhpbiBuby1idWxsZXRzIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbGkge1xuICAgIEBpbmNsdWRlIG5vLWJ1bGxldDsgfSB9XG5cbi8vIE1ha2UgYSBsaXN0KHVsL29sKSBoYXZlIGFuIGltYWdlIGJ1bGxldC5cbi8vXG4vLyBUaGUgbWl4aW4gc2hvdWxkIGJlIHVzZWQgbGlrZSB0aGlzIGZvciBhbiBpY29uIHRoYXQgaXMgNXg3OlxuLy9cbi8vICAgICB1bC5wcmV0dHlcbi8vICAgICAgICtwcmV0dHktYnVsbGV0cyhcIm15LWljb24ucG5nXCIsIDVweCwgN3B4KVxuLy9cbi8vIEFkZGl0aW9uYWxseSwgaWYgdGhlIGltYWdlIGRpbWVuc2lvbnMgYXJlIG5vdCBwcm92aWRlZCxcbi8vIFRoZSBpbWFnZSBkaW1lbnNpb25zIHdpbGwgYmUgZXh0cmFjdGVkIGZyb20gdGhlIGltYWdlIGl0c2VsZi5cbi8vXG4vLyAgICAgdWwucHJldHR5XG4vLyAgICAgICArcHJldHR5LWJ1bGxldHMoXCJteS1pY29uLnBuZ1wiKVxuLy9cbkBtaXhpbiBwcmV0dHktYnVsbGV0cygkYnVsbGV0LWljb24sICR3aWR0aDogaW1hZ2Utd2lkdGgoJGJ1bGxldC1pY29uKSwgJGhlaWdodDogaW1hZ2UtaGVpZ2h0KCRidWxsZXQtaWNvbiksICRsaW5lLWhlaWdodDogMThweCwgJHBhZGRpbmc6IDE0cHgpIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGxpIHtcbiAgICBwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nO1xuICAgIGJhY2tncm91bmQ6IGltYWdlLXVybCgkYnVsbGV0LWljb24pIG5vLXJlcGVhdCAoKCRwYWRkaW5nIC0gJHdpZHRoKSAvIDIpICgoJGxpbmUtaGVpZ2h0IC0gJGhlaWdodCkgLyAyKTtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH0gfVxuIiwiLy8gbWFrZXMgYSBsaXN0IGlubGluZS5cblxuQG1peGluIGlubGluZS1saXN0IHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAmLCAmIGxpIHtcbiAgICBtYXJnaW46IDBweDtcbiAgICBwYWRkaW5nOiAwcHg7XG4gICAgZGlzcGxheTogaW5saW5lOyB9IH1cblxuLy8gbWFrZXMgYW4gaW5saW5lIGxpc3QgZGVsaW1pdGVkIHdpdGggdGhlIHBhc3NlZCBzdHJpbmcuXG4vLyBEZWZhdWx0cyB0byBtYWtpbmcgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdC5cbi8vXG4vLyBQbGVhc2UgbWFrZSBub3RlIG9mIHRoZSBicm93c2VyIHN1cHBvcnQgaXNzdWVzIGJlZm9yZSB1c2luZyB0aGlzIG1peGluOlxuLy9cbi8vIHVzZSBvZiBgY29udGVudGAgYW5kIGA6YWZ0ZXJgIGlzIG5vdCBmdWxseSBzdXBwb3J0ZWQgaW4gYWxsIGJyb3dzZXJzLlxuLy8gU2VlIHF1aXJrc21vZGUgZm9yIHRoZSBbc3VwcG9ydCBtYXRyaXhdKGh0dHA6Ly93d3cucXVpcmtzbW9kZS5vcmcvY3NzL2NvbnRlbnRzLmh0bWwjdDE1KVxuLy9cbi8vIGA6bGFzdC1jaGlsZGAgaXMgbm90IGZ1bGx5IHN1cHBvcnRlZC5cbi8vIHNlZSBxdWlya3Ntb2RlIGZvciB0aGUgW3N1cHBvcnQgbWF0cml4XShodHRwOi8vd3d3LnF1aXJrc21vZGUub3JnL2Nzcy9jb250ZW50cy5odG1sI3QyOSkuXG4vL1xuLy8gSUU4IGlnbm9yZXMgcnVsZXMgdGhhdCBhcmUgaW5jbHVkZWQgb24gdGhlIHNhbWUgbGluZSBhcyA6bGFzdC1jaGlsZFxuLy8gc2VlIGh0dHA6Ly93d3cucmljaGFyZHNjYXJyb3R0LmNvLnVrL3Bvc3RzL3ZpZXcvaWU4LWxhc3QtY2hpbGQtYnVnIGZvciBkZXRhaWxzXG5cbkBtaXhpbiBkZWxpbWl0ZWQtbGlzdCgkc2VwYXJhdG9yOiBcIiwgXCIpIHtcbiAgQGluY2x1ZGUgaW5saW5lLWxpc3Q7XG4gIGxpIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICRzZXBhcmF0b3I7IH1cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7IH0gfVxuICAgICYubGFzdCB7XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjsgfSB9IH0gfVxuXG4vLyBTZWUgW2RlbGltaXRlZC1saXN0XSgjbWl4aW4tZGVsaW1pdGVkLWxpc3QpXG4vLyBAZGVwcmVjYXRlZFxuQG1peGluIGNvbW1hLWRlbGltaXRlZC1saXN0IHtcbiAgQHdhcm4gXCJjb21tYS1kZWxpbWl0ZWQtbGlzdCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIGRlbGltaXRlZC1saXN0IGluc3RlYWQuXCI7XG4gIEBpbmNsdWRlIGRlbGltaXRlZC1saXN0OyB9XG4iLCIvLyBJbmxpbmUtQmxvY2sgbGlzdCBsYXlvdXQgbW9kdWxlLlxuLy9cbi8vIEVhc3kgbW9kZSB1c2luZyBzaW1wbGUgZGVzY2VuZGFudCBsaSBzZWxlY3RvcnM6XG4vL1xuLy8gICAgIHVsLm5hdiB7XG4vLyAgICAgICBAaW1wb3J0IGlubGluZS1ibG9jay1saXN0O1xuLy8gICAgIH1cbi8vXG4vLyBBZHZhbmNlZCBtb2RlOlxuLy8gSWYgeW91IG5lZWQgdG8gdGFyZ2V0IHRoZSBsaXN0IGl0ZW1zIHVzaW5nIGEgZGlmZmVyZW50IHNlbGVjdG9yIHRoZW4gdXNlXG4vLyBgQGluY2x1ZGUgaW5saW5lLWJsb2NrLWxpc3QtY29udGFpbmVyYCBvbiB5b3VyIHVsL29sIGFuZFxuLy8gYEBpbmNsdWRlIGlubGluZS1ibG9jay1saXN0LWl0ZW1gIG9uIHlvdXIgbGkuIFRoaXMgbWF5IGhlbHAgd2hlbiB3b3JraW5nXG4vLyBvbiBsYXlvdXRzIGludm9sdmluZyBuZXN0ZWQgbGlzdHMuIEZvciBleGFtcGxlOlxuLy9cbi8vICAgICB1bC5uYXYge1xuLy8gICAgICAgQGluY2x1ZGUgaW5saW5lLWJsb2NrLWxpc3QtY29udGFpbmVyO1xuLy8gICAgICAgPiBsaSB7XG4vLyAgICAgICAgIEBpbmNsdWRlIGlubGluZS1ibG9jay1saXN0LWl0ZW07XG4vLyAgICAgICB9XG4vLyAgICAgfVxuXG5AaW1wb3J0IFwiYnVsbGV0c1wiO1xuQGltcG9ydCBcImhvcml6b250YWwtbGlzdFwiO1xuQGltcG9ydCBcIi4uLy4uL3V0aWxpdGllcy9nZW5lcmFsL2Zsb2F0XCI7XG5AaW1wb3J0IFwiLi4vLi4vY3NzMy9pbmxpbmUtYmxvY2tcIjtcblxuLy8gQ2FuIGJlIG1peGVkIGludG8gYW55IHNlbGVjdG9yIHRoYXQgdGFyZ2V0IGEgdWwgb3Igb2wgdGhhdCBpcyBtZWFudFxuLy8gdG8gaGF2ZSBhbiBpbmxpbmUtYmxvY2sgbGF5b3V0LiBVc2VkIHRvIGltcGxlbWVudCBgaW5saW5lLWJsb2NrLWxpc3RgLlxuQG1peGluIGlubGluZS1ibG9jay1saXN0LWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGhvcml6b250YWwtbGlzdC1jb250YWluZXI7IH1cblxuLy8gQ2FuIGJlIG1peGVkIGludG8gYW55IGxpIHNlbGVjdG9yIHRoYXQgaXMgbWVhbnQgdG8gcGFydGljaXBhdGUgaW4gYSBob3Jpem9udGFsIGxheW91dC5cbi8vIFVzZWQgdG8gaW1wbGVtZW50IGBpbmxpbmUtYmxvY2stbGlzdGAuXG5AbWl4aW4gaW5saW5lLWJsb2NrLWxpc3QtaXRlbSgkcGFkZGluZzogZmFsc2UpIHtcbiAgQGluY2x1ZGUgbm8tYnVsbGV0O1xuICBAaW5jbHVkZSBpbmxpbmUtYmxvY2s7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIEBpZiAkcGFkZGluZyB7XG4gICAgcGFkZGluZzoge1xuICAgICAgbGVmdDogJHBhZGRpbmc7XG4gICAgICByaWdodDogJHBhZGRpbmc7IH0gfSB9XG5cbi8vIEEgbGlzdChvbCx1bCkgdGhhdCBpcyBsYXllZCBvdXQgc3VjaCB0aGF0IHRoZSBlbGVtZW50cyBhcmUgaW5saW5lLWJsb2NrIGFuZCB3b24ndCB3cmFwLlxuQG1peGluIGlubGluZS1ibG9jay1saXN0KCRwYWRkaW5nOiBmYWxzZSkge1xuICBAaW5jbHVkZSBpbmxpbmUtYmxvY2stbGlzdC1jb250YWluZXI7XG4gIGxpIHtcbiAgICBAaW5jbHVkZSBpbmxpbmUtYmxvY2stbGlzdC1pdGVtKCRwYWRkaW5nKTsgfSB9XG4iLCJAaW1wb3J0IFwic2hhcmVkXCI7XG5cbi8vIFNldCBgJGlubGluZS1ibG9jay1hbGlnbm1lbnRgIHRvIGBub25lYCBvciBgZmFsc2VgIHRvIGRpc2FibGUgdGhlIG91dHB1dFxuLy8gb2YgYSB2ZXJ0aWNhbC1hbGlnbiBwcm9wZXJ0eSBpbiB0aGUgaW5saW5lLWJsb2NrIG1peGluLlxuLy8gT3Igc2V0IGl0IHRvIGEgbGVnYWwgdmFsdWUgZm9yIGB2ZXJ0aWNhbC1hbGlnbmAgdG8gY2hhbmdlIHRoZSBkZWZhdWx0LlxuJGlubGluZS1ibG9jay1hbGlnbm1lbnQ6IG1pZGRsZSAhZGVmYXVsdDtcblxuLy8gUHJvdmlkZXMgYSBjcm9zcy1icm93c2VyIG1ldGhvZCB0byBpbXBsZW1lbnQgYGRpc3BsYXk6IGlubGluZS1ibG9jaztgXG5AbWl4aW4gaW5saW5lLWJsb2NrKCRhbGlnbm1lbnQ6ICRpbmxpbmUtYmxvY2stYWxpZ25tZW50KSB7XG4gIEBpZiAkbGVnYWN5LXN1cHBvcnQtZm9yLW1vemlsbGEge1xuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLXN0YWNrOyB9XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgQGlmICRhbGlnbm1lbnQgYW5kICRhbGlnbm1lbnQgIT0gbm9uZSB7XG4gICAgdmVydGljYWwtYWxpZ246ICRhbGlnbm1lbnQ7IH1cbiAgQGlmICRsZWdhY3ktc3VwcG9ydC1mb3ItaWUge1xuICAgICp2ZXJ0aWNhbC1hbGlnbjogYXV0bztcbiAgICB6b29tOiAxO1xuICAgICpkaXNwbGF5OiBpbmxpbmU7IH0gfVxuIiwiQGltcG9ydCBcIi4uL3N1cHBvcnRcIjtcblxuLy8gVGhpcyBtaXhpbiBwcm92aWRlcyBiYXNpYyBzdXBwb3J0IGZvciBDU1MzIHByb3BlcnRpZXMgYW5kXG4vLyB0aGVpciBjb3JyZXNwb25kaW5nIGV4cGVyaW1lbnRhbCBDU1MyIHByb3BlcnRpZXMgd2hlblxuLy8gdGhlIGltcGxlbWVudGF0aW9ucyBhcmUgaWRlbnRpY2FsIGV4Y2VwdCBmb3IgdGhlIHByb3BlcnR5XG4vLyBwcmVmaXguXG5AbWl4aW4gZXhwZXJpbWVudGFsKCRwcm9wZXJ0eSwgJHZhbHVlLCAkbW96OiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEsICR3ZWJraXQ6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0LCAkbzogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSwgJG1zOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1pY3Jvc29mdCwgJGtodG1sOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLWtodG1sLCAkb2ZmaWNpYWw6IHRydWUpIHtcbiAgQGlmICR3ZWJraXQgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0IHtcbiAgICAtd2Via2l0LSN7JHByb3BlcnR5fTogJHZhbHVlOyB9XG4gIEBpZiAka2h0bWwgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Ita2h0bWwge1xuICAgIC1raHRtbC0jeyRwcm9wZXJ0eX06ICR2YWx1ZTsgfVxuICBAaWYgJG1veiBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1tb3ppbGxhIHtcbiAgICAtbW96LSN7JHByb3BlcnR5fTogJHZhbHVlOyB9XG4gIEBpZiAkbXMgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbWljcm9zb2Z0IHtcbiAgICAtbXMtI3skcHJvcGVydHl9OiAkdmFsdWU7IH1cbiAgQGlmICRvIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhIHtcbiAgICAtby0jeyRwcm9wZXJ0eX06ICR2YWx1ZTsgfVxuICBAaWYgJG9mZmljaWFsIHtcbiAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTsgfSB9XG5cbi8vIFNhbWUgYXMgZXhwZXJpbWVudGFsKCksIGJ1dCBmb3IgY2FzZXMgd2hlbiB0aGUgcHJvcGVydHkgaXMgdGhlIHNhbWUgYW5kIHRoZSB2YWx1ZSBpcyB2ZW5kb3JpemVkXG5AbWl4aW4gZXhwZXJpbWVudGFsLXZhbHVlKCRwcm9wZXJ0eSwgJHZhbHVlLCAkbW96OiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEsICR3ZWJraXQ6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0LCAkbzogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSwgJG1zOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1pY3Jvc29mdCwgJGtodG1sOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLWtodG1sLCAkb2ZmaWNpYWw6IHRydWUpIHtcbiAgQGlmICR3ZWJraXQgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0IHtcbiAgICAjeyRwcm9wZXJ0eX06IC13ZWJraXQtI3skdmFsdWV9OyB9XG4gIEBpZiAka2h0bWwgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Ita2h0bWwge1xuICAgICN7JHByb3BlcnR5fTogLWtodG1sLSN7JHZhbHVlfTsgfVxuICBAaWYgJG1veiBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1tb3ppbGxhIHtcbiAgICAjeyRwcm9wZXJ0eX06IC1tb3otI3skdmFsdWV9OyB9XG4gIEBpZiAkbXMgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbWljcm9zb2Z0IHtcbiAgICAjeyRwcm9wZXJ0eX06IC1tcy0jeyR2YWx1ZX07IH1cbiAgQGlmICRvIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhIHtcbiAgICAjeyRwcm9wZXJ0eX06IC1vLSN7JHZhbHVlfTsgfVxuICBAaWYgJG9mZmljaWFsIHtcbiAgICAjeyRwcm9wZXJ0eX06ICN7JHZhbHVlfTsgfSB9XG4iLCJAaW1wb3J0IFwidGV4dC9lbGxpcHNpc1wiO1xuQGltcG9ydCBcInRleHQvbm93cmFwXCI7XG5AaW1wb3J0IFwidGV4dC9yZXBsYWNlbWVudFwiO1xuQGltcG9ydCBcInRleHQvZm9yY2Utd3JhcFwiO1xuIiwiQGltcG9ydCBcIi4uLy4uL2NzczMvc2hhcmVkXCI7XG5cbi8vIFRvIGdldCBmdWxsIGZpcmVmb3ggc3VwcG9ydCwgeW91IG11c3QgaW5zdGFsbCB0aGUgZWxsaXBzaXMgcGF0dGVybjpcbi8vXG4vLyAgICAgY29tcGFzcyBpbnN0YWxsIGNvbXBhc3MvZWxsaXBzaXNcbiR1c2UtbW96aWxsYS1lbGxpcHNpcy1iaW5kaW5nOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gVGhpcyB0ZWNobmlxdWUsIGJ5IFtKdXN0aW4gTWF4d2VsbF0oaHR0cDovL2NvZGU0MDQuY29tLyksIHdhcyBvcmlnaW5hbGx5XG4vLyBwdWJsaXNoZWQgW2hlcmVdKGh0dHA6Ly9tYXR0c25pZGVyLmNvbS9jc3MvY3NzLXN0cmluZy10cnVuY2F0aW9uLXdpdGgtZWxsaXBzaXMvKS5cbi8vIEZpcmVmb3ggaW1wbGVtZW50YXRpb24gYnkgW1Jpa2tlcnQgS29wcGVzXShodHRwOi8vd3d3LnJpa2tlcnRrb3BwZXMuY29tL3Rob3VnaHRzLzIwMDgvNi8pLlxuQG1peGluIGVsbGlwc2lzKCRuby13cmFwOiB0cnVlKSB7XG4gIEBpZiAkbm8td3JhcCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICBvdmVyZmxvdzogaGlkZGVuO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwodGV4dC1vdmVyZmxvdywgZWxsaXBzaXMsIG5vdCAtbW96LCBub3QgLXdlYmtpdCwgLW8sIC1tcywgbm90IC1raHRtbCwgb2ZmaWNpYWwpO1xuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1tb3ppbGxhIGFuZCAkdXNlLW1vemlsbGEtZWxsaXBzaXMtYmluZGluZyB7XG4gICAgLW1vei1iaW5kaW5nOiBzdHlsZXNoZWV0LXVybCh1bnF1b3RlKFwieG1sL2VsbGlwc2lzLnhtbCNlbGxpcHNpc1wiKSk7IH0gfVxuIiwiLy8gV2hlbiByZW1lbWJlcmluZyB3aGV0aGVyIG9yIG5vdCB0aGVyZSdzIGEgaHlwaGVuIGluIHdoaXRlLXNwYWNlIGlzIHRvbyBoYXJkXG5AbWl4aW4gbm93cmFwIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuIiwiLy8gSW5kaWNhdGVzIHRoZSBkaXJlY3Rpb24geW91IHByZWZlciB0byBtb3ZlIHlvdXIgdGV4dFxuLy8gd2hlbiBoaWRpbmcgaXQuXG4vL1xuLy8gYGxlZnRgIGlzIG1vcmUgcm9idXN0LCBlc3BlY2lhbGx5IGluIG9sZGVyIGJyb3dzZXJzLlxuLy8gYHJpZ2h0YCBzZWVtcyBoYXZlIGJldHRlciBydW50aW1lIHBlcmZvcm1hbmNlLlxuJGhpZGUtdGV4dC1kaXJlY3Rpb246IGxlZnQgIWRlZmF1bHQ7XG5cbi8vIEhpZGVzIGh0bWwgdGV4dCBhbmQgcmVwbGFjZXMgaXQgd2l0aCBhbiBpbWFnZS5cbi8vIElmIHlvdSB1c2UgdGhpcyBvbiBhbiBpbmxpbmUgZWxlbWVudCwgeW91IHdpbGwgbmVlZCB0byBjaGFuZ2UgdGhlIGRpc3BsYXkgdG8gYmxvY2sgb3IgaW5saW5lLWJsb2NrLlxuLy8gQWxzbywgaWYgdGhlIHNpemUgb2YgdGhlIGltYWdlIGRpZmZlcnMgc2lnbmlmaWNhbnRseSBmcm9tIHRoZSBmb250IHNpemUsIHlvdSdsbCBuZWVkIHRvIHNldCB0aGUgd2lkdGggYW5kL29yIGhlaWdodC5cbi8vXG4vLyBQYXJhbWV0ZXJzOlxuLy9cbi8vICogYGltZ2AgLS0gdGhlIHJlbGF0aXZlIHBhdGggZnJvbSB0aGUgcHJvamVjdCBpbWFnZSBkaXJlY3RvcnkgdG8gdGhlIGltYWdlLCBvciBhIHVybCBsaXRlcmFsLlxuLy8gKiBgeGAgLS0gdGhlIHggcG9zaXRpb24gb2YgdGhlIGJhY2tncm91bmQgaW1hZ2UuXG4vLyAqIGB5YCAtLSB0aGUgeSBwb3NpdGlvbiBvZiB0aGUgYmFja2dyb3VuZCBpbWFnZS5cbkBtaXhpbiByZXBsYWNlLXRleHQoJGltZywgJHg6IDUwJSwgJHk6IDUwJSkge1xuICBAaW5jbHVkZSBoaWRlLXRleHQ7XG4gIGJhY2tncm91bmQ6IHtcbiAgICBAaWYgaXMtdXJsKCRpbWcpIHtcbiAgICAgIGltYWdlOiB1cmwoJGltZyk7IH1cbiAgICBAZWxzZSB7XG4gICAgICBpbWFnZTogaW1hZ2UtdXJsKCRpbWcpOyB9XG4gICAgcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgcG9zaXRpb246ICR4ICR5OyB9IH1cblxuLy8gTGlrZSB0aGUgYHJlcGxhY2UtdGV4dGAgbWl4aW4sIGJ1dCBhbHNvIHNldHMgdGhlIHdpZHRoXG4vLyBhbmQgaGVpZ2h0IG9mIHRoZSBlbGVtZW50IGFjY29yZGluZyB0aGUgZGltZW5zaW9ucyBvZiB0aGUgaW1hZ2UuXG4vL1xuLy8gSWYgeW91IHNldCBgJGlubGluZWAgdG8gdHJ1ZSwgdGhlbiBhbiBpbmxpbmUgaW1hZ2UgKGRhdGEgdXJpKSB3aWxsIGJlIHVzZWQuXG5AbWl4aW4gcmVwbGFjZS10ZXh0LXdpdGgtZGltZW5zaW9ucygkaW1nLCAkeDogNTAlLCAkeTogNTAlLCAkaW5saW5lOiBmYWxzZSkge1xuICBAaW5jbHVkZSByZXBsYWNlLXRleHQoaWYoJGlubGluZSwgaW5saW5lLWltYWdlKCRpbWcpLCAkaW1nKSwgJHgsICR5KTtcbiAgd2lkdGg6IGltYWdlLXdpZHRoKCRpbWcpO1xuICBoZWlnaHQ6IGltYWdlLWhlaWdodCgkaW1nKTsgfVxuXG4vLyBIaWRlcyB0ZXh0IGluIGFuIGVsZW1lbnQgc28geW91IGNhbiBzZWUgdGhlIGJhY2tncm91bmQuXG4vL1xuLy8gVGhlIGRpcmVjdGlvbiBpbmRpY2F0ZXMgaG93IHRoZSB0ZXh0IHNob3VsZCBiZSBtb3ZlZCBvdXQgb2Ygdmlldy5cbi8vXG4vLyBTZWUgYCRoaWRlLXRleHQtZGlyZWN0aW9uYCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgdG8gc2V0IHRoaXMgZ2xvYmFsbHlcbi8vIGZvciB5b3VyIGFwcGxpY2F0aW9uLlxuQG1peGluIGhpZGUtdGV4dCgkZGlyZWN0aW9uOiAkaGlkZS10ZXh0LWRpcmVjdGlvbikge1xuICBAaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcbiAgICAkYXBwcm94aW1hdGUtZW0tdmFsdWU6IDEycHg7XG4gICAgJHdpZGVyLXRoYW4tYW55LXNjcmVlbjogLTk5OTk7XG4gICAgdGV4dC1pbmRlbnQ6ICR3aWRlci10aGFuLWFueS1zY3JlZW4gKiAkYXBwcm94aW1hdGUtZW0tdmFsdWU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIEBlbHNlIHtcbiAgICAvLyBzbGlnaHRseSB3aWRlciB0aGFuIHRoZSBib3ggcHJldmVudHMgaXNzdWVzIHdpdGggaW5saW5lLWJsb2NrIGVsZW1lbnRzXG4gICAgdGV4dC1pbmRlbnQ6IDExMCU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9IH1cblxuLy8gSGlkZXMgdGV4dCBpbiBhbiBlbGVtZW50IGJ5IHNxdWlzaGluZyB0aGUgdGV4dCBpbnRvIG9ibGl2aW9uLlxuLy8gVXNlIHRoaXMgaWYgeW91IG5lZWQgdG8gaGlkZSB0ZXh0IGNvbnRhaW5lZCBpbiBhbiBpbmxpbmUgZWxlbWVudFxuLy8gYnV0IHN0aWxsIGhhdmUgaXQgcmVhZCBieSBhIHNjcmVlbiByZWFkZXIuXG5AbWl4aW4gc3F1aXNoLXRleHQge1xuICBmb250OiAwLzAgc2VyaWY7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiIsIi8vIFByZXZlbnQgbG9uZyB1cmxzIGFuZCB0ZXh0IGZyb20gYnJlYWtpbmcgbGF5b3V0c1xuLy8gW29yaWdpbmFsbHkgZnJvbSBwZXJpc2hhYmxlcHJlc3MuY29tXShodHRwOi8vcGVyaXNoYWJsZXByZXNzLmNvbS9wcmVzcy8yMDEwLzA2LzAxL3dyYXBwaW5nLWNvbnRlbnQvKVxuQG1peGluIGZvcmNlLXdyYXAge1xuICB3aGl0ZS1zcGFjZTogcHJlO1xuICAvLyBDU1MgMi4wXG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgLy8gQ1NTIDIuMVxuICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG4gIC8vIENTUyAzLjBcbiAgd2hpdGUtc3BhY2U6IC1wcmUtd3JhcDtcbiAgLy8gT3BlcmEgNC02XG4gIHdoaXRlLXNwYWNlOiAtby1wcmUtd3JhcDtcbiAgLy8gT3BlcmEgN1xuICB3aGl0ZS1zcGFjZTogLW1vei1wcmUtd3JhcDtcbiAgLy8gTW96aWxsYVxuICB3aGl0ZS1zcGFjZTogLWhwLXByZS13cmFwO1xuICAvLyBIUCBQcmludGVyc1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gfSAgLy8gSUUgNStcbiIsIkBpbXBvcnQgXCJ0eXBvZ3JhcGh5L2xpbmtzXCI7XG5AaW1wb3J0IFwidHlwb2dyYXBoeS9saXN0c1wiO1xuQGltcG9ydCBcInR5cG9ncmFwaHkvdGV4dFwiO1xuQGltcG9ydCBcInR5cG9ncmFwaHkvdmVydGljYWxfcmh5dGhtXCI7XG4iLCJAaW1wb3J0IFwiLi4vbGF5b3V0L2dyaWQtYmFja2dyb3VuZFwiO1xuXG4vLyBUaGUgYmFzZSBmb250IHNpemUuXG4kYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBiYXNlIGxpbmUgaGVpZ2h0IGRldGVybWluZXMgdGhlIGJhc2ljIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtLlxuJGJhc2UtbGluZS1oZWlnaHQ6IDI0cHggIWRlZmF1bHQ7XG5cbi8vIFNldCB0aGUgZGVmYXVsdCBib3JkZXIgc3R5bGUgZm9yIHJoeXRobSBib3JkZXJzLlxuJGRlZmF1bHQtcmh5dGhtLWJvcmRlci1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4kYnJvd3Nlci1kZWZhdWx0LWZvbnQtc2l6ZTogMTZweDtcblxuLy8gU2V0IHRvIGZhbHNlIGlmIHlvdSB3YW50IHRvIHVzZSBhYnNvbHV0ZSBwaXhlbHMgaW4gc2l6aW5nIHlvdXIgdHlwb2dyYXBoeS5cbiRyZWxhdGl2ZS1mb250LXNpemluZzogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gQWxsb3dzIHRoZSBgYWRqdXN0LWZvbnQtc2l6ZS10b2AgbWl4aW4gYW5kIHRoZSBgbGluZXMtZm9yLWZvbnQtc2l6ZWAgZnVuY3Rpb25cbi8vIHRvIHJvdW5kIHRoZSBsaW5lIGhlaWdodCB0byB0aGUgbmVhcmVzdCBoYWxmIGxpbmUgaGVpZ2h0IGluc3RlYWQgb2YgdGhlXG4vLyBuZWFyZXN0IGludGVncmFsIGxpbmUgaGVpZ2h0IHRvIGF2b2lkIGxhcmdlIHNwYWNpbmcgYmV0d2VlbiBsaW5lcy5cbiRyb3VuZC10by1uZWFyZXN0LWhhbGYtbGluZTogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIEVuc3VyZSB0aGVyZSBpcyBhdCBsZWFzdCB0aGlzIG1hbnkgcGl4ZWxzXG4vLyBvZiB2ZXJ0aWNhbCBwYWRkaW5nIGFib3ZlIGFuZCBiZWxvdyB0aGUgdGV4dC5cbiRtaW4tbGluZS1wYWRkaW5nOiAycHggIWRlZmF1bHQ7XG5cbi8vICRiYXNlLWZvbnQtc2l6ZSBidXQgaW4geW91ciBvdXRwdXQgdW5pdCBvZiBjaG9pY2UuXG4vLyBEZWZhdWx0cyB0byAxZW0gd2hlbiBgJHJlbGF0aXZlLWZvbnQtc2l6aW5nYCBpcyB0cnVlLlxuJGZvbnQtdW5pdDogaWYoJHJlbGF0aXZlLWZvbnQtc2l6aW5nLCAxZW0sICRiYXNlLWZvbnQtc2l6ZSkgIWRlZmF1bHQ7XG5cbi8vIFRoZSBiYXNpYyB1bml0IG9mIGZvbnQgcmh5dGhtLlxuJGJhc2Utcmh5dGhtLXVuaXQ6ICRiYXNlLWxpbmUtaGVpZ2h0IC8gJGJhc2UtZm9udC1zaXplICogJGZvbnQtdW5pdDtcblxuLy8gVGhlIGxlYWRlciBpcyB0aGUgYW1vdW50IG9mIHdoaXRlc3BhY2UgaW4gYSBsaW5lLlxuLy8gSXQgbWlnaHQgYmUgdXNlZnVsIGluIHlvdXIgY2FsY3VsYXRpb25zLlxuJGJhc2UtbGVhZGVyOiAoJGJhc2UtbGluZS1oZWlnaHQgLSAkYmFzZS1mb250LXNpemUpICogJGZvbnQtdW5pdCAvICRiYXNlLWZvbnQtc2l6ZTtcblxuLy8gVGhlIGhhbGYtbGVhZGVyIGlzIHRoZSBhbW91bnQgb2Ygd2hpdGVzcGFjZSBhYm92ZSBhbmQgYmVsb3cgYSBsaW5lLlxuLy8gSXQgbWlnaHQgYmUgdXNlZnVsIGluIHlvdXIgY2FsY3VsYXRpb25zLlxuJGJhc2UtaGFsZi1sZWFkZXI6ICRiYXNlLWxlYWRlciAvIDI7XG5cbi8vIFRydWUgaWYgYSBudW1iZXIgaGFzIGEgcmVsYXRpdmUgdW5pdC5cbkBmdW5jdGlvbiByZWxhdGl2ZS11bml0KCRudW1iZXIpIHtcbiAgQHJldHVybiB1bml0KCRudW1iZXIpID09IFwiJVwiIG9yIHVuaXQoJG51bWJlcikgPT0gXCJlbVwiIG9yIHVuaXQoJG51bWJlcikgPT0gXCJyZW1cIjsgfVxuXG4vLyBUcnVlIGlmIGEgbnVtYmVyIGhhcyBhbiBhYnNvbHV0ZSB1bml0LlxuQGZ1bmN0aW9uIGFic29sdXRlLXVuaXQoJG51bWJlcikge1xuICBAcmV0dXJuIG5vdCAocmVsYXRpdmUtdW5pdCgkbnVtYmVyKSBvciB1bml0bGVzcygkbnVtYmVyKSk7IH1cblxuQGlmICRyZWxhdGl2ZS1mb250LXNpemluZyBhbmQgbm90IHJlbGF0aXZlLXVuaXQoJGZvbnQtdW5pdCkge1xuICBAd2FybiBcIiRyZWxhdGl2ZS1mb250LXNpemluZyBpcyB0cnVlIGJ1dCAkZm9udC11bml0IGlzIHNldCB0byAjeyRmb250LXVuaXR9IHdoaWNoIGlzIG5vdCBhIHJlbGF0aXZlIHVuaXQuXCI7IH1cblxuLy8gRXN0YWJsaXNoZXMgYSBmb250IGJhc2VsaW5lIGZvciB0aGUgZ2l2ZW4gZm9udC1zaXplLlxuQG1peGluIGVzdGFibGlzaC1iYXNlbGluZSgkZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUpIHtcbiAgLy8gSUUgNiByZWZ1c2VzIHRvIHJlc2l6ZSBmb250cyBzZXQgaW4gcGl4ZWxzIGFuZCBpdCB3ZWlyZGx5IHJlc2l6ZXMgZm9udHNcbiAgLy8gd2hvc2Ugcm9vdCBpcyBzZXQgaW4gZW1zLiBTbyB3ZSBzZXQgdGhlIHJvb3QgZm9udCBzaXplIGluIHBlcmNlbnRhZ2VzIG9mXG4gIC8vIHRoZSBkZWZhdWx0IGZvbnQgc2l6ZS5cbiAgKiBodG1sIHtcbiAgICBmb250LXNpemU6IDEwMCUgKiAkZm9udC1zaXplIC8gJGJyb3dzZXItZGVmYXVsdC1mb250LXNpemU7IH1cbiAgaHRtbCB7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIEBpbmNsdWRlIGFkanVzdC1sZWFkaW5nLXRvKDEsIGlmKCRyZWxhdGl2ZS1mb250LXNpemluZywgJGZvbnQtc2l6ZSwgJGJhc2UtZm9udC1zaXplKSk7IH0gfVxuXG4vLyBSZXNldHMgdGhlIGxpbmUtaGVpZ2h0IHRvIDEgdmVydGljYWwgcmh5dGhtIHVuaXQuXG4vLyBEb2VzIG5vdCB3b3JrIG9uIGVsZW1lbnRzIHdob3NlIGZvbnQtc2l6ZSBpcyBkaWZmZXJlbnQgZnJvbSAkYmFzZS1mb250LXNpemUuXG4vL1xuLy8gQGRlcHJlY2F0ZWQgVGhpcyBtaXhpbiB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgcmVsZWFzZS5cbi8vIFBsZWFzZSB1c2UgdGhlIGBhZGp1c3QtbGVhZGluZy10b2AgbWl4aW4gaW5zdGVhZC5cbkBtaXhpbiByZXNldC1iYXNlbGluZSB7XG4gIEBpbmNsdWRlIGFkanVzdC1sZWFkaW5nLXRvKDEsIGlmKCRyZWxhdGl2ZS1mb250LXNpemluZywgJGJhc2UtZm9udC1zaXplLCAkYmFzZS1mb250LXNpemUpKTsgfVxuXG4vLyBTaG93IGEgYmFja2dyb3VuZCBpbWFnZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGRlYnVnIHlvdXIgYWxpZ25tZW50cy5cbi8vIEluY2x1ZGUgdGhlICRpbWcgYXJndW1lbnQgaWYgeW91IHdvdWxkIHJhdGhlciB1c2UgeW91ciBvd24gaW1hZ2UgdGhhbiB0aGVcbi8vIENvbXBhc3MgZGVmYXVsdCBncmFkaWVudCBpbWFnZS5cbkBtaXhpbiBkZWJ1Zy12ZXJ0aWNhbC1hbGlnbm1lbnQoJGltZzogZmFsc2UpIHtcbiAgQGlmICRpbWcge1xuICAgIGJhY2tncm91bmQ6IGltYWdlLXVybCgkaW1nKTsgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgYmFzZWxpbmUtZ3JpZC1iYWNrZ3JvdW5kKCRiYXNlLXJoeXRobS11bml0KTsgfSB9XG5cbi8vIEFkanVzdCBhIGJsb2NrIHRvIGhhdmUgYSBkaWZmZXJlbnQgZm9udCBzaXplIGFuZCBsaW5lIGhlaWdodCB0byBtYWludGFpbiB0aGVcbi8vIHJoeXRobS4gJGxpbmVzIHNwZWNpZmllcyBob3cgbWFueSBtdWx0aXBsZXMgb2YgdGhlIGJhc2VsaW5lIHJoeXRobSBlYWNoIGxpbmVcbi8vIG9mIHRoaXMgZm9udCBzaG91bGQgdXNlIHVwLiBJdCBkb2VzIG5vdCBoYXZlIHRvIGJlIGFuIGludGVnZXIsIGJ1dCBpdFxuLy8gZGVmYXVsdHMgdG8gdGhlIHNtYWxsZXN0IGludGVnZXIgdGhhdCBpcyBsYXJnZSBlbm91Z2ggdG8gZml0IHRoZSBmb250LlxuLy8gVXNlICRmcm9tLXNpemUgdG8gYWRqdXN0IGZyb20gYSBmb250LXNpemUgb3RoZXIgdGhhbiB0aGUgYmFzZSBmb250LXNpemUuXG5AbWl4aW4gYWRqdXN0LWZvbnQtc2l6ZS10bygkdG8tc2l6ZSwgJGxpbmVzOiBsaW5lcy1mb3ItZm9udC1zaXplKCR0by1zaXplKSwgJGZyb20tc2l6ZTogJGJhc2UtZm9udC1zaXplKSB7XG4gIEBpZiBub3QgJHJlbGF0aXZlLWZvbnQtc2l6aW5nIGFuZCAkZnJvbS1zaXplICE9ICRiYXNlLWZvbnQtc2l6ZSB7XG4gICAgQHdhcm4gXCIkcmVsYXRpdmUtZm9udC1zaXppbmcgaXMgZmFsc2UgYnV0IGEgcmVsYXRpdmUgZm9udCBzaXplIHdhcyBwYXNzZWQgdG8gYWRqdXN0LWZvbnQtc2l6ZS10b1wiOyB9XG4gIGZvbnQtc2l6ZTogJGZvbnQtdW5pdCAqICR0by1zaXplIC8gJGZyb20tc2l6ZTtcbiAgQGluY2x1ZGUgYWRqdXN0LWxlYWRpbmctdG8oJGxpbmVzLCBpZigkcmVsYXRpdmUtZm9udC1zaXppbmcsICR0by1zaXplLCAkYmFzZS1mb250LXNpemUpKTsgfVxuXG4vLyBBZGp1c3QgYSBibG9jayB0byBoYXZlIGRpZmZlcmVudCBsaW5lIGhlaWdodCB0byBtYWludGFpbiB0aGUgcmh5dGhtLlxuLy8gJGxpbmVzIHNwZWNpZmllcyBob3cgbWFueSBtdWx0aXBsZXMgb2YgdGhlIGJhc2VsaW5lIHJoeXRobSBlYWNoIGxpbmUgb2YgdGhpc1xuLy8gZm9udCBzaG91bGQgdXNlIHVwLiBJdCBkb2VzIG5vdCBoYXZlIHRvIGJlIGFuIGludGVnZXIsIGJ1dCBpdCBkZWZhdWx0cyB0byB0aGVcbi8vIHNtYWxsZXN0IGludGVnZXIgdGhhdCBpcyBsYXJnZSBlbm91Z2ggdG8gZml0IHRoZSBmb250LlxuQG1peGluIGFkanVzdC1sZWFkaW5nLXRvKCRsaW5lcywgJGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplKSB7XG4gIGxpbmUtaGVpZ2h0OiByaHl0aG0oJGxpbmVzLCAkZm9udC1zaXplKTsgfVxuXG4vLyBDYWxjdWxhdGUgcmh5dGhtIHVuaXRzLlxuQGZ1bmN0aW9uIHJoeXRobSgkbGluZXM6IDEsICRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSwgJG9mZnNldDogMCkge1xuICBAaWYgbm90ICRyZWxhdGl2ZS1mb250LXNpemluZyBhbmQgJGZvbnQtc2l6ZSAhPSAkYmFzZS1mb250LXNpemUge1xuICAgIEB3YXJuIFwiJHJlbGF0aXZlLWZvbnQtc2l6aW5nIGlzIGZhbHNlIGJ1dCBhIHJlbGF0aXZlIGZvbnQgc2l6ZSB3YXMgcGFzc2VkIHRvIHRoZSByaHl0aG0gZnVuY3Rpb25cIjsgfVxuICAkcmh5dGhtOiAkZm9udC11bml0ICogKCRsaW5lcyAqICRiYXNlLWxpbmUtaGVpZ2h0IC0gJG9mZnNldCkgLyAkZm9udC1zaXplO1xuICAvLyBSb3VuZCB0aGUgcGl4ZWxzIGRvd24gdG8gbmVhcmVzdCBpbnRlZ2VyLlxuICBAaWYgdW5pdCgkcmh5dGhtKSA9PSBweCB7XG4gICAgJHJoeXRobTogZmxvb3IoJHJoeXRobSk7IH1cbiAgQHJldHVybiAkcmh5dGhtOyB9XG5cbi8vIENhbGN1bGF0ZSB0aGUgbWluaW11bSBtdWx0aXBsZSBvZiByaHl0aG0gdW5pdHMgbmVlZGVkIHRvIGNvbnRhaW4gdGhlIGZvbnQtc2l6ZS5cbkBmdW5jdGlvbiBsaW5lcy1mb3ItZm9udC1zaXplKCRmb250LXNpemUpIHtcbiAgJGxpbmVzOiBpZigkcm91bmQtdG8tbmVhcmVzdC1oYWxmLWxpbmUsIGNlaWwoMiAqICRmb250LXNpemUgLyAkYmFzZS1saW5lLWhlaWdodCkgLyAyLCBjZWlsKCRmb250LXNpemUgLyAkYmFzZS1saW5lLWhlaWdodCkpO1xuICBAaWYgJGxpbmVzICogJGJhc2UtbGluZS1oZWlnaHQgLSAkZm9udC1zaXplIDwgJG1pbi1saW5lLXBhZGRpbmcgKiAyIHtcbiAgICAkbGluZXM6ICRsaW5lcyArIGlmKCRyb3VuZC10by1uZWFyZXN0LWhhbGYtbGluZSwgMC41LCAxKTsgfVxuICBAcmV0dXJuICRsaW5lczsgfVxuXG4vLyBBcHBseSBsZWFkaW5nIHdoaXRlc3BhY2UuIFRoZSAkcHJvcGVydHkgY2FuIGJlIG1hcmdpbiBvciBwYWRkaW5nLlxuQG1peGluIGxlYWRlcigkbGluZXM6IDEsICRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSwgJHByb3BlcnR5OiBtYXJnaW4pIHtcbiAgI3skcHJvcGVydHl9LXRvcDogcmh5dGhtKCRsaW5lcywgJGZvbnQtc2l6ZSk7IH1cblxuLy8gQXBwbHkgbGVhZGluZyB3aGl0ZXNwYWNlIGFzIHBhZGRpbmcuXG5AbWl4aW4gcGFkZGluZy1sZWFkZXIoJGxpbmVzOiAxLCAkZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUpIHtcbiAgcGFkZGluZy10b3A6IHJoeXRobSgkbGluZXMsICRmb250LXNpemUpOyB9XG5cbi8vIEFwcGx5IGxlYWRpbmcgd2hpdGVzcGFjZSBhcyBtYXJnaW4uXG5AbWl4aW4gbWFyZ2luLWxlYWRlcigkbGluZXM6IDEsICRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBtYXJnaW4tdG9wOiByaHl0aG0oJGxpbmVzLCAkZm9udC1zaXplKTsgfVxuXG4vLyBBcHBseSB0cmFpbGluZyB3aGl0ZXNwYWNlLiBUaGUgJHByb3BlcnR5IGNhbiBiZSBtYXJnaW4gb3IgcGFkZGluZy5cbkBtaXhpbiB0cmFpbGVyKCRsaW5lczogMSwgJGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplLCAkcHJvcGVydHk6IG1hcmdpbikge1xuICAjeyRwcm9wZXJ0eX0tYm90dG9tOiByaHl0aG0oJGxpbmVzLCAkZm9udC1zaXplKTsgfVxuXG4vLyBBcHBseSB0cmFpbGluZyB3aGl0ZXNwYWNlIGFzIHBhZGRpbmcuXG5AbWl4aW4gcGFkZGluZy10cmFpbGVyKCRsaW5lczogMSwgJGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplKSB7XG4gIHBhZGRpbmctYm90dG9tOiByaHl0aG0oJGxpbmVzLCAkZm9udC1zaXplKTsgfVxuXG4vLyBBcHBseSB0cmFpbGluZyB3aGl0ZXNwYWNlIGFzIG1hcmdpbi5cbkBtaXhpbiBtYXJnaW4tdHJhaWxlcigkbGluZXM6IDEsICRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSkge1xuICBtYXJnaW4tYm90dG9tOiByaHl0aG0oJGxpbmVzLCAkZm9udC1zaXplKTsgfVxuXG4vLyBTaG9ydGhhbmQgbWl4aW4gdG8gYXBwbHkgd2hpdGVzcGFjZSBmb3IgdG9wIGFuZCBib3R0b20gbWFyZ2lucyBhbmQgcGFkZGluZy5cbkBtaXhpbiByaHl0aG0oJGxlYWRlcjogMCwgJHBhZGRpbmctbGVhZGVyOiAwLCAkcGFkZGluZy10cmFpbGVyOiAwLCAkdHJhaWxlcjogMCwgJGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplKSB7XG4gIEBpbmNsdWRlIGxlYWRlcigkbGVhZGVyLCAkZm9udC1zaXplKTtcbiAgQGluY2x1ZGUgcGFkZGluZy1sZWFkZXIoJHBhZGRpbmctbGVhZGVyLCAkZm9udC1zaXplKTtcbiAgQGluY2x1ZGUgcGFkZGluZy10cmFpbGVyKCRwYWRkaW5nLXRyYWlsZXIsICRmb250LXNpemUpO1xuICBAaW5jbHVkZSB0cmFpbGVyKCR0cmFpbGVyLCAkZm9udC1zaXplKTsgfVxuXG4vLyBBcHBseSBhIGJvcmRlciBhbmQgd2hpdGVzcGFjZSB0byBhbnkgc2lkZSB3aXRob3V0IGRlc3Ryb3lpbmcgdGhlIHZlcnRpY2FsXG4vLyByaHl0aG0uIFRoZSB3aGl0ZXNwYWNlIG11c3QgYmUgZ3JlYXRlciB0aGFuIHRoZSB3aWR0aCBvZiB0aGUgYm9yZGVyLlxuQG1peGluIGFwcGx5LXNpZGUtcmh5dGhtLWJvcmRlcigkc2lkZSwgJHdpZHRoOiAxcHgsICRsaW5lczogMSwgJGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplLCAkYm9yZGVyLXN0eWxlOiAkZGVmYXVsdC1yaHl0aG0tYm9yZGVyLXN0eWxlKSB7XG4gIEBpZiBub3QgJHJlbGF0aXZlLWZvbnQtc2l6aW5nIGFuZCAkZm9udC1zaXplICE9ICRiYXNlLWZvbnQtc2l6ZSB7XG4gICAgQHdhcm4gXCIkcmVsYXRpdmUtZm9udC1zaXppbmcgaXMgZmFsc2UgYnV0IGEgcmVsYXRpdmUgZm9udCBzaXplIHdhcyBwYXNzZWQgdG8gYXBwbHktc2lkZS1yaHl0aG0tYm9yZGVyXCI7IH1cbiAgYm9yZGVyLSN7JHNpZGV9LXN0eWxlOiAkYm9yZGVyLXN0eWxlO1xuICBib3JkZXItI3skc2lkZX0td2lkdGg6ICRmb250LXVuaXQgKiAkd2lkdGggLyAkZm9udC1zaXplO1xuICBwYWRkaW5nLSN7JHNpZGV9OiByaHl0aG0oJGxpbmVzLCAkZm9udC1zaXplLCAkb2Zmc2V0OiAkd2lkdGgpOyB9XG5cbi8vIEFwcGx5IGJvcmRlcnMgYW5kIHdoaXRlc3BhY2UgZXF1YWxseSB0byBhbGwgc2lkZXMuXG5AbWl4aW4gcmh5dGhtLWJvcmRlcnMoJHdpZHRoOiAxcHgsICRsaW5lczogMSwgJGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplLCAkYm9yZGVyLXN0eWxlOiAkZGVmYXVsdC1yaHl0aG0tYm9yZGVyLXN0eWxlKSB7XG4gIEBpZiBub3QgJHJlbGF0aXZlLWZvbnQtc2l6aW5nIGFuZCAkZm9udC1zaXplICE9ICRiYXNlLWZvbnQtc2l6ZSB7XG4gICAgQHdhcm4gXCIkcmVsYXRpdmUtZm9udC1zaXppbmcgaXMgZmFsc2UgYnV0IGEgcmVsYXRpdmUgZm9udCBzaXplIHdhcyBwYXNzZWQgdG8gcmh5dGhtLWJvcmRlcnNcIjsgfVxuICBib3JkZXI6IHtcbiAgICBzdHlsZTogJGJvcmRlci1zdHlsZTtcbiAgICB3aWR0aDogJGZvbnQtdW5pdCAqICR3aWR0aCAvICRmb250LXNpemU7IH1cbiAgcGFkZGluZzogcmh5dGhtKCRsaW5lcywgJGZvbnQtc2l6ZSwgJG9mZnNldDogJHdpZHRoKTsgfVxuXG4vLyBBcHBseSBhIGxlYWRpbmcgYm9yZGVyLlxuQG1peGluIGxlYWRpbmctYm9yZGVyKCR3aWR0aDogMXB4LCAkbGluZXM6IDEsICRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSwgJGJvcmRlci1zdHlsZTogJGRlZmF1bHQtcmh5dGhtLWJvcmRlci1zdHlsZSkge1xuICBAaW5jbHVkZSBhcHBseS1zaWRlLXJoeXRobS1ib3JkZXIodG9wLCAkd2lkdGgsICRsaW5lcywgJGZvbnQtc2l6ZSwgJGJvcmRlci1zdHlsZSk7IH1cblxuLy8gQXBwbHkgYSB0cmFpbGluZyBib3JkZXIuXG5AbWl4aW4gdHJhaWxpbmctYm9yZGVyKCR3aWR0aDogMXB4LCAkbGluZXM6IDEsICRmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZSwgJGJvcmRlci1zdHlsZTogJGRlZmF1bHQtcmh5dGhtLWJvcmRlci1zdHlsZSkge1xuICBAaW5jbHVkZSBhcHBseS1zaWRlLXJoeXRobS1ib3JkZXIoYm90dG9tLCAkd2lkdGgsICRsaW5lcywgJGZvbnQtc2l6ZSwgJGJvcmRlci1zdHlsZSk7IH1cblxuLy8gQXBwbHkgYm90aCBsZWFkaW5nIGFuZCB0cmFpbGluZyBib3JkZXJzLlxuQG1peGluIGhvcml6b250YWwtYm9yZGVycygkd2lkdGg6IDFweCwgJGxpbmVzOiAxLCAkZm9udC1zaXplOiAkYmFzZS1mb250LXNpemUsICRib3JkZXItc3R5bGU6ICRkZWZhdWx0LXJoeXRobS1ib3JkZXItc3R5bGUpIHtcbiAgQGluY2x1ZGUgbGVhZGluZy1ib3JkZXIoJHdpZHRoLCAkbGluZXMsICRmb250LXNpemUsICRib3JkZXItc3R5bGUpO1xuICBAaW5jbHVkZSB0cmFpbGluZy1ib3JkZXIoJHdpZHRoLCAkbGluZXMsICRmb250LXNpemUsICRib3JkZXItc3R5bGUpOyB9XG5cbi8vIEFsaWFzIGZvciBgaG9yaXpvbnRhbC1ib3JkZXJzYCBtaXhpbi5cbkBtaXhpbiBoLWJvcmRlcnMoJHdpZHRoOiAxcHgsICRsaW5lczogMSwgJGZvbnQtc2l6ZTogJGJhc2UtZm9udC1zaXplLCAkYm9yZGVyLXN0eWxlOiAkZGVmYXVsdC1yaHl0aG0tYm9yZGVyLXN0eWxlKSB7XG4gIEBpbmNsdWRlIGhvcml6b250YWwtYm9yZGVycygkd2lkdGgsICRsaW5lcywgJGZvbnQtc2l6ZSwgJGJvcmRlci1zdHlsZSk7IH1cbiIsIkBpbXBvcnQgXCIuLi9jc3MzL2ltYWdlc1wiO1xuQGltcG9ydCBcIi4uL2NzczMvYmFja2dyb3VuZC1zaXplXCI7XG5cbi8vIFNldCB0aGUgY29sb3Igb2YgeW91ciBjb2x1bW5zXG4kZ3JpZC1iYWNrZ3JvdW5kLWNvbHVtbi1jb2xvcjogcmdiYSgxMDAsIDEwMCwgMjI1LCAwLjI1KSAhZGVmYXVsdDtcblxuLy8gU2V0IHRoZSBjb2xvciBvZiB5b3VyIGd1dHRlcnNcbiRncmlkLWJhY2tncm91bmQtZ3V0dGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApICFkZWZhdWx0O1xuXG4vLyBTZXQgdGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIGluIHlvdXIgZ3JpZFxuJGdyaWQtYmFja2dyb3VuZC10b3RhbC1jb2x1bW5zOiAyNCAhZGVmYXVsdDtcblxuLy8gU2V0IHRoZSB3aWR0aCBvZiB5b3VyIGNvbHVtbnNcbiRncmlkLWJhY2tncm91bmQtY29sdW1uLXdpZHRoOiAzMHB4ICFkZWZhdWx0O1xuXG4vLyBTZXQgdGhlIHdpZHRoIG9mIHlvdXIgZ3V0dGVyc1xuJGdyaWQtYmFja2dyb3VuZC1ndXR0ZXItd2lkdGg6IDEwcHggIWRlZmF1bHQ7XG5cbi8vIFNldCB0aGUgb2Zmc2V0LCBpZiB5b3VyIGNvbHVtbnMgYXJlIHBhZGRlZCBpbiBmcm9tIHRoZSBjb250YWluZXIgZWRnZVxuJGdyaWQtYmFja2dyb3VuZC1vZmZzZXQ6IDBweCAhZGVmYXVsdDtcblxuLy8gU2V0IHRoZSBjb2xvciBvZiB5b3VyIGJhc2VsaW5lXG4kZ3JpZC1iYWNrZ3JvdW5kLWJhc2VsaW5lLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSkgIWRlZmF1bHQ7XG5cbi8vIFNldCB0aGUgaGVpZ2h0IG9mIHlvdXIgYmFzZWxpbmUgZ3JpZFxuJGdyaWQtYmFja2dyb3VuZC1iYXNlbGluZS1oZWlnaHQ6IDEuNWVtICFkZWZhdWx0O1xuXG4vLyB0b2dnbGUgeW91ciBjb2x1bW5zIGdyaWRzIG9uIGFuZCBvZmZcbiRzaG93LWNvbHVtbi1ncmlkLWJhY2tncm91bmRzOiB0cnVlICFkZWZhdWx0O1xuXG4vLyB0b2dnbGUgeW91ciB2ZXJ0aWNhbCBncmlkcyBvbiBhbmQgb2ZmXG4kc2hvdy1iYXNlbGluZS1ncmlkLWJhY2tncm91bmRzOiB0cnVlICFkZWZhdWx0O1xuXG4vLyB0b2dnbGUgYWxsIHlvdXIgZ3JpZHMgb24gYW5kIG9mZlxuJHNob3ctZ3JpZC1iYWNrZ3JvdW5kczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gb3B0aW9uYWxseSBmb3JjZSB5b3VyIGdyaWQtaW1hZ2UgdG8gcmVtYWluIGZsdWlkXG4vLyBubyBtYXR0ZXIgd2hhdCB1bml0cyB5b3UgdXNlZCB0byBkZWNsYXJlZCB5b3VyIGdyaWQuXG4kZ3JpZC1iYWNrZ3JvdW5kLWZvcmNlLWZsdWlkOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gQ3JlYXRlIHRoZSBncmFkaWVudCBuZWVkZWQgZm9yIGJhc2VsaW5lIGdyaWRzXG5AZnVuY3Rpb24gZ2V0LWJhc2VsaW5lLWdyYWRpZW50KCRjb2xvcjogJGdyaWQtYmFja2dyb3VuZC1iYXNlbGluZS1jb2xvcikge1xuICAkZ3JhZGllbnQ6IGxpbmVhci1ncmFkaWVudChib3R0b20sICRjb2xvciA1JSwgcmdiYSgkY29sb3IsIDApIDUlKTtcbiAgQHJldHVybiAkZ3JhZGllbnQ7IH1cblxuLy8gQ3JlYXRlIHRoZSBjb2xvci1zdG9wcyBuZWVkZWQgZm9yIGhvcml6b250YWwgZ3JpZHNcbkBmdW5jdGlvbiBidWlsZC1ncmlkLWJhY2tncm91bmQoJHRvdGFsOiAkZ3JpZC1iYWNrZ3JvdW5kLXRvdGFsLWNvbHVtbnMsICRjb2x1bW46ICRncmlkLWJhY2tncm91bmQtY29sdW1uLXdpZHRoLCAkZ3V0dGVyOiAkZ3JpZC1iYWNrZ3JvdW5kLWd1dHRlci13aWR0aCwgJG9mZnNldDogJGdyaWQtYmFja2dyb3VuZC1vZmZzZXQsICRjb2x1bW4tY29sb3I6ICRncmlkLWJhY2tncm91bmQtY29sdW1uLWNvbG9yLCAkZ3V0dGVyLWNvbG9yOiAkZ3JpZC1iYWNrZ3JvdW5kLWd1dHRlci1jb2xvcikge1xuICAkZ3JpZDogY29tcGFjdCgpO1xuICAkZ3JpZDogYXBwZW5kKCRncmlkLCAkZ3V0dGVyLWNvbG9yICRvZmZzZXQsIGNvbW1hKTtcbiAgQGZvciAkaSBmcm9tIDAgdG8gJHRvdGFsIHtcbiAgICAvLyAkYSByZXByZXNlbnRzIHRoZSBzdGFydCBvZiB0aGlzIGNvbHVtbiwgaW5pdGlhbGx5IGVxdWFsIHRvIHRoZSBvZmZzZXRcbiAgICAkYTogJG9mZnNldDtcbiAgICBAaWYgJGkgPiAwIHtcbiAgICAgICRhOiAkYSArICgkY29sdW1uICsgJGd1dHRlcikgKiAkaTsgfVxuICAgIC8vICRnIHJlcHJlc2VudHMgdGhlIHN0YXJ0IG9mIHRoaXMgZ3V0dGVyLCBlcXVhbCB0byAkYSBwbHVzIG9uZSBjb2x1bW4td2lkdGhcbiAgICAkZzogJGEgKyAkY29sdW1uO1xuICAgIC8vICR6IHJlcHJlc2VudHMgdGhlIGVuZCBvZiBhIGd1dHRlciwgZXF1YWwgdG8gJGcgcGx1cyBvbmUgZ3V0dGVyLXdpZHRoXG4gICAgJHo6ICRnICsgJGd1dHRlcjtcbiAgICBAaWYgdW5pdCgkYSkgPT0gXCIlXCIgYW5kICRpID09ICR0b3RhbCAtIDEge1xuICAgICAgJHo6IDEwMCU7IH1cbiAgICAvLyBhbmQgd2UgYWRkIHRoaXMgY29sdW1uL2d1dHRlciBwYWlyIHRvIG91ciBncmlkXG4gICAgJGdyaWQ6IGpvaW4oJGdyaWQsICgkY29sdW1uLWNvbG9yICRhLCAkY29sdW1uLWNvbG9yICRnLCAkZ3V0dGVyLWNvbG9yICRnLCAkZ3V0dGVyLWNvbG9yICR6KSk7IH1cbiAgQHJldHVybiAkZ3JpZDsgfVxuXG4vLyBSZXR1cm4gdGhlIGdyYWRpZW50IG5lZWRlZCBmb3IgaG9yaXpvbnRhbCBncmlkc1xuQGZ1bmN0aW9uIGdldC1jb2x1bW4tZ3JhZGllbnQoJHRvdGFsOiAkZ3JpZC1iYWNrZ3JvdW5kLXRvdGFsLWNvbHVtbnMsICRjb2x1bW46ICRncmlkLWJhY2tncm91bmQtY29sdW1uLXdpZHRoLCAkZ3V0dGVyOiAkZ3JpZC1iYWNrZ3JvdW5kLWd1dHRlci13aWR0aCwgJG9mZnNldDogJGdyaWQtYmFja2dyb3VuZC1vZmZzZXQsICRjb2x1bW4tY29sb3I6ICRncmlkLWJhY2tncm91bmQtY29sdW1uLWNvbG9yLCAkZ3V0dGVyLWNvbG9yOiAkZ3JpZC1iYWNrZ3JvdW5kLWd1dHRlci1jb2xvciwgJGZvcmNlLWZsdWlkOiAkZ3JpZC1iYWNrZ3JvdW5kLWZvcmNlLWZsdWlkKSB7XG4gICRncmlkOiB1bnF1b3RlKFwiXCIpO1xuICAvLyBkb24ndCBmb3JjZSBmbHVpZCBncmlkcyB3aGVuIHRoZXkgYXJlIGFscmVhZHkgZmx1aWQuXG4gIEBpZiB1bml0KCRjb2x1bW4pID09IFwiJVwiIHtcbiAgICAkZm9yY2UtZmx1aWQ6IGZhbHNlOyB9XG4gIEBpZiAkZm9yY2UtZmx1aWQge1xuICAgICRncmlkOiBnZXQtY29sdW1uLWZsdWlkLWdyaWQoJHRvdGFsLCAkY29sdW1uLCAkZ3V0dGVyLCAkb2Zmc2V0LCAkY29sdW1uLWNvbG9yLCAkZ3V0dGVyLWNvbG9yKTsgfVxuICBAZWxzZSB7XG4gICAgJGdyaWQ6IGJ1aWxkLWdyaWQtYmFja2dyb3VuZCgkdG90YWwsICRjb2x1bW4sICRndXR0ZXIsICRvZmZzZXQsICRjb2x1bW4tY29sb3IsICRndXR0ZXItY29sb3IpOyB9XG4gIC8vIHJldHVybiB0aGUgaG9yaXpvbnRhbCBncmlkIGFzIGEgZ3JhZGllbnRcbiAgJGdyYWRpZW50OiBsaW5lYXItZ3JhZGllbnQobGVmdCwgJGdyaWQpO1xuICBAcmV0dXJuICRncmFkaWVudDsgfVxuXG4vLyBDb252ZXJ0IGEgZ3JpZCBmcm9tIGZpeGVkIHVuaXRzIGludG8gcGVyY2VudGFnZXMuXG5AZnVuY3Rpb24gZ2V0LWNvbHVtbi1mbHVpZC1ncmlkKCR0b3RhbDogJGdyaWQtYmFja2dyb3VuZC10b3RhbC1jb2x1bW5zLCAkY29sdW1uOiAkZ3JpZC1iYWNrZ3JvdW5kLWNvbHVtbi13aWR0aCwgJGd1dHRlcjogJGdyaWQtYmFja2dyb3VuZC1ndXR0ZXItd2lkdGgsICRvZmZzZXQ6ICRncmlkLWJhY2tncm91bmQtb2Zmc2V0LCAkY29sdW1uLWNvbG9yOiAkZ3JpZC1iYWNrZ3JvdW5kLWNvbHVtbi1jb2xvciwgJGd1dHRlci1jb2xvcjogJGdyaWQtYmFja2dyb3VuZC1ndXR0ZXItY29sb3IpIHtcbiAgJGNvbnRleHQ6ICRjb2x1bW4gKiAkdG90YWwgKyAkZ3V0dGVyICogKCR0b3RhbCAtIDEpICsgJG9mZnNldCAqIDI7XG4gICRvZmZzZXQ6ICRvZmZzZXQgLyAkY29udGV4dCAqIDEwMCU7XG4gICRjb2x1bW46ICRjb2x1bW4gLyAkY29udGV4dCAqIDEwMCU7XG4gICRndXR0ZXI6ICRndXR0ZXIgLyAkY29udGV4dCAqIDEwMCU7XG4gIC8vIHJldHVybiB0aGUgaG9yaXpvbnRhbCBncmlkIGFzIGEgc2V0IG9mIGNvbG9yLXN0b3BzXG4gICRncmlkOiBidWlsZC1ncmlkLWJhY2tncm91bmQoJHRvdGFsLCAkY29sdW1uLCAkZ3V0dGVyLCAkb2Zmc2V0LCAkY29sdW1uLWNvbG9yLCAkZ3V0dGVyLWNvbG9yKTtcbiAgQHJldHVybiAkZ3JpZDsgfVxuXG4vLyBBZGQganVzdCB0aGUgYmFzZWxpbmUgZ3JpZCB0byBhbiBlbGVtZW50J3MgYmFja2dyb3VuZFxuQG1peGluIGJhc2VsaW5lLWdyaWQtYmFja2dyb3VuZCgkYmFzZWxpbmU6ICRncmlkLWJhY2tncm91bmQtYmFzZWxpbmUtaGVpZ2h0LCAkY29sb3I6ICRncmlkLWJhY2tncm91bmQtYmFzZWxpbmUtY29sb3IpIHtcbiAgQGlmICRzaG93LWdyaWQtYmFja2dyb3VuZHMgYW5kICRzaG93LWJhc2VsaW5lLWdyaWQtYmFja2dyb3VuZHMge1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtaW1hZ2UoZ2V0LWJhc2VsaW5lLWdyYWRpZW50KCRjb2xvcikpO1xuICAgIEBpbmNsdWRlIGJhY2tncm91bmQtc2l6ZSgxMDAlICRiYXNlbGluZSk7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCB0b3A7IH0gfVxuXG4vLyBBZGQganVzdCB0aGUgaG9yaXpvbnRhbCBncmlkIHRvIGFuIGVsZW1lbnQncyBiYWNrZ3JvdW5kXG5AbWl4aW4gY29sdW1uLWdyaWQtYmFja2dyb3VuZCgkdG90YWw6ICRncmlkLWJhY2tncm91bmQtdG90YWwtY29sdW1ucywgJGNvbHVtbjogJGdyaWQtYmFja2dyb3VuZC1jb2x1bW4td2lkdGgsICRndXR0ZXI6ICRncmlkLWJhY2tncm91bmQtZ3V0dGVyLXdpZHRoLCAkb2Zmc2V0OiAkZ3JpZC1iYWNrZ3JvdW5kLW9mZnNldCwgJGNvbHVtbi1jb2xvcjogJGdyaWQtYmFja2dyb3VuZC1jb2x1bW4tY29sb3IsICRndXR0ZXItY29sb3I6ICRncmlkLWJhY2tncm91bmQtZ3V0dGVyLWNvbG9yLCAkZm9yY2UtZmx1aWQ6ICRncmlkLWJhY2tncm91bmQtZm9yY2UtZmx1aWQpIHtcbiAgQGlmICRzaG93LWdyaWQtYmFja2dyb3VuZHMgYW5kICRzaG93LWNvbHVtbi1ncmlkLWJhY2tncm91bmRzIHtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kLWltYWdlKGdldC1jb2x1bW4tZ3JhZGllbnQoJHRvdGFsLCAkY29sdW1uLCAkZ3V0dGVyLCAkb2Zmc2V0LCAkY29sdW1uLWNvbG9yLCAkZ3V0dGVyLWNvbG9yLCAkZm9yY2UtZmx1aWQpKTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IHRvcDsgfSB9XG5cbi8vIEFkZCBib3RoIGhvcml6b250YWwgYW5kIGJhc2VsaW5lIGdyaWRzIHRvIGFuIGVsZW1lbnQncyBiYWNrZ3JvdW5kXG5AbWl4aW4gZ3JpZC1iYWNrZ3JvdW5kKCR0b3RhbDogJGdyaWQtYmFja2dyb3VuZC10b3RhbC1jb2x1bW5zLCAkY29sdW1uOiAkZ3JpZC1iYWNrZ3JvdW5kLWNvbHVtbi13aWR0aCwgJGd1dHRlcjogJGdyaWQtYmFja2dyb3VuZC1ndXR0ZXItd2lkdGgsICRiYXNlbGluZTogJGdyaWQtYmFja2dyb3VuZC1iYXNlbGluZS1oZWlnaHQsICRvZmZzZXQ6ICRncmlkLWJhY2tncm91bmQtb2Zmc2V0LCAkY29sdW1uLWNvbG9yOiAkZ3JpZC1iYWNrZ3JvdW5kLWNvbHVtbi1jb2xvciwgJGd1dHRlci1jb2xvcjogJGdyaWQtYmFja2dyb3VuZC1ndXR0ZXItY29sb3IsICRiYXNlbGluZS1jb2xvcjogJGdyaWQtYmFja2dyb3VuZC1iYXNlbGluZS1jb2xvciwgJGZvcmNlLWZsdWlkOiAkZ3JpZC1iYWNrZ3JvdW5kLWZvcmNlLWZsdWlkKSB7XG4gIEBpZiAkc2hvdy1ncmlkLWJhY2tncm91bmRzIHtcbiAgICBAaWYgJHNob3ctYmFzZWxpbmUtZ3JpZC1iYWNrZ3JvdW5kcyBhbmQgJHNob3ctY29sdW1uLWdyaWQtYmFja2dyb3VuZHMge1xuICAgICAgQGluY2x1ZGUgYmFja2dyb3VuZC1pbWFnZShnZXQtYmFzZWxpbmUtZ3JhZGllbnQoJGJhc2VsaW5lLWNvbG9yKSwgZ2V0LWNvbHVtbi1ncmFkaWVudCgkdG90YWwsICRjb2x1bW4sICRndXR0ZXIsICRvZmZzZXQsICRjb2x1bW4tY29sb3IsICRndXR0ZXItY29sb3IsICRmb3JjZS1mbHVpZCkpO1xuICAgICAgQGluY2x1ZGUgYmFja2dyb3VuZC1zaXplKDEwMCUgJGJhc2VsaW5lLCBhdXRvKTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgdG9wOyB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgYmFzZWxpbmUtZ3JpZC1iYWNrZ3JvdW5kKCRiYXNlbGluZSwgJGJhc2VsaW5lLWNvbG9yKTtcbiAgICAgIEBpbmNsdWRlIGNvbHVtbi1ncmlkLWJhY2tncm91bmQoJHRvdGFsLCAkY29sdW1uLCAkZ3V0dGVyLCAkb2Zmc2V0LCAkY29sdW1uLWNvbG9yLCAkZ3V0dGVyLWNvbG9yLCAkZm9yY2UtZmx1aWQpOyB9IH0gfVxuIiwiQGltcG9ydCBcInNoYXJlZFwiO1xuQGltcG9ydCBcIi4uL3V0aWxpdGllcy9nZW5lcmFsL2hhY2tzXCI7XG5AaW1wb3J0IFwiLi4vZnVuY3Rpb25zXCI7XG5cbi8vIEJhY2tncm91bmQgcHJvcGVydHkgc3VwcG9ydCBmb3IgdmVuZG9yIHByZWZpeGluZyB3aXRoaW4gdmFsdWVzLlxuQG1peGluIGJhY2tncm91bmQoJGJhY2tncm91bmQtMSwgJGJhY2tncm91bmQtMjogZmFsc2UsICRiYWNrZ3JvdW5kLTM6IGZhbHNlLCAkYmFja2dyb3VuZC00OiBmYWxzZSwgJGJhY2tncm91bmQtNTogZmFsc2UsICRiYWNrZ3JvdW5kLTY6IGZhbHNlLCAkYmFja2dyb3VuZC03OiBmYWxzZSwgJGJhY2tncm91bmQtODogZmFsc2UsICRiYWNrZ3JvdW5kLTk6IGZhbHNlLCAkYmFja2dyb3VuZC0xMDogZmFsc2UpIHtcbiAgJGJhY2tncm91bmRzOiBjb21wYWN0KCRiYWNrZ3JvdW5kLTEsICRiYWNrZ3JvdW5kLTIsICRiYWNrZ3JvdW5kLTMsICRiYWNrZ3JvdW5kLTQsICRiYWNrZ3JvdW5kLTUsICRiYWNrZ3JvdW5kLTYsICRiYWNrZ3JvdW5kLTcsICRiYWNrZ3JvdW5kLTgsICRiYWNrZ3JvdW5kLTksICRiYWNrZ3JvdW5kLTEwKTtcbiAgJG11bHQtYmdzOiAtY29tcGFzcy1saXN0LXNpemUoJGJhY2tncm91bmRzKSA+IDE7XG4gICRhZGQtcGllLWJnOiBwcmVmaXhlZCgtcGllLCAkYmFja2dyb3VuZHMpIG9yICRtdWx0LWJncztcbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itc3ZnIGFuZCBwcmVmaXhlZCgtc3ZnLCAkYmFja2dyb3VuZHMpIHtcbiAgICBiYWNrZ3JvdW5kOiAtc3ZnKCRiYWNrZ3JvdW5kcyk7IH1cbiAgQGlmICRzdXBwb3J0LWZvci1vcmlnaW5hbC13ZWJraXQtZ3JhZGllbnRzIGFuZCBwcmVmaXhlZCgtb3dnLCAkYmFja2dyb3VuZHMpIHtcbiAgICBiYWNrZ3JvdW5kOiAtb3dnKCRiYWNrZ3JvdW5kcyk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0IGFuZCBwcmVmaXhlZCgtd2Via2l0LCAkYmFja2dyb3VuZHMpIHtcbiAgICBiYWNrZ3JvdW5kOiAtd2Via2l0KCRiYWNrZ3JvdW5kcyk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSBhbmQgcHJlZml4ZWQoLW1veiwgJGJhY2tncm91bmRzKSB7XG4gICAgYmFja2dyb3VuZDogLW1veigkYmFja2dyb3VuZHMpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhIGFuZCBwcmVmaXhlZCgtbywgJGJhY2tncm91bmRzKSB7XG4gICAgYmFja2dyb3VuZDogLW8oJGJhY2tncm91bmRzKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1waWUgYW5kICRhZGQtcGllLWJnIHtcbiAgICAtcGllLWJhY2tncm91bmQ6IC1waWUoJGJhY2tncm91bmRzKTsgfVxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZHM7IH1cblxuQG1peGluIGJhY2tncm91bmQtd2l0aC1jc3MyLWZhbGxiYWNrKCRiYWNrZ3JvdW5kLTEsICRiYWNrZ3JvdW5kLTI6IGZhbHNlLCAkYmFja2dyb3VuZC0zOiBmYWxzZSwgJGJhY2tncm91bmQtNDogZmFsc2UsICRiYWNrZ3JvdW5kLTU6IGZhbHNlLCAkYmFja2dyb3VuZC02OiBmYWxzZSwgJGJhY2tncm91bmQtNzogZmFsc2UsICRiYWNrZ3JvdW5kLTg6IGZhbHNlLCAkYmFja2dyb3VuZC05OiBmYWxzZSwgJGJhY2tncm91bmQtMTA6IGZhbHNlKSB7XG4gICRiYWNrZ3JvdW5kczogY29tcGFjdCgkYmFja2dyb3VuZC0xLCAkYmFja2dyb3VuZC0yLCAkYmFja2dyb3VuZC0zLCAkYmFja2dyb3VuZC00LCAkYmFja2dyb3VuZC01LCAkYmFja2dyb3VuZC02LCAkYmFja2dyb3VuZC03LCAkYmFja2dyb3VuZC04LCAkYmFja2dyb3VuZC05LCAkYmFja2dyb3VuZC0xMCk7XG4gICRtdWx0LWJnczogLWNvbXBhc3MtbGlzdC1zaXplKCRiYWNrZ3JvdW5kcykgPiAxO1xuICAkc2ltcGxlLWJhY2tncm91bmQ6IGlmKCRtdWx0LWJncyBvciBwcmVmaXhlZCgtY3NzMiwgJGJhY2tncm91bmRzKSwgLWNzczIoLWNvbXBhc3MtbnRoKCRiYWNrZ3JvdW5kcywgbGFzdCkpLCBmYWxzZSk7XG4gIEBpZiBub3QgYmxhbmsoJHNpbXBsZS1iYWNrZ3JvdW5kKSB7XG4gICAgYmFja2dyb3VuZDogJHNpbXBsZS1iYWNrZ3JvdW5kOyB9XG4gIEBpbmNsdWRlIGJhY2tncm91bmQoJGJhY2tncm91bmQtMSwgJGJhY2tncm91bmQtMiwgJGJhY2tncm91bmQtMywgJGJhY2tncm91bmQtNCwgJGJhY2tncm91bmQtNSwgJGJhY2tncm91bmQtNiwgJGJhY2tncm91bmQtNywgJGJhY2tncm91bmQtOCwgJGJhY2tncm91bmQtOSwgJGJhY2tncm91bmQtMTApOyB9XG5cbi8vIEJhY2tncm91bmQgaW1hZ2UgcHJvcGVydHkgc3VwcG9ydCBmb3IgdmVuZG9yIHByZWZpeGluZyB3aXRoaW4gdmFsdWVzLlxuQG1peGluIGJhY2tncm91bmQtaW1hZ2UoJGltYWdlLTEsICRpbWFnZS0yOiBmYWxzZSwgJGltYWdlLTM6IGZhbHNlLCAkaW1hZ2UtNDogZmFsc2UsICRpbWFnZS01OiBmYWxzZSwgJGltYWdlLTY6IGZhbHNlLCAkaW1hZ2UtNzogZmFsc2UsICRpbWFnZS04OiBmYWxzZSwgJGltYWdlLTk6IGZhbHNlLCAkaW1hZ2UtMTA6IGZhbHNlKSB7XG4gICRpbWFnZXM6IGNvbXBhY3QoJGltYWdlLTEsICRpbWFnZS0yLCAkaW1hZ2UtMywgJGltYWdlLTQsICRpbWFnZS01LCAkaW1hZ2UtNiwgJGltYWdlLTcsICRpbWFnZS04LCAkaW1hZ2UtOSwgJGltYWdlLTEwKTtcbiAgJGFkZC1waWUtYmc6IHByZWZpeGVkKC1waWUsICRpbWFnZXMpIG9yIC1jb21wYXNzLWxpc3Qtc2l6ZSgkaW1hZ2VzKSA+IDE7XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXN2ZyBhbmQgcHJlZml4ZWQoLXN2ZywgJGltYWdlcykge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1zdmcoJGltYWdlcyk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlOyB9XG4gIEBpZiAkc3VwcG9ydC1mb3Itb3JpZ2luYWwtd2Via2l0LWdyYWRpZW50cyBhbmQgcHJlZml4ZWQoLW93ZywgJGltYWdlcykge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vd2coJGltYWdlcyk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0IGFuZCBwcmVmaXhlZCgtd2Via2l0LCAkaW1hZ2VzKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdCgkaW1hZ2VzKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1tb3ppbGxhIGFuZCBwcmVmaXhlZCgtbW96LCAkaW1hZ2VzKSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1veigkaW1hZ2VzKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSBhbmQgcHJlZml4ZWQoLW8sICRpbWFnZXMpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbygkaW1hZ2VzKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1waWUgYW5kICRhZGQtcGllLWJnIHtcbiAgICBAd2FybiBcIlBJRSBkb2VzIG5vdCBzdXBwb3J0IGJhY2tncm91bmQtaW1hZ2UuIFVzZSBAaW5jbHVkZSBiYWNrZ3JvdW5kKCN7JGltYWdlc30pIGluc3RlYWQuXCI7IH1cbiAgYmFja2dyb3VuZC1pbWFnZTogJGltYWdlczsgfVxuXG4vLyBFbWl0IGEgSUUtU3BlY2lmaWMgZmlsdGVycyB0aGF0IHJlbmRlcnMgYSBzaW1wbGUgbGluZWFyIGdyYWRpZW50LlxuLy8gRm9yIHVzZSBpbiBJRSA2IC0gOC4gQmVzdCBwcmFjdGljZSB3b3VsZCBoYXZlIHlvdSBhcHBseSB0aGlzIHZpYSBhXG4vLyBjb25kaXRpb25hbCBJRSBzdHlsZXNoZWV0LCBidXQgaWYgeW91IG11c3QsIHlvdSBzaG91bGQgcGxhY2UgdGhpcyBiZWZvcmVcbi8vIGFueSBiYWNrZ3JvdW5kLWltYWdlIHByb3BlcnRpZXMgdGhhdCB5b3UgaGF2ZSBzcGVjaWZpZWQuXG4vL1xuLy8gRm9yIHRoZSBgJG9yaWVudGF0aW9uYCBwYXJhbWV0ZXIsIHlvdSBjYW4gcGFzcyBgdmVydGljYWxgIG9yIGBob3Jpem9udGFsYC5cbkBtaXhpbiBmaWx0ZXItZ3JhZGllbnQoJHN0YXJ0LWNvbG9yLCAkZW5kLWNvbG9yLCAkb3JpZW50YXRpb246IHZlcnRpY2FsKSB7XG4gIEBpbmNsdWRlIGhhcy1sYXlvdXQ7XG4gICRncmFkaWVudC10eXBlOiBpZigkb3JpZW50YXRpb24gPT0gdmVydGljYWwsIDAsIDEpO1xuICBAaWYgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTYgb3IgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTcgb3IgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTgge1xuICAgIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KGdyYWRpZW50VHlwZT0jeyRncmFkaWVudC10eXBlfSwgc3RhcnRDb2xvcnN0cj0nI3tpZS1oZXgtc3RyKCRzdGFydC1jb2xvcil9JywgZW5kQ29sb3JzdHI9JyN7aWUtaGV4LXN0cigkZW5kLWNvbG9yKX0nKTsgfSB9XG5cbi8vIEJvcmRlciBpbWFnZSBwcm9wZXJ0eSBzdXBwb3J0IGZvciB2ZW5kb3IgcHJlZml4aW5nIHByb3BlcnRpZXMgYW5kIHZhbHVlcy5cbkBtaXhpbiBib3JkZXItaW1hZ2UoJHZhbHVlKSB7XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEge1xuICAgIC1tb3otYm9yZGVyLWltYWdlOiAtbW96KHJlamVjdCgtY29tcGFzcy1saXN0KCR2YWx1ZSksIGZpbGwpKTsgfVxuICBAaWYgJHN1cHBvcnQtZm9yLW9yaWdpbmFsLXdlYmtpdC1ncmFkaWVudHMge1xuICAgIC13ZWJraXQtYm9yZGVyLWltYWdlOiAtb3dnKHJlamVjdCgtY29tcGFzcy1saXN0KCR2YWx1ZSksIGZpbGwpKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQge1xuICAgIC13ZWJraXQtYm9yZGVyLWltYWdlOiAtd2Via2l0KHJlamVjdCgtY29tcGFzcy1saXN0KCR2YWx1ZSksIGZpbGwpKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSB7XG4gICAgLW8tYm9yZGVyLWltYWdlOiAtbyhyZWplY3QoLWNvbXBhc3MtbGlzdCgkdmFsdWUpLCBmaWxsKSk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itc3ZnIHtcbiAgICBib3JkZXItaW1hZ2U6IC1zdmcocmVqZWN0KC1jb21wYXNzLWxpc3QoJHZhbHVlKSwgZmlsbCkpOyB9XG4gIGJvcmRlci1pbWFnZTogJHZhbHVlOyB9XG5cbi8vIExpc3Qgc3R5bGUgaW1hZ2UgcHJvcGVydHkgc3VwcG9ydCBmb3IgdmVuZG9yIHByZWZpeGluZyB3aXRoaW4gdmFsdWVzLlxuQG1peGluIGxpc3Qtc3R5bGUtaW1hZ2UoJGltYWdlKSB7XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEgYW5kIHByZWZpeGVkKC1tb3osICRpbWFnZSkge1xuICAgIGxpc3Qtc3R5bGUtaW1hZ2U6IC1tb3ooJGltYWdlKTsgfVxuICBAaWYgJHN1cHBvcnQtZm9yLW9yaWdpbmFsLXdlYmtpdC1ncmFkaWVudHMgYW5kIHByZWZpeGVkKC1vd2csICRpbWFnZSkge1xuICAgIGxpc3Qtc3R5bGUtaW1hZ2U6IC1vd2coJGltYWdlKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQgYW5kIHByZWZpeGVkKC13ZWJraXQsICRpbWFnZSkge1xuICAgIGxpc3Qtc3R5bGUtaW1hZ2U6IC13ZWJraXQoJGltYWdlKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1vcGVyYSBhbmQgcHJlZml4ZWQoLW8sICRpbWFnZSkge1xuICAgIGxpc3Qtc3R5bGUtaW1hZ2U6IC1vKCRpbWFnZSk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itc3ZnIGFuZCBwcmVmaXhlZCgtc3ZnLCAkaW1hZ2UpIHtcbiAgICBsaXN0LXN0eWxlLWltYWdlOiAtc3ZnKCRpbWFnZSk7IH1cbiAgbGlzdC1zdHlsZS1pbWFnZTogJGltYWdlOyB9XG5cbi8vIExpc3Qgc3R5bGUgcHJvcGVydHkgc3VwcG9ydCBmb3IgdmVuZG9yIHByZWZpeGluZyB3aXRoaW4gdmFsdWVzLlxuQG1peGluIGxpc3Qtc3R5bGUoJHZhbHVlKSB7XG4gICR2YWx1ZTogLWNvbXBhc3MtbGlzdCgkdmFsdWUpO1xuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1tb3ppbGxhIGFuZCBwcmVmaXhlZCgtbW96LCAkdmFsdWUpIHtcbiAgICBsaXN0LXN0eWxlLWltYWdlOiAtbW96KCR2YWx1ZSk7IH1cbiAgQGlmICRzdXBwb3J0LWZvci1vcmlnaW5hbC13ZWJraXQtZ3JhZGllbnRzIGFuZCBwcmVmaXhlZCgtb3dnLCAkdmFsdWUpIHtcbiAgICBsaXN0LXN0eWxlLWltYWdlOiAtb3dnKCR2YWx1ZSk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0IGFuZCBwcmVmaXhlZCgtd2Via2l0LCAkdmFsdWUpIHtcbiAgICBsaXN0LXN0eWxlLWltYWdlOiAtd2Via2l0KCR2YWx1ZSk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEgYW5kIHByZWZpeGVkKC1vLCAkdmFsdWUpIHtcbiAgICBsaXN0LXN0eWxlLWltYWdlOiAtbygkdmFsdWUpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXN2ZyBhbmQgcHJlZml4ZWQoLXN2ZywgJHZhbHVlKSB7XG4gICAgbGlzdC1zdHlsZS1pbWFnZTogLXN2ZygkdmFsdWUpOyB9XG4gIGxpc3Qtc3R5bGUtaW1hZ2U6ICR2YWx1ZTsgfVxuXG4vLyBjb250ZW50IHByb3BlcnR5IHN1cHBvcnQgZm9yIHZlbmRvciBwcmVmaXhpbmcgd2l0aGluIHZhbHVlcy5cbkBtaXhpbiBjb250ZW50KCR2YWx1ZSkge1xuICAkdmFsdWU6IC1jb21wYXNzLWxpc3QoJHZhbHVlKTtcbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSBhbmQgcHJlZml4ZWQoLW1veiwgJHZhbHVlKSB7XG4gICAgY29udGVudDogLW1veigkdmFsdWUpOyB9XG4gIEBpZiAkc3VwcG9ydC1mb3Itb3JpZ2luYWwtd2Via2l0LWdyYWRpZW50cyBhbmQgcHJlZml4ZWQoLW93ZywgJHZhbHVlKSB7XG4gICAgY29udGVudDogLW93ZygkdmFsdWUpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCBhbmQgcHJlZml4ZWQoLXdlYmtpdCwgJHZhbHVlKSB7XG4gICAgY29udGVudDogLXdlYmtpdCgkdmFsdWUpOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhIGFuZCBwcmVmaXhlZCgtbywgJHZhbHVlKSB7XG4gICAgY29udGVudDogLW8oJHZhbHVlKTsgfVxuICBAaWYgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1zdmcgYW5kIHByZWZpeGVkKC1zdmcsICR2YWx1ZSkge1xuICAgIGNvbnRlbnQ6IC1zdmcoJHZhbHVlKTsgfVxuICBjb250ZW50OiAkdmFsdWU7IH1cbiIsIkBpbXBvcnQgXCJzaGFyZWRcIjtcblxuLy8gIG92ZXJyaWRlIHRvIGNoYW5nZSB0aGUgZGVmYXVsdFxuJGRlZmF1bHQtYmFja2dyb3VuZC1zaXplOiAxMDAlIGF1dG8gIWRlZmF1bHQ7XG5cbi8vIFNldCB0aGUgc2l6ZSBvZiBiYWNrZ3JvdW5kIGltYWdlcyB1c2luZyBweCwgd2lkdGggYW5kIGhlaWdodCwgb3IgcGVyY2VudGFnZXMuXG4vLyBDdXJyZW50bHkgc3VwcG9ydGVkIGluOiBPcGVyYSwgR2Vja28sIFdlYmtpdC5cbi8vXG4vLyAqIHBlcmNlbnRhZ2VzIGFyZSByZWxhdGl2ZSB0byB0aGUgYmFja2dyb3VuZC1vcmlnaW4gKGRlZmF1bHQgPSBwYWRkaW5nLWJveClcbi8vICogbWl4aW4gZGVmYXVsdHMgdG86IGAkZGVmYXVsdC1iYWNrZ3JvdW5kLXNpemVgXG5AbWl4aW4gYmFja2dyb3VuZC1zaXplKCRzaXplLTE6ICRkZWZhdWx0LWJhY2tncm91bmQtc2l6ZSwgJHNpemUtMjogZmFsc2UsICRzaXplLTM6IGZhbHNlLCAkc2l6ZS00OiBmYWxzZSwgJHNpemUtNTogZmFsc2UsICRzaXplLTY6IGZhbHNlLCAkc2l6ZS03OiBmYWxzZSwgJHNpemUtODogZmFsc2UsICRzaXplLTk6IGZhbHNlLCAkc2l6ZS0xMDogZmFsc2UpIHtcbiAgJHNpemUtMTogaWYodHlwZS1vZigkc2l6ZS0xKSA9PSBzdHJpbmcsIHVucXVvdGUoJHNpemUtMSksICRzaXplLTEpO1xuICAkc2l6ZXM6IGNvbXBhY3QoJHNpemUtMSwgJHNpemUtMiwgJHNpemUtMywgJHNpemUtNCwgJHNpemUtNSwgJHNpemUtNiwgJHNpemUtNywgJHNpemUtOCwgJHNpemUtOSwgJHNpemUtMTApO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoYmFja2dyb3VuZC1zaXplLCAkc2l6ZXMsIC1tb3osIC13ZWJraXQsIC1vLCBub3QgLW1zLCBub3QgLWtodG1sKTsgfVxuIiwiQGltcG9ydCBcImNzczMvYm9yZGVyLXJhZGl1c1wiO1xuQGltcG9ydCBcImNzczMvaW5saW5lLWJsb2NrXCI7XG5AaW1wb3J0IFwiY3NzMy9vcGFjaXR5XCI7XG5AaW1wb3J0IFwiY3NzMy9ib3gtc2hhZG93XCI7XG5AaW1wb3J0IFwiY3NzMy90ZXh0LXNoYWRvd1wiO1xuQGltcG9ydCBcImNzczMvY29sdW1uc1wiO1xuQGltcG9ydCBcImNzczMvYm94LXNpemluZ1wiO1xuQGltcG9ydCBcImNzczMvYm94XCI7XG5AaW1wb3J0IFwiY3NzMy9pbWFnZXNcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmQtY2xpcFwiO1xuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZC1vcmlnaW5cIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmQtc2l6ZVwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mYWNlXCI7XG5AaW1wb3J0IFwiY3NzMy90cmFuc2Zvcm1cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zaXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL2FwcGVhcmFuY2VcIjtcbkBpbXBvcnQgXCJjc3MzL3JlZ2lvbnNcIjtcbkBpbXBvcnQgXCJjc3MzL2h5cGhlbmF0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy9maWx0ZXJcIjtcbkBpbXBvcnQgXCJjc3MzL3BpZVwiO1xuQGltcG9ydCBcImNzczMvdXNlci1pbnRlcmZhY2VcIjtcbkBpbXBvcnQgXCJjc3MzL2ZsZXhib3hcIjtcbiIsIkBpbXBvcnQgXCJzaGFyZWRcIjtcblxuJGRlZmF1bHQtYm9yZGVyLXJhZGl1czogNXB4ICFkZWZhdWx0O1xuXG4vLyBSb3VuZCBhbGwgY29ybmVycyBieSBhIHNwZWNpZmljIGFtb3VudCwgZGVmYXVsdHMgdG8gdmFsdWUgb2YgYCRkZWZhdWx0LWJvcmRlci1yYWRpdXNgLlxuLy9cbi8vIFdoZW4gdHdvIHZhbHVlcyBhcmUgcGFzc2VkLCB0aGUgZmlyc3QgaXMgdGhlIGhvcml6b250YWwgcmFkaXVzXG4vLyBhbmQgdGhlIHNlY29uZCBpcyB0aGUgdmVydGljYWwgcmFkaXVzLlxuLy9cbi8vIE5vdGU6IHdlYmtpdCBkb2VzIG5vdCBzdXBwb3J0IHNob3J0aGFuZCBzeW50YXggZm9yIHNldmVyYWwgY29ybmVycyBhdCBvbmNlLlxuLy8gU28gaW4gdGhlIGNhc2Ugd2hlcmUgeW91IHBhc3Mgc2V2ZXJhbCB2YWx1ZXMgb25seSB0aGUgZmlyc3Qgd2lsbCBiZSBwYXNzZWQgdG8gd2Via2l0LlxuLy9cbi8vIEV4YW1wbGVzOlxuLy9cbi8vICAgICAuc2ltcGxlICAgeyBAaW5jbHVkZSBib3JkZXItcmFkaXVzKDRweCwgNHB4KTsgfVxuLy8gICAgIC5jb21wb3VuZCB7IEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMnB4IDVweCwgM3B4IDZweCk7IH1cbi8vICAgICAuY3JhenkgICAgeyBAaW5jbHVkZSBib3JkZXItcmFkaXVzKDFweCAzcHggNXB4IDdweCwgMnB4IDRweCA2cHggOHB4KX1cbi8vXG4vLyBXaGljaCBnZW5lcmF0ZXM6XG4vL1xuLy8gICAgLnNpbXBsZSB7XG4vLyAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNHB4IDRweDtcbi8vICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiA0cHggLyA0cHg7XG4vLyAgICAgIC1raHRtbC1ib3JkZXItcmFkaXVzOiA0cHggLyA0cHg7XG4vLyAgICAgIGJvcmRlci1yYWRpdXM6IDRweCAvIDRweDsgfVxuLy9cbi8vICAgIC5jb21wb3VuZCB7XG4vLyAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4IDNweDtcbi8vICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAycHggNXB4IC8gM3B4IDZweDtcbi8vICAgICAgLWtodG1sLWJvcmRlci1yYWRpdXM6IDJweCA1cHggLyAzcHggNnB4O1xuLy8gICAgICBib3JkZXItcmFkaXVzOiAycHggNXB4IC8gM3B4IDZweDsgfVxuLy9cbi8vICAgIC5jcmF6eSB7XG4vLyAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMXB4IDJweDtcbi8vICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxcHggM3B4IDVweCA3cHggLyAycHggNHB4IDZweCA4cHg7XG4vLyAgICAgIC1raHRtbC1ib3JkZXItcmFkaXVzOiAxcHggM3B4IDVweCA3cHggLyAycHggNHB4IDZweCA4cHg7XG4vLyAgICAgIGJvcmRlci1yYWRpdXM6IDFweCAzcHggNXB4IDdweCAvIDJweCA0cHggNnB4IDhweDsgfVxuXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzLCAkdmVydGljYWwtcmFkaXVzOiBmYWxzZSkge1xuICBAaWYgJHZlcnRpY2FsLXJhZGl1cyB7XG4gICAgLy8gV2Via2l0IGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGUgb2ZmaWNpYWwgc2hvcnRoYW5kIHN5bnRheCBmb3Igc3BlY2lmeWluZ1xuICAgIC8vIGEgdmVydGljYWwgcmFkaXVzIHVubGVzcyBzbyBpbiBjYXNlIHRoZXJlJ3Mgc2V2ZXJhbCB3ZSBvbmx5IHRha2UgdGhlIGZpcnN0LlxuICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChib3JkZXItcmFkaXVzLCBmaXJzdC12YWx1ZS1vZigkcmFkaXVzKSBmaXJzdC12YWx1ZS1vZigkdmVydGljYWwtcmFkaXVzKSwgbm90IC1tb3osIC13ZWJraXQsIG5vdCAtbywgbm90IC1tcywgbm90IC1raHRtbCwgbm90IG9mZmljaWFsKTtcbiAgICBAaW5jbHVkZSBleHBlcmltZW50YWwoXCJib3JkZXItcmFkaXVzXCIsICRyYWRpdXMgdW5xdW90ZShcIi9cIikgJHZlcnRpY2FsLXJhZGl1cywgLW1veiwgbm90IC13ZWJraXQsIG5vdCAtbywgbm90IC1tcywgLWtodG1sLCBvZmZpY2lhbCk7IH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChib3JkZXItcmFkaXVzLCAkcmFkaXVzKTsgfSB9XG5cbi8vIFJvdW5kIHJhZGl1cyBhdCBwb3NpdGlvbiBieSBhbW91bnQuXG4vL1xuLy8gKiBsZWdhbCB2YWx1ZXMgZm9yIGAkdmVydGA6IGB0b3BgLCBgYm90dG9tYFxuLy8gKiBsZWdhbCB2YWx1ZXMgZm9yIGAkaG9yemA6IGBsZWZ0YCwgYHJpZ2h0YFxuXG5AbWl4aW4gYm9yZGVyLWNvcm5lci1yYWRpdXMoJHZlcnQsICRob3J6LCAkcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzKSB7XG4gIC8vIFN1cHBvcnQgZm9yIG1vemlsbGEncyBzeW50YXggZm9yIHNwZWNpZnlpbmcgYSBjb3JuZXJcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKHVucXVvdGUoXCJib3JkZXItcmFkaXVzLSN7JHZlcnR9I3skaG9yen1cIiksICRyYWRpdXMsIC1tb3osIG5vdCAtd2Via2l0LCBub3QgLW8sIG5vdCAtbXMsIG5vdCAta2h0bWwsIG5vdCBvZmZpY2lhbCk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChcImJvcmRlci0jeyR2ZXJ0fS0jeyRob3J6fS1yYWRpdXNcIiwgJHJhZGl1cywgbm90IC1tb3osIC13ZWJraXQsIG5vdCAtbywgbm90IC1tcywgLWtodG1sLCBvZmZpY2lhbCk7IH1cblxuLy8gUm91bmQgdG9wLWxlZnQgY29ybmVyIG9ubHlcblxuQG1peGluIGJvcmRlci10b3AtbGVmdC1yYWRpdXMoJHJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cykge1xuICBAaW5jbHVkZSBib3JkZXItY29ybmVyLXJhZGl1cyh0b3AsIGxlZnQsICRyYWRpdXMpOyB9XG5cbi8vIFJvdW5kIHRvcC1yaWdodCBjb3JuZXIgb25seVxuXG5AbWl4aW4gYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMoJHJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cykge1xuICBAaW5jbHVkZSBib3JkZXItY29ybmVyLXJhZGl1cyh0b3AsIHJpZ2h0LCAkcmFkaXVzKTsgfVxuXG4vLyBSb3VuZCBib3R0b20tbGVmdCBjb3JuZXIgb25seVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cygkcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzKSB7XG4gIEBpbmNsdWRlIGJvcmRlci1jb3JuZXItcmFkaXVzKGJvdHRvbSwgbGVmdCwgJHJhZGl1cyk7IH1cblxuLy8gUm91bmQgYm90dG9tLXJpZ2h0IGNvcm5lciBvbmx5XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cygkcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzKSB7XG4gIEBpbmNsdWRlIGJvcmRlci1jb3JuZXItcmFkaXVzKGJvdHRvbSwgcmlnaHQsICRyYWRpdXMpOyB9XG5cbi8vIFJvdW5kIGJvdGggdG9wIGNvcm5lcnMgYnkgYW1vdW50XG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cykge1xuICBAaW5jbHVkZSBib3JkZXItdG9wLWxlZnQtcmFkaXVzKCRyYWRpdXMpO1xuICBAaW5jbHVkZSBib3JkZXItdG9wLXJpZ2h0LXJhZGl1cygkcmFkaXVzKTsgfVxuXG4vLyBSb3VuZCBib3RoIHJpZ2h0IGNvcm5lcnMgYnkgYW1vdW50XG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzKSB7XG4gIEBpbmNsdWRlIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzKCRyYWRpdXMpO1xuICBAaW5jbHVkZSBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cygkcmFkaXVzKTsgfVxuXG4vLyBSb3VuZCBib3RoIGJvdHRvbSBjb3JuZXJzIGJ5IGFtb3VudFxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXMpIHtcbiAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cygkcmFkaXVzKTtcbiAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMoJHJhZGl1cyk7IH1cblxuLy8gUm91bmQgYm90aCBsZWZ0IGNvcm5lcnMgYnkgYW1vdW50XG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXMpIHtcbiAgQGluY2x1ZGUgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cygkcmFkaXVzKTtcbiAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cygkcmFkaXVzKTsgfVxuIiwiQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBQcm92aWRlcyBjcm9zcy1icm93c2VyIENTUyBvcGFjaXR5LiBUYWtlcyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEgYXMgdGhlIGFyZ3VtZW50LCBlLmcuIDAuNSBmb3IgNTAlIG9wYWNpdHkuXG4vL1xuLy8gICAgIEBwYXJhbSAkb3BhY2l0eVxuLy8gICAgICAgICBBIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEsIHdoZXJlIDAgaXMgdHJhbnNwYXJlbnQgYW5kIDEgaXMgb3BhcXVlLlxuXG5AbWl4aW4gb3BhY2l0eSgkb3BhY2l0eSkge1xuICBAaWYgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTYgb3IgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTcgb3IgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTgge1xuICAgIGZpbHRlcjogdW5xdW90ZShcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PSN7cm91bmQoJG9wYWNpdHkgKiAxMDApfSlcIik7IH1cbiAgb3BhY2l0eTogJG9wYWNpdHk7IH1cblxuLy8gTWFrZSBhbiBlbGVtZW50IGNvbXBsZXRlbHkgdHJhbnNwYXJlbnQuXG5AbWl4aW4gdHJhbnNwYXJlbnQge1xuICBAaW5jbHVkZSBvcGFjaXR5KDApOyB9XG5cbi8vIE1ha2UgYW4gZWxlbWVudCBjb21wbGV0ZWx5IG9wYXF1ZS5cbkBtaXhpbiBvcGFxdWUge1xuICBAaW5jbHVkZSBvcGFjaXR5KDEpOyB9XG4iLCIvLyBAZG9jIG9mZlxuLy8gVGhlc2UgZGVmYXVsdHMgbWFrZSB0aGUgYXJndW1lbnRzIG9wdGlvbmFsIGZvciB0aGlzIG1peGluXG4vLyBJZiB5b3UgbGlrZSwgc2V0IGRpZmZlcmVudCBkZWZhdWx0cyBiZWZvcmUgaW1wb3J0aW5nLlxuLy8gQGRvYyBvblxuXG5AaW1wb3J0IFwic2hhcmVkXCI7XG5cbi8vIFRoZSBkZWZhdWx0IGNvbG9yIGZvciBib3ggc2hhZG93c1xuJGRlZmF1bHQtYm94LXNoYWRvdy1jb2xvcjogIzMzMzMzMyAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgaG9yaXpvbnRhbCBvZmZzZXQuIFBvc2l0aXZlIGlzIHRvIHRoZSByaWdodC5cbiRkZWZhdWx0LWJveC1zaGFkb3ctaC1vZmZzZXQ6IDBweCAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgdmVydGljYWwgb2Zmc2V0LiBQb3NpdGl2ZSBpcyBkb3duLlxuJGRlZmF1bHQtYm94LXNoYWRvdy12LW9mZnNldDogMHB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBibHVyIGxlbmd0aC5cbiRkZWZhdWx0LWJveC1zaGFkb3ctYmx1cjogNXB4ICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBzcHJlYWQgbGVuZ3RoLlxuJGRlZmF1bHQtYm94LXNoYWRvdy1zcHJlYWQ6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBzaGFkb3cgaW5zZXQ6IGluc2V0IG9yIGZhbHNlIChmb3Igc3RhbmRhcmQgc2hhZG93KS5cbiRkZWZhdWx0LWJveC1zaGFkb3ctaW5zZXQ6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBQcm92aWRlcyBjcm9zcy1icm93c2VyIGZvciBXZWJraXQsIEdlY2tvLCBhbmQgQ1NTMyBib3ggc2hhZG93cyB3aGVuIG9uZSBvciBtb3JlIGJveFxuLy8gc2hhZG93cyBhcmUgbmVlZGVkLlxuLy8gRWFjaCBzaGFkb3cgYXJndW1lbnQgc2hvdWxkIGFkaGVyZSB0byB0aGUgc3RhbmRhcmQgY3NzMyBzeW50YXggZm9yIHRoZVxuLy8gYm94LXNoYWRvdyBwcm9wZXJ0eS5cbkBtaXhpbiBib3gtc2hhZG93KCRzaGFkb3ctMTogZGVmYXVsdCwgJHNoYWRvdy0yOiBmYWxzZSwgJHNoYWRvdy0zOiBmYWxzZSwgJHNoYWRvdy00OiBmYWxzZSwgJHNoYWRvdy01OiBmYWxzZSwgJHNoYWRvdy02OiBmYWxzZSwgJHNoYWRvdy03OiBmYWxzZSwgJHNoYWRvdy04OiBmYWxzZSwgJHNoYWRvdy05OiBmYWxzZSwgJHNoYWRvdy0xMDogZmFsc2UpIHtcbiAgQGlmICRzaGFkb3ctMSA9PSBkZWZhdWx0IHtcbiAgICAkc2hhZG93LTE6IC1jb21wYXNzLXNwYWNlLWxpc3QoY29tcGFjdChpZigkZGVmYXVsdC1ib3gtc2hhZG93LWluc2V0LCBpbnNldCwgZmFsc2UpLCAkZGVmYXVsdC1ib3gtc2hhZG93LWgtb2Zmc2V0LCAkZGVmYXVsdC1ib3gtc2hhZG93LXYtb2Zmc2V0LCAkZGVmYXVsdC1ib3gtc2hhZG93LWJsdXIsICRkZWZhdWx0LWJveC1zaGFkb3ctc3ByZWFkLCAkZGVmYXVsdC1ib3gtc2hhZG93LWNvbG9yKSk7IH1cbiAgJHNoYWRvdzogY29tcGFjdCgkc2hhZG93LTEsICRzaGFkb3ctMiwgJHNoYWRvdy0zLCAkc2hhZG93LTQsICRzaGFkb3ctNSwgJHNoYWRvdy02LCAkc2hhZG93LTcsICRzaGFkb3ctOCwgJHNoYWRvdy05LCAkc2hhZG93LTEwKTtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGJveC1zaGFkb3csICRzaGFkb3csIC1tb3osIC13ZWJraXQsIG5vdCAtbywgbm90IC1tcywgbm90IC1raHRtbCwgb2ZmaWNpYWwpOyB9XG5cbi8vIFByb3ZpZGVzIGEgc2luZ2xlIGNyb3NzLWJyb3dzZXIgQ1NTIGJveCBzaGFkb3cgZm9yIFdlYmtpdCwgR2Vja28sIGFuZCBDU1MzLlxuLy8gSW5jbHVkZXMgZGVmYXVsdCBhcmd1bWVudHMgZm9yIGhvcml6b250YWwgb2Zmc2V0LCB2ZXJ0aWNhbCBvZmZzZXQsIGJsdXIgbGVuZ3RoLCBzcHJlYWQgbGVuZ3RoLCBjb2xvciBhbmQgaW5zZXQuXG5AbWl4aW4gc2luZ2xlLWJveC1zaGFkb3coJGhvZmY6ICRkZWZhdWx0LWJveC1zaGFkb3ctaC1vZmZzZXQsICR2b2ZmOiAkZGVmYXVsdC1ib3gtc2hhZG93LXYtb2Zmc2V0LCAkYmx1cjogJGRlZmF1bHQtYm94LXNoYWRvdy1ibHVyLCAkc3ByZWFkOiAkZGVmYXVsdC1ib3gtc2hhZG93LXNwcmVhZCwgJGNvbG9yOiAkZGVmYXVsdC1ib3gtc2hhZG93LWNvbG9yLCAkaW5zZXQ6ICRkZWZhdWx0LWJveC1zaGFkb3ctaW5zZXQpIHtcbiAgQGlmIG5vdCAoJGluc2V0ID09IHRydWUgb3IgJGluc2V0ID09IGZhbHNlIG9yICRpbnNldCA9PSBpbnNldCkge1xuICAgIEB3YXJuIFwiJGluc2V0IGV4cGVjdGVkIHRvIGJlIHRydWUgb3IgdGhlIGluc2V0IGtleXdvcmQuIEdvdCAjeyRpbnNldH0gaW5zdGVhZC4gVXNpbmc6IGluc2V0XCI7IH1cbiAgQGlmICRjb2xvciA9PSBub25lIHtcbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KG5vbmUpOyB9XG4gIEBlbHNlIHtcbiAgICAkZnVsbDogJGhvZmYgJHZvZmY7XG4gICAgQGlmICRibHVyIHtcbiAgICAgICRmdWxsOiAkZnVsbCAkYmx1cjsgfVxuICAgIEBpZiAkc3ByZWFkIHtcbiAgICAgICRmdWxsOiAkZnVsbCAkc3ByZWFkOyB9XG4gICAgQGlmICRjb2xvciB7XG4gICAgICAkZnVsbDogJGZ1bGwgJGNvbG9yOyB9XG4gICAgQGlmICRpbnNldCB7XG4gICAgICAkZnVsbDogaW5zZXQgJGZ1bGw7IH1cbiAgICBAaW5jbHVkZSBib3gtc2hhZG93KCRmdWxsKTsgfSB9XG4iLCJAaW1wb3J0IFwic2hhcmVkXCI7XG5cbi8vIFRoZXNlIGRlZmF1bHRzIG1ha2UgdGhlIGFyZ3VtZW50cyBvcHRpb25hbCBmb3IgdGhpcyBtaXhpblxuLy8gSWYgeW91IGxpa2UsIHNldCBkaWZmZXJlbnQgZGVmYXVsdHMgaW4geW91ciBwcm9qZWN0XG5cbiRkZWZhdWx0LXRleHQtc2hhZG93LWNvbG9yOiAjYWFhICFkZWZhdWx0O1xuJGRlZmF1bHQtdGV4dC1zaGFkb3ctaC1vZmZzZXQ6IDBweCAhZGVmYXVsdDtcbiRkZWZhdWx0LXRleHQtc2hhZG93LXYtb2Zmc2V0OiAwcHggIWRlZmF1bHQ7XG4kZGVmYXVsdC10ZXh0LXNoYWRvdy1ibHVyOiAxcHggIWRlZmF1bHQ7XG4kZGVmYXVsdC10ZXh0LXNoYWRvdy1zcHJlYWQ6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBQcm92aWRlcyBjcm9zcy1icm93c2VyIHRleHQgc2hhZG93cyB3aGVuIG9uZSBvciBtb3JlIHNoYWRvd3MgYXJlIG5lZWRlZC5cbi8vIEVhY2ggc2hhZG93IGFyZ3VtZW50IHNob3VsZCBhZGhlcmUgdG8gdGhlIHN0YW5kYXJkIGNzczMgc3ludGF4IGZvciB0aGVcbi8vIHRleHQtc2hhZG93IHByb3BlcnR5LlxuLy9cbi8vIE5vdGU6IGlmIGFueSBzaGFkb3cgaGFzIGEgc3ByZWFkIHBhcmFtZXRlciwgdGhpcyB3aWxsIGNhdXNlIHRoZSBtaXhpblxuLy8gdG8gZW1pdCB0aGUgc2hhZG93IGRlY2xhcmF0aW9uIHR3aWNlLCBmaXJzdCB3aXRob3V0IHRoZSBzcHJlYWQsXG4vLyB0aGVuIHdpdGggdGhlIHNwcmVhZCBpbmNsdWRlZC4gVGhpcyBhbGxvd3MgeW91IHRvIHByb2dyZXNzaXZlbHlcbi8vIGVuaGFuY2UgdGhlIGJyb3dzZXJzIHRoYXQgZG8gc3VwcG9ydCB0aGUgc3ByZWFkIHBhcmFtZXRlci5cbkBtaXhpbiB0ZXh0LXNoYWRvdygkc2hhZG93LTE6IGRlZmF1bHQsICRzaGFkb3ctMjogZmFsc2UsICRzaGFkb3ctMzogZmFsc2UsICRzaGFkb3ctNDogZmFsc2UsICRzaGFkb3ctNTogZmFsc2UsICRzaGFkb3ctNjogZmFsc2UsICRzaGFkb3ctNzogZmFsc2UsICRzaGFkb3ctODogZmFsc2UsICRzaGFkb3ctOTogZmFsc2UsICRzaGFkb3ctMTA6IGZhbHNlKSB7XG4gIEBpZiAkc2hhZG93LTEgPT0gZGVmYXVsdCB7XG4gICAgJHNoYWRvdy0xOiBjb21wYWN0KCRkZWZhdWx0LXRleHQtc2hhZG93LWgtb2Zmc2V0ICRkZWZhdWx0LXRleHQtc2hhZG93LXYtb2Zmc2V0ICRkZWZhdWx0LXRleHQtc2hhZG93LWJsdXIgJGRlZmF1bHQtdGV4dC1zaGFkb3ctc3ByZWFkICRkZWZhdWx0LXRleHQtc2hhZG93LWNvbG9yKTsgfVxuICAkc2hhZG93cy13aXRob3V0LXNwcmVhZDogam9pbigoKSwgKCksIGNvbW1hKTtcbiAgJHNoYWRvd3M6IGpvaW4oKCksICgpLCBjb21tYSk7XG4gICRoYXMtc3ByZWFkOiBmYWxzZTtcbiAgQGVhY2ggJHNoYWRvdyBpbiBjb21wYWN0KCRzaGFkb3ctMSwgJHNoYWRvdy0yLCAkc2hhZG93LTMsICRzaGFkb3ctNCwgJHNoYWRvdy01LCAkc2hhZG93LTYsICRzaGFkb3ctNywgJHNoYWRvdy04LCAkc2hhZG93LTksICRzaGFkb3ctMTApIHtcbiAgICBAaWYgbGVuZ3RoKCRzaGFkb3cpID4gNCB7XG4gICAgICAkaGFzLXNwcmVhZDogdHJ1ZTtcbiAgICAgICRzaGFkb3dzLXdpdGhvdXQtc3ByZWFkOiBhcHBlbmQoJHNoYWRvd3Mtd2l0aG91dC1zcHJlYWQsIG50aCgkc2hhZG93LCAxKSBudGgoJHNoYWRvdywgMikgbnRoKCRzaGFkb3csIDMpIG50aCgkc2hhZG93LCA1KSk7XG4gICAgICAkc2hhZG93czogYXBwZW5kKCRzaGFkb3dzLCAkc2hhZG93KTsgfVxuICAgIGVsc2Uge1xuICAgICAgJHNoYWRvd3Mtd2l0aG91dC1zcHJlYWQ6IGFwcGVuZCgkc2hhZG93cy13aXRob3V0LXNwcmVhZCwgJHNoYWRvdyk7XG4gICAgICAkc2hhZG93czogYXBwZW5kKCRzaGFkb3dzLCAkc2hhZG93KTsgfSB9XG4gIEBpZiAkaGFzLXNwcmVhZCB7XG4gICAgdGV4dC1zaGFkb3c6ICRzaGFkb3dzLXdpdGhvdXQtc3ByZWFkOyB9XG4gIHRleHQtc2hhZG93OiAkc2hhZG93czsgfVxuXG4vLyBQcm92aWRlcyBhIHNpbmdsZSBjcm9zcy1icm93c2VyIENTUyB0ZXh0IHNoYWRvdy5cbi8vXG4vLyBQcm92aWRlcyBzZW5zaWJsZSBkZWZhdWx0cyBmb3IgdGhlIGNvbG9yLCBob3Jpem9udGFsIG9mZnNldCwgdmVydGljYWwgb2Zmc2V0LCBibHVyLCBhbmQgc3ByZWFkXG4vLyBhY2NvcmRpbmcgdG8gdGhlIGNvbmZpZ3VyYXRpb24gZGVmYXVsdHMgYWJvdmUuXG5AbWl4aW4gc2luZ2xlLXRleHQtc2hhZG93KCRob2ZmOiBmYWxzZSwgJHZvZmY6IGZhbHNlLCAkYmx1cjogZmFsc2UsICRzcHJlYWQ6IGZhbHNlLCAkY29sb3I6IGZhbHNlKSB7XG4gIC8vIEEgbG90IG9mIHBlb3BsZSB0aGluayB0aGUgY29sb3IgY29tZXMgZmlyc3QuIEl0IGRvZXNuJ3QuXG4gIEBpZiB0eXBlLW9mKCRob2ZmKSA9PSBjb2xvciB7XG4gICAgJHRlbXAtY29sb3I6ICRob2ZmO1xuICAgICRob2ZmOiAkdm9mZjtcbiAgICAkdm9mZjogJGJsdXI7XG4gICAgJGJsdXI6ICRzcHJlYWQ7XG4gICAgJHNwcmVhZDogJGNvbG9yO1xuICAgICRjb2xvcjogJHRlbXAtY29sb3I7IH1cbiAgLy8gQ2FuJ3QgcmVseSBvbiBkZWZhdWx0IGFzc2lnbm1lbnQgd2l0aCBtdWx0aXBsZSBzdXBwb3J0ZWQgYXJndW1lbnQgb3JkZXJzLlxuICAkaG9mZjogaWYoJGhvZmYsICRob2ZmLCAkZGVmYXVsdC10ZXh0LXNoYWRvdy1oLW9mZnNldCk7XG4gICR2b2ZmOiBpZigkdm9mZiwgJHZvZmYsICRkZWZhdWx0LXRleHQtc2hhZG93LXYtb2Zmc2V0KTtcbiAgJGJsdXI6IGlmKCRibHVyLCAkYmx1ciwgJGRlZmF1bHQtdGV4dC1zaGFkb3ctYmx1cik7XG4gICRzcHJlYWQ6IGlmKCRzcHJlYWQsICRzcHJlYWQsICRkZWZhdWx0LXRleHQtc2hhZG93LXNwcmVhZCk7XG4gICRjb2xvcjogaWYoJGNvbG9yLCAkY29sb3IsICRkZWZhdWx0LXRleHQtc2hhZG93LWNvbG9yKTtcbiAgLy8gV2UgZG9uJ3QgbmVlZCBleHBlcmltZW50YWwgc3VwcG9ydCBmb3IgdGhpcyBwcm9wZXJ0eS5cbiAgQGlmICRjb2xvciA9PSBub25lIG9yICRob2ZmID09IG5vbmUge1xuICAgIEBpbmNsdWRlIHRleHQtc2hhZG93KG5vbmUpOyB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXNoYWRvdyhjb21wYWN0KCRob2ZmICR2b2ZmICRibHVyICRzcHJlYWQgJGNvbG9yKSk7IH0gfVxuIiwiQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBTcGVjaWZ5IHRoZSBzaG9ydGhhbmQgYGNvbHVtbnNgIHByb3BlcnR5LlxuLy9cbi8vIEV4YW1wbGU6XG4vL1xuLy8gICAgIEBpbmNsdWRlIGNvbHVtbnMoMjBlbSAyKVxuQG1peGluIGNvbHVtbnMoJHdpZHRoLWFuZC1jb3VudCkge1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoY29sdW1ucywgJHdpZHRoLWFuZC1jb3VudCwgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90IC1raHRtbCwgb2ZmaWNpYWwpOyB9XG5cbi8vIFNwZWNpZnkgdGhlIG51bWJlciBvZiBjb2x1bW5zXG5AbWl4aW4gY29sdW1uLWNvdW50KCRjb3VudCkge1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoY29sdW1uLWNvdW50LCAkY291bnQsIC1tb3osIC13ZWJraXQsIC1vLCAtbXMsIG5vdCAta2h0bWwsIG9mZmljaWFsKTsgfVxuXG4vLyBTcGVjaWZ5IHRoZSBnYXAgYmV0d2VlbiBjb2x1bW5zIGUuZy4gYDIwcHhgXG5AbWl4aW4gY29sdW1uLWdhcCgkd2lkdGgpIHtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGNvbHVtbi1nYXAsICR3aWR0aCwgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90IC1raHRtbCwgb2ZmaWNpYWwpOyB9XG5cbi8vIFNwZWNpZnkgdGhlIHdpZHRoIG9mIGNvbHVtbnMgZS5nLiBgMTAwcHhgXG5AbWl4aW4gY29sdW1uLXdpZHRoKCR3aWR0aCkge1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoY29sdW1uLXdpZHRoLCAkd2lkdGgsIC1tb3osIC13ZWJraXQsIC1vLCAtbXMsIG5vdCAta2h0bWwsIG9mZmljaWFsKTsgfVxuXG4vLyBTcGVjaWZ5IHRoZSB3aWR0aCBvZiB0aGUgcnVsZSBiZXR3ZWVuIGNvbHVtbnMgZS5nLiBgMXB4YFxuQG1peGluIGNvbHVtbi1ydWxlLXdpZHRoKCR3aWR0aCkge1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoY29sdW1uLXJ1bGUtd2lkdGgsICR3aWR0aCwgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90IC1raHRtbCwgb2ZmaWNpYWwpOyB9XG5cbi8vIFNwZWNpZnkgdGhlIHN0eWxlIG9mIHRoZSBydWxlIGJldHdlZW4gY29sdW1ucyBlLmcuIGBkb3R0ZWRgLlxuLy8gVGhpcyB3b3JrcyBsaWtlIGJvcmRlci1zdHlsZS5cbkBtaXhpbiBjb2x1bW4tcnVsZS1zdHlsZSgkc3R5bGUpIHtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGNvbHVtbi1ydWxlLXN0eWxlLCB1bnF1b3RlKCRzdHlsZSksIC1tb3osIC13ZWJraXQsIC1vLCAtbXMsIG5vdCAta2h0bWwsIG9mZmljaWFsKTsgfVxuXG4vLyBTcGVjaWZ5IHRoZSBjb2xvciBvZiB0aGUgcnVsZSBiZXR3ZWVuIGNvbHVtbnMgZS5nLiBgYmx1ZWAuXG4vLyBUaGlzIHdvcmtzIGxpa2UgYm9yZGVyLWNvbG9yLlxuQG1peGluIGNvbHVtbi1ydWxlLWNvbG9yKCRjb2xvcikge1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoY29sdW1uLXJ1bGUtY29sb3IsICRjb2xvciwgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90IC1raHRtbCwgb2ZmaWNpYWwpOyB9XG5cbi8vIE1peGluIGVuY29tcGFzc2luZyBhbGwgY29sdW1uIHJ1bGUgcHJvcGVydGllc1xuLy8gRm9yIGV4YW1wbGU6XG4vL1xuLy8gICAgIEBpbmNsdWRlIGNvbHVtbi1ydWxlKDFweCwgc29saWQsICNjMDApXG4vL1xuLy8gT3IgdGhlIHZhbHVlcyBjYW4gYmUgc3BhY2Ugc2VwYXJhdGVkOlxuLy9cbi8vICAgICBAaW5jbHVkZSBjb2x1bW4tcnVsZSgxcHggc29saWQgI2MwMClcbkBtaXhpbiBjb2x1bW4tcnVsZSgkd2lkdGgsICRzdHlsZTogZmFsc2UsICRjb2xvcjogZmFsc2UpIHtcbiAgJGZ1bGw6IC1jb21wYXNzLXNwYWNlLWxpc3QoY29tcGFjdCgkd2lkdGgsICRzdHlsZSwgJGNvbG9yKSk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChjb2x1bW4tcnVsZSwgJGZ1bGwsIC1tb3osIC13ZWJraXQsIC1vLCAtbXMsIG5vdCAta2h0bWwsIG9mZmljaWFsKTsgfVxuXG4vLyBNaXhpbiBmb3Igc2V0dGluZyBjb2x1bW4tYnJlYWstYmVmb3JlXG4vL1xuLy8gKiBsZWdhbCB2YWx1ZXMgYXJlIGF1dG8sIGFsd2F5cywgYXZvaWQsIGxlZnQsIHJpZ2h0LCBwYWdlLCBjb2x1bW4sIGF2b2lkLXBhZ2UsIGF2b2lkLWNvbHVtblxuLy9cbi8vICBFeGFtcGxlOlxuLy8gICAgaDIuYmVmb3JlIHtAaW5jbHVkZSBjb2x1bW4tYnJlYWstYmVmb3JlKGFsd2F5cyk7fVxuLy9cbi8vICBXaGljaCBnZW5lcmF0ZXM6XG4vL1xuLy8gIGgyLmJlZm9yZSB7XG4vLyAgICAtd2Via2l0LWNvbHVtbi1icmVhay1iZWZvcmU6IGFsd2F5cztcbi8vICAgIGNvbHVtbi1icmVhay1iZWZvcmU6IGFsd2F5czt9XG5AbWl4aW4gY29sdW1uLWJyZWFrLWJlZm9yZSgkdmFsdWU6IGF1dG8pIHtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGNvbHVtbi1icmVhay1iZWZvcmUsICR2YWx1ZSwgbm90IC1tb3osIC13ZWJraXQsIG5vdCAtbywgbm90IC1tcywgbm90IC1raHRtbCwgb2ZmaWNpYWwpOyB9XG5cbi8vIE1peGluIGZvciBzZXR0aW5nIGNvbHVtbi1icmVhay1hZnRlclxuLy9cbi8vICogbGVnYWwgdmFsdWVzIGFyZSBhdXRvLCBhbHdheXMsIGF2b2lkLCBsZWZ0LCByaWdodCwgcGFnZSwgY29sdW1uLCBhdm9pZC1wYWdlLCBhdm9pZC1jb2x1bW5cbi8vXG4vLyAgRXhhbXBsZTpcbi8vICAgIGgyLmFmdGVyIHtAaW5jbHVkZSBjb2x1bW4tYnJlYWstYWZ0ZXIoYWx3YXlzKTsgfVxuLy9cbi8vICBXaGljaCBnZW5lcmF0ZXM6XG4vL1xuLy8gIGgyLmFmdGVyIHtcbi8vICAgIC13ZWJraXQtY29sdW1uLWJyZWFrLWFmdGVyOiBhbHdheXM7XG4vLyAgICBjb2x1bW4tYnJlYWstYWZ0ZXI6IGFsd2F5czsgfVxuQG1peGluIGNvbHVtbi1icmVhay1hZnRlcigkdmFsdWU6IGF1dG8pIHtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGNvbHVtbi1icmVhay1hZnRlciwgJHZhbHVlLCBub3QgLW1veiwgLXdlYmtpdCwgbm90IC1vLCBub3QgLW1zLCBub3QgLWtodG1sLCBvZmZpY2lhbCk7IH1cblxuLy8gTWl4aW4gZm9yIHNldHRpbmcgY29sdW1uLWJyZWFrLWluc2lkZVxuLy9cbi8vICogbGVnYWwgdmFsdWVzIGFyZSBhdXRvLCBhdm9pZCwgYXZvaWQtcGFnZSwgYXZvaWQtY29sdW1uXG4vL1xuLy8gIEV4YW1wbGU6XG4vLyAgICBoMi5pbnNpZGUge0BpbmNsdWRlIGNvbHVtbi1icmVhay1pbnNpZGUoKTt9XG4vLyAgV2hpY2ggZ2VuZXJhdGVzOlxuLy9cbi8vICBoMi5pbnNpZGUge1xuLy8gICAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdXRvO1xuLy8gICAgY29sdW1uLWJyZWFrLWluc2lkZTogYXV0bzt9XG5AbWl4aW4gY29sdW1uLWJyZWFrLWluc2lkZSgkdmFsdWU6IGF1dG8pIHtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGNvbHVtbi1icmVhay1pbnNpZGUsICR2YWx1ZSwgbm90IC1tb3osIC13ZWJraXQsIG5vdCAtbywgbm90IC1tcywgbm90IC1raHRtbCwgb2ZmaWNpYWwpOyB9XG5cbi8vIEFsbC1wdXJwb3NlIG1peGluIGZvciBzZXR0aW5nIGNvbHVtbiBicmVha3MuXG4vL1xuLy8gKiBsZWdhbCB2YWx1ZXMgZm9yICR0eXBlIDogYmVmb3JlLCBhZnRlciwgaW5zaWRlXG4vLyAqIGxlZ2FsIHZhbHVlcyBmb3IgJyR2YWx1ZScgYXJlIGRlcGVuZGVudCBvbiAkdHlwZVxuLy8gICAgKiB3aGVuICR0eXBlID0gYmVmb3JlLCBsZWdhbCB2YWx1ZXMgYXJlIGF1dG8sIGFsd2F5cywgYXZvaWQsIGxlZnQsIHJpZ2h0LCBwYWdlLCBjb2x1bW4sIGF2b2lkLXBhZ2UsIGF2b2lkLWNvbHVtblxuLy8gICAgKiB3aGVuICR0eXBlID0gYWZ0ZXIsIGxlZ2FsIHZhbHVlcyBhcmUgYXV0bywgYWx3YXlzLCBhdm9pZCwgbGVmdCwgcmlnaHQsIHBhZ2UsIGNvbHVtbiwgYXZvaWQtcGFnZSwgYXZvaWQtY29sdW1uXG4vLyAgICAqIHdoZW4gJHR5cGUgPSBpbnNpZGUsIGxlZ2FsIHZhbHVlcyBhcmUgYXV0bywgYXZvaWQsIGF2b2lkLXBhZ2UsIGF2b2lkLWNvbHVtblxuLy9cbi8vICBFeGFtcGxlczpcbi8vICAgIGgyLmJlZm9yZSB7QGluY2x1ZGUgY29sdW1uLWJyZWFrKGJlZm9yZSwgYWx3YXlzKTt9XG4vLyAgICBoMi5hZnRlciB7QGluY2x1ZGUgY29sdW1uLWJyZWFrKGFmdGVyLCBhbHdheXMpOyB9XG4vLyAgICBoMi5pbnNpZGUge0BpbmNsdWRlIGNvbHVtbi1icmVhayhpbnNpZGUpOyB9XG4vL1xuLy8gIFdoaWNoIGdlbmVyYXRlczpcbi8vICBoMi5iZWZvcmUge1xuLy8gICAgLXdlYmtpdC1jb2x1bW4tYnJlYWstYmVmb3JlOiBhbHdheXM7XG4vLyAgICBjb2x1bW4tYnJlYWstYmVmb3JlOiBhbHdheXM7fVxuLy9cbi8vICBoMi5hZnRlciB7XG4vLyAgICAtd2Via2l0LWNvbHVtbi1icmVhay1hZnRlcjogYWx3YXlzO1xuLy8gICAgY29sdW1uLWJyZWFrLWFmdGVyOiBhbHdheXM7IH1cbi8vXG4vLyAgaDIuaW5zaWRlIHtcbi8vICAgIC13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXV0bztcbi8vICAgIGNvbHVtbi1icmVhay1pbnNpZGU6IGF1dG87fVxuXG5AbWl4aW4gY29sdW1uLWJyZWFrKCR0eXBlOiBiZWZvcmUsICR2YWx1ZTogYXV0bykge1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoXCJjb2x1bW4tYnJlYWstI3skdHlwZX1cIiwgJHZhbHVlLCBub3QgLW1veiwgLXdlYmtpdCwgbm90IC1vLCBub3QgLW1zLCBub3QgLWtodG1sLCBvZmZpY2lhbCk7IH1cbiIsIkBpbXBvcnQgXCJzaGFyZWRcIjtcblxuLy8gQ2hhbmdlIHRoZSBib3ggbW9kZWwgZm9yIE1vemlsbGEsIFdlYmtpdCwgSUU4IGFuZCB0aGUgZnV0dXJlXG4vL1xuLy8gQHBhcmFtICRic1xuLy8gICBbIGNvbnRlbnQtYm94IHwgYm9yZGVyLWJveCBdXG5cbkBtaXhpbiBib3gtc2l6aW5nKCRicykge1xuICAkYnM6IHVucXVvdGUoJGJzKTtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGJveC1zaXppbmcsICRicywgLW1veiwgLXdlYmtpdCwgbm90IC1vLCBub3QgLW1zLCBub3QgLWtodG1sLCBvZmZpY2lhbCk7IH1cbiIsIkBpbXBvcnQgXCJzaGFyZWRcIjtcblxuLy8gZGlzcGxheTpib3g7IG11c3QgYmUgdXNlZCBmb3IgYW55IG9mIHRoZSBvdGhlciBmbGV4Ym94IG1peGlucyB0byB3b3JrIHByb3Blcmx5XG5AbWl4aW4gZGlzcGxheS1ib3gge1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwtdmFsdWUoZGlzcGxheSwgYm94LCAtbW96LCAtd2Via2l0LCBub3QgLW8sIC1tcywgbm90IC1raHRtbCwgb2ZmaWNpYWwpOyB9XG5cbi8vIERlZmF1bHQgYm94IG9yaWVudGF0aW9uLCBhc3N1bWluZyB0aGF0IHRoZSB1c2VyIHdhbnRzIHNvbWV0aGluZyBsZXNzIGJsb2NrLWxpa2VcbiRkZWZhdWx0LWJveC1vcmllbnQ6IGhvcml6b250YWwgIWRlZmF1bHQ7XG5cbi8vIEJveCBvcmllbnRhdGlvbiBbIGhvcml6b250YWwgfCB2ZXJ0aWNhbCB8IGlubGluZS1heGlzIHwgYmxvY2stYXhpcyB8IGluaGVyaXQgXVxuQG1peGluIGJveC1vcmllbnQoJG9yaWVudGF0aW9uOiAkZGVmYXVsdC1ib3gtb3JpZW50KSB7XG4gICRvcmllbnRhdGlvbjogdW5xdW90ZSgkb3JpZW50YXRpb24pO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoYm94LW9yaWVudCwgJG9yaWVudGF0aW9uLCAtbW96LCAtd2Via2l0LCBub3QgLW8sIC1tcywgbm90IC1raHRtbCwgb2ZmaWNpYWwpOyB9XG5cbi8vIERlZmF1bHQgYm94LWFsaWduXG4kZGVmYXVsdC1ib3gtYWxpZ246IHN0cmV0Y2ggIWRlZmF1bHQ7XG5cbi8vIEJveCBhbGlnbiBbIHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoIF1cbkBtaXhpbiBib3gtYWxpZ24oJGFsaWdubWVudDogJGRlZmF1bHQtYm94LWFsaWduKSB7XG4gICRhbGlnbm1lbnQ6IHVucXVvdGUoJGFsaWdubWVudCk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChib3gtYWxpZ24sICRhbGlnbm1lbnQsIC1tb3osIC13ZWJraXQsIG5vdCAtbywgLW1zLCBub3QgLWtodG1sLCBvZmZpY2lhbCk7IH1cblxuLy8gRGVmYXVsdCBib3ggZmxleFxuJGRlZmF1bHQtYm94LWZsZXg6IDAgIWRlZmF1bHQ7XG5cbi8vIG1peGluIHdoaWNoIHRha2VzIGFuIGludCBhcmd1bWVudCBmb3IgYm94IGZsZXguIEFwcGx5IHRoaXMgdG8gdGhlIGNoaWxkcmVuIGluc2lkZSB0aGUgYm94LlxuLy9cbi8vIEZvciBleGFtcGxlOiBcImRpdi5kaXNwbGF5LWJveCA+IGRpdi5jaGlsZC1ib3hcIiB3b3VsZCBnZXQgdGhlIGJveCBmbGV4IG1peGluLlxuQG1peGluIGJveC1mbGV4KCRmbGV4OiAkZGVmYXVsdC1ib3gtZmxleCkge1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoYm94LWZsZXgsICRmbGV4LCAtbW96LCAtd2Via2l0LCBub3QgLW8sIC1tcywgbm90IC1raHRtbCwgb2ZmaWNpYWwpOyB9XG5cbi8vIERlZmF1bHQgZmxleCBncm91cFxuJGRlZmF1bHQtYm94LWZsZXgtZ3JvdXA6IDEgIWRlZmF1bHQ7XG5cbi8vIG1peGluIHdoaWNoIHRha2VzIGFuIGludCBhcmd1bWVudCBmb3IgZmxleGlibGUgZ3JvdXBpbmdcbkBtaXhpbiBib3gtZmxleC1ncm91cCgkZ3JvdXA6ICRkZWZhdWx0LWJveC1mbGV4LWdyb3VwKSB7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChib3gtZmxleC1ncm91cCwgJGdyb3VwLCAtbW96LCAtd2Via2l0LCBub3QgLW8sIC1tcywgbm90IC1raHRtbCwgb2ZmaWNpYWwpOyB9XG5cbi8vIGRlZmF1bHQgZm9yIG9yZGluYWwgZ3JvdXBcbiRkZWZhdWx0LWJveC1vcmRpbmFsLWdyb3VwOiAxICFkZWZhdWx0O1xuXG4vLyBtaXhpbiB3aGljaCB0YWtlcyBhbiBpbnQgYXJndW1lbnQgZm9yIG9yZGluYWwgZ3JvdXBpbmcgYW5kIHJlYXJyYW5naW5nIHRoZSBvcmRlclxuQG1peGluIGJveC1vcmRpbmFsLWdyb3VwKCRncm91cDogJGRlZmF1bHQtb3JkaW5hbC1mbGV4LWdyb3VwKSB7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChib3gtb3JkaW5hbC1ncm91cCwgJGdyb3VwLCAtbW96LCAtd2Via2l0LCBub3QgLW8sIC1tcywgbm90IC1raHRtbCwgb2ZmaWNpYWwpOyB9XG5cbi8vIEJveCBkaXJlY3Rpb24gZGVmYXVsdCB2YWx1ZVxuJGRlZmF1bHQtYm94LWRpcmVjdGlvbjogbm9ybWFsICFkZWZhdWx0O1xuXG4vLyBtaXhpbiBmb3IgYm94LWRpcmVjdGlvbiBbIG5vcm1hbCB8IHJldmVyc2UgfCBpbmhlcml0IF1cbkBtaXhpbiBib3gtZGlyZWN0aW9uKCRkaXJlY3Rpb246ICRkZWZhdWx0LWJveC1kaXJlY3Rpb24pIHtcbiAgJGRpcmVjdGlvbjogdW5xdW90ZSgkZGlyZWN0aW9uKTtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIC1tb3osIC13ZWJraXQsIG5vdCAtbywgLW1zLCBub3QgLWtodG1sLCBvZmZpY2lhbCk7IH1cblxuLy8gZGVmYXVsdCBmb3IgYm94IGxpbmVzXG4kZGVmYXVsdC1ib3gtbGluZXM6IHNpbmdsZSAhZGVmYXVsdDtcblxuLy8gbWl4aW4gZm9yIGJveCBsaW5lcyBbIHNpbmdsZSB8IG11bHRpcGxlIF1cbkBtaXhpbiBib3gtbGluZXMoJGxpbmVzOiAkZGVmYXVsdC1ib3gtbGluZXMpIHtcbiAgJGxpbmVzOiB1bnF1b3RlKCRsaW5lcyk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChib3gtbGluZXMsICRsaW5lcywgLW1veiwgLXdlYmtpdCwgbm90IC1vLCAtbXMsIG5vdCAta2h0bWwsIG9mZmljaWFsKTsgfVxuXG4vLyBkZWZhdWx0IGZvciBib3ggcGFja1xuJGRlZmF1bHQtYm94LXBhY2s6IHN0YXJ0ICFkZWZhdWx0O1xuXG4vLyBtaXhpbiBmb3IgYm94IHBhY2sgWyBzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkgXVxuQG1peGluIGJveC1wYWNrKCRwYWNrOiAkZGVmYXVsdC1ib3gtcGFjaykge1xuICAkcGFjazogdW5xdW90ZSgkcGFjayk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChib3gtcGFjaywgJHBhY2ssIC1tb3osIC13ZWJraXQsIG5vdCAtbywgLW1zLCBub3QgLWtodG1sLCBvZmZpY2lhbCk7IH1cbiIsIkBpbXBvcnQgXCJzaGFyZWRcIjtcblxuLy8gVGhlIGRlZmF1bHQgdmFsdWUgaXMgYHBhZGRpbmctYm94YCAtLSB0aGUgYm94IG1vZGVsIHVzZWQgYnkgbW9kZXJuIGJyb3dzZXJzLlxuLy9cbi8vIElmIHlvdSB3aXNoIHRvIGRvIHNvLCB5b3UgY2FuIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGNvbnN0YW50IHdpdGggYGJvcmRlci1ib3hgXG4vL1xuLy8gVG8gb3ZlcnJpZGUgdG8gdGhlIGRlZmF1bHQgYm9yZGVyLWJveCBtb2RlbCwgdXNlIHRoaXMgY29kZTpcbi8vICAgICAkZGVmYXVsdC1iYWNrZ3JvdW5kLWNsaXA6IGJvcmRlci1ib3hcblxuJGRlZmF1bHQtYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveCAhZGVmYXVsdDtcblxuLy8gQ2xpcCB0aGUgYmFja2dyb3VuZCAoaW1hZ2UgYW5kIGNvbG9yKSBhdCB0aGUgZWRnZSBvZiB0aGUgcGFkZGluZyBvciBib3JkZXIuXG4vL1xuLy8gTGVnYWwgVmFsdWVzOlxuLy9cbi8vICAgKiBwYWRkaW5nLWJveFxuLy8gICAqIGJvcmRlci1ib3hcbi8vICAgKiB0ZXh0XG5cbkBtaXhpbiBiYWNrZ3JvdW5kLWNsaXAoJGNsaXA6ICRkZWZhdWx0LWJhY2tncm91bmQtY2xpcCkge1xuICAvLyB3ZWJraXQgYW5kIG1vemlsbGEgdXNlIHRoZSBkZXByZWNhdGVkIHNob3J0IFtib3JkZXIgfCBwYWRkaW5nXVxuICAkY2xpcDogdW5xdW90ZSgkY2xpcCk7XG4gICRkZXByZWNhdGVkOiAkY2xpcDtcbiAgQGlmICRjbGlwID09IHBhZGRpbmctYm94IHtcbiAgICAkZGVwcmVjYXRlZDogcGFkZGluZzsgfVxuICBAaWYgJGNsaXAgPT0gYm9yZGVyLWJveCB7XG4gICAgJGRlcHJlY2F0ZWQ6IGJvcmRlcjsgfVxuICAvLyBTdXBwb3J0IGZvciB3ZWJraXQgYW5kIG1vemlsbGEncyB1c2Ugb2YgdGhlIGRlcHJlY2F0ZWQgc2hvcnQgZm9ybVxuICBAaW5jbHVkZSBleHBlcmltZW50YWwoYmFja2dyb3VuZC1jbGlwLCAkZGVwcmVjYXRlZCwgLW1veiwgLXdlYmtpdCwgbm90IC1vLCBub3QgLW1zLCBub3QgLWtodG1sLCBub3Qgb2ZmaWNpYWwpO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoYmFja2dyb3VuZC1jbGlwLCAkY2xpcCwgbm90IC1tb3osIG5vdCAtd2Via2l0LCBub3QgLW8sIG5vdCAtbXMsIC1raHRtbCwgb2ZmaWNpYWwpOyB9XG4iLCIvLyBPdmVycmlkZSBgJGRlZmF1bHQtYmFja2dyb3VuZC1vcmlnaW5gIHRvIGNoYW5nZSB0aGUgZGVmYXVsdC5cblxuQGltcG9ydCBcInNoYXJlZFwiO1xuXG4kZGVmYXVsdC1iYWNrZ3JvdW5kLW9yaWdpbjogY29udGVudC1ib3ggIWRlZmF1bHQ7XG5cbi8vIFBvc2l0aW9uIHRoZSBiYWNrZ3JvdW5kIG9mZiB0aGUgZWRnZSBvZiB0aGUgcGFkZGluZywgYm9yZGVyIG9yIGNvbnRlbnRcbi8vXG4vLyAqIFBvc3NpYmxlIHZhbHVlczpcbi8vICAgKiBgcGFkZGluZy1ib3hgXG4vLyAgICogYGJvcmRlci1ib3hgXG4vLyAgICogYGNvbnRlbnQtYm94YFxuLy8gKiBicm93c2VyIGRlZmF1bHRzIHRvIGBwYWRkaW5nLWJveGBcbi8vICogbWl4aW4gZGVmYXVsdHMgdG8gYGNvbnRlbnQtYm94YFxuXG5AbWl4aW4gYmFja2dyb3VuZC1vcmlnaW4oJG9yaWdpbjogJGRlZmF1bHQtYmFja2dyb3VuZC1vcmlnaW4pIHtcbiAgJG9yaWdpbjogdW5xdW90ZSgkb3JpZ2luKTtcbiAgLy8gd2Via2l0IGFuZCBtb3ppbGxhIHVzZSB0aGUgZGVwcmVjYXRlZCBzaG9ydCBbYm9yZGVyIHwgcGFkZGluZyB8IGNvbnRlbnRdXG4gICRkZXByZWNhdGVkOiAkb3JpZ2luO1xuICBAaWYgJG9yaWdpbiA9PSBwYWRkaW5nLWJveCB7XG4gICAgJGRlcHJlY2F0ZWQ6IHBhZGRpbmc7IH1cbiAgQGlmICRvcmlnaW4gPT0gYm9yZGVyLWJveCB7XG4gICAgJGRlcHJlY2F0ZWQ6IGJvcmRlcjsgfVxuICBAaWYgJG9yaWdpbiA9PSBjb250ZW50LWJveCB7XG4gICAgJGRlcHJlY2F0ZWQ6IGNvbnRlbnQ7IH1cbiAgLy8gU3VwcG9ydCBmb3Igd2Via2l0IGFuZCBtb3ppbGxhJ3MgdXNlIG9mIHRoZSBkZXByZWNhdGVkIHNob3J0IGZvcm1cbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGJhY2tncm91bmQtb3JpZ2luLCAkZGVwcmVjYXRlZCwgLW1veiwgLXdlYmtpdCwgbm90IC1vLCBub3QgLW1zLCBub3QgLWtodG1sLCBub3Qgb2ZmaWNpYWwpO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoYmFja2dyb3VuZC1vcmlnaW4sICRvcmlnaW4sIG5vdCAtbW96LCBub3QgLXdlYmtpdCwgLW8sIC1tcywgLWtodG1sLCBvZmZpY2lhbCk7IH1cbiIsIkBpbXBvcnQgXCJzaGFyZWRcIjtcblxuLy8gQ3Jvc3MtYnJvd3NlciBzdXBwb3J0IGZvciBAZm9udC1mYWNlLiBTdXBwb3J0cyBJRSwgR2Vja28sIFdlYmtpdCwgT3BlcmEuXG4vL1xuLy8gKiAkbmFtZSBpcyByZXF1aXJlZCwgYXJiaXRyYXJ5LCBhbmQgd2hhdCB5b3Ugd2lsbCB1c2UgaW4gZm9udCBzdGFja3MuXG4vLyAqICRmb250LWZpbGVzIGlzIHJlcXVpcmVkIHVzaW5nIGZvbnQtZmlsZXMoJ3JlbGF0aXZlL2xvY2F0aW9uJywgJ2Zvcm1hdCcpLlxuLy8gICBmb3IgYmVzdCByZXN1bHRzIHVzZSB0aGlzIG9yZGVyOiB3b2ZmLCBvcGVudHlwZS90cnVldHlwZSwgc3ZnXG4vLyAqICRlb3QgaXMgcmVxdWlyZWQgYnkgSUUsIGFuZCBpcyBhIHJlbGF0aXZlIGxvY2F0aW9uIG9mIHRoZSBlb3QgZmlsZS5cbi8vICogJHdlaWdodCBzaG93cyBpZiB0aGUgZm9udCBpcyBib2xkLCBkZWZhdWx0cyB0byBub3JtYWxcbi8vICogJHN0eWxlIGRlZmF1bHRzIHRvIG5vcm1hbCwgbWlnaHQgYmUgYWxzbyBpdGFsaWNcbi8vICogRm9yIGFuZHJvaWQgMi4yIENvbXBhdGlibGl0eSwgcGxlYXNlIGVuc3VyZSB0aGF0IHlvdXIgd2ViIHBhZ2UgaGFzXG4vLyAgIGEgbWV0YSB2aWV3cG9ydCB0YWcuXG4vLyAqIFRvIHN1cHBvcnQgaU9TIDwgNC4yLCBhbiBTVkcgZmlsZSBtdXN0IGJlIHByb3ZpZGVkXG4vL1xuLy8gSWYgeW91IG5lZWQgdG8gZ2VuZXJhdGUgb3RoZXIgZm9ybWF0cyBjaGVjayBvdXQgdGhlIEZvbnQgU3F1aXJyZWxcbi8vIFtmb250IGdlbmVyYXRvcl0oaHR0cDovL3d3dy5mb250c3F1aXJyZWwuY29tL2ZvbnRmYWNlL2dlbmVyYXRvcilcbi8vXG5cbi8vIEluIG9yZGVyIHRvIHJlZmVyIHRvIGEgc3BlY2lmaWMgc3R5bGUgb2YgdGhlIGZvbnQgaW4geW91ciBzdHlsZXNoZWV0cyBhc1xuLy8gZS5nLiBcImZvbnQtc3R5bGU6IGl0YWxpYztcIiwgIHlvdSBtYXkgYWRkIGEgY291cGxlIG9mIEBmb250LWZhY2UgaW5jbHVkZXNcbi8vIGNvbnRhaW5pbmcgdGhlIHJlc3BlY3RpdmUgZm9udCBmaWxlcyBmb3IgZWFjaCBzdHlsZSBhbmQgc3BlY3lpbmdcbi8vIHJlc3BlY3RpdmUgdGhlICRzdHlsZSBwYXJhbWV0ZXIuXG5cbi8vIE9yZGVyIG9mIHRoZSBpbmNsdWRlcyBtYXR0ZXJzLCBhbmQgaXQgaXM6IG5vcm1hbCwgYm9sZCwgaXRhbGljLCBib2xkK2l0YWxpYy5cblxuQG1peGluIGZvbnQtZmFjZSgkbmFtZSwgJGZvbnQtZmlsZXMsICRlb3Q6IGZhbHNlLCAkd2VpZ2h0OiBmYWxzZSwgJHN0eWxlOiBmYWxzZSkge1xuICAkaWVmb250OiB1bnF1b3RlKFwiI3skZW90fT8jaWVmaXhcIik7XG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBxdW90ZSgkbmFtZSk7XG4gICAgQGlmICRlb3Qge1xuICAgICAgc3JjOiBmb250LXVybCgkZW90KTtcbiAgICAgICRmb250LWZpbGVzOiBmb250LXVybCgkaWVmb250KSB1bnF1b3RlKFwiZm9ybWF0KCdlb3QnKVwiKSwgJGZvbnQtZmlsZXM7IH1cbiAgICBzcmM6ICRmb250LWZpbGVzO1xuICAgIEBpZiAkd2VpZ2h0IHtcbiAgICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0OyB9XG4gICAgQGlmICRzdHlsZSB7XG4gICAgICBmb250LXN0eWxlOiAkc3R5bGU7IH0gfSB9XG4iLCJAaW1wb3J0IFwic2hhcmVkXCI7XG5cbi8vIEBkb2Mgb2ZmXG4vLyBOb3RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNhZmFyaSwgQ2hyb21lLCBhbmQgRmlyZWZveCBhbGwgc3VwcG9ydCAzRCB0cmFuc2Zvcm1zLiBIb3dldmVyLFxuLy8gb25seSBpbiB0aGUgbW9zdCByZWNlbnQgYnVpbGRzLiBZb3Ugc2hvdWxkIGFsc28gcHJvdmlkZSBmYWxsYmFjayAyZCBzdXBwb3J0IGZvclxuLy8gT3BlcmEgYW5kIElFLiBJRTEwIGlzIHNsYXRlZCB0byBoYXZlIDNkIGVuYWJsZWQsIGJ1dCBpcyBjdXJyZW50bHkgdW5yZWxlYXNlZC5cbi8vIFRvIG1ha2UgdGhhdCBlYXN5LCBhbGwgMkQgdHJhbnNmb3JtcyBpbmNsdWRlIGFuIGJyb3dzZXItdGFyZ2V0aW5nIHRvZ2dsZSAoJG9ubHkzZClcbi8vIHRvIHN3aXRjaCBiZXR3ZWVuIHRoZSB0d28gc3VwcG9ydCBsaXN0cy4gVGhlIHRvZ2dsZSBkZWZhdWx0cyB0byAnZmFsc2UnICgyRCksXG4vLyBhbmQgYWxzbyBhY2NlcHRzICd0cnVlJyAoM0QpLiBDdXJyZW50bHkgdGhlIGxpc3RzIGFyZSBhcyBmb2xsb3dzOlxuLy8gMkQ6IE1vemlsbGEsIFdlYmtpdCwgT3BlcmEsIE9mZmljaWFsXG4vLyAzRDogV2Via2l0LCBGaXJlZm94LlxuXG4vLyBBdmFpbGFibGUgVHJhbnNmb3JtcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gU2NhbGUgKDJkIGFuZCAzZClcbi8vIC0gUm90YXRlICgyZCBhbmQgM2QpXG4vLyAtIFRyYW5zbGF0ZSAoMmQgYW5kIDNkKVxuLy8gLSBTa2V3ICgyZCBvbmx5KVxuXG4vLyBUcmFuc2Zvcm0gUGFyYW1ldGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0gVHJhbnNmb3JtIE9yaWdpbiAoMmQgYW5kIDNkKVxuLy8gLSBQZXJzcGVjdGl2ZSAoM2QpXG4vLyAtIFBlcnNwZWN0aXZlIE9yaWdpbiAoM2QpXG4vLyAtIFRyYW5zZm9ybSBTdHlsZSAoM2QpXG4vLyAtIEJhY2tmYWNlIFZpc2liaWxpdHkgKDNkKVxuXG4vLyBNaXhpbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHRyYW5zZm9ybS1vcmlnaW5cbi8vICAtIHNob3J0Y3V0czogIHRyYW5zZm9ybS1vcmlnaW4yZCwgdHJhbnNmb3JtLW9yaWdpbjNkXG4vLyAgLSBoZWxwZXJzOiAgICBhcHBseS1vcmlnaW5cbi8vIHRyYW5zZm9ybVxuLy8gIC0gc2hvcnRjdXRzOiAgdHJhbnNmb3JtMmQsIHRyYW5zZm9ybTNkXG4vLyAgLSBoZWxwZXJzOiAgICBzaW1wbGUtdHJhbnNmb3JtLCBjcmVhdGUtdHJhbnNmb3JtXG4vLyBwZXJzcGVjdGl2ZVxuLy8gIC0gaGVscGVyczogICAgcGVyc3BlY3RpdmUtb3JpZ2luXG4vLyB0cmFuc2Zvcm0tc3R5bGVcbi8vIGJhY2tmYWNlLXZpc2liaWxpdHlcbi8vIHNjYWxlXG4vLyAgLSBzaG9ydGN1dHM6ICBzY2FsZVgsIHNjYWxlWSwgc2NhbGVaLCBzY2FsZTNkXG4vLyByb3RhdGVcbi8vICAtIHNob3J0Y3V0czogIHJvdGF0ZVgsIHJvdGF0ZVksIHJvdGF0ZTNkXG4vLyB0cmFuc2xhdGVcbi8vICAtIHNob3J0Y3V0czogIHRyYW5zbGF0ZVgsIHRyYW5zbGF0ZVksIHRyYW5zbGF0ZVosIHRyYW5zbGF0ZTNkXG4vLyBza2V3XG4vLyAgLSBzaG9ydGN1dHM6ICBza2V3WCwgc2tld1lcblxuLy8gRGVmYXVsdHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAZG9jIG9uXG5cbi8vIFRoZSBkZWZhdWx0IHgtb3JpZ2luIGZvciB0cmFuc2Zvcm1zXG4kZGVmYXVsdC1vcmlnaW4teDogNTAlICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCB5LW9yaWdpbiBmb3IgdHJhbnNmb3Jtc1xuJGRlZmF1bHQtb3JpZ2luLXk6IDUwJSAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgei1vcmlnaW4gZm9yIHRyYW5zZm9ybXNcbiRkZWZhdWx0LW9yaWdpbi16OiA1MCUgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IHgtbXVsdGlwbGllciBmb3Igc2NhbGluZ1xuJGRlZmF1bHQtc2NhbGUteDogMS4yNSAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgeS1tdWx0aXBsaWVyIGZvciBzY2FsaW5nXG4kZGVmYXVsdC1zY2FsZS15OiAkZGVmYXVsdC1zY2FsZS14ICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCB6LW11bHRpcGxpZXIgZm9yIHNjYWxpbmdcbiRkZWZhdWx0LXNjYWxlLXo6ICRkZWZhdWx0LXNjYWxlLXggIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IGFuZ2xlIGZvciByb3RhdGlvbnNcbiRkZWZhdWx0LXJvdGF0ZTogNDVkZWcgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IHgtdmVjdG9yIGZvciB0aGUgYXhpcyBvZiAzZCByb3RhdGlvbnNcbiRkZWZhdWx0LXZlY3Rvci14OiAxICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCB5LXZlY3RvciBmb3IgdGhlIGF4aXMgb2YgM2Qgcm90YXRpb25zXG4kZGVmYXVsdC12ZWN0b3IteTogMSAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgei12ZWN0b3IgZm9yIHRoZSBheGlzIG9mIDNkIHJvdGF0aW9uc1xuJGRlZmF1bHQtdmVjdG9yLXo6IDEgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IHgtbGVuZ3RoIGZvciB0cmFuc2xhdGlvbnNcbiRkZWZhdWx0LXRyYW5zbGF0ZS14OiAxZW0gIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IHktbGVuZ3RoIGZvciB0cmFuc2xhdGlvbnNcbiRkZWZhdWx0LXRyYW5zbGF0ZS15OiAkZGVmYXVsdC10cmFuc2xhdGUteCAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgei1sZW5ndGggZm9yIHRyYW5zbGF0aW9uc1xuJGRlZmF1bHQtdHJhbnNsYXRlLXo6ICRkZWZhdWx0LXRyYW5zbGF0ZS14ICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCB4LWFuZ2xlIGZvciBza2V3aW5nXG4kZGVmYXVsdC1za2V3LXg6IDVkZWcgIWRlZmF1bHQ7XG5cbi8vIFRoZSBkZWZhdWx0IHktYW5nbGUgZm9yIHNrZXdpbmdcbiRkZWZhdWx0LXNrZXcteTogNWRlZyAhZGVmYXVsdDtcblxuLy8gKipUcmFuc2Zvcm0tb3JpZ2luKipcbi8vIFRyYW5zZm9ybS1vcmlnaW4gc2VudCBhcyBhIGNvbXBsZXRlIHN0cmluZ1xuLy9cbi8vICAgICBAaW5jbHVkZSBhcHBseS1vcmlnaW4oIG9yaWdpbiBbLCAzRC1vbmx5IF0gKVxuLy9cbi8vIHdoZXJlICdvcmlnaW4nIGlzIGEgc3BhY2Ugc2VwYXJhdGVkIGxpc3QgY29udGFpbmluZyAxLTMgKHgveS96KSBjb29yZGluYXRlc1xuLy8gaW4gcGVyY2VudGFnZXMsIGFic29sdXRlIChweCwgY20sIGluLCBlbSBldGMuLikgb3IgcmVsYXRpdmVcbi8vIChsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b20sIGNlbnRlcikgdW5pdHNcbi8vXG4vLyBAcGFyYW0gb25seTNkIFNldCB0aGlzIHRvIHRydWUgdG8gb25seSBhcHBseSB0aGlzXG4vLyBtaXhpbiB3aGVyZSBicm93c2VycyBoYXZlIDNEIHN1cHBvcnQuXG5AbWl4aW4gYXBwbHktb3JpZ2luKCRvcmlnaW4sICRvbmx5M2QpIHtcbiAgJG9ubHkzZDogJG9ubHkzZCBvciAtY29tcGFzcy1saXN0LXNpemUoLWNvbXBhc3MtbGlzdCgkb3JpZ2luKSkgPiAyO1xuICBAaWYgJG9ubHkzZCB7XG4gICAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKHRyYW5zZm9ybS1vcmlnaW4sICRvcmlnaW4sIC1tb3osIC13ZWJraXQsIC1vLCAtbXMsIG5vdCAta2h0bWwsIG9mZmljaWFsKTsgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKHRyYW5zZm9ybS1vcmlnaW4sICRvcmlnaW4sIC1tb3osIC13ZWJraXQsIC1vLCAtbXMsIG5vdCAta2h0bWwsIG9mZmljaWFsKTsgfSB9XG5cbi8vIFRyYW5zZm9ybS1vcmlnaW4gc2VudCBhcyBpbmRpdmlkdWFsIGFyZ3VtZW50czpcbi8vXG4vLyAgICAgQGluY2x1ZGUgdHJhbnNmb3JtLW9yaWdpbiggWyBvcmlnaW4teCwgb3JpZ2luLXksIG9yaWdpbi16LCAzRC1vbmx5IF0gKVxuLy9cbi8vIHdoZXJlIHRoZSAzICdvcmlnaW4tJyBhcmd1bWVudHMgcmVwcmVzZW50IHgveS96IGNvb3JkaW5hdGVzLlxuLy9cbi8vICoqTk9URToqKiBzZXR0aW5nIHogY29vcmRpbmF0ZXMgdHJpZ2dlcnMgM0Qgc3VwcG9ydCBsaXN0LCBsZWF2ZSBmYWxzZSBmb3IgMkQgc3VwcG9ydFxuQG1peGluIHRyYW5zZm9ybS1vcmlnaW4oJG9yaWdpbi14OiAkZGVmYXVsdC1vcmlnaW4teCwgJG9yaWdpbi15OiAkZGVmYXVsdC1vcmlnaW4teSwgJG9yaWdpbi16OiBmYWxzZSwgJG9ubHkzZDogaWYoJG9yaWdpbi16LCB0cnVlLCBmYWxzZSkpIHtcbiAgJG9yaWdpbjogdW5xdW90ZShcIlwiKTtcbiAgQGlmICRvcmlnaW4teCBvciAkb3JpZ2luLXkgb3IgJG9yaWdpbi16IHtcbiAgICBAaWYgJG9yaWdpbi14IHtcbiAgICAgICRvcmlnaW46ICRvcmlnaW4teDsgfVxuICAgIEBlbHNlIHtcbiAgICAgICRvcmlnaW46IDUwJTsgfVxuICAgIEBpZiAkb3JpZ2luLXkge1xuICAgICAgJG9yaWdpbjogJG9yaWdpbiAkb3JpZ2luLXk7IH1cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgJG9yaWdpbi16IHtcbiAgICAgICAgJG9yaWdpbjogJG9yaWdpbiA1MCU7IH0gfVxuICAgIEBpZiAkb3JpZ2luLXoge1xuICAgICAgJG9yaWdpbjogJG9yaWdpbiAkb3JpZ2luLXo7IH1cbiAgICBAaW5jbHVkZSBhcHBseS1vcmlnaW4oJG9yaWdpbiwgJG9ubHkzZCk7IH0gfVxuXG4vLyBUcmFuc2Zvcm0gc2VudCBhcyBhIGNvbXBsZXRlIHN0cmluZzpcbi8vXG4vLyAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKCB0cmFuc2Zvcm1zIFssIDNELW9ubHkgXSApXG4vL1xuLy8gd2hlcmUgJ3RyYW5zZm9ybXMnIGlzIGEgc3BhY2Ugc2VwYXJhdGVkIGxpc3Qgb2YgYWxsIHRoZSB0cmFuc2Zvcm1zIHRvIGJlIGFwcGxpZWQuXG5AbWl4aW4gdHJhbnNmb3JtKCR0cmFuc2Zvcm0sICRvbmx5M2Q6IGZhbHNlKSB7XG4gIEBpZiAkb25seTNkIHtcbiAgICBAaW5jbHVkZSBleHBlcmltZW50YWwodHJhbnNmb3JtLCAkdHJhbnNmb3JtLCAtbW96LCAtd2Via2l0LCAtbywgLW1zLCBub3QgLWtodG1sLCBvZmZpY2lhbCk7IH1cbiAgQGVsc2Uge1xuICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbCh0cmFuc2Zvcm0sICR0cmFuc2Zvcm0sIC1tb3osIC13ZWJraXQsIC1vLCAtbXMsIG5vdCAta2h0bWwsIG9mZmljaWFsKTsgfSB9XG5cbi8vIFNob3J0Y3V0IHRvIHRhcmdldCBhbGwgYnJvd3NlcnMgd2l0aCAyRCB0cmFuc2Zvcm0gc3VwcG9ydFxuQG1peGluIHRyYW5zZm9ybTJkKCR0cmFucykge1xuICBAaW5jbHVkZSB0cmFuc2Zvcm0oJHRyYW5zLCBmYWxzZSk7IH1cblxuLy8gU2hvcnRjdXQgdG8gdGFyZ2V0IG9ubHkgYnJvd3NlcnMgd2l0aCAzRCB0cmFuc2Zvcm0gc3VwcG9ydFxuQG1peGluIHRyYW5zZm9ybTNkKCR0cmFucykge1xuICBAaW5jbHVkZSB0cmFuc2Zvcm0oJHRyYW5zLCB0cnVlKTsgfVxuXG4vLyBAZG9jIG9mZlxuLy8gM0QgUGFyYW1ldGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAZG9jIG9uXG5cbi8vIFNldCB0aGUgcGVyc3BlY3RpdmUgb2YgM0QgdHJhbnNmb3JtcyBvbiB0aGUgY2hpbGRyZW4gb2YgYW4gZWxlbWVudDpcbi8vXG4vLyAgICAgIEBpbmNsdWRlIHBlcnNwZWN0aXZlKCBwZXJzcGVjdGl2ZSApXG4vL1xuLy8gd2hlcmUgJ3BlcnNwZWN0aXZlJyBpcyBhIHVuaXRsZXNzIG51bWJlciByZXByZXNlbnRpbmcgdGhlIGRlcHRoIG9mIHRoZVxuLy8gei1heGlzLiBUaGUgaGlnaGVyIHRoZSBwZXJzcGVjdGl2ZSwgdGhlIG1vcmUgZXhhZ2dlcmF0ZWQgdGhlIGZvcmVzaG9ydGVuaW5nLlxuLy8gdmFsdWVzIGZyb20gNTAwIHRvIDEwMDAgYXJlIG1vcmUtb3ItbGVzcyBcIm5vcm1hbFwiIC0gYSBnb29kIHN0YXJ0aW5nLXBvaW50LlxuQG1peGluIHBlcnNwZWN0aXZlKCRwKSB7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChwZXJzcGVjdGl2ZSwgJHAsIC1tb3osIC13ZWJraXQsIC1vLCAtbXMsIG5vdCAta2h0bWwsIG9mZmljaWFsKTsgfVxuXG4vLyBTZXQgdGhlIG9yaWdpbiBwb3NpdGlvbiBmb3IgdGhlIHBlcnNwZWN0aXZlXG4vL1xuLy8gICAgICBAaW5jbHVkZSBwZXJzcGVjdGl2ZS1vcmlnaW4ob3JpZ2luLXggW29yaWdpbi15XSlcbi8vXG4vLyB3aGVyZSB0aGUgdHdvIGFyZ3VtZW50cyByZXByZXNlbnQgeC95IGNvb3JkaW5hdGVzXG5AbWl4aW4gcGVyc3BlY3RpdmUtb3JpZ2luKCRvcmlnaW46IDUwJSkge1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwocGVyc3BlY3RpdmUtb3JpZ2luLCAkb3JpZ2luLCAtbW96LCAtd2Via2l0LCAtbywgLW1zLCBub3QgLWtodG1sLCBvZmZpY2lhbCk7IH1cblxuLy8gRGV0ZXJtaW5lIHdoZXRoZXIgYSAzRCBvYmplY3RzIGNoaWxkcmVuIGFsc28gbGl2ZSBpbiB0aGUgZ2l2ZW4gM0Qgc3BhY2Vcbi8vXG4vLyAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybS1zdHlsZSggWyBzdHlsZSBdIClcbi8vXG4vLyB3aGVyZSBgc3R5bGVgIGNhbiBiZSBlaXRoZXIgYGZsYXRgIG9yIGBwcmVzZXJ2ZS0zZGAuXG4vLyBCcm93c2VycyBkZWZhdWx0IHRvIGBmbGF0YCwgbWl4aW4gZGVmYXVsdHMgdG8gYHByZXNlcnZlLTNkYC5cbkBtaXhpbiB0cmFuc2Zvcm0tc3R5bGUoJHN0eWxlOiBwcmVzZXJ2ZS0zZCkge1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwodHJhbnNmb3JtLXN0eWxlLCAkc3R5bGUsIC1tb3osIC13ZWJraXQsIC1vLCAtbXMsIG5vdCAta2h0bWwsIG9mZmljaWFsKTsgfVxuXG4vLyBEZXRlcm1pbmUgdGhlIHZpc2liaWxpdHkgb2YgYW4gZWxlbWVudCB3aGVuIGl0J3MgYmFjayBpcyB0dXJuZWRcbi8vXG4vLyAgICAgQGluY2x1ZGUgYmFja2ZhY2UtdmlzaWJpbGl0eSggWyB2aXNpYmlsaXR5IF0gKVxuLy9cbi8vIHdoZXJlIGB2aXNpYmlsaXR5YCBjYW4gYmUgZWl0aGVyIGB2aXNpYmxlYCBvciBgaGlkZGVuYC5cbi8vIEJyb3dzZXJzIGRlZmF1bHQgdG8gdmlzaWJsZSwgbWl4aW4gZGVmYXVsdHMgdG8gaGlkZGVuXG5AbWl4aW4gYmFja2ZhY2UtdmlzaWJpbGl0eSgkdmlzaWJpbGl0eTogaGlkZGVuKSB7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChiYWNrZmFjZS12aXNpYmlsaXR5LCAkdmlzaWJpbGl0eSwgLW1veiwgLXdlYmtpdCwgLW8sIC1tcywgbm90IC1raHRtbCwgb2ZmaWNpYWwpOyB9XG5cbi8vIEBkb2Mgb2ZmXG4vLyBUcmFuc2Zvcm0gUGFydGlhbHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRoZXNlIHdvcmsgd2VsbCBvbiB0aGVpciBvd24sIGJ1dCB0aGV5IGRvbid0IGFkZCB0byBlYWNoIG90aGVyLCB0aGV5IG92ZXJyaWRlLlxuLy8gVXNlIGFsb25nIHdpdGggdHJhbnNmb3JtIHBhcmFtZXRlciBtaXhpbnMgdG8gYWRqdXN0IG9yaWdpbiwgcGVyc3BlY3RpdmUgYW5kIHN0eWxlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gU2NhbGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAZG9jIG9uXG5cbi8vIFNjYWxlIGFuIG9iamVjdCBhbG9uZyB0aGUgeCBhbmQgeSBheGlzOlxuLy9cbi8vICAgICAgQGluY2x1ZGUgc2NhbGUoIFsgc2NhbGUteCwgc2NhbGUteSwgcGVyc3BlY3RpdmUsIDNELW9ubHkgXSApXG4vL1xuLy8gd2hlcmUgdGhlICdzY2FsZS0nIGFyZ3VtZW50cyBhcmUgdW5pdGxlc3MgbXVsdGlwbGllcnMgb2YgdGhlIHggYW5kIHkgZGltZW5zaW9uc1xuLy8gYW5kIHBlcnNwZWN0aXZlLCB3aGljaCB3b3JrcyB0aGUgc2FtZSBhcyB0aGUgc3RhbmQtYWxvbmUgcGVyc3BlY3RpdmUgcHJvcGVydHkvbWl4aW5cbi8vIGJ1dCBhcHBsaWVzIHRvIHRoZSBpbmRpdmlkdWFsIGVsZW1lbnQgKG11bHRpcGxpZWQgd2l0aCBhbnkgcGFyZW50IHBlcnNwZWN0aXZlKVxuLy9cbi8vICoqTm90ZSoqIFRoaXMgbWl4aW4gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgdHJhbnNmb3JtIG1peGlucy5cbkBtaXhpbiBzY2FsZSgkc2NhbGUteDogJGRlZmF1bHQtc2NhbGUteCwgJHNjYWxlLXk6ICRzY2FsZS14LCAkcGVyc3BlY3RpdmU6IGZhbHNlLCAkb25seTNkOiBmYWxzZSkge1xuICAkdHJhbnM6IHNjYWxlKCRzY2FsZS14LCAkc2NhbGUteSk7XG4gIEBpZiAkcGVyc3BlY3RpdmUge1xuICAgICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7IH1cblxuLy8gU2NhbGUgYW4gb2JqZWN0IGFsb25nIHRoZSB4IGF4aXNcbi8vIEBpbmNsdWRlIHNjYWxlWCggWyBzY2FsZS14LCBwZXJzcGVjdGl2ZSwgM0Qtb25seSBdIClcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gc2NhbGVYKCRzY2FsZTogJGRlZmF1bHQtc2NhbGUteCwgJHBlcnNwZWN0aXZlOiBmYWxzZSwgJG9ubHkzZDogZmFsc2UpIHtcbiAgJHRyYW5zOiBzY2FsZVgoJHNjYWxlKTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7XG4gICAgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0oJHRyYW5zLCAkb25seTNkKTsgfVxuXG4vLyBTY2FsZSBhbiBvYmplY3QgYWxvbmcgdGhlIHkgYXhpc1xuLy8gQGluY2x1ZGUgc2NhbGVZKCBbIHNjYWxlLXksIHBlcnNwZWN0aXZlLCAzRC1vbmx5IF0gKVxuLy9cbi8vICoqTm90ZSoqIFRoaXMgbWl4aW4gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgdHJhbnNmb3JtIG1peGlucy5cbkBtaXhpbiBzY2FsZVkoJHNjYWxlOiAkZGVmYXVsdC1zY2FsZS15LCAkcGVyc3BlY3RpdmU6IGZhbHNlLCAkb25seTNkOiBmYWxzZSkge1xuICAkdHJhbnM6IHNjYWxlWSgkc2NhbGUpO1xuICBAaWYgJHBlcnNwZWN0aXZlIHtcbiAgICAkdHJhbnM6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgJHRyYW5zOyB9XG4gIEBpbmNsdWRlIHRyYW5zZm9ybSgkdHJhbnMsICRvbmx5M2QpOyB9XG5cbi8vIFNjYWxlIGFuIG9iamVjdCBhbG9uZyB0aGUgeiBheGlzXG4vLyBAaW5jbHVkZSBzY2FsZVooIFsgc2NhbGUteiwgcGVyc3BlY3RpdmUgXSApXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHNjYWxlWigkc2NhbGU6ICRkZWZhdWx0LXNjYWxlLXosICRwZXJzcGVjdGl2ZTogZmFsc2UpIHtcbiAgJHRyYW5zOiBzY2FsZVooJHNjYWxlKTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7XG4gICAgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0zZCgkdHJhbnMpOyB9XG5cbi8vIFNjYWxlIGFuZCBvYmplY3QgYWxvbmcgYWxsIHRocmVlIGF4aXNcbi8vIEBpbmNsdWRlIHNjYWxlM2QoIFsgc2NhbGUteCwgc2NhbGUteSwgc2NhbGUteiwgcGVyc3BlY3RpdmUgXSApXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHNjYWxlM2QoJHNjYWxlLXg6ICRkZWZhdWx0LXNjYWxlLXgsICRzY2FsZS15OiAkZGVmYXVsdC1zY2FsZS15LCAkc2NhbGUtejogJGRlZmF1bHQtc2NhbGUteiwgJHBlcnNwZWN0aXZlOiBmYWxzZSkge1xuICAkdHJhbnM6IHNjYWxlM2QoJHNjYWxlLXgsICRzY2FsZS15LCAkc2NhbGUteik7XG4gIEBpZiAkcGVyc3BlY3RpdmUge1xuICAgICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtM2QoJHRyYW5zKTsgfVxuXG4vLyBAZG9jIG9mZlxuLy8gUm90YXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAZG9jIG9uXG5cbi8vIFJvdGF0ZSBhbiBvYmplY3QgYXJvdW5kIHRoZSB6IGF4aXMgICgyRClcbi8vIEBpbmNsdWRlIHJvdGF0ZSggWyByb3RhdGlvbiwgcGVyc3BlY3RpdmUsIDNELW9ubHkgXSApXG4vLyB3aGVyZSAncm90YXRpb24nIGlzIGFuIGFuZ2xlIHNldCBpbiBkZWdyZWVzIChkZWcpIG9yIHJhZGlhbiAocmFkKSB1bml0c1xuLy9cbi8vICoqTm90ZSoqIFRoaXMgbWl4aW4gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgdHJhbnNmb3JtIG1peGlucy5cbkBtaXhpbiByb3RhdGUoJHJvdGF0ZTogJGRlZmF1bHQtcm90YXRlLCAkcGVyc3BlY3RpdmU6IGZhbHNlLCAkb25seTNkOiBmYWxzZSkge1xuICAkdHJhbnM6IHJvdGF0ZSgkcm90YXRlKTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7XG4gICAgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0oJHRyYW5zLCAkb25seTNkKTsgfVxuXG4vLyBBIGxvbmdjdXQgZm9yICdyb3RhdGUnIGluIGNhc2UgeW91IGZvcmdldCB0aGF0ICd6JyBpcyBpbXBsaWVkXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHJvdGF0ZVooJHJvdGF0ZTogJGRlZmF1bHQtcm90YXRlLCAkcGVyc3BlY3RpdmU6IGZhbHNlLCAkb25seTNkOiBmYWxzZSkge1xuICBAaW5jbHVkZSByb3RhdGUoJHJvdGF0ZSwgJHBlcnNwZWN0aXZlLCAkb25seTNkKTsgfVxuXG4vLyBSb3RhdGUgYW4gb2JqZWN0IGFyb3VuZCB0aGUgeCBheGlzICgzRClcbi8vIEBpbmNsdWRlIHJvdGF0ZVgoIFsgcm90YXRpb24sIHBlcnNwZWN0aXZlIF0gKVxuLy9cbi8vICoqTm90ZSoqIFRoaXMgbWl4aW4gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgdHJhbnNmb3JtIG1peGlucy5cbkBtaXhpbiByb3RhdGVYKCRyb3RhdGU6ICRkZWZhdWx0LXJvdGF0ZSwgJHBlcnNwZWN0aXZlOiBmYWxzZSkge1xuICAkdHJhbnM6IHJvdGF0ZVgoJHJvdGF0ZSk7XG4gIEBpZiAkcGVyc3BlY3RpdmUge1xuICAgICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtM2QoJHRyYW5zKTsgfVxuXG4vLyBSb3RhdGUgYW4gb2JqZWN0IGFyb3VuZCB0aGUgeSBheGlzICgzRClcbi8vIEBpbmNsdWRlIHJvdGF0ZSggWyByb3RhdGlvbiwgcGVyc3BlY3RpdmUgXSApXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHJvdGF0ZVkoJHJvdGF0ZTogJGRlZmF1bHQtcm90YXRlLCAkcGVyc3BlY3RpdmU6IGZhbHNlKSB7XG4gICR0cmFuczogcm90YXRlWSgkcm90YXRlKTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7XG4gICAgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0zZCgkdHJhbnMpOyB9XG5cbi8vIFJvdGF0ZSBhbiBvYmplY3QgYXJvdW5kIGFuIGFyYml0cmFyeSBheGlzICgzRClcbi8vIEBpbmNsdWRlIHJvdGF0ZSggWyB2ZWN0b3IteCwgdmVjdG9yLXksIHZlY3Rvci16LCByb3RhdGlvbiwgcGVyc3BlY3RpdmUgXSApXG4vLyB3aGVyZSB0aGUgJ3ZlY3Rvci0nIGFyZ3VtZW50cyBhY2NlcHQgdW5pdGxlc3MgbnVtYmVycy5cbi8vIFRoZXNlIG51bWJlcnMgYXJlIG5vdCBpbXBvcnRhbnQgb24gdGhlaXIgb3duLCBidXQgaW4gcmVsYXRpb24gdG8gb25lIGFub3RoZXJcbi8vIGNyZWF0aW5nIGFuIGF4aXMgZnJvbSB5b3VyIHRyYW5zZm9ybS1vcmlnaW4sIGFsb25nIHRoZSBheGlzIG9mIFh4ID0gWXkgPSBaei5cbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gcm90YXRlM2QoJHZlY3Rvci14OiAkZGVmYXVsdC12ZWN0b3IteCwgJHZlY3Rvci15OiAkZGVmYXVsdC12ZWN0b3IteSwgJHZlY3Rvci16OiAkZGVmYXVsdC12ZWN0b3IteiwgJHJvdGF0ZTogJGRlZmF1bHQtcm90YXRlLCAkcGVyc3BlY3RpdmU6IGZhbHNlKSB7XG4gICR0cmFuczogcm90YXRlM2QoJHZlY3Rvci14LCAkdmVjdG9yLXksICR2ZWN0b3IteiwgJHJvdGF0ZSk7XG4gIEBpZiAkcGVyc3BlY3RpdmUge1xuICAgICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtM2QoJHRyYW5zKTsgfVxuXG4vLyBAZG9jIG9mZlxuLy8gVHJhbnNsYXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBAZG9jIG9uXG5cbi8vIE1vdmUgYW4gb2JqZWN0IGFsb25nIHRoZSB4IG9yIHkgYXhpcyAoMkQpXG4vLyBAaW5jbHVkZSB0cmFuc2xhdGUoIFsgdHJhbnNsYXRlLXgsIHRyYW5zbGF0ZS15LCBwZXJzcGVjdGl2ZSwgM0Qtb25seSBdIClcbi8vIHdoZXJlIHRoZSAndHJhbnNsYXRlLScgYXJndW1lbnRzIGFjY2VwdCBhbnkgZGlzdGFuY2UgaW4gcGVyY2VudGFnZXMgb3IgYWJzb2x1dGUgKHB4LCBjbSwgaW4sIGVtIGV0Yy4uKSB1bml0cy5cbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gdHJhbnNsYXRlKCR0cmFuc2xhdGUteDogJGRlZmF1bHQtdHJhbnNsYXRlLXgsICR0cmFuc2xhdGUteTogJGRlZmF1bHQtdHJhbnNsYXRlLXksICRwZXJzcGVjdGl2ZTogZmFsc2UsICRvbmx5M2Q6IGZhbHNlKSB7XG4gICR0cmFuczogdHJhbnNsYXRlKCR0cmFuc2xhdGUteCwgJHRyYW5zbGF0ZS15KTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7XG4gICAgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0oJHRyYW5zLCAkb25seTNkKTsgfVxuXG4vLyBNb3ZlIGFuIG9iamVjdCBhbG9uZyB0aGUgeCBheGlzICgyRClcbi8vIEBpbmNsdWRlIHRyYW5zbGF0ZSggWyB0cmFuc2xhdGUteCwgcGVyc3BlY3RpdmUsIDNELW9ubHkgXSApXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHRyYW5zbGF0ZVgoJHRyYW5zLXg6ICRkZWZhdWx0LXRyYW5zbGF0ZS14LCAkcGVyc3BlY3RpdmU6IGZhbHNlLCAkb25seTNkOiBmYWxzZSkge1xuICAkdHJhbnM6IHRyYW5zbGF0ZVgoJHRyYW5zLXgpO1xuICBAaWYgJHBlcnNwZWN0aXZlIHtcbiAgICAkdHJhbnM6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgJHRyYW5zOyB9XG4gIEBpbmNsdWRlIHRyYW5zZm9ybSgkdHJhbnMsICRvbmx5M2QpOyB9XG5cbi8vIE1vdmUgYW4gb2JqZWN0IGFsb25nIHRoZSB5IGF4aXMgKDJEKVxuLy8gQGluY2x1ZGUgdHJhbnNsYXRlKCBbIHRyYW5zbGF0ZS15LCBwZXJzcGVjdGl2ZSwgM0Qtb25seSBdIClcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gdHJhbnNsYXRlWSgkdHJhbnMteTogJGRlZmF1bHQtdHJhbnNsYXRlLXksICRwZXJzcGVjdGl2ZTogZmFsc2UsICRvbmx5M2Q6IGZhbHNlKSB7XG4gICR0cmFuczogdHJhbnNsYXRlWSgkdHJhbnMteSk7XG4gIEBpZiAkcGVyc3BlY3RpdmUge1xuICAgICR0cmFuczogcGVyc3BlY3RpdmUoJHBlcnNwZWN0aXZlKSAkdHJhbnM7IH1cbiAgQGluY2x1ZGUgdHJhbnNmb3JtKCR0cmFucywgJG9ubHkzZCk7IH1cblxuLy8gTW92ZSBhbiBvYmplY3QgYWxvbmcgdGhlIHogYXhpcyAoM0QpXG4vLyBAaW5jbHVkZSB0cmFuc2xhdGUoIFsgdHJhbnNsYXRlLXosIHBlcnNwZWN0aXZlIF0gKVxuLy9cbi8vICoqTm90ZSoqIFRoaXMgbWl4aW4gY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgdHJhbnNmb3JtIG1peGlucy5cbkBtaXhpbiB0cmFuc2xhdGVaKCR0cmFucy16OiAkZGVmYXVsdC10cmFuc2xhdGUteiwgJHBlcnNwZWN0aXZlOiBmYWxzZSkge1xuICAkdHJhbnM6IHRyYW5zbGF0ZVooJHRyYW5zLXopO1xuICBAaWYgJHBlcnNwZWN0aXZlIHtcbiAgICAkdHJhbnM6IHBlcnNwZWN0aXZlKCRwZXJzcGVjdGl2ZSkgJHRyYW5zOyB9XG4gIEBpbmNsdWRlIHRyYW5zZm9ybTNkKCR0cmFucyk7IH1cblxuLy8gTW92ZSBhbiBvYmplY3QgYWxvbmcgdGhlIHgsIHkgYW5kIHogYXhpcyAoM0QpXG4vLyBAaW5jbHVkZSB0cmFuc2xhdGUoIFsgdHJhbnNsYXRlLXgsIHRyYW5zbGF0ZS15LCB0cmFuc2xhdGUteiwgcGVyc3BlY3RpdmUgXSApXG4vL1xuLy8gKipOb3RlKiogVGhpcyBtaXhpbiBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBvdGhlciB0cmFuc2Zvcm0gbWl4aW5zLlxuQG1peGluIHRyYW5zbGF0ZTNkKCR0cmFuc2xhdGUteDogJGRlZmF1bHQtdHJhbnNsYXRlLXgsICR0cmFuc2xhdGUteTogJGRlZmF1bHQtdHJhbnNsYXRlLXksICR0cmFuc2xhdGUtejogJGRlZmF1bHQtdHJhbnNsYXRlLXosICRwZXJzcGVjdGl2ZTogZmFsc2UpIHtcbiAgJHRyYW5zOiB0cmFuc2xhdGUzZCgkdHJhbnNsYXRlLXgsICR0cmFuc2xhdGUteSwgJHRyYW5zbGF0ZS16KTtcbiAgQGlmICRwZXJzcGVjdGl2ZSB7XG4gICAgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpICR0cmFuczsgfVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0zZCgkdHJhbnMpOyB9XG5cbi8vIEBkb2Mgb2ZmXG4vLyBTa2V3IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEBkb2Mgb25cblxuLy8gU2tldyBhbiBlbGVtZW50OlxuLy9cbi8vICAgICBAaW5jbHVkZSBza2V3KCBbIHNrZXcteCwgc2tldy15LCAzRC1vbmx5IF0gKVxuLy9cbi8vIHdoZXJlIHRoZSAnc2tldy0nIGFyZ3VtZW50cyBhY2NlcHQgY3NzIGFuZ2xlcyBpbiBkZWdyZWVzIChkZWcpIG9yIHJhZGlhbiAocmFkKSB1bml0cy5cbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gc2tldygkc2tldy14OiAkZGVmYXVsdC1za2V3LXgsICRza2V3LXk6ICRkZWZhdWx0LXNrZXcteSwgJG9ubHkzZDogZmFsc2UpIHtcbiAgJHRyYW5zOiBza2V3KCRza2V3LXgsICRza2V3LXkpO1xuICBAaW5jbHVkZSB0cmFuc2Zvcm0oJHRyYW5zLCAkb25seTNkKTsgfVxuXG4vLyBTa2V3IGFuIGVsZW1lbnQgYWxvbmcgdGhlIHggYXhpelxuLy9cbi8vICAgICBAaW5jbHVkZSBza2V3KCBbIHNrZXcteCwgM0Qtb25seSBdIClcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gc2tld1goJHNrZXcteDogJGRlZmF1bHQtc2tldy14LCAkb25seTNkOiBmYWxzZSkge1xuICAkdHJhbnM6IHNrZXdYKCRza2V3LXgpO1xuICBAaW5jbHVkZSB0cmFuc2Zvcm0oJHRyYW5zLCAkb25seTNkKTsgfVxuXG4vLyBTa2V3IGFuIGVsZW1lbnQgYWxvbmcgdGhlIHkgYXhpc1xuLy9cbi8vICAgICBAaW5jbHVkZSBza2V3KCBbIHNrZXcteSwgM0Qtb25seSBdIClcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gc2tld1koJHNrZXcteTogJGRlZmF1bHQtc2tldy15LCAkb25seTNkOiBmYWxzZSkge1xuICAkdHJhbnM6IHNrZXdZKCRza2V3LXkpO1xuICBAaW5jbHVkZSB0cmFuc2Zvcm0oJHRyYW5zLCAkb25seTNkKTsgfVxuXG4vLyBGdWxsIHRyYW5zZm9ybSBtaXhpbnNcbi8vIEZvciBzZXR0aW5ncyBhbnkgY29tYmluYXRpb24gb2YgdHJhbnNmb3JtcyBhcyBhcmd1bWVudHNcbi8vIFRoZXNlIGFyZSBjb21wbGV4IGFuZCBub3QgaGlnaGx5IHJlY29tbWVuZGVkIGZvciBkYWlseSB1c2UuIFRoZXkgYXJlIG1haW5seVxuLy8gaGVyZSBmb3IgYmFja3dhcmQtY29tcGF0aWJpbGl0eSBwdXJwb3Nlcy5cbi8vXG4vLyAqIHRoZXkgaW5jbHVkZSBvcmlnaW4gYWRqdXN0bWVudHNcbi8vICogc2NhbGUgdGFrZXMgYSBtdWx0aXBsaWVyICh1bml0bGVzcyksIHJvdGF0ZSBhbmQgc2tldyB0YWtlIGRlZ3JlZXMgKGRlZylcbi8vXG4vLyAqKk5vdGUqKiBUaGlzIG1peGluIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHRyYW5zZm9ybSBtaXhpbnMuXG5AbWl4aW4gY3JlYXRlLXRyYW5zZm9ybSgkcGVyc3BlY3RpdmU6IGZhbHNlLCAkc2NhbGUteDogZmFsc2UsICRzY2FsZS15OiBmYWxzZSwgJHNjYWxlLXo6IGZhbHNlLCAkcm90YXRlLXg6IGZhbHNlLCAkcm90YXRlLXk6IGZhbHNlLCAkcm90YXRlLXo6IGZhbHNlLCAkcm90YXRlM2Q6IGZhbHNlLCAkdHJhbnMteDogZmFsc2UsICR0cmFucy15OiBmYWxzZSwgJHRyYW5zLXo6IGZhbHNlLCAkc2tldy14OiBmYWxzZSwgJHNrZXcteTogZmFsc2UsICRvcmlnaW4teDogZmFsc2UsICRvcmlnaW4teTogZmFsc2UsICRvcmlnaW4tejogZmFsc2UsICRvbmx5M2Q6IGZhbHNlKSB7XG4gICR0cmFuczogdW5xdW90ZShcIlwiKTtcbiAgLy8gcGVyc3BlY3RpdmVcbiAgQGlmICRwZXJzcGVjdGl2ZSB7XG4gICAgJHRyYW5zOiBwZXJzcGVjdGl2ZSgkcGVyc3BlY3RpdmUpOyB9XG4gIC8vIHNjYWxlXG4gIEBpZiAkc2NhbGUteCBhbmQgJHNjYWxlLXkge1xuICAgIEBpZiAkc2NhbGUteiB7XG4gICAgICAkdHJhbnM6ICR0cmFucyBzY2FsZTNkKCRzY2FsZS14LCAkc2NhbGUteSwgJHNjYWxlLXopOyB9XG4gICAgQGVsc2Uge1xuICAgICAgJHRyYW5zOiAkdHJhbnMgc2NhbGUoJHNjYWxlLXgsICRzY2FsZS15KTsgfSB9XG4gIEBlbHNlIHtcbiAgICBAaWYgJHNjYWxlLXgge1xuICAgICAgJHRyYW5zOiAkdHJhbnMgc2NhbGVYKCRzY2FsZS14KTsgfVxuICAgIEBpZiAkc2NhbGUteSB7XG4gICAgICAkdHJhbnM6ICR0cmFucyBzY2FsZVkoJHNjYWxlLXkpOyB9XG4gICAgQGlmICRzY2FsZS16IHtcbiAgICAgICR0cmFuczogJHRyYW5zIHNjYWxlWigkc2NhbGUteik7IH0gfVxuICAvLyByb3RhdGVcbiAgQGlmICRyb3RhdGUteCB7XG4gICAgJHRyYW5zOiAkdHJhbnMgcm90YXRlWCgkcm90YXRlLXgpOyB9XG4gIEBpZiAkcm90YXRlLXkge1xuICAgICR0cmFuczogJHRyYW5zIHJvdGF0ZVkoJHJvdGF0ZS15KTsgfVxuICBAaWYgJHJvdGF0ZS16IHtcbiAgICAkdHJhbnM6ICR0cmFucyByb3RhdGVaKCRyb3RhdGUteik7IH1cbiAgQGlmICRyb3RhdGUzZCB7XG4gICAgJHRyYW5zOiAkdHJhbnMgcm90YXRlM2QoJHJvdGF0ZTNkKTsgfVxuICAvLyB0cmFuc2xhdGVcbiAgQGlmICR0cmFucy14IGFuZCAkdHJhbnMteSB7XG4gICAgQGlmICR0cmFucy16IHtcbiAgICAgICR0cmFuczogJHRyYW5zIHRyYW5zbGF0ZTNkKCR0cmFucy14LCAkdHJhbnMteSwgJHRyYW5zLXopOyB9XG4gICAgQGVsc2Uge1xuICAgICAgJHRyYW5zOiAkdHJhbnMgdHJhbnNsYXRlKCR0cmFucy14LCAkdHJhbnMteSk7IH0gfVxuICBAZWxzZSB7XG4gICAgQGlmICR0cmFucy14IHtcbiAgICAgICR0cmFuczogJHRyYW5zIHRyYW5zbGF0ZVgoJHRyYW5zLXgpOyB9XG4gICAgQGlmICR0cmFucy15IHtcbiAgICAgICR0cmFuczogJHRyYW5zIHRyYW5zbGF0ZVkoJHRyYW5zLXkpOyB9XG4gICAgQGlmICR0cmFucy16IHtcbiAgICAgICR0cmFuczogJHRyYW5zIHRyYW5zbGF0ZVooJHRyYW5zLXopOyB9IH1cbiAgLy8gc2tld1xuICBAaWYgJHNrZXcteCBhbmQgJHNrZXcteSB7XG4gICAgJHRyYW5zOiAkdHJhbnMgc2tldygkc2tldy14LCAkc2tldy15KTsgfVxuICBAZWxzZSB7XG4gICAgQGlmICRza2V3LXgge1xuICAgICAgJHRyYW5zOiAkdHJhbnMgc2tld1goJHNrZXcteCk7IH1cbiAgICBAaWYgJHNrZXcteSB7XG4gICAgICAkdHJhbnM6ICR0cmFucyBza2V3WSgkc2tldy15KTsgfSB9XG4gIC8vIGFwcGx5IGl0IVxuICBAaW5jbHVkZSB0cmFuc2Zvcm0oJHRyYW5zLCAkb25seTNkKTtcbiAgQGluY2x1ZGUgdHJhbnNmb3JtLW9yaWdpbigkb3JpZ2luLXgsICRvcmlnaW4teSwgJG9yaWdpbi16LCAkb25seTNkKTsgfVxuXG4vLyBBIHNpbXBsaWZpZWQgc2V0IG9mIG9wdGlvbnNcbi8vIGJhY2t3YXJkcy1jb21wYXRpYmxlIHdpdGggdGhlIHByZXZpb3VzIHZlcnNpb24gb2YgdGhlICd0cmFuc2Zvcm0nIG1peGluXG5AbWl4aW4gc2ltcGxlLXRyYW5zZm9ybSgkc2NhbGU6IGZhbHNlLCAkcm90YXRlOiBmYWxzZSwgJHRyYW5zLXg6IGZhbHNlLCAkdHJhbnMteTogZmFsc2UsICRza2V3LXg6IGZhbHNlLCAkc2tldy15OiBmYWxzZSwgJG9yaWdpbi14OiBmYWxzZSwgJG9yaWdpbi15OiBmYWxzZSkge1xuICBAaW5jbHVkZSBjcmVhdGUtdHJhbnNmb3JtKGZhbHNlLCAkc2NhbGUsICRzY2FsZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgJHJvdGF0ZSwgZmFsc2UsICR0cmFucy14LCAkdHJhbnMteSwgZmFsc2UsICRza2V3LXgsICRza2V3LXksICRvcmlnaW4teCwgJG9yaWdpbi15LCBmYWxzZSwgZmFsc2UpOyB9XG4iLCJAaW1wb3J0IFwic2hhcmVkXCI7XG5cbi8vIENTUyBUcmFuc2l0aW9uc1xuLy8gQ3VycmVudGx5IG9ubHkgd29ya3MgaW4gV2Via2l0LlxuLy9cbi8vICogZXhwZWN0ZWQgaW4gQ1NTMywgRmlyZUZveCAzLjYvNyBhbmQgT3BlcmEgUHJlc3RvIDIuM1xuLy8gKiBXZSdsbCBiZSBwcmVwYXJlZC5cbi8vXG4vLyBJbmNsdWRpbmcgdGhpcyBzdWJtb2R1bGUgc2V0cyBmb2xsb3dpbmcgZGVmYXVsdHMgZm9yIHRoZSBtaXhpbnM6XG4vL1xuLy8gICAgICRkZWZhdWx0LXRyYW5zaXRpb24tcHJvcGVydHkgOiBhbGxcbi8vICAgICAkZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uIDogMXNcbi8vICAgICAkZGVmYXVsdC10cmFuc2l0aW9uLWZ1bmN0aW9uIDogZmFsc2Vcbi8vICAgICAkZGVmYXVsdC10cmFuc2l0aW9uLWRlbGF5ICAgIDogZmFsc2Vcbi8vXG4vLyBPdmVycmlkZSB0aGVtIGlmIHlvdSBsaWtlLiBUaW1pbmctZnVuY3Rpb24gYW5kIGRlbGF5IGFyZSBzZXQgdG8gZmFsc2UgZm9yIGJyb3dzZXIgZGVmYXVsdHMgKGVhc2UsIDBzKS5cblxuJGRlZmF1bHQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsICFkZWZhdWx0O1xuXG4kZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAxcyAhZGVmYXVsdDtcblxuJGRlZmF1bHQtdHJhbnNpdGlvbi1mdW5jdGlvbjogZmFsc2UgIWRlZmF1bHQ7XG5cbiRkZWZhdWx0LXRyYW5zaXRpb24tZGVsYXk6IGZhbHNlICFkZWZhdWx0O1xuXG4kdHJhbnNpdGlvbmFibGUtcHJlZml4ZWQtdmFsdWVzOiB0cmFuc2Zvcm0sIHRyYW5zZm9ybS1vcmlnaW4gIWRlZmF1bHQ7XG5cbi8vIE9uZSBvciBtb3JlIHByb3BlcnRpZXMgdG8gdHJhbnNpdGlvblxuLy9cbi8vICogZm9yIG11bHRpcGxlLCB1c2UgYSBjb21tYS1kZWxpbWl0ZWQgbGlzdFxuLy8gKiBhbHNvIGFjY2VwdHMgXCJhbGxcIiBvciBcIm5vbmVcIlxuXG5AbWl4aW4gdHJhbnNpdGlvbi1wcm9wZXJ0eSgkcHJvcGVydHktMTogJGRlZmF1bHQtdHJhbnNpdGlvbi1wcm9wZXJ0eSwgJHByb3BlcnR5LTI6IGZhbHNlLCAkcHJvcGVydHktMzogZmFsc2UsICRwcm9wZXJ0eS00OiBmYWxzZSwgJHByb3BlcnR5LTU6IGZhbHNlLCAkcHJvcGVydHktNjogZmFsc2UsICRwcm9wZXJ0eS03OiBmYWxzZSwgJHByb3BlcnR5LTg6IGZhbHNlLCAkcHJvcGVydHktOTogZmFsc2UsICRwcm9wZXJ0eS0xMDogZmFsc2UpIHtcbiAgQGlmIHR5cGUtb2YoJHByb3BlcnR5LTEpID09IHN0cmluZyB7XG4gICAgJHByb3BlcnR5LTE6IHVucXVvdGUoJHByb3BlcnR5LTEpOyB9XG4gICRwcm9wZXJ0aWVzOiBjb21wYWN0KCRwcm9wZXJ0eS0xLCAkcHJvcGVydHktMiwgJHByb3BlcnR5LTMsICRwcm9wZXJ0eS00LCAkcHJvcGVydHktNSwgJHByb3BlcnR5LTYsICRwcm9wZXJ0eS03LCAkcHJvcGVydHktOCwgJHByb3BlcnR5LTksICRwcm9wZXJ0eS0xMCk7XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXdlYmtpdCB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBwcmVmaXhlZC1mb3ItdHJhbnNpdGlvbigtd2Via2l0LCAkcHJvcGVydGllcyk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSB7XG4gICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiBwcmVmaXhlZC1mb3ItdHJhbnNpdGlvbigtbW96LCAkcHJvcGVydGllcyk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEge1xuICAgIC1vLXRyYW5zaXRpb24tcHJvcGVydHk6IHByZWZpeGVkLWZvci10cmFuc2l0aW9uKC1vLCAkcHJvcGVydGllcyk7IH1cbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogJHByb3BlcnRpZXM7IH1cblxuLy8gT25lIG9yIG1vcmUgZHVyYXRpb25zIGluIHNlY29uZHNcbi8vXG4vLyAqIGZvciBtdWx0aXBsZSwgdXNlIGEgY29tbWEtZGVsaW1pdGVkIGxpc3Rcbi8vICogdGhlc2UgZHVyYXRpb25zIHdpbGwgYWZmZWN0IHRoZSBwcm9wZXJ0aWVzIGluIHRoZSBzYW1lIGxpc3QgcG9zaXRpb25cblxuQG1peGluIHRyYW5zaXRpb24tZHVyYXRpb24oJGR1cmF0aW9uLTE6ICRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24sICRkdXJhdGlvbi0yOiBmYWxzZSwgJGR1cmF0aW9uLTM6IGZhbHNlLCAkZHVyYXRpb24tNDogZmFsc2UsICRkdXJhdGlvbi01OiBmYWxzZSwgJGR1cmF0aW9uLTY6IGZhbHNlLCAkZHVyYXRpb24tNzogZmFsc2UsICRkdXJhdGlvbi04OiBmYWxzZSwgJGR1cmF0aW9uLTk6IGZhbHNlLCAkZHVyYXRpb24tMTA6IGZhbHNlKSB7XG4gIEBpZiB0eXBlLW9mKCRkdXJhdGlvbi0xKSA9PSBzdHJpbmcge1xuICAgICRkdXJhdGlvbi0xOiB1bnF1b3RlKCRkdXJhdGlvbi0xKTsgfVxuICAkZHVyYXRpb25zOiBjb21wYWN0KCRkdXJhdGlvbi0xLCAkZHVyYXRpb24tMiwgJGR1cmF0aW9uLTMsICRkdXJhdGlvbi00LCAkZHVyYXRpb24tNSwgJGR1cmF0aW9uLTYsICRkdXJhdGlvbi03LCAkZHVyYXRpb24tOCwgJGR1cmF0aW9uLTksICRkdXJhdGlvbi0xMCk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbCh0cmFuc2l0aW9uLWR1cmF0aW9uLCAkZHVyYXRpb25zLCAtbW96LCAtd2Via2l0LCAtbywgbm90IC1tcywgbm90IC1raHRtbCwgb2ZmaWNpYWwpOyB9XG5cbi8vIE9uZSBvciBtb3JlIHRpbWluZyBmdW5jdGlvbnNcbi8vXG4vLyAqIFsgZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0IHwgY3ViaWMtYmV6aWVyKHgxLCB5MSwgeDIsIHkyKV1cbi8vICogRm9yIG11bHRpcGxlLCB1c2UgYSBjb21tYS1kZWxpbWl0ZWQgbGlzdFxuLy8gKiBUaGVzZSBmdW5jdGlvbnMgd2lsbCBlZmZlY3QgdGhlIHByb3BlcnRpZXMgaW4gdGhlIHNhbWUgbGlzdCBwb3NpdGlvblxuXG5AbWl4aW4gdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oJGZ1bmN0aW9uLTE6ICRkZWZhdWx0LXRyYW5zaXRpb24tZnVuY3Rpb24sICRmdW5jdGlvbi0yOiBmYWxzZSwgJGZ1bmN0aW9uLTM6IGZhbHNlLCAkZnVuY3Rpb24tNDogZmFsc2UsICRmdW5jdGlvbi01OiBmYWxzZSwgJGZ1bmN0aW9uLTY6IGZhbHNlLCAkZnVuY3Rpb24tNzogZmFsc2UsICRmdW5jdGlvbi04OiBmYWxzZSwgJGZ1bmN0aW9uLTk6IGZhbHNlLCAkZnVuY3Rpb24tMTA6IGZhbHNlKSB7XG4gICRmdW5jdGlvbi0xOiB1bnF1b3RlKCRmdW5jdGlvbi0xKTtcbiAgJGZ1bmN0aW9uczogY29tcGFjdCgkZnVuY3Rpb24tMSwgJGZ1bmN0aW9uLTIsICRmdW5jdGlvbi0zLCAkZnVuY3Rpb24tNCwgJGZ1bmN0aW9uLTUsICRmdW5jdGlvbi02LCAkZnVuY3Rpb24tNywgJGZ1bmN0aW9uLTgsICRmdW5jdGlvbi05LCAkZnVuY3Rpb24tMTApO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sICRmdW5jdGlvbnMsIC1tb3osIC13ZWJraXQsIC1vLCBub3QgLW1zLCBub3QgLWtodG1sLCBvZmZpY2lhbCk7IH1cblxuLy8gT25lIG9yIG1vcmUgdHJhbnNpdGlvbi1kZWxheXMgaW4gc2Vjb25kc1xuLy9cbi8vICogZm9yIG11bHRpcGxlLCB1c2UgYSBjb21tYS1kZWxpbWl0ZWQgbGlzdFxuLy8gKiB0aGVzZSBkZWxheXMgd2lsbCBlZmZlY3QgdGhlIHByb3BlcnRpZXMgaW4gdGhlIHNhbWUgbGlzdCBwb3NpdGlvblxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSgkZGVsYXktMTogJGRlZmF1bHQtdHJhbnNpdGlvbi1kZWxheSwgJGRlbGF5LTI6IGZhbHNlLCAkZGVsYXktMzogZmFsc2UsICRkZWxheS00OiBmYWxzZSwgJGRlbGF5LTU6IGZhbHNlLCAkZGVsYXktNjogZmFsc2UsICRkZWxheS03OiBmYWxzZSwgJGRlbGF5LTg6IGZhbHNlLCAkZGVsYXktOTogZmFsc2UsICRkZWxheS0xMDogZmFsc2UpIHtcbiAgQGlmIHR5cGUtb2YoJGRlbGF5LTEpID09IHN0cmluZyB7XG4gICAgJGRlbGF5LTE6IHVucXVvdGUoJGRlbGF5LTEpOyB9XG4gICRkZWxheXM6IGNvbXBhY3QoJGRlbGF5LTEsICRkZWxheS0yLCAkZGVsYXktMywgJGRlbGF5LTQsICRkZWxheS01LCAkZGVsYXktNiwgJGRlbGF5LTcsICRkZWxheS04LCAkZGVsYXktOSwgJGRlbGF5LTEwKTtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKHRyYW5zaXRpb24tZGVsYXksICRkZWxheXMsIC1tb3osIC13ZWJraXQsIC1vLCBub3QgLW1zLCBub3QgLWtodG1sLCBvZmZpY2lhbCk7IH1cblxuLy8gVHJhbnNpdGlvbiBhbGwtaW4tb25lIHNob3J0aGFuZFxuXG5AbWl4aW4gc2luZ2xlLXRyYW5zaXRpb24oJHByb3BlcnR5OiAkZGVmYXVsdC10cmFuc2l0aW9uLXByb3BlcnR5LCAkZHVyYXRpb246ICRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24sICRmdW5jdGlvbjogJGRlZmF1bHQtdHJhbnNpdGlvbi1mdW5jdGlvbiwgJGRlbGF5OiAkZGVmYXVsdC10cmFuc2l0aW9uLWRlbGF5KSB7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oY29tcGFjdCgkcHJvcGVydHkgJGR1cmF0aW9uICRmdW5jdGlvbiAkZGVsYXkpKTsgfVxuXG5AbWl4aW4gdHJhbnNpdGlvbigkdHJhbnNpdGlvbi0xOiBkZWZhdWx0LCAkdHJhbnNpdGlvbi0yOiBmYWxzZSwgJHRyYW5zaXRpb24tMzogZmFsc2UsICR0cmFuc2l0aW9uLTQ6IGZhbHNlLCAkdHJhbnNpdGlvbi01OiBmYWxzZSwgJHRyYW5zaXRpb24tNjogZmFsc2UsICR0cmFuc2l0aW9uLTc6IGZhbHNlLCAkdHJhbnNpdGlvbi04OiBmYWxzZSwgJHRyYW5zaXRpb24tOTogZmFsc2UsICR0cmFuc2l0aW9uLTEwOiBmYWxzZSkge1xuICBAaWYgJHRyYW5zaXRpb24tMSA9PSBkZWZhdWx0IHtcbiAgICAkdHJhbnNpdGlvbi0xOiBjb21wYWN0KCRkZWZhdWx0LXRyYW5zaXRpb24tcHJvcGVydHkgJGRlZmF1bHQtdHJhbnNpdGlvbi1kdXJhdGlvbiAkZGVmYXVsdC10cmFuc2l0aW9uLWZ1bmN0aW9uICRkZWZhdWx0LXRyYW5zaXRpb24tZGVsYXkpOyB9XG4gICR0cmFuc2l0aW9uczogZmFsc2U7XG4gIEBpZiB0eXBlLW9mKCR0cmFuc2l0aW9uLTEpID09IGxpc3QgYW5kIHR5cGUtb2YobnRoKCR0cmFuc2l0aW9uLTEsIDEpKSA9PSBsaXN0IHtcbiAgICAkdHJhbnNpdGlvbnM6IGpvaW4oJHRyYW5zaXRpb24tMSwgY29tcGFjdCgkdHJhbnNpdGlvbi0yLCAkdHJhbnNpdGlvbi0zLCAkdHJhbnNpdGlvbi00LCAkdHJhbnNpdGlvbi01LCAkdHJhbnNpdGlvbi02LCAkdHJhbnNpdGlvbi03LCAkdHJhbnNpdGlvbi04LCAkdHJhbnNpdGlvbi05LCAkdHJhbnNpdGlvbi0xMCksIGNvbW1hKTsgfVxuICBAZWxzZSB7XG4gICAgJHRyYW5zaXRpb25zOiBjb21wYWN0KCR0cmFuc2l0aW9uLTEsICR0cmFuc2l0aW9uLTIsICR0cmFuc2l0aW9uLTMsICR0cmFuc2l0aW9uLTQsICR0cmFuc2l0aW9uLTUsICR0cmFuc2l0aW9uLTYsICR0cmFuc2l0aW9uLTcsICR0cmFuc2l0aW9uLTgsICR0cmFuc2l0aW9uLTksICR0cmFuc2l0aW9uLTEwKTsgfVxuICAkZGVsYXlzOiBjb21tYS1saXN0KCk7XG4gICRoYXMtZGVsYXlzOiBmYWxzZTtcbiAgJHdlYmtpdC12YWx1ZTogY29tbWEtbGlzdCgpO1xuICAkbW96LXZhbHVlOiBjb21tYS1saXN0KCk7XG4gICRvLXZhbHVlOiBjb21tYS1saXN0KCk7XG4gIC8vIFRoaXMgYmxvY2sgY2FuIGJlIG1hZGUgY29uc2lkZXJhYmx5IHNpbXBsZXIgYXQgdGhlIHBvaW50IGluIHRpbWUgdGhhdFxuICAvLyB3ZSBubyBsb25nZXIgbmVlZCB0byBkZWFsIHdpdGggdGhlIGRpZmZlcmVuY2VzIGluIGhvdyBkZWxheXMgYXJlIHRyZWF0ZWQuXG4gIEBlYWNoICR0cmFuc2l0aW9uIGluICR0cmFuc2l0aW9ucyB7XG4gICAgLy8gRXh0cmFjdCB0aGUgdmFsdWVzIGZyb20gdGhlIGxpc3RcbiAgICAvLyAodGhpcyB3b3VsZCBiZSBjbGVhbmVyIGlmIG50aCB0b29rIGEgM3JkIGFyZ3VtZW50IHRvIHByb3ZpZGUgYSBkZWZhdWx0IHZhbHVlKS5cbiAgICAkcHJvcGVydHk6IG50aCgkdHJhbnNpdGlvbiwgMSk7XG4gICAgJGR1cmF0aW9uOiBmYWxzZTtcbiAgICAkdGltaW5nLWZ1bmN0aW9uOiBmYWxzZTtcbiAgICAkZGVsYXk6IGZhbHNlO1xuICAgIEBpZiBsZW5ndGgoJHRyYW5zaXRpb24pID4gMSB7XG4gICAgICAkZHVyYXRpb246IG50aCgkdHJhbnNpdGlvbiwgMik7IH1cbiAgICBAaWYgbGVuZ3RoKCR0cmFuc2l0aW9uKSA+IDIge1xuICAgICAgJHRpbWluZy1mdW5jdGlvbjogbnRoKCR0cmFuc2l0aW9uLCAzKTsgfVxuICAgIEBpZiBsZW5ndGgoJHRyYW5zaXRpb24pID4gMyB7XG4gICAgICAkZGVsYXk6IG50aCgkdHJhbnNpdGlvbiwgNCk7XG4gICAgICAkaGFzLWRlbGF5czogdHJ1ZTsgfVxuICAgIC8vIElmIGEgZGVsYXkgaXMgcHJvdmlkZWQgd2l0aG91dCBhIHRpbWluZyBmdW5jdGlvblxuICAgIEBpZiBpcy10aW1lKCR0aW1pbmctZnVuY3Rpb24pIGFuZCBub3QgJGRlbGF5IHtcbiAgICAgICRkZWxheTogJHRpbWluZy1mdW5jdGlvbjtcbiAgICAgICR0aW1pbmctZnVuY3Rpb246IGZhbHNlO1xuICAgICAgJGhhcy1kZWxheXM6IHRydWU7IH1cbiAgICAvLyBLZWVwIGEgbGlzdCBvZiBkZWxheXMgaW4gY2FzZSBvbmUgaXMgc3BlY2lmaWVkXG4gICAgJGRlbGF5czogYXBwZW5kKCRkZWxheXMsIGlmKCRkZWxheSwgJGRlbGF5LCAwcykpO1xuICAgICR3ZWJraXQtdmFsdWU6IGFwcGVuZCgkd2Via2l0LXZhbHVlLCBjb21wYWN0KHByZWZpeGVkLWZvci10cmFuc2l0aW9uKC13ZWJraXQsICRwcm9wZXJ0eSkgJGR1cmF0aW9uICR0aW1pbmctZnVuY3Rpb24pKTtcbiAgICAkbW96LXZhbHVlOiBhcHBlbmQoJG1vei12YWx1ZSwgY29tcGFjdChwcmVmaXhlZC1mb3ItdHJhbnNpdGlvbigtbW96LCAkcHJvcGVydHkpICRkdXJhdGlvbiAkdGltaW5nLWZ1bmN0aW9uICRkZWxheSkpO1xuICAgICRvLXZhbHVlOiBhcHBlbmQoJG8tdmFsdWUsIGNvbXBhY3QocHJlZml4ZWQtZm9yLXRyYW5zaXRpb24oLW8sICRwcm9wZXJ0eSkgJGR1cmF0aW9uICR0aW1pbmctZnVuY3Rpb24gJGRlbGF5KSk7IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0IHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR3ZWJraXQtdmFsdWU7XG4gICAgLy8gb2xkIHdlYmtpdCBkb2Vzbid0IHN1cHBvcnQgdGhlIGRlbGF5IHBhcmFtZXRlciBpbiB0aGUgc2hvcnRoYW5kIHNvIHdlIHByb2dyZXNzaXZlbHkgZW5oYW5jZSBpdC5cbiAgICBAaWYgJGhhcy1kZWxheXMge1xuICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiAkZGVsYXlzOyB9IH1cbiAgQGlmICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSB7XG4gICAgLW1vei10cmFuc2l0aW9uOiAkbW96LXZhbHVlOyB9XG4gIEBpZiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhIHtcbiAgICAtby10cmFuc2l0aW9uOiAkby12YWx1ZTsgfVxuICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbnM7IH1cblxuLy8gY29lcmNlIGEgbGlzdCB0byBiZSBjb21tYSBkZWxpbWl0ZWQgb3IgbWFrZSBhIG5ldywgZW1wdHkgY29tbWEgZGVsaW1pdGVkIGxpc3QuXG5AZnVuY3Rpb24gY29tbWEtbGlzdCgkbGlzdDogKCkpIHtcbiAgQHJldHVybiBqb2luKCgpLCAkbGlzdCwgY29tbWEpOyB9XG5cbi8vIFJldHVybnMgYCRwcm9wZXJ0eWAgd2l0aCB0aGUgZ2l2ZW4gcHJlZml4IGlmIGl0IGlzIGZvdW5kIGluIGAkdHJhbnNpdGlvbmFibGUtcHJlZml4ZWQtdmFsdWVzYC5cbkBmdW5jdGlvbiBwcmVmaXhlZC1mb3ItdHJhbnNpdGlvbigkcHJlZml4LCAkcHJvcGVydHkpIHtcbiAgQGlmIHR5cGUtb2YoJHByb3BlcnR5KSA9PSBsaXN0IHtcbiAgICAkbmV3LWxpc3Q6IGNvbW1hLWxpc3QoKTtcbiAgICBAZWFjaCAkdiBpbiAkcHJvcGVydHkge1xuICAgICAgJG5ldy1saXN0OiBhcHBlbmQoJG5ldy1saXN0LCBwcmVmaXhlZC1mb3ItdHJhbnNpdGlvbigkcHJlZml4LCAkdikpOyB9XG4gICAgQHJldHVybiAkbmV3LWxpc3Q7IH1cbiAgQGVsc2Uge1xuICAgIEBpZiBpbmRleCgkdHJhbnNpdGlvbmFibGUtcHJlZml4ZWQtdmFsdWVzLCAkcHJvcGVydHkpIHtcbiAgICAgIEByZXR1cm4gI3skcHJlZml4fS0jeyRwcm9wZXJ0eX07IH1cbiAgICBAZWxzZSB7XG4gICAgICBAcmV0dXJuICRwcm9wZXJ0eTsgfSB9IH1cblxuLy8gQ2hlY2tzIGlmIHRoZSB2YWx1ZSBnaXZlbiBpcyBhIHVuaXQgb2YgdGltZS5cbkBmdW5jdGlvbiBpcy10aW1lKCR2YWx1ZSkge1xuICBAaWYgdHlwZS1vZigkdmFsdWUpID09IG51bWJlciB7XG4gICAgQHJldHVybiBub3Qgbm90IGluZGV4KHMgbXMsIHVuaXQoJHZhbHVlKSk7IH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gZmFsc2U7IH0gfVxuIiwiQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBDaGFuZ2UgdGhlIGFwcGVhcmFuY2UgZm9yIE1vemlsbGEsIFdlYmtpdCBhbmQgcG9zc2libHkgdGhlIGZ1dHVyZS5cbi8vIFRoZSBhcHBlYXJhbmNlIHByb3BlcnR5IGlzIGN1cnJlbnRseSBub3QgcHJlc2VudCBpbiBhbnkgbmV3ZXIgQ1NTIHNwZWNpZmljYXRpb24uXG4vL1xuLy8gVGhlcmUgaXMgbm8gb2ZmaWNpYWwgbGlzdCBvZiBhY2NlcHRlZCB2YWx1ZXMsIGJ1dCB5b3UgbWlnaHQgY2hlY2sgdGhlc2Ugc291cmNlOlxuLy8gICBNb3ppbGxhIDogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4vQ1NTLy1tb3otYXBwZWFyYW5jZVxuLy8gICBXZWJraXQgIDogaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL3dlYmtpdC1taXJyb3Ivc291cmNlL2Jyb3dzZS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbj9zcGVjPXN2bmYxYWVhNTU5ZGNkMDI1YTg5NDZhYTdkYTZlNGU4MzA2ZjVjMWI2MDQmcj02M2M3ZDFhZjQ0NDMwYjMxNDIzM2ZlYTM0MmMzZGRiMmEwNTJlMzY1XG4vLyAgIChzZWFyY2ggZm9yICdhcHBlYXJhbmNlJyB3aXRoaW4gdGhlIHBhZ2UpXG5cbkBtaXhpbiBhcHBlYXJhbmNlKCRhcCkge1xuICAkYXA6IHVucXVvdGUoJGFwKTtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGFwcGVhcmFuY2UsICRhcCwgLW1veiwgLXdlYmtpdCwgbm90IC1vLCBub3QgLW1zLCBub3QgLWtodG1sLCBvZmZpY2lhbCk7IH1cbiIsIkBpbXBvcnQgXCJzaGFyZWRcIjtcblxuLy8gV2Via2l0LCBJRTEwIGFuZCBmdXR1cmUgc3VwcG9ydCBmb3IgW0NTUyBSZWdpb25zXShodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXJlZ2lvbnMvKVxuLy9cbi8vICR0YXJnZXQgaXMgYSB2YWx1ZSB5b3UgdXNlIHRvIGxpbmsgdHdvIHJlZ2lvbnMgb2YgeW91ciBjc3MuIEdpdmUgdGhlIHNvdXJjZSBvZiB5b3VyIGNvbnRlbnQgdGhlIGZsb3ctaW50byBwcm9wZXJ0eSwgYW5kIGdpdmUgeW91ciB0YXJnZXQgY29udGFpbmVyIHRoZSBmbG93LWZyb20gcHJvcGVydHkuXG4vL1xuLy8gRm9yIGEgdmlzdWFsIGV4cGxhbmF0aW9uLCBzZWUgdGhlIGRpYWdyYW1zIGF0IENocmlzIENveWllcidzXG4vLyBbQ1NTLVRyaWNrc10oaHR0cDovL2Nzcy10cmlja3MuY29tL2NvbnRlbnQtZm9sZGluZy8pXG5cbkBtaXhpbiBmbG93LWludG8oJHRhcmdldCkge1xuICAkdGFyZ2V0OiB1bnF1b3RlKCR0YXJnZXQpO1xuICBAaW5jbHVkZSBleHBlcmltZW50YWwoZmxvdy1pbnRvLCAkdGFyZ2V0LCBub3QgLW1veiwgLXdlYmtpdCwgbm90IC1vLCAtbXMsIG5vdCAta2h0bWwsIG5vdCBvZmZpY2lhbCk7IH1cblxuQG1peGluIGZsb3ctZnJvbSgkdGFyZ2V0KSB7XG4gICR0YXJnZXQ6IHVucXVvdGUoJHRhcmdldCk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChmbG93LWZyb20sICR0YXJnZXQsIG5vdCAtbW96LCAtd2Via2l0LCBub3QgLW8sIC1tcywgbm90IC1raHRtbCwgbm90IG9mZmljaWFsKTsgfVxuIiwiQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBNaXhpbnMgdG8gc3VwcG9ydCBzcGVjaWZpYyBDU1MgVGV4dCBMZXZlbCAzIGVsZW1lbnRzXG4vL1xuLy9cbi8vXG4vLyBNaXhpbiBmb3Igd29yZC1icmVhayBwcm9wZXJ0aWVzXG4vLyBodHRwOi8vd3d3LnczLm9yZy9jc3MzLXRleHQvI3dvcmQtYnJlYWtcbi8vICogbGVnYWwgdmFsdWVzIGZvciAkdHlwZSA6IG5vcm1hbCwga2VlcC1hbGwsIGJyZWFrLWFsbFxuLy9cbi8vIEV4YW1wbGU6XG4vLyAgICBwLndvcmRCcmVhayB7QGluY2x1ZGUgd29yZC1icmVhayhicmVhay1hbGwpO31cbi8vXG4vLyBXaGljaCBnZW5lcmF0ZXM6XG4vLyAgICBwLndvcmRCcmVhayB7XG4vLyAgICAgIC1tcy13b3JkLWJyZWFrOiBicmVhay1hbGw7XG4vLyAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbi8vICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDt9XG4vL1xuQG1peGluIHdvcmQtYnJlYWsoJHZhbHVlOiBub3JtYWwpIHtcbiAgQGlmICR2YWx1ZSA9PSBicmVhay1hbGwge1xuICAgIC8vTW9zdCBicm93c2VycyBoYW5kbGUgdGhlIGJyZWFrLWFsbCBjYXNlIHRoZSBzYW1lLi4uXG4gICAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKHdvcmQtYnJlYWssICR2YWx1ZSwgbm90IC1tb3osIG5vdCAtd2Via2l0LCBub3QgLW8sIC1tcywgbm90IC1raHRtbCwgb2ZmaWNpYWwpO1xuICAgIC8vV2Via2l0IGhhbmRsZXMgYnJlYWstYWxsIGRpZmZlcmVudGx5Li4uIGFzIGJyZWFrLXdvcmRcbiAgICBAaW5jbHVkZSBleHBlcmltZW50YWwod29yZC1icmVhaywgYnJlYWstd29yZCwgbm90IC1tb3osIG5vdCAtd2Via2l0LCBub3QgLW8sIG5vdCAtbXMsIG5vdCAta2h0bWwsIG9mZmljaWFsKTsgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKHdvcmQtYnJlYWssICR2YWx1ZSwgbm90IC1tb3osIG5vdCAtd2Via2l0LCBub3QgLW8sIC1tcywgbm90IC1raHRtbCwgb2ZmaWNpYWwpOyB9IH1cblxuLy8gTWl4aW4gZm9yIHRoZSBoeXBoZW5zIHByb3BlcnR5XG4vL1xuLy8gVzNDIHNwZWNpZmljYXRpb246IGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtdGV4dC8jaHlwaGVuc1xuLy8gKiBsZWdhbCB2YWx1ZXMgZm9yICR0eXBlIDogYXV0bywgbWFudWFsLCBub25lXG4vL1xuLy8gRXhhbXBsZTpcbi8vICBwIHtcbi8vICAgIEBpbmNsdWRlIGh5cGhlbnMoYXV0byk7fVxuLy8gV2hpY2ggZ2VuZXJhdGVzOlxuLy8gIHAge1xuLy8gICAgLW1vei1oeXBoZW5zOiBhdXRvO1xuLy8gICAgLXdlYmtpdC1oeXBoZW5zOiBhdXRvO1xuLy8gICAgaHlwaGVuczogYXV0bzt9XG4vL1xuQG1peGluIGh5cGhlbnMoJHZhbHVlOiBhdXRvKSB7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChoeXBoZW5zLCAkdmFsdWUsIC1tb3osIC13ZWJraXQsIG5vdCAtbywgbm90IC1tcywgbm90IC1raHRtbCwgb2ZmaWNpYWwpOyB9XG5cbi8vIE1peGluIGZvciB4LWJyb3dzZXIgaHlwaGVuYXRpb24gYmFzZWQgb24gQGF1Y2hlbmJlcmcncyBwb3N0OlxuLy8gUmVtb3ZlcyB0aGUgbmVlZCBmb3IgdGhlIDx3YnIvPiBIVE1MIHRhZ1xuLy8gaHR0cDovL2Jsb2cua2VubmV0aC5pby9ibG9nLzIwMTIvMDMvMDQvd29yZC13cmFwcGluZy1oeXBlcm5hdGlvbi11c2luZy1jc3MvXG4vL1xuLy8gIEV4YW1wbGU6XG4vLyAgZGl2IHtAaW5jbHVkZSBoeXBoZW5hdGlvbjt9XG4vL1xuLy8gIFdoaWNoIGdlbmVyYXRlczpcbi8vICAgIGRpdiB7XG4vLyAgICAgIC1tcy13b3JkLWJyZWFrOiBicmVhay1hbGw7XG4vLyAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbi8vICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbi8vICAgICAgLW1vei1oeXBoZW5zOiBhdXRvO1xuLy8gICAgICAtd2Via2l0LWh5cGhlbnM6IGF1dG87XG4vLyAgICAgIGh5cGhlbnM6IGF1dG87fVxuLy9cbkBtaXhpbiBoeXBoZW5hdGlvbiB7XG4gIEBpbmNsdWRlIHdvcmQtYnJlYWsoYnJlYWstYWxsKTtcbiAgQGluY2x1ZGUgaHlwaGVuczsgfVxuIiwiQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBQcm92aWRlcyBjcm9zcy1icm93c2VyIHN1cHBvcnQgZm9yIHRoZSB1cGNvbWluZyAoPykgY3NzMyBmaWx0ZXIgcHJvcGVydHkuXG4vL1xuLy8gRWFjaCBmaWx0ZXIgYXJndW1lbnQgc2hvdWxkIGFkaGVyZSB0byB0aGUgc3RhbmRhcmQgY3NzMyBzeW50YXggZm9yIHRoZVxuLy8gZmlsdGVyIHByb3BlcnR5LlxuQG1peGluIGZpbHRlcigkZmlsdGVyLTEsICRmaWx0ZXItMjogZmFsc2UsICRmaWx0ZXItMzogZmFsc2UsICRmaWx0ZXItNDogZmFsc2UsICRmaWx0ZXItNTogZmFsc2UsICRmaWx0ZXItNjogZmFsc2UsICRmaWx0ZXItNzogZmFsc2UsICRmaWx0ZXItODogZmFsc2UsICRmaWx0ZXItOTogZmFsc2UsICRmaWx0ZXItMTA6IGZhbHNlKSB7XG4gICRmaWx0ZXI6IGNvbXBhY3QoJGZpbHRlci0xLCAkZmlsdGVyLTIsICRmaWx0ZXItMywgJGZpbHRlci00LCAkZmlsdGVyLTUsICRmaWx0ZXItNiwgJGZpbHRlci03LCAkZmlsdGVyLTgsICRmaWx0ZXItOSwgJGZpbHRlci0xMCk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChmaWx0ZXIsICRmaWx0ZXIsIC1tb3osIC13ZWJraXQsIG5vdCAtbywgbm90IC1tcywgbm90IC1raHRtbCwgb2ZmaWNpYWwpOyB9XG4iLCIkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLXBpZTogdHJ1ZTtcblxuLy8gSXQgaXMgcmVjb21tZW5kZWQgdGhhdCB5b3UgdXNlIFNhc3MncyBAZXh0ZW5kIGRpcmVjdGl2ZSB0byBhcHBseSB0aGUgYmVoYXZpb3Jcbi8vIHRvIHlvdXIgUElFIGVsZW1lbnRzLiBUbyBhc3Npc3QgeW91LCBDb21wYXNzIHByb3ZpZGVzIHRoaXMgdmFyaWFibGUuXG4vLyBXaGVuIHNldCwgaXQgd2lsbCBjYXVzZSB0aGUgYEBpbmNsdWRlIHBpZWAgbWl4aW4gdG8gZXh0ZW5kIHRoaXMgY2xhc3MuXG4vLyBUaGUgY2xhc3MgbmFtZSB5b3UgcHJvdmlkZSBzaG91bGQgKipub3QqKiBpbmNsdWRlIHRoZSBgLmAuXG4kcGllLWJhc2UtY2xhc3M6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBUaGUgZGVmYXVsdCBhcHByb2FjaCB0byB1c2luZyBQSUUuXG4vLyBDYW4gYmUgb25lIG9mOlxuLy9cbi8vICogcmVsYXRpdmUgKGRlZmF1bHQpXG4vLyAqIHotaW5kZXhcbi8vICogbm9uZVxuJHBpZS1kZWZhdWx0LWFwcHJvYWNoOiByZWxhdGl2ZSAhZGVmYXVsdDtcblxuLy8gVGhlIGxvY2F0aW9uIG9mIHlvdXIgUElFIGJlaGF2aW9yIGZpbGVcbi8vIFRoaXMgc2hvdWxkIGJlIHJvb3QtcmVsYXRpdmUgdG8geW91ciB3ZWIgc2VydmVyXG4vLyByZWxhdGl2ZSBhc3NldHMgZG9uJ3Qgd29yay4gSXQgaXMgcmVjb21tZW5kZWQgdGhhdFxuLy8geW91IHNldCB0aGlzIHlvdXJzZWxmLlxuJHBpZS1iZWhhdmlvcjogc3R5bGVzaGVldC11cmwoXCJQSUUuaHRjXCIpICFkZWZhdWx0O1xuXG4vLyBXaGVuIHVzaW5nIHRoZSB6LWluZGV4IGFwcHJvYWNoLCB0aGVcbi8vIGZpcnN0IGFuY2VzdG9yIG9mIHRoZSBQSUUgZWxlbWVudCBhdFxuLy8gb3IgYmVmb3JlIHRoZSBjb250YWluZXIncyBvcGFxdWUgYmFja2dyb3VuZFxuLy8gc2hvdWxkIGhhdmUgYSB6LWluZGV4IHNldCBhcyB3ZWxsIHRvIGVuc3VyZVxuLy8gcHJvcGVydCB6LWluZGV4IHN0YWNraW5nLlxuLy9cbi8vIFRoZSBgJHBvc2l0aW9uYCBhcmd1bWVudCBtdXN0IGJlIHNvbWUgbm9uLXN0YXRpY1xuLy8gdmFsdWUgKGFic29sdXRlLCByZWxhdGl2ZSwgZXRjLilcbkBtaXhpbiBwaWUtY29udGFpbmVyKCR6LWluZGV4OiAwLCAkcG9zaXRpb246IHJlbGF0aXZlKSB7XG4gIHotaW5kZXg6ICR6LWluZGV4O1xuICBwb3NpdGlvbjogJHBvc2l0aW9uOyB9XG5cbi8vIFBJRSBlbGVtZW50cyBtdXN0IGhhdmUgdGhpcyBiZWhhdmlvciBhdHRhY2hlZCB0byB0aGVtLlxuLy8gSUUgaXMgYnJva2VuIC0tIGl0IGRvZXNuJ3QgdGhpbmsgb2YgYmVoYXZpb3IgdXJscyBhc1xuLy8gcmVsYXRpdmUgdG8gdGhlIHN0eWxlc2hlZXQuIEl0IGNvbnNpZGVycyB0aGVtIHJlbGF0aXZlXG4vLyB0byB0aGUgd2VicGFnZS4gQXMgYSByZXN1bHQsIHlvdSBjYW5ub3QgcmVsaWFibHkgdXNlXG4vLyBjb21wYXNzJ3MgcmVsYXRpdmVfYXNzZXRzIHdpdGggUElFLlxuLy9cbi8vICogYCRhcHByb2FjaGAgLSBvbmUgb2Y6IHJlbGF0aXZlLCB6LWluZGV4LCBvciBub25lXG4vLyAqIGAkei1pbmRleGAgLSB3aGVuIHVzaW5nIHRoZSB6LWluZGV4IGFwcHJvYWNoLCB0aGlzXG4vLyAgICAgICAgICAgICAgICBpcyB0aGUgei1pbmRleCB0aGF0IGlzIGFwcGxpZWQuXG5AbWl4aW4gcGllLWVsZW1lbnQoJGFwcHJvYWNoOiAkcGllLWRlZmF1bHQtYXBwcm9hY2gsICR6LWluZGV4OiAwKSB7XG4gIGJlaGF2aW9yOiAkcGllLWJlaGF2aW9yO1xuICBAaWYgJGFwcHJvYWNoID09IHJlbGF0aXZlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgQGVsc2UgaWYgJGFwcHJvYWNoID09IHotaW5kZXgge1xuICAgIHotaW5kZXg6ICR6LWluZGV4OyB9IH1cblxuLy8gYSBzbWFydCBtaXhpbiB0aGF0IGtub3dzIHRvIGV4dGVuZCBvciBpbmNsdWRlIHBpZS1lbGVtZW50IGFjY29yZGluZ1xuLy8gdG8geW91ciBzdHlsZXNoZWV0J3MgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMuXG5AbWl4aW4gcGllKCRiYXNlLWNsYXNzOiAkcGllLWJhc2UtY2xhc3MpIHtcbiAgQGlmICRiYXNlLWNsYXNzIHtcbiAgICBAZXh0ZW5kIC4jeyRiYXNlLWNsYXNzfTsgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgcGllLWVsZW1lbnQ7IH0gfVxuXG4vLyBXYXRjaCBgJG5gIGxldmVscyBvZiBhbmNlc3RvcnMgZm9yIGNoYW5nZXMgdG8gdGhlaXIgY2xhc3MgYXR0cmlidXRlXG4vLyBTbyB0aGF0IGNhc2NhZGluZyBzdHlsZXMgd2lsbCB3b3JrIGNvcnJlY3RseSBvbiB0aGUgUElFIGVsZW1lbnQuXG5AbWl4aW4gcGllLXdhdGNoLWFuY2VzdG9ycygkbikge1xuICAtcGllLXdhdGNoLWFuY2VzdG9yczogJG47IH1cbiIsIi8vIFVzZXIgSW50ZXJmYWNlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhpcyBmaWxlIGNhbiBiZSBleHBhbmRlZCB0byBoYW5kbGUgYWxsIHRoZSB1c2VyIGludGVyZmFjZSBwcm9wZXJ0aWVzIGFzXG4vLyB0aGV5IGJlY29tZSBhdmFpbGFibGUgaW4gYnJvd3NlcnM6XG4vLyBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAwL1dELWNzczMtdXNlcmludC0yMDAwMDIxNlxuQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBUaGlzIHByb3BlcnR5IGNvbnRyb2xzIHRoZSBzZWxlY3Rpb24gbW9kZWwgYW5kIGdyYW51bGFyaXR5IG9mIGFuIGVsZW1lbnQuXG4vL1xuLy8gQHBhcmFtICRzZWxlY3Rcbi8vICAgWyBub25lIHwgdGV4dCB8IHRvZ2dsZSB8IGVsZW1lbnQgfCBlbGVtZW50cyB8IGFsbCB8IGluaGVyaXQgXVxuQG1peGluIHVzZXItc2VsZWN0KCRzZWxlY3QpIHtcbiAgJHNlbGVjdDogdW5xdW90ZSgkc2VsZWN0KTtcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKHVzZXItc2VsZWN0LCAkc2VsZWN0LCAtbW96LCAtd2Via2l0LCBub3QgLW8sIG5vdCAtbXMsIC1raHRtbCwgb2ZmaWNpYWwpOyB9XG4iLCJAaW1wb3J0IFwiLi4vc3VwcG9ydFwiO1xuQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBUaGlzIGlzIHRoZSB1bmRlcmx5aW5nIGltcGxlbWVudGF0aW9uIGZvciBhbGwgdGhlIG90aGVyIG1peGlucyBpbiB0aGlzIG1vZHVsZS5cbi8vIEl0IGlzIHRoZSBvbmx5IHdheSB0byBhY2Nlc3MgcHJlZml4IHN1cHBvcnQgZm9yIG9sZGVyIHZlcnNpb25zIG9mIHRoZSBzcGVjLlxuLy8gRGV2aWF0ZXMgZnJvbSBjYW5vbmljYWwgQ29tcGFzcyBpbXBsZW1lbnRhdGlvbiBieSBkcm9wcGluZyBzdXBwb3J0IGZvclxuLy8gb2xkZXIgdmVyc2lvbnMgb2YgdGhlIEZsZXhib3ggc3BlYy5cbi8vXG4vLyBgJHByb3BlcnRpZXNgOiBtYXAgb2YgcHJvcGVydHktdmFsdWUgcGFpcnMgdGhhdCBzaG91bGQgYmUgcHJlZml4ZWRcbkBtaXhpbiBmbGV4Ym94KCRwcm9wZXJ0aWVzKSB7XG4gIEBlYWNoICRwcm9wLCAkdmFsdWUgaW4gJHByb3BlcnRpZXMge1xuICAgIEBpZiAkcHJvcCA9PSBkaXNwbGF5IHtcbiAgICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbC12YWx1ZShkaXNwbGF5LCAkdmFsdWUsIG5vdCAtbW96LCAtd2Via2l0LCBub3QgLW8sIG5vdCAtbXMsIG5vdCAta2h0bWwsIG9mZmljaWFsKTsgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbCgkcHJvcCwgJHZhbHVlLCBub3QgLW1veiwgLXdlYmtpdCwgbm90IC1vLCBub3QgLW1zLCBub3QgLWtodG1sLCBvZmZpY2lhbCk7IH0gfSB9XG5cbi8vIFZhbHVlcyBmb3IgJGRpc3BsYXkgYXJlOiBmbGV4IChkZWZhdWx0KSwgaW5saW5lLWZsZXhcbkBtaXhpbiBkaXNwbGF5LWZsZXgoJGRpc3BsYXk6IGZsZXgpIHtcbiAgQGluY2x1ZGUgZmxleGJveCgoZGlzcGxheTogJGRpc3BsYXkpKTsgfVxuXG4vLyBWYWx1ZXM6IHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2VcbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkZGlyZWN0aW9uKSB7XG4gIEBpbmNsdWRlIGZsZXhib3goKGZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uKSk7IH1cblxuLy8gVmFsdWVzOiBub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlXG5AbWl4aW4gZmxleC13cmFwKCR3cmFwKSB7XG4gIEBpbmNsdWRlIGZsZXhib3goKGZsZXgtd3JhcDogJHdyYXApKTsgfVxuXG4vLyBTaG9ydGhhbmQgZm9yIGZsZXgtZGlyZWN0aW9uIGFuZCBmbGV4LXdyYXAuXG5AbWl4aW4gZmxleC1mbG93KCRmbG93KSB7XG4gIEBpbmNsdWRlIGZsZXhib3goKGZsZXgtZmxvdzogJGZsb3cpKTsgfVxuXG4vLyBBY2NlcHRzIGFuIGludGVnZXJcbkBtaXhpbiBvcmRlcigkb3JkZXIpIHtcbiAgQGluY2x1ZGUgZmxleGJveCgob3JkZXI6ICRvcmRlcikpOyB9XG5cbi8vIFNob3J0aGFuZCBmb3IgZmxleC1ncm93LCBmbGV4LXNocmluayBhbmQgb3B0aW9uYWxseSBmbGV4LWJhc2lzLlxuLy8gU3BhY2Ugc2VwYXJhdGVkLCBpbiB0aGF0IG9yZGVyLlxuQG1peGluIGZsZXgoJGZsZXgpIHtcbiAgQGluY2x1ZGUgZmxleGJveCgoZmxleDogJGZsZXgpKTsgfVxuXG4vLyBBY2NlcHRzIGEgbnVtYmVyLlxuQG1peGluIGZsZXgtZ3JvdygkZmxleC1ncm93KSB7XG4gIEBpbmNsdWRlIGZsZXhib3goKGZsZXgtZ3JvdzogJGZsZXgtZ3JvdykpOyB9XG5cbi8vIEFjY2VwdHMgYSBudW1iZXIuXG5AbWl4aW4gZmxleC1zaHJpbmsoJGZsZXgtc2hyaW5rKSB7XG4gIEBpbmNsdWRlIGZsZXhib3goKGZsZXgtc2hyaW5rOiAkZmxleC1zaHJpbmspKTsgfVxuXG4vLyBBY2NlcHRzIGFueSBsZWdhbCB2YWx1ZSBmb3IgdGhlIHdpZHRoIHByb3BlcnR5LlxuQG1peGluIGZsZXgtYmFzaXMoJGZsZXgtYmFzaXMpIHtcbiAgQGluY2x1ZGUgZmxleGJveCgoZmxleC1iYXNpczogJGZsZXgtYmFzaXMpKTsgfVxuXG4vLyBMZWdhbCB2YWx1ZXM6IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmRcbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQoJGp1c3RpZnktY29udGVudCkge1xuICBAaW5jbHVkZSBmbGV4Ym94KChqdXN0aWZ5LWNvbnRlbnQ6ICRqdXN0aWZ5LWNvbnRlbnQpKTsgfVxuXG4vLyBMZWdhbCB2YWx1ZXM6IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaFxuQG1peGluIGFsaWduLWl0ZW1zKCRhbGlnbi1pdGVtcykge1xuICBAaW5jbHVkZSBmbGV4Ym94KChhbGlnbi1pdGVtczogJGFsaWduLWl0ZW1zKSk7IH1cblxuLy8gTGVnYWwgdmFsdWVzOiBhdXRvIHwgZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoXG5AbWl4aW4gYWxpZ24tc2VsZigkYWxpZ24tc2VsZikge1xuICBAaW5jbHVkZSBmbGV4Ym94KChhbGlnbi1zZWxmOiAkYWxpZ24tc2VsZikpOyB9XG5cbi8vIExlZ2FsIHZhbHVlczogZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2hcbkBtaXhpbiBhbGlnbi1jb250ZW50KCRhbGlnbi1jb250ZW50KSB7XG4gIEBpbmNsdWRlIGZsZXhib3goKGFsaWduLWNvbnRlbnQ6ICRhbGlnbi1jb250ZW50KSk7IH1cbiIsIi8qIGNvbnRlbnQgc3R5bGVzICovXG5cbi5pbnNpZGUge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuLmluc2lkZS1mdWxsLWhlaWdodCB7XG4gIC8qXG4gIC8vIGlmIHlvdSB3YW50IHRvIGdpdmUgY29udGVudCBmdWxsIGhlaWdodCBnaXZlIGhpbSBoZWlnaHQ6IDEwMCU7XG4gIC8vIHdpdGggY29udGVudCBmdWxsIGhlaWdodCB5b3UgY2FuJ3QgYXBwbHkgbWFyZ2lucyB0byB0aGUgY29udGVudFxuICAvLyBjb250ZW50IGZ1bGwgaGVpZ2h0IGRvZXMgbm90IHdvcmsgaW4gaWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yNzM4NDQzMy9pZS1kaXNwbGF5LXRhYmxlLWNlbGwtY2hpbGQtaWdub3Jlcy1oZWlnaHQtMTAwXG4gICovXG4gIGhlaWdodDogMTAwJTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5jb250ZW50IHtcbiAgcGFkZGluZzogMTJweCAzcHg7XG59XG5cbi8qIGNvbHVtbnMgb2Ygc2FtZSBoZWlnaHQgc3R5bGVzICovXG5cbi5yb3ctaGVpZ2h0IHtcbiAgZGlzcGxheTogdGFibGU7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG59XG4uY29sLWhlaWdodCB7XG4gIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gIGZsb2F0OiBub25lO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4uY29sLXRvcCB7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4uY29sLW1pZGRsZSB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uY29sLWJvdHRvbSB7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAucm93LXhzLWhlaWdodCB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmNvbC14cy1oZWlnaHQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG4gIC5jb2wteHMtdG9wIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG4gIC5jb2wteHMtbWlkZGxlIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5jb2wteHMtYm90dG9tIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAucm93LXNtLWhlaWdodCB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmNvbC1zbS1oZWlnaHQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG4gIC5jb2wtc20tdG9wIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG4gIC5jb2wtc20tbWlkZGxlIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5jb2wtc20tYm90dG9tIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAucm93LW1kLWhlaWdodCB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmNvbC1tZC1oZWlnaHQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG4gIC5jb2wtbWQtdG9wIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG4gIC5jb2wtbWQtbWlkZGxlIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG4gIC5jb2wtbWQtYm90dG9tIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLnJvdy1sZy1oZWlnaHQge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5jb2wtbGctaGVpZ2h0IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIGZsb2F0OiBub25lO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxuICAuY29sLWxnLXRvcCB7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgfVxuICAuY29sLWxnLW1pZGRsZSB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAuY29sLWxnLWJvdHRvbSB7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgfVxufSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsZ0ZBQWdGO0FBQ2hGOzs7WUFHWTtBQUVaLGdCQUFnQjtBQUVoQixBQUFBLElBQUksRUFBRSxJQUFJLENB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 */
