1. Introduction

Aberdeen Children of the 1950s (ACONF) Cohort’s Views on Future Research Survey was created in Google Forms, posted on Aberdeen Birth Cohorts FB page on 30 April 2021, and sent by email the following day to 741 cohort members. It included six questions - four asking the participant to rank priority (these were mandatory), one open question, and one multiple choice asking respondent to identify themselves as ACONF participant, member of the public, and/or researcher or public health professional. The survey was open for a week and received 460 responses. From 460 people, 8 identified as members of the public and not ACONF. Excluding non-ACONF members, and not taking into account the impact of FB page posting (which has a relatively small following), the response rate is 61%.

Out of 452 ACONF respondents, 4 also identified as “Researcher or public health professional”. This group provided 214 free text responses to Q5 which was not a mandatory question. The following analysis pertains to 452 self-identified ACONF cohort members only.

The survey opened with the below text.

“We’re interested to hear your views on potential new research on COVID-19 and the Aberdeen Children of the 1950s (ACONF) study. The last year has changed our lives dramatically – how we work, connect with family and friends, look after our health and go about our daily lives. As researchers, we are keen to understand how the changes brought about by the pandemic have affected lives of the study participants. We would value your opinion on how to prioritise these research questions and would also like to hear your thoughts on any topics you feel are important.”

2. Answers to Questions 1-4 (n = 452)

“We are interested in a number of topics, please tell us whether you think these are of high or low priority to research:”

Q1. “Understanding why some people are less likely to take up the COVID-19 vaccine (1 - Low priority, 5 - High priority)”

Q2. “Understanding the experience of using the internet for daily activities (e.g. shopping, keeping in contact with friends and family) (1 - Low priority, 5 - High priority)”

Q3. “Examining impact of the pandemic on mental health, loneliness and wellbeing (1 - Low priority, 5 - High priority)”

Q4. Understanding how experience as a child of the 50s and 60s has helped with coping with the effects of COVID-19 lockdowns, social isolation and mental health issues? (1 - Low priority, 5 - High priority)"

3. Answers to Question 5 (n = 214)

Respondents were asked: “Are there any other aspects of life during the pandemic that you think should be researched?”

Here I calculate word frequency in all responses. This reflects the frequency of each word and not instances of responses with each word. Misspelled instances of ‘Aberdeen’ and non/hyphenated versions of ‘wellbeing’ are identified and made uniform using regex.

LongAnswer <- ACONF_Views_Survey %>%
  filter(Category != "Member of the public") %>%
  filter(!is.na(FreeText)) %>%
  select(FreeText)

LongAnswer_clean <- LongAnswer %>%
  mutate(FreeText = gsub("(?i)well(.|)being", "wellbeing", FreeText)) %>%
  mutate(FreeText = gsub("(?i)Aberd\\w*", "Aberdeen", FreeText))

wordcounts <- LongAnswer_clean %>%
  unnest_tokens(word, FreeText) %>%
  anti_join(stop_words) %>%
  dplyr::count(word) %>%
  arrange(desc(n))

Themes <- LongAnswer_clean %>%
  mutate(typhoid = str_detect(FreeText, "(?i)typhoid")) %>%
  mutate(finances = str_detect(FreeText, c("(?i)finan\\w*|(?i)\\bearnings"))) %>%
  mutate(physical = str_detect(FreeText, c("(?i)physical|(?i)fitness|(?i)exercise"))) %>%
  mutate(access = str_detect(FreeText, "(?i)access|(?i)gp.*|(?i)medical")) %>%
  mutate(vaccine = str_detect(FreeText, "(?i)vaccin\\w*")) %>%
  mutate(urbanrural = str_detect(FreeText, "(?i)urban|(?i)rural")) %>%
  mutate(travel = str_detect(FreeText, "(?i)abroad|(?i)travel\\w*")) %>%
  mutate(shopping = str_detect(FreeText, "(?i)shopping")) %>%
  mutate(positives = str_detect(FreeText, "(?i)positive\\w*")) %>%
  mutate(bereavement = str_detect(FreeText, "(?i)bereavement|loss.of.close|losing.a.family|loss.of.loved.ones")) %>%
  mutate(isolation = str_detect(FreeText, ("(?i)mental.health|isolation|contact")))

DT::datatable(wordcounts, colnames = c("", "Word", "Frequency"), options = list(autoWidth = TRUE, columnDefs = list(list(width = '50px', targets = 1))))

3.1 Free text respones and selected themes

In this section, free text responses can be searched and viewed in the tab ‘All responses’. In other tabs, a selection of themes is identified and grouped so relevant responses can be read together. In all theme groupings for word variations and multiple words regex is used.

For example, ‘Finances’ includes ‘financial’ (4), ‘finances’ (1), and ‘financially’ (1), as well as ‘earnings’ (3). No instances of ‘money’ or ‘economical’ or their variations are found. These are not broken down by number for each grouping at the moment.

Some frequent words such as ‘people’ (52) are very non-specific, while themes such as access to healthcare need more key words such as ‘access’, ‘GP’, ‘services’, ‘medical’ and still leave an unrelated cases which is manually excluded.

Code used for rexeg can be viewed by exandind chunk in the previous section.

All responses
Typhoid
Finances
Healthcare access
Physical health
Vaccine
Urban/rural
Travel
Shopping
Positives
Bereavement
Mental health
LS0tDQp0aXRsZTogIkFiZXJkZWVuIENoaWxkcmVuIG9mIHRoZSAxOTUwcyAtIENvaG9ydCdzIFZpZXdzIG9uIEZ1dHVyZSBSZXNlYXJjaCAtIDIwMjEgU3VydmV5Ig0KYXV0aG9yOiAiS3J6eXN6dG9mIEFkYW1jenlrIg0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogeWVzDQogICAgdG9jX2RlcHRoOiA1DQogICAgdGhlbWU6IHNwYWNlbGFiDQogICAgY29kZV9kb3dubG9hZDogeWVzDQogICAgY29kZV9mb2xkaW5nOiBoaWRlDQogICAgYWx3YXlzX2FsbG93X2h0bWw6IHRydWUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkNCmBgYA0KDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQ0KDQpsaWJyYXJ5KHBseXIpDQpsaWJyYXJ5KHJlYWRyKQ0KbGlicmFyeShzdHJpbmdyKQ0KbGlicmFyeSh0aWR5dGV4dCkNCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeSh3ZXNhbmRlcnNvbikNCg0KQUNPTkZfVmlld3NfU3VydmV5IDwtIHJlYWRfY3N2KGhlcmU6OmhlcmUoIkRlc2t0b3AvQUNPTkYgVmlld3MgU3VydmV5L0FDT05GIFZpZXdzIFN1cnZleS5jc3YiKSkNCg0KbmFtZXMoQUNPTkZfVmlld3NfU3VydmV5KSA8LSBjKCJUaW1lc3RhbXAiLCAiUTEiLCAiUTIiLCAiUTMiLCAiUTQiLCAiRnJlZVRleHQiLCAiQ2F0ZWdvcnkiKQ0KDQpgYGANCg0KIyMjIDEuIEludHJvZHVjdGlvbg0KDQpBYmVyZGVlbiBDaGlsZHJlbiBvZiB0aGUgMTk1MHMgKEFDT05GKSBDb2hvcnQncyBWaWV3cyBvbiBGdXR1cmUgUmVzZWFyY2ggU3VydmV5IHdhcyBjcmVhdGVkIGluIEdvb2dsZSBGb3JtcywgcG9zdGVkIG9uIEFiZXJkZWVuIEJpcnRoIENvaG9ydHMgRkIgcGFnZSBvbiAzMCBBcHJpbCAyMDIxLCBhbmQgc2VudCBieSBlbWFpbCB0aGUgZm9sbG93aW5nIGRheSB0byA3NDEgY29ob3J0IG1lbWJlcnMuIEl0IGluY2x1ZGVkIHNpeCBxdWVzdGlvbnMgLSBmb3VyIGFza2luZyB0aGUgcGFydGljaXBhbnQgdG8gcmFuayBwcmlvcml0eSAodGhlc2Ugd2VyZSBtYW5kYXRvcnkpLCBvbmUgb3BlbiBxdWVzdGlvbiwgYW5kIG9uZSBtdWx0aXBsZSBjaG9pY2UgYXNraW5nIHJlc3BvbmRlbnQgdG8gaWRlbnRpZnkgdGhlbXNlbHZlcyBhcyBBQ09ORiBwYXJ0aWNpcGFudCwgbWVtYmVyIG9mIHRoZSBwdWJsaWMsIGFuZC9vciByZXNlYXJjaGVyIG9yIHB1YmxpYyBoZWFsdGggcHJvZmVzc2lvbmFsLiBUaGUgc3VydmV5IHdhcyBvcGVuIGZvciBhIHdlZWsgYW5kIHJlY2VpdmVkIDQ2MCByZXNwb25zZXMuIEZyb20gNDYwIHBlb3BsZSwgOCBpZGVudGlmaWVkIGFzIG1lbWJlcnMgb2YgdGhlIHB1YmxpYyBhbmQgbm90IEFDT05GLiBFeGNsdWRpbmcgbm9uLUFDT05GIG1lbWJlcnMsIGFuZCBub3QgdGFraW5nIGludG8gYWNjb3VudCB0aGUgaW1wYWN0IG9mIEZCIHBhZ2UgcG9zdGluZyAod2hpY2ggaGFzIGEgcmVsYXRpdmVseSBzbWFsbCBmb2xsb3dpbmcpLCB0aGUgcmVzcG9uc2UgcmF0ZSBpcyA2MSUuDQoNCk91dCBvZiA0NTIgQUNPTkYgcmVzcG9uZGVudHMsIDQgYWxzbyBpZGVudGlmaWVkIGFzICJSZXNlYXJjaGVyIG9yIHB1YmxpYyBoZWFsdGggcHJvZmVzc2lvbmFsIi4gVGhpcyBncm91cCBwcm92aWRlZCAyMTQgZnJlZSB0ZXh0IHJlc3BvbnNlcyB0byBRNSB3aGljaCB3YXMgbm90IGEgbWFuZGF0b3J5IHF1ZXN0aW9uLiBUaGUgZm9sbG93aW5nIGFuYWx5c2lzIHBlcnRhaW5zIHRvIDQ1MiBzZWxmLWlkZW50aWZpZWQgQUNPTkYgY29ob3J0IG1lbWJlcnMgb25seS4NCg0KVGhlIHN1cnZleSBvcGVuZWQgd2l0aCB0aGUgYmVsb3cgdGV4dC4NCg0KIldlJ3JlIGludGVyZXN0ZWQgdG8gaGVhciB5b3VyIHZpZXdzIG9uIHBvdGVudGlhbCBuZXcgcmVzZWFyY2ggb24gQ09WSUQtMTkgYW5kIHRoZSBBYmVyZGVlbiBDaGlsZHJlbiBvZiB0aGUgMTk1MHMgKEFDT05GKSBzdHVkeS4gVGhlIGxhc3QgeWVhciBoYXMgY2hhbmdlZCBvdXIgbGl2ZXMgZHJhbWF0aWNhbGx5IC0tIGhvdyB3ZSB3b3JrLCBjb25uZWN0IHdpdGggZmFtaWx5IGFuZCBmcmllbmRzLCBsb29rIGFmdGVyIG91ciBoZWFsdGggYW5kIGdvIGFib3V0IG91ciBkYWlseSBsaXZlcy4gQXMgcmVzZWFyY2hlcnMsIHdlIGFyZSBrZWVuIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBjaGFuZ2VzIGJyb3VnaHQgYWJvdXQgYnkgdGhlIHBhbmRlbWljIGhhdmUgYWZmZWN0ZWQgbGl2ZXMgb2YgdGhlIHN0dWR5IHBhcnRpY2lwYW50cy4gV2Ugd291bGQgdmFsdWUgeW91ciBvcGluaW9uIG9uIGhvdyB0byBwcmlvcml0aXNlIHRoZXNlIHJlc2VhcmNoIHF1ZXN0aW9ucyBhbmQgd291bGQgYWxzbyBsaWtlIHRvIGhlYXIgeW91ciB0aG91Z2h0cyBvbiBhbnkgdG9waWNzIHlvdSBmZWVsIGFyZSBpbXBvcnRhbnQuIg0KDQojIyMgMi4gQW5zd2VycyB0byBRdWVzdGlvbnMgMS00IChuID0gNDUyKQ0KDQoiV2UgYXJlIGludGVyZXN0ZWQgaW4gYSBudW1iZXIgb2YgdG9waWNzLCBwbGVhc2UgdGVsbCB1cyB3aGV0aGVyIHlvdSB0aGluayB0aGVzZSBhcmUgb2YgaGlnaCBvciBsb3cgcHJpb3JpdHkgdG8gcmVzZWFyY2g6Ig0KDQpgYGB7ciBpbmNsdWRlPUZBTFNFfQ0KDQpRMVE0IDwtIEFDT05GX1ZpZXdzX1N1cnZleSAlPiUNCiAgZmlsdGVyKENhdGVnb3J5ICE9ICJNZW1iZXIgb2YgdGhlIHB1YmxpYyIpDQoNCnBsb3RpdCA8LSBmdW5jdGlvbih4KSB7DQogICAgZ2dwbG90KFExUTQsIGFlcyh4ID0geCkpICsgDQogICAgZ2VvbV9iYXIoYWVzKHkgPSAuLnByb3AuLiksIHN0YXQgPSAiY291bnQiLCBmaWxsID0gd2VzX3BhbGV0dGUoIlppc3NvdTEiKSkgICsNCiAgICBnZW9tX3RleHQoYWVzKGxhYmVsID0gc2NhbGVzOjpwZXJjZW50KC4ucHJvcC4uLCBhY2N1cmFjeSA9IDAuMSksIHkgPSAuLnByb3AuLiApLCBzdGF0PSAiY291bnQiLCB2anVzdCA9IC0uNSkgKw0KICAgIHNjYWxlX3lfY29udGludW91cyhsYWJlbHMgPSBzY2FsZXM6OmxhYmVsX3BlcmNlbnQoKSwgbGltaXRzID0gYygwLCAwLjcpKSArIA0KICAgIGxhYnMoeCA9ICIiLCB5ID0gIiIpICsgDQogICAgdGhlbWVfbWluaW1hbCgpICsNCiAgICB0aGVtZShheGlzLnRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEyKSkNCiAgICB9DQpgYGANCg0KKipRMS4gIlVuZGVyc3RhbmRpbmcgd2h5IHNvbWUgcGVvcGxlIGFyZSBsZXNzIGxpa2VseSB0byB0YWtlIHVwIHRoZSBDT1ZJRC0xOSB2YWNjaW5lICgxIC0gTG93IHByaW9yaXR5LCA1IC0gSGlnaCBwcmlvcml0eSkiKioNCg0KYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgb3V0LndpZHRoID0gIjYwMHB4IiwgZmlnLmFsaWduID0gImNlbnRlciJ9DQpwbG90aXQoUTFRNCRRMSkNCmBgYA0KDQoqKlEyLiAiVW5kZXJzdGFuZGluZyB0aGUgZXhwZXJpZW5jZSBvZiB1c2luZyB0aGUgaW50ZXJuZXQgZm9yIGRhaWx5IGFjdGl2aXRpZXMgKGUuZy4gc2hvcHBpbmcsIGtlZXBpbmcgaW4gY29udGFjdCB3aXRoIGZyaWVuZHMgYW5kIGZhbWlseSkgKDEgLSBMb3cgcHJpb3JpdHksIDUgLSBIaWdoIHByaW9yaXR5KSIqKg0KDQpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBvdXQud2lkdGggPSAiNjAwcHgiLCBmaWcuYWxpZ24gPSAiY2VudGVyIn0NCnBsb3RpdChRMVE0JFEyKQ0KYGBgDQoNCioqUTMuICJFeGFtaW5pbmcgaW1wYWN0IG9mIHRoZSBwYW5kZW1pYyBvbiBtZW50YWwgaGVhbHRoLCBsb25lbGluZXNzIGFuZCB3ZWxsYmVpbmcgKDEgLSBMb3cgcHJpb3JpdHksIDUgLSBIaWdoIHByaW9yaXR5KSIqKg0KDQpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBvdXQud2lkdGggPSAiNjAwcHgiLCBmaWcuYWxpZ24gPSAiY2VudGVyIn0NCnBsb3RpdChRMVE0JFEzKQ0KYGBgDQoNCioqUTQuIFVuZGVyc3RhbmRpbmcgaG93IGV4cGVyaWVuY2UgYXMgYSBjaGlsZCBvZiB0aGUgNTBzIGFuZCA2MHMgaGFzIGhlbHBlZCB3aXRoIGNvcGluZyB3aXRoIHRoZSBlZmZlY3RzIG9mIENPVklELTE5IGxvY2tkb3ducywgc29jaWFsIGlzb2xhdGlvbiBhbmQgbWVudGFsIGhlYWx0aCBpc3N1ZXM/ICgxIC0gTG93IHByaW9yaXR5LCA1IC0gSGlnaCBwcmlvcml0eSkiKioNCg0KYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgb3V0LndpZHRoID0gIjYwMHB4IiwgZmlnLmFsaWduID0gImNlbnRlciJ9DQpwbG90aXQoUTFRNCRRNCkNCmBgYA0KDQojIyMgMy4gQW5zd2VycyB0byBRdWVzdGlvbiA1IChuID0gMjE0KQ0KDQpSZXNwb25kZW50cyB3ZXJlIGFza2VkOiAqKiJBcmUgdGhlcmUgYW55IG90aGVyIGFzcGVjdHMgb2YgbGlmZSBkdXJpbmcgdGhlIHBhbmRlbWljIHRoYXQgeW91IHRoaW5rIHNob3VsZCBiZSByZXNlYXJjaGVkPyIqKg0KDQpIZXJlIEkgY2FsY3VsYXRlIHdvcmQgZnJlcXVlbmN5IGluIGFsbCByZXNwb25zZXMuIFRoaXMgcmVmbGVjdHMgdGhlIGZyZXF1ZW5jeSBvZiBlYWNoIHdvcmQgYW5kIG5vdCBpbnN0YW5jZXMgb2YgcmVzcG9uc2VzIHdpdGggZWFjaCB3b3JkLiBNaXNzcGVsbGVkIGluc3RhbmNlcyBvZiAnQWJlcmRlZW4nIGFuZCBub24vaHlwaGVuYXRlZCB2ZXJzaW9ucyBvZiAnd2VsbGJlaW5nJyBhcmUgaWRlbnRpZmllZCBhbmQgbWFkZSB1bmlmb3JtIHVzaW5nIHJlZ2V4Lg0KDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KDQpMb25nQW5zd2VyIDwtIEFDT05GX1ZpZXdzX1N1cnZleSAlPiUNCiAgZmlsdGVyKENhdGVnb3J5ICE9ICJNZW1iZXIgb2YgdGhlIHB1YmxpYyIpICU+JQ0KICBmaWx0ZXIoIWlzLm5hKEZyZWVUZXh0KSkgJT4lDQogIHNlbGVjdChGcmVlVGV4dCkNCg0KTG9uZ0Fuc3dlcl9jbGVhbiA8LSBMb25nQW5zd2VyICU+JQ0KICBtdXRhdGUoRnJlZVRleHQgPSBnc3ViKCIoP2kpd2VsbCgufCliZWluZyIsICJ3ZWxsYmVpbmciLCBGcmVlVGV4dCkpICU+JQ0KICBtdXRhdGUoRnJlZVRleHQgPSBnc3ViKCIoP2kpQWJlcmRcXHcqIiwgIkFiZXJkZWVuIiwgRnJlZVRleHQpKQ0KDQp3b3JkY291bnRzIDwtIExvbmdBbnN3ZXJfY2xlYW4gJT4lDQogIHVubmVzdF90b2tlbnMod29yZCwgRnJlZVRleHQpICU+JQ0KICBhbnRpX2pvaW4oc3RvcF93b3JkcykgJT4lDQogIGRwbHlyOjpjb3VudCh3b3JkKSAlPiUNCiAgYXJyYW5nZShkZXNjKG4pKQ0KDQpUaGVtZXMgPC0gTG9uZ0Fuc3dlcl9jbGVhbiAlPiUNCiAgbXV0YXRlKHR5cGhvaWQgPSBzdHJfZGV0ZWN0KEZyZWVUZXh0LCAiKD9pKXR5cGhvaWQiKSkgJT4lDQogIG11dGF0ZShmaW5hbmNlcyA9IHN0cl9kZXRlY3QoRnJlZVRleHQsIGMoIig/aSlmaW5hblxcdyp8KD9pKVxcYmVhcm5pbmdzIikpKSAlPiUNCiAgbXV0YXRlKHBoeXNpY2FsID0gc3RyX2RldGVjdChGcmVlVGV4dCwgYygiKD9pKXBoeXNpY2FsfCg/aSlmaXRuZXNzfCg/aSlleGVyY2lzZSIpKSkgJT4lDQogIG11dGF0ZShhY2Nlc3MgPSBzdHJfZGV0ZWN0KEZyZWVUZXh0LCAiKD9pKWFjY2Vzc3woP2kpZ3AuKnwoP2kpbWVkaWNhbCIpKSAlPiUNCiAgbXV0YXRlKHZhY2NpbmUgPSBzdHJfZGV0ZWN0KEZyZWVUZXh0LCAiKD9pKXZhY2NpblxcdyoiKSkgJT4lDQogIG11dGF0ZSh1cmJhbnJ1cmFsID0gc3RyX2RldGVjdChGcmVlVGV4dCwgIig/aSl1cmJhbnwoP2kpcnVyYWwiKSkgJT4lDQogIG11dGF0ZSh0cmF2ZWwgPSBzdHJfZGV0ZWN0KEZyZWVUZXh0LCAiKD9pKWFicm9hZHwoP2kpdHJhdmVsXFx3KiIpKSAlPiUNCiAgbXV0YXRlKHNob3BwaW5nID0gc3RyX2RldGVjdChGcmVlVGV4dCwgIig/aSlzaG9wcGluZyIpKSAlPiUNCiAgbXV0YXRlKHBvc2l0aXZlcyA9IHN0cl9kZXRlY3QoRnJlZVRleHQsICIoP2kpcG9zaXRpdmVcXHcqIikpICU+JQ0KICBtdXRhdGUoYmVyZWF2ZW1lbnQgPSBzdHJfZGV0ZWN0KEZyZWVUZXh0LCAiKD9pKWJlcmVhdmVtZW50fGxvc3Mub2YuY2xvc2V8bG9zaW5nLmEuZmFtaWx5fGxvc3Mub2YubG92ZWQub25lcyIpKSAlPiUNCiAgbXV0YXRlKGlzb2xhdGlvbiA9IHN0cl9kZXRlY3QoRnJlZVRleHQsICgiKD9pKW1lbnRhbC5oZWFsdGh8aXNvbGF0aW9ufGNvbnRhY3QiKSkpDQoNCkRUOjpkYXRhdGFibGUod29yZGNvdW50cywgY29sbmFtZXMgPSBjKCIiLCAiV29yZCIsICJGcmVxdWVuY3kiKSwgb3B0aW9ucyA9IGxpc3QoYXV0b1dpZHRoID0gVFJVRSwgY29sdW1uRGVmcyA9IGxpc3QobGlzdCh3aWR0aCA9ICc1MHB4JywgdGFyZ2V0cyA9IDEpKSkpDQoNCmBgYA0KDQojIyMjIDMuMSBGcmVlIHRleHQgcmVzcG9uZXMgYW5kIHNlbGVjdGVkIHRoZW1lcyB7LnRhYnNldH0NCg0KSW4gdGhpcyBzZWN0aW9uLCBmcmVlIHRleHQgcmVzcG9uc2VzIGNhbiBiZSBzZWFyY2hlZCBhbmQgdmlld2VkIGluIHRoZSB0YWIgJ0FsbCByZXNwb25zZXMnLiBJbiBvdGhlciB0YWJzLCBhIHNlbGVjdGlvbiBvZiB0aGVtZXMgaXMgaWRlbnRpZmllZCBhbmQgZ3JvdXBlZCBzbyByZWxldmFudCByZXNwb25zZXMgY2FuIGJlIHJlYWQgdG9nZXRoZXIuIEluIGFsbCB0aGVtZSBncm91cGluZ3MgZm9yIHdvcmQgdmFyaWF0aW9ucyBhbmQgbXVsdGlwbGUgd29yZHMgcmVnZXggaXMgdXNlZC4NCg0KRm9yIGV4YW1wbGUsICdGaW5hbmNlcycgaW5jbHVkZXMgJ2ZpbmFuY2lhbCcgKDQpLCAnZmluYW5jZXMnICgxKSwgYW5kICdmaW5hbmNpYWxseScgKDEpLCBhcyB3ZWxsIGFzICdlYXJuaW5ncycgKDMpLiBObyBpbnN0YW5jZXMgb2YgJ21vbmV5JyBvciAnZWNvbm9taWNhbCcgb3IgdGhlaXIgdmFyaWF0aW9ucyBhcmUgZm91bmQuIFRoZXNlIGFyZSBub3QgYnJva2VuIGRvd24gYnkgbnVtYmVyIGZvciBlYWNoIGdyb3VwaW5nIGF0IHRoZSBtb21lbnQuDQoNClNvbWUgZnJlcXVlbnQgd29yZHMgc3VjaCBhcyAncGVvcGxlJyAoNTIpIGFyZSB2ZXJ5IG5vbi1zcGVjaWZpYywgd2hpbGUgdGhlbWVzIHN1Y2ggYXMgYWNjZXNzIHRvIGhlYWx0aGNhcmUgbmVlZCBtb3JlIGtleSB3b3JkcyBzdWNoIGFzICdhY2Nlc3MnLCAnR1AnLCAnc2VydmljZXMnLCAnbWVkaWNhbCcgYW5kIHN0aWxsIGxlYXZlIGFuIHVucmVsYXRlZCBjYXNlcyB3aGljaCBpcyBtYW51YWxseSBleGNsdWRlZC4NCg0KQ29kZSB1c2VkIGZvciByZXhlZyBjYW4gYmUgdmlld2VkIGJ5IGV4YW5kaW5kIGNodW5rIGluIHRoZSBwcmV2aW91cyBzZWN0aW9uLg0KDQojIyMjIyAqKkFsbCByZXNwb25zZXMqKg0KDQpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KDQpUaGVtZXMgJT4lDQogIHNlbGVjdChGcmVlVGV4dCkgJT4lDQogIERUOjpkYXRhdGFibGUoY29sbmFtZXMgPSBjKCJBbGwgcmVzcG9uc2VzIikpDQoNCmBgYA0KDQojIyMjIyBUeXBob2lkDQoNCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQoNClRoZW1lcyAlPiUNCiAgZmlsdGVyKHR5cGhvaWQgPT0gVFJVRSkgJT4lDQogIHNlbGVjdChGcmVlVGV4dCkgJT4lDQogIERUOjpkYXRhdGFibGUoY29sbmFtZXMgPSBjKCJUeXBob2lkIikpDQoNCmBgYA0KDQojIyMjIyBGaW5hbmNlcw0KDQpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KDQpUaGVtZXMgJT4lDQogIGZpbHRlcihmaW5hbmNlcyA9PSBUUlVFKSAlPiUNCiAgc2VsZWN0KEZyZWVUZXh0KSAlPiUNCiAgRFQ6OmRhdGF0YWJsZShjb2xuYW1lcyA9IGMoIkZpbmFuY2VzIC8gRWFybmluZ3MiKSkNCg0KYGBgDQoNCiMjIyMjIEhlYWx0aGNhcmUgYWNjZXNzDQoNCmBgYHtyIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQoNClRoZW1lcyAlPiUNCiAgZmlsdGVyKGFjY2VzcyA9PSBUUlVFKSAlPiUNCiAgc2VsZWN0KEZyZWVUZXh0KSAlPiUNCiAgc2xpY2UoLWMoNiwgMTAsIDEyLCAxOSkpICU+JQ0KICBEVDo6ZGF0YXRhYmxlKGNvbG5hbWVzID0gYygiQWNjZXNzIC8gR1AgLyBTZXJ2aWNlcyAvIE1lZGljYWwiKSkNCg0KYGBgDQoNCiMjIyMjIFBoeXNpY2FsIGhlYWx0aA0KDQpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KDQpUaGVtZXMgJT4lDQogIGZpbHRlcihwaHlzaWNhbCA9PSBUUlVFKSAlPiUNCiAgc2VsZWN0KEZyZWVUZXh0KSAlPiUNCiAgICBEVDo6ZGF0YXRhYmxlKGNvbG5hbWVzID0gYygiUGh5c2ljYWwgLyBGaXRuZXNzIC8gRXhlcmNpc2UiKSkNCg0KYGBgDQoNCiMjIyMjIFZhY2NpbmUNCg0KYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCg0KVGhlbWVzICU+JQ0KICBmaWx0ZXIodmFjY2luZSA9PSBUUlVFKSAlPiUNCiAgc2VsZWN0KEZyZWVUZXh0KSAlPiUNCiAgICBEVDo6ZGF0YXRhYmxlKGNvbG5hbWVzID0gYygiVmFjY2luZSIpKQ0KDQpgYGANCg0KIyMjIyMgVXJiYW4vcnVyYWwNCg0KYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCg0KVGhlbWVzICU+JQ0KICBmaWx0ZXIodXJiYW5ydXJhbCA9PSBUUlVFKSAlPiUNCiAgc2VsZWN0KEZyZWVUZXh0KSAlPiUNCiAgICBEVDo6ZGF0YXRhYmxlKGNvbG5hbWVzID0gYygiVXJiYW4gLyBSdXJhbCAiKSkNCg0KYGBgDQoNCiMjIyMjIFRyYXZlbA0KDQpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KDQpUaGVtZXMgJT4lDQogIGZpbHRlcih0cmF2ZWwgPT0gVFJVRSkgJT4lDQogIHNlbGVjdChGcmVlVGV4dCkgJT4lDQogICAgRFQ6OmRhdGF0YWJsZShjb2xuYW1lcyA9IGMoIlRyYXZlbCAvIEFicm9hZCIpKQ0KDQpgYGANCg0KIyMjIyMgU2hvcHBpbmcNCg0KYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCg0KVGhlbWVzICU+JQ0KICBmaWx0ZXIoc2hvcHBpbmcgPT0gVFJVRSkgJT4lDQogIHNlbGVjdChGcmVlVGV4dCkgJT4lDQogICAgRFQ6OmRhdGF0YWJsZShjb2xuYW1lcyA9IGMoIlNob3BwaW5nIikpDQoNCmBgYA0KDQojIyMjIyBQb3NpdGl2ZXMNCg0KYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCg0KVGhlbWVzICU+JQ0KICBmaWx0ZXIocG9zaXRpdmVzID09IFRSVUUpICU+JQ0KICBzZWxlY3QoRnJlZVRleHQpICU+JQ0KICAgIERUOjpkYXRhdGFibGUoY29sbmFtZXMgPSBjKCJQb3NpdGl2ZXMiKSkNCg0KYGBgDQoNCg0KIyMjIyMgQmVyZWF2ZW1lbnQNCg0KYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCg0KVGhlbWVzICU+JQ0KICBmaWx0ZXIoYmVyZWF2ZW1lbnQgPT0gVFJVRSkgJT4lDQogIHNlbGVjdChGcmVlVGV4dCkgJT4lDQogICAgRFQ6OmRhdGF0YWJsZShjb2xuYW1lcyA9IGMoIkJlcmVhdmVtZW50IC8gTG9zcyIpKQ0KDQpgYGANCg0KIyMjIyMgTWVudGFsIGhlYWx0aA0KDQpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KDQpUaGVtZXMgJT4lDQogIGZpbHRlcihpc29sYXRpb24gPT0gVFJVRSkgJT4lDQogIHNsaWNlKC1jKDgsIDkpKSAlPiUNCiAgc2VsZWN0KEZyZWVUZXh0KSAlPiUNCiAgICBEVDo6ZGF0YXRhYmxlKGNvbG5hbWVzID0gYygiTWVudGFsIGhlYWx0aCAvIElzb2xhdGlvbiAvIENvbnRhY3QiKSkNCg0KYGBgDQoNCg==