/*--------------------------------------------------------------
## Site vars
--------------------------------------------------------------*/
/*--------------------------------------------------------------
## Include Media
--------------------------------------------------------------*/
/*--------------------------------------------------------------
## Links
--------------------------------------------------------------*/
/*--------------------------------------------------------------
## Menus
--------------------------------------------------------------*/
/*!
 * Hamburgers
 * @description Tasty CSS-animated hamburgers
 * @author Jonathan Suh @jonsuh
 * @site https://jonsuh.com/hamburgers
 * @link https://github.com/jonsuh/hamburgers
 */
button.hamburger {
  padding: 1px 5px;
  display: inline-block;
  cursor: pointer;
  -webkit-transition-property: opacity, -webkit-filter;
  transition-property: opacity, -webkit-filter;
  transition-property: opacity, filter;
  transition-property: opacity, filter, -webkit-filter;
  -webkit-transition-duration: 0.15s;
          transition-duration: 0.15s;
  -webkit-transition-timing-function: linear;
          transition-timing-function: linear;
  font: inherit;
  color: inherit;
  text-transform: none;
  background-color: transparent;
  border: 2px solid #adadad;
  margin: 0;
  overflow: visible;
  border-radius: 3px;
}

button.hamburger:hover, button.hamburger:focus {
  opacity: 1;
  background-color: transparent;
}

button.hamburger:hover:hover, button.hamburger:hover.is-active, button.hamburger:focus:hover, button.hamburger:focus.is-active {
  background-color: transparent;
}

button.hamburger:hover .hamburger-inner, button.hamburger:hover .hamburger-inner::before, button.hamburger:hover .hamburger-inner::after, button.hamburger:focus .hamburger-inner, button.hamburger:focus .hamburger-inner::before, button.hamburger:focus .hamburger-inner::after {
  background-color: #adadad;
}

button.hamburger.is-active .hamburger-inner::before, button.hamburger.is-active .hamburger-inner::after {
  background-color: #adadad;
}

.hamburger-box {
  width: 30px;
  height: 14px;
  display: inline-block;
  position: relative;
  top: 2px;
}

.hamburger-inner {
  display: block;
  top: 50%;
  margin-top: -1px;
}

.hamburger-inner, .hamburger-inner::before, .hamburger-inner::after {
  width: 30px;
  height: 2px;
  background-color: #adadad;
  border-radius: 3px;
  position: absolute;
  -webkit-transition-property: -webkit-transform;
  transition-property: -webkit-transform;
  transition-property: transform;
  transition-property: transform, -webkit-transform;
  -webkit-transition-duration: 0.15s;
          transition-duration: 0.15s;
  -webkit-transition-timing-function: ease;
          transition-timing-function: ease;
}

.hamburger-inner::before, .hamburger-inner::after {
  content: "";
  display: block;
}

.hamburger-inner::before {
  top: -6px;
}

.hamburger-inner::after {
  bottom: -6px;
}

/*
   * Collapse
   */
.hamburger--collapse .hamburger-inner {
  top: auto;
  bottom: 0;
  -webkit-transition-duration: 0.15s;
          transition-duration: 0.15s;
  -webkit-transition-delay: 0.15s;
          transition-delay: 0.15s;
  -webkit-transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
          transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

.hamburger--collapse .hamburger-inner::after {
  top: -12px;
  -webkit-transition: top 0.3s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear;
  transition: top 0.3s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear;
}

.hamburger--collapse .hamburger-inner::before {
  -webkit-transition: top 0.12s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  transition: top 0.12s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1), -webkit-transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  transition: top 0.12s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
  transition: top 0.12s 0.3s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19), -webkit-transform 0.15s cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

.hamburger--collapse.is-active .hamburger-inner {
  -webkit-transform: translate3d(0, -6px, 0) rotate(-45deg);
          transform: translate3d(0, -6px, 0) rotate(-45deg);
  -webkit-transition-delay: 0.32s;
          transition-delay: 0.32s;
  -webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
          transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
}

.hamburger--collapse.is-active .hamburger-inner::after {
  top: 0;
  opacity: 0;
  -webkit-transition: top 0.3s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.27s linear;
  transition: top 0.3s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.27s linear;
}

.hamburger--collapse.is-active .hamburger-inner::before {
  top: 0;
  -webkit-transform: rotate(-90deg);
          transform: rotate(-90deg);
  -webkit-transition: top 0.12s 0.18s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.15s 0.42s cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: top 0.12s 0.18s cubic-bezier(0.33333, 0, 0.66667, 0.33333), -webkit-transform 0.15s 0.42s cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: top 0.12s 0.18s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.15s 0.42s cubic-bezier(0.215, 0.61, 0.355, 1);
  transition: top 0.12s 0.18s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.15s 0.42s cubic-bezier(0.215, 0.61, 0.355, 1), -webkit-transform 0.15s 0.42s cubic-bezier(0.215, 0.61, 0.355, 1);
}

.main-navigation {
  display: block;
  -webkit-transition: .5s linear all;
  transition: .5s linear all;
}

@media (max-width: 768px) {
  .main-navigation {
    text-align: right;
  }
}

.main-navigation button {
  border: none;
  line-height: 2;
}

.main-navigation ul {
  list-style: none;
  margin: 0;
  padding-left: 0;
}

.main-navigation ul ul {
  position: absolute;
  z-index: 99999;
  background-color: #FFF;
  min-width: 200px;
}

@media (max-width: 768px) {
  .main-navigation ul ul {
    position: relative;
    float: none;
    left: auto;
    top: auto;
  }
}

@media (max-width: 768px) {
  .main-navigation ul ul ul {
    left: initial;
  }
}

.main-navigation li {
  position: relative;
  text-align: left;
  display: inline-block;
  vertical-align: top;
}

@media (max-width: 768px) {
  .main-navigation li {
    width: 100%;
  }
}

@media (max-width: 768px) {
  .main-navigation li > a {
    width: calc(100% - 40px);
  }
}

.main-navigation a {
  display: inline-block;
  vertical-align: middle;
  text-decoration: none;
  padding: 5px;
}

.main-navigation .sub-menu {
  width: 200px;
}

@media (max-width: 768px) {
  .main-navigation .sub-menu {
    width: 100%;
  }
}

.main-navigation .sub-menu li {
  width: 100%;
}

.main-navigation ul.sub-menu,
.main-navigation ul.children {
  display: none;
}

.main-navigation ul.sub-menu.toggled-on,
.main-navigation ul.children.toggled-on {
  display: block;
}

.main-navigation .dropdown-toggle {
  background-color: transparent;
  width: 100%;
  padding: 0;
  text-align: left;
}

.main-navigation .dropdown-toggle a {
  padding: 10px;
}

.site-main .comment-navigation, .site-main
.posts-navigation, .site-main
.post-navigation {
  margin: 0 0 1.5em;
  overflow: hidden;
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
  float: left;
  width: 50%;
}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
  float: right;
  text-align: right;
  width: 50%;
}

@media (min-width: 769px) {
  #mobile-menu {
    display: none;
  }
  .main-navigation ul {
    display: block;
  }
}

.menu-open {
  height: 100%;
  overflow: hidden;
  position: fixed;
}

button#mobile-menu {
  position: relative;
  z-index: 101;
  margin: 25px 0;
  float: left;
  clear: left;
  border: 2px solid #adadad;
}

.toggled {
  -webkit-transition: .5s linear all;
  transition: .5s linear all;
}

#access {
  float: none;
  left: 15px;
  width: calc(100% - 30px);
}

@media (max-width: 768px) {
  #access {
    width: 100%;
    left: 0;
  }
}

@media (max-width: 768px) {
  #top-menu {
    height: auto;
    float: none;
  }
  #branding a.logo img {
    width: 300px;
    margin: 20px 0 10px;
  }
  a.logo {
    float: none;
    height: auto;
    display: block;
    margin: 0;
    width: 300px;
  }
  .menu-top-container {
    float: none;
    position: relative;
    left: auto;
    right: auto;
    margin: 0 auto;
  }
  .menu-top-container ul {
    margin: 0;
    padding: 0;
  }
  #branding #searchform {
    position: relative;
    margin: -15px 0 20px;
    float: right;
  }
  /*    Menu*/
  .menu-wrapper {
    position: fixed;
    top: 0;
    left: 0;
    width: 250px;
    height: 100vh;
    -webkit-transition: .5s ease all;
    transition: .5s ease all;
    -webkit-transform: translate(-250px, 0);
            transform: translate(-250px, 0);
    z-index: 100;
    background-color: #FFF;
    text-align: center;
    overflow: auto;
  }
  #access div {
    margin: 0;
  }
  #access {
    float: none;
    position: relative;
    height: auto;
    background: none;
    top: 0;
  }
  #access ul ul {
    width: 100%;
    border: none;
    box-shadow: none;
    background-color: #d2d2d2;
  }
  #access ul ul li {
    width: 100%;
    border: none;
  }
  #access ul ul ul {
    display: none;
  }
  #access ul li:hover > ul {
    display: none;
  }
  #access ul li > ul.toggled-on {
    display: block;
    position: relative;
    float: none;
    top: auto;
    left: auto;
    height: auto;
  }
  #access li {
    float: none;
    position: relative;
    background: url(images/navSep.gif) no-repeat left top;
    height: auto;
    display: block;
    margin: 0;
    cursor: pointer;
  }
  #menu-main li a span.sub {
    width: 80%;
    display: inline-block;
    margin: 5px 10px 5px 0;
  }
  #menu-main li a span.sub {
    position: relative;
  }
  .main-navigation .dropdown-toggle {
    margin: 0;
  }
  #access #menu-main > li:hover,
  #access #menu-main > li:focus {
    border: none;
    background-color: #f3f3f3;
  }
  .dropdown-toggle.toggled-on {
    background-color: #f9f9f9;
  }
  #access ul#menu-main ul ul.sub-menu > li.menu-item-has-children > button {
    /*        background: none;*/
  }
  #access ul ul a {
    border-top: 1px solid #717171;
    background-color: #e2e2e2;
  }
  body #access li.current-menu-item a {
    font-weight: bold !important;
  }
  #access ul ul ul ul {
    background-color: #bfbfbf;
  }
  #access ul ul li li {
    background: none;
  }
  #access ul ul li {
    background: none;
  }
  #access ul#menu-main ul.sub-menu li ul.sub-menu > li a, #access ul#menu-main ul.sub-menu li.menu-sub-style a {
    background-color: #cecece;
  }
  #access ul#menu-main ul.sub-menu li ul.sub-menu > li.menu-item-has-children > button a {
    background-color: #e2e2e2;
    text-transform: uppercase;
    font-weight: bold;
  }
  #access ul#menu-main ul.sub-menu li ul.sub-menu > li ul.sub-menu li a {
    background: #FFF;
  }
  div#main:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: transparent;
    visibility: hidden;
    -webkit-transition: .3s linear all;
    transition: .3s linear all;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
    -webkit-perspective: 1000;
            perspective: 1000;
  }
  .push div#main:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    -webkit-transition: .3s linear all;
    transition: .3s linear all;
    z-index: 100;
    visibility: visible;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
    -webkit-perspective: 1000;
            perspective: 1000;
  }
  .arrow-down {
    border: 1px solid #adadad;
    border-width: 0 0 1px 1px;
    width: 10px;
    height: 10px;
    margin: 5px;
    display: inline-block;
    -webkit-transform: rotate(-135deg);
            transform: rotate(-135deg);
    position: absolute;
    right: 20px;
    text-align: 0;
    top: 13px;
  }
  .toggled-on > a .arrow-down {
    -webkit-transform: rotate(-45deg);
            transform: rotate(-45deg);
  }
}

.toggled .menu-wrapper {
  left: 0;
  width: 250px;
  -webkit-transition: .5s ease all;
  transition: .5s ease all;
  padding: 5vh 0 15vh 0;
}

.toggled .menu-wrapper .overlay-content {
  height: 100%;
}

.site {
  position: relative;
  top: 0;
  left: 0;
  -webkit-transform: translate3d(0, 0, 0);
  -webkit-transition: .7s ease transform;
  -webkit-transform: translate(0, 0);
          transform: translate(0, 0);
  transition: .7s ease transform;
  min-height: 100vh;
}

.push {
  -webkit-transform: translate3d(0, 0, 0);
  -webkit-transform: translate(250px, 0);
  transform: translate(250px, 0);
  -webkit-transition: .5s ease transform;
  transition: .5s ease transform;
}

@media (max-width: 768px) {
  .main-navigation {
    text-align: left;
  }
  body {
    overflow-x: hidden;
  }
}

@media (max-width: 768px) {
  .menu-wrapper {
    position: fixed;
    top: 0;
    left: 0;
    width: 250px;
    height: 100vh;
    overflow: auto;
    -webkit-transition: .5s ease all;
    transition: .5s ease all;
    -webkit-transform: translate(-250px, 0);
            transform: translate(-250px, 0);
    z-index: 100;
    background-color: #FFF;
    text-align: center;
    padding: 5vh 0 15vh 0;
  }
}

.toggled .menu-wrapper {
  left: 0;
  width: 250px;
  -webkit-transition: .5s ease all;
  transition: .5s ease all;
}

.toggled .menu-wrapper .overlay-content {
  height: 100%;
}

@media (max-width: 768px) {
  .nav-menu > li {
    -webkit-transform: translate3d(0, 1500px, 0);
            transform: translate3d(0, 1500px, 0);
    -webkit-transition: -webkit-transform 0s 0.4s;
    transition: -webkit-transform 0s 0.4s;
    transition: transform 0s 0.4s;
    transition: transform 0s 0.4s, -webkit-transform 0s 0.4s;
    -webkit-transition-timing-function: cubic-bezier(0.7, 0.3, 0.5, 1);
            transition-timing-function: cubic-bezier(0.7, 0.3, 0.5, 1);
  }
  .nav-menu > li.slideup {
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
    -webkit-transition: -webkit-transform 0.8s;
    transition: -webkit-transform 0.8s;
    transition: transform 0.8s;
    transition: transform 0.8s, -webkit-transform 0.8s;
    -webkit-transition-timing-function: cubic-bezier(0.7, 0.3, 0.5, 1);
            transition-timing-function: cubic-bezier(0.7, 0.3, 0.5, 1);
  }
}

.site {
  position: relative;
  top: 0;
  left: 0;
  -webkit-transition: .5s ease all;
  transition: .5s ease all;
  min-height: 100vh;
  -webkit-transform: translate(0, 0) translate3d(0, 0, 0);
          transform: translate(0, 0) translate3d(0, 0, 0);
}

.push {
  -webkit-transform: translate(250px, 0) translate3d(0, 0, 0);
          transform: translate(250px, 0) translate3d(0, 0, 0);
  -webkit-transition: .5s ease all;
  transition: .5s ease all;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLnNjc3MiLCJtb2JpbGUvX2hhbWJ1cmdlcnMuc2NzcyIsIm1vYmlsZS9fYmFzZS5zY3NzIiwidmFyaWFibGVzLXNpdGUvX2NvbG9ycy5zY3NzIiwibW9iaWxlL3R5cGVzL19jb2xsYXBzZS5zY3NzIiwiX21lbnVzLnNjc3MiLCJfaW5jbHVkZW1lZGlhLnNjc3MiLCJzdHlsZS5jc3MiLCJtZW51cy9fcHVzaHJpZ2h0LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O2dFQUVnRTtBQUdoRTs7Z0VBRWdFO0FBR2hFOztnRUFFZ0U7QUFHaEU7O2dFQUVnRTtBQ2pCaEU7Ozs7OztHQU1HO0FDSkg7RUFDSSxpQkRPNEM7RUNONUMsc0JBQXFCO0VBQ3JCLGdCQUFlO0VBQ2YscURBQW9DO0VBQXBDLDZDQUFvQztFQUFwQyxxQ0FBb0M7RUFBcEMscURBQW9DO0VBQ3BDLG1DRFc4QztVQ1g5QywyQkRXOEM7RUNWOUMsMkNEVytDO1VDWC9DLG1DRFcrQztFQ1QvQyxjQUFhO0VBQ2IsZUFBYztFQUNkLHFCQUFvQjtFQUNwQiw4QkFBNkI7RUFDN0IsMEJDUm9DO0VEU3BDLFVBQVM7RUFDVCxrQkFBaUI7RUFDakIsbUJBQWtCO0NBb0NyQjs7QUFuREQ7RUF1QlksV0RSa0M7RUNXdEMsOEJEUGdEO0NDb0JuRDs7QUF2Q0w7RUE4QlksOEJEWDRDO0NDWS9DOztBQS9CVDtFQW9DZ0IsMEJDaEN3QjtDRGlDM0I7O0FBckNiO0VBK0NnQiwwQkMzQ3dCO0NENEMzQjs7QUFLYjtFQUNJLFlENUM2QztFQzZDN0MsYUFBa0U7RUFDbEUsc0JBQXFCO0VBQ3JCLG1CQUFrQjtFQUNsQixTQUFRO0NBQ1g7O0FBRUQ7RUFDSSxlQUFjO0VBQ2QsU0FBUTtFQUNSLGlCQUF3QztDQXdCM0M7O0FBM0JEO0VBT1EsWUQxRHlDO0VDMkR6QyxZRDFEd0M7RUMyRHhDLDBCQ2xFZ0M7RURtRWhDLG1CRHpEd0M7RUMwRHhDLG1CQUFrQjtFQUNsQiwrQ0FBOEI7RUFBOUIsdUNBQThC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QXVEO0dBRzFEO0NEcWVSOztBQzlkRDtFQUNDLG1CQUFrQjtFQUNsQixPQUFLO0VBQ0wsUUFBTTtFQUNOLGlDQUF1QjtFQUF2Qix5QkFBdUI7RUFDdkIsa0JBQWlCO0VBQ2Qsd0RBQTJDO1VBQTNDLGdEQUEyQztDQUM5Qzs7QUFDRDtFQUNJLDREQUFxRDtVQUFyRCxvREFBcUQ7RUFDeEQsaUNBQXVCO0VBQXZCLHlCQUF1QjtDQUV2QiIsImZpbGUiOiJzdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIyBTaXRlIHZhcnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbkBpbXBvcnQgXCJ2YXJpYWJsZXMtc2l0ZS92YXJpYWJsZXMtc2l0ZVwiO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIyBJbmNsdWRlIE1lZGlhXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5AaW1wb3J0IFwiaW5jbHVkZW1lZGlhXCI7XG5cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiMjIExpbmtzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vL0BpbXBvcnQgXCJsaW5rc1wiO1xuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIyBNZW51c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuQGltcG9ydCBcIm1vYmlsZS9oYW1idXJnZXJzXCI7XG5AaW1wb3J0IFwibWVudXNcIjsiLCIvKiFcbiAqIEhhbWJ1cmdlcnNcbiAqIEBkZXNjcmlwdGlvbiBUYXN0eSBDU1MtYW5pbWF0ZWQgaGFtYnVyZ2Vyc1xuICogQGF1dGhvciBKb25hdGhhbiBTdWggQGpvbnN1aFxuICogQHNpdGUgaHR0cHM6Ly9qb25zdWguY29tL2hhbWJ1cmdlcnNcbiAqIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9qb25zdWgvaGFtYnVyZ2Vyc1xuICovXG5cbi8vIFNldHRpbmdzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuJGhhbWJ1cmdlci1wYWRkaW5nLXggICAgICAgICAgICAgICAgICAgICAgIDogNXB4ICFkZWZhdWx0O1xuJGhhbWJ1cmdlci1wYWRkaW5nLXkgICAgICAgICAgICAgICAgICAgICAgIDogMXB4ICFkZWZhdWx0O1xuJGhhbWJ1cmdlci1sYXllci13aWR0aCAgICAgICAgICAgICAgICAgICAgIDogMzBweCAhZGVmYXVsdDtcbiRoYW1idXJnZXItbGF5ZXItaGVpZ2h0ICAgICAgICAgICAgICAgICAgICA6IDJweCAhZGVmYXVsdDtcbiRoYW1idXJnZXItbGF5ZXItc3BhY2luZyAgICAgICAgICAgICAgICAgICA6IDRweCAhZGVmYXVsdDsgXG4kaGFtYnVyZ2VyLWxheWVyLWNvbG9yICAgICAgICAgICAgICAgICAgICAgOiAkYnJhbmQtcHJpbWFyeSAhZGVmYXVsdDtcbiRoYW1idXJnZXItbGF5ZXItYm9yZGVyLXJhZGl1cyAgICAgICAgICAgICA6IDNweCAhZGVmYXVsdDtcbiRoYW1idXJnZXItaG92ZXItb3BhY2l0eSAgICAgICAgICAgICAgICAgICA6IDEgIWRlZmF1bHQ7XG4kaGFtYnVyZ2VyLWhvdmVyLXRyYW5zaXRpb24tZHVyYXRpb24gICAgICAgOiAwLjE1cyAhZGVmYXVsdDtcbiRoYW1idXJnZXItaG92ZXItdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhciAhZGVmYXVsdDtcbiRoYW1idXJnZXItaG92ZXItY29sb3VyICAgICAgICAgICAgICAgICAgICA6ICRicmFuZC1wcmltYXJ5O1xuJGhhbWJ1cmdlci1ib3gtaG92ZXItY29sb3IgICAgICAgICAgICAgICAgIDogdHJhbnNwYXJlbnQ7XG5cbi8vIFRvIHVzZSBDU1MgZmlsdGVycyBhcyB0aGUgaG92ZXIgZWZmZWN0IGluc3RlYWQgb2Ygb3BhY2l0eSxcbi8vIHNldCAkaGFtYnVyZ2VyLWhvdmVyLXVzZS1maWx0ZXIgYXMgdHJ1ZSBhbmRcbi8vIGNoYW5nZSB0aGUgdmFsdWUgb2YgJGhhbWJ1cmdlci1ob3Zlci1maWx0ZXIgYWNjb3JkaW5nbHkuXG4kaGFtYnVyZ2VyLWhvdmVyLXVzZS1maWx0ZXIgICAgICAgICAgICAgICAgOiBmYWxzZSAhZGVmYXVsdDtcbiRoYW1idXJnZXItaG92ZXItZmlsdGVyICAgICAgICAgICAgICAgICAgICA6IG9wYWNpdHkoNTAlKSAhZGVmYXVsdDtcbiBcbi8vIFR5cGVzIChSZW1vdmUgb3IgY29tbWVudCBvdXQgd2hhdCB5b3UgZG9u4oCZdCBuZWVkKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiRoYW1idXJnZXItdHlwZXM6IChcbi8vICAzZHgsXG4vLyAgM2R4LXIsIFxuLy8gIDNkeSxcbi8vIFx0M2R5LXIsXG4vLyAgYXJyb3csXG4vLyAgYXJyb3ctcixcbi8vICBhcnJvd2FsdCxcbi8vICBhcnJvd2FsdC1yLFxuLy8gIGJvcmluZyxcbiAgXHRjb2xsYXBzZSwgIFxuLy8gIGNvbGxhcHNlLXIsXG4vLyAgZWxhc3RpYyxcbi8vICBlbGFzdGljLXIsXG4vLyAgZW1waGF0aWMsXG4vLyAgZW1waGF0aWMtcixcbi8vICBzbGlkZXIsXG4vLyAgc2xpZGVyLXIsXG4vLyAgc3ByaW5nLFxuLy8gIHNwcmluZy1yLFxuLy8gIHN0YW5kLFxuLy8gIHN0YW5kLXIsXG4vLyAgc3BpbiwgXG4vLyAgc3Bpbi1yLFxuLy8gIHNxdWVlemUsXG4vLyB2b3J0ZXgsXG4vLyAgdm9ydGV4LXJcbikgIWRlZmF1bHQ7IFxuXG4vLyBCYXNlIEhhbWJ1cmdlciAoV2UgbmVlZCB0aGlzKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbkBpbXBvcnQgXCJiYXNlXCI7XG5cbi8vIEhhbWJ1cmdlciB0eXBlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vQGltcG9ydCBcInR5cGVzLzNkeFwiO1xuLy9AaW1wb3J0IFwidHlwZXMvM2R4LXJcIjtcbi8vQGltcG9ydCBcInR5cGVzLzNkeVwiO1xuLy9AaW1wb3J0IFwidHlwZXMvM2R5LXJcIjtcbi8vQGltcG9ydCBcInR5cGVzL2Fycm93XCI7XG4vL0BpbXBvcnQgXCJ0eXBlcy9hcnJvdy1yXCI7XG4vL0BpbXBvcnQgXCJ0eXBlcy9hcnJvd2FsdFwiO1xuLy9AaW1wb3J0IFwidHlwZXMvYXJyb3dhbHQtclwiO1xuLy9AaW1wb3J0IFwidHlwZXMvYm9yaW5nXCI7XG5AaW1wb3J0IFwidHlwZXMvY29sbGFwc2VcIjtcbi8vQGltcG9ydCBcInR5cGVzL2NvbGxhcHNlLXJcIjtcbi8vQGltcG9ydCBcInR5cGVzL2VsYXN0aWNcIjtcbi8vQGltcG9ydCBcInR5cGVzL2VsYXN0aWMtclwiO1xuLy9AaW1wb3J0IFwidHlwZXMvZW1waGF0aWNcIjtcbi8vQGltcG9ydCBcInR5cGVzL2VtcGhhdGljLXJcIjtcbi8vQGltcG9ydCBcInR5cGVzL3NsaWRlclwiO1xuLy9AaW1wb3J0IFwidHlwZXMvc2xpZGVyLXJcIjtcbi8vQGltcG9ydCBcInR5cGVzL3NwcmluZ1wiO1xuLy9AaW1wb3J0IFwidHlwZXMvc3ByaW5nLXJcIjtcbi8vQGltcG9ydCBcInR5cGVzL3N0YW5kXCI7XG4vL0BpbXBvcnQgXCJ0eXBlcy9zdGFuZC1yXCI7IFxuLy9AaW1wb3J0IFwidHlwZXMvc3BpblwiO1xuLy9AaW1wb3J0IFwidHlwZXMvc3Bpbi1yXCI7XG4vL0BpbXBvcnQgXCJ0eXBlcy9zcXVlZXplXCI7XG4vL0BpbXBvcnQgXCJ0eXBlcy92b3J0ZXhcIjtcbi8vQGltcG9ydCBcInR5cGVzL3ZvcnRleC1yXCI7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDb29raW5nIHVwIGFkZGl0aW9uYWwgdHlwZXM6XG4vL1xuLy8gVGhlIFNhc3MgZm9yIGVhY2ggaGFtYnVyZ2VyIHR5cGUgc2hvdWxkIGJlIG5lc3RlZFxuLy8gaW5zaWRlIGFuIEBpZiBkaXJlY3RpdmUgdG8gY2hlY2sgd2hldGhlciBvciBub3Rcbi8vIGl0IGV4aXN0cyBpbiAkaGFtYnVyZ2VyLXR5cGVzIHNvIG9ubHkgdGhlIENTUyBmb3Jcbi8vIGluY2x1ZGVkIHR5cGVzIGFyZSBnZW5lcmF0ZWQuXG4vL1xuLy8gZS5nLiBoYW1idXJnZXJzL3R5cGVzL19uZXctdHlwZS5zY3NzXG4vL1xuLy8gQGlmIGluZGV4KCRoYW1idXJnZXItdHlwZXMsIG5ldy10eXBlKSB7XG4vLyAgIC5oYW1idXJnZXItLW5ldy10eXBlIHtcbi8vICAgICAuLi5cbi8vICAgfVxuLy8gfVxuIiwiLy8gSGFtYnVyZ2VyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuYnV0dG9uLmhhbWJ1cmdlciB7XG4gICAgcGFkZGluZzogJGhhbWJ1cmdlci1wYWRkaW5nLXkgJGhhbWJ1cmdlci1wYWRkaW5nLXg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCBmaWx0ZXI7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogJGhhbWJ1cmdlci1ob3Zlci10cmFuc2l0aW9uLWR1cmF0aW9uO1xuICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiAkaGFtYnVyZ2VyLWhvdmVyLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uO1xuICAgIC8vIE5vcm1hbGl6ZSAoPGJ1dHRvbj4pXG4gICAgZm9udDogaW5oZXJpdDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkYnJhbmQtcHJpbWFyeTtcbiAgICBtYXJnaW46IDA7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIFxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIEBpZiAkaGFtYnVyZ2VyLWhvdmVyLXVzZS1maWx0ZXI9PXRydWUge1xuICAgICAgICAgICAgZmlsdGVyOiAkaGFtYnVyZ2VyLWhvdmVyLWZpbHRlcjtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAkaGFtYnVyZ2VyLWhvdmVyLW9wYWNpdHk7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoYW1idXJnZXItYm94LWhvdmVyLWNvbG9yO1xuICAgICAgICBcbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJi5pcy1hY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhhbWJ1cmdlci1ib3gtaG92ZXItY29sb3I7XG4gICAgICAgIH1cbiAgICAgICAgLmhhbWJ1cmdlci1pbm5lciB7IFxuICAgICAgICAgICAgJixcbiAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGFtYnVyZ2VyLWhvdmVyLWNvbG91cjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAmLmlzLWFjdGl2ZSB7XG4vLyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhhbWJ1cmdlci1ib3gtaG92ZXItY29sb3I7XG4gICAgICAgIFxuICAgICAgICAuaGFtYnVyZ2VyLWlubmVyIHsgXG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhhbWJ1cmdlci1ob3Zlci1jb2xvdXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5oYW1idXJnZXItYm94IHtcbiAgICB3aWR0aDogJGhhbWJ1cmdlci1sYXllci13aWR0aDtcbiAgICBoZWlnaHQ6ICRoYW1idXJnZXItbGF5ZXItaGVpZ2h0ICogMyArICRoYW1idXJnZXItbGF5ZXItc3BhY2luZyAqIDI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDJweDtcbn1cblxuLmhhbWJ1cmdlci1pbm5lciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogJGhhbWJ1cmdlci1sYXllci1oZWlnaHQgLyAtMjtcbiAgICAmLFxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICAgIHdpZHRoOiAkaGFtYnVyZ2VyLWxheWVyLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRoYW1idXJnZXItbGF5ZXItaGVpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGFtYnVyZ2VyLWxheWVyLWNvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkaGFtYnVyZ2VyLWxheWVyLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1cztcbiAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG4gICAgfVxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICB0b3A6ICgkaGFtYnVyZ2VyLWxheWVyLXNwYWNpbmcgKyAkaGFtYnVyZ2VyLWxheWVyLWhlaWdodCkgKiAtMTtcbiAgICB9XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBib3R0b206ICgkaGFtYnVyZ2VyLWxheWVyLXNwYWNpbmcgKyAkaGFtYnVyZ2VyLWxheWVyLWhlaWdodCkgKiAtMTtcbiAgICB9XG59IiwiLy9jb2xvdXJzXG4vL2NvbW1vblxuJGJyYW5kLWdyZXk6ICNFMEUwRTA7ICBcbiRicmFuZC1kYXJrOiAjMTIxMjEyO1xuXG4vL2JyYW5kXG4kYnJhbmQtcHJpbWFyeTogZGFya2VuKCRicmFuZC1ncmV5LCAyMCUpO1xuJGJyYW5kLXNlY29uZGFyeTogJGJyYW5kLWdyZXk7XG4kYnJhbmQtcGxhY2Vob2xkZXItY29sb3I6JGJyYW5kLWdyZXk7XG5cbi8vdW5kZXJzY29yZXMgc3R5bGVzXG4kY29sb3JfX2JhY2tncm91bmQtYm9keTogI2ZmZjsgXG4kY29sb3JfX2JhY2tncm91bmQtc2NyZWVuOiAjZjFmMWYxO1xuJGNvbG9yX19iYWNrZ3JvdW5kLWhyOiAkYnJhbmQtZ3JleTtcbiRjb2xvcl9fYmFja2dyb3VuZC1idXR0b246ICRicmFuZC1wcmltYXJ5O1xuJGNvbG9yX19iYWNrZ3JvdW5kLXByZTogI2VlZTtcbiRjb2xvcl9fYmFja2dyb3VuZC1pbnM6ICNmZmY5YzA7IFxuIFxuJGNvbG9yX190ZXh0LXNjcmVlbjogIzIxNzU5YjtcbiRjb2xvcl9fdGV4dC1pbnB1dDogJGJyYW5kLXByaW1hcnk7XG4kY29sb3JfX3RleHQtaW5wdXQtZm9jdXM6ICRicmFuZC1wcmltYXJ5O1xuJGNvbG9yX19saW5rOiAkYnJhbmQtcHJpbWFyeTtcbiRjb2xvcl9fbGluay12aXNpdGVkOiAkYnJhbmQtcHJpbWFyeTtcbiRjb2xvcl9fbGluay1ob3ZlcjogJGJyYW5kLXNlY29uZGFyeTtcbiRjb2xvcl9fdGV4dC1tYWluOiAkYnJhbmQtZGFyazsgXG5cbiRjb2xvcl9fYm9yZGVyLWJ1dHRvbjogJGJyYW5kLXByaW1hcnk7XG4kY29sb3JfX2JvcmRlci1idXR0b24taG92ZXI6ICRicmFuZC1zZWNvbmRhcnk7XG4kY29sb3JfX2JvcmRlci1idXR0b24tZm9jdXM6ICRicmFuZC1zZWNvbmRhcnk7XG4kY29sb3JfX2JvcmRlci1pbnB1dDogJGJyYW5kLXByaW1hcnk7XG4kY29sb3JfX2JvcmRlci1hYmJyOiAkYnJhbmQtc2Vjb25kYXJ5O1xuXG5cbiIsIkBpZiBpbmRleCgkaGFtYnVyZ2VyLXR5cGVzLCBjb2xsYXBzZSkge1xuICAvKlxuICAgKiBDb2xsYXBzZVxuICAgKi9cbiAgLmhhbWJ1cmdlci0tY29sbGFwc2Uge1xuICAgIC5oYW1idXJnZXItaW5uZXIge1xuICAgICAgdG9wOiBhdXRvO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xNXM7XG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjE1cztcbiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTtcblxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICB0b3A6ICgkaGFtYnVyZ2VyLWxheWVyLXNwYWNpbmcgKiAyICsgJGhhbWJ1cmdlci1sYXllci1oZWlnaHQgKiAyKSAqIC0xO1xuICAgICAgICB0cmFuc2l0aW9uOiB0b3AgMC4zcyAwLjNzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLjY2NjY3LCAwLjY2NjY3LCAxKSxcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eSAwLjFzIGxpbmVhcjtcbiAgICAgIH1cblxuICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuMTJzIDAuM3MgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAuNjY2NjcsIDAuNjY2NjcsIDEpLFxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gMC4xNXMgY3ViaWMtYmV6aWVyKDAuNTUsIDAuMDU1LCAwLjY3NSwgMC4xOSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgLmhhbWJ1cmdlci1pbm5lciB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgKCRoYW1idXJnZXItbGF5ZXItc3BhY2luZyArICRoYW1idXJnZXItbGF5ZXItaGVpZ2h0KSAqIC0xLCAwKSByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4zMnM7XG4gICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgdHJhbnNpdGlvbjogdG9wIDAuM3MgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAsIDAuNjY2NjcsIDAuMzMzMzMpLFxuICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHkgMC4xcyAwLjI3cyBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgIHRyYW5zaXRpb246IHRvcCAwLjEycyAwLjE4cyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMCwgMC42NjY2NywgMC4zMzMzMyksXG4gICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtIDAuMTVzIDAuNDJzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIubWFpbi1uYXZpZ2F0aW9uIHtcblx0ZGlzcGxheTogYmxvY2s7XG4vL1x0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR0cmFuc2l0aW9uOi41cyBsaW5lYXIgYWxsO1xuICAgIFxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB9XG5cbiAgICBidXR0b24ge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyOyBcbiAgICB9XG5cdHVsIHtcblx0XHRcblx0XHRsaXN0LXN0eWxlOiBub25lOyBcblx0XHRtYXJnaW46IDA7XG5cdFx0cGFkZGluZy1sZWZ0OiAwO1xuXG5cdFx0dWwge1xuLy9cdFx0XHRib3gtc2hhZG93OiAwIDNweCAzcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuLy9cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vXHRcdFx0dG9wOiAxLjVlbTtcbi8vXHRcdFx0bGVmdDogLTk5OWVtO1xuXHRcdFx0ei1pbmRleDogOTk5OTk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuLy8gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwJTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgICAgIH1cblxuXHRcdFx0dWwge1xuLy9cdFx0XHRcdGxlZnQ6IC05OTllbTtcbi8vXHRcdFx0XHR0b3A6IDA7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgfVxuXHRcdFx0fSBcblxuXHRcdFx0bGkge1xuXHRcdFx0XHQmOmhvdmVyID4gdWwsXG5cdFx0XHRcdCYuZm9jdXMgPiB1bCB7XG4vL1x0XHRcdFx0XHRsZWZ0OiAxMDAlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGEge1xuLy9cdFx0XHRcdHdpZHRoOiAyMDBweDtcblx0XHRcdH1cblxuXHRcdFx0OmhvdmVyID4gYSxcblx0XHRcdC5mb2N1cyA+IGEge1xuXHRcdFx0fVxuXG5cdFx0XHRhOmhvdmVyLFxuXHRcdFx0YS5mb2N1cyB7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0bGk6aG92ZXIgPiB1bCxcblx0XHRsaS5mb2N1cyA+IHVsIHtcbi8vXHRcdFx0bGVmdDogYXV0bzsgXG5cdFx0fVxuXHR9XG5cdFxuXHRsaSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4vLyAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICBcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfSAgICBcbiAgICAgICAgXG4gICAgICAgID4gYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gNDBweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG5cdFx0Jjpob3ZlciA+IGEsXG5cdFx0Ji5mb2N1cyA+IGEge1xuXHRcdH1cblx0fVxuICAgIFxuXHRhIHtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuLy8gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG5cblx0fVxuXG5cdC5jdXJyZW50X3BhZ2VfaXRlbSA+IGEsXG5cdC5jdXJyZW50LW1lbnUtaXRlbSA+IGEsXG5cdC5jdXJyZW50X3BhZ2VfYW5jZXN0b3IgPiBhLFxuXHQuY3VycmVudC1tZW51LWFuY2VzdG9yID4gYSB7XG5cdH1cbiAgICBcbiAgICAuc3ViLW1lbnUge1xuICAgICAgICB3aWR0aDogMjAwcHg7XG4gICAgICAgIFxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBsaSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICB1bC5zdWItbWVudSxcbiAgICB1bC5jaGlsZHJlbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICBcbiAgICAgICAgJi50b2dnbGVkLW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIC5kcm9wZG93bi10b2dnbGUge1xuLy8gICAgICAgIG1hcmdpbjogNXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4vLyAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgIH1cbiAgICB9IFxuICAgIFxufVxuXG4uY29tbWVudC1uYXZpZ2F0aW9uLFxuLnBvc3RzLW5hdmlnYXRpb24sXG4ucG9zdC1uYXZpZ2F0aW9uIHtcblxuXHQuc2l0ZS1tYWluICYge1xuXHRcdG1hcmdpbjogMCAwIDEuNWVtO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdH1cblxuXHQubmF2LXByZXZpb3VzIHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHR3aWR0aDogNTAlO1xuXHR9XG5cblx0Lm5hdi1uZXh0IHtcblx0XHRmbG9hdDogcmlnaHQ7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0d2lkdGg6IDUwJTtcblx0fVxufVxuXG4vL01vYmlsZSBtZW51IGdsb2JhbCBzdHlsZXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuLy9tZWRpYSBxdWVyeSB0byBoaWRlL3Nob3cgdGhlIG1vYmlsZSBtZW51IFxuQGluY2x1ZGUgbWVkaWEoXCI+bWVudVwiKSB7XG4gICAgI21vYmlsZS1tZW51IHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cdC5tYWluLW5hdmlnYXRpb24gdWwge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG59IFxuXG4vL2FwcGxpZWQgdG8gYm9keSBhbmQgaHRtbCB0YWdzXG4ubWVudS1vcGVuIHtcblx0aGVpZ2h0OiAxMDAlO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbn1cblxuYnV0dG9uI21vYmlsZS1tZW51IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiAxMDE7XG4gICAgbWFyZ2luOiAyNXB4IDA7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgY2xlYXI6IGxlZnQ7XG4gICAgYm9yZGVyOiAycHggc29saWQgJGJyYW5kLXByaW1hcnk7XG59XG4udG9nZ2xlZCB7XG5cdHRyYW5zaXRpb246LjVzIGxpbmVhciBhbGw7XG59XG5cbiNhY2Nlc3Mge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGxlZnQ6IDE1cHg7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMwcHgpO1xuICAgIFxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbGVmdDogMDtcbiAgICB9ICAgIFxufVxuXG4vL0N1c3RvbSBzdHlsZXNcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgICN0b3AtbWVudSB7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgfVxuICAgICNicmFuZGluZyBhLmxvZ28gaW1nIHtcbiAgICAgICAgd2lkdGg6IDMwMHB4O1xuICAgICAgICBtYXJnaW46IDIwcHggMCAxMHB4XG4gICAgfVxuICAgIGEubG9nbyB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiAzMDBweDtcbiAgICB9XG4gICAgLm1lbnUtdG9wLWNvbnRhaW5lciB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgXG4gICAgICAgIHVsIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgI2JyYW5kaW5nICNzZWFyY2hmb3JtIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IC0xNXB4IDAgMjBweDtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuLy8gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxuLy8gICAgaW5wdXQjcyxcbi8vICAgIGlucHV0I3M6Zm9jdXMge1xuLy8gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG4vLyAgICB9XG4vKiAgICBNZW51Ki9cbiAgICAubWVudS13cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAyNTBweDtcbiAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgdHJhbnNpdGlvbjogLjVzIGVhc2UgYWxsO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjUwcHgsIDApO1xuICAgICAgICB6LWluZGV4OiAxMDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkY7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgfVxuICAgICNhY2Nlc3MgZGl2IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgICAjYWNjZXNzIHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIFxuICAgIH1cbiAgICAjYWNjZXNzIHVsIHVsIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2QyZDJkMjtcbiAgICB9XG4gICAgI2FjY2VzcyB1bCB1bCBsaSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuICAgICNhY2Nlc3MgdWwgdWwgdWwge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAjYWNjZXNzIHVsIGxpOmhvdmVyID4gdWwge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAjYWNjZXNzIHVsIGxpID4gdWwudG9nZ2xlZC1vbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gICAgI2FjY2VzcyBsaSB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybChpbWFnZXMvbmF2U2VwLmdpZikgbm8tcmVwZWF0IGxlZnQgdG9wO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gICAgI21lbnUtbWFpbiBsaSBhIHNwYW4uc3ViIHtcbiAgICAgICAgd2lkdGg6IDgwJTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDVweCAxMHB4IDVweCAwO1xuICAgIH1cbiAgICAjbWVudS1tYWluIGxpIGEgc3Bhbi5zdWIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuICAgIC5tYWluLW5hdmlnYXRpb24gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gICAgI2FjY2VzcyAjbWVudS1tYWluPmxpOmhvdmVyLFxuICAgICNhY2Nlc3MgI21lbnUtbWFpbj5saTpmb2N1cyB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMztcbiAgICB9XG4gICAgLmRyb3Bkb3duLXRvZ2dsZS50b2dnbGVkLW9uIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbiAgICB9XG4gICAgI2FjY2VzcyB1bCNtZW51LW1haW4gdWwgdWwuc3ViLW1lbnUgPiBsaS5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gYnV0dG9uIHtcbi8qICAgICAgICBiYWNrZ3JvdW5kOiBub25lOyovXG4gICAgfVxuICAgICNhY2Nlc3MgdWwgdWwgYSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjNzE3MTcxO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTJlMmUyO1xuICAgIH1cbiAgICBib2R5ICNhY2Nlc3MgbGkuY3VycmVudC1tZW51LWl0ZW0gYSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgICNhY2Nlc3MgdWwgdWwgdWwgdWwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmZiZmJmO1xuICAgIH1cbiAgICAjYWNjZXNzIHVsIHVsIGxpIGxpIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB9XG4gICAgI2FjY2VzcyB1bCB1bCBsaSB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgfVxuICAgICNhY2Nlc3MgdWwjbWVudS1tYWluIHVsLnN1Yi1tZW51IGxpIHVsLnN1Yi1tZW51ID4gbGkgYSwgI2FjY2VzcyB1bCNtZW51LW1haW4gdWwuc3ViLW1lbnUgbGkubWVudS1zdWItc3R5bGUgYSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjZWNlY2U7XG4gICAgfVxuICAgICNhY2Nlc3MgdWwjbWVudS1tYWluIHVsLnN1Yi1tZW51IGxpIHVsLnN1Yi1tZW51ID4gbGkubWVudS1pdGVtLWhhcy1jaGlsZHJlbiA+IGJ1dHRvbiBhIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2UyZTJlMjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuICAgICNhY2Nlc3MgdWwjbWVudS1tYWluIHVsLnN1Yi1tZW51IGxpIHVsLnN1Yi1tZW51ID4gbGkgdWwuc3ViLW1lbnUgbGkgYSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNGRkY7XG4gICAgfVxuICAgIGRpdiNtYWluOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDApO1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIHRyYW5zaXRpb246IC4zcyBsaW5lYXIgYWxsO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcbiAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICBwZXJzcGVjdGl2ZTogMTAwMDtcbiAgICB9XG4gICAgLnB1c2ggZGl2I21haW46YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43KTtcbiAgICAgICAgdHJhbnNpdGlvbjogLjNzIGxpbmVhciBhbGw7XG4gICAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgcGVyc3BlY3RpdmU6IDEwMDA7XG4gICAgfVxuICAgIC5hcnJvdy1kb3duIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGJyYW5kLXByaW1hcnk7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAwIDFweCAxcHg7XG4gICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgIG1hcmdpbjogNXB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAyMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiAwO1xuICAgICAgICB0b3A6IDEzcHg7XG4gICAgfVxuICAgIC50b2dnbGVkLW9uID4gYSAuYXJyb3ctZG93biB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgfVxufVxuXG4udG9nZ2xlZCAubWVudS13cmFwcGVyIHtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAyNTBweDtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IC41cyBlYXNlIGFsbDtcbiAgICB0cmFuc2l0aW9uOiAuNXMgZWFzZSBhbGw7XG4gICAgcGFkZGluZzogNXZoIDAgMTV2aCAwO1xufVxuXG4udG9nZ2xlZCAubWVudS13cmFwcGVyIC5vdmVybGF5LWNvbnRlbnQge1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLnNpdGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLjdzIGVhc2UgdHJhbnNmb3JtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xuICAgIHRyYW5zaXRpb246IC43cyBlYXNlIHRyYW5zZm9ybTtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbn1cblxuLnB1c2gge1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgyNTBweCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjUwcHgsIDApO1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLjVzIGVhc2UgdHJhbnNmb3JtO1xuICAgIHRyYW5zaXRpb246IC41cyBlYXNlIHRyYW5zZm9ybTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gTW9iaWxlIG1lbnUgdHlwZXMgKFJlbW92ZSBvciBjb21tZW50IG91dCB3aGF0IHlvdSBkb27igJl0IG5lZWQpXG4vLyBUTyBVU0U6XG4vLyAxLiBBZGQgdGhlIG5hbWUgYXMgYSBjbGFzcyB0byB0aGUgbWVudSB3cmFwcGVyIGluIGhlYWRlci5waHBcbi8vICAgIGVnLiA8ZGl2IGNsYXNzPVwibWVudS13cmFwcGVyIHNsaWRldXBcIj5cbi8vIDIuIE1ha2Ugc3VyZSB0aGUgY29ycmVzcG9uZGluZyBzYXNzIGZpbGUgaXMgYmVpbmcgaW1wb3J0ZWRcbi8vIDMuIENoYW5nZSBzdHlsZXNcbi8vIFNpZGVub3RlOiBFdmVyeXRoaW5nIGluc2lkZSB0aGUgbWVudSB3cmFwcGVyIHdpbGwgYmUgY29udGFpbmVkIHdpdGhpbiB0aGUgbW9iaWxlIG1lbnVcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy9AaW1wb3J0IFwibWVudXMvb3ZlcmxheVwiO1xuLy9AaW1wb3J0IFwibWVudXMvc2xpZGVkb3duXCI7XG4vL0BpbXBvcnQgXCJtZW51cy9zbGlkZWxlZnRcIjsgXG4vL0BpbXBvcnQgXCJtZW51cy9zbGlkZXJpZ2h0XCI7ICBcbi8vQGltcG9ydCBcIm1lbnVzL2Ryb3Bkb3duXCI7IFxuLy9AaW1wb3J0IFwibWVudXMvcHVzaGxlZnRcIjsgLy9ubyBuZWVkIHRvIGFkZCAucHVzaCB0byAubWVudS13cmFwcGVyIC0tIG1ha2Ugc3VyZSB0byBqcy9tZW51cy9wdXNoLmpzIGlzIGVucXVldWVkXG5AaW1wb3J0IFwibWVudXMvcHVzaHJpZ2h0XCI7ICAvL25vIG5lZWQgdG8gYWRkIC5wdXNoIHRvIC5tZW51LXdyYXBwZXIgLS0gbWFrZSBzdXJlIHRvIGpzL21lbnVzL3B1c2guanMgaXMgZW5xdWV1ZWQiLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcbi8vXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40Ljhcbi8vXG4vLyAgICAgICAgICAgICAgICBodHRwOi8vaW5jbHVkZS1tZWRpYS5jb21cbi8vXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcbi8vICAgICAgICAgICAgICAgICAgSHVnbyBHaXJhdWRlbCAoQGh1Z29naXJhdWRlbClcbi8vXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXG5cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcbi8vL1xuJGJyZWFrcG9pbnRzOiAoXG4gICAgJ21lbnUnOiA3NjhweCwgXG4gICAgJ3NwaG9uZSc6IDMyMHB4LFxuICAgICdwaG9uZSc6IDQ4MHB4LFxuICAgICd0YWJsZXQnOiA3NjhweCxcbiAgICAnbGFwdG9wJzogOTkycHgsXG4gICAgJ2Rlc2t0b3AnOiAxMjAwcHgsXG4gICAgJ2xhcmdlJzogMTQwMHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2Ygc3RhdGljIGV4cHJlc3Npb25zIG9yIG1lZGlhIHR5cGVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBtZWRpYSB0eXBlIChzY3JlZW4pXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nOiAnc2NyZWVuJyk7XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHN0YXRpYyBleHByZXNzaW9uIHdpdGggbG9naWNhbCBkaXNqdW5jdGlvbiAoT1Igb3BlcmF0b3IpXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKFxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xuLy8vICApO1xuLy8vXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcbiAgJ3NjcmVlbic6ICdzY3JlZW4nLFxuICAncHJpbnQnOiAncHJpbnQnLFxuICAnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxuICAnbGFuZHNjYXBlJzogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXG4gICdwb3J0cmFpdCc6ICcob3JpZW50YXRpb246IHBvcnRyYWl0KScsXG4gICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAobWluLXJlc29sdXRpb246IDJkcHB4KScsXG4gICdyZXRpbmEzeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzKSwgKG1pbi1yZXNvbHV0aW9uOiAzNTBkcGkpLCAobWluLXJlc29sdXRpb246IDNkcHB4KSdcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gRGVmaW5lcyBhIG51bWJlciB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gZWFjaCB1bml0IHdoZW4gZGVjbGFyaW5nIGJyZWFrcG9pbnRzIHdpdGggZXhjbHVzaXZlIGludGVydmFsc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjEyOHB4Jykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAxMjlweCkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yMGVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyMC4wMWVtKSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2Bcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yLjByZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIuMXJlbSkge31cbi8vL1xuJHVuaXQtaW50ZXJ2YWxzOiAoXG4gICdweCc6IDEsXG4gICdlbSc6IDAuMDEsXG4gICdyZW0nOiAwLjEsXG4gICcnOiAwXG4pICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBEZWZpbmVzIHdoZXRoZXIgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBhdmFpbGFibGUsIHVzZWZ1bCBmb3IgY3JlYXRpbmcgc2VwYXJhdGUgc3R5bGVzaGVldHNcbi8vLyBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRGlzYWJsZXMgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbiRpbS1tZWRpYS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIGJyZWFrcG9pbnQgdG8gZW11bGF0ZSB3aGVuIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvclxuLy8vIGludGVyY2VwdCB0aGUgYnJlYWtwb2ludCB3aWxsIGJlIGRpc3BsYXllZCwgYW55IG90aGVycyB3aWxsIGJlIGlnbm9yZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgZG9lcyBub3QgaW50ZXJjZXB0IHRoZSBkZXNrdG9wIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ3RhYmxldCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIG1lZGlhIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGluIGFuIGV4cHJlc3Npb24gZm9yIGl0IHRvIGJlIHVzZWQgd2hlbiBtZWRpYSBxdWVyaWVzXG4vLy8gYXJlIG5vdCBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBhbmQgY29udGFpbnMgb25seSBhY2NlcHRlZCBtZWRpYSBleHByZXNzaW9uc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3NjcmVlbicpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgIC5mb28ge1xuLy8vICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGJ1dCBjb250YWlucyBhIG1lZGlhIGV4cHJlc3Npb24gdGhhdCBpcyBub3QgYWNjZXB0ZWRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdyZXRpbmEyeCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nLCAncG9ydHJhaXQnLCAnbGFuZHNjYXBlJykgIWRlZmF1bHQ7XG5cbi8vLy9cbi8vLyBDcm9zcy1lbmdpbmUgbG9nZ2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBMb2cgYSBtZXNzYWdlIGVpdGhlciB3aXRoIGBAZXJyb3JgIGlmIHN1cHBvcnRlZFxuLy8vIGVsc2Ugd2l0aCBgQHdhcm5gLCB1c2luZyBgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJylgXG4vLy8gdG8gZGV0ZWN0IHN1cHBvcnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AZnVuY3Rpb24gbG9nKCRtZXNzYWdlKSB7XG4gIEBpZiBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKSB7XG4gICAgQGVycm9yICRtZXNzYWdlO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiAkbWVzc2FnZTtcbiAgICAkXzogbm9vcCgpO1xuICB9XG5cbiAgQHJldHVybiAkbWVzc2FnZTtcbn1cblxuXG4vLy9cbi8vLyBXcmFwcGVyIG1peGluIGZvciB0aGUgbG9nIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggYSBtb3JlIGZyaWVuZGx5XG4vLy8gQVBJIHRoYW4gYEBpZiBsb2coJy4uJykge31gIG9yIGAkXzogbG9nKCcuLicpYC4gQmFzaWNhbGx5LCB1c2UgdGhlIGZ1bmN0aW9uXG4vLy8gd2l0aGluIGZ1bmN0aW9ucyBiZWNhdXNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW4gYSBmdW5jdGlvblxuLy8vIGFuZCB1c2UgdGhlIG1peGluIGV2ZXJ5d2hlcmUgZWxzZSBiZWNhdXNlIGl0J3MgbXVjaCBtb3JlIGVsZWdhbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AbWl4aW4gbG9nKCRtZXNzYWdlKSB7XG4gIEBpZiBsb2coJG1lc3NhZ2UpIHt9XG59XG5cblxuLy8vXG4vLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xuLy8vIHRvIHRyaWdnZXIgYSBjb21waWxpbmcgZXJyb3IgYW5kIHN0b3AgdGhlIHByb2Nlc3MuXG4vLy9cbkBmdW5jdGlvbiBub29wKCkge31cblxuLy8vXG4vLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIGlzIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29uZGl0aW9ucyBhcmUgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy9cbkBmdW5jdGlvbiBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSB7XG4gICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQpO1xuXG4gIEBpZiBub3QgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUge1xuICAgIEBpZiBsb2coJ2AjeyRpbS1uby1tZWRpYS1icmVha3BvaW50fWAgaXMgbm90IGEgdmFsaWQgYnJlYWtwb2ludC4nKSB7fVxuICB9XG5cbiAgQGVhY2ggJGNvbmRpdGlvbiBpbiAkY29uZGl0aW9ucyB7XG4gICAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGNvbmRpdGlvbik7XG4gICAgICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgICAgICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGNvbmRpdGlvbiwgJG9wZXJhdG9yKTtcblxuICAgICAgLy8gc2Nzcy1saW50OmRpc2FibGUgU3BhY2VBcm91bmRPcGVyYXRvclxuICAgICAgQGlmICgkcHJlZml4ID09ICdtYXgnIGFuZCAkdmFsdWUgPD0gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIG9yXG4gICAgICAgICAgKCRwcmVmaXggPT0gJ21pbicgYW5kICR2YWx1ZSA+ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSB7XG4gICAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiBub3QgaW5kZXgoJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vL1xuLy8vIFBhcnNpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XG4gIEBlYWNoICRvcGVyYXRvciBpbiAoJz49JywgJz4nLCAnPD0nLCAnPCcsICfiiaUnLCAn4omkJykge1xuICAgIEBpZiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAgICAgQHJldHVybiAkb3BlcmF0b3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAvLyByZWx5IG9uIHRoZSBgbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBsb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAkXzogbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XG4gICRkaW1lbnNpb246ICd3aWR0aCc7XG5cbiAgQGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XG4gICAgJGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XG4gIH1cblxuICBAcmV0dXJuICRkaW1lbnNpb247XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGBtaW5gIG9yIGBtYXhgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XG4gIEByZXR1cm4gaWYoaW5kZXgoKCc8JywgJzw9JywgJ+KJpCcpLCAkb3BlcmF0b3IpLCAnbWF4JywgJ21pbicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn0gLSBBIG51bWVyaWMgdmFsdWVcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICR2YWx1ZTogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHItbGVuZ3RoKCRvcGVyYXRvcikpO1xuXG4gIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgICR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XG4gIH0gQGVsc2Uge1xuICAgICR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XG4gIH1cblxuICAkaW50ZXJ2YWw6IG1hcC1nZXQoJHVuaXQtaW50ZXJ2YWxzLCB1bml0KCR2YWx1ZSkpO1xuXG4gIEBpZiBub3QgJGludGVydmFsIHtcbiAgICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gICAgLy8gcmVseSBvbiB0aGUgYGxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAgIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgICAkXzogbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XG4gIH1cblxuICBAaWYgJG9wZXJhdG9yID09ICc+JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgKyAkaW50ZXJ2YWw7XG4gIH0gQGVsc2UgaWYgJG9wZXJhdG9yID09ICc8JyB7XG4gICAgJHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuXG4vLy9cbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gcGFyc2Vcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBWYWxpZCBtZWRpYSBxdWVyeVxuLy8vXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xuICAvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXG4gIC8vIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBnbyBhbnkgZnVydGhlciwganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gIEBpZiBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xuICB9XG5cbiAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XG4gICRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG5cbiAgQHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XG59XG5cbi8vL1xuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2Vcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxuLy8vXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xuICBAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XG4gICAgQHJldHVybiAoKTtcbiAgfVxuXG4gICRyZXN1bHQ6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcbiAgICAkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgbnRoKCRsaXN0LCAkaSkpO1xuICB9XG5cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vLy8vXG4vLy8gU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9XG4vLy9cbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XG4gICAgJF86IGxvZygnVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy4nKTtcbiAgfVxuXG4gICRmaXJzdC1jaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsIDEsIDEpO1xuICAkcmVzdWx0OiAwO1xuICAkZGlnaXRzOiAwO1xuICAkbWludXM6ICgkZmlyc3QtY2hhcmFjdGVyID09ICctJyk7XG4gICRudW1iZXJzOiAoJzAnOiAwLCAnMSc6IDEsICcyJzogMiwgJzMnOiAzLCAnNCc6IDQsICc1JzogNSwgJzYnOiA2LCAnNyc6IDcsICc4JzogOCwgJzknOiA5KTtcblxuICAvLyBSZW1vdmUgKy8tIHNpZ24gaWYgcHJlc2VudCBhdCBmaXJzdCBjaGFyYWN0ZXJcbiAgQGlmICgkZmlyc3QtY2hhcmFjdGVyID09ICcrJyBvciAkZmlyc3QtY2hhcmFjdGVyID09ICctJykge1xuICAgICR2YWx1ZTogc3RyLXNsaWNlKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcblxuICAgIEBpZiBub3QgKGluZGV4KG1hcC1rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcbiAgICAgIEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHItc2xpY2UoJHZhbHVlLCAkaSkpXG4gICAgfVxuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcbiAgICAgICRkaWdpdHM6IDE7XG4gICAgfSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XG59XG5cblxuLy8vXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXG4vLy9cbkBmdW5jdGlvbiB0by1sZW5ndGgoJHZhbHVlLCAkdW5pdCkge1xuICAkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xuXG4gIEBpZiBub3QgaW5kZXgobWFwLWtleXMoJHVuaXRzKSwgJHVuaXQpIHtcbiAgICAkXzogbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcbn1cblxuLy8vXG4vLy8gVGhpcyBtaXhpbiBhaW1zIGF0IHJlZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24ganVzdCBmb3IgdGhlIHNjb3BlIG9mXG4vLy8gdGhlIGNhbGwuIEl0IGlzIGhlbHBmdWwgd2hlbiBoYXZpbmcgYSBjb21wb25lbnQgbmVlZGluZyBhbiBleHRlbmRlZFxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxuLy8vIGZvciBpbnN0YW5jZS5cbi8vL1xuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vha3BvaW50cyBbKCldIC0gTWFwIG9mIHR3ZWFrcG9pbnRzIHRvIGJlIG1lcmdlZCB3aXRoIGAkYnJlYWtwb2ludHNgXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIGJyZWFrcG9pbnRzIHdpdGggYSB0d2Vha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgbWVkaWEgZXhwcmVzc2lvbnMgd2l0aCBhIGN1c3RvbSBvbmVcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgYm90aCBjb25maWd1cmF0aW9uIG1hcHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XG4gIC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xuICAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XG5cbiAgLy8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogbWFwLW1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC1tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcblxuICBAY29udGVudDtcblxuICAvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcbn1cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XG4vLy9cbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xuICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBTcGFjZUFyb3VuZE9wZXJhdG9yXG4gIEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcbiAgICAgIChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xuICAgIEBtZWRpYSAje3VucXVvdGUocGFyc2UtZXhwcmVzc2lvbihudGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcbiAgICAgIC8vIFJlY3Vyc2l2ZSBjYWxsXG4gICAgICBAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyMgU2l0ZSB2YXJzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIyBJbmNsdWRlIE1lZGlhXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4jIyBMaW5rc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIyMgTWVudXNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qIVxuICogSGFtYnVyZ2Vyc1xuICogQGRlc2NyaXB0aW9uIFRhc3R5IENTUy1hbmltYXRlZCBoYW1idXJnZXJzXG4gKiBAYXV0aG9yIEpvbmF0aGFuIFN1aCBAam9uc3VoXG4gKiBAc2l0ZSBodHRwczovL2pvbnN1aC5jb20vaGFtYnVyZ2Vyc1xuICogQGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2pvbnN1aC9oYW1idXJnZXJzXG4gKi9cbmJ1dHRvbi5oYW1idXJnZXIge1xuICBwYWRkaW5nOiAxcHggNXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgZmlsdGVyO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcbiAgZm9udDogaW5oZXJpdDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAycHggc29saWQgI2FkYWRhZDtcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG5idXR0b24uaGFtYnVyZ2VyOmhvdmVyLCBidXR0b24uaGFtYnVyZ2VyOmZvY3VzIHtcbiAgb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbmJ1dHRvbi5oYW1idXJnZXI6aG92ZXI6aG92ZXIsIGJ1dHRvbi5oYW1idXJnZXI6aG92ZXIuaXMtYWN0aXZlLCBidXR0b24uaGFtYnVyZ2VyOmZvY3VzOmhvdmVyLCBidXR0b24uaGFtYnVyZ2VyOmZvY3VzLmlzLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG5idXR0b24uaGFtYnVyZ2VyOmhvdmVyIC5oYW1idXJnZXItaW5uZXIsIGJ1dHRvbi5oYW1idXJnZXI6aG92ZXIgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlLCBidXR0b24uaGFtYnVyZ2VyOmhvdmVyIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyLCBidXR0b24uaGFtYnVyZ2VyOmZvY3VzIC5oYW1idXJnZXItaW5uZXIsIGJ1dHRvbi5oYW1idXJnZXI6Zm9jdXMgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlLCBidXR0b24uaGFtYnVyZ2VyOmZvY3VzIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2FkYWRhZDtcbn1cblxuYnV0dG9uLmhhbWJ1cmdlci5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlLCBidXR0b24uaGFtYnVyZ2VyLmlzLWFjdGl2ZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNhZGFkYWQ7XG59XG5cbi5oYW1idXJnZXItYm94IHtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMTRweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMnB4O1xufVxuXG4uaGFtYnVyZ2VyLWlubmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRvcDogNTAlO1xuICBtYXJnaW4tdG9wOiAtMXB4O1xufVxuXG4uaGFtYnVyZ2VyLWlubmVyLCAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUsIC5oYW1idXJnZXItaW5uZXI6OmFmdGVyIHtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWRhZGFkO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2U7XG59XG5cbi5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSwgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmhhbWJ1cmdlci1pbm5lcjo6YmVmb3JlIHtcbiAgdG9wOiAtNnB4O1xufVxuXG4uaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gIGJvdHRvbTogLTZweDtcbn1cblxuLypcbiAgICogQ29sbGFwc2VcbiAgICovXG4uaGFtYnVyZ2VyLS1jb2xsYXBzZSAuaGFtYnVyZ2VyLWlubmVyIHtcbiAgdG9wOiBhdXRvO1xuICBib3R0b206IDA7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjE1cztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1LCAwLjA1NSwgMC42NzUsIDAuMTkpO1xufVxuXG4uaGFtYnVyZ2VyLS1jb2xsYXBzZSAuaGFtYnVyZ2VyLWlubmVyOjphZnRlciB7XG4gIHRvcDogLTEycHg7XG4gIHRyYW5zaXRpb246IHRvcCAwLjNzIDAuM3MgY3ViaWMtYmV6aWVyKDAuMzMzMzMsIDAuNjY2NjcsIDAuNjY2NjcsIDEpLCBvcGFjaXR5IDAuMXMgbGluZWFyO1xufVxuXG4uaGFtYnVyZ2VyLS1jb2xsYXBzZSAuaGFtYnVyZ2VyLWlubmVyOjpiZWZvcmUge1xuICB0cmFuc2l0aW9uOiB0b3AgMC4xMnMgMC4zcyBjdWJpYy1iZXppZXIoMC4zMzMzMywgMC42NjY2NywgMC42NjY2NywgMSksIHRyYW5zZm9ybSAwLjE1cyBjdWJpYy1iZXppZXIoMC41NSwgMC4wNTUsIDAuNjc1LCAwLjE5KTtcbn1cblxuLmhhbWJ1cmdlci0tY29sbGFwc2UuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC02cHgsIDApIHJvdGF0ZSgtNDVkZWcpO1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjMycztcbiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xufVxuXG4uaGFtYnVyZ2VyLS1jb2xsYXBzZS5pcy1hY3RpdmUgLmhhbWJ1cmdlci1pbm5lcjo6YWZ0ZXIge1xuICB0b3A6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IHRvcCAwLjNzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLCAwLjY2NjY3LCAwLjMzMzMzKSwgb3BhY2l0eSAwLjFzIDAuMjdzIGxpbmVhcjtcbn1cblxuLmhhbWJ1cmdlci0tY29sbGFwc2UuaXMtYWN0aXZlIC5oYW1idXJnZXItaW5uZXI6OmJlZm9yZSB7XG4gIHRvcDogMDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgdHJhbnNpdGlvbjogdG9wIDAuMTJzIDAuMThzIGN1YmljLWJlemllcigwLjMzMzMzLCAwLCAwLjY2NjY3LCAwLjMzMzMzKSwgdHJhbnNmb3JtIDAuMTVzIDAuNDJzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpO1xufVxuXG4ubWFpbi1uYXZpZ2F0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRyYW5zaXRpb246IC41cyBsaW5lYXIgYWxsO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm1haW4tbmF2aWdhdGlvbiB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbn1cblxuLm1haW4tbmF2aWdhdGlvbiBidXR0b24ge1xuICBib3JkZXI6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAyO1xufVxuXG4ubWFpbi1uYXZpZ2F0aW9uIHVsIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi5tYWluLW5hdmlnYXRpb24gdWwgdWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDk5OTk5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuICBtaW4td2lkdGg6IDIwMHB4O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm1haW4tbmF2aWdhdGlvbiB1bCB1bCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsb2F0OiBub25lO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgdG9wOiBhdXRvO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubWFpbi1uYXZpZ2F0aW9uIHVsIHVsIHVsIHtcbiAgICBsZWZ0OiBpbml0aWFsO1xuICB9XG59XG5cbi5tYWluLW5hdmlnYXRpb24gbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5tYWluLW5hdmlnYXRpb24gbGkge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubWFpbi1uYXZpZ2F0aW9uIGxpID4gYSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDQwcHgpO1xuICB9XG59XG5cbi5tYWluLW5hdmlnYXRpb24gYSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBwYWRkaW5nOiA1cHg7XG59XG5cbi5tYWluLW5hdmlnYXRpb24gLnN1Yi1tZW51IHtcbiAgd2lkdGg6IDIwMHB4O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm1haW4tbmF2aWdhdGlvbiAuc3ViLW1lbnUge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi5tYWluLW5hdmlnYXRpb24gLnN1Yi1tZW51IGxpIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5tYWluLW5hdmlnYXRpb24gdWwuc3ViLW1lbnUsXG4ubWFpbi1uYXZpZ2F0aW9uIHVsLmNoaWxkcmVuIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1haW4tbmF2aWdhdGlvbiB1bC5zdWItbWVudS50b2dnbGVkLW9uLFxuLm1haW4tbmF2aWdhdGlvbiB1bC5jaGlsZHJlbi50b2dnbGVkLW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5tYWluLW5hdmlnYXRpb24gLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLm1haW4tbmF2aWdhdGlvbiAuZHJvcGRvd24tdG9nZ2xlIGEge1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG4uc2l0ZS1tYWluIC5jb21tZW50LW5hdmlnYXRpb24sIC5zaXRlLW1haW5cbi5wb3N0cy1uYXZpZ2F0aW9uLCAuc2l0ZS1tYWluXG4ucG9zdC1uYXZpZ2F0aW9uIHtcbiAgbWFyZ2luOiAwIDAgMS41ZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5jb21tZW50LW5hdmlnYXRpb24gLm5hdi1wcmV2aW91cyxcbi5wb3N0cy1uYXZpZ2F0aW9uIC5uYXYtcHJldmlvdXMsXG4ucG9zdC1uYXZpZ2F0aW9uIC5uYXYtcHJldmlvdXMge1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDUwJTtcbn1cblxuLmNvbW1lbnQtbmF2aWdhdGlvbiAubmF2LW5leHQsXG4ucG9zdHMtbmF2aWdhdGlvbiAubmF2LW5leHQsXG4ucG9zdC1uYXZpZ2F0aW9uIC5uYXYtbmV4dCB7XG4gIGZsb2F0OiByaWdodDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHdpZHRoOiA1MCU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjlweCkge1xuICAjbW9iaWxlLW1lbnUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLm1haW4tbmF2aWdhdGlvbiB1bCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuLm1lbnUtb3BlbiB7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IGZpeGVkO1xufVxuXG5idXR0b24jbW9iaWxlLW1lbnUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDEwMTtcbiAgbWFyZ2luOiAyNXB4IDA7XG4gIGZsb2F0OiBsZWZ0O1xuICBjbGVhcjogbGVmdDtcbiAgYm9yZGVyOiAycHggc29saWQgI2FkYWRhZDtcbn1cblxuLnRvZ2dsZWQge1xuICB0cmFuc2l0aW9uOiAuNXMgbGluZWFyIGFsbDtcbn1cblxuI2FjY2VzcyB7XG4gIGZsb2F0OiBub25lO1xuICBsZWZ0OiAxNXB4O1xuICB3aWR0aDogY2FsYygxMDAlIC0gMzBweCk7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAjYWNjZXNzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAjdG9wLW1lbnUge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxuICAjYnJhbmRpbmcgYS5sb2dvIGltZyB7XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgIG1hcmdpbjogMjBweCAwIDEwcHg7XG4gIH1cbiAgYS5sb2dvIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiAzMDBweDtcbiAgfVxuICAubWVudS10b3AtY29udGFpbmVyIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxuICAubWVudS10b3AtY29udGFpbmVyIHVsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuICAjYnJhbmRpbmcgI3NlYXJjaGZvcm0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IC0xNXB4IDAgMjBweDtcbiAgICBmbG9hdDogcmlnaHQ7XG4gIH1cbiAgLyogICAgTWVudSovXG4gIC5tZW51LXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMjUwcHg7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICB0cmFuc2l0aW9uOiAuNXMgZWFzZSBhbGw7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1MHB4LCAwKTtcbiAgICB6LWluZGV4OiAxMDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gIH1cbiAgI2FjY2VzcyBkaXYge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICAjYWNjZXNzIHtcbiAgICBmbG9hdDogbm9uZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgdG9wOiAwO1xuICB9XG4gICNhY2Nlc3MgdWwgdWwge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkMmQyZDI7XG4gIH1cbiAgI2FjY2VzcyB1bCB1bCBsaSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiBub25lO1xuICB9XG4gICNhY2Nlc3MgdWwgdWwgdWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgI2FjY2VzcyB1bCBsaTpob3ZlciA+IHVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNhY2Nlc3MgdWwgbGkgPiB1bC50b2dnbGVkLW9uIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZmxvYXQ6IG5vbmU7XG4gICAgdG9wOiBhdXRvO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG4gICNhY2Nlc3MgbGkge1xuICAgIGZsb2F0OiBub25lO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoaW1hZ2VzL25hdlNlcC5naWYpIG5vLXJlcGVhdCBsZWZ0IHRvcDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICAjbWVudS1tYWluIGxpIGEgc3Bhbi5zdWIge1xuICAgIHdpZHRoOiA4MCU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogNXB4IDEwcHggNXB4IDA7XG4gIH1cbiAgI21lbnUtbWFpbiBsaSBhIHNwYW4uc3ViIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgLm1haW4tbmF2aWdhdGlvbiAuZHJvcGRvd24tdG9nZ2xlIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cbiAgI2FjY2VzcyAjbWVudS1tYWluID4gbGk6aG92ZXIsXG4gICNhY2Nlc3MgI21lbnUtbWFpbiA+IGxpOmZvY3VzIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMztcbiAgfVxuICAuZHJvcGRvd24tdG9nZ2xlLnRvZ2dsZWQtb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmOWY5Zjk7XG4gIH1cbiAgI2FjY2VzcyB1bCNtZW51LW1haW4gdWwgdWwuc3ViLW1lbnUgPiBsaS5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gYnV0dG9uIHtcbiAgICAvKiAgICAgICAgYmFja2dyb3VuZDogbm9uZTsqL1xuICB9XG4gICNhY2Nlc3MgdWwgdWwgYSB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM3MTcxNzE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UyZTJlMjtcbiAgfVxuICBib2R5ICNhY2Nlc3MgbGkuY3VycmVudC1tZW51LWl0ZW0gYSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQgIWltcG9ydGFudDtcbiAgfVxuICAjYWNjZXNzIHVsIHVsIHVsIHVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmZiZmJmO1xuICB9XG4gICNhY2Nlc3MgdWwgdWwgbGkgbGkge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gIH1cbiAgI2FjY2VzcyB1bCB1bCBsaSB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgfVxuICAjYWNjZXNzIHVsI21lbnUtbWFpbiB1bC5zdWItbWVudSBsaSB1bC5zdWItbWVudSA+IGxpIGEsICNhY2Nlc3MgdWwjbWVudS1tYWluIHVsLnN1Yi1tZW51IGxpLm1lbnUtc3ViLXN0eWxlIGEge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjZWNlY2U7XG4gIH1cbiAgI2FjY2VzcyB1bCNtZW51LW1haW4gdWwuc3ViLW1lbnUgbGkgdWwuc3ViLW1lbnUgPiBsaS5tZW51LWl0ZW0taGFzLWNoaWxkcmVuID4gYnV0dG9uIGEge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlMmUyZTI7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuICAjYWNjZXNzIHVsI21lbnUtbWFpbiB1bC5zdWItbWVudSBsaSB1bC5zdWItbWVudSA+IGxpIHVsLnN1Yi1tZW51IGxpIGEge1xuICAgIGJhY2tncm91bmQ6ICNGRkY7XG4gIH1cbiAgZGl2I21haW46YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHRyYW5zaXRpb246IC4zcyBsaW5lYXIgYWxsO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHBlcnNwZWN0aXZlOiAxMDAwO1xuICB9XG4gIC5wdXNoIGRpdiNtYWluOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43KTtcbiAgICB0cmFuc2l0aW9uOiAuM3MgbGluZWFyIGFsbDtcbiAgICB6LWluZGV4OiAxMDA7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBwZXJzcGVjdGl2ZTogMTAwMDtcbiAgfVxuICAuYXJyb3ctZG93biB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2FkYWRhZDtcbiAgICBib3JkZXItd2lkdGg6IDAgMCAxcHggMXB4O1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogMTBweDtcbiAgICBtYXJnaW46IDVweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZyk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAyMHB4O1xuICAgIHRleHQtYWxpZ246IDA7XG4gICAgdG9wOiAxM3B4O1xuICB9XG4gIC50b2dnbGVkLW9uID4gYSAuYXJyb3ctZG93biB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgfVxufVxuXG4udG9nZ2xlZCAubWVudS13cmFwcGVyIHtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDI1MHB4O1xuICAtd2Via2l0LXRyYW5zaXRpb246IC41cyBlYXNlIGFsbDtcbiAgdHJhbnNpdGlvbjogLjVzIGVhc2UgYWxsO1xuICBwYWRkaW5nOiA1dmggMCAxNXZoIDA7XG59XG5cbi50b2dnbGVkIC5tZW51LXdyYXBwZXIgLm92ZXJsYXktY29udGVudCB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLnNpdGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtd2Via2l0LXRyYW5zaXRpb246IC43cyBlYXNlIHRyYW5zZm9ybTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIHRyYW5zaXRpb246IC43cyBlYXNlIHRyYW5zZm9ybTtcbiAgbWluLWhlaWdodDogMTAwdmg7XG59XG5cbi5wdXNoIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDI1MHB4LCAwKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjUwcHgsIDApO1xuICAtd2Via2l0LXRyYW5zaXRpb246IC41cyBlYXNlIHRyYW5zZm9ybTtcbiAgdHJhbnNpdGlvbjogLjVzIGVhc2UgdHJhbnNmb3JtO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm1haW4tbmF2aWdhdGlvbiB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuICBib2R5IHtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5tZW51LXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMjUwcHg7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICB0cmFuc2l0aW9uOiAuNXMgZWFzZSBhbGw7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI1MHB4LCAwKTtcbiAgICB6LWluZGV4OiAxMDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogNXZoIDAgMTV2aCAwO1xuICB9XG59XG5cbi50b2dnbGVkIC5tZW51LXdyYXBwZXIge1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMjUwcHg7XG4gIHRyYW5zaXRpb246IC41cyBlYXNlIGFsbDtcbn1cblxuLnRvZ2dsZWQgLm1lbnUtd3JhcHBlciAub3ZlcmxheS1jb250ZW50IHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm5hdi1tZW51ID4gbGkge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTUwMHB4LCAwKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMHMgMC40cztcbiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNywgMC4zLCAwLjUsIDEpO1xuICB9XG4gIC5uYXYtbWVudSA+IGxpLnNsaWRldXAge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuOHM7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjcsIDAuMywgMC41LCAxKTtcbiAgfVxufVxuXG4uc2l0ZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB0cmFuc2l0aW9uOiAuNXMgZWFzZSBhbGw7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cblxuLnB1c2gge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgyNTBweCwgMCkgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIHRyYW5zaXRpb246IC41cyBlYXNlIGFsbDtcbn1cbiIsIiRtZW51LXdpZHRoOiAyNTBweDtcblxuXG5AaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICBcbiAgICAubWFpbi1uYXZpZ2F0aW9uIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gICAgXG4gICAgYm9keSB7XG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICB9XG59XG5cbi5tZW51LXdyYXBwZXIge1xuXHRcblx0QGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG5cdFx0cG9zaXRpb246IGZpeGVkO1xuXHRcdHRvcDowO1xuXHRcdGxlZnQ6MDtcblx0XHR3aWR0aDogJG1lbnUtd2lkdGg7XG5cdFx0aGVpZ2h0OjEwMHZoO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcblx0XHR0cmFuc2l0aW9uOi41cyBlYXNlIGFsbDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLSN7JG1lbnUtd2lkdGh9LDApO1xuXHRcdHotaW5kZXg6IDEwMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiA1dmggMCAxNXZoIDA7IFxuXHR9XG4gICAgXG4gICAgLnRvZ2dsZWQgJiB7XG4gICAgICAgIGxlZnQ6MDtcbiAgICAgICAgd2lkdGg6ICRtZW51LXdpZHRoOyBcbiAgICAgICAgdHJhbnNpdGlvbjouNXMgZWFzZSBhbGw7XG4vLyAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAub3ZlcmxheS1jb250ZW50IHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy9saXN0IGFuaW1hdGlvbnNcbkBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgIFxuLy8gICAgJGk6IDg7IC8vbnVtYmVyIG9mIG1lbnUgaXRlbXNcbi8vICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGkge1xuLy8gICAgICAgIC5tYWluLW5hdmlnYXRpb24gbGk6bnRoLWNoaWxkKCN7JGl9KSB7IFxuLy8gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsKDAgKyAoJGkgKiA1MDApK3B4LDApKTtcbi8vXG4vLyAgICAgICAgfVxuLy8gICAgfVxuICAgIFxuICAgIC5uYXYtbWVudSA+IGxpIHtcbi8vICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4vLyAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDE1MDBweCwwKTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDBzIDAuNHM7XG4gICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43LDAuMywwLjUsMSk7XG4gICAgICAgIFxuLy8gICAgICAgICYuZmFkZWluIHtcbi8vICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG4vLyAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjhzO1xuLy8gICAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNywwLjMsMC41LDEpO1xuLy8gICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuLy8gICAgICAgICAgICBvcGFjaXR5OiAxO1xuLy8gICAgICAgICAgICB0cmFuc2l0aW9uOiAuNXMgZWFzZSBhbGw7XG4vLyAgICAgICAgfSBcbiAgICAgICAgXG4gICAgICAgICYuc2xpZGV1cCB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjhzO1xuICAgICAgICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjcsMC4zLDAuNSwxKTtcbi8vICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbi8vICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbn1cblxuLy9wYWdlIHN0eWxlc1xuXG4uc2l0ZSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dG9wOjA7XG5cdGxlZnQ6MDtcblx0dHJhbnNpdGlvbjouNXMgZWFzZSBhbGw7XG5cdG1pbi1oZWlnaHQ6IDEwMHZoO1xuICAgIHRyYW5zZm9ybTp0cmFuc2xhdGUoMCwwKSB0cmFuc2xhdGUzZCgwLDAsMCk7XG59XG4ucHVzaCB7XG4gICAgdHJhbnNmb3JtOnRyYW5zbGF0ZSgkbWVudS13aWR0aCwwKSB0cmFuc2xhdGUzZCgwLDAsMCk7XG5cdHRyYW5zaXRpb246LjVzIGVhc2UgYWxsO1xuLy9cdHBvc2l0aW9uOiBmaXhlZDtcbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */
