.month-picker__container {
  width: 400px;
  position: relative;
  border: 1px solid #DDDDDD;
  border-radius: 5px;
}
.month-picker__container.year-picker {
  width: 225px;
}
.month-picker {
  box-sizing: border-box;
  flex: 1;
  width: auto;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  box-shadow: 1px 2px 5px rgba(0, 0, 0, 0.1);
  font-family: sans-serif;
  border-radius: 5px;
  overflow: hidden;
}
.month-picker__year p {
  width: 100%;
  font-weight: 600;
  letter-spacing: 1px;
  font-size: 1.2rem;
  margin: 1rem 0;
}
.month-picker__year input {
  padding: 0;
  font-weight: 600;
  border-radius: 5px 5px 0 0;
  outline: none;
  border: none;
  font-size: 1.2rem;
  width: auto;
  text-align: center;
  box-sizing: border-box;
  width: 100%;
  height: 3rem;
  position: relative;
  z-index: 1;
}
.month-picker__year input:focus {
  border: 1px solid #55B0F2;
}
.month-picker__year div,
.month-picker__year button,
.month-picker__year p {
  text-align: center;
  flex: 1;
}
.month-picker__year button {
  background-color: #FFFFFF;
  position: absolute;
  width: 4rem;
  font-size: 1.75rem;
  border-radius: 5px;
  outline: none;
  border: 0;
  top: 0.5rem;
  border: 1px solid #E8E8E8;
  z-index: 2;
  color: #686868;
}
.month-picker__year button:hover {
  background-color: rgba(0, 0, 0, 0.025);
}
.month-picker__year button:active {
  background-color: rgba(0, 0, 0, 0.04);
}
.month-picker__year button:first-child {
  left: 10px;
}
.month-picker__year button:last-child {
  right: 10px;
}
.month-picker__month {
  flex-basis: calc(33.333% - 10px);
  padding: 0.75rem 0.25rem;
  cursor: pointer;
  text-align: center;
  border: 1px solid rgba(245, 245, 245, .75);
  transition: all 250ms cubic-bezier(0.165, 0.84, 0.44, 1);
  background-color: #FEFEFE;
  user-select: none;
}
.month-picker .month-picker__month:hover {
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  z-index: 10;
}
.month-picker__month.selected,
.month-picker__month.selected-range-first,
.month-picker__month.selected-range-second {
  background-color: #55B0F2;
  color: #FFFFFF;
  border-radius: 5px;
  box-shadow: inset 0 0 3px #3490d2, 0px 2px 5px rgba(85, 176, 242, 0.2);
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
}
.month-picker__month.selected-range-first,
.month-picker__month.selected-range-second {
  border-color: transparent;
}
.month-picker__month.selected-range {
  background-color: #7eb9e2;
  color: #FFFFFF;
  border-color: transparent;
}
.month-picker__month.inactive {
  background-color: #f0f0f0;
  color: #8a8a8a;
  cursor: not-allowed;
  box-shadow: none;
  text-shadow: none;
}
.month-picker__month.inactive:hover {
  box-shadow: none;
}

/* Dark threme */
.month-picker--dark {
  background-color: #5F5F5F;
}
.month-picker--dark .month-picker__year p,
.month-picker--dark .month-picker__year input {
  color: #EBEBEB;
}
.month-picker--dark .month-picker__year input {
  background-color: #5F5F5F;
}
.month-picker--dark .month-picker__year button {
  background-color: #505050;
  color: #C9C9C9;
  border-color: #1E1E1E;
}
.month-picker--dark .month-picker__year button:hover {
  background-color: rgba(0, 0, 0, 0.3);
}
.month-picker--dark .month-picker__year button:active {
  background-color: rgba(0, 0, 0, 0.6);
}
.month-picker--dark .month-picker__month {
  background-color: #2F2F30;
  border-color: rgba(245, 245, 245, .15);
  color: #C9C9C9;
}
.month-picker--dark .month-picker__month.selected,
.month-picker--dark .month-picker__month.selected-range-first,
.month-picker--dark .month-picker__month.selected-range-second {
  background-color: #505050;
  box-shadow: inset 0 0 3px #505050, 0px 2px 5px #505050;
  color: #FFFFFF;
  border-color: #1d1b1b;
}
.month-picker--dark .month-picker__month.selected-range {
  background-color: #636363;
  color: #FFFFFF;
  border-color: transparent;
}
.month-picker--dark .month-picker__month:hover {
  box-shadow: 0 0 6px rgba(0, 0, 0, 0.8);
  z-index: 10;
}
.month-picker--dark .month-picker__month.inactive {
  background-color: #3f3f3f;
  color: #8a8a8a;
  cursor: not-allowed;
  box-shadow: none;
  text-shadow: none;
}
@media only screen and (max-width: 768px) {
.month-picker__container {
    width: 100%;
}
}

.month-picker-input-container[data-v-201d773d] {
  position: relative;
  width: 180px;
  min-width: 140px;
}
.month-picker-input[data-v-201d773d] {
  padding: 1em 1.5em;
  font-size: .85em;
  border-radius: 5px;
  outline: none;
  border: 1px solid rgba(0,0,0,.15);
  transition: all 350ms cubic-bezier(0.165, 0.84, 0.44, 1);
}
.month-picker-input[data-v-201d773d]:focus {
  border-color: rgba(0,0,0,.25);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}
.month-picker__container[data-v-201d773d] {
  position: absolute;
  top: 3.5em;
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdnVlLW1vbnRoLXBpY2tlci9zcmMvbm9kZV9tb2R1bGVzL3Z1ZS1tb250aC1waWNrZXIvc3JjL01vbnRoUGlja2VyLnZ1ZSIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvdnVlLW1vbnRoLXBpY2tlci9zcmMvbm9kZV9tb2R1bGVzL3Z1ZS1tb250aC1waWNrZXIvc3JjL01vbnRoUGlja2VySW5wdXQudnVlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZRQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NBQ0E7QUFFQTtFQUNBO0NBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q0FDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q0FDQTtBQUVBO0VBQ0E7Q0FDQTtBQUVBOzs7RUFHQTtFQUNBO0NBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q0FDQTtBQUVBO0VBQ0E7Q0FDQTtBQUVBO0VBQ0E7Q0FDQTtBQUVBO0VBQ0E7Q0FDQTtBQUVBO0VBQ0E7Q0FDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDQUNBO0FBRUE7RUFDQTtFQUNBO0NBQ0E7QUFFQTs7O0VBR0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtDQUNBO0FBRUE7O0VBRUE7Q0FDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0NBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q0FDQTtBQUVBO0VBQ0E7Q0FDQTs7QUFFQTtBQUNBO0VBQ0E7Q0FDQTtBQUVBOztFQUVBO0NBQ0E7QUFFQTtFQUNBO0NBQ0E7QUFFQTtFQUNBO0VBQ0E7RUFDQTtDQUNBO0FBRUE7RUFDQTtDQUNBO0FBRUE7RUFDQTtDQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7Q0FDQTtBQUVBOzs7RUFHQTtFQUNBO0VBQ0E7RUFDQTtDQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7Q0FDQTtBQUVBO0VBQ0E7RUFDQTtDQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0NBQ0E7QUFFQTtBQUNBO0lBQ0E7Q0FDQTtDQUNBOztBQ3hYQTtFQUNBO0VBQ0E7RUFDQTtDQUNBO0FBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7Q0FDQTtBQUVBO0VBQ0E7RUFDQTtDQUNBO0FBRUE7RUFDQTtFQUNBO0NBQ0EiLCJmaWxlIjoiL2pzL2FwcC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyI8dGVtcGxhdGU+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJtb250aC1waWNrZXJfX2NvbnRhaW5lclwiXHJcbiAgICA6Y2xhc3M9XCJ7XHJcbiAgICAgIFtgbW9udGgtcGlja2VyLS0ke3ZhcmlhbnR9YF06IHRydWUsXHJcbiAgICAgICd5ZWFyLXBpY2tlcic6IHllYXJPbmx5XHJcbiAgICB9XCJcclxuICA+XHJcbiAgICA8ZGl2XHJcbiAgICAgIHYtaWY9XCJzaG93WWVhclwiXHJcbiAgICAgIGNsYXNzPVwibW9udGgtcGlja2VyX195ZWFyXCJcclxuICAgID5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIEBjbGljaz1cImNoYW5nZVllYXIoLTEpXCJcclxuICAgICAgPlxyXG4gICAgICAgICZsc2FxdW87XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8cFxyXG4gICAgICAgIHYtaWY9XCIhZWRpdGFibGVZZWFyXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IHllYXIgfX1cclxuICAgICAgPC9wPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICB2LWVsc2VcclxuICAgICAgICB2LW1vZGVsLm51bWJlcj1cInllYXJcIlxyXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICBAY2hhbmdlPVwib25DaGFuZ2UoKVwiXHJcbiAgICAgID5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIEBjbGljaz1cImNoYW5nZVllYXIoKzEpXCJcclxuICAgICAgPlxyXG4gICAgICAgICZyc2FxdW87XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIHYtaWY9XCIheWVhck9ubHlcIlxyXG4gICAgICBjbGFzcz1cIm1vbnRoLXBpY2tlclwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICB2LWZvcj1cIihtb250aCwgbW9udGhJbmRleCkgaW4gbW9udGhzQnlMYW5nXCJcclxuICAgICAgICA6a2V5PVwibW9udGhcIiBcclxuICAgICAgICA6Y2xhc3M9XCJ7XHJcbiAgICAgICAgICAnaW5hY3RpdmUnOiBpc0luYWN0aXZlKG1vbnRoKSxcclxuICAgICAgICAgICdjbGVhcmFibGUnOiBjbGVhcmFibGUsXHJcbiAgICAgICAgICAnc2VsZWN0ZWQnOiAhcmFuZ2UgJiYgY3VycmVudE1vbnRoSW5kZXggPT09IG1vbnRoSW5kZXgsXHJcbiAgICAgICAgICAnc2VsZWN0ZWQtcmFuZ2UnOiByYW5nZSAmJiBtb250aEluZGV4ID4gZmlyc3RSYW5nZU1vbnRoSW5kZXggJiYgbW9udGhJbmRleCA8IHNlY29uZFJhbmdlTW9udGhJbmRleCxcclxuICAgICAgICAgICdzZWxlY3RlZC1yYW5nZS1maXJzdCc6IHJhbmdlICYmIGZpcnN0UmFuZ2VNb250aEluZGV4ID09PSBtb250aEluZGV4LFxyXG4gICAgICAgICAgJ3NlbGVjdGVkLXJhbmdlLXNlY29uZCc6IHJhbmdlICYmIHNlY29uZFJhbmdlTW9udGhJbmRleCA9PT0gbW9udGhJbmRleCxcclxuICAgICAgICB9XCJcclxuICAgICAgICBjbGFzcz1cIm1vbnRoLXBpY2tlcl9fbW9udGhcIlxyXG4gICAgICAgIEBjbGljaz1cInNlbGVjdE1vbnRoKG1vbnRoSW5kZXgsIHRydWUpXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IG1vbnRoIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQgbGFuZ3VhZ2VzIGZyb20gJy4vbGFuZ3VhZ2VzJ1xyXG5pbXBvcnQgbW9udGhQaWNrZXIgZnJvbSAnLi9tb250aC1waWNrZXInXHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgbmFtZTogJ01vbnRoUGlja2VyJyxcclxuICBtaXhpbnM6IFttb250aFBpY2tlcl0sXHJcbiAgZW1pdHM6IFtcclxuICAgICdjaGFuZ2UnLFxyXG4gICAgJ2NsZWFyJyxcclxuICAgICdpbnB1dCcsXHJcbiAgICAnY2hhbmdlLXllYXInXHJcbiAgXSxcclxuICBkYXRhOiAoKSA9PiAoe1xyXG4gICAgY3VycmVudE1vbnRoSW5kZXg6IG51bGwsXHJcbiAgICBmaXJzdFJhbmdlTW9udGhJbmRleDogbnVsbCxcclxuICAgIHNlY29uZFJhbmdlTW9udGhJbmRleDogbnVsbCxcclxuICAgIHllYXI6IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKVxyXG4gIH0pLFxyXG4gIGNvbXB1dGVkOiB7XHJcbiAgICBjdXJyZW50TW9udGg6IGZ1bmN0aW9uKCkge1xyXG4gICAgICBpZiAodGhpcy5jdXJyZW50TW9udGhJbmRleCAhPT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1vbnRoc0J5TGFuZ1t0aGlzLmN1cnJlbnRNb250aEluZGV4XVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gbnVsbFxyXG4gICAgfSxcclxuICAgIGZpcnN0UmFuZ2Vtb250aDogZnVuY3Rpb24gKCkge1xyXG4gICAgICBpZiAodGhpcy5maXJzdFJhbmdlTW9udGhJbmRleCAhPT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1vbnRoc0J5TGFuZ1t0aGlzLmZpcnN0UmFuZ2VNb250aEluZGV4XVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gbnVsbFxyXG4gICAgfSxcclxuICAgIHNlY29uZFJhbmdlbW9udGg6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgaWYgKHRoaXMuc2Vjb25kUmFuZ2VNb250aEluZGV4ICE9PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubW9udGhzQnlMYW5nW3RoaXMuc2Vjb25kUmFuZ2VNb250aEluZGV4XVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gbnVsbFxyXG4gICAgfSxcclxuICAgIGRhdGU6IGZ1bmN0aW9uKCkge1xyXG4gICAgICBjb25zdCBtb250aCA9IHRoaXMubW9udGhzQnlMYW5nLmluZGV4T2YodGhpcy5jdXJyZW50TW9udGgpICsgMVxyXG4gICAgICBsZXQgZGF0ZUZyb20gPSBuZXcgRGF0ZShgJHt0aGlzLnllYXJ9LyR7bW9udGh9LzAxYClcclxuICAgICAgbGV0IGRhdGVUbyA9IG5ldyBEYXRlKHRoaXMueWVhciwgbW9udGgsIDEpXHJcblxyXG4gICAgICBjb25zdCBkYXRlUmVzdWx0ID0ge1xyXG4gICAgICAgIGZyb206IGRhdGVGcm9tLFxyXG4gICAgICAgIHRvOiBkYXRlVG8sXHJcbiAgICAgICAgbW9udGg6IHRoaXMubW9udGhzQnlMYW5nW21vbnRoIC0gMV0sXHJcbiAgICAgICAgbW9udGhJbmRleDogbW9udGgsXHJcbiAgICAgICAgeWVhcjogdGhpcy55ZWFyLFxyXG4gICAgICAgIHJhbmdlRnJvbTogbnVsbCxcclxuICAgICAgICByYW5nZVRvOiBudWxsLFxyXG4gICAgICAgIHJhbmdlRnJvbU1vbnRoOiBudWxsLFxyXG4gICAgICAgIHJhbmdlVG9Nb250aDogbnVsbFxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5yYW5nZSkge1xyXG4gICAgICAgIGNvbnN0IG1vbnRoUmFuZ2VGcm9tID0gdGhpcy5tb250aHNCeUxhbmcuaW5kZXhPZih0aGlzLmZpcnN0UmFuZ2VNb250aEluZGV4KSArIDFcclxuICAgICAgICBjb25zdCBtb250aFJhbmdlVG8gPSB0aGlzLm1vbnRoc0J5TGFuZy5pbmRleE9mKHRoaXMuc2Vjb25kUmFuZ2VNb250aEluZGV4KSArIDFcclxuXHJcbiAgICAgICAgZGF0ZUZyb20gPSBuZXcgRGF0ZShgJHt0aGlzLnllYXJ9LyR7bW9udGhSYW5nZUZyb219LzAxYClcclxuICAgICAgICBkYXRlVG8gPSBuZXcgRGF0ZShgJHt0aGlzLnllYXJ9LyR7bW9udGhSYW5nZVRvfS8wMWApXHJcbiAgICAgICAgXHJcblxyXG4gICAgICAgIGRhdGVSZXN1bHQucmFuZ2VGcm9tID0gdGhpcy5maXJzdFJhbmdlTW9udGhJbmRleFxyXG4gICAgICAgIGRhdGVSZXN1bHQucmFuZ2VUbyA9IHRoaXMuc2Vjb25kUmFuZ2VNb250aEluZGV4XHJcbiAgICAgICAgZGF0ZVJlc3VsdC5yYW5nZUZyb21Nb250aCA9IHRoaXMubW9udGhzQnlMYW5nW3RoaXMuZmlyc3RSYW5nZU1vbnRoSW5kZXhdXHJcbiAgICAgICAgZGF0ZVJlc3VsdC5yYW5nZVRvTW9udGggPSB0aGlzLm1vbnRoc0J5TGFuZ1t0aGlzLnNlY29uZFJhbmdlTW9udGhJbmRleF1cclxuICAgICAgfVxyXG4gICAgICBcclxuICAgICAgcmV0dXJuIGRhdGVSZXN1bHRcclxuICAgIH1cclxuICB9LFxyXG4gIHdhdGNoOiB7XHJcbiAgICBkZWZhdWx0TW9udGggKG5ld1ZhbCkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRNb250aEluZGV4ID0gbmV3VmFsXHJcbiAgICB9LFxyXG4gICAgZGVmYXVsdFllYXIgKG5ld1ZhbCkge1xyXG4gICAgICB0aGlzLnllYXIgPSBuZXdWYWxcclxuICAgIH1cclxuICB9LFxyXG4gIG1vdW50ZWQoKSB7XHJcbiAgICBpZiAodGhpcy5kZWZhdWx0WWVhcikge1xyXG4gICAgICB0aGlzLnllYXIgPSB0aGlzLmRlZmF1bHRZZWFyXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMucmFuZ2UpIHtcclxuICAgICAgdGhpcy5zZXREZWZhdWx0TW9udGhSYW5nZSgpXHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmRlZmF1bHRNb250aCkge1xyXG4gICAgICB0aGlzLnNlbGVjdE1vbnRoKHRoaXMuZGVmYXVsdE1vbnRoIC0gMSlcclxuICAgIH0gZWxzZSBpZiAoIXRoaXMubm9EZWZhdWx0KSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0TW9udGgoMClcclxuICAgIH1cclxuICB9LFxyXG4gIG1ldGhvZHM6IHtcclxuICAgIG9uQ2hhbmdlKCkge1xyXG4gICAgICBpZiAoIU51bWJlci5wYXJzZUludCh0aGlzLnllYXIpKSB7XHJcbiAgICAgICAgdGhpcy55ZWFyID0gdGhpcy5kZWZhdWx0WWVhciB8fCBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKClcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy4kZW1pdCgnY2hhbmdlJywgdGhpcy5kYXRlKVxyXG4gICAgfSxcclxuICAgIHNlbGVjdE1vbnRoKGluZGV4LCBpbnB1dCA9IGZhbHNlKSB7XHJcbiAgICAgIGlmICh0aGlzLmlzSW5hY3RpdmUoaW5kZXgpKSB7XHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLnJhbmdlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0TW9udGhSYW5nZShpbmRleCwgaW5wdXQpXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGlzQWxyZWFkeVNlbGVjdGVkID0gdGhpcy5jdXJyZW50TW9udGhJbmRleCA9PT0gaW5kZXhcclxuICAgICAgaWYgKHRoaXMuY2xlYXJhYmxlICYmIGlzQWxyZWFkeVNlbGVjdGVkKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50TW9udGhJbmRleCA9IG51bGxcclxuICAgICAgICB0aGlzLiRlbWl0KCdjbGVhcicpXHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLmlzQWxyZWFkeVNlbGVjdGVkKSB7XHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoSW5kZXggPSBpbmRleFxyXG4gICAgICB0aGlzLm9uQ2hhbmdlKClcclxuXHJcbiAgICAgIGlmIChpbnB1dCkge1xyXG4gICAgICAgIHRoaXMuJGVtaXQoJ2lucHV0JywgdGhpcy5kYXRlKVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgc2VsZWN0TW9udGhSYW5nZShpbmRleCwgaW5wdXQpIHtcclxuICAgICAgaWYgKHRoaXMuZmlyc3RSYW5nZU1vbnRoSW5kZXggPT09IG51bGwpIHtcclxuICAgICAgICB0aGlzLmZpcnN0UmFuZ2VNb250aEluZGV4ID0gaW5kZXhcclxuICAgICAgICByZXR1cm5cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuZmlyc3RSYW5nZU1vbnRoSW5kZXggIT09IG51bGwgJiYgdGhpcy5zZWNvbmRSYW5nZU1vbnRoSW5kZXggIT09IG51bGwpIHtcclxuICAgICAgICB0aGlzLmZpcnN0UmFuZ2VNb250aEluZGV4ID0gaW5kZXhcclxuICAgICAgICB0aGlzLnNlY29uZFJhbmdlTW9udGhJbmRleCA9IG51bGxcclxuICAgICAgICByZXR1cm5cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGluZGV4ID49IHRoaXMuZmlyc3RSYW5nZU1vbnRoSW5kZXgpIHtcclxuICAgICAgICB0aGlzLnNlY29uZFJhbmdlTW9udGhJbmRleCA9IGluZGV4XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSgpXHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKGlucHV0KSB7XHJcbiAgICAgICAgICB0aGlzLiRlbWl0KCdpbnB1dCcsIHRoaXMuZGF0ZSlcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuZmlyc3RSYW5nZU1vbnRoSW5kZXggPSBpbmRleFxyXG4gICAgfSxcclxuICAgIHNldERlZmF1bHRNb250aFJhbmdlICgpIHtcclxuICAgICAgaWYgKHRoaXMuZGVmYXVsdE1vbnRoUmFuZ2UgPT09IG51bGwgfHwgdGhpcy5kZWZhdWx0TW9udGhSYW5nZS5sZW5ndGggIT09IDIpIHtcclxuICAgICAgICByZXR1cm5cclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgW2ZpcnN0UmFuZ2UsIHNlY29uZFJhbmdlXSA9IHRoaXMuZGVmYXVsdE1vbnRoUmFuZ2VcclxuICAgICAgaWYgKHNlY29uZFJhbmdlIDw9IGZpcnN0UmFuZ2UpIHtcclxuICAgICAgICByZXR1cm5cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5maXJzdFJhbmdlTW9udGhJbmRleCA9IGZpcnN0UmFuZ2VcclxuICAgICAgdGhpcy5zZWNvbmRSYW5nZU1vbnRoSW5kZXggPSBzZWNvbmRSYW5nZVxyXG4gICAgfSxcclxuICAgIGNoYW5nZVllYXIodmFsdWUpIHtcclxuICAgICAgdGhpcy55ZWFyICs9IHZhbHVlXHJcbiAgICAgIGlmICh0aGlzLmlzSW5hY3RpdmUoMCkpIHtcclxuICAgICAgICByZXR1cm5cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5vbkNoYW5nZSgpXHJcbiAgICAgIHRoaXMuJGVtaXQoJ2NoYW5nZS15ZWFyJywgdGhpcy55ZWFyKVxyXG4gICAgfSxcclxuICAgIGlzSW5hY3RpdmUobW9udGgpIHtcclxuICAgICAgbGV0IG1vbnRoVmFsdWUgPSBtb250aFxyXG4gICAgICBpZiAodGhpcy5taW5EYXRlID09PSBudWxsICYmIHRoaXMubWF4RGF0ZSA9PT0gbnVsbCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoTnVtYmVyLmlzSW50ZWdlcihtb250aFZhbHVlKSkge1xyXG4gICAgICAgIG1vbnRoVmFsdWUgPSB0aGlzLm1vbnRoc0J5TGFuZ1ttb250aFZhbHVlXVxyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBtb250aEtleSA9IHRoaXMubW9udGhzQnlMYW5nLmluZGV4T2YobW9udGhWYWx1ZSkgKyAxXHJcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShgJHt0aGlzLnllYXJ9LyR7bW9udGhLZXl9LzAxYClcclxuICAgICAgY29uc3QgaXNWYWxpZERhdGUgPSAoZGF0ZSkgPT4gZGF0ZSAhPT0gbnVsbCAmJiAoZGF0ZSBpbnN0YW5jZW9mIERhdGUpXHJcblxyXG4gICAgICBpZiAoaXNWYWxpZERhdGUodGhpcy5taW5EYXRlKSAmJiBkYXRlIDwgdGhpcy5taW5EYXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWVcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGlzVmFsaWREYXRlKHRoaXMubWF4RGF0ZSkgJiYgZGF0ZSA+IHRoaXMubWF4RGF0ZSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZT5cclxuLm1vbnRoLXBpY2tlcl9fY29udGFpbmVyIHtcclxuICB3aWR0aDogNDAwcHg7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNEREREREQ7XHJcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG59XHJcblxyXG4ubW9udGgtcGlja2VyX19jb250YWluZXIueWVhci1waWNrZXIge1xyXG4gIHdpZHRoOiAyMjVweDtcclxufVxyXG5cclxuLm1vbnRoLXBpY2tlciB7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBmbGV4OiAxO1xyXG4gIHdpZHRoOiBhdXRvO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgYm94LXNoYWRvdzogMXB4IDJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4ubW9udGgtcGlja2VyX195ZWFyIHAge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcclxuICBmb250LXNpemU6IDEuMnJlbTtcclxuICBtYXJnaW46IDFyZW0gMDtcclxufVxyXG5cclxuLm1vbnRoLXBpY2tlcl9feWVhciBpbnB1dCB7XHJcbiAgcGFkZGluZzogMDtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwO1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gIHdpZHRoOiBhdXRvO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGhlaWdodDogM3JlbTtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgei1pbmRleDogMTtcclxufVxyXG5cclxuLm1vbnRoLXBpY2tlcl9feWVhciBpbnB1dDpmb2N1cyB7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgIzU1QjBGMjtcclxufVxyXG5cclxuLm1vbnRoLXBpY2tlcl9feWVhciBkaXYsXHJcbi5tb250aC1waWNrZXJfX3llYXIgYnV0dG9uLFxyXG4ubW9udGgtcGlja2VyX195ZWFyIHAge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBmbGV4OiAxO1xyXG59XHJcblxyXG4ubW9udGgtcGlja2VyX195ZWFyIGJ1dHRvbiB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgd2lkdGg6IDRyZW07XHJcbiAgZm9udC1zaXplOiAxLjc1cmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICBvdXRsaW5lOiBub25lO1xyXG4gIGJvcmRlcjogMDtcclxuICB0b3A6IDAuNXJlbTtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjRThFOEU4O1xyXG4gIHotaW5kZXg6IDI7XHJcbiAgY29sb3I6ICM2ODY4Njg7XHJcbn1cclxuXHJcbi5tb250aC1waWNrZXJfX3llYXIgYnV0dG9uOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDI1KTtcclxufVxyXG5cclxuLm1vbnRoLXBpY2tlcl9feWVhciBidXR0b246YWN0aXZlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xyXG59XHJcblxyXG4ubW9udGgtcGlja2VyX195ZWFyIGJ1dHRvbjpmaXJzdC1jaGlsZCB7XHJcbiAgbGVmdDogMTBweDtcclxufVxyXG5cclxuLm1vbnRoLXBpY2tlcl9feWVhciBidXR0b246bGFzdC1jaGlsZCB7XHJcbiAgcmlnaHQ6IDEwcHg7XHJcbn1cclxuXHJcbi5tb250aC1waWNrZXJfX21vbnRoIHtcclxuICBmbGV4LWJhc2lzOiBjYWxjKDMzLjMzMyUgLSAxMHB4KTtcclxuICBwYWRkaW5nOiAwLjc1cmVtIDAuMjVyZW07XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI0NSwgMjQ1LCAyNDUsIC43NSk7XHJcbiAgdHJhbnNpdGlvbjogYWxsIDI1MG1zIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZFRkVGRTtcclxuICB1c2VyLXNlbGVjdDogbm9uZTtcclxufVxyXG5cclxuLm1vbnRoLXBpY2tlciAubW9udGgtcGlja2VyX19tb250aDpob3ZlciB7XHJcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xyXG4gIHotaW5kZXg6IDEwO1xyXG59XHJcblxyXG4ubW9udGgtcGlja2VyX19tb250aC5zZWxlY3RlZCxcclxuLm1vbnRoLXBpY2tlcl9fbW9udGguc2VsZWN0ZWQtcmFuZ2UtZmlyc3QsXHJcbi5tb250aC1waWNrZXJfX21vbnRoLnNlbGVjdGVkLXJhbmdlLXNlY29uZCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU1QjBGMjtcclxuICBjb2xvcjogI0ZGRkZGRjtcclxuICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDNweCAjMzQ5MGQyLCAwcHggMnB4IDVweCByZ2JhKDg1LCAxNzYsIDI0MiwgMC4yKTtcclxuICB0ZXh0LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XHJcbn1cclxuXHJcbi5tb250aC1waWNrZXJfX21vbnRoLnNlbGVjdGVkLXJhbmdlLWZpcnN0LFxyXG4ubW9udGgtcGlja2VyX19tb250aC5zZWxlY3RlZC1yYW5nZS1zZWNvbmQge1xyXG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi5tb250aC1waWNrZXJfX21vbnRoLnNlbGVjdGVkLXJhbmdlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2ViOWUyO1xyXG4gIGNvbG9yOiAjRkZGRkZGO1xyXG4gIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi5tb250aC1waWNrZXJfX21vbnRoLmluYWN0aXZlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xyXG4gIGNvbG9yOiAjOGE4YThhO1xyXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbiAgYm94LXNoYWRvdzogbm9uZTtcclxuICB0ZXh0LXNoYWRvdzogbm9uZTtcclxufVxyXG5cclxuLm1vbnRoLXBpY2tlcl9fbW9udGguaW5hY3RpdmU6aG92ZXIge1xyXG4gIGJveC1zaGFkb3c6IG5vbmU7XHJcbn1cclxuXHJcbi8qIERhcmsgdGhyZW1lICovXHJcbi5tb250aC1waWNrZXItLWRhcmsge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM1RjVGNUY7XHJcbn1cclxuXHJcbi5tb250aC1waWNrZXItLWRhcmsgLm1vbnRoLXBpY2tlcl9feWVhciBwLFxyXG4ubW9udGgtcGlja2VyLS1kYXJrIC5tb250aC1waWNrZXJfX3llYXIgaW5wdXQge1xyXG4gIGNvbG9yOiAjRUJFQkVCO1xyXG59XHJcblxyXG4ubW9udGgtcGlja2VyLS1kYXJrIC5tb250aC1waWNrZXJfX3llYXIgaW5wdXQge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM1RjVGNUY7XHJcbn1cclxuXHJcbi5tb250aC1waWNrZXItLWRhcmsgLm1vbnRoLXBpY2tlcl9feWVhciBidXR0b24ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM1MDUwNTA7XHJcbiAgY29sb3I6ICNDOUM5Qzk7XHJcbiAgYm9yZGVyLWNvbG9yOiAjMUUxRTFFO1xyXG59XHJcblxyXG4ubW9udGgtcGlja2VyLS1kYXJrIC5tb250aC1waWNrZXJfX3llYXIgYnV0dG9uOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbn1cclxuXHJcbi5tb250aC1waWNrZXItLWRhcmsgLm1vbnRoLXBpY2tlcl9feWVhciBidXR0b246YWN0aXZlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7XHJcbn1cclxuXHJcbi5tb250aC1waWNrZXItLWRhcmsgLm1vbnRoLXBpY2tlcl9fbW9udGgge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMyRjJGMzA7XHJcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI0NSwgMjQ1LCAyNDUsIC4xNSk7XHJcbiAgY29sb3I6ICNDOUM5Qzk7XHJcbn1cclxuXHJcbi5tb250aC1waWNrZXItLWRhcmsgLm1vbnRoLXBpY2tlcl9fbW9udGguc2VsZWN0ZWQsXHJcbi5tb250aC1waWNrZXItLWRhcmsgLm1vbnRoLXBpY2tlcl9fbW9udGguc2VsZWN0ZWQtcmFuZ2UtZmlyc3QsXHJcbi5tb250aC1waWNrZXItLWRhcmsgLm1vbnRoLXBpY2tlcl9fbW9udGguc2VsZWN0ZWQtcmFuZ2Utc2Vjb25kIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTA1MDUwO1xyXG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAzcHggIzUwNTA1MCwgMHB4IDJweCA1cHggIzUwNTA1MDtcclxuICBjb2xvcjogI0ZGRkZGRjtcclxuICBib3JkZXItY29sb3I6ICMxZDFiMWI7XHJcbn1cclxuXHJcbi5tb250aC1waWNrZXItLWRhcmsgLm1vbnRoLXBpY2tlcl9fbW9udGguc2VsZWN0ZWQtcmFuZ2Uge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM2MzYzNjM7XHJcbiAgY29sb3I6ICNGRkZGRkY7XHJcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxufVxyXG5cclxuLm1vbnRoLXBpY2tlci0tZGFyayAubW9udGgtcGlja2VyX19tb250aDpob3ZlciB7XHJcbiAgYm94LXNoYWRvdzogMCAwIDZweCByZ2JhKDAsIDAsIDAsIDAuOCk7XHJcbiAgei1pbmRleDogMTA7XHJcbn1cclxuXHJcbi5tb250aC1waWNrZXItLWRhcmsgLm1vbnRoLXBpY2tlcl9fbW9udGguaW5hY3RpdmUge1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMzZjNmM2Y7XHJcbiAgY29sb3I6ICM4YThhOGE7XHJcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxuICBib3gtc2hhZG93OiBub25lO1xyXG4gIHRleHQtc2hhZG93OiBub25lO1xyXG59XHJcblxyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgLm1vbnRoLXBpY2tlcl9fY29udGFpbmVyIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxufVxyXG48L3N0eWxlPlxyXG4iLCI8dGVtcGxhdGU+XHJcbiAgPGRpdlxyXG4gICAgdi1jbGljay1vdXRzaWRlPVwiaGlkZVwiXHJcbiAgICBjbGFzcz1cIm1vbnRoLXBpY2tlci1pbnB1dC1jb250YWluZXJcIlxyXG4gID5cclxuICAgIDxpbnB1dFxyXG4gICAgICB2LW1vZGVsPVwic2VsZWN0ZWREYXRlXCJcclxuICAgICAgY2xhc3M9XCJtb250aC1waWNrZXItaW5wdXRcIlxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIHJlYWRvbmx5XHJcbiAgICAgIEBjbGljaz1cInNob3dNb250aFBpY2tlcigpXCJcclxuICAgID5cclxuICAgIDxtb250aC1waWNrZXJcclxuICAgICAgdi1zaG93PVwibW9udGhQaWNrZXJWaXNpYmxlXCJcclxuICAgICAgOmRlZmF1bHQteWVhcj1cImRlZmF1bHRZZWFyXCJcclxuICAgICAgOmRlZmF1bHQtbW9udGg9XCJkZWZhdWx0TW9udGhcIlxyXG4gICAgICA6bGFuZz1cImxhbmdcIlxyXG4gICAgICA6bW9udGhzPVwibW9udGhzXCJcclxuICAgICAgOm5vLWRlZmF1bHQ9XCJub0RlZmF1bHRcIlxyXG4gICAgICA6c2hvdy15ZWFyPVwic2hvd1llYXJcIlxyXG4gICAgICA6Y2xlYXJhYmxlPVwiY2xlYXJhYmxlXCJcclxuICAgICAgOnZhcmlhbnQ9XCJ2YXJpYW50XCJcclxuICAgICAgOmVkaXRhYmxlLXllYXI9XCJlZGl0YWJsZVllYXJcIlxyXG4gICAgICA6bWF4LWRhdGU9XCJtYXhEYXRlXCJcclxuICAgICAgOm1pbi1kYXRlPVwibWluRGF0ZVwiXHJcbiAgICAgIDp5ZWFyLW9ubHk9XCJ5ZWFyT25seVwiXHJcbiAgICAgIDpyYW5nZT1cInJhbmdlXCJcclxuICAgICAgQGlucHV0PVwicG9wdWxhdGVJbnB1dFwiXHJcbiAgICAgIEBjaGFuZ2U9XCIkZW1pdCgnY2hhbmdlJywgJGV2ZW50KVwiXHJcbiAgICAvPlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IE1vbnRoUGlja2VyIGZyb20gJy4vTW9udGhQaWNrZXIudnVlJ1xyXG5pbXBvcnQgbW9udGhQaWNrZXIgZnJvbSAnLi9tb250aC1waWNrZXInXHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgbmFtZTogJ01vbnRoUGlja2VySW5wdXQnLFxyXG4gIGRpcmVjdGl2ZXM6IHtcclxuICAgIGNsaWNrT3V0c2lkZToge1xyXG4gICAgICBiaW5kOiBmdW5jdGlvbiAoZWwsIGJpbmRpbmcsIHZub2RlKSB7XHJcbiAgICAgICAgZWwuZXZlbnQgPSBmdW5jdGlvbiAoZXZlbnQpIHtcclxuICAgICAgICAgIGlmICghKGVsID09PSBldmVudC50YXJnZXQgfHwgZWwuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkpIHtcclxuICAgICAgICAgICAgdm5vZGUuY29udGV4dFtiaW5kaW5nLmV4cHJlc3Npb25dKGV2ZW50KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZWwuZXZlbnQpXHJcbiAgICAgIH0sXHJcbiAgICAgIHVuYmluZDogZnVuY3Rpb24gKGVsKSB7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGVsLmV2ZW50KVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSxcclxuICBjb21wb25lbnRzOiB7XHJcblx0XHRNb250aFBpY2tlclxyXG5cdH0sXHJcbiAgY29tcG9uZW50czoge1xyXG4gICAgTW9udGhQaWNrZXJcclxuICB9LFxyXG4gIG1peGluczogW21vbnRoUGlja2VyXSxcclxuICBlbWl0czogW1xyXG4gICAgJ2NoYW5nZScsXHJcbiAgICAnaW5wdXQnXHJcbiAgXSxcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbW9udGhQaWNrZXJWaXNpYmxlOiBmYWxzZSxcclxuICAgICAgc2VsZWN0ZWREYXRlOiBudWxsXHJcbiAgICB9XHJcbiAgfSxcclxuICBtb3VudGVkKCkge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRQcmVGaWxsZWQgJiYgdGhpcy5kZWZhdWx0TW9udGggIT09IG51bGwgJiYgdGhpcy5kZWZhdWx0WWVhciAhPT0gbnVsbCAmJiAhdGhpcy5yYW5nZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IGAke3RoaXMubW9udGhzQnlMYW5nW3RoaXMuZGVmYXVsdE1vbnRoIC0gMV19LCAke3RoaXMuZGVmYXVsdFllYXJ9YFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgcG9wdWxhdGVJbnB1dChkYXRlKSB7XHJcbiAgICAgIGlmICh0aGlzLnJhbmdlKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBgJHtkYXRlLnJhbmdlRnJvbU1vbnRofSAtICR7ZGF0ZS5yYW5nZVRvTW9udGh9LCAke2RhdGUueWVhcn1gXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBgJHtkYXRlLm1vbnRofSwgJHtkYXRlLnllYXJ9YFxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLm1vbnRoUGlja2VyVmlzaWJsZSA9IGZhbHNlXHJcbiAgICAgIHRoaXMuJGVtaXQoXCJpbnB1dFwiLCBkYXRlKVxyXG4gICAgfSxcclxuICAgIHNob3dNb250aFBpY2tlcigpIHtcclxuICAgICAgdGhpcy5tb250aFBpY2tlclZpc2libGUgPSAhdGhpcy5tb250aFBpY2tlclZpc2libGVcclxuICAgIH0sXHJcbiAgICBoaWRlKCkge1xyXG4gICAgICB0aGlzLm1vbnRoUGlja2VyVmlzaWJsZSA9IGZhbHNlXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbjwvc2NyaXB0PlxyXG48c3R5bGUgc2NvcGVkPlxyXG4gIC5tb250aC1waWNrZXItaW5wdXQtY29udGFpbmVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHdpZHRoOiAxODBweDtcclxuICAgIG1pbi13aWR0aDogMTQwcHg7XHJcbiAgfVxyXG5cclxuICAubW9udGgtcGlja2VyLWlucHV0IHtcclxuICAgIHBhZGRpbmc6IDFlbSAxLjVlbTtcclxuICAgIGZvbnQtc2l6ZTogLjg1ZW07XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICBvdXRsaW5lOiBub25lO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLDAsMCwuMTUpO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDM1MG1zIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSk7XHJcbiAgfVxyXG5cclxuICAubW9udGgtcGlja2VyLWlucHV0OmZvY3VzIHtcclxuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLDAsMCwuMjUpO1xyXG4gICAgYm94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuICB9XHJcblxyXG4gIC5tb250aC1waWNrZXJfX2NvbnRhaW5lciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDMuNWVtO1xyXG4gIH1cclxuPC9zdHlsZT5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==*/