diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f285af6cb7..cc10658161 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -138,6 +138,7 @@ jobs: name: Trigger Homebrew/AUR Release runs-on: ubuntu-latest needs: release + if: github.event.release.prerelease == false steps: - name: Update AUR package uses: fjogeleit/http-request-action@master diff --git a/CustomApps/lyrics-plus/Pages.js b/CustomApps/lyrics-plus/Pages.js index ede95f497f..e82a9c9c78 100755 --- a/CustomApps/lyrics-plus/Pages.js +++ b/CustomApps/lyrics-plus/Pages.js @@ -18,17 +18,14 @@ const CreditFooter = react.memo(({ provider, copyright }) => { ); }); -const IdlingIndicator = ({ isActive, progress, delay }) => { +const IdlingIndicator = ({ isActive, progress, delay, className = "", style = {} }) => { return react.createElement( "div", { - className: `lyrics-idling-indicator ${ - !isActive ? "lyrics-idling-indicator-hidden" : "" - } lyrics-lyricsContainer-LyricsLine lyrics-lyricsContainer-LyricsLine-active`, + className: `lyrics-idling-indicator ${isActive === false ? "lyrics-idling-indicator-hidden" : ""} ${className}`.trim(), style: { - "--position-index": 0, - "--animation-index": 1, "--indicator-delay": `${delay}ms`, + ...style, }, }, react.createElement("div", { className: `lyrics-idling-indicator__circle ${progress >= 0.05 ? "active" : ""}` }), @@ -43,6 +40,96 @@ const emptyLine = { text: [], }; +const isPauseLine = (text) => { + if (!text) return true; + if (Array.isArray(text)) { + const joined = text + .map((w) => (typeof w === "object" ? w.word : w)) + .join("") + .trim(); + return joined === "♪" || joined === ""; + } + let str = typeof text === "object" ? text?.props?.children?.[0] : text; + if (typeof str !== "string") { + str = String(str || ""); + } + const trimmed = str.trim(); + return trimmed === "♪" || trimmed === ""; +}; + +const findNextLineStartTime = (lines, fromIndex) => { + for (let j = fromIndex + 1; j < lines.length; j++) { + if (!isPauseLine(lines[j].text) && lines[j].startTime != null) { + return lines[j].startTime; + } + } + return null; +}; + +const getPauseIndicator = (lyrics, lineNumber, startTime, position, isFocused, isPause) => { + if (!isFocused || !isPause) return null; + + const nextStart = findNextLineStartTime(lyrics, lineNumber); + const pauseStart = startTime || 0; + const pauseDuration = nextStart ? nextStart - pauseStart : 0; + const progress = pauseDuration > 0 ? (position - pauseStart) / pauseDuration : 0; + const delay = pauseDuration / 3; + + return react.createElement(IdlingIndicator, { + progress, + delay, + }); +}; + +const LONG_PAUSE_THRESHOLD = 8000; // 8 seconds + +const processPauseLines = (lyrics) => { + if (!lyrics || !lyrics.length) return lyrics; + const result = []; + for (let i = 0; i < lyrics.length; i++) { + const line = lyrics[i]; + const nextLine = lyrics[i + 1]; + + if (isPauseLine(line.text)) { + // Skip consecutive pause lines to consolidate them into one idling indicator + const lastLine = result[result.length - 1]; + if (lastLine && isPauseLine(lastLine.text)) { + continue; + } + const nextStart = findNextLineStartTime(lyrics, i); + const pauseStart = line.startTime || 0; + if (nextStart != null) { + const pauseDuration = nextStart - pauseStart; + if (pauseDuration >= LONG_PAUSE_THRESHOLD) { + result.push(line); + } + } + } else { + result.push(line); + const hasLineEndTime = line.endTime != null && line.endTime > line.startTime; + const endTime = hasLineEndTime ? line.endTime : null; + if (endTime != null && nextLine && nextLine.startTime != null) { + const gap = nextLine.startTime - endTime; + if (gap >= LONG_PAUSE_THRESHOLD && nextLine.startTime > line.startTime && !isPauseLine(nextLine.text)) { + result.push({ + text: "♪", + startTime: endTime, + endTime: nextLine.startTime, + }); + } + } + } + } + return result; +}; + +const isRTLText = (str) => /[\u0591-\u07FF\u200F\u202B\u202E\uFB1D-\uFDFD\uFE70-\uFEFC]/.test(str); + +const renderPerformer = (performer, previousPerformer, compact) => { + if (!CONFIG.visual["show-performers"] || !performer || (!compact && previousPerformer === performer)) return null; + return react.createElement("span", { className: "lyrics-lyricsContainer-Performer" }, performer); +}; + const useTrackPosition = (callback) => { const callbackRef = useRef(); callbackRef.current = callback; @@ -57,22 +144,25 @@ const useTrackPosition = (callback) => { }; const KaraokeLine = ({ text, isActive, position, startTime, endTime }) => { - if (endTime && position > endTime) { - return text.map(({ word }) => word).join(""); + if ((endTime != null && position > endTime) || (!isActive && position > startTime)) { + return text.map(({ word }, i) => (typeof word === "string" ? word : react.cloneElement(word, { key: i }))); } + let accumulatedTime = startTime; return text.map(({ word, time }, i) => { - const isWordActive = position >= startTime; - startTime += time; + const isRTL = isRTLText(typeof word === "string" ? word : ""); + const isWordActive = position >= accumulatedTime; + accumulatedTime += time; + const isWordComplete = isWordActive && position >= accumulatedTime; return react.createElement( "span", { key: i, - className: `lyrics-lyricsContainer-Karaoke-Word${isWordActive ? " lyrics-lyricsContainer-Karaoke-WordActive" : ""}`, + className: `lyrics-lyricsContainer-Karaoke-Word${isWordActive ? " lyrics-lyricsContainer-Karaoke-WordActive" : ""}${isRTL ? " lyrics-lyricsContainer-Karaoke-WordRTL" : ""}`, style: { "--word-duration": `${time}ms`, // don't animate unless we have to - transition: !isWordActive ? "all 0s linear" : "", + transition: !isWordActive || isWordComplete ? "all 0s linear" : "", }, }, word @@ -95,7 +185,7 @@ const SyncedLyricsPage = react.memo(({ lyrics = [], provider, copyright, isKara const lyricWithEmptyLines = useMemo( () => - [emptyLine, emptyLine, ...lyrics].map((line, i) => ({ + [emptyLine, emptyLine, ...processPauseLines(lyrics)].map((line, i) => ({ ...line, lineNumber: i, })), @@ -107,22 +197,67 @@ const SyncedLyricsPage = react.memo(({ lyrics = [], provider, copyright, isKara let activeLineIndex = 0; for (let i = lyricWithEmptyLines.length - 1; i > 0; i--) { if (position >= lyricWithEmptyLines[i].startTime) { + // If this is a pause line and the next one starts at the same time and is NOT a pause line, + // prefer the next line (the text). + if ( + isPauseLine(lyricWithEmptyLines[i].text) && + lyricWithEmptyLines[i + 1] && + position >= lyricWithEmptyLines[i + 1].startTime && + !isPauseLine(lyricWithEmptyLines[i + 1].text) + ) { + continue; + } activeLineIndex = i; break; } } - const activeLines = useMemo(() => { - const startIndex = Math.max(activeLineIndex - 1 - CONFIG.visual["lines-before"], 0); - // 3 lines = 1 padding top + 1 padding bottom + 1 active - const linesCount = CONFIG.visual["lines-before"] + CONFIG.visual["lines-after"] + 3; - return lyricWithEmptyLines.slice(startIndex, startIndex + linesCount); - }, [activeLineIndex, lyricWithEmptyLines]); + const { activeLines, activeElementIndex } = useMemo(() => { + let startIndex = activeLineIndex; + let visibleBefore = 0; + const targetBefore = Number(CONFIG.visual["lines-before"]) + 1; + while (startIndex > 0 && visibleBefore < targetBefore) { + startIndex--; + if (!isPauseLine(lyricWithEmptyLines[startIndex].text)) { + visibleBefore++; + } + } + + let endIndex = activeLineIndex; + let visibleAfter = 0; + const targetAfter = Number(CONFIG.visual["lines-after"]) + 1; + while (endIndex < lyricWithEmptyLines.length - 1 && visibleAfter < targetAfter) { + endIndex++; + if (!isPauseLine(lyricWithEmptyLines[endIndex].text)) { + visibleAfter++; + } + } + + return { + activeLines: lyricWithEmptyLines.slice(startIndex, endIndex + 1), + activeElementIndex: activeLineIndex - startIndex, + }; + }, [activeLineIndex, lyricWithEmptyLines, CONFIG.visual["lines-before"], CONFIG.visual["lines-after"]]); let offset = lyricContainerEle.current ? lyricContainerEle.current.clientHeight / 2 : 0; if (activeLineEle.current) { offset += -(activeLineEle.current.offsetTop + activeLineEle.current.clientHeight / 2); } + const adjustedAnimationIndices = []; + let currentIndex = 0; + for (let j = activeElementIndex; j < activeLines.length; j++) { + adjustedAnimationIndices[j] = currentIndex; + if (!isPauseLine(activeLines[j].text) || j === activeElementIndex) { + currentIndex++; + } + } + currentIndex = -1; + for (let j = activeElementIndex - 1; j >= 0; j--) { + adjustedAnimationIndices[j] = currentIndex; + if (!isPauseLine(activeLines[j].text)) { + currentIndex--; + } + } return react.createElement( "div", @@ -140,31 +275,31 @@ const SyncedLyricsPage = react.memo(({ lyrics = [], provider, copyright, isKara key: lyricsId, }, activeLines.map(({ text, lineNumber, startTime, endTime, originalText, performer }, i) => { - if (i === 1 && activeLineIndex === 1) { - return react.createElement(IdlingIndicator, { - progress: position / activeLines[2].startTime, - delay: activeLines[2].startTime / 3, - }); - } + const isFocusedLine = activeElementIndex === i; + const isPause = isPauseLine(text); + + // Calculate indicator state for pause lines + const indicatorEl = getPauseIndicator(lyricWithEmptyLines, lineNumber, startTime, position, isFocusedLine, isPause); let className = "lyrics-lyricsContainer-LyricsLine"; - const activeElementIndex = Math.min(activeLineIndex, CONFIG.visual["lines-before"] + 1); let ref; - const isActive = activeElementIndex === i; + const isPlaying = startTime != null && endTime != null && position >= startTime && position <= endTime; + const isActive = isFocusedLine || isPlaying; + + if (isFocusedLine) { + ref = activeLineEle; + } if (isActive) { className += " lyrics-lyricsContainer-LyricsLine-active"; - ref = activeLineEle; + } else if (isPause && !indicatorEl) { + className += " lyrics-lyricsContainer-LyricsLine-hidden"; } - let animationIndex; - if (activeLineIndex <= CONFIG.visual["lines-before"]) { - animationIndex = i - activeLineIndex; - } else { - animationIndex = i - CONFIG.visual["lines-before"] - 1; - } + let animationIndex = adjustedAnimationIndices[i]; - const paddingLine = (animationIndex < 0 && -animationIndex > CONFIG.visual["lines-before"]) || animationIndex > CONFIG.visual["lines-after"]; + const paddingLine = + (animationIndex < 0 && -animationIndex > Number(CONFIG.visual["lines-before"])) || animationIndex > Number(CONFIG.visual["lines-after"]); if (paddingLine) { className += " lyrics-lyricsContainer-LyricsLine-paddingLine"; } @@ -198,34 +333,21 @@ const SyncedLyricsPage = react.memo(({ lyrics = [], provider, copyright, isKara } }, }, - react.createElement( - "p", - { - onContextMenu: (event) => { - event.preventDefault(); - Spicetify.Platform.ClipboardAPI.copy(Utils.convertParsedToLRC(lyrics, belowMode).original) - .then(() => Spicetify.showNotification("Lyrics copied to clipboard")) - .catch(() => Spicetify.showNotification("Failed to copy lyrics to clipboard")); - }, - }, - (() => { - if (!CONFIG.visual["show-performers"] || !performer) return null; - - if (!CONFIG.visual["synced-compact"]) { - const previousLine = lyricWithEmptyLines[lineNumber - 1]; - if (previousLine && previousLine.performer === performer) return null; - } - - return react.createElement( - "span", + isPause + ? indicatorEl + : react.createElement( + "p", { - className: "lyrics-lyricsContainer-Performer", + onContextMenu: (event) => { + event.preventDefault(); + Spicetify.Platform.ClipboardAPI.copy(Utils.convertParsedToLRC(lyrics, belowMode).original) + .then(() => Spicetify.showNotification("Lyrics copied to clipboard")) + .catch(() => Spicetify.showNotification("Failed to copy lyrics to clipboard")); + }, }, - performer - ); - })(), - !isKara ? lineText : react.createElement(KaraokeLine, { text, startTime, endTime, position, isActive }) - ), + renderPerformer(performer, lyricWithEmptyLines[lineNumber - 1]?.performer, CONFIG.visual["synced-compact"]), + !isKara ? lineText : react.createElement(KaraokeLine, { text, startTime, endTime, position, isActive }) + ), belowMode && react.createElement( "p", @@ -410,7 +532,7 @@ function isInViewport(element) { } const SyncedExpandedLyricsPage = react.memo(({ lyrics, provider, copyright, isKara }) => { - const [position, setPosition] = useState(0); + const [position, setPosition] = useState(() => Spicetify.Player.getProgress() + CONFIG.visual["global-delay"] + CONFIG.visual.delay); const activeLineRef = useRef(null); const pageRef = useRef(null); @@ -420,9 +542,14 @@ const SyncedExpandedLyricsPage = react.memo(({ lyrics, provider, copyright, isKa } }); - const padded = useMemo(() => [emptyLine, ...lyrics], [lyrics]); + const padded = useMemo(() => [emptyLine, ...processPauseLines(lyrics)], [lyrics]); + + const initialScroll = useRef(true); - const intialScroll = useMemo(() => [false], [lyrics]); + // Reset scroll state when lyrics change + useEffect(() => { + initialScroll.current = true; + }, [lyrics]); const lyricsId = lyrics[0].text; @@ -430,21 +557,36 @@ const SyncedExpandedLyricsPage = react.memo(({ lyrics, provider, copyright, isKa for (let i = padded.length - 1; i >= 0; i--) { const line = padded[i]; if (position >= line.startTime) { + // If this is a pause line and the next one starts at the same time and is NOT a pause line, + // prefer the next line (the text). + if (isPauseLine(line.text) && padded[i + 1] && position >= padded[i + 1].startTime && !isPauseLine(padded[i + 1].text)) { + continue; + } activeLineIndex = i; break; } } useEffect(() => { - if (activeLineRef.current && (!intialScroll[0] || isInViewport(activeLineRef.current))) { + if (activeLineRef.current && (initialScroll.current || isInViewport(activeLineRef.current))) { + // Ignore focus on the first "empty" idling indicator if it's during initial load + if (initialScroll.current && activeLineIndex === 0) { + const nextStart = findNextLineStartTime(padded, 0); + // If the intro is very short (e.g. less than 300ms), don't focus it + if (nextStart && nextStart - position < 300) { + initialScroll.current = false; + return; + } + } + activeLineRef.current.scrollIntoView({ - behavior: "smooth", + behavior: initialScroll.current ? "auto" : "smooth", block: "center", inline: "nearest", }); - intialScroll[0] = true; + initialScroll.current = false; } - }, [activeLineRef.current]); + }, [activeLineIndex, lyricsId]); return react.createElement( "div", @@ -457,15 +599,34 @@ const SyncedExpandedLyricsPage = react.memo(({ lyrics, provider, copyright, isKa className: "lyrics-lyricsContainer-LyricsUnsyncedPadding", }), padded.map(({ text, startTime, endTime, originalText, performer }, i) => { + // Show idling indicator for the initial empty line if (i === 0) { + const nextStart = findNextLineStartTime(padded, 0); return react.createElement(IdlingIndicator, { + key: i, isActive: activeLineIndex === 0, - progress: position / padded[1].startTime, - delay: padded[1].startTime / 3, + progress: nextStart ? position / nextStart : 0, + delay: nextStart ? nextStart / 3 : 0, + className: "lyrics-lyricsContainer-LyricsLine lyrics-lyricsContainer-LyricsLine-active", + style: { "--position-index": 0, "--animation-index": 1 }, }); } - const isActive = i === activeLineIndex; + const isFocused = i === activeLineIndex; + const isPause = isPauseLine(text); + + // Calculate indicator state for pause lines + const indicatorEl = getPauseIndicator(padded, i, startTime, position, isFocused, isPause); + + const isPlaying = startTime != null && endTime != null && position >= startTime && position <= endTime; + const isPast = (endTime != null && position > endTime) || (!isFocused && startTime != null && position > startTime); + const isActive = isFocused || isPlaying; + + let className = `lyrics-lyricsContainer-LyricsLine${isActive ? " lyrics-lyricsContainer-LyricsLine-active" : ""}${isPast ? " lyrics-lyricsContainer-LyricsLine-past" : ""}`; + if (isPause && !indicatorEl) { + className += " lyrics-lyricsContainer-LyricsLine-hidden"; + } + const showTranslatedBelow = CONFIG.visual["translate:display-mode"] === "below"; // If we have original text and we are showing translated below, we should show the original text // Otherwise we should show the translated text @@ -480,47 +641,34 @@ const SyncedExpandedLyricsPage = react.memo(({ lyrics, provider, copyright, isKa return react.createElement( "div", { - className: `lyrics-lyricsContainer-LyricsLine${i <= activeLineIndex ? " lyrics-lyricsContainer-LyricsLine-active" : ""}`, + className, key: i, style: { cursor: "pointer", }, dir: "auto", - ref: isActive ? activeLineRef : null, + ref: isFocused ? activeLineRef : null, onClick: (event) => { if (startTime) { Spicetify.Player.seek(startTime); } }, }, - react.createElement( - "p", - { - onContextMenu: (event) => { - event.preventDefault(); - Spicetify.Platform.ClipboardAPI.copy(Utils.convertParsedToLRC(lyrics, belowMode).original) - .then(() => Spicetify.showNotification("Lyrics copied to clipboard")) - .catch(() => Spicetify.showNotification("Failed to copy lyrics to clipboard")); - }, - }, - (() => { - if (!CONFIG.visual["show-performers"] || !performer) return null; - - if (!CONFIG.visual["synced-compact"]) { - const previousLine = padded[i - 1]; - if (previousLine && previousLine.performer === performer) return null; - } - - return react.createElement( - "span", + isPause + ? indicatorEl + : react.createElement( + "p", { - className: "lyrics-lyricsContainer-Performer", + onContextMenu: (event) => { + event.preventDefault(); + Spicetify.Platform.ClipboardAPI.copy(Utils.convertParsedToLRC(lyrics, belowMode).original) + .then(() => Spicetify.showNotification("Lyrics copied to clipboard")) + .catch(() => Spicetify.showNotification("Failed to copy lyrics to clipboard")); + }, }, - performer - ); - })(), - !isKara ? lineText : react.createElement(KaraokeLine, { text, startTime, endTime, position, isActive }) - ), + renderPerformer(performer, padded[i - 1]?.performer, CONFIG.visual["synced-compact"]), + !isKara ? lineText : react.createElement(KaraokeLine, { text, startTime, endTime, position, isActive }) + ), belowMode && react.createElement( "p", @@ -586,20 +734,7 @@ const UnsyncedLyricsPage = react.memo(({ lyrics, provider, copyright }) => { .catch(() => Spicetify.showNotification("Failed to copy lyrics to clipboard")); }, }, - (() => { - if (!CONFIG.visual["show-performers"] || !performer) return null; - - const previousLine = lyrics[index - 1]; - if (previousLine && previousLine.performer === performer) return null; - - return react.createElement( - "span", - { - className: "lyrics-lyricsContainer-Performer", - }, - performer - ); - })(), + renderPerformer(performer, lyrics[index - 1]?.performer, false), lineText ), belowMode && diff --git a/CustomApps/lyrics-plus/index.js b/CustomApps/lyrics-plus/index.js index 8c893ab86e..e3260a611b 100644 --- a/CustomApps/lyrics-plus/index.js +++ b/CustomApps/lyrics-plus/index.js @@ -288,7 +288,9 @@ class LyricsContainer extends react.Component { } async fetchTempo(uri) { - const audio = await Spicetify.CosmosAsync.get(`https://api.spotify.com/v1/audio-features/${uri.split(":")[2]}`); + const audio = await Spicetify.CosmosAsync.get( + `https://spclient.wg.spotify.com/audio-attributes/v1/audio-features/${uri.split(":")[2]}?format=json` + ); let tempo = audio.tempo; const MIN_TEMPO = 60; diff --git a/CustomApps/lyrics-plus/style.css b/CustomApps/lyrics-plus/style.css index 13c1b09217..8ea6ec76f6 100644 --- a/CustomApps/lyrics-plus/style.css +++ b/CustomApps/lyrics-plus/style.css @@ -152,6 +152,7 @@ .lyrics-lyricsContainer-UnsyncedLyricsPage .lyrics-lyricsContainer-LyricsLine { color: var(--lyrics-color-inactive); transition: color 0.25s cubic-bezier(0, 0, 0.58, 1); + margin-bottom: calc(-0.7em + var(--lyrics-font-size)); } .lyrics-lyricsContainer-UnsyncedLyricsPage .lyrics-lyricsContainer-LyricsLine-active { @@ -160,6 +161,7 @@ .lyrics-lyricsContainer-UnsyncedLyricsPage .lyrics-lyricsContainer-LyricsLine:hover { color: var(--lyrics-color-active); + text-decoration: underline; } .lyrics-lyricsContainer-SyncedLyrics .lyrics-lyricsContainer-LyricsLine { @@ -182,6 +184,13 @@ pointer-events: none; } +.lyrics-lyricsContainer-SyncedLyrics .lyrics-lyricsContainer-LyricsLine.lyrics-lyricsContainer-LyricsLine-past, +.lyrics-lyricsContainer-UnsyncedLyricsPage .lyrics-lyricsContainer-LyricsLine.lyrics-lyricsContainer-LyricsLine-past { + color: var(--lyrics-color-active); + opacity: 1; + filter: none !important; +} + .lyrics-lyricsContainer-LyricsLine, .lyrics-versionSelector { margin-left: 100px; @@ -306,10 +315,6 @@ div.lyrics-tabBar-headerItemLink { background-position: top left !important; } -.lyrics-lyricsContainer-LyricsLine:hover .lyrics-lyricsContainer-Karaoke-Word { - background-position: top left; -} - .lyrics-lyricsContainer-Karaoke-Word { color: var(--lyrics-color-inactive); background-image: linear-gradient( @@ -328,6 +333,30 @@ div.lyrics-tabBar-headerItemLink { transition-timing-function: linear; } +/* RTL Karaoke - reverse gradient direction */ +.lyrics-lyricsContainer-Karaoke-Word.lyrics-lyricsContainer-Karaoke-WordRTL { + background-image: linear-gradient( + to left, + var(--lyrics-color-active), + var(--lyrics-color-active) 45%, + var(--lyrics-color-inactive) 55%, + var(--lyrics-color-inactive) + ); + background-position: top right 100%; +} + +.lyrics-lyricsContainer-Karaoke-WordRTL.lyrics-lyricsContainer-Karaoke-WordActive { + background-position: top right !important; +} + +.lyrics-lyricsContainer-LyricsLine:not(.lyrics-lyricsContainer-LyricsLine-active):hover .lyrics-lyricsContainer-Karaoke-Word { + background-position: top left; +} + +.lyrics-lyricsContainer-LyricsLine:not(.lyrics-lyricsContainer-LyricsLine-active):hover .lyrics-lyricsContainer-Karaoke-WordRTL { + background-position: top right; +} + .lyrics-lyricsContainer-LyricsLine a { background-color: transparent; transition: background-color 0.25s cubic-bezier(0, 0, 0, 1); @@ -619,6 +648,10 @@ div.lyrics-tabBar-headerItemLink { opacity: 0; } +.lyrics-lyricsContainer-LyricsLine-hidden { + display: none !important; +} + .lyrics-idling-indicator__circle { background-color: var(--lyrics-color-active); border-radius: 50%; diff --git a/Extensions/fullAppDisplay.js b/Extensions/fullAppDisplay.js index 8cfdaacce1..20d470d241 100644 --- a/Extensions/fullAppDisplay.js +++ b/Extensions/fullAppDisplay.js @@ -459,12 +459,26 @@ body.video-full-screen.video-full-screen--hide-ui { } async getAlbumDate(uri) { - const id = uri.replace("spotify:album:", ""); + const { getAlbum } = Spicetify.GraphQL.Definitions; + const { errors, data } = await Spicetify.GraphQL.Request(getAlbum, { + uri, + locale: Spicetify.Locale.getLocale(), + offset: 0, + limit: 10, + }); + + if (errors) return null; + + const albumDate = data.albumUnion.date; + + // Avoid false release date (e.g., Jan 1, XXXX) + if (albumDate.precision === "YEAR") { + return albumDate.isoString.split("-")[0]; + } - const albumInfo = await Spicetify.CosmosAsync.get(`https://api.spotify.com/v1/albums/${id}`); + const date = new Date(albumDate.isoString); - const albumDate = new Date(albumInfo.release_date); - return albumDate.toLocaleString("default", { + return date.toLocaleDateString("default", { year: "numeric", month: "short", day: "numeric", diff --git a/Extensions/trashbin.js b/Extensions/trashbin.js index 68d0ab34fa..f464101406 100644 --- a/Extensions/trashbin.js +++ b/Extensions/trashbin.js @@ -342,12 +342,12 @@ const uri = uris[0]; const uriObj = Spicetify.URI.fromString(uri); if (uriObj.type === Spicetify.URI.Type.TRACK) { - this.name = trashSongList[uri] ? UNTHROW_TEXT : THROW_TEXT; + cntxMenu.name = trashSongList[uri] ? UNTHROW_TEXT : THROW_TEXT; return true; } if (uriObj.type === Spicetify.URI.Type.ARTIST) { - this.name = trashArtistList[uri] ? UNTHROW_TEXT : THROW_TEXT; + cntxMenu.name = trashArtistList[uri] ? UNTHROW_TEXT : THROW_TEXT; return true; } diff --git a/css-map.json b/css-map.json index 0f1c5a31d1..cb97c5c773 100644 --- a/css-map.json +++ b/css-map.json @@ -10,70 +10,70 @@ "PAlX44btlstKkPJfe2uU": "artist-artistAbout-avatar", "k4MNlyGrhsL0qgnENxqh": "artist-artistAbout-backgroundImage", "DRXonbAbVN5Vg9anDL1X": "artist-artistAbout-backgroundImage", - "CjnwbSTpODW56Gerg7X6": "artist-artistAbout-bio", "xbKOOJ_NjLijBvdpAudQ": "artist-artistAbout-bio", + "CjnwbSTpODW56Gerg7X6": "artist-artistAbout-bio", "TV2j1oIRIkKH_6D1xP82": "artist-artistAbout-bioContainer", "Fzu8dfizHyYedxyDjaQ2": "artist-artistAbout-bioContainer", - "NPv26QCDgdnwsPOlYJmQ": "artist-artistAbout-cityBlock", "Q_OUHp7iDNLBcO2ZYI2x": "artist-artistAbout-cityBlock", + "NPv26QCDgdnwsPOlYJmQ": "artist-artistAbout-cityBlock", "mKUj4tXOjumlcv0q9Qta": "artist-artistAbout-close", "MHIOvvlSYRmF7VAJDLWy": "artist-artistAbout-close", "y_GaLKy76zj71zPYkLrs": "artist-artistAbout-columnContainer", "ml8qANY77Ah3fx5VTjoe": "artist-artistAbout-columnContainer", "uhDzVbFHyCQDH6WrWZaC": "artist-artistAbout-container", "jW4eWdr_LUeOXwPpKhWG": "artist-artistAbout-container", - "BPDHTIIFueJMvtDPZttw": "artist-artistAbout-content", "ejNsts52hRq0uZcc_NXi": "artist-artistAbout-content", + "BPDHTIIFueJMvtDPZttw": "artist-artistAbout-content", "H3lKAypjVfPoxoQkkCJQ": "artist-artistAbout-events", "XbP5GUst__JF8uVtbozd": "artist-artistAbout-heading", "oMsgQk2LPTIE4yinSHOQ": "artist-artistAbout-image", "e2S7FcJ1QgVLlcUbl2Kn": "artist-artistAbout-merch", "Er5rIejLMh22M0OiF8wH": "artist-artistAbout-merchShelfContent", "iZ_BsoftrZBB78FRQ3Yq": "artist-artistAbout-merchSmall", - "NiqTdDnFi5KAXoGukrdo": "artist-artistAbout-modal", "pSn5vOGhTHswAWTC_3tE": "artist-artistAbout-modal", + "NiqTdDnFi5KAXoGukrdo": "artist-artistAbout-modal", "KUUFCMOavSKiLbBMXu0f": "artist-artistAbout-modalAfterOpen", "hIhnD0UMvYHG6TnluwnX": "artist-artistAbout-modalBase", "Xr7SnQlqJFl6FSMeiSsw": "artist-artistAbout-modalBeforeClose", "yzXX2lW3wGayC_cdup_m": "artist-artistAbout-overview", "fPw1FkQQDEJvxJwTalo5": "artist-artistAbout-popularTracks", "Apg1EshcUJs6y4ITDWwV": "artist-artistAbout-popularTracksBlock", - "hdS8jsvbJhsJXHAZlWwz": "artist-artistAbout-postedBy", "OyLgnahIHw63684ABRBF": "artist-artistAbout-postedBy", - "KguYS3oppxDrMNpTUJcB": "artist-artistAbout-postedByAvatar", + "hdS8jsvbJhsJXHAZlWwz": "artist-artistAbout-postedBy", "mM_me6VjRfHLPkqAMqEI": "artist-artistAbout-postedByAvatar", - "tLjX9htIKD_OCmEX01UN": "artist-artistAbout-rank", + "KguYS3oppxDrMNpTUJcB": "artist-artistAbout-postedByAvatar", "tQp8UOu8jGduQXUTcv0c": "artist-artistAbout-rank", + "tLjX9htIKD_OCmEX01UN": "artist-artistAbout-rank", "ZjfaJlGQZ42nCWjD3FDm": "artist-artistAbout-scrollbars", "pHrwZOFBdT8FNXnmcPPI": "artist-artistAbout-scrollbars", "y72RJ2LhCkAyAfZ8tzUt": "artist-artistAbout-sideBlock", "muHL0_3HjlqTZDoapgc9": "artist-artistAbout-social", "DVWIV41y6daOMjQKR8Zj": "artist-artistAbout-socialsWrapper", - "TkEnV1bItcSb11Yb8h7h": "artist-artistAbout-stats", "upZIQtiBy1Tr0ZbvhnSL": "artist-artistAbout-stats", + "TkEnV1bItcSb11Yb8h7h": "artist-artistAbout-stats", "T_AmQPlZ6wvE819I7A0D": "artist-artistAbout-statsContainer", "ndIZG_atdpv_tBZtqQhk": "artist-artistAbout-statsContainer", "GB_nwkJosBf_NLdZAgAx": "artist-artistDiscography-active", "cFKW94askf6sbyOYlRqe": "artist-artistDiscography-artistName", "Ihlsi5QU3AnIfSgnhorS": "artist-artistDiscography-button", - "h8z21OhjsxoY1IvpR1QP": "artist-artistDiscography-cardGrid", "XJrBgo4PVAKtiOwymZAH": "artist-artistDiscography-cardGrid", + "h8z21OhjsxoY1IvpR1QP": "artist-artistDiscography-cardGrid", "Rz6JI4bCxJVeSWe6LtEX": "artist-artistDiscography-firstAlbum", "mtGNWthH4lVSrpVPuOZh": "artist-artistDiscography-firstAlbum", - "O61y0bIacmTFxhhbL1Bl": "artist-artistDiscography-headerButtons", "W4CDdWdxBiLFn6s7y3y4": "artist-artistDiscography-headerButtons", - "fEvxx8vl3zTNWsuC8lpx": "artist-artistDiscography-headerContainer", + "O61y0bIacmTFxhhbL1Bl": "artist-artistDiscography-headerButtons", "tMm_GLWkp1_AE8JeAU8l": "artist-artistDiscography-headerContainer", - "n1EzbHQahSKztskTUAm3": "artist-artistDiscography-headerImage", + "fEvxx8vl3zTNWsuC8lpx": "artist-artistDiscography-headerContainer", "zHSMgfu24oyo70WbnxJh": "artist-artistDiscography-headerImage", + "n1EzbHQahSKztskTUAm3": "artist-artistDiscography-headerImage", "hyHkMMynp3uUsmEtOkSN": "artist-artistDiscography-headerMetadata", "dPZaWJR4cdScdIwM6Sjx": "artist-artistDiscography-headerMetadata", - "kRb29P1Fo5blFMPRDSdq": "artist-artistDiscography-headerTitle", "tAFzDJjlr14lei2t_KYl": "artist-artistDiscography-headerTitle", + "kRb29P1Fo5blFMPRDSdq": "artist-artistDiscography-headerTitle", "P7nfAtcLXgPiUCJrlUjA": "artist-artistDiscography-topBar", - "EvQHNTBhaU3rGCRRlAWj": "artist-artistDiscography-topBar", "mxGhI8Lr7MoGOnFrbsUa": "artist-artistDiscography-topBar", "jOcv0cG2WD_3xsPvxwOe": "artist-artistDiscography-topBar", + "EvQHNTBhaU3rGCRRlAWj": "artist-artistDiscography-topBar", "QplCuuGSoV4updqTSLq9": "artist-artistDiscography-topBarScrolled", "oxpxKtAxG4E2DCK0AJo9": "artist-artistDiscography-tracklist", "JjWADiu6y90rHjdue6qI": "artist-artistDiscography-tracklist", @@ -115,8 +115,10 @@ "yTBLU_z7yk9Xp_oN48Q2": "artist-artistOverview-popularTracksBlock", "uVh80THccLWIzZYwgUaQ": "artist-artistOverview-sideBlock", "b0NcxAbHvRbqgs2S8QDg": "artist-artistVerifiedBadge-badge", + "GFd0FwlxZVwZ9UTissE2": "artist-artistVerifiedBadge-badge", "bn2UNQDs5GLY5rjp5Ljh": "artist-artistVerifiedBadge-fillColor", "CmR9tHJ5ta6oWJlKBm3k": "artist-artistVerifiedBadge-wrapper", + "uRaGTNlhRgP6shlQgYLz": "artist-artistVerifiedBadge-wrapper", "idI9vydtCzXVhU1BaKLw": "artist-followButton-button", "Qq16641w1flRfBavPaAn": "artist-followButton-disabled", "fEbcweEiUPPy2eaIaD3F": "artist-followButton-followed", @@ -136,95 +138,129 @@ "ZXOyJPokUIObMnvTOJvc": "collection-collectionEntityHeroCard-tracksContainer", "kST1INfbHSxzydJffBq_": "collection-collectionEntityHeroCard-yourEpisodes", "VuUpAVlUW_OfMfOcDEID": "collection-searchBar-searchBar", - "Agho45p8dD6jGmTpdSlp": "cover-art", "H0HbpIM3UrcupWIAjLWu": "cover-art", + "s1ft0kHOwOh71ov_": "cover-art", + "Agho45p8dD6jGmTpdSlp": "cover-art", "W0TACB7OY0iXtKVOtEhY": "cover-art-auto-height", - "dyzKbJJHavNOBo6bGSpK": "cover-art-icon", + "JHEcxruRuoEItJ1J": "cover-art-icon", "zmOtW0vqqn1qpZrtQ_w9": "cover-art-icon", - "_bmrtgr4_Tgsoiaz4c85": "cover-art-image", + "dyzKbJJHavNOBo6bGSpK": "cover-art-icon", "FqmFsMhuF4D0s35Z62Js": "cover-art-image", + "XKSrCjmdPkrllkPc": "cover-art-image", + "_bmrtgr4_Tgsoiaz4c85": "cover-art-image", + "lCbuKQ_HfL4yze5_": "cover-art-square", + "GPFzW05TOvDGXWYal0_Q": "cover-art-square", "tAcAbTTcWl8G7S0wL4E8": "desktopmodals-aboutSpotifyModal-closeButton", "GSFvITwD84dS2JA62Mtj": "desktopmodals-aboutSpotifyModal-closeButton", - "DIO4lfVN1pwro7Yg360w": "desktopmodals-aboutSpotifyModal-container", "UnLGG6p932k7WyjkB9Vo": "desktopmodals-aboutSpotifyModal-container", - "_h3KfYcbuvm0TopPfACQ": "desktopmodals-aboutSpotifyModal-content", + "DIO4lfVN1pwro7Yg360w": "desktopmodals-aboutSpotifyModal-container", "KlzblASEYfUfaykBFZgM": "desktopmodals-aboutSpotifyModal-content", - "_Hx5g6RUtUkydJULdjOA": "desktopmodals-aboutSpotifyModal-copyright", + "_h3KfYcbuvm0TopPfACQ": "desktopmodals-aboutSpotifyModal-content", "XF1XXenkrbdAK2rRoxoU": "desktopmodals-aboutSpotifyModal-copyright", - "FNHhAAEYgKErDNsJevtS": "desktopmodals-aboutSpotifyModal-licensing", + "_Hx5g6RUtUkydJULdjOA": "desktopmodals-aboutSpotifyModal-copyright", "Ifnz1lh1jjvqPqJ4KPo8": "desktopmodals-aboutSpotifyModal-licensing", + "FNHhAAEYgKErDNsJevtS": "desktopmodals-aboutSpotifyModal-licensing", "qsKpcFrhrA8KtuTVIN_y": "desktopmodals-licensesModal-buttonContainer", "uYKs_kQMPOziaeDj877B": "desktopmodals-licensesModal-container", "i8qeSJJVx4PXb7fsvOTd": "desktopmodals-licensesModal-content", "WhIzm3S3R6Ker3XvpYW6": "desktopmodals-licensesModal-licensesFrame", - "dn48DOL23H8N3jN80yFW": "desktopmodals-versionStatus-container", "qi0hX8uXrbQyS6tvdDBt": "desktopmodals-versionStatus-container", - "O7Pq_TuNMtSn0zigOncV": "desktopmodals-versionStatus-content", + "dn48DOL23H8N3jN80yFW": "desktopmodals-versionStatus-container", "WomzHWnDO_yFyjnkd49P": "desktopmodals-versionStatus-content", + "O7Pq_TuNMtSn0zigOncV": "desktopmodals-versionStatus-content", "sU_Wp3eWSzMrHnkUmbdI": "desktopmodals-versionStatus-copyButton", "R83hOohwVshnd6bEkDO4": "desktopmodals-versionStatus-copyButton", "YJMECPbMHWgMUs8RFdcV": "folder-folderPage-sectionWrapper", "zogFp9G1AEqb8AKOd5B0": "GenericModal", - "I3zkdnuhFFrZ1Rr1BJhb": "GenericModal__overlay", "ISA4xMVe89BiwxjIENN1": "GenericModal__overlay", - "cUwQnQoE3OqXqSYLT0hv": "link-subtle", + "I3zkdnuhFFrZ1Rr1BJhb": "GenericModal__overlay", "VUXMMFKWudUWE1kIXZoS": "link-subtle", + "uBpmNFia37U4nzmX": "link-subtle", "rC9xwL4gaksmshIjHbNn": "link-subtle", + "cUwQnQoE3OqXqSYLT0hv": "link-subtle", "iKgf4UDhbRTHxmZSuAEc": "lyrics-lyrics-adLeaderboardIsEnabled", - "L9xhJOJnV2OL5Chm3Jew": "lyrics-lyrics-background", - "o4GE4jG5_QICak2JK_bn": "lyrics-lyrics-background", "RFThkjLuWfPUO9shrMOZ": "lyrics-lyrics-background", + "o4GE4jG5_QICak2JK_bn": "lyrics-lyrics-background", + "nIWoY9ePLgi1am10": "lyrics-lyrics-background", + "L9xhJOJnV2OL5Chm3Jew": "lyrics-lyrics-background", + "bbJIIopLxggQmv5x": "lyrics-lyrics-container", "tr8V5eHsUaIkOYVw7eSG": "lyrics-lyrics-container", - "FUYNhisXTCmbzt9IDxnT": "lyrics-lyrics-container", "lofIAg8Ixko3mfBrbfej": "lyrics-lyrics-container", + "FUYNhisXTCmbzt9IDxnT": "lyrics-lyrics-container", "Q2RPoHcoxygOoPLXLMww": "lyrics-lyrics-contentContainer", + "ktJDHL_Wb5k6zJxf": "lyrics-lyrics-contentContainer", "gqaWFmQeKNYnYD5gRv3x": "lyrics-lyrics-contentContainer", "_EzvsrEJ47TI8hxzRoKx": "lyrics-lyrics-contentContainer", + "t_dtt9KL1wnNRvRO_y5L": "lyrics-lyrics-contentWrapper", "esRByMgBY3TiENAsbDHA": "lyrics-lyrics-contentWrapper", + "GmI3DMxKYRsaA5DM": "lyrics-lyrics-contentWrapper", "_Wna90no0o0dta47Heiw": "lyrics-lyrics-contentWrapper", - "t_dtt9KL1wnNRvRO_y5L": "lyrics-lyrics-contentWrapper", "iPBJpp5EVkRE24N6vmGA": "lyrics-lyrics-coverTopBar", "SaEkeiyzAoXnWVSDiTR7": "lyrics-lyrics-vocalRemoval", - "arY01KDGhWNgzlAHlhpd": "lyrics-lyricsContent-active", "EhKgYshvOwpSrTv399Mw": "lyrics-lyricsContent-active", + "RL7r4lsMHxMySdFr": "lyrics-lyricsContent-active", + "arY01KDGhWNgzlAHlhpd": "lyrics-lyricsContent-active", "_gZrl2ExJwyxPy1pEUG2": "lyrics-lyricsContent-active", "iq4cgi0YEKr6DGaTtzUj": "lyrics-lyricsContent-description", + "ve52ddYhoAd3Xf27Zxfm": "lyrics-lyricsContent-highlight", "MEjuIn9iTBQbnCqHpkoQ": "lyrics-lyricsContent-highlight", "aeO5D7ulxy19q4qNBrkk": "lyrics-lyricsContent-highlight", - "ve52ddYhoAd3Xf27Zxfm": "lyrics-lyricsContent-highlight", - "_LKG3z7SnerR0eigPCoK": "lyrics-lyricsContent-isInteractive", "vapgYYF2HMEeLJuOWGq5": "lyrics-lyricsContent-isInteractive", "FQYXZaa0aDIrse54YlYO": "lyrics-lyricsContent-isInteractive", - "NiCdLCpp3o2z6nBrayOn": "lyrics-lyricsContent-lyric", + "_LKG3z7SnerR0eigPCoK": "lyrics-lyricsContent-isInteractive", + "o69qODXrbOkf6Tv7fa51": "lyrics-lyricsContent-lyric", + "WnslfFBWTgOIUgNH": "lyrics-lyricsContent-lyric", "nw6rbs8R08fpPn7RWW2w": "lyrics-lyricsContent-lyric", + "NiCdLCpp3o2z6nBrayOn": "lyrics-lyricsContent-lyric", "BJ1zQ_ReY3QPaS7SW46s": "lyrics-lyricsContent-lyric", - "o69qODXrbOkf6Tv7fa51": "lyrics-lyricsContent-lyric", - "kGR_hu4tdj9PnUlSPaRL": "lyrics-lyricsContent-provider", + "XiH9KR6bhDwEFykV": "lyrics-lyricsContent-previous", + "Plu0zvuRv7kOQwsQ02cC": "lyrics-lyricsContent-previous", "LomBcMvfM8AEmZGquAdj": "lyrics-lyricsContent-provider", + "kGR_hu4tdj9PnUlSPaRL": "lyrics-lyricsContent-provider", + "NUBq_wlyuwoDUsSg": "lyrics-lyricsContent-provider", "adSF6zkjcpNDto9qhTdV": "lyrics-lyricsContent-provider", - "A3ohAQNHsDIMv2EM3Ytp": "lyrics-lyricsContent-text", - "BXlQFspJp_jq9SKhUSP3": "lyrics-lyricsContent-text", + "a8PTgYsfzc07Np9G": "lyrics-lyricsContent-text", "MmIREVIj8A2aFVvBZ2Ev": "lyrics-lyricsContent-text", - "HxblHEsl2WX2yhubfVIc": "lyrics-lyricsContent-unsynced", + "BXlQFspJp_jq9SKhUSP3": "lyrics-lyricsContent-text", + "A3ohAQNHsDIMv2EM3Ytp": "lyrics-lyricsContent-text", "SruqsAzX8rUtY2isUZDF": "lyrics-lyricsContent-unsynced", + "HxblHEsl2WX2yhubfVIc": "lyrics-lyricsContent-unsynced", + "Mnf9PkrVHsX90BNf": "lyrics-lyricsContent-upcoming", + "PSyA4iign083ZV6vOqPj": "lyrics-lyricsContent-upcoming", + "F2fAYJQIt4kVkkHt": "main-actionBar-ActionBar", "E4q8ogfdWtye7YgotBlN": "main-actionBar-ActionBar", "AKrNYHB1rFTyzXauXAtQ": "main-actionBar-ActionBar", - "eSg4ntPU2KQLfpLGXAww": "main-actionBar-ActionBarRow", + "mpdgC9UTkN5_fMm1pFiz": "main-actionBar-ActionBarContainer", + "qLlzLghnvcCySJ8T": "main-actionBar-ActionBarContainer", + "X4UVrDItX3sLtH0k": "main-actionBar-ActionBarPlayButtonContainer", + "IgyVZvzbDkuK666jJmrR": "main-actionBar-ActionBarPlayButtonContainer", + "Hln1Dms3QOQ7pvLw": "main-actionBar-ActionBarRow", "WWMs8ddvWoRMkjWcRY2W": "main-actionBar-ActionBarRow", - "K06ol8ltPT_atXE_JjUP": "main-actionBar-exploreButton", + "eSg4ntPU2KQLfpLGXAww": "main-actionBar-ActionBarRow", + "WeMORGvkBnszLgAA": "main-actionBar-exploreButton", "pRm6ynptw_JVaNIGT44l": "main-actionBar-exploreButton", - "CoLO4pdSl8LGWyVZA00t": "main-actionBarBackground-background", - "PkOz5g82CaoKk1J3GX0e": "main-actionBarBackground-background", + "K06ol8ltPT_atXE_JjUP": "main-actionBar-exploreButton", + "b436hk7_uCIXu4Rx": "main-actionBar-exploreButtonImageWrapper", + "m1WP3t8FDx99pPaAYkEp": "main-actionBar-exploreButtonImageWrapper", + "IGDA8ImPH90ykw4d": "main-actionBar-exploreButtonPlayIconWrapper", + "ujhZGNXRwXDzHIsLS9cP": "main-actionBar-exploreButtonPlayIconWrapper", + "aKjbPniwV_fjX_l2": "main-actionBar-shuffleButton", + "x_I4_QDM5MZhGKhtI6fb": "main-actionBar-shuffleButton", "us5p2PlqI8IJvxWYakKj": "main-actionBarBackground-background", - "GTAFfOA_w5vh_bDaGJAG": "main-actionButtons", - "NPvLJSRWfv1Joo8dF0D8": "main-actionButtons", + "PkOz5g82CaoKk1J3GX0e": "main-actionBarBackground-background", + "CoLO4pdSl8LGWyVZA00t": "main-actionBarBackground-background", "POrR9X4pOmhyjTr88Eag": "main-actionButtons", "P83IYsmHg0RH_STU1ENU": "main-actionButtons", + "NPvLJSRWfv1Joo8dF0D8": "main-actionButtons", + "GTAFfOA_w5vh_bDaGJAG": "main-actionButtons", + "x2zIrx9Juns9lNvs": "main-actionButtons", "WIGgdAaAzrXm7f_loaXi": "main-actionButtons-button", - "rRF_r7EyCHjZv058JACi": "main-addButton-active", + "YaU17q8G6eTc2eoKRwnL": "main-actionButtons-spacer", + "NA8gTZ4nPFEEcDYv": "main-actionButtons-spacer", "SPC4uzYXJmknkCGKpxHw": "main-addButton-active", - "Fm7C3gdh5Lsc9qSXrQwO": "main-addButton-button", + "rRF_r7EyCHjZv058JACi": "main-addButton-active", "RbsCNNM9a0WkFCM2UzBA": "main-addButton-button", + "Fm7C3gdh5Lsc9qSXrQwO": "main-addButton-button", "nzUMgk_XBD4uFFgA_LOI": "main-addButton-disabled", "GolAZOzxNIKbfZdIApC_": "main-addButton-helmet", "LuK6ZGXdwxSW92X3FodG": "main-addButton-zoomInAnimation", @@ -242,7 +278,7 @@ "tp8rO9vtqBGPLOhwcdYv": "main-avatar-avatar", "LKfKy7bXKmlkMEANVJMS": "main-avatar-avatar", "_4JsFsdrKufWvrC44apn": "main-avatar-avatar", - "Xz3tlahv16UpqKBW5HdK": "main-avatar-image", + "hdfu3dPuuRgPc8xx": "main-avatar-image", "Xgnpn7u01MvGEhekIGLT": "main-avatar-image", "yzLEMgdzXgAnIZZwMHO1": "main-avatar-piled", "ENopS3htmKy15q_QCR2j": "main-avatar-piledIcon", @@ -260,18 +296,18 @@ "ythYrlFSBm1P_ltHc8e1": "main-buddyFeed-buddyFeed", "t345U9kQY1pF704d79oY": "main-buddyFeed-closeButton", "fjCfUvlYgfexObyYQqFM": "main-buddyFeed-closeButton", - "eZCD3dqbvZaABVAhIniT": "main-buddyFeed-closeContainer", "Uoc48ia3df_vZxWCLFDB": "main-buddyFeed-closeContainer", - "AzO2ondhaHJntbGy_3_S": "main-buddyFeed-container", + "eZCD3dqbvZaABVAhIniT": "main-buddyFeed-closeContainer", "NmPFqFYcYmtFfPShmtj3": "main-buddyFeed-container", + "AzO2ondhaHJntbGy_3_S": "main-buddyFeed-container", "zuwPpHAEtIqahnB2u9NR": "main-buddyFeed-content", "dRp9nXvINyo7LOvJtuUC": "main-buddyFeed-content", "MObmOrMxbQpO10ebAtZA": "main-buddyFeed-emptyBuddyFeed", "gj9SOnCIzruGWAM5m3XO": "main-buddyFeed-friendActivity", "oWQvtc5QZlmB60A9ejJx": "main-buddyFeed-friendsFeedContainer", "nGInMrf62TCFD9MBnEzz": "main-buddyFeed-friendsList", - "NdQkQZhcYIEcJnRdAYcQ": "main-buddyFeed-header", "vJNLkecIsGhwDaslvslX": "main-buddyFeed-header", + "NdQkQZhcYIEcJnRdAYcQ": "main-buddyFeed-header", "BeABJha8PrxMcJmlBzcH": "main-buddyFeed-headerTitle", "tli6RLZf7DdPtClCKK6_": "main-buddyFeed-link", "n6rSk6R7nfmSGSgTRR5_": "main-buddyFeed-loadingFriends", @@ -296,29 +332,39 @@ "P7j2kCLc27vLybuzy5XB": "main-buddyFeed-usernameAndTimestamp", "LunqxlFIupJw_Dkx6mNx": "main-card-card", "_hPU2Qo7dicv7cnikDRl": "main-card-card", - "aAYpzGljXQv1_zfopxaH": "main-card-cardContainer", "RKstfK7T5nPbsDOYT6sT": "main-card-cardContainer", + "RPV24T758a0OhKtZ": "main-card-cardContainer", "tsv7E_RBBw6v0XTQlcRo": "main-card-cardLink", "oboNtEJNVzUoiaCWZRti": "main-card-cardLink", - "E1N1ByPFWo4AJLHovIBQ": "main-card-cardMetadata", + "ocMpUIgUOBeGMwNIiEDv": "main-card-cardMetadata", + "LISrKvt3ohgYQtg_": "main-card-cardMetadata", "K2GmhKpSMGL9aDJbOJrD": "main-card-cardMetadata", + "E1N1ByPFWo4AJLHovIBQ": "main-card-cardMetadata", + "qIa0uoOuauQH5s99": "main-card-cardMetadataWrapper", + "rDjuTujS6qfRKt4apIMQ": "main-card-cardMetadataWrapper", + "mGpHyHUUZ0wzRQEv": "main-card-cardTitle", "xHz124sSHSCYHecLCTfi": "main-card-cardTitle", "sq_3oR2TTWUK3HEVWaxx": "main-card-cardTitle", + "UTAdrJMU_kwRYbxi": "main-card-cardTitleLink", + "Szfh3AX4vGXxz0BQw5Uw": "main-card-cardTitleLink", "w9Tpa4Y111UM5u1WMkEl": "main-card-DownloadStatusIndicator", "vCaVlmqbg5B36V6PzUsm": "main-card-DownloadStatusIndicator", "XiVwj5uoqqSFpS4cYOC6": "main-card-draggable", "kpO5z7v_Nr22lge440TY": "main-card-hero", - "xBV4XgMq0gC5lQICFWY_": "main-card-imageContainer", + "YR9YVGItxfIgAZje": "main-card-imageContainer", "YnehZkoE2hpA5Tniju8J": "main-card-imageContainer", - "NH6UaoYYe47eIHA2Rmal": "main-card-imageContainerOld", + "xBV4XgMq0gC5lQICFWY_": "main-card-imageContainer", "xxLDW4qlPuNbzB9jIJKc": "main-card-imageContainerOld", - "AYwATC_zEPwCkmO1yc8R": "main-card-imageContainerSkeleton", + "NH6UaoYYe47eIHA2Rmal": "main-card-imageContainerOld", "DcLEXCfwMp91VNH5R4m9": "main-card-imageContainerSkeleton", + "AYwATC_zEPwCkmO1yc8R": "main-card-imageContainerSkeleton", "UB3cP9wsqoAMAHaeBGDt": "main-card-imagePlaceholder", - "r9Oj1LabijReMkOyeUxw": "main-card-newEpisodeIndicator", "XpvI6Yl46lYYdMY6SnvK": "main-card-newEpisodeIndicator", + "r9Oj1LabijReMkOyeUxw": "main-card-newEpisodeIndicator", "woJQ5t2YiaJhjTv_KE7p": "main-card-PlayButtonContainer", + "qpns1iHTAt8rMNnK": "main-card-PlayButtonContainer", "EFrqkoAHdmfRItUj8H8H": "main-card-PlayButtonContainer", + "khD_dnfwxwd4HF20": "main-card-PlayButtonContainerVisible", "zuKTW9yEI9rToECOcWG3": "main-card-PlayButtonContainerVisible", "_0rtnZ9bGhwcfS5kspzw": "main-card-PlayButtonContainerVisible", "iwsv8i7rNxA2c_VvC4CO": "main-card-type", @@ -329,8 +375,11 @@ "nk6UgB4GUYNoAcPtAQaG": "main-cardHeader-text", "yYflTYbufy7rATGQiZfq": "main-cardImage-circular", "SKJSok3LfyedjZjujmFt": "main-cardImage-image", - "g4PZpjkqEh5g7xDpCr2K": "main-cardImage-imageWrapper", + "whMS0fh9Ar4I_GaP": "main-cardImage-image", + "Z3N2sU3PRuY4NgvdEz55": "main-cardImage-image", + "P0DCrcBH45YVGZwP": "main-cardImage-imageWrapper", "mKWCDBYvel1BrZvMNY09": "main-cardImage-imageWrapper", + "g4PZpjkqEh5g7xDpCr2K": "main-cardImage-imageWrapper", "qucSNjx66ofSGZDzCuEk": "main-cardSubHeader-isHero", "Za_uNH8nTZ0qCuIqbPLZ": "main-cardSubHeader-root", "RArlOXg8S6l3NgRKrGsO": "main-cardSubHeader-text", @@ -346,28 +395,36 @@ "HqYq0HYtZvHn1QGqPBoz": "main-confirmDialog-buttonContainer", "RVgHI2ejYct8LjT1AO7m": "main-confirmDialog-container", "f2wxfjDHQON3z6amVbrW": "main-confirmDialog-container", - "m0yIuS1Q6XRA5R4PNEhl": "main-confirmDialog-overlay", "Z2BqWbMx6LJjXzVWDAbZ": "main-confirmDialog-overlay", - "gQoa8JTSpjSmYyABcag2": "main-connectBar-connectBar", + "m0yIuS1Q6XRA5R4PNEhl": "main-confirmDialog-overlay", + "MJcZuMYH0IEPIf2A": "main-connectBar-connectBar", "UCkwzKM66KIIsICd6kew": "main-connectBar-connectBar", + "gQoa8JTSpjSmYyABcag2": "main-connectBar-connectBar", + "pggKHkbEjlYCiHC7": "main-connectBar-connected", "T3hkVxXuSbCYOD2GIeQd": "main-connectBar-connected", "DOemiVbX4CbcfgSDqiiJ": "main-connectBar-connected", "GcHojieewpdN1c8vbtwk": "main-connectBar-connecting", + "Uzc0j2Fg8Q2G2aZT496U": "main-connectBar-icon", + "aT0jROEYoR4s3He9": "main-connectBar-icon", + "tKA9_KY4xdgQZpu5": "main-connectBar-textButton", + "VKMErN48DgY0bdUM451g": "main-connectBar-textButton", "KL8t9WB65UfUEPuTFAhO": "main-content-view", "Cm3jbLBimhqdYEcNTVPj": "main-contextMenu-addToPlaylistSubtitle", "OVv1uDz67TLurN8o6LtQ": "main-contextMenu-addToPlaylistTitle", "EyDGMdJOp8ktTzmRFcQM": "main-contextMenu-clearButton", + "Y98_oiegQgSpY_o7hoKG": "main-contextMenu-disabled", "pzkhLqffqF_4hucrVVQA": "main-contextMenu-disabled", "jJzb9peSGYsUDKbc5QBy": "main-contextMenu-disabled", - "Y98_oiegQgSpY_o7hoKG": "main-contextMenu-disabled", - "NmbeQabkSLXf0mTAhSLl": "main-contextMenu-dividerAfter", - "pXsnH0sMlWUGBffe24cr": "main-contextMenu-dividerAfter", "yO0rvyTlM0Hu4iDIycZE": "main-contextMenu-dividerAfter", + "pXsnH0sMlWUGBffe24cr": "main-contextMenu-dividerAfter", + "NmbeQabkSLXf0mTAhSLl": "main-contextMenu-dividerAfter", + "noRWQA3grBYNT5QG": "main-contextMenu-dividerAfter", "baIGYewvFQfSAOWmZURZ": "main-contextMenu-dividerAfter", "QgtQw2NJz7giDZxap2BB": "main-contextMenu-dividerBefore", + "jh5Yq5ylGtEpGtbz1UNg": "main-contextMenu-dividerBefore", "hYwu7ZpcbQIP6iM5fzAu": "main-contextMenu-dividerBefore", + "EnQEoJ0Iq3oE3Rq2": "main-contextMenu-dividerBefore", "a18VwKy6bTWgj2tAWVmB": "main-contextMenu-dividerBefore", - "jh5Yq5ylGtEpGtbz1UNg": "main-contextMenu-dividerBefore", "pc7Mq0FHh8Nlho4sOJH7": "main-contextMenu-expandButton", "IErtLy9qyhR17riTrzYh": "main-contextMenu-expanded", "qCnh1KNFmroitPazoXOc": "main-contextMenu-expandRight", @@ -376,57 +433,69 @@ "zfZEbT8RJbcAg13pTMDl": "main-contextMenu-filterInputFullWidth", "eG930DCaQXDFqjhxRGIs": "main-contextMenu-filterPlaylistSearch", "i8EjndRQjYlli0aLGYEm": "main-contextMenu-filterPlaylistSearchContainer", + "NYplcvf1o79tewx0Wc83": "main-contextMenu-findContainer", + "wiVBPRhNfAUlaN7O": "main-contextMenu-findContainer", "M0E2Al6URHV3iyoDbvi_": "main-contextMenu-highlightedText", "uEPiT_llP0oFNDYu_QZR": "main-contextMenu-loadingContainer", "ibA08TpSVrM0wThmotVd": "main-contextMenu-loadingContainer", + "wlb3dYO07PZuYfmNfmkS": "main-contextMenu-menu", "SboKmDrCTZng7t4EgNoM": "main-contextMenu-menu", - "k4sYYpEpX2f7RMAPHv3F": "main-contextMenu-menu", + "glp7Ah4Cywoy2Q6n": "main-contextMenu-menu", "NbcaczStd8vD2rHWwaKv": "main-contextMenu-menu", - "wlb3dYO07PZuYfmNfmkS": "main-contextMenu-menu", "LJej9EszIMJShPMMExpj": "main-contextMenu-menu", + "k4sYYpEpX2f7RMAPHv3F": "main-contextMenu-menu", "re2d5HDzt6T4XBgqcBhi": "main-contextMenu-menuHeading", "qUeWph4VP9DwR4xOfabh": "main-contextMenu-menuHeading", - "DuEPSADpSwCcO880xjUG": "main-contextMenu-menuItem", - "GqvHlGax1jo6vO9D0wHH": "main-contextMenu-menuItem", + "yqG4N5YYcY4uEujt": "main-contextMenu-menuItem", + "ZTmkuXOdPbjhHuLg5How": "main-contextMenu-menuItem", "rQ6LXqVlEOGZdGIG0LgP": "main-contextMenu-menuItem", "jzMBaEByD6M9xRmS9mv8": "main-contextMenu-menuItem", - "ZTmkuXOdPbjhHuLg5How": "main-contextMenu-menuItem", + "GqvHlGax1jo6vO9D0wHH": "main-contextMenu-menuItem", + "DuEPSADpSwCcO880xjUG": "main-contextMenu-menuItem", "wC9sIed7pfp47wZbmU6m": "main-contextMenu-menuItemButton", + "KzLH25pAEr43wpSc": "main-contextMenu-menuItemButton", "SN9k988q2Seb_joCaEny": "main-contextMenu-menuItemButton", - "mWj8N7D_OlsbDgtQx5GW": "main-contextMenu-menuItemButton", "niXChlbt7kxslMUdfwu9": "main-contextMenu-menuItemButton", + "mWj8N7D_OlsbDgtQx5GW": "main-contextMenu-menuItemButton", "dx1wWcqtuxz4HubHAyh_": "main-contextMenu-menuItemButton", + "tT_JypfxNakuY1jHgyBN": "main-contextMenu-menuItemButtonDisabled", + "ZjUuEcrKk8dIiPHd": "main-contextMenu-menuItemIconWrapper", + "Ewi6k41lmVvG1mxXoCx4": "main-contextMenu-menuItemIconWrapper", + "yjdsntzei5QWfVvE": "main-contextMenu-menuItemLabel", + "qUnVdUHbBFoYmLhT0_OC": "main-contextMenu-menuItemLabel", "PDPsYDh4ntfQE3B4duUI": "main-contextMenu-menuItemLabel", "ctAknuakI8idqf_S9tvT": "main-contextMenu-menuItemLabel", - "qUnVdUHbBFoYmLhT0_OC": "main-contextMenu-menuItemLabel", "llTZj1tjDr5ZnIOkKdHv": "main-contextMenu-menuItemStatic", "Cjga8q3TFvtKCu9qfm27": "main-contextMenu-menuItemStatic", "T2BaFHODss7KUUqG8Ryq": "main-contextMenu-overlay", "_PqnQJddudWUtaIxOzo7": "main-contextMenu-searchIcon", "dgc81JRAlkNQTsZae3Bz": "main-contextMenu-searchIconContainer", - "iGw72tLfCJI5bdpgf7JQ": "main-contextMenu-subMenuIcon", + "twYA62xkZMNWmd5FXvqi": "main-contextMenu-subMenuIcon", "IJYRnAk_0OE4UPQABQcl": "main-contextMenu-subMenuIcon", + "iGw72tLfCJI5bdpgf7JQ": "main-contextMenu-subMenuIcon", + "EA1tMtPbmisQKEPh": "main-contextMenu-subMenuIcon", "D7Eob912u_NzU8SZkYPA": "main-contextMenu-subMenuIcon", - "twYA62xkZMNWmd5FXvqi": "main-contextMenu-subMenuIcon", - "abJqsjKClbniwiTCZ7bC": "main-contextMenu-subMenuLeading", "wtEUrk4Sxa5e3QZhvbrs": "main-contextMenu-subMenuLeading", + "abJqsjKClbniwiTCZ7bC": "main-contextMenu-subMenuLeading", "X8yW2lJbFCQfV5GjoRwL": "main-contextMenu-tippy", - "nYdM55iHFByRTzJUmx9X": "main-contextMenu-tippy", "wRjmZh6e7KCL09qchtC9": "main-contextMenu-tippy", - "mph1R_QkS44EPi4lrhxd": "main-contextMenu-tippyEnter", + "nYdM55iHFByRTzJUmx9X": "main-contextMenu-tippy", "sNOxi993vqYCWYgo_N3H": "main-contextMenu-tippyEnter", - "v5IUMJNPJgol0273zQXD": "main-contextMenu-tippyEnterActive", + "mph1R_QkS44EPi4lrhxd": "main-contextMenu-tippyEnter", "z_29i58eLFLK50jAs_4a": "main-contextMenu-tippyEnterActive", + "v5IUMJNPJgol0273zQXD": "main-contextMenu-tippyEnterActive", "bkFQH4uasL3pXqN9eDSi": "main-contextMenu-tippyWrapper", "ExGt4YQfmcwvVFGM7tpN": "main-contextMenu-trigger", "rVxzkDirgkuRPv5V1HYF": "main-coverSlotCollapsed-container", "GQ5_gIWzIqAfBdmQm8yJ": "main-coverSlotCollapsed-container", + "VeRM5WDIEoz7GcxE": "main-coverSlotCollapsed-container", "cOaOhDavcy4wvE4llkwl": "main-coverSlotCollapsed-container", "qWcH8e2laY9sYOuCsOAx": "main-coverSlotCollapsed-expandButton", - "_9sCL61nGvQFXv2u02jXw": "main-coverSlotCollapsed-expandButton", "DUONoWRlKBDq3Ob0DXda": "main-coverSlotCollapsed-expandButton", - "IcyWfMS5VkeOhaI7OWIx": "main-coverSlotCollapsed-navAltContainer", + "_9sCL61nGvQFXv2u02jXw": "main-coverSlotCollapsed-expandButton", + "qxmc_oCKoJkRRjde": "main-coverSlotCollapsed-navAltContainer", "pE08KWp56_bcLi_DddD9": "main-coverSlotCollapsed-navAltContainer", + "IcyWfMS5VkeOhaI7OWIx": "main-coverSlotCollapsed-navAltContainer", "jtRqaoDIpIR6fEATUTyY": "main-coverSlotExpanded-container", "LROBF2WtGaVryVpVbSOu": "main-coverSlotExpanded-containerExpanding", "FegbnTtU6poHbemMzmBP": "main-coverSlotExpanded-enter", @@ -448,10 +517,10 @@ "h3qSlLeqACMUaASiKDHa": "main-devicePicker-devicesHeading", "zFqMGX3h5z2CO3f2uEiL": "main-devicePicker-devicesList", "MMjN8VsyKsAlLjFw4RMa": "main-devicePicker-devicesOtherNetworksHeading", - "AXkwHpGa_BG7Dy4v7o2V": "main-devicePicker-header", "ppzUk3Yw4Opnu95vCliV": "main-devicePicker-header", - "tm3lCLoFzk25Q_df5g5K": "main-devicePicker-heading", + "AXkwHpGa_BG7Dy4v7o2V": "main-devicePicker-header", "Zb1Lbll48zpXP9k_0m1N": "main-devicePicker-heading", + "tm3lCLoFzk25Q_df5g5K": "main-devicePicker-heading", "pXrRjiuo3ZpGwIvDAGzJ": "main-devicePicker-headingAction", "gz7xPnsQVKVMnQY2KjJs": "main-devicePicker-headingConnected", "SzZayhxQEuTPMFgNrLOG": "main-devicePicker-headingContent", @@ -459,8 +528,8 @@ "TJ5Bjp6vgnWVbh6mGN0n": "main-devicePicker-headingSubtitle", "fMNrKmRiR7PwVComoqfb": "main-devicePicker-headingSubtitle", "YY5a3DPS6akIYNqJdwn3": "main-devicePicker-headingTechIcon", - "E9qsFEgJZJnARk6hOCsj": "main-devicePicker-headingTitle", "wC7XHKBOz7EiENs4anj4": "main-devicePicker-headingTitle", + "E9qsFEgJZJnARk6hOCsj": "main-devicePicker-headingTitle", "WFRr38dFOxh75JyzSTj5": "main-devicePicker-indicator", "ntdp2T_przGKYzhwYSGz": "main-devicePicker-menuOpen", "LVp1auH4vtD3hvb1s4gl": "main-devicePicker-moreButton", @@ -471,8 +540,8 @@ "IdxmFS96lyE7c5uiTnLM": "main-devicePicker-sectionHeading", "Ci8IvJAESoDM_7t8FZWy": "main-devicePicker-sectionHeading", "HVCCFeUiHVwZVv74p34a": "main-devicePicker-sectionWrapper", - "bk509U3ZhZc9YBJAmoPB": "main-devicePicker-tooltip", "YIJxiTuPgMQav316cRqP": "main-devicePicker-tooltip", + "bk509U3ZhZc9YBJAmoPB": "main-devicePicker-tooltip", "b46WEWO1Sc_P4WK5RTg0": "main-devicePicker-tooltipArrow", "ItaYxdM8MiuHsa2VXuGQ": "main-devicePicker-tooltipContent", "CgzneMEIFUgv7Gxkf_pM": "main-devicePicker-tooltipContent", @@ -482,42 +551,48 @@ "gq10jri_eDZTLB32XBkA": "main-devicePicker-troubleshootingItemIcon", "OTuSSciCS3NJqFG8OKX2": "main-devicePicker-troubleshootingItemSubtitle", "cxUSS5WmBfLzDUfriVLA": "main-devicePicker-troubleshootingItemSubtitle", - "AN2rvWrkrs7UsnY12hL8": "main-devicePicker-troubleshootingList", "L6IYWy6qSZEiOh0pp4ZX": "main-devicePicker-troubleshootingList", + "AN2rvWrkrs7UsnY12hL8": "main-devicePicker-troubleshootingList", "Fyc_tPyPKyRIT_59VZ2B": "main-downloadClient-actionContainer", - "Foyk_HJx16yh22JYmQ56": "main-downloadClient-container", "UalNRoO1omHtEEniypS5": "main-downloadClient-container", + "Foyk_HJx16yh22JYmQ56": "main-downloadClient-container", "_w3sHVCUhYgvQar5WNHw": "main-dragAndDrop-dndImage", "vb8kSzIiZbfkwqWZROkW": "main-dragAndDrop-dndImageShelter", "zrvvPyoxE6wQNqnu0yWA": "main-dropDown-dropDown", "FQupgLGfMkp1dOYvUeuQ": "main-dropDown-dropDown", + "lu9EejNhmuMFF3oS": "main-dropDown-dropDown", "jmu6DFPvhxRl0wSfmv2O": "main-dropDown-isSafari", "dmKa90mTDwgspMBRMHNX": "main-dropDown-isSafari", "T596E9OFZtarwLZV_Opk": "main-duplicateTrackModal-buttonContainer", "AdF5F5BxQXGeWkfceg9A": "main-duplicateTrackModal-container", "XBJ5gUPLDUdlCFkWV7PZ": "main-duplicateTrackModal-description", "YDfNb_CMrwg2Z6FeLyNu": "main-duplicateTrackModal-title", + "hPmRytKYZ084yQEr": "main-editImage-buttonContainer", "MF2rLXp4d_JPNs2t0bbj": "main-editImage-buttonContainer", "CRPBj66L4XSUXfKxADb5": "main-editImage-buttonContainer", - "jN7ZUHc7IxpwvWsjb4jo": "main-editImageButton-copy", "vU48ZWHmoYvFFaF3r7US": "main-editImageButton-copy", + "jN7ZUHc7IxpwvWsjb4jo": "main-editImageButton-copy", + "KA2zBNxap6gZJM6M": "main-editImageButton-copy", "w3w0DS8atwcgOQJAKAV2": "main-editImageButton-icon", + "jwNDMX5tn0Uj2GQW": "main-editImageButton-icon", "L6kTuOfrnQA9bTuOLnhR": "main-editImageButton-icon", + "HoP2yw2uN4cejJkE": "main-editImageButton-image", "xfQXUkj6ThzTYbfF8ilt": "main-editImageButton-image", "OxzbfYatnoSAuGKOF1Up": "main-editImageButton-image", - "Usk1cPR7qbn7RudRN3td": "main-editImageButton-overlay", "VvRwJyaExuSefaBWg8FJ": "main-editImageButton-overlay", + "KlJ9FH4wXuAPgg8c": "main-editImageButton-overlay", + "Usk1cPR7qbn7RudRN3td": "main-editImageButton-overlay", "CdHBSRh3RhPwBNIBQtkD": "main-editImageButton-rounded", "PvesGiAqdV7dazP6Qulv": "main-embedWidgetGenerator-active", "M05dfNqaFoVZSopsDt0p": "main-embedWidgetGenerator-active", - "oBoIIlKrwQjxXpvOiOa0": "main-embedWidgetGenerator-closeBtn", "Yk_RYwNJgyasJs5coavS": "main-embedWidgetGenerator-closeBtn", + "oBoIIlKrwQjxXpvOiOa0": "main-embedWidgetGenerator-closeBtn", "U_nX_1rJoqQSWPJRE6zb": "main-embedWidgetGenerator-code", "BHz0zyI26ES05fSpuj26": "main-embedWidgetGenerator-code", "uUYNnjSt8m3EqVjsnHgh": "main-embedWidgetGenerator-container", "JvgoJtzDPOYDcX4dX4V7": "main-embedWidgetGenerator-container", - "IJHNf0vxPSbPE1egoG4N": "main-embedWidgetGenerator-content", "sBqvmlzlMok_45AcZJ0k": "main-embedWidgetGenerator-content", + "IJHNf0vxPSbPE1egoG4N": "main-embedWidgetGenerator-content", "dbKIqeJaR5jYCnOeeDJt": "main-embedWidgetGenerator-contentCode", "aOFEOf2KdtjWKoECSAtZ": "main-embedWidgetGenerator-contentCode", "VaChXV5vRmHB24UihCAG": "main-embedWidgetGenerator-contentFooter", @@ -528,24 +603,24 @@ "DCmP4sRAZe1WedTXGEoQ": "main-embedWidgetGenerator-contentIframe", "gIsqpLXuGzGw3zRTolrW": "main-embedWidgetGenerator-copyBtn", "cNyP6OMku0Y1k9V6I6YA": "main-embedWidgetGenerator-copyBtn", - "MnqXew54JWlqw2TG7vDK": "main-embedWidgetGenerator-copyWrapper", "xJroturP3VLDmhMVmH2Q": "main-embedWidgetGenerator-copyWrapper", + "MnqXew54JWlqw2TG7vDK": "main-embedWidgetGenerator-copyWrapper", "LeDataq3AAGozahFmBJL": "main-embedWidgetGenerator-crossSep", "l5aQDGKG1Ri23cOttct6": "main-embedWidgetGenerator-crossSep", "XPFcOWyZPRej4gH_M5XQ": "main-embedWidgetGenerator-darkControl", "ASWMZEQeEdTpnEB1Fe9c": "main-embedWidgetGenerator-darkControl", "tWZ0D98BTxSAFIgp4_tP": "main-embedWidgetGenerator-dimensionField", "Ojyzxzemrirh385czlR6": "main-embedWidgetGenerator-dimensionField", - "TSQvyxomq15adJzfCj3j": "main-embedWidgetGenerator-dimensionLabel", "Xw2qZXdaTtQmBi1C3EZW": "main-embedWidgetGenerator-dimensionLabel", - "dNNjNzGLV8tjhIuats54": "main-embedWidgetGenerator-dimensionsContainer", + "TSQvyxomq15adJzfCj3j": "main-embedWidgetGenerator-dimensionLabel", "E4pMVn86RUX_bli2MFc8": "main-embedWidgetGenerator-dimensionsContainer", + "dNNjNzGLV8tjhIuats54": "main-embedWidgetGenerator-dimensionsContainer", "bOIRpQiHUAEfp8ntStTo": "main-embedWidgetGenerator-header", "a7vBGhnLeEXqDyzDtLQm": "main-embedWidgetGenerator-header", "UrcPMgHLfxfJesFPrNvJ": "main-embedWidgetGenerator-loadingIndicator", "I95R5oKvjPlRocXK04uq": "main-embedWidgetGenerator-loadingIndicator", - "nT444OUxO6Vammm8GUVl": "main-embedWidgetGenerator-startAt", "SfLe8NXeES5ls02VNodp": "main-embedWidgetGenerator-startAt", + "nT444OUxO6Vammm8GUVl": "main-embedWidgetGenerator-startAt", "wVDmvGlxMo4VisD89XUI": "main-embedWidgetGenerator-terms", "RONPdb2SVzKH9L0MI7m9": "main-embedWidgetGenerator-terms", "mKjr_3b27jFzEoJBJYQw": "main-embedWidgetGenerator-theme", @@ -554,8 +629,8 @@ "dwoJTbHyEYJwtW9Sv_sL": "main-embedWidgetGenerator-themeDescription", "mBGUavHPMlD5mfAmiy5g": "main-embedWidgetGenerator-themeRadio", "aNmXQxrSRjmN6iz25rzV": "main-embedWidgetGenerator-themeRadio", - "bps2gHcEE9dOV6djVLWF": "main-embedWidgetGenerator-timestampInput", "sd7sAILjjhbR8VcoTtD1": "main-embedWidgetGenerator-timestampInput", + "bps2gHcEE9dOV6djVLWF": "main-embedWidgetGenerator-timestampInput", "h7qbIvm2yIiZVYqONyFG": "main-embedWidgetGenerator-tooltip", "fV9zaLzqxhNrDHsShUyv": "main-embedWidgetGenerator-tooltip", "xwNumE3szip6EhU74j3f": "main-embedWidgetGenerator-tooltipInitiator", @@ -564,127 +639,193 @@ "itbtoqlEj6jmbrhNsVgo": "main-embedWidgetGenerator-transControl", "gB6AcMixPEmdr96SUSBM": "main-embedWidgetGenerator-visible", "_7n3LwjOANBxLFcGULJMg": "main-embedWidgetGenerator-visible", - "P4iG24p5ttZDxkQJsiDb": "main-embedWidgetGenerator-widthField", "sP9LYlDy3KkYglIvABtL": "main-embedWidgetGenerator-widthField", + "P4iG24p5ttZDxkQJsiDb": "main-embedWidgetGenerator-widthField", + "wozXSN04ZBOkhrsuY5i2": "main-entityHeader-background", "MyW8tKEekj9lKQsviDdP": "main-entityHeader-background", "i_kMOBXfnweAkv8s97Yc": "main-entityHeader-background", - "wozXSN04ZBOkhrsuY5i2": "main-entityHeader-background", - "gHImFiUWOg93pvTefeAD": "main-entityHeader-backgroundColor", - "PeLrpasyfBW8ql_bmoAi": "main-entityHeader-backgroundColor", + "Emh6sVCoQHM3KQ4_": "main-entityHeader-backgroundColor", "XVz4BMGP5zAEE5p90mYK": "main-entityHeader-backgroundColor", + "PeLrpasyfBW8ql_bmoAi": "main-entityHeader-backgroundColor", + "jPP351nft5MI4inH": "main-entityHeader-backgroundColor", "NIEO4GCY9P49NrtTWlhP": "main-entityHeader-backgroundColor", "LzVINwqiLdMt_bgS5psf": "main-entityHeader-backgroundColor", + "gHImFiUWOg93pvTefeAD": "main-entityHeader-backgroundColor", "H0vWBc23fJOetym6NudG": "main-entityHeader-bold", "ta4ePOlmGXjBYPTd90lh": "main-entityHeader-circle", - "NXiYChVp4Oydfxd7rT5r": "main-entityHeader-container", + "XToncn4_mYHzhKy7": "main-entityHeader-container", "tmHIlrxw7_8S0lWnceeq": "main-entityHeader-container", + "NXiYChVp4Oydfxd7rT5r": "main-entityHeader-container", + "E6n9xytvHV4loKBr": "main-entityHeader-containerFlex", + "fIkrRf5Ty7rXl18NcUXA": "main-entityHeader-containerFlex", + "gmKBgPCnX785KDicbdJu": "main-entityHeader-containerNormal", + "C3zqtOMpn6kyeSzu": "main-entityHeader-containerNormal", + "fNnrSm2k2IonbI9c": "main-entityHeader-contentWrapper", + "muL8q38hxkp8U_hokrvB": "main-entityHeader-contentWrapper", "kuSGKO1BuKZ3fgas7_T7": "main-entityHeader-creatorButton", "NO_VO3MRVl9z3z56d8Lg": "main-entityHeader-creatorWrapper", + "P2bsavgZEZcO4YZh": "main-entityHeader-creatorWrapper", "bMmO2GCdsRzxLgVMSGvM": "main-entityHeader-creatorWrapper", "Ydwa1P5GkCggtLlSvphs": "main-entityHeader-detailsText", "n4hTP7ZeAOT_UQEkRUR7": "main-entityHeader-divider", - "k2I8B0MzXkAJ6_s8okM7": "main-entityHeader-gradient", - "sv5suqIPUwjgUF_BzM41": "main-entityHeader-gradient", + "ylc69bcQTwgJIbQy": "main-entityHeader-divider", + "oi4PTxu0hTut9JM0goui": "main-entityHeader-divider", "XUwMufC5NCgIyRMyGXLD": "main-entityHeader-gradient", + "sv5suqIPUwjgUF_BzM41": "main-entityHeader-gradient", + "k2I8B0MzXkAJ6_s8okM7": "main-entityHeader-gradient", "PUIUCdIR_h05BC2EDgIP": "main-entityHeader-gray", "RP2rRchy4i8TIp1CTmb7": "main-entityHeader-headerText", "c55UACltdzzDDQVfoF18": "main-entityHeader-headerText", + "NNafsIKjQaOOVJsH": "main-entityHeader-headerText", + "G3NmZakc4yGCaqGI": "main-entityHeader-image", "CmkY1Ag0tJDfnFXbGgju": "main-entityHeader-image", "bFtVZZnZgTWjjyzkPA5k": "main-entityHeader-image", - "_gLjHpwOxHFwo5nLM8hb": "main-entityHeader-imageContainer", + "NkEpAlqumQAgJJ1Y": "main-entityHeader-imageContainer", "D0QehabsepiTU_FhDZOQ": "main-entityHeader-imageContainer", + "_gLjHpwOxHFwo5nLM8hb": "main-entityHeader-imageContainer", "GoU8CT9Vm_TP_LyYJTsf": "main-entityHeader-imageContainerClickable", - "_osiFNXU9Cy1X0CYaU9Z": "main-entityHeader-imageContainerNew", "ylr6LvLf5L8yLiqErDES": "main-entityHeader-imageContainerNew", + "_osiFNXU9Cy1X0CYaU9Z": "main-entityHeader-imageContainerNew", + "KKJYrVjUviAZBtoy": "main-entityHeader-imageContainerNew", + "d9R2_RVOzg7VLgBl": "main-entityHeader-imageContainerWrapper", + "yfJeY2Xi99dPOe6fsIha": "main-entityHeader-imageContainerWrapper", "MclJZ2TMkhjdlqqQfmQd": "main-entityHeader-imagePlaceholder", "C7eyib8lynZrycU2Eh_A": "main-entityHeader-large", "k9LEjzjnGgVaEm3BvhAb": "main-entityHeader-largeHeader", "Jnt9_XezZCMkZmtgBtlL": "main-entityHeader-medium", "bQy_F9QVENlCAL8Qan9_": "main-entityHeader-mermaidGradientOverlay", + "Ybke9Ht_PucWrF_k": "main-entityHeader-metaData", + "JWDnag2Mepdf9QE0cNbg": "main-entityHeader-metaData", "Fb61sprjhh75aOITDnsJ": "main-entityHeader-metaData", "blfR_YJUsKUvdgTejBSb": "main-entityHeader-metaData", - "JWDnag2Mepdf9QE0cNbg": "main-entityHeader-metaData", "Yc6ftz7mCqbsTN4ha_ke": "main-entityHeader-metaDataAuthor", + "THaJQ5wfAvgbxh52": "main-entityHeader-metadataFullTime", + "ccqn2ecT3axu6r2mw0O5": "main-entityHeader-metadataFullTime", + "jQEzizWq_N0wiIS3": "main-entityHeader-metaDataText", + "eJbkaBhDfq9NfV5_QS8V": "main-entityHeader-metaDataText", + "FYDVy8qxy_QugEOZ": "main-entityHeader-metaDataText", "RANLXG3qKB61Bh33I0r2": "main-entityHeader-metaDataText", "NULzZTkd4w0TSVS4HKux": "main-entityHeader-metaDataText", + "dicrc5_MWcv63llC": "main-entityHeader-metaDataTextSubdued", "w1TBi3o5CTM7zW1EB3Bm": "main-entityHeader-metaDataTextSubdued", "gRs15KFAiBRH4FFbVvVr": "main-entityHeader-metaDataTextSubdued", "lD5bMttyrRNzsKch6ysa": "main-entityHeader-newEntityHeaders", "ByDYHUfzUKVgFwT5bTxp": "main-entityHeader-newEntriesIndicator", "RMDSGDMFrx8eXHpFphqG": "main-entityHeader-nonWrapped", + "yhlH4Dsjqw56Z58EOwvQ": "main-entityHeader-overlay", "xYgjMpAjE5XT05aRIezb": "main-entityHeader-overlay", "I0bVSxvqA3rm5HvciMap": "main-entityHeader-overlay", - "yhlH4Dsjqw56Z58EOwvQ": "main-entityHeader-overlay", - "dhq75ObRGjfBoBlz6clW": "main-entityHeader-overlay", "ehHB7Xk2_FPwYofqZ9k2": "main-entityHeader-overlay", + "ljaAbgp9aszmdTGe": "main-entityHeader-overlay", + "dhq75ObRGjfBoBlz6clW": "main-entityHeader-overlay", "YW4dYEf5ZuLzMfSjsqZk": "main-entityHeader-piled", "lp9Tfm4rsM9_pfbIE0zd": "main-entityHeader-pretitle", + "D7gk3EFom_wiytwH": "main-entityHeader-pretitle", "K4l4RICNZv9cxx9ag0u5": "main-entityHeader-pretitle", "YbDIZ84mS7tzHr1tgWE9": "main-entityHeader-roundedCorners", - "_EShSNaBK1wUIaZQFJJQ": "main-entityHeader-shadow", + "UqJwmz2XpIyCuYpb": "main-entityHeader-shadow", "VPnrctjNWVzCtyD7DZAG": "main-entityHeader-shadow", + "_EShSNaBK1wUIaZQFJJQ": "main-entityHeader-shadow", "D5X2O0j5dhTZJIkgH8mz": "main-entityHeader-small", "U1ypKorrS1qiWD1uQpAD": "main-entityHeader-smallHeader", "zjsGbrMpvbdA1HJ4rpfi": "main-entityHeader-smallMadeForIcon", + "VmDxGgs77HhmKczsLLBQ": "main-entityHeader-subtitle", + "OfUgH_tIc38f08wU": "main-entityHeader-subtitle", "gSx70PISJg6PSRafbOXd": "main-entityHeader-subtitle", "YxJ3zwH0R8K8njVQgMcw": "main-entityHeader-subtitleButton", "RmWKJG2G0fTrx11zKv_j": "main-entityHeader-theyFollowUs", "rEN7ncpaUeSGL9z0NGQR": "main-entityHeader-title", + "V6mQis7iO10znT_2": "main-entityHeader-title", "__NC_butOiOksXo2E3M1": "main-entityHeader-title", "wCkmVGEQh3je1hrbsFBY": "main-entityHeader-titleButton", + "Ilca7f6UmkkZP2dG": "main-entityHeader-titleButton", "vamOGPv1eDxaQS4qflcg": "main-entityHeader-titleButton", - "o4KVKZmeHsoRZ2Ltl078": "main-entityHeader-titleInner", "vdZMPj4FaYLWBoyRTzBQ": "main-entityHeader-titleInner", - "HcA9WjbLc4x02X8Ty0uO": "main-entityHeader-topbarContent", + "oxLp8IMmA_4VHPP8": "main-entityHeader-titleInner", + "o4KVKZmeHsoRZ2Ltl078": "main-entityHeader-titleInner", + "dzE1SbrBwow9BrTy": "main-entityHeader-topbarContent", "URymDGVda51vMGGEWsH1": "main-entityHeader-topbarContent", + "HcA9WjbLc4x02X8Ty0uO": "main-entityHeader-topbarContent", + "nEec1sjr6Yw7J8rR": "main-entityHeader-topbarContentFadeIn", "lro6AjUrZFH6zxjmOGg0": "main-entityHeader-topbarContentFadeIn", "ITu7QAFWEP4R0HMkDOMU": "main-entityHeader-topbarContentFadeIn", + "i_8d_eU6XnQ4GlE2": "main-entityHeader-topbarTitle", "G7zO58ORUHxcUw0sXktM": "main-entityHeader-topbarTitle", "BOjeWsq7rAtXYUaR86bq": "main-entityHeader-topbarTitle", "E0MlERsQ_zvY3BX7ZzPp": "main-entityHeader-uppercase", "L29j6que7xOiNSH_EOvQ": "main-entityHeader-wavesBackground", + "WVlD7lVMr86Z7z3F": "main-entityHeader-withBackgroundImage", "XPjEhsPyuOvMZ9NsDrxT": "main-entityHeader-withBackgroundImage", "DFuKwT5bvhKZoYr2gfZe": "main-entityHeader-withBackgroundImage", - "KAZD28usA1vPz5GVpm63": "main-genericButton-button", + "_EuXSrqTA94N1Evn": "main-genericButton-button", "pJ7RQa2Lqdi9JOvfKGAA": "main-genericButton-button", + "KAZD28usA1vPz5GVpm63": "main-genericButton-button", "RK45o6dbvO1mb0wQtSwq": "main-genericButton-buttonActive", + "v1kNYVvW5P8Wa4jS": "main-genericButton-buttonActive", "eFrQ8hr8h9gs3tIFTSWV": "main-genericButton-buttonActive", - "EHxL6K_6WWDlTCZP6x5w": "main-genericButton-buttonActiveDot", "WOIKebyj47byTnTaucoA": "main-genericButton-buttonActiveDot", + "EHxL6K_6WWDlTCZP6x5w": "main-genericButton-buttonActiveDot", + "S0nU7XTXYMOBcASz": "main-globalNav-browseButtonWrapper", + "Ckze8wMFNiDXk_f1IqjJ": "main-globalNav-browseButtonWrapper", "OomFKn3bsxs5JfNUoWhz": "main-globalNav-buddyFeed", + "zKQSfRjzvD8_Imog": "main-globalNav-contentRight", + "vRrKblnUUQV5eMbvUdv8": "main-globalNav-contentRight", + "IEulmRakQT_FgH43ov2a": "main-globalNav-contentRightSpacer", "VizXsWMIuNfKGN5pMyox": "main-globalNav-historyButtons", - "K1Ve0b6y28X7myMURsKS": "main-globalNav-historyButtons", "KkJlQWSJM6Cu2GJJSBQ7": "main-globalNav-historyButtons", + "K1Ve0b6y28X7myMURsKS": "main-globalNav-historyButtons", + "Jh8hR_VCPJ4cpwDm": "main-globalNav-historyButtons", "Z6t_8rA6LOBrX3huqRJG": "main-globalNav-historyButtonsContainer", - "pIM9jg__39NIpOvXG89b": "main-globalNav-historyButtonsContainer", "VphhNp8Q7R2U552LryhP": "main-globalNav-historyButtonsContainer", + "pIM9jg__39NIpOvXG89b": "main-globalNav-historyButtonsContainer", + "AYUEkKOEqksuTXmh": "main-globalNav-historyButtonsContainer", + "Il1Yz_P2hpTeJyNf9mi_": "main-globalNav-historyButtonsSpacer", + "ErjO4cqRWhY9rFZf": "main-globalNav-historyButtonsSpacer", + "ppjvheuqvs8mmcHwKkK5": "main-globalNav-historyButtonsWrapper", + "MvzElcNve78O4Oo8": "main-globalNav-historyButtonsWrapper", "rBX1EWVZ2EaPwP4y1Gkd": "main-globalNav-icon", "jdlOKroADlFeZZQeTdp8": "main-globalNav-link-icon", "dIfr5oVr5kotAi0HsIsW": "main-globalNav-link-icon", - "bWBqSiXEceAj1SnzqusU": "main-globalNav-navLink", - "obd_bH64Snp1npdw29XM": "main-globalNav-navLink", + "_Bg_zSvFrEutyacG": "main-globalNav-link-icon", "YEAFPNm87XbzS4sF5dDe": "main-globalNav-navLink", + "obd_bH64Snp1npdw29XM": "main-globalNav-navLink", + "kUHE42xvQVzWqabl": "main-globalNav-navLink", + "bWBqSiXEceAj1SnzqusU": "main-globalNav-navLink", "voA9ZoTTlPFyLpckNw3S": "main-globalNav-navLinkActive", + "Ufz621LN174DTRDis7EY": "main-globalNav-navLinkActive", + "kxv3By32Og8yDEXy": "main-globalNav-navLinkActive", "ETjtwGvAB4lRVqSzm8nA": "main-globalNav-navLinkActive", "AonZ39aVKATRTjY28Uww": "main-globalNav-navLinkActive", - "Ufz621LN174DTRDis7EY": "main-globalNav-navLinkActive", + "YsP3Gj4aJDYsaOC5": "main-globalNav-searchContainer", + "v8JHoFMumOgbCn8vsTvC": "main-globalNav-searchContainer", "QrpHSphgBSqzODEHqr_t": "main-globalNav-searchContainer", "lj0eGI6WEtfxFX7irC03": "main-globalNav-searchContainer", - "v8JHoFMumOgbCn8vsTvC": "main-globalNav-searchContainer", - "fksI89zEXwqKWm1O6sJm": "main-globalNav-searchInputContainer", "W9VXOkC43GP_7ULClgxQ": "main-globalNav-searchInputContainer", - "b7r2WRiu5f9Q99qmyreh": "main-globalNav-searchInputContainer", + "T0ufQRqPgIE3BmjD": "main-globalNav-searchInputContainer", "RpMCAf8TjF6HpQSI7hdx": "main-globalNav-searchInputContainer", - "PvsV2JgJRDME1vDn6IJL": "main-globalNav-searchInputSection", + "fksI89zEXwqKWm1O6sJm": "main-globalNav-searchInputContainer", + "b7r2WRiu5f9Q99qmyreh": "main-globalNav-searchInputContainer", + "SrfZ87xJMiJ7OYEB4Ziz": "main-globalNav-searchInputKBDWrapper", "tDFP1X98EgqQIPaumxRt": "main-globalNav-searchInputSection", - "_b3hhmbWtOY8_1M1mM1H": "main-globalNav-searchInputSection", + "PvsV2JgJRDME1vDn6IJL": "main-globalNav-searchInputSection", "NykkfCmZVlyRYNAqZg35": "main-globalNav-searchInputSection", + "eu6ObgEHE5owtzi_": "main-globalNav-searchInputSection", + "_b3hhmbWtOY8_1M1mM1H": "main-globalNav-searchInputSection", + "Upg3TU2JcLoODwAs": "main-globalNav-searchInputText", + "zIEAwziaGLAsvE5h": "main-globalNav-searchInputTextWrapper", + "al8f6ds34QJ4LZ74vbVP": "main-globalNav-searchInputTextWrapper", + "eoACZlxIIdCS_g00hynp": "main-globalNav-searchInputWrapper", + "DW2tFcaSSAWw9twn": "main-globalNav-searchInputWrapper", "W02pQCvfy5Bin7z4EAzo": "main-globalNav-searchSection", - "gj5VcIUC9oD2p4BsxzGE": "main-globalNav-searchSection", "jGghIqFVK6VrBUP9FLIq": "main-globalNav-searchSection", + "gj5VcIUC9oD2p4BsxzGE": "main-globalNav-searchSection", + "CJFYJUHifjAise1k": "main-globalNav-searchSection", "soGhxDX6VjS7dBxX9Hbd": "main-gridContainer-fixedWidth", + "YR7WOlf_lck48w4l": "main-gridContainer-gridContainer", "iKwGKEfAfW7Rkx2_Ba4E": "main-gridContainer-gridContainer", "dZZDxz44v5EOD33wbCZ3": "main-gridContainer-gridContainer", + "iOYHTG9ncL3GLrdb": "main-gridContainer-gridContainerMargin", + "jTlip_2p9QBKtt5Po88H": "main-gridContainer-gridContainerMargin", "PmW2UCL9vlTcNPD7J0KJ": "main-gridContainer-uniformRowHeight", "HkbHLcqgUfXruL5xVi28": "main-heroCard-card", "_gB1lxCfXeR8_Wze5Cx9": "main-heroCard-cardLink", @@ -693,28 +834,39 @@ "NkDkQMd75JY5xes9xFVe": "main-heroCard-isDownloadable", "liYe8rZ0FEQBy8j8XGJH": "main-heroCard-isPlaying", "pgwIORyBdf4nbb4G5_Jx": "main-heroCard-PlayButtonContainer", - "I3EivnXTjYMpSbPUiYEg": "main-home-content", "ZLSAuA1tn0bSdQRwhhj6": "main-home-content", - "Le0q6vXGEvilJEjOqgF9": "main-home-content", "YDYIuDcqNWY3gq9hxh5P": "main-home-content", + "uwh85sg6FQGiXW5B": "main-home-content", + "Le0q6vXGEvilJEjOqgF9": "main-home-content", + "I3EivnXTjYMpSbPUiYEg": "main-home-content", "zbU90jX5VWUhVlpUda7B": "main-home-filterChipsContainer", + "x_HLN829yDsvJDgl": "main-home-filterChipsContainer", "cj6vRk3nFAi80HSVqX91": "main-home-filterChipsContainer", "c8Z2jJUocJTdV9g741cp": "main-home-filterChipsContainer", "rX_OmqCngvY5ZCoYBZgb": "main-home-filterChipsSection", + "kRkvH3JcI5sYgH6J": "main-home-filterChipsSection", "hIFR8WDm_54EEIa1gwpC": "main-home-filterChipsSection", "aBTcK0jHBextE7fGnKiw": "main-home-filterChipsSection", + "MViMHJvcIZ6RxUXEeLSf": "main-home-filterChipsSectionActive", + "LK4YPhxoztYlar6E": "main-home-filterChipsSectionActive", "uIJTvxFOg2izOY7aRRiU": "main-home-home", - "HsbczDqu9qjcYr7EIdHR": "main-home-homeHeader", "S4OmZ_IZexmZ5dasPqW5": "main-home-homeHeader", + "Q7ciR0kAsukiCprc": "main-home-homeHeader", + "HsbczDqu9qjcYr7EIdHR": "main-home-homeHeader", "HnVkTECZ2a98QALFTkdq": "main-home-homeHeader", "DQRst2WAECYq2xsrsPRA": "main-home-isOffline", "QbD9zl7z3AhEQu_TGmo8": "main-home-subfeedSection", "_kVOt2H6WxXzURx2FRLM": "main-home-withAds", - "LBM25IAoFtd0wh7k3EGM": "main-image-image", + "L7jLHC4iWwoShHzX": "main-image-image", + "obD7rdENNc2n3fC0": "main-image-image", "mMx2LUixlnN_Fu45JpFB": "main-image-image", + "LBM25IAoFtd0wh7k3EGM": "main-image-image", "Yn2Ei5QZn19gria6LjZj": "main-image-loaded", + "qIwhHcbG780QDz68": "main-image-loaded", "PgTMmU2Gn7AESFMYhw4i": "main-image-loaded", "yOKoknIYYzAE90pe7_SE": "main-image-loading", + "E1Cm2thXvhsxyhom": "main-image-rounded", + "AZXSqigfbEKLSnNVm1g7": "main-image-rounded", "wcftliF4QjZKB1CYgEON": "main-imagePicker-fileInput", "IgNI7rYsyjJ5_Xtpap4a": "main-imagePicker-image", "IuU_JLhFTfKPXfDkmAaF": "main-keyboardShortcutsHelpModal-closeBtn", @@ -730,8 +882,8 @@ "X871RxPwx9V0MqpQdMom": "main-leaderboardComponent-container", "Nd_DeCpszONzyaLe5Wd1": "main-likedSongsButton-likedSongsIcon", "BuzoTjBZd1UqCn6DmFJr": "main-loadingIndicator-circle", - "HKamyJi9H31s99erfVyG": "main-loadingIndicator-loadingIcon", "jM1dnq2_qjViaXxa6WD7": "main-loadingIndicator-loadingIcon", + "HKamyJi9H31s99erfVyG": "main-loadingIndicator-loadingIcon", "K7fGF95OD9aI3zdYnFXg": "main-loadingPage-container", "AcuplATLhi6LNeu6_PK7": "main-loadingPage-container", "y7xcnM6yyOOrMwI77d5t": "main-lyricsCinema-container", @@ -744,6 +896,7 @@ "WvLkmOVB2R2vzI2ibR_r": "main-navBar-downloadItem", "RSg3qFREWrqWCuUvDpJR": "main-navBar-entryPoints", "WJsKJXEbycxxq8OcGHM1": "main-navBar-logo", + "zOQ0BU6AULAqd7Qd": "main-navBar-mainNav", "sqKERfoKl4KwrtHqcKOd": "main-navBar-mainNav", "lYpiKR_qEjl1jGGyEvsA": "main-navBar-mainNav", "F2o99ns3FQFoDThE7QiV": "main-navBar-mainNav", @@ -773,32 +926,42 @@ "_XeODCkWznZi5csbdPAe": "main-notificationBubble-withTopRightPointer", "AOaoydTb5lrGytHbTAAy": "main-notificationBubbleContainer-NotificationBubbleContainer", "wh7q2LxxjhyXLJvxRQGG": "main-nowPlayingBar-buddyFeedIcon", - "E526E3G50lCRjDpGVG5B": "main-nowPlayingBar-center", - "P4eSEARM2h24PZxMHz1T": "main-nowPlayingBar-center", "sVv2OQORCQ4kf6iKfUTF": "main-nowPlayingBar-center", - "fFvsrUhS_NiwbMFmj0fB": "main-nowPlayingBar-container", - "GD2gbRtcs5dOjMGAM_Y4": "main-nowPlayingBar-container", + "bGZUhy7AJlUgdvzB": "main-nowPlayingBar-center", + "P4eSEARM2h24PZxMHz1T": "main-nowPlayingBar-center", + "E526E3G50lCRjDpGVG5B": "main-nowPlayingBar-center", + "Q2n2bdBXy28oQWoC": "main-nowPlayingBar-container", "yglmI5m3fCc8baD1Kwdw": "main-nowPlayingBar-container", + "GD2gbRtcs5dOjMGAM_Y4": "main-nowPlayingBar-container", + "fFvsrUhS_NiwbMFmj0fB": "main-nowPlayingBar-container", "RtrMo_s0acvzbSRLovVW": "main-nowPlayingBar-enter", "D4el1GTrNd7l_TFyRGO8": "main-nowPlayingBar-enterActive", "HOZJyu9UCJodOQSVvduV": "main-nowPlayingBar-enterDone", - "mwpJrmCgLlVkJVtWjlI1": "main-nowPlayingBar-extraControls", + "vfI4ba4_zTQuZC5K": "main-nowPlayingBar-extraControls", "NClDR4CG_J8nuqy2uGn9": "main-nowPlayingBar-extraControls", + "mwpJrmCgLlVkJVtWjlI1": "main-nowPlayingBar-extraControls", "tT6x7wFZmjldiCeh6HzO": "main-nowPlayingBar-isAnonymous", - "KkmXuF5h8DmzQUwGhT2u": "main-nowPlayingBar-left", - "OgkbKIVYE_mrNpYESylB": "main-nowPlayingBar-left", "snFK6_ei0caqvFI6As9Q": "main-nowPlayingBar-left", + "ZJCXNvTeX4pAS9rt": "main-nowPlayingBar-left", + "OgkbKIVYE_mrNpYESylB": "main-nowPlayingBar-left", + "KkmXuF5h8DmzQUwGhT2u": "main-nowPlayingBar-left", + "WWplj9LLqTE6whKO": "main-nowPlayingBar-lyricsButton", "Xmv2oAnTB85QE4sqbK00": "main-nowPlayingBar-lyricsButton", "OB4Vm26X_3tYkgqkKrDm": "main-nowPlayingBar-lyricsButton", - "DLwH4stkW06ZbHFstpq0": "main-nowPlayingBar-nowPlayingBar", - "OCY4jHBlCVZEyGvtSv0J": "main-nowPlayingBar-nowPlayingBar", + "MXhGeOdiXGYlGOiX": "main-nowPlayingBar-nowPlayingBar", "udArIAqnfUQPQew2VAns": "main-nowPlayingBar-nowPlayingBar", + "OCY4jHBlCVZEyGvtSv0J": "main-nowPlayingBar-nowPlayingBar", + "DLwH4stkW06ZbHFstpq0": "main-nowPlayingBar-nowPlayingBar", "Y6soMMBElF7EQDbJv8Xb": "main-nowPlayingBar-right", - "jOKLc29vP0Bz1K0TsDtX": "main-nowPlayingBar-right", + "S_MKpXvc3UwY8ZHX": "main-nowPlayingBar-right", "pLifNBuHRY8cZkZyEqwL": "main-nowPlayingBar-right", + "jOKLc29vP0Bz1K0TsDtX": "main-nowPlayingBar-right", "uVRRxsH6RKj3Dzhl40Ok": "main-nowPlayingBar-topButton", - "ExuDUBJ7bk8vT6INnm9F": "main-nowPlayingBar-volumeBar", + "UvUF0L27HEYHtiwO": "main-nowPlayingBar-volumeBar", "niz7IVQi5Id4arbkuPmM": "main-nowPlayingBar-volumeBar", + "ExuDUBJ7bk8vT6INnm9F": "main-nowPlayingBar-volumeBar", + "tDBAoTKiCjMk1wxv": "main-nowPlayingView-aboutArtist", + "AdMqbnDlLVSq2DnuvUmY": "main-nowPlayingView-aboutArtist", "U3kNTAyv7lhF9nBuwgB6": "main-nowPlayingView-aboutArtist", "muTn937T_T9l0xqjlN8A": "main-nowPlayingView-aboutArtistBio", "Tk7SUvI_ULiUuC5gZsIx": "main-nowPlayingView-aboutArtistButton", @@ -820,98 +983,193 @@ "yIPdY6L6pcwR4L5Xf0vY": "main-nowPlayingView-aboutArtistV2PlaceholderWrapper", "QkOkUShDYWFx5Cz40Bcn": "main-nowPlayingView-aboutArtistV2TextContent", "vkS_Ks0svKls4w2s2ppT": "main-nowPlayingView-aboutArtistV2Title", + "EDzygJybL8LJ8ZCX5DuX": "main-nowPlayingView-actionButton", + "lbWati3MHsENzvSv": "main-nowPlayingView-actionButton", + "quUmMvjSqAvrNZTu": "main-nowPlayingView-actionButtonContainer", + "ZLWIXz6OaS8rrrct": "main-nowPlayingView-actionButtonHidden", + "HidT_BOu0PWWsJxmA82S": "main-nowPlayingView-actionButtonHidden", + "Lrnk3OGgzbfojIXaPgmw": "main-nowPlayingView-actionButtonShow", + "KaJ7sz8SNcApVJVa": "main-nowPlayingView-actionButtonShow", "IgTMXVbZtqtZwu3GZASd": "main-nowPlayingView-artistOnTour", + "OIKulRJjkhI7tabq": "main-nowPlayingView-artistOnTour", + "zwI4VFbLH0vCqJU4wyNg": "main-nowPlayingView-artistOnTour", + "uZ2PKLein4giFEAs": "main-nowPlayingView-artistOnTourItem", + "G7Iy1rF5gVWMtmsJ5EDX": "main-nowPlayingView-artistOnTourItem", "uvIvZ4XqfEFs88BAPaI8": "main-nowPlayingView-artistOnTourItem", "svHFeMC3Ef_TpSdRyvsM": "main-nowPlayingView-artistOnTourShowAll", "QIuMX9iPlMiflBPUkrEQ": "main-nowPlayingView-container", "jtqtOeRP46XAlHWx4C0D": "main-nowPlayingView-content", - "aaFQbW0j0N40v_siz0kX": "main-nowPlayingView-contextItemInfo", "UUydeXMsXVZofB0YAOgm": "main-nowPlayingView-contextItemInfo", - "j9I5h3Z4o0fKNgI1fIjb": "main-nowPlayingView-coverArt", + "X8eqXqMjKs8yMGVw": "main-nowPlayingView-contextItemInfo", + "aaFQbW0j0N40v_siz0kX": "main-nowPlayingView-contextItemInfo", + "E9fQvMtlBDsjhB7U": "main-nowPlayingView-contextItemVisualEnhancement", + "ou5raFkBk5m4fBG4w9Q6": "main-nowPlayingView-contextItemVisualEnhancement", + "lZCogpVJ9VYr762A": "main-nowPlayingView-coverArt", "T5w6KXWFZ5aBsuquOADG": "main-nowPlayingView-coverArt", + "j9I5h3Z4o0fKNgI1fIjb": "main-nowPlayingView-coverArt", "zL6hQR4mukVUUQaa_7K1": "main-nowPlayingView-coverArtContainer", + "muznK3MRUjUec7Jo": "main-nowPlayingView-coverArtContainer", + "FyKX_3VME_oKotEj": "main-nowPlayingView-coverArtContainer", + "sb59T76Xcd92L_RhBcdz": "main-nowPlayingView-coverArtContainer", "pRIQxez4Q9UdpQsmrwGB": "main-nowPlayingView-coverArtContainer", + "QRSUcqO8y8LUmz0F": "main-nowPlayingView-coverArtSquare", + "n7vEqUVY6A5cfyi0W1Nt": "main-nowPlayingView-coverArtSquare", + "cE6aCTnm0oUUGjR0": "main-nowPlayingView-coverArtVisualEnhancement", + "DyIlapjoCthUuSOzmJGD": "main-nowPlayingView-coverArtVisualEnhancement", "l2PpoXJouAgqFCuNT3iB": "main-nowPlayingView-credits", + "qy8cKKS5c5Y24cTG": "main-nowPlayingView-credits", "G6WmxixPKmCYMNxmUNPT": "main-nowPlayingView-credits", + "Oilv2i7KsfcLFWmYa3kB": "main-nowPlayingView-creditsFirstGroup", + "YHGjum1ZcyUecZHa": "main-nowPlayingView-creditsFirstGroup", "g5zF2gHZOarew6ApvZB6": "main-nowPlayingView-creditsGroup", "kUyRPckYBgHDaJp8bmXi": "main-nowPlayingView-creditsHeader", + "oqeF2FeqF6EiapE0": "main-nowPlayingView-creditsShowAll", + "MWa0NhVSh7PShgCIptpl": "main-nowPlayingView-creditsShowAll", "bBldZtWu4QtzmrTfHOKm": "main-nowPlayingView-creditsShowAll", "PqjIyA05rhDaDg2S1qIQ": "main-nowPlayingView-creditsSource", "MPBLLykSgRJIlLSbQVgy": "main-nowPlayingView-gradient", "SfAYznqZyNk_AvvxIkUx": "main-nowPlayingView-header", + "xfsjC59pFlEJ3yNI": "main-nowPlayingView-headerButton", + "yiRHu4qsmlXpKcnFQsm2": "main-nowPlayingView-headerButton", + "zgLBLbwwAoVBtxJo": "main-nowPlayingView-headerButtonContainer", + "liw6Y_iPu2DJRwk10x9d": "main-nowPlayingView-headerButtonContainer", + "AOjfP4IUaWU1nKYE": "main-nowPlayingView-headerButtonWrapper", + "AGJLZe0JYBJYeRlmaeSx": "main-nowPlayingView-headerButtonWrapper", + "aqGpJi3W1ucmWcI3": "main-nowPlayingView-headerCloseButton", + "hd_Z8Pb4JtAMxw2K8S9G": "main-nowPlayingView-headerCloseButton", + "xjf0Pj3YnoegOkJUpaPS": "main-nowPlayingView-headerContainer", + "qnPIl9fdY2o_u8Hw": "main-nowPlayingView-headerContainer", + "PBCFekjvGMMtsjt1": "main-nowPlayingView-headerText", + "UJyfxXEQOZkLWoY3IYr7": "main-nowPlayingView-headerText", + "BS6ifqK01BxEFWq4tjgG": "main-nowPlayingView-headerTextWrapper", + "eEUtPccfpw1koKqB": "main-nowPlayingView-headerTextWrapper", + "QrZ1VrsZtmod5Bxz": "main-nowPlayingView-headerWrapper", + "ELBNLm3p55pH7fmnfdh7": "main-nowPlayingView-headerWrapper", + "Tg2uPdfqTEC8KNNe": "main-nowPlayingView-loadingSpinner", + "DAY_mZZlU6SlTALW5eFS": "main-nowPlayingView-loadingSpinner", "hzUuLPdH48AzgQun5NYQ": "main-nowPlayingView-lyricsContent", "KzMnBC9eFK8cAfcFTg9b": "main-nowPlayingView-lyricsControls", "I2WIloMMjsBeMaIS8H3v": "main-nowPlayingView-lyricsGradient", "N9Xjnxz8vGgWwbEBE5g7": "main-nowPlayingView-lyricsTitle", + "O0Nd1A1LVGMf7xi_": "main-nowPlayingView-mainContainer", + "ZWs_BNtabE4F1v34pU93": "main-nowPlayingView-mainContainer", + "mzBZbIt7NDzzTffimVhn": "main-nowPlayingView-mainWrapper", + "po8s7jl0kxg30Oe3": "main-nowPlayingView-mainWrapper", "wpJvLvrrnyP0_C7hLkqg": "main-nowPlayingView-merch", + "AdQSALznIQQQCT4l": "main-nowPlayingView-musicVideo", + "tB3JVNYttFlVC_oYVfjI": "main-nowPlayingView-musicVideo", + "aNo6XJSgmN8XrVF8GWY6": "main-nowPlayingView-musicVideoHeader", "n4_WcnoVeg2SeDJPWnKK": "main-nowPlayingView-nextInQueue", - "cIUedsmg_cTnTxvOYTKR": "main-nowPlayingView-nowPlayingGrid", + "Ivr71pATb3kHjmCm": "main-nowPlayingView-nowPlayingGrid", "XHoCGTR6RVHuq2o36icg": "main-nowPlayingView-nowPlayingGrid", + "cIUedsmg_cTnTxvOYTKR": "main-nowPlayingView-nowPlayingGrid", "fIpDXK7M3W0Bn3FgLSRe": "main-nowPlayingView-nowPlayingWidget", + "H_NURHJx32o_Tfti": "main-nowPlayingView-nowPlayingWidget", "ehLi5oxIfUbTLk2NPPB4": "main-nowPlayingView-nowPlayingWidget", + "mYwM4spazgHXMVmS": "main-nowPlayingView-onTourItemGrid", + "qPSeZQBGdMfGdWr9VgQ1": "main-nowPlayingView-onTourItemGrid", + "cIXhqtS1gknKWlB9": "main-nowPlayingView-onTourItemTime", + "nIfn2jDXgmIDwQhKsZLL": "main-nowPlayingView-onTourItemTime", + "mqt5apqYvBIhikzEzJbw": "main-nowPlayingView-onTourItemTitle", + "_PDGl8ewjcx7q8da": "main-nowPlayingView-onTourItemTitle", + "tdh8uXcbMwjkfYqs": "main-nowPlayingView-onTourItemVenue", + "FC7BJzgyb1PZUbzSKa9J": "main-nowPlayingView-onTourItemVenue", + "_XLGin3QEvEORDIg": "main-nowPlayingView-onTourTextContainer", + "Fmo9HWm3nF9gHCgK3LE0": "main-nowPlayingView-onTourTextContainer", + "giOSCPzY3ygh_7XU": "main-nowPlayingView-onTourTimeCard", + "HzFr0RR3h12KSHxTlDOJ": "main-nowPlayingView-onTourTimeCard", + "U0CfehPhmc8AfmCxs8WY": "main-nowPlayingView-onTourTimeDate", + "sV_TaGYdLdcVpCib": "main-nowPlayingView-onTourTimeDate", + "TLRSN_I034ceJR1S": "main-nowPlayingView-onTourTimeMonth", + "K64LiBufD_8PBknx9W40": "main-nowPlayingView-onTourTimeMonth", "PqL625rkFi7CBiMggYTP": "main-nowPlayingView-openQueue", + "AAYd0kPOMkjMIQD5": "main-nowPlayingView-openQueue", + "ZG_HULy2oBmGvHdo02HG": "main-nowPlayingView-openQueue", + "jopwK3Aj8es35ujg": "main-nowPlayingView-panel", + "zAvxP9ntNk6SsomFXWUv": "main-nowPlayingView-panel", "wkl1CJw1cTKpqlKDAiln": "main-nowPlayingView-panelOpenDiv", "byIN5OSjNcJHipcI9kuf": "main-nowPlayingView-playNext", "LT6lpp3S4Tx8VsbnPzuA": "main-nowPlayingView-playNextButton", "A4e013b7hUST0QPHFqKr": "main-nowPlayingView-playNextButtonIcon", "V6Fgup3wwQdhZVYVntrH": "main-nowPlayingView-playNextIcon", "qbOrWcMUhSri1nPkZLQA": "main-nowPlayingView-queue", + "lhB5KQbFP8BJIgvI": "main-nowPlayingView-queue", "ccC6ZoV_TBWVmq_wdgzc": "main-nowPlayingView-queue", + "oPf3qKGRkUM3T0bK": "main-nowPlayingView-queueItem", + "oqaIDmjIv0WQCkLh8hJQ": "main-nowPlayingView-queueItem", "Mj718TwbPAUi_iNAcsmz": "main-nowPlayingView-queueItem", "Nyxk_izrYbGecpgmtp91": "main-nowPlayingView-queueItemEntityImage", - "Ai_McRq9wJEYK21w8nX_": "main-nowPlayingView-section", "gXpVKubH7jLZ4sQ2CUBn": "main-nowPlayingView-section", - "EVqc6HChiM9pEqBYAiUE": "main-nowPlayingView-sectionHeader", + "ax9CMxA763c25wSn": "main-nowPlayingView-section", + "Ai_McRq9wJEYK21w8nX_": "main-nowPlayingView-section", "mdEMa1ZY6qt201KkKL0F": "main-nowPlayingView-sectionHeader", + "fWHCnIZLtjosK_LG": "main-nowPlayingView-sectionHeader", + "EVqc6HChiM9pEqBYAiUE": "main-nowPlayingView-sectionHeader", "gpDSOimnzH4zTJmE7UR5": "main-nowPlayingView-sectionHeaderSpacing", + "MWLidDQUomwI27KW": "main-nowPlayingView-sectionHeaderText", "zZdI03asKaUCNlbhjDAv": "main-nowPlayingView-sectionHeaderText", "BInqOrncCcclcBp4uBnY": "main-nowPlayingView-sectionHeaderText", + "a0PBEVgrzqIdU1IV": "main-nowPlayingView-trackInfo", "hfdkySA4kiUldFsPj9lD": "main-nowPlayingView-trackInfo", "fjCyBC5HnIDoDPrpbbv8": "main-nowPlayingView-trackInfo", - "BFR9Zt3zpL8BATBMiwQB": "main-nowPlayingWidget-coverArt", + "mD6MFF1cf5MA9Uhb": "main-nowPlayingWidget-actionButtonWrapper", + "qqAX5M23YurntqVJ_8Dt": "main-nowPlayingWidget-actionButtonWrapper", "vBMZGgINJ_BbsQM82LhK": "main-nowPlayingWidget-coverArt", + "BFR9Zt3zpL8BATBMiwQB": "main-nowPlayingWidget-coverArt", "bYHWD_eQ1jAh3sAKTHtr": "main-nowPlayingWidget-coverExpanded", - "deomraqfhIAoSB3SgXpu": "main-nowPlayingWidget-nowPlaying", "OhVah4L2N7DWZ8VnPhea": "main-nowPlayingWidget-nowPlaying", - "j96cpCtZAIdqxcDrYHPI": "main-nowPlayingWidget-trackInfo", + "dqWyEouuQRo9mcQA": "main-nowPlayingWidget-nowPlaying", + "deomraqfhIAoSB3SgXpu": "main-nowPlayingWidget-nowPlaying", + "VGcEsoPgSTYlP1bwQPD5": "main-nowPlayingWidget-plusButton", + "YImjRdEJ5XECMt4k": "main-nowPlayingWidget-plusButton", + "K35IDBMaSDY689DK": "main-nowPlayingWidget-plusButtonWrapper", + "CAVVGuPYPRDhrbGiFOc1": "main-nowPlayingWidget-plusButtonWrapper", + "KN5KA9u52qQprYjq": "main-nowPlayingWidget-trackInfo", "V98keH9h9rnepsa_qe_r": "main-nowPlayingWidget-trackInfo", + "j96cpCtZAIdqxcDrYHPI": "main-nowPlayingWidget-trackInfo", + "TD05RLGnZsMWrvDw": "main-page-footerContainer", + "Fzs1Gw606u66zPtoSEvC": "main-page-footerContainer", + "wsYZqQY15uw9XYpQ": "main-page-footerSectionWrapper", + "iVUgP6SAXy8vTN6TkX7o": "main-page-footerSectionWrapper", "fFv7yCuLuIO1dAGZHcVf": "main-pageErrorTemplate-errorBody", - "fDD5IxaW7WW8LZTlwzs4": "main-playbackBarRemainingTime-container", "npFSJSO1wsu3mEEGb5bh": "main-playbackBarRemainingTime-container", + "jYB3Yggec0UDIsZh": "main-playbackBarRemainingTime-container", "kQqIrFPM5PjMWb5qUS56": "main-playbackBarRemainingTime-container", + "fDD5IxaW7WW8LZTlwzs4": "main-playbackBarRemainingTime-container", "f4XfIkH9v3tBTnI8AEDj": "main-playButton-lockIcon", - "IeLnf2wUHVKqxhzBcBoM": "main-playButton-PlayButton", + "vIRREgHGvNoc_fRsISih": "main-playButton-PlayButton", + "pk3lz3TYlskuAfwV": "main-playButton-PlayButton", "PFgcCoJSWC3KjhZxHDYH": "main-playButton-PlayButton", "ix_8kg3iUb9VS5SmTnBY": "main-playButton-PlayButton", - "vIRREgHGvNoc_fRsISih": "main-playButton-PlayButton", + "IeLnf2wUHVKqxhzBcBoM": "main-playButton-PlayButton", "KOoUMuC7IxI_1Pi4r4m5": "main-playButton-primary", "VgweZbpfbMSfOcTeGNj_": "main-playButton-secondary", "D7HQ50jRBGU8qaAGHRTw": "main-playButton-transparent", "ke5Pf1zkbk0eGnRWZYyg": "main-playlistEditDetailsModal-albumCover", "jBtrrjZB6NApIt7dtMQD": "main-playlistEditDetailsModal-albumCover", - "CMQlNrl4E4TNHVowBoZ9": "main-playlistEditDetailsModal-characterCounter", "SHNkS_d5PbgJ6CgcYaUk": "main-playlistEditDetailsModal-characterCounter", - "MQQEonum615k8mGkliT_": "main-playlistEditDetailsModal-closeBtn", + "CMQlNrl4E4TNHVowBoZ9": "main-playlistEditDetailsModal-characterCounter", "qNP5_KI5WgVdKUUrdOk6": "main-playlistEditDetailsModal-closeBtn", - "PiyAiXdQULEnWAHP0tu1": "main-playlistEditDetailsModal-container", + "MQQEonum615k8mGkliT_": "main-playlistEditDetailsModal-closeBtn", "UJRUb6VMsdk5NZboCmg4": "main-playlistEditDetailsModal-container", - "CU0wnmWejIvyEsRRtSac": "main-playlistEditDetailsModal-content", + "PiyAiXdQULEnWAHP0tu1": "main-playlistEditDetailsModal-container", "fIsU1JbqyjMITbYOgJph": "main-playlistEditDetailsModal-content", - "_qRr3jb13hOiy1EvSL_r": "main-playlistEditDetailsModal-description", + "CU0wnmWejIvyEsRRtSac": "main-playlistEditDetailsModal-content", "aeeOEB8Rw3sgCRiOmHik": "main-playlistEditDetailsModal-description", + "_qRr3jb13hOiy1EvSL_r": "main-playlistEditDetailsModal-description", "lXzpMHpJSt7uRB1DXwen": "main-playlistEditDetailsModal-descriptionCharacterCounter", "hrJ75E6d_5JE_s_w75dA": "main-playlistEditDetailsModal-descriptionCharacterCounter", - "c0CddR8wF7kDxvU6uM8B": "main-playlistEditDetailsModal-descriptionTextarea", "s5cUBUk0EfYa2xMxSSPD": "main-playlistEditDetailsModal-descriptionTextarea", + "c0CddR8wF7kDxvU6uM8B": "main-playlistEditDetailsModal-descriptionTextarea", "B_4ndHDFJnCj4dxQmvKA": "main-playlistEditDetailsModal-descriptionTextareaWithPadding", - "g4NoSm4nlTuArQvfAaDa": "main-playlistEditDetailsModal-disclaimer", "krfRqxdeDAttst7COcD0": "main-playlistEditDetailsModal-disclaimer", - "R2w_sH83CJU9Yhnu0xyt": "main-playlistEditDetailsModal-header", + "g4NoSm4nlTuArQvfAaDa": "main-playlistEditDetailsModal-disclaimer", "u91SehceIJM9fyoWEn3Q": "main-playlistEditDetailsModal-header", - "UxrKbK6rUr4vmo6SmCab": "main-playlistEditDetailsModal-imageChangeButton", + "R2w_sH83CJU9Yhnu0xyt": "main-playlistEditDetailsModal-header", "ZKDvF1q4yO4yUkfI0rFS": "main-playlistEditDetailsModal-imageChangeButton", - "mtGn3ylACuEcnBDCuR2g": "main-playlistEditDetailsModal-imageDropDownButton", + "UxrKbK6rUr4vmo6SmCab": "main-playlistEditDetailsModal-imageChangeButton", "Y7_Q_VL5y7FKVYzILZlR": "main-playlistEditDetailsModal-imageDropDownButton", + "mtGn3ylACuEcnBDCuR2g": "main-playlistEditDetailsModal-imageDropDownButton", "i2x0uFyIEg3YN6njOngZ": "main-playlistEditDetailsModal-imageDropDownContainer", "hF2x3Nk34N0RVwSOfRqu": "main-playlistEditDetailsModal-imageDropDownContainer", "St_O5qpuAv8_Rt8xLueG": "main-playlistEditDetailsModal-imageLoadingContainer", @@ -927,10 +1185,10 @@ "LibRpovtQwu0kbIGh9vK": "main-playlistEditDetailsModal-textElementLabel", "RLzMolC7kIdp65LyfQPb": "main-playlistEditDetailsModal-title", "HutS10br7QppJJ5_XHya": "main-playlistEditDetailsModal-title", - "qOBo9jzgJoMkt2Ad8fur": "main-playlistEditDetailsModal-titleCharacterCounter", "ZfCG8e1oAWX1FroDbeFF": "main-playlistEditDetailsModal-titleCharacterCounter", - "JaGLdeBa2UaUMBT44vqI": "main-playlistEditDetailsModal-titleInput", + "qOBo9jzgJoMkt2Ad8fur": "main-playlistEditDetailsModal-titleCharacterCounter", "ZSbwUhw8fvOgwrnjZSbv": "main-playlistEditDetailsModal-titleInput", + "JaGLdeBa2UaUMBT44vqI": "main-playlistEditDetailsModal-titleInput", "SuHDp5IvWoCq1P8yJQmo": "main-playlistEditDetailsModal-titleInputWithPadding", "AytCc2WKUld6N212Pcpu": "main-playlistRemoveMultipleModal-buttonContainer", "J0xJcBaKhwl9EIuzvhLg": "main-playlistRemoveMultipleModal-container", @@ -944,6 +1202,8 @@ "tP0mccyU1WAa7I9PevC1": "main-repeatButton-active", "Vz6yjzttS0YlLcwrkoUR": "main-repeatButton-button", "qnYVzttodnzg9WdrVQ1p": "main-rootlist-bottomSentinel", + "EwhsQ24Xm4bs5u42B4Zg": "main-rootlist-bottomSentinel", + "Df7FJJOGsrwyBq9p": "main-rootlist-bottomSentinel", "xkHiFJhykpOWcVMMPufq": "main-rootlist-dropIndicator", "I_aApN9pSlbGcpLtFQWw": "main-rootlist-expandArrow", "NTJM_mh36C5kJ5oO8eac": "main-rootlist-expandArrowActive", @@ -957,11 +1217,13 @@ "K8Rs3qAYirS8wJ1hR8gn": "main-rootlist-rootlistItemLinkActive", "AINMAUImkAYJd4ertQxy": "main-rootlist-rootlistItemOverlay", "tojGvx6tcIBmKlICMJAZ": "main-rootlist-rootlistPlaylistsScrollNode", - "g_jOSq3pLY5p4tldskrw": "main-rootlist-statusIcons", "gtuJjD43VjwtP8ii3H3P": "main-rootlist-statusIcons", + "g_jOSq3pLY5p4tldskrw": "main-rootlist-statusIcons", "VjIb8SfYTkc4wMpqqj3f": "main-rootlist-textWrapper", - "lyVkg68L7ycnwyOcO3vj": "main-rootlist-topSentinel", + "QX95pTnCYcsJl9oD": "main-rootlist-topSentinel", "PVcM2tzEirZrUPGhsuaQ": "main-rootlist-topSentinel", + "lyVkg68L7ycnwyOcO3vj": "main-rootlist-topSentinel", + "m9t_KhZ6MI0XQj9b": "main-rootlist-wrapper", "JUa6JJNj7R_Y3i4P8YUX": "main-rootlist-wrapper", "DeV0zPbzpbB31xcBc9gz": "main-rootlist-wrapper", "rKdWluhLAGpdUFBWN8sK": "main-seeAll-link", @@ -969,9 +1231,13 @@ "XGCdw_LcXQHrxmvpxjwi": "main-seekForwardButton-button", "r4Qmv_YM7IHogP2i1tmJ": "main-shelf-browseGridSection", "q8AZzDc_1BumBHZg0tZb": "main-shelf-header", + "GdUOnB5ViiQN38Wx": "main-shelf-section", + "FUos9VwDLipR1tuhetTo": "main-shelf-section", "HOgue4Eg4UdBR58M0633": "main-shelf-seeAll", "QyANtc_r7ff_tqrf5Bvc": "main-shelf-shelf", + "sLPknsJcp6wULKli": "main-shelf-shelf", "HVBIEiiVvehha3rRJA78": "main-shelf-shelf", + "zMXJkJH8T8shbWj2": "main-shelf-shelfGrid", "Z4InHgCs2uhk0MU93y_a": "main-shelf-shelfGrid", "KMMqgUnvRAqSSii6zn7L": "main-shelf-shelfGrid", "Sdmk6QLCvk5EuAP54IN5": "main-shelf-shelfGridResponsive", @@ -980,6 +1246,10 @@ "WkSW1U6jr3HDz3vApM56": "main-shelf-skeletonShelf", "hWGxHSAKACFWXowXPDTP": "main-shelf-subHeader", "MfVrtIzQJ7iZXfRWg6eM": "main-shelf-title", + "exhHSjP571x0x1Dvhwwh": "main-shelf-title", + "nA1_dDjmaSsSS5B2": "main-shelf-title", + "T9JaL14g0fwnpw83": "main-shelf-titleWrapper", + "ZC2VS0_OWUFpCb5ryKXQ": "main-shelf-titleWrapper", "onVWL7MW4PW9FyVajBAc": "main-shelf-titleWrapper", "OMuRYOdpUbGif12_lRJl": "main-shelf-topRow", "OF_3F0SQCsBtL1jSTlTA": "main-shuffleButton-active", @@ -988,18 +1258,21 @@ "mnipjT4SLDMgwiDCEnRC": "main-skipForwardButton-button", "d89qxCxbCRj4y1Woft8j": "main-smartShuffleButton-active", "kpGMQq1KFz620g_BD_dS": "main-tag-container", + "N1BHSZD2BszRAq4J": "main-topBar-background", "T1xI1RTSFU7Wu94UuvE6": "main-topBar-background", "PfgTAe4hVhuNFZRuuKQG": "main-topBar-background", - "IAyWaeDamLJLjxuPeVKw": "main-topBar-buddyFeed", "WtC1lGbmQRplD6JBhNFU": "main-topBar-buddyFeed", "pefa1_ZALRn90eYLANvw": "main-topBar-buddyFeed", + "IAyWaeDamLJLjxuPeVKw": "main-topBar-buddyFeed", + "sXjzYBob5Y4psogB": "main-topBar-buddyFeed", "W0bXxvPV_DhyzwdJWRuU": "main-topBar-buddyFeedActive", "CE17OcVsW2svuK7ebBcx": "main-topBar-buddyFeedIcon", "ql0zZd7giPXSnPg75NR0": "main-topBar-button", "J6VTd7VdGN2PM_oXCAyH": "main-topBar-button", "qvXMfQh1CjESoKKX49Bl": "main-topBar-buttonActive", - "facDIsOQo9q7kiWc4jSg": "main-topBar-container", + "bTx8oDVa08kc2tDc": "main-topBar-container", "VCH3TJP5s27cQwnxWKnA": "main-topBar-container", + "facDIsOQo9q7kiWc4jSg": "main-topBar-container", "MIX_wd0K1tVHme_pwV2F": "main-topBar-contentArea", "BkpKedcdaMGbvgXMlmcg": "main-topBar-contentArea", "OOsg_GCQDERDXc1d0EmC": "main-topBar-entryPoints", @@ -1007,29 +1280,39 @@ "Oq5wiHCwgjjMg_VYy068": "main-topBar-fullscreenHistoryButtons", "VgSbatGBB9XwTH2_dsxg": "main-topBar-historyButtons", "fWwn9sakqBBjgiNti7LD": "main-topBar-historyButtons", - "IYDlXmBmmUKHveMzIPCF": "main-topBar-icon", "ou0osOf3R1ZRWQ1xzFd9": "main-topBar-icon", + "IYDlXmBmmUKHveMzIPCF": "main-topBar-icon", "cqO5c3gPyN6tXIddpWfr": "main-topBar-left", "qxbaGYC8rgMLfyOuYRCM": "main-topBar-loggedOut", "LKFFk88SIRC9QKKUWR5u": "main-topBar-loginButtons", "zuf9gCpkf86KkzzCtkJN": "main-topBar-navLink", - "EvIR4O7jOSbNmxtMdIQ0": "main-topBar-overlay", + "AGRpGUcmqIgVZ5Nh": "main-topBar-overlay", "fKbzlgPXfvClLUUKYLxj": "main-topBar-overlay", + "EvIR4O7jOSbNmxtMdIQ0": "main-topBar-overlay", + "DWIabsKiPzMNV7HphphB": "main-topBar-playButtonWrapper", + "EcY_T1Upcf0BwniO": "main-topBar-playButtonWrapper", "CWFTCu03cdDALodezHmA": "main-topBar-responsiveForward", "fl1Ov5aB9YCKnMkJYpEu": "main-topBar-right", "VGKBvschhennrwdTibUE": "main-topBar-rightSidebarVisible", + "oyLHDDA5CuA84lzZ": "main-topBar-searchBar", "g3Xinb8x23n81ejvS9Uj": "main-topBar-searchBar", "CVuGEUIxLkNKpMds8AFS": "main-topBar-searchBar", "CFfhVwF52u3lETJ8lRWE": "main-topBar-searchBar", "btOYheZlYlaVEyO9iEBk": "main-topBar-sectionWrapper", "sibxBMlr_oxWTfBrEz2G": "main-topBar-signupButton", "eBrbJuUWgMoCkOgWs5uw": "main-topBar-topBarContainer", - "qHWqOt_TYlFxiF0Dm2fD": "main-topBar-topbarContent", "SgtTbe7qcK0Rae6rXLWm": "main-topBar-topbarContent", - "rwdnt1SmeRC_lhLVfIzg": "main-topBar-topbarContentRight", + "NXttmW3KPwE1r4Am": "main-topBar-topbarContent", + "qHWqOt_TYlFxiF0Dm2fD": "main-topBar-topbarContent", + "ZoyIPzfLrJUqGdBV": "main-topBar-topbarContentContainer", + "dF0K0jaEfxecrAYyZnVY": "main-topBar-topbarContentContainer", "VHvOWFJZz7l5Py6Vud3A": "main-topBar-topbarContentRight", + "rwdnt1SmeRC_lhLVfIzg": "main-topBar-topbarContentRight", + "HV_r_uzYNE7ao30Y": "main-topBar-topbarContentRight", + "dVjh0hBKnmAEvXkT": "main-topBar-topbarContentRight", "CuBx12mEGmMQ1XAXHZCs": "main-topBar-topbarContentRight", "rovbQsmAS_mwvpKHaVhQ": "main-topBar-topbarContentWrapper", + "FdWkUygeG4YIau9k": "main-topBar-topbarContentWrapper", "QoAE5SWKbvYt9ogonr6e": "main-topBar-topbarContentWrapper", "sNde2kloCY28V4GB9AvP": "main-topBar-topNavBarLinks", "k0vXhOdr0XE83lAQaJ1O": "main-topBar-topNavBarSeparator", @@ -1053,85 +1336,99 @@ "Y22srYwXssaWnfD1MXis": "main-topBarStatusIndicator-TopBarStatusIndicatorContainer", "mqZLFQb6fadgKQww5AFV": "main-trackCreditsModal-additionalCredits", "HJGB9Fo4Xs8h5BkBBeDu": "main-trackCreditsModal-additionalCredits", - "xd9f6OsPqmyb6CefhTRR": "main-trackCreditsModal-clickableCreditsEntry", "XrHz4A9uD7ZGIKQsSyNQ": "main-trackCreditsModal-clickableCreditsEntry", + "xd9f6OsPqmyb6CefhTRR": "main-trackCreditsModal-clickableCreditsEntry", "VKCcyYujazVPj6VkksPM": "main-trackCreditsModal-closeBtn", "QQ13a8MJiuYLu0q6rZ2A": "main-trackCreditsModal-closeBtn", "uV8q95GGAb2VDtL3gpYa": "main-trackCreditsModal-container", "KslWdQXWjQsaid2M3oM8": "main-trackCreditsModal-container", - "IpshWHA6nc9nJxRssAlb": "main-trackCreditsModal-creditsEntry", "nv9qp4kKPjm8xaSYV1Of": "main-trackCreditsModal-creditsEntry", - "beyOcd3p0PEzhrlKIbU1": "main-trackCreditsModal-creditsGroup", + "IpshWHA6nc9nJxRssAlb": "main-trackCreditsModal-creditsEntry", "PK1NwDda3K9m_l1F57mQ": "main-trackCreditsModal-creditsGroup", - "pGU_qEtNT1qWKjrRbvan": "main-trackCreditsModal-header", + "beyOcd3p0PEzhrlKIbU1": "main-trackCreditsModal-creditsGroup", "QsEMdNpWb7BvcopiZBY7": "main-trackCreditsModal-header", - "Nw1INlIyra3LT1JjvoqH": "main-trackCreditsModal-mainSection", + "pGU_qEtNT1qWKjrRbvan": "main-trackCreditsModal-header", "VEh7w_UmdiXh8yRLKVmB": "main-trackCreditsModal-mainSection", + "Nw1INlIyra3LT1JjvoqH": "main-trackCreditsModal-mainSection", "iGT1RlMPCwUlIiRPbOqg": "main-trackCreditsModal-originalCredits", "caPUJnD8oMW_y3rXBllV": "main-trackCreditsModal-originalCredits", - "bpaf11XBuMN_hd95L9ol": "main-trackCreditsModal-sectionTitle", "syZlEQP36Qn7I50V6d4N": "main-trackCreditsModal-sectionTitle", - "DAIH23Yj6NeioZ6jooQ6": "main-trackCreditsModal-sourceNames", + "bpaf11XBuMN_hd95L9ol": "main-trackCreditsModal-sectionTitle", "vK_WgBGfaNGiJjeNvajh": "main-trackCreditsModal-sourceNames", - "gpNta6i8q3KYJC6WBZQC": "main-trackInfo-artists", + "DAIH23Yj6NeioZ6jooQ6": "main-trackCreditsModal-sourceNames", "w_TTPh4y9H1YD6UrTMHa": "main-trackInfo-artists", + "xSfZMAalZIg2nzIs": "main-trackInfo-artists", "QKm_g41pGRkjUcr_2cIM": "main-trackInfo-artists", + "gpNta6i8q3KYJC6WBZQC": "main-trackInfo-artists", "ZcNcu7WZgOAz_Mkcoff3": "main-trackInfo-container", - "iZrIHsls0lCEhoMDA9kc": "main-trackInfo-container", "QZfVz1fBRtwZIIrMKL6v": "main-trackInfo-container", + "PZqkGvH2tH8xbDWT": "main-trackInfo-container", + "iZrIHsls0lCEhoMDA9kc": "main-trackInfo-container", "W5cB_o0XkkU7Q8tlTGxq": "main-trackInfo-contentContainer", "cpltqpeZsQmmXy7qZgb9": "main-trackInfo-contentContainer", - "IkAuhlmCofCxyvdphgkv": "main-trackInfo-contentWrapper", - "PGSe59fD1Hwc9yUM2d3U": "main-trackInfo-contentWrapper", "upgEerbOWZz66oZhE5G5": "main-trackInfo-contentWrapper", + "PGSe59fD1Hwc9yUM2d3U": "main-trackInfo-contentWrapper", + "IkAuhlmCofCxyvdphgkv": "main-trackInfo-contentWrapper", "s1jyNJBxq16eqkqCf6Ax": "main-trackInfo-enhanced", "p2ya1fQ3o9pY4alcW0o4": "main-trackInfo-enhanced", "LDY4KpSvSSGHG6jRU5QA": "main-trackInfo-enhanced", "y6bXimbi8JAcblOFxTap": "main-trackInfo-equalGradientWidth", + "fOSYRD0ZQ7wnd6Y4": "main-trackInfo-name", + "IrXzI0xGt90E6_xQ": "main-trackInfo-name", "Q_174taY6n64ZGC3GsKj": "main-trackInfo-name", - "l3ePjQ6SwNdQQCnLpywl": "main-trackInfo-name", "PcH6VnzkkDqD36P93i9Q": "main-trackInfo-name", + "l3ePjQ6SwNdQQCnLpywl": "main-trackInfo-name", "K9Nj3oI7bTNFh5AGp5GA": "main-trackInfo-name", "e_FyYW4DtJAcPdudjghs": "main-trackInfo-name", + "ztTFEVvpDUywSVxJw4t7": "main-trackInfo-overlay", "FYny4fSXzbXG65hAD1Pn": "main-trackInfo-overlay", + "oCCknGEXYP0WZG8A": "main-trackInfo-overlay", "eSMjmiD29Ox35O95waw6": "main-trackInfo-overlay", - "ztTFEVvpDUywSVxJw4t7": "main-trackInfo-overlay", "aMhBfOqJxn4jKzFN07Lg": "main-trackInfo-rightToLeft", + "aUmKQl2MuyYhXU1S": "main-trackInfo-xsmallBadges", "Ty1q4GZz5EJ7Yl2jHs5I": "main-trackInfo-xsmallBadges", "MrkH0O1OzmNv_oCQdvI8": "main-trackInfo-xsmallBadges", "lvEvs7EuvpagAgPzLl_B": "main-trackInfo-xsmallBadges", "Ry7zokVNFKXaDxKp1Qf1": "main-trackList-actionsHeader", - "iSbqnFdjb1SuyJ3uWydl": "main-trackList-active", "ZgAJecvDDVREPXktThbA": "main-trackList-active", + "iSbqnFdjb1SuyJ3uWydl": "main-trackList-active", "eWNJl03RSvGa9VsxkJ_7": "main-trackList-addedBy", "zxSdNpIMNoVh8g3F9fqt": "main-trackList-arrow", + "WUBpa1O_OMPqnLHO": "main-trackList-changeVisibleButton", + "KWK7VpljlAmuCl6UgKwr": "main-trackList-changeVisibleButton", "wE9dp6W8uInhrlbWPMsR": "main-trackList-chartTrackList", - "ASYv4mEu1lXEHVa04HqY": "main-trackList-column", "rGujAXjCLKEd_N6yTwds": "main-trackList-column", "Q3gtrgbIqUuVTw9350Us": "main-trackList-column", + "ASYv4mEu1lXEHVa04HqY": "main-trackList-column", + "gEuCRW7HpVsFA80I": "main-trackList-column", "r53kBgGOdrCYj2Jux0iN": "main-trackList-columnResizing", "Wn5NpEuR1Qw99DelnfxX": "main-trackList-concertTrackList", - "KJeaWI3jCZemsmu4eYL3": "main-trackList-curationButton", "otqy2yIt_BVXLjoundpp": "main-trackList-curationButton", + "KJeaWI3jCZemsmu4eYL3": "main-trackList-curationButton", "SzsIJoBzlexhelPsHXnn": "main-trackList-delayedVisibility", - "Ar1CZ7qjPHuIJY0cI56W": "main-trackList-disabled", "Unhd72dSzMriFEuvX2UU": "main-trackList-disabled", + "Ar1CZ7qjPHuIJY0cI56W": "main-trackList-disabled", "UuAaE00MS64uibJyxXxK": "main-trackList-discRow", "xmIMj8Eo8ZixOkuRQWd3": "main-trackList-discTitle", "WTbn2dLWM9fMMb3O4uKZ": "main-trackList-dropTargetAfter", "xhgesf8qPsbyZY2NaYdH": "main-trackList-dropTargetBefore", - "AgiCqnZUliKs_dafpdyi": "main-trackList-durationHeader", - "kxxyFjKz2levImEvxq48": "main-trackList-durationHeader", + "Q4mk1oUBywa1PuZZZ0Mr": "main-trackList-duration", + "Na06TEk5cCR4FwBd": "main-trackList-duration", + "xGX3wwPnlgoLZTP0": "main-trackList-durationHeader", "qcny9ih7ulue1dEOh48T": "main-trackList-durationHeader", + "kxxyFjKz2levImEvxq48": "main-trackList-durationHeader", + "AgiCqnZUliKs_dafpdyi": "main-trackList-durationHeader", + "jEiAs1et4fAU3chW": "main-trackList-enhanced", "m6Bvw7PNXw2WXqruLOLE": "main-trackList-enhanced", "vr04lRmH66LzICUXnwCq": "main-trackList-eventDate", "OINF2mTM4cu2JjtkmPiz": "main-trackList-eventTicketIcon", "vL_PgycspyjCBwfFg9j9": "main-trackList-eventVenue", "dZiDwJihz32GwQunXhnB": "main-trackList-facepile", "uWYVhrrTnV2V_VYhThDl": "main-trackList-facepileAvatar", - "FCzIz5e0Lpt4xa5zz2F1": "main-trackList-icon", "xEtoX9iOYS58uDtKLmzR": "main-trackList-icon", "vBFTtFW3Co9F_yJ_HjF4": "main-trackList-icon", + "FCzIz5e0Lpt4xa5zz2F1": "main-trackList-icon", + "E6J2sVRgHMIQJ42C": "main-trackList-indexable", "Ss6hr6HYpN4wjHJ9GHmi": "main-trackList-indexable", "oYS_3GP9pvVjqbFlh9tq": "main-trackList-indexable", "itxBsCHKFwTOvmERT1cg": "main-trackList-indexable", @@ -1141,11 +1438,12 @@ "jDgf8MzZRbApYE6BW1qL": "main-trackList-isRecommendedTrackListRow", "HOP1JqKm27djuzPVbaRl": "main-trackList-nineteen", "w304euOUWkI5A8qAqFj8": "main-trackList-notificationDot", - "VrRwdIZO0sRX1lsWxJBe": "main-trackList-number", - "xNyTkXEncSjszLNI65Nq": "main-trackList-number", + "C_ozwGWgtew4gZRM": "main-trackList-number", "YCOwZBWtN6TZawPOEVI9": "main-trackList-number", - "nEZjuVeUuGSmYaQWgXTd": "main-trackList-ownedBySelf", + "xNyTkXEncSjszLNI65Nq": "main-trackList-number", + "VrRwdIZO0sRX1lsWxJBe": "main-trackList-number", "z0zJ798TVq97lZgdRT2_": "main-trackList-ownedBySelf", + "nEZjuVeUuGSmYaQWgXTd": "main-trackList-ownedBySelf", "Iy7vi9cVsy6pS6wF8Dud": "main-trackList-placeholder", "Dj9_CzXA7IbUFIz4wOsA": "main-trackList-placeholderEnd", "cF8vKdBGYRZs_SpaG0Yz": "main-trackList-placeholderIndex", @@ -1158,67 +1456,88 @@ "s6jK2TtsvpysB_LjjS7g": "main-trackList-playsHeader", "B2Dwok3Y07k2ttjGDssH": "main-trackList-queuePanelTracklist", "Bob5Qz4qd2ApsH6o1loA": "main-trackList-resizeHandle", + "Up3ALJRog0ejdGp8Bbyo": "main-trackList-rowAddToPlaylistButton", + "zdZcEuotuoQZP_So": "main-trackList-rowAddToPlaylistButton", "sQcIERaiZKFhOM1LrSmX": "main-trackList-rowBadges", "_7_yPy5jfb9kzk3gijq6A": "main-trackList-rowBadges", "UeRAfdSphrPaohh2HWmB": "main-trackList-rowCompactMode", "N7GZp8IuWPJvCPz_7dOg": "main-trackList-rowCompactMode", - "Btg2qHSuepFGBG6X0yEN": "main-trackList-rowDuration", "l5CmSxiQaap8rWOOpEpk": "main-trackList-rowDuration", + "Btg2qHSuepFGBG6X0yEN": "main-trackList-rowDuration", "bnolo3jJ8KBxI6jyN7bD": "main-trackList-rowFeedback", "U_mTGq4vzVyOrPrB3mx4": "main-trackList-rowFeedbackButton", "tGKwoPuvNBNK3TzCS5OH": "main-trackList-rowHeartButton", "GcODM2Bp3srQqJzi8Tzs": "main-trackList-rowHeartButton", + "yH3d6DOh1HYZab_L": "main-trackList-rowImage", "rkw8BWQi3miXqtlJhKg0": "main-trackList-rowImage", "IqDKYprOtD_EJR1WClPv": "main-trackList-rowImage", "GTdNqPsL1mHfybwJSeVz": "main-trackList-rowImage", - "EfStVlHpnUDOJF3pM93I": "main-trackList-rowImageFallback", "tgCyNnKttOMQXfuqVuhI": "main-trackList-rowImageFallback", + "EfStVlHpnUDOJF3pM93I": "main-trackList-rowImageFallback", + "y3wrMu2sPRR2DCdEpWlg": "main-trackList-rowImagePlayButton", "RfidWIoz8FON2WhFoItU": "main-trackList-rowImagePlayButton", + "qrR_ZslfmF07R7Kb": "main-trackList-rowImagePlayButton", "j2s64Lz8y6VzBLB_V9Gm": "main-trackList-rowImagePlayButton", - "y3wrMu2sPRR2DCdEpWlg": "main-trackList-rowImagePlayButton", + "Ezp3oPlxQt0RCxzF": "main-trackList-rowImagePlayIcon", + "Kr4801wRGuXxFUsKb1sU": "main-trackList-rowImagePlayIcon", "Qs11Fsr_XqTVFDFWWRkQ": "main-trackList-rowImagePlayPauseButton", "OXMPsUBpIQoIbOPIv7Bh": "main-trackList-rowImagePlayPauseButton", "DoIH4Mjt4sJFHkmAGs03": "main-trackList-rowImagePlayPauseButtonPlaying", "cxYjUh_DjUkRijOXGrOT": "main-trackList-rowImageVideo", - "byLkljnIRd_DJeSMD3LM": "main-trackList-rowImageWithPlay", "gmuBAqsC6pcufUyP1VQW": "main-trackList-rowImageWithPlay", + "byLkljnIRd_DJeSMD3LM": "main-trackList-rowImageWithPlay", + "orqKHP1ftRYqYmnu": "main-trackList-rowMainContent", "iCQtmPqY0QvkumAOuCjr": "main-trackList-rowMainContent", - "_iQpvk1c9OgRAc8KRTlH": "main-trackList-rowMainContent", "hb8C1VAjyUg0VMxrwpix": "main-trackList-rowMainContent", + "_iQpvk1c9OgRAc8KRTlH": "main-trackList-rowMainContent", "gQnx5tArze5q1wfG6AWJ": "main-trackList-rowMainContentCompact", "ft6dUifK4i03829TBAqC": "main-trackList-rowMainContentCompact", + "ET4SVjxyjH4WkA3kSo5G": "main-trackList-rowMainContentSubTitle", + "HyipfPVwSpodPBHR": "main-trackList-rowMainContentSubTitle", + "lkqOvzjBxm0err2b": "main-trackList-rowMainContentTitle", + "eYJgrgW01l7dHKuMJidG": "main-trackList-rowMainContentTitle", + "OS5g1cBfm5EEYTxX": "main-trackList-rowMarker", "VpYFchIiPg3tPhBGyynT": "main-trackList-rowMarker", - "ucB9avGYvzsmzXUOw0S7": "main-trackList-rowMarker", "UUe_W_6spimNc8vpdEEO": "main-trackList-rowMarker", - "JxZLQbpnH3fFGJHB4XQG": "main-trackList-rowMarkerChartStatus", + "ucB9avGYvzsmzXUOw0S7": "main-trackList-rowMarker", "t4yFt9Ch_ZCPxEEEoImE": "main-trackList-rowMarkerChartStatus", - "mYN_ST1TsDdC6q1k1_xs": "main-trackList-rowMoreButton", + "JxZLQbpnH3fFGJHB4XQG": "main-trackList-rowMarkerChartStatus", "ObVor_8sQq5whKbtWs8a": "main-trackList-rowMoreButton", + "zeEKLLKAQgCfbY6qzb9A": "main-trackList-rowMoreButton", + "oJKr4Btybf8Bmafb": "main-trackList-rowMoreButton", + "mYN_ST1TsDdC6q1k1_xs": "main-trackList-rowMoreButton", "nYg_xsOVmrVE_8qk1GCW": "main-trackList-rowPlayCount", "HxDMwNr5oCxTOyqt85gi": "main-trackList-rowPlayCount", - "UIBT7E6ZYMcSDl1KL62g": "main-trackList-rowPlayPauseIcon", "zOsKPnD_9x3KJqQCSmAq": "main-trackList-rowPlayPauseIcon", - "HcMOFLaukKJdK5LfdHh0": "main-trackList-rowSectionEnd", - "PAqIqZXvse_3h6sDVxU0": "main-trackList-rowSectionEnd", + "UIBT7E6ZYMcSDl1KL62g": "main-trackList-rowPlayPauseIcon", "qszimzwbM7AdyZGTvofd": "main-trackList-rowSectionEnd", + "PAqIqZXvse_3h6sDVxU0": "main-trackList-rowSectionEnd", + "HcMOFLaukKJdK5LfdHh0": "main-trackList-rowSectionEnd", + "PxfzxK0oGktQLQg5": "main-trackList-rowSectionEnd", + "ZC9Da494kc24m9FG64Pf": "main-trackList-rowSectionIndex", + "Wocdj1aAGdUdQAo_": "main-trackList-rowSectionIndex", "NZAU7CsuZsMeMQB8zYUu": "main-trackList-rowSectionIndex", "fS0C4IgbHviZxIVGC736": "main-trackList-rowSectionIndex", - "ZC9Da494kc24m9FG64Pf": "main-trackList-rowSectionIndex", - "gvLrgQXBFVW6m9MscfFA": "main-trackList-rowSectionStart", + "NILrlF6tOUcbSyzo": "main-trackList-rowSectionStart", "w46g_LQVSLE9xK399VYf": "main-trackList-rowSectionStart", "J_3tQnLWkbEcYffbaUL4": "main-trackList-rowSectionStart", + "gvLrgQXBFVW6m9MscfFA": "main-trackList-rowSectionStart", + "qev2KFBSKCHkeXT4fDTl": "main-trackList-rowSectionVariable", + "F_VvNCRKZ2cKj1a9": "main-trackList-rowSectionVariable", "bfQ2S9bMXr_kJjqEfcwA": "main-trackList-rowSectionVariable", "_TH6YAXEzJtzSxhkGSqu": "main-trackList-rowSectionVariable", - "qev2KFBSKCHkeXT4fDTl": "main-trackList-rowSectionVariable", + "FBocmzLUz3I6_ZWw": "main-trackList-rowSeperator", + "j70LFnfAIsgaikLW1Weg": "main-trackList-rowSeperator", "rq2VQ5mb9SDAFWbBIUIn": "main-trackList-rowSubTitle", "t_yrXoUO3qGsJS4Y6iXX": "main-trackList-rowTitle", "btE2c3IKaOXZ4VNAb8WQ": "main-trackList-rowTitle", - "eRuZMo_HNLjb1IalIeRb": "main-trackList-selected", "JgERXNoqNav5zOHiZGfG": "main-trackList-selected", + "eRuZMo_HNLjb1IalIeRb": "main-trackList-selected", "FCqh1RprhBCx2nZeC2Xi": "main-trackList-showDisabledAsEnabled", + "_FUHfqzoAMI31KrB": "main-trackList-sortable", "ZdBognHQ3X610bLWE3e3": "main-trackList-sortable", - "Bh8ehD8at2hrINB7YMOg": "main-trackList-sortable", "blGAYwvDWndVkFDAQZ8A": "main-trackList-sortable", + "Bh8ehD8at2hrINB7YMOg": "main-trackList-sortable", "vY_4na7XFQWMFH8phXCQ": "main-trackList-statusChangeDown", "NJMsWXHYQgISlxnPODAD": "main-trackList-statusChangeDown", "YAINlTb90ZejTPv7k1dH": "main-trackList-statusChangeNew", @@ -1228,57 +1547,69 @@ "_3IwXr7oR_KZlfPfwMh7": "main-trackList-talkIcon", "y8YIxGr73OXUGacKKsWb": "main-trackList-talkSegmentDuration", "jsV182e49Puwz9SIYt2J": "main-trackList-text", + "V3hMbl6JubddBUkF2XKw": "main-trackList-trackList", + "LuZwiEbNbfQcEtkT": "main-trackList-trackList", "ShMHCGsT93epRGdxJp2w": "main-trackList-trackList", "oIeuP60w1eYpFaXESRSg": "main-trackList-trackList", - "V3hMbl6JubddBUkF2XKw": "main-trackList-trackList", "ixZyJJ3SHxsSb3NHkhWn": "main-trackList-trackListCompactMode", "iHiqmESWdGRBwk5cS7ZZ": "main-trackList-trackListCompactMode", + "eaxF79s4oV8I2CPQ": "main-trackList-trackListContainer", + "fNzI6FqqYnAGcGmJjQRG": "main-trackList-trackListContainer", + "Y4EDvZXtKfdzwuoUAPwO": "main-trackList-trackListHeader", + "WhDogzQwSAwEfE7F": "main-trackList-trackListHeader", "koyeY6AgGRPmyPITi7yO": "main-trackList-trackListHeader", "IpXjqI9ouS_N5zi0WM88": "main-trackList-trackListHeader", - "Y4EDvZXtKfdzwuoUAPwO": "main-trackList-trackListHeader", - "dZPmmYYhskhqHJCAruvI": "main-trackList-trackListHeaderRow", - "ePPpO_NuGDUxVRTw7y6W": "main-trackList-trackListHeaderRow", + "ao_camPiK3AeQf6n": "main-trackList-trackListHeaderRow", "U9A7_SGWn6IJ0vAM2oU7": "main-trackList-trackListHeaderRow", + "ePPpO_NuGDUxVRTw7y6W": "main-trackList-trackListHeaderRow", + "dZPmmYYhskhqHJCAruvI": "main-trackList-trackListHeaderRow", "qJOhHoRcFhHJpEQ2CwFT": "main-trackList-trackListHeaderStuck", "_2ajKWDiy6YvJu5wo8I1g": "main-trackList-trackListHeaderStuck", - "h4HgbO_Uu1JYg5UGANeQ": "main-trackList-trackListRow", - "IjYxRc5luMiDPhKhZVUH": "main-trackList-trackListRow", "UhOLa3blz2xoAxM2vRwz": "main-trackList-trackListRow", + "GzWlvg0xI8IJiSoY": "main-trackList-trackListRow", + "IjYxRc5luMiDPhKhZVUH": "main-trackList-trackListRow", + "h4HgbO_Uu1JYg5UGANeQ": "main-trackList-trackListRow", "wTUruPetkKdWAR1dd6w4": "main-trackList-trackListRowGrid", - "UpiE7J6vPrJIa59qxts4": "main-trackList-trackListRowGrid", + "u5wEtE_x69YxkLdv": "main-trackList-trackListRowGrid", "vzvX6wzymW8rwI4hkYo0": "main-trackList-trackListRowGrid", + "UpiE7J6vPrJIa59qxts4": "main-trackList-trackListRowGrid", "vOp2HlcPkxOHebo3If32": "main-useDropTarget-album", "O0AN8Ty_Cxd4iLwyKATB": "main-useDropTarget-album", "G_xEAccmp3ulqXjuviWK": "main-useDropTarget-album", - "VNdHKKznHkpJ0VHoDmai": "main-useDropTarget-artist", + "aIU4qABgiIgjAEyD": "main-useDropTarget-album", "wQnUXn1m6Gy4PH8jhslb": "main-useDropTarget-artist", + "VNdHKKznHkpJ0VHoDmai": "main-useDropTarget-artist", "zWWLnqWslTLHwq3wBgGB": "main-useDropTarget-audiobook", "ufICQKJq0XJE5iiIsZfj": "main-useDropTarget-base", + "q8mQFn7r8UYsKdHE": "main-useDropTarget-base", "NxEINIJHGytq4gF1r2N1": "main-useDropTarget-base", "LLlfyKiKbOd8gfCmHcZX": "main-useDropTarget-base", - "ETclQEbcAcQdGdSioHaJ": "main-useDropTarget-episode", "XNjgtSbyhshr7YQcVvry": "main-useDropTarget-episode", "LNzflW6HN3b7upl8Pt7w": "main-useDropTarget-episode", - "cuH8l_VHkTiz_NYVslQe": "main-useDropTarget-folder", + "EYdwwRebZIgjbKy_": "main-useDropTarget-episode", + "ETclQEbcAcQdGdSioHaJ": "main-useDropTarget-episode", "mhuhir0ikRqXAPHU8ZZ1": "main-useDropTarget-folder", - "aRyoyQFJkzhoSOnf2ERM": "main-useDropTarget-local", + "cuH8l_VHkTiz_NYVslQe": "main-useDropTarget-folder", + "tMFkXbMSXNUegQIu": "main-useDropTarget-local", "odS2IW9wfNVHhkhc0l_X": "main-useDropTarget-local", "FQFIqbs9Ic3VDNohmxRp": "main-useDropTarget-local", + "aRyoyQFJkzhoSOnf2ERM": "main-useDropTarget-local", "kXEKypZEUzxx9rNJy09C": "main-useDropTarget-playlist", "D8wJ9TPfJzLeLJYxnad2": "main-useDropTarget-playlist", "eZnAGhYcXE4Bt0a7958z": "main-useDropTarget-playlistV2", "pTvxY5yAQklZgb7VZFGS": "main-useDropTarget-pseudoPlaylist", "ratGUXdpLCkyXZNaJryg": "main-useDropTarget-show", "oE8LAmRhbeQqsZrQo4lb": "main-useDropTarget-show", - "caTDfb6Oj7a5_8jBLUSo": "main-useDropTarget-track", "or84FBarW2zQhXfB9VFb": "main-useDropTarget-track", "HgSl1rNhQllYYZneaYji": "main-useDropTarget-track", + "caTDfb6Oj7a5_8jBLUSo": "main-useDropTarget-track", + "_H2ZzS_Atuwx6wh9": "main-useDropTarget-track", "atsRVFhRDxRbOyXyFZjS": "main-userWidget-active", "odcjv30UQnjaTv4sylc0": "main-userWidget-box", "KAq2kDjXj2VS4eXrFL4i": "main-userWidget-box", "BsYNRaiIo2R6htfnZiuG": "main-userWidget-box", - "Fxnb0xe6bL7I7W8V0p6C": "main-userWidget-boxCondensed", "SFgYidQmrqrFEVh65Zrg": "main-userWidget-boxCondensed", + "Fxnb0xe6bL7I7W8V0p6C": "main-userWidget-boxCondensed", "eAXFT6yvz37fvS1lmt6k": "main-userWidget-chevron", "EeWTFG_vxLI5QJc1TH4F": "main-userWidget-displayName", "ERyo7m5f00o7ToFdGMCD": "main-userWidget-dropDownMenu", @@ -1290,16 +1621,16 @@ "YqPjzOfhtzbCf_QD3P1f": "main-userWidget-setupPlan", "RfdRTSGwulyQdDepLUTT": "main-userWidget-showDisplayName", "VdLuku6YQT4tNLT6ojlD": "main-userWidget-unableToUpdate", - "NCgGw6P72qbffJyHR2Kj": "main-watchFeed-actionBodyWrapper", "SliTY9e8oKOiypDQdhlw": "main-watchFeed-actionBodyWrapper", + "NCgGw6P72qbffJyHR2Kj": "main-watchFeed-actionBodyWrapper", "URPxbnUYki78KWvmWBQg": "main-watchFeed-actionFooterWrapper", "NazSI1w8xaruwFqTP3sS": "main-watchFeed-actionFooterWrapper", - "_XbYNhRerNrxKQEmGVwG": "main-watchFeed-actionHeaderWrapper", "YmJS4xMTXdNQLvbP2VAt": "main-watchFeed-actionHeaderWrapper", + "_XbYNhRerNrxKQEmGVwG": "main-watchFeed-actionHeaderWrapper", "Ptj9KE7YszR48vu9smYv": "main-watchFeed-actionSection", "ji0qx5PBc5_4aMgNLGrp": "main-watchFeed-actionSection", - "BLIxyum1wPNrFibaQ9wr": "main-watchFeed-addToPlaylistButton", "Q0Cupq3WCjD1pDiL4J7k": "main-watchFeed-addToPlaylistButton", + "BLIxyum1wPNrFibaQ9wr": "main-watchFeed-addToPlaylistButton", "hrqpTk8XsoleocU2gWHD": "main-watchFeed-artistContainer", "dkbQiFBHMdijQeINl_ij": "main-watchFeed-artistContainer", "fufiJplKkge3AdhYG29S": "main-watchFeed-artistMetadataContainer", @@ -1308,94 +1639,98 @@ "aiSwqZguOk1P52s9o9xP": "main-watchFeed-artistWrapper", "TfHga1ciYp079YpX_6OU": "main-watchFeed-background", "JXh51ebDftiwM49U49IA": "main-watchFeed-background", - "MvqsNri2d99MH6SQlvcK": "main-watchFeed-backgroundPill", "V795GKOEZNiChr8dJcD4": "main-watchFeed-backgroundPill", - "Ca5lXvgFoN6C5_gJDmEA": "main-watchFeed-backgroundSpacer", + "MvqsNri2d99MH6SQlvcK": "main-watchFeed-backgroundPill", "EMcF5GoJ2mLzcp0t365T": "main-watchFeed-backgroundSpacer", - "BPmQqb9D_rN4hvkCC0jg": "main-watchFeed-canvasContainer", + "Ca5lXvgFoN6C5_gJDmEA": "main-watchFeed-backgroundSpacer", "Ul_Er3t8veggCi1APkwp": "main-watchFeed-canvasContainer", - "fhmiZPVDhaOYIlNd7Myq": "main-watchFeed-canvasWrapper", + "BPmQqb9D_rN4hvkCC0jg": "main-watchFeed-canvasContainer", "rDA7A4UaktbiAD9VVIlB": "main-watchFeed-canvasWrapper", - "F7Qc4Utwpa36JORtcEYl": "main-watchFeed-columnContainer", + "fhmiZPVDhaOYIlNd7Myq": "main-watchFeed-canvasWrapper", "JYvxp3Y58xF59FA7Mnaf": "main-watchFeed-columnContainer", - "FP_XXx0FMQPJEu3WzfpM": "main-watchFeed-container", + "F7Qc4Utwpa36JORtcEYl": "main-watchFeed-columnContainer", "xGrVCnYsA9aDj2f8VAj_": "main-watchFeed-container", - "qgczwXDFdF_gy4gRs3LN": "main-watchFeed-content", + "FP_XXx0FMQPJEu3WzfpM": "main-watchFeed-container", "xvG1g4UaMyY0DW6j8XzX": "main-watchFeed-content", - "cjZ23zZucJkKFMIrGZa4": "main-watchFeed-contentAnimation", + "qgczwXDFdF_gy4gRs3LN": "main-watchFeed-content", "h6KcnSRTHGBMCEv288Ha": "main-watchFeed-contentAnimation", + "cjZ23zZucJkKFMIrGZa4": "main-watchFeed-contentAnimation", "sZNnIteDjcGaXSrb7t3W": "main-watchFeed-contentRow", "sJnarE2UKqyhLo0LFNqy": "main-watchFeed-contentRow", - "MlmOtfMWMgfezN_a1qZJ": "main-watchFeed-contentSection", "ZRarvpz5og3ifOVHzGOv": "main-watchFeed-contentSection", - "rCxYvbE1hq2_VEMOM6M_": "main-watchFeed-contentSelected", + "MlmOtfMWMgfezN_a1qZJ": "main-watchFeed-contentSection", "yV_lauXr1J6WkogIH9dV": "main-watchFeed-contentSelected", + "rCxYvbE1hq2_VEMOM6M_": "main-watchFeed-contentSelected", + "Cz0_emqDhTg390Au": "main-watchFeed-contentWrapper", "SySgdgYnGJ2mZyFM36JP": "main-watchFeed-contentWrapper", "YHeDUF3aquXRxYmKOs1A": "main-watchFeed-contentWrapper", - "A2NgztD8CPHGPFRoT69o": "main-watchFeed-equalizerIcon", "IQsUjbPtrVLyyA5iu3zQ": "main-watchFeed-equalizerIcon", - "CkAFt5XZgLBU8S0jXZgE": "main-watchFeed-flipContainer", + "A2NgztD8CPHGPFRoT69o": "main-watchFeed-equalizerIcon", "dErRUxXewpEkZd52uLTh": "main-watchFeed-flipContainer", + "CkAFt5XZgLBU8S0jXZgE": "main-watchFeed-flipContainer", "NsRfiZjjSCqTim4kM13p": "main-watchFeed-followButton", "g47sxYAVvWCq_6T4Ba5L": "main-watchFeed-followButton", - "n_VwJ2YeUb7y3CHbJ3As": "main-watchFeed-genreContainer", "zrFS4My93WidFfSAb0u6": "main-watchFeed-genreContainer", - "mENWYVW_PAl8OWp2Ut6e": "main-watchFeed-genreContent", + "n_VwJ2YeUb7y3CHbJ3As": "main-watchFeed-genreContainer", "SaK6aqYnHAkgc3cG86ZW": "main-watchFeed-genreContent", + "mENWYVW_PAl8OWp2Ut6e": "main-watchFeed-genreContent", "NtpYi46fEElnZKhNUPK4": "main-watchFeed-image", "iQnF1gu0Mg2rGsKVHIFn": "main-watchFeed-image", "oI9M0dyjtCBPoup_4Sxv": "main-watchFeed-imageWrapper", "bPMdcQr8gSb4AgWfkolx": "main-watchFeed-imageWrapper", - "F5kvnqpgBwMGbM1mWjNS": "main-watchFeed-menuButton", "OGPXh73aLJDzhfFAdPvM": "main-watchFeed-menuButton", + "F5kvnqpgBwMGbM1mWjNS": "main-watchFeed-menuButton", "Ri_fkzPuxQdOzKQf1tnw": "main-watchFeed-metadataSection", "hK5DaTfJaFpo2BJuoy5k": "main-watchFeed-metadataSection", "jlBmyjsruclK7z6ILay5": "main-watchFeed-metadataWrapper", "E0LdRRiYvrkUdZCmAXqQ": "main-watchFeed-metadataWrapper", - "d9fVEV27N0lWaeQajcC2": "main-watchFeed-modal", "DJxOEatMU2PHk0cCYWoX": "main-watchFeed-modal", + "d9fVEV27N0lWaeQajcC2": "main-watchFeed-modal", "RLx9IUmPpPeLH0cWnocs": "main-watchFeed-nextButtonInner", "kT3dFHdVmU0vyeE71IDE": "main-watchFeed-nextButtonInner", - "iZJIqsY5Yy3szidvO6ig": "main-watchFeed-nextButtonWrapper", "XIKBfnA7TQOV1T8LLiAS": "main-watchFeed-nextButtonWrapper", - "gWworaJ45IDWOdwjrZKh": "main-watchFeed-pillAnimationFour", + "iZJIqsY5Yy3szidvO6ig": "main-watchFeed-nextButtonWrapper", "zs2yWiCDKxo__fskASpC": "main-watchFeed-pillAnimationFour", + "gWworaJ45IDWOdwjrZKh": "main-watchFeed-pillAnimationFour", "wJA26c7NDa4pJmcd_khZ": "main-watchFeed-pillAnimationOne", "pGPb4TiSkhPdYEt8h2Av": "main-watchFeed-pillAnimationOne", "PAkFzXltdtGuaW_wVPZ4": "main-watchFeed-pillAnimationThree", "BWyVJ8XXZ0jRGpFaA9iW": "main-watchFeed-pillAnimationThree", - "EinJaDeKltP49Pc_nCPh": "main-watchFeed-pillAnimationTwo", "FWBI05WNSb4HR8goMhai": "main-watchFeed-pillAnimationTwo", - "GfTEPivZmrudh2ZLmUJE": "main-watchFeed-playerContainer", + "EinJaDeKltP49Pc_nCPh": "main-watchFeed-pillAnimationTwo", "omghgDzOcUFl6oOXYNHX": "main-watchFeed-playerContainer", + "GfTEPivZmrudh2ZLmUJE": "main-watchFeed-playerContainer", "madaLABKCn3HDMHk7bBQ": "main-watchFeed-playerImage", "_bMlIQGXEMMBRZOVM71Z": "main-watchFeed-playerImage", - "_C07RbGcQZqPjX3UZ9D9": "main-watchFeed-playlistTitle", "AkStH5UDLsXzudcPz_J_": "main-watchFeed-playlistTitle", + "_C07RbGcQZqPjX3UZ9D9": "main-watchFeed-playlistTitle", "ksxwRgG3qxwghi5X7wvE": "main-watchFeed-progressBar", "edeYmiJw2Fd9EFB2SQZo": "main-watchFeed-progressBar", "w091W9_8qRMxTEGofEej": "main-watchFeed-queueButton", "d9bbNw4YiAXpQpjrSgBJ": "main-watchFeed-queueButton", "oyVGfynGkVn_6VcTnd6h": "main-watchFeed-scrollToBottomButton", "bsYqS4l_sJOvBGGeudDj": "main-watchFeed-scrollToBottomButton", - "fCykqEza3WtgKmxjL0C1": "main-watchFeed-scrollToTopButton", "OcwUYvKcnj9kvPBwybGI": "main-watchFeed-scrollToTopButton", - "lu2vixiUgcBKQZ3WxslE": "main-watchFeed-shareButton", + "fCykqEza3WtgKmxjL0C1": "main-watchFeed-scrollToTopButton", + "D3IIJJzBZAs85pbQ": "main-watchFeed-shareButton", "pvGZ831aNzHTQMZ8CA_u": "main-watchFeed-shareButton", + "lu2vixiUgcBKQZ3WxslE": "main-watchFeed-shareButton", + "KPaqkditE0X7pDpE": "main-watchFeed-shareButtonHidden", + "zjp1L1UbLHhmgC7If0Hn": "main-watchFeed-shareButtonHidden", "VAO32xudyOddSHyKq31b": "main-watchFeed-showBackground", "IId345zLSrSuzIWtN4Sd": "main-watchFeed-showBackground", "X6BLCPn79TtvdLQLuSEn": "main-watchFeed-songArtist", "Cypiobiw1yGi5E9N48gJ": "main-watchFeed-songArtist", - "HLY280CnQhfcMxgRsmhx": "main-watchFeed-songArtistListeners", "q2y15bQqkJDcBixyP5oa": "main-watchFeed-songArtistListeners", - "IJgMYRGDiAtQjDaMNfIf": "main-watchFeed-songTitle", + "HLY280CnQhfcMxgRsmhx": "main-watchFeed-songArtistListeners", "kJqlixofqKau1v1r3YSE": "main-watchFeed-songTitle", - "LHdDNVCKKrK088dZzmuy": "main-watchFeed-songTitleWrapper", + "IJgMYRGDiAtQjDaMNfIf": "main-watchFeed-songTitle", "yJJKqce9DPVQnrFseKKU": "main-watchFeed-songTitleWrapper", + "LHdDNVCKKrK088dZzmuy": "main-watchFeed-songTitleWrapper", "x2geOlp2y1nFZSOcBBlg": "main-watchFeed-soundButtonWrapper", "Qtx4b7Wc1c7NEX49CMeH": "main-watchFeed-soundButtonWrapper", - "QY_q7DYy8V1MLOWFwSdn": "main-watchFeed-willChange", "TaaunKIj990MWZKrBWHW": "main-watchFeed-willChange", + "QY_q7DYy8V1MLOWFwSdn": "main-watchFeed-willChange", "kzlksKUC9aLBM62Bckxo": "main-whatsNewFeed-actions", "bcU463yG4LHEtlBCOa8Q": "main-whatsNewFeed-buttonAlwaysVisible", "n5y3jDsz8siC0JsxtS83": "main-whatsNewFeed-buttonVisibleOnHover", @@ -1436,53 +1771,64 @@ "RAWO6AczuDMOTI0qAc0a": "main-yourLibraryX-collapseButtonWrapper", "i_FRcsaqNCEJmoyObIP0": "main-yourLibraryX-collapseButtonWrapper", "ksmcxhImUuj3_s1lcIm0": "main-yourLibraryX-createButton", - "EZFyDnuQnx5hw78phLqP": "main-yourLibraryX-entryPoints", - "lHJd4oSttKLxkxuoZ0Lr": "main-yourLibraryX-entryPoints", "OR9izNpUGviUYBP_yQR2": "main-yourLibraryX-entryPoints", + "LzEeFRy7mTU6vYkC": "main-yourLibraryX-entryPoints", + "lHJd4oSttKLxkxuoZ0Lr": "main-yourLibraryX-entryPoints", + "EZFyDnuQnx5hw78phLqP": "main-yourLibraryX-entryPoints", "wBsWS202aGdsul2kEGUf": "main-yourLibraryX-filterArea", - "paiZmlAHHhmZonuGJRAr": "main-yourLibraryX-filterArea", "rjsuxO8gqIyaiYTHNpOQ": "main-yourLibraryX-filterArea", - "MLbFLVC33caOj3FgSQMC": "main-yourLibraryX-filters", + "paiZmlAHHhmZonuGJRAr": "main-yourLibraryX-filterArea", "msaOP0MYt3paJGpbdeJs": "main-yourLibraryX-filters", + "MLbFLVC33caOj3FgSQMC": "main-yourLibraryX-filters", "UvXqRORKQr_N3jlgGTcS": "main-yourLibraryX-header", - "HjPqU_UW2egr14mRSom9": "main-yourLibraryX-header", "tyMY5Nyfm8lQMRQ3NF8c": "main-yourLibraryX-header", - "j8iKBDzqTDtnDv4XbmrK": "main-yourLibraryX-headerContent", + "HjPqU_UW2egr14mRSom9": "main-yourLibraryX-header", + "ctNLVWve8CosEgh2": "main-yourLibraryX-header", + "xXVaCgUTXZgGPOKl": "main-yourLibraryX-headerContent", "tAfozCQs48q1JYdphYXi": "main-yourLibraryX-headerContent", + "j8iKBDzqTDtnDv4XbmrK": "main-yourLibraryX-headerContent", "IKza_DZb6poXFThFwlFt": "main-yourLibraryX-headerContent", + "WF8TgI_rmtstuaL_": "main-yourLibraryX-headerIsCollapsed", + "qR4uulT7QiScqfhJKJ2K": "main-yourLibraryX-headerIsCollapsed", "O2Vp_sNHMLHUcgMPVnOA": "main-yourLibraryX-headerIsCollapsed", "iYP0xuQiJCgi7gx1jUPJ": "main-yourLibraryX-headerIsCollapsed", - "qR4uulT7QiScqfhJKJ2K": "main-yourLibraryX-headerIsCollapsed", + "dFnJ2Fy2Y04ZrvID": "main-yourLibraryX-headerIsCollapsed", "TxO7Ee8iwqBpkgznKHsd": "main-yourLibraryX-iconOnly", "TiJahFhH6KZaibhRtEOA": "main-yourLibraryX-isFlattened", "y2UicQnlTq148rL8Y0jp": "main-yourLibraryX-isScrolled", - "hjb8tUL3rpUa0ez4ZtAj": "main-yourLibraryX-library", + "nGNsefRulpsAkpRc": "main-yourLibraryX-libaryFilter", "wM72343CksOCaL3bZvKK": "main-yourLibraryX-library", + "rhZqj3QbXSg3tlhK": "main-yourLibraryX-library", + "hjb8tUL3rpUa0ez4ZtAj": "main-yourLibraryX-library", "doInDAjF8E_MHAPBv9fb": "main-yourLibraryX-library", "g581mszC8syz99uMMWsr": "main-yourLibraryX-libraryAfterDrop", "tXkgloQ88DHF_inQE69J": "main-yourLibraryX-libraryBeforeDrop", + "vlH99nxvCKwDGQrD0B0M": "main-yourLibraryX-libraryContainer", "PpUTJL2NIYDUnmfzVIbE": "main-yourLibraryX-libraryContainer", "hgJel0bLlS_1Uf0EIfSA": "main-yourLibraryX-libraryContainer", - "vlH99nxvCKwDGQrD0B0M": "main-yourLibraryX-libraryContainer", - "_0FuodatXU4_fToYAuYtY": "main-yourLibraryX-libraryFilter", + "F0DeHdUi7cNLlJ6D": "main-yourLibraryX-libraryContainer", "uBqliBvyhxGsiql8_OJv": "main-yourLibraryX-libraryFilter", "KluIYRb68APBNGHHItUz": "main-yourLibraryX-libraryFilter", + "_0FuodatXU4_fToYAuYtY": "main-yourLibraryX-libraryFilter", "dNphEfQzPRaQufS04jUm": "main-yourLibraryX-libraryIsCollapsed", "kJ_Q4aphh_uCJCZdzPpD": "main-yourLibraryX-libraryIsExpanded", "_XBlEstA77PgWTJzWbe1": "main-yourLibraryX-libraryItem", - "_K79lE9KrIAkl_bUSSUM": "main-yourLibraryX-libraryItemContainer", "WxM1eb7qnneSkMiT4dvw": "main-yourLibraryX-libraryItemContainer", "IfMCntz4HO4NOjoFdO2v": "main-yourLibraryX-libraryItemContainer", + "f_Q0q2fN0YmaU6zR": "main-yourLibraryX-libraryItemContainer", + "_K79lE9KrIAkl_bUSSUM": "main-yourLibraryX-libraryItemContainer", "oLOECYtBhVmBtyisKwew": "main-yourLibraryX-libraryOnDrop", + "MUdeHuV2SOcJv45f": "main-yourLibraryX-libraryRootlist", + "lJ0crV7IZJ8PxJZPA8x6": "main-yourLibraryX-libraryRootlist", "ifVI2CEdOZGgMWIUN2Cw": "main-yourLibraryX-libraryRootlist", "_W_0W9Uld1vxrRfsgdQR": "main-yourLibraryX-libraryRootlist", - "lJ0crV7IZJ8PxJZPA8x6": "main-yourLibraryX-libraryRootlist", "RGofdOZulhL2p9MRA5hg": "main-yourLibraryX-librarySort", "XZRX_ea9eNn4rOLpNGLp": "main-yourLibraryX-librarySortWrapper", "GG5skerNjHXAO6tXyyY0": "main-yourLibraryX-librarySortWrapper", - "qEiVyQ28VnOKb0LeijqL": "main-yourLibraryX-listItem", "vSC5QuwmzUhqUNWdMTJ5": "main-yourLibraryX-listItem", + "qEiVyQ28VnOKb0LeijqL": "main-yourLibraryX-listItem", "lCgfN9VxRRQtVKTLxWn4": "main-yourLibraryX-listItem", + "gRYsquyVjoW12gob": "main-yourLibraryX-listItem", "ojrThQm1wxR2gZ6GntJB": "main-yourLibraryX-listItemGroup", "Dtr130mQSR0j8k7bu5KS": "main-yourLibraryX-listItemGroupCompact", "nZSNG58XEPTX69mkNi9n": "main-yourLibraryX-listRowEntityImage", @@ -1495,13 +1841,15 @@ "LU0q0itTx2613uiATSig": "main-yourLibraryX-navItem", "KAcp7QFuEYSouAsuC5i_": "main-yourLibraryX-navItem", "AlqlOMBoMUPbFmLmkhhg": "main-yourLibraryX-navItemOffline", - "fFvRIGtMIgsOLVSq_JNS": "main-yourLibraryX-navItems", "QuHe04rU4bj0Z5U9E2Tk": "main-yourLibraryX-navItems", + "fFvRIGtMIgsOLVSq_JNS": "main-yourLibraryX-navItems", "UYeKN11KAw61rZoyjcgZ": "main-yourLibraryX-navLink", "hNvCMxbfz7HwgzLjt3IZ": "main-yourLibraryX-navLink", "DzWw3g4E_66wu9ktqn36": "main-yourLibraryX-navLinkActive", "Bh3b80dIrbc0keQ9kdso": "main-yourLibraryX-navLinkActive", "ep0_ry7CLwf91E1rN6Cv": "main-yourLibraryX-pulse", + "Wc8L9zgV8m0e1deB": "main-yourLibraryX-rootListHeader", + "sk3cJK5EGQYAniRpE6Iz": "main-yourLibraryX-rootListHeader", "B_HdWVSEWPHaOf9LQAtC": "main-yourLibraryX-rowCover", "Gw7E7MkWci1ttQhb4EK0": "npv-exitFullScreenButton-button", "gIobRDHAxkAvUaF4_OOL": "npv-nowPlayingBar-center", @@ -1510,25 +1858,33 @@ "N5cWYDvyLrfnyMZuqQHo": "npv-nowPlayingBar-left", "FTi9QEhetf4Q4__5sb4S": "npv-nowPlayingBar-right", "SVGHXIQcH9HYU7uGITw5": "npv-nowPlayingBar-section", + "o9SONbmdTWwKgbUo": "playback-bar", "pn5V0OzovI9p6b8nWq8p": "playback-bar", "KfxBdL0Zay0br7dCfxbV": "playback-bar", - "IPbBrI6yF4zhaizFmrg6": "playback-bar__progress-time-elapsed", "SRm6aI_til4K8p38XAxv": "playback-bar__progress-time-elapsed", + "IPbBrI6yF4zhaizFmrg6": "playback-bar__progress-time-elapsed", + "_xaGcuWD6w4FNkGu": "playback-bar__progress-time-elapsed", "p1ULRzPc4bD8eQ4T_wyp": "playback-progressbar", - "fDGGPFmD54w05ut8Ns4S": "playback-progressbar", + "Pmbe_Euf4R4fGarW": "playback-progressbar", "MFyTjrF4GU5ab2BrrOds": "playback-progressbar", - "B1vgcMXBqOxgMxXh5j1f": "playback-progressbar-container", + "fDGGPFmD54w05ut8Ns4S": "playback-progressbar", "tNhfHQhWhj9RoA1rfwY5": "playback-progressbar-container", - "DFtdzavKSbEhwKYkPTa6": "playback-progressbar-isInteractive", + "B1vgcMXBqOxgMxXh5j1f": "playback-progressbar-container", + "ihE8PJvbefgJmRhO": "playback-progressbar-isInteractive", "WFFDxnFUICVFNvvNU1IE": "playback-progressbar-isInteractive", "OEbZDzXdU1OUQactz3ZA": "playback-progressbar-isInteractive", - "gItY2hnfCB4TsDJCkPiO": "player-controls", + "DFtdzavKSbEhwKYkPTa6": "playback-progressbar-isInteractive", + "kvv2iSoxzbkifaMQ": "player-controls", "O56NBOTLyueNotL56zJt": "player-controls", + "gItY2hnfCB4TsDJCkPiO": "player-controls", + "kBq3sMkivgMPe5qr": "player-controls__buttons", "XrZ1iHVHAPMya3jkB2sa": "player-controls__buttons", "fYf41RQrFiGX4KJcSq_5": "player-controls__buttons", "NKUrT1GciYXAEEUtagN1": "player-controls__left", + "AcOiK58qUO3ELON8": "player-controls__left", "GcbM2tnkJCvKOjRfp8RQ": "player-controls__left", "Qt226Z4rBQs53aedRQBQ": "player-controls__right", + "O9zMd8LexCQNrpv5": "player-controls__right", "bCCN4Fy0V1eENMKmu7pM": "player-controls__right", "JzyZE2R09wq7xtjECDeR": "playlist-inlineSearchBox-clearButton", "FeWwGSRANj36qpOBoxdx": "playlist-inlineSearchBox-filterInput", @@ -1536,14 +1892,17 @@ "_h5mio6VqcL_fmiXAb1S": "playlist-inlineSearchBox-overlay", "sgZ_MgcS1NlccH19fYsa": "playlist-inlineSearchBox-searchIcon", "Hfgj4Zbb2ijt8g54MlCA": "playlist-inlineSearchBox-searchIconContainer", - "Bdcf5g__Rug3TGqSdbiy": "playlist-playlist-actionBarBackground-background", "CeSZLCa3sD6XCrx_ld6S": "playlist-playlist-actionBarBackground-background", + "WqX0xAKGPd8kxMke": "playlist-playlist-actionBarBackground-background", + "Bdcf5g__Rug3TGqSdbiy": "playlist-playlist-actionBarBackground-background", "rARdlCShKVQsvuXamFOX": "playlist-playlist-artistResultListTitle", "a4FkPOXWBc0nK4yzsJCf": "playlist-playlist-concertsFooter", "IWWS0F3oiajJG7nlrjXj": "playlist-playlist-ctaLink", "mWbx87vgssexrOs2tx4I": "playlist-playlist-disclaimerContainer", "_Z2TnFjt8GB5ryOtvyti": "playlist-playlist-emptySearchTermContainer", "Bl_kg24BjWgcXPokgEKy": "playlist-playlist-emptyStateContainer", + "c1pfvzSJryzeVvGqF7ni": "playlist-playlist-findMoreButton", + "CBIyjCdxqfUh3mwM": "playlist-playlist-findMoreButton", "yP3JLuwUNDIQHxRFilK3": "playlist-playlist-header", "QD13ZfPiO5otS0PU89wG": "playlist-playlist-heading", "tzeKawjOOKFw1KfQ34mG": "playlist-playlist-icon", @@ -1551,13 +1910,17 @@ "ZbLneLRe2x_OBOYZMX3M": "playlist-playlist-list", "rjdQaIDkSgcGmxkdI2vU": "playlist-playlist-listItem", "u9KYiVXeDRQDGlTDH6rM": "playlist-playlist-noBooklistSupportContainer", + "bxyjZHThZj4JwjoI": "playlist-playlist-page", + "MctbYzyDxSkjM_lMYIGc": "playlist-playlist-page", "umouqjSkMUbvF4I_Xz6r": "playlist-playlist-paragraph", "dZ3U5sTGUTdanNamXe1z": "playlist-playlist-playlist", - "rezqw3Q4OEPB1m4rmwfw": "playlist-playlist-playlistContent", "YdoIqRxigDKvBm7a7GSq": "playlist-playlist-playlistContent", + "rezqw3Q4OEPB1m4rmwfw": "playlist-playlist-playlistContent", + "LUXUp8VNfbIoaJCl": "playlist-playlist-playlistContent", + "g5EgezisQf4mgrDW": "playlist-playlist-playlistDescription", "xgmjVLxjqfcXK5BV_XyN": "playlist-playlist-playlistDescription", - "fUYMR7LuRXv0KJWFvRZA": "playlist-playlist-playlistDescription", "lykOktr3YIn79xOvVQtS": "playlist-playlist-playlistDescription", + "fUYMR7LuRXv0KJWFvRZA": "playlist-playlist-playlistDescription", "oq1ci28WPaRsWkvRiB_J": "playlist-playlist-playlistImageContainer", "hVcUafGrnsA6nD1dJzc5": "playlist-playlist-playlistInlineCurationBackButton", "FC40AOSbVM9LXjVi7bjO": "playlist-playlist-playlistInlineCurationCloseButton", @@ -1568,16 +1931,27 @@ "DWkbhLMcDefEZwJ5jXCq": "playlist-playlist-promoRow", "byOUxNEoiJOtBN6xTY24": "playlist-playlist-promoTitle", "kwe0I8sSNMv3gYBjkRYP": "playlist-playlist-recommendedTrackList", + "GQhmHj4H0qChpBRQ": "playlist-playlist-refreshButton", + "nrpccOvQ9WnBgNdneHBU": "playlist-playlist-refreshButton", "QmGi2oa43BTcEZ5MCr9T": "playlist-playlist-refreshButton", - "KodyK77Gzjb8NqPGpcgw": "playlist-playlist-searchBoxContainer", "Wss0KoPtWlohVbZKp8n3": "playlist-playlist-searchBoxContainer", + "KodyK77Gzjb8NqPGpcgw": "playlist-playlist-searchBoxContainer", + "fi2ogH5_6Zo6KFrv": "playlist-playlist-searchBoxContainer", + "AxpwP8HQvk3dZq9rdOk4": "playlist-playlist-searchBoxContainerFlexCenter", + "GUAmMC1m67Aw7HSS ": "playlist-playlist-searchBoxContainerFlexCenter", "sAPXlA_oxu_8x1Cn0NTC": "playlist-playlist-searchResultListContainer", + "Io77HTglJbEJrEwo": "playlist-playlist-sectionGrid", + "NZSm7v3HZHzo7ICrNZK5": "playlist-playlist-sectionGrid", + "RD3ze5s5sQ4S4Tyb": "playlist-playlist-sectionTitleWrapper", + "EHTN7OR8o4Jv5LQ8NVtR": "playlist-playlist-sectionTitleWrapper", "STDuzt77yRCueC4Ohenl": "playlist-playlist-seeMore", "NCKSUYdZaTMrobq8ilkc": "playlist-playlist-subtitle", "PZkwbwJD1afoCmJkGt8w": "playlist-playlist-top", "jpVuvMOCbpaRr_6FLf3W": "playlist-playlist-whiteOpacity", - "kHu_FTRgoBLSLeAJtyKY": "profile-editImage-editImageButtonContainer", + "Fr_MauWJKEy_NL6S": "profile-editImage-editImageButtonContainer", "vASn9mcl4gxUuplIX9Xy": "profile-editImage-editImageButtonContainer", + "kHu_FTRgoBLSLeAJtyKY": "profile-editImage-editImageButtonContainer", + "FiJDTFlh4kFp34G7": "profile-editImage-imageContainer", "Ws8Ec3GREpT5PAUesr9b": "profile-editImage-imageContainer", "wCWKq_kJnqpBX20J2047": "profile-editImage-imageContainer", "zHeo4VUxytwm6Ptr0QyA": "profile-userEditDetails-closeButton", @@ -1588,20 +1962,20 @@ "pGEUqO9v_snvTufHtvLg": "profile-userEditDetails-content", "zGbjZMZ1DTx4futEbN9l": "profile-userEditDetails-disclaimer", "DD5nCHAWIgFQ7W7xUYkK": "profile-userEditDetails-disclaimer", - "aM3plU4zzDqjWlvUHGYb": "profile-userEditDetails-header", "JjuNUgcpU5G8mP9fPFVx": "profile-userEditDetails-header", + "aM3plU4zzDqjWlvUHGYb": "profile-userEditDetails-header", "F8_EX1AeKxXNSeh1qiHq": "profile-userEditDetails-image", "E_XIT3yw1mv2SGH9DwBO": "profile-userEditDetails-image", "wvLAEV5wF5C5ej6rvimT": "profile-userEditDetails-label", "P_Wd3HXMzT3JT4ftZ53c": "profile-userEditDetails-label", - "gAQfzAUp1FuSXODeZJfP": "profile-userEditDetails-labelText", "zalgOdcLXMnwsiv2gej1": "profile-userEditDetails-labelText", - "uj7hczcCH1dZpse8Kfmi": "profile-userEditDetails-name", + "gAQfzAUp1FuSXODeZJfP": "profile-userEditDetails-labelText", "X6ndokDuE6CDp3667Fl1": "profile-userEditDetails-name", + "uj7hczcCH1dZpse8Kfmi": "profile-userEditDetails-name", "oN9QVvJKEtdTH3HGfCu1": "profile-userEditDetails-nameInput", "DnJD_wCahoYkGOVQPqxf": "profile-userEditDetails-nameInput", - "MDb7QhAtHeyM4gKj8j8t": "profile-userEditDetails-saveButton", "xNF0wfUgjZElohP3dgiS": "profile-userEditDetails-saveButton", + "MDb7QhAtHeyM4gKj8j8t": "profile-userEditDetails-saveButton", "umiKMm5NVr5UeBJCHS6U": "profile-userOverview-container", "wDIZ2yYKjfGI68I4cZ98": "profile-userOverview-header", "rMpf7sfaPDcj387_52fA": "profile-userOverview-imageContainer", @@ -1609,12 +1983,14 @@ "MWWPQQjbjRfoGdPD8D68": "profile-userOverview-subPage", "uJxNEI2k7x8UCDdMKELt": "profile-userOverview-title", "kWCnF32FrVtGHmTy8QeV": "profile-userOverview-topTrackSubPage", + "kPLEzaZADEAjWLC2s": "progress-bar", "TywOcKZEqNynWecCiATc": "progress-bar", "NP0jD9fPfkH_VmIJ4hEg": "progress-bar", "LS6q7yFFlYCqXoVxEETT": "progress-bar", + "RxlwJ6tCp4g6AAAH": "progress-bar__slider", "Vis45PPawTyED7Lt2_LI": "progress-bar__slider", - "A9z4_R9gegKhgs_3D7Os": "progress-bar__slider", "sUkzLbFQJMcD0k4CVDRl": "progress-bar__slider", + "A9z4_R9gegKhgs_3D7Os": "progress-bar__slider", "DuvrswZugGajIFNXObAr": "progress-bar--isDragging", "gTvMl6pwfRD9PobMSB5x": "queue-queuePage-emptyContainer", "hNAQG0TAe2WFYyf_iZEB": "queue-queuePage-emptyContainerTitle", @@ -1637,21 +2013,27 @@ "IiNKULzwo9JgYzlYVmhH": "Root__cinema-view", "FWlHsHhD0hSw1ldIXnOF": "Root__cinema-view--controls-hidden", "D8hDVfDlaGGt34V4nDGA": "Root__cinema-view--controls-hidden", - "nRSfonXHVr6utXYgk2Ui": "Root__globalNav", "wp7mZFPzV7Qmo51F0NA_": "Root__globalNav", "wgtzoAN2iFV0pENAqJko": "Root__globalNav", + "qPaMr9Jzt0_Doy3C": "Root__globalNav", + "nRSfonXHVr6utXYgk2Ui": "Root__globalNav", + "B0fBZOXNHNc2YVYO": "Root__main-view", "jEMA2gVoLgPQqAFrPhFw": "Root__main-view", "HD6RiDXIzzF9i4Bx26AE": "Root__main-view", "mMjg1Gizg9kYk8ILoTdp": "Root__main-view-overlay", - "BdcvqBAid96FaHAmPYw_": "Root__nav-bar", "WBFaUw_oOfN2m4aTxggt": "Root__nav-bar", + "vEHGULrufZMHBNrp": "Root__nav-bar", + "BdcvqBAid96FaHAmPYw_": "Root__nav-bar", + "YdGOYWQYr6kqh7KU": "Root__now-playing-bar", "JG5J9NWJkaUO9fiKECMA": "Root__now-playing-bar", "f9pLH3HRZQxdDLzNqKjE": "Root__now-playing-bar", + "LtqMCWXd5Nkemkym": "Root__right-sidebar", "OTfMDdomT5S7B5dbYTT8": "Root__right-sidebar", "lAtoMFm8vg4yAlGztUxI": "Root__right-sidebar", "PHgyArRLVFknlaOm31ID": "Root__top-bar", "ZQftYELq0aOsg6tPbVbV": "Root__top-container", "POZtIm1wHFiwlxZY5i0a": "Root__top-container", + "iRGr6yO6lPcAKUoT": "Root__top-container", "H1bRFdpa3qfekTVTeDwC": "Root__top-container--has-notice-bar", "WIPpgUp9J37Dwd0ZJnv0": "Root__top-container--right-sidebar-hidden", "lPapCDz3v_LipgXwe8gi": "Root__top-container--right-sidebar-hidden", @@ -1673,12 +2055,12 @@ "_ZcO2wuO5d8P3TbjEukA": "search-modal-modalBase", "s75RW4QQV6LZ_NCdFtag": "search-modal-modalBeforeClose", "_p8ywioveAdTZ8yZmPfr": "search-modal-modalWrapper", - "kUkjSLUuPyag37OAbVPH": "search-modal-resultItem", "ssvI7dCe2ZiLKChmS8tG": "search-modal-resultItem", + "kUkjSLUuPyag37OAbVPH": "search-modal-resultItem", "zi377dMLSwXnFiejYnRa": "search-modal-searchBar", "TQb3mB9R6qGsxvPnCurA": "search-modal-searchBar", - "HN_3fmk5t15DGlzDbx1_": "search-modal-searchIcon", "NG1F0VTHk73cEJ8TNfOn": "search-modal-searchIcon", + "HN_3fmk5t15DGlzDbx1_": "search-modal-searchIcon", "wIyyGaSPOHR78wksX3Us": "search-modal-searchModalInstructions", "I9yJ0MC3kmodVJJlA6iq": "search-modal-searchResultRow", "tz3aYeI1uG6kMzJOPWr6": "search-modal-searchResultTitle", @@ -1690,23 +2072,28 @@ "UdXTcsz1eiiInKThkfYp": "search-searchBrowse-browseAllWrapper", "M7LKuAFiIKaigK0fVguF": "search-searchBrowse-browseAllWrapper", "CCi1L2OQvgdZvxkRHeKE": "search-searchBrowse-SearchBrowse", + "Yo80NuQEJANhrEVG": "search-searchCategory-carousel", "ijZQH9pePkbB2MbJHCJV": "search-searchCategory-carousel", "efpPrkQXWhVHykZxOGCQ": "search-searchCategory-carousel", "XTk61Y8OkBdUT6Wj4F6i": "search-searchCategory-carouselButton", + "TnVIvshRoEChk0cA": "search-searchCategory-carouselButton", "bsdZjMeYT0eYpTXrGNaH": "search-searchCategory-carouselButton", "VfDGbMWaJe9rcefizTNk": "search-searchCategory-carouselButtonVisible", "Nd2dSpwo9xYae8YuQIkb": "search-searchCategory-carouselButtonVisible", - "KjPUGV8uMbl_0bvk9ePv": "search-searchCategory-categoryGrid", "TGtxFIzyLG46VAEOCaiI": "search-searchCategory-categoryGrid", "RXEjGtcNKiPQFxo613jX": "search-searchCategory-categoryGrid", + "KjPUGV8uMbl_0bvk9ePv": "search-searchCategory-categoryGrid", + "J0_HsNkGL5cInyeo": "search-searchCategory-categoryGrid", + "dxlv5wfAu8zgm7HY": "search-searchCategory-categoryGrid", "ZWI7JsjzJaR_G8Hy4W6J": "search-searchCategory-categoryGridItem", "UnwG2v9ISmcUhnjKj22Y": "search-searchCategory-categoryGridItem", - "e179_Eg8r7Ub6yjjxctr": "search-searchCategory-container", "XAwhJzXeTM5Iv2jLMCEj": "search-searchCategory-container", - "bMurPtRDRv5LuN78MTVG": "search-searchCategory-contentArea", + "e179_Eg8r7Ub6yjjxctr": "search-searchCategory-container", + "MyaStf5D5Im3gt9M": "search-searchCategory-contentArea", "JDUqvfRssLaT4MgywPx0": "search-searchCategory-contentArea", - "fVB_YDdnaDlztX7CcWTA": "search-searchCategory-SearchCategory", + "bMurPtRDRv5LuN78MTVG": "search-searchCategory-contentArea", "qG4q41T8PJl0SkVgUeJc": "search-searchCategory-SearchCategory", + "fVB_YDdnaDlztX7CcWTA": "search-searchCategory-SearchCategory", "VIeVCUUETJyYPCDpsBif": "search-searchCategory-wrapper", "IDNDdMa6ACThrEsGWsXX": "search-searchCategory-wrapper", "nGARy02O1AklvHT7OBLA": "search-searchResult-searchResultGrid", @@ -1735,56 +2122,74 @@ "kR0M2WSYVUj4cohADSFM": "show-show-episodesHeader", "OodUnm1iCEZTUeL6X1gj": "show-show-moreButton", "aQMtxnKeiJqZ9XCcDuZ7": "show-showPage-sectionWrapper", + "lnfAebTythIlCVYt": "view-homeShortcutsGrid-draggable", "g3f_cI5usQX7ZOQyDtA9": "view-homeShortcutsGrid-draggable", "BKloN2GNmpktpuW0mQAs": "view-homeShortcutsGrid-draggable", "vpQWUBWS_lXRLZMRJT7w": "view-homeShortcutsGrid-episodeExtraContent", "GSv7K805J9Jw7LB9tn2A": "view-homeShortcutsGrid-episodeProgressBar", + "MTZxItNFtw6_edav": "view-homeShortcutsGrid-equaliser", "jxXIarsEHgz2HoaVCVzA": "view-homeShortcutsGrid-equaliser", - "nlOU1unbFAd7ZHyeSMTH": "view-homeShortcutsGrid-grid", + "u3WfCkPk0G0cvPr8": "view-homeShortcutsGrid-equaliserImage", "w0blQbt2NXnWLPlDFpNm": "view-homeShortcutsGrid-grid", + "nlOU1unbFAd7ZHyeSMTH": "view-homeShortcutsGrid-grid", + "_d97hnSS4RcUazpo": "view-homeShortcutsGrid-grid", + "LB5oZSvwhswI_IJA": "view-homeShortcutsGrid-gridOf4Columns", "jdqzCrz9SoQp3ZUsU08w": "view-homeShortcutsGrid-gridOf4Columns", "gsCK1co9enL8tv4h7Cqe": "view-homeShortcutsGrid-gridOf4Columns", "ima0EKmsnCNUG08T82EM": "view-homeShortcutsGrid-iconDownloaded", "WWDxafTPs4AgThdcX5jN": "view-homeShortcutsGrid-image", "iXePCai5atydcl7RL5Mn": "view-homeShortcutsGrid-image", - "jvWzgRWM_y_9FFTYRCcB": "view-homeShortcutsGrid-imageContainer", "w8fgcKCl6FoFioBbV4Zk": "view-homeShortcutsGrid-imageContainer", + "jvWzgRWM_y_9FFTYRCcB": "view-homeShortcutsGrid-imageContainer", "zXwER4Lsqq_e7fVVaPkZ": "view-homeShortcutsGrid-imageWrapper", "KE9MrtvlIuoKtYKVr2wy": "view-homeShortcutsGrid-imageWrapper", "Tzzq1pG_inwo_oSOdyjb": "view-homeShortcutsGrid-main", "ICqWxTlKOkm9mUl_fSgS": "view-homeShortcutsGrid-main", - "JFDEiqT_8B5zeG_CDSdK": "view-homeShortcutsGrid-name", + "ANBO56sBYBwE5KlW": "view-homeShortcutsGrid-main", + "xkg3AUMe5RgMF2EZ": "view-homeShortcutsGrid-name", "RidYQJ8faceMVnFLBEMC": "view-homeShortcutsGrid-name", + "JFDEiqT_8B5zeG_CDSdK": "view-homeShortcutsGrid-name", "EzRmGRncgnv1zFgF4dqE": "view-homeShortcutsGrid-name", + "Ry8o_0aU89YNLKQl": "view-homeShortcutsGrid-nameContainer", "lr4c5HqnzSyhBz8Y68M0": "view-homeShortcutsGrid-nameContainer", - "TbrIq3NG2VYFoAUMSmp9": "view-homeShortcutsGrid-nameWrapper", "uy0HA5m_ehOLwt1y44DS": "view-homeShortcutsGrid-nameWrapper", - "vq0lsCoYrDUDvkuUIaRg": "view-homeShortcutsGrid-playButton", + "TbrIq3NG2VYFoAUMSmp9": "view-homeShortcutsGrid-nameWrapper", + "ayaktOJ_jwmNnoQu": "view-homeShortcutsGrid-nameWrapper", "wvTlGX9H5RlvLD9JmMFD": "view-homeShortcutsGrid-playButton", + "WNMOWL79Hy4D7Yl2": "view-homeShortcutsGrid-playButton", + "vq0lsCoYrDUDvkuUIaRg": "view-homeShortcutsGrid-playButton", "Kcb74zm1aMqGfPxTwO5s": "view-homeShortcutsGrid-PlayButtonContainer", + "k5Q_4BS4XUYj_79y": "view-homeShortcutsGrid-PlayButtonContainer", "iuJndmfe5nTDK5FQch9C": "view-homeShortcutsGrid-PlayButtonContainer", "s9c9x_mJq197U2hBzGtV": "view-homeShortcutsGrid-PlayButtonContainerVisible", "DqAHiYCkcPCcDorezUKI": "view-homeShortcutsGrid-recentlyPlayedShortcutIcon", "Z35BWOA10YGn5uc9YgAp": "view-homeShortcutsGrid-shortcut", "mFip2ELQbL3MKPkNpa2R": "view-homeShortcutsGrid-shortcut", - "jb9xD5ECTqKFK02qe3HZ": "view-homeShortcutsGrid-shortcutLink", + "Ie8mJhekF8sdLktM": "view-homeShortcutsGrid-shortcut", "pE62MKOt7O7y8dGnTySw": "view-homeShortcutsGrid-shortcutLink", + "K5QpMMPDsOAGACVl": "view-homeShortcutsGrid-shortcutLink", + "jb9xD5ECTqKFK02qe3HZ": "view-homeShortcutsGrid-shortcutLink", "bPmmKmSPLKMhtJSaUJRX": "view-homeShortcutsGrid-shortcutNewEpisodeIndicator", - "rPV8BmHZXaGIGT2HwvBB": "view-homeShortcutsGrid-shortcuts", "Y89c1_2SAoZFkICK7WVp": "view-homeShortcutsGrid-shortcuts", + "rPV8BmHZXaGIGT2HwvBB": "view-homeShortcutsGrid-shortcuts", + "rKgPkcCldeggaihi": "view-homeShortcutsGrid-shortcuts", "sLw5dxB32cAxVxqiar7J": "view-homeShortcutsGrid-title", - "lt7UxuNqHQBCO6IWyA_G": "view-homeShortcutsGrid-trailingIndicator", - "WPGf6HbizJpLXHLbETa5": "view-homeShortcutsGrid-trailingIndicator", "Z9WJyI5OCGSXF82DxhOH": "view-homeShortcutsGrid-trailingIndicator", - "eEZSnYlv7__34b2yulfm": "volume-bar", + "WPGf6HbizJpLXHLbETa5": "view-homeShortcutsGrid-trailingIndicator", + "lt7UxuNqHQBCO6IWyA_G": "view-homeShortcutsGrid-trailingIndicator", + "HPf93SEzFyoEXx2F": "view-homeShortcutsGrid-trailingIndicator", + "fLG2qkNam8uQwEyN ": "volume-bar", "lhIRi4qz54GmbEZahPwS": "volume-bar", "G4n5bTzWUvlftzDwrFVG": "volume-bar", - "FZhaXNtbN3Crwrgd0TA7": "volume-bar__icon-button", + "eEZSnYlv7__34b2yulfm": "volume-bar", "rT09bwCEwXECMbLbX_7A": "volume-bar__icon-button", + "gN7X0A3rvrI2fb0I": "volume-bar__icon-button", "GI7bVF6DBlyfIpWQKQs1": "volume-bar__icon-button", - "eyxRppgmsuUUNbazkw3q": "volume-bar__slider-container", + "FZhaXNtbN3Crwrgd0TA7": "volume-bar__icon-button", "x1jWng8HDweDS840aiIA": "volume-bar__slider-container", + "f6jYIQ_DFwRILHk0": "volume-bar__slider-container", "tIr7C6B0Pt6YKdOnqaqj": "volume-bar__slider-container", + "eyxRppgmsuUUNbazkw3q": "volume-bar__slider-container", "M_nS5sMI0NvZNLeFgFVa": "watchFeed-pillFour-keyframe", "jVGLy9ny4f46DxxtuC9z": "watchFeed-pillOne-keyframe", "DNVx4QdehkJ8two0tNVO": "watchFeed-pillThree-keyframe", @@ -1792,8 +2197,8 @@ "fLS8v3_EfBadEerbGVoR": "x-album-releasesDropdown", "iqDYHLUedgX8y1eM1zep": "x-carousel-button", "ge8K7iQqLE77g0FDGfDn": "x-carousel-carousel", - "Em2LrSSfvrgXQoajs6cm": "x-categoryCard-CategoryCard", "jXeqeqkxEBVeFjA2YydA": "x-categoryCard-CategoryCard", + "Em2LrSSfvrgXQoajs6cm": "x-categoryCard-CategoryCard", "tV9cjMpTPaykKsn2OVsw": "x-categoryCard-image", "Op2n2H4o1iY0Xo2wAUH9": "x-categoryCard-image", "i2yp6pOoZpYZLd5QWguN": "x-categoryCard-title", @@ -1803,161 +2208,247 @@ "HbKLiGoYM4dpuK8L4TMX": "x-downloadButton-button", "VmwiDoU6RpqyzK_n7XRO": "x-downloadButton-cancelDownload", "l_MW0G9qeeCKlVJwBykT": "x-downloadButton-cancelDownloadButton", - "BKsbV2Xl786X9a09XROH": "x-downloadButton-DownloadButton", "GWCBhKJqeZal3n5tCQwl": "x-downloadButton-DownloadButton", + "BKsbV2Xl786X9a09XROH": "x-downloadButton-DownloadButton", "rEx3EYgBzS8SoY7dmC6x": "x-downloadButton-progress", "_APVWqivXc4YqgsnpFkP": "x-downloadButton-removeDownload", "OadpZJiOaGfX6Qp4j6n5": "x-entityImage-circle", "AeEoI6ueagbJtaHl2cRd": "x-entityImage-defaultSize", "iJp40IxKg6emF6KYJ414": "x-entityImage-image", "vreceNX3ABcxyddeS83B": "x-entityImage-imageContainer", + "UWYK6PfFQB893_lp": "x-entityImage-imageContainer", "lKuMkIKSZanMIK6aQWfx": "x-entityImage-imageContainer", - "Ozitxbqs1vcOukDz3GDw": "x-entityImage-imagePlaceholder", "Toq4yy4bj8GGMSF5oWbj": "x-entityImage-imagePlaceholder", + "Ozitxbqs1vcOukDz3GDw": "x-entityImage-imagePlaceholder", "SBpny8HrUTBzSjk7Vtk1": "x-entityImage-large", "H71KtIrytVayf_dFofu7": "x-entityImage-medium", "O5_0cReFdHe81E0xFAD1": "x-entityImage-small", "CxurIfvXVb_TqGF4q8Yf": "x-entityImage-square", - "g3kBhX1E4EYEC2NFhhxG": "x-entityImage-xsmall", + "hWU_wiIM1kQv5e8w": "x-entityImage-xsmall", "hn6wKYDgRJLk3ObMeArw": "x-entityImage-xsmall", - "SgFtsvn3upY_tG6mnt4n": "x-explicit-icon", + "g3kBhX1E4EYEC2NFhhxG": "x-entityImage-xsmall", "zUF7IRW3lpivOZHjWRko": "x-explicit-icon", + "c0ofoqlz6qsF94Qs": "x-explicit-icon", + "SgFtsvn3upY_tG6mnt4n": "x-explicit-icon", + "uWEu68slnCYemCug": "x-explicit-label", "Ps9zgW56WZaBVLo1n3cg": "x-explicit-label", "CBiDL2Ry7eHHcTjB4SME": "x-explicit-label", "EsqEJ_NPrHsPkTbX4FW8": "x-filterBox-clearButton", "wCl7pMTEE68v1xuZeZiB": "x-filterBox-expandButton", + "oEf5FKtHrY0MvTJn": "x-filterBox-expandButton", "kFl3NAPY_5yenNQk7VpZ": "x-filterBox-expandButton", + "B9dvdDqEViQLXImZ": "x-filterBox-expandedOrHasFilter", "t6HIrX67Lp80Nj6tGauz": "x-filterBox-expandedOrHasFilter", "_quDRjKzF4E0L6Qv0l_F": "x-filterBox-expandedOrHasFilter", "KAydWoHSkQRqhQ1vkVwK": "x-filterBox-expandRight", "QZhV0hWVKlExlKr266jo": "x-filterBox-filterInput", + "J9kzhmWpm_gP93Cg": "x-filterBox-filterInput", "A1ZtjTtf0TzOYLOBjaQe": "x-filterBox-filterInput", + "XOUY4jxqDofxBKks": "x-filterBox-filterInputContainer", "JzZyf6OGCGtdscOZGt8Y": "x-filterBox-filterInputContainer", "CNJRzwGSOPxBBfje5FEK": "x-filterBox-filterInputContainer", "iiNt4l0UwY2wL42vyBc2": "x-filterBox-fullWidth", + "YdLvFaJkUKIYlDtK": "x-filterBox-overlay", "uAJxc_psYWeimY8N9bH9": "x-filterBox-overlay", "nt15x8uJhSbH9flWJ8r6": "x-filterBox-overlay", + "MUrzzntMKmAcnHxK": "x-filterBox-searchIcon", "CIVozJ8XNPJ60uMN23Yg": "x-filterBox-searchIcon", "AFy8ta8zNE0nUMR7Dwdk": "x-filterBox-searchIcon", - "_bjbHn5TABOW2s5LsEGX": "x-filterBox-searchIconContainer", + "pGGu_ewk1I8prnTr": "x-filterBox-searchIconContainer", "_oM_IwFBK0iLCBHKYvEp": "x-filterBox-searchIconContainer", - "epWhU7hHGktzlO_dop6z": "x-progressBar-fillColor", + "_bjbHn5TABOW2s5LsEGX": "x-filterBox-searchIconContainer", + "TqWNyOKcLVwGf3ACip7L": "x-keyboard", + "U24OzJYs51UeHZ59": "x-keyboard", + "aOt7KZP7xsBVqQCA": "x-music-video", + "ci6H_MpZRdckUmqMWg_c": "x-music-video", + "D67UurzxQ8r8MWjX": "x-music-video__text", + "f6MT6rqV71ixtu0N4m1h": "x-music-video__text", + "jLzAN9dQidF6eUHqVFk_": "x-progressBar-background", + "mKfEQ7SMFopnDLydx4HP": "x-progressBar-chapterHoverOverlay", + "_DrNS3e4ylFBzHyCWDF0": "x-progressBar-disableProgressAnimatable", + "ENGp3mqoFqfGLHott9_k": "x-progressBar-enabled", "pghDjOdspOgysFT72xOx": "x-progressBar-fillColor", + "dbkoNhkHaGoGEWoY": "x-progressBar-fillColor", + "u8BnskTQM8Dtq9DG": "x-progressBar-fillColor", + "D3ukq4oRWEkyLsWPYziv": "x-progressBar-fillColor", "JZ3wV4Y5GgAD0UFsQpE7": "x-progressBar-fillColor", - "NoOAOv6U6vtqj_ybS1Cd": "x-progressBar-progressBarBg", - "BDW4CFlIaMu9sHJRFCCg": "x-progressBar-progressBarBg", - "NuZQwzwm2yKxIGrFO_y4": "x-progressBar-progressBarBg", - "w699O0LgQRghXyl3bs9u": "x-progressBar-sliderArea", - "JRShuZ9K3QC6x8Nl0FMu": "x-progressBar-sliderArea", - "nfLzZOKzyFjyut6toQIa": "x-progressBar-sliderArea", - "SfuwkNwMOfcRX0KF6cPa": "x-progressBar-wrapper", - "ENGp3mqoFqfGLHott9_k": "x-progressBar-enabled", - "eVonGEFHbUE9S2xfVA8d": "x-progressBar-progressBar", - "jLzAN9dQidF6eUHqVFk_": "x-progressBar-background", - "uVRQz1zaxSUQVQ0s06iw": "x-progressBar-foregroundWrapper", - "Xm6MvwqQLnIU1TANX6Rt": "x-progressBar-middleground", + "epWhU7hHGktzlO_dop6z": "x-progressBar-fillColor", "vSotTDmUOWTotCYudlgI": "x-progressBar-foreground", - "snYg67O_WNutGrCsqzIZ": "x-progressBar-tooltipAnchor", + "uVRQz1zaxSUQVQ0s06iw": "x-progressBar-foregroundWrapper", "REMgVhoMClSNRZve5xaJ": "x-progressBar-handle", + "Xm6MvwqQLnIU1TANX6Rt": "x-progressBar-middleground", "SjP3wobd2iE2kK8vEIsg": "x-progressBar-progressAnimatable", - "_DrNS3e4ylFBzHyCWDF0": "x-progressBar-disableProgressAnimatable", + "eVonGEFHbUE9S2xfVA8d": "x-progressBar-progressBar", "edMDVHlUyeCR51HK_LGe": "x-progressBar-progressBarActive", + "ikE27Bu2baQl9eex": "x-progressBar-progressBarBg", + "NuZQwzwm2yKxIGrFO_y4": "x-progressBar-progressBarBg", + "NoOAOv6U6vtqj_ybS1Cd": "x-progressBar-progressBarBg", + "BDW4CFlIaMu9sHJRFCCg": "x-progressBar-progressBarBg", "UHDS6Tgm15et79EOkj_9": "x-progressBar-saberEnabled", - "mKfEQ7SMFopnDLydx4HP": "x-progressBar-chapterHoverOverlay", + "w699O0LgQRghXyl3bs9u": "x-progressBar-sliderArea", + "OAj0DnLweBkv1xyZ": "x-progressBar-sliderArea", + "nfLzZOKzyFjyut6toQIa": "x-progressBar-sliderArea", + "JRShuZ9K3QC6x8Nl0FMu": "x-progressBar-sliderArea", + "snYg67O_WNutGrCsqzIZ": "x-progressBar-tooltipAnchor", + "SfuwkNwMOfcRX0KF6cPa": "x-progressBar-wrapper", "AavUTirpKSAHapguSAy0": "x-proxySettings-fullWidth", - "qfjicQPaTTPrLWJWRxMQ": "x-proxySettings-horizontalPair", + "OaZHCwddWsUdyVcR": "x-proxySettings-horizontalPair", "YZUWpDgQNo3KQwdRQHh3": "x-proxySettings-horizontalPair", - "acVhMt5pELcXQyLaaPuV": "x-proxySettings-ProxySettings", + "qfjicQPaTTPrLWJWRxMQ": "x-proxySettings-horizontalPair", + "yxEKsQKOT3ALGvkk": "x-proxySettings-inputGroup", + "rSF8UwLzWlq43BzcPjy9": "x-proxySettings-inputGroup", + "nHgEqWYM1q0omZ6y": "x-proxySettings-ProxySettings", "k5yrn4bTRFh4dMUyEtX2": "x-proxySettings-ProxySettings", + "acVhMt5pELcXQyLaaPuV": "x-proxySettings-ProxySettings", "fOEOTcOAgPryvbYRYfOo": "x-searchHistoryEntries-clearSingleSearchHistory", "bONdaZB1x9i_WIeOBxEC": "x-searchHistoryEntries-clearSingleSearchHistory", "xmJl0s8mcJ3bfhtnoaP1": "x-searchHistoryEntries-clearSingleSearchHistoryButton", "fTpRygNKlEhmZyrgy6hD": "x-searchHistoryEntries-clearSingleSearchHistoryButton", - "ADri2r8kq8LVqSsNNvIr": "x-searchHistoryEntries-searchHistoryEntry", "rKHLepPL9WCKR7yfqS1s": "x-searchHistoryEntries-searchHistoryEntry", + "ADri2r8kq8LVqSsNNvIr": "x-searchHistoryEntries-searchHistoryEntry", "ZtY42R4YSo_W7VMeAg9m": "x-searchInput-searchInputClearButton", "LWugd2SlihapRT0PX8K3": "x-searchInput-searchInputClearButton", + "x_P48bkvdjg9Ejrv": "x-searchInput-searchInputClearButton", "mOLTJ2mxkzHJj6Y9_na_": "x-searchInput-searchInputClearIcon", "t2K4_iLmAyDtH7mcT5Wy": "x-searchInput-searchInputIconContainer", "lJ81QkQ1Aw5AK50afb9c": "x-searchInput-searchInputIconContainer", "QO9loc33XC50mMRUCIvf": "x-searchInput-searchInputInput", "NtkAQg9R1r5CjuP0XHwl": "x-searchInput-searchInputInput", "Mx356zpxhMqMxje_7QXv": "x-searchInput-searchInputInput", + "Y2bweAKVnkzeS7kT": "x-searchInput-searchInputInput", "XD3TMuMHmKsfbqieC6q_": "x-searchInput-searchInputOnSearch", + "MpoH5sdgCUbPL5LCl3Cy": "x-searchInput-searchInputSearchIcon", "H6jh9Xd7DNOq3NsLDmCB": "x-searchInput-searchInputSearchIcon", "aCQCOVyiFROs_qr_DvQ4": "x-searchInput-searchInputSearchIcon", - "MpoH5sdgCUbPL5LCl3Cy": "x-searchInput-searchInputSearchIcon", + "MoowIu72AlkfdGyU": "x-settings-betaPill", + "HmMsYbklBE868WIT": "x-settings-button", "rFFJg1UIumqUUFDgo6n7": "x-settings-button", "l_pugTMA53sS_K65iEiW": "x-settings-button", - "LOsH9AUZc2uFRlhqtpRT": "x-settings-container", + "wkB5E0mUVRIfahJh": "x-settings-container", "xQ33L7BC8Xbpdjo1gCAU": "x-settings-container", + "LOsH9AUZc2uFRlhqtpRT": "x-settings-container", "xbm3VfL2kntDlxtyDKwj": "x-settings-crossFadeContainer", "gO8pl5RByZlVaPDbaAVu": "x-settings-crossFadeContainer", - "gv7Rcc2ouDRSd0pto7Df": "x-settings-equalizerPanelCanvas", "i9YYQi3sdgQiftnT0G7l": "x-settings-equalizerPanelCanvas", + "vDS6c8peKI4kubjt": "x-settings-equalizerPanelCanvas", + "gv7Rcc2ouDRSd0pto7Df": "x-settings-equalizerPanelCanvas", "zrn877LGjVA_oYp2IKeu": "x-settings-equalizerPanelFilter", + "Ae1vSs1SgQIJg8D2": "x-settings-equalizerPanelFilter", "KBoHP10jGFBIjRt0TilW": "x-settings-equalizerPanelFilter", - "aOnWJeLmOj8plFB5QPSt": "x-settings-equalizerPanelFilters", + "o3DJR45fZ_0pNQU6": "x-settings-equalizerPanelFilters", "yApUWWS53HH6f8UXAOrD": "x-settings-equalizerPanelFilters", + "aOnWJeLmOj8plFB5QPSt": "x-settings-equalizerPanelFilters", "L9sAZBDUVTnJLn7TqR1E": "x-settings-equalizerPanelGainLabel", + "lKvEuzcEPCoNGFgg": "x-settings-equalizerPanelGainLabel", "DgABXUkFFAu6h3dxMlER": "x-settings-equalizerPanelGainLabel", - "aPIPHZU8F7TMi6LEw_Yq": "x-settings-equalizerPanelGainLabelDown", "W5vAyrwphGDgfEcVvWCG": "x-settings-equalizerPanelGainLabelDown", + "K_DMkBCcyMOs2Yid": "x-settings-equalizerPanelGainLabelDown", + "aPIPHZU8F7TMi6LEw_Yq": "x-settings-equalizerPanelGainLabelDown", "YKGOZh1y8HVOqQgbJB9F": "x-settings-equalizerPanelGainLabelUp", + "Po5gqX5UVEg2sexS": "x-settings-equalizerPanelGainLabelUp", "L6g4d49oWcb89EH_UvI1": "x-settings-equalizerPanelGainLabelUp", - "KGnDzV9IPjGQ8Ude8Cgl": "x-settings-equalizerPanelInput", + "Pd_ozszpkInZBB6n": "x-settings-equalizerPanelInput", "N4bVba_JCN915eH2yz7O": "x-settings-equalizerPanelInput", + "KGnDzV9IPjGQ8Ude8Cgl": "x-settings-equalizerPanelInput", "NWmefh0djDBBQmHr_mdf": "x-settings-equalizerPanelLabel", "LpIve1Boio_yH1npDnzz": "x-settings-equalizerPanelLabel", + "BcivVzIZZZESrWgr": "x-settings-equalizerPanelLabel", "PumO62RLWafcexCJx0oe": "x-settings-equalizerPanelPreset", - "HGN6qJ4noxOV2YSJWj3g": "x-settings-equalizerPanelWrapper", + "KFmSIxMyA8cN2Ww9": "x-settings-equalizerPanelWrapper", "S20UWmwnvAky4mj2zHXQ": "x-settings-equalizerPanelWrapper", - "j7cPtD65ArW8eWnGNrUo": "x-settings-equalizerPresetsContainer", + "HGN6qJ4noxOV2YSJWj3g": "x-settings-equalizerPanelWrapper", "xPMt4zCAUHum2VzFuHhR": "x-settings-equalizerPresetsContainer", + "ufy0R414J02XD6fB": "x-settings-equalizerPresetsContainer", + "j7cPtD65ArW8eWnGNrUo": "x-settings-equalizerPresetsContainer", + "Q7s0EKMZE7IiULrr": "x-settings-equalizerPresetsLabel", "ZzNb8P1Bz1VHtlhimIWM": "x-settings-equalizerPresetsLabel", "mJOG8oySLSgkKcRKQEcw": "x-settings-equalizerPresetsLabel", "PiFWoUIRceOm8SHTCakS": "x-settings-equalizerResetButtonWrapper", + "TWMi8AK_4SYTrHaW": "x-settings-equalizerResetButtonWrapper", "p5IaREhBZJIUrqcK5ifE": "x-settings-equalizerResetButtonWrapper", + "yPHKV8NeC2cWYXgj": "x-settings-equalizerSection", "xK6HEWejcSHKyWfhNiJc": "x-settings-equalizerSection", "PZqn_zrcjFHRxNwlhrCY": "x-settings-equalizerSection", - "FulR95cAh4QPdw6wUeRw": "x-settings-equalizerWrapper", + "WLJAOgr3wKZxyG1Y": "x-settings-equalizerWrapper", "hdG4NraLUWvgQWKmA3PQ": "x-settings-equalizerWrapper", + "FulR95cAh4QPdw6wUeRw": "x-settings-equalizerWrapper", + "lfXDZUXLhhKhFPjDO8by": "x-settings-firstColumn", + "FLjFgCRmVaE0WSqc": "x-settings-firstColumn", "GMGmbx5FRBd6DOVvzSgk": "x-settings-firstColumn", "g2SG95QPZfbn5RINccth": "x-settings-firstColumn", - "lfXDZUXLhhKhFPjDO8by": "x-settings-firstColumn", + "YiisLjvymVYZFCzm": "x-settings-firstColumnFlexCol", + "SriwiHcu3XwvQxkcUrT7": "x-settings-firstColumnFlexCol", "NnDXf1J9xlVM5AUuqVt1": "x-settings-header", + "zNSLxuwHNbQRa3po": "x-settings-header", "Euj6Lot2A7ir5T4xBiTf": "x-settings-header", - "DQ9fp5DjBJxKHeHqtFwC": "x-settings-headerContainer", + "m3wAPzmB1gE8hxl2": "x-settings-headerContainer", "lcSvuotO0TXX8S7X6D_A": "x-settings-headerContainer", + "DQ9fp5DjBJxKHeHqtFwC": "x-settings-headerContainer", "V4Bh2Ch7KvYUdn2s9ZdX": "x-settings-hidden", "SkbGMKYv49KtJNB5XxdX": "x-settings-input", "QDmFXu7LLdLf6M3BASsu": "x-settings-input", + "xQniT2BppTkWRon_": "x-settings-outputDeviceSection", + "EZJZ150aYYe1Btuu": "x-settings-outputDeviceWrapper", + "KsnD09q3oqAjJX3e": "x-settings-outputSectionHeader", + "KNLP4MNLSQLgBPSy": "x-settings-restartAppButton", "gvcgOXnAiNKEe_z92_lw": "x-settings-restartAppButton", "gdRu9OyPL_MvmSMgE042": "x-settings-restartAppButton", + "qV_CxbowaNkMarye": "x-settings-row", "weV_qxFz4gF5sPotO10y": "x-settings-row", "BMtRRwqaJD_95vJFMFD0": "x-settings-row", "eguwzH_QWTBXry7hiNj3": "x-settings-row", + "tbzmeqnI4LX_csLw5OiD": "x-settings-rowFlex", + "xwb_CxE4D7Qj6049": "x-settings-rowFlex", "yNitN64xoLNhzJlkfzOh": "x-settings-secondColumn", + "hgljrmQksnQei4xj": "x-settings-secondColumn", "rtzkwMH3kqwgnS_BxP_t": "x-settings-secondColumn", "jKCZodyn7H2Trr7dhvGm": "x-settings-secondColumn", + "fNaaQ0Cp8Yzy19j8": "x-settings-section", "c6TyNYOUJRIsjYZJZofy": "x-settings-section", "k6GFKyOKVR5Ruofj3aTQ": "x-settings-section", "YtAW7cQal8op8H9JkJ8T": "x-settings-section", + "q1zlQNbrfEOkztwo": "x-settings-tooltip", "GuwMf98GUBSpCDgf8KRA": "x-settings-tooltip", "NLh3bMez5RC2mwsYOf2g": "x-settings-tooltip", + "aDkMNsCUaMVj9OwB": "x-settings-tooltipIcon", "nW1RKQOkzcJcX6aDCZB4": "x-settings-tooltipIcon", "RDrhzf8eX7cW85q3CuCw": "x-settings-tooltipIcon", + "nfXxG0mhzscgMLkh": "x-settings-tooltipIconWrapper", "qBZYab2T7Yc4O5Nh0mjA": "x-settings-tooltipIconWrapper", "m8DaD7yVdc8BD9wWBC2Z": "x-settings-tooltipIconWrapper", "l35q2le3C8eAxw1TKELD": "x-settings-wordBreakAll", + "S1O4Ih6v6v7fRygP4KCo": "x-settings-zoomButton", + "r0yUGaV4u18XkNNw": "x-settings-zoomButton", + "vaYdXIxViQupa1f4": "x-settings-zoomButtonIcon", + "Zh1AxZ9mZXkGv7K21x_w": "x-settings-zoomButtonIcon", + "lUmJhmpJaPYyaHyD": "x-settings-zoomButtonIconWrapper", + "UYa1Biqvt3rEVXNnYv10": "x-settings-zoomButtonIconWrapper", + "eK47iKxDwhEEBaKJ": "x-settings-zoomButtonWrapper", + "irJifMCKE8IvGQDL": "x-settings-zoomContainer", + "lf4yTZ4yMVfKmCA5SMPw": "x-settings-zoomContainer", + "IPTj3y235_KY00eMEBnw": "x-settings-zoomRadioCircle", + "BR7Afs3nQD8ZI8ex": "x-settings-zoomRadioCircle", + "PSPAM8MOBo2aL5Ou": "x-settings-zoomRadioGroup", + "daWnjI73S4aYqpescEoo": "x-settings-zoomRadioGroup", + "Zh9WDZEPJykVe1MH": "x-settings-zoomRadioResetWrapper", + "q4cWz1w26csxbt9rrhKW": "x-settings-zoomRadioResetWrapper", + "asC7jKENnkkrcc0U": "x-settings-zoomRadioWrapper", + "k10w3NoptP37zkdXpvjg": "x-settings-zoomRadioWrapper", + "Rl9kLckq31obiFhu": "x-settings-zoomWrapper", + "g9hCW2WLsBgZP6SDKkTv": "x-settings-zoomWrapper", "w6j_vX6SF5IxSXrrkYw5": "x-sortBox-sortDropdown", + "LQ6y2jhZZtMS7xCr": "x-sortBox-sortDropdown", "fvlp70y1LlEYYjgC8yEs": "x-sortBox-sortDropdown", - "es9mguuOfkp6pBe1Bjlw": "x-toggle-indicator", "sxTbfT6ioOgvOvHzaBE7": "x-toggle-indicator", - "Js64TOfWtHksI6TQ6knT": "x-toggle-indicatorWrapper", + "t3q6uAPe7y0rAqRK": "x-toggle-indicator", + "es9mguuOfkp6pBe1Bjlw": "x-toggle-indicator", "Qb0gCQFXpstteRqnAF9q": "x-toggle-indicatorWrapper", - "n8tsDTs8wDH73kejYfXs": "x-toggle-input", + "Js64TOfWtHksI6TQ6knT": "x-toggle-indicatorWrapper", + "hzLQN8eYDPYyn1km": "x-toggle-indicatorWrapper", + "vTxmx3oTF8tWUPD7": "x-toggle-input", "Smo4wLHtFoFOOsJP0evo": "x-toggle-input", + "n8tsDTs8wDH73kejYfXs": "x-toggle-input", + "_nD_jYvjV80Rf8sX": "x-toggle-wrapper", "ztL0S6Lyoye5upzDS_yU": "x-toggle-wrapper", "JWYoNAyrIIdW30u4PSGE": "x-toggle-wrapper" } diff --git a/globals.d.ts b/globals.d.ts index 63a6a59e7a..2141d2d17a 100644 --- a/globals.d.ts +++ b/globals.d.ts @@ -176,6 +176,7 @@ declare namespace Spicetify { index: PlayerIndex; item: PlayerTrack; shuffle: boolean; + smartShuffle: boolean; repeat: number; speed: number; positionAsOfTimestamp: number; @@ -236,6 +237,17 @@ declare namespace Spicetify { album_disc_count: string; track_player: string; album_title: string; + "canvas.artist.avatar": string; + "canvas.artist.name": string; + "canvas.artist.uri": string; + "canvas.canvasUri": string; + "canvas.entityUri": string; + "canvas.explicit": string; + "canvas.fileId": string; + "canvas.id": string; + "canvas.type": string; + "canvas.uploadedBy": string; + "canvas.url": string; "collection.can_add": string; image_large_url: string; "actions.skipping_prev_past_track": string; @@ -255,6 +267,18 @@ declare namespace Spicetify { duration: string; album_track_count: string; popularity: string; + associated_video_id: string; + video_association: string; + video_association_image: string; + video_association_image_height: string; + video_association_image_height_large: string; + video_association_image_height_xxlarge: string; + video_association_image_large: string; + video_association_image_width: string; + video_association_image_width_large: string; + video_association_image_width_xxlarge: string; + video_association_image_xxlarge: string; + [key: string]: string; }; type Album = { type: string; @@ -298,6 +322,12 @@ declare namespace Spicetify { hifiStatus: number; }; namespace Player { + /** + * + * Contains vast array of internal APIs. + * Please explore in Devtool Console. + */ + const origin: any; /** * Register a listener `type` on Spicetify.Player. * @@ -1294,9 +1324,10 @@ declare namespace Spicetify { title: string; /** * You can specify a string for simple text display - * or a HTML element for interactive config/setting menu + * or a HTML element for interactive config/setting menu, + * or a React JSX element for React-based components */ - content: string | Element; + content: string | Element | React.JSX.Element; /** * Bigger window */ @@ -1313,6 +1344,8 @@ declare namespace Spicetify { const ReactDOM: any; /** React DOM Server instance to render components to string */ const ReactDOMServer: any; + /** React JSX runtime instance to transform JSX elements */ + const ReactJSX: any; /** Stock React components exposed from Spotify library */ namespace ReactComponent { diff --git a/jsHelper/spicetifyWrapper.js b/jsHelper/spicetifyWrapper.js index b262cbcadf..1ebe1e5ceb 100644 --- a/jsHelper/spicetifyWrapper.js +++ b/jsHelper/spicetifyWrapper.js @@ -580,16 +580,20 @@ const fnStr = (f) => { const exportedMemos = exportedReactObjects[Symbol.for("react.memo")]; const exportedForwardRefs = exportedReactObjects[Symbol.for("react.forward_ref")]; const exportedMemoFRefs = exportedMemos.filter((m) => m.type.$$typeof === Symbol.for("react.forward_ref")); - const exposeReactComponentsUI = ({ modules, functionModules, exportedForwardRefs }) => { - const componentNames = Object.keys(modules.filter(Boolean).find((e) => e.BrowserDefaultFocusStyleProvider)); - const componentRegexes = componentNames.map((n) => new RegExp(`"data-encore-id":(?:[a-zA-Z_$][w$]*\\.){2}${n}\\b`)); - const componentPairs = [functionModules.map((f) => [f, f]), exportedForwardRefs.map((f) => [f.render, f])] + const exposeReactComponentsUI = ({ modules, functionModules, exportedForwardRefs, exportedMemoFRefs }) => { + const componentNames = Object.keys(modules.filter(Boolean).find((e) => typeof e.BrowserDefaultFocusStyleProvider === "string")); + const componentRegexes = componentNames.map((n) => new RegExp(`"data-encore-id":(?:[a-zA-Z_$][\\w$]*\\.){2}${n}\\b`)); + const componentPairs = [ + functionModules.map((f) => [f, f]), + exportedForwardRefs.map((f) => [f.render, f]), + exportedMemoFRefs.map((f) => [f.type.render, f]), + ] .flat() .map(([s, f]) => [componentNames.find((_, i) => fnStr(s)?.match(componentRegexes[i])), f]); return Object.fromEntries(componentPairs); }; - const reactComponentsUI = exposeReactComponentsUI({ modules, functionModules, exportedForwardRefs }); + const reactComponentsUI = exposeReactComponentsUI({ modules, functionModules, exportedForwardRefs, exportedMemoFRefs }); const knownMenuTypes = ["album", "show", "artist", "track", "playlist"]; const menus = modules @@ -616,6 +620,11 @@ const fnStr = (f) => { }) .filter(Boolean); + const menuOverrides = [ + ["PlaylistMenu", exportedMemos?.find((m) => fnStr(m.type).includes("labelPlacement") && fnStr(m.type).includes("menuPlacement"))], + ["TrackMenu", exportedMemos?.find((m) => fnStr(m.type).includes("canSwitchVisuals") && fnStr(m.type).includes("showCanvasAction"))], + ].filter(([, v]) => v !== undefined); + const cardTypesToFind = ["album", "artist", "audiobook", "episode", "playlist", "profile", "show", "track"]; const cards = [ ...functionModules @@ -684,6 +693,7 @@ const fnStr = (f) => { .spicetify-sc-contentArea:hover .spicetify-sc-onHover .spicetify-sc-chevronBtn.spicetify-sc-chevronVisible { opacity: 1; } .spicetify-sc-contentArea:hover .spicetify-sc-onHover .spicetify-sc-chevronStart.spicetify-sc-chevronVisible { translate: 8px; } .spicetify-sc-contentArea:hover .spicetify-sc-onHover .spicetify-sc-chevronEnd.spicetify-sc-chevronVisible { translate: -8px; } +.spicetify-sc-scroller > div[role="presentation"] > button { margin-inline-start: 0px !important; } body[data-dragging-uri-type] .spicetify-sc-chevronBtn { pointer-events: none; }`; document.head.appendChild(style); } @@ -1041,7 +1051,25 @@ body[data-dragging-uri-type] .spicetify-sc-chevronBtn { pointer-events: none; }` StoreProvider: functionModules.find((m) => fnStr(m).includes("notifyNestedSubs") && fnStr(m).includes("serverState")), ScrollableContainer: _ScrollableContainer, IconComponent: reactComponentsUI.Icon, + Navigation: (() => { + // Spotify >= 1.2.86 + try { + const navModuleEntry = Object.entries(require.m).find(([, v]) => fnStr(v).includes("navigationalRoot") && fnStr(v).includes("noLink")); + if (navModuleEntry) { + const Logo = require(navModuleEntry[0])?.A; + if (typeof Logo === "function") { + const element = Logo({ customLink: "/", noLink: false, hasText: false }); + if (element?.type) return element.type; + } + } + // <= Spotify 1.2.85 + return exportedMemoFRefs.find((m) => fnStr(m.type?.render).includes("navigationalRoot")); + } catch { + return undefined; + } + })(), ...Object.fromEntries(menus), + ...Object.fromEntries(menuOverrides), }, ReactHook: { DragHandler: functionModules.find((m) => fnStr(m).includes("dataTransfer") && fnStr(m).includes("data-dragging")), @@ -1078,21 +1106,12 @@ body[data-dragging-uri-type] .spicetify-sc-chevronBtn { pointer-events: none; }` }); if (!Spicetify.ContextMenuV2._context) Spicetify.ContextMenuV2._context = Spicetify.React.createContext({}); - if (!Spicetify.ReactComponent.Navigation) - Spicetify.ReactComponent.Navigation = exportedMemoFRefs.find((m) => fnStr(m.type.render).includes("navigationalRoot")); (function waitForChunks() { - const listOfComponents = [ - "Slider", - "Dropdown", - "Toggle", - // "Cards.Artist", - // "Cards.Audiobook", - // "Cards.Profile", - // "Cards.Show", - // "Cards.Track", - ]; + const listOfComponents = ["Slider", "Dropdown", "Toggle", "Cards.Artist", "Cards.Audiobook", "Cards.Profile", "Cards.Show", "Cards.Track"]; if (listOfComponents.every((component) => component.split(".").reduce((o, k) => o?.[k], Spicetify.ReactComponent) !== undefined)) return; + const currentChunks = Object.entries(require.m); + const cache = Object.keys(require.m).map((id) => require(id)); const modules = cache .filter((module) => typeof module === "object") @@ -1108,45 +1127,49 @@ body[data-dragging-uri-type] .spicetify-sc-chevronBtn { pointer-events: none; }` ? Object.values(module).filter((v) => typeof v === "function" && !webpackFactories.has(v)) : [] ); - const exportedMemos = modules.filter((m) => m?.$$typeof === Symbol.for("react.memo")); - const cardTypesToFind = ["artist", "audiobook", "profile", "show", "track"]; - // const cards = [ - // ...functionModules - // .flatMap((m) => { - // return cardTypesToFind.map((type) => { - // if (m.toString().includes(`featureIdentifier:"${type}"`)) { - // cardTypesToFind.splice(cardTypesToFind.indexOf(type), 1); - // return [type[0].toUpperCase() + type.slice(1), m]; - // } - // }); - // }) - // .filter(Boolean), - // ...modules - // .flatMap((m) => { - // return cardTypesToFind.map((type) => { - // try { - // if (m?.type?.toString().includes(`featureIdentifier:"${type}"`)) { - // cardTypesToFind.splice(cardTypesToFind.indexOf(type), 1); - // return [type[0].toUpperCase() + type.slice(1), m]; - // } - // } catch {} - // }); - // }) - // .filter(Boolean), - // ]; + + const cardTypesToFind = ["audiobook", "profile", "show"]; + const lazyCards = [ + ...functionModules + .flatMap((m) => { + return cardTypesToFind.map((type) => { + if (fnStr(m).includes(`featureIdentifier:"${type}"`)) { + cardTypesToFind.splice(cardTypesToFind.indexOf(type), 1); + return [type[0].toUpperCase() + type.slice(1), m]; + } + }); + }) + .filter(Boolean), + ...modules + .flatMap((m) => { + return cardTypesToFind.map((type) => { + try { + if ((m?.type ? fnStr(m.type) : "").includes(`featureIdentifier:"${type}"`)) { + cardTypesToFind.splice(cardTypesToFind.indexOf(type), 1); + return [type[0].toUpperCase() + type.slice(1), m]; + } + } catch {} + }); + }) + .filter(Boolean), + ]; + Object.assign(Spicetify.ReactComponent.Cards, Object.fromEntries(lazyCards)); Spicetify.ReactComponent.Slider = wrapProvider(functionModules.find((m) => fnStr(m).includes("progressBarRef"))); Spicetify.ReactComponent.Toggle = functionModules.find((m) => fnStr(m).includes("onSelected") && fnStr(m).includes('type:"checkbox"')); - // Object.assign(Spicetify.ReactComponent.Cards, Object.fromEntries(cards)); // chunks - const dropdownChunk = chunks.find(([, value]) => fnStr(value).includes("dropDown") && fnStr(value).includes("isSafari")); + const dropdownChunk = currentChunks.find(([, value]) => fnStr(value).includes("dropdown-list") && fnStr(value).includes('"listbox"')); if (dropdownChunk) { Spicetify.ReactComponent.Dropdown = - Object.values(require(dropdownChunk[0]))?.[0]?.render ?? Object.values(require(dropdownChunk[0])).find((m) => typeof m === "function"); + Object.values(require(dropdownChunk[0])).find( + (m) => m?.$$typeof === Symbol.for("react.forward_ref") && fnStr(m.render).includes("dropdown-list") + ) ?? + Object.values(require(dropdownChunk[0]))?.[0]?.render ?? + Object.values(require(dropdownChunk[0])).find((m) => typeof m === "function"); } - const toggleChunk = chunks.find(([, value]) => fnStr(value).includes("onSelected") && fnStr(value).includes('type:"checkbox"')); + const toggleChunk = currentChunks.find(([, value]) => fnStr(value).includes("onSelected") && fnStr(value).includes('type:"checkbox"')); if (toggleChunk && !Spicetify.ReactComponent.Toggle) { Spicetify.ReactComponent.Toggle = Object.values(require(toggleChunk[0]))[0].render; } @@ -1300,22 +1323,11 @@ body[data-dragging-uri-type] .spicetify-sc-chevronBtn { pointer-events: none; }` setTimeout(bindColorExtractor, 10); return; } - let imageAnalysis = functionModules.find((m) => m.toString().match(/![\w$]+\.isFallback|\{extractColor/g)); + const imageAnalysis = functionModules.find( + (m) => fnStr(m).match(/![\w$]+\.isFallback|\{extractColor/g) || (fnStr(m).includes("extractedColors") && fnStr(m).includes("imageUris")) + ); const fallbackPreset = modules.find((m) => m?.colorDark); - // Search chunk in Spotify 1.2.13 or much older because it is impossible to find any distinguishing features - if (!imageAnalysis) { - let chunk = chunks.find( - ([, value]) => - (value.toString().match(/[\w$]+\.isFallback/g) || value.toString().includes("colorRaw:")) && value.toString().match(/.extractColor/g) - ); - if (!chunk) { - await new Promise((resolve) => setTimeout(resolve, 100)); - chunk = chunks.find(([, value]) => value.toString().match(/[\w$]+\.isFallback/g) && value.toString().match(/.extractColor/g)); - } - imageAnalysis = Object.values(require(chunk[0])).find((m) => typeof m === "function"); - } - Spicetify.extractColorPreset = async (image) => { const analysis = await imageAnalysis(Spicetify.GraphQL.Request, image); for (const result of analysis) { diff --git a/src/apply/apply.go b/src/apply/apply.go index d66a245131..cddad606b8 100644 --- a/src/apply/apply.go +++ b/src/apply/apply.go @@ -263,11 +263,12 @@ func insertCustomApp(jsPath string, flags Flag) { // React lazy loading patterns for dynamic imports reactPatterns := []string{ // Sync pattern: X.lazy((() => Y.Z(123).then(W.bind(W, 456)))) - `([\w_\$][\w_\$\d]*(?:\(\))?)\.lazy\(\((?:\(\)=>|function\(\)\{return )(\w+)\.(\w+)\(\d+\)\.then\(\w+\.bind\(\w+,\d+\)\)\}?\)\)`, + `([\w_\$][\w_\$\d]*(?:\(\))?)\.lazy\(\((?:\(\)=>|function\(\)\{return )(\w+)\.(\w+)\(["']?[\w-]+["']?\)\.then\(\w+\.bind\(\w+,["']?[\w-]+["']?\)\)\}?\)\)`, // Async pattern (1.2.78+): m.lazy(async()=>{...await o.e(123).then(...)}) - `([\w_\$][\w_\$\d]*)\.lazy\(async\(\)=>\{(?:[^{}]|\{[^{}]*\})*await\s+(\w+)\.(\w+)\(\d+\)\.then\(\w+\.bind\(\w+,\d+\)\)`, - // Async Promise.all pattern (1.2.78+): m.lazy(async()=>await Promise.all([...]).then(...)) - `([\w_\$][\w_\$\d]*(?:\(\))?)\.lazy\(async\(\)=>await\s+Promise\.all\(\[[^\]]+\]\)\.then\((\w+)\.bind\((\w+),\d+\)\)`, + `([\w_\$][\w_\$\d]*)\.lazy\(async\(\)=>\{(?:[^{}]|\{[^{}]*\})*await\s+(\w+)\.(\w+)\(["']?[\w-]+["']?\)\.then\(\w+\.bind\(\w+,["']?[\w-]+["']?\)\)`, + // Async Promise.all pattern (1.2.78+): m.lazy(async()=>await Promise.all([Y.Z(123),...]).then(...)) + // Capture the chunk loader from the first entry inside Promise.all, not from .bind() + `([\w_\$][\w_\$\d]*(?:\(\))?)\.lazy\(async\(\)=>await\s+Promise\.all\(\[(\w+)\.(\w+)\(["']?[\w-]+["']?\)`, } // React element/route patterns for path matching diff --git a/src/cmd/devtools.go b/src/cmd/devtools.go index d69493efda..d08c0e1c10 100644 --- a/src/cmd/devtools.go +++ b/src/cmd/devtools.go @@ -37,7 +37,12 @@ func EnableDevTools() { homePath = flatpakHome filePath = homePath + "/cache/spotify/offline.bnk" } else { - filePath = homePath + "/.cache/spotify/offline.bnk" + cacheHome := os.Getenv("XDG_CACHE_HOME") + if cacheHome == "" { + cacheHome = homePath + "/.cache" + } + + filePath = cacheHome + "/spotify/offline.bnk" } } diff --git a/src/preprocess/preprocess.go b/src/preprocess/preprocess.go index c21fbefc67..9fc97d1f9e 100644 --- a/src/preprocess/preprocess.go +++ b/src/preprocess/preprocess.go @@ -104,6 +104,13 @@ func Start(version string, spotifyBasePath string, extractedAppsPath string, fla readLocalCssMap(&cssTranslationMap) } + cssMapPairs := make([]string, 0, len(cssTranslationMap)*2) + for k, v := range cssTranslationMap { + cssMapPairs = append(cssMapPairs, k, v) + } + cssMapJSReplacer := strings.NewReplacer(cssMapPairs...) + cssMapJSStringRe := regexp.MustCompile(`"[^"]*"|'[^']*'|` + "`[^`]*`" + `|\b[a-zA-Z0-9_]{16,21}\s*:`) + verParts := strings.Split(flags.SpotifyVer, ".") spotifyMajor, spotifyMinor, spotifyPatch := 0, 0, 0 if len(verParts) > 0 { @@ -259,11 +266,19 @@ func Start(version string, spotifyBasePath string, extractedAppsPath string, fla }) } - for k, v := range cssTranslationMap { - utils.Replace(&content, k, func(submatches ...string) string { - return v - }) - } + content = cssMapJSStringRe.ReplaceAllStringFunc(content, func(match string) string { + first := match[0] + if first == '"' || first == '\'' || first == '`' { + inner := match[1 : len(match)-1] + return string(first) + cssMapJSReplacer.Replace(inner) + string(first) + } + colonIdx := strings.LastIndex(match, ":") + key := strings.TrimSpace(match[:colonIdx]) + if replaced, ok := cssTranslationMap[key]; ok { + return `"` + replaced + `"` + match[colonIdx:] + } + return match + }) content = colorVariableReplaceForJS(content) return content @@ -280,7 +295,7 @@ func Start(version string, spotifyBasePath string, extractedAppsPath string, fla } if fileName == "xpui.css" || fileName == "xpui-snapshot.css" { content = content + ` - .main-gridContainer-fixedWidth{grid-template-columns: repeat(auto-fill, var(--column-width));width: calc((var(--column-count) - 1) * var(--grid-gap)) + var(--column-count) * var(--column-width));}.main-cardImage-imageWrapper{background-color: var(--card-color, #333);border-radius: 6px;-webkit-box-shadow: 0 8px 24px rgba(0, 0, 0, .5);box-shadow: 0 8px 24px rgba(0, 0, 0, .5);padding-bottom: 100%;position: relative;width:100%;}.main-cardImage-image,.main-card-imagePlaceholder{height: 100%;left: 0;position: absolute;top: 0;width: 100%};.main-content-view{height:100%;} +.main-gridContainer-fixedWidth{grid-template-columns:repeat(auto-fill,var(--column-width));width:calc((var(--column-count) - 1) * var(--grid-gap)) + var(--column-count) * var(--column-width) )}.main-cardImage-imageWrapper{background-color:var(--card-color,#333);border-radius:6px;-webkit-box-shadow:0 8px 24px rgba(0,0,0,.5);box-shadow:0 8px 24px rgba(0,0,0,.5);padding-bottom:100%;position:relative;width:100%}.main-card-imagePlaceholder,.main-cardImage-image{height:100%;left:0;position:absolute;top:0;width:100%}.main-card-card{border-radius:8px;-webkit-box-flex:1;background:var(--spice-player);-ms-flex:1;flex:1;isolation:isolate;padding:16px;position:relative;-webkit-transition:background-color .3s;transition:background-color .3s;width:100%}.main-card-card:hover,.main-card-card[data-context-menu-open=true]{background:var(--spice-card)}.main-card-card:focus-within{background:var(--spice-card)}.main-card-card .main-card-cardLink{position:absolute;z-index:0}.RjYPjR7FsVf42b3a5Efm:before,.Z78JmW4GUvvxLXSFjb7R:not(:last-child):after{content:"•";margin:0 4px}.main-card-card a,.main-card-card button{position:relative;z-index:1}.main-card-cardLink{bottom:0;content:"";cursor:pointer;left:0;overflow:hidden;right:0;text-indent:100%;top:0;white-space:nowrap;z-index:0}.main-card-cardTitle{z-index:1}.main-card-cardTitleLink:focus,.main-card-cardTitleLink:hover{text-decoration:none}.Wmr5qZ5jui6X37XCrChA{opacity:0}.main-card-newEpisodeIndicator{margin-top:3px}.main-card-imageContainer{pointer-events:none;position:relative}.main-card-imageContainerOld,.main-card-imageContainerSkeleton{margin-bottom:16px}.main-card-cardMetadata{min-height:62px;-webkit-line-clamp:2}.main-card-DownloadStatusIndicator{bottom:12px;inset-inline-end:12px;position:absolute}.main-card-PlayButtonContainer{border-radius:500px;bottom:8px;-webkit-box-shadow:0 8px 8px rgba(var(--spice-rgb-shadow),.3);box-shadow:0 8px 8px rgba(var(--spice-rgb-shadow),.3);inset-inline-end:8px;opacity:0;pointer-events:none;position:absolute;-webkit-transform:translateY(8px);transform:translateY(8px);z-index:2}@media(pointer:coarse){.main-card-PlayButtonContainer{display:none}}@media(prefers-reduced-motion:no-preference){.main-card-PlayButtonContainer{-webkit-transition:opacity .2s ease-out,-webkit-transform .2s ease-out;transition:transform .2s ease-out,opacity .2s ease-out,-webkit-transform .2s ease-out}}.main-card-PlayButtonContainerVisible{opacity:1;pointer-events:auto;position:absolute;-webkit-transform:translateY(0);transform:translateY(0)}.main-card-cardContainer{--animation-speed:0.2s!important;white-space:normal}.main-card-card:hover .main-card-PlayButtonContainer,.main-card-cardContainer:hover .main-card-PlayButtonContainer{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}.main-card-card:focus-within .main-card-PlayButtonContainer,.main-card-cardContainer:focus-within{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}@media(pointer:fine){.main-card-card .main-card-cardLink:hover{cursor:pointer}.main-card-card:hover .main-card-PlayButtonContainer,.main-card-cardContainer:hover .main-card-PlayButtonContainer{opacity:1;pointer-events:auto;position:absolute}.main-card-card:focus-within .main-card-PlayButtonContainer,.main-card-cardContainer:focus-within .main-card-PlayButtonContainer{opacity:1;pointer-events:auto;position:absolute}}.main-card-cardMetadata,.v3isO2phyJAoZRkmme0G{display:-webkit-box;-webkit-box-orient:vertical} ` } return content @@ -1090,7 +1105,7 @@ func splitVersion(version string) ([3]int, error) { if len(vSplit) != 3 { return [3]int{}, errors.New("invalid version string") } - for i := 0; i < 3; i++ { + for i := range 3 { conv, err := strconv.Atoi(vSplit[i]) if err != nil { return [3]int{}, err