#hhhhhh {
  color: #e8e8e8;
  background-color: #66c01a; }
  #hhhhhh > #hasjdkasdj {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }

* {
  -webkit-overflow-scrolling: touch; }

.text-sleek {
  font-family: Roboto, "Droid Sans", Arial, "Helvetica Neue", Helvetica, sans-serif;
  font-weight: 300; }
  .text-sleek h1, .text-sleek h2, .text-sleek h3, .text-sleek h4, .text-sleek h5, .text-sleek h6 {
    font-weight: 300;
    color: #394694; }

.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
  font-weight: 300; }

.col-align-mid {
  display: inline-block;
  vertical-align: middle;
  float: none; }

@media all and (min-width: 768px) {
  .truncate {
    max-width: 170px;
    white-space: nowrap;
    overflow: hidden;
    -o-text-overflow: ellipsis;
       text-overflow: ellipsis;
    display: inline-block;
    vertical-align: bottom;
    vertical-align: text-bottom; } }

#header-container {
  background-color: #394694; }

#all-products-slideout {
  background-color: #ffffff;
  margin-bottom: 10px; }
  @media all and (max-width: 768px) {
    #all-products-slideout {
      padding: 0;
      margin: 0; } }
  @media all and (max-width: 768px) {
    #all-products-slideout div {
      padding: inherit;
      margin: inherit; } }
  #all-products-slideout h3 {
    font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
    font-size: 1.5rem;
    font-weight: bold;
    margin: 0;
    margin-top: 15px; }
    @media all and (max-width: 768px) {
      #all-products-slideout h3 {
        padding: 10px;
        border-bottom: 1px solid #e8e8e8;
        font-size: 2.5rem;
        color: #394694;
        background-color: #C3CBE7;
        font-weight: 200;
        font-family: Roboto, "Droid Sans", Arial, "Helvetica Neue", Helvetica, sans-serif; }
        #all-products-slideout h3:first-of-type {
          margin-top: 0; } }
  @media all and (max-width: 768px) {
    #all-products-slideout .col-xs-12 {
      text-align: center; } }
  #all-products-slideout ul {
    list-style: none;
    padding: 0; }
    #all-products-slideout ul li {
      font-size: 1.3rem;
      padding: 2px 0;
      font-family: Arial, "Helvetica Neue", Helvetica, sans-serif; }
      @media all and (max-width: 768px) {
        #all-products-slideout ul li {
          font-size: 1.8rem;
          background-color: white;
          padding: 6px;
          border-top: 1px solid rgba(1, 1, 1, 0.1); } }

.pointer:hover {
  cursor: pointer; }

.header-menu-item {
  font-family: Roboto, 'Droid Sans', Arial, "Helvetica Neue", Helvetica, sans-serif;
  font-weight: 300;
  font-size: 2rem;
  display: inline-block;
  padding: 10px 0;
  color: white;
  -webkit-transition: all, 0.2s, ease-in-out;
  -o-transition: all, 0.2s, ease-in-out;
  transition: all, 0.2s, ease-in-out; }
  .header-menu-item:hover {
    background-color: #97A5D6; }
  .header-menu-item a {
    color: white;
    text-decoration: none; }
  @media all and (max-width: 768px) {
    .header-menu-item {
      font-size: 2.5rem;
      border-bottom: 1px solid rgba(255, 255, 255, 0.25); } }

#header {
  z-index: 1000; }
  #header .navbar {
    margin-bottom: 0; }
  #header #header-menu {
    list-style: none;
    padding: 0;
    text-align: center;
    margin-bottom: 0; }

.mobile-cart-mini {
  position: absolute;
  left: -71px;
  top: -7px;
  width: 50px;
  height: 50px;
  -webkit-transform: scale(0.85);
  -ms-transform: scale(0.85);
  transform: scale(0.85); }
  .mobile-cart-mini img {
    max-width: 55px; }

#mobile-cart-circle {
  width: 35px;
  height: 35px;
  background-color: white;
  display: block;
  border-radius: 35px;
  position: absolute;
  top: -4px;
  right: -14px;
  border: 3px solid #394694;
  font-size: 2rem;
  text-align: center;
  line-height: 30px;
  font-weight: bold;
  color: #394694; }

.header-logo {
  padding: 6px 0; }
  .header-logo > * {
    vertical-align: middle; }
  .header-logo img {
    max-width: 100%;
    padding-bottom: 10px; }
    @media all and (max-width: 768px) {
      .header-logo img {
        max-width: 55%;
        margin: 5px; } }

#header-account {
  text-align: right;
  color: #fff; }
  #header-account a {
    color: inherit; }
  #header-account > span {
    color: #97A5D6;
    font-weight: bold; }
    #header-account > span:hover {
      color: red; }

#header-member {
  text-align: right; }
  @media all and (max-width: 768px) {
    #header-member {
      text-align: center;
      font-size: 2rem; } }
  @media all and (max-width: 768px) {
    #header-member span:not(:first-of-type) {
      font-size: 2.5rem; } }

@media all and (max-width: 768px) {
  #shopping-cart {
    padding: 10px 0;
    border-bottom: 2px solid white;
    border-top: 2px solid white;
    margin-top: 15px; }
    #shopping-cart a {
      text-decoration: none; } }

@media all and (max-width: 768px) {
  #cart-title {
    text-align: center;
    font-size: 3rem; } }

#cart-title img {
  max-width: 32px; }
  @media all and (max-width: 768px) {
    #cart-title img {
      max-width: 64px; } }

@media all and (max-width: 768px) {
  #cart-info {
    font-size: 2rem; } }

#fs-profile > a {
  display: block; }

.dropdown-menu a {
  color: #282828; }

#fs-popup-notification {
  width: 400px;
  height: 95px;
  background-color: #eaeaea;
  -webkit-box-shadow: inset 0 0 0 2px #3A4692, 0 10px 13px -4px rgba(51, 51, 51, 0.5);
          box-shadow: inset 0 0 0 2px #3A4692, 0 10px 13px -4px rgba(51, 51, 51, 0.5); }

.fs-popup-notification-element {
  display: inline-block;
  vertical-align: middle;
  margin: 0 auto;
  font-family: Arial, \'Helvetica Neue\', Helvetica, sans-serif; }

.fs-icon {
  background-color: #394694; }
  .fs-icon > img {
    max-height: 95px; }

.fs-message {
  text-align: center;
  font-size: 2rem;
  margin-top: 20px;
  color: #3a4692; }

.fs-heading {
  font-size: 3rem;
  color: #5569A4; }
  .fs-heading.main {
    font-size: 4.4rem;
    font-weight: bold;
    color: #394694; }
  .fs-heading.sub {
    font-size: 2.5rem;
    font-weight: 300; }
  .fs-heading.thick {
    font-weight: bold; }

.main-title {
  font-size: 3.8rem;
  color: #394694;
  margin: 0;
  padding: 20px 0 5px 0;
  font-family: Roboto, "Droid Sans", Arial, "Helvetica Neue", Helvetica, sans-serif;
  font-weight: 300; }

.sub-heading {
  font-family: Roboto, "Droid Sans", Arial, "Helvetica Neue", Helvetica, sans-serif;
  font-weight: 300;
  font-size: 2rem;
  color: #6C6C6C;
  margin: 0; }

.subheading-title > a {
  font-weight: bold; }

#image-frame {
  display: none;
  position: absolute;
  width: 25%;
  -webkit-box-shadow: 0px 5px 21px black;
  box-shadow: 0px 5px 21px black;
  left: calc(50% - 12.5%);
  top: 12.5%;
  max-width: 490px; }

#bottom-footer-classic {
  position: relative;
  margin-top: 50px; }

#search-box {
  padding-top: 30px; }

.navbar-toggle {
  background-color: #e8e8e8; }
  .navbar-toggle span {
    background-color: #282828; }

.content {
  min-height: 10px; }

.btn-primary {
  background-color: #394694;
  border-color: #5569A4; }
  .btn-primary:hover {
    background-color: #5569A4;
    border-color: #576ba7; }

body {
  min-height: 100vh;
  height: 100%;
  font-family: Roboto, "Droid Sans", Arial, "Helvetica Neue", Helvetica, sans-serif; }

.body-wrapper-style {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
      -ms-flex: 1;
          flex: 1;
  width: 100%; }

.body-flex-wrapper-style {
  height: 100%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-transition: -webkit-filter 0.25s ease-out;
  transition: -webkit-filter 0.25s ease-out;
  -o-transition: filter 0.25s ease-out;
  transition: filter 0.25s ease-out;
  transition: filter 0.25s ease-out, -webkit-filter 0.25s ease-out; }

.body-flex-wrapper-style > .container-fluid {
  margin: 0;
  padding: 0; }

#body-wrapper > .row {
  margin: 0; }

#header, #footer {
  margin: 0; }

.card {
  background-color: white;
  padding: 10px;
  margin-bottom: 15px;
  -webkit-box-shadow: 0 10px 20px -8px black;
          box-shadow: 0 10px 20px -8px black;
  border-radius: 2px; }
  .card.card-tab-content {
    padding-top: 0;
    margin-top: 0; }
  .card label {
    font-weight: 400; }

.card-row-2 {
  margin: 0 -30px; }

.card-title {
  margin-top: 0;
  padding-top: 10px;
  font-weight: 300;
  font-family: "Roboto", Arial, "Helvetica Neue", Helvetica, sans-serif; }

.card-tab-list {
  margin-bottom: 0;
  background-color: #394694;
  padding-left: 0; }
  .card-tab-list a {
    display: block;
    padding: 5px 10px;
    font-weight: 300;
    font-size: 1.75rem;
    color: white;
    text-decoration: none;
    border-bottom: none;
    border-radius: 1px 1px 0 0; }
    .card-tab-list a:focus {
      outline: none; }
  .card-tab-list > li {
    display: inline-block; }
    .card-tab-list > li:hover {
      background-color: #97A5D6; }
    .card-tab-list > li.ui-tabs-active > a {
      background-color: white;
      color: #394694; }

.button {
  -webkit-transition: position 0.25s ease-in-out;
  -o-transition: position 0.25s ease-in-out;
  transition: position 0.25s ease-in-out;
  margin: 5px auto;
  background-color: #394694;
  -webkit-box-shadow: 0 5px #7A8BA3;
  box-shadow: 0 5px #7A8BA3;
  border-radius: 2px;
  border: none;
  color: white;
  outline: none;
  padding: 5px 10px;
  font-size: 1.5rem;
  text-decoration: none; }
  .button.button-pressed {
    position: relative;
    top: 6px;
    -webkit-box-shadow: inset 0 -2px #7A8BA3;
            box-shadow: inset 0 -2px #7A8BA3; }
  .button > input {
    display: none; }
  .button.button-dull {
    background-color: #858585;
    -webkit-box-shadow: 0 5px #4b5768;
    box-shadow: 0 5px #4b5768; }
    .button.button-dull:hover {
      -webkit-box-shadow: 0 9px #4b5768;
      box-shadow: 0 9px #4b5768; }
  .button[data-disabled="true"], .button:disabled {
    background-color: gray;
    -webkit-box-shadow: 0 0 transparent;
    box-shadow: 0 0 transparent; }
    .button[data-disabled="true"]:hover, .button:disabled:hover {
      position: relative;
      top: 0;
      -webkit-box-shadow: 0 0 transparent;
      box-shadow: 0 0px transparent; }
  .button.add-to-cart-button {
    margin: 25px auto;
    background-color: #66c01a;
    -webkit-box-shadow: 0 5px #7A8BA3;
    box-shadow: 0 5px #7A8BA3;
    border-radius: 2px;
    border: none;
    color: white;
    outline: none;
    padding: 5px 10px;
    font-size: 2.5rem; }
    .button.add-to-cart-button[data-disabled="true"] {
      background-color: gray;
      -webkit-box-shadow: 0 0 transparent;
      box-shadow: 0 0 transparent; }
      .button.add-to-cart-button[data-disabled="true"]:hover {
        position: relative;
        top: 0;
        -webkit-box-shadow: 0 0 transparent;
        box-shadow: 0 0px transparent; }
    .button.add-to-cart-button:hover {
      position: relative;
      top: -2px;
      background-color: #72d61d;
      -webkit-box-shadow: 0 7px #7A8BA3;
      box-shadow: 0 7px #7A8BA3; }
    .button.add-to-cart-button:active {
      position: relative;
      top: 3px;
      -webkit-box-shadow: 0 2px #7A8BA3;
      box-shadow: 0 2px #7A8BA3; }
  .button.fat-button {
    margin: 25px auto;
    border-radius: 2px;
    border: none;
    color: white;
    outline: none;
    padding: 5px 10px;
    font-size: 2.5rem; }
    .button.fat-button[data-disabled="true"], .button.fat-button:disabled {
      background-color: gray;
      -webkit-box-shadow: 0 0 transparent;
      box-shadow: 0 0 transparent; }
      .button.fat-button[data-disabled="true"]:hover, .button.fat-button:disabled:hover {
        position: relative;
        top: 0;
        -webkit-box-shadow: 0 0 transparent;
        box-shadow: 0 0px transparent; }
    .button.fat-button:hover {
      position: relative;
      top: -2px;
      -webkit-box-shadow: 0 7px #7A8BA3;
      box-shadow: 0 7px #7A8BA3; }
    .button.fat-button:active {
      position: relative;
      top: 3px;
      -webkit-box-shadow: 0 2px #7A8BA3;
      box-shadow: 0 2px #7A8BA3; }

.material-radio {
  display: block;
  padding-right: 20px;
  font-size: 1.8rem;
  line-height: 1.8rem;
  cursor: pointer;
  font-weight: 300;
  margin: 5px auto;
  font-family: Roboto, "Droid Sans", Arial, "Helvetica Neue", Helvetica, sans-serif; }
  .material-radio .disabled {
    color: #C0C0C0;
    border-color: #C0C0C0; }
  .material-radio:hover .inner {
    -webkit-transform: scale(0.5);
    -ms-transform: scale(0.5);
    transform: scale(0.5);
    opacity: .5; }
  .material-radio input {
    height: 1px;
    width: 1px;
    opacity: 0; }
    .material-radio input:checked + .outer .inner {
      -webkit-transform: scale(0.7);
      -ms-transform: scale(0.7);
      transform: scale(0.7);
      opacity: 1; }
    .material-radio input:checked + .outer {
      border: 3px solid #5569A4; }
    .material-radio input:focus + .outer .inner {
      -webkit-transform: scale(0.7);
      -ms-transform: scale(0.7);
      transform: scale(0.7);
      opacity: 1;
      background-color: #445382; }
  .material-radio .outer {
    height: 20px;
    width: 20px;
    display: inline-block;
    border: 3px solid #394694;
    border-radius: 50%;
    background-color: #fff; }
    .material-radio .outer.disabled {
      color: #C0C0C0;
      border-color: #C0C0C0; }
  .material-radio .inner {
    -webkit-transition: all 0.25s ease-in-out;
    -o-transition: all 0.25s ease-in-out;
    transition: all 0.25s ease-in-out;
    height: 16px;
    width: 16px;
    -webkit-transform: scale(0);
    -ms-transform: scale(0);
    transform: scale(0);
    display: block;
    margin: -1px;
    border-radius: 50%;
    background-color: #5569A4;
    opacity: 0; }

.subtle-zoom {
  -webkit-animation: subtle-zoom 0.5s ease-in-out forwards;
  animation: subtle-zoom 0.5s ease-in-out forwards; }

@-webkit-keyframes subtle-zoom {
  0% {
    -webkit-transform: scale(1, 1); }
  50% {
    -webkit-transform: scale(1.25, 1.25); }
  100% {
    -webkit-transform: scale(1, 1); } }

@keyframes subtle-zoom {
  0% {
    -webkit-transform: scale(1, 1);
    -ms-transform: scale(1, 1);
    transform: scale(1, 1); }
  50% {
    -webkit-transform: scale(1.25, 1.25);
    -ms-transform: scale(1.25, 1.25);
    transform: scale(1.25, 1.25); }
  100% {
    -webkit-transform: scale(1, 1);
    -ms-transform: scale(1, 1);
    transform: scale(1, 1); } }

/** Flat Input **/
.flat-input {
  color: #666666; }
  .flat-input .ui-selectmenu-button {
    min-width: 250px !important;
    margin-left: 85px;
    margin-top: 5px;
    border-radius: 0;
    color: white;
    background-color: #394694;
    outline: none;
    border: 1px solid #5569A4; }
    .flat-input .ui-selectmenu-button:hover {
      background-color: #4858b8; }
  .flat-input .input-row {
    position: relative;
    margin-top: 5px; }
    .flat-input .input-row button {
      position: absolute;
      bottom: 5px;
      right: 0; }
    .flat-input .input-row .constant-label {
      -webkit-transition: all 0.25s ease-in-out;
      -o-transition: all 0.25s ease-in-out;
      transition: all 0.25s ease-in-out;
      cursor: text;
      position: absolute;
      font-size: 2rem;
      font-weight: 300;
      display: block;
      top: 20%;
      left: 0;
      bottom: 0;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none; }
      .flat-input .input-row .constant-label[data-input-required]:before {
        content: '';
        display: block;
        position: absolute;
        width: 5px;
        height: 5px;
        background-color: #FF9B9B;
        border-radius: 10px;
        left: -10px;
        top: calc(50% - 5px); }
      .flat-input .input-row .constant-label[data-empty-input=false], .flat-input .input-row .constant-label[data-sibling-focus=true] {
        left: 0;
        top: -0.5rem;
        bottom: 50%;
        font-size: 1.5rem; }
      .flat-input .input-row .constant-label .label-subtext {
        display: none; }
  .flat-input input[type=text],
  .flat-input input[type=number],
  .flat-input input[type=password],
  .flat-input input[type=email],
  .flat-input input[type=tel],
  .flat-input textarea {
    border: none;
    color: black;
    border-bottom: 1px solid #9c9c9c;
    outline: none;
    width: 100%;
    font-size: 2rem;
    font-weight: 300;
    margin-top: 10px;
    padding-top: 5px;
    letter-spacing: 0.25rem; }
    .flat-input input[type=text]:focus,
    .flat-input input[type=number]:focus,
    .flat-input input[type=password]:focus,
    .flat-input input[type=email]:focus,
    .flat-input input[type=tel]:focus,
    .flat-input textarea:focus {
      background-color: #EEEEEF; }
      .flat-input input[type=text]:focus:valid,
      .flat-input input[type=number]:focus:valid,
      .flat-input input[type=password]:focus:valid,
      .flat-input input[type=email]:focus:valid,
      .flat-input input[type=tel]:focus:valid,
      .flat-input textarea:focus:valid {
        border-bottom: 2px solid #0DC691; }
      .flat-input input[type=text]:focus:invalid,
      .flat-input input[type=number]:focus:invalid,
      .flat-input input[type=password]:focus:invalid,
      .flat-input input[type=email]:focus:invalid,
      .flat-input input[type=tel]:focus:invalid,
      .flat-input textarea:focus:invalid {
        border-bottom: 2px solid #c6575c; }
    .flat-input input[type=text][data-empty-input=false]:valid,
    .flat-input input[type=number][data-empty-input=false]:valid,
    .flat-input input[type=password][data-empty-input=false]:valid,
    .flat-input input[type=email][data-empty-input=false]:valid,
    .flat-input input[type=tel][data-empty-input=false]:valid,
    .flat-input textarea[data-empty-input=false]:valid {
      border-bottom: 2px solid #0DC691; }
    .flat-input input[type=text][data-empty-input=false]:invalid,
    .flat-input input[type=number][data-empty-input=false]:invalid,
    .flat-input input[type=password][data-empty-input=false]:invalid,
    .flat-input input[type=email][data-empty-input=false]:invalid,
    .flat-input input[type=tel][data-empty-input=false]:invalid,
    .flat-input textarea[data-empty-input=false]:invalid {
      border-bottom: 2px solid #c6575c; }

.table-clean {
  margin-top: 6px;
  font-size: 1.5rem; }
  @media (min-width: 1200px) {
    .table-clean {
      margin-top: initial; } }
  .table-clean .clean-title {
    padding-top: 5px; }
  .table-clean tr > td {
    text-align: center; }
  .table-clean tr > td:first-of-type {
    word-break: keep-all;
    font-weight: 400;
    text-align: right; }

.fa-ban {
  color: #CE1E00; }

.ui-selectmenu-menu .ui-menu-item {
  font-weight: 400; }
  .ui-selectmenu-menu .ui-menu-item.ui-state-focus {
    background-color: #394694;
    color: white;
    border: 1px solid black; }

.dashed-break {
  border-top: 3px dashed #C0C0C0;
  margin: 15px 0; }

.slim-header .navbar {
  font-size: 1.5rem;
  color: white;
  background-color: #3a4692;
  border-radius: 0; }
  .slim-header .navbar.color-top {
    background-color: #923A3A; }
  .slim-header .navbar .navbar-nav {
    margin-top: 10px; }

@media all and (max-width: 1200px) {
  .slim-header .nav-text {
    display: none; } }

@media all and (max-width: 768px) {
  .slim-header .nav-text {
    display: inline-block; } }

.slim-header .dropdown li {
  font-size: 1.5rem; }

.slim-header .dropdown .glyphicon, .slim-header .dropdown-menu li .glyphicon {
  padding: 0 5px; }

@media all and (max-width: 768px) {
  .slim-header .dropdown-menu {
    background-color: #ffffff !important; } }

@media all and (max-width: 768px) {
  .slim-header .dropdown-menu li a {
    color: #e8e8e8; } }

.slim-header .dropdown-menu li > span {
  padding: 3px 20px; }
  @media all and (max-width: 768px) {
    .slim-header .dropdown-menu li > span {
      padding: 5px 15px 5px 25px; } }

.slim-header .navbar-collapse > form > .form-group {
  margin-top: 10px; }

.slim-header .navbar-brand {
  padding: 0 0 10px 0;
  max-width: 280px;
  margin: 10px;
  width: 300px;
  overflow: hidden; }
  .slim-header .navbar-brand img {
    max-width: 275px;
    padding-left: 10px; }
  @media all and (max-width: 890px) {
    .slim-header .navbar-brand {
      width: 60px; } }
  @media all and (max-width: 768px) {
    .slim-header .navbar-brand {
      width: 275px; } }

.slim-header #magnifying-glass {
  height: 34px; }

.slim-header #all-products-slideout a {
  color: #394694; }

.slim-header .nav > li > a {
  color: #e8e8e8; }
  .slim-header .nav > li > a a {
    color: #e8e8e8; }
  .slim-header .nav > li > a.open, .slim-header .nav > li > a:hover, .slim-header .nav > li > a:focus {
    color: #394694; }
    .slim-header .nav > li > a.open .nav-text, .slim-header .nav > li > a.open .glyphicon, .slim-header .nav > li > a.open a, .slim-header .nav > li > a:hover .nav-text, .slim-header .nav > li > a:hover .glyphicon, .slim-header .nav > li > a:hover a, .slim-header .nav > li > a:focus .nav-text, .slim-header .nav > li > a:focus .glyphicon, .slim-header .nav > li > a:focus a {
      color: #394694; }

.slim-header .dropdown, .slim-header .nav-text {
  color: #e8e8e8; }
  .slim-header .dropdown a, .slim-header .nav-text a {
    color: #e8e8e8; }
  .slim-header .dropdown.open, .slim-header .dropdown:hover, .slim-header .dropdown:focus, .slim-header .nav-text.open, .slim-header .nav-text:hover, .slim-header .nav-text:focus {
    color: #394694; }
    .slim-header .dropdown.open .nav-text, .slim-header .dropdown.open .glyphicon, .slim-header .dropdown.open a, .slim-header .dropdown:hover .nav-text, .slim-header .dropdown:hover .glyphicon, .slim-header .dropdown:hover a, .slim-header .dropdown:focus .nav-text, .slim-header .dropdown:focus .glyphicon, .slim-header .dropdown:focus a, .slim-header .nav-text.open .nav-text, .slim-header .nav-text.open .glyphicon, .slim-header .nav-text.open a, .slim-header .nav-text:hover .nav-text, .slim-header .nav-text:hover .glyphicon, .slim-header .nav-text:hover a, .slim-header .nav-text:focus .nav-text, .slim-header .nav-text:focus .glyphicon, .slim-header .nav-text:focus a {
      color: #394694; }

.slim-header #nav-on-sale:hover .nav-text {
  color: #394694; }

.slim-header .navbar-default .navbar-nav > li > a {
  color: #FFF; }
  .slim-header .navbar-default .navbar-nav > li > a:hover {
    color: red; }
  .slim-header .navbar-default .navbar-nav > li > a:focus {
    color: #e8e8e8; }

.slim-header #dropdown-total-price {
  color: #394694;
  padding: 3px 20px; }

.slim-header [class^="flaticon-"]:before, .slim-header [class*=" flaticon-"]:before, .slim-header .nav .glyphicon:not(.glyphicon-triangle-bottom):before {
  margin-left: 0;
  vertical-align: middle;
  font-size: 20px; }
  @media all and (max-width: 1200px) {
    .slim-header [class^="flaticon-"]:before, .slim-header [class*=" flaticon-"]:before, .slim-header .nav .glyphicon:not(.glyphicon-triangle-bottom):before {
      font-size: 26px; } }

.slim-header [class^="flaticon-"]:after, .slim-header [class*=" flaticon-"]:after, .slim-header .nav .glyphicon:not(.glyphicon-triangle-bottom):after {
  margin-left: 0; }

.slim-header #search-button-group ul {
  position: absolute; }

.slim-header #input-vproduct {
  min-width: 300px; }

.slim-header #mobile-cart-circle {
  display: none; }
  @media all and (min-width: 768px) {
    .slim-header #mobile-cart-circle {
      width: 30px;
      height: 30px;
      background-color: white;
      display: block;
      border-radius: 35px;
      position: absolute;
      top: -4px;
      left: 32px;
      border: 3px solid #394694;
      font-size: 1.6rem;
      text-align: center;
      line-height: 25px;
      font-weight: bold;
      color: #394694; } }
  @media all and (min-width: 1200px) {
    .slim-header #mobile-cart-circle {
      -webkit-transform: scale(0.7) translate(-9px, 9px);
          -ms-transform: scale(0.7) translate(-9px, 9px);
              transform: scale(0.7) translate(-9px, 9px); } }

.slim-header .bold {
  font-weight: bold; }

/*

    Slim Header

*/
.slim-header .navbar {
  font-size: 1.5rem;
  color: white;
  background-color: #3a4692;
  border-radius: 0; }
  .slim-header .navbar.color-top {
    background-color: #923A3A; }
  .slim-header .navbar .navbar-nav {
    margin-top: 10px; }

@media all and (max-width: 1200px) {
  .slim-header .nav-text {
    display: none; } }

@media all and (max-width: 768px) {
  .slim-header .nav-text {
    display: inline-block; } }

.slim-header .dropdown li {
  font-size: 1.5rem; }

.slim-header .dropdown .glyphicon, .slim-header .dropdown-menu li .glyphicon {
  padding: 0 5px; }

@media all and (max-width: 768px) {
  .slim-header .dropdown-menu {
    background-color: #ffffff !important; } }

@media all and (max-width: 768px) {
  .slim-header .dropdown-menu li a {
    color: #e8e8e8; } }

.slim-header .dropdown-menu li > span {
  padding: 3px 20px; }
  @media all and (max-width: 768px) {
    .slim-header .dropdown-menu li > span {
      padding: 5px 15px 5px 25px; } }

.slim-header .navbar-collapse > form > .form-group {
  margin-top: 10px; }

.slim-header .navbar-brand {
  padding: 5px 0 10px 0;
  max-width: 280px;
  margin: 10px;
  width: 300px;
  overflow: hidden; }
  .slim-header .navbar-brand img {
    max-width: 275px;
    padding-left: 10px; }
  @media all and (max-width: 768px) {
    .slim-header .navbar-brand {
      width: 275px; } }
  @media all and (max-width: 400px) {
    .slim-header .navbar-brand {
      width: 185px; }
      .slim-header .navbar-brand img {
        width: 185px; } }

.slim-header #magnifying-glass {
  height: 34px; }

.slim-header #all-products-slideout a {
  color: #394694; }

.slim-header .nav > li > a {
  color: #e8e8e8; }
  .slim-header .nav > li > a a {
    color: #e8e8e8; }
  .slim-header .nav > li > a.open, .slim-header .nav > li > a:hover, .slim-header .nav > li > a:focus {
    color: #394694; }
    .slim-header .nav > li > a.open .nav-text, .slim-header .nav > li > a.open .glyphicon, .slim-header .nav > li > a.open a, .slim-header .nav > li > a:hover .nav-text, .slim-header .nav > li > a:hover .glyphicon, .slim-header .nav > li > a:hover a, .slim-header .nav > li > a:focus .nav-text, .slim-header .nav > li > a:focus .glyphicon, .slim-header .nav > li > a:focus a {
      color: #394694; }

.slim-header .dropdown, .slim-header .nav-text {
  color: #e8e8e8; }
  .slim-header .dropdown a, .slim-header .nav-text a {
    color: #e8e8e8; }
  .slim-header .dropdown.open, .slim-header .dropdown:hover, .slim-header .dropdown:focus, .slim-header .nav-text.open, .slim-header .nav-text:hover, .slim-header .nav-text:focus {
    color: #394694; }
    .slim-header .dropdown.open .nav-text, .slim-header .dropdown.open .glyphicon, .slim-header .dropdown.open a, .slim-header .dropdown:hover .nav-text, .slim-header .dropdown:hover .glyphicon, .slim-header .dropdown:hover a, .slim-header .dropdown:focus .nav-text, .slim-header .dropdown:focus .glyphicon, .slim-header .dropdown:focus a, .slim-header .nav-text.open .nav-text, .slim-header .nav-text.open .glyphicon, .slim-header .nav-text.open a, .slim-header .nav-text:hover .nav-text, .slim-header .nav-text:hover .glyphicon, .slim-header .nav-text:hover a, .slim-header .nav-text:focus .nav-text, .slim-header .nav-text:focus .glyphicon, .slim-header .nav-text:focus a {
      color: #394694; }

.slim-header #nav-on-sale:hover .nav-text {
  color: #394694; }

.slim-header .navbar-default .navbar-nav > li > a {
  color: #FFF; }
  .slim-header .navbar-default .navbar-nav > li > a:hover {
    color: red; }
  .slim-header .navbar-default .navbar-nav > li > a:focus {
    color: #e8e8e8; }

.slim-header #dropdown-total-price {
  color: #394694;
  padding: 3px 20px; }

.slim-header [class^="flaticon-"]:before, .slim-header [class*=" flaticon-"]:before, .slim-header .nav .glyphicon:not(.glyphicon-triangle-bottom):before {
  margin-left: 0;
  vertical-align: middle;
  font-size: 20px; }
  @media all and (max-width: 1200px) {
    .slim-header [class^="flaticon-"]:before, .slim-header [class*=" flaticon-"]:before, .slim-header .nav .glyphicon:not(.glyphicon-triangle-bottom):before {
      font-size: 26px; } }

.slim-header [class^="flaticon-"]:after, .slim-header [class*=" flaticon-"]:after, .slim-header .nav .glyphicon:not(.glyphicon-triangle-bottom):after {
  margin-left: 0; }

.slim-header #search-button-group ul {
  position: absolute; }

.slim-header #input-vproduct {
  min-width: 300px; }

.slim-header #mobile-cart-circle {
  display: none; }
  @media all and (min-width: 768px) {
    .slim-header #mobile-cart-circle {
      width: 30px;
      height: 30px;
      background-color: white;
      display: block;
      border-radius: 35px;
      position: absolute;
      top: -4px;
      left: 32px;
      border: 3px solid #394694;
      font-size: 1.6rem;
      text-align: center;
      line-height: 25px;
      font-weight: bold;
      color: #394694; } }
  @media all and (min-width: 1200px) {
    .slim-header #mobile-cart-circle {
      -webkit-transform: scale(0.7) translate(-9px, 9px);
          -ms-transform: scale(0.7) translate(-9px, 9px);
              transform: scale(0.7) translate(-9px, 9px); } }

.slim-header .bold {
  font-weight: bold; }

#policy-info-container {
  border-bottom: 1px solid rgba(58, 70, 146, 0.18);
  background: white; }

#policy-info > a:hover {
  text-decoration: none !important; }

.mobile-contact-element {
  border-top: 1px solid rgba(250, 250, 250, 0.12);
  background-color: #394694;
  -webkit-transition: all 0.3s ease 0s;
  -o-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
  min-height: 35px;
  text-align: center; }
  .mobile-contact-element h4, .mobile-contact-element a, .mobile-contact-element a:focus {
    font-size: 2.3rem;
    color: #FFF !important;
    text-align: center;
    text-decoration: none;
    outline: none !important; }
  .mobile-contact-element:hover {
    opacity: 0.9; }
  .mobile-contact-element:active {
    opacity: 0.8; }

.modal-button {
  text-align: center;
  -webkit-transition: all 0.3s ease 0s;
  -o-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
  padding: 10px;
  color: #394694;
  font-size: 1.6rem; }
  .modal-button:hover {
    background-color: #EDEDED;
    cursor: pointer; }
  @media screen and (max-width: 767px) {
    .modal-button {
      font-size: 1.4rem !important; } }

@media screen and (max-width: 767px) {
  #mobile-contact {
    display: inline-block !important;
    width: 100%;
    background-color: #394694; } }

@media screen and (min-width: 768px) {
  .mobile-dialog {
    width: 700px; } }

#nav-cart a {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex; }
  #nav-cart a .nav-text {
    margin-top: -10px; }

/*

  Photo Frames

*/
#fs-photoframe-wrapper #fs-photoframe-tabs {
  margin-bottom: 0;
  list-style: none;
  padding: 0;
  text-align: center; }

#fs-photoframe-wrapper #fs-photoframe-wrapper, #fs-photoframe-wrapper .fs-price-row {
  text-align: center; }

#fs-photoframe-wrapper #fs-photoframe-wrapper {
  -webkit-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  padding-bottom: 330px; }
  #fs-photoframe-wrapper #fs-photoframe-wrapper form {
    max-width: 205px;
    display: inline-block;
    vertical-align: top; }
    #fs-photoframe-wrapper #fs-photoframe-wrapper form strong {
      display: block; }

#fs-photoframe-wrapper #fs-frame-choices {
  -webkit-transition: -webkit-transform 0.2s ease-in-out;
  -o-transition: -o-transform 0.2s ease-in-out;
  transition: -webkit-transform 0.2s ease-in-out;
  -o-transition: transform 0.2s ease-in-out;
  transition: transform 0.2s ease-in-out;
  transition: transform 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out;
  position: fixed;
  left: 0;
  bottom: 0;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
      user-select: none; }

@media (min-width: 992px) {
  #fs-photoframe-wrapper #fs-info-container {
    margin: 20px 0; } }

#fs-photoframe-wrapper #fs-info-container > h2 {
  margin: 0; }

#fs-photoframe-wrapper .fs-page-title {
  text-align: center;
  color: #394694; }

#fs-photoframe-wrapper #bg-wrapper {
  background-color: #E5E5E5;
  -webkit-box-shadow: inset 0 -20px 39px -33px black;
          box-shadow: inset 0 -20px 39px -33px black; }

#fs-photoframe-wrapper #unit-selection {
  font-size: 2rem; }

#fs-photoframe-wrapper #label-total {
  font-weight: bold; }

#fs-photoframe-wrapper .fs-content-main-heading {
  font-size: 4.4rem;
  margin: 0; }

#fs-photoframe-wrapper .fs-content-subheading {
  font-weight: 300;
  font-size: 2rem;
  color: #282828;
  margin: 0; }

#fs-photoframe-wrapper #fs-capture-box {
  white-space: nowrap;
  overflow-x: scroll;
  overflow-y: hidden;
  margin: 0 auto;
  background-color: #ffffff;
  display: block;
  height: 260px;
  width: 100%; }

#fs-photoframe-wrapper .fs-hide {
  display: none; }

#fs-photoframe-wrapper .fs-tab-list {
  background-color: #394694;
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

#fs-photoframe-wrapper .fs-tab {
  display: inline-block;
  padding: 5px 10px;
  color: white;
  cursor: pointer; }
  #fs-photoframe-wrapper .fs-tab:hover:not(.fs-tab-selected) {
    background-color: #5569A4; }

#fs-photoframe-wrapper .fs-tab-selected {
  background-color: #FFF;
  color: black;
  font-weight: bold;
  border-top: 2px solid #394694; }

#fs-photoframe-wrapper .fs-frame-thumb-container {
  display: inline-block;
  vertical-align: middle;
  -webkit-box-shadow: 0px 0px 6px 2px rgba(1, 1, 1, 0.05) inset, 0px 10px 10px rgba(1, 1, 1, 0.5);
          box-shadow: 0px 0px 6px 2px rgba(1, 1, 1, 0.05) inset, 0px 10px 10px rgba(1, 1, 1, 0.5);
  background-color: white;
  border-radius: 2px;
  margin: 20px 5px;
  text-align: center;
  -webkit-transition: all 0.1s ease-in-out;
  -o-transition: all 0.1s ease-in-out;
  transition: all 0.1s ease-in-out; }
  #fs-photoframe-wrapper .fs-frame-thumb-container:hover {
    -webkit-transform: scale(1.15);
        -ms-transform: scale(1.15);
            transform: scale(1.15); }

#fs-photoframe-wrapper #fs-thumb-selected {
  -webkit-transform: scale(1.15);
      -ms-transform: scale(1.15);
          transform: scale(1.15);
  -webkit-box-shadow: inset 0px 0px 0px 3px #394694;
  box-shadow: inset 0px 0px 0px 3px #394694; }

#fs-photoframe-wrapper .fs-frame-thumb-image {
  max-height: 170px;
  margin: 0 auto;
  padding: 5px 10px; }

#fs-photoframe-wrapper .fs-frame-nametag, #fs-photoframe-wrapper .fs-frame-widthtag {
  display: block;
  padding: 0 5px;
  text-align: center;
  font-family: Roboto, "Droid Sans", Arial, "Helvetica Neue", Helvetica, sans-serif;
  background-color: #394694;
  color: white;
  font-weight: bold; }

#fs-photoframe-wrapper .fs-frame-widthtag {
  font-weight: normal;
  font-size: 0.8em; }

#fs-photoframe-wrapper #fs-feature-box {
  display: inline-block;
  vertical-align: top; }
  #fs-photoframe-wrapper #fs-feature-box span {
    font-weight: bold;
    font-size: 100%; }

#fs-photoframe-wrapper #fs-cat_id, #fs-photoframe-wrapper option {
  width: 173px;
  height: 40px;
  background-color: #B5D7FD;
  font-weight: bold; }

#fs-photoframe-wrapper #canvas {
  max-width: 100%;
  max-height: 450px;
  display: block;
  margin: 0 auto;
  vertical-align: top;
  -webkit-box-shadow: 0 10px 20px -10px black;
          box-shadow: 0 10px 20px -10px black;
  font-family: 'Open sans', Arial, "Helvetica Neue", Helvetica, sans-serif;
  font-weight: 600;
  background-color: #fff; }

#fs-photoframe-wrapper #fs-canvas-container {
  margin: 20px auto; }

#fs-photoframe-wrapper #fs-price-table-container {
  position: relative;
  margin-top: 10px; }

#fs-photoframe-wrapper #fs-checkout-box {
  margin-top: 20px;
  font-size: 2.5rem; }
  #fs-photoframe-wrapper #fs-checkout-box > label {
    text-align: right; }

#fs-photoframe-wrapper #fs-price-table {
  font-family: Roboto, "Droid Sans", Arial, "Helvetica Neue", Helvetica, sans-serif;
  color: #5A5A5A; }

#fs-photoframe-wrapper #product-details {
  -webkit-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  margin-top: 45px;
  height: 0px;
  overflow: hidden;
  min-height: 200px; }
  #fs-photoframe-wrapper #product-details table {
    width: 100%; }
    #fs-photoframe-wrapper #product-details table tbody tr:nth-child(odd) {
      background-color: rgba(151, 165, 214, 0.25); }

#fs-photoframe-wrapper .detail-key {
  text-align: right;
  font-weight: bold; }

#fs-photoframe-wrapper .detail-value {
  text-align: left; }

#fs-photoframe-wrapper .fs-data-inch {
  font-weight: bold; }

#fs-photoframe-wrapper .fs-data-price {
  font-weight: bold; }

#fs-photoframe-wrapper #custom-framing-promotion {
  width: 90%;
  margin: 0 auto;
  padding: 10px;
  margin-top: 10px; }

#fs-photoframe-wrapper #tray-toggle {
  -webkit-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  display: inline-block;
  background-color: transparent;
  line-height: inherit;
  font-weight: bold;
  border-top: none;
  cursor: default;
  text-align: center;
  height: auto;
  font-size: 2.25rem;
  position: relative;
  bottom: 0; }
  #fs-photoframe-wrapper #tray-toggle > span {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    cursor: pointer;
    position: relative;
    padding: 0 10px;
    background-color: #3A4692;
    -webkit-box-shadow: 0 5px #7A8BA3;
    box-shadow: 0 5px #7A8BA3;
    border-radius: 2px;
    border: none;
    color: white;
    outline: none;
    bottom: 4px; }
    #fs-photoframe-wrapper #tray-toggle > span:hover {
      bottom: 6px;
      -webkit-box-shadow: 0 6px #7A8BA3;
      box-shadow: 0 6px #7A8BA3; }
    #fs-photoframe-wrapper #tray-toggle > span:active {
      bottom: -1px;
      -webkit-box-shadow: 0 2px #7A8BA3;
      box-shadow: 0 2px #7A8BA3; }

#fs-photoframe-wrapper #guide-button {
  text-align: center;
  margin: 10px auto;
  display: block; }

.fs-dropdown {
  cursor: pointer;
  width: 90%;
  margin: 0 auto;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none; }

.fs-list {
  margin: 0;
  padding: 0;
  position: absolute;
  width: inherit;
  background-color: #97A5D6;
  max-height: 450px;
  overflow-y: scroll;
  z-index: 1; }
  @media all and (max-width: 768px) {
    .fs-list {
      max-height: 235px; } }

.fs-dropdown-option, .fs-dropdown-header {
  font-size: 1.5rem;
  display: block;
  width: 100%;
  padding: 5px 20px;
  margin: 1px 0;
  background-color: #e8e8e8;
  color: #394694;
  font-family: "Helvetica Neue", Helvetica, sans-serif;
  white-space: nowrap;
  overflow-x: hidden;
  -o-text-overflow: ellipsis;
     text-overflow: ellipsis; }

.fs-dropdown-header {
  position: relative;
  background-color: #394694;
  color: #e8e8e8;
  text-align: center; }
  .fs-dropdown-header:hover {
    background-color: #5569A4; }

.fs-dropdown-option:hover {
  background-color: #5569A4;
  color: #e8e8e8; }

#fs-dropdown-selected {
  position: relative;
  font-weight: bold;
  background-color: #5569A4;
  color: #e8e8e8; }

.fs-dropdown-header:before {
  position: absolute;
  left: 5px;
  top: calc(50% - 8px);
  content: '';
  display: inline-block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 15px 0 15px 16px;
  border-color: transparent transparent transparent #e8e8e8; }

.fs-dropdown-header:before {
  border-width: 16px 15px 0px 15px;
  border-color: #e8e8e8 transparent transparent transparent; }

#tab-dimensions i.fa {
  padding-right: 5px;
  color: #5569A4; }

#tab-dimensions .card-title {
  display: inline-block;
  margin-bottom: 0; }

#tab-dimensions input[type=number] {
  max-width: 80px;
  text-align: center; }

#tab-dimensions .material-radio {
  padding: 0 5px;
  display: inline-block; }

#tab-dimensions label[for=dimensions-width], #tab-dimensions label[for=dimensions-height] {
  margin-top: 10px;
  padding: 0 10px;
  font-weight: 400; }

#tab-dimensions .restriction-message {
  margin: 5px;
  margin-bottom: 10px;
  padding: 5px; }
  #tab-dimensions .restriction-message > p {
    margin-top: 5px;
    margin-bottom: 0; }

#tab-dimensions #dimension-restriction-message {
  padding: 8px;
  background-color: #C1DEFF;
  border: 1px solid rgba(139, 160, 221, 0.56);
  border-radius: 2px;
  display: inline-block; }

#tab-dimensions #unit-choice-radio {
  display: inline-block; }

#tab-dimensions #dimensions-unit-selection > fieldset {
  padding-left: 20px;
  display: inline-block;
  text-align: center;
  margin: 0 auto; }
  #tab-dimensions #dimensions-unit-selection > fieldset > label {
    display: inline-block; }

#tab-dimensions .spacer {
  margin-top: 13px; }

#tab-dimensions .glyphicon-ok {
  color: green; }

#tab-dimensions .glyphicon-remove {
  color: #ae0000; }

#image-details {
  text-align: center !important;
  margin-bottom: 5px; }
  #image-details > * {
    vertical-align: middle; }

#remove-image {
  cursor: pointer;
  font-size: 2rem; }
  #remove-image i.fa {
    color: #D80808; }

#upload .fa-upload {
  font-size: 5rem;
  display: block;
  margin: 5px; }

#tab-mats *:disabled {
  color: #858585; }

#tab-mats label {
  vertical-align: bottom; }

#tab-mats #fieldset-for-uniform > label {
  display: inline-block; }

#tab-mats #variable-label {
  display: inline-block; }

#tab-mats label[for=number-of-mats] {
  padding-top: 20px;
  display: block;
  margin: 0 auto;
  text-align: center; }

#tab-mats label[for=number-of-mats] > label, #tab-mats #fieldset-matboard-1 > label {
  display: inline-block; }

#tab-mats #matboard-form input[type=number] {
  max-width: 55px; }

#tab-mats .flat-label {
  padding: 10px;
  background-color: #e5e5e5;
  cursor: pointer; }
  #tab-mats .flat-label input {
    display: none; }
  #tab-mats .flat-label:not(.selected-flat-label):hover {
    background-color: #c7c7c7; }
  #tab-mats .flat-label.selected-flat-label {
    background-color: #394694;
    color: white; }

#tab-mats fieldset:disabled.flat-label {
  background-color: #c7c7c7;
  color: #858585; }

#tab-mats .select-icon:before {
  -webkit-transition: all 1s ease-in-out;
  -o-transition: all 1s ease-in-out;
  transition: all 1s ease-in-out;
  font-weight: bold;
  font-size: 3rem;
  line-height: 40px;
  padding-left: 3px;
  margin: 0;
  position: absolute; }

#tab-mats .inline-block {
  display: inline-block; }

#tab-mats #fieldset-matboard-1.inline-block {
  margin-left: 10px; }

#tab-mats #fieldset-matboard-2 {
  margin-top: 10px; }

#tab-mats label[for=matboard-2-width] {
  margin-top: 10px; }

#tab-mats .matboard-grid {
  padding: 10px;
  font-size: 0; }

#tab-mats .matboard-square {
  width: 40px;
  height: 40px;
  border: 1px solid #cbcbcb;
  display: inline-block;
  margin: 1px;
  cursor: pointer;
  border-radius: 20px; }
  #tab-mats .matboard-square:not([data-selected=true]):hover {
    -webkit-box-shadow: inset 0 0 0px 2px #f2ff00, inset 0 0 0 3px #12133e;
    box-shadow: inset 0 0 0px 2px #ffff0f, inset 0 0 0 3px #12133e; }

#tab-mats .matboard-square[data-selected=true] .select-icon:before {
  opacity: 1; }

#tab-mats [data-type="unit-label"] {
  font-weight: bold; }

@-webkit-keyframes card-flip {
  from {
    -webkit-transform: rotateY(0deg); }
  to {
    -webkit-transform: rotateY(180deg); } }

@keyframes card-flip {
  from {
    -webkit-transform: rotateY(0deg);
    -ms-transform: rotateY(0deg);
    transform: rotateY(0deg); }
  to {
    -webkit-transform: rotateY(180deg);
    -ms-transform: rotateY(180deg);
    transform: rotateY(180deg); } }

#tab-glass-and-backing .list-group-item {
  padding: 1px 5px;
  border: 0; }
  #tab-glass-and-backing .list-group-item:first-of-type {
    margin-top: 10px; }

#tab-glass-and-backing .glass-info:not([data-info-id=clear-glass]) {
  display: none; }

#tab-glass-and-backing .backing-info:not([data-info-id=MDF]) {
  display: none; }

#tab-glass-and-backing .glyphicon-remove {
  color: #7D1200;
  padding-right: 10px; }

#tab-glass-and-backing .glyphicon-ok {
  color: #79b473;
  padding-right: 10px; }

#tab-glass-and-backing h4 {
  padding: 5px;
  border-bottom: 2px solid black; }

#tab-frames #frame-filter-label {
  padding-top: 10px;
  -webkit-align-self: center;
      -ms-flex-item-align: center;
          align-self: center;
  text-align: right; }
  #tab-frames #frame-filter-label * {
    font-weight: 300;
    font-family: "Droid Sans", Arial, "Helvetica Neue", Helvetica, sans-serif; }
  #tab-frames #frame-filter-label > span {
    padding-right: 15px; }
  #tab-frames #frame-filter-label > input {
    max-width: 90px; }

#tab-frames #filter-input-box-group input, #tab-frames #filter-input-box-group select {
  width: 100%; }

#tab-frames #frame-filter-inputs {
  margin-bottom: 5px; }
  #tab-frames #frame-filter-inputs > * {
    margin-top: 5px; }

#tab-frames #thumb-selected {
  -webkit-transform: scale(1.15);
      -ms-transform: scale(1.15);
          transform: scale(1.15);
  -webkit-box-shadow: inset 0px 0px 0px 3px #394694;
  box-shadow: inset 0px 0px 0px 3px #394694; }

#tab-fillets p {
  margin: 0; }

#tab-fillets #fillet-label-container {
  margin: 0 auto;
  display: block;
  text-align: center;
  padding-top: 15px; }
  #tab-fillets #fillet-label-container > label {
    display: inline-block; }

#tab-fillets #fillet-no-mat-warning {
  text-align: center;
  padding: 5px; }
  #tab-fillets #fillet-no-mat-warning a {
    font-weight: bold; }
  #tab-fillets #fillet-no-mat-warning .glyphicon {
    font-size: 2rem;
    vertical-align: middle;
    padding: 5px;
    color: #D30909; }
  #tab-fillets #fillet-no-mat-warning span {
    vertical-align: middle; }

#slips-label-container {
  margin: 0 auto;
  display: block;
  text-align: center;
  padding-top: 15px; }
  #slips-label-container > label {
    display: inline-block; }

#tab-printing .list-group-item {
  padding: 1px 5px;
  border: 0; }
  #tab-printing .list-group-item:first-of-type {
    margin-top: 10px; }
  #tab-printing .list-group-item .glyphicon, #tab-printing .list-group-item .fa {
    padding-right: 10px; }
  #tab-printing .list-group-item .glyphicon-ok {
    color: #79b473; }

#tab-printing .printing-info:not([data-info-id=none]) {
  display: none; }

#tab-printing .backing-info:not([data-info-id=MDF]) {
  display: none; }

#tab-printing h4 {
  padding: 5px;
  border-bottom: 2px solid black; }

.ui-tabs-anchor.tour-step-backdrop {
  background-color: #394694; }

#custom-framing-wrapper #frame-details {
  margin-top: 15px;
  margin-bottom: 15px; }
  #custom-framing-wrapper #frame-details table {
    width: 100%; }
  #custom-framing-wrapper #frame-details thead {
    font-size: 2rem; }
  #custom-framing-wrapper #frame-details tbody tr:nth-of-type(odd) {
    background-color: rgba(151, 165, 214, 0.25); }

#custom-framing-wrapper #fs-product-quantity {
  margin-top: 0;
  padding-top: 0;
  padding-bottom: 5px; }
  @media (min-width: 1200px) {
    #custom-framing-wrapper #fs-product-quantity {
      margin-bottom: 15px; } }

#custom-framing-wrapper #fs-photoframe-tabs {
  margin-bottom: 0;
  list-style: none;
  padding: 0;
  text-align: center; }

#custom-framing-wrapper #fs-photoframe-wrapper, #custom-framing-wrapper .fs-price-row {
  text-align: center; }

#custom-framing-wrapper #fs-photoframe-wrapper {
  -webkit-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  padding-bottom: 330px; }
  #custom-framing-wrapper #fs-photoframe-wrapper form {
    max-width: 205px;
    display: inline-block;
    vertical-align: top; }
    #custom-framing-wrapper #fs-photoframe-wrapper form strong {
      display: block; }

#custom-framing-wrapper #fs-frame-choices {
  -webkit-transition: -webkit-transform 0.2s ease-in-out;
  -o-transition: -o-transform 0.2s ease-in-out;
  transition: -webkit-transform 0.2s ease-in-out;
  -o-transition: transform 0.2s ease-in-out;
  transition: transform 0.2s ease-in-out;
  transition: transform 0.2s ease-in-out, -webkit-transform 0.2s ease-in-out;
  position: fixed;
  left: 0;
  bottom: 0;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
      user-select: none; }

@media (min-width: 992px) {
  #custom-framing-wrapper #fs-info-container {
    margin: 20px 0; } }

#custom-framing-wrapper #fs-info-container > h2 {
  margin: 0; }

#custom-framing-wrapper .fs-page-title {
  text-align: center;
  color: #394694;
  margin-bottom: 20px; }

#custom-framing-wrapper #bg-wrapper {
  background-color: #E5E5E5; }

#custom-framing-wrapper #unit-selection {
  font-size: 2rem; }

#custom-framing-wrapper #label-total {
  font-weight: 400; }

#custom-framing-wrapper #fs-capture-box {
  white-space: nowrap;
  overflow-x: scroll;
  overflow-y: hidden;
  margin: 0 auto;
  background-color: #ffffff;
  display: block;
  height: 260px;
  width: 100%; }

#custom-framing-wrapper .fs-hide {
  display: none; }

#custom-framing-wrapper .fs-tab-list {
  background-color: #394694;
  -webkit-box-sizing: border-box;
          box-sizing: border-box; }

#custom-framing-wrapper .fs-tab {
  display: inline-block;
  padding: 5px 10px;
  color: white;
  cursor: pointer; }
  #custom-framing-wrapper .fs-tab:hover:not(.fs-tab-selected) {
    background-color: #5569A4; }

#custom-framing-wrapper .fs-tab-selected {
  background-color: #FFF;
  color: black;
  font-weight: bold;
  border-top: 2px solid #394694; }

#custom-framing-wrapper #canvas {
  max-width: 90%;
  max-height: 600px;
  display: block;
  margin: 0 auto;
  vertical-align: top;
  -webkit-box-shadow: 0 10px 20px -10px black;
          box-shadow: 0 10px 20px -10px black;
  font-family: 'Open sans', Arial, "Helvetica Neue", Helvetica, sans-serif;
  font-weight: 600;
  background-color: #fff; }

#custom-framing-wrapper #canvas-container {
  margin: 20px auto; }

#custom-framing-wrapper #fs-price-table-container {
  position: relative;
  margin-top: 10px; }

#custom-framing-wrapper #fs-checkout-box {
  margin-top: 20px;
  font-size: 1.75rem; }
  #custom-framing-wrapper #fs-checkout-box #checkout-total {
    font-size: 2.5rem; }

#custom-framing-wrapper #fs-price-table {
  font-family: Roboto, "Droid Sans", Arial, "Helvetica Neue", Helvetica, sans-serif;
  color: #5A5A5A; }

#custom-framing-wrapper #product-details {
  -webkit-transition: all 0.2s ease-in-out;
  -o-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  margin-top: 45px;
  height: 0px;
  overflow: hidden;
  min-height: 200px; }
  #custom-framing-wrapper #product-details table {
    width: 100%; }
    #custom-framing-wrapper #product-details table tbody tr:nth-child(odd) {
      background-color: rgba(151, 165, 214, 0.25); }

#custom-framing-wrapper .detail-key {
  text-align: right;
  font-weight: bold; }

#custom-framing-wrapper .detail-value {
  text-align: left; }

#custom-framing-wrapper #guide-button {
  text-align: center;
  margin: 10px auto;
  display: block; }

#custom-framing-wrapper #guide-me {
  margin-bottom: 20px; }

#custom-framing-wrapper #fs-product-quantity {
  max-width: 75px; }

#custom-framing-wrapper #fs-addToCartButton {
  width: 100%;
  display: block;
  margin: 0; }

#custom-framing-wrapper .dimension-alerts {
  font-size: 1.5rem; }
  @media (max-width: 767px) {
    #custom-framing-wrapper .dimension-alerts {
      margin-top: 10px; } }

#custom-framing-wrapper .unstable-frame {
  opacity: 0.2; }

#custom-framing-wrapper .unstable-frame-hidden {
  display: none !important; }

#custom-framing-wrapper .frame-thumb-container {
  display: inline-block;
  vertical-align: middle;
  -webkit-box-shadow: 0px 0px 6px 2px rgba(1, 1, 1, 0.05) inset, 0px 10px 10px rgba(1, 1, 1, 0.5);
          box-shadow: 0px 0px 6px 2px rgba(1, 1, 1, 0.05) inset, 0px 10px 10px rgba(1, 1, 1, 0.5);
  background-color: white;
  border-radius: 2px;
  margin: 20px 5px;
  text-align: center;
  -webkit-transform-style: preserve-3d;
  transform-style: preserve-3d;
  -webkit-transition: all 0.1s ease-in-out;
  -o-transition: all 0.1s ease-in-out;
  transition: all 0.1s ease-in-out; }
  #custom-framing-wrapper .frame-thumb-container:hover {
    -webkit-transform: scale(1.15);
        -ms-transform: scale(1.15);
            transform: scale(1.15); }
  #custom-framing-wrapper .frame-thumb-container .thumb-selected {
    -webkit-transform: scale(1.15);
        -ms-transform: scale(1.15);
            transform: scale(1.15);
    -webkit-box-shadow: inset 0 0 0 3px #394694;
    box-shadow: inset 0 0 0 3px #394694; }
  #custom-framing-wrapper .frame-thumb-container .frame-thumb-image {
    max-height: 150px;
    margin: 0 auto;
    padding: 5px 10px; }
  #custom-framing-wrapper .frame-thumb-container .frame-nametag, #custom-framing-wrapper .frame-thumb-container .frame-widthtag, #custom-framing-wrapper .frame-thumb-container .frame-ratetag {
    display: block;
    padding: 0 5px;
    text-align: center;
    font-family: Roboto, "Droid Sans", Arial, "Helvetica Neue", Helvetica, sans-serif;
    background-color: #394694;
    color: white;
    font-weight: 300; }
  #custom-framing-wrapper .frame-thumb-container .frame-ratetag {
    background-color: #5569A4; }
  #custom-framing-wrapper .frame-thumb-container .tag-container {
    background-color: #394694; }
  #custom-framing-wrapper .frame-thumb-container .fs-frame-widthtag {
    font-weight: 300;
    font-size: 0.8em; }

#custom-framing-wrapper .frame-selection-container {
  white-space: nowrap;
  overflow-x: scroll;
  overflow-y: hidden;
  margin: 0 auto;
  background-color: #ffffff;
  display: block;
  height: 260px;
  width: 100%; }

#custom-framing-wrapper #frame-category-tabs a {
  font-size: 1.5rem; }

#custom-framing-wrapper #frame-category-tabs > ul {
  background-color: #6477af; }
  #custom-framing-wrapper #frame-category-tabs > ul li:hover {
    background-color: #97A5D6; }

#custom-framing-wrapper .modal-body {
  overflow: inherit;
  height: 80%; }

@media all and (min-width: 768px) {
  #custom-framing-wrapper .modal-dialog {
    width: 60%; } }

#custom-framing-wrapper #summary-glass, #custom-framing-wrapper #summary-backing {
  text-transform: capitalize; }

#canvas-preview-cloned {
  width: auto;
  max-width: 100%;
  max-height: 95vh;
  margin: 25px auto;
  display: block; }

#preset-size-list {
  font-size: 2rem; }

#footer {
  background-color: #3A4692; }
  #footer * {
    color: white; }
  #footer #social-icons .fa {
    font-size: 3.5rem;
    padding-right: 7px; }
  #footer #geotrust-link img {
    max-width: 100% !important; }
  #footer h3 {
    border-bottom: 1px solid white; }
  #footer a:hover, #footer .fa:hover {
    color: #0DC691;
    text-decoration: none; }
  #footer #email-link {
    white-space: pre-wrap;
    /* css-3 */
    white-space: -moz-pre-wrap;
    /* Mozilla, since 1999 */
    white-space: -o-pre-wrap;
    /* Opera 7 */
    word-wrap: break-word;
    /* Internet Explorer 5.5+ */ }

#index-page a:hover {
  text-decoration: none; }

#index-page h3 {
  margin-top: 10px;
  font-size: 20px;
  text-align: center;
  color: white;
  background-color: #3A4692;
  padding: 10px; }
  #index-page h3:hover {
    background-color: #97A5D3; }

#index-page .category-thumb {
  height: 300px;
  overflow: hidden;
  position: relative; }
  #index-page .category-thumb .btn {
    margin: 5px; }
  #index-page .category-thumb .category-thumb-title {
    white-space: nowrap; }

#hhhhhh {
  color: #e8e8e8;
  background-color: #66c01a; }
  #hhhhhh > #hasjdkasdj {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column; }

.category-header {
  border-bottom: 1px solid rgba(58, 70, 146, 0.18);
  font-family: Raleway, "Droid Sans", Arial, "Helvetica Neue", Helvetica, sans-serif;
  -webkit-transition: all 0.15s;
  -o-transition: all 0.15s;
  transition: all 0.15s; }
  .category-header .open > a {
    background-color: #394694 !important;
    color: white !important; }
  .category-header__root-list {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    padding: 0;
    margin: 0; }
    .category-header__root-list li a {
      display: inline-block;
      padding: 12px;
      border-radius: 0;
      color: black;
      font-size: 2rem;
      font-weight: 400;
      width: 100%; }
      .category-header__root-list li a:hover {
        background-color: #394694;
        color: white;
        text-decoration: none; }
      .category-header__root-list li a:focus {
        background-color: #394694;
        color: white; }
    @media screen and (max-width: 1200px) {
      .category-header__root-list > li > a {
        font-size: 1.5rem !important; }
      .category-header__root-list li a {
        padding: 6px !important; } }
  .category-header__root-item {
    display: inline-block;
    float: none !important;
    position: static !important; }
    .category-header__root-item--on-sale {
      background-color: #c80000;
      color: white !important; }
  .category-header__dropdown {
    min-width: 700px;
    width: 70%;
    left: 0;
    right: 0;
    margin: 0 auto;
    border-radius: 0; }
  .category-header__menu-column {
    display: -webkit-inline-box;
    display: -webkit-inline-flex;
    display: -ms-inline-flexbox;
    display: inline-flex; }
  .category-header__menu-heading {
    font-weight: 500;
    padding: 10px;
    font-size: 2rem;
    display: block;
    border-bottom: 1px solid #EAEAEA; }
  .category-header__menu-item {
    display: block;
    color: black; }
    .category-header__menu-item:not(:last-child) {
      border-bottom: 1px solid #EAEAEA; }
    .category-header__menu-item > a {
      font-size: 1.7rem !important; }
      @media screen and (max-width: 1200px) {
        .category-header__menu-item > a {
          font-size: 1.4rem !important; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWVzaG9wLXcuY3NzIiwic291cmNlcyI6WyJmcmFtZXNob3Atdy5zY3NzIiwiYm91cmJvbi9fYm91cmJvbi5zY3NzIiwiYm91cmJvbi9zZXR0aW5ncy9fcHJlZml4ZXIuc2NzcyIsImJvdXJib24vc2V0dGluZ3MvX3B4LXRvLWVtLnNjc3MiLCJib3VyYm9uL3NldHRpbmdzL19hc3NldC1waXBlbGluZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2Fzc2lnbi1pbnB1dHMuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19jb250YWlucy5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2NvbnRhaW5zLWZhbHN5LnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9faXMtbGVuZ3RoLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9faXMtbGlnaHQuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19pcy1udW1iZXIuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19pcy1zaXplLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fcHgtdG8tZW0uc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19weC10by1yZW0uc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19zaGFkZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3N0cmlwLXVuaXRzLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fdGludC5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3RyYW5zaXRpb24tcHJvcGVydHktbmFtZS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3VucGFjay5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX21vZHVsYXItc2NhbGUuc2NzcyIsImJvdXJib24vaGVscGVycy9fY29udmVydC11bml0cy5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19kaXJlY3Rpb25hbC12YWx1ZXMuc2NzcyIsImJvdXJib24vaGVscGVycy9fZm9udC1zb3VyY2UtZGVjbGFyYXRpb24uc2NzcyIsImJvdXJib24vaGVscGVycy9fZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19saW5lYXItYW5nbGUtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1ncmFkaWVudC1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtYXJnLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19yYWRpYWwtZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3JlbmRlci1ncmFkaWVudHMuc2NzcyIsImJvdXJib24vaGVscGVycy9fc2hhcGUtc2l6ZS1zdHJpcHBlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19zdHItdG8tbnVtLnNjc3MiLCJib3VyYm9uL2NzczMvX2FuaW1hdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL19hcHBlYXJhbmNlLnNjc3MiLCJib3VyYm9uL2NzczMvX2JhY2tmYWNlLXZpc2liaWxpdHkuc2NzcyIsImJvdXJib24vY3NzMy9fYmFja2dyb3VuZC5zY3NzIiwiYm91cmJvbi9jc3MzL19iYWNrZ3JvdW5kLWltYWdlLnNjc3MiLCJib3VyYm9uL2NzczMvX2JvcmRlci1pbWFnZS5zY3NzIiwiYm91cmJvbi9jc3MzL19jYWxjLnNjc3MiLCJib3VyYm9uL2NzczMvX2NvbHVtbnMuc2NzcyIsImJvdXJib24vY3NzMy9fZmlsdGVyLnNjc3MiLCJib3VyYm9uL2NzczMvX2ZsZXgtYm94LnNjc3MiLCJib3VyYm9uL2NzczMvX2ZvbnQtZmFjZS5zY3NzIiwiYm91cmJvbi9jc3MzL19mb250LWZlYXR1cmUtc2V0dGluZ3Muc2NzcyIsImJvdXJib24vY3NzMy9faGlkcGktbWVkaWEtcXVlcnkuc2NzcyIsImJvdXJib24vY3NzMy9faHlwaGVucy5zY3NzIiwiYm91cmJvbi9jc3MzL19pbWFnZS1yZW5kZXJpbmcuc2NzcyIsImJvdXJib24vY3NzMy9fa2V5ZnJhbWVzLnNjc3MiLCJib3VyYm9uL2NzczMvX2xpbmVhci1ncmFkaWVudC5zY3NzIiwiYm91cmJvbi9jc3MzL19wZXJzcGVjdGl2ZS5zY3NzIiwiYm91cmJvbi9jc3MzL19wbGFjZWhvbGRlci5zY3NzIiwiYm91cmJvbi9jc3MzL19yYWRpYWwtZ3JhZGllbnQuc2NzcyIsImJvdXJib24vY3NzMy9fc2VsZWN0aW9uLnNjc3MiLCJib3VyYm9uL2NzczMvX3RleHQtZGVjb3JhdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL190cmFuc2Zvcm0uc2NzcyIsImJvdXJib24vY3NzMy9fdHJhbnNpdGlvbi5zY3NzIiwiYm91cmJvbi9jc3MzL191c2VyLXNlbGVjdC5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2JvcmRlci1jb2xvci5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2JvcmRlci1yYWRpdXMuc2NzcyIsImJvdXJib24vYWRkb25zL19ib3JkZXItc3R5bGUuc2NzcyIsImJvdXJib24vYWRkb25zL19ib3JkZXItd2lkdGguc2NzcyIsImJvdXJib24vYWRkb25zL19idXR0b25zLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fY2xlYXJmaXguc2NzcyIsImJvdXJib24vYWRkb25zL19lbGxpcHNpcy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2ZvbnQtc3RhY2tzLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9faGlkZS10ZXh0LnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fbWFyZ2luLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fcGFkZGluZy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3Bvc2l0aW9uLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fcHJlZml4ZXIuc2NzcyIsImJvdXJib24vYWRkb25zL19yZXRpbmEtaW1hZ2Uuc2NzcyIsImJvdXJib24vYWRkb25zL19zaXplLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fdGV4dC1pbnB1dHMuc2NzcyIsImJvdXJib24vYWRkb25zL190aW1pbmctZnVuY3Rpb25zLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fdHJpYW5nbGUuc2NzcyIsImJvdXJib24vYWRkb25zL193b3JkLXdyYXAuc2NzcyIsImJvdXJib24vX2JvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZy5zY3NzIiwiX2NvbG91cnMuc2NzcyIsImZyYW1lc2hvcC9fYnJlYWtwb2ludHMuc2NzcyIsImZyYW1lc2hvcC9fZ3VpRWxlbWVudHMuc2NzcyIsImZyYW1lc2hvcC9faGVhZGVyLnNjc3MiLCJmcmFtZXNob3AvX3Bob3RvZnJhbWVzLnNjc3MiLCJmcmFtZXNob3AvX2N1c3RvbURyb3Bkb3ducy5zY3NzIiwiZnJhbWVzaG9wL19jdXN0b21GcmFtaW5nLnNjc3MiLCJmcmFtZXNob3AvdGFicy9fdGFicy5zY3NzIiwiZnJhbWVzaG9wL3RhYnMvX2RpbWVuc2lvbnMuc2NzcyIsImZyYW1lc2hvcC90YWJzL19tYXRzLnNjc3MiLCJmcmFtZXNob3AvdGFicy9fZ2xhc3MtYW5kLWJhY2tpbmcuc2NzcyIsImZyYW1lc2hvcC90YWJzL19mcmFtZXMuc2NzcyIsImZyYW1lc2hvcC90YWJzL19maWxsZXRzLnNjc3MiLCJmcmFtZXNob3AvdGFicy9fc2xpcHMuc2NzcyIsImZyYW1lc2hvcC90YWJzL19wcmludGluZy5zY3NzIiwiZnJhbWVzaG9wL19mb290ZXIuc2NzcyIsImZyYW1lc2hvcC9faW5kZXguc2NzcyIsImZyYW1lc2hvcC9fY2F0ZWdvcnlfaGVhZGVyLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLy8vLy8vLy8vLy8vLy8vXG4vLyAgQm91cmJvbiAgLy9cbi8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImJvdXJib24vYm91cmJvblwiO1xuLy8vLy8vLy8vLy8vLy8vXG4vLyBWYXJpYWJsZXMgLy9cbi8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImNvbG91cnNcIjtcblxuLy8vLy8vLy8vLy8vXG4vLyBNaXhpbnMgLy9cbi8vLy8vLy8vLy8vL1xuXG5AbWl4aW4gUm9ib3RvU2xpbSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIFwiRHJvaWQgU2Fuc1wiLCBBcmlhbCwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5cbioge1xuICAvLyBFbmFibGUgbW9tZW50dW0gc2Nyb2xsaW5nXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuLnRleHQtc2xlZWsge1xuICBAaW5jbHVkZSBSb2JvdG9TbGltKCk7XG5cbiAgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gIH1cbn1cblxuLmgxLCAuaDIsIC5oMywgLmg0LCAuaDUsIC5oNiwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5cbkBtaXhpbiBib3gtc2hhZG93KCRsZWZ0OiAwLCAkdG9wOiAycHgsICRibHVyOiAycHgsICRjb2xvcjogIzAwMCwgJGluc2V0OiBcIlwiKSB7XG4gIC13ZWJraXQtYm94LXNoYWRvdzogJGxlZnQgJHRvcCAkYmx1ciAkY29sb3IgI3tpbnNldH07XG4gIC1tb3otYm94LXNoYWRvdzogJGxlZnQgJHRvcCAkYmx1ciAkY29sb3IgI3tpbnNldH07XG4gIGJveC1zaGFkb3c6ICRsZWZ0ICR0b3AgJGJsdXIgJGNvbG9yICN7aW5zZXR9O1xufVxuXG4uY29sLWFsaWduLW1pZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZmxvYXQ6IG5vbmU7XG59XG5cbi50cnVuY2F0ZSB7XG4gIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgbWF4LXdpZHRoOiAxNzBweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICB9XG59XG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gICAgSEVBREVSICAgIC8vXG4vLy8vLy8vLy8vLy8vLy8vLy9cblxuI2hlYWRlci1jb250YWluZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbn1cblxuI2FsbC1wcm9kdWN0cy1zbGlkZW91dCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG5cbiAgQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIGRpdiB7XG4gICAgQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIHBhZGRpbmc6IGluaGVyaXQ7XG4gICAgICBtYXJnaW46IGluaGVyaXQ7XG4gICAgfVxuICB9XG5cbiAgaDMge1xuICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG5cbiAgICBAbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkb2ZmLXdoaXRlO1xuXG4gICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNDM0NCRTc7XG4gICAgICBmb250LXdlaWdodDogMjAwO1xuICAgICAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJEcm9pZCBTYW5zXCIsIEFyaWFsLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcblxuICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cblxuICAgIH1cbiAgfVxuXG4gIC5jb2wteHMtMTIge1xuICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICB9XG5cbiAgdWwge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcblxuICAgIGxpIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgICAgcGFkZGluZzogMnB4IDA7XG4gICAgICBmb250LWZhbWlseTogQXJpYWwsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuXG4gICAgICBAbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgIHBhZGRpbmc6IDZweDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMSwgMSwgMSwgMC4xKTtcbiAgICAgIH1cblxuICAgIH1cbiAgfVxufVxuXG4ucG9pbnRlciB7XG4gICY6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG4uaGVhZGVyLW1lbnUtaXRlbSB7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sICdEcm9pZCBTYW5zJywgQXJpYWwsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogMzAwO1xuICBmb250LXNpemU6IDJyZW07XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMTBweCAwO1xuICBjb2xvcjogd2hpdGU7XG5cbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsIDAuMnMsIGVhc2UtaW4tb3V0KTtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGVydGlhcnktY29sb3I7XG4gIH1cblxuICBhIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG4gIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG4gIH1cbn1cblxuI2hlYWRlciB7XG4gIHotaW5kZXg6IDEwMDA7XG5cbiAgLm5hdmJhciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuXG4gICNoZWFkZXItbWVudSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbn1cblxuLm1vYmlsZS1jYXJ0LW1pbmkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC03MXB4O1xuICB0b3A6IC03cHg7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjg1KTtcbiAgLW1zLXRyYW5zZm9ybTogc2NhbGUoMC44NSk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC44NSk7XG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiA1NXB4O1xuICB9XG59XG5cbiNtb2JpbGUtY2FydC1jaXJjbGUge1xuICB3aWR0aDogMzVweDtcbiAgaGVpZ2h0OiAzNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGJvcmRlci1yYWRpdXM6IDM1cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtNHB4O1xuICByaWdodDogLTE0cHg7XG4gIGJvcmRlcjogM3B4IHNvbGlkIHJnYig1NywgNzAsIDE0OCk7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMzBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiByZ2IoNTcsIDcwLCAxNDgpO1xufVxuXG4uaGVhZGVyLWxvZ28ge1xuICA+ICoge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cblxuICBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcblxuICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBtYXgtd2lkdGg6IDU1JTtcbiAgICAgIG1hcmdpbjogNXB4O1xuICAgIH1cbiAgfVxuXG4gIHBhZGRpbmc6IDZweCAwO1xufVxuXG4jaGVhZGVyLWFjY291bnQge1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgY29sb3I6ICNmZmY7XG5cbiAgYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gIH1cblxuICA+IHNwYW4ge1xuICAgIGNvbG9yOiAkdGVydGlhcnktY29sb3I7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiByZWQ7XG4gICAgfVxuICB9XG59XG5cbiNoZWFkZXItbWVtYmVyIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcblxuICB9XG5cbiAgc3Bhbjpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICBAbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgfVxuICB9XG59XG5cbiNzaG9wcGluZy1jYXJ0IHtcbiAgQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHdoaXRlO1xuICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCB3aGl0ZTtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuXG4gICAgYSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG59XG5cbiNjYXJ0LXRpdGxlIHtcblxuICBAbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDNyZW07XG4gIH1cblxuICBpbWcge1xuICAgIG1heC13aWR0aDogMzJweDtcblxuICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBtYXgtd2lkdGg6IDY0cHg7XG4gICAgfVxuICB9XG5cbn1cblxuI2NhcnQtaW5mbyB7XG4gIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgZm9udC1zaXplOiAycmVtXG4gIH1cbn1cblxuI2ZzLXByb2ZpbGUge1xuICA+IGEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi5kcm9wZG93bi1tZW51IHtcbiAgYSB7XG4gICAgY29sb3I6ICRub3Qtc28tYmxhY2stYmxhY2s7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8vIFBPUFVQIE5PVElGSUNBVElPTiAvL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4jZnMtcG9wdXAtbm90aWZpY2F0aW9uIHtcbiAgd2lkdGg6IDQwMHB4O1xuICBoZWlnaHQ6IDk1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlYWVhZWE7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCAjM0E0NjkyLFxuICAwIDEwcHggMTNweCAtNHB4IHJnYmEoNTEsIDUxLCA1MSwgMC41KTtcbn1cblxuLmZzLXBvcHVwLW5vdGlmaWNhdGlvbi1lbGVtZW50IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBcXCdIZWx2ZXRpY2EgTmV1ZVxcJywgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuXG59XG5cbi5mcy1pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1NywgNzAsIDE0OCwgMSk7XG5cbiAgPiBpbWcge1xuICAgIG1heC1oZWlnaHQ6IDk1cHg7XG4gIH1cbn1cblxuLmZzLW1lc3NhZ2Uge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgY29sb3I6ICMzYTQ2OTI7XG59XG5cbi5mcy1oZWFkaW5nIHtcbiAgZm9udC1zaXplOiAzcmVtO1xuICBjb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcblxuICAmLm1haW4ge1xuICAgIGZvbnQtc2l6ZTogNC40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgfVxuXG4gICYuc3ViIHtcbiAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICB9XG5cbiAgJi50aGljayB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbn1cblxuLm1haW4tdGl0bGUge1xuICBmb250LXNpemU6IDMuOHJlbTtcbiAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDIwcHggMCA1cHggMDtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJEcm9pZCBTYW5zXCIsIEFyaWFsLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cblxuLnN1Yi1oZWFkaW5nIHtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJEcm9pZCBTYW5zXCIsIEFyaWFsLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgZm9udC1zaXplOiAycmVtO1xuICBjb2xvcjogIzZDNkM2QztcbiAgbWFyZ2luOiAwO1xufVxuXG4uc3ViaGVhZGluZy10aXRsZSB7XG4gID4gYSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8gICAgTkVXICAgICAvLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuI2ltYWdlLWZyYW1lIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMjUlO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDBweCA1cHggMjFweCBibGFjaztcbiAgLW1vei1ib3gtc2hhZG93OiAwcHggNXB4IDIxcHggYmxhY2s7XG4gIGJveC1zaGFkb3c6IDBweCA1cHggMjFweCBibGFjaztcblxuICBsZWZ0OiBjYWxjKDUwJSAtIDEyLjUlKTtcbiAgdG9wOiAxMi41JTtcbiAgbWF4LXdpZHRoOiA0OTBweDtcbn1cblxuI2JvdHRvbS1mb290ZXItY2xhc3NpYyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogNTBweDtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vLy8gR0VORVJBTCAvLy8vLy8vXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4jc2VhcmNoLWJveCB7XG4gIHBhZGRpbmctdG9wOiAzMHB4O1xufVxuXG4ubmF2YmFyLXRvZ2dsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRvZmYtd2hpdGU7XG4gIHNwYW4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRub3Qtc28tYmxhY2stYmxhY2s7XG4gIH1cbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLy8vLyBXT1JEUFJFU1MgLy8vLy8vLy9cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi5jb250ZW50IHtcbiAgbWluLWhlaWdodDogMTBweDtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gQk9PVFNUUkFQIE9WRVJSSURFUyAvL1xuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4uYnRuLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgYm9yZGVyLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogbGlnaHRlbigkc2Vjb25kYXJ5LWNvbG9yLCAxJSk7XG4gIH1cbn1cblxuLy8vLy8vLy8vL1xuLy8gQmFzZSAvL1xuLy8vLy8vLy8vL1xuYm9keSB7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBoZWlnaHQ6MTAwJTtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJEcm9pZCBTYW5zXCIsIEFyaWFsLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbn1cblxuLmJvZHktd3JhcHBlci1zdHlsZSB7XG4gIGZsZXg6IDE7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uYm9keS1mbGV4LXdyYXBwZXItc3R5bGUge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHRyYW5zaXRpb246IGZpbHRlciAwLjI1cyBlYXNlLW91dDtcbn1cblxuLmJvZHktZmxleC13cmFwcGVyLXN0eWxlID4gLmNvbnRhaW5lci1mbHVpZCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuI2JvZHktd3JhcHBlciB7XG4gID4gLnJvdyB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbiNoZWFkZXIsICNmb290ZXIge1xuICBtYXJnaW46IDA7XG59XG5cbi8vLy8vLy8vLy8vLy8vLy9cbi8vIElNUE9SVFMgICAgLy9cbi8vLy8vLy8vLy8vLy8vLy9cblxuQGltcG9ydCBcImZyYW1lc2hvcC9icmVha3BvaW50c1wiO1xuQGltcG9ydCBcImZyYW1lc2hvcC9ndWlFbGVtZW50c1wiO1xuQGltcG9ydCBcImZyYW1lc2hvcC9oZWFkZXJcIjtcbkBpbXBvcnQgXCJmcmFtZXNob3AvcGhvdG9mcmFtZXNcIjtcbkBpbXBvcnQgXCJmcmFtZXNob3AvY3VzdG9tRHJvcGRvd25zXCI7XG5AaW1wb3J0IFwiZnJhbWVzaG9wL2N1c3RvbUZyYW1pbmdcIjtcbkBpbXBvcnQgXCJmcmFtZXNob3AvZm9vdGVyXCI7XG5AaW1wb3J0IFwiZnJhbWVzaG9wL2luZGV4XCI7XG5AaW1wb3J0IFwiZnJhbWVzaG9wL2NhdGVnb3J5X2hlYWRlclwiOyIsIi8vIEJvdXJib24gNC4yLjNcbi8vIGh0dHA6Ly9ib3VyYm9uLmlvXG4vLyBDb3B5cmlnaHQgMjAxMS0yMDE1IHRob3VnaHRib3QsIGluYy5cbi8vIE1JVCBMaWNlbnNlXG5cbkBpbXBvcnQgXCJzZXR0aW5ncy9wcmVmaXhlclwiO1xuQGltcG9ydCBcInNldHRpbmdzL3B4LXRvLWVtXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvYXNzZXQtcGlwZWxpbmVcIjtcblxuQGltcG9ydCBcImZ1bmN0aW9ucy9hc3NpZ24taW5wdXRzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zLWZhbHN5XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxlbmd0aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1saWdodFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1udW1iZXJcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtc2l6ZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1lbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1yZW1cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc2hhZGVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc3RyaXAtdW5pdHNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdGludFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdW5wYWNrXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL21vZHVsYXItc2NhbGVcIjtcblxuQGltcG9ydCBcImhlbHBlcnMvY29udmVydC11bml0c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvZGlyZWN0aW9uYWwtdmFsdWVzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9mb250LXNvdXJjZS1kZWNsYXJhdGlvblwiO1xuQGltcG9ydCBcImhlbHBlcnMvZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWFuZ2xlLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1hcmctcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmVuZGVyLWdyYWRpZW50c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvc2hhcGUtc2l6ZS1zdHJpcHBlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvc3RyLXRvLW51bVwiO1xuXG5AaW1wb3J0IFwiY3NzMy9hbmltYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL2FwcGVhcmFuY2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tmYWNlLXZpc2liaWxpdHlcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmRcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmQtaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JvcmRlci1pbWFnZVwiO1xuQGltcG9ydCBcImNzczMvY2FsY1wiO1xuQGltcG9ydCBcImNzczMvY29sdW1uc1wiO1xuQGltcG9ydCBcImNzczMvZmlsdGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9mbGV4LWJveFwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mYWNlXCI7XG5AaW1wb3J0IFwiY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJjc3MzL2hpZHBpLW1lZGlhLXF1ZXJ5XCI7XG5AaW1wb3J0IFwiY3NzMy9oeXBoZW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9pbWFnZS1yZW5kZXJpbmdcIjtcbkBpbXBvcnQgXCJjc3MzL2tleWZyYW1lc1wiO1xuQGltcG9ydCBcImNzczMvbGluZWFyLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy9wZXJzcGVjdGl2ZVwiO1xuQGltcG9ydCBcImNzczMvcGxhY2Vob2xkZXJcIjtcbkBpbXBvcnQgXCJjc3MzL3JhZGlhbC1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvc2VsZWN0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy90ZXh0LWRlY29yYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zZm9ybVwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNpdGlvblwiO1xuQGltcG9ydCBcImNzczMvdXNlci1zZWxlY3RcIjtcblxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItY29sb3JcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXJhZGl1c1wiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItc3R5bGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXdpZHRoXCI7XG5AaW1wb3J0IFwiYWRkb25zL2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvY2xlYXJmaXhcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZWxsaXBzaXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZm9udC1zdGFja3NcIjtcbkBpbXBvcnQgXCJhZGRvbnMvaGlkZS10ZXh0XCI7XG5AaW1wb3J0IFwiYWRkb25zL21hcmdpblwiO1xuQGltcG9ydCBcImFkZG9ucy9wYWRkaW5nXCI7XG5AaW1wb3J0IFwiYWRkb25zL3Bvc2l0aW9uXCI7XG5AaW1wb3J0IFwiYWRkb25zL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwiYWRkb25zL3JldGluYS1pbWFnZVwiO1xuQGltcG9ydCBcImFkZG9ucy9zaXplXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RleHQtaW5wdXRzXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RpbWluZy1mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdHJpYW5nbGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvd29yZC13cmFwXCI7XG5cbkBpbXBvcnQgXCJib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmdcIjtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdsb2JhbCB2YXJpYWJsZXMgdG8gZW5hYmxlIG9yIGRpc2FibGUgdmVuZG9yIHByZWZpeGVzXG5cbiRwcmVmaXgtZm9yLXdlYmtpdDogICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1vemlsbGE6ICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1pY3Jvc29mdDogdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW9wZXJhOiAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLXNwZWM6ICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiIsIiRlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSBnbG9iYWwgc2V0dGluZyB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgYCRhc3NldC1waXBlbGluZWAgdmFyaWFibGUgZm9yIGFsbCBmdW5jdGlvbnMgdGhhdCBhY2NlcHQgaXQuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG5cbiRhc3NldC1waXBlbGluZTogZmFsc2UgIWRlZmF1bHQ7XG4iLCJAZnVuY3Rpb24gYXNzaWduLWlucHV0cygkaW5wdXRzLCAkcHNldWRvOiBudWxsKSB7XG4gICRsaXN0OiAoKTtcblxuICBAZWFjaCAkaW5wdXQgaW4gJGlucHV0cyB7XG4gICAgJGlucHV0OiB1bnF1b3RlKCRpbnB1dCk7XG4gICAgJGlucHV0OiBpZigkcHNldWRvLCAkaW5wdXQgKyBcIjpcIiArICRwc2V1ZG8sICRpbnB1dCk7XG4gICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJGlucHV0LCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRsaXN0O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBjb250YWlucyBhIHZhbHVlKHMpLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsdWVzXG4vLy8gICBBIHNpbmdsZSB2YWx1ZSBvciBsaXN0IG9mIHZhbHVlcyB0byBjaGVjayBmb3IuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWUpXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gY29udGFpbnMoJGxpc3QsICR2YWx1ZXMuLi4pIHtcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xuICAgIEBpZiB0eXBlLW9mKGluZGV4KCRsaXN0LCAkdmFsdWUpKSAhPSBcIm51bWJlclwiIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBkb2VzIG5vdCBjb250YWlucyBhIHZhbHVlLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGNvbnRhaW5zLWZhbHN5KCRsaXN0KSB7XG4gIEBlYWNoICRpdGVtIGluICRsaXN0IHtcbiAgICBAaWYgbm90ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBsZW5ndGguXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXG5cbkBmdW5jdGlvbiBpcy1sZW5ndGgoJHZhbHVlKSB7XG4gIEByZXR1cm4gdHlwZS1vZigkdmFsdWUpICE9IFwibnVsbFwiIGFuZCAoc3RyLXNsaWNlKCR2YWx1ZSArIFwiXCIsIDEsIDQpID09IFwiY2FsY1wiXG4gICAgICAgb3IgaW5kZXgoYXV0byBpbmhlcml0IGluaXRpYWwgMCwgJHZhbHVlKVxuICAgICAgIG9yICh0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiBhbmQgbm90KHVuaXRsZXNzKCR2YWx1ZSkpKSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm9ncmFtYXRpY2FsbHkgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgY29sb3IgaXMgbGlnaHQgb3IgZGFyay5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9yb2JvdHMudGhvdWdodGJvdC5jb20vY2xvc2VyLWxvb2stY29sb3ItbGlnaHRuZXNzXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yIChIZXgpfSAkY29sb3Jcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgaXMtbGlnaHQoJGNvbG9yKVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGlzLWxpZ2h0KCRoZXgtY29sb3IpIHtcbiAgJC1sb2NhbC1yZWQ6IHJlZChyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1ncmVlbjogZ3JlZW4ocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtYmx1ZTogYmx1ZShyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1saWdodG5lc3M6ICgkLWxvY2FsLXJlZCAqIDAuMjEyNiArICQtbG9jYWwtZ3JlZW4gKiAwLjcxNTIgKyAkLWxvY2FsLWJsdWUgKiAwLjA3MjIpIC8gMjU1O1xuXG4gIEByZXR1cm4gJC1sb2NhbC1saWdodG5lc3MgPiAwLjY7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgbnVtYmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xuXG5AZnVuY3Rpb24gaXMtbnVtYmVyKCR2YWx1ZSkge1xuICBAcmV0dXJuIGNvbnRhaW5zKFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiIDAgMSAyIDMgNCA1IDYgNyA4IDksICR2YWx1ZSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIHNpemUuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcblxuQGZ1bmN0aW9uIGlzLXNpemUoJHZhbHVlKSB7XG4gIEByZXR1cm4gaXMtbGVuZ3RoKCR2YWx1ZSlcbiAgICAgICAgICBvciBjb250YWlucyhcImZpbGxcIiBcImZpdC1jb250ZW50XCIgXCJtaW4tY29udGVudFwiIFwibWF4LWNvbnRlbnRcIiwgJHZhbHVlKTtcbn1cbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSBlbSgxMikgd2hlbiB0aGUgcGFyZW50IGlzIDE2cHhcbi8vIGlmIHRoZSBwYXJlbnQgaXMgYW5vdGhlciB2YWx1ZSBzYXkgMjRweCB3cml0ZSBlbSgxMiwgMjQpXG5cbkBmdW5jdGlvbiBlbSgkcHh2YWwsICRiYXNlOiAkZW0tYmFzZSkge1xuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxZW07XG59XG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byByZW1zXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIHJlbSgxMilcbi8vIEFzc3VtZXMgJGVtLWJhc2UgaXMgdGhlIGZvbnQtc2l6ZSBvZiA8aHRtbD5cblxuQGZ1bmN0aW9uIHJlbSgkcHh2YWwpIHtcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gIH1cblxuICAkYmFzZTogJGVtLWJhc2U7XG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFyZW07XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggYmxhY2suXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3Jcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcbi8vLyAgIFRoZSBhbW91bnQgb2YgYmxhY2sgdG8gYmUgbWl4ZWQgaW4uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoI2ZmYmI1MiwgNjAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY2NGEyMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXR1cm4ge0NvbG9yfVxuXG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkcGVyY2VudCkge1xuICBAcmV0dXJuIG1peCgjMDAwLCAkY29sb3IsICRwZXJjZW50KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFN0cmlwcyB0aGUgdW5pdCBmcm9tIGEgbnVtYmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFdpdGggVW5pdCl9ICR2YWx1ZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAkZGltZW5zaW9uOiBzdHJpcC11bml0cygxMGVtKTtcbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgICRkaW1lbnNpb246IDEwO1xuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyIChVbml0bGVzcyl9XG5cbkBmdW5jdGlvbiBzdHJpcC11bml0cygkdmFsdWUpIHtcbiAgQHJldHVybiAoJHZhbHVlIC8gKCR2YWx1ZSAqIDAgKyAxKSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggd2hpdGUuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3Jcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcbi8vLyAgIFRoZSBhbW91bnQgb2Ygd2hpdGUgdG8gYmUgbWl4ZWQgaW4uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgjNmVjYWE2LCA0MCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYThkZmM5O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJldHVybiB7Q29sb3J9XG5cbkBmdW5jdGlvbiB0aW50KCRjb2xvciwgJHBlcmNlbnQpIHtcbiAgQHJldHVybiBtaXgoI2ZmZiwgJGNvbG9yLCAkcGVyY2VudCk7XG59XG4iLCIvLyBSZXR1cm4gdmVuZG9yLXByZWZpeGVkIHByb3BlcnR5IG5hbWVzIGlmIGFwcHJvcHJpYXRlXG4vLyBFeGFtcGxlOiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCh0cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kKSwgbW96KSAtPiAtbW96LXRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmRcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wcywgJHZlbmRvcjogZmFsc2UpIHtcbiAgJG5ldy1wcm9wczogKCk7XG5cbiAgQGVhY2ggJHByb3AgaW4gJHByb3BzIHtcbiAgICAkbmV3LXByb3BzOiBhcHBlbmQoJG5ldy1wcm9wcywgdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yKSwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkbmV3LXByb3BzO1xufVxuXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yOiBmYWxzZSkge1xuICAvLyBwdXQgb3RoZXIgcHJvcGVydGllcyB0aGF0IG5lZWQgdG8gYmUgcHJlZml4ZWQgaGVyZSBhc3dlbGxcbiAgQGlmICR2ZW5kb3IgYW5kICRwcm9wID09IHRyYW5zZm9ybSB7XG4gICAgQHJldHVybiB1bnF1b3RlKCctJyskdmVuZG9yKyctJyskcHJvcCk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJHByb3A7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENvbnZlcnRzIHNob3J0aGFuZCB0byB0aGUgNC12YWx1ZSBzeW50YXguXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaG9ydGhhbmRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW46IHVucGFjaygxZW0gMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luOiAxZW0gMmVtIDFlbSAyZW07XG4vLy8gICB9XG5cbkBmdW5jdGlvbiB1bnBhY2soJHNob3J0aGFuZCkge1xuICBAaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDEge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAyIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMyB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAzKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJHNob3J0aGFuZDtcbiAgfVxufVxuIiwiLy8gU2NhbGluZyBWYXJpYWJsZXNcbiRnb2xkZW46ICAgICAgICAgICAxLjYxODtcbiRtaW5vci1zZWNvbmQ6ICAgICAxLjA2NztcbiRtYWpvci1zZWNvbmQ6ICAgICAxLjEyNTtcbiRtaW5vci10aGlyZDogICAgICAxLjI7XG4kbWFqb3ItdGhpcmQ6ICAgICAgMS4yNTtcbiRwZXJmZWN0LWZvdXJ0aDogICAxLjMzMztcbiRhdWdtZW50ZWQtZm91cnRoOiAxLjQxNDtcbiRwZXJmZWN0LWZpZnRoOiAgICAxLjU7XG4kbWlub3Itc2l4dGg6ICAgICAgMS42O1xuJG1ham9yLXNpeHRoOiAgICAgIDEuNjY3O1xuJG1pbm9yLXNldmVudGg6ICAgIDEuNzc4O1xuJG1ham9yLXNldmVudGg6ICAgIDEuODc1O1xuJG9jdGF2ZTogICAgICAgICAgIDI7XG4kbWFqb3ItdGVudGg6ICAgICAgMi41O1xuJG1ham9yLWVsZXZlbnRoOiAgIDIuNjY3O1xuJG1ham9yLXR3ZWxmdGg6ICAgIDM7XG4kZG91YmxlLW9jdGF2ZTogICAgNDtcblxuJG1vZHVsYXItc2NhbGUtcmF0aW86ICRwZXJmZWN0LWZvdXJ0aCAhZGVmYXVsdDtcbiRtb2R1bGFyLXNjYWxlLWJhc2U6IGVtKCRlbS1iYXNlKSAhZGVmYXVsdDtcblxuQGZ1bmN0aW9uIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlOiAkbW9kdWxhci1zY2FsZS1iYXNlLCAkcmF0aW86ICRtb2R1bGFyLXNjYWxlLXJhdGlvKSB7XG4gICR2MTogbnRoKCR2YWx1ZSwgMSk7XG4gICR2MjogbnRoKCR2YWx1ZSwgbGVuZ3RoKCR2YWx1ZSkpO1xuICAkdmFsdWU6ICR2MTtcblxuICAvLyBzY2FsZSAkdjIgdG8ganVzdCBhYm92ZSAkdjFcbiAgQHdoaWxlICR2MiA+ICR2MSB7XG4gICAgJHYyOiAoJHYyIC8gJHJhdGlvKTsgLy8gd2lsbCBiZSBvZmYtYnktMVxuICB9XG4gIEB3aGlsZSAkdjIgPCAkdjEge1xuICAgICR2MjogKCR2MiAqICRyYXRpbyk7IC8vIHdpbGwgZml4IG9mZi1ieS0xXG4gIH1cblxuICAvLyBjaGVjayBBRlRFUiBzY2FsaW5nICR2MiB0byBwcmV2ZW50IGRvdWJsZS1jb3VudGluZyBjb3JuZXItY2FzZVxuICAkZG91YmxlLXN0cmFuZGVkOiAkdjIgPiAkdjE7XG5cbiAgQGlmICRpbmNyZW1lbnQgPiAwIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRpbmNyZW1lbnQge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgKiAkcmF0aW8pID4gJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAqICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxICogJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRpbmNyZW1lbnQgPCAwIHtcbiAgICAvLyBhZGp1c3QgJHYyIHRvIGp1c3QgYmVsb3cgJHYxXG4gICAgQGlmICRkb3VibGUtc3RyYW5kZWQge1xuICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gJGluY3JlbWVudCB0aHJvdWdoIC0xIHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxIC8gJHJhdGlvKSA8ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAvICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBzdHItdG8tbnVtIGZuLlxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9jb252ZXJ0LXVuaXRzKCRudW1iZXIsICR1bml0KSB7XG4gICRzdHJpbmdzOiBcInB4XCIsIFwiY21cIiwgXCJtbVwiLCBcIiVcIiwgXCJjaFwiLCBcInBpY2FcIiwgXCJpblwiLCBcImVtXCIsIFwicmVtXCIsIFwicHRcIiwgXCJwY1wiLCBcImV4XCIsIFwidndcIiwgXCJ2aFwiLCBcInZtaW5cIiwgXCJ2bWF4XCIsIFwiZGVnXCIsIFwicmFkXCIsIFwiZ3JhZFwiLCBcInR1cm5cIjtcbiAgJHVuaXRzOiAgIDFweCwgMWNtLCAxbW0sIDElLCAxY2gsIDFwaWNhLCAxaW4sIDFlbSwgMXJlbSwgMXB0LCAxcGMsIDFleCwgMXZ3LCAxdmgsIDF2bWluLCAxdm1heCwgMWRlZywgMXJhZCwgMWdyYWQsIDF0dXJuO1xuICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkdW5pdCk7XG5cbiAgQGlmIG5vdCAkaW5kZXgge1xuICAgIEB3YXJuIFwiVW5rbm93biB1bml0IGAjeyR1bml0fWAuXCI7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRudW1iZXIpICE9IFwibnVtYmVyXCIge1xuICAgIEB3YXJuIFwiYCN7JG51bWJlcn0gaXMgbm90IGEgbnVtYmVyYFwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBAcmV0dXJuICRudW1iZXIgKiBudGgoJHVuaXRzLCAkaW5kZXgpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGlyZWN0aW9uYWwtcHJvcGVydHkgbWl4aW5zIGFyZSBzaG9ydGhhbmRzIGZvciB3cml0aW5nIHByb3BlcnRpZXMgbGlrZSB0aGUgZm9sbG93aW5nXG4vLy9cbi8vLyBAaWdub3JlIFlvdSBjYW4gYWxzbyB1c2UgYGZhbHNlYCBpbnN0ZWFkIG9mIGBudWxsYC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgZGlyZWN0aW9uYWwgdmFsdWVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRvdHRlZCBudWxsKTtcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMCAxMHB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAwO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fVxuXG5AZnVuY3Rpb24gY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKSB7XG4gICRvdXRwdXQ6IG51bGw7XG5cbiAgJGE6IG50aCgkdmFscywgMSk7XG4gICRiOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgMikpO1xuICAkYzogaWYobGVuZ3RoKCR2YWxzKSA8IDMsICRhLCBudGgoJHZhbHMsIDMpKTtcbiAgJGQ6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCBpZihsZW5ndGgoJHZhbHMpIDwgNCwgMiwgNCkpKTtcblxuICBAaWYgJGEgPT0gMCB7ICRhOiAwOyB9XG4gIEBpZiAkYiA9PSAwIHsgJGI6IDA7IH1cbiAgQGlmICRjID09IDAgeyAkYzogMDsgfVxuICBAaWYgJGQgPT0gMCB7ICRkOiAwOyB9XG5cbiAgQGlmICRhID09ICRiIGFuZCAkYSA9PSAkYyBhbmQgJGEgPT0gJGQgeyAkb3V0cHV0OiAkYTsgICAgICAgICAgfVxuICBAZWxzZSBpZiAkYSA9PSAkYyBhbmQgJGIgPT0gJGQgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiOyAgICAgICB9XG4gIEBlbHNlIGlmICRiID09ICRkICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGM7ICAgIH1cbiAgQGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYyAkZDsgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuLy8vIE91dHB1dCBkaXJlY3Rpb25hbCBwcm9wZXJ0aWVzLCBmb3IgaW5zdGFuY2UgYG1hcmdpbmAuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJlXG4vLy8gICBQcmVmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdWZcbi8vLyAgIFN1ZmZpeCB0byB1c2Vcbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIHZhbHVlc1xuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb2xsYXBzZS1kaXJlY3Rpb25hbHNcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG5cbkBtaXhpbiBkaXJlY3Rpb25hbC1wcm9wZXJ0eSgkcHJlLCAkc3VmLCAkdmFscykge1xuICAvLyBQcm9wZXJ0eSBOYW1lc1xuICAkdG9wOiAgICAkcHJlICsgXCItdG9wXCIgICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYm90dG9tOiAkcHJlICsgXCItYm90dG9tXCIgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkbGVmdDogICAkcHJlICsgXCItbGVmdFwiICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkcmlnaHQ6ICAkcHJlICsgXCItcmlnaHRcIiAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYWxsOiAgICAkcHJlICsgICAgICAgICAgICAgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcblxuICAkdmFsczogY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKTtcblxuICBAaWYgY29udGFpbnMtZmFsc3koJHZhbHMpIHtcbiAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHRvcH06IG50aCgkdmFscywgMSk7IH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDEge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRyaWdodH06IG50aCgkdmFscywgMSk7IH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDIpOyB9XG4gICAgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMiB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMSk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSAzIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDQge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCA0KSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgNCk7IH1cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICN7JGFsbH06ICR2YWxzO1xuICB9XG59XG4iLCIvLyBVc2VkIGZvciBjcmVhdGluZyB0aGUgc291cmNlIHN0cmluZyBmb3IgZm9udHMgdXNpbmcgQGZvbnQtZmFjZVxuLy8gUmVmZXJlbmNlOiBodHRwOi8vZ29vLmdsL1J1MWJLUFxuXG5AZnVuY3Rpb24gZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKSB7XG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XG4gICAgQHJldHVybiBmb250LXVybDtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiB1cmw7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxuICAkZm9udC1mYW1pbHksXG4gICRmaWxlLXBhdGgsXG4gICRhc3NldC1waXBlbGluZSxcbiAgJGZpbGUtZm9ybWF0cyxcbiAgJGZvbnQtdXJsKSB7XG5cbiAgJHNyYzogKCk7XG5cbiAgJGZvcm1hdHMtbWFwOiAoXG4gICAgZW90OiAgIFwiI3skZmlsZS1wYXRofS5lb3Q/I2llZml4XCIgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXG4gICAgd29mZjI6IFwiI3skZmlsZS1wYXRofS53b2ZmMlwiIGZvcm1hdChcIndvZmYyXCIpLFxuICAgIHdvZmY6ICBcIiN7JGZpbGUtcGF0aH0ud29mZlwiIGZvcm1hdChcIndvZmZcIiksXG4gICAgdHRmOiAgIFwiI3skZmlsZS1wYXRofS50dGZcIiBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcbiAgICBzdmc6ICAgXCIjeyRmaWxlLXBhdGh9LnN2ZyMjeyRmb250LWZhbWlseX1cIiBmb3JtYXQoXCJzdmdcIilcbiAgKTtcblxuICBAZWFjaCAka2V5LCAkdmFsdWVzIGluICRmb3JtYXRzLW1hcCB7XG4gICAgQGlmIGNvbnRhaW5zKCRmaWxlLWZvcm1hdHMsICRrZXkpIHtcbiAgICAgICRmaWxlLXBhdGg6IG50aCgkdmFsdWVzLCAxKTtcbiAgICAgICRmb250LWZvcm1hdDogbnRoKCR2YWx1ZXMsIDIpO1xuXG4gICAgICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgZm9udC11cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIHVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzcmM7XG59XG4iLCJAZnVuY3Rpb24gX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXR5cGUsICRncmFkaWVudC1wb3NpdGlvbnMpIHtcbiAgQGlmICRncmFkaWVudC1wb3NpdGlvbnNcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIpXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cbiAgQHJldHVybiAkZ3JhZGllbnQtcG9zaXRpb25zO1xufVxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuQGZ1bmN0aW9uIF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCkge1xuICAkb2Zmc2V0OiBudWxsO1xuICAkdW5pdC1zaG9ydDogIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMiwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR1bml0LWxvbmc6ICAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcblxuICBAaWYgKCR1bml0LWxvbmcgPT0gXCJncmFkXCIpIG9yXG4gICAgICAoJHVuaXQtbG9uZyA9PSBcInR1cm5cIikge1xuICAgICRvZmZzZXQ6IGlmKCR1bml0LWxvbmcgPT0gXCJncmFkXCIsIC0xMDBncmFkICogMywgLTAuNzV0dXJuKTtcbiAgfVxuXG4gIEBlbHNlIGlmICgkdW5pdC1zaG9ydCA9PSBcImRlZ1wiKSBvclxuICAgICAgICAgICAoJHVuaXQtc2hvcnQgPT0gXCJyYWRcIikge1xuICAgICRvZmZzZXQ6IGlmKCR1bml0LXNob3J0ID09IFwiZGVnXCIsIC05MCAqIDMsIDEuNnJhZCk7XG4gIH1cblxuICBAaWYgJG9mZnNldCB7XG4gICAgJG51bTogX3N0ci10by1udW0oJGZpcnN0LXZhbCk7XG5cbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgKCRvZmZzZXQgLSAkbnVtKSArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG59XG4iLCJAZnVuY3Rpb24gX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xuICAkZ3JhZGllbnRzOiAoKTtcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xuXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDAsICRzdGFydCk7XG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XG5cbiAgJGhhcy1tdWx0aXBsZS12YWxzOiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCIgXCIpO1xuICAkaGFzLXNpbmdsZS1wb3NpdGlvbjogdW5xdW90ZShfcG9zaXRpb24tZmxpcHBlcigkZmlyc3QtdmFsKSArIFwiXCIpO1xuICAkaGFzLWFuZ2xlOiBpcy1udW1iZXIoc3RyLXNsaWNlKCRmaXJzdC12YWwsIDAsIDApKTtcblxuICBAaWYgJGhhcy1tdWx0aXBsZS12YWxzIHtcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscyk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLXNpbmdsZS1wb3NpdGlvbiAhPSBcIlwiIHtcbiAgICAkcG9zOiB1bnF1b3RlKCRoYXMtc2luZ2xlLXBvc2l0aW9uICsgXCJcIik7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLWFuZ2xlIHtcbiAgICAvLyBSb3RhdGUgZGVncmVlIGZvciB3ZWJraXRcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQHJldHVybiAkZ3JhZGllbnRzO1xufVxuIiwiQGZ1bmN0aW9uIF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKSB7XG4gICR0eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRzcGVjOiBudWxsO1xuICAkZGVncmVlOiBudWxsO1xuICAkc2lkZTogbnVsbDtcbiAgJGNvcm5lcjogbnVsbDtcbiAgJGxlbmd0aDogbGVuZ3RoKCRwb3MpO1xuICAvLyBQYXJzZSBTaWRlIGFuZCBjb3JuZXIgcG9zaXRpb25zXG4gIEBpZiAoJGxlbmd0aCA+IDEpIHtcbiAgICBAaWYgbnRoKCRwb3MsIDEpID09IFwidG9cIiB7IC8vIE5ld2VyIHN5bnRheFxuICAgICAgJHNpZGU6IG50aCgkcG9zLCAyKTtcblxuICAgICAgQGlmICRsZW5ndGggPT0gMiB7IC8vIGVnLiB0byB0b3BcbiAgICAgICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGFiaWxpdHlcbiAgICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMyB7IC8vIGVnLiB0byB0b3AgbGVmdFxuICAgICAgICAkY29ybmVyOiBudGgoJHBvcywgMyk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMiB7IC8vIE9sZGVyIHN5bnRheCAoXCJ0b3AgbGVmdFwiKVxuICAgICAgJHNpZGU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAxKSk7XG4gICAgICAkY29ybmVyOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xuICAgIH1cblxuICAgIEBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgbGVmdFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgcmlnaHRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICAkc3BlYzogdG8gJHNpZGUgJGNvcm5lcjtcbiAgfVxuICBAZWxzZSBpZiAkbGVuZ3RoID09IDEge1xuICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRhYmlsaXR5XG4gICAgQGlmICR0eXBlID09IHN0cmluZyB7XG4gICAgICAkZGVncmVlOiAkcG9zO1xuICAgICAgJHNwZWM6IHRvIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkZGVncmVlOiAtMjcwIC0gJHBvczsgLy9yb3RhdGUgdGhlIGdyYWRpZW50IG9wcG9zaXRlIGZyb20gc3BlY1xuICAgICAgJHNwZWM6ICRwb3M7XG4gICAgfVxuICB9XG4gICRkZWdyZWU6IHVucXVvdGUoJGRlZ3JlZSArIFwiLFwiKTtcbiAgJHNwZWM6ICAgdW5xdW90ZSgkc3BlYyArIFwiLFwiKTtcbiAgQHJldHVybiAkZGVncmVlICRzcGVjO1xufVxuXG5AZnVuY3Rpb24gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcykge1xuICBAcmV0dXJuIGlmKCRwb3MgPT0gbGVmdCwgcmlnaHQsIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IHJpZ2h0LCBsZWZ0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSB0b3AsIGJvdHRvbSwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gYm90dG9tLCB0b3AsIG51bGwpO1xufVxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuQGZ1bmN0aW9uIF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKSB7XG4gICR2YWwtMTogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDAsICRoYXMtbXVsdGlwbGUtdmFscyAtIDEgKTtcbiAgJHZhbC0yOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGhhcy1tdWx0aXBsZS12YWxzICsgMSwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR2YWwtMzogbnVsbDtcbiAgJGhhcy12YWwtMzogc3RyLWluZGV4KCR2YWwtMiwgXCIgXCIpO1xuXG4gIEBpZiAkaGFzLXZhbC0zIHtcbiAgICAkdmFsLTM6IHN0ci1zbGljZSgkdmFsLTIsICRoYXMtdmFsLTMgKyAxLCBzdHItbGVuZ3RoKCR2YWwtMikpO1xuICAgICR2YWwtMjogc3RyLXNsaWNlKCR2YWwtMiwgMCwgJGhhcy12YWwtMyAtIDEpO1xuICB9XG5cbiAgJHBvczogX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0xKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTIpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMyk7XG4gICRwb3M6IHVucXVvdGUoJHBvcyArIFwiXCIpO1xuXG4gIC8vIFVzZSBvbGQgc3BlYyBmb3Igd2Via2l0XG4gIEBpZiAkdmFsLTEgPT0gXCJ0b1wiIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgLy8gQnJpbmcgdGhlIGNvZGUgdXAgdG8gc3BlY1xuICBAZWxzZSB7XG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKSB7XG4gIEBlYWNoICR2YWx1ZSBpbiAkZzEsICRnMiB7XG4gICAgJGZpcnN0LXZhbDogbnRoKCR2YWx1ZSwgMSk7XG4gICAgJHBvcy10eXBlOiAgdHlwZS1vZigkZmlyc3QtdmFsKTtcbiAgICAkc3BlYy1hdC1pbmRleDogbnVsbDtcblxuICAgIC8vIERldGVybWluZSBpZiBzcGVjIHdhcyBwYXNzZWQgdG8gbWl4aW5cbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09IGxpc3Qge1xuICAgICAgJHNwZWMtYXQtaW5kZXg6IGlmKGluZGV4KCR2YWx1ZSwgYXQpLCBpbmRleCgkdmFsdWUsIGF0KSwgZmFsc2UpO1xuICAgIH1cbiAgICBAaWYgJHNwZWMtYXQtaW5kZXgge1xuICAgICAgQGlmICRzcGVjLWF0LWluZGV4ID4gMSB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggKCRzcGVjLWF0LWluZGV4IC0gMSkge1xuICAgICAgICAgICRzaGFwZS1zaXplOiAkc2hhcGUtc2l6ZSBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkc3BlYy1hdC1pbmRleCA9PSAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAkZzE6IG51bGw7XG4gICAgfVxuXG4gICAgLy8gSWYgbm90IHNwZWMgY2FsY3VsYXRlIGNvcnJlY3QgdmFsdWVzXG4gICAgQGVsc2Uge1xuICAgICAgQGlmICgkcG9zLXR5cGUgIT0gY29sb3IpIG9yICgkZmlyc3QtdmFsICE9IFwidHJhbnNwYXJlbnRcIikge1xuICAgICAgICBAaWYgKCRwb3MtdHlwZSA9PSBudW1iZXIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2VudGVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwidG9wXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwicmlnaHRcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJib3R0b21cIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJsZWZ0XCIpIHtcblxuICAgICAgICAgICRwb3M6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkcG9zID09ICRnMSB7XG4gICAgICAgICAgICAkZzE6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2UgaWZcbiAgICAgICAgICAgKCRmaXJzdC12YWwgPT0gXCJlbGxpcHNlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2lyY2xlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1zaWRlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1zaWRlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3QtY29ybmVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY29udGFpblwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvdmVyXCIpIHtcblxuICAgICAgICAgICRzaGFwZS1zaXplOiAkdmFsdWU7XG5cbiAgICAgICAgICBAaWYgJHZhbHVlID09ICRnMSB7XG4gICAgICAgICAgICAkZzE6IG51bGw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGVsc2UgaWYgJHZhbHVlID09ICRnMiB7XG4gICAgICAgICAgICAkZzI6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplO1xufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zKSB7XG4gICRzaGFwZS1zaXplOiBudGgoJGdyYWRpZW50LXBvcywgMSk7XG4gICRwb3M6ICAgICAgICBudGgoJGdyYWRpZW50LXBvcywgMik7XG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcblxuICAkcHJlLXNwZWM6IHVucXVvdGUoaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCkpXG4gICAgICAgICAgICAgdW5xdW90ZShpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSxcIiwgbnVsbCkpO1xuICAkcG9zLXNwZWM6IGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcblxuICAkc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHBvcy1zcGVjfVwiO1xuXG4gIC8vIEFkZCBjb21tYVxuICBAaWYgKCRzcGVjICE9IFwiICBcIikge1xuICAgICRzcGVjOiBcIiN7JHNwZWN9LFwiO1xuICB9XG5cbiAgQHJldHVybiAkcHJlLXNwZWMgJHNwZWM7XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xuICAkZ3JhZGllbnRzOiAoKTtcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xuXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDAsICRzdGFydCk7XG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XG5cbiAgJGlzLXNwZWMtc3ludGF4OiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCJhdFwiKTtcblxuICBAaWYgJGlzLXNwZWMtc3ludGF4IGFuZCAkaXMtc3BlYy1zeW50YXggPiAxIHtcbiAgICAka2V5d29yZDogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRpcy1zcGVjLXN5bnRheCAtIDIpO1xuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgICAkcG9zOiBhcHBlbmQoJHBvcywgJGtleXdvcmQsIGNvbW1hKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgJGlzLXNwZWMtc3ludGF4ID09IDEge1xuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgc3RyLWluZGV4KCRpbWFnZSwgXCJjb3ZlclwiKSBvciBzdHItaW5kZXgoJGltYWdlLCBcImNvbnRhaW5cIikge1xuICAgIEB3YXJuIFwiUmFkaWFsLWdyYWRpZW50IG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gY29uZm9ybSB0byBsYXRlc3Qgc3BlYy5cIjtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogbnVsbCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAcmV0dXJuICRncmFkaWVudHM7XG59XG4iLCIvLyBVc2VyIGZvciBsaW5lYXIgYW5kIHJhZGlhbCBncmFkaWVudHMgd2l0aGluIGJhY2tncm91bmQtaW1hZ2Ugb3IgYm9yZGVyLWltYWdlIHByb3BlcnRpZXNcblxuQGZ1bmN0aW9uIF9yZW5kZXItZ3JhZGllbnRzKCRncmFkaWVudC1wb3NpdGlvbnMsICRncmFkaWVudHMsICRncmFkaWVudC10eXBlLCAkdmVuZG9yOiBmYWxzZSkge1xuICAkcHJlLXNwZWM6IG51bGw7XG4gICRzcGVjOiBudWxsO1xuICAkdmVuZG9yLWdyYWRpZW50czogbnVsbDtcbiAgQGlmICRncmFkaWVudC10eXBlID09IGxpbmVhciB7XG4gICAgQGlmICRncmFkaWVudC1wb3NpdGlvbnMge1xuICAgICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XG4gICAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsIHtcbiAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gIEBpZiAkdmVuZG9yIHtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogLSN7JHZlbmRvcn0tI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skcHJlLXNwZWN9ICRncmFkaWVudHMpO1xuICB9XG4gIEBlbHNlIGlmICR2ZW5kb3IgPT0gZmFsc2Uge1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiBcIiN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHNwZWN9ICN7JGdyYWRpZW50c30pXCI7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IHVucXVvdGUoJHZlbmRvci1ncmFkaWVudHMpO1xuICB9XG4gIEByZXR1cm4gJHZlbmRvci1ncmFkaWVudHM7XG59XG4iLCJAZnVuY3Rpb24gX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpIHtcbiAgJHNoYXBlLXNpemUtc3BlYzogbnVsbDtcbiAgQGVhY2ggJHZhbHVlIGluICRzaGFwZS1zaXplIHtcbiAgICBAaWYgKCR2YWx1ZSA9PSBcImNvdmVyXCIpIG9yICgkdmFsdWUgPT0gXCJjb250YWluXCIpIHtcbiAgICAgICR2YWx1ZTogbnVsbDtcbiAgICB9XG4gICAgJHNoYXBlLXNpemUtc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHZhbHVlfVwiO1xuICB9XG4gIEByZXR1cm4gJHNoYXBlLXNpemUtc3BlYztcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEhlbHBlciBmdW5jdGlvbiBmb3IgbGluZWFyL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJzLlxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9zdHItdG8tbnVtKCRzdHJpbmcpIHtcbiAgLy8gTWF0cmljZXNcbiAgJHN0cmluZ3M6IFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiO1xuICAkbnVtYmVyczogIDAgICAxICAgMiAgIDMgICA0ICAgNSAgIDYgICA3ICAgOCAgIDk7XG5cbiAgLy8gUmVzdWx0XG4gICRyZXN1bHQ6IDA7XG4gICRkaXZpZGVyOiAwO1xuICAkbWludXM6IGZhbHNlO1xuXG4gIC8vIExvb3BpbmcgdGhyb3VnaCBhbGwgY2hhcmFjdGVyc1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHN0cmluZykge1xuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkc3RyaW5nLCAkaSwgJGkpO1xuICAgICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICRjaGFyYWN0ZXIpO1xuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gXCItXCIge1xuICAgICAgJG1pbnVzOiB0cnVlO1xuICAgIH1cblxuICAgIEBlbHNlIGlmICRjaGFyYWN0ZXIgPT0gXCIuXCIge1xuICAgICAgJGRpdmlkZXI6IDE7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgQGlmIG5vdCAkaW5kZXgge1xuICAgICAgICAkcmVzdWx0OiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG4gICAgICAgIEByZXR1cm4gX2NvbnZlcnQtdW5pdHMoJHJlc3VsdCwgc3RyLXNsaWNlKCRzdHJpbmcsICRpKSk7XG4gICAgICB9XG5cbiAgICAgICRudW1iZXI6IG50aCgkbnVtYmVycywgJGluZGV4KTtcblxuICAgICAgQGlmICRkaXZpZGVyID09IDAge1xuICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTA7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgLy8gTW92ZSB0aGUgZGVjaW1hbCBkb3QgdG8gdGhlIGxlZnRcbiAgICAgICAgJGRpdmlkZXI6ICRkaXZpZGVyICogMTA7XG4gICAgICAgICRudW1iZXI6ICRudW1iZXIgLyAkZGl2aWRlcjtcbiAgICAgIH1cblxuICAgICAgJHJlc3VsdDogJHJlc3VsdCArICRudW1iZXI7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xufVxuIiwiLy8gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1hbmltYXRpb25zLyN0aGUtYW5pbWF0aW9uLW5hbWUtcHJvcGVydHktXG4vLyBFYWNoIG9mIHRoZXNlIG1peGlucyBzdXBwb3J0IGNvbW1hIHNlcGFyYXRlZCBsaXN0cyBvZiB2YWx1ZXMsIHdoaWNoIGFsbG93cyBkaWZmZXJlbnQgdHJhbnNpdGlvbnMgZm9yIGluZGl2aWR1YWwgcHJvcGVydGllcyB0byBiZSBkZXNjcmliZWQgaW4gYSBzaW5nbGUgc3R5bGUgcnVsZS4gRWFjaCB2YWx1ZSBpbiB0aGUgbGlzdCBjb3JyZXNwb25kcyB0byB0aGUgdmFsdWUgYXQgdGhhdCBzYW1lIHBvc2l0aW9uIGluIHRoZSBvdGhlciBwcm9wZXJ0aWVzLlxuXG5AbWl4aW4gYW5pbWF0aW9uKCRhbmltYXRpb25zLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbiwgJGFuaW1hdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tbmFtZSgkbmFtZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsICRuYW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoJHZhbHVlcy4uLikge1xuICAvLyBpbmZpbml0ZSB8IDxudW1iZXI+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsICR2YWx1ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZGlyZWN0aW9uKCRkaXJlY3Rpb25zLi4uKSB7XG4gIC8vIG5vcm1hbCB8IGFsdGVybmF0ZVxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGlyZWN0aW9uLCAkZGlyZWN0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1wbGF5LXN0YXRlKCRzdGF0ZXMuLi4pIHtcbiAgLy8gcnVubmluZyB8IHBhdXNlZFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tcGxheS1zdGF0ZSwgJHN0YXRlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZmlsbC1tb2RlKCRtb2Rlcy4uLikge1xuICAvLyBub25lIHwgZm9yd2FyZHMgfCBiYWNrd2FyZHMgfCBib3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1maWxsLW1vZGUsICRtb2Rlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBhcHBlYXJhbmNlKCR2YWx1ZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhcHBlYXJhbmNlLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cbiIsIkBtaXhpbiBiYWNrZmFjZS12aXNpYmlsaXR5KCR2aXNpYmlsaXR5KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJhY2tmYWNlLXZpc2liaWxpdHksICR2aXNpYmlsaXR5LCB3ZWJraXQgc3BlYyk7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZHMgdXNpbmcgc2hvcnRoYW5kXG4vLyBub3RhdGlvbi5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQoJGJhY2tncm91bmRzLi4uKSB7XG4gICR3ZWJraXQtYmFja2dyb3VuZHM6ICgpO1xuICAkc3BlYy1iYWNrZ3JvdW5kczogKCk7XG5cbiAgQGVhY2ggJGJhY2tncm91bmQgaW4gJGJhY2tncm91bmRzIHtcbiAgICAkd2Via2l0LWJhY2tncm91bmQ6ICgpO1xuICAgICRzcGVjLWJhY2tncm91bmQ6ICgpO1xuICAgICRiYWNrZ3JvdW5kLXR5cGU6IHR5cGUtb2YoJGJhY2tncm91bmQpO1xuXG4gICAgQGlmICRiYWNrZ3JvdW5kLXR5cGUgPT0gc3RyaW5nIG9yICRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCB7XG4gICAgICAkYmFja2dyb3VuZC1zdHI6IGlmKCRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCwgbnRoKCRiYWNrZ3JvdW5kLCAxKSwgJGJhY2tncm91bmQpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMCwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMCwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kczogYXBwZW5kKCR3ZWJraXQtYmFja2dyb3VuZHMsICR3ZWJraXQtYmFja2dyb3VuZCwgY29tbWEpO1xuICAgICRzcGVjLWJhY2tncm91bmRzOiAgIGFwcGVuZCgkc3BlYy1iYWNrZ3JvdW5kcywgICAkc3BlYy1iYWNrZ3JvdW5kLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQ6ICR3ZWJraXQtYmFja2dyb3VuZHM7XG4gIGJhY2tncm91bmQ6ICRzcGVjLWJhY2tncm91bmRzO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2dyb3VuZC1pbWFnZSBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmQgaW1hZ2VzIHdpdGhcbi8vIGdyYWRpZW50cywgb3IgZm9yIHN0cmluZ2luZyBtdWx0aXBsZSBncmFkaWVudHMgdG9nZXRoZXIuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5cbkBtaXhpbiBiYWNrZ3JvdW5kLWltYWdlKCRpbWFnZXMuLi4pIHtcbiAgJHdlYmtpdC1pbWFnZXM6ICgpO1xuICAkc3BlYy1pbWFnZXM6ICgpO1xuXG4gIEBlYWNoICRpbWFnZSBpbiAkaW1hZ2VzIHtcbiAgICAkd2Via2l0LWltYWdlOiAoKTtcbiAgICAkc3BlYy1pbWFnZTogKCk7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGltYWdlKSA9PSBzdHJpbmcpIHtcbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGltYWdlLCAwLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGltYWdlLCAwLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWltYWdlOiAkaW1hZ2U7XG4gICAgICAgICRzcGVjLWltYWdlOiAgICRpbWFnZTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1pbWFnZTogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgICR3ZWJraXQtaW1hZ2VzOiBhcHBlbmQoJHdlYmtpdC1pbWFnZXMsICR3ZWJraXQtaW1hZ2UsIGNvbW1hKTtcbiAgICAkc3BlYy1pbWFnZXM6ICAgYXBwZW5kKCRzcGVjLWltYWdlcywgICAkc3BlYy1pbWFnZSwgICBjb21tYSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWltYWdlOiAkd2Via2l0LWltYWdlcztcbiAgYmFja2dyb3VuZC1pbWFnZTogJHNwZWMtaW1hZ2VzO1xufVxuIiwiQG1peGluIGJvcmRlci1pbWFnZSgkYm9yZGVycy4uLikge1xuICAkd2Via2l0LWJvcmRlcnM6ICgpO1xuICAkc3BlYy1ib3JkZXJzOiAoKTtcblxuICBAZWFjaCAkYm9yZGVyIGluICRib3JkZXJzIHtcbiAgICAkd2Via2l0LWJvcmRlcjogKCk7XG4gICAgJHNwZWMtYm9yZGVyOiAoKTtcbiAgICAkYm9yZGVyLXR5cGU6IHR5cGUtb2YoJGJvcmRlcik7XG5cbiAgICBAaWYgJGJvcmRlci10eXBlID09IHN0cmluZyBvciBsaXN0IHtcbiAgICAgICRib3JkZXItc3RyOiBpZigkYm9yZGVyLXR5cGUgPT0gbGlzdCwgbnRoKCRib3JkZXIsIDEpLCAkYm9yZGVyKTtcblxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMCwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRib3JkZXItc3RyLCAwLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICB9XG5cbiAgICAkd2Via2l0LWJvcmRlcnM6IGFwcGVuZCgkd2Via2l0LWJvcmRlcnMsICR3ZWJraXQtYm9yZGVyLCBjb21tYSk7XG4gICAgJHNwZWMtYm9yZGVyczogICBhcHBlbmQoJHNwZWMtYm9yZGVycywgICAkc3BlYy1ib3JkZXIsICAgY29tbWEpO1xuICB9XG5cbiAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6ICR3ZWJraXQtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItaW1hZ2U6ICRzcGVjLWJvcmRlcnM7XG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cblxuLy9FeGFtcGxlczpcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSAyMCBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgc3RyZXRjaCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgMjAgMzAgNDAgNTAgc3RyZXRjaCByb3VuZCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UocmFkaWFsLWdyYWRpZW50KHRvcCwgY292ZXIsIG9yYW5nZSwgeWVsbG93LCBvcmFuZ2UpKTtcbiIsIkBtaXhpbiBjYWxjKCRwcm9wZXJ0eSwgJHZhbHVlKSB7XG4gICN7JHByb3BlcnR5fTogLXdlYmtpdC1jYWxjKCN7JHZhbHVlfSk7XG4gICN7JHByb3BlcnR5fTogY2FsYygjeyR2YWx1ZX0pO1xufVxuIiwiQG1peGluIGNvbHVtbnMoJGFyZzogYXV0bykge1xuICAvLyA8Y29sdW1uLWNvdW50PiB8fCA8Y29sdW1uLXdpZHRoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW5zLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCRpbnQ6IGF1dG8pIHtcbiAgLy8gYXV0byB8fCBpbnRlZ2VyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1jb3VudCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJGxlbmd0aDogbm9ybWFsKSB7XG4gIC8vIG5vcm1hbCB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWdhcCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1maWxsKCRhcmc6IGF1dG8pIHtcbiAgLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWZpbGwsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZSgkYXJnKSB7XG4gIC8vIDxib3JkZXItd2lkdGg+IHx8IDxib3JkZXItc3R5bGU+IHx8IDxjb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS1jb2xvcigkY29sb3IpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtY29sb3IsICRjb2xvciwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLXN0eWxlKCRzdHlsZTogbm9uZSkge1xuICAvLyBub25lIHwgaGlkZGVuIHwgZGFzaGVkIHwgZG90dGVkIHwgZG91YmxlIHwgZ3Jvb3ZlIHwgaW5zZXQgfCBpbnNldCB8IG91dHNldCB8IHJpZGdlIHwgc29saWRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLXdpZHRoICgkd2lkdGg6IG5vbmUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtd2lkdGgsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1zcGFuKCRhcmc6IG5vbmUpIHtcbiAgLy8gbm9uZSB8fCBhbGxcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXNwYW4sICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4td2lkdGgoJGxlbmd0aDogYXV0bykge1xuICAvLyBhdXRvIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4td2lkdGgsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gZmlsdGVyKCRmdW5jdGlvbjogbm9uZSkge1xuICAvLyA8ZmlsdGVyLWZ1bmN0aW9uPiBbPGZpbHRlci1mdW5jdGlvbl0qIHwgbm9uZVxuICBAaW5jbHVkZSBwcmVmaXhlcihmaWx0ZXIsICRmdW5jdGlvbiwgd2Via2l0IHNwZWMpO1xufVxuIiwiLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG5cbi8vIEN1c3RvbSBzaG9ydGhhbmQgbm90YXRpb24gZm9yIGZsZXhib3hcbkBtaXhpbiBib3goJG9yaWVudDogaW5saW5lLWF4aXMsICRwYWNrOiBzdGFydCwgJGFsaWduOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIGRpc3BsYXktYm94O1xuICBAaW5jbHVkZSBib3gtb3JpZW50KCRvcmllbnQpO1xuICBAaW5jbHVkZSBib3gtcGFjaygkcGFjayk7XG4gIEBpbmNsdWRlIGJveC1hbGlnbigkYWxpZ24pO1xufVxuXG5AbWl4aW4gZGlzcGxheS1ib3gge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1vei1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyBJRSAxMFxuICBkaXNwbGF5OiBib3g7XG59XG5cbkBtaXhpbiBib3gtb3JpZW50KCRvcmllbnQ6IGlubGluZS1heGlzKSB7XG4vLyBob3Jpem9udGFsfHZlcnRpY2FsfGlubGluZS1heGlzfGJsb2NrLWF4aXN8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkb3JpZW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LXBhY2soJHBhY2s6IHN0YXJ0KSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGp1c3RpZnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRwYWNrLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wYWNrOiAkcGFjazsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1hbGlnbigkYWxpZ246IHN0cmV0Y2gpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8YmFzZWxpbmV8c3RyZXRjaFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbGlnbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogbm9ybWFsKSB7XG4vLyBub3JtYWx8cmV2ZXJzZXxpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1saW5lcygkbGluZXM6IHNpbmdsZSkge1xuLy8gc2luZ2xlfG11bHRpcGxlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGxpbmVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LW9yZGluYWwtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleCgkdmFsdWU6IDApIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXg6ICR2YWx1ZTsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4LWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuLy8gVW5pZmllZCBhdHRyaWJ1dGVzIGZvciAyMDA5LCAyMDExLCBhbmQgMjAxMiBmbGF2b3Vycy5cblxuLy8gMjAwOSAtIGRpc3BsYXkgKGJveCB8IGlubGluZS1ib3gpXG4vLyAyMDExIC0gZGlzcGxheSAoZmxleGJveCB8IGlubGluZS1mbGV4Ym94KVxuLy8gMjAxMiAtIGRpc3BsYXkgKGZsZXggfCBpbmxpbmUtZmxleClcbkBtaXhpbiBkaXNwbGF5KCR2YWx1ZSkge1xuLy8gZmxleCB8IGlubGluZS1mbGV4XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4XCIge1xuICAgIC8vIDIwMDlcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWJveDtcbiAgICBkaXNwbGF5OiBib3g7XG5cbiAgICAvLyAyMDEyXG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gMjAxMSAoSUUgMTApXG4gICAgZGlzcGxheTogZmxleDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJpbmxpbmUtZmxleFwiIHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtYm94O1xuICAgIGRpc3BsYXk6IGlubGluZS1ib3g7XG5cbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB9IEBlbHNlIHtcbiAgICBkaXNwbGF5OiAkdmFsdWU7XG4gIH1cbn1cblxuLy8gMjAwOSAtIGJveC1mbGV4IChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXggKGRlY2ltYWwgfCB3aWR0aCBkZWNpbWFsKVxuLy8gMjAxMiAtIGZsZXggKGludGVnZXIgaW50ZWdlciB3aWR0aClcbkBtaXhpbiBmbGV4KCR2YWx1ZSkge1xuXG4gIC8vIEdyYWIgZmxleC1ncm93IGZvciBvbGRlciBicm93c2Vycy5cbiAgJGZsZXgtZ3JvdzogbnRoKCR2YWx1ZSwgMSk7XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJGZsZXgtZ3Jvdywgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMCksIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yaWVudCAoIGhvcml6b250YWwgfCB2ZXJ0aWNhbCB8IGlubGluZS1heGlzIHwgYmxvY2stYXhpcylcbi8vICAgICAgLSBib3gtZGlyZWN0aW9uIChub3JtYWwgfCByZXZlcnNlKVxuLy8gMjAxMSAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZTogcm93KSB7XG5cbiAgLy8gQWx0IHZhbHVlcy5cbiAgJHZhbHVlLTIwMDk6ICR2YWx1ZTtcbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgJGRpcmVjdGlvbjogbm9ybWFsO1xuXG4gIEBpZiAkdmFsdWUgPT0gcm93IHtcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJyb3ctcmV2ZXJzZVwiIHtcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBjb2x1bW4ge1xuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJjb2x1bW4tcmV2ZXJzZVwiIHtcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJHZhbHVlLTIwMDksIHdlYmtpdCBtb3ogc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWRpcmVjdGlvbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1saW5lcyAoc2luZ2xlIHwgbXVsdGlwbGUpXG4vLyAyMDExIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlOiBub3dyYXApIHtcbiAgLy8gQWx0IHZhbHVlc1xuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gbm93cmFwIHtcbiAgICAkYWx0LXZhbHVlOiBzaW5nbGU7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IHdyYXAge1xuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcIndyYXAtcmV2ZXJzZVwiIHtcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgfVxuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC13cmFwLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTEgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTIgLSBmbGV4LWZsb3cgKGZsZXgtZGlyZWN0aW9uIHx8IGZsZXgtd3JhcClcbkBtaXhpbiBmbGV4LWZsb3coJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZmxvdywgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yZGluYWwtZ3JvdXAgKGludGVnZXIpXG4vLyAyMDExIC0gZmxleC1vcmRlciAoaW50ZWdlcilcbi8vIDIwMTIgLSBvcmRlciAoaW50ZWdlcilcbkBtaXhpbiBvcmRlcigkaW50OiAwKSB7XG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihvcmRlciwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWdyb3cgKG51bWJlcilcbkBtaXhpbiBmbGV4LWdyb3coJG51bWJlcjogMCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWdyb3csICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBvc2l0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1zaHJpbmsgKG51bWJlcilcbkBtaXhpbiBmbGV4LXNocmluaygkbnVtYmVyOiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtc2hyaW5rLCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1uZWdhdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtYmFzaXMgKG51bWJlcilcbkBtaXhpbiBmbGV4LWJhc2lzKCR3aWR0aDogYXV0bykge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWJhc2lzLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAkd2lkdGg7XG59XG5cbi8vIDIwMDkgLSBib3gtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMSAtIGZsZXgtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMiAtIGp1c3RpZnktY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZClcbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQoJHZhbHVlOiBmbGV4LXN0YXJ0KSB7XG5cbiAgLy8gQWx0IHZhbHVlcy5cbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkYWx0LXZhbHVlOiBqdXN0aWZ5O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBkaXN0cmlidXRlO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGp1c3RpZnktY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LXBhY2s6ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMSAtIGZsZXgtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWl0ZW1zIChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24taXRlbXMoJHZhbHVlOiBzdHJldGNoKSB7XG5cbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24taXRlbXMsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1hbGlnbjogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtaXRlbS1hbGlnbiAoYXV0byB8IHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLXNlbGYgKGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tc2VsZigkdmFsdWU6IGF1dG8pIHtcblxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgfVxuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tc2VsZiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1pdGVtLWFsaWduOiAkdmFsdWUtMjAxMTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtbGluZS1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkgfCBkaXN0cmlidXRlIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1jb250ZW50KCR2YWx1ZTogc3RyZXRjaCkge1xuXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgJHZhbHVlLTIwMTE6IGp1c3RpZnk7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBkaXN0cmlidXRlO1xuICB9XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogJHZhbHVlLTIwMTE7XG59XG4iLCJAbWl4aW4gZm9udC1mYWNlKFxuICAkZm9udC1mYW1pbHksXG4gICRmaWxlLXBhdGgsXG4gICR3ZWlnaHQ6IG5vcm1hbCxcbiAgJHN0eWxlOiBub3JtYWwsXG4gICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lLFxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGYgc3ZnKSB7XG5cbiAgJGZvbnQtdXJsLXByZWZpeDogZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKTtcblxuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc3R5bGU6ICRzdHlsZTtcbiAgICBmb250LXdlaWdodDogJHdlaWdodDtcblxuICAgIHNyYzogZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXG4gICAgICAkZm9udC1mYW1pbHksXG4gICAgICAkZmlsZS1wYXRoLFxuICAgICAgJGFzc2V0LXBpcGVsaW5lLFxuICAgICAgJGZpbGUtZm9ybWF0cyxcbiAgICAgICRmb250LXVybC1wcmVmaXhcbiAgICApO1xuICB9XG59XG4iLCJAbWl4aW4gZm9udC1mZWF0dXJlLXNldHRpbmdzKCRzZXR0aW5ncy4uLikge1xuICBAaWYgbGVuZ3RoKCRzZXR0aW5ncykgPT0gMCB7ICRzZXR0aW5nczogbm9uZTsgfVxuICBAaW5jbHVkZSBwcmVmaXhlcihmb250LWZlYXR1cmUtc2V0dGluZ3MsICRzZXR0aW5ncywgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIi8vIEhpRFBJIG1peGluLiBEZWZhdWx0IHZhbHVlIHNldCB0byAxLjMgdG8gdGFyZ2V0IEdvb2dsZSBOZXh1cyA3IChodHRwOi8vYmphbmdvLmNvbS9hcnRpY2xlcy9taW4tZGV2aWNlLXBpeGVsLXJhdGlvLylcbkBtaXhpbiBoaWRwaSgkcmF0aW86IDEuMykge1xuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHJhdGlvfS8xKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogcm91bmQoJHJhdGlvICogOTZkcGkpKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogJHJhdGlvICogMWRwcHgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiQG1peGluIGh5cGhlbnMoJGh5cGhlbmF0aW9uOiBub25lKSB7XG4gIC8vIG5vbmUgfCBtYW51YWwgfCBhdXRvXG4gIEBpbmNsdWRlIHByZWZpeGVyKGh5cGhlbnMsICRoeXBoZW5hdGlvbiwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIkBtaXhpbiBpbWFnZS1yZW5kZXJpbmcgKCRtb2RlOmF1dG8pIHtcblxuICBAaWYgKCRtb2RlID09IGNyaXNwLWVkZ2VzKSB7XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogbmVhcmVzdC1uZWlnaGJvcjsgLy8gSUU4K1xuICAgIGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlcztcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1vLWNyaXNwLWVkZ2VzO1xuICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDtcbiAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIGltYWdlLXJlbmRlcmluZzogJG1vZGU7XG4gIH1cbn1cbiIsIi8vIEFkZHMga2V5ZnJhbWVzIGJsb2NrcyBmb3Igc3VwcG9ydGVkIHByZWZpeGVzLCByZW1vdmluZyByZWR1bmRhbnQgcHJlZml4ZXMgaW4gdGhlIGJsb2NrJ3MgY29udGVudFxuQG1peGluIGtleWZyYW1lcygkbmFtZSkge1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ6ICAgICRwcmVmaXgtZm9yLXdlYmtpdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTogICAkcHJlZml4LWZvci1tb3ppbGxhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQ6ICRwcmVmaXgtZm9yLW1pY3Jvc29mdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE6ICAgICAkcHJlZml4LWZvci1vcGVyYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYzogICAgICAkcHJlZml4LWZvci1zcGVjO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci13ZWJraXQ6IHRydWUgIWdsb2JhbDtcbiAgICBALXdlYmtpdC1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci1tb3ppbGxhOiB0cnVlICFnbG9iYWw7XG4gICAgQC1tb3ota2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0ICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0ICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmEgICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyAgICAgICFnbG9iYWw7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMge1xuICAgIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gbGluZWFyLWdyYWRpZW50KCRwb3MsICRnMSwgJGcyOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuICAvLyBEZXRlY3Qgd2hhdCB0eXBlIG9mIHZhbHVlIGV4aXN0cyBpbiAkcG9zXG4gICRwb3MtdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkcG9zLXNwZWM6IG51bGw7XG4gICRwb3MtZGVncmVlOiBudWxsO1xuXG4gIC8vIElmICRwb3MgaXMgbWlzc2luZyBmcm9tIG1peGluLCByZWFzc2lnbiB2YXJzIGFuZCBhZGQgZGVmYXVsdCBwb3NpdGlvblxuICBAaWYgKCRwb3MtdHlwZSA9PSBjb2xvcikgb3IgKG50aCgkcG9zLCAxKSA9PSBcInRyYW5zcGFyZW50XCIpICB7XG4gICAgJGcxMDogJGc5OyAkZzk6ICRnODsgJGc4OiAkZzc7ICRnNzogJGc2OyAkZzY6ICRnNTtcbiAgICAkZzU6ICRnNDsgJGc0OiAkZzM7ICRnMzogJGcyOyAkZzI6ICRnMTsgJGcxOiAkcG9zO1xuICAgICRwb3M6IG51bGw7XG4gIH1cblxuICBAaWYgJHBvcyB7XG4gICAgJHBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpO1xuICAgICRwb3MtZGVncmVlOiBudGgoJHBvc2l0aW9ucywgMSk7XG4gICAgJHBvcy1zcGVjOiAgIG50aCgkcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xuXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGcxLCAxKTtcblxuICAvLyBJZiAkZmFsbGJhY2sgaXMgYSBjb2xvciB1c2UgdGhhdCBjb2xvciBhcyB0aGUgZmFsbGJhY2sgY29sb3JcbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRwb3MtZGVncmVlICRmdWxsKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZVxuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KCN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcbn1cbiIsIkBtaXhpbiBwZXJzcGVjdGl2ZSgkZGVwdGg6IG5vbmUpIHtcbiAgLy8gbm9uZSB8IDxsZW5ndGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLCAkZGVwdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBwZXJzcGVjdGl2ZS1vcmlnaW4oJHZhbHVlOiA1MCUgNTAlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLW9yaWdpbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJHBsYWNlaG9sZGVyczogXCI6LXdlYmtpdC1pbnB1dFwiIFwiOi1tb3pcIiBcIi1tb3pcIiBcIi1tcy1pbnB1dFwiO1xuICBAZWFjaCAkcGxhY2Vob2xkZXIgaW4gJHBsYWNlaG9sZGVycyB7XG4gICAgJjojeyRwbGFjZWhvbGRlcn0tcGxhY2Vob2xkZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBSZXF1aXJlcyBTYXNzIDMuMStcbkBtaXhpbiByYWRpYWwtZ3JhZGllbnQoJGcxLCAkZzIsXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJHBvczogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJHNoYXBlLXNpemU6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuXG4gICRkYXRhOiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKTtcbiAgJGcxOiAgbnRoKCRkYXRhLCAxKTtcbiAgJGcyOiAgbnRoKCRkYXRhLCAyKTtcbiAgJHBvczogbnRoKCRkYXRhLCAzKTtcbiAgJHNoYXBlLXNpemU6IG50aCgkZGF0YSwgNCk7XG5cbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XG5cbiAgLy8gU3RyaXAgZGVwcmVjYXRlZCBjb3Zlci9jb250YWluIGZvciBzcGVjXG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcblxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXG4gICRmaXJzdC1jb2xvcjogbnRoKCRmdWxsLCAxKTtcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGZpcnN0LWNvbG9yLCAxKTtcblxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIC8vIEFkZCBDb21tYXMgYW5kIHNwYWNlc1xuICAkc2hhcGUtc2l6ZTogaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sIFwiLCBudWxsKTtcbiAgJHBvczogICAgICAgIGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpO1xuICAkcG9zLXNwZWM6ICAgaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBpZigoJHNoYXBlLXNpemUtc3BlYyAhPSBcIiBcIikgYW5kICgkcG9zID09IG51bGwpLCBcIiN7JHNoYXBlLXNpemUtc3BlY30sIFwiLCBcIiN7JHNoYXBlLXNpemUtc3BlY30gXCIpO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KHVucXVvdGUoI3skcG9zfSN7JHNoYXBlLXNpemV9I3skZnVsbH0pKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcInJhZGlhbC1ncmFkaWVudCgjeyRzaGFwZS1zaXplLXNwZWN9I3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gT3V0cHV0cyB0aGUgc3BlYyBhbmQgcHJlZml4ZWQgdmVyc2lvbnMgb2YgdGhlIGA6OnNlbGVjdGlvbmAgcHNldWRvLWVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0Jvb2x9ICRjdXJyZW50LXNlbGVjdG9yIFtmYWxzZV1cbi8vLyAgIElmIHNldCB0byBgdHJ1ZWAsIGl0IHRha2VzIHRoZSBjdXJyZW50IGVsZW1lbnQgaW50byBjb25zaWRlcmF0aW9uLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNlbGVjdGlvbih0cnVlKSB7XG4vLy8gICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1Mjtcbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQ6Oi1tb3otc2VsZWN0aW9uIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1Mjtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQ6OnNlbGVjdGlvbiB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XG4vLy8gICB9XG5cbkBtaXhpbiBzZWxlY3Rpb24oJGN1cnJlbnQtc2VsZWN0b3I6IGZhbHNlKSB7XG4gIEBpZiAkY3VycmVudC1zZWxlY3RvciB7XG4gICAgJjo6LW1vei1zZWxlY3Rpb24ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgJjo6c2VsZWN0aW9uIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgOjotbW96LXNlbGVjdGlvbiB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICA6OnNlbGVjdGlvbiB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiB0ZXh0LWRlY29yYXRpb24oJHZhbHVlKSB7XG4vLyA8dGV4dC1kZWNvcmF0aW9uLWxpbmU+IHx8IDx0ZXh0LWRlY29yYXRpb24tc3R5bGU+IHx8IDx0ZXh0LWRlY29yYXRpb24tY29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbiwgJHZhbHVlLCBtb3opO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWxpbmUoJGxpbmU6IG5vbmUpIHtcbi8vIG5vbmUgfHwgdW5kZXJsaW5lIHx8IG92ZXJsaW5lIHx8IGxpbmUtdGhyb3VnaFxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tbGluZSwgJGxpbmUsIG1veik7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tc3R5bGUoJHN0eWxlOiBzb2xpZCkge1xuLy8gc29saWQgfHwgZG91YmxlIHx8IGRvdHRlZCB8fCBkYXNoZWQgfHwgd2F2eVxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tc3R5bGUsICRzdHlsZSwgbW96IHdlYmtpdCk7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tY29sb3IoJGNvbG9yOiBjdXJyZW50Q29sb3IpIHtcbi8vIGN1cnJlbnRDb2xvciB8fCA8Y29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1jb2xvciwgJGNvbG9yLCBtb3opO1xufVxuIiwiQG1peGluIHRyYW5zZm9ybSgkcHJvcGVydHk6IG5vbmUpIHtcbiAgLy8gbm9uZSB8IDx0cmFuc2Zvcm0tZnVuY3Rpb24+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybSwgJHByb3BlcnR5LCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tb3JpZ2luKCRheGVzOiA1MCUpIHtcbiAgLy8geC1heGlzIC0gbGVmdCB8IGNlbnRlciB8IHJpZ2h0ICB8IGxlbmd0aCB8ICVcbiAgLy8geS1heGlzIC0gdG9wICB8IGNlbnRlciB8IGJvdHRvbSB8IGxlbmd0aCB8ICVcbiAgLy8gei1heGlzIC0gICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tb3JpZ2luLCAkYXhlcywgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLXN0eWxlKCRzdHlsZTogZmxhdCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwiLy8gU2hvcnRoYW5kIG1peGluLiBTdXBwb3J0cyBtdWx0aXBsZSBwYXJlbnRoZXNlcy1kZWxpbWluYXRlZCB2YWx1ZXMgZm9yIGVhY2ggdmFyaWFibGUuXG4vLyBFeGFtcGxlOiBAaW5jbHVkZSB0cmFuc2l0aW9uIChhbGwgMnMgZWFzZS1pbi1vdXQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbiAob3BhY2l0eSAxcyBlYXNlLWluIDJzLCB3aWR0aCAycyBlYXNlLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLXByb3BlcnR5ICh0cmFuc2Zvcm0sIG9wYWNpdHkpO1xuXG5AbWl4aW4gdHJhbnNpdGlvbigkcHJvcGVydGllcy4uLikge1xuICAvLyBGaXggZm9yIHZlbmRvci1wcmVmaXggdHJhbnNmb3JtIHByb3BlcnR5XG4gICRuZWVkcy1wcmVmaXhlczogZmFsc2U7XG4gICR3ZWJraXQ6ICgpO1xuICAkbW96OiAoKTtcbiAgJHNwZWM6ICgpO1xuXG4gIC8vIENyZWF0ZSBsaXN0cyBmb3IgdmVuZG9yLXByZWZpeGVkIHRyYW5zZm9ybVxuICBAZWFjaCAkbGlzdCBpbiAkcHJvcGVydGllcyB7XG4gICAgQGlmIG50aCgkbGlzdCwgMSkgPT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAkbmVlZHMtcHJlZml4ZXM6IHRydWU7XG4gICAgICAkbGlzdDE6IC13ZWJraXQtdHJhbnNmb3JtO1xuICAgICAgJGxpc3QyOiAtbW96LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MzogKCk7XG5cbiAgICAgIEBlYWNoICR2YXIgaW4gJGxpc3Qge1xuICAgICAgICAkbGlzdDM6IGpvaW4oJGxpc3QzLCAkdmFyKTtcblxuICAgICAgICBAaWYgJHZhciAhPSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICAgICAkbGlzdDE6IGpvaW4oJGxpc3QxLCAkdmFyKTtcbiAgICAgICAgICAkbGlzdDI6IGpvaW4oJGxpc3QyLCAkdmFyKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QxKTtcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdDIpO1xuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0Myk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QsIGNvbW1hKTtcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdCwgY29tbWEpO1xuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0LCBjb21tYSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICRuZWVkcy1wcmVmaXhlcyB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkd2Via2l0O1xuICAgICAgIC1tb3otdHJhbnNpdGlvbjogJG1vejtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRzcGVjO1xuICB9IEBlbHNlIHtcbiAgICBAaWYgbGVuZ3RoKCRwcm9wZXJ0aWVzKSA+PSAxIHtcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHByb3BlcnRpZXM6IGFsbCAwLjE1cyBlYXNlLW91dCAwcztcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1wcm9wZXJ0eSgkcHJvcGVydGllcy4uLikge1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwid2Via2l0XCIpO1xuICAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwibW96XCIpO1xuICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIGZhbHNlKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dCB8IGN1YmljLWJlemllcigpXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZGVsYXkoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiB1c2VyLXNlbGVjdCgkdmFsdWU6IG5vbmUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodXNlci1zZWxlY3QsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1jb2xvcmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWNvbG9yKCNhNjBiNTUgIzc2Y2Q5YyBudWxsICNlOGFlMWEpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItbGVmdC1jb2xvcjogI2U4YWUxYTtcbi8vLyAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjNzZjZDljO1xuLy8vICAgICBib3JkZXItdG9wLWNvbG9yOiAjYTYwYjU1O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLWNvbG9yYFxuXG5AbWl4aW4gYm9yZGVyLWNvbG9yKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgY29sb3IsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1yYWRpdXNgIG9uIGJvdGggY29ybmVycyBvbiB0aGUgc2lkZSBvZiBhIGJveC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmFkaWlcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50LW9uZSB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKDVweCk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50LXR3byB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygzcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQtb25lIHtcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xuLy8vICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudC10d28ge1xuLy8vICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1yYWRpdXNgXG5cbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXN0eWxlYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZGFzaGVkIG51bGwgc29saWQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXN0eWxlYFxuXG5AbWl4aW4gYm9yZGVyLXN0eWxlKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgc3R5bGUsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci13aWR0aGAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXdpZHRoKDFlbSBudWxsIDIwcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAyMHB4O1xuLy8vICAgICBib3JkZXItdG9wLXdpZHRoOiAxZW07XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItd2lkdGhgXG5cbkBtaXhpbiBib3JkZXItd2lkdGgoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCB3aWR0aCwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIGJ1dHRvbnMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLWJ1dHRvbnN9YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgI3skYWxsLWJ1dHRvbnN9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLWJ1dHRvbnMtZm9jdXN9LFxuLy8vICAgI3skYWxsLWJ1dHRvbnMtaG92ZXJ9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLWJ1dHRvbnMtYWN0aXZlfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBidXR0b24sXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGJ1dHRvbjpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmZvY3VzLFxuLy8vICAgYnV0dG9uOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06aG92ZXIge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBidXR0b246YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTphY3RpdmUge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUgYXNzaWduLWlucHV0c1xuLy8vXG4vLy8gQHR5cGUgTGlzdFxuLy8vXG4vLy8gQHRvZG8gUmVtb3ZlIGRvdWJsZSBhc3NpZ25lZCB2YXJpYWJsZXMgKExpbmVzIDU54oCTNjIpIGluIHY1LjAuMFxuXG4kYnV0dG9ucy1saXN0OiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiYnV0dG9uXCJdJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicmVzZXRcIl0nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzdWJtaXRcIl0nO1xuXG4kYWxsLWJ1dHRvbnM6ICAgICAgICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QpO1xuJGFsbC1idXR0b25zLWFjdGl2ZTogYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBhY3RpdmUpO1xuJGFsbC1idXR0b25zLWZvY3VzOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBmb2N1cyk7XG4kYWxsLWJ1dHRvbnMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGhvdmVyKTtcblxuJGFsbC1idXR0b24taW5wdXRzOiAgICAgICAgJGFsbC1idXR0b25zO1xuJGFsbC1idXR0b24taW5wdXRzLWFjdGl2ZTogJGFsbC1idXR0b25zLWFjdGl2ZTtcbiRhbGwtYnV0dG9uLWlucHV0cy1mb2N1czogICRhbGwtYnV0dG9ucy1mb2N1cztcbiRhbGwtYnV0dG9uLWlucHV0cy1ob3ZlcjogICRhbGwtYnV0dG9ucy1ob3ZlcjtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGluY2x1ZGUgYSBjbGVhcmZpeCBmb3IgY29udGFpbmluZyBmbG9hdHMuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vY3NzbW9qby5jb20vbGF0ZXN0X25ld19jbGVhcmZpeF9zb19mYXIvXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudDo6YWZ0ZXIge1xuLy8vICAgICBjbGVhcjogYm90aDtcbi8vLyAgICAgY29udGVudDogXCJcIjtcbi8vLyAgICAgZGlzcGxheTogdGFibGU7XG4vLy8gICB9XG5cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBUcnVuY2F0ZXMgdGV4dCBhbmQgYWRkcyBhbiBlbGxpcHNpcyB0byByZXByZXNlbnQgb3ZlcmZsb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsxMDAlXVxuLy8vICAgTWF4LXdpZHRoIGZvciB0aGUgc3RyaW5nIHRvIHJlc3BlY3QgYmVmb3JlIGJlaW5nIHRydW5jYXRlZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGVsbGlwc2lzO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4vLy8gICAgIG1heC13aWR0aDogMTAwJTtcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbi8vLyAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4vLy8gICAgIHdvcmQtd3JhcDogbm9ybWFsO1xuLy8vICAgfVxuXG5AbWl4aW4gZWxsaXBzaXMoJHdpZHRoOiAxMDAlKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAkd2lkdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlb3JnaWEgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGdlb3JnaWE6IFwiR2VvcmdpYVwiLCBcIkNhbWJyaWFcIiwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgXCJUaW1lc1wiLCBzZXJpZjtcblxuLy8vIEhlbHZldGljYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kaGVsdmV0aWNhOiBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiUm9ib3RvXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcblxuLy8vIEx1Y2lkYSBHcmFuZGUgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGx1Y2lkYS1ncmFuZGU6IFwiTHVjaWRhIEdyYW5kZVwiLCBcIlRhaG9tYVwiLCBcIlZlcmRhbmFcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuXG4vLy8gTW9ub3NwYWNlIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRtb25vc3BhY2U6IFwiQml0c3RyZWFtIFZlcmEgU2FucyBNb25vXCIsIFwiQ29uc29sYXNcIiwgXCJDb3VyaWVyXCIsIG1vbm9zcGFjZTtcblxuLy8vIFZlcmRhbmEgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJHZlcmRhbmE6IFwiVmVyZGFuYVwiLCBcIkdlbmV2YVwiLCBzYW5zLXNlcmlmO1xuIiwiLy8vIEhpZGVzIHRoZSB0ZXh0IGluIGFuIGVsZW1lbnQsIGNvbW1vbmx5IHVzZWQgdG8gc2hvdyBhbiBpbWFnZS4gU29tZSBlbGVtZW50cyB3aWxsIG5lZWQgYmxvY2stbGV2ZWwgc3R5bGVzIGFwcGxpZWQuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vemVsZG1hbi5jb20vMjAxMi8wMy8wMS9yZXBsYWNpbmctdGhlLTk5OTlweC1oYWNrLW5ldy1pbWFnZS1yZXBsYWNlbWVudFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGhpZGUtdGV4dDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbi8vLyAgICAgdGV4dC1pbmRlbnQ6IDEwMSU7XG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4vLy8gICB9XG4vLy9cbi8vLyBAdG9kbyBSZW1vdmUgaGVpZ2h0IGFyZ3VtZW50IGluIHY1LjAuMFxuXG5AbWl4aW4gaGlkZS10ZXh0KCRoZWlnaHQ6IG51bGwpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1pbmRlbnQ6IDEwMSU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgQGlmICRoZWlnaHQge1xuICAgIEB3YXJuIFwiVGhlIGBoaWRlLXRleHRgIG1peGluIGhhcyBjaGFuZ2VkIGFuZCBubyBsb25nZXIgcmVxdWlyZXMgYSBoZWlnaHQuIFRoZSBoZWlnaHQgYXJndW1lbnQgd2lsbCBubyBsb25nZXIgYmUgYWNjZXB0ZWQgaW4gdjUuMC4wXCI7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYG1hcmdpbmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMTBweCAzZW0gMjB2aCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDNlbTtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDIwdmg7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMTBweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYG1hcmdpbmBcblxuQG1peGluIG1hcmdpbigkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShtYXJnaW4sIGZhbHNlLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBwYWRkaW5nYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwYWRkaW5nKDEydmggbnVsbCAxMHB4IDUlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4vLy8gICAgIHBhZGRpbmctbGVmdDogNSU7XG4vLy8gICAgIHBhZGRpbmctdG9wOiAxMnZoO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgcGFkZGluZ2BcblxuQG1peGluIHBhZGRpbmcoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkocGFkZGluZywgZmFsc2UsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciBzZXR0aW5nIGFuIGVsZW1lbnTigJlzIHBvc2l0aW9uLiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge1Bvc2l0aW9ufSAkcG9zaXRpb24gW3JlbGF0aXZlXVxuLy8vICAgQSBDU1MgcG9zaXRpb24gdmFsdWVcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJGNvb3JkaW5hdGVzIFtudWxsIG51bGwgbnVsbCBudWxsXVxuLy8vICAgTGlzdCBvZiB2YWx1ZXMgdGhhdCBjb3JyZXNwb25kIHRvIHRoZSA0LXZhbHVlIHN5bnRheCBmb3IgdGhlIGVkZ2VzIG9mIGEgYm94XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCBudWxsIDEwZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBsZWZ0OiAxMGVtO1xuLy8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLy8gICAgIHRvcDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSB1bnBhY2tcblxuQG1peGluIHBvc2l0aW9uKCRwb3NpdGlvbjogcmVsYXRpdmUsICRjb29yZGluYXRlczogbnVsbCBudWxsIG51bGwgbnVsbCkge1xuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09IGxpc3Qge1xuICAgICRjb29yZGluYXRlczogJHBvc2l0aW9uO1xuICAgICRwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAkY29vcmRpbmF0ZXM6IHVucGFjaygkY29vcmRpbmF0ZXMpO1xuXG4gICRvZmZzZXRzOiAoXG4gICAgdG9wOiAgICBudGgoJGNvb3JkaW5hdGVzLCAxKSxcbiAgICByaWdodDogIG50aCgkY29vcmRpbmF0ZXMsIDIpLFxuICAgIGJvdHRvbTogbnRoKCRjb29yZGluYXRlcywgMyksXG4gICAgbGVmdDogICBudGgoJGNvb3JkaW5hdGVzLCA0KVxuICApO1xuXG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XG5cbiAgQGVhY2ggJG9mZnNldCwgJHZhbHVlIGluICRvZmZzZXRzIHtcbiAgICBAaWYgaXMtbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgI3skb2Zmc2V0fTogJHZhbHVlO1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSBtaXhpbiBmb3IgZ2VuZXJhdGluZyB2ZW5kb3IgcHJlZml4ZXMgb24gbm9uLXN0YW5kYXJkaXplZCBwcm9wZXJ0aWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eVxuLy8vICAgUHJvcGVydHkgdG8gcHJlZml4XG4vLy9cbi8vLyBAcGFyYW0geyp9ICR2YWx1ZVxuLy8vICAgVmFsdWUgdG8gdXNlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRwcmVmaXhlc1xuLy8vICAgUHJlZml4ZXMgdG8gZGVmaW5lXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cywgMTBweCwgd2Via2l0IG1zIHNwZWMpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itd2Via2l0XG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1tb3ppbGxhXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1taWNyb3NvZnRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW9wZXJhXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1zcGVjXG5cbkBtaXhpbiBwcmVmaXhlcigkcHJvcGVydHksICR2YWx1ZSwgJHByZWZpeGVzKSB7XG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcbiAgICBAaWYgJHByZWZpeCA9PSB3ZWJraXQge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgICAgIC13ZWJraXQtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1veiB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgICAgIC1tb3otI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1zIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1taWNyb3NvZnQge1xuICAgICAgICAtbXMtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG8ge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW9wZXJhIHtcbiAgICAgICAgLW8tI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IHNwZWMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXNwZWMge1xuICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlICB7XG4gICAgICBAd2FybiBcIlVucmVjb2duaXplZCBwcmVmaXg6ICN7JHByZWZpeH1cIjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKSB7XG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6IGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICBmYWxzZSAhZ2xvYmFsO1xufVxuIiwiQG1peGluIHJldGluYS1pbWFnZSgkZmlsZW5hbWUsICRiYWNrZ3JvdW5kLXNpemUsICRleHRlbnNpb246IHBuZywgJHJldGluYS1maWxlbmFtZTogbnVsbCwgJHJldGluYS1zdWZmaXg6IF8yeCwgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUpIHtcbiAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH0gQGVsc2Uge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgIHVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICB9XG5cbiAgQGluY2x1ZGUgaGlkcGkge1xuICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1zaXplOiAkYmFja2dyb3VuZC1zaXplO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTZXRzIHRoZSBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBvZiB0aGUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNpemVcbi8vLyAgIEEgbGlzdCBvZiBhdCBtb3N0IDIgc2l6ZSB2YWx1ZXMuXG4vLy9cbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgdmFsdWUgaW4gYCRzaXplYCBpdCBpcyB1c2VkIGZvciBib3RoIHdpZHRoIGFuZCBoZWlnaHQuIEFsbCB1bml0cyBhcmUgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNpemUoMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZShhdXRvIDEwZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogMmVtO1xuLy8vICAgICBoZWlnaHQ6IDJlbTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IGF1dG87XG4vLy8gICAgIGhlaWdodDogMTBlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEB0b2RvIFJlZmFjdG9yIGluIDUuMC4wIHRvIHVzZSBhIGNvbW1hLXNlcGFyYXRlZCBhcmd1bWVudFxuXG5AbWl4aW4gc2l6ZSgkdmFsdWUpIHtcbiAgJHdpZHRoOiBudGgoJHZhbHVlLCAxKTtcbiAgJGhlaWdodDogJHdpZHRoO1xuXG4gIEBpZiBsZW5ndGgoJHZhbHVlKSA+IDEge1xuICAgICRoZWlnaHQ6IG50aCgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGlmIGlzLXNpemUoJGhlaWdodCkge1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skaGVpZ2h0fWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCRoZWlnaHRgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG5cbiAgQGlmIGlzLXNpemUoJHdpZHRoKSB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skd2lkdGh9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJHdpZHRoYCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIHRleHQtYmFzZWQgaW5wdXRzLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC10ZXh0LWlucHV0c31gLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHN9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWZvY3VzfSxcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1ob3Zlcn0ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl0sXG4vLy8gICB0ZXh0YXJlYSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpmb2N1cyxcbi8vLyAgIHRleHRhcmVhOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmhvdmVyLFxuLy8vICAgdGV4dGFyZWE6aG92ZXIge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmFjdGl2ZSxcbi8vLyAgIHRleHRhcmVhOmFjdGl2ZSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiR0ZXh0LWlucHV0cy1saXN0OiAnaW5wdXRbdHlwZT1cImNvbG9yXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZW1haWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibW9udGhcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibnVtYmVyXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInNlYXJjaFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGV4dFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0aW1lXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInVybFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ3ZWVrXCJdJyxcbiAgICAgICAgICAgICAgICAgICAndGV4dGFyZWEnO1xuXG4kYWxsLXRleHQtaW5wdXRzOiAgICAgICAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCk7XG4kYWxsLXRleHQtaW5wdXRzLWFjdGl2ZTogYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgYWN0aXZlKTtcbiRhbGwtdGV4dC1pbnB1dHMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBmb2N1cyk7XG4kYWxsLXRleHQtaW5wdXRzLWhvdmVyOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgaG92ZXIpO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ1NTIGN1YmljLWJlemllciB0aW1pbmcgZnVuY3Rpb25zLiBUaW1pbmcgZnVuY3Rpb25zIGNvdXJ0ZXN5IG9mIGpxdWVyeS5lYXNpZSAoZ2l0aHViLmNvbS9qYXVraWEvZWFzaWUpXG4vLy9cbi8vLyBUaW1pbmcgZnVuY3Rpb25zIGFyZSB0aGUgc2FtZSBhcyBkZW1vZWQgaGVyZTogaHR0cDovL2pxdWVyeXVpLmNvbS9yZXNvdXJjZXMvZGVtb3MvZWZmZWN0L2Vhc2luZy5odG1sXG4vLy9cbi8vLyBAdHlwZSBjdWJpYy1iZXppZXJcblxuJGVhc2UtaW4tcXVhZDogICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA4NSwgMC42ODAsIDAuNTMwKTtcbiRlYXNlLWluLWN1YmljOiAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4kZWFzZS1pbi1xdWFydDogICAgIGN1YmljLWJlemllcigwLjg5NSwgIDAuMDMwLCAwLjY4NSwgMC4yMjApO1xuJGVhc2UtaW4tcXVpbnQ6ICAgICBjdWJpYy1iZXppZXIoMC43NTUsICAwLjA1MCwgMC44NTUsIDAuMDYwKTtcbiRlYXNlLWluLXNpbmU6ICAgICAgY3ViaWMtYmV6aWVyKDAuNDcwLCAgMC4wMDAsIDAuNzQ1LCAwLjcxNSk7XG4kZWFzZS1pbi1leHBvOiAgICAgIGN1YmljLWJlemllcigwLjk1MCwgIDAuMDUwLCAwLjc5NSwgMC4wMzUpO1xuJGVhc2UtaW4tY2lyYzogICAgICBjdWJpYy1iZXppZXIoMC42MDAsICAwLjA0MCwgMC45ODAsIDAuMzM1KTtcbiRlYXNlLWluLWJhY2s6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAtMC4yODAsIDAuNzM1LCAwLjA0NSk7XG5cbiRlYXNlLW91dC1xdWFkOiAgICAgY3ViaWMtYmV6aWVyKDAuMjUwLCAgMC40NjAsIDAuNDUwLCAwLjk0MCk7XG4kZWFzZS1vdXQtY3ViaWM6ICAgIGN1YmljLWJlemllcigwLjIxNSwgIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuJGVhc2Utb3V0LXF1YXJ0OiAgICBjdWJpYy1iZXppZXIoMC4xNjUsICAwLjg0MCwgMC40NDAsIDEuMDAwKTtcbiRlYXNlLW91dC1xdWludDogICAgY3ViaWMtYmV6aWVyKDAuMjMwLCAgMS4wMDAsIDAuMzIwLCAxLjAwMCk7XG4kZWFzZS1vdXQtc2luZTogICAgIGN1YmljLWJlemllcigwLjM5MCwgIDAuNTc1LCAwLjU2NSwgMS4wMDApO1xuJGVhc2Utb3V0LWV4cG86ICAgICBjdWJpYy1iZXppZXIoMC4xOTAsICAxLjAwMCwgMC4yMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1jaXJjOiAgICAgY3ViaWMtYmV6aWVyKDAuMDc1LCAgMC44MjAsIDAuMTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtYmFjazogICAgIGN1YmljLWJlemllcigwLjE3NSwgIDAuODg1LCAwLjMyMCwgMS4yNzUpO1xuXG4kZWFzZS1pbi1vdXQtcXVhZDogIGN1YmljLWJlemllcigwLjQ1NSwgIDAuMDMwLCAwLjUxNSwgMC45NTUpO1xuJGVhc2UtaW4tb3V0LWN1YmljOiBjdWJpYy1iZXppZXIoMC42NDUsICAwLjA0NSwgMC4zNTUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWFydDogY3ViaWMtYmV6aWVyKDAuNzcwLCAgMC4wMDAsIDAuMTc1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtcXVpbnQ6IGN1YmljLWJlemllcigwLjg2MCwgIDAuMDAwLCAwLjA3MCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXNpbmU6ICBjdWJpYy1iZXppZXIoMC40NDUsICAwLjA1MCwgMC41NTAsIDAuOTUwKTtcbiRlYXNlLWluLW91dC1leHBvOiAgY3ViaWMtYmV6aWVyKDEuMDAwLCAgMC4wMDAsIDAuMDAwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtY2lyYzogIGN1YmljLWJlemllcigwLjc4NSwgIDAuMTM1LCAwLjE1MCwgMC44NjApO1xuJGVhc2UtaW4tb3V0LWJhY2s6ICBjdWJpYy1iZXppZXIoMC42ODAsIC0wLjU1MCwgMC4yNjUsIDEuNTUwKTtcbiIsIkBtaXhpbiB0cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCAkZGlyZWN0aW9uKSB7XG4gICR3aWR0aDogbnRoKCRzaXplLCAxKTtcbiAgJGhlaWdodDogbnRoKCRzaXplLCBsZW5ndGgoJHNpemUpKTtcbiAgJGZvcmVncm91bmQtY29sb3I6IG50aCgkY29sb3IsIDEpO1xuICAkYmFja2dyb3VuZC1jb2xvcjogaWYobGVuZ3RoKCRjb2xvcikgPT0gMiwgbnRoKCRjb2xvciwgMiksIHRyYW5zcGFyZW50KTtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHVwLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSB1cC1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQpIHtcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWRvd24pIHtcbiAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1yaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gY2hhbmdlIHRoZSBgd29yZC13cmFwYCBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkd3JhcCBbYnJlYWstd29yZF1cbi8vLyAgIFZhbHVlIGZvciB0aGUgYHdvcmQtYnJlYWtgIHByb3BlcnR5LlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIEBpbmNsdWRlIHdvcmQtd3JhcChicmVhay13b3JkKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbi8vLyAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuLy8vICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4vLy8gICB9XG5cbkBtaXhpbiB3b3JkLXdyYXAoJHdyYXA6IGJyZWFrLXdvcmQpIHtcbiAgb3ZlcmZsb3ctd3JhcDogJHdyYXA7XG4gIHdvcmQtd3JhcDogJHdyYXA7XG5cbiAgQGlmICR3cmFwID09IGJyZWFrLXdvcmQge1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgfSBAZWxzZSB7XG4gICAgd29yZC1icmVhazogJHdyYXA7XG4gIH1cbn1cbiIsIi8vIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBNQUpPUiB2ZXJzaW9uIHJlbGVhc2VcblxuQG1peGluIGlubGluZS1ibG9jayB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICBAd2FybiBcIlRoZSBpbmxpbmUtYmxvY2sgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG5AbWl4aW4gYnV0dG9uICgkc3R5bGU6IHNpbXBsZSwgJGJhc2UtY29sb3I6ICM0Mjk0ZjAsICR0ZXh0LXNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xuXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xuICAgICRzdHlsZTogc2ltcGxlO1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICRiYXNlLWNvbG9yO1xuICAgICR0ZXh0LXNpemU6ICRzdHlsZTtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSAjNDI5NGYwIHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxuXG4gIEB3YXJuIFwiVGhlIGJ1dHRvbiBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbi8vIFNlbGVjdG9yIFN0eWxlIEJ1dHRvblxuQG1peGluIGJ1dHRvbnN0eWxlKCR0eXBlLCAkYi1jb2xvciwgJHQtc2l6ZSwgJHBhZCkge1xuICAvLyBHcmF5c2NhbGUgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gc2hpbnkgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBwaWxsIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBmbGF0IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIC8vIENvbG9yZWQgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gc2hpbnkge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBwaWxsIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBmbGF0IHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cbn1cblxuLy8gU2ltcGxlIEJ1dHRvblxuQG1peGluIHNpbXBsZSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC04JSwgICRsaWdodG5lc3M6ICAxNSUpO1xuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTExJSk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgMTUlLCAkbGlnaHRuZXNzOiAtMTglKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNCUsICRsaWdodG5lc3M6IC01JSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC03JSwgJGxpZ2h0bmVzczogIDUlKTtcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDglLCAkbGlnaHRuZXNzOiAtMTQlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA5JSwgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDclLCAkbGlnaHRuZXNzOiAtMTclKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZSwgaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gU2hpbnkgQnV0dG9uXG5AbWl4aW4gc2hpbnkoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTE3LCAkZ3JlZW46IC0xMTEsICRibHVlOiAtODEpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTI2LCAkZ3JlZW46IC0xMjcsICRibHVlOiAtMTIyKTtcbiAgJGZvdXJ0aC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTc5LCAgJGdyZWVuOiAtNzAsICAkYmx1ZTogLTQ2KTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogIDM3LCAgJGdyZWVuOiAgMjksICAkYmx1ZTogIDEyKTtcbiAgJHNlY29uZC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTU2LCAgJGdyZWVuOiAtNTAsICAkYmx1ZTogLTMzKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTE0MCwgJGdyZWVuOiAtMTQxLCAkYmx1ZTogLTExNCk7XG4gICR0aGlyZC1zdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgICRncmVlbjogLTc1LCAgJGJsdWU6IC00OCk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkZm91cnRoLXN0b3A6ICAgZ3JheXNjYWxlKCRmb3VydGgtc3RvcCk7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc2Vjb25kLXN0b3A6ICAgZ3JheXNjYWxlKCRzZWNvbmQtc3RvcCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICAgICR0aGlyZC1zdG9wOiAgICBncmF5c2NhbGUoJHRoaXJkLXN0b3ApO1xuICB9XG5cbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGJhc2UtY29sb3IgMCUsICRzZWNvbmQtc3RvcCA1MCUsICR0aGlyZC1zdG9wIDUwJSwgJGZvdXJ0aC1zdG9wIDEwMCUpO1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTMsICRncmVlbjogLTE1LCAkYmx1ZTogLTE4KTtcbiAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTY2LCAkZ3JlZW46IC02MiwgJGJsdWU6IC01MSk7XG4gICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC05MywgJGdyZWVuOiAtODUsICRibHVlOiAtNjYpO1xuICAgICRmb3VydGgtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICRncmVlbjogLTgwLCAkYmx1ZTogLTYzKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJGZpcnN0LXN0b3AtaG92ZXIpO1xuICAgICAgJHNlY29uZC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJHNlY29uZC1zdG9wLWhvdmVyKTtcbiAgICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wLWhvdmVyKTtcbiAgICAgICRmb3VydGgtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRmb3VydGgtc3RvcC1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGZpcnN0LXN0b3AtaG92ZXIgIDAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWNvbmQtc3RvcC1ob3ZlciA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXJkLXN0b3AtaG92ZXIgIDUwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZm91cnRoLXN0b3AtaG92ZXIgMTAwJSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTEsICRncmVlbjogLTExNiwgJGJsdWU6IC0xMjIpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjBweCAwICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIFBpbGwgQnV0dG9uXG5AbWl4aW4gcGlsbCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTExJSwgJGxpZ2h0bmVzczogLTI2JSk7XG4gICRib3JkZXItc2lkZXM6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIxJSwgJGxpZ2h0bmVzczogLTIxJSk7XG4gICRib3JkZXItdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTMwJSwgJGxpZ2h0bmVzczogLTE1JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTElLCAgJGxpZ2h0bmVzczogIDclKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTQlLCAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtMTklLCAkbGlnaHRuZXNzOiAtMTUlKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xuICAgICRib3JkZXItdG9wOiAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGlnaHRuZXNzOiAtNC41JSk7XG4gICAgJGJvcmRlci1ib3R0b206ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTMuNSUsICRsaWdodG5lc3M6IC0zMiUpO1xuICAgICRib3JkZXItc2lkZXM6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIlLCAgICAkbGlnaHRuZXNzOiAtMjclKTtcbiAgICAkYm9yZGVyLXRvcDogICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xNyUsICAgJGxpZ2h0bmVzczogLTIxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICRzYXR1cmF0aW9uOiAtMSUsICAgICRsaWdodG5lc3M6ICAzJSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtNCUsICAgICRsaWdodG5lc3M6IC0xNS41JSk7XG4gICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtNSUsICAgICRsaWdodG5lc3M6IC0yMiUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICAgICRib3JkZXItYm90dG9tOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICAgJGJvcmRlci1zaWRlczogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAgICRib3JkZXItdG9wOiAgICAgICAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcblxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctaG92ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDQsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0xMCUpO1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA2LCAgJHNhdHVyYXRpb246IC0yLjUlLCAkbGlnaHRuZXNzOiAtMzAlKTtcbiAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogMTEsICRzYXR1cmF0aW9uOiAgNiUsICAgJGxpZ2h0bmVzczogLTMxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDksICAkc2F0dXJhdGlvbjogIDIlLCAgICRsaWdodG5lc3M6IC0yMS41JSk7XG4gICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDUsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0yMS41JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgZ3JheXNjYWxlKCRhY3RpdmUtY29sb3IpO1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20tYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQ6ICRhY3RpdmUtY29sb3I7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IDNweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIEZsYXQgQnV0dG9uXG5AbWl4aW4gZmxhdCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogMDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKXtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNCUsICRsaWdodG5lc3M6IDUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWFjdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuLy8gRmxleGlibGUgZ3JpZFxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcbiAgJHdpZHRoOiAkY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHdpZHRoIC8gJGNvbnRhaW5lci13aWR0aCk7XG5cbiAgQHdhcm4gXCJUaGUgZmxleC1ncmlkIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuLy8gRmxleGlibGUgZ3V0dGVyXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVyIC8gJGNvbnRhaW5lci13aWR0aCk7XG5cbiAgQHdhcm4gXCJUaGUgZmxleC1ndXR0ZXIgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG5AZnVuY3Rpb24gZ3JpZC13aWR0aCgkbikge1xuICBAcmV0dXJuICRuICogJGd3LWNvbHVtbiArICgkbiAtIDEpICogJGd3LWd1dHRlcjtcblxuICBAd2FybiBcIlRoZSBncmlkLXdpZHRoIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQGZ1bmN0aW9uIGdvbGRlbi1yYXRpbygkdmFsdWUsICRpbmNyZW1lbnQpIHtcbiAgQHJldHVybiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZSwgJHJhdGlvOiAkZ29sZGVuKTtcblxuICBAd2FybiBcIlRoZSBnb2xkZW4tcmF0aW8gZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gUGxlYXNlIHVzZSB0aGUgbW9kdWxhci1zY2FsZSBmdW5jdGlvbiwgaW5zdGVhZC5cIjtcbn1cblxuQG1peGluIGJveC1zaXppbmcoJGJveCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtc2l6aW5nLCAkYm94LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIEB3YXJuIFwiVGhlIGJveC1zaXppbmcgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gVGhpcyBwcm9wZXJ0eSBjYW4gbm93IGJlIHVzZWQgdW4tcHJlZml4ZWQuXCI7XG59XG4iLCIkZm9udC1zdGFjazogUm9ib3RvLCBcIkRyb2lkIFNhbnNcIiwgQXJpYWwsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuXG4kcHJpbWFyeS1jb2xvcjogIzM5NDY5NDtcbiRwcmltYXJ5LWR1bGw6ICM4NTg1ODU7XG4kc2Vjb25kYXJ5LWNvbG9yOiAjNTU2OUE0O1xuJHRlcnRpYXJ5LWNvbG9yOiAjOTdBNUQ2O1xuJG9mZi13aGl0ZTogI2U4ZThlODtcbiR0YWJsZS10ZXh0LWNvbG9yOiAjNUE1QTVBO1xuJGRpc2FibGVkLWNvbG9yOiAjQzBDMEMwO1xuJGxpZ2h0LWdyYXk6ICNFNUU1RTU7XG4kbm90LXNvLWJsYWNrLWJsYWNrOiAjMjgyODI4O1xuJGNvbnRyYXN0LWJsdWU6ICMzNDJFNTY7XG4kaW52aXNpYmxlOiByZ2JhKDAsIDAsIDAsIDApO1xuXG4kYWRkLXRvLWNhcnQtZ3JlZW4gOiAjNjZjMDFhO1xuXG5cbiRtYXRlcmlhbC12YWxpZDogIzBEQzY5MTtcbiRtYXRlcmlhbC1pbnZhbGlkIDogI2M2NTc1YztcblxuXG4jaGhoaGhoIHtcbiAgY29sb3I6ICRvZmYtd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRhZGQtdG8tY2FydC1ncmVlbjtcblxuXG4gID4gI2hhc2pka2FzZGp7XG4gICAgZGlzcGxheTpmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOmNvbHVtbjtcbiAgfVxuXG59IiwiQG1peGluIGJyZWFrcG9pbnQoJGNsYXNzKSB7XG4gIEBpZiAkY2xhc3MgPT0geHMge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkgeyBAY29udGVudDsgfVxuICB9XG5cbiAgQGVsc2UgaWYgJGNsYXNzID09IHNtIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuXG4gIEBlbHNlIGlmICRjbGFzcyA9PSBtZCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7IEBjb250ZW50OyB9XG4gIH1cblxuICBAZWxzZSBpZiAkY2xhc3MgPT0gbGcge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHsgQGNvbnRlbnQ7IH1cbiAgfVxuXG4gIEBlbHNlIHtcbiAgICBAd2FybiBcIkJyZWFrcG9pbnQgbWl4aW4gc3VwcG9ydHM6IHhzLCBzbSwgbWQsIGxnXCI7XG4gIH1cbn0iLCIvLyBDYXJkcyAvL1xuLmNhcmQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggLThweCBibGFjaztcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuXG4gICYuY2FyZC10YWItY29udGVudHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICB9XG5cbiAgbGFiZWx7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgfVxufVxuXG4uY2FyZC1yb3ctMntcbiAgbWFyZ2luOjAgLTMwcHg7XG59XG5cbi5jYXJkLXRpdGxlIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGZvbnQtZmFtaWx5OiBcIlJvYm90b1wiLCBBcmlhbCwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG59XG5cbi5jYXJkLXRhYi1saXN0IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gIHBhZGRpbmctbGVmdDogMDtcblxuXG4gIGEge1xuICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBmb250LXNpemU6IDEuNzVyZW07XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDFweCAxcHggMCAwO1xuXG4gICAgJjpmb2N1c3tcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgPiBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cbiAgICAmOmhvdmVye1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRlcnRpYXJ5LWNvbG9yO1xuICAgIH1cblxuICAgICYudWktdGFicy1hY3RpdmUgPiBhIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgIH1cblxuICB9XG5cbn1cblxuLmJ1dHRvbiB7XG5cbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBwb3NpdGlvbiAwLjI1cyBlYXNlLWluLW91dDtcbiAgLW1vei10cmFuc2l0aW9uOiBwb3NpdGlvbiAwLjI1cyBlYXNlLWluLW91dDtcbiAgLW1zLXRyYW5zaXRpb246IHBvc2l0aW9uIDAuMjVzIGVhc2UtaW4tb3V0O1xuICAtby10cmFuc2l0aW9uOiBwb3NpdGlvbiAwLjI1cyBlYXNlLWluLW91dDtcbiAgdHJhbnNpdGlvbjogcG9zaXRpb24gMC4yNXMgZWFzZS1pbi1vdXQ7XG5cblxuICBtYXJnaW46IDVweCBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDVweCAjN0E4QkEzO1xuICAtbW96LWJveC1zaGFkb3c6IDAgNXB4ICM3QThCQTM7XG4gIGJveC1zaGFkb3c6IDAgNXB4ICM3QThCQTM7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogd2hpdGU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICYuYnV0dG9uLXByZXNzZWR7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogNnB4O1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgLTJweCAjN0E4QkEzO1xuXG4gIH1cblxuICA+IGlucHV0e1xuICAgIGRpc3BsYXk6bm9uZTtcbiAgfVxuXG4gICY6bm90KC5idXR0b24tcHJlc3NlZCl7XG5cbiAgfVxuXG5cbiAgJi5idXR0b24tZHVsbHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1kdWxsO1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCA1cHggcmdiKDc1LCA4NywgMTA0KTtcbiAgICAtbW96LWJveC1zaGFkb3c6IDAgNXB4IHJnYig3NSwgODcsIDEwNCk7XG4gICAgYm94LXNoYWRvdzogMCA1cHggcmdiKDc1LCA4NywgMTA0KTtcblxuICAgICY6aG92ZXJ7XG4gICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgOXB4IHJnYig3NSwgODcsIDEwNCk7XG4gICAgICAtbW96LWJveC1zaGFkb3c6IDAgOXB4IHJnYig3NSwgODcsIDEwNCk7XG4gICAgICBib3gtc2hhZG93OiAwIDlweCByZ2IoNzUsIDg3LCAxMDQpO1xuICAgIH1cbiAgfVxuXG5cblxuICAmW2RhdGEtZGlzYWJsZWQ9XCJ0cnVlXCJdLCAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmF5O1xuXG4gICAgJGludmlzaWJsZTogcmdiYSgwLCAwLCAwLCAwKTtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAkaW52aXNpYmxlO1xuICAgIC1tb3otYm94LXNoYWRvdzogMCAwICRpbnZpc2libGU7XG4gICAgYm94LXNoYWRvdzogMCAwICRpbnZpc2libGU7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogMDtcblxuICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgJGludmlzaWJsZTtcbiAgICAgIC1tb3otYm94LXNoYWRvdzogMCAwcHggJGludmlzaWJsZTtcbiAgICAgIGJveC1zaGFkb3c6IDAgMHB4ICRpbnZpc2libGU7XG4gICAgfVxuICB9XG5cbiAgJi5hZGQtdG8tY2FydC1idXR0b24ge1xuXG4gICAgbWFyZ2luOiAyNXB4IGF1dG87XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFkZC10by1jYXJ0LWdyZWVuO1xuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCA1cHggIzdBOEJBMztcbiAgICAtbW96LWJveC1zaGFkb3c6IDAgNXB4ICM3QThCQTM7XG4gICAgYm94LXNoYWRvdzogMCA1cHggIzdBOEJBMztcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuXG4gICAgJltkYXRhLWRpc2FibGVkPVwidHJ1ZVwiXSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmF5O1xuICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgJGludmlzaWJsZTtcbiAgICAgIC1tb3otYm94LXNoYWRvdzogMCAwICRpbnZpc2libGU7XG4gICAgICBib3gtc2hhZG93OiAwIDAgJGludmlzaWJsZTtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAwO1xuXG4gICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwICRpbnZpc2libGU7XG4gICAgICAgIC1tb3otYm94LXNoYWRvdzogMCAwcHggJGludmlzaWJsZTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwcHggJGludmlzaWJsZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHRvcDogLTJweDtcblxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkYWRkLXRvLWNhcnQtZ3JlZW4sIDUlKTtcblxuICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDdweCAjN0E4QkEzO1xuICAgICAgLW1vei1ib3gtc2hhZG93OiAwIDdweCAjN0E4QkEzO1xuICAgICAgYm94LXNoYWRvdzogMCA3cHggIzdBOEJBMztcbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IDNweDtcbiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggIzdBOEJBMztcbiAgICAgIC1tb3otYm94LXNoYWRvdzogMCAycHggIzdBOEJBMztcbiAgICAgIGJveC1zaGFkb3c6IDAgMnB4ICM3QThCQTM7XG5cbiAgICB9XG4gIH1cblxuICAmLmZhdC1idXR0b24ge1xuXG4gICAgbWFyZ2luOiAyNXB4IGF1dG87XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICBmb250LXNpemU6IDIuNXJlbTtcblxuICAgICZbZGF0YS1kaXNhYmxlZD1cInRydWVcIl0sICY6ZGlzYWJsZWQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JheTtcblxuICAgICAgJGludmlzaWJsZTogcmdiYSgwLCAwLCAwLCAwKTtcbiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwICRpbnZpc2libGU7XG4gICAgICAtbW96LWJveC1zaGFkb3c6IDAgMCAkaW52aXNpYmxlO1xuICAgICAgYm94LXNoYWRvdzogMCAwICRpbnZpc2libGU7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogMDtcblxuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAkaW52aXNpYmxlO1xuICAgICAgICAtbW96LWJveC1zaGFkb3c6IDAgMHB4ICRpbnZpc2libGU7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMHB4ICRpbnZpc2libGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB0b3A6IC0ycHg7XG5cbiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCA3cHggIzdBOEJBMztcbiAgICAgIC1tb3otYm94LXNoYWRvdzogMCA3cHggIzdBOEJBMztcbiAgICAgIGJveC1zaGFkb3c6IDAgN3B4ICM3QThCQTM7XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdG9wOiAzcHg7XG4gICAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMnB4ICM3QThCQTM7XG4gICAgICAtbW96LWJveC1zaGFkb3c6IDAgMnB4ICM3QThCQTM7XG4gICAgICBib3gtc2hhZG93OiAwIDJweCAjN0E4QkEzO1xuXG4gICAgfVxuICB9XG59XG5cblxuLm1hdGVyaWFsLXJhZGlvIHtcblxuICAuZGlzYWJsZWR7XG4gICAgY29sb3I6JGRpc2FibGVkLWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGRpc2FibGVkLWNvbG9yO1xuICB9XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBsaW5lLWhlaWdodDogMS44cmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIG1hcmdpbjo1cHggYXV0bztcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgXCJEcm9pZCBTYW5zXCIsIEFyaWFsLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcblxuICAmOmhvdmVyIC5pbm5lciB7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHNjYWxlKC41KSk7XG4gICAgb3BhY2l0eTogLjU7XG4gIH1cblxuICAvLyBOYXRpdmUgaW5wdXQgY29udHJvbCBhbmQgY2hlY2tlZCBldmVudHNcbiAgaW5wdXQge1xuICAgIEBpbmNsdWRlIHNpemUoMXB4KTtcbiAgICBvcGFjaXR5OiAwOyAvLyBIaWRlIGlucHV0LCBidXQgbGVhdmUgaXQgYXZhaWxhYmxlIGZvciB0YWJiaW5nXG4gICAgJjpjaGVja2VkICsgLm91dGVyIC5pbm5lciB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoLjcpKTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgICY6Y2hlY2tlZCArIC5vdXRlciB7IGJvcmRlcjogM3B4IHNvbGlkICRzZWNvbmRhcnktY29sb3I7IH1cbiAgICAmOmZvY3VzICsgLm91dGVyIC5pbm5lciB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoLjcpKTtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJHNlY29uZGFyeS1jb2xvciwgMTApO1xuICAgIH1cbiAgfVxuXG4gIC8vIE91dGVyIHJpbmcgb2YgY3VzdG9tIHJhZGlvXG4gIC5vdXRlciB7XG4gICAgQGluY2x1ZGUgc2l6ZSgyMHB4KTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm9yZGVyOiAzcHggc29saWQgJHByaW1hcnktY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cbiAgICAmLmRpc2FibGVke1xuICAgICAgY29sb3I6JGRpc2FibGVkLWNvbG9yO1xuICAgICAgYm9yZGVyLWNvbG9yOiAkZGlzYWJsZWQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSW5uZXIgcmluZyBvZiBjdXN0b20gcmFkaW9cbiAgLmlubmVyIHtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAwLjI1cyBlYXNlLWluLW91dCk7XG4gICAgQGluY2x1ZGUgc2l6ZSgxNnB4KTtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMCkpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5zdWJ0bGUtem9vbXtcbiAgQGluY2x1ZGUga2V5ZnJhbWVzKHN1YnRsZS16b29tKXtcbiAgICAwJXtAaW5jbHVkZSB0cmFuc2Zvcm0oc2NhbGUoMSwxKSl9XG4gICAgNTAle0BpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgxLjI1LDEuMjUpKX1cbiAgICAxMDAle0BpbmNsdWRlIHRyYW5zZm9ybShzY2FsZSgxLDEpKX1cbiAgfVxuXG4gIEBpbmNsdWRlIGFuaW1hdGlvbihzdWJ0bGUtem9vbSAwLjVzIGVhc2UtaW4tb3V0IGZvcndhcmRzKVxufVxuXG5cblxuLyoqIEZsYXQgSW5wdXQgKiovXG5cblxuLmZsYXQtaW5wdXR7XG4gIGNvbG9yOiAjNjY2NjY2O1xuXG5cbiAgLnVpLXNlbGVjdG1lbnUtYnV0dG9ue1xuICAgIG1pbi13aWR0aDogMjUwcHghaW1wb3J0YW50O1xuICAgIG1hcmdpbi1sZWZ0OiA4NXB4O1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGNvbG9yOndoaXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm9yZGVyOjFweCBzb2xpZCAkc2Vjb25kYXJ5LWNvbG9yO1xuXG4gICAgJjpob3ZlcntcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJHByaW1hcnktY29sb3IsIDEwJSk7XG4gICAgfVxuXG4gIH1cblxuICAuaW5wdXQtcm93e1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IDVweDtcblxuICAgIGJ1dHRvbntcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogNXB4O1xuICAgICAgcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLmNvbnN0YW50LWxhYmVse1xuXG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAwLjI1cyBlYXNlLWluLW91dCk7XG5cbiAgICAgIGN1cnNvcjogdGV4dDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICBkaXNwbGF5OmJsb2NrO1xuICAgICAgdG9wOiAyMCU7XG4gICAgICBsZWZ0OjA7XG4gICAgICBib3R0b206MDtcblxuICAgICAgJltkYXRhLWlucHV0LXJlcXVpcmVkXXtcbiAgICAgICAgJjpiZWZvcmV7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHdpZHRoOiA1cHg7XG4gICAgICAgICAgaGVpZ2h0OiA1cHg7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGOUI5QjtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICAgIGxlZnQ6IC0xMHB4O1xuICAgICAgICAgIHRvcDogY2FsYyg1MCUgLSA1cHgpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIHVzZXItc2VsZWN0KG5vbmUpO1xuXG4gICAgICAmW2RhdGEtZW1wdHktaW5wdXQ9ZmFsc2VdLCAmW2RhdGEtc2libGluZy1mb2N1cz10cnVlXXtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAtMC41cmVtO1xuICAgICAgICBib3R0b206NTAlO1xuICAgICAgICBmb250LXNpemU6MS41cmVtO1xuICAgICAgfVxuXG4gICAgICAubGFiZWwtc3VidGV4dHtcbiAgICAgICAgZGlzcGxheTpub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlucHV0W3R5cGU9dGV4dF0sXG4gIGlucHV0W3R5cGU9bnVtYmVyXSxcbiAgaW5wdXRbdHlwZT1wYXNzd29yZF0sXG4gIGlucHV0W3R5cGU9ZW1haWxdLFxuICBpbnB1dFt0eXBlPXRlbF0sXG4gIHRleHRhcmVhe1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjb2xvcjpibGFjaztcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzljOWM5YztcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgcGFkZGluZy10b3A6IDVweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4yNXJlbTtcblxuICAgICY6Zm9jdXN7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFRUVGO1xuXG4gICAgICAmOnZhbGlke1xuICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzBEQzY5MTtcbiAgICAgIH1cbiAgICAgICY6aW52YWxpZHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNjNjU3NWM7O1xuICAgICAgfVxuICAgIH1cblxuICAgICZbZGF0YS1lbXB0eS1pbnB1dD1mYWxzZV17XG5cbiAgICAgICY6dmFsaWR7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMERDNjkxO1xuICAgICAgfVxuICAgICAgJjppbnZhbGlke1xuICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2M2NTc1Yzs7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIH1cblxuXG4udGFibGUtY2xlYW57XG4gIG1hcmdpbi10b3A6IDZweDtcbiAgZm9udC1zaXplOiAxLjVyZW07XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsZyl7XG4gICAgbWFyZ2luLXRvcDogaW5pdGlhbDtcbiAgfVxuXG4gIC5jbGVhbi10aXRsZSB7XG4gICAgcGFkZGluZy10b3A6IDVweDtcbiAgfVxuXG4gIHRyID4gdGQge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAvLy1tcy13b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgLy93b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIH1cblxuICB0ciA+IHRkOmZpcnN0LW9mLXR5cGUge1xuICAgIHdvcmQtYnJlYWs6IGtlZXAtYWxsO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbn1cblxuLmZhLWJhbntcbiAgY29sb3I6I0NFMUUwMDtcbn1cblxuXG4udWktc2VsZWN0bWVudS1tZW51IC51aS1tZW51LWl0ZW17XG5cbiAgJi51aS1zdGF0ZS1mb2N1c3tcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYm9yZGVyOjFweCBzb2xpZCBibGFjaztcbiAgfVxuXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLmRhc2hlZC1icmVha3tcbiAgYm9yZGVyLXRvcDogM3B4IGRhc2hlZCAkZGlzYWJsZWQtY29sb3I7XG4gIG1hcmdpbjogMTVweCAwO1xufSIsIi5zbGltLWhlYWRlciB7XG5cbiAgJHRleHQtYnJlYWtwb2ludDogMTIwMHB4O1xuXG4gIC5uYXZiYXIge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2E0NjkyO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG5cbiAgICAmLmNvbG9yLXRvcCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTIzQTNBO1xuICAgIH1cblxuICAgIC5uYXZiYXItbmF2IHtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgfVxuICB9XG5cbiAgLm5hdi10ZXh0IHtcbiAgICBAbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiAkdGV4dC1icmVha3BvaW50KSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLmRyb3Bkb3duIGxpIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxuXG4gIC5kcm9wZG93biwgLmRyb3Bkb3duLW1lbnUgbGkge1xuICAgIC5nbHlwaGljb24ge1xuICAgICAgcGFkZGluZzogMCA1cHg7XG4gICAgfVxuICB9XG5cbiAgLmRyb3Bkb3duLW1lbnUge1xuXG4gICAgQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBhIHtcbiAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICBjb2xvcjogJG9mZi13aGl0ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICA+IHNwYW4ge1xuICAgICAgICBwYWRkaW5nOiAzcHggMjBweDtcblxuICAgICAgICBAbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgICAgIHBhZGRpbmc6IDVweCAxNXB4IDVweCAyNXB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm5hdmJhci1jb2xsYXBzZSA+IGZvcm0gPiAuZm9ybS1ncm91cCB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgfVxuXG4gIC5uYXZiYXItYnJhbmQge1xuICAgIHBhZGRpbmc6IDAgMCAxMHB4IDA7XG4gICAgbWF4LXdpZHRoOiAyODBweDtcbiAgICBtYXJnaW46IDEwcHg7XG5cbiAgICB3aWR0aDogMzAwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIGltZyB7XG4gICAgICBtYXgtd2lkdGg6IDI3NXB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDg5MHB4KSB7XG4gICAgICB3aWR0aDogNjBweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgd2lkdGg6IDI3NXB4O1xuICAgIH1cblxuICB9XG5cbiAgI21hZ25pZnlpbmctZ2xhc3Mge1xuICAgIGhlaWdodDogMzRweDtcbiAgfVxuXG4gICNhbGwtcHJvZHVjdHMtc2xpZGVvdXQge1xuICAgIGEge1xuICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIC5uYXYgPiBsaSA+IGEge1xuXG4gICAgY29sb3I6ICRvZmYtd2hpdGU7XG5cbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkb2ZmLXdoaXRlO1xuICAgIH1cblxuICAgICYub3BlbiwgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICAubmF2LXRleHQsIC5nbHlwaGljb24sIGEge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmRyb3Bkb3duLCAubmF2LXRleHQge1xuICAgIGNvbG9yOiAkb2ZmLXdoaXRlO1xuXG4gICAgYSB7XG4gICAgICBjb2xvcjogJG9mZi13aGl0ZTtcbiAgICB9XG5cbiAgICAmLm9wZW4sICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgLm5hdi10ZXh0LCAuZ2x5cGhpY29uLCBhIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNuYXYtb24tc2FsZSB7XG4gICAgJjpob3ZlciB7XG4gICAgICAubmF2LXRleHQge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm5hdmJhci1kZWZhdWx0IHtcbiAgICAubmF2YmFyLW5hdiA+IGxpID4gYSB7XG4gICAgICBjb2xvcjogI0ZGRjtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiByZWQ7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJG9mZi13aGl0ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjZHJvcGRvd24tdG90YWwtcHJpY2Uge1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICBwYWRkaW5nOiAzcHggMjBweDtcbiAgfVxuXG4gIFtjbGFzc149XCJmbGF0aWNvbi1cIl0sIFtjbGFzcyo9XCIgZmxhdGljb24tXCJdLCAubmF2IC5nbHlwaGljb246bm90KC5nbHlwaGljb24tdHJpYW5nbGUtYm90dG9tKSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICBmb250LXNpemU6IDIwcHg7XG5cbiAgICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6ICR0ZXh0LWJyZWFrcG9pbnQpIHtcbiAgICAgICAgZm9udC1zaXplOiAyNnB4O1xuICAgICAgfVxuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG5cbiAgI3NlYXJjaC1idXR0b24tZ3JvdXAge1xuICAgIHVsIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG4gIH1cblxuICAjaW5wdXQtdnByb2R1Y3Qge1xuXG4gICAgbWluLXdpZHRoOiAzMDBweDtcblxuICB9XG5cbiAgLy8gIFNIT1BQSU5HIENBUlRcblxuICAjbW9iaWxlLWNhcnQtY2lyY2xlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICB3aWR0aDogMzBweDtcbiAgICAgIGhlaWdodDogMzBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBib3JkZXItcmFkaXVzOiAzNXB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtNHB4O1xuICAgICAgbGVmdDogMzJweDtcbiAgICAgIGJvcmRlcjogM3B4IHNvbGlkICMzOTQ2OTQ7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyNXB4O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBjb2xvcjogIzM5NDY5NDtcbiAgICB9XG5cbiAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiAkdGV4dC1icmVha3BvaW50KSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNykgdHJhbnNsYXRlKC05cHgsIDlweCk7XG4gICAgfVxuICB9XG5cbiAgLmJvbGQge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG59XG5cbi8qXG5cbiAgICBTbGltIEhlYWRlclxuXG4qL1xuXG4uc2xpbS1oZWFkZXIge1xuXG4gICR0ZXh0LWJyZWFrcG9pbnQ6IDEyMDBweDtcblxuICAubmF2YmFyIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNhNDY5MjtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuXG4gICAgJi5jb2xvci10b3Age1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzkyM0EzQTtcbiAgICB9XG5cbiAgICAubmF2YmFyLW5hdiB7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIH1cbiAgfVxuXG4gIC5uYXYtdGV4dCB7XG4gICAgQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogJHRleHQtYnJlYWtwb2ludCkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBAbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC5kcm9wZG93biBsaSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cblxuICAuZHJvcGRvd24sIC5kcm9wZG93bi1tZW51IGxpIHtcbiAgICAuZ2x5cGhpY29uIHtcbiAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgIH1cbiAgfVxuXG4gIC5kcm9wZG93bi1tZW51IHtcblxuICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgYSB7XG4gICAgICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgY29sb3I6ICRvZmYtd2hpdGU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgPiBzcGFuIHtcbiAgICAgICAgcGFkZGluZzogM3B4IDIwcHg7XG5cbiAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgICAgICAgICBwYWRkaW5nOiA1cHggMTVweCA1cHggMjVweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5uYXZiYXItY29sbGFwc2UgPiBmb3JtID4gLmZvcm0tZ3JvdXAge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gIH1cblxuICAubmF2YmFyLWJyYW5kIHtcbiAgICBwYWRkaW5nOiA1cHggMCAxMHB4IDA7XG4gICAgbWF4LXdpZHRoOiAyODBweDtcbiAgICBtYXJnaW46IDEwcHg7XG5cbiAgICB3aWR0aDogMzAwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIGltZyB7XG4gICAgICBtYXgtd2lkdGg6IDI3NXB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICB3aWR0aDogMjc1cHg7XG4gICAgfVxuXG4gICAgQG1lZGlhIGFsbCBhbmQgKG1heC13aWR0aDogNDAwcHgpIHtcbiAgICAgIHdpZHRoOiAxODVweDtcbiAgICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAxODVweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gICNtYWduaWZ5aW5nLWdsYXNzIHtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gIH1cblxuICAjYWxsLXByb2R1Y3RzLXNsaWRlb3V0IHtcbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICB9XG4gIH1cblxuICAubmF2ID4gbGkgPiBhIHtcblxuICAgIGNvbG9yOiAkb2ZmLXdoaXRlO1xuXG4gICAgYSB7XG4gICAgICBjb2xvcjogJG9mZi13aGl0ZTtcbiAgICB9XG5cbiAgICAmLm9wZW4sICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgLm5hdi10ZXh0LCAuZ2x5cGhpY29uLCBhIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5kcm9wZG93biwgLm5hdi10ZXh0IHtcbiAgICBjb2xvcjogJG9mZi13aGl0ZTtcblxuICAgIGEge1xuICAgICAgY29sb3I6ICRvZmYtd2hpdGU7XG4gICAgfVxuXG4gICAgJi5vcGVuLCAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIC5uYXYtdGV4dCwgLmdseXBoaWNvbiwgYSB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjbmF2LW9uLXNhbGUge1xuICAgICY6aG92ZXIge1xuICAgICAgLm5hdi10ZXh0IHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5uYXZiYXItZGVmYXVsdCB7XG4gICAgLm5hdmJhci1uYXYgPiBsaSA+IGEge1xuICAgICAgY29sb3I6ICNGRkY7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogcmVkO1xuICAgICAgfVxuXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRvZmYtd2hpdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2Ryb3Bkb3duLXRvdGFsLXByaWNlIHtcbiAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgcGFkZGluZzogM3B4IDIwcHg7XG4gIH1cblxuICBbY2xhc3NePVwiZmxhdGljb24tXCJdLCBbY2xhc3MqPVwiIGZsYXRpY29uLVwiXSwgLm5hdiAuZ2x5cGhpY29uOm5vdCguZ2x5cGhpY29uLXRyaWFuZ2xlLWJvdHRvbSkge1xuICAgICY6YmVmb3JlIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgZm9udC1zaXplOiAyMHB4O1xuXG4gICAgICBAbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOiAkdGV4dC1icmVha3BvaW50KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjZweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuXG4gICNzZWFyY2gtYnV0dG9uLWdyb3VwIHtcbiAgICB1bCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxuICB9XG5cbiAgI2lucHV0LXZwcm9kdWN0IHtcblxuICAgIG1pbi13aWR0aDogMzAwcHg7XG5cbiAgfVxuXG4gIC8vICBTSE9QUElORyBDQVJUXG5cbiAgI21vYmlsZS1jYXJ0LWNpcmNsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYm9yZGVyLXJhZGl1czogMzVweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTRweDtcbiAgICAgIGxlZnQ6IDMycHg7XG4gICAgICBib3JkZXI6IDNweCBzb2xpZCAjMzk0Njk0O1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBsaW5lLWhlaWdodDogMjVweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgY29sb3I6ICMzOTQ2OTQ7XG4gICAgfVxuXG4gICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogJHRleHQtYnJlYWtwb2ludCkge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjcpIHRyYW5zbGF0ZSgtOXB4LCA5cHgpO1xuICAgIH1cbiAgfVxuXG4gIC5ib2xkIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG59XG5cbi8vTW9iaWxlIGNvbnRhY3QgZWxlbWVudHNcbiNwb2xpY3ktaW5mby1jb250YWluZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSg1OCwgNzAsIDE0NiwgMC4xOCk7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xufVxuXG4jcG9saWN5LWluZm8gPiBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5tb2JpbGUtY29udGFjdC1lbGVtZW50IHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjUwLCAyNTAsIDI1MCwgMC4xMik7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlIDBzO1xuICBtaW4taGVpZ2h0OiAzNXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgaDQsIGEsIGE6Zm9jdXMge1xuICAgIGZvbnQtc2l6ZTogMi4zcmVtO1xuICAgIGNvbG9yOiAjRkZGICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAwLjk7XG4gIH1cbiAgJjphY3RpdmUge1xuICAgIG9wYWNpdHk6IDAuODtcbiAgfVxuXG59XG5cbi5tb2RhbC1idXR0b24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UgMHM7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNFREVERUQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgZm9udC1zaXplOiAxLjRyZW0gIWltcG9ydGFudDtcbiAgfVxufVxuXG4jbW9iaWxlLWNvbnRhY3Qge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICB9XG59XG5cbi5tb2JpbGUtZGlhbG9nIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICB3aWR0aDogNzAwcHg7XG4gIH1cblxufVxuXG5cbiNuYXYtY2FydHtcbiAgYSB7XG4gICAgZGlzcGxheTpmbGV4O1xuXG4gICAgLm5hdi10ZXh0e1xuICAgICAgbWFyZ2luLXRvcDotMTBweDtcbiAgICB9XG4gIH1cbn1cblxuLy9FTkQgQ0FURUdPUlkgTkFWSUdBVElPTiBCQVIiLCIvKlxuXG4gIFBob3RvIEZyYW1lc1xuXG4qL1xuXG4jZnMtcGhvdG9mcmFtZS13cmFwcGVye1xuXG5cblxuICAjZnMtcGhvdG9mcmFtZS10YWJze1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbGlzdC1zdHlsZTpub25lO1xuICAgIHBhZGRpbmc6MDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAjZnMtcGhvdG9mcmFtZS13cmFwcGVyLCAuZnMtcHJpY2Utcm93e1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gICNmcy1waG90b2ZyYW1lLXdyYXBwZXJ7XG5cbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAgIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgLW8tdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG5cbiAgICBwYWRkaW5nLWJvdHRvbTozMzBweDtcblxuICAgIGZvcm17XG4gICAgICBtYXgtd2lkdGg6MjA1cHg7XG4gICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cbiAgICAgIHN0cm9uZ3tcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICAjZnMtZnJhbWUtY2hvaWNlc3tcblxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4ycyBlYXNlLWluLW91dDtcbiAgICAtbW96LXRyYW5zaXRpb246IC1tb3otdHJhbnNmb3JtIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgLW8tdHJhbnNpdGlvbjogLW8tdHJhbnNmb3JtIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZS1pbi1vdXQ7XG5cbiAgICBwb3NpdGlvbjpmaXhlZDtcbiAgICBsZWZ0OjA7XG4gICAgYm90dG9tOjA7XG5cbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6bm9uZTtcblxuICB9XG5cbiAgI2ZzLWluZm8tY29udGFpbmVye1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWQpe1xuICAgICAgbWFyZ2luOjIwcHggMDtcbiAgICB9XG4gICAgPiBoMntcbiAgICAgIG1hcmdpbjowO1xuICAgIH1cbiAgfVxuXG4gIC5mcy1wYWdlLXRpdGxle1xuICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgIGNvbG9yOiRwcmltYXJ5LWNvbG9yO1xuICB9XG5cbiAgI2JnLXdyYXBwZXJ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyYXk7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMjBweCAzOXB4IC0zM3B4IHJnYmEoMCwgMCwgMCwgMSk7XG4gIH1cblxuICAjdW5pdC1zZWxlY3Rpb257XG4gICAgZm9udC1zaXplOiAycmVtO1xuICB9XG5cbiAgI2xhYmVsLXRvdGFse1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgLmZzLWNvbnRlbnQtbWFpbi1oZWFkaW5ne1xuICAgIGZvbnQtc2l6ZTogNC40cmVtO1xuICAgIG1hcmdpbjowO1xuICB9XG5cbiAgLmZzLWNvbnRlbnQtc3ViaGVhZGluZ3tcbiAgICBmb250LXdlaWdodDozMDA7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIGNvbG9yOiAkbm90LXNvLWJsYWNrLWJsYWNrO1xuICAgIG1hcmdpbjowO1xuICB9XG5cbiAgI2ZzLWNhcHR1cmUtYm94e1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgaGVpZ2h0OjI2MHB4O1xuICAgIHdpZHRoOjEwMCU7XG4gIH1cblxuICAuZnMtaGlkZXtcbiAgICBkaXNwbGF5Om5vbmU7XG4gIH1cblxuICAuZnMtdGFiLWxpc3R7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgYm94LXNpemluZzpib3JkZXItYm94O1xuICB9XG5cblxuICAuZnMtdGFie1xuICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgIGNvbG9yOndoaXRlO1xuICAgIGN1cnNvcjpwb2ludGVyO1xuXG4gICAgJjpob3Zlcjpub3QoLmZzLXRhYi1zZWxlY3RlZCl7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICAgIH1cblxuICB9XG5cbiAgLmZzLXRhYi1zZWxlY3RlZHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuICAgIGNvbG9yOiBibGFjaztcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBib3JkZXItdG9wOjJweCBzb2xpZCAkcHJpbWFyeS1jb2xvcjtcbiAgfVxuXG5cbiAgLmZzLWZyYW1lLXRodW1iLWNvbnRhaW5lcntcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBib3gtc2hhZG93OiAwcHggMHB4IDZweCAycHggcmdiYSgxLCAxLCAxLCAwLjA1KSBpbnNldCwgMHB4IDEwcHggMTBweCByZ2JhKDEsIDEsIDEsIDAuNSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIG1hcmdpbjoyMHB4IDVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAkdGltZSA6IDAuMXM7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgJHRpbWUgZWFzZS1pbi1vdXQ7XG4gICAgLW1vei10cmFuc2l0aW9uOiBhbGwgJHRpbWUgZWFzZS1pbi1vdXQ7XG4gICAgLW1zLXRyYW5zaXRpb246IGFsbCAkdGltZSBlYXNlLWluLW91dDtcbiAgICAtby10cmFuc2l0aW9uOiBhbGwgJHRpbWUgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNpdGlvbjogYWxsICR0aW1lIGVhc2UtaW4tb3V0O1xuXG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xNSk7XG4gICAgfVxuXG4gIH1cblxuICAjZnMtdGh1bWItc2VsZWN0ZWQge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xNSk7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwcHggMHB4IDBweCAzcHggJHByaW1hcnktY29sb3I7XG4gICAgLW1vei1ib3gtc2hhZG93OiBpbnNldCAwcHggMHB4IDBweCAzcHggJHByaW1hcnktY29sb3I7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMHB4IDBweCAwcHggM3B4ICRwcmltYXJ5LWNvbG9yO1xuICB9XG5cblxuXG4gIC5mcy1mcmFtZS10aHVtYi1pbWFnZXtcbiAgICBtYXgtaGVpZ2h0OiAxNzBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOjVweCAxMHB4O1xuXG4gIH1cblxuICAuZnMtZnJhbWUtbmFtZXRhZywgLmZzLWZyYW1lLXdpZHRodGFne1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LWZhbWlseTogJGZvbnQtc3RhY2s7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDU3LCA3MCwgMTQ4KTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAuZnMtZnJhbWUtd2lkdGh0YWd7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXNpemU6IDAuOGVtO1xuICB9XG5cbiAgI2ZzLWZlYXR1cmUtYm94e1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG4gICAgc3BhbntcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgZm9udC1zaXplOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gICNmcy1jYXRfaWQsIG9wdGlvbntcbiAgICB3aWR0aDoxNzNweDtcbiAgICBoZWlnaHQ6NDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQjVEN0ZEO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gIH1cblxuXG4gICNjYW52YXN7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDQ1MHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4vLyAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMTVweCAxMHB4IHJnYmEoMSwgMSwgMSwgMC4zMyk7XG4vLyAgICAtbW96LWJveC1zaGFkb3c6IDAgMTVweCAxMHB4IHJnYmEoMSwgMSwgMSwgMC4zMyk7XG4vLyAgICBib3gtc2hhZG93OiAwIDE1cHggMTBweCByZ2JhKDEsIDEsIDEsIDAuMzMpO1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAyMHB4IC0xMHB4IGJsYWNrOztcblxuICAgIGZvbnQtZmFtaWx5OiAnT3BlbiBzYW5zJywgQXJpYWwsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgfVxuXG4gICNmcy1jYW52YXMtY29udGFpbmVye1xuICAgIG1hcmdpbjoyMHB4IGF1dG87XG4gIH1cblxuXG4gICNmcy1wcmljZS10YWJsZS1jb250YWluZXJ7XG4gICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgfVxuXG4gICNmcy1jaGVja291dC1ib3h7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBmb250LXNpemU6IDIuNXJlbTtcblxuICAgID4gbGFiZWx7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG4gIH1cblxuICAjZnMtcHJpY2UtdGFibGV7XG5cbiAgICBmb250LWZhbWlseTogJGZvbnQtc3RhY2s7XG4gICAgY29sb3I6JHRhYmxlLXRleHQtY29sb3I7XG4gIH1cblxuICAjcHJvZHVjdC1kZXRhaWxze1xuXG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAgIC1tcy10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICAtby10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcblxuICAgIG1hcmdpbi10b3A6NDVweDtcbiAgICBoZWlnaHQ6MHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBtaW4taGVpZ2h0OiAyMDBweDtcblxuICAgIHRhYmxle1xuICAgICAgd2lkdGg6MTAwJTtcblxuICAgICAgdGJvZHkgdHI6bnRoLWNoaWxkKG9kZCl7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJHRlcnRpYXJ5LWNvbG9yLCAwLjI1KTtcbiAgICAgIH1cblxuICAgIH1cbiAgfVxuXG4gIC5kZXRhaWwta2V5e1xuICAgIHRleHQtYWxpZ246cmlnaHQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAuZGV0YWlsLXZhbHVle1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cblxuXG4gIC5mcy1kYXRhLWluY2h7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAuZnMtZGF0YS1wcmljZXtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gICNjdXN0b20tZnJhbWluZy1wcm9tb3Rpb257XG4gICAgd2lkdGg6IDkwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gIH1cblxuXG4gICN0cmF5LXRvZ2dsZXtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAgIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgLW1zLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAgIC1vLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuXG4gICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgZm9udC1zaXplOiAyLjI1cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3R0b206MDtcblxuICAgID4gc3BhbntcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBjdXJzb3I6cG9pbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcblxuXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM0E0NjkyO1xuICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDVweCAjN0E4QkEzO1xuICAgICAgLW1vei1ib3gtc2hhZG93OiAwIDVweCAjN0E4QkEzO1xuICAgICAgYm94LXNoYWRvdzogMCA1cHggIzdBOEJBMztcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGNvbG9yOndoaXRlO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGJvdHRvbTo0cHg7XG5cbiAgICAgIC8vIEZpeCB0b3AgcGl4ZWwgcm93IG5vdCBjbGlja2luZ1xuICAgICAgJjpob3ZlcntcbiAgICAgICAgYm90dG9tOiA2cHg7XG4gICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCA2cHggIzdBOEJBMztcbiAgICAgICAgLW1vei1ib3gtc2hhZG93OiAwIDZweCAjN0E4QkEzO1xuICAgICAgICBib3gtc2hhZG93OiAwIDZweCAjN0E4QkEzO1xuICAgICAgfVxuXG4gICAgICAmOmFjdGl2ZXtcbiAgICAgICAgYm90dG9tOi0xcHg7XG4gICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggIzdBOEJBMztcbiAgICAgICAgLW1vei1ib3gtc2hhZG93OiAwIDJweCAjN0E4QkEzO1xuICAgICAgICBib3gtc2hhZG93OiAwIDJweCAjN0E4QkEzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNndWlkZS1idXR0b257XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjogMTBweCBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59IiwiXG4uZnMtZHJvcGRvd257XG4gIGN1cnNvcjpwb2ludGVyO1xuICB3aWR0aDo5MCU7XG4gIG1hcmdpbjowIGF1dG87XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbn1cblxuLmZzLWxpc3R7XG4gIG1hcmdpbjowO1xuICBwYWRkaW5nOjA7XG4gIHBvc2l0aW9uOmFic29sdXRlO1xuICB3aWR0aDppbmhlcml0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGVydGlhcnktY29sb3I7XG4gIG1heC1oZWlnaHQ6NDUwcHg7XG4gIG92ZXJmbG93LXk6c2Nyb2xsO1xuICB6LWluZGV4OiAxO1xuXG4gIEBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6IDc2OHB4KXtcbiAgICBtYXgtaGVpZ2h0OjIzNXB4O1xuICB9XG5cblxufVxuXG4uZnMtZHJvcGRvd24tb3B0aW9uLCAuZnMtZHJvcGRvd24taGVhZGVye1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZGlzcGxheTpibG9jaztcbiAgd2lkdGg6MTAwJTtcbiAgcGFkZGluZzo1cHggMjBweDtcbiAgbWFyZ2luOiAxcHggMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJG9mZi13aGl0ZTtcbiAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG5cblxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG59XG5cbi5mcy1kcm9wZG93bi1oZWFkZXJ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gIGNvbG9yOiAkb2ZmLXdoaXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIFxuICAmOmhvdmVye1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG4gIH1cbn1cblxuLmZzLWRyb3Bkb3duLW9wdGlvbjpob3ZlcntcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1jb2xvcjtcbiAgY29sb3I6ICRvZmYtd2hpdGU7XG59XG5cblxuI2ZzLWRyb3Bkb3duLXNlbGVjdGVke1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbG9yO1xuICBjb2xvcjogJG9mZi13aGl0ZTtcbn1cblxuLmZzLWRyb3Bkb3duLWhlYWRlcjpiZWZvcmV7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDo1cHg7XG4gIHRvcDpjYWxjKDUwJSAtIDhweCk7XG4gIGNvbnRlbnQ6ICcnO1xuICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAgMTVweCAwIDE1cHggMTZweDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAgJG9mZi13aGl0ZTtcbn1cblxuXG4uZnMtZHJvcGRvd24taGVhZGVyOmJlZm9yZXtcbiAgYm9yZGVyLXdpZHRoOiAxNnB4IDE1cHggMHB4IDE1cHg7XG4gIGJvcmRlci1jb2xvcjogJG9mZi13aGl0ZSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbn0iLCJAaW1wb3J0IFwidGFicy90YWJzXCI7XG5cbiNjdXN0b20tZnJhbWluZy13cmFwcGVyIHtcblxuICAjZnJhbWUtZGV0YWlsc3tcbiAgICBtYXJnaW4tdG9wOjE1cHg7XG4gICAgbWFyZ2luLWJvdHRvbToxNXB4O1xuICAgIHRhYmxle1xuICAgICAgd2lkdGg6MTAwJTtcbiAgICB9XG4gICAgdGhlYWR7XG4gICAgICBmb250LXNpemU6IDJyZW07XG4gICAgfVxuICAgIHRib2R5e1xuICAgICAgdHI6bnRoLW9mLXR5cGUob2RkKXtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNTEsIDE2NSwgMjE0LCAwLjI1KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAjZnMtcHJvZHVjdC1xdWFudGl0eXtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHBhZGRpbmctdG9wOjA7XG4gICAgcGFkZGluZy1ib3R0b206IDVweDtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxnKXtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgfVxuICB9XG5cblxuICAjZnMtcGhvdG9mcmFtZS10YWJzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAjZnMtcGhvdG9mcmFtZS13cmFwcGVyLCAuZnMtcHJpY2Utcm93IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAjZnMtcGhvdG9mcmFtZS13cmFwcGVyIHtcblxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgLW1vei10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICAtby10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcblxuICAgIHBhZGRpbmctYm90dG9tOiAzMzBweDtcblxuICAgIGZvcm0ge1xuICAgICAgbWF4LXdpZHRoOiAyMDVweDtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cbiAgICAgIHN0cm9uZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNmcy1mcmFtZS1jaG9pY2VzIHtcblxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4ycyBlYXNlLWluLW91dDtcbiAgICAtbW96LXRyYW5zaXRpb246IC1tb3otdHJhbnNmb3JtIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgLW8tdHJhbnNpdGlvbjogLW8tdHJhbnNmb3JtIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZS1pbi1vdXQ7XG5cbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG5cbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgfVxuXG4gICNmcy1pbmZvLWNvbnRhaW5lciB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZCkge1xuICAgICAgbWFyZ2luOiAyMHB4IDA7XG4gICAgfVxuICAgID4gaDIge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5mcy1wYWdlLXRpdGxlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIH1cblxuICAjYmctd3JhcHBlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWdyYXk7XG4gICAgLy9ib3gtc2hhZG93OiBpbnNldCAwIC0yMHB4IDM5cHggLTMzcHggcmdiYSgwLCAwLCAwLCAxKTtcbiAgfVxuXG4gICN1bml0LXNlbGVjdGlvbiB7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICB9XG5cbiAgI2xhYmVsLXRvdGFsIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICB9XG5cbiAgI2ZzLWNhcHR1cmUtYm94IHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDI2MHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLmZzLWhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuZnMtdGFiLWxpc3Qge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAuZnMtdGFiIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6aG92ZXI6bm90KC5mcy10YWItc2VsZWN0ZWQpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG4gICAgfVxuXG4gIH1cblxuICAuZnMtdGFiLXNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuICAgIGNvbG9yOiBibGFjaztcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgJHByaW1hcnktY29sb3I7XG4gIH1cblxuICAjY2FudmFze1xuICAgIG1heC13aWR0aDogOTAlO1xuICAgIG1heC1oZWlnaHQ6IDYwMHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggLTEwcHggYmxhY2s7O1xuXG4gICAgZm9udC1mYW1pbHk6ICdPcGVuIHNhbnMnLCBBcmlhbCwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICB9XG5cbiAgI2NhbnZhcy1jb250YWluZXIge1xuICAgIG1hcmdpbjogMjBweCBhdXRvO1xuICB9XG5cbiAgI2ZzLXByaWNlLXRhYmxlLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gIH1cblxuICAjZnMtY2hlY2tvdXQtYm94IHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcblxuICAgICNjaGVja291dC10b3RhbCB7XG4gICAgICBmb250LXNpemU6IDIuNXJlbTtcblxuICAgIH1cbiAgfVxuXG4gICNmcy1wcmljZS10YWJsZSB7XG5cbiAgICBmb250LWZhbWlseTogJGZvbnQtc3RhY2s7XG4gICAgY29sb3I6ICR0YWJsZS10ZXh0LWNvbG9yO1xuICB9XG5cbiAgI3Byb2R1Y3QtZGV0YWlscyB7XG5cbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAgIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgLW1zLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAgIC1vLXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuXG4gICAgbWFyZ2luLXRvcDogNDVweDtcbiAgICBoZWlnaHQ6IDBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgbWluLWhlaWdodDogMjAwcHg7XG5cbiAgICB0YWJsZSB7XG4gICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgdGJvZHkgdHI6bnRoLWNoaWxkKG9kZCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCR0ZXJ0aWFyeS1jb2xvciwgMC4yNSk7XG4gICAgICB9XG5cbiAgICB9XG4gIH1cblxuICAuZGV0YWlsLWtleSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICAuZGV0YWlsLXZhbHVlIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG5cbiAgI2d1aWRlLWJ1dHRvbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjogMTBweCBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgI2d1aWRlLW1lIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICB9XG5cbiAgI2ZzLXByb2R1Y3QtcXVhbnRpdHkge1xuICAgIG1heC13aWR0aDogNzVweDtcbiAgfVxuXG4gICNmcy1hZGRUb0NhcnRCdXR0b24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjowO1xuICB9XG5cbiAgLmRpbWVuc2lvbi1hbGVydHMge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4cykge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICB9XG4gIH1cblxuICAudW5zdGFibGUtZnJhbWV7XG4gICAgb3BhY2l0eTogMC4yO1xuICB9XG5cbiAgLnVuc3RhYmxlLWZyYW1lLWhpZGRlbntcbiAgICBkaXNwbGF5Om5vbmUhaW1wb3J0YW50O1xuICB9XG5cbiAgLmZyYW1lLXRodW1iLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYm94LXNoYWRvdzogMHB4IDBweCA2cHggMnB4IHJnYmEoMSwgMSwgMSwgMC4wNSkgaW5zZXQsIDBweCAxMHB4IDEwcHggcmdiYSgxLCAxLCAxLCAwLjUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBtYXJnaW46IDIwcHggNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0tc3R5bGUocHJlc2VydmUtM2QpO1xuXG4gICAgJHRpbWU6IDAuMXM7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgJHRpbWUgZWFzZS1pbi1vdXQ7XG4gICAgLW1vei10cmFuc2l0aW9uOiBhbGwgJHRpbWUgZWFzZS1pbi1vdXQ7XG4gICAgLW1zLXRyYW5zaXRpb246IGFsbCAkdGltZSBlYXNlLWluLW91dDtcbiAgICAtby10cmFuc2l0aW9uOiBhbGwgJHRpbWUgZWFzZS1pbi1vdXQ7XG4gICAgdHJhbnNpdGlvbjogYWxsICR0aW1lIGVhc2UtaW4tb3V0O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpO1xuICAgIH1cblxuICAgIC50aHVtYi1zZWxlY3RlZCB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpO1xuICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDAgMCAzcHggJHByaW1hcnktY29sb3I7XG4gICAgICAtbW96LWJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDNweCAkcHJpbWFyeS1jb2xvcjtcbiAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDNweCAkcHJpbWFyeS1jb2xvcjtcbiAgICB9XG5cbiAgICAuZnJhbWUtdGh1bWItaW1hZ2Uge1xuICAgICAgbWF4LWhlaWdodDogMTUwcHg7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgIH1cblxuICAgIC5mcmFtZS1uYW1ldGFnLCAuZnJhbWUtd2lkdGh0YWcsIC5mcmFtZS1yYXRldGFnIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcGFkZGluZzogMCA1cHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBmb250LWZhbWlseTogJGZvbnQtc3RhY2s7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNTcsIDcwLCAxNDgpO1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICB9XG5cbiAgICAuZnJhbWUtcmF0ZXRhZ3tcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktY29sb3I7XG4gICAgfVxuXG4gICAgLnRhZy1jb250YWluZXJ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICB9XG5cbiAgICAuZnMtZnJhbWUtd2lkdGh0YWcge1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgfVxuICB9XG5cbiAgLmZyYW1lLXNlbGVjdGlvbi1jb250YWluZXIge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMjYwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAjZnJhbWUtY2F0ZWdvcnktdGFicyB7XG5cbiAgICBhIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIH1cblxuICAgID4gdWwge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRlbigkc2Vjb25kYXJ5LWNvbG9yLCA1JSk7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRlcnRpYXJ5LWNvbG9yO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm1vZGFsLWJvZHl7XG4gICAgb3ZlcmZsb3c6aW5oZXJpdDtcbiAgICBoZWlnaHQ6ODAlO1xuICB9XG5cbiAgLm1vZGFsLWRpYWxvZ3tcbiAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOjc2OHB4KXtcbiAgICAgIHdpZHRoOjYwJTtcbiAgICB9XG4gIH1cblxuXG4gICNzdW1tYXJ5LWdsYXNzLCAjc3VtbWFyeS1iYWNraW5ne1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICB9XG59XG5cbiNjYW52YXMtcHJldmlldy1jbG9uZWR7XG4gIHdpZHRoOmF1dG87XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDo5NXZoO1xuICBtYXJnaW46MjVweCBhdXRvO1xuICBkaXNwbGF5OmJsb2NrO1xufVxuXG4jcHJlc2V0LXNpemUtbGlzdHtcbiAgZm9udC1zaXplOiAycmVtO1xufSIsIkBpbXBvcnQgXCJkaW1lbnNpb25zXCI7XG5AaW1wb3J0IFwibWF0c1wiO1xuQGltcG9ydCBcImdsYXNzLWFuZC1iYWNraW5nXCI7XG5AaW1wb3J0IFwiZnJhbWVzXCI7XG5AaW1wb3J0IFwiZmlsbGV0c1wiO1xuQGltcG9ydCBcInNsaXBzXCI7XG5AaW1wb3J0IFwicHJpbnRpbmdcIjtcblxuXG4udWktdGFicy1hbmNob3J7XG4gICYudG91ci1zdGVwLWJhY2tkcm9we1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xuICB9XG59IiwiI3RhYi1kaW1lbnNpb25zIHtcblxuICBpLmZhe1xuICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgICBjb2xvcjokc2Vjb25kYXJ5LWNvbG9yO1xuICB9XG5cbiAgLmNhcmQtdGl0bGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgaW5wdXRbdHlwZT1udW1iZXJdIHtcbiAgICBtYXgtd2lkdGg6IDgwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLm1hdGVyaWFsLXJhZGlvIHtcbiAgICBwYWRkaW5nOiAwIDVweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cblxuICBsYWJlbFtmb3I9ZGltZW5zaW9ucy13aWR0aF0sIGxhYmVsW2Zvcj1kaW1lbnNpb25zLWhlaWdodF0ge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIH1cblxuICAucmVzdHJpY3Rpb24tbWVzc2FnZSB7XG4gICAgbWFyZ2luOiA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBwYWRkaW5nOiA1cHg7XG5cbiAgICA+IHAge1xuICAgICAgbWFyZ2luLXRvcDogNXB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG4gIH1cblxuICAjZGltZW5zaW9uLXJlc3RyaWN0aW9uLW1lc3NhZ2Uge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzFERUZGO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTM5LCAxNjAsIDIyMSwgMC41Nik7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuXG4gICN1bml0LWNob2ljZS1yYWRpbyB7XG4gICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gIH1cblxuICAjZGltZW5zaW9ucy11bml0LXNlbGVjdGlvbiB7XG4gICAgPiBmaWVsZHNldCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBtYXJnaW46IDAgYXV0bztcblxuICAgICAgPiBsYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuc3BhY2VyIHtcbiAgICBtYXJnaW4tdG9wOiAxM3B4O1xuICB9XG5cbiAgLmdseXBoaWNvbi1vayB7XG4gICAgY29sb3I6IGdyZWVuO1xuICB9XG5cbiAgLmdseXBoaWNvbi1yZW1vdmUge1xuICAgIGNvbG9yOiAjYWUwMDAwO1xuICB9XG5cbn1cblxuXG4jaW1hZ2UtZGV0YWlsc3tcbiAgdGV4dC1hbGlnbjogY2VudGVyIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICA+ICp7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuXG4jcmVtb3ZlLWltYWdle1xuICBjdXJzb3I6cG9pbnRlcjtcbiAgZm9udC1zaXplOiAycmVtO1xuXG4gIGkuZmF7XG4gICAgY29sb3I6I0Q4MDgwODtcbiAgfVxufVxuXG4jdXBsb2Fke1xuICAuZmEtdXBsb2Fke1xuICAgIGZvbnQtc2l6ZTogNXJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDVweDtcbiAgfVxufSIsIiN0YWItbWF0cyB7XG4gICo6ZGlzYWJsZWQge1xuICAgIGNvbG9yOiAjODU4NTg1O1xuICB9XG5cblxuICBsYWJlbHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICB9XG5cbiAgI2ZpZWxkc2V0LWZvci11bmlmb3Jte1xuICAgID4gbGFiZWx7XG4gICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICB9XG4gIH1cblxuICAjdmFyaWFibGUtbGFiZWx7XG4gICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gIH1cblxuXG4gIGxhYmVsW2Zvcj1udW1iZXItb2YtbWF0c117XG4gICAgcGFkZGluZy10b3A6MjBweDtcbiAgICBkaXNwbGF5OmJsb2NrO1xuICAgIG1hcmdpbjowIGF1dG87XG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gIH1cblxuICBsYWJlbFtmb3I9bnVtYmVyLW9mLW1hdHNdLCAjZmllbGRzZXQtbWF0Ym9hcmQtMSB7XG5cbiAgICA+IGxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gIH1cblxuICAjbWF0Ym9hcmQtZm9ybSBpbnB1dFt0eXBlPW51bWJlcl0ge1xuICAgIG1heC13aWR0aDogNTVweDtcbiAgfVxuXG4gIC5mbGF0LWxhYmVsIHtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyMjksIDIyOSwgMjI5KTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBpbnB1dCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICY6bm90KC5zZWxlY3RlZC1mbGF0LWxhYmVsKSB7XG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2M3YzdjNztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnNlbGVjdGVkLWZsYXQtbGFiZWwge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxuICB9XG5cbiAgZmllbGRzZXQge1xuICAgICY6ZGlzYWJsZWQge1xuICAgICAgJi5mbGF0LWxhYmVsIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2M3YzdjNztcbiAgICAgICAgY29sb3I6ICM4NTg1ODU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuICAuc2VsZWN0LWljb246YmVmb3JlIHtcblxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDFzIGVhc2UtaW4tb3V0O1xuICAgIC1tb3otdHJhbnNpdGlvbjogYWxsIDFzIGVhc2UtaW4tb3V0O1xuICAgIC1tcy10cmFuc2l0aW9uOiBhbGwgMXMgZWFzZS1pbi1vdXQ7XG4gICAgLW8tdHJhbnNpdGlvbjogYWxsIDFzIGVhc2UtaW4tb3V0O1xuICAgIHRyYW5zaXRpb246IGFsbCAxcyBlYXNlLWluLW91dDtcblxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDNweDtcbiAgICBtYXJnaW46IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICB9XG5cblxuICAuaW5saW5lLWJsb2NrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cblxuICAjZmllbGRzZXQtbWF0Ym9hcmQtMSB7XG4gICAgJi5pbmxpbmUtYmxvY2sge1xuICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgfVxuICB9XG5cbiAgI2ZpZWxkc2V0LW1hdGJvYXJkLTIge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gIH1cblxuICBsYWJlbFtmb3I9bWF0Ym9hcmQtMi13aWR0aF0ge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gIH1cblxuICAubWF0Ym9hcmQtZ3JpZCB7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBmb250LXNpemU6IDA7XG4gIH1cblxuICAubWF0Ym9hcmQtc3F1YXJlIHtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NiY2JjYjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAxcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG5cbiAgICAmOm5vdChbZGF0YS1zZWxlY3RlZD10cnVlXSk6aG92ZXIge1xuXG4gICAgICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMCAwcHggMnB4IHJnYigyNDIsIDI1NSwgMCksIGluc2V0IDAgMCAwIDNweCByZ2IoMTgsIDE5LCA2Mik7XG4gICAgICAtbW96LWJveC1zaGFkb3c6IGluc2V0IDAgMCAwcHggMnB4IHJnYigyNDUsIDI1MSwgOSksIGluc2V0IDAgMCAwIDNweCByZ2IoMTgsIDE5LCA2Mik7XG4gICAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMHB4IDJweCByZ2IoMjU1LCAyNTUsIDE1KSwgaW5zZXQgMCAwIDAgM3B4IHJnYigxOCwgMTksIDYyKTtcbiAgICB9XG5cbiAgfVxuXG5cbiAgLm1hdGJvYXJkLXNxdWFyZVtkYXRhLXNlbGVjdGVkPXRydWVdIHtcblxuICB9XG5cbiAgLm1hdGJvYXJkLXNxdWFyZVtkYXRhLXNlbGVjdGVkPXRydWVdIC5zZWxlY3QtaWNvbjpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuXG4gIFtkYXRhLXR5cGU9XCJ1bml0LWxhYmVsXCJdIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxufVxuXG5cbkBpbmNsdWRlIGtleWZyYW1lcyhjYXJkLWZsaXApIHtcbiAgZnJvbSB7XG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZVkoMGRlZykpO1xuICB9XG4gIHRvIHtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlWSgxODBkZWcpKTtcbiAgfVxufSIsIiN0YWItZ2xhc3MtYW5kLWJhY2tpbmd7XG4gIC5saXN0LWdyb3VwLWl0ZW0ge1xuICAgIHBhZGRpbmc6IDFweCA1cHg7XG4gICAgYm9yZGVyOiAwO1xuXG4gICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgfVxuICB9XG5cbiAgLmdsYXNzLWluZm97XG4gICAgJjpub3QoW2RhdGEtaW5mby1pZD1jbGVhci1nbGFzc10pe1xuICAgICAgZGlzcGxheTpub25lO1xuICAgIH1cbiAgfVxuXG4gIC5iYWNraW5nLWluZm97XG4gICAgJjpub3QoW2RhdGEtaW5mby1pZD1NREZdKXtcbiAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICB9XG4gIH1cblxuICAuZ2x5cGhpY29uLXJlbW92ZXtcbiAgICBjb2xvcjojN0QxMjAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gIH1cbiAgLmdseXBoaWNvbi1va3tcbiAgICBjb2xvcjojNzliNDczO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gIH1cblxuICBoNHtcbiAgICBwYWRkaW5nOjVweDtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgYmxhY2s7XG4gIH1cbn0iLCIjdGFiLWZyYW1lcyB7XG4gICNmcmFtZS1maWx0ZXItbGFiZWwge1xuXG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG5cbiAgICAqIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICBmb250LWZhbWlseTogXCJEcm9pZCBTYW5zXCIsIEFyaWFsLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgICB9XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgPiBzcGFuIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG4gICAgfVxuICAgID4gaW5wdXQge1xuICAgICAgbWF4LXdpZHRoOiA5MHB4O1xuICAgIH1cbiAgfVxuXG4gICNmaWx0ZXItaW5wdXQtYm94LWdyb3Vwe1xuICAgIGlucHV0LHNlbGVjdCB7XG4gICAgICB3aWR0aDoxMDAlO1xuICAgIH1cbiAgfVxuXG4gICNmcmFtZS1maWx0ZXItaW5wdXRze1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICA+ICoge1xuICAgICAgbWFyZ2luLXRvcDogNXB4O1xuICAgIH1cbiAgfVxuXG4gICN0aHVtYi1zZWxlY3RlZCB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjE1KTtcbiAgICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDBweCAwcHggMHB4IDNweCAkcHJpbWFyeS1jb2xvcjtcbiAgICAtbW96LWJveC1zaGFkb3c6IGluc2V0IDBweCAwcHggMHB4IDNweCAkcHJpbWFyeS1jb2xvcjtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwcHggMHB4IDBweCAzcHggJHByaW1hcnktY29sb3I7XG4gIH1cblxufSIsIiN0YWItZmlsbGV0c3tcbiAgcHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAjZmlsbGV0LWxhYmVsLWNvbnRhaW5lcntcbiAgICBtYXJnaW46MCBhdXRvO1xuICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgcGFkZGluZy10b3A6MTVweDtcblxuICAgID4gbGFiZWx7XG4gICAgICBkaXNwbGF5OmlubGluZS1ibG9jaztcbiAgICB9XG4gIH1cblxuICAjZmlsbGV0LW5vLW1hdC13YXJuaW5ne1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOjVweDtcbiAgICBhIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgfVxuXG4gICAgLmdseXBoaWNvbntcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICBjb2xvcjogI0QzMDkwOTtcbiAgICB9XG5cbiAgICBzcGFue1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbn0iLCIjc2xpcHMtbGFiZWwtY29udGFpbmVye1xuICBtYXJnaW46MCBhdXRvO1xuICBkaXNwbGF5OmJsb2NrO1xuICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgcGFkZGluZy10b3A6MTVweDtcblxuICA+IGxhYmVse1xuICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICB9XG59IiwiI3RhYi1wcmludGluZ3tcbiAgLmxpc3QtZ3JvdXAtaXRlbSB7XG4gICAgcGFkZGluZzogMXB4IDVweDtcbiAgICBib3JkZXI6IDA7XG5cbiAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICB9XG5cbiAgICAuZ2x5cGhpY29uLCAuZmF7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICAgIH1cblxuICAgIC5nbHlwaGljb24tb2t7XG4gICAgICBjb2xvcjojNzliNDczO1xuICAgIH1cblxuICB9XG5cbiAgLnByaW50aW5nLWluZm97XG4gICAgJjpub3QoW2RhdGEtaW5mby1pZD1ub25lXSl7XG4gICAgICBkaXNwbGF5Om5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmJhY2tpbmctaW5mb3tcbiAgICAmOm5vdChbZGF0YS1pbmZvLWlkPU1ERl0pe1xuICAgICAgZGlzcGxheTpub25lO1xuICAgIH1cbiAgfVxuXG5cbiAgaDR7XG4gICAgcGFkZGluZzo1cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIGJsYWNrO1xuICB9XG59IiwiI2Zvb3RlcntcblxuICAqe1xuICAgIGNvbG9yOndoaXRlO1xuICB9XG4gIGJhY2tncm91bmQtY29sb3I6ICMzQTQ2OTI7XG5cbiAgLy8gU1RZTEUgTU9IQU1BRCBBRERFRCBGT1IgTkVXIEZPT1RFUlxuXG4gICNzb2NpYWwtaWNvbnMgLmZhIHtcbiAgICBmb250LXNpemU6IDMuNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiA3cHg7XG4gIH1cblxuICAjZ2VvdHJ1c3QtbGluayBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG5cbiAgaDMge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB3aGl0ZTtcbiAgfVxuXG4gIGEsIC5mYXtcbiAgICAmOmhvdmVye1xuICAgICAgY29sb3I6ICMwREM2OTE7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgI2VtYWlsLWxpbmsge1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsgLyogY3NzLTMgKi9cbiAgICB3aGl0ZS1zcGFjZTogLW1vei1wcmUtd3JhcDsgLyogTW96aWxsYSwgc2luY2UgMTk5OSAqL1xuICAgIHdoaXRlLXNwYWNlOiAtby1wcmUtd3JhcDsgLyogT3BlcmEgNyAqL1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsgLyogSW50ZXJuZXQgRXhwbG9yZXIgNS41KyAqL1xuICB9XG59IiwiI2luZGV4LXBhZ2V7XG4gIGF7XG4gICAgJjpob3ZlcntcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbiAgaDMge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzNBNDY5MjtcbiAgICBwYWRkaW5nIDogMTBweDtcblxuICAgICY6aG92ZXJ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTdBNUQzO1xuICAgIH1cbiAgfVxuXG5cbiAgLmNhdGVnb3J5LXRodW1ie1xuICAgIGhlaWdodDozMDBweDtcbiAgICBvdmVyZmxvdzpoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLmJ0bntcbiAgICAgIG1hcmdpbjogNXB4O1xuICAgIH1cblxuICAgIC5jYXRlZ29yeS10aHVtYi10aXRsZXtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICB9XG59IiwiQGltcG9ydCBcIi4uL2NvbG91cnNcIjtcblxuLmNhdGVnb3J5LWhlYWRlciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDU4LCA3MCwgMTQ2LCAwLjE4KTtcbiAgZm9udC1mYW1pbHk6IFJhbGV3YXksIFwiRHJvaWQgU2Fuc1wiLCBBcmlhbCwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cztcblxuICAvLyBCb290c3RyYXAgb3ZlcnJpZGVcbiAgLm9wZW4gPiBhIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgJl9fcm9vdC1saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcblxuICAgIGxpIGEge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICBjb2xvcjogYmxhY2s7XG4gICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgICAgPiBsaSA+IGEge1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgICAgbGkgYSB7XG4gICAgICAgIHBhZGRpbmc6IDZweCAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX3Jvb3QtaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZsb2F0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuXG4gICAgJi0tb24tc2FsZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjAwLCAwLCAwKTtcbiAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gICZfX2Ryb3Bkb3duIHtcbiAgICBtaW4td2lkdGg6IDcwMHB4O1xuICAgIHdpZHRoOiA3MCU7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICB9XG5cbiAgJl9fbWVudS1jb2x1bW4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB9XG5cbiAgJl9fbWVudS1oZWFkaW5nIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFQUVBRUE7XG5cblxuICB9XG5cbiAgJl9fbWVudS1pdGVtIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb2xvcjogYmxhY2s7XG5cbiAgICAmOm5vdCg6bGFzdC1jaGlsZCl7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0VBRUFFQTtcbiAgICB9XG5cbiAgICA+IGEge1xuICAgICAgZm9udC1zaXplOiAxLjdyZW0gIWltcG9ydGFudDtcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEyMDBweCkge1xuICAgICAgICBmb250LXNpemU6IDEuNHJlbSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBK0VxQkEsQUFBQSxPQUFPLENBQUM7RUFDTixLQUFLLEVBaEJLLE9BQU87RUFpQmpCLGdCQUFnQixFQVRHLE9BQU8sR0FpQjNCO0VBVkQsQUFLSSxPQUxHLEdBS0gsV0FBVyxDQUFBO0lBQ1gsT0FBTyxFQUFDLElBQUk7SUFDWixjQUFjLEVBQUMsTUFBTSxHQUN0Qjs7QS9FWEgsQUFBQSxDQUFDLENBQUM7RUFFQSwwQkFBMEIsRUFBRSxLQUFLLEdBQ2xDOztB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 */
