Preparation Instructions

THE DATASETS

For this Challenge Problem assignment, you are going to be using data from the Lord of the Rings Trilogy on total number of words spoken, by characters of different races and sexes. The data provided are stored by movie (1st movie: The Fellowship of the Ring; 2nd movie: The Two Towers; 3rd movie: The Return of the King).

EXERCISES

Practice Problems

Now let’s practice data wrangling (in particular, reshaping).

  1. Based on how the datasets are right now, identify two things that make the data untidy.
  • The column headers contain values (female and male) rather than the variable name (sex), and a single observational unit is stored in multiple tables.
  1. Merge the three datasets together to create a single dataset. Save this new dataset in an object called lotr1 (for “Lord of The Rings”). Hint: Because these three datasets all have completely different observations (no overlap between datasets), you can just use the bind_rows() function to do this.
lotr1 <- bind_rows(fellowship, two_towers, return_king)

lotr1
  1. Reshape the lotr1 dataset so that Sex is a single column and word count, Words, is a single column. Save this new dataset in an object called lotr2. The following image shows the first 6 rows of the desired dataset (there should be 18 rows in the actual dataset):

lotr2 <- lotr1 %>%
  pivot_longer(cols = c(Female, Male),
               names_to = "Sex",
               values_to = "Words")
lotr2
  1. Reshape the lotr2 dataset so that the columns the number of words spoken in each movie by each race (still separate rows for male and female, i.e. Sex as a variable). The following image shows the desired dataset:

reshaped_lotr2 <- lotr2 %>%
  pivot_wider(id_cols = c(Film, Sex),
              names_from = Race,
              values_from = Words)
reshaped_lotr2

Putting It All Together

Now let’s put the reshaped datasets to use (in addition to other data verbs and data visualization) to answer questions.

Question #1: Of all the words spoken, what is the total number and proportion of words spoken by female elves in Lord of the Rings?

  1. Create a data visualization or a “pretty” table to answer the posed question in Question #1. Be sure to take into account meaningful design elements as you create your plot or table.
female_words <- lotr2 %>%
  filter(Race == "Elf", Sex == "Female") %>%
  summarise(word_count = sum(Words)) %>%
  pull(word_count)

total_words <- lotr2 %>%
  summarise(word_count = sum(Words)) %>%
pull(word_count)

female_proportion <- female_words / total_words

tibble(
  Category = c("Female Elves", "Total"),
  Word_count = c(female_words, total_words),
  Proportion = c(female_proportion, 1)) %>%
  gt() %>%
  tab_header(title = "Female Eleves in Lord of the Rings:",
             subtitle = "Total number and proportion of words spoken ") %>%
  cols_label(
    Word_count = "Word Count",
    Proportion = "Proportion") %>%
  fmt_percent(columns = Proportion, decimals = 2)
Female Eleves in Lord of the Rings:
Total number and proportion of words spoken
Category Word Count Proportion
Female Elves 1743 8.20%
Total 21245 100.00%

Question #2: Does a certain race dominate the words spoken a single movie? Does the dominant race differ across movies?

  1. Create a data visualization or a “pretty” table to answer the posed question in Question #2. Be sure to take into account meaningful design elements as you create your plot or table.
race_movie <- lotr2 %>%
  group_by(Film, Race) %>%
  summarise(word_count = sum(Words), .groups = "drop")

ggplot(race_movie, aes(x = Race, y = word_count, fill = Race)) +
  geom_col() +
  facet_wrap(~ Film, scales = "free_y") +
  scale_fill_paletteer_d("ggsci::default_ucscgb") +   
  labs(
    title = "Lord of the Ring Movies: Total Words Spoken",
    subtitle = "Comparing which race speaks the most",
    x = "Race", y = "Total Words Spoken") +
  theme_minimal() +
  theme(
    legend.position = "none", 
    plot.title = element_text(face ="bold", size = 16, hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5))

  1. Wrangle the data to reproduce the following table (Hint: think about what 7 columns you need to have in your data before making your gt table):

sex <- lotr2 %>%
  pivot_wider(id_cols = c(Film, Race),
              names_from = "Sex",
              values_from= "Words")

race_sex <- sex %>%
    pivot_wider(id_cols = Film,
              names_from = Race,
              values_from= c(Female, Male)) 

race_sex %>%
  gt() %>%
  tab_header(title = "Words Spoken by Characters (Sex, Race) in LOTR") %>%
  tab_spanner(label = "Female Characters", columns = c(Female_Elf, Female_Hobbit, Female_Man)) %>%
  tab_spanner(label = "Male Characters", columns = c(Male_Elf, Male_Hobbit, Male_Man)) %>%
  cols_label(
    Film = "Film",
    Female_Elf = "Elf",
    Female_Hobbit = "Hobbit",
    Female_Man = "Human",
    Male_Elf = "Elf",
    Male_Hobbit = "Hobbit",
    Male_Man = "Human")
Words Spoken by Characters (Sex, Race) in LOTR
Film
Female Characters
Male Characters
Elf Hobbit Human Elf Hobbit Human
The Fellowship Of The Ring 1229 14 0 971 3644 1995
The Two Towers 331 0 401 513 2463 3589
The Return Of The King 183 2 268 510 2673 2459
LS0tCnRpdGxlOiAiV2VlayAxMSBDaGFsbGVuZ2UgUHJvYmxlbSIKYXV0aG9yOiAiQmlsc3VtYSBBZGVtYSIKb3V0cHV0OgogIGh0bWxfZG9jdW1lbnQ6CiAgICBkZl9wcmludDogcGFnZWQKICAgIGNvZGVfZG93bmxvYWQ6IHRydWUKLS0tCgojIyMgUHJlcGFyYXRpb24gSW5zdHJ1Y3Rpb25zCgotICAgQmUgc3VyZSB0byBjaGFuZ2UgdGhlIGF1dGhvciBpbiB0aGUgWUFNTCB0byB5b3VyIG5hbWUuIFJlbWVtYmVyIHRvIGtlZXAgaXQgaW5zaWRlIHRoZSBxdW90ZXMuCgotICAgUXVlc3Rpb25zIHRoYXQgcmVxdWlyZSB0aGUgdXNlIG9mIFIgd2lsbCBoYXZlIGFuIFIgY29kZSBjaHVuayBiZWxvdyBpdC4KCi0gICBEb3dubG9hZCB0aGUgZGF0YXNldHMgYWJvdXQgd29yZCBjb3VudCBpbiB0aGUgTG9yZCBvZiB0aGUgUmluZ3MgdHJpbG9neSAodGl0bGVkICpUaGVfRmVsbG93c2hpcF9PZl9UaGVfUmluZy5jc3YqLCAqVGhlX1R3b19Ub3dlcnMuY3N2KiwgYW5kICpUaGVfUmV0dXJuX09mX1RoZV9LaW5nLmNzdiopIGFuZCAqTE9UUi1UYWJsZS5wbmcqIGZyb20gdGhlIENhbnZhcyBwYWdlIGZvciB0aGlzIGFzc2lnbm1lbnQgYW5kIHNhdmUgdGhlc2UgZmlsZXMgdG8gdGhlIGZvbGRlciB3aGVyZSB0aGUgUk1EIGZpbGUgaXMgbG9jYXRlZC4KCi0gVGhlcmUgaXMgbGVzcyBoYW5kLWhvbGRpbmcgaW4gdGhpcyBhc3NpZ25tZW50LgogICAgLSBUaGUgcGFja2FnZXMgdGhhdCBuZWVkIHRvIGJlIGxvYWRlZCB3aWxsIG5vIGxvbmdlciBiZSBwcm92aWRlZCBpbiB0aGUgc2V0dXAgY29kZSBjaHVuay4gWW91IGFyZSByZXNwb25zaWJsZSBmb3IgbG9hZGluZyB0aGUgYXBwcm9wcmlhdGUgcGFja2FnZXMgZm9yIHRoZSBhc3NpZ25tZW50LgogICAgLSBRdWVzdGlvbnMgb24gZXhhbWluaW5nIHRoZSBkYXRhIHdpbGwgbm8gbG9uZ2VyIGJlIHByb3ZpZGVkLiBZb3UgYXJlIHJlc3BvbnNpYmxlIGZvciBnZXR0aW5nIGEgc2Vuc2Ugb2YgdGhlIGRhdGEgcHJpb3IgdG8gY29tcGxldGluZyB0aGUgYW5hbHlzZXMuIAoKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KGd0KQpsaWJyYXJ5KHBhbGV0dGVlcikKCmZlbGxvd3NoaXAgPC0gcmVhZC5jc3YoIi9Vc2Vycy9iaWxzdW1hYWRlbWEvRG9jdW1lbnRzL1IgQ291cnNlIENsYXNzIDIwMjUvVGhlX0ZlbGxvd3NoaXBfT2ZfVGhlX1JpbmcuY3N2IikKdHdvX3Rvd2VycyA8LSByZWFkLmNzdigiL1VzZXJzL2JpbHN1bWFhZGVtYS9Eb2N1bWVudHMvUiBDb3Vyc2UgQ2xhc3MgMjAyNS9UaGVfVHdvX1Rvd2Vycy5jc3YiKQpyZXR1cm5fa2luZyA8LSByZWFkLmNzdigiL1VzZXJzL2JpbHN1bWFhZGVtYS9Eb2N1bWVudHMvUiBDb3Vyc2UgQ2xhc3MgMjAyNS9UaGVfUmV0dXJuX09mX1RoZV9LaW5nLmNzdiIpCgpgYGAKCiMjIyMgVEhFIERBVEFTRVRTCgpGb3IgdGhpcyBDaGFsbGVuZ2UgUHJvYmxlbSBhc3NpZ25tZW50LCB5b3UgYXJlIGdvaW5nIHRvIGJlIHVzaW5nIGRhdGEgZnJvbSB0aGUgTG9yZCBvZiB0aGUgUmluZ3MgVHJpbG9neSBvbiB0b3RhbCBudW1iZXIgb2Ygd29yZHMgc3Bva2VuLCBieSBjaGFyYWN0ZXJzIG9mIGRpZmZlcmVudCByYWNlcyBhbmQgc2V4ZXMuIFRoZSBkYXRhIHByb3ZpZGVkIGFyZSBzdG9yZWQgYnkgbW92aWUgKDFzdCBtb3ZpZTogVGhlIEZlbGxvd3NoaXAgb2YgdGhlIFJpbmc7IDJuZCBtb3ZpZTogVGhlIFR3byBUb3dlcnM7IDNyZCBtb3ZpZTogVGhlIFJldHVybiBvZiB0aGUgS2luZykuIAoKIyMjIyBFWEVSQ0lTRVMKCioqUHJhY3RpY2UgUHJvYmxlbXMqKgoKTm93IGxldCdzIHByYWN0aWNlIGRhdGEgd3JhbmdsaW5nIChpbiBwYXJ0aWN1bGFyLCByZXNoYXBpbmcpLgoKKEApIEJhc2VkIG9uIGhvdyB0aGUgZGF0YXNldHMgYXJlIHJpZ2h0IG5vdywgaWRlbnRpZnkgdHdvIHRoaW5ncyB0aGF0IG1ha2UgdGhlIGRhdGEgdW50aWR5LiAKLSBUaGUgY29sdW1uIGhlYWRlcnMgY29udGFpbiB2YWx1ZXMgKGZlbWFsZSBhbmQgbWFsZSkgcmF0aGVyIHRoYW4gdGhlIHZhcmlhYmxlIG5hbWUgKHNleCksIGFuZCBhIHNpbmdsZSBvYnNlcnZhdGlvbmFsIHVuaXQgaXMgc3RvcmVkIGluIG11bHRpcGxlIHRhYmxlcy4KCihAKSBNZXJnZSB0aGUgdGhyZWUgZGF0YXNldHMgdG9nZXRoZXIgdG8gY3JlYXRlIGEgc2luZ2xlIGRhdGFzZXQuIFNhdmUgdGhpcyBuZXcgZGF0YXNldCBpbiBhbiBvYmplY3QgY2FsbGVkIGBsb3RyMWAgKGZvciAiTG9yZCBvZiBUaGUgUmluZ3MiKS4gSGludDogQmVjYXVzZSB0aGVzZSB0aHJlZSBkYXRhc2V0cyBhbGwgaGF2ZSBjb21wbGV0ZWx5IGRpZmZlcmVudCBvYnNlcnZhdGlvbnMgKG5vIG92ZXJsYXAgYmV0d2VlbiBkYXRhc2V0cyksIHlvdSBjYW4ganVzdCB1c2UgdGhlIGJpbmRfcm93cygpIGZ1bmN0aW9uIHRvIGRvIHRoaXMuCiAKYGBge3J9CmxvdHIxIDwtIGJpbmRfcm93cyhmZWxsb3dzaGlwLCB0d29fdG93ZXJzLCByZXR1cm5fa2luZykKCmxvdHIxCmBgYAoKKEApIFJlc2hhcGUgdGhlIGBsb3RyMWAgZGF0YXNldCBzbyB0aGF0IGBTZXhgIGlzIGEgc2luZ2xlIGNvbHVtbiBhbmQgd29yZCBjb3VudCwgYFdvcmRzYCwgaXMgYSBzaW5nbGUgY29sdW1uLiBTYXZlIHRoaXMgbmV3IGRhdGFzZXQgaW4gYW4gb2JqZWN0IGNhbGxlZCBgbG90cjJgLiBUaGUgZm9sbG93aW5nIGltYWdlIHNob3dzIHRoZSBmaXJzdCA2IHJvd3Mgb2YgdGhlIGRlc2lyZWQgZGF0YXNldCAodGhlcmUgc2hvdWxkIGJlIDE4IHJvd3MgaW4gdGhlIGFjdHVhbCBkYXRhc2V0KToKCjxwIGFsaWduPSJjZW50ZXIiPgohW10oQ1AxMV9RM19FeC5wbmcpe3dpZHRoPTYwJX0gPC9wPiAKCmBgYHtyfQpsb3RyMiA8LSBsb3RyMSAlPiUKICBwaXZvdF9sb25nZXIoY29scyA9IGMoRmVtYWxlLCBNYWxlKSwKICAgICAgICAgICAgICAgbmFtZXNfdG8gPSAiU2V4IiwKICAgICAgICAgICAgICAgdmFsdWVzX3RvID0gIldvcmRzIikKbG90cjIKCmBgYAoKKEApIFJlc2hhcGUgdGhlIGBsb3RyMmAgZGF0YXNldCBzbyB0aGF0IHRoZSBjb2x1bW5zIHRoZSBudW1iZXIgb2Ygd29yZHMgc3Bva2VuIGluIGVhY2ggbW92aWUgYnkgZWFjaCByYWNlIChzdGlsbCBzZXBhcmF0ZSByb3dzIGZvciBtYWxlIGFuZCBmZW1hbGUsIGkuZS4gU2V4IGFzIGEgdmFyaWFibGUpLiBUaGUgZm9sbG93aW5nIGltYWdlIHNob3dzIHRoZSBkZXNpcmVkIGRhdGFzZXQ6IAoKPHAgYWxpZ249ImNlbnRlciI+CiFbXShDUDExX1E0X0V4LnBuZyl7d2lkdGg9NjAlfSA8L3A+IAoKCmBgYHtyfQpyZXNoYXBlZF9sb3RyMiA8LSBsb3RyMiAlPiUKICBwaXZvdF93aWRlcihpZF9jb2xzID0gYyhGaWxtLCBTZXgpLAogICAgICAgICAgICAgIG5hbWVzX2Zyb20gPSBSYWNlLAogICAgICAgICAgICAgIHZhbHVlc19mcm9tID0gV29yZHMpCnJlc2hhcGVkX2xvdHIyCmBgYAoKCioqUHV0dGluZyBJdCBBbGwgVG9nZXRoZXIqKgoKTm93IGxldCdzIHB1dCB0aGUgcmVzaGFwZWQgZGF0YXNldHMgdG8gdXNlIChpbiBhZGRpdGlvbiB0byBvdGhlciBkYXRhIHZlcmJzIGFuZCBkYXRhIHZpc3VhbGl6YXRpb24pIHRvIGFuc3dlciBxdWVzdGlvbnMuCgoqKlF1ZXN0aW9uICMxOiBPZiBhbGwgdGhlIHdvcmRzIHNwb2tlbiwgd2hhdCBpcyB0aGUgdG90YWwgbnVtYmVyIGFuZCBwcm9wb3J0aW9uIG9mIHdvcmRzIHNwb2tlbiBieSBmZW1hbGUgZWx2ZXMgaW4gTG9yZCBvZiB0aGUgUmluZ3M/KioKCihAKSBDcmVhdGUgYSBkYXRhIHZpc3VhbGl6YXRpb24gb3IgYSAicHJldHR5IiB0YWJsZSB0byBhbnN3ZXIgdGhlIHBvc2VkIHF1ZXN0aW9uIGluIFF1ZXN0aW9uICMxLiBCZSBzdXJlIHRvIHRha2UgaW50byBhY2NvdW50IG1lYW5pbmdmdWwgZGVzaWduIGVsZW1lbnRzIGFzIHlvdSBjcmVhdGUgeW91ciBwbG90IG9yIHRhYmxlLgoKYGBge3J9CmZlbWFsZV93b3JkcyA8LSBsb3RyMiAlPiUKICBmaWx0ZXIoUmFjZSA9PSAiRWxmIiwgU2V4ID09ICJGZW1hbGUiKSAlPiUKICBzdW1tYXJpc2Uod29yZF9jb3VudCA9IHN1bShXb3JkcykpICU+JQogIHB1bGwod29yZF9jb3VudCkKCnRvdGFsX3dvcmRzIDwtIGxvdHIyICU+JQogIHN1bW1hcmlzZSh3b3JkX2NvdW50ID0gc3VtKFdvcmRzKSkgJT4lCnB1bGwod29yZF9jb3VudCkKCmZlbWFsZV9wcm9wb3J0aW9uIDwtIGZlbWFsZV93b3JkcyAvIHRvdGFsX3dvcmRzCgp0aWJibGUoCiAgQ2F0ZWdvcnkgPSBjKCJGZW1hbGUgRWx2ZXMiLCAiVG90YWwiKSwKICBXb3JkX2NvdW50ID0gYyhmZW1hbGVfd29yZHMsIHRvdGFsX3dvcmRzKSwKICBQcm9wb3J0aW9uID0gYyhmZW1hbGVfcHJvcG9ydGlvbiwgMSkpICU+JQogIGd0KCkgJT4lCiAgdGFiX2hlYWRlcih0aXRsZSA9ICJGZW1hbGUgRWxldmVzIGluIExvcmQgb2YgdGhlIFJpbmdzOiIsCiAgICAgICAgICAgICBzdWJ0aXRsZSA9ICJUb3RhbCBudW1iZXIgYW5kIHByb3BvcnRpb24gb2Ygd29yZHMgc3Bva2VuICIpICU+JQogIGNvbHNfbGFiZWwoCiAgICBXb3JkX2NvdW50ID0gIldvcmQgQ291bnQiLAogICAgUHJvcG9ydGlvbiA9ICJQcm9wb3J0aW9uIikgJT4lCiAgZm10X3BlcmNlbnQoY29sdW1ucyA9IFByb3BvcnRpb24sIGRlY2ltYWxzID0gMikKCmBgYAoKKipRdWVzdGlvbiAjMjogRG9lcyBhIGNlcnRhaW4gcmFjZSBkb21pbmF0ZSB0aGUgd29yZHMgc3Bva2VuIGEgc2luZ2xlIG1vdmllPyBEb2VzIHRoZSBkb21pbmFudCByYWNlIGRpZmZlciBhY3Jvc3MgbW92aWVzPyoqCgooQCkgQ3JlYXRlIGEgZGF0YSB2aXN1YWxpemF0aW9uIG9yIGEgInByZXR0eSIgdGFibGUgdG8gYW5zd2VyIHRoZSBwb3NlZCBxdWVzdGlvbiBpbiBRdWVzdGlvbiAjMi4gQmUgc3VyZSB0byB0YWtlIGludG8gYWNjb3VudCBtZWFuaW5nZnVsIGRlc2lnbiBlbGVtZW50cyBhcyB5b3UgY3JlYXRlIHlvdXIgcGxvdCBvciB0YWJsZS4KCmBgYHtyfQpyYWNlX21vdmllIDwtIGxvdHIyICU+JQogIGdyb3VwX2J5KEZpbG0sIFJhY2UpICU+JQogIHN1bW1hcmlzZSh3b3JkX2NvdW50ID0gc3VtKFdvcmRzKSwgLmdyb3VwcyA9ICJkcm9wIikKCmdncGxvdChyYWNlX21vdmllLCBhZXMoeCA9IFJhY2UsIHkgPSB3b3JkX2NvdW50LCBmaWxsID0gUmFjZSkpICsKICBnZW9tX2NvbCgpICsKICBmYWNldF93cmFwKH4gRmlsbSwgc2NhbGVzID0gImZyZWVfeSIpICsKICBzY2FsZV9maWxsX3BhbGV0dGVlcl9kKCJnZ3NjaTo6ZGVmYXVsdF91Y3NjZ2IiKSArICAgCiAgbGFicygKICAgIHRpdGxlID0gIkxvcmQgb2YgdGhlIFJpbmcgTW92aWVzOiBUb3RhbCBXb3JkcyBTcG9rZW4iLAogICAgc3VidGl0bGUgPSAiQ29tcGFyaW5nIHdoaWNoIHJhY2Ugc3BlYWtzIHRoZSBtb3N0IiwKICAgIHggPSAiUmFjZSIsIHkgPSAiVG90YWwgV29yZHMgU3Bva2VuIikgKwogIHRoZW1lX21pbmltYWwoKSArCiAgdGhlbWUoCiAgICBsZWdlbmQucG9zaXRpb24gPSAibm9uZSIsIAogICAgcGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChmYWNlID0iYm9sZCIsIHNpemUgPSAxNiwgaGp1c3QgPSAwLjUpLAogICAgcGxvdC5zdWJ0aXRsZSA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAuNSkpCiAKCmBgYAoKKEApIFdyYW5nbGUgdGhlIGRhdGEgdG8gcmVwcm9kdWNlIHRoZSBmb2xsb3dpbmcgdGFibGUgKEhpbnQ6IHRoaW5rIGFib3V0IHdoYXQgNyBjb2x1bW5zIHlvdSBuZWVkIHRvIGhhdmUgaW4geW91ciBkYXRhIGJlZm9yZSBtYWtpbmcgeW91ciBndCB0YWJsZSk6IAoKPHAgYWxpZ249ImNlbnRlciI+CiFbXShMT1RSLVRhYmxlLnBuZyl7d2lkdGg9NjAlfSA8L3A+CgpgYGB7cn0Kc2V4IDwtIGxvdHIyICU+JQogIHBpdm90X3dpZGVyKGlkX2NvbHMgPSBjKEZpbG0sIFJhY2UpLAogICAgICAgICAgICAgIG5hbWVzX2Zyb20gPSAiU2V4IiwKICAgICAgICAgICAgICB2YWx1ZXNfZnJvbT0gIldvcmRzIikKCnJhY2Vfc2V4IDwtIHNleCAlPiUKICAgIHBpdm90X3dpZGVyKGlkX2NvbHMgPSBGaWxtLAogICAgICAgICAgICAgIG5hbWVzX2Zyb20gPSBSYWNlLAogICAgICAgICAgICAgIHZhbHVlc19mcm9tPSBjKEZlbWFsZSwgTWFsZSkpIAoKcmFjZV9zZXggJT4lCiAgZ3QoKSAlPiUKICB0YWJfaGVhZGVyKHRpdGxlID0gIldvcmRzIFNwb2tlbiBieSBDaGFyYWN0ZXJzIChTZXgsIFJhY2UpIGluIExPVFIiKSAlPiUKICB0YWJfc3Bhbm5lcihsYWJlbCA9ICJGZW1hbGUgQ2hhcmFjdGVycyIsIGNvbHVtbnMgPSBjKEZlbWFsZV9FbGYsIEZlbWFsZV9Ib2JiaXQsIEZlbWFsZV9NYW4pKSAlPiUKICB0YWJfc3Bhbm5lcihsYWJlbCA9ICJNYWxlIENoYXJhY3RlcnMiLCBjb2x1bW5zID0gYyhNYWxlX0VsZiwgTWFsZV9Ib2JiaXQsIE1hbGVfTWFuKSkgJT4lCiAgY29sc19sYWJlbCgKICAgIEZpbG0gPSAiRmlsbSIsCiAgICBGZW1hbGVfRWxmID0gIkVsZiIsCiAgICBGZW1hbGVfSG9iYml0ID0gIkhvYmJpdCIsCiAgICBGZW1hbGVfTWFuID0gIkh1bWFuIiwKICAgIE1hbGVfRWxmID0gIkVsZiIsCiAgICBNYWxlX0hvYmJpdCA9ICJIb2JiaXQiLAogICAgTWFsZV9NYW4gPSAiSHVtYW4iKQoKCiAgCmBgYA==