.card-block__id {
  color: gray; }

.card-page-info {
  font-size: 0.9rem; }
  .card-page-info hr {
    margin: 0.8rem auto; }
  .card-page-info .send-msg-user-btn {
    padding-left: 1.3rem;
    padding-right: 1.3rem; }
    @media screen and (max-width: 39.9375em) {
      .card-page-info .send-msg-user-btn {
        width: 100%;
        margin: 0;
        margin-top: 1rem; } }
  .card-page-info .lSGallery img {
    max-height: 7rem; }
  @media screen and (max-width: 39.9375em) {
    .card-page-info .lSGallery {
      display: none; } }

.card-page-label {
  color: gray; }
  .card-page-label > img {
    display: inline-block;
    margin: -0.5rem 0.5rem -0.5rem 0;
    width: 2rem; }

.card-page-stats {
  margin-top: -0.5rem;
  padding: 0.1rem 0;
  color: gray;
  font-size: 0.8rem; }
  @media (min-width: 1680px) {
    .card-page-stats {
      font-size: 1rem; } }
  .card-page-stats .fa {
    margin-right: 0.7rem; }
  .card-page-stats button {
    padding: 0;
    margin: 0;
    font-size: inherit; }

.card-page-stats__fav {
  display: inline-block;
  margin: 0 0.5rem 0 1rem;
  color: black; }

#card-filds {
  max-height: 5.2rem;
  overflow: hidden; }
  #card-filds.card-filds_view-all {
    max-height: none; }

.card-filds__view-more-btn button {
  border: none !important;
  margin-bottom: 0.3rem;
  padding: 0.5rem 0 0;
  z-index: 2; }
  .card-filds__view-more-btn button .fa {
    margin-left: 0.5rem; }
  .card-filds__view-more-btn button > .view-more-text {
    display: inline-block; }
  .card-filds__view-more-btn button > .hide-more-text {
    display: none; }

.card-filds_view-all ~ .card-filds__view-more-btn button > .view-more-text {
  display: none; }

.card-filds_view-all ~ .card-filds__view-more-btn button > .hide-more-text {
  display: inline-block; }

.card-filds_view-all ~ .card-filds__view-more-btn > .row {
  -webkit-transition: opacity 0.2s;
  transition: opacity 0.2s; }

.raiting-counter {
  position: relative;
  padding: 0.1rem 0.5rem;
  margin-left: 0.5rem;
  margin-top: 0.2rem; }
  .raiting-counter:before {
    content: "";
    display: block;
    background: inherit;
    height: .5rem;
    width: .5rem;
    -webkit-transform: translateY(-50%) rotate(45deg);
            transform: translateY(-50%) rotate(45deg);
    position: absolute;
    left: -0.25rem;
    top: 50%; }

.card-page-info__seller {
  font-size: 1.15rem; }

.lot-actions button {
  white-space: nowrap; }

@media screen and (max-width: 63.9375em) {
  .lot-actions button {
    width: 100%; } }

.lot-actions_info {
  text-align: center; }

.lot-actions__coast {
  font-size: 2rem;
  line-height: 2.5rem; }
  .lot-actions__coast > .fa {
    vertical-align: baseline;
    font-size: 0.82em;
    margin-left: 0.25em; }

.gallery-wrapper {
  margin-bottom: 1.5rem; }
  .gallery-wrapper img {
    cursor: pointer; }

.lot-additional-info .tabs {
  border-bottom-color: darkgray; }
  .lot-additional-info .tabs > .tabs-title {
    border: 1px solid transparent;
    margin-bottom: -1px; }
    .lot-additional-info .tabs > .tabs-title > a {
      font-size: 1rem; }
    .lot-additional-info .tabs > .tabs-title .fa {
      vertical-align: sub;
      margin-right: 0.65rem; }
    .lot-additional-info .tabs > .tabs-title.is-active, .lot-additional-info .tabs > .tabs-title:hover {
      border-color: darkgrey; }
    .lot-additional-info .tabs > .tabs-title.is-active {
      border-bottom-color: white; }

.add-same-lot {
  font-size: 1.1rem;
  font-weight: bold;
  color: #df4346;
  border: 1px dashed grey;
  padding: 0.3rem;
  margin-bottom: 1rem;
  border-radius: 4px;
  cursor: pointer; }
  .add-same-lot > .fa-stack {
    margin-right: 0.5rem; }
  .add-same-lot:hover {
    border-color: #5a5a5a;
    color: #cc2326;
    text-decoration: underline; }
  @media screen and (max-width: 63.9375em) {
    .add-same-lot {
      margin: 10px 0px 10px 0px; } }

.connection-button {
  border-radius: 4px;
  padding: 5px 20px 5px 20px; }

.same-lots {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-size: 0.9rem; }
  .same-lots .lot-actions__coast {
    font-size: 1.5rem;
    white-space: nowrap;
    margin-bottom: 0; }
  .same-lots .button {
    margin-bottom: 0; }
  .same-lots:nth-child(odd) {
    background: #f9fafb; }
  .same-lots:hover {
    background: #f3f3f3; }

.subscribe-on-card {
  position: relative;
  overflow: hidden;
  margin: 1.5rem 0;
  font-weight: bold;
  font-size: 0.8rem; }
  .subscribe-on-card .button {
    margin-bottom: 0;
    padding-left: 0;
    padding-right: 0;
    height: 100%; }
  @media screen and (min-width: 75em) {
    .subscribe-on-card {
      font-size: 1rem; }
      .subscribe-on-card:before {
        content: '';
        display: block;
        position: absolute;
        top: 50%;
        left: 1.3rem;
        border: 1.3rem solid transparent;
        border-left-color: white;
        margin: -1.3rem;
        z-index: 2; } }

.subscribe-on-card__text,
.subscribe-on-card__icon {
  background: #f3f3f3; }

.subscribe-on-card__counter {
  position: relative; }
  .subscribe-on-card__counter > span:last-child {
    font-size: 1.6em; }
  .subscribe-on-card__counter > span:first-child {
    display: inline-block;
    margin-right: 0.5rem; }
  .subscribe-on-card__counter:after {
    content: '';
    display: block;
    position: absolute;
    top: 50%;
    right: -1.3rem;
    border: 1.3rem solid transparent;
    border-left-color: white;
    margin: -1.3rem; }
  @media print, screen and (min-width: 40em) {
    .subscribe-on-card__counter {
      padding-left: 1rem; } }
  @media screen and (min-width: 75em) {
    .subscribe-on-card__counter {
      padding-left: 1.6rem; } }

.subscribe-on-card__icon {
  padding-left: 1.5rem;
  padding-right: 0.7rem;
  font-size: 1.7em;
  color: #333a42; }
  .subscribe-on-card__icon > span {
    position: relative; }
    @media print, screen and (min-width: 64em) {
      .subscribe-on-card__icon > span:before {
        content: '';
        display: block;
        position: absolute;
        top: 50%;
        left: -3.4rem;
        height: 2.4rem;
        width: 2.4rem;
        border-top: 3px solid white;
        border-right: 3px solid white;
        margin-top: -1.2rem;
        -webkit-transform: rotate(45deg);
                transform: rotate(45deg); } }

@media screen and (max-width: 39.9375em) {
  .subscribe-on-card__text {
    background: white; } }

@media print, screen and (min-width: 40em) {
  .subscribe-on-card__text {
    padding-left: 1rem; } }

@media screen and (min-width: 75em) {
  .subscribe-on-card__text {
    position: relative;
    padding-left: 2rem; }
    .subscribe-on-card__text:before {
      content: '';
      display: block;
      position: absolute;
      top: 50%;
      left: 0;
      border: 1.3rem solid transparent;
      border-left-color: white;
      margin: -1.3rem; } }

.sellers-stat {
  min-width: 100%;
  font-size: 0.9rem; }

.table-scroll {
  margin-top: 1.5rem; }

.offers-list {
  max-height: 325px;
  overflow-x: auto; }
  .offers-list button {
    margin-left: 0.5rem; }
  .offers-list__item {
    background-color: #fff4dc;
    border-radius: 4px;
    padding: 15px;
    margin: 0px 0px 15px 0px; }
    .offers-list__item > .row {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center; }
    .offers-list__item .button {
      margin-bottom: 0; }
  .offers-list__item-avatar {
    width: 3.3em; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNhcmRQYWdlLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19icmVha3BvaW50LnNjc3MiLCJjb21tb24vX3ZhcmlhYmxlcy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0VBQ0UsWUFBVyxFQUNaOztBQUVEO0VBQ0Usa0JBQWlCLEVBc0JsQjtFQXZCRDtJQUdJLG9CQUFtQixFQUNwQjtFQUpIO0lBTUkscUJBQW9CO0lBQ3BCLHNCQUFxQixFQU10QjtJQzZJRztNRDFKTjtRQVNNLFlBQVc7UUFDWCxVQUFTO1FBQ1QsaUJBQWdCLEVBRW5CLEVBQUE7RUFiSDtJQWdCSSxpQkFBZ0IsRUFDakI7RUN5SUc7SUQxSk47TUFvQk0sY0FBYSxFQUNkLEVBQUE7O0FBSUw7RUFDRSxZQUFXLEVBT1o7RUFSRDtJQUdJLHNCQUFxQjtJQUNyQixpQ0FBZ0M7SUFFaEMsWUFBVyxFQUNaOztBQUdIO0VBQ0Usb0JBQW1CO0VBQ25CLGtCQUFpQjtFQUNqQixZQUFXO0VBQ1gsa0JBQWlCLEVBWWxCO0VBWEM7SUFMRjtNQU1JLGdCQUFlLEVBVWxCLEVBQUE7RUFoQkQ7SUFTSSxxQkFBb0IsRUFDckI7RUFWSDtJQVlJLFdBQVU7SUFDVixVQUFTO0lBQ1QsbUJBQWtCLEVBQ25COztBQUdIO0VBQ0Usc0JBQXFCO0VBQ3JCLHdCQUF1QjtFQUN2QixhQUFZLEVBQ2I7O0FBRUQ7RUFDRSxtQkFBa0I7RUFDbEIsaUJBQWdCLEVBSWpCO0VBTkQ7SUFJSSxpQkFBZ0IsRUFDakI7O0FBSUg7RUFHSSx3QkFBc0I7RUFDdEIsc0JBQXFCO0VBQ3JCLG9CQUFtQjtFQUNuQixXQUFVLEVBVVg7RUFoQkg7SUFRTSxvQkFBbUIsRUFDcEI7RUFUTDtJQVdNLHNCQUFxQixFQUN0QjtFQVpMO0lBY00sY0FBYSxFQUNkOztBQU1MO0VBR1EsY0FBYSxFQUNkOztBQUpQO0VBTVEsc0JBQXFCLEVBQ3RCOztBQVBQO0VBVU0saUNBQXdCO0VBQXhC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QTZCO1FBQzdCLG9CQUFtQjtRQUVuQixpQ0FBd0I7Z0JBQXhCLHlCQUF3QixFQUN6QixFQUFBOztBQzFLRDtFRCtLTjtJQUVJLGtCQUFpQixFQW1CcEIsRUFBQTs7QUN6TUs7RURvTE47SUFLSSxtQkFBa0IsRUFnQnJCLEVBQUE7O0FDcE1LO0VEK0tOO0lBUUksbUJBQWtCO0lBQ2xCLG1CQUFrQixFQVlyQjtJQXJCRDtNQVdNLFlBQVc7TUFDWCxlQUFjO01BQ2QsbUJBQWtCO01BQ2xCLFNBQVE7TUFDUixRQUFPO01BQ1AsaUNBQWdDO01BQ2hDLHlCQUF3QjtNQUN4QixnQkFBZSxFQUNoQixFQUFBOztBQUlMO0VBQ0UsZ0JBQWU7RUFDZixrQkFBaUIsRUFDbEI7O0FBRUQ7RUFDRSxtQkFBa0IsRUFDbkI7O0FBRUQ7RUFLRSxrQkFBaUI7RUFDakIsaUJBQWdCLEVBb0JqQjtFQTFCRDtJQUVJLG9CQUFtQixFQUNwQjtFQUtEO0lBQ0UsMEJBQXlCO0lBQ3pCLG1CQUFrQjtJQUNsQixjQUFhO0lBQ2IseUJBQXdCLEVBU3pCO0lBYkE7TUFNRyxxQkFBYTtNQUFiLHFCQUFhO01BQWIsY0FBYTtNQUNiLDBCQUFtQjtVQUFuQix1QkFBbUI7Y0FBbkIsb0JBQW1CLEVBQ3BCO0lBUkY7TUFVRyxpQkFBZ0IsRUFDakI7RUFJSDtJQUNFLGFBQVksRUFDYiIsImZpbGUiOiJjYXJkUGFnZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IFwiLi9jb21tb24vX3ZhcmlhYmxlc1wiO1xuXG4uY2FyZC1ibG9ja19faWQge1xuICBjb2xvcjogZ3JheTtcbn1cblxuLmNhcmQtcGFnZS1pbmZvIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGhyIHtcbiAgICBtYXJnaW46IDAuOHJlbSBhdXRvO1xuICB9XG4gIC5zZW5kLW1zZy11c2VyLWJ0biB7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjNyZW07XG4gICAgcGFkZGluZy1yaWdodDogMS4zcmVtO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgIH1cbiAgfVxuXG4gIC5sU0dhbGxlcnkgaW1nIHtcbiAgICBtYXgtaGVpZ2h0OiA3cmVtO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgb25seSkge1xuICAgIC5sU0dhbGxlcnkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLmNhcmQtcGFnZS1sYWJlbCB7XG4gIGNvbG9yOiBncmF5O1xuICA+IGltZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogLTAuNXJlbSAwLjVyZW0gLTAuNXJlbSAwO1xuXG4gICAgd2lkdGg6IDJyZW07XG4gIH1cbn1cblxuLmNhcmQtcGFnZS1zdGF0cyB7XG4gIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gIHBhZGRpbmc6IDAuMXJlbSAwO1xuICBjb2xvcjogZ3JheTtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIEBtZWRpYSAobWluLXdpZHRoOiAxNjgwcHgpIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gIH1cbiAgLmZhIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuN3JlbTtcbiAgfVxuICBidXR0b24ge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgfVxufVxuXG4uY2FyZC1wYWdlLXN0YXRzX19mYXYge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMCAwLjVyZW0gMCAxcmVtO1xuICBjb2xvcjogYmxhY2s7XG59XG5cbiNjYXJkLWZpbGRzIHtcbiAgbWF4LWhlaWdodDogNS4ycmVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAmLmNhcmQtZmlsZHNfdmlldy1hbGwge1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gIH1cbn1cblxuLy8gLmNhcmQtZmlsZF9zaG93LFxuLmNhcmQtZmlsZHNfX3ZpZXctbW9yZS1idG4ge1xuICAvLyBtYXJnaW46IDAgMCAwLjVyZW0gLTAuMDVyZW07ICBcbiAgYnV0dG9uIHtcbiAgICBib3JkZXI6IG5vbmUhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMCAwO1xuICAgIHotaW5kZXg6IDI7XG4gICAgLmZhIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgfVxuICAgID4gLnZpZXctbW9yZS10ZXh0IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gICAgPiAuaGlkZS1tb3JlLXRleHQge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbiAgLy8gb3BhY2l0eTogMSFpbXBvcnRhbnQ7XG4gIC8vIG1heC1oZWlnaHQ6IDJyZW0haW1wb3J0YW50O1xufVxuXG4uY2FyZC1maWxkc192aWV3LWFsbCB+IC5jYXJkLWZpbGRzX192aWV3LW1vcmUtYnRuIHtcbiAgICBidXR0b24ge1xuICAgICAgPiAudmlldy1tb3JlLXRleHQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgICAgPiAuaGlkZS1tb3JlLXRleHQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICAgID4gLnJvdyB7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XG4gICAgICAvLyBAZXh0ZW5kIC5jYXJkLWZpbGRfc2hvdztcbiAgICB9XG59XG5cbi5yYWl0aW5nLWNvdW50ZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8vIGJhY2tncm91bmQ6IGJsYWNrO1xuICAvLyBjb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDAuMXJlbSAwLjVyZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gIG1hcmdpbi10b3A6IDAuMnJlbTtcblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICAgIGhlaWdodDogLjVyZW07XG4gICAgd2lkdGg6IC41cmVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpIDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogLTAuMjVyZW07XG4gICAgdG9wOiA1MCU7XG4gIH1cbn1cblxuLmNhcmQtcGFnZS1pbmZvX19zZWxsZXIge1xuICBmb250LXNpemU6IDEuMTVyZW07XG59XG5cbi5sb3QtYWN0aW9ucyB7XG4gIGJ1dHRvbiB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSBkb3duKSB7XG4gICAgYnV0dG9uIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxufVxuXG4ubG90LWFjdGlvbnNfaW5mbyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmxvdC1hY3Rpb25zX19jb2FzdCB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDIuNXJlbTtcbiAgLy8gbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgPiAuZmEge1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICBmb250LXNpemU6IDAuODJlbTtcbiAgICBtYXJnaW4tbGVmdDogMC4yNWVtO1xuICB9XG59XG5cbi5nYWxsZXJ5LXdyYXBwZXIge1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIGltZyB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbi5sb3QtYWRkaXRpb25hbC1pbmZvIHtcbiAgLnRhYnMge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IGRhcmtncmF5O1xuICAgID4gLnRhYnMtdGl0bGUge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiAtMXB4O1xuICAgICAgPiBhIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgfVxuICAgICAgLmZhIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHN1YjtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjY1cmVtO1xuICAgICAgfVxuICAgICAgJi5pcy1hY3RpdmUsXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiBkYXJrZ3JleTtcbiAgICAgIH1cbiAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogd2hpdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5hZGQtc2FtZS1sb3Qge1xuICBmb250LXNpemU6IDEuMXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAkcmVkLW9sZHRyYWRlO1xuICBib3JkZXI6IDFweCBkYXNoZWQgZ3JleTtcbiAgcGFkZGluZzogMC4zcmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgY3Vyc29yOiBwb2ludGVyO1xuICA+IC5mYS1zdGFjayB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6IGRhcmtlbihncmV5LCAxNSUpO1xuICAgIGNvbG9yOiBkYXJrZW4oJHJlZC1vbGR0cmFkZSwgMTAlKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICBtYXJnaW46IDEwcHggMHB4IDEwcHggMHB4O1xuICB9XG59XG5cblxuLmNvbm5lY3Rpb24tYnV0dG9ue1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBwYWRkaW5nOiA1cHggMjBweCA1cHggMjBweDtcbn1cbi5zYW1lLWxvdHMge1xuICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICBmb250LXNpemU6IDAuOXJlbTtcblxuICAubG90LWFjdGlvbnNfX2NvYXN0IHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICAuYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgJjpudGgtY2hpbGQob2RkKSB7XG4gICAgYmFja2dyb3VuZDogJGxpZ2h0LWdyYXktb2xkdHJhZGU7XG4gIH1cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJGdyYXktb2xkdHJhZGU7XG4gIH1cbn1cblxuLnN1YnNjcmliZS1vbi1jYXJkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtYXJnaW46IDEuNXJlbSAwO1xuXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgLmJ1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UpIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbGVmdDogMS4zcmVtO1xuICAgICAgYm9yZGVyOiAxLjNyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItbGVmdC1jb2xvcjogd2hpdGU7XG4gICAgICBtYXJnaW46IC0xLjNyZW07XG4gICAgICB6LWluZGV4OiAyO1xuICAgIH1cbiAgfVxufVxuXG4uc3Vic2NyaWJlLW9uLWNhcmRfX3RleHQsXG4uc3Vic2NyaWJlLW9uLWNhcmRfX2ljb24ge1xuICBiYWNrZ3JvdW5kOiAkZ3JheS1vbGR0cmFkZTtcbn1cblxuLnN1YnNjcmliZS1vbi1jYXJkX19jb3VudGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gID4gc3BhbiB7XG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgIGZvbnQtc2l6ZTogMS42ZW07XG4gICAgfVxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgfVxuICB9XG4gICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogLTEuM3JlbTtcbiAgICBib3JkZXI6IDEuM3JlbSBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogd2hpdGU7XG4gICAgbWFyZ2luOiAtMS4zcmVtO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICB9XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjZyZW07XG4gIH1cbn1cbi5zdWJzY3JpYmUtb24tY2FyZF9faWNvbiB7XG4gIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjdyZW07XG4gIGZvbnQtc2l6ZTogMS43ZW07XG4gIGNvbG9yOiAkZGFyay1ncmF5LW9sZHRyYWRlO1xuXG4gID4gc3BhbiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiAgLTMuNHJlbTtcbiAgICAgICAgaGVpZ2h0OiAyLjRyZW07XG4gICAgICAgIHdpZHRoOiAyLjRyZW07XG4gICAgICAgIGJvcmRlci10b3A6IDNweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAzcHggc29saWQgd2hpdGU7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xLjJyZW07XG5cbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uc3Vic2NyaWJlLW9uLWNhcmRfX3RleHQge1xuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIG9ubHkpIHtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSkge1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDJyZW07XG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIGJvcmRlcjogMS4zcmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHdoaXRlO1xuICAgICAgbWFyZ2luOiAtMS4zcmVtO1xuICAgIH1cbiAgfVxufVxuXG4uc2VsbGVycy1zdGF0IHtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cblxuLnRhYmxlLXNjcm9sbCB7XG4gIG1hcmdpbi10b3A6IDEuNXJlbTtcbn1cblxuLm9mZmVycy1saXN0IHtcbiAgYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICB9XG5cbiAgbWF4LWhlaWdodDogMzI1cHg7XG4gIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgJl9faXRlbSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjRkYztcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgcGFkZGluZzogMTVweDtcbiAgICBtYXJnaW46IDBweCAwcHggMTVweCAwcHg7XG4gICAgPiAucm93IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgICAuYnV0dG9uIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IFxuICAgIH1cblxuICB9XG5cbiAgJl9faXRlbS1hdmF0YXIge1xuICAgIHdpZHRoOiAzLjNlbTtcbiAgfVxufSIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzIGJ5IFpVUkJcbi8vIGZvdW5kYXRpb24uenVyYi5jb21cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFrcG9pbnRzXG4vLy8vXG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMuXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHM6IChcbiAgc21hbGw6IDAsXG4gIG1lZGl1bTogNjQwcHgsXG4gIGxhcmdlOiAxMDI0cHgsXG4gIHhsYXJnZTogMTIwMHB4LFxuICB4eGxhcmdlOiAxNDQwcHgsXG4pICFkZWZhdWx0O1xuXG4vLy8gVGhlIGxhcmdlc3QgbmFtZWQgYnJlYWtwb2ludCBpbiB3aGljaCB0byBpbmNsdWRlIHByaW50IGFzIGEgbWVkaWEgdHlwZVxuLy8vIEB0eXBlIEtleXdvcmRcbiRwcmludC1icmVha3BvaW50OiBsYXJnZSAhZGVmYXVsdDtcblxuJC16Zi16ZXJvLWJyZWFrcG9pbnQ6IHNtYWxsICFkZWZhdWx0O1xuXG4kLXpmLWJyZWFrcG9pbnRzLWtleXM6IG1hcC10by1saXN0KCRicmVha3BvaW50cywgJ2tleXMnKTtcblxuQGlmIG50aChtYXAtdmFsdWVzKCRicmVha3BvaW50cyksIDEpICE9IDAge1xuICBAZXJyb3IgJ1lvdXIgc21hbGxlc3QgYnJlYWtwb2ludCAoZGVmaW5lZCBpbiAkYnJlYWtwb2ludHMpIG11c3QgYmUgc2V0IHRvIFwiMFwiLic7XG59XG5AZWxzZSB7XG4gICQtemYtemVyby1icmVha3BvaW50OiBudGgobWFwLWtleXMoJGJyZWFrcG9pbnRzKSwgMSk7XG59XG5cbi8vLyBBbGwgb2YgdGhlIG5hbWVzIGluIHRoaXMgbGlzdCB3aWxsIGJlIG91dHB1dCBhcyBjbGFzc2VzIGluIHlvdXIgQ1NTLCBsaWtlIGAuc21hbGwtMTJgLCBgLm1lZGl1bS02YCwgYW5kIHNvIG9uLiBFYWNoIHZhbHVlIGluIHRoaXMgbGlzdCBtdXN0IGFsc28gYmUgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcC5cbi8vLyBAdHlwZSBMaXN0XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IHN0cmluZyBtYXRjaGluZyB0aGUgaW5wdXQgdmFsdWUuIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gc2VlIHdoYXQgdGhlIHBvc3NpYmxlIGlucHV0cyBhcmUuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsIFtzbWFsbF0gLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkdmFsOiAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAvLyBTaXplIG9yIGtleXdvcmRcbiAgJGJwOiBudGgoJHZhbCwgMSk7XG4gIC8vIFZhbHVlIGZvciBtYXgtd2lkdGggbWVkaWEgcXVlcmllc1xuICAkYnAtbWF4OiAwO1xuICAvLyBEaXJlY3Rpb24gb2YgbWVkaWEgcXVlcnkgKHVwLCBkb3duLCBvciBvbmx5KVxuICAkZGlyOiBpZihsZW5ndGgoJHZhbCkgPiAxLCBudGgoJHZhbCwgMiksIHVwKTtcbiAgLy8gRXZlbnR1YWwgb3V0cHV0XG4gICRzdHI6ICcnO1xuICAvLyBJcyBpdCBhIG5hbWVkIG1lZGlhIHF1ZXJ5P1xuICAkbmFtZWQ6IGZhbHNlO1xuXG4gIC8vIE9yaWVudGF0aW9uIG1lZGlhIHF1ZXJpZXMgaGF2ZSBhIHVuaXF1ZSBzeW50YXhcbiAgQGlmICRicCA9PSAnbGFuZHNjYXBlJyBvciAkYnAgPT0gJ3BvcnRyYWl0JyB7XG4gICAgQHJldHVybiAnKG9yaWVudGF0aW9uOiAjeyRicH0pJztcbiAgfVxuICBAZWxzZSBpZiAkYnAgPT0gJ3JldGluYScge1xuICAgIEByZXR1cm4gJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknO1xuICB9XG5cbiAgLy8gVHJ5IHRvIHB1bGwgYSBuYW1lZCBicmVha3BvaW50IG91dCBvZiB0aGUgJGJyZWFrcG9pbnRzIG1hcFxuICBAaWYgdHlwZS1vZigkYnApID09ICdzdHJpbmcnIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkYnApIHtcbiAgICAgIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICdkb3duJyB7XG4gICAgICAgICRicC1tYXg6IC16Zi1tYXAtbmV4dCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICB9XG5cbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRicCk7XG4gICAgICAkbmFtZWQ6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRicDogMDtcbiAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IFwiI3skdmFsfVwiIGlzIG5vdCBkZWZpbmVkIGluIHlvdXIgJGJyZWFrcG9pbnRzIHNldHRpbmcuJztcbiAgICB9XG4gIH1cblxuICAvLyBDb252ZXJ0IGFueSBwaXhlbCwgcmVtLCBvciB1bml0bGVzcyB2YWx1ZSB0byBlbVxuICAkYnA6IC16Zi1icC10by1lbSgkYnApO1xuICBAaWYgJGJwLW1heCB7XG4gICAgJGJwLW1heDogLXpmLWJwLXRvLWVtKCRicC1tYXgpIC0gKDEvMTYpO1xuICB9XG5cbiAgLy8gQ29uZGl0aW9ucyB0byBza2lwIG1lZGlhIHF1ZXJ5IGNyZWF0aW9uXG4gIC8vIC0gSXQncyBhIG5hbWVkIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgZG93blwiIG9yIFwiMCB1cFwiXG4gIC8vIC0gSXQncyBhIG51bWVyaWMgYnJlYWtwb2ludCB0aGF0IHJlc29sdmVkIHRvIFwiMCBcIiArIGFueXRoaW5nXG4gIEBpZiAkYnAgPiAwZW0gb3IgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgIC8vIGBvbmx5YCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pIGFuZCAobWF4LXdpZHRoOiBuKWBcbiAgICBAaWYgJGRpciA9PSAnb25seScge1xuICAgICAgLy8gT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIFwib25seVwiIHJhbmdlXG4gICAgICBAaWYgJG5hbWVkID09IHRydWUge1xuICAgICAgICAvLyBPbmx5IHVzZSBcIm1pbi13aWR0aFwiIGlmIHRoZSBmbG9vciBpcyBncmVhdGVyIHRoYW4gMFxuICAgICAgICBAaWYgJGJwID4gMGVtIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuXG4gICAgICAgICAgLy8gT25seSBhZGQgXCJhbmRcIiB0byB0aGUgbWVkaWEgcXVlcnkgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgICBAaWYgJGJwLW1heCAhPSBudWxsIHtcbiAgICAgICAgICAgICRzdHI6ICRzdHIgKyAnIGFuZCAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9ubHkgdXNlIFwibWF4LXdpZHRoXCIgaWYgdGhlcmUncyBhIGNlaWxpbmdcbiAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWF4LXdpZHRoOiAjeyRicC1tYXh9KSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIGBvbmx5YCByYW5nZS4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGBkb3duYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtYXgtd2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAgICRtYXg6IGlmKCRuYW1lZCwgJGJwLW1heCwgJGJwKTtcblxuICAgICAgLy8gU2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvbiBpZiBpbnB1dCB2YWx1ZSBpcyBleGFjdGx5IFwiMCBkb3duXCIsXG4gICAgICAvLyB1bmxlc3MgdGhlIGZ1bmN0aW9uIHdhcyBjYWxsZWQgYXMgXCJzbWFsbCBkb3duXCIsIGluIHdoaWNoIGNhc2UgaXQncyBqdXN0IFwic21hbGwgb25seVwiXG4gICAgICBAaWYgJG5hbWVkIG9yICRicCA+IDBlbSB7XG4gICAgICAgIEBpZiAkbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYHVwYCByYW5nZXMgdXNlIHRoZSBmb3JtYXQgYChtaW4td2lkdGg6IG4pYFxuICAgIEBlbHNlIGlmICRicCA+IDBlbSB7XG4gICAgICAkc3RyOiAkc3RyICsgJyhtaW4td2lkdGg6ICN7JGJwfSknO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIFdyYXBzIGEgbWVkaWEgcXVlcnkgYXJvdW5kIHRoZSBjb250ZW50IHlvdSBwdXQgaW5zaWRlIHRoZSBtaXhpbi4gVGhpcyBtaXhpbiBhY2NlcHRzIGEgbnVtYmVyIG9mIHZhbHVlczpcbi8vLyAgLSBJZiBhIHN0cmluZyBpcyBwYXNzZWQsIHRoZSBtaXhpbiB3aWxsIGxvb2sgZm9yIGl0IGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAsIGFuZCB1c2UgYSBtZWRpYSBxdWVyeSB0aGVyZS5cbi8vLyAgLSBJZiBhIHBpeGVsIHZhbHVlIGlzIHBhc3NlZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gZW0gdmFsdWUgdXNpbmcgYCRnbG9iYWwtZm9udC1zaXplYCBhcyB0aGUgYmFzZS5cbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsdWUgLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG4vLy9cbi8vLyBAb3V0cHV0IElmIHRoZSBicmVha3BvaW50IGlzIFwiMHB4IGFuZCBsYXJnZXJcIiwgb3V0cHV0cyB0aGUgY29udGVudCBhcy1pcy4gT3RoZXJ3aXNlLCBvdXRwdXRzIHRoZSBjb250ZW50IHdyYXBwZWQgaW4gYSBtZWRpYSBxdWVyeS5cbkBtaXhpbiBicmVha3BvaW50KCR2YWx1ZSkge1xuICAkc3RyOiBicmVha3BvaW50KCR2YWx1ZSk7XG4gICRicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkdmFsdWUpO1xuICAkcGJwOiBpbmRleCgkLXpmLWJyZWFrcG9pbnRzLWtleXMsICRwcmludC1icmVha3BvaW50KTtcblxuICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXG4gIEBpZiAkc3RyID09ICcnIHtcbiAgICBAY29udGVudDtcbiAgfVxuXG4gIC8vIE90aGVyd2lzZSwgd3JhcCB0aGUgY29udGVudCBpbiBhIG1lZGlhIHF1ZXJ5XG4gIEBlbHNlIHtcbiAgICAvLyBGb3IgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICRwcmludC1icmVha3BvaW50LCBhZGQgcHJpbnQgdG8gdGhlIG1lZGlhIHR5cGVzXG4gICAgQGlmICRicCAhPSBudWxsIGFuZCAkYnAgPD0gJHBicCB7XG4gICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgI3skc3RyfSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLy8gQ29udmVycyB0aGUgYnJlYWtwb2ludHMgbWFwIHRvIGEgVVJMLWVuY29kZWQgc3RyaW5nLCBsaWtlIHRoaXM6IGBrZXkxPXZhbHVlMSZrZXkyPXZhbHVlMmAuIFRoZSB2YWx1ZSBpcyB0aGVuIGRyb3BwZWQgaW50byB0aGUgQ1NTIGZvciBhIHNwZWNpYWwgYDxtZXRhPmAgdGFnLCB3aGljaCBpcyByZWFkIGJ5IHRoZSBGb3VuZGF0aW9uIEphdmFTY3JpcHQuIFRoaXMgaXMgaG93IHdlIHRyYW5zZmVyIHZhbHVlcyBmcm9tIFNhc3MgdG8gSmF2YVNjcmlwdCwgc28gdGhleSBjYW4gYmUgZGVmaW5lZCBpbiBvbmUgcGxhY2UuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJG1hcCAtIE1hcCB0byBjb252ZXJ0LlxuLy8vXG4vLy8gQHJldHVybnMge1N0cmluZ30gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgbWFwJ3MgY29udGVudHMuXG5AZnVuY3Rpb24gLXpmLWJwLXNlcmlhbGl6ZSgkbWFwKSB7XG4gICRzdHI6ICcnO1xuICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJG1hcCB7XG4gICAgJHN0cjogJHN0ciArICRrZXkgKyAnPScgKyAtemYtYnAtdG8tZW0oJHZhbHVlKSArICcmJztcbiAgfVxuICAkc3RyOiBzdHItc2xpY2UoJHN0ciwgMSwgLTIpO1xuXG4gIEByZXR1cm4gJHN0cjtcbn1cblxuLy8vIEZpbmQgdGhlIG5leHQga2V5IGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGtleSAtIEtleSB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIHZhbHVlIGZvciB0aGUga2V5IGFmdGVyIGAka2V5YCwgaWYgYCRrZXlgIHdhcyBmb3VuZC4gSWYgYCRrZXlgIHdhcyBub3QgZm91bmQsIG9yIGAka2V5YCB3YXMgdGhlIGxhc3QgdmFsdWUgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0KCRtYXAsICRrZXkpIHtcblxuICAvLyBTdG9yZSB0aGUga2V5cyBvZiB0aGUgbWFwIGFzIGEgbGlzdFxuICAkdmFsdWVzOiBtYXAta2V5cygkbWFwKTtcblxuICAkaTogMDtcblxuICAvLyBJZiB0aGUgS2V5IEV4aXN0cywgR2V0IHRoZSBpbmRleCBvZiB0aGUga2V5IHdpdGhpbiB0aGUgbWFwIGFuZCBhZGQgMSB0byBpdCBmb3IgdGhlIG5leHQgYnJlYWtwb2ludCBpbiB0aGUgbWFwXG4gIEBpZiAobWFwLWhhcy1rZXkoJG1hcCwgJGtleSkpIHtcbiAgICAkaTogaW5kZXgoJHZhbHVlcywgJGtleSkgKyAxO1xuICB9XG5cbiAgLy8gSWYgdGhlIGtleSBkb2Vzbid0IGV4aXN0LCBvciBpdCdzIHRoZSBsYXN0IGtleSBpbiB0aGUgbWFwLCByZXR1cm4gbnVsbFxuICBAaWYgKCRpID4gbGVuZ3RoKCRtYXApIG9yICRpID09IDApIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHZhbHVlXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgbnRoKCR2YWx1ZXMsICRpKSk7XG4gIH1cblxufVxuXG4vLy8gR2V0IGEgdmFsdWUgZm9yIGEgYnJlYWtwb2ludCBmcm9tIGEgcmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdCByZWdhcmRsZXNzIG9mIGAkdmFsdWVgLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgaGFzIHRoZSBrZXkgYCR2YWx1ZWAsIHRoZSBleGFjdCBicmVha3BvaW50IHZhbHVlIGlzIHJldHVybmVkLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgZG9lcyAqbm90KiBoYXZlIHRoZSBicmVha3BvaW50LCB0aGUgdmFsdWUgbWF0Y2hpbmcgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgaW4gdGhlIGNvbmZpZyBtYXAgaXMgcmV0dXJuZWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBSZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge01peGVkfSBUaGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlLlxuQGZ1bmN0aW9uIC16Zi1nZXQtYnAtdmFsKCRtYXAsICR2YWx1ZSkge1xuICAvLyBJZiB0aGUgZ2l2ZW4gbWFwIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXRcbiAgQGlmIHR5cGUtb2YoJG1hcCkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJG1hcDtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGdsb2JhbGx5XG4gIEBpZiBub3QgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICBAcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgaW4gdGhlIGxvY2FsIGNvbmZpZyBtYXBcbiAgQGVsc2UgaWYgbWFwLWhhcy1rZXkoJG1hcCwgJHZhbHVlKSB7XG4gICAgLy8gSWYgaXQgZG9lcywganVzdCByZXR1cm4gdGhlIHZhbHVlXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICR2YWx1ZSk7XG4gIH1cbiAgLy8gT3RoZXJ3aXNlLCBmaW5kIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGFuZCByZXR1cm4gdGhhdCB2YWx1ZVxuICBAZWxzZSB7XG4gICAgJGFuY2hvcjogbnVsbDtcbiAgICAkZm91bmQ6IGZhbHNlO1xuXG4gICAgQGVhY2ggJGtleSwgJHZhbCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgQGlmIG5vdCAkZm91bmQge1xuICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcCwgJGtleSkge1xuICAgICAgICAgICRhbmNob3I6ICRrZXk7XG4gICAgICAgIH1cbiAgICAgICAgQGlmICRrZXkgPT0gJHZhbHVlIHtcbiAgICAgICAgICAkZm91bmQ6IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1hcCwgJGFuY2hvcik7XG4gIH1cbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgc21hbGwpIHtcbiAgJHNtYWxsLXVwOiBzY3JlZW47XG4gICRzbWFsbC1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbWVkaXVtKSB7XG4gICRtZWRpdW0tdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSl9Jyk7XG4gICRtZWRpdW0tb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBsYXJnZSkge1xuICAkbGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlKX0nKTtcbiAgJGxhcmdlLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4bGFyZ2UpIHtcbiAgJHhsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlKX0nKTtcbiAgJHhsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4bGFyZ2Ugb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHh4bGFyZ2UpIHtcbiAgJHh4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHh4bGFyZ2UpfScpO1xufVxuIiwiJGRhcmstZ3JheS1vbGR0cmFkZTogIzMzM2E0MjtcbiRsaWdodC1ncmF5LW9sZHRyYWRlOiAjZjlmYWZiO1xuJGdyYXktb2xkdHJhZGU6ICNmM2YzZjM7XG4kYmx1ZS1vbGR0cmFkZTogIzAwYWVlZjtcbiRyZWQtb2xkdHJhZGU6ICNkZjQzNDY7XG4vLyR5ZWxsb3ctb2xkdHJhZGU6ICNmZmFlMDA7XG4keWVsbG93LW9sZHRyYWRlOiAjZjdkOTYzO1xuJGdyZWVuLW9sZHRyYWRlOiBncmVlbjtcbiRiZWlnZS10ZWZhY3Q6ICNjNGFmODk7XG4kYmVpZ2Utc2hhZG93LXRlZmFjdDojYTk5ODc5O1xuXG5AaW1wb3J0ICcuLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9zZXR0aW5ncyc7Il19 */
