/*=============================================================================================	
    Company    : PT Web Architect Technology - webarq.com
    Document   : Stylesheet
    Author     : FrontEnd Team  
==============================================================================================*/
/* import bourbon - http://bourbon.io/docs */
/* color global
----------------------------------------------------------------------------------------------*/
@media (min-width: 0px) and (max-width: 1280px) {
  .wrapper {
    width: auto;
    margin: 0 30px;
  }
  .btn-arr {
    font-size: 14px;
  }
  .banner-middle h2, .banner-middle h1 {
    font-size: 23px;
    width: 500px;
  }
  .banner-middle figure {
    width: 470px;
    bottom: -35%;
  }
  .btn-cart {
    padding: 0 10px 0 35px;
  }
  .btn-cart:before {
    width: 15px;
    background-size: 100%;
    background-position: contain;
    top: 5px;
  }
  .slider-middle .tittle-img {
    font-size: 19px;
    line-height: 60px;
  }
  .slider-middle figure {
    margin-right: 30px;
  }
  .slider-middle .slick-dots {
    right: 300px;
    bottom: 5px;
  }
  .wrap-slider .wrap-total {
    right: 250px;
    bottom: 0px;
  }
  .banner-content figure {
    height: 260px;
  }
  .banner-content figure img {
    height: 100%;
    object-fit: cover;
  }
  .bg-middle {
    margin: 0 30px;
  }
  .bg-middle .bg-wrap {
    width: auto;
    margin: 0 30px;
  }
  .bg-middle .desc {
    width: 55%;
  }
  .bg-middle .desc h3 {
    font-size: 23px;
  }
  .bg-middle .desc h4 {
    font-size: 16px;
    line-height: 20px;
  }
  .bg-middle .desc a {
    font-size: 13px;
  }
  header .top .box {
    margin-right: 20px;
  }
  header .top .box.login {
    line-height: 20px;
  }
  header .bot .wrapper {
    margin: 0 27px;
  }
  header .bot nav ul li {
    margin-right: 10px;
  }
  header .bot nav ul li a {
    font-size: 13px;
    font-weight: 600;
    line-height: 20px;
  }
  header .bot .iist-link a {
    margin-right: 0;
    width: 24px;
  }
  header .bot .btn_abs a.bk {
    width: auto;
  }
  header .bot .ls_cart {
    height: 400px;
  }
  .slider-home .slick-dots {
    left: 2%;
  }
  .slider-home .desc {
    padding-left: 60px;
    padding-top: 120px;
    padding-right: 30px;
  }
  .slider-home .desc h2 {
    font-size: 25px;
  }
  .slider-home .desc p {
    font-size: 16px;
    line-height: 20px;
    margin-bottom: 20px;
    height: 60px;
    overflow: hidden;
  }
  .home.koleksi {
    padding: 0 0 20px;
  }
  .home.koleksi .box-white {
    padding: 0;
    margin: 0 -30px;
  }
  .home.koleksi .head-koleksi {
    padding: 10px 30px 0;
  }
  .home.koleksi .slider-koleksi {
    padding: 30px 10px;
  }
  .home.koleksi .slider-koleksi .slick-arrow {
    width: 30px;
    left: 10px;
    background-size: 100%;
    cursor: pointer;
  }
  .home.koleksi .slider-koleksi .slick-arrow.slick-next {
    width: 30px;
    right: 10px;
  }
  .home.twobox .box {
    min-height: 325px;
  }
  .home.twobox .box img {
    height: 100%;
  }
  .home.twobox .box .img-abs {
    top: 35%;
  }
  .home.twobox .box .desc {
    width: 230px;
  }
  .home.twobox .box .desc h4 {
    font-size: 19px;
  }
  .home.twobox .box .desc h5 {
    font-size: 16px;
    line-height: 18px;
  }
  .box-form .form {
    width: 48.453%;
    margin-right: 3.09%;
  }
  .box-form .desc-addrs {
    margin-right: -30px;
    margin-top: 0;
  }
  .box-form .desc-addrs iframe {
    width: 245px;
    height: 345px;
  }
  .box-form .desc-addrs .text {
    padding: 40px 250px 40px 30px;
  }
  .box-form .desc-addrs .text a {
    font-size: 13px;
  }
  .box-form .desc-addrs .text p {
    font-size: 13px;
    line-height: 18px;
  }
  .banner-faq figure {
    height: 350px;
  }
  .banner-faq figure img {
    height: 100%;
    object-fit: cover;
  }
  .banner-faq .abs {
    width: auto;
    margin: 0 30px;
    top: 40%;
  }
  .banner-faq .abs h2 {
    font-size: 23px;
  }
  .banner-faq .input-srch {
    width: auto;
    margin: 0 auto;
  }
  .container.dashboard {
    padding: 20px 0;
    margin-top: 50px;
  }
  .container.dashboard .left-content {
    width: 27.835%;
    margin-right: 3.092%;
  }
  .container.dashboard .right-content {
    width: 69.072%;
    padding: 35px 20px;
  }
  .container.dashboard .btn-rounded {
    padding: 0 15px;
    line-height: 35px;
  }
  .box-voucher .list-voucher {
    min-height: 180px;
  }
  .box-voucher figure {
    display: block;
    height: 100%;
  }
  .box-voucher figure img {
    height: 100%;
    object-fit: cover;
  }
  .box-voucher .btn-rounded {
    margin-top: 30px;
  }
  .box-pesanan .grid-acc .td-box:nth-child(1) {
    width: 29%;
  }
  .box-sale .timesale {
    margin-right: 20px;
  }
  .box-product .list {
    width: 30.92%;
    margin-right: 3.092%;
  }
  .box-product .list:nth-child(4n) {
    margin-right: 3.092%;
  }
  .box-product .list:nth-child(3n) {
    margin-right: 0%;
  }
  .box-product.recomen .list:nth-child(1n+4) {
    display: none;
  }
  .box-sale .bg {
    width: 200px;
  }
  .box-notif {
    height: 60px;
  }
  .box-notif .wrapper {
    height: 100%;
  }
  .box-notif figure {
    width: 80px;
  }
  .box-notif figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .box-notif .btn-rounded {
    padding: 0 40px;
    margin-right: 20px;
  }
  .box-notif span {
    font-size: 14px;
  }
  .btn-cart {
    font-size: 13px;
  }
  .box-product h6 {
    font-size: 14px;
  }
  .box-product p {
    font-size: 14px;
  }
  .tot-disc {
    font-size: 14px;
  }
  .table-cart figure {
    display: none;
  }
  .table-cart .text {
    margin-left: 0;
  }
  .table-cart th:nth-child(1), .table-cart td:nth-child(1) {
    width: 35%;
  }
  .table-cart th:nth-child(2), .table-cart td:nth-child(2) {
    width: 25%;
  }
  .table-cart th:nth-child(3), .table-cart td:nth-child(3) {
    width: 5%;
  }
  .table-cart th:nth-child(4), .table-cart td:nth-child(4) {
    width: 25%;
  }
  .table-cart th:nth-child(5), .table-cart td:nth-child(5) {
    width: 10%;
  }
  .main_wrap .lf_wrap {
    width: 69.072%;
  }
  .main_wrap .rh_wrap {
    width: 27.835%;
    min-width: unset;
  }
  .main_wrap .box_rh h5 {
    font-size: 14px;
  }
  .main_wrap .box_rh table td {
    font-size: 13px;
  }
  .main_wrap .box_rh table h6 {
    font-size: 13px;
  }
  .main_wrap .box_rh table form input {
    padding-right: 50px;
  }
  .main_wrap .box_rh table form button {
    font-size: 0;
  }
  .main_wrap .box_rh table form button:before {
    content: '';
    position: absolute;
    width: 18px;
    height: 14px;
    background: url(../images/material/ic-checklist.png) no-repeat top;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
  }
  .main_wrap .box_rh table form ::-webkit-input-placeholder {
    font-size: 11px;
  }
  .main_wrap .box_rh table form :-moz-placeholder {
    font-size: 11px;
  }
  .main_wrap .box_rh table form ::-moz-placeholder {
    font-size: 11px;
  }
  .main_wrap .box_rh table form :-ms-input-placeholder {
    font-size: 11px;
  }
  .main_wrap .box_rh table tr:last-child td:last-child {
    font-size: 13px;
  }
  .main_wrap .addres-reciv h5 {
    font-size: 14px;
    margin-bottom: 15px;
  }
  .main_wrap .addres-reciv .org {
    font-size: 14px;
  }
  .main_wrap .addres-reciv p {
    font-size: 14px;
  }
  .ty h2 {
    font-size: 23px;
  }
  .ty small {
    font-size: 14px;
  }
  .ty p {
    font-size: 16px;
  }
  .ty .btn-rounded {
    margin-top: 20px;
  }
  .input-search input[type='text'] {
    width: 335px;
  }
  .continue {
    margin-top: 20px;
    display: block;
  }
  .tittle-cart h5 {
    font-size: 16px;
  }
  .inner-content {
    padding: 0;
  }
  .report-detail p {
    font-size: 14px;
    font-weight: 500;
  }
  .table-cart h5 {
    font-size: 13px;
  }
  .table-cart.det figure {
    display: block;
  }
  .table-cart.det .text {
    margin-left: 110px;
  }
  .table-cart.det .text p {
    margin-bottom: 0;
    font-size: 13px;
    line-height: 18px;
  }
  .bg-middle figure {
    width: 350px;
    top: 0;
    bottom: -80px;
    top: auto;
  }
  .tittle-content h3 {
    font-size: 23px;
  }
  .tittle-content h4 {
    font-size: 16px;
  }
  .inner-content p {
    font-size: 14px;
    font-weight: 500;
  }
  .faq h6 {
    font-size: 14px;
  }
  .faq .left-faq {
    width: 27.835%;
  }
  .faq .right-faq {
    width: 69.072%;
  }
  .faq .right-faq h2 {
    font-size: 23px;
  }
  .faq .box-acc-faq .content-acc {
    padding: 10px 80px 0 30px;
  }
  .faq .box-acc-faq .content-acc p {
    font-size: 14px;
  }
  .box-proddetail .box-desc h3, .box-proddetail .box-desc h1 {
    font-size: 19px;
  }
  .box-proddetail .box-desc h4 {
    font-size: 14px;
  }
  .box-proddetail .desc-tittle .prod-stock {
    font-size: 11px;
  }
  .breadcrumb li a {
    font-size: 13px;
  }
  .product-summary .head-tab ul li a {
    font-size: 13px;
    width: 170px;
    line-height: 50px;
  }
  .product-summary .tab label {
    font-size: 14px;
  }
  .product-summary .tab p {
    font-size: 14px;
  }
  .product-summary .tab .row-comment .publish {
    font-size: 12px;
    margin-bottom: 15px;
  }
  .product-summary .tab h4 {
    font-size: 14px;
  }
  .product-summary .left-customer {
    width: 38.144%;
  }
  .product-summary .right-comment {
    width: 55.670%;
  }
  .paging a {
    font-size: 14px;
  }
  footer .top .box {
    width: 25%;
    padding: 0 20px;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    margin: 0;
  }
  footer .bot .box {
    width: 170px;
    margin-right: 20px;
  }
  footer .bot .box-subsc {
    width: 270px;
  }
  .page404 .wrapper {
    width: auto;
    margin: 0 20px;
  }
  .page404 figure {
    width: 400px;
    margin: 0 auto;
  }
  .page404 .box-text {
    height: 500px;
  }
  .page404 .bg {
    height: 500px;
  }
  .page404.under .box-text:before {
    background-size: 100%;
  }
  .page404.under .box-text .text {
    bottom: 5%;
    left: 30px;
    right: 30px;
  }
  header .top .box.telp-head {
    margin-right: 10px;
    padding-top: 22px;
  }
  .mCSB_inside > .mCSB_container {
    margin-right: 15px;
  }
  header .bot .ls_cart .ls .del {
    right: 0;
    top: 0;
  }
  header .bot .drop_cart {
    padding: 20px 0 20px 20px;
  }
  .stock .input-srch input[type='text'] {
    width: 220px;
  }
  .stock select {
    width: 180px;
  }
  #metod-payment .pop_inner .content_pop,
  #metod-payment2 .pop_inner .content_pop,
  #metod-cc .pop_inner .content_pop,
  #metod-dtl .pop_inner .content_pop {
    width: 400px;
    padding: 30px 20px;
  }
  #metod-payment .pop_inner .content_pop .top_pop label,
  #metod-payment2 .pop_inner .content_pop .top_pop label,
  #metod-cc .pop_inner .content_pop .top_pop label,
  #metod-dtl .pop_inner .content_pop .top_pop label {
    font-size: 12px;
  }
  #metod-payment .pop_inner .content_pop .top_pop h3,
  #metod-payment2 .pop_inner .content_pop .top_pop h3,
  #metod-cc .pop_inner .content_pop .top_pop h3,
  #metod-dtl .pop_inner .content_pop .top_pop h3 {
    font-size: 20px;
  }
  #metod-payment .pop_inner .content_pop .top_pop .link_dtl,
  #metod-payment2 .pop_inner .content_pop .top_pop .link_dtl,
  #metod-cc .pop_inner .content_pop .top_pop .link_dtl,
  #metod-dtl .pop_inner .content_pop .top_pop .link_dtl {
    font-size: 12px;
  }
  #metod-payment .tittle-sub h3,
  #metod-payment2 .tittle-sub h3,
  #metod-cc .tittle-sub h3,
  #metod-dtl .tittle-sub h3 {
    padding: 6px 10px;
    margin-bottom: 20px;
  }
  .scrll-pop .mCSB_inside > .mCSB_container {
    margin-right: 15px;
  }
  .scrll-pop .list-pay {
    padding: 0 15px;
  }
  .scrll-pop .list-pay .item img {
    width: 60px;
  }
  .scrll-pop .list-pay .item h6 {
    line-height: 20px;
    margin-left: 70px;
    text-align: left;
    font-size: 13px;
  }
  .container.dashboard .box-photo {
    flex-flow: row wrap;
    justify-content: center;
  }
  .container.dashboard .box-photo figure {
    display: block;
    margin-bottom: 15px;
  }
  .container.dashboard .box-photo .name-prof {
    flex: 0 0 100%;
    max-width: 100%;
    text-align: center;
    justify-content: center;
    padding: 0;
  }
  .container.dashboard .box-photo .name-prof .poin {
    text-align: center;
  }
  .container.dashboard .box-photo .name-prof .stat-user {
    margin-top: 5px;
  }
  .home-sosmed .list-home-sosmed .item {
    width: 50%;
  }
  .middle.homepage {
    padding-bottom: 0px;
  }
  .iframe-home .content-iframe iframe {
    height: 546px;
  }
  .listing-blog {
    margin-left: -12px;
    width: calc(100% + 24px);
  }
  .listing-blog .col {
    flex: 0 0 50%;
    max-width: 50%;
    padding: 0 12px;
  }
  .listing-blog .inner .text {
    padding: 24px 23px;
  }
  .listing-blog h4 {
    font-size: 16px;
  }
  .listing-blog p {
    font-size: 14px;
  }
  .listing-blog.more-blog .col:nth-child(1n+3) {
    display: none;
  }
  .search-blog h3 {
    font-size: 23px;
  }
  .search-blog p {
    font-size: 16px;
  }
  .search-blog .search {
    width: 546px;
  }
  .search-blog .search input {
    height: 44px;
    font-size: 16px;
  }
  .blog-detail h1 {
    font-size: 27px;
  }
}

@media (min-width: 0px) and (max-width: 1023px) {
  .page404 .box-text .text {
    left: 30px;
    right: 30px;
  }
  body.lock .box-sale {
    display: none;
  }
  .wrapper {
    margin: 0 20px;
  }
  .btn-arr {
    font-size: 11px;
  }
  .slider-home .desc {
    padding-top: 70px;
    padding-bottom: 60px;
  }
  .slider-home .desc h2 {
    font-size: 19px;
  }
  .slider-home .desc p {
    font-size: 14px;
    margin-bottom: 10px;
  }
  .slider-home .slick-dots {
    top: 25%;
  }
  .slider-home .slick-dots button {
    width: 9px;
    height: 12px;
  }
  .middle {
    padding-top: 56px;
  }
  .middle.pad {
    padding-top: 56px;
  }
  .middle.dashboard .listing-flex .column.column-33 {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .invoice .wrap-table-invoice .row {
    flex-flow: row wrap;
  }
  .invoice .wrap-table-invoice .row .column {
    flex: 0 0 100%;
    max-width: 100%;
    margin-bottom: 10px;
  }
  .home h4 {
    font-size: 16px;
  }
  .home h5 {
    font-size: 14px;
  }
  .home.koleksi .head-koleksi ul li {
    padding: 0 10px;
  }
  .home.koleksi .head-koleksi ul li a {
    font-size: 13px;
    line-height: 45px;
  }
  .home.twobox .box {
    width: 100%;
    display: block;
    min-height: unset;
    height: 250px;
  }
  .home.twobox .box img {
    width: 100%;
  }
  .home.twobox .box .img-abs {
    top: 10%;
  }
  .home.twobox .box.left {
    float: none;
    margin-bottom: 40px;
  }
  .home.twobox .box.right {
    float: none;
  }
  .home.suges-prod {
    padding: 0 0 40px;
  }
  .home.suges-prod .sugprod-slider .tittle-slide span {
    font-size: 14px;
  }
  .overlay-cart {
    z-index: 10;
  }
  header {
    z-index: 8989;
  }
  header .top {
    height: 56px;
  }
  header .top .wrapper {
    padding-right: 85px;
    position: relative;
  }
  header .top .box {
    padding-top: 10px;
  }
  header .top .box.logo {
    width: 120px;
    margin-right: 20px;
    padding-top: 10px;
  }
  header .top .box.login {
    background: transparent;
    padding: 0;
    font-size: 0;
    margin: 20px 0 12px;
  }
  header .top .box.login a {
    padding: 0;
  }
  header .top .box.login a.register {
    display: none;
  }
  header .top .box.login a.login {
    display: block;
    margin: 0;
    font-size: 0;
    background: url(../images/material/ic-profile.png) no-repeat center;
    width: 21px;
    height: 22px;
  }
  header .top .box.login a.login::before {
    display: none;
  }
  header .top .box.login .afterlogin .droplogin {
    width: 120px;
    left: -50px;
  }
  header .top .box.login .afterlogin .droplogin a {
    margin: 5px 0;
  }
  header .top .box.login .afterlogin .user {
    line-height: 56px;
  }
  header .top .box.login .afterlogin .user:after {
    left: 2px;
    right: auto;
  }
  header .top .box.telp-head {
    padding-left: 25px;
    margin-right: 8px;
  }
  header .top .box.telp-head:before {
    width: 20px;
    height: 20px;
    background-size: 100%;
  }
  header .top .box.telp-head small {
    display: none;
  }
  header .top .box.telp-head span {
    font-size: 13px;
  }
  header .top .box.search-head {
    width: 300px;
    margin: 0 20px 0 10px;
  }
  header .top .box.search-head input[type='text'] {
    height: 35px;
    line-height: 35px;
    padding-top: 0;
    padding-bottom: 0;
    font-size: 12px;
  }
  header .top .box.search-head input[type='submit'] {
    top: 8px;
  }
  header .top .box ::-webkit-input-placeholder {
    font-size: 12px;
  }
  header .top .box :-moz-placeholder {
    font-size: 12px;
  }
  header .top .box ::-moz-placeholder {
    font-size: 12px;
  }
  header .top .box :-ms-input-placeholder {
    font-size: 12px;
  }
  header .top .burger-menu {
    display: block;
    float: right;
    cursor: pointer;
    position: absolute;
    top: 18px;
    right: 0;
    width: 40px;
    height: 21px;
  }
  header .top .burger-menu span {
    position: absolute;
    width: 100%;
    height: 3px;
    background: #fff;
    left: 0;
    border-radius: 3px;
    -webkit-border-radius: 3px;
    -moz-border-radius: 3px;
    -ms-border-radius: 3px;
    -o-border-radius: 3px;
    transform: rotate(0deg);
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transition: 0.25s ease-in-out;
    -webkit-transition: 0.25s ease-in-out;
    -moz-transition: 0.25s ease-in-out;
    -ms-transition: 0.25s ease-in-out;
    -o-transition: 0.25s ease-in-out;
  }
  header .top .burger-menu span:nth-child(1) {
    top: 0;
    -webkit-transform-origin: left center;
    -moz-transform-origin: left center;
    -o-transform-origin: left center;
    transform-origin: left center;
  }
  header .top .burger-menu span:nth-child(2) {
    top: 9px;
    -webkit-transform-origin: left center;
    -moz-transform-origin: left center;
    -o-transform-origin: left center;
    transform-origin: left center;
  }
  header .top .burger-menu span:nth-child(3) {
    top: 18px;
    width: 80%;
    -webkit-transform-origin: left center;
    -moz-transform-origin: left center;
    -o-transform-origin: left center;
    transform-origin: left center;
  }
  header .top .burger-menu.act span {
    left: 5px;
  }
  header .top .burger-menu.act span:nth-child(1) {
    width: 80%;
    top: -2px;
    transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    -o-transform: rotate(45deg);
  }
  header .top .burger-menu.act span:nth-child(2) {
    opacity: 0;
    width: 0;
  }
  header .top .burger-menu.act span:nth-child(3) {
    top: 20px;
    transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
  }
  header .bot {
    position: static;
    padding: 0;
    height: auto;
  }
  header .bot .wrapper {
    position: static;
  }
  header .bot nav {
    display: none;
  }
  header .bot .iist-link {
    position: absolute;
    top: 20px;
    right: 65px;
    z-index: 15;
    width: 40px;
  }
  header .bot .iist-link a.catag, header .bot .iist-link a.whis {
    display: none;
  }
  header .bot .iist-link a.cart span {
    background: #fff;
    color: #b28e35;
  }
  header .bot .drop_cart {
    top: 0;
  }
  .box-sale {
    height: 60px;
  }
  .box-sale .bg {
    width: 140px;
    height: 100%;
    background-size: auto 100%;
  }
  .box-sale .tagspecial {
    padding-left: 0;
    padding-top: 10px;
  }
  .box-sale .tagspecial span {
    font-size: 19px;
  }
  .box-sale .tagspecial span.small {
    font-size: 13px;
  }
  .box-sale .descsale {
    width: 410px;
    height: 60px;
  }
  .box-sale .descsale p {
    font-size: 14px;
  }
  .box-sale .descsale span {
    font-size: 19px;
    line-height: 60px;
  }
  .box-sale .timesale {
    padding-top: 8px;
  }
  .box-sale .timesale .box {
    margin: 0 2px;
  }
  .box-sale .timesale .box span {
    font-size: 16px;
    width: 30px;
    height: 30px;
    line-height: 30px;
  }
  .box-sale .timesale .box i {
    font-size: 11px;
  }
  .wrap_pop .pop_inner .content_pop {
    margin: 10% 30px;
    width: auto;
  }
  .wrap_pop#redeem .pop_inner .content_pop {
    margin: 5% 30px;
  }
  .container.dashboard .left-content {
    width: 25.657%;
  }
  .container.dashboard .right-content {
    width: 69.863%;
  }
  .container.dashboard .box-photo {
    display: block;
    text-align: center;
  }
  .container.dashboard .box-photo figure {
    display: block;
    margin: 0 auto 15px;
  }
  .container.dashboard .box-photo figure .hover {
    height: 20%;
    font-size: 0;
    background: none;
    padding-top: 0;
  }
  .container.dashboard .box-photo figure .hover:before {
    margin: auto;
    top: 0;
  }
  .container.dashboard .box-photo figure:hover .hover {
    height: 20%;
    font-size: 0;
    background: none;
    padding-top: 0;
  }
  .container.dashboard .box-photo figure:hover .hover:before {
    margin: auto;
    top: 0;
  }
  .container.dashboard .box-photo .name-prof {
    display: block;
    padding: 0;
    text-align: center;
  }
  .container.dashboard nav ul > li a {
    font-size: 14px;
    font-weight: bold;
  }
  .tittle-sub {
    margin-bottom: 10px;
  }
  .add-addrs {
    font-size: 11px;
  }
  .box-pesanan .content-acc .wrap-box .box {
    float: none;
    display: block;
    width: 100%;
    padding: 0 10px;
  }
  .box-pesanan .content-acc .wrap-box .box:last-child {
    border-left: 0;
    padding-left: 10px;
  }
  .box-pesanan .content-acc table tbody tr td figure {
    display: none;
  }
  .box-pesanan .content-acc table tbody tr td .text {
    margin-left: 0;
    padding-top: 0;
  }
  .box-pesanan .grid-acc {
    position: relative;
  }
  .box-pesanan .grid-acc .td-box {
    display: block;
    margin-bottom: 15px;
  }
  .box-pesanan .grid-acc .td-box:nth-child(1) {
    width: 40%;
  }
  .box-pesanan .grid-acc .td-box:nth-child(2) {
    width: 40%;
  }
  .box-pesanan .grid-acc .td-box:nth-child(3) {
    width: 40%;
  }
  .box-pesanan .grid-acc .td-box:last-child {
    position: absolute;
    right: 5%;
    top: 30%;
    bottom: 0;
    width: 30%;
  }
  .box-pesanan .grid-acc .td-box span {
    margin-bottom: 5px;
  }
  .box-pesanan .btn-rounded {
    font-size: 13px;
    cursor: pointer;
  }
  .box-voucher .list-voucher {
    width: 100%;
    float: none;
    min-height: unset;
    display: block;
  }
  .box-voucher .text {
    display: block;
    margin-left: 160px;
    padding-top: 20px;
  }
  .box-voucher .text span {
    display: block;
    margin-bottom: 10px;
  }
  .box-voucher figure {
    width: 150px;
    float: left;
    height: 160px;
  }
  .box-voucher .btn-rounded {
    margin-top: 0;
  }
  .banner-middle h2, .banner-middle h1 {
    font-size: 16px;
    width: 40%;
  }
  .gird-sort select {
    height: 30px;
    padding: 5px 25px 5px 5px;
  }
  .gird-sort label {
    font-size: 13px;
  }
  .gird-sort h6 {
    line-height: 30px;
    font-size: 13px;
  }
  .box-product .discount {
    font-size: 8px;
    padding: 0 10px;
    line-height: 20px;
  }
  .box-product .flag {
    font-size: 8px;
    width: 30px;
    padding: 15px 0 30px;
  }
  .box-product .flag:after {
    border-left: 15px solid transparent;
    border-right: 15px solid transparent;
  }
  .box-product .rekomen {
    font-size: 8px;
    padding-left: 25px;
  }
  .box-product .rekomen:before {
    background-size: 100%;
    width: 10px;
  }
  .box-product .cap {
    font-size: 8px;
    line-height: 30px;
    height: 30px;
  }
  .box-product .cap:after {
    border-top: 15px solid transparent;
    border-bottom: 15px solid transparent;
  }
  .box-product .best {
    font-size: 8px;
    padding-left: 20px;
  }
  .box-product .best:before {
    width: 12px;
    background-size: 100%;
  }
  .btn-cart {
    font-size: 11px;
  }
  .box-proddetail .box-slide {
    width: 38.356%;
  }
  .box-proddetail .box-desc {
    width: 58.904%;
  }
  #ulasan .pop_inner .content_pop, #login .pop_inner .content_pop {
    width: auto;
    margin: 0 20px;
  }
  .banner-middle {
    height: 160px;
  }
  .banner-middle .desc {
    padding-top: 40px;
  }
  .banner-middle figure {
    width: 350px;
    height: 200px;
    bottom: -40%;
  }
  .banner-middle.gift figure {
    width: 280px;
    bottom: -34%;
  }
  .bg-middle {
    margin: 0 20px;
    min-height: unset;
    height: 160px;
  }
  .bg-middle figure {
    width: 230px;
    bottom: -60px;
    top: auto;
  }
  .bg-middle .desc {
    padding: 30px 0 0;
    vertical-align: middle;
    width: 64%;
  }
  .bg-middle .desc h3 {
    font-size: 19px;
  }
  .bg-middle .desc h4 {
    font-size: 14px;
  }
  .bg-middle .desc .wrap-btn {
    width: 40%;
  }
  .bg-middle .desc a {
    padding: 0 20px;
    line-height: 30px;
  }
  .container {
    margin-top: 150px;
  }
  .box-about h4 {
    font-size: 14px;
    line-height: 18px;
  }
  .box-about h5 {
    font-size: 14px;
    line-height: 18px;
    margin-bottom: 10px;
  }
  .box-about p {
    line-height: 20px;
    height: 120px;
    overflow: hidden;
  }
  .btn-rounded {
    line-height: 30px;
  }
  .nav_cart {
    top: 56px;
  }
  .nav_cart ul li {
    min-width: unset;
    width: 33.2%;
    padding: 15px 0;
  }
  .ty h2 {
    margin-bottom: 20px;
  }
  .wrap970 {
    width: auto;
  }
  .main_wrap {
    padding-top: 25px;
  }
  .main_wrap .lf_wrap {
    width: 100%;
    float: none;
  }
  .main_wrap .rh_wrap {
    width: 100%;
    float: none;
    margin-top: 0px;
  }
  .main_wrap .box_rh table h6 {
    width: 40%;
    float: left;
  }
  .main_wrap .box_rh table form {
    width: 60%;
    float: right;
    margin-bottom: 10px;
  }
  .main_wrap .box_rh table .btn-rounded {
    width: 40%;
  }
  .main_wrap .box_rh table .see-mycoupon, .main_wrap .box_rh table .note-kupon {
    margin-left: 40%;
  }
  .main_wrap .block .row {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
  }
  .main_wrap .block .row.btn {
    position: absolute;
    bottom: 30px;
    left: 0;
    right: 0;
  }
  .main_wrap .block .row.btn .btn-rounded {
    float: left;
    margin-left: 0;
  }
  .table-cart.det figure {
    display: none;
  }
  .table-cart.det .text {
    margin-left: 0;
  }
  .box-downloadkat .list {
    width: 33.333%;
    margin-bottom: 40px;
  }
  .box-downloadkat .list:nth-child(3n+1) {
    clear: both;
  }
  .box-form .form {
    width: 100%;
    float: none;
  }
  .box-form .desc-addrs {
    width: 100%;
    float: none;
    margin-right: 0;
    margin-top: 50px;
  }
  .box-form .desc-addrs .text {
    padding: 30px 20px;
  }
  .box-form .desc-addrs iframe {
    width: 80%;
    left: 0;
    bottom: -100px;
    margin: 0 auto;
    height: 250px;
  }
  .slider-career .list-slider {
    min-height: 265px;
  }
  .slider-career .list-slider .text {
    padding-top: 110px;
  }
  .slider-career .list-slider .text:before {
    top: 75px;
  }
  .slider-career .list-slider .text h5 {
    font-size: 16px;
    line-height: 22px;
  }
  .slider-career .list-slider .text span {
    font-size: 13px;
    line-height: 19px;
  }
  .gird-sort .input-select {
    display: block;
  }
  .box-product .outstock {
    font-size: 12px;
    line-height: 18px;
  }
  .box-notif {
    background: url("../images/material/bg-notif768.png") no-repeat center;
    background-size: cover;
  }
  .box-notif .btn-rounded {
    padding: 0 20px;
  }
  .box-notif span {
    margin: 0 auto;
  }
  .wrap-popup .content {
    width: 600px;
    height: 670px;
    margin: 20% auto;
  }
  .wrap-popup figure {
    height: 100%;
  }
  .wrap-popup figure img {
    height: 100%;
    width: 100%;
    object-fit: cover;
  }
  .wrap-popup .list.flex .wrap-flex {
    height: 100%;
    flex-flow: row wrap;
  }
  .wrap-popup .list.flex .wrap-flex figure, .wrap-popup .list.flex .wrap-flex .text {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .wrap-popup .list.flex .wrap-flex figure {
    height: 300px;
  }
  .wrap-popup .list.flex .wrap-flex .text {
    text-align: center;
    justify-content: center;
    align-self: flex-start;
  }
  .invoice .filter {
    flex-flow: row wrap;
  }
  .invoice .filter .right-fil {
    padding-left: 20px;
  }
  footer .top .box h6 {
    font-size: 13px;
  }
  footer .top .box span {
    font-size: 11px;
  }
  footer .bot {
    padding: 25px 0 30px;
  }
  footer .bot h6 {
    font-size: 14px;
    margin-bottom: 10px;
  }
  footer .bot .box {
    width: calc(20% - 20px);
  }
  footer .bot .box a {
    margin-bottom: 5px;
  }
  footer .bot .logo {
    float: none;
    margin-right: 0;
  }
  footer .bot .wrap-logo {
    width: calc(30% - 20px);
    margin-bottom: 15px;
    margin-right: 20px;
  }
  footer .bot .box-adrs {
    float: none;
    display: block;
    margin: 0 auto 15px auto;
    width: auto;
  }
  footer .bot .box-adrs p {
    font-weight: bold;
  }
  footer .bot .box-adrs a {
    font-weight: bold;
  }
  footer .bot .box-adrs a.ic-time {
    font-weight: bold;
  }
  footer .bot .box-adrs a.ic-time span {
    font-weight: bold;
  }
  footer .bot .box-subsc {
    width: 30%;
  }
  footer .bot .box-subsc span {
    font-size: 12px;
  }
  footer .bot .wrap-logo:after {
    content: '';
    clear: both;
    display: block;
  }
  .stock {
    padding: 40px 0;
  }
  .stock .row-head-stock .left, .stock .row-head-stock .right {
    display: block;
    float: none;
  }
  .stock h2 {
    font-size: 28px;
    line-height: 32px;
  }
  .stock h4 {
    font-size: 18px;
    line-height: 22px;
  }
  .stock p {
    font-size: 14px;
    line-height: 20px;
  }
  .stock .wrap-table table th {
    padding: 15px;
  }
  .stock .wrap-table table td {
    padding: 10px;
  }
  .listing-flex .column.column-25 {
    flex: 0 0 33.333%;
    max-width: 33.333%;
  }
  .wrap_pop#info-gift .pop_inner .content_pop {
    width: auto;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV0LmNzcyIsInNvdXJjZXMiOlsidGFibGV0LnNjc3MiLCJzYXNzLWxpYi5zY3NzIiwiYm91cmJvbi9fYm91cmJvbi5zY3NzIiwiYm91cmJvbi9zZXR0aW5ncy9fcHJlZml4ZXIuc2NzcyIsImJvdXJib24vc2V0dGluZ3MvX3B4LXRvLWVtLnNjc3MiLCJib3VyYm9uL3NldHRpbmdzL19hc3NldC1waXBlbGluZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2Fzc2lnbi1pbnB1dHMuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19jb250YWlucy5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2NvbnRhaW5zLWZhbHN5LnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9faXMtbGVuZ3RoLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9faXMtbGlnaHQuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19pcy1udW1iZXIuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19pcy1zaXplLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fcHgtdG8tZW0uc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19weC10by1yZW0uc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19zaGFkZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3N0cmlwLXVuaXRzLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fdGludC5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3RyYW5zaXRpb24tcHJvcGVydHktbmFtZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3VucGFjay5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX21vZHVsYXItc2NhbGUuc2NzcyIsImJvdXJib24vaGVscGVycy9fY29udmVydC11bml0cy5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19kaXJlY3Rpb25hbC12YWx1ZXMuc2NzcyIsImJvdXJib24vaGVscGVycy9fZm9udC1zb3VyY2UtZGVjbGFyYXRpb24uc2NzcyIsImJvdXJib24vaGVscGVycy9fZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19saW5lYXItYW5nbGUtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1ncmFkaWVudC1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtYXJnLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3JlbmRlci1ncmFkaWVudHMuc2NzcyIsImJvdXJib24vaGVscGVycy9fc2hhcGUtc2l6ZS1zdHJpcHBlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19zdHItdG8tbnVtLnNjc3MiLCJib3VyYm9uL2NzczMvX2FuaW1hdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL19hcHBlYXJhbmNlLnNjc3MiLCJib3VyYm9uL2NzczMvX2JhY2tmYWNlLXZpc2liaWxpdHkuc2NzcyIsImJvdXJib24vY3NzMy9fYmFja2dyb3VuZC5zY3NzIiwiYm91cmJvbi9jc3MzL19iYWNrZ3JvdW5kLWltYWdlLnNjc3MiLCJib3VyYm9uL2NzczMvX2JvcmRlci1pbWFnZS5zY3NzIiwiYm91cmJvbi9jc3MzL19jYWxjLnNjc3MiLCJib3VyYm9uL2NzczMvX2NvbHVtbnMuc2NzcyIsImJvdXJib24vY3NzMy9fZmlsdGVyLnNjc3MiLCJib3VyYm9uL2NzczMvX2ZsZXgtYm94LnNjc3MiLCJib3VyYm9uL2NzczMvX2ZvbnQtZmFjZS5zY3NzIiwiYm91cmJvbi9jc3MzL19mb250LWZlYXR1cmUtc2V0dGluZ3Muc2NzcyIsImJvdXJib24vY3NzMy9faGlkcGktbWVkaWEtcXVlcnkuc2NzcyIsImJvdXJib24vY3NzMy9faHlwaGVucy5zY3NzIiwiYm91cmJvbi9jc3MzL19pbWFnZS1yZW5kZXJpbmcuc2NzcyIsImJvdXJib24vY3NzMy9fa2V5ZnJhbWVzLnNjc3MiLCJib3VyYm9uL2NzczMvX2xpbmVhci1ncmFkaWVudC5zY3NzIiwiYm91cmJvbi9jc3MzL19wZXJzcGVjdGl2ZS5zY3NzIiwiYm91cmJvbi9jc3MzL19wbGFjZWhvbGRlci5zY3NzIiwiYm91cmJvbi9jc3MzL19yYWRpYWwtZ3JhZGllbnQuc2NzcyIsImJvdXJib24vY3NzMy9fc2VsZWN0aW9uLnNjc3MiLCJib3VyYm9uL2NzczMvX3RleHQtZGVjb3JhdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL190cmFuc2Zvcm0uc2NzcyIsImJvdXJib24vY3NzMy9fdHJhbnNpdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL191c2VyLXNlbGVjdC5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2JvcmRlci1jb2xvci5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2JvcmRlci1yYWRpdXMuc2NzcyIsImJvdXJib24vYWRkb25zL19ib3JkZXItc3R5bGUuc2NzcyIsImJvdXJib24vYWRkb25zL19ib3JkZXItd2lkdGguc2NzcyIsImJvdXJib24vYWRkb25zL19idXR0b25zLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fY2xlYXJmaXguc2NzcyIsImJvdXJib24vYWRkb25zL19lbGxpcHNpcy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2ZvbnQtc3RhY2tzLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9faGlkZS10ZXh0LnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fbWFyZ2luLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fcGFkZGluZy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3Bvc2l0aW9uLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fcHJlZml4ZXIuc2NzcyIsImJvdXJib24vYWRkb25zL19yZXRpbmEtaW1hZ2Uuc2NzcyIsImJvdXJib24vYWRkb25zL19zaXplLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fdGV4dC1pbnB1dHMuc2NzcyIsImJvdXJib24vYWRkb25zL190aW1pbmctZnVuY3Rpb25zLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fdHJpYW5nbGUuc2NzcyIsImJvdXJib24vYWRkb25zL193b3JkLXdyYXAuc2NzcyIsImJvdXJib24vX2JvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZy5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgXCJzYXNzLWxpYlwiO1xyXG5AbWVkaWEgKG1pbi13aWR0aDogMHB4KSBhbmQgKG1heC13aWR0aDogMTI4MHB4KSB7XHJcblx0LndyYXBwZXJ7IHdpZHRoOiBhdXRvOyBtYXJnaW46IDAgMzBweDsgfVxyXG5cdC5idG4tYXJyeyBmb250LXNpemU6IDE0cHg7IH1cclxuXHQuYmFubmVyLW1pZGRsZSB7XHJcblx0XHRoMixoMXsgZm9udC1zaXplOiAyM3B4OyB3aWR0aDogNTAwcHg7IH1cclxuXHRcdGZpZ3VyZXsgd2lkdGg6IDQ3MHB4OyBib3R0b206IC0zNSU7IH1cclxuXHJcblx0fVxyXG5cdC5idG4tY2FydHtcclxuXHRcdHBhZGRpbmc6IDAgMTBweCAwIDM1cHg7XHJcblx0XHQmOmJlZm9yZXtcclxuXHRcdFx0d2lkdGg6MTVweDsgYmFja2dyb3VuZC1zaXplOiAxMDAlOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjb250YWluOyB0b3A6IDVweDtcclxuXHRcdH1cclxuXHR9XHJcblx0LnNsaWRlci1taWRkbGV7XHJcblx0XHQudGl0dGxlLWltZ3sgZm9udC1zaXplOiAxOXB4OyBsaW5lLWhlaWdodDogNjBweDsgfVxyXG5cdFx0ZmlndXJleyBtYXJnaW4tcmlnaHQ6IDMwcHg7IH1cclxuXHRcdC5zbGljay1kb3RzeyByaWdodDogMzAwcHg7IGJvdHRvbTogNXB4OyB9XHJcblx0fVxyXG5cdC53cmFwLXNsaWRlcntcclxuXHRcdC53cmFwLXRvdGFseyByaWdodDogMjUwcHg7IGJvdHRvbTowcHg7IH1cclxuXHR9XHJcblx0LmJhbm5lci1jb250ZW50e1xyXG5cdFx0ZmlndXJle1xyXG5cdFx0XHRoZWlnaHQ6IDI2MHB4O1xyXG5cdFx0XHRpbWd7IGhlaWdodDogMTAwJTsgb2JqZWN0LWZpdDogY292ZXI7IH1cclxuXHRcdH1cclxuXHR9XHJcblx0LmJnLW1pZGRsZXtcclxuXHRcdG1hcmdpbjogMCAzMHB4O1xyXG5cdFx0LmJnLXdyYXB7IHdpZHRoOiBhdXRvOyBtYXJnaW46IDAgMzBweDsgfVxyXG5cdFx0LmRlc2N7XHJcblx0XHRcdHdpZHRoOiA1NSU7XHJcblx0XHRcdGgzeyBmb250LXNpemU6IDIzcHg7IH1cclxuXHRcdFx0aDR7IGZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDIwcHg7IH1cclxuXHRcdFx0YXtcclxuXHRcdFx0XHRmb250LXNpemU6IDEzcHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0aGVhZGVye1xyXG5cdFx0LnRvcHsgIFxyXG5cdFx0XHQuYm94e1xyXG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMjBweDsgXHJcblx0XHRcdFx0Ji5sb2dpbnsgbGluZS1oZWlnaHQ6IDIwcHg7fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0fVxyXG5cdFx0LmJvdHtcclxuXHRcdFx0LndyYXBwZXJ7IG1hcmdpbjogMCAyN3B4OyB9XHJcblx0XHRcdG5hdntcclxuXHRcdFx0XHR1bHtcclxuXHRcdFx0XHRcdGxpe1xyXG5cdFx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcblx0XHRcdFx0XHRcdGF7IGZvbnQtc2l6ZTogMTNweDsgZm9udC13ZWlnaHQ6IDYwMDsgbGluZS1oZWlnaHQ6IDIwcHg7IH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0Lmlpc3QtbGlua3tcclxuXHRcdFx0XHRhe1xyXG5cdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwOyB3aWR0aDogMjRweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0LmJ0bl9hYnN7XHJcblx0XHRcdFx0YXtcclxuXHRcdFx0XHRcdCYuYmt7IHdpZHRoOiBhdXRvOyB9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdC5sc19jYXJ0eyBoZWlnaHQ6IDQwMHB4OyB9XHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHJcblx0LnNsaWRlci1ob21le1xyXG5cdFx0LnNsaWNrLWRvdHN7IGxlZnQ6IDIlOyB9XHJcblx0XHQuZGVzY3tcclxuXHRcdFx0cGFkZGluZy1sZWZ0OjYwcHg7IHBhZGRpbmctdG9wOiAxMjBweDsgcGFkZGluZy1yaWdodDogMzBweDtcclxuXHRcdFx0aDJ7IGZvbnQtc2l6ZTogMjVweDsgfVxyXG5cdFx0XHRweyBmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAyMHB4OyBtYXJnaW4tYm90dG9tOiAyMHB4OyBoZWlnaHQ6IDYwcHg7IG92ZXJmbG93OiBoaWRkZW47IH1cclxuXHRcdH1cclxuXHJcblx0fVxyXG5cdC5ob21le1xyXG5cdFx0Ji5rb2xla3NpIHtcclxuXHRcdFx0cGFkZGluZzogMCAwIDIwcHg7XHJcblx0XHRcdC5ib3gtd2hpdGV7IHBhZGRpbmc6IDA7IG1hcmdpbjogMCAtMzBweDsgfVxyXG5cdFx0XHQuaGVhZC1rb2xla3NpeyBwYWRkaW5nOiAxMHB4IDMwcHggMDsgfVxyXG5cdFx0XHQuc2xpZGVyLWtvbGVrc2l7XHJcblx0XHRcdFx0cGFkZGluZzogMzBweCAxMHB4O1xyXG5cdFx0XHRcdC5zbGljay1hcnJvd3tcclxuXHRcdFx0XHRcdHdpZHRoOiAzMHB4OyBsZWZ0OiAxMHB4OyBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7IGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdFx0XHRcdCYuc2xpY2stbmV4dHtcclxuXHRcdFx0XHRcdFx0d2lkdGg6IDMwcHg7IHJpZ2h0OiAxMHB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0Ji50d29ib3h7XHJcblx0XHRcdC5ib3h7IFxyXG5cdFx0XHRcdG1pbi1oZWlnaHQ6IDMyNXB4OyBcclxuXHRcdFx0XHRpbWd7IGhlaWdodDogMTAwJTsgfVxyXG5cdFx0XHRcdC5pbWctYWJze1xyXG5cdFx0XHRcdFx0dG9wOiAzNSU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdC5kZXNje1xyXG5cdFx0XHRcdFx0d2lkdGg6IDIzMHB4O1xyXG5cdFx0XHRcdFx0aDR7IGZvbnQtc2l6ZTogMTlweDsgfVxyXG5cdFx0XHRcdFx0aDV7IGZvbnQtc2l6ZTogMTZweDsgbGluZS1oZWlnaHQ6IDE4cHg7IH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0LmJveC1mb3Jte1xyXG5cdFx0LmZvcm17IHdpZHRoOjQ4LjQ1MyU7IG1hcmdpbi1yaWdodDogMy4wOSU7IH1cclxuXHRcdCAuZGVzYy1hZGRyc3sgXHJcblx0XHQgXHRtYXJnaW4tcmlnaHQ6IC0zMHB4OyBtYXJnaW4tdG9wOiAwO1xyXG5cdFx0IFx0aWZyYW1le1xyXG5cdFx0IFx0XHR3aWR0aDogMjQ1cHg7IGhlaWdodDogMzQ1cHg7XHRcclxuXHRcdCBcdH1cclxuXHRcdCBcdC50ZXh0eyBcclxuXHRcdCBcdFx0cGFkZGluZzo0MHB4IDI1MHB4IDQwcHggMzBweDsgIFxyXG5cdFx0IFx0XHRheyBmb250LXNpemU6IDEzcHg7IH1cclxuXHRcdCBcdFx0cHsgZm9udC1zaXplOiAxM3B4OyBsaW5lLWhlaWdodDogMThweDsgfVxyXG5cdFx0IFx0fVxyXG5cdFx0IH1cclxuXHR9XHJcblx0LmJhbm5lci1mYXF7XHJcblx0XHRmaWd1cmV7XHJcblx0XHRcdGhlaWdodDogMzUwcHg7IFx0XHJcblx0XHRcdGltZ3sgaGVpZ2h0OiAxMDAlOyBvYmplY3QtZml0OiBjb3ZlcjsgfVxyXG5cdFx0fVxyXG5cdFx0LmFic3sgXHJcblx0XHRcdHdpZHRoOiBhdXRvOyBtYXJnaW46IDAgMzBweDsgdG9wOiA0MCU7XHJcblx0XHRcdGgyeyBmb250LXNpemU6MjNweDsgIH1cclxuXHRcdH1cclxuXHRcdC5pbnB1dC1zcmNoeyB3aWR0aDogYXV0bzsgbWFyZ2luOiAwIGF1dG87IH1cclxuXHR9XHJcblx0LmNvbnRhaW5lcntcclxuXHJcblx0XHQmLmRhc2hib2FyZHtcclxuXHRcdFx0cGFkZGluZzogMjBweCAwOyBtYXJnaW4tdG9wOiA1MHB4O1xyXG5cdFx0XHQubGVmdC1jb250ZW50e1xyXG5cdFx0XHRcdHdpZHRoOiAyNy44MzUlOyBtYXJnaW4tcmlnaHQ6IDMuMDkyJTtcclxuXHRcdFx0fVxyXG5cdFx0XHQucmlnaHQtY29udGVudHtcclxuXHRcdFx0XHR3aWR0aDogNjkuMDcyJTsgcGFkZGluZzogMzVweCAyMHB4O1xyXG5cdFx0XHR9XHJcblx0XHRcdC5idG4tcm91bmRlZHtcclxuXHRcdFx0XHRwYWRkaW5nOiAwIDE1cHg7IGxpbmUtaGVpZ2h0OiAzNXB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdC5ib3gtdm91Y2hlcntcclxuXHRcdC5saXN0LXZvdWNoZXJ7IG1pbi1oZWlnaHQ6IDE4MHB4OyB9XHJcblx0XHRmaWd1cmV7XHJcblx0XHRcdGRpc3BsYXk6IGJsb2NrO2hlaWdodDogMTAwJTtcclxuXHRcdFx0aW1neyBoZWlnaHQ6IDEwMCU7IG9iamVjdC1maXQ6IGNvdmVyOyB9XHJcblx0XHR9XHJcblx0XHQuYnRuLXJvdW5kZWR7bWFyZ2luLXRvcDogMzBweDt9XHJcblx0fVxyXG5cclxuXHQuYm94LXBlc2FuYW57XHJcblx0XHQuZ3JpZC1hY2N7XHJcblx0XHRcdC50ZC1ib3h7XHJcblx0XHRcdFx0JjpudGgtY2hpbGQoMSl7IHdpZHRoOiAyOSU7IH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHQuYm94LXNhbGV7XHJcblx0XHQudGltZXNhbGV7IG1hcmdpbi1yaWdodDogMjBweDsgfVxyXG5cdH1cclxuXHQuYm94LXByb2R1Y3R7XHRcdFxyXG5cdFx0Lmxpc3R7IFxyXG5cdFx0XHR3aWR0aDogMzAuOTIlOyBtYXJnaW4tcmlnaHQ6IDMuMDkyJTsgXHJcblx0XHRcdCY6bnRoLWNoaWxkKDRuKXsgbWFyZ2luLXJpZ2h0OiAzLjA5MiU7ICB9XHJcblx0XHRcdCY6bnRoLWNoaWxkKDNuKXsgbWFyZ2luLXJpZ2h0OiAwJTsgIH1cclxuXHRcdH1cclxuXHRcdCYucmVjb21lbntcclxuXHRcdFx0Lmxpc3R7XHJcblx0XHRcdFx0JjpudGgtY2hpbGQoMW4rNCl7IGRpc3BsYXk6IG5vbmU7IH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHQuYm94LXNhbGV7XHJcblx0XHQuYmd7IHdpZHRoOiAyMDBweDsgfVxyXG5cdH1cclxuXHQuYm94LW5vdGlme1xyXG5cdFx0aGVpZ2h0OiA2MHB4O1xyXG5cclxuXHRcdC53cmFwcGVye1xyXG5cdFx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHR9XHJcblx0XHRmaWd1cmV7XHJcblx0XHRcdHdpZHRoOiA4MHB4O1xyXG5cdFx0XHRpbWd7XHJcblx0XHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0XHRcdG9iamVjdC1maXQ6IGNvdmVyO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQuYnRuLXJvdW5kZWR7XHJcblx0XHRcdHBhZGRpbmc6IDAgNDBweDtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiAyMHB4O1xyXG5cdFx0fVxyXG5cdFx0c3BhbntcclxuXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHQuYnRuLWNhcnR7IGZvbnQtc2l6ZTogMTNweDsgfVxyXG5cdC5ib3gtcHJvZHVjdHtcclxuXHRcdGg2eyBmb250LXNpemU6IDE0cHg7IH1cclxuXHRcdHB7IGZvbnQtc2l6ZTogMTRweDsgfVxyXG5cdH1cclxuXHQudG90LWRpc2N7IGZvbnQtc2l6ZTogMTRweDsgfVxyXG5cdC50YWJsZS1jYXJ0e1xyXG5cdFx0ZmlndXJleyBkaXNwbGF5OiBub25lOyB9XHJcblx0XHQudGV4dHsgbWFyZ2luLWxlZnQ6IDA7IH1cclxuXHRcdHRoLHRke1xyXG5cdFx0XHQmOm50aC1jaGlsZCgxKXsgd2lkdGg6IDM1JTsgfVxyXG5cdFx0XHQmOm50aC1jaGlsZCgyKXsgd2lkdGg6IDI1JTsgfVxyXG5cdFx0XHQmOm50aC1jaGlsZCgzKXsgd2lkdGg6IDUlOyB9XHJcblx0XHRcdCY6bnRoLWNoaWxkKDQpeyB3aWR0aDogMjUlOyB9XHJcblx0XHRcdCY6bnRoLWNoaWxkKDUpeyB3aWR0aDogMTAlOyB9XHJcblx0XHR9XHJcblx0fVxyXG5cdC5tYWluX3dyYXB7XHJcblx0XHQubGZfd3JhcHsgIHdpZHRoOjY5LjA3MiU7ICB9XHJcblx0XHQucmhfd3JhcHsgd2lkdGg6MjcuODM1JTsgbWluLXdpZHRoOiB1bnNldDsgIH1cclxuXHRcdC5ib3hfcmh7XHJcblx0XHRcdGg1eyBmb250LXNpemU6IDE0cHg7IH1cclxuXHRcdFx0dGFibGV7XHJcblx0XHRcdFx0dGR7IGZvbnQtc2l6ZTogMTNweDsgfVxyXG5cdFx0XHRcdGg2eyBmb250LXNpemU6IDEzcHg7IH1cclxuXHRcdFx0XHRmb3JteyBcclxuXHRcdFx0XHRcdGlucHV0e1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiA1MHB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0YnV0dG9ueyBcclxuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAwO1xyXG5cdFx0XHRcdFx0XHQmOmJlZm9yZXsgXHJcblx0XHRcdFx0XHRcdFx0Y29udGVudDonJzsgcG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogMThweDsgaGVpZ2h0OiAxNHB4OyBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL21hdGVyaWFsL2ljLWNoZWNrbGlzdC5wbmcpbm8tcmVwZWF0IHRvcDtcclxuXHRcdFx0XHRcdFx0IFx0dG9wOiAwOyBsZWZ0OiAwOyByaWdodDogMDsgYm90dG9tOiAwOyBtYXJnaW46IGF1dG87XHJcblx0XHRcdFx0XHRcdCB9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRAaW5jbHVkZSBwbGFjZWhvbGRlcntcclxuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxMXB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0cntcclxuXHRcdFx0XHRcdCY6bGFzdC1jaGlsZHtcclxuXHRcdFx0XHRcdFx0dGR7XHJcblx0XHRcdFx0XHRcdFx0JjpsYXN0LWNoaWxkeyBmb250LXNpemU6MTNweDsgfVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQuYWRkcmVzLXJlY2l2e1xyXG5cdFx0XHRoNXsgZm9udC1zaXplOiAxNHB4O21hcmdpbi1ib3R0b206IDE1cHg7fVxyXG5cdFx0XHQub3JneyBmb250LXNpemU6IDE0cHg7IH1cclxuXHRcdFx0cHsgZm9udC1zaXplOiAxNHB4OyB9XHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHQudHl7XHJcblx0XHRoMnsgZm9udC1zaXplOiAyM3B4OyB9XHJcblx0XHRzbWFsbHsgZm9udC1zaXplOiAxNHB4OyB9XHJcblx0XHRweyBmb250LXNpemU6IDE2cHg7IH1cclxuXHRcdC5idG4tcm91bmRlZHsgbWFyZ2luLXRvcDogMjBweDsgfVxyXG5cdH1cclxuXHQuaW5wdXQtc2VhcmNoe1xyXG5cdFx0aW5wdXRbdHlwZT0ndGV4dCddeyB3aWR0aDogMzM1cHg7IH1cclxuXHR9XHJcblx0LmNvbnRpbnVleyBtYXJnaW4tdG9wOiAyMHB4OyBkaXNwbGF5OiBibG9jazsgfVxyXG5cdC50aXR0bGUtY2FydHtcclxuXHRcdGg1eyBmb250LXNpemU6IDE2cHg7IH1cclxuXHR9XHJcblx0LmlubmVyLWNvbnRlbnR7IHBhZGRpbmc6IDA7IH1cclxuXHQucmVwb3J0LWRldGFpbHtcclxuXHRcdHB7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDUwMDsgfVxyXG5cdH1cclxuXHQudGFibGUtY2FydHtcclxuXHRcdGg1eyBmb250LXNpemU6IDEzcHg7IH1cclxuXHRcdCYuZGV0e1xyXG5cdFx0XHRmaWd1cmV7IGRpc3BsYXk6IGJsb2NrOyB9XHJcblx0XHRcdC50ZXh0e1xyXG5cdFx0XHQgXHRtYXJnaW4tbGVmdDogMTEwcHg7IFxyXG5cdFx0XHQgXHRoNXsgIH1cclxuXHRcdFx0IFx0cHsgbWFyZ2luLWJvdHRvbTogMDsgZm9udC1zaXplOiAxM3B4OyBsaW5lLWhlaWdodDogMThweDsgfVxyXG5cdFx0XHQgfVxyXG5cdFx0fVxyXG5cdH1cclxuXHQuYmctbWlkZGxle1xyXG5cdFx0ZmlndXJleyB3aWR0aDogMzUwcHg7IHRvcDogMDsgYm90dG9tOiAtODBweDsgdG9wOmF1dG87IH1cclxuXHR9XHJcblx0LnRpdHRsZS1jb250ZW50e1xyXG5cdFx0aDN7IGZvbnQtc2l6ZTogMjNweDsgfVxyXG5cdFx0aDR7IGZvbnQtc2l6ZTogMTZweDsgfVxyXG5cdH1cclxuXHQuaW5uZXItY29udGVudHtcclxuXHRcdHB7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDUwMDsgfVxyXG5cdH1cclxuXHQuZmFxe1xyXG5cdFx0aDZ7IGZvbnQtc2l6ZTogMTRweDsgfVxyXG5cdFx0LmxlZnQtZmFxeyB3aWR0aDogMjcuODM1JTsgfVxyXG5cdFx0LnJpZ2h0LWZhcXtcclxuXHRcdCBcdHdpZHRoOiA2OS4wNzIlOyBcclxuXHRcdCBcdGgyeyBmb250LXNpemU6IDIzcHg7IH1cclxuXHRcdCB9XHJcblx0XHQuYm94LWFjYy1mYXF7XHJcblx0XHRcdC5jb250ZW50LWFjY3sgXHJcblx0XHRcdFx0cGFkZGluZzogMTBweCA4MHB4IDAgMzBweDsgIFxyXG5cdFx0XHRcdHB7IGZvbnQtc2l6ZTogMTRweDsgfVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdC5ib3gtcHJvZGRldGFpbHtcclxuXHRcdC5ib3gtZGVzY3tcclxuXHRcdFx0aDMsaDF7IGZvbnQtc2l6ZTogMTlweDsgfVxyXG5cdFx0XHRoNHsgZm9udC1zaXplOiAxNHB4OyB9XHJcblx0XHR9XHJcblx0XHQuZGVzYy10aXR0bGV7XHJcblx0XHRcdC5wcm9kLXN0b2Nre1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogMTFweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHQuYnJlYWRjcnVtYntcclxuXHRcdGxpe1xyXG5cdFx0XHQgYXsgZm9udC1zaXplOiAxM3B4OyAgfVxyXG5cdFx0fVxyXG5cdH1cclxuXHQucHJvZHVjdC1zdW1tYXJ5e1xyXG5cdFx0LmhlYWQtdGFie1xyXG5cdFx0XHR1bHtcclxuXHRcdFx0XHRsaXtcclxuXHRcdFx0XHRcdGF7IGZvbnQtc2l6ZTogMTNweDsgd2lkdGg6IDE3MHB4OyBsaW5lLWhlaWdodDogNTBweDsgfVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0LnRhYntcclxuXHRcdCBcdGxhYmVseyBmb250LXNpemU6IDE0cHg7IH1cclxuXHRcdCBcdHB7IGZvbnQtc2l6ZTogMTRweDsgfVxyXG5cdFx0IFx0LnJvdy1jb21tZW50e1xyXG5cdFx0IFx0XHQucHVibGlzaHsgZm9udC1zaXplOiAxMnB4OyBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XHJcblx0XHQgXHR9XHJcblx0XHQgXHRoNHsgZm9udC1zaXplOiAxNHB4OyB9XHJcblx0XHR9XHJcblx0XHQubGVmdC1jdXN0b21lcntcclxuXHRcdFx0d2lkdGg6IDM4LjE0NCU7XHJcblx0XHR9XHJcblx0XHQucmlnaHQtY29tbWVudHtcclxuXHRcdFx0d2lkdGg6IDU1LjY3MCU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQucGFnaW5ne1xyXG5cdFx0YXsgZm9udC1zaXplOiAxNHB4OyB9XHJcblx0fVxyXG5cdGZvb3RlcntcclxuXHRcdC50b3B7XHJcblx0XHRcdFxyXG5cdFx0XHQuYm94eyBcclxuXHRcdFx0XHR3aWR0aDogMjUlOyBwYWRkaW5nOiAwIDIwcHg7IEBpbmNsdWRlIGJveFNpemluZyhib3JkZXItYm94KTsgbWFyZ2luOiAwO1xyXG5cdFx0XHQgfVxyXG5cdFx0fVxyXG5cdFx0LmJvdHtcclxuXHRcdFx0LmJveHt3aWR0aDogMTcwcHg7IG1hcmdpbi1yaWdodDogMjBweDt9XHJcblx0XHRcdC5ib3gtc3Vic2N7IHdpZHRoOiAyNzBweDsgfVxyXG5cclxuXHRcdH1cclxuXHR9XHJcblx0LnBhZ2U0MDR7XHJcblx0XHQud3JhcHBlcnsgd2lkdGg6IGF1dG87IG1hcmdpbjogMCAyMHB4OyB9XHJcblx0XHRmaWd1cmV7IHdpZHRoOiA0MDBweDsgbWFyZ2luOiAwIGF1dG87IH1cclxuXHRcdC5ib3gtdGV4dHsgaGVpZ2h0OiA1MDBweDsgfVxyXG5cdFx0LmJneyBoZWlnaHQ6IDUwMHB4OyB9XHJcblx0XHQmLnVuZGVye1xyXG5cdFx0XHQuYm94LXRleHR7XHJcblx0XHRcdFx0JjpiZWZvcmV7IGJhY2tncm91bmQtc2l6ZToxMDAlOyB9XHJcblx0XHRcdFx0LnRleHR7XHJcblx0XHRcdFx0XHRib3R0b206IDUlOyBsZWZ0OiAzMHB4OyByaWdodDogMzBweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHR9XHJcblx0fVxyXG5cdGhlYWRlciAudG9wIC5ib3gudGVscC1oZWFkeyBtYXJnaW4tcmlnaHQ6IDEwcHg7IHBhZGRpbmctdG9wOiAyMnB4OyB9XHJcblx0Lm1DU0JfaW5zaWRlID4gLm1DU0JfY29udGFpbmVyeyBtYXJnaW4tcmlnaHQ6IDE1cHg7IH1cclxuXHRoZWFkZXIgLmJvdCAubHNfY2FydCAubHMgLmRlbHsgcmlnaHQ6IDA7IHRvcDogMDsgfVxyXG5cdGhlYWRlciAuYm90IC5kcm9wX2NhcnR7IHBhZGRpbmc6IDIwcHggMCAyMHB4IDIwcHg7IH1cclxuXHQuc3RvY2t7XHJcblx0XHQuaW5wdXQtc3JjaHtcclxuXHRcdFx0aW5wdXRbdHlwZT0ndGV4dCddeyB3aWR0aDogMjIwcHg7IH1cclxuXHRcdH1cclxuXHRcdHNlbGVjdHsgd2lkdGg6IDE4MHB4OyB9XHJcblx0fVxyXG5cclxuXHJcblx0I21ldG9kLXBheW1lbnQsXHJcblx0I21ldG9kLXBheW1lbnQyLFxyXG5cdCNtZXRvZC1jYyxcclxuXHQjbWV0b2QtZHRsIHtcclxuXHQgICAgLnBvcF9pbm5lciAuY29udGVudF9wb3AgeyBcclxuXHQgICAgXHR3aWR0aDogNDAwcHg7IHBhZGRpbmc6IDMwcHggMjBweDtcclxuXHQgICAgXHQudG9wX3BvcCB7XHJcblx0XHQgICAgXHRsYWJlbCB7Zm9udC1zaXplOiAxMnB4O31cclxuXHRcdCAgICBcdGgzIHtmb250LXNpemU6IDIwcHg7fVxyXG5cdFx0ICAgIFx0LmxpbmtfZHRsIHtmb250LXNpemU6IDEycHg7fVxyXG5cdFx0ICAgIH1cclxuXHQgICAgfVxyXG5cdCAgICAudGl0dGxlLXN1YiBoMyB7cGFkZGluZzogNnB4IDEwcHg7IG1hcmdpbi1ib3R0b206IDIwcHg7fVxyXG5cclxuXHR9XHJcblxyXG5cdC5zY3JsbC1wb3Age1xyXG5cdFx0Lm1DU0JfaW5zaWRlID4gLm1DU0JfY29udGFpbmVyIHttYXJnaW4tcmlnaHQ6IDE1cHg7fVxyXG5cdFx0Lmxpc3QtcGF5IHtcclxuXHRcdFx0cGFkZGluZzogMCAxNXB4O1xyXG5cdFx0XHQuaXRlbSB7XHJcblx0XHRcdFx0aW1nIHt3aWR0aDogNjBweDt9XHJcblx0XHRcdFx0aDYge2xpbmUtaGVpZ2h0OiAyMHB4O21hcmdpbi1sZWZ0OiA3MHB4OyB0ZXh0LWFsaWduOiBsZWZ0OyBmb250LXNpemU6IDEzcHg7fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdC5jb250YWluZXJ7XHJcblx0XHQmLmRhc2hib2FyZHtcclxuXHRcdFx0LmJveC1waG90b3tcclxuXHRcdFx0XHRmbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG5cdFx0XHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0XHRcdGZpZ3VyZXtcclxuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Lm5hbWUtcHJvZntcclxuXHRcdFx0XHRcdGZsZXg6IDAgMCAxMDAlO1xyXG5cdFx0XHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xyXG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRcdFx0XHRwYWRkaW5nOiAwO1xyXG5cdFx0XHRcdFx0LnBvaW57XHJcblx0XHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdC5zdGF0LXVzZXJ7IG1hcmdpbi10b3A6IDVweDsgfVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHQuaG9tZS1zb3NtZWQgLmxpc3QtaG9tZS1zb3NtZWQgLml0ZW0ge3dpZHRoOiA1MCU7fVxyXG5cdC5taWRkbGUuaG9tZXBhZ2Uge3BhZGRpbmctYm90dG9tOiAwcHg7fVxyXG5cdC5pZnJhbWUtaG9tZSAuY29udGVudC1pZnJhbWUgaWZyYW1lIHtoZWlnaHQ6IDU0NnB4O31cclxuXHQubGlzdGluZy1ibG9ne1xyXG5cdFx0bWFyZ2luLWxlZnQ6IC0xMnB4O1xyXG5cdFx0d2lkdGg6IGNhbGMoMTAwJSArIDI0cHgpO1xyXG5cdFx0LmNvbHtcclxuXHRcdFx0ZmxleDogMCAwIDUwJTtcclxuXHRcdFx0bWF4LXdpZHRoOiA1MCU7XHJcblx0XHRcdHBhZGRpbmc6IDAgMTJweDtcclxuXHRcdH1cclxuXHRcdC5pbm5lcntcclxuXHRcdFx0LnRleHR7XHJcblx0XHRcdFx0cGFkZGluZzogMjRweCAyM3B4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRoNHtmb250LXNpemU6IDE2cHg7fVxyXG5cdFx0cHtmb250LXNpemU6IDE0cHg7fVxyXG5cdFx0Ji5tb3JlLWJsb2d7XHJcblx0XHRcdC5jb2x7XHJcblx0XHRcdFx0JjpudGgtY2hpbGQoMW4rMyl7XHJcblx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHQuc2VhcmNoLWJsb2d7XHJcblx0XHRoM3tcclxuXHRcdFx0Zm9udC1zaXplOiAyM3B4O1xyXG5cdFx0fVxyXG5cdFx0cHtmb250LXNpemU6IDE2cHg7fVxyXG5cdFx0LnNlYXJjaHtcclxuXHRcdFx0d2lkdGg6IDU0NnB4O1xyXG5cdFx0XHRpbnB1dHtcclxuXHRcdFx0XHRoZWlnaHQ6IDQ0cHg7XHJcblx0XHRcdFx0Zm9udC1zaXplOiAxNnB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdC5ibG9nLWRldGFpbHtcclxuXHRcdGgxe2ZvbnQtc2l6ZTogMjdweDt9XHJcblx0fVxyXG59XHJcblxyXG5AbWVkaWEgKG1pbi13aWR0aDogMHB4KSBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XHJcblx0LnBhZ2U0MDR7XHJcblx0XHQuYm94LXRleHR7XHJcblx0XHRcdC50ZXh0eyBsZWZ0OiAzMHB4OyByaWdodDogMzBweDsgfVxyXG5cdFx0fVxyXG5cdH1cclxuXHRib2R5LmxvY2sge1xyXG5cdFx0LmJveC1zYWxlIHtkaXNwbGF5OiBub25lO30gXHJcblx0fVxyXG5cdC53cmFwcGVye21hcmdpbjogMCAyMHB4O31cclxuXHQuYnRuLWFycnsgZm9udC1zaXplOiAxMXB4OyB9XHJcblx0LnNsaWRlci1ob21le1xyXG5cdFx0LmRlc2N7IFxyXG5cdFx0XHRwYWRkaW5nLXRvcDogNzBweDsgcGFkZGluZy1ib3R0b206NjBweDtcclxuXHRcdFx0aDJ7IGZvbnQtc2l6ZTogMTlweDsgfVxyXG5cdFx0XHRweyBmb250LXNpemU6IDE0cHg7IG1hcmdpbi1ib3R0b206IDEwcHg7IH1cclxuXHRcdH1cclxuXHRcdC5zbGljay1kb3Rze1xyXG5cdFx0XHR0b3A6IDI1JTtcclxuXHRcdFx0YnV0dG9ueyB3aWR0aDogOXB4OyBoZWlnaHQ6IDEycHg7IH1cclxuXHRcdH1cclxuXHR9XHJcblx0Lm1pZGRsZXtcclxuXHQgXHRwYWRkaW5nLXRvcDo1NnB4OyBcclxuXHQgXHQmLnBhZHtcclxuXHQgXHRcdHBhZGRpbmctdG9wOjU2cHg7XHJcblx0IFx0fVxyXG5cdCBcdCYuZGFzaGJvYXJkIHtcclxuXHQgXHRcdC5saXN0aW5nLWZsZXgge1xyXG5cdCBcdFx0XHQuY29sdW1uIHtcclxuXHQgXHRcdFx0XHQmLmNvbHVtbi0zMyB7XHJcblx0IFx0XHRcdFx0XHRmbGV4OiAwIDAgNTAlO1xyXG4gICAgXHRcdFx0XHRcdG1heC13aWR0aDogNTAlOyBcclxuXHQgXHRcdFx0XHR9XHJcblx0IFx0XHRcdH1cclxuXHQgXHRcdH1cclxuXHQgXHR9XHJcblx0fVxyXG5cdC5pbnZvaWNle1xyXG5cdFx0LndyYXAtdGFibGUtaW52b2ljZXtcclxuXHRcdFx0LnJvd3tcclxuXHRcdFx0XHRmbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG5cdFx0XHRcdC5jb2x1bW57XHJcblx0XHRcdFx0XHRmbGV4OiAwIDAgMTAwJTtcclxuXHRcdFx0XHRcdG1heC13aWR0aDogMTAwJTtcclxuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdC5ob21le1xyXG5cdFx0aDR7IGZvbnQtc2l6ZToxNnB4OyB9XHJcblx0XHRoNXsgZm9udC1zaXplOiAxNHB4OyB9XHJcblx0XHQmLmtvbGVrc2l7XHJcblx0XHRcdC5oZWFkLWtvbGVrc2l7XHJcblx0XHRcdFx0dWx7XHJcblx0XHRcdFx0XHRsaXtcclxuXHRcdFx0XHRcdCBwYWRkaW5nOiAwIDEwcHg7IFxyXG5cdFx0XHRcdFx0IGF7IGZvbnQtc2l6ZTogMTNweDsgbGluZS1oZWlnaHQ6IDQ1cHg7IH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdCYudHdvYm94e1xyXG5cdFx0XHQuYm94eyBcclxuXHRcdFx0XHR3aWR0aDogMTAwJTsgZGlzcGxheTogYmxvY2s7IG1pbi1oZWlnaHQ6IHVuc2V0OyBoZWlnaHQ6IDI1MHB4O1xyXG5cdFx0XHRcdGltZ3sgd2lkdGg6IDEwMCU7IH1cclxuXHRcdFx0XHQuaW1nLWFic3sgdG9wOiAxMCU7IH1cclxuXHRcdFx0XHQmLmxlZnR7IGZsb2F0OiBub25lOyBtYXJnaW4tYm90dG9tOjQwcHg7IH1cclxuXHRcdFx0XHQmLnJpZ2h0eyBmbG9hdDogbm9uZTsgfVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQmLnN1Z2VzLXByb2R7XHJcblx0XHRcdHBhZGRpbmc6IDAgMCA0MHB4O1xyXG5cdFx0XHQuc3VncHJvZC1zbGlkZXJ7XHJcblx0XHRcdFx0LnRpdHRsZS1zbGlkZXtcclxuXHRcdFx0XHRcdHNwYW57IGZvbnQtc2l6ZTogMTRweDsgfVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHQub3ZlcmxheS1jYXJ0IHt6LWluZGV4OiAxMDt9IFxyXG5cdGhlYWRlcntcclxuXHRcdHotaW5kZXg6IDg5ODk7IFxyXG5cdFx0LnRvcHtcclxuXHRcdFx0aGVpZ2h0OiA1NnB4O1xyXG5cdFx0XHQud3JhcHBlciB7cGFkZGluZy1yaWdodDogODVweDsgcG9zaXRpb246IHJlbGF0aXZlO31cclxuXHRcdFx0LmJveHtcclxuXHRcdFx0XHRwYWRkaW5nLXRvcDogMTBweDtcclxuXHRcdFx0XHQmLmxvZ297XHJcblx0XHRcdFx0XHR3aWR0aDogMTIwcHg7IG1hcmdpbi1yaWdodDogMjBweDtcclxuXHRcdFx0XHRcdHBhZGRpbmctdG9wOjEwcHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdCYubG9naW57XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgcGFkZGluZzogMDsgIGZvbnQtc2l6ZTogMDsgXHJcbiAgICAgICAgICBtYXJnaW46IDIwcHggMCAxMnB4OyBcclxuXHRcdFx0XHRcdGF7IFxyXG4gICAgICAgICAgICBwYWRkaW5nOiAwOyBcclxuXHRcdFx0XHRcdFx0Ji5yZWdpc3RlcnsgZGlzcGxheTogbm9uZTsgfVxyXG5cdFx0XHRcdFx0XHQmLmxvZ2lueyBcclxuXHRcdFx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdFx0XHRcdCBcdFx0bWFyZ2luOiAwOyBmb250LXNpemU6IDA7IGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbWF0ZXJpYWwvaWMtcHJvZmlsZS5wbmcpbm8tcmVwZWF0IGNlbnRlcjsgd2lkdGg6IDIxcHg7IGhlaWdodDogMjJweDtcclxuICAgICAgICAgICAgICAmOjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgXHJcbiAgICAgICAgICAgICAgfSBcclxuXHRcdFx0XHRcdFx0IH1cclxuXHJcblx0XHRcdFx0XHQgfVxyXG5cclxuXHRcdFx0XHRcdC5hZnRlcmxvZ2lue1xyXG5cdFx0XHRcdFx0XHQuZHJvcGxvZ2lueyBcclxuXHRcdFx0XHRcdFx0XHR3aWR0aDogMTIwcHg7IGxlZnQ6IC01MHB4OyBcclxuXHRcdFx0XHRcdFx0XHRheyBtYXJnaW46IDVweCAwOyB9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0LnVzZXJ7IFxyXG5cdFx0XHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiA1NnB4OyBcclxuXHRcdFx0XHRcdFx0XHQmOmFmdGVyeyBsZWZ0OjJweDsgcmlnaHQ6IGF1dG87IH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQmLnRlbHAtaGVhZHtcclxuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogMjVweDsgbWFyZ2luLXJpZ2h0OiA4cHg7IFxyXG5cdFx0XHRcdFx0JjpiZWZvcmV7IHdpZHRoOjIwcHg7IGhlaWdodDogMjBweDsgYmFja2dyb3VuZC1zaXplOiAxMDAlO30gXHJcblx0XHRcdFx0XHRzbWFsbHsgZGlzcGxheTogbm9uZTsgfVxyXG5cdFx0XHRcdFx0c3BhbnsgZm9udC1zaXplOiAxM3B4OyB9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdCYuc2VhcmNoLWhlYWQge1xyXG5cdFx0XHRcdFx0d2lkdGg6IDMwMHB4OyBtYXJnaW46MCAyMHB4IDAgMTBweDsgIFxyXG5cdFx0XHRcdFx0aW5wdXRbdHlwZT0ndGV4dCddIHtcclxuXHRcdFx0XHRcdFx0aGVpZ2h0OiAzNXB4OyBsaW5lLWhlaWdodDogMzVweDsgcGFkZGluZy10b3A6IDA7IHBhZGRpbmctYm90dG9tOiAwO1xyXG5cdFx0XHRcdFx0XHRmb250LXNpemU6IDEycHg7IFxyXG5cdFx0XHRcdFx0fSBcclxuXHRcdFx0XHRcdGlucHV0W3R5cGU9J3N1Ym1pdCddIHtcclxuXHRcdFx0XHRcdFx0dG9wOiA4cHg7XHJcblx0XHRcdFx0XHR9IFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRAaW5jbHVkZSBwbGFjZWhvbGRlciB7Zm9udC1zaXplOiAxMnB4O30gXHJcblx0XHRcdH1cclxuXHRcdFx0LmJ1cmdlci1tZW51IHtcclxuXHQgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgZmxvYXQ6IHJpZ2h0OyBjdXJzb3I6IHBvaW50ZXI7ICAgIFxyXG5cdCAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAxOHB4OyByaWdodDogMDsgIFxyXG4gICAgICAgICAgICBcdHdpZHRoOiA0MHB4OyBoZWlnaHQ6IDIxcHg7ICAgICAgICAgICAgIFx0ICBcclxuICAgICAgICAgICAgXHRzcGFuIHtcclxuXHRcdCAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDEwMCU7IGhlaWdodDogM3B4OyBiYWNrZ3JvdW5kOiAjZmZmOyBsZWZ0OiAwOyBcclxuXHRcdCAgICAgICAgICAgIEBpbmNsdWRlIGJvcmRlclJhZGl1cygzcHgpOyBcclxuXHRcdCAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpe1xyXG5cdFx0ICAgICAgICAgICAgICAgIHRvcDowO1xyXG5cdFx0ICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybW9yaWdpbihsZWZ0IGNlbnRlcik7XHJcblx0XHQgICAgICAgICAgICB9XHJcblx0XHQgICAgICAgICAgICAmOm50aC1jaGlsZCgyKXtcclxuXHRcdCAgICAgICAgICAgICAgICB0b3A6OXB4O1xyXG5cdFx0ICAgICAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybW9yaWdpbihsZWZ0IGNlbnRlcik7XHJcblx0XHQgICAgICAgICAgICB9XHJcblx0XHQgICAgICAgICAgICAmOm50aC1jaGlsZCgzKXsgICBcclxuXHRcdCAgICAgICAgICAgICAgICB0b3A6MThweDsgd2lkdGg6IDgwJTsgXHJcblx0XHQgICAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3Jtb3JpZ2luKGxlZnQgY2VudGVyKTsgIFxyXG5cdFx0ICAgICAgICAgICAgfSAgIFxyXG5cdFx0ICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgwZGVnKSk7IFxyXG5cdFx0ICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbiggLjI1cyBlYXNlLWluLW91dCk7ICBcclxuXHRcdCAgICAgICAgfVxyXG5cdFx0ICAgICAgICAmLmFjdCB7ICAgICAgICAgICAgIFxyXG5cdFx0ICAgICAgICAgICAgc3BhbiB7XHJcblx0XHQgICAgICAgICAgICAgICAgbGVmdDogNXB4OyBcclxuXHRcdCAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgxKSB7XHJcblx0XHQgICAgICAgICAgICAgICAgXHR3aWR0aDogODAlOyB0b3A6IC0ycHg7XHJcblx0XHQgICAgICAgICAgICAgICAgXHRAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDQ1ZGVnKSk7XHJcblx0XHQgICAgICAgICAgICAgICAgfSAgICAgICBcclxuXHRcdCAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7b3BhY2l0eTogMDt3aWR0aDogMDt9IFxyXG5cdFx0ICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDMpIHtcclxuXHRcdCAgICAgICAgICAgICAgICBcdHRvcDoyMHB4O1xyXG5cdFx0ICAgICAgICAgICAgICAgIFx0QGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgtNDVkZWcpKTtcclxuXHRcdCAgICAgICAgICAgICAgICB9XHJcblx0XHQgICAgICAgICAgICB9IFxyXG5cdFx0ICAgICAgICB9XHJcblx0ICAgICAgICB9XHJcblx0XHR9XHJcblx0XHQuYm90IHtcclxuXHRcdFx0cG9zaXRpb246IHN0YXRpYzsgcGFkZGluZzogMDsgaGVpZ2h0OiBhdXRvOyAgXHJcblx0XHRcdC53cmFwcGVyIHtwb3NpdGlvbjogc3RhdGljO30gXHJcblx0XHRcdG5hdiB7XHJcblx0XHRcdFx0ZGlzcGxheTogbm9uZTsgXHJcblx0XHRcdH1cclxuXHRcdFx0Lmlpc3QtbGluayB7XHJcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDIwcHg7IHJpZ2h0OiA2NXB4OyB6LWluZGV4OiAxNTsgd2lkdGg6IDQwcHg7XHJcblx0XHRcdFx0YSB7XHJcblx0XHRcdFx0XHQmLmNhdGFnLFxyXG5cdFx0XHRcdFx0Ji53aGlzIHtkaXNwbGF5OiBub25lO31cclxuXHRcdFx0XHRcdCYuY2FydCB7XHJcblx0XHRcdFx0XHRcdHNwYW4ge1xyXG5cdFx0XHRcdFx0XHRcdGJhY2tncm91bmQ6ICNmZmY7IFxyXG5cdFx0XHRcdFx0XHRcdGNvbG9yOiNiMjhlMzU7IFxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSBcclxuXHRcdFx0fVxyXG5cdFx0XHQuZHJvcF9jYXJ0IHt0b3A6IDA7fSBcclxuXHRcdH0gXHJcblx0fVxyXG5cdC5ib3gtc2FsZSB7XHJcblx0XHRoZWlnaHQ6IDYwcHg7XHJcblx0XHQuYmcge3dpZHRoOiAxNDBweDsgaGVpZ2h0OiAxMDAlOyBiYWNrZ3JvdW5kLXNpemU6YXV0byAxMDAlO31cclxuXHRcdC50YWdzcGVjaWFsIHtcclxuXHRcdFx0cGFkZGluZy1sZWZ0OjA7IHBhZGRpbmctdG9wOiAxMHB4O1xyXG5cdFx0XHRzcGFuIHtcclxuXHRcdFx0XHRmb250LXNpemU6IDE5cHg7IFxyXG5cdFx0XHRcdCYuc21hbGwge2ZvbnQtc2l6ZTogMTNweDt9XHJcblx0XHRcdH1cclxuXHRcdH0gICAgXHJcblx0XHQuZGVzY3NhbGUge1xyXG5cdFx0XHR3aWR0aDogNDEwcHg7IGhlaWdodDogNjBweDsgXHJcblx0XHRcdHAge2ZvbnQtc2l6ZTogMTRweDt9XHJcblx0XHRcdHNwYW4ge2ZvbnQtc2l6ZTogMTlweDsgbGluZS1oZWlnaHQ6IDYwcHg7fSAgXHJcblx0XHR9ICAgIFxyXG5cdFx0LnRpbWVzYWxlIHsgXHJcblx0XHRcdHBhZGRpbmctdG9wOiA4cHg7ICBcclxuXHRcdFx0LmJveCB7XHJcblx0XHRcdFx0bWFyZ2luOiAwIDJweDsgICBcclxuXHRcdFx0XHRzcGFuIHtmb250LXNpemU6IDE2cHg7IHdpZHRoOiAzMHB4OyBoZWlnaHQ6IDMwcHg7IGxpbmUtaGVpZ2h0OiAzMHB4O30gXHJcblx0XHRcdFx0aSB7Zm9udC1zaXplOiAxMXB4O30gICBcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHQud3JhcF9wb3B7XHJcblx0XHQucG9wX2lubmVye1xyXG5cdFx0XHQuY29udGVudF9wb3B7XHJcblx0XHRcdFx0bWFyZ2luOiAxMCUgMzBweDsgd2lkdGg6IGF1dG87XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdCYjcmVkZWVte1xyXG5cdFx0XHQucG9wX2lubmVye1xyXG5cdFx0XHRcdC5jb250ZW50X3BvcHtcclxuXHRcdFx0XHRcdG1hcmdpbjogNSUgMzBweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0LmNvbnRhaW5lcntcclxuXHRcdCYuZGFzaGJvYXJke1xyXG5cdFx0XHQubGVmdC1jb250ZW50eyB3aWR0aDoyNS42NTclOyAgfVxyXG5cdFx0XHQucmlnaHQtY29udGVudHsgd2lkdGg6IDY5Ljg2MyU7IH1cclxuXHRcdFx0LmJveC1waG90b3tcclxuXHRcdFx0XHRkaXNwbGF5OiBibG9jazsgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0XHRcdGZpZ3VyZXsgXHJcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jazsgbWFyZ2luOjAgYXV0byAxNXB4O1xyXG5cdFx0XHRcdFx0LmhvdmVye1xyXG5cdFx0XHRcdFx0IFx0aGVpZ2h0OiAyMCU7IGZvbnQtc2l6ZTogMDsgYmFja2dyb3VuZDogbm9uZTsgIHBhZGRpbmctdG9wOiAwO1xyXG5cdFx0XHRcdFx0IFx0JjpiZWZvcmV7IG1hcmdpbjphdXRvOyB0b3A6IDA7IH1cclxuXHRcdFx0XHRcdCB9XHJcblx0XHRcdFx0XHQgJjpob3ZlcntcclxuXHRcdFx0XHRcdCBcdC5ob3ZlcntcclxuXHRcdFx0XHRcdFx0IFx0aGVpZ2h0OiAyMCU7IGZvbnQtc2l6ZTogMDsgYmFja2dyb3VuZDogbm9uZTsgIHBhZGRpbmctdG9wOiAwO1xyXG5cdFx0XHRcdFx0XHQgXHQmOmJlZm9yZXsgbWFyZ2luOmF1dG87IHRvcDogMDsgfVxyXG5cdFx0XHRcdFx0XHQgfVxyXG5cdFx0XHRcdFx0IH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Lm5hbWUtcHJvZnsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmc6IDA7IHRleHQtYWxpZ246IGNlbnRlcjt9XHJcblx0XHRcdH1cclxuXHRcdFx0bmF2e1xyXG5cdFx0XHRcdHVse1xyXG5cdFx0XHRcdFx0PiBsaXsgXHJcblx0XHRcdFx0XHRcdGF7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0LnRpdHRsZS1zdWJ7IG1hcmdpbi1ib3R0b206IDEwcHg7IH1cclxuXHQuYWRkLWFkZHJzeyBmb250LXNpemU6IDExcHg7IH1cclxuXHQuYm94LXBlc2FuYW57XHJcblx0XHQuY29udGVudC1hY2N7XHJcblx0XHRcdC53cmFwLWJveHtcclxuXHRcdFx0XHQuYm94e1xyXG5cdFx0XHRcdCBcdGZsb2F0OiBub25lOyBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDEwMCU7IHBhZGRpbmc6IDAgMTBweDsgXHJcblx0XHRcdFx0XHQmOmxhc3QtY2hpbGR7IGJvcmRlci1sZWZ0OjA7IHBhZGRpbmctbGVmdDogMTBweDt9IFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHR0YWJsZXtcclxuXHRcdFx0XHR0Ym9keXtcclxuXHRcdFx0XHRcdHRye1xyXG5cdFx0XHRcdFx0XHR0ZHtcclxuXHRcdFx0XHRcdFx0XHRmaWd1cmV7IGRpc3BsYXk6IG5vbmU7IH1cclxuXHRcdFx0XHRcdFx0XHQudGV4dHsgbWFyZ2luLWxlZnQ6IDA7IHBhZGRpbmctdG9wOiAwOyB9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdC5ncmlkLWFjY3tcclxuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHQudGQtYm94e1xyXG5cdFx0XHQgXHRkaXNwbGF5OiBibG9jazsgbWFyZ2luLWJvdHRvbTogMTVweDtcclxuXHRcdFx0IFx0JjpudGgtY2hpbGQoMSl7d2lkdGg6IDQwJTt9XHJcblx0XHRcdCBcdCY6bnRoLWNoaWxkKDIpe3dpZHRoOiA0MCU7fVxyXG5cdFx0XHQgXHQmOm50aC1jaGlsZCgzKXt3aWR0aDogNDAlO31cclxuXHRcdFx0IFx0JjpsYXN0LWNoaWxkeyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6IDUlOyB0b3A6IDMwJTsgYm90dG9tOiAwOyAgd2lkdGg6IDMwJTt9XHJcblx0XHRcdCBcdHNwYW57IG1hcmdpbi1ib3R0b206IDVweDsgfVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQuYnRuLXJvdW5kZWR7IGZvbnQtc2l6ZTogMTNweDsgY3Vyc29yOiBwb2ludGVyOyB9XHJcblx0fVxyXG5cdC5ib3gtdm91Y2hlcntcclxuXHRcdC5saXN0LXZvdWNoZXJ7IHdpZHRoOiAxMDAlOyBmbG9hdDogbm9uZTsgbWluLWhlaWdodDogdW5zZXQ7IGRpc3BsYXk6IGJsb2NrOyB9XHJcblx0XHQudGV4dHtcclxuXHRcdFx0ZGlzcGxheTogYmxvY2s7IG1hcmdpbi1sZWZ0OiAxNjBweDsgcGFkZGluZy10b3A6IDIwcHg7IFxyXG5cdFx0XHRzcGFueyBkaXNwbGF5OiBibG9jazsgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxyXG5cdFx0fVxyXG5cdFx0ZmlndXJle1xyXG5cdFx0XHR3aWR0aDogMTUwcHg7IGZsb2F0OiBsZWZ0OyBoZWlnaHQ6IDE2MHB4O1xyXG5cdFx0fVxyXG5cdFx0LmJ0bi1yb3VuZGVkeyBtYXJnaW4tdG9wOiAwOyB9XHJcblx0fVxyXG5cdC5iYW5uZXItbWlkZGxle1xyXG5cdFx0aDIsaDF7IGZvbnQtc2l6ZToxNnB4OyB3aWR0aDogNDAlOyAgfVxyXG5cdFx0XHJcblx0fVxyXG5cdC5naXJkLXNvcnR7XHJcblx0XHRzZWxlY3R7IGhlaWdodDogMzBweDsgcGFkZGluZzogNXB4IDI1cHggNXB4IDVweDsgfVxyXG5cdFx0bGFiZWx7IGZvbnQtc2l6ZToxM3B4OyAgfVxyXG5cdFx0aDZ7IGxpbmUtaGVpZ2h0OiAzMHB4OyBmb250LXNpemU6IDEzcHg7IH1cclxuXHR9XHJcblx0LmJveC1wcm9kdWN0e1xyXG5cdFx0LmRpc2NvdW50eyBmb250LXNpemU6IDhweDsgcGFkZGluZzogMCAxMHB4OyBsaW5lLWhlaWdodDogMjBweDsgIH1cclxuXHRcdC5mbGFneyBcclxuXHRcdFx0Zm9udC1zaXplOiA4cHg7IHdpZHRoOiAzMHB4O3BhZGRpbmc6IDE1cHggMCAzMHB4O1xyXG5cdFx0XHQmOmFmdGVyeyBib3JkZXItbGVmdDoxNXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6IDE1cHggc29saWQgdHJhbnNwYXJlbnQ7IH1cclxuXHRcdH1cclxuXHRcdC5yZWtvbWVueyBcclxuXHRcdFx0Zm9udC1zaXplOiA4cHg7IHBhZGRpbmctbGVmdDogMjVweDtcclxuXHRcdFx0JjpiZWZvcmV7IGJhY2tncm91bmQtc2l6ZToxMDAlO3dpZHRoOiAxMHB4OyB9XHJcblx0XHR9XHJcblx0XHQuY2Fwe1xyXG5cdFx0XHRmb250LXNpemU6IDhweDsgbGluZS1oZWlnaHQ6IDMwcHg7IGhlaWdodDogMzBweDtcclxuXHRcdFx0JjphZnRlcntcclxuXHRcdFx0XHRib3JkZXItdG9wOiAxNXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItYm90dG9tOjE1cHggc29saWQgdHJhbnNwYXJlbnQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdC5iZXN0e1xyXG5cdFx0XHRmb250LXNpemU6IDhweDsgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG5cdFx0XHQmOmJlZm9yZXsgd2lkdGg6MTJweDsgYmFja2dyb3VuZC1zaXplOiAxMDAlOyB9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuYnRuLWNhcnR7IGZvbnQtc2l6ZTogMTFweDsgfVxyXG5cdC5ib3gtcHJvZGRldGFpbHtcclxuXHRcdC5ib3gtc2xpZGV7IHdpZHRoOiAzOC4zNTYlOyB9XHJcblx0XHQuYm94LWRlc2N7IHdpZHRoOiA1OC45MDQlOyAgfVxyXG5cdH1cclxuXHQjdWxhc2FuLCNsb2dpbntcclxuXHRcdC5wb3BfaW5uZXJ7XHJcblx0XHRcdC5jb250ZW50X3BvcHsgd2lkdGg6IGF1dG87IG1hcmdpbjogMCAyMHB4OyB9XHJcblx0XHR9XHJcblx0fVxyXG5cdC5iYW5uZXItbWlkZGxle1xyXG5cdFx0aGVpZ2h0OiAxNjBweDtcclxuXHRcdC5kZXNjeyBwYWRkaW5nLXRvcDogNDBweDsgfVxyXG5cdFx0ZmlndXJleyB3aWR0aDogMzUwcHg7IGhlaWdodDogMjAwcHg7IGJvdHRvbTogLTQwJTsgfVxyXG5cdFx0Ji5naWZ0e1xyXG5cdFx0XHRmaWd1cmV7XHJcblx0XHRcdFx0d2lkdGg6IDI4MHB4O1xyXG5cdFx0XHRcdGJvdHRvbTogLTM0JTtcclxuXHRcdFx0fVx0XHJcblx0XHR9XHJcblx0fVxyXG5cdC5iZy1taWRkbGV7XHJcblx0XHRtYXJnaW46IDAgMjBweDsgbWluLWhlaWdodDogdW5zZXQ7IGhlaWdodDogMTYwcHg7XHJcblx0XHRmaWd1cmV7XHJcblx0XHRcdHdpZHRoOiAyMzBweDsgYm90dG9tOiAtNjBweDsgdG9wOiBhdXRvO1xyXG5cdFx0fVxyXG5cdFx0LmRlc2N7XHJcblx0XHRcdHBhZGRpbmc6IDMwcHggMCAwOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB3aWR0aDogNjQlO1xyXG5cdFx0XHRoM3tmb250LXNpemU6IDE5cHg7fVxyXG5cdFx0XHRoNHsgZm9udC1zaXplOiAxNHB4OyB9XHJcblx0XHRcdC53cmFwLWJ0bnsgd2lkdGg6IDQwJTsgfVxyXG5cdFx0XHRheyBwYWRkaW5nOiAwIDIwcHg7IGxpbmUtaGVpZ2h0OiAzMHB4OyB9XHJcblx0XHR9XHJcblx0fVxyXG5cdC5jb250YWluZXJ7bWFyZ2luLXRvcDogMTUwcHg7fVxyXG5cdC5ib3gtYWJvdXR7XHJcblx0XHRoNHsgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMThweDsgfVxyXG5cdFx0aDV7IGZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDE4cHg7IG1hcmdpbi1ib3R0b206IDEwcHg7IH1cclxuXHRcdHB7IGxpbmUtaGVpZ2h0OiAyMHB4OyBoZWlnaHQ6IDEyMHB4OyBvdmVyZmxvdzogaGlkZGVuOyB9XHJcblx0fVxyXG5cdC5idG4tcm91bmRlZHsgbGluZS1oZWlnaHQ6IDMwcHg7IH1cclxuXHQubmF2X2NhcnR7XHJcblx0XHR0b3A6IDU2cHg7XHJcblx0XHR1bHtcclxuXHRcdFx0bGl7IG1pbi13aWR0aDogdW5zZXQ7IHdpZHRoOiAzMy4yJTsgcGFkZGluZzogMTVweCAwOyB9XHJcblx0XHR9XHJcblx0fVxyXG5cdC50eXtcclxuXHRcdGgyeyBtYXJnaW4tYm90dG9tOiAyMHB4OyB9XHJcblx0fVxyXG5cdC53cmFwOTcweyB3aWR0aDogYXV0bzsgfVxyXG5cdC5tYWluX3dyYXB7XHJcblx0XHRwYWRkaW5nLXRvcDogMjVweDtcclxuXHRcdC5sZl93cmFweyB3aWR0aDogMTAwJTsgZmxvYXQ6IG5vbmU7IH1cclxuXHRcdC5yaF93cmFweyB3aWR0aDogMTAwJTsgZmxvYXQ6IG5vbmU7IG1hcmdpbi10b3A6IDBweDsgfVxyXG5cdFx0LmJveF9yaHtcclxuXHRcdFx0dGFibGV7XHJcblx0XHRcdFx0aDZ7IHdpZHRoOiA0MCU7IGZsb2F0OmxlZnQ7IH1cclxuXHRcdFx0XHRmb3JteyB3aWR0aDogNjAlOyBmbG9hdDogcmlnaHQ7IG1hcmdpbi1ib3R0b206IDEwcHg7fVxyXG5cdFx0XHRcdC5idG4tcm91bmRlZHsgd2lkdGg6IDQwJTsgfVxyXG5cdFx0XHRcdC5zZWUtbXljb3Vwb24sLm5vdGUta3Vwb24ge21hcmdpbi1sZWZ0OiA0MCU7fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQuYmxvY2t7XHJcblx0XHRcdC5yb3d7XHJcblx0XHRcdFx0QGluY2x1ZGUgYm94U2l6aW5nKGJvcmRlci1ib3gpO1xyXG5cdFx0XHRcdCYuYnRue1xyXG5cdFx0XHRcdFx0IHBvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOiAzMHB4OyBsZWZ0OiAwOyByaWdodDogMDtcclxuXHRcdFx0XHRcdC5idG4tcm91bmRlZHsgZmxvYXQ6IGxlZnQ7IG1hcmdpbi1sZWZ0OiAwOyB9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdC50YWJsZS1jYXJ0e1xyXG5cdFx0Ji5kZXR7XHJcblx0XHRcdGZpZ3VyZXsgZGlzcGxheTogbm9uZTsgfVxyXG5cdFx0XHQudGV4dHsgbWFyZ2luLWxlZnQ6IDA7IH1cclxuXHRcdH1cclxuXHR9XHJcblx0LmJveC1kb3dubG9hZGthdHtcclxuXHRcdC5saXN0e1xyXG5cdFx0XHQgd2lkdGg6IDMzLjMzMyU7IG1hcmdpbi1ib3R0b206IDQwcHg7IFxyXG5cdFx0XHQmOm50aC1jaGlsZCgzbisxKXsgY2xlYXI6IGJvdGg7IH1cclxuXHRcdH1cclxuXHR9XHJcblx0LmJveC1mb3Jte1xyXG5cdFx0LmZvcm17IHdpZHRoOiAxMDAlOyBmbG9hdDogbm9uZTsgfVxyXG5cdFx0LmRlc2MtYWRkcnN7IFxyXG5cdFx0XHR3aWR0aDogMTAwJTsgZmxvYXQ6IG5vbmU7IG1hcmdpbi1yaWdodDogMDsgbWFyZ2luLXRvcDogNTBweDtcclxuXHRcdFx0LnRleHR7IHBhZGRpbmc6IDMwcHggMjBweDsgfVxyXG5cdFx0XHRpZnJhbWV7IHdpZHRoOiA4MCU7IGxlZnQ6IDA7IGJvdHRvbTogLTEwMHB4OyBtYXJnaW46IDAgYXV0bzsgaGVpZ2h0OiAyNTBweDsgfVxyXG5cdFx0fVxyXG5cdH1cclxuXHQuc2xpZGVyLWNhcmVlciB7XHJcblx0XHQubGlzdC1zbGlkZXIge1xyXG5cdFx0XHRtaW4taGVpZ2h0OiAyNjVweDtcclxuXHRcdFx0LnRleHQge1xyXG5cdFx0XHRcdHBhZGRpbmctdG9wOiAxMTBweDsgIFxyXG5cdFx0XHRcdCY6YmVmb3JlIHt0b3A6NzVweDt9IFxyXG5cdFx0XHRcdGg1IHtmb250LXNpemU6IDE2cHg7IGxpbmUtaGVpZ2h0OiAyMnB4O30gXHJcblx0XHRcdFx0c3BhbiB7Zm9udC1zaXplOiAxM3B4OyBsaW5lLWhlaWdodDogMTlweDt9IFxyXG5cdFx0XHR9XHJcblx0XHR9IFxyXG5cdH1cclxuXHQuZ2lyZC1zb3J0e1xyXG5cdFx0LmlucHV0LXNlbGVjdHsgZGlzcGxheTogYmxvY2s7IH1cclxuXHR9XHJcblx0LmJveC1wcm9kdWN0e1xyXG5cdFx0Lm91dHN0b2NreyBmb250LXNpemU6IDEycHg7IGxpbmUtaGVpZ2h0OiAxOHB4OyB9XHJcblx0fVxyXG5cdC5ib3gtbm90aWZ7XHJcblx0XHRiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9tYXRlcmlhbC9iZy1ub3RpZjc2OC5wbmcnKW5vLXJlcGVhdCBjZW50ZXI7XHJcblx0XHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG5cdFx0LmJ0bi1yb3VuZGVke1xyXG5cdFx0XHRwYWRkaW5nOiAwIDIwcHg7XHJcblx0XHR9XHJcblx0XHRzcGFue1xyXG5cdFx0XHRtYXJnaW46IDAgYXV0bztcclxuXHRcdH1cclxuXHR9XHJcblx0LndyYXAtcG9wdXB7XHJcblx0XHQuY29udGVudHtcclxuXHRcdFx0d2lkdGg6IDYwMHB4O1xyXG5cdFx0XHRoZWlnaHQ6IDY3MHB4O1xyXG5cdFx0XHRtYXJnaW46IDIwJSBhdXRvO1xyXG5cdFx0fVxyXG5cdFx0ZmlndXJle1xyXG5cdFx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRcdGltZ3tcclxuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdFx0b2JqZWN0LWZpdDogY292ZXI7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdC5saXN0LmZsZXggLndyYXAtZmxleHtcclxuXHRcdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0XHRmbGV4LWZsb3c6IHJvdyB3cmFwO1xyXG5cdFx0XHRmaWd1cmUsLnRleHR7XHJcblx0XHRcdFx0ZmxleDogMCAwIDEwMCU7XHJcblx0XHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xyXG5cdFx0XHR9XHJcblx0XHRcdGZpZ3VyZXtcclxuXHRcdFx0XHRoZWlnaHQ6IDMwMHB4O1xyXG5cdFx0XHR9XHJcblx0XHRcdC50ZXh0e1xyXG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdFx0XHRhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHQuaW52b2ljZXtcclxuXHRcdC5maWx0ZXJ7XHJcblx0XHRcdGZsZXgtZmxvdzogcm93IHdyYXA7XHJcblx0XHRcdC5yaWdodC1maWx7XHJcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAyMHB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdGZvb3RlcntcclxuXHRcdC50b3B7XHJcblx0XHRcdC5ib3h7XHJcblx0XHRcdFx0aDZ7IGZvbnQtc2l6ZTogMTNweDsgfVxyXG5cdFx0XHRcdHNwYW57IGZvbnQtc2l6ZTogMTFweDsgfVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQuYm90e1xyXG5cdFx0XHRwYWRkaW5nOjI1cHggMCAzMHB4OyBcclxuXHRcdFx0aDZ7XHJcblx0XHRcdFx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XHJcblx0XHRcdH1cclxuXHRcdFx0LmJveHsgXHJcblx0XHRcdFx0d2lkdGg6IGNhbGMoMjAlIC0gMjBweCk7XHJcblx0XHRcdFx0YXtcclxuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDVweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0LmxvZ297XHJcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XHJcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xyXG5cdFx0XHR9XHJcblx0XHRcdC53cmFwLWxvZ297XHJcblx0XHRcdFx0d2lkdGg6IGNhbGMoMzAlIC0gMjBweCk7XHJcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcclxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcblx0XHRcdH1cclxuXHRcdFx0LmJveC1hZHJzeyBcclxuXHRcdFx0XHRmbG9hdDogbm9uZTsgZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdFx0bWFyZ2luOiAwIGF1dG8gMTVweCBhdXRvO1xyXG5cdFx0XHRcdHdpZHRoOiBhdXRvO1xyXG5cdFx0XHRcdHB7IGZvbnQtd2VpZ2h0OiBib2xkOyB9XHJcblx0XHRcdFx0YXsgXHJcblx0XHRcdFx0XHRmb250LXdlaWdodDogYm9sZDtcclxuXHRcdFx0XHRcdCYuaWMtdGltZXtcclxuXHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IGJvbGQ7XHJcblx0XHRcdFx0XHRcdHNwYW57IGZvbnQtd2VpZ2h0OiBib2xkOyB9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdC5ib3gtc3Vic2N7XHJcblx0XHRcdFx0d2lkdGg6IDMwJTtcclxuXHRcdFx0XHRzcGFue1xyXG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxMnB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHQud3JhcC1sb2dveyBAaW5jbHVkZSBhZnRlcmNsZWFyOyB9XHJcblx0XHR9XHJcblx0fVx0XHJcblx0LnN0b2Nre1xyXG5cdFx0cGFkZGluZzo0MHB4IDA7XHJcblx0XHQucm93LWhlYWQtc3RvY2t7XHJcblx0XHRcdC5sZWZ0LC5yaWdodHsgZGlzcGxheTogYmxvY2s7IGZsb2F0OiBub25lOyB9XHJcblx0XHR9XHJcblx0XHRoMnsgZm9udC1zaXplOjI4cHg7IGxpbmUtaGVpZ2h0OiAzMnB4OyB9XHJcblx0XHRoNHsgZm9udC1zaXplOiAxOHB4OyBsaW5lLWhlaWdodDogMjJweDsgfVxyXG5cdFx0cHsgZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMjBweDsgfVxyXG5cdFx0LndyYXAtdGFibGV7XHJcblx0XHRcdHRhYmxle1xyXG5cdFx0XHRcdHRoeyBwYWRkaW5nOiAxNXB4OyB9XHJcblx0XHRcdFx0dGR7IHBhZGRpbmc6IDEwcHg7IH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHQubGlzdGluZy1mbGV4e1xyXG5cdFx0LmNvbHVtbntcclxuXHRcdFx0Ji5jb2x1bW4tMjV7XHJcblx0XHRcdFx0ZmxleDogMCAwIDMzLjMzMyU7XHJcblx0XHRcdFx0bWF4LXdpZHRoOiAzMy4zMzMlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdC53cmFwX3BvcCNpbmZvLWdpZnQgLnBvcF9pbm5lciAuY29udGVudF9wb3B7XHJcblx0XHR3aWR0aDogYXV0bztcclxuXHR9XHJcbn0iLCIvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVx0XHJcbiAgICBDb21wYW55ICAgIDogUFQgV2ViIEFyY2hpdGVjdCBUZWNobm9sb2d5IC0gd2ViYXJxLmNvbVxyXG4gICAgRG9jdW1lbnQgICA6IFN0eWxlc2hlZXRcclxuICAgIEF1dGhvciAgICAgOiBGcm9udEVuZCBUZWFtICBcclxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG4vKiBpbXBvcnQgYm91cmJvbiAtIGh0dHA6Ly9ib3VyYm9uLmlvL2RvY3MgKi9cclxuQGltcG9ydCBcImJvdXJib24vYm91cmJvblwiO1xyXG5cclxuQG1peGluIHRyYW5zaXRpb24oJGF0dHIpe1xyXG4gICAgdHJhbnNpdGlvbjogJGF0dHI7XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICRhdHRyO1xyXG4gICAgLW1vei10cmFuc2l0aW9uOiAkYXR0cjtcclxuICAgIC1tcy10cmFuc2l0aW9uOiAkYXR0cjtcclxuICAgIC1vLXRyYW5zaXRpb246ICRhdHRyO1xyXG59XHJcbkBtaXhpbiB0cmFuc2Zvcm0oJGF0dHIpe1xyXG4gICAgdHJhbnNmb3JtOiAkYXR0cjtcclxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiAkYXR0cjtcclxuICAgIC1tb3otdHJhbnNmb3JtOiAkYXR0cjtcclxuICAgIC1tcy10cmFuc2Zvcm06ICRhdHRyO1xyXG4gICAgLW8tdHJhbnNmb3JtOiAkYXR0cjtcclxufVxyXG5AbWl4aW4gYm9yZGVyUmFkaXVzKCRhdHRyKXtcclxuICAgIGJvcmRlci1yYWRpdXM6ICRhdHRyO1xyXG4gICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAkYXR0cjtcclxuICAgIC1tb3otYm9yZGVyLXJhZGl1czogJGF0dHI7XHJcbiAgICAtbXMtYm9yZGVyLXJhZGl1czogJGF0dHI7XHJcbiAgICAtby1ib3JkZXItcmFkaXVzOiAkYXR0cjtcclxufVxyXG5AbWl4aW4gYm94U2hhZG93KCRhdHRyKXtcclxuICAgIGJveC1zaGFkb3c6ICAkYXR0cjtcclxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogJGF0dHI7XHJcbiAgICAtbW96LWJveC1zaGFkb3c6ICRhdHRyO1xyXG4gICAgLW1zLWJveC1zaGFkb3c6ICRhdHRyO1xyXG4gICAgLW8tYm94LXNoYWRvdzogJGF0dHJcclxufVxyXG5AbWl4aW4gYm94U2l6aW5nKCRhdHRyKXtcclxuICAgIGJveC1zaXppbmc6ICAkYXR0cjtcclxuICAgIC13ZWJraXQtYm94LXNpemluZzogJGF0dHI7XHJcbiAgICAtbW96LWJveC1zaXppbmc6ICRhdHRyO1xyXG4gICAgLW1zLWJveC1zaXppbmc6ICRhdHRyO1xyXG4gICAgLW8tYm94LXNpemluZzogJGF0dHJcclxufVxyXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xyXG4gICAgOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtAY29udGVudH1cclxuICAgIDotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7QGNvbnRlbnR9XHJcbiAgICA6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAge0Bjb250ZW50fVxyXG4gICAgOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHtAY29udGVudH0gIFxyXG59XHJcbkBtaXhpbiBib3hTaXppbmcoJGF0dHIpe1xyXG4gICAgLXdlYmtpdC1ib3gtc2l6aW5nOiAkYXR0cjtcclxuICAgIC1tb3otYm94LXNpemluZzogJGF0dHI7XHJcbiAgICBib3gtc2l6aW5nOiAkYXR0cjtcclxufVxyXG5AbWl4aW4gYWZ0ZXJjbGVhcntcclxuICAgICY6YWZ0ZXJ7IGNvbnRlbnQ6Jyc7IGNsZWFyOiBib3RoOyBkaXNwbGF5OiBibG9jazsgfVxyXG59XHJcbkBtaXhpbiB0cmFuc2Zvcm1vcmlnaW4oJGF0dHIpe1xyXG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAkYXR0cjtcclxuICAgIC1tb3otdHJhbnNmb3JtLW9yaWdpbjogJGF0dHI7XHJcbiAgICAtby10cmFuc2Zvcm0tb3JpZ2luOiAkYXR0cjtcclxuICAgIHRyYW5zZm9ybS1vcmlnaW46ICRhdHRyO1xyXG59XHJcblxyXG4vKiBjb2xvciBnbG9iYWxcclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiRjLW9yZzojYjI4ZTM1OyIsIi8vIEJvdXJib24gNC4yLjdcclxuLy8gaHR0cDovL2JvdXJib24uaW9cclxuLy8gQ29weXJpZ2h0IDIwMTEtMjAxNSB0aG91Z2h0Ym90LCBpbmMuXHJcbi8vIE1JVCBMaWNlbnNlXHJcblxyXG5AaW1wb3J0IFwic2V0dGluZ3MvcHJlZml4ZXJcIjtcclxuQGltcG9ydCBcInNldHRpbmdzL3B4LXRvLWVtXCI7XHJcbkBpbXBvcnQgXCJzZXR0aW5ncy9hc3NldC1waXBlbGluZVwiO1xyXG5cclxuQGltcG9ydCBcImZ1bmN0aW9ucy9hc3NpZ24taW5wdXRzXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvY29udGFpbnNcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWlucy1mYWxzeVwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxlbmd0aFwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxpZ2h0XCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbnVtYmVyXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtc2l6ZVwiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3B4LXRvLWVtXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tcmVtXCI7XHJcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc2hhZGVcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9zdHJpcC11bml0c1wiO1xyXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RpbnRcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy90cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy91bnBhY2tcIjtcclxuQGltcG9ydCBcImZ1bmN0aW9ucy9tb2R1bGFyLXNjYWxlXCI7XHJcblxyXG5AaW1wb3J0IFwiaGVscGVycy9jb252ZXJ0LXVuaXRzXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2RpcmVjdGlvbmFsLXZhbHVlc1wiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9mb250LXNvdXJjZS1kZWNsYXJhdGlvblwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1hbmdsZS1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWdyYWRpZW50LXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItcG9zaXRpb25zLXBhcnNlclwiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1hcmctcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJcIjtcclxuQGltcG9ydCBcImhlbHBlcnMvcmVuZGVyLWdyYWRpZW50c1wiO1xyXG5AaW1wb3J0IFwiaGVscGVycy9zaGFwZS1zaXplLXN0cmlwcGVyXCI7XHJcbkBpbXBvcnQgXCJoZWxwZXJzL3N0ci10by1udW1cIjtcclxuXHJcbkBpbXBvcnQgXCJjc3MzL2FuaW1hdGlvblwiO1xyXG5AaW1wb3J0IFwiY3NzMy9hcHBlYXJhbmNlXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2JhY2tmYWNlLXZpc2liaWxpdHlcIjtcclxuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZFwiO1xyXG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kLWltYWdlXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2JvcmRlci1pbWFnZVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9jYWxjXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2NvbHVtbnNcIjtcclxuQGltcG9ydCBcImNzczMvZmlsdGVyXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2ZsZXgtYm94XCI7XHJcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmFjZVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3NcIjtcclxuQGltcG9ydCBcImNzczMvaGlkcGktbWVkaWEtcXVlcnlcIjtcclxuQGltcG9ydCBcImNzczMvaHlwaGVuc1wiO1xyXG5AaW1wb3J0IFwiY3NzMy9pbWFnZS1yZW5kZXJpbmdcIjtcclxuQGltcG9ydCBcImNzczMva2V5ZnJhbWVzXCI7XHJcbkBpbXBvcnQgXCJjc3MzL2xpbmVhci1ncmFkaWVudFwiO1xyXG5AaW1wb3J0IFwiY3NzMy9wZXJzcGVjdGl2ZVwiO1xyXG5AaW1wb3J0IFwiY3NzMy9wbGFjZWhvbGRlclwiO1xyXG5AaW1wb3J0IFwiY3NzMy9yYWRpYWwtZ3JhZGllbnRcIjtcclxuQGltcG9ydCBcImNzczMvc2VsZWN0aW9uXCI7XHJcbkBpbXBvcnQgXCJjc3MzL3RleHQtZGVjb3JhdGlvblwiO1xyXG5AaW1wb3J0IFwiY3NzMy90cmFuc2Zvcm1cIjtcclxuQGltcG9ydCBcImNzczMvdHJhbnNpdGlvblwiO1xyXG5AaW1wb3J0IFwiY3NzMy91c2VyLXNlbGVjdFwiO1xyXG5cclxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItY29sb3JcIjtcclxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItcmFkaXVzXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXN0eWxlXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXdpZHRoXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvYnV0dG9uc1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2NsZWFyZml4XCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvZWxsaXBzaXNcIjtcclxuQGltcG9ydCBcImFkZG9ucy9mb250LXN0YWNrc1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL2hpZGUtdGV4dFwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL21hcmdpblwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3BhZGRpbmdcIjtcclxuQGltcG9ydCBcImFkZG9ucy9wb3NpdGlvblwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3ByZWZpeGVyXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvcmV0aW5hLWltYWdlXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvc2l6ZVwiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3RleHQtaW5wdXRzXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvdGltaW5nLWZ1bmN0aW9uc1wiO1xyXG5AaW1wb3J0IFwiYWRkb25zL3RyaWFuZ2xlXCI7XHJcbkBpbXBvcnQgXCJhZGRvbnMvd29yZC13cmFwXCI7XHJcblxyXG5AaW1wb3J0IFwiYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nXCI7XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBHbG9iYWwgdmFyaWFibGVzIHRvIGVuYWJsZSBvciBkaXNhYmxlIHZlbmRvciBwcmVmaXhlc1xyXG5cclxuJHByZWZpeC1mb3Itd2Via2l0OiAgICB0cnVlICFkZWZhdWx0O1xyXG4kcHJlZml4LWZvci1tb3ppbGxhOiAgIHRydWUgIWRlZmF1bHQ7XHJcbiRwcmVmaXgtZm9yLW1pY3Jvc29mdDogdHJ1ZSAhZGVmYXVsdDtcclxuJHByZWZpeC1mb3Itb3BlcmE6ICAgICB0cnVlICFkZWZhdWx0O1xyXG4kcHJlZml4LWZvci1zcGVjOiAgICAgIHRydWUgIWRlZmF1bHQ7XHJcbiIsIiRlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQSBnbG9iYWwgc2V0dGluZyB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgYCRhc3NldC1waXBlbGluZWAgdmFyaWFibGUgZm9yIGFsbCBmdW5jdGlvbnMgdGhhdCBhY2NlcHQgaXQuXHJcbi8vL1xyXG4vLy8gQHR5cGUgQm9vbFxyXG5cclxuJGFzc2V0LXBpcGVsaW5lOiBmYWxzZSAhZGVmYXVsdDtcclxuIiwiQGZ1bmN0aW9uIGFzc2lnbi1pbnB1dHMoJGlucHV0cywgJHBzZXVkbzogbnVsbCkge1xyXG4gICRsaXN0OiAoKTtcclxuXHJcbiAgQGVhY2ggJGlucHV0IGluICRpbnB1dHMge1xyXG4gICAgJGlucHV0OiB1bnF1b3RlKCRpbnB1dCk7XHJcbiAgICAkaW5wdXQ6IGlmKCRwc2V1ZG8sICRpbnB1dCArIFwiOlwiICsgJHBzZXVkbywgJGlucHV0KTtcclxuICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRpbnB1dCwgY29tbWEpO1xyXG4gIH1cclxuXHJcbiAgQHJldHVybiAkbGlzdDtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBjb250YWlucyBhIHZhbHVlKHMpLlxyXG4vLy9cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3RcclxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWx1ZXNcclxuLy8vICAgQSBzaW5nbGUgdmFsdWUgb3IgbGlzdCBvZiB2YWx1ZXMgdG8gY2hlY2sgZm9yLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICBjb250YWlucygkbGlzdCwgJHZhbHVlKVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0Jvb2x9XHJcblxyXG5AZnVuY3Rpb24gY29udGFpbnMoJGxpc3QsICR2YWx1ZXMuLi4pIHtcclxuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlcyB7XHJcbiAgICBAaWYgdHlwZS1vZihpbmRleCgkbGlzdCwgJHZhbHVlKSkgIT0gXCJudW1iZXJcIiB7XHJcbiAgICAgIEByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuIHRydWU7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENoZWNrcyBpZiBhIGxpc3QgZG9lcyBub3QgY29udGFpbnMgYSB2YWx1ZS5cclxuLy8vXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XHJcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Qm9vbH1cclxuXHJcbkBmdW5jdGlvbiBjb250YWlucy1mYWxzeSgkbGlzdCkge1xyXG4gIEBlYWNoICRpdGVtIGluICRsaXN0IHtcclxuICAgIEBpZiBub3QgJGl0ZW0ge1xyXG4gICAgICBAcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuIGZhbHNlO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIGxlbmd0aC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXHJcblxyXG5AZnVuY3Rpb24gaXMtbGVuZ3RoKCR2YWx1ZSkge1xyXG4gIEByZXR1cm4gdHlwZS1vZigkdmFsdWUpICE9IFwibnVsbFwiIGFuZCAoc3RyLXNsaWNlKCR2YWx1ZSArIFwiXCIsIDEsIDQpID09IFwiY2FsY1wiXHJcbiAgICAgICBvciBpbmRleChhdXRvIGluaGVyaXQgaW5pdGlhbCAwLCAkdmFsdWUpXHJcbiAgICAgICBvciAodHlwZS1vZigkdmFsdWUpID09IFwibnVtYmVyXCIgYW5kIG5vdCh1bml0bGVzcygkdmFsdWUpKSkpO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm9ncmFtYXRpY2FsbHkgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgY29sb3IgaXMgbGlnaHQgb3IgZGFyay5cclxuLy8vXHJcbi8vLyBAbGluayBodHRwOi8vcm9ib3RzLnRob3VnaHRib3QuY29tL2Nsb3Nlci1sb29rLWNvbG9yLWxpZ2h0bmVzc1xyXG4vLy9cclxuLy8vIEBwYXJhbSB7Q29sb3IgKEhleCl9ICRjb2xvclxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICBpcy1saWdodCgkY29sb3IpXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Qm9vbH1cclxuXHJcbkBmdW5jdGlvbiBpcy1saWdodCgkaGV4LWNvbG9yKSB7XHJcbiAgJC1sb2NhbC1yZWQ6IHJlZChyZ2JhKCRoZXgtY29sb3IsIDEpKTtcclxuICAkLWxvY2FsLWdyZWVuOiBncmVlbihyZ2JhKCRoZXgtY29sb3IsIDEpKTtcclxuICAkLWxvY2FsLWJsdWU6IGJsdWUocmdiYSgkaGV4LWNvbG9yLCAxKSk7XHJcbiAgJC1sb2NhbC1saWdodG5lc3M6ICgkLWxvY2FsLXJlZCAqIDAuMjEyNiArICQtbG9jYWwtZ3JlZW4gKiAwLjcxNTIgKyAkLWxvY2FsLWJsdWUgKiAwLjA3MjIpIC8gMjU1O1xyXG5cclxuICBAcmV0dXJuICQtbG9jYWwtbGlnaHRuZXNzID4gMC42O1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgbnVtYmVyLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWVcclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXHJcblxyXG5AZnVuY3Rpb24gaXMtbnVtYmVyKCR2YWx1ZSkge1xyXG4gIEByZXR1cm4gY29udGFpbnMoXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCIgMCAxIDIgMyA0IDUgNiA3IDggOSwgJHZhbHVlKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBzaXplLlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGlzLWxlbmd0aFxyXG5cclxuQGZ1bmN0aW9uIGlzLXNpemUoJHZhbHVlKSB7XHJcbiAgQHJldHVybiBpcy1sZW5ndGgoJHZhbHVlKVxyXG4gICAgICAgICAgb3IgY29udGFpbnMoXCJmaWxsXCIgXCJmaXQtY29udGVudFwiIFwibWluLWNvbnRlbnRcIiBcIm1heC1jb250ZW50XCIsICR2YWx1ZSk7XHJcbn1cclxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gZW1zXHJcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgZW0oMTIpIHdoZW4gdGhlIHBhcmVudCBpcyAxNnB4XHJcbi8vIGlmIHRoZSBwYXJlbnQgaXMgYW5vdGhlciB2YWx1ZSBzYXkgMjRweCB3cml0ZSBlbSgxMiwgMjQpXHJcblxyXG5AZnVuY3Rpb24gZW0oJHB4dmFsLCAkYmFzZTogJGVtLWJhc2UpIHtcclxuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xyXG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xyXG4gIH1cclxuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XHJcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xyXG4gIH1cclxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxZW07XHJcbn1cclxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gcmVtc1xyXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIHJlbSgxMilcclxuLy8gQXNzdW1lcyAkZW0tYmFzZSBpcyB0aGUgZm9udC1zaXplIG9mIDxodG1sPlxyXG5cclxuQGZ1bmN0aW9uIHJlbSgkcHh2YWwpIHtcclxuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xyXG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xyXG4gIH1cclxuXHJcbiAgJGJhc2U6ICRlbS1iYXNlO1xyXG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcclxuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XHJcbiAgfVxyXG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFyZW07XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCBibGFjay5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XHJcbi8vLyAgIFRoZSBhbW91bnQgb2YgYmxhY2sgdG8gYmUgbWl4ZWQgaW4uXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgjZmZiYjUyLCA2MCUpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY2NGEyMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0NvbG9yfVxyXG5cclxuQGZ1bmN0aW9uIHNoYWRlKCRjb2xvciwgJHBlcmNlbnQpIHtcclxuICBAcmV0dXJuIG1peCgjMDAwLCAkY29sb3IsICRwZXJjZW50KTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gU3RyaXBzIHRoZSB1bml0IGZyb20gYSBudW1iZXIuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFdpdGggVW5pdCl9ICR2YWx1ZVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAkZGltZW5zaW9uOiBzdHJpcC11bml0cygxMGVtKTtcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgICRkaW1lbnNpb246IDEwO1xyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlciAoVW5pdGxlc3MpfVxyXG5cclxuQGZ1bmN0aW9uIHN0cmlwLXVuaXRzKCR2YWx1ZSkge1xyXG4gIEByZXR1cm4gKCR2YWx1ZSAvICgkdmFsdWUgKiAwICsgMSkpO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggd2hpdGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxyXG4vLy8gICBUaGUgYW1vdW50IG9mIHdoaXRlIHRvIGJlIG1peGVkIGluLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgjNmVjYWE2LCA0MCUpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E4ZGZjOTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0NvbG9yfVxyXG5cclxuQGZ1bmN0aW9uIHRpbnQoJGNvbG9yLCAkcGVyY2VudCkge1xyXG4gIEByZXR1cm4gbWl4KCNmZmYsICRjb2xvciwgJHBlcmNlbnQpO1xyXG59XHJcbiIsIi8vIFJldHVybiB2ZW5kb3ItcHJlZml4ZWQgcHJvcGVydHkgbmFtZXMgaWYgYXBwcm9wcmlhdGVcclxuLy8gRXhhbXBsZTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygodHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZCksIG1veikgLT4gLW1vei10cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kXHJcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BzLCAkdmVuZG9yOiBmYWxzZSkge1xyXG4gICRuZXctcHJvcHM6ICgpO1xyXG5cclxuICBAZWFjaCAkcHJvcCBpbiAkcHJvcHMge1xyXG4gICAgJG5ldy1wcm9wczogYXBwZW5kKCRuZXctcHJvcHMsIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvciksIGNvbW1hKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJG5ldy1wcm9wcztcclxufVxyXG5cclxuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvcjogZmFsc2UpIHtcclxuICAvLyBwdXQgb3RoZXIgcHJvcGVydGllcyB0aGF0IG5lZWQgdG8gYmUgcHJlZml4ZWQgaGVyZSBhc3dlbGxcclxuICBAaWYgJHZlbmRvciBhbmQgJHByb3AgPT0gdHJhbnNmb3JtIHtcclxuICAgIEByZXR1cm4gdW5xdW90ZSgnLScrJHZlbmRvcisnLScrJHByb3ApO1xyXG4gIH1cclxuICBAZWxzZSB7XHJcbiAgICBAcmV0dXJuICRwcm9wO1xyXG4gIH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gQ29udmVydHMgc2hvcnRoYW5kIHRvIHRoZSA0LXZhbHVlIHN5bnRheC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRzaG9ydGhhbmRcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIG1hcmdpbjogdW5wYWNrKDFlbSAyZW0pO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgbWFyZ2luOiAxZW0gMmVtIDFlbSAyZW07XHJcbi8vLyAgIH1cclxuXHJcbkBmdW5jdGlvbiB1bnBhY2soJHNob3J0aGFuZCkge1xyXG4gIEBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMSB7XHJcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKTtcclxuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAyIHtcclxuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpO1xyXG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDMge1xyXG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAzKSBudGgoJHNob3J0aGFuZCwgMik7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAcmV0dXJuICRzaG9ydGhhbmQ7XHJcbiAgfVxyXG59XHJcbiIsIi8vIFNjYWxpbmcgVmFyaWFibGVzXHJcbiRnb2xkZW46ICAgICAgICAgICAxLjYxODtcclxuJG1pbm9yLXNlY29uZDogICAgIDEuMDY3O1xyXG4kbWFqb3Itc2Vjb25kOiAgICAgMS4xMjU7XHJcbiRtaW5vci10aGlyZDogICAgICAxLjI7XHJcbiRtYWpvci10aGlyZDogICAgICAxLjI1O1xyXG4kcGVyZmVjdC1mb3VydGg6ICAgMS4zMzM7XHJcbiRhdWdtZW50ZWQtZm91cnRoOiAxLjQxNDtcclxuJHBlcmZlY3QtZmlmdGg6ICAgIDEuNTtcclxuJG1pbm9yLXNpeHRoOiAgICAgIDEuNjtcclxuJG1ham9yLXNpeHRoOiAgICAgIDEuNjY3O1xyXG4kbWlub3Itc2V2ZW50aDogICAgMS43Nzg7XHJcbiRtYWpvci1zZXZlbnRoOiAgICAxLjg3NTtcclxuJG9jdGF2ZTogICAgICAgICAgIDI7XHJcbiRtYWpvci10ZW50aDogICAgICAyLjU7XHJcbiRtYWpvci1lbGV2ZW50aDogICAyLjY2NztcclxuJG1ham9yLXR3ZWxmdGg6ICAgIDM7XHJcbiRkb3VibGUtb2N0YXZlOiAgICA0O1xyXG5cclxuJG1vZHVsYXItc2NhbGUtcmF0aW86ICRwZXJmZWN0LWZvdXJ0aCAhZGVmYXVsdDtcclxuJG1vZHVsYXItc2NhbGUtYmFzZTogZW0oJGVtLWJhc2UpICFkZWZhdWx0O1xyXG5cclxuQGZ1bmN0aW9uIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlOiAkbW9kdWxhci1zY2FsZS1iYXNlLCAkcmF0aW86ICRtb2R1bGFyLXNjYWxlLXJhdGlvKSB7XHJcbiAgJHYxOiBudGgoJHZhbHVlLCAxKTtcclxuICAkdjI6IG50aCgkdmFsdWUsIGxlbmd0aCgkdmFsdWUpKTtcclxuICAkdmFsdWU6ICR2MTtcclxuXHJcbiAgLy8gc2NhbGUgJHYyIHRvIGp1c3QgYWJvdmUgJHYxXHJcbiAgQHdoaWxlICR2MiA+ICR2MSB7XHJcbiAgICAkdjI6ICgkdjIgLyAkcmF0aW8pOyAvLyB3aWxsIGJlIG9mZi1ieS0xXHJcbiAgfVxyXG4gIEB3aGlsZSAkdjIgPCAkdjEge1xyXG4gICAgJHYyOiAoJHYyICogJHJhdGlvKTsgLy8gd2lsbCBmaXggb2ZmLWJ5LTFcclxuICB9XHJcblxyXG4gIC8vIGNoZWNrIEFGVEVSIHNjYWxpbmcgJHYyIHRvIHByZXZlbnQgZG91YmxlLWNvdW50aW5nIGNvcm5lci1jYXNlXHJcbiAgJGRvdWJsZS1zdHJhbmRlZDogJHYyID4gJHYxO1xyXG5cclxuICBAaWYgJGluY3JlbWVudCA+IDAge1xyXG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkaW5jcmVtZW50IHtcclxuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgKiAkcmF0aW8pID4gJHYyIHtcclxuICAgICAgICAkdmFsdWU6ICR2MjtcclxuICAgICAgICAkdjI6ICgkdjIgKiAkcmF0aW8pO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICAkdjE6ICgkdjEgKiAkcmF0aW8pO1xyXG4gICAgICAgICR2YWx1ZTogJHYxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgJGluY3JlbWVudCA8IDAge1xyXG4gICAgLy8gYWRqdXN0ICR2MiB0byBqdXN0IGJlbG93ICR2MVxyXG4gICAgQGlmICRkb3VibGUtc3RyYW5kZWQge1xyXG4gICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xyXG4gICAgfVxyXG5cclxuICAgIEBmb3IgJGkgZnJvbSAkaW5jcmVtZW50IHRocm91Z2ggLTEge1xyXG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAvICRyYXRpbykgPCAkdjIge1xyXG4gICAgICAgICR2YWx1ZTogJHYyO1xyXG4gICAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICR2MTogKCR2MSAvICRyYXRpbyk7XHJcbiAgICAgICAgJHZhbHVlOiAkdjE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHZhbHVlO1xyXG59XHJcbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBzdHItdG8tbnVtIGZuLlxyXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XHJcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuQGZ1bmN0aW9uIF9jb252ZXJ0LXVuaXRzKCRudW1iZXIsICR1bml0KSB7XHJcbiAgJHN0cmluZ3M6IFwicHhcIiwgXCJjbVwiLCBcIm1tXCIsIFwiJVwiLCBcImNoXCIsIFwicGljYVwiLCBcImluXCIsIFwiZW1cIiwgXCJyZW1cIiwgXCJwdFwiLCBcInBjXCIsIFwiZXhcIiwgXCJ2d1wiLCBcInZoXCIsIFwidm1pblwiLCBcInZtYXhcIiwgXCJkZWdcIiwgXCJyYWRcIiwgXCJncmFkXCIsIFwidHVyblwiO1xyXG4gICR1bml0czogICAxcHgsIDFjbSwgMW1tLCAxJSwgMWNoLCAxcGljYSwgMWluLCAxZW0sIDFyZW0sIDFwdCwgMXBjLCAxZXgsIDF2dywgMXZoLCAxdm1pbiwgMXZtYXgsIDFkZWcsIDFyYWQsIDFncmFkLCAxdHVybjtcclxuICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkdW5pdCk7XHJcblxyXG4gIEBpZiBub3QgJGluZGV4IHtcclxuICAgIEB3YXJuIFwiVW5rbm93biB1bml0IGAjeyR1bml0fWAuXCI7XHJcbiAgICBAcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgQGlmIHR5cGUtb2YoJG51bWJlcikgIT0gXCJudW1iZXJcIiB7XHJcbiAgICBAd2FybiBcImAjeyRudW1iZXJ9IGlzIG5vdCBhIG51bWJlcmBcIjtcclxuICAgIEByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBAcmV0dXJuICRudW1iZXIgKiBudGgoJHVuaXRzLCAkaW5kZXgpO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBEaXJlY3Rpb25hbC1wcm9wZXJ0eSBtaXhpbnMgYXJlIHNob3J0aGFuZHMgZm9yIHdyaXRpbmcgcHJvcGVydGllcyBsaWtlIHRoZSBmb2xsb3dpbmdcclxuLy8vXHJcbi8vLyBAaWdub3JlIFlvdSBjYW4gYWxzbyB1c2UgYGZhbHNlYCBpbnN0ZWFkIG9mIGBudWxsYC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXHJcbi8vLyAgIExpc3Qgb2YgZGlyZWN0aW9uYWwgdmFsdWVzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZG90dGVkIG51bGwpO1xyXG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDAgMTBweCk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBkb3R0ZWQ7XHJcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZG90dGVkO1xyXG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDA7XHJcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0xpc3R9XHJcblxyXG5AZnVuY3Rpb24gY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKSB7XHJcbiAgJG91dHB1dDogbnVsbDtcclxuXHJcbiAgJGE6IG50aCgkdmFscywgMSk7XHJcbiAgJGI6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCAyKSk7XHJcbiAgJGM6IGlmKGxlbmd0aCgkdmFscykgPCAzLCAkYSwgbnRoKCR2YWxzLCAzKSk7XHJcbiAgJGQ6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCBpZihsZW5ndGgoJHZhbHMpIDwgNCwgMiwgNCkpKTtcclxuXHJcbiAgQGlmICRhID09IDAgeyAkYTogMDsgfVxyXG4gIEBpZiAkYiA9PSAwIHsgJGI6IDA7IH1cclxuICBAaWYgJGMgPT0gMCB7ICRjOiAwOyB9XHJcbiAgQGlmICRkID09IDAgeyAkZDogMDsgfVxyXG5cclxuICBAaWYgJGEgPT0gJGIgYW5kICRhID09ICRjIGFuZCAkYSA9PSAkZCB7ICRvdXRwdXQ6ICRhOyAgICAgICAgICB9XHJcbiAgQGVsc2UgaWYgJGEgPT0gJGMgYW5kICRiID09ICRkICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYjsgICAgICAgfVxyXG4gIEBlbHNlIGlmICRiID09ICRkICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGM7ICAgIH1cclxuICBAZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjICRkOyB9XHJcblxyXG4gIEByZXR1cm4gJG91dHB1dDtcclxufVxyXG5cclxuLy8vIE91dHB1dCBkaXJlY3Rpb25hbCBwcm9wZXJ0aWVzLCBmb3IgaW5zdGFuY2UgYG1hcmdpbmAuXHJcbi8vL1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcmVcclxuLy8vICAgUHJlZml4IHRvIHVzZVxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdWZcclxuLy8vICAgU3VmZml4IHRvIHVzZVxyXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xyXG4vLy8gICBMaXN0IG9mIHZhbHVlc1xyXG4vLy9cclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29sbGFwc2UtZGlyZWN0aW9uYWxzXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XHJcblxyXG5AbWl4aW4gZGlyZWN0aW9uYWwtcHJvcGVydHkoJHByZSwgJHN1ZiwgJHZhbHMpIHtcclxuICAvLyBQcm9wZXJ0eSBOYW1lc1xyXG4gICR0b3A6ICAgICRwcmUgKyBcIi10b3BcIiAgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XHJcbiAgJGJvdHRvbTogJHByZSArIFwiLWJvdHRvbVwiICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcclxuICAkbGVmdDogICAkcHJlICsgXCItbGVmdFwiICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xyXG4gICRyaWdodDogICRwcmUgKyBcIi1yaWdodFwiICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XHJcbiAgJGFsbDogICAgJHByZSArICAgICAgICAgICAgIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XHJcblxyXG4gICR2YWxzOiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpO1xyXG5cclxuICBAaWYgY29udGFpbnMtZmFsc3koJHZhbHMpIHtcclxuICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skdG9wfTogbnRoKCR2YWxzLCAxKTsgfVxyXG5cclxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDEge1xyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAxKTsgfVxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDIpOyB9XHJcbiAgICB9XHJcblxyXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMiB7XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAxKTsgfVxyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cclxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSAzIHtcclxuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XHJcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxyXG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDQge1xyXG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cclxuICAgICAgQGlmIG50aCgkdmFscywgNCkgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDQpOyB9XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICAjeyRhbGx9OiAkdmFscztcclxuICB9XHJcbn1cclxuIiwiLy8gVXNlZCBmb3IgY3JlYXRpbmcgdGhlIHNvdXJjZSBzdHJpbmcgZm9yIGZvbnRzIHVzaW5nIEBmb250LWZhY2VcclxuLy8gUmVmZXJlbmNlOiBodHRwOi8vZ29vLmdsL1J1MWJLUFxyXG5cclxuQGZ1bmN0aW9uIGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSkge1xyXG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XHJcbiAgICBAcmV0dXJuIGZvbnQtdXJsO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQHJldHVybiB1cmw7XHJcbiAgfVxyXG59XHJcblxyXG5AZnVuY3Rpb24gZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXHJcbiAgJGZvbnQtZmFtaWx5LFxyXG4gICRmaWxlLXBhdGgsXHJcbiAgJGFzc2V0LXBpcGVsaW5lLFxyXG4gICRmaWxlLWZvcm1hdHMsXHJcbiAgJGZvbnQtdXJsKSB7XHJcblxyXG4gICRzcmM6ICgpO1xyXG5cclxuICAkZm9ybWF0cy1tYXA6IChcclxuICAgIGVvdDogICBcIiN7JGZpbGUtcGF0aH0uZW90PyNpZWZpeFwiIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxyXG4gICAgd29mZjI6IFwiI3skZmlsZS1wYXRofS53b2ZmMlwiIGZvcm1hdChcIndvZmYyXCIpLFxyXG4gICAgd29mZjogIFwiI3skZmlsZS1wYXRofS53b2ZmXCIgZm9ybWF0KFwid29mZlwiKSxcclxuICAgIHR0ZjogICBcIiN7JGZpbGUtcGF0aH0udHRmXCIgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXHJcbiAgICBzdmc6ICAgXCIjeyRmaWxlLXBhdGh9LnN2ZyMjeyRmb250LWZhbWlseX1cIiBmb3JtYXQoXCJzdmdcIilcclxuICApO1xyXG5cclxuICBAZWFjaCAka2V5LCAkdmFsdWVzIGluICRmb3JtYXRzLW1hcCB7XHJcbiAgICBAaWYgY29udGFpbnMoJGZpbGUtZm9ybWF0cywgJGtleSkge1xyXG4gICAgICAkZmlsZS1wYXRoOiBudGgoJHZhbHVlcywgMSk7XHJcbiAgICAgICRmb250LWZvcm1hdDogbnRoKCR2YWx1ZXMsIDIpO1xyXG5cclxuICAgICAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcclxuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgZm9udC11cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCB1cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHNyYztcclxufVxyXG4iLCJAZnVuY3Rpb24gX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXR5cGUsICRncmFkaWVudC1wb3NpdGlvbnMpIHtcclxuICBAaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xyXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyKVxyXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xyXG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xyXG4gIH1cclxuICBAZWxzZSBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXHJcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwpXHJcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XHJcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XHJcbiAgfVxyXG4gIEByZXR1cm4gJGdyYWRpZW50LXBvc2l0aW9ucztcclxufVxyXG4iLCIvLyBQcml2YXRlIGZ1bmN0aW9uIGZvciBsaW5lYXItZ3JhZGllbnQtcGFyc2VyXHJcbkBmdW5jdGlvbiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpIHtcclxuICAkb2Zmc2V0OiBudWxsO1xyXG4gICR1bml0LXNob3J0OiAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAyLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcclxuICAkdW5pdC1sb25nOiAgIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XHJcblxyXG4gIEBpZiAoJHVuaXQtbG9uZyA9PSBcImdyYWRcIikgb3JcclxuICAgICAgKCR1bml0LWxvbmcgPT0gXCJ0dXJuXCIpIHtcclxuICAgICRvZmZzZXQ6IGlmKCR1bml0LWxvbmcgPT0gXCJncmFkXCIsIC0xMDBncmFkICogMywgLTAuNzV0dXJuKTtcclxuICB9XHJcblxyXG4gIEBlbHNlIGlmICgkdW5pdC1zaG9ydCA9PSBcImRlZ1wiKSBvclxyXG4gICAgICAgICAgICgkdW5pdC1zaG9ydCA9PSBcInJhZFwiKSB7XHJcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1zaG9ydCA9PSBcImRlZ1wiLCAtOTAgKiAzLCAxLjZyYWQpO1xyXG4gIH1cclxuXHJcbiAgQGlmICRvZmZzZXQge1xyXG4gICAgJG51bTogX3N0ci10by1udW0oJGZpcnN0LXZhbCk7XHJcblxyXG4gICAgQHJldHVybiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgKCRvZmZzZXQgLSAkbnVtKSArICRzdWZmaXgsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xyXG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xyXG4gICRncmFkaWVudHM6ICgpO1xyXG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xyXG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcclxuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XHJcblxyXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDEsICRzdGFydCk7XHJcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcclxuXHJcbiAgJGhhcy1tdWx0aXBsZS12YWxzOiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCIgXCIpO1xyXG4gICRoYXMtc2luZ2xlLXBvc2l0aW9uOiB1bnF1b3RlKF9wb3NpdGlvbi1mbGlwcGVyKCRmaXJzdC12YWwpICsgXCJcIik7XHJcbiAgJGhhcy1hbmdsZTogaXMtbnVtYmVyKHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAxKSk7XHJcblxyXG4gIEBpZiAkaGFzLW11bHRpcGxlLXZhbHMge1xyXG4gICAgJGdyYWRpZW50czogX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJGhhcy1zaW5nbGUtcG9zaXRpb24gIT0gXCJcIiB7XHJcbiAgICAkcG9zOiB1bnF1b3RlKCRoYXMtc2luZ2xlLXBvc2l0aW9uICsgXCJcIik7XHJcblxyXG4gICAgJGdyYWRpZW50czogKFxyXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxyXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJGhhcy1hbmdsZSB7XHJcbiAgICAvLyBSb3RhdGUgZGVncmVlIGZvciB3ZWJraXRcclxuICAgICRncmFkaWVudHM6IF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSB7XHJcbiAgICAkZ3JhZGllbnRzOiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJGdyYWRpZW50cztcclxufVxyXG4iLCJAZnVuY3Rpb24gX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpIHtcclxuICAkdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xyXG4gICRzcGVjOiBudWxsO1xyXG4gICRkZWdyZWU6IG51bGw7XHJcbiAgJHNpZGU6IG51bGw7XHJcbiAgJGNvcm5lcjogbnVsbDtcclxuICAkbGVuZ3RoOiBsZW5ndGgoJHBvcyk7XHJcbiAgLy8gUGFyc2UgU2lkZSBhbmQgY29ybmVyIHBvc2l0aW9uc1xyXG4gIEBpZiAoJGxlbmd0aCA+IDEpIHtcclxuICAgIEBpZiBudGgoJHBvcywgMSkgPT0gXCJ0b1wiIHsgLy8gTmV3ZXIgc3ludGF4XHJcbiAgICAgICRzaWRlOiBudGgoJHBvcywgMik7XHJcblxyXG4gICAgICBAaWYgJGxlbmd0aCA9PSAyIHsgLy8gZWcuIHRvIHRvcFxyXG4gICAgICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XHJcbiAgICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcclxuICAgICAgfVxyXG4gICAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDMgeyAvLyBlZy4gdG8gdG9wIGxlZnRcclxuICAgICAgICAkY29ybmVyOiBudGgoJHBvcywgMyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMiB7IC8vIE9sZGVyIHN5bnRheCAoXCJ0b3AgbGVmdFwiKVxyXG4gICAgICAkc2lkZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDEpKTtcclxuICAgICAgJGNvcm5lcjogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcclxuICAgIH1cclxuXHJcbiAgICBAaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIGxlZnRcIikge1xyXG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XHJcbiAgICB9XHJcbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIHJpZ2h0XCIpIHtcclxuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xyXG4gICAgfVxyXG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSByaWdodFwiKSB7XHJcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcclxuICAgIH1cclxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSBsZWZ0XCIpIHtcclxuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xyXG4gICAgfVxyXG4gICAgJHNwZWM6IHRvICRzaWRlICRjb3JuZXI7XHJcbiAgfVxyXG4gIEBlbHNlIGlmICRsZW5ndGggPT0gMSB7XHJcbiAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxyXG4gICAgQGlmICR0eXBlID09IHN0cmluZyB7XHJcbiAgICAgICRkZWdyZWU6ICRwb3M7XHJcbiAgICAgICRzcGVjOiB0byBfcG9zaXRpb24tZmxpcHBlcigkcG9zKTtcclxuICAgIH1cclxuICAgIEBlbHNlIHtcclxuICAgICAgJGRlZ3JlZTogLTI3MCAtICRwb3M7IC8vcm90YXRlIHRoZSBncmFkaWVudCBvcHBvc2l0ZSBmcm9tIHNwZWNcclxuICAgICAgJHNwZWM6ICRwb3M7XHJcbiAgICB9XHJcbiAgfVxyXG4gICRkZWdyZWU6IHVucXVvdGUoJGRlZ3JlZSArIFwiLFwiKTtcclxuICAkc3BlYzogICB1bnF1b3RlKCRzcGVjICsgXCIsXCIpO1xyXG4gIEByZXR1cm4gJGRlZ3JlZSAkc3BlYztcclxufVxyXG5cclxuQGZ1bmN0aW9uIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpIHtcclxuICBAcmV0dXJuIGlmKCRwb3MgPT0gbGVmdCwgcmlnaHQsIG51bGwpXHJcbiAgICAgICAgIGlmKCRwb3MgPT0gcmlnaHQsIGxlZnQsIG51bGwpXHJcbiAgICAgICAgIGlmKCRwb3MgPT0gdG9wLCBib3R0b20sIG51bGwpXHJcbiAgICAgICAgIGlmKCRwb3MgPT0gYm90dG9tLCB0b3AsIG51bGwpO1xyXG59XHJcbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcclxuQGZ1bmN0aW9uIF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKSB7XHJcbiAgJHZhbC0xOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGhhcy1tdWx0aXBsZS12YWxzIC0gMSk7XHJcbiAgJHZhbC0yOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGhhcy1tdWx0aXBsZS12YWxzICsgMSwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XHJcbiAgJHZhbC0zOiBudWxsO1xyXG4gICRoYXMtdmFsLTM6IHN0ci1pbmRleCgkdmFsLTIsIFwiIFwiKTtcclxuXHJcbiAgQGlmICRoYXMtdmFsLTMge1xyXG4gICAgJHZhbC0zOiBzdHItc2xpY2UoJHZhbC0yLCAkaGFzLXZhbC0zICsgMSwgc3RyLWxlbmd0aCgkdmFsLTIpKTtcclxuICAgICR2YWwtMjogc3RyLXNsaWNlKCR2YWwtMiwgMSwgJGhhcy12YWwtMyAtIDEpO1xyXG4gIH1cclxuXHJcbiAgJHBvczogX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0xKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTIpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMyk7XHJcbiAgJHBvczogdW5xdW90ZSgkcG9zICsgXCJcIik7XHJcblxyXG4gIC8vIFVzZSBvbGQgc3BlYyBmb3Igd2Via2l0XHJcbiAgQGlmICR2YWwtMSA9PSBcInRvXCIge1xyXG4gICAgQHJldHVybiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIEJyaW5nIHRoZSBjb2RlIHVwIHRvIHNwZWNcclxuICBAZWxzZSB7XHJcbiAgICBAcmV0dXJuIChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcclxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpIHtcclxuICBAZWFjaCAkdmFsdWUgaW4gJGcxLCAkZzIge1xyXG4gICAgJGZpcnN0LXZhbDogbnRoKCR2YWx1ZSwgMSk7XHJcbiAgICAkcG9zLXR5cGU6ICB0eXBlLW9mKCRmaXJzdC12YWwpO1xyXG4gICAgJHNwZWMtYXQtaW5kZXg6IG51bGw7XHJcblxyXG4gICAgLy8gRGV0ZXJtaW5lIGlmIHNwZWMgd2FzIHBhc3NlZCB0byBtaXhpblxyXG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBsaXN0IHtcclxuICAgICAgJHNwZWMtYXQtaW5kZXg6IGlmKGluZGV4KCR2YWx1ZSwgYXQpLCBpbmRleCgkdmFsdWUsIGF0KSwgZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgQGlmICRzcGVjLWF0LWluZGV4IHtcclxuICAgICAgQGlmICRzcGVjLWF0LWluZGV4ID4gMSB7XHJcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAoJHNwZWMtYXQtaW5kZXggLSAxKSB7XHJcbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHNoYXBlLXNpemUgbnRoKCR2YWx1ZSwgJGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XHJcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgQGVsc2UgaWYgJHNwZWMtYXQtaW5kZXggPT0gMSB7XHJcbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xyXG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgICRnMTogbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiBub3Qgc3BlYyBjYWxjdWxhdGUgY29ycmVjdCB2YWx1ZXNcclxuICAgIEBlbHNlIHtcclxuICAgICAgQGlmICgkcG9zLXR5cGUgIT0gY29sb3IpIG9yICgkZmlyc3QtdmFsICE9IFwidHJhbnNwYXJlbnRcIikge1xyXG4gICAgICAgIEBpZiAoJHBvcy10eXBlID09IG51bWJlcilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNlbnRlclwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwidG9wXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJyaWdodFwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiYm90dG9tXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJsZWZ0XCIpIHtcclxuXHJcbiAgICAgICAgICAkcG9zOiAkdmFsdWU7XHJcblxyXG4gICAgICAgICAgQGlmICRwb3MgPT0gJGcxIHtcclxuICAgICAgICAgICAgJGcxOiBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGVsc2UgaWZcclxuICAgICAgICAgICAoJGZpcnN0LXZhbCA9PSBcImVsbGlwc2VcIilcclxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNpcmNsZVwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1zaWRlXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LWNvcm5lclwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3Qtc2lkZVwiKVxyXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3QtY29ybmVyXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb250YWluXCIpXHJcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb3ZlclwiKSB7XHJcblxyXG4gICAgICAgICAgJHNoYXBlLXNpemU6ICR2YWx1ZTtcclxuXHJcbiAgICAgICAgICBAaWYgJHZhbHVlID09ICRnMSB7XHJcbiAgICAgICAgICAgICRnMTogbnVsbDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBAZWxzZSBpZiAkdmFsdWUgPT0gJGcyIHtcclxuICAgICAgICAgICAgJGcyOiBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBAcmV0dXJuICRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZTtcclxufVxyXG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3MpIHtcclxuICAkc2hhcGUtc2l6ZTogbnRoKCRncmFkaWVudC1wb3MsIDEpO1xyXG4gICRwb3M6ICAgICAgICBudGgoJGdyYWRpZW50LXBvcywgMik7XHJcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xyXG5cclxuICAkcHJlLXNwZWM6IHVucXVvdGUoaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCkpXHJcbiAgICAgICAgICAgICB1bnF1b3RlKGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LFwiLCBudWxsKSk7XHJcbiAgJHBvcy1zcGVjOiBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XHJcblxyXG4gICRzcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skcG9zLXNwZWN9XCI7XHJcblxyXG4gIC8vIEFkZCBjb21tYVxyXG4gIEBpZiAoJHNwZWMgIT0gXCIgIFwiKSB7XHJcbiAgICAkc3BlYzogXCIjeyRzcGVjfSxcIjtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJHByZS1zcGVjICRzcGVjO1xyXG59XHJcbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcclxuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcclxuICAkZ3JhZGllbnRzOiAoKTtcclxuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcclxuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XHJcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xyXG5cclxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAxLCAkc3RhcnQpO1xyXG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XHJcblxyXG4gICRpcy1zcGVjLXN5bnRheDogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiYXRcIik7XHJcblxyXG4gIEBpZiAkaXMtc3BlYy1zeW50YXggYW5kICRpcy1zcGVjLXN5bnRheCA+IDEge1xyXG4gICAgJGtleXdvcmQ6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaXMtc3BlYy1zeW50YXggLSAyKTtcclxuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcclxuICAgICRwb3M6IGFwcGVuZCgkcG9zLCAka2V5d29yZCwgY29tbWEpO1xyXG5cclxuICAgICRncmFkaWVudHM6IChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJGlzLXNwZWMtc3ludGF4ID09IDEge1xyXG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xyXG5cclxuICAgICRncmFkaWVudHM6IChcclxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcclxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgc3RyLWluZGV4KCRpbWFnZSwgXCJjb3ZlclwiKSBvciBzdHItaW5kZXgoJGltYWdlLCBcImNvbnRhaW5cIikge1xyXG4gICAgQHdhcm4gXCJSYWRpYWwtZ3JhZGllbnQgbmVlZHMgdG8gYmUgdXBkYXRlZCB0byBjb25mb3JtIHRvIGxhdGVzdCBzcGVjLlwiO1xyXG5cclxuICAgICRncmFkaWVudHM6IChcclxuICAgICAgd2Via2l0LWltYWdlOiBudWxsLFxyXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSB7XHJcbiAgICAkZ3JhZGllbnRzOiAoXHJcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXHJcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEByZXR1cm4gJGdyYWRpZW50cztcclxufVxyXG4iLCIvLyBVc2VyIGZvciBsaW5lYXIgYW5kIHJhZGlhbCBncmFkaWVudHMgd2l0aGluIGJhY2tncm91bmQtaW1hZ2Ugb3IgYm9yZGVyLWltYWdlIHByb3BlcnRpZXNcclxuXHJcbkBmdW5jdGlvbiBfcmVuZGVyLWdyYWRpZW50cygkZ3JhZGllbnQtcG9zaXRpb25zLCAkZ3JhZGllbnRzLCAkZ3JhZGllbnQtdHlwZSwgJHZlbmRvcjogZmFsc2UpIHtcclxuICAkcHJlLXNwZWM6IG51bGw7XHJcbiAgJHNwZWM6IG51bGw7XHJcbiAgJHZlbmRvci1ncmFkaWVudHM6IG51bGw7XHJcbiAgQGlmICRncmFkaWVudC10eXBlID09IGxpbmVhciB7XHJcbiAgICBAaWYgJGdyYWRpZW50LXBvc2l0aW9ucyB7XHJcbiAgICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xyXG4gICAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcclxuICAgIH1cclxuICB9XHJcbiAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsIHtcclxuICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xyXG4gICAgJHNwZWM6ICAgICBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMik7XHJcbiAgfVxyXG5cclxuICBAaWYgJHZlbmRvciB7XHJcbiAgICAkdmVuZG9yLWdyYWRpZW50czogLSN7JHZlbmRvcn0tI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skcHJlLXNwZWN9ICRncmFkaWVudHMpO1xyXG4gIH1cclxuICBAZWxzZSBpZiAkdmVuZG9yID09IGZhbHNlIHtcclxuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiBcIiN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHNwZWN9ICN7JGdyYWRpZW50c30pXCI7XHJcbiAgICAkdmVuZG9yLWdyYWRpZW50czogdW5xdW90ZSgkdmVuZG9yLWdyYWRpZW50cyk7XHJcbiAgfVxyXG4gIEByZXR1cm4gJHZlbmRvci1ncmFkaWVudHM7XHJcbn1cclxuIiwiQGZ1bmN0aW9uIF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKSB7XHJcbiAgJHNoYXBlLXNpemUtc3BlYzogbnVsbDtcclxuICBAZWFjaCAkdmFsdWUgaW4gJHNoYXBlLXNpemUge1xyXG4gICAgQGlmICgkdmFsdWUgPT0gXCJjb3ZlclwiKSBvciAoJHZhbHVlID09IFwiY29udGFpblwiKSB7XHJcbiAgICAgICR2YWx1ZTogbnVsbDtcclxuICAgIH1cclxuICAgICRzaGFwZS1zaXplLXNwZWM6IFwiI3skc2hhcGUtc2l6ZS1zcGVjfSAjeyR2YWx1ZX1cIjtcclxuICB9XHJcbiAgQHJldHVybiAkc2hhcGUtc2l6ZS1zcGVjO1xyXG59XHJcbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBsaW5lYXIvcmFkaWFsLWdyYWRpZW50LXBhcnNlcnMuXHJcbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcclxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG5AZnVuY3Rpb24gX3N0ci10by1udW0oJHN0cmluZykge1xyXG4gIC8vIE1hdHJpY2VzXHJcbiAgJHN0cmluZ3M6IFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiO1xyXG4gICRudW1iZXJzOiAgMCAgIDEgICAyICAgMyAgIDQgICA1ICAgNiAgIDcgICA4ICAgOTtcclxuXHJcbiAgLy8gUmVzdWx0XHJcbiAgJHJlc3VsdDogMDtcclxuICAkZGl2aWRlcjogMDtcclxuICAkbWludXM6IGZhbHNlO1xyXG5cclxuICAvLyBMb29waW5nIHRocm91Z2ggYWxsIGNoYXJhY3RlcnNcclxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHN0cmluZykge1xyXG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCRzdHJpbmcsICRpLCAkaSk7XHJcbiAgICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkY2hhcmFjdGVyKTtcclxuXHJcbiAgICBAaWYgJGNoYXJhY3RlciA9PSBcIi1cIiB7XHJcbiAgICAgICRtaW51czogdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBAZWxzZSBpZiAkY2hhcmFjdGVyID09IFwiLlwiIHtcclxuICAgICAgJGRpdmlkZXI6IDE7XHJcbiAgICB9XHJcblxyXG4gICAgQGVsc2Uge1xyXG4gICAgICBAaWYgbm90ICRpbmRleCB7XHJcbiAgICAgICAgJHJlc3VsdDogaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xyXG4gICAgICAgIEByZXR1cm4gX2NvbnZlcnQtdW5pdHMoJHJlc3VsdCwgc3RyLXNsaWNlKCRzdHJpbmcsICRpKSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICRudW1iZXI6IG50aCgkbnVtYmVycywgJGluZGV4KTtcclxuXHJcbiAgICAgIEBpZiAkZGl2aWRlciA9PSAwIHtcclxuICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIHtcclxuICAgICAgICAvLyBNb3ZlIHRoZSBkZWNpbWFsIGRvdCB0byB0aGUgbGVmdFxyXG4gICAgICAgICRkaXZpZGVyOiAkZGl2aWRlciAqIDEwO1xyXG4gICAgICAgICRudW1iZXI6ICRudW1iZXIgLyAkZGl2aWRlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgJHJlc3VsdDogJHJlc3VsdCArICRudW1iZXI7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEByZXR1cm4gaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xyXG59XHJcbiIsIi8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtYW5pbWF0aW9ucy8jdGhlLWFuaW1hdGlvbi1uYW1lLXByb3BlcnR5LVxyXG4vLyBFYWNoIG9mIHRoZXNlIG1peGlucyBzdXBwb3J0IGNvbW1hIHNlcGFyYXRlZCBsaXN0cyBvZiB2YWx1ZXMsIHdoaWNoIGFsbG93cyBkaWZmZXJlbnQgdHJhbnNpdGlvbnMgZm9yIGluZGl2aWR1YWwgcHJvcGVydGllcyB0byBiZSBkZXNjcmliZWQgaW4gYSBzaW5nbGUgc3R5bGUgcnVsZS4gRWFjaCB2YWx1ZSBpbiB0aGUgbGlzdCBjb3JyZXNwb25kcyB0byB0aGUgdmFsdWUgYXQgdGhhdCBzYW1lIHBvc2l0aW9uIGluIHRoZSBvdGhlciBwcm9wZXJ0aWVzLlxyXG5cclxuQG1peGluIGFuaW1hdGlvbigkYW5pbWF0aW9ucy4uLikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbiwgJGFuaW1hdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tbmFtZSgkbmFtZXMuLi4pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tbmFtZSwgJG5hbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xyXG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCgkdmFsdWVzLi4uKSB7XHJcbiAgLy8gaW5maW5pdGUgfCA8bnVtYmVyPlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsICR2YWx1ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tZGlyZWN0aW9uKCRkaXJlY3Rpb25zLi4uKSB7XHJcbiAgLy8gbm9ybWFsIHwgYWx0ZXJuYXRlXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRpcmVjdGlvbiwgJGRpcmVjdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBhbmltYXRpb24tcGxheS1zdGF0ZSgkc3RhdGVzLi4uKSB7XHJcbiAgLy8gcnVubmluZyB8IHBhdXNlZFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1wbGF5LXN0YXRlLCAkc3RhdGVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gYW5pbWF0aW9uLWZpbGwtbW9kZSgkbW9kZXMuLi4pIHtcclxuICAvLyBub25lIHwgZm9yd2FyZHMgfCBiYWNrd2FyZHMgfCBib3RoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWZpbGwtbW9kZSwgJG1vZGVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcbiIsIkBtaXhpbiBhcHBlYXJhbmNlKCR2YWx1ZSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFwcGVhcmFuY2UsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xyXG59XHJcbiIsIkBtaXhpbiBiYWNrZmFjZS12aXNpYmlsaXR5KCR2aXNpYmlsaXR5KSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYmFja2ZhY2UtdmlzaWJpbGl0eSwgJHZpc2liaWxpdHksIHdlYmtpdCBzcGVjKTtcclxufVxyXG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbi8vIEJhY2tncm91bmQgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kcyB1c2luZyBzaG9ydGhhbmRcclxuLy8gbm90YXRpb24uXHJcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuXHJcbkBtaXhpbiBiYWNrZ3JvdW5kKCRiYWNrZ3JvdW5kcy4uLikge1xyXG4gICR3ZWJraXQtYmFja2dyb3VuZHM6ICgpO1xyXG4gICRzcGVjLWJhY2tncm91bmRzOiAoKTtcclxuXHJcbiAgQGVhY2ggJGJhY2tncm91bmQgaW4gJGJhY2tncm91bmRzIHtcclxuICAgICR3ZWJraXQtYmFja2dyb3VuZDogKCk7XHJcbiAgICAkc3BlYy1iYWNrZ3JvdW5kOiAoKTtcclxuICAgICRiYWNrZ3JvdW5kLXR5cGU6IHR5cGUtb2YoJGJhY2tncm91bmQpO1xyXG5cclxuICAgIEBpZiAkYmFja2dyb3VuZC10eXBlID09IHN0cmluZyBvciAkYmFja2dyb3VuZC10eXBlID09IGxpc3Qge1xyXG4gICAgICAkYmFja2dyb3VuZC1zdHI6IGlmKCRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCwgbnRoKCRiYWNrZ3JvdW5kLCAxKSwgJGJhY2tncm91bmQpO1xyXG5cclxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDEsIDMpO1xyXG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgNik7XHJcblxyXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XHJcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcclxuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcclxuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xyXG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xyXG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XHJcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcclxuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcclxuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIHtcclxuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xyXG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAZWxzZSB7XHJcbiAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XHJcbiAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XHJcbiAgICB9XHJcblxyXG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kczogYXBwZW5kKCR3ZWJraXQtYmFja2dyb3VuZHMsICR3ZWJraXQtYmFja2dyb3VuZCwgY29tbWEpO1xyXG4gICAgJHNwZWMtYmFja2dyb3VuZHM6ICAgYXBwZW5kKCRzcGVjLWJhY2tncm91bmRzLCAgICRzcGVjLWJhY2tncm91bmQsICAgY29tbWEpO1xyXG4gIH1cclxuXHJcbiAgYmFja2dyb3VuZDogJHdlYmtpdC1iYWNrZ3JvdW5kcztcclxuICBiYWNrZ3JvdW5kOiAkc3BlYy1iYWNrZ3JvdW5kcztcclxufVxyXG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcbi8vIEJhY2tncm91bmQtaW1hZ2UgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kIGltYWdlcyB3aXRoXHJcbi8vIGdyYWRpZW50cywgb3IgZm9yIHN0cmluZ2luZyBtdWx0aXBsZSBncmFkaWVudHMgdG9nZXRoZXIuXHJcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuXHJcbkBtaXhpbiBiYWNrZ3JvdW5kLWltYWdlKCRpbWFnZXMuLi4pIHtcclxuICAkd2Via2l0LWltYWdlczogKCk7XHJcbiAgJHNwZWMtaW1hZ2VzOiAoKTtcclxuXHJcbiAgQGVhY2ggJGltYWdlIGluICRpbWFnZXMge1xyXG4gICAgJHdlYmtpdC1pbWFnZTogKCk7XHJcbiAgICAkc3BlYy1pbWFnZTogKCk7XHJcblxyXG4gICAgQGlmICh0eXBlLW9mKCRpbWFnZSkgPT0gc3RyaW5nKSB7XHJcbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGltYWdlLCAxLCAzKTtcclxuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkaW1hZ2UsIDEsIDYpO1xyXG5cclxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xyXG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICRpbWFnZTtcclxuICAgICAgICAkc3BlYy1pbWFnZTogICAkaW1hZ2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xyXG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XHJcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogIG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcclxuICAgICAgICAkc3BlYy1pbWFnZTogICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XHJcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcclxuICAgICAgICAkd2Via2l0LWltYWdlOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XHJcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgICR3ZWJraXQtaW1hZ2VzOiBhcHBlbmQoJHdlYmtpdC1pbWFnZXMsICR3ZWJraXQtaW1hZ2UsIGNvbW1hKTtcclxuICAgICRzcGVjLWltYWdlczogICBhcHBlbmQoJHNwZWMtaW1hZ2VzLCAgICRzcGVjLWltYWdlLCAgIGNvbW1hKTtcclxuICB9XHJcblxyXG4gIGJhY2tncm91bmQtaW1hZ2U6ICR3ZWJraXQtaW1hZ2VzO1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6ICRzcGVjLWltYWdlcztcclxufVxyXG4iLCJAbWl4aW4gYm9yZGVyLWltYWdlKCRib3JkZXJzLi4uKSB7XHJcbiAgJHdlYmtpdC1ib3JkZXJzOiAoKTtcclxuICAkc3BlYy1ib3JkZXJzOiAoKTtcclxuXHJcbiAgQGVhY2ggJGJvcmRlciBpbiAkYm9yZGVycyB7XHJcbiAgICAkd2Via2l0LWJvcmRlcjogKCk7XHJcbiAgICAkc3BlYy1ib3JkZXI6ICgpO1xyXG4gICAgJGJvcmRlci10eXBlOiB0eXBlLW9mKCRib3JkZXIpO1xyXG5cclxuICAgIEBpZiAkYm9yZGVyLXR5cGUgPT0gc3RyaW5nIG9yIGxpc3Qge1xyXG4gICAgICAkYm9yZGVyLXN0cjogaWYoJGJvcmRlci10eXBlID09IGxpc3QsIG50aCgkYm9yZGVyLCAxKSwgJGJvcmRlcik7XHJcblxyXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCAzKTtcclxuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMSwgNik7XHJcblxyXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XHJcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XHJcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xyXG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcclxuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xyXG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcclxuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XHJcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcclxuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgQGVsc2Uge1xyXG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xyXG4gICAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGVsc2Uge1xyXG4gICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcclxuICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XHJcbiAgICB9XHJcblxyXG4gICAgJHdlYmtpdC1ib3JkZXJzOiBhcHBlbmQoJHdlYmtpdC1ib3JkZXJzLCAkd2Via2l0LWJvcmRlciwgY29tbWEpO1xyXG4gICAgJHNwZWMtYm9yZGVyczogICBhcHBlbmQoJHNwZWMtYm9yZGVycywgICAkc3BlYy1ib3JkZXIsICAgY29tbWEpO1xyXG4gIH1cclxuXHJcbiAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6ICR3ZWJraXQtYm9yZGVycztcclxuICAgICAgICAgIGJvcmRlci1pbWFnZTogJHNwZWMtYm9yZGVycztcclxuICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbn1cclxuXHJcbi8vRXhhbXBsZXM6XHJcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikpO1xyXG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpIDIwIHN0cmV0Y2gpO1xyXG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykpO1xyXG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgc3RyZXRjaCk7XHJcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSAyMCAzMCA0MCA1MCBzdHJldGNoIHJvdW5kKTtcclxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHJhZGlhbC1ncmFkaWVudCh0b3AsIGNvdmVyLCBvcmFuZ2UsIHllbGxvdywgb3JhbmdlKSk7XHJcbiIsIkBtaXhpbiBjYWxjKCRwcm9wZXJ0eSwgJHZhbHVlKSB7XHJcbiAgI3skcHJvcGVydHl9OiAtd2Via2l0LWNhbGMoI3skdmFsdWV9KTtcclxuICAjeyRwcm9wZXJ0eX06IGNhbGMoI3skdmFsdWV9KTtcclxufVxyXG4iLCJAbWl4aW4gY29sdW1ucygkYXJnOiBhdXRvKSB7XHJcbiAgLy8gPGNvbHVtbi1jb3VudD4gfHwgPGNvbHVtbi13aWR0aD5cclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW5zLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLWNvdW50KCRpbnQ6IGF1dG8pIHtcclxuICAvLyBhdXRvIHx8IGludGVnZXJcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tY291bnQsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tZ2FwKCRsZW5ndGg6IG5vcm1hbCkge1xyXG4gIC8vIG5vcm1hbCB8fCBsZW5ndGhcclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZ2FwLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLWZpbGwoJGFyZzogYXV0bykge1xyXG4gIC8vIGF1dG8gfHwgbGVuZ3RoXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWZpbGwsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tcnVsZSgkYXJnKSB7XHJcbiAgLy8gPGJvcmRlci13aWR0aD4gfHwgPGJvcmRlci1zdHlsZT4gfHwgPGNvbG9yPlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLXJ1bGUtY29sb3IoJGNvbG9yKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtY29sb3IsICRjb2xvciwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1ydWxlLXN0eWxlKCRzdHlsZTogbm9uZSkge1xyXG4gIC8vIG5vbmUgfCBoaWRkZW4gfCBkYXNoZWQgfCBkb3R0ZWQgfCBkb3VibGUgfCBncm9vdmUgfCBpbnNldCB8IGluc2V0IHwgb3V0c2V0IHwgcmlkZ2UgfCBzb2xpZFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBjb2x1bW4tcnVsZS13aWR0aCAoJHdpZHRoOiBub25lKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtd2lkdGgsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGNvbHVtbi1zcGFuKCRhcmc6IG5vbmUpIHtcclxuICAvLyBub25lIHx8IGFsbFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1zcGFuLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gY29sdW1uLXdpZHRoKCRsZW5ndGg6IGF1dG8pIHtcclxuICAvLyBhdXRvIHx8IGxlbmd0aFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi13aWR0aCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG4iLCJAbWl4aW4gZmlsdGVyKCRmdW5jdGlvbjogbm9uZSkge1xyXG4gIC8vIDxmaWx0ZXItZnVuY3Rpb24+IFs8ZmlsdGVyLWZ1bmN0aW9uXSogfCBub25lXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmlsdGVyLCAkZnVuY3Rpb24sIHdlYmtpdCBzcGVjKTtcclxufVxyXG4iLCIvLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcclxuXHJcbi8vIEN1c3RvbSBzaG9ydGhhbmQgbm90YXRpb24gZm9yIGZsZXhib3hcclxuQG1peGluIGJveCgkb3JpZW50OiBpbmxpbmUtYXhpcywgJHBhY2s6IHN0YXJ0LCAkYWxpZ246IHN0cmV0Y2gpIHtcclxuICBAaW5jbHVkZSBkaXNwbGF5LWJveDtcclxuICBAaW5jbHVkZSBib3gtb3JpZW50KCRvcmllbnQpO1xyXG4gIEBpbmNsdWRlIGJveC1wYWNrKCRwYWNrKTtcclxuICBAaW5jbHVkZSBib3gtYWxpZ24oJGFsaWduKTtcclxufVxyXG5cclxuQG1peGluIGRpc3BsYXktYm94IHtcclxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcclxuICBkaXNwbGF5OiAtbW96LWJveDtcclxuICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gSUUgMTBcclxuICBkaXNwbGF5OiBib3g7XHJcbn1cclxuXHJcbkBtaXhpbiBib3gtb3JpZW50KCRvcmllbnQ6IGlubGluZS1heGlzKSB7XHJcbi8vIGhvcml6b250YWx8dmVydGljYWx8aW5saW5lLWF4aXN8YmxvY2stYXhpc3xpbmhlcml0XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJG9yaWVudCwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIGJveC1wYWNrKCRwYWNrOiBzdGFydCkge1xyXG4vLyBzdGFydHxlbmR8Y2VudGVyfGp1c3RpZnlcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJHBhY2ssIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXgtcGFjazogJHBhY2s7IC8vIElFIDEwXHJcbn1cclxuXHJcbkBtaXhpbiBib3gtYWxpZ24oJGFsaWduOiBzdHJldGNoKSB7XHJcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8YmFzZWxpbmV8c3RyZXRjaFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsaWduLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LWFsaWduOiAkYWxpZ247IC8vIElFIDEwXHJcbn1cclxuXHJcbkBtaXhpbiBib3gtZGlyZWN0aW9uKCRkaXJlY3Rpb246IG5vcm1hbCkge1xyXG4vLyBub3JtYWx8cmV2ZXJzZXxpbmhlcml0XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcclxuICAtbXMtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247IC8vIElFIDEwXHJcbn1cclxuXHJcbkBtaXhpbiBib3gtbGluZXMoJGxpbmVzOiBzaW5nbGUpIHtcclxuLy8gc2luZ2xlfG11bHRpcGxlXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkbGluZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBib3gtb3JkaW5hbC1ncm91cCgkaW50OiAxKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7IC8vIElFIDEwXHJcbn1cclxuXHJcbkBtaXhpbiBib3gtZmxleCgkdmFsdWU6IDApIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4OiAkdmFsdWU7IC8vIElFIDEwXHJcbn1cclxuXHJcbkBtaXhpbiBib3gtZmxleC1ncm91cCgkaW50OiAxKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xyXG4vLyBVbmlmaWVkIGF0dHJpYnV0ZXMgZm9yIDIwMDksIDIwMTEsIGFuZCAyMDEyIGZsYXZvdXJzLlxyXG5cclxuLy8gMjAwOSAtIGRpc3BsYXkgKGJveCB8IGlubGluZS1ib3gpXHJcbi8vIDIwMTEgLSBkaXNwbGF5IChmbGV4Ym94IHwgaW5saW5lLWZsZXhib3gpXHJcbi8vIDIwMTIgLSBkaXNwbGF5IChmbGV4IHwgaW5saW5lLWZsZXgpXHJcbkBtaXhpbiBkaXNwbGF5KCR2YWx1ZSkge1xyXG4vLyBmbGV4IHwgaW5saW5lLWZsZXhcclxuICBAaWYgJHZhbHVlID09IFwiZmxleFwiIHtcclxuICAgIC8vIDIwMDlcclxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xyXG4gICAgZGlzcGxheTogLW1vei1ib3g7XHJcbiAgICBkaXNwbGF5OiBib3g7XHJcblxyXG4gICAgLy8gMjAxMlxyXG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xyXG4gICAgZGlzcGxheTogLW1vei1mbGV4O1xyXG4gICAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIDIwMTEgKElFIDEwKVxyXG4gICAgZGlzcGxheTogZmxleDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImlubGluZS1mbGV4XCIge1xyXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xyXG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtYm94O1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJveDtcclxuXHJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xyXG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtZmxleDtcclxuICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgZGlzcGxheTogJHZhbHVlO1xyXG4gIH1cclxufVxyXG5cclxuLy8gMjAwOSAtIGJveC1mbGV4IChpbnRlZ2VyKVxyXG4vLyAyMDExIC0gZmxleCAoZGVjaW1hbCB8IHdpZHRoIGRlY2ltYWwpXHJcbi8vIDIwMTIgLSBmbGV4IChpbnRlZ2VyIGludGVnZXIgd2lkdGgpXHJcbkBtaXhpbiBmbGV4KCR2YWx1ZSkge1xyXG5cclxuICAvLyBHcmFiIGZsZXgtZ3JvdyBmb3Igb2xkZXIgYnJvd3NlcnMuXHJcbiAgJGZsZXgtZ3JvdzogbnRoKCR2YWx1ZSwgMSk7XHJcblxyXG4gIC8vIDIwMDlcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJGZsZXgtZ3Jvdywgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApLCAyMDEyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xyXG59XHJcblxyXG4vLyAyMDA5IC0gYm94LW9yaWVudCAoIGhvcml6b250YWwgfCB2ZXJ0aWNhbCB8IGlubGluZS1heGlzIHwgYmxvY2stYXhpcylcclxuLy8gICAgICAtIGJveC1kaXJlY3Rpb24gKG5vcm1hbCB8IHJldmVyc2UpXHJcbi8vIDIwMTEgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcclxuLy8gMjAxMiAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxyXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlOiByb3cpIHtcclxuXHJcbiAgLy8gQWx0IHZhbHVlcy5cclxuICAkdmFsdWUtMjAwOTogJHZhbHVlO1xyXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XHJcbiAgJGRpcmVjdGlvbjogbm9ybWFsO1xyXG5cclxuICBAaWYgJHZhbHVlID09IHJvdyB7XHJcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInJvdy1yZXZlcnNlXCIge1xyXG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XHJcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IGNvbHVtbiB7XHJcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJjb2x1bW4tcmV2ZXJzZVwiIHtcclxuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcclxuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XHJcbiAgfVxyXG5cclxuICAvLyAyMDA5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJHZhbHVlLTIwMDksIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZGlyZWN0aW9uLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcblxyXG4gIC8vIDIwMTEgKElFIDEwKVxyXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xyXG59XHJcblxyXG4vLyAyMDA5IC0gYm94LWxpbmVzIChzaW5nbGUgfCBtdWx0aXBsZSlcclxuLy8gMjAxMSAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcclxuLy8gMjAxMiAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcclxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWU6IG5vd3JhcCkge1xyXG4gIC8vIEFsdCB2YWx1ZXNcclxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XHJcbiAgQGlmICR2YWx1ZSA9PSBub3dyYXAge1xyXG4gICAgJGFsdC12YWx1ZTogc2luZ2xlO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IHdyYXAge1xyXG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJ3cmFwLXJldmVyc2VcIiB7XHJcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXdyYXAsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcclxufVxyXG5cclxuLy8gMjAwOSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxyXG4vLyAyMDExIC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXHJcbi8vIDIwMTIgLSBmbGV4LWZsb3cgKGZsZXgtZGlyZWN0aW9uIHx8IGZsZXgtd3JhcClcclxuQG1peGluIGZsZXgtZmxvdygkdmFsdWUpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWZsb3csICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuLy8gMjAwOSAtIGJveC1vcmRpbmFsLWdyb3VwIChpbnRlZ2VyKVxyXG4vLyAyMDExIC0gZmxleC1vcmRlciAoaW50ZWdlcilcclxuLy8gMjAxMiAtIG9yZGVyIChpbnRlZ2VyKVxyXG5AbWl4aW4gb3JkZXIoJGludDogMCkge1xyXG4gIC8vIDIwMDlcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKG9yZGVyLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMClcclxuICAtbXMtZmxleC1vcmRlcjogJGludDtcclxufVxyXG5cclxuLy8gMjAxMiAtIGZsZXgtZ3JvdyAobnVtYmVyKVxyXG5AbWl4aW4gZmxleC1ncm93KCRudW1iZXI6IDApIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWdyb3csICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXgtcG9zaXRpdmU6ICRudW1iZXI7XHJcbn1cclxuXHJcbi8vIDIwMTIgLSBmbGV4LXNocmluayAobnVtYmVyKVxyXG5AbWl4aW4gZmxleC1zaHJpbmsoJG51bWJlcjogMSkge1xyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtc2hyaW5rLCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xyXG4gIC1tcy1mbGV4LW5lZ2F0aXZlOiAkbnVtYmVyO1xyXG59XHJcblxyXG4vLyAyMDEyIC0gZmxleC1iYXNpcyAobnVtYmVyKVxyXG5AbWl4aW4gZmxleC1iYXNpcygkd2lkdGg6IGF1dG8pIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWJhc2lzLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ICR3aWR0aDtcclxufVxyXG5cclxuLy8gMjAwOSAtIGJveC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXHJcbi8vIDIwMTEgLSBmbGV4LXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSlcclxuLy8gMjAxMiAtIGp1c3RpZnktY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZClcclxuQG1peGluIGp1c3RpZnktY29udGVudCgkdmFsdWU6IGZsZXgtc3RhcnQpIHtcclxuXHJcbiAgLy8gQWx0IHZhbHVlcy5cclxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XHJcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XHJcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xyXG4gICAgJGFsdC12YWx1ZTogZW5kO1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcclxuICAgICRhbHQtdmFsdWU6IGp1c3RpZnk7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XHJcbiAgICAkYWx0LXZhbHVlOiBkaXN0cmlidXRlO1xyXG4gIH1cclxuXHJcbiAgLy8gMjAwOVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDEyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoanVzdGlmeS1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApXHJcbiAgLW1zLWZsZXgtcGFjazogJGFsdC12YWx1ZTtcclxufVxyXG5cclxuLy8gMjAwOSAtIGJveC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXHJcbi8vIDIwMTEgLSBmbGV4LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcclxuLy8gMjAxMiAtIGFsaWduLWl0ZW1zIChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXHJcbkBtaXhpbiBhbGlnbi1pdGVtcygkdmFsdWU6IHN0cmV0Y2gpIHtcclxuXHJcbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xyXG5cclxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcclxuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xyXG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XHJcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XHJcbiAgfVxyXG5cclxuICAvLyAyMDA5XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDEyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24taXRlbXMsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMClcclxuICAtbXMtZmxleC1hbGlnbjogJGFsdC12YWx1ZTtcclxufVxyXG5cclxuLy8gMjAxMSAtIGZsZXgtaXRlbS1hbGlnbiAoYXV0byB8IHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxyXG4vLyAyMDEyIC0gYWxpZ24tc2VsZiAoYXV0byB8IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcclxuQG1peGluIGFsaWduLXNlbGYoJHZhbHVlOiBhdXRvKSB7XHJcblxyXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XHJcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XHJcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XHJcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcclxuICAgICR2YWx1ZS0yMDExOiBlbmQ7XHJcbiAgfVxyXG5cclxuICAvLyAyMDEyXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tc2VsZiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICAvLyAyMDExIChJRSAxMClcclxuICAtbXMtZmxleC1pdGVtLWFsaWduOiAkdmFsdWUtMjAxMTtcclxufVxyXG5cclxuLy8gMjAxMSAtIGZsZXgtbGluZS1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkgfCBkaXN0cmlidXRlIHwgc3RyZXRjaClcclxuLy8gMjAxMiAtIGFsaWduLWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQgfCBzdHJldGNoKVxyXG5AbWl4aW4gYWxpZ24tY29udGVudCgkdmFsdWU6IHN0cmV0Y2gpIHtcclxuXHJcbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcclxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcclxuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xyXG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XHJcbiAgICAkdmFsdWUtMjAxMToganVzdGlmeTtcclxuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcclxuICAgICR2YWx1ZS0yMDExOiBkaXN0cmlidXRlO1xyXG4gIH1cclxuXHJcbiAgLy8gMjAxMlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcclxuXHJcbiAgLy8gMjAxMSAoSUUgMTApXHJcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWUtMjAxMTtcclxufVxyXG4iLCJAbWl4aW4gZm9udC1mYWNlKFxyXG4gICRmb250LWZhbWlseSxcclxuICAkZmlsZS1wYXRoLFxyXG4gICR3ZWlnaHQ6IG5vcm1hbCxcclxuICAkc3R5bGU6IG5vcm1hbCxcclxuICAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSxcclxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGYgc3ZnKSB7XHJcblxyXG4gICRmb250LXVybC1wcmVmaXg6IGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSk7XHJcblxyXG4gIEBmb250LWZhY2Uge1xyXG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcclxuICAgIGZvbnQtc3R5bGU6ICRzdHlsZTtcclxuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xyXG5cclxuICAgIHNyYzogZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXHJcbiAgICAgICRmb250LWZhbWlseSxcclxuICAgICAgJGZpbGUtcGF0aCxcclxuICAgICAgJGFzc2V0LXBpcGVsaW5lLFxyXG4gICAgICAkZmlsZS1mb3JtYXRzLFxyXG4gICAgICAkZm9udC11cmwtcHJlZml4XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iLCJAbWl4aW4gZm9udC1mZWF0dXJlLXNldHRpbmdzKCRzZXR0aW5ncy4uLikge1xyXG4gIEBpZiBsZW5ndGgoJHNldHRpbmdzKSA9PSAwIHsgJHNldHRpbmdzOiBub25lOyB9XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZm9udC1mZWF0dXJlLXNldHRpbmdzLCAkc2V0dGluZ3MsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XHJcbn1cclxuIiwiLy8gSGlEUEkgbWl4aW4uIERlZmF1bHQgdmFsdWUgc2V0IHRvIDEuMyB0byB0YXJnZXQgR29vZ2xlIE5leHVzIDcgKGh0dHA6Ly9iamFuZ28uY29tL2FydGljbGVzL21pbi1kZXZpY2UtcGl4ZWwtcmF0aW8vKVxyXG5AbWl4aW4gaGlkcGkoJHJhdGlvOiAxLjMpIHtcclxuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXHJcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXHJcbiAgb25seSBzY3JlZW4gYW5kICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyRyYXRpb30vMSksXHJcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogcm91bmQoJHJhdGlvICogOTZkcGkpKSxcclxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAkcmF0aW8gKiAxZHBweCkge1xyXG4gICAgQGNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcbiIsIkBtaXhpbiBoeXBoZW5zKCRoeXBoZW5hdGlvbjogbm9uZSkge1xyXG4gIC8vIG5vbmUgfCBtYW51YWwgfCBhdXRvXHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoaHlwaGVucywgJGh5cGhlbmF0aW9uLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xyXG59XHJcbiIsIkBtaXhpbiBpbWFnZS1yZW5kZXJpbmcgKCRtb2RlOmF1dG8pIHtcclxuXHJcbiAgQGlmICgkbW9kZSA9PSBjcmlzcC1lZGdlcykge1xyXG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogbmVhcmVzdC1uZWlnaGJvcjsgLy8gSUU4K1xyXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtbW96LWNyaXNwLWVkZ2VzO1xyXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtby1jcmlzcC1lZGdlcztcclxuICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDtcclxuICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7XHJcbiAgfVxyXG5cclxuICBAZWxzZSB7XHJcbiAgICBpbWFnZS1yZW5kZXJpbmc6ICRtb2RlO1xyXG4gIH1cclxufVxyXG4iLCIvLyBBZGRzIGtleWZyYW1lcyBibG9ja3MgZm9yIHN1cHBvcnRlZCBwcmVmaXhlcywgcmVtb3ZpbmcgcmVkdW5kYW50IHByZWZpeGVzIGluIHRoZSBibG9jaydzIGNvbnRlbnRcclxuQG1peGluIGtleWZyYW1lcygkbmFtZSkge1xyXG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdDogICAgJHByZWZpeC1mb3Itd2Via2l0O1xyXG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGE6ICAgJHByZWZpeC1mb3ItbW96aWxsYTtcclxuICAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQ6ICRwcmVmaXgtZm9yLW1pY3Jvc29mdDtcclxuICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYTogICAgICRwcmVmaXgtZm9yLW9wZXJhO1xyXG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWM6ICAgICAgJHByZWZpeC1mb3Itc3BlYztcclxuXHJcbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCB7XHJcbiAgICBAaW5jbHVkZSBkaXNhYmxlLXByZWZpeC1mb3ItYWxsKCk7XHJcbiAgICAkcHJlZml4LWZvci13ZWJraXQ6IHRydWUgIWdsb2JhbDtcclxuICAgIEAtd2Via2l0LWtleWZyYW1lcyAjeyRuYW1lfSB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEge1xyXG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xyXG4gICAgJHByZWZpeC1mb3ItbW96aWxsYTogdHJ1ZSAhZ2xvYmFsO1xyXG4gICAgQC1tb3ota2V5ZnJhbWVzICN7JG5hbWV9IHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCAgICAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSAgICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1vcGVyYTogICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLW9wZXJhICAgICAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyAgICAgICFnbG9iYWw7XHJcblxyXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjIHtcclxuICAgIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQG1peGluIGxpbmVhci1ncmFkaWVudCgkcG9zLCAkZzEsICRnMjogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzc6IG51bGwsICRnODogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XHJcbiAgLy8gRGV0ZWN0IHdoYXQgdHlwZSBvZiB2YWx1ZSBleGlzdHMgaW4gJHBvc1xyXG4gICRwb3MtdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xyXG4gICRwb3Mtc3BlYzogbnVsbDtcclxuICAkcG9zLWRlZ3JlZTogbnVsbDtcclxuXHJcbiAgLy8gSWYgJHBvcyBpcyBtaXNzaW5nIGZyb20gbWl4aW4sIHJlYXNzaWduIHZhcnMgYW5kIGFkZCBkZWZhdWx0IHBvc2l0aW9uXHJcbiAgQGlmICgkcG9zLXR5cGUgPT0gY29sb3IpIG9yIChudGgoJHBvcywgMSkgPT0gXCJ0cmFuc3BhcmVudFwiKSAge1xyXG4gICAgJGcxMDogJGc5OyAkZzk6ICRnODsgJGc4OiAkZzc7ICRnNzogJGc2OyAkZzY6ICRnNTtcclxuICAgICRnNTogJGc0OyAkZzQ6ICRnMzsgJGczOiAkZzI7ICRnMjogJGcxOyAkZzE6ICRwb3M7XHJcbiAgICAkcG9zOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgQGlmICRwb3Mge1xyXG4gICAgJHBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpO1xyXG4gICAgJHBvcy1kZWdyZWU6IG50aCgkcG9zaXRpb25zLCAxKTtcclxuICAgICRwb3Mtc3BlYzogICBudGgoJHBvc2l0aW9ucywgMik7XHJcbiAgfVxyXG5cclxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcclxuXHJcbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxyXG4gICRmYWxsYmFjay1jb2xvcjogbnRoKCRnMSwgMSk7XHJcblxyXG4gIC8vIElmICRmYWxsYmFjayBpcyBhIGNvbG9yIHVzZSB0aGF0IGNvbG9yIGFzIHRoZSBmYWxsYmFjayBjb2xvclxyXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xyXG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XHJcbiAgfVxyXG5cclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmFsbGJhY2stY29sb3I7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJHBvcy1kZWdyZWUgJGZ1bGwpOyAvLyBTYWZhcmkgNS4xKywgQ2hyb21lXHJcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcImxpbmVhci1ncmFkaWVudCgjeyRwb3Mtc3BlY30jeyRmdWxsfSlcIik7XHJcbn1cclxuIiwiQG1peGluIHBlcnNwZWN0aXZlKCRkZXB0aDogbm9uZSkge1xyXG4gIC8vIG5vbmUgfCA8bGVuZ3RoPlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLCAkZGVwdGgsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiBwZXJzcGVjdGl2ZS1vcmlnaW4oJHZhbHVlOiA1MCUgNTAlKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUtb3JpZ2luLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbn1cclxuIiwiQG1peGluIHBsYWNlaG9sZGVyIHtcclxuICAkcGxhY2Vob2xkZXJzOiBcIjotd2Via2l0LWlucHV0XCIgXCI6LW1velwiIFwiLW1velwiIFwiLW1zLWlucHV0XCI7XHJcbiAgQGVhY2ggJHBsYWNlaG9sZGVyIGluICRwbGFjZWhvbGRlcnMge1xyXG4gICAgJjojeyRwbGFjZWhvbGRlcn0tcGxhY2Vob2xkZXIge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLy8gUmVxdWlyZXMgU2FzcyAzLjErXHJcbkBtaXhpbiByYWRpYWwtZ3JhZGllbnQoJGcxLCAkZzIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGczOiBudWxsLCAkZzQ6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGc5OiBudWxsLCAkZzEwOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICRwb3M6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJHNoYXBlLXNpemU6IG51bGwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XHJcblxyXG4gICRkYXRhOiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKTtcclxuICAkZzE6ICBudGgoJGRhdGEsIDEpO1xyXG4gICRnMjogIG50aCgkZGF0YSwgMik7XHJcbiAgJHBvczogbnRoKCRkYXRhLCAzKTtcclxuICAkc2hhcGUtc2l6ZTogbnRoKCRkYXRhLCA0KTtcclxuXHJcbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XHJcblxyXG4gIC8vIFN0cmlwIGRlcHJlY2F0ZWQgY292ZXIvY29udGFpbiBmb3Igc3BlY1xyXG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcclxuXHJcbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxyXG4gICRmaXJzdC1jb2xvcjogbnRoKCRmdWxsLCAxKTtcclxuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZmlyc3QtY29sb3IsIDEpO1xyXG5cclxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcclxuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xyXG4gIH1cclxuXHJcbiAgLy8gQWRkIENvbW1hcyBhbmQgc3BhY2VzXHJcbiAgJHNoYXBlLXNpemU6IGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LCBcIiwgbnVsbCk7XHJcbiAgJHBvczogICAgICAgIGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpO1xyXG4gICRwb3Mtc3BlYzogICBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XHJcbiAgJHNoYXBlLXNpemUtc3BlYzogaWYoKCRzaGFwZS1zaXplLXNwZWMgIT0gXCIgXCIpIGFuZCAoJHBvcyA9PSBudWxsKSwgXCIjeyRzaGFwZS1zaXplLXNwZWN9LCBcIiwgXCIjeyRzaGFwZS1zaXplLXNwZWN9IFwiKTtcclxuXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogICRmYWxsYmFjay1jb2xvcjtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudCgjeyRwb3N9I3skc2hhcGUtc2l6ZX0jeyRmdWxsfSk7XHJcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KCN7JHNoYXBlLXNpemUtc3BlY30jeyRwb3Mtc3BlY30jeyRmdWxsfSk7XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIE91dHB1dHMgdGhlIHNwZWMgYW5kIHByZWZpeGVkIHZlcnNpb25zIG9mIHRoZSBgOjpzZWxlY3Rpb25gIHBzZXVkby1lbGVtZW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Qm9vbH0gJGN1cnJlbnQtc2VsZWN0b3IgW2ZhbHNlXVxyXG4vLy8gICBJZiBzZXQgdG8gYHRydWVgLCBpdCB0YWtlcyB0aGUgY3VycmVudCBlbGVtZW50IGludG8gY29uc2lkZXJhdGlvbi5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHNlbGVjdGlvbih0cnVlKSB7XHJcbi8vLyAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICAgIH1cclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQ6Oi1tb3otc2VsZWN0aW9uIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAuZWxlbWVudDo6c2VsZWN0aW9uIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICB9XHJcblxyXG5AbWl4aW4gc2VsZWN0aW9uKCRjdXJyZW50LXNlbGVjdG9yOiBmYWxzZSkge1xyXG4gIEBpZiAkY3VycmVudC1zZWxlY3RvciB7XHJcbiAgICAmOjotbW96LXNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgICY6OnNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgOjotbW96LXNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgIDo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIkBtaXhpbiB0ZXh0LWRlY29yYXRpb24oJHZhbHVlKSB7XHJcbi8vIDx0ZXh0LWRlY29yYXRpb24tbGluZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1zdHlsZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1jb2xvcj5cclxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24sICR2YWx1ZSwgbW96KTtcclxufVxyXG5cclxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1saW5lKCRsaW5lOiBub25lKSB7XHJcbi8vIG5vbmUgfHwgdW5kZXJsaW5lIHx8IG92ZXJsaW5lIHx8IGxpbmUtdGhyb3VnaFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1saW5lLCAkbGluZSwgbW96KTtcclxufVxyXG5cclxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1zdHlsZSgkc3R5bGU6IHNvbGlkKSB7XHJcbi8vIHNvbGlkIHx8IGRvdWJsZSB8fCBkb3R0ZWQgfHwgZGFzaGVkIHx8IHdhdnlcclxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tc3R5bGUsICRzdHlsZSwgbW96IHdlYmtpdCk7XHJcbn1cclxuXHJcbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tY29sb3IoJGNvbG9yOiBjdXJyZW50Q29sb3IpIHtcclxuLy8gY3VycmVudENvbG9yIHx8IDxjb2xvcj5cclxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tY29sb3IsICRjb2xvciwgbW96KTtcclxufVxyXG4iLCJAbWl4aW4gdHJhbnNmb3JtKCRwcm9wZXJ0eTogbm9uZSkge1xyXG4gIC8vIG5vbmUgfCA8dHJhbnNmb3JtLWZ1bmN0aW9uPlxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybSwgJHByb3BlcnR5LCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiB0cmFuc2Zvcm0tb3JpZ2luKCRheGVzOiA1MCUpIHtcclxuICAvLyB4LWF4aXMgLSBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgIHwgbGVuZ3RoIHwgJVxyXG4gIC8vIHktYXhpcyAtIHRvcCAgfCBjZW50ZXIgfCBib3R0b20gfCBsZW5ndGggfCAlXHJcbiAgLy8gei1heGlzIC0gICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aFxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1vcmlnaW4sICRheGVzLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XHJcbn1cclxuXHJcbkBtaXhpbiB0cmFuc2Zvcm0tc3R5bGUoJHN0eWxlOiBmbGF0KSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcclxufVxyXG4iLCIvLyBTaG9ydGhhbmQgbWl4aW4uIFN1cHBvcnRzIG11bHRpcGxlIHBhcmVudGhlc2VzLWRlbGltaW5hdGVkIHZhbHVlcyBmb3IgZWFjaCB2YXJpYWJsZS5cclxuLy8gRXhhbXBsZTogQGluY2x1ZGUgdHJhbnNpdGlvbiAoYWxsIDJzIGVhc2UtaW4tb3V0KTtcclxuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbiAob3BhY2l0eSAxcyBlYXNlLWluIDJzLCB3aWR0aCAycyBlYXNlLW91dCk7XHJcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkgKHRyYW5zZm9ybSwgb3BhY2l0eSk7XHJcblxyXG5AbWl4aW4gdHJhbnNpdGlvbigkcHJvcGVydGllcy4uLikge1xyXG4gIC8vIEZpeCBmb3IgdmVuZG9yLXByZWZpeCB0cmFuc2Zvcm0gcHJvcGVydHlcclxuICAkbmVlZHMtcHJlZml4ZXM6IGZhbHNlO1xyXG4gICR3ZWJraXQ6ICgpO1xyXG4gICRtb3o6ICgpO1xyXG4gICRzcGVjOiAoKTtcclxuXHJcbiAgLy8gQ3JlYXRlIGxpc3RzIGZvciB2ZW5kb3ItcHJlZml4ZWQgdHJhbnNmb3JtXHJcbiAgQGVhY2ggJGxpc3QgaW4gJHByb3BlcnRpZXMge1xyXG4gICAgQGlmIG50aCgkbGlzdCwgMSkgPT0gXCJ0cmFuc2Zvcm1cIiB7XHJcbiAgICAgICRuZWVkcy1wcmVmaXhlczogdHJ1ZTtcclxuICAgICAgJGxpc3QxOiAtd2Via2l0LXRyYW5zZm9ybTtcclxuICAgICAgJGxpc3QyOiAtbW96LXRyYW5zZm9ybTtcclxuICAgICAgJGxpc3QzOiAoKTtcclxuXHJcbiAgICAgIEBlYWNoICR2YXIgaW4gJGxpc3Qge1xyXG4gICAgICAgICRsaXN0Mzogam9pbigkbGlzdDMsICR2YXIpO1xyXG5cclxuICAgICAgICBAaWYgJHZhciAhPSBcInRyYW5zZm9ybVwiIHtcclxuICAgICAgICAgICRsaXN0MTogam9pbigkbGlzdDEsICR2YXIpO1xyXG4gICAgICAgICAgJGxpc3QyOiBqb2luKCRsaXN0MiwgJHZhcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QxKTtcclxuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0Mik7XHJcbiAgICAgICRzcGVjOiAgIGFwcGVuZCgkc3BlYywgICAkbGlzdDMpO1xyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdCwgY29tbWEpO1xyXG4gICAgICAkbW96OiAgICBhcHBlbmQoJG1veiwgICAgJGxpc3QsIGNvbW1hKTtcclxuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0LCBjb21tYSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYgJG5lZWRzLXByZWZpeGVzIHtcclxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogJHdlYmtpdDtcclxuICAgICAgIC1tb3otdHJhbnNpdGlvbjogJG1vejtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbjogJHNwZWM7XHJcbiAgfSBAZWxzZSB7XHJcbiAgICBAaWYgbGVuZ3RoKCRwcm9wZXJ0aWVzKSA+PSAxIHtcclxuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgJHByb3BlcnRpZXM6IGFsbCAwLjE1cyBlYXNlLW91dCAwcztcclxuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNpdGlvbi1wcm9wZXJ0eSgkcHJvcGVydGllcy4uLikge1xyXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJ3ZWJraXRcIik7XHJcbiAgICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIm1velwiKTtcclxuICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIGZhbHNlKTtcclxufVxyXG5cclxuQG1peGluIHRyYW5zaXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcblxyXG5AbWl4aW4gdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcclxuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXQgfCBjdWJpYy1iZXppZXIoKVxyXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcclxufVxyXG5cclxuQG1peGluIHRyYW5zaXRpb24tZGVsYXkoJHRpbWVzLi4uKSB7XHJcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xyXG59XHJcbiIsIkBtaXhpbiB1c2VyLXNlbGVjdCgkdmFsdWU6IG5vbmUpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcih1c2VyLXNlbGVjdCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItY29sb3JgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xyXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWNvbG9yKCNhNjBiNTUgIzc2Y2Q5YyBudWxsICNlOGFlMWEpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICNlOGFlMWE7XHJcbi8vLyAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjNzZjZDljO1xyXG4vLy8gICAgIGJvcmRlci10b3AtY29sb3I6ICNhNjBiNTU7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XHJcbi8vL1xyXG4vLy8gQG91dHB1dCBgYm9yZGVyLWNvbG9yYFxyXG5cclxuQG1peGluIGJvcmRlci1jb2xvcigkdmFscy4uLikge1xyXG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgY29sb3IsICR2YWxzLi4uKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXJhZGl1c2Agb24gYm90aCBjb3JuZXJzIG9uIHRoZSBzaWRlIG9mIGEgYm94LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmFkaWlcclxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQtb25lIHtcclxuLy8vICAgICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cyg1cHgpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAuZWxlbWVudC10d28ge1xyXG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygzcHgpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudC1vbmUge1xyXG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDVweDtcclxuLy8vICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAuZWxlbWVudC10d28ge1xyXG4vLy8gICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcclxuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAb3V0cHV0IGBib3JkZXItcmFkaXVzYFxyXG5cclxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpaSkge1xyXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRyYWRpaTtcclxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xyXG59XHJcblxyXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaWkpIHtcclxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xyXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XHJcbn1cclxuXHJcbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaWkpIHtcclxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaWk7XHJcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcclxufVxyXG5cclxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaWkpIHtcclxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaWk7XHJcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItc3R5bGVgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xyXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRhc2hlZCBudWxsIHNvbGlkKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xyXG4vLy8gICAgIGJvcmRlci10b3Atc3R5bGU6IGRhc2hlZDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcclxuLy8vXHJcbi8vLyBAb3V0cHV0IGBib3JkZXItc3R5bGVgXHJcblxyXG5AbWl4aW4gYm9yZGVyLXN0eWxlKCR2YWxzLi4uKSB7XHJcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBzdHlsZSwgJHZhbHMuLi4pO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItd2lkdGhgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xyXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXdpZHRoKDFlbSBudWxsIDIwcHgpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMjBweDtcclxuLy8vICAgICBib3JkZXItdG9wLXdpZHRoOiAxZW07XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XHJcbi8vL1xyXG4vLy8gQG91dHB1dCBgYm9yZGVyLXdpZHRoYFxyXG5cclxuQG1peGluIGJvcmRlci13aWR0aCgkdmFscy4uLikge1xyXG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgd2lkdGgsICR2YWxzLi4uKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIGJ1dHRvbnMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLWJ1dHRvbnN9YC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgI3skYWxsLWJ1dHRvbnN9IHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1mb2N1c30sXHJcbi8vLyAgICN7JGFsbC1idXR0b25zLWhvdmVyfSB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgI3skYWxsLWJ1dHRvbnMtYWN0aXZlfSB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgYnV0dG9uLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIGJ1dHRvbjpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmZvY3VzLFxyXG4vLy8gICBidXR0b246aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpob3ZlciB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgYnV0dG9uOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06YWN0aXZlIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHJlcXVpcmUgYXNzaWduLWlucHV0c1xyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuLy8vXHJcbi8vLyBAdG9kbyBSZW1vdmUgZG91YmxlIGFzc2lnbmVkIHZhcmlhYmxlcyAoTGluZXMgNTnigJM2MikgaW4gdjUuMC4wXHJcblxyXG4kYnV0dG9ucy1saXN0OiAnYnV0dG9uJyxcclxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJidXR0b25cIl0nLFxyXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInJlc2V0XCJdJyxcclxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzdWJtaXRcIl0nO1xyXG5cclxuJGFsbC1idXR0b25zOiAgICAgICAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0KTtcclxuJGFsbC1idXR0b25zLWFjdGl2ZTogYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBhY3RpdmUpO1xyXG4kYWxsLWJ1dHRvbnMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGZvY3VzKTtcclxuJGFsbC1idXR0b25zLWhvdmVyOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBob3Zlcik7XHJcblxyXG4kYWxsLWJ1dHRvbi1pbnB1dHM6ICAgICAgICAkYWxsLWJ1dHRvbnM7XHJcbiRhbGwtYnV0dG9uLWlucHV0cy1hY3RpdmU6ICRhbGwtYnV0dG9ucy1hY3RpdmU7XHJcbiRhbGwtYnV0dG9uLWlucHV0cy1mb2N1czogICRhbGwtYnV0dG9ucy1mb2N1cztcclxuJGFsbC1idXR0b24taW5wdXRzLWhvdmVyOiAgJGFsbC1idXR0b25zLWhvdmVyO1xyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gaW5jbHVkZSBhIGNsZWFyZml4IGZvciBjb250YWluaW5nIGZsb2F0cy5cclxuLy8vXHJcbi8vLyBAbGluayBodHRwOi8vY3NzbW9qby5jb20vbGF0ZXN0X25ld19jbGVhcmZpeF9zb19mYXIvXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQ6OmFmdGVyIHtcclxuLy8vICAgICBjbGVhcjogYm90aDtcclxuLy8vICAgICBjb250ZW50OiBcIlwiO1xyXG4vLy8gICAgIGRpc3BsYXk6IHRhYmxlO1xyXG4vLy8gICB9XHJcblxyXG5AbWl4aW4gY2xlYXJmaXgge1xyXG4gICY6OmFmdGVyIHtcclxuICAgIGNsZWFyOiBib3RoO1xyXG4gICAgY29udGVudDogXCJcIjtcclxuICAgIGRpc3BsYXk6IHRhYmxlO1xyXG4gIH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gVHJ1bmNhdGVzIHRleHQgYW5kIGFkZHMgYW4gZWxsaXBzaXMgdG8gcmVwcmVzZW50IG92ZXJmbG93LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzEwMCVdXHJcbi8vLyAgIE1heC13aWR0aCBmb3IgdGhlIHN0cmluZyB0byByZXNwZWN0IGJlZm9yZSBiZWluZyB0cnVuY2F0ZWRcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIGVsbGlwc2lzO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4vLy8gICAgIG1heC13aWR0aDogMTAwJTtcclxuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4vLy8gICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbi8vLyAgICAgd29yZC13cmFwOiBub3JtYWw7XHJcbi8vLyAgIH1cclxuXHJcbkBtaXhpbiBlbGxpcHNpcygkd2lkdGg6IDEwMCUpIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgbWF4LXdpZHRoOiAkd2lkdGg7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIHdvcmQtd3JhcDogbm9ybWFsO1xyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBHZW9yZ2lhIGZvbnQgc3RhY2suXHJcbi8vL1xyXG4vLy8gQHR5cGUgTGlzdFxyXG5cclxuJGdlb3JnaWE6IFwiR2VvcmdpYVwiLCBcIkNhbWJyaWFcIiwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgXCJUaW1lc1wiLCBzZXJpZjtcclxuXHJcbi8vLyBIZWx2ZXRpY2EgZm9udCBzdGFjay5cclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcblxyXG4kaGVsdmV0aWNhOiBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiUm9ib3RvXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcclxuXHJcbi8vLyBMdWNpZGEgR3JhbmRlIGZvbnQgc3RhY2suXHJcbi8vL1xyXG4vLy8gQHR5cGUgTGlzdFxyXG5cclxuJGx1Y2lkYS1ncmFuZGU6IFwiTHVjaWRhIEdyYW5kZVwiLCBcIlRhaG9tYVwiLCBcIlZlcmRhbmFcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xyXG5cclxuLy8vIE1vbm9zcGFjZSBmb250IHN0YWNrLlxyXG4vLy9cclxuLy8vIEB0eXBlIExpc3RcclxuXHJcbiRtb25vc3BhY2U6IFwiQml0c3RyZWFtIFZlcmEgU2FucyBNb25vXCIsIFwiQ29uc29sYXNcIiwgXCJDb3VyaWVyXCIsIG1vbm9zcGFjZTtcclxuXHJcbi8vLyBWZXJkYW5hIGZvbnQgc3RhY2suXHJcbi8vL1xyXG4vLy8gQHR5cGUgTGlzdFxyXG5cclxuJHZlcmRhbmE6IFwiVmVyZGFuYVwiLCBcIkdlbmV2YVwiLCBzYW5zLXNlcmlmO1xyXG4iLCIvLy8gSGlkZXMgdGhlIHRleHQgaW4gYW4gZWxlbWVudCwgY29tbW9ubHkgdXNlZCB0byBzaG93IGFuIGltYWdlLiBTb21lIGVsZW1lbnRzIHdpbGwgbmVlZCBibG9jay1sZXZlbCBzdHlsZXMgYXBwbGllZC5cclxuLy8vXHJcbi8vLyBAbGluayBodHRwOi8vemVsZG1hbi5jb20vMjAxMi8wMy8wMS9yZXBsYWNpbmctdGhlLTk5OTlweC1oYWNrLW5ldy1pbWFnZS1yZXBsYWNlbWVudFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgaGlkZS10ZXh0O1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuLy8vICAgICB0ZXh0LWluZGVudDogMTAxJTtcclxuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQHRvZG8gUmVtb3ZlIGhlaWdodCBhcmd1bWVudCBpbiB2NS4wLjBcclxuXHJcbkBtaXhpbiBoaWRlLXRleHQoJGhlaWdodDogbnVsbCkge1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgdGV4dC1pbmRlbnQ6IDEwMSU7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuXHJcbiAgQGlmICRoZWlnaHQge1xyXG4gICAgQHdhcm4gXCJUaGUgYGhpZGUtdGV4dGAgbWl4aW4gaGFzIGNoYW5nZWQgYW5kIG5vIGxvbmdlciByZXF1aXJlcyBhIGhlaWdodC4gVGhlIGhlaWdodCBhcmd1bWVudCB3aWxsIG5vIGxvbmdlciBiZSBhY2NlcHRlZCBpbiB2NS4wLjBcIjtcclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYG1hcmdpbmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXHJcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAxMHB4IDNlbSAyMHZoKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDNlbTtcclxuLy8vICAgICBtYXJnaW4tbGVmdDogMjB2aDtcclxuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XHJcbi8vL1xyXG4vLy8gQG91dHB1dCBgbWFyZ2luYFxyXG5cclxuQG1peGluIG1hcmdpbigkdmFscy4uLikge1xyXG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KG1hcmdpbiwgZmFsc2UsICR2YWxzLi4uKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgcGFkZGluZ2Agb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXHJcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBwYWRkaW5nKDEydmggbnVsbCAxMHB4IDUlKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xyXG4vLy8gICAgIHBhZGRpbmctbGVmdDogNSU7XHJcbi8vLyAgICAgcGFkZGluZy10b3A6IDEydmg7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XHJcbi8vL1xyXG4vLy8gQG91dHB1dCBgcGFkZGluZ2BcclxuXHJcbkBtaXhpbiBwYWRkaW5nKCR2YWxzLi4uKSB7XHJcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkocGFkZGluZywgZmFsc2UsICR2YWxzLi4uKTtcclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHNldHRpbmcgYW4gZWxlbWVudOKAmXMgcG9zaXRpb24uIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1Bvc2l0aW9ufSAkcG9zaXRpb24gW3JlbGF0aXZlXVxyXG4vLy8gICBBIENTUyBwb3NpdGlvbiB2YWx1ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJGNvb3JkaW5hdGVzIFtudWxsIG51bGwgbnVsbCBudWxsXVxyXG4vLy8gICBMaXN0IG9mIHZhbHVlcyB0aGF0IGNvcnJlc3BvbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4IGZvciB0aGUgZWRnZXMgb2YgYSBib3hcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCAxMGVtKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIGxlZnQ6IDEwZW07XHJcbi8vLyAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4vLy8gICAgIHRvcDogMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXHJcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IHVucGFja1xyXG5cclxuQG1peGluIHBvc2l0aW9uKCRwb3NpdGlvbjogcmVsYXRpdmUsICRjb29yZGluYXRlczogbnVsbCBudWxsIG51bGwgbnVsbCkge1xyXG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gbGlzdCB7XHJcbiAgICAkY29vcmRpbmF0ZXM6ICRwb3NpdGlvbjtcclxuICAgICRwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgfVxyXG5cclxuICAkY29vcmRpbmF0ZXM6IHVucGFjaygkY29vcmRpbmF0ZXMpO1xyXG5cclxuICAkb2Zmc2V0czogKFxyXG4gICAgdG9wOiAgICBudGgoJGNvb3JkaW5hdGVzLCAxKSxcclxuICAgIHJpZ2h0OiAgbnRoKCRjb29yZGluYXRlcywgMiksXHJcbiAgICBib3R0b206IG50aCgkY29vcmRpbmF0ZXMsIDMpLFxyXG4gICAgbGVmdDogICBudGgoJGNvb3JkaW5hdGVzLCA0KVxyXG4gICk7XHJcblxyXG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XHJcblxyXG4gIEBlYWNoICRvZmZzZXQsICR2YWx1ZSBpbiAkb2Zmc2V0cyB7XHJcbiAgICBAaWYgaXMtbGVuZ3RoKCR2YWx1ZSkge1xyXG4gICAgICAjeyRvZmZzZXR9OiAkdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBBIG1peGluIGZvciBnZW5lcmF0aW5nIHZlbmRvciBwcmVmaXhlcyBvbiBub24tc3RhbmRhcmRpemVkIHByb3BlcnRpZXMuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eVxyXG4vLy8gICBQcm9wZXJ0eSB0byBwcmVmaXhcclxuLy8vXHJcbi8vLyBAcGFyYW0geyp9ICR2YWx1ZVxyXG4vLy8gICBWYWx1ZSB0byB1c2VcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRwcmVmaXhlc1xyXG4vLy8gICBQcmVmaXhlcyB0byBkZWZpbmVcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1yYWRpdXMsIDEwcHgsIHdlYmtpdCBtcyBzcGVjKTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTBweDtcclxuLy8vICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbi8vLyAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itd2Via2l0XHJcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1vemlsbGFcclxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3ItbWljcm9zb2Z0XHJcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW9wZXJhXHJcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXNwZWNcclxuXHJcbkBtaXhpbiBwcmVmaXhlcigkcHJvcGVydHksICR2YWx1ZSwgJHByZWZpeGVzKSB7XHJcbiAgQGVhY2ggJHByZWZpeCBpbiAkcHJlZml4ZXMge1xyXG4gICAgQGlmICRwcmVmaXggPT0gd2Via2l0IHtcclxuICAgICAgQGlmICRwcmVmaXgtZm9yLXdlYmtpdCB7XHJcbiAgICAgICAgLXdlYmtpdC0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1veiB7XHJcbiAgICAgIEBpZiAkcHJlZml4LWZvci1tb3ppbGxhIHtcclxuICAgICAgICAtbW96LSN7JHByb3BlcnR5fTogJHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbXMge1xyXG4gICAgICBAaWYgJHByZWZpeC1mb3ItbWljcm9zb2Z0IHtcclxuICAgICAgICAtbXMtI3skcHJvcGVydHl9OiAkdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2UgaWYgJHByZWZpeCA9PSBvIHtcclxuICAgICAgQGlmICRwcmVmaXgtZm9yLW9wZXJhIHtcclxuICAgICAgICAtby0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IHNwZWMge1xyXG4gICAgICBAaWYgJHByZWZpeC1mb3Itc3BlYyB7XHJcbiAgICAgICAgI3skcHJvcGVydHl9OiAkdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2UgIHtcclxuICAgICAgQHdhcm4gXCJVbnJlY29nbml6ZWQgcHJlZml4OiAjeyRwcmVmaXh9XCI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpIHtcclxuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgIGZhbHNlICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICBmYWxzZSAhZ2xvYmFsO1xyXG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogZmFsc2UgIWdsb2JhbDtcclxuICAkcHJlZml4LWZvci1vcGVyYTogICAgIGZhbHNlICFnbG9iYWw7XHJcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICBmYWxzZSAhZ2xvYmFsO1xyXG59XHJcbiIsIkBtaXhpbiByZXRpbmEtaW1hZ2UoJGZpbGVuYW1lLCAkYmFja2dyb3VuZC1zaXplLCAkZXh0ZW5zaW9uOiBwbmcsICRyZXRpbmEtZmlsZW5hbWU6IG51bGwsICRyZXRpbmEtc3VmZml4OiBfMngsICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lKSB7XHJcbiAgQGlmICRhc3NldC1waXBlbGluZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcclxuICB9IEBlbHNlIHtcclxuICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgIHVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgaGlkcGkge1xyXG4gICAgQGlmICRhc3NldC1waXBlbGluZSB7XHJcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XHJcbiAgICAgIH1cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYmFja2dyb3VuZC1zaXplOiAkYmFja2dyb3VuZC1zaXplO1xyXG4gIH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gU2V0cyB0aGUgYHdpZHRoYCBhbmQgYGhlaWdodGAgb2YgdGhlIGVsZW1lbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2l6ZVxyXG4vLy8gICBBIGxpc3Qgb2YgYXQgbW9zdCAyIHNpemUgdmFsdWVzLlxyXG4vLy9cclxuLy8vICAgSWYgdGhlcmUgaXMgb25seSBhIHNpbmdsZSB2YWx1ZSBpbiBgJHNpemVgIGl0IGlzIHVzZWQgZm9yIGJvdGggd2lkdGggYW5kIGhlaWdodC4gQWxsIHVuaXRzIGFyZSBzdXBwb3J0ZWQuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBzaXplKDJlbSk7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZShhdXRvIDEwZW0pO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XHJcbi8vLyAgICAgd2lkdGg6IDJlbTtcclxuLy8vICAgICBoZWlnaHQ6IDJlbTtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcclxuLy8vICAgICB3aWR0aDogYXV0bztcclxuLy8vICAgICBoZWlnaHQ6IDEwZW07XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAdG9kbyBSZWZhY3RvciBpbiA1LjAuMCB0byB1c2UgYSBjb21tYS1zZXBhcmF0ZWQgYXJndW1lbnRcclxuXHJcbkBtaXhpbiBzaXplKCR2YWx1ZSkge1xyXG4gICR3aWR0aDogbnRoKCR2YWx1ZSwgMSk7XHJcbiAgJGhlaWdodDogJHdpZHRoO1xyXG5cclxuICBAaWYgbGVuZ3RoKCR2YWx1ZSkgPiAxIHtcclxuICAgICRoZWlnaHQ6IG50aCgkdmFsdWUsIDIpO1xyXG4gIH1cclxuXHJcbiAgQGlmIGlzLXNpemUoJGhlaWdodCkge1xyXG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQHdhcm4gXCJgI3skaGVpZ2h0fWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCRoZWlnaHRgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xyXG4gIH1cclxuXHJcbiAgQGlmIGlzLXNpemUoJHdpZHRoKSB7XHJcbiAgICB3aWR0aDogJHdpZHRoO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgQHdhcm4gXCJgI3skd2lkdGh9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJHdpZHRoYCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcclxuICB9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCB0ZXh0LWJhc2VkIGlucHV0cy4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6IGAjeyRhbGwtdGV4dC1pbnB1dHN9YC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzfSB7XHJcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWZvY3VzfSxcclxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWhvdmVyfSB7XHJcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzBmMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWFjdGl2ZX0ge1xyXG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl0sXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdLFxyXG4vLy8gICB0ZXh0YXJlYSB7XHJcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06Zm9jdXMsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpmb2N1cyxcclxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06Zm9jdXMsXHJcbi8vLyAgIHRleHRhcmVhOmZvY3VzLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpob3ZlcixcclxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06aG92ZXIsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmhvdmVyLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpob3ZlcixcclxuLy8vICAgdGV4dGFyZWE6aG92ZXIge1xyXG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmFjdGl2ZSxcclxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTphY3RpdmUsXHJcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06YWN0aXZlLFxyXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTphY3RpdmUsXHJcbi8vLyAgIHRleHRhcmVhOmFjdGl2ZSB7XHJcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcclxuLy8vXHJcbi8vLyBAdHlwZSBMaXN0XHJcblxyXG4kdGV4dC1pbnB1dHMtbGlzdDogJ2lucHV0W3R5cGU9XCJjb2xvclwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGVcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZVwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZW1haWxcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJtb250aFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIm51bWJlclwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic2VhcmNoXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGVsXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGV4dFwiXScsXHJcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRpbWVcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ1cmxcIl0nLFxyXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ3ZWVrXCJdJyxcclxuICAgICAgICAgICAgICAgICAgICdpbnB1dDpub3QoW3R5cGVdKScsXHJcbiAgICAgICAgICAgICAgICAgICAndGV4dGFyZWEnO1xyXG5cclxuJGFsbC10ZXh0LWlucHV0czogICAgICAgIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QpO1xyXG4kYWxsLXRleHQtaW5wdXRzLWFjdGl2ZTogYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgYWN0aXZlKTtcclxuJGFsbC10ZXh0LWlucHV0cy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGZvY3VzKTtcclxuJGFsbC10ZXh0LWlucHV0cy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGhvdmVyKTtcclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIENTUyBjdWJpYy1iZXppZXIgdGltaW5nIGZ1bmN0aW9ucy4gVGltaW5nIGZ1bmN0aW9ucyBjb3VydGVzeSBvZiBqcXVlcnkuZWFzaWUgKGdpdGh1Yi5jb20vamF1a2lhL2Vhc2llKVxyXG4vLy9cclxuLy8vIFRpbWluZyBmdW5jdGlvbnMgYXJlIHRoZSBzYW1lIGFzIGRlbW9lZCBoZXJlOiBodHRwOi8vanF1ZXJ5dWkuY29tL3Jlc291cmNlcy9kZW1vcy9lZmZlY3QvZWFzaW5nLmh0bWxcclxuLy8vXHJcbi8vLyBAdHlwZSBjdWJpYy1iZXppZXJcclxuXHJcbiRlYXNlLWluLXF1YWQ6ICAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wODUsIDAuNjgwLCAwLjUzMCk7XHJcbiRlYXNlLWluLWN1YmljOiAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XHJcbiRlYXNlLWluLXF1YXJ0OiAgICAgY3ViaWMtYmV6aWVyKDAuODk1LCAgMC4wMzAsIDAuNjg1LCAwLjIyMCk7XHJcbiRlYXNlLWluLXF1aW50OiAgICAgY3ViaWMtYmV6aWVyKDAuNzU1LCAgMC4wNTAsIDAuODU1LCAwLjA2MCk7XHJcbiRlYXNlLWluLXNpbmU6ICAgICAgY3ViaWMtYmV6aWVyKDAuNDcwLCAgMC4wMDAsIDAuNzQ1LCAwLjcxNSk7XHJcbiRlYXNlLWluLWV4cG86ICAgICAgY3ViaWMtYmV6aWVyKDAuOTUwLCAgMC4wNTAsIDAuNzk1LCAwLjAzNSk7XHJcbiRlYXNlLWluLWNpcmM6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAgMC4wNDAsIDAuOTgwLCAwLjMzNSk7XHJcbiRlYXNlLWluLWJhY2s6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAtMC4yODAsIDAuNzM1LCAwLjA0NSk7XHJcblxyXG4kZWFzZS1vdXQtcXVhZDogICAgIGN1YmljLWJlemllcigwLjI1MCwgIDAuNDYwLCAwLjQ1MCwgMC45NDApO1xyXG4kZWFzZS1vdXQtY3ViaWM6ICAgIGN1YmljLWJlemllcigwLjIxNSwgIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xyXG4kZWFzZS1vdXQtcXVhcnQ6ICAgIGN1YmljLWJlemllcigwLjE2NSwgIDAuODQwLCAwLjQ0MCwgMS4wMDApO1xyXG4kZWFzZS1vdXQtcXVpbnQ6ICAgIGN1YmljLWJlemllcigwLjIzMCwgIDEuMDAwLCAwLjMyMCwgMS4wMDApO1xyXG4kZWFzZS1vdXQtc2luZTogICAgIGN1YmljLWJlemllcigwLjM5MCwgIDAuNTc1LCAwLjU2NSwgMS4wMDApO1xyXG4kZWFzZS1vdXQtZXhwbzogICAgIGN1YmljLWJlemllcigwLjE5MCwgIDEuMDAwLCAwLjIyMCwgMS4wMDApO1xyXG4kZWFzZS1vdXQtY2lyYzogICAgIGN1YmljLWJlemllcigwLjA3NSwgIDAuODIwLCAwLjE2NSwgMS4wMDApO1xyXG4kZWFzZS1vdXQtYmFjazogICAgIGN1YmljLWJlemllcigwLjE3NSwgIDAuODg1LCAwLjMyMCwgMS4yNzUpO1xyXG5cclxuJGVhc2UtaW4tb3V0LXF1YWQ6ICBjdWJpYy1iZXppZXIoMC40NTUsICAwLjAzMCwgMC41MTUsIDAuOTU1KTtcclxuJGVhc2UtaW4tb3V0LWN1YmljOiBjdWJpYy1iZXppZXIoMC42NDUsICAwLjA0NSwgMC4zNTUsIDEuMDAwKTtcclxuJGVhc2UtaW4tb3V0LXF1YXJ0OiBjdWJpYy1iZXppZXIoMC43NzAsICAwLjAwMCwgMC4xNzUsIDEuMDAwKTtcclxuJGVhc2UtaW4tb3V0LXF1aW50OiBjdWJpYy1iZXppZXIoMC44NjAsICAwLjAwMCwgMC4wNzAsIDEuMDAwKTtcclxuJGVhc2UtaW4tb3V0LXNpbmU6ICBjdWJpYy1iZXppZXIoMC40NDUsICAwLjA1MCwgMC41NTAsIDAuOTUwKTtcclxuJGVhc2UtaW4tb3V0LWV4cG86ICBjdWJpYy1iZXppZXIoMS4wMDAsICAwLjAwMCwgMC4wMDAsIDEuMDAwKTtcclxuJGVhc2UtaW4tb3V0LWNpcmM6ICBjdWJpYy1iZXppZXIoMC43ODUsICAwLjEzNSwgMC4xNTAsIDAuODYwKTtcclxuJGVhc2UtaW4tb3V0LWJhY2s6ICBjdWJpYy1iZXppZXIoMC42ODAsIC0wLjU1MCwgMC4yNjUsIDEuNTUwKTtcclxuIiwiQG1peGluIHRyaWFuZ2xlKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcclxuICAkd2lkdGg6IG50aCgkc2l6ZSwgMSk7XHJcbiAgJGhlaWdodDogbnRoKCRzaXplLCBsZW5ndGgoJHNpemUpKTtcclxuICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XHJcbiAgJGJhY2tncm91bmQtY29sb3I6IGlmKGxlbmd0aCgkY29sb3IpID09IDIsIG50aCgkY29sb3IsIDIpLCB0cmFuc3BhcmVudCk7XHJcbiAgaGVpZ2h0OiAwO1xyXG4gIHdpZHRoOiAwO1xyXG5cclxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XHJcbiAgICAkd2lkdGg6ICR3aWR0aCAvIDI7XHJcbiAgICAkaGVpZ2h0OiBpZihsZW5ndGgoJHNpemUpID4gMSwgJGhlaWdodCwgJGhlaWdodC8yKTtcclxuXHJcbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cCB7XHJcbiAgICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItbGVmdDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xyXG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcclxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcclxuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgICBib3JkZXItcmlnaHQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XHJcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHVwLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSB1cC1sZWZ0KSB7XHJcbiAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG5cclxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwLXJpZ2h0IHtcclxuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XHJcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gdXAtbGVmdCB7XHJcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgfVxyXG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0KSB7XHJcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG5cclxuICAgIEBpZiAkZGlyZWN0aW9uID09IGRvd24tcmlnaHQge1xyXG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQge1xyXG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIH1cclxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXVwKSB7XHJcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XHJcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1kb3duKSB7XHJcbiAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xyXG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XHJcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1yaWdodCkge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xyXG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtbGVmdCkge1xyXG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcclxuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xyXG4gIH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gY2hhbmdlIHRoZSBgd29yZC13cmFwYCBwcm9wZXJ0eS5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHdyYXAgW2JyZWFrLXdvcmRdXHJcbi8vLyAgIFZhbHVlIGZvciB0aGUgYHdvcmQtYnJlYWtgIHByb3BlcnR5LlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAud3JhcHBlciB7XHJcbi8vLyAgICAgQGluY2x1ZGUgd29yZC13cmFwKGJyZWFrLXdvcmQpO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAud3JhcHBlciB7XHJcbi8vLyAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcclxuLy8vICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XHJcbi8vLyAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xyXG4vLy8gICB9XHJcblxyXG5AbWl4aW4gd29yZC13cmFwKCR3cmFwOiBicmVhay13b3JkKSB7XHJcbiAgb3ZlcmZsb3ctd3JhcDogJHdyYXA7XHJcbiAgd29yZC13cmFwOiAkd3JhcDtcclxuXHJcbiAgQGlmICR3cmFwID09IGJyZWFrLXdvcmQge1xyXG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xyXG4gIH0gQGVsc2Uge1xyXG4gICAgd29yZC1icmVhazogJHdyYXA7XHJcbiAgfVxyXG59XHJcbiIsIi8vIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBNQUpPUiB2ZXJzaW9uIHJlbGVhc2VcclxuXHJcbkBtaXhpbiBpbmxpbmUtYmxvY2sge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHJcbiAgQHdhcm4gXCJUaGUgaW5saW5lLWJsb2NrIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcclxufVxyXG5cclxuQG1peGluIGJ1dHRvbiAoJHN0eWxlOiBzaW1wbGUsICRiYXNlLWNvbG9yOiAjNDI5NGYwLCAkdGV4dC1zaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcclxuXHJcbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcclxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcclxuICB9XHJcblxyXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xyXG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XHJcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcclxuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xyXG5cclxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcclxuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcclxuICB9XHJcblxyXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcclxuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XHJcbiAgICAkc3R5bGU6IHNpbXBsZTtcclxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcclxuICB9XHJcblxyXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XHJcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcclxuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xyXG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcclxuICAgICRzdHlsZTogc2ltcGxlO1xyXG5cclxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcclxuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcclxuICB9XHJcblxyXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gbnVtYmVyIHtcclxuICAgICRwYWRkaW5nOiAkYmFzZS1jb2xvcjtcclxuICAgICR0ZXh0LXNpemU6ICRzdHlsZTtcclxuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xyXG4gICAgJHN0eWxlOiBzaW1wbGU7XHJcblxyXG4gICAgQGlmICRwYWRkaW5nID09ICM0Mjk0ZjAge1xyXG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xyXG4gIH1cclxuXHJcbiAgJjpkaXNhYmxlZCB7XHJcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xyXG4gICAgb3BhY2l0eTogMC41O1xyXG4gIH1cclxuXHJcbiAgQHdhcm4gXCJUaGUgYnV0dG9uIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcclxufVxyXG5cclxuLy8gU2VsZWN0b3IgU3R5bGUgQnV0dG9uXHJcbkBtaXhpbiBidXR0b25zdHlsZSgkdHlwZSwgJGItY29sb3IsICR0LXNpemUsICRwYWQpIHtcclxuICAvLyBHcmF5c2NhbGUgYnV0dG9uXHJcbiAgQGlmICR0eXBlID09IHNpbXBsZSBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XHJcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgQGlmICR0eXBlID09IHNoaW55IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcclxuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcblxyXG4gIEBpZiAkdHlwZSA9PSBwaWxsIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcclxuICAgIEBpbmNsdWRlIHBpbGwoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgQGlmICR0eXBlID09IGZsYXQgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xyXG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG5cclxuICAvLyBDb2xvcmVkIGJ1dHRvblxyXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUge1xyXG4gICAgQGluY2x1ZGUgc2ltcGxlKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkdHlwZSA9PSBzaGlueSB7XHJcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xyXG4gIH1cclxuXHJcbiAgQGVsc2UgaWYgJHR5cGUgPT0gcGlsbCB7XHJcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XHJcbiAgfVxyXG5cclxuICBAZWxzZSBpZiAkdHlwZSA9PSBmbGF0IHtcclxuICAgIEBpbmNsdWRlIGZsYXQoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcclxuICB9XHJcbn1cclxuXHJcbi8vIFNpbXBsZSBCdXR0b25cclxuQG1peGluIHNpbXBsZSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XHJcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcclxuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTE0JSk7XHJcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC04JSwgICRsaWdodG5lc3M6ICAxNSUpO1xyXG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTElKTtcclxuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDE1JSwgJGxpZ2h0bmVzczogLTE4JSk7XHJcblxyXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xyXG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcclxuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XHJcbiAgfVxyXG5cclxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcclxuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XHJcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xyXG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XHJcbiAgICAkdGV4dC1zaGFkb3c6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdyk7XHJcbiAgfVxyXG5cclxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xyXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcclxuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcclxuICBjb2xvcjogJGNvbG9yO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XHJcbiAgcGFkZGluZzogJHBhZGRpbmc7XHJcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gIHRleHQtc2hhZG93OiAwIDFweCAwICR0ZXh0LXNoYWRvdztcclxuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xyXG5cclxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNCUsICRsaWdodG5lc3M6IC01JSk7XHJcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTclLCAkbGlnaHRuZXNzOiAgNSUpO1xyXG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA4JSwgJGxpZ2h0bmVzczogLTE0JSk7XHJcblxyXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xyXG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xyXG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XHJcblxyXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG5cclxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcclxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcclxuICAgICRib3JkZXItYWN0aXZlOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA5JSwgJGxpZ2h0bmVzczogLTE0JSk7XHJcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNyUsICRsaWdodG5lc3M6IC0xNyUpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcclxuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XHJcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZSwgaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBTaGlueSBCdXR0b25cclxuQG1peGluIHNoaW55KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcclxuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xyXG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTcsICRncmVlbjogLTExMSwgJGJsdWU6IC04MSk7XHJcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEyNiwgJGdyZWVuOiAtMTI3LCAkYmx1ZTogLTEyMik7XHJcbiAgJGZvdXJ0aC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTc5LCAgJGdyZWVuOiAtNzAsICAkYmx1ZTogLTQ2KTtcclxuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAgMzcsICAkZ3JlZW46ICAyOSwgICRibHVlOiAgMTIpO1xyXG4gICRzZWNvbmQtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC01NiwgICRncmVlbjogLTUwLCAgJGJsdWU6IC0zMyk7XHJcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTE0MCwgJGdyZWVuOiAtMTQxLCAkYmx1ZTogLTExNCk7XHJcbiAgJHRoaXJkLXN0b3A6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAgJGdyZWVuOiAtNzUsICAkYmx1ZTogLTQ4KTtcclxuXHJcbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XHJcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xyXG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcclxuICB9XHJcblxyXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcclxuICAgICRib3JkZXItYm90dG9tOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xyXG4gICAgJGZvdXJ0aC1zdG9wOiAgIGdyYXlzY2FsZSgkZm91cnRoLXN0b3ApO1xyXG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcclxuICAgICRzZWNvbmQtc3RvcDogICBncmF5c2NhbGUoJHNlY29uZC1zdG9wKTtcclxuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcclxuICAgICR0aGlyZC1zdG9wOiAgICBncmF5c2NhbGUoJHRoaXJkLXN0b3ApO1xyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGJhc2UtY29sb3IgMCUsICRzZWNvbmQtc3RvcCA1MCUsICR0aGlyZC1zdG9wIDUwJSwgJGZvdXJ0aC1zdG9wIDEwMCUpO1xyXG5cclxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbTtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XHJcbiAgY29sb3I6ICRjb2xvcjtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgcGFkZGluZzogJHBhZGRpbmc7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3c7XHJcblxyXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xyXG4gICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMywgJGdyZWVuOiAtMTUsICRibHVlOiAtMTgpO1xyXG4gICAgJHNlY29uZC1zdG9wLWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC02NiwgJGdyZWVuOiAtNjIsICRibHVlOiAtNTEpO1xyXG4gICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC05MywgJGdyZWVuOiAtODUsICRibHVlOiAtNjYpO1xyXG4gICAgJGZvdXJ0aC1zdG9wLWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgJGdyZWVuOiAtODAsICRibHVlOiAtNjMpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkZmlyc3Qtc3RvcC1ob3Zlcik7XHJcbiAgICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRzZWNvbmQtc3RvcC1ob3Zlcik7XHJcbiAgICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wLWhvdmVyKTtcclxuICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJGZvdXJ0aC1zdG9wLWhvdmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkZmlyc3Qtc3RvcC1ob3ZlciAgMCUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2Vjb25kLXN0b3AtaG92ZXIgNTAlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXJkLXN0b3AtaG92ZXIgIDUwJSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmb3VydGgtc3RvcC1ob3ZlciAxMDAlKTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcblxyXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxyXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xyXG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExMSwgJGdyZWVuOiAtMTE2LCAkYmx1ZTogLTEyMik7XHJcblxyXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xyXG4gICAgfVxyXG5cclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAyMHB4IDAgJGluc2V0LXNoYWRvdy1hY3RpdmU7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBQaWxsIEJ1dHRvblxyXG5AbWl4aW4gcGlsbCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XHJcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcclxuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC0xMSUsICRsaWdodG5lc3M6IC0yNiUpO1xyXG4gICRib3JkZXItc2lkZXM6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIxJSwgJGxpZ2h0bmVzczogLTIxJSk7XHJcbiAgJGJvcmRlci10b3A6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMzAlLCAkbGlnaHRuZXNzOiAtMTUlKTtcclxuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xJSwgICRsaWdodG5lc3M6ICA3JSk7XHJcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTQlLCAkbGlnaHRuZXNzOiAtMTAlKTtcclxuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNSwgJHNhdHVyYXRpb246IC0xOSUsICRsaWdodG5lc3M6IC0xNSUpO1xyXG5cclxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcclxuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XHJcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xyXG4gIH1cclxuXHJcbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcclxuICAgICRib3JkZXItc2lkZXM6ICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XHJcbiAgICAkYm9yZGVyLXRvcDogICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcclxuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XHJcbiAgICAkc3RvcC1ncmFkaWVudDogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50KTtcclxuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcclxuICB9XHJcblxyXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xyXG4gIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcclxuICBib3JkZXItcmFkaXVzOiAxNnB4O1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xyXG4gIGNvbG9yOiAkY29sb3I7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgbGluZS1oZWlnaHQ6IDE7XHJcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xyXG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xyXG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XHJcblxyXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xyXG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaWdodG5lc3M6IC00LjUlKTtcclxuICAgICRib3JkZXItYm90dG9tOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDEzLjUlLCAkbGlnaHRuZXNzOiAtMzIlKTtcclxuICAgICRib3JkZXItc2lkZXM6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIlLCAgICAkbGlnaHRuZXNzOiAtMjclKTtcclxuICAgICRib3JkZXItdG9wOiAgICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTE3JSwgICAkbGlnaHRuZXNzOiAtMjElKTtcclxuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAkc2F0dXJhdGlvbjogLTElLCAgICAkbGlnaHRuZXNzOiAgMyUpO1xyXG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtNCUsICAgICRsaWdodG5lc3M6IC0xNS41JSk7XHJcbiAgICAkdGV4dC1zaGFkb3ctaG92ZXI6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNSwgJHNhdHVyYXRpb246IC01JSwgICAgJGxpZ2h0bmVzczogLTIyJSk7XHJcblxyXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xyXG4gICAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcclxuICAgICAgJGJvcmRlci1zaWRlczogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcclxuICAgICAgJGJvcmRlci10b3A6ICAgICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XHJcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XHJcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xyXG4gICAgICAkdGV4dC1zaGFkb3ctaG92ZXI6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1ob3Zlcik7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xyXG5cclxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLXRvcDtcclxuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcclxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWhvdmVyO1xyXG4gIH1cclxuXHJcbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXHJcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XHJcbiAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNCwgICRzYXR1cmF0aW9uOiAtMTIlLCAgJGxpZ2h0bmVzczogLTEwJSk7XHJcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNiwgICRzYXR1cmF0aW9uOiAtMi41JSwgJGxpZ2h0bmVzczogLTMwJSk7XHJcbiAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogMTEsICRzYXR1cmF0aW9uOiAgNiUsICAgJGxpZ2h0bmVzczogLTMxJSk7XHJcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogOSwgICRzYXR1cmF0aW9uOiAgMiUsICAgJGxpZ2h0bmVzczogLTIxLjUlKTtcclxuICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA1LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGdyYXlzY2FsZSgkYWN0aXZlLWNvbG9yKTtcclxuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xyXG4gICAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbS1hY3RpdmUpO1xyXG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XHJcbiAgICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1hY3RpdmUpO1xyXG4gICAgfVxyXG5cclxuICAgIGJhY2tncm91bmQ6ICRhY3RpdmUtY29sb3I7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbS1hY3RpdmU7XHJcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IDNweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcclxuICAgIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdy1hY3RpdmU7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBGbGF0IEJ1dHRvblxyXG5AbWl4aW4gZmxhdCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XHJcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcclxuXHJcbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XHJcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xyXG4gIH1cclxuXHJcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3I7XHJcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG4gIGJvcmRlcjogMDtcclxuICBjb2xvcjogJGNvbG9yO1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBwYWRkaW5nOiAkcGFkZGluZztcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuXHJcbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKXtcclxuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA0JSwgJGxpZ2h0bmVzczogNSUpO1xyXG5cclxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xyXG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1ob3ZlcjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcblxyXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxyXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xyXG4gICAgJGJhc2UtY29sb3ItYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNCUsICRsaWdodG5lc3M6IC01JSk7XHJcblxyXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XHJcbiAgICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWFjdGl2ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItYWN0aXZlO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxufVxyXG5cclxuLy8gRmxleGlibGUgZ3JpZFxyXG5AZnVuY3Rpb24gZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucykge1xyXG4gICR3aWR0aDogJGNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xyXG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xyXG4gIEByZXR1cm4gcGVyY2VudGFnZSgkd2lkdGggLyAkY29udGFpbmVyLXdpZHRoKTtcclxuXHJcbiAgQHdhcm4gXCJUaGUgZmxleC1ncmlkIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcclxufVxyXG5cclxuLy8gRmxleGlibGUgZ3V0dGVyXHJcbkBmdW5jdGlvbiBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucywgJGd1dHRlcjogJGZnLWd1dHRlcikge1xyXG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xyXG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVyIC8gJGNvbnRhaW5lci13aWR0aCk7XHJcblxyXG4gIEB3YXJuIFwiVGhlIGZsZXgtZ3V0dGVyIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcclxufVxyXG5cclxuQGZ1bmN0aW9uIGdyaWQtd2lkdGgoJG4pIHtcclxuICBAcmV0dXJuICRuICogJGd3LWNvbHVtbiArICgkbiAtIDEpICogJGd3LWd1dHRlcjtcclxuXHJcbiAgQHdhcm4gXCJUaGUgZ3JpZC13aWR0aCBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiBnb2xkZW4tcmF0aW8oJHZhbHVlLCAkaW5jcmVtZW50KSB7XHJcbiAgQHJldHVybiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZSwgJHJhdGlvOiAkZ29sZGVuKTtcclxuXHJcbiAgQHdhcm4gXCJUaGUgZ29sZGVuLXJhdGlvIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2UuIFBsZWFzZSB1c2UgdGhlIG1vZHVsYXItc2NhbGUgZnVuY3Rpb24sIGluc3RlYWQuXCI7XHJcbn1cclxuXHJcbkBtaXhpbiBib3gtc2l6aW5nKCRib3gpIHtcclxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtc2l6aW5nLCAkYm94LCB3ZWJraXQgbW96IHNwZWMpO1xyXG5cclxuICBAd2FybiBcIlRoZSBib3gtc2l6aW5nIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2UuIFRoaXMgcHJvcGVydHkgY2FuIG5vdyBiZSB1c2VkIHVuLXByZWZpeGVkLlwiO1xyXG59XHJcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUNBQTs7OztnR0FJZ0c7QUFFaEcsNkNBQTZDO0FBMkQ3QztnR0FDZ0c7QURqRWhHLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxPQUFPLFNBQVMsRUFBRSxNQUFNO0VBQzdDLEFBQUEsUUFBUSxDQUFBO0lBQUUsS0FBSyxFQUFFLElBQUk7SUFBRSxNQUFNLEVBQUUsTUFBTTtHQUFJO0VBQ3pDLEFBQUEsUUFBUSxDQUFBO0lBQUUsU0FBUyxFQUFFLElBQUk7R0FBSTtFQUM3QixBQUNDLGNBRGEsQ0FDYixFQUFFLEVBREgsY0FBYyxDQUNWLEVBQUUsQ0FBQTtJQUFFLFNBQVMsRUFBRSxJQUFJO0lBQUUsS0FBSyxFQUFFLEtBQUs7R0FBSTtFQUR6QyxBQUVDLGNBRmEsQ0FFYixNQUFNLENBQUE7SUFBRSxLQUFLLEVBQUUsS0FBSztJQUFFLE1BQU0sRUFBRSxJQUFJO0dBQUk7RUFHdkMsQUFBQSxTQUFTLENBQUE7SUFDUixPQUFPLEVBQUUsYUFBYTtHQUl0QjtFQUxELEFBRUMsU0FGUSxBQUVQLE9BQU8sQ0FBQTtJQUNQLEtBQUssRUFBQyxJQUFJO0lBQUUsZUFBZSxFQUFFLElBQUk7SUFBRSxtQkFBbUIsRUFBRSxPQUFPO0lBQUUsR0FBRyxFQUFFLEdBQUc7R0FDekU7RUFFRixBQUNDLGNBRGEsQ0FDYixXQUFXLENBQUE7SUFBRSxTQUFTLEVBQUUsSUFBSTtJQUFFLFdBQVcsRUFBRSxJQUFJO0dBQUk7RUFEcEQsQUFFQyxjQUZhLENBRWIsTUFBTSxDQUFBO0lBQUUsWUFBWSxFQUFFLElBQUk7R0FBSTtFQUYvQixBQUdDLGNBSGEsQ0FHYixXQUFXLENBQUE7SUFBRSxLQUFLLEVBQUUsS0FBSztJQUFFLE1BQU0sRUFBRSxHQUFHO0dBQUk7RUFFM0MsQUFDQyxZQURXLENBQ1gsV0FBVyxDQUFBO0lBQUUsS0FB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 */
