Introduction
In this analysis, the aim is to uncover what words are most commonly used in each album by musical artist Harry Styles. This knowledge will hopefully assist in determining the meaning behind each of Styles’s albums and uncover the most common vocabulary used by him. This analysis was created using a data set made by author Beth Gronski. The analysis was also successful with collaboration from Assistant Professor Melanie Walsh at the University of Washington.
Harry Styles’ Debut
Harry Styles’ debuted his first album on May 12, 2017 according to Spotify. This album is the first time Harry Styles is playing music without his previous band, One Direction. According to Apple Music, “Across 10 songs, Harry Styles has the time of his life and emerges from his boy-band chrysalis a rock star.”
Fine Line
Fine Line is Harry Styles’ sophomore album which was released on December 13, 2019 with 12 songs. Apple Music describes Fine Line as, “Identity—more specifically, self-discovery—is at the core of his sophomore album Fine Line…Unlike his last album, Fine Line practically explodes in color. High-pitched harmonies, buoyant string arrangements, and gently psychedelic melodies evoke an almost dreamlike abandon, and once in a while he goes for broke.”
Harry’s House
Harry’s House is Harry Styles’ most recent album, which was freshly released on May 20, 2022. There are 13 songs on the album. Written during the pandemic, Harry’s House was completed before Harry Styles was able to tour for his Fine Line Album. “His upbeat, lightly electronic third LP riffs on the concept of home, viewing it less as a geographical location and more as a state of mind—his mind. ‘Imagine it’s a day in my house, a day in my mind,’ he said. ‘What do I go through? I’m playing fun music. I’m playing sad music. I have doubts. I’m feeling stuff.’” Apple Music writes in the biography of Harry’s House.
Harry Styles v. Fine Line
This is my analysis of the lyrics used in Harry Styles’ debut album and album entitled Fine Line. The red line down the center of the graph depicts the divide between the two albums, and the dots closest to the line depicts words that the albums have the most in common. In this analysis, the word “home” is used exactly 14 times in both albums. This is a curious discovery especially because Harry’s third album, Harry’s House, is centered around the theme of home. Both albums use the words “know” and “just” many times, but they are used more on Fine Line. This could be because Harry’s sophomore album has more songs on it. There are also words that are unique to each of the albums, and rarely used on the other. On Harry Styles, the word “la” is used many times, but there is most likely debate on whether this word is meaningful to the analysis. Regardless, the debut album also uses “none” and “angel” unlike Fine Line. The sophomore album uses “going”, “ever”, and “oh” which are rarely used on the debut album.
Harry Styles v. Harry’s House
This is my analysis of the lyrics used in Harry Styles and Harry’s House. Between these two albums, the word “baby” is used exactly 15 times between both albums. Like the comparison with Harry Styles and Fine Line, the debut album and Harry’s House also use the words “know” and “just” most often. They are used more on Harry’s House then Harry Styles for most likely the same reason as before. This discovery leads me to believe these are Harry’s most used words in lyrics. After checking words that the albums have in common, I looked for unique words in Harry’s House. The most unique words are “cinema”, “love”, and “got”. “Got” is used a few times in Fine Line but “cinema” is never used and “love” is only used once. The use of “cinema” can be explained by the song with that title. “Cinema” is only used in that song, and is repeated often. However “love” is used throughout several songs on Harry’s House and I believe can be another theme on the album.
Fine Line v. Harry’s House
This is my analysis of the lyrics used in Fine Line and Harry’s House. These albums use the word “sorry” the exact same amount of times, but only 6 each. These albums are more lyrically diverse than my previous analyses. These albums also use the words “know” and “just” very often. Harry’s House uses “just” more than Fine Line, and Fine Line uses “know” more. Regardless. each album uses both words at least 29 times or more. It is also interesting to note that Harry’s House uses the word “home” less than both of the albums before it.
LS0tDQp0aXRsZTogIkhhcnJ5IFN0eWxlcydzIEx5cmljIEFuYWx5c2lzIg0KYXV0aG9yOiAiQmV0aCBHcm9uc2tpIg0KZGF0ZTogImByIFN5cy5EYXRlKClgIg0Kb3V0cHV0OiBvcGVuaW50cm86OmxhYl9yZXBvcnQNCi0tLQ0KDQojIyMgKipJbnRyb2R1Y3Rpb24qKg0KDQpJbiB0aGlzIGFuYWx5c2lzLCB0aGUgYWltIGlzIHRvIHVuY292ZXIgd2hhdCB3b3JkcyBhcmUgbW9zdCBjb21tb25seSB1c2VkIGluIGVhY2ggYWxidW0gYnkgbXVzaWNhbCBhcnRpc3QgSGFycnkgU3R5bGVzLiBUaGlzIGtub3dsZWRnZSB3aWxsIGhvcGVmdWxseSBhc3Npc3QgaW4gZGV0ZXJtaW5pbmcgdGhlIG1lYW5pbmcgYmVoaW5kIGVhY2ggb2YgU3R5bGVzJ3MgYWxidW1zIGFuZCB1bmNvdmVyIHRoZSBtb3N0IGNvbW1vbiB2b2NhYnVsYXJ5IHVzZWQgYnkgaGltLiBUaGlzIGFuYWx5c2lzIHdhcyBjcmVhdGVkIHVzaW5nIGEgZGF0YSBzZXQgbWFkZSBieSBhdXRob3IgQmV0aCBHcm9uc2tpLiBUaGUgYW5hbHlzaXMgd2FzIGFsc28gc3VjY2Vzc2Z1bCB3aXRoIGNvbGxhYm9yYXRpb24gZnJvbSBBc3Npc3RhbnQgUHJvZmVzc29yIE1lbGFuaWUgV2Fsc2ggYXQgdGhlIFVuaXZlcnNpdHkgb2YgV2FzaGluZ3Rvbi4NCg0KIyMjIyAqSGFycnkgU3R5bGVzJyBEZWJ1dCoNCkhhcnJ5IFN0eWxlcycgZGVidXRlZCBoaXMgZmlyc3QgYWxidW0gb24gTWF5IDEyLCAyMDE3IGFjY29yZGluZyB0byBTcG90aWZ5LiBUaGlzIGFsYnVtIGlzIHRoZSBmaXJzdCB0aW1lIEhhcnJ5IFN0eWxlcyBpcyBwbGF5aW5nIG11c2ljIHdpdGhvdXQgaGlzIHByZXZpb3VzIGJhbmQsIE9uZSBEaXJlY3Rpb24uIEFjY29yZGluZyB0byBBcHBsZSBNdXNpYywgIkFjcm9zcyAxMCBzb25ncywgSGFycnkgU3R5bGVzIGhhcyB0aGUgdGltZSBvZiBoaXMgbGlmZSBhbmQgZW1lcmdlcyBmcm9tIGhpcyBib3ktYmFuZCBjaHJ5c2FsaXMgYSByb2NrIHN0YXIuIg0KDQojIyMjICpGaW5lIExpbmUqDQoqKkZpbmUgTGluZSoqIGlzIEhhcnJ5IFN0eWxlcycgc29waG9tb3JlIGFsYnVtIHdoaWNoIHdhcyByZWxlYXNlZCBvbiBEZWNlbWJlciAxMywgMjAxOSB3aXRoIDEyIHNvbmdzLiBBcHBsZSBNdXNpYyBkZXNjcmliZXMgKipGaW5lIExpbmUqKiBhcywgIklkZW50aXR54oCUbW9yZSBzcGVjaWZpY2FsbHksIHNlbGYtZGlzY292ZXJ54oCUaXMgYXQgdGhlIGNvcmUgb2YgaGlzIHNvcGhvbW9yZSBhbGJ1bSAqKkZpbmUgTGluZSoqLi4uVW5saWtlIGhpcyBsYXN0IGFsYnVtLCAqKkZpbmUgTGluZSoqIHByYWN0aWNhbGx5IGV4cGxvZGVzIGluIGNvbG9yLiBIaWdoLXBpdGNoZWQgaGFybW9uaWVzLCBidW95YW50IHN0cmluZyBhcnJhbmdlbWVudHMsIGFuZCBnZW50bHkgcHN5Y2hlZGVsaWMgbWVsb2RpZXMgZXZva2UgYW4gYWxtb3N0IGRyZWFtbGlrZSBhYmFuZG9uLCBhbmQgb25jZSBpbiBhIHdoaWxlIGhlIGdvZXMgZm9yIGJyb2tlLiINCg0KIyMjIyAqSGFycnkncyBIb3VzZSoNCioqSGFycnkncyBIb3VzZSoqIGlzIEhhcnJ5IFN0eWxlcycgbW9zdCByZWNlbnQgYWxidW0sIHdoaWNoIHdhcyBmcmVzaGx5IHJlbGVhc2VkIG9uIE1heSAyMCwgMjAyMi4gVGhlcmUgYXJlIDEzIHNvbmdzIG9uIHRoZSBhbGJ1bS4gV3JpdHRlbiBkdXJpbmcgdGhlIHBhbmRlbWljLCAqKkhhcnJ5J3MgSG91c2UqKiB3YXMgY29tcGxldGVkIGJlZm9yZSBIYXJyeSBTdHlsZXMgd2FzIGFibGUgdG8gdG91ciBmb3IgaGlzICoqRmluZSBMaW5lKiogQWxidW0uICJIaXMgdXBiZWF0LCBsaWdodGx5IGVsZWN0cm9uaWMgdGhpcmQgTFAgcmlmZnMgb24gdGhlIGNvbmNlcHQgb2YgaG9tZSwgdmlld2luZyBpdCBsZXNzIGFzIGEgZ2VvZ3JhcGhpY2FsIGxvY2F0aW9uIGFuZCBtb3JlIGFzIGEgc3RhdGUgb2YgbWluZOKAlGhpcyBtaW5kLiAnSW1hZ2luZSBpdOKAmXMgYSBkYXkgaW4gbXkgaG91c2UsIGEgZGF5IGluIG15IG1pbmQsJyBoZSBzYWlkLiAnV2hhdCBkbyBJIGdvIHRocm91Z2g/IEnigJltIHBsYXlpbmcgZnVuIG11c2ljLiBJ4oCZbSBwbGF5aW5nIHNhZCBtdXNpYy4gSSBoYXZlIGRvdWJ0cy4gSeKAmW0gZmVlbGluZyBzdHVmZi4nIiBBcHBsZSBNdXNpYyB3cml0ZXMgaW4gdGhlIGJpb2dyYXBoeSBvZiAqKkhhcnJ5J3MgSG91c2UqKi4NCg0KYGBge3IgbG9hZC1wYWNrYWdlcywgbWVzc2FnZT1GQUxTRSwgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRX0NCmxpYnJhcnkob3BlbmludHJvKQ0KbGlicmFyeSh0aWR5dGV4dCkNCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkoInN0b3B3b3JkcyIpDQpsaWJyYXJ5KGdncmVwZWwpDQpsaWJyYXJ5KHBsb3RseSkNCmhzX3NvbmdzIDwtIHJlYWRfY3N2KGZpbGU9ImhhcnJ5X3N0eWxlc19zb25ncy5jc3YiKQ0KYGBgDQoNCmBgYHtyIGRhdGFzZXQsIG1lc3NhZ2U9RkFMU0UsIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQojIFNwbGl0IHRleHQgaW50byBvbmUgd29yZCBwZXIgcm93IA0KdGlkeV9oYXJyeSA8LSBoc19zb25ncyAlPiUgDQogIHVubmVzdF90b2tlbnMod29yZCxseXJpY3MpDQoNCiMgQ291bnQgd29yZHMNCmhzX3dvcmQ8LXRpZHlfaGFycnkgJT4lIA0KICBjb3VudCh3b3JkLCBzb3J0PVRSVUUpDQojIyBTVE9QV09SRFMNCiNpbnN0YWxsLnBhY2thZ2VzKCJzdG9wd29yZHMiKQ0KbGlicmFyeSgic3RvcHdvcmRzIikNCg0KZW5fc3RvcHdvcmRzIDwtIGRhdGEuZnJhbWUod29yZCA9IHN0b3B3b3JkcyhsYW5ndWFnZSA9ICJlbiIsIHNvdXJjZSA9ICJzbm93YmFsbCIpKQ0KVmlldyhlbl9zdG9wd29yZHMpDQoNCiMgUmVtb3ZlIHN0b3B3b3Jkcw0KaHNfd29yZF9jb3VudCA8LSB0aWR5X2hhcnJ5ICU+JSANCiAgYW50aV9qb2luKGVuX3N0b3B3b3JkcykgJT4lIA0KICBjb3VudCh3b3JkLCBzb3J0PVRSVUUpDQoNCmBgYA0KDQoNCiMjIyAqKkhhcnJ5IFN0eWxlcyB2LiBGaW5lIExpbmUqKg0KDQpUaGlzIGlzIG15IGFuYWx5c2lzIG9mIHRoZSBseXJpY3MgdXNlZCBpbiBIYXJyeSBTdHlsZXMnIGRlYnV0IGFsYnVtIGFuZCBhbGJ1bSBlbnRpdGxlZCAqKkZpbmUgTGluZSoqLiBUaGUgcmVkIGxpbmUgZG93biB0aGUgY2VudGVyIG9mIHRoZSBncmFwaCBkZXBpY3RzIHRoZSBkaXZpZGUgYmV0d2VlbiB0aGUgdHdvIGFsYnVtcywgYW5kIHRoZSBkb3RzIGNsb3Nlc3QgdG8gdGhlIGxpbmUgZGVwaWN0cyB3b3JkcyB0aGF0IHRoZSBhbGJ1bXMgaGF2ZSB0aGUgbW9zdCBpbiBjb21tb24uIEluIHRoaXMgYW5hbHlzaXMsIHRoZSB3b3JkICJob21lIiBpcyB1c2VkIGV4YWN0bHkgMTQgdGltZXMgaW4gYm90aCBhbGJ1bXMuIFRoaXMgaXMgYSBjdXJpb3VzIGRpc2NvdmVyeSBlc3BlY2lhbGx5IGJlY2F1c2UgSGFycnkncyB0aGlyZCBhbGJ1bSwgKipIYXJyeSdzIEhvdXNlKiosIGlzIGNlbnRlcmVkIGFyb3VuZCB0aGUgdGhlbWUgb2YgaG9tZS4gQm90aCBhbGJ1bXMgdXNlIHRoZSB3b3JkcyAia25vdyIgYW5kICJqdXN0IiBtYW55IHRpbWVzLCBidXQgdGhleSBhcmUgdXNlZCBtb3JlIG9uICoqRmluZSBMaW5lKiouIFRoaXMgY291bGQgYmUgYmVjYXVzZSBIYXJyeSdzIHNvcGhvbW9yZSBhbGJ1bSBoYXMgbW9yZSBzb25ncyBvbiBpdC4gVGhlcmUgYXJlIGFsc28gd29yZHMgdGhhdCBhcmUgdW5pcXVlIHRvIGVhY2ggb2YgdGhlIGFsYnVtcywgYW5kIHJhcmVseSB1c2VkIG9uIHRoZSBvdGhlci4gT24gKipIYXJyeSBTdHlsZXMqKiwgdGhlIHdvcmQgImxhIiBpcyB1c2VkIG1hbnkgdGltZXMsIGJ1dCB0aGVyZSBpcyBtb3N0IGxpa2VseSBkZWJhdGUgb24gd2hldGhlciB0aGlzIHdvcmQgaXMgbWVhbmluZ2Z1bCB0byB0aGUgYW5hbHlzaXMuIFJlZ2FyZGxlc3MsIHRoZSBkZWJ1dCBhbGJ1bSBhbHNvIHVzZXMgIm5vbmUiIGFuZCAiYW5nZWwiIHVubGlrZSAqKkZpbmUgTGluZSoqLiBUaGUgc29waG9tb3JlIGFsYnVtIHVzZXMgImdvaW5nIiwgImV2ZXIiLCBhbmQgIm9oIiB3aGljaCBhcmUgcmFyZWx5IHVzZWQgb24gdGhlIGRlYnV0IGFsYnVtLiANCg0KYGBge3IgaHNmaW5lbGluZSwgbWVzc2FnZT1GQUxTRSwgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRX0NCnBsb3RfdGV4dHMgPC0gdGlkeV9oYXJyeSAlPiUNCiAgZmlsdGVyKGFsYnVtICVpbiUgYygiSGFycnkgU3R5bGVzIiwgIkZpbmUgTGluZSIpKSAlPiUNCiAgYW50aV9qb2luKGVuX3N0b3B3b3JkcykgJT4lDQogIGNvdW50KGFsYnVtLCB3b3JkKSAlPiUNCiAgZ3JvdXBfYnkod29yZCkgJT4lDQogIGZpbHRlcihzdW0obikgPiA1KSAlPiUNCiAgdW5ncm91cCgpICU+JQ0KICBwaXZvdF93aWRlcihuYW1lc19mcm9tID0gImFsYnVtIiwgdmFsdWVzX2Zyb20gPSAibiIsIHZhbHVlc19maWxsID0gMCkNCg0KbGlicmFyeShnZ3JlcGVsKQ0KbGlicmFyeShwbG90bHkpDQoNCm15X3Bsb3RseV9wbG90PC1nZ3Bsb3QoZGF0YSA9IHBsb3RfdGV4dHMpICsNCiAgZ2VvbV9hYmxpbmUoY29sb3IgPSAicmVkIikgKw0KICBnZW9tX3BvaW50KGFlcyh4PWBIYXJyeSBTdHlsZXNgLCB5PWBGaW5lIExpbmVgLCBsYWJlbCA9IHdvcmQpKSANCg0KZ2dwbG90bHkobXlfcGxvdGx5X3Bsb3QpDQpgYGANCg0KIyMjICoqSGFycnkgU3R5bGVzIHYuIEhhcnJ5J3MgSG91c2UqKg0KDQpUaGlzIGlzIG15IGFuYWx5c2lzIG9mIHRoZSBseXJpY3MgdXNlZCBpbiAqKkhhcnJ5IFN0eWxlcyoqIGFuZCAqKkhhcnJ5J3MgSG91c2UqKi4gQmV0d2VlbiB0aGVzZSB0d28gYWxidW1zLCB0aGUgd29yZCAiYmFieSIgaXMgdXNlZCBleGFjdGx5IDE1IHRpbWVzIGJldHdlZW4gYm90aCBhbGJ1bXMuIExpa2UgdGhlIGNvbXBhcmlzb24gd2l0aCAqKkhhcnJ5IFN0eWxlcyoqIGFuZCAqKkZpbmUgTGluZSoqLCB0aGUgZGVidXQgYWxidW0gYW5kICoqSGFycnkncyBIb3VzZSoqIGFsc28gdXNlIHRoZSB3b3JkcyAia25vdyIgYW5kICJqdXN0IiBtb3N0IG9mdGVuLiBUaGV5IGFyZSB1c2VkIG1vcmUgb24gKipIYXJyeSdzIEhvdXNlKiogdGhlbiAqKkhhcnJ5IFN0eWxlcyoqIGZvciBtb3N0IGxpa2VseSB0aGUgc2FtZSByZWFzb24gYXMgYmVmb3JlLiBUaGlzIGRpc2NvdmVyeSBsZWFkcyBtZSB0byBiZWxpZXZlIHRoZXNlIGFyZSBIYXJyeSdzIG1vc3QgdXNlZCB3b3JkcyBpbiBseXJpY3MuIEFmdGVyIGNoZWNraW5nIHdvcmRzIHRoYXQgdGhlIGFsYnVtcyBoYXZlIGluIGNvbW1vbiwgSSBsb29rZWQgZm9yIHVuaXF1ZSB3b3JkcyBpbiAqKkhhcnJ5J3MgSG91c2UqKi4gVGhlIG1vc3QgdW5pcXVlIHdvcmRzIGFyZSAiY2luZW1hIiwgImxvdmUiLCBhbmQgImdvdCIuICJHb3QiIGlzIHVzZWQgYSBmZXcgdGltZXMgaW4gKipGaW5lIExpbmUqKiBidXQgImNpbmVtYSIgaXMgbmV2ZXIgdXNlZCBhbmQgImxvdmUiIGlzIG9ubHkgdXNlZCBvbmNlLiBUaGUgdXNlIG9mICJjaW5lbWEiIGNhbiBiZSBleHBsYWluZWQgYnkgdGhlIHNvbmcgd2l0aCB0aGF0IHRpdGxlLiAiQ2luZW1hIiBpcyBvbmx5IHVzZWQgaW4gdGhhdCBzb25nLCBhbmQgaXMgcmVwZWF0ZWQgb2Z0ZW4uIEhvd2V2ZXIgImxvdmUiIGlzIHVzZWQgdGhyb3VnaG91dCBzZXZlcmFsIHNvbmdzIG9uICoqSGFycnkncyBIb3VzZSoqIGFuZCBJIGJlbGlldmUgY2FuIGJlIGFub3RoZXIgdGhlbWUgb24gdGhlIGFsYnVtLiANCg0KYGBge3IgaHNoYXJyeWhvdXNlLCBtZXNzYWdlPUZBTFNFLCBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KcGxvdF90ZXh0aG91c2UgPC0gdGlkeV9oYXJyeSAlPiUNCiAgZmlsdGVyKGFsYnVtICVpbiUgYygiSGFycnkgU3R5bGVzIiwgIkhhcnJ5J3MgSG91c2UiKSkgJT4lDQogIGFudGlfam9pbihlbl9zdG9wd29yZHMpICU+JQ0KICBjb3VudChhbGJ1bSwgd29yZCkgJT4lDQogIGdyb3VwX2J5KHdvcmQpICU+JQ0KICBmaWx0ZXIoc3VtKG4pID4gNSkgJT4lDQogIHVuZ3JvdXAoKSAlPiUNCiAgcGl2b3Rfd2lkZXIobmFtZXNfZnJvbSA9ICJhbGJ1bSIsIHZhbHVlc19mcm9tID0gIm4iLCB2YWx1ZXNfZmlsbCA9IDApDQoNCm15X3Bsb3RseTwtZ2dwbG90KGRhdGEgPSBwbG90X3RleHRob3VzZSkgKw0KICBnZW9tX2FibGluZShjb2xvciA9ICJibHVlIikgKw0KICBnZW9tX3BvaW50KGFlcyh4PWBIYXJyeSBTdHlsZXNgLCB5PWBIYXJyeSdzIEhvdXNlYCwgbGFiZWwgPSB3b3JkKSkgDQoNCmdncGxvdGx5KG15X3Bsb3RseSkNCg0KYGBgDQoNCiMjIyAqKkZpbmUgTGluZSB2LiBIYXJyeSdzIEhvdXNlKioNCg0KVGhpcyBpcyBteSBhbmFseXNpcyBvZiB0aGUgbHlyaWNzIHVzZWQgaW4gKipGaW5lIExpbmUqKiBhbmQgKipIYXJyeSdzIEhvdXNlKiouIFRoZXNlIGFsYnVtcyB1c2UgdGhlIHdvcmQgInNvcnJ5IiB0aGUgZXhhY3Qgc2FtZSBhbW91bnQgb2YgdGltZXMsIGJ1dCBvbmx5IDYgZWFjaC4gVGhlc2UgYWxidW1zIGFyZSBtb3JlIGx5cmljYWxseSBkaXZlcnNlIHRoYW4gbXkgcHJldmlvdXMgYW5hbHlzZXMuIFRoZXNlIGFsYnVtcyBhbHNvIHVzZSB0aGUgd29yZHMgImtub3ciIGFuZCAianVzdCIgdmVyeSBvZnRlbi4gKipIYXJyeSdzIEhvdXNlKiogdXNlcyAianVzdCIgbW9yZSB0aGFuICoqRmluZSBMaW5lKiosIGFuZCAqKkZpbmUgTGluZSoqIHVzZXMgImtub3ciIG1vcmUuIFJlZ2FyZGxlc3MuIGVhY2ggYWxidW0gdXNlcyBib3RoIHdvcmRzIGF0IGxlYXN0IDI5IHRpbWVzIG9yIG1vcmUuIEl0IGlzIGFsc28gaW50ZXJlc3RpbmcgdG8gbm90ZSB0aGF0ICoqSGFycnkncyBIb3VzZSoqIHVzZXMgdGhlIHdvcmQgImhvbWUiIGxlc3MgdGhhbiBib3RoIG9mIHRoZSBhbGJ1bXMgYmVmb3JlIGl0LiANCg0KDQpgYGB7ciBmaW5lbGluZWhhcnJ5aG91c2UsIG1lc3NhZ2U9RkFMU0UsIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQpwbG90X3RleHRsaW5lIDwtIHRpZHlfaGFycnkgJT4lDQogIGZpbHRlcihhbGJ1bSAlaW4lIGMoIkZpbmUgTGluZSIsICJIYXJyeSdzIEhvdXNlIikpICU+JQ0KICBhbnRpX2pvaW4oZW5fc3RvcHdvcmRzKSAlPiUNCiAgY291bnQoYWxidW0sIHdvcmQpICU+JQ0KICBncm91cF9ieSh3b3JkKSAlPiUNCiAgZmlsdGVyKHN1bShuKSA+IDUpICU+JQ0KICB1bmdyb3VwKCkgJT4lDQogIHBpdm90X3dpZGVyKG5hbWVzX2Zyb20gPSAiYWxidW0iLCB2YWx1ZXNfZnJvbSA9ICJuIiwgdmFsdWVzX2ZpbGwgPSAwKQ0KDQpteV9wbG90bHlfbGluZTwtZ2dwbG90KGRhdGEgPSBwbG90X3RleHRsaW5lKSArDQogIGdlb21fYWJsaW5lKGNvbG9yID0gIm9yYW5nZSIpICsNCiAgZ2VvbV9wb2ludChhZXMoeD1gRmluZSBMaW5lYCwgeT1gSGFycnkncyBIb3VzZWAsIGxhYmVsID0gd29yZCkpIA0KDQpnZ3Bsb3RseShteV9wbG90bHlfbGluZSkNCmBgYA0KDQoNCmBgYHtyIGhzdW5yZWxlYXNlZCwgbWVzc2FnZT1GQUxTRSwgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRSwgaW5jbHVkZT1GQUxTRX0NCnBsb3RfdGV4dF9ocyA8LSB0aWR5X2hhcnJ5ICU+JQ0KICBmaWx0ZXIoYWxidW0gJWluJSBjKCJIYXJyeSBTdHlsZXMiLCAiVW5yZWxlYXNlZCIpKSAlPiUNCiAgYW50aV9qb2luKGVuX3N0b3B3b3JkcykgJT4lDQogIGNvdW50KGFsYnVtLCB3b3JkKSAlPiUNCiAgZ3JvdXBfYnkod29yZCkgJT4lDQogIGZpbHRlcihzdW0obikgPiA1KSAlPiUNCiAgdW5ncm91cCgpICU+JQ0KICBwaXZvdF93aWRlcihuYW1lc19mcm9tID0gImFsYnVtIiwgdmFsdWVzX2Zyb20gPSAibiIsIHZhbHVlc19maWxsID0gMCkNCg0KbXlfcGxvdGx5X2hzPC1nZ3Bsb3QoZGF0YSA9IHBsb3RfdGV4dF9ocykgKw0KICBnZW9tX2FibGluZShjb2xvciA9ICJwdXJwbGUiKSArDQogIGdlb21fcG9pbnQoYWVzKHg9YEhhcnJ5IFN0eWxlc2AsIHk9YFVucmVsZWFzZWRgLCBsYWJlbCA9IHdvcmQpKSANCg0KZ2dwbG90bHkobXlfcGxvdGx5X2hzKQ0KDQpgYGANCg0KDQpgYGB7ciBmaW5lbGluZXVucmVsZWFzZWQsIG1lc3NhZ2U9RkFMU0UsIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIGluY2x1ZGU9RkFMU0V9DQpwbG90X3RleHRfbGluZXVucmUgPC0gdGlkeV9oYXJyeSAlPiUNCiAgZmlsdGVyKGFsYnVtICVpbiUgYygiRmluZSBMaW5lIiwgIlVucmVsZWFzZWQiKSkgJT4lDQogIGFudGlfam9pbihlbl9zdG9wd29yZHMpICU+JQ0KICBjb3VudChhbGJ1bSwgd29yZCkgJT4lDQogIGdyb3VwX2J5KHdvcmQpICU+JQ0KICBmaWx0ZXIoc3VtKG4pID4gNSkgJT4lDQogIHVuZ3JvdXAoKSAlPiUNCiAgcGl2b3Rfd2lkZXIobmFtZXNfZnJvbSA9ICJhbGJ1bSIsIHZhbHVlc19mcm9tID0gIm4iLCB2YWx1ZXNfZmlsbCA9IDApDQoNCm15X3Bsb3RseV9saW5ldW5yZTwtZ2dwbG90KGRhdGEgPSBwbG90X3RleHRfbGluZXVucmUpICsNCiAgZ2VvbV9hYmxpbmUoY29sb3IgPSAiZ3JlZW4iKSArDQogIGdlb21fcG9pbnQoYWVzKHg9YEZpbmUgTGluZWAsIHk9YFVucmVsZWFzZWRgLCBsYWJlbCA9IHdvcmQpKSANCg0KZ2dwbG90bHkobXlfcGxvdGx5X2xpbmV1bnJlKQ0KDQpgYGANCg0KDQpgYGB7ciBoYXJyeWhvdXNldW5yZWxlYXNlZCwgbWVzc2FnZT1GQUxTRSwgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRSxpbmNsdWRlPUZBTFNFfQ0KcGxvdF90ZXh0X2hvdXNldW5yZSA8LSB0aWR5X2hhcnJ5ICU+JQ0KICBmaWx0ZXIoYWxidW0gJWluJSBjKCJIYXJyeSdzIEhvdXNlIiwgIlVucmVsZWFzZWQiKSkgJT4lDQogIGFudGlfam9pbihlbl9zdG9wd29yZHMpICU+JQ0KICBjb3VudChhbGJ1bSwgd29yZCkgJT4lDQogIGdyb3VwX2J5KHdvcmQpICU+JQ0KICBmaWx0ZXIoc3VtKG4pID4gNSkgJT4lDQogIHVuZ3JvdXAoKSAlPiUNCiAgcGl2b3Rfd2lkZXIobmFtZXNfZnJvbSA9ICJhbGJ1bSIsIHZhbHVlc19mcm9tID0gIm4iLCB2YWx1ZXNfZmlsbCA9IDApDQoNCm15X3Bsb3RseV9ob3VzZXVucmU8LWdncGxvdChkYXRhID0gcGxvdF90ZXh0X2hvdXNldW5yZSkgKw0KICBnZW9tX2FibGluZShjb2xvciA9ICJ5ZWxsb3ciKSArDQogIGdlb21fcG9pbnQoYWVzKHg9YEhhcnJ5J3MgSG91c2VgLCB5PWBVbnJlbGVhc2VkYCwgbGFiZWwgPSB3b3JkKSkgDQoNCmdncGxvdGx5KG15X3Bsb3RseV9ob3VzZXVucmUpDQoNCmBgYA0KDQojIyMgKipHaXRodWIgUmVwb3NpdG9yeSoqDQpodHRwczovL2dpdGh1Yi5jb20vZWZncm9uc2tpL2hhcnJ5X3N0eWxlc19seXJpY3MgDQouLi4NCg0K