.row .col {
  float: left; }

h1, h2, h3, h4, h5, p, a {
  color: black; }

::selection {
  background-color: #6e9027;
  color: white; }

::-moz-selection {
  background-color: #6e9027;
  color: white; }

body {
  -webkit-tap-highlight-color: transparent; }

body {
  overflow-x: hidden;
  overflow-y: scroll;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

p, h4, span, a, button {
  font-family: azo-sans-web, sans-serif;
  font-style: normal;
  font-weight: 300; }

.product-description-text, .product-description-text * {
  font-family: azo-sans-web, sans-serif;
  font-style: normal;
  font-weight: 300;
  color: black; }

h2, h3, strong {
  font-family: azo-sans-web, sans-serif;
  font-style: normal;
  font-weight: 700; }

h1 {
  font-family: azo-sans-web, sans-serif;
  font-style: normal;
  font-weight: 900; }

.normal {
  opacity: 1 !important;
  transform: translate(0%, 0%) !important;
  transition: 2s ease all; }

@media (min-width: 993px) {
  .fadein {
    opacity: 0;
    transform: translate(-100px, 0%);
    transition: 3s ease all; } }

@media (max-width: 992px) {
  .fadein {
    opacity: 0;
    transition: 1.5s ease all; } }

.margin-top-38 {
  margin-top: 38px; }

.margin-bottom-0 {
  margin-bottom: 0; }

.margin-bottom-25 {
  margin-bottom: 25px; }

.margin-bottom-80 {
  margin-bottom: 80px;
  font-size: 12px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.25;
  text-align: center;
  color: #4a4a4a; }

.margin-center {
  margin-left: auto;
  margin-right: auto; }

.ml0 {
  margin-left: 0 !important; }

.mr0 {
  margin-right: 0 !important; }

.mb0 {
  margin-bottom: 0 !important; }

.mr20 {
  margin-right: 20px; }

.p0 {
  padding: 0 !important; }

.padding-top-40 {
  padding-top: 40px; }

.padding-top-60 {
  padding-top: 60px; }

.padding-top-80 {
  padding-top: 80px; }

.pr0 {
  padding-right: 0 !important; }

a:focus {
  outline: none !important; }

.same-height-column__parent {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  flex-wrap: wrap; }
  .same-height-column__parent .same-height-column__child {
    display: flex;
    flex-direction: column; }

.vertical-align-div__parent {
  display: flex;
  align-items: center;
  -webkit-box-orient: horizontal;
  -moz-box-orient: horizontal;
  box-orient: horizontal;
  -webkit-box-direction: normal;
  -moz-box-direction: normal;
  box-direction: normal;
  -webkit-flex-direction: row;
  -moz-flex-direction: row;
  flex-direction: row;
  -ms-flex-direction: row; }
  .vertical-align-div__parent.same-height-column__child {
    -webkit-box-orient: horizontal;
    -moz-box-orient: horizontal;
    box-orient: horizontal;
    -webkit-box-direction: normal;
    -moz-box-direction: normal;
    box-direction: normal;
    -webkit-flex-direction: row;
    -moz-flex-direction: row;
    flex-direction: row;
    -ms-flex-direction: row; }

html.wf-inactive {
  margin-top: 0 !important; }
  html.wf-inactive #wpadminbar {
    position: fixed;
    top: auto;
    bottom: 0; }

.button--grey-small, section.featured-products .container .product-details a {
  background-color: #606060;
  border: none;
  font-family: "Open Sans", sans-serif;
  font-size: 10px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  letter-spacing: 3px;
  text-align: center;
  color: #ffffff;
  padding: 8px 10px;
  text-transform: uppercase;
  position: relative;
  outline: none;
  display: block; }

.btn.btn-call {
  border-radius: 100px;
  background-color: #a6ce39;
  border-width: 2px;
  border: none;
  box-shadow: none;
  font-weight: bold;
  font-size: 15px;
  padding: 10px 35px;
  text-transform: uppercase;
  margin-bottom: 15px;
  margin-top: 12px;
  text-align: center;
  letter-spacing: .5px;
  transition: .2s ease-out;
  cursor: pointer;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); }
  .btn.btn-call:hover {
    background: #515553;
    box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.14), 0 1px 7px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -1px rgba(0, 0, 0, 0.2); }
  .btn.btn-call:before {
    margin-right: 4px; }
  .btn.btn-call span {
    font-family: azo-sans-web, sans-serif;
    font-weight: bold; }

#back-to-top {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 9999;
  width: 40px;
  height: 40px;
  text-align: center;
  line-height: 40px;
  background: #f5f5f5;
  color: #444;
  cursor: pointer;
  border: 0;
  border-radius: 100%;
  text-decoration: none;
  transition: opacity 0.2s ease-out;
  opacity: 0; }

#back-to-top:hover {
  background: #e9ebec;
  opacity: 1; }

#back-to-top.show {
  opacity: 0.5; }

header .navbar-fixed {
  z-index: 998; }

header nav {
  background-color: white;
  box-shadow: none;
  border-bottom: 1px solid #e6e6e6; }
  header nav .brand-logo {
    background: url("../images/entro-logo.svg");
    background-size: 140px;
    height: 60px;
    width: 200px;
    transform: scale(1.2);
    font-size: 0;
    cursor: pointer;
    background-repeat: no-repeat;
    background-position: center; }
    @media (max-width: 500px) {
      header nav .brand-logo {
        right: 20%;
        left: auto; } }
  header nav li a {
    color: #000 !important; }

header ul#nav-mobile {
  margin-right: 17px; }
  header ul#nav-mobile li {
    text-align: right; }
    header ul#nav-mobile li a {
      font-size: 16px;
      font-family: azo-sans-web, sans-serif;
      font-style: normal;
      font-weight: 700;
      transition: 0.4s ease all;
      text-transform: uppercase; }
      header ul#nav-mobile li a:hover {
        background-color: #fff;
        transform: translate(0%, -2px); }
    header ul#nav-mobile li .login {
      font-size: 10px;
      font-family: azo-sans-web, sans-serif;
      font-style: normal;
      font-weight: 400; }
    header ul#nav-mobile li .search {
      width: 20px;
      height: 30px;
      background-color: #515553;
      border-radius: 100%;
      margin: 15px 3px; }
      header ul#nav-mobile li .search:hover {
        background-color: #6a6f6d; }
      header ul#nav-mobile li .search i {
        color: white;
        font-size: 13px;
        transform: translate(-55%, -26%); }
    header ul#nav-mobile li .basket {
      width: 20px;
      height: 30px;
      background-color: #A5CF4E;
      border-radius: 100%;
      margin: 15px 3px; }
      header ul#nav-mobile li .basket:hover {
        background-color: #b9da76; }
      header ul#nav-mobile li .basket i {
        color: white;
        font-size: 13px;
        transform: translate(-55%, -26%); }
    header ul#nav-mobile li .number {
      padding: 0px 30px; }
    header ul#nav-mobile li .login {
      text-align: right;
      padding: 0px;
      padding-left: 5px;
      text-decoration: underline; }
    header ul#nav-mobile li .right {
      text-align: right;
      display: none; }
    header ul#nav-mobile li .dropdown-content {
      width: 200px !important;
      top: 58px !important;
      overflow: hidden;
      padding-bottom: 16px; }
      header ul#nav-mobile li .dropdown-content li {
        min-height: 12px;
        height: 30px; }
        header ul#nav-mobile li .dropdown-content li a {
          font-size: 11px;
          line-height: 16px; }

@font-face {
  font-family: 'icon-fill';
  src: url("../fonts/icomoon.eot?3a4t8a");
  src: url("../fonts/icomoon.eot?3a4t8a#iefix") format("embedded-opentype"), url("../fonts/icomoon.ttf?3a4t8a") format("truetype"), url("../fonts/icomoon.woff?3a4t8a") format("woff"), url("../fonts/icomoon.svg?3a4t8a#icomoon") format("svg");
  font-weight: normal;
  font-style: normal; }

[class^="icon-"], [class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'icon-fill' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.icon-fill-1:before {
  content: "\e900"; }

.icon-fill-2:before {
  content: "\e901"; }

.icon-fill-3:before {
  content: "\e902"; }

@font-face {
  font-family: 'social-icon';
  src: url("../fonts/social/icomoon.eot?bwahnd");
  src: url("../fonts/social/icomoon.eot?bwahnd#iefix") format("embedded-opentype"), url("../fonts/social/icomoon.ttf?bwahnd") format("truetype"), url("../fonts/social/icomoon.woff?bwahnd") format("woff"), url("../fonts/social/icomoon.svg?bwahnd#icomoon") format("svg");
  font-weight: normal;
  font-style: normal; }

[class^="social-icon-"], [class*="social-icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'social-icon' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.social-icon-facebook:before {
  content: "\e900"; }

.social-icon-google:before {
  content: "\e901"; }

.social-icon-twitter:before {
  content: "\e902"; }

/* This stylesheet generated by Transfonter (http://transfonter.org) on November 11, 2016 1:58 AM */
@font-face {
  font-family: 'Avenir LT Std';
  src: url("../fonts/avenir/AvenirLTStd-Light.eot");
  src: url("../fonts/avenir/AvenirLTStd-Light.eot?#iefix") format("embedded-opentype"), url("../fonts/avenir/AvenirLTStd-Light.woff") format("woff"), url("../fonts/avenir/AvenirLTStd-Light.ttf") format("truetype");
  font-weight: 300;
  font-style: normal; }

@font-face {
  font-family: 'Avenir LT Std';
  src: url("../fonts/avenir/AvenirLTStd-Roman.eot");
  src: url("../fonts/avenir/AvenirLTStd-Roman.eot?#iefix") format("embedded-opentype"), url("../fonts/avenir/AvenirLTStd-Roman.woff") format("woff"), url("../fonts/avenir/AvenirLTStd-Roman.ttf") format("truetype");
  font-weight: normal;
  font-style: normal; }

@font-face {
  font-family: 'Avenir LT Std';
  src: url("../fonts/avenir/AvenirLTStd-Book.eot");
  src: url("../fonts/avenir/AvenirLTStd-Book.eot?#iefix") format("embedded-opentype"), url("../fonts/avenir/AvenirLTStd-Book.woff") format("woff"), url("../fonts/avenir/AvenirLTStd-Book.ttf") format("truetype");
  font-weight: normal;
  font-style: normal; }

section.hero {
  margin: auto;
  background-size: cover; }
  section.hero .container {
    max-width: 960px; }
    section.hero .container h1 {
      color: white;
      padding-bottom: 0;
      margin-bottom: 0;
      font-size: 40px; }
    section.hero .container .banner-heading {
      margin-top: 100px;
      background-color: rgba(0, 0, 0, 0.6);
      padding: 30px;
      border-radius: 20px; }
      section.hero .container .banner-heading .green-break {
        margin-top: 0;
        margin-left: 0; }
    section.hero .container p {
      margin-top: 3px;
      color: white;
      font-size: 18px;
      font-weight: normal; }
    section.hero .container .featured-article {
      background-color: #F4F4F4;
      position: relative;
      margin-top: 50px;
      margin-bottom: 100px;
      -webkit-transform: translateY(150px);
      -moz-transform: translateY(150px);
      -ms-transform: translateY(150px);
      -o-transform: translateY(150px);
      transform: translateY(150px); }
      @media (max-width: 1000px) {
        section.hero .container .featured-article {
          background-color: transparent;
          -webkit-transform: translateY(0);
          -moz-transform: translateY(0);
          -ms-transform: translateY(0);
          -o-transform: translateY(0);
          transform: translateY(0); } }
      section.hero .container .featured-article.slider {
        height: auto; }
      section.hero .container .featured-article .row {
        margin-bottom: 0; }
      section.hero .container .featured-article .left {
        padding: 0;
        position: relative; }
        @media (max-width: 1000px) {
          section.hero .container .featured-article .left {
            position: static;
            background-color: #F4F4F4;
            padding: 1em 0;
            min-height: 200px;
            display: flex;
            align-items: center; } }
        section.hero .container .featured-article .left .content {
          position: absolute;
          top: 50%;
          -webkit-transform: translate(0, -50%);
          -moz-transform: translate(0, -50%);
          -ms-transform: translate(0, -50%);
          -o-transform: translate(0, -50%);
          transform: translate(0, -50%); }
          @media (max-width: 1000px) {
            section.hero .container .featured-article .left .content {
              position: static;
              -webkit-transform: translate(0, 0);
              -moz-transform: translate(0, 0);
              -ms-transform: translate(0, 0);
              -o-transform: translate(0, 0);
              transform: translate(0, 0); } }
        section.hero .container .featured-article .left h1 {
          text-align: center;
          padding: 0 0 10px;
          color: #4a4a4a;
          font-size: 28px;
          width: 90%;
          margin: 0 auto; }
        section.hero .container .featured-article .left p {
          padding: 0 20px;
          text-align: center;
          color: #4a4a4a;
          font-size: 16px;
          width: 74%;
          margin: 0 auto; }
          @media (max-width: 1000px) {
            section.hero .container .featured-article .left p {
              font-size: 14px;
              width: 90%; } }
        section.hero .container .featured-article .left .read-more {
          position: absolute;
          right: 25px;
          bottom: 0;
          background: #a6ce39;
          color: white;
          font-size: 11px;
          letter-spacing: 1.4px;
          padding: 4px 10px;
          cursor: pointer;
          font-style: normal;
          font-weight: 400;
          transition: 0.4s ease all;
          line-height: 1.6;
          right: 0; }
          section.hero .container .featured-article .left .read-more::after {
            background-color: #606060;
            font: normal normal normal 15px FontAwesome;
            display: block;
            height: 25px;
            width: 25px;
            content: '\f105';
            position: absolute;
            color: white;
            padding: 4px 10px;
            right: -25px;
            bottom: 0;
            -webkit-transition: all 0.1s ease-in-out;
            -moz-transition: all 0.1s ease-in-out;
            transition: all 0.1s ease-in-out; }
          section.hero .container .featured-article .left .read-more:hover {
            background: #b8d862; }
            section.hero .container .featured-article .left .read-more:hover::after {
              content: "\f002";
              padding: 4px 6px;
              -webkit-transition: all 0.1s ease-in-out;
              -moz-transition: all 0.1s ease-in-out;
              transition: all 0.1s ease-in-out; }
      section.hero .container .featured-article .right {
        background-repeat: no-repeat;
        background-size: cover;
        padding: 0; }
        @media (max-width: 1000px) {
          section.hero .container .featured-article .right img {
            width: 100%;
            height: auto; } }

section.specialize-in {
  padding: 30px 0;
  background-color: #f3f3f3; }
  section.specialize-in .container {
    width: 960px;
    max-width: 100%; }
    section.specialize-in .container .row {
      margin-bottom: 0; }
      section.specialize-in .container .row a {
        display: block; }
        section.specialize-in .container .row a h3 {
          margin-top: 30px; }
  section.specialize-in img.special-icon-education {
    margin: auto; }
  @media (max-width: 600px) {
    section.specialize-in {
      padding: 0 2em; } }

section.featured-products {
  padding-top: 140px;
  width: 960px;
  max-width: 100%;
  margin: auto; }
  section.featured-products .container {
    width: 100%; }
    section.featured-products .container h2 {
      font-size: 20px;
      padding-bottom: 0px;
      margin-bottom: 0px;
      font-family: azo-sans-web, sans-serif;
      font-style: normal;
      font-weight: 900; }
    section.featured-products .container p {
      font-size: 12px;
      margin: 5px; }
    section.featured-products .container .green-break {
      margin: 16px auto; }
    section.featured-products .container .product-container {
      padding: 0 5px;
      position: relative;
      margin-bottom: 20px; }
      section.featured-products .container .product-container .inner-product-container {
        border: 1px solid #e6e6e6;
        padding: 10px 29px 23px 29px; }
      section.featured-products .container .product-container .product-is-new {
        position: absolute;
        color: #ffffff;
        font-size: 10px;
        font-weight: normal;
        font-style: normal;
        font-stretch: normal;
        font-weight: bold;
        background: #f3a536;
        border-radius: 1000px;
        padding: 0 16px;
        top: 55px;
        right: 35px; }
      section.featured-products .container .product-container .product-title {
        margin-bottom: 22px;
        padding: 0;
        font-family: azo-sans-web, sans-serif;
        font-size: 12px;
        font-weight: normal;
        font-style: normal;
        font-stretch: normal;
        line-height: 1;
        text-align: center;
        color: #4a4a4a; }
    section.featured-products .container .product-image-container {
      width: 180px;
      max-width: 100%;
      margin-left: auto;
      margin-right: auto;
      margin-bottom: 16px; }
      section.featured-products .container .product-image-container img.product-image {
        width: 100%; }
    section.featured-products .container .product-price {
      overflow: hidden; }
      section.featured-products .container .product-price span {
        font-family: azo-sans-web, sans-serif;
        font-size: 14px;
        font-weight: normal;
        font-style: normal;
        font-stretch: normal;
        text-align: center;
        color: #4a4a4a; }
      section.featured-products .container .product-price del {
        float: left; }
      section.featured-products .container .product-price ins {
        float: right; }
        section.featured-products .container .product-price ins span {
          font-weight: bold;
          color: #d0021b; }
    section.featured-products .container .product-details {
      padding: 13px 7px; }

section.opt-in {
  height: 500px;
  position: relative;
  display: flex;
  color: #fff;
  align-items: center; }
  section.opt-in .container .row {
    display: flex;
    align-items: center; }
  section.opt-in.hidden {
    display: none; }
  section.opt-in:after {
    content: "";
    background-image: url(../images/Catalogue-banner.jpg);
    background-size: cover;
    z-index: -1;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0; }
  section.opt-in .image-content img {
    float: right; }
    @media (max-width: 600px) {
      section.opt-in .image-content img {
        width: auto;
        margin: auto;
        float: none; } }
  section.opt-in .text-content {
    padding: 67px; }
    @media (max-width: 600px) {
      section.opt-in .text-content {
        padding: 20px; } }
    section.opt-in .text-content h2 {
      color: #fff;
      font-size: 24px; }
    section.opt-in .text-content .paragraph-content {
      width: 60%;
      margin: auto; }
      section.opt-in .text-content .paragraph-content p {
        font-size: 13px;
        line-height: 1; }
    section.opt-in .text-content button {
      text-transform: uppercase;
      letter-spacing: 1.8px;
      height: 42px;
      margin: 0 auto; }
  @media (max-width: 600px) {
    section.opt-in {
      height: auto;
      padding: 67px 0 10px; } }

section.opt-in-form {
  padding: 52px 0;
  height: 500px;
  position: relative;
  display: block;
  opacity: 0;
  background-color: #fff; }
  section.opt-in-form.hidden {
    display: none; }
  section.opt-in-form .content h2 {
    font-size: 24px; }
  section.opt-in-form .content .paragraph-content {
    width: 33.33333%;
    margin: auto; }
    section.opt-in-form .content .paragraph-content p {
      font-size: 13px;
      line-height: 1; }
    @media (max-width: 600px) {
      section.opt-in-form .content .paragraph-content {
        width: 60%; } }
  section.opt-in-form .content .frontpage-form {
    width: 75%;
    margin: auto; }
  section.opt-in-form .content .frontpage-form .label {
    font-size: 14px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: 1.86;
    text-align: left;
    color: #606060;
    padding: 0; }
  section.opt-in-form .content .frontpage-form .textbox, section.opt-in-form .content .frontpage-form .textarea {
    border-bottom: solid 1px #989898;
    background: transparent;
    box-shadow: none;
    padding: 0;
    height: auto; }
  section.opt-in-form .content .frontpage-form .textarea {
    height: 70px; }
  section.opt-in-form .content .frontpage-form .radiobutton input[type="radio"] {
    position: relative;
    left: auto;
    opacity: 1; }
    section.opt-in-form .content .frontpage-form .radiobutton input[type="radio"]:checked + label:before {
      background: #a6ce39; }
  section.opt-in-form .content .frontpage-form .submit {
    border-radius: 100px;
    background-color: #a6ce39;
    border-width: 2px;
    border: none;
    padding: 10px 35px;
    box-shadow: none;
    text-transform: uppercase;
    margin-bottom: 15px; }
  section.opt-in-form .content .frontpage-form .button-wrapper {
    margin: -50px; }
    section.opt-in-form .content .frontpage-form .button-wrapper input[type="submit"] {
      border-radius: 100px;
      background-color: #a6ce39;
      border-width: 2px;
      border: none;
      padding: 10px 35px;
      box-shadow: none;
      text-transform: uppercase;
      margin-bottom: 15px;
      text-transform: uppercase;
      letter-spacing: 1.8px;
      height: 42px; }
  @media (max-width: 600px) {
    section.opt-in-form {
      height: auto; } }

section.get-in-touch {
  padding: 50px 0; }
  section.get-in-touch.container {
    width: 960px;
    max-width: 100%; }
  section.get-in-touch .green-break {
    margin-bottom: 16px; }
  section.get-in-touch h2 {
    font-size: 20px;
    font-weight: 900;
    font-style: normal;
    font-stretch: normal;
    color: #ffffff;
    margin-bottom: 12px;
    text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5); }
  section.get-in-touch p {
    font-size: 15px;
    line-height: 25px;
    font-weight: bold;
    font-style: normal;
    font-stretch: normal;
    text-align: center;
    color: #ffffff;
    margin-bottom: 20px;
    text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5); }
  section.get-in-touch button {
    width: 153px;
    height: 44px;
    border-radius: 100px;
    background-color: #a6ce39;
    border-style: solid;
    border-image-source: linear-gradient(to bottom, #b4ec51, #429321);
    border-image-slice: 1;
    margin-bottom: 20px; }

.parallax-window {
  min-height: 600px;
  background-color: transparent; }

.parallax-container {
  background-size: cover; }

.contact-container, .single-container {
  opacity: 0.9; }
  .contact-container .green-break-6, .single-container .green-break-6 {
    margin: 16px auto; }
  .contact-container .header-text, .single-container .header-text {
    font-size: 24px;
    font-weight: bold;
    font-style: normal;
    font-stretch: normal;
    text-align: center;
    color: #4a4a4a; }
  .contact-container .description-text, .single-container .description-text {
    font-size: 14px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: 1.43;
    text-align: center;
    color: #4a4a4a;
    margin: 22px auto 51px; }
  .contact-container .contact-page-form .label, .single-container .contact-page-form .label {
    font-size: 14px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: 1.86;
    text-align: left;
    color: #606060;
    padding: 0; }
  .contact-container .contact-page-form .textbox, .contact-container .contact-page-form .textarea, .single-container .contact-page-form .textbox, .single-container .contact-page-form .textarea {
    border-bottom: solid 1px #989898;
    background: transparent;
    box-shadow: none;
    padding: 0;
    height: auto; }
  .contact-container .contact-page-form .textarea, .single-container .contact-page-form .textarea {
    height: 70px; }
  .contact-container .contact-page-form .radiobutton input[type="radio"], .single-container .contact-page-form .radiobutton input[type="radio"] {
    position: relative;
    left: auto;
    opacity: 1; }
    .contact-container .contact-page-form .radiobutton input[type="radio"]:checked + label:before, .single-container .contact-page-form .radiobutton input[type="radio"]:checked + label:before {
      background: #a6ce39; }
  .contact-container .contact-page-form .submit, .single-container .contact-page-form .submit {
    border-radius: 100px;
    background-color: #a6ce39;
    border-width: 2px;
    border: none;
    padding: 10px 35px;
    box-shadow: none;
    text-transform: uppercase;
    margin-bottom: 15px; }
  .contact-container .wpcf7 .description-text, .single-container .wpcf7 .description-text {
    margin: 10px auto; }

.single-container.about-us .content {
  padding-bottom: 68px; }
  .single-container.about-us .content h3 {
    margin-top: 10px; }
  .single-container.about-us .content .green-break-6 {
    margin: 16px 0; }

.single-container.about-us .content.category {
  padding-top: 0;
  padding-bottom: 52px; }
  .single-container.about-us .content.category h3 {
    font-family: "Avenir LT Std";
    font-size: 20px;
    font-weight: 900;
    font-style: normal;
    font-stretch: normal;
    text-align: left;
    color: #545454;
    margin-bottom: 0; }
  .single-container.about-us .content.category p {
    font-size: 12px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: 1.25;
    text-align: center;
    color: #4a4a4a;
    margin-bottom: 8px; }
  .single-container.about-us .content.category .green-break-6 {
    margin: 16px auto; }

.single-container.about-us .post-list {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 66px; }
  .single-container.about-us .post-list .post-list-item {
    position: relative;
    margin-bottom: 20px;
    background-color: #efefef;
    background-clip: content-box; }
    .single-container.about-us .post-list .post-list-item .post-list-item-inner img {
      width: 100%;
      height: 200px; }
    .single-container.about-us .post-list .post-list-item .post-list-item-inner .post-list-item-content {
      padding: 33px 20px 48px 20px; }
      .single-container.about-us .post-list .post-list-item .post-list-item-inner .post-list-item-content .title {
        font-family: "Avenir LT Std";
        font-size: 20px;
        font-weight: bold;
        font-style: normal;
        font-stretch: normal;
        text-align: left;
        color: #4a4a4a;
        margin-bottom: 12px; }
      .single-container.about-us .post-list .post-list-item .post-list-item-inner .post-list-item-content .excerpt {
        font-size: 12px;
        font-weight: normal;
        font-style: normal;
        font-stretch: normal;
        line-height: 1.25;
        color: #4a4a4a; }
    .single-container.about-us .post-list .post-list-item .read-more {
      position: absolute;
      right: 25px;
      bottom: 0;
      background: #a6ce39;
      color: white;
      font-size: 11px;
      letter-spacing: 1.4px;
      padding: 4px 10px;
      cursor: pointer;
      font-style: normal;
      font-weight: 400;
      transition: 0.4s ease all;
      line-height: 1.6; }
      .single-container.about-us .post-list .post-list-item .read-more::after {
        background-color: #606060;
        font: normal normal normal 15px FontAwesome;
        display: block;
        height: 25px;
        width: 25px;
        content: '\f105';
        position: absolute;
        color: white;
        padding: 4px 10px;
        right: -25px;
        bottom: 0;
        -webkit-transition: all 0.1s ease-in-out;
        -moz-transition: all 0.1s ease-in-out;
        transition: all 0.1s ease-in-out; }
      .single-container.about-us .post-list .post-list-item .read-more:hover {
        background: #b8d862; }
        .single-container.about-us .post-list .post-list-item .read-more:hover::after {
          content: "\f002";
          padding: 4px 6px;
          -webkit-transition: all 0.1s ease-in-out;
          -moz-transition: all 0.1s ease-in-out;
          transition: all 0.1s ease-in-out; }

.single-container.our-team .content {
  padding-bottom: 68px; }
  .single-container.our-team .content h3 {
    margin-top: 10px; }

.single-container.our-team .content.category {
  padding-top: 64px;
  padding-bottom: 52px; }
  .single-container.our-team .content.category h3 {
    font-family: "Avenir LT Std";
    font-size: 20px;
    font-weight: 900;
    font-style: normal;
    font-stretch: normal;
    text-align: left;
    color: #545454;
    margin-bottom: 0; }
  .single-container.our-team .content.category p {
    font-size: 12px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: 1.25;
    text-align: center;
    color: #4a4a4a;
    margin-bottom: 8px; }
  .single-container.our-team .content.category .green-break-6 {
    margin: 16px auto; }

.single-container.our-team .user-list, .single-container.our-team .post-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin-bottom: 66px; }
  .single-container.our-team .user-list .user-list-item, .single-container.our-team .user-list .post-list-item, .single-container.our-team .post-list .user-list-item, .single-container.our-team .post-list .post-list-item {
    position: relative;
    margin-bottom: 20px;
    background: #efefef;
    background-clip: content-box; }
    .single-container.our-team .user-list .user-list-item .user-list-item-inner img, .single-container.our-team .user-list .user-list-item .post-list-item-inner img, .single-container.our-team .user-list .post-list-item .user-list-item-inner img, .single-container.our-team .user-list .post-list-item .post-list-item-inner img, .single-container.our-team .post-list .user-list-item .user-list-item-inner img, .single-container.our-team .post-list .user-list-item .post-list-item-inner img, .single-container.our-team .post-list .post-list-item .user-list-item-inner img, .single-container.our-team .post-list .post-list-item .post-list-item-inner img {
      width: 100%;
      height: 200px; }
    .single-container.our-team .user-list .user-list-item .user-list-item-inner .user-list-item-content, .single-container.our-team .user-list .user-list-item .user-list-item-inner .post-list-item-content, .single-container.our-team .user-list .user-list-item .post-list-item-inner .user-list-item-content, .single-container.our-team .user-list .user-list-item .post-list-item-inner .post-list-item-content, .single-container.our-team .user-list .post-list-item .user-list-item-inner .user-list-item-content, .single-container.our-team .user-list .post-list-item .user-list-item-inner .post-list-item-content, .single-container.our-team .user-list .post-list-item .post-list-item-inner .user-list-item-content, .single-container.our-team .user-list .post-list-item .post-list-item-inner .post-list-item-content, .single-container.our-team .post-list .user-list-item .user-list-item-inner .user-list-item-content, .single-container.our-team .post-list .user-list-item .user-list-item-inner .post-list-item-content, .single-container.our-team .post-list .user-list-item .post-list-item-inner .user-list-item-content, .single-container.our-team .post-list .user-list-item .post-list-item-inner .post-list-item-content, .single-container.our-team .post-list .post-list-item .user-list-item-inner .user-list-item-content, .single-container.our-team .post-list .post-list-item .user-list-item-inner .post-list-item-content, .single-container.our-team .post-list .post-list-item .post-list-item-inner .user-list-item-content, .single-container.our-team .post-list .post-list-item .post-list-item-inner .post-list-item-content {
      padding: 33px 20px 33px 20px; }
      .single-container.our-team .user-list .user-list-item .user-list-item-inner .user-list-item-content h5, .single-container.our-team .user-list .user-list-item .user-list-item-inner .post-list-item-content h5, .single-container.our-team .user-list .user-list-item .post-list-item-inner .user-list-item-content h5, .single-container.our-team .user-list .user-list-item .post-list-item-inner .post-list-item-content h5, .single-container.our-team .user-list .post-list-item .user-list-item-inner .user-list-item-content h5, .single-container.our-team .user-list .post-list-item .user-list-item-inner .post-list-item-content h5, .single-container.our-team .user-list .post-list-item .post-list-item-inner .user-list-item-content h5, .single-container.our-team .user-list .post-list-item .post-list-item-inner .post-list-item-content h5, .single-container.our-team .post-list .user-list-item .user-list-item-inner .user-list-item-content h5, .single-container.our-team .post-list .user-list-item .user-list-item-inner .post-list-item-content h5, .single-container.our-team .post-list .user-list-item .post-list-item-inner .user-list-item-content h5, .single-container.our-team .post-list .user-list-item .post-list-item-inner .post-list-item-content h5, .single-container.our-team .post-list .post-list-item .user-list-item-inner .user-list-item-content h5, .single-container.our-team .post-list .post-list-item .user-list-item-inner .post-list-item-content h5, .single-container.our-team .post-list .post-list-item .post-list-item-inner .user-list-item-content h5, .single-container.our-team .post-list .post-list-item .post-list-item-inner .post-list-item-content h5 {
        font-weight: normal;
        font-size: 20px;
        font-family: "Avenir LT Std"; }
      .single-container.our-team .user-list .user-list-item .user-list-item-inner .user-list-item-content .title, .single-container.our-team .user-list .user-list-item .user-list-item-inner .post-list-item-content .title, .single-container.our-team .user-list .user-list-item .post-list-item-inner .user-list-item-content .title, .single-container.our-team .user-list .user-list-item .post-list-item-inner .post-list-item-content .title, .single-container.our-team .user-list .post-list-item .user-list-item-inner .user-list-item-content .title, .single-container.our-team .user-list .post-list-item .user-list-item-inner .post-list-item-content .title, .single-container.our-team .user-list .post-list-item .post-list-item-inner .user-list-item-content .title, .single-container.our-team .user-list .post-list-item .post-list-item-inner .post-list-item-content .title, .single-container.our-team .post-list .user-list-item .user-list-item-inner .user-list-item-content .title, .single-container.our-team .post-list .user-list-item .user-list-item-inner .post-list-item-content .title, .single-container.our-team .post-list .user-list-item .post-list-item-inner .user-list-item-content .title, .single-container.our-team .post-list .user-list-item .post-list-item-inner .post-list-item-content .title, .single-container.our-team .post-list .post-list-item .user-list-item-inner .user-list-item-content .title, .single-container.our-team .post-list .post-list-item .user-list-item-inner .post-list-item-content .title, .single-container.our-team .post-list .post-list-item .post-list-item-inner .user-list-item-content .title, .single-container.our-team .post-list .post-list-item .post-list-item-inner .post-list-item-content .title {
        font-family: "Avenir LT Std";
        font-size: 20px;
        font-weight: bold;
        font-style: normal;
        font-stretch: normal;
        text-align: left;
        color: #4a4a4a;
        margin-bottom: 0px; }
      .single-container.our-team .user-list .user-list-item .user-list-item-inner .user-list-item-content .description, .single-container.our-team .user-list .user-list-item .user-list-item-inner .post-list-item-content .description, .single-container.our-team .user-list .user-list-item .post-list-item-inner .user-list-item-content .description, .single-container.our-team .user-list .user-list-item .post-list-item-inner .post-list-item-content .description, .single-container.our-team .user-list .post-list-item .user-list-item-inner .user-list-item-content .description, .single-container.our-team .user-list .post-list-item .user-list-item-inner .post-list-item-content .description, .single-container.our-team .user-list .post-list-item .post-list-item-inner .user-list-item-content .description, .single-container.our-team .user-list .post-list-item .post-list-item-inner .post-list-item-content .description, .single-container.our-team .post-list .user-list-item .user-list-item-inner .user-list-item-content .description, .single-container.our-team .post-list .user-list-item .user-list-item-inner .post-list-item-content .description, .single-container.our-team .post-list .user-list-item .post-list-item-inner .user-list-item-content .description, .single-container.our-team .post-list .user-list-item .post-list-item-inner .post-list-item-content .description, .single-container.our-team .post-list .post-list-item .user-list-item-inner .user-list-item-content .description, .single-container.our-team .post-list .post-list-item .user-list-item-inner .post-list-item-content .description, .single-container.our-team .post-list .post-list-item .post-list-item-inner .user-list-item-content .description, .single-container.our-team .post-list .post-list-item .post-list-item-inner .post-list-item-content .description {
        font-size: 12px;
        font-weight: normal;
        font-style: normal;
        font-stretch: normal;
        line-height: 1.5;
        color: #4a4a4a; }
      .single-container.our-team .user-list .user-list-item .user-list-item-inner .user-list-item-content a, .single-container.our-team .user-list .user-list-item .user-list-item-inner .post-list-item-content a, .single-container.our-team .user-list .user-list-item .post-list-item-inner .user-list-item-content a, .single-container.our-team .user-list .user-list-item .post-list-item-inner .post-list-item-content a, .single-container.our-team .user-list .post-list-item .user-list-item-inner .user-list-item-content a, .single-container.our-team .user-list .post-list-item .user-list-item-inner .post-list-item-content a, .single-container.our-team .user-list .post-list-item .post-list-item-inner .user-list-item-content a, .single-container.our-team .user-list .post-list-item .post-list-item-inner .post-list-item-content a, .single-container.our-team .post-list .user-list-item .user-list-item-inner .user-list-item-content a, .single-container.our-team .post-list .user-list-item .user-list-item-inner .post-list-item-content a, .single-container.our-team .post-list .user-list-item .post-list-item-inner .user-list-item-content a, .single-container.our-team .post-list .user-list-item .post-list-item-inner .post-list-item-content a, .single-container.our-team .post-list .post-list-item .user-list-item-inner .user-list-item-content a, .single-container.our-team .post-list .post-list-item .user-list-item-inner .post-list-item-content a, .single-container.our-team .post-list .post-list-item .post-list-item-inner .user-list-item-content a, .single-container.our-team .post-list .post-list-item .post-list-item-inner .post-list-item-content a {
        color: #A5CF4E; }
    .single-container.our-team .user-list .user-list-item .read-more, .single-container.our-team .user-list .post-list-item .read-more, .single-container.our-team .post-list .user-list-item .read-more, .single-container.our-team .post-list .post-list-item .read-more {
      position: absolute;
      right: 25px;
      bottom: 0;
      background: #a6ce39;
      color: white;
      font-size: 11px;
      letter-spacing: 1.4px;
      padding: 4px 10px;
      cursor: pointer;
      font-style: normal;
      font-weight: 400;
      transition: 0.4s ease all;
      line-height: 1.6; }
      .single-container.our-team .user-list .user-list-item .read-more::after, .single-container.our-team .user-list .post-list-item .read-more::after, .single-container.our-team .post-list .user-list-item .read-more::after, .single-container.our-team .post-list .post-list-item .read-more::after {
        background-color: #606060;
        font: normal normal normal 15px FontAwesome;
        display: block;
        height: 25px;
        width: 25px;
        content: '\f105';
        position: absolute;
        color: white;
        padding: 4px 10px;
        right: -25px;
        bottom: 0;
        -webkit-transition: all 0.1s ease-in-out;
        -moz-transition: all 0.1s ease-in-out;
        transition: all 0.1s ease-in-out; }
      .single-container.our-team .user-list .user-list-item .read-more:hover, .single-container.our-team .user-list .post-list-item .read-more:hover, .single-container.our-team .post-list .user-list-item .read-more:hover, .single-container.our-team .post-list .post-list-item .read-more:hover {
        background: #b8d862; }
        .single-container.our-team .user-list .user-list-item .read-more:hover::after, .single-container.our-team .user-list .post-list-item .read-more:hover::after, .single-container.our-team .post-list .user-list-item .read-more:hover::after, .single-container.our-team .post-list .post-list-item .read-more:hover::after {
          content: "\f002";
          padding: 4px 6px;
          -webkit-transition: all 0.1s ease-in-out;
          -moz-transition: all 0.1s ease-in-out;
          transition: all 0.1s ease-in-out; }

.single-container .banner {
  background: url("../images/woo_product_single_banner.jpg");
  overflow: hidden;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: 0 50%; }
  .single-container .banner .green-break {
    width: 34px;
    height: 6px;
    display: block;
    margin: 16px auto;
    border: none; }
  .single-container .banner .header-text {
    font-size: 36px;
    font-weight: 900;
    font-style: normal;
    font-stretch: normal;
    line-height: 0.97;
    letter-spacing: 0.5px;
    text-align: center;
    color: #ffffff;
    margin-bottom: 10px; }
  .single-container .banner .description-text {
    font-size: 18px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: 1.44;
    letter-spacing: 0.5px;
    text-align: center;
    color: #ffffff;
    margin-bottom: 53px; }

.single-container .content {
  padding-top: 46px; }
  .single-container .content ul {
    margin: 0 0 1em 2.2em; }
  .single-container .content p, .single-container .content li {
    font-family: "Avenir LT Std";
    font-size: 14px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: 1.43;
    color: #4a4a4a; }
  .single-container .content h3 {
    margin: 16px auto 22px auto;
    font-family: "Avenir LT Std";
    font-size: 24px;
    font-weight: bold;
    font-style: normal;
    font-stretch: normal;
    text-align: left;
    color: #4a4a4a; }
  .single-container .content h4 {
    margin: 16px auto 8px auto;
    font-family: "Avenir LT Std";
    font-size: 18px;
    font-weight: bold;
    font-style: normal;
    font-stretch: normal;
    line-height: 1.44;
    text-align: left;
    color: #4a4a4a; }
  .single-container .content a {
    color: #A5CF4E; }
  .single-container .content blockquote {
    font-family: "Avenir LT Std";
    font-size: 14px;
    font-weight: normal;
    font-style: italic;
    font-stretch: normal;
    line-height: 1.43;
    color: #4a4a4a;
    padding: 0 0 0 28px;
    border-left: 8px solid #d8d8d8; }
    .single-container .content blockquote p {
      font-family: "Avenir LT Std";
      font-size: 14px;
      font-weight: normal;
      font-style: italic;
      font-stretch: normal;
      line-height: 1.43;
      color: #4a4a4a; }
    .single-container .content blockquote img {
      width: 100%; }

.single-container .case-study-item-container .case-study-item {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 0; }
  .single-container .case-study-item-container .case-study-item .col {
    padding: 57px 40px 40px 40px;
    background-size: 100% 100%;
    background-color: #efefef;
    display: flex;
    flex-direction: column;
    position: relative; }
    .single-container .case-study-item-container .case-study-item .col h3 {
      margin: 11px auto 22px 0;
      text-align: left; }
    .single-container .case-study-item-container .case-study-item .col p {
      font-family: "Avenir LT Std";
      font-size: 14px;
      font-weight: normal;
      font-style: normal;
      font-stretch: normal;
      line-height: 1.43;
      color: #4a4a4a; }
    .single-container .case-study-item-container .case-study-item .col .read-more {
      position: absolute;
      right: 25px;
      bottom: 0;
      background: #a6ce39;
      color: white;
      font-size: 11px;
      letter-spacing: 1.4px;
      padding: 4px 10px;
      cursor: pointer;
      font-style: normal;
      font-weight: 400;
      transition: 0.4s ease all;
      line-height: 1.6;
      right: 0;
      z-index: 100; }
      .single-container .case-study-item-container .case-study-item .col .read-more::after {
        background-color: #606060;
        font: normal normal normal 15px FontAwesome;
        display: block;
        height: 25px;
        width: 25px;
        content: '\f105';
        position: absolute;
        color: white;
        padding: 4px 10px;
        right: -25px;
        bottom: 0;
        -webkit-transition: all 0.1s ease-in-out;
        -moz-transition: all 0.1s ease-in-out;
        transition: all 0.1s ease-in-out; }
      .single-container .case-study-item-container .case-study-item .col .read-more:hover {
        background: #b8d862; }
        .single-container .case-study-item-container .case-study-item .col .read-more:hover::after {
          content: "\f002";
          padding: 4px 6px;
          -webkit-transition: all 0.1s ease-in-out;
          -moz-transition: all 0.1s ease-in-out;
          transition: all 0.1s ease-in-out; }

.single-container.case-studies .slick-dots {
  bottom: auto;
  top: 0;
  margin-left: 0; }
  .single-container.case-studies .slick-dots li button {
    box-shadow: none; }
    .single-container.case-studies .slick-dots li button:before {
      font-size: 36px; }

.single-container.case-studies a {
  color: #4a4a4a;
  text-decoration: underline; }

.single-container.services .banner .reference-text {
  color: #ffffff;
  text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.6);
  float: right;
  margin: 0 20px; }

.single-container.services .content.category {
  padding-top: 0;
  padding-bottom: 52px; }
  .single-container.services .content.category h3 {
    font-family: "Avenir LT Std";
    font-size: 20px;
    font-weight: 900;
    font-style: normal;
    font-stretch: normal;
    text-align: left;
    color: #545454;
    margin-bottom: 0; }
  .single-container.services .content.category p {
    font-size: 12px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: 1.25;
    text-align: center;
    color: #4a4a4a;
    margin-bottom: 8px; }
  .single-container.services .content.category .green-break-6 {
    margin: 16px auto; }

.single-container.services .post-list {
  margin-bottom: 66px;
  display: flex;
  flex-wrap: wrap; }
  .single-container.services .post-list .post-list-item {
    position: relative;
    margin-bottom: 10px;
    background: #efefef;
    background-clip: content-box; }
    .single-container.services .post-list .post-list-item .post-list-item-inner img {
      width: 100%;
      height: 200px; }
    .single-container.services .post-list .post-list-item .post-list-item-inner .post-list-item-content {
      padding: 33px 20px 48px 20px; }
      .single-container.services .post-list .post-list-item .post-list-item-inner .post-list-item-content .title {
        font-family: "Avenir LT Std";
        font-size: 20px;
        font-weight: bold;
        font-style: normal;
        font-stretch: normal;
        text-align: left;
        color: #4a4a4a;
        margin-bottom: 12px; }
      .single-container.services .post-list .post-list-item .post-list-item-inner .post-list-item-content .excerpt {
        font-size: 12px;
        font-weight: normal;
        font-style: normal;
        font-stretch: normal;
        line-height: 1.25;
        color: #4a4a4a; }
    .single-container.services .post-list .post-list-item .read-more {
      position: absolute;
      right: 25px;
      bottom: 0;
      background: #a6ce39;
      color: white;
      font-size: 11px;
      letter-spacing: 1.4px;
      padding: 4px 10px;
      cursor: pointer;
      font-style: normal;
      font-weight: 400;
      transition: 0.4s ease all;
      line-height: 1.6; }
      .single-container.services .post-list .post-list-item .read-more::after {
        background-color: #606060;
        font: normal normal normal 15px FontAwesome;
        display: block;
        height: 25px;
        width: 25px;
        content: '\f105';
        position: absolute;
        color: white;
        padding: 4px 10px;
        right: -25px;
        bottom: 0;
        -webkit-transition: all 0.1s ease-in-out;
        -moz-transition: all 0.1s ease-in-out;
        transition: all 0.1s ease-in-out; }
      .single-container.services .post-list .post-list-item .read-more:hover {
        background: #b8d862; }
        .single-container.services .post-list .post-list-item .read-more:hover::after {
          content: "\f002";
          padding: 4px 6px;
          -webkit-transition: all 0.1s ease-in-out;
          -moz-transition: all 0.1s ease-in-out;
          transition: all 0.1s ease-in-out; }

.category-container .content {
  padding: 72px 0 52px 0; }
  .category-container .content h3 {
    font-family: "Avenir LT Std";
    font-size: 20px;
    font-weight: 900;
    font-style: normal;
    font-stretch: normal;
    text-align: left;
    color: #545454;
    margin-bottom: 0; }
  .category-container .content p {
    font-size: 12px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: 1.25;
    text-align: center;
    color: #4a4a4a;
    margin-bottom: 8px; }
  .category-container .content .green-break-6 {
    margin: 16px auto; }

.category-container .post-list {
  margin-bottom: 92px; }
  .category-container .post-list .post-list-item {
    position: relative;
    margin-bottom: 20px;
    background-color: #efefef;
    background-clip: content-box; }
    .category-container .post-list .post-list-item .post-list-item-inner img {
      width: 100%;
      height: 200px; }
    .category-container .post-list .post-list-item .post-list-item-inner .post-list-item-content {
      padding: 33px 20px 48px 20px; }
      .category-container .post-list .post-list-item .post-list-item-inner .post-list-item-content .title {
        font-family: "Avenir LT Std";
        font-size: 20px;
        font-weight: bold;
        font-style: normal;
        font-stretch: normal;
        text-align: left;
        color: #4a4a4a;
        margin-bottom: 12px; }
      .category-container .post-list .post-list-item .post-list-item-inner .post-list-item-content .excerpt {
        font-size: 12px;
        font-weight: normal;
        font-style: normal;
        font-stretch: normal;
        line-height: 1.25;
        color: #4a4a4a; }
    .category-container .post-list .post-list-item .read-more {
      position: absolute;
      right: 25px;
      bottom: 0;
      background: #a6ce39;
      color: white;
      font-size: 11px;
      letter-spacing: 1.4px;
      padding: 4px 10px;
      cursor: pointer;
      font-style: normal;
      font-weight: 400;
      transition: 0.4s ease all; }
      .category-container .post-list .post-list-item .read-more::after {
        background-color: #606060;
        font: normal normal normal 15px FontAwesome;
        display: block;
        height: 25px;
        width: 25px;
        content: '\f105';
        position: absolute;
        color: white;
        padding: 4px 10px;
        right: -25px;
        bottom: 0; }

.category-container .post-list {
  display: flex;
  flex-wrap: wrap; }

.category-container.case-studies .tool-pagination, .single-container.case-studies .tool-pagination {
  margin: 0 5px 10px 10px;
  text-align: center; }
  .category-container.case-studies .tool-pagination .pages, .category-container.case-studies .tool-pagination .pages li, .single-container.case-studies .tool-pagination .pages, .single-container.case-studies .tool-pagination .pages li {
    display: inline-block;
    margin: 0;
    padding: 0; }
  .category-container.case-studies .tool-pagination .prev, .category-container.case-studies .tool-pagination .pages li a, .category-container.case-studies .tool-pagination .pages li span, .category-container.case-studies .tool-pagination .next, .single-container.case-studies .tool-pagination .prev, .single-container.case-studies .tool-pagination .pages li a, .single-container.case-studies .tool-pagination .pages li span, .single-container.case-studies .tool-pagination .next {
    background-color: rgba(166, 206, 57, 0.5);
    display: inline-block;
    color: #fff;
    padding: 10px 20px;
    transition: .2s all; }
    .category-container.case-studies .tool-pagination .prev.current, .category-container.case-studies .tool-pagination .pages li a.current, .category-container.case-studies .tool-pagination .pages li span.current, .category-container.case-studies .tool-pagination .next.current, .single-container.case-studies .tool-pagination .prev.current, .single-container.case-studies .tool-pagination .pages li a.current, .single-container.case-studies .tool-pagination .pages li span.current, .single-container.case-studies .tool-pagination .next.current {
      background-color: #a6ce39; }
    .category-container.case-studies .tool-pagination .prev:hover, .category-container.case-studies .tool-pagination .pages li a:hover, .category-container.case-studies .tool-pagination .pages li span:hover, .category-container.case-studies .tool-pagination .next:hover, .single-container.case-studies .tool-pagination .prev:hover, .single-container.case-studies .tool-pagination .pages li a:hover, .single-container.case-studies .tool-pagination .pages li span:hover, .single-container.case-studies .tool-pagination .next:hover {
      background-color: #a6ce39; }

.category-container.case-studies .case-study-item-container, .single-container.case-studies .case-study-item-container {
  margin-top: 10px; }
  .category-container.case-studies .case-study-item-container .row, .single-container.case-studies .case-study-item-container .row {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 0; }
    .category-container.case-studies .case-study-item-container .row > .col, .single-container.case-studies .case-study-item-container .row > .col {
      padding: 0;
      margin: 0; }
      .category-container.case-studies .case-study-item-container .row > .col .case-study-item, .single-container.case-studies .case-study-item-container .row > .col .case-study-item {
        position: relative;
        padding: 57px 40px 40px 40px;
        background-size: cover;
        background-position: 50% 20%;
        background-color: #efefef no-repeat;
        height: 350px;
        margin: 0 5px 10px 10px; }
        @media (max-width: 993px) {
          .category-container.case-studies .case-study-item-container .row > .col .case-study-item, .single-container.case-studies .case-study-item-container .row > .col .case-study-item {
            margin: 0 10px 10px; } }
      .category-container.case-studies .case-study-item-container .row > .col .case-study-item-content, .single-container.case-studies .case-study-item-container .row > .col .case-study-item-content {
        background-color: rgba(0, 0, 0, 0.6);
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        padding: 20px 50px;
        display: block;
          display-content: '';
          display-clear: both; }
      .category-container.case-studies .case-study-item-container .row > .col h3, .single-container.case-studies .case-study-item-container .row > .col h3 {
        color: white;
        margin: 10px 0 0;
        text-align: left;
        float: left;
        display: inline-block;
        clear: none; }
      .category-container.case-studies .case-study-item-container .row > .col a, .single-container.case-studies .case-study-item-container .row > .col a {
        display: inline-block;
        float: right;
        background-color: #a6ce39;
        color: white;
        padding: 5px 20px;
        text-transform: uppercase;
        font-size: 11px;
        letter-spacing: 2px;
        font-weight: normal;
        margin-top: 10px; }
      .category-container.case-studies .case-study-item-container .row > .col .read-more, .single-container.case-studies .case-study-item-container .row > .col .read-more {
        z-index: 100; }
      .category-container.case-studies .case-study-item-container .row > .col + .col .case-study-item, .single-container.case-studies .case-study-item-container .row > .col + .col .case-study-item {
        margin: 0 10px 10px 5px; }
        @media (max-width: 993px) {
          .category-container.case-studies .case-study-item-container .row > .col + .col .case-study-item, .single-container.case-studies .case-study-item-container .row > .col + .col .case-study-item {
            margin: 0 10px 10px; } }
    .category-container.case-studies .case-study-item-container .row ul, .single-container.case-studies .case-study-item-container .row ul {
      margin: 0 0 1em 1.2em; }
      .category-container.case-studies .case-study-item-container .row ul li, .single-container.case-studies .case-study-item-container .row ul li {
        list-style: disc; }

form.wpcf7-form {
  margin-bottom: 100px; }
  form.wpcf7-form input[type="text"], form.wpcf7-form input[type="email"] {
    background-color: transparent;
    border: none;
    border-bottom: 1px solid black;
    box-shadow: none; }
  form.wpcf7-form label {
    font-size: 14px;
    color: #606060;
    font-weight: normal; }
  form.wpcf7-form input[type="submit"] {
    font-family: azo-sans-web, sans-serif;
    box-shadow: none;
    outline: none;
    font-size: 10px;
    letter-spacing: 3px;
    text-transform: uppercase;
    padding: 15px 20px;
    background-color: #a6ce39;
    margin-bottom: 20px; }
  form.wpcf7-form div.wpcf7-response-output {
    text-align: center;
    border-radius: 5px; }
  form.wpcf7-form div.wpcf7-mail-sent-ok {
    border-color: #a6ce39; }
  form.wpcf7-form div.wpcf7-validation-errors {
    border-color: #f3a536; }

.category-sidebar {
  padding: 0; }
  .category-sidebar ul {
    margin-top: 41px; }
    .category-sidebar ul a {
      color: inherit; }
      .category-sidebar ul a:hover {
        text-decoration: none; }
      .category-sidebar ul a li {
        display: block;
        padding: 22px 5px 17px 12px;
        font-size: 12px;
        font-weight: bold;
        font-style: normal;
        font-stretch: normal;
        line-height: 1.5;
        text-transform: uppercase;
        color: #4a4a4a;
        border-bottom: 1px solid #e0e0e0;
        cursor: pointer; }
        .category-sidebar ul a li.active {
          color: #a6ce39;
          border-right: 5px solid #a6ce39; }
        .category-sidebar ul a li:hover {
          background: #a6ce39;
          color: #ffffff; }

@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
  .category-sidebar ul {
    margin-left: 0; } }

.category-sidebar .products-washroom-hardware-shower-seats,
.category-sidebar .products-washroom-hardware-shower-tracks-or-kits,
.category-sidebar .products-washroom-hardware-washroom-partition-furniture,
.category-sidebar .products-washroom-hardware-toilet-roll-dispensers,
.category-sidebar .products-washroom-hardware-hand-towel-dispensers,
.category-sidebar .products-washroom-hardware-soap-dispensers,
.category-sidebar .products-washroom-hardware-washroom-waste-bins,
.category-sidebar .products-washroom-hardware-hand-driers,
.category-sidebar .products-washroom-hardware-grab-rails,
.category-sidebar .products-washroom-hardware-washroom-mirrors,
.category-sidebar .products-washroom-hardware-washroom-accessories {
  display: none;
  visibility: hidden; }

.green-break {
  width: 40px;
  height: 7px;
  border-radius: 4px;
  display: block;
  background-color: #A5CF4E;
  margin: 16px auto; }

button.green-rounded-button {
  border: none;
  box-shadow: none;
  outline: none;
  width: 231px;
  height: 53px;
  border-radius: 100px;
  background-color: #a6ce39;
  margin: 41px auto 54px auto; }
  button.green-rounded-button:hover {
    background: #b8d862; }

.cart-footer .coupon input[name=apply_coupon] {
  background-color: #a6ce39; }

.side-nav {
  padding-top: 10px; }
  .side-nav li {
    text-transform: uppercase;
    text-align: center; }
    .side-nav li:first-of-type img {
      margin: auto; }

.drag-target {
  max-width: 20% !important; }

.footer {
  background: #515256;
  padding-bottom: 100px; }
  .footer .social-icons button {
    background: transparent;
    color: #a6ce39;
    border: 0;
    box-shadow: none;
    padding: 5px 7px;
    font-size: 20px;
    font-weight: normal; }
  .footer p.contact-us {
    color: #ffffff;
    font-size: 14px;
    font-weight: bold;
    margin-top: 10px;
    margin-bottom: 0; }
  .footer a.footer-tel {
    font-size: 2em;
    color: #a6ce39; }
  .footer a.footer-email {
    color: white;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal; }
  .footer .footer-site-title {
    color: white;
    font-weight: 300;
    text-transform: uppercase; }
  .footer .footer-menu {
    margin: 0; }
    .footer .footer-menu li {
      margin: 10px auto;
      font-size: 12px;
      color: #ffffff;
      font-weight: normal;
      font-style: normal;
      font-stretch: normal; }
      .footer .footer-menu li a {
        font-size: 12px;
        color: #ffffff;
        font-weight: normal;
        font-style: normal;
        font-stretch: normal; }

.green-line {
  width: 34px;
  height: 2px;
  border: solid 2px #a6ce39; }

.container-960 {
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto; }

.container-full {
  width: 100%;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto; }

.grey-break {
  display: block;
  height: 1px;
  width: 281px;
  border: solid 1px #d3d3d3; }

.green-break-2 {
  height: 2px;
  width: 34px;
  background: #a6ce39;
  display: block; }

.green-break-6 {
  height: 6px;
  width: 34px;
  background: #a6ce39;
  display: block;
  margin: 16px 0; }

.green-box {
  margin-top: 31px;
  padding: 40px 33px 40px 33px;
  background: #e0ebc2; }
  .green-box h4 {
    margin: 0 !important;
    margin-bottom: 28px !important;
    font-family: "Avenir LT Std";
    font-size: 18px;
    font-weight: bold;
    font-style: normal;
    font-stretch: normal;
    line-height: 1.44;
    text-align: left;
    color: #4a4a4a; }
  .green-box ul {
    padding-left: 27px; }
    .green-box ul li {
      font-family: "Avenir LT Std";
      font-size: 14px;
      font-weight: normal;
      font-style: normal;
      font-stretch: normal;
      line-height: 1.43;
      color: #4a4a4a;
      margin-bottom: 10px; }

.arrow-up {
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-bottom: 12px solid #d8d8d8;
  margin-bottom: 5px; }

.arrow-down {
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 12px solid #d8d8d8;
  margin-top: 5px; }

.banner {
  background: url("../images/woo_product_single_banner.jpg") no-repeat 100% 100%/cover;
  overflow: hidden; }
  .banner .green-break {
    width: 34px;
    height: 6px;
    display: block;
    margin: 46px auto 16px auto;
    border: none; }
  .banner .header-text {
    font-size: 36px;
    font-weight: 900;
    font-style: normal;
    font-stretch: normal;
    line-height: 0.97;
    letter-spacing: 0.5px;
    text-align: center;
    color: #ffffff;
    margin-bottom: 10px;
    text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.6); }
  .banner .description-text {
    font-size: 18px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: 1.44;
    letter-spacing: 0.5px;
    text-align: center;
    color: #ffffff;
    margin-bottom: 53px;
    text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.6); }

.woocommerce-shortcode-add_to_cart--add-to-cart-button, section.featured-products .container .product.woocommerce.add_to_cart_inline a.add_to_cart_button, .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-action .product-shortlist-add-to-cart a.add_to_cart_button, .woo-product-single .product-display .product-display-left .product-action .product-add-to-cart a.add_to_cart_button {
  background-color: #606060;
  border: none;
  font-family: "Open Sans", sans-serif;
  font-size: 10px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  letter-spacing: 3px;
  text-align: center;
  color: #ffffff;
  padding-bottom: 8px;
  text-transform: uppercase;
  position: relative;
  outline: none; }
  .woocommerce-shortcode-add_to_cart--add-to-cart-button.added:after, section.featured-products .container .product.woocommerce.add_to_cart_inline a.added.add_to_cart_button:after, .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-action .product-shortlist-add-to-cart a.added.add_to_cart_button:after, .woo-product-single .product-display .product-display-left .product-action .product-add-to-cart a.added.add_to_cart_button:after {
    content: "\f046";
    font: normal normal normal 15px FontAwesome;
    position: absolute;
    display: block;
    right: -30px;
    top: 0;
    padding: 8px;
    background: #a6ce39;
    height: 30px;
    width: 30px; }

.woocommerce-shortcode-add_to_cart--view-cart-button, section.featured-products .container .product.woocommerce.add_to_cart_inline a.added_to_cart.wc-forward, .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-action .product-shortlist-add-to-cart a.added_to_cart.wc-forward, .woo-product-single .product-display .product-display-left .product-action .product-add-to-cart a.added_to_cart.wc-forward {
  display: none;
  background: none;
  color: #a6ce39;
  border: none;
  box-shadow: none;
  padding: 0;
  text-align: center;
  width: 100%;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  font-size: 14px;
  font-family: "Open Sans", sans-serif; }

.refine {
  background: #a6ce39;
  opacity: 0.9; }
  .refine .container {
    max-width: 960px; }
  .refine.searchbar-top-true {
    display: none;
    width: 100%; }
  .refine .row {
    margin: 0;
    width: 100%; }
  .refine p {
    margin: 0; }
  .refine .left-label {
    font-family: azo-sans-web, sans-serif;
    font-size: 20px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    text-align: right;
    color: #ffffff; }
    .refine .left-label .text {
      text-align: right;
      margin-right: 27px; }
  .refine .right-form {
    background-color: #e0e0e0; }
    .refine .right-form .row {
      margin: 0; }
    .refine .right-form .search-box input[type="text"] {
      font-size: 20px;
      font-weight: normal;
      font-style: normal;
      font-stretch: normal;
      text-align: left;
      color: #a6ce39;
      background-color: transparent;
      background-image: url("../images/ic_search.png");
      background-repeat: no-repeat;
      text-indent: 50px;
      box-shadow: none;
      border: none;
      margin: 10px auto; }
      .refine .right-form .search-box input[type="text"]::-webkit-input-placeholder {
        color: #a6ce39; }
      .refine .right-form .search-box input[type="text"]::-moz-placeholder {
        color: #a6ce39; }
      .refine .right-form .search-box input[type="text"]:-ms-input-placeholder {
        color: #a6ce39; }

.refine .search-box .aws-search-form {
  margin-bottom: 0; }

.slider .slick-slide {
  display: flex !important; }

.slider .slick-prev.slick-arrow, .slider .slick-next.slick-arrow {
  display: none !important; }

.woo-product-archive .banner {
  background: url("../images/woo_product_single_banner.jpg") no-repeat 100% 100%/cover;
  overflow: hidden; }
  .woo-product-archive .banner .green-break {
    width: 34px;
    height: 6px;
    display: block;
    margin: 39px auto 16px auto;
    border: none; }
  .woo-product-archive .banner .header-text {
    font-size: 36px;
    font-weight: 900;
    font-style: normal;
    font-stretch: normal;
    line-height: 0.97;
    letter-spacing: 0.5px;
    text-align: center;
    color: #ffffff;
    margin-bottom: 10px; }
  .woo-product-archive .banner .description-text {
    font-size: 18px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: 1.44;
    letter-spacing: 0.5px;
    text-align: center;
    color: #ffffff;
    margin-bottom: 53px; }

.woo-product-archive .product-view {
  padding: 0 34px; }
  .woo-product-archive .product-view .container {
    max-width: 960px; }
  .woo-product-archive .product-view .product-info {
    padding: 0; }
    .woo-product-archive .product-view .product-info .product-type-bar {
      border: solid 1px #e0e0e0; }
      .woo-product-archive .product-view .product-info .product-type-bar .row {
        margin: 0; }
      .woo-product-archive .product-view .product-info .product-type-bar .left {
        width: 8%; }
        .woo-product-archive .product-view .product-info .product-type-bar .left .green-break {
          margin: 26px 0 24px 5px;
          height: 6px; }
      .woo-product-archive .product-view .product-info .product-type-bar .right {
        width: 92%;
        padding: 18px 0; }
        .woo-product-archive .product-view .product-info .product-type-bar .right p {
          font-size: 12px;
          font-weight: normal;
          font-style: normal;
          text-align: left;
          font-stretch: normal;
          color: #777777;
          margin: 0; }

.woo-product-archive .product-display-list .row {
  margin: 0; }

.woo-product-archive .product-display-list .product-display-item {
  border-right: 1px solid #e0e0e0;
  border-bottom: 1px solid #e0e0e0;
  padding: 26px 30px 15px 30px;
  position: relative; }
  .woo-product-archive .product-display-list .product-display-item.l-left-col {
    border-left: 1px solid #e0e0e0; }
    @media (max-width: 992px) {
      .woo-product-archive .product-display-list .product-display-item.l-left-col {
        border-left: none; } }
  @media (max-width: 992px) {
    .woo-product-archive .product-display-list .product-display-item.m-left-col {
      border-left: 1px solid #e0e0e0; } }
  @media (max-width: 600px) {
    .woo-product-archive .product-display-list .product-display-item {
      border-left: 1px solid #e0e0e0 !important; } }
  .woo-product-archive .product-display-list .product-display-item .product-display-item-title {
    text-align: center;
    margin-bottom: 15px;
    font-size: 14px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: 1.43;
    color: #4a4a4a; }
  .woo-product-archive .product-display-list .product-display-item .product-display-item-image-container {
    width: 180px;
    max-width: 100%;
    height: 180px;
    margin: auto;
    overflow: hidden;
    margin-bottom: 30px; }
    .woo-product-archive .product-display-list .product-display-item .product-display-item-image-container .product-display-item-image {
      max-width: 100%;
      max-height: 100%;
      margin: 0 auto; }
  .woo-product-archive .product-display-list .product-display-item .product-quantity {
    padding: 0; }
  .woo-product-archive .product-display-list .product-display-item .product-add-to-cart {
    padding: 0; }
  .woo-product-archive .product-display-list .product-display-item .product-icons {
    text-align: center;
    margin-top: 20px;
    bottom: 0;
    left: 0;
    width: 100%; }
    .woo-product-archive .product-display-list .product-display-item .product-icons .product-icon {
      display: inline-block;
      margin: auto 3px;
      width: 30px;
      height: 30px;
      background-size: 100%; }
      .woo-product-archive .product-display-list .product-display-item .product-icons .product-icon.icon-acoustic {
        background-image: url("../images/icon-acoustic.png"); }
      .woo-product-archive .product-display-list .product-display-item .product-icons .product-icon.icon-fire {
        background-image: url("../images/icon-fire.png"); }
      .woo-product-archive .product-display-list .product-display-item .product-icons .product-icon.icon-electrical {
        background-image: url("../images/icon-electrical.png"); }
      .woo-product-archive .product-display-list .product-display-item .product-icons .product-icon.icon-wheelchair {
        background-image: url("../images/icon-wheelchair.png"); }

.woo-product-archive .product-display-list .product-display-list-info {
  padding: 16px;
  border: 1px solid #e0e0e0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  flex-wrap: wrap; }
  .woo-product-archive .product-display-list .product-display-list-info .product-display-list-info-inner {
    padding: 26px 32px;
    background: #ebebeb;
    flex-direction: column;
    display: flex; }
    .woo-product-archive .product-display-list .product-display-list-info .product-display-list-info-inner .product-description-top {
      font-size: 10px;
      font-weight: normal;
      font-style: normal;
      font-stretch: normal;
      color: #9b9b9b;
      margin-bottom: 5px; }
      .woo-product-archive .product-display-list .product-display-list-info .product-display-list-info-inner .product-description-top .green-break {
        height: 2px;
        width: 23px;
        margin: 6px 11px 6px 0; }
    .woo-product-archive .product-display-list .product-display-list-info .product-display-list-info-inner .product-description-header {
      font-size: 20px;
      font-weight: bold;
      font-style: normal;
      font-stretch: normal;
      color: #454545;
      margin: 14px 0 15px; }
    .woo-product-archive .product-display-list .product-display-list-info .product-display-list-info-inner .product-description-text {
      font-size: 14px;
      font-weight: normal;
      font-style: normal;
      font-stretch: normal;
      line-height: 1.43;
      text-align: left;
      color: #4a4a4a;
      margin-top: 0;
      margin-bottom: 22px; }

.woo-product-archive .product-display-list .row {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  flex-wrap: wrap; }
  .woo-product-archive .product-display-list .row .product-display-item, .woo-product-archive .product-display-list .row .product-display-list-info {
    display: flex;
    flex-direction: column; }

.product-second-description {
  margin: 16px 0;
  width: 100%;
  box-sizing: border-box;
  padding: 26px 32px;
  background: #ebebeb;
  flex-direction: column;
  display: flex; }

.woo-product-single .product-shortlist .row {
  margin: 0; }
  .woo-product-single .product-shortlist .row .product-shortlist-item {
    padding: 0;
    border: 1px solid #e0e0e0; }
    .woo-product-single .product-shortlist .row .product-shortlist-item .col.s5 {
      padding-top: 16px;
      padding-left: 25px;
      padding-right: 0; }
    .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 {
      padding-top: 16px;
      padding-left: 20px; }
      .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-name {
        font-size: 14px;
        font-weight: normal;
        font-style: normal;
        font-stretch: normal;
        line-height: 1.43;
        text-align: left;
        color: #4a4a4a;
        margin-bottom: 4px; }
      .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-code {
        font-size: 10px;
        font-weight: normal;
        font-style: normal;
        font-stretch: normal;
        text-align: left;
        color: #bbbbbb;
        margin-bottom: 6px; }
      .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-price {
        font-size: 18px;
        font-weight: 900;
        font-style: normal;
        font-stretch: normal;
        color: #4a4a4a;
        margin-bottom: 10px; }
      .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-action .product-shortlist-quantity {
        padding: 0; }
        .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-action .product-shortlist-quantity input {
          width: 90%;
          background-color: #ffffff;
          border: solid 1px #dedede;
          font-size: 10px;
          font-weight: bold;
          font-style: normal;
          font-stretch: normal;
          letter-spacing: 3px;
          text-align: center;
          height: 30px;
          color: #9b9b9b; }
          .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-action .product-shortlist-quantity input::-webkit-input-placeholder {
            color: #9b9b9b; }
          .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-action .product-shortlist-quantity input::-moz-placeholder {
            color: #9b9b9b; }
          .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-action .product-shortlist-quantity input:-ms-input-placeholder {
            color: #9b9b9b; }
      .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-action .product-shortlist-add-to-cart {
        padding: 0; }
        .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-action .product-shortlist-add-to-cart a.add_to_cart_button {
          letter-spacing: 1px; }
        .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-action .product-shortlist-add-to-cart a.added_to_cart.wc-forward {
          letter-spacing: 1px; }

.woo-product-single .container {
  max-width: 960px; }

.woo-product-single .banner {
  background: url("../images/woo_product_single_banner.jpg") no-repeat 100% 100%/cover;
  overflow: hidden; }
  .woo-product-single .banner .green-break {
    width: 34px;
    height: 6px;
    display: block;
    margin: 39px auto 17px auto;
    border: none; }
  .woo-product-single .banner .header-text {
    font-size: 36px;
    font-weight: 900;
    font-style: normal;
    font-stretch: normal;
    line-height: 0.97;
    letter-spacing: 0.5px;
    text-align: center;
    color: #ffffff;
    margin-bottom: 10px; }
  .woo-product-single .banner .description-text {
    font-size: 18px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: 1.44;
    letter-spacing: 0.5px;
    text-align: center;
    color: #ffffff;
    margin-bottom: 53px; }

.woo-product-single .refine {
  background: #a6ce39; }
  .woo-product-single .refine .row {
    margin-bottom: 0; }
  .woo-product-single .refine p {
    margin: 0; }
  .woo-product-single .refine .left {
    padding: 16px 27px 16px 39px;
    width: 15%; }
    .woo-product-single .refine .left .text {
      font-size: 18px;
      font-weight: normal;
      font-style: normal;
      font-stretch: normal;
      line-height: 1.44;
      letter-spacing: 0.5px;
      text-align: center;
      color: #ffffff; }
  .woo-product-single .refine .right {
    width: 85%;
    background-color: #e0e0e0; }
    .woo-product-single .refine .right .left.magnifier {
      width: 9%; }
      .woo-product-single .refine .right .left.magnifier i.fa.fa-search {
        color: #ffffff;
        transform: translate(0, 0);
        -webkit-transform: translate(0, 0);
        -moz-transform: translate(0, 0);
        -ms-transform: translate(0, 0); }
    .woo-product-single .refine .right .right.search-box {
      width: 91%; }
      .woo-product-single .refine .right .right.search-box input[type="text"] {
        font-size: 20px;
        font-weight: normal;
        font-style: normal;
        font-stretch: normal;
        text-align: left;
        color: #a6ce39;
        background: none;
        box-shadow: none;
        border: none;
        margin: 10px auto; }
        .woo-product-single .refine .right .right.search-box input[type="text"]::-webkit-input-placeholder {
          color: #a6ce39; }
        .woo-product-single .refine .right .right.search-box input[type="text"]::-moz-placeholder {
          color: #a6ce39; }
        .woo-product-single .refine .right .right.search-box input[type="text"]:-ms-input-placeholder {
          color: #a6ce39; }

.woo-product-single .product-view {
  margin-top: 60px;
  padding: 0 34px; }
  .woo-product-single .product-view .category-sidebar {
    padding: 0; }
    .woo-product-single .product-view .category-sidebar ul {
      margin-top: 41px; }
      .woo-product-single .product-view .category-sidebar ul a {
        color: inherit; }
        .woo-product-single .product-view .category-sidebar ul a:hover {
          text-decoration: none; }
        .woo-product-single .product-view .category-sidebar ul a li {
          display: block;
          padding: 22px 0 17px 12px;
          font-size: 12px;
          font-weight: bold;
          font-style: normal;
          font-stretch: normal;
          line-height: 1.25;
          text-transform: uppercase;
          color: #4a4a4a;
          border-bottom: 1px solid #e0e0e0;
          cursor: pointer; }
          .woo-product-single .product-view .category-sidebar ul a li.active {
            color: #a6ce39;
            border-right: 5px solid #a6ce39; }
          .woo-product-single .product-view .category-sidebar ul a li:hover {
            background: #a6ce39;
            color: #ffffff; }
  .woo-product-single .product-view .product-info {
    padding: 0; }
    .woo-product-single .product-view .product-info .product-type-bar {
      border: solid 1px #e0e0e0; }
      .woo-product-single .product-view .product-info .product-type-bar .row {
        margin: 0; }
      .woo-product-single .product-view .product-info .product-type-bar .left {
        width: 8%; }
        .woo-product-single .product-view .product-info .product-type-bar .left .green-break {
          margin: 26px 0 28px 5px;
          height: 2px; }
      .woo-product-single .product-view .product-info .product-type-bar .right {
        width: 92%;
        padding: 18px 0; }
        .woo-product-single .product-view .product-info .product-type-bar .right p {
          font-size: 12px;
          font-weight: normal;
          font-style: normal;
          text-align: left;
          font-stretch: normal;
          color: #777777;
          margin: 0; }

.woo-product-single .product-display.row {
  margin: 0;
  border: 1px solid #e0e0e0;
  border-top: none;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  flex-wrap: wrap; }

.woo-product-single .product-display .product-display-left, .woo-product-single .product-display .product-display-right {
  display: flex;
  flex-direction: column; }

.woo-product-single .product-display .product-display-left {
  border: none;
  border-right: 1px solid #e0e0e0;
  padding: 29px 43px 60px 43px;
  position: relative; }
  .woo-product-single .product-display .product-display-left .logged-out-message {
    margin-top: 10px;
    font-size: 12px; }
    .woo-product-single .product-display .product-display-left .logged-out-message a {
      color: white;
      padding: 5px 15px;
      border-radius: 5px;
      box-shadow: none; }
      .woo-product-single .product-display .product-display-left .logged-out-message a.login {
        background-color: #a6ce39; }
      .woo-product-single .product-display .product-display-left .logged-out-message a.register {
        background-color: #f3a536; }
  .woo-product-single .product-display .product-display-left .featured {
    position: absolute;
    bottom: 195px;
    right: 0; }
    @media (max-width: 600px) {
      .woo-product-single .product-display .product-display-left .featured {
        bottom: 224px; } }
    @media (max-width: 992px) {
      .woo-product-single .product-display .product-display-left .featured {
        bottom: 225px; } }
  .woo-product-single .product-display .product-display-left .product-name {
    text-align: center;
    margin-bottom: 28px;
    font-size: 14px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: 1.43;
    color: #4a4a4a; }
  .woo-product-single .product-display .product-display-left .product-image {
    width: 100%; }
  .woo-product-single .product-display .product-display-left .product-price {
    margin: 15px auto 27px auto;
    font-size: 24px;
    font-weight: bold;
    font-style: normal;
    font-stretch: normal;
    text-align: center;
    color: #4a4a4a; }
  .woo-product-single .product-display .product-display-left .prices + .product-action {
    margin: 0; }
  .woo-product-single .product-display .product-display-left .product-action {
    margin: 24px 0; }
    .woo-product-single .product-display .product-display-left .product-action .product-quantity {
      padding-right: 7px;
      padding-left: 0; }
      .woo-product-single .product-display .product-display-left .product-action .product-quantity input {
        background-color: #ffffff;
        border: solid 1px #dedede;
        font-size: 10px;
        font-weight: bold;
        font-style: normal;
        font-stretch: normal;
        letter-spacing: 3px;
        text-align: center;
        height: 30px;
        color: #9b9b9b; }
        .woo-product-single .product-display .product-display-left .product-action .product-quantity input::-webkit-input-placeholder {
          color: #9b9b9b; }
        .woo-product-single .product-display .product-display-left .product-action .product-quantity input::-moz-placeholder {
          color: #9b9b9b; }
        .woo-product-single .product-display .product-display-left .product-action .product-quantity input:-ms-input-placeholder {
          color: #9b9b9b; }
    .woo-product-single .product-display .product-display-left .product-action .product-add-to-cart {
      padding: 0; }

.woo-product-single .product-display .product-display-right {
  padding: 26px 18px 37px 36px;
  border: 15px solid white;
  border-right-width: 12px;
  border-left-width: 12px;
  background: #ebebeb; }
  .woo-product-single .product-display .product-display-right .product-description-top {
    font-size: 10px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    color: #9b9b9b;
    margin-bottom: 5px; }
    .woo-product-single .product-display .product-display-right .product-description-top .green-break {
      height: 2px;
      width: 23px;
      margin: 6px 11px 6px 0; }
  .woo-product-single .product-display .product-display-right .product-description-header {
    font-size: 20px;
    font-weight: bold;
    font-style: normal;
    font-stretch: normal;
    color: #454545;
    margin-top: 0;
    margin-bottom: 9px; }
  .woo-product-single .product-display .product-display-right .grey-break {
    border: 1px solid #d3d3d3; }
  .woo-product-single .product-display .product-display-right .product-size {
    margin: 20px auto;
    font-size: 12px;
    font-weight: bold;
    font-style: normal;
    font-stretch: normal;
    color: #a6ce39; }
  .woo-product-single .product-display .product-display-right .product-icon {
    margin: 21px 10px;
    display: inline-block;
    width: 30px;
    height: 30px;
    background-size: 100%; }
    .woo-product-single .product-display .product-display-right .product-icon.icon-fire {
      background-image: url("../images/icon-fire.png"); }
    .woo-product-single .product-display .product-display-right .product-icon.icon-wheelchair {
      background-image: url("../images/icon-wheelchair.png"); }
    .woo-product-single .product-display .product-display-right .product-icon.icon-electrical {
      background-image: url("../images/icon-electrical.png"); }
    .woo-product-single .product-display .product-display-right .product-icon.icon-acoustic {
      background-image: url("../images/icon-acoustic.png"); }
  .woo-product-single .product-display .product-display-right .product-enquiry {
    padding-bottom: 1em; }
    .woo-product-single .product-display .product-display-right .product-enquiry .product-enquiry-form {
      margin-bottom: 0; }
    .woo-product-single .product-display .product-display-right .product-enquiry button {
      padding: 15px 21px;
      background-color: #a6ce39;
      border: none;
      display: block;
      font-family: "Open Sans", sans-serif;
      font-size: 10px;
      font-weight: bold;
      font-style: normal;
      font-stretch: normal;
      letter-spacing: 3px;
      margin: 45px auto 0 auto;
      text-align: center;
      color: #ffffff;
      transition: background-color 250ms ease-in; }
      .woo-product-single .product-display .product-display-right .product-enquiry button:hover {
        background-color: #4a4a4a;
        transition: background-color 250ms ease-out; }

.woo-product-single .product-shortlist .row {
  margin: 0; }
  .woo-product-single .product-shortlist .row .product-shortlist-item {
    padding: 0;
    border: 1px solid #e0e0e0; }
    .woo-product-single .product-shortlist .row .product-shortlist-item .col.s5 {
      padding-top: 16px;
      padding-left: 25px;
      padding-right: 0; }
    .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 {
      padding-top: 16px;
      padding-left: 20px; }
      .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-name {
        font-size: 14px;
        font-weight: normal;
        font-style: normal;
        font-stretch: normal;
        line-height: 1.43;
        text-align: left;
        color: #4a4a4a;
        margin-bottom: 4px; }
      .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-code {
        font-size: 10px;
        font-weight: normal;
        font-style: normal;
        font-stretch: normal;
        text-align: left;
        color: #bbbbbb;
        margin-bottom: 6px; }
      .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-price {
        font-size: 18px;
        font-weight: 900;
        font-style: normal;
        font-stretch: normal;
        color: #4a4a4a;
        margin-bottom: 10px; }
      .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-action .product-shortlist-quantity {
        padding: 0; }
        .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-action .product-shortlist-quantity input {
          width: 90%;
          background-color: #ffffff;
          border: solid 1px #dedede;
          font-size: 10px;
          font-weight: bold;
          font-style: normal;
          font-stretch: normal;
          letter-spacing: 3px;
          text-align: center;
          height: 30px;
          color: #9b9b9b; }
          .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-action .product-shortlist-quantity input::-webkit-input-placeholder {
            color: #9b9b9b; }
          .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-action .product-shortlist-quantity input::-moz-placeholder {
            color: #9b9b9b; }
          .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-action .product-shortlist-quantity input:-ms-input-placeholder {
            color: #9b9b9b; }
      .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-action .product-shortlist-add-to-cart {
        padding: 0; }
        .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-action .product-shortlist-add-to-cart a.add_to_cart_button {
          letter-spacing: 1px; }
        .woo-product-single .product-shortlist .row .product-shortlist-item .col.s7 .product-shortlist-action .product-shortlist-add-to-cart a.added_to_cart.wc-forward {
          letter-spacing: 1px; }

.single-container .content {
  padding-top: 29px; }
  .single-container .content table.shop_table.shop_table_responsive.cart {
    border-collapse: collapse; }
    .single-container .content table.shop_table.shop_table_responsive.cart thead th {
      background-color: #e7e7e7;
      font-family: azo-sans-web, sans-serif;
      font-size: 12px;
      font-weight: bold;
      font-style: normal;
      font-stretch: normal;
      text-align: left;
      color: #777777;
      text-transform: capitalize;
      padding: 21px 0 18px 28px; }
    .single-container .content table.shop_table.shop_table_responsive.cart tbody tr.cart_item {
      border: solid 1px #e0e0e0;
      border-collapse: inherit; }
      .single-container .content table.shop_table.shop_table_responsive.cart tbody tr.cart_item td {
        padding: 23px 0; }
        .single-container .content table.shop_table.shop_table_responsive.cart tbody tr.cart_item td.product-name .content {
          padding-top: 0;
          margin-bottom: 0; }
          .single-container .content table.shop_table.shop_table_responsive.cart tbody tr.cart_item td.product-name .content .thumbnail {
            padding-left: 29px;
            padding-right: 11px; }
            .single-container .content table.shop_table.shop_table_responsive.cart tbody tr.cart_item td.product-name .content .thumbnail img {
              width: 67px;
              height: 65px; }
          .single-container .content table.shop_table.shop_table_responsive.cart tbody tr.cart_item td.product-name .content .information a {
            font-family: azo-sans-web, sans-serif;
            font-size: 14px;
            font-weight: normal;
            font-style: normal;
            font-stretch: normal;
            line-height: 0.71;
            text-align: center;
            color: #4a4a4a; }
          .single-container .content table.shop_table.shop_table_responsive.cart tbody tr.cart_item td.product-name .content .information p.product-id {
            font-family: "Avenir LT Std";
            font-size: 10px;
            font-weight: normal;
            font-style: normal;
            font-stretch: normal;
            text-align: left;
            color: #bbbbbb; }
        .single-container .content table.shop_table.shop_table_responsive.cart tbody tr.cart_item td.product-price .woocommerce-Price-amount.amount {
          padding-left: 21px;
          font-family: azo-sans-web, sans-serif;
          font-size: 18px;
          font-weight: normal;
          font-style: normal;
          font-stretch: normal;
          text-align: center;
          color: #4a4a4a; }
        .single-container .content table.shop_table.shop_table_responsive.cart tbody tr.cart_item td.product-quantity input[type=number] {
          border: none;
          outline: none;
          box-shadow: none;
          background: transparent;
          font-family: azo-sans-web, sans-serif;
          font-size: 18px;
          font-weight: normal;
          font-style: normal;
          font-stretch: normal;
          text-align: right;
          color: #4a4a4a;
          padding: 0;
          height: auto; }
          .single-container .content table.shop_table.shop_table_responsive.cart tbody tr.cart_item td.product-quantity input[type=number]::-webkit-outer-spin-button, .single-container .content table.shop_table.shop_table_responsive.cart tbody tr.cart_item td.product-quantity input[type=number]::-webkit-inner-spin-button {
            -webkit-appearance: none; }
        .single-container .content table.shop_table.shop_table_responsive.cart tbody tr.cart_item td.product-quantity .x {
          font-family: azo-sans-web, sans-serif;
          font-size: 18px;
          font-weight: normal;
          font-style: normal;
          font-stretch: normal;
          text-align: left;
          color: #4a4a4a;
          margin-right: 5px; }
        .single-container .content table.shop_table.shop_table_responsive.cart tbody tr.cart_item td.product-quantity .arrow-up, .single-container .content table.shop_table.shop_table_responsive.cart tbody tr.cart_item td.product-quantity .arrow-down {
          cursor: pointer; }
        .single-container .content table.shop_table.shop_table_responsive.cart tbody tr.cart_item td.product-subtotal .woocommerce-Price-amount.amount {
          font-family: azo-sans-web, sans-serif;
          font-size: 18px;
          font-weight: bold;
          font-style: normal;
          font-stretch: normal;
          text-align: center;
          color: #4a4a4a; }
          .single-container .content table.shop_table.shop_table_responsive.cart tbody tr.cart_item td.product-subtotal .woocommerce-Price-amount.amount span {
            font-family: azo-sans-web, sans-serif;
            font-size: 18px;
            font-weight: bold;
            font-style: normal;
            font-stretch: normal;
            text-align: center;
            color: #4a4a4a; }
        .single-container .content table.shop_table.shop_table_responsive.cart tbody tr.cart_item td.product-remove .remove {
          float: right;
          margin-right: 20px; }
          .single-container .content table.shop_table.shop_table_responsive.cart tbody tr.cart_item td.product-remove .remove::before {
            content: '\f00d'; }
    .single-container .content table.shop_table.shop_table_responsive.cart tbody td.actions {
      border: 0;
      padding: 1em 0; }
      .single-container .content table.shop_table.shop_table_responsive.cart tbody td.actions input[name="update_cart"] {
        background-color: #989898;
        border: none; }

.shop_table.shop_table_responsive.cart .cart-collaterals .cart_totals {
  width: 100%; }
  .shop_table.shop_table_responsive.cart .cart-collaterals .cart_totals table.shop_table.shop_table_responsive {
    border: solid 1px #e0e0e0;
    border-collapse: collapse; }
    .shop_table.shop_table_responsive.cart .cart-collaterals .cart_totals table.shop_table.shop_table_responsive tr {
      position: relative;
      display: block; }
      .shop_table.shop_table_responsive.cart .cart-collaterals .cart_totals table.shop_table.shop_table_responsive tr:after {
        content: '';
        display: block;
        position: absolute;
        background: #d2d2d2;
        height: 1px;
        left: 5%;
        right: 5%;
        z-index: 1000; }
      .shop_table.shop_table_responsive.cart .cart-collaterals .cart_totals table.shop_table.shop_table_responsive tr th {
        background: #ffffff;
        font-family: azo-sans-web, sans-serif;
        font-size: 14px;
        font-weight: normal;
        font-style: normal;
        font-stretch: normal;
        line-height: 0.71;
        color: #4a4a4a;
        width: 50%;
        display: inline-block; }
      .shop_table.shop_table_responsive.cart .cart-collaterals .cart_totals table.shop_table.shop_table_responsive tr td {
        font-family: azo-sans-web, sans-serif;
        font-size: 18px;
        font-weight: bold;
        font-style: normal;
        font-stretch: normal;
        text-align: right;
        color: #4a4a4a;
        padding: 12px 5px;
        width: 45%;
        display: inline-block; }
        .shop_table.shop_table_responsive.cart .cart-collaterals .cart_totals table.shop_table.shop_table_responsive tr td span {
          font-family: azo-sans-web, sans-serif;
          font-size: 18px;
          font-weight: bold;
          font-style: normal;
          font-stretch: normal;
          text-align: center;
          color: #4a4a4a; }
  .shop_table.shop_table_responsive.cart .cart-collaterals .cart_totals #shipping_method li {
    list-style: none; }
    .shop_table.shop_table_responsive.cart .cart-collaterals .cart_totals #shipping_method li label {
      width: 100%; }

.cart-footer td[colspan="5"] {
  background-color: #ffffff;
  padding: 0; }
  .cart-footer td[colspan="5"] .row .col:first-of-type {
    padding-left: 0; }
  .cart-footer td[colspan="5"] .row .col:last-of-type {
    padding-right: 0; }
  .cart-footer td[colspan="5"] h2 {
    font-family: azo-sans-web, sans-serif;
    font-size: 20px !important;
    font-weight: bold;
    font-style: normal;
    font-stretch: normal;
    text-align: left;
    color: #454545; }
  .cart-footer td[colspan="5"] .coupon {
    overflow: hidden; }
    .cart-footer td[colspan="5"] .coupon .rectangular {
      margin-bottom: 17px;
      border: solid 1px #e0e0e0;
      padding: 48px 32px 39px 20px; }
      .cart-footer td[colspan="5"] .coupon .rectangular input[name='coupon_code'] {
        border-bottom: solid 1px #989898;
        background: transparent;
        box-shadow: none;
        padding: 0 0 10px 0;
        height: auto; }
    .cart-footer td[colspan="5"] .coupon input[name='apply_coupon'] {
      border: none;
      box-shadow: none;
      outline: none;
      text-transform: uppercase;
      background-color: #a6ce39;
      font-family: azo-sans-web, sans-serif;
      font-size: 10px;
      font-weight: bold;
      font-style: normal;
      font-stretch: normal;
      padding: 15px 19px 15px 33px;
      letter-spacing: 3px;
      text-align: center;
      color: #ffffff;
      border: none;
      float: right; }

.wc-proceed-to-checkout a {
  background-color: #a6ce39 !important;
  border: none; }

.woocommerce-remove-coupon {
  color: #f33b58; }

.checkout-placeholder {
  margin-top: 17px;
  margin-bottom: 70px; }
  .checkout-placeholder .checkout-placeholder-right {
    width: 39.65142%; }
    .checkout-placeholder .checkout-placeholder-right a.checkout-button {
      font-family: azo-sans-web, sans-serif;
      border: none;
      box-shadow: none;
      outline: none;
      font-weight: bold;
      font-style: normal;
      font-stretch: normal;
      font-size: 10px;
      letter-spacing: 3px;
      text-align: center;
      color: #ffffff;
      text-transform: uppercase;
      padding: 15px 0; }
      .checkout-placeholder .checkout-placeholder-right a.checkout-button:after {
        display: none; }

.single-container .woocommerce .woocommerce-MyAccount-navigation {
  height: auto;
  background: none; }
  .single-container .woocommerce .woocommerce-MyAccount-navigation ul {
    margin: 0; }
    .single-container .woocommerce .woocommerce-MyAccount-navigation ul li {
      list-style-type: none;
      padding: 0 10px;
      display: block;
      float: none;
      background: white; }
      .single-container .woocommerce .woocommerce-MyAccount-navigation ul li.is-active {
        background: #a6ce39; }
      .single-container .woocommerce .woocommerce-MyAccount-navigation ul li:hover {
        background: rgba(0, 0, 0, 0.1); }
      .single-container .woocommerce .woocommerce-MyAccount-navigation ul li a:hover {
        background: transparent; }

.single-container #payment {
  min-height: 480px; }

.single-container #payment .place-order .button {
  border: none;
  box-shadow: none;
  outline: none;
  background-color: #a6ce39;
  float: right;
  width: 45.97701% !important;
  font-family: azo-sans-web, sans-serif;
  font-size: 10px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  letter-spacing: 2px;
  text-align: center;
  color: #ffffff;
  padding: 15px 22px 15px 28px; }

#payment .payment_methods > .wc_payment_method > label {
  padding: 0 !important;
  padding-left: 35px !important; }

.woocommerce-MyAccount-content a {
  color: #a6ce39; }

.woocommerce-MyAccount-content .order-actions a.button.view {
  color: #ffffff;
  background-color: #a6ce39; }

.woocommerce-MyAccount-content select {
  display: block; }

.woocommerce-MyAccount-content label {
  font-size: 14px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.86;
  text-align: left;
  color: #606060;
  padding: 0; }

.woocommerce-MyAccount-content input[type="text"], .woocommerce-MyAccount-content input[type="email"], .woocommerce-MyAccount-content input[type="tel"], .woocommerce-MyAccount-content input[type="password"] {
  border-bottom: solid 1px #989898;
  background: transparent;
  box-shadow: none;
  padding-top: 5px;
  padding-bottom: 16px;
  padding-left: 7px;
  height: auto; }
  .woocommerce-MyAccount-content input[type="text"]:focus, .woocommerce-MyAccount-content input[type="email"]:focus, .woocommerce-MyAccount-content input[type="tel"]:focus, .woocommerce-MyAccount-content input[type="password"]:focus {
    background: transparent; }
  .woocommerce-MyAccount-content input[type="text"]:disabled, .woocommerce-MyAccount-content input[type="email"]:disabled, .woocommerce-MyAccount-content input[type="tel"]:disabled, .woocommerce-MyAccount-content input[type="password"]:disabled {
    background: #f33b58; }

.woocommerce-MyAccount-content input[type="submit"] {
  font-family: azo-sans-web, sans-serif;
  border: none;
  box-shadow: none;
  outline: none;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  font-size: 10px;
  letter-spacing: 3px;
  text-align: center;
  color: #ffffff;
  text-transform: uppercase;
  padding: 15px 20px;
  background-color: #a6ce39;
  margin-bottom: 20px; }
  .woocommerce-MyAccount-content input[type="submit"]:after {
    display: none; }
  .woocommerce-MyAccount-content input[type="submit"]:hover {
    background-color: #88aa2a; }

.woocommerce form.login label {
  font-size: 14px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  line-height: 1.86;
  text-align: left;
  color: #606060;
  padding: 0; }

.woocommerce form.login input#username, .woocommerce form.login input#password {
  border-bottom: solid 1px #989898;
  background: transparent;
  box-shadow: none;
  padding-top: 5px;
  padding-bottom: 16px;
  padding-left: 7px;
  height: auto; }
  .woocommerce form.login input#username:focus, .woocommerce form.login input#password:focus {
    background: transparent; }
  .woocommerce form.login input#username:disabled, .woocommerce form.login input#password:disabled {
    background: #f33b58; }

.woocommerce form.login input[type="submit"] {
  font-family: azo-sans-web, sans-serif;
  border: none;
  box-shadow: none;
  outline: none;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  font-size: 10px;
  letter-spacing: 3px;
  text-align: center;
  color: #ffffff;
  text-transform: uppercase;
  padding: 15px 20px;
  background-color: #a6ce39;
  margin-bottom: 20px; }
  .woocommerce form.login input[type="submit"]:after {
    display: none; }
  .woocommerce form.login input[type="submit"]:hover {
    background-color: #88aa2a; }

.woocommerce form.login input#rememberme {
  position: relative;
  opacity: 1;
  left: 0;
  margin-top: 5px; }

.woocommerce form.login .lost_password a {
  color: #f33b58; }

.woocommerce a.register {
  background-color: #f3a536;
  color: white;
  padding: 5px 15px;
  border-radius: 5px; }
  .woocommerce a.register:visited {
    color: white; }

.lost_reset_password input[type="text"] {
  border-bottom: solid 1px #989898;
  background: transparent;
  box-shadow: none;
  padding-top: 5px;
  padding-bottom: 16px;
  padding-left: 7px;
  height: auto; }
  .lost_reset_password input[type="text"]:focus {
    background: transparent; }
  .lost_reset_password input[type="text"]:disabled {
    background: #f33b58; }

.lost_reset_password input[type="submit"] {
  font-family: azo-sans-web, sans-serif;
  border: none;
  box-shadow: none;
  outline: none;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  font-size: 10px;
  letter-spacing: 3px;
  text-align: center;
  color: #ffffff;
  text-transform: uppercase;
  padding: 15px 20px;
  background-color: #a6ce39;
  margin-bottom: 20px; }
  .lost_reset_password input[type="submit"]:after {
    display: none; }
  .lost_reset_password input[type="submit"]:hover {
    background-color: #88aa2a; }

.woocommerce .woocommerce-info {
  padding: 13px 20px 14px 20px;
  background-color: #e7e7e7;
  border-left: none;
  font-family: azo-sans-web, sans-serif;
  font-size: 20px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  text-align: left;
  color: #454545;
  margin-bottom: 22px; }
  .woocommerce .woocommerce-info a {
    font-family: "Avenir LT Std";
    font-size: 14px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: 1.43;
    text-align: left;
    color: #31bef8;
    margin-left: 16px;
    text-decoration: underline; }
    .woocommerce .woocommerce-info a:hover {
      color: #31bef8; }

.woocommerce .woocommerce-message {
  background-color: #a6ce39;
  border-left: none; }

.woocommerce .woocommerce-error {
  margin: 0 !important;
  background-color: #f33b58;
  border-left: none; }
  .woocommerce .woocommerce-error li {
    list-style-type: none !important;
    padding-left: 1.618em; }

.woocommerce .woocommerce-billing-fields h3 {
  font-family: azo-sans-web, sans-serif;
  font-size: 20px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  text-align: left;
  color: #454545;
  margin-bottom: 16px; }

.woocommerce .woocommerce-billing-fields .row {
  border: solid 1px #e0e0e0;
  padding: 48px 11px 31px 20px; }
  .woocommerce .woocommerce-billing-fields .row select {
    display: inherit; }
  .woocommerce .woocommerce-billing-fields .row label {
    display: none; }
  .woocommerce .woocommerce-billing-fields .row .input-text {
    border-bottom: solid 1px #d2d2d2;
    background: transparent;
    box-shadow: none;
    padding-bottom: 16px;
    padding-left: 7px;
    padding-top: 10px;
    height: auto;
    font-family: azo-sans-web, sans-serif;
    font-size: 14px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    text-align: left;
    color: #4a4a4a; }
    .woocommerce .woocommerce-billing-fields .row .input-text::-webkit-input-placeholder {
      color: #4a4a4a; }
    .woocommerce .woocommerce-billing-fields .row .input-text::-moz-placeholder {
      color: #4a4a4a; }
    .woocommerce .woocommerce-billing-fields .row .input-text:-moz-placeholder {
      color: #4a4a4a; }
    .woocommerce .woocommerce-billing-fields .row .input-text:-ms-input-placeholder {
      color: #4a4a4a; }

.woocommerce .woocommerce-billing-fields .radiobutton input[type="radio"] {
  position: relative;
  left: auto;
  opacity: 1; }
  .woocommerce .woocommerce-billing-fields .radiobutton input[type="radio"]:checked + label:before {
    background: #a6ce39; }

.woocommerce .woocommerce-billing-fields .form-row-first {
  width: 48%;
  margin-right: 4%; }

.woocommerce .woocommerce-billing-fields .form-row-last {
  width: 48%; }

.woocommerce .woocommerce-shipping-fields h3 {
  font-family: azo-sans-web, sans-serif;
  font-size: 20px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  text-align: left;
  color: #454545;
  margin-bottom: 16px; }

.woocommerce .woocommerce-shipping-fields label {
  display: none; }

.woocommerce .woocommerce-shipping-fields textarea.input-text {
  background: transparent;
  box-shadow: none;
  padding: 20px 93px 20px 27px;
  min-height: 186px;
  font-family: azo-sans-web, sans-serif;
  font-size: 14px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  text-align: left;
  color: #4a4a4a;
  border: solid 1px #e0e0e0; }
  .woocommerce .woocommerce-shipping-fields textarea.input-text::-webkit-input-placeholder {
    color: #4a4a4a; }
  .woocommerce .woocommerce-shipping-fields textarea.input-text::-moz-placeholder {
    color: #4a4a4a; }
  .woocommerce .woocommerce-shipping-fields textarea.input-text:-moz-placeholder {
    color: #4a4a4a; }
  .woocommerce .woocommerce-shipping-fields textarea.input-text:-ms-input-placeholder {
    color: #4a4a4a; }

.select2-container .select2-choice {
  border: none;
  border-bottom: solid 1px #d2d2d2;
  padding-bottom: 16px;
  padding-left: 7px;
  padding-top: 8px; }

.select2-drop .select2-input {
  margin: 0;
  box-shadow: none;
  background: #ffffff; }
  .select2-drop .select2-input:focus {
    background: #ffffff; }

.select2-drop-active {
  border-top: 1px solid #666; }

.woocommerce .woocommerce-shipping-fields h3 {
  font-family: azo-sans-web, sans-serif;
  font-size: 20px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  text-align: left;
  color: #454545;
  margin-bottom: 16px; }

.woocommerce .woocommerce-shipping-fields label {
  display: none; }

.woocommerce .woocommerce-shipping-fields textarea.input-text {
  background: transparent;
  box-shadow: none;
  padding: 20px 93px 20px 27px;
  min-height: 186px;
  font-family: azo-sans-web, sans-serif;
  font-size: 14px;
  font-weight: normal;
  font-style: normal;
  font-stretch: normal;
  text-align: left;
  color: #4a4a4a;
  border: solid 1px #e0e0e0; }
  .woocommerce .woocommerce-shipping-fields textarea.input-text::-webkit-input-placeholder {
    color: #4a4a4a; }
  .woocommerce .woocommerce-shipping-fields textarea.input-text::-moz-placeholder {
    color: #4a4a4a; }
  .woocommerce .woocommerce-shipping-fields textarea.input-text:-moz-placeholder {
    color: #4a4a4a; }
  .woocommerce .woocommerce-shipping-fields textarea.input-text:-ms-input-placeholder {
    color: #4a4a4a; }

.woocommerce .woocommerce-shipping-fields input[type="text"] {
  background-color: transparent;
  border: 1px solid #e0e0e0;
  box-shadow: none; }

.woocommerce h3#order_review_heading {
  font-family: azo-sans-web, sans-serif;
  font-size: 20px;
  font-weight: bold;
  font-style: normal;
  font-stretch: normal;
  text-align: left;
  color: #454545;
  margin-bottom: 16px; }

.woocommerce table.shop_table.woocommerce-checkout-review-order-table {
  border: solid 1px #e0e0e0;
  border-collapse: collapse; }
  .woocommerce table.shop_table.woocommerce-checkout-review-order-table tr {
    position: relative;
    display: block; }
    .woocommerce table.shop_table.woocommerce-checkout-review-order-table tr:after {
      content: '';
      display: block;
      position: absolute;
      background: #d2d2d2;
      height: 1px;
      left: 5%;
      right: 5%;
      z-index: 1000; }
    .woocommerce table.shop_table.woocommerce-checkout-review-order-table tr th {
      background: #ffffff;
      font-family: azo-sans-web, sans-serif;
      font-size: 14px;
      font-weight: normal;
      font-style: normal;
      font-stretch: normal;
      line-height: 0.71;
      color: #4a4a4a;
      width: 70%;
      padding-top: 22px;
      display: inline-block; }
    .woocommerce table.shop_table.woocommerce-checkout-review-order-table tr td {
      font-family: azo-sans-web, sans-serif;
      font-size: 18px;
      font-weight: bold;
      font-style: normal;
      font-stretch: normal;
      text-align: right;
      color: #4a4a4a;
      padding: 12px 5px;
      width: 25%;
      display: inline-block; }
      .woocommerce table.shop_table.woocommerce-checkout-review-order-table tr td span {
        font-family: azo-sans-web, sans-serif;
        font-size: 18px;
        font-weight: bold;
        font-style: normal;
        font-stretch: normal;
        text-align: center;
        color: #4a4a4a; }
  .woocommerce table.shop_table.woocommerce-checkout-review-order-table thead {
    border-bottom: none; }
    .woocommerce table.shop_table.woocommerce-checkout-review-order-table thead th {
      font-family: azo-sans-web, sans-serif;
      font-size: 14px;
      font-weight: normal;
      font-style: normal;
      font-stretch: normal;
      line-height: 0.71;
      color: #4a4a4a;
      text-transform: capitalize;
      width: 49%; }
      .woocommerce table.shop_table.woocommerce-checkout-review-order-table thead th:first-of-type {
        text-align: left; }
      .woocommerce table.shop_table.woocommerce-checkout-review-order-table thead th:last-of-type {
        text-align: right; }
  .woocommerce table.shop_table.woocommerce-checkout-review-order-table tr.cart_item td:first-of-type {
    font-family: azo-sans-web, sans-serif;
    font-size: 14px;
    width: 70%;
    text-align: left;
    padding-left: 5%;
    padding-top: 20px;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    color: #4a4a4a; }

.woocommerce .woocommerce-thankyou-order-details.order_details {
  margin-left: 0; }
  .woocommerce .woocommerce-thankyou-order-details.order_details li {
    list-style-type: none; }

.debug {
  position: absolute;
  z-index: 100000;
  right: 0;
  background: #23282d;
  color: white; }
  .debug span {
    padding: 5px 10px; }

@media only screen and (max-width: 736px) {
  .row .col img {
    width: 100%;
    height: auto; }
  nav i, nav [class^="mdi-"], nav [class*="mdi-"], nav i.material-icons {
    height: auto !important; }
  .refine .container {
    width: auto;
    max-width: 100%; }
  section.hero .container h1 {
    font-size: 30px; }
  section.hero .container .green-break {
    margin-top: 50px; }
  section.hero .container .featured-article {
    -webkit-transform: translateY(25px);
    -moz-transform: translateY(25px);
    -ms-transform: translateY(25px);
    -o-transform: translateY(25px);
    transform: translateY(25px); }
    section.hero .container .featured-article .left .read-more {
      position: absolute;
      right: 25px;
      bottom: 0;
      background: #a6ce39;
      color: white;
      font-size: 11px;
      letter-spacing: 1.4px;
      padding: 4px 10px;
      cursor: pointer;
      font-style: normal;
      font-weight: 400;
      transition: 0.4s ease all;
      line-height: 1.6; }
      section.hero .container .featured-article .left .read-more::after {
        background-color: #606060;
        font: normal normal normal 15px FontAwesome;
        display: block;
        height: 25px;
        width: 25px;
        content: '\f105';
        position: absolute;
        color: white;
        padding: 4px 10px;
        right: -25px;
        bottom: 0;
        -webkit-transition: all 0.1s ease-in-out;
        -moz-transition: all 0.1s ease-in-out;
        transition: all 0.1s ease-in-out; }
      section.hero .container .featured-article .left .read-more:hover {
        background: #b8d862; }
        section.hero .container .featured-article .left .read-more:hover::after {
          content: "\f002";
          padding: 4px 6px;
          -webkit-transition: all 0.1s ease-in-out;
          -moz-transition: all 0.1s ease-in-out;
          transition: all 0.1s ease-in-out; }
    section.hero .container .featured-article .right {
      height: 150px; }
  section.featured-products {
    padding-top: 70px; }
    section.featured-products .container h2 {
      font-size: 18px; }
    section.featured-products .container .product-image-container {
      height: auto; }
    section.featured-products .product.woocommerce.add_to_cart_inline a {
      letter-spacing: 1px !important; }
  .footer {
    padding-bottom: 30px; }
    .footer .col {
      margin-top: 10px; }
  .category-container .post-list .post-list-item .read-more {
    right: 36px; }
  .category-container .post-list .post-list-item .post-list-item-inner img {
    height: auto; }
  .single-container.services .post-list .post-list-item .post-list-item-inner img {
    height: auto; }
  .single-container.services .post-list .post-list-item .read-more {
    right: 36px; }
  .category-container.case-studies .case-study-item-container .case-study-item > .col {
    background-size: cover;
    min-height: 200px; }
    .category-container.case-studies .case-study-item-container .case-study-item > .col:empty {
      display: none; }
    .category-container.case-studies .case-study-item-container .case-study-item > .col .read-more {
      position: absolute;
      right: 25px;
      bottom: 0;
      background: #a6ce39;
      color: white;
      font-size: 11px;
      letter-spacing: 1.4px;
      padding: 4px 10px;
      cursor: pointer;
      font-style: normal;
      font-weight: 400;
      transition: 0.4s ease all;
      line-height: 1.6;
      right: 25px !important; }
      .category-container.case-studies .case-study-item-container .case-study-item > .col .read-more::after {
        background-color: #606060;
        font: normal normal normal 15px FontAwesome;
        display: block;
        height: 25px;
        width: 25px;
        content: '\f105';
        position: absolute;
        color: white;
        padding: 4px 10px;
        right: -25px;
        bottom: 0;
        -webkit-transition: all 0.1s ease-in-out;
        -moz-transition: all 0.1s ease-in-out;
        transition: all 0.1s ease-in-out; }
      .category-container.case-studies .case-study-item-container .case-study-item > .col .read-more:hover {
        background: #b8d862; }
        .category-container.case-studies .case-study-item-container .case-study-item > .col .read-more:hover::after {
          content: "\f002";
          padding: 4px 6px;
          -webkit-transition: all 0.1s ease-in-out;
          -moz-transition: all 0.1s ease-in-out;
          transition: all 0.1s ease-in-out; }
  .single-container .case-study-item-container .case-study-item .col {
    min-height: 250px;
    background-size: cover; }
    .single-container .case-study-item-container .case-study-item .col .read-more {
      right: 25px; }
  .single-container.about-us .post-list .post-list-item .read-more {
    right: 36px; }
  .single-container.about-us .post-list .post-list-item .post-list-item-inner img {
    height: auto; } }

@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
  .ipad1 {
    width: 8.33333% !important; }
  .ipad2 {
    width: 16.66667% !important; }
  .ipad3 {
    width: 25% !important; }
  .ipad4 {
    width: 33.33333% !important; }
  .ipad5 {
    width: 41.66667% !important; }
  .ipad6 {
    width: 50% !important; }
  .ipad7 {
    width: 58.33333% !important; }
  .ipad8 {
    width: 66.66667% !important; }
  .ipad9 {
    width: 75% !important; }
  .ipad10 {
    width: 83.33333% !important; }
  .ipad11 {
    width: 91.66667% !important; }
  .ipad12 {
    width: 100% !important; }
  header nav .brand-logo {
    height: 60px;
    width: 80px;
    font-size: 0;
    cursor: pointer;
    background-repeat: no-repeat;
    background-position: 90% 50%;
    background-size: 90%; }
  header ul#nav-mobile li a {
    font-size: 10px; }
  .footer .container {
    width: auto; }
    .footer .container .footer-site-title {
      font-size: 16px; }
  .refine .container {
    width: auto;
    max-width: 100%; }
  section.hero .container .green-break {
    margin-top: 50px; }
  section.hero .container h1 {
    font-size: 30px;
    line-height: 32px; }
  section.hero .container p {
    font-size: 15px;
    line-height: 20px; }
  section.hero .container .featured-article {
    margin-top: 0; }
    section.hero .container .featured-article .left h1 {
      padding: 20px 0px 10px; }
    section.hero .container .featured-article .left p {
      font-size: 15px;
      line-height: 20px;
      width: auto; }
  section.featured-products {
    padding-top: 80px; }
  .case-study-item .col:empty {
    display: none !important; } }

button:focus {
  background-color: #000 !important;
  color: #fff; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNzcyIsInNvdXJjZXMiOlsiYXBwLnNhc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL19ib3VyYm9uLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19kZXByZWNhdGlvbi13YXJuaW5ncy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fcHJlZml4ZXIuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX3B4LXRvLWVtLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19hc3NldC1waXBlbGluZS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fYm91cmJvbi1kZXByZWNhdGUuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19hc3NpZ24taW5wdXRzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fY29udGFpbnMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19jb250YWlucy1mYWxzeS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLWxlbmd0aC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLWxpZ2h0LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtbnVtYmVyLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtc2l6ZS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3B4LXRvLWVtLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fcHgtdG8tcmVtLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fc2hhZGUuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19zdHJpcC11bml0cy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3RpbnQuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL190cmFuc2l0aW9uLXByb3BlcnR5LW5hbWUuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL191bnBhY2suc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19tb2R1bGFyLXNjYWxlLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2NvbnZlcnQtdW5pdHMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fZGlyZWN0aW9uYWwtdmFsdWVzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLWFuZ2xlLXBhcnNlci5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmFkaWFsLWFyZy1wYXJzZXIuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmFkaWFsLWdyYWRpZW50LXBhcnNlci5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yZW5kZXItZ3JhZGllbnRzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3NoYXBlLXNpemUtc3RyaXBwZXIuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fc3RyLXRvLW51bS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19hbmltYXRpb24uc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYXBwZWFyYW5jZS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19iYWNrZmFjZS12aXNpYmlsaXR5LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JhY2tncm91bmQuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYmFja2dyb3VuZC1pbWFnZS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19ib3JkZXItaW1hZ2Uuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fY2FsYy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19jb2x1bW5zLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZpbHRlci5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19mbGV4LWJveC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19mb250LWZhY2Uuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZm9udC1mZWF0dXJlLXNldHRpbmdzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2hpZHBpLW1lZGlhLXF1ZXJ5LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2h5cGhlbnMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9faW1hZ2UtcmVuZGVyaW5nLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2tleWZyYW1lcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19saW5lYXItZ3JhZGllbnQuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fcGVyc3BlY3RpdmUuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fcGxhY2Vob2xkZXIuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fcmFkaWFsLWdyYWRpZW50LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3NlbGVjdGlvbi5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL190ZXh0LWRlY29yYXRpb24uc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdHJhbnNmb3JtLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3RyYW5zaXRpb24uc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdXNlci1zZWxlY3Quc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItY29sb3Iuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItcmFkaXVzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLXN0eWxlLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLXdpZHRoLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYnV0dG9ucy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2NsZWFyZml4LnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fZWxsaXBzaXMuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19mb250LXN0YWNrcy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2hpZGUtdGV4dC5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX21hcmdpbi5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3BhZGRpbmcuc2NzcyIsIi4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wb3NpdGlvbi5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3ByZWZpeGVyLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcmV0aW5hLWltYWdlLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fc2l6ZS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RleHQtaW5wdXRzLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fdGltaW5nLWZ1bmN0aW9ucy5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RyaWFuZ2xlLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fd29yZC13cmFwLnNjc3MiLCIuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL19ib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmcuc2NzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2Fzcy1tZWRpYXF1ZXJpZXMvX21lZGlhLXF1ZXJpZXMuc2NzcyIsImJhc2UvX2NvbG91cnMuc2FzcyIsImJhc2UvX3NpemluZy5zYXNzIiwiYmFzZS9fdHlwb2dyYXBoeS5zYXNzIiwiYmFzZS9fYW5pbXMuc2FzcyIsImJhc2UvX2Zvcm1zLnNhc3MiLCJiYXNlL21hcmdpbnMuc2FzcyIsImJhc2UvcGFkZGluZ3Muc2FzcyIsImJhc2UvX2ZvbnRzLnNhc3MiLCJiYXNlL19saW5rcy5zYXNzIiwiYmFzZS9zYW1lLWhlaWdodC1jb2x1bW4uc2FzcyIsImJhc2UvdmVydGljYWwtYWxpZ24tZGl2LnNhc3MiLCJiYXNlL3dvcmRwcmVzcy5zYXNzIiwiaW5oZXJpdGFibGUvcmVhZC1tb3JlLWJ1dHRvbi5zYXNzIiwiYmxvY2tzL2J1dHRvbnMuc2FzcyIsImdsb2JhbHMvX2JhY2t0b3RvcC5zYXNzIiwiZ2xvYmFscy9fbmF2LnNhc3MiLCJnbG9iYWxzL2ZvbnQuc2NzcyIsImdsb2JhbHMvc29jaWFsLWljb25zLnNjc3MiLCJnbG9iYWxzL2F2ZW5pci5zY3NzIiwicGFnZXMvX2xhbmRpbmcuc2FzcyIsInBhZ2VzL19jb250YWN0LnNhc3MiLCJwYWdlcy9fYWJvdXQtdXMuc2FzcyIsInBhZ2VzL19vdXItdGVhbS5zYXNzIiwicGFnZXMvX3NpbmdsZS5zYXNzIiwicGFnZXMvX3NpbmdsZS1jYXNlLXN0dWR5LnNhc3MiLCJwYWdlcy9fc2luZ2xlLXNlcnZpY2Uuc2FzcyIsInBhZ2VzL19jYXRlZ29yeS5zYXNzIiwicGFnZXMvX2NhdGVnb3J5LWNhc2Utc3R1ZGllcy5zYXNzIiwicGFnZXMvX3JlZ2lzdGVyLnNhc3MiLCJwYWdlcy9wYXJ0cy9jYXRlZ29yeS1zaWRlYmFyLnNhc3MiLCJzcGVjaWZpY3MvX2dyZWVuLWJyZWFrLnNhc3MiLCJzcGVjaWZpY3MvYnV0dG9ucy5zYXNzIiwic3BlY2lmaWNzL2hlYWRlci5zYXNzIiwic3BlY2lmaWNzL2Zvb3Rlci5zYXNzIiwic3BlY2lmaWNzL2VsZW1lbnRzLnNhc3MiLCJzcGVjaWZpY3MvYmFubmVyLnNhc3MiLCJzcGVjaWZpY3Mvd29vY29tbWVyY2Uuc2FzcyIsInNwZWNpZmljcy9zZWFyY2hiYXIuc2FzcyIsInNwZWNpZmljcy9zbGljay1zbGlkZXIuc2FzcyIsIndvb2NvbW1lcmNlL2FyY2hpdmUtcHJvZHVjdC5zYXNzIiwicGFnZXMvcGFydHMvcHJvZHVjdC1zaG9ydGxpc3Quc2FzcyIsIndvb2NvbW1lcmNlL3NpbmdsZS1wcm9kdWN0LnNhc3MiLCJ3b29jb21tZXJjZS9jYXJ0L2NhcnQuc2FzcyIsIndvb2NvbW1lcmNlL2NhcnQvcHJvY2VlZC10by1jaGVja291dC1idXR0b24uc2FzcyIsIndvb2NvbW1lcmNlL215YWNjb3VudC9wcmVkZWZpbmUuc2FzcyIsIndvb2NvbW1lcmNlL215YWNjb3VudC9teS1hY2NvdW50LnNhc3MiLCJ3b29jb21tZXJjZS9teWFjY291bnQvZm9ybS1sb2dpbi5zYXNzIiwid29vY29tbWVyY2UvbXlhY2NvdW50L2Zvcm0tbG9zdC1wYXNzd29yZC5zYXNzIiwid29vY29tbWVyY2Uvbm90aWNlcy9ub3RpY2Uuc2FzcyIsIndvb2NvbW1lcmNlL25vdGljZXMvc3VjY2Vzcy5zYXNzIiwid29vY29tbWVyY2Uvbm90aWNlcy9lcnJvci5zYXNzIiwid29vY29tbWVyY2UvY2hlY2tvdXQvZm9ybS1iaWxsaW5nLnNhc3MiLCJ3b29jb21tZXJjZS9jaGVja291dC9mb3JtLXNoaXBwaW5nLnNhc3MiLCJ3b29jb21tZXJjZS9jaGVja291dC9mb3JtLWNoZWNrb3V0LnNhc3MiLCJ3b29jb21tZXJjZS9jaGVja291dC90aGFua3lvdS5zYXNzIiwiZGVidWcvZGVidWcuc2FzcyIsIm1lZGlhL3Bob25lL3ByZWRlZmluZS5zYXNzIiwibWVkaWEvcGhvbmUvaGVhZGVyLnNhc3MiLCJtZWRpYS9pcGFkL3NwZWNpZmljcy9zZWFyY2hiYXIuc2FzcyIsIm1lZGlhL3Bob25lL3BhZ2VzL19sYW5kaW5nLnNhc3MiLCJtZWRpYS9waG9uZS9wYWdlcy9zZXJ2aWNlcy5zYXNzIiwibWVkaWEvcGhvbmUvcGFnZXMvX3NpbmdsZS1zZXJ2aWNlLnNhc3MiLCJtZWRpYS9waG9uZS9wYWdlcy9fY2F0ZWdvcnktY2FzZS1zdHVkaWVzLnNhc3MiLCJtZWRpYS9waG9uZS9wYWdlcy9fc2luZ2xlLnNhc3MiLCJtZWRpYS9waG9uZS9wYWdlcy9fYWJvdXQtdXMuc2FzcyIsIm1lZGlhL2lwYWQvcHJlZGVmaW5lLnNhc3MiLCJtZWRpYS9pcGFkL2hlYWRlci5zYXNzIiwibWVkaWEvaXBhZC9mb290ZXIuc2FzcyIsIm1lZGlhL2lwYWQvcGFnZXMvX2xhbmRpbmcuc2FzcyIsIm1lZGlhL2lwYWQvcGFnZXMvX2NhdGVnb3J5LWNhc2Utc3R1ZGllcy5zYXNzIiwibWVkaWEvaXBhZC93b29jb21tZXJjZS9hcmNoaXZlLXByb2R1Y3Quc2FzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBGdWxsIEltcG9ydCAvL1xuLy8gTm90ZTogRG8gbm90IHVzZSB2ZW5kb3IgYmFzZWQgbWl4aW5zIChNYWtlIGNvcGllcyBpbiBiYXNlIGZpbGVzIG9yIG1ha2UgeW91ciBvd24pXG5cbi8vQm91cmJvblxuQGltcG9ydCBcImJvdXJib25cIjtcbi8vTWVkaWEgUXVlcmllc1xuQGltcG9ydCBcIi4uL2Jvd2VyX2NvbXBvbmVudHMvc2Fzcy1tZWRpYXF1ZXJpZXMvbWVkaWEtcXVlcmllc1wiO1xuLnJvdyB7XG4gIC5jb2wge1xuICAgIGZsb2F0OiBsZWZ0OyB9IH1cblxuLy8gQkFTRVxuQGltcG9ydCAnYmFzZS9jb2xvdXJzJztcbkBpbXBvcnQgJ2Jhc2Uvc2l6aW5nJztcbkBpbXBvcnQgJ2Jhc2UvdHlwb2dyYXBoeSc7XG5AaW1wb3J0ICdiYXNlL2FuaW1zJztcbkBpbXBvcnQgJ2Jhc2UvZm9ybXMnO1xuQGltcG9ydCBcImJhc2UvbWFyZ2luc1wiO1xuQGltcG9ydCBcImJhc2UvcGFkZGluZ3NcIjtcbkBpbXBvcnQgXCJiYXNlL2ZvbnRzXCI7XG5AaW1wb3J0IFwiYmFzZS9saW5rc1wiO1xuQGltcG9ydCBcImJhc2Uvc2FtZS1oZWlnaHQtY29sdW1uXCI7XG5AaW1wb3J0IFwiYmFzZS92ZXJ0aWNhbC1hbGlnbi1kaXZcIjtcbkBpbXBvcnQgXCJiYXNlL3dvcmRwcmVzc1wiO1xuXG4vL0lOSEVSSVRBQkxFXG5AaW1wb3J0IFwiaW5oZXJpdGFibGUvcmVhZC1tb3JlLWJ1dHRvblwiO1xuQGltcG9ydCBcImJsb2Nrcy9idXR0b25zXCI7XG5cbi8vIEdMT0JBTFNcbkBpbXBvcnQgJ2dsb2JhbHMvYmFja3RvdG9wJztcbkBpbXBvcnQgJ2dsb2JhbHMvbmF2JztcbkBpbXBvcnQgXCJnbG9iYWxzL2ZvbnRcIjtcbkBpbXBvcnQgXCJnbG9iYWxzL3NvY2lhbC1pY29uc1wiO1xuQGltcG9ydCBcImdsb2JhbHMvYXZlbmlyXCI7XG5cbi8vIFBBR0VTXG5AaW1wb3J0ICdwYWdlcy9sYW5kaW5nJztcbkBpbXBvcnQgXCJwYWdlcy9jb250YWN0XCI7XG5AaW1wb3J0IFwicGFnZXMvYWJvdXQtdXNcIjtcbkBpbXBvcnQgXCJwYWdlcy9vdXItdGVhbVwiO1xuQGltcG9ydCBcInBhZ2VzL3NpbmdsZVwiO1xuQGltcG9ydCBcInBhZ2VzL3NpbmdsZS1jYXNlLXN0dWR5XCI7XG5AaW1wb3J0IFwicGFnZXMvc2luZ2xlLXNlcnZpY2VcIjtcbkBpbXBvcnQgXCJwYWdlcy9jYXRlZ29yeVwiO1xuQGltcG9ydCBcInBhZ2VzL2NhdGVnb3J5LWNhc2Utc3R1ZGllc1wiO1xuQGltcG9ydCBcInBhZ2VzL3JlZ2lzdGVyXCI7XG5cbi8vUEFSVFNcbkBpbXBvcnQgXCJwYWdlcy9wYXJ0cy9jYXRlZ29yeS1zaWRlYmFyXCI7XG5cbi8vIFNQRUNJRklDU1xuQGltcG9ydCAnc3BlY2lmaWNzL2dyZWVuLWJyZWFrJztcbkBpbXBvcnQgJ3NwZWNpZmljcy9idXR0b25zJztcbkBpbXBvcnQgXCJzcGVjaWZpY3MvaGVhZGVyXCI7XG5AaW1wb3J0IFwic3BlY2lmaWNzL2Zvb3RlclwiO1xuQGltcG9ydCBcInNwZWNpZmljcy9lbGVtZW50c1wiO1xuQGltcG9ydCBcInNwZWNpZmljcy9iYW5uZXJcIjtcbkBpbXBvcnQgXCJzcGVjaWZpY3Mvd29vY29tbWVyY2VcIjtcbkBpbXBvcnQgXCJzcGVjaWZpY3Mvc2VhcmNoYmFyXCI7XG5AaW1wb3J0IFwic3BlY2lmaWNzL3NsaWNrLXNsaWRlclwiO1xuXG4vL1NpbmdsZSBQcm9kdWN0XG5AaW1wb3J0IFwid29vY29tbWVyY2UvYXJjaGl2ZS1wcm9kdWN0XCI7XG5AaW1wb3J0IFwid29vY29tbWVyY2Uvc2luZ2xlLXByb2R1Y3RcIjtcbi8vQ2FydFxuQGltcG9ydCBcIndvb2NvbW1lcmNlL2NhcnQvY2FydFwiO1xuQGltcG9ydCBcIndvb2NvbW1lcmNlL2NhcnQvcHJvY2VlZC10by1jaGVja291dC1idXR0b25cIjtcbi8vTXlBY2NvdW50XG5AaW1wb3J0IFwid29vY29tbWVyY2UvbXlhY2NvdW50L3ByZWRlZmluZVwiO1xuQGltcG9ydCBcIndvb2NvbW1lcmNlL215YWNjb3VudC9teS1hY2NvdW50XCI7XG5AaW1wb3J0IFwid29vY29tbWVyY2UvbXlhY2NvdW50L2Zvcm0tbG9naW5cIjtcbkBpbXBvcnQgXCJ3b29jb21tZXJjZS9teWFjY291bnQvZm9ybS1sb3N0LXBhc3N3b3JkXCI7XG5AaW1wb3J0IFwid29vY29tbWVyY2Uvbm90aWNlcy9ub3RpY2VcIjtcbkBpbXBvcnQgXCJ3b29jb21tZXJjZS9ub3RpY2VzL3N1Y2Nlc3NcIjtcbkBpbXBvcnQgXCJ3b29jb21tZXJjZS9ub3RpY2VzL2Vycm9yXCI7XG4vL0NoZWNrb3V0XG5AaW1wb3J0IFwid29vY29tbWVyY2UvY2hlY2tvdXQvZm9ybS1iaWxsaW5nXCI7XG5AaW1wb3J0IFwid29vY29tbWVyY2UvY2hlY2tvdXQvZm9ybS1zaGlwcGluZ1wiO1xuQGltcG9ydCBcIndvb2NvbW1lcmNlL2NoZWNrb3V0L2Zvcm0tY2hlY2tvdXRcIjtcbkBpbXBvcnQgXCJ3b29jb21tZXJjZS9jaGVja291dC90aGFua3lvdVwiO1xuXG5AaW1wb3J0IFwiZGVidWcvZGVidWdcIjtcblxuQGluY2x1ZGUgbWF4LXNjcmVlbig3MzZweCkge1xuICBAaW1wb3J0IFwibWVkaWEvcGhvbmUvcHJlZGVmaW5lXCI7XG4gIEBpbXBvcnQgXCJtZWRpYS9waG9uZS9oZWFkZXJcIjtcbiAgQGltcG9ydCBcIm1lZGlhL2lwYWQvc3BlY2lmaWNzL3NlYXJjaGJhclwiO1xuICBAaW1wb3J0IFwibWVkaWEvcGhvbmUvcGFnZXMvbGFuZGluZ1wiO1xuICBAaW1wb3J0IFwibWVkaWEvcGhvbmUvcGFnZXMvc2VydmljZXNcIjtcbiAgQGltcG9ydCBcIm1lZGlhL3Bob25lL3BhZ2VzL3NpbmdsZS1zZXJ2aWNlXCI7XG4gIEBpbXBvcnQgXCJtZWRpYS9waG9uZS9wYWdlcy9jYXRlZ29yeS1jYXNlLXN0dWRpZXNcIjtcbiAgQGltcG9ydCBcIm1lZGlhL3Bob25lL3BhZ2VzL3NpbmdsZVwiO1xuICBAaW1wb3J0IFwibWVkaWEvcGhvbmUvcGFnZXMvYWJvdXQtdXNcIjsgfVxuXG5AaW5jbHVkZSBpcGFkKCkge1xuICBAaW1wb3J0IFwibWVkaWEvaXBhZC9wcmVkZWZpbmVcIjtcbiAgQGltcG9ydCBcIm1lZGlhL2lwYWQvaGVhZGVyXCI7XG4gIEBpbXBvcnQgXCJtZWRpYS9pcGFkL2Zvb3RlclwiO1xuICBAaW1wb3J0IFwibWVkaWEvaXBhZC9zcGVjaWZpY3Mvc2VhcmNoYmFyXCI7XG4gIEBpbXBvcnQgXCJtZWRpYS9pcGFkL3BhZ2VzL2xhbmRpbmdcIjtcbiAgQGltcG9ydCBcIm1lZGlhL2lwYWQvcGFnZXMvY2F0ZWdvcnktY2FzZS1zdHVkaWVzXCI7XG4gIEBpbXBvcnQgXCJtZWRpYS9pcGFkL3dvb2NvbW1lcmNlL2FyY2hpdmUtcHJvZHVjdFwiOyB9XG5cbmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAgIWltcG9ydGFudDtcbiAgY29sb3I6ICNmZmY7IH1cbiIsIi8vIEJvdXJib24gNC4zLjRcbi8vIGh0dHA6Ly9ib3VyYm9uLmlvXG4vLyBDb3B5cmlnaHQgMjAxMS0yMDE3IHRob3VnaHRib3QsIGluYy5cbi8vIE1JVCBMaWNlbnNlXG5cbkBpbXBvcnQgXCJzZXR0aW5ncy9kZXByZWNhdGlvbi13YXJuaW5nc1wiO1xuQGltcG9ydCBcInNldHRpbmdzL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvcHgtdG8tZW1cIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9hc3NldC1waXBlbGluZVwiO1xuXG5AaW1wb3J0IFwiYm91cmJvbi1kZXByZWNhdGVcIjtcblxuQGltcG9ydCBcImZ1bmN0aW9ucy9hc3NpZ24taW5wdXRzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zLWZhbHN5XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxlbmd0aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1saWdodFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1udW1iZXJcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtc2l6ZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1lbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1yZW1cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc2hhZGVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc3RyaXAtdW5pdHNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdGludFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdW5wYWNrXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL21vZHVsYXItc2NhbGVcIjtcblxuQGltcG9ydCBcImhlbHBlcnMvY29udmVydC11bml0c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvZGlyZWN0aW9uYWwtdmFsdWVzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9mb250LXNvdXJjZS1kZWNsYXJhdGlvblwiO1xuQGltcG9ydCBcImhlbHBlcnMvZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWFuZ2xlLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1hcmctcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmVuZGVyLWdyYWRpZW50c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvc2hhcGUtc2l6ZS1zdHJpcHBlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvc3RyLXRvLW51bVwiO1xuXG5AaW1wb3J0IFwiY3NzMy9hbmltYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL2FwcGVhcmFuY2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tmYWNlLXZpc2liaWxpdHlcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmRcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmQtaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JvcmRlci1pbWFnZVwiO1xuQGltcG9ydCBcImNzczMvY2FsY1wiO1xuQGltcG9ydCBcImNzczMvY29sdW1uc1wiO1xuQGltcG9ydCBcImNzczMvZmlsdGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9mbGV4LWJveFwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mYWNlXCI7XG5AaW1wb3J0IFwiY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJjc3MzL2hpZHBpLW1lZGlhLXF1ZXJ5XCI7XG5AaW1wb3J0IFwiY3NzMy9oeXBoZW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9pbWFnZS1yZW5kZXJpbmdcIjtcbkBpbXBvcnQgXCJjc3MzL2tleWZyYW1lc1wiO1xuQGltcG9ydCBcImNzczMvbGluZWFyLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy9wZXJzcGVjdGl2ZVwiO1xuQGltcG9ydCBcImNzczMvcGxhY2Vob2xkZXJcIjtcbkBpbXBvcnQgXCJjc3MzL3JhZGlhbC1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvc2VsZWN0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy90ZXh0LWRlY29yYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zZm9ybVwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNpdGlvblwiO1xuQGltcG9ydCBcImNzczMvdXNlci1zZWxlY3RcIjtcblxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItY29sb3JcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXJhZGl1c1wiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItc3R5bGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXdpZHRoXCI7XG5AaW1wb3J0IFwiYWRkb25zL2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvY2xlYXJmaXhcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZWxsaXBzaXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZm9udC1zdGFja3NcIjtcbkBpbXBvcnQgXCJhZGRvbnMvaGlkZS10ZXh0XCI7XG5AaW1wb3J0IFwiYWRkb25zL21hcmdpblwiO1xuQGltcG9ydCBcImFkZG9ucy9wYWRkaW5nXCI7XG5AaW1wb3J0IFwiYWRkb25zL3Bvc2l0aW9uXCI7XG5AaW1wb3J0IFwiYWRkb25zL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwiYWRkb25zL3JldGluYS1pbWFnZVwiO1xuQGltcG9ydCBcImFkZG9ucy9zaXplXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RleHQtaW5wdXRzXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RpbWluZy1mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdHJpYW5nbGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvd29yZC13cmFwXCI7XG5cbkBpbXBvcnQgXCJib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmdcIjtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEVuYWJsZSBvciBkaXNhYmxlIG91dHB1dCBvZiBCb3VyYm9u4oCZcyBkZXByZWNhdGlvbi1yZWxhdGVkIFNhc3Mgd2FybmluZ3MuXG4vLy8gVGhpcyB2YXJpYWJsZSBtdXN0IGJlIGRlY2xhcmVkIF9iZWZvcmVfIGltcG9ydGluZyBCb3VyYm9uLlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuXG4kb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IHRydWUgIWRlZmF1bHQ7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHbG9iYWwgdmFyaWFibGVzIHRvIGVuYWJsZSBvciBkaXNhYmxlIHZlbmRvciBwcmVmaXhlc1xuXG4kcHJlZml4LWZvci13ZWJraXQ6ICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1tb3ppbGxhOiAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1taWNyb3NvZnQ6IHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1vcGVyYTogICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1zcGVjOiAgICAgIHRydWUgIWRlZmF1bHQ7XG4iLCIkZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEEgZ2xvYmFsIHNldHRpbmcgdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIGAkYXNzZXQtcGlwZWxpbmVgIHZhcmlhYmxlIGZvciBhbGwgZnVuY3Rpb25zIHRoYXQgYWNjZXB0IGl0LlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuXG4kYXNzZXQtcGlwZWxpbmU6IGZhbHNlICFkZWZhdWx0O1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gVGhyb3dzIFNhc3Mgd2FybmluZ3MgdG8gYW5ub3VuY2UgbGlicmFyeSBkZXByZWNhdGlvbnMuIFlvdSBjYW4gZGlzYWJsZSB0aGVtXG4vLy8gYnkgc2V0dGluZyB0aGUgYCRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nc2AgdmFyaWFibGUgdG8gYGZhbHNlYC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuXG5AbWl4aW4gX2JvdXJib24tZGVwcmVjYXRlKCRmZWF0dXJlLCAkbWVzc2FnZTogbnVsbCkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYCN7JGZlYXR1cmV9YCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICAgIFwicmVtb3ZlZCBpbiA1LjAuMC4gI3skbWVzc2FnZX1cIjtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoJGZlYXR1cmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlKCRmZWF0dXJlLCBcIldlIHN1Z2dlc3QgdXNpbmcgYW4gYXV0b21hdGVkIFwiICtcbiAgICBcInByZWZpeGluZyB0b29sLCBsaWtlIEF1dG9wcmVmaXhlci5cIik7XG59XG4iLCJAZnVuY3Rpb24gYXNzaWduLWlucHV0cygkaW5wdXRzLCAkcHNldWRvOiBudWxsKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgYXNzaWduLWlucHV0c2AgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJGxpc3Q6ICgpO1xuXG4gIEBlYWNoICRpbnB1dCBpbiAkaW5wdXRzIHtcbiAgICAkaW5wdXQ6IHVucXVvdGUoJGlucHV0KTtcbiAgICAkaW5wdXQ6IGlmKCRwc2V1ZG8sICRpbnB1dCArIFwiOlwiICsgJHBzZXVkbywgJGlucHV0KTtcbiAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkaW5wdXQsIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxpc3Q7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgaWYgYSBsaXN0IGNvbnRhaW5zIGEgdmFsdWUocykuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3Rcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWx1ZXNcbi8vLyAgIEEgc2luZ2xlIHZhbHVlIG9yIGxpc3Qgb2YgdmFsdWVzIHRvIGNoZWNrIGZvci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgY29udGFpbnMoJGxpc3QsICR2YWx1ZSlcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBjb250YWlucygkbGlzdCwgJHZhbHVlcy4uLikge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGNvbnRhaW5zYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlcyB7XG4gICAgQGlmIHR5cGUtb2YoaW5kZXgoJGxpc3QsICR2YWx1ZSkpICE9IFwibnVtYmVyXCIge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgaWYgYSBsaXN0IGRvZXMgbm90IGNvbnRhaW5zIGEgdmFsdWUuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3Rcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gY29udGFpbnMtZmFsc3koJGxpc3QpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBjb250YWlucy1mYWxzeWAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xuICAgIEBpZiBub3QgJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gZmFsc2U7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIGxlbmd0aC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcblxuQGZ1bmN0aW9uIGlzLWxlbmd0aCgkdmFsdWUpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBpcy1sZW5ndGhgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIEByZXR1cm4gdHlwZS1vZigkdmFsdWUpICE9IFwibnVsbFwiIGFuZCAoc3RyLXNsaWNlKCR2YWx1ZSArIFwiXCIsIDEsIDQpID09IFwiY2FsY1wiXG4gICAgICAgb3IgaW5kZXgoYXV0byBpbmhlcml0IGluaXRpYWwgMCwgJHZhbHVlKVxuICAgICAgIG9yICh0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiBhbmQgbm90KHVuaXRsZXNzKCR2YWx1ZSkpKSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm9ncmFtYXRpY2FsbHkgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgY29sb3IgaXMgbGlnaHQgb3IgZGFyay5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9yb2JvdHMudGhvdWdodGJvdC5jb20vY2xvc2VyLWxvb2stY29sb3ItbGlnaHRuZXNzXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yIChIZXgpfSAkY29sb3Jcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgaXMtbGlnaHQoJGNvbG9yKVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGlzLWxpZ2h0KCRoZXgtY29sb3IpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBpcy1saWdodGAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJC1sb2NhbC1yZWQ6IHJlZChyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1ncmVlbjogZ3JlZW4ocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtYmx1ZTogYmx1ZShyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1saWdodG5lc3M6ICgkLWxvY2FsLXJlZCAqIDAuMjEyNiArICQtbG9jYWwtZ3JlZW4gKiAwLjcxNTIgKyAkLWxvY2FsLWJsdWUgKiAwLjA3MjIpIC8gMjU1O1xuXG4gIEByZXR1cm4gJC1sb2NhbC1saWdodG5lc3MgPiAwLjY7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgbnVtYmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xuXG5AZnVuY3Rpb24gaXMtbnVtYmVyKCR2YWx1ZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGlzLW51bWJlcmAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQHJldHVybiBjb250YWlucyhcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIiAwIDEgMiAzIDQgNSA2IDcgOCA5LCAkdmFsdWUpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBzaXplLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXG5cbkBmdW5jdGlvbiBpcy1zaXplKCR2YWx1ZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGlzLXNpemVgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gaXMtbGVuZ3RoKCR2YWx1ZSlcbiAgICAgICAgICBvciBjb250YWlucyhcImZpbGxcIiBcImZpdC1jb250ZW50XCIgXCJtaW4tY29udGVudFwiIFwibWF4LWNvbnRlbnRcIiwgJHZhbHVlKTtcblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSBlbSgxMikgd2hlbiB0aGUgcGFyZW50IGlzIDE2cHhcbi8vIGlmIHRoZSBwYXJlbnQgaXMgYW5vdGhlciB2YWx1ZSBzYXkgMjRweCB3cml0ZSBlbSgxMiwgMjQpXG5cbkBmdW5jdGlvbiBlbSgkcHh2YWwsICRiYXNlOiAkZW0tYmFzZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGVtYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFlbTtcbn1cbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIHJlbXNcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgcmVtKDEyKVxuLy8gQXNzdW1lcyAkZW0tYmFzZSBpcyB0aGUgZm9udC1zaXplIG9mIDxodG1sPlxuXG5AZnVuY3Rpb24gcmVtKCRweHZhbCkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYHJlbWAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gIH1cblxuICAkYmFzZTogJGVtLWJhc2U7XG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMXJlbTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCBibGFjay5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxuLy8vICAgVGhlIGFtb3VudCBvZiBibGFjayB0byBiZSBtaXhlZCBpbi5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgjZmZiYjUyLCA2MCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjY0YTIwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJldHVybiB7Q29sb3J9XG5cbkBmdW5jdGlvbiBzaGFkZSgkY29sb3IsICRwZXJjZW50KSB7XG4gIEByZXR1cm4gbWl4KCMwMDAsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU3RyaXBzIHRoZSB1bml0IGZyb20gYSBudW1iZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoV2l0aCBVbml0KX0gJHZhbHVlXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICRkaW1lbnNpb246IHN0cmlwLXVuaXRzKDEwZW0pO1xuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgJGRpbWVuc2lvbjogMTA7XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXIgKFVuaXRsZXNzKX1cblxuQGZ1bmN0aW9uIHN0cmlwLXVuaXRzKCR2YWx1ZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYHN0cmlwLXVuaXRzYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAgYW5kIHJlcGxhY2VkIGJ5IHRoZSBgc3RyaXAtdW5pdGAgZnVuY3Rpb24uXCI7XG4gIH1cblxuICBAcmV0dXJuICgkdmFsdWUgLyAoJHZhbHVlICogMCArIDEpKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCB3aGl0ZS5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxuLy8vICAgVGhlIGFtb3VudCBvZiB3aGl0ZSB0byBiZSBtaXhlZCBpbi5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCM2ZWNhYTYsIDQwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNhOGRmYzk7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmV0dXJuIHtDb2xvcn1cblxuQGZ1bmN0aW9uIHRpbnQoJGNvbG9yLCAkcGVyY2VudCkge1xuICBAcmV0dXJuIG1peCgjZmZmLCAkY29sb3IsICRwZXJjZW50KTtcbn1cbiIsIi8vIFJldHVybiB2ZW5kb3ItcHJlZml4ZWQgcHJvcGVydHkgbmFtZXMgaWYgYXBwcm9wcmlhdGVcbi8vIEV4YW1wbGU6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoKHRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmQpLCBtb3opIC0+IC1tb3otdHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BzLCAkdmVuZG9yOiBmYWxzZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXNgIGlzIGRlcHJlY2F0ZWQgXCIgK1xuICAgIFwiYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gICRuZXctcHJvcHM6ICgpO1xuXG4gIEBlYWNoICRwcm9wIGluICRwcm9wcyB7XG4gICAgJG5ldy1wcm9wczogYXBwZW5kKCRuZXctcHJvcHMsIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvciksIGNvbW1hKTtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gJG5ldy1wcm9wcztcbn1cblxuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvcjogZmFsc2UpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVgIGlzIGRlcHJlY2F0ZWQgXCIgK1xuICAgIFwiYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIC8vIHB1dCBvdGhlciBwcm9wZXJ0aWVzIHRoYXQgbmVlZCB0byBiZSBwcmVmaXhlZCBoZXJlIGFzd2VsbFxuICBAaWYgJHZlbmRvciBhbmQgJHByb3AgPT0gdHJhbnNmb3JtIHtcbiAgICBAcmV0dXJuIHVucXVvdGUoJy0nKyR2ZW5kb3IrJy0nKyRwcm9wKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkcHJvcDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ29udmVydHMgc2hvcnRoYW5kIHRvIHRoZSA0LXZhbHVlIHN5bnRheC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNob3J0aGFuZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbjogdW5wYWNrKDFlbSAyZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW46IDFlbSAyZW0gMWVtIDJlbTtcbi8vLyAgIH1cblxuQGZ1bmN0aW9uIHVucGFjaygkc2hvcnRoYW5kKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgdW5wYWNrYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDEge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAyIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMyB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAzKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJHNob3J0aGFuZDtcbiAgfVxufVxuIiwiLy8gU2NhbGluZyBWYXJpYWJsZXNcbiRnb2xkZW46ICAgICAgICAgICAxLjYxODtcbiRtaW5vci1zZWNvbmQ6ICAgICAxLjA2NztcbiRtYWpvci1zZWNvbmQ6ICAgICAxLjEyNTtcbiRtaW5vci10aGlyZDogICAgICAxLjI7XG4kbWFqb3ItdGhpcmQ6ICAgICAgMS4yNTtcbiRwZXJmZWN0LWZvdXJ0aDogICAxLjMzMztcbiRhdWdtZW50ZWQtZm91cnRoOiAxLjQxNDtcbiRwZXJmZWN0LWZpZnRoOiAgICAxLjU7XG4kbWlub3Itc2l4dGg6ICAgICAgMS42O1xuJG1ham9yLXNpeHRoOiAgICAgIDEuNjY3O1xuJG1pbm9yLXNldmVudGg6ICAgIDEuNzc4O1xuJG1ham9yLXNldmVudGg6ICAgIDEuODc1O1xuJG9jdGF2ZTogICAgICAgICAgIDI7XG4kbWFqb3ItdGVudGg6ICAgICAgMi41O1xuJG1ham9yLWVsZXZlbnRoOiAgIDIuNjY3O1xuJG1ham9yLXR3ZWxmdGg6ICAgIDM7XG4kZG91YmxlLW9jdGF2ZTogICAgNDtcblxuJHVzZXItb3V0cHV0LWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2U7XG5cbiRtb2R1bGFyLXNjYWxlLXJhdGlvOiAkcGVyZmVjdC1mb3VydGggIWRlZmF1bHQ7XG4kbW9kdWxhci1zY2FsZS1iYXNlOiBlbSgkZW0tYmFzZSkgIWRlZmF1bHQ7XG5cbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItb3V0cHV0LWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc7XG5cbkBmdW5jdGlvbiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZTogJG1vZHVsYXItc2NhbGUtYmFzZSwgJHJhdGlvOiAkbW9kdWxhci1zY2FsZS1yYXRpbykge1xuICAkdjE6IG50aCgkdmFsdWUsIDEpO1xuICAkdjI6IG50aCgkdmFsdWUsIGxlbmd0aCgkdmFsdWUpKTtcbiAgJHZhbHVlOiAkdjE7XG5cbiAgLy8gc2NhbGUgJHYyIHRvIGp1c3QgYWJvdmUgJHYxXG4gIEB3aGlsZSAkdjIgPiAkdjEge1xuICAgICR2MjogKCR2MiAvICRyYXRpbyk7IC8vIHdpbGwgYmUgb2ZmLWJ5LTFcbiAgfVxuICBAd2hpbGUgJHYyIDwgJHYxIHtcbiAgICAkdjI6ICgkdjIgKiAkcmF0aW8pOyAvLyB3aWxsIGZpeCBvZmYtYnktMVxuICB9XG5cbiAgLy8gY2hlY2sgQUZURVIgc2NhbGluZyAkdjIgdG8gcHJldmVudCBkb3VibGUtY291bnRpbmcgY29ybmVyLWNhc2VcbiAgJGRvdWJsZS1zdHJhbmRlZDogJHYyID4gJHYxO1xuXG4gIEBpZiAkaW5jcmVtZW50ID4gMCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkaW5jcmVtZW50IHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxICogJHJhdGlvKSA+ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgKiAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAqICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkaW5jcmVtZW50IDwgMCB7XG4gICAgLy8gYWRqdXN0ICR2MiB0byBqdXN0IGJlbG93ICR2MVxuICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIHtcbiAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XG4gICAgfVxuXG4gICAgQGZvciAkaSBmcm9tICRpbmNyZW1lbnQgdGhyb3VnaCAtMSB7XG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAvICRyYXRpbykgPCAkdjIge1xuICAgICAgICAkdmFsdWU6ICR2MjtcbiAgICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdjE6ICgkdjEgLyAkcmF0aW8pO1xuICAgICAgICAkdmFsdWU6ICR2MTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEhlbHBlciBmdW5jdGlvbiBmb3Igc3RyLXRvLW51bSBmbi5cbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiBfY29udmVydC11bml0cygkbnVtYmVyLCAkdW5pdCkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9jb252ZXJ0LXVuaXRzYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIFwiICtcbiAgICBcImJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkc3RyaW5nczogXCJweFwiLCBcImNtXCIsIFwibW1cIiwgXCIlXCIsIFwiY2hcIiwgXCJwaWNhXCIsIFwiaW5cIiwgXCJlbVwiLCBcInJlbVwiLCBcInB0XCIsIFwicGNcIiwgXCJleFwiLCBcInZ3XCIsIFwidmhcIiwgXCJ2bWluXCIsIFwidm1heFwiLCBcImRlZ1wiLCBcInJhZFwiLCBcImdyYWRcIiwgXCJ0dXJuXCI7XG4gICR1bml0czogICAxcHgsIDFjbSwgMW1tLCAxJSwgMWNoLCAxcGljYSwgMWluLCAxZW0sIDFyZW0sIDFwdCwgMXBjLCAxZXgsIDF2dywgMXZoLCAxdm1pbiwgMXZtYXgsIDFkZWcsIDFyYWQsIDFncmFkLCAxdHVybjtcbiAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJHVuaXQpO1xuXG4gIEBpZiBub3QgJGluZGV4IHtcbiAgICBAd2FybiBcIlVua25vd24gdW5pdCBgI3skdW5pdH1gLlwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkbnVtYmVyKSAhPSBcIm51bWJlclwiIHtcbiAgICBAd2FybiBcImAjeyRudW1iZXJ9IGlzIG5vdCBhIG51bWJlcmBcIjtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQHJldHVybiAkbnVtYmVyICogbnRoKCR1bml0cywgJGluZGV4KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERpcmVjdGlvbmFsLXByb3BlcnR5IG1peGlucyBhcmUgc2hvcnRoYW5kcyBmb3Igd3JpdGluZyBwcm9wZXJ0aWVzIGxpa2UgdGhlIGZvbGxvd2luZ1xuLy8vXG4vLy8gQGlnbm9yZSBZb3UgY2FuIGFsc28gdXNlIGBmYWxzZWAgaW5zdGVhZCBvZiBgbnVsbGAuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGRpcmVjdGlvbmFsIHZhbHVlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkb3R0ZWQgbnVsbCk7XG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDAgMTBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IGRvdHRlZDtcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZG90dGVkO1xuLy8vICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuLy8vICAgICBtYXJnaW4tbGVmdDogMDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH1cblxuQGZ1bmN0aW9uIGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGNvbGxhcHNlLWRpcmVjdGlvbmFsc2AgaXMgZGVwcmVjYXRlZCBhbmQgXCIgK1xuICAgIFwid2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJG91dHB1dDogbnVsbDtcblxuICAkYTogbnRoKCR2YWxzLCAxKTtcbiAgJGI6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCAyKSk7XG4gICRjOiBpZihsZW5ndGgoJHZhbHMpIDwgMywgJGEsIG50aCgkdmFscywgMykpO1xuICAkZDogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIGlmKGxlbmd0aCgkdmFscykgPCA0LCAyLCA0KSkpO1xuXG4gIEBpZiAkYSA9PSAwIHsgJGE6IDA7IH1cbiAgQGlmICRiID09IDAgeyAkYjogMDsgfVxuICBAaWYgJGMgPT0gMCB7ICRjOiAwOyB9XG4gIEBpZiAkZCA9PSAwIHsgJGQ6IDA7IH1cblxuICBAaWYgJGEgPT0gJGIgYW5kICRhID09ICRjIGFuZCAkYSA9PSAkZCB7ICRvdXRwdXQ6ICRhOyAgICAgICAgICB9XG4gIEBlbHNlIGlmICRhID09ICRjIGFuZCAkYiA9PSAkZCAgICAgICAgIHsgJG91dHB1dDogJGEgJGI7ICAgICAgIH1cbiAgQGVsc2UgaWYgJGIgPT0gJGQgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYzsgICAgfVxuICBAZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjICRkOyB9XG5cbiAgQHJldHVybiAkb3V0cHV0O1xufVxuXG4vLy8gT3V0cHV0IGRpcmVjdGlvbmFsIHByb3BlcnRpZXMsIGZvciBpbnN0YW5jZSBgbWFyZ2luYC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcmVcbi8vLyAgIFByZWZpeCB0byB1c2Vcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN1ZlxuLy8vICAgU3VmZml4IHRvIHVzZVxuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgdmFsdWVzXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbGxhcHNlLWRpcmVjdGlvbmFsc1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnMtZmFsc3lcblxuQG1peGluIGRpcmVjdGlvbmFsLXByb3BlcnR5KCRwcmUsICRzdWYsICR2YWxzKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZShcImRpcmVjdGlvbmFsLXByb3BlcnR5XCIpO1xuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gIC8vIFByb3BlcnR5IE5hbWVzXG4gICR0b3A6ICAgICRwcmUgKyBcIi10b3BcIiAgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRib3R0b206ICRwcmUgKyBcIi1ib3R0b21cIiArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRsZWZ0OiAgICRwcmUgKyBcIi1sZWZ0XCIgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRyaWdodDogICRwcmUgKyBcIi1yaWdodFwiICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRhbGw6ICAgICRwcmUgKyAgICAgICAgICAgICBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuXG4gICR2YWxzOiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpO1xuXG4gIEBpZiBjb250YWlucy1mYWxzeSgkdmFscykge1xuICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skdG9wfTogbnRoKCR2YWxzLCAxKTsgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMSB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAxKTsgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRyaWdodH06IG50aCgkdmFscywgMik7IH1cbiAgICB9XG5cbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAyIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAxKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDMge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gNCB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDQpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCA0KTsgfVxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgI3skYWxsfTogJHZhbHM7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIi8vIFVzZWQgZm9yIGNyZWF0aW5nIHRoZSBzb3VyY2Ugc3RyaW5nIGZvciBmb250cyB1c2luZyBAZm9udC1mYWNlXG4vLyBSZWZlcmVuY2U6IGh0dHA6Ly9nb28uZ2wvUnUxYktQXG5cbkBmdW5jdGlvbiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBmb250LXVybC1wcmVmaXhlcmAgaXMgZGVwcmVjYXRlZCBhbmQgXCIgK1xuICAgIFwid2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcbiAgICBAcmV0dXJuIGZvbnQtdXJsO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIHVybDtcbiAgfVxufVxuXG5AZnVuY3Rpb24gZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJGFzc2V0LXBpcGVsaW5lLFxuICAkZmlsZS1mb3JtYXRzLFxuICAkZm9udC11cmwpIHtcblxuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGZvbnQtc291cmNlLWRlY2xhcmF0aW9uYCBpcyBkZXByZWNhdGVkIFwiICtcbiAgICBcImFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkc3JjOiAoKTtcblxuICAkZm9ybWF0cy1tYXA6IChcbiAgICBlb3Q6ICAgXCIjeyRmaWxlLXBhdGh9LmVvdD8jaWVmaXhcIiBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSxcbiAgICB3b2ZmMjogXCIjeyRmaWxlLXBhdGh9LndvZmYyXCIgZm9ybWF0KFwid29mZjJcIiksXG4gICAgd29mZjogIFwiI3skZmlsZS1wYXRofS53b2ZmXCIgZm9ybWF0KFwid29mZlwiKSxcbiAgICB0dGY6ICAgXCIjeyRmaWxlLXBhdGh9LnR0ZlwiIGZvcm1hdChcInRydWV0eXBlXCIpLFxuICAgIHN2ZzogICBcIiN7JGZpbGUtcGF0aH0uc3ZnIyN7JGZvbnQtZmFtaWx5fVwiIGZvcm1hdChcInN2Z1wiKVxuICApO1xuXG4gIEBlYWNoICRrZXksICR2YWx1ZXMgaW4gJGZvcm1hdHMtbWFwIHtcbiAgICBAaWYgY29udGFpbnMoJGZpbGUtZm9ybWF0cywgJGtleSkge1xuICAgICAgJGZpbGUtcGF0aDogbnRoKCR2YWx1ZXMsIDEpO1xuICAgICAgJGZvbnQtZm9ybWF0OiBudGgoJHZhbHVlcywgMik7XG5cbiAgICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCBmb250LXVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHNyYztcbn1cbiIsIkBmdW5jdGlvbiBfZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtdHlwZSwgJGdyYWRpZW50LXBvc2l0aW9ucykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICBAaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xuICBhbmQgKCRncmFkaWVudC10eXBlID09IGxpbmVhcilcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xuICB9XG4gIEBlbHNlIGlmICRncmFkaWVudC1wb3NpdGlvbnNcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwpXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gJGdyYWRpZW50LXBvc2l0aW9ucztcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfbGluZWFyLWFuZ2xlLXBhcnNlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJG9mZnNldDogbnVsbDtcbiAgJHVuaXQtc2hvcnQ6ICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDIsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAkdW5pdC1sb25nOiAgIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG5cbiAgQGlmICgkdW5pdC1sb25nID09IFwiZ3JhZFwiKSBvclxuICAgICAgKCR1bml0LWxvbmcgPT0gXCJ0dXJuXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1sb25nID09IFwiZ3JhZFwiLCAtMTAwZ3JhZCAqIDMsIC0wLjc1dHVybik7XG4gIH1cblxuICBAZWxzZSBpZiAoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIikgb3JcbiAgICAgICAgICAgKCR1bml0LXNob3J0ID09IFwicmFkXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1zaG9ydCA9PSBcImRlZ1wiLCAtOTAgKiAzLCAxLjZyYWQpO1xuICB9XG5cbiAgQGlmICRvZmZzZXQge1xuICAgICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgICAkbnVtOiBfc3RyLXRvLW51bSgkZmlyc3QtdmFsKTtcblxuICAgICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICgkb2Zmc2V0IC0gJG51bSkgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9saW5lYXItZ3JhZGllbnQtcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcbiAgJGdyYWRpZW50czogKCk7XG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcblxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAxLCAkc3RhcnQpO1xuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xuXG4gICRoYXMtbXVsdGlwbGUtdmFsczogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiIFwiKTtcbiAgJGhhcy1zaW5nbGUtcG9zaXRpb246IHVucXVvdGUoX3Bvc2l0aW9uLWZsaXBwZXIoJGZpcnN0LXZhbCkgKyBcIlwiKTtcbiAgJGhhcy1hbmdsZTogaXMtbnVtYmVyKHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAxKSk7XG5cbiAgQGlmICRoYXMtbXVsdGlwbGUtdmFscyB7XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1zaW5nbGUtcG9zaXRpb24gIT0gXCJcIiB7XG4gICAgJHBvczogdW5xdW90ZSgkaGFzLXNpbmdsZS1wb3NpdGlvbiArIFwiXCIpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1hbmdsZSB7XG4gICAgLy8gUm90YXRlIGRlZ3JlZSBmb3Igd2Via2l0XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9saW5lYXItcG9zaXRpb25zLXBhcnNlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgJHR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcbiAgJHNwZWM6IG51bGw7XG4gICRkZWdyZWU6IG51bGw7XG4gICRzaWRlOiBudWxsO1xuICAkY29ybmVyOiBudWxsO1xuICAkbGVuZ3RoOiBsZW5ndGgoJHBvcyk7XG4gIC8vIFBhcnNlIFNpZGUgYW5kIGNvcm5lciBwb3NpdGlvbnNcbiAgQGlmICgkbGVuZ3RoID4gMSkge1xuICAgIEBpZiBudGgoJHBvcywgMSkgPT0gXCJ0b1wiIHsgLy8gTmV3ZXIgc3ludGF4XG4gICAgICAkc2lkZTogbnRoKCRwb3MsIDIpO1xuXG4gICAgICBAaWYgJGxlbmd0aCA9PSAyIHsgLy8gZWcuIHRvIHRvcFxuICAgICAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAzIHsgLy8gZWcuIHRvIHRvcCBsZWZ0XG4gICAgICAgICRjb3JuZXI6IG50aCgkcG9zLCAzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAyIHsgLy8gT2xkZXIgc3ludGF4IChcInRvcCBsZWZ0XCIpXG4gICAgICAkc2lkZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDEpKTtcbiAgICAgICRjb3JuZXI6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XG4gICAgfVxuXG4gICAgQGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCBsZWZ0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCByaWdodFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gcmlnaHRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gbGVmdFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgICRzcGVjOiB0byAkc2lkZSAkY29ybmVyO1xuICB9XG4gIEBlbHNlIGlmICRsZW5ndGggPT0gMSB7XG4gICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICBAaWYgJHR5cGUgPT0gc3RyaW5nIHtcbiAgICAgICRkZWdyZWU6ICRwb3M7XG4gICAgICAkc3BlYzogdG8gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRkZWdyZWU6IC0yNzAgLSAkcG9zOyAvL3JvdGF0ZSB0aGUgZ3JhZGllbnQgb3Bwb3NpdGUgZnJvbSBzcGVjXG4gICAgICAkc3BlYzogJHBvcztcbiAgICB9XG4gIH1cbiAgJGRlZ3JlZTogdW5xdW90ZSgkZGVncmVlICsgXCIsXCIpO1xuICAkc3BlYzogICB1bnF1b3RlKCRzcGVjICsgXCIsXCIpO1xuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gJGRlZ3JlZSAkc3BlYztcbn1cblxuQGZ1bmN0aW9uIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfcG9zaXRpb24tZmxpcHBlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQHJldHVybiBpZigkcG9zID09IGxlZnQsIHJpZ2h0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSByaWdodCwgbGVmdCwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gdG9wLCBib3R0b20sIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IGJvdHRvbSwgdG9wLCBudWxsKTtcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAkdmFsLTE6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaGFzLW11bHRpcGxlLXZhbHMgLSAxKTtcbiAgJHZhbC0yOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGhhcy1tdWx0aXBsZS12YWxzICsgMSwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR2YWwtMzogbnVsbDtcbiAgJGhhcy12YWwtMzogc3RyLWluZGV4KCR2YWwtMiwgXCIgXCIpO1xuXG4gIEBpZiAkaGFzLXZhbC0zIHtcbiAgICAkdmFsLTM6IHN0ci1zbGljZSgkdmFsLTIsICRoYXMtdmFsLTMgKyAxLCBzdHItbGVuZ3RoKCR2YWwtMikpO1xuICAgICR2YWwtMjogc3RyLXNsaWNlKCR2YWwtMiwgMSwgJGhhcy12YWwtMyAtIDEpO1xuICB9XG5cbiAgJHBvczogX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0xKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTIpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMyk7XG4gICRwb3M6IHVucXVvdGUoJHBvcyArIFwiXCIpO1xuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIC8vIFVzZSBvbGQgc3BlYyBmb3Igd2Via2l0XG4gIEBpZiAkdmFsLTEgPT0gXCJ0b1wiIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgLy8gQnJpbmcgdGhlIGNvZGUgdXAgdG8gc3BlY1xuICBAZWxzZSB7XG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX3JhZGlhbC1hcmctcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAZWFjaCAkdmFsdWUgaW4gJGcxLCAkZzIge1xuICAgICRmaXJzdC12YWw6IG50aCgkdmFsdWUsIDEpO1xuICAgICRwb3MtdHlwZTogIHR5cGUtb2YoJGZpcnN0LXZhbCk7XG4gICAgJHNwZWMtYXQtaW5kZXg6IG51bGw7XG5cbiAgICAvLyBEZXRlcm1pbmUgaWYgc3BlYyB3YXMgcGFzc2VkIHRvIG1peGluXG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBsaXN0IHtcbiAgICAgICRzcGVjLWF0LWluZGV4OiBpZihpbmRleCgkdmFsdWUsIGF0KSwgaW5kZXgoJHZhbHVlLCBhdCksIGZhbHNlKTtcbiAgICB9XG4gICAgQGlmICRzcGVjLWF0LWluZGV4IHtcbiAgICAgIEBpZiAkc3BlYy1hdC1pbmRleCA+IDEge1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICgkc3BlYy1hdC1pbmRleCAtIDEpIHtcbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHNoYXBlLXNpemUgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHNwZWMtYXQtaW5kZXggPT0gMSB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJGcxOiBudWxsO1xuICAgIH1cblxuICAgIC8vIElmIG5vdCBzcGVjIGNhbGN1bGF0ZSBjb3JyZWN0IHZhbHVlc1xuICAgIEBlbHNlIHtcbiAgICAgIEBpZiAoJHBvcy10eXBlICE9IGNvbG9yKSBvciAoJGZpcnN0LXZhbCAhPSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAgICAgQGlmICgkcG9zLXR5cGUgPT0gbnVtYmVyKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNlbnRlclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInRvcFwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInJpZ2h0XCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiYm90dG9tXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwibGVmdFwiKSB7XG5cbiAgICAgICAgICAkcG9zOiAkdmFsdWU7XG5cbiAgICAgICAgICBAaWYgJHBvcyA9PSAkZzEge1xuICAgICAgICAgICAgJGcxOiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIGlmXG4gICAgICAgICAgICgkZmlyc3QtdmFsID09IFwiZWxsaXBzZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNpcmNsZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3Qtc2lkZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3QtY29ybmVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3Qtc2lkZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LWNvcm5lclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvbnRhaW5cIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb3ZlclwiKSB7XG5cbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHZhbHVlO1xuXG4gICAgICAgICAgQGlmICR2YWx1ZSA9PSAkZzEge1xuICAgICAgICAgICAgJGcxOiBudWxsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBlbHNlIGlmICR2YWx1ZSA9PSAkZzIge1xuICAgICAgICAgICAgJGcyOiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAcmV0dXJuICRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZTtcbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvcykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgJHNoYXBlLXNpemU6IG50aCgkZ3JhZGllbnQtcG9zLCAxKTtcbiAgJHBvczogICAgICAgIG50aCgkZ3JhZGllbnQtcG9zLCAyKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gICRwcmUtc3BlYzogdW5xdW90ZShpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKSlcbiAgICAgICAgICAgICB1bnF1b3RlKGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LFwiLCBudWxsKSk7XG4gICRwb3Mtc3BlYzogaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuXG4gICRzcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skcG9zLXNwZWN9XCI7XG5cbiAgLy8gQWRkIGNvbW1hXG4gIEBpZiAoJHNwZWMgIT0gXCIgIFwiKSB7XG4gICAgJHNwZWM6IFwiI3skc3BlY30sXCI7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcblxuICBAcmV0dXJuICRwcmUtc3BlYyAkc3BlYztcbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XG4gICRncmFkaWVudHM6ICgpO1xuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XG5cbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMSwgJHN0YXJ0KTtcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcblxuICAkaXMtc3BlYy1zeW50YXg6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcImF0XCIpO1xuXG4gIEBpZiAkaXMtc3BlYy1zeW50YXggYW5kICRpcy1zcGVjLXN5bnRheCA+IDEge1xuICAgICRrZXl3b3JkOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGlzLXNwZWMtc3ludGF4IC0gMik7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAgICRwb3M6IGFwcGVuZCgkcG9zLCAka2V5d29yZCwgY29tbWEpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaXMtc3BlYy1zeW50YXggPT0gMSB7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiBzdHItaW5kZXgoJGltYWdlLCBcImNvdmVyXCIpIG9yIHN0ci1pbmRleCgkaW1hZ2UsIFwiY29udGFpblwiKSB7XG4gICAgQHdhcm4gXCJSYWRpYWwtZ3JhZGllbnQgbmVlZHMgdG8gYmUgdXBkYXRlZCB0byBjb25mb3JtIHRvIGxhdGVzdCBzcGVjLlwiO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiBudWxsLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsIi8vIFVzZXIgZm9yIGxpbmVhciBhbmQgcmFkaWFsIGdyYWRpZW50cyB3aXRoaW4gYmFja2dyb3VuZC1pbWFnZSBvciBib3JkZXItaW1hZ2UgcHJvcGVydGllc1xuXG5AZnVuY3Rpb24gX3JlbmRlci1ncmFkaWVudHMoJGdyYWRpZW50LXBvc2l0aW9ucywgJGdyYWRpZW50cywgJGdyYWRpZW50LXR5cGUsICR2ZW5kb3I6IGZhbHNlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX3JlbmRlci1ncmFkaWVudHNgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICRwcmUtc3BlYzogbnVsbDtcbiAgJHNwZWM6IG51bGw7XG4gICR2ZW5kb3ItZ3JhZGllbnRzOiBudWxsO1xuICBAaWYgJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyIHtcbiAgICBAaWYgJGdyYWRpZW50LXBvc2l0aW9ucyB7XG4gICAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwge1xuICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xuICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgQGlmICR2ZW5kb3Ige1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiAtI3skdmVuZG9yfS0jeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRwcmUtc3BlY30gJGdyYWRpZW50cyk7XG4gIH1cbiAgQGVsc2UgaWYgJHZlbmRvciA9PSBmYWxzZSB7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IFwiI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skc3BlY30gI3skZ3JhZGllbnRzfSlcIjtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogdW5xdW90ZSgkdmVuZG9yLWdyYWRpZW50cyk7XG4gIH1cbiAgQHJldHVybiAkdmVuZG9yLWdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9zaGFwZS1zaXplLXN0cmlwcGVyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkc2hhcGUtc2l6ZS1zcGVjOiBudWxsO1xuICBAZWFjaCAkdmFsdWUgaW4gJHNoYXBlLXNpemUge1xuICAgIEBpZiAoJHZhbHVlID09IFwiY292ZXJcIikgb3IgKCR2YWx1ZSA9PSBcImNvbnRhaW5cIikge1xuICAgICAgJHZhbHVlOiBudWxsO1xuICAgIH1cbiAgICAkc2hhcGUtc2l6ZS1zcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skdmFsdWV9XCI7XG4gIH1cbiAgQHJldHVybiAkc2hhcGUtc2l6ZS1zcGVjO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBsaW5lYXIvcmFkaWFsLWdyYWRpZW50LXBhcnNlcnMuXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gX3N0ci10by1udW0oJHN0cmluZykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9zdHItdG8tbnVtYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAvLyBNYXRyaWNlc1xuICAkc3RyaW5nczogXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCI7XG4gICRudW1iZXJzOiAgMCAgIDEgICAyICAgMyAgIDQgICA1ICAgNiAgIDcgICA4ICAgOTtcblxuICAvLyBSZXN1bHRcbiAgJHJlc3VsdDogMDtcbiAgJGRpdmlkZXI6IDA7XG4gICRtaW51czogZmFsc2U7XG5cbiAgLy8gTG9vcGluZyB0aHJvdWdoIGFsbCBjaGFyYWN0ZXJzXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkc3RyaW5nKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCRzdHJpbmcsICRpLCAkaSk7XG4gICAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJGNoYXJhY3Rlcik7XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSBcIi1cIiB7XG4gICAgICAkbWludXM6IHRydWU7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJGNoYXJhY3RlciA9PSBcIi5cIiB7XG4gICAgICAkZGl2aWRlcjogMTtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgbm90ICRpbmRleCB7XG4gICAgICAgICRyZXN1bHQ6IGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcbiAgICAgICAgQHJldHVybiBfY29udmVydC11bml0cygkcmVzdWx0LCBzdHItc2xpY2UoJHN0cmluZywgJGkpKTtcbiAgICAgIH1cblxuICAgICAgJG51bWJlcjogbnRoKCRudW1iZXJzLCAkaW5kZXgpO1xuXG4gICAgICBAaWYgJGRpdmlkZXIgPT0gMCB7XG4gICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMDtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAvLyBNb3ZlIHRoZSBkZWNpbWFsIGRvdCB0byB0aGUgbGVmdFxuICAgICAgICAkZGl2aWRlcjogJGRpdmlkZXIgKiAxMDtcbiAgICAgICAgJG51bWJlcjogJG51bWJlciAvICRkaXZpZGVyO1xuICAgICAgfVxuXG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgJG51bWJlcjtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG59XG4iLCIvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWFuaW1hdGlvbnMvI3RoZS1hbmltYXRpb24tbmFtZS1wcm9wZXJ0eS1cbi8vIEVhY2ggb2YgdGhlc2UgbWl4aW5zIHN1cHBvcnQgY29tbWEgc2VwYXJhdGVkIGxpc3RzIG9mIHZhbHVlcywgd2hpY2ggYWxsb3dzIGRpZmZlcmVudCB0cmFuc2l0aW9ucyBmb3IgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIHRvIGJlIGRlc2NyaWJlZCBpbiBhIHNpbmdsZSBzdHlsZSBydWxlLiBFYWNoIHZhbHVlIGluIHRoZSBsaXN0IGNvcnJlc3BvbmRzIHRvIHRoZSB2YWx1ZSBhdCB0aGF0IHNhbWUgcG9zaXRpb24gaW4gdGhlIG90aGVyIHByb3BlcnRpZXMuXG5cbkBtaXhpbiBhbmltYXRpb24oJGFuaW1hdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb25cIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLCAkYW5pbWF0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1uYW1lKCRuYW1lcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvbi1uYW1lXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1uYW1lLCAkbmFtZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLWR1cmF0aW9uXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb25cIik7XG5cbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCgkdmFsdWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudFwiKTtcblxuICAvLyBpbmZpbml0ZSB8IDxudW1iZXI+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsICR2YWx1ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZGlyZWN0aW9uKCRkaXJlY3Rpb25zLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLWRpcmVjdGlvblwiKTtcblxuICAvLyBub3JtYWwgfCBhbHRlcm5hdGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRpcmVjdGlvbiwgJGRpcmVjdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tcGxheS1zdGF0ZSgkc3RhdGVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLXBsYXktc3RhdGVcIik7XG5cbiAgLy8gcnVubmluZyB8IHBhdXNlZFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tcGxheS1zdGF0ZSwgJHN0YXRlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb24tZGVsYXlcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZmlsbC1tb2RlKCRtb2Rlcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvbi1maWxsLW1vZGVcIik7XG5cbiAgLy8gbm9uZSB8IGZvcndhcmRzIHwgYmFja3dhcmRzIHwgYm90aFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZmlsbC1tb2RlLCAkbW9kZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gYXBwZWFyYW5jZSgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhcHBlYXJhbmNlXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFwcGVhcmFuY2UsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwiQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZpc2liaWxpdHkpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJiYWNrZmFjZS12aXNpYmlsaXR5XCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJhY2tmYWNlLXZpc2liaWxpdHksICR2aXNpYmlsaXR5LCB3ZWJraXQgc3BlYyk7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZHMgdXNpbmcgc2hvcnRoYW5kXG4vLyBub3RhdGlvbi5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQoJGJhY2tncm91bmRzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYmFja2dyb3VuZFwiKTtcblxuICAkd2Via2l0LWJhY2tncm91bmRzOiAoKTtcbiAgJHNwZWMtYmFja2dyb3VuZHM6ICgpO1xuXG4gIEBlYWNoICRiYWNrZ3JvdW5kIGluICRiYWNrZ3JvdW5kcyB7XG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAoKTtcbiAgICAkc3BlYy1iYWNrZ3JvdW5kOiAoKTtcbiAgICAkYmFja2dyb3VuZC10eXBlOiB0eXBlLW9mKCRiYWNrZ3JvdW5kKTtcblxuICAgIEBpZiAkYmFja2dyb3VuZC10eXBlID09IHN0cmluZyBvciAkYmFja2dyb3VuZC10eXBlID09IGxpc3Qge1xuICAgICAgJGJhY2tncm91bmQtc3RyOiBpZigkYmFja2dyb3VuZC10eXBlID09IGxpc3QsIG50aCgkYmFja2dyb3VuZCwgMSksICRiYWNrZ3JvdW5kKTtcblxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDEsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICR3ZWJraXQtYmFja2dyb3VuZHM6IGFwcGVuZCgkd2Via2l0LWJhY2tncm91bmRzLCAkd2Via2l0LWJhY2tncm91bmQsIGNvbW1hKTtcbiAgICAkc3BlYy1iYWNrZ3JvdW5kczogICBhcHBlbmQoJHNwZWMtYmFja2dyb3VuZHMsICAgJHNwZWMtYmFja2dyb3VuZCwgICBjb21tYSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kOiAkd2Via2l0LWJhY2tncm91bmRzO1xuICBiYWNrZ3JvdW5kOiAkc3BlYy1iYWNrZ3JvdW5kcztcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQtaW1hZ2UgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kIGltYWdlcyB3aXRoXG4vLyBncmFkaWVudHMsIG9yIGZvciBzdHJpbmdpbmcgbXVsdGlwbGUgZ3JhZGllbnRzIHRvZ2V0aGVyLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZC1pbWFnZSgkaW1hZ2VzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYmFja2dyb3VuZC1pbWFnZVwiKTtcblxuICAkd2Via2l0LWltYWdlczogKCk7XG4gICRzcGVjLWltYWdlczogKCk7XG5cbiAgQGVhY2ggJGltYWdlIGluICRpbWFnZXMge1xuICAgICR3ZWJraXQtaW1hZ2U6ICgpO1xuICAgICRzcGVjLWltYWdlOiAoKTtcblxuICAgIEBpZiAodHlwZS1vZigkaW1hZ2UpID09IHN0cmluZykge1xuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkaW1hZ2UsIDEsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkaW1hZ2UsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICRpbWFnZTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgJGltYWdlO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogIG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xuICAgICAgICAkd2Via2l0LWltYWdlOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJHdlYmtpdC1pbWFnZXM6IGFwcGVuZCgkd2Via2l0LWltYWdlcywgJHdlYmtpdC1pbWFnZSwgY29tbWEpO1xuICAgICRzcGVjLWltYWdlczogICBhcHBlbmQoJHNwZWMtaW1hZ2VzLCAgICRzcGVjLWltYWdlLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtaW1hZ2U6ICR3ZWJraXQtaW1hZ2VzO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAkc3BlYy1pbWFnZXM7XG59XG4iLCJAbWl4aW4gYm9yZGVyLWltYWdlKCRib3JkZXJzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm9yZGVyLWltYWdlXCIpO1xuXG4gICR3ZWJraXQtYm9yZGVyczogKCk7XG4gICRzcGVjLWJvcmRlcnM6ICgpO1xuXG4gIEBlYWNoICRib3JkZXIgaW4gJGJvcmRlcnMge1xuICAgICR3ZWJraXQtYm9yZGVyOiAoKTtcbiAgICAkc3BlYy1ib3JkZXI6ICgpO1xuICAgICRib3JkZXItdHlwZTogdHlwZS1vZigkYm9yZGVyKTtcblxuICAgIEBpZiAkYm9yZGVyLXR5cGUgPT0gc3RyaW5nIG9yIGxpc3Qge1xuICAgICAgJGJvcmRlci1zdHI6IGlmKCRib3JkZXItdHlwZSA9PSBsaXN0LCBudGgoJGJvcmRlciwgMSksICRib3JkZXIpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgIH1cblxuICAgICR3ZWJraXQtYm9yZGVyczogYXBwZW5kKCR3ZWJraXQtYm9yZGVycywgJHdlYmtpdC1ib3JkZXIsIGNvbW1hKTtcbiAgICAkc3BlYy1ib3JkZXJzOiAgIGFwcGVuZCgkc3BlYy1ib3JkZXJzLCAgICRzcGVjLWJvcmRlciwgICBjb21tYSk7XG4gIH1cblxuICAtd2Via2l0LWJvcmRlci1pbWFnZTogJHdlYmtpdC1ib3JkZXJzO1xuICAgICAgICAgIGJvcmRlci1pbWFnZTogJHNwZWMtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG4vL0V4YW1wbGVzOlxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpIDIwIHN0cmV0Y2gpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSAyMCAzMCA0MCA1MCBzdHJldGNoIHJvdW5kKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShyYWRpYWwtZ3JhZGllbnQodG9wLCBjb3Zlciwgb3JhbmdlLCB5ZWxsb3csIG9yYW5nZSkpO1xuIiwiQG1peGluIGNhbGMoJHByb3BlcnR5LCAkdmFsdWUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjYWxjXCIpO1xuXG4gICN7JHByb3BlcnR5fTogLXdlYmtpdC1jYWxjKCN7JHZhbHVlfSk7XG4gICN7JHByb3BlcnR5fTogY2FsYygjeyR2YWx1ZX0pO1xufVxuIiwiQG1peGluIGNvbHVtbnMoJGFyZzogYXV0bykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbnNcIik7XG5cbiAgLy8gPGNvbHVtbi1jb3VudD4gfHwgPGNvbHVtbi13aWR0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1ucywgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkaW50OiBhdXRvKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLWNvdW50XCIpO1xuXG4gIC8vIGF1dG8gfHwgaW50ZWdlclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tY291bnQsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCRsZW5ndGg6IG5vcm1hbCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1nYXBcIik7XG5cbiAgLy8gbm9ybWFsIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZ2FwLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWZpbGwoJGFyZzogYXV0bykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1maWxsXCIpO1xuXG4gIC8vIGF1dG8gfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1maWxsLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUoJGFyZykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1ydWxlXCIpO1xuXG4gIC8vIDxib3JkZXItd2lkdGg+IHx8IDxib3JkZXItc3R5bGU+IHx8IDxjb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS1jb2xvcigkY29sb3IpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4tcnVsZS1jb2xvclwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1jb2xvciwgJGNvbG9yLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtc3R5bGUoJHN0eWxlOiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLXJ1bGUtc3R5bGVcIik7XG5cbiAgLy8gbm9uZSB8IGhpZGRlbiB8IGRhc2hlZCB8IGRvdHRlZCB8IGRvdWJsZSB8IGdyb292ZSB8IGluc2V0IHwgaW5zZXQgfCBvdXRzZXQgfCByaWRnZSB8IHNvbGlkXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS13aWR0aCgkd2lkdGg6IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4tcnVsZS13aWR0aFwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS13aWR0aCwgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXNwYW4oJGFyZzogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1zcGFuXCIpO1xuXG4gIC8vIG5vbmUgfHwgYWxsXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1zcGFuLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXdpZHRoKCRsZW5ndGg6IGF1dG8pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4td2lkdGhcIik7XG5cbiAgLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXdpZHRoLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIGZpbHRlcigkZnVuY3Rpb246IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmaWx0ZXJcIik7XG5cbiAgLy8gPGZpbHRlci1mdW5jdGlvbj4gWzxmaWx0ZXItZnVuY3Rpb25dKiB8IG5vbmVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmlsdGVyLCAkZnVuY3Rpb24sIHdlYmtpdCBzcGVjKTtcbn1cbiIsIi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuXG4vLyBDdXN0b20gc2hvcnRoYW5kIG5vdGF0aW9uIGZvciBmbGV4Ym94XG5AbWl4aW4gYm94KCRvcmllbnQ6IGlubGluZS1heGlzLCAkcGFjazogc3RhcnQsICRhbGlnbjogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveFwiKTtcblxuICBAaW5jbHVkZSBkaXNwbGF5LWJveDtcbiAgQGluY2x1ZGUgYm94LW9yaWVudCgkb3JpZW50KTtcbiAgQGluY2x1ZGUgYm94LXBhY2soJHBhY2spO1xuICBAaW5jbHVkZSBib3gtYWxpZ24oJGFsaWduKTtcbn1cblxuQG1peGluIGRpc3BsYXktYm94IHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJkaXNwbGF5LWJveFwiKTtcblxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1vei1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyBJRSAxMFxuICBkaXNwbGF5OiBib3g7XG59XG5cbkBtaXhpbiBib3gtb3JpZW50KCRvcmllbnQ6IGlubGluZS1heGlzKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94LW9yaWVudFwiKTtcblxuLy8gaG9yaXpvbnRhbHx2ZXJ0aWNhbHxpbmxpbmUtYXhpc3xibG9jay1heGlzfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJG9yaWVudCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1wYWNrKCRwYWNrOiBzdGFydCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1wYWNrXCIpO1xuXG4vLyBzdGFydHxlbmR8Y2VudGVyfGp1c3RpZnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRwYWNrLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wYWNrOiAkcGFjazsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1hbGlnbigkYWxpZ246IHN0cmV0Y2gpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtYWxpZ25cIik7XG5cbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8YmFzZWxpbmV8c3RyZXRjaFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbGlnbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogbm9ybWFsKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94LWRpcmVjdGlvblwiKTtcblxuLy8gbm9ybWFsfHJldmVyc2V8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtbGluZXMoJGxpbmVzOiBzaW5nbGUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtbGluZXNcIik7XG5cbi8vIHNpbmdsZXxtdWx0aXBsZVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRsaW5lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1vcmRpbmFsLWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtb3JkaW5hbC1ncm91cFwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleCgkdmFsdWU6IDApIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtZmxleFwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleDogJHZhbHVlOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1mbGV4LWdyb3VwXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcbi8vIFVuaWZpZWQgYXR0cmlidXRlcyBmb3IgMjAwOSwgMjAxMSwgYW5kIDIwMTIgZmxhdm91cnMuXG5cbi8vIDIwMDkgLSBkaXNwbGF5IChib3ggfCBpbmxpbmUtYm94KVxuLy8gMjAxMSAtIGRpc3BsYXkgKGZsZXhib3ggfCBpbmxpbmUtZmxleGJveClcbi8vIDIwMTIgLSBkaXNwbGF5IChmbGV4IHwgaW5saW5lLWZsZXgpXG5AbWl4aW4gZGlzcGxheSgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJkaXNwbGF5XCIpO1xuXG4vLyBmbGV4IHwgaW5saW5lLWZsZXhcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXhcIiB7XG4gICAgLy8gMjAwOVxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC1tb3otYm94O1xuICAgIGRpc3BsYXk6IGJveDtcblxuICAgIC8vIDIwMTJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyAyMDExIChJRSAxMClcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImlubGluZS1mbGV4XCIge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1ib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWJveDtcblxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIH0gQGVsc2Uge1xuICAgIGRpc3BsYXk6ICR2YWx1ZTtcbiAgfVxufVxuXG4vLyAyMDA5IC0gYm94LWZsZXggKGludGVnZXIpXG4vLyAyMDExIC0gZmxleCAoZGVjaW1hbCB8IHdpZHRoIGRlY2ltYWwpXG4vLyAyMDEyIC0gZmxleCAoaW50ZWdlciBpbnRlZ2VyIHdpZHRoKVxuQG1peGluIGZsZXgoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleFwiKTtcblxuICAvLyBHcmFiIGZsZXgtZ3JvdyBmb3Igb2xkZXIgYnJvd3NlcnMuXG4gICRmbGV4LWdyb3c6IG50aCgkdmFsdWUsIDEpO1xuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICRmbGV4LWdyb3csIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApLCAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmllbnQgKCBob3Jpem9udGFsIHwgdmVydGljYWwgfCBpbmxpbmUtYXhpcyB8IGJsb2NrLWF4aXMpXG4vLyAgICAgIC0gYm94LWRpcmVjdGlvbiAobm9ybWFsIHwgcmV2ZXJzZSlcbi8vIDIwMTEgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWU6IHJvdykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZsZXgtZGlyZWN0aW9uXCIpO1xuXG4gIC8vIEFsdCB2YWx1ZXMuXG4gICR2YWx1ZS0yMDA5OiAkdmFsdWU7XG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICRkaXJlY3Rpb246IG5vcm1hbDtcblxuICBAaWYgJHZhbHVlID09IHJvdyB7XG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwicm93LXJldmVyc2VcIiB7XG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gY29sdW1uIHtcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiY29sdW1uLXJldmVyc2VcIiB7XG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICR2YWx1ZS0yMDA5LCB3ZWJraXQgbW96IHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1kaXJlY3Rpb24sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtbGluZXMgKHNpbmdsZSB8IG11bHRpcGxlKVxuLy8gMjAxMSAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZTogbm93cmFwKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleC13cmFwXCIpO1xuXG4gIC8vIEFsdCB2YWx1ZXNcbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IG5vd3JhcCB7XG4gICAgJGFsdC12YWx1ZTogc2luZ2xlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSB3cmFwIHtcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJ3cmFwLXJldmVyc2VcIiB7XG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gIH1cblxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtd3JhcCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDExIC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDEyIC0gZmxleC1mbG93IChmbGV4LWRpcmVjdGlvbiB8fCBmbGV4LXdyYXApXG5AbWl4aW4gZmxleC1mbG93KCR2YWx1ZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZsZXgtZmxvd1wiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWZsb3csICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmRpbmFsLWdyb3VwIChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXgtb3JkZXIgKGludGVnZXIpXG4vLyAyMDEyIC0gb3JkZXIgKGludGVnZXIpXG5AbWl4aW4gb3JkZXIoJGludDogMCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcIm9yZGVyXCIpO1xuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihvcmRlciwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWdyb3cgKG51bWJlcilcbkBtaXhpbiBmbGV4LWdyb3coJG51bWJlcjogMCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZsZXgtZ3Jvd1wiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWdyb3csICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBvc2l0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1zaHJpbmsgKG51bWJlcilcbkBtaXhpbiBmbGV4LXNocmluaygkbnVtYmVyOiAxKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleC1zaHJpbmtcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1zaHJpbmssICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW5lZ2F0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1iYXNpcyAobnVtYmVyKVxuQG1peGluIGZsZXgtYmFzaXMoJHdpZHRoOiBhdXRvKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleC1iYXNpc1wiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWJhc2lzLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAkd2lkdGg7XG59XG5cbi8vIDIwMDkgLSBib3gtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMSAtIGZsZXgtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMiAtIGp1c3RpZnktY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZClcbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQoJHZhbHVlOiBmbGV4LXN0YXJ0KSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwianVzdGlmeS1jb250ZW50XCIpO1xuXG4gIC8vIEFsdCB2YWx1ZXMuXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZW5kO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgJGFsdC12YWx1ZToganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZGlzdHJpYnV0ZTtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihqdXN0aWZ5LWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1wYWNrOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTEgLSBmbGV4LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1pdGVtcyAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWl0ZW1zKCR2YWx1ZTogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFsaWduLWl0ZW1zXCIpO1xuXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcblxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWl0ZW1zLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtYWxpZ246ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWl0ZW0tYWxpZ24gKGF1dG8gfCBzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1zZWxmIChhdXRvIHwgZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLXNlbGYoJHZhbHVlOiBhdXRvKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYWxpZ24tc2VsZlwiKTtcblxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgfVxuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tc2VsZiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1pdGVtLWFsaWduOiAkdmFsdWUtMjAxMTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtbGluZS1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkgfCBkaXN0cmlidXRlIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1jb250ZW50KCR2YWx1ZTogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFsaWduLWNvbnRlbnRcIik7XG5cbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkdmFsdWUtMjAxMToganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGRpc3RyaWJ1dGU7XG4gIH1cblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWUtMjAxMTtcbn1cbiIsIkBtaXhpbiBmb250LWZhY2UoXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJHdlaWdodDogbm9ybWFsLFxuICAkc3R5bGU6IG5vcm1hbCxcbiAgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZiBzdmcpIHtcblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAkZm9udC11cmwtcHJlZml4OiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpO1xuXG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgc3JjOiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgICAgICRmb250LWZhbWlseSxcbiAgICAgICRmaWxlLXBhdGgsXG4gICAgICAkYXNzZXQtcGlwZWxpbmUsXG4gICAgICAkZmlsZS1mb3JtYXRzLFxuICAgICAgJGZvbnQtdXJsLXByZWZpeFxuICAgICk7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBtaXhpbiBmb250LWZlYXR1cmUtc2V0dGluZ3MoJHNldHRpbmdzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZm9udC1mZWF0dXJlLXNldHRpbmdzXCIpO1xuXG4gIEBpZiBsZW5ndGgoJHNldHRpbmdzKSA9PSAwIHsgJHNldHRpbmdzOiBub25lOyB9XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZvbnQtZmVhdHVyZS1zZXR0aW5ncywgJHNldHRpbmdzLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiLy8gSGlEUEkgbWl4aW4uIERlZmF1bHQgdmFsdWUgc2V0IHRvIDEuMyB0byB0YXJnZXQgR29vZ2xlIE5leHVzIDcgKGh0dHA6Ly9iamFuZ28uY29tL2FydGljbGVzL21pbi1kZXZpY2UtcGl4ZWwtcmF0aW8vKVxuQG1peGluIGhpZHBpKCRyYXRpbzogMS4zKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiaGlkcGlcIik7XG5cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcbiAgb25seSBzY3JlZW4gYW5kICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyRyYXRpb30vMSksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IHJvdW5kKCRyYXRpbyAqIDk2ZHBpKSksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICRyYXRpbyAqIDFkcHB4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIkBtaXhpbiBoeXBoZW5zKCRoeXBoZW5hdGlvbjogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImh5cGhlbnNcIik7XG5cbiAgLy8gbm9uZSB8IG1hbnVhbCB8IGF1dG9cbiAgQGluY2x1ZGUgcHJlZml4ZXIoaHlwaGVucywgJGh5cGhlbmF0aW9uLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiQG1peGluIGltYWdlLXJlbmRlcmluZyAoJG1vZGU6YXV0bykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImltYWdlLXJlbmRlcmluZ1wiKTtcblxuICBAaWYgKCRtb2RlID09IGNyaXNwLWVkZ2VzKSB7XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogbmVhcmVzdC1uZWlnaGJvcjsgLy8gSUU4K1xuICAgIGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlcztcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1vLWNyaXNwLWVkZ2VzO1xuICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDtcbiAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIGltYWdlLXJlbmRlcmluZzogJG1vZGU7XG4gIH1cbn1cbiIsIi8vIEFkZHMga2V5ZnJhbWVzIGJsb2NrcyBmb3Igc3VwcG9ydGVkIHByZWZpeGVzLCByZW1vdmluZyByZWR1bmRhbnQgcHJlZml4ZXMgaW4gdGhlIGJsb2NrJ3MgY29udGVudFxuQG1peGluIGtleWZyYW1lcygkbmFtZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImtleWZyYW1lc1wiKTtcblxuICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ6ICAgICRwcmVmaXgtZm9yLXdlYmtpdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTogICAkcHJlZml4LWZvci1tb3ppbGxhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQ6ICRwcmVmaXgtZm9yLW1pY3Jvc29mdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE6ICAgICAkcHJlZml4LWZvci1vcGVyYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYzogICAgICAkcHJlZml4LWZvci1zcGVjO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci13ZWJraXQ6IHRydWUgIWdsb2JhbDtcbiAgICBALXdlYmtpdC1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci1tb3ppbGxhOiB0cnVlICFnbG9iYWw7XG4gICAgQC1tb3ota2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0ICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0ICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmEgICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyAgICAgICFnbG9iYWw7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMge1xuICAgIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gbGluZWFyLWdyYWRpZW50KCRwb3MsICRnMSwgJGcyOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImxpbmVhci1ncmFkaWVudFwiKTtcblxuICAvLyBEZXRlY3Qgd2hhdCB0eXBlIG9mIHZhbHVlIGV4aXN0cyBpbiAkcG9zXG4gICRwb3MtdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkcG9zLXNwZWM6IG51bGw7XG4gICRwb3MtZGVncmVlOiBudWxsO1xuXG4gIC8vIElmICRwb3MgaXMgbWlzc2luZyBmcm9tIG1peGluLCByZWFzc2lnbiB2YXJzIGFuZCBhZGQgZGVmYXVsdCBwb3NpdGlvblxuICBAaWYgKCRwb3MtdHlwZSA9PSBjb2xvcikgb3IgKG50aCgkcG9zLCAxKSA9PSBcInRyYW5zcGFyZW50XCIpICB7XG4gICAgJGcxMDogJGc5OyAkZzk6ICRnODsgJGc4OiAkZzc7ICRnNzogJGc2OyAkZzY6ICRnNTtcbiAgICAkZzU6ICRnNDsgJGc0OiAkZzM7ICRnMzogJGcyOyAkZzI6ICRnMTsgJGcxOiAkcG9zO1xuICAgICRwb3M6IG51bGw7XG4gIH1cblxuICBAaWYgJHBvcyB7XG4gICAgJHBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpO1xuICAgICRwb3MtZGVncmVlOiBudGgoJHBvc2l0aW9ucywgMSk7XG4gICAgJHBvcy1zcGVjOiAgIG50aCgkcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xuXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGcxLCAxKTtcblxuICAvLyBJZiAkZmFsbGJhY2sgaXMgYSBjb2xvciB1c2UgdGhhdCBjb2xvciBhcyB0aGUgZmFsbGJhY2sgY29sb3JcbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRwb3MtZGVncmVlICRmdWxsKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZVxuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KCN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcbn1cbiIsIkBtaXhpbiBwZXJzcGVjdGl2ZSgkZGVwdGg6IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJwZXJzcGVjdGl2ZVwiKTtcblxuICAvLyBub25lIHwgPGxlbmd0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUsICRkZXB0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHBlcnNwZWN0aXZlLW9yaWdpbigkdmFsdWU6IDUwJSA1MCUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJwZXJzcGVjdGl2ZS1vcmlnaW5cIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUtb3JpZ2luLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gcGxhY2Vob2xkZXIge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInBsYWNlaG9sZGVyXCIpO1xuXG4gICRwbGFjZWhvbGRlcnM6IFwiOi13ZWJraXQtaW5wdXRcIiBcIjotbW96XCIgXCItbW96XCIgXCItbXMtaW5wdXRcIjtcbiAgQGVhY2ggJHBsYWNlaG9sZGVyIGluICRwbGFjZWhvbGRlcnMge1xuICAgICY6I3skcGxhY2Vob2xkZXJ9LXBsYWNlaG9sZGVyIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gUmVxdWlyZXMgU2FzcyAzLjErXG5AbWl4aW4gcmFkaWFsLWdyYWRpZW50KCRnMSwgJGcyLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRwb3M6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRzaGFwZS1zaXplOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJyYWRpYWwtZ3JhZGllbnRcIik7XG5cbiAgJGRhdGE6IF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpO1xuICAkZzE6ICBudGgoJGRhdGEsIDEpO1xuICAkZzI6ICBudGgoJGRhdGEsIDIpO1xuICAkcG9zOiBudGgoJGRhdGEsIDMpO1xuICAkc2hhcGUtc2l6ZTogbnRoKCRkYXRhLCA0KTtcblxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcblxuICAvLyBTdHJpcCBkZXByZWNhdGVkIGNvdmVyL2NvbnRhaW4gZm9yIHNwZWNcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZpcnN0LWNvbG9yOiBudGgoJGZ1bGwsIDEpO1xuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZmlyc3QtY29sb3IsIDEpO1xuXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG5cbiAgLy8gQWRkIENvbW1hcyBhbmQgc3BhY2VzXG4gICRzaGFwZS1zaXplOiBpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSwgXCIsIG51bGwpO1xuICAkcG9zOiAgICAgICAgaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCk7XG4gICRwb3Mtc3BlYzogICBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XG4gICRzaGFwZS1zaXplLXNwZWM6IGlmKCgkc2hhcGUtc2l6ZS1zcGVjICE9IFwiIFwiKSBhbmQgKCRwb3MgPT0gbnVsbCksIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSwgXCIsIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSBcIik7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoI3skcG9zfSN7JHNoYXBlLXNpemV9I3skZnVsbH0pO1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoI3skc2hhcGUtc2l6ZS1zcGVjfSN7JHBvcy1zcGVjfSN7JGZ1bGx9KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBPdXRwdXRzIHRoZSBzcGVjIGFuZCBwcmVmaXhlZCB2ZXJzaW9ucyBvZiB0aGUgYDo6c2VsZWN0aW9uYCBwc2V1ZG8tZWxlbWVudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0Jvb2x9ICRjdXJyZW50LXNlbGVjdG9yIFtmYWxzZV1cclxuLy8vICAgSWYgc2V0IHRvIGB0cnVlYCwgaXQgdGFrZXMgdGhlIGN1cnJlbnQgZWxlbWVudCBpbnRvIGNvbnNpZGVyYXRpb24uXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBzZWxlY3Rpb24odHJ1ZSkge1xyXG4vLy8gICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgICB9XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50OjotbW96LXNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmVsZW1lbnQ6OnNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIHNlbGVjdGlvbigkY3VycmVudC1zZWxlY3RvcjogZmFsc2UpIHtcclxuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInNlbGVjdGlvblwiKTtcclxuXHJcbiAgQGlmICRjdXJyZW50LXNlbGVjdG9yIHtcclxuICAgICY6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICA6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQG1peGluIHRleHQtZGVjb3JhdGlvbigkdmFsdWUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0ZXh0LWRlY29yYXRpb25cIik7XG5cbi8vIDx0ZXh0LWRlY29yYXRpb24tbGluZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1zdHlsZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1jb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLCAkdmFsdWUsIG1veik7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tbGluZSgkbGluZTogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRleHQtZGVjb3JhdGlvbi1saW5lXCIpO1xuXG4vLyBub25lIHx8IHVuZGVybGluZSB8fCBvdmVybGluZSB8fCBsaW5lLXRocm91Z2hcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWxpbmUsICRsaW5lLCBtb3opO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLXN0eWxlKCRzdHlsZTogc29saWQpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0ZXh0LWRlY29yYXRpb24tc3R5bGVcIik7XG5cbi8vIHNvbGlkIHx8IGRvdWJsZSB8fCBkb3R0ZWQgfHwgZGFzaGVkIHx8IHdhdnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLXN0eWxlLCAkc3R5bGUsIG1veiB3ZWJraXQpO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWNvbG9yKCRjb2xvcjogY3VycmVudENvbG9yKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidGV4dC1kZWNvcmF0aW9uLWNvbG9yXCIpO1xuXG4vLyBjdXJyZW50Q29sb3IgfHwgPGNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tY29sb3IsICRjb2xvciwgbW96KTtcbn1cbiIsIkBtaXhpbiB0cmFuc2Zvcm0oJHByb3BlcnR5OiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNmb3JtXCIpO1xuXG4gIC8vIG5vbmUgfCA8dHJhbnNmb3JtLWZ1bmN0aW9uPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sICRwcm9wZXJ0eSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkYXhlczogNTAlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNmb3JtLW9yaWdpblwiKTtcblxuICAvLyB4LWF4aXMgLSBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgIHwgbGVuZ3RoIHwgJVxuICAvLyB5LWF4aXMgLSB0b3AgIHwgY2VudGVyIHwgYm90dG9tIHwgbGVuZ3RoIHwgJVxuICAvLyB6LWF4aXMgLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1vcmlnaW4sICRheGVzLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tc3R5bGUoJHN0eWxlOiBmbGF0KSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNmb3JtLXN0eWxlXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLCIvLyBTaG9ydGhhbmQgbWl4aW4uIFN1cHBvcnRzIG11bHRpcGxlIHBhcmVudGhlc2VzLWRlbGltaW5hdGVkIHZhbHVlcyBmb3IgZWFjaCB2YXJpYWJsZS5cbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAycyBlYXNlLWluLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IDFzIGVhc2UtaW4gMnMsIHdpZHRoIDJzIGVhc2Utb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkgKHRyYW5zZm9ybSwgb3BhY2l0eSk7XG5cbkBtaXhpbiB0cmFuc2l0aW9uKCRwcm9wZXJ0aWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNpdGlvblwiKTtcblxuICAvLyBGaXggZm9yIHZlbmRvci1wcmVmaXggdHJhbnNmb3JtIHByb3BlcnR5XG4gICRuZWVkcy1wcmVmaXhlczogZmFsc2U7XG4gICR3ZWJraXQ6ICgpO1xuICAkbW96OiAoKTtcbiAgJHNwZWM6ICgpO1xuXG4gIC8vIENyZWF0ZSBsaXN0cyBmb3IgdmVuZG9yLXByZWZpeGVkIHRyYW5zZm9ybVxuICBAZWFjaCAkbGlzdCBpbiAkcHJvcGVydGllcyB7XG4gICAgQGlmIG50aCgkbGlzdCwgMSkgPT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAkbmVlZHMtcHJlZml4ZXM6IHRydWU7XG4gICAgICAkbGlzdDE6IC13ZWJraXQtdHJhbnNmb3JtO1xuICAgICAgJGxpc3QyOiAtbW96LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MzogKCk7XG5cbiAgICAgIEBlYWNoICR2YXIgaW4gJGxpc3Qge1xuICAgICAgICAkbGlzdDM6IGpvaW4oJGxpc3QzLCAkdmFyKTtcblxuICAgICAgICBAaWYgJHZhciAhPSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICAgICAkbGlzdDE6IGpvaW4oJGxpc3QxLCAkdmFyKTtcbiAgICAgICAgICAkbGlzdDI6IGpvaW4oJGxpc3QyLCAkdmFyKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QxKTtcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdDIpO1xuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0Myk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QsIGNvbW1hKTtcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdCwgY29tbWEpO1xuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0LCBjb21tYSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICRuZWVkcy1wcmVmaXhlcyB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkd2Via2l0O1xuICAgICAgIC1tb3otdHJhbnNpdGlvbjogJG1vejtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRzcGVjO1xuICB9IEBlbHNlIHtcbiAgICBAaWYgbGVuZ3RoKCRwcm9wZXJ0aWVzKSA+PSAxIHtcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHByb3BlcnRpZXM6IGFsbCAwLjE1cyBlYXNlLW91dCAwcztcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1wcm9wZXJ0eSgkcHJvcGVydGllcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRyYW5zaXRpb24tcHJvcGVydHlcIik7XG5cbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIndlYmtpdFwiKTtcbiAgICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIm1velwiKTtcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBmYWxzZSk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRyYW5zaXRpb24tZHVyYXRpb25cIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvblwiKTtcblxuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXQgfCBjdWJpYy1iZXppZXIoKVxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRyYW5zaXRpb24tZGVsYXlcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIHVzZXItc2VsZWN0KCR2YWx1ZTogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInVzZXItc2VsZWN0XCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKHVzZXItc2VsZWN0LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItY29sb3JgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1jb2xvcigjYTYwYjU1ICM3NmNkOWMgbnVsbCAjZThhZTFhKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICNlOGFlMWE7XG4vLy8gICAgIGJvcmRlci1yaWdodC1jb2xvcjogIzc2Y2Q5Yztcbi8vLyAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2E2MGI1NTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1jb2xvcmBcblxuQG1peGluIGJvcmRlci1jb2xvcigkdmFscy4uLikge1xuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBjb2xvciwgJHZhbHMuLi4pO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1yYWRpdXNgIG9uIGJvdGggY29ybmVycyBvbiB0aGUgc2lkZSBvZiBhIGJveC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmFkaWlcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50LW9uZSB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKDVweCk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50LXR3byB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygzcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQtb25lIHtcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xuLy8vICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudC10d28ge1xuLy8vICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1yYWRpdXNgXG5cbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXN0eWxlYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZGFzaGVkIG51bGwgc29saWQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXN0eWxlYFxuXG5AbWl4aW4gYm9yZGVyLXN0eWxlKCR2YWxzLi4uKSB7XG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHN0eWxlLCAkdmFscy4uLik7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXdpZHRoYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItd2lkdGgoMWVtIG51bGwgMjBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDIwcHg7XG4vLy8gICAgIGJvcmRlci10b3Atd2lkdGg6IDFlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci13aWR0aGBcblxuQG1peGluIGJvcmRlci13aWR0aCgkdmFscy4uLikge1xuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCB3aWR0aCwgJHZhbHMuLi4pO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCBidXR0b25zLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC1idXR0b25zfWAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICN7JGFsbC1idXR0b25zfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC1idXR0b25zLWZvY3VzfSxcbi8vLyAgICN7JGFsbC1idXR0b25zLWhvdmVyfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC1idXR0b25zLWFjdGl2ZX0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgYnV0dG9uLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBidXR0b246Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpmb2N1cyxcbi8vLyAgIGJ1dHRvbjpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmhvdmVyIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgYnV0dG9uOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06YWN0aXZlIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcbi8vL1xuLy8vIEB0eXBlIExpc3Rcbi8vL1xuLy8vIEB0b2RvIFJlbW92ZSBkb3VibGUgYXNzaWduZWQgdmFyaWFibGVzIChMaW5lcyA1OeKAkzYyKSBpbiB2NS4wLjBcblxuJGJ1dHRvbnMtbGlzdDogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImJ1dHRvblwiXScsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInJlc2V0XCJdJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic3VibWl0XCJdJztcblxuJHVzZXItb3V0cHV0LWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2U7XG5cbiRhbGwtYnV0dG9uczogICAgICAgIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCk7XG4kYWxsLWJ1dHRvbnMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGFjdGl2ZSk7XG4kYWxsLWJ1dHRvbnMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGZvY3VzKTtcbiRhbGwtYnV0dG9ucy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgaG92ZXIpO1xuXG4kb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLW91dHB1dC1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nO1xuXG4kYWxsLWJ1dHRvbi1pbnB1dHM6ICAgICAgICAkYWxsLWJ1dHRvbnM7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtYWN0aXZlOiAkYWxsLWJ1dHRvbnMtYWN0aXZlO1xuJGFsbC1idXR0b24taW5wdXRzLWZvY3VzOiAgJGFsbC1idXR0b25zLWZvY3VzO1xuJGFsbC1idXR0b24taW5wdXRzLWhvdmVyOiAgJGFsbC1idXR0b25zLWhvdmVyO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gaW5jbHVkZSBhIGNsZWFyZml4IGZvciBjb250YWluaW5nIGZsb2F0cy5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9jc3Ntb2pvLmNvbS9sYXRlc3RfbmV3X2NsZWFyZml4X3NvX2Zhci9cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50OjphZnRlciB7XG4vLy8gICAgIGNsZWFyOiBib3RoO1xuLy8vICAgICBjb250ZW50OiBcIlwiO1xuLy8vICAgICBkaXNwbGF5OiB0YWJsZTtcbi8vLyAgIH1cblxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFRydW5jYXRlcyB0ZXh0IGFuZCBhZGRzIGFuIGVsbGlwc2lzIHRvIHJlcHJlc2VudCBvdmVyZmxvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzEwMCVdXG4vLy8gICBNYXgtd2lkdGggZm9yIHRoZSBzdHJpbmcgdG8gcmVzcGVjdCBiZWZvcmUgYmVpbmcgdHJ1bmNhdGVkXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgZWxsaXBzaXM7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbi8vLyAgICAgbWF4LXdpZHRoOiAxMDAlO1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbi8vLyAgICAgd29yZC13cmFwOiBub3JtYWw7XG4vLy8gICB9XG5cbkBtaXhpbiBlbGxpcHNpcygkd2lkdGg6IDEwMCUpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VvcmdpYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kZ2VvcmdpYTogXCJHZW9yZ2lhXCIsIFwiQ2FtYnJpYVwiLCBcIlRpbWVzIE5ldyBSb21hblwiLCBcIlRpbWVzXCIsIHNlcmlmO1xuXG4vLy8gSGVsdmV0aWNhIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRoZWx2ZXRpY2E6IFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJSb2JvdG9cIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuXG4vLy8gTHVjaWRhIEdyYW5kZSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kbHVjaWRhLWdyYW5kZTogXCJMdWNpZGEgR3JhbmRlXCIsIFwiVGFob21hXCIsIFwiVmVyZGFuYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG5cbi8vLyBNb25vc3BhY2UgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJG1vbm9zcGFjZTogXCJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm9cIiwgXCJDb25zb2xhc1wiLCBcIkNvdXJpZXJcIiwgbW9ub3NwYWNlO1xuXG4vLy8gVmVyZGFuYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kdmVyZGFuYTogXCJWZXJkYW5hXCIsIFwiR2VuZXZhXCIsIHNhbnMtc2VyaWY7XG4iLCIvLy8gSGlkZXMgdGhlIHRleHQgaW4gYW4gZWxlbWVudCwgY29tbW9ubHkgdXNlZCB0byBzaG93IGFuIGltYWdlLiBTb21lIGVsZW1lbnRzIHdpbGwgbmVlZCBibG9jay1sZXZlbCBzdHlsZXMgYXBwbGllZC5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly96ZWxkbWFuLmNvbS8yMDEyLzAzLzAxL3JlcGxhY2luZy10aGUtOTk5OXB4LWhhY2stbmV3LWltYWdlLXJlcGxhY2VtZW50XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgaGlkZS10ZXh0O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICB0ZXh0LWluZGVudDogMTAxJTtcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbi8vLyAgIH1cbi8vL1xuLy8vIEB0b2RvIFJlbW92ZSBoZWlnaHQgYXJndW1lbnQgaW4gdjUuMC4wXG5cbkBtaXhpbiBoaWRlLXRleHQoJGhlaWdodDogbnVsbCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWluZGVudDogMTAxJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICBAaWYgJGhlaWdodCB7XG4gICAgQHdhcm4gXCJUaGUgYGhpZGUtdGV4dGAgbWl4aW4gaGFzIGNoYW5nZWQgYW5kIG5vIGxvbmdlciByZXF1aXJlcyBhIGhlaWdodC4gVGhlIGhlaWdodCBhcmd1bWVudCB3aWxsIG5vIGxvbmdlciBiZSBhY2NlcHRlZCBpbiB2NS4wLjBcIjtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgbWFyZ2luYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAxMHB4IDNlbSAyMHZoKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogM2VtO1xuLy8vICAgICBtYXJnaW4tbGVmdDogMjB2aDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgbWFyZ2luYFxuXG5AbWl4aW4gbWFyZ2luKCR2YWxzLi4uKSB7XG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShtYXJnaW4sIGZhbHNlLCAkdmFscy4uLik7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgcGFkZGluZ2Agb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcGFkZGluZygxMnZoIG51bGwgMTBweCA1JSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuLy8vICAgICBwYWRkaW5nLWxlZnQ6IDUlO1xuLy8vICAgICBwYWRkaW5nLXRvcDogMTJ2aDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYHBhZGRpbmdgXG5cbkBtaXhpbiBwYWRkaW5nKCR2YWxzLi4uKSB7XG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShwYWRkaW5nLCBmYWxzZSwgJHZhbHMuLi4pO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciBzZXR0aW5nIGFuIGVsZW1lbnTigJlzIHBvc2l0aW9uLiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge1Bvc2l0aW9ufSAkcG9zaXRpb24gW3JlbGF0aXZlXVxuLy8vICAgQSBDU1MgcG9zaXRpb24gdmFsdWVcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJGNvb3JkaW5hdGVzIFtudWxsIG51bGwgbnVsbCBudWxsXVxuLy8vICAgTGlzdCBvZiB2YWx1ZXMgdGhhdCBjb3JyZXNwb25kIHRvIHRoZSA0LXZhbHVlIHN5bnRheCBmb3IgdGhlIGVkZ2VzIG9mIGEgYm94XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCBudWxsIDEwZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBsZWZ0OiAxMGVtO1xuLy8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLy8gICAgIHRvcDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSB1bnBhY2tcblxuQG1peGluIHBvc2l0aW9uKCRwb3NpdGlvbjogcmVsYXRpdmUsICRjb29yZGluYXRlczogbnVsbCBudWxsIG51bGwgbnVsbCkge1xuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09IGxpc3Qge1xuICAgICRjb29yZGluYXRlczogJHBvc2l0aW9uO1xuICAgICRwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcbiAgJGNvb3JkaW5hdGVzOiB1bnBhY2soJGNvb3JkaW5hdGVzKTtcblxuICAkb2Zmc2V0czogKFxuICAgIHRvcDogICAgbnRoKCRjb29yZGluYXRlcywgMSksXG4gICAgcmlnaHQ6ICBudGgoJGNvb3JkaW5hdGVzLCAyKSxcbiAgICBib3R0b206IG50aCgkY29vcmRpbmF0ZXMsIDMpLFxuICAgIGxlZnQ6ICAgbnRoKCRjb29yZGluYXRlcywgNClcbiAgKTtcblxuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xuXG4gIEBlYWNoICRvZmZzZXQsICR2YWx1ZSBpbiAkb2Zmc2V0cyB7XG4gICAgQGlmIGlzLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICN7JG9mZnNldH06ICR2YWx1ZTtcbiAgICB9XG4gIH1cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBIG1peGluIGZvciBnZW5lcmF0aW5nIHZlbmRvciBwcmVmaXhlcyBvbiBub24tc3RhbmRhcmRpemVkIHByb3BlcnRpZXMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByb3BlcnR5XG4vLy8gICBQcm9wZXJ0eSB0byBwcmVmaXhcbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlXG4vLy8gICBWYWx1ZSB0byB1c2Vcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHByZWZpeGVzXG4vLy8gICBQcmVmaXhlcyB0byBkZWZpbmVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCAxMHB4LCB3ZWJraXQgbXMgc3BlYyk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci13ZWJraXRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1vemlsbGFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1pY3Jvc29mdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itb3BlcmFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXNwZWNcblxuQG1peGluIHByZWZpeGVyKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcHJlZml4ZXMpIHtcbiAgQGVhY2ggJHByZWZpeCBpbiAkcHJlZml4ZXMge1xuICAgIEBpZiAkcHJlZml4ID09IHdlYmtpdCB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itd2Via2l0IHtcbiAgICAgICAgLXdlYmtpdC0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbW96IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICAgICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbXMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1pY3Jvc29mdCB7XG4gICAgICAgIC1tcy0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itb3BlcmEge1xuICAgICAgICAtby0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gc3BlYyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itc3BlYyB7XG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgIHtcbiAgICAgIEB3YXJuIFwiVW5yZWNvZ25pemVkIHByZWZpeDogI3skcHJlZml4fVwiO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpIHtcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgIGZhbHNlICFnbG9iYWw7XG59XG4iLCJAbWl4aW4gcmV0aW5hLWltYWdlKCRmaWxlbmFtZSwgJGJhY2tncm91bmQtc2l6ZSwgJGV4dGVuc2lvbjogcG5nLCAkcmV0aW5hLWZpbGVuYW1lOiBudWxsLCAkcmV0aW5hLXN1ZmZpeDogXzJ4LCAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUoXCJyZXRpbmEtaW1hZ2VcIik7XG5cbiAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH0gQGVsc2Uge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgIHVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICB9XG5cbiAgQGluY2x1ZGUgaGlkcGkge1xuICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1zaXplOiAkYmFja2dyb3VuZC1zaXplO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTZXRzIHRoZSBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBvZiB0aGUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNpemVcbi8vLyAgIEEgbGlzdCBvZiBhdCBtb3N0IDIgc2l6ZSB2YWx1ZXMuXG4vLy9cbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgdmFsdWUgaW4gYCRzaXplYCBpdCBpcyB1c2VkIGZvciBib3RoIHdpZHRoIGFuZCBoZWlnaHQuIEFsbCB1bml0cyBhcmUgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNpemUoMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZShhdXRvIDEwZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogMmVtO1xuLy8vICAgICBoZWlnaHQ6IDJlbTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IGF1dG87XG4vLy8gICAgIGhlaWdodDogMTBlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEB0b2RvIFJlZmFjdG9yIGluIDUuMC4wIHRvIHVzZSBhIGNvbW1hLXNlcGFyYXRlZCBhcmd1bWVudFxuXG5AbWl4aW4gc2l6ZSgkdmFsdWUpIHtcbiAgJHdpZHRoOiBudGgoJHZhbHVlLCAxKTtcbiAgJGhlaWdodDogJHdpZHRoO1xuXG4gIEBpZiBsZW5ndGgoJHZhbHVlKSA+IDEge1xuICAgICRoZWlnaHQ6IG50aCgkdmFsdWUsIDIpO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgQGlmIGlzLXNpemUoJGhlaWdodCkge1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skaGVpZ2h0fWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCRoZWlnaHRgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG5cbiAgQGlmIGlzLXNpemUoJHdpZHRoKSB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skd2lkdGh9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJHdpZHRoYCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIHRleHQtYmFzZWQgaW5wdXRzLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC10ZXh0LWlucHV0c31gLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHN9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWZvY3VzfSxcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1ob3Zlcn0ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl0sXG4vLy8gICB0ZXh0YXJlYSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpmb2N1cyxcbi8vLyAgIHRleHRhcmVhOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmhvdmVyLFxuLy8vICAgdGV4dGFyZWE6aG92ZXIge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmFjdGl2ZSxcbi8vLyAgIHRleHRhcmVhOmFjdGl2ZSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiR0ZXh0LWlucHV0cy1saXN0OiAnaW5wdXRbdHlwZT1cImNvbG9yXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZW1haWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibW9udGhcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibnVtYmVyXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInNlYXJjaFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGV4dFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0aW1lXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInVybFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ3ZWVrXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXQ6bm90KFt0eXBlXSknLFxuICAgICAgICAgICAgICAgICAgICd0ZXh0YXJlYSc7XG5cbiR1c2VyLW91dHB1dC1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4kb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlO1xuXG4kYWxsLXRleHQtaW5wdXRzOiAgICAgICAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCk7XG4kYWxsLXRleHQtaW5wdXRzLWFjdGl2ZTogYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgYWN0aXZlKTtcbiRhbGwtdGV4dC1pbnB1dHMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBmb2N1cyk7XG4kYWxsLXRleHQtaW5wdXRzLWhvdmVyOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgaG92ZXIpO1xuXG4kb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLW91dHB1dC1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ1NTIGN1YmljLWJlemllciB0aW1pbmcgZnVuY3Rpb25zLiBUaW1pbmcgZnVuY3Rpb25zIGNvdXJ0ZXN5IG9mIGpxdWVyeS5lYXNpZSAoZ2l0aHViLmNvbS9qYXVraWEvZWFzaWUpXG4vLy9cbi8vLyBUaW1pbmcgZnVuY3Rpb25zIGFyZSB0aGUgc2FtZSBhcyBkZW1vZWQgaGVyZTogaHR0cDovL2pxdWVyeXVpLmNvbS9yZXNvdXJjZXMvZGVtb3MvZWZmZWN0L2Vhc2luZy5odG1sXG4vLy9cbi8vLyBAdHlwZSBjdWJpYy1iZXppZXJcblxuJGVhc2UtaW4tcXVhZDogICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA4NSwgMC42ODAsIDAuNTMwKTtcbiRlYXNlLWluLWN1YmljOiAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4kZWFzZS1pbi1xdWFydDogICAgIGN1YmljLWJlemllcigwLjg5NSwgIDAuMDMwLCAwLjY4NSwgMC4yMjApO1xuJGVhc2UtaW4tcXVpbnQ6ICAgICBjdWJpYy1iZXppZXIoMC43NTUsICAwLjA1MCwgMC44NTUsIDAuMDYwKTtcbiRlYXNlLWluLXNpbmU6ICAgICAgY3ViaWMtYmV6aWVyKDAuNDcwLCAgMC4wMDAsIDAuNzQ1LCAwLjcxNSk7XG4kZWFzZS1pbi1leHBvOiAgICAgIGN1YmljLWJlemllcigwLjk1MCwgIDAuMDUwLCAwLjc5NSwgMC4wMzUpO1xuJGVhc2UtaW4tY2lyYzogICAgICBjdWJpYy1iZXppZXIoMC42MDAsICAwLjA0MCwgMC45ODAsIDAuMzM1KTtcbiRlYXNlLWluLWJhY2s6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAtMC4yODAsIDAuNzM1LCAwLjA0NSk7XG5cbiRlYXNlLW91dC1xdWFkOiAgICAgY3ViaWMtYmV6aWVyKDAuMjUwLCAgMC40NjAsIDAuNDUwLCAwLjk0MCk7XG4kZWFzZS1vdXQtY3ViaWM6ICAgIGN1YmljLWJlemllcigwLjIxNSwgIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuJGVhc2Utb3V0LXF1YXJ0OiAgICBjdWJpYy1iZXppZXIoMC4xNjUsICAwLjg0MCwgMC40NDAsIDEuMDAwKTtcbiRlYXNlLW91dC1xdWludDogICAgY3ViaWMtYmV6aWVyKDAuMjMwLCAgMS4wMDAsIDAuMzIwLCAxLjAwMCk7XG4kZWFzZS1vdXQtc2luZTogICAgIGN1YmljLWJlemllcigwLjM5MCwgIDAuNTc1LCAwLjU2NSwgMS4wMDApO1xuJGVhc2Utb3V0LWV4cG86ICAgICBjdWJpYy1iZXppZXIoMC4xOTAsICAxLjAwMCwgMC4yMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1jaXJjOiAgICAgY3ViaWMtYmV6aWVyKDAuMDc1LCAgMC44MjAsIDAuMTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtYmFjazogICAgIGN1YmljLWJlemllcigwLjE3NSwgIDAuODg1LCAwLjMyMCwgMS4yNzUpO1xuXG4kZWFzZS1pbi1vdXQtcXVhZDogIGN1YmljLWJlemllcigwLjQ1NSwgIDAuMDMwLCAwLjUxNSwgMC45NTUpO1xuJGVhc2UtaW4tb3V0LWN1YmljOiBjdWJpYy1iZXppZXIoMC42NDUsICAwLjA0NSwgMC4zNTUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWFydDogY3ViaWMtYmV6aWVyKDAuNzcwLCAgMC4wMDAsIDAuMTc1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtcXVpbnQ6IGN1YmljLWJlemllcigwLjg2MCwgIDAuMDAwLCAwLjA3MCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXNpbmU6ICBjdWJpYy1iZXppZXIoMC40NDUsICAwLjA1MCwgMC41NTAsIDAuOTUwKTtcbiRlYXNlLWluLW91dC1leHBvOiAgY3ViaWMtYmV6aWVyKDEuMDAwLCAgMC4wMDAsIDAuMDAwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtY2lyYzogIGN1YmljLWJlemllcigwLjc4NSwgIDAuMTM1LCAwLjE1MCwgMC44NjApO1xuJGVhc2UtaW4tb3V0LWJhY2s6ICBjdWJpYy1iZXppZXIoMC42ODAsIC0wLjU1MCwgMC4yNjUsIDEuNTUwKTtcbiIsIkBtaXhpbiB0cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCAkZGlyZWN0aW9uKSB7XG4gICR3aWR0aDogbnRoKCRzaXplLCAxKTtcbiAgJGhlaWdodDogbnRoKCRzaXplLCBsZW5ndGgoJHNpemUpKTtcbiAgJGZvcmVncm91bmQtY29sb3I6IG50aCgkY29sb3IsIDEpO1xuICAkYmFja2dyb3VuZC1jb2xvcjogaWYobGVuZ3RoKCRjb2xvcikgPT0gMiwgbnRoKCRjb2xvciwgMiksIHRyYW5zcGFyZW50KTtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHVwLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSB1cC1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQpIHtcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWRvd24pIHtcbiAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1yaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gY2hhbmdlIHRoZSBgd29yZC13cmFwYCBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkd3JhcCBbYnJlYWstd29yZF1cbi8vLyAgIFZhbHVlIGZvciB0aGUgYHdvcmQtYnJlYWtgIHByb3BlcnR5LlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIEBpbmNsdWRlIHdvcmQtd3JhcChicmVhay13b3JkKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbi8vLyAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuLy8vICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4vLy8gICB9XG5cbkBtaXhpbiB3b3JkLXdyYXAoJHdyYXA6IGJyZWFrLXdvcmQpIHtcbiAgb3ZlcmZsb3ctd3JhcDogJHdyYXA7XG4gIHdvcmQtd3JhcDogJHdyYXA7XG5cbiAgQGlmICR3cmFwID09IGJyZWFrLXdvcmQge1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgfSBAZWxzZSB7XG4gICAgd29yZC1icmVhazogJHdyYXA7XG4gIH1cbn1cbiIsIi8vIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBNQUpPUiB2ZXJzaW9uIHJlbGVhc2VcblxuQG1peGluIGlubGluZS1ibG9jayB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZShcImlubGluZS1ibG9ja1wiKTtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbkBtaXhpbiBidXR0b24gKCRzdHlsZTogc2ltcGxlLCAkYmFzZS1jb2xvcjogIzQyOTRmMCwgJHRleHQtc2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZShcImJ1dHRvblwiKTtcblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xuXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xuICAgICRzdHlsZTogc2ltcGxlO1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICRiYXNlLWNvbG9yO1xuICAgICR0ZXh0LXNpemU6ICRzdHlsZTtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSAjNDI5NGYwIHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxufVxuXG4vLyBTZWxlY3RvciBTdHlsZSBCdXR0b25cbkBtaXhpbiBidXR0b25zdHlsZSgkdHlwZSwgJGItY29sb3IsICR0LXNpemUsICRwYWQpIHtcbiAgLy8gR3JheXNjYWxlIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IHNoaW55IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gcGlsbCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gZmxhdCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICAvLyBDb2xvcmVkIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IHNoaW55IHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gcGlsbCB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gZmxhdCB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG59XG5cbi8vIFNpbXBsZSBCdXR0b25cbkBtaXhpbiBzaW1wbGUoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTE0JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtOCUsICAkbGlnaHRuZXNzOiAgMTUlKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xMSUpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDE1JSwgJGxpZ2h0bmVzczogLTE4JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNyUsICRsaWdodG5lc3M6ICA1JSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA4JSwgJGxpZ2h0bmVzczogLTE0JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogOSUsICRsaWdodG5lc3M6IC0xNCUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA3JSwgJGxpZ2h0bmVzczogLTE3JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmUsIGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIFNoaW55IEJ1dHRvblxuQG1peGluIHNoaW55KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExNywgJGdyZWVuOiAtMTExLCAkYmx1ZTogLTgxKTtcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEyNiwgJGdyZWVuOiAtMTI3LCAkYmx1ZTogLTEyMik7XG4gICRmb3VydGgtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC03OSwgICRncmVlbjogLTcwLCAgJGJsdWU6IC00Nik7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6ICAzNywgICRncmVlbjogIDI5LCAgJGJsdWU6ICAxMik7XG4gICRzZWNvbmQtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC01NiwgICRncmVlbjogLTUwLCAgJGJsdWU6IC0zMyk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xNDAsICRncmVlbjogLTE0MSwgJGJsdWU6IC0xMTQpO1xuICAkdGhpcmQtc3RvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICAkZ3JlZW46IC03NSwgICRibHVlOiAtNDgpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGZvdXJ0aC1zdG9wOiAgIGdyYXlzY2FsZSgkZm91cnRoLXN0b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHNlY29uZC1zdG9wOiAgIGdyYXlzY2FsZSgkc2Vjb25kLXN0b3ApO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgICAkdGhpcmQtc3RvcDogICAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRiYXNlLWNvbG9yIDAlLCAkc2Vjb25kLXN0b3AgNTAlLCAkdGhpcmQtc3RvcCA1MCUsICRmb3VydGgtc3RvcCAxMDAlKTtcblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEzLCAkZ3JlZW46IC0xNSwgJGJsdWU6IC0xOCk7XG4gICAgJHNlY29uZC1zdG9wLWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC02NiwgJGdyZWVuOiAtNjIsICRibHVlOiAtNTEpO1xuICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtOTMsICRncmVlbjogLTg1LCAkYmx1ZTogLTY2KTtcbiAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAkZ3JlZW46IC04MCwgJGJsdWU6IC02Myk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCRmaXJzdC1zdG9wLWhvdmVyKTtcbiAgICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRzZWNvbmQtc3RvcC1ob3Zlcik7XG4gICAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkdGhpcmQtc3RvcC1ob3Zlcik7XG4gICAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkZm91cnRoLXN0b3AtaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRmaXJzdC1zdG9wLWhvdmVyICAwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2Vjb25kLXN0b3AtaG92ZXIgNTAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlyZC1zdG9wLWhvdmVyICA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyIDEwMCUpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTExLCAkZ3JlZW46IC0xMTYsICRibHVlOiAtMTIyKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDIwcHggMCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBQaWxsIEJ1dHRvblxuQG1peGluIHBpbGwoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC0xMSUsICRsaWdodG5lc3M6IC0yNiUpO1xuICAkYm9yZGVyLXNpZGVzOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yMSUsICRsaWdodG5lc3M6IC0yMSUpO1xuICAkYm9yZGVyLXRvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0zMCUsICRsaWdodG5lc3M6IC0xNSUpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xJSwgICRsaWdodG5lc3M6ICA3JSk7XG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDE0JSwgJGxpZ2h0bmVzczogLTEwJSk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTE5JSwgJGxpZ2h0bmVzczogLTE1JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGJvcmRlci1zaWRlczogIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAkYm9yZGVyLXRvcDogICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpZ2h0bmVzczogLTQuNSUpO1xuICAgICRib3JkZXItYm90dG9tOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDEzLjUlLCAkbGlnaHRuZXNzOiAtMzIlKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yJSwgICAgJGxpZ2h0bmVzczogLTI3JSk7XG4gICAgJGJvcmRlci10b3A6ICAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMTclLCAgICRsaWdodG5lc3M6IC0yMSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAkc2F0dXJhdGlvbjogLTElLCAgICAkbGlnaHRuZXNzOiAgMyUpO1xuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTQlLCAgICAkbGlnaHRuZXNzOiAtMTUuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTUlLCAgICAkbGlnaHRuZXNzOiAtMjIlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAgICRib3JkZXItc2lkZXM6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XG4gICAgICAkYm9yZGVyLXRvcDogICAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG5cbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWhvdmVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA0LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNiwgICRzYXR1cmF0aW9uOiAtMi41JSwgJGxpZ2h0bmVzczogLTMwJSk7XG4gICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDExLCAkc2F0dXJhdGlvbjogIDYlLCAgICRsaWdodG5lc3M6IC0zMSUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA5LCAgJHNhdHVyYXRpb246ICAyJSwgICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA1LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGdyYXlzY2FsZSgkYWN0aXZlLWNvbG9yKTtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcbiAgICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kOiAkYWN0aXZlLWNvbG9yO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbS1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCAzcHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBGbGF0IEJ1dHRvblxuQG1peGluIGZsYXQoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXI6IDA7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCl7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDQlLCAkbGlnaHRuZXNzOiA1JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItYWN0aXZlOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1hY3RpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbi8vIEZsZXhpYmxlIGdyaWRcbkBmdW5jdGlvbiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgZmxleC1ncmlkYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuIEZvciBncmlkIGZ1bmN0aW9ucywgY2hlY2sgb3V0IEJvdXJib24ncyBzaXN0ZXIgbGlicmFyeVwiICtcbiAgICBcIk5lYXQuXCI7XG4gIH1cblxuICAkd2lkdGg6ICRjb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkd2lkdGggLyAkY29udGFpbmVyLXdpZHRoKTtcbn1cblxuLy8gRmxleGlibGUgZ3V0dGVyXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBmbGV4LWd1dHRlcmAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLiBGb3IgZ3JpZCBmdW5jdGlvbnMsIGNoZWNrIG91dCBCb3VyYm9uJ3Mgc2lzdGVyIGxpYnJhcnlcIiArXG4gICAgXCJOZWF0LlwiO1xuICB9XG5cbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVyIC8gJGNvbnRhaW5lci13aWR0aCk7XG59XG5cbkBmdW5jdGlvbiBncmlkLXdpZHRoKCRuKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgZ3JpZC13aWR0aGAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLiBGb3IgZ3JpZCBmdW5jdGlvbnMsIGNoZWNrIG91dCBCb3VyYm9uJ3Mgc2lzdGVyIGxpYnJhcnlcIiArXG4gICAgXCJOZWF0LlwiO1xuICB9XG5cbiAgQHJldHVybiAkbiAqICRndy1jb2x1bW4gKyAoJG4gLSAxKSAqICRndy1ndXR0ZXI7XG59XG5cbkBmdW5jdGlvbiBnb2xkZW4tcmF0aW8oJHZhbHVlLCAkaW5jcmVtZW50KSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgZ29sZGVuLXJhdGlvYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuIFlvdSBjYW4gdXNlIHRoZSBgbW9kdWxhci1zY2FsZWAgZnVuY3Rpb24gaW5zdGVhZC5cIjtcbiAgfVxuXG4gIEByZXR1cm4gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWUsICRyYXRpbzogJGdvbGRlbik7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRib3gpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtc2l6aW5nXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1zaXppbmcsICRib3gsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCIvLyAgQXV0aG9yOiBSYWZhbCBCcm9taXJza2lcbi8vICB3d3c6IGh0dHA6Ly9yYWZhbGJyb21pcnNraS5jb20vXG4vLyAgZ2l0aHViOiBodHRwOi8vZ2l0aHViLmNvbS9wYXJhbm9pZGEvc2Fzcy1tZWRpYXF1ZXJpZXNcbi8vXG4vLyAgTGljZW5zZWQgdW5kZXIgYSBNSVQgTGljZW5zZVxuLy9cbi8vICBWZXJzaW9uOlxuLy8gIDEuNi4xXG5cbi8vIC0tLSBnZW5lcmF0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBtcSgkYXJncy4uLikge1xuICAkbWVkaWEtdHlwZTogJ29ubHkgc2NyZWVuJztcbiAgJG1lZGlhLXR5cGUta2V5OiAnbWVkaWEtdHlwZSc7XG4gICRhcmdzOiBrZXl3b3JkcygkYXJncyk7XG4gICRleHByOiAnJztcblxuICBAaWYgbWFwLWhhcy1rZXkoJGFyZ3MsICRtZWRpYS10eXBlLWtleSkge1xuICAgICRtZWRpYS10eXBlOiBtYXAtZ2V0KCRhcmdzLCAkbWVkaWEtdHlwZS1rZXkpO1xuICAgICRhcmdzOiBtYXAtcmVtb3ZlKCRhcmdzLCAkbWVkaWEtdHlwZS1rZXkpO1xuICB9XG5cbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRhcmdzIHtcbiAgICBAaWYgJHZhbHVlIHtcbiAgICAgICRleHByOiBcIiN7JGV4cHJ9IGFuZCAoI3ska2V5fTogI3skdmFsdWV9KVwiO1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAjeyRtZWRpYS10eXBlfSAjeyRleHByfSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gLS0tIHNjcmVlbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIHNjcmVlbigkbWluLCAkbWF4LCAkb3JpZW50YXRpb246IGZhbHNlKSB7XG4gIEBpbmNsdWRlIG1xKCRtaW4td2lkdGg6ICRtaW4sICRtYXgtd2lkdGg6ICRtYXgsICRvcmllbnRhdGlvbjogJG9yaWVudGF0aW9uKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIG1heC1zY3JlZW4oJG1heCkge1xuICBAaW5jbHVkZSBtcSgkbWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIG1pbi1zY3JlZW4oJG1pbikge1xuICBAaW5jbHVkZSBtcSgkbWluLXdpZHRoOiAkbWluKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIHNjcmVlbi1oZWlnaHQoJG1pbiwgJG1heCwgJG9yaWVudGF0aW9uOiBmYWxzZSkge1xuICBAaW5jbHVkZSBtcSgkbWluLWhlaWdodDogJG1pbiwgJG1heC1oZWlnaHQ6ICRtYXgsICRvcmllbnRhdGlvbjogJG9yaWVudGF0aW9uKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIG1heC1zY3JlZW4taGVpZ2h0KCRtYXgpIHtcbiAgQGluY2x1ZGUgbXEoJG1heC1oZWlnaHQ6ICRtYXgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gbWluLXNjcmVlbi1oZWlnaHQoJG1pbikge1xuICBAaW5jbHVkZSBtcSgkbWluLWhlaWdodDogJG1pbikge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIC0tLSBoZHBpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBoZHBpKCRyYXRpbzogMS4zKSB7XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogI3tyb3VuZCgkcmF0aW8qOTYpfWRwaSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIC0tLSBoZHR2IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBoZHR2KCRzdGFuZGFyZDogJzEwODAnKSB7XG4gICRtaW4td2lkdGg6IGZhbHNlO1xuICAkbWluLWhlaWdodDogZmFsc2U7XG5cbiAgJHN0YW5kYXJkczogKCc3MjBwJywgMTI4MHB4LCA3MjBweClcbiAgICAgICAgICAgICAgKCcxMDgwJywgMTkyMHB4LCAxMDgwcHgpXG4gICAgICAgICAgICAgICgnMksnLCAyMDQ4cHgsIDEwODBweClcbiAgICAgICAgICAgICAgKCc0SycsIDQwOTZweCwgMjE2MHB4KTtcblxuICBAZWFjaCAkcyBpbiAkc3RhbmRhcmRzIHtcbiAgICBAaWYgJHN0YW5kYXJkID09IG50aCgkcywgMSkge1xuICAgICAgJG1pbi13aWR0aDogbnRoKCRzLCAyKTtcbiAgICAgICRtaW4taGVpZ2h0OiBudGgoJHMsIDMpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1xKFxuICAgICRtaW4tZGV2aWNlLXdpZHRoOiAkbWluLXdpZHRoLFxuICAgICRtaW4tZGV2aWNlLWhlaWdodDogJG1pbi1oZWlnaHQsXG4gICAgJG1pbi13aWR0aDogJG1pbi13aWR0aCxcbiAgICAkbWluLWhlaWdodDogJG1pbi1oZWlnaHRcbiAgKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gLS0tIGlwaG9uZTQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIGlwaG9uZTQoJG9yaWVudGF0aW9uOiBmYWxzZSkge1xuICAkbWluOiAzMjBweDtcbiAgJG1heDogNDgwcHg7XG4gICRwaXhlbC1yYXRpbzogMjtcbiAgJGFzcGVjdC1yYXRpbzogJzIvMyc7XG5cbiAgQGluY2x1ZGUgbXEoXG4gICAgJG1pbi1kZXZpY2Utd2lkdGg6ICRtaW4sXG4gICAgJG1heC1kZXZpY2Utd2lkdGg6ICRtYXgsXG4gICAgJG9yaWVudGF0aW9uOiAkb3JpZW50YXRpb24sXG4gICAgJGRldmljZS1hc3BlY3QtcmF0aW86ICRhc3BlY3QtcmF0aW8sXG4gICAgJC13ZWJraXQtZGV2aWNlLXBpeGVsLXJhdGlvOiAkcGl4ZWwtcmF0aW9cbiAgKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gLS0tIGlwaG9uZTUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIGlwaG9uZTUoJG9yaWVudGF0aW9uOiBmYWxzZSkge1xuICAkbWluOiAzMjBweDtcbiAgJG1heDogNTY4cHg7XG4gICRwaXhlbC1yYXRpbzogMjtcbiAgJGFzcGVjdC1yYXRpbzogJzQwLzcxJztcblxuICBAaW5jbHVkZSBtcShcbiAgICAkbWluLWRldmljZS13aWR0aDogJG1pbixcbiAgICAkbWF4LWRldmljZS13aWR0aDogJG1heCxcbiAgICAkb3JpZW50YXRpb246ICRvcmllbnRhdGlvbixcbiAgICAkZGV2aWNlLWFzcGVjdC1yYXRpbzogJGFzcGVjdC1yYXRpbyxcbiAgICAkLXdlYmtpdC1kZXZpY2UtcGl4ZWwtcmF0aW86ICRwaXhlbC1yYXRpb1xuICApIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyAtLS0gaXBob25lNiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gaXBob25lNigkb3JpZW50YXRpb246IGZhbHNlKSB7XG4gICRtaW46IDM3NXB4O1xuICAkbWF4OiA2NjdweDtcbiAgJHBpeGVsLXJhdGlvOiAyO1xuXG4gIEBpbmNsdWRlIG1xKFxuICAgICRtaW4tZGV2aWNlLXdpZHRoOiAkbWluLFxuICAgICRtYXgtZGV2aWNlLXdpZHRoOiAkbWF4LFxuICAgICRvcmllbnRhdGlvbjogJG9yaWVudGF0aW9uLFxuICAgICQtd2Via2l0LWRldmljZS1waXhlbC1yYXRpbzogJHBpeGVsLXJhdGlvXG4gICkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIC0tLSBpcGhvbmU2IHBsdXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBpcGhvbmU2LXBsdXMoJG9yaWVudGF0aW9uOiBmYWxzZSkge1xuICAkbWluOiA0MTRweDtcbiAgJG1heDogNzM2cHg7XG4gICRwaXhlbC1yYXRpbzogMztcblxuICBAaW5jbHVkZSBtcShcbiAgICAkbWluLWRldmljZS13aWR0aDogJG1pbixcbiAgICAkbWF4LWRldmljZS13aWR0aDogJG1heCxcbiAgICAkb3JpZW50YXRpb246ICRvcmllbnRhdGlvbixcbiAgICAkLXdlYmtpdC1kZXZpY2UtcGl4ZWwtcmF0aW86ICRwaXhlbC1yYXRpb1xuICApIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyAtLS0gaXBhZCAoYWxsKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gaXBhZCgkb3JpZW50YXRpb246IGZhbHNlKSB7XG4gICRtaW46IDc2OHB4O1xuICAkbWF4OiAxMDI0cHg7XG5cbiAgQGluY2x1ZGUgbXEoXG4gICAgJG1pbi1kZXZpY2Utd2lkdGg6ICRtaW4sXG4gICAgJG1heC1kZXZpY2Utd2lkdGg6ICRtYXgsXG4gICAgJG9yaWVudGF0aW9uOiAkb3JpZW50YXRpb25cbiAgKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gLS0tIGlwYWQtcmV0aW5hIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQG1peGluIGlwYWQtcmV0aW5hKCRvcmllbnRhdGlvbjogZmFsc2UpIHtcbiAgJG1pbjogNzY4cHg7XG4gICRtYXg6IDEwMjRweDtcbiAgJHBpeGVsLXJhdGlvOiAyO1xuXG4gIEBpbmNsdWRlIG1xKFxuICAgICRtaW4tZGV2aWNlLXdpZHRoOiAkbWluLFxuICAgICRtYXgtZGV2aWNlLXdpZHRoOiAkbWF4LFxuICAgICRvcmllbnRhdGlvbjogJG9yaWVudGF0aW9uLFxuICAgICQtd2Via2l0LWRldmljZS1waXhlbC1yYXRpbzogJHBpeGVsLXJhdGlvXG4gICkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIC0tLSBvcmllbnRhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkBtaXhpbiBsYW5kc2NhcGUoKSB7XG4gIEBpbmNsdWRlIG1xKCRvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIHBvcnRyYWl0KCkge1xuICBAaW5jbHVkZSBtcSgkb3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi8vIEFkZCBwcm9qZWN0IHNwZWNpZmljIGNvbG91cnMgYmVsb3dcbiRncmVlbjogI0E1Q0Y0RTtcbiRzaWNrLWdyZWVuOiAjYTZjZTM5O1xuJHNpY2stZ3JlZW4tdGhyZWU6ICNlMGViYzI7XG4kZ3JleWlzaC1icm93bjogIzRhNGE0YTtcbiRncmV5aXNoLWJyb3duLXR3bzogIzU0NTQ1NDtcbiRncmV5aXNoLWJyb3duLXRocmVlOiAjNDU0NTQ1O1xuJGJyb3duaXNoLWdyZXk6ICM2MDYwNjA7XG4kd2FybS1ncmV5LXRocmVlOiAjOTg5ODk4O1xuJGJhY2tncm91bmQtY29sb3I6ICM4NWM0OTM7XG4kZm9vdGVyLXRleHQtZGFyazogIzgwOTA2NztcbiRmb290ZXItYmFja2dyb3VuZDogIzY1YWQ4MztcbiR3YXJtLWdyZXktdHdvOiAjNzc3Nzc3O1xuJHdhcm0tZ3JleS1maXZlOiAjOWI5YjliO1xuJHdoaXRlOiAjZTBlMGUwO1xuJHdoaXRlLXR3bzogI2ZmZmZmZjtcbiR3aGl0ZS10aHJlZTogI2ViZWJlYjtcbiR3aGl0ZS1mb3VyOiAjZDhkOGQ4O1xuJHdoaXRlLWZpdmU6ICNkMmQyZDI7XG4kd2hpdGUtc2V2ZW46ICNlN2U3ZTc7XG4kd2hpdGUtZWlnaHQ6ICNkZWRlZGU7XG4kd2hpdGUtbmluZTogI2VmZWZlZjtcbiR3aGl0ZS10ZW46ICNkM2QzZDM7XG4kYnJpZ2h0LXNreS1ibHVlOiAjMzFiZWY4O1xuJHJlZC1waW5rOiAjZjMzYjU4O1xuJHNjYXJsZXQ6ICNkMDAyMWI7XG4kcGlua2lzaC1ncmV5OiAjYmJiYmJiO1xuJGJsYWNrOiAjMDAwO1xuJGdvbGRlbnJvZDogI2YzYTUzNjtcblxuLy8gSU5JVFNcbmgxLCBoMiwgaDMsIGg0LCBoNSwgcCwgYSB7XG4gIGNvbG9yOiBibGFjazsgfVxuXG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkZ3JlZW4sIDIwJSk7XG4gIGNvbG9yOiB3aGl0ZTsgfVxuXG46Oi1tb3otc2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRncmVlbiwgMjAlKTtcbiAgY29sb3I6IHdoaXRlOyB9XG5cbmJvZHkge1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7IH1cblxuLy8gU2hhZG93IE1peGluc1xuQG1peGluIGRzaGFkb3coJGNvbG91ciA6IGdyZXkpIHtcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygycHggMnB4IDJweCAkY29sb3VyKTsgfVxuIiwiLy9NQVRFUklBTElaRSAtIE1lZGlhIFF1ZXJpZXNcbiRzbWFsbDogNjAwcHg7XG4vL21heC13aWR0aFxuJG1lZGl1bTogOTkycHg7XG4vL21heC13aWR0aFxuJGxhcmdlOiA5OTNweDtcbi8vbWluLXdpZHRoIHVwXG5cbi8vTWVkaWEgTWl4aW5zXG5AbWl4aW4gc21hbGwge1xuICAvL0NhbGwgK3NtYWxsIHRoZW4gY29udGVudCBhdCB0aGF0IHdpZHRoXG4gIEBtZWRpYSAobWF4LXdpZHRoOiAkc21hbGwpIHtcbiAgICBAY29udGVudDsgfSB9XG5cbkBtaXhpbiBtZWRpdW0ge1xuICAvL0NhbGwgK21lZGl1bSB0aGVuIGNvbnRlbnQgYXQgdGhhdCB3aWR0aFxuICBAbWVkaWEgKG1heC13aWR0aDogJG1lZGl1bSkge1xuICAgIEBjb250ZW50OyB9IH1cblxuQG1peGluIGxhcmdlIHtcbiAgLy9DYWxsICtsYXJnZSB0aGVuIGNvbnRlbnQgYXQgdGhhdCB3aWR0aFxuICBAbWVkaWEgKG1pbi13aWR0aDogJGxhcmdlKSB7XG4gICAgQGNvbnRlbnQ7IH0gfVxuXG5AbWl4aW4gbSgkc2l6ZSkge1xuICAvL1RoaXMgaXMgYSBxdWljayBtYXggd2lkdGggLSBjYWxsICttKDIwMHB4KVxuICBAbWVkaWEgKG1heC13aWR0aDogJHNpemUpIHtcbiAgICBAY29udGVudDsgfSB9XG5cbi8vSU5JVFxuYm9keSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgfVxuIiwiLy8gRk9OVFMgLy9cblxuLy8gUXVpY2sgbWl4aW5zIHRvIGFkZCBmb250c1xuQG1peGluIGxpZ2h0Zm9udCB7XG4gIGZvbnQtZmFtaWx5OiBhem8tc2Fucy13ZWIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuXG5AbWl4aW4gbWVkaXVtZm9udCB7XG4gIGZvbnQtZmFtaWx5OiBhem8tc2Fucy13ZWIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuXG5AbWl4aW4gYm9sZGZvbnQge1xuICBmb250LWZhbWlseTogYXpvLXNhbnMtd2ViLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuQG1peGluIGJsYWNrZm9udCB7XG4gIGZvbnQtZmFtaWx5OiBhem8tc2Fucy13ZWIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDkwMDsgfVxuXG5AbWl4aW4gbm9ybWFsZm9udCB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7IH1cblxuLy9mb250IHdlaWdodCBib2xkXG5AbWl4aW4gbm9ybWFsZm9udC1ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7IH1cblxuLy8gSU5JVFx0Zm9udHMgb24gZXZlcnl0aGluZ1xucCwgaDQsIHNwYW4sIGEsIGJ1dHRvbiwge1xuICBAaW5jbHVkZSBsaWdodGZvbnQ7IH1cblxuLnByb2R1Y3QtZGVzY3JpcHRpb24tdGV4dCwgLnByb2R1Y3QtZGVzY3JpcHRpb24tdGV4dCAqIHtcbiAgIEBpbmNsdWRlIGxpZ2h0Zm9udDtcbiAgIGNvbG9yOiBibGFjazsgfVxuXG5oMiwgaDMsIHN0cm9uZyB7XG4gIEBpbmNsdWRlIGJvbGRmb250OyB9XG5cbmgxIHtcbiAgQGluY2x1ZGUgYmxhY2tmb250OyB9XG4iLCIvL0FuaW1hdGlvbiBNaXhpbnNcXFxcXG5cbi8vVHJhbnNpdGlvbnMgJiBNaXhpbnNcXFxcXG5AbWl4aW4gYW5pbSgkZWxlbWVudCA6IGFsbCwgJHRpbWUgOiAwLjRzKSB7XG4gIC8vUXVpY2sgMC40cyB0cmFuc2l0aW9uIG9uIGFsbFxuICB0cmFuc2l0aW9uOiAkdGltZSBlYXNlICRlbGVtZW50OyB9XG4vL0NhbGwgZWl0aGVyICthbmltIG9yICthbmltKCdlbGVtZW50JywndGltZScpXG5cbkBtaXhpbiBzdGFydC1mYWRlIHtcbiAgLy9TdGFydCBlbGVtZW50IGF0IDAgb3BhY2l0eSAoc28geW91IGNhbiBmYWRlIGluKVxuICBvcGFjaXR5OiAwOyB9XG5cbkBtaXhpbiBzdGFydC1sZWZ0IHtcbiAgLy9TdGFydCBlbGVtZW50IDEwMHB4IHRvIHRoZSBsZWZ0IChzbyBhbmltYXRlcyBpbiBmcm9tIHRoYXQgcG9pbnQpXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMDBweCwgMCUpOyB9XG5cbkBtaXhpbiBzdGFydC10b3Age1xuICAvL1N0YXJ0IGVsZW1lbnQgNTBweCBmcm9tIHRoZSB0b3AgKHNvIGFuaW1hdGVzIGluIGZyb20gdGhhdCBwb2ludClcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCAtNTBweCk7IH1cblxuLy9DbGFzc2VzXFxcXFxuLm5vcm1hbCB7XG4gIC8vIFJlc2V0IGVsZW1lbnQgLSB1c2VzICYgc3ltYm9sIHNvIHlvdSBjYW4gcHV0IGl0IG9uIGEgcGFyZW50IGFuZCBpdCdsbCBlZmZlY3QgYWxsXG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCUsIDAlKSAhaW1wb3J0YW50O1xuICBAaW5jbHVkZSBhbmltKGFsbCwgMnMpOyB9XG5cbi5mYWRlaW4ge1xuICAvL1F1aWNrIHN0YW5kYXJkaXNlZCBhbmltYXRpb24gLSB1c2VzIG1lZGlhIHF1ZXJpZXMgLSBsZXNzIGVmZmVjdCBvbiBzbWFsbCBkZXZpY2VzXG4gIEBpbmNsdWRlIGxhcmdlIHtcbiAgICBAaW5jbHVkZSBzdGFydC1mYWRlO1xuICAgIEBpbmNsdWRlIHN0YXJ0LWxlZnQ7XG4gICAgQGluY2x1ZGUgYW5pbShhbGwsIDNzKTsgfVxuICBAaW5jbHVkZSBtZWRpdW0ge1xuICAgIEBpbmNsdWRlIHN0YXJ0LWZhZGU7XG4gICAgQGluY2x1ZGUgYW5pbShhbGwsIDEuNXMpOyB9IH1cbiIsIi8vIEZvcm0gc3R1ZmYgaGVyZSAvL1xuIiwiLy9tYXJnaW4gdG9wXG4ubWFyZ2luLXRvcC0zOCB7XG4gIG1hcmdpbi10b3A6IDM4cHg7IH1cblxuLy9tYXJnaW4gYm90dG9tXG4ubWFyZ2luLWJvdHRvbS0wIHtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4ubWFyZ2luLWJvdHRvbS0yNSB7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7IH1cblxuLm1hcmdpbi1ib3R0b20tODAge1xuICBtYXJnaW4tYm90dG9tOiA4MHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAkZ3JleWlzaC1icm93bjsgfVxuXG4vL2F1dG8gY2VudGVyXG4ubWFyZ2luLWNlbnRlciB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cblxuLm1sMCB7XG4gIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cbi5tcjAge1xuICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxuLm1iMCB7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsgfVxuXG4ubXIyMCB7XG4gIG1hcmdpbi1yaWdodDogMjBweDsgfVxuIiwiLnAwIHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50OyB9XG4ucGFkZGluZy10b3AtNDAge1xuICBwYWRkaW5nLXRvcDogNDBweDsgfVxuXG4ucGFkZGluZy10b3AtNjAge1xuICBwYWRkaW5nLXRvcDogNjBweDsgfVxuXG4ucGFkZGluZy10b3AtODAge1xuICBwYWRkaW5nLXRvcDogODBweDsgfVxuXG4ucHIwIHtcbiAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OyB9XG4iLCIkT3BlblNhbnM6ICdPcGVuIFNhbnMnLCBzYW5zLXNlcmlmO1xuJEF2ZW5pck5leHQ6ICdBdmVuaXIgTFQgU3RkJztcbiRBem9TYW5zOiBhem8tc2Fucy13ZWIsIHNhbnMtc2VyaWY7XG4iLCJhOmZvY3VzIHtcblx0b3V0bGluZTogbm9uZSAhaW1wb3J0YW50OyB9XG4iLCIuc2FtZS1oZWlnaHQtY29sdW1uX19wYXJlbnQge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICAuc2FtZS1oZWlnaHQtY29sdW1uX19jaGlsZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9IH1cbiIsIi52ZXJ0aWNhbC1hbGlnbi1kaXZfX3BhcmVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKHJvdyk7XG4gICYuc2FtZS1oZWlnaHQtY29sdW1uX19jaGlsZCB7XG4gICAgQGluY2x1ZGUgZmxleC1kaXJlY3Rpb24ocm93KTsgfSB9XG4iLCJodG1sLndmLWluYWN0aXZlIHtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAjd3BhZG1pbmJhciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogYXV0bztcbiAgICBib3R0b206IDA7IH0gfVxuIiwiQG1peGluIHJlYWQtbW9yZS1idXR0b24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAyNXB4O1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQ6ICRzaWNrLWdyZWVuO1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDEuNHB4O1xuICBwYWRkaW5nOiA0cHggMTBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHRyYW5zaXRpb246IDAuNHMgZWFzZSBhbGw7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICY6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnJvd25pc2gtZ3JleTtcbiAgICBmb250OiBub3JtYWwgbm9ybWFsIG5vcm1hbCAxNXB4IEZvbnRBd2Vzb21lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMjVweDtcbiAgICB3aWR0aDogMjVweDtcbiAgICBjb250ZW50OiAnXFxmMTA1JztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgIHJpZ2h0OiAtMjVweDtcbiAgICBib3R0b206IDA7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMC4xcyBlYXNlLWluLW91dCk7IH1cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogbGlnaHRlbigkc2ljay1ncmVlbiwgMTAlKTtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlxcZjAwMlwiO1xuICAgICAgcGFkZGluZzogNHB4IDZweDtcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDAuMXMgZWFzZS1pbi1vdXQpOyB9IH0gfVxuXG5cbi8vTWF4IHNjcmVlbiBvZiBpcGhvbmUgNiBwbHVzXG5AaW5jbHVkZSBtYXgtc2NyZWVuKDczNnB4KSB7XG4gIEBtaXhpbiByZWFkLW1vcmUtYnV0dG9uIHtcbiAgICByaWdodDogMjVweDsgfSB9XG4iLCIuYnV0dG9uLS1ncmV5LXNtYWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJyb3duaXNoLWdyZXk7XG4gIGJvcmRlcjogbm9uZTtcbiAgZm9udC1mYW1pbHk6ICRPcGVuU2FucztcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6IDNweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogJHdoaXRlLXR3bztcbiAgcGFkZGluZzogOHB4IDEwcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLmJ0biB7XG4gICYuYnRuLWNhbGwge1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNhNmNlMzk7XG4gICAgYm9yZGVyLXdpZHRoOiAycHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIHBhZGRpbmc6IDEwcHggMzVweDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC41cHg7XG4gICAgdHJhbnNpdGlvbjogLjJzIGVhc2Utb3V0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3gtc2hhZG93OiAwIDJweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjNTE1NTUzO1xuICAgICAgYm94LXNoYWRvdzogMCAzcHggM3B4IDAgcmdiYSgwLCAwLCAwLCAwLjE0KSwgMCAxcHggN3B4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAzcHggMXB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG4gICAgJjpiZWZvcmUge1xuICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7IH1cblxuICAgIHNwYW4ge1xuICAgICAgZm9udC1mYW1pbHk6IGF6by1zYW5zLXdlYiwgc2Fucy1zZXJpZjtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyB9IH0gfVxuIiwiI2JhY2stdG8tdG9wIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYm90dG9tOiAyMHB4O1xuICAgIHJpZ2h0OiAyMHB4O1xuICAgIHotaW5kZXg6IDk5OTk7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xuICAgIGNvbG9yOiAjNDQ0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2Utb3V0O1xuICAgIG9wYWNpdHk6IDA7IH1cblxuI2JhY2stdG8tdG9wOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZTllYmVjO1xuICAgIG9wYWNpdHk6IDE7IH1cblxuI2JhY2stdG8tdG9wLnNob3cge1xuICAgIG9wYWNpdHk6IDAuNTsgfVxuIiwiaGVhZGVyIHtcbiAgLm5hdmJhci1maXhlZCB7XG4gICAgei1pbmRleDogOTk4OyB9XG4gIG5hdiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgbGlnaHRlbihncmV5LCA0MCUpO1xuICAgIC5icmFuZC1sb2dvIHtcbiAgICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL2VudHJvLWxvZ28uc3ZnJyk7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDE0MHB4O1xuICAgICAgaGVpZ2h0OiA2MHB4O1xuICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xuICAgICAgZm9udC1zaXplOiAwO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA1MDBweCkge1xuICAgICAgICByaWdodDogMjAlO1xuICAgICAgICBsZWZ0OiBhdXRvOyB9IH1cbiAgICBsaSB7XG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6ICRibGFjayAhaW1wb3J0YW50OyB9IH0gfVxuICAvL05vdCBzaG93IG9uIG1vYmlsZVxuICB1bCNuYXYtbW9iaWxlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDE3cHg7XG4gICAgbGkge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICBhIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBAaW5jbHVkZSBib2xkZm9udDtcbiAgICAgICAgQGluY2x1ZGUgYW5pbTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMCUsIC0ycHgpOyB9IH1cbiAgICAgIC5sb2dpbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaXVtZm9udDsgfVxuICAgICAgLnNlYXJjaCB7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1MTU1NTM7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMTVweCAzcHg7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oIzUxNTU1MywgMTAlKTsgfVxuICAgICAgICBpIHtcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01NSUsIC0yNiUpOyB9IH1cbiAgICAgIC5iYXNrZXQge1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JlZW47XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMTVweCAzcHg7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGdyZWVuLCAxMCUpOyB9XG4gICAgICAgIGkge1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTU1JSwgLTI2JSk7IH0gfVxuICAgICAgLm51bWJlciB7XG4gICAgICAgIHBhZGRpbmc6IDBweCAzMHB4OyB9XG4gICAgICAubG9naW4ge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDVweDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgICAgIC5yaWdodCB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAuZHJvcGRvd24tY29udGVudCB7XG4gICAgICAgIHdpZHRoOiAyMDBweCAhaW1wb3J0YW50O1xuICAgICAgICB0b3A6IDU4cHggIWltcG9ydGFudDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDE2cHg7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAxMnB4O1xuICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICBhIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxNnB4OyB9IH0gfSB9IH0gfVxuIiwiQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdpY29uLWZpbGwnO1xyXG4gIHNyYzogIHVybCgnLi4vZm9udHMvaWNvbW9vbi5lb3Q/M2E0dDhhJyk7XHJcbiAgc3JjOiAgdXJsKCcuLi9mb250cy9pY29tb29uLmVvdD8zYTR0OGEjaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXHJcbiAgICB1cmwoJy4uL2ZvbnRzL2ljb21vb24udHRmPzNhNHQ4YScpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcclxuICAgIHVybCgnLi4vZm9udHMvaWNvbW9vbi53b2ZmPzNhNHQ4YScpIGZvcm1hdCgnd29mZicpLFxyXG4gICAgdXJsKCcuLi9mb250cy9pY29tb29uLnN2Zz8zYTR0OGEjaWNvbW9vbicpIGZvcm1hdCgnc3ZnJyk7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbn1cclxuXHJcbltjbGFzc149XCJpY29uLVwiXSwgW2NsYXNzKj1cIiBpY29uLVwiXSB7XHJcbiAgLyogdXNlICFpbXBvcnRhbnQgdG8gcHJldmVudCBpc3N1ZXMgd2l0aCBicm93c2VyIGV4dGVuc2lvbnMgdGhhdCBjaGFuZ2UgZm9udHMgKi9cclxuICBmb250LWZhbWlseTogJ2ljb24tZmlsbCcgIWltcG9ydGFudDtcclxuICBzcGVhazogbm9uZTtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcclxuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuICBsaW5lLWhlaWdodDogMTtcclxuXHJcbiAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXHJcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcclxufVxyXG5cclxuLmljb24tZmlsbC0xOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXGU5MDBcIjtcclxufVxyXG4uaWNvbi1maWxsLTI6YmVmb3JlIHtcclxuICBjb250ZW50OiBcIlxcZTkwMVwiO1xyXG59XHJcbi5pY29uLWZpbGwtMzpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxlOTAyXCI7XHJcbn1cclxuXHJcbiIsIkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnc29jaWFsLWljb24nO1xyXG4gIHNyYzogdXJsKCcuLi9mb250cy9zb2NpYWwvaWNvbW9vbi5lb3Q/YndhaG5kJyk7XHJcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL3NvY2lhbC9pY29tb29uLmVvdD9id2FobmQjaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXHJcbiAgdXJsKCcuLi9mb250cy9zb2NpYWwvaWNvbW9vbi50dGY/YndhaG5kJykgZm9ybWF0KCd0cnVldHlwZScpLFxyXG4gIHVybCgnLi4vZm9udHMvc29jaWFsL2ljb21vb24ud29mZj9id2FobmQnKSBmb3JtYXQoJ3dvZmYnKSxcclxuICB1cmwoJy4uL2ZvbnRzL3NvY2lhbC9pY29tb29uLnN2Zz9id2FobmQjaWNvbW9vbicpIGZvcm1hdCgnc3ZnJyk7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbn1cclxuXHJcbltjbGFzc149XCJzb2NpYWwtaWNvbi1cIl0sIFtjbGFzcyo9XCJzb2NpYWwtaWNvbi1cIl0ge1xyXG4gIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXHJcbiAgZm9udC1mYW1pbHk6ICdzb2NpYWwtaWNvbicgIWltcG9ydGFudDtcclxuICBzcGVhazogbm9uZTtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcclxuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcclxuICBsaW5lLWhlaWdodDogMTtcclxuXHJcbiAgLyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXHJcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcclxufVxyXG5cclxuLnNvY2lhbC1pY29uLWZhY2Vib29rOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXGU5MDBcIjtcclxufVxyXG5cclxuLnNvY2lhbC1pY29uLWdvb2dsZTpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXFxlOTAxXCI7XHJcbn1cclxuXHJcbi5zb2NpYWwtaWNvbi10d2l0dGVyOmJlZm9yZSB7XHJcbiAgY29udGVudDogXCJcXGU5MDJcIjtcclxufVxyXG5cclxuIiwiLyogVGhpcyBzdHlsZXNoZWV0IGdlbmVyYXRlZCBieSBUcmFuc2ZvbnRlciAoaHR0cDovL3RyYW5zZm9udGVyLm9yZykgb24gTm92ZW1iZXIgMTEsIDIwMTYgMTo1OCBBTSAqL1xyXG5cclxuQGZvbnQtZmFjZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdBdmVuaXIgTFQgU3RkJztcclxuICBzcmM6IHVybCgnLi4vZm9udHMvYXZlbmlyL0F2ZW5pckxUU3RkLUxpZ2h0LmVvdCcpO1xyXG4gIHNyYzogdXJsKCcuLi9mb250cy9hdmVuaXIvQXZlbmlyTFRTdGQtTGlnaHQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcclxuICB1cmwoJy4uL2ZvbnRzL2F2ZW5pci9BdmVuaXJMVFN0ZC1MaWdodC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXHJcbiAgdXJsKCcuLi9mb250cy9hdmVuaXIvQXZlbmlyTFRTdGQtTGlnaHQudHRmJykgZm9ybWF0KCd0cnVldHlwZScpO1xyXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ0F2ZW5pciBMVCBTdGQnO1xyXG4gIHNyYzogdXJsKCcuLi9mb250cy9hdmVuaXIvQXZlbmlyTFRTdGQtUm9tYW4uZW90Jyk7XHJcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL2F2ZW5pci9BdmVuaXJMVFN0ZC1Sb21hbi5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxyXG4gIHVybCgnLi4vZm9udHMvYXZlbmlyL0F2ZW5pckxUU3RkLVJvbWFuLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcclxuICB1cmwoJy4uL2ZvbnRzL2F2ZW5pci9BdmVuaXJMVFN0ZC1Sb21hbi50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnQXZlbmlyIExUIFN0ZCc7XHJcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL2F2ZW5pci9BdmVuaXJMVFN0ZC1Cb29rLmVvdCcpO1xyXG4gIHNyYzogdXJsKCcuLi9mb250cy9hdmVuaXIvQXZlbmlyTFRTdGQtQm9vay5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxyXG4gIHVybCgnLi4vZm9udHMvYXZlbmlyL0F2ZW5pckxUU3RkLUJvb2sud29mZicpIGZvcm1hdCgnd29mZicpLFxyXG4gIHVybCgnLi4vZm9udHMvYXZlbmlyL0F2ZW5pckxUU3RkLUJvb2sudHRmJykgZm9ybWF0KCd0cnVldHlwZScpO1xyXG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG59XHJcbiIsInNlY3Rpb24uaGVybyB7XG4gIG1hcmdpbjogYXV0bztcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgLmNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA5NjBweDtcbiAgICBoMSB7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBmb250LXNpemU6IDQwcHg7IH1cbiAgICAuYmFubmVyLWhlYWRpbmcge1xuICAgICAgbWFyZ2luLXRvcDogMTAwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgICBwYWRkaW5nOiAzMHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgIC5ncmVlbi1icmVhayB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9IH1cbiAgICBwIHtcbiAgICAgIG1hcmdpbi10b3A6IDNweDtcbiAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblxuICAgIC5mZWF0dXJlZC1hcnRpY2xlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGNEY0RjQ7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTAwcHg7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgxNTBweCkpO1xuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMDBweCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoMCkpOyB9XG4gICAgICAmLnNsaWRlciB7XG4gICAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgICAgLnJvdyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAgIC5sZWZ0IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogMTAwMHB4KSB7XG4gICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjRGNEY0O1xuICAgICAgICAgIHBhZGRpbmc6IDFlbSAwO1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDIwMHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUoMCwgLTUwJSkpO1xuICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDAwcHgpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKDAsIDApKTsgfSB9XG4gICAgICAgIGgxIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgcGFkZGluZzogMCAwIDEwcHg7XG4gICAgICAgICAgY29sb3I6ICM0YTRhNGE7XG4gICAgICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgICAgIHdpZHRoOiA5MCU7XG4gICAgICAgICAgbWFyZ2luOiAwIGF1dG87IH1cbiAgICAgICAgcCB7XG4gICAgICAgICAgcGFkZGluZzogMCAyMHB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBjb2xvcjogIzRhNGE0YTtcbiAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgd2lkdGg6IDc0JTtcbiAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogMTAwMHB4KSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICB3aWR0aDogOTAlOyB9IH1cbiAgICAgICAgLnJlYWQtbW9yZSB7XG4gICAgICAgICAgQGluY2x1ZGUgcmVhZC1tb3JlLWJ1dHRvbjtcbiAgICAgICAgICByaWdodDogMDsgfSB9XG4gICAgICAucmlnaHQge1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogMTAwMHB4KSB7XG4gICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvOyB9IH0gfSB9IH0gfVxuXG5zZWN0aW9uLnNwZWNpYWxpemUtaW4ge1xuICBwYWRkaW5nOiAzMHB4IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjM7XG4gIC5jb250YWluZXIge1xuICAgIHdpZHRoOiA5NjBweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgLnJvdyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoMyB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMzBweDsgfSB9IH0gfVxuXG4gIGltZy5zcGVjaWFsLWljb24tZWR1Y2F0aW9uIHtcbiAgICBtYXJnaW46IGF1dG87IH1cbiAgQGluY2x1ZGUgc21hbGwge1xuICAgIHBhZGRpbmc6IDAgMmVtOyB9IH1cblxuXG5zZWN0aW9uLmZlYXR1cmVkLXByb2R1Y3RzIHtcbiAgcGFkZGluZy10b3A6IDE0MHB4O1xuICB3aWR0aDogOTYwcHg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiBhdXRvO1xuICAuY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoMiB7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgICAgQGluY2x1ZGUgYmxhY2tmb250OyB9XG4gICAgcCB7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBtYXJnaW46IDVweDsgfVxuICAgIC5ncmVlbi1icmVhayB7XG4gICAgICBtYXJnaW46IDE2cHggYXV0bzsgfVxuICAgIC5wcm9kdWN0LWNvbnRhaW5lciB7XG4gICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAuaW5uZXItcHJvZHVjdC1jb250YWluZXIge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGVuKGdyZXksIDQwJSk7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMjlweCAyM3B4IDI5cHg7IH1cbiAgICAgIC5wcm9kdWN0LWlzLW5ldyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgY29sb3I6ICR3aGl0ZS10d287XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsZm9udDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICRnb2xkZW5yb2Q7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMDBweDtcbiAgICAgICAgcGFkZGluZzogMCAxNnB4O1xuICAgICAgICB0b3A6IDU1cHg7XG4gICAgICAgIHJpZ2h0OiAzNXB4OyB9XG4gICAgICAucHJvZHVjdC10aXRsZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIycHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkQXpvU2FucztcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxmb250O1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb2xvcjogJGdyZXlpc2gtYnJvd247IH0gfVxuICAgIC5wcm9kdWN0LWltYWdlLWNvbnRhaW5lciB7XG4gICAgICB3aWR0aDogMTgwcHg7XG4gICAgICAvLyBoZWlnaHQ6IDE4MHB4XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICBpbWcucHJvZHVjdC1pbWFnZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgICAucHJvZHVjdC1wcmljZSB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgc3BhbiB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkQXpvU2FucztcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxmb250O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAkZ3JleWlzaC1icm93bjsgfVxuICAgICAgZGVsIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7IH1cbiAgICAgIGlucyB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgY29sb3I6ICRzY2FybGV0OyB9IH0gfVxuICAgIC5wcm9kdWN0LWRldGFpbHMge1xuICAgICAgcGFkZGluZzogMTNweCA3cHg7XG4gICAgICBhIHtcbiAgICAgICAgQGV4dGVuZCAuYnV0dG9uLS1ncmV5LXNtYWxsOyB9IH1cbiAgICAucHJvZHVjdC53b29jb21tZXJjZS5hZGRfdG9fY2FydF9pbmxpbmUge1xuICAgICAgYS5hZGRfdG9fY2FydF9idXR0b24ge1xuICAgICAgICBAZXh0ZW5kIC53b29jb21tZXJjZS1zaG9ydGNvZGUtYWRkX3RvX2NhcnQtLWFkZC10by1jYXJ0LWJ1dHRvbjsgfVxuICAgICAgYS5hZGRlZF90b19jYXJ0LndjLWZvcndhcmQge1xuICAgICAgICBAZXh0ZW5kIC53b29jb21tZXJjZS1zaG9ydGNvZGUtYWRkX3RvX2NhcnQtLXZpZXctY2FydC1idXR0b247IH0gfSB9IH1cblxuLy9zZWN0aW9uIG9wdCBpblxuc2VjdGlvbi5vcHQtaW4ge1xuICBoZWlnaHQ6IDUwMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGNvbG9yOiAjZmZmO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAuY29udGFpbmVyIHtcbiAgICAucm93IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9IH1cbiAgJi5oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL0NhdGFsb2d1ZS1iYW5uZXIuanBnKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIC8vIG9wYWNpdHk6IDAuMDVcbiAgICB6LWluZGV4OiAtMTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiAwOyB9XG4gIC5pbWFnZS1jb250ZW50IHtcbiAgICBpbWcge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgQGluY2x1ZGUgc21hbGwge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICBmbG9hdDogbm9uZTsgfSB9IH1cbiAgLnRleHQtY29udGVudCB7XG4gICAgcGFkZGluZzogNjdweDtcbiAgICBAaW5jbHVkZSBzbWFsbCB7XG4gICAgICBwYWRkaW5nOiAyMHB4OyB9XG4gICAgaDIge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmb250LXNpemU6IDI0cHg7IH1cbiAgICAucGFyYWdyYXBoLWNvbnRlbnQge1xuICAgICAgd2lkdGg6IDYwJTtcbiAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgIHAge1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxOyB9IH1cbiAgICBidXR0b24ge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAxLjhweDtcbiAgICAgIGhlaWdodDogNDJweDtcbiAgICAgIG1hcmdpbjogMCBhdXRvOyB9IH1cbiAgQGluY2x1ZGUgc21hbGwge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiA2N3B4IDAgMTBweDsgfSB9XG5cbi8vIFNlY3Rpb24gb3B0IGluIGZvcm1cbnNlY3Rpb24ub3B0LWluLWZvcm0ge1xuICBwYWRkaW5nOiA1MnB4IDA7XG4gIGhlaWdodDogNTAwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG9wYWNpdHk6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICYuaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jb250ZW50IHtcbiAgICBoMiB7XG4gICAgICBmb250LXNpemU6IDI0cHg7IH1cbiAgICAucGFyYWdyYXBoLWNvbnRlbnQge1xuICAgICAgd2lkdGg6ICgxMDAlLzMpO1xuICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgICAgIEBpbmNsdWRlIHNtYWxsIHtcbiAgICAgICAgd2lkdGg6IDYwJTsgfSB9XG4gICAgLmZyb250cGFnZS1mb3JtIHtcbiAgICAgIHdpZHRoOiA3NSU7XG4gICAgICBtYXJnaW46IGF1dG87IH1cbiAgICAuZnJvbnRwYWdlLWZvcm0ge1xuICAgICAgLmxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgICBsaW5lLWhlaWdodDogMS44NjtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgY29sb3I6ICRicm93bmlzaC1ncmV5O1xuICAgICAgICBwYWRkaW5nOiAwOyB9XG4gICAgICAudGV4dGJveCwgLnRleHRhcmVhIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICR3YXJtLWdyZXktdGhyZWU7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBoZWlnaHQ6IGF1dG87IH1cbiAgICAgIC50ZXh0YXJlYSB7XG4gICAgICAgIGhlaWdodDogNzBweDsgfVxuICAgICAgLnJhZGlvYnV0dG9uIHtcbiAgICAgICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICY6Y2hlY2tlZCArIGxhYmVsOmJlZm9yZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2ljay1ncmVlbjsgfSB9IH1cbiAgICAgIC5zdWJtaXQge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E2Y2UzOTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAycHg7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMTBweCAzNXB4O1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XG4gICAgICAuYnV0dG9uLXdyYXBwZXIge1xuICAgICAgICBtYXJnaW46IC01MHB4O1xuICAgICAgICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTZjZTM5O1xuICAgICAgICAgIGJvcmRlci13aWR0aDogMnB4O1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBwYWRkaW5nOiAxMHB4IDM1cHg7XG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMS44cHg7XG4gICAgICAgICAgaGVpZ2h0OiA0MnB4OyB9IH0gfSB9XG4gIEBpbmNsdWRlIHNtYWxsIHtcbiAgICBoZWlnaHQ6IGF1dG87IH0gfVxuLy9zZWN0aW9uLmdldC1pbi10b3VjaFxuc2VjdGlvbi5nZXQtaW4tdG91Y2gge1xuICAvLyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9nZXRfaW5fdG91Y2guanBnJylcbiAgcGFkZGluZzogNTBweCAwO1xuICAmLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDk2MHB4O1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAuZ3JlZW4tYnJlYWsge1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7IH1cbiAgaDIge1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogOTAwO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIHRleHQtc2hhZG93OiAycHggMnB4IDJweCByZ2JhKDAsMCwwLDAuNSk7IH1cbiAgcCB7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICB0ZXh0LXNoYWRvdzogMnB4IDJweCAycHggcmdiYSgwLDAsMCwwLjUpOyB9XG4gIGJ1dHRvbiB7XG4gICAgd2lkdGg6IDE1M3B4O1xuICAgIGhlaWdodDogNDRweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2ljay1ncmVlbjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1pbWFnZS1zb3VyY2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNiNGVjNTEsICM0MjkzMjEpO1xuICAgIGJvcmRlci1pbWFnZS1zbGljZTogMTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OyB9IH1cblxuLnBhcmFsbGF4LXdpbmRvdyB7XG4gIG1pbi1oZWlnaHQ6IDYwMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuLnBhcmFsbGF4LWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7IH1cbiIsIi5jb250YWN0LWNvbnRhaW5lciwgLnNpbmdsZS1jb250YWluZXIge1xuICBvcGFjaXR5OiAwLjk7XG4gIC8vIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmZcbiAgLmdyZWVuLWJyZWFrLTYge1xuICAgIG1hcmdpbjogMTZweCBhdXRvOyB9XG4gIC5oZWFkZXItdGV4dCB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICRncmV5aXNoLWJyb3duOyB9XG4gIC5kZXNjcmlwdGlvbi10ZXh0IHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDM7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAkZ3JleWlzaC1icm93bjtcbiAgICBtYXJnaW46IDIycHggYXV0byA1MXB4OyB9XG4gIC5jb250YWN0LXBhZ2UtZm9ybSB7XG4gICAgLmxhYmVsIHtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjg2O1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGNvbG9yOiAkYnJvd25pc2gtZ3JleTtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAudGV4dGJveCwgLnRleHRhcmVhIHtcbiAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAkd2FybS1ncmV5LXRocmVlO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGhlaWdodDogYXV0bzsgfVxuICAgIC50ZXh0YXJlYSB7XG4gICAgICBoZWlnaHQ6IDcwcHg7IH1cbiAgICAucmFkaW9idXR0b24ge1xuICAgICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAmOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICRzaWNrLWdyZWVuOyB9IH0gfVxuICAgIC5zdWJtaXQge1xuICAgICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTZjZTM5O1xuICAgICAgYm9yZGVyLXdpZHRoOiAycHg7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBwYWRkaW5nOiAxMHB4IDM1cHg7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7IH0gfVxuICAud3BjZjcge1xuICAgIC5kZXNjcmlwdGlvbi10ZXh0IHtcbiAgICAgIG1hcmdpbjogMTBweCBhdXRvOyB9IH0gfVxuIiwiLnNpbmdsZS1jb250YWluZXIuYWJvdXQtdXMge1xuICAuY29udGVudCB7XG4gICAgcGFkZGluZy1ib3R0b206IDY4cHg7XG4gICAgaDMge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDsgfVxuICAgIC5ncmVlbi1icmVhay02IHtcbiAgICAgIG1hcmdpbjogMTZweCAwOyB9IH1cbiAgLmNvbnRlbnQuY2F0ZWdvcnkge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiA1MnB4O1xuICAgIGgzIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkQXZlbmlyTmV4dDtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBjb2xvcjogJGdyZXlpc2gtYnJvd24tdHdvO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIHAge1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjb2xvcjogJGdyZXlpc2gtYnJvd247XG4gICAgICBtYXJnaW4tYm90dG9tOiA4cHg7IH1cbiAgICAuZ3JlZW4tYnJlYWstNiB7XG4gICAgICBtYXJnaW46IDE2cHggYXV0bzsgfSB9XG4gIC5wb3N0LWxpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIG1hcmdpbi1ib3R0b206IDY2cHg7XG4gICAgLnBvc3QtbGlzdC1pdGVtIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUtbmluZTtcbiAgICAgIGJhY2tncm91bmQtY2xpcDogY29udGVudC1ib3g7XG4gICAgICAucG9zdC1saXN0LWl0ZW0taW5uZXIge1xuICAgICAgICBpbWcge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMjAwcHg7IH1cbiAgICAgICAgLnBvc3QtbGlzdC1pdGVtLWNvbnRlbnQge1xuICAgICAgICAgIHBhZGRpbmc6IDMzcHggMjBweCA0OHB4IDIwcHg7XG4gICAgICAgICAgLnRpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkQXZlbmlyTmV4dDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgY29sb3I6ICRncmV5aXNoLWJyb3duO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsgfVxuICAgICAgICAgIC5leGNlcnB0IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgICAgICAgICAgY29sb3I6ICRncmV5aXNoLWJyb3duOyB9IH0gfVxuICAgICAgLnJlYWQtbW9yZSB7XG4gICAgICAgIEBpbmNsdWRlIHJlYWQtbW9yZS1idXR0b247IH0gfSB9IH1cbiIsIi5zaW5nbGUtY29udGFpbmVyLm91ci10ZWFtIHtcbiAgLmNvbnRlbnQge1xuICAgIHBhZGRpbmctYm90dG9tOiA2OHB4O1xuICAgIGgzIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7IH0gfVxuICAuY29udGVudC5jYXRlZ29yeSB7XG4gICAgcGFkZGluZy10b3A6IDY0cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDUycHg7XG4gICAgaDMge1xuICAgICAgZm9udC1mYW1pbHk6ICRBdmVuaXJOZXh0O1xuICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGNvbG9yOiAkZ3JleWlzaC1icm93bi10d287XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgcCB7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGNvbG9yOiAkZ3JleWlzaC1icm93bjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsgfVxuICAgIC5ncmVlbi1icmVhay02IHtcbiAgICAgIG1hcmdpbjogMTZweCBhdXRvOyB9IH1cbiAgLnVzZXItbGlzdCwgLnBvc3QtbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogNjZweDtcbiAgICAudXNlci1saXN0LWl0ZW0sIC5wb3N0LWxpc3QtaXRlbSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgYmFja2dyb3VuZDogJHdoaXRlLW5pbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNsaXA6IGNvbnRlbnQtYm94O1xuICAgICAgLnVzZXItbGlzdC1pdGVtLWlubmVyLCAucG9zdC1saXN0LWl0ZW0taW5uZXIge1xuICAgICAgICBpbWcge1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGhlaWdodDogMjAwcHg7IH1cbiAgICAgICAgLnVzZXItbGlzdC1pdGVtLWNvbnRlbnQsIC5wb3N0LWxpc3QtaXRlbS1jb250ZW50IHtcbiAgICAgICAgICBwYWRkaW5nOiAzM3B4IDIwcHggMzNweCAyMHB4O1xuICAgICAgICAgIGg1IHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJEF2ZW5pck5leHQ7IH1cbiAgICAgICAgICAudGl0bGUge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRBdmVuaXJOZXh0O1xuICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICBjb2xvcjogJGdyZXlpc2gtYnJvd247XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7IH1cbiAgICAgICAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgICAgIGNvbG9yOiAkZ3JleWlzaC1icm93bjsgfVxuICAgICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRncmVlbjsgfSB9IH1cbiAgICAgIC5yZWFkLW1vcmUge1xuICAgICAgICBAaW5jbHVkZSByZWFkLW1vcmUtYnV0dG9uOyB9IH0gfSB9XG4iLCIuc2luZ2xlLWNvbnRhaW5lciB7XG4gIC5iYW5uZXIge1xuICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy93b29fcHJvZHVjdF9zaW5nbGVfYmFubmVyLmpwZ1wiKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDUwJTtcbiAgICAuZ3JlZW4tYnJlYWsge1xuICAgICAgd2lkdGg6IDM0cHg7XG4gICAgICBoZWlnaHQ6IDZweDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luOiAxNnB4IGF1dG87XG4gICAgICBib3JkZXI6IG5vbmU7IH1cbiAgICAuaGVhZGVyLXRleHQge1xuICAgICAgZm9udC1zaXplOiAzNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgbGluZS1oZWlnaHQ6IDAuOTc7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjb2xvcjogJHdoaXRlLXR3bztcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cbiAgICAuZGVzY3JpcHRpb24tdGV4dCB7XG4gICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgICBsaW5lLWhlaWdodDogMS40NDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGNvbG9yOiAkd2hpdGUtdHdvO1xuICAgICAgbWFyZ2luLWJvdHRvbTogNTNweDsgfSB9XG4gIC5jb250ZW50IHtcbiAgICBwYWRkaW5nLXRvcDogNDZweDtcbiAgICB1bCB7XG4gICAgICBtYXJnaW46IDAgMCAxZW0gMi4yZW07XG4gICAgICBsaSB7XG4gfSB9ICAgICAgICAvL2xpc3Qtc3R5bGUtdHlwZTogZGlzY1xuICAgIHAsIGxpIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkQXZlbmlyTmV4dDtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQzO1xuICAgICAgY29sb3I6ICRncmV5aXNoLWJyb3duOyB9XG4gICAgaDMge1xuICAgICAgbWFyZ2luOiAxNnB4IGF1dG8gMjJweCBhdXRvO1xuICAgICAgZm9udC1mYW1pbHk6ICRBdmVuaXJOZXh0O1xuICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBjb2xvcjogJGdyZXlpc2gtYnJvd247IH1cbiAgICBoNCB7XG4gICAgICBtYXJnaW46IDE2cHggYXV0byA4cHggYXV0bztcbiAgICAgIGZvbnQtZmFtaWx5OiAkQXZlbmlyTmV4dDtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgICBsaW5lLWhlaWdodDogMS40NDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICBjb2xvcjogJGdyZXlpc2gtYnJvd247IH1cbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkZ3JlZW47IH1cbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkQXZlbmlyTmV4dDtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQzO1xuICAgICAgY29sb3I6ICRncmV5aXNoLWJyb3duO1xuICAgICAgcGFkZGluZzogMCAwIDAgMjhweDtcbiAgICAgIGJvcmRlci1sZWZ0OiA4cHggc29saWQgJHdoaXRlLWZvdXI7XG4gICAgICBwIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRBdmVuaXJOZXh0O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQzO1xuICAgICAgICBjb2xvcjogJGdyZXlpc2gtYnJvd247IH1cbiAgICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9IH0gfVxuICAuY2FzZS1zdHVkeS1pdGVtLWNvbnRhaW5lciB7XG4gICAgLmNhc2Utc3R1ZHktaXRlbSB7XG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAuY29sIHtcbiAgICAgICAgcGFkZGluZzogNTdweCA0MHB4IDQwcHggNDBweDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS1uaW5lO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGgzIHtcbiAgICAgICAgICBtYXJnaW46IDExcHggYXV0byAyMnB4IDA7XG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgICAgICBwIHtcbiAgICAgICAgICBmb250LWZhbWlseTogJEF2ZW5pck5leHQ7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgIEBpbmNsdWRlIG5vcm1hbGZvbnQ7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDM7XG4gICAgICAgICAgY29sb3I6ICRncmV5aXNoLWJyb3duOyB9XG4gICAgICAgIC5yZWFkLW1vcmUge1xuICAgICAgICAgIEBpbmNsdWRlIHJlYWQtbW9yZS1idXR0b247XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgei1pbmRleDogMTAwOyB9IH0gfSB9IH1cbiIsIi5zaW5nbGUtY29udGFpbmVyLmNhc2Utc3R1ZGllcyB7XG5cdC5zbGljay1kb3RzIHtcblx0XHRib3R0b206IGF1dG87XG5cdFx0dG9wOiAwO1xuXHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdGxpIGJ1dHRvbiB7XG5cdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRmb250LXNpemU6IDM2cHg7XG5cdFx0XHRcdGJveC1zaGFkb3cge30gfSB9IH1cblx0YSB7XG5cdFx0Y29sb3I6ICRncmV5aXNoLWJyb3duO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9IH1cbiIsIi5zaW5nbGUtY29udGFpbmVyLnNlcnZpY2VzIHtcbiAgLmJhbm5lciAucmVmZXJlbmNlLXRleHQge1xuICAgIGNvbG9yOiAkd2hpdGUtdHdvO1xuICAgIHRleHQtc2hhZG93OiAycHggMnB4IDJweCByZ2JhKDAsMCwwLDAuNik7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbjogMCAyMHB4OyB9XG4gIC5jb250ZW50LmNhdGVnb3J5IHtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNTJweDtcbiAgICBoMyB7XG4gICAgICBmb250LWZhbWlseTogJEF2ZW5pck5leHQ7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgY29sb3I6ICRncmV5aXNoLWJyb3duLXR3bztcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICBwIHtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY29sb3I6ICRncmV5aXNoLWJyb3duO1xuICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OyB9XG4gICAgLmdyZWVuLWJyZWFrLTYge1xuICAgICAgbWFyZ2luOiAxNnB4IGF1dG87IH0gfVxuICAucG9zdC1saXN0IHtcbiAgICBtYXJnaW4tYm90dG9tOiA2NnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIC5wb3N0LWxpc3QtaXRlbSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgYmFja2dyb3VuZDogJHdoaXRlLW5pbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNsaXA6IGNvbnRlbnQtYm94O1xuICAgICAgLnBvc3QtbGlzdC1pdGVtLWlubmVyIHtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBoZWlnaHQ6IDIwMHB4OyB9XG4gICAgICAgIC5wb3N0LWxpc3QtaXRlbS1jb250ZW50IHtcbiAgICAgICAgICBwYWRkaW5nOiAzM3B4IDIwcHggNDhweCAyMHB4O1xuICAgICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJEF2ZW5pck5leHQ7XG4gICAgICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIGNvbG9yOiAkZ3JleWlzaC1icm93bjtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7IH1cbiAgICAgICAgICAuZXhjZXJwdCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICAgICAgICAgIGNvbG9yOiAkZ3JleWlzaC1icm93bjsgfSB9IH1cbiAgICAgIC5yZWFkLW1vcmUge1xuICAgICAgICBAaW5jbHVkZSByZWFkLW1vcmUtYnV0dG9uOyB9IH0gfSB9XG4iLCIuY2F0ZWdvcnktY29udGFpbmVyIHtcbiAgLmNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDcycHggMCA1MnB4IDA7XG4gICAgaDMge1xuICAgICAgZm9udC1mYW1pbHk6ICRBdmVuaXJOZXh0O1xuICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGNvbG9yOiAkZ3JleWlzaC1icm93bi10d287XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgcCB7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGNvbG9yOiAkZ3JleWlzaC1icm93bjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDhweDsgfVxuICAgIC5ncmVlbi1icmVhay02IHtcbiAgICAgIG1hcmdpbjogMTZweCBhdXRvOyB9IH1cbiAgLnBvc3QtbGlzdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogOTJweDtcbiAgICAucG9zdC1saXN0LWl0ZW0ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS1uaW5lO1xuICAgICAgYmFja2dyb3VuZC1jbGlwOiBjb250ZW50LWJveDtcbiAgICAgIC5wb3N0LWxpc3QtaXRlbS1pbm5lciB7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgaGVpZ2h0OiAyMDBweDsgfVxuICAgICAgICAucG9zdC1saXN0LWl0ZW0tY29udGVudCB7XG4gICAgICAgICAgcGFkZGluZzogMzNweCAyMHB4IDQ4cHggMjBweDtcbiAgICAgICAgICAudGl0bGUge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRBdmVuaXJOZXh0O1xuICAgICAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICBjb2xvcjogJGdyZXlpc2gtYnJvd247XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4OyB9XG4gICAgICAgICAgLmV4Y2VycHQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgICAgICAgICBjb2xvcjogJGdyZXlpc2gtYnJvd247IH0gfSB9XG4gICAgICAucmVhZC1tb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMjVweDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2ljay1ncmVlbjtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAxLjRweDtcbiAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICB0cmFuc2l0aW9uOiAwLjRzIGVhc2UgYWxsO1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJyb3duaXNoLWdyZXk7XG4gICAgICAgICAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMTVweCBGb250QXdlc29tZTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBoZWlnaHQ6IDI1cHg7XG4gICAgICAgICAgd2lkdGg6IDI1cHg7XG4gICAgICAgICAgY29udGVudDogJ1xcZjEwNSc7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICBwYWRkaW5nOiA0cHggMTBweDtcbiAgICAgICAgICByaWdodDogLTI1cHg7XG4gICAgICAgICAgYm90dG9tOiAwOyB9IH0gfSB9XG4gIC8vU2FtZSBoZWlnaHRcbiAgLnBvc3QtbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH0gfVxuIiwiLmNhdGVnb3J5LWNvbnRhaW5lci5jYXNlLXN0dWRpZXMsIC5zaW5nbGUtY29udGFpbmVyLmNhc2Utc3R1ZGllcyB7XG4gIC50b29sLXBhZ2luYXRpb24ge1xuICAgIG1hcmdpbjogMCA1cHggMTBweCAxMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5wYWdlcywgLnBhZ2VzIGxpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7IH1cblxuICAgIC5wcmV2LCAucGFnZXMgbGkgYSwgLnBhZ2VzIGxpIHNwYW4sIC5uZXh0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTY2LCAyMDYsIDU3LCAwLjUpO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgICB0cmFuc2l0aW9uOiAuMnMgYWxsO1xuICAgICAgJi5jdXJyZW50IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E2Y2UzOTsgfVxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTY2LCAyMDYsIDU3LCAxKTsgfSB9IH1cblxuICAuY2FzZS1zdHVkeS1pdGVtLWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAucm93IHtcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgID4uY29sIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAuY2FzZS1zdHVkeS1pdGVtIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgcGFkZGluZzogNTdweCA0MHB4IDQwcHggNDBweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSAyMCU7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlLW5pbmUgbm8tcmVwZWF0O1xuICAgICAgICAgIGhlaWdodDogMzUwcHg7XG4gICAgICAgICAgbWFyZ2luOiAwIDVweCAxMHB4IDEwcHg7XG4gICAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDk5M3B4KSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMTBweCAxMHB4OyB9IH1cbiAgICAgICAgLmNhc2Utc3R1ZHktaXRlbS1jb250ZW50IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDAuNik7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgIHBhZGRpbmc6IDIwcHggNTBweDtcbiAgICAgICAgICAmOmFmdGVyIHt9XG4gICAgICAgICAgZGlzcGxheTogYmxvY2sge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBjbGVhcjogYm90aDsgfSB9XG4gICAgICAgIGgzIHtcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgbWFyZ2luOiAxMHB4IDAgMDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBjbGVhcjogbm9uZTsgfVxuICAgICAgICBhIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzaWNrLWdyZWVuO1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICBwYWRkaW5nOiA1cHggMjBweDtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMTBweDsgfVxuICAgICAgICAucmVhZC1tb3JlIHtcbiAgICAgICAgICB6LWluZGV4OiAxMDA7IH1cbiAgICAgICAgKyAuY29sIC5jYXNlLXN0dWR5LWl0ZW0ge1xuICAgICAgICAgIG1hcmdpbjogMCAxMHB4IDEwcHggNXB4O1xuICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA5OTNweCkge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDEwcHggMTBweDsgfSB9IH1cbiAgICAgIHVsIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMWVtIDEuMmVtO1xuICAgICAgICBsaSB7XG4gICAgICAgICAgbGlzdC1zdHlsZTogZGlzYzsgfSB9IH0gfSB9XG4iLCJmb3JtLndwY2Y3LWZvcm0ge1xuXHRtYXJnaW4tYm90dG9tOiAxMDBweDtcblx0aW5wdXRbdHlwZT1cInRleHRcIl0sIGlucHV0W3R5cGU9XCJlbWFpbFwiXSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdFx0Ym9yZGVyOiBub25lO1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjaztcblx0XHRib3gtc2hhZG93OiBub25lOyB9XG5cdGxhYmVsIHtcblx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0Y29sb3I6ICRicm93bmlzaC1ncmV5O1xuXHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblx0aW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG5cdFx0Zm9udC1mYW1pbHk6IGF6by1zYW5zLXdlYiwgc2Fucy1zZXJpZjtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0Zm9udC1zaXplOiAxMHB4O1xuXHRcdGxldHRlci1zcGFjaW5nOiAzcHg7XG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblx0XHRwYWRkaW5nOiAxNXB4IDIwcHg7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJHNpY2stZ3JlZW47XG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXHRkaXYud3BjZjctcmVzcG9uc2Utb3V0cHV0IHtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0Ym9yZGVyLXJhZGl1czogNXB4OyB9XG5cdGRpdi53cGNmNy1tYWlsLXNlbnQtb2sge1xuXHRcdGJvcmRlci1jb2xvcjogJHNpY2stZ3JlZW47IH1cblx0ZGl2LndwY2Y3LXZhbGlkYXRpb24tZXJyb3JzIHtcblx0XHRib3JkZXItY29sb3I6ICRnb2xkZW5yb2Q7IH0gfVxuIiwiLmNhdGVnb3J5LXNpZGViYXIge1xuICBwYWRkaW5nOiAwO1xuICB1bCB7XG4gICAgbWFyZ2luLXRvcDogNDFweDtcbiAgICBhIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZzogMjJweCA1cHggMTdweCAxMnB4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjb2xvcjogJGdyZXlpc2gtYnJvd247XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkd2hpdGU7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgIGNvbG9yOiAkc2ljay1ncmVlbjtcbiAgICAgICAgICBib3JkZXItcmlnaHQ6IDVweCBzb2xpZCAkc2ljay1ncmVlbjsgfVxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2ljay1ncmVlbjtcbiAgICAgICAgICBjb2xvcjogJHdoaXRlLXR3bzsgfSB9IH0gfSB9XG5cblxuXG5AaW5jbHVkZSBpcGFkKCkge1xuICAuY2F0ZWdvcnktc2lkZWJhciB1bCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH0gfVxuXG5cblxuLmNhdGVnb3J5LXNpZGViYXIge1xuXG4gIC5wcm9kdWN0cy13YXNocm9vbS1oYXJkd2FyZS1zaG93ZXItc2VhdHMsXG4gIC5wcm9kdWN0cy13YXNocm9vbS1oYXJkd2FyZS1zaG93ZXItdHJhY2tzLW9yLWtpdHMsXG4gIC5wcm9kdWN0cy13YXNocm9vbS1oYXJkd2FyZS13YXNocm9vbS1wYXJ0aXRpb24tZnVybml0dXJlLFxuICAucHJvZHVjdHMtd2FzaHJvb20taGFyZHdhcmUtdG9pbGV0LXJvbGwtZGlzcGVuc2VycyxcbiAgLnByb2R1Y3RzLXdhc2hyb29tLWhhcmR3YXJlLWhhbmQtdG93ZWwtZGlzcGVuc2VycyxcbiAgLnByb2R1Y3RzLXdhc2hyb29tLWhhcmR3YXJlLXNvYXAtZGlzcGVuc2VycyxcbiAgLnByb2R1Y3RzLXdhc2hyb29tLWhhcmR3YXJlLXdhc2hyb29tLXdhc3RlLWJpbnMsXG4gIC5wcm9kdWN0cy13YXNocm9vbS1oYXJkd2FyZS1oYW5kLWRyaWVycyxcbiAgLnByb2R1Y3RzLXdhc2hyb29tLWhhcmR3YXJlLWdyYWItcmFpbHMsXG4gIC5wcm9kdWN0cy13YXNocm9vbS1oYXJkd2FyZS13YXNocm9vbS1taXJyb3JzLFxuICAucHJvZHVjdHMtd2FzaHJvb20taGFyZHdhcmUtd2FzaHJvb20tYWNjZXNzb3JpZXMsIHtcbiAgICBkaXNwbGF5Ojogbm9uZTtcbiAgICB2aXNpYmlsaXR5OjogaGlkZGVuOyB9IH1cbiIsIi5ncmVlbi1icmVhayB7XG5cdHdpZHRoOiA0MHB4O1xuXHRoZWlnaHQ6IDdweDtcblx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHRkaXNwbGF5OiBibG9jaztcblx0YmFja2dyb3VuZC1jb2xvcjogJGdyZWVuO1xuXHRtYXJnaW46IDE2cHggYXV0bzsgfVxuIiwiQG1peGluIGJ1dHRvbi1mbGF0IHtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xuICBvdXRsaW5lOiBub25lOyB9XG5cbi8vR3JlZW4gcm91bmRlZCBidXR0b25cbmJ1dHRvbi5ncmVlbi1yb3VuZGVkLWJ1dHRvbiB7XG4gIEBpbmNsdWRlIGJ1dHRvbi1mbGF0O1xuICB3aWR0aDogMjMxcHg7XG4gIGhlaWdodDogNTNweDtcbiAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICRzaWNrLWdyZWVuO1xuICBtYXJnaW46IDQxcHggYXV0byA1NHB4IGF1dG87XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IGxpZ2h0ZW4oJHNpY2stZ3JlZW4sIDEwJSk7IH0gfVxuXG4uY2FydC1mb290ZXIgLmNvdXBvbiBpbnB1dFtuYW1lPWFwcGx5X2NvdXBvbl0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2ljay1ncmVlbjsgfVxuIiwiLnNpZGUtbmF2IHtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIGxpIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgaW1nIHtcbiAgICAgICAgbWFyZ2luOiBhdXRvOyB9IH0gfSB9XG5cbi8vVG8gcHJldmVudCB0aGlzIGxheWVyIG92ZXJsYXAgdGhlIG1lbnVcbi5kcmFnLXRhcmdldCB7XG4gIG1heC13aWR0aDogMjAlICFpbXBvcnRhbnQ7IH1cbiIsIi5mb290ZXIge1xuICBiYWNrZ3JvdW5kOiAjNTE1MjU2O1xuICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7XG4gIC5zb2NpYWwtaWNvbnMge1xuICAgIGJ1dHRvbiB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAkc2ljay1ncmVlbjtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBwYWRkaW5nOiA1cHggN3B4O1xuICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfSB9XG4gIHAuY29udGFjdC11cyB7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBhLmZvb3Rlci10ZWwge1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIGNvbG9yOiAkc2ljay1ncmVlbjsgfVxuICBhLmZvb3Rlci1lbWFpbCB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIEBpbmNsdWRlIG5vcm1hbGZvbnQ7IH1cbiAgLmZvb3Rlci1zaXRlLXRpdGxlIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gIC5mb290ZXItbWVudSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpIHtcbiAgICAgIG1hcmdpbjogMTBweCBhdXRvO1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgY29sb3I6ICR3aGl0ZS10d287XG4gICAgICBAaW5jbHVkZSBub3JtYWxmb250O1xuICAgICAgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgY29sb3I6ICR3aGl0ZS10d287XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGZvbnQ7IH0gfSB9IH1cbiIsIi5ncmVlbi1saW5lIHtcbiAgd2lkdGg6IDM0cHg7XG4gIGhlaWdodDogMnB4O1xuICBib3JkZXI6IHNvbGlkIDJweCAkc2ljay1ncmVlbjsgfVxuLmNvbnRhaW5lci05NjAge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA5NjBweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuLmNvbnRhaW5lci1mdWxsIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bzsgfVxuLmdyZXktYnJlYWsge1xuICBkaXNwbGF5OiBibG9jaztcbiAgaGVpZ2h0OiAxcHg7XG4gIHdpZHRoOiAyODFweDtcbiAgYm9yZGVyOiBzb2xpZCAxcHggJHdoaXRlLXRlbjsgfVxuLmdyZWVuLWJyZWFrLTIge1xuICBoZWlnaHQ6IDJweDtcbiAgd2lkdGg6IDM0cHg7XG4gIGJhY2tncm91bmQ6ICRzaWNrLWdyZWVuO1xuICBkaXNwbGF5OiBibG9jazsgfVxuLmdyZWVuLWJyZWFrLTYge1xuICBoZWlnaHQ6IDZweDtcbiAgd2lkdGg6IDM0cHg7XG4gIGJhY2tncm91bmQ6ICRzaWNrLWdyZWVuO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAxNnB4IDA7IH1cbi5ncmVlbi1ib3gge1xuICBtYXJnaW4tdG9wOiAzMXB4O1xuICBwYWRkaW5nOiA0MHB4IDMzcHggNDBweCAzM3B4O1xuICBiYWNrZ3JvdW5kOiAkc2ljay1ncmVlbi10aHJlZTtcbiAgaDQge1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDI4cHggIWltcG9ydGFudDtcbiAgICBmb250LWZhbWlseTogJEF2ZW5pck5leHQ7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogMS40NDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGNvbG9yOiAkZ3JleWlzaC1icm93bjsgfVxuICB1bCB7XG4gICAgcGFkZGluZy1sZWZ0OiAyN3B4O1xuICAgIGxpIHtcbiAgICAgIGZvbnQtZmFtaWx5OiAkQXZlbmlyTmV4dDtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQzO1xuICAgICAgY29sb3I6ICRncmV5aXNoLWJyb3duO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfSB9IH1cblxuLmFycm93LXVwIHtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiA2cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDEycHggc29saWQgJHdoaXRlLWZvdXI7XG4gIG1hcmdpbi1ib3R0b206IDVweDsgfVxuXG4uYXJyb3ctZG93biB7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlci1sZWZ0OiA2cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiAxMnB4IHNvbGlkICR3aGl0ZS1mb3VyO1xuICBtYXJnaW4tdG9wOiA1cHg7IH1cbiIsIi5iYW5uZXIge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvd29vX3Byb2R1Y3Rfc2luZ2xlX2Jhbm5lci5qcGdcIikgbm8tcmVwZWF0IDEwMCUgMTAwJS9jb3ZlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgLmdyZWVuLWJyZWFrIHtcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDZweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDQ2cHggYXV0byAxNnB4IGF1dG87XG4gICAgYm9yZGVyOiBub25lOyB9XG4gIC5oZWFkZXItdGV4dCB7XG4gICAgZm9udC1zaXplOiAzNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgIGxpbmUtaGVpZ2h0OiAwLjk3O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICR3aGl0ZS10d287XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB0ZXh0LXNoYWRvdzogMnB4IDJweCAycHggcmdiYSgwLDAsMCwwLjYpOyB9XG4gIC5kZXNjcmlwdGlvbi10ZXh0IHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogJHdoaXRlLXR3bztcbiAgICBtYXJnaW4tYm90dG9tOiA1M3B4O1xuICAgIHRleHQtc2hhZG93OiAycHggMnB4IDJweCByZ2JhKDAsMCwwLDAuNik7IH0gfVxuIiwiLy9mb3IgYWRkIHRvIGNhcnQgYnV0dG9uIGdlbmVyYXRlZCBieSBzaG9ydGNvZGUgW2FkZF90b19jYXJ0XVxuLndvb2NvbW1lcmNlLXNob3J0Y29kZS1hZGRfdG9fY2FydC0tYWRkLXRvLWNhcnQtYnV0dG9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGJyb3duaXNoLWdyZXk7XG4gIGJvcmRlcjogbm9uZTtcbiAgZm9udC1mYW1pbHk6ICRPcGVuU2FucztcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6IDNweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogJHdoaXRlLXR3bztcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdXRsaW5lOiBub25lO1xuICAmLmFkZGVkOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlxcZjA0NlwiO1xuICAgIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDE1cHggRm9udEF3ZXNvbWU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHJpZ2h0OiAtMzBweDtcbiAgICB0b3A6IDA7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGJhY2tncm91bmQ6ICRzaWNrLWdyZWVuO1xuICAgIGhlaWdodDogMzBweDtcbiAgICB3aWR0aDogMzBweDsgfSB9XG4ud29vY29tbWVyY2Utc2hvcnRjb2RlLWFkZF90b19jYXJ0LS12aWV3LWNhcnQtYnV0dG9uIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgY29sb3I6ICRzaWNrLWdyZWVuO1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIEBpbmNsdWRlIG5vcm1hbGZvbnQ7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC1mYW1pbHk6ICRPcGVuU2FuczsgfVxuIiwiLy9SZWZpbmUgU2VhcmNoIEJhclxuLnJlZmluZSB7XG4gIC5jb250YWluZXIge1xuICAgIG1heC13aWR0aDogOTYwcHg7IH1cbiAgYmFja2dyb3VuZDogJHNpY2stZ3JlZW47XG4gIG9wYWNpdHk6IDAuOTtcbiAgJi5zZWFyY2hiYXItdG9wLXRydWUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLnJvdyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIHAge1xuICAgIG1hcmdpbjogMDsgfVxuICAubGVmdC1sYWJlbCB7XG4gICAgZm9udC1mYW1pbHk6ICRBem9TYW5zO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBjb2xvcjogJHdoaXRlLXR3bztcbiAgICAudGV4dCB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIG1hcmdpbi1yaWdodDogMjdweDsgfSB9XG4gIC5yaWdodC1mb3JtIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGU7XG4gICAgLnJvdyB7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuc2VhcmNoLWJveCB7XG4gICAgICAvL3dpZHRoOiBwZXJjZW50YWdlKCg4NzEtODApLzg3MSlcbiAgICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBjb2xvcjogJHNpY2stZ3JlZW47XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNfc2VhcmNoLnBuZ1wiKTtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IDUwcHg7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAxMHB4IGF1dG87XG4gICAgICAgICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICAgIGNvbG9yOiAkc2ljay1ncmVlbjsgfVxuICAgICAgICAmOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICBjb2xvcjogJHNpY2stZ3JlZW47IH1cbiAgICAgICAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICAgIGNvbG9yOiAkc2ljay1ncmVlbjsgfSB9IH0gfSB9XG4vL0VuZCBSZWZpbmUgU2VhcmNoIEJhclxuXG4vL2ZvciB0eXBlYWhlYWQgb25seVxuLnJlZmluZSB7XG4gIC5zZWFyY2gtYm94IHtcbiAgICAuYXdzLXNlYXJjaC1mb3JtIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfSB9XG4iLCIuc2xpZGVyIHtcbiAgLnNsaWNrLXNsaWRlIHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7IH1cbiAgLnNsaWNrLXByZXYuc2xpY2stYXJyb3csIC5zbGljay1uZXh0LnNsaWNrLWFycm93IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuIiwiLy9CYW5uZXJcbi53b28tcHJvZHVjdC1hcmNoaXZlIHtcbiAgLmJhbm5lciB7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL3dvb19wcm9kdWN0X3NpbmdsZV9iYW5uZXIuanBnXCIpIG5vLXJlcGVhdCAxMDAlIDEwMCUvY292ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAuZ3JlZW4tYnJlYWsge1xuICAgICAgd2lkdGg6IDM0cHg7XG4gICAgICBoZWlnaHQ6IDZweDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luOiAzOXB4IGF1dG8gMTZweCBhdXRvO1xuICAgICAgYm9yZGVyOiBub25lOyB9XG4gICAgLmhlYWRlci10ZXh0IHtcbiAgICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwLjk3O1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY29sb3I6ICR3aGl0ZS10d287XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG4gICAgLmRlc2NyaXB0aW9uLXRleHQge1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNDQ7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjb2xvcjogJHdoaXRlLXR3bztcbiAgICAgIG1hcmdpbi1ib3R0b206IDUzcHg7IH0gfSB9XG4vL0VuZCBCYW5uZXJcblxuLy9Qcm9kdWN0IFZpZXdcbi53b28tcHJvZHVjdC1hcmNoaXZlIHtcbiAgLnByb2R1Y3QtdmlldyB7XG4gICAgLy8gbWFyZ2luLXRvcDogNjBweFxuICAgIHBhZGRpbmc6IDAgMzRweDtcbiAgICAuY29udGFpbmVyIHtcbiAgICAgIG1heC13aWR0aDogOTYwcHg7IH1cbiAgICAucHJvZHVjdC1pbmZvIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAucHJvZHVjdC10eXBlLWJhciB7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4ICR3aGl0ZTtcbiAgICAgICAgLnJvdyB7XG4gICAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAgIC5sZWZ0IHtcbiAgICAgICAgICB3aWR0aDogOCU7XG4gICAgICAgICAgLmdyZWVuLWJyZWFrIHtcbiAgICAgICAgICAgIG1hcmdpbjogMjZweCAwIDI0cHggNXB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA2cHg7IH0gfVxuICAgICAgICAucmlnaHQge1xuICAgICAgICAgIHdpZHRoOiA5MiU7XG4gICAgICAgICAgcGFkZGluZzogMThweCAwO1xuICAgICAgICAgIHAge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgICAgICAgIGNvbG9yOiAkd2FybS1ncmV5LXR3bztcbiAgICAgICAgICAgIG1hcmdpbjogMDsgfSB9IH0gfSB9IH1cblxuLy9Qcm9kdWN0IEl0ZW1zXG4ud29vLXByb2R1Y3QtYXJjaGl2ZSB7XG4gIC5wcm9kdWN0LWRpc3BsYXktbGlzdCB7XG4gICAgLnJvdyB7XG4gICAgICBtYXJnaW46IDA7XG4gfSAgICAgIC8vIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJHdoaXRlXG4gICAgLnByb2R1Y3QtZGlzcGxheS1pdGVtIHtcbiAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICR3aGl0ZTtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkd2hpdGU7XG4gICAgICBwYWRkaW5nOiAyNnB4IDMwcHggMTVweCAzMHB4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgJi5sLWxlZnQtY29sIHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkd2hpdGU7XG4gICAgICAgIEBpbmNsdWRlIG1lZGl1bSB7XG4gICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7IH0gfVxuICAgICAgJi5tLWxlZnQtY29sIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaXVtIHtcbiAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICR3aGl0ZTsgfSB9XG4gICAgICBAaW5jbHVkZSBzbWFsbCB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJHdoaXRlICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5wcm9kdWN0LWRpc3BsYXktaXRlbS10aXRsZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40MztcbiAgICAgICAgY29sb3I6ICRncmV5aXNoLWJyb3duOyB9XG4gICAgICAucHJvZHVjdC1kaXNwbGF5LWl0ZW0taW1hZ2UtY29udGFpbmVyIHtcbiAgICAgICAgd2lkdGg6IDE4MHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTgwcHg7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICAgICAgLnByb2R1Y3QtZGlzcGxheS1pdGVtLWltYWdlIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgICBtYXJnaW46IDAgYXV0bzsgfSB9XG4gICAgICAucHJvZHVjdC1xdWFudGl0eSB7XG4gICAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAgIC5wcm9kdWN0LWFkZC10by1jYXJ0IHtcbiAgICAgICAgcGFkZGluZzogMDsgfVxuICAgICAgLnByb2R1Y3QtaWNvbnMge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgIC8vIHBvc2l0aW9uOiBhYnNvbHV0ZVxuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAucHJvZHVjdC1pY29uIHtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgbWFyZ2luOiBhdXRvIDNweDtcbiAgICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxMDAlO1xuICAgICAgICAgICYuaWNvbi1hY291c3RpYyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29uLWFjb3VzdGljLnBuZycpOyB9XG4gICAgICAgICAgJi5pY29uLWZpcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbi1maXJlLnBuZycpOyB9XG4gICAgICAgICAgJi5pY29uLWVsZWN0cmljYWwge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbi1lbGVjdHJpY2FsLnBuZycpOyB9XG4gICAgICAgICAgJi5pY29uLXdoZWVsY2hhaXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbi13aGVlbGNoYWlyLnBuZycpOyB9IH0gfSB9XG4gICAgLnByb2R1Y3QtZGlzcGxheS1saXN0LWluZm8ge1xuICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR3aGl0ZTtcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgLnByb2R1Y3QtZGlzcGxheS1saXN0LWluZm8taW5uZXIge1xuICAgICAgICBwYWRkaW5nOiAyNnB4IDMycHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZS10aHJlZTtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgLnByb2R1Y3QtZGVzY3JpcHRpb24tdG9wIHtcbiAgICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgICAgICAgY29sb3I6ICR3YXJtLWdyZXktZml2ZTtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgICAgLmdyZWVuLWJyZWFrIHtcbiAgICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgICAgd2lkdGg6IDIzcHg7XG4gICAgICAgICAgICBtYXJnaW46IDZweCAxMXB4IDZweCAwOyB9IH1cbiAgICAgICAgLnByb2R1Y3QtZGVzY3JpcHRpb24taGVhZGVyIHtcbiAgICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgICAgIGNvbG9yOiAkZ3JleWlzaC1icm93bi10aHJlZTtcbiAgICAgICAgICBtYXJnaW46IDE0cHggMCAxNXB4OyB9XG4gICAgICAgIC5wcm9kdWN0LWRlc2NyaXB0aW9uLXRleHQge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS40MztcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgIGNvbG9yOiAkZ3JleWlzaC1icm93bjtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIycHg7IH0gfSB9IH0gfVxuXG4vL1NhbWUgaGVpZ2h0XG4ud29vLXByb2R1Y3QtYXJjaGl2ZSB7XG4gIC5wcm9kdWN0LWRpc3BsYXktbGlzdCB7XG4gICAgLnJvdyB7XG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIC5wcm9kdWN0LWRpc3BsYXktaXRlbSwgLnByb2R1Y3QtZGlzcGxheS1saXN0LWluZm8ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9IH0gfSB9XG5cbi5wcm9kdWN0LXNlY29uZC1kZXNjcmlwdGlvbiB7XG4gIG1hcmdpbjogMTZweCAwO1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMjZweCAzMnB4O1xuICBiYWNrZ3JvdW5kOiAjZWJlYmViO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBkaXNwbGF5OiBmbGV4OyB9XG5cbi8vUHJvZHVjdCBTaG9ydGxpc3RcbkBpbXBvcnQgXCIuLi9wYWdlcy9wYXJ0cy9wcm9kdWN0LXNob3J0bGlzdFwiO1xuIiwiLndvby1wcm9kdWN0LXNpbmdsZSB7XG4gIC5wcm9kdWN0LXNob3J0bGlzdCB7XG4gICAgLnJvdyB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICAucHJvZHVjdC1zaG9ydGxpc3QtaXRlbSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR3aGl0ZTtcbiAgICAgICAgLmNvbC5zNSB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAgICAgLmNvbC5zNyB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDE2cHg7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgICAgICAgIC5wcm9kdWN0LXNob3J0bGlzdC1uYW1lIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQzO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIGNvbG9yOiAkZ3JleWlzaC1icm93bjtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsgfVxuICAgICAgICAgIC5wcm9kdWN0LXNob3J0bGlzdC1jb2RlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICBjb2xvcjogJHBpbmtpc2gtZ3JleTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDZweDsgfVxuICAgICAgICAgIC5wcm9kdWN0LXNob3J0bGlzdC1wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgICAgICAgICBjb2xvcjogJGdyZXlpc2gtYnJvd247XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG4gICAgICAgICAgLnByb2R1Y3Qtc2hvcnRsaXN0LWFjdGlvbiB7XG4gICAgICAgICAgICAucHJvZHVjdC1zaG9ydGxpc3QtcXVhbnRpdHkge1xuICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDkwJTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUtdHdvO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogc29saWQgMXB4ICR3aGl0ZS1laWdodDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgICAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHdhcm0tZ3JleS1maXZlO1xuICAgICAgICAgICAgICAgICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgICAgY29sb3I6ICR3YXJtLWdyZXktZml2ZTsgfVxuICAgICAgICAgICAgICAgICY6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICAgICAgY29sb3I6ICR3YXJtLWdyZXktZml2ZTsgfVxuICAgICAgICAgICAgICAgICY6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAkd2FybS1ncmV5LWZpdmU7IH0gfSB9XG4gICAgICAgICAgICAucHJvZHVjdC1zaG9ydGxpc3QtYWRkLXRvLWNhcnQge1xuICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICBhLmFkZF90b19jYXJ0X2J1dHRvbiB7XG4gICAgICAgICAgICAgICAgQGV4dGVuZCAud29vY29tbWVyY2Utc2hvcnRjb2RlLWFkZF90b19jYXJ0LS1hZGQtdG8tY2FydC1idXR0b247XG4gICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsgfVxuICAgICAgICAgICAgICBhLmFkZGVkX3RvX2NhcnQud2MtZm9yd2FyZCB7XG4gICAgICAgICAgICAgICAgQGV4dGVuZCAud29vY29tbWVyY2Utc2hvcnRjb2RlLWFkZF90b19jYXJ0LS12aWV3LWNhcnQtYnV0dG9uO1xuICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7IH0gfSB9IH0gfSB9IH0gfVxuIiwiLy9CYW5uZXJcbi53b28tcHJvZHVjdC1zaW5nbGUge1xuICAuY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDk2MHB4OyB9XG4gIC5iYW5uZXIge1xuICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy93b29fcHJvZHVjdF9zaW5nbGVfYmFubmVyLmpwZ1wiKSBuby1yZXBlYXQgMTAwJSAxMDAlL2NvdmVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgLmdyZWVuLWJyZWFrIHtcbiAgICAgIHdpZHRoOiAzNHB4O1xuICAgICAgaGVpZ2h0OiA2cHg7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1hcmdpbjogMzlweCBhdXRvIDE3cHggYXV0bztcbiAgICAgIGJvcmRlcjogbm9uZTsgfVxuICAgIC5oZWFkZXItdGV4dCB7XG4gICAgICBmb250LXNpemU6IDM2cHg7XG4gICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgICBsaW5lLWhlaWdodDogMC45NztcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGNvbG9yOiAkd2hpdGUtdHdvO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuICAgIC5kZXNjcmlwdGlvbi10ZXh0IHtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ0O1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY29sb3I6ICR3aGl0ZS10d287XG4gICAgICBtYXJnaW4tYm90dG9tOiA1M3B4OyB9IH0gfVxuLy9FbmQgQmFubmVyXG5cbi8vUmVmaW5lIFNlYXJjaCBCYXJcbi53b28tcHJvZHVjdC1zaW5nbGUge1xuICAucmVmaW5lIHtcbiAgICBiYWNrZ3JvdW5kOiAkc2ljay1ncmVlbjtcbiAgICAucm93IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICBwIHtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5sZWZ0IHtcbiAgICAgIHBhZGRpbmc6IDE2cHggMjdweCAxNnB4IDM5cHg7XG4gICAgICB3aWR0aDogMTUlO1xuICAgICAgLnRleHQge1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ0O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY29sb3I6ICR3aGl0ZS10d287IH0gfVxuICAgIC5yaWdodCB7XG4gICAgICB3aWR0aDogODUlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgICAgLmxlZnQubWFnbmlmaWVyIHtcbiAgICAgICAgd2lkdGg6IDklO1xuICAgICAgICBpLmZhLmZhLXNlYXJjaCB7XG4gICAgICAgICAgY29sb3I6ICR3aGl0ZS10d287XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcbiAgICAgICAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTsgfSB9XG4gICAgICAucmlnaHQuc2VhcmNoLWJveCB7XG4gICAgICAgIHdpZHRoOiA5MSU7XG4gICAgICAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICBjb2xvcjogJHNpY2stZ3JlZW47XG4gICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBtYXJnaW46IDEwcHggYXV0bztcbiAgICAgICAgICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2ljay1ncmVlbjsgfVxuICAgICAgICAgICY6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzaWNrLWdyZWVuOyB9XG4gICAgICAgICAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRzaWNrLWdyZWVuOyB9IH0gfSB9IH0gfVxuLy9FbmQgUmVmaW5lIFNlYXJjaCBCYXJcblxuLy9Qcm9kdWN0IFZpZXdcbi53b28tcHJvZHVjdC1zaW5nbGUge1xuICAucHJvZHVjdC12aWV3IHtcbiAgICBtYXJnaW4tdG9wOiA2MHB4O1xuICAgIHBhZGRpbmc6IDAgMzRweDtcbiAgICAuY2F0ZWdvcnktc2lkZWJhciB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgdWwge1xuICAgICAgICBtYXJnaW4tdG9wOiA0MXB4O1xuICAgICAgICBhIHtcbiAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMjJweCAwIDE3cHggMTJweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBjb2xvcjogJGdyZXlpc2gtYnJvd247XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHdoaXRlO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICBjb2xvcjogJHNpY2stZ3JlZW47XG4gICAgICAgICAgICAgIGJvcmRlci1yaWdodDogNXB4IHNvbGlkICRzaWNrLWdyZWVuOyB9XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNpY2stZ3JlZW47XG4gICAgICAgICAgICAgIGNvbG9yOiAkd2hpdGUtdHdvOyB9IH0gfSB9IH1cbiAgICAucHJvZHVjdC1pbmZvIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAucHJvZHVjdC10eXBlLWJhciB7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4ICR3aGl0ZTtcbiAgICAgICAgLnJvdyB7XG4gICAgICAgICAgbWFyZ2luOiAwOyB9XG4gICAgICAgIC5sZWZ0IHtcbiAgICAgICAgICB3aWR0aDogOCU7XG4gICAgICAgICAgLmdyZWVuLWJyZWFrIHtcbiAgICAgICAgICAgIG1hcmdpbjogMjZweCAwIDI4cHggNXB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAycHg7IH0gfVxuICAgICAgICAucmlnaHQge1xuICAgICAgICAgIHdpZHRoOiA5MiU7XG4gICAgICAgICAgcGFkZGluZzogMThweCAwO1xuICAgICAgICAgIHAge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgICAgICAgIGNvbG9yOiAkd2FybS1ncmV5LXR3bztcbiAgICAgICAgICAgIG1hcmdpbjogMDsgfSB9IH0gfSB9IH1cblxuLndvby1wcm9kdWN0LXNpbmdsZSB7XG4gIC5wcm9kdWN0LWRpc3BsYXkge1xuICAgICYucm93IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR3aGl0ZTtcbiAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDtcbiAgICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5wcm9kdWN0LWRpc3BsYXktbGVmdCwgLnByb2R1Y3QtZGlzcGxheS1yaWdodCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgIC5wcm9kdWN0LWRpc3BsYXktbGVmdCB7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkd2hpdGU7XG4gICAgICBwYWRkaW5nOiAyOXB4IDQzcHggNjBweCA0M3B4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgLmxvZ2dlZC1vdXQtbWVzc2FnZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgYSB7XG4gICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgIHBhZGRpbmc6IDVweCAxNXB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICYubG9naW4ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNpY2stZ3JlZW47IH1cbiAgICAgICAgICAmLnJlZ2lzdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRnb2xkZW5yb2Q7IH0gfSB9XG4gICAgICAuZmVhdHVyZWQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMTk1cHg7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBAaW5jbHVkZSBzbWFsbCB7XG4gICAgICAgICAgYm90dG9tOiAyMjRweDsgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpdW0ge1xuICAgICAgICAgIGJvdHRvbTogMjI1cHg7IH0gfVxuICAgICAgLnByb2R1Y3QtbmFtZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjhweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40MztcbiAgICAgICAgY29sb3I6ICRncmV5aXNoLWJyb3duOyB9XG4gICAgICAucHJvZHVjdC1pbWFnZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAucHJvZHVjdC1wcmljZSB7XG4gICAgICAgIG1hcmdpbjogMTVweCBhdXRvIDI3cHggYXV0bztcbiAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb2xvcjogJGdyZXlpc2gtYnJvd247IH1cbiAgICAgIC5wcmljZXMgKyAucHJvZHVjdC1hY3Rpb24ge1xuICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgIC5wcmljZXMge1xuICAgICAgICAvLyBpbnNcbiB9ICAgICAgICAvLyAgIC8vIGRpc3BsYXk6IG5vbmVcbiAgICAgIC5wcm9kdWN0LWFjdGlvbiB7XG4gICAgICAgIG1hcmdpbjogMjRweCAwO1xuICAgICAgICAucHJvZHVjdC1xdWFudGl0eSB7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogN3B4O1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2hpdGUtdHdvO1xuICAgICAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggJHdoaXRlLWVpZ2h0O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICBjb2xvcjogJHdhcm0tZ3JleS1maXZlO1xuICAgICAgICAgICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgIGNvbG9yOiAkd2FybS1ncmV5LWZpdmU7IH1cbiAgICAgICAgICAgICY6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgICBjb2xvcjogJHdhcm0tZ3JleS1maXZlOyB9XG4gICAgICAgICAgICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgIGNvbG9yOiAkd2FybS1ncmV5LWZpdmU7IH0gfSB9XG4gICAgICAgIC5wcm9kdWN0LWFkZC10by1jYXJ0IHtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIGEuYWRkX3RvX2NhcnRfYnV0dG9uIHtcbiAgICAgICAgICAgIEBleHRlbmQgLndvb2NvbW1lcmNlLXNob3J0Y29kZS1hZGRfdG9fY2FydC0tYWRkLXRvLWNhcnQtYnV0dG9uOyB9XG4gICAgICAgICAgYS5hZGRlZF90b19jYXJ0LndjLWZvcndhcmQge1xuICAgICAgICAgICAgQGV4dGVuZCAud29vY29tbWVyY2Utc2hvcnRjb2RlLWFkZF90b19jYXJ0LS12aWV3LWNhcnQtYnV0dG9uOyB9IH0gfSB9XG5cbiAgICAucHJvZHVjdC1kaXNwbGF5LXJpZ2h0IHtcbiAgICAgIHBhZGRpbmc6IDI2cHggMThweCAzN3B4IDM2cHg7XG4gICAgICBib3JkZXI6IDE1cHggc29saWQgd2hpdGU7XG4gICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDEycHg7XG4gICAgICBib3JkZXItbGVmdC13aWR0aDogMTJweDtcbiAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZS10aHJlZTtcbiAgICAgIC5wcm9kdWN0LWRlc2NyaXB0aW9uLXRvcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgICAgY29sb3I6ICR3YXJtLWdyZXktZml2ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgICAuZ3JlZW4tYnJlYWsge1xuICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgIHdpZHRoOiAyM3B4O1xuICAgICAgICAgIG1hcmdpbjogNnB4IDExcHggNnB4IDA7IH0gfVxuICAgICAgLnByb2R1Y3QtZGVzY3JpcHRpb24taGVhZGVyIHtcbiAgICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgICAgY29sb3I6ICRncmV5aXNoLWJyb3duLXRocmVlO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA5cHg7IH1cbiAgICAgIC5wcm9kdWN0LWRlc2NyaXB0aW9uLXRleHQge1xuICAgICAgICAvLyBmb250LXNpemU6IDE0cHhcbiAgICAgICAgLy8gZm9udC13ZWlnaHQ6IG5vcm1hbFxuICAgICAgICAvLyBmb250LXN0eWxlOiBub3JtYWxcbiAgICAgICAgLy8gZm9udC1zdHJldGNoOiBub3JtYWxcbiAgICAgICAgLy8gbGluZS1oZWlnaHQ6IDEuNDNcbiAgICAgICAgLy8gdGV4dC1hbGlnbjogbGVmdFxuICAgICAgICAvLyBjb2xvcjogJGdyZXlpc2gtYnJvd25cbiAgICAgICAgLy8gbWFyZ2luLXRvcDogMFxuIH0gICAgICAgIC8vIG1hcmdpbi1ib3R0b206IDIycHhcbiAgICAgIC5ncmV5LWJyZWFrIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHdoaXRlLXRlbjsgfVxuICAgICAgLnByb2R1Y3Qtc2l6ZSB7XG4gICAgICAgIG1hcmdpbjogMjBweCBhdXRvO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgICBjb2xvcjogJHNpY2stZ3JlZW47IH1cbiAgICAgIC5wcm9kdWN0LWljb24ge1xuICAgICAgICBtYXJnaW46IDIxcHggMTBweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCU7XG4gICAgICAgICYuaWNvbi1maXJlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29uLWZpcmUucG5nJyk7IH1cbiAgICAgICAgJi5pY29uLXdoZWVsY2hhaXIge1xuICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb24td2hlZWxjaGFpci5wbmcnKTsgfVxuICAgICAgICAmLmljb24tZWxlY3RyaWNhbCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbi1lbGVjdHJpY2FsLnBuZycpOyB9XG4gICAgICAgICYuaWNvbi1hY291c3RpYyB7XG4gICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbi1hY291c3RpYy5wbmcnKTsgfSB9XG4gICAgICAucHJvZHVjdC1lbnF1aXJ5IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDFlbTtcblxuICAgICAgICAucHJvZHVjdC1lbnF1aXJ5LWZvcm0ge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgIHBhZGRpbmc6IDE1cHggMjFweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2ljay1ncmVlbjtcbiAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgZm9udC1mYW1pbHk6ICRPcGVuU2FucztcbiAgICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgICAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAzcHg7XG4gICAgICAgICAgbWFyZ2luOiA0NXB4IGF1dG8gMCBhdXRvO1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBjb2xvcjogJHdoaXRlLXR3bztcbiAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDI1MG1zIGVhc2UtaW47XG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZ3JleWlzaC1icm93bjtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMjUwbXMgZWFzZS1vdXQ7IH0gfSB9IH0gfSB9XG5cblxuLy9Qcm9kdWN0IFNob3J0bGlzdFxuQGltcG9ydCBcIi4uL3BhZ2VzL3BhcnRzL3Byb2R1Y3Qtc2hvcnRsaXN0XCI7XG4iLCIuc2luZ2xlLWNvbnRhaW5lciAuY29udGVudCB7XG4gIHBhZGRpbmctdG9wOiAyOXB4O1xuICB0YWJsZS5zaG9wX3RhYmxlLnNob3BfdGFibGVfcmVzcG9uc2l2ZS5jYXJ0IHtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIHRoZWFkIHtcbiAgICAgIHRoIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlLXNldmVuO1xuICAgICAgICBmb250LWZhbWlseTogJEF6b1NhbnM7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGNvbG9yOiAkd2FybS1ncmV5LXR3bztcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgICAgIHBhZGRpbmc6IDIxcHggMCAxOHB4IDI4cHg7IH0gfVxuICAgIHRib2R5IHtcbiAgICAgIHRyLmNhcnRfaXRlbSB7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4ICR3aGl0ZTtcbiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBpbmhlcml0O1xuICAgICAgICB0ZCB7XG4gICAgICAgICAgcGFkZGluZzogMjNweCAwO1xuICAgICAgICAgICYucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgIC50aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjlweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMXB4O1xuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICB3aWR0aDogNjdweDtcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogNjVweDsgfSB9XG4gICAgICAgICAgICAgIC5pbmZvcm1hdGlvbiB7XG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogJEF6b1NhbnM7XG4gICAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICAgICAgICBAaW5jbHVkZSBub3JtYWxmb250O1xuICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDAuNzE7XG4gICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICBjb2xvcjogJGdyZXlpc2gtYnJvd247IH1cbiAgICAgICAgICAgICAgICBwLnByb2R1Y3QtaWQge1xuICAgICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRBdmVuaXJOZXh0O1xuICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAkcGlua2lzaC1ncmV5OyB9IH0gfSB9XG4gICAgICAgICAgJi5wcm9kdWN0LXByaWNlIHtcbiAgICAgICAgICAgIC53b29jb21tZXJjZS1QcmljZS1hbW91bnQuYW1vdW50IHtcbiAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyMXB4O1xuICAgICAgICAgICAgICBmb250LWZhbWlseTogJEF6b1NhbnM7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbm9ybWFsZm9udDtcbiAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICBjb2xvcjogJGdyZXlpc2gtYnJvd247IH0gfVxuICAgICAgICAgICYucHJvZHVjdC1xdWFudGl0eSB7XG4gICAgICAgICAgICBpbnB1dFt0eXBlPW51bWJlcl0ge1xuICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICBmb250LWZhbWlseTogJEF6b1NhbnM7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbm9ybWFsZm9udDtcbiAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICAgIGNvbG9yOiAkZ3JleWlzaC1icm93bjtcbiAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAmOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLCAmOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH0gfVxuICAgICAgICAgICAgLngge1xuICAgICAgICAgICAgICBmb250LWZhbWlseTogJEF6b1NhbnM7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgbm9ybWFsZm9udDtcbiAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgY29sb3I6ICRncmV5aXNoLWJyb3duO1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxuICAgICAgICAgICAgLmFycm93LXVwLCAuYXJyb3ctZG93biB7XG4gICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsgfSB9XG4gICAgICAgICAgJi5wcm9kdWN0LXN1YnRvdGFsIHtcbiAgICAgICAgICAgIC53b29jb21tZXJjZS1QcmljZS1hbW91bnQuYW1vdW50IHtcbiAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRBem9TYW5zO1xuICAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgIGNvbG9yOiAkZ3JleWlzaC1icm93bjtcbiAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRBem9TYW5zO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICAgICAgZm9udC1zdHJldGNoOiBub3JtYWw7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkZ3JleWlzaC1icm93bjsgfSB9IH1cbiAgICAgICAgICAmLnByb2R1Y3QtcmVtb3ZlIHtcbiAgICAgICAgICAgIC5yZW1vdmUge1xuICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnXFxmMDBkJzsgfSB9IH0gfSB9XG4gICAgICB0ZC5hY3Rpb25zIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBwYWRkaW5nOiAxZW0gMDtcbiAgICAgICAgaW5wdXRbbmFtZT1cInVwZGF0ZV9jYXJ0XCJdIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2FybS1ncmV5LXRocmVlO1xuICAgICAgICAgIGJvcmRlcjogbm9uZTsgfSB9IH0gfSB9XG5cblxuLnNob3BfdGFibGUuc2hvcF90YWJsZV9yZXNwb25zaXZlLmNhcnQge1xuICAuY2FydC1jb2xsYXRlcmFscyB7XG4gICAgLmNhcnRfdG90YWxzIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgdGFibGUuc2hvcF90YWJsZS5zaG9wX3RhYmxlX3Jlc3BvbnNpdmUge1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweCAkd2hpdGU7XG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgICAgIHRyIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHdoaXRlLWZpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgIGxlZnQ6IDUlO1xuICAgICAgICAgICAgcmlnaHQ6IDUlO1xuICAgICAgICAgICAgei1pbmRleDogMTAwMDsgfVxuICAgICAgICAgIHRoIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZS10d287XG4gICAgICAgICAgICBmb250LWZhbWlseTogJEF6b1NhbnM7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICBAaW5jbHVkZSBub3JtYWxmb250O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDAuNzE7XG4gICAgICAgICAgICBjb2xvcjogJGdyZXlpc2gtYnJvd247XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgICAgICAgdGQge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRBem9TYW5zO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgICAgQGluY2x1ZGUgbm9ybWFsZm9udC1ib2xkO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICBjb2xvcjogJGdyZXlpc2gtYnJvd247XG4gICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDVweDtcbiAgICAgICAgICAgIHdpZHRoOiA0NSU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRBem9TYW5zO1xuICAgICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgICAgICAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgIGNvbG9yOiAkZ3JleWlzaC1icm93bjsgfSB9IH0gfVxuICAgICAgI3NoaXBwaW5nX21ldGhvZCB7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlOyB9IH0gfSB9IH0gfVxuXG4uY2FydC1mb290ZXIge1xuICB0ZFtjb2xzcGFuPVwiNVwiXSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlLXR3bztcbiAgICBwYWRkaW5nOiAwO1xuICAgIC5yb3cge1xuICAgICAgLmNvbDpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gICAgICAuY29sOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH0gfVxuXG4gICAgaDIge1xuICAgICAgZm9udC1mYW1pbHk6ICRBem9TYW5zO1xuICAgICAgZm9udC1zaXplOiAyMHB4ICFpbXBvcnRhbnQ7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgIGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGNvbG9yOiAkZ3JleWlzaC1icm93bi10aHJlZTsgfVxuICAgIC5jb3Vwb24ge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIC5yZWN0YW5ndWxhciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE3cHg7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4ICR3aGl0ZTtcbiAgICAgICAgcGFkZGluZzogNDhweCAzMnB4IDM5cHggMjBweDtcbiAgICAgICAgaW5wdXRbbmFtZT0nY291cG9uX2NvZGUnXSB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICM5ODk4OTg7XG4gICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICBwYWRkaW5nOiAwIDAgMTBweCAwO1xuICAgICAgICAgIGhlaWdodDogYXV0bzsgfSB9XG4gICAgICBpbnB1dFtuYW1lPSdhcHBseV9jb3Vwb24nXSB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1mbGF0O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2ljay1ncmVlbjtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRBem9TYW5zO1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGZvbnQtYm9sZDtcbiAgICAgICAgcGFkZGluZzogMTVweCAxOXB4IDE1cHggMzNweDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDNweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb2xvcjogJHdoaXRlLXR3bztcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBmbG9hdDogcmlnaHQ7IH0gfSB9IH1cblxuXG4ud2MtcHJvY2VlZC10by1jaGVja291dCB7XG4gIGEge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzaWNrLWdyZWVuICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiBub25lOyB9IH1cblxuXG4ud29vY29tbWVyY2UtcmVtb3ZlLWNvdXBvbiB7XG4gIGNvbG9yOiAkcmVkLXBpbms7IH1cbiIsIi5jaGVja291dC1wbGFjZWhvbGRlciB7XG4gIG1hcmdpbi10b3A6IDE3cHg7XG4gIG1hcmdpbi1ib3R0b206IDcwcHg7XG4gIC5jaGVja291dC1wbGFjZWhvbGRlci1yaWdodCB7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoMTgyLygxODIrMjc3KSk7XG4gICAgYS5jaGVja291dC1idXR0b24ge1xuICAgICAgZm9udC1mYW1pbHk6ICRBem9TYW5zO1xuICAgICAgQGluY2x1ZGUgYnV0dG9uLWZsYXQ7XG4gICAgICBAaW5jbHVkZSBub3JtYWxmb250LWJvbGQ7XG4gICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICBsZXR0ZXItc3BhY2luZzogM3B4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY29sb3I6ICR3aGl0ZS10d287XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgcGFkZGluZzogMTVweCAwO1xuICAgICAgJjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfSB9IH1cbiIsIkBtaXhpbiBteWFjY291bnQtdGV4dGJveCB7XG4gIGJvcmRlci1ib3R0b206IHNvbGlkIDFweCAkd2FybS1ncmV5LXRocmVlO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgcGFkZGluZy10b3A6IDVweDtcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7XG4gIHBhZGRpbmctbGVmdDogN3B4O1xuICBoZWlnaHQ6IGF1dG87XG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICY6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQ6ICRyZWQtcGluazsgfSB9XG5AbWl4aW4gbXlhY2NvdW50LWJ0bi1wcmltYXJ5IHtcbiAgZm9udC1mYW1pbHk6ICRBem9TYW5zO1xuICBAaW5jbHVkZSBidXR0b24tZmxhdDtcbiAgQGluY2x1ZGUgbm9ybWFsZm9udC1ib2xkO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAzcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICR3aGl0ZS10d287XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHBhZGRpbmc6IDE1cHggMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHNpY2stZ3JlZW47XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICY6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRzaWNrLWdyZWVuLCAxMCUpOyB9IH1cbiIsIi5zaW5nbGUtY29udGFpbmVyIHtcbiAgLndvb2NvbW1lcmNlIHtcbiAgICAud29vY29tbWVyY2UtTXlBY2NvdW50LW5hdmlnYXRpb24ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIHVsIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBsaSB7XG4gICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2ljay1ncmVlbjsgfVxuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjEpOyB9XG4gICAgICAgICAgYSB7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH0gfSB9IH0gfSB9XG4gICNwYXltZW50IHtcbiAgICBtaW4taGVpZ2h0OiA0ODBweDsgfVxuXG4gICNwYXltZW50IC5wbGFjZS1vcmRlciAuYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBidXR0b24tZmxhdDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2ljay1ncmVlbjtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoMjAwLygxMjcgKyAyODQgKzI0KSkgIWltcG9ydGFudDtcbiAgICBmb250LWZhbWlseTogJEF6b1NhbnM7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICAgIEBpbmNsdWRlIG5vcm1hbGZvbnQtYm9sZDtcbiAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogJHdoaXRlLXR3bztcbiAgICBwYWRkaW5nOiAxNXB4IDIycHggMTVweCAyOHB4OyB9IH1cblxuI3BheW1lbnQgLnBheW1lbnRfbWV0aG9kcyA+IC53Y19wYXltZW50X21ldGhvZCA+IGxhYmVsIHtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWxlZnQ6IDM1cHggIWltcG9ydGFudDsgfVxuXG4ud29vY29tbWVyY2UtTXlBY2NvdW50LWNvbnRlbnQge1xuICBhIHtcbiAgICBjb2xvcjogJHNpY2stZ3JlZW47IH1cbiAgLm9yZGVyLWFjdGlvbnMge1xuICAgIGEuYnV0dG9uLnZpZXcge1xuICAgICAgY29sb3I6ICR3aGl0ZS10d287XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2ljay1ncmVlbjsgfSB9XG4gIHNlbGVjdCB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBAaW5jbHVkZSBub3JtYWxmb250O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjg2O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY29sb3I6ICRicm93bmlzaC1ncmV5O1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgaW5wdXRbdHlwZT1cInRleHRcIl0sICBpbnB1dFt0eXBlPVwiZW1haWxcIl0sICBpbnB1dFt0eXBlPVwidGVsXCJdLCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0ge1xuICAgIEBpbmNsdWRlIG15YWNjb3VudC10ZXh0Ym94OyB9XG4gIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIEBpbmNsdWRlIG15YWNjb3VudC1idG4tcHJpbWFyeTsgfSB9XG4iLCIud29vY29tbWVyY2Uge1xuICBmb3JtLmxvZ2luIHtcbiAgICBsYWJlbCB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBAaW5jbHVkZSBub3JtYWxmb250O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuODY7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgY29sb3I6ICRicm93bmlzaC1ncmV5O1xuICAgICAgcGFkZGluZzogMDsgfVxuICAgIC8vVXNlcm5hbWUgYW5kIHBhc3N3b3JkIC0gdmVyeSBzcGVjaWZpY1xuICAgIGlucHV0I3VzZXJuYW1lLCBpbnB1dCNwYXNzd29yZCB7XG4gICAgICBAaW5jbHVkZSBteWFjY291bnQtdGV4dGJveDsgfVxuICAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgQGluY2x1ZGUgbXlhY2NvdW50LWJ0bi1wcmltYXJ5OyB9XG4gICAgaW5wdXQjcmVtZW1iZXJtZSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgbGVmdDogMDtcbiAgICAgIG1hcmdpbi10b3A6IDVweDsgfVxuICAgIC5sb3N0X3Bhc3N3b3JkIHtcbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogJHJlZC1waW5rOyB9IH0gfVxuXG4gIGEucmVnaXN0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRnb2xkZW5yb2Q7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDVweCAxNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAmOnZpc2l0ZWQge1xuICAgICAgY29sb3I6IHdoaXRlOyB9IH0gfVxuIiwiLmxvc3RfcmVzZXRfcGFzc3dvcmQge1xuXHRpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG5cdFx0QGluY2x1ZGUgbXlhY2NvdW50LXRleHRib3g7IH1cblx0aW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG5cdFx0QGluY2x1ZGUgbXlhY2NvdW50LWJ0bi1wcmltYXJ5OyB9IH1cbiIsIi53b29jb21tZXJjZSB7XG4gIC53b29jb21tZXJjZS1pbmZvIHtcbiAgICBwYWRkaW5nOiAxM3B4IDIwcHggMTRweCAyMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZS1zZXZlbjtcbiAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICBmb250LWZhbWlseTogJEF6b1NhbnM7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIEBpbmNsdWRlIG5vcm1hbGZvbnQtYm9sZDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGNvbG9yOiAkZ3JleWlzaC1icm93bi10aHJlZTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMnB4O1xuICAgIGEge1xuICAgICAgZm9udC1mYW1pbHk6ICRBdmVuaXJOZXh0O1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgQGluY2x1ZGUgbm9ybWFsZm9udDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQzO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGNvbG9yOiAkYnJpZ2h0LXNreS1ibHVlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJGJyaWdodC1za3ktYmx1ZTsgfSB9IH0gfVxuIiwiLndvb2NvbW1lcmNlIHtcbiAgLndvb2NvbW1lcmNlLW1lc3NhZ2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzaWNrLWdyZWVuO1xuICAgIGJvcmRlci1sZWZ0OiBub25lOyB9IH1cbiIsIi53b29jb21tZXJjZSB7XG4gIC53b29jb21tZXJjZS1lcnJvciB7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHJlZC1waW5rO1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgIGxpIHtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgcGFkZGluZy1sZWZ0OiAxLjYxOGVtOyB9IH0gfVxuIiwiQG1peGluIGZvcm0tYmlsbGluZy1oMyB7XG4gIGZvbnQtZmFtaWx5OiAkQXpvU2FucztcbiAgZm9udC1zaXplOiAyMHB4O1xuICBAaW5jbHVkZSBub3JtYWxmb250LWJvbGQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiAkZ3JleWlzaC1icm93bi10aHJlZTtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDsgfVxuXG4ud29vY29tbWVyY2Uge1xuICAvL1N0YXJ0IEJpbGxpbmdcbiAgLndvb2NvbW1lcmNlLWJpbGxpbmctZmllbGRzIHtcbiAgICBoMyB7XG4gICAgICBAaW5jbHVkZSBmb3JtLWJpbGxpbmctaDM7IH1cbiAgICAucm93IHtcbiAgICAgIGJvcmRlcjogc29saWQgMXB4ICR3aGl0ZTtcbiAgICAgIHBhZGRpbmc6IDQ4cHggMTFweCAzMXB4IDIwcHg7XG4gICAgICAvL1VuZG8gbWF0ZXJpYWxpemVcbiAgICAgIHNlbGVjdCB7XG4gICAgICAgIGRpc3BsYXk6IGluaGVyaXQ7IH1cbiAgICAgIGxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgLmlucHV0LXRleHQge1xuICAgICAgICBib3JkZXItYm90dG9tOiBzb2xpZCAxcHggJHdoaXRlLWZpdmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA3cHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkQXpvU2FucztcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxmb250O1xuICAgICAgICAvLyBsaW5lLWhlaWdodDogMC43MVxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBjb2xvcjogJGdyZXlpc2gtYnJvd247XG4gICAgICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVyIHtcbiAgICAgICAgICBjb2xvcjogJGdyZXlpc2gtYnJvd247IH0gfSB9XG4gICAgLnJhZGlvYnV0dG9uIHtcbiAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgJjpjaGVja2VkICsgbGFiZWw6YmVmb3JlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkc2ljay1ncmVlbjsgfSB9IH1cbiAgICAkZm9ybS1yb3ctZmlyc3Q6IDQ4LzEwMDtcbiAgICAkZm9ybS1yb3ctbGFzdDogNDgvMTAwO1xuICAgIC5mb3JtLXJvdy1maXJzdCB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZSgkZm9ybS1yb3ctZmlyc3QpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBwZXJjZW50YWdlKDEgLSAkZm9ybS1yb3ctZmlyc3QgLSAkZm9ybS1yb3ctbGFzdCk7IH1cbiAgICAuZm9ybS1yb3ctbGFzdCB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZSgkZm9ybS1yb3ctbGFzdCk7IH0gfVxuICAvL0VuZCBCaWxsaW5nXG4gIC8vU2hpcHBpbmcgZmllbGRcbiAgLndvb2NvbW1lcmNlLXNoaXBwaW5nLWZpZWxkcyB7XG4gICAgaDMge1xuICAgICAgQGluY2x1ZGUgZm9ybS1iaWxsaW5nLWgzOyB9XG4gICAgbGFiZWwge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIHRleHRhcmVhLmlucHV0LXRleHQge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgcGFkZGluZzogMjBweCA5M3B4IDIwcHggMjdweDtcbiAgICAgIG1pbi1oZWlnaHQ6IDE4NnB4O1xuICAgICAgZm9udC1mYW1pbHk6ICRBem9TYW5zO1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgQGluY2x1ZGUgbm9ybWFsZm9udDtcbiAgICAgIC8vIGxpbmUtaGVpZ2h0OiAwLjcxXG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgY29sb3I6ICRncmV5aXNoLWJyb3duO1xuICAgICAgYm9yZGVyOiBzb2xpZCAxcHggJHdoaXRlO1xuICAgICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogJGdyZXlpc2gtYnJvd247IH0gfSB9XG4gfSAgLy9FbmQgU2hpcHBpbmdcblxuLy9TZWxlY3QgMlxuLnNlbGVjdDItY29udGFpbmVyIHtcbiAgLnNlbGVjdDItY2hvaWNlIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLWJvdHRvbTogc29saWQgMXB4ICR3aGl0ZS1maXZlO1xuICAgIHBhZGRpbmctYm90dG9tOiAxNnB4O1xuICAgIHBhZGRpbmctbGVmdDogN3B4O1xuICAgIHBhZGRpbmctdG9wOiA4cHg7IH0gfVxuXG4uc2VsZWN0Mi1kcm9wIHtcbiAgLnNlbGVjdDItaW5wdXQge1xuICAgIG1hcmdpbjogMDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZS10d287XG4gICAgJjpmb2N1cyB7XG4gICAgICBiYWNrZ3JvdW5kOiAkd2hpdGUtdHdvOyB9IH0gfVxuXG4uc2VsZWN0Mi1kcm9wLWFjdGl2ZSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjNjY2O1xuXG5cblxuICAvL3RhYmxlLnNob3BfdGFibGUuc2hvcF90YWJsZV9yZXNwb25zaXZlXG4gIC8vICBib3JkZXI6IHNvbGlkIDFweCAkd2hpdGVcbiAgLy8gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2VcbiAgLy8gIHRyXG4gIC8vICAgIHBvc2l0aW9uOiByZWxhdGl2ZVxuICAvLyAgICBkaXNwbGF5OiBibG9ja1xuICAvLyAgICAmOmFmdGVyXG4gIC8vICAgICAgY29udGVudDogJydcbiAgLy8gICAgICBkaXNwbGF5OiBibG9ja1xuICAvLyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZVxuICAvLyAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZS1maXZlXG4gIC8vICAgICAgaGVpZ2h0OiAxcHhcbiAgLy8gICAgICBsZWZ0OiA1JVxuICAvLyAgICAgIHJpZ2h0OiA1JVxuICAvLyAgICAgIHotaW5kZXg6IDEwMDBcbiAgLy8gICAgdGhcbiAgLy8gICAgICBiYWNrZ3JvdW5kOiAkd2hpdGUtdHdvXG4gIC8vICAgICAgZm9udC1mYW1pbHk6ICRBem9TYW5zXG4gIC8vICAgICAgZm9udC1zaXplOiAxNHB4XG4gIC8vICAgICAgK25vcm1hbGZvbnRcbiAgLy8gICAgICBsaW5lLWhlaWdodDogMC43MVxuICAvLyAgICAgIGNvbG9yOiAkZ3JleWlzaC1icm93blxuICAvLyAgICAgIHdpZHRoOiA1MCVcbiAgLy8gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcbiAgLy8gICAgdGRcbiAgLy8gICAgICBmb250LWZhbWlseTogJEF6b1NhbnNcbiAgLy8gICAgICBmb250LXNpemU6IDE4cHhcbiAgLy8gICAgICArbm9ybWFsZm9udC1ib2xkXG4gIC8vICAgICAgdGV4dC1hbGlnbjogcmlnaHRcbiAgLy8gICAgICBjb2xvcjogJGdyZXlpc2gtYnJvd25cbiAgLy8gICAgICBwYWRkaW5nOiAxMnB4IDVweFxuICAvLyAgICAgIHdpZHRoOiA0NSVcbiAgLy8gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2tcbiAgLy8gICAgICBzcGFuXG4gIC8vICAgICAgICBmb250LWZhbWlseTogJEF6b1NhbnNcbiAgLy8gICAgICAgIGZvbnQtc2l6ZTogMThweFxuICAvLyAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGRcbiAgLy8gICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbFxuICAvLyAgICAgICAgZm9udC1zdHJldGNoOiBub3JtYWxcbiAgLy8gICAgICAgIHRleHQtYWxpZ246IGNlbnRlclxuIH0gIC8vICAgICAgICBjb2xvcjogJGdyZXlpc2gtYnJvd25cbiIsIkBtaXhpbiBmb3JtLXNoaXBwaW5nLWgzIHtcbiAgZm9udC1mYW1pbHk6ICRBem9TYW5zO1xuICBmb250LXNpemU6IDIwcHg7XG4gIEBpbmNsdWRlIG5vcm1hbGZvbnQtYm9sZDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY29sb3I6ICRncmV5aXNoLWJyb3duLXRocmVlO1xuICBtYXJnaW4tYm90dG9tOiAxNnB4OyB9XG5cbi53b29jb21tZXJjZSB7XG4gIC8vU2hpcHBpbmcgZmllbGRcbiAgLndvb2NvbW1lcmNlLXNoaXBwaW5nLWZpZWxkcyB7XG4gICAgaDMge1xuICAgICAgQGluY2x1ZGUgZm9ybS1zaGlwcGluZy1oMzsgfVxuICAgIGxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICB0ZXh0YXJlYS5pbnB1dC10ZXh0IHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDIwcHggOTNweCAyMHB4IDI3cHg7XG4gICAgICBtaW4taGVpZ2h0OiAxODZweDtcbiAgICAgIGZvbnQtZmFtaWx5OiAkQXpvU2FucztcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIEBpbmNsdWRlIG5vcm1hbGZvbnQ7XG4gICAgICAvLyBsaW5lLWhlaWdodDogMC43MVxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIGNvbG9yOiAkZ3JleWlzaC1icm93bjtcbiAgICAgIGJvcmRlcjogc29saWQgMXB4ICR3aGl0ZTtcbiAgICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6ICRncmV5aXNoLWJyb3duOyB9IH1cbiAgICBpbnB1dFt0eXBlPVwidGV4dFwiXSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR3aGl0ZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH0gfSB9XG4vL0VuZCBTaGlwcGluZ1xuIiwiQG1peGluIGZvcm0tY2hlY2tvdXQtaDMge1xuICBmb250LWZhbWlseTogJEF6b1NhbnM7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgQGluY2x1ZGUgbm9ybWFsZm9udC1ib2xkO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjb2xvcjogJGdyZXlpc2gtYnJvd24tdGhyZWU7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7IH1cblxuJHRoX3dpZHRoOiAwLjc7XG5cbi53b29jb21tZXJjZSB7XG4gIC8vU2hpcHBpbmcgZmllbGRcbiAgaDMjb3JkZXJfcmV2aWV3X2hlYWRpbmcge1xuICAgIEBpbmNsdWRlIGZvcm0tY2hlY2tvdXQtaDM7IH1cbiAgLy9FbmQgU2hpcHBpbmdcbiAgdGFibGUuc2hvcF90YWJsZS53b29jb21tZXJjZS1jaGVja291dC1yZXZpZXctb3JkZXItdGFibGUge1xuICAgIGJvcmRlcjogc29saWQgMXB4ICR3aGl0ZTtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIHRyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGUtZml2ZTtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIGxlZnQ6IDUlO1xuICAgICAgICByaWdodDogNSU7XG4gICAgICAgIHotaW5kZXg6IDEwMDA7IH1cbiAgICAgIHRoIHtcbiAgICAgICAgYmFja2dyb3VuZDogJHdoaXRlLXR3bztcbiAgICAgICAgZm9udC1mYW1pbHk6ICRBem9TYW5zO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGZvbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwLjcxO1xuICAgICAgICBjb2xvcjogJGdyZXlpc2gtYnJvd247XG4gICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKCR0aF93aWR0aCk7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyMnB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAgIHRkIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRBem9TYW5zO1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGZvbnQtYm9sZDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGNvbG9yOiAkZ3JleWlzaC1icm93bjtcbiAgICAgICAgcGFkZGluZzogMTJweCA1cHg7XG4gICAgICAgIHdpZHRoOiBwZXJjZW50YWdlKDEgLSAkdGhfd2lkdGggLSAwLjA1KTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBmb250LWZhbWlseTogJEF6b1NhbnM7XG4gICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICBmb250LXN0cmV0Y2g6IG5vcm1hbDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgY29sb3I6ICRncmV5aXNoLWJyb3duOyB9IH0gfVxuICAgIHRoZWFkIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICB0aCB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkQXpvU2FucztcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxmb250O1xuICAgICAgICBsaW5lLWhlaWdodDogMC43MTtcbiAgICAgICAgY29sb3I6ICRncmV5aXNoLWJyb3duO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICAgICAgd2lkdGg6IDQ5JTtcbiAgICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsgfSB9IH1cbiAgICB0ci5jYXJ0X2l0ZW0ge1xuICAgICAgdGQ6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkQXpvU2FucztcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICB3aWR0aDogcGVyY2VudGFnZSgkdGhfd2lkdGgpO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDUlO1xuICAgICAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsZm9udDtcbiAgICAgICAgLy8gbGluZS1oZWlnaHQ6IDAuNzFcbiAgICAgICAgY29sb3I6ICRncmV5aXNoLWJyb3duOyB9IH0gfSB9XG4iLCIud29vY29tbWVyY2Uge1xuICAud29vY29tbWVyY2UtdGhhbmt5b3Utb3JkZXItZGV0YWlscy5vcmRlcl9kZXRhaWxzIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBsaSB7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7IH0gfSB9XG4iLCIuZGVidWcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwMDAwMDtcbiAgcmlnaHQ6IDA7XG4gIGJhY2tncm91bmQ6ICMyMzI4MmQ7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgc3BhbiB7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7IH0gfVxuIiwiLnJvdyB7XG4gIC5jb2wge1xuICAgIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogYXV0bzsgfSB9IH1cbiIsIi8vZm9udCBhd2Vzb21lIGhlaWdodFxubmF2IGksIG5hdiBbY2xhc3NePVwibWRpLVwiXSwgbmF2IFtjbGFzcyo9XCJtZGktXCJdLCBuYXYgaS5tYXRlcmlhbC1pY29ucyB7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50OyB9XG4iLCIucmVmaW5lIHtcbiAgLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cbiIsInNlY3Rpb24uaGVybyB7XG4gIC5jb250YWluZXIge1xuICAgIGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogMzBweDsgfVxuICAgIC5ncmVlbi1icmVhayB7XG4gICAgICBtYXJnaW4tdG9wOiA1MHB4OyB9XG4gICAgLmZlYXR1cmVkLWFydGljbGUge1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoMjVweCkpO1xuICAgICAgLmxlZnQge1xuICAgICAgICAucmVhZC1tb3JlIHtcbiAgICAgICAgICBAaW5jbHVkZSByZWFkLW1vcmUtYnV0dG9uOyB9IH1cbiAgICAgIC5yaWdodCB7XG4gICAgICAgIGhlaWdodDogMTUwcHg7IH0gfSB9IH1cbnNlY3Rpb24uZmVhdHVyZWQtcHJvZHVjdHMge1xuICBwYWRkaW5nLXRvcDogNzBweDtcbiAgLmNvbnRhaW5lciB7XG4gICAgaDIge1xuICAgICAgZm9udC1zaXplOiAxOHB4OyB9XG4gICAgLnByb2R1Y3QtaW1hZ2UtY29udGFpbmVyIHtcbiAgICAgIGhlaWdodDogYXV0bzsgfSB9XG4gIC5wcm9kdWN0Lndvb2NvbW1lcmNlLmFkZF90b19jYXJ0X2lubGluZSB7XG4gICAgYSB7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMXB4ICFpbXBvcnRhbnQ7IH0gfSB9XG4uZm9vdGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDMwcHg7XG4gIC5jb2wge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7IH0gfVxuXG4iLCIuY2F0ZWdvcnktY29udGFpbmVyIHtcbiAgLnBvc3QtbGlzdCB7XG4gICAgLnBvc3QtbGlzdC1pdGVtIHtcbiAgICAgIC5yZWFkLW1vcmUge1xuICAgICAgICByaWdodDogMzZweDsgfVxuICAgICAgLnBvc3QtbGlzdC1pdGVtLWlubmVyIHtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87IH0gfSB9IH0gfVxuIiwiLnNpbmdsZS1jb250YWluZXIuc2VydmljZXMge1xuICAucG9zdC1saXN0IHtcbiAgICAucG9zdC1saXN0LWl0ZW0ge1xuICAgICAgLnBvc3QtbGlzdC1pdGVtLWlubmVyIHtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICBoZWlnaHQ6IGF1dG87IH0gfVxuICAgICAgLnJlYWQtbW9yZSB7XG4gICAgICAgIHJpZ2h0OiAzNnB4OyB9IH0gfSB9XG4iLCIuY2F0ZWdvcnktY29udGFpbmVyLmNhc2Utc3R1ZGllcyB7XG4gIC5jYXNlLXN0dWR5LWl0ZW0tY29udGFpbmVyIHtcbiAgICAuY2FzZS1zdHVkeS1pdGVtIHtcbiAgICAgID4uY29sIHtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgbWluLWhlaWdodDogMjAwcHg7XG4gICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgICAgLnJlYWQtbW9yZSB7XG4gICAgICAgICAgQGluY2x1ZGUgcmVhZC1tb3JlLWJ1dHRvbjtcbiAgICAgICAgICByaWdodDogMjVweCAhaW1wb3J0YW50OyB9IH0gfSB9IH1cbiIsIi5zaW5nbGUtY29udGFpbmVyIHtcbiAgLmNhc2Utc3R1ZHktaXRlbS1jb250YWluZXIge1xuICAgIC5jYXNlLXN0dWR5LWl0ZW0ge1xuICAgICAgLmNvbCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDI1MHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICAucmVhZC1tb3JlIHtcbiAgICAgICAgICByaWdodDogMjVweDsgfSB9IH0gfSB9XG4iLCIuc2luZ2xlLWNvbnRhaW5lci5hYm91dC11cyB7XG4gIC5wb3N0LWxpc3Qge1xuICAgIC5wb3N0LWxpc3QtaXRlbSB7XG4gICAgICAucmVhZC1tb3JlIHtcbiAgICAgICAgcmlnaHQ6IDM2cHg7IH1cbiAgICAgIC5wb3N0LWxpc3QtaXRlbS1pbm5lciB7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvOyB9IH0gfSB9IH1cbiIsIkBtaXhpbiBpcGFkLWgxIHtcbiAgZm9udC1zaXplOiAzMHB4O1xuICBsaW5lLWhlaWdodDogMzJweDsgfVxuQG1peGluIGlwYWQtcCB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7IH1cblxuQG1peGluIGlwYWQtY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aWR0aDogYXV0bzsgfVxuXG5AZm9yICRpIGZyb20gMSB0aHJvdWdoIDEyIHtcbiAgLmlwYWQjeyRpfSB7XG4gICAgd2lkdGg6IHBlcmNlbnRhZ2UoJGkvMTIpICFpbXBvcnRhbnQ7IH0gfVxuIiwiaGVhZGVyIHtcbiAgbmF2IHtcbiAgICAuYnJhbmQtbG9nbyB7XG4gICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICB3aWR0aDogODBweDtcbiAgICAgIGZvbnQtc2l6ZTogMDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA5MCUgNTAlO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiA5MCU7IH0gfVxuICB1bCNuYXYtbW9iaWxlIHtcbiAgICBsaSB7XG4gICAgICBhIHtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4OyB9IH0gfSB9XG4iLCIuZm9vdGVyIHtcbiAgLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgLmZvb3Rlci1zaXRlLXRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMTZweDsgfSB9IH1cbiIsInNlY3Rpb24uaGVybyB7XG4gIC5jb250YWluZXIge1xuICAgIC5ncmVlbi1icmVhayB7XG4gICAgICBtYXJnaW4tdG9wOiA1MHB4OyB9XG4gICAgaDEge1xuICAgICAgQGluY2x1ZGUgaXBhZC1oMTsgfVxuICAgIHAge1xuICAgICAgQGluY2x1ZGUgaXBhZC1wOyB9XG4gICAgLmZlYXR1cmVkLWFydGljbGUge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIC5sZWZ0IHtcbiAgICAgICAgaDEge1xuICAgICAgICAgIHBhZGRpbmc6IDIwcHggMHB4IDEwcHg7IH1cbiAgICAgICAgcCB7XG4gICAgICAgICAgQGluY2x1ZGUgaXBhZC1wO1xuICAgICAgICAgIHdpZHRoOiBhdXRvOyB9IH0gfSB9IH1cbnNlY3Rpb24uZmVhdHVyZWQtcHJvZHVjdHMge1xuICBwYWRkaW5nLXRvcDogODBweDsgfVxuIiwiLmNhc2Utc3R1ZHktaXRlbSB7XG4gIC5jb2w6ZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG4iLCIucHJvZHVjdC12aWV3IHtcbiAgLmNvbnRhaW5lciB7fSB9XG4iXSwibWFwcGluZ3MiOiJBQU9BLEFBQ0UsSUFERSxDQUNGLElBQUksQ0FBQztFQUNILEtBQUssRUFBRSxJQUFLLEdBQUc7O0FrRnNCbkIsQUFBQSxFQUFFLEVBQUUsQUFBQSxFQUFFLEVBQUUsQUFBQSxFQUFFLEVBQUUsQUFBQSxFQUFFLEVBQUUsQUFBQSxFQUFFLEVBQUUsQUFBQSxDQUFDLEVBQUUsQUFBQSxDQUFDLENBQUM7RUFDdkIsS0FBSyxFQUFFLEtBQU0sR0FBRzs7QUFFbEIsQUFBQSxXQUFXLENBQUM7RUFDVixnQkFBZ0IsRUFBRSxPQUFNO0VBQ3hCLEtBQUssRUFBRSxLQUFNLEdBQUc7O0FBRWxCLEFBQUEsZ0JBQWdCLENBQUM7RUFDZixnQkFBZ0IsRUFBRSxPQUFNO0VBQ3hCLEtBQUssRUFBRSxLQUFNLEdBQUc7O0FBRWxCLEFBQUEsSUFBSSxDQUFDO0VBQ0gsMkJBQTJCLEVBQUUsV0FBSSxHQUFlOztBQ2JsRCxBQUFBLElBQUksQ0FBQztFQUNILFVBQVUsRUFBRSxNQUFPO0VBQ25CLFVBQVUsRUFBRSxN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 */
