input,
textarea {
  border: none;
  -webkit-box-shadow: none;
          box-shadow: none;
  background: unset;
  width: 100%;
}
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
  color: rgba(255,255,255,0.6);
  font-size: 16px;
  line-height: 24px;
}
input::-moz-placeholder, textarea::-moz-placeholder {
  color: rgba(255,255,255,0.6);
  font-size: 16px;
  line-height: 24px;
}
input:-ms-input-placeholder, textarea:-ms-input-placeholder {
  color: rgba(255,255,255,0.6);
  font-size: 16px;
  line-height: 24px;
}
input::-ms-input-placeholder, textarea::-ms-input-placeholder {
  color: rgba(255,255,255,0.6);
  font-size: 16px;
  line-height: 24px;
}
input::placeholder,
textarea::placeholder {
  color: rgba(255,255,255,0.6);
  font-size: 16px;
  line-height: 24px;
}
input,
textarea {
  width: 100%;
  border: 1px dashed rgba(178,192,191,0.4);
  border-radius: 10px;
  font-size: 16px;
  line-height: 24px;
  color: #fff;
  outline: none;
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}
input {
  height: 60px;
  padding: 0 22px 0 155px;
}
@media only screen and (max-width: 1121px) {
  input {
    padding: 0 22px 0 115px;
  }
}
textarea {
  height: 120px;
  resize: none;
  padding: 17px 22px 17px 155px;
}
.input {
  position: relative;
}
.input__placeholder {
  position: absolute;
  top: 17px;
  left: 22px;
  margin: auto;
  color: rgba(255,255,255,0.7);
  font-size: 16px;
  line-height: 24px;
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
  z-index: 0;
}
.input__placeholder.active {
  font-size: 12px;
  line-height: 24px;
  top: 8px;
}
.input--black input,
.input--black textarea {
  color: #171a1b;
}
.input--black .input__placeholder {
  color: rgba(16,18,19,0.5);
}
.input--anim input {
  padding: 20px 20px 0;
  height: 70px;
}
.input--anim .input__placeholder {
  top: 22px;
}
.input--anim .input__placeholder.active {
  top: 8px;
}
.radios {
  gap: 40px;
}
.radio {
  cursor: pointer;
}
.radio__wrapper {
  position: relative;
}
.radio input {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  opacity: 0;
  z-index: 2;
  cursor: pointer;
}
.radio__icon {
  position: relative;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 1px solid #fff;
  background-color: #0f1112;
}
.radio__icon:before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: #0f1112;
  -webkit-transform-origin: center;
          transform-origin: center;
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}
.radio__name {
  margin-left: 7px;
}
.radio.active .radio__icon:before {
  background-color: #fff;
}
.checkboxes {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  gap: 40px;
}
.checkbox {
  position: relative;
}
.checkbox input {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  width: 100%;
  height: 100%;
  opacity: 0;
  z-index: 1;
  cursor: pointer;
}
.checkbox input:checked + .checkbox__icon {
  background-color: #fff;
}
.checkbox input:checked + .checkbox__icon--white {
  background-color: #171a1b;
}
.checkbox__icon {
  width: 24px;
  height: 24px;
  border: 1px solid #fff;
  background-color: #0f1112;
  border-radius: 5px;
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}
.checkbox__icon--white {
  background-color: #fff;
  border-color: #171a1b;
}
.checkbox__text {
  margin-left: 14px;
}
.form--pt_95 {
  padding-top: 95px;
}
@media only screen and (max-width: 768px) {
  .form--pt_95 {
    padding-top: 60px;
  }
}
@media only screen and (max-width: 990px) {
  .form--cta {
    padding-top: 60px;
  }
  .form--cta.form--pt_95 {
    padding-top: 95px;
  }
  .form--cta.form--narrow {
    max-width: 510px;
    width: 100%;
  }
}
.form--narrow {
  max-width: 570px;
  width: 100%;
}
@media only screen and (max-width: 580px) {
  .form--narrow {
    max-width: 470px;
    width: 100%;
  }
}
.form-radios {
  gap: 140px;
}
@media only screen and (max-width: 1120px) {
  .form-radios {
    gap: 60px;
  }
}
.form__top {
  background-color: #131516;
  border-radius: 10px;
  padding: 17px 22px 19px;
  border: 1px solid #131516;
}
.form__rows {
  gap: 16px;
}
.form__row,
.form__input {
  width: 100%;
}
@media only screen and (max-width: 520px) {
  .form__row--desktop {
    display: none;
  }
}
@media only screen and (min-width: 520px) {
  .form__row--mobile {
    display: none;
  }
}
.form-bottom {
  margin-top: 45px;
}
@media only screen and (max-width: 480px) {
  .form-bottom {
    margin-top: 20px;
  }
}
.form-bottom--md_mt {
  margin-top: 35px;
}
.form-bottom--sm_mt {
  margin-top: 20px;
}
.form-bottom__block {
  width: 100%;
}
@media only screen and (max-width: 480px) {
  .form-bottom .form__row {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 40px;
  }
  .form-bottom .form__input {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
  }
  .form-bottom .btns {
    width: 100%;
  }
  .form-bottom .btns .btn {
    width: 100%;
  }
}
.form__inputSub {
  margin-top: 15px;
}
.form--black input:-webkit-autofill,
.form--black input:-webkit-autofill:hover,
.form--black input:-webkit-autofill:focus,
.form--black textarea:-webkit-autofill,
.form--black textarea:-webkit-autofill:hover,
.form--black textarea:-webkit-autofill:focus,
.form--black select:-webkit-autofill,
.form--black select:-webkit-autofill:hover,
.form--black select:-webkit-autofill:focus {
  -webkit-text-fill-color: #0f1112;
  -webkit-box-shadow: 0 0 0px 1000px transparent inset;
  -webkit-transition: background-color 5000s ease-in-out 0s;
  transition: background-color 5000s ease-in-out 0s;
  background: -webkit-linear-gradient(top, #fff 0%, #fff 50%, #fff 51%, #fff 100%);
}
.form--black .upload-file {
  color: #171a1b;
}
.form--black .checkbox {
  color: #171a1b;
}
.form--light .form__top {
  background-color: #00a672;
  border-color: #00a672;
}
.form--light .form__row--mobile .select-user__title {
  background-color: #00a672;
  color: #fff;
}
.form--light .form__row--mobile .select-user__select {
  background-color: #00a672;
}
.form--light .form__row--mobile .select2-container--default .select2-selection--single .select2-selection__placeholder {
  color: #fff;
}
.form--light input:-webkit-autofill,
.form--light input:-webkit-autofill:hover,
.form--light input:-webkit-autofill:focus,
.form--light textarea:-webkit-autofill,
.form--light textarea:-webkit-autofill:hover,
.form--light textarea:-webkit-autofill:focus,
.form--light select:-webkit-autofill,
.form--light select:-webkit-autofill:hover,
.form--light select:-webkit-autofill:focus {
  -webkit-text-fill-color: #0f1112;
  -webkit-box-shadow: 0 0 0px 1000px transparent inset;
  -webkit-transition: background-color 5000s ease-in-out 0s;
  transition: background-color 5000s ease-in-out 0s;
  background: -webkit-linear-gradient(top, #fff 0%, #fff 50%, #fff 51%, #fff 100%);
}
.form--light .radio__icon {
  background-color: #fff;
}
.form--light .radio__icon:before {
  background-color: #00a672;
}
.form--light .radio.active .radio__icon:before {
  background-color: #fff;
}
.form--light .input__placeholder {
  color: rgba(23,26,27,0.5);
}
.form--light .upload-file {
  color: #0f1112;
}
.form--light .upload-file__delete path:first-child {
  stroke: #0f1112;
}
.form--light .upload-file__delete path:last-child {
  fill: #0f1112;
}
.form--light .upload__title {
  color: #0f1112;
}
.form--light .upload__text {
  color: rgba(23,26,27,0.5);
}
.form--light .checkbox__text {
  color: #0f1112;
}
.form--light .checkbox__text p {
  color: #0f1112;
}
.form--light .checkbox__icon {
  background-color: #fff;
  border-color: #0f1112;
}
.form--light .checkbox__icon path {
  fill: #fff;
}
.form--light .checkbox input:checked + .checkbox__icon {
  background-color: #0f1112;
}
.form--light .checkbox input:checked + .checkbox__icon--white {
  background-color: #171a1b;
}
.form--light input,
.form--light textarea {
  color: #0f1112;
}
.form--light input,
.form--light textarea {
  border-color: rgba(23,26,27,0.4);
}
.form--light .upload .btn--grey {
  background-color: #dfdfdf;
  color: #171a1b;
}
.form--light .wpcf7 form .wpcf7-response-output {
  color: #0f1112;
}
.form--light .btns .btn {
  background-color: #0f1112;
  color: #fff;
}
.form--light .btns .btn:hover:before {
  background-color: #0cb985;
}
.btn .wpcf7-form-control-wrap {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  width: 100%;
  height: 100%;
}
.upload {
  position: relative;
}
.upload .wpcf7-form-control-wrap {
  position: absolute;
  top: 0;
  left: 0;
  width: 90%;
  height: 100%;
  z-index: 10;
  padding: 0;
}
.upload .wpcf7-form-control-wrap input {
  padding: 0;
  opacity: 0;
  width: 100%;
  height: 100%;
}
@media only screen and (max-width: 580px) {
  .upload .wpcf7-form-control-wrap {
    width: 100%;
    height: 100%;
  }
}
.upload__title {
  font-size: 18px;
  line-height: 25px;
  color: #fff;
}
.upload__wrapper {
  gap: 30px;
}
.upload__wrapper--sm {
  gap: 20px;
}
.upload__wrapper.hidden {
  display: none;
}
.upload__block {
  gap: 15px;
}
.upload__block--sm {
  gap: 10px;
}
.upload__text {
  color: rgba(255,255,255,0.7);
}
.upload-file {
  color: #fff;
  font-size: 14px;
  line-height: 21px;
  display: none;
  position: relative;
  z-index: 11;
}
.upload-file__icon,
.upload-file__delete {
  width: 14px;
  height: 14px;
}
.upload-file__icon svg,
.upload-file__delete svg {
  width: 100%;
  height: 100%;
}
.upload-file__icon {
  margin-right: 4px;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.upload-file__delete {
  margin-left: 6px;
  cursor: pointer;
}
.upload-file__delete path {
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}
.upload-file__delete:hover path:first-child {
  stroke: #00c084;
}
.upload-file__delete:hover path:last-child {
  fill: #00c084;
}
.upload-file.active {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.upload--black .upload__title {
  color: #171a1b;
}
.upload--black .upload__text {
  color: rgba(16,18,19,0.5);
}
@media only screen and (max-width: 580px) {
  .upload__wrapper,
  .upload__block {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .upload__block:last-child {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
  .upload__wrapper {
    padding: 20px;
    border-radius: 10px;
    border: 1px dashed rgba(178,192,191,0.4);
    gap: 4px;
  }
}
.select-user__wrapper {
  gap: 10px;
}
.select-user__title,
.select-user__select {
  border-radius: 10px;
  background-color: rgba(217,217,217,0.02);
}
.select-user__title {
  padding: 16px 22px;
  color: rgba(255,255,255,0.7);
  font-size: 16px;
  line-height: 24px;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.select-user__select {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  width: 100%;
  max-width: 100%;
}
.select-user__select .wpcf7-form-control-wrap,
.select-user__select .wpcf7-form-control {
  width: 100% !important;
}
.filters .form__rows {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 40px;
}
.filters .form__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 30px;
}
@media only screen and (max-width: 768px) {
  .filters .form__row {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.filters .input__placeholder {
  z-index: -1;
}
.captcha {
  width: 100%;
  margin-bottom: 24px;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZvcm0uc3R5bCIsImZvcm0uY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3J1cHR1cmUvcnVwdHVyZS9pbmRleC5zdHlsIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOztFQUVJLFlBQU87RUFDUCx3QkFBVztVQUFYLGdCQUFXO0VBQ1gsaUJBQVc7RUFDWCxXQUFNO0FDRFY7QURFSTtFQUNJLDRCQUFNO0VBQ04sZUFBVTtFQUNWLGlCQUFZO0FDQ3BCO0FESkk7RUFDSSw0QkFBTTtFQUNOLGVBQVU7RUFDVixpQkFBWTtBQ0NwQjtBREpJO0VBQ0ksNEJBQU07RUFDTixlQUFVO0VBQ1YsaUJBQVk7QUNDcEI7QURKSTtFQUNJLDRCQUFNO0VBQ04sZUFBVTtFQUNWLGlCQUFZO0FDQ3BCO0FESkk7O0VBQ0ksNEJBQU07RUFDTixlQUFVO0VBQ1YsaUJBQVk7QUNDcEI7QURDQTs7RUFFSSxXQUFNO0VBQ04sd0NBQU87RUFDUCxtQkFBYztFQUNkLGVBQVU7RUFDVixpQkFBWTtFQUNaLFdBQU07RUFDTixhQUFRO0VBQ1IscUNBQVc7RUFBWCw2QkFBVztBQ0NmO0FEQ0E7RUFDSSxZQUFPO0VBQ1AsdUJBQVE7QUNDWjtBQ29IVztFQUFBO0lGbEhILHVCQUFRO0VDRWQ7QUFDRjtBREFBO0VBQ0ksYUFBTztFQUNQLFlBQU87RUFDUCw2QkFBUTtBQ0VaO0FEQUE7RUFDSSxrQkFBUztBQ0ViO0FEREk7RUFDSSxrQkFBUztFQUNULFNBQUk7RUFDSixVQUFLO0VBQ0wsWUFBTztFQUNQLDRCQUFNO0VBQ04sZUFBVTtFQUNWLGlCQUFZO0VBQ1oscUNBQVc7RUFBWCw2QkFBVztFQUNYLFVBQVE7QUNHaEI7QURGUTtFQUNJLGVBQVU7RUFDVixpQkFBWTtFQUNaLFFBQUk7QUNJaEI7QURGUTs7RUFFSSxjQUFNO0FDSWxCO0FERlk7RUFDSSx5QkFBTTtBQ0l0QjtBRERRO0VBQ0ksb0JBQVE7RUFDUixZQUFPO0FDR25CO0FETVk7RUFDSSxTQUFJO0FDSnBCO0FES2dCO0VBQ0ksUUFB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Qk07SUFDSSxhQUFRO0lBQ1IsbUJBQWM7SUFDZCx3Q0FBTztJQUNQLFFBQUk7RUMrQmQ7QUFDRjtBRDVCUTtFQUNJLFNBQUk7QUM4QmhCO0FEN0JROztFQUVJLG1CQUFjO0VBQ2Qsd0NBQWlCO0FDK0I3QjtBRDlCUTtFQUNJLGtCQUFRO0VBQ1IsNEJBQU07RUFDTixlQUFVO0VBQ1YsaUJBQVk7RUFDWixvQkFBWTtNQUFaLGNBQVk7QUNnQ3hCO0FEL0JRO0VBQ0ksbUJBQVU7TUFBVixvQkFBVTtVQUFWLFlBQVU7RUFDVixXQUFNO0VBQ04sZUFBVTtBQ2lDdEI7QURoQ1k7O0VBRUksc0JBQU07QUNrQ3RCO0FEOUJRO0VBQ0ksb0JBQVE7RUFBUixvQkFBUTtFQUFSLGFBQVE7RUFDUix5QkFBWTtNQUFaLHNCQUFZO1VBQVosbUJBQVk7RUFDWiw0QkFBZTtFQUFmLDZCQUFlO01BQWYsMEJBQWU7VUFBZixzQkFBZTtFQUNmLFNBQUk7QUNnQ2hCO0FEL0JRO0VBQ0ksb0JBQVE7RUFBUixvQkFBUTtFQUFSLGFBQVE7RUFDUix5QkFBWTtNQUFaLHNCQUFZO1VBQVosbUJBQVk7RUFDWixTQUFJO0FDaUNoQjtBQ3BZVztFQUFBO0lGcVdLLDRCQUFlO0lBQWYsNkJBQWU7UUFBZiwwQkFBZTtZQUFmLHNCQUFlO0VDbUM3QjtBQUNGO0FEbENRO0VBQ0ksV0FBUTtBQ29DcEI7QURqQ0E7RUFDSSxXQUFNO0VBQ04sbUJBQWM7QUNtQ2xCIiwiZmlsZSI6ImZvcm0uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnc3VwcG9ydHMvX3ZhcnMuc3R5bCdcblxuaW5wdXQsXG50ZXh0YXJlYVxuICAgIGJvcmRlciBub25lXG4gICAgYm94LXNoYWRvdyBub25lXG4gICAgYmFja2dyb3VuZCB1bnNldFxuICAgIHdpZHRoIDEwMCVcbiAgICAmOjpwbGFjZWhvbGRlclxuICAgICAgICBjb2xvciByZ2JhKDI1NSwyNTUsMjU1LC42KVxuICAgICAgICBmb250LXNpemUgJGJhc2Utc2l6ZVxuICAgICAgICBsaW5lLWhlaWdodCAkYmFzZS1saW5lXG5cbmlucHV0LFxudGV4dGFyZWFcbiAgICB3aWR0aCAxMDAlXG4gICAgYm9yZGVyIDFweCBkYXNoZWQgJHNsaWdodC1ncmV5XG4gICAgYm9yZGVyLXJhZGl1cyAxMHB4IFxuICAgIGZvbnQtc2l6ZSAkYmFzZS1zaXplXG4gICAgbGluZS1oZWlnaHQgJGJhc2UtbGluZVxuICAgIGNvbG9yICR3aGl0ZVxuICAgIG91dGxpbmUgbm9uZVxuICAgIHRyYW5zaXRpb24gJHRyYW5zXG5cbmlucHV0XG4gICAgaGVpZ2h0IDYwcHhcbiAgICBwYWRkaW5nIDAgMjJweCAwIDE1NXB4XG5cbiAgICArYmVsb3coMTEyMXB4KVxuICAgICAgICBwYWRkaW5nIDAgMjJweCAwIDExNXB4XG5cblxudGV4dGFyZWFcbiAgICBoZWlnaHQgMTIwcHhcbiAgICByZXNpemUgbm9uZVxuICAgIHBhZGRpbmcgMTdweCAyMnB4IDE3cHggMTU1cHhcblxuLmlucHV0XG4gICAgcG9zaXRpb24gcmVsYXRpdmVcbiAgICAmX19wbGFjZWhvbGRlclxuICAgICAgICBwb3NpdGlvbiBhYnNvbHV0ZVxuICAgICAgICB0b3AgMTdweFxuICAgICAgICBsZWZ0IDIycHhcbiAgICAgICAgbWFyZ2luIGF1dG9cbiAgICAgICAgY29sb3IgJGxpZ2h0LXdoaXRlXG4gICAgICAgIGZvbnQtc2l6ZSAkYmFzZS1zaXplXG4gICAgICAgIGxpbmUtaGVpZ2h0ICRiYXNlLWxpbmVcbiAgICAgICAgdHJhbnNpdGlvbiAkdHJhbnNcbiAgICAgICAgei1pbmRleCAwXG4gICAgICAgICYuYWN0aXZlXG4gICAgICAgICAgICBmb250LXNpemUgMTJweFxuICAgICAgICAgICAgbGluZS1oZWlnaHQgMjRweFxuICAgICAgICAgICAgdG9wIDhweFxuICAgICYtLWJsYWNrXG4gICAgICAgIGlucHV0LFxuICAgICAgICB0ZXh0YXJlYVxuICAgICAgICAgICAgY29sb3IgJGxpZ2h0ZXItYmxhY2tcbiAgICAgICAgLmlucHV0XG4gICAgICAgICAgICAmX19wbGFjZWhvbGRlclxuICAgICAgICAgICAgICAgIGNvbG9yICRtaWQtbGlnaHRlci1ibGFja1xuXG4gICAgJi0tYW5pbVxuICAgICAgICBpbnB1dFxuICAgICAgICAgICAgcGFkZGluZyAyMHB4IDIwcHggMFxuICAgICAgICAgICAgaGVpZ2h0IDcwcHhcbiAgICAgICAgICAgIC8vICY6Zm9jdXNcbiAgICAgICAgICAgIC8vICAgICArIFxuICAgICAgICAgICAgLy8gICAgICAgICAuaW5wdXRcbiAgICAgICAgICAgIC8vICAgICAgICAgICAgICZfX3BsYWNlaG9sZGVyXG4gICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgZm9udC1zaXplIDEycHhcbiAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodCAyNHB4XG4gICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgdG9wIDhweFxuICAgICAgICAuaW5wdXRcbiAgICAgICAgICAgICZfX3BsYWNlaG9sZGVyXG4gICAgICAgICAgICAgICAgdG9wIDIycHhcbiAgICAgICAgICAgICAgICAmLmFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICB0b3AgOHB4XG5cbi5yYWRpb3NcbiAgICBnYXAgNDBweFxuXG4ucmFkaW9cbiAgICBjdXJzb3IgcG9pbnRlclxuICAgICZfX3dyYXBwZXJcbiAgICAgICAgcG9zaXRpb24gcmVsYXRpdmVcbiAgICBpbnB1dFxuICAgICAgICBwb3NpdGlvbiBhYnNvbHV0ZVxuICAgICAgICB3aWR0aCAxMDAlXG4gICAgICAgIGhlaWdodCAxMDAlXG4gICAgICAgIHRvcCAwXG4gICAgICAgIGxlZnQgMFxuICAgICAgICByaWdodCAwXG4gICAgICAgIGJvdHRvbSAwXG4gICAgICAgIG1hcmdpbiBhdXRvXG4gICAgICAgIG9wYWNpdHkgMFxuICAgICAgICB6LWluZGV4IDJcbiAgICAgICAgY3Vyc29yIHBvaW50ZXJcbiAgICAmX19pY29uXG4gICAgICAgIHBvc2l0aW9uIHJlbGF0aXZlXG4gICAgICAgIHdpZHRoIDE0cHhcbiAgICAgICAgaGVpZ2h0IDE0cHhcbiAgICAgICAgYm9yZGVyLXJhZGl1cyA1MCVcbiAgICAgICAgYm9yZGVyIDFweCBzb2xpZCAkd2hpdGVcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvciAkYmxhY2tcbiAgICAgICAgJjpiZWZvcmVcbiAgICAgICAgICAgIGNvbnRlbnQgJydcbiAgICAgICAgICAgIHBvc2l0aW9uIGFic29sdXRlXG4gICAgICAgICAgICB0b3AgMFxuICAgICAgICAgICAgcmlnaHQgMFxuICAgICAgICAgICAgYm90dG9tIDBcbiAgICAgICAgICAgIGxlZnQgMFxuICAgICAgICAgICAgbWFyZ2luIGF1dG9cbiAgICAgICAgICAgIHdpZHRoIDEwMCVcbiAgICAgICAgICAgIGhlaWdodCAxMDAlXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzIDUwJVxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAkYmxhY2tcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW4gY2VudGVyXG4gICAgICAgICAgICB0cmFuc2l0aW9uICR0cmFuc1xuICAgICZfX25hbWVcbiAgICAgICAgbWFyZ2luLWxlZnQgN3B4XG4gICAgJi5hY3RpdmVcbiAgICAgICAgLnJhZGlvXG4gICAgICAgICAgICAmX19pY29uXG4gICAgICAgICAgICAgICAgJjpiZWZvcmVcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAkd2hpdGVcblxuLmNoZWNrYm94ZXNcbiAgICBkaXNwbGF5IGZsZXhcbiAgICBhbGlnbi1pdGVtcyBjZW50ZXJcbiAgICBqdXN0aWZ5LWNvbnRlbnQgZmxleC1zdGFydFxuICAgIGdhcCA0MHB4XG5cbi5jaGVja2JveFxuICAgIHBvc2l0aW9uIHJlbGF0aXZlXG4gICAgaW5wdXRcbiAgICAgICAgcG9zaXRpb24gYWJzb2x1dGVcbiAgICAgICAgdG9wIDBcbiAgICAgICAgbGVmdCAwXG4gICAgICAgIHJpZ2h0IDBcbiAgICAgICAgYm90dG9tIDBcbiAgICAgICAgbWFyZ2luIGF1dG9cbiAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICBoZWlnaHQgMTAwJVxuICAgICAgICBvcGFjaXR5IDBcbiAgICAgICAgei1pbmRleCAxXG4gICAgICAgIGN1cnNvciBwb2ludGVyXG4gICAgICAgICY6Y2hlY2tlZFxuICAgICAgICAgICAgKyBcbiAgICAgICAgICAgICAgICAuY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgJl9faWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAkd2hpdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICYtLXdoaXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAkbGlnaHRlci1ibGFja1xuICAgICZfX2ljb25cbiAgICAgICAgd2lkdGggMjRweFxuICAgICAgICBoZWlnaHQgMjRweFxuICAgICAgICBib3JkZXIgMXB4IHNvbGlkICR3aGl0ZVxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICRibGFja1xuICAgICAgICBib3JkZXItcmFkaXVzIDVweFxuICAgICAgICB0cmFuc2l0aW9uICR0cmFuc1xuICAgICAgICAmLS13aGl0ZVxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAkd2hpdGVcbiAgICAgICAgICAgIGJvcmRlci1jb2xvciAkbGlnaHRlci1ibGFja1xuICAgICZfX3RleHRcbiAgICAgICAgbWFyZ2luLWxlZnQgMTRweFxuXG4uZm9ybVxuICAgICYtLXB0Xzk1XG4gICAgICAgIHBhZGRpbmctdG9wIDk1cHhcbiAgICAgICAgK2JlbG93KDc2OHB4KVxuICAgICAgICAgICAgcGFkZGluZy10b3AgNjBweFxuXG4gICAgJi0tY3RhXG4gICAgICAgICtiZWxvdyg5OTBweClcbiAgICAgICAgICAgIHBhZGRpbmctdG9wIDYwcHhcbiAgICAgICAgICAgICYuZm9ybS0tcHRfOTVcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcCA5NXB4XG4gICAgICAgICAgICAmLmZvcm0tLW5hcnJvd1xuICAgICAgICAgICAgICAgIG1heC13aWR0aCA1MTBweFxuICAgICAgICAgICAgICAgIHdpZHRoIDEwMCVcblxuICAgICYtLW5hcnJvd1xuICAgICAgICBtYXgtd2lkdGggNTcwcHhcbiAgICAgICAgd2lkdGggMTAwJVxuXG4gICAgICAgICtiZWxvdyg1ODBweClcbiAgICAgICAgICAgIG1heC13aWR0aCA0NzBweFxuICAgICAgICAgICAgd2lkdGggMTAwJVxuICAgICYtcmFkaW9zXG4gICAgICAgIGdhcCAxNDBweFxuXG4gICAgICAgICtiZWxvdygxMTIwcHgpXG4gICAgICAgICAgICBnYXAgNjBweFxuXG4gICAgJl9fdG9wXG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgJG1pZC1ibGFja1xuICAgICAgICBib3JkZXItcmFkaXVzIDEwcHhcbiAgICAgICAgcGFkZGluZyAxN3B4IDIycHggMTlweFxuICAgICAgICBib3JkZXIgMXB4IHNvbGlkICRtaWQtYmxhY2tcbiAgICAmX19yb3dzXG4gICAgICAgIGdhcCAxNnB4XG4gICAgJl9fcm93LFxuICAgICZfX2lucHV0XG4gICAgICAgIHdpZHRoIDEwMCVcbiAgICAmX19yb3dcbiAgICAgICAgJi0tZGVza3RvcFxuICAgICAgICAgICAgK2JlbG93KDUyMHB4KVxuICAgICAgICAgICAgICAgIGRpc3BsYXkgbm9uZVxuICAgICAgICAmLS1tb2JpbGVcbiAgICAgICAgICAgICthYm92ZSg1MjBweClcbiAgICAgICAgICAgICAgICBkaXNwbGF5IG5vbmVcbiAgICAmLWJvdHRvbVxuICAgICAgICBtYXJnaW4tdG9wIDQ1cHhcbiAgICAgICAgK2JlbG93KDQ4MHB4KVxuICAgICAgICAgICAgbWFyZ2luLXRvcCAyMHB4XG4gICAgICAgICYtLW1kX210XG4gICAgICAgICAgICBtYXJnaW4tdG9wIDM1cHhcbiAgICAgICAgJi0tc21fbXRcbiAgICAgICAgICAgIG1hcmdpbi10b3AgMjBweFxuICAgICAgICAmX19ibG9ja1xuICAgICAgICAgICAgd2lkdGggMTAwJVxuXG4gICAgICAgICtiZWxvdyg0ODBweClcbiAgICAgICAgICAgIC5mb3JtXG4gICAgICAgICAgICAgICAgJl9fcm93XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uIGNvbHVtblxuICAgICAgICAgICAgICAgICAgICBnYXAgNDBweFxuICAgICAgICAgICAgICAgICZfX2lucHV0XG4gICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50IGZsZXgtc3RhcnRcbiAgICAgICAgICAgIC5idG5zXG4gICAgICAgICAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICAgICAgICAgIC5idG5cbiAgICAgICAgICAgICAgICAgICAgd2lkdGggMTAwJVxuXG4gICAgJl9faW5wdXRTdWJcbiAgICAgICAgbWFyZ2luLXRvcCAxNXB4XG5cbiAgICAmLS1ibGFja1xuICAgICAgICBpbnB1dDotd2Via2l0LWF1dG9maWxsLFxuICAgICAgICBpbnB1dDotd2Via2l0LWF1dG9maWxsOmhvdmVyLCBcbiAgICAgICAgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbDpmb2N1c1xuICAgICAgICBpbnB1dDotd2Via2l0LWF1dG9maWxsLCBcbiAgICAgICAgdGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbCxcbiAgICAgICAgdGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbDpob3ZlclxuICAgICAgICB0ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsOmZvY3VzLFxuICAgICAgICBzZWxlY3Q6LXdlYmtpdC1hdXRvZmlsbCxcbiAgICAgICAgc2VsZWN0Oi13ZWJraXQtYXV0b2ZpbGw6aG92ZXIsXG4gICAgICAgIHNlbGVjdDotd2Via2l0LWF1dG9maWxsOmZvY3VzXG4gICAgICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogJGJsYWNrXG4gICAgICAgICAgICAtd2Via2l0LWJveC1zaGFkb3cgMCAwIDBweCAxMDAwcHggdHJhbnNwYXJlbnQgaW5zZXRcbiAgICAgICAgICAgIHRyYW5zaXRpb24gYmFja2dyb3VuZC1jb2xvciA1MDAwcyBlYXNlLWluLW91dCAwc1xuICAgICAgICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAgI2ZmZiAwJSwjZmZmIDUwJSwjZmZmIDUxJSwjZmZmIDEwMCUpXG4gICAgICAgIC51cGxvYWRcbiAgICAgICAgICAgICYtZmlsZVxuICAgICAgICAgICAgICAgIGNvbG9yICRsaWdodGVyLWJsYWNrXG4gICAgICAgIC5jaGVja2JveFxuICAgICAgICAgICAgY29sb3IgJGxpZ2h0ZXItYmxhY2tcblxuICAgICYtLWxpZ2h0XG4gICAgICAgIC5mb3JtXG4gICAgICAgICAgICAmX190b3BcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICRkYXJrZXItZ3JlZW5cbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3IgJGRhcmtlci1ncmVlblxuICAgICAgICAgICAgJl9fcm93XG4gICAgICAgICAgICAgICAgJi0tbW9iaWxlXG4gICAgICAgICAgICAgICAgICAgIC5zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICYtdXNlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICZfX3RpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgJGRhcmtlci1ncmVlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvciAkd2hpdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmX19zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAkZGFya2VyLWdyZWVuXG4gICAgICAgICAgICAgICAgICAgIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX3BsYWNlaG9sZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvciAkd2hpdGVcblxuICAgICAgICBpbnB1dDotd2Via2l0LWF1dG9maWxsLFxuICAgICAgICBpbnB1dDotd2Via2l0LWF1dG9maWxsOmhvdmVyLCBcbiAgICAgICAgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbDpmb2N1c1xuICAgICAgICBpbnB1dDotd2Via2l0LWF1dG9maWxsLCBcbiAgICAgICAgdGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbCxcbiAgICAgICAgdGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbDpob3ZlclxuICAgICAgICB0ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsOmZvY3VzLFxuICAgICAgICBzZWxlY3Q6LXdlYmtpdC1hdXRvZmlsbCxcbiAgICAgICAgc2VsZWN0Oi13ZWJraXQtYXV0b2ZpbGw6aG92ZXIsXG4gICAgICAgIHNlbGVjdDotd2Via2l0LWF1dG9maWxsOmZvY3VzXG4gICAgICAgICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogJGJsYWNrXG4gICAgICAgICAgICAtd2Via2l0LWJveC1zaGFkb3cgMCAwIDBweCAxMDAwcHggdHJhbnNwYXJlbnQgaW5zZXRcbiAgICAgICAgICAgIHRyYW5zaXRpb24gYmFja2dyb3VuZC1jb2xvciA1MDAwcyBlYXNlLWluLW91dCAwc1xuICAgICAgICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAgI2ZmZiAwJSwjZmZmIDUwJSwjZmZmIDUxJSwjZmZmIDEwMCUpXG4gICAgICAgICAgICBcblxuICAgICAgICAucmFkaW9cbiAgICAgICAgICAgICZfX2ljb25cbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICR3aGl0ZVxuICAgICAgICAgICAgICAgICY6YmVmb3JlXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgJGRhcmtlci1ncmVlblxuXG4gICAgICAgICAgICAmLmFjdGl2ZVxuICAgICAgICAgICAgICAgIC5yYWRpb1xuICAgICAgICAgICAgICAgICAgICAmX19pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgJHdoaXRlXG5cbiAgICAgICAgLmlucHV0XG4gICAgICAgICAgICAmX19wbGFjZWhvbGRlclxuICAgICAgICAgICAgICAgIGNvbG9yIHJnYmEoMjMsMjYsMjcsLjUpXG5cbiAgICAgICAgLnVwbG9hZFxuICAgICAgICAgICAgJi1maWxlXG4gICAgICAgICAgICAgICAgY29sb3IgJGJsYWNrXG4gICAgICAgICAgICAgICAgJl9fZGVsZXRlXG4gICAgICAgICAgICAgICAgICAgIHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UgJGJsYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsICRibGFja1xuICAgICAgICAgICAgJl9fdGl0bGVcbiAgICAgICAgICAgICAgICBjb2xvciAkYmxhY2tcbiAgICAgICAgICAgICZfX3RleHRcbiAgICAgICAgICAgICAgICBjb2xvciByZ2JhKDIzLDI2LDI3LC41KVxuXG4gICAgICAgIC5jaGVja2JveFxuICAgICAgICAgICAgJl9fdGV4dFxuICAgICAgICAgICAgICAgIGNvbG9yICRibGFja1xuICAgICAgICAgICAgICAgIHBcbiAgICAgICAgICAgICAgICAgICAgY29sb3IgJGJsYWNrXG4gICAgICAgICAgICAmX19pY29uXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAkd2hpdGVcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3IgJGJsYWNrXG4gICAgICAgICAgICAgICAgcGF0aFxuICAgICAgICAgICAgICAgICAgICBmaWxsICR3aGl0ZVxuICAgICAgICAgICAgaW5wdXRcbiAgICAgICAgICAgICAgICAmOmNoZWNrZWRcbiAgICAgICAgICAgICAgICAgICAgKyBcbiAgICAgICAgICAgICAgICAgICAgICAgIC5jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICZfX2ljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAkYmxhY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi0td2hpdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgJGxpZ2h0ZXItYmxhY2tcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgXG4gICAgICAgIGlucHV0LFxuICAgICAgICB0ZXh0YXJlYVxuICAgICAgICAgICAgY29sb3IgJGJsYWNrXG5cbiAgICAgICAgaW5wdXQsXG4gICAgICAgIHRleHRhcmVhXG4gICAgICAgICAgICBib3JkZXItY29sb3IgcmdiYSgyMywyNiwyNywuNClcblxuXG4gICAgICAgIC51cGxvYWRcbiAgICAgICAgICAgIC5idG5cbiAgICAgICAgICAgICAgICAmLS1ncmV5XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgI0RGREZERlxuICAgICAgICAgICAgICAgICAgICBjb2xvciAjMTcxQTFCXG4gICAgICAgIC53cGNmNyBcbiAgICAgICAgICAgIGZvcm0gXG4gICAgICAgICAgICAgICAgLndwY2Y3LXJlc3BvbnNlLW91dHB1dFxuICAgICAgICAgICAgICAgICAgICBjb2xvciAkYmxhY2tcblxuICAgICAgICAuYnRuc1xuICAgICAgICAgICAgLmJ0blxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgJGJsYWNrXG4gICAgICAgICAgICAgICAgY29sb3IgJHdoaXRlXG4gICAgICAgICAgICAgICAgJjpob3ZlclxuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZVxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAkc2xpZ2h0LWdyZWVuXG5cbi5idG5cbiAgICAud3BjZjctZm9ybS1jb250cm9sLXdyYXBcbiAgICAgICAgcG9zaXRpb24gYWJzb2x1dGVcbiAgICAgICAgdG9wIDBcbiAgICAgICAgcmlnaHQgMFxuICAgICAgICBib3R0b20gMFxuICAgICAgICBsZWZ0IDBcbiAgICAgICAgbWFyZ2luIGF1dG9cbiAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICBoZWlnaHQgMTAwJVxuXG4udXBsb2FkXG4gICAgcG9zaXRpb24gcmVsYXRpdmVcbiAgICAud3BjZjctZm9ybS1jb250cm9sLXdyYXBcbiAgICAgICAgcG9zaXRpb24gYWJzb2x1dGVcbiAgICAgICAgdG9wIDBcbiAgICAgICAgbGVmdCAwXG4gICAgICAgIHdpZHRoIDkwJVxuICAgICAgICBoZWlnaHQgMTAwJVxuICAgICAgICB6LWluZGV4IDEwXG4gICAgICAgIHBhZGRpbmcgMFxuICAgICAgICBpbnB1dFxuICAgICAgICAgICAgcGFkZGluZyAwXG4gICAgICAgICAgICBvcGFjaXR5IDBcbiAgICAgICAgICAgIHdpZHRoIDEwMCVcbiAgICAgICAgICAgIGhlaWdodCAxMDAlXG4gICAgICAgICAgICAvL2hlaWdodCAyMHB4XG4gICAgICAgICtiZWxvdyg1ODBweClcbiAgICAgICAgICAgIHdpZHRoIDEwMCVcbiAgICAgICAgICAgIGhlaWdodCAxMDAlXG4gICAgJl9fdGl0bGVcbiAgICAgICAgZm9udC1zaXplICRoNC1zaXplLTM3NVxuICAgICAgICBsaW5lLWhlaWdodCAkaDQtbGluZS0zNzVcbiAgICAgICAgY29sb3IgJHdoaXRlXG4gICAgJl9fd3JhcHBlclxuICAgICAgICBnYXAgMzBweFxuICAgICAgICAmLS1zbVxuICAgICAgICAgICAgZ2FwIDIwcHhcbiAgICAgICAgJi5oaWRkZW5cbiAgICAgICAgICAgIGRpc3BsYXkgbm9uZVxuICAgICZfX2Jsb2NrXG4gICAgICAgICYtLXNtXG4gICAgICAgICAgICBnYXAgMTBweFxuICAgICAgICBnYXAgMTVweFxuICAgICZfX3RleHRcbiAgICAgICAgY29sb3IgJGxpZ2h0LXdoaXRlXG4gICAgJi1maWxlXG4gICAgICAgIGNvbG9yICR3aGl0ZVxuICAgICAgICBmb250LXNpemUgJHA2LXNpemVcbiAgICAgICAgbGluZS1oZWlnaHQgJHA2LWxpbmVcbiAgICAgICAgZGlzcGxheSBub25lXG4gICAgICAgIHBvc2l0aW9uIHJlbGF0aXZlXG4gICAgICAgIHotaW5kZXggMTFcbiAgICAgICAgJl9faWNvbixcbiAgICAgICAgJl9fZGVsZXRlXG4gICAgICAgICAgICB3aWR0aCAxNHB4XG4gICAgICAgICAgICBoZWlnaHQgMTRweFxuICAgICAgICAgICAgc3ZnXG4gICAgICAgICAgICAgICAgd2lkdGggMTAwJVxuICAgICAgICAgICAgICAgIGhlaWdodCAxMDAlXG4gICAgICAgICZfX2ljb25cbiAgICAgICAgICAgIG1hcmdpbi1yaWdodCA0cHhcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rIDBcbiAgICAgICAgJl9fZGVsZXRlXG4gICAgICAgICAgICBtYXJnaW4tbGVmdCA2cHhcbiAgICAgICAgICAgIGN1cnNvciBwb2ludGVyXG4gICAgICAgICAgICBwYXRoXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbiAkdHJhbnNcbiAgICAgICAgICAgICY6aG92ZXJcbiAgICAgICAgICAgICAgICBwYXRoXG4gICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGRcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZSAkZ3JlZW5cbiAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsICRncmVlblxuICAgICAgICAmLmFjdGl2ZVxuICAgICAgICAgICAgZGlzcGxheSBmbGV4XG5cbiAgICAmLS1ibGFja1xuICAgICAgICAudXBsb2FkXG4gICAgICAgICAgICAmX190aXRsZVxuICAgICAgICAgICAgICAgIGNvbG9yICRsaWdodGVyLWJsYWNrXG4gICAgICAgICAgICAmX190ZXh0XG4gICAgICAgICAgICAgICAgY29sb3IgJG1pZC1saWdodGVyLWJsYWNrXG5cbiAgICArYmVsb3coNTgwcHgpXG4gICAgICAgICZfX3dyYXBwZXIsXG4gICAgICAgICZfX2Jsb2NrXG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbiBjb2x1bW5cbiAgICAgICAgICAgIGFsaWduLWl0ZW1zIGNlbnRlclxuICAgICAgICAmX19ibG9ja1xuICAgICAgICAgICAgJjpsYXN0LWNoaWxkXG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb24gY29sdW1uLXJldmVyc2VcbiAgICAgICAgJl9fd3JhcHBlclxuICAgICAgICAgICAgcGFkZGluZyAyMHB4XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzIDEwcHhcbiAgICAgICAgICAgIGJvcmRlciAxcHggZGFzaGVkICRzbGlnaHQtZ3JleVxuICAgICAgICAgICAgZ2FwIDRweFxuXG4uc2VsZWN0XG4gICAgJi11c2VyXG4gICAgICAgICZfX3dyYXBwZXJcbiAgICAgICAgICAgIGdhcCAxMHB4XG4gICAgICAgICZfX3RpdGxlLFxuICAgICAgICAmX19zZWxlY3RcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXMgMTBweFxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAkc2xpZ2h0bHktd2hpdGVcbiAgICAgICAgJl9fdGl0bGVcbiAgICAgICAgICAgIHBhZGRpbmcgMTZweCAyMnB4XG4gICAgICAgICAgICBjb2xvciAkbGlnaHQtd2hpdGVcbiAgICAgICAgICAgIGZvbnQtc2l6ZSAkYmFzZS1zaXplXG4gICAgICAgICAgICBsaW5lLWhlaWdodCAkYmFzZS1saW5lXG4gICAgICAgICAgICBmbGV4LXNocmluayAwXG4gICAgICAgICZfX3NlbGVjdFxuICAgICAgICAgICAgZmxleC1ncm93IDFcbiAgICAgICAgICAgIHdpZHRoIDEwMCVcbiAgICAgICAgICAgIG1heC13aWR0aCAxMDAlXG4gICAgICAgICAgICAud3BjZjctZm9ybS1jb250cm9sLXdyYXAsXG4gICAgICAgICAgICAud3BjZjctZm9ybS1jb250cm9sXG4gICAgICAgICAgICAgICAgd2lkdGggMTAwJSAhaW1wb3J0YW50XG5cbi5maWx0ZXJzXG4gICAgLmZvcm1cbiAgICAgICAgJl9fcm93c1xuICAgICAgICAgICAgZGlzcGxheSBmbGV4XG4gICAgICAgICAgICBhbGlnbi1pdGVtcyBjZW50ZXJcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uIGNvbHVtblxuICAgICAgICAgICAgZ2FwIDQwcHhcbiAgICAgICAgJl9fcm93XG4gICAgICAgICAgICBkaXNwbGF5IGZsZXhcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zIGNlbnRlclxuICAgICAgICAgICAgZ2FwIDMwcHhcbiAgICAgICAgICAgICtiZWxvdyg3NjhweClcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbiBjb2x1bW5cbiAgICAuaW5wdXRcbiAgICAgICAgJl9fcGxhY2Vob2xkZXJcbiAgICAgICAgICAgIHotaW5kZXggLTFcblxuXG4uY2FwdGNoYVxuICAgIHdpZHRoIDEwMCVcbiAgICBtYXJnaW4tYm90dG9tIDI0cHgiLCJpbnB1dCxcbnRleHRhcmVhIHtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kOiB1bnNldDtcbiAgd2lkdGg6IDEwMCU7XG59XG5pbnB1dDo6cGxhY2Vob2xkZXIsXG50ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjYpO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuaW5wdXQsXG50ZXh0YXJlYSB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXI6IDFweCBkYXNoZWQgcmdiYSgxNzgsMTkyLDE5MSwwLjQpO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgb3V0bGluZTogbm9uZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1vdXQ7XG59XG5pbnB1dCB7XG4gIGhlaWdodDogNjBweDtcbiAgcGFkZGluZzogMCAyMnB4IDAgMTU1cHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExMjFweCkge1xuICBpbnB1dCB7XG4gICAgcGFkZGluZzogMCAyMnB4IDAgMTE1cHg7XG4gIH1cbn1cbnRleHRhcmVhIHtcbiAgaGVpZ2h0OiAxMjBweDtcbiAgcmVzaXplOiBub25lO1xuICBwYWRkaW5nOiAxN3B4IDIycHggMTdweCAxNTVweDtcbn1cbi5pbnB1dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5pbnB1dF9fcGxhY2Vob2xkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTdweDtcbiAgbGVmdDogMjJweDtcbiAgbWFyZ2luOiBhdXRvO1xuICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjcpO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLW91dDtcbiAgei1pbmRleDogMDtcbn1cbi5pbnB1dF9fcGxhY2Vob2xkZXIuYWN0aXZlIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgdG9wOiA4cHg7XG59XG4uaW5wdXQtLWJsYWNrIGlucHV0LFxuLmlucHV0LS1ibGFjayB0ZXh0YXJlYSB7XG4gIGNvbG9yOiAjMTcxYTFiO1xufVxuLmlucHV0LS1ibGFjayAuaW5wdXRfX3BsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMTYsMTgsMTksMC41KTtcbn1cbi5pbnB1dC0tYW5pbSBpbnB1dCB7XG4gIHBhZGRpbmc6IDIwcHggMjBweCAwO1xuICBoZWlnaHQ6IDcwcHg7XG59XG4uaW5wdXQtLWFuaW0gLmlucHV0X19wbGFjZWhvbGRlciB7XG4gIHRvcDogMjJweDtcbn1cbi5pbnB1dC0tYW5pbSAuaW5wdXRfX3BsYWNlaG9sZGVyLmFjdGl2ZSB7XG4gIHRvcDogOHB4O1xufVxuLnJhZGlvcyB7XG4gIGdhcDogNDBweDtcbn1cbi5yYWRpbyB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5yYWRpb19fd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5yYWRpbyBpbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBtYXJnaW46IGF1dG87XG4gIG9wYWNpdHk6IDA7XG4gIHotaW5kZXg6IDI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5yYWRpb19faWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYxMTEyO1xufVxuLnJhZGlvX19pY29uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgbWFyZ2luOiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZjExMTI7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1vdXQ7XG59XG4ucmFkaW9fX25hbWUge1xuICBtYXJnaW4tbGVmdDogN3B4O1xufVxuLnJhZGlvLmFjdGl2ZSAucmFkaW9fX2ljb246YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5jaGVja2JveGVzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBnYXA6IDQwcHg7XG59XG4uY2hlY2tib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uY2hlY2tib3ggaW5wdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbWFyZ2luOiBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiAxO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCArIC5jaGVja2JveF9faWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG4uY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCArIC5jaGVja2JveF9faWNvbi0td2hpdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcxYTFiO1xufVxuLmNoZWNrYm94X19pY29uIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBmMTExMjtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLW91dDtcbn1cbi5jaGVja2JveF9faWNvbi0td2hpdGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICMxNzFhMWI7XG59XG4uY2hlY2tib3hfX3RleHQge1xuICBtYXJnaW4tbGVmdDogMTRweDtcbn1cbi5mb3JtLS1wdF85NSB7XG4gIHBhZGRpbmctdG9wOiA5NXB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuZm9ybS0tcHRfOTUge1xuICAgIHBhZGRpbmctdG9wOiA2MHB4O1xuICB9XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk5MHB4KSB7XG4gIC5mb3JtLS1jdGEge1xuICAgIHBhZGRpbmctdG9wOiA2MHB4O1xuICB9XG4gIC5mb3JtLS1jdGEuZm9ybS0tcHRfOTUge1xuICAgIHBhZGRpbmctdG9wOiA5NXB4O1xuICB9XG4gIC5mb3JtLS1jdGEuZm9ybS0tbmFycm93IHtcbiAgICBtYXgtd2lkdGg6IDUxMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4uZm9ybS0tbmFycm93IHtcbiAgbWF4LXdpZHRoOiA1NzBweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU4MHB4KSB7XG4gIC5mb3JtLS1uYXJyb3cge1xuICAgIG1heC13aWR0aDogNDcwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi5mb3JtLXJhZGlvcyB7XG4gIGdhcDogMTQwcHg7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExMjBweCkge1xuICAuZm9ybS1yYWRpb3Mge1xuICAgIGdhcDogNjBweDtcbiAgfVxufVxuLmZvcm1fX3RvcCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMzE1MTY7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIHBhZGRpbmc6IDE3cHggMjJweCAxOXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMTMxNTE2O1xufVxuLmZvcm1fX3Jvd3Mge1xuICBnYXA6IDE2cHg7XG59XG4uZm9ybV9fcm93LFxuLmZvcm1fX2lucHV0IHtcbiAgd2lkdGg6IDEwMCU7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDUyMHB4KSB7XG4gIC5mb3JtX19yb3ctLWRlc2t0b3Age1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTIwcHgpIHtcbiAgLmZvcm1fX3Jvdy0tbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uZm9ybS1ib3R0b20ge1xuICBtYXJnaW4tdG9wOiA0NXB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuZm9ybS1ib3R0b20ge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gIH1cbn1cbi5mb3JtLWJvdHRvbS0tbWRfbXQge1xuICBtYXJnaW4tdG9wOiAzNXB4O1xufVxuLmZvcm0tYm90dG9tLS1zbV9tdCB7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG59XG4uZm9ybS1ib3R0b21fX2Jsb2NrIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5mb3JtLWJvdHRvbSAuZm9ybV9fcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNDBweDtcbiAgfVxuICAuZm9ybS1ib3R0b20gLmZvcm1fX2lucHV0IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIH1cbiAgLmZvcm0tYm90dG9tIC5idG5zIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuZm9ybS1ib3R0b20gLmJ0bnMgLmJ0biB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi5mb3JtX19pbnB1dFN1YiB7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG59XG4uZm9ybS0tYmxhY2sgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCxcbi5mb3JtLS1ibGFjayBpbnB1dDotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuLmZvcm0tLWJsYWNrIGlucHV0Oi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4uZm9ybS0tYmxhY2sgdGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbCxcbi5mb3JtLS1ibGFjayB0ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuLmZvcm0tLWJsYWNrIHRleHRhcmVhOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4uZm9ybS0tYmxhY2sgc2VsZWN0Oi13ZWJraXQtYXV0b2ZpbGwsXG4uZm9ybS0tYmxhY2sgc2VsZWN0Oi13ZWJraXQtYXV0b2ZpbGw6aG92ZXIsXG4uZm9ybS0tYmxhY2sgc2VsZWN0Oi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMge1xuICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogIzBmMTExMjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMHB4IDEwMDBweCB0cmFuc3BhcmVudCBpbnNldDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciA1MDAwcyBlYXNlLWluLW91dCAwcztcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmIDAlLCAjZmZmIDUwJSwgI2ZmZiA1MSUsICNmZmYgMTAwJSk7XG59XG4uZm9ybS0tYmxhY2sgLnVwbG9hZC1maWxlIHtcbiAgY29sb3I6ICMxNzFhMWI7XG59XG4uZm9ybS0tYmxhY2sgLmNoZWNrYm94IHtcbiAgY29sb3I6ICMxNzFhMWI7XG59XG4uZm9ybS0tbGlnaHQgLmZvcm1fX3RvcCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGE2NzI7XG4gIGJvcmRlci1jb2xvcjogIzAwYTY3Mjtcbn1cbi5mb3JtLS1saWdodCAuZm9ybV9fcm93LS1tb2JpbGUgLnNlbGVjdC11c2VyX190aXRsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGE2NzI7XG4gIGNvbG9yOiAjZmZmO1xufVxuLmZvcm0tLWxpZ2h0IC5mb3JtX19yb3ctLW1vYmlsZSAuc2VsZWN0LXVzZXJfX3NlbGVjdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGE2NzI7XG59XG4uZm9ybS0tbGlnaHQgLmZvcm1fX3Jvdy0tbW9iaWxlIC5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX3BsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNmZmY7XG59XG4uZm9ybS0tbGlnaHQgaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCxcbi5mb3JtLS1saWdodCBpbnB1dDotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuLmZvcm0tLWxpZ2h0IGlucHV0Oi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4uZm9ybS0tbGlnaHQgdGV4dGFyZWE6LXdlYmtpdC1hdXRvZmlsbCxcbi5mb3JtLS1saWdodCB0ZXh0YXJlYTotd2Via2l0LWF1dG9maWxsOmhvdmVyLFxuLmZvcm0tLWxpZ2h0IHRleHRhcmVhOi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMsXG4uZm9ybS0tbGlnaHQgc2VsZWN0Oi13ZWJraXQtYXV0b2ZpbGwsXG4uZm9ybS0tbGlnaHQgc2VsZWN0Oi13ZWJraXQtYXV0b2ZpbGw6aG92ZXIsXG4uZm9ybS0tbGlnaHQgc2VsZWN0Oi13ZWJraXQtYXV0b2ZpbGw6Zm9jdXMge1xuICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogIzBmMTExMjtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMHB4IDEwMDBweCB0cmFuc3BhcmVudCBpbnNldDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciA1MDAwcyBlYXNlLWluLW91dCAwcztcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjZmZmIDAlLCAjZmZmIDUwJSwgI2ZmZiA1MSUsICNmZmYgMTAwJSk7XG59XG4uZm9ybS0tbGlnaHQgLnJhZGlvX19pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cbi5mb3JtLS1saWdodCAucmFkaW9fX2ljb246YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYTY3Mjtcbn1cbi5mb3JtLS1saWdodCAucmFkaW8uYWN0aXZlIC5yYWRpb19faWNvbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLmZvcm0tLWxpZ2h0IC5pbnB1dF9fcGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgyMywyNiwyNywwLjUpO1xufVxuLmZvcm0tLWxpZ2h0IC51cGxvYWQtZmlsZSB7XG4gIGNvbG9yOiAjMGYxMTEyO1xufVxuLmZvcm0tLWxpZ2h0IC51cGxvYWQtZmlsZV9fZGVsZXRlIHBhdGg6Zmlyc3QtY2hpbGQge1xuICBzdHJva2U6ICMwZjExMTI7XG59XG4uZm9ybS0tbGlnaHQgLnVwbG9hZC1maWxlX19kZWxldGUgcGF0aDpsYXN0LWNoaWxkIHtcbiAgZmlsbDogIzBmMTExMjtcbn1cbi5mb3JtLS1saWdodCAudXBsb2FkX190aXRsZSB7XG4gIGNvbG9yOiAjMGYxMTEyO1xufVxuLmZvcm0tLWxpZ2h0IC51cGxvYWRfX3RleHQge1xuICBjb2xvcjogcmdiYSgyMywyNiwyNywwLjUpO1xufVxuLmZvcm0tLWxpZ2h0IC5jaGVja2JveF9fdGV4dCB7XG4gIGNvbG9yOiAjMGYxMTEyO1xufVxuLmZvcm0tLWxpZ2h0IC5jaGVja2JveF9fdGV4dCBwIHtcbiAgY29sb3I6ICMwZjExMTI7XG59XG4uZm9ybS0tbGlnaHQgLmNoZWNrYm94X19pY29uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjMGYxMTEyO1xufVxuLmZvcm0tLWxpZ2h0IC5jaGVja2JveF9faWNvbiBwYXRoIHtcbiAgZmlsbDogI2ZmZjtcbn1cbi5mb3JtLS1saWdodCAuY2hlY2tib3ggaW5wdXQ6Y2hlY2tlZCArIC5jaGVja2JveF9faWNvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwZjExMTI7XG59XG4uZm9ybS0tbGlnaHQgLmNoZWNrYm94IGlucHV0OmNoZWNrZWQgKyAuY2hlY2tib3hfX2ljb24tLXdoaXRlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE3MWExYjtcbn1cbi5mb3JtLS1saWdodCBpbnB1dCxcbi5mb3JtLS1saWdodCB0ZXh0YXJlYSB7XG4gIGNvbG9yOiAjMGYxMTEyO1xufVxuLmZvcm0tLWxpZ2h0IGlucHV0LFxuLmZvcm0tLWxpZ2h0IHRleHRhcmVhIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzLDI2LDI3LDAuNCk7XG59XG4uZm9ybS0tbGlnaHQgLnVwbG9hZCAuYnRuLS1ncmV5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RmZGZkZjtcbiAgY29sb3I6ICMxNzFhMWI7XG59XG4uZm9ybS0tbGlnaHQgLndwY2Y3IGZvcm0gLndwY2Y3LXJlc3BvbnNlLW91dHB1dCB7XG4gIGNvbG9yOiAjMGYxMTEyO1xufVxuLmZvcm0tLWxpZ2h0IC5idG5zIC5idG4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYxMTEyO1xuICBjb2xvcjogI2ZmZjtcbn1cbi5mb3JtLS1saWdodCAuYnRucyAuYnRuOmhvdmVyOmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwY2I5ODU7XG59XG4uYnRuIC53cGNmNy1mb3JtLWNvbnRyb2wtd3JhcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBtYXJnaW46IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG4udXBsb2FkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnVwbG9hZCAud3BjZjctZm9ybS1jb250cm9sLXdyYXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDkwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB6LWluZGV4OiAxMDtcbiAgcGFkZGluZzogMDtcbn1cbi51cGxvYWQgLndwY2Y3LWZvcm0tY29udHJvbC13cmFwIGlucHV0IHtcbiAgcGFkZGluZzogMDtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTgwcHgpIHtcbiAgLnVwbG9hZCAud3BjZjctZm9ybS1jb250cm9sLXdyYXAge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgfVxufVxuLnVwbG9hZF9fdGl0bGUge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyNXB4O1xuICBjb2xvcjogI2ZmZjtcbn1cbi51cGxvYWRfX3dyYXBwZXIge1xuICBnYXA6IDMwcHg7XG59XG4udXBsb2FkX193cmFwcGVyLS1zbSB7XG4gIGdhcDogMjBweDtcbn1cbi51cGxvYWRfX3dyYXBwZXIuaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi51cGxvYWRfX2Jsb2NrIHtcbiAgZ2FwOiAxNXB4O1xufVxuLnVwbG9hZF9fYmxvY2stLXNtIHtcbiAgZ2FwOiAxMHB4O1xufVxuLnVwbG9hZF9fdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNyk7XG59XG4udXBsb2FkLWZpbGUge1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMjFweDtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxMTtcbn1cbi51cGxvYWQtZmlsZV9faWNvbixcbi51cGxvYWQtZmlsZV9fZGVsZXRlIHtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbn1cbi51cGxvYWQtZmlsZV9faWNvbiBzdmcsXG4udXBsb2FkLWZpbGVfX2RlbGV0ZSBzdmcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLnVwbG9hZC1maWxlX19pY29uIHtcbiAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnVwbG9hZC1maWxlX19kZWxldGUge1xuICBtYXJnaW4tbGVmdDogNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udXBsb2FkLWZpbGVfX2RlbGV0ZSBwYXRoIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1vdXQ7XG59XG4udXBsb2FkLWZpbGVfX2RlbGV0ZTpob3ZlciBwYXRoOmZpcnN0LWNoaWxkIHtcbiAgc3Ryb2tlOiAjMDBjMDg0O1xufVxuLnVwbG9hZC1maWxlX19kZWxldGU6aG92ZXIgcGF0aDpsYXN0LWNoaWxkIHtcbiAgZmlsbDogIzAwYzA4NDtcbn1cbi51cGxvYWQtZmlsZS5hY3RpdmUge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuLnVwbG9hZC0tYmxhY2sgLnVwbG9hZF9fdGl0bGUge1xuICBjb2xvcjogIzE3MWExYjtcbn1cbi51cGxvYWQtLWJsYWNrIC51cGxvYWRfX3RleHQge1xuICBjb2xvcjogcmdiYSgxNiwxOCwxOSwwLjUpO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1ODBweCkge1xuICAudXBsb2FkX193cmFwcGVyLFxuICAudXBsb2FkX19ibG9jayB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG4gIC51cGxvYWRfX2Jsb2NrOmxhc3QtY2hpbGQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgfVxuICAudXBsb2FkX193cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYm9yZGVyOiAxcHggZGFzaGVkIHJnYmEoMTc4LDE5MiwxOTEsMC40KTtcbiAgICBnYXA6IDRweDtcbiAgfVxufVxuLnNlbGVjdC11c2VyX193cmFwcGVyIHtcbiAgZ2FwOiAxMHB4O1xufVxuLnNlbGVjdC11c2VyX190aXRsZSxcbi5zZWxlY3QtdXNlcl9fc2VsZWN0IHtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMTcsMjE3LDIxNywwLjAyKTtcbn1cbi5zZWxlY3QtdXNlcl9fdGl0bGUge1xuICBwYWRkaW5nOiAxNnB4IDIycHg7XG4gIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNyk7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnNlbGVjdC11c2VyX19zZWxlY3Qge1xuICBmbGV4LWdyb3c6IDE7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4uc2VsZWN0LXVzZXJfX3NlbGVjdCAud3BjZjctZm9ybS1jb250cm9sLXdyYXAsXG4uc2VsZWN0LXVzZXJfX3NlbGVjdCAud3BjZjctZm9ybS1jb250cm9sIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cbi5maWx0ZXJzIC5mb3JtX19yb3dzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA0MHB4O1xufVxuLmZpbHRlcnMgLmZvcm1fX3JvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMzBweDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmZpbHRlcnMgLmZvcm1fX3JvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxufVxuLmZpbHRlcnMgLmlucHV0X19wbGFjZWhvbGRlciB7XG4gIHotaW5kZXg6IC0xO1xufVxuLmNhcHRjaGEge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMjRweDtcbn1cbiIsImJhc2UtZm9udC1zaXplID89IDE2cHhcbnJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzID89IGZhbHNlXG5cbnJ1cHR1cmUgPSB7XG4gIHJhc3RlcmlzZS1tZWRpYS1xdWVyaWVzOiByYXN0ZXJpc2UtbWVkaWEtcXVlcmllc1xuICBtb2JpbGUtY3V0b2ZmOiA0MDBweFxuICBkZXNrdG9wLWN1dG9mZjogMTA1MHB4XG4gIGhkLWN1dG9mZjogMTgwMHB4XG4gIGVuYWJsZS1lbS1icmVha3BvaW50czogZmFsc2VcbiAgYmFzZS1mb250LXNpemU6IGJhc2UtZm9udC1zaXplXG4gIGFudGktb3ZlcmxhcDogZmFsc2VcbiAgZGVuc2l0eS1xdWVyaWVzOiAnZHBweCcgJ3dlYmtpdCcgJ21veicgJ2RwaSdcbiAgcmV0aW5hLWRlbnNpdHk6IDEuNVxuICB1c2UtZGV2aWNlLXdpZHRoOiBmYWxzZVxufVxucnVwdHVyZS5zY2FsZSA9IDAgKHJ1cHR1cmUubW9iaWxlLWN1dG9mZikgNjAwcHggODAwcHggKHJ1cHR1cmUuZGVza3RvcC1jdXRvZmYpIChydXB0dXJlLmhkLWN1dG9mZilcbnJ1cHR1cmUuc2NhbGUtbmFtZXMgPSAneHMnICdzJyAnbScgJ2wnICd4bCcgJ2hkJ1xuXG4taXMtc3RyaW5nKHZhbClcbiAgaWYgdHlwZW9mKHZhbCkgaXMgbm90ICd1bml0J1xuICAgIGlmIHZhbCBpcyBhICdzdHJpbmcnIG9yIHZhbCBpcyBhICdpZGVudCdcbiAgICAgIHRydWVcbiAgICBlbHNlXG4gICAgICBmYWxzZVxuICBlbHNlXG4gICAgZmFsc2VcblxuLWdldC1zY2FsZS1udW1iZXIoc2NhbGUtbmFtZSlcbiAgZm9yIGxpc3QtaXRlbSwgaSBpbiBydXB0dXJlLnNjYWxlLW5hbWVzXG4gICAgaWYgbGlzdC1pdGVtIGlzIHNjYWxlLW5hbWVcbiAgICAgIHJldHVybiBpICsgMVxuICByZXR1cm4gZmFsc2VcblxuLWNvbnZlcnQtdG8odG8tdW5pdCwgdmFsdWUsIGNvbnRleHQgPSBydXB0dXJlLmJhc2UtZm9udC1zaXplKVxuICBmcm9tLXVuaXQgPSB1bml0KHZhbHVlKVxuICByZXR1cm4gdmFsdWUgaWYgdG8tdW5pdCBpcyBmcm9tLXVuaXRcbiAgaWYgdG8tdW5pdCBpbiAoJ2VtJyAncmVtJylcbiAgICByZXR1cm4gdmFsdWUgaWYgZnJvbS11bml0IGluICgnZW0nICdyZW0nKVxuICAgIHJldHVybiB1bml0KCh2YWx1ZSAvIGNvbnRleHQpLCB0by11bml0KVxuICBpZiB0by11bml0IGlzICdweCdcbiAgICByZXR1cm4gdW5pdCgodmFsdWUgKiBjb250ZXh0KSwgJ3B4JylcblxuLW9uLXNjYWxlKG4pXG4gIHJldHVybiB1bml0KG4pIGlzICcnXG5cbi1sYXJnZXItdGhhbi1zY2FsZShuKVxuICByZXR1cm4gKG4gPiAobGVuZ3RoKHJ1cHR1cmUuc2NhbGUpIC0gMSkpIGFuZCAtb24tc2NhbGUobilcblxuLWlzLXplcm8obilcbiAgcmV0dXJuIG4gaXMgMFxuXG4tb3ZlcmxhcC1zaGlmdChhbnRpLW92ZXJsYXAsIG4pXG4gIHNoaWZ0LXVuaXQgPSB1bml0KG4pXG4gIGFudGktb3ZlcmxhcCA9IDBweCB1bmxlc3MgYW50aS1vdmVybGFwXG4gIGFudGktb3ZlcmxhcCA9IDFweCBpZiBhbnRpLW92ZXJsYXAgaXMgdHJ1ZVxuICBpZiBsZW5ndGgoYW50aS1vdmVybGFwKSBpcyAxXG4gICAgcmV0dXJuIC1jb252ZXJ0LXRvKHNoaWZ0LXVuaXQsIGFudGktb3ZlcmxhcClcbiAgZm9yIHZhbCBpbiBhbnRpLW92ZXJsYXBcbiAgICByZXR1cm4gdmFsIGlmIHVuaXQodmFsKSBpcyBzaGlmdC11bml0XG5cbi1hZGp1c3Qtb3ZlcmxhcChhbnRpLW92ZXJsYXAsIG4sIHNpZGUgPSAnbWluJylcbiAgLXNoaWZ0ID0gLW92ZXJsYXAtc2hpZnQoYW50aS1vdmVybGFwLCBuKVxuICBpZiAoc2lkZSBpcyAnbWluJyBhbmQgLXNoaWZ0ID4gMCkgb3IgKHNpZGUgaXMgJ21heCcgYW5kIC1zaGlmdCA8IDApXG4gICAgbiA9IG4gKyAtc2hpZnRcbiAgcmV0dXJuIG5cblxuLWlzLXBvc2l0aXZlKG4pXG4gIHJldHVybiBuID49IDBcblxuLWRlbnNpdHktcXVlcmllcyhkZW5zaXR5KVxuICBpZiB0eXBlb2YoZGVuc2l0eSkgaXMgbm90ICd1bml0J1xuICAgIGlmIG5vdCAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgICBkZW5zaXR5ID0gJyVzJyAlIGRlbnNpdHlcbiAgZGVuc2l0eSA9IHJ1cHR1cmUucmV0aW5hLWRlbnNpdHkgaWYgZGVuc2l0eSBpcyAncmV0aW5hJ1xuICBxdWVyaWVzID0gKClcbiAgZm9yIHF1ZXJ5IGluIHJ1cHR1cmUuZGVuc2l0eS1xdWVyaWVzXG4gICAgaWYgcXVlcnkgaXMgJ3dlYmtpdCdcbiAgICAgIHB1c2gocXVlcmllcywgJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICVzKScgJSAoZGVuc2l0eSkpXG4gICAgZWxzZSBpZiBxdWVyeSBpcyAnbW96J1xuICAgICAgcHVzaChxdWVyaWVzLCAnKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogJXMpJyAlIChkZW5zaXR5KSlcbiAgICBlbHNlIGlmIHF1ZXJ5IGlzICdvJ1xuICAgICAgcHVzaChxdWVyaWVzLCAnKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICVzLzEpJyAlIChkZW5zaXR5KSlcbiAgICBlbHNlIGlmIHF1ZXJ5IGlzICdyYXRpbydcbiAgICAgIHB1c2gocXVlcmllcywgJyhtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAlcyknICUgKGRlbnNpdHkpKVxuICAgIGVsc2UgaWYgcXVlcnkgaXMgJ2RwaSdcbiAgICAgIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICAgICAgZGVuc2l0eT1jb252ZXJ0KGRlbnNpdHkpXG4gICAgICBwdXNoKHF1ZXJpZXMsICcobWluLXJlc29sdXRpb246ICVzZHBpKScgJSAocm91bmQoZGVuc2l0eSAqIDk2LCAxKSkpXG4gICAgZWxzZSBpZiBxdWVyeSBpcyAnZHBweCdcbiAgICAgIHB1c2gocXVlcmllcywgJyhtaW4tcmVzb2x1dGlvbjogJXNkcHB4KScgJSAoZGVuc2l0eSkpXG4gIHJldHVybiBxdWVyaWVzXG5cbmNyZWF0ZS1mYWxsYmFjay1jbGFzcyhzZWxlY3RlZCwgY2xhc3MpXG4gIC97JycgKyBjbGFzcyArICcgJyArIHNlbGVjdGVkfVxuICAgIHtibG9ja31cblxuLy8gK2JldHdlZW4obWluLCBtYXgpXG4vLyB1c2FnZSAoc2NhbGUgY2FuIGJlIG1peGVkIHdpdGggY3VzdG9tIHZhbHVlcyk6XG4vLyAgIC0gK2JldHdlZW4oMSwgMykgc2NhbGU6c2NhbGVcbi8vICAgLSArYmV0d2VlbigwLCAzKSAwIHdpZHRoOnNjYWxlXG4vLyAgIC0gK2JldHdlZW4oMjAwcHgsIDUwMHB4KSBjdXN0b206Y3VzdG9tXG4vLyAgIC0gK2JldHdlZW4oMCwgMzAwcHgpIDAgd2lkdGg6Y3VzdG9tXG4vLyAgIC0gK2JldHdlZW4oMSwgMzAwcHgpIHNjYWxlOmN1c3RvbVxuLy8gICAtICtiZXR3ZWVuKDIwMHB4LCA0KSBjdXN0b206c2NhbGVcblxuYmV0d2VlbihtaW4sIG1heCwgYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgc2VsZWN0ZWQgPSBzZWxlY3RvcigpXG5cbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICBpZiAtaXMtc3RyaW5nKG1pbilcbiAgICBtaW4gPSAtZ2V0LXNjYWxlLW51bWJlcihtaW4pXG4gIGlmIC1pcy1zdHJpbmcobWF4KVxuICAgIG1heCA9IC1nZXQtc2NhbGUtbnVtYmVyKG1heClcblxuICAtbWluID0gcnVwdHVyZS5zY2FsZVttaW4gLSAxXSB1bmxlc3MgLWlzLXplcm8obWluKSBvciAobm90IC1vbi1zY2FsZShtaW4pKVxuICAtbWF4ID0gcnVwdHVyZS5zY2FsZVttYXhdIHVubGVzcyBub3QgLW9uLXNjYWxlKG1heClcbiAgLW1pbiA/PSBtaW5cbiAgLW1heCA/PSBtYXhcblxuICBpZiAocnVwdHVyZS5yYXN0ZXJpc2UtbWVkaWEtcXVlcmllcylcbiAgICBpZiBub3QgKGRlbnNpdHkgb3IgLW1heCBvciBvcmllbnRhdGlvbilcbiAgICAgIHtibG9ja31cbiAgZWxzZVxuICAgIGNvbmRpdGlvbiA9ICdvbmx5IHNjcmVlbidcbiAgICB1c2UtZGV2aWNlLXdpZHRoID0gdXNlLWRldmljZS13aWR0aCA/ICdkZXZpY2UtJyA6ICcnXG4gICAgdW5sZXNzIC1taW4gaXMgMFxuICAgICAgLW1pbiA9IC1jb252ZXJ0LXRvKCdlbScsIC1taW4pIGlmIHJ1cHR1cmUuZW5hYmxlLWVtLWJyZWFrcG9pbnRzXG4gICAgICAtbWluID0gLWFkanVzdC1vdmVybGFwKGFudGktb3ZlcmxhcCwgLW1pbiwgc2lkZTogJ21pbicpXG4gICAgICBjb25kaXRpb24gPSBjb25kaXRpb24gKyAnIGFuZCAobWluLScgKyB1c2UtZGV2aWNlLXdpZHRoICsgJ3dpZHRoOiAlcyknICUgKC1taW4pXG4gICAgdW5sZXNzIC1sYXJnZXItdGhhbi1zY2FsZShtYXgpXG4gICAgICAtbWF4ID0gLWNvbnZlcnQtdG8oJ2VtJywgLW1heCkgaWYgcnVwdHVyZS5lbmFibGUtZW0tYnJlYWtwb2ludHNcbiAgICAgIC1tYXggPSAtYWRqdXN0LW92ZXJsYXAoYW50aS1vdmVybGFwLCAtbWF4LCBzaWRlOiAnbWF4JylcbiAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbiArICcgYW5kIChtYXgtJyArIHVzZS1kZXZpY2Utd2lkdGggKyAnd2lkdGg6ICVzKScgJSAoLW1heClcbiAgICBpZiBvcmllbnRhdGlvblxuICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uICsgJyBhbmQgKG9yaWVudGF0aW9uOiAlcyknICUgKG9yaWVudGF0aW9uKVxuICAgIGlmIGRlbnNpdHlcbiAgICAgIGNvbmRpdGlvbnMgPSAoKVxuICAgICAgZm9yIHF1ZXJ5IGluIC1kZW5zaXR5LXF1ZXJpZXMoZGVuc2l0eSlcbiAgICAgICAgcHVzaChjb25kaXRpb25zLCBjb25kaXRpb24gKyAnIGFuZCAlcycgJSAocXVlcnkpKVxuICAgICAgY29uZGl0aW9uID0gam9pbignLCAnLCBjb25kaXRpb25zKVxuICAgIEBtZWRpYSBjb25kaXRpb25cbiAgICAgIHtibG9ja31cbiAgaWYgZmFsbGJhY2stY2xhc3NcbiAgICArY3JlYXRlLWZhbGxiYWNrLWNsYXNzKHNlbGVjdGVkLCBmYWxsYmFjay1jbGFzcylcbiAgICAgIHtibG9ja31cblxuYXQoc2NhbGUtcG9pbnQsIGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgK2JldHdlZW4oc2NhbGUtcG9pbnQsIHNjYWxlLXBvaW50LCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbmZyb20td2lkdGgoc2NhbGUtcG9pbnQsIGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgK2JldHdlZW4oc2NhbGUtcG9pbnQsIGxlbmd0aChydXB0dXJlLnNjYWxlKSwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5hYm92ZSA9IGZyb20td2lkdGhcblxudG8td2lkdGgoc2NhbGUtcG9pbnQsIGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgK2JldHdlZW4oMSwgc2NhbGUtcG9pbnQsIGFudGktb3ZlcmxhcCwgZGVuc2l0eSwgb3JpZW50YXRpb24sIHVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxuYmVsb3cgPSB0by13aWR0aFxuXG5tb2JpbGUoYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYmVsb3cocnVwdHVyZS5tb2JpbGUtY3V0b2ZmLCBhbnRpLW92ZXJsYXAsIGRlbnNpdHksIG9yaWVudGF0aW9uLCB1c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcylcbiAgICB7YmxvY2t9XG5cbnRhYmxldChhbnRpLW92ZXJsYXAgPSBydXB0dXJlLmFudGktb3ZlcmxhcCwgZGVuc2l0eSA9IG51bGwsIG9yaWVudGF0aW9uID0gbnVsbCwgdXNlLWRldmljZS13aWR0aCA9IHJ1cHR1cmUudXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICBpZiAtaXMtc3RyaW5nKG9yaWVudGF0aW9uKVxuICAgIG9yaWVudGF0aW9uID0gY29udmVydChvcmllbnRhdGlvbilcbiAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgIGRlbnNpdHkgPSBjb252ZXJ0KGRlbnNpdHkpXG4gICtiZXR3ZWVuKHJ1cHR1cmUubW9iaWxlLWN1dG9mZiwgcnVwdHVyZS5kZXNrdG9wLWN1dG9mZiwgYW50aS1vdmVybGFwLCBkZW5zaXR5LCBvcmllbnRhdGlvbiwgdXNlLWRldmljZS13aWR0aCwgZmFsbGJhY2stY2xhc3MpXG4gICAge2Jsb2NrfVxuXG5kZXNrdG9wKGFudGktb3ZlcmxhcCA9IHJ1cHR1cmUuYW50aS1vdmVybGFwLCBkZW5zaXR5ID0gbnVsbCwgb3JpZW50YXRpb24gPSBudWxsLCB1c2UtZGV2aWNlLXdpZHRoID0gcnVwdHVyZS51c2UtZGV2aWNlLXdpZHRoLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIGlmIC1pcy1zdHJpbmcob3JpZW50YXRpb24pXG4gICAgb3JpZW50YXRpb24gPSBjb252ZXJ0KG9yaWVudGF0aW9uKVxuICBpZiAtaXMtc3RyaW5nKGRlbnNpdHkpXG4gICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgK2Fib3ZlKHJ1cHR1cmUuZGVza3RvcC1jdXRvZmYsIGFudGktb3ZlcmxhcCwgZGVuc2l0eSwgb3JpZW50YXRpb24sIHVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxuaGQoYW50aS1vdmVybGFwID0gcnVwdHVyZS5hbnRpLW92ZXJsYXAsIGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIHVzZS1kZXZpY2Utd2lkdGggPSBydXB0dXJlLnVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgaWYgLWlzLXN0cmluZyhvcmllbnRhdGlvbilcbiAgICBvcmllbnRhdGlvbiA9IGNvbnZlcnQob3JpZW50YXRpb24pXG4gIGlmIC1pcy1zdHJpbmcoZGVuc2l0eSlcbiAgICBkZW5zaXR5ID0gY29udmVydChkZW5zaXR5KVxuICArYWJvdmUocnVwdHVyZS5oZC1jdXRvZmYsIGFudGktb3ZlcmxhcCwgZGVuc2l0eSwgb3JpZW50YXRpb24sIHVzZS1kZXZpY2Utd2lkdGgsIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxuZGVuc2l0eShkZW5zaXR5LCBvcmllbnRhdGlvbiA9IG51bGwsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgc2VsZWN0ZWQgPSBzZWxlY3RvcigpXG4gIGlmIG5vdCAocnVwdHVyZS5yYXN0ZXJpc2UtbWVkaWEtcXVlcmllcylcbiAgICBjb25kaXRpb25zID0gKClcbiAgICBmb3IgcXVlcnkgaW4gLWRlbnNpdHktcXVlcmllcyhkZW5zaXR5KVxuICAgICAgY29uZGl0aW9uID0gJ29ubHkgc2NyZWVuIGFuZCAlcycgJSAocXVlcnkpXG4gICAgICBpZiBvcmllbnRhdGlvblxuICAgICAgICBjb25kaXRpb24gPSBjb25kaXRpb24gKyAnIGFuZCAob3JpZW50YXRpb246ICVzKScgJSAob3JpZW50YXRpb24pXG4gICAgICBwdXNoKGNvbmRpdGlvbnMsIGNvbmRpdGlvbilcbiAgICBjb25kaXRpb24gPSBqb2luKCcsICcsIGNvbmRpdGlvbnMpXG4gICAgQG1lZGlhIGNvbmRpdGlvblxuICAgICAge2Jsb2NrfVxuICAgIGlmIGZhbGxiYWNrLWNsYXNzXG4gICAgICArY3JlYXRlLWZhbGxiYWNrLWNsYXNzKHNlbGVjdGVkLCBmYWxsYmFjay1jbGFzcylcbiAgICAgICAge2Jsb2NrfVxuXG5waXhlbC1yYXRpbyA9IGRlbnNpdHlcblxucmV0aW5hKG9yaWVudGF0aW9uID0gbnVsbCwgZmFsbGJhY2stY2xhc3MgPSBudWxsKVxuICArZGVuc2l0eSgncmV0aW5hJywgb3JpZW50YXRpb24sIGZhbGxiYWNrLWNsYXNzKVxuICAgIHtibG9ja31cblxubGFuZHNjYXBlKGRlbnNpdHkgPSBudWxsLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIHNlbGVjdGVkID0gc2VsZWN0b3IoKVxuICBpZiBub3QgKHJ1cHR1cmUucmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXMpXG4gICAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgICBpZiBkZW5zaXR5XG4gICAgICArcGl4ZWwtcmF0aW8oZGVuc2l0eSwgb3JpZW50YXRpb246IGxhbmRzY2FwZSwgZmFsbGJhY2stY2xhc3MpXG4gICAgICAgIHtibG9ja31cbiAgICBlbHNlXG4gICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKVxuICAgICAgICB7YmxvY2t9XG4gICAgICBpZiBmYWxsYmFjay1jbGFzc1xuICAgICAgICArY3JlYXRlLWZhbGxiYWNrLWNsYXNzKHNlbGVjdGVkLCBmYWxsYmFjay1jbGFzcylcbiAgICAgICAgICB7YmxvY2t9XG5cbnBvcnRyYWl0KGRlbnNpdHkgPSBudWxsLCBmYWxsYmFjay1jbGFzcyA9IG51bGwpXG4gIHNlbGVjdGVkID0gc2VsZWN0b3IoKVxuICBpZiBub3QgKHJ1cHR1cmUucmFzdGVyaXNlLW1lZGlhLXF1ZXJpZXMpXG4gICAgaWYgLWlzLXN0cmluZyhkZW5zaXR5KVxuICAgICAgZGVuc2l0eSA9IGNvbnZlcnQoZGVuc2l0eSlcbiAgICBpZiBkZW5zaXR5XG4gICAgICArcGl4ZWwtcmF0aW8oZGVuc2l0eSwgb3JpZW50YXRpb246IHBvcnRyYWl0LCBmYWxsYmFjay1jbGFzcylcbiAgICAgICAge2Jsb2NrfVxuICAgIGVsc2VcbiAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdClcbiAgICAgICAge2Jsb2NrfVxuICAgICAgaWYgZmFsbGJhY2stY2xhc3NcbiAgICAgICAgK2NyZWF0ZS1mYWxsYmFjay1jbGFzcyhzZWxlY3RlZCwgZmFsbGJhY2stY2xhc3MpXG4gICAgICAgICAge2Jsb2NrfVxuXG5ydXB0dXJlLWhvdmVyKGRlbnNpdHkgPSBudWxsLCBvcmllbnRhdGlvbiA9IG51bGwsIGZhbGxiYWNrLWNsYXNzID0gbnVsbClcbiAgY29uZGl0aW9uID0gXCJvbmx5IHNjcmVlbiBhbmQgKGhvdmVyOiBob3ZlcilcIjtcbiAgQG1lZGlhICh7Y29uZGl0aW9ufSlcbiAgICB7YmxvY2t9XG5cbmhvdmVyID0gcnVwdHVyZS1ob3ZlclxuIl19 */
