/*
* @section      Style for login wrapper
* @description  This section holds specific style redeclarations for
*               login content wrapper
*/
.jx-header-account-wrapper .alert {
  margin-top: 1.33333rem; }

.dropdown-menu .jx-header-account-wrapper {
  width: 20rem;
  padding: 2rem; }

.jx-header-account-wrapper.is-logged h3 {
  overflow: hidden;
  text-overflow: ellipsis; }

@media (min-width: 768px) and (min-width: 576px) {
  .dropdown-menu .jx-header-account-wrapper.is-logged.twocolumns {
    width: 33.33333rem; } }

@media (min-width: 768px) {
  .jx-header-account-wrapper.is-logged.twocolumns .user-data {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    margin-bottom: 1.33333rem; }
    .jx-header-account-wrapper.is-logged.twocolumns .user-data img {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 30%;
              flex: 0 0 30%;
      max-width: 30%;
      margin-right: 1.33333rem;
      border: 0.13333rem solid #f6f6f6; }
    .jx-header-account-wrapper.is-logged.twocolumns .user-data h3 {
      -webkit-box-ordinal-group: 2;
          -ms-flex-order: 1;
              order: 1; }
  .jx-header-account-wrapper.is-logged.twocolumns ul {
    -webkit-column-count: 2;
            column-count: 2;
    -webkit-column-gap: 1.33333rem;
            column-gap: 1.33333rem;
    list-style-position: inside; } }

.jx-header-account-wrapper .header-login-content {
  display: none; }
  .jx-header-account-wrapper .header-login-content.active {
    display: block;
    max-height: none;
    overflow: visible; }

.jx-header-account-wrapper footer {
  text-align: center; }
  .jx-header-account-wrapper footer .register-link {
    margin-top: 0.66667rem; }

.jx-header-account-wrapper .radio-inline {
  margin-right: 1.33333rem; }
  .jx-header-account-wrapper .radio-inline:last-child {
    margin-right: 0; }
  .jx-header-account-wrapper .radio-inline .custom-radio {
    margin-right: 0; }

/*
* @section      Style for social login buttons
* @description  This section holds specific style for
*               social login buttons
*/
.social-login-buttons {
  margin: 0 -0.33333rem; }
  .social-login-buttons a {
    display: inline-block;
    margin: 0 0.33333rem 0.66667rem; }
    .social-login-buttons a i {
      margin-right: 0.33333rem; }

/*
* @section      MODAL AS LEFT/RIGHT SIDEBAR
* @description  Add "left" or "right" in modal parent div, after class="modal".
*/
.jx-header-account {
  /*Left*/
  /*Right*/ }
  .jx-header-account .modal.left .modal-dialog,
  .jx-header-account .modal.right .modal-dialog {
    position: fixed;
    margin: auto;
    width: 21.33333rem;
    height: 100%;
    -webkit-transform: translate3d(0%, 0, 0);
            transform: translate3d(0%, 0, 0); }
    @media (min-width: 768px) {
      .jx-header-account .modal.left .modal-dialog,
      .jx-header-account .modal.right .modal-dialog {
        width: 33.33333rem; } }
  .jx-header-account .modal.left .modal-content,
  .jx-header-account .modal.right .modal-content {
    height: 100%;
    overflow-y: auto; }
  .jx-header-account .modal.left.fade .modal-dialog {
    left: -21.33333rem;
    -webkit-transition: opacity 0.3s linear, left 0.3s ease-out;
    transition: opacity 0.3s linear, left 0.3s ease-out; }
    @media (min-width: 768px) {
      .jx-header-account .modal.left.fade .modal-dialog {
        left: -33.33333rem; } }
  .jx-header-account .modal.left.fade.in .modal-dialog {
    left: 0; }
  .jx-header-account .modal.right.fade .modal-dialog {
    right: -21.33333rem;
    -webkit-transition: opacity 0.3s linear, right 0.3s ease-out;
    transition: opacity 0.3s linear, right 0.3s ease-out; }
    @media (min-width: 768px) {
      .jx-header-account .modal.right.fade .modal-dialog {
        right: -33.33333rem; } }
  .jx-header-account .modal.right.fade.in .modal-dialog {
    right: 0; }

/*
* @section      Style for login wrapper
* @description  This section holds specific style redeclarations for
*               login content wrapper
*/
#wrapper .jx-header-account-wrapper, #footer .jx-header-account-wrapper {
  padding: 1.33333rem;
  max-width: 100%;
  margin-bottom: 2rem;
  background: #ffffff;
  -webkit-box-shadow: 0.13333rem 0.13333rem 0.53333rem 0 rgba(0, 0, 0, 0.2);
          box-shadow: 0.13333rem 0.13333rem 0.53333rem 0 rgba(0, 0, 0, 0.2); }
  #wrapper .jx-header-account-wrapper [class^="col-"], #wrapper .jx-header-account-wrapper [class*=" col-"], #footer .jx-header-account-wrapper [class^="col-"], #footer .jx-header-account-wrapper [class*=" col-"] {
    width: 100%;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
    text-align: left; }

.jx-header-account .custom-control.custom-radio {
  margin-bottom: 0.66667rem; }

.jx-header-account .custom-control.custom-checkbox {
  margin-top: 0.66667rem; }

.jx-header-account .modal-body {
  padding: 2rem;
  text-align: left; }
  @media (min-width: 480px) {
    .jx-header-account .modal-body {
      padding: 3.33333rem; } }
  @media (min-width: 670px) {
    .jx-header-account .modal-body {
      padding: 4.93333rem 5.33333rem 5.33333rem; } }

.jx-header-account .form-group {
  margin-bottom: 0.13333rem; }

.jx-header-account .back_login_btn {
  padding-top: 1rem;
  padding-bottom: 0.93333rem;
  font-weight: 400; }

.jx-header-account .login_btn {
  position: relative;
  background: none;
  font-weight: 400;
  padding-top: 1rem;
  padding-bottom: 0.93333rem;
  -webkit-box-shadow: inset 0 0 0 0.13333rem #e1e1e1;
          box-shadow: inset 0 0 0 0.13333rem #e1e1e1;
  color: #252a33;
  overflow: hidden;
  border: none; }
  .jx-header-account .login_btn:before {
    -webkit-transform: scaleY(0);
            transform: scaleY(0);
    opacity: 0;
    background: #252a33; }
  .jx-header-account .login_btn:hover {
    color: white; }
    .jx-header-account .login_btn:hover:before {
      -webkit-transform: scaleY(2);
              transform: scaleY(2);
      opacity: 1; }

.jx-header-account .forgot-password-content .form-control {
  margin-bottom: 0.66667rem; }

.jx-header-account .forgot-password-content .submit .login_btn {
  width: 100%; }

.jx-header-account .forgot-password-content footer .button-login {
  margin-top: 0; }

.jx-header-account footer {
  padding-top: 0.8rem; }
  .jx-header-account footer .nav {
    margin-top: 1.33333rem;
    text-align: left; }
    .jx-header-account footer .nav.register-link {
      margin-top: 0.8rem; }
  .jx-header-account footer hr {
    display: none; }
  .jx-header-account footer .social-login-buttons {
    margin: 2.33333rem 0 0 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex; }
    .jx-header-account footer .social-login-buttons .three-elements {
      -webkit-box-flex: 0;
          -ms-flex: 0 0 33.33333%;
              flex: 0 0 33.33333%;
      max-width: 33.33333%;
      margin: 0;
      padding: 0 0.26667rem;
      font-size: 0;
      text-align: center;
      color: white; }
      .jx-header-account footer .social-login-buttons .three-elements a {
        display: block;
        margin: 0;
        width: 100%;
        color: white;
        padding: 0.53333rem 1rem 0.13333rem;
        border-radius: 0.13333rem;
        line-height: 2rem;
        -webkit-transition: 0.3s all ease;
        transition: 0.3s all ease; }
        .jx-header-account footer .social-login-buttons .three-elements a:hover {
          background-color: transparent; }
      .jx-header-account footer .social-login-buttons .three-elements i {
        font-size: 1.4rem;
        line-height: 2rem; }
      .jx-header-account footer .social-login-buttons .three-elements .jx_facebooklogin {
        border: 0.13333rem solid #3b5998;
        background-color: #3b5998; }
        .jx-header-account footer .social-login-buttons .three-elements .jx_facebooklogin:hover {
          color: #3b5998; }
      .jx-header-account footer .social-login-buttons .three-elements .jx_googlelogin {
        border: 0.13333rem solid #df4a32;
        background-color: #df4a32; }
        .jx-header-account footer .social-login-buttons .three-elements .jx_googlelogin:hover {
          color: #df4a32; }
      .jx-header-account footer .social-login-buttons .three-elements .jx_vklogin {
        border: 0.13333rem solid #3383c1;
        background-color: #3383c1; }
        .jx-header-account footer .social-login-buttons .three-elements .jx_vklogin:hover {
          color: #3383c1; }

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9tb2R1bGVzL2p4aGVhZGVyYWNjb3VudC92aWV3cy9jc3MvRDovT1NQYW5lbC9kb21haW5zL2xvY2FsaG9zdC9FdmVwcmVzdF9TUF90ZXN0L3RoZW1lcy90aGVtZTE1MTQvX2Rldi9tb2R1bGVzL2p4aGVhZGVyYWNjb3VudC92aWV3cy9jc3MvanhoZWFkZXJhY2NvdW50LnNjc3MiLCJ3ZWJwYWNrOi8vLy4vbW9kdWxlcy9qeGhlYWRlcmFjY291bnQvdmlld3MvY3NzL0Q6L09TUGFuZWwvZG9tYWlucy9sb2NhbGhvc3QvRXZlcHJlc3RfU1BfdGVzdC90aGVtZXMvdGhlbWUxNTE0L19kZXYvbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYnJlYWtwb2ludHMuc2NzcyIsIndlYnBhY2s6Ly8vLi9tb2R1bGVzL2p4aGVhZGVyYWNjb3VudC92aWV3cy9jc3MvRDovT1NQYW5lbC9kb21haW5zL2xvY2FsaG9zdC9FdmVwcmVzdF9TUF90ZXN0L3RoZW1lcy90aGVtZTE1MTQvX2Rldi9jc3MvcGFydGlhbHMvX3ZhcmlhYmxlc19jb2xvci5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBOzs7O0VBSUU7QUFFRjtFQUdJLHVCQUFnQixFQUNqQjs7QUFFRDtFQUNFLGFBQVk7RUFDWixjQUFhLEVBQ2Q7O0FBVEg7RUFZTSxpQkFBZ0I7RUFDaEIsd0JBQXVCLEVBQ3hCOztBQ3VDRDtFRG5DTTtJQUNFLG1CQUFZLEVBQ2I7O0FBTFA7RUFmSjtJQXVCVSxxQkFBYTtJQUFiLHFCQUFhO0lBQWIsY0FBYTtJQUNiLDBCQUFtQjtRQUFuQix1QkFBbUI7WUFBbkIsb0JBQW1CO0lBQ25CLDBCQUFtQixFQVVwQjtJQW5DVDtNQTJCWSxvQkFBYTtVQUFiLGtCQUFhO2NBQWIsY0FBYTtNQUNiLGVBQWM7TUFDZCx5QkFBa0I7TUFDbEIsaUNBQXlCLEVBQzFCO0lBL0JYO01BaUNZLDZCQUFRO1VBQVIsa0JBQVE7Y0FBUixTQUFRLEVBQ1Q7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Q1gsYUFBWTtRQUNaLG9DQUFxQjtRQUNyQiwwQkFBa0I7UUFDbEIsa0JBQWlCO1FBQ2pCLGtDQUF5QjtRQUF6QiwwQkFBeUIsRUFLMUI7UUExSFQ7VUF3SFksOEJBQTZCLEVBQzlCO01BekhYO1FBNkhVLGtCQUFlO1FBQ2Ysa0JBQWlCLEVBQ2xCO01BL0hUO1FBa0lVLGlDQUF5QjtRQUN6QiwwQkFBeUIsRUFLMUI7UUF4SVQ7VUFzSVksZUFBYyxFQUNmO01BdklYO1FBMklVLGlDQUF5QjtRQUN6QiwwQkFBeUIsRUFLMUI7UUFqSlQ7VUErSVksZUFBYyxFQUNmO01BaEpYO1FBb0pVLGlDQUF5QjtRQUN6QiwwQkFBeUIsRUFLMUI7UUExSlQ7VUF3SlksZUFBYyxFQUNmIiwiZmlsZSI6Ii4uXFxtb2R1bGVzXFxqeGhlYWRlcmFjY291bnRcXHZpZXdzXFxjc3NcXGp4aGVhZGVyYWNjb3VudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IFwiY3NzL3BhcnRpYWxzL192YXJpYWJsZXNcIjtcclxuLypcbiogQHNlY3Rpb24gICAgICBTdHlsZSBmb3IgbG9naW4gd3JhcHBlclxuKiBAZGVzY3JpcHRpb24gIFRoaXMgc2VjdGlvbiBob2xkcyBzcGVjaWZpYyBzdHlsZSByZWRlY2xhcmF0aW9ucyBmb3JcbiogICAgICAgICAgICAgICBsb2dpbiBjb250ZW50IHdyYXBwZXJcbiovXG5cbi5qeC1oZWFkZXItYWNjb3VudC13cmFwcGVyIHtcblxuICAuYWxlcnQge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gIH1cblxuICAuZHJvcGRvd24tbWVudSAmIHtcbiAgICB3aWR0aDogMzAwcHg7XG4gICAgcGFkZGluZzogMzBweDtcbiAgfVxuICAmLmlzLWxvZ2dlZCB7XG4gICAgaDMge1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgICYudHdvY29sdW1ucyB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoc20pIHtcbiAgICAgICAgICAuZHJvcGRvd24tbWVudSAmIHtcbiAgICAgICAgICAgIHdpZHRoOiA1MDBweDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLnVzZXItZGF0YSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMCAzMCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDMwJTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNmNmY2ZjY7XG4gICAgICAgICAgfVxuICAgICAgICAgIGgzIHtcbiAgICAgICAgICAgIG9yZGVyOiAxO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB1bCB7XG4gICAgICAgICAgY29sdW1uLWNvdW50OiAyO1xuICAgICAgICAgIGNvbHVtbi1nYXA6IDIwcHg7XG4gICAgICAgICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5oZWFkZXItbG9naW4tY29udGVudCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICAmLmFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG4gIH1cbiAgZm9vdGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLnJlZ2lzdGVyLWxpbmsge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICB9XG4gIH1cbiAgLnJhZGlvLWlubGluZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICAgIC5jdXN0b20tcmFkaW8ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxufVxuXG4vKlxuKiBAc2VjdGlvbiAgICAgIFN0eWxlIGZvciBzb2NpYWwgbG9naW4gYnV0dG9uc1xuKiBAZGVzY3JpcHRpb24gIFRoaXMgc2VjdGlvbiBob2xkcyBzcGVjaWZpYyBzdHlsZSBmb3JcbiogICAgICAgICAgICAgICBzb2NpYWwgbG9naW4gYnV0dG9uc1xuKi9cblxuLnNvY2lhbC1sb2dpbi1idXR0b25zIHtcbiAgbWFyZ2luOiAwIC01cHg7XG4gIGEge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDAgNXB4IDEwcHg7XG4gICAgaSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICB9XG4gIH1cbn1cblxuLypcbiogQHNlY3Rpb24gICAgICBNT0RBTCBBUyBMRUZUL1JJR0hUIFNJREVCQVJcbiogQGRlc2NyaXB0aW9uICBBZGQgXCJsZWZ0XCIgb3IgXCJyaWdodFwiIGluIG1vZGFsIHBhcmVudCBkaXYsIGFmdGVyIGNsYXNzPVwibW9kYWxcIi5cbiovXG4uangtaGVhZGVyLWFjY291bnQge1xuICAubW9kYWwubGVmdCAubW9kYWwtZGlhbG9nLFxuICAubW9kYWwucmlnaHQgLm1vZGFsLWRpYWxvZyB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICB3aWR0aDogMzIwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCUsIDAsIDApO1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgd2lkdGg6IDUwMHB4O1xuICAgIH1cbiAgfVxuXG4gIC5tb2RhbC5sZWZ0IC5tb2RhbC1jb250ZW50LFxuICAubW9kYWwucmlnaHQgLm1vZGFsLWNvbnRlbnQge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICB9XG5cbiAgLypMZWZ0Ki9cbiAgLm1vZGFsLmxlZnQuZmFkZSAubW9kYWwtZGlhbG9nIHtcbiAgICBsZWZ0OiAtMzIwcHg7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGxpbmVhciwgbGVmdCAwLjNzIGVhc2Utb3V0O1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgbGVmdDogLTUwMHB4O1xuICAgIH1cbiAgfVxuXG4gIC5tb2RhbC5sZWZ0LmZhZGUuaW4gLm1vZGFsLWRpYWxvZyB7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gIC8qUmlnaHQqL1xuICAubW9kYWwucmlnaHQuZmFkZSAubW9kYWwtZGlhbG9nIHtcbiAgICByaWdodDogLTMyMHB4O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBsaW5lYXIsIHJpZ2h0IDAuM3MgZWFzZS1vdXQ7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICByaWdodDogLTUwMHB4O1xuICAgIH1cbiAgfVxuXG4gIC5tb2RhbC5yaWdodC5mYWRlLmluIC5tb2RhbC1kaWFsb2cge1xuICAgIHJpZ2h0OiAwO1xuICB9XG59XG5cbi8qXG4qIEBzZWN0aW9uICAgICAgU3R5bGUgZm9yIGxvZ2luIHdyYXBwZXJcbiogQGRlc2NyaXB0aW9uICBUaGlzIHNlY3Rpb24gaG9sZHMgc3BlY2lmaWMgc3R5bGUgcmVkZWNsYXJhdGlvbnMgZm9yXG4qICAgICAgICAgICAgICAgbG9naW4gY29udGVudCB3cmFwcGVyXG4qL1xuXG4jd3JhcHBlciwgI2Zvb3RlciB7XG4gIC5qeC1oZWFkZXItYWNjb3VudC13cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogMnB4IDJweCA4cHggMCByZ2JhKDAsMCwwLC4yKTtcbiAgICBbY2xhc3NePVwiY29sLVwiXSwgW2NsYXNzKj1cIiBjb2wtXCJdIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgfVxufVxuXG4uangtaGVhZGVyLWFjY291bnQge1xuXG4gIC5jdXN0b20tY29udHJvbCB7XG5cbiAgICAmLmN1c3RvbS1yYWRpbyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIH1cblxuICAgICYuY3VzdG9tLWNoZWNrYm94IHtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgfVxuICB9XG5cbiAgLm1vZGFsLWJvZHkge1xuICAgIHBhZGRpbmc6IDMwcHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAgICAgcGFkZGluZzogNTBweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjcwcHgpIHtcbiAgICAgIHBhZGRpbmc6IDc0cHggODBweCA4MHB4O1xuICAgIH1cbiAgfVxuXG4gIC5mb3JtLWdyb3VwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gIH1cblxuICAuYmFja19sb2dpbl9idG4ge1xuICAgIHBhZGRpbmctdG9wOiAxNXB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIH1cbiAgLmxvZ2luX2J0biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBwYWRkaW5nLXRvcDogMTVweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTRweDtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggJGdyYXktNDUwO1xuICAgIGNvbG9yOiAkZ3JheS05MDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlWSgwKTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICBiYWNrZ3JvdW5kOiAkZ3JheS05MDA7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogd2hpdGU7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVkoMik7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmZvcmdvdC1wYXNzd29yZC1jb250ZW50IHtcbiAgICAuZm9ybS1jb250cm9sIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgfVxuXG4gICAgLnN1Ym1pdCB7XG4gICAgICAubG9naW5fYnRuIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9vdGVyIHtcbiAgICAgIC5idXR0b24tbG9naW4ge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZvb3RlciB7XG4gICAgcGFkZGluZy10b3A6IDEycHg7XG5cbiAgICAubmF2IHtcbiAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAmLnJlZ2lzdGVyLWxpbmsge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIGhyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnNvY2lhbC1sb2dpbi1idXR0b25zIHtcbiAgICAgIG1hcmdpbjogMzVweCAwIDAgMDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgIC50aHJlZS1lbGVtZW50cyB7XG4gICAgICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gICAgICAgIG1heC13aWR0aDogMzMuMzMzMzMlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDAgNHB4O1xuICAgICAgICBmb250LXNpemU6IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgcGFkZGluZzogOHB4IDE1cHggMnB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgICAgICB0cmFuc2l0aW9uOiAwLjNzIGFsbCBlYXNlO1xuXG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpIHtcbiAgICAgICAgICBmb250LXNpemU6IDIxcHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuanhfZmFjZWJvb2tsb2dpbiB7XG4gICAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzNiNTk5ODtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2I1OTk4O1xuXG4gICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogIzNiNTk5ODtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuanhfZ29vZ2xlbG9naW4ge1xuICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNkZjRhMzI7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RmNGEzMjtcblxuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICNkZjRhMzI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmp4X3ZrbG9naW4ge1xuICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICMzMzgzYzE7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzMzODNjMTtcblxuICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICMzMzgzYzE7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL21vZHVsZXMvanhoZWFkZXJhY2NvdW50L3ZpZXdzL2Nzcy9EOi9PU1BhbmVsL2RvbWFpbnMvbG9jYWxob3N0L0V2ZXByZXN0X1NQX3Rlc3QvdGhlbWVzL3RoZW1lMTUxNC9fZGV2L21vZHVsZXMvanhoZWFkZXJhY2NvdW50L3ZpZXdzL2Nzcy9qeGhlYWRlcmFjY291bnQuc2NzcyIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweClcbi8vXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXG5cbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgbGFyZ2VzdCAobGFzdCkgYnJlYWtwb2ludC5cbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIGNhbGN1bGF0ZWQgYXMgdGhlIG1pbmltdW0gb2YgdGhlIG5leHQgb25lIGxlc3MgMC4wMnB4XG4vLyB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2YgYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxuLy8gVXNlcyAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxuLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1heChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIDc2Ny45OHB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQHJldHVybiBpZigkbmV4dCwgYnJlYWtwb2ludC1taW4oJG5leHQsICRicmVha3BvaW50cykgLSAuMDJweCwgbnVsbCk7XG59XG5cbi8vIFJldHVybnMgYSBibGFuayBzdHJpbmcgaWYgc21hbGxlc3QgYnJlYWtwb2ludCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG5hbWUgd2l0aCBhIGRhc2ggaW5mcm9udC5cbi8vIFVzZWZ1bCBmb3IgbWFraW5nIHJlc3BvbnNpdmUgdXRpbGl0aWVzLlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoeHMsICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBcIi1zbVwiXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWluIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRsb3dlciwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJHVwcGVyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL21vZHVsZXMvanhoZWFkZXJhY2NvdW50L3ZpZXdzL2Nzcy9EOi9PU1BhbmVsL2RvbWFpbnMvbG9jYWxob3N0L0V2ZXByZXN0X1NQX3Rlc3QvdGhlbWVzL3RoZW1lMTUxNC9fZGV2L25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JyZWFrcG9pbnRzLnNjc3MiLCIvL1xuLy8gQ29sb3Igc3lzdGVtXG4vL1xuJHdoaXRlOiAgI2ZmZjtcbiRncmF5LTEwMDogI2ZhZmFmYTtcbiRncmF5LTIwMDogI2Y4ZjhmODtcbiRncmF5LTMwMDogI2U3ZTdlNztcbiRncmF5LTM1MDogI2ZjZmNmZDtcbiRncmF5LTM2MDogI2Y2ZjhmOTtcbiRncmF5LTQwMDogI2VlZWVlZTtcbiRncmF5LTQzMDogI2YyZjJmMjtcbiRncmF5LTQ0MDogI2Y2ZjZmNjtcbiRncmF5LTQ1MDogI2UxZTFlMTtcbiRncmF5LTQ2MDogI2MxYzdjYjtcbiRncmF5LTUwMDogI2FiYWJhYjtcbiRncmF5LTU1MDogI2ViZWJlYjtcbiRncmF5LTU2MDogIzc1N2E4MjtcbiRncmF5LTYwMDogIzg3ODc4NztcbiRncmF5LTY1MDogIzVkNWQ1ZDtcbiRncmF5LTcwMDogIzU1NTU1NTtcbiRncmF5LTczMDogIzVlNjQ2YztcbiRncmF5LTc1MDogIzMzMzk0NTtcbiRncmF5LTc2MDogIzMwMzY0MDtcbiRncmF5LTgwMDogIzNhM2EzYTtcbiRncmF5LTkwMDogIzI1MmEzMztcbiRncmF5LTk1MDogIzIwMjUyZTtcbiRibGFjazogICMwMDA7XG5cbiRicmFuZC1kYW5nZXI6ICNmZjRjMzk7XG5cbiRncmF5czogKFxuICAxMDA6ICRncmF5LTEwMCxcbiAgMjAwOiAkZ3JheS0yMDAsXG4gIDMwMDogJGdyYXktMzAwLFxuICA0MDA6ICRncmF5LTQwMCxcbiAgNTAwOiAkZ3JheS01MDAsXG4gIDYwMDogJGdyYXktNjAwLFxuICA3MDA6ICRncmF5LTcwMCxcbiAgODAwOiAkZ3JheS04MDAsXG4gIDkwMDogJGdyYXktOTAwXG4pO1xuXG4kYmx1ZTogICAgIzEzYTFmNDtcbiRpbmRpZ286ICAjNjYxMGYyO1xuJHB1cnBsZTogICM2ZjQyYzE7XG4kcGluazogICAgI2RlNmQ2ZDtcbiRyZWQ6ICAgICAjZmY0YzM5O1xuJG9yYW5nZTogICNmZWIzODA7XG4keWVsbG93OiAgI2ZmZjFiYztcbiRncmVlbjogICAjNTJiOThlO1xuJHRlYWw6ICAgICM1MmI5OGU7XG4kY3lhbjogICAgI2M1ZjJmZDtcblxuJGNvbG9yczogKFxuICBibHVlOiAkYmx1ZSxcbiAgaW5kaWdvOiAkaW5kaWdvLFxuICBwdXJwbGU6ICRwdXJwbGUsXG4gIHBpbms6ICRwaW5rLFxuICByZWQ6ICRyZWQsXG4gIG9yYW5nZTogJG9yYW5nZSxcbiAgeWVsbG93OiAkeWVsbG93LFxuICBncmVlbjogJGdyZWVuLFxuICB0ZWFsOiAkdGVhbCxcbiAgY3lhbjogJGN5YW4sXG4gIHdoaXRlOiAkd2hpdGUsXG4gIGdyYXk6ICRncmF5LTYwMCxcbiAgZ3JheS1kYXJrOiAkZ3JheS04MDAsXG4gIGdyYXktZGFya2VyOiAkZ3JheS05MDAsXG4gIGdyYXktbGlnaHQ6ICRncmF5LTIwMCxcbiAgZ3JheS1saWdodGVyOiAkZ3JheS0xMDBcbik7XG5cbiR0aGVtZS1jb2xvcnM6IChcbiAgcHJpbWFyeTogJHBpbmssXG4gIHNlY29uZGFyeTogJGdyYXktODAwLFxuICBzdWNjZXNzOiAkZ3JlZW4sXG4gIGluZm86ICRjeWFuLFxuICB3YXJuaW5nOiAkb3JhbmdlLFxuICBkYW5nZXI6ICRwaW5rLFxuICBsaWdodDogJGdyYXktMjAwLFxuICBkYXJrOiAkZ3JheS05MDAsXG4gIHdoaXRlOiAkd2hpdGVcbik7XG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vbW9kdWxlcy9qeGhlYWRlcmFjY291bnQvdmlld3MvY3NzL0Q6L09TUGFuZWwvZG9tYWlucy9sb2NhbGhvc3QvRXZlcHJlc3RfU1BfdGVzdC90aGVtZXMvdGhlbWUxNTE0L19kZXYvY3NzL3BhcnRpYWxzL192YXJpYWJsZXNfY29sb3Iuc2NzcyJdLCJzb3VyY2VSb290IjoiIn0=*/