/*!**********************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./assets/sass/pages/contact.scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************/

.breadcrumb-item + .breadcrumb-item:before {
  display: inline-block;
  font-style: normal;
  font-weight: 400;
  font-variant: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }


.breadcrumb-item + .breadcrumb-item:before {
  font-family: "Font Awesome 6 Pro";
  font-weight: 300; }


.breadcrumb-item + .breadcrumb-item:before {
  display: inline-block;
  font-style: normal;
  font-weight: 400;
  font-variant: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }


.breadcrumb-item + .breadcrumb-item:before {
  font-family: "Font Awesome 6 Pro";
  font-weight: 300; }


.breadcrumb-item + .breadcrumb-item:before {
  display: inline-block;
  font-style: normal;
  font-weight: 400;
  font-variant: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }


.breadcrumb-item + .breadcrumb-item:before {
  font-family: "Font Awesome 6 Pro";
  font-weight: 300; }

.breadcrumb {
  --bs-breadcrumb-padding-x: 0;
  --bs-breadcrumb-padding-y: 0;
  --bs-breadcrumb-margin-bottom: 16px;
  --bs-breadcrumb-margin-bottom: 1rem;
  --bs-breadcrumb-font-size: 12px;
  --bs-breadcrumb-font-size: 0.75rem;
  --bs-breadcrumb-bg: ;
  --bs-breadcrumb-border-radius: ;
  --bs-breadcrumb-divider-color: var(--bs-secondary-color);
  --bs-breadcrumb-item-padding-x: 8px;
  --bs-breadcrumb-item-padding-x: 0.5rem;
  --bs-breadcrumb-item-active-color: var(--bs-body-color);
  display: flex;
  flex-wrap: wrap;
  padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);
  margin-bottom: var(--bs-breadcrumb-margin-bottom);
  font-size: var(--bs-breadcrumb-font-size);
  list-style: none;
  background-color: var(--bs-breadcrumb-bg);
  border-radius: var(--bs-breadcrumb-border-radius); }

.breadcrumb-item + .breadcrumb-item {
  padding-left: var(--bs-breadcrumb-item-padding-x); }
  .breadcrumb-item + .breadcrumb-item:before {
    float: left;
    padding-right: var(--bs-breadcrumb-item-padding-x);
    color: var(--bs-breadcrumb-divider-color);
    content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */; }

.breadcrumb-item.active {
  color: var(--bs-breadcrumb-item-active-color); }

.breadcrumbs {
  position: relative;
  max-width: 100vw;
  margin-right: -12px;
  margin-right: -0.75rem;
  margin-left: -12px;
  margin-left: -0.75rem; }
  .breadcrumbs .breadcrumb {
    flex-wrap: nowrap;
    padding: 12px;
    padding: 0.75rem;
    margin: unset;
    overflow-x: auto; }
    .breadcrumbs .breadcrumb:before, .breadcrumbs .breadcrumb:after {
      position: absolute;
      top: 0;
      display: block;
      height: 100%;
      pointer-events: none;
      content: ""; }
    .breadcrumbs .breadcrumb:before {
      left: 0;
      width: 16px;
      width: 1rem;
      background-image: linear-gradient(90deg, var(--alpha-breadcrumbs-mobile-shadow-color) 0, var(--alpha-breadcrumbs-mobile-shadow-color-end)); }
    .breadcrumbs .breadcrumb:after {
      right: 0;
      width: 32px;
      width: 2rem;
      background-image: linear-gradient(90deg, var(--alpha-breadcrumbs-mobile-shadow-color-end) 0, var(--alpha-breadcrumbs-mobile-shadow-color)); }
  .breadcrumbs.on-featured {
    --alpha-breadcrumbs-mobile-shadow-color: #000;
    --alpha-breadcrumbs-mobile-shadow-color-end: rgba(0, 0, 0, 0);
    top: var(--featured-image-height);
    z-index: 10;
    transform: translateY(-100%); }
    .breadcrumbs.on-featured .breadcrumb {
      --bs-breadcrumb-divider-color: currentcolor;
      --bs-breadcrumb-item-active-color: currentcolor; }
      .breadcrumbs.on-featured .breadcrumb:before, .breadcrumbs.on-featured .breadcrumb:after {
        -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";
        opacity: .75; }
  .breadcrumbs.dark {
    --bs-link-color-rgb: 255, 255, 255; }
    .breadcrumbs.dark a:hover {
      --bs-link-color-rgb: 247, 247, 247; }

.breadcrumbs-on-featured:not(.has-transparent-header) .breadcrumbs {
  top: calc(var(--header-height) + var(--featured-image-height));
  transition: top .3s ease; }

.breadcrumbs-on-featured.search .content-wrapper {
  padding-top: 32px;
  padding-top: 2rem; }

.breadcrumb-item {
  white-space: nowrap; }
  .breadcrumb-item + .breadcrumb-item:before {
    content: "\f105";
    margin-right: 0;
    line-height: var(--bs-body-line-height); }
  .breadcrumb-item + .breadcrumb-item:before {
    float: unset;
    padding-right: 4px;
    padding-right: .25rem; }
  .breadcrumb-item.active span {
    font-weight: 700; }

@keyframes form-label-filled {
  0% {
    left: 1.5rem;
    font-size: 1rem;
    background: transparent;
    transform: none; }
  25% {
    left: 1.5rem;
    font-size: 1rem;
    background: transparent;
    transform: rotateY(90deg) translateY(0); }
  75% {
    left: 1.5rem;
    font-size: 0.7rem;
    background: #fff;
    transform: rotateY(90deg) translateY(-1.2rem); }
  100% {
    left: 1.5rem;
    font-size: 0.7rem;
    background: #fff;
    transform: rotateY(0) translateY(-1.2rem); } }

@keyframes form-label {
  0% {
    left: 1.5rem;
    font-size: 0.7rem;
    background: #fff;
    transform: rotateY(0) translateY(-1.2rem); }
  25% {
    left: 1.5rem;
    font-size: 0.7rem;
    background: #fff;
    transform: rotateY(90deg) translateY(-1.2rem); }
  75% {
    left: 1.5rem;
    font-size: 1rem;
    background: transparent;
    transform: rotateY(90deg) translateY(0); }
  100% {
    left: 1.5rem;
    font-size: 1rem;
    background: transparent;
    transform: none; } }

input:-webkit-autofill,
select:-webkit-autofill,
textarea:-webkit-autofill {
  box-shadow: 0 0 0 100px #fff inset;
  -webkit-text-fill-color: var(--bs-body-color); }
  input:-webkit-autofill:hover, input:-webkit-autofill:focus,
  select:-webkit-autofill:hover,
  select:-webkit-autofill:focus,
  textarea:-webkit-autofill:hover,
  textarea:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--bs-body-color);
    background: none !important; }

.grecaptcha-badge {
  visibility: collapse; }

.wpcf7 {
  font-size: 16px; }
  .wpcf7 .wpcf7-form {
    color: var(--bs-body-color);
    margin-top: 16px;
    margin-top: 1rem;
    display: flex;
    flex-direction: column; }
    .wpcf7 .wpcf7-form .form-field {
      position: relative;
      margin-bottom: 32px;
      margin-bottom: 2rem;
      transition: all ease .5s; }
      .wpcf7 .wpcf7-form .form-field p:not([class]) {
        display: contents; }
      .wpcf7 .wpcf7-form .form-field input:not([type="submit"]):not([type="file"]):not([type="checkbox"]) {
        float: none;
        width: 100%;
        padding-left: 12px;
        padding-left: 0.75rem;
        margin: 0;
        border: 1px solid var(--bs-border-color);
        border-radius: var(--bs-border-radius);
        transition: border-color ease .4s;
        background: #fff; }
        .wpcf7 .wpcf7-form .form-field input:not([type="submit"]):not([type="file"]):not([type="checkbox"]).wpcf7-text, .wpcf7 .wpcf7-form .form-field input:not([type="submit"]):not([type="file"]):not([type="checkbox"]).wpcf7-number {
          height: 40px;
          height: 2.5rem;
          color: var(--bs-body-color); }
        .wpcf7 .wpcf7-form .form-field input:not([type="submit"]):not([type="file"]):not([type="checkbox"]).wpcf7-not-valid {
          margin: 0;
          border-color: red; }
        .wpcf7 .wpcf7-form .form-field input:not([type="submit"]):not([type="file"]):not([type="checkbox"]):focus {
          outline: none; }
      .wpcf7 .wpcf7-form .form-field input[type="date"] {
        position: relative; }
        .wpcf7 .wpcf7-form .form-field input[type="date"]::-webkit-calendar-picker-indicator {
          position: absolute;
          padding-left: calc(100% - 2.5em); }
      .wpcf7 .wpcf7-form .form-field textarea {
        width: 100%;
        padding-left: 12px;
        padding-left: 0.75rem;
        padding-top: 12px;
        padding-top: 0.75rem;
        margin: 0;
        overflow: hidden;
        color: var(--bs-body-color);
        resize: none;
        border: 1px solid var(--bs-border-color);
        border-radius: var(--bs-border-radius);
        transition: border-color ease .4s;
        background: #fff;
        height: initial; }
        .wpcf7 .wpcf7-form .form-field textarea:focus {
          outline: none; }
        .wpcf7 .wpcf7-form .form-field textarea.wpcf7-not-valid {
          margin: 0;
          border-color: red; }
      .wpcf7 .wpcf7-form .form-field select.wpcf7-select,
      .wpcf7 .wpcf7-form .form-field select.wpcf7-form-control {
        padding-left: 12px;
        padding-left: 0.75rem;
        float: none;
        color: var(--bs-body-color);
        border: 1px solid var(--bs-border-color);
        border-radius: var(--bs-border-radius);
        width: 100%;
        height: 40px;
        height: 2.5rem;
        background: #fff; }
        .wpcf7 .wpcf7-form .form-field select.wpcf7-select.wpcf7-not-valid,
        .wpcf7 .wpcf7-form .form-field select.wpcf7-form-control.wpcf7-not-valid {
          border-color: red; }
      .wpcf7 .wpcf7-form .form-field > label {
        position: absolute;
        top: 12px;
        top: 0.75rem;
        left: 24px;
        left: 1.5rem;
        z-index: 1;
        padding: 0;
        margin: 0;
        color: var(--bs-body-color);
        pointer-events: none;
        cursor: text;
        background: transparent;
        transition: font-size ease .5s, transform ease-in-out .5s, background-color ease .5s, padding ease .5s;
        font-size: 16px;
        font-size: 1rem;
        line-height: 16px;
        line-height: 1rem; }
      .wpcf7 .wpcf7-form .form-field.style-dark label {
        color: #fff; }
      .wpcf7 .wpcf7-form .form-field.empty label {
        animation: .5s ease-in 0s 1 form-label;
        animation-fill-mode: forwards; }
      .wpcf7 .wpcf7-form .form-field.filled label, .wpcf7 .wpcf7-form .form-field.active label {
        padding: 0 12px;
        padding: 0 0.75rem; }
      .wpcf7 .wpcf7-form .form-field.filled label {
        animation: .5s ease-in 0s 1 form-label-filled;
        animation-direction: normal;
        animation-fill-mode: forwards; }
      .wpcf7 .wpcf7-form .form-field.active label {
        color: var(--bs-primary) !important; }
      .wpcf7 .wpcf7-form .form-field.active input,
      .wpcf7 .wpcf7-form .form-field.active textarea {
        border-color: var(--bs-primary) !important; }
      .wpcf7 .wpcf7-form .form-field.no-anim label, .wpcf7 .wpcf7-form .form-field.form-field-noanim label {
        animation: none !important;
        position: relative !important;
        top: 0 !important;
        left: 0 !important;
        padding: 0;
        margin-top: 8px;
        margin-top: 0.5rem;
        transform: translateY(-0.25rem); }
      .wpcf7 .wpcf7-form .form-field.form-field-select label {
        position: relative; }
      .wpcf7 .wpcf7-form .form-field.form-field-acceptance input {
        width: auto; }
      .wpcf7 .wpcf7-form .form-field.form-field-rgpd, .wpcf7 .wpcf7-form .form-field.form-legal-notice {
        margin: 16px auto;
        margin: 1rem auto;
        font-size: 11.2px;
        font-size: .7rem;
        text-align: center;
        padding: 0; }
      .wpcf7 .wpcf7-form .form-field.form-field-double {
        display: flex; }
        .wpcf7 .wpcf7-form .form-field.form-field-double span:first-child {
          flex: 2 1; }
          .wpcf7 .wpcf7-form .form-field.form-field-double span:first-child input.wpcf7-text {
            border-right-width: 1px;
            border-radius: 10px 0 0 10px; }
        .wpcf7 .wpcf7-form .form-field.form-field-double span:last-child {
          flex: 1 1; }
          .wpcf7 .wpcf7-form .form-field.form-field-double span:last-child input.wpcf7-text {
            border-left-width: 1px;
            border-radius: 0 10px 10px 0; }
      .wpcf7 .wpcf7-form .form-field.form-field-checkbox .wpcf7-checkbox {
        display: flex;
        flex-direction: column;
        margin-right: -.25em;
        margin-left: -.25em; }
        .wpcf7 .wpcf7-form .form-field.form-field-checkbox .wpcf7-checkbox .wpcf7-list-item {
          display: flex;
          align-items: center;
          padding: 0 .25em; }
          .wpcf7 .wpcf7-form .form-field.form-field-checkbox .wpcf7-checkbox .wpcf7-list-item label {
            cursor: pointer;
            display: flex;
            align-items: center; }
            .wpcf7 .wpcf7-form .form-field.form-field-checkbox .wpcf7-checkbox .wpcf7-list-item label .wpcf7-list-item-label {
              padding-left: 8px;
              padding-left: .5rem; }
      .wpcf7 .wpcf7-form .form-field.form-field-checkbox.checkbox-inline label {
        margin-bottom: .25em; }
      .wpcf7 .wpcf7-form .form-field.form-field-checkbox.checkbox-inline .wpcf7-checkbox {
        flex-direction: row;
        flex-wrap: wrap; }
        .wpcf7 .wpcf7-form .form-field.form-field-checkbox.checkbox-inline .wpcf7-checkbox .wpcf7-list-item {
          flex: 0 0 200px; }
      .wpcf7 .wpcf7-form .form-field.form-field-date input {
        height: 40px;
        height: 2.5rem; }
      .wpcf7 .wpcf7-form .form-field.inline {
        display: flex;
        flex-direction: column; }
        .wpcf7 .wpcf7-form .form-field.inline label {
          position: static;
          line-height: 25px; }
        .wpcf7 .wpcf7-form .form-field.inline .wpcf7-radio {
          display: flex; }
          .wpcf7 .wpcf7-form .form-field.inline .wpcf7-radio .wpcf7-list-item {
            display: flex;
            align-items: center; }
            .wpcf7 .wpcf7-form .form-field.inline .wpcf7-radio .wpcf7-list-item input {
              width: auto;
              margin-right: .25em;
              margin-left: .25em; }
        .wpcf7 .wpcf7-form .form-field.inline .wpcf7-checkbox {
          flex-direction: row; }
    .wpcf7 .wpcf7-form .form-field-submit {
      text-align: center;
      display: flex;
      align-items: center; }
      .wpcf7 .wpcf7-form .form-field-submit .ajax-loader, .wpcf7 .wpcf7-form .form-field-submit .wpcf7-spinner {
        background-repeat: no-repeat;
        background-position: center;
        min-height: unset;
        position: absolute; }
    .wpcf7 .wpcf7-form span.wpcf7-list-item {
      margin: 0; }
    .wpcf7 .wpcf7-form .form-field-required {
      color: red; }
    .wpcf7 .wpcf7-form .form-field-wrap {
      display: flex;
      align-items: flex-end;
      margin-right: -15px;
      margin-left: -15px; }
      .wpcf7 .wpcf7-form .form-field-wrap .form-field-date {
        flex: 1 1;
        margin-right: 15px;
        margin-left: 15px; }
        .wpcf7 .wpcf7-form .form-field-wrap .form-field-date input {
          margin-top: 0; }
    .wpcf7 .wpcf7-form .wpcf7-form-control-wrap {
      display: block; }
      .wpcf7 .wpcf7-form .wpcf7-form-control-wrap .wpcf7-not-valid-tip {
        color: red !important;
        font-size: 14.4px;
        font-size: 0.9rem;
        font-weight: normal;
        position: absolute;
        bottom: -32px;
        bottom: -2rem;
        left: 12px;
        left: 0.75rem;
        right: 0;
        height: 30px;
        z-index: 2; }
    .wpcf7 .wpcf7-form .form-field-desc {
      font-size: 12.8px;
      font-size: 0.8rem;
      font-style: italic;
      color: #696969; }
    .wpcf7 .wpcf7-form .wpcf7-response-output {
      text-align: center;
      border: none !important;
      font-size: 14.4px;
      font-size: .9rem;
      margin-top: 16px;
      margin-top: 1rem; }
    .wpcf7 .wpcf7-form:not(.submitting) .ajax-loader, .wpcf7 .wpcf7-form:not(.submitting) .wpcf7-spinner {
      display: none !important; }
    .wpcf7 .wpcf7-form.sent .wpcf7-response-output {
      color: #87d37c !important; }
    .wpcf7 .wpcf7-form.invalid .wpcf7-response-output {
      color: red !important; }
  .wpcf7 .form-row {
    display: flex;
    flex-direction: column;
    margin-right: -12px;
    margin-right: -0.75rem;
    margin-left: -12px;
    margin-left: -0.75rem; }
    .wpcf7 .form-row:before, .wpcf7 .form-row:after {
      display: none !important; }
    .wpcf7 .form-row > .form-col, .wpcf7 .form-row > .form-col-6, .wpcf7 .form-row > .form-col-4, .wpcf7 .form-row > .form-col-3 {
      position: relative;
      width: 100%;
      padding-right: 12px !important;
      padding-right: 0.75rem !important;
      padding-left: 12px !important;
      padding-left: 0.75rem !important; }
    @media (min-width: 480px) {
          .wpcf7 .wpcf7-form .form-field.inline {
            flex-direction: row; }
      .wpcf7 .form-row {
        flex-direction: row;
        flex-wrap: wrap; }
      .wpcf7 .form-row > .form-col-6 {
        flex: 0 0 50%;
        max-width: 50%; }
      .wpcf7 .form-row > .form-col-4 {
        flex: 0 0 33.33%;
        max-width: 33.33%; }
      .wpcf7 .form-row > .form-col-3 {
        flex: 0 0 25%;
        max-width: 25%; } }
    @media (min-width: 768px) {
    .breadcrumbs .breadcrumb:before, .breadcrumbs .breadcrumb:after {
      display: none; }
      .wpcf7 .wpcf7-form {
        margin-top: 2rem; } }
    @media (max-width: 959px) {
  .form-field-submit {
    order: 1; }
  .form-legal-notice,
  .form-field-rgpd {
    order: 2; }
        .wpcf7 .wpcf7-form .wpcf7-response-output {
          margin-top: 0;
          margin-bottom: 1rem; } }
    @media (max-width: 768px) {
          .wpcf7 .wpcf7-form .form-field select.wpcf7-select,
          .wpcf7 .wpcf7-form .form-field select.wpcf7-form-control {
            width: 100%; } }


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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QjtRS25acEIsbUJBQW1CO1FBQ25CLGtCQUFrQjtRQUNsQixhQUFhO1FBQWIsYUFBYTtRQUNiLFVMeVlZO1FLellaLGFMeVlZO1FLeFlaLFFBQVE7UUFDUixZQUFZO1FBQ1osVUFBVTtJQXZWbEI7TUE0Vk0saUJEOVZpQjtNQzhWakIsaUJEOVZpQjtNQytWakIsa0JEN1ZtQjtNQzhWbkIsY0QvVm9CO0lDQzFCO01Ba1dNLGtCQUFrQjtNQUNsQix1QkFBdUI7TUFDdkIsaUJBQWdCO01BQWhCLGdCQUFnQjtNQUNoQixnQkFBZ0I7TUFBaEIsZ0JBQWdCO0lBcld0QjtNQStXUSx3QkFBd0I7SUEvV2hDO01BcVhRLHlCQUF1QztJQXJYL0M7TUEyWFEscUJBQW9DO0VBM1g1QztJQWtZSSxhQUFhO0lBQ2Isc0JBQXNCO0lBQ3RCLG1CTHlWZ0I7SUt6VmhCLHNCTHlWZ0I7SUt4VmhCLGtCTHdWZ0I7SUt4VmhCLHFCTHdWZ0I7SUs3dEJwQjtNQXlZTSx3QkFBd0I7SUF6WTlCO01Ba1pNLGtCQUFrQjtNQUNsQixXQUFXO01BQ1gsOEJBQXNDO01BQXRDLGlDQUFzQztNQUN0Qyw2QkFBcUM7TUFBckMsZ0NBQXFDO0lBOUluQztVQXZRUjtZQXdRVSxtQkFBbUI7TUF4UTdCO1FBNllNLG1CQUFtQjtRQUNuQixlQUFlO01BOVlyQjtRQTRaUSxhQUFhO1FBQ2IsY0FBYztNQTdadEI7UUFxYVEsZ0JBQWdCO1FBQ2hCLGlCQUFpQjtNQXRhekI7UUE4YVEsYUFBYTtRQUNiLGNBQWMsSUE3SWY7SUNsUUg7SVA3REo7TUF1Q1EsYUFBYTtNTVZyQjtRQVVNLGdCRDFCbUQsSUwyQmxEO0lNdkJQO0VBRUU7SUFDRSxRQUFRO0VBR1Y7O0lBRUUsUUFBUTtRQUlaO1VBd1dRLGFBQWE7VUFDYixtQkFBbUIsSUE1V3hCO0lBb0dLO1VBakdSOztZQWtHVSxXQUFXLElBRWQiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9hcXVhdGVjaG5pcXVlLXRoZW1lLy4vbm9kZV9tb2R1bGVzL0BuZW1hdGlzL3dwLWFscGhhL2Fzc2V0cy9zYXNzL3ZlbmRvcnMvZm9udGF3ZXNvbWUvYWJzdHJhY3RzL19taXhpbnMuc2NzcyIsIndlYnBhY2s6Ly9hcXVhdGVjaG5pcXVlLXRoZW1lLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19icmVhZGNydW1iLnNjc3MiLCJ3ZWJwYWNrOi8vYXF1YXRlY2huaXF1ZS10aGVtZS8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy92ZW5kb3IvX3Jmcy5zY3NzIiwid2VicGFjazovL2FxdWF0ZWNobmlxdWUtdGhlbWUvLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19ib3JkZXItcmFkaXVzLnNjc3MiLCJ3ZWJwYWNrOi8vYXF1YXRlY2huaXF1ZS10aGVtZS8uL25vZGVfbW9kdWxlcy9AbmVtYXRpcy93cC1hbHBoYS9hc3NldHMvc2Fzcy9jb21wb25lbnRzL19icmVhZGNydW1iLnNjc3MiLCJ3ZWJwYWNrOi8vYXF1YXRlY2huaXF1ZS10aGVtZS8uL25vZGVfbW9kdWxlcy9AbmVtYXRpcy93cC1hbHBoYS9hc3NldHMvc2Fzcy9hYnN0cmFjdHMvX3ZhcmlhYmxlcy5zY3NzIiwid2VicGFjazovL2FxdWF0ZWNobmlxdWUtdGhlbWUvLi9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXByby9zY3NzL19mdW5jdGlvbnMuc2NzcyIsIndlYnBhY2s6Ly9hcXVhdGVjaG5pcXVlLXRoZW1lLy4vbm9kZV9tb2R1bGVzL0BuZW1hdGlzL2NmNy1lZmZlY3QvYXNzZXRzL3Nhc3MvY29yZS9fYW5pbWF0aW9ucy5zY3NzIiwid2VicGFjazovL2FxdWF0ZWNobmlxdWUtdGhlbWUvLi9ub2RlX21vZHVsZXMvQG5lbWF0aXMvd3AtYWxwaGEvYXNzZXRzL3Nhc3MvYWJzdHJhY3RzL19mdW5jdGlvbnMuc2NzcyIsIndlYnBhY2s6Ly9hcXVhdGVjaG5pcXVlLXRoZW1lLy4vbm9kZV9tb2R1bGVzL0BuZW1hdGlzL2NmNy1lZmZlY3QvYXNzZXRzL3Nhc3MvYWJzdHJhY3QvX3ZhcmlhYmxlcy5zY3NzIiwid2VicGFjazovL2FxdWF0ZWNobmlxdWUtdGhlbWUvLi9ub2RlX21vZHVsZXMvQG5lbWF0aXMvY2Y3LWVmZmVjdC9hc3NldHMvc2Fzcy9jb3JlL19mb3Jtcy5zY3NzIiwid2VicGFjazovL2FxdWF0ZWNobmlxdWUtdGhlbWUvLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19icmVha3BvaW50cy5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIiR1c2UtZmEtcHJvOiB0cnVlICFkZWZhdWx0O1xuXG5AbWl4aW4gZmEtaWNvbi1zdGFuZGFsb25lIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbiVmYSxcbiVmYXMsXG4lZmFyLFxuJWZhbCxcbiVmYWQsXG4lZmF0LFxuJWZhYiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4lZmEtaWNvbi1zdGFuZGFsb25lIHtcbiAgQGluY2x1ZGUgZmEtaWNvbi1zdGFuZGFsb25lICgpO1xufVxuXG4lZmEsXG4lZmFzIHtcbiAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDYgUHJvXCI7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG59XG5cbiVmYXIge1xuICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNiBQcm9cIjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuJWZhbCB7XG4gIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA2IFByb1wiO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuXG4lZmF0IHtcbiAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDYgUHJvXCI7XG4gIGZvbnQtd2VpZ2h0OiAxMDA7XG59XG5cbiVmYWIge1xuICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNiBCcmFuZHNcIjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuQG1peGluIGZvbnQtYXdlc29tZSgkY29kZSkge1xuICBAZXh0ZW5kICVmYS1pY29uLXN0YW5kYWxvbmU7XG5cbiAgQGlmICR1c2UtZmEtcHJvIHtcbiAgICBAaW5jbHVkZSBmb250LWF3ZXNvbWUtcHJvKCRjb2RlKTtcbiAgfSBAZWxzZSB7XG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGZvbnQtZmFtaWx5LW5vLW1pc3NpbmctZ2VuZXJpYy1mYW1pbHkta2V5d29yZFxuICAgIEBleHRlbmQgJWZhO1xuXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgIGNvbnRlbnQ6ICRjb2RlO1xuICB9XG5cbiAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBmb250LWF3ZXNvbWUtcHJvKCRjb2RlKSB7XG4gIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tc29saWQoJGNvZGUpO1xufVxuXG5AbWl4aW4gZm9udC1hd2Vzb21lLXByby1zb2xpZCgkY29kZSkge1xuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZm9udC1mYW1pbHktbm8tbWlzc2luZy1nZW5lcmljLWZhbWlseS1rZXl3b3JkXG4gIEBleHRlbmQgJWZhcztcbiAgY29udGVudDogZmEtY29udGVudCgkY29kZSk7XG59XG5cbkBtaXhpbiBmb250LWF3ZXNvbWUtcHJvLXJlZ3VsYXIoJGNvZGUpIHtcbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGZvbnQtZmFtaWx5LW5vLW1pc3NpbmctZ2VuZXJpYy1mYW1pbHkta2V5d29yZFxuICBAZXh0ZW5kICVmYXI7XG4gIGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGNvZGUpO1xufVxuXG5AbWl4aW4gZm9udC1hd2Vzb21lLXByby1saWdodCgkY29kZSkge1xuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZm9udC1mYW1pbHktbm8tbWlzc2luZy1nZW5lcmljLWZhbWlseS1rZXl3b3JkXG4gIEBleHRlbmQgJWZhbDtcbiAgY29udGVudDogZmEtY29udGVudCgkY29kZSk7XG59XG5cbkBtaXhpbiBmb250LWF3ZXNvbWUtcHJvLXRoaW4oJGNvZGUpIHtcbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGZvbnQtZmFtaWx5LW5vLW1pc3NpbmctZ2VuZXJpYy1mYW1pbHkta2V5d29yZFxuICBAZXh0ZW5kICVmYXQ7XG4gIGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGNvZGUpO1xufVxuXG5AbWl4aW4gZm9udC1hd2Vzb21lLXByby1icmFuZCgkY29kZSkge1xuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZm9udC1mYW1pbHktbm8tbWlzc2luZy1nZW5lcmljLWZhbWlseS1rZXl3b3JkXG4gIEBleHRlbmQgJWZhYjtcbiAgY29udGVudDogZmEtY29udGVudCgkY29kZSk7XG59XG5cbkBtaXhpbiBmb250LWF3ZXNvbWUtYmVmb3JlKCRjb2RlLCAkZmxvYXRpbmc6IGZhbHNlLCAkZmEtc3R5bGU6IFwic29saWRcIiwgJG1hcmdpbjogLjI1ZW0pIHtcbiAgJjo6YmVmb3JlIHtcbiAgICBAaWYgJGZhLXN0eWxlID09IFwicmVndWxhclwiIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tcmVndWxhcigkY29kZSk7XG4gICAgfSBAZWxzZSBpZiAkZmEtc3R5bGUgPT0gXCJsaWdodFwiIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tbGlnaHQoJGNvZGUpO1xuICAgIH0gQGVsc2UgaWYgJGZhLXN0eWxlID09IFwidGhpblwiIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tdGhpbigkY29kZSk7XG4gICAgfSBAZWxzZSBpZiAkZmEtc3R5bGUgPT0gXCJicmFuZFwiIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tYnJhbmQoJGNvZGUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZm9udC1hd2Vzb21lKCRjb2RlKTtcbiAgICB9XG5cbiAgICBAaWYgJGZsb2F0aW5nIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuICAgIG1hcmdpbi1yaWdodDogJG1hcmdpbjtcblxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1icy1ib2R5LWxpbmUtaGVpZ2h0KTtcblxuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBmb250LWF3ZXNvbWUtYWZ0ZXIoJGNvZGUsICRmbG9hdGluZzogZmFsc2UsICRmYS1zdHlsZTogXCJzb2xpZFwiLCAkbWFyZ2luOiAuMjVlbSkge1xuICAmOjphZnRlciB7XG4gICAgQGlmICRmYS1zdHlsZSA9PSBcInJlZ3VsYXJcIiB7XG4gICAgICBAaW5jbHVkZSBmb250LWF3ZXNvbWUtcHJvLXJlZ3VsYXIoJGNvZGUpO1xuICAgIH0gQGVsc2UgaWYgJGZhLXN0eWxlID09IFwibGlnaHRcIiB7XG4gICAgICBAaW5jbHVkZSBmb250LWF3ZXNvbWUtcHJvLWxpZ2h0KCRjb2RlKTtcbiAgICB9IEBlbHNlIGlmICRmYS1zdHlsZSA9PSBcInRoaW5cIiB7XG4gICAgICBAaW5jbHVkZSBmb250LWF3ZXNvbWUtcHJvLXRoaW4oJGNvZGUpO1xuICAgIH0gQGVsc2UgaWYgJGZhLXN0eWxlID09IFwiYnJhbmRcIiB7XG4gICAgICBAaW5jbHVkZSBmb250LWF3ZXNvbWUtcHJvLWJyYW5kKCRjb2RlKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZSgkY29kZSk7XG4gICAgfVxuXG4gICAgQGlmICRmbG9hdGluZyB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICB9XG4gICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW47XG5cbiAgICBsaW5lLWhlaWdodDogdmFyKC0tYnMtYm9keS1saW5lLWhlaWdodCk7XG5cbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLmJyZWFkY3J1bWIge1xuICAvLyBzY3NzLWRvY3Mtc3RhcnQgYnJlYWRjcnVtYi1jc3MtdmFyc1xuICAtLSN7JHByZWZpeH1icmVhZGNydW1iLXBhZGRpbmcteDogI3skYnJlYWRjcnVtYi1wYWRkaW5nLXh9O1xuICAtLSN7JHByZWZpeH1icmVhZGNydW1iLXBhZGRpbmcteTogI3skYnJlYWRjcnVtYi1wYWRkaW5nLXl9O1xuICAtLSN7JHByZWZpeH1icmVhZGNydW1iLW1hcmdpbi1ib3R0b206ICN7JGJyZWFkY3J1bWItbWFyZ2luLWJvdHRvbX07XG4gIEBpbmNsdWRlIHJmcygkYnJlYWRjcnVtYi1mb250LXNpemUsIC0tI3skcHJlZml4fWJyZWFkY3J1bWItZm9udC1zaXplKTtcbiAgLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1iZzogI3skYnJlYWRjcnVtYi1iZ307XG4gIC0tI3skcHJlZml4fWJyZWFkY3J1bWItYm9yZGVyLXJhZGl1czogI3skYnJlYWRjcnVtYi1ib3JkZXItcmFkaXVzfTtcbiAgLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1kaXZpZGVyLWNvbG9yOiAjeyRicmVhZGNydW1iLWRpdmlkZXItY29sb3J9O1xuICAtLSN7JHByZWZpeH1icmVhZGNydW1iLWl0ZW0tcGFkZGluZy14OiAjeyRicmVhZGNydW1iLWl0ZW0tcGFkZGluZy14fTtcbiAgLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1pdGVtLWFjdGl2ZS1jb2xvcjogI3skYnJlYWRjcnVtYi1hY3RpdmUtY29sb3J9O1xuICAvLyBzY3NzLWRvY3MtZW5kIGJyZWFkY3J1bWItY3NzLXZhcnNcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHBhZGRpbmc6IHZhcigtLSN7JHByZWZpeH1icmVhZGNydW1iLXBhZGRpbmcteSkgdmFyKC0tI3skcHJlZml4fWJyZWFkY3J1bWItcGFkZGluZy14KTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tI3skcHJlZml4fWJyZWFkY3J1bWItbWFyZ2luLWJvdHRvbSk7XG4gIEBpbmNsdWRlIGZvbnQtc2l6ZSh2YXIoLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1mb250LXNpemUpKTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tI3skcHJlZml4fWJyZWFkY3J1bWItYmcpO1xuICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKHZhcigtLSN7JHByZWZpeH1icmVhZGNydW1iLWJvcmRlci1yYWRpdXMpKTtcbn1cblxuLmJyZWFkY3J1bWItaXRlbSB7XG4gIC8vIFRoZSBzZXBhcmF0b3IgYmV0d2VlbiBicmVhZGNydW1icyAoYnkgZGVmYXVsdCwgYSBmb3J3YXJkLXNsYXNoOiBcIi9cIilcbiAgKyAuYnJlYWRjcnVtYi1pdGVtIHtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLSN7JHByZWZpeH1icmVhZGNydW1iLWl0ZW0tcGFkZGluZy14KTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBmbG9hdDogbGVmdDsgLy8gU3VwcHJlc3MgaW5saW5lIHNwYWNpbmdzIGFuZCB1bmRlcmxpbmluZyBvZiB0aGUgc2VwYXJhdG9yXG4gICAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1pdGVtLXBhZGRpbmcteCk7XG4gICAgICBjb2xvcjogdmFyKC0tI3skcHJlZml4fWJyZWFkY3J1bWItZGl2aWRlci1jb2xvcik7XG4gICAgICBjb250ZW50OiB2YXIoLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1kaXZpZGVyLCBlc2NhcGUtc3ZnKCRicmVhZGNydW1iLWRpdmlkZXIpKSAje1wiLyogcnRsOlwifSB2YXIoLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1kaXZpZGVyLCBlc2NhcGUtc3ZnKCRicmVhZGNydW1iLWRpdmlkZXItZmxpcHBlZCkpICN7XCIqL1wifTtcbiAgICB9XG4gIH1cblxuICAmLmFjdGl2ZSB7XG4gICAgY29sb3I6IHZhcigtLSN7JHByZWZpeH1icmVhZGNydW1iLWl0ZW0tYWN0aXZlLWNvbG9yKTtcbiAgfVxufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgc2Nzcy9kaW1lbnNpb24tbm8tbm9uLW51bWVyaWMtdmFsdWVzXG5cbi8vIFNDU1MgUkZTIG1peGluXG4vL1xuLy8gQXV0b21hdGVkIHJlc3BvbnNpdmUgdmFsdWVzIGZvciBmb250IHNpemVzLCBwYWRkaW5ncywgbWFyZ2lucyBhbmQgbXVjaCBtb3JlXG4vL1xuLy8gTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9yZnMvYmxvYi9tYWluL0xJQ0VOU0UpXG5cbi8vIENvbmZpZ3VyYXRpb25cblxuLy8gQmFzZSB2YWx1ZVxuJHJmcy1iYXNlLXZhbHVlOiAxLjI1cmVtICFkZWZhdWx0O1xuJHJmcy11bml0OiByZW0gIWRlZmF1bHQ7XG5cbkBpZiAkcmZzLXVuaXQgIT0gcmVtIGFuZCAkcmZzLXVuaXQgIT0gcHgge1xuICBAZXJyb3IgXCJgI3skcmZzLXVuaXR9YCBpcyBub3QgYSB2YWxpZCB1bml0IGZvciAkcmZzLXVuaXQuIFVzZSBgcHhgIG9yIGByZW1gLlwiO1xufVxuXG4vLyBCcmVha3BvaW50IGF0IHdoZXJlIHZhbHVlcyBzdGFydCBkZWNyZWFzaW5nIGlmIHNjcmVlbiB3aWR0aCBpcyBzbWFsbGVyXG4kcmZzLWJyZWFrcG9pbnQ6IDEyMDBweCAhZGVmYXVsdDtcbiRyZnMtYnJlYWtwb2ludC11bml0OiBweCAhZGVmYXVsdDtcblxuQGlmICRyZnMtYnJlYWtwb2ludC11bml0ICE9IHB4IGFuZCAkcmZzLWJyZWFrcG9pbnQtdW5pdCAhPSBlbSBhbmQgJHJmcy1icmVha3BvaW50LXVuaXQgIT0gcmVtIHtcbiAgQGVycm9yIFwiYCN7JHJmcy1icmVha3BvaW50LXVuaXR9YCBpcyBub3QgYSB2YWxpZCB1bml0IGZvciAkcmZzLWJyZWFrcG9pbnQtdW5pdC4gVXNlIGBweGAsIGBlbWAgb3IgYHJlbWAuXCI7XG59XG5cbi8vIFJlc2l6ZSB2YWx1ZXMgYmFzZWQgb24gc2NyZWVuIGhlaWdodCBhbmQgd2lkdGhcbiRyZnMtdHdvLWRpbWVuc2lvbmFsOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gRmFjdG9yIG9mIGRlY3JlYXNlXG4kcmZzLWZhY3RvcjogMTAgIWRlZmF1bHQ7XG5cbkBpZiB0eXBlLW9mKCRyZnMtZmFjdG9yKSAhPSBudW1iZXIgb3IgJHJmcy1mYWN0b3IgPD0gMSB7XG4gIEBlcnJvciBcImAjeyRyZnMtZmFjdG9yfWAgaXMgbm90IGEgdmFsaWQgICRyZnMtZmFjdG9yLCBpdCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxLlwiO1xufVxuXG4vLyBNb2RlLiBQb3NzaWJpbGl0aWVzOiBcIm1pbi1tZWRpYS1xdWVyeVwiLCBcIm1heC1tZWRpYS1xdWVyeVwiXG4kcmZzLW1vZGU6IG1pbi1tZWRpYS1xdWVyeSAhZGVmYXVsdDtcblxuLy8gR2VuZXJhdGUgZW5hYmxlIG9yIGRpc2FibGUgY2xhc3Nlcy4gUG9zc2liaWxpdGllczogZmFsc2UsIFwiZW5hYmxlXCIgb3IgXCJkaXNhYmxlXCJcbiRyZnMtY2xhc3M6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyAxIHJlbSA9ICRyZnMtcmVtLXZhbHVlIHB4XG4kcmZzLXJlbS12YWx1ZTogMTYgIWRlZmF1bHQ7XG5cbi8vIFNhZmFyaSBpZnJhbWUgcmVzaXplIGJ1ZzogaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvcmZzL2lzc3Vlcy8xNFxuJHJmcy1zYWZhcmktaWZyYW1lLXJlc2l6ZS1idWctZml4OiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gRGlzYWJsZSBSRlMgYnkgc2V0dGluZyAkZW5hYmxlLXJmcyB0byBmYWxzZVxuJGVuYWJsZS1yZnM6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIENhY2hlICRyZnMtYmFzZS12YWx1ZSB1bml0XG4kcmZzLWJhc2UtdmFsdWUtdW5pdDogdW5pdCgkcmZzLWJhc2UtdmFsdWUpO1xuXG5AZnVuY3Rpb24gZGl2aWRlKCRkaXZpZGVuZCwgJGRpdmlzb3IsICRwcmVjaXNpb246IDEwKSB7XG4gICRzaWduOiBpZigkZGl2aWRlbmQgPiAwIGFuZCAkZGl2aXNvciA+IDAgb3IgJGRpdmlkZW5kIDwgMCBhbmQgJGRpdmlzb3IgPCAwLCAxLCAtMSk7XG4gICRkaXZpZGVuZDogYWJzKCRkaXZpZGVuZCk7XG4gICRkaXZpc29yOiBhYnMoJGRpdmlzb3IpO1xuICBAaWYgJGRpdmlkZW5kID09IDAge1xuICAgIEByZXR1cm4gMDtcbiAgfVxuICBAaWYgJGRpdmlzb3IgPT0gMCB7XG4gICAgQGVycm9yIFwiQ2Fubm90IGRpdmlkZSBieSAwXCI7XG4gIH1cbiAgJHJlbWFpbmRlcjogJGRpdmlkZW5kO1xuICAkcmVzdWx0OiAwO1xuICAkZmFjdG9yOiAxMDtcbiAgQHdoaWxlICgkcmVtYWluZGVyID4gMCBhbmQgJHByZWNpc2lvbiA+PSAwKSB7XG4gICAgJHF1b3RpZW50OiAwO1xuICAgIEB3aGlsZSAoJHJlbWFpbmRlciA+PSAkZGl2aXNvcikge1xuICAgICAgJHJlbWFpbmRlcjogJHJlbWFpbmRlciAtICRkaXZpc29yO1xuICAgICAgJHF1b3RpZW50OiAkcXVvdGllbnQgKyAxO1xuICAgIH1cbiAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyAkcXVvdGllbnQ7XG4gICAgJGZhY3RvcjogJGZhY3RvciAqIC4xO1xuICAgICRyZW1haW5kZXI6ICRyZW1haW5kZXIgKiAxMDtcbiAgICAkcHJlY2lzaW9uOiAkcHJlY2lzaW9uIC0gMTtcbiAgICBAaWYgKCRwcmVjaXNpb24gPCAwIGFuZCAkcmVtYWluZGVyID49ICRkaXZpc29yICogNSkge1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCArIDE7XG4gICAgfVxuICB9XG4gICRyZXN1bHQ6ICRyZXN1bHQgKiAkZmFjdG9yICogJHNpZ247XG4gICRkaXZpZGVuZC11bml0OiB1bml0KCRkaXZpZGVuZCk7XG4gICRkaXZpc29yLXVuaXQ6IHVuaXQoJGRpdmlzb3IpO1xuICAkdW5pdC1tYXA6IChcbiAgICBcInB4XCI6IDFweCxcbiAgICBcInJlbVwiOiAxcmVtLFxuICAgIFwiZW1cIjogMWVtLFxuICAgIFwiJVwiOiAxJVxuICApO1xuICBAaWYgKCRkaXZpZGVuZC11bml0ICE9ICRkaXZpc29yLXVuaXQgYW5kIG1hcC1oYXMta2V5KCR1bml0LW1hcCwgJGRpdmlkZW5kLXVuaXQpKSB7XG4gICAgJHJlc3VsdDogJHJlc3VsdCAqIG1hcC1nZXQoJHVuaXQtbWFwLCAkZGl2aWRlbmQtdW5pdCk7XG4gIH1cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLyBSZW1vdmUgcHgtdW5pdCBmcm9tICRyZnMtYmFzZS12YWx1ZSBmb3IgY2FsY3VsYXRpb25zXG5AaWYgJHJmcy1iYXNlLXZhbHVlLXVuaXQgPT0gcHgge1xuICAkcmZzLWJhc2UtdmFsdWU6IGRpdmlkZSgkcmZzLWJhc2UtdmFsdWUsICRyZnMtYmFzZS12YWx1ZSAqIDAgKyAxKTtcbn1cbkBlbHNlIGlmICRyZnMtYmFzZS12YWx1ZS11bml0ID09IHJlbSB7XG4gICRyZnMtYmFzZS12YWx1ZTogZGl2aWRlKCRyZnMtYmFzZS12YWx1ZSwgZGl2aWRlKCRyZnMtYmFzZS12YWx1ZSAqIDAgKyAxLCAkcmZzLXJlbS12YWx1ZSkpO1xufVxuXG4vLyBDYWNoZSAkcmZzLWJyZWFrcG9pbnQgdW5pdCB0byBwcmV2ZW50IG11bHRpcGxlIGNhbGxzXG4kcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZTogdW5pdCgkcmZzLWJyZWFrcG9pbnQpO1xuXG4vLyBSZW1vdmUgdW5pdCBmcm9tICRyZnMtYnJlYWtwb2ludCBmb3IgY2FsY3VsYXRpb25zXG5AaWYgJHJmcy1icmVha3BvaW50LXVuaXQtY2FjaGUgPT0gcHgge1xuICAkcmZzLWJyZWFrcG9pbnQ6IGRpdmlkZSgkcmZzLWJyZWFrcG9pbnQsICRyZnMtYnJlYWtwb2ludCAqIDAgKyAxKTtcbn1cbkBlbHNlIGlmICRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlID09IHJlbSBvciAkcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZSA9PSBcImVtXCIge1xuICAkcmZzLWJyZWFrcG9pbnQ6IGRpdmlkZSgkcmZzLWJyZWFrcG9pbnQsIGRpdmlkZSgkcmZzLWJyZWFrcG9pbnQgKiAwICsgMSwgJHJmcy1yZW0tdmFsdWUpKTtcbn1cblxuLy8gQ2FsY3VsYXRlIHRoZSBtZWRpYSBxdWVyeSB2YWx1ZVxuJHJmcy1tcS12YWx1ZTogaWYoJHJmcy1icmVha3BvaW50LXVuaXQgPT0gcHgsICN7JHJmcy1icmVha3BvaW50fXB4LCAje2RpdmlkZSgkcmZzLWJyZWFrcG9pbnQsICRyZnMtcmVtLXZhbHVlKX0jeyRyZnMtYnJlYWtwb2ludC11bml0fSk7XG4kcmZzLW1xLXByb3BlcnR5LXdpZHRoOiBpZigkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5LCBtYXgtd2lkdGgsIG1pbi13aWR0aCk7XG4kcmZzLW1xLXByb3BlcnR5LWhlaWdodDogaWYoJHJmcy1tb2RlID09IG1heC1tZWRpYS1xdWVyeSwgbWF4LWhlaWdodCwgbWluLWhlaWdodCk7XG5cbi8vIEludGVybmFsIG1peGluIHVzZWQgdG8gZGV0ZXJtaW5lIHdoaWNoIG1lZGlhIHF1ZXJ5IG5lZWRzIHRvIGJlIHVzZWRcbkBtaXhpbiBfcmZzLW1lZGlhLXF1ZXJ5IHtcbiAgQGlmICRyZnMtdHdvLWRpbWVuc2lvbmFsIHtcbiAgICBAaWYgJHJmcy1tb2RlID09IG1heC1tZWRpYS1xdWVyeSB7XG4gICAgICBAbWVkaWEgKCN7JHJmcy1tcS1wcm9wZXJ0eS13aWR0aH06ICN7JHJmcy1tcS12YWx1ZX0pLCAoI3skcmZzLW1xLXByb3BlcnR5LWhlaWdodH06ICN7JHJmcy1tcS12YWx1ZX0pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBtZWRpYSAoI3skcmZzLW1xLXByb3BlcnR5LXdpZHRofTogI3skcmZzLW1xLXZhbHVlfSkgYW5kICgjeyRyZnMtbXEtcHJvcGVydHktaGVpZ2h0fTogI3skcmZzLW1xLXZhbHVlfSkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBtZWRpYSAoI3skcmZzLW1xLXByb3BlcnR5LXdpZHRofTogI3skcmZzLW1xLXZhbHVlfSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIEludGVybmFsIG1peGluIHRoYXQgYWRkcyBkaXNhYmxlIGNsYXNzZXMgdG8gdGhlIHNlbGVjdG9yIGlmIG5lZWRlZC5cbkBtaXhpbiBfcmZzLXJ1bGUge1xuICBAaWYgJHJmcy1jbGFzcyA9PSBkaXNhYmxlIGFuZCAkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5IHtcbiAgICAvLyBBZGRpbmcgYW4gZXh0cmEgY2xhc3MgaW5jcmVhc2VzIHNwZWNpZmljaXR5LCB3aGljaCBwcmV2ZW50cyB0aGUgbWVkaWEgcXVlcnkgdG8gb3ZlcnJpZGUgdGhlIHByb3BlcnR5XG4gICAgJixcbiAgICAuZGlzYWJsZS1yZnMgJixcbiAgICAmLmRpc2FibGUtcmZzIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkcmZzLWNsYXNzID09IGVuYWJsZSBhbmQgJHJmcy1tb2RlID09IG1pbi1tZWRpYS1xdWVyeSB7XG4gICAgLmVuYWJsZS1yZnMgJixcbiAgICAmLmVuYWJsZS1yZnMge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBJbnRlcm5hbCBtaXhpbiB0aGF0IGFkZHMgZW5hYmxlIGNsYXNzZXMgdG8gdGhlIHNlbGVjdG9yIGlmIG5lZWRlZC5cbkBtaXhpbiBfcmZzLW1lZGlhLXF1ZXJ5LXJ1bGUge1xuXG4gIEBpZiAkcmZzLWNsYXNzID09IGVuYWJsZSB7XG4gICAgQGlmICRyZnMtbW9kZSA9PSBtaW4tbWVkaWEtcXVlcnkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgX3Jmcy1tZWRpYS1xdWVyeSAoKSB7XG4gICAgICAuZW5hYmxlLXJmcyAmLFxuICAgICAgJi5lbmFibGUtcmZzIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgJHJmcy1jbGFzcyA9PSBkaXNhYmxlIGFuZCAkcmZzLW1vZGUgPT0gbWluLW1lZGlhLXF1ZXJ5IHtcbiAgICAgIC5kaXNhYmxlLXJmcyAmLFxuICAgICAgJi5kaXNhYmxlLXJmcyB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBfcmZzLW1lZGlhLXF1ZXJ5ICgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IHRoZSBmb3JtYXR0ZWQgbm9uLXJlc3BvbnNpdmUgdmFsdWVcbkBmdW5jdGlvbiByZnMtdmFsdWUoJHZhbHVlcykge1xuICAvLyBDb252ZXJ0IHRvIGxpc3RcbiAgJHZhbHVlczogaWYodHlwZS1vZigkdmFsdWVzKSAhPSBsaXN0LCAoJHZhbHVlcywpLCAkdmFsdWVzKTtcblxuICAkdmFsOiBcIlwiO1xuXG4gIC8vIExvb3Agb3ZlciBlYWNoIHZhbHVlIGFuZCBjYWxjdWxhdGUgdmFsdWVcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xuICAgIEBpZiAkdmFsdWUgPT0gMCB7XG4gICAgICAkdmFsOiAkdmFsICsgXCIgMFwiO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBDYWNoZSAkdmFsdWUgdW5pdFxuICAgICAgJHVuaXQ6IGlmKHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiLCB1bml0KCR2YWx1ZSksIGZhbHNlKTtcblxuICAgICAgQGlmICR1bml0ID09IHB4IHtcbiAgICAgICAgLy8gQ29udmVydCB0byByZW0gaWYgbmVlZGVkXG4gICAgICAgICR2YWw6ICR2YWwgKyBcIiBcIiArIGlmKCRyZnMtdW5pdCA9PSByZW0sICN7ZGl2aWRlKCR2YWx1ZSwgJHZhbHVlICogMCArICRyZnMtcmVtLXZhbHVlKX1yZW0sICR2YWx1ZSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkdW5pdCA9PSByZW0ge1xuICAgICAgICAvLyBDb252ZXJ0IHRvIHB4IGlmIG5lZWRlZFxuICAgICAgICAkdmFsOiAkdmFsICsgXCIgXCIgKyBpZigkcmZzLXVuaXQgPT0gcHgsICN7ZGl2aWRlKCR2YWx1ZSwgJHZhbHVlICogMCArIDEpICogJHJmcy1yZW0tdmFsdWV9cHgsICR2YWx1ZSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gSWYgJHZhbHVlIGlzbid0IGEgbnVtYmVyIChsaWtlIGluaGVyaXQpIG9yICR2YWx1ZSBoYXMgYSB1bml0IChub3QgcHggb3IgcmVtLCBsaWtlIDEuNWVtKSBvciAkIGlzIDAsIGp1c3QgcHJpbnQgdGhlIHZhbHVlXG4gICAgICAgICR2YWw6ICR2YWwgKyBcIiBcIiArICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmUgZmlyc3Qgc3BhY2VcbiAgQHJldHVybiB1bnF1b3RlKHN0ci1zbGljZSgkdmFsLCAyKSk7XG59XG5cbi8vIEhlbHBlciBmdW5jdGlvbiB0byBnZXQgdGhlIHJlc3BvbnNpdmUgdmFsdWUgY2FsY3VsYXRlZCBieSBSRlNcbkBmdW5jdGlvbiByZnMtZmx1aWQtdmFsdWUoJHZhbHVlcykge1xuICAvLyBDb252ZXJ0IHRvIGxpc3RcbiAgJHZhbHVlczogaWYodHlwZS1vZigkdmFsdWVzKSAhPSBsaXN0LCAoJHZhbHVlcywpLCAkdmFsdWVzKTtcblxuICAkdmFsOiBcIlwiO1xuXG4gIC8vIExvb3Agb3ZlciBlYWNoIHZhbHVlIGFuZCBjYWxjdWxhdGUgdmFsdWVcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xuICAgIEBpZiAkdmFsdWUgPT0gMCB7XG4gICAgICAkdmFsOiAkdmFsICsgXCIgMFwiO1xuICAgIH0gQGVsc2Uge1xuICAgICAgLy8gQ2FjaGUgJHZhbHVlIHVuaXRcbiAgICAgICR1bml0OiBpZih0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiwgdW5pdCgkdmFsdWUpLCBmYWxzZSk7XG5cbiAgICAgIC8vIElmICR2YWx1ZSBpc24ndCBhIG51bWJlciAobGlrZSBpbmhlcml0KSBvciAkdmFsdWUgaGFzIGEgdW5pdCAobm90IHB4IG9yIHJlbSwgbGlrZSAxLjVlbSkgb3IgJCBpcyAwLCBqdXN0IHByaW50IHRoZSB2YWx1ZVxuICAgICAgQGlmIG5vdCAkdW5pdCBvciAkdW5pdCAhPSBweCBhbmQgJHVuaXQgIT0gcmVtIHtcbiAgICAgICAgJHZhbDogJHZhbCArIFwiIFwiICsgJHZhbHVlO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC8vIFJlbW92ZSB1bml0IGZyb20gJHZhbHVlIGZvciBjYWxjdWxhdGlvbnNcbiAgICAgICAgJHZhbHVlOiBkaXZpZGUoJHZhbHVlLCAkdmFsdWUgKiAwICsgaWYoJHVuaXQgPT0gcHgsIDEsIGRpdmlkZSgxLCAkcmZzLXJlbS12YWx1ZSkpKTtcblxuICAgICAgICAvLyBPbmx5IGFkZCB0aGUgbWVkaWEgcXVlcnkgaWYgdGhlIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbWluaW11bSB2YWx1ZVxuICAgICAgICBAaWYgYWJzKCR2YWx1ZSkgPD0gJHJmcy1iYXNlLXZhbHVlIG9yIG5vdCAkZW5hYmxlLXJmcyB7XG4gICAgICAgICAgJHZhbDogJHZhbCArIFwiIFwiICsgaWYoJHJmcy11bml0ID09IHJlbSwgI3tkaXZpZGUoJHZhbHVlLCAkcmZzLXJlbS12YWx1ZSl9cmVtLCAjeyR2YWx1ZX1weCk7XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgbWluaW11bSB2YWx1ZVxuICAgICAgICAgICR2YWx1ZS1taW46ICRyZnMtYmFzZS12YWx1ZSArIGRpdmlkZShhYnMoJHZhbHVlKSAtICRyZnMtYmFzZS12YWx1ZSwgJHJmcy1mYWN0b3IpO1xuXG4gICAgICAgICAgLy8gQ2FsY3VsYXRlIGRpZmZlcmVuY2UgYmV0d2VlbiAkdmFsdWUgYW5kIHRoZSBtaW5pbXVtIHZhbHVlXG4gICAgICAgICAgJHZhbHVlLWRpZmY6IGFicygkdmFsdWUpIC0gJHZhbHVlLW1pbjtcblxuICAgICAgICAgIC8vIEJhc2UgdmFsdWUgZm9ybWF0dGluZ1xuICAgICAgICAgICRtaW4td2lkdGg6IGlmKCRyZnMtdW5pdCA9PSByZW0sICN7ZGl2aWRlKCR2YWx1ZS1taW4sICRyZnMtcmVtLXZhbHVlKX1yZW0sICN7JHZhbHVlLW1pbn1weCk7XG5cbiAgICAgICAgICAvLyBVc2UgbmVnYXRpdmUgdmFsdWUgaWYgbmVlZGVkXG4gICAgICAgICAgJG1pbi13aWR0aDogaWYoJHZhbHVlIDwgMCwgLSRtaW4td2lkdGgsICRtaW4td2lkdGgpO1xuXG4gICAgICAgICAgLy8gVXNlIGB2bWluYCBpZiB0d28tZGltZW5zaW9uYWwgaXMgZW5hYmxlZFxuICAgICAgICAgICR2YXJpYWJsZS11bml0OiBpZigkcmZzLXR3by1kaW1lbnNpb25hbCwgdm1pbiwgdncpO1xuXG4gICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSB2YXJpYWJsZSB3aWR0aCBiZXR3ZWVuIDAgYW5kICRyZnMtYnJlYWtwb2ludFxuICAgICAgICAgICR2YXJpYWJsZS13aWR0aDogI3tkaXZpZGUoJHZhbHVlLWRpZmYgKiAxMDAsICRyZnMtYnJlYWtwb2ludCl9I3skdmFyaWFibGUtdW5pdH07XG5cbiAgICAgICAgICAvLyBSZXR1cm4gdGhlIGNhbGN1bGF0ZWQgdmFsdWVcbiAgICAgICAgICAkdmFsOiAkdmFsICsgXCIgY2FsYyhcIiArICRtaW4td2lkdGggKyBpZigkdmFsdWUgPCAwLCBcIiAtIFwiLCBcIiArIFwiKSArICR2YXJpYWJsZS13aWR0aCArIFwiKVwiO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtb3ZlIGZpcnN0IHNwYWNlXG4gIEByZXR1cm4gdW5xdW90ZShzdHItc2xpY2UoJHZhbCwgMikpO1xufVxuXG4vLyBSRlMgbWl4aW5cbkBtaXhpbiByZnMoJHZhbHVlcywgJHByb3BlcnR5OiBmb250LXNpemUpIHtcbiAgQGlmICR2YWx1ZXMgIT0gbnVsbCB7XG4gICAgJHZhbDogcmZzLXZhbHVlKCR2YWx1ZXMpO1xuICAgICRmbHVpZC12YWw6IHJmcy1mbHVpZC12YWx1ZSgkdmFsdWVzKTtcblxuICAgIC8vIERvIG5vdCBwcmludCB0aGUgbWVkaWEgcXVlcnkgaWYgcmVzcG9uc2l2ZSAmIG5vbi1yZXNwb25zaXZlIHZhbHVlcyBhcmUgdGhlIHNhbWVcbiAgICBAaWYgJHZhbCA9PSAkZmx1aWQtdmFsIHtcbiAgICAgICN7JHByb3BlcnR5fTogJHZhbDtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgX3Jmcy1ydWxlICgpIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiBpZigkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5LCAkdmFsLCAkZmx1aWQtdmFsKTtcblxuICAgICAgICAvLyBJbmNsdWRlIHNhZmFyaSBpZnJhbWUgcmVzaXplIGZpeCBpZiBuZWVkZWRcbiAgICAgICAgbWluLXdpZHRoOiBpZigkcmZzLXNhZmFyaS1pZnJhbWUtcmVzaXplLWJ1Zy1maXgsICgwICogMXZ3KSwgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIF9yZnMtbWVkaWEtcXVlcnktcnVsZSAoKSB7XG4gICAgICAgICN7JHByb3BlcnR5fTogaWYoJHJmcy1tb2RlID09IG1heC1tZWRpYS1xdWVyeSwgJGZsdWlkLXZhbCwgJHZhbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFNob3J0aGFuZCBoZWxwZXIgbWl4aW5zXG5AbWl4aW4gZm9udC1zaXplKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlKTtcbn1cblxuQG1peGluIHBhZGRpbmcoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIHBhZGRpbmcpO1xufVxuXG5AbWl4aW4gcGFkZGluZy10b3AoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIHBhZGRpbmctdG9wKTtcbn1cblxuQG1peGluIHBhZGRpbmctcmlnaHQoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIHBhZGRpbmctcmlnaHQpO1xufVxuXG5AbWl4aW4gcGFkZGluZy1ib3R0b20oJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIHBhZGRpbmctYm90dG9tKTtcbn1cblxuQG1peGluIHBhZGRpbmctbGVmdCgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgcGFkZGluZy1sZWZ0KTtcbn1cblxuQG1peGluIG1hcmdpbigkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgbWFyZ2luKTtcbn1cblxuQG1peGluIG1hcmdpbi10b3AoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIG1hcmdpbi10b3ApO1xufVxuXG5AbWl4aW4gbWFyZ2luLXJpZ2h0KCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBtYXJnaW4tcmlnaHQpO1xufVxuXG5AbWl4aW4gbWFyZ2luLWJvdHRvbSgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgbWFyZ2luLWJvdHRvbSk7XG59XG5cbkBtaXhpbiBtYXJnaW4tbGVmdCgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgbWFyZ2luLWxlZnQpO1xufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgcHJvcGVydHktZGlzYWxsb3dlZC1saXN0XG4vLyBTaW5nbGUgc2lkZSBib3JkZXItcmFkaXVzXG5cbi8vIEhlbHBlciBmdW5jdGlvbiB0byByZXBsYWNlIG5lZ2F0aXZlIHZhbHVlcyB3aXRoIDBcbkBmdW5jdGlvbiB2YWxpZC1yYWRpdXMoJHJhZGl1cykge1xuICAkcmV0dXJuOiAoKTtcbiAgQGVhY2ggJHZhbHVlIGluICRyYWRpdXMge1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbnVtYmVyIHtcbiAgICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCBtYXgoJHZhbHVlLCAwKSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgJHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiAkcmV0dXJuO1xufVxuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgYm9yZGVyLXJhZGl1cy1taXhpbnNcbkBtaXhpbiBib3JkZXItcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzLCAkZmFsbGJhY2stYm9yZGVyLXJhZGl1czogZmFsc2UpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICB9XG4gIEBlbHNlIGlmICRmYWxsYmFjay1ib3JkZXItcmFkaXVzICE9IGZhbHNlIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZmFsbGJhY2stYm9yZGVyLXJhZGl1cztcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1lbmQtcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1zdGFydC1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLXRvcC1zdGFydC1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItdG9wLWVuZC1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1lbmQtcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tc3RhcnQtcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuLy8gc2Nzcy1kb2NzLWVuZCBib3JkZXItcmFkaXVzLW1peGluc1xuIiwiQGltcG9ydCBcIn5ib290c3RyYXAvc2Nzcy9icmVhZGNydW1iXCI7XG5cbi5icmVhZGNydW1icyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWF4LXdpZHRoOiAxMDB2dztcbiAgbWFyZ2luLXJpZ2h0OiBjYWxjKCN7JGNvbnRhaW5lci1wYWRkaW5nLXh9ICogLTEpO1xuICBtYXJnaW4tbGVmdDogY2FsYygjeyRjb250YWluZXItcGFkZGluZy14fSAqIC0xKTtcblxuICAuYnJlYWRjcnVtYiB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgcGFkZGluZzogJGNvbnRhaW5lci1wYWRkaW5nLXg7XG4gICAgbWFyZ2luOiB1bnNldDtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gICAgJjo6YmVmb3JlLFxuICAgICY6OmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDFyZW07XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWFscGhhLWJyZWFkY3J1bWJzLW1vYmlsZS1zaGFkb3ctY29sb3IpIDAsIHZhcigtLWFscGhhLWJyZWFkY3J1bWJzLW1vYmlsZS1zaGFkb3ctY29sb3ItZW5kKSk7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICB3aWR0aDogMnJlbTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tYWxwaGEtYnJlYWRjcnVtYnMtbW9iaWxlLXNoYWRvdy1jb2xvci1lbmQpIDAsIHZhcigtLWFscGhhLWJyZWFkY3J1bWJzLW1vYmlsZS1zaGFkb3ctY29sb3IpKTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKG1kKSB7XG4gICAgLmJyZWFkY3J1bWIge1xuICAgICAgJjo6YmVmb3JlLFxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYub24tZmVhdHVyZWQge1xuICAgIC0tYWxwaGEtYnJlYWRjcnVtYnMtbW9iaWxlLXNoYWRvdy1jb2xvcjogI3skYnJlYWRjcnVtYi1vbi1mZWF0dXJlZC1tb2JpbGUtc2hhZG93LWNvbG9yfTtcbiAgICAtLWFscGhhLWJyZWFkY3J1bWJzLW1vYmlsZS1zaGFkb3ctY29sb3ItZW5kOiAje3JnYmEoJGJyZWFkY3J1bWItb24tZmVhdHVyZWQtbW9iaWxlLXNoYWRvdy1jb2xvciwgMCl9O1xuICAgIHRvcDogdmFyKC0tZmVhdHVyZWQtaW1hZ2UtaGVpZ2h0KTtcbiAgICB6LWluZGV4OiAxMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xuXG4gICAgLmJyZWFkY3J1bWIge1xuICAgICAgLS1icy1icmVhZGNydW1iLWRpdmlkZXItY29sb3I6IGN1cnJlbnRjb2xvcjtcbiAgICAgIC0tYnMtYnJlYWRjcnVtYi1pdGVtLWFjdGl2ZS1jb2xvcjogY3VycmVudGNvbG9yO1xuXG4gICAgICAmOjpiZWZvcmUsXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIG9wYWNpdHk6IC43NTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLmRhcmsge1xuICAgIC0tYnMtbGluay1jb2xvci1yZ2I6ICN7aGV4LXRvLXJnYigkd2hpdGUpfTtcblxuICAgIGEge1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIC0tYnMtbGluay1jb2xvci1yZ2I6ICN7aGV4LXRvLXJnYigkZ3JheS0xMDApfTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmJyZWFkY3J1bWJzLW9uLWZlYXR1cmVkIHtcbiAgJjpub3QoLmhhcy10cmFuc3BhcmVudC1oZWFkZXIpIHtcbiAgICAuYnJlYWRjcnVtYnMge1xuICAgICAgdG9wOiBjYWxjKHZhcigtLWhlYWRlci1oZWlnaHQpICsgdmFyKC0tZmVhdHVyZWQtaW1hZ2UtaGVpZ2h0KSk7XG4gICAgICB0cmFuc2l0aW9uOiB0b3AgLjNzIGVhc2U7XG4gICAgfVxuICB9XG5cbiAgJi5zZWFyY2gge1xuICAgIC5jb250ZW50LXdyYXBwZXIge1xuICAgICAgcGFkZGluZy10b3A6IG1hcC1nZXQoJHNwYWNlcnMsIDgpO1xuICAgIH1cbiAgfVxufVxuXG4uYnJlYWRjcnVtYi1pdGVtIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICArIC5icmVhZGNydW1iLWl0ZW0ge1xuICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1iZWZvcmUoJGZhLXZhci1hbmdsZS1yaWdodCwgZmFsc2UsIFwibGlnaHRcIiwgMCk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgZmxvYXQ6IHVuc2V0O1xuICAgICAgcGFkZGluZy1yaWdodDogLjI1cmVtO1xuICAgIH1cbiAgfVxuXG4gICYuYWN0aXZlIHtcbiAgICBzcGFuIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgfVxuICB9XG59XG4iLCJAaW1wb3J0IFwifmJvb3RzdHJhcC9zY3NzL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIn5AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtcHJvL3Njc3MvZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwifkBmb3J0YXdlc29tZS9mb250YXdlc29tZS1wcm8vc2Nzcy92YXJpYWJsZXNcIjtcblxuJHRoZW1lLWFzc2V0LXBhdGg6IFwiLi4vaW1hZ2VzXCIgIWRlZmF1bHQ7XG4kZm9udHMtcGF0aDogXCJmb250c1wiICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBDb2xvciBzeXN0ZW1cbiRibGFjazogIzAwMCAhZGVmYXVsdDtcbiR3aGl0ZTogI2ZmZiAhZGVmYXVsdDtcbiRncmF5LTEwMDogI2Y3ZjdmNyAhZGVmYXVsdDtcbiRncmF5LTIwMDogI2U5ZWNlZiAhZGVmYXVsdDtcbiRncmF5LTMwMDogI2RlZTJlNiAhZGVmYXVsdDtcbiRncmF5LTUwMDogIzlkOWQ5ZCAhZGVmYXVsdDtcbiRncmF5LTYwMDogIzZjNzU3ZCAhZGVmYXVsdDtcbiRncmF5LTcwMDogIzQ5NTA1NyAhZGVmYXVsdDtcbiRncmF5LTkwMDogIzBhMGEwYSAhZGVmYXVsdDtcblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGNvbG9yLXZhcmlhYmxlc1xuJGJsdWU6ICMwMDVkYWEgIWRlZmF1bHQ7XG4kcHVycGxlOiAjNzAxZTZlICFkZWZhdWx0O1xuJGdyZWVuOiAjMDFhZTNjICFkZWZhdWx0O1xuJHJlZDogI2RjMzU0NSAhZGVmYXVsdDtcbiR5ZWxsb3c6ICNmZmMxMDcgIWRlZmF1bHQ7XG4kY3lhbjogIzBkY2FmMCAhZGVmYXVsdDtcblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGNvbG9ycy1tYXBcbiRjb2xvcnM6IChcbiAgXCJibHVlXCI6ICRibHVlLFxuICBcInB1cnBsZVwiOiAkcHVycGxlLFxuICBcImdyZWVuXCI6ICRncmVlbixcbiAgXCJ3aGl0ZVwiOiAkd2hpdGUsXG4gIFwiZ3JheS0xMDBcIjogJGdyYXktMTAwLFxuICBcImdyYXktNTAwXCI6ICRncmF5LTUwMCxcbiAgXCJncmF5LTkwMFwiOiAkZ3JheS05MDBcbikgIWRlZmF1bHQ7XG5cbi8vIHNjc3MtZG9jcy1zdGFydCB0aGVtZS1jb2xvci12YXJpYWJsZXNcbiRzdWNjZXNzOiAkZ3JlZW4gIWRlZmF1bHQ7XG4kaW5mbzogJGN5YW4gIWRlZmF1bHQ7XG4kd2FybmluZzogJHllbGxvdyAhZGVmYXVsdDtcbiRkYW5nZXI6ICRyZWQgIWRlZmF1bHQ7XG4kbGlnaHQ6ICRncmF5LTEwMCAhZGVmYXVsdDtcbiRkYXJrOiAkZ3JheS05MDAgIWRlZmF1bHQ7XG5cbi8vIHNjc3MtZG9jcy1zdGFydCB0aGVtZS1jb2xvcnMtbWFwXG4kZGVmYXVsdC10aGVtZS1jb2xvcnM6IChcbiAgXCJwcmltYXJ5XCI6ICRwcmltYXJ5LFxuICBcInNlY29uZGFyeVwiOiAkc2Vjb25kYXJ5LFxuICBcInN1Y2Nlc3NcIjogJHN1Y2Nlc3MsXG4gIFwiaW5mb1wiOiAkaW5mbyxcbiAgXCJ3YXJuaW5nXCI6ICR3YXJuaW5nLFxuICBcImRhbmdlclwiOiAkZGFuZ2VyLFxuICBcImxpZ2h0XCI6ICRsaWdodCxcbiAgXCJkYXJrXCI6ICRkYXJrLFxuICBcIndoaXRlXCI6ICR3aGl0ZVxuKSAhZGVmYXVsdDtcbiR0aGVtZS1jb2xvcnM6ICgpICFkZWZhdWx0O1xuJHRoZW1lLWNvbG9yczogbWFwLW1lcmdlKCRkZWZhdWx0LXRoZW1lLWNvbG9ycywgJHRoZW1lLWNvbG9ycyk7XG5cbi8vIFRoZSBjb250cmFzdCByYXRpbyB0byByZWFjaCBhZ2FpbnN0IHdoaXRlLCB0byBkZXRlcm1pbmUgaWYgY29sb3IgY2hhbmdlcyBmcm9tIFwibGlnaHRcIiB0byBcImRhcmtcIi4gQWNjZXB0YWJsZSB2YWx1ZXMgZm9yIFdDQUcgMi4wIGFyZSAzLCA0LjUgYW5kIDcuXG4kbWluLWNvbnRyYXN0LXJhdGlvOiA0LjUgIWRlZmF1bHQ7XG5cbi8vIEN1c3RvbWl6ZSB0aGUgbGlnaHQgYW5kIGRhcmsgdGV4dCBjb2xvcnMgZm9yIHVzZSBpbiBvdXIgY29sb3IgY29udHJhc3QgZnVuY3Rpb24uXG4kY29sb3ItY29udHJhc3QtZGFyazogJGdyYXktOTAwICFkZWZhdWx0O1xuJGNvbG9yLWNvbnRyYXN0LWxpZ2h0OiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIENvbXBvbmVudHNcbi8vIHNjc3MtZG9jcy1zdGFydCBib3JkZXItcmFkaXVzLXZhcmlhYmxlc1xuJGJvcmRlci1yYWRpdXM6IC41cmVtICFkZWZhdWx0O1xuJGJvcmRlci1yYWRpdXMtbGc6IC42MjVyZW0gIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIE9wdGlvbnNcbiRlbmFibGUtbmVnYXRpdmUtbWFyZ2luczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gU3BhY2luZ1xuJHNwYWNlcjogMXJlbSAhZGVmYXVsdDtcbiRzcGFjZXJzOiAoXG4gIDA6IDAsXG4gIDE6ICRzcGFjZXIgKiAuMjUsIC8vIDRweFxuICAyOiAkc3BhY2VyICogLjUsIC8vIDhweFxuICAzOiAkc3BhY2VyICogLjc1LCAvLyAxMnB4XG4gIDQ6ICRzcGFjZXIsIC8vIDE2cHhcbiAgNTogJHNwYWNlciAqIDEuMjUsIC8vIDIwcHhcbiAgNjogJHNwYWNlciAqIDEuNSwgLy8gMjRweFxuICA3OiAkc3BhY2VyICogMS43NSwgLy8gMjhweFxuICA4OiAkc3BhY2VyICogMiwgLy8gMzJweFxuICA5OiAkc3BhY2VyICogMywgLy8gNDhweFxuICAxMDogJHNwYWNlciAqIDQsIC8vIDY0cHhcbiAgMTE6ICRzcGFjZXIgKiA1IC8vIDgwcHhcbikgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIERhcmsgU3R5bGVcbiRkYXJrLWJnLWNvbG9yOiB2YXIoLS1icy1ib2R5LWJnLWRhcmspICFkZWZhdWx0O1xuJGRhcmstdHh0LWNvbG9yOiB2YXIoLS1icy1ib2R5LWNvbG9yLWRhcmspICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBMaWdodCBTdHlsZVxuJGxpZ2h0LWJnLWNvbG9yOiAkYm9keS1iZyAhZGVmYXVsdDtcbiRsaWdodC10eHQtY29sb3I6ICRib2R5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBIZWFkZXJcbiRoZWFkZXItYmc6IHZhcigtLWJzLWJvZHktYmcpICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBGb290ZXJcbiRmb290ZXItYmc6IHJnYmEoJHByaW1hcnksIC4xKSAhZGVmYXVsdDtcbiRjb3B5cmlnaHQtYmc6ICRmb290ZXItYmcgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIExpbmtzXG4kbGluay1jb2xvcjogJHByaW1hcnkgIWRlZmF1bHQ7XG4kbGluay1zaGFkZS1wZXJjZW50YWdlOiAyMCUgIWRlZmF1bHQ7XG4kbGluay1ob3Zlci1jb2xvcjogc2hpZnQtY29sb3IoJGxpbmstY29sb3IsICRsaW5rLXNoYWRlLXBlcmNlbnRhZ2UpICFkZWZhdWx0O1xuXG4vLyBHcmlkIGNvbHVtbnNcbiRncmlkLWd1dHRlci13aWR0aDogMS41cmVtICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBDb250YWluZXIgcGFkZGluZ1xuJGNvbnRhaW5lci1wYWRkaW5nLXg6ICRncmlkLWd1dHRlci13aWR0aCAvIDIgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIENvbXBvbmVudHNcbi8vIHNjc3MtZG9jcy1zdGFydCBib3JkZXItdmFyaWFibGVzXG4kYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kYm9yZGVyLWNvbG9yOiByZ2JhKCRncmF5LTkwMCwgLjE1KSAhZGVmYXVsdDtcblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGFzcGVjdC1yYXRpb3NcblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGhlYWRpbmdzLXZhcmlhYmxlc1xuJGhlYWRpbmdzLW1hcmdpbi1ib3R0b206ICRzcGFjZXIgKiAyICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBCdXR0b25zICsgRm9ybXNcbiRidG4tY29sb3JzOiAoXG4gIFwicHJpbWFyeVwiOiBudWxsLFxuICBcInNlY29uZGFyeVwiIDogbnVsbFxuKSAhZGVmYXVsdDtcblxuJGlucHV0LWZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1wYWRkaW5nLXk6IC4zNzVyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLXBhZGRpbmcteDogLjc1cmVtICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1mb2N1cy13aWR0aDogLjEyNXJlbSAhZGVmYXVsdDtcbiRpbnB1dC1wYWRkaW5nLXk6ICRpbnB1dC1idG4tcGFkZGluZy15ICFkZWZhdWx0O1xuJGlucHV0LXBhZGRpbmcteDogJGlucHV0LWJ0bi1wYWRkaW5nLXggIWRlZmF1bHQ7XG4kaW5wdXQtbGluZS1oZWlnaHQ6IDEuNSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gTmF2c1xuLy8tLS0tLSBTaGFyZWQgdmFyaWFibGVzXG4kbmF2LWNvbG9yLWFjY2VudDogJHByaW1hcnkgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gQm9vdHN0cmFwIHZhcmlhYmxlc1xuJG5hdi1saW5rLWZvbnQtc2l6ZTogbnVsbCAhZGVmYXVsdDtcbiRuYXYtbGluay1jb2xvcjogdmFyKC0tdGhlbWUtc2tpbi10ZXh0LWNvbG9yKSAhZGVmYXVsdDtcbiRuYXYtbGluay1ob3Zlci1jb2xvcjogdGludC1jb2xvcigkcHJpbWFyeSwgMzAlKSAhZGVmYXVsdDtcbiRuYXYtbGluay1kaXNhYmxlZC1jb2xvcjogJGdyYXktNjAwICFkZWZhdWx0O1xuXG4vLy0tLS0tIEFscGhhIHZhcmlhYmxlc1xuJG5hdi1jb2xvci1ob3Zlci1maXJzdC1sZXZlbDogJG5hdi1saW5rLWhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJG5hdi1jb2xvci1jdXJyZW50OiAkbmF2LWNvbG9yLWFjY2VudCAhZGVmYXVsdDtcbiRuYXYtY29sb3ItY3VycmVudC1maXJzdC1sZXZlbDogJG5hdi1jb2xvci1jdXJyZW50ICFkZWZhdWx0O1xuJG5hdi1jb2xvci1hbmNlc3Rvcjogc2hhZGUtY29sb3IoJG5hdi1jb2xvci1hY2NlbnQsIDIwJSkgIWRlZmF1bHQ7XG4kbmF2LWNvbG9yLWFuY2VzdG9yLWZpcnN0LWxldmVsOiAkbmF2LWNvbG9yLWFuY2VzdG9yICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBOYXZiYXJcbiRzdWJtZW51LWJnLWNvbG9yOiB3aGl0ZSAhZGVmYXVsdDtcbiRuYXZiYXItcGFkZGluZy15OiAzICogJHNwYWNlciAvIDQgIWRlZmF1bHQ7XG4kbmF2YmFyLWl0ZW0tbWFyZ2luLXg6IG51bGwgIWRlZmF1bHQ7XG4kbmF2YmFyLWl0ZW0tbWFyZ2luLXk6IG51bGwgIWRlZmF1bHQ7XG4kbmF2YmFyLWxpZ2h0LWNvbG9yOiAkbmF2LWxpbmstY29sb3IgIWRlZmF1bHQ7XG4kbmF2YmFyLWxpZ2h0LWhvdmVyLWNvbG9yOiAkbmF2LWxpbmstaG92ZXItY29sb3IgIWRlZmF1bHQ7XG4kbmF2YmFyLWxpZ2h0LWFjdGl2ZS1jb2xvcjogJG5hdi1saW5rLWhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1saWdodC1kaXNhYmxlZC1jb2xvcjogJG5hdi1saW5rLWRpc2FibGVkLWNvbG9yICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBEcm9wZG93bnNcblxuLy8tLS0tLS0gUGFnaW5hdGlvblxuJHBhZ2luYXRpb24taG92ZXItYmc6IHJnYmEoJHByaW1hcnksIC4xKSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gTW9kYWxzXG4kbW9kYWwtYmFja2Ryb3AtYmc6IGJsYWNrICFkZWZhdWx0O1xuJG1vZGFsLWJhY2tkcm9wLW9wYWNpdHk6IC41ICFkZWZhdWx0O1xuJG1vZGFsLWNvbnRlbnQtYm9yZGVyLXdpZHRoOiAwICFkZWZhdWx0O1xuXG4vLyBNb2RhbCBWaWRlb1xuJG1vZGFsLXZpZGVvLWJ0bi1jbG9zZS1iZy1jb2xvcjogdmFyKC0tYnMtcHJpbWFyeSkgIWRlZmF1bHQ7XG4kbW9kYWwtdmlkZW8tYnRuLWNsb3NlLWNvbG9yOiAjZmZmICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBJbWFnZSB0aHVtYm5haWxzICYgUGljdHVyZVxuXG4vLy0tLS0tLSBCcmVhZGNydW1ic1xuJGJyZWFkY3J1bWItZm9udC1zaXplOiAuNzVyZW0gIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1hY3RpdmUtY29sb3I6IHZhcigtLWJzLWJvZHktY29sb3IpICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBPZmZjYW52YXNcbiRvZmZjYW52YXMtYm9keS1iYWNrZHJvcC1jb2xvcjogcmdiYSgkbW9kYWwtYmFja2Ryb3AtYmcsICRtb2RhbC1iYWNrZHJvcC1vcGFjaXR5KSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtd2lkZS1zY3JlZW4tYnJlYWtwb2ludDogeHhsICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBPZmZjYW52YXMgZGVza3RvcFxuJG9mZmNhbnZhcy1kYXJrLW1vZGUtbG9nby1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1kZXNrdG9wLXdpZHRoOiA0MDBweCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbG9nby13aWR0aDogNjYuNjYlICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1oZWFkZXItYWxpZ25lbWVudDogY2VudGVyICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLWJvcmRlci1jb2xvcjogJHNlY29uZGFyeSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1ib3JkZXItb3BhY2l0eTogLjUgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtYm9yZGVyLWJnOiByZ2JhKCRvZmZjYW52YXMtZ3JpZC1ib3JkZXItY29sb3IsICRvZmZjYW52YXMtZ3JpZC1ib3JkZXItb3BhY2l0eSkgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtZmlyc3QtbHZsLWJvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtZmlyc3QtbHZsLWJvcmRlci10eXBlOiBzb2xpZCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1maXJzdC1sdmwtYm9yZGVyLW9wYWNpdHk6IC4xICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLWZpcnN0LWx2bC1ib3JkZXItY29sb3I6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtZmlyc3QtbHZsLWJvcmRlci1jb2xvci1iZzogcmdiYSgkb2ZmY2FudmFzLWdyaWQtZmlyc3QtbHZsLWJvcmRlci1jb2xvciwgJG9mZmNhbnZhcy1ncmlkLWZpcnN0LWx2bC1ib3JkZXItb3BhY2l0eSk7XG4kb2ZmY2FudmFzLWdyaWQtZmlyc3QtbHZsLWJvcmRlci1zdHlsZTogJG9mZmNhbnZhcy1ncmlkLWZpcnN0LWx2bC1ib3JkZXItc2l6ZSAkb2ZmY2FudmFzLWdyaWQtZmlyc3QtbHZsLWJvcmRlci10eXBlICRvZmZjYW52YXMtZ3JpZC1maXJzdC1sdmwtYm9yZGVyLWNvbG9yLWJnICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLWZpcnN0LWx2bC1mb250LXNpemU6IDEuNXJlbSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1maXJzdC10aHVtYi13aWR0aDogNzUlICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLXN1Ym1lbnUtZm9udC1zaXplOiAxLjEyNXJlbSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1zdWJtZW51LWl0ZW0tcGFkZGluZy15OiAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLXN1Ym1lbnUtaXRlbS1saW5lLWhlaWdodDogMS4yNSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1zdWJtZW51LWl0ZW0taWNvbi1zaXplOiAuOHJlbSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1zdWJtZW51LWl0ZW0taW1hZ2UtYm94LXNoYWRvdzogMCAwIDEuNXJlbSAuNzVyZW0gcmdiYSgkc2Vjb25kYXJ5LCAuMjUpICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLXN1Ym1lbnUtaXRlbS1ob3Zlci1pbWFnZS1ib3gtc2hhZG93OiB2YXIoLS1icy1ib3gtc2hhZG93KTtcbiRvZmZjYW52YXMtZmlyc3QtbHZsLW1lbnUtaXRlbS1ib3JkZXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZmlyc3QtbHZsLW1lbnUtaXRlbS1ib3JkZXItb3BhY2l0eTogLjE1ICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1maXJzdC1sdmwtbWVudS1pdGVtLWJvcmRlci1zdHlsZTogMXB4IHNvbGlkIHJnYmEoJG9mZmNhbnZhcy1maXJzdC1sdmwtbWVudS1pdGVtLWJvcmRlci1jb2xvciwgJG9mZmNhbnZhcy1maXJzdC1sdmwtbWVudS1pdGVtLWJvcmRlci1vcGFjaXR5KTtcblxuLy8tLS0tLS0tIE9mZmNhbnZhcyBkZXNrdG9wIE1lZ2EgU3VibWVudVxuJG9mZmNhbnZhcy1zdWJtZW51LWl0ZW0tZm9udC1zaXplOiAxLjVyZW0gIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLXN1Ym1lbnUtaXRlbS1ib3JkZXItY29sb3I6IHZhcigtLXRoZW1lLXNraW4tdGV4dC1jb2xvcikgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLXN1Ym1lbnUtaXRlbS1ib3JkZXItc3R5bGU6IDFweCBzb2xpZCAkb2ZmY2FudmFzLXN1Ym1lbnUtaXRlbS1ib3JkZXItY29sb3I7XG5cblxuLy8tLS0tLS0gTWVnYSBNZW51XG4kbWVnYW1lbnUtYmctY29sb3I6IHZhcigtLXRoZW1lLXNraW4tYmctY29sb3IpO1xuJG1lZ2FtZW51LXBhZGRpbmcteTogMXJlbSAhZGVmYXVsdDtcbiRtZWdhbWVudS1wYWRkaW5nLXg6IDFyZW0gIWRlZmF1bHQ7XG4kbWVnYW1lbnUtdGl0bGUtcGFkZGluZy15OiAuNXJlbSAhZGVmYXVsdDtcbiRtZWdhbWVudS10aXRsZS1wYWRkaW5nLXg6IDFyZW0gIWRlZmF1bHQ7XG4kbWVnYW1lbnUtdGl0bGUtY29sb3I6IHZhcigtLXRoZW1lLXNraW4tdGV4dC1jb2xvcikgIWRlZmF1bHQ7XG4kbWVnYW1lbnUtdGl0bGUtdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJG1lZ2FtZW51LXRpdGxlLWhvdmVyLWNvbG9yOiAkbmF2LWxpbmstaG92ZXItY29sb3IgIWRlZmF1bHQ7XG4kbWVnYW1lbnUtdGl0bGUtaG92ZXItdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWRlZmF1bHQ7XG4kbWVnYW1lbnUtcGljdHVyZS1oYXMtb3ZlcmxheTogdHJ1ZSAhZGVmYXVsdDtcbiRtZWdhbWVudS1vdmVybGF5LWJnLWNvbG9yOiAkcHJpbWFyeSAhZGVmYXVsdDtcbiRtZWdhbWVudS1vdmVybGF5LWJnLW9wYWNpdHk6IC41ICFkZWZhdWx0O1xuJG1lZ2FtZW51LW92ZXJsYXktYmctY29sb3ItcmJnOiByZ2JhKCRtZWdhbWVudS1vdmVybGF5LWJnLWNvbG9yLCAkbWVnYW1lbnUtb3ZlcmxheS1iZy1vcGFjaXR5KSAhZGVmYXVsdDtcbiRtZWdhbWVudS1waWN0dXJlLWJvcmRlci1yYWRpdXM6IC41cmVtICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBBbmNob3Igb2Zmc2V0XG4kYW5jaG9yLW9mZnNldDogMXJlbSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gV3AgQWxwaGFcbi8vIGxvZ29cbiRsb2dvLXBhZGRpbmcteTogJG5hdmJhci1wYWRkaW5nLXkgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gQm9vdHN0cmFwIGNvbG9ycyBjbGVhbnVwXG4kYnMtZ3JheXMtdG8ta2VlcDogKCkgIWRlZmF1bHQ7XG4kYnMtZ3JheXMtdG8tcmVtb3ZlOiAoXCIyMDBcIiwgXCIzMDBcIiwgXCI0MDBcIiwgXCI1MDBcIiwgXCI3MDBcIikgIWRlZmF1bHQ7XG4kYnMtY29sb3JzLXRvLWtlZXA6ICgpICFkZWZhdWx0O1xuJGJzLWNvbG9ycy10by1yZW1vdmU6IChcImluZGlnb1wiLCBcInBpbmtcIiwgXCJyZWRcIiwgXCJ5ZWxsb3dcIiwgXCJncmVlblwiLCBcInRlYWxcIiwgXCJjeWFuXCIsIFwibGlnaHRcIiwgXCJkYXJrXCIpICFkZWZhdWx0O1xuXG4vLy0tLS0tIEJvb3RzdHJhcCB1dGlsaXRpZXMgY2xlYW51cFxuJGJzLXV0aWxpdGllcy10by1yZW1vdmU6IChcImJnLW9wYWNpdHlcIikgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gSGVscGVyc1xuLy8tLS0tIFNlcGFyYXRlIHRpdGxlXG4kc2VwYXJhdGUtdGl0bGUtd2lkdGg6IDgwcHggIWRlZmF1bHQ7XG4kc2VwYXJhdGUtdGl0bGUtYmc6IHZhcigtLWJzLXByaW1hcnkpICFkZWZhdWx0O1xuXG4vLy0tLS0gVHJhbnNwYXJlbnQgYmFja2dyb3VuZHNcbiR0cmFuc3BhcmVudC1iZy1vcGFjaXRpZXMtb3ZlcnJpZGVzOiAoKSAhZGVmYXVsdDtcbiR0cmFuc3BhcmVudC1iZy1vcGFjaXRpZXM6IChcbiAgMTA6IC4xLFxuICAyNTogLjI1LFxuICBsaWdodDogLjI1LFxuICAzNTogLjM1LFxuICA1MDogLjUsXG4gIG1lZGl1bTogLjUsXG4gIDY1OiAuNjUsXG4gIDc1OiAuNzUsXG4gIHN0cm9uZzogLjc1LFxuICA5MDogLjlcbikgIWRlZmF1bHQ7XG4kdHJhbnNwYXJlbnQtYmctb3BhY2l0aWVzOiBtYXAtbWVyZ2UoJHRyYW5zcGFyZW50LWJnLW9wYWNpdGllcywgJHRyYW5zcGFyZW50LWJnLW9wYWNpdGllcy1vdmVycmlkZXMpO1xuJHRyYW5zcGFyZW50LWJnLWNvbG9yczogKHByaW1hcnk6ICR0cmFuc3BhcmVudC1iZy1vcGFjaXRpZXMsIHNlY29uZGFyeTogJHRyYW5zcGFyZW50LWJnLW9wYWNpdGllcykgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gVG9vbHNcbi8vIENvbmZpZ3VyYXRpb24gKGFjdGl2YXRlIG9ubHkgdGhvc2UgbmVlZGVkKVxuJHRlYXNlczogKFwiZ3JpZFwiLCBcImxpc3RcIiwgXCJzaW1wbGVcIiwgXCJzaW1wbGUtcmVhbGlzYXRpb25zXCIpICFkZWZhdWx0O1xuJGZvcm1zOiAoKSAhZGVmYXVsdDtcblxuLy8tLS0tLSBUb3AgQmFyXG4kdG9wLWJhci1oaWRlLW9uLW1vYmlsZTogdHJ1ZSAhZGVmYXVsdDtcbiR0b3AtYmFyLWhpZGUtb24tc2Nyb2xsLW1vYmlsZTogdHJ1ZSAhZGVmYXVsdDtcbiR0b3AtYmFyLWhpZGUtb24tc2Nyb2xsLWRlc2t0b3A6ICR0b3AtYmFyLWhpZGUtb24tc2Nyb2xsLW1vYmlsZSAhZGVmYXVsdDtcbiR0b3AtYmFyLXBhZGRpbmcteDogJGNvbnRhaW5lci1wYWRkaW5nLXggIWRlZmF1bHQ7XG4kdG9wLWJhci1wYWRkaW5nLXk6IC41cmVtICFkZWZhdWx0O1xuJHRvcC1iYXItaGVpZ2h0OiBpZihudWxsICE9IGluZGV4KCRtZW51cywgXCJzZWNvbmRhcnlcIiksIDIuNXJlbSwgMS41cmVtKSAhZGVmYXVsdDtcbiR0b3AtYmFyLW9wYWNpdHk6IDEgIWRlZmF1bHQ7XG4kdG9wLWJhci1zb2NpYWwtbGlua3MtbWFyZ2luOiBtYXAtZ2V0KCRzcGFjZXJzLCA0KSAhZGVmYXVsdDtcbiR0b3AtYmFyLWRlZmF1bHQtYmctY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR0b3AtYmFyLXRyYW5zcGFyZW50LWhlYWRlci1iZy1jb2xvcjogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gSGVhZGVyXG4kaGVhZGVyLWJ0bi1pY29uOiAkZmEtdmFyLXBob25lICFkZWZhdWx0O1xuJGhlYWRlci1idG4tZmEtc3R5bGU6IFwic29saWRcIiAhZGVmYXVsdDtcbiRoZWFkZXItYnRuLXNob3ctdGV4dC1icmVha3BvaW50OiAkZGVza3RvcC1icmVha3BvaW50ICFkZWZhdWx0O1xuXG4vLy0tLS0tIEZlYXR1cmVkIGltYWdlXG4kZmVhdHVyZWQtaW1hZ2UtaGVpZ2h0OiA1MHZoICFkZWZhdWx0O1xuJGhvbWUtZmVhdHVyZWQtaW1hZ2UtaGVpZ2h0OiA1MHZoICFkZWZhdWx0O1xuJGZlYXR1cmVkLWltYWdlLW92ZXJsYXktY29sb3I6IGJsYWNrICFkZWZhdWx0O1xuJGZlYXR1cmVkLWltYWdlLW92ZXJsYXktb3BhY2l0eTogLjMgIWRlZmF1bHQ7XG4kaG9tZS1mZWF0dXJlZC1pbWFnZS10ZXh0LXRyYW5zaXRpb246IHRydWUgIWRlZmF1bHQ7XG4kaG9tZS1mZWF0dXJlZC1pbWFnZS10ZXh0LWFuaW1hdGlvbi1kdXJhdGlvbjogMS41cyAhZGVmYXVsdDtcblxuLy8tLS0tLSBDb250ZW50IEFib3ZlXG4kY29udGVudC1hYm92ZS10ZXh0LWNvbG9yOiB3aGl0ZSAhZGVmYXVsdDtcblxuLy8tLS0tLSBTaGFwZXNcbi8vIHBvc3NpYmxlIHNoYXBlcyBhcmU6IChzcXVhcmUsIGNpcmNsZSwgdHJpYW5nbGUsIGxvemVuZ2UpXG4vLyBwb3NzaWJsZSB1bml0cyBhcmU6IChyZW06IDFyZW0sIGVtOiAxZW0sIHZ3OiAyLjV2dylcbiRzaGFwZXM6IChjaXJjbGUpICFkZWZhdWx0O1xuJHNoYXBlcy11bml0czogKHJlbTogMXJlbSkgIWRlZmF1bHQ7XG4kc2hhcGVzLWRlZmF1bHQtdW5pdDogbnRoKG50aCgkc2hhcGVzLXVuaXRzLCAxKSwgMikgIWRlZmF1bHQ7XG4kc2hhcGVzLW1heC1tdWx0aXBsaWVyOiAxMCAhZGVmYXVsdDtcblxuLy8tLS0tLSBUZXh0IGNvbnRyYXN0XG4kYWxwaGEtZW5hYmxlLWJ0bi1jbG9zZS10ZXh0LWNvbnRyYXN0LWNvbG9yczogZmFsc2UgIWRlZmF1bHQ7XG4kYWxwaGEtYnRuLWNsb3NlLXRleHQtY29udHJhc3QtY29sb3JzOiAkdGhlbWUtY29sb3JzICFkZWZhdWx0O1xuXG4vLy0tLS0tIFRleHQgc2hhZG93XG4kYWxwaGEtdGV4dC1zaGFkb3ctY29sb3I6IGNvbG9yLWNvbnRyYXN0KHdoaXRlKSAhZGVmYXVsdDtcbiRhbHBoYS10ZXh0LXNoYWRvdy1yYWRpdXM6IC41cmVtICFkZWZhdWx0O1xuJGFscGhhLXRleHQtc2hhZG93LXJhZGl1cy1zbTogLjI1cmVtICFkZWZhdWx0O1xuJGFscGhhLXRleHQtc2hhZG93LXJhZGl1cy1sZzogMXJlbSAhZGVmYXVsdDtcbiRhbHBoYS10ZXh0LXNoYWRvdy1jb2xvcnM6ICgpICFkZWZhdWx0O1xuXG4vLy0tLS0tIE92ZXJsYXlcbiRhbHBoYS1vdmVybGF5LWNvbG9yOiAkbW9kYWwtYmFja2Ryb3AtYmcgIWRlZmF1bHQ7XG4kYWxwaGEtb3ZlcmxheS1vcGFjaXR5OiAkbW9kYWwtYmFja2Ryb3Atb3BhY2l0eSAhZGVmYXVsdDtcbiRhbHBoYS1vdmVybGF5LWNvbG9yczogKCkgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gWiBpbmRleFxuJGFscGhhLXotaW5kZXhlczogKDEsIDIsIDEwKSAhZGVmYXVsdDtcblxuLy8tLS0tLSBTaWRlYmFyXG4kc2lkZWJhcjogZmFsc2UgIWRlZmF1bHQ7XG4kc2lkZWJhci1iZy1jb2xvcjogcmdiYSgkcHJpbWFyeSwgLjEpICFkZWZhdWx0O1xuJHNpZGViYXItcGFkZGluZzogbWFwLWdldCgkc3BhY2VycywgMykgIWRlZmF1bHQ7XG4kc2lkZWJhci1ib3JkZXItcmFkaXVzOiAuMzc1cmVtICFkZWZhdWx0O1xuJHNpZGViYXItd2lkZ2V0cy1zcGFjZXI6IG1hcC1nZXQoJHNwYWNlcnMsIDYpICFkZWZhdWx0O1xuJHNpZGViYXItd2lkZ2V0LWNvbnRlbnQtc3BhY2VyOiBtYXAtZ2V0KCRzcGFjZXJzLCAyKSAhZGVmYXVsdDtcbiRzaWRlYmFyLXdpZGdldC10aXRsZS1zcGFjZXI6IG1hcC1nZXQoJHNwYWNlcnMsIDMpICFkZWZhdWx0O1xuJHNpZGViYXItd2lkZ2V0LXRpdGxlLWZvbnQtc2l6ZTogJGgzLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRzaWRlYmFyLXdpZGdldC1saXN0LWZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcblxuLy8tLS0tLSBTdXJ0aXRsZVxuJGFscGhhLXN1cnRpdGxlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Fucy1zZXJpZiAhZGVmYXVsdDtcbiRhbHBoYS1zdXJ0aXRsZS1mb250LXNpemU6ICRmb250LXNpemUtYmFzZSAhZGVmYXVsdDtcbiRhbHBoYS1zdXJ0aXRsZS1mb250LXNpemUtZGVza3RvcDogJGFscGhhLXN1cnRpdGxlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRhbHBoYS1zdXJ0aXRsZS1mb250LXdlaWdodDogbm9ybWFsICFkZWZhdWx0O1xuJGFscGhhLXN1cnRpdGxlLWNvbG9yOiB2YXIoLS1icy1wcmltYXJ5KSAhZGVmYXVsdDtcbiRhbHBoYS1zdXJ0aXRsZS1tYXJnaW4tYm90dG9tOiBtYXAtZ2V0KCRzcGFjZXJzLCA0KSAhZGVmYXVsdDtcbiRhbHBoYS1zdXJ0aXRsZS10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuXG4vLy0tLS0tIENvcHlyaWdodFxuJGFscGhhLWNvcHlyaWdodC1mb250LXNpemU6IC44MjVyZW0gIWRlZmF1bHQ7XG4kYWxwaGEtY29weXJpZ2h0LWxpbmstaG92ZXItY29sb3I6IHZhcigtLXRoZW1lLXNraW4tdGV4dC1jb2xvcikgIWRlZmF1bHQ7XG4kYWxwaGEtY29weXJpZ2h0LWxpbmstdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuXG4vLy0tLS0tIE5hdmlnYXRpb25zXG4vLy0tLS0gQ29tbW9uXG4kbmF2LWxpbmstYWZ0ZXItaGVpZ2h0OiAycHggIWRlZmF1bHQ7XG5cbi8vLS0tLSBDZW50ZXJcbiRuYXYtY2VudGVyLWxvZ28tcGFkZGluZy14OiAxcmVtICFkZWZhdWx0O1xuJG5hdi1jZW50ZXItbG9nby1wYWRkaW5nLXk6IDAgIWRlZmF1bHQ7XG5cbi8vLS0tLSBTdWJtZW51IG1vcnBoXG4kc3VibWVudS1tb3JwaC1taW4td2lkdGg6IDM1MHB4ICFkZWZhdWx0O1xuJHN1Ym1lbnUtbW9ycGgtbWF4LXdpZHRoOiAzNXZ3ICFkZWZhdWx0O1xuJHN1Ym1lbnUtbW9ycGgtZHJvcGRvd24tbGlzdC1ib3JkZXItcmFkaXVzOiAuNXJlbSAhZGVmYXVsdDtcbiRzdWJtZW51LW1vcnBoLWRyb3Bkb3duLWxpc3QtcGFkZGluZzogLjVyZW0gIWRlZmF1bHQ7XG4kc3VibWVudS1tb3JwaC1kcm9wZG93bi1saXN0LWJnLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kc3VibWVudS1tb3JwaC1kcm9wZG93bi1saXN0LWJveC1zaGFkb3c6IHZhcigtLWJzLWJveC1zaGFkb3cpICFkZWZhdWx0O1xuJHN1Ym1lbnUtbW9ycGgtZHJvcGRvd24tbGlzdC1hcnJvdy1oZWlnaHQ6IC43NXJlbSAhZGVmYXVsdDtcbiRzdWJtZW51LW1vcnBoLWRyb3Bkb3duLWxpc3QtYXJyb3ctbGVmdDogNXJlbSAhZGVmYXVsdDtcbiRzdWJtZW51LW1vcnBoLWFjdGl2ZS1tZW51LWJnLWNvbG9yOiAkZ3JheS0xMDAgIWRlZmF1bHQ7XG4kc3VibWVudS1tb3JwaC1hbmNlc3RvcnMtZm9udC13ZWlnaHQ6IDUwMCAhZGVmYXVsdDtcbiRzdWJtZW51LW1vcnBoLWxpbmstY29sb3I6ICRuYXYtbGluay1jb2xvciAhZGVmYXVsdDtcbiRzdWJtZW51LW1vcnBoLWxpbmstaG92ZXItY29sb3I6ICRuYXYtbGluay1ob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRzdWJtZW51LW1vcnBoLWxpbmstY29sb3ItY3VycmVudDogJG5hdi1jb2xvci1jdXJyZW50ICFkZWZhdWx0O1xuJHN1Ym1lbnUtbW9ycGgtbGluay1jb2xvci1hbmNlc3RvcjogJG5hdi1jb2xvci1hbmNlc3RvciAhZGVmYXVsdDtcbiRzdWJtZW51LW1vcnBoLXNjcm9sbGJhci1jb2xvcjogJHByaW1hcnkgIWRlZmF1bHQ7XG4kc3VibWVudS1tb3JwaC1zY3JvbGxiYXItYmctY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8tLS0tLSBCcmVhZGNydW1ic1xuJGJyZWFkY3J1bWItbW9iaWxlLXNoYWRvdy1zaXplOiAxLjVyZW0gIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1tb2JpbGUtc2hhZG93LWNvbG9yOiAkYm9keS1iZyAhZGVmYXVsdDtcbiRicmVhZGNydW1iLW9uLWZlYXR1cmVkLW1vYmlsZS1zaGFkb3ctY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8tLS0tLSBUZWFzZVxuJHRlYXNlLWJhZGdlLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdGVhc2UtYmFkZ2UtYmc6IHZhcigtLWJzLXByaW1hcnkpICFkZWZhdWx0O1xuXG4kdGVhc2Utb3ZlcmxheS10ZXh0LWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdGVhc2Utb3ZlcmxheS10ZXh0LXNoYWRvdzogMCAwIC4yNXJlbSAjMDAwO1xuJHRlYXNlLW92ZXJsYXktYmctY29sb3I6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XG4kdGVhc2Utb3ZlcmxheS1iZy1vcGFjaXR5OiAuNSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gV29vQ29tbWVyY2VcblxuJHdjLXByaW1hcnk6IHZhcigtLWJzLXByaW1hcnkpICFkZWZhdWx0O1xuJHdvb2NvbW1lcmNlOiB2YXIoLS1icy1wcmltYXJ5KSAhZGVmYXVsdDtcbiR3Yy1ncmVlbjogJHN1Y2Nlc3MgIWRlZmF1bHQ7XG4kd2MtcmVkOiAkZGFuZ2VyICFkZWZhdWx0O1xuJHdjLW9yYW5nZTogJHdhcm5pbmcgIWRlZmF1bHQ7XG4kd2MtYmx1ZTogJGluZm8gIWRlZmF1bHQ7XG4kd2MtcHJpbWFyeS10ZXh0OiAkd2hpdGUgIWRlZmF1bHQ7XG4kd2Mtc2Vjb25kYXJ5OiAkc2Vjb25kYXJ5ICFkZWZhdWx0O1xuJHdjLXNlY29uZGFyeS10ZXh0OiAkd2hpdGUgIWRlZmF1bHQ7XG4kd2MtaGlnaGxpZ2h0OiAjYjNhZjU0ICFkZWZhdWx0O1xuJHdjLWhpZ2hsaWdodC10ZXh0OiAkd2hpdGUgIWRlZmF1bHQ7XG4kd2MtY29udGVudC1iZzogI2ZmZiAhZGVmYXVsdDtcbiR3Yy1zdWJ0ZXh0OiAjNzY3Njc2ICFkZWZhdWx0O1xuXG4kd2Mtc3RvY2staW4tc3RvY2stY29sb3I6ICR3Yy1ncmVlbiAhZGVmYXVsdDtcbiR3Yy1zdG9jay1sb3ctc3RvY2stY29sb3I6ICR3Yy1vcmFuZ2UgIWRlZmF1bHQ7XG4kd2Mtc3RvY2stYXZhaWxhYmxlLW9uLWJhY2tvcmRlci1jb2xvcjogJHdjLW9yYW5nZSAhZGVmYXVsdDtcbiR3Yy1zdG9jay1vdXQtb2Ytc3RvY2stY29sb3I6ICR3Yy1yZWQgIWRlZmF1bHQ7XG5cbiR3Yy1zdG9jay1pbi1zdG9jay1pY29uOiAkZmEtdmFyLWNpcmNsZS1jaGVjayAhZGVmYXVsdDtcbiR3Yy1zdG9jay1sb3ctc3RvY2staWNvbjogJGZhLXZhci1jaGFydC1saW5lLWRvd24gIWRlZmF1bHQ7XG4kd2Mtc3RvY2stYXZhaWxhYmxlLW9uLWJhY2tvcmRlci1pY29uOiAkZmEtdmFyLWNsb2NrLXJvdGF0ZS1sZWZ0ICFkZWZhdWx0O1xuJHdjLXN0b2NrLW91dC1vZi1zdG9jay1pY29uOiAkZmEtdmFyLWNpcmNsZS14bWFyayAhZGVmYXVsdDtcblxuLy8gYmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3Igb2xkICR3b29jb21tZXJjZSAmICR3b29jb21tZXJjZVNpZGViYXIgdmFyaWFibGVzXG5AaWYgdHlwZS1vZigkd29vY29tbWVyY2UpID09IFwiYm9vbFwiIHtcbiAgQHdhcm4gXCJVc2FnZSBvZiAkd29vY29tbWVyY2UgdmFyaWFibGUgYXMgYm9vbCBpcyBkZXByZWNhdGVkLCB1c2Ugd29vY29tbWVyY2UuZW5hYmxlZCBpbiB3b29jb21tZXJjZS55YW1sIGluc3RlYWQuXCI7XG4gICR3b29jb21tZXJjZTogbWFwLWV4dGVuZChtYXAtZ2V0KCRjb25maWctZGVmYXVsdHMsIFwid29vY29tbWVyY2VcIiksIChlbmFibGVkOiAkd29vY29tbWVyY2UpKTtcbiAgJHdvb2NvbW1lcmNlLWVuYWJsZWQ6IG1hcC1nZXQtZGVlcCgkd29vY29tbWVyY2UsIFwiZW5hYmxlZFwiKTtcbn1cblxuQGlmIHZhcmlhYmxlLWV4aXN0cyh3b29jb21tZXJjZVNpZGViYXIpIHtcbiAgQHdhcm4gXCJVc2FnZSBvZiAkd29vY29tbWVyY2VTaWRlYmFyIHZhcmlhYmxlIGRlcHJlY2F0ZWQsIHVzZSAkd29vY29tbWVyY2Utc2lkZWJhciBpbnN0ZWFkLlwiO1xuICAkd29vY29tbWVyY2Utc2lkZWJhcjogJHdvb2NvbW1lcmNlU2lkZWJhcjtcbn1cblxuLy8gQWNjb3VudFxuJGFjY291bnQtbmF2aWdhdGlvbi1pY29uczogKFxuICBkYXNoYm9hcmQ6ICRmYS12YXItaG9tZSxcbiAgb3JkZXJzOiAkZmEtdmFyLWRvbGx5LFxuICBzdWJzY3JpcHRpb25zOiAkZmEtdmFyLWNsb2NrLXJvdGF0ZS1sZWZ0LFxuICBtZW1iZXJzaGlwczogJGZhLXZhci11c2VyLWNyb3duLFxuICBkb3dubG9hZHM6ICRmYS12YXItZG93bmxvYWQsXG4gIGVkaXQtYWRkcmVzczogJGZhLXZhci1tYXAtbWFya2VyLWVkaXQsXG4gIHBheW1lbnQtbWV0aG9kczogJGZhLXZhci1jcmVkaXQtY2FyZCxcbiAgZWRpdC1hY2NvdW50OiAkZmEtdmFyLXVzZXItZWRpdCxcbiAgYm9va2luZ3M6ICRmYS12YXItY2FsZW5kYXItYWx0LFxuICBjdXN0b21lci1sb2dvdXQ6ICRmYS12YXItc2lnbi1vdXRcbikgIWRlZmF1bHQ7XG5cbi8vIEF0dHJpYnV0ZXNcbiR3Yy1wcm9kdWN0LWF0dHJpYnV0ZS1mb250LXNpemU6IC45cmVtICFkZWZhdWx0O1xuJHdjLXByb2R1Y3QtYXR0cmlidXRlLWV2ZW4tYmc6IHJnYmEoJHByaW1hcnksIC4xKSAhZGVmYXVsdDtcbiR3Yy1wcm9kdWN0LWF0dHJpYnV0ZS1sYWJlbC1jb2xvcjogJGdyYXktNzAwICFkZWZhdWx0O1xuXG4vLyBBdmFpbGFiaWxpdHlcbiR3Yy1zdG9jay1mb250LXNpemU6IC44cmVtICFkZWZhdWx0O1xuJHdjLXN0b2NrLWljb24td2lkdGg6ICRmYS1mdy13aWR0aCAhZGVmYXVsdDtcbiR3Yy1zdG9jay1pY29uLWZvbnQtc2l6ZTogJGZhLXNpemUtc2NhbGUtYmFzZSAhZGVmYXVsdDtcbiR3Yy1zdG9jay1pbmZvOiAoXG4gIGluLXN0b2NrOiAoY29sb3I6ICR3Yy1zdG9jay1pbi1zdG9jay1jb2xvciwgaWNvbjogJHdjLXN0b2NrLWluLXN0b2NrLWljb24pLFxuICBsb3ctc3RvY2s6IChjb2xvcjogJHdjLXN0b2NrLWxvdy1zdG9jay1jb2xvciwgaWNvbjogJHdjLXN0b2NrLWxvdy1zdG9jay1pY29uKSxcbiAgYXZhaWxhYmxlLW9uLWJhY2tvcmRlcjogKGNvbG9yOiAkd2Mtc3RvY2stYXZhaWxhYmxlLW9uLWJhY2tvcmRlci1jb2xvciwgaWNvbjogJHdjLXN0b2NrLWF2YWlsYWJsZS1vbi1iYWNrb3JkZXItaWNvbiksXG4gIG91dC1vZi1zdG9jazogKGNvbG9yOiAkd2Mtc3RvY2stb3V0LW9mLXN0b2NrLWNvbG9yLCBpY29uOiAkd2Mtc3RvY2stb3V0LW9mLXN0b2NrLWljb24pLFxuKSAhZGVmYXVsdDtcblxuXG4vLy0tLS0tIEFkZCB0byBDYXJ0IGJ1dHRvblxuJGJ0bi1hZGR0b2NhcnQtYmc6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJ0bi1hZGR0b2NhcnQtY29sb3I6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XG4kYnRuLWFkZHRvY2FydC1ob3Zlci1iZzogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kYnRuLWFkZHRvY2FydC1ob3Zlci1jb2xvcjogdmFyKC0tYnMtcHJpbWFyeSkgIWRlZmF1bHQ7XG4kYnRuLWFkZHRvY2FydC1pY29uczogKFxuICBzaW1wbGU6ICRmYS12YXItc2hvcHBpbmctYmFza2V0LFxuICBncm91cGVkOiAkZmEtdmFyLWV5ZSxcbiAgdmFyaWFibGU6ICRmYS12YXItY29ncyxcbiAgYm9va2luZzogJGZhLXZhci1jYWxlbmRhci1kYXlzLFxuKSAhZGVmYXVsdDtcblxuLy8tLS0tLSBCb29raW5nXG4kd2MtYm9va2luZy1kYXRlcGlja2VyLXVpLWJnOiAkc2Vjb25kYXJ5ICFkZWZhdWx0O1xuJHdjLWJvb2tpbmctZGF0ZXBpY2tlci11aS1jb2xvcjogY29sb3ItY29udHJhc3QoJHdjLWJvb2tpbmctZGF0ZXBpY2tlci11aS1iZykgIWRlZmF1bHQ7XG4kd2MtYm9va2luZy1kYXRlcGlja2VyLWJsb2NrLW9kZC1iZzogJGdyYXktMTAwICFkZWZhdWx0O1xuJHdjLWJvb2tpbmctZGF0ZXBpY2tlci1ibG9jay1vZGQtaG92ZXItYmc6IHNoYWRlLWNvbG9yKCR3Yy1ib29raW5nLWRhdGVwaWNrZXItYmxvY2stb2RkLWJnLCAyMCUpICFkZWZhdWx0O1xuJHdjLWJvb2tpbmctZGF0ZXBpY2tlci1ibG9jay1vZGQtY29sb3I6IGNvbG9yLWNvbnRyYXN0KCR3Yy1ib29raW5nLWRhdGVwaWNrZXItYmxvY2stb2RkLWJnKSAhZGVmYXVsdDtcbiR3Yy1ib29raW5nLWRhdGVwaWNrZXItYmxvY2stZXZlbi1iZzogJGdyYXktMjAwICFkZWZhdWx0O1xuJHdjLWJvb2tpbmctZGF0ZXBpY2tlci1ibG9jay1ldmVuLWhvdmVyLWJnOiBzaGFkZS1jb2xvcigkd2MtYm9va2luZy1kYXRlcGlja2VyLWJsb2NrLWV2ZW4tYmcsIDIwJSkgIWRlZmF1bHQ7XG4kd2MtYm9va2luZy1kYXRlcGlja2VyLWJsb2NrLWV2ZW4tY29sb3I6IGNvbG9yLWNvbnRyYXN0KCR3Yy1ib29raW5nLWRhdGVwaWNrZXItYmxvY2stZXZlbi1iZykgIWRlZmF1bHQ7XG4kd2MtYm9va2luZy1jb3N0LWJnOiAkZ3JheS0xMDAgIWRlZmF1bHQ7XG4kd2MtYm9va2luZy1jb3N0LWNvbG9yOiBjb2xvci1jb250cmFzdCgkd2MtYm9va2luZy1jb3N0LWJnKSAhZGVmYXVsdDtcblxuLy8tLS0tLSBQcmljZSBDb2xvclxuJHdjLXByaWNlLWNvbG9yOiAkc2Vjb25kYXJ5ICFkZWZhdWx0O1xuJHdjLWRlbC1wcmljZS1jb2xvcjogcmdiYSgkZ3JheS01MDAsIC42KSAhZGVmYXVsdDtcblxuLy8tLS0tLSBEaXNjb3VudCBiYWRnZVxuJGJhZGdlLW9uc2FsZS1iZzogJHNlY29uZGFyeSAhZGVmYXVsdDtcbiRiYWRnZS1vbnNhbGUtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8tLS0tLSBNaW5pIENhcnRcbiRtaW5pY2FydC1jb3VudGVyLWJnOiAkc2Vjb25kYXJ5ICFkZWZhdWx0O1xuJG1pbmljYXJ0LWNvdW50ZXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRtaW5pY2FydC10b3RhbC1iZzogJHNlY29uZGFyeSAhZGVmYXVsdDtcbiRtaW5pY2FydC10b3RhbC1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJG1pbmljYXJ0LWl0ZW0tY29sb3I6IHZhcigtLWJzLXByaW1hcnkpICFkZWZhdWx0O1xuJG1pbmljYXJ0LXF0eS1jb2xvcjogdmFyKC0tYnMtYm9keS1jb2xvcikgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gQ2FydFxuJGNhcnQtYnRuLWFjdGlvbnMtYmc6ICRwcmltYXJ5ICFkZWZhdWx0O1xuJGNhcnQtYnRuLWNoZWNrb3V0LWJnOiAkc2Vjb25kYXJ5ICFkZWZhdWx0O1xuXG4vLy0tLS0tIE1lc3NhZ2VcbiR3Yy1tZXNzYWdlLWJnLWNvbG9yOiAkZ3JheS0xMDAgIWRlZmF1bHQ7XG4kd2MtbWVzc2FnZS1jb2xvcjogdmFyKC0tYnMtYm9keS1jb2xvcikgIWRlZmF1bHQ7XG4kd2MtbWVzc2FnZS1pY29uLWNvbG9yOiAkZ3JlZW4gIWRlZmF1bHQ7XG5cbiR3Yy1pbmZvLWJnLWNvbG9yOiAkZ3JheS0xMDAgIWRlZmF1bHQ7XG4kd2MtaW5mby1jb2xvcjogdmFyKC0tYnMtYm9keS1jb2xvcikgIWRlZmF1bHQ7XG4kd2MtaW5mby1pY29uLWNvbG9yOiAkYmx1ZSAhZGVmYXVsdDtcblxuJHdjLWVycm9yLWJnLWNvbG9yOiAkZ3JheS0xMDAgIWRlZmF1bHQ7XG4kd2MtZXJyb3ItY29sb3I6IHZhcigtLWJzLWJvZHktY29sb3IpICFkZWZhdWx0O1xuJHdjLWVycm9yLWljb24tY29sb3I6IHJlZCAhZGVmYXVsdDtcblxuLy8tLS0tLSBTaWRlYmFyXG4kd2Mtc2lkZWJhci1tb2JpbGUtY29sb3I6IHdoaXRlICFkZWZhdWx0O1xuJHdjLXNpZGViYXItbW9iaWxlLWJhY2stdG9wLW9mZnNldC15OiAzcmVtICFkZWZhdWx0O1xuJHdjLXNpZGViYXItY29sb3I6IHJnYmEoJHByaW1hcnksIC4xKSAhZGVmYXVsdDtcbiR3Yy1maWx0ZXItdG9nZ2xlci1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJHdjLWZpbHRlci10b2dnbGVyLWJnOiAkcHJpbWFyeSAhZGVmYXVsdDtcbiR3Yy1jYXQtbGluay1iZzogJGdyYXktMTAwICFkZWZhdWx0O1xuJHdjLWNhdC1saW5rLWhvdmVyLWJnOiB2YXIoLS1icy1wcmltYXJ5KSAhZGVmYXVsdDtcbiR3Yy1jYXQtbGluay1ob3Zlci1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJHdjLXNpZGViYXItY3VycmVudC10ZXJtLWxpbmstY29sb3I6ICRuYXYtY29sb3ItY3VycmVudCAhZGVmYXVsdDtcbiR3Yy1zaWRlYmFyLWN1cnJlbnQtdGVybS1saW5rLWhvdmVyLWNvbG9yOiB0aW50LWNvbG9yKCR3Yy1zaWRlYmFyLWN1cnJlbnQtdGVybS1saW5rLWNvbG9yLCAxMCUpICFkZWZhdWx0O1xuJHdjLXNpZGViYXItY3VycmVudC10ZXJtLXBhcmVudC1saW5rLWNvbG9yOiAkbmF2LWNvbG9yLWFuY2VzdG9yICFkZWZhdWx0O1xuJHdjLXNpZGViYXItY3VycmVudC10ZXJtLXBhcmVudC1saW5rLWhvdmVyLWNvbG9yOiB0aW50LWNvbG9yKCR3Yy1zaWRlYmFyLWN1cnJlbnQtdGVybS1wYXJlbnQtbGluay1jb2xvciwgMTAlKSAhZGVmYXVsdDtcblxuLy8tLS0tLSBUb3AgYmFyIGljb25zXG4vLy0tLS0tIFRvcCBiYXIgaWNvbnNcbiR0b3AtYmFyLWljb25zOiAoY29udGFjdDogJGZhLXZhci1lbnZlbG9wZSwgcGhvbmU6ICRmYS12YXItcGhvbmUtYWx0KSAhZGVmYXVsdDtcbiR0b3AtYmFyLWljb25zLW1hcmdpbjogLjI1cmVtICFkZWZhdWx0O1xuJHRvcC1iYXItaWNvbnMtZmEtdmFyaWFudDogXCJzb2xpZFwiICFkZWZhdWx0O1xuJHdjLXRvcC1iYXItaWNvbnM6ICR0b3AtYmFyLWljb25zICFkZWZhdWx0O1xuJHdjLXRvcC1iYXItaWNvbnMtbWFyZ2luOiAkdG9wLWJhci1pY29ucy1tYXJnaW4gIWRlZmF1bHQ7XG4kd2MtdG9wLWJhci1pY29ucy1mYS12YXJpYW50OiAkdG9wLWJhci1pY29ucy1mYS12YXJpYW50ICFkZWZhdWx0O1xuXG4vLy0tLS0tIFRlYXNlXG4kd2MtdGVhc2UtcHJvZHVjdC1iZy1jb2xvcjogJHdoaXRlICFkZWZhdWx0O1xuJHdjLXRlYXNlLXByb2R1Y3QtYm9yZGVyLXJhZGl1czogbWFwLWdldCgkc3BhY2VycywgMikgIWRlZmF1bHQ7XG4kd2MtdGVhc2UtcHJvZHVjdC1saW5rLXBhZGRpbmc6IG1hcC1nZXQoJHNwYWNlcnMsIDIpICFkZWZhdWx0O1xuJHdjLXRlYXNlLXByb2R1Y3QtbGluay1pbWFnZS1wYWRkaW5nOiAkd2MtdGVhc2UtcHJvZHVjdC1saW5rLXBhZGRpbmcgKiAtMSAhZGVmYXVsdDtcbiR3Yy10ZWFzZS1wcm9kdWN0LWhvdmVyLWJvcmRlci1jb2xvcjogJHNlY29uZGFyeSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gU29jaWFsIHNoYXJlIGljb25zXG4kc29jaWFsLXNoYXJlLWhvdmVyLWJvcmRlci1jb2xvcjogcmdiYSgkcHJpbWFyeSwgLjUpICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBXUE1MXG4kd3BtbC1kZXY6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBBbHBoYSBibG9ja3Ncbi8vLS0tLS0gRmFjZWJvb2sgdmlkZW9cbiRhbHBoYS1mYi12aWRlby1sb2FkZXItYmctY29sb3I6ICRwcmltYXJ5ICFkZWZhdWx0O1xuJGFscGhhLWZiLXZpZGVvLWxvYWRlci1jb2xvcjogY29sb3ItY29udHJhc3QoJGFscGhhLWZiLXZpZGVvLWxvYWRlci1iZy1jb2xvcikgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gR29vZ2xlIFJldmlld3NcbiRnb29nbGUtcmV2aWV3cy1ib3JkZXItdG9wOiA2cHggc29saWQgIzRmY2U2YSAhZGVmYXVsdDtcbiRnb29nbGUtcmV2aWV3cy1ib3JkZXItcmFkaXVzOiAuMTVyZW0gIWRlZmF1bHQ7XG4kZ29vZ2xlLXJldmlld3MtbG9nby13aWR0aDogNTBweCAhZGVmYXVsdDtcbiRnb29nbGUtcmV2aWV3cy1zY29yZS1mb250LXNpemU6IDEuMjVyZW0gIWRlZmF1bHQ7XG4kZ29vZ2xlLXJldmlld3MtcmF0aW5nLXN0YXItY29sb3I6ICNlNzcxMWIgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJldmlld3MtcmF0aW5nLWNvdW50LWNvbG9yOiAjN2E3YTdhICFkZWZhdWx0O1xuJGdvb2dsZS1yZXZpZXdzLXotaW5kZXg6IDIwMDAgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJldmlld3Mtb2Zmc2V0OiAycmVtICFkZWZhdWx0O1xuJGdvb2dsZS1yZXZpZXdzLW9mZnNldC1ib3R0b206ICRnb29nbGUtcmV2aWV3cy1vZmZzZXQgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJldmlld3Mtb2Zmc2V0LWxlZnQ6ICRnb29nbGUtcmV2aWV3cy1vZmZzZXQgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJldmlld3Mtb2Zmc2V0LXJpZ2h0OiAkZ29vZ2xlLXJldmlld3Mtb2Zmc2V0ICFkZWZhdWx0O1xuJGdvb2dsZS1iYWRnZS1kaXNwbGF5OiBibG9jayAhZGVmYXVsdDtcbiRnb29nbGUtcmV2aWV3cy1iYWRnZS1oaWRlLW9uLW1vYmlsZTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8tLS0tLSBIZXJvIGJhbm5lclxuJGFscGhhLWhlcm8tYmFubmVyLW9mZnNldC15OiAzLjVyZW0gIWRlZmF1bHQ7XG4kYWxwaGEtaGVyby1iYW5uZXItb2Zmc2V0LXRvcDogJGFscGhhLWhlcm8tYmFubmVyLW9mZnNldC15ICFkZWZhdWx0O1xuJGFscGhhLWhlcm8tYmFubmVyLW9mZnNldC1ib3R0b206ICRhbHBoYS1oZXJvLWJhbm5lci1vZmZzZXQteSAhZGVmYXVsdDtcblxuLy8tLS0tLSBJY29uXG4kaWNvbi1ibG9jay1pY29uLWNvbG9yOiB2YXIoLS1icy1wcmltYXJ5KSAhZGVmYXVsdDtcblxuLy8tLS0tLSBNYXBcbiRhbHBoYS1tYXAtZGVmYXVsdC1oZWlnaHQ6IDI1MHB4ICFkZWZhdWx0O1xuJGFscGhhLW1hcC1kZWZhdWx0LWhlaWdodC1sZzogJGFscGhhLW1hcC1kZWZhdWx0LWhlaWdodCAqIDIgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gUmF0aW5nXG4kYWxwaGEtcmF0aW5nLXN0YXItb24tY29sb3I6ICR5ZWxsb3cgIWRlZmF1bHQ7XG4kYWxwaGEtcmF0aW5nLXN0YXItb2ZmLWNvbG9yOiAkZ3JheS0xMDAgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gUmVpbnN1cmFuY2Vcbi8vLS0tLSBTb3ViYSBNYWdhc3NhIHN0eWxlc1xuJHNvdWJhLXJlaW5zdXJhbmNlLWNvbG9yczogKHByaW1hcnksIHNlY29uZGFyeSkgIWRlZmF1bHQ7XG4kc291YmEtcmVpbnN1cmFuY2UtdG9wLW9mZnNldDogMnJlbSAhZGVmYXVsdDtcblxuLy8tLS0tLSBTZXJ2aWNlc1xuJHNlcnZpY2VzLWJnLWhvdmVyLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kc2VydmljZXMtYmctaG92ZXItY29sb3ItbGlnaHQ6ICRzZXJ2aWNlcy1iZy1ob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRzZXJ2aWNlcy1iZy1ob3Zlci1jb2xvci1kYXJrOiAkc2VydmljZXMtYmctaG92ZXItY29sb3IgIWRlZmF1bHQ7XG4kc2VydmljZXMtYmctaG92ZXItb3BhY2l0eTogMSAhZGVmYXVsdDtcbiRzZXJ2aWNlcy1iZy1ob3Zlci1vcGFjaXR5LWxpZ2h0OiAkc2VydmljZXMtYmctaG92ZXItb3BhY2l0eSAhZGVmYXVsdDtcbiRzZXJ2aWNlcy1iZy1ob3Zlci1vcGFjaXR5LWRhcms6IC4yICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBBbHBoYSBtb2R1bGVzXG4vLy0tLS0tIENvbW1vblxuJGxvYWRpbmctbW9kdWxlcy1iZy1jb2xvcjogcmdiYSgkd2hpdGUsIC43NSkgIWRlZmF1bHQ7XG4kbG9hZGluZy1tb2R1bGVzLWxvYWRlci1jb2xvcjogdmFyKC0tYnMtcHJpbWFyeSkgIWRlZmF1bHQ7XG4kbG9hZGluZy1tb2R1bGVzLWxvYWRlci1mb250LXNpemU6IDJyZW0gIWRlZmF1bHQ7XG4kbG9hZGluZy1tb2R1bGVzLXotaW5kZXg6IDEwICFkZWZhdWx0O1xuXG4vLy0tLS0tIERlZmF1bHRcbi8vLS0tLSBQYWdlIHNjcm9sbFxuJGhvbWUtcGFnZS1zY3JvbGwtbGlzdGVuZXItaGVpZ2h0OiAxNXZoICFkZWZhdWx0O1xuJHBhZ2Utc2Nyb2xsLWxpc3RlbmVyLWhlaWdodDogJGhvbWUtcGFnZS1zY3JvbGwtbGlzdGVuZXItaGVpZ2h0IC8gMiAhZGVmYXVsdDtcbiRwYWdlLXNjcm9sbC1saXN0ZW5lci1oZWlnaHQtZGVza3RvcDogJGhvbWUtcGFnZS1zY3JvbGwtbGlzdGVuZXItaGVpZ2h0IC8gMyAhZGVmYXVsdDtcblxuLy8tLS0tLSBPcHRpb25hbFxuLy8tLS0tIEJhY2sgdG8gdG9wXG4kYmFjay10by10b3Atb2Zmc2V0LXg6IDFyZW0gIWRlZmF1bHQ7XG4kYmFjay10by10b3Atb2Zmc2V0LXk6IDFyZW0gIWRlZmF1bHQ7XG4kYmFjay10by10b3Atd2hhdHNhcHAtYnV0dG9uLW9mZnNldC15OiA0cmVtICFkZWZhdWx0O1xuJGJhY2stdG8tdG9wLWRlZmF1bHQtYnV0dG9uLXRyYW5zbGF0ZS15OiAkYmFjay10by10b3Atb2Zmc2V0LXkgKiAtMiAhZGVmYXVsdDtcblxuLy8tLS0tIEhlYWRlciBzdGF0ZXNcbi8vLS0tIFNocnVuayBsb2dvXG4kc2hydW5rLWxvZ28taGVpZ2h0LXJhdGlvOiAuOCAhZGVmYXVsdDtcblxuLy8tLS0tIFJhbmdlIHNsaWRlclxuJHJhbmdlLXNsaWRlci13cmFwcGVyLWhlaWdodDogM3JlbSAhZGVmYXVsdDtcblxuLy8tLS0tIFJvdXNxdWlsbGVcbiRyb3VzcXVpbGxlLWJhbm5lci1sb2dvLW1hcmdpbjogMCBhdXRvICFkZWZhdWx0O1xuJHJvdXNxdWlsbGUtYmFubmVyLWxvZ28tbWFyZ2luLXRhYmxldDogMCBhdXRvIG1hcC1nZXQoJHNwYWNlcnMsIDgpICFkZWZhdWx0O1xuJHJvdXNxdWlsbGUtYmFubmVyLWxvZ28tbWFyZ2luLW1vYmlsZTogMCBhdXRvIG1hcC1nZXQoJHNwYWNlcnMsIDQpICFkZWZhdWx0O1xuJHJvdXNxdWlsbGUtYmFubmVyLWxvZ28taGVpZ2h0OiAkbG9nby1oZWlnaHQgIWRlZmF1bHQ7XG4kcm91c3F1aWxsZS1iYW5uZXItbG9nby1tYXgtaGVpZ2h0OiA1cmVtICFkZWZhdWx0O1xuXG4vLy0tLS0gU2VydmljZXMgQnV0dG9uXG4kc2VydmljZXMtYnV0dG9uLW1vYmlsZS1vZmZzZXQ6IC41cmVtICFkZWZhdWx0O1xuJHNlcnZpY2VzLWJ1dHRvbi1kZXNrdG9wLW9mZnNldC1lbmQ6IDIuNXJlbSAhZGVmYXVsdDtcbiRzZXJ2aWNlcy1idXR0b24tZm9vdGVyLXBhZGRpbmctYm90dG9tOiA0LjVyZW0gIWRlZmF1bHQ7XG4kc2VydmljZXMtYnV0dG9uLWJhY2stdG8tdG9wLW9mZnNldC1ib3R0b206ICRzZXJ2aWNlcy1idXR0b24tZm9vdGVyLXBhZGRpbmctYm90dG9tICsgMXJlbSAhZGVmYXVsdDtcblxuLy8tLS0tIFN3aXBlclxuJHN3aXBlci10aGVtZS1jb2xvcjogdmFyKC0tYnMtcHJpbWFyeSkgIWRlZmF1bHQ7XG4kc3dpcGVyLW5hdmlnYXRpb24tc2l6ZTogMS43NXJlbSAhZGVmYXVsdDtcblxuLy8tLS0gVHJhbnNwYXJlbnQgSGVhZGVyXG4kdHJhbnNwYXJlbnQtaGVhZGVyLWJnLWNvbG9yOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAkZ3JheS03MDAsIHRyYW5zcGFyZW50KSAhZGVmYXVsdDtcbiR0cmFuc3BhcmVudC1oZWFkZXItdGV4dC1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcbiR0cmFuc3BhcmVudC1oZWFkZXItc2hhZG93LWNvbG9yOiAjMDAwICFkZWZhdWx0O1xuJHRyYW5zcGFyZW50LWhlYWRlci1zaGFkb3ctcmFkaXVzOiAuMTI1cmVtICFkZWZhdWx0O1xuJHRyYW5zcGFyZW50LWhlYWRlci1sb2dvLWNvbG9yOiAkdHJhbnNwYXJlbnQtaGVhZGVyLXRleHQtY29sb3IgIWRlZmF1bHQ7XG4kdHJhbnNwYXJlbnQtaGVhZGVyLWxvZ28tc2hhZG93LWNvbG9yOiAkdHJhbnNwYXJlbnQtaGVhZGVyLXNoYWRvdy1jb2xvciAhZGVmYXVsdDtcbiR0cmFuc3BhcmVudC1oZWFkZXItbG9nby1zaGFkb3ctcmFkaXVzOiAkdHJhbnNwYXJlbnQtaGVhZGVyLXNoYWRvdy1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLS0tLSBXaGF0c2FwcCBCdXR0b25cbiR3aGF0c2FwcC1idXR0b24tYmc6ICMyNWQzNjYgIWRlZmF1bHQ7XG4kd2hhdHNhcHAtYnV0dG9uLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kd2hhdHNhcHAtYnV0dG9uLW9mZnNldC14OiAxcmVtICFkZWZhdWx0O1xuJHdoYXRzYXBwLWJ1dHRvbi1vZmZzZXQteTogMXJlbSAhZGVmYXVsdDtcblxuLy8tLS0tIEltYWdlIEdhbGxlcnlcbi8vIFwib3ZlcmxheVwiLCBcImRlZmF1bHQtb3BhY2l0eVwiLCBcImhvdmVyLW9wYWNpdHlcIiwgXCJjdXN0b21cIlxuJGltYWdlLWdhbGxlcnktYW5pbWF0aW9uLXR5cGU6IFwib3ZlcmxheVwiICFkZWZhdWx0O1xuXG4vLy0tLSBPcGFjaXR5XG4kaW1hZ2UtZ2FsbGVyeS1pbWFnZS1vcGFjaXR5OiAuNyAhZGVmYXVsdDtcblxuLy8tLS0gT3ZlcmxheVxuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktb3BhY2l0eTogLjE1ICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1iYWNrZHJvcC1maWx0ZXI6IHNhdHVyYXRlKDEyNSUpIGNvbnRyYXN0KDEyNSUpICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgc2NhbGUoLjUpICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1pY29uOiAkZmEtdmFyLXNlYXJjaC1wbHVzICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1pY29uLXN0eWxlOiBcInJlZ3VsYXJcIiAhZGVmYXVsdDtcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktaWNvbi1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktaWNvbi1vcGFjaXR5OiAuODUgIWRlZmF1bHQ7XG4kaW1hZ2UtZ2FsbGVyeS1vdmVybGF5LWljb24tZm9udC1zaXplOiAxLjVyZW0gIWRlZmF1bHQ7XG4kaW1hZ2UtZ2FsbGVyeS1vdmVybGF5LWljb24tdGV4dC1zaGFkb3c6IDAgMCAuMTI1cmVtIHJnYmEoYmxhY2ssIC43NSkgIWRlZmF1bHQ7XG4kaW1hZ2UtZ2FsbGVyeS1vdmVybGF5LWljb24tdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xLjVyZW0pICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1pbWFnZS1vZmZzZXQ6IC4xICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1pbWFnZS1zY2FsZTogMSArICRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktaW1hZ2Utb2Zmc2V0ICFkZWZhdWx0O1xuXG4vLy0tLS0gTGVhZmxldCBNYXBcbiRtYXAtbWFya2VyLWNvbG9yLWRlZmF1bHQ6IHZhcigtLWJzLXNlY29uZGFyeSkgIWRlZmF1bHQ7XG4kbWFwLW1hcmtlci1jb2xvci1sb2FkaW5nOiBncmF5ICFkZWZhdWx0O1xuJG1hcC1tYXJrZXItY29sb3ItYWN0aXZlOiB2YXIoLS1icy1wcmltYXJ5KSAhZGVmYXVsdDtcblxuLy8tLS0tIE1hc29ucnlcbiRtYXNvbnJ5LWdhbGxlcnktZ2FwOiAuNzVyZW0gIWRlZmF1bHQ7XG5cbi8vLS0tLSBXb29Db21tZXJjZSBTZWFyY2ggT3ZlcmxheVxuJHNlYXJjaC1vdmVybGF5LWJnLWNvbG9yOiBibGFjayAhZGVmYXVsdDtcbiRzZWFyY2gtb3ZlcmxheS1iZy1vcGFjaXR5OiAuMjUgIWRlZmF1bHQ7XG4kc2VhcmNoLW92ZXJsYXktYmFja2Ryb3AtZmlsdGVyOiBibHVyKC4xMjVyZW0pICFkZWZhdWx0O1xuJHNlYXJjaC1vdmVybGF5LWZvcm0tZm9udC1zaXplOiAuOXJlbSAhZGVmYXVsdDtcbiRzZWFyY2gtb3ZlcmxheS1mb3JtLWJvcmRlci1yYWRpdXM6IC4yNXJlbSAhZGVmYXVsdDtcblxuLy8tLS0tIFdvb0NvbW1lcmNlIFJldmlldyBmb3JtXG4kd29vY29tbWVyY2UtcmV2aWV3LWZvcm0tc3RhcnMtZm9udHNpemU6IDJyZW0gIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIEd1dGVuYmVyZyBibG9ja3Ncbi8vLS0tLS0gUmFuayBNYXRoXG4vLy0tLS0gRkFRXG4kcmFuay1tYXRoLWZhcS11c2UtbGVnYWN5LXN0eWxlczogdHJ1ZSAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLWJnLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kcmFuay1tYXRoLWZhcS1ib3gtc2hhZG93OiAwIC41cmVtIC41cmVtIC0uMjVyZW0gcmdiYSgkYmxhY2ssIC4xKSAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLWJvcmRlci1yYWRpdXM6IG1hcC1nZXQoJHNwYWNlcnMsIDEpICFkZWZhdWx0O1xuJHJhbmstbWF0aC1mYXEtYm9yZGVyLWNvbG9yOiAkZ3JheS0yMDAgIWRlZmF1bHQ7XG4kcmFuay1tYXRoLWZhcS1ib3JkZXI6IDFweCBzb2xpZCAkcmFuay1tYXRoLWZhcS1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kcmFuay1tYXRoLWZhcS1pdGVtLXBhZGRpbmc6IG1hcC1nZXQoJHNwYWNlcnMsIDMpICFkZWZhdWx0O1xuJHJhbmstbWF0aC1mYXEtcXVlc3Rpb24tZm9udC1zaXplOiAxLjI1cmVtICFkZWZhdWx0O1xuJHJhbmstbWF0aC1mYXEtcXVlc3Rpb24tZ2FwOiBtYXAtZ2V0KCRzcGFjZXJzLCAyKSAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLXF1ZXN0aW9uLXBhZGRpbmctYm90dG9tOiAkcmFuay1tYXRoLWZhcS1xdWVzdGlvbi1nYXAgIWRlZmF1bHQ7XG4kcmFuay1tYXRoLWZhcS1xdWVzdGlvbi1ib3JkZXItY29sb3I6ICRyYW5rLW1hdGgtZmFxLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLXF1ZXN0aW9uLWJvcmRlci1ib3R0b206ICRyYW5rLW1hdGgtZmFxLWJvcmRlciAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLXF1ZXN0aW9uLWljb246ICRmYS12YXItcXVlc3Rpb24tY2lyY2xlICFkZWZhdWx0O1xuJHJhbmstbWF0aC1mYXEtcXVlc3Rpb24taWNvbi1jb2xvcjogJHNlY29uZGFyeSAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLXF1ZXN0aW9uLWljb24tZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuJHJhbmstbWF0aC1mYXEtcXVlc3Rpb24taWNvbi1vZmZzZXQtdG9wOiAuMnJlbSAhZGVmYXVsdDtcblxuLy8tLS0tIEltYWdlXG4kZ3V0ZW5iZXJnLWltYWdlLXJhdGlvczogKFwiMVwiLCBcIjQvM1wiLCBcIjMvNFwiLCBcIjMvMlwiLCBcIjIvM1wiLCBcIjE2LzlcIiwgXCI5LzE2XCIpICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBGb250cyBvcHRpbWl6YXRpb25cbi8vLS0tLS0gRm9udEF3ZXNvbWUgaWNvbnNcbiRmb250LWZhLXBybzogXCJGb250IEF3ZXNvbWUgNiBQcm9cIjtcbiRmb250LWZhLWJyYW5kczogXCJGb250IEF3ZXNvbWUgNiBCcmFuZHNcIjtcbi8vIHNlZSAuLi92ZW5kb3JzL19mb250YXdlc29tZS5zY3NzIGZvciBpY29ucyBwcm9jZXNzaW5nXG4vLyBzZWUgLi4vdmVuZG9ycy9fZm9udGF3ZXNvbWUtaWNvbnMuc2NzcyBmb3IgYXZhaWxhYmxlIGljb25zICYgaWNvbnMgZ3JvdXBzXG4vLyAkY3VzdG9tLXVzZWQtZmEtaWNvbnM6IChmb250LWF3ZXNvbWUtZmxhZzogJGZhLXZhci1mb250LWF3ZXNvbWUtZmxhZywgcGx1czogJGZhLXZhci1wbHVzKTtcbiRjdXN0b20tdXNlZC1mYS1pY29uczogKCkgIWRlZmF1bHQ7XG4vLyAkdXNlZC1mYS1pY29ucy1ncm91cHM6IChhY2NvbW1vZGF0aW9ucywgd29vY29tbWVyY2UpO1xuJHVzZWQtZmEtaWNvbnMtZ3JvdXBzOiAoKSAhZGVmYXVsdDtcblxuLy8tLS0tLSBJY29ucyBsaXN0XG4kYWxwaGEtZmEtaWNvbnMtbGlzdDogKCkgIWRlZmF1bHQ7XG4kYWxwaGEtZmEtaWNvbnMtbGlzdC1jb2xvcjogdmFyKC0tYnMtcHJpbWFyeSkgIWRlZmF1bHQ7XG4kYWxwaGEtZmEtaWNvbnMtbGlzdC1zdHlsZTogc29saWQgIWRlZmF1bHQ7XG4kYWxwaGEtZmEtaWNvbnMtbGlzdC1jb2xvcnM6ICgpICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBTbGlja1xuJHNsaWNrLWZvbnQtcGF0aDogXCJ+c2xpY2stY2Fyb3VzZWwvc2xpY2svZm9udHMvXCI7XG4kc2xpY2stZm9udC1mYW1pbHk6ICRmb250LWZhLXBybztcblxuLy8tLS0tLS0gQ0Y3IEVmZmVjdFxuJGNvbG9yLWZvcm0tdGV4dDogdmFyKC0tYnMtYm9keS1jb2xvcikgIWRlZmF1bHQ7XG4kY29sb3ItZm9ybS1maWxsZWQ6IHZhcigtLWJzLXByaW1hcnkpICFkZWZhdWx0O1xuJGNvbG9yLWZvcm0tZmllbGQtYm9yZGVyOiB2YXIoLS1icy1ib3JkZXItY29sb3IpICFkZWZhdWx0O1xuJGZvcm0tZmllbGQtYm9yZGVyLXJhZGl1czogdmFyKC0tYnMtYm9yZGVyLXJhZGl1cykgIWRlZmF1bHQ7XG4kZm9ybS1maWVsZC1tYXJnaW4tYm90dG9tOiAycmVtICFkZWZhdWx0O1xuJGZvcm0tZ3V0dGVyOiAuNzVyZW0gIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1ndXR0ZXItbGVmdDogMS41cmVtICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiAkaW5wdXQtZm9udC1zaXplICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtZm9udC1zaXplLWZpbGxlZDogLjdyZW0gIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1saW5lLWhlaWdodDogJGlucHV0LWxpbmUtaGVpZ2h0ICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtbm8tYW5pbS1tYXJnaW4tdG9wOiAuNXJlbSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLW5vLWFuaW0tdHJhbnNsYXRlOiAtLjI1cmVtICFkZWZhdWx0O1xuJGZvcm0tZXJyb3ItZm9udC1zaXplOiAuOXJlbSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gQm9vdHN0cmFwIFJlc3BvbnNpdmUgSW1hZ2UgUmF0aW9cbi8vIG11c3QgYmUgYSBsaXN0IG9mIHJhdGlvcyBmb3JtYXR0ZWQgbGlrZSB0aGlzOiAoMSAxKSwgKDQgMyksICgzIDIpLCAoMTYgOSksICgyMSA5KVxuJG1lZGlhLXJhdGlvczogKCkgIWRlZmF1bHQ7XG4iLCIvLyBmdW5jdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIGZhLWNvbnRlbnQ6IGNvbnZlbmllbmNlIGZ1bmN0aW9uIHVzZWQgdG8gc2V0IGNvbnRlbnQgcHJvcGVydHlcbkBmdW5jdGlvbiBmYS1jb250ZW50KCRmYS12YXIpIHtcbiAgQHJldHVybiB1bnF1b3RlKFwiXFxcIiN7ICRmYS12YXIgfVxcXCJcIik7XG59XG5cbi8vIGZhLWRpdmlkZTogT3JpZ2luYWxseSBvYnRhaW5lZCBmcm9tIHRoZSBCb290c3RyYXAgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwXG4vL1xuLy8gTGljZW5zZWQgdW5kZXI6IFRoZSBNSVQgTGljZW5zZSAoTUlUKVxuLy9cbi8vIENvcHlyaWdodCAoYykgMjAxMS0yMDIxIFR3aXR0ZXIsIEluYy5cbi8vIENvcHlyaWdodCAoYykgMjAxMS0yMDIxIFRoZSBCb290c3RyYXAgQXV0aG9yc1xuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbkBmdW5jdGlvbiBmYS1kaXZpZGUoJGRpdmlkZW5kLCAkZGl2aXNvciwgJHByZWNpc2lvbjogMTApIHtcbiAgJHNpZ246IGlmKCRkaXZpZGVuZCA+IDAgYW5kICRkaXZpc29yID4gMCwgMSwgLTEpO1xuICAkZGl2aWRlbmQ6IGFicygkZGl2aWRlbmQpO1xuICAkZGl2aXNvcjogYWJzKCRkaXZpc29yKTtcbiAgJHF1b3RpZW50OiAwO1xuICAkcmVtYWluZGVyOiAkZGl2aWRlbmQ7XG4gIEBpZiAkZGl2aWRlbmQgPT0gMCB7XG4gICAgQHJldHVybiAwO1xuICB9XG4gIEBpZiAkZGl2aXNvciA9PSAwIHtcbiAgICBAZXJyb3IgXCJDYW5ub3QgZGl2aWRlIGJ5IDBcIjtcbiAgfVxuICBAaWYgJGRpdmlzb3IgPT0gMSB7XG4gICAgQHJldHVybiAkZGl2aWRlbmQ7XG4gIH1cbiAgQHdoaWxlICRyZW1haW5kZXIgPj0gJGRpdmlzb3Ige1xuICAgICRxdW90aWVudDogJHF1b3RpZW50ICsgMTtcbiAgICAkcmVtYWluZGVyOiAkcmVtYWluZGVyIC0gJGRpdmlzb3I7XG4gIH1cbiAgQGlmICRyZW1haW5kZXIgPiAwIGFuZCAkcHJlY2lzaW9uID4gMCB7XG4gICAgJHJlbWFpbmRlcjogZmEtZGl2aWRlKCRyZW1haW5kZXIgKiAxMCwgJGRpdmlzb3IsICRwcmVjaXNpb24gLSAxKSAqIC4xO1xuICB9XG4gIEByZXR1cm4gKCRxdW90aWVudCArICRyZW1haW5kZXIpICogJHNpZ247XG59XG4iLCJAa2V5ZnJhbWVzIGZvcm0tbGFiZWwtZmlsbGVkIHtcbiAgMCUge1xuICAgIGxlZnQ6ICRmb3JtLWxhYmVsLWd1dHRlci1sZWZ0O1xuICAgIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuICAyNSUge1xuICAgIGxlZnQ6ICRmb3JtLWxhYmVsLWd1dHRlci1sZWZ0O1xuICAgIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zZm9ybTogcm90YXRlWSg5MGRlZykgdHJhbnNsYXRlWSgwKTtcbiAgfVxuICA3NSUge1xuICAgIGxlZnQ6ICRmb3JtLWxhYmVsLWd1dHRlci1sZWZ0LWZpbGxlZDtcbiAgICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZS1maWxsZWQ7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yLWZvcm0tZmllbGQtYmFja2dyb3VuZDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoOTBkZWcpIHRyYW5zbGF0ZVkoJGZvcm0tbGFiZWwtdHJhbnNsYXRlKTtcbiAgfVxuICAxMDAlIHtcbiAgICBsZWZ0OiAkZm9ybS1sYWJlbC1ndXR0ZXItbGVmdC1maWxsZWQ7XG4gICAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemUtZmlsbGVkO1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci1mb3JtLWZpZWxkLWJhY2tncm91bmQ7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVZKDApIHRyYW5zbGF0ZVkoJGZvcm0tbGFiZWwtdHJhbnNsYXRlKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZvcm0tbGFiZWwge1xuICAwJSB7XG4gICAgbGVmdDogJGZvcm0tbGFiZWwtZ3V0dGVyLWxlZnQtZmlsbGVkO1xuICAgIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplLWZpbGxlZDtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItZm9ybS1maWVsZC1iYWNrZ3JvdW5kO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWSgwKSB0cmFuc2xhdGVZKCRmb3JtLWxhYmVsLXRyYW5zbGF0ZSk7XG4gIH1cbiAgMjUlIHtcbiAgICBsZWZ0OiAkZm9ybS1sYWJlbC1ndXR0ZXItbGVmdC1maWxsZWQ7XG4gICAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemUtZmlsbGVkO1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci1mb3JtLWZpZWxkLWJhY2tncm91bmQ7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVZKDkwZGVnKSB0cmFuc2xhdGVZKCRmb3JtLWxhYmVsLXRyYW5zbGF0ZSk7XG4gIH1cbiAgNzUlIHtcbiAgICBsZWZ0OiAkZm9ybS1sYWJlbC1ndXR0ZXItbGVmdDtcbiAgICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoOTBkZWcpIHRyYW5zbGF0ZVkoMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgbGVmdDogJGZvcm0tbGFiZWwtZ3V0dGVyLWxlZnQ7XG4gICAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG4iLCIvLy0tLS0tLS0tLS0tLSBCb290c3RyYXBcbkBpbXBvcnQgXCJ+Ym9vdHN0cmFwL3Njc3MvZnVuY3Rpb25zXCI7XG5cbi8vLyBSZW1vdmUgdGhlIHVuaXQgb2YgYSBsZW5ndGhcbi8vLyBAcGFyYW0ge051bWJlcn0gJG51bWJlciAtIE51bWJlciB0byByZW1vdmUgdW5pdCBmcm9tXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIFVuaXRsZXNzIG51bWJlclxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bWJlcikge1xuICBAaWYgdHlwZS1vZigkbnVtYmVyKSA9PSBcIm51bWJlclwiIGFuZCBub3QgdW5pdGxlc3MoJG51bWJlcikge1xuICAgIEByZXR1cm4gJG51bWJlciAvICgkbnVtYmVyICogMCArIDEpO1xuICB9XG5cbiAgQHJldHVybiAkbnVtYmVyO1xufVxuXG5AZnVuY3Rpb24gcHgycmVtKCRweCwgJGZvbnQtYmFzZS1yZW06ICRmb250LXNpemUtYmFzZSwgJGZvbnQtYmFzZS1weDogMTYpIHtcbiAgJGZvbnQtYmFzZS1zaXplOiBzdHJpcC11bml0KCRmb250LWJhc2UtcHgpICogc3RyaXAtdW5pdCgkZm9udC1iYXNlLXJlbSk7XG5cbiAgQHJldHVybiAoc3RyaXAtdW5pdCgkcHgpIC8gJGZvbnQtYmFzZS1zaXplKSAqIDFyZW07XG59XG5cbi8vIEFkZCBhIG5ldyB1dGlsaXR5IHRvIEJvb3RzdHJhcCB1dGlsaXRpZXNcbkBmdW5jdGlvbiBib290c3RyYXAtYWRkLXV0aWxpdHkoJGJzLXV0aWxpdGllcywgJHV0aWxpdHkta2V5LCAkcHJvcGVydGllcykge1xuICAkYnMtdXRpbGl0aWVzOiBtYXAtbWVyZ2UoXG4gICAgJGJzLXV0aWxpdGllcyxcbiAgICAoXG4gICAgICAkdXRpbGl0eS1rZXk6ICRwcm9wZXJ0aWVzXG4gICAgKVxuICApO1xuXG4gIEByZXR1cm4gJGJzLXV0aWxpdGllcztcbn1cblxuLy8gUmVtb3ZlIGFuIHV0aWxpdHkgZnJvbSBCb290c3RyYXAgdXRpbGl0aWVzXG5AZnVuY3Rpb24gYm9vdHN0cmFwLXJlbW92ZS11dGlsaXR5KCRicy11dGlsaXRpZXMsICR1dGlsaXR5LWtleSkge1xuICAkYnMtdXRpbGl0aWVzOiBtYXAtcmVtb3ZlKCRicy11dGlsaXRpZXMsICR1dGlsaXR5LWtleSk7XG5cbiAgQHJldHVybiAkYnMtdXRpbGl0aWVzO1xufVxuXG4vLyBNZXJnZSB1dGlsaXR5IHByb3BlcnRpZXMgd2l0aCBhbiBleGlzdGluZyBvbmVcbkBmdW5jdGlvbiBib290c3RyYXAtbWVyZ2UtdXRpbGl0aWVzKCRicy11dGlsaXRpZXMsICR1dGlsaXR5LWtleSwgJHByb3BlcnRpZXMpIHtcbiAgJGJzLXV0aWxpdGllczogbWFwLW1lcmdlKFxuICAgICRicy11dGlsaXRpZXMsXG4gICAgKFxuICAgICAgJHV0aWxpdHkta2V5OiBtYXAtbWVyZ2UoXG4gICAgICAgIG1hcC1nZXQoJGJzLXV0aWxpdGllcywgJHV0aWxpdHkta2V5KSxcbiAgICAgICAgJHByb3BlcnRpZXNcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgQHJldHVybiAkYnMtdXRpbGl0aWVzO1xufVxuXG4vLy0tLS0tLS0tLS0tLSBBbHBoYVxuQGZ1bmN0aW9uIGhleC10by1yZ2IoJGNvbG9yKSB7XG4gIEByZXR1cm4gI3tyZWQoJGNvbG9yKX0sICN7Z3JlZW4oJGNvbG9yKX0sICN7Ymx1ZSgkY29sb3IpfTtcbn1cblxuQGZ1bmN0aW9uIGVuY29kZWNvbG9yKCRzdHJpbmcpIHtcbiAgQGlmIHR5cGUtb2YoJHN0cmluZykgPT0gXCJjb2xvclwiIGFuZCBzdHItaW5kZXgoI3skc3RyaW5nfSwgXCIjXCIpID09IDEge1xuICAgICRoZXg6IHN0ci1zbGljZShpZS1oZXgtc3RyKCRzdHJpbmcpLCA0KTtcbiAgICAkc3RyaW5nOiB1bnF1b3RlKFwiI3skaGV4fVwiKTtcblxuICAgIEByZXR1cm4gXCIlMjNcIiArICRzdHJpbmc7XG4gIH1cblxuICBAcmV0dXJuICRzdHJpbmc7XG59XG5cbkBmdW5jdGlvbiBzdHItc3BsaXQoJHN0cmluZywgJHNlcGFyYXRvcikge1xuICAvLyBlbXB0eSBhcnJheS9saXN0XG4gICRzcGxpdC1hcnI6ICgpO1xuICAvLyBmaXJzdCBpbmRleCBvZiBzZXBhcmF0b3IgaW4gc3RyaW5nXG4gICRpbmRleDogc3RyLWluZGV4KCRzdHJpbmcsICRzZXBhcmF0b3IpO1xuICAvLyBsb29wIHRocm91Z2ggc3RyaW5nXG4gIEB3aGlsZSAkaW5kZXggIT0gbnVsbCB7XG4gICAgLy8gZ2V0IHRoZSBzdWJzdHJpbmcgZnJvbSB0aGUgZmlyc3QgY2hhcmFjdGVyIHRvIHRoZSBzZXBhcmF0b3JcbiAgICAkaXRlbTogc3RyLXNsaWNlKCRzdHJpbmcsIDEsICRpbmRleCAtIDEpO1xuICAgIC8vIHB1c2ggaXRlbSB0byBhcnJheVxuICAgICRzcGxpdC1hcnI6IGFwcGVuZCgkc3BsaXQtYXJyLCAkaXRlbSk7XG4gICAgLy8gcmVtb3ZlIGl0ZW0gYW5kIHNlcGFyYXRvciBmcm9tIHN0cmluZ1xuICAgICRzdHJpbmc6IHN0ci1zbGljZSgkc3RyaW5nLCAkaW5kZXggKyAxKTtcbiAgICAvLyBmaW5kIG5ldyBpbmRleCBvZiBzZXBhcmF0b3JcbiAgICAkaW5kZXg6IHN0ci1pbmRleCgkc3RyaW5nLCAkc2VwYXJhdG9yKTtcbiAgfVxuICAvLyBhZGQgdGhlIHJlbWFpbmluZyBzdHJpbmcgdG8gbGlzdCAodGhlIGxhc3QgaXRlbSlcbiAgJHNwbGl0LWFycjogYXBwZW5kKCRzcGxpdC1hcnIsICRzdHJpbmcpO1xuXG4gIEByZXR1cm4gJHNwbGl0LWFycjtcbn1cblxuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiIHtcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gXCJzdHJpbmdcIiB7XG4gICAgQGVycm9yIFwiVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy5cIjtcbiAgfVxuXG4gICRyZXN1bHQ6IDA7XG4gICRkaWdpdHM6IDA7XG4gICRtaW51czogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSkgPT0gXCItXCI7XG4gICRudW1iZXJzOiAoXCIwXCI6IDAsIFwiMVwiOiAxLCBcIjJcIjogMiwgXCIzXCI6IDMsIFwiNFwiOiA0LCBcIjVcIjogNSwgXCI2XCI6IDYsIFwiN1wiOiA3LCBcIjhcIjogOCwgXCI5XCI6IDkpO1xuXG4gIEBmb3IgJGkgZnJvbSBpZigkbWludXMsIDIsIDEpIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xuXG4gICAgQGlmIChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gXCIuXCIpIHtcbiAgICAgIEBpZiAkY2hhcmFjdGVyID09IFwiLlwiIHtcbiAgICAgICAgJGRpZ2l0czogMTtcbiAgICAgIH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcbiAgICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xuICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XG59XG5cbkBmdW5jdGlvbiB0by11bml0KCR2YWx1ZSkge1xuICBAaWYgdHlwZS1vZigkdmFsdWUpICE9IFwic3RyaW5nXCIge1xuICAgIEBlcnJvciBcIlZhbHVlIGZvciBgdG8tdW5pdGAgc2hvdWxkIGJlIGEgc3RyaW5nLlwiO1xuICB9XG5cbiAgJHVuaXRzOiAoXCJweFwiOiAxcHgsIFwiY21cIjogMWNtLCBcIm1tXCI6IDFtbSwgXCIlXCI6IDElLCBcImNoXCI6IDFjaCwgXCJwY1wiOiAxcGMsIFwiaW5cIjogMWluLCBcImVtXCI6IDFlbSwgXCJyZW1cIjogMXJlbSwgXCJwdFwiOiAxcHQsIFwiZXhcIjogMWV4LCBcInZ3XCI6IDF2dywgXCJ2aFwiOiAxdmgsIFwidm1pblwiOiAxdm1pbiwgXCJ2bWF4XCI6IDF2bWF4KTtcbiAgJHBhcnNlZC11bml0OiBmYWxzZTtcblxuICBAZWFjaCAkdW5pdCBpbiAkdW5pdHMge1xuICAgIC8vIHN0ci1pbmRleCAtIGZpbmQgc3Vic3RyaW5nIGluIGEgc3RyaW5nXG4gICAgLy8gJ3B4JyBpbiAnMTBweCcgZm9yIGV4YW1wbGVcblxuICAgIC8vICR1bml0IGlzIGEgcGFpciBvZiBbJ3B4JzogMXB4XSAoaXRlbSBpbiAkdW5pdHMpXG4gICAgLy8gbnRoKFsncHgnOiAxcHhdLCAxKSByZXR1cm5zICdweCdcbiAgICAvLyBudGgoWydweCc6IDFweF0sIDIpIHJldHVybnMgMXB4XG5cbiAgICBAaWYgKHN0ci1pbmRleCgkdmFsdWUsIG50aCgkdW5pdCwgMSkpKSB7XG4gICAgICAkcGFyc2VkLXVuaXQ6IG50aCgkdW5pdCwgMik7XG4gICAgfVxuICB9XG5cbiAgQGlmIChub3QgJHBhcnNlZC11bml0KSB7XG4gICAgQGVycm9yIFwiSW52YWxpZCB1bml0IGAjeyR2YWx1ZX1gLlwiO1xuICB9XG5cbiAgQHJldHVybiAkcGFyc2VkLXVuaXQ7XG59XG5cbkBmdW5jdGlvbiB2YWx1ZS10by1udW1iZXIoJHZhbHVlKSB7XG4gICR0eXBlLW9mOiB0eXBlLW9mKCR2YWx1ZSk7XG5cbiAgQGlmICR0eXBlLW9mID09IFwibWFwXCIge1xuICAgICRyZXN1bHQ6ICgpO1xuICAgIEBlYWNoICRtYXAta2V5LCAkbWFwLXZhbHVlIGluICR2YWx1ZSB7XG4gICAgICAkbnVtYmVyLXZhbHVlOiB2YWx1ZS10by1udW1iZXIoJG1hcC12YWx1ZSk7XG4gICAgICAkcmVzdWx0OiBtYXAtbWVyZ2UoJHJlc3VsdCwgKCRtYXAta2V5OiAkbnVtYmVyLXZhbHVlKSk7XG4gICAgfVxuXG4gICAgJHZhbHVlOiAkcmVzdWx0O1xuICB9IEBlbHNlIGlmICR0eXBlLW9mID09IFwibGlzdFwiIHtcbiAgICAkcmVzdWx0OiAoKTtcbiAgICBAZWFjaCAkbGlzdC12YWx1ZSBpbiAkdmFsdWUge1xuICAgICAgJG51bWJlci12YWx1ZTogdmFsdWUtdG8tbnVtYmVyKCRsaXN0LXZhbHVlKTtcbiAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCAkbnVtYmVyLXZhbHVlKTtcbiAgICB9XG5cbiAgICAkdmFsdWU6ICRyZXN1bHQ7XG4gIH0gQGVsc2UgaWYgJHR5cGUtb2YgPT0gXCJzdHJpbmdcIiB7XG4gICAgJG51bWJlcjogdG8tbnVtYmVyKCR2YWx1ZSk7XG4gICAgJHVuaXQ6IHRvLXVuaXQoJHZhbHVlKTtcbiAgICAkdmFsdWU6ICRudW1iZXIgKiAkdW5pdDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5AZnVuY3Rpb24gbWFwLWdldC1kZWVwKCRjb25maWcsICRwYXRoLCAkdG8tbnVtYmVyOiBmYWxzZSwgJGRlZmF1bHQtdmFsdWU6IG51bGwpIHtcbiAgJHNwbGl0OiBzdHItc3BsaXQoJHBhdGgsIFwiLlwiKTtcblxuICBAaWYgdHlwZS1vZigkY29uZmlnKSA9PSBcIm1hcFwiIGFuZCBsZW5ndGgoJHBhdGgpID4gMCB7XG4gICAgJGxhc3Qta2V5OiBsZW5ndGgoJHNwbGl0KTtcbiAgICAkY3VycmVudC1jb25maWc6ICRjb25maWc7XG5cbiAgICBAZWFjaCAkY29uZmlnLWtleSBpbiAkc3BsaXQge1xuICAgICAgQGlmICh0eXBlLW9mKCRjdXJyZW50LWNvbmZpZykgPT0gXCJtYXBcIiBhbmQgbWFwLWhhcy1rZXkoJGN1cnJlbnQtY29uZmlnLCAkY29uZmlnLWtleSkpIHtcbiAgICAgICAgJGk6IGluZGV4KCRzcGxpdCwgJGNvbmZpZy1rZXkpO1xuICAgICAgICAkY3VycmVudC1jb25maWc6IG1hcC1nZXQoJGN1cnJlbnQtY29uZmlnLCAkY29uZmlnLWtleSk7XG5cbiAgICAgICAgQGlmICRpID09ICRsYXN0LWtleSB7XG4gICAgICAgICAgJHJldHVybi12YWx1ZTogJGN1cnJlbnQtY29uZmlnO1xuXG4gICAgICAgICAgQGlmICR0by1udW1iZXIge1xuICAgICAgICAgICAgJHJldHVybi12YWx1ZTogdmFsdWUtdG8tbnVtYmVyKCRyZXR1cm4tdmFsdWUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEByZXR1cm4gJHJldHVybi12YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEByZXR1cm4gJGRlZmF1bHQtdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkZGVmYXVsdC12YWx1ZTtcbn1cblxuLy8gQHNlZSBodHRwczovL3d3dy5zYXNzbWVpc3Rlci5jb20vZ2lzdC83NTI1ZjA1NDY0NzlhY2QxZDZlMVxuQGZ1bmN0aW9uIG1hcC1leHRlbmQoJG9iamVjdCwgJG9iamVjdHMuLi4vKiwgJGRlZXAgKi8pIHtcbiAgJGxhc3Q6IG50aCgkb2JqZWN0cywgLTEpO1xuICAkZGVlcDogJGxhc3QgPT0gdHJ1ZTtcbiAgJG1heDogaWYoJGRlZXAsIGxlbmd0aCgkb2JqZWN0cykgLSAxLCBsZW5ndGgoJG9iamVjdHMpKTtcblxuICAvLyBMb29wIHRocm91Z2ggYWxsIG1hcHMgaW4gJG9iamVjdHMuLi5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkbWF4IHtcbiAgICAvLyBTdG9yZSBjdXJyZW50IG1hcFxuICAgICRjdXJyZW50OiBudGgoJG9iamVjdHMsICRpKTtcblxuICAgIC8vIElmIG5vdCBpbiBkZWVwIG1vZGUsIHNpbXBseSBtZXJnZSBjdXJyZW50IG1hcCB3aXRoIG9iamVjdFxuICAgIEBpZiBub3QgJGRlZXAge1xuICAgICAgJG9iamVjdDogbWFwLW1lcmdlKCRvYmplY3QsICRjdXJyZW50KTtcbiAgICB9XG5cbiAgICAvLyBJZiBpbiBkZWVwIG1vZGVcbiAgICBAZWxzZSB7XG4gICAgICAvLyBMb29wIHRocm91Z2ggYWxsIHR1cGxlcyBpbiBjdXJyZW50IG1hcFxuICAgICAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRjdXJyZW50IHtcbiAgICAgICAgLy8gSWYgdmFsdWUgaXMgYSBuZXN0ZWQgbWFwIGFuZCBzYW1lIGtleSBmcm9tIG9iamVjdCBpcyBhIG5lc3RlZCBtYXAgYXMgd2VsbFxuICAgICAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09IFwibWFwXCIgYW5kIHR5cGUtb2YobWFwLWdldCgkb2JqZWN0LCAka2V5KSkgPT0gXCJtYXBcIiB7XG4gICAgICAgICAgLy8gUmVjdXJzaXZlIGV4dGVuZFxuICAgICAgICAgICR2YWx1ZTogbWFwLWV4dGVuZChtYXAtZ2V0KCRvYmplY3QsICRrZXkpLCAkdmFsdWUsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIC8vIE1lcmdlIGN1cnJlbnQgdHVwbGUgd2l0aCBvYmplY3RcbiAgICAgICAgJG9iamVjdDogbWFwLW1lcmdlKCRvYmplY3QsICgka2V5OiAkdmFsdWUpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRvYmplY3Q7XG59XG5cbkBmdW5jdGlvbiBoYXMtbWVudS10eXBlKCRtZW51cy1saXN0LCAkbWVudSkge1xuICBAcmV0dXJuIGluZGV4KCRtZW51cy1saXN0LCAkbWVudSkgIT0gbnVsbDtcbn1cblxuQGZ1bmN0aW9uIGhhcy1vZmZjYW52YXMoJG1lbnVzLWxpc3QpIHtcbiAgQHJldHVybiBoYXMtbWVudS10eXBlKCRtZW51cy1saXN0LCBcIm9mZmNhbnZhc1wiKSBvciBoYXMtbWVudS10eXBlKCRtZW51cy1saXN0LCBcIm9mZmNhbnZhcy1zaW1wbGVcIik7XG59XG5cbkBmdW5jdGlvbiBsaXN0LXVuaXF1ZSgkbGlzdCkge1xuICAkcmVzdWx0OiAoKTtcblxuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgQGlmIG5vdCBpbmRleCgkcmVzdWx0LCAkaXRlbSkge1xuICAgICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsICRpdGVtKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG4iLCIkZm9ybS1kZWZhdWx0LWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcbiRmb3JtLWd1dHRlcjogLjVyZW0gIWRlZmF1bHQ7XG4kZm9ybS1pbnB1dC10ZXh0LWhlaWdodDogMi41cmVtICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDFyZW07XG4kZm9ybS1sYWJlbC1ndXR0ZXItdG9wOiBjYWxjKCgjeyRmb3JtLWlucHV0LXRleHQtaGVpZ2h0fSAtICN7JGZvcm0tbGFiZWwtbGluZS1oZWlnaHR9KSAvIDIpICAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWd1dHRlci1sZWZ0OiAkZm9ybS1ndXR0ZXIgKiAyICAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWd1dHRlci1sZWZ0LWZpbGxlZDogJGZvcm0tbGFiZWwtZ3V0dGVyLWxlZnQgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC10cmFuc2xhdGU6IC0xLjJyZW0gIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1uby1hbmltLXRyYW5zbGF0ZTogJGZvcm0tbGFiZWwtdHJhbnNsYXRlICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtbm8tYW5pbS1tYXJnaW4tdG9wOiAxcmVtICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiAuOXJlbSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZS1maWxsZWQ6IC43cmVtICFkZWZhdWx0O1xuJGZvcm0tZXJyb3ItZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kZm9ybS1maWVsZC1ib3JkZXItcmFkaXVzOiAuMjVyZW0gIWRlZmF1bHQ7XG4kZm9ybS1maWVsZC1tYXJnaW4tdG9wOiAxcmVtICFkZWZhdWx0O1xuJGZvcm0tZmllbGQtbWFyZ2luLXRvcC10YWJsZXQ6ICRmb3JtLWZpZWxkLW1hcmdpbi10b3AgKiAyICFkZWZhdWx0O1xuJGZvcm0tZmllbGQtbWFyZ2luLWJvdHRvbTogMS41cmVtICFkZWZhdWx0O1xuXG4kZm9ybS1maWVsZC1pbnB1dC1iYWNrZ3JvdW5kOiAjZmZmICFkZWZhdWx0O1xuJGNvbG9yLWZvcm0tdGV4dDogIzRiNTA1NSAhZGVmYXVsdDtcbiRjb2xvci1mb3JtLXRleHQtc3R5bGUtZGFyazogICNmZmYgIWRlZmF1bHQ7XG4kY29sb3ItZm9ybS1maWxsZWQ6ICNhYTE2MzYgIWRlZmF1bHQ7XG4kY29sb3ItZm9ybS1zdWJtaXQ6ICRjb2xvci1mb3JtLWZpbGxlZCAhZGVmYXVsdDtcbiRjb2xvci1jaGVja2JveC1jaGVja2VkOiAkY29sb3ItZm9ybS1maWxsZWQgIWRlZmF1bHQ7XG4kY29sb3ItZm9ybS1tYWlsLXNlbnQ6ICM4N2QzN2MgIWRlZmF1bHQ7XG4kY29sb3ItZm9ybS1lcnJvcnM6IHJlZCAhZGVmYXVsdDtcbiRjb2xvci1mb3JtLWZpZWxkLWJhY2tncm91bmQ6ICNmZmYgIWRlZmF1bHQ7XG4kY29sb3ItZm9ybS1maWVsZC1ib3JkZXI6ICRjb2xvci1mb3JtLXRleHQgIWRlZmF1bHQ7XG5cbiRmaWVsZC1kZXNjLXNpemU6IC44cmVtICFkZWZhdWx0O1xuJGZpZWxkLWRlc2MtY29sb3I6ICM2OTY5NjkgIWRlZmF1bHQ7XG4kZmllbGQtZGVzYy1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuIiwiaW5wdXQsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gICY6LXdlYmtpdC1hdXRvZmlsbCB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMTAwcHggJGNvbG9yLWZvcm0tZmllbGQtYmFja2dyb3VuZCBpbnNldDtcbiAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogJGNvbG9yLWZvcm0tdGV4dDtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogJGNvbG9yLWZvcm0tdGV4dDtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuLmdyZWNhcHRjaGEtYmFkZ2Uge1xuICB2aXNpYmlsaXR5OiBjb2xsYXBzZTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk1OXB4KSB7XG4gIC8vIGRpc3BsYXkgZm9ybSByZXNwb25zZSBvdXRwdXQgYWJvdmUgc3VibWl0IGJ1dHRvbiAmIGxlZ2FsIG5vdGljZSBvbiBtb2JpbGUgJiB0YWJsZXRcbiAgLmZvcm0tZmllbGQtc3VibWl0IHtcbiAgICBvcmRlcjogMTtcbiAgfVxuXG4gIC5mb3JtLWxlZ2FsLW5vdGljZSxcbiAgLmZvcm0tZmllbGQtcmdwZCB7XG4gICAgb3JkZXI6IDI7XG4gIH1cbn1cblxuLndwY2Y3IHtcbiAgZm9udC1zaXplOiAkZm9ybS1kZWZhdWx0LWZvbnQtc2l6ZTtcblxuICAud3BjZjctZm9ybSB7XG4gICAgY29sb3I6ICRjb2xvci1mb3JtLXRleHQ7XG4gICAgbWFyZ2luLXRvcDogJGZvcm0tZmllbGQtbWFyZ2luLXRvcDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIG1hcmdpbi10b3A6ICRmb3JtLWZpZWxkLW1hcmdpbi10b3AtdGFibGV0O1xuICAgIH1cblxuICAgIC5mb3JtLWZpZWxkIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLWZpZWxkLW1hcmdpbi1ib3R0b207XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgZWFzZSAuNXM7XG5cbiAgICAgIHA6bm90KFtjbGFzc10pIHtcbiAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICB9XG5cbiAgICAgIGlucHV0IHtcbiAgICAgICAgJjpub3QoW3R5cGU9XCJzdWJtaXRcIl0pOm5vdChbdHlwZT1cImZpbGVcIl0pOm5vdChbdHlwZT1cImNoZWNrYm94XCJdKSB7XG4gICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAkZm9ybS1ndXR0ZXI7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1mb3JtLWZpZWxkLWJvcmRlcjtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZm9ybS1maWVsZC1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlIC40cztcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkZm9ybS1maWVsZC1pbnB1dC1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgJi53cGNmNy10ZXh0LCAmLndwY2Y3LW51bWJlciB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRmb3JtLWlucHV0LXRleHQtaGVpZ2h0O1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvci1mb3JtLXRleHQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi53cGNmNy1ub3QtdmFsaWQge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItZm9ybS1lcnJvcnM7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgJlt0eXBlPVwiZGF0ZVwiXSB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgJjo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogY2FsYygxMDAlIC0gMi41ZW0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0ZXh0YXJlYSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRmb3JtLWd1dHRlcjtcbiAgICAgICAgcGFkZGluZy10b3A6ICRmb3JtLWd1dHRlcjtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBjb2xvcjogJGNvbG9yLWZvcm0tdGV4dDtcbiAgICAgICAgcmVzaXplOiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItZm9ybS1maWVsZC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRmb3JtLWZpZWxkLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlIC40cztcbiAgICAgICAgYmFja2dyb3VuZDogJGZvcm0tZmllbGQtaW5wdXQtYmFja2dyb3VuZDtcbiAgICAgICAgaGVpZ2h0OiBpbml0aWFsO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLndwY2Y3LW5vdC12YWxpZCB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWZvcm0tZXJyb3JzO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHNlbGVjdC53cGNmNy1zZWxlY3QsXG4gICAgICBzZWxlY3Qud3BjZjctZm9ybS1jb250cm9sIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkZm9ybS1ndXR0ZXI7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBjb2xvcjogJGNvbG9yLWZvcm0tdGV4dDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWZvcm0tZmllbGQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkZm9ybS1maWVsZC1ib3JkZXItcmFkaXVzO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAkZm9ybS1pbnB1dC10ZXh0LWhlaWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogJGZvcm0tZmllbGQtaW5wdXQtYmFja2dyb3VuZDtcblxuICAgICAgICAmLndwY2Y3LW5vdC12YWxpZCB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItZm9ybS1lcnJvcnM7XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgPiBsYWJlbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAkZm9ybS1sYWJlbC1ndXR0ZXItdG9wO1xuICAgICAgICBsZWZ0OiAkZm9ybS1sYWJlbC1ndXR0ZXItbGVmdDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBjb2xvcjogJGNvbG9yLWZvcm0tdGV4dDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIGN1cnNvcjogdGV4dDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGZvbnQtc2l6ZSBlYXNlIC41cywgdHJhbnNmb3JtIGVhc2UtaW4tb3V0IC41cywgYmFja2dyb3VuZC1jb2xvciBlYXNlIC41cywgcGFkZGluZyBlYXNlIC41cztcbiAgICAgICAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9ybS1sYWJlbC1saW5lLWhlaWdodDtcbiAgICAgIH1cblxuICAgICAgJi5zdHlsZS1kYXJrIHtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIGNvbG9yOiAkY29sb3ItZm9ybS10ZXh0LXN0eWxlLWRhcms7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5lbXB0eSB7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBhbmltYXRpb246IC41cyBlYXNlLWluIDBzIDEgZm9ybS1sYWJlbDtcbiAgICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmZpbGxlZCxcbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIHBhZGRpbmc6IDAgJGZvcm0tZ3V0dGVyO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuZmlsbGVkIHtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIGFuaW1hdGlvbjogLjVzIGVhc2UtaW4gMHMgMSBmb3JtLWxhYmVsLWZpbGxlZDtcbiAgICAgICAgICBhbmltYXRpb24tZGlyZWN0aW9uOiBub3JtYWw7XG4gICAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgY29sb3I6ICRjb2xvci1mb3JtLWZpbGxlZCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXQsXG4gICAgICAgIHRleHRhcmVhIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvci1mb3JtLWZpbGxlZCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYubm8tYW5pbSxcbiAgICAgICYuZm9ybS1maWVsZC1ub2FuaW0ge1xuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgbWFyZ2luLXRvcDogJGZvcm0tbGFiZWwtbm8tYW5pbS1tYXJnaW4tdG9wO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkZm9ybS1sYWJlbC1uby1hbmltLXRyYW5zbGF0ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5mb3JtLWZpZWxkLXNlbGVjdCB7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5mb3JtLWZpZWxkLWFjY2VwdGFuY2Uge1xuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5mb3JtLWZpZWxkLXJncGQsXG4gICAgICAmLmZvcm0tbGVnYWwtbm90aWNlIHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIGF1dG87XG4gICAgICAgIGZvbnQtc2l6ZTogLjdyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cblxuICAgICAgJi5mb3JtLWZpZWxkLWRvdWJsZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBmbGV4OiAyO1xuXG4gICAgICAgICAgICBpbnB1dC53cGNmNy10ZXh0IHtcbiAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHggMCAwIDEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG5cbiAgICAgICAgICAgIGlucHV0LndwY2Y3LXRleHQge1xuICAgICAgICAgICAgICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDEwcHggMTBweCAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmZvcm0tZmllbGQtY2hlY2tib3gge1xuICAgICAgICAud3BjZjctY2hlY2tib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0uMjVlbTtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogLS4yNWVtO1xuXG4gICAgICAgICAgLndwY2Y3LWxpc3QtaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgLjI1ZW07XG5cbiAgICAgICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAud3BjZjctbGlzdC1pdGVtLWxhYmVsIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC41cmVtO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5jaGVja2JveC1pbmxpbmUge1xuICAgICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC4yNWVtO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC53cGNmNy1jaGVja2JveCB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgICAgICAgICAud3BjZjctbGlzdC1pdGVtIHtcbiAgICAgICAgICAgICAgZmxleDogMCAwIDIwMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmZvcm0tZmllbGQtZGF0ZSB7XG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICBoZWlnaHQ6ICRmb3JtLWlucHV0LXRleHQtaGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuaW5saW5lIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICB9XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAud3BjZjctcmFkaW8ge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAud3BjZjctbGlzdC1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC4yNWVtO1xuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLjI1ZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLndwY2Y3LWNoZWNrYm94IHtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZvcm0tZmllbGQtc3VibWl0IHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAuYWpheC1sb2FkZXIsIC53cGNmNy1zcGlubmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBtaW4taGVpZ2h0OiB1bnNldDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNwYW4ud3BjZjctbGlzdC1pdGVtIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAuZm9ybS1maWVsZC1yZXF1aXJlZCB7XG4gICAgICBjb2xvcjogJGNvbG9yLWZvcm0tZXJyb3JzO1xuICAgIH1cblxuICAgIC5mb3JtLWZpZWxkLXdyYXAge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgIG1hcmdpbi1yaWdodDogLTE1cHg7XG4gICAgICBtYXJnaW4tbGVmdDogLTE1cHg7XG5cbiAgICAgIC5mb3JtLWZpZWxkLWRhdGUge1xuICAgICAgICBmbGV4OiAxIDEgMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMTVweDtcblxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC53cGNmNy1mb3JtLWNvbnRyb2wtd3JhcCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgLndwY2Y3LW5vdC12YWxpZC10aXAge1xuICAgICAgICBjb2xvcjogJGNvbG9yLWZvcm0tZXJyb3JzICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvcm0tZXJyb3ItZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogLTJyZW07XG4gICAgICAgIGxlZnQ6ICRmb3JtLWd1dHRlcjtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZm9ybS1maWVsZC1kZXNjIHtcbiAgICAgIGZvbnQtc2l6ZTogJGZpZWxkLWRlc2Mtc2l6ZTtcbiAgICAgIGZvbnQtc3R5bGU6ICRmaWVsZC1kZXNjLXN0eWxlO1xuICAgICAgY29sb3I6ICRmaWVsZC1kZXNjLWNvbG9yO1xuICAgIH1cblxuICAgIC53cGNmNy1yZXNwb25zZS1vdXRwdXQge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICBmb250LXNpemU6IC45cmVtO1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDk1OXB4KSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLnN1Ym1pdHRpbmcpIHtcbiAgICAgIC5hamF4LWxvYWRlciwgLndwY2Y3LXNwaW5uZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zZW50IHtcbiAgICAgIC53cGNmNy1yZXNwb25zZS1vdXRwdXQge1xuICAgICAgICBjb2xvcjogJGNvbG9yLWZvcm0tbWFpbC1zZW50ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5pbnZhbGlkIHtcbiAgICAgIC53cGNmNy1yZXNwb25zZS1vdXRwdXQge1xuICAgICAgICBjb2xvcjogJGNvbG9yLWZvcm0tZXJyb3JzICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRm9ybSBncmlkXG4gIC5mb3JtLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbi1yaWdodDogLSRmb3JtLWd1dHRlcjtcbiAgICBtYXJnaW4tbGVmdDogLSRmb3JtLWd1dHRlcjtcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cblxuICAgICYgPiAuZm9ybS1jb2wge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkZm9ybS1ndXR0ZXIgIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmctbGVmdDogJGZvcm0tZ3V0dGVyICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJiA+IC5mb3JtLWNvbC02IHtcbiAgICAgIEBleHRlbmQgLmZvcm0tY29sO1xuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAgICAgZmxleDogMCAwIDUwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJiA+IC5mb3JtLWNvbC00IHtcbiAgICAgIEBleHRlbmQgLmZvcm0tY29sO1xuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAgICAgZmxleDogMCAwIDMzLjMzJTtcbiAgICAgICAgbWF4LXdpZHRoOiAzMy4zMyU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJiA+IC5mb3JtLWNvbC0zIHtcbiAgICAgIEBleHRlbmQgLmZvcm0tY29sO1xuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAgICAgZmxleDogMCAwIDI1JTtcbiAgICAgICAgbWF4LXdpZHRoOiAyNSU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpXG4vL1xuLy8gVGhlIG1hcCBkZWZpbmVkIGluIHRoZSBgJGdyaWQtYnJlYWtwb2ludHNgIGdsb2JhbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZSBgJGJyZWFrcG9pbnRzYCBhcmd1bWVudCBieSBkZWZhdWx0LlxuXG4vLyBOYW1lIG9mIHRoZSBuZXh0IGJyZWFrcG9pbnQsIG9yIG51bGwgZm9yIHRoZSBsYXN0IGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kIGxnIHhsIHh4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEBpZiBub3QgJG4ge1xuICAgIEBlcnJvciBcImJyZWFrcG9pbnQgYCN7JG5hbWV9YCBub3QgZm91bmQgaW4gYCN7JGJyZWFrcG9pbnRzfWBcIjtcbiAgfVxuICBAcmV0dXJuIGlmKCRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSwgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLCBudWxsKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIDU3NnB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWluICE9IDAsICRtaW4sIG51bGwpO1xufVxuXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguXG4vLyBUaGUgbWF4aW11bSB2YWx1ZSBpcyByZWR1Y2VkIGJ5IDAuMDJweCB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2Zcbi8vIGBtaW4tYCBhbmQgYG1heC1gIHByZWZpeGVzIGFuZCB2aWV3cG9ydHMgd2l0aCBmcmFjdGlvbmFsIHdpZHRocy5cbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvVFIvbWVkaWFxdWVyaWVzLTQvI21xLW1pbi1tYXhcbi8vIFVzZXMgMC4wMnB4IHJhdGhlciB0aGFuIDAuMDFweCB0byB3b3JrIGFyb3VuZCBhIGN1cnJlbnQgcm91bmRpbmcgYnVnIGluIFNhZmFyaS5cbi8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4MjYxXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1tYXgobWQsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgNzY3Ljk4cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtYXggYW5kICRtYXggPiAwLCAkbWF4IC0gLjAyLCBudWxsKTtcbn1cblxuLy8gUmV0dXJucyBhIGJsYW5rIHN0cmluZyBpZiBzbWFsbGVzdCBicmVha3BvaW50LCBvdGhlcndpc2UgcmV0dXJucyB0aGUgbmFtZSB3aXRoIGEgZGFzaCBpbiBmcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgXCJcIiAgKFJldHVybnMgYSBibGFuayBzdHJpbmcpXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIFwiLXNtXCJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgXCJcIiwgXCItI3skbmFtZX1cIik7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtYXgge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkdXBwZXIsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiAgYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6ICBicmVha3BvaW50LW1heCgkbmV4dCwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJG5leHQsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/