* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

/*
    Variable: fontsize-root
    'px' font size on root (html) element (with units removed).  Browser default is 16px.  Used to determine sizes for rem function.

    -@ based on http://css-tricks.com/snippets/css/less-mixin-for-rem-font-sizing/
    */
/*
    Mixin: rem (https://github.com/tobymackenzie/html-boilerplate/blob/master/web/_/styles/src/mixins/_units.scss)
    Output a property with pixel values for non 'rem' supporting browsers followed by the 'rem' equivalent for rem support browsers.  Can't currently accept values with comma separation, like multiple backgrounds or the like.

    -@ based on http://hugogiraudel.com/2013/03/18/ultimate-rem-mixin/
    */
/*
    Mixin: stripUnit
    Strip the unit from a value that has a unit

    -@ based on http://css-tricks.com/snippets/css/less-mixin-for-rem-font-sizing/
    */
article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary {
  display: block; }

audio, canvas, video {
  display: inline-block; }

audio:not([controls]) {
  display: none;
  height: 0; }

[hidden], template {
  display: none; }

html {
  font-family: sans-serif;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%; }

body {
  margin: 0; }

*, *:before, *:after {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

a {
  background: transparent; }

a:focus {
  outline: thin dotted; }

a:active, a:hover {
  outline: 0; }

h1 {
  font-size: 2em;
  margin: 0.67em 0; }

abbr[title] {
  border-bottom: 1px dotted; }

b, strong {
  font-weight: bold; }

dfn {
  font-style: italic; }

hr {
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  height: 0; }

mark {
  background: #ff0;
  color: #000; }

code, kbd, pre, samp {
  font-family: monospace, serif;
  font-size: 1em; }

pre {
  white-space: pre-wrap; }

q {
  quotes: "\201C" "\201D" "\2018" "\2019"; }

small {
  font-size: 80%; }

sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

img, iframe, video {
  max-width: 100%; }

img {
  height: auto;
  border: 0;
  vertical-align: middle; }

svg:not(:root) {
  overflow: hidden; }

figure {
  margin: 0; }

fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

legend {
  border: 0;
  padding: 0; }

button, input, select, textarea {
  font-family: inherit;
  font-size: 100%;
  margin: 0; }

button, input {
  line-height: normal; }

button, select {
  text-transform: none; }

button, html input[type="button"], input[type="reset"], input[type="submit"] {
  border: 0;
  -webkit-appearance: button;
  cursor: pointer; }

button[disabled], html input[disabled] {
  cursor: default; }

input[type="checkbox"], input[type="radio"] {
  box-sizing: border-box;
  padding: 0; }

input[type="search"] {
  -webkit-appearance: textfield; }

input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

button::-moz-focus-inner, input::-moz-focus-inner {
  border: 0;
  padding: 0; }

textarea {
  overflow: auto;
  vertical-align: top; }

textarea, input {
  outline: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

@font-face {
  font-family: 'Open Sans';
  src: url('webfonts/OpenSans_gdi.eot');
  src: url('webfonts/OpenSans_gdi.eot?#iefix') format('embedded-opentype'), url('webfonts/OpenSans_gdi.woff') format('woff'), url('webfonts/OpenSans_gdi.ttf') format('truetype'), url('webfonts/OpenSans_gdi.svg#OpenSans-Regular') format('svg');
  font-weight: 400;
  font-style: normal;
  font-stretch: normal;
  unicode-range: U20 -25CA; }

@font-face {
  font-family: 'Open Sans';
  src: url('webfonts/OpenSans-Italic_gdi.eot');
  src: url('webfonts/OpenSans-Italic_gdi.eot?#iefix') format('embedded-opentype'), url('webfonts/OpenSans-Italic_gdi.woff') format('woff'), url('webfonts/OpenSans-Italic_gdi.ttf') format('truetype'), url('webfonts/OpenSans-Italic_gdi.svg#OpenSans-Italic') format('svg');
  font-weight: 400;
  font-style: italic;
  font-stretch: normal;
  unicode-range: U20 -25CA; }

@font-face {
  font-family: 'Open Sans';
  src: url('webfonts/OpenSans-Light_gdi.eot');
  src: url('webfonts/OpenSans-Light_gdi.eot?#iefix') format('embedded-opentype'), url('webfonts/OpenSans-Light_gdi.woff') format('woff'), url('webfonts/OpenSans-Light_gdi.ttf') format('truetype'), url('webfonts/OpenSans-Light_gdi.svg#OpenSans-Light') format('svg');
  font-weight: 300;
  font-style: normal;
  font-stretch: normal;
  unicode-range: U20 -25CA; }

@font-face {
  font-family: 'Open Sans';
  src: url('webfonts/OpenSansLight-Italic_gdi.eot');
  src: url('webfonts/OpenSansLight-Italic_gdi.eot?#iefix') format('embedded-opentype'), url('webfonts/OpenSansLight-Italic_gdi.woff') format('woff'), url('webfonts/OpenSansLight-Italic_gdi.ttf') format('truetype'), url('webfonts/OpenSansLight-Italic_gdi.svg#OpenSansLight-Italic') format('svg');
  font-weight: 300;
  font-style: italic;
  font-stretch: normal;
  unicode-range: U20 -25CA; }

@font-face {
  font-family: 'Open Sans';
  src: url('webfonts/OpenSans-Semibold_gdi.eot');
  src: url('webfonts/OpenSans-Semibold_gdi.eot?#iefix') format('embedded-opentype'), url('webfonts/OpenSans-Semibold_gdi.woff') format('woff'), url('webfonts/OpenSans-Semibold_gdi.ttf') format('truetype'), url('webfonts/OpenSans-Semibold_gdi.svg#OpenSans-Semibold') format('svg');
  font-weight: 600;
  font-style: normal;
  font-stretch: normal;
  unicode-range: U20 -25CA; }

@font-face {
  font-family: 'Open Sans';
  src: url('webfonts/OpenSans-SemiboldItalic_gdi.eot');
  src: url('webfonts/OpenSans-SemiboldItalic_gdi.eot?#iefix') format('embedded-opentype'), url('webfonts/OpenSans-SemiboldItalic_gdi.woff') format('woff'), url('webfonts/OpenSans-SemiboldItalic_gdi.ttf') format('truetype'), url('webfonts/OpenSans-SemiboldItalic_gdi.svg#OpenSans-SemiboldItalic') format('svg');
  font-weight: 600;
  font-style: italic;
  font-stretch: normal;
  unicode-range: U20 -25CA; }

html, body {
  font-family: 'Open Sans', sans-serif;
  color: #333333;
  font-weight: 400;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

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

h1, .h1 {
  text-align: center;
  font-size: 36px; }

h2 {
  font-size: 22px; }

a {
  text-decoration: none;
  color: #cc0000; }
  a:hover {
    text-decoration: underline; }

dt {
  font-weight: 400; }

blockquote {
  border-left: 5px solid #666666;
  padding: 20px;
  background: #ffffff; }
  blockquote p:first-child {
    margin-top: 0; }

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

[class^="icon-"], [class*=" icon-"] {
  font-family: 'icomoon';
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.icon-content-copy:before {
  content: "\e61a"; }

.icon-chevron-right:before {
  content: "\e618"; }

.icon-chevron-left:before {
  content: "\e619"; }

.icon-linkedin:before {
  content: "\e600"; }

.icon-pencil:before {
  content: "\e617"; }

.icon-stack:before {
  content: "\e61b"; }

.icon-user:before {
  content: "\e605"; }

.icon-spinner:before {
  content: "\e606"; }

.icon-search:before {
  content: "\e616"; }

.icon-cog:before {
  content: "\e607"; }

.icon-leaf:before {
  content: "\e608"; }

.icon-switch:before {
  content: "\e609"; }

.icon-menu:before {
  content: "\e60a"; }

.icon-globe:before {
  content: "\e60b"; }

.icon-earth:before {
  content: "\e60c"; }

.icon-info:before {
  content: "\e60d"; }

.icon-cancel-circle:before {
  content: "\e60e"; }

.icon-checkmark-circle:before {
  content: "\e60f"; }

.icon-spam:before {
  content: "\e610"; }

.icon-close:before {
  content: "\e611"; }

.icon-checkmark:before {
  content: "\e612"; }

.icon-minus:before {
  content: "\e613"; }

.icon-plus:before {
  content: "\e614"; }

.icon-share:before {
  content: "\e615"; }

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

.icon-instagram:before {
  content: "\e602"; }

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

.icon-youtube:before {
  content: "\e604"; }

.icon-file-pdf:before {
  content: "\e61c"; }

.icon-file-word:before {
  content: "\e61d"; }

.icon-file-excel:before {
  content: "\e61e"; }

.icon-file-powerpoint:before {
  content: "\e61f"; }

.styleguide {
  /*

	Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-license.org/

	*/ }
  .styleguide h1 {
    text-align: left; }
  .styleguide .color-swatches {
    margin: 0;
    padding: 0;
    color: #fff;
    list-style: none;
    display: -webkit-box;
    display: -moz-box;
    display: box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex; }
    .styleguide .color-swatches li {
      padding: 2em 0;
      width: 6em;
      margin: 5px;
      text-align: center; }
    .styleguide .color-swatches .invert {
      color: #000; }
    .styleguide .color-swatches .border {
      border: 1px solid #c3c3c3; }
    .styleguide .color-swatches .c-cc0000 {
      background: #cc0000; }
    .styleguide .color-swatches .c-000000 {
      background: #000000; }
    .styleguide .color-swatches .c-ffffff {
      background: #ffffff; }
    .styleguide .color-swatches .c-f2f2f2 {
      background: #f2f2f2; }
    .styleguide .color-swatches .c-cccccc {
      background: #cccccc; }
    .styleguide .color-swatches .c-666666 {
      background: #666666; }
    .styleguide .color-swatches .c-333333 {
      background: #333333; }
    .styleguide .color-swatches .c-990000 {
      background: #990000; }
    .styleguide .color-swatches .c-d14905 {
      background: #d14905; }
    .styleguide .color-swatches .c-fdd726 {
      background: #fdd726; }
    .styleguide .color-swatches .c-7d8c1f {
      background: #7d8c1f; }
    .styleguide .color-swatches .c-427e93 {
      background: #427e93; }
    .styleguide .color-swatches .c-4156a1 {
      background: #4156a1; }
  .styleguide .toggle-code-block {
    display: inline-block;
    margin-bottom: 5px; }
  .styleguide code {
    height: 0;
    padding: 0 !important;
    background: #000;
    overflow: hidden;
    width: 100%; }
    .styleguide code.show {
      padding: 20px !important;
      height: auto;
      display: block;
      border-radius: 10px; }
  .styleguide .page-title {
    display: none; }
  .styleguide .component-title {
    color: #333333; }
  .styleguide .code-container {
    background: #cccccc;
    padding: 20px; }
  .styleguide .hljs {
    display: inline-block;
    padding: 0.5em;
    background: #23241f; }
  .styleguide .hljs, .styleguide .hljs-tag, .styleguide .css .hljs-rules, .styleguide .css .hljs-value, .styleguide .css .hljs-function .hljs-preprocessor, .styleguide .hljs-pragma {
    color: #f8f8f2; }
  .styleguide .hljs-strongemphasis, .styleguide .hljs-strong, .styleguide .hljs-emphasis {
    color: #a8a8a2; }
  .styleguide .hljs-bullet, .styleguide .hljs-blockquote, .styleguide .hljs-horizontal_rule, .styleguide .hljs-number, .styleguide .hljs-regexp, .styleguide .alias .hljs-keyword, .styleguide .hljs-literal, .styleguide .hljs-hexcolor {
    color: #ae81ff; }
  .styleguide .hljs-tag .hljs-value, .styleguide .hljs-code, .styleguide .hljs-title, .styleguide .css .hljs-class, .styleguide .hljs-class .hljs-title:last-child {
    color: #a6e22e; }
  .styleguide .hljs-link_url {
    font-size: 80%; }
  .styleguide .hljs-strong, .styleguide .hljs-strongemphasis {
    font-weight: bold; }
  .styleguide .hljs-emphasis, .styleguide .hljs-strongemphasis, .styleguide .hljs-class .hljs-title:last-child {
    font-style: italic; }
  .styleguide .hljs-keyword, .styleguide .hljs-function, .styleguide .hljs-change, .styleguide .hljs-winutils, .styleguide .hljs-flow, .styleguide .lisp .hljs-title, .styleguide .clojure .hljs-built_in, .styleguide .nginx .hljs-title, .styleguide .tex .hljs-special, .styleguide .hljs-header, .styleguide .hljs-attribute, .styleguide .hljs-symbol, .styleguide .hljs-symbol .hljs-string, .styleguide .hljs-tag .hljs-title, .styleguide .hljs-value, .styleguide .alias .hljs-keyword:first-child, .styleguide .css .hljs-tag, .styleguide .css .unit, .styleguide .css .hljs-important {
    color: #f92672; }
  .styleguide .hljs-function .hljs-keyword, .styleguide .hljs-class .hljs-keyword:first-child, .styleguide .hljs-constant, .styleguide .css .hljs-attribute {
    color: #66d9ef; }
  .styleguide .hljs-variable, .styleguide .hljs-params, .styleguide .hljs-class .hljs-title {
    color: #f8f8f2; }
  .styleguide .hljs-string, .styleguide .css .hljs-id, .styleguide .hljs-subst, .styleguide .haskell .hljs-type, .styleguide .ruby .hljs-class .hljs-parent, .styleguide .hljs-built_in, .styleguide .django .hljs-template_tag, .styleguide .django .hljs-variable, .styleguide .smalltalk .hljs-class, .styleguide .django .hljs-filter .hljs-argument, .styleguide .smalltalk .hljs-localvars, .styleguide .smalltalk .hljs-array, .styleguide .hljs-attr_selector, .styleguide .hljs-pseudo, .styleguide .hljs-addition, .styleguide .hljs-stream, .styleguide .hljs-envvar, .styleguide .apache .hljs-tag, .styleguide .apache .hljs-cbracket, .styleguide .tex .hljs-command, .styleguide .hljs-prompt, .styleguide .hljs-link_label, .styleguide .hljs-link_url {
    color: #e6db74; }
  .styleguide .hljs-comment, .styleguide .hljs-javadoc, .styleguide .java .hljs-annotation, .styleguide .python .hljs-decorator, .styleguide .hljs-template_comment, .styleguide .hljs-pi, .styleguide .hljs-doctype, .styleguide .hljs-deletion, .styleguide .hljs-shebang, .styleguide .apache .hljs-sqbracket, .styleguide .tex .hljs-formula {
    color: #75715e; }
  .styleguide .coffeescript .javascript, .styleguide .javascript .xml, .styleguide .tex .hljs-formula, .styleguide .xml .javascript, .styleguide .xml .vbscript, .styleguide .xml .css, .styleguide .xml .hljs-cdata, .styleguide .xml .php, .styleguide .php .xml {
    opacity: 0.5; }

body {
  -webkit-overflow-scrolling: touch;
  background: #f2f2f2; }

.header-container .wrapper, .content-container .wrapper, .footer-container .wrapper {
  max-width: 68em;
  margin-left: auto;
  margin-right: auto;
  padding: 0 10px; }
  .header-container .wrapper:after, .content-container .wrapper:after, .footer-container .wrapper:after {
    content: "";
    display: table;
    clear: both; }

.content-container {
  margin-bottom: 60px; }
  .content-container h1 {
    margin: 40px 0; }
    .content-container h1 sup {
      font-size: 18px;
      font-weight: 300;
      top: -0.9em; }
  .page-template-page-secondary-php .content-container {
    padding-top: 10px; }

.header-container {
  background: #fff;
  left: 0;
  right: 0;
  z-index: 300;
  -webkit-transition: all 0.2s linear;
  -moz-transition: all 0.2s linear;
  transition: all 0.2s linear; }
  .header-container .logo {
    float: left;
    font-size: 0;
    margin-top: 10px; }
    .header-container .logo a {
      display: inline-block; }
      .header-container .logo a img {
        -webkit-transition: all 0.2s linear;
        -moz-transition: all 0.2s linear;
        transition: all 0.2s linear;
        padding: 20px; }
      .header-container .logo a:first-child img {
        display: inline-block;
        padding-left: 0;
        border-right: 1px solid #000; }
  .header-container nav.primary {
    width: 55%;
    float: right;
    margin-right: 50px;
    margin-top: 30px;
    -webkit-transition: margin 0.2s linear;
    -moz-transition: margin 0.2s linear;
    transition: margin 0.2s linear; }
    .header-container nav.primary button {
      -webkit-transition: all 0.2s linear;
      -moz-transition: all 0.2s linear;
      transition: all 0.2s linear;
      display: none;
      background: #cc0000;
      height: 45px;
      width: 48px;
      top: 25px;
      right: 20px;
      overflow: hidden;
      position: absolute;
      cursor: pointer;
      outline: none;
      text-indent: -9999px; }
      .header-container nav.primary button:after {
        content: '';
        position: absolute;
        width: 68%;
        height: 5px;
        background: #ffffff;
        top: 10px;
        left: 16%;
        box-shadow: 0 10px 0 #ffffff, 0 20px 0 #ffffff; }
    @media screen and (max-width: 960px)  {
      .header-container nav.primary {
        position: fixed;
        width: 100%;
        top: 0;
        margin-top: 0;
        right: 0;
        z-index: 100; }
        .header-container nav.primary button {
          display: block; }
        .header-container nav.primary > ul {
          -webkit-transition: all 0.3s linear;
          -moz-transition: all 0.3s linear;
          transition: all 0.3s linear;
          background: #f2f2f2;
          overflow: hidden;
          max-height: 0;
          position: absolute;
          right: -50px;
          width: 100%;
          top: 100px;
          padding: 0;
          text-align: center; } }
  .header-container .share {
    position: absolute;
    right: 0;
    z-index: 500; }
  .header-container header {
    -webkit-transition: all 0.2s linear;
    -moz-transition: all 0.2s linear;
    transition: all 0.2s linear;
    position: relative;
    overflow: hidden;
    height: 100px;
    padding: 0 10px; }
    .page-template-page-secondary-php .header-container header {
      height: 140px; }

body.headroom--unpinned .header-container {
  position: fixed; }
  body.headroom--unpinned .header-container header {
    height: 70px; }
    body.headroom--unpinned .header-container header .logo {
      margin-top: 10px; }
      body.headroom--unpinned .header-container header .logo img {
        padding-top: 5px;
        padding-bottom: 5px; }
  @media screen and (min-width: 960px) {
    body.headroom--unpinned .header-container nav.primary {
      margin-top: 15px; } }
  body.headroom--unpinned .header-container nav.primary > ul {
    top: 70px; }
    body.headroom--unpinned .header-container nav.primary > ul .sub-menu {
      top: 70px; }
  body.headroom--unpinned .header-container nav.primary button {
    top: 10px; }
body.headroom--unpinned.page-template-page-secondary-php .content-container {
  padding-top: 140px; }
body.headroom--unpinned.page-template-page-secondary-php .header-container header {
  height: 70px; }

.content-container {
  padding-top: 40px; }
  .headroom--unpinned .content-container {
    padding-top: 130px; }
  .content-container .sub-nav {
    position: fixed;
    left: 0;
    z-index: 301;
    color: #ffffff;
    padding: 10px;
    top: 100px;
    -webkit-transition: all 0.2s linear;
    -moz-transition: all 0.2s linear;
    transition: all 0.2s linear; }
    @media screen and (max-width: 960px)  {
      .content-container .sub-nav {
        display: none; } }
    .headroom--unpinned .content-container .sub-nav {
      top: 70px; }
    .content-container .sub-nav span {
      margin-right: 10px; }
  .content-container .alignleft {
    float: left;
    margin-right: 20px; }
  .content-container .lcp_paginator {
    background: #333333;
    color: #ffffff;
    display: inline-block;
    float: right;
    margin: 0;
    padding: 0; }
    .content-container .lcp_paginator li {
      border: none; }
      .content-container .lcp_paginator li span {
        display: inline-block;
        padding: 10px 20px; }
      .content-container .lcp_paginator li a {
        display: inline-block;
        padding: 10px 20px;
        color: #cccccc; }
        .content-container .lcp_paginator li a:hover {
          color: #ffffff; }
  .content-container .lcp_catlist {
    margin: 0;
    padding: 0; }

.footer-container {
  margin-top: 20px;
  background: #000000;
  color: #ffffff;
  padding-bottom: 50px; }
  .footer-container .credits {
    background: #cc0000; }
    .footer-container .credits ul {
      margin: 0;
      padding: 0;
      list-style: none; }
      .footer-container .credits ul li {
        padding: 30px 0;
        text-align: center; }
        @media screen and (min-width: 768px) {
          .footer-container .credits ul li {
            width: 27%;
            float: left;
            text-align: left;
            display: inline-block; }
            .footer-container .credits ul li:first-child {
              width: 46%; }
            .footer-container .credits ul li:last-child {
              padding: 27px 0;
              text-align: right; } }
  .footer-container a {
    color: #fff; }
  .footer-container footer {
    margin-top: 20px; }
    .footer-container footer h2 {
      font-size: 24px;
      font-weight: 400; }
    @media screen and (min-width: 960px) {
      .footer-container footer > div {
        float: left;
        width: 27%; }
        .footer-container footer > div:first-child {
          width: 46%;
          padding-right: 30px; } }
    @media screen and (min-width: 960px) {
      .footer-container footer .social-bar h2 {
        min-height: 70px; } }
    .footer-container footer .social-bar ul {
      display: inline-block;
      list-style: none;
      margin: 0;
      padding: 0; }
      .footer-container footer .social-bar ul li {
        display: inline-block;
        border: 1px solid #ffffff;
        border-right: none;
        float: left;
        width: 48px;
        height: 48px;
        position: relative; }
        .footer-container footer .social-bar ul li:last-child {
          border-right: 1px solid #ffffff; }
        .footer-container footer .social-bar ul li a {
          position: absolute;
          width: 100%;
          top: 0;
          bottom: 0;
          font-size: 1.5em;
          text-decoration: none; }
          .footer-container footer .social-bar ul li a span {
            position: absolute;
            top: 50%;
            left: 50%;
            -webkit-transform: translate(-50%, -50%);
            -moz-transform: translate(-50%, -50%);
            -ms-transform: translate(-50%, -50%);
            -o-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%); }

input[type="submit"], button, a.button {
  padding: 10px 20px;
  padding: 0.625rem 1.25rem;
  margin: 0 0 10px;
  margin: 0 0 0.625rem;
  background-color: #cc0000;
  color: white;
  -webkit-transition: all 300ms ease-in-out;
  -moz-transition: all 300ms ease-in-out;
  transition: all 300ms ease-in-out; }
  input[type="submit"]:hover, button:hover, a.button:hover {
    background-color: #990000; }

label {
  display: block; }

input[type="text"], input[type="email"] {
  background-color: #fff;
  border: 1px solid #cc0000;
  padding: 8px 10px;
  padding: 0.5rem 0.625rem;
  -webkit-transition: all 300 ease-in-out;
  -moz-transition: all 300 ease-in-out;
  transition: all 300 ease-in-out; }
input[type="checkbox"] + label, input[type="radio"] + label {
  display: inline-block;
  cursor: pointer;
  position: relative;
  padding-left: 25px;
  margin-right: 15px;
  font-size: 13px; }
  input[type="checkbox"] + label:before, input[type="radio"] + label:before {
    content: "";
    display: inline-block;
    width: 16px;
    height: 16px;
    margin-right: 10px;
    position: absolute;
    left: 0;
    bottom: 1px;
    background-color: #f2f2f2; }
input[type="checkbox"] + label:before {
  border: 1px solid #a5a5a5; }
input[type="radio"] + label:before {
  border-radius: 8px;
  border: 1px solid #a5a5a5; }
input[type="checkbox"], input[type="radio"] {
  display: none; }
input[type="radio"]:checked + label:before {
  background-color: #cc0000;
  color: #f3f3f3;
  font-size: 32px;
  text-align: center;
  line-height: 14px;
  border: 1px solid #660000; }
input[type="radio"]:checked + label:after {
  background-color: #fff;
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 4px;
  position: absolute;
  left: 4px;
  top: 5px; }
input[type="checkbox"]:checked + label:before {
  background-color: #cc0000;
  color: #f3f3f3;
  font-size: 32px;
  text-align: center;
  line-height: 14px;
  border: 1px solid #660000; }
input[type="checkbox"]:checked + label:after {
  content: "";
  display: inline-block;
  width: 7px;
  height: 12px;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  transform: rotate(45deg);
  position: absolute;
  left: 5px;
  top: 1px;
  border-right: 3px solid #fff;
  border-bottom: 3px solid #fff; }
input[type="search"]::-ms-clear {
  display: none; }

textarea {
  background-color: #fff;
  border: 1px solid #cc0000;
  padding: 8px 10px;
  padding: 0.5rem 0.625rem;
  -webkit-transition: all 300 ease-in-out;
  -moz-transition: all 300 ease-in-out;
  transition: all 300 ease-in-out; }

nav.primary ul {
  margin: 0;
  padding: 0; }

.flex-container {
  margin: 0;
  padding: 0;
  list-style: none; }
  .flex-containerul {
    font-size: 0; }
  .flex-container li {
    display: inline-block;
    font-size: 0.9em; }
    @media screen and (min-width: 1088px) { }
    .flex-container li a {
      color: #333;
      text-decoration: none;
      float: left;
      padding: 0.5em; }
  .flex-container .sub-menu {
    -webkit-transition: all 0.2s linear;
    -moz-transition: all 0.2s linear;
    transition: all 0.2s linear;
    display: none;
    position: fixed;
    top: 100px;
    left: 0;
    right: 0;
    list-style: none;
    background: #333333;
    font-size: 0; }
    .flex-container .sub-menu li {
      display: inline-block;
      text-align: left; }
      .flex-container .sub-menu li a {
        font-size: 14px;
        font-weight: 400;
        padding: 10px 20px;
        color: #ffffff;
        line-height: 24px; }
  .flex-container .current_page_item .sub-menu, .flex-container .current_page_ancestor .sub-menu {
    display: block;
    text-align: right; }
    @media screen and (max-width: 960px)  {
      .flex-container .current_page_item .sub-menu, .flex-container .current_page_ancestor .sub-menu {
        display: none; } }
    .flex-container .current_page_item .sub-menu .current-menu-item a, .flex-container .current_page_ancestor .sub-menu .current-menu-item a {
      font-weight: 700; }
  .flex-container .current-menu-item, .flex-container .current-menu-ancestor {
    font-weight: 600; }
    .flex-container .current-menu-item ul li, .flex-container .current-menu-ancestor ul li {
      font-weight: 300; }
      .flex-container .current-menu-item ul li.current-menu-item, .flex-container .current-menu-ancestor ul li.current-menu-item {
        font-weight: 400; }
  .styleguide .flex-container {
    background: #fff; }
  .flex-container.secondary li a {
    padding: 0.5em;
    line-height: 3em; }

.right {
  text-align: right; }

.no-scroll {
  overflow: hidden; }

.flyout-menu {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  overflow: hidden;
  background: rgba(0, 0, 0, 0);
  z-index: -1; }
  .flyout-menu.active {
    background: rgba(0, 0, 0, 0.5);
    z-index: 500; }
    .flyout-menu.active ul, .flyout-menu.active div {
      display: block; }
  .flyout-menu h3 {
    height: 70px;
    padding: 20px;
    margin: 0; }
  .flyout-menu h4 {
    margin: 0;
    padding: 10px 20px; }
  .flyout-menu ul, .flyout-menu div {
    display: none; }
  .flyout-menu [data-level] {
    display: block;
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    min-width: 300px;
    background: #f2f2f2;
    -webkit-transition: all 0.2s linear;
    -moz-transition: all 0.2s linear;
    transition: all 0.2s linear;
    -webkit-transform: translateX(300px);
    -moz-transform: translateX(300px);
    -ms-transform: translateX(300px);
    -o-transform: translateX(300px);
    transform: translateX(300px);
    border-left: 3px solid #cc0000; }
    .flyout-menu [data-level].active {
      -webkit-transform: translateX(0px);
      -moz-transform: translateX(0px);
      -ms-transform: translateX(0px);
      -o-transform: translateX(0px);
      transform: translateX(0px);
      z-index: 501; }
  .flyout-menu[data-level-active="2"] [data-level="1"] {
    margin-right: 40px; }
    .flyout-menu[data-level-active="2"] [data-level="1"] > ul > .close-btn {
      background: rgba(0, 0, 0, 0.5);
      top: 0;
      right: 0;
      left: 0;
      bottom: 0;
      cursor: pointer; }
  .flyout-menu[data-level-active="2"] [data-level="2"] {
    -webkit-transform: translateX(40px);
    -moz-transform: translateX(40px);
    -ms-transform: translateX(40px);
    -o-transform: translateX(40px);
    transform: translateX(40px); }
  .flyout-menu[data-level-active="3"] [data-level="1"] {
    margin-right: 80px; }
  .flyout-menu[data-level-active="3"] [data-level="2"] {
    -webkit-transform: translateX(40px);
    -moz-transform: translateX(40px);
    -ms-transform: translateX(40px);
    -o-transform: translateX(40px);
    transform: translateX(40px); }
    .flyout-menu[data-level-active="3"] [data-level="2"] > ul > .close-btn {
      background: rgba(0, 0, 0, 0.5);
      top: 0;
      right: 0;
      left: 0;
      bottom: 0;
      cursor: pointer; }
  .flyout-menu[data-level-active="3"] [data-level="3"] {
    -webkit-transform: translateX(40px);
    -moz-transform: translateX(40px);
    -ms-transform: translateX(40px);
    -o-transform: translateX(40px);
    transform: translateX(40px); }
  .flyout-menu[data-level-active="3"] [data-level="1"] > ul > .close-btn {
    background: rgba(0, 0, 0, 0.5);
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    cursor: pointer; }
  .flyout-menu nav ul {
    margin: 0;
    padding: 0;
    list-style: none; }
    .flyout-menu nav ul li {
      display: block;
      border-bottom: 1px solid #333; }
  .flyout-menu nav a {
    text-decoration: none;
    padding: 10px 20px;
    display: block;
    color: #000; }
    .flyout-menu nav a:hover {
      background: #a8a8a8; }
  .flyout-menu .close-btn {
    position: absolute;
    top: 20px;
    right: 10px;
    border: none; }
    .flyout-menu .close-btn button {
      position: relative;
      width: 25px;
      height: 25px;
      float: right;
      background: transparent; }
      .flyout-menu .close-btn button:before {
        content: '';
        position: absolute;
        width: 100%;
        top: 50%;
        height: 1px;
        left: 0;
        background: #000;
        -webkit-transform: rotate(45deg);
        -moz-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
        -o-transform: rotate(45deg);
        transform: rotate(45deg); }
      .flyout-menu .close-btn button:after {
        content: '';
        position: absolute;
        width: 100%;
        top: 50%;
        height: 1px;
        background: #000;
        left: 0;
        -webkit-transform: rotate(-45deg);
        -moz-transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
        -o-transform: rotate(-45deg);
        transform: rotate(-45deg); }
  .flyout-menu h4 {
    color: #fff;
    background: #cc0000; }

.share {
  -webkit-transition: all 0.2s ease-in-out;
  -moz-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  height: 100px;
  width: 50px;
  background: #333333;
  overflow: hidden; }
  .share ul {
    margin: 0;
    padding: 0;
    list-style: none;
    -webkit-transition: all 0.2s ease-in-out;
    -moz-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out;
    -webkit-transform: translateY(-50px);
    -moz-transform: translateY(-50px);
    -ms-transform: translateY(-50px);
    -o-transform: translateY(-50px);
    transform: translateY(-50px); }
    .share ul li a {
      display: inline-block;
      width: 50px;
      height: 50px;
      text-indent: -9999px;
      white-space: nowrap; }
    .share ul li .toggle {
      background: #333333 url(../img/social-share.png) no-repeat center; }
    .share ul li .fb {
      background: #3b5998 url(../img/social-fb.png) no-repeat center; }
    .share ul li .twitter {
      background: #00aced url(../img/social-twitter.png) no-repeat center; }
  .headroom--not-top .share {
    height: 70px; }
    .headroom--not-top .share ul {
      width: 190px;
      -webkit-transform: translateY(0px);
      -moz-transform: translateY(0px);
      -ms-transform: translateY(0px);
      -o-transform: translateY(0px);
      transform: translateY(0px); }
      .headroom--not-top .share ul li {
        float: left; }
        .headroom--not-top .share ul li a {
          width: 70px;
          height: 70px; }
        .headroom--not-top .share ul li:first-child a {
          width: 50px; }
    .headroom--not-top .share:hover, .headroom--not-top .share:focus {
      width: 190px; }

body.home .content-container {
  padding-top: 0; }
body.home.headroom--unpinned .content-container {
  padding-top: 100px; }

.search-container {
  background: #cc0000;
  color: #ffffff;
  display: inline-block;
  width: 100%; }
  .search-container .search-zip {
    text-align: center; }
  .search-container h2 {
    display: inline-block;
    text-align: center;
    font-weight: 400;
    padding: 20px 0;
    margin: 20px 0;
    border-bottom: 1px solid #ffffff; }
    @media screen and (min-width: 960px) {
      .search-container h2 {
        padding-right: 40px;
        border: none;
        border-right: 1px solid #ffffff;
        text-align: right;
        width: 50%;
        float: left; } }
  .search-container form {
    font-size: 0;
    text-align: center; }
    @media screen and (min-width: 960px) {
      .search-container form {
        float: left;
        width: 50%;
        padding: 20px 0;
        text-align: left; } }
    .search-container form .input {
      position: relative;
      margin-bottom: 40px;
      display: inline-block;
      font-size: 18px; }
      @media screen and (min-width: 960px) {
        .search-container form .input {
          margin: 0;
          padding: 13px 0;
          margin-left: 40px; } }
      .search-container form .input label {
        padding: 10px 0;
        padding-right: 10px;
        float: left; }
      .search-container form .input input[type=text] {
        float: left;
        border: none;
        text-shadow: none;
        box-shadow: none;
        padding: 10px;
        padding-left: 30px;
        display: inline-block;
        max-width: 190px;
        text-align: center;
        background: #ffffff url(../img/search-globe-icon.png) no-repeat 10px center; }
      .search-container form .input input[type=submit] {
        float: left;
        background: #660000;
        color: #ffffff;
        padding: 10px;
        display: inline-block;
        min-width: 110px; }
      .search-container form .input .error {
        position: absolute;
        display: none;
        top: 40px;
        width: 100%;
        text-align: center; }
        .search-container form .input .error.active {
          display: block; }

#chart_div {
  min-height: 700px;
  overflow: hidden; }

#chart_div path {
  stroke: #fff; }
  #chart_div path:hover {
    stroke: #fdd726;
    fill: #fdd726;
    cursor: pointer; }

.tooltip {
  width: 200px; }
  .tooltip h3 {
    color: #cc0000;
    padding-bottom: 0;
    margin-bottom: 5px; }

.google-visualization-tooltip-item:first-child {
  display: none; }

.map-container {
  position: relative;
  overflow: hidden; }
  .map-container #chart_div {
    display: none; }
    @media screen and (min-width: 960px) {
      .map-container #chart_div {
        display: block;
        margin-left: 30px;
        margin-right: -30px; } }
  .map-container h2 {
    font-size: 32px;
    text-align: center;
    font-weight: 400;
    margin: 40px 0;
    margin-bottom: 0; }
  .map-container .cta-buttons {
    display: none;
    position: absolute;
    right: 50px;
    bottom: 0; }
    @media screen and (min-width: 960px) {
      .map-container .cta-buttons {
        display: block; } }
    .map-container .cta-buttons ul {
      margin: 0;
      padding: 0;
      list-style: none; }
      .map-container .cta-buttons ul li {
        display: inline-block; }
        .map-container .cta-buttons ul li a {
          display: inline-block;
          vertical-align: middle;
          border: 1px solid #cccccc;
          padding: 5px 10px;
          background: #ffffff;
          color: #666666; }
          .map-container .cta-buttons ul li a .cta-icon {
            display: inline-block;
            text-align: center;
            vertical-align: middle;
            color: #ffffff;
            border-radius: 50%;
            background: #666666;
            font-weight: 700;
            width: 48px;
            height: 48px;
            line-height: 48px;
            font-size: 24px;
            margin-right: 5px; }
          .map-container .cta-buttons ul li a img {
            margin-right: 5px; }
          .map-container .cta-buttons ul li a span {
            display: inline-block;
            vertical-align: middle; }
          .map-container .cta-buttons ul li a [class^="icon-"], .map-container .cta-buttons ul li a [class*=" icon-"] {
            color: #cccccc;
            padding-left: 20px;
            line-height: 48px;
            vertical-align: middle; }
          .map-container .cta-buttons ul li a:hover {
            text-decoration: none;
            background: #f2f2f2; }
  .map-container .mobile-list {
    margin-top: 30px; }
    @media screen and (min-width: 960px) {
      .map-container .mobile-list {
        display: none; } }
    .map-container .mobile-list ul {
      margin: 0;
      padding: 0;
      list-style: none;
      max-width: 68em;
      margin-left: auto;
      margin-right: auto; }
      .map-container .mobile-list ul:after {
        content: "";
        display: table;
        clear: both; }
      .map-container .mobile-list ul li {
        background: #333333;
        color: #ffffff; }
        .map-container .mobile-list ul li.tablet-header, .map-container .mobile-list ul li:first-child {
          padding: 10px 20px; }
        .map-container .mobile-list ul li span:last-child {
          float: right;
          width: 40px;
          text-align: center; }
        .map-container .mobile-list ul li a {
          padding: 10px 20px;
          display: inline-block;
          width: 100%; }
          .map-container .mobile-list ul li a span:last-child {
            color: #666666; }
        .map-container .mobile-list ul li:nth-child(2n+3) {
          background: #efefef; }
        .map-container .mobile-list ul li:nth-child(2n+4) {
          background: #ffffff; }
        @media screen and (max-width: 640px)  {
          .map-container .mobile-list ul li.tablet-header {
            display: none; } }
        @media screen and (min-width: 640px) {
          .map-container .mobile-list ul li {
            float: left;
            display: block;
            margin-right: 4.82916%;
            width: 47.58542%; }
            .map-container .mobile-list ul li:nth-child(4n+3), .map-container .mobile-list ul li:nth-child(4n+4) {
              background: #efefef; }
            .map-container .mobile-list ul li:nth-child(4n+5), .map-container .mobile-list ul li:nth-child(4n+6) {
              background: #ffffff; }
            .map-container .mobile-list ul li:last-child {
              margin-right: 0; }
            .map-container .mobile-list ul li:nth-child(2n) {
              margin-right: 0; }
            .map-container .mobile-list ul li:nth-child(2n+1) {
              clear: left; } }

.ir {
  display: block;
  overflow: hidden;
  border: 0;
  background-color: transparent;
  background-repeat: no-repeat;
  text-align: left;
  text-indent: -999em;
  direction: ltr;
  *line-height: 0; }
  .ir br {
    display: none; }

.hidden {
  display: none !important;
  visibility: hidden; }

.visuallyhidden {
  position: absolute;
  overflow: hidden;
  clip: rect(0 0 0 0);
  margin: -1px;
  padding: 0;
  width: 1px;
  height: 1px;
  border: 0; }
  .visuallyhidden.focusable:active, .visuallyhidden.focusable:focus {
    position: static;
    overflow: visible;
    clip: auto;
    margin: 0;
    width: auto;
    height: auto; }

.invisible {
  visibility: hidden; }

.group {
  *zoom: 1; }
  .group:before, .group:after {
    display: table;
    content: ""; }
  .group:after {
    clear: both; }

img[src*="googleadservices.com"] {
  position: absolute;
  top: 0;
  left: -9000em; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlcyI6WyJjc3Mvc2Nzcy9zdHlsZS5zY3NzIiwiY3NzL3Njc3MvdXRpbGl0aWVzL19pbXBvcnRzLnNjc3MiLCJub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL2Fzc2V0cy9zdHlsZXNoZWV0cy9fYm91cmJvbi5zY3NzIiwibm9kZV9tb2R1bGVzL25vZGUtbmVhdC9hc3NldHMvc3R5bGVzaGVldHMvX25lYXQuc2NzcyIsImNzcy9zY3NzL3V0aWxpdGllcy9fZnVuY3Rpb25zLnNjc3MiLCJjc3Mvc2Nzcy91dGlsaXRpZXMvX3NldHRpbmdzLnNjc3MiLCJjc3Mvc2Nzcy9iYXNlL19ub3JtYWxpemUuc2NzcyIsImNzcy9zY3NzL2Jhc2UvX3R5cG9ncmFwaHkuc2NzcyIsImNzcy9zY3NzL2Jhc2UvX3N0eWxlZ3VpZGUuc2NzcyIsImNzcy9zY3NzL2xheW91dHMvX2dsb2JhbC5zY3NzIiwiY3NzL3Njc3MvbGF5b3V0cy9faGVhZGVyLnNjc3MiLCJjc3Mvc2Nzcy9sYXlvdXRzL19jb250ZW50LnNjc3MiLCJjc3Mvc2Nzcy9sYXlvdXRzL19mb290ZXIuc2NzcyIsImNzcy9zY3NzL2NvbXBvbmVudHMvX2FsZXJ0cy5zY3NzIiwiY3NzL3Njc3MvY29tcG9uZW50cy9fYW5pbWF0aW9ucy5zY3NzIiwiY3NzL3Njc3MvY29tcG9uZW50cy9fYnV0dG9ucy5zY3NzIiwiY3NzL3Njc3MvY29tcG9uZW50cy9fZm9ybXMuc2NzcyIsImNzcy9zY3NzL2NvbXBvbmVudHMvX21lZGlhLnNjc3MiLCJjc3Mvc2Nzcy9jb21wb25lbnRzL19uYXZpZ2F0aW9ucy5zY3NzIiwiY3NzL3Njc3MvY29tcG9uZW50cy9fcGFuZWxzLnNjc3MiLCJjc3Mvc2Nzcy9jb21wb25lbnRzL19zZWFyY2gtZm9ybS5zY3NzIiwiY3NzL3Njc3MvY29tcG9uZW50cy9fc2VhcmNoLXJlc3VsdHMuc2NzcyIsImNzcy9zY3NzL2NvbXBvbmVudHMvX3RhYmxlcy5zY3NzIiwiY3NzL3Njc3MvY29tcG9uZW50cy9fc29jaWFsLWhlYWRlci5zY3NzIiwiY3NzL3Njc3MvcGFnZXMvX2Vycm9yLTQwNC5zY3NzIiwiY3NzL3Njc3MvcGFnZXMvX2hvbWUuc2NzcyIsImNzcy9zY3NzL3V0aWxpdGllcy9faGVscGVycy5zY3NzIiwibm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX3ByZWZpeGVyLnNjc3MiLCJub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fcHgtdG8tZW0uc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCJub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yYWRpYWwtYXJnLXBhcnNlci5zY3NzIiwibm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JlbmRlci1ncmFkaWVudHMuc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3NoYXBlLXNpemUtc3RyaXBwZXIuc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fZmxleC1ncmlkLnNjc3MiLCJub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2dyaWQtd2lkdGguc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fZ29sZGVuLXJhdGlvLnNjc3MiLCJub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2xpbmVhci1ncmFkaWVudC5zY3NzIiwibm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19tb2R1bGFyLXNjYWxlLnNjc3MiLCJub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3B4LXRvLWVtLnNjc3MiLCJub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3JhZGlhbC1ncmFkaWVudC5zY3NzIiwibm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19zdHJpcC11bml0cy5zY3NzIiwibm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL190aW50LXNoYWRlLnNjc3MiLCJub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3RyYW5zaXRpb24tcHJvcGVydHktbmFtZS5zY3NzIiwibm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYW5pbWF0aW9uLnNjc3MiLCJub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19hcHBlYXJhbmNlLnNjc3MiLCJub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19iYWNrZmFjZS12aXNpYmlsaXR5LnNjc3MiLCJub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19iYWNrZ3JvdW5kLnNjc3MiLCJub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19iYWNrZ3JvdW5kLWltYWdlLnNjc3MiLCJub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19ib3JkZXItaW1hZ2Uuc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JvcmRlci1yYWRpdXMuc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JveC1zaXppbmcuc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2NvbHVtbnMuc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZsZXgtYm94LnNjc3MiLCJub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19mb250LWZhY2Uuc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2h5cGhlbnMuc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2hpZHBpLW1lZGlhLXF1ZXJ5LnNjc3MiLCJub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19pbWFnZS1yZW5kZXJpbmcuc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2lubGluZS1ibG9jay5zY3NzIiwibm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fa2V5ZnJhbWVzLnNjc3MiLCJub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19saW5lYXItZ3JhZGllbnQuc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3BlcnNwZWN0aXZlLnNjc3MiLCJub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19yYWRpYWwtZ3JhZGllbnQuc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3RyYW5zZm9ybS5zY3NzIiwibm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdHJhbnNpdGlvbi5zY3NzIiwibm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdXNlci1zZWxlY3Quc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3BsYWNlaG9sZGVyLnNjc3MiLCJub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2J1dHRvbi5zY3NzIiwibm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19jbGVhcmZpeC5zY3NzIiwibm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19mb250LWZhbWlseS5zY3NzIiwibm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19oaWRlLXRleHQuc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9faHRtbDUtaW5wdXQtdHlwZXMuc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcG9zaXRpb24uc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcHJlZml4ZXIuc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcmV0aW5hLWltYWdlLnNjc3MiLCJub2RlX21vZHVsZXMvbm9kZS1ib3VyYm9uL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3NpemUuc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLWJvdXJib24vYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fdGltaW5nLWZ1bmN0aW9ucy5zY3NzIiwibm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL190cmlhbmdsZS5zY3NzIiwibm9kZV9tb2R1bGVzL25vZGUtYm91cmJvbi9hc3NldHMvc3R5bGVzaGVldHMvX2JvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZy5zY3NzIiwibm9kZV9tb2R1bGVzL25vZGUtbmVhdC9hc3NldHMvc3R5bGVzaGVldHMvX25lYXQtaGVscGVycy5zY3NzIiwibm9kZV9tb2R1bGVzL25vZGUtbmVhdC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fcHJpdmF0ZS5zY3NzIiwibm9kZV9tb2R1bGVzL25vZGUtbmVhdC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fcmVzZXQuc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLW5lYXQvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX2dyaWQuc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLW5lYXQvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX29tZWdhLnNjc3MiLCJub2RlX21vZHVsZXMvbm9kZS1uZWF0L2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19vdXRlci1jb250YWluZXIuc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLW5lYXQvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX3NwYW4tY29sdW1ucy5zY3NzIiwibm9kZV9tb2R1bGVzL25vZGUtbmVhdC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fcm93LnNjc3MiLCJub2RlX21vZHVsZXMvbm9kZS1uZWF0L2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19zaGlmdC5zY3NzIiwibm9kZV9tb2R1bGVzL25vZGUtbmVhdC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fcGFkLnNjc3MiLCJub2RlX21vZHVsZXMvbm9kZS1uZWF0L2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19maWxsLXBhcmVudC5zY3NzIiwibm9kZV9tb2R1bGVzL25vZGUtbmVhdC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fbWVkaWEuc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLW5lYXQvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX3RvLWRlcHJlY2F0ZS5zY3NzIiwibm9kZV9tb2R1bGVzL25vZGUtbmVhdC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fdmlzdWFsLWdyaWQuc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLW5lYXQvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fcHJpdmF0ZS5zY3NzIiwibm9kZV9tb2R1bGVzL25vZGUtbmVhdC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19uZXctYnJlYWtwb2ludC5zY3NzIiwibm9kZV9tb2R1bGVzL25vZGUtbmVhdC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX2dyaWQuc2NzcyIsIm5vZGVfbW9kdWxlcy9ub2RlLW5lYXQvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL192aXN1YWwtZ3JpZC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBbUZBQTtFVFNRLG9CU1BnQjtFVFloQixpQlNaZ0I7RVQyQmhCLFlTM0JnQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QTdFRnhCLFNBQVMsT0FBTyxTQUFTLFlBQVksUUFBUSxRQUFRLFFBQVEsUUFBUSxNQUFNLEtBQUssU0FBUztFQVNVLFNBQVM7O0FBQzVHLE9BQU8sUUFBUTtFQUFRLFNBQVM7O0FBQ2hDLEtBQUssS0FBSztFQUFjLFNBQVM7RUFBTSxRQUFROztBQUMvQyxV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QUFVO0VBQ1YsTUFBTTtFQUNOLFFBQVE7RUFDUixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7RUFDUixRQUFRO0VBQ1osZUFBZSxVQUFVLFNBQVMsZUFBZSxVQUFVO0lBRy9DLFVBQVU7SUFDVixVQUFVO0lBQ1YsTUFBTTtJQUNOLFFBQVE7SUFDUixPQUFPO0lBQ1AsUUFBUTs7QUFLcEI7RUFDSSxZQUFZOztBQUdoQjtFQUNJLE9BQU87RUFBWCxNQUFNLFNBQVMsTUFBTTtJQUdiLFNBQVM7SUFDVCxTQUFTO0VBQ2pCLE1BQU07SUFFRSxPQUFPOztBQUlmLEdBQUc7RUFFQyxVQUFVO0VBQ1YsS0FBSztFQUNMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gR2xvYmFsIFN0eWxlc2hlZXQgKEluY2x1ZGVzIG1lZGlhIHF1ZXJpZXMpXG4vLyBTdHlsZXMgdGhhdCB1c2VzIG1lZGlhIHF1ZXJpZXMgZm9yIG1vZGVybiBicm93c2VyIHN1cHBvcnRcbi8vIChjKSBBdGxhbnRpYyBCVC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEltcG9ydCBDb25maWd1cmF0aW9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkBpbXBvcnQgXCJ1dGlsaXRpZXMvaW1wb3J0c1wiOyIsIi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBHbG9iYWwgSW1wb3J0c1xuLy8gQ29uZmlndXJlZCBjb21wb25lbnQgaW1wb3J0cyBmb3IgdGhlIHNpdGUvYXBwbGljYXRpb25cbi8vIChjKSBBdGxhbnRpYyBCVC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEdsb2JhbCBJbXBvcnRzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cdC8vIDEuIEltcG9ydCBDb25maWd1cmF0aW9uc1x0XHRcdFx0XHRcdFx0ICAoUmVxdWlyZWQpXG5cdC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0QGltcG9ydCBcImJvdXJib25cIjtcblx0QGltcG9ydCBcIm5lYXRcIjtcblx0XG5cblx0Ly8gMi4gSW1wb3J0IEdyaWQsIEZ1bmN0aW9ucyAmIFNldHRpbmdzXHRcdFx0XHQgIChSZXF1aXJlZClcblx0Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRAaW1wb3J0IFwidXRpbGl0aWVzL2Z1bmN0aW9uc1wiO1xuXHRAaW1wb3J0IFwidXRpbGl0aWVzL3NldHRpbmdzXCI7XG5cblxuXHQvLyAzLiBJbXBvcnQgQmFzZSBcdFx0XHRcdFx0XHRcdFx0XHQgIChSZXF1aXJlZClcblx0Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRAaW1wb3J0IFwiYmFzZS9ub3JtYWxpemVcIjtcblx0QGltcG9ydCBcImJhc2UvdHlwb2dyYXBoeVwiO1xuXG5cdEBpbXBvcnQgXCJiYXNlL3N0eWxlZ3VpZGVcIjtcblxuXG5cdC8vIDQuIEltcG9ydCBMYXlvdXRzXG5cdC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0QGltcG9ydCBcImxheW91dHMvZ2xvYmFsXCI7XG5cdEBpbXBvcnQgXCJsYXlvdXRzL2hlYWRlclwiO1xuXHRAaW1wb3J0IFwibGF5b3V0cy9jb250ZW50XCI7XG5cdEBpbXBvcnQgXCJsYXlvdXRzL2Zvb3RlclwiO1xuXG5cblx0Ly8gNS4gSW1wb3J0IENvbXBvbmVudHNcblx0Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRAaW1wb3J0IFwiY29tcG9uZW50cy9hbGVydHNcIjtcblx0QGltcG9ydCBcImNvbXBvbmVudHMvYW5pbWF0aW9uc1wiO1xuXHRAaW1wb3J0IFwiY29tcG9uZW50cy9idXR0b25zXCI7XG5cdEBpbXBvcnQgXCJjb21wb25lbnRzL2Zvcm1zXCI7XG5cdEBpbXBvcnQgXCJjb21wb25lbnRzL21lZGlhXCI7XG5cdEBpbXBvcnQgXCJjb21wb25lbnRzL25hdmlnYXRpb25zXCI7XG5cdEBpbXBvcnQgXCJjb21wb25lbnRzL3BhbmVsc1wiO1xuXHRAaW1wb3J0IFwiY29tcG9uZW50cy9zZWFyY2gtZm9ybVwiO1xuXHRAaW1wb3J0IFwiY29tcG9uZW50cy9zZWFyY2gtcmVzdWx0c1wiO1xuXHRAaW1wb3J0IFwiY29tcG9uZW50cy90YWJsZXNcIjtcblx0QGltcG9ydCBcImNvbXBvbmVudHMvc29jaWFsLWhlYWRlclwiO1xuXHRcblx0XG5cdC8vIDYuIEltcG9ydCBQYWdlc1xuXHQvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdEBpbXBvcnQgXCJwYWdlcy9lcnJvci00MDRcIjtcblx0QGltcG9ydCBcInBhZ2VzL2hvbWVcIjtcblx0XG5cblx0Ly8gNy4gSW1wb3J0IFZlbmRvcnNcblx0Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQvLyBAaW1wb3J0IFwidmVuZG9ycy9wYXJ0aWFsLW5hbWVcIjtcblxuXG5cdC8vIDguIEltcG9ydCBBZGRpdGlvbmFsIFV0aWxpdGllc1xuXHQvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdEBpbXBvcnQgXCJ1dGlsaXRpZXMvaGVscGVyc1wiOyIsIi8vIFNldHRpbmdzXG5AaW1wb3J0IFwic2V0dGluZ3MvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9weC10by1lbVwiO1xuXG4vLyBDdXN0b20gSGVscGVyc1xuQGltcG9ydCBcImhlbHBlcnMvZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1hcmctcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmVuZGVyLWdyYWRpZW50c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvc2hhcGUtc2l6ZS1zdHJpcHBlclwiO1xuXG4vLyBDdXN0b20gRnVuY3Rpb25zXG5AaW1wb3J0IFwiZnVuY3Rpb25zL2ZsZXgtZ3JpZFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9ncmlkLXdpZHRoXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2dvbGRlbi1yYXRpb1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9saW5lYXItZ3JhZGllbnRcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbW9kdWxhci1zY2FsZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1lbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9yYWRpYWwtZ3JhZGllbnRcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc3RyaXAtdW5pdHNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdGludC1zaGFkZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVcIjtcblxuLy8gQ1NTMyBNaXhpbnNcbkBpbXBvcnQgXCJjc3MzL2FuaW1hdGlvblwiO1xuQGltcG9ydCBcImNzczMvYXBwZWFyYW5jZVwiO1xuQGltcG9ydCBcImNzczMvYmFja2ZhY2UtdmlzaWJpbGl0eVwiO1xuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZFwiO1xuQGltcG9ydCBcImNzczMvYmFja2dyb3VuZC1pbWFnZVwiO1xuQGltcG9ydCBcImNzczMvYm9yZGVyLWltYWdlXCI7XG5AaW1wb3J0IFwiY3NzMy9ib3JkZXItcmFkaXVzXCI7XG5AaW1wb3J0IFwiY3NzMy9ib3gtc2l6aW5nXCI7XG5AaW1wb3J0IFwiY3NzMy9jb2x1bW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9mbGV4LWJveFwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mYWNlXCI7XG5AaW1wb3J0IFwiY3NzMy9oeXBoZW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9oaWRwaS1tZWRpYS1xdWVyeVwiO1xuQGltcG9ydCBcImNzczMvaW1hZ2UtcmVuZGVyaW5nXCI7XG5AaW1wb3J0IFwiY3NzMy9pbmxpbmUtYmxvY2tcIjtcbkBpbXBvcnQgXCJjc3MzL2tleWZyYW1lc1wiO1xuQGltcG9ydCBcImNzczMvbGluZWFyLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy9wZXJzcGVjdGl2ZVwiO1xuQGltcG9ydCBcImNzczMvcmFkaWFsLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy90cmFuc2Zvcm1cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zaXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3VzZXItc2VsZWN0XCI7XG5AaW1wb3J0IFwiY3NzMy9wbGFjZWhvbGRlclwiO1xuXG4vLyBBZGRvbnMgJiBvdGhlciBtaXhpbnNcbkBpbXBvcnQgXCJhZGRvbnMvYnV0dG9uXCI7XG5AaW1wb3J0IFwiYWRkb25zL2NsZWFyZml4XCI7XG5AaW1wb3J0IFwiYWRkb25zL2ZvbnQtZmFtaWx5XCI7XG5AaW1wb3J0IFwiYWRkb25zL2hpZGUtdGV4dFwiO1xuQGltcG9ydCBcImFkZG9ucy9odG1sNS1pbnB1dC10eXBlc1wiO1xuQGltcG9ydCBcImFkZG9ucy9wb3NpdGlvblwiO1xuQGltcG9ydCBcImFkZG9ucy9wcmVmaXhlclwiO1xuQGltcG9ydCBcImFkZG9ucy9yZXRpbmEtaW1hZ2VcIjtcbkBpbXBvcnQgXCJhZGRvbnMvc2l6ZVwiO1xuQGltcG9ydCBcImFkZG9ucy90aW1pbmctZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RyaWFuZ2xlXCI7XG5cbi8vIFNvb24gdG8gYmUgZGVwcmVjYXRlZCBNaXhpbnNcbkBpbXBvcnQgXCJib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmdcIjtcbiIsIi8vIEJvdXJib24gTmVhdCAxLjYuMC5wcmVcbi8vIE1JVCBMaWNlbnNlZFxuLy8gQ29weXJpZ2h0IChjKSAyMDEyLTIwMTMgdGhvdWdodGJvdCwgaW5jLlxuXG4vLyBIZWxwZXJzXG5AaW1wb3J0IFwibmVhdC1oZWxwZXJzXCI7XG5cbi8vIEdyaWRcbkBpbXBvcnQgXCJncmlkL3ByaXZhdGVcIjtcbkBpbXBvcnQgXCJncmlkL3Jlc2V0XCI7XG5AaW1wb3J0IFwiZ3JpZC9ncmlkXCI7XG5AaW1wb3J0IFwiZ3JpZC9vbWVnYVwiO1xuQGltcG9ydCBcImdyaWQvb3V0ZXItY29udGFpbmVyXCI7XG5AaW1wb3J0IFwiZ3JpZC9zcGFuLWNvbHVtbnNcIjtcbkBpbXBvcnQgXCJncmlkL3Jvd1wiO1xuQGltcG9ydCBcImdyaWQvc2hpZnRcIjtcbkBpbXBvcnQgXCJncmlkL3BhZFwiO1xuQGltcG9ydCBcImdyaWQvZmlsbC1wYXJlbnRcIjtcbkBpbXBvcnQgXCJncmlkL21lZGlhXCI7XG5AaW1wb3J0IFwiZ3JpZC90by1kZXByZWNhdGVcIjtcbkBpbXBvcnQgXCJncmlkL3Zpc3VhbC1ncmlkXCI7XG4iLCIvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRnVuY3Rpb25zIGFuZCBNaXhpbnNcbi8vIE9yZ2FuaXplcyBTVEFNUCBhbmQgY3VzdG9tIFNhc3MgbWl4aW5zIGZvciB0aGUgcHJvamVjdC5cbi8vIChjKSBBdGxhbnRpYyBCVC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09L1xuXG5cbi8vIENvbnZlcnQgUHggdG8gUmVtXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PS9cblxuXHQvKlxuICAgIFZhcmlhYmxlOiBmb250c2l6ZS1yb290XG4gICAgJ3B4JyBmb250IHNpemUgb24gcm9vdCAoaHRtbCkgZWxlbWVudCAod2l0aCB1bml0cyByZW1vdmVkKS4gIEJyb3dzZXIgZGVmYXVsdCBpcyAxNnB4LiAgVXNlZCB0byBkZXRlcm1pbmUgc2l6ZXMgZm9yIHJlbSBmdW5jdGlvbi5cblxuICAgIC1AIGJhc2VkIG9uIGh0dHA6Ly9jc3MtdHJpY2tzLmNvbS9zbmlwcGV0cy9jc3MvbGVzcy1taXhpbi1mb3ItcmVtLWZvbnQtc2l6aW5nL1xuICAgICovXG4gICAgJGZvbnRzaXplLXJvb3Q6IDE2ICFkZWZhdWx0O1xuXG4gICAgLypcbiAgICBNaXhpbjogcmVtIChodHRwczovL2dpdGh1Yi5jb20vdG9ieW1hY2tlbnppZS9odG1sLWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3dlYi9fL3N0eWxlcy9zcmMvbWl4aW5zL191bml0cy5zY3NzKVxuICAgIE91dHB1dCBhIHByb3BlcnR5IHdpdGggcGl4ZWwgdmFsdWVzIGZvciBub24gJ3JlbScgc3VwcG9ydGluZyBicm93c2VycyBmb2xsb3dlZCBieSB0aGUgJ3JlbScgZXF1aXZhbGVudCBmb3IgcmVtIHN1cHBvcnQgYnJvd3NlcnMuICBDYW4ndCBjdXJyZW50bHkgYWNjZXB0IHZhbHVlcyB3aXRoIGNvbW1hIHNlcGFyYXRpb24sIGxpa2UgbXVsdGlwbGUgYmFja2dyb3VuZHMgb3IgdGhlIGxpa2UuXG5cbiAgICAtQCBiYXNlZCBvbiBodHRwOi8vaHVnb2dpcmF1ZGVsLmNvbS8yMDEzLzAzLzE4L3VsdGltYXRlLXJlbS1taXhpbi9cbiAgICAqL1xuXG4gICAgQG1peGluIHJlbSgkcHJvcGVydHksICR2YWx1ZXMpIHtcbiAgICAgICAgJHB4OiAoKTtcbiAgICAgICAgJHJlbTogKCk7XG5cbiAgICAgICAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXN7XG4gICAgICAgICAgICAvLy0tZ2V0IHVuaXQgb3IgJ25hbicgaWYgdGhlIHZhbHVlIGlzbid0IGEgbnVtYmVyXG4gICAgICAgICAgICAvLyAkdW5pdDogaWYodHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInLCB1bml0KCR2YWx1ZSksICduYW4nKTtcbiAgICAgICAgICAgICR1bml0OiAnbmFuJztcbiAgICAgICAgICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcid7XG4gICAgICAgICAgICAgICAgQGlmIHVuaXRsZXNzKCR2YWx1ZSl7XG4gICAgICAgICAgICAgICAgICAgICR1bml0OiAndW5pdGxlc3MnO1xuICAgICAgICAgICAgICAgIH1AZWxzZXtcbiAgICAgICAgICAgICAgICAgICAgJHVuaXQ6IHVuaXQoJHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vLS11bml0bGVzcyBudW1iZXJzIGFyZSBhZGRlZCBhcyBpZiB0aGV5IGFyZSBpbiBwaXhcbiAgICAgICAgICAgIEBpZiAkdW5pdCA9PSAndW5pdGxlc3MnIGFuZCAkdmFsdWUgIT0gMHtcbiAgICAgICAgICAgICAgICAkcHggOiBhcHBlbmQoJHB4LCAkdmFsdWUgKyBweCk7XG4gICAgICAgICAgICAgICAgJHJlbTogYXBwZW5kKCRyZW0sICgkdmFsdWUgLyAkZm9udHNpemUtcm9vdCArIHJlbSkpO1xuICAgICAgICAgICAgLy8tLXB4IG9yIHJlbSBnZXQgYWRkZWQgdG8gdGhlaXIgbGlzdCBhbmQgdGhlbiBjb252ZXJ0ZWQgdG8gdGhlIG90aGVyIHVuaXRcbiAgICAgICAgICAgIH1AZWxzZSBpZiAkdW5pdCA9PSAncHgnIG9yICR1bml0ID09ICdyZW0ne1xuICAgICAgICAgICAgICAgICR1bml0bGVzc1ZhbDogc3RyaXBVbml0KCR2YWx1ZSk7XG4gICAgICAgICAgICAgICAgQGlmICR1bml0ID09ICdweCd7XG4gICAgICAgICAgICAgICAgICAgICRweCA6IGFwcGVuZCgkcHgsICR2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICRyZW06IGFwcGVuZCgkcmVtLCAoJHVuaXRsZXNzVmFsIC8gJGZvbnRzaXplLXJvb3QgKyByZW0pKTtcbiAgICAgICAgICAgICAgICB9QGVsc2UgaWYgJHVuaXQgPT0gJ3JlbSd7XG4gICAgICAgICAgICAgICAgICAgICRweCA6IGFwcGVuZCgkcHgsKCR1bml0bGVzc1ZhbCAqICRmb250c2l6ZS1yb290ICsgcHgpKTtcbiAgICAgICAgICAgICAgICAgICAgJHJlbTogYXBwZW5kKCRyZW0sICR2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8tLWFsbCBvdGhlciB1bml0cyBnZXQgYXBwZW5kZWQgZGlyZWN0bHlcbiAgICAgICAgICAgIH1AZWxzZXtcbiAgICAgICAgICAgICAgICAkcHggOiBhcHBlbmQoJHB4ICwgJHZhbHVlKTtcbiAgICAgICAgICAgICAgICAkcmVtOiBhcHBlbmQoJHJlbSwgJHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkcHggPT0gJHJlbSB7XG4gICAgICAgICAgICAjeyRwcm9wZXJ0eX06ICRweDtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAjeyRwcm9wZXJ0eX06ICRweDtcbiAgICAgICAgICAgICN7JHByb3BlcnR5fTogJHJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qXG4gICAgTWl4aW46IHN0cmlwVW5pdFxuICAgIFN0cmlwIHRoZSB1bml0IGZyb20gYSB2YWx1ZSB0aGF0IGhhcyBhIHVuaXRcblxuICAgIC1AIGJhc2VkIG9uIGh0dHA6Ly9jc3MtdHJpY2tzLmNvbS9zbmlwcGV0cy9jc3MvbGVzcy1taXhpbi1mb3ItcmVtLWZvbnQtc2l6aW5nL1xuICAgICovXG4gICAgQGZ1bmN0aW9uIHN0cmlwVW5pdCgkbnVtKSB7XG4gICAgICAgIEByZXR1cm4gJG51bSAvICgkbnVtICogMCArIDEpO1xuICAgIH1cblxuXHQvLyBGb250LWZhY2UgTWl4aW5cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cdEBtaXhpbiBkZWNsYXJlLWZvbnQtZmFjZSgkZm9udC1mYW1pbHksICRmb250LWZpbGVuYW1lLCAkZm9udC13ZWlnaHQgOiBub3JtYWwsICRmb250LXN0eWxlIDpub3JtYWwsICRmb250LXN0cmV0Y2ggOiBub3JtYWwpIHtcblx0XHRAZm9udC1mYWNlIHtcblx0XHRcdGZvbnQtZmFtaWx5OiAnI3skZm9udC1mYW1pbHl9Jztcblx0XHRcdFx0c3JjOiB1cmwoJy4uL2ZvbnRzLyN7JGZvbnQtZmlsZW5hbWV9LmVvdCcpO1xuXHRcdFx0XHRzcmM6IHVybCgnLi4vZm9udHMvI3skZm9udC1maWxlbmFtZX0uZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcblx0XHRcdFx0dXJsKCcuLi9mb250cy8jeyRmb250LWZpbGVuYW1lfS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksXG5cdFx0XHRcdHVybCgnLi4vZm9udHMvI3skZm9udC1maWxlbmFtZX0udHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxuXHRcdFx0XHR1cmwoJy4uL2ZvbnRzLyN7JGZvbnQtZmlsZW5hbWV9LnN2ZyMjeyRmb250LWZhbWlseX0nKSBmb3JtYXQoJ3N2ZycpO1xuXHRcdFx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodDtcblx0XHRcdGZvbnQtc3R5bGU6ICRmb250LXN0eWxlO1xuXHRcdFx0Zm9udC1zdHJldGNoOiAkZm9udC1zdHJldGNoO1xuXHRcdH1cblx0fVxuXG5cblxuLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG5cbi8vIEN1c3RvbSBzaG9ydGhhbmQgbm90YXRpb24gZm9yIGZsZXhib3hcbkBtaXhpbiBib3goJG9yaWVudDogaW5saW5lLWF4aXMsICRwYWNrOiBzdGFydCwgJGFsaWduOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIGRpc3BsYXktYm94O1xuICBAaW5jbHVkZSBib3gtb3JpZW50KCRvcmllbnQpO1xuICBAaW5jbHVkZSBib3gtcGFjaygkcGFjayk7XG4gIEBpbmNsdWRlIGJveC1hbGlnbigkYWxpZ24pO1xufVxuXG5AbWl4aW4gZGlzcGxheS1ib3gge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1vei1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyBJRSAxMFxuICBkaXNwbGF5OiBib3g7XG59XG5cbkBtaXhpbiBib3gtb3JpZW50KCRvcmllbnQ6IGlubGluZS1heGlzKSB7XG4vLyBob3Jpem9udGFsfHZlcnRpY2FsfGlubGluZS1heGlzfGJsb2NrLWF4aXN8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkb3JpZW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LXBhY2soJHBhY2s6IHN0YXJ0KSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGp1c3RpZnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRwYWNrLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wYWNrOiAkcGFjazsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1hbGlnbigkYWxpZ246IHN0cmV0Y2gpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8YmFzZWxpbmV8c3RyZXRjaFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbGlnbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogbm9ybWFsKSB7XG4vLyBub3JtYWx8cmV2ZXJzZXxpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1saW5lcygkbGluZXM6IHNpbmdsZSkge1xuLy8gc2luZ2xlfG11bHRpcGxlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGxpbmVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LW9yZGluYWwtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleCgkdmFsdWU6IDAuMCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleDogJHZhbHVlOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG4vLyBVbmlmaWVkIGF0dHJpYnV0ZXMgZm9yIDIwMDksIDIwMTEsIGFuZCAyMDEyIGZsYXZvdXJzLlxuXG4vLyAyMDA5IC0gZGlzcGxheSAoYm94IHwgaW5saW5lLWJveClcbi8vIDIwMTEgLSBkaXNwbGF5IChmbGV4Ym94IHwgaW5saW5lLWZsZXhib3gpXG4vLyAyMDEyIC0gZGlzcGxheSAoZmxleCB8IGlubGluZS1mbGV4KVxuQG1peGluIGRpc3BsYXkoJHZhbHVlKSB7XG4vLyAgZmxleCB8IGlubGluZS1mbGV4XG4gICAgQGlmICR2YWx1ZSA9PSBcImZsZXhcIiB7XG4gICAgICAgIC8vIDIwMDlcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgIGRpc3BsYXk6IC1tb3otYm94O1xuICAgICAgICBkaXNwbGF5OiBib3g7XG5cbiAgICAgICAgLy8gMjAxMlxuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgICAgIGRpc3BsYXk6IC1tb3otZmxleDtcbiAgICAgICAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIDIwMTEgKElFIDEwKVxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwiaW5saW5lLWZsZXhcIiB7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcbiAgICAgICAgZGlzcGxheTogLW1vei1pbmxpbmUtYm94O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYm94O1xuXG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XG4gICAgICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWZsZXg7XG4gICAgICAgIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgICBkaXNwbGF5OiAkdmFsdWU7XG4gICAgfVxufVxuXG4vLyAyMDA5IC0gYm94LWZsZXggKGludGVnZXIpXG4vLyAyMDExIC0gZmxleCAoZGVjaW1hbCB8IHdpZHRoIGRlY2ltYWwpXG4vLyAyMDEyIC0gZmxleCAoaW50ZWdlciBpbnRlZ2VyIHdpZHRoKVxuQG1peGluIGZsZXgoJHZhbHVlKSB7XG5cbiAgICAvLyBHcmFiIGZsZXgtZ3JvdyBmb3Igb2xkZXIgYnJvd3NlcnMuXG4gICAgJGZsZXgtZ3JvdzogbnRoKCR2YWx1ZSwgMSk7XG5cbiAgICAvLyAyMDA5XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICRmbGV4LWdyb3csIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDExIChJRSAxMCksIDIwMTJcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JpZW50ICggaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgaW5saW5lLWF4aXMgfCBibG9jay1heGlzKVxuLy8gICAgICAtIGJveC1kaXJlY3Rpb24gKG5vcm1hbCB8IHJldmVyc2UpICAgICAgXG4vLyAyMDExIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlOiByb3cpIHtcblxuICAgIC8vIEFsdCB2YWx1ZXMuXG4gICAgJHZhbHVlLTIwMDk6ICR2YWx1ZTtcbiAgICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICAgICRkaXJlY3Rpb246IFwibm9ybWFsXCI7XG5cbiAgICBAaWYgJHZhbHVlID09IHJvdyB7XG4gICAgICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwicm93LXJldmVyc2VcIiB7XG4gICAgICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICAgICAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IGNvbHVtbiB7XG4gICAgICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcImNvbHVtbi1yZXZlcnNlXCIge1xuICAgICAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gICAgICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gICAgfVxuXG4gICAgLy8gMjAwOVxuICAgIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICR2YWx1ZS0yMDA5LCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIEBpZiAkZGlyZWN0aW9uID09IFwicmV2ZXJzZVwiIHtcbiAgICAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgICB9XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1kaXJlY3Rpb24sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTEgKElFIDEwKVxuICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWxpbmVzIChzaW5nbGUgfCBtdWx0aXBsZSlcbi8vIDIwMTEgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWU6IG5vd3JhcCkge1xuXG4gICAgLy8gQWx0IHZhbHVlcy5cbiAgICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gICAgQGlmICR2YWx1ZSA9PSBub3dyYXAge1xuICAgICAgICAkYWx0LXZhbHVlOiBzaW5nbGU7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gd3JhcCB7XG4gICAgICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwid3JhcC1yZXZlcnNlXCIge1xuICAgICAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC13cmFwLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTEgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTIgLSBmbGV4LWZsb3cgKGZsZXgtZGlyZWN0aW9uIHx8IGZsZXgtd3JhcClcbkBtaXhpbiBmbGV4LWZsb3coJHZhbHVlKSB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1mbG93LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JkaW5hbC1ncm91cCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4LW9yZGVyIChpbnRlZ2VyKVxuLy8gMjAxMiAtIG9yZGVyIChpbnRlZ2VyKVxuQG1peGluIG9yZGVyKCRpbnQ6IDApIHtcbiAgICAvLyAyMDA5XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIob3JkZXIsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDExIChJRSAxMClcbiAgICAtbXMtZmxleC1vcmRlcjogJGludDtcbn1cblxuLy8gMjAxMiAtIGZsZXgtZ3JvdyAobnVtYmVyKVxuQG1peGluIGZsZXgtZ3JvdygkbnVtYmVyOiAwKSB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1ncm93LCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1zaHJpbmsgKG51bWJlcilcbkBtaXhpbiBmbGV4LXNocmluaygkbnVtYmVyOiAxKSB7XG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1zaHJpbmssICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgLW1zLWZsZXgtbmVnYXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWJhc2lzIChudW1iZXIpXG5AbWl4aW4gZmxleC1iYXNpcygkd2lkdGg6IGF1dG8pIHtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWJhc2lzLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ICR3aWR0aDtcbn1cblxuLy8gMjAwOSAtIGJveC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDExIC0gZmxleC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDEyIC0ganVzdGlmeS1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kKVxuQG1peGluIGp1c3RpZnktY29udGVudCAoJHZhbHVlOiBmbGV4LXN0YXJ0KSB7XG5cbiAgICAvLyBBbHQgdmFsdWVzLlxuICAgICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gICAgfVxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogZW5kO1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAgICAgJGFsdC12YWx1ZToganVzdGlmeTtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogY2VudGVyO1xuICAgIH1cblxuICAgIC8vIDIwMDlcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAgIC8vIDIwMTJcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihqdXN0aWZ5LWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtcGFjazogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDExIC0gZmxleC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24taXRlbXMgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1pdGVtcygkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAgICRhbHQtdmFsdWU6ICR2YWx1ZTtcblxuICAgIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgICB9ICAgIFxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAgICAgJGFsdC12YWx1ZTogZW5kO1xuICAgIH1cblxuICAgIC8vIDIwMDlcbiAgICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24taXRlbXMsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuICAgIFxuICAgIC8vIDIwMTEgKElFIDEwKVxuICAgIC1tcy1mbGV4LWFsaWduOiAkYWx0LXZhbHVlOyAgICBcbn1cblxuLy8gMjAxMSAtIGZsZXgtaXRlbS1hbGlnbiAoYXV0byB8IHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLXNlbGYgKGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tc2VsZigkdmFsdWU6IGF1dG8pIHtcblxuICAgICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgICB9ICAgIFxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAgICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgICB9XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tc2VsZiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogJHZhbHVlLTIwMTE7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWxpbmUtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5IHwgZGlzdHJpYnV0ZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZCB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tY29udGVudCgkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAgICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgICB9ICAgIFxuXG4gICAgQGVsc2VpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAgICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgICB9XG5cbiAgICBAZWxzZWlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgICAgICR2YWx1ZS0yMDExOiBqdXN0aWZ5O1xuICAgIH1cblxuICAgIEBlbHNlaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICAgICAkdmFsdWUtMjAxMTogZGlzdHJpYnV0ZTtcbiAgICB9XG5cbiAgICAvLyAyMDEyXG4gICAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gICAgLy8gMjAxMSAoSUUgMTApXG4gICAgLW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWUtMjAxMTtcbn1cblxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBPbWVnYSBSZXNldCBmb3IgQm91cmJvbiBOZWF0XG4vL1xuLy8gaHR0cDovL2pvc2hmcnkubWUvbm90ZXMvb21lZ2EtcmVzZXQtZm9yLWJvdXJib24tbmVhdFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5AbWl4aW4gb21lZ2EtcmVzZXQoJG50aCkge1xuICAmOm50aC1jaGlsZCgjeyRudGh9KSB7IG1hcmdpbi1yaWdodDogZmxleC1ndXR0ZXIoJGdyaWQtY29sdW1ucywgJGd1dHRlcik7IH1cbiAgJjpudGgtY2hpbGQoI3skbnRofSsxKSB7IGNsZWFyOiBub25lIH1cbn1cbiIsIi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBHbG9iYWwgU2V0dGluZ3Ncbi8vIENlbnRyYWwgbG9jYXRpb24gZm9yIHByb2plY3QtbGV2ZWwgdmFyaWFibGVzLlxuLy8gKGMpIEF0bGFudGljIEJULiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4vLyBMYXlvdXQgU2V0dGluZ3Ncbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblxuXHQvLyBNZWRpYSBRdWVyaWVzXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXHQkcGhvbmU6IDMyMHB4O1x0XHRcdFx0XHRcdC8vIG1pbi13aWR0aCAzMjBweFxuXHQkdGFibGV0OiA2NDBweDtcdFx0XHRcdFx0XHQvLyBtaW4td2lkdGggNjQwcHhcblx0JGRlc2t0b3A6IDk2MHB4O1x0XHRcdFx0XHRcdC8vIG1pbi13aWR0aCA5NjBweFxuXG5cdC8vJGNvbnRhaW5lcl9taW5fd2lkdGg6ICRwaG9uZTtcblx0Ly8kY29udGFpbmVyX21heF93aWR0aDogOTYwcHg7XG5cblxuXHQvLyBHcmlkc1xuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblx0Ly8kY29sdW1uczogMTI7XG5cdC8vJGNvbHVtbl93aWR0aDogNjBweDtcblx0Ly8kZ3V0dGVyX3dpZHRoOiAyMHB4O1xuXG5cblx0Ly8gQm9yZGVyIFJhZGl1c1xuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblx0Ly8kYm9yZGVyX3JhZGl1czogM3B4O1x0XHRcdFx0XHQvLyBzZXQgdG8gMCBmb3Igbm9uZVxuXG5cblxuLy8gQ29sb3IgU2V0dGluZ3Ncbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblxuXHQvLyBCcmFuZCBTcGVjaWZpY1xuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblx0JGNvbG9yX3ByaW1hcnk6ICNjYzAwMDA7XG5cdCRjb2xvcl9zZWNvbmRhcnk6ICMwMDAwMDA7XG5cdCRjb2xvcl90ZXJ0aWFyeTogI2ZmZmZmZjtcblxuXHQkY29sb3JfNDogI2YyZjJmMjtcblx0JGNvbG9yXzU6ICNjY2NjY2M7XG5cdCRjb2xvcl82OiAjNjY2NjY2O1xuXHQkY29sb3JfNzogIzMzMzMzMztcblxuXHQkY29sb3JfODogIzk5MDAwMDtcblx0JGNvbG9yXzk6ICNkMTQ5MDU7XG5cdCRjb2xvcl8xMDogI2ZkZDcyNjtcblx0JGNvbG9yXzExOiAjN2Q4YzFmO1xuXHQkY29sb3JfMTI6ICM0MjdlOTM7XG5cdCRjb2xvcl8xMzogIzQxNTZhMTtcblxuXG5cblx0Ly8gSW5mb3JtYXRpb24gYW5kIFZhbGlkYXRpb25cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cdC8vJGJyYW5kX2luZm86ICM0MjhiY2E7XG5cdC8vJGJyYW5kX2Vycm9yOiAjZDk1MzRmO1xuXHQvLyRicmFuZF9zdWNjZXNzOiAjNWNiODVjO1xuXG5cblx0Ly8gVGV4dCBhbmQgTGlua3Ncblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cdC8vJHRleHRfY29sb3I6ICMzMzM7XG5cdC8vJGxpbmtfY29sb3I6ICRicmFuZF9pbmZvO1xuXHQvLyRsaW5rX2NvbG9yX2hvdmVyOiBkYXJrZW4oJGxpbmtfY29sb3IsIDE1JSk7XG5cblxuXG4vLyBUeXBvZ3JhcGh5IFNldHRpbmdzXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cblx0Ly8gQmFzZSBTaXplIChtdXN0IHVzZSBweCB2YWx1ZSlcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cdC8vJGJhc2VfZm9udF9zaXplOiAxNnB4O1xuXHQvLyRiYXNlX2xpbmVfaGVpZ2h0OiAxLjU7XG5cblxuXHQvLyBIZWFkaW5nc1xuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblx0Ly8kaGVhZGVyX2ZvbnRfZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG5cdC8vJGhlYWRlcl9mb250X3dlaWdodDogYm9sZDtcblx0Ly8kaGVhZGVyX2ZvbnRfc3R5bGU6IG5vcm1hbDtcblx0Ly8kaGVhZGVyX2xpbmVfaGVpZ2h0OiAxLjM7XG5cdC8vJGhlYWRlcl90b3BfbWFyZ2luOiA1cHg7XG5cdC8vJGhlYWRlcl9ib3R0b21fbWFyZ2luOiAyMHB4O1xuXHQvLyRoZWFkZXJfdGV4dF9yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcblxuXHQvLyRoMV9mb250X3NpemU6IDQ0cHg7XG5cdC8vJGgyX2ZvbnRfc2l6ZTogMzdweDtcblx0Ly8kaDNfZm9udF9zaXplOiAyN3B4O1xuXHQvLyRoNF9mb250X3NpemU6IDIzcHg7XG5cdC8vJGg1X2ZvbnRfc2l6ZTogMThweDtcblx0Ly8kaDZfZm9udF9zaXplOiAxNnB4O1xuXG5cblx0Ly8gUGFyYWdyYXBoc1xuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblx0Ly8kcGFyYWdyYXBoX2ZvbnRfZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG5cdC8vJHBhcmFncmFwaF9mb250X3dlaWdodDogbm9ybWFsO1xuXHQvLyRwYXJhZ3JhcGhfZm9udF9zaXplOiAkYmFzZV9mb250X3NpemU7XG5cdC8vJHBhcmFncmFwaF9saW5lX2hlaWdodDogMS41O1xuXHQvLyRwYXJhZ3JhcGhfbWFyZ2luX2JvdHRvbTogMjBweDtcblx0Ly8kcGFyYWdyYXBoX3RleHRfcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG5cblxuXHQvLyBMaW5rc1xuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblx0Ly8kbGlua190ZXh0X2RlY29yYXRpb246IG5vbmU7XG5cblxuXHQvLyBCbG9ja3F1b3Rlc1xuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblx0Ly8kYmxvY2txdW90ZV9wYWRkaW5nOiAxMHB4IDIwcHg7XG5cdC8vJGJsb2NrcXVvdGVfbWFyZ2luOiAwIDAgMjBweDtcblxuXG5cbi8vIEFsZXJ0cyBTZXR0aW5nc1xuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXG5cdC8vJGFsZXJ0Ym94X2ZvbnRfY29sb3I6ICNmZmY7XG5cdC8vJGFsZXJ0Ym94X21hcmdpbjogMTZweDtcblxuXG5cbi8vIE1lZGlhIFNldHRpbmdzXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovXG5cblx0Ly8kZmlndXJlX2JhY2tncm91bmQ6ICMwMDA7XG5cdC8vJGZpZ3VyZV9tYXJnaW46IDAgMCAxNnB4O1xuXHQvLyRmaWd1cmVfb3BhY2l0eTogLjk7XG5cdC8vJGZpZ3VyZV9vcGFjaXR5X2hvdmVyOiAxO1xuXG5cblxuLy8gRm9ybXMgU2V0dGluZ3Ncbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblxuXHQvLyRmb3JtX21hcmdpbjogMCAwIDE2cHg7XG5cblx0Ly8kaW5wdXRfZm9jdXNfYm9yZGVyX2NvbG9yOiAkYnJhbmRfdGVydGlhcnk7XG5cdC8vJGlucHV0X2ZvY3VzX2JvcmRlcl93aWR0aDogMnB4O1xuXHQvLyRpbnB1dF9mb2N1c19iYWNrZ3JvdW5kOiBsaWdodGVuKCRicmFuZF90ZXJ0aWFyeSwgMzUlKTtcblxuXG5cbi8vIEJ1dHRvbnMgU2V0dGluZ3Ncbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblxuXHQvLyRidXR0b25fcGFkZGluZzogMTBweCAyMHB4O1xuXHQvLyRidXR0b25fYmFja2dyb3VuZDogJGJyYW5kX3ByaW1hcnk7XG5cdC8vJGJ1dHRvbl90ZXh0X2NvbG9yOiAjZmZmO1xuXG5cblxuLy8gVGFibGUgU2V0dGluZ3Ncbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki9cblxuXHQvLyR0YWJsZV9jZWxsX3BhZGRpbmc6IDhweDtcblx0Ly8kdGFibGVfY2VsbF9ib3JkZXJfd2lkdGg6IDFweDtcblx0Ly8kdGFibGVfY2VsbF9ib3JkZXJfc3R5bGU6IHNvbGlkO1xuXHQvLyR0YWJsZV9jZWxsX2JvcmRlcl9jb2xvcjogI2ZmZjtcblxuXG5cdC8vIEhlYWRlclxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cblx0Ly8kdGFibGVfaGVhZGVyX2JhY2tncm91bmQ6ICRicmFuZF9wcmltYXJ5O1xuXHQvLyR0YWJsZV9oZWFkZXJfY29sb3I6ICNmZmY7XG5cblxuXHQvLyBaZWJyYSBTdHJpcGVzXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXHQvLyR0YWJsZV9hbHRfcm93X2JhY2tncm91bmQ6IGxpZ2h0ZW4oJGJyYW5kX3ByaW1hcnksIDcwJSk7XG5cblxuXHQvLyBGb290ZXJcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cdC8vJHRhYmxlX2Zvb3Rlcl9iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblx0Ly8kdGFibGVfZm9vdGVyX2JvcmRlcl93aWR0aDogMnB4O1xuXHQvLyR0YWJsZV9mb290ZXJfYm9yZGVyX3N0eWxlOiBzb2xpZDtcblx0Ly8kdGFibGVfZm9vdGVyX2JvcmRlcl9jb2xvcjogJGJyYW5kX3RlcnRpYXJ5OyIsIi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBOb3JtYWxpemUgUGFydGlhbFxuLy8gTWFrZXMgYnJvd3NlcnMgcmVuZGVyIGFsbCBlbGVtZW50cyBtb3JlIGNvbnNpc3RlbnRseS5cbi8vIG5vcm1hbGl6ZS5jc3MgdjIuMS4zIHwgTUlUIExpY2Vuc2UgfCBnaXQuaW8vbm9ybWFsaXplXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5hcnRpY2xlLCBhc2lkZSwgZGV0YWlscywgZmlnY2FwdGlvbiwgZmlndXJlLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtYWluLCBuYXYsIHNlY3Rpb24sIHN1bW1hcnkgeyBkaXNwbGF5OiBibG9jazsgfVxuYXVkaW8sIGNhbnZhcywgdmlkZW8geyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7IGRpc3BsYXk6IG5vbmU7IGhlaWdodDogMDsgfVxuW2hpZGRlbl0sIHRlbXBsYXRlIHsgZGlzcGxheTogbm9uZTsgfVxuXG5cbi8vIEJhc2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5odG1sIHsgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IH1cbmJvZHkgeyBtYXJnaW46IDA7IH1cbiosICo6YmVmb3JlLCAqOmFmdGVyIHsgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94OyAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuXG4vLyBMaW5rc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmEgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuYTpmb2N1cyB7IG91dGxpbmU6IHRoaW4gZG90dGVkOyB9XG5hOmFjdGl2ZSwgYTpob3ZlciB7IG91dGxpbmU6IDA7IH1cblxuXG4vLyBUeXBvZ3JhcGh5XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuaDEgeyBmb250LXNpemU6IDJlbTsgbWFyZ2luOiAwLjY3ZW0gMDsgfVxuYWJiclt0aXRsZV0geyBib3JkZXItYm90dG9tOiAxcHggZG90dGVkOyB9XG5iLCBzdHJvbmcgeyBmb250LXdlaWdodDogYm9sZDsgfVxuZGZuIHsgZm9udC1zdHlsZTogaXRhbGljOyB9XG5ociB7IC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7IGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyBoZWlnaHQ6IDA7IH1cbm1hcmsgeyBiYWNrZ3JvdW5kOiAjZmYwOyBjb2xvcjogIzAwMDsgfVxuY29kZSwga2JkLCBwcmUsIHNhbXAgeyBmb250LWZhbWlseTogbW9ub3NwYWNlLCBzZXJpZjsgZm9udC1zaXplOiAxZW07IH1cbnByZSB7IHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsgfVxucSB7IHF1b3RlczogXCJcXDIwMUNcIiBcIlxcMjAxRFwiIFwiXFwyMDE4XCIgXCJcXDIwMTlcIjsgfVxuc21hbGwgeyBmb250LXNpemU6IDgwJTsgfVxuc3ViLCBzdXAgeyBmb250LXNpemU6IDc1JTsgbGluZS1oZWlnaHQ6IDA7IHBvc2l0aW9uOiByZWxhdGl2ZTsgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5zdXAgeyB0b3A6IC0wLjVlbTsgfVxuc3ViIHsgYm90dG9tOiAtMC4yNWVtOyB9XG5cblxuLy8gRW1iZWRkZWQgY29udGVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmltZywgaWZyYW1lLCB2aWRlbyB7IG1heC13aWR0aDogMTAwJTsgfVxuaW1nIHsgaGVpZ2h0OiBhdXRvOyBib3JkZXI6IDA7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbnN2Zzpub3QoOnJvb3QpIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG5cbi8vIEZpZ3VyZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5maWd1cmUgeyBtYXJnaW46IDA7IH1cblxuXG4vLyBGb3Jtc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmZpZWxkc2V0IHsgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDsgbWFyZ2luOiAwIDJweDsgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtOyB9XG5sZWdlbmQgeyBib3JkZXI6IDA7IHBhZGRpbmc6IDA7IH1cbmJ1dHRvbiwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEgeyBmb250LWZhbWlseTogaW5oZXJpdDsgZm9udC1zaXplOiAxMDAlOyBtYXJnaW46IDA7IH1cbmJ1dHRvbiwgaW5wdXQgeyBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG5idXR0b24sIHNlbGVjdCB7IHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIGlucHV0W3R5cGU9XCJyZXNldFwiXSwgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7IGJvcmRlcjogMDsgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IGN1cnNvcjogcG9pbnRlcjsgfVxuYnV0dG9uW2Rpc2FibGVkXSwgaHRtbCBpbnB1dFtkaXNhYmxlZF0geyBjdXJzb3I6IGRlZmF1bHQ7IH1cbmlucHV0W3R5cGU9XCJjaGVja2JveFwiXSwgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgcGFkZGluZzogMDsgfVxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7IC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyB9XG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLCBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHsgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsIGlucHV0OjotbW96LWZvY3VzLWlubmVyIHsgYm9yZGVyOiAwOyBwYWRkaW5nOiAwOyB9XG50ZXh0YXJlYSB7IG92ZXJmbG93OiBhdXRvOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG50ZXh0YXJlYSwgaW5wdXQgeyBvdXRsaW5lOiBub25lOyB9XG5cblxuLy8gVGFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxudGFibGUgeyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyBib3JkZXItc3BhY2luZzogMDsgfSIsIi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUeXBvZ3JhcGh5IFBhcnRpYWxcbi8vIFN0eWxlcyBmb3Igb3ZlcmFsbCB0eXBvZ3JhcGh5IGFuZCBtaXNjLiBjb250ZW50IGNvbXBvbmVudHMuXG4vLyAoYykgQXRsYW50aWMgQlQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIEN1c3RvbSBGb250c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEBpbmNsdWRlIGRlY2xhcmUtZm9udC1mYWNlKCdGb250IE5hbWUnLCAnZm9udC1sb2NhdGlvbi1yZWxhdGl2ZS10by1mb250cy1mb2xkZXInKTtcbi8vIEBpbXBvcnQgdXJsKC8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1PcGVuK1NhbnM6MzAwaXRhbGljLDYwMGl0YWxpYywzMDAsNDAwLDYwMCk7XG5cbkBmb250LWZhY2Uge1xuXHRmb250LWZhbWlseTonT3BlbiBTYW5zJztcblx0c3JjOiB1cmwoJ3dlYmZvbnRzL09wZW5TYW5zX2dkaS5lb3QnKTtcblx0c3JjOiB1cmwoJ3dlYmZvbnRzL09wZW5TYW5zX2dkaS5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuXHRcdHVybCgnd2ViZm9udHMvT3BlblNhbnNfZ2RpLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcblx0XHR1cmwoJ3dlYmZvbnRzL09wZW5TYW5zX2dkaS50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG5cdFx0dXJsKCd3ZWJmb250cy9PcGVuU2Fuc19nZGkuc3ZnI09wZW5TYW5zLVJlZ3VsYXInKSBmb3JtYXQoJ3N2ZycpO1xuXHRmb250LXdlaWdodDogNDAwO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG5cdGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuXHR1bmljb2RlLXJhbmdlOiBVKzAwMjAtMjVDQTtcbn1cblxuQGZvbnQtZmFjZSB7XG5cdGZvbnQtZmFtaWx5OidPcGVuIFNhbnMnO1xuXHRzcmM6IHVybCgnd2ViZm9udHMvT3BlblNhbnMtSXRhbGljX2dkaS5lb3QnKTtcblx0c3JjOiB1cmwoJ3dlYmZvbnRzL09wZW5TYW5zLUl0YWxpY19nZGkuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcblx0XHR1cmwoJ3dlYmZvbnRzL09wZW5TYW5zLUl0YWxpY19nZGkud29mZicpIGZvcm1hdCgnd29mZicpLFxuXHRcdHVybCgnd2ViZm9udHMvT3BlblNhbnMtSXRhbGljX2dkaS50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG5cdFx0dXJsKCd3ZWJmb250cy9PcGVuU2Fucy1JdGFsaWNfZ2RpLnN2ZyNPcGVuU2Fucy1JdGFsaWMnKSBmb3JtYXQoJ3N2ZycpO1xuXHRmb250LXdlaWdodDogNDAwO1xuXHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuXHR1bmljb2RlLXJhbmdlOiBVKzAwMjAtMjVDQTtcbn1cblxuQGZvbnQtZmFjZSB7XG5cdGZvbnQtZmFtaWx5OidPcGVuIFNhbnMnO1xuXHRzcmM6IHVybCgnd2ViZm9udHMvT3BlblNhbnMtTGlnaHRfZ2RpLmVvdCcpO1xuXHRzcmM6IHVybCgnd2ViZm9udHMvT3BlblNhbnMtTGlnaHRfZ2RpLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG5cdFx0dXJsKCd3ZWJmb250cy9PcGVuU2Fucy1MaWdodF9nZGkud29mZicpIGZvcm1hdCgnd29mZicpLFxuXHRcdHVybCgnd2ViZm9udHMvT3BlblNhbnMtTGlnaHRfZ2RpLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcblx0XHR1cmwoJ3dlYmZvbnRzL09wZW5TYW5zLUxpZ2h0X2dkaS5zdmcjT3BlblNhbnMtTGlnaHQnKSBmb3JtYXQoJ3N2ZycpO1xuXHRmb250LXdlaWdodDogMzAwO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG5cdGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuXHR1bmljb2RlLXJhbmdlOiBVKzAwMjAtMjVDQTtcbn1cblxuQGZvbnQtZmFjZSB7XG5cdGZvbnQtZmFtaWx5OidPcGVuIFNhbnMnO1xuXHRzcmM6IHVybCgnd2ViZm9udHMvT3BlblNhbnNMaWdodC1JdGFsaWNfZ2RpLmVvdCcpO1xuXHRzcmM6IHVybCgnd2ViZm9udHMvT3BlblNhbnNMaWdodC1JdGFsaWNfZ2RpLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG5cdFx0dXJsKCd3ZWJmb250cy9PcGVuU2Fuc0xpZ2h0LUl0YWxpY19nZGkud29mZicpIGZvcm1hdCgnd29mZicpLFxuXHRcdHVybCgnd2ViZm9udHMvT3BlblNhbnNMaWdodC1JdGFsaWNfZ2RpLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcblx0XHR1cmwoJ3dlYmZvbnRzL09wZW5TYW5zTGlnaHQtSXRhbGljX2dkaS5zdmcjT3BlblNhbnNMaWdodC1JdGFsaWMnKSBmb3JtYXQoJ3N2ZycpO1xuXHRmb250LXdlaWdodDogMzAwO1xuXHRmb250LXN0eWxlOiBpdGFsaWM7XG5cdGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuXHR1bmljb2RlLXJhbmdlOiBVKzAwMjAtMjVDQTtcbn1cblxuQGZvbnQtZmFjZSB7XG5cdGZvbnQtZmFtaWx5OidPcGVuIFNhbnMnO1xuXHRzcmM6IHVybCgnd2ViZm9udHMvT3BlblNhbnMtU2VtaWJvbGRfZ2RpLmVvdCcpO1xuXHRzcmM6IHVybCgnd2ViZm9udHMvT3BlblNhbnMtU2VtaWJvbGRfZ2RpLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG5cdFx0dXJsKCd3ZWJmb250cy9PcGVuU2Fucy1TZW1pYm9sZF9nZGkud29mZicpIGZvcm1hdCgnd29mZicpLFxuXHRcdHVybCgnd2ViZm9udHMvT3BlblNhbnMtU2VtaWJvbGRfZ2RpLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcblx0XHR1cmwoJ3dlYmZvbnRzL09wZW5TYW5zLVNlbWlib2xkX2dkaS5zdmcjT3BlblNhbnMtU2VtaWJvbGQnKSBmb3JtYXQoJ3N2ZycpO1xuXHRmb250LXdlaWdodDogNjAwO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG5cdGZvbnQtc3RyZXRjaDogbm9ybWFsO1xuXHR1bmljb2RlLXJhbmdlOiBVKzAwMjAtMjVDQTtcbn1cbkBmb250LWZhY2Uge1xuXHRmb250LWZhbWlseTonT3BlbiBTYW5zJztcblx0c3JjOiB1cmwoJ3dlYmZvbnRzL09wZW5TYW5zLVNlbWlib2xkSXRhbGljX2dkaS5lb3QnKTtcblx0c3JjOiB1cmwoJ3dlYmZvbnRzL09wZW5TYW5zLVNlbWlib2xkSXRhbGljX2dkaS5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuXHRcdHVybCgnd2ViZm9udHMvT3BlblNhbnMtU2VtaWJvbGRJdGFsaWNfZ2RpLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcblx0XHR1cmwoJ3dlYmZvbnRzL09wZW5TYW5zLVNlbWlib2xkSXRhbGljX2dkaS50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG5cdFx0dXJsKCd3ZWJmb250cy9PcGVuU2Fucy1TZW1pYm9sZEl0YWxpY19nZGkuc3ZnI09wZW5TYW5zLVNlbWlib2xkSXRhbGljJykgZm9ybWF0KCdzdmcnKTtcblx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHRmb250LXN0cmV0Y2g6IG5vcm1hbDtcblx0dW5pY29kZS1yYW5nZTogVSswMDIwLTI1Q0E7XG59XG5cblxuLy8gR2xvYmFsXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuaHRtbCwgYm9keSB7XG5cdGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgc2Fucy1zZXJpZjtcblx0Y29sb3I6ICRjb2xvcl83O1xuXHRmb250LXdlaWdodDo0MDA7XG5cblx0LyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXG5cdEBpbmNsdWRlIGJhY2tmYWNlLXZpc2liaWxpdHkoaGlkZGVuKTtcbn1cbmhyIHt9XG5cblxuLy8gSGVhZGluZ3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcblx0Zm9udC13ZWlnaHQ6NDAwO1xuXG59XG5oMSwgLmgxIHtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRmb250LXNpemU6IDM2cHg7XG59XG5oMiB7XG5cdGZvbnQtc2l6ZTogMjJweDtcbn1cblxuLy8gUGFyYWdyYXBoc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbnAge31cbnN0cm9uZyB7fVxuXG5cbi8vIExpbmtzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuYSB7IFxuXHR0ZXh0LWRlY29yYXRpb246bm9uZTsgXG5cdGNvbG9yOiAkY29sb3JfcHJpbWFyeTtcblx0Jjpob3ZlciB7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTtcblx0fVxufVxuXG5cbi8vIExpc3RzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxudWwsIG9sLCBkbCB7fVxuXG5cblx0Ly8gVW5vcmRlcmVkXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0dWwge31cblx0dWwgbGkge31cblxuXG5cdC8vIE9yZGVyZWRcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRvbCB7fVxuXHRvbCBsaSB7fVxuXG5cblx0Ly8gRGVmaW5pdGlvblxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdGRsIHt9XG5cdGR0IHsgZm9udC13ZWlnaHQ6NDAwOyB9XG5cdGRkIHt9XG5cblxuLy8gQmxvY2txdW90ZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5ibG9ja3F1b3RlIHtcblx0Ym9yZGVyLWxlZnQ6IDVweCBzb2xpZCAkY29sb3JfNjtcblx0cGFkZGluZzogMjBweDtcblx0YmFja2dyb3VuZDogJGNvbG9yX3RlcnRpYXJ5O1xuXHRwOmZpcnN0LWNoaWxkIHtcblx0XHRtYXJnaW4tdG9wOiAwO1xuXHR9XG59XG5cbi8vIEljb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbkBmb250LWZhY2Uge1xuXHRmb250LWZhbWlseTogJ2ljb21vb24nO1xuXHRzcmM6dXJsKCdmb250cy9pY29tb29uLmVvdD9uMHdibjgnKTtcblx0c3JjOnVybCgnZm9udHMvaWNvbW9vbi5lb3Q/I2llZml4bjB3Ym44JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuXHRcdHVybCgnZm9udHMvaWNvbW9vbi53b2ZmP24wd2JuOCcpIGZvcm1hdCgnd29mZicpLFxuXHRcdHVybCgnZm9udHMvaWNvbW9vbi50dGY/bjB3Ym44JykgZm9ybWF0KCd0cnVldHlwZScpLFxuXHRcdHVybCgnZm9udHMvaWNvbW9vbi5zdmc/bjB3Ym44I2ljb21vb24nKSBmb3JtYXQoJ3N2ZycpO1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbltjbGFzc149XCJpY29uLVwiXSwgW2NsYXNzKj1cIiBpY29uLVwiXSB7XG5cdGZvbnQtZmFtaWx5OiAnaWNvbW9vbic7XG5cdHNwZWFrOiBub25lO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdGZvbnQtdmFyaWFudDogbm9ybWFsO1xuXHR0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblx0bGluZS1oZWlnaHQ6IDE7XG5cblx0LyogQmV0dGVyIEZvbnQgUmVuZGVyaW5nID09PT09PT09PT09ICovXG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4uaWNvbi1jb250ZW50LWNvcHk6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU2MWFcIjtcbn1cbi5pY29uLWNoZXZyb24tcmlnaHQ6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU2MThcIjtcbn1cbi5pY29uLWNoZXZyb24tbGVmdDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTYxOVwiO1xufVxuLmljb24tbGlua2VkaW46YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU2MDBcIjtcbn1cbi5pY29uLXBlbmNpbDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTYxN1wiO1xufVxuLmljb24tc3RhY2s6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU2MWJcIjtcbn1cbi5pY29uLXVzZXI6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU2MDVcIjtcbn1cbi5pY29uLXNwaW5uZXI6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU2MDZcIjtcbn1cbi5pY29uLXNlYXJjaDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTYxNlwiO1xufVxuLmljb24tY29nOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlNjA3XCI7XG59XG4uaWNvbi1sZWFmOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlNjA4XCI7XG59XG4uaWNvbi1zd2l0Y2g6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU2MDlcIjtcbn1cbi5pY29uLW1lbnU6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU2MGFcIjtcbn1cbi5pY29uLWdsb2JlOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlNjBiXCI7XG59XG4uaWNvbi1lYXJ0aDpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTYwY1wiO1xufVxuLmljb24taW5mbzpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTYwZFwiO1xufVxuLmljb24tY2FuY2VsLWNpcmNsZTpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTYwZVwiO1xufVxuLmljb24tY2hlY2ttYXJrLWNpcmNsZTpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTYwZlwiO1xufVxuLmljb24tc3BhbTpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTYxMFwiO1xufVxuLmljb24tY2xvc2U6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU2MTFcIjtcbn1cbi5pY29uLWNoZWNrbWFyazpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTYxMlwiO1xufVxuLmljb24tbWludXM6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU2MTNcIjtcbn1cbi5pY29uLXBsdXM6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU2MTRcIjtcbn1cbi5pY29uLXNoYXJlOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlNjE1XCI7XG59XG4uaWNvbi1mYWNlYm9vazpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTYwMVwiO1xufVxuLmljb24taW5zdGFncmFtOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlNjAyXCI7XG59XG4uaWNvbi10d2l0dGVyOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlNjAzXCI7XG59XG4uaWNvbi15b3V0dWJlOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlNjA0XCI7XG59XG4uaWNvbi1maWxlLXBkZjpiZWZvcmUge1xuXHRjb250ZW50OiBcIlxcZTYxY1wiO1xufVxuLmljb24tZmlsZS13b3JkOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlNjFkXCI7XG59XG4uaWNvbi1maWxlLWV4Y2VsOmJlZm9yZSB7XG5cdGNvbnRlbnQ6IFwiXFxlNjFlXCI7XG59XG4uaWNvbi1maWxlLXBvd2VycG9pbnQ6YmVmb3JlIHtcblx0Y29udGVudDogXCJcXGU2MWZcIjtcbn1cblxuIiwiLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFN0eWxlIGd1aWRlIFBhcnRpYWxcbi8vIFN0eWxlcyBmb3Igc3BlY2lmaWMgY29tcG9uZW50cyBvbiB0aGUgc3R5bGVndWlkLlxuLy8gKGMpIEF0bGFudGljIEJULiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLnN0eWxlZ3VpZGUge1xuXHRoMSB7XG5cdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0fVxuXHQuY29sb3Itc3dhdGNoZXMge1xuXHRcdG1hcmdpbjowO1xuXHRcdHBhZGRpbmc6MDtcblx0XHRjb2xvcjogI2ZmZjtcblx0XHRsaXN0LXN0eWxlOm5vbmU7XG5cdFx0QGluY2x1ZGUgZGlzcGxheShmbGV4KTtcblx0XHRsaSB7XG5cdFx0XHQvLyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRwYWRkaW5nOjJlbSAwO1xuXHRcdFx0d2lkdGg6NmVtO1xuXHRcdFx0bWFyZ2luOiA1cHg7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0fVxuXHRcdC5pbnZlcnQge1xuXHRcdFx0Y29sb3I6ICMwMDA7XG5cdFx0fVxuXHRcdC5ib3JkZXIge1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2MzYzNjMztcblx0XHR9XG5cdFx0XG5cdFx0LmMtY2MwMDAwIHtcblx0XHRcdGJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5O1xuXHRcdH1cblx0XHQuYy0wMDAwMDAge1xuXHRcdFx0YmFja2dyb3VuZDogJGNvbG9yX3NlY29uZGFyeTtcblx0XHR9XG5cdFx0LmMtZmZmZmZmIHtcblx0XHRcdGJhY2tncm91bmQ6ICRjb2xvcl90ZXJ0aWFyeTtcblx0XHR9XG5cdFx0LmMtZjJmMmYyIHtcblx0XHRcdGJhY2tncm91bmQ6ICRjb2xvcl80O1xuXHRcdH1cblx0XHQuYy1jY2NjY2Mge1xuXHRcdFx0YmFja2dyb3VuZDogJGNvbG9yXzU7XG5cdFx0fVxuXHRcdC5jLTY2NjY2NiB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkY29sb3JfNjtcblx0XHR9XG5cdFx0LmMtMzMzMzMzIHtcblx0XHRcdGJhY2tncm91bmQ6ICRjb2xvcl83O1xuXHRcdH1cblx0XHQuYy05OTAwMDAge1xuXHRcdFx0YmFja2dyb3VuZDogJGNvbG9yXzg7XG5cdFx0fVxuXHRcdC5jLWQxNDkwNSB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAkY29sb3JfOTtcblx0XHR9XG5cdFx0LmMtZmRkNzI2IHtcblx0XHRcdGJhY2tncm91bmQ6ICRjb2xvcl8xMDtcblx0XHR9XG5cdFx0LmMtN2Q4YzFmIHtcblx0XHRcdGJhY2tncm91bmQ6ICRjb2xvcl8xMTtcblx0XHR9XG5cdFx0LmMtNDI3ZTkzIHtcblx0XHRcdGJhY2tncm91bmQ6ICRjb2xvcl8xMjtcblx0XHR9XG5cdFx0LmMtNDE1NmExIHtcblx0XHRcdGJhY2tncm91bmQ6ICRjb2xvcl8xMztcblx0XHR9XG5cdH1cblxuXHQvLyBjb2RlIHN5dGF4IHBsdWdpbihieSBEYXZlIERla2tlcilcblx0LmNvZGUtYmxvY2sge1xuXHQgICAgLy8gd2lkdGg6IDk2JTtcblx0fVxuXG5cdC50b2dnbGUtY29kZS1ibG9jayB7XG5cdCAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHQgIG1hcmdpbi1ib3R0b206IDVweDtcblx0fVxuXG5cdGNvZGUge1xuXHQgIGhlaWdodDogMDtcblx0ICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IC8vIG92ZXJyaWRlIHN5bnRheCBwbHVnaW4gc3R5bGVzXG5cdCAgYmFja2dyb3VuZDogIzAwMDtcblx0ICBvdmVyZmxvdzogaGlkZGVuO1xuXHQgIHdpZHRoOiAxMDAlO1xuXHQgIFxuXHQgICYuc2hvdyB7XG5cdCAgICBwYWRkaW5nOiAyMHB4ICFpbXBvcnRhbnQ7IC8vIG92ZXJyaWRlIHN5bnRheCBwbHVnaW4gc3R5bGVzXG5cdCAgICBoZWlnaHQ6IGF1dG87XG5cdCAgICBkaXNwbGF5OiBibG9jaztcblx0ICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cdCAgfVxuXHR9XG5cdC5wYWdlLXRpdGxlIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cdC5jb21wb25lbnQtdGl0bGUge1xuXHRcdGNvbG9yOiRjb2xvcl83O1xuXHR9XG5cdC5jb2RlLWNvbnRhaW5lciB7XG5cdFx0YmFja2dyb3VuZDokY29sb3JfNTtcblx0XHRwYWRkaW5nOjIwcHg7XG5cdH1cblxuXHQvLyBTdWJsaW1lIFRoZW1lXG5cdC8qXG5cblx0TW9ub2thaSBTdWJsaW1lIHN0eWxlLiBEZXJpdmVkIGZyb20gTW9ub2thaSBieSBub2Zvcm1ub2NvbnRlbnQgaHR0cDovL25uLm1pdC1saWNlbnNlLm9yZy9cblxuXHQqL1xuXG5cdC5obGpzIHtcblx0ICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdCAgcGFkZGluZzogMC41ZW07XG5cdCAgYmFja2dyb3VuZDogIzIzMjQxZjtcblx0fVxuXG5cdC5obGpzLFxuXHQuaGxqcy10YWcsXG5cdC5jc3MgLmhsanMtcnVsZXMsXG5cdC5jc3MgLmhsanMtdmFsdWUsXG5cdC5jc3MgLmhsanMtZnVuY3Rpb25cblx0LmhsanMtcHJlcHJvY2Vzc29yLFxuXHQuaGxqcy1wcmFnbWEge1xuXHQgIGNvbG9yOiAjZjhmOGYyO1xuXHR9XG5cblx0LmhsanMtc3Ryb25nZW1waGFzaXMsXG5cdC5obGpzLXN0cm9uZyxcblx0LmhsanMtZW1waGFzaXMge1xuXHQgIGNvbG9yOiAjYThhOGEyO1xuXHR9XG5cblx0LmhsanMtYnVsbGV0LFxuXHQuaGxqcy1ibG9ja3F1b3RlLFxuXHQuaGxqcy1ob3Jpem9udGFsX3J1bGUsXG5cdC5obGpzLW51bWJlcixcblx0LmhsanMtcmVnZXhwLFxuXHQuYWxpYXMgLmhsanMta2V5d29yZCxcblx0LmhsanMtbGl0ZXJhbCxcblx0LmhsanMtaGV4Y29sb3Ige1xuXHQgIGNvbG9yOiAjYWU4MWZmO1xuXHR9XG5cblx0LmhsanMtdGFnIC5obGpzLXZhbHVlLFxuXHQuaGxqcy1jb2RlLFxuXHQuaGxqcy10aXRsZSxcblx0LmNzcyAuaGxqcy1jbGFzcyxcblx0LmhsanMtY2xhc3MgLmhsanMtdGl0bGU6bGFzdC1jaGlsZCB7XG5cdCAgY29sb3I6ICNhNmUyMmU7XG5cdH1cblxuXHQuaGxqcy1saW5rX3VybCB7XG5cdCAgZm9udC1zaXplOiA4MCU7XG5cdH1cblxuXHQuaGxqcy1zdHJvbmcsXG5cdC5obGpzLXN0cm9uZ2VtcGhhc2lzIHtcblx0ICBmb250LXdlaWdodDogYm9sZDtcblx0fVxuXG5cdC5obGpzLWVtcGhhc2lzLFxuXHQuaGxqcy1zdHJvbmdlbXBoYXNpcyxcblx0LmhsanMtY2xhc3MgLmhsanMtdGl0bGU6bGFzdC1jaGlsZCB7XG5cdCAgZm9udC1zdHlsZTogaXRhbGljO1xuXHR9XG5cblx0LmhsanMta2V5d29yZCxcblx0LmhsanMtZnVuY3Rpb24sXG5cdC5obGpzLWNoYW5nZSxcblx0LmhsanMtd2ludXRpbHMsXG5cdC5obGpzLWZsb3csXG5cdC5saXNwIC5obGpzLXRpdGxlLFxuXHQuY2xvanVyZSAuaGxqcy1idWlsdF9pbixcblx0Lm5naW54IC5obGpzLXRpdGxlLFxuXHQudGV4IC5obGpzLXNwZWNpYWwsXG5cdC5obGpzLWhlYWRlcixcblx0LmhsanMtYXR0cmlidXRlLFxuXHQuaGxqcy1zeW1ib2wsXG5cdC5obGpzLXN5bWJvbCAuaGxqcy1zdHJpbmcsXG5cdC5obGpzLXRhZyAuaGxqcy10aXRsZSxcblx0LmhsanMtdmFsdWUsXG5cdC5hbGlhcyAuaGxqcy1rZXl3b3JkOmZpcnN0LWNoaWxkLFxuXHQuY3NzIC5obGpzLXRhZyxcblx0LmNzcyAudW5pdCxcblx0LmNzcyAuaGxqcy1pbXBvcnRhbnQge1xuXHQgIGNvbG9yOiAjZjkyNjcyO1xuXHR9XG5cblx0LmhsanMtZnVuY3Rpb24gLmhsanMta2V5d29yZCxcblx0LmhsanMtY2xhc3MgLmhsanMta2V5d29yZDpmaXJzdC1jaGlsZCxcblx0LmhsanMtY29uc3RhbnQsXG5cdC5jc3MgLmhsanMtYXR0cmlidXRlIHtcblx0ICBjb2xvcjogIzY2ZDllZjtcblx0fVxuXG5cdC5obGpzLXZhcmlhYmxlLFxuXHQuaGxqcy1wYXJhbXMsXG5cdC5obGpzLWNsYXNzIC5obGpzLXRpdGxlIHtcblx0ICBjb2xvcjogI2Y4ZjhmMjtcblx0fVxuXG5cdC5obGpzLXN0cmluZyxcblx0LmNzcyAuaGxqcy1pZCxcblx0LmhsanMtc3Vic3QsXG5cdC5oYXNrZWxsIC5obGpzLXR5cGUsXG5cdC5ydWJ5IC5obGpzLWNsYXNzIC5obGpzLXBhcmVudCxcblx0LmhsanMtYnVpbHRfaW4sXG5cdC5kamFuZ28gLmhsanMtdGVtcGxhdGVfdGFnLFxuXHQuZGphbmdvIC5obGpzLXZhcmlhYmxlLFxuXHQuc21hbGx0YWxrIC5obGpzLWNsYXNzLFxuXHQuZGphbmdvIC5obGpzLWZpbHRlciAuaGxqcy1hcmd1bWVudCxcblx0LnNtYWxsdGFsayAuaGxqcy1sb2NhbHZhcnMsXG5cdC5zbWFsbHRhbGsgLmhsanMtYXJyYXksXG5cdC5obGpzLWF0dHJfc2VsZWN0b3IsXG5cdC5obGpzLXBzZXVkbyxcblx0LmhsanMtYWRkaXRpb24sXG5cdC5obGpzLXN0cmVhbSxcblx0LmhsanMtZW52dmFyLFxuXHQuYXBhY2hlIC5obGpzLXRhZyxcblx0LmFwYWNoZSAuaGxqcy1jYnJhY2tldCxcblx0LnRleCAuaGxqcy1jb21tYW5kLFxuXHQuaGxqcy1wcm9tcHQsXG5cdC5obGpzLWxpbmtfbGFiZWwsXG5cdC5obGpzLWxpbmtfdXJsIHtcblx0ICBjb2xvcjogI2U2ZGI3NDtcblx0fVxuXG5cdC5obGpzLWNvbW1lbnQsXG5cdC5obGpzLWphdmFkb2MsXG5cdC5qYXZhIC5obGpzLWFubm90YXRpb24sXG5cdC5weXRob24gLmhsanMtZGVjb3JhdG9yLFxuXHQuaGxqcy10ZW1wbGF0ZV9jb21tZW50LFxuXHQuaGxqcy1waSxcblx0LmhsanMtZG9jdHlwZSxcblx0LmhsanMtZGVsZXRpb24sXG5cdC5obGpzLXNoZWJhbmcsXG5cdC5hcGFjaGUgLmhsanMtc3FicmFja2V0LFxuXHQudGV4IC5obGpzLWZvcm11bGEge1xuXHQgIGNvbG9yOiAjNzU3MTVlO1xuXHR9XG5cblx0LmNvZmZlZXNjcmlwdCAuamF2YXNjcmlwdCxcblx0LmphdmFzY3JpcHQgLnhtbCxcblx0LnRleCAuaGxqcy1mb3JtdWxhLFxuXHQueG1sIC5qYXZhc2NyaXB0LFxuXHQueG1sIC52YnNjcmlwdCxcblx0LnhtbCAuY3NzLFxuXHQueG1sIC5obGpzLWNkYXRhLFxuXHQueG1sIC5waHAsXG5cdC5waHAgLnhtbCB7XG5cdCAgb3BhY2l0eTogMC41O1xuXHR9XG5cbn1cbiIsIi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBHbG9iYWwgUGFydGlhbFxuLy8gU3R5bGVzIGZvciBnbG9iYWwgbGF5b3V0LlxuLy8gKGMpIEF0bGFudGljIEJULiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gR2xvYmFsIExheW91dFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmJvZHkge1xuXHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG5cdGJhY2tncm91bmQ6ICNmMmYyZjI7XG5cblxufVxuXG4uaGVhZGVyLWNvbnRhaW5lcixcbi5jb250ZW50LWNvbnRhaW5lcixcbi5mb290ZXItY29udGFpbmVyIHtcblxuXHQud3JhcHBlciB7XG5cdFx0QGluY2x1ZGUgb3V0ZXItY29udGFpbmVyO1xuXHRcdHBhZGRpbmc6IDAgMTBweDtcblx0fVxuXHRcbn1cblxuLmNvbnRlbnQtY29udGFpbmVyIHtcblx0Ly8gcGFkZGluZy10b3A6MTAwcHg7XG5cdGgxIHtcblx0XHRtYXJnaW46IDQwcHggMDtcblx0XHRzdXAge1xuXHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDMwMDtcblx0XHRcdHRvcDogLTAuOWVtO1xuXHRcdH1cblx0fVxuXHQucGFnZS10ZW1wbGF0ZS1wYWdlLXNlY29uZGFyeS1waHAgJiB7XG5cdFx0cGFkZGluZy10b3A6MTBweDtcblx0fVxuXHRtYXJnaW4tYm90dG9tOjYwcHg7XG59XG5cbi53cmFwcGVyIHt9IiwiLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEhlYWRlciBQYXJ0aWFsXG4vLyBTdHlsZXMgZm9yIGhlYWRlciBsYXlvdXQuXG4vLyAoYykgQXRsYW50aWMgQlQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBIZWFkZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4kaGVhZGVySGVpZ2h0OiAxMDBweDtcblxuJGJ1dHRvblByaW1hcnk6ICRjb2xvcl9wcmltYXJ5O1xuJGJ1dHRvblNlY29uZGFyeTogJGNvbG9yX3RlcnRpYXJ5O1xuLmhlYWRlci1jb250YWluZXIge1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRsZWZ0OjA7XG5cdHJpZ2h0OjA7XG5cdHotaW5kZXg6IDMwMDtcblx0QGluY2x1ZGUgdHJhbnNpdGlvbiAoYWxsIDAuMnMgbGluZWFyKTtcblx0LmxvZ28ge1xuXHRcdGZsb2F0OmxlZnQ7XG5cdFx0Zm9udC1zaXplOiAwO1xuXHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cdFx0YSB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRpbWcge1xuXHRcdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uIChhbGwgMC4ycyBsaW5lYXIpO1xuXHRcdFx0XHRwYWRkaW5nOjIwcHg7XG5cdFx0XHR9XG5cdFx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0aW1nIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0cGFkZGluZy1sZWZ0OjA7XG5cdFx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzAwMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRcblx0bmF2LnByaW1hcnkgeyBcblx0XHR3aWR0aDo1NSU7IFxuXHRcdGZsb2F0OnJpZ2h0OyBcblx0XHRtYXJnaW4tcmlnaHQ6NTBweDtcblx0XHRtYXJnaW4tdG9wOjMwcHg7XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbiAobWFyZ2luIDAuMnMgbGluZWFyKTtcblxuXHRcdGJ1dHRvbiB7XG5cdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uIChhbGwgMC4ycyBsaW5lYXIpO1xuXHRcdFx0ZGlzcGxheTpub25lO1xuXHRcdFx0YmFja2dyb3VuZDokYnV0dG9uUHJpbWFyeTtcblx0XHRcdGhlaWdodDo0NXB4O1xuXHRcdFx0d2lkdGg6IDQ4cHg7XG5cdFx0XHR0b3A6IDI1cHg7XG5cdFx0XHRyaWdodDogMjBweDtcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRvdXRsaW5lOiBub25lO1xuXHRcdFx0dGV4dC1pbmRlbnQ6IC05OTk5cHg7XG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0d2lkdGg6IDY4JTtcblx0XHRcdFx0aGVpZ2h0OiA1cHg7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICRidXR0b25TZWNvbmRhcnk7XG5cdFx0XHRcdHRvcDogMTBweDtcblx0XHRcdFx0bGVmdDogMTYlO1xuXHRcdFx0XHRib3gtc2hhZG93OiAwIDEwcHggMCAkYnV0dG9uU2Vjb25kYXJ5LCAwIDIwcHggMCAkYnV0dG9uU2Vjb25kYXJ5O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdEBpbmNsdWRlIG1lZGlhKG1heC13aWR0aCA5NjBweCkge1xuXHRcdFx0cG9zaXRpb246Zml4ZWQ7XG5cdFx0XHR3aWR0aDoxMDAlO1xuXHRcdFx0dG9wOiAwO1xuXHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHRcdHJpZ2h0OiAwO1xuXHRcdFx0ei1pbmRleDogMTAwO1xuXG5cdFx0XHRidXR0b24ge1xuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0fVxuXHRcdFx0PiB1bCB7XG5cdFx0XHRcdEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAwLjNzIGxpbmVhcik7XG5cdFx0XHRcdGJhY2tncm91bmQ6JGNvbG9yXzQ7XG5cdFx0XHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0XHRcdG1heC1oZWlnaHQ6MDtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRyaWdodDogLTUwcHg7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHR0b3A6MTAwcHg7XG5cdFx0XHRcdHBhZGRpbmc6MDtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQuc2hhcmUgeyBcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0cmlnaHQ6MDtcblx0XHR6LWluZGV4OiA1MDA7XG5cdH1cblx0XG5cdGhlYWRlciB7XG5cdFx0QGluY2x1ZGUgdHJhbnNpdGlvbiAoYWxsIDAuMnMgbGluZWFyKTtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRoZWlnaHQ6ICRoZWFkZXJIZWlnaHQ7XG5cdFx0cGFkZGluZzogMCAxMHB4O1xuXHRcdC5wYWdlLXRlbXBsYXRlLXBhZ2Utc2Vjb25kYXJ5LXBocCAmIHtcblx0XHRcdGhlaWdodDogJGhlYWRlckhlaWdodCs0MHB4O1xuXHRcdH1cblx0fVxufVxuXG5cblxuLmhlYWRyb29tIHtcbiAgICBcbiAgIFxufVxuLmhlYWRyb29tLS1waW5uZWQge1xuICAgIC8vIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKDAlKSk7XG5cbn1cbmJvZHkuaGVhZHJvb20tLXVucGlubmVkIHtcbiAgICAvLyBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtMTAwJSkpO1xuXG4gICBcbiAgICAuaGVhZGVyLWNvbnRhaW5lciB7XG5cdFx0cG9zaXRpb246Zml4ZWQ7XG5cdFx0aGVhZGVyIHtcblx0XHRcdGhlaWdodDo3MHB4O1xuXHRcdFx0LmxvZ28ge1xuXHRcdFx0XHRtYXJnaW4tdG9wOiAxMHB4O1xuXG5cdFx0XHRcdGltZyB7XG5cdFx0XHRcdFx0cGFkZGluZy10b3A6NXB4O1xuXHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOiA1cHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0bmF2LnByaW1hcnkgeyBcblx0XHRcdEBpbmNsdWRlIG1lZGlhKDk2MHB4KSB7XG5cdFx0XHRcdG1hcmdpbi10b3A6MTVweDtcblx0XHRcdH1cblx0XHRcdD4gdWwge1xuXHRcdFx0XHR0b3A6NzBweDtcblx0XHRcdFx0LnN1Yi1tZW51IHtcblx0XHRcdFx0XHR0b3A6NzBweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRidXR0b24ge1xuXHRcdFx0XHR0b3A6IDEwcHg7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdCYucGFnZS10ZW1wbGF0ZS1wYWdlLXNlY29uZGFyeS1waHAgIHtcblx0XHQuY29udGVudC1jb250YWluZXIge1xuXHRcdFx0cGFkZGluZy10b3A6ICRoZWFkZXJIZWlnaHQgKyA0MHB4OztcbiAgICBcdH1cbiAgICBcdC5oZWFkZXItY29udGFpbmVyIGhlYWRlciB7XG4gICAgXHRcdGhlaWdodDo3MHB4O1xuXHRcdH1cblx0fVxuXHRcbn1cbi5oZWFkcm9vbS0tbm90LXRvcCB7XG5cblx0XG5cdFxuXHRcbn0iLCIvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ29udGVudCBQYXJ0aWFsXG4vLyBTdHlsZXMgZm9yIGNvbnRlbnQgbGF5b3V0LlxuLy8gKGMpIEF0bGFudGljIEJULiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gQ29udGVudFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi5jb250ZW50LWNvbnRhaW5lciB7XG5cdHBhZGRpbmctdG9wOiA0MHB4O1xuXHQuaGVhZHJvb20tLXVucGlubmVkICYge1xuXHRcdHBhZGRpbmctdG9wOiAxMzBweDtcbiAgICB9XG5cblx0LnN1Yi1uYXYge1xuXHRcdHBvc2l0aW9uOiBmaXhlZDtcblx0XHRAaW5jbHVkZSBtZWRpYShtYXgtd2lkdGggOTYwcHgpIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHRcdGxlZnQ6IDA7XG5cdFx0ei1pbmRleDogMzAxO1xuXHRcdGNvbG9yOiRjb2xvcl90ZXJ0aWFyeTtcblx0XHRwYWRkaW5nOiAxMHB4O1xuXHRcdHRvcDoxMDBweDtcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uIChhbGwgMC4ycyBsaW5lYXIpO1xuXHRcdC5oZWFkcm9vbS0tdW5waW5uZWQgJiB7XG5cdFx0XHR0b3A6NzBweDtcblx0XHR9XG5cblx0XHRzcGFuIHtcblx0XHRcdG1hcmdpbi1yaWdodDogMTBweDtcblx0XHR9XG5cdH1cblx0LmNvbnRlbnQtd3JhcHBlciB7fVxuXG5cdC5jb250ZW50IHt9XG5cdC5hc2lkZSB7fVxuXHRcblx0LmFsaWdubGVmdCB7XG5cdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0bWFyZ2luLXJpZ2h0OiAyMHB4O1xuXHR9XG5cblx0LmxjcF9wYWdpbmF0b3Ige1xuXHRcdGJhY2tncm91bmQ6ICRjb2xvcl83O1xuXHRcdGNvbG9yOiRjb2xvcl90ZXJ0aWFyeTtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOjA7XG5cdFx0bGkge1xuXHRcdFx0Ym9yZGVyOm5vbmU7XG5cdFx0XHRzcGFuIHtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHRwYWRkaW5nOjEwcHggMjBweDtcblx0XHRcdH1cblx0XHRcdGEge1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdHBhZGRpbmc6MTBweCAyMHB4O1xuXHRcdFx0XHRjb2xvcjokY29sb3JfNTtcblxuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRjb2xvcjokY29sb3JfdGVydGlhcnk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0LmxjcF9jYXRsaXN0IHtcblx0XHRtYXJnaW46IDA7XG5cdFx0cGFkZGluZzowO1xuXHR9XG59IiwiLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEZvb3RlciBQYXJ0aWFsXG4vLyBTdHlsZXMgZm9yIGZvb3RlciBsYXlvdXQuXG4vLyAoYykgQXRsYW50aWMgQlQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBGb290ZXJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4uZm9vdGVyLWNvbnRhaW5lciB7XG5cdG1hcmdpbi10b3A6IDIwcHg7XG5cdGJhY2tncm91bmQ6ICRjb2xvcl9zZWNvbmRhcnk7XG5cdGNvbG9yOiAkY29sb3JfdGVydGlhcnk7XG5cdHBhZGRpbmctYm90dG9tOjUwcHg7XG5cblx0LmNyZWRpdHMge1xuXHRcdGJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5O1xuXHRcdFxuXHRcdHVsIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdFx0bGkge1xuXHRcdFx0XHRwYWRkaW5nOiAzMHB4IDA7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoNzY4cHgpIHtcblx0XHRcdFx0XHR3aWR0aDoyNyU7XG5cdFx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdFx0XG5cdFx0XHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcblx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdFx0XHR3aWR0aDo0NiU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdFx0XHRwYWRkaW5nOjI3cHggMDtcblx0XHRcdFx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRhIHtcblx0XHRjb2xvcjojZmZmO1xuXHR9XG5cdGZvb3RlciB7XG5cdFx0bWFyZ2luLXRvcDogMjBweDtcblx0XHRoMiB7XG5cdFx0XHRmb250LXNpemU6IDI0cHg7XG5cdFx0XHRmb250LXdlaWdodDogNDAwO1xuXHRcdH1cblx0XHQmPmRpdiB7XG5cdFx0XHRAaW5jbHVkZSBtZWRpYSg5NjBweCkge1xuXHRcdCAgIFxuXHRcdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdFx0d2lkdGg6MjclO1xuXHRcdFx0XHRcblx0XHRcdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdFx0d2lkdGg6IDQ2JTtcblx0XHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdC5zb2NpYWwtYmFyIHtcblx0XHRcdGgyIHtcblx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoOTYwcHgpIHtcblx0XHRcdFx0XHRtaW4taGVpZ2h0OiA3MHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHR1bCB7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0bGlzdC1zdHlsZTogbm9uZTtcblx0XHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRcdHBhZGRpbmc6MDtcblx0XHRcdFx0bGkge1xuXHRcdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuXHRcdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl90ZXJ0aWFyeTtcblx0XHRcdFx0XHRib3JkZXItcmlnaHQ6bm9uZTtcblx0XHRcdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdFx0XHR3aWR0aDogNDhweDtcblx0XHRcdFx0XHRoZWlnaHQ6IDQ4cHg7XG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdFx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkY29sb3JfdGVydGlhcnk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGEge1xuXHRcdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdFx0Ly8gdGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRcdFx0d2lkdGg6MTAwJTtcblx0XHRcdFx0XHRcdHRvcDogMDtcblx0XHRcdFx0XHRcdGJvdHRvbTogMDtcblx0XHRcdFx0XHRcdC8vIHBhZGRpbmc6IDEwcHg7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6IDEuNWVtO1xuXHRcdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0XHRcdFx0c3BhbiB7XG5cdFx0XHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHRcdFx0XG5cdFx0XHRcdFx0XHRcdHRvcDogNTAlO1xuXHQgIFx0XHRcdFx0XHRcdGxlZnQ6IDUwJTtcblx0ICBcdFx0XHRcdFx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlKC01MCUsLTUwJSkpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0XG5cblx0XHR9XG5cdH1cbn0iLCIvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQWxlcnRzIFBhcnRpYWxcbi8vIFN0eWxlcyB0aGF0IGhlbHAgY29tbXVuaWNhdGUgc3VjY2Vzcywgd2FybmluZ3MsIGZhaWx1cmVzLCBldGMuXG4vLyAoYykgQXRsYW50aWMgQlQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBDaHJvbWUgRnJhbWUgLSBmb3IgdW5zdXBwb3J0ZWQgdmVyc2lvbnMgb2YgSUVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4uY2hyb21lZnJhbWUge1xuXG5cdGEge31cblxufVxuXG5cbi8vIEFsZXJ0c1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi5hbGVydC1ib3gge1xuXG5cdCYuaW5mbyB7fVxuXHQmLmVycm9yIHt9XG5cdCYuc3VjY2VzcyB7fVxuXG59IiwiLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFuaW1hdGlvbnMgUGFydGlhbFxuLy8gQ3VzdG9tIGtleWZyYW1lZCBhbmltYXRpb25zIHRvIGJlIHVzZWQgaW4gdGhlIHNpdGUvYXBwbGljYXRpb25cbi8vIChjKSBBdGxhbnRpYyBCVC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iLCIvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQnV0dG9ucyBQYXJ0aWFsXG4vLyBTdHlsZXMgZm9yIHZhcmlvdXMgdHJhZGl0aW9uYWwgYWN0aW9ucy5cbi8vIChjKSBBdGxhbnRpYyBCVC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIEJ1dHRvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0sIGJ1dHRvbiwgYS5idXR0b24ge1xuXHRAaW5jbHVkZSByZW0ocGFkZGluZywgMTBweCAyMHB4KTtcblx0QGluY2x1ZGUgcmVtKG1hcmdpbiwgMCAwIDEwcHgpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfcHJpbWFyeTtcblx0Y29sb3I6IHJnYmEoI2ZmZiwgMSk7XG5cdEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDMwMG1zIGVhc2UtaW4tb3V0KTtcblxuXHQmOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGNvbG9yX3ByaW1hcnksIDEwJSk7XG5cdH1cbn0iLCIvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRm9ybXMgUGFydGlhbFxuLy8gU3R5bGVzIGZvciB2YXJpb3VzIGZvcm1zIGFuZCBmb3JtIGVsZW1lbnRzLlxuLy8gKGMpIEF0bGFudGljIEJULiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFdyYXBwZXJzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuZm9ybSB7fVxuXG5cblx0Ly8gTGVnZW5kXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0bGVnZW5kIHt9XG5cblxuXHQvLyBGaWVsZHNldHMgLyBXcmFwcGVyc1xuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdGZpZWxkc2V0IHt9XG5cblx0XHQuZmllbGQsIC5maWVsZHBhaXIsIC5maWVsZGdyb3VwIHt9XG5cdFx0LmZpZWxkcGFpciwgLmZpZWxkZ3JvdXAge31cblxuXHRcdC8vIEZpZWxkIFBhaXJcblx0XHQuZmllbGRwYWlyID4gLmZpZWxkIHt9XG5cdFx0LmZpZWxkcGFpciA+IC5maWVsZDpmaXJzdC1jaGlsZCB7fVxuXG5cdFx0Ly8gRmllbGQgR3JvdXBcblx0XHQuZmllbGRncm91cCAuZmllbGQge31cblxuXG5cdC8vIENoZWNrYm94ZXMgJiBSYWRpb3Ncblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQuY2hlY2tib3hlcywgLnJhZGlvcyB7XG5cblx0XHR1bCB7fVxuXHRcdGlucHV0ICsgbGFiZWwge31cblxuXHR9XG5cblxuXHQvLyBMYWJlbHNcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRsYWJlbCB7fVxuXG5cdFx0Ly8gRmllbGRncm91cCBMYWJlbFxuXHRcdC5maWVsZGdyb3VwLWxhYmVsIHt9XG5cblx0XHQvLyBDaGVja2JveCwgUmFkaW8gTGFiZWxzXG5cdFx0LmZpZWxkZ3JvdXAtbGFiZWwgKyB1bCxcblx0XHQuZmllbGRncm91cC1sYWJlbCArIG9sIHt9XG5cdFx0LmZpZWxkZ3JvdXAtbGFiZWwgKyB1bCBsaSxcblx0XHQuZmllbGRncm91cC1sYWJlbCArIG9sIGxpLFxuXHRcdC5maWVsZGdyb3VwLWxhYmVsICsgdWwgbGFiZWwsXG5cdFx0LmZpZWxkZ3JvdXAtbGFibGUgKyBvbCBsYWJlbCB7fVxuXHRsYWJlbCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuXHQvLyBGaWVsZHNcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHRpbnB1dCB7XG5cdFx0Jlt0eXBlPVwidGV4dFwiXSxcblx0XHQmW3R5cGU9XCJlbWFpbFwiXSB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfcHJpbWFyeTtcblx0XHRcdEBpbmNsdWRlIHJlbShwYWRkaW5nLCA4cHggMTBweCk7XG5cdFx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAzMDAgZWFzZS1pbi1vdXQpO1xuXHRcdH1cblx0XHQvLyBDaGVja2JveCAmIFJhZGlvXG5cdFx0Jlt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbCxcblx0XHQmW3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsIHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdHBhZGRpbmctbGVmdDogMjVweDtcblx0XHRcdG1hcmdpbi1yaWdodDogMTVweDtcblx0XHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdFx0XHRcdHdpZHRoOiAxNnB4O1xuXHRcdFx0XHRoZWlnaHQ6IDE2cHg7XG5cblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRcdGJvdHRvbTogMXB4O1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyO1xuXHRcdFx0fVxuXHRcdH1cblx0XHQmW3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsIHtcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Ly8gYm9yZGVyLXJhZGl1czogOHB4O1xuXHRcdFx0XHRib3JkZXI6MXB4IHNvbGlkIGRhcmtlbigjZjJmMmYyLDMwJSk7XG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHQmW3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsIHtcblx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogOHB4O1xuXHRcdFx0XHRib3JkZXI6MXB4IHNvbGlkIGRhcmtlbigjZjJmMmYyLDMwJSk7XG5cdFx0XHR9XG5cblx0XHR9XG5cdFx0Jlt0eXBlPVwiY2hlY2tib3hcIl0sXG5cdFx0Jlt0eXBlPVwicmFkaW9cIl0ge1xuXHRcdFx0XG5cdFx0XHRkaXNwbGF5OiBub25lOyAgXG5cblx0XHR9XG5cblx0XHQmW3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgbGFiZWw6YmVmb3JlIHtcblx0XHQgICAgYmFja2dyb3VuZC1jb2xvcjogI2NjMDAwMDtcblx0XHQgICAgY29sb3I6ICNmM2YzZjM7XG5cdFx0ICAgIGZvbnQtc2l6ZTogMzJweDtcblx0XHQgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdCAgICBsaW5lLWhlaWdodDogMTRweDtcblx0XHQgICAgYm9yZGVyOjFweCBzb2xpZCBkYXJrZW4oI2NjMDAwMCwyMCUpO1xuXHRcdH1cblx0XHQmW3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRcdGNvbnRlbnQ6IFwiXCI7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cblx0XHRcdHdpZHRoOiA4cHg7XG5cdFx0XHRoZWlnaHQ6IDhweDtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDRweDtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGxlZnQ6IDRweDtcblx0XHRcdHRvcDogNXB4O1xuXHRcdH1cblxuXHRcdCZbdHlwZT1cImNoZWNrYm94XCJdOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUge1xuXHRcdCAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjY2MwMDAwO1xuXHRcdCAgICBjb2xvcjogI2YzZjNmMztcblx0XHQgICAgZm9udC1zaXplOiAzMnB4O1xuXHRcdCAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0ICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuXHRcdCAgICBib3JkZXI6MXB4IHNvbGlkIGRhcmtlbigjY2MwMDAwLDIwJSk7XG5cdFx0fVxuXHRcdCZbdHlwZT1cImNoZWNrYm94XCJdOmNoZWNrZWQgKyBsYWJlbDphZnRlciB7XG5cdFx0XHQvLyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdFx0Y29udGVudDogXCJcIjtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuXHRcdFx0d2lkdGg6IDdweDtcblx0XHRcdGhlaWdodDogMTJweDtcblx0XHRcdC8vIGJvcmRlci1yYWRpdXM6IDRweDtcblx0XHRcdEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoNDVkZWcpKTtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdGxlZnQ6IDVweDtcblx0XHRcdHRvcDogMXB4O1xuXHRcdFx0Ym9yZGVyLXJpZ2h0OjNweCBzb2xpZCAjZmZmO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTozcHggc29saWQgI2ZmZjtcblx0XHR9XG5cblx0XHQmW3R5cGU9XCJjaGVja2JveFwiXTpmb2N1cywgJlt0eXBlPVwicmFkaW9cIl06Zm9jdXMge31cblx0XHRcblxuXG5cblx0XHQvLyBTZWFyY2hcblx0XHQmW3R5cGU9XCJzZWFyY2hcIl0ge31cblx0XHQmW3R5cGU9XCJzZWFyY2hcIl06Oi1tcy1jbGVhciB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblxuXHRcdC8vIEZpbGVcblx0XHQmW3R5cGU9XCJmaWxlXCJdIHt9XG5cblx0XHQvLyBGb2N1c1xuXHRcdCY6Zm9jdXMge31cblxuXHR9XG5cdHRleHRhcmVhIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfcHJpbWFyeTtcblx0XHRAaW5jbHVkZSByZW0ocGFkZGluZywgOHB4IDEwcHgpO1xuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDMwMCBlYXNlLWluLW91dCk7XG5cdH1cblxuXHQvLyBDdXN0b20gQ2hlY2tib3hlcyArIFJhZGlvc1xuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdDpyb290IHtcblxuXHRcdC8vIENvbW1vblxuXHRcdC5yYWRpbyBsYWJlbCxcblx0XHQuY2hlY2tib3ggbGFiZWwge31cblx0XHQuY2hlY2tib3ggaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuXHRcdC5yYWRpbyBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge31cblxuXHRcdC8vIEN1c3RvbSBSYWRpb3Ncblx0XHQucmFkaW8gbGFiZWw6YmVmb3JlIHt9XG5cdFx0LnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgbGFiZWw6YmVmb3JlIHt9XG5cdFx0LnJhZGlvIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge31cblxuXHRcdC8vIEN1c3RvbSBDaGVja2JveFxuXHRcdC5jaGVja2JveCBsYWJlbDpiZWZvcmUge31cblx0XHQuY2hlY2tib3ggaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmNoZWNrZWQgKyBsYWJlbDpiZWZvcmUge31cblxuXHR9IiwiLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1lZGlhIFBhcnRpYWxcbi8vIFN0eWxlcyBmb3IgdmFyaW91cyBtdWx0aW1lZGlhIGVsZW1lbnRzLlxuLy8gKGMpIEF0bGFudGljIEJULiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gRmlndXJlcyAmIEltYWdlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmZpZ3VyZSB7XG5cblx0YSB7fVxuXHRhID4gaW1nIHt9XG5cdGE6aG92ZXIgPiBpbWcge31cblxufVxuXG5cbi8vIFZpZGVvc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbnZpZGVvIHt9XG5cblxuLy8gaUZyYW1lc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmlmcmFtZSB7fVxuXG5cbi8vIEZyZXNjbyAtIEN1c3RvbWl6YXRpb25cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4uZnItY2xvc2Uge31cblxuXG4vLyBHb29nbGUgTWFwc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi5nb29nbGUtbWFwIGltZyB7fSIsIi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBOYXZpZ2F0aW9ucyBQYXJ0aWFsXG4vLyBTdHlsZXMgZm9yIHZhcmlvdXMgdHlwZXMgb2YgbmF2aWdhdGlvbiBjb21wb25lbmV0cy5cbi8vIChjKSBBdGxhbnRpYyBCVC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIFByaW1hcnkgTmF2aWdhdGlvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbm5hdi5wcmltYXJ5IHtcblx0Ly8gZm9udC13ZWlnaHQ6NDAwO1xuXHR1bCB7XHRcblx0XHRtYXJnaW46MDtcblx0XHRwYWRkaW5nOjA7XG5cdH1cblxufVxuXG5cbi5mbGV4LWNvbnRhaW5lciB7XG5cdG1hcmdpbjowO1xuXHRwYWRkaW5nOjA7XG4gIFx0bGlzdC1zdHlsZTogbm9uZTtcblx0XG5cdCZ1bCB7XG5cdFx0Zm9udC1zaXplOiAwO1xuXHR9XG5cblx0bGkge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRmb250LXNpemU6IDAuOWVtO1xuXHRcdEBpbmNsdWRlIG1lZGlhKDEwODhweCkge1xuXHRcdCAgICAvLyBmb250LXNpemU6IDFlbTtcblx0XHR9XG5cdCAgXHRhIHtcblx0XHRcdFxuXHRcdFx0Y29sb3I6ICMzMzM7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdHBhZGRpbmc6MC41ZW07XG5cdFx0XHQvLyBsaW5lLWhlaWdodDo0ZW07XG5cdFx0XHRcblx0XHR9XG5cdH1cblx0LnN1Yi1tZW51IHtcblx0XHRAaW5jbHVkZSB0cmFuc2l0aW9uIChhbGwgMC4ycyBsaW5lYXIpO1xuXHQgICAgZGlzcGxheTpub25lO1xuXHQgICAgcG9zaXRpb246Zml4ZWQ7XG5cdCAgICB0b3A6IDEwMHB4O1xuXHQgICAgbGVmdDogMDtcblx0ICAgIHJpZ2h0OiAwO1xuXHQgICAgbGlzdC1zdHlsZTpub25lO1xuXHQgICAgYmFja2dyb3VuZDogJGNvbG9yXzc7XG5cdCAgICBmb250LXNpemU6IDA7XG5cdCAgICBsaSB7XG5cdCAgICBcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0ICAgIFx0dGV4dC1hbGlnbjogbGVmdDtcblxuXHQgICAgXHRhIHtcblx0ICAgIFx0XHRmb250LXNpemU6IDE0cHg7XG5cdCAgICBcdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0ICAgIFx0XHRwYWRkaW5nOiAxMHB4IDIwcHg7XG5cdCAgICBcdFx0Y29sb3I6JGNvbG9yX3RlcnRpYXJ5O1xuXHQgICAgXHRcdGxpbmUtaGVpZ2h0OiAyNHB4O1xuXHQgICAgXHR9XG5cdCAgICBcblx0ICAgIH1cblx0ICAvLyAgIEBpbmNsdWRlIG1lZGlhKG1heC13aWR0aCA5NjBweCkge1xuXHRcdFx0Ly8gLy8gcG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0Ly8gZGlzcGxheTogbm9uZTtcblx0ICAvLyAgIH1cblx0fVxuICBcdC5jdXJyZW50X3BhZ2VfaXRlbSxcbiAgXHQuY3VycmVudF9wYWdlX2FuY2VzdG9yIHtcblx0ICBcdC5zdWItbWVudSB7XG5cdCAgICBcdGRpc3BsYXk6YmxvY2s7XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRcdEBpbmNsdWRlIG1lZGlhKG1heC13aWR0aCA5NjBweCkge1xuXHRcdFx0XHQvLyBwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0ICAgIH1cblx0ICAgIFx0bGk6Zmlyc3QtY2hpbGQge1xuXHQgICAgXHRcdC8vIHRleHQtYWxpZ246IGxlZnQ7XG5cdCAgICBcdFx0Ly8gZmxvYXQ6IGxlZnQ7XG5cdCAgICBcdFx0Ly8gcGFkZGluZy1sZWZ0OjQwcHg7XG5cdCAgICBcdH1cblx0ICAgIFx0LmN1cnJlbnQtbWVudS1pdGVtIGEge1xuXHQgICAgXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdCAgICBcdH1cblx0ICBcdH1cblx0fVxuXHQuY3VycmVudC1tZW51LWl0ZW0sXG5cdC5jdXJyZW50LW1lbnUtYW5jZXN0b3Ige1xuXHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0dWwgbGkge1xuXHRcdFx0Zm9udC13ZWlnaHQ6MzAwO1xuXHRcdFx0Ji5jdXJyZW50LW1lbnUtaXRlbSB7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdFxuXHQuc3R5bGVndWlkZSAmIHtcblx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHR9XG5cdCYuc2Vjb25kYXJ5IHtcblx0XHRsaSBhIHtcblx0XHRcdHBhZGRpbmc6MC41ZW07XG5cdFx0XHRsaW5lLWhlaWdodDogM2VtO1xuXHRcdH1cblx0fVxuICBcbn1cblxuLnJpZ2h0IHtcblx0Ly8gQGluY2x1ZGUganVzdGlmeS1jb250ZW50KGZsZXgtZW5kKTtcblx0dGV4dC1hbGlnbjpyaWdodDtcbn0gXG4ubm8tc2Nyb2xsIHtcblx0b3ZlcmZsb3c6aGlkZGVuO1xufVxuXG4uZmx5b3V0LW1lbnUge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHRvcDowO1xuXHRib3R0b206MDtcblx0bGVmdDowO1xuXHRyaWdodDowO1xuXHR3aWR0aDoxMDAlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMCk7XG5cdHotaW5kZXg6LTE7XG5cdCRwYW5lbFdpZHRoOjMwMHB4O1xuXG5cdCYuYWN0aXZlIHtcblx0XHRiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC41KTtcblx0XHR6LWluZGV4OiA1MDA7XG5cdFx0dWwsIGRpdiB7XG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdH1cblx0fVxuXHRoMyB7XG5cdFx0aGVpZ2h0OjcwcHg7XG5cdFx0cGFkZGluZzoyMHB4O1xuXHRcdG1hcmdpbjogMDtcblx0fVxuXHRoNCB7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHBhZGRpbmc6MTBweCAyMHB4O1xuXHR9XG5cdHVsLCBkaXYge1xuXHRcdGRpc3BsYXk6bm9uZTtcblx0fVxuXHRbZGF0YS1sZXZlbF0ge1xuXHRcdGRpc3BsYXk6YmxvY2s7XG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XG5cdFx0cmlnaHQ6MDtcblx0XHR0b3A6IDA7XG5cdFx0Ym90dG9tOjA7XG5cdFx0bWluLXdpZHRoOiAkcGFuZWxXaWR0aDtcblx0XHRiYWNrZ3JvdW5kOiRjb2xvcl80O1xuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAwLjJzIGxpbmVhcik7XG5cdFx0QGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoJHBhbmVsV2lkdGgpKTtcblx0XHRib3JkZXItbGVmdDogM3B4IHNvbGlkICNjYzAwMDA7XG5cblx0XHQmLmFjdGl2ZSB7XG5cdFx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCgwcHgpKTtcblx0XHRcdHotaW5kZXg6IDUwMTtcblx0XHR9XG5cdH1cblxuXHQmW2RhdGEtbGV2ZWwtYWN0aXZlPVwiMlwiXSB7XG5cdFx0W2RhdGEtbGV2ZWw9XCIxXCJdIHtcblx0XHRcdG1hcmdpbi1yaWdodDogNDBweDtcblx0XHRcdD4gdWwgPiAuY2xvc2UtYnRuIHtcblx0XHRcdFx0YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuNSk7XG5cdFx0XHRcdHRvcDowO1xuXHRcdFx0XHRyaWdodDowO1xuXHRcdFx0XHRsZWZ0OjA7XG5cdFx0XHRcdGJvdHRvbTowO1xuXHRcdFx0XHRjdXJzb3I6cG9pbnRlcjtcblx0XHRcdH1cdFx0XHRcblx0XHR9XG5cdFx0W2RhdGEtbGV2ZWw9XCIyXCJdIHtcblx0XHRcdEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVYKDQwcHgpKTtcblx0XHR9XG5cdH1cblx0JltkYXRhLWxldmVsLWFjdGl2ZT1cIjNcIl0ge1xuXHRcdFtkYXRhLWxldmVsPVwiMVwiXSB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDgwcHg7XG5cdFx0fVxuXHRcdFtkYXRhLWxldmVsPVwiMlwiXSB7XG5cdFx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCg0MHB4KSk7XG5cdFx0XHQ+IHVsID4gLmNsb3NlLWJ0biB7XG5cdFx0XHRcdGJhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjUpO1xuXHRcdFx0XHR0b3A6MDtcblx0XHRcdFx0cmlnaHQ6MDtcblx0XHRcdFx0bGVmdDowO1xuXHRcdFx0XHRib3R0b206MDtcblx0XHRcdFx0Y3Vyc29yOnBvaW50ZXI7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdFtkYXRhLWxldmVsPVwiM1wiXSB7XG5cdFx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCg0MHB4KSk7XG5cdFx0fVxuXHR9XG5cdCZbZGF0YS1sZXZlbC1hY3RpdmU9XCIzXCJdIHtcblx0XHRbZGF0YS1sZXZlbD1cIjFcIl0ge1xuXHRcdFx0PiB1bCA+IC5jbG9zZS1idG4ge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC41KTtcblx0XHRcdFx0dG9wOjA7XG5cdFx0XHRcdHJpZ2h0OjA7XG5cdFx0XHRcdGxlZnQ6MDtcblx0XHRcdFx0Ym90dG9tOjA7XG5cdFx0XHRcdGN1cnNvcjpwb2ludGVyO1xuXHRcdFx0fVx0XG5cdFx0fVxuXHR9XG5cdG5hdiB7XG5cdFx0dWwge1xuXHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRwYWRkaW5nOjA7XG5cdFx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdFx0bGkge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzMzMztcblx0XHRcdH1cblx0XHR9XG5cdFx0YSB7XG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRwYWRkaW5nOjEwcHggMjBweDtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0Y29sb3I6ICMwMDA7XG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0YmFja2dyb3VuZDogZGFya2VuKCNjMWMxYzEsIDEwJSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdC5jbG9zZS1idG4ge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6MjBweDtcblx0XHRyaWdodDoxMHB4O1xuXHRcdGJvcmRlcjpub25lO1xuXHRcdFxuXHRcdGJ1dHRvbiB7XG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcblx0XHRcdHdpZHRoOiAyNXB4O1xuXHRcdFx0aGVpZ2h0OiAyNXB4O1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0YmFja2dyb3VuZDp0cmFuc3BhcmVudDtcblxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRjb250ZW50OiAnJztcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0dG9wOiA1MCU7XG5cdFx0XHRcdGhlaWdodDogMXB4O1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjMDAwO1xuXHRcdFx0XHQvLyBsZWZ0OiAtM2VtO1xuXHRcdFx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDQ1ZGVnKSk7XG5cdFx0XHR9XG5cdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0Y29udGVudDogJyc7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRcdHRvcDogNTAlO1xuXHRcdFx0XHRoZWlnaHQ6IDFweDtcblx0XHRcdFx0YmFja2dyb3VuZDogIzAwMDtcblx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0QGluY2x1ZGUgdHJhbnNmb3JtKHJvdGF0ZSgtNDVkZWcpKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdH1cblx0aDQge1xuXHRcdGNvbG9yOiAjZmZmO1xuXHRcdGJhY2tncm91bmQ6I2NjMDAwMDtcblx0fVxuXHRcbn1cblxuXG4vLyBGb290ZXIgTmF2aWdhdGlvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbm5hdi5mb290ZXIge31cblxuXG4vLyBVdGlsaXR5IE5hdmlnYXRpb25cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5uYXYudXRpbGl0eSB7fVxuXG5cbi8vIEJyZWFkY3J1bWIgTmF2aWdhdGlvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi5icmVhZGNydW1icyB7fVxuXG5cbi8vIFBhZ2luYXRpb24gTmF2aWdhdGlvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi5wYWdpbmF0aW9uIHt9XG5cbi5wYWdpbmF0aW9uIHNwYW4sIC5wYWdpbmF0aW9uIGEge31cbi5wYWdpbmF0aW9uIHNwYW46Zmlyc3QtY2hpbGQge31cbi5wYWdpbmF0aW9uIGE6aG92ZXIge31cbi5wYWdpbmF0aW9uIC5jdXJyZW50IHt9IiwiLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFBhbmVscyBQYXJ0aWFsXG4vLyBTdHlsZXMgZm9yIHZhcmlvdXMgdHlwZXMgb2YgcGFuZWwgY29tcG9uZW5ldHMuXG4vLyAoYykgQXRsYW50aWMgQlQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFBhbmVsc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi5wYW5lbCB7XG5cblxuXHQvLyBIZWFkaW5nXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0LnBhbmVsLWhlYWRpbmcge1xuXG5cdFx0LnBhbmVsLXRpdGxlIHt9XG5cblx0fVxuXG5cdC8vIENvbnRlbnRcblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQucGFuZWwtY29udGVudCB7XG5cblx0XHQmID4gKjpsYXN0LWNoaWxkIHt9XG5cblx0fVxuXG59IiwiLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNlYXJjaCBGb3JtIFBhcnRpYWxcbi8vIFN0eWxlcyBmb3IgdGhlIHNlYXJjaCBmb3JtLlxuLy8gKGMpIEF0bGFudGljIEJULiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iLCIvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2VhcmNoIFJlc3VsdHMgUGFydGlhbFxuLy8gU3R5bGVzIGZvciB0aGUgc2VhcmNoIHJlc3VsdHMuXG4vLyAoYykgQXRsYW50aWMgQlQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIsIi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUYWJsZXMgUGFydGlhbFxuLy8gU3R5bGVzIGZvciB0YWJsZXMgYW5kIHRhYmxlIGNvbXBvbmVuZXRzLlxuLy8gKGMpIEF0bGFudGljIEJULiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gVmFyaWFibGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIFRhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbnRhYmxlIHtcblxuXHQvLyBHbG9iYWxcblx0Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHR0ciB7fVxuXHR0aCwgdGQge31cblx0dGgge31cblxuXG5cdC8vIEhlYWRlciBDZWxsc1xuXHQvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdHRoZWFkIHt9XG5cdHRoZWFkIHRoIHt9XG5cblxuXHQvLyBCb2R5IENlbGxzXG5cdC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0dGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pIHt9XG5cblx0XHQvLyBIb3ZlclxuXHRcdHRib2R5IHRyOmhvdmVyIHt9XG5cdFx0dGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pOmhvdmVyIHt9XG5cblxuXHQvLyBGb290ZXIgQ2VsbHNcblx0Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHR0Zm9vdCB7fVxuXHR0Zm9vdCB0ZCB7fVxuXG5cdFx0Ly8gSG92ZXJcblx0XHR0Zm9vdCB0cjpob3ZlciB7fVxuXHRcdHRmb290IHRyOm50aC1jaGlsZChldmVuKTpob3ZlciB7fVxuXG5cbn0iLCIvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU29jaWFsIEhlYWRlciBQYXJ0aWFsXG4vLyBTdHlsZXMgZm9yIHNvY2lhbCBzaGFyZSBidXR0b25zIGluIGhlYWRlci5cbi8vIChjKSBBdGxhbnRpYyBCVC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIFZhcmlhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiRkZWZhdWx0LWhlaWdodDogMTAwcHg7XG4kZGVmYXVsdC13aWR0aDogNTBweDtcbiRzbWFsbC1oZWlnaHQ6IDcwcHg7XG4kc21hbGwtd2lkdGg6ICRzbWFsbC1oZWlnaHQ7XG4vL2NhbGN1bGF0ZSB3aWR0aCBiYXNlZCBvbiBob3cgbWFueSBpY29ucyBhcmUgdXNlZC5cbiRleHBhbmRlZC13aWR0aDogJGRlZmF1bHQtd2lkdGggKyAoJHNtYWxsLXdpZHRoICogMik7XG5cbi5zaGFyZSB7XG5cdEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAwLjJzIGVhc2UtaW4tb3V0KTtcblx0aGVpZ2h0OiAkZGVmYXVsdC1oZWlnaHQ7XG5cdHdpZHRoOiAkZGVmYXVsdC13aWR0aDtcblxuXHRiYWNrZ3JvdW5kOiAjMzMzMzMzO1xuXHRvdmVyZmxvdzpoaWRkZW47XG5cblx0dWwge1xuXHRcdG1hcmdpbjowO1xuXHRcdHBhZGRpbmc6MDtcblx0XHRsaXN0LXN0eWxlOiBub25lO1xuXHRcdEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAwLjJzIGVhc2UtaW4tb3V0KTtcblx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSggLSgkZGVmYXVsdC1oZWlnaHQgLyAyKSApKTtcblxuXHRcdGxpIHtcblx0XHRcdGEge1xuXHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcblx0XHRcdFx0d2lkdGg6ICRkZWZhdWx0LXdpZHRoO1xuXHRcdFx0XHRoZWlnaHQ6ICRkZWZhdWx0LWhlaWdodCAvIDI7XG5cdFx0XHRcdHRleHQtaW5kZW50OiAtOTk5OXB4O1xuXHRcdCAgICBcdHdoaXRlLXNwYWNlOiBub3dyYXA7XHRcdFx0XG5cdFx0ICAgIH1cblx0XHQgICAgLnRvZ2dsZSB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IzMzMzMzMyB1cmwoLi4vaW1nL3NvY2lhbC1zaGFyZS5wbmcpIG5vLXJlcGVhdCBjZW50ZXI7XG5cdFx0ICAgIH1cblx0XHRcdC5mYiB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IzNiNTk5OCB1cmwoLi4vaW1nL3NvY2lhbC1mYi5wbmcpIG5vLXJlcGVhdCBjZW50ZXI7XG5cdFx0XHR9XG5cdFx0XHQudHdpdHRlciB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IzAwYWNlZCB1cmwoLi4vaW1nL3NvY2lhbC10d2l0dGVyLnBuZykgbm8tcmVwZWF0IGNlbnRlcjtcblx0XHRcdH1cblx0XHR9XHRcblx0fVxuXG5cdC5oZWFkcm9vbS0tbm90LXRvcCAmIHtcblx0XHRoZWlnaHQ6ICRzbWFsbC1oZWlnaHQ7XG5cblx0XHR1bCB7XG5cdFx0XHR3aWR0aDokZXhwYW5kZWQtd2lkdGg7XG5cdFx0XHRAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgwcHgpKTtcblx0XHRcdGxpIHtcblx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdHdpZHRoOiRzbWFsbC1oZWlnaHQ7XG5cdFx0XHRcdFx0aGVpZ2h0OiRzbWFsbC1oZWlnaHQ7XG5cdFx0XHRcdH1cblx0XHRcdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHR3aWR0aDokZGVmYXVsdC1oZWlnaHQgLyAyO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRcblx0XHQmOmhvdmVyLFxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0d2lkdGg6JGV4cGFuZGVkLXdpZHRoO1x0XG5cdFx0fVxuXHR9XG59XG4iLCIvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gNDA0IFBhZ2UgUGFydGlhbFxuLy8gU3R5bGVzIGZvciB0aGUgNDA0IEVycm9yIFBhZ2UuXG4vLyAoYykgQXRsYW50aWMgQlQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBFcnJvciA0MDRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4uZXJyb3I0MDQge30iLCIvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSG9tZSBQYWdlIFBhcnRpYWxcbi8vIFN0eWxlcyBmb3IgdGhlIGhvbWUgcGFnZS5cbi8vIChjKSBBdGxhbnRpYyBCVC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmJvZHkuaG9tZSB7XG5cdC5jb250ZW50LWNvbnRhaW5lciB7XG5cdFx0cGFkZGluZy10b3A6MDtcblx0fVxuXHQmLmhlYWRyb29tLS11bnBpbm5lZCB7XG5cdFx0LmNvbnRlbnQtY29udGFpbmVyIHtcblx0XHRcdHBhZGRpbmctdG9wOiAxMDBweDtcblx0XHR9XG5cdH1cbn1cblxuLnNlYXJjaC1jb250YWluZXIge1xuXHRiYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeTtcblx0Y29sb3I6ICRjb2xvcl90ZXJ0aWFyeTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR3aWR0aDoxMDAlO1xuXHQuc2VhcmNoLXppcCB7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR9XG5cdGgyIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0Ly8gQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRmb250LXdlaWdodDogNDAwO1xuXHRcdHBhZGRpbmc6IDIwcHggMDtcblx0XHRcblx0XHRtYXJnaW46IDIwcHggMDtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yX3RlcnRpYXJ5O1xuXHRcdEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wKSB7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiA0MHB4O1xuXHRcdFx0Ym9yZGVyOm5vbmU7XG5cdFx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkY29sb3JfdGVydGlhcnk7XG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcblx0XHRcdHdpZHRoOjUwJTtcblx0XHRcdGZsb2F0OmxlZnQ7XG5cdFx0fVxuXHR9XG5cdGZvcm0ge1xuXHRcdGZvbnQtc2l6ZTogMDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0QGluY2x1ZGUgbWVkaWEoJGRlc2t0b3ApIHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0d2lkdGg6IDUwJTtcblx0XHRcdHBhZGRpbmc6IDIwcHggMDtcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XG5cdFx0fVxuXHRcdFxuXHRcdC8vIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHQuaW5wdXQge1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTo0MHB4O1xuXHRcdFx0QGluY2x1ZGUgbWVkaWEoJGRlc2t0b3ApIHtcblx0XHRcdFx0bWFyZ2luOjA7XG5cdFx0XHRcdHBhZGRpbmc6IDEzcHggMDtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDQwcHg7XG5cdFx0XHR9XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0XHRsYWJlbCB7XG5cdFx0XHRcdHBhZGRpbmc6IDEwcHggMDtcblx0XHRcdFx0cGFkZGluZy1yaWdodDoxMHB4O1xuXHRcdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdFx0XG5cdFx0XHR9XG5cdFx0XHRpbnB1dFt0eXBlPXRleHRdIHtcblx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdGJvcmRlcjpub25lOyBcblx0XHRcdFx0dGV4dC1zaGFkb3c6IG5vbmU7XG5cdFx0XHRcdGJveC1zaGFkb3c6bm9uZTtcblx0XHRcdFx0cGFkZGluZzogMTBweDtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAzMHB4O1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdG1heC13aWR0aDogMTkwcHg7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0YmFja2dyb3VuZDogJGNvbG9yX3RlcnRpYXJ5IHVybCguLi9pbWcvc2VhcmNoLWdsb2JlLWljb24ucG5nKSBuby1yZXBlYXQgMTBweCBjZW50ZXI7XG5cdFx0XHR9XG5cdFx0XHRpbnB1dFt0eXBlPXN1Ym1pdF0ge1xuXHRcdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdFx0YmFja2dyb3VuZDogZGFya2VuKCRjb2xvcl84LDEwJSk7XG5cdFx0XHRcdGNvbG9yOiAkY29sb3JfdGVydGlhcnk7XG5cdFx0XHRcdHBhZGRpbmc6IDEwcHg7XG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0bWluLXdpZHRoOiAxMTBweDtcblx0XHRcdH1cblx0XHRcdC5lcnJvciB7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0dG9wOiA0MHB4O1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHQmLmFjdGl2ZSB7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdH1cblx0XHRcblx0fVxufVxuI2NoYXJ0X2RpdiB7XG5cdG1pbi1oZWlnaHQ6NzAwcHg7XG5cdG92ZXJmbG93OmhpZGRlbjtcbn1cbiNjaGFydF9kaXYgcGF0aCB7XG5cdC8vIHN0cm9rZS13aWR0aDoxOyBcblx0c3Ryb2tlOiNmZmY7XG5cblx0Jjpob3ZlciB7XG5cdFx0c3Ryb2tlOiNmZGQ3MjY7XG5cdFx0ZmlsbDojZmRkNzI2O1xuXHRcdGN1cnNvcjpwb2ludGVyO1xuXHR9XG59XG4udG9vbHRpcCB7XG5cdGgzIHtcblx0XHRjb2xvcjokY29sb3JfcHJpbWFyeTtcblx0XHRwYWRkaW5nLWJvdHRvbTowO1xuXHRcdG1hcmdpbi1ib3R0b206NXB4O1xuXHR9XG5cdFxuXHR3aWR0aDogMjAwcHg7XG59XG4uZ29vZ2xlLXZpc3VhbGl6YXRpb24tdG9vbHRpcC1pdGVtOmZpcnN0LWNoaWxkIHtcblx0ZGlzcGxheTpub25lO1xufVxuXG4ubWFwLWNvbnRhaW5lciB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0b3ZlcmZsb3c6aGlkZGVuO1xuXG5cdCNjaGFydF9kaXYge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0QGluY2x1ZGUgbWVkaWEoJGRlc2t0b3ApIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0bWFyZ2luLWxlZnQ6MzBweDtcblx0XHRcdG1hcmdpbi1yaWdodDogLTMwcHg7XG5cdFx0fVxuXHR9XG5cdGgyIHtcblx0XHRmb250LXNpemU6IDMycHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdGZvbnQtd2VpZ2h0OiA0MDA7XG5cdFx0bWFyZ2luOiA0MHB4IDA7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxuXHQuY3RhLWJ1dHRvbnMge1xuXHRcdGRpc3BsYXk6bm9uZTtcblx0XHRAaW5jbHVkZSBtZWRpYSgkZGVza3RvcCkge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRyaWdodDogNTBweDtcblx0XHRib3R0b206MDtcblx0XHR1bCB7XG5cdFx0XHRtYXJnaW46MDtcblx0XHRcdHBhZGRpbmc6MDtcblx0XHRcdGxpc3Qtc3R5bGU6bm9uZTtcblxuXHRcdFx0bGkge1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgJGNvbG9yXzU7XG5cdFx0XHRcdFx0cGFkZGluZzo1cHggMTBweDtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOiRjb2xvcl90ZXJ0aWFyeTtcblx0XHRcdFx0XHRjb2xvcjogJGNvbG9yXzY7XG5cdFx0XHRcdFx0LmN0YS1pY29uIHtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHRcdFx0XHRjb2xvcjogJGNvbG9yX3RlcnRpYXJ5O1xuXHRcdFx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZDokY29sb3JfNjtcblx0XHRcdFx0XHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0XHRcdFx0XHR3aWR0aDo0OHB4O1xuXHRcdFx0XHRcdFx0aGVpZ2h0OjQ4cHg7XG5cdFx0XHRcdFx0XHRsaW5lLWhlaWdodDogNDhweDtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMjRweDtcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogNXB4OyBcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aW1nIHtcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogNXB4OyBcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0c3BhbiB7XG5cdFx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRbY2xhc3NePVwiaWNvbi1cIl0sIFtjbGFzcyo9XCIgaWNvbi1cIl0ge1xuXHRcdFx0XHRcdFx0Y29sb3I6JGNvbG9yXzU7XG5cdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6MjBweDtcblx0XHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiA0OHB4O1xuXHRcdFx0XHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiRjb2xvcl80O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQubW9iaWxlLWxpc3Qge1xuXHRcdEBpbmNsdWRlIG1lZGlhKCRkZXNrdG9wKSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0XHRtYXJnaW4tdG9wOiAzMHB4O1xuXHRcdHVsIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdHBhZGRpbmc6MDtcblx0XHRcdGxpc3Qtc3R5bGU6bm9uZTtcblx0XHRcdEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcjtcblx0XHRcdGxpIHtcblx0XHRcdFx0YmFja2dyb3VuZDogJGNvbG9yXzc7XG5cdFx0XHRcdGNvbG9yOiAkY29sb3JfdGVydGlhcnk7XG5cblx0XHRcdFx0Ji50YWJsZXQtaGVhZGVyLFxuXHRcdFx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdFx0XHRwYWRkaW5nOjEwcHggMjBweDtcblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0c3BhbiB7XG5cdFx0XHRcdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdFx0XHRcdHdpZHRoOiA0MHB4O1xuXHRcdFx0XHRcdFx0dGV4dC1hbGlnbjpjZW50ZXI7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGEge1xuXHRcdFx0XHRcdHBhZGRpbmc6MTBweCAyMHB4O1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHRzcGFuIHtcblx0XHRcdFx0XHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdFx0XHRcdGNvbG9yOiRjb2xvcl82O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHQmOm50aC1jaGlsZCgybiszKSB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogI2VmZWZlZjtcblx0XHRcdFx0fVxuXHRcdFx0XHRcblx0XHRcdFx0JjpudGgtY2hpbGQoMm4rNCkge1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6ICRjb2xvcl90ZXJ0aWFyeTtcblx0XHRcdFx0fVxuXHRcdFx0XHRAaW5jbHVkZSBtZWRpYShtYXgtd2lkdGggJHRhYmxldCkge1xuXHRcdFx0XHRcdC8vIEBpbmNsdWRlIHNwYW4tY29sdW1ucygyIG9mIDIpO1xuXHRcdFx0XHRcdC8vIEBpbmNsdWRlIG9tZWdhKDJuKTtcblx0XHRcdFx0XHQmLnRhYmxldC1oZWFkZXIge1xuXHRcdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgkdGFibGV0KSB7XG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoNG4rMyksXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoNG4rNCkge1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZDogI2VmZWZlZjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoNG4rNSksXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoNG4rNikge1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZDogJGNvbG9yX3RlcnRpYXJ5O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMyBvZiA2KTtcblx0XHRcdFx0XHQvLyBAaW5jbHVkZSBvbWVnYS1yZXNldCgybik7XG5cdFx0XHRcdFx0QGluY2x1ZGUgb21lZ2EoMm4pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHR9XG5cdH1cbn1cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuIiwiLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEhlbHBlcnMgUGFydGlhbFxuLy8gVmFyaW91cyBjbGFzc2VzIHRoYXQgd2lsbCBoZWxwIGNsZWFuIHVwIGxheW91dHMgYW5kIHN0eWxlc1xuLy8gKGMpIEF0bGFudGljIEJULiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLmlyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdGV4dC1pbmRlbnQ6IC05OTllbTtcbiAgICBkaXJlY3Rpb246IGx0cjtcbiAgICAqbGluZS1oZWlnaHQ6IDA7XG4gICAgYnIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLmhpZGRlbiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnZpc3VhbGx5aGlkZGVuIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYm9yZGVyOiAwO1xuICAgICYuZm9jdXNhYmxlIHtcbiAgICAgICAgJjphY3RpdmUsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICAgICAgY2xpcDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uaW52aXNpYmxlIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5ncm91cCB7XG4gICAgKnpvb206IDE7XG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgIH1cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxufVxuXG4vLyBQcmV2ZW50IGxheW91dCBicmVhayB3aXRoIEdvb2dsZSBBZFdvcmRzXG5pbWdbc3JjKj1cImdvb2dsZWFkc2VydmljZXMuY29tXCJdIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IC05MDAwZW07XG59IiwiLy8gVmFyaWFibGUgc2V0dGluZ3MgZm9yIC9hZGRvbnMvcHJlZml4ZXIuc2Nzc1xuJHByZWZpeC1mb3Itd2Via2l0OiAgICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3ItbW96aWxsYTogICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3ItbWljcm9zb2Z0OiB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3Itb3BlcmE6ICAgICB0cnVlICFkZWZhdWx0O1xuJHByZWZpeC1mb3Itc3BlYzogICAgICB0cnVlICFkZWZhdWx0OyAvLyByZXF1aXJlZCBmb3Iga2V5ZnJhbWUgbWl4aW5cbiIsIiRlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xuIiwiQGZ1bmN0aW9uIF9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC10eXBlLCAkZ3JhZGllbnQtcG9zaXRpb25zKSB7XG4gIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cbiAgQGVsc2UgaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xuICBhbmQgKCRncmFkaWVudC10eXBlID09IHJhZGlhbClcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xuICB9XG4gIEByZXR1cm4gJGdyYWRpZW50LXBvc2l0aW9ucztcbn1cbiIsIkBmdW5jdGlvbiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcykge1xuICAkdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkc3BlYzogbnVsbDtcbiAgJGRlZ3JlZTogbnVsbDtcbiAgJHNpZGU6IG51bGw7XG4gICRjb3JuZXI6IG51bGw7XG4gICRsZW5ndGg6IGxlbmd0aCgkcG9zKTtcbiAgLy8gUGFyc2UgU2lkZSBhbmQgY29ybmVyIHBvc2l0aW9uc1xuICBAaWYgKCRsZW5ndGggPiAxKSB7XG4gICAgQGlmIG50aCgkcG9zLCAxKSA9PSBcInRvXCIgeyAvLyBOZXdlciBzeW50YXhcbiAgICAgICRzaWRlOiBudGgoJHBvcywgMik7XG5cbiAgICAgIEBpZiAkbGVuZ3RoID09IDIgeyAvLyBlZy4gdG8gdG9wXG4gICAgICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRhYmlsaXR5XG4gICAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDMgeyAvLyBlZy4gdG8gdG9wIGxlZnRcbiAgICAgICAgJGNvcm5lcjogbnRoKCRwb3MsIDMpO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDIgeyAvLyBPbGRlciBzeW50YXggKFwidG9wIGxlZnRcIilcbiAgICAgICRzaWRlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMSkpO1xuICAgICAgJGNvcm5lcjogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICB9XG5cbiAgICBAaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSByaWdodFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSBsZWZ0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgJHNwZWM6IHRvICRzaWRlICRjb3JuZXI7XG4gIH1cbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAxIHtcbiAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0YWJpbGl0eVxuICAgIEBpZiAkdHlwZSA9PSBzdHJpbmcge1xuICAgICAgJGRlZ3JlZTogJHBvcztcbiAgICAgICRzcGVjOiB0byBfcG9zaXRpb24tZmxpcHBlcigkcG9zKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGRlZ3JlZTogLTI3MCAtICRwb3M7IC8vcm90YXRlIHRoZSBncmFkaWVudCBvcHBvc2l0ZSBmcm9tIHNwZWNcbiAgICAgICRzcGVjOiAkcG9zO1xuICAgIH1cbiAgfVxuICAkZGVncmVlOiB1bnF1b3RlKCRkZWdyZWUgKyBcIixcIik7XG4gICRzcGVjOiAgIHVucXVvdGUoJHNwZWMgKyBcIixcIik7XG4gIEByZXR1cm4gJGRlZ3JlZSAkc3BlYztcbn1cblxuQGZ1bmN0aW9uIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpIHtcbiBAcmV0dXJuIGlmKCRwb3MgPT0gbGVmdCwgcmlnaHQsIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IHJpZ2h0LCBsZWZ0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSB0b3AsIGJvdHRvbSwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gYm90dG9tLCB0b3AsIG51bGwpO1xufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtYXJnLXBhcnNlcigkRzEsICRHMiwgJHBvcywgJHNoYXBlLXNpemUpIHtcbiAgQGVhY2ggJHZhbHVlIGluICRHMSwgJEcyIHtcbiAgICAkZmlyc3QtdmFsOiBudGgoJHZhbHVlLCAxKTtcbiAgICAkcG9zLXR5cGU6ICB0eXBlLW9mKCRmaXJzdC12YWwpO1xuICAgICRzcGVjLWF0LWluZGV4OiBudWxsO1xuXG4gICAgLy8gRGV0ZXJtaW5lIGlmIHNwZWMgd2FzIHBhc3NlZCB0byBtaXhpblxuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbGlzdCB7XG4gICAgICAkc3BlYy1hdC1pbmRleDogaWYoaW5kZXgoJHZhbHVlLCBhdCksIGluZGV4KCR2YWx1ZSwgYXQpLCBmYWxzZSk7XG4gICAgfVxuICAgIEBpZiAkc3BlYy1hdC1pbmRleCB7XG4gICAgICBAaWYgJHNwZWMtYXQtaW5kZXggPiAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAoJHNwZWMtYXQtaW5kZXggLSAxKSB7XG4gICAgICAgICAgJHNoYXBlLXNpemU6ICRzaGFwZS1zaXplIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRzcGVjLWF0LWluZGV4ID09IDEge1xuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICRHMTogbnVsbDtcbiAgICB9XG5cbiAgICAvLyBJZiBub3Qgc3BlYyBjYWxjdWxhdGUgY29ycmVjdCB2YWx1ZXNcbiAgICBAZWxzZSB7XG4gICAgICBAaWYgKCRwb3MtdHlwZSAhPSBjb2xvcikgb3IgKCRmaXJzdC12YWwgIT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgICAgIEBpZiAoJHBvcy10eXBlID09IG51bWJlcilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjZW50ZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJ0b3BcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJyaWdodFwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImJvdHRvbVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImxlZnRcIikge1xuXG4gICAgICAgICAgJHBvczogJHZhbHVlO1xuXG4gICAgICAgICAgQGlmICRwb3MgPT0gJEcxIHtcbiAgICAgICAgICAgICRHMTogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZlxuICAgICAgICAgICAoJGZpcnN0LXZhbCA9PSBcImVsbGlwc2VcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjaXJjbGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LWNvcm5lclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb250YWluXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY292ZXJcIikge1xuXG4gICAgICAgICAgJHNoYXBlLXNpemU6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkdmFsdWUgPT0gJEcxIHtcbiAgICAgICAgICAgICRHMTogbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWxzZSBpZiAkdmFsdWUgPT0gJEcyIHtcbiAgICAgICAgICAgICRHMjogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQHJldHVybiAkRzEsICRHMiwgJHBvcywgJHNoYXBlLXNpemU7XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3MpIHtcbiAgJHNoYXBlLXNpemU6IG50aCgkZ3JhZGllbnQtcG9zLCAxKTtcbiAgJHBvczogICAgICAgIG50aCgkZ3JhZGllbnQtcG9zLCAyKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gICRwcmUtc3BlYzogdW5xdW90ZShpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKSlcbiAgICAgICAgICAgICB1bnF1b3RlKGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LFwiLCBudWxsKSk7XG4gICRwb3Mtc3BlYzogaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuXG4gICRzcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skcG9zLXNwZWN9XCI7XG5cbiAgLy8gQWRkIGNvbW1hXG4gIEBpZiAoJHNwZWMgIT0gJyAgJykge1xuICAgICRzcGVjOiBcIiN7JHNwZWN9LFwiXG4gIH1cblxuICBAcmV0dXJuICRwcmUtc3BlYyAkc3BlYztcbn1cbiIsIi8vIFVzZXIgZm9yIGxpbmVhciBhbmQgcmFkaWFsIGdyYWRpZW50cyB3aXRoaW4gYmFja2dyb3VuZC1pbWFnZSBvciBib3JkZXItaW1hZ2UgcHJvcGVydGllc1xuXG5AZnVuY3Rpb24gX3JlbmRlci1ncmFkaWVudHMoJGdyYWRpZW50LXBvc2l0aW9ucywgJGdyYWRpZW50cywgJGdyYWRpZW50LXR5cGUsICR2ZW5kb3I6IGZhbHNlKSB7XG4gICRwcmUtc3BlYzogbnVsbDtcbiAgJHNwZWM6IG51bGw7XG4gICR2ZW5kb3ItZ3JhZGllbnRzOiBudWxsO1xuICBAaWYgJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyIHtcbiAgICBAaWYgJGdyYWRpZW50LXBvc2l0aW9ucyB7XG4gICAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwge1xuICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xuICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgQGlmICR2ZW5kb3Ige1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiAtI3skdmVuZG9yfS0jeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRwcmUtc3BlY30gJGdyYWRpZW50cyk7XG4gIH1cbiAgQGVsc2UgaWYgJHZlbmRvciA9PSBmYWxzZSB7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IFwiI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skc3BlY30gI3skZ3JhZGllbnRzfSlcIjtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogdW5xdW90ZSgkdmVuZG9yLWdyYWRpZW50cyk7XG4gIH1cbiAgQHJldHVybiAkdmVuZG9yLWdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSkge1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBudWxsO1xuICBAZWFjaCAkdmFsdWUgaW4gJHNoYXBlLXNpemUge1xuICAgIEBpZiAoJHZhbHVlID09IFwiY292ZXJcIikgb3IgKCR2YWx1ZSA9PSBcImNvbnRhaW5cIikge1xuICAgICAgJHZhbHVlOiBudWxsO1xuICAgIH1cbiAgICAkc2hhcGUtc2l6ZS1zcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skdmFsdWV9XCI7XG4gIH1cbiAgQHJldHVybiAkc2hhcGUtc2l6ZS1zcGVjO1xufVxuIiwiLy8gRmxleGlibGUgZ3JpZFxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcbiAgJHdpZHRoOiAkY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHdpZHRoIC8gJGNvbnRhaW5lci13aWR0aCk7XG59XG5cbi8vIEZsZXhpYmxlIGd1dHRlclxuQGZ1bmN0aW9uIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zLCAkZ3V0dGVyOiAkZmctZ3V0dGVyKSB7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJGd1dHRlciAvICRjb250YWluZXItd2lkdGgpO1xufVxuXG4vLyBUaGUgJGZnLWNvbHVtbiwgJGZnLWd1dHRlciBhbmQgJGZnLW1heC1jb2x1bW5zIHZhcmlhYmxlcyBtdXN0IGJlIGRlZmluZWQgaW4geW91ciBiYXNlIHN0eWxlc2hlZXQgdG8gcHJvcGVybHkgdXNlIHRoZSBmbGV4LWdyaWQgZnVuY3Rpb24uXG4vLyBUaGlzIGZ1bmN0aW9uIHRha2VzIHRoZSBmbHVpZCBncmlkIGVxdWF0aW9uICh0YXJnZXQgLyBjb250ZXh0ID0gcmVzdWx0KSBhbmQgdXNlcyBjb2x1bW5zIHRvIGhlbHAgZGVmaW5lIGVhY2guXG4vL1xuLy8gVGhlIGNhbGN1bGF0aW9uIHByZXN1bWVzIHRoYXQgeW91ciBjb2x1bW4gc3RydWN0dXJlIHdpbGwgYmUgbWlzc2luZyB0aGUgbGFzdCBndXR0ZXI6XG4vL1xuLy8gICAtLSBjb2x1bW4gLS0gZ3V0dGVyIC0tIGNvbHVtbiAtLSBndXR0ZXIgLS0gY29sdW1uXG4vL1xuLy8gICRmZy1jb2x1bW46IDYwcHg7ICAgICAgICAgICAgIC8vIENvbHVtbiBXaWR0aFxuLy8gICRmZy1ndXR0ZXI6IDI1cHg7ICAgICAgICAgICAgIC8vIEd1dHRlciBXaWR0aFxuLy8gICRmZy1tYXgtY29sdW1uczogMTI7ICAgICAgICAgIC8vIFRvdGFsIENvbHVtbnMgRm9yIE1haW4gQ29udGFpbmVyXG4vL1xuLy8gIGRpdiB7XG4vLyAgICB3aWR0aDogZmxleC1ncmlkKDQpOyAgICAgICAgLy8gcmV0dXJucyAoMzE1cHggLyA5OTVweCkgPSAzMS42NTgyOSU7XG4vLyAgICBtYXJnaW4tbGVmdDogZmxleC1ndXR0ZXIoKTsgLy8gcmV0dXJucyAoMjVweCAvIDk5NXB4KSA9IDIuNTEyNTYlO1xuLy9cbi8vICAgIHAge1xuLy8gICAgICB3aWR0aDogZmxleC1ncmlkKDIsIDQpOyAgLy8gcmV0dXJucyAoMTQ1cHggLyAzMTVweCkgPSA0Ni4wMzE3NDYlO1xuLy8gICAgICBmbG9hdDogbGVmdDtcbi8vICAgICAgbWFyZ2luOiBmbGV4LWd1dHRlcig0KTsgIC8vIHJldHVybnMgKDI1cHggLyAzMTVweCkgPSA3LjkzNjUwOCU7XG4vLyAgICB9XG4vL1xuLy8gICAgYmxvY2txdW90ZSB7XG4vLyAgICAgIGZsb2F0OiBsZWZ0O1xuLy8gICAgICB3aWR0aDogZmxleC1ncmlkKDIsIDQpOyAvLyByZXR1cm5zICgxNDVweCAvIDMxNXB4KSA9IDQ2LjAzMTc0NiU7XG4vLyAgICB9XG4vLyAgfSIsIkBmdW5jdGlvbiBncmlkLXdpZHRoKCRuKSB7XG4gIEByZXR1cm4gJG4gKiAkZ3ctY29sdW1uICsgKCRuIC0gMSkgKiAkZ3ctZ3V0dGVyO1xufVxuXG4vLyBUaGUgJGd3LWNvbHVtbiBhbmQgJGd3LWd1dHRlciB2YXJpYWJsZXMgbXVzdCBiZSBkZWZpbmVkIGluIHlvdXIgYmFzZSBzdHlsZXNoZWV0IHRvIHByb3Blcmx5IHVzZSB0aGUgZ3JpZC13aWR0aCBmdW5jdGlvbi5cbi8vXG4vLyAgJGd3LWNvbHVtbjogMTAwcHg7ICAgICAgICAgLy8gQ29sdW1uIFdpZHRoXG4vLyAgJGd3LWd1dHRlcjogNDBweDsgICAgICAgICAgLy8gR3V0dGVyIFdpZHRoXG4vL1xuLy8gIGRpdiB7XG4vLyAgICB3aWR0aDogZ3JpZC13aWR0aCg0KTsgICAgLy8gcmV0dXJucyA1MjBweDtcbi8vICAgIG1hcmdpbi1sZWZ0OiAkZ3ctZ3V0dGVyOyAvLyByZXR1cm5zIDQwcHg7XG4vLyAgfVxuIiwiQGZ1bmN0aW9uIGdvbGRlbi1yYXRpbygkdmFsdWUsICRpbmNyZW1lbnQpIHtcbiAgQHJldHVybiBtb2R1bGFyLXNjYWxlKCR2YWx1ZSwgJGluY3JlbWVudCwgJGdvbGRlbilcbn1cbiIsIkBmdW5jdGlvbiBsaW5lYXItZ3JhZGllbnQoJHBvcywgJGdyYWRpZW50cy4uLikge1xuICAkdHlwZTogbGluZWFyO1xuICAkcG9zLXR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcblxuICAvLyBpZiAkcG9zIGRvZXNuJ3QgZXhpc3QsIGZpeCAkZ3JhZGllbnRcbiAgQGlmICgkcG9zLXR5cGUgPT0gY29sb3IpIG9yIChudGgoJHBvcywgMSkgPT0gXCJ0cmFuc3BhcmVudFwiKSAge1xuICAgICRncmFkaWVudHM6IHppcCgkcG9zICRncmFkaWVudHMpO1xuICAgICRwb3M6IGZhbHNlO1xuICB9XG5cbiAgJHR5cGUtZ3JhZGllbnQ6ICR0eXBlLCAkcG9zLCAkZ3JhZGllbnRzO1xuICBAcmV0dXJuICR0eXBlLWdyYWRpZW50O1xufVxuIiwiLy8gU2NhbGluZyBWYXJhaWJsZXNcbiRnb2xkZW46ICAgICAgICAgICAxLjYxODtcbiRtaW5vci1zZWNvbmQ6ICAgICAxLjA2NztcbiRtYWpvci1zZWNvbmQ6ICAgICAxLjEyNTtcbiRtaW5vci10aGlyZDogICAgICAxLjI7XG4kbWFqb3ItdGhpcmQ6ICAgICAgMS4yNTtcbiRwZXJmZWN0LWZvdXJ0aDogICAxLjMzMztcbiRhdWdtZW50ZWQtZm91cnRoOiAxLjQxNDtcbiRwZXJmZWN0LWZpZnRoOiAgICAxLjU7XG4kbWlub3Itc2l4dGg6ICAgICAgMS42O1xuJG1ham9yLXNpeHRoOiAgICAgIDEuNjY3O1xuJG1pbm9yLXNldmVudGg6ICAgIDEuNzc4O1xuJG1ham9yLXNldmVudGg6ICAgIDEuODc1O1xuJG9jdGF2ZTogICAgICAgICAgIDI7XG4kbWFqb3ItdGVudGg6ICAgICAgMi41O1xuJG1ham9yLWVsZXZlbnRoOiAgIDIuNjY3O1xuJG1ham9yLXR3ZWxmdGg6ICAgIDM7XG4kZG91YmxlLW9jdGF2ZTogICAgNDtcblxuQGZ1bmN0aW9uIG1vZHVsYXItc2NhbGUoJHZhbHVlLCAkaW5jcmVtZW50LCAkcmF0aW8pIHtcbiAgJHYxOiBudGgoJHZhbHVlLCAxKTtcbiAgJHYyOiBudGgoJHZhbHVlLCBsZW5ndGgoJHZhbHVlKSk7XG4gICR2YWx1ZTogJHYxO1xuXG4gIC8vIHNjYWxlICR2MiB0byBqdXN0IGFib3ZlICR2MVxuICBAd2hpbGUgJHYyID4gJHYxIHtcbiAgICAkdjI6ICgkdjIgLyAkcmF0aW8pOyAvLyB3aWxsIGJlIG9mZi1ieS0xXG4gIH1cbiAgQHdoaWxlICR2MiA8ICR2MSB7XG4gICAgJHYyOiAoJHYyICogJHJhdGlvKTsgLy8gd2lsbCBmaXggb2ZmLWJ5LTFcbiAgfVxuXG4gIC8vIGNoZWNrIEFGVEVSIHNjYWxpbmcgJHYyIHRvIHByZXZlbnQgZG91YmxlLWNvdW50aW5nIGNvcm5lci1jYXNlXG4gICRkb3VibGUtc3RyYW5kZWQ6ICR2MiA+ICR2MTtcblxuICBAaWYgJGluY3JlbWVudCA+IDAge1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGluY3JlbWVudCB7XG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAqICRyYXRpbykgPiAkdjIge1xuICAgICAgICAkdmFsdWU6ICR2MjtcbiAgICAgICAgJHYyOiAoJHYyICogJHJhdGlvKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdjE6ICgkdjEgKiAkcmF0aW8pO1xuICAgICAgICAkdmFsdWU6ICR2MTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJGluY3JlbWVudCA8IDAge1xuICAgIC8vIGFkanVzdCAkdjIgdG8ganVzdCBiZWxvdyAkdjFcbiAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCB7XG4gICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgIH1cblxuICAgIEBmb3IgJGkgZnJvbSAkaW5jcmVtZW50IHRocm91Z2ggLTEge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgLyAkcmF0aW8pIDwgJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxIC8gJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgZW0oMTIpIHdoZW4gdGhlIHBhcmVudCBpcyAxNnB4XG4vLyBpZiB0aGUgcGFyZW50IGlzIGFub3RoZXIgdmFsdWUgc2F5IDI0cHggd3JpdGUgZW0oMTIsIDI0KVxuXG5AZnVuY3Rpb24gZW0oJHB4dmFsLCAkYmFzZTogJGVtLWJhc2UpIHtcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFlbTtcbn1cbiIsIi8vIFRoaXMgZnVuY3Rpb24gaXMgcmVxdWlyZWQgYW5kIHVzZWQgYnkgdGhlIGJhY2tncm91bmQtaW1hZ2UgbWl4aW4uXG5AZnVuY3Rpb24gcmFkaWFsLWdyYWRpZW50KCRHMSwgICAgICAgICRHMixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJEczOiBudWxsLCAgJEc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAkRzU6IG51bGwsICAkRzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICRHNzogbnVsbCwgICRHODogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJEc5OiBudWxsLCAgJEcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJHBvczogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJHNoYXBlLXNpemU6IG51bGwpIHtcblxuICAkZGF0YTogX3JhZGlhbC1hcmctcGFyc2VyKCRHMSwgJEcyLCAkcG9zLCAkc2hhcGUtc2l6ZSk7XG4gICRHMTogIG50aCgkZGF0YSwgMSk7XG4gICRHMjogIG50aCgkZGF0YSwgMik7XG4gICRwb3M6IG50aCgkZGF0YSwgMyk7XG4gICRzaGFwZS1zaXplOiBudGgoJGRhdGEsIDQpO1xuXG4gICR0eXBlOiByYWRpYWw7XG4gICRncmFkaWVudDogJEcxLCAkRzIsICRHMywgJEc0LCAkRzUsICRHNiwgJEc3LCAkRzgsICRHOSwgJEcxMDtcblxuICAkdHlwZS1ncmFkaWVudDogJHR5cGUsICRzaGFwZS1zaXplICRwb3MsICRncmFkaWVudDtcbiAgQHJldHVybiAkdHlwZS1ncmFkaWVudDtcbn1cblxuXG4iLCIvLyBTcnRpcHMgdGhlIHVuaXRzIGZyb20gYSB2YWx1ZS4gZS5nLiAxMnB4IC0+IDEyXG5cbkBmdW5jdGlvbiBzdHJpcC11bml0cygkdmFsKSB7XG4gIEByZXR1cm4gKCR2YWwgLyAoJHZhbCAqIDAgKyAxKSk7XG59XG4iLCIvLyBBZGQgcGVyY2VudGFnZSBvZiB3aGl0ZSB0byBhIGNvbG9yXG5AZnVuY3Rpb24gdGludCgkY29sb3IsICRwZXJjZW50KXtcbiAgQHJldHVybiBtaXgod2hpdGUsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuXG4vLyBBZGQgcGVyY2VudGFnZSBvZiBibGFjayB0byBhIGNvbG9yXG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkcGVyY2VudCl7XG4gIEByZXR1cm4gbWl4KGJsYWNrLCAkY29sb3IsICRwZXJjZW50KTtcbn1cbiIsIi8vIFJldHVybiB2ZW5kb3ItcHJlZml4ZWQgcHJvcGVydHkgbmFtZXMgaWYgYXBwcm9wcmlhdGVcbi8vIEV4YW1wbGU6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoKHRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmQpLCBtb3opIC0+IC1tb3otdHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BzLCAkdmVuZG9yOiBmYWxzZSkge1xuXHQkbmV3LXByb3BzOiAoKTtcblx0XG5cdEBlYWNoICRwcm9wIGluICRwcm9wcyB7XG5cdFx0JG5ldy1wcm9wczogYXBwZW5kKCRuZXctcHJvcHMsIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvciksIGNvbW1hKTtcblx0fVxuXG5cdEByZXR1cm4gJG5ldy1wcm9wcztcbn1cblxuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvcjogZmFsc2UpIHtcblx0Ly8gcHV0IG90aGVyIHByb3BlcnRpZXMgdGhhdCBuZWVkIHRvIGJlIHByZWZpeGVkIGhlcmUgYXN3ZWxsXG5cdEBpZiAkdmVuZG9yIGFuZCAkcHJvcCA9PSB0cmFuc2Zvcm0ge1xuXHRcdEByZXR1cm4gdW5xdW90ZSgnLScrJHZlbmRvcisnLScrJHByb3ApO1xuXHR9XG5cdEBlbHNlIHtcblx0XHRAcmV0dXJuICRwcm9wO1xuXHR9XG59IiwiLy8gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1hbmltYXRpb25zLyN0aGUtYW5pbWF0aW9uLW5hbWUtcHJvcGVydHktXG4vLyBFYWNoIG9mIHRoZXNlIG1peGlucyBzdXBwb3J0IGNvbW1hIHNlcGFyYXRlZCBsaXN0cyBvZiB2YWx1ZXMsIHdoaWNoIGFsbG93cyBkaWZmZXJlbnQgdHJhbnNpdGlvbnMgZm9yIGluZGl2aWR1YWwgcHJvcGVydGllcyB0byBiZSBkZXNjcmliZWQgaW4gYSBzaW5nbGUgc3R5bGUgcnVsZS4gRWFjaCB2YWx1ZSBpbiB0aGUgbGlzdCBjb3JyZXNwb25kcyB0byB0aGUgdmFsdWUgYXQgdGhhdCBzYW1lIHBvc2l0aW9uIGluIHRoZSBvdGhlciBwcm9wZXJ0aWVzLlxuXG4vLyBPZmZpY2lhbCBhbmltYXRpb24gc2hvcnRoYW5kIHByb3BlcnR5LlxuQG1peGluIGFuaW1hdGlvbiAoJGFuaW1hdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLCAkYW5pbWF0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gSW5kaXZpZHVhbCBBbmltYXRpb24gUHJvcGVydGllc1xuQG1peGluIGFuaW1hdGlvbi1uYW1lICgkbmFtZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsICRuYW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLWR1cmF0aW9uICgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24gKCRtb3Rpb25zLi4uKSB7XG4vLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQgKCR2YWx1ZXMuLi4pIHtcbi8vIGluZmluaXRlIHwgPG51bWJlcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgJHZhbHVlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLWRpcmVjdGlvbiAoJGRpcmVjdGlvbnMuLi4pIHtcbi8vIG5vcm1hbCB8IGFsdGVybmF0ZVxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGlyZWN0aW9uLCAkZGlyZWN0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuXG5AbWl4aW4gYW5pbWF0aW9uLXBsYXktc3RhdGUgKCRzdGF0ZXMuLi4pIHtcbi8vIHJ1bm5pbmcgfCBwYXVzZWRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLXBsYXktc3RhdGUsICRzdGF0ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cblxuQG1peGluIGFuaW1hdGlvbi1kZWxheSAoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5cbkBtaXhpbiBhbmltYXRpb24tZmlsbC1tb2RlICgkbW9kZXMuLi4pIHtcbi8vIG5vbmUgfCBmb3J3YXJkcyB8IGJhY2t3YXJkcyB8IGJvdGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWZpbGwtbW9kZSwgJG1vZGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIGFwcGVhcmFuY2UgKCR2YWx1ZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhcHBlYXJhbmNlLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tmYWNlLXZpc2liaWxpdHkgbWl4aW5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBtaXhpbiBiYWNrZmFjZS12aXNpYmlsaXR5KCR2aXNpYmlsaXR5KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJhY2tmYWNlLXZpc2liaWxpdHksICR2aXNpYmlsaXR5LCB3ZWJraXQgc3BlYyk7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZHMgdXNpbmcgc2hvcnRoYW5kXG4vLyBub3RhdGlvbi5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQoXG4gICRiYWNrZ3JvdW5kLTEgICAgICAgLCAkYmFja2dyb3VuZC0yOiBudWxsLFxuICAkYmFja2dyb3VuZC0zOiBudWxsLCAkYmFja2dyb3VuZC00OiBudWxsLFxuICAkYmFja2dyb3VuZC01OiBudWxsLCAkYmFja2dyb3VuZC02OiBudWxsLFxuICAkYmFja2dyb3VuZC03OiBudWxsLCAkYmFja2dyb3VuZC04OiBudWxsLFxuICAkYmFja2dyb3VuZC05OiBudWxsLCAkYmFja2dyb3VuZC0xMDogbnVsbCxcbiAgJGZhbGxiYWNrOiBudWxsXG4pIHtcbiAgJGJhY2tncm91bmRzOiAkYmFja2dyb3VuZC0xLCAkYmFja2dyb3VuZC0yLFxuICAgICAgICAgICAgICAgICRiYWNrZ3JvdW5kLTMsICRiYWNrZ3JvdW5kLTQsXG4gICAgICAgICAgICAgICAgJGJhY2tncm91bmQtNSwgJGJhY2tncm91bmQtNixcbiAgICAgICAgICAgICAgICAkYmFja2dyb3VuZC03LCAkYmFja2dyb3VuZC04LFxuICAgICAgICAgICAgICAgICRiYWNrZ3JvdW5kLTksICRiYWNrZ3JvdW5kLTEwO1xuXG4gICRmYWxsYmFjay1jb2xvcjogZmFsc2U7XG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG4gIEBlbHNlIHtcbiAgICAkZmFsbGJhY2stY29sb3I6IF9leHRyYWN0LWJhY2tncm91bmQtY29sb3IoJGJhY2tncm91bmRzKTtcbiAgfVxuXG4gIEBpZiAkZmFsbGJhY2stY29sb3Ige1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRmYWxsYmFjay1jb2xvcjtcbiAgfVxuICBiYWNrZ3JvdW5kOiBfYmFja2dyb3VuZC1hZGQtcHJlZml4KCRiYWNrZ3JvdW5kcywgd2Via2l0KTtcbiAgYmFja2dyb3VuZDogX2JhY2tncm91bmQtYWRkLXByZWZpeCgkYmFja2dyb3VuZHMpO1xufVxuXG5AZnVuY3Rpb24gX2V4dHJhY3QtYmFja2dyb3VuZC1jb2xvcigkYmFja2dyb3VuZHMpIHtcbiAgJGZpbmFsLWJnLWxheWVyOiBudGgoJGJhY2tncm91bmRzLCBsZW5ndGgoJGJhY2tncm91bmRzKSk7XG4gIEBpZiB0eXBlLW9mKCRmaW5hbC1iZy1sYXllcikgPT0gbGlzdCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJGZpbmFsLWJnLWxheWVyKSB7XG4gICAgICAkdmFsdWU6IG50aCgkZmluYWwtYmctbGF5ZXIsICRpKTtcbiAgICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gY29sb3Ige1xuICAgICAgICBAcmV0dXJuICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuQGZ1bmN0aW9uIF9iYWNrZ3JvdW5kLWFkZC1wcmVmaXgoJGJhY2tncm91bmRzLCAkdmVuZG9yOiBmYWxzZSkge1xuICAkYmFja2dyb3VuZHMtcHJlZml4ZWQ6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRiYWNrZ3JvdW5kcykge1xuICAgICRzaG9ydGhhbmQ6IG50aCgkYmFja2dyb3VuZHMsICRpKTsgLy8gR2V0IG1lbWJlciBmb3IgY3VycmVudCBpbmRleFxuICAgICR0eXBlOiB0eXBlLW9mKCRzaG9ydGhhbmQpOyAvLyBHZXQgdHlwZSBvZiB2YXJpYWJsZSAtIExpc3QgKGdyYWRpZW50KSBvciBTdHJpbmcgKGltYWdlKVxuXG4gICAgLy8gSWYgc2hvcnRoYW5kIGlzIGEgbGlzdCAoZ3JhZGllbnQpXG4gICAgQGlmICR0eXBlID09IGxpc3Qge1xuICAgICAgJGZpcnN0LW1lbWJlcjogbnRoKCRzaG9ydGhhbmQsIDEpOyAvLyBHZXQgZmlyc3QgbWVtYmVyIG9mIHNob3J0aGFuZFxuXG4gICAgICAvLyBMaW5lYXIgR3JhZGllbnRcbiAgICAgIEBpZiBpbmRleChsaW5lYXIgcmFkaWFsLCBudGgoJGZpcnN0LW1lbWJlciwgMSkpIHtcbiAgICAgICAgJGdyYWRpZW50LXR5cGU6IG50aCgkZmlyc3QtbWVtYmVyLCAxKTsgLy8gbGluZWFyIHx8IHJhZGlhbFxuICAgICAgICAkZ3JhZGllbnQtYXJnczogICAgICBmYWxzZTtcbiAgICAgICAgJGdyYWRpZW50LXBvc2l0aW9uczogZmFsc2U7XG4gICAgICAgICRzaG9ydGhhbmQtc3RhcnQ6ICAgIGZhbHNlO1xuICAgICAgICBAaWYgdHlwZS1vZigkZmlyc3QtbWVtYmVyKSA9PSBsaXN0IHsgLy8gTGluZWFyIGdyYWRpZW50IHBsdXMgYWRkaXRpb25hbCBzaG9ydGhhbmQgdmFsdWVzIC0gbGcocmVkLG9yYW5nZSlyZXBlYXQsLi4uXG4gICAgICAgICAgJGdyYWRpZW50LXBvc2l0aW9uczogbnRoKCRmaXJzdC1tZW1iZXIsIDIpO1xuICAgICAgICAgICRncmFkaWVudC1hcmdzOiAgICAgIG50aCgkZmlyc3QtbWVtYmVyLCAzKTtcbiAgICAgICAgICAkc2hvcnRoYW5kLXN0YXJ0OiAyO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHsgLy8gTGluZWFyIGdyYWRpZW50IG9ubHkgLSBsZyhyZWQsb3JhbmdlKSwuLi5cbiAgICAgICAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBudGgoJHNob3J0aGFuZCwgMik7XG4gICAgICAgICAgJGdyYWRpZW50LWFyZ3M6ICAgICAgbnRoKCRzaG9ydGhhbmQsIDMpOyAvLyBHZXQgZ3JhZGllbnQgKHJlZCwgYmx1ZSlcbiAgICAgICAgfVxuXG4gICAgICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC10eXBlLCAkZ3JhZGllbnQtcG9zaXRpb25zKTtcbiAgICAgICAgJGdyYWRpZW50OiBfcmVuZGVyLWdyYWRpZW50cygkZ3JhZGllbnQtcG9zaXRpb25zLCAkZ3JhZGllbnQtYXJncywgJGdyYWRpZW50LXR5cGUsICR2ZW5kb3IpO1xuXG4gICAgICAgIC8vIEFwcGVuZCBhbnkgYWRkaXRpb25hbCBzaG9ydGhhbmQgYXJncyB0byBncmFkaWVudFxuICAgICAgICBAaWYgJHNob3J0aGFuZC1zdGFydCB7XG4gICAgICAgICAgQGZvciAkaiBmcm9tICRzaG9ydGhhbmQtc3RhcnQgdGhyb3VnaCBsZW5ndGgoJHNob3J0aGFuZCkge1xuICAgICAgICAgICAgJGdyYWRpZW50OiBqb2luKCRncmFkaWVudCwgbnRoKCRzaG9ydGhhbmQsICRqKSwgc3BhY2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAkYmFja2dyb3VuZHMtcHJlZml4ZWQ6IGFwcGVuZCgkYmFja2dyb3VuZHMtcHJlZml4ZWQsICRncmFkaWVudCwgY29tbWEpO1xuICAgICAgfVxuICAgICAgLy8gSW1hZ2Ugd2l0aCBhZGRpdGlvbmFsIHByb3BlcnRpZXNcbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJGJhY2tncm91bmRzLXByZWZpeGVkOiBhcHBlbmQoJGJhY2tncm91bmRzLXByZWZpeGVkLCAkc2hvcnRoYW5kLCBjb21tYSk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIElmIHNob3J0aGFuZCBpcyBhIHNpbXBsZSBzdHJpbmcgKGNvbG9yIG9yIGltYWdlKVxuICAgIEBlbHNlIGlmICR0eXBlID09IHN0cmluZyB7XG4gICAgICAkYmFja2dyb3VuZHMtcHJlZml4ZWQ6IGpvaW4oJGJhY2tncm91bmRzLXByZWZpeGVkLCAkc2hvcnRoYW5kLCBjb21tYSk7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGJhY2tncm91bmRzLXByZWZpeGVkO1xufVxuXG4vL0V4YW1wbGVzOlxuICAvL0BpbmNsdWRlIGJhY2tncm91bmQobGluZWFyLWdyYWRpZW50KHRvcCwgb3JhbmdlLCByZWQpKTtcbiAgLy9AaW5jbHVkZSBiYWNrZ3JvdW5kKHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgNDAlIDQwJSwgb3JhbmdlLCByZWQpKTtcbiAgLy9AaW5jbHVkZSBiYWNrZ3JvdW5kKHVybChcIi9pbWFnZXMvYS5wbmdcIikgbm8tcmVwZWF0LCBsaW5lYXItZ3JhZGllbnQob3JhbmdlLCByZWQpKTtcbiAgLy9AaW5jbHVkZSBiYWNrZ3JvdW5kKHVybChcImltYWdlLnBuZ1wiKSBjZW50ZXIgY2VudGVyLCBsaW5lYXItZ3JhZGllbnQob3JhbmdlLCByZWQpLCB1cmwoXCJpbWFnZS5wbmdcIikpO1xuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2dyb3VuZC1pbWFnZSBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmQgaW1hZ2VzIHdpdGhcbi8vIGdyYWRpZW50cywgb3IgZm9yIHN0cmluZ2luZyBtdWx0aXBsZSBncmFkaWVudHMgdG9nZXRoZXIuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5cbkBtaXhpbiBiYWNrZ3JvdW5kLWltYWdlKCRpbWFnZXMuLi4pIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogX2FkZC1wcmVmaXgoJGltYWdlcywgd2Via2l0KTtcbiAgYmFja2dyb3VuZC1pbWFnZTogX2FkZC1wcmVmaXgoJGltYWdlcyk7XG59XG5cbkBmdW5jdGlvbiBfYWRkLXByZWZpeCgkaW1hZ2VzLCAkdmVuZG9yOiBmYWxzZSkge1xuICAkaW1hZ2VzLXByZWZpeGVkOiAoKTtcbiAgJGdyYWRpZW50LXBvc2l0aW9uczogZmFsc2U7XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRpbWFnZXMpIHtcbiAgICAkdHlwZTogdHlwZS1vZihudGgoJGltYWdlcywgJGkpKTsgLy8gR2V0IHR5cGUgb2YgdmFyaWFibGUgLSBMaXN0IG9yIFN0cmluZ1xuXG4gICAgLy8gSWYgdmFyaWFibGUgaXMgYSBsaXN0IC0gR3JhZGllbnRcbiAgICBAaWYgJHR5cGUgPT0gbGlzdCB7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogbnRoKG50aCgkaW1hZ2VzLCAkaSksIDEpOyAvLyBsaW5lYXIgb3IgcmFkaWFsXG4gICAgICAkZ3JhZGllbnQtcG9zOiBudWxsO1xuICAgICAgJGdyYWRpZW50LWFyZ3M6IG51bGw7XG5cbiAgICAgIEBpZiAoJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyKSBvciAoJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsKSB7XG4gICAgICAgICRncmFkaWVudC1wb3M6ICBudGgobnRoKCRpbWFnZXMsICRpKSwgMik7IC8vIEdldCBncmFkaWVudCBwb3NpdGlvblxuICAgICAgICAkZ3JhZGllbnQtYXJnczogbnRoKG50aCgkaW1hZ2VzLCAkaSksIDMpOyAvLyBHZXQgYWN0dWFsIGdyYWRpZW50IChyZWQsIGJsdWUpXG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgICRncmFkaWVudC1hcmdzOiBudGgobnRoKCRpbWFnZXMsICRpKSwgMik7IC8vIEdldCBhY3R1YWwgZ3JhZGllbnQgKHJlZCwgYmx1ZSlcbiAgICAgIH1cblxuICAgICAgJGdyYWRpZW50LXBvc2l0aW9uczogX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXR5cGUsICRncmFkaWVudC1wb3MpO1xuICAgICAgJGdyYWRpZW50OiBfcmVuZGVyLWdyYWRpZW50cygkZ3JhZGllbnQtcG9zaXRpb25zLCAkZ3JhZGllbnQtYXJncywgJGdyYWRpZW50LXR5cGUsICR2ZW5kb3IpO1xuICAgICAgJGltYWdlcy1wcmVmaXhlZDogYXBwZW5kKCRpbWFnZXMtcHJlZml4ZWQsICRncmFkaWVudCwgY29tbWEpO1xuICAgIH1cbiAgICAvLyBJZiB2YXJpYWJsZSBpcyBhIHN0cmluZyAtIEltYWdlXG4gICAgQGVsc2UgaWYgJHR5cGUgPT0gc3RyaW5nIHtcbiAgICAgICRpbWFnZXMtcHJlZml4ZWQ6IGpvaW4oJGltYWdlcy1wcmVmaXhlZCwgbnRoKCRpbWFnZXMsICRpKSwgY29tbWEpO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICRpbWFnZXMtcHJlZml4ZWQ7XG59XG5cbi8vRXhhbXBsZXM6XG4gIC8vQGluY2x1ZGUgYmFja2dyb3VuZC1pbWFnZShsaW5lYXItZ3JhZGllbnQodG9wLCBvcmFuZ2UsIHJlZCkpO1xuICAvL0BpbmNsdWRlIGJhY2tncm91bmQtaW1hZ2UocmFkaWFsLWdyYWRpZW50KDUwJSA1MCUsIGNvdmVyIGNpcmNsZSwgb3JhbmdlLCByZWQpKTtcbiAgLy9AaW5jbHVkZSBiYWNrZ3JvdW5kLWltYWdlKHVybChcIi9pbWFnZXMvYS5wbmdcIiksIGxpbmVhci1ncmFkaWVudChvcmFuZ2UsIHJlZCkpO1xuICAvL0BpbmNsdWRlIGJhY2tncm91bmQtaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpLCBsaW5lYXItZ3JhZGllbnQob3JhbmdlLCByZWQpLCB1cmwoXCJpbWFnZS5wbmdcIikpO1xuICAvL0BpbmNsdWRlIGJhY2tncm91bmQtaW1hZ2UobGluZWFyLWdyYWRpZW50KGhzbGEoMCwgMTAwJSwgMTAwJSwgMC4yNSkgMCUsIGhzbGEoMCwgMTAwJSwgMTAwJSwgMC4wOCkgNTAlLCB0cmFuc3BhcmVudCA1MCUpLCBsaW5lYXItZ3JhZGllbnQob3JhbmdlLCByZWQpKTtcbiIsIkBtaXhpbiBib3JkZXItaW1hZ2UoJGltYWdlcykge1xuICAtd2Via2l0LWJvcmRlci1pbWFnZTogX2JvcmRlci1hZGQtcHJlZml4KCRpbWFnZXMsIHdlYmtpdCk7XG4gICAgIC1tb3otYm9yZGVyLWltYWdlOiBfYm9yZGVyLWFkZC1wcmVmaXgoJGltYWdlcywgbW96KTtcbiAgICAgICAtby1ib3JkZXItaW1hZ2U6IF9ib3JkZXItYWRkLXByZWZpeCgkaW1hZ2VzLCBvKTtcbiAgICAgICAgICBib3JkZXItaW1hZ2U6IF9ib3JkZXItYWRkLXByZWZpeCgkaW1hZ2VzKTtcbiAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG5AZnVuY3Rpb24gX2JvcmRlci1hZGQtcHJlZml4KCRpbWFnZXMsICR2ZW5kb3I6IGZhbHNlKSB7XG4gICRib3JkZXItaW1hZ2U6IG51bGw7XG4gICRpbWFnZXMtdHlwZTogIHR5cGUtb2YobnRoKCRpbWFnZXMsIDEpKTtcbiAgJGZpcnN0LXZhcjogICAgbnRoKG50aCgkaW1hZ2VzLCAxKSwgMSk7ICAgICAgICAgIC8vIEdldCB0eXBlIG9mIEdyYWRpZW50IChMaW5lYXIgfHwgcmFkaWFsKVxuXG4gIC8vIElmIGlucHV0IGlzIGEgZ3JhZGllbnRcbiAgQGlmICRpbWFnZXMtdHlwZSA9PSBzdHJpbmcge1xuICAgIEBpZiAoJGZpcnN0LXZhciA9PSBcImxpbmVhclwiKSBvciAoJGZpcnN0LXZhciA9PSBcInJhZGlhbFwiKSB7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogbnRoKCRpbWFnZXMsIDEpOyAgICAgICAgICAgLy8gR2V0IHR5cGUgb2YgZ3JhZGllbnQgKGxpbmVhciB8fCByYWRpYWwpXG4gICAgICAkZ3JhZGllbnQtcG9zOiAgbnRoKCRpbWFnZXMsIDIpOyAgICAgICAgICAgLy8gR2V0IGdyYWRpZW50IHBvc2l0aW9uXG4gICAgICAkZ3JhZGllbnQtYXJnczogbnRoKCRpbWFnZXMsIDMpOyAgICAgICAgICAgLy8gR2V0IGFjdHVhbCBncmFkaWVudCAocmVkLCBibHVlKVxuICAgICAgJGdyYWRpZW50LXBvc2l0aW9uczogX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXR5cGUsICRncmFkaWVudC1wb3MpO1xuICAgICAgJGJvcmRlci1pbWFnZTogIF9yZW5kZXItZ3JhZGllbnRzKCRncmFkaWVudC1wb3NpdGlvbnMsICRncmFkaWVudC1hcmdzLCAkZ3JhZGllbnQtdHlwZSwgJHZlbmRvcik7XG4gICAgfVxuICAgIC8vIElmIGlucHV0IGlzIGEgVVJMXG4gICAgQGVsc2Uge1xuICAgICAgJGJvcmRlci1pbWFnZTogJGltYWdlcztcbiAgICB9XG4gIH1cbiAgLy8gSWYgaW5wdXQgaXMgZ3JhZGllbnQgb3IgdXJsICsgYWRkaXRpb25hbCBhcmdzXG4gIEBlbHNlIGlmICRpbWFnZXMtdHlwZSA9PSBsaXN0IHtcbiAgICAkdHlwZTogdHlwZS1vZihudGgoJGltYWdlcywgMSkpOyAgICAgICAgICAgLy8gR2V0IHR5cGUgb2YgdmFyaWFibGUgLSBMaXN0IG9yIFN0cmluZ1xuXG4gICAgLy8gSWYgdmFyaWFibGUgaXMgYSBsaXN0IC0gR3JhZGllbnRcbiAgICBAaWYgJHR5cGUgPT0gbGlzdCB7XG4gICAgICAkZ3JhZGllbnQ6IG50aCgkaW1hZ2VzLCAxKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBudGgoJGdyYWRpZW50LCAxKTsgICAgICAgICAgIC8vIEdldCB0eXBlIG9mIGdyYWRpZW50IChsaW5lYXIgfHwgcmFkaWFsKVxuICAgICAgJGdyYWRpZW50LXBvczogIG50aCgkZ3JhZGllbnQsIDIpOyAgICAgICAgICAgLy8gR2V0IGdyYWRpZW50IHBvc2l0aW9uXG4gICAgICAkZ3JhZGllbnQtYXJnczogbnRoKCRncmFkaWVudCwgMyk7ICAgICAgICAgICAvLyBHZXQgYWN0dWFsIGdyYWRpZW50IChyZWQsIGJsdWUpXG4gICAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtdHlwZSwgJGdyYWRpZW50LXBvcyk7XG4gICAgICAkYm9yZGVyLWltYWdlOiAgX3JlbmRlci1ncmFkaWVudHMoJGdyYWRpZW50LXBvc2l0aW9ucywgJGdyYWRpZW50LWFyZ3MsICRncmFkaWVudC10eXBlLCAkdmVuZG9yKTtcblxuICAgICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCBsZW5ndGgoJGltYWdlcykge1xuICAgICAgICAkYm9yZGVyLWltYWdlOiBhcHBlbmQoJGJvcmRlci1pbWFnZSwgbnRoKCRpbWFnZXMsICRpKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGJvcmRlci1pbWFnZTtcbn1cblxuLy9FeGFtcGxlczpcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSAyMCBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgc3RyZXRjaCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgMjAgMzAgNDAgNTAgc3RyZXRjaCByb3VuZCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UocmFkaWFsLWdyYWRpZW50KHRvcCwgY292ZXIsIG9yYW5nZSwgeWVsbG93LCBvcmFuZ2UpKTtcblxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gU2hvcnRoYW5kIEJvcmRlci1yYWRpdXMgbWl4aW5zXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGlpKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci10b3AtbGVmdC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci10b3AtcmlnaHQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGlpKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpaSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItdG9wLWxlZnQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaWkpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMsICRyYWRpaSwgc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzLCAkcmFkaWksIHNwZWMpO1xufVxuIiwiQG1peGluIGJveC1zaXppbmcgKCRib3gpIHtcbi8vICBjb250ZW50LWJveCB8IGJvcmRlci1ib3ggfCBpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1zaXppbmcsICRib3gsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gY29sdW1ucygkYXJnOiBhdXRvKSB7XG4vLyA8Y29sdW1uLWNvdW50PiB8fCA8Y29sdW1uLXdpZHRoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW5zLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCRpbnQ6IGF1dG8pIHtcbi8vIGF1dG8gfHwgaW50ZWdlclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tY291bnQsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCRsZW5ndGg6IG5vcm1hbCkge1xuLy8gbm9ybWFsIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZ2FwLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWZpbGwoJGFyZzogYXV0bykge1xuLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1ucy1maWxsLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUoJGFyZykge1xuLy8gPGJvcmRlci13aWR0aD4gfHwgPGJvcmRlci1zdHlsZT4gfHwgPGNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZSwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLWNvbG9yKCRjb2xvcikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1jb2xvciwgJGNvbG9yLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtc3R5bGUoJHN0eWxlOiBub25lKSB7XG4vLyBub25lIHwgaGlkZGVuIHwgZGFzaGVkIHwgZG90dGVkIHwgZG91YmxlIHwgZ3Jvb3ZlIHwgaW5zZXQgfCBpbnNldCB8IG91dHNldCB8IHJpZGdlIHwgc29saWRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLXdpZHRoICgkd2lkdGg6IG5vbmUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtd2lkdGgsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1zcGFuKCRhcmc6IG5vbmUpIHtcbi8vIG5vbmUgfHwgYWxsXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1zcGFuLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXdpZHRoKCRsZW5ndGg6IGF1dG8pIHtcbi8vIGF1dG8gfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi13aWR0aCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuXG4vLyBDdXN0b20gc2hvcnRoYW5kIG5vdGF0aW9uIGZvciBmbGV4Ym94XG5AbWl4aW4gYm94KCRvcmllbnQ6IGlubGluZS1heGlzLCAkcGFjazogc3RhcnQsICRhbGlnbjogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBkaXNwbGF5LWJveDtcbiAgQGluY2x1ZGUgYm94LW9yaWVudCgkb3JpZW50KTtcbiAgQGluY2x1ZGUgYm94LXBhY2soJHBhY2spO1xuICBAaW5jbHVkZSBib3gtYWxpZ24oJGFsaWduKTtcbn1cblxuQG1peGluIGRpc3BsYXktYm94IHtcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gIGRpc3BsYXk6IC1tb3otYm94O1xuICBkaXNwbGF5OiBib3g7XG59XG5cbkBtaXhpbiBib3gtb3JpZW50KCRvcmllbnQ6IGlubGluZS1heGlzKSB7XG4vLyBob3Jpem9udGFsfHZlcnRpY2FsfGlubGluZS1heGlzfGJsb2NrLWF4aXN8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkb3JpZW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LXBhY2soJHBhY2s6IHN0YXJ0KSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGp1c3RpZnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRwYWNrLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LWFsaWduKCRhbGlnbjogc3RyZXRjaCkge1xuLy8gc3RhcnR8ZW5kfGNlbnRlcnxiYXNlbGluZXxzdHJldGNoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsaWduLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LWRpcmVjdGlvbigkZGlyZWN0aW9uOiBub3JtYWwpIHtcbi8vIG5vcm1hbHxyZXZlcnNlfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1saW5lcygkbGluZXM6IHNpbmdsZSkge1xuLy8gc2luZ2xlfG11bHRpcGxlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGxpbmVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LW9yZGluYWwtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1mbGV4KCR2YWx1ZTogMC4wKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtZmxleC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiLy8gT3JkZXIgb2YgdGhlIGluY2x1ZGVzIG1hdHRlcnMsIGFuZCBpdCBpczogbm9ybWFsLCBib2xkLCBpdGFsaWMsIGJvbGQraXRhbGljLlxuXG5AbWl4aW4gZm9udC1mYWNlKCRmb250LWZhbWlseSwgJGZpbGUtcGF0aCwgJHdlaWdodDogbm9ybWFsLCAkc3R5bGU6IG5vcm1hbCwgJGFzc2V0LXBpcGVsaW5lOiBmYWxzZSApIHtcbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJHdlaWdodDtcbiAgICBmb250LXN0eWxlOiAkc3R5bGU7XG5cbiAgICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgICAgc3JjOiBmb250LXVybCgnI3skZmlsZS1wYXRofS5lb3QnKTtcbiAgICAgIHNyYzogZm9udC11cmwoJyN7JGZpbGUtcGF0aH0uZW90PyNpZWZpeCcpICAgICAgICAgIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICAgICAgZm9udC11cmwoJyN7JGZpbGUtcGF0aH0ud29mZicpICAgICAgICAgICAgICAgIGZvcm1hdCgnd29mZicpLFxuICAgICAgICAgICBmb250LXVybCgnI3skZmlsZS1wYXRofS50dGYnKSAgICAgICAgICAgICAgICAgZm9ybWF0KCd0cnVldHlwZScpLFxuICAgICAgICAgICBmb250LXVybCgnI3skZmlsZS1wYXRofS5zdmcjI3skZm9udC1mYW1pbHl9JykgZm9ybWF0KCdzdmcnKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgIHNyYzogdXJsKCcjeyRmaWxlLXBhdGh9LmVvdCcpO1xuICAgICAgc3JjOiB1cmwoJyN7JGZpbGUtcGF0aH0uZW90PyNpZWZpeCcpICAgICAgICAgICAgICAgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgICAgICB1cmwoJyN7JGZpbGUtcGF0aH0ud29mZicpICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KCd3b2ZmJyksXG4gICAgICAgICAgIHVybCgnI3skZmlsZS1wYXRofS50dGYnKSAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgICAgIHVybCgnI3skZmlsZS1wYXRofS5zdmcjI3skZm9udC1mYW1pbHl9JykgICAgICBmb3JtYXQoJ3N2ZycpO1xuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIGh5cGhlbnMoJGh5cGhlbmF0aW9uOiBub25lKSB7XG4vLyBub25lIHwgbWFudWFsIHwgYXV0b1xuICBAaW5jbHVkZSBwcmVmaXhlcihoeXBoZW5zLCAkaHlwaGVuYXRpb24sIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59IiwiLy8gSGlEUEkgbWl4aW4uIERlZmF1bHQgdmFsdWUgc2V0IHRvIDEuMyB0byB0YXJnZXQgR29vZ2xlIE5leHVzIDcgKGh0dHA6Ly9iamFuZ28uY29tL2FydGljbGVzL21pbi1kZXZpY2UtcGl4ZWwtcmF0aW8vKVxuQG1peGluIGhpZHBpKCRyYXRpbzogMS4zKSB7XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogI3skcmF0aW99LzEpLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAje3JvdW5kKCRyYXRpbyo5Nil9ZHBpKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogI3skcmF0aW99ZHBweCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCJAbWl4aW4gaW1hZ2UtcmVuZGVyaW5nICgkbW9kZTpvcHRpbWl6ZVF1YWxpdHkpIHtcblxuICBAaWYgKCRtb2RlID09IG9wdGltaXplLWNvbnRyYXN0KSB7XG4gICAgICBpbWFnZS1yZW5kZXJpbmc6IC1tb3otY3Jpc3AtZWRnZXM7XG4gICAgICBpbWFnZS1yZW5kZXJpbmc6IC1vLWNyaXNwLWVkZ2VzO1xuICAgICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0O1xuICAgICAgaW1hZ2UtcmVuZGVyaW5nOiBvcHRpbWl6ZS1jb250cmFzdDtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAgIGltYWdlLXJlbmRlcmluZzogJG1vZGU7XG4gIH1cbn1cbiIsIi8vIExlZ2FjeSBzdXBwb3J0IGZvciBpbmxpbmUtYmxvY2sgaW4gSUU3IChtYXliZSBJRTYpXG5AbWl4aW4gaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIHpvb206IDE7XG4gICpkaXNwbGF5OiBpbmxpbmU7XG4gICp2ZXJ0aWNhbC1hbGlnbjogYXV0bztcbn1cbiIsIi8vIEFkZHMga2V5ZnJhbWVzIGJsb2NrcyBmb3Igc3VwcG9ydGVkIHByZWZpeGVzLCByZW1vdmluZyByZWR1bmRhbnQgcHJlZml4ZXMgaW4gdGhlIGJsb2NrJ3MgY29udGVudFxuQG1peGluIGtleWZyYW1lcygkbmFtZSkge1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ6ICAgICRwcmVmaXgtZm9yLXdlYmtpdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTogICAkcHJlZml4LWZvci1tb3ppbGxhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQ6ICRwcmVmaXgtZm9yLW1pY3Jvc29mdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE6ICAgICAkcHJlZml4LWZvci1vcGVyYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYzogICAgICAkcHJlZml4LWZvci1zcGVjO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci13ZWJraXQ6IHRydWU7XG4gICAgQC13ZWJraXQta2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLW1vemlsbGE6IHRydWU7XG4gICAgQC1tb3ota2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLXNwZWM6IHRydWU7XG4gICAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICAkcHJlZml4LWZvci13ZWJraXQ6ICAgICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6ICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYTtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjO1xufVxuIiwiQG1peGluIGxpbmVhci1ncmFkaWVudCgkcG9zLCAkRzEsICRHMjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJEczOiBudWxsLCAkRzQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRHNTogbnVsbCwgJEc2OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkRzc6IG51bGwsICRHODogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJEc5OiBudWxsLCAkRzEwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcbiAgLy8gRGV0ZWN0IHdoYXQgdHlwZSBvZiB2YWx1ZSBleGlzdHMgaW4gJHBvc1xuICAkcG9zLXR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcbiAgJHBvcy1zcGVjOiBudWxsO1xuICAkcG9zLWRlZ3JlZTogbnVsbDtcblxuICAvLyBJZiAkcG9zIGlzIG1pc3NpbmcgZnJvbSBtaXhpbiwgcmVhc3NpZ24gdmFycyBhbmQgYWRkIGRlZmF1bHQgcG9zaXRpb25cbiAgQGlmICgkcG9zLXR5cGUgPT0gY29sb3IpIG9yIChudGgoJHBvcywgMSkgPT0gXCJ0cmFuc3BhcmVudFwiKSAge1xuICAgICRHMTA6ICRHOTsgJEc5OiAkRzg7ICRHODogJEc3OyAkRzc6ICRHNjsgJEc2OiAkRzU7XG4gICAgICRHNTogJEc0OyAkRzQ6ICRHMzsgJEczOiAkRzI7ICRHMjogJEcxOyAkRzE6ICRwb3M7XG4gICAgICRwb3M6IG51bGw7XG4gIH1cblxuICBAaWYgJHBvcyB7XG4gICAgJHBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpO1xuICAgICRwb3MtZGVncmVlOiBudGgoJHBvc2l0aW9ucywgMSk7XG4gICAgJHBvcy1zcGVjOiAgIG50aCgkcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gICRmdWxsOiAkRzEsICRHMiwgJEczLCAkRzQsICRHNSwgJEc2LCAkRzcsICRHOCwgJEc5LCAkRzEwO1xuXG4gIC8vIFNldCAkRzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJEcxLCAxKTtcblxuICAvLyBJZiAkZmFsbGJhY2sgaXMgYSBjb2xvciB1c2UgdGhhdCBjb2xvciBhcyB0aGUgZmFsbGJhY2sgY29sb3JcbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRwb3MtZGVncmVlICRmdWxsKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZVxuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KCN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcbn1cbiIsIkBtaXhpbiBwZXJzcGVjdGl2ZSgkZGVwdGg6IG5vbmUpIHtcbiAgLy8gbm9uZSB8IDxsZW5ndGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLCAkZGVwdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBwZXJzcGVjdGl2ZS1vcmlnaW4oJHZhbHVlOiA1MCUgNTAlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLW9yaWdpbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiLy8gUmVxdWlyZXMgU2FzcyAzLjErXG5AbWl4aW4gcmFkaWFsLWdyYWRpZW50KCRHMSwgICAgICAgICRHMixcbiAgICAgICAgICAgICAgICAgICAgICAgJEczOiBudWxsLCAkRzQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRHNTogbnVsbCwgJEc2OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkRzc6IG51bGwsICRHODogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJEc5OiBudWxsLCAkRzEwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkcG9zOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkc2hhcGUtc2l6ZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG5cbiAgJGRhdGE6IF9yYWRpYWwtYXJnLXBhcnNlcigkRzEsICRHMiwgJHBvcywgJHNoYXBlLXNpemUpO1xuICAkRzE6ICBudGgoJGRhdGEsIDEpO1xuICAkRzI6ICBudGgoJGRhdGEsIDIpO1xuICAkcG9zOiBudGgoJGRhdGEsIDMpO1xuICAkc2hhcGUtc2l6ZTogbnRoKCRkYXRhLCA0KTtcblxuICAkZnVsbDogJEcxLCAkRzIsICRHMywgJEc0LCAkRzUsICRHNiwgJEc3LCAkRzgsICRHOSwgJEcxMDtcblxuICAvLyBTdHJpcCBkZXByZWNhdGVkIGNvdmVyL2NvbnRhaW4gZm9yIHNwZWNcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gIC8vIFNldCAkRzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZpcnN0LWNvbG9yOiBudGgoJGZ1bGwsIDEpO1xuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZmlyc3QtY29sb3IsIDEpO1xuXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG5cbiAgLy8gQWRkIENvbW1hcyBhbmQgc3BhY2VzXG4gICRzaGFwZS1zaXplOiBpZigkc2hhcGUtc2l6ZSwgJyN7JHNoYXBlLXNpemV9LCAnLCBudWxsKTtcbiAgJHBvczogICAgICAgIGlmKCRwb3MsICcjeyRwb3N9LCAnLCBudWxsKTtcbiAgJHBvcy1zcGVjOiAgIGlmKCRwb3MsICdhdCAjeyRwb3N9JywgbnVsbCk7XG4gICRzaGFwZS1zaXplLXNwZWM6IGlmKCgkc2hhcGUtc2l6ZS1zcGVjICE9ICcgJykgYW5kICgkcG9zID09IG51bGwpLCAnI3skc2hhcGUtc2l6ZS1zcGVjfSwgJywgJyN7JHNoYXBlLXNpemUtc3BlY30gJyk7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQodW5xdW90ZSgjeyRwb3N9I3skc2hhcGUtc2l6ZX0jeyRmdWxsfSkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwicmFkaWFsLWdyYWRpZW50KCN7JHNoYXBlLXNpemUtc3BlY30jeyRwb3Mtc3BlY30jeyRmdWxsfSlcIik7XG59XG4iLCJAbWl4aW4gdHJhbnNmb3JtKCRwcm9wZXJ0eTogbm9uZSkge1xuLy8gIG5vbmUgfCA8dHJhbnNmb3JtLWZ1bmN0aW9uPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sICRwcm9wZXJ0eSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkYXhlczogNTAlKSB7XG4vLyB4LWF4aXMgLSBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgIHwgbGVuZ3RoIHwgJVxuLy8geS1heGlzIC0gdG9wICB8IGNlbnRlciB8IGJvdHRvbSB8IGxlbmd0aCB8ICVcbi8vIHotYXhpcyAtICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLW9yaWdpbiwgJGF4ZXMsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1zdHlsZSAoJHN0eWxlOiBmbGF0KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLCIvLyBTaG9ydGhhbmQgbWl4aW4uIFN1cHBvcnRzIG11bHRpcGxlIHBhcmVudGhlc2VzLWRlbGltaW5hdGVkIHZhbHVlcyBmb3IgZWFjaCB2YXJpYWJsZS5cbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAycyBlYXNlLWluLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IDFzIGVhc2UtaW4gMnMsIHdpZHRoIDJzIGVhc2Utb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkgKHRyYW5zZm9ybSwgb3BhY2l0eSk7XG5cbkBtaXhpbiB0cmFuc2l0aW9uICgkcHJvcGVydGllcy4uLikge1xuICBAaWYgbGVuZ3RoKCRwcm9wZXJ0aWVzKSA+PSAxIHtcbiAgICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLCAkcHJvcGVydGllcywgd2Via2l0IG1veiBzcGVjKTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkcHJvcGVydGllczogYWxsIDAuMTVzIGVhc2Utb3V0IDBzO1xuICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICB9XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5ICgkcHJvcGVydGllcy4uLikge1xuICAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCAnd2Via2l0Jyk7XG4gICAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsICdtb3onKTtcbiAgICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgZmFsc2UpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbiAoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uICgkbW90aW9ucy4uLikge1xuLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0IHwgY3ViaWMtYmV6aWVyKClcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSAoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiB1c2VyLXNlbGVjdCgkYXJnOiBub25lKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHVzZXItc2VsZWN0LCAkYXJnLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiJHBsYWNlaG9sZGVyczogJy13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXInLFxuICAgICAgICAgICAgICAgJy1tb3otcGxhY2Vob2xkZXInLFxuICAgICAgICAgICAgICAgJy1tcy1pbnB1dC1wbGFjZWhvbGRlcic7XG5cbkBtaXhpbiBwbGFjZWhvbGRlciB7XG4gIEBlYWNoICRwbGFjZWhvbGRlciBpbiAkcGxhY2Vob2xkZXJzIHtcbiAgICBAaWYgJHBsYWNlaG9sZGVyID09IFwiLXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlclwiIHtcbiAgICAgICY6OiN7JHBsYWNlaG9sZGVyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkcGxhY2Vob2xkZXIgPT0gXCItbW96LXBsYWNlaG9sZGVyXCIge1xuICAgICAgLy8gRkYgMTgtXG4gICAgICAmOiN7JHBsYWNlaG9sZGVyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuXG4gICAgICAvLyBGRiAxOStcbiAgICAgICY6OiN7JHBsYWNlaG9sZGVyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAmOiN7JHBsYWNlaG9sZGVyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIGJ1dHRvbiAoJHN0eWxlOiBzaW1wbGUsICRiYXNlLWNvbG9yOiAjNDI5NGYwKSB7XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBjb2xvciB7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcbiAgfVxuXG4gIC8vIEdyYXlzY2FsZSBidXR0b25cbiAgQGlmICRiYXNlLWNvbG9yID09IGdyYXlzY2FsZSgkYmFzZS1jb2xvcikge1xuICAgIEBpZiAkc3R5bGUgPT0gc2ltcGxlIHtcbiAgICAgIEBpbmNsdWRlIHNpbXBsZSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogdHJ1ZSk7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJHN0eWxlID09IHNoaW55IHtcbiAgICAgIEBpbmNsdWRlIHNoaW55KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiB0cnVlKTtcbiAgICB9XG5cbiAgICBAZWxzZSBpZiAkc3R5bGUgPT0gcGlsbCB7XG4gICAgICBAaW5jbHVkZSBwaWxsKCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiB0cnVlKTtcbiAgICB9XG4gIH1cblxuICAvLyBDb2xvcmVkIGJ1dHRvblxuICBAZWxzZSB7XG4gICAgQGlmICRzdHlsZSA9PSBzaW1wbGUge1xuICAgICAgQGluY2x1ZGUgc2ltcGxlKCRiYXNlLWNvbG9yKTtcbiAgICB9XG5cbiAgICBAZWxzZSBpZiAkc3R5bGUgPT0gc2hpbnkge1xuICAgICAgQGluY2x1ZGUgc2hpbnkoJGJhc2UtY29sb3IpO1xuICAgIH1cblxuICAgIEBlbHNlIGlmICRzdHlsZSA9PSBwaWxsIHtcbiAgICAgIEBpbmNsdWRlIHBpbGwoJGJhc2UtY29sb3IpO1xuICAgIH1cbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG59XG5cblxuLy8gU2ltcGxlIEJ1dHRvblxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQG1peGluIHNpbXBsZSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xNCUpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTglLCAgJGxpZ2h0bmVzczogIDE1JSk7XG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTElKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICAxNSUsICRsaWdodG5lc3M6IC0xOCUpO1xuXG4gIEBpZiBsaWdodG5lc3MoJGJhc2UtY29sb3IpID4gNzAlIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6IDdweCAxOHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNyUsICRsaWdodG5lc3M6ICA1JSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA4JSwgJGxpZ2h0bmVzczogLTE0JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgIH1cblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDklLCAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNyUsICRsaWdodG5lc3M6IC0xNyUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlLCBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZSwgMCAxcHggMXB4IDAgI2VlZTtcbiAgfVxufVxuXG5cbi8vIFNoaW55IEJ1dHRvblxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQG1peGluIHNoaW55KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTE3LCAkZ3JlZW46IC0xMTEsICRibHVlOiAtODEpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTI2LCAkZ3JlZW46IC0xMjcsICRibHVlOiAtMTIyKTtcbiAgJGZvdXJ0aC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTc5LCAgJGdyZWVuOiAtNzAsICAkYmx1ZTogLTQ2KTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogIDM3LCAgJGdyZWVuOiAgMjksICAkYmx1ZTogIDEyKTtcbiAgJHNlY29uZC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTU2LCAgJGdyZWVuOiAtNTAsICAkYmx1ZTogLTMzKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTE0MCwgJGdyZWVuOiAtMTQxLCAkYmx1ZTogLTExNCk7XG4gICR0aGlyZC1zdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgICRncmVlbjogLTc1LCAgJGJsdWU6IC00OCk7XG5cbiAgQGlmIGxpZ2h0bmVzcygkYmFzZS1jb2xvcikgPiA3MCUge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGZvdXJ0aC1zdG9wOiAgIGdyYXlzY2FsZSgkZm91cnRoLXN0b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHNlY29uZC1zdG9wOiAgIGdyYXlzY2FsZSgkc2Vjb25kLXN0b3ApO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgICAkdGhpcmQtc3RvcDogICAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wKTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQodG9wLCAkYmFzZS1jb2xvciAwJSwgJHNlY29uZC1zdG9wIDUwJSwgJHRoaXJkLXN0b3AgNTAlLCAkZm91cnRoLXN0b3AgMTAwJSk7XG4gIHBhZGRpbmc6IDhweCAyMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTMsICRncmVlbjogLTE1LCAkYmx1ZTogLTE4KTtcbiAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTY2LCAkZ3JlZW46IC02MiwgJGJsdWU6IC01MSk7XG4gICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC05MywgJGdyZWVuOiAtODUsICRibHVlOiAtNjYpO1xuICAgICRmb3VydGgtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICRncmVlbjogLTgwLCAkYmx1ZTogLTYzKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJGZpcnN0LXN0b3AtaG92ZXIpO1xuICAgICAgJHNlY29uZC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJHNlY29uZC1zdG9wLWhvdmVyKTtcbiAgICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wLWhvdmVyKTtcbiAgICAgICRmb3VydGgtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRmb3VydGgtc3RvcC1ob3Zlcik7XG4gICAgfVxuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRmaXJzdC1zdG9wLWhvdmVyICAwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2Vjb25kLXN0b3AtaG92ZXIgNTAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlyZC1zdG9wLWhvdmVyICA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyIDEwMCUpO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCkge1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTEsICRncmVlbjogLTExNiwgJGJsdWU6IC0xMjIpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjBweCAwICRpbnNldC1zaGFkb3ctYWN0aXZlLCAwIDFweCAwICNmZmY7XG4gIH1cbn1cblxuXG4vLyBQaWxsIEJ1dHRvblxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQG1peGluIHBpbGwoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlKSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTExJSwgJGxpZ2h0bmVzczogLTI2JSk7XG4gICRib3JkZXItc2lkZXM6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIxJSwgJGxpZ2h0bmVzczogLTIxJSk7XG4gICRib3JkZXItdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTMwJSwgJGxpZ2h0bmVzczogLTE1JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTElLCAgJGxpZ2h0bmVzczogIDclKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTQlLCAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtMTklLCAkbGlnaHRuZXNzOiAtMTUlKTtcblxuICBAaWYgbGlnaHRuZXNzKCRiYXNlLWNvbG9yKSA+IDcwJSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGJvcmRlci1zaWRlczogIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAkYm9yZGVyLXRvcDogICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LCAwIDFweCAycHggMCAjYjNiM2IzO1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcbiAgcGFkZGluZzogNXB4IDE2cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3c7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaWdodG5lc3M6IC00LjUlKTtcbiAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246ICAxMy41JSwgJGxpZ2h0bmVzczogLTMyJSk7XG4gICAgJGJvcmRlci1zaWRlczogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDQsICRzYXR1cmF0aW9uOiAtMiUsICAgICRsaWdodG5lc3M6IC0yNyUpO1xuICAgICRib3JkZXItdG9wOiAgICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTE3JSwgICAkbGlnaHRuZXNzOiAtMjElKTtcbiAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgJHNhdHVyYXRpb246IC0xJSwgICAgJGxpZ2h0bmVzczogIDMlKTtcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC00JSwgICAgJGxpZ2h0bmVzczogLTE1LjUlKTtcbiAgICAkdGV4dC1zaGFkb3ctaG92ZXI6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNSwgJHNhdHVyYXRpb246IC01JSwgICAgJGxpZ2h0bmVzczogLTIyJSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgICAgJGJvcmRlci1ib3R0b206ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xuICAgICAgJGJvcmRlci10b3A6ICAgICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXRvcCk7XG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gICAgICAkdGV4dC1zaGFkb3ctaG92ZXI6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1ob3Zlcik7XG4gICAgfVxuXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWhvdmVyO1xuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSB7XG4gICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDQsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0xMCUpO1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA2LCAgJHNhdHVyYXRpb246IC0yLjUlLCAkbGlnaHRuZXNzOiAtMzAlKTtcbiAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogMTEsICRzYXR1cmF0aW9uOiAgNiUsICAgJGxpZ2h0bmVzczogLTMxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDksICAkc2F0dXJhdGlvbjogIDIlLCAgICRsaWdodG5lc3M6IC0yMS41JSk7XG4gICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDUsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0yMS41JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgZ3JheXNjYWxlKCRhY3RpdmUtY29sb3IpO1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20tYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQ6ICRhY3RpdmUtY29sb3I7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IDNweCAkaW5zZXQtc2hhZG93LWFjdGl2ZSwgMCAxcHggMCAwICNmZmY7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuIiwiLy8gTW9kZXJuIG1pY3JvIGNsZWFyZml4IHByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGNvbnRhaW4gZmxvYXRzIHdpdGhvdXQgYWRkaW5nIGFkZGl0aW9uYWwgbWFya3VwLlxuLy9cbi8vIEV4YW1wbGUgdXNhZ2U6XG4vL1xuLy8gICAgLy8gQ29udGFpbiBhbGwgZmxvYXRzIHdpdGhpbiAud3JhcHBlclxuLy8gICAgLndyYXBwZXIge1xuLy8gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbi8vICAgICAgLmNvbnRlbnQsXG4vLyAgICAgIC5zaWRlYmFyIHtcbi8vICAgICAgICBmbG9hdCA6IGxlZnQ7XG4vLyAgICAgIH1cbi8vICAgIH1cblxuQG1peGluIGNsZWFyZml4IHtcbiAgJjphZnRlciB7XG4gICAgY29udGVudDpcIlwiO1xuICAgIGRpc3BsYXk6dGFibGU7XG4gICAgY2xlYXI6Ym90aDtcbiAgfVxufVxuXG4vLyBBY2tub3dsZWRnZW1lbnRzXG4vLyBCZWF0ICp0aGF0KiBjbGVhcmZpeDogW1RoaWVycnkgS29ibGVudHpdKGh0dHA6Ly93d3cuY3NzLTEwMS5vcmcvYXJ0aWNsZXMvY2xlYXJmaXgvbGF0ZXN0LW5ldy1jbGVhcmZpeC1zby1mYXIucGhwKVxuIiwiJGdlb3JnaWE6IEdlb3JnaWEsIENhbWJyaWEsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFRpbWVzLCBzZXJpZjtcbiRoZWx2ZXRpY2E6IFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRsdWNpZGEtZ3JhbmRlOiBcIkx1Y2lkYSBHcmFuZGVcIiwgVGFob21hLCBWZXJkYW5hLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRtb25vc3BhY2U6IFwiQml0c3RyZWFtIFZlcmEgU2FucyBNb25vXCIsIENvbnNvbGFzLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4kdmVyZGFuYTogVmVyZGFuYSwgR2VuZXZhLCBzYW5zLXNlcmlmO1xuIiwiQG1peGluIGhpZGUtdGV4dCB7XG4gIGNvbG9yOiAgICAgICAgICAgIHRyYW5zcGFyZW50O1xuICBmb250OiAgICAgICAgICAgICAwLzAgYTtcbiAgdGV4dC1zaGFkb3c6ICAgICAgbm9uZTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEdlbmVyYXRlIGEgdmFyaWFibGUgKCRhbGwtdGV4dC1pbnB1dHMpIHdpdGggYSBsaXN0IG9mIGFsbCBodG1sNVxuLy8gaW5wdXQgdHlwZXMgdGhhdCBoYXZlIGEgdGV4dC1iYXNlZCBpbnB1dCwgZXhjbHVkaW5nIHRleHRhcmVhLlxuLy8gaHR0cDovL2RpdmVpbnRvaHRtbDUub3JnL2Zvcm1zLmh0bWxcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbiRpbnB1dHMtbGlzdDogJ2lucHV0W3R5cGU9XCJlbWFpbFwiXScsXG4gICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibnVtYmVyXCJdJyxcbiAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJwYXNzd29yZFwiXScsXG4gICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic2VhcmNoXCJdJyxcbiAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZWxcIl0nLFxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRleHRcIl0nLFxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInVybFwiXScsXG5cbiAgICAgICAgICAgICAgLy8gV2Via2l0ICYgR2Vja28gbWF5IGNoYW5nZSB0aGUgZGlzcGxheSBvZiB0aGVzZSBpbiB0aGUgZnV0dXJlXG4gICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiY29sb3JcIl0nLFxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGVcIl0nLFxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdJyxcbiAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXScsXG4gICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibW9udGhcIl0nLFxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRpbWVcIl0nLFxuICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIndlZWtcIl0nO1xuXG4kdW5xdW90ZWQtaW5wdXRzLWxpc3Q6ICgpO1xuQGVhY2ggJGlucHV0LXR5cGUgaW4gJGlucHV0cy1saXN0IHtcbiAgJHVucXVvdGVkLWlucHV0cy1saXN0OiBhcHBlbmQoJHVucXVvdGVkLWlucHV0cy1saXN0LCB1bnF1b3RlKCRpbnB1dC10eXBlKSwgY29tbWEpO1xufVxuXG4kYWxsLXRleHQtaW5wdXRzOiAkdW5xdW90ZWQtaW5wdXRzLWxpc3Q7XG5cblxuLy8gSG92ZXIgUHNldWRvLWNsYXNzXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4kYWxsLXRleHQtaW5wdXRzLWhvdmVyOiAoKTtcbkBlYWNoICRpbnB1dC10eXBlIGluICR1bnF1b3RlZC1pbnB1dHMtbGlzdCB7XG4gICAgICAkaW5wdXQtdHlwZS1ob3ZlcjogJGlucHV0LXR5cGUgKyBcIjpob3ZlclwiO1xuICAgICAgJGFsbC10ZXh0LWlucHV0cy1ob3ZlcjogYXBwZW5kKCRhbGwtdGV4dC1pbnB1dHMtaG92ZXIsICRpbnB1dC10eXBlLWhvdmVyLCBjb21tYSk7XG59XG5cbi8vIEZvY3VzIFBzZXVkby1jbGFzc1xuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuJGFsbC10ZXh0LWlucHV0cy1mb2N1czogKCk7XG5AZWFjaCAkaW5wdXQtdHlwZSBpbiAkdW5xdW90ZWQtaW5wdXRzLWxpc3Qge1xuICAgICAgJGlucHV0LXR5cGUtZm9jdXM6ICRpbnB1dC10eXBlICsgXCI6Zm9jdXNcIjtcbiAgICAgICRhbGwtdGV4dC1pbnB1dHMtZm9jdXM6IGFwcGVuZCgkYWxsLXRleHQtaW5wdXRzLWZvY3VzLCAkaW5wdXQtdHlwZS1mb2N1cywgY29tbWEpO1xufVxuXG4vLyBZb3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6XG4vLyAjeyRhbGwtdGV4dC1pbnB1dHN9XG4vLyAjeyRhbGwtdGV4dC1pbnB1dHMtaG92ZXJ9XG4vLyAjeyRhbGwtdGV4dC1pbnB1dHMtZm9jdXN9XG5cbi8vIEV4YW1wbGVcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vICAgI3skYWxsLXRleHQtaW5wdXRzfSwgdGV4dGFyZWEge1xuLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkIHJlZDtcbi8vICAgfVxuIiwiQG1peGluIHBvc2l0aW9uICgkcG9zaXRpb246IHJlbGF0aXZlLCAkY29vcmRpbmF0ZXM6IDAgMCAwIDApIHtcblxuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09IGxpc3Qge1xuICAgICRjb29yZGluYXRlczogJHBvc2l0aW9uO1xuICAgICRwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAkdG9wOiBudGgoJGNvb3JkaW5hdGVzLCAxKTtcbiAgJHJpZ2h0OiBudGgoJGNvb3JkaW5hdGVzLCAyKTtcbiAgJGJvdHRvbTogbnRoKCRjb29yZGluYXRlcywgMyk7XG4gICRsZWZ0OiBudGgoJGNvb3JkaW5hdGVzLCA0KTtcblxuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xuXG4gIEBpZiAkdG9wID09IGF1dG8ge1xuICAgIHRvcDogJHRvcDtcbiAgfVxuICBAZWxzZSBpZiBub3QodW5pdGxlc3MoJHRvcCkpIHtcbiAgICB0b3A6ICR0b3A7XG4gIH1cblxuICBAaWYgJHJpZ2h0ID09IGF1dG8ge1xuICAgIHJpZ2h0OiAkcmlnaHQ7XG4gIH1cbiAgQGVsc2UgaWYgbm90KHVuaXRsZXNzKCRyaWdodCkpIHtcbiAgICByaWdodDogJHJpZ2h0O1xuICB9XG5cbiAgQGlmICRib3R0b20gPT0gYXV0byB7XG4gICAgYm90dG9tOiAkYm90dG9tO1xuICB9XG4gIEBlbHNlIGlmIG5vdCh1bml0bGVzcygkYm90dG9tKSkge1xuICAgIGJvdHRvbTogJGJvdHRvbTtcbiAgfVxuXG4gIEBpZiAkbGVmdCA9PSBhdXRvIHtcbiAgICBsZWZ0OiAkbGVmdDtcbiAgfVxuICBAZWxzZSBpZiBub3QodW5pdGxlc3MoJGxlZnQpKSB7XG4gICAgbGVmdDogJGxlZnQ7XG4gIH1cbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHByZWZpeGVyKGJvcmRlci1yYWRpdXMsICRyYWRpaSwgd2Via2l0IG1zIHNwZWMpO1xuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gVmFyaWFibGVzIGxvY2F0ZWQgaW4gL3NldHRpbmdzL19wcmVmaXhlci5zY3NzXG5cbkBtaXhpbiBwcmVmaXhlciAoJHByb3BlcnR5LCAkdmFsdWUsICRwcmVmaXhlcykge1xuICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlcyB7XG4gICAgQGlmICRwcmVmaXggPT0gd2Via2l0IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci13ZWJraXQge1xuICAgICAgICAtd2Via2l0LSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkcHJlZml4ID09IG1veiB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgICAgIC1tb3otI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRwcmVmaXggPT0gbXMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1pY3Jvc29mdCB7XG4gICAgICAgIC1tcy0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJHByZWZpeCA9PSBvIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1vcGVyYSB7XG4gICAgICAgIC1vLSN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkcHJlZml4ID09IHNwZWMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXNwZWMge1xuICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgIHtcbiAgICAgIEB3YXJuIFwiVW5yZWNvZ25pemVkIHByZWZpeDogI3skcHJlZml4fVwiO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpIHtcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICBmYWxzZTtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICBmYWxzZTtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiBmYWxzZTtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICBmYWxzZTtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICBmYWxzZTtcbn1cbiIsIkBtaXhpbiByZXRpbmEtaW1hZ2UoJGZpbGVuYW1lLCAkYmFja2dyb3VuZC1zaXplLCAkZXh0ZW5zaW9uOiBwbmcsICRyZXRpbmEtZmlsZW5hbWU6IG51bGwsICRyZXRpbmEtc3VmZml4OiBfMngsICRhc3NldC1waXBlbGluZTogZmFsc2UpIHtcbiAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH1cbiAgQGVsc2Uge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgIHVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICB9XG5cbiAgQGluY2x1ZGUgaGlkcGkge1xuICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1zaXplOiAkYmFja2dyb3VuZC1zaXplO1xuXG4gIH1cbn1cbiIsIkBtaXhpbiBzaXplKCRzaXplKSB7XG4gIEBpZiBsZW5ndGgoJHNpemUpID09IDEge1xuICAgIEBpZiAkc2l6ZSA9PSBhdXRvIHtcbiAgICAgIHdpZHRoOiAgJHNpemU7XG4gICAgICBoZWlnaHQ6ICRzaXplO1xuICAgIH1cblxuICAgIEBlbHNlIGlmIHVuaXRsZXNzKCRzaXplKSB7XG4gICAgICB3aWR0aDogICRzaXplICsgcHg7XG4gICAgICBoZWlnaHQ6ICRzaXplICsgcHg7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgbm90KHVuaXRsZXNzKCRzaXplKSkge1xuICAgICAgd2lkdGg6ICAkc2l6ZTtcbiAgICAgIGhlaWdodDogJHNpemU7XG4gICAgfVxuICB9XG5cbiAgLy8gV2lkdGggeCBIZWlnaHRcbiAgQGlmIGxlbmd0aCgkc2l6ZSkgPT0gMiB7XG4gICAgJHdpZHRoOiAgbnRoKCRzaXplLCAxKTtcbiAgICAkaGVpZ2h0OiBudGgoJHNpemUsIDIpO1xuXG4gICAgQGlmICR3aWR0aCA9PSBhdXRvIHtcbiAgICAgIHdpZHRoOiAkd2lkdGg7XG4gICAgfVxuICAgIEBlbHNlIGlmIG5vdCh1bml0bGVzcygkd2lkdGgpKSB7XG4gICAgICB3aWR0aDogJHdpZHRoO1xuICAgIH1cbiAgICBAZWxzZSBpZiB1bml0bGVzcygkd2lkdGgpIHtcbiAgICAgIHdpZHRoOiAkd2lkdGggKyBweDtcbiAgICB9XG5cbiAgICBAaWYgJGhlaWdodCA9PSBhdXRvIHtcbiAgICAgIGhlaWdodDogJGhlaWdodDtcbiAgICB9XG4gICAgQGVsc2UgaWYgbm90KHVuaXRsZXNzKCRoZWlnaHQpKSB7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgfVxuICAgIEBlbHNlIGlmIHVuaXRsZXNzKCRoZWlnaHQpIHtcbiAgICAgIGhlaWdodDogJGhlaWdodCArIHB4O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gQ1NTIGN1YmljLWJlemllciB0aW1pbmcgZnVuY3Rpb25zLiBUaW1pbmcgZnVuY3Rpb25zIGNvdXJ0ZXN5IG9mIGpxdWVyeS5lYXNpZSAoZ2l0aHViLmNvbS9qYXVraWEvZWFzaWUpXG4vLyBUaW1pbmcgZnVuY3Rpb25zIGFyZSB0aGUgc2FtZSBhcyBkZW1vJ2VkIGhlcmU6IGh0dHA6Ly9qcXVlcnl1aS5jb20vZGVtb3MvZWZmZWN0L2Vhc2luZy5odG1sXG5cbi8vIEVBU0UgSU5cbiRlYXNlLWluLXF1YWQ6ICAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wODUsIDAuNjgwLCAwLjUzMCk7XG4kZWFzZS1pbi1jdWJpYzogICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuJGVhc2UtaW4tcXVhcnQ6ICAgICBjdWJpYy1iZXppZXIoMC44OTUsICAwLjAzMCwgMC42ODUsIDAuMjIwKTtcbiRlYXNlLWluLXF1aW50OiAgICAgY3ViaWMtYmV6aWVyKDAuNzU1LCAgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4kZWFzZS1pbi1zaW5lOiAgICAgIGN1YmljLWJlemllcigwLjQ3MCwgIDAuMDAwLCAwLjc0NSwgMC43MTUpO1xuJGVhc2UtaW4tZXhwbzogICAgICBjdWJpYy1iZXppZXIoMC45NTAsICAwLjA1MCwgMC43OTUsIDAuMDM1KTtcbiRlYXNlLWluLWNpcmM6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAgMC4wNDAsIDAuOTgwLCAwLjMzNSk7XG4kZWFzZS1pbi1iYWNrOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgLTAuMjgwLCAwLjczNSwgMC4wNDUpO1xuXG4vLyBFQVNFIE9VVFxuJGVhc2Utb3V0LXF1YWQ6ICAgICBjdWJpYy1iZXppZXIoMC4yNTAsICAwLjQ2MCwgMC40NTAsIDAuOTQwKTtcbiRlYXNlLW91dC1jdWJpYzogICAgY3ViaWMtYmV6aWVyKDAuMjE1LCAgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1vdXQtcXVhcnQ6ICAgIGN1YmljLWJlemllcigwLjE2NSwgIDAuODQwLCAwLjQ0MCwgMS4wMDApO1xuJGVhc2Utb3V0LXF1aW50OiAgICBjdWJpYy1iZXppZXIoMC4yMzAsICAxLjAwMCwgMC4zMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1zaW5lOiAgICAgY3ViaWMtYmV6aWVyKDAuMzkwLCAgMC41NzUsIDAuNTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtZXhwbzogICAgIGN1YmljLWJlemllcigwLjE5MCwgIDEuMDAwLCAwLjIyMCwgMS4wMDApO1xuJGVhc2Utb3V0LWNpcmM6ICAgICBjdWJpYy1iZXppZXIoMC4wNzUsICAwLjgyMCwgMC4xNjUsIDEuMDAwKTtcbiRlYXNlLW91dC1iYWNrOiAgICAgY3ViaWMtYmV6aWVyKDAuMTc1LCAgMC44ODUsIDAuMzIwLCAxLjI3NSk7XG5cbi8vIEVBU0UgSU4gT1VUXG4kZWFzZS1pbi1vdXQtcXVhZDogIGN1YmljLWJlemllcigwLjQ1NSwgIDAuMDMwLCAwLjUxNSwgMC45NTUpO1xuJGVhc2UtaW4tb3V0LWN1YmljOiBjdWJpYy1iZXppZXIoMC42NDUsICAwLjA0NSwgMC4zNTUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWFydDogY3ViaWMtYmV6aWVyKDAuNzcwLCAgMC4wMDAsIDAuMTc1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtcXVpbnQ6IGN1YmljLWJlemllcigwLjg2MCwgIDAuMDAwLCAwLjA3MCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXNpbmU6ICBjdWJpYy1iZXppZXIoMC40NDUsICAwLjA1MCwgMC41NTAsIDAuOTUwKTtcbiRlYXNlLWluLW91dC1leHBvOiAgY3ViaWMtYmV6aWVyKDEuMDAwLCAgMC4wMDAsIDAuMDAwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtY2lyYzogIGN1YmljLWJlemllcigwLjc4NSwgIDAuMTM1LCAwLjE1MCwgMC44NjApO1xuJGVhc2UtaW4tb3V0LWJhY2s6ICBjdWJpYy1iZXppZXIoMC42ODAsIC0wLjU1MCwgMC4yNjUsIDEuNTUwKTtcbiIsIkBtaXhpbiB0cmlhbmdsZSAoJHNpemUsICRjb2xvciwgJGRpcmVjdGlvbikge1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuXG4gIEBpZiAoJGRpcmVjdGlvbiA9PSB1cCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bikgb3IgKCRkaXJlY3Rpb24gPT0gcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkc2l6ZSAvIDI7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cCB7XG4gICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkY29sb3I7XG5cbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICAgJGNvbG9yO1xuXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogICAgJGNvbG9yO1xuXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAgJGNvbG9yO1xuICAgIH1cbiAgfVxuXG4gIEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHVwLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSB1cC1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcDogJHNpemUgc29saWQgJGNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAtcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkc2l6ZSBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0KSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJHNpemUgc29saWQgJGNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24tbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICRzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gVGhlc2UgbWl4aW5zL2Z1bmN0aW9ucyBhcmUgZGVwcmVjYXRlZFxuLy8gVGhleSB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgTUFKT1IgdmVyc2lvbiByZWxlYXNlXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AbWl4aW4gYm94LXNoYWRvdyAoJHNoYWRvd3MuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXNoYWRvdywgJHNoYWRvd3MsIHNwZWMpO1xuICBAd2FybiBcImJveC1zaGFkb3cgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG5AbWl4aW4gYmFja2dyb3VuZC1zaXplICgkbGVuZ3Rocy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihiYWNrZ3JvdW5kLXNpemUsICRsZW5ndGhzLCBzcGVjKTtcbiAgQHdhcm4gXCJiYWNrZ3JvdW5kLXNpemUgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuIiwiLy8gRnVuY3Rpb25zXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3ByaXZhdGVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbmV3LWJyZWFrcG9pbnRcIjtcblxuLy8gU2V0dGluZ3NcbkBpbXBvcnQgXCJzZXR0aW5ncy9ncmlkXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvdmlzdWFsLWdyaWRcIjtcbiIsIiRwYXJlbnQtY29sdW1uczogJGdyaWQtY29sdW1ucyAhZGVmYXVsdDtcbiRmZy1jb2x1bW46ICRjb2x1bW47XG4kZmctZ3V0dGVyOiAkZ3V0dGVyO1xuJGZnLW1heC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiBmYWxzZSAhZGVmYXVsdDtcbiRsYXlvdXQtZGlyZWN0aW9uOiBuaWwgIWRlZmF1bHQ7XG5cbkBmdW5jdGlvbiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zKSB7XG4gICR3aWR0aDogJGNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCR3aWR0aCAvICRjb250YWluZXItd2lkdGgpO1xufVxuXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVyIC8gJGNvbnRhaW5lci13aWR0aCk7XG59XG5cbkBmdW5jdGlvbiBncmlkLXdpZHRoKCRuKSB7XG4gIEByZXR1cm4gJG4gKiAkZ3ctY29sdW1uICsgKCRuIC0gMSkgKiAkZ3ctZ3V0dGVyO1xufVxuXG5AZnVuY3Rpb24gZ2V0LXBhcmVudC1jb2x1bW5zKCRjb2x1bW5zKSB7XG4gIEBpZiAkY29sdW1ucyAhPSAkZ3JpZC1jb2x1bW5zIHtcbiAgICAkcGFyZW50LWNvbHVtbnM6ICRjb2x1bW5zO1xuICB9IEBlbHNlIHtcbiAgICAkcGFyZW50LWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gIH1cblxuICBAcmV0dXJuICRwYXJlbnQtY29sdW1ucztcbn1cblxuQGZ1bmN0aW9uIGlzLWRpc3BsYXktdGFibGUoJGNvbnRhaW5lci1pcy1kaXNwbGF5LXRhYmxlLCAkZGlzcGxheSkge1xuICAkZGlzcGxheS10YWJsZTogZmFsc2U7XG5cbiAgQGlmICRjb250YWluZXItaXMtZGlzcGxheS10YWJsZSA9PSB0cnVlIHtcbiAgICAkZGlzcGxheS10YWJsZTogdHJ1ZTtcbiAgfSBAZWxzZSBpZiAkZGlzcGxheSA9PSB0YWJsZSB7XG4gICAgJGRpc3BsYXktdGFibGU6IHRydWU7XG4gIH1cblxuICBAcmV0dXJuICRkaXNwbGF5LXRhYmxlO1xufVxuIiwiQG1peGluIHJlc2V0LWRpc3BsYXkge1xuICAkY29udGFpbmVyLWRpc3BsYXktdGFibGU6IGZhbHNlO1xufVxuXG5AbWl4aW4gcmVzZXQtbGF5b3V0LWRpcmVjdGlvbiB7XG4gICRsYXlvdXQtZGlyZWN0aW9uOiAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uO1xufVxuXG5AbWl4aW4gcmVzZXQtYWxsIHtcbiAgQGluY2x1ZGUgcmVzZXQtZGlzcGxheTtcbiAgQGluY2x1ZGUgcmVzZXQtbGF5b3V0LWRpcmVjdGlvbjtcbn1cbiIsIkBpZiAkYm9yZGVyLWJveC1zaXppbmcgPT0gdHJ1ZSB7XG4gICoge1xuICAgIEBpbmNsdWRlIGJveC1zaXppbmcoYm9yZGVyLWJveCk7XG4gIH1cbn1cbiIsIi8vIFJlbW92ZSBsYXN0IGVsZW1lbnQgZ3V0dGVyXG5AbWl4aW4gb21lZ2EoJHF1ZXJ5OiBibG9jaywgJGRpcmVjdGlvbjogZGVmYXVsdCkge1xuICAkdGFibGU6IGlmKGJlbG9uZ3MtdG8odGFibGUsICRxdWVyeSksIHRydWUsIGZhbHNlKTtcbiAgJGF1dG86IGlmKGJlbG9uZ3MtdG8oYXV0bywgJHF1ZXJ5KSwgdHJ1ZSwgZmFsc2UpO1xuXG4gIEBpZiAkZGlyZWN0aW9uICE9IGRlZmF1bHQge1xuICAgIEB3YXJuIFwiVGhlIG9tZWdhIG1peGluIHdpbGwgbm8gbG9uZ2VyIHRha2UgYSAkZGlyZWN0aW9uIGFyZ3VtZW50LiBUbyBjaGFuZ2UgdGhlIGxheW91dCBkaXJlY3Rpb24sIHVzZSByb3coJGRpcmVjdGlvbikgb3Igc2V0ICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24gaW5zdGVhZC5cIlxuICB9IEBlbHNlIHtcbiAgICAkZGlyZWN0aW9uOiBnZXQtZGlyZWN0aW9uKCRsYXlvdXQtZGlyZWN0aW9uLCAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uKTtcbiAgfVxuXG4gIEBpZiAkdGFibGUge1xuICAgIEB3YXJuIFwiVGhlIG9tZWdhIG1peGluIG5vIGxvbmdlciByZW1vdmVzIHBhZGRpbmcgaW4gdGFibGUgbGF5b3V0cy5cIlxuICB9XG5cbiAgQGlmIGxlbmd0aCgkcXVlcnkpID09IDEge1xuICAgIEBpZiAkYXV0byB7XG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSBpZiBjb250YWlucy1kaXNwbGF5LXZhbHVlKCRxdWVyeSkgYW5kICR0YWJsZSA9PSBmYWxzZSB7XG4gICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBudGgtY2hpbGQoJHF1ZXJ5LCAkZGlyZWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAyIHtcbiAgICBAaWYgJGF1dG8ge1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgbnRoLWNoaWxkKG50aCgkcXVlcnksIDEpLCAkZGlyZWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCJUb28gbWFueSBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBvbWVnYSgpIG1peGluLlwiXG4gIH1cbn1cblxuQG1peGluIG50aC1jaGlsZCgkcXVlcnksICRkaXJlY3Rpb24pIHtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKTtcblxuICAmOm50aC1jaGlsZCgjeyRxdWVyeX0pIHtcbiAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRxdWVyeSkgPT0gbnVtYmVyIHtcbiAgICAmOm50aC1jaGlsZCgjeyRxdWVyeX0rMSkge1xuICAgICAgY2xlYXI6ICRvcHBvc2l0ZS1kaXJlY3Rpb247XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gb3V0ZXItY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgbWFyZ2luOiB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxufVxuIiwiQG1peGluIHNwYW4tY29sdW1ucygkc3BhbjogJGNvbHVtbnMgb2YgJGNvbnRhaW5lci1jb2x1bW5zLCAkZGlzcGxheTogYmxvY2spIHtcbiAgJGNvbHVtbnM6IG50aCgkc3BhbiwgMSk7XG4gICRjb250YWluZXItY29sdW1uczogY29udGFpbmVyLXNwYW4oJHNwYW4pO1xuXG4gIC8vIFNldCBuZXN0aW5nIGNvbnRleHQgKHVzZWQgYnkgc2hpZnQoKSlcbiAgJHBhcmVudC1jb2x1bW5zOiBnZXQtcGFyZW50LWNvbHVtbnMoJGNvbnRhaW5lci1jb2x1bW5zKTtcblxuICAkZGlyZWN0aW9uOiBnZXQtZGlyZWN0aW9uKCRsYXlvdXQtZGlyZWN0aW9uLCAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uKTtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKTtcblxuICAkZGlzcGxheS10YWJsZTogaXMtZGlzcGxheS10YWJsZSgkY29udGFpbmVyLWRpc3BsYXktdGFibGUsICRkaXNwbGF5KTtcblxuICBAaWYgJGRpc3BsYXktdGFibGUgIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHdpZHRoOiBwZXJjZW50YWdlKCRjb2x1bW5zIC8gJGNvbnRhaW5lci1jb2x1bW5zKTtcbiAgfSBAZWxzZSB7XG4gICAgZmxvYXQ6ICN7JG9wcG9zaXRlLWRpcmVjdGlvbn07XG5cbiAgICBAaWYgJGRpc3BsYXkgIT0gbm8tZGlzcGxheSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBAaWYgJGRpc3BsYXkgPT0gY29sbGFwc2Uge1xuICAgICAgQHdhcm4gXCJUaGUgJ2NvbGxhcHNlJyBhcmd1bWVudCB3aWxsIGJlIGRlcHJlY2F0ZWQuIFVzZSAnYmxvY2stY29sbGFwc2UnIGluc3RlYWQuXCJcbiAgICB9XG5cbiAgICBAaWYgJGRpc3BsYXkgPT0gY29sbGFwc2Ugb3IgJGRpc3BsYXkgPT0gYmxvY2stY29sbGFwc2Uge1xuICAgICAgd2lkdGg6IGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zKSArIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1ucyk7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIHdpZHRoOiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1ucyk7XG4gICAgICB9XG5cbiAgICB9IEBlbHNlIHtcbiAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnMpO1xuICAgICAgd2lkdGg6IGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zKTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gcm93KCRkaXNwbGF5OiBibG9jaywgJGRpcmVjdGlvbjogJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbikge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgJGxheW91dC1kaXJlY3Rpb246ICRkaXJlY3Rpb247XG5cbiAgQGlmICRkaXNwbGF5ID09IHRhYmxlIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBAaW5jbHVkZSBmaWxsLXBhcmVudDtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgICRjb250YWluZXItZGlzcGxheS10YWJsZTogdHJ1ZTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICAkY29udGFpbmVyLWRpc3BsYXktdGFibGU6IGZhbHNlO1xuICB9XG59XG5cbiIsIkBtaXhpbiBzaGlmdCgkbi1jb2x1bW5zOiAxKSB7XG4gIEBpbmNsdWRlIHNoaWZ0LWluLWNvbnRleHQoJG4tY29sdW1ucyk7XG59XG5cbkBtaXhpbiBzaGlmdC1pbi1jb250ZXh0KCRzaGlmdDogJGNvbHVtbnMgb2YgJGNvbnRhaW5lci1jb2x1bW5zKSB7XG4gICRuLWNvbHVtbnM6IG50aCgkc2hpZnQsIDEpO1xuICAkcGFyZW50LWNvbHVtbnM6IGNvbnRhaW5lci1zaGlmdCgkc2hpZnQpO1xuXG4gICRkaXJlY3Rpb246IGdldC1kaXJlY3Rpb24oJGxheW91dC1kaXJlY3Rpb24sICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24pO1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiBnZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRkaXJlY3Rpb24pO1xuXG4gIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkbi1jb2x1bW5zICogZmxleC1ncmlkKDEsICRwYXJlbnQtY29sdW1ucykgKyAkbi1jb2x1bW5zICogZmxleC1ndXR0ZXIoJHBhcmVudC1jb2x1bW5zKTtcblxuICAvLyBSZXNldCBuZXN0aW5nIGNvbnRleHRcbiAgJHBhcmVudC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xufVxuIiwiQG1peGluIHBhZCgkcGFkZGluZzogZmxleC1ndXR0ZXIoKSkge1xuICAkcGFkZGluZy1saXN0OiBudWxsO1xuICBAZWFjaCAkdmFsdWUgaW4gJHBhZGRpbmcge1xuICAgICR2YWx1ZTogaWYoJHZhbHVlID09ICdkZWZhdWx0JywgZmxleC1ndXR0ZXIoKSwgJHZhbHVlKTtcbiAgICAkcGFkZGluZy1saXN0OiBqb2luKCRwYWRkaW5nLWxpc3QsICR2YWx1ZSk7XG4gIH1cbiAgcGFkZGluZzogJHBhZGRpbmctbGlzdDtcbn1cbiIsIkBtaXhpbiBmaWxsLXBhcmVudCgpIHtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQGlmICRib3JkZXItYm94LXNpemluZyA9PSBmYWxzZSB7XG4gICAgQGluY2x1ZGUgYm94LXNpemluZyhib3JkZXItYm94KTtcbiAgfVxufVxuIiwiQG1peGluIG1lZGlhKCRxdWVyeTokZmVhdHVyZSAkdmFsdWUgJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoJGRlZmF1bHQtZmVhdHVyZTogbnRoKCRxdWVyeSwgMSkpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9XG5cbiAgQGVsc2Uge1xuICAgICRsb29wVG86IGxlbmd0aCgkcXVlcnkpO1xuICAgICRtZWRpYVF1ZXJ5OiAnc2NyZWVuIGFuZCAnO1xuICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucztcblxuICAgIEBpZiBsZW5ndGgoJHF1ZXJ5KSAlIDIgIT0gMCB7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiBudGgoJHF1ZXJ5LCAkbG9vcFRvKTtcbiAgICAgICRsb29wVG86ICRsb29wVG8gLSAxO1xuICAgIH1cblxuICAgICRpOiAxO1xuICAgIEB3aGlsZSAkaSA8PSAkbG9vcFRvIHtcbiAgICAgICRtZWRpYVF1ZXJ5OiAkbWVkaWFRdWVyeSArICcoJyArIG50aCgkcXVlcnksICRpKSArICc6ICcgKyBudGgoJHF1ZXJ5LCAkaSArIDEpICsgJykgJztcblxuICAgICAgQGlmICgkaSArIDEpICE9ICRsb29wVG8ge1xuICAgICAgICAkbWVkaWFRdWVyeTogJG1lZGlhUXVlcnkgKyAnYW5kICc7XG4gICAgICB9XG5cbiAgICAgICRpOiAkaSArIDI7XG4gICAgfVxuXG4gICAgQG1lZGlhICN7JG1lZGlhUXVlcnl9IHtcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIGJyZWFrcG9pbnQoJHF1ZXJ5OiRmZWF0dXJlICR2YWx1ZSAkY29sdW1ucywgJHRvdGFsLWNvbHVtbnM6ICRncmlkLWNvbHVtbnMpIHtcbiAgQHdhcm4gXCJUaGUgYnJlYWtwb2ludCgpIG1peGluIHdhcyByZW5hbWVkIHRvIG1lZGlhKCkgaW4gTmVhdCAxLjAuIFBsZWFzZSB1cGRhdGUgeW91ciBwcm9qZWN0IHdpdGggdGhlIG5ldyBzeW50YXggYmVmb3JlIHRoZSBuZXh0IHZlcnNpb24gYnVtcC5cIjtcblxuICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKCRkZWZhdWx0LWZlYXR1cmU6IG50aCgkcXVlcnksIDEpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucztcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfVxuXG4gIEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDIge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChudGgoJHF1ZXJ5LCAxKTogbnRoKCRxdWVyeSwgMikpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9XG5cbiAgQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMyB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogbnRoKCRxdWVyeSwgMyk7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSA0IHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobnRoKCRxdWVyeSwgMSk6IG50aCgkcXVlcnksIDIpKSBhbmQgKG50aCgkcXVlcnksIDMpOiBudGgoJHF1ZXJ5LCA0KSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnM7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSA1IHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobnRoKCRxdWVyeSwgMSk6IG50aCgkcXVlcnksIDIpKSBhbmQgKG50aCgkcXVlcnksIDMpOiBudGgoJHF1ZXJ5LCA0KSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogbnRoKCRxdWVyeSwgNSk7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH1cblxuICBAZWxzZSB7XG4gICAgQHdhcm4gXCJXcm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIGZvciBicmVha3BvaW50KCkuIFJlYWQgdGhlIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscy5cIjtcbiAgfVxufVxuXG5AbWl4aW4gbnRoLW9tZWdhKCRudGgsICRkaXNwbGF5OiBibG9jaywgJGRpcmVjdGlvbjogZGVmYXVsdCkge1xuICBAd2FybiBcIlRoZSBudGgtb21lZ2EoKSBtaXhpbiBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIG9tZWdhKCkgaW5zdGVhZC5cIjtcbiAgQGluY2x1ZGUgb21lZ2EoJG50aCAkZGlzcGxheSwgJGRpcmVjdGlvbik7XG59XG4iLCJAbWl4aW4gZ3JpZC1jb2x1bW4tZ3JhZGllbnQoJHZhbHVlcy4uLikge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBkZXByZWNhdGVkLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgJHZhbHVlcyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6ICAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAkdmFsdWVzKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogICAgIC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsICR2YWx1ZXMpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAgICAgIC1tcy1saW5lYXItZ3JhZGllbnQobGVmdCwgJHZhbHVlcyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgIC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCAkdmFsdWVzKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcImxpbmVhci1ncmFkaWVudChsZWZ0LCAjeyR2YWx1ZXN9KVwiKTtcbn1cblxuQGlmICR2aXN1YWwtZ3JpZCA9PSB0cnVlIG9yICR2aXN1YWwtZ3JpZCA9PSB5ZXMge1xuICBib2R5OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLWdyYWRpZW50KGdyYWRpZW50LXN0b3BzKCRncmlkLWNvbHVtbnMpKTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4gICAgb3BhY2l0eTogJHZpc3VhbC1ncmlkLW9wYWNpdHk7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgQGlmICR2aXN1YWwtZ3JpZC1pbmRleCA9PSBiYWNrIHtcbiAgICAgIHotaW5kZXg6IC0xO1xuICAgIH1cblxuICAgIEBlbHNlIGlmICR2aXN1YWwtZ3JpZC1pbmRleCA9PSBmcm9udCB7XG4gICAgICB6LWluZGV4OiA5OTk5O1xuICAgIH1cblxuICAgIEBlYWNoICRicmVha3BvaW50IGluICR2aXN1YWwtZ3JpZC1icmVha3BvaW50cyB7XG4gICAgICBAaWYgJGJyZWFrcG9pbnQgIT0gbmlsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQpIHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ncmFkaWVudChncmFkaWVudC1zdG9wcygkZ3JpZC1jb2x1bW5zKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIENoZWNrcyBpZiBhIG51bWJlciBpcyBldmVuXG5AZnVuY3Rpb24gaXMtZXZlbigkaW50KSB7XG4gIEBpZiAkaW50JTIgPT0gMCAgIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG4vLyBDaGVja3MgaWYgYW4gZWxlbWVudCBiZWxvbmdzIHRvIGEgbGlzdFxuQGZ1bmN0aW9uIGJlbG9uZ3MtdG8oJHRlc3RlZC1pdGVtLCAkbGlzdCkge1xuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgQGlmICRpdGVtID09ICR0ZXN0ZWQtaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cblxuLy8gQ29udGFpbnMgZGlzcGxheSB2YWx1ZVxuQGZ1bmN0aW9uIGNvbnRhaW5zLWRpc3BsYXktdmFsdWUoJHF1ZXJ5KSB7XG4gIEBpZiBiZWxvbmdzLXRvKHRhYmxlLCAkcXVlcnkpIG9yIGJlbG9uZ3MtdG8oYmxvY2ssICRxdWVyeSkgb3IgYmVsb25ncy10byhpbmxpbmUtYmxvY2ssICRxdWVyeSkgb3IgYmVsb25ncy10byhpbmxpbmUsICRxdWVyeSkge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIEByZXR1cm4gZmFsc2U7XG59XG5cbi8vIFBhcnNlcyB0aGUgZmlyc3QgYXJndW1lbnQgb2Ygc3Bhbi1jb2x1bW5zKClcbkBmdW5jdGlvbiBjb250YWluZXItc3Bhbigkc3BhbjogJHNwYW4pIHtcbiAgQGlmIGxlbmd0aCgkc3BhbikgPT0gMyB7XG4gICAgJGNvbnRhaW5lci1jb2x1bW5zOiBudGgoJHNwYW4sIDMpO1xuICAgIEByZXR1cm4gJGNvbnRhaW5lci1jb2x1bW5zO1xuICB9XG5cbiAgQGVsc2UgaWYgbGVuZ3RoKCRzcGFuKSA9PSAyIHtcbiAgICAkY29udGFpbmVyLWNvbHVtbnM6IG50aCgkc3BhbiwgMik7XG4gICAgQHJldHVybiAkY29udGFpbmVyLWNvbHVtbnM7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkZ3JpZC1jb2x1bW5zO1xuICB9XG59XG5cbkBmdW5jdGlvbiBjb250YWluZXItc2hpZnQoJHNoaWZ0OiAkc2hpZnQpIHtcbiAgJHBhcmVudC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zICFkZWZhdWx0O1xuXG4gIEBpZiBsZW5ndGgoJHNoaWZ0KSA9PSAzIHtcbiAgICAkY29udGFpbmVyLWNvbHVtbnM6IG50aCgkc2hpZnQsIDMpO1xuICAgIEByZXR1cm4gJGNvbnRhaW5lci1jb2x1bW5zO1xuICB9XG5cbiAgQGVsc2UgaWYgbGVuZ3RoKCRzaGlmdCkgPT0gMiB7XG4gICAgJGNvbnRhaW5lci1jb2x1bW5zOiBudGgoJHNoaWZ0LCAyKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICRwYXJlbnQtY29sdW1ucztcbiAgfVxufVxuXG4vLyBHZW5lcmF0ZXMgYSBzdHJpcGVkIGJhY2tncm91bmRcbkBmdW5jdGlvbiBncmFkaWVudC1zdG9wcygkZ3JpZC1jb2x1bW5zLCAkY29sb3I6ICR2aXN1YWwtZ3JpZC1jb2xvcikge1xuICAkdHJhbnNwYXJlbnQ6IHJnYmEoMCwwLDAsMCk7XG5cbiAgJGNvbHVtbi13aWR0aDogZmxleC1ncmlkKDEsICRncmlkLWNvbHVtbnMpO1xuICAkZ3V0dGVyLXdpZHRoOiBmbGV4LWd1dHRlcigkZ3JpZC1jb2x1bW5zKTtcbiAgJGNvbHVtbi1vZmZzZXQ6ICRjb2x1bW4td2lkdGg7XG5cbiAgJHZhbHVlczogKCR0cmFuc3BhcmVudCAwLCAkY29sb3IgMCk7XG5cbiAgQGZvciAkaSBmcm9tIDEgdG8gJGdyaWQtY29sdW1ucyoyIHtcbiAgICBAaWYgaXMtZXZlbigkaSkge1xuICAgICAgJHZhbHVlczogYXBwZW5kKCR2YWx1ZXMsICR0cmFuc3BhcmVudCAkY29sdW1uLW9mZnNldCwgY29tbWEpO1xuICAgICAgJHZhbHVlczogYXBwZW5kKCR2YWx1ZXMsICRjb2xvciAkY29sdW1uLW9mZnNldCwgY29tbWEpO1xuICAgICAgJGNvbHVtbi1vZmZzZXQ6ICRjb2x1bW4tb2Zmc2V0ICsgJGNvbHVtbi13aWR0aDtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkdmFsdWVzOiBhcHBlbmQoJHZhbHVlcywgJGNvbG9yICRjb2x1bW4tb2Zmc2V0LCBjb21tYSk7XG4gICAgICAkdmFsdWVzOiBhcHBlbmQoJHZhbHVlcywgJHRyYW5zcGFyZW50ICRjb2x1bW4tb2Zmc2V0LCBjb21tYSk7XG4gICAgICAkY29sdW1uLW9mZnNldDogJGNvbHVtbi1vZmZzZXQgKyAkZ3V0dGVyLXdpZHRoO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlcztcbn1cblxuLy8gTGF5b3V0IGRpcmVjdGlvblxuQGZ1bmN0aW9uIGdldC1kaXJlY3Rpb24oJGxheW91dCwgJGRlZmF1bHQpIHtcbiAgJGRpcmVjdGlvbjogbmlsO1xuICBcbiAgQGlmICRsYXlvdXQgPT0gTFRSIG9yICRsYXlvdXQgPT0gUlRMIHtcbiAgICAkZGlyZWN0aW9uOiBkaXJlY3Rpb24tZnJvbS1sYXlvdXQoJGxheW91dCk7XG4gIH0gQGVsc2Uge1xuICAgICRkaXJlY3Rpb246IGRpcmVjdGlvbi1mcm9tLWxheW91dCgkZGVmYXVsdCk7XG4gIH1cblxuICBAcmV0dXJuICRkaXJlY3Rpb247XG59XG5cbkBmdW5jdGlvbiBkaXJlY3Rpb24tZnJvbS1sYXlvdXQoJGxheW91dCkge1xuICAkZGlyZWN0aW9uOiBuaWw7XG5cbiAgQGlmICRsYXlvdXQgPT0gTFRSIHtcbiAgICAkZGlyZWN0aW9uOiByaWdodDtcbiAgfSBAZWxzZSB7XG4gICAgJGRpcmVjdGlvbjogbGVmdDtcbiAgfVxuXG4gIEByZXR1cm4gJGRpcmVjdGlvbjtcbn1cblxuQGZ1bmN0aW9uIGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbikge1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiBsZWZ0O1xuXG4gIEBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xuICAgICRvcHBvc2l0ZS1kaXJlY3Rpb246IHJpZ2h0O1xuICB9XG5cbiAgQHJldHVybiAkb3Bwb3NpdGUtZGlyZWN0aW9uO1xufVxuIiwiQGZ1bmN0aW9uIG5ldy1icmVha3BvaW50KCRxdWVyeTokZmVhdHVyZSAkdmFsdWUgJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG5cbiAgQGlmIGxlbmd0aCgkcXVlcnkpID09IDEge1xuICAgICRxdWVyeTogJGRlZmF1bHQtZmVhdHVyZSBudGgoJHF1ZXJ5LCAxKSAkdG90YWwtY29sdW1ucztcbiAgfVxuXG4gIEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpICUgMiA9PSAwIHtcbiAgICAkcXVlcnk6IGFwcGVuZCgkcXVlcnksICR0b3RhbC1jb2x1bW5zKTtcbiAgfVxuXG4gIEBpZiBub3QgYmVsb25ncy10bygkcXVlcnksICR2aXN1YWwtZ3JpZC1icmVha3BvaW50cykge1xuICAgICR2aXN1YWwtZ3JpZC1icmVha3BvaW50czogYXBwZW5kKCR2aXN1YWwtZ3JpZC1icmVha3BvaW50cywgJHF1ZXJ5LCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRxdWVyeTtcbn1cbiIsIiRjb2x1bW46IGdvbGRlbi1yYXRpbygxZW0sIDMpICFkZWZhdWx0OyAvLyBDb2x1bW4gd2lkdGhcbiRndXR0ZXI6IGdvbGRlbi1yYXRpbygxZW0sIDEpICFkZWZhdWx0OyAvLyBHdXR0ZXIgYmV0d2VlbiBlYWNoIHR3byBjb2x1bW5zXG4kZ3JpZC1jb2x1bW5zOiAxMiAhZGVmYXVsdDsgLy8gVG90YWwgbnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIGdyaWRcbiRtYXgtd2lkdGg6IGVtKDEwODgpICFkZWZhdWx0OyAvLyBNYXgtd2lkdGggb2YgdGhlIG91dGVyIGNvbnRhaW5lclxuJGJvcmRlci1ib3gtc2l6aW5nOiB0cnVlICFkZWZhdWx0OyAvLyBNYWtlcyBhbGwgZWxlbWVudHMgaGF2ZSBhIGJvcmRlci1ib3ggbGF5b3V0XG4kZGVmYXVsdC1mZWF0dXJlOiBtaW4td2lkdGg7IC8vIERlZmF1bHQgQG1lZGlhIGZlYXR1cmUgZm9yIHRoZSBicmVha3BvaW50KCkgbWl4aW5cbiRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb246IExUUiAhZGVmYXVsdDtcbiIsIiR2aXN1YWwtZ3JpZDogZmFsc2UgIWRlZmF1bHQ7IC8vIERpc3BsYXkgdGhlIGJhc2UgZ3JpZFxuJHZpc3VhbC1ncmlkLWNvbG9yOiAjRUVFICFkZWZhdWx0O1xuJHZpc3VhbC1ncmlkLWluZGV4OiBiYWNrICFkZWZhdWx0OyAvLyBTaG93IGdyaWQgYmVoaW5kIGNvbnRlbnQgKGJhY2spIG9yIG92ZXJsYXkgaXQgb3ZlciB0aGUgY29udGVudCAoZnJvbnQpXG4kdmlzdWFsLWdyaWQtb3BhY2l0eTogMC40ICFkZWZhdWx0O1xuJHZpc3VhbC1ncmlkLWJyZWFrcG9pbnRzOiAoKSAhZGVmYXVsdDtcbiJdfQ==*/
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY3NzIiwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXMiOlsic3R5bGUuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gR2xvYmFsIFN0eWxlc2hlZXQgKEluY2x1ZGVzIG1lZGlhIHF1ZXJpZXMpXG4vLyBTdHlsZXMgdGhhdCB1c2VzIG1lZGlhIHF1ZXJpZXMgZm9yIG1vZGVybiBicm93c2VyIHN1cHBvcnRcbi8vIChjKSBBdGxhbnRpYyBCVC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIEltcG9ydCBDb25maWd1cmF0aW9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkBpbXBvcnQgXCJ1dGlsaXRpZXMvaW1wb3J0c1wiOyJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */