.selectric select {
  visibility: hidden; }

.selectric-wrapper {
  position: relative;
  cursor: pointer; }

.selectric-responsive {
  width: 100%; }

.selectric {
  display: flex;
  align-items: center;
  padding: 0 10px;
  border-bottom: 1px solid #b3d455;
  border-radius: 0px;
  background: #fff;
  position: relative;
  overflow: hidden; }
  .selectric .label {
    display: inline-block;
    vertical-align: middle;
    white-space: nowrap;
    overflow: hidden;
    padding: 0;
    text-overflow: ellipsis;
    margin: 0 38px 0 0;
    font-size: 1rem;
    font-weight: normal;
    line-height: 38px;
    color: #3c3c3c;
    height: 38px;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none; }
  .selectric .button {
    float: right;
    line-height: 38px;
    background-color: #fff;
    color: #3c3c3c;
    text-align: center;
    font-family: "Font Awesome 5 Free";
    font-style: normal;
    -webkit-font-feature-settings: normal;
            font-feature-settings: normal;
    font-variant: normal;
    font-weight: bold;
    font-size: 1.5em;
    text-rendering: auto;
    line-height: 1;
    vertical-align: middle; }
    .selectric .button::before {
      content: "\f078";
      font-size: .75em; }
    .selectric .button::after {
      content: none; }

.selectric-focus .selectric {
  border-color: #7d9c27; }

.selectric-hover .selectric {
  border-color: #9ec432; }
  .selectric-hover .selectric .button {
    color: #a2a2a2; }
    .selectric-hover .selectric .button:after {
      border-top-color: #a2a2a2; }

.chevron {
  transform: rotate(0deg);
  transition: all 0.2s ease-in-out; }

.selectric-open {
  z-index: 9999; }
  .selectric-open .selectric {
    border-color: #9ec432; }
  .selectric-open .selectric-items {
    display: block; }
  .selectric-open .chevron {
    transform: rotate(180deg); }

.selectric-disabled {
  filter: alpha(opacity=50);
  opacity: 0.5;
  cursor: default;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }

.selectric-hide-select {
  position: relative;
  overflow: hidden;
  width: 0;
  height: 0; }
  .selectric-hide-select select {
    position: absolute;
    left: -100%; }
  .selectric-hide-select.selectric-is-native {
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 10; }
    .selectric-hide-select.selectric-is-native select {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 100%;
      width: 100%;
      border: none;
      z-index: 1;
      box-sizing: border-box;
      opacity: 0; }

.selectric-input {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 1px !important;
  height: 1px !important;
  outline: none !important;
  border: none !important;
  *font: 0/0 a !important;
  background: none !important; }

.selectric-temp-show {
  position: absolute !important;
  visibility: hidden !important;
  display: block !important; }

/* Items box */
.selectric-items {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background: #fff;
  border: 0;
  z-index: -1;
  box-shadow: 0 0 10px -6px; }
  .selectric-items .selectric-scroll {
    height: 100%;
    overflow: auto; }
  .selectric-above .selectric-items {
    top: auto;
    bottom: 100%; }
  .selectric-items ul, .selectric-items li {
    list-style: none;
    padding: 0;
    margin: 0 !important;
    font-size: 1rem;
    line-height: 20px;
    min-height: 20px; }
  .selectric-items li {
    display: block;
    padding: 10px;
    color: #666;
    cursor: pointer;
    transition: all 0.2s; }
    @media (prefers-reduced-motion: reduce) {
      .selectric-items li {
        transition: none; } }
    .selectric-items li.selected {
      background: #b3d455;
      color: #091531; }
    .selectric-items li.highlighted {
      background: #b3d455;
      color: #091531; }
    .selectric-items li:hover {
      background: #d9eaaa;
      color: #091531; }
  .selectric-items .disabled {
    filter: alpha(opacity=50);
    opacity: 0.5;
    cursor: default !important;
    background: none !important;
    color: #666 !important;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none; }
  .selectric-items .selectric-group .selectric-group-label {
    padding-left: 10px;
    cursor: default;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    background: none; }
  .selectric-items .selectric-group.disabled li {
    filter: alpha(opacity=100);
    opacity: 1; }
  .selectric-items .selectric-group li {
    padding-left: 25px; }


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc2VsZWN0cmljLnNjc3MiLCJ3ZWJwYWNrOi8vL3Rvb2xzL192YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly8vLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fdHJhbnNpdGlvbi5zY3NzIiwid2VicGFjazovLy8uLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvX2Z1bmN0aW9ucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9CQTtFQUNFLGtCQUFrQjs7QUFHcEI7RUFDRSxrQkFBa0I7RUFDbEIsZUFBZTs7QUFHakI7RUFDRSxXQUFXOztBQUdiO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YsZ0NDcENZO0VEcUNaLGtCQXRCMkI7RUF1QjNCLGdCQTVCdUI7RUE2QnZCLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFSbEI7SUFXSSxxQkFBcUI7SUFDckIsc0JBQXNCO0lBQ3RCLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIsVUFBVTtJQUNWLHVCQUF1QjtJQUN2QixrQkFwQ2lCO0lBcUNqQixlQWpDc0I7SUFrQ3RCLG1CQUFtQjtJQUNuQixpQkFwQ3NFO0lBcUN0RSxjQzdDVztJRDhDWCxZQXRDc0U7SUF1Q3RFLHlCQUFpQjtPQUFqQixzQkFBaUI7UUFBakIscUJBQWlCO1lBQWpCLGlCQUFpQjtFQXZCckI7SUEyQkksWUFBWTtJQUNaLGlCQTVDc0U7SUE2Q3RFLHNCQWxEeUI7SUFtRHpCLGNDdERXO0lEdURYLGtCQUFrQjtJQUNsQixrQ0FBa0M7SUFDbEMsa0JBQWtCO0lBQ2xCLHFDQUFvQjtZQUFwQiw2QkFBb0I7SUFBcEIsb0JBQW9CO0lBQ3BCLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBQ3BCLGNBQWM7SUFDZCxzQkFBc0I7SUF2QzFCO01BMENNLGdCQUFnQjtNQUNoQixnQkFBZ0I7SUEzQ3RCO01BZ0RNLGFBQWE7O0FBS25CO0VBQ0UscUJBQWdEOztBQUdsRDtFQUNFLHFCQUFnRDtFQURsRDtJQUlJLGNBQThDO0lBSmxEO01BT00seUJBQXlEOztBQUsvRDtFQUNFLHVCQUF1QjtFQUN2QixnQ0NwQ21DOztBRHVDckM7RUFDRSxhQUFhO0VBRGY7SUFJSSxxQkFBZ0Q7RUFKcEQ7SUFRSSxjQUFjO0VBUmxCO0lBWUkseUJBQXlCOztBQUs3QjtFQUNFLHlCQUF5QjtFQUN6QixZQUFZO0VBQ1osZUFBZTtFQUNmLHlCQUFpQjtLQUFqQixzQkFBaUI7TUFBakIscUJBQWlCO1VBQWpCLGlCQUFpQjs7QUFHbkI7RUFDRSxrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLFFBQVE7RUFDUixTQUFTO0VBSlg7SUFPSSxrQkFBa0I7SUFDbEIsV0FBVztFQVJmO0lBWUksa0JBQWtCO0lBQ2xCLFdBQVc7SUFDWCxZQUFZO0lBQ1osV0FBVztJQWZmO01Ba0JNLGtCQUFrQjtNQUNsQixNQUFNO01BQ04sT0FBTztNQUNQLFFBQVE7TUFDUixZQUFZO01BQ1osV0FBVztNQUNYLFlBQVk7TUFDWixVQUFVO01BQ1Ysc0JBQXNCO01BQ3RCLFVBQVU7O0FBS2hCO0VBQ0UsNkJBQTZCO0VBQzdCLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsMkJBQTJCO0VBQzNCLGlDQUFpQztFQUNqQyxvQkFBb0I7RUFDcEIscUJBQXFCO0VBQ3JCLHFCQUFxQjtFQUNyQixzQkFBc0I7RUFDdEIsd0JBQXdCO0VBQ3hCLHVCQUF1QjtHQXZEdkIsc0JBd0R1QjtFQUN2QiwyQkFBMkI7O0FBRzdCO0VBQ0UsNkJBQTZCO0VBQzdCLDZCQUE2QjtFQUM3Qix5QkFBeUI7O0FBRzNCO0FBQ0E7RUFDRSxhQUFhO0VBQ2Isa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxPQUFPO0VBQ1AsZ0JBcEx1QjtFQXFMdkIsU0FBUztFQUNULFdBQVc7RUFDWCx5QkFBeUI7RUFSM0I7SUFXSSxZQUFZO0lBQ1osY0FBYztFQUdoQjtJQUNFLFNBQVM7SUFDVCxZQUFZO0VBakJoQjtJQXFCSSxnQkFBZ0I7SUFDaEIsVUFBVTtJQUNWLG9CQUFvQjtJQUNwQixlQWhNc0I7SUFpTXRCLGlCQUFpQjtJQUNqQixnQkFBZ0I7RUExQnBCO0lBOEJJLGNBQWM7SUFDZCxhQUFhO0lBQ2IsV0FBVztJQUNYLGVBQWU7SUUzTWIsb0JGNE15QjtJRXhNekI7TUZzS047UUVyS1EsZ0JBQWdCLElGdU5yQjtJQWxESDtNQXFDTSxtQkM5TlE7TUQrTlIsY0MzTmE7SURxTG5CO01BMENNLG1CQ25PUTtNRG9PUixjQ2hPYTtJRHFMbkI7TUErQ00sbUJHM0IrQjtNSDRCL0IsY0NyT2E7RURxTG5CO0lBcURJLHlCQUF5QjtJQUN6QixZQUFZO0lBQ1osMEJBQTBCO0lBQzFCLDJCQUEyQjtJQUMzQixzQkFBc0I7SUFDdEIseUJBQWlCO09BQWpCLHNCQUFpQjtRQUFqQixxQkFBaUI7WUFBakIsaUJBQWlCO0VBMURyQjtJQStETSxrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLHlCQUFpQjtPQUFqQixzQkFBaUI7UUFBakIscUJBQWlCO1lBQWpCLGlCQUFpQjtJQUNqQixnQkFBZ0I7RUFsRXRCO0lBc0VNLDBCQUEwQjtJQUMxQixVQUFVO0VBdkVoQjtJQTJFTSxrQkFBa0IiLCJmaWxlIjoiLi9jc3Mvc2VsZWN0cmljLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgXCJ+Ym9vdHN0cmFwL3Njc3MvZnVuY3Rpb25zXCI7XG5cbkBpbXBvcnQgJ3Rvb2xzL3ZhcmlhYmxlcyc7XG5cbkBpbXBvcnQgXCJ+Ym9vdHN0cmFwL3Njc3MvdmFyaWFibGVzXCI7XG5AaW1wb3J0IFwifmJvb3RzdHJhcC9zY3NzL21peGluc1wiO1xuQGltcG9ydCBcIn5ib290c3RyYXAvc2Nzcy91dGlsaXRpZXNcIjtcblxuJHNlbGVjdHJpYy1tYWluLWNvbG9yOiAkbGltZTsgLy8gQ29sb3IgdXNlZCBpbiBib3JkZXJcbiRzZWxlY3RyaWMtc2Vjb25kYXJ5LWNvbG9yOiAjQkJCICFkZWZhdWx0OyAvLyBDb2xvciB1c2VkIGluIGJ1dHRvblxuJHNlbGVjdHJpYy10ZXh0LWNvbG9yOiAkdGV4dC1jb2xvcjsgLy8gQ29sb3IgdXNlZCBpbiBsYWJlbFxuJHNlbGVjdHJpYy1iZy1jb2xvcjogI2ZmZjsgLy8gQmFja2dyb3VuZCBjb2xvclxuJHNlbGVjdHJpYy1idG4tYmctY29sb3I6ICNmZmY7IC8vIEJ1dHRvbiBiYWNrZ3JvdW5kIGNvbG9yXG4kc2VsZWN0cmljLWhlaWdodDogNDBweCAhZGVmYXVsdDsgLy8gT3V0ZXIgaGVpZ2h0XG4kc2VsZWN0cmljLXNwYWNpbmc6IDA7IC8vIExhYmVsIGxlZnQgcGFkZGluZ1xuJHNlbGVjdHJpYy1ib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDsgLy8gT3V0ZXIgYm9yZGVyIHdpZHRoXG4kc2VsZWN0cmljLWJvcmRlci1yYWRpdXM6IDBweCAhZGVmYXVsdDsgLy8gQm9yZGVyIHJhZGl1c1xuJHNlbGVjdHJpYy1pbm5lci1oZWlnaHQ6ICRzZWxlY3RyaWMtaGVpZ2h0IC0gKCRzZWxlY3RyaWMtYm9yZGVyLXdpZHRoICogMikgIWRlZmF1bHQ7IC8vIElubmVyIGhlaWdodFxuJHNlbGVjdHJpYy1mb250LXNpemU6IDFyZW07IC8vIEZvbnQgc2l6ZVxuXG4uc2VsZWN0cmljIHNlbGVjdCB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnNlbGVjdHJpYy13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5zZWxlY3RyaWMtcmVzcG9uc2l2ZSB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uc2VsZWN0cmljIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMCAxMHB4O1xuICBib3JkZXItYm90dG9tOiAkc2VsZWN0cmljLWJvcmRlci13aWR0aCBzb2xpZCAkc2VsZWN0cmljLW1haW4tY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6ICRzZWxlY3RyaWMtYm9yZGVyLXJhZGl1cztcbiAgYmFja2dyb3VuZDogJHNlbGVjdHJpYy1iZy1jb2xvcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIC5sYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgbWFyZ2luOiAwICRzZWxlY3RyaWMtaW5uZXItaGVpZ2h0IDAgJHNlbGVjdHJpYy1zcGFjaW5nO1xuICAgIGZvbnQtc2l6ZTogJHNlbGVjdHJpYy1mb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBsaW5lLWhlaWdodDogJHNlbGVjdHJpYy1pbm5lci1oZWlnaHQ7XG4gICAgY29sb3I6ICRzZWxlY3RyaWMtdGV4dC1jb2xvcjtcbiAgICBoZWlnaHQ6ICRzZWxlY3RyaWMtaW5uZXItaGVpZ2h0O1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICB9XG5cbiAgLmJ1dHRvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkc2VsZWN0cmljLWlubmVyLWhlaWdodDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2VsZWN0cmljLWJ0bi1iZy1jb2xvcjtcbiAgICBjb2xvcjogJHRleHQtY29sb3I7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA1IEZyZWVcIjtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAxLjVlbTtcbiAgICB0ZXh0LXJlbmRlcmluZzogYXV0bztcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXFxmMDc4XCI7XG4gICAgICBmb250LXNpemU6IC43NWVtO1xuXG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgY29udGVudDogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLnNlbGVjdHJpYy1mb2N1cyAuc2VsZWN0cmljIHtcbiAgYm9yZGVyLWNvbG9yOiBkYXJrZW4oJHNlbGVjdHJpYy1tYWluLWNvbG9yLCAyMCUpO1xufVxuXG4uc2VsZWN0cmljLWhvdmVyIC5zZWxlY3RyaWMge1xuICBib3JkZXItY29sb3I6IGRhcmtlbigkc2VsZWN0cmljLW1haW4tY29sb3IsIDEwJSk7XG5cbiAgLmJ1dHRvbiB7XG4gICAgY29sb3I6IGRhcmtlbigkc2VsZWN0cmljLXNlY29uZGFyeS1jb2xvciwgMTAlKTtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgYm9yZGVyLXRvcC1jb2xvcjogZGFya2VuKCRzZWxlY3RyaWMtc2Vjb25kYXJ5LWNvbG9yLCAxMCUpO1xuICAgIH1cbiAgfVxufVxuXG4uY2hldnJvbiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbi1iYXNlO1xufVxuXG4uc2VsZWN0cmljLW9wZW4ge1xuICB6LWluZGV4OiA5OTk5O1xuXG4gIC5zZWxlY3RyaWMge1xuICAgIGJvcmRlci1jb2xvcjogZGFya2VuKCRzZWxlY3RyaWMtbWFpbi1jb2xvciwgMTAlKTtcbiAgfVxuXG4gIC5zZWxlY3RyaWMtaXRlbXMge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLmNoZXZyb24ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gIH1cblxufVxuXG4uc2VsZWN0cmljLWRpc2FibGVkIHtcbiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTUwKTtcbiAgb3BhY2l0eTogMC41O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4uc2VsZWN0cmljLWhpZGUtc2VsZWN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuXG4gIHNlbGVjdCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IC0xMDAlO1xuICB9XG5cbiAgJi5zZWxlY3RyaWMtaXMtbmF0aXZlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IDEwO1xuXG4gICAgc2VsZWN0IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxufVxuXG4uc2VsZWN0cmljLWlucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHRvcDogMCAhaW1wb3J0YW50O1xuICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICB3aWR0aDogMXB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMXB4ICFpbXBvcnRhbnQ7XG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICpmb250OiAwLzAgYSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3RyaWMtdGVtcC1zaG93IHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuXG4vKiBJdGVtcyBib3ggKi9cbi5zZWxlY3RyaWMtaXRlbXMge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZDogJHNlbGVjdHJpYy1iZy1jb2xvcjtcbiAgYm9yZGVyOiAwO1xuICB6LWluZGV4OiAtMTtcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggLTZweDtcblxuICAuc2VsZWN0cmljLXNjcm9sbCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICB9XG5cbiAgLnNlbGVjdHJpYy1hYm92ZSAmIHtcbiAgICB0b3A6IGF1dG87XG4gICAgYm90dG9tOiAxMDAlO1xuICB9XG5cbiAgdWwsIGxpIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAkc2VsZWN0cmljLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBtaW4taGVpZ2h0OiAyMHB4O1xuICB9XG5cbiAgbGkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgY29sb3I6ICM2NjY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIC4ycyk7XG5cbiAgICAmLnNlbGVjdGVkIHtcbiAgICAgIGJhY2tncm91bmQ6ICRsaW1lO1xuICAgICAgY29sb3I6ICRkYXJrLWJsdWU7XG4gICAgfVxuXG4gICAgJi5oaWdobGlnaHRlZCB7XG4gICAgICBiYWNrZ3JvdW5kOiAkbGltZTtcbiAgICAgIGNvbG9yOiAkZGFyay1ibHVlO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogdGludC1jb2xvcigkbGltZSwgNTAlKTtcbiAgICAgIGNvbG9yOiAkZGFyay1ibHVlO1xuICAgIH1cbiAgfVxuXG4gIC5kaXNhYmxlZCB7XG4gICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTUwKTtcbiAgICBvcGFjaXR5OiAwLjU7XG4gICAgY3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjNjY2ICFpbXBvcnRhbnQ7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIH1cblxuICAuc2VsZWN0cmljLWdyb3VwIHtcbiAgICAuc2VsZWN0cmljLWdyb3VwLWxhYmVsIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB9XG5cbiAgICAmLmRpc2FibGVkIGxpIHtcbiAgICAgIGZpbHRlcjogYWxwaGEob3BhY2l0eT0xMDApO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDI1cHg7XG4gICAgfVxuICB9XG59XG4iLCIvLyoqIENvbG91cnNcbiRsaW1lOiAjYjNkNDU1O1xuJGJyaWNrOiAjZjU4NDY2O1xuJGJyb3duOiAjZGM4NDY0O1xuJGJsdWU6ICMwZTQxOTQ7XG4kZGFyay1ibHVlOiAjMDkxNTMxO1xuJHNreS1ibHVlOiAjOWJkNGRmO1xuJG1pZGRsZS1ibHVlOiAjMzg0MTU4O1xuJG5pZ2h0LWJsdWU6ICMxMDM1Mzg7XG4kYmxhY2s6ICMzYzNjM2M7XG4kbWlkZGxlLWdyYXk6ICNjZmNmY2Y7XG4kbGluazogI2I4NTEyOTtcbiRsaW5rLXZpc2l0ZWQ6ICM5Yjc0NmI7XG4kbGluay1ibHVlOiAjMmE2MjkzO1xuJGNvbG9yLWJvcmRlci1uYXY6ICMwMDMzYTA7XG4kZGFyay1ncmVlbjogIzcxOTQxOTtcbiRncmVlbjogI2IzZDQ1NTtcbiRsaWdodC1ncmVlbjogIzkyYzAyMDtcbiR3aGl0ZTogI2ZmZjtcbiR5ZWxsb3c6ICNmZjA7XG4kb3JhbmdlOiAjZmVjMzU3O1xuJHJlZDogI2YwMDtcblxuJGdyYXktYmFzZTogJG1pZGRsZS1ncmF5O1xuJGdyYXktZGFyazogIzVhNWE1YTtcbiRncmF5LWxpZ2h0OiAjZjZmM2YwO1xuJGdyYXktZXh0cmEtbGlnaHQ6ICNmYWZhZmE7XG4kZ3JheS1tZWRpdW06ICNjZWNlY2U7XG5cbiRuYXYtbGluay1jb2xvcjogJHdoaXRlO1xuJG5hdi1saW5rLWhvdmVyLWNvbG9yOiAkYnJpY2s7XG5cbiRwcmltYXJ5OiAkYnJvd247XG4kc2Vjb25kYXJ5OiAkZ3JheS1kYXJrO1xuJHN1Y2Nlc3M6ICRsaW1lO1xuJGluZm86ICRza3ktYmx1ZTtcbiR3YXJuaW5nOiAkeWVsbG93O1xuJGRhbmdlcjogJHJlZDtcbiRsaWdodDogJGdyYXktbGlnaHQ7XG4kbGlnaHRlcjogJGdyYXktZXh0cmEtbGlnaHQ7XG4vLyRsaWdodGVyOiAgICAgICA7XG4kZGFyazogJGJsYWNrO1xuXG4kdGhlbWUtY29sb3JzOiAoXG4gIFwicHJpbWFyeVwiOiAkcHJpbWFyeSxcbiAgXCJzZWNvbmRhcnlcIjogJHNlY29uZGFyeSxcbiAgXCJzdWNjZXNzXCI6ICRzdWNjZXNzLFxuICBcImluZm9cIjogJGluZm8sXG4gIFwid2FybmluZ1wiOiAkd2FybmluZyxcbiAgXCJkYW5nZXJcIjogJGRhbmdlcixcbiAgXCJsaWdodFwiOiAkbGlnaHQsXG4gIFwibGlnaHRlclwiOiAkbGlnaHRlcixcbiAgXCJkYXJrXCI6ICRkYXJrLFxuICBcIm1lZGl1bVwiOiAkbWlkZGxlLWdyYXksXG4gIFwiYnJpY2tcIjogJHByaW1hcnksXG4gIFwiYnJvd25cIjogJGJyb3duLFxuICBcImJsdWVcIjogJGJsdWUsXG4gIFwibGlnaHQtYmx1ZVwiOiAkc2t5LWJsdWUsXG4gIFwiZ3JlZW5cIjogJGdyZWVuLFxuICBcIm9yYW5nZVwiOiAkb3JhbmdlLFxuICBcInJlZFwiOiAkcmVkLFxuICBcInllbGxvd1wiOiAkeWVsbG93LFxuICBcIndoaXRlXCI6ICR3aGl0ZVxuKTtcblxuJGJvZHktYmc6ICR3aGl0ZTtcbiRib2R5LWNvbG9yOiAkYmxhY2s7XG4kYm9keS10ZXh0LWFsaWduOiBsZWZ0O1xuJHRyYW5zaXRpb24tYmFzZTogYWxsIC4ycyBlYXNlLWluLW91dDtcblxuJGZvbnQtc2l6ZS1iYXNlOiAxLjNyZW07XG4kZm9udC1zaXplLWxnOiAkZm9udC1zaXplLWJhc2UgKiAxLjE1O1xuJGxpbmUtaGVpZ2h0LWJhc2U6IDEuMztcbiRsZWFkLWZvbnQtd2VpZ2h0OiA0MDA7XG4kbGVhZC1mb250LXNpemU6IDEuNHJlbTtcblxuJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6IFwiVHJpdmlhIFNhbnNcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWYtbWVkaXVtOiBcIlRyaXZpYSBTYW5zIE1lZGl1bVwiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kZm9udC1mYW1pbHktc2Fucy1zZXJpZi1saWdodDogXCJUcml2aWEgU2FucyBMaWdodFwiLCBcIkhlbHZldGljYSBOZXVlXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG5cbiRmb250LWZhbWlseS1zZXJpZjogXCJUcml2aWEgU2VyaWZcIiwgR2VvcmdpYSwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgVGltZXMsIHNlcmlmO1xuJGZvbnQtZmFtaWx5LXNlcmlmLWJvb2s6IFwiVHJpdmlhIFNlcmlmIEJvb2tcIiwgR2VvcmdpYSwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgVGltZXMsIHNlcmlmO1xuJGZvbnQtZmFtaWx5LXNlcmlmLWJsYWNrOiBcIlRyaXZpYSBTZXJpZiBCbGFja1wiLCBHZW9yZ2lhLCBcIlRpbWVzIE5ldyBSb21hblwiLCBUaW1lcywgc2VyaWY7XG5cbiRmb250LWZhbWlseS1zbGFiOiBcIlRyaXZpYSBTbGFiXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRmb250LWZhbWlseS1zbGFiLW1lZGl1bTogXCJUcml2aWEgU2xhYiBNZWRpdW1cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJGZvbnQtZmFtaWx5LXNsYWItYm9vazogXCJUcml2aWEgU2xhYiBCb29rXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiRmb250LWZhbWlseS1zbGFiLWJsYWNrOiBcIlRyaXZpYSBTbGFiIEJsYWNrXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcblxuJGZvbnQtd2VpZ2h0LWJvbGQ6IDgwMDtcblxuJHRleHQtY29sb3I6ICRibGFjaztcbiRsaW5rLWNvbG9yOiAkbGluaztcbiRsaW5rLWhvdmVyLWNvbG9yOiBkYXJrZW4oJGxpbmssIDIwJSk7XG4kbGluay1ob3Zlci1kZWNvcmF0aW9uOiB1bmRlbGluZTtcbiRoZWFkaW5ncy1mb250LXdlaWdodDogNDAwO1xuXG4kYnRuLWRlZmF1bHQtY29sb3I6ICRkYXJrLWJsdWU7XG4kYnRuLWRlZmF1bHQtYmc6ICRsaW1lO1xuJGJ0bi1kZWZhdWx0LWJvcmRlcjogJGxpbWU7XG5cbiRidG4tcHJpbWFyeS1jb2xvcjogJHdoaXRlO1xuJGJ0bi1wcmltYXJ5LWJnOiAkYnJpY2s7XG4kYnRuLXByaW1hcnktYm9yZGVyOiAkYnJpY2s7XG5cbiRncmlkLWd1dHRlci13aWR0aDogNjBweDtcblxuJGVuYWJsZS1uZWdhdGl2ZS1tYXJnaW5zOiB0cnVlO1xuJHNwYWNlcjogMXJlbTtcbiRzcGFjZXJzOiAoXG4gIDA6IDAsXG4gIDE6ICRzcGFjZXIgKiAuMjUsXG4gIDI6ICRzcGFjZXIgKiAuNSxcbiAgMzogJHNwYWNlcixcbiAgNDogJHNwYWNlciAqIDEuNSxcbiAgNTogJHNwYWNlciAqIDMsXG4gIDY6ICRzcGFjZXIgKiA0LjUsXG4gIDc6ICRzcGFjZXIgKiA1LFxuICA4OiAkc3BhY2VyICogNlxuKTtcblxuXG4kYmFkZ2UtZm9udC1zaXplOiAxLjFyZW07XG4kYmFkZ2UtZm9udC13ZWlnaHQ6IDQwMDtcbiRiYWRnZS1jb2xvcjogJGJsYWNrO1xuJGJhZGdlLWJvcmRlci1yYWRpdXM6IDA7XG5cbiRjb250YWluZXItbWF4LXdpZHRoczogKFxuICBzbTogNTQwcHgsXG4gIG1kOiA3MjBweCxcbiAgbGc6IDk2MHB4LFxuICB4bDogMTE0MHB4LFxuICB4eGw6IDE0NDBweFxuKTtcblxuLy8kY29udGFpbmVyLXBhZGRpbmcteDogMjBweDtcblxuLy8gQnV0dG9ucyArIEZvcm1zXG4vL1xuLy8gU2hhcmVkIHZhcmlhYmxlcyB0aGF0IGFyZSByZWFzc2lnbmVkIHRvIGAkaW5wdXQtYCBhbmQgYCRidG4tYCBzcGVjaWZpYyB2YXJpYWJsZXMuXG5cbi8vIHNjc3MtZG9jcy1zdGFydCBpbnB1dC1idG4tdmFyaWFibGVzXG4kaW5wdXQtYnRuLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktc2Fucy1zZXJpZjtcblxuJGlucHV0LWJ0bi1mb2N1cy13aWR0aDogLjI1cmVtICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1mb2N1cy1jb2xvci1vcGFjaXR5OiAuMjUgIWRlZmF1bHQ7XG5cbiRpbnB1dC1idG4tcGFkZGluZy15OiAwO1xuJGlucHV0LWJ0bi1wYWRkaW5nLXktc206IDA7XG4kaW5wdXQtYnRuLXBhZGRpbmcteC1zbTogMDtcblxuJGlucHV0LWJ0bi1wYWRkaW5nLXktbGc6IC41cmVtICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1wYWRkaW5nLXgtbGc6IDFyZW0gIWRlZmF1bHQ7XG5cblxuLy8gZm9ybXNcbiRmb3JtLWxhYmVsLW1hcmdpbi1ib3R0b206IDA7XG4kZm9ybS1sYWJlbC1mb250LXNpemU6IDFyZW07XG4kZm9ybS1sYWJlbC1mb250LXN0eWxlOiBub3JtYWw7XG4kZm9ybS1sYWJlbC1mb250LXdlaWdodDogbm9ybWFsO1xuJGZvcm0tbGFiZWwtY29sb3I6ICR0ZXh0LWNvbG9yO1xuXG4kaW5wdXQtcGFkZGluZy15OiAwO1xuJGlucHV0LXBhZGRpbmcteDogMTBweDtcbiRpbnB1dC1mb250LWZhbWlseTogJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY7XG4kaW5wdXQtZm9udC1zaXplOiAxcmVtO1xuJGlucHV0LWZvbnQtd2VpZ2h0OiBub3JtYWw7XG4kaW5wdXQtbGluZS1oZWlnaHQ6IDIuNDtcblxuJGlucHV0LWJnOiAkd2hpdGU7XG4kaW5wdXQtZGlzYWJsZWQtYmc6ICRncmF5LWxpZ2h0O1xuJGlucHV0LWRpc2FibGVkLWJvcmRlci1jb2xvcjogbnVsbDtcbiRpbnB1dC1jb2xvcjogJHRleHQtY29sb3I7XG4kaW5wdXQtYm9yZGVyLXdpZHRoOiAxcHg7XG4kaW5wdXQtYm9yZGVyLWNvbG9yOiAkd2hpdGU7XG4kaW5wdXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoJGJsYWNrLCAuMDc1KTtcblxuJGlucHV0LWJvcmRlci1yYWRpdXM6IDA7XG4kaW5wdXQtYm9yZGVyLXJhZGl1cy1zbTogMDtcbiRpbnB1dC1ib3JkZXItcmFkaXVzLWxnOiAwO1xuXG4kaW5wdXQtZm9jdXMtYmc6IHRpbnQtY29sb3IoJGxpbWUsIDUwJSk7XG4kaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yOiB0aW50LWNvbG9yKCRsaW1lLCA1MCUpO1xuJGlucHV0LWZvY3VzLWNvbG9yOiAkaW5wdXQtY29sb3I7XG4kaW5wdXQtZm9jdXMtd2lkdGg6ICRpbnB1dC1idG4tZm9jdXMtd2lkdGg7XG4kaW5wdXQtZm9jdXMtYm94LXNoYWRvdzogbm9uZTtcblxuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkdGV4dC1jb2xvcjtcbiRpbnB1dC1wbGFpbnRleHQtY29sb3I6ICRib2R5LWNvbG9yO1xuXG4kaW5wdXQtaGVpZ2h0LWJvcmRlcjogJGlucHV0LWJvcmRlci13aWR0aCAqIDI7XG5cbiRpbnB1dC1oZWlnaHQtaW5uZXI6IGFkZCgkaW5wdXQtbGluZS1oZWlnaHQgKiAxZW0sICRpbnB1dC1wYWRkaW5nLXkgKiAyKTtcbiRpbnB1dC1oZWlnaHQtaW5uZXItaGFsZjogYWRkKCRpbnB1dC1saW5lLWhlaWdodCAqIC41ZW0sICRpbnB1dC1wYWRkaW5nLXkpO1xuJGlucHV0LWhlaWdodC1pbm5lci1xdWFydGVyOiBhZGQoJGlucHV0LWxpbmUtaGVpZ2h0ICogLjI1ZW0sICRpbnB1dC1wYWRkaW5nLXkgKiAuNSk7XG5cbiRpbnB1dC1oZWlnaHQ6IGFkZCgkaW5wdXQtbGluZS1oZWlnaHQgKiAxZW0sIGFkZCgkaW5wdXQtcGFkZGluZy15ICogMiwgJGlucHV0LWhlaWdodC1ib3JkZXIsIGZhbHNlKSk7XG5cbiRpbnB1dC10cmFuc2l0aW9uOiAkdHJhbnNpdGlvbi1iYXNlO1xuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgY2FyZC12YXJpYWJsZXNcbiRjYXJkLXNwYWNlci15OiAkc3BhY2VyO1xuJGNhcmQtc3BhY2VyLXg6ICRzcGFjZXI7XG4kY2FyZC1jYXAtcGFkZGluZy15OiAkY2FyZC1zcGFjZXIteTtcbiRjYXJkLWNhcC1wYWRkaW5nLXg6ICRjYXJkLXNwYWNlci14O1xuJGNhcmQtY2FwLWJnOiAkbGlnaHQ7XG4kY2FyZC1ib3JkZXItY29sb3I6ICRsaWdodDtcblxuLy8gTW9kYWxzXG5cbi8vIHNjc3MtZG9jcy1zdGFydCBtb2RhbC12YXJpYWJsZXNcbiRtb2RhbC1jb250ZW50LWJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4kbW9kYWwtaGVhZGVyLWJvcmRlci13aWR0aDogMDtcbiRtb2RhbC1mb290ZXItYm9yZGVyLXdpZHRoOiAwO1xuXG5cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIHByb3BlcnR5LWRpc2FsbG93ZWQtbGlzdFxuQG1peGluIHRyYW5zaXRpb24oJHRyYW5zaXRpb24uLi4pIHtcbiAgQGlmIGxlbmd0aCgkdHJhbnNpdGlvbikgPT0gMCB7XG4gICAgJHRyYW5zaXRpb246ICR0cmFuc2l0aW9uLWJhc2U7XG4gIH1cblxuICBAaWYgbGVuZ3RoKCR0cmFuc2l0aW9uKSA+IDEge1xuICAgIEBlYWNoICR2YWx1ZSBpbiAkdHJhbnNpdGlvbiB7XG4gICAgICBAaWYgJHZhbHVlID09IG51bGwgb3IgJHZhbHVlID09IG5vbmUge1xuICAgICAgICBAd2FybiBcIlRoZSBrZXl3b3JkICdub25lJyBvciAnbnVsbCcgbXVzdCBiZSB1c2VkIGFzIGEgc2luZ2xlIGFyZ3VtZW50LlwiO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkZW5hYmxlLXRyYW5zaXRpb25zIHtcbiAgICBAaWYgbnRoKCR0cmFuc2l0aW9uLCAxKSAhPSBudWxsIHtcbiAgICAgIHRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xuICAgIH1cblxuICAgIEBpZiAkZW5hYmxlLXJlZHVjZWQtbW90aW9uIGFuZCBudGgoJHRyYW5zaXRpb24sIDEpICE9IG51bGwgYW5kIG50aCgkdHJhbnNpdGlvbiwgMSkgIT0gbm9uZSB7XG4gICAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gQm9vdHN0cmFwIGZ1bmN0aW9uc1xuLy9cbi8vIFV0aWxpdHkgbWl4aW5zIGFuZCBmdW5jdGlvbnMgZm9yIGV2YWx1YXRpbmcgc291cmNlIGNvZGUgYWNyb3NzIG91ciB2YXJpYWJsZXMsIG1hcHMsIGFuZCBtaXhpbnMuXG5cbi8vIEFzY2VuZGluZ1xuLy8gVXNlZCB0byBldmFsdWF0ZSBTYXNzIG1hcHMgbGlrZSBvdXIgZ3JpZCBicmVha3BvaW50cy5cbkBtaXhpbiBfYXNzZXJ0LWFzY2VuZGluZygkbWFwLCAkbWFwLW5hbWUpIHtcbiAgJHByZXYta2V5OiBudWxsO1xuICAkcHJldi1udW06IG51bGw7XG4gIEBlYWNoICRrZXksICRudW0gaW4gJG1hcCB7XG4gICAgQGlmICRwcmV2LW51bSA9PSBudWxsIG9yIHVuaXQoJG51bSkgPT0gXCIlXCIgb3IgdW5pdCgkcHJldi1udW0pID09IFwiJVwiIHtcbiAgICAgIC8vIERvIG5vdGhpbmdcbiAgICB9IEBlbHNlIGlmIG5vdCBjb21wYXJhYmxlKCRwcmV2LW51bSwgJG51bSkge1xuICAgICAgQHdhcm4gXCJQb3RlbnRpYWxseSBpbnZhbGlkIHZhbHVlIGZvciAjeyRtYXAtbmFtZX06IFRoaXMgbWFwIG11c3QgYmUgaW4gYXNjZW5kaW5nIG9yZGVyLCBidXQga2V5ICcjeyRrZXl9JyBoYXMgdmFsdWUgI3skbnVtfSB3aG9zZSB1bml0IG1ha2VzIGl0IGluY29tcGFyYWJsZSB0byAjeyRwcmV2LW51bX0sIHRoZSB2YWx1ZSBvZiB0aGUgcHJldmlvdXMga2V5ICcjeyRwcmV2LWtleX0nICFcIjtcbiAgICB9IEBlbHNlIGlmICRwcmV2LW51bSA+PSAkbnVtIHtcbiAgICAgIEB3YXJuIFwiSW52YWxpZCB2YWx1ZSBmb3IgI3skbWFwLW5hbWV9OiBUaGlzIG1hcCBtdXN0IGJlIGluIGFzY2VuZGluZyBvcmRlciwgYnV0IGtleSAnI3ska2V5fScgaGFzIHZhbHVlICN7JG51bX0gd2hpY2ggaXNuJ3QgZ3JlYXRlciB0aGFuICN7JHByZXYtbnVtfSwgdGhlIHZhbHVlIG9mIHRoZSBwcmV2aW91cyBrZXkgJyN7JHByZXYta2V5fScgIVwiO1xuICAgIH1cbiAgICAkcHJldi1rZXk6ICRrZXk7XG4gICAgJHByZXYtbnVtOiAkbnVtO1xuICB9XG59XG5cbi8vIFN0YXJ0cyBhdCB6ZXJvXG4vLyBVc2VkIHRvIGVuc3VyZSB0aGUgbWluLXdpZHRoIG9mIHRoZSBsb3dlc3QgYnJlYWtwb2ludCBzdGFydHMgYXQgMC5cbkBtaXhpbiBfYXNzZXJ0LXN0YXJ0cy1hdC16ZXJvKCRtYXAsICRtYXAtbmFtZTogXCIkZ3JpZC1icmVha3BvaW50c1wiKSB7XG4gIEBpZiBsZW5ndGgoJG1hcCkgPiAwIHtcbiAgICAkdmFsdWVzOiBtYXAtdmFsdWVzKCRtYXApO1xuICAgICRmaXJzdC12YWx1ZTogbnRoKCR2YWx1ZXMsIDEpO1xuICAgIEBpZiAkZmlyc3QtdmFsdWUgIT0gMCB7XG4gICAgICBAd2FybiBcIkZpcnN0IGJyZWFrcG9pbnQgaW4gI3skbWFwLW5hbWV9IG11c3Qgc3RhcnQgYXQgMCwgYnV0IHN0YXJ0cyBhdCAjeyRmaXJzdC12YWx1ZX0uXCI7XG4gICAgfVxuICB9XG59XG5cbi8vIENvbG9yc1xuQGZ1bmN0aW9uIHRvLXJnYigkdmFsdWUpIHtcbiAgQHJldHVybiByZWQoJHZhbHVlKSwgZ3JlZW4oJHZhbHVlKSwgYmx1ZSgkdmFsdWUpO1xufVxuXG4vLyBzdHlsZWxpbnQtZGlzYWJsZSBzY3NzL2RvbGxhci12YXJpYWJsZS1wYXR0ZXJuXG5AZnVuY3Rpb24gcmdiYS1jc3MtdmFyKCRpZGVudGlmaWVyLCAkdGFyZ2V0KSB7XG4gIEBpZiAkaWRlbnRpZmllciA9PSBcImJvZHlcIiBhbmQgJHRhcmdldCA9PSBcImJnXCIge1xuICAgIEByZXR1cm4gcmdiYSh2YXIoLS0jeyR2YXJpYWJsZS1wcmVmaXh9I3skaWRlbnRpZmllcn0tYmctcmdiKSwgdmFyKC0tI3skdmFyaWFibGUtcHJlZml4fSN7JHRhcmdldH0tb3BhY2l0eSkpO1xuICB9IEBpZiAkaWRlbnRpZmllciA9PSBcImJvZHlcIiBhbmQgJHRhcmdldCA9PSBcInRleHRcIiB7XG4gICAgQHJldHVybiByZ2JhKHZhcigtLSN7JHZhcmlhYmxlLXByZWZpeH0jeyRpZGVudGlmaWVyfS1jb2xvci1yZ2IpLCB2YXIoLS0jeyR2YXJpYWJsZS1wcmVmaXh9I3skdGFyZ2V0fS1vcGFjaXR5KSk7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gcmdiYSh2YXIoLS0jeyR2YXJpYWJsZS1wcmVmaXh9I3skaWRlbnRpZmllcn0tcmdiKSwgdmFyKC0tI3skdmFyaWFibGUtcHJlZml4fSN7JHRhcmdldH0tb3BhY2l0eSkpO1xuICB9XG59XG5cbkBmdW5jdGlvbiBtYXAtbG9vcCgkbWFwLCAkZnVuYywgJGFyZ3MuLi4pIHtcbiAgJF9tYXA6ICgpO1xuXG4gIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkbWFwIHtcbiAgICAvLyBhbGxvdyB0byBwYXNzIHRoZSAka2V5IGFuZCAkdmFsdWUgb2YgdGhlIG1hcCBhcyBhbiBmdW5jdGlvbiBhcmd1bWVudFxuICAgICRfYXJnczogKCk7XG4gICAgQGVhY2ggJGFyZyBpbiAkYXJncyB7XG4gICAgICAkX2FyZ3M6IGFwcGVuZCgkX2FyZ3MsIGlmKCRhcmcgPT0gXCIka2V5XCIsICRrZXksIGlmKCRhcmcgPT0gXCIkdmFsdWVcIiwgJHZhbHVlLCAkYXJnKSkpO1xuICAgIH1cblxuICAgICRfbWFwOiBtYXAtbWVyZ2UoJF9tYXAsICgka2V5OiBjYWxsKGdldC1mdW5jdGlvbigkZnVuYyksICRfYXJncy4uLikpKTtcbiAgfVxuXG4gIEByZXR1cm4gJF9tYXA7XG59XG4vLyBzdHlsZWxpbnQtZW5hYmxlIHNjc3MvZG9sbGFyLXZhcmlhYmxlLXBhdHRlcm5cblxuQGZ1bmN0aW9uIHZhcmlmeSgkbGlzdCkge1xuICAkcmVzdWx0OiBudWxsO1xuICBAZWFjaCAkZW50cnkgaW4gJGxpc3Qge1xuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCB2YXIoLS0jeyR2YXJpYWJsZS1wcmVmaXh9I3skZW50cnl9KSwgc3BhY2UpO1xuICB9XG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8gSW50ZXJuYWwgQm9vdHN0cmFwIGZ1bmN0aW9uIHRvIHR1cm4gbWFwcyBpbnRvIGl0cyBuZWdhdGl2ZSB2YXJpYW50LlxuLy8gSXQgcHJlZml4ZXMgdGhlIGtleXMgd2l0aCBgbmAgYW5kIG1ha2VzIHRoZSB2YWx1ZSBuZWdhdGl2ZS5cbkBmdW5jdGlvbiBuZWdhdGl2aWZ5LW1hcCgkbWFwKSB7XG4gICRyZXN1bHQ6ICgpO1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgQGlmICRrZXkgIT0gMCB7XG4gICAgICAkcmVzdWx0OiBtYXAtbWVyZ2UoJHJlc3VsdCwgKFwiblwiICsgJGtleTogKC0kdmFsdWUpKSk7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8gR2V0IG11bHRpcGxlIGtleXMgZnJvbSBhIHNhc3MgbWFwXG5AZnVuY3Rpb24gbWFwLWdldC1tdWx0aXBsZSgkbWFwLCAkdmFsdWVzKSB7XG4gICRyZXN1bHQ6ICgpO1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgQGlmIChpbmRleCgkdmFsdWVzLCAka2V5KSAhPSBudWxsKSB7XG4gICAgICAkcmVzdWx0OiBtYXAtbWVyZ2UoJHJlc3VsdCwgKCRrZXk6ICR2YWx1ZSkpO1xuICAgIH1cbiAgfVxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vIE1lcmdlIG11bHRpcGxlIG1hcHNcbkBmdW5jdGlvbiBtYXAtbWVyZ2UtbXVsdGlwbGUoJG1hcHMuLi4pIHtcbiAgJG1lcmdlZC1tYXBzOiAoKTtcblxuICBAZWFjaCAkbWFwIGluICRtYXBzIHtcbiAgICAkbWVyZ2VkLW1hcHM6IG1hcC1tZXJnZSgkbWVyZ2VkLW1hcHMsICRtYXApO1xuICB9XG4gIEByZXR1cm4gJG1lcmdlZC1tYXBzO1xufVxuXG4vLyBSZXBsYWNlIGAkc2VhcmNoYCB3aXRoIGAkcmVwbGFjZWAgaW4gYCRzdHJpbmdgXG4vLyBVc2VkIG9uIG91ciBTVkcgaWNvbiBiYWNrZ3JvdW5kcyBmb3IgY3VzdG9tIGZvcm1zLlxuLy9cbi8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHJpbmcgLSBJbml0aWFsIHN0cmluZ1xuLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWFyY2ggLSBTdWJzdHJpbmcgdG8gcmVwbGFjZVxuLy8gQHBhcmFtIHtTdHJpbmd9ICRyZXBsYWNlICgnJykgLSBOZXcgdmFsdWVcbi8vIEByZXR1cm4ge1N0cmluZ30gLSBVcGRhdGVkIHN0cmluZ1xuQGZ1bmN0aW9uIHN0ci1yZXBsYWNlKCRzdHJpbmcsICRzZWFyY2gsICRyZXBsYWNlOiBcIlwiKSB7XG4gICRpbmRleDogc3RyLWluZGV4KCRzdHJpbmcsICRzZWFyY2gpO1xuXG4gIEBpZiAkaW5kZXgge1xuICAgIEByZXR1cm4gc3RyLXNsaWNlKCRzdHJpbmcsIDEsICRpbmRleCAtIDEpICsgJHJlcGxhY2UgKyBzdHItcmVwbGFjZShzdHItc2xpY2UoJHN0cmluZywgJGluZGV4ICsgc3RyLWxlbmd0aCgkc2VhcmNoKSksICRzZWFyY2gsICRyZXBsYWNlKTtcbiAgfVxuXG4gIEByZXR1cm4gJHN0cmluZztcbn1cblxuLy8gU2VlIGh0dHBzOi8vY29kZXBlbi5pby9rZXZpbndlYmVyL3Blbi9kWFdvUndcbi8vXG4vLyBSZXF1aXJlcyB0aGUgdXNlIG9mIHF1b3RlcyBhcm91bmQgZGF0YSBVUklzLlxuXG5AZnVuY3Rpb24gZXNjYXBlLXN2Zygkc3RyaW5nKSB7XG4gIEBpZiBzdHItaW5kZXgoJHN0cmluZywgXCJkYXRhOmltYWdlL3N2Zyt4bWxcIikge1xuICAgIEBlYWNoICRjaGFyLCAkZW5jb2RlZCBpbiAkZXNjYXBlZC1jaGFyYWN0ZXJzIHtcbiAgICAgIC8vIERvIG5vdCBlc2NhcGUgdGhlIHVybCBicmFja2V0c1xuICAgICAgQGlmIHN0ci1pbmRleCgkc3RyaW5nLCBcInVybChcIikgPT0gMSB7XG4gICAgICAgICRzdHJpbmc6IHVybChcIiN7c3RyLXJlcGxhY2Uoc3RyLXNsaWNlKCRzdHJpbmcsIDYsIC0zKSwgJGNoYXIsICRlbmNvZGVkKX1cIik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHN0cmluZzogc3RyLXJlcGxhY2UoJHN0cmluZywgJGNoYXIsICRlbmNvZGVkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzdHJpbmc7XG59XG5cbi8vIENvbG9yIGNvbnRyYXN0XG4vLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL3B1bGwvMzAxNjhcblxuLy8gQSBsaXN0IG9mIHByZS1jYWxjdWxhdGVkIG51bWJlcnMgb2YgcG93KGRpdmlkZSgoZGl2aWRlKCR2YWx1ZSwgMjU1KSArIC4wNTUpLCAxLjA1NSksIDIuNCkuIChmcm9tIDAgdG8gMjU1KVxuLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWRlZmF1bHQsIHNjc3MvZG9sbGFyLXZhcmlhYmxlLXBhdHRlcm5cbiRfbHVtaW5hbmNlLWxpc3Q6IC4wMDA4IC4wMDEgLjAwMTEgLjAwMTMgLjAwMTUgLjAwMTcgLjAwMiAuMDAyMiAuMDAyNSAuMDAyNyAuMDAzIC4wMDMzIC4wMDM3IC4wMDQgLjAwNDQgLjAwNDggLjAwNTIgLjAwNTYgLjAwNiAuMDA2NSAuMDA3IC4wMDc1IC4wMDggLjAwODYgLjAwOTEgLjAwOTcgLjAxMDMgLjAxMSAuMDExNiAuMDEyMyAuMDEzIC4wMTM3IC4wMTQ0IC4wMTUyIC4wMTYgLjAxNjggLjAxNzYgLjAxODUgLjAxOTQgLjAyMDMgLjAyMTIgLjAyMjIgLjAyMzIgLjAyNDIgLjAyNTIgLjAyNjIgLjAyNzMgLjAyODQgLjAyOTYgLjAzMDcgLjAzMTkgLjAzMzEgLjAzNDMgLjAzNTYgLjAzNjkgLjAzODIgLjAzOTUgLjA0MDkgLjA0MjMgLjA0MzcgLjA0NTIgLjA0NjcgLjA0ODIgLjA0OTcgLjA1MTMgLjA1MjkgLjA1NDUgLjA1NjEgLjA1NzggLjA1OTUgLjA2MTIgLjA2MyAuMDY0OCAuMDY2NiAuMDY4NSAuMDcwNCAuMDcyMyAuMDc0MiAuMDc2MiAuMDc4MiAuMDgwMiAuMDgyMyAuMDg0NCAuMDg2NSAuMDg4NyAuMDkwOCAuMDkzMSAuMDk1MyAuMDk3NiAuMDk5OSAuMTAyMiAuMTA0NiAuMTA3IC4xMDk1IC4xMTE5IC4xMTQ0IC4xMTcgLjExOTUgLjEyMjEgLjEyNDggLjEyNzQgLjEzMDEgLjEzMjkgLjEzNTYgLjEzODQgLjE0MTMgLjE0NDEgLjE0NyAuMTUgLjE1MjkgLjE1NTkgLjE1OSAuMTYyIC4xNjUxIC4xNjgzIC4xNzE0IC4xNzQ2IC4xNzc5IC4xODEyIC4xODQ1IC4xODc4IC4xOTEyIC4xOTQ2IC4xOTgxIC4yMDE2IC4yMDUxIC4yMDg2IC4yMTIyIC4yMTU5IC4yMTk1IC4yMjMyIC4yMjcgLjIzMDcgLjIzNDYgLjIzODQgLjI0MjMgLjI0NjIgLjI1MDIgLjI1NDIgLjI1ODIgLjI2MjMgLjI2NjQgLjI3MDUgLjI3NDcgLjI3ODkgLjI4MzEgLjI4NzQgLjI5MTggLjI5NjEgLjMwMDUgLjMwNSAuMzA5NSAuMzE0IC4zMTg1IC4zMjMxIC4zMjc4IC4zMzI1IC4zMzcyIC4zNDE5IC4zNDY3IC4zNTE1IC4zNTY0IC4zNjEzIC4zNjYzIC4zNzEyIC4zNzYzIC4zODEzIC4zODY0IC4zOTE2IC4zOTY4IC40MDIgLjQwNzIgLjQxMjUgLjQxNzkgLjQyMzMgLjQyODcgLjQzNDIgLjQzOTcgLjQ0NTIgLjQ1MDggLjQ1NjQgLjQ2MjEgLjQ2NzggLjQ3MzUgLjQ3OTMgLjQ4NTEgLjQ5MSAuNDk2OSAuNTAyOSAuNTA4OSAuNTE0OSAuNTIxIC41MjcxIC41MzMzIC41Mzk1IC41NDU3IC41NTIgLjU1ODMgLjU2NDcgLjU3MTEgLjU3NzYgLjU4NDEgLjU5MDYgLjU5NzIgLjYwMzggLjYxMDUgLjYxNzIgLjYyNCAuNjMwOCAuNjM3NiAuNjQ0NSAuNjUxNCAuNjU4NCAuNjY1NCAuNjcyNCAuNjc5NSAuNjg2NyAuNjkzOSAuNzAxMSAuNzA4NCAuNzE1NyAuNzIzMSAuNzMwNSAuNzM3OSAuNzQ1NCAuNzUyOSAuNzYwNSAuNzY4MiAuNzc1OCAuNzgzNSAuNzkxMyAuNzk5MSAuODA3IC44MTQ4IC44MjI4IC44MzA4IC44Mzg4IC44NDY5IC44NTUgLjg2MzIgLjg3MTQgLjg3OTYgLjg4NzkgLjg5NjMgLjkwNDcgLjkxMzEgLjkyMTYgLjkzMDEgLjkzODcgLjk0NzMgLjk1NiAuOTY0NyAuOTczNCAuOTgyMyAuOTkxMSAxO1xuXG5AZnVuY3Rpb24gY29sb3ItY29udHJhc3QoJGJhY2tncm91bmQsICRjb2xvci1jb250cmFzdC1kYXJrOiAkY29sb3ItY29udHJhc3QtZGFyaywgJGNvbG9yLWNvbnRyYXN0LWxpZ2h0OiAkY29sb3ItY29udHJhc3QtbGlnaHQsICRtaW4tY29udHJhc3QtcmF0aW86ICRtaW4tY29udHJhc3QtcmF0aW8pIHtcbiAgJGZvcmVncm91bmRzOiAkY29sb3ItY29udHJhc3QtbGlnaHQsICRjb2xvci1jb250cmFzdC1kYXJrLCAkd2hpdGUsICRibGFjaztcbiAgJG1heC1yYXRpbzogMDtcbiAgJG1heC1yYXRpby1jb2xvcjogbnVsbDtcblxuICBAZWFjaCAkY29sb3IgaW4gJGZvcmVncm91bmRzIHtcbiAgICAkY29udHJhc3QtcmF0aW86IGNvbnRyYXN0LXJhdGlvKCRiYWNrZ3JvdW5kLCAkY29sb3IpO1xuICAgIEBpZiAkY29udHJhc3QtcmF0aW8gPiAkbWluLWNvbnRyYXN0LXJhdGlvIHtcbiAgICAgIEByZXR1cm4gJGNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGNvbnRyYXN0LXJhdGlvID4gJG1heC1yYXRpbyB7XG4gICAgICAkbWF4LXJhdGlvOiAkY29udHJhc3QtcmF0aW87XG4gICAgICAkbWF4LXJhdGlvLWNvbG9yOiAkY29sb3I7XG4gICAgfVxuICB9XG5cbiAgQHdhcm4gXCJGb3VuZCBubyBjb2xvciBsZWFkaW5nIHRvICN7JG1pbi1jb250cmFzdC1yYXRpb306MSBjb250cmFzdCByYXRpbyBhZ2FpbnN0ICN7JGJhY2tncm91bmR9Li4uXCI7XG5cbiAgQHJldHVybiAkbWF4LXJhdGlvLWNvbG9yO1xufVxuXG5AZnVuY3Rpb24gY29udHJhc3QtcmF0aW8oJGJhY2tncm91bmQsICRmb3JlZ3JvdW5kOiAkY29sb3ItY29udHJhc3QtbGlnaHQpIHtcbiAgJGwxOiBsdW1pbmFuY2UoJGJhY2tncm91bmQpO1xuICAkbDI6IGx1bWluYW5jZShvcGFxdWUoJGJhY2tncm91bmQsICRmb3JlZ3JvdW5kKSk7XG5cbiAgQHJldHVybiBpZigkbDEgPiAkbDIsIGRpdmlkZSgkbDEgKyAuMDUsICRsMiArIC4wNSksIGRpdmlkZSgkbDIgKyAuMDUsICRsMSArIC4wNSkpO1xufVxuXG4vLyBSZXR1cm4gV0NBRzIuMCByZWxhdGl2ZSBsdW1pbmFuY2Vcbi8vIFNlZSBodHRwczovL3d3dy53My5vcmcvV0FJL0dML3dpa2kvUmVsYXRpdmVfbHVtaW5hbmNlXG4vLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL1dDQUcyMC1URUNIUy9HMTcuaHRtbCNHMTctdGVzdHNcbkBmdW5jdGlvbiBsdW1pbmFuY2UoJGNvbG9yKSB7XG4gICRyZ2I6IChcbiAgICBcInJcIjogcmVkKCRjb2xvciksXG4gICAgXCJnXCI6IGdyZWVuKCRjb2xvciksXG4gICAgXCJiXCI6IGJsdWUoJGNvbG9yKVxuICApO1xuXG4gIEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJHJnYiB7XG4gICAgJHZhbHVlOiBpZihkaXZpZGUoJHZhbHVlLCAyNTUpIDwgLjAzOTI4LCBkaXZpZGUoZGl2aWRlKCR2YWx1ZSwgMjU1KSwgMTIuOTIpLCBudGgoJF9sdW1pbmFuY2UtbGlzdCwgJHZhbHVlICsgMSkpO1xuICAgICRyZ2I6IG1hcC1tZXJnZSgkcmdiLCAoJG5hbWU6ICR2YWx1ZSkpO1xuICB9XG5cbiAgQHJldHVybiAobWFwLWdldCgkcmdiLCBcInJcIikgKiAuMjEyNikgKyAobWFwLWdldCgkcmdiLCBcImdcIikgKiAuNzE1MikgKyAobWFwLWdldCgkcmdiLCBcImJcIikgKiAuMDcyMik7XG59XG5cbi8vIFJldHVybiBvcGFxdWUgY29sb3Jcbi8vIG9wYXF1ZSgjZmZmLCByZ2JhKDAsIDAsIDAsIC41KSkgPT4gIzgwODA4MFxuQGZ1bmN0aW9uIG9wYXF1ZSgkYmFja2dyb3VuZCwgJGZvcmVncm91bmQpIHtcbiAgQHJldHVybiBtaXgocmdiYSgkZm9yZWdyb3VuZCwgMSksICRiYWNrZ3JvdW5kLCBvcGFjaXR5KCRmb3JlZ3JvdW5kKSAqIDEwMCk7XG59XG5cbi8vIHNjc3MtZG9jcy1zdGFydCBjb2xvci1mdW5jdGlvbnNcbi8vIFRpbnQgYSBjb2xvcjogbWl4IGEgY29sb3Igd2l0aCB3aGl0ZVxuQGZ1bmN0aW9uIHRpbnQtY29sb3IoJGNvbG9yLCAkd2VpZ2h0KSB7XG4gIEByZXR1cm4gbWl4KHdoaXRlLCAkY29sb3IsICR3ZWlnaHQpO1xufVxuXG4vLyBTaGFkZSBhIGNvbG9yOiBtaXggYSBjb2xvciB3aXRoIGJsYWNrXG5AZnVuY3Rpb24gc2hhZGUtY29sb3IoJGNvbG9yLCAkd2VpZ2h0KSB7XG4gIEByZXR1cm4gbWl4KGJsYWNrLCAkY29sb3IsICR3ZWlnaHQpO1xufVxuXG4vLyBTaGFkZSB0aGUgY29sb3IgaWYgdGhlIHdlaWdodCBpcyBwb3NpdGl2ZSwgZWxzZSB0aW50IGl0XG5AZnVuY3Rpb24gc2hpZnQtY29sb3IoJGNvbG9yLCAkd2VpZ2h0KSB7XG4gIEByZXR1cm4gaWYoJHdlaWdodCA+IDAsIHNoYWRlLWNvbG9yKCRjb2xvciwgJHdlaWdodCksIHRpbnQtY29sb3IoJGNvbG9yLCAtJHdlaWdodCkpO1xufVxuLy8gc2Nzcy1kb2NzLWVuZCBjb2xvci1mdW5jdGlvbnNcblxuLy8gUmV0dXJuIHZhbGlkIGNhbGNcbkBmdW5jdGlvbiBhZGQoJHZhbHVlMSwgJHZhbHVlMiwgJHJldHVybi1jYWxjOiB0cnVlKSB7XG4gIEBpZiAkdmFsdWUxID09IG51bGwge1xuICAgIEByZXR1cm4gJHZhbHVlMjtcbiAgfVxuXG4gIEBpZiAkdmFsdWUyID09IG51bGwge1xuICAgIEByZXR1cm4gJHZhbHVlMTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZTEpID09IG51bWJlciBhbmQgdHlwZS1vZigkdmFsdWUyKSA9PSBudW1iZXIgYW5kIGNvbXBhcmFibGUoJHZhbHVlMSwgJHZhbHVlMikge1xuICAgIEByZXR1cm4gJHZhbHVlMSArICR2YWx1ZTI7XG4gIH1cblxuICBAcmV0dXJuIGlmKCRyZXR1cm4tY2FsYyA9PSB0cnVlLCBjYWxjKCN7JHZhbHVlMX0gKyAjeyR2YWx1ZTJ9KSwgJHZhbHVlMSArIHVucXVvdGUoXCIgKyBcIikgKyAkdmFsdWUyKTtcbn1cblxuQGZ1bmN0aW9uIHN1YnRyYWN0KCR2YWx1ZTEsICR2YWx1ZTIsICRyZXR1cm4tY2FsYzogdHJ1ZSkge1xuICBAaWYgJHZhbHVlMSA9PSBudWxsIGFuZCAkdmFsdWUyID09IG51bGwge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIEBpZiAkdmFsdWUxID09IG51bGwge1xuICAgIEByZXR1cm4gLSR2YWx1ZTI7XG4gIH1cblxuICBAaWYgJHZhbHVlMiA9PSBudWxsIHtcbiAgICBAcmV0dXJuICR2YWx1ZTE7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkdmFsdWUxKSA9PSBudW1iZXIgYW5kIHR5cGUtb2YoJHZhbHVlMikgPT0gbnVtYmVyIGFuZCBjb21wYXJhYmxlKCR2YWx1ZTEsICR2YWx1ZTIpIHtcbiAgICBAcmV0dXJuICR2YWx1ZTEgLSAkdmFsdWUyO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHZhbHVlMikgIT0gbnVtYmVyIHtcbiAgICAkdmFsdWUyOiB1bnF1b3RlKFwiKFwiKSArICR2YWx1ZTIgKyB1bnF1b3RlKFwiKVwiKTtcbiAgfVxuXG4gIEByZXR1cm4gaWYoJHJldHVybi1jYWxjID09IHRydWUsIGNhbGMoI3skdmFsdWUxfSAtICN7JHZhbHVlMn0pLCAkdmFsdWUxICsgdW5xdW90ZShcIiAtIFwiKSArICR2YWx1ZTIpO1xufVxuXG5AZnVuY3Rpb24gZGl2aWRlKCRkaXZpZGVuZCwgJGRpdmlzb3IsICRwcmVjaXNpb246IDEwKSB7XG4gICRzaWduOiBpZigkZGl2aWRlbmQgPiAwIGFuZCAkZGl2aXNvciA+IDAgb3IgJGRpdmlkZW5kIDwgMCBhbmQgJGRpdmlzb3IgPCAwLCAxLCAtMSk7XG4gICRkaXZpZGVuZDogYWJzKCRkaXZpZGVuZCk7XG4gICRkaXZpc29yOiBhYnMoJGRpdmlzb3IpO1xuICBAaWYgJGRpdmlkZW5kID09IDAge1xuICAgIEByZXR1cm4gMDtcbiAgfVxuICBAaWYgJGRpdmlzb3IgPT0gMCB7XG4gICAgQGVycm9yIFwiQ2Fubm90IGRpdmlkZSBieSAwXCI7XG4gIH1cbiAgJHJlbWFpbmRlcjogJGRpdmlkZW5kO1xuICAkcmVzdWx0OiAwO1xuICAkZmFjdG9yOiAxMDtcbiAgQHdoaWxlICgkcmVtYWluZGVyID4gMCBhbmQgJHByZWNpc2lvbiA+PSAwKSB7XG4gICAgJHF1b3RpZW50OiAwO1xuICAgIEB3aGlsZSAoJHJlbWFpbmRlciA+PSAkZGl2aXNvcikge1xuICAgICAgJHJlbWFpbmRlcjogJHJlbWFpbmRlciAtICRkaXZpc29yO1xuICAgICAgJHF1b3RpZW50OiAkcXVvdGllbnQgKyAxO1xuICAgIH1cbiAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyAkcXVvdGllbnQ7XG4gICAgJGZhY3RvcjogJGZhY3RvciAqIC4xO1xuICAgICRyZW1haW5kZXI6ICRyZW1haW5kZXIgKiAxMDtcbiAgICAkcHJlY2lzaW9uOiAkcHJlY2lzaW9uIC0gMTtcbiAgICBAaWYgKCRwcmVjaXNpb24gPCAwIGFuZCAkcmVtYWluZGVyID49ICRkaXZpc29yICogNSkge1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCArIDE7XG4gICAgfVxuICB9XG4gICRyZXN1bHQ6ICRyZXN1bHQgKiAkZmFjdG9yICogJHNpZ247XG4gICRkaXZpZGVuZC11bml0OiB1bml0KCRkaXZpZGVuZCk7XG4gICRkaXZpc29yLXVuaXQ6IHVuaXQoJGRpdmlzb3IpO1xuICAkdW5pdC1tYXA6IChcbiAgICBcInB4XCI6IDFweCxcbiAgICBcInJlbVwiOiAxcmVtLFxuICAgIFwiZW1cIjogMWVtLFxuICAgIFwiJVwiOiAxJVxuICApO1xuICBAaWYgKCRkaXZpZGVuZC11bml0ICE9ICRkaXZpc29yLXVuaXQgYW5kIG1hcC1oYXMta2V5KCR1bml0LW1hcCwgJGRpdmlkZW5kLXVuaXQpKSB7XG4gICAgJHJlc3VsdDogJHJlc3VsdCAqIG1hcC1nZXQoJHVuaXQtbWFwLCAkZGl2aWRlbmQtdW5pdCk7XG4gIH1cbiAgQHJldHVybiAkcmVzdWx0O1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==*/