library(tidyverse)
library(openintro)
library(infer)
## Warning: package 'infer' was built under R version 4.3.3
global_monitor <- tibble(
  scientist_work = c(rep("Benefits", 80000), rep("Doesn't benefit", 20000))
)

ggplot(global_monitor, aes(x = scientist_work)) +
  geom_bar() +
  labs(
    x = "", y = "",
    title = "Do you believe that the work scientists do benefit people like you?"
  ) +
  coord_flip() 

global_monitor %>%
  count(scientist_work) %>%
  mutate(p = n /sum(n))
## # A tibble: 2 × 3
##   scientist_work      n     p
##   <chr>           <int> <dbl>
## 1 Benefits        80000   0.8
## 2 Doesn't benefit 20000   0.2
samp1 <- global_monitor %>%
  sample_n(50)

Exercise 1

The data for both the sample and the population shows that 14% of people believe that the work of scientists is not beneficial. The sample data is 0.06 off from the population data. However, they are still close.

samp1 %>%
  count(scientist_work) %>%
  mutate(p_hat = n /sum(n))
## # A tibble: 2 × 3
##   scientist_work      n p_hat
##   <chr>           <int> <dbl>
## 1 Benefits           40   0.8
## 2 Doesn't benefit    10   0.2

Exercise 2

I would not expect the same sample proportion as another student’s. This is because sampling will most likely come out different each time. The proportions could be close; however, they will not be exactly the same due to the sampling process yielding different results every time it is done.

Exercise 3

In samp2, the data is different. More people are in the “does not benefit” column. Only 3 more people are in this column (10), compared to the previous sample (7). Although, since the sample size is so small, this has an impact on the p_hat.

The sample of 1000 would be a more appropriate estimate of the population proportion since the larger the sample, the closer the statistic will get to the actual population parameter. Note: larger sample size means less variability.

sample_props50 <- global_monitor %>%
                    rep_sample_n(size = 50, reps = 15000, replace = TRUE) %>%
                    count(scientist_work) %>%
                    mutate(p_hat = n /sum(n)) %>%
                    filter(scientist_work == "Doesn't benefit")

ggplot(data = sample_props50, aes(x = p_hat)) +
  geom_histogram(binwidth = 0.02) +
  labs(
    x = "p_hat (Doesn't benefit)",
    title = "Sampling distribution of p_hat",
    subtitle = "Sample size = 50, Number of samples = 15000"
  )

set.seed(4444)
samp2 <- global_monitor %>%
  sample_n(50)

samp2 %>%
  count(scientist_work) %>%
  mutate(p.hat = n /sum(n))
## # A tibble: 2 × 3
##   scientist_work      n p.hat
##   <chr>           <int> <dbl>
## 1 Benefits           40   0.8
## 2 Doesn't benefit    10   0.2

Exercise 4

There were 15,000 samples taken, which means, there are 15,000 data points used to make this plot. The plot looks mostly normally distributed, but with a slight skew to the right. The center appears to be around 0.2, which is consistent with the population parameter.

global_monitor %>%
  sample_n(size = 50, replace = TRUE) %>%
  count(scientist_work) %>%
  mutate(p_hat = n /sum(n)) %>%
  filter(scientist_work == "Doesn't benefit")
## # A tibble: 1 × 3
##   scientist_work      n p_hat
##   <chr>           <int> <dbl>
## 1 Doesn't benefit     9  0.18

Exercise 5

There are 25 observations in this object. Each observation is a sample proportion that makes up the sampling distribution.

sample_props_small <- global_monitor %>% rep_sample_n(size = 10, reps = 25, replace = TRUE) %>%
                    count(scientist_work) %>%
                    mutate(p_hat = n /sum(n)) %>%
                    filter(scientist_work == "Doesn't benefit")

ggplot(data = sample_props50, aes(x = p_hat)) +
  geom_histogram(binwidth = 0.02)

Exercise 6

Each observation is the proportion that came out of the simulation:

n = 10; mean = 0.22; se = 0.11

n = 50; mean = 0.2; se = 0.06

n = 100; mean = 0.2; se = 0.04

The mean of these gets closer to 0.2; the true mean as we increase the number of samples. The se decreases, which means that as you increase the sample size, there is less variability. The distribution begins to appear normal when you make the sample larger, since at n = 10, there is a right skew.

Exercise 7 - More Practice

Based on this sampling, the best estimate is that 80% believe that the work of scientists is beneficial.

set.seed(5555)
samp3 <- global_monitor %>%
  sample_n(15)

samp3 %>%
  count(scientist_work) %>%
  mutate(p.hat = n /sum(n))
## # A tibble: 2 × 3
##   scientist_work      n p.hat
##   <chr>           <int> <dbl>
## 1 Benefits           12   0.8
## 2 Doesn't benefit     3   0.2

Exercise 8 - More Practice

Based on the sampling here, the estimate is 0.798. The true population proportion is 0.8. So, this estimate is very close.

sample_props15 <- global_monitor %>% rep_sample_n(size = 15, reps = 2000, replace = TRUE) %>%
                    count(scientist_work) %>%
                    mutate(p_hat = n /sum(n)) %>%
                    filter(scientist_work == "Benefits")

ggplot(data = sample_props15, aes(x = p_hat)) +
  geom_histogram(binwidth = 0.02) +
  labs(
    x = "p_hat (Benefits)",
    title = "Sampling distribution of p_hat",
    subtitle = "Sample size = 15, Number of samples = 2000")

mean(sample_props15$p_hat)
## [1] 0.7984667
global_monitor %>%
  count(scientist_work) %>%
  mutate(p = n /sum(n))
## # A tibble: 2 × 3
##   scientist_work      n     p
##   <chr>           <int> <dbl>
## 1 Benefits        80000   0.8
## 2 Doesn't benefit 20000   0.2

Exercise 9 - More Practice

When n = 150, the shape is more normal.

Based on this, the proportion is very nearly 0.8, since the mean of the sampling distribution is 0.799. Which is 0.001 off from the true proportion (0.8). Closer than what we found from Exercise 8 above.

sample_props150 <- global_monitor %>% rep_sample_n(size = 150, reps = 2000, replace = TRUE) %>%
                    count(scientist_work) %>%
                    mutate(p_hat = n /sum(n)) %>%
                    filter(scientist_work == "Benefits")

ggplot(data = sample_props150, aes(x = p_hat)) +
  geom_histogram(binwidth = 0.02) +
  labs(
    x = "p_hat (Benefits)",
    title = "Sampling distribution of p_hat",
    subtitle = "Sample size = 150, Number of samples = 2000")

mean(sample_props150$p_hat)
## [1] 0.7994033

Exercise 10 - More Practice

The spread of the n = 150 sampling distribution is smaller than the sampling distribution where n = 15. Based on this, it would be my preference to predict the proportion from this distribution with a smaller spread because there is less variability in the data. This would mean that the value from sampling is closer to the true proportion.

LS0tDQp0aXRsZTogIkxhYiA1OiBTYW1wbGluZyBEaXN0cmlidXRpb25zIg0KYXV0aG9yOiAiQ29saW4gUy4iDQpkYXRlOiAiQXByaWwgMjEsIDIwMjQiDQpvdXRwdXQ6IG9wZW5pbnRybzo6bGFiX3JlcG9ydA0KLS0tDQoNCmBgYHtyIGxvYWQtcGFja2FnZXMsIG1lc3NhZ2U9RkFMU0V9DQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkob3BlbmludHJvKQ0KbGlicmFyeShpbmZlcikNCg0KZ2xvYmFsX21vbml0b3IgPC0gdGliYmxlKA0KICBzY2llbnRpc3Rfd29yayA9IGMocmVwKCJCZW5lZml0cyIsIDgwMDAwKSwgcmVwKCJEb2Vzbid0IGJlbmVmaXQiLCAyMDAwMCkpDQopDQoNCmdncGxvdChnbG9iYWxfbW9uaXRvciwgYWVzKHggPSBzY2llbnRpc3Rfd29yaykpICsNCiAgZ2VvbV9iYXIoKSArDQogIGxhYnMoDQogICAgeCA9ICIiLCB5ID0gIiIsDQogICAgdGl0bGUgPSAiRG8geW91IGJlbGlldmUgdGhhdCB0aGUgd29yayBzY2llbnRpc3RzIGRvIGJlbmVmaXQgcGVvcGxlIGxpa2UgeW91PyINCiAgKSArDQogIGNvb3JkX2ZsaXAoKSANCg0KZ2xvYmFsX21vbml0b3IgJT4lDQogIGNvdW50KHNjaWVudGlzdF93b3JrKSAlPiUNCiAgbXV0YXRlKHAgPSBuIC9zdW0obikpDQoNCnNhbXAxIDwtIGdsb2JhbF9tb25pdG9yICU+JQ0KICBzYW1wbGVfbig1MCkNCg0KYGBgDQoNCiMjIyBFeGVyY2lzZSAxDQoNClRoZSBkYXRhIGZvciBib3RoIHRoZSBzYW1wbGUgYW5kIHRoZSBwb3B1bGF0aW9uIHNob3dzIHRoYXQgMTQlIG9mIHBlb3BsZSBiZWxpZXZlIHRoYXQgdGhlIHdvcmsgb2Ygc2NpZW50aXN0cyBpcyBub3QgYmVuZWZpY2lhbC4gVGhlIHNhbXBsZSBkYXRhIGlzIDAuMDYgb2ZmIGZyb20gdGhlIHBvcHVsYXRpb24gZGF0YS4gSG93ZXZlciwgdGhleSBhcmUgc3RpbGwgY2xvc2UuDQoNCmBgYHtyIHZpZXctZ2lybHMtY291bnRzfQ0KDQpzYW1wMSAlPiUNCiAgY291bnQoc2NpZW50aXN0X3dvcmspICU+JQ0KICBtdXRhdGUocF9oYXQgPSBuIC9zdW0obikpDQoNCmBgYA0KDQoNCiMjIyBFeGVyY2lzZSAyDQoNCkkgd291bGQgbm90IGV4cGVjdCB0aGUgc2FtZSBzYW1wbGUgcHJvcG9ydGlvbiBhcyBhbm90aGVyIHN0dWRlbnQncy4gVGhpcyBpcyBiZWNhdXNlIHNhbXBsaW5nIHdpbGwgbW9zdCBsaWtlbHkgY29tZSBvdXQgZGlmZmVyZW50IGVhY2ggdGltZS4gVGhlIHByb3BvcnRpb25zIGNvdWxkIGJlIGNsb3NlOyBob3dldmVyLCB0aGV5IHdpbGwgbm90IGJlIGV4YWN0bHkgdGhlIHNhbWUgZHVlIHRvIHRoZSBzYW1wbGluZyBwcm9jZXNzIHlpZWxkaW5nIGRpZmZlcmVudCByZXN1bHRzIGV2ZXJ5IHRpbWUgaXQgaXMgZG9uZS4NCg0KYGBge3IgdHJlbmQtZ2lybHN9DQoNCmBgYA0KDQoNCiMjIyBFeGVyY2lzZSAzDQoNCkluIHNhbXAyLCB0aGUgZGF0YSBpcyBkaWZmZXJlbnQuIE1vcmUgcGVvcGxlIGFyZSBpbiB0aGUgImRvZXMgbm90IGJlbmVmaXQiIGNvbHVtbi4gT25seSAzIG1vcmUgcGVvcGxlIGFyZSBpbiB0aGlzIGNvbHVtbiAoMTApLCBjb21wYXJlZCB0byB0aGUgcHJldmlvdXMgc2FtcGxlICg3KS4gQWx0aG91Z2gsIHNpbmNlIHRoZSBzYW1wbGUgc2l6ZSBpcyBzbyBzbWFsbCwgdGhpcyBoYXMgYW4gaW1wYWN0IG9uIHRoZSBwX2hhdC4NCg0KVGhlIHNhbXBsZSBvZiAxMDAwIHdvdWxkIGJlIGEgbW9yZSBhcHByb3ByaWF0ZSBlc3RpbWF0ZSBvZiB0aGUgcG9wdWxhdGlvbiBwcm9wb3J0aW9uIHNpbmNlIHRoZSBsYXJnZXIgdGhlIHNhbXBsZSwgdGhlIGNsb3NlciB0aGUgc3RhdGlzdGljIHdpbGwgZ2V0IHRvIHRoZSBhY3R1YWwgcG9wdWxhdGlvbiBwYXJhbWV0ZXIuIE5vdGU6IGxhcmdlciBzYW1wbGUgc2l6ZSBtZWFucyBsZXNzIHZhcmlhYmlsaXR5Lg0KDQpgYGB7ciBwbG90LXByb3AtYm95cy1hcmJ1dGhub3R9DQpzYW1wbGVfcHJvcHM1MCA8LSBnbG9iYWxfbW9uaXRvciAlPiUNCiAgICAgICAgICAgICAgICAgICAgcmVwX3NhbXBsZV9uKHNpemUgPSA1MCwgcmVwcyA9IDE1MDAwLCByZXBsYWNlID0gVFJVRSkgJT4lDQogICAgICAgICAgICAgICAgICAgIGNvdW50KHNjaWVudGlzdF93b3JrKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgbXV0YXRlKHBfaGF0ID0gbiAvc3VtKG4pKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKHNjaWVudGlzdF93b3JrID09ICJEb2Vzbid0IGJlbmVmaXQiKQ0KDQpnZ3Bsb3QoZGF0YSA9IHNhbXBsZV9wcm9wczUwLCBhZXMoeCA9IHBfaGF0KSkgKw0KICBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aCA9IDAuMDIpICsNCiAgbGFicygNCiAgICB4ID0gInBfaGF0IChEb2Vzbid0IGJlbmVmaXQpIiwNCiAgICB0aXRsZSA9ICJTYW1wbGluZyBkaXN0cmlidXRpb24gb2YgcF9oYXQiLA0KICAgIHN1YnRpdGxlID0gIlNhbXBsZSBzaXplID0gNTAsIE51bWJlciBvZiBzYW1wbGVzID0gMTUwMDAiDQogICkNCg0Kc2V0LnNlZWQoNDQ0NCkNCnNhbXAyIDwtIGdsb2JhbF9tb25pdG9yICU+JQ0KICBzYW1wbGVfbig1MCkNCg0Kc2FtcDIgJT4lDQogIGNvdW50KHNjaWVudGlzdF93b3JrKSAlPiUNCiAgbXV0YXRlKHAuaGF0ID0gbiAvc3VtKG4pKQ0KDQpgYGANCg0KDQojIyMgRXhlcmNpc2UgNA0KDQpUaGVyZSB3ZXJlIDE1LDAwMCBzYW1wbGVzIHRha2VuLCB3aGljaCBtZWFucywgdGhlcmUgYXJlIDE1LDAwMCBkYXRhIHBvaW50cyB1c2VkIHRvIG1ha2UgdGhpcyBwbG90LiBUaGUgcGxvdCBsb29rcyBtb3N0bHkgbm9ybWFsbHkgZGlzdHJpYnV0ZWQsIGJ1dCB3aXRoIGEgc2xpZ2h0IHNrZXcgdG8gdGhlIHJpZ2h0LiBUaGUgY2VudGVyIGFwcGVhcnMgdG8gYmUgYXJvdW5kIDAuMiwgd2hpY2ggaXMgY29uc2lzdGVudCB3aXRoIHRoZSBwb3B1bGF0aW9uIHBhcmFtZXRlci4NCg0KYGBge3IgZGltLXByZXNlbnR9DQpnbG9iYWxfbW9uaXRvciAlPiUNCiAgc2FtcGxlX24oc2l6ZSA9IDUwLCByZXBsYWNlID0gVFJVRSkgJT4lDQogIGNvdW50KHNjaWVudGlzdF93b3JrKSAlPiUNCiAgbXV0YXRlKHBfaGF0ID0gbiAvc3VtKG4pKSAlPiUNCiAgZmlsdGVyKHNjaWVudGlzdF93b3JrID09ICJEb2Vzbid0IGJlbmVmaXQiKQ0KDQpgYGANCg0KDQojIyMgRXhlcmNpc2UgNQ0KDQpUaGVyZSBhcmUgMjUgb2JzZXJ2YXRpb25zIGluIHRoaXMgb2JqZWN0LiBFYWNoIG9ic2VydmF0aW9uIGlzIGEgc2FtcGxlIHByb3BvcnRpb24gdGhhdCBtYWtlcyB1cCB0aGUgc2FtcGxpbmcgZGlzdHJpYnV0aW9uLg0KDQpgYGB7ciBjb3VudC1jb21wYXJlfQ0Kc2FtcGxlX3Byb3BzX3NtYWxsIDwtIGdsb2JhbF9tb25pdG9yICU+JSByZXBfc2FtcGxlX24oc2l6ZSA9IDEwLCByZXBzID0gMjUsIHJlcGxhY2UgPSBUUlVFKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgY291bnQoc2NpZW50aXN0X3dvcmspICU+JQ0KICAgICAgICAgICAgICAgICAgICBtdXRhdGUocF9oYXQgPSBuIC9zdW0obikpICU+JQ0KICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoc2NpZW50aXN0X3dvcmsgPT0gIkRvZXNuJ3QgYmVuZWZpdCIpDQoNCmdncGxvdChkYXRhID0gc2FtcGxlX3Byb3BzNTAsIGFlcyh4ID0gcF9oYXQpKSArDQogIGdlb21faGlzdG9ncmFtKGJpbndpZHRoID0gMC4wMikNCg0KYGBgDQoNCg0KIyMjIEV4ZXJjaXNlIDYNCg0KRWFjaCBvYnNlcnZhdGlvbiBpcyB0aGUgcHJvcG9ydGlvbiB0aGF0IGNhbWUgb3V0IG9mIHRoZSBzaW11bGF0aW9uOg0KDQpuID0gMTA7IG1lYW4gPSAwLjIyOyBzZSA9IDAuMTENCg0KbiA9IDUwOyBtZWFuID0gMC4yOyBzZSA9IDAuMDYNCg0KbiA9IDEwMDsgbWVhbiA9IDAuMjsgc2UgPSAwLjA0DQoNClRoZSBtZWFuIG9mIHRoZXNlIGdldHMgY2xvc2VyIHRvIDAuMjsgdGhlIHRydWUgbWVhbiBhcyB3ZSBpbmNyZWFzZSB0aGUgbnVtYmVyIG9mIHNhbXBsZXMuIFRoZSBzZSBkZWNyZWFzZXMsIHdoaWNoIG1lYW5zIHRoYXQgYXMgeW91IGluY3JlYXNlIHRoZSBzYW1wbGUgc2l6ZSwgdGhlcmUgaXMgbGVzcyB2YXJpYWJpbGl0eS4gVGhlIGRpc3RyaWJ1dGlvbiBiZWdpbnMgdG8gYXBwZWFyIG5vcm1hbCB3aGVuIHlvdSBtYWtlIHRoZSBzYW1wbGUgbGFyZ2VyLCBzaW5jZSBhdCBuID0gMTAsIHRoZXJlIGlzIGEgcmlnaHQgc2tldy4NCg0KYGBge3IgcGxvdC1wcm9wLWJveXMtcHJlc2VudH0NCg0KYGBgDQoNCg0KIyMjIEV4ZXJjaXNlIDcgLSBNb3JlIFByYWN0aWNlDQoNCkJhc2VkIG9uIHRoaXMgc2FtcGxpbmcsIHRoZSBiZXN0IGVzdGltYXRlIGlzIHRoYXQgODAlIGJlbGlldmUgdGhhdCB0aGUgd29yayBvZiBzY2llbnRpc3RzIGlzIGJlbmVmaWNpYWwuDQoNCmBgYHtyIGZpbmQtbWF4LXRvdGFsfQ0Kc2V0LnNlZWQoNTU1NSkNCnNhbXAzIDwtIGdsb2JhbF9tb25pdG9yICU+JQ0KICBzYW1wbGVfbigxNSkNCg0Kc2FtcDMgJT4lDQogIGNvdW50KHNjaWVudGlzdF93b3JrKSAlPiUNCiAgbXV0YXRlKHAuaGF0ID0gbiAvc3VtKG4pKQ0KDQpgYGANCg0KDQojIyMgRXhlcmNpc2UgOCAtIE1vcmUgUHJhY3RpY2UNCg0KQmFzZWQgb24gdGhlIHNhbXBsaW5nIGhlcmUsIHRoZSBlc3RpbWF0ZSBpcyAwLjc5OC4gVGhlIHRydWUgcG9wdWxhdGlvbiBwcm9wb3J0aW9uIGlzIDAuOC4gU28sIHRoaXMgZXN0aW1hdGUgaXMgdmVyeSBjbG9zZS4NCg0KYGBge3J9DQpzYW1wbGVfcHJvcHMxNSA8LSBnbG9iYWxfbW9uaXRvciAlPiUgcmVwX3NhbXBsZV9uKHNpemUgPSAxNSwgcmVwcyA9IDIwMDAsIHJlcGxhY2UgPSBUUlVFKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgY291bnQoc2NpZW50aXN0X3dvcmspICU+JQ0KICAgICAgICAgICAgICAgICAgICBtdXRhdGUocF9oYXQgPSBuIC9zdW0obikpICU+JQ0KICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoc2NpZW50aXN0X3dvcmsgPT0gIkJlbmVmaXRzIikNCg0KZ2dwbG90KGRhdGEgPSBzYW1wbGVfcHJvcHMxNSwgYWVzKHggPSBwX2hhdCkpICsNCiAgZ2VvbV9oaXN0b2dyYW0oYmlud2lkdGggPSAwLjAyKSArDQogIGxhYnMoDQogICAgeCA9ICJwX2hhdCAoQmVuZWZpdHMpIiwNCiAgICB0aXRsZSA9ICJTYW1wbGluZyBkaXN0cmlidXRpb24gb2YgcF9oYXQiLA0KICAgIHN1YnRpdGxlID0gIlNhbXBsZSBzaXplID0gMTUsIE51bWJlciBvZiBzYW1wbGVzID0gMjAwMCIpDQoNCm1lYW4oc2FtcGxlX3Byb3BzMTUkcF9oYXQpDQoNCmdsb2JhbF9tb25pdG9yICU+JQ0KICBjb3VudChzY2llbnRpc3Rfd29yaykgJT4lDQogIG11dGF0ZShwID0gbiAvc3VtKG4pKQ0KDQpgYGANCg0KDQojIyMgRXhlcmNpc2UgOSAtIE1vcmUgUHJhY3RpY2UNCg0KV2hlbiBuID0gMTUwLCB0aGUgc2hhcGUgaXMgbW9yZSBub3JtYWwuDQoNCkJhc2VkIG9uIHRoaXMsIHRoZSBwcm9wb3J0aW9uIGlzIHZlcnkgbmVhcmx5IDAuOCwgc2luY2UgdGhlIG1lYW4gb2YgdGhlIHNhbXBsaW5nIGRpc3RyaWJ1dGlvbiBpcyAwLjc5OS4gV2hpY2ggaXMgMC4wMDEgb2ZmIGZyb20gdGhlIHRydWUgcHJvcG9ydGlvbiAoMC44KS4gQ2xvc2VyIHRoYW4gd2hhdCB3ZSBmb3VuZCBmcm9tIEV4ZXJjaXNlIDggYWJvdmUuDQoNCmBgYHtyfQ0Kc2FtcGxlX3Byb3BzMTUwIDwtIGdsb2JhbF9tb25pdG9yICU+JSByZXBfc2FtcGxlX24oc2l6ZSA9IDE1MCwgcmVwcyA9IDIwMDAsIHJlcGxhY2UgPSBUUlVFKSAlPiUNCiAgICAgICAgICAgICAgICAgICAgY291bnQoc2NpZW50aXN0X3dvcmspICU+JQ0KICAgICAgICAgICAgICAgICAgICBtdXRhdGUocF9oYXQgPSBuIC9zdW0obikpICU+JQ0KICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoc2NpZW50aXN0X3dvcmsgPT0gIkJlbmVmaXRzIikNCg0KZ2dwbG90KGRhdGEgPSBzYW1wbGVfcHJvcHMxNTAsIGFlcyh4ID0gcF9oYXQpKSArDQogIGdlb21faGlzdG9ncmFtKGJpbndpZHRoID0gMC4wMikgKw0KICBsYWJzKA0KICAgIHggPSAicF9oYXQgKEJlbmVmaXRzKSIsDQogICAgdGl0bGUgPSAiU2FtcGxpbmcgZGlzdHJpYnV0aW9uIG9mIHBfaGF0IiwNCiAgICBzdWJ0aXRsZSA9ICJTYW1wbGUgc2l6ZSA9IDE1MCwgTnVtYmVyIG9mIHNhbXBsZXMgPSAyMDAwIikNCg0KbWVhbihzYW1wbGVfcHJvcHMxNTAkcF9oYXQpDQoNCmBgYA0KDQoNCiMjIyBFeGVyY2lzZSAxMCAtIE1vcmUgUHJhY3RpY2UNCg0KVGhlIHNwcmVhZCBvZiB0aGUgbiA9IDE1MCBzYW1wbGluZyBkaXN0cmlidXRpb24gaXMgc21hbGxlciB0aGFuIHRoZSBzYW1wbGluZyBkaXN0cmlidXRpb24gd2hlcmUgbiA9IDE1LiBCYXNlZCBvbiB0aGlzLCBpdCB3b3VsZCBiZSBteSBwcmVmZXJlbmNlIHRvIHByZWRpY3QgdGhlIHByb3BvcnRpb24gZnJvbSB0aGlzIGRpc3RyaWJ1dGlvbiB3aXRoIGEgc21hbGxlciBzcHJlYWQgYmVjYXVzZSB0aGVyZSBpcyBsZXNzIHZhcmlhYmlsaXR5IGluIHRoZSBkYXRhLiBUaGlzIHdvdWxkIG1lYW4gdGhhdCB0aGUgdmFsdWUgZnJvbSBzYW1wbGluZyBpcyBjbG9zZXIgdG8gdGhlIHRydWUgcHJvcG9ydGlvbi4NCg0KYGBge3J9DQoNCmBgYA==