/* Variables */
/* Resets */
*,
*:before,
*:after {
  box-sizing: border-box;
}
ul,
figure {
  padding: 0;
  margin: 0;
}
/* Style */
html,
body {
  height: 100%;
}
body {
  max-width: 1200px;
  width: 80%;
  margin: 0 auto;
  overflow-y: scroll;
  background: #fafafa;
  color: #333;
}
body.loading,
body.loading * {
  cursor: wait !important;
}
@media (max-width: 800px) {
  body {
    width: 100%;
    padding: 0 20px;
  }
}
body,
input {
  font-family: Roboto, sans-serif;
  font-weight: 300;
}
.github-link {
  position: absolute;
  top: -10px;
  left: -10px;
  border: solid transparent;
  border-width: 0 0 40px 40px;
  border-left-color: #333;
  text-decoration: none;
  color: #fff;
  transition: 0.2s;
}
.github-link:before {
  content: '✎';
  position: absolute;
  top: -3px;
  left: -41px;
  font-size: 24px;
}
.github-link:hover {
  top: 0;
  left: 0;
}
[data-link] {
  color: #333;
  text-decoration: none;
  font-size: 24px;
}
.lastfm {
  position: absolute;
  top: 50px;
  right: 0;
  max-width: 220px;
  padding: 5px;
  margin: 6px;
  font-size: 14px;
  line-height: 22px;
}
.lastfm [data-dropdown] {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #333;
}
.lastfm [data-dropdown]:before {
  content: url("http://cdn.last.fm/flatness/favicon.2.ico");
  display: inline-block;
  vertical-align: sub;
  margin-right: 4px;
}
.lastfm-connect :before {
  content: 'Connect to ';
}
@media (max-width: 800px) {
  .lastfm {
    max-width: 110px;
    font-size: 13px;
  }
}
.dropdown {
  position: absolute;
  display: inline-block;
  min-width: 125px;
  top: 30px;
  right: 0;
  opacity: 0;
  transform: translate(0, 10px) scale(0.9);
  pointer-events: none;
  transition: 0.2s;
  z-index: 1;
}
.dropdown.open {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}
.dropdown:before,
.dropdown:after {
  content: '';
  position: absolute;
  left: 50%;
  border: solid transparent;
}
.dropdown:before {
  top: -5px;
  margin-left: -6px;
  border-width: 0 6px 6px;
  border-bottom-color: #bbb;
}
.dropdown:after {
  top: -4px;
  margin-left: -5px;
  border-width: 0 5px 5px;
  border-bottom-color: #fff;
}
.dropdown > * {
  display: block;
  padding: 3px 10px;
  border: solid #bbb;
  border-width: 0 1px 1px;
  background: #fff;
  text-decoration: none;
  color: #333;
  cursor: pointer;
}
.dropdown input {
  position: absolute;
  top: 9px;
  right: 7px;
  margin: 0;
}
.dropdown > :first-child {
  border-top-width: 1px;
  border-top-left-radius: 3px;
  border-top-right-radius: 3px;
}
.dropdown > :last-child {
  border-bottom-right-radius: 3px;
  border-bottom-left-radius: 3px;
}
form {
  text-align: center;
}
form input {
  padding: 5px;
  margin: 5px 0;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 22px;
}
.playlists-form input {
  width: calc(100% - 24px);
}
.playlists-form a {
  display: inline-block;
  width: 24px;
  text-align: right;
}
.filter-form input {
  width: 50%;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 800px) {
  .filter-form {
    text-align: left;
  }
  .filter-form input {
    width: calc(100% - 100px);
  }
}
.controls-volume:hover .controls-volume-slider,
.controls-volume button:focus + * {
  transform: rotate(270deg) translate(120px, -45px);
  opacity: 1;
  pointer-events: all;
}
.controls {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 0 20px;
  border-top: 1px solid #cecece;
  background: #f2f2f2;
  transform: translate(0, 0);
  transition: 0.2s;
  z-index: 1;
}
.controls.init {
  transform: translate(0, 100px);
}
.controls > * {
  display: inline-block;
  vertical-align: middle;
}
.controls-buttons {
  margin: 0;
  line-height: 0;
}
.controls button {
  width: 40px;
  height: 45px;
  line-height: 0;
  padding: 0;
  margin: 0;
  border: 0;
  background: no-repeat 50% 50%;
  opacity: 0.8;
  transition: 0.2s;
  cursor: pointer;
}
.controls button:hover,
.controls button:focus {
  opacity: 0.9;
}
.controls button:acive {
  opacity: 1;
}
.controls [data-button=prev] {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxMiAxNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMiA2bDEwLTZ2MTRMMiA4djZIMFYwaDJ2NnoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=");
}
.controls [data-button=play] {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTciIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAxNyAyMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCAwdjIwbDE3LTEwTDAgMHoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=");
}
.playing.controls [data-button=play] {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAxNCAyMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSIjMzMzIj48cGF0aCBkPSJNMCAwaDV2MjBIMHoiLz48cGF0aCBkPSJNOSAwaDV2MjBIOXoiLz48L3N2Zz4=");
}
.controls [data-button=next] {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxMiAxNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTAgNkwwIDB2MTRsMTAtNnY2aDJWMGgtMnY2eiIgZmlsbD0iIzMzMyIvPjwvc3ZnPg==");
}
.controls [data-button=shuffle] {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTkiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxOSAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSIjMzMzIj48cGF0aCBkPSJNMTYuNSAxMEwxNCA3aDVsLTIuNSAzTTIuNSA4TDUgMTFIMGwyLjUtMyIvPjxwYXRoIGQ9Ik0xNS4zMjYgMTFoMS4wOTJjLTEuMTg2IDIuOTMyLTQuMDYgNS03LjQxOCA1LTMuNzI4IDAtNi44Ni0yLjU1LTcuNzQ4LTZIMi4yOWMuODYgMi44OSAzLjU0IDUgNi43MSA1IDIuNzkyIDAgNS4yMDMtMS42MzUgNi4zMjYtNHptLjYwMy00aDEuMDA4QzE2LjQ0NiAzLjA1NCAxMy4wOCAwIDkgMCA1LjI3MiAwIDIuMTQgMi41NSAxLjI1MiA2SDIuMjlDMy4xNSAzLjExIDUuODMgMSA5IDFjMy41MjYgMCA2LjQ0NCAyLjYwOCA2LjkzIDZ6Ii8+PC9zdmc+");
}
.controls [data-button=volume] {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTVweCIgaGVpZ2h0PSIxM3B4IiB2aWV3Qm94PSIwIDAgMTUgMTMiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSIjMzMzIj48cGF0aCBkPSJNNC41NDU2NjY2Nyw0IEwwLDQgTDAsOSBMNC41NDU2NjY2Nyw5IEw5LDEyLjUgTDksMC41IEw0LjU0NTY2NjY3LDQgWiI+PC9wYXRoPjxwYXRoIGQ9Ik0xMi4wMjQ2Njk5LDQuNzA1MzMwMDkgQzEzLjAxMDc3NjcsNS42OTE0MzY4NyAxMy4wMTA3NzY3LDcuMzA4NTYzMTMgMTIuMDI0NjY5OSw4LjI5NDY2OTkxIEwxMS42OTI2Njk5LDguNjI2NjY5OTEgQzExLjM5OTc3NjcsOC45MTk1NjMxMyAxMS4zOTk3NzY3LDkuMzk0NDM2ODcgMTEuNjkyNjY5OSw5LjY4NzMzMDA5IEMxMS45ODU1NjMxLDkuOTgwMjIzMyAxMi40NjA0MzY5LDkuOTgwMjIzMyAxMi43NTMzMzAxLDkuNjg3MzMwMDkgTDEzLjA4NTMzMDEsOS4zNTUzMzAwOSBDMTQuNjU3MjIzMyw3Ljc4MzQzNjg3IDE0LjY1NzIyMzMsNS4yMTY1NjMxMyAxMy4wODUzMzAxLDMuNjQ0NjY5OTEgTDEyLjc1MzMzMDEsMy4zMTI2Njk5MSBDMTIuNDYwNDM2OSwzLjAxOTc3NjcgMTEuOTg1NTYzMSwzLjAxOTc3NjcgMTEuNjkyNjY5OSwzLjMxMjY2OTkxIEMxMS4zOTk3NzY3LDMuNjA1NTYzMTMgMTEuMzk5Nzc2Nyw0LjA4MDQzNjg3IDExLjY5MjY2OTksNC4zNzMzMzAwOSBMMTIuMDI0NjY5OSw0LjcwNTMzMDA5IFoiPjwvcGF0aD48L3N2Zz4=");
}
.controls [data-button=volume][data-state=max] {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTlweCIgaGVpZ2h0PSIxM3B4IiB2aWV3Qm94PSIwIDAgMTkgMTMiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSIjMzMzIj48cGF0aCBkPSJNNC41NDU2NjY2Nyw0IEwwLDQgTDAsOSBMNC41NDU2NjY2Nyw5IEw5LDEyLjUgTDksMC41IEw0LjU0NTY2NjY3LDQgWiI+PC9wYXRoPjxwYXRoIGQ9Ik0xNS40Mjc2Njk5LDIuMDgwMzMwMDkgQzE3Ljg1Nzc3NjcsNC41MTA0MzY4NyAxNy44NTc3NzY3LDguNDg5NTYzMTMgMTUuNDI3NjY5OSwxMC45MTk2Njk5IEwxNC43MjA2Njk5LDExLjYyNjY2OTkgQzE0LjQyNzc3NjcsMTEuOTE5NTYzMSAxNC40Mjc3NzY3LDEyLjM5NDQzNjkgMTQuNzIwNjY5OSwxMi42ODczMzAxIEMxNS4wMTM1NjMxLDEyLjk4MDIyMzMgMTUuNDg4NDM2OSwxMi45ODAyMjMzIDE1Ljc4MTMzMDEsMTIuNjg3MzMwMSBMMTYuNDg4MzMwMSwxMS45ODAzMzAxIEMxOS41MDQyMjMzLDguOTY0NDM2ODcgMTkuNTA0MjIzMyw0LjAzNTU2MzEzIDE2LjQ4ODMzMDEsMS4wMTk2Njk5MSBMMTUuNzgxMzMwMSwwLjMxMjY2OTkxNCBDMTUuNDg4NDM2OSwwLjAxOTc3NjY5NTMgMTUuMDEzNTYzMSwwLjAxOTc3NjY5NTMgMTQuNzIwNjY5OSwwLjMxMjY2OTkxNCBDMTQuNDI3Nzc2NywwLjYwNTU2MzEzMyAxNC40Mjc3NzY3LDEuMDgwNDM2ODcgMTQuNzIwNjY5OSwxLjM3MzMzMDA5IEwxNS40Mjc2Njk5LDIuMDgwMzMwMDkgWiBNMTIuMDI0NjY5OSw0LjcwNTMzMDA5IEMxMy4wMTA3NzY3LDUuNjkxNDM2ODcgMTMuMDEwNzc2Nyw3LjMwODU2MzEzIDEyLjAyNDY2OTksOC4yOTQ2Njk5MSBMMTEuNjkyNjY5OSw4LjYyNjY2OTkxIEMxMS4zOTk3NzY3LDguOTE5NTYzMTMgMTEuMzk5Nzc2Nyw5LjM5NDQzNjg3IDExLjY5MjY2OTksOS42ODczMzAwOSBDMTEuOTg1NTYzMSw5Ljk4MDIyMzMgMTIuNDYwNDM2OSw5Ljk4MDIyMzMgMTIuNzUzMzMwMSw5LjY4NzMzMDA5IEwxMy4wODUzMzAxLDkuMzU1MzMwMDkgQzE0LjY1NzIyMzMsNy43ODM0MzY4NyAxNC42NTcyMjMzLDUuMjE2NTYzMTMgMTMuMDg1MzMwMSwzLjY0NDY2OTkxIEwxMi43NTMzMzAxLDMuMzEyNjY5OTEgQzEyLjQ2MDQzNjksMy4wMTk3NzY3IDExLjk4NTU2MzEsMy4wMTk3NzY3IDExLjY5MjY2OTksMy4zMTI2Njk5MSBDMTEuMzk5Nzc2NywzLjYwNTU2MzEzIDExLjM5OTc3NjcsNC4wODA0MzY4NyAxMS42OTI2Njk5LDQuMzczMzMwMDkgTDEyLjAyNDY2OTksNC43MDUzMzAwOSBaIj48L3BhdGg+PC9zdmc+");
}
.controls [data-button=volume][data-state=mute] {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIxM3B4IiB2aWV3Qm94PSIwIDAgMjAgMTMiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSIjMzMzIj48cGF0aCBkPSJNNC41NDU2NjY2Nyw0IEwwLDQgTDAsOSBMNC41NDU2NjY2Nyw5IEw5LDEyLjUgTDksMC41IEw0LjU0NTY2NjY3LDQgWiI+PC9wYXRoPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDExLCAyKSI+PHBhdGggZD0iTTguMDMwMzMwMDksMi4wMzAzMzAwOSBMOC41NjA2NjAxNywxLjUgTDcuNSwwLjQzOTMzOTgyOCBMNi45Njk2Njk5MSwwLjk2OTY2OTkxNCBMMC45Njk2Njk5MTQsNi45Njk2Njk5MSBMMC40MzkzMzk4MjgsNy41IEwxLjUsOC41NjA2NjAxNyBMMi4wMzAzMzAwOSw4LjAzMDMzMDA5IEw4LjAzMDMzMDA5LDIuMDMwMzMwMDkgWiI+PC9wYXRoPjxwYXRoIGQ9Ik0yLjAzMDMzMDA5LDAuOTY5NjY5OTE0IEwxLjUsMC40MzkzMzk4MjggTDAuNDM5MzM5ODI4LDEuNSBMMC45Njk2Njk5MTQsMi4wMzAzMzAwOSBMNi45Njk2Njk5MSw4LjAzMDMzMDA5IEw3LjUsOC41NjA2NjAxNyBMOC41NjA2NjAxNyw3LjUgTDguMDMwMzMwMDksNi45Njk2Njk5MSBMMi4wMzAzMzAwOSwwLjk2OTY2OTkxNCBaIj48L3BhdGg+PC9nPjwvc3ZnPg==");
}
.controls-timeline {
  width: calc(100% - (20px * 2 + 40px * 4 + 250px));
}
.controls-timeline > * {
  display: inline-block;
  vertical-align: middle;
}
.controls-timeline-current,
.controls-timeline-duration {
  font-size: 14px;
  width: 60px;
}
.controls-timeline-current {
  color: #f50;
  text-align: right;
}
.controls-timeline-slider {
  width: calc(100% - (60px * 2));
}
.controls-volume {
  position: relative;
}
.controls-volume button {
  display: block;
  background-position: 10px 50%;
}
.controls-volume-slider {
  position: absolute;
  width: 120px;
  padding: 6px 8px 4px;
  border: 1px solid #cecece;
  background: #f2f2f2;
  transform: rotate(270deg) translate(60px, -45px) scale(0.8);
  opacity: 0;
  pointer-events: none;
  transition: 0.2s;
}
.controls-volume-slider:before,
.controls-volume-slider:after {
  position: absolute;
  content: '';
  border: solid transparent;
  border-width: 9px 9px 9px 0;
}
.controls-volume-slider:before {
  left: -9px;
  border-right-color: #cecece;
}
.controls-volume-slider:after {
  left: -8px;
  border-right-color: #f2f2f2;
}
.controls-title {
  width: 250px;
  line-height: 45px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-decoration: none;
  color: #333;
}
@media (max-width: 800px) {
  .controls {
    width: 100%;
    right: 0;
    padding: 0 10px;
  }
  .controls button {
    width: 30px;
    height: 35px;
    background-size: 50%;
  }
  .controls-title {
    width: calc(100% - 90px);
  }
  .controls-timeline {
    width: calc(100% - (30px * 4));
  }
  .controls-timeline-current,
  .controls-timeline-duration {
    font-size: 12px;
    width: 40px;
  }
  .controls-timeline-slider {
    width: calc(100% - (40px * 2));
  }
  .controls-title {
    display: block;
    width: 100%;
    line-height: 35px;
  }
  .controls-volume {
    display: none;
  }
}
input[type=range] {
  position: relative;
  width: 100%;
  height: 13px;
  padding: 0;
  margin: 0;
  background: transparent;
  overflow: hidden;
  cursor: pointer;
}
input[type=range]:after {
  content: '';
  position: absolute;
  width: 6.5px;
  height: 1px;
  top: 50%;
  right: 0;
  margin-top: -1px;
  background: #f2f2f2;
}
input[type=range],
input[type=range]::-webkit-slider-runnable-track,
input[type=range]::-webkit-slider-thumb {
  -webkit-appearance: none;
}
input[type=range]::-webkit-slider-runnable-track {
  margin: 0 6.5px;
  position: relative;
  width: 20em;
  height: 1px;
  border: none;
  background: #ccc;
}
input[type=range]::-webkit-slider-runnable-track:before {
  content: '';
  position: absolute;
  height: 1px;
  width: 100%;
  background: #f50;
}
input[type=range]::-moz-range-track {
  position: relative;
  width: 20em;
  height: 1px;
  border: none;
  background: #ccc;
}
input[type=range]::-moz-range-track:before {
  content: '';
  position: absolute;
  height: 1px;
  width: 100%;
  background: #f50;
}
input[type=range]::-ms-track {
  margin: 0 6.5px;
  color: transparent;
}
input[type=range]::-webkit-slider-thumb {
  margin-top: -6px;
  position: relative;
  border: 3px solid #f2f2f2;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: #ccc;
  transition: 0.2s;
}
input[type=range]::-webkit-slider-thumb:before {
  content: '';
  position: absolute;
  height: 1px;
  width: 10000px;
  top: 50%;
  left: 10px;
  margin-top: -1px;
  background: #ccc;
}
input[type=range]::-moz-range-thumb {
  position: relative;
  border: 3px solid #f2f2f2;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: #ccc;
  transition: 0.2s;
}
input[type=range]::-moz-range-thumb:before {
  content: '';
  position: absolute;
  height: 1px;
  width: 10000px;
  top: 50%;
  left: 10px;
  margin-top: -1px;
  background: #ccc;
}
input[type=range]::-ms-thumb {
  position: relative;
  border: 3px solid #f2f2f2;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: #ccc;
  transition: 0.2s;
}
input[type=range]::-ms-thumb:before {
  content: '';
  position: absolute;
  height: 1px;
  width: 10000px;
  top: 50%;
  left: 10px;
  margin-top: -1px;
  background: #ccc;
}
input[type=range]::-ms-fill-lower,
input[type=range]::-ms-fill-upper {
  background: transparent;
}
input[type=range]::-ms-tooltip {
  display: none;
}
input[type=range]:focus,
input[type=range]:active {
  outline: none;
}
input[type=range]:focus::-webkit-slider-runnable-track,
input[type=range]:active::-webkit-slider-runnable-track {
  background: #f50;
}
input[type=range]:focus::-moz-range-track,
input[type=range]:active::-moz-range-track {
  background: #f50;
}
input[type=range]:focus::-ms-fill-lower,
input[type=range]:active::-ms-fill-lower {
  background: #f50;
}
input[type=range]:focus::-webkit-slider-thumb,
input[type=range]:active::-webkit-slider-thumb {
  border-color: #f50;
  background: #f50;
}
input[type=range]:focus::-moz-range-thumb,
input[type=range]:active::-moz-range-thumb {
  border-color: #f50;
  background: #f50;
}
input[type=range]:focus::-ms-thumb,
input[type=range]:active::-ms-thumb {
  border-color: #f50;
  background: #f50;
}
.tracks {
  position: relative;
  padding: 10px 0 50px;
}
.tracks.sorting .track {
  transition: 0;
}
.track {
  position: absolute;
  display: block;
  width: 100%;
  height: 100px;
  opacity: 1;
  transform: translate(0, 0);
  transition: 0.2s;
}
.track.active {
  font-style: italic;
}
.track.active .rect-overlay {
  fill-opacity: 0;
}
.track.showing {
  opacity: 0;
  transform: translate(0, 40px);
}
.track.showing .track-play {
  opacity: 0;
  transform: translate(-20px, 0);
}
.track.showing figcaption,
.track.showing .track-links {
  opacity: 0;
  transform: translate(0, 20px);
}
.track.hidden,
.track.delete {
  height: 0;
  margin: 0;
  opacity: 0;
  transform: translate(-500px) scale(0.8);
  transform-origin: 100% 50%;
  transition-delay: 0 !important;
}
.track.sortable-ghost {
  opacity: 0.6;
}
.track + :nth-child(n + 1) {
  transition-delay: 0.03s;
}
.track + :nth-child(n + 2) {
  transition-delay: 0.06s;
}
.track + :nth-child(n + 3) {
  transition-delay: 0.09s;
}
.track + :nth-child(n + 4) {
  transition-delay: 0.12s;
}
.track + :nth-child(n + 5) {
  transition-delay: 0.15s;
}
.track + :nth-child(n + 6) {
  transition-delay: 0.18s;
}
.track + :nth-child(n + 7) {
  transition-delay: 0.21s;
}
.track + :nth-child(n + 8) {
  transition-delay: 0.24s;
}
.track + :nth-child(n + 9) {
  transition-delay: 0.27s;
}
.track + :nth-child(n + 10) {
  transition-delay: 0.3s;
}
.track-image,
.track figcaption,
.track-links {
  transform: scale(1);
  opacity: 1;
  transition: 0.2s 0.4s;
}
.track-play {
  position: absolute;
  width: 100px;
  height: 100px;
  padding: 0;
  margin: 0 4px 0 0;
  border: 0;
  background: linear-gradient(135deg, rgba(228,132,190,0.5), rgba(131,162,177,0.5));
  z-index: 1;
  transition: 0.2s 0.4s;
}
.track-play:after {
  opacity: 0;
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  margin-top: -20px;
  margin-left: -20px;
  background: #f50 url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDggMTQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTAgMTRsMS44NDYxNTAwMDAwMDAwNzk3LTctMS44NDYxNTAwMDAwMDAwNzk3LTcgOCA3LTggN3oiIGZpbGw9IiNmZmYiLz48L3N2Zz4=") no-repeat 50% 50%/12px;
  font-size: 24px;
  color: #fff;
  cursor: pointer;
  transition: background-color 0.2s, opacity 0.2s;
}
.track-play:hover:after,
.track-play:focus:after,
.active .track-play:after {
  opacity: 1;
}
.track-play:active:after {
  background-color: #f30;
}
.playing .track-play:after {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDggMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUgMHYxMmgzdi0xMmgtM3ptLTUgMHYxMmgzdi0xMmgtM3oiIGZpbGw9IiNmZmYiLz48L3N2Zz4=");
}
.track-image {
  position: absolute;
  top: 0;
  left: 0;
  cursor: pointer;
}
.track figcaption {
  padding-left: 110px;
}
.track-details {
  width: calc(100% - 80px);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.track-details-user {
  display: block;
  color: #999;
  font-size: 14px;
}
.track-details-title {
  display: block;
  font-weight: bold;
  color: #333;
}
.track-details a {
  text-decoration: none;
}
.track-details a:hover {
  text-decoration: underline;
}
.track-waveform {
  height: 60px;
  cursor: pointer;
  opacity: 0;
  transition: 0.2s;
}
.track-waveform.drawn {
  opacity: 1;
}
.track-waveform .rect-background {
  fill: #eaeaea;
}
.track-waveform .rect-buffered {
  fill: #ddd;
}
.track-waveform .rect-hovered {
  fill: #ff884d;
}
.track-waveform .rect-hovered.hidden {
  opacity: 0;
}
.track-waveform .rect-played {
  fill: url("#gradient-played");
}
.track-waveform .rect-overlay {
  fill: #fafafa;
  fill-opacity: 0.5;
  transition: 0.4s;
}
.track-duration {
  position: absolute;
  left: 100%;
  top: 55px;
  margin-left: 10px;
  font-size: 13px;
  pointer-events: none;
}
.track-links {
  position: absolute;
  top: 0;
  right: 0;
}
@media (max-width: 800px) {
  .track-play {
    width: 60px;
    height: 60px;
    bottom: 0;
  }
  .track-image {
    width: 60px;
    height: 60px;
  }
  .track figcaption {
    padding-left: 0;
  }
  .track-details {
    width: calc(100% - 70px);
    margin-bottom: 5px;
  }
  .track-waveform {
    padding-left: 70px;
  }
  .track-duration {
    left: auto;
    right: 0;
  }
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbmRleC5zdHlsIiwic3JjL2FwcC9jb21wb25lbnRzL2xhc3RmbS9pbmRleC5zdHlsIiwic3JjL2FwcC9jb21wb25lbnRzL2Zvcm1zL2luZGV4LnN0eWwiLCJzcmMvYXBwL2NvbXBvbmVudHMvY29udHJvbHMvaW5kZXguc3R5bCIsInNyYy9hcHAvY29tcG9uZW50cy90cmFja3MvaW5kZXguc3R5bCIsInNyYy9hcHAvY29tcG9uZW50cy9jb250cm9scy9zbGlkZXIuc3R5bCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUdBO0FBQ0E7QUFBRztBQUFVO0VBQ1QsWUFBVyxXQUFYOztBQUVKO0FBQ0E7RUFDSSxTQUFRLEVBQVI7RUFDQSxRQUFPLEVBQVA7O0FBRUo7QUFDQTtBQUNBO0VBQ0ksUUFBTyxLQUFQOztBQUVKO0VBQ0ksV0FBVSxPQUFWO0VBQ0EsT0FBTSxJQUFOO0VBQ0EsUUFBTyxPQUFQO0VBQ0EsWUFBVyxPQUFYO0VBQ0EsWUFBVyxRQUFYO0VBQ0EsT0FBTSxLQUFOOztBQUVJO0FBQ0E7RUFDSSxRQUFPLGdCQUFQOztBQUVEO0FBQUE7SUFDSCxPQUFNLEtBQU47SUFDQSxTQUFRLE9BQVI7OztBQUVSO0FBQ0E7RUFDSSxhQUFrQixtQkFBbEI7RUFDQSxhQUFZLElBQVo7O0FBRUo7RUFDSSxVQUFTLFNBQVQ7RUFDQSxLQUFJLE1BQUo7RUFDQSxNQUFLLE1BQUw7RUFDQSxRQUFPLGtCQUFQO0VBQ0EsY0FBYSxjQUFiO0VBQ0EsbUJBQWtCLEtBQWxCO0VBQ0EsaUJBQWdCLEtBQWhCO0VBQ0EsT0FBTSxLQUFOO0VBQ0EsWUFBVyxLQUFYOztBQUNBO0VBQ0ksU0FBUSxJQUFSO0VBQ0EsVUFBUyxTQUFUO0VBQ0EsS0FBSSxLQUFKO0VBQ0EsTUFBSyxNQUFMO0VBQ0EsV0FBVSxLQUFWOztBQUNKO0VBQ0ksS0FBSSxFQUFKO0VBQ0EsTUFBSyxFQUFMOztBQUdSO0VBQ0ksT0FBTSxLQUFOO0VBQ0EsaUJBQWdCLEtBQWhCO0VBQ0EsV0FBVSxL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USxFQUFSOztBQUVKO0VBQ0ksTUFBSyxRQUFMOztBQUVKO0VBQ0ksTUFBSyxLQUFMOztBQUVKO0VBQ0ksTUFBd0IsUUFBeEI7O0FBQ0E7RUFDSSxTQUFRLEVBQVI7O0FBRVI7RUFDSSxNQUF5Qix3QkFBekI7O0FBRUo7RUFDSSxNQUFLLFFBQUw7RUFDQSxjQUFhLElBQWI7RUFDQSxZQUFXLEtBQVg7O0FBR1I7RUFDSSxVQUFTLFNBQVQ7RUFDQSxNQUFLLEtBQUw7RUFDQSxLQUFJLEtBQUo7RUFDQSxhQUFZLEtBQVo7RUFDQSxXQUFVLEtBQVY7RUFDQSxnQkFBZSxLQUFmOztBQUdKO0VBQ0ksVUFBUyxTQUFUO0VBQ0EsS0FBSSxFQUFKO0VBQ0EsT0FBTSxFQUFOOztBQUVHO0FBR0g7SUFDSSxPQUFNLEtBQU47SUFDQSxRQUFPLEtBQVA7SUFDQSxRQUFPLEVBQVA7O0FBR0o7SUFDSSxPQUFNLEtBQU47SUFDQSxRQUFPLEtBQVA7O0FBRUo7SUFDSSxjQUFhLEVBQWI7O0FBR0o7SUFDSSxPQUFzQixrQkFBdEI7SUFDQSxlQUFjLElBQWQ7O0FBR0o7SUFDSSxjQUE4QixLQUE5Qjs7QUFHSjtJQUNJLE1BQUssS0FBTDtJQUNBLE9BQU0sRUFBTiIsImZpbGUiOiJpbmRleC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBWYXJpYWJsZXMgKi9cbkByZXF1aXJlICdhcHAvdmFyaWFibGVzLnN0eWwnXG5cbi8qIFJlc2V0cyAqL1xuKiwgKjpiZWZvcmUsICo6YWZ0ZXJcbiAgICBib3gtc2l6aW5nIGJvcmRlci1ib3hcblxudWxcbmZpZ3VyZVxuICAgIHBhZGRpbmcgMFxuICAgIG1hcmdpbiAwXG5cbi8qIFN0eWxlICovXG5odG1sXG5ib2R5XG4gICAgaGVpZ2h0IDEwMCVcblxuYm9keVxuICAgIG1heC13aWR0aCAxMjAwcHhcbiAgICB3aWR0aCA4MCVcbiAgICBtYXJnaW4gMCBhdXRvXG4gICAgb3ZlcmZsb3cteSBzY3JvbGxcbiAgICBiYWNrZ3JvdW5kICNmYWZhZmFcbiAgICBjb2xvciB0ZXh0LWNvbG9yXG4gICAgJi5sb2FkaW5nXG4gICAgICAgICZcbiAgICAgICAgKlxuICAgICAgICAgICAgY3Vyc29yIHdhaXQgIWltcG9ydGFudFxuXG4gICAgQG1lZGlhIHNtYWxsXG4gICAgICAgIHdpZHRoIDEwMCVcbiAgICAgICAgcGFkZGluZyAwIDIwcHhcblxuYm9keVxuaW5wdXRcbiAgICBmb250LWZhbWlseSBSb2JvdG8sIHNhbnMtc2VyaWZcbiAgICBmb250LXdlaWdodCAzMDBcblxuLmdpdGh1Yi1saW5rXG4gICAgcG9zaXRpb24gYWJzb2x1dGVcbiAgICB0b3AgLTEwcHhcbiAgICBsZWZ0IEB0b3BcbiAgICBib3JkZXIgc29saWQgdHJhbnNwYXJlbnRcbiAgICBib3JkZXItd2lkdGggMCAwIDQwcHggNDBweFxuICAgIGJvcmRlci1sZWZ0LWNvbG9yIHRleHQtY29sb3JcbiAgICB0ZXh0LWRlY29yYXRpb24gbm9uZVxuICAgIGNvbG9yIHdoaXRlXG4gICAgdHJhbnNpdGlvbiAuMnNcbiAgICAmOmJlZm9yZVxuICAgICAgICBjb250ZW50ICfinI4nXG4gICAgICAgIHBvc2l0aW9uIGFic29sdXRlXG4gICAgICAgIHRvcCAtM3B4XG4gICAgICAgIGxlZnQgLTQxcHhcbiAgICAgICAgZm9udC1zaXplIDI0cHhcbiAgICAmOmhvdmVyXG4gICAgICAgIHRvcCAwXG4gICAgICAgIGxlZnQgQHRvcFxuXG5cbltkYXRhLWxpbmtdXG4gICAgY29sb3IgdGV4dC1jb2xvclxuICAgIHRleHQtZGVjb3JhdGlvbiBub25lXG4gICAgZm9udC1zaXplIDI0cHhcblxuQHJlcXVpcmUgJ2FwcC9jb21wb25lbnRzL2xhc3RmbSdcbkByZXF1aXJlICdhcHAvY29tcG9uZW50cy9mb3JtcydcbkByZXF1aXJlICdhcHAvY29tcG9uZW50cy9jb250cm9scydcbkByZXF1aXJlICdhcHAvY29tcG9uZW50cy90cmFja3MnIiwiLmxhc3RmbVxuICAgIHBvc2l0aW9uIGFic29sdXRlXG4gICAgdG9wIDUwcHhcbiAgICByaWdodCAwXG4gICAgbWF4LXdpZHRoIDIyMHB4XG4gICAgcGFkZGluZyA1cHhcbiAgICBtYXJnaW4gNnB4XG4gICAgZm9udC1zaXplIDE0cHhcbiAgICBsaW5lLWhlaWdodCAyMnB4XG5cbiAgICBbZGF0YS1kcm9wZG93bl1cbiAgICAgICAgZGlzcGxheSBibG9ja1xuICAgICAgICB3aGl0ZS1zcGFjZSBub3dyYXBcbiAgICAgICAgb3ZlcmZsb3cgaGlkZGVuXG4gICAgICAgIHRleHQtb3ZlcmZsb3cgZWxsaXBzaXNcbiAgICAgICAgY29sb3IgdGV4dC1jb2xvclxuICAgICAgICAmOmJlZm9yZVxuICAgICAgICAgICAgY29udGVudCB1cmwoaHR0cDovL2Nkbi5sYXN0LmZtL2ZsYXRuZXNzL2Zhdmljb24uMi5pY28pXG4gICAgICAgICAgICBkaXNwbGF5IGlubGluZS1ibG9ja1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ24gc3ViXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQgNHB4XG5cbiAgICAvLyAubGFzdGZtLWNvbm5lY3RcbiAgICAmLWNvbm5lY3RcbiAgICAgICAgOmJlZm9yZVxuICAgICAgICAgICAgY29udGVudCAnQ29ubmVjdCB0byAnXG5cbiAgICBAbWVkaWEgc21hbGxcbiAgICAgICAgbWF4LXdpZHRoIDExMHB4XG4gICAgICAgIGZvbnQtc2l6ZSAxM3B4XG5cbi5kcm9wZG93blxuICAgIGRyb3Bkb3duQm9yZGVyID0gI2JiYlxuICAgIHBvc2l0aW9uIGFic29sdXRlXG4gICAgZGlzcGxheSBpbmxpbmUtYmxvY2tcbiAgICBtaW4td2lkdGggMTI1cHhcbiAgICB0b3AgMzBweFxuICAgIHJpZ2h0IDBcbiAgICBvcGFjaXR5IDBcbiAgICB0cmFuc2Zvcm0gdHJhbnNsYXRlKDAsIDEwcHgpIHNjYWxlKC45KVxuICAgIHBvaW50ZXItZXZlbnRzIG5vbmVcbiAgICB0cmFuc2l0aW9uIC4yc1xuICAgIHotaW5kZXggMVxuICAgICYub3BlblxuICAgICAgICBvcGFjaXR5IDFcbiAgICAgICAgdHJhbnNmb3JtIHNjYWxlKDEpXG4gICAgICAgIHBvaW50ZXItZXZlbnRzIGF1dG9cbiAgICAmOmJlZm9yZVxuICAgICY6YWZ0ZXJcbiAgICAgICAgY29udGVudCAnJ1xuICAgICAgICBwb3NpdGlvbiBhYnNvbHV0ZVxuICAgICAgICBsZWZ0IDUwJVxuICAgICAgICBib3JkZXIgc29saWQgdHJhbnNwYXJlbnRcbiAgICAmOmJlZm9yZVxuICAgICAgICB0b3AgLTVweFxuICAgICAgICBtYXJnaW4tbGVmdCAtNnB4XG4gICAgICAgIGJvcmRlci13aWR0aCAwIDZweCA2cHhcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvciBkcm9wZG93bkJvcmRlclxuICAgICY6YWZ0ZXJcbiAgICAgICAgdG9wIC00cHhcbiAgICAgICAgbWFyZ2luLWxlZnQgLTVweFxuICAgICAgICBib3JkZXItd2lkdGggMCA1cHggNXB4XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3Igd2hpdGVcblxuICAgID4gKlxuICAgICAgICBkaXNwbGF5IGJsb2NrXG4gICAgICAgIHBhZGRpbmcgM3B4IDEwcHhcbiAgICAgICAgYm9yZGVyIHNvbGlkIGRyb3Bkb3duQm9yZGVyXG4gICAgICAgIGJvcmRlci13aWR0aCAwIDFweCAxcHhcbiAgICAgICAgYmFja2dyb3VuZCB3aGl0ZVxuICAgICAgICB0ZXh0LWRlY29yYXRpb24gbm9uZVxuICAgICAgICBjb2xvciB0ZXh0LWNvbG9yXG4gICAgICAgIGN1cnNvciBwb2ludGVyXG5cbiAgICBpbnB1dFxuICAgICAgICBwb3NpdGlvbiBhYnNvbHV0ZVxuICAgICAgICB0b3AgOXB4XG4gICAgICAgIHJpZ2h0IDdweFxuICAgICAgICBtYXJnaW4gMFxuXG4gICAgPiA6Zmlyc3QtY2hpbGRcbiAgICAgICAgYm9yZGVyLXRvcC13aWR0aCAxcHhcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cyAzcHhcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMgM3B4XG5cbiAgICA+IDpsYXN0LWNoaWxkXG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzIDNweFxuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzIDNweFxuIiwiZm9ybVxuICAgIHRleHQtYWxpZ24gY2VudGVyXG5cbiAgICBpbnB1dFxuICAgICAgICBwYWRkaW5nIDVweFxuICAgICAgICBtYXJnaW4gNXB4IDBcbiAgICAgICAgYm9yZGVyIDFweCBzb2xpZCAjY2NjXG4gICAgICAgIGJvcmRlci1yYWRpdXMgNHB4XG4gICAgICAgIGZvbnQtc2l6ZSAyMnB4XG5cbi5wbGF5bGlzdHMtZm9ybVxuICAgIGlucHV0XG4gICAgICAgIHdpZHRoIGNhbGMoMTAwJSAtIDI0cHgpXG5cbiAgICBhXG4gICAgICAgIGRpc3BsYXkgaW5saW5lLWJsb2NrXG4gICAgICAgIHdpZHRoIDI0cHhcbiAgICAgICAgdGV4dC1hbGlnbiByaWdodFxuXG5cbi5maWx0ZXItZm9ybVxuICAgIGlucHV0XG4gICAgICAgIHdpZHRoIDUwJVxuICAgICAgICBtYXJnaW4tbGVmdCBhdXRvXG4gICAgICAgIG1hcmdpbi1yaWdodCBhdXRvXG5cbkBtZWRpYSBzbWFsbFxuICAgIC5maWx0ZXItZm9ybVxuICAgICAgICB0ZXh0LWFsaWduIGxlZnRcblxuICAgICAgICBpbnB1dFxuICAgICAgICAgICAgd2lkdGggY2FsYygxMDAlIC0gMTAwcHgpIiwiY29udHJvbHMtaGVpZ2h0ID0gNDVweFxuY29udHJvbHMtYmcgPSAjZjJmMmYyXG5jb250cm9scy1ib3JkZXItY29sb3IgPSAjY2VjZWNlXG5cbiRzaG93LXZvbHVtZS1zbGlkZXJcbiAgICB0cmFuc2Zvcm0gcm90YXRlKDI3MGRlZykgdHJhbnNsYXRlKDEyMHB4LCAtNDVweClcbiAgICBvcGFjaXR5IDFcbiAgICBwb2ludGVyLWV2ZW50cyBhbGxcblxuLmNvbnRyb2xzXG4gICAgcG9zaXRpb24gZml4ZWRcbiAgICBib3R0b20gMFxuICAgIGxlZnQgMFxuICAgIHJpZ2h0IDBcbiAgICBwYWRkaW5nIDAgMjBweFxuICAgIGJvcmRlci10b3AgMXB4IHNvbGlkIGNvbnRyb2xzLWJvcmRlci1jb2xvclxuICAgIGJhY2tncm91bmQgY29udHJvbHMtYmdcbiAgICB0cmFuc2Zvcm0gdHJhbnNsYXRlKDAsIDApXG4gICAgdHJhbnNpdGlvbiAuMnNcbiAgICB6LWluZGV4IDFcbiAgICAmLmluaXRcbiAgICAgICAgdHJhbnNmb3JtIHRyYW5zbGF0ZSgwLCAxMDBweClcblxuICAgID4gKlxuICAgICAgICBkaXNwbGF5IGlubGluZS1ibG9ja1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbiBtaWRkbGVcblxuICAgIC8vIC5jb250cm9scy1idXR0b25zXG4gICAgJi1idXR0b25zXG4gICAgICAgIG1hcmdpbiAwXG4gICAgICAgIGxpbmUtaGVpZ2h0IDBcblxuICAgIGJ1dHRvblxuICAgICAgICB3aWR0aCA0MHB4XG4gICAgICAgIGhlaWdodCBjb250cm9scy1oZWlnaHRcbiAgICAgICAgbGluZS1oZWlnaHQgMFxuICAgICAgICBwYWRkaW5nIDBcbiAgICAgICAgbWFyZ2luIDBcbiAgICAgICAgYm9yZGVyIDBcbiAgICAgICAgYmFja2dyb3VuZCBuby1yZXBlYXQgNTAlIDUwJVxuICAgICAgICBvcGFjaXR5IC44XG4gICAgICAgIHRyYW5zaXRpb24gLjJzXG4gICAgICAgIGN1cnNvciBwb2ludGVyXG4gICAgICAgICY6aG92ZXJcbiAgICAgICAgJjpmb2N1c1xuICAgICAgICAgICAgb3BhY2l0eSAuOVxuICAgICAgICAmOmFjaXZlXG4gICAgICAgICAgICBvcGFjaXR5IDFcblxuICAgIFtkYXRhLWJ1dHRvbj1wcmV2XVxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlIGdldEltYWdlKCdwcmV2JylcbiAgICBbZGF0YS1idXR0b249cGxheV1cbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZSBnZXRJbWFnZSgncGxheScpXG4gICAgICAgIC5wbGF5aW5nJlxuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZSBnZXRJbWFnZSgncGF1c2UnKVxuICAgIFtkYXRhLWJ1dHRvbj1uZXh0XVxuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlIGdldEltYWdlKCduZXh0JylcbiAgICBbZGF0YS1idXR0b249c2h1ZmZsZV1cbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZSBnZXRJbWFnZSgnc2h1ZmZsZScpXG4gICAgW2RhdGEtYnV0dG9uPXZvbHVtZV1cbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZSBnZXRJbWFnZSgndm9sdW1lLW5vcm1hbCcpXG4gICAgICAgICZbZGF0YS1zdGF0ZT1tYXhdXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlIGdldEltYWdlKCd2b2x1bWUtbWF4JylcbiAgICAgICAgJltkYXRhLXN0YXRlPW11dGVdXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlIGdldEltYWdlKCd2b2x1bWUtbXV0ZScpXG5cbiAgICAvLyAuY29udHJvbHMtdGltZWxpbmVcbiAgICAmLXRpbWVsaW5lXG4gICAgICAgIC8vICAgICAgICAgICAgICAgICBwYWRkaW5nICAgIGJ1dHRvbnMgICAgdGl0bGVcbiAgICAgICAgd2lkdGggY2FsYygxMDAlIC0gKDIwcHggKiAyICsgNDBweCAqIDQgKyAyNTBweCkpXG5cbiAgICAgICAgPiAqXG4gICAgICAgICAgICBkaXNwbGF5IGlubGluZS1ibG9ja1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ24gbWlkZGxlXG5cbiAgICAgICAgLy8gLmNvbnRyb2xzLXRpbWVsaW5lLWN1cnJlbnRcbiAgICAgICAgJi1jdXJyZW50XG4gICAgICAgIC8vIC5jb250cm9scy10aW1lbGluZS1kdXJhdGlvblxuICAgICAgICAmLWR1cmF0aW9uXG4gICAgICAgICAgICBmb250LXNpemUgMTRweFxuICAgICAgICAgICAgd2lkdGggNjBweFxuXG4gICAgICAgIC8vIC5jb250cm9scy10aW1lbGluZS1jdXJyZW50XG4gICAgICAgICYtY3VycmVudFxuICAgICAgICAgICAgY29sb3Igb3JhbmdlXG4gICAgICAgICAgICB0ZXh0LWFsaWduIHJpZ2h0XG5cbiAgICAgICAgLy8gLmNvbnRyb2xzLXRpbWVsaW5lLXNsaWRlclxuICAgICAgICAmLXNsaWRlclxuICAgICAgICAgICAgd2lkdGggY2FsYygxMDAlIC0gKDYwcHggKiAyKSlcblxuICAgIC8vIC5jb250cm9scy12b2x1bWVcbiAgICAmLXZvbHVtZVxuICAgICAgICBwb3NpdGlvbiByZWxhdGl2ZVxuICAgICAgICAmOmhvdmVyXG4gICAgICAgICAgICAuY29udHJvbHMtdm9sdW1lLXNsaWRlclxuICAgICAgICAgICAgICAgIEBleHRlbmQgJHNob3ctdm9sdW1lLXNsaWRlclxuXG4gICAgICAgIGJ1dHRvblxuICAgICAgICAgICAgZGlzcGxheSBibG9ja1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbiAxMHB4IDUwJVxuICAgICAgICAgICAgJjpmb2N1cyArICpcbiAgICAgICAgICAgICAgICBAZXh0ZW5kICRzaG93LXZvbHVtZS1zbGlkZXJcblxuICAgICAgICAvLyAuY29udHJvbHMtdm9sdW1lLXNsaWRlclxuICAgICAgICAmLXNsaWRlclxuICAgICAgICAgICAgcG9zaXRpb24gYWJzb2x1dGVcbiAgICAgICAgICAgIHdpZHRoIDEyMHB4XG4gICAgICAgICAgICBwYWRkaW5nIDZweCA4cHggNHB4XG4gICAgICAgICAgICBib3JkZXIgMXB4IHNvbGlkIGNvbnRyb2xzLWJvcmRlci1jb2xvclxuICAgICAgICAgICAgYmFja2dyb3VuZCBjb250cm9scy1iZ1xuICAgICAgICAgICAgdHJhbnNmb3JtIHJvdGF0ZSgyNzBkZWcpIHRyYW5zbGF0ZSg2MHB4LCAtNDVweCkgc2NhbGUoLjgpXG4gICAgICAgICAgICBvcGFjaXR5IDBcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzIG5vbmVcbiAgICAgICAgICAgIHRyYW5zaXRpb24gLjJzXG4gICAgICAgICAgICAmOmJlZm9yZVxuICAgICAgICAgICAgJjphZnRlclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uIGFic29sdXRlXG4gICAgICAgICAgICAgICAgY29udGVudCAnJ1xuICAgICAgICAgICAgICAgIGJvcmRlciBzb2xpZCB0cmFuc3BhcmVudFxuICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aCA5cHggOXB4IDlweCAwXG4gICAgICAgICAgICAmOmJlZm9yZVxuICAgICAgICAgICAgICAgIGxlZnQgLTlweFxuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvciBjb250cm9scy1ib3JkZXItY29sb3JcbiAgICAgICAgICAgICY6YWZ0ZXJcbiAgICAgICAgICAgICAgICBsZWZ0IC04cHhcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQtY29sb3IgY29udHJvbHMtYmdcblxuICAgIC8vIC5jb250cm9scy10aXRsZVxuICAgICYtdGl0bGVcbiAgICAgICAgd2lkdGggMjUwcHhcbiAgICAgICAgbGluZS1oZWlnaHQgY29udHJvbHMtaGVpZ2h0XG4gICAgICAgIHdoaXRlLXNwYWNlIG5vd3JhcFxuICAgICAgICBvdmVyZmxvdyBoaWRkZW5cbiAgICAgICAgdGV4dC1vdmVyZmxvdyBlbGxpcHNpc1xuICAgICAgICB0ZXh0LWRlY29yYXRpb24gbm9uZVxuICAgICAgICBjb2xvciB0ZXh0LWNvbG9yXG5cbiAgICBAbWVkaWEgc21hbGxcbiAgICAgICAgY29udHJvbHMtaGVpZ2h0ID0gMzVweFxuICAgICAgICB3aWR0aCAxMDAlXG4gICAgICAgIHJpZ2h0IDBcbiAgICAgICAgcGFkZGluZyAwIDEwcHhcblxuICAgICAgICBidXR0b25cbiAgICAgICAgICAgIHdpZHRoIDMwcHhcbiAgICAgICAgICAgIGhlaWdodCBjb250cm9scy1oZWlnaHRcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZSA1MCVcblxuICAgICAgICAvLyAuY29udHJvbHMtdGl0bGVcbiAgICAgICAgJi10aXRsZVxuICAgICAgICAgICAgd2lkdGggY2FsYygxMDAlIC0gOTBweClcblxuICAgICAgICAvLyAuY29udHJvbHMtdGltZWxpbmVcbiAgICAgICAgJi10aW1lbGluZVxuICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgIGJ1dHRvbnNcbiAgICAgICAgICAgIHdpZHRoIGNhbGMoMTAwJSAtICgzMHB4ICogNCkpXG5cbiAgICAgICAgICAgIC8vIC5jb250cm9scy10aW1lbGluZS1jdXJyZW50XG4gICAgICAgICAgICAmLWN1cnJlbnRcbiAgICAgICAgICAgIC8vIC5jb250cm9scy10aW1lbGluZS1kdXJhdGlvblxuICAgICAgICAgICAgJi1kdXJhdGlvblxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZSAxMnB4XG4gICAgICAgICAgICAgICAgd2lkdGggNDBweFxuXG4gICAgICAgICAgICAvLyAuY29udHJvbHMtdGltZWxpbmUtc2xpZGVyXG4gICAgICAgICAgICAmLXNsaWRlclxuICAgICAgICAgICAgICB3aWR0aCBjYWxjKDEwMCUgLSAoNDBweCAqIDIpKVxuXG4gICAgICAgIC8vIC5jb250cm9scy10aXRsZVxuICAgICAgICAmLXRpdGxlXG4gICAgICAgICAgICBkaXNwbGF5IGJsb2NrXG4gICAgICAgICAgICB3aWR0aCAxMDAlXG4gICAgICAgICAgICBsaW5lLWhlaWdodCBjb250cm9scy1oZWlnaHRcblxuICAgICAgICAvLyAuY29udHJvbHMtdm9sdW1lXG4gICAgICAgICYtdm9sdW1lXG4gICAgICAgICAgICBkaXNwbGF5IG5vbmVcblxuQHJlcXVpcmUgc2xpZGVyIiwiLnRyYWNrc1xuICAgIHBvc2l0aW9uIHJlbGF0aXZlXG4gICAgcGFkZGluZyAxMHB4IDAgNTBweFxuICAgICYuc29ydGluZ1xuICAgICAgICAudHJhY2tcbiAgICAgICAgICAgIHRyYW5zaXRpb24gMFxuXG4udHJhY2tcbiAgICBwb3NpdGlvbiBhYnNvbHV0ZVxuICAgIGRpc3BsYXkgYmxvY2tcbiAgICB3aWR0aCAxMDAlXG4gICAgaGVpZ2h0IDEwMHB4XG4gICAgb3BhY2l0eSAxXG4gICAgdHJhbnNmb3JtIHRyYW5zbGF0ZSgwLCAwKVxuICAgIHRyYW5zaXRpb24gLjJzXG4gICAgLy8gV2hlbiB0cmFjayBpcyBzZWxlY3RlZFxuICAgICYuYWN0aXZlXG4gICAgICAgIGZvbnQtc3R5bGUgaXRhbGljXG5cbiAgICAgICAgLnJlY3Qtb3ZlcmxheVxuICAgICAgICAgICAgZmlsbC1vcGFjaXR5IDBcbiAgICAvLyBXaGVuIHRyYWNrIGlzIHNob3dpbmcsIG5lZWQgdG8gcHV0IHRoZSBkZWZhdWx0IHZhbHVlcyBvbiB0aGUgZWxlbW50c1xuICAgICYuc2hvd2luZ1xuICAgICAgICBvcGFjaXR5IDBcbiAgICAgICAgdHJhbnNmb3JtIHRyYW5zbGF0ZSgwLCA0MHB4KVxuXG4gICAgICAgIC50cmFjay1wbGF5XG4gICAgICAgICAgICBvcGFjaXR5IDBcbiAgICAgICAgICAgIHRyYW5zZm9ybSB0cmFuc2xhdGUoLTIwcHgsIDApXG5cbiAgICAgICAgZmlnY2FwdGlvblxuICAgICAgICAudHJhY2stbGlua3NcbiAgICAgICAgICAgIG9wYWNpdHkgMFxuICAgICAgICAgICAgdHJhbnNmb3JtIHRyYW5zbGF0ZSgwLCAyMHB4KVxuICAgIC8vIFdoZW4gdHJhY2sgaXMgaGlkZGVuIChmaWx0ZXJlZCBvdXQpXG4gICAgJi5oaWRkZW5cbiAgICAvLyBXaGVuIHRyYWNrIGlzIGRlbGV0ZWRcbiAgICAmLmRlbGV0ZVxuICAgICAgICAvLyBIZWlnaHQgdHJhbnNpdGlvbiBpcyB3b25reSA6KFxuICAgICAgICBoZWlnaHQgMFxuICAgICAgICBtYXJnaW4gMFxuICAgICAgICBvcGFjaXR5IDBcbiAgICAgICAgdHJhbnNmb3JtIHRyYW5zbGF0ZSgtNTAwcHgpIHNjYWxlKC44KVxuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luIDEwMCUgNTAlXG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXkgMCAhaW1wb3J0YW50XG4gICAgJi5zb3J0YWJsZS1naG9zdFxuICAgICAgICBvcGFjaXR5IC42XG5cbiAgICAvLyBZb3VyIHNjcmVlbiBpcyB0b28gYmlnIGlmIHlvdSBjYW4gc2VlIG1vcmUgdGhhbiAxMCB0cmFja3NcbiAgICBmb3IgaSBpbiAoMS4uMTApXG4gICAgICAgICYgKyA6bnRoLWNoaWxkKG4gKyB7aX0pXG4gICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5IC4wM3MgKiBpXG5cbiAgICAvLyAudHJhY2staW1hZ2VcbiAgICAmLWltYWdlXG4gICAgZmlnY2FwdGlvblxuICAgIC8vIC50cmFjay1saW5rc1xuICAgICYtbGlua3NcbiAgICAgICAgdHJhbnNmb3JtIHNjYWxlKDEpXG4gICAgICAgIG9wYWNpdHkgMVxuICAgICAgICB0cmFuc2l0aW9uIC4ycyAuNHNcblxuICAgIHRyYWNrSW1hZ2VTaXplID0gMTAwcHhcbiAgICAvLyAudHJhY2stcGxheVxuICAgICYtcGxheVxuICAgICAgICBwb3NpdGlvbiBhYnNvbHV0ZVxuICAgICAgICB3aWR0aCB0cmFja0ltYWdlU2l6ZVxuICAgICAgICBoZWlnaHQgdHJhY2tJbWFnZVNpemVcbiAgICAgICAgcGFkZGluZyAwXG4gICAgICAgIG1hcmdpbiAwIDRweCAwIDBcbiAgICAgICAgYm9yZGVyIDBcbiAgICAgICAgYmFja2dyb3VuZCBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKCNlNDg0YmUsIC41KSwgcmdiYSgjODNhMmIxLCAuNSkpXG4gICAgICAgIHotaW5kZXggMVxuICAgICAgICB0cmFuc2l0aW9uIC4ycyAuNHNcbiAgICAgICAgJjphZnRlclxuICAgICAgICAgICAgb3BhY2l0eSAwXG4gICAgICAgICAgICBjb250ZW50ICcnXG4gICAgICAgICAgICBwb3NpdGlvbiBhYnNvbHV0ZVxuICAgICAgICAgICAgdG9wIDUwJVxuICAgICAgICAgICAgbGVmdCA1MCVcbiAgICAgICAgICAgIHdpZHRoIDQwcHhcbiAgICAgICAgICAgIGhlaWdodCBAd2lkdGhcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXMgNTAlXG4gICAgICAgICAgICBtYXJnaW4tdG9wIChAaGVpZ2h0IC8gLTIpXG4gICAgICAgICAgICBtYXJnaW4tbGVmdCAoQHdpZHRoIC8gLTIpXG4gICAgICAgICAgICBiYWNrZ3JvdW5kIG9yYW5nZSBnZXRJbWFnZSgndHJhY2stcGxheScpIG5vLXJlcGVhdCA1MCUgNTAlIC8gMTJweFxuICAgICAgICAgICAgZm9udC1zaXplIDI0cHhcbiAgICAgICAgICAgIGNvbG9yIHdoaXRlXG4gICAgICAgICAgICBjdXJzb3IgcG9pbnRlclxuICAgICAgICAgICAgdHJhbnNpdGlvbiBiYWNrZ3JvdW5kLWNvbG9yIC4ycywgb3BhY2l0eSAuMnNcbiAgICAgICAgJjpob3ZlcjphZnRlclxuICAgICAgICAmOmZvY3VzOmFmdGVyXG4gICAgICAgIC5hY3RpdmUgJjphZnRlclxuICAgICAgICAgICAgb3BhY2l0eSAxXG4gICAgICAgICY6YWN0aXZlOmFmdGVyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIG9yYW5nZS1kYXJrXG4gICAgICAgIC5wbGF5aW5nICY6YWZ0ZXJcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2UgZ2V0SW1hZ2UoJ3RyYWNrLXBhdXNlJylcblxuXG4gICAgLy8gLnRyYWNrLWltYWdlXG4gICAgJi1pbWFnZVxuICAgICAgICBwb3NpdGlvbiBhYnNvbHV0ZVxuICAgICAgICB0b3AgMFxuICAgICAgICBsZWZ0IDBcbiAgICAgICAgY3Vyc29yIHBvaW50ZXJcblxuICAgIGZpZ2NhcHRpb25cbiAgICAgICAgcGFkZGluZy1sZWZ0IHRyYWNrSW1hZ2VTaXplICsgMTBcblxuICAgIC8vIC50cmFjay1kZXRhaWxzXG4gICAgJi1kZXRhaWxzXG4gICAgICAgIHdpZHRoIGNhbGMoMTAwJSAtIDgwcHgpXG4gICAgICAgIHdoaXRlLXNwYWNlIG5vd3JhcFxuICAgICAgICBvdmVyZmxvdyBoaWRkZW5cbiAgICAgICAgdGV4dC1vdmVyZmxvdyBlbGxpcHNpc1xuXG4gICAgICAgIC8vIC50cmFjay1kZXRhaWxzLXVzZXJcbiAgICAgICAgJi11c2VyXG4gICAgICAgICAgICBkaXNwbGF5IGJsb2NrXG4gICAgICAgICAgICBjb2xvciAjOTk5XG4gICAgICAgICAgICBmb250LXNpemUgMTRweFxuXG4gICAgICAgIC8vIC50cmFjay1kZXRhaWxzLXRpdGxlXG4gICAgICAgICYtdGl0bGVcbiAgICAgICAgICAgIGRpc3BsYXkgYmxvY2tcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0IGJvbGRcbiAgICAgICAgICAgIGNvbG9yIHRleHQtY29sb3JcblxuICAgICAgICBhXG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb24gbm9uZVxuICAgICAgICAgICAgJjpob3ZlclxuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbiB1bmRlcmxpbmVcblxuICAgIC8vIC50cmFjay13YXZlZm9ybVxuICAgICYtd2F2ZWZvcm1cbiAgICAgICAgaGVpZ2h0IDYwcHhcbiAgICAgICAgY3Vyc29yIHBvaW50ZXJcbiAgICAgICAgb3BhY2l0eSAwXG4gICAgICAgIHRyYW5zaXRpb24gLjJzXG4gICAgICAgICYuZHJhd25cbiAgICAgICAgICAgIG9wYWNpdHkgMVxuXG4gICAgICAgIC5yZWN0LWJhY2tncm91bmRcbiAgICAgICAgICAgIGZpbGwgI2VhZWFlYVxuXG4gICAgICAgIC5yZWN0LWJ1ZmZlcmVkXG4gICAgICAgICAgICBmaWxsICNkZGRcblxuICAgICAgICAucmVjdC1ob3ZlcmVkXG4gICAgICAgICAgICBmaWxsIGxpZ2h0ZW4ob3JhbmdlLCAzMCUpXG4gICAgICAgICAgICAmLmhpZGRlblxuICAgICAgICAgICAgICAgIG9wYWNpdHkgMFxuXG4gICAgICAgIC5yZWN0LXBsYXllZFxuICAgICAgICAgICAgZmlsbCB1cmwoI2dyYWRpZW50LXBsYXllZClcblxuICAgICAgICAucmVjdC1vdmVybGF5XG4gICAgICAgICAgICBmaWxsICNmYWZhZmFcbiAgICAgICAgICAgIGZpbGwtb3BhY2l0eSAuNVxuICAgICAgICAgICAgdHJhbnNpdGlvbiAuNHNcblxuICAgIC8vIC50cmFjay1kdXJhdGlvblxuICAgICYtZHVyYXRpb25cbiAgICAgICAgcG9zaXRpb24gYWJzb2x1dGVcbiAgICAgICAgbGVmdCAxMDAlXG4gICAgICAgIHRvcCA1NXB4XG4gICAgICAgIG1hcmdpbi1sZWZ0IDEwcHhcbiAgICAgICAgZm9udC1zaXplIDEzcHhcbiAgICAgICAgcG9pbnRlci1ldmVudHMgbm9uZVxuXG4gICAgLy8gLnRyYWNrLWxpbmtzXG4gICAgJi1saW5rc1xuICAgICAgICBwb3NpdGlvbiBhYnNvbHV0ZVxuICAgICAgICB0b3AgMFxuICAgICAgICByaWdodCAwXG5cbiAgICBAbWVkaWEgc21hbGxcbiAgICAgICAgdHJhY2tJbWFnZVNpemUgPSA2MHB4XG4gICAgICAgIC8vIC50cmFjay1wbGF5XG4gICAgICAgICYtcGxheVxuICAgICAgICAgICAgd2lkdGggdHJhY2tJbWFnZVNpemVcbiAgICAgICAgICAgIGhlaWdodCB0cmFja0ltYWdlU2l6ZVxuICAgICAgICAgICAgYm90dG9tIDBcblxuICAgICAgICAvLyAudHJhY2staW1hZ2VcbiAgICAgICAgJi1pbWFnZVxuICAgICAgICAgICAgd2lkdGggdHJhY2tJbWFnZVNpemVcbiAgICAgICAgICAgIGhlaWdodCBAd2lkdGhcblxuICAgICAgICBmaWdjYXB0aW9uXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQgMFxuXG4gICAgICAgIC8vIC50cmFjay1kZXRhaWxzXG4gICAgICAgICYtZGV0YWlsc1xuICAgICAgICAgICAgd2lkdGggY2FsYygxMDAlIC0gNzBweClcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b20gNXB4XG5cbiAgICAgICAgLy8gLnRyYWNrLXdhdmVmb3JtXG4gICAgICAgICYtd2F2ZWZvcm1cbiAgICAgICAgICAgIHBhZGRpbmctbGVmdCB0cmFja0ltYWdlU2l6ZSArIDEwcHhcblxuICAgICAgICAvLyAudHJhY2stZHVyYXRpb25cbiAgICAgICAgJi1kdXJhdGlvblxuICAgICAgICAgICAgbGVmdCBhdXRvXG4gICAgICAgICAgICByaWdodCAwXG4iLCIvLyBCYXNlZCBvbiBodHRwOi8vY29kZXBlbi5pby90aGViYWJ5ZGluby9wZW4vdkVkcG1vIGJ5IEFuYSBUdWRvciA8QGFuYXR1ZG9yPlxudGhlbWUtYmFzZSA9ICNjY2NcbnRyYWNrLXdpZHRoID0gMjBlbVxudHJhY2staGVpZ2h0ID0gMXB4XG50aHVtYi1zaXplID0gMTNweFxudGh1bWItYm9yZGVyID0gM3B4XG5cbi8vIFdlIGNhbid0IHVzZSBAZXh0ZW5kIGJlY2F1c2Ugb2YgdW5rbm93biBzZWxlY3RvcnMgZXJyb3JzXG50cmFjaygpXG4gICAgcG9zaXRpb24gcmVsYXRpdmVcbiAgICB3aWR0aCB0cmFjay13aWR0aFxuICAgIGhlaWdodCB0cmFjay1oZWlnaHRcbiAgICBib3JkZXIgbm9uZVxuICAgIGJhY2tncm91bmQgdGhlbWUtYmFzZVxuICAgICY6YmVmb3JlXG4gICAgICAgIGNvbnRlbnQgJydcbiAgICAgICAgcG9zaXRpb24gYWJzb2x1dGVcbiAgICAgICAgaGVpZ2h0IHRyYWNrLWhlaWdodFxuICAgICAgICB3aWR0aCAxMDAlXG4gICAgICAgIGJhY2tncm91bmQgb3JhbmdlXG5cbnRyYWNrLWZvY3VzKClcbiAgICBiYWNrZ3JvdW5kIG9yYW5nZVxuXG50aHVtYigpXG4gICAgcG9zaXRpb24gcmVsYXRpdmVcbiAgICBib3JkZXIgdGh1bWItYm9yZGVyIHNvbGlkIGNvbnRyb2xzLWJnXG4gICAgd2lkdGggdGh1bWItc2l6ZVxuICAgIGhlaWdodCB0aHVtYi1zaXplXG4gICAgYm9yZGVyLXJhZGl1cyA1MCVcbiAgICBiYWNrZ3JvdW5kIHRoZW1lLWJhc2VcbiAgICB0cmFuc2l0aW9uIC4yc1xuICAgICY6YmVmb3JlXG4gICAgICAgIGNvbnRlbnQgJydcbiAgICAgICAgcG9zaXRpb24gYWJzb2x1dGVcbiAgICAgICAgaGVpZ2h0IHRyYWNrLWhlaWdodFxuICAgICAgICB3aWR0aCAxMDAwMHB4XG4gICAgICAgIHRvcCA1MCVcbiAgICAgICAgbGVmdCB0aHVtYi1zaXplIC0gdGh1bWItYm9yZGVyXG4gICAgICAgIG1hcmdpbi10b3AgdHJhY2staGVpZ2h0ICogLTFcbiAgICAgICAgYmFja2dyb3VuZCB0aGVtZS1iYXNlXG5cbnRodW1iLWZvY3VzKClcbiAgICBib3JkZXItY29sb3Igb3JhbmdlXG4gICAgYmFja2dyb3VuZCBvcmFuZ2VcblxuXG5pbnB1dFt0eXBlPXJhbmdlXVxuICAgIHBvc2l0aW9uIHJlbGF0aXZlXG4gICAgd2lkdGggMTAwJVxuICAgIGhlaWdodCB0aHVtYi1zaXplXG4gICAgcGFkZGluZyAwXG4gICAgbWFyZ2luIDBcbiAgICBiYWNrZ3JvdW5kIHRyYW5zcGFyZW50XG4gICAgb3ZlcmZsb3cgaGlkZGVuXG4gICAgY3Vyc29yIHBvaW50ZXJcbiAgICAmOmFmdGVyXG4gICAgICAgIGNvbnRlbnQgJydcbiAgICAgICAgcG9zaXRpb24gYWJzb2x1dGVcbiAgICAgICAgd2lkdGggKHRodW1iLXNpemUgLyAyKVxuICAgICAgICBoZWlnaHQgMXB4XG4gICAgICAgIHRvcCA1MCVcbiAgICAgICAgcmlnaHQgMFxuICAgICAgICBtYXJnaW4tdG9wIHRyYWNrLWhlaWdodCAqIC0xXG4gICAgICAgIGJhY2tncm91bmQgY29udHJvbHMtYmdcbiAgICAmXG4gICAgJjo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2tcbiAgICAmOjotd2Via2l0LXNsaWRlci10aHVtYlxuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2Ugbm9uZVxuICAgICY6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrXG4gICAgICAgIG1hcmdpbiAoMCB0aHVtYi1zaXplIC8gMilcbiAgICAgICAgdHJhY2soKVxuICAgICY6Oi1tb3otcmFuZ2UtdHJhY2tcbiAgICAgICAgdHJhY2soKVxuICAgICY6Oi1tcy10cmFja1xuICAgICAgICBtYXJnaW4gKDAgdGh1bWItc2l6ZSAvIDIpXG4gICAgICAgIGNvbG9yIHRyYW5zcGFyZW50XG4gICAgJjo6LXdlYmtpdC1zbGlkZXItdGh1bWJcbiAgICAgICAgbWFyZ2luLXRvcCAoKHRyYWNrLWhlaWdodCAtIHRodW1iLXNpemUpIC8gMilcbiAgICAgICAgdGh1bWIoKVxuICAgICY6Oi1tb3otcmFuZ2UtdGh1bWJcbiAgICAgICAgdGh1bWIoKVxuICAgICY6Oi1tcy10aHVtYlxuICAgICAgICB0aHVtYigpXG4gICAgJjo6LW1zLWZpbGwtbG93ZXJcbiAgICAmOjotbXMtZmlsbC11cHBlclxuICAgICAgICBiYWNrZ3JvdW5kIHRyYW5zcGFyZW50XG4gICAgJjo6LW1zLXRvb2x0aXBcbiAgICAgICAgZGlzcGxheSBub25lXG4gICAgJjpmb2N1c1xuICAgICY6YWN0aXZlXG4gICAgICAgIG91dGxpbmUgbm9uZVxuICAgICAgICAmOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFja1xuICAgICAgICAgICAgdHJhY2stZm9jdXMoKVxuICAgICAgICAmOjotbW96LXJhbmdlLXRyYWNrXG4gICAgICAgICAgICB0cmFjay1mb2N1cygpXG4gICAgICAgICY6Oi1tcy1maWxsLWxvd2VyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kIG9yYW5nZVxuICAgICAgICAmOjotd2Via2l0LXNsaWRlci10aHVtYlxuICAgICAgICAgICAgdGh1bWItZm9jdXMoKVxuICAgICAgICAmOjotbW96LXJhbmdlLXRodW1iXG4gICAgICAgICAgICB0aHVtYi1mb2N1cygpXG4gICAgICAgICY6Oi1tcy10aHVtYlxuICAgICAgICAgICAgdGh1bWItZm9jdXMoKSJdfQ== */