I read the Medium post Introducing geniusR a while ago and gave it a try. Since then this package has become the genius package, without the R. This package give access to the genius website so we can load song lyrics into R. This package does not require an API key.
Alternatively: There are other packages that could be used to download song lyrics and other packages to download other information about songs. But they all seem to require registering to obtain an API keys.
- The geniusr package is an alternative to the genius package. Notice this is a different package then the package with a captial R, that became the genius package.
- The discogger package can be installed from github. It can be used to download songs from the discogs website.
- The spotifyr can be used to connect to the Spotify API.
library(pacman)
p_load(genius, tidyverse, tidytext, tm, wordcloud)
Jimi_Are_You_Experienced <- genius_album(artist = "The Jimi Hendrix Experience",
album = "Are You Experienced [US Version]")
Joining, by = c("track_title", "track_n", "track_url")
Jimi_Are_You_Experienced
Jimi_songs <- Jimi_Are_You_Experienced %>% select(track_title) %>%
group_by(track_title) %>%
summarise(lines = n())
Jimi_songs2 <- Jimi_songs %>%
select(track_title)
Jimi_songs2
par(mfrow=c(3,4))
Jimi_lyric <- Jimi_Are_You_Experienced %>% filter(track_title=="Are You Experienced?") %>%
select(lyric) %>%
unnest_tokens(word, lyric) %>%
count(word, sort = TRUE) %>%
with(wordcloud(word, n))
Jimi_lyric <- Jimi_Are_You_Experienced %>% filter(track_title=="Fire") %>%
select(lyric) %>%
unnest_tokens(word, lyric) %>%
count(word, sort = TRUE) %>%
with(wordcloud(word, n))
Jimi_lyric <- Jimi_Are_You_Experienced %>% filter(track_title=="Foxy Lady") %>%
select(lyric) %>%
unnest_tokens(word, lyric) %>%
count(word, sort = TRUE) %>%
with(wordcloud(word, n))
Jimi_lyric <- Jimi_Are_You_Experienced %>% filter(track_title=="Hey Joe") %>%
select(lyric) %>%
unnest_tokens(word, lyric) %>%
count(word, sort = TRUE) %>%
with(wordcloud(word, n))
Jimi_lyric <- Jimi_Are_You_Experienced %>% filter(track_title=="I Don't Live Today") %>%
select(lyric) %>%
unnest_tokens(word, lyric) %>%
count(word, sort = TRUE) %>%
with(wordcloud(word, n))
Jimi_lyric <- Jimi_Are_You_Experienced %>% filter(track_title=="Love or Confusion") %>%
select(lyric) %>%
unnest_tokens(word, lyric) %>%
count(word, sort = TRUE) %>%
with(wordcloud(word, n))
Jimi_lyric <- Jimi_Are_You_Experienced %>% filter(track_title=="Manic Depression") %>%
select(lyric) %>%
unnest_tokens(word, lyric) %>%
count(word, sort = TRUE) %>%
with(wordcloud(word, n))
Jimi_lyric <- Jimi_Are_You_Experienced %>% filter(track_title=="May This Be Love") %>%
select(lyric) %>%
unnest_tokens(word, lyric) %>%
count(word, sort = TRUE) %>%
with(wordcloud(word, n))
Jimi_lyric <- Jimi_Are_You_Experienced %>% filter(track_title=="Purple Haze") %>%
select(lyric) %>%
unnest_tokens(word, lyric) %>%
count(word, sort = TRUE) %>%
with(wordcloud(word, n))
Jimi_lyric <- Jimi_Are_You_Experienced %>% filter(track_title=="The Wind Cries Mary") %>%
select(lyric) %>%
unnest_tokens(word, lyric) %>%
count(word, sort = TRUE) %>%
with(wordcloud(word, n))
Jimi_lyric <- Jimi_Are_You_Experienced %>% filter(track_title=="Third Stone from the Sun") %>%
select(lyric) %>%
unnest_tokens(word, lyric) %>%
count(word, sort = TRUE) %>%
with(wordcloud(word, n))
Jimi_lyric <- Jimi_Are_You_Experienced %>%
select(lyric) %>%
unnest_tokens(word, lyric) %>%
count(word, sort = TRUE) %>%
with(wordcloud(word, n))
Jimi_lyric <- Jimi_Are_You_Experienced %>%
select(lyric) %>%
unnest_tokens(word, lyric) %>%
count(word, sort = TRUE) %>%
with(wordcloud(word, n))
![](data:image/png;base64,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3TB5M1gmRtokkhP+/iBCPuhHW1ftT74/m+jb/3DHfFI263afEScI2RLQ6FqVzgjK24JQeS/7rig88Ic9pLp9xAYWVvF60fFuduuIFOyivYoCnaa7HK4IytuCsKsNR+INPd+iTv7Vi5U0yx9iuH2p3VmgFzxfvXxu/OgWPEKxQHn/n8mO0nmP/dXxdi4KyquRTb3bNmd/094EOlNjJ+e7AiivNlhNvkHN+fm3yHs2sa7tEAtQXm08DP0KmumjL94VOeCC5exP/jw1YFUz/UCnAeXVRhI817AdtNci/dsCsmaH5exP/oxnXoegvNpIgrSG7WApL/WwHhW/CH3lP1azP/kzyusQlFcLfCZwDH1Xury/nz50OitXXdQZ5ktrX4X2l7aDBx9MU90OVrBXXkhX7QHQh01FiFouLOu9wXL2J39GeR2C8mrhjVg/6BSbTMh/u/MBXm4siSIb3Nik+JNtYRsp8wLuYw64SYMZeCFdtQdAHzYVIVReyiA7ky1nf/Lns3VPpkBqQXm1wbsNlX3AffHxczujeCTWQxBVSW7eJdVGv0/OMJ4GI6RXXkhX7QHQh01FCJUTMXfEHrec/cmfy6Jea/F/pWCgvNrg8mYAK6hLSEkfGEBfioNhAVkNXVhFnQ/Bi82QL/eGTdIOvJCu2gOgD5uKEMjvBuXVBpf3zzCSN3cAsEnC+8B9lwH2syWlt0mhFB/CbVKSlVxIV+0B0IdNRQjkd4PyaoPL2xPka6/lcjDbo6CWQJ8I99PneyCZN3khXbUHQB82FSGQ3w3Kqw1JXpMH7JbbgbwsyPVgNShoK/hVket6yGmlI3RBUF5tcHndYY/c7gJr2cspLzlEkJAbeviEbIQO1XY+AWlyUF5t8G5DD3iDNysAWLyQKR4CoLccNjwBZpDE2igKpNlBebXB5R0DY3hzNwCb/7AEwn7pqGRoboHAgjbwVWsdoQuC8mqDy5sO8ClrlcZAX5bR6kGbH0AbXsH0uickQw8cwthyoLza4PKWR4Ln8hMXdkcDuz5W2QceI8Q8HmJ4P3ccACxq3cN0LVBebcgDc06FyreH2bCbpyGYFYE+7ysru4muwMyTFgTl1YYyquzG0jt9PEOmsyziL3Ryqso68PiOvRZ7wMBWO0BXBOVtOkwdYU1rH4NLgfI2HTngfrW1j8GlQHmbjjEwrrUPwbVAeZuIH48tVpIFkRYC5W0iZgLAGLzI26KgvE3Eqg4dZpY63gxpQlBeRFhQXkRYUF5EWFBeRFhQXkRYUF5EWFBeRFhQXkRYUF5EWFBeRFhQXkRYUF5EWFBeRFhQXkRYUF5EWFBeRFhQXkRYUF5EWFBeRFhQXkRYUF5EWFBeRFhQXkRYUF5EWFBeRFhQXkRYUF5EWFBeRFhQXkRYUF5EWFBeRFhQXkRYUF5EWFBeRFhQXkRYUF5EWFBeRFhQXkRYUF5EWFBeRFhQXkRYUF5EWFBeRFhQXkRYUF5EWFBeRFhQXkRYUF5EWFBeRFhQXkRYUF5EWFBeRFj+B3ox7aERp7mJAAAAAElFTkSuQmCC)
third_stone <- genius_lyrics(artist = "The Jimi Hendrix Experience", song = "Third Stone From The Sun")
third_stone
The_Beatles_td <- genius_album(artist = "The Beatles", album = "Let It Be")
Joining, by = c("track_title", "track_n", "track_url")
The_Beatles_td
The_Beatles_td %>% filter(track_n == 6)
The_Beatles_Let_It_be <- genius_lyrics(artist = "The Beatles", song = "Let It Be")
The_Beatles_Let_It_be
The_Beatles_Let_It_be_td <- The_Beatles_Let_It_be %>%
select(lyric, track_title) %>%
unnest_tokens(word, lyric)
The_Beatles_Let_It_be_td
The_Beatles_Let_It_be_sentiments <- The_Beatles_Let_It_be_td %>%
inner_join(get_sentiments("bing"), by = c(word = "word"))
The_Beatles_Let_It_be_sentiments
The_Beatles_Let_It_be_sentiments %>%
count(sentiment, word) %>%
ungroup() %>%
mutate(n = ifelse(sentiment == "negative", -n, n)) %>%
mutate(word = reorder(word, n)) %>%
ggplot(aes(word, n, fill = sentiment)) +
geom_bar(stat = "identity") +
ylab("Contribution to sentiment") +
coord_flip()
![](data:image/png;base64,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)
The_Beatles_Let_It_be_dtm <- The_Beatles_Let_It_be_td %>%
count(track_title, word) %>%
cast_dtm(track_title, word, n)
The_Beatles_Let_It_be_dtm
<<DocumentTermMatrix (documents: 1, terms: 63)>>
Non-/sparse entries: 63/0
Sparsity : 0%
Maximal term length: NA
Weighting : term frequency (tf)
Terms(The_Beatles_Let_It_be_dtm)
[1] "a" "agree" "an" "and" "answer" "be" "brokenhearted"
[8] "chance" "cloudy" "comes" "darkness" "find" "for" "front"
[15] "hour" "i" "in" "is" "it" "let" "light"
[22] "living" "mary" "may" "me" "mother" "music" "my"
[29] "myself" "night" "of" "on" "parted" "people" "right"
[36] "see" "she" "shine" "shines" "sound" "speaking" "standing"
[43] "still" "that" "the" "there" "they" "though" "til"
[50] "times" "to" "tomorrow" "trouble" "up" "wake" "when"
[57] "whisper" "will" "wisdom" "words" "world" "yeah" NA
tidy(The_Beatles_Let_It_be_dtm)
# Example with 2 different artists and albums
artist_albums <- tribble(
~artist, ~album,
"The Beatles", "Let It Be",
"The Jimi Hendrix Experience", "Are You Experienced [US Version]"
)
artist_albums
albums_td <- artist_albums %>%
add_genius(artist, album)
Joining, by = c("track_title", "track_n", "track_url")
LS0tCnRpdGxlOiAiZ2VuaXVzIEV4YW1wbGUgd2l0aCBKaW1pIEhlbmRyaXggYW5kIHRoZSBCZWF0bGVzIgpvdXRwdXQ6CiAgcGRmX2RvY3VtZW50OiBkZWZhdWx0CiAgaHRtbF9ub3RlYm9vazogZGVmYXVsdAogIHdvcmRfZG9jdW1lbnQ6IGRlZmF1bHQKLS0tCgpJIHJlYWQgdGhlIE1lZGl1bSBwb3N0IFtJbnRyb2R1Y2luZyBnZW5pdXNSXShodHRwczovL21lZGl1bS5jb20vQEpvc2lhaFBhcnJ5L2ludHJvZHVjaW5nLWdlbml1c3ItYjAxNzdjZTdiNGQ3KSBhIHdoaWxlIGFnbyBhbmQgZ2F2ZSBpdCBhIHRyeS4gIFNpbmNlIHRoZW4gdGhpcyBwYWNrYWdlIGhhcyBiZWNvbWUgdGhlIFtnZW5pdXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NpYWhQYXJyeS9nZW5pdXMpIHBhY2thZ2UsIHdpdGhvdXQgdGhlIFIuICBUaGlzIHBhY2thZ2UgZ2l2ZSBhY2Nlc3MgdG8gdGhlIFtnZW5pdXNdKGh0dHBzOi8vZ2VuaXVzLmNvbS8pIHdlYnNpdGUgc28gd2UgY2FuIGxvYWQgc29uZyBseXJpY3MgaW50byBSLiAgVGhpcyBwYWNrYWdlIGRvZXMgbm90IHJlcXVpcmUgYW4gQVBJIGtleS4KCioqQWx0ZXJuYXRpdmVseToqKiAgVGhlcmUgYXJlIG90aGVyIHBhY2thZ2VzIHRoYXQgY291bGQgYmUgdXNlZCB0byBkb3dubG9hZCBzb25nIGx5cmljcyBhbmQgb3RoZXIgcGFja2FnZXMgdG8gZG93bmxvYWQgb3RoZXIgaW5mb3JtYXRpb24gYWJvdXQgc29uZ3MuICBCdXQgdGhleSBhbGwgc2VlbSB0byByZXF1aXJlIHJlZ2lzdGVyaW5nIHRvIG9idGFpbiBhbiBBUEkga2V5cy4KCjEuIFRoZSBbZ2VuaXVzcl0oKSBwYWNrYWdlIGlzIGFuIGFsdGVybmF0aXZlIHRvIHRoZSBbZ2VuaXVzXShodHRwczovL2dpdGh1Yi5jb20vSm9zaWFoUGFycnkvZ2VuaXVzKSBwYWNrYWdlLiAgTm90aWNlIHRoaXMgaXMgYSBkaWZmZXJlbnQgcGFja2FnZSB0aGVuIHRoZSBwYWNrYWdlIHdpdGggYSBjYXB0aWFsIFIsIHRoYXQgYmVjYW1lIHRoZSBnZW5pdXMgcGFja2FnZS4KMi4gVGhlIFtkaXNjb2dnZXJdKGh0dHBzOi8vZXdlbm1lLmdpdGh1Yi5pby9kaXNjb2dnZXIvKSBwYWNrYWdlIGNhbiBiZSBpbnN0YWxsZWQgZnJvbSBnaXRodWIuICBJdCBjYW4gYmUgdXNlZCB0byBkb3dubG9hZCBzb25ncyBmcm9tIHRoZSBbZGlzY29nc10oaHR0cHM6Ly93d3cuZGlzY29ncy5jb20vKSB3ZWJzaXRlLgozLiBUaGUgW3Nwb3RpZnlyXShodHRwczovL3d3dy5yY2hhcmxpZS5jb20vc3BvdGlmeXIvKSBjYW4gYmUgdXNlZCB0byBjb25uZWN0IHRvIHRoZSBbU3BvdGlmeV0oaHR0cHM6Ly93d3cuc3BvdGlmeS5jb20vdXMvKSBBUEkuCgpgYGB7cn0KbGlicmFyeShwYWNtYW4pCgpwX2xvYWQoZ2VuaXVzLCB0aWR5dmVyc2UsIHRpZHl0ZXh0LCB0bSwgd29yZGNsb3VkKQpgYGAKCgpgYGB7cn0KSmltaV9BcmVfWW91X0V4cGVyaWVuY2VkIDwtIGdlbml1c19hbGJ1bShhcnRpc3QgPSAiVGhlIEppbWkgSGVuZHJpeCBFeHBlcmllbmNlIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxidW0gPSAiQXJlIFlvdSBFeHBlcmllbmNlZCBbVVMgVmVyc2lvbl0iKQpKaW1pX0FyZV9Zb3VfRXhwZXJpZW5jZWQKYGBgCgpgYGB7cn0KSmltaV9zb25ncyA8LSBKaW1pX0FyZV9Zb3VfRXhwZXJpZW5jZWQgJT4lIHNlbGVjdCh0cmFja190aXRsZSkgJT4lCiAgZ3JvdXBfYnkodHJhY2tfdGl0bGUpICU+JQogIHN1bW1hcmlzZShsaW5lcyA9IG4oKSkKYGBgCgpgYGB7cn0KSmltaV9zb25nczIgPC0gSmltaV9zb25ncyAlPiUgCiAgc2VsZWN0KHRyYWNrX3RpdGxlKQpKaW1pX3NvbmdzMgpgYGAKCmBgYHtyLCB3YXJuaW5nPUZBTFNFfQpwYXIobWZyb3c9YygzLDQpKQoKSmltaV9seXJpYyA8LSBKaW1pX0FyZV9Zb3VfRXhwZXJpZW5jZWQgJT4lIGZpbHRlcih0cmFja190aXRsZT09IkFyZSBZb3UgRXhwZXJpZW5jZWQ/IikgJT4lIAogIHNlbGVjdChseXJpYykgJT4lCiAgdW5uZXN0X3Rva2Vucyh3b3JkLCBseXJpYykgJT4lCiAgY291bnQod29yZCwgc29ydCA9IFRSVUUpICU+JQogIHdpdGgod29yZGNsb3VkKHdvcmQsIG4pKQpKaW1pX2x5cmljIDwtIEppbWlfQXJlX1lvdV9FeHBlcmllbmNlZCAlPiUgZmlsdGVyKHRyYWNrX3RpdGxlPT0iRmlyZSIpICU+JSAKICBzZWxlY3QobHlyaWMpICU+JQogIHVubmVzdF90b2tlbnMod29yZCwgbHlyaWMpICU+JQogIGNvdW50KHdvcmQsIHNvcnQgPSBUUlVFKSAlPiUKICB3aXRoKHdvcmRjbG91ZCh3b3JkLCBuKSkKSmltaV9seXJpYyA8LSBKaW1pX0FyZV9Zb3VfRXhwZXJpZW5jZWQgJT4lIGZpbHRlcih0cmFja190aXRsZT09IkZveHkgTGFkeSIpICU+JSAKICBzZWxlY3QobHlyaWMpICU+JQogIHVubmVzdF90b2tlbnMod29yZCwgbHlyaWMpICU+JQogIGNvdW50KHdvcmQsIHNvcnQgPSBUUlVFKSAlPiUKICB3aXRoKHdvcmRjbG91ZCh3b3JkLCBuKSkKSmltaV9seXJpYyA8LSBKaW1pX0FyZV9Zb3VfRXhwZXJpZW5jZWQgJT4lIGZpbHRlcih0cmFja190aXRsZT09IkhleSBKb2UiKSAlPiUgCiAgc2VsZWN0KGx5cmljKSAlPiUKICB1bm5lc3RfdG9rZW5zKHdvcmQsIGx5cmljKSAlPiUKICBjb3VudCh3b3JkLCBzb3J0ID0gVFJVRSkgJT4lCiAgd2l0aCh3b3JkY2xvdWQod29yZCwgbikpCgoKSmltaV9seXJpYyA8LSBKaW1pX0FyZV9Zb3VfRXhwZXJpZW5jZWQgJT4lIGZpbHRlcih0cmFja190aXRsZT09IkkgRG9uJ3QgTGl2ZSBUb2RheSIpICU+JSAKICBzZWxlY3QobHlyaWMpICU+JQogIHVubmVzdF90b2tlbnMod29yZCwgbHlyaWMpICU+JQogIGNvdW50KHdvcmQsIHNvcnQgPSBUUlVFKSAlPiUKICB3aXRoKHdvcmRjbG91ZCh3b3JkLCBuKSkKSmltaV9seXJpYyA8LSBKaW1pX0FyZV9Zb3VfRXhwZXJpZW5jZWQgJT4lIGZpbHRlcih0cmFja190aXRsZT09IkxvdmUgb3IgQ29uZnVzaW9uIikgJT4lIAogIHNlbGVjdChseXJpYykgJT4lCiAgdW5uZXN0X3Rva2Vucyh3b3JkLCBseXJpYykgJT4lCiAgY291bnQod29yZCwgc29ydCA9IFRSVUUpICU+JQogIHdpdGgod29yZGNsb3VkKHdvcmQsIG4pKQpKaW1pX2x5cmljIDwtIEppbWlfQXJlX1lvdV9FeHBlcmllbmNlZCAlPiUgZmlsdGVyKHRyYWNrX3RpdGxlPT0iTWFuaWMgRGVwcmVzc2lvbiIpICU+JSAKICBzZWxlY3QobHlyaWMpICU+JQogIHVubmVzdF90b2tlbnMod29yZCwgbHlyaWMpICU+JQogIGNvdW50KHdvcmQsIHNvcnQgPSBUUlVFKSAlPiUKICB3aXRoKHdvcmRjbG91ZCh3b3JkLCBuKSkKSmltaV9seXJpYyA8LSBKaW1pX0FyZV9Zb3VfRXhwZXJpZW5jZWQgJT4lIGZpbHRlcih0cmFja190aXRsZT09Ik1heSBUaGlzIEJlIExvdmUiKSAlPiUgCiAgc2VsZWN0KGx5cmljKSAlPiUKICB1bm5lc3RfdG9rZW5zKHdvcmQsIGx5cmljKSAlPiUKICBjb3VudCh3b3JkLCBzb3J0ID0gVFJVRSkgJT4lCiAgd2l0aCh3b3JkY2xvdWQod29yZCwgbikpCgpKaW1pX2x5cmljIDwtIEppbWlfQXJlX1lvdV9FeHBlcmllbmNlZCAlPiUgZmlsdGVyKHRyYWNrX3RpdGxlPT0iUHVycGxlIEhhemUiKSAlPiUgCiAgc2VsZWN0KGx5cmljKSAlPiUKICB1bm5lc3RfdG9rZW5zKHdvcmQsIGx5cmljKSAlPiUKICBjb3VudCh3b3JkLCBzb3J0ID0gVFJVRSkgJT4lCiAgd2l0aCh3b3JkY2xvdWQod29yZCwgbikpCkppbWlfbHlyaWMgPC0gSmltaV9BcmVfWW91X0V4cGVyaWVuY2VkICU+JSBmaWx0ZXIodHJhY2tfdGl0bGU9PSJUaGUgV2luZCBDcmllcyBNYXJ5IikgJT4lIAogIHNlbGVjdChseXJpYykgJT4lCiAgdW5uZXN0X3Rva2Vucyh3b3JkLCBseXJpYykgJT4lCiAgY291bnQod29yZCwgc29ydCA9IFRSVUUpICU+JQogIHdpdGgod29yZGNsb3VkKHdvcmQsIG4pKQpKaW1pX2x5cmljIDwtIEppbWlfQXJlX1lvdV9FeHBlcmllbmNlZCAlPiUgZmlsdGVyKHRyYWNrX3RpdGxlPT0iVGhpcmQgU3RvbmUgZnJvbSB0aGUgU3VuIikgJT4lIAogIHNlbGVjdChseXJpYykgJT4lCiAgdW5uZXN0X3Rva2Vucyh3b3JkLCBseXJpYykgJT4lCiAgY291bnQod29yZCwgc29ydCA9IFRSVUUpICU+JQogIHdpdGgod29yZGNsb3VkKHdvcmQsIG4pKQoKSmltaV9seXJpYyA8LSBKaW1pX0FyZV9Zb3VfRXhwZXJpZW5jZWQgJT4lIAogIHNlbGVjdChseXJpYykgJT4lCiAgdW5uZXN0X3Rva2Vucyh3b3JkLCBseXJpYykgJT4lCiAgY291bnQod29yZCwgc29ydCA9IFRSVUUpICU+JQogIHdpdGgod29yZGNsb3VkKHdvcmQsIG4pKQpgYGAKCmBgYHtyfQpKaW1pX2x5cmljIDwtIEppbWlfQXJlX1lvdV9FeHBlcmllbmNlZCAlPiUgCiAgc2VsZWN0KGx5cmljKSAlPiUKICB1bm5lc3RfdG9rZW5zKHdvcmQsIGx5cmljKSAlPiUKICBjb3VudCh3b3JkLCBzb3J0ID0gVFJVRSkgJT4lCiAgd2l0aCh3b3JkY2xvdWQod29yZCwgbikpCmBgYAoKYGBge3J9CnRoaXJkX3N0b25lIDwtIGdlbml1c19seXJpY3MoYXJ0aXN0ID0gIlRoZSBKaW1pIEhlbmRyaXggRXhwZXJpZW5jZSIsIHNvbmcgPSAiVGhpcmQgU3RvbmUgRnJvbSBUaGUgU3VuIikKCnRoaXJkX3N0b25lCmBgYAoKCgoKYGBge3J9ClRoZV9CZWF0bGVzX3RkIDwtIGdlbml1c19hbGJ1bShhcnRpc3QgPSAiVGhlIEJlYXRsZXMiLCBhbGJ1bSA9ICJMZXQgSXQgQmUiKQpUaGVfQmVhdGxlc190ZAoKVGhlX0JlYXRsZXNfdGQgJT4lIGZpbHRlcih0cmFja19uID09IDYpCgpUaGVfQmVhdGxlc19MZXRfSXRfYmUgPC0gZ2VuaXVzX2x5cmljcyhhcnRpc3QgPSAiVGhlIEJlYXRsZXMiLCBzb25nID0gIkxldCBJdCBCZSIpClRoZV9CZWF0bGVzX0xldF9JdF9iZQoKVGhlX0JlYXRsZXNfTGV0X0l0X2JlX3RkIDwtIFRoZV9CZWF0bGVzX0xldF9JdF9iZSAlPiUgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdChseXJpYywgdHJhY2tfdGl0bGUpICU+JSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5uZXN0X3Rva2Vucyh3b3JkLCBseXJpYykKVGhlX0JlYXRsZXNfTGV0X0l0X2JlX3RkCgpUaGVfQmVhdGxlc19MZXRfSXRfYmVfc2VudGltZW50cyA8LSBUaGVfQmVhdGxlc19MZXRfSXRfYmVfdGQgJT4lCiAgICAgaW5uZXJfam9pbihnZXRfc2VudGltZW50cygiYmluZyIpLCBieSA9IGMod29yZCA9ICJ3b3JkIikpClRoZV9CZWF0bGVzX0xldF9JdF9iZV9zZW50aW1lbnRzCgpUaGVfQmVhdGxlc19MZXRfSXRfYmVfc2VudGltZW50cyAlPiUKICBjb3VudChzZW50aW1lbnQsIHdvcmQpICU+JQogIHVuZ3JvdXAoKSAlPiUKICBtdXRhdGUobiA9IGlmZWxzZShzZW50aW1lbnQgPT0gIm5lZ2F0aXZlIiwgLW4sIG4pKSAlPiUKICBtdXRhdGUod29yZCA9IHJlb3JkZXIod29yZCwgbikpICU+JQogIGdncGxvdChhZXMod29yZCwgbiwgZmlsbCA9IHNlbnRpbWVudCkpICsKICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikgKwogIHlsYWIoIkNvbnRyaWJ1dGlvbiB0byBzZW50aW1lbnQiKSArCiAgY29vcmRfZmxpcCgpCgoKVGhlX0JlYXRsZXNfTGV0X0l0X2JlX2R0bSA8LSBUaGVfQmVhdGxlc19MZXRfSXRfYmVfdGQgJT4lCiAgY291bnQodHJhY2tfdGl0bGUsIHdvcmQpICU+JQogIGNhc3RfZHRtKHRyYWNrX3RpdGxlLCB3b3JkLCBuKQoKVGhlX0JlYXRsZXNfTGV0X0l0X2JlX2R0bQoKVGVybXMoVGhlX0JlYXRsZXNfTGV0X0l0X2JlX2R0bSkKCnRpZHkoVGhlX0JlYXRsZXNfTGV0X0l0X2JlX2R0bSkKCmBgYAoKYGBge3J9CiMgRXhhbXBsZSB3aXRoIDIgZGlmZmVyZW50IGFydGlzdHMgYW5kIGFsYnVtcwphcnRpc3RfYWxidW1zIDwtIHRyaWJibGUoCiB+YXJ0aXN0LCB+YWxidW0sCiAiVGhlIEJlYXRsZXMiLCAiTGV0IEl0IEJlIiwKICJUaGUgSmltaSBIZW5kcml4IEV4cGVyaWVuY2UiLCAiQXJlIFlvdSBFeHBlcmllbmNlZCBbVVMgVmVyc2lvbl0iCikKYXJ0aXN0X2FsYnVtcwoKCmFsYnVtc190ZCA8LSBhcnRpc3RfYWxidW1zICU+JQogYWRkX2dlbml1cyhhcnRpc3QsIGFsYnVtKQphbGJ1bXNfdGQKYGBgCgoKCgoKCgo=