Load Packages
library(tidyverse)
library(codebookr)
library(summarytools)
library(broom)
library(performance)
library(gt)
library(gtsummary)
library(janitor)
library(forcats)
library(here)
library(margins)
library(ggplot2)
library(mediation)
Import Data
load("~/Desktop/R-Code/SDOH_Vax/flu_2019_later.rda")
View(flu_2019_later)
Include only patients from Michigan
flu_2019_MI <- flu_2019_later[ which(flu_2019_later$PATIENT_STATE_CD=='MI'), ]
Exclude workmans compensation and NULL as insurance
flu_2019_MI_only1 <- flu_2019_MI[ which(flu_2019_MI$insur_type !='Workers Compensation'), ]
flu_2019_MI_only <- flu_2019_MI_only1[ which(flu_2019_MI_only1$insur_type !='NULL'), ]
codebook
flu_2019_MI_only$IC <- as.numeric(flu_2019_MI_only$IC)
flu_2019_MI_only$insur_type <- as.character(flu_2019_MI_only$insur_type)
flu_2019_MI_only %>%
dplyr::select(ibd_3, age_yrs, gender, race_5, ethnic_3, lang_3, relig_affil, mstat_5, max_ch, PATIENT_STATE_CD, r_pct, IC, insur_type, pop_dens, RPL_THEMES, RPL_4, RPL_THEME1, RPL_THEME2, RPL_THEME3, RPL_THEME4, act_tob, flu_2019, , prevnar, pvax, any_pneum, any_pneum, total_cov_vax, total_shingrix) -> flu_clean1
print(dfSummary(flu_clean1), method = 'render')
Patient Characteristics
Baseline Characteristics
flu_clean2 <- flu_clean1[ which(flu_clean1$mstat_5 !='Unknown'), ]
flu_clean2 %>%
dplyr::select(ibd_3, age_yrs, gender, race_5, ethnic_3, lang_3, relig_affil, mstat_5, act_tob, max_ch, insur_type, IC, pop_dens,r_pct, RPL_THEMES, RPL_4, RPL_THEME1, RPL_THEME2, RPL_THEME3, RPL_THEME4, flu_2019) -> baseline
baseline %>% tbl_summary(label = list(ibd_3 ~ "IBD Diagnosis", age_yrs ~ "Age", gender~ "Gender", race_5 ~ "Race", ethnic_3 ~ "Ethnicity", lang_3 ~ "Primary Language", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", RPL_THEMES ~ "Total SVI", RPL_THEME1 ~ "Soceioeconomic Status", RPL_THEME2 ~ "Household Composition", RPL_THEME3 ~ "Minority Status and Language", RPL_THEME4 ~ "Housing and Transportation", pop_dens ~ "Population Density", RPL_4 ~ "SVI Quartiles", r_pct ~ "Percent Republican", max_ch ~ "Charlson Comorbidity Index", act_tob ~ "Active Tobacco Use", IC = "Immunocompromised", flu_2019 ~ "Flu Vaccination", insur_type ~ "Insurance Type"),
statistic = list(all_continuous() ~ "{mean} ({sd})"),
missing_text = "(Missing)")
| Characteristic |
N = 8,231 |
| IBD Diagnosis |
|
| Â Â Â Â CD |
4,002 (49%) |
| Â Â Â Â UC |
4,185 (51%) |
| Â Â Â Â Unspecified |
44 (0.5%) |
| Age |
50 (19) |
| Gender |
|
| Â Â Â Â Male |
3,690 (45%) |
| Â Â Â Â Female |
4,541 (55%) |
| Race |
|
| Â Â Â Â White |
7,179 (87%) |
| Â Â Â Â Black |
526 (6.4%) |
| Â Â Â Â Asian |
199 (2.4%) |
| Â Â Â Â Native |
29 (0.4%) |
| Â Â Â Â Other |
298 (3.6%) |
| Ethnicity |
|
| Â Â Â Â NonHispanic |
7,816 (98%) |
| Â Â Â Â UNKNOWN |
0 (0%) |
| Â Â Â Â Hispanic |
162 (2.0%) |
| Â Â Â Â CHOOSE NOT TO DISCLOSE |
0 (0%) |
| Â Â Â Â (Missing) |
253 |
| Primary Language |
|
| Â Â Â Â English |
8,150 (99%) |
| Â Â Â Â Other |
81 (1.0%) |
| Any Religious Affiliation |
|
| Â Â Â Â Yes |
4,699 (60%) |
| Â Â Â Â No |
3,189 (40%) |
| Â Â Â Â UNKNOWN |
0 (0%) |
| Â Â Â Â PATIENT REFUSED |
0 (0%) |
| Â Â Â Â (Missing) |
343 |
| Marital Status |
|
| Â Â Â Â Married |
4,333 (53%) |
| Â Â Â Â Unknown |
0 (0%) |
| Â Â Â Â Unmarried |
3,370 (41%) |
| Â Â Â Â DivorcedSeparated |
335 (4.1%) |
| Â Â Â Â Widow |
193 (2.3%) |
| Active Tobacco Use |
|
| Â Â Â Â No |
7,208 (88%) |
| Â Â Â Â Yes |
951 (12%) |
| Â Â Â Â NOT ASKED |
0 (0%) |
| Â Â Â Â (Missing) |
72 |
| Charlson Comorbidity Index |
3.7 (5.1) |
| Insurance Type |
|
| Â Â Â Â Medicaid |
1,204 (15%) |
| Â Â Â Â Medicare |
1,684 (20%) |
| Â Â Â Â Other |
15 (0.2%) |
| Â Â Â Â Other Governmental Insurance |
58 (0.7%) |
| Â Â Â Â Private Insurance |
5,270 (64%) |
| Immunocompromised |
4,348 (62%) |
| Â Â Â Â (Missing) |
1,176 |
| Population Density |
2,113 (2,207) |
| Â Â Â Â (Missing) |
160 |
| Percent Republican |
44 (18) |
| Â Â Â Â (Missing) |
1,141 |
| Total SVI |
0.35 (0.25) |
| Â Â Â Â (Missing) |
21 |
| SVI Quartiles |
|
| Â Â Â Â First |
3,478 (42%) |
| Â Â Â Â Second |
2,450 (30%) |
| Â Â Â Â Third |
1,559 (19%) |
| Â Â Â Â Fourth |
723 (8.8%) |
| Â Â Â Â (Missing) |
21 |
| Soceioeconomic Status |
0.33 (0.25) |
| Â Â Â Â (Missing) |
61 |
| Household Composition |
0.38 (0.26) |
| Â Â Â Â (Missing) |
21 |
| Minority Status and Language |
0.48 (0.29) |
| Â Â Â Â (Missing) |
20 |
| Housing and Transportation |
0.42 (0.28) |
| Â Â Â Â (Missing) |
36 |
| Flu Vaccination |
3,470 (42%) |
Baseline characteristics by SVI Quartile
flu_clean2 %>% tbl_summary(by = RPL_4,
label = list(ibd_3 ~ "IBD Diagnosis", age_yrs ~ "Age", gender~ "Gender", race_5 ~ "Race", ethnic_3 ~ "Ethnicity", lang_3 ~ "Primary Language", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", RPL_THEMES ~ "Total SVI", RPL_THEME1 ~ "Soceioeconomic Status", RPL_THEME2 ~ "Household Composition", RPL_THEME3 ~ "Minority Status and Language", RPL_THEME4 ~ "Housing and Transportation", pop_dens ~ "Population Density", RPL_4 ~ "SVI Quartiles", r_pct ~ "Percent Republican", max_ch ~ "Charlson Comorbidity Index", act_tob ~ "Active Tobacco Use", IC ~ "Immunocompromised", insur_type ~ "Insurance Type"),
statistic = list(all_continuous() ~ "{mean} ({sd})"),
missing_text = "(Missing)") %>% add_p()
21 observations missing `RPL_4` have been removed. To include these observations, use `forcats::fct_explicit_na()` on `RPL_4` column before passing to `tbl_summary()`.
There was an error in 'add_p()/add_difference()' for variable 'ibd_3', p-value omitted:
Error in stats::fisher.test(structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, : FEXACT[f3xact()] error: hash key 2e+10 > INT_MAX, kyy=3479, it[i (= nco = 4)]= 0.
Rather set 'simulate.p.value=TRUE'
There was an error in 'add_p()/add_difference()' for variable 'race_5', p-value omitted:
Error in stats::fisher.test(structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, : FEXACT error 5.
The hash table key cannot be computed because the largest key
is larger than the largest representable int.
The algorithm cannot proceed.
Reduce the workspace, consider using 'simulate.p.value=TRUE' or another algorithm.
There was an error in 'add_p()/add_difference()' for variable 'relig_affil', p-value omitted:
Error in stats::fisher.test(structure(c(2L, 1L, 1L, 2L, NA, 1L, 1L, 2L, : FEXACT error 6. LDKEY=573 is too small for this problem,
(ii := key2[itp=497] = 12405944, ldstp=17190)
Try increasing the size of the workspace and possibly 'mult'
There was an error in 'add_p()/add_difference()' for variable 'mstat_5', p-value omitted:
Error in stats::fisher.test(structure(c(1L, 1L, 3L, 3L, 3L, 3L, 1L, 1L, : FEXACT error 5.
The hash table key cannot be computed because the largest key
is larger than the largest representable int.
The algorithm cannot proceed.
Reduce the workspace, consider using 'simulate.p.value=TRUE' or another algorithm.
There was an error in 'add_p()/add_difference()' for variable 'PATIENT_STATE_CD', p-value omitted:
Error in stats::chisq.test(x = c("MI", "MI", "MI", "MI", "MI", "MI", "MI", : 'x' and 'y' must have at least 2 levels
There was an error in 'add_p()/add_difference()' for variable 'insur_type', p-value omitted:
Error in stats::fisher.test(c("Medicaid", "Private Insurance", "Medicaid", : FEXACT error 5.
The hash table key cannot be computed because the largest key
is larger than the largest representable int.
The algorithm cannot proceed.
Reduce the workspace, consider using 'simulate.p.value=TRUE' or another algorithm.
There was an error in 'add_p()/add_difference()' for variable 'act_tob', p-value omitted:
Error in stats::fisher.test(structure(c(2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, : FEXACT error 7(location). LDSTP=17130 is too small for this problem,
(pastp=719.296, ipn_0:=ipoin[itp=247]=18, stp[ipn_0]=691.047).
Increase workspace or consider using 'simulate.p.value=TRUE'
There was an error in 'add_p()/add_difference()' for variable 'prevnar', p-value omitted:
Error in stats::fisher.test(c(1, 2, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, : FEXACT error 5.
The hash table key cannot be computed because the largest key
is larger than the largest representable int.
The algorithm cannot proceed.
Reduce the workspace, consider using 'simulate.p.value=TRUE' or another algorithm.
There was an error in 'add_p()/add_difference()' for variable 'pvax', p-value omitted:
Error in stats::fisher.test(c(0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, : FEXACT error 5.
The hash table key cannot be computed because the largest key
is larger than the largest representable int.
The algorithm cannot proceed.
Reduce the workspace, consider using 'simulate.p.value=TRUE' or another algorithm.
There was an error in 'add_p()/add_difference()' for variable 'any_pneum', p-value omitted:
Error in stats::fisher.test(c(1, 4, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, : FEXACT error 5.
The hash table key cannot be computed because the largest key
is larger than the largest representable int.
The algorithm cannot proceed.
Reduce the workspace, consider using 'simulate.p.value=TRUE' or another algorithm.
There was an error in 'add_p()/add_difference()' for variable 'total_cov_vax', p-value omitted:
Error in stats::fisher.test(c(1, 3, 1, 3, 2, 0, 4, 3, 2, 3, 0, 4, 2, 0, : FEXACT error 5.
The hash table key cannot be computed because the largest key
is larger than the largest representable int.
The algorithm cannot proceed.
Reduce the workspace, consider using 'simulate.p.value=TRUE' or another algorithm.
There was an error in 'add_p()/add_difference()' for variable 'total_shingrix', p-value omitted:
Error in stats::fisher.test(c(0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, : FEXACT error 5.
The hash table key cannot be computed because the largest key
is larger than the largest representable int.
The algorithm cannot proceed.
Reduce the workspace, consider using 'simulate.p.value=TRUE' or another algorithm.
| Characteristic |
First, N = 3,478 |
Second, N = 2,450 |
Third, N = 1,559 |
Fourth, N = 723 |
p-value |
| IBD Diagnosis |
|
|
|
|
|
| Â Â Â Â CD |
1,588 (46%) |
1,167 (48%) |
811 (52%) |
423 (59%) |
|
| Â Â Â Â UC |
1,871 (54%) |
1,270 (52%) |
739 (47%) |
297 (41%) |
|
| Â Â Â Â Unspecified |
19 (0.5%) |
13 (0.5%) |
9 (0.6%) |
3 (0.4%) |
|
| Age |
50 (19) |
50 (19) |
50 (19) |
47 (19) |
0.002 |
| Gender |
|
|
|
|
0.059 |
| Â Â Â Â Male |
1,606 (46%) |
1,101 (45%) |
667 (43%) |
304 (42%) |
|
| Â Â Â Â Female |
1,872 (54%) |
1,349 (55%) |
892 (57%) |
419 (58%) |
|
| Race |
|
|
|
|
|
| Â Â Â Â White |
3,161 (91%) |
2,158 (88%) |
1,334 (86%) |
507 (70%) |
|
| Â Â Â Â Black |
92 (2.6%) |
127 (5.2%) |
137 (8.8%) |
169 (23%) |
|
| Â Â Â Â Asian |
89 (2.6%) |
68 (2.8%) |
37 (2.4%) |
5 (0.7%) |
|
| Â Â Â Â Native |
8 (0.2%) |
14 (0.6%) |
4 (0.3%) |
3 (0.4%) |
|
| Â Â Â Â Other |
128 (3.7%) |
83 (3.4%) |
47 (3.0%) |
39 (5.4%) |
|
| Ethnicity |
|
|
|
|
0.020 |
| Â Â Â Â NonHispanic |
3,302 (98%) |
2,335 (98%) |
1,482 (98%) |
676 (96%) |
|
| Â Â Â Â UNKNOWN |
0 (0%) |
0 (0%) |
0 (0%) |
0 (0%) |
|
| Â Â Â Â Hispanic |
59 (1.8%) |
48 (2.0%) |
29 (1.9%) |
26 (3.7%) |
|
| Â Â Â Â CHOOSE NOT TO DISCLOSE |
0 (0%) |
0 (0%) |
0 (0%) |
0 (0%) |
|
| Â Â Â Â (Missing) |
117 |
67 |
48 |
21 |
|
| Primary Language |
|
|
|
|
<0.001 |
| Â Â Â Â English |
3,454 (99%) |
2,431 (99%) |
1,538 (99%) |
706 (98%) |
|
| Â Â Â Â Other |
24 (0.7%) |
19 (0.8%) |
21 (1.3%) |
17 (2.4%) |
|
| Any Religious Affiliation |
|
|
|
|
|
| Â Â Â Â Yes |
2,011 (60%) |
1,391 (59%) |
896 (60%) |
387 (56%) |
|
| Â Â Â Â No |
1,333 (40%) |
955 (41%) |
595 (40%) |
299 (44%) |
|
| Â Â Â Â UNKNOWN |
0 (0%) |
0 (0%) |
0 (0%) |
0 (0%) |
|
| Â Â Â Â PATIENT REFUSED |
0 (0%) |
0 (0%) |
0 (0%) |
0 (0%) |
|
| Â Â Â Â (Missing) |
134 |
104 |
68 |
37 |
|
| Marital Status |
|
|
|
|
|
| Â Â Â Â Married |
2,014 (58%) |
1,281 (52%) |
750 (48%) |
279 (39%) |
|
| Â Â Â Â Unknown |
0 (0%) |
0 (0%) |
0 (0%) |
0 (0%) |
|
| Â Â Â Â Unmarried |
1,291 (37%) |
994 (41%) |
681 (44%) |
392 (54%) |
|
| Â Â Â Â DivorcedSeparated |
91 (2.6%) |
116 (4.7%) |
88 (5.6%) |
40 (5.5%) |
|
| Â Â Â Â Widow |
82 (2.4%) |
59 (2.4%) |
40 (2.6%) |
12 (1.7%) |
|
| Charlson Comorbidity Index |
3.5 (5.0) |
3.8 (5.2) |
3.8 (5.1) |
4.0 (5.3) |
0.002 |
| PATIENT_STATE_CD |
|
|
|
|
|
| Â Â Â Â MI |
3,478 (100%) |
2,450 (100%) |
1,559 (100%) |
723 (100%) |
|
| Percent Republican |
45 (16) |
45 (18) |
45 (18) |
35 (21) |
<0.001 |
| Â Â Â Â (Missing) |
348 |
437 |
256 |
99 |
|
| Immunocompromised |
1,806 (60%) |
1,289 (61%) |
821 (62%) |
417 (67%) |
0.033 |
| Â Â Â Â (Missing) |
488 |
349 |
240 |
97 |
|
| Insurance Type |
|
|
|
|
|
| Â Â Â Â Medicaid |
287 (8.3%) |
344 (14%) |
335 (21%) |
234 (32%) |
|
| Â Â Â Â Medicare |
622 (18%) |
494 (20%) |
387 (25%) |
179 (25%) |
|
| Â Â Â Â Other |
9 (0.3%) |
4 (0.2%) |
1 (<0.1%) |
1 (0.1%) |
|
| Â Â Â Â Other Governmental Insurance |
15 (0.4%) |
14 (0.6%) |
18 (1.2%) |
11 (1.5%) |
|
| Â Â Â Â Private Insurance |
2,545 (73%) |
1,594 (65%) |
818 (52%) |
298 (41%) |
|
| Population Density |
1,861 (1,865) |
2,038 (2,229) |
2,350 (2,458) |
3,123 (2,737) |
<0.001 |
| Â Â Â Â (Missing) |
19 |
38 |
50 |
33 |
|
| Total SVI |
0.11 (0.07) |
0.37 (0.07) |
0.61 (0.07) |
0.86 (0.07) |
<0.001 |
| Soceioeconomic Status |
0.13 (0.10) |
0.33 (0.16) |
0.56 (0.15) |
0.78 (0.11) |
<0.001 |
| Â Â Â Â (Missing) |
40 |
0 |
0 |
0 |
|
| Household Composition |
0.21 (0.14) |
0.37 (0.21) |
0.58 (0.24) |
0.75 (0.20) |
<0.001 |
| Minority Status and Language |
0.41 (0.27) |
0.49 (0.29) |
0.52 (0.29) |
0.66 (0.25) |
<0.001 |
| Housing and Transportation |
0.19 (0.16) |
0.49 (0.20) |
0.64 (0.21) |
0.81 (0.17) |
<0.001 |
| Â Â Â Â (Missing) |
15 |
0 |
0 |
0 |
|
| Active Tobacco Use |
|
|
|
|
|
| Â Â Â Â No |
3,184 (92%) |
2,128 (88%) |
1,311 (85%) |
568 (80%) |
|
| Â Â Â Â Yes |
280 (8.1%) |
296 (12%) |
232 (15%) |
139 (20%) |
|
| Â Â Â Â NOT ASKED |
0 (0%) |
0 (0%) |
0 (0%) |
0 (0%) |
|
| Â Â Â Â (Missing) |
14 |
26 |
16 |
16 |
|
| flu_2019 |
1,651 (47%) |
1,024 (42%) |
559 (36%) |
228 (32%) |
<0.001 |
| prevnar |
|
|
|
|
|
| Â Â Â Â 0 |
1,944 (56%) |
1,502 (61%) |
972 (62%) |
464 (64%) |
|
| Â Â Â Â 1 |
1,452 (42%) |
879 (36%) |
546 (35%) |
248 (34%) |
|
| Â Â Â Â 2 |
68 (2.0%) |
55 (2.2%) |
28 (1.8%) |
8 (1.1%) |
|
| Â Â Â Â 3 |
6 (0.2%) |
7 (0.3%) |
7 (0.4%) |
3 (0.4%) |
|
| Â Â Â Â 4 |
6 (0.2%) |
5 (0.2%) |
4 (0.3%) |
0 (0%) |
|
| Â Â Â Â 5 |
1 (<0.1%) |
2 (<0.1%) |
1 (<0.1%) |
0 (0%) |
|
| Â Â Â Â 6 |
0 (0%) |
0 (0%) |
1 (<0.1%) |
0 (0%) |
|
| Â Â Â Â 7 |
1 (<0.1%) |
0 (0%) |
0 (0%) |
0 (0%) |
|
| pvax |
|
|
|
|
|
| Â Â Â Â 0 |
2,169 (62%) |
1,610 (66%) |
1,033 (66%) |
485 (67%) |
|
| Â Â Â Â 1 |
1,223 (35%) |
754 (31%) |
488 (31%) |
217 (30%) |
|
| Â Â Â Â 2 |
80 (2.3%) |
83 (3.4%) |
37 (2.4%) |
19 (2.6%) |
|
| Â Â Â Â 3 |
5 (0.1%) |
2 (<0.1%) |
1 (<0.1%) |
2 (0.3%) |
|
| Â Â Â Â 5 |
0 (0%) |
1 (<0.1%) |
0 (0%) |
0 (0%) |
|
| Â Â Â Â 6 |
1 (<0.1%) |
0 (0%) |
0 (0%) |
0 (0%) |
|
| any_pneum |
|
|
|
|
|
| Â Â Â Â 0 |
1,617 (46%) |
1,260 (51%) |
810 (52%) |
395 (55%) |
|
| Â Â Â Â 1 |
838 (24%) |
553 (23%) |
362 (23%) |
155 (21%) |
|
| Â Â Â Â 2 |
898 (26%) |
530 (22%) |
330 (21%) |
145 (20%) |
|
| Â Â Â Â 3 |
102 (2.9%) |
81 (3.3%) |
41 (2.6%) |
23 (3.2%) |
|
| Â Â Â Â 4 |
15 (0.4%) |
17 (0.7%) |
12 (0.8%) |
5 (0.7%) |
|
| Â Â Â Â 5 |
4 (0.1%) |
7 (0.3%) |
2 (0.1%) |
0 (0%) |
|
| Â Â Â Â 6 |
2 (<0.1%) |
2 (<0.1%) |
2 (0.1%) |
0 (0%) |
|
| Â Â Â Â 7 |
2 (<0.1%) |
0 (0%) |
0 (0%) |
0 (0%) |
|
| total_cov_vax |
|
|
|
|
|
| Â Â Â Â 0 |
941 (27%) |
823 (34%) |
632 (41%) |
346 (48%) |
|
| Â Â Â Â 1 |
127 (3.7%) |
77 (3.1%) |
61 (3.9%) |
26 (3.6%) |
|
| Â Â Â Â 2 |
623 (18%) |
448 (18%) |
285 (18%) |
153 (21%) |
|
| Â Â Â Â 3 |
1,093 (31%) |
673 (27%) |
404 (26%) |
141 (20%) |
|
| Â Â Â Â 4 |
604 (17%) |
384 (16%) |
158 (10%) |
50 (6.9%) |
|
| Â Â Â Â 5 |
73 (2.1%) |
34 (1.4%) |
12 (0.8%) |
6 (0.8%) |
|
| Â Â Â Â 6 |
13 (0.4%) |
9 (0.4%) |
5 (0.3%) |
1 (0.1%) |
|
| Â Â Â Â 7 |
4 (0.1%) |
2 (<0.1%) |
2 (0.1%) |
0 (0%) |
|
| total_shingrix |
|
|
|
|
|
| Â Â Â Â 0 |
2,820 (81%) |
2,091 (85%) |
1,370 (88%) |
670 (93%) |
|
| Â Â Â Â 1 |
138 (4.0%) |
66 (2.7%) |
58 (3.7%) |
15 (2.1%) |
|
| Â Â Â Â 2 |
478 (14%) |
270 (11%) |
121 (7.8%) |
32 (4.4%) |
|
| Â Â Â Â 3 |
39 (1.1%) |
20 (0.8%) |
8 (0.5%) |
4 (0.6%) |
|
| Â Â Â Â 4 |
3 (<0.1%) |
3 (0.1%) |
1 (<0.1%) |
1 (0.1%) |
|
| Â Â Â Â 5 |
0 (0%) |
0 (0%) |
1 (<0.1%) |
1 (0.1%) |
|
Bivariate Analysis
tbl_uv_ex1 <-
tbl_uvregression(
flu_clean2[c("flu_2019", "ibd_3", "age_yrs", "gender", "race_5", "ethnic_3", "lang_3", "mstat_5", "relig_affil", "act_tob", "max_ch", "IC", "insur_type", "pop_dens", "r_pct", "RPL_THEMES", "RPL_THEME1", "RPL_THEME2", "RPL_THEME3", "RPL_THEME4")],
method = glm,
method.args = list(family = binomial),
y = flu_2019,
label = list(ibd_3 ~ "IBD Diagnosis", age_yrs ~ "Age", gender~ "Gender", race_5 ~ "Race", ethnic_3 ~ "Ethnicity", lang_3 ~ "Primary Language", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", RPL_THEMES ~ "Total SVI", RPL_THEME1 ~ "Soceioeconomic Status", RPL_THEME2 ~ "Household Composition", RPL_THEME3 ~ "Minority Status and Language", RPL_THEME4 ~ "Housing and Transportation", pop_dens ~ "Population Density", r_pct ~ "Percent Republican", max_ch ~ "Charlson Comorbidity Index", act_tob ~ "Active Tobacco Use", IC ~ "Immunocompromised", insur_type ~ "Insurance Type"),
exponentiate = TRUE)
print(tbl_uv_ex1, method = render)
`...` must be empty.
✖ Problematic argument:
• method = render
| Characteristic |
N |
OR |
95% CI |
p-value |
| IBD Diagnosis |
8,231 |
|
|
|
| Â Â Â Â CD |
|
— |
— |
|
| Â Â Â Â UC |
|
0.96 |
0.88, 1.05 |
0.4 |
| Â Â Â Â Unspecified |
|
0.39 |
0.18, 0.77 |
0.010 |
| Age |
8,231 |
0.99 |
0.99, 0.99 |
<0.001 |
| Gender |
8,231 |
|
|
|
| Â Â Â Â Male |
|
— |
— |
|
| Â Â Â Â Female |
|
1.07 |
0.98, 1.17 |
0.13 |
| Race |
8,231 |
|
|
|
| Â Â Â Â White |
|
— |
— |
|
| Â Â Â Â Black |
|
0.70 |
0.58, 0.84 |
<0.001 |
| Â Â Â Â Asian |
|
1.94 |
1.46, 2.59 |
<0.001 |
| Â Â Â Â Native |
|
0.96 |
0.45, 2.00 |
>0.9 |
| Â Â Â Â Other |
|
0.96 |
0.75, 1.21 |
0.7 |
| Ethnicity |
7,978 |
|
|
|
| Â Â Â Â NonHispanic |
|
— |
— |
|
| Â Â Â Â Hispanic |
|
1.27 |
0.93, 1.74 |
0.13 |
| Primary Language |
8,231 |
|
|
|
| Â Â Â Â English |
|
— |
— |
|
| Â Â Â Â Other |
|
0.76 |
0.48, 1.20 |
0.2 |
| Marital Status |
8,231 |
|
|
|
| Â Â Â Â Married |
|
— |
— |
|
| Â Â Â Â Unmarried |
|
0.95 |
0.87, 1.04 |
0.3 |
| Â Â Â Â DivorcedSeparated |
|
0.88 |
0.70, 1.10 |
0.3 |
| Â Â Â Â Widow |
|
0.58 |
0.42, 0.79 |
<0.001 |
| Any Religious Affiliation |
7,888 |
|
|
|
| Â Â Â Â Yes |
|
— |
— |
|
| Â Â Â Â No |
|
0.98 |
0.89, 1.07 |
0.6 |
| Active Tobacco Use |
8,159 |
|
|
|
| Â Â Â Â No |
|
— |
— |
|
| Â Â Â Â Yes |
|
0.67 |
0.58, 0.77 |
<0.001 |
| Charlson Comorbidity Index |
8,231 |
1.00 |
0.99, 1.00 |
0.3 |
| Immunocompromised |
7,055 |
1.58 |
1.43, 1.74 |
<0.001 |
| Insurance Type |
8,231 |
|
|
|
| Â Â Â Â Medicaid |
|
— |
— |
|
| Â Â Â Â Medicare |
|
0.84 |
0.72, 0.99 |
0.035 |
| Â Â Â Â Other |
|
1.01 |
0.31, 2.86 |
>0.9 |
| Â Â Â Â Other Governmental Insurance |
|
0.47 |
0.23, 0.89 |
0.028 |
| Â Â Â Â Private Insurance |
|
1.90 |
1.67, 2.17 |
<0.001 |
| Population Density |
8,071 |
1.00 |
1.00, 1.00 |
<0.001 |
| Percent Republican |
7,090 |
0.99 |
0.99, 0.99 |
<0.001 |
| Total SVI |
8,210 |
0.40 |
0.33, 0.47 |
<0.001 |
| Soceioeconomic Status |
8,170 |
0.37 |
0.31, 0.45 |
<0.001 |
| Household Composition |
8,210 |
0.36 |
0.30, 0.42 |
<0.001 |
| Minority Status and Language |
8,211 |
1.29 |
1.10, 1.50 |
0.001 |
| Housing and Transportation |
8,195 |
0.63 |
0.54, 0.73 |
<0.001 |
NULL
Flu 2019 with SVI as Continuous Variable
flu_clean2 <- flu_clean1[ which(flu_clean1$mstat_5 !='Unknown'), ]
Flu2019_SVI <- glm(flu_2019 ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + mstat_5 + relig_affil
+ lang_3 + act_tob + max_ch + IC + insur_type
+ pop_dens + r_pct + RPL_THEMES,
family = "binomial",
data = flu_clean2)
summary(Flu2019_SVI )
Call:
glm(formula = flu_2019 ~ ibd_3 + age_yrs + gender + race_5 +
ethnic_3 + mstat_5 + relig_affil + lang_3 + act_tob + max_ch +
IC + insur_type + pop_dens + r_pct + RPL_THEMES, family = "binomial",
data = flu_clean2)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.8369 -1.0743 -0.7264 1.1336 2.0387
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 5.886e-01 2.085e-01 2.823 0.004762 **
ibd_3UC 2.133e-02 5.945e-02 0.359 0.719767
ibd_3Unspecified -3.826e-02 5.064e-01 -0.076 0.939772
age_yrs -8.499e-03 2.246e-03 -3.784 0.000154 ***
genderFemale 1.769e-01 5.651e-02 3.131 0.001741 **
race_5Black -5.568e-01 1.249e-01 -4.456 8.33e-06 ***
race_5Asian 5.063e-01 1.935e-01 2.616 0.008901 **
race_5Native -4.015e-03 4.929e-01 -0.008 0.993501
race_5Other -1.695e-01 1.718e-01 -0.986 0.324024
ethnic_3Hispanic 3.610e-01 2.109e-01 1.712 0.086972 .
mstat_5Unmarried -1.864e-01 7.226e-02 -2.580 0.009884 **
mstat_5DivorcedSeparated 1.012e-01 1.488e-01 0.680 0.496526
mstat_5Widow -3.476e-01 2.046e-01 -1.699 0.089411 .
relig_affilNo -1.596e-01 5.794e-02 -2.755 0.005871 **
lang_3Other -5.676e-02 3.265e-01 -0.174 0.862007
act_tobYes -1.554e-01 9.272e-02 -1.676 0.093724 .
max_ch 2.863e-02 6.153e-03 4.653 3.27e-06 ***
IC 5.185e-01 6.403e-02 8.097 5.62e-16 ***
insur_typeMedicare -1.171e-01 1.157e-01 -1.013 0.311297
insur_typeOther -2.800e-01 6.255e-01 -0.448 0.654343
insur_typeOther Governmental Insurance -6.791e-01 3.944e-01 -1.722 0.085087 .
insur_typePrivate Insurance 4.745e-01 8.740e-02 5.429 5.68e-08 ***
pop_dens -1.114e-05 1.507e-05 -0.739 0.459928
r_pct -1.580e-02 2.031e-03 -7.777 7.44e-15 ***
RPL_THEMES -7.649e-01 1.184e-01 -6.461 1.04e-10 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 7779.0 on 5637 degrees of freedom
Residual deviance: 7345.9 on 5613 degrees of freedom
(2593 observations deleted due to missingness)
AIC: 7395.9
Number of Fisher Scoring iterations: 4
broom::glance(Flu2019_SVI )
broom::tidy(Flu2019_SVI , exponentiate = TRUE)
tbl_regression(Flu2019_SVI, label = list(ibd_3 ~ "IBD Type", pop_dens ~ "Population density", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", r_pct ~ "Percent Rebuplican", race_5 ~ "Race", max_ch ~ "Charlson Comorbidity Index", act_tob ~ "Active Tobacco Use", IC ~ "Immunocompromised", insur_type ~ "Insurance Type"), exponentiate = TRUE)
| Characteristic |
OR |
95% CI |
p-value |
| IBD Type |
|
|
|
| Â Â Â Â CD |
— |
— |
|
| Â Â Â Â UC |
1.02 |
0.91, 1.15 |
0.7 |
| Â Â Â Â Unspecified |
0.96 |
0.34, 2.56 |
>0.9 |
| age_yrs |
0.99 |
0.99, 1.00 |
<0.001 |
| Gender |
|
|
|
| Â Â Â Â Male |
— |
— |
|
| Â Â Â Â Female |
1.19 |
1.07, 1.33 |
0.002 |
| Race |
|
|
|
| Â Â Â Â White |
— |
— |
|
| Â Â Â Â Black |
0.57 |
0.45, 0.73 |
<0.001 |
| Â Â Â Â Asian |
1.66 |
1.14, 2.44 |
0.009 |
| Â Â Â Â Native |
1.00 |
0.37, 2.65 |
>0.9 |
| Â Â Â Â Other |
0.84 |
0.60, 1.18 |
0.3 |
| Ethnicity |
|
|
|
| Â Â Â Â NonHispanic |
— |
— |
|
| Â Â Â Â Hispanic |
1.43 |
0.95, 2.17 |
0.087 |
| mstat_5 |
|
|
|
| Â Â Â Â Married |
— |
— |
|
| Â Â Â Â Unmarried |
0.83 |
0.72, 0.96 |
0.010 |
| Â Â Â Â DivorcedSeparated |
1.11 |
0.83, 1.48 |
0.5 |
| Â Â Â Â Widow |
0.71 |
0.47, 1.05 |
0.089 |
| relig_affil |
|
|
|
| Â Â Â Â Yes |
— |
— |
|
| Â Â Â Â No |
0.85 |
0.76, 0.95 |
0.006 |
| Preferred Language |
|
|
|
| Â Â Â Â English |
— |
— |
|
| Â Â Â Â Other |
0.94 |
0.49, 1.78 |
0.9 |
| Active Tobacco Use |
|
|
|
| Â Â Â Â No |
— |
— |
|
| Â Â Â Â Yes |
0.86 |
0.71, 1.03 |
0.094 |
| Charlson Comorbidity Index |
1.03 |
1.02, 1.04 |
<0.001 |
| Immunocompromised |
1.68 |
1.48, 1.90 |
<0.001 |
| Insurance Type |
|
|
|
| Â Â Â Â Medicaid |
— |
— |
|
| Â Â Â Â Medicare |
0.89 |
0.71, 1.12 |
0.3 |
| Â Â Â Â Other |
0.76 |
0.20, 2.46 |
0.7 |
| Â Â Â Â Other Governmental Insurance |
0.51 |
0.22, 1.06 |
0.085 |
| Â Â Â Â Private Insurance |
1.61 |
1.35, 1.91 |
<0.001 |
| Population density |
1.00 |
1.00, 1.00 |
0.5 |
| Percent Rebuplican |
0.98 |
0.98, 0.99 |
<0.001 |
| RPL_THEMES |
0.47 |
0.37, 0.59 |
<0.001 |
# Model performance
model_performance(Flu2019_SVI)
# Indices of model performance
AIC | BIC | Tjur's R2 | RMSE | Sigma | Log_loss | Score_log | Score_spherical | PCP
------------------------------------------------------------------------------------------------
7395.933 | 7561.865 | 0.075 | 0.479 | 1.144 | 0.651 | -Inf | 1.774e-04 | 0.540
performance::check_model(Flu2019_SVI, panel = TRUE)

# Margins
cplot(Flu2019_SVI, "RPL_THEMES", what = "prediction", main = "Predicted Likelihood of Flu Vaccine Given SVI")

Flu 2019 with log(SVI)
Flu2019_SVI_log <- glm(flu_2019 ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 +
mstat_5 + relig_affil + lang_3 + act_tob + max_ch + IC + insur_type
+ pop_dens + r_pct + log(RPL_THEMES),
family = "binomial",
data = flu_clean2)
summary(Flu2019_SVI_log )
Call:
glm(formula = flu_2019 ~ ibd_3 + age_yrs + gender + race_5 +
ethnic_3 + mstat_5 + relig_affil + lang_3 + act_tob + max_ch +
IC + insur_type + pop_dens + r_pct + log(RPL_THEMES), family = "binomial",
data = flu_clean2)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.8239 -1.0770 -0.7306 1.1366 2.0591
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 1.075e-01 2.077e-01 0.518 0.60467
ibd_3UC 2.979e-02 5.936e-02 0.502 0.61576
ibd_3Unspecified 7.322e-03 5.069e-01 0.014 0.98847
age_yrs -8.399e-03 2.242e-03 -3.746 0.00018 ***
genderFemale 1.742e-01 5.645e-02 3.086 0.00203 **
race_5Black -6.297e-01 1.234e-01 -5.102 3.36e-07 ***
race_5Asian 5.213e-01 1.934e-01 2.695 0.00703 **
race_5Native 2.930e-02 4.916e-01 0.060 0.95247
race_5Other -1.675e-01 1.717e-01 -0.976 0.32915
ethnic_3Hispanic 3.347e-01 2.102e-01 1.592 0.11145
mstat_5Unmarried -1.841e-01 7.216e-02 -2.552 0.01072 *
mstat_5DivorcedSeparated 8.994e-02 1.486e-01 0.605 0.54500
mstat_5Widow -3.475e-01 2.045e-01 -1.700 0.08922 .
relig_affilNo -1.617e-01 5.790e-02 -2.793 0.00522 **
lang_3Other -9.581e-02 3.250e-01 -0.295 0.76818
act_tobYes -1.619e-01 9.257e-02 -1.749 0.08030 .
max_ch 2.828e-02 6.147e-03 4.600 4.23e-06 ***
IC 5.204e-01 6.402e-02 8.130 4.30e-16 ***
insur_typeMedicare -1.016e-01 1.154e-01 -0.881 0.37850
insur_typeOther -2.601e-01 6.256e-01 -0.416 0.67762
insur_typeOther Governmental Insurance -6.665e-01 3.932e-01 -1.695 0.09004 .
insur_typePrivate Insurance 5.014e-01 8.694e-02 5.767 8.06e-09 ***
pop_dens -1.493e-05 1.500e-05 -0.995 0.31971
r_pct -1.604e-02 2.030e-03 -7.902 2.75e-15 ***
log(RPL_THEMES) -1.437e-01 2.529e-02 -5.683 1.32e-08 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 7779.0 on 5637 degrees of freedom
Residual deviance: 7355.6 on 5613 degrees of freedom
(2593 observations deleted due to missingness)
AIC: 7405.6
Number of Fisher Scoring iterations: 4
broom::glance(Flu2019_SVI_log )
broom::tidy(Flu2019_SVI_log , exponentiate = TRUE)
tbl_regression(Flu2019_SVI_log, label = list(ibd_3 ~ "IBD Type", pop_dens ~ "Population density", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", r_pct ~ "Percent Rebuplican", race_5 ~ "Race", max_ch ~ "Charlson Comorbidity Index", act_tob ~ "Active Tobacco Use", IC ~ "Immunocompromised", insur_type ~ "Insurance Type"), exponentiate = TRUE)
| Characteristic |
OR |
95% CI |
p-value |
| IBD Type |
|
|
|
| Â Â Â Â CD |
— |
— |
|
| Â Â Â Â UC |
1.03 |
0.92, 1.16 |
0.6 |
| Â Â Â Â Unspecified |
1.01 |
0.36, 2.68 |
>0.9 |
| age_yrs |
0.99 |
0.99, 1.00 |
<0.001 |
| Gender |
|
|
|
| Â Â Â Â Male |
— |
— |
|
| Â Â Â Â Female |
1.19 |
1.07, 1.33 |
0.002 |
| Race |
|
|
|
| Â Â Â Â White |
— |
— |
|
| Â Â Â Â Black |
0.53 |
0.42, 0.68 |
<0.001 |
| Â Â Â Â Asian |
1.68 |
1.16, 2.48 |
0.007 |
| Â Â Â Â Native |
1.03 |
0.39, 2.74 |
>0.9 |
| Â Â Â Â Other |
0.85 |
0.60, 1.18 |
0.3 |
| Ethnicity |
|
|
|
| Â Â Â Â NonHispanic |
— |
— |
|
| Â Â Â Â Hispanic |
1.40 |
0.93, 2.12 |
0.11 |
| mstat_5 |
|
|
|
| Â Â Â Â Married |
— |
— |
|
| Â Â Â Â Unmarried |
0.83 |
0.72, 0.96 |
0.011 |
| Â Â Â Â DivorcedSeparated |
1.09 |
0.82, 1.46 |
0.5 |
| Â Â Â Â Widow |
0.71 |
0.47, 1.05 |
0.089 |
| relig_affil |
|
|
|
| Â Â Â Â Yes |
— |
— |
|
| Â Â Â Â No |
0.85 |
0.76, 0.95 |
0.005 |
| Preferred Language |
|
|
|
| Â Â Â Â English |
— |
— |
|
| Â Â Â Â Other |
0.91 |
0.48, 1.71 |
0.8 |
| Active Tobacco Use |
|
|
|
| Â Â Â Â No |
— |
— |
|
| Â Â Â Â Yes |
0.85 |
0.71, 1.02 |
0.080 |
| Charlson Comorbidity Index |
1.03 |
1.02, 1.04 |
<0.001 |
| Immunocompromised |
1.68 |
1.48, 1.91 |
<0.001 |
| Insurance Type |
|
|
|
| Â Â Â Â Medicaid |
— |
— |
|
| Â Â Â Â Medicare |
0.90 |
0.72, 1.13 |
0.4 |
| Â Â Â Â Other |
0.77 |
0.20, 2.52 |
0.7 |
| Â Â Â Â Other Governmental Insurance |
0.51 |
0.22, 1.07 |
0.090 |
| Â Â Â Â Private Insurance |
1.65 |
1.39, 1.96 |
<0.001 |
| Population density |
1.00 |
1.00, 1.00 |
0.3 |
| Percent Rebuplican |
0.98 |
0.98, 0.99 |
<0.001 |
| log(RPL_THEMES) |
0.87 |
0.82, 0.91 |
<0.001 |
# Model performance
model_performance(Flu2019_SVI_log)
# Indices of model performance
AIC | BIC | Tjur's R2 | RMSE | Sigma | Log_loss | Score_log | Score_spherical | PCP
------------------------------------------------------------------------------------------------
7405.577 | 7571.510 | 0.073 | 0.480 | 1.145 | 0.652 | -Inf | 1.774e-04 | 0.540
performance::check_model(Flu2019_SVI_log, panel = TRUE)

# Margins
cplot(Flu2019_SVI_log, "RPL_THEMES", what = "prediction", main = "Predicted Likelihood of Flu Vaccine Given SVI")

Flu 2019 with SVI as Quadratic
Flu2019_SVI_quad <- glm(flu_2019 ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 +
relig_affil + mstat_5 + lang_3 + act_tob + max_ch + IC + insur_type
+ pop_dens + r_pct + I(RPL_THEMES^2),
family = "binomial",
data = flu_clean2)
summary(Flu2019_SVI_quad )
Call:
glm(formula = flu_2019 ~ ibd_3 + age_yrs + gender + race_5 +
ethnic_3 + relig_affil + mstat_5 + lang_3 + act_tob + max_ch +
IC + insur_type + pop_dens + r_pct + I(RPL_THEMES^2), family = "binomial",
data = flu_clean2)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.8696 -1.0748 -0.7298 1.1308 2.0163
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 4.993e-01 2.064e-01 2.419 0.015582 *
ibd_3UC 2.003e-02 5.944e-02 0.337 0.736126
ibd_3Unspecified -4.473e-02 5.046e-01 -0.089 0.929358
age_yrs -8.597e-03 2.245e-03 -3.829 0.000129 ***
genderFemale 1.760e-01 5.648e-02 3.115 0.001837 **
race_5Black -5.442e-01 1.257e-01 -4.328 1.50e-05 ***
race_5Asian 4.999e-01 1.935e-01 2.583 0.009795 **
race_5Native -2.030e-02 4.926e-01 -0.041 0.967125
race_5Other -1.664e-01 1.718e-01 -0.969 0.332590
ethnic_3Hispanic 3.692e-01 2.110e-01 1.749 0.080240 .
relig_affilNo -1.595e-01 5.792e-02 -2.754 0.005881 **
mstat_5Unmarried -1.916e-01 7.223e-02 -2.652 0.008003 **
mstat_5DivorcedSeparated 9.033e-02 1.487e-01 0.607 0.543619
mstat_5Widow -3.464e-01 2.047e-01 -1.692 0.090603 .
lang_3Other -4.776e-02 3.267e-01 -0.146 0.883786
act_tobYes -1.584e-01 9.270e-02 -1.708 0.087552 .
max_ch 2.855e-02 6.151e-03 4.642 3.46e-06 ***
IC 5.166e-01 6.399e-02 8.074 6.82e-16 ***
insur_typeMedicare -1.146e-01 1.157e-01 -0.991 0.321650
insur_typeOther -2.575e-01 6.250e-01 -0.412 0.680346
insur_typeOther Governmental Insurance -6.830e-01 3.947e-01 -1.730 0.083572 .
insur_typePrivate Insurance 4.791e-01 8.739e-02 5.482 4.20e-08 ***
pop_dens -1.304e-05 1.505e-05 -0.866 0.386330
r_pct -1.602e-02 2.031e-03 -7.887 3.09e-15 ***
I(RPL_THEMES^2) -8.381e-01 1.382e-01 -6.064 1.33e-09 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 7779.0 on 5637 degrees of freedom
Residual deviance: 7350.6 on 5613 degrees of freedom
(2593 observations deleted due to missingness)
AIC: 7400.6
Number of Fisher Scoring iterations: 4
broom::glance(Flu2019_SVI_quad )
broom::tidy(Flu2019_SVI_quad , exponentiate = TRUE)
tbl_regression(Flu2019_SVI_quad, label = list(ibd_3 ~ "IBD Type", pop_dens ~ "Population density", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", r_pct ~ "Percent Rebuplican", race_5 ~ "Race", max_ch ~ "Charlson Comorbidity Index", act_tob ~ "Active Tobacco Use", IC ~ "Immunocompromised", insur_type ~ "Insurance Type"), exponentiate = TRUE)
| Characteristic |
OR |
95% CI |
p-value |
| IBD Type |
|
|
|
| Â Â Â Â CD |
— |
— |
|
| Â Â Â Â UC |
1.02 |
0.91, 1.15 |
0.7 |
| Â Â Â Â Unspecified |
0.96 |
0.34, 2.53 |
>0.9 |
| age_yrs |
0.99 |
0.99, 1.00 |
<0.001 |
| Gender |
|
|
|
| Â Â Â Â Male |
— |
— |
|
| Â Â Â Â Female |
1.19 |
1.07, 1.33 |
0.002 |
| Race |
|
|
|
| Â Â Â Â White |
— |
— |
|
| Â Â Â Â Black |
0.58 |
0.45, 0.74 |
<0.001 |
| Â Â Â Â Asian |
1.65 |
1.13, 2.43 |
0.010 |
| Â Â Â Â Native |
0.98 |
0.37, 2.61 |
>0.9 |
| Â Â Â Â Other |
0.85 |
0.60, 1.18 |
0.3 |
| Ethnicity |
|
|
|
| Â Â Â Â NonHispanic |
— |
— |
|
| Â Â Â Â Hispanic |
1.45 |
0.96, 2.19 |
0.080 |
| relig_affil |
|
|
|
| Â Â Â Â Yes |
— |
— |
|
| Â Â Â Â No |
0.85 |
0.76, 0.95 |
0.006 |
| mstat_5 |
|
|
|
| Â Â Â Â Married |
— |
— |
|
| Â Â Â Â Unmarried |
0.83 |
0.72, 0.95 |
0.008 |
| Â Â Â Â DivorcedSeparated |
1.09 |
0.82, 1.46 |
0.5 |
| Â Â Â Â Widow |
0.71 |
0.47, 1.05 |
0.091 |
| Preferred Language |
|
|
|
| Â Â Â Â English |
— |
— |
|
| Â Â Â Â Other |
0.95 |
0.50, 1.80 |
0.9 |
| Active Tobacco Use |
|
|
|
| Â Â Â Â No |
— |
— |
|
| Â Â Â Â Yes |
0.85 |
0.71, 1.02 |
0.088 |
| Charlson Comorbidity Index |
1.03 |
1.02, 1.04 |
<0.001 |
| Immunocompromised |
1.68 |
1.48, 1.90 |
<0.001 |
| Insurance Type |
|
|
|
| Â Â Â Â Medicaid |
— |
— |
|
| Â Â Â Â Medicare |
0.89 |
0.71, 1.12 |
0.3 |
| Â Â Â Â Other |
0.77 |
0.20, 2.52 |
0.7 |
| Â Â Â Â Other Governmental Insurance |
0.51 |
0.22, 1.05 |
0.084 |
| Â Â Â Â Private Insurance |
1.61 |
1.36, 1.92 |
<0.001 |
| Population density |
1.00 |
1.00, 1.00 |
0.4 |
| Percent Rebuplican |
0.98 |
0.98, 0.99 |
<0.001 |
| I(RPL_THEMES^2) |
0.43 |
0.33, 0.57 |
<0.001 |
# Model performance
model_performance(Flu2019_SVI_quad)
# Indices of model performance
AIC | BIC | Tjur's R2 | RMSE | Sigma | Log_loss | Score_log | Score_spherical | PCP
------------------------------------------------------------------------------------------------
7420.518 | 7586.451 | 0.074 | 0.480 | 1.144 | 0.652 | -Inf | 1.774e-04 | 0.540
performance::check_model(Flu2019_SVI_quad, panel = TRUE)

# Margins
cplot(Flu2019_SVI_quad, "RPL_THEMES", what = "prediction", main = "Predicted Likelihood of Flu Vaccine Given SVI")

Flu 2019 with SVI as Quartile
Flu2019_SVI_quart <- glm(flu_2019 ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 +
relig_affil + mstat_5 + lang_3 + act_tob + max_ch + IC + insur_type
+ pop_dens + r_pct + RPL_4,
family = "binomial",
data = flu_clean2)
summary(Flu2019_SVI_quart )
Call:
glm(formula = flu_2019 ~ ibd_3 + age_yrs + gender + race_5 +
ethnic_3 + relig_affil + mstat_5 + lang_3 + act_tob + max_ch +
IC + insur_type + pop_dens + r_pct + RPL_4, family = "binomial",
data = flu_clean2)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.8450 -1.0727 -0.7284 1.1361 2.0425
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 5.125e-01 2.069e-01 2.478 0.013230 *
ibd_3UC 2.156e-02 5.946e-02 0.363 0.716857
ibd_3Unspecified -5.664e-02 5.062e-01 -0.112 0.910910
age_yrs -8.535e-03 2.246e-03 -3.800 0.000145 ***
genderFemale 1.791e-01 5.650e-02 3.170 0.001524 **
race_5Black -5.748e-01 1.252e-01 -4.590 4.44e-06 ***
race_5Asian 5.138e-01 1.937e-01 2.653 0.007986 **
race_5Native -3.010e-02 4.941e-01 -0.061 0.951412
race_5Other -1.738e-01 1.718e-01 -1.011 0.311817
ethnic_3Hispanic 3.541e-01 2.107e-01 1.680 0.092942 .
relig_affilNo -1.586e-01 5.792e-02 -2.738 0.006183 **
mstat_5Unmarried -1.886e-01 7.227e-02 -2.609 0.009073 **
mstat_5DivorcedSeparated 9.514e-02 1.488e-01 0.639 0.522531
mstat_5Widow -3.486e-01 2.046e-01 -1.704 0.088451 .
lang_3Other -6.375e-02 3.272e-01 -0.195 0.845528
act_tobYes -1.581e-01 9.270e-02 -1.706 0.088067 .
max_ch 2.883e-02 6.153e-03 4.685 2.80e-06 ***
IC 5.119e-01 6.399e-02 8.000 1.25e-15 ***
insur_typeMedicare -1.184e-01 1.157e-01 -1.024 0.306004
insur_typeOther -2.575e-01 6.247e-01 -0.412 0.680234
insur_typeOther Governmental Insurance -6.759e-01 3.942e-01 -1.715 0.086401 .
insur_typePrivate Insurance 4.800e-01 8.740e-02 5.492 3.98e-08 ***
pop_dens -1.278e-05 1.506e-05 -0.849 0.396042
r_pct -1.581e-02 2.038e-03 -7.756 8.79e-15 ***
RPL_4Second -2.150e-01 6.650e-02 -3.233 0.001224 **
RPL_4Third -3.683e-01 8.011e-02 -4.597 4.29e-06 ***
RPL_4Fourth -5.713e-01 1.122e-01 -5.094 3.50e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 7779 on 5637 degrees of freedom
Residual deviance: 7349 on 5611 degrees of freedom
(2593 observations deleted due to missingness)
AIC: 7403
Number of Fisher Scoring iterations: 4
broom::glance(Flu2019_SVI_quart )
broom::tidy(Flu2019_SVI_quart , exponentiate = TRUE)
tbl_regression(Flu2019_SVI_quart, label = list(ibd_3 ~ "IBD Type", pop_dens ~ "Population density", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", r_pct ~ "Percent Rebuplican", race_5 ~ "Race", max_ch ~ "Charlson Comorbidity Index", act_tob ~ "Active Tobacco Use", IC ~ "Immunocompromised", insur_type ~ "Insurance Type"), exponentiate = TRUE)
| Characteristic |
OR |
95% CI |
p-value |
| IBD Type |
|
|
|
| Â Â Â Â CD |
— |
— |
|
| Â Â Â Â UC |
1.02 |
0.91, 1.15 |
0.7 |
| Â Â Â Â Unspecified |
0.94 |
0.33, 2.51 |
>0.9 |
| age_yrs |
0.99 |
0.99, 1.00 |
<0.001 |
| Gender |
|
|
|
| Â Â Â Â Male |
— |
— |
|
| Â Â Â Â Female |
1.20 |
1.07, 1.34 |
0.002 |
| Race |
|
|
|
| Â Â Â Â White |
— |
— |
|
| Â Â Â Â Black |
0.56 |
0.44, 0.72 |
<0.001 |
| Â Â Â Â Asian |
1.67 |
1.15, 2.46 |
0.008 |
| Â Â Â Â Native |
0.97 |
0.36, 2.59 |
>0.9 |
| Â Â Â Â Other |
0.84 |
0.60, 1.18 |
0.3 |
| Ethnicity |
|
|
|
| Â Â Â Â NonHispanic |
— |
— |
|
| Â Â Â Â Hispanic |
1.42 |
0.94, 2.16 |
0.093 |
| relig_affil |
|
|
|
| Â Â Â Â Yes |
— |
— |
|
| Â Â Â Â No |
0.85 |
0.76, 0.96 |
0.006 |
| mstat_5 |
|
|
|
| Â Â Â Â Married |
— |
— |
|
| Â Â Â Â Unmarried |
0.83 |
0.72, 0.95 |
0.009 |
| Â Â Â Â DivorcedSeparated |
1.10 |
0.82, 1.47 |
0.5 |
| Â Â Â Â Widow |
0.71 |
0.47, 1.05 |
0.088 |
| Preferred Language |
|
|
|
| Â Â Â Â English |
— |
— |
|
| Â Â Â Â Other |
0.94 |
0.49, 1.77 |
0.8 |
| Active Tobacco Use |
|
|
|
| Â Â Â Â No |
— |
— |
|
| Â Â Â Â Yes |
0.85 |
0.71, 1.02 |
0.088 |
| Charlson Comorbidity Index |
1.03 |
1.02, 1.04 |
<0.001 |
| Immunocompromised |
1.67 |
1.47, 1.89 |
<0.001 |
| Insurance Type |
|
|
|
| Â Â Â Â Medicaid |
— |
— |
|
| Â Â Â Â Medicare |
0.89 |
0.71, 1.11 |
0.3 |
| Â Â Â Â Other |
0.77 |
0.20, 2.52 |
0.7 |
| Â Â Â Â Other Governmental Insurance |
0.51 |
0.22, 1.06 |
0.086 |
| Â Â Â Â Private Insurance |
1.62 |
1.36, 1.92 |
<0.001 |
| Population density |
1.00 |
1.00, 1.00 |
0.4 |
| Percent Rebuplican |
0.98 |
0.98, 0.99 |
<0.001 |
| RPL_4 |
|
|
|
| Â Â Â Â First |
— |
— |
|
| Â Â Â Â Second |
0.81 |
0.71, 0.92 |
0.001 |
| Â Â Â Â Third |
0.69 |
0.59, 0.81 |
<0.001 |
| Â Â Â Â Fourth |
0.56 |
0.45, 0.70 |
<0.001 |
# Model performance
model_performance(Flu2019_SVI_quart)
# Indices of model performance
AIC | BIC | Tjur's R2 | RMSE | Sigma | Log_loss | Score_log | Score_spherical | PCP
------------------------------------------------------------------------------------------------
7402.972 | 7582.179 | 0.074 | 0.479 | 1.144 | 0.652 | -Inf | 1.774e-04 | 0.540
performance::check_model(Flu2019_SVI_quart, panel = TRUE)

# Margins
cplot(Flu2019_SVI_quart, "RPL_4", what = "prediction", main = "Predicted Likelihood of Flu Vaccine Given SVI")

NA
NA
Flu 2019 + All SVI Themes
Flu2019_all_themes <- glm(flu_2019 ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 +
lang_3 + mstat_5 + relig_affil + act_tob + max_ch + IC
+ pop_dens + r_pct + RPL_THEME1 + RPL_THEME2 + RPL_THEME3
+ RPL_THEME4,
family = "binomial",
data = flu_clean2)
summary(Flu2019_all_themes )
Call:
glm(formula = flu_2019 ~ ibd_3 + age_yrs + gender + race_5 +
ethnic_3 + lang_3 + mstat_5 + relig_affil + act_tob + max_ch +
IC + pop_dens + r_pct + RPL_THEME1 + RPL_THEME2 + RPL_THEME3 +
RPL_THEME4, family = "binomial", data = flu_clean2)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.8409 -1.0760 -0.7704 1.1625 1.9130
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 1.393e+00 2.185e-01 6.377 1.80e-10 ***
ibd_3UC 3.600e-02 5.928e-02 0.607 0.54362
ibd_3Unspecified -1.211e-01 4.992e-01 -0.243 0.80832
age_yrs -1.361e-02 2.036e-03 -6.682 2.35e-11 ***
genderFemale 1.728e-01 5.634e-02 3.067 0.00216 **
race_5Black -5.715e-01 1.261e-01 -4.531 5.87e-06 ***
race_5Asian 5.743e-01 1.955e-01 2.938 0.00330 **
race_5Native -1.361e-01 4.907e-01 -0.277 0.78151
race_5Other -2.235e-01 1.715e-01 -1.303 0.19250
ethnic_3Hispanic 4.088e-01 2.106e-01 1.941 0.05222 .
lang_3Other -2.520e-01 3.249e-01 -0.776 0.43804
mstat_5Unmarried -3.054e-01 7.075e-02 -4.317 1.58e-05 ***
mstat_5DivorcedSeparated -2.519e-02 1.470e-01 -0.171 0.86395
mstat_5Widow -4.595e-01 2.030e-01 -2.263 0.02362 *
relig_affilNo -1.539e-01 5.795e-02 -2.656 0.00791 **
act_tobYes -2.081e-01 9.174e-02 -2.268 0.02330 *
max_ch 2.387e-02 6.089e-03 3.921 8.83e-05 ***
IC 5.327e-01 6.394e-02 8.331 < 2e-16 ***
pop_dens -9.055e-06 1.598e-05 -0.567 0.57087
r_pct -1.579e-02 2.419e-03 -6.529 6.63e-11 ***
RPL_THEME1 -5.079e-01 1.745e-01 -2.911 0.00360 **
RPL_THEME2 -4.615e-01 1.468e-01 -3.145 0.00166 **
RPL_THEME3 -2.210e-01 1.188e-01 -1.860 0.06288 .
RPL_THEME4 -6.330e-02 1.245e-01 -0.508 0.61128
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 7710.5 on 5589 degrees of freedom
Residual deviance: 7350.4 on 5566 degrees of freedom
(2641 observations deleted due to missingness)
AIC: 7398.4
Number of Fisher Scoring iterations: 4
broom::glance(Flu2019_all_themes )
broom::tidy(Flu2019_all_themes , exponentiate = TRUE)
tbl_regression(Flu2019_all_themes, label = list(ibd_3 ~ "IBD Type", age_yrs ~ "Age", pop_dens ~ "Population density", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", r_pct ~ "Percent Rebuplican", race_5 ~ "Race", max_ch ~ "Charlson Comorbidity Index", act_tob ~ "Active Tobacco Use", RPL_THEME1 ~ "Soceioeconomic Status", RPL_THEME2 ~ "Household Composition", RPL_THEME3 ~ "Minority Status and Language", RPL_THEME4 ~ "Housing and Transportation"), exponentiate = TRUE)
| Characteristic |
OR |
95% CI |
p-value |
| IBD Type |
|
|
|
| Â Â Â Â CD |
— |
— |
|
| Â Â Â Â UC |
1.04 |
0.92, 1.16 |
0.5 |
| Â Â Â Â Unspecified |
0.89 |
0.32, 2.32 |
0.8 |
| Age |
0.99 |
0.98, 0.99 |
<0.001 |
| Gender |
|
|
|
| Â Â Â Â Male |
— |
— |
|
| Â Â Â Â Female |
1.19 |
1.06, 1.33 |
0.002 |
| Race |
|
|
|
| Â Â Â Â White |
— |
— |
|
| Â Â Â Â Black |
0.56 |
0.44, 0.72 |
<0.001 |
| Â Â Â Â Asian |
1.78 |
1.22, 2.62 |
0.003 |
| Â Â Â Â Native |
0.87 |
0.33, 2.32 |
0.8 |
| Â Â Â Â Other |
0.80 |
0.57, 1.12 |
0.2 |
| Ethnicity |
|
|
|
| Â Â Â Â NonHispanic |
— |
— |
|
| Â Â Â Â Hispanic |
1.50 |
1.00, 2.28 |
0.052 |
| Preferred Language |
|
|
|
| Â Â Â Â English |
— |
— |
|
| Â Â Â Â Other |
0.78 |
0.41, 1.46 |
0.4 |
| Marital Status |
|
|
|
| Â Â Â Â Married |
— |
— |
|
| Â Â Â Â Unmarried |
0.74 |
0.64, 0.85 |
<0.001 |
| Â Â Â Â DivorcedSeparated |
0.98 |
0.73, 1.30 |
0.9 |
| Â Â Â Â Widow |
0.63 |
0.42, 0.93 |
0.024 |
| Any Religious Affiliation |
|
|
|
| Â Â Â Â Yes |
— |
— |
|
| Â Â Â Â No |
0.86 |
0.77, 0.96 |
0.008 |
| Active Tobacco Use |
|
|
|
| Â Â Â Â No |
— |
— |
|
| Â Â Â Â Yes |
0.81 |
0.68, 0.97 |
0.023 |
| Charlson Comorbidity Index |
1.02 |
1.01, 1.04 |
<0.001 |
| IC |
1.70 |
1.50, 1.93 |
<0.001 |
| Population density |
1.00 |
1.00, 1.00 |
0.6 |
| Percent Rebuplican |
0.98 |
0.98, 0.99 |
<0.001 |
| Soceioeconomic Status |
0.60 |
0.43, 0.85 |
0.004 |
| Household Composition |
0.63 |
0.47, 0.84 |
0.002 |
| Minority Status and Language |
0.80 |
0.63, 1.01 |
0.063 |
| Housing and Transportation |
0.94 |
0.74, 1.20 |
0.6 |
# Model performance
model_performance(Flu2019_all_themes)
# Indices of model performance
AIC | BIC | Tjur's R2 | RMSE | Sigma | Log_loss | Score_log | Score_spherical | PCP
------------------------------------------------------------------------------------------------
7398.398 | 7557.487 | 0.063 | 0.482 | 1.149 | 0.657 | -Inf | 1.789e-04 | 0.535
performance::check_model(Flu2019_all_themes, panel = TRUE)

# Margins
cplot(Flu2019_all_themes, "RPL_THEME1", what = "prediction", main = "Predicted Likelihood of Flu Vaccine Given THEME1")

cplot(Flu2019_all_themes, "RPL_THEME2", what = "prediction", main = "Predicted Likelihood of Flu Vaccine Given THEME2")

cplot(Flu2019_all_themes, "RPL_THEME3", what = "prediction", main = "Predicted Likelihood of Flu Vaccine Given THEME3")

cplot(Flu2019_all_themes, "RPL_THEME4", what = "prediction", main = "Predicted Likelihood of Flu Vaccine Given THEME4")

LS0tCnRpdGxlOiAiRmx1IDIwMTkgTW9kZWxzIgpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazoKICAgIHRoZW1lczogcGFwZXIKICAgIHRvYzogeWVzCiAgICB0b2NfZmxvYXQ6IHllcwplZGl0b3Jfb3B0aW9uczoKICBjaHVua19vdXRwdXRfdHlwZTogaW5saW5lCmRhdGU6ICIyMDIzLTAxLTA2IgotLS0KIyBMb2FkIFBhY2thZ2VzIApgYGB7cn0KbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkoY29kZWJvb2tyKQpsaWJyYXJ5KHN1bW1hcnl0b29scykKbGlicmFyeShicm9vbSkgCmxpYnJhcnkocGVyZm9ybWFuY2UpCmxpYnJhcnkoZ3QpCmxpYnJhcnkoZ3RzdW1tYXJ5KQpsaWJyYXJ5KGphbml0b3IpCmxpYnJhcnkoZm9yY2F0cykKbGlicmFyeShoZXJlKQpsaWJyYXJ5KG1hcmdpbnMpCmxpYnJhcnkoZ2dwbG90MikKbGlicmFyeShtZWRpYXRpb24pCmBgYAoKIyBJbXBvcnQgRGF0YSAKYGBge3J9CmxvYWQoIn4vRGVza3RvcC9SLUNvZGUvU0RPSF9WYXgvZmx1XzIwMTlfbGF0ZXIucmRhIikKVmlldyhmbHVfMjAxOV9sYXRlcikKYGBgCgojIEluY2x1ZGUgb25seSBwYXRpZW50cyBmcm9tIE1pY2hpZ2FuCmBgYHtyfQpmbHVfMjAxOV9NSSA8LSBmbHVfMjAxOV9sYXRlclsgd2hpY2goZmx1XzIwMTlfbGF0ZXIkUEFUSUVOVF9TVEFURV9DRD09J01JJyksIF0KYGBgCgojIEV4Y2x1ZGUgd29ya21hbnMgY29tcGVuc2F0aW9uIGFuZCBOVUxMIGFzIGluc3VyYW5jZSAKYGBge3J9CmZsdV8yMDE5X01JX29ubHkxIDwtIGZsdV8yMDE5X01JWyB3aGljaChmbHVfMjAxOV9NSSRpbnN1cl90eXBlICE9J1dvcmtlcnMgQ29tcGVuc2F0aW9uJyksIF0KZmx1XzIwMTlfTUlfb25seSA8LSBmbHVfMjAxOV9NSV9vbmx5MVsgd2hpY2goZmx1XzIwMTlfTUlfb25seTEkaW5zdXJfdHlwZSAhPSdOVUxMJyksIF0KYGBgCgojIGNvZGVib29rCmBgYHtyfQoKZmx1XzIwMTlfTUlfb25seSRJQyA8LSBhcy5udW1lcmljKGZsdV8yMDE5X01JX29ubHkkSUMpCmZsdV8yMDE5X01JX29ubHkkaW5zdXJfdHlwZSA8LSBhcy5jaGFyYWN0ZXIoZmx1XzIwMTlfTUlfb25seSRpbnN1cl90eXBlKQpmbHVfMjAxOV9NSV9vbmx5ICU+JSAKZHBseXI6OnNlbGVjdChpYmRfMywgYWdlX3lycywgZ2VuZGVyLCByYWNlXzUsIGV0aG5pY18zLCBsYW5nXzMsIHJlbGlnX2FmZmlsLCBtc3RhdF81LCBtYXhfY2gsIFBBVElFTlRfU1RBVEVfQ0QsIHJfcGN0LCBJQywgaW5zdXJfdHlwZSwgcG9wX2RlbnMsIFJQTF9USEVNRVMsIFJQTF80LCBSUExfVEhFTUUxLCBSUExfVEhFTUUyLCBSUExfVEhFTUUzLCBSUExfVEhFTUU0LCBhY3RfdG9iLCBmbHVfMjAxOSwgLCBwcmV2bmFyLCBwdmF4LCBhbnlfcG5ldW0sIGFueV9wbmV1bSwgdG90YWxfY292X3ZheCwgdG90YWxfc2hpbmdyaXgpIC0+IGZsdV9jbGVhbjEKcHJpbnQoZGZTdW1tYXJ5KGZsdV9jbGVhbjEpLCBtZXRob2QgPSAncmVuZGVyJykKYGBgCgoKIyBQYXRpZW50IENoYXJhY3RlcmlzdGljcyB7LnRhYnNldH0KCiMjIEJhc2VsaW5lIENoYXJhY3RlcmlzdGljcyAKYGBge3J9CmZsdV9jbGVhbjIgPC0gZmx1X2NsZWFuMVsgd2hpY2goZmx1X2NsZWFuMSRtc3RhdF81ICE9J1Vua25vd24nKSwgXQpmbHVfY2xlYW4yICU+JSAKICBkcGx5cjo6c2VsZWN0KGliZF8zLCBhZ2VfeXJzLCBnZW5kZXIsIHJhY2VfNSwgZXRobmljXzMsIGxhbmdfMywgcmVsaWdfYWZmaWwsIG1zdGF0XzUsIGFjdF90b2IsIG1heF9jaCwgaW5zdXJfdHlwZSwgSUMsIHBvcF9kZW5zLHJfcGN0LCBSUExfVEhFTUVTLCBSUExfNCwgUlBMX1RIRU1FMSwgUlBMX1RIRU1FMiwgUlBMX1RIRU1FMywgUlBMX1RIRU1FNCwgZmx1XzIwMTkpIC0+IGJhc2VsaW5lCmJhc2VsaW5lICU+JSB0Ymxfc3VtbWFyeShsYWJlbCA9IGxpc3QoaWJkXzMgfiAiSUJEIERpYWdub3NpcyIsIGFnZV95cnMgfiAiQWdlIiwgZ2VuZGVyfiAiR2VuZGVyIiwgcmFjZV81IH4gIlJhY2UiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJpbWFyeSBMYW5ndWFnZSIsIHJlbGlnX2FmZmlsIH4gIkFueSBSZWxpZ2lvdXMgQWZmaWxpYXRpb24iLCBtc3RhdF81IH4gIk1hcml0YWwgU3RhdHVzIiwgUlBMX1RIRU1FUyB+ICJUb3RhbCBTVkkiLCBSUExfVEhFTUUxIH4gIlNvY2Vpb2Vjb25vbWljIFN0YXR1cyIsIFJQTF9USEVNRTIgfiAiSG91c2Vob2xkIENvbXBvc2l0aW9uIiwgUlBMX1RIRU1FMyB+ICJNaW5vcml0eSBTdGF0dXMgYW5kIExhbmd1YWdlIiwgUlBMX1RIRU1FNCB+ICJIb3VzaW5nIGFuZCBUcmFuc3BvcnRhdGlvbiIsIHBvcF9kZW5zIH4gIlBvcHVsYXRpb24gRGVuc2l0eSIsIFJQTF80IH4gIlNWSSBRdWFydGlsZXMiLCByX3BjdCB+ICJQZXJjZW50IFJlcHVibGljYW4iLCBtYXhfY2ggfiAiQ2hhcmxzb24gQ29tb3JiaWRpdHkgSW5kZXgiLCBhY3RfdG9iIH4gIkFjdGl2ZSBUb2JhY2NvIFVzZSIsIElDID0gIkltbXVub2NvbXByb21pc2VkIiwgZmx1XzIwMTkgfiAiRmx1IFZhY2NpbmF0aW9uIiwgaW5zdXJfdHlwZSB+ICJJbnN1cmFuY2UgVHlwZSIpLAogICAgICAgIHN0YXRpc3RpYyA9IGxpc3QoYWxsX2NvbnRpbnVvdXMoKSB+ICJ7bWVhbn0gKHtzZH0pIiksCiAgICAgICAgbWlzc2luZ190ZXh0ID0gIihNaXNzaW5nKSIpCmBgYAoKIyMgQmFzZWxpbmUgY2hhcmFjdGVyaXN0aWNzIGJ5IFNWSSBRdWFydGlsZQpgYGB7cn0KZmx1X2NsZWFuMiAlPiUgdGJsX3N1bW1hcnkoYnkgPSBSUExfNCwKICAgICAgICAgbGFiZWwgPSBsaXN0KGliZF8zIH4gIklCRCBEaWFnbm9zaXMiLCBhZ2VfeXJzIH4gIkFnZSIsIGdlbmRlcn4gIkdlbmRlciIsIHJhY2VfNSB+ICJSYWNlIiwgZXRobmljXzMgfiAiRXRobmljaXR5IiwgbGFuZ18zIH4gIlByaW1hcnkgTGFuZ3VhZ2UiLCByZWxpZ19hZmZpbCB+ICJBbnkgUmVsaWdpb3VzIEFmZmlsaWF0aW9uIiwgbXN0YXRfNSB+ICJNYXJpdGFsIFN0YXR1cyIsIFJQTF9USEVNRVMgfiAiVG90YWwgU1ZJIiwgUlBMX1RIRU1FMSB+ICJTb2NlaW9lY29ub21pYyBTdGF0dXMiLCBSUExfVEhFTUUyIH4gIkhvdXNlaG9sZCBDb21wb3NpdGlvbiIsIFJQTF9USEVNRTMgfiAiTWlub3JpdHkgU3RhdHVzIGFuZCBMYW5ndWFnZSIsIFJQTF9USEVNRTQgfiAiSG91c2luZyBhbmQgVHJhbnNwb3J0YXRpb24iLCBwb3BfZGVucyB+ICJQb3B1bGF0aW9uIERlbnNpdHkiLCBSUExfNCB+ICJTVkkgUXVhcnRpbGVzIiwgcl9wY3QgfiAiUGVyY2VudCBSZXB1YmxpY2FuIiwgbWF4X2NoIH4gIkNoYXJsc29uIENvbW9yYmlkaXR5IEluZGV4IiwgYWN0X3RvYiB+ICJBY3RpdmUgVG9iYWNjbyBVc2UiLCBJQyB+ICJJbW11bm9jb21wcm9taXNlZCIsIGluc3VyX3R5cGUgfiAiSW5zdXJhbmNlIFR5cGUiKSwKICAgICAgICBzdGF0aXN0aWMgPSBsaXN0KGFsbF9jb250aW51b3VzKCkgfiAie21lYW59ICh7c2R9KSIpLAogICAgICAgIG1pc3NpbmdfdGV4dCA9ICIoTWlzc2luZykiKSAlPiUgYWRkX3AoKQpgYGAKCgojIEJpdmFyaWF0ZSBBbmFseXNpcyAKYGBge3J9CnRibF91dl9leDEgPC0KICB0YmxfdXZyZWdyZXNzaW9uKAogICAgZmx1X2NsZWFuMltjKCJmbHVfMjAxOSIsICJpYmRfMyIsICJhZ2VfeXJzIiwgImdlbmRlciIsICJyYWNlXzUiLCAiZXRobmljXzMiLCAibGFuZ18zIiwgIm1zdGF0XzUiLCAicmVsaWdfYWZmaWwiLCAiYWN0X3RvYiIsICJtYXhfY2giLCAiSUMiLCAiaW5zdXJfdHlwZSIsICJwb3BfZGVucyIsICJyX3BjdCIsICJSUExfVEhFTUVTIiwgIlJQTF9USEVNRTEiLCAiUlBMX1RIRU1FMiIsICJSUExfVEhFTUUzIiwgIlJQTF9USEVNRTQiKV0sCiAgICBtZXRob2QgPSBnbG0sCiAgICBtZXRob2QuYXJncyA9IGxpc3QoZmFtaWx5ID0gYmlub21pYWwpLAogICAgeSA9IGZsdV8yMDE5LAogICAgbGFiZWwgPSBsaXN0KGliZF8zIH4gIklCRCBEaWFnbm9zaXMiLCBhZ2VfeXJzIH4gIkFnZSIsIGdlbmRlcn4gIkdlbmRlciIsIHJhY2VfNSB+ICJSYWNlIiwgZXRobmljXzMgfiAiRXRobmljaXR5IiwgbGFuZ18zIH4gIlByaW1hcnkgTGFuZ3VhZ2UiLCByZWxpZ19hZmZpbCB+ICJBbnkgUmVsaWdpb3VzIEFmZmlsaWF0aW9uIiwgbXN0YXRfNSB+ICJNYXJpdGFsIFN0YXR1cyIsIFJQTF9USEVNRVMgfiAiVG90YWwgU1ZJIiwgUlBMX1RIRU1FMSB+ICJTb2NlaW9lY29ub21pYyBTdGF0dXMiLCBSUExfVEhFTUUyIH4gIkhvdXNlaG9sZCBDb21wb3NpdGlvbiIsIFJQTF9USEVNRTMgfiAiTWlub3JpdHkgU3RhdHVzIGFuZCBMYW5ndWFnZSIsIFJQTF9USEVNRTQgfiAiSG91c2luZyBhbmQgVHJhbnNwb3J0YXRpb24iLCBwb3BfZGVucyB+ICJQb3B1bGF0aW9uIERlbnNpdHkiLCByX3BjdCB+ICJQZXJjZW50IFJlcHVibGljYW4iLCBtYXhfY2ggfiAiQ2hhcmxzb24gQ29tb3JiaWRpdHkgSW5kZXgiLCBhY3RfdG9iIH4gIkFjdGl2ZSBUb2JhY2NvIFVzZSIsIElDIH4gIkltbXVub2NvbXByb21pc2VkIiwgaW5zdXJfdHlwZSB+ICJJbnN1cmFuY2UgVHlwZSIpLAogIGV4cG9uZW50aWF0ZSA9IFRSVUUpCnByaW50KHRibF91dl9leDEsIG1ldGhvZCA9IHJlbmRlcikKYGBgCgoKIyBGbHUgMjAxOSB3aXRoIFNWSSBhcyBDb250aW51b3VzIFZhcmlhYmxlIApgYGB7cn0KCmZsdV9jbGVhbjIgPC0gZmx1X2NsZWFuMVsgd2hpY2goZmx1X2NsZWFuMSRtc3RhdF81ICE9J1Vua25vd24nKSwgXQpGbHUyMDE5X1NWSSA8LSBnbG0oZmx1XzIwMTkgfiBpYmRfMyArIGFnZV95cnMgKyBnZW5kZXIgKyByYWNlXzUgKyBldGhuaWNfMyArIG1zdGF0XzUgKyByZWxpZ19hZmZpbAogICAgICAgICAgICAgICAgICAgICAgKyBsYW5nXzMgKyBhY3RfdG9iICsgbWF4X2NoICsgSUMgKyBpbnN1cl90eXBlCiAgICAgICAgICAgICAgICAgICAgICArIHBvcF9kZW5zICsgcl9wY3QgKyBSUExfVEhFTUVTLAogICAgICAgICAgICAgIGZhbWlseSA9ICJiaW5vbWlhbCIsIAogICAgICAgICAgICAgIGRhdGEgPSBmbHVfY2xlYW4yKQpzdW1tYXJ5KEZsdTIwMTlfU1ZJICkKYnJvb206OmdsYW5jZShGbHUyMDE5X1NWSSApCmJyb29tOjp0aWR5KEZsdTIwMTlfU1ZJICwgZXhwb25lbnRpYXRlID0gVFJVRSkKdGJsX3JlZ3Jlc3Npb24oRmx1MjAxOV9TVkksIGxhYmVsID0gbGlzdChpYmRfMyB+ICJJQkQgVHlwZSIsIHBvcF9kZW5zIH4gIlBvcHVsYXRpb24gZGVuc2l0eSIsIGdlbmRlcn4gIkdlbmRlciIsIGV0aG5pY18zIH4gIkV0aG5pY2l0eSIsIGxhbmdfMyB+ICJQcmVmZXJyZWQgTGFuZ3VhZ2UiLCByX3BjdCB+ICJQZXJjZW50IFJlYnVwbGljYW4iLCByYWNlXzUgfiAiUmFjZSIsIG1heF9jaCB+ICJDaGFybHNvbiBDb21vcmJpZGl0eSBJbmRleCIsIGFjdF90b2IgfiAiQWN0aXZlIFRvYmFjY28gVXNlIiwgSUMgfiAiSW1tdW5vY29tcHJvbWlzZWQiLCBpbnN1cl90eXBlIH4gIkluc3VyYW5jZSBUeXBlIiksIGV4cG9uZW50aWF0ZSA9IFRSVUUpCgojIE1vZGVsIHBlcmZvcm1hbmNlIAptb2RlbF9wZXJmb3JtYW5jZShGbHUyMDE5X1NWSSkKcGVyZm9ybWFuY2U6OmNoZWNrX21vZGVsKEZsdTIwMTlfU1ZJLCBwYW5lbCA9IFRSVUUpCgojIE1hcmdpbnMgCmNwbG90KEZsdTIwMTlfU1ZJLCAiUlBMX1RIRU1FUyIsIHdoYXQgPSAicHJlZGljdGlvbiIsIG1haW4gPSAiUHJlZGljdGVkIExpa2VsaWhvb2Qgb2YgRmx1IFZhY2NpbmUgR2l2ZW4gU1ZJIikKYGBgCgoKIyBGbHUgMjAxOSB3aXRoIGxvZyhTVkkpCmBgYHtyfQpGbHUyMDE5X1NWSV9sb2cgPC0gZ2xtKGZsdV8yMDE5IH4gaWJkXzMgKyBhZ2VfeXJzICsgZ2VuZGVyICsgcmFjZV81ICsgZXRobmljXzMgKyAKICAgICAgICAgICAgICAgICAgICAgICAgIG1zdGF0XzUgKyByZWxpZ19hZmZpbCArIGxhbmdfMyArIGFjdF90b2IgKyBtYXhfY2ggKyBJQyArIGluc3VyX3R5cGUKICAgICAgICAgICAgICAgICAgICAgICsgcG9wX2RlbnMgKyByX3BjdCArIGxvZyhSUExfVEhFTUVTKSwKICAgICAgICAgICAgICBmYW1pbHkgPSAiYmlub21pYWwiLCAKICAgICAgICAgICAgICBkYXRhID0gZmx1X2NsZWFuMikKc3VtbWFyeShGbHUyMDE5X1NWSV9sb2cgKQpicm9vbTo6Z2xhbmNlKEZsdTIwMTlfU1ZJX2xvZyApCmJyb29tOjp0aWR5KEZsdTIwMTlfU1ZJX2xvZyAsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCnRibF9yZWdyZXNzaW9uKEZsdTIwMTlfU1ZJX2xvZywgbGFiZWwgPSBsaXN0KGliZF8zIH4gIklCRCBUeXBlIiwgcG9wX2RlbnMgfiAiUG9wdWxhdGlvbiBkZW5zaXR5IiwgZ2VuZGVyfiAiR2VuZGVyIiwgZXRobmljXzMgfiAiRXRobmljaXR5IiwgbGFuZ18zIH4gIlByZWZlcnJlZCBMYW5ndWFnZSIsIHJfcGN0IH4gIlBlcmNlbnQgUmVidXBsaWNhbiIsIHJhY2VfNSB+ICJSYWNlIiwgbWF4X2NoIH4gIkNoYXJsc29uIENvbW9yYmlkaXR5IEluZGV4IiwgYWN0X3RvYiB+ICJBY3RpdmUgVG9iYWNjbyBVc2UiLCBJQyB+ICJJbW11bm9jb21wcm9taXNlZCIsIGluc3VyX3R5cGUgfiAiSW5zdXJhbmNlIFR5cGUiKSwgZXhwb25lbnRpYXRlID0gVFJVRSkKCiMgTW9kZWwgcGVyZm9ybWFuY2UgCm1vZGVsX3BlcmZvcm1hbmNlKEZsdTIwMTlfU1ZJX2xvZykKcGVyZm9ybWFuY2U6OmNoZWNrX21vZGVsKEZsdTIwMTlfU1ZJX2xvZywgcGFuZWwgPSBUUlVFKQoKIyBNYXJnaW5zIApjcGxvdChGbHUyMDE5X1NWSV9sb2csICJSUExfVEhFTUVTIiwgd2hhdCA9ICJwcmVkaWN0aW9uIiwgbWFpbiA9ICJQcmVkaWN0ZWQgTGlrZWxpaG9vZCBvZiBGbHUgVmFjY2luZSBHaXZlbiBTVkkiKQpgYGAKCgojIEZsdSAyMDE5IHdpdGggU1ZJIGFzIFF1YWRyYXRpYyAKYGBge3J9CkZsdTIwMTlfU1ZJX3F1YWQgPC0gZ2xtKGZsdV8yMDE5IH4gaWJkXzMgKyBhZ2VfeXJzICsgZ2VuZGVyICsgcmFjZV81ICsgZXRobmljXzMgKyAKICAgICAgICAgICAgICAgICAgICAgIHJlbGlnX2FmZmlsICsgbXN0YXRfNSArIGxhbmdfMyArIGFjdF90b2IgKyBtYXhfY2ggKyBJQyArIGluc3VyX3R5cGUKICAgICAgICAgICAgICAgICAgICAgICsgcG9wX2RlbnMgKyByX3BjdCArIEkoUlBMX1RIRU1FU14yKSwKICAgICAgICAgICAgICBmYW1pbHkgPSAiYmlub21pYWwiLCAKICAgICAgICAgICAgICBkYXRhID0gZmx1X2NsZWFuMikKc3VtbWFyeShGbHUyMDE5X1NWSV9xdWFkICkKYnJvb206OmdsYW5jZShGbHUyMDE5X1NWSV9xdWFkICkKYnJvb206OnRpZHkoRmx1MjAxOV9TVklfcXVhZCAsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCnRibF9yZWdyZXNzaW9uKEZsdTIwMTlfU1ZJX3F1YWQsIGxhYmVsID0gbGlzdChpYmRfMyB+ICJJQkQgVHlwZSIsIHBvcF9kZW5zIH4gIlBvcHVsYXRpb24gZGVuc2l0eSIsIGdlbmRlcn4gIkdlbmRlciIsIGV0aG5pY18zIH4gIkV0aG5pY2l0eSIsIGxhbmdfMyB+ICJQcmVmZXJyZWQgTGFuZ3VhZ2UiLCByX3BjdCB+ICJQZXJjZW50IFJlYnVwbGljYW4iLCByYWNlXzUgfiAiUmFjZSIsIG1heF9jaCB+ICJDaGFybHNvbiBDb21vcmJpZGl0eSBJbmRleCIsIGFjdF90b2IgfiAiQWN0aXZlIFRvYmFjY28gVXNlIiwgSUMgfiAiSW1tdW5vY29tcHJvbWlzZWQiLCBpbnN1cl90eXBlIH4gIkluc3VyYW5jZSBUeXBlIiksIGV4cG9uZW50aWF0ZSA9IFRSVUUpCgojIE1vZGVsIHBlcmZvcm1hbmNlIAptb2RlbF9wZXJmb3JtYW5jZShGbHUyMDE5X1NWSV9xdWFkKQpwZXJmb3JtYW5jZTo6Y2hlY2tfbW9kZWwoRmx1MjAxOV9TVklfcXVhZCwgcGFuZWwgPSBUUlVFKQoKIyBNYXJnaW5zIApjcGxvdChGbHUyMDE5X1NWSV9xdWFkLCAiUlBMX1RIRU1FUyIsIHdoYXQgPSAicHJlZGljdGlvbiIsIG1haW4gPSAiUHJlZGljdGVkIExpa2VsaWhvb2Qgb2YgRmx1IFZhY2NpbmUgR2l2ZW4gU1ZJIikKYGBgCgojIEZsdSAyMDE5IHdpdGggU1ZJIGFzIFF1YXJ0aWxlCmBgYHtyfQpGbHUyMDE5X1NWSV9xdWFydCA8LSBnbG0oZmx1XzIwMTkgfiBpYmRfMyArIGFnZV95cnMgKyBnZW5kZXIgKyByYWNlXzUgKyBldGhuaWNfMyArIAogICAgICAgICAgICAgICAgICAgICAgcmVsaWdfYWZmaWwgKyBtc3RhdF81ICsgbGFuZ18zICsgYWN0X3RvYiArIG1heF9jaCArIElDICsgaW5zdXJfdHlwZQogICAgICAgICAgICAgICAgICAgICAgKyBwb3BfZGVucyArIHJfcGN0ICsgUlBMXzQsCiAgICAgICAgICAgICAgZmFtaWx5ID0gImJpbm9taWFsIiwgCiAgICAgICAgICAgICAgZGF0YSA9IGZsdV9jbGVhbjIpCnN1bW1hcnkoRmx1MjAxOV9TVklfcXVhcnQgKQpicm9vbTo6Z2xhbmNlKEZsdTIwMTlfU1ZJX3F1YXJ0ICkKYnJvb206OnRpZHkoRmx1MjAxOV9TVklfcXVhcnQgLCBleHBvbmVudGlhdGUgPSBUUlVFKQp0YmxfcmVncmVzc2lvbihGbHUyMDE5X1NWSV9xdWFydCwgbGFiZWwgPSBsaXN0KGliZF8zIH4gIklCRCBUeXBlIiwgcG9wX2RlbnMgfiAiUG9wdWxhdGlvbiBkZW5zaXR5IiwgZ2VuZGVyfiAiR2VuZGVyIiwgZXRobmljXzMgfiAiRXRobmljaXR5IiwgbGFuZ18zIH4gIlByZWZlcnJlZCBMYW5ndWFnZSIsIHJfcGN0IH4gIlBlcmNlbnQgUmVidXBsaWNhbiIsIHJhY2VfNSB+ICJSYWNlIiwgbWF4X2NoIH4gIkNoYXJsc29uIENvbW9yYmlkaXR5IEluZGV4IiwgYWN0X3RvYiB+ICJBY3RpdmUgVG9iYWNjbyBVc2UiLCBJQyB+ICJJbW11bm9jb21wcm9taXNlZCIsIGluc3VyX3R5cGUgfiAiSW5zdXJhbmNlIFR5cGUiKSwgZXhwb25lbnRpYXRlID0gVFJVRSkKCiMgTW9kZWwgcGVyZm9ybWFuY2UgCm1vZGVsX3BlcmZvcm1hbmNlKEZsdTIwMTlfU1ZJX3F1YXJ0KQpwZXJmb3JtYW5jZTo6Y2hlY2tfbW9kZWwoRmx1MjAxOV9TVklfcXVhcnQsIHBhbmVsID0gVFJVRSkKCiMgTWFyZ2lucyAKY3Bsb3QoRmx1MjAxOV9TVklfcXVhcnQsICJSUExfNCIsIHdoYXQgPSAicHJlZGljdGlvbiIsIG1haW4gPSAiUHJlZGljdGVkIExpa2VsaWhvb2Qgb2YgRmx1IFZhY2NpbmUgR2l2ZW4gU1ZJIikKCgpgYGAKCiMgRmx1IDIwMTkgKyBBbGwgU1ZJIFRoZW1lcyAKYGBge3J9CkZsdTIwMTlfYWxsX3RoZW1lcyA8LSBnbG0oZmx1XzIwMTkgfiBpYmRfMyArIGFnZV95cnMgKyBnZW5kZXIgKyByYWNlXzUgKyBldGhuaWNfMyArIAogICAgICAgICAgICAgICAgICAgICAgbGFuZ18zICsgbXN0YXRfNSArIHJlbGlnX2FmZmlsICsgYWN0X3RvYiArIG1heF9jaCArIElDCiAgICAgICAgICAgICAgICAgICAgICArIHBvcF9kZW5zICsgcl9wY3QgKyBSUExfVEhFTUUxICsgUlBMX1RIRU1FMiArIFJQTF9USEVNRTMKICAgICAgICAgICAgICAgICAgICAgICsgUlBMX1RIRU1FNCwKICAgICAgICAgICAgICBmYW1pbHkgPSAiYmlub21pYWwiLAogICAgICAgICAgICAgIGRhdGEgPSBmbHVfY2xlYW4yKQpzdW1tYXJ5KEZsdTIwMTlfYWxsX3RoZW1lcyApCmJyb29tOjpnbGFuY2UoRmx1MjAxOV9hbGxfdGhlbWVzICkKYnJvb206OnRpZHkoRmx1MjAxOV9hbGxfdGhlbWVzICwgZXhwb25lbnRpYXRlID0gVFJVRSkKdGJsX3JlZ3Jlc3Npb24oRmx1MjAxOV9hbGxfdGhlbWVzLCBsYWJlbCA9IGxpc3QoaWJkXzMgfiAiSUJEIFR5cGUiLCBhZ2VfeXJzIH4gIkFnZSIsIHBvcF9kZW5zIH4gIlBvcHVsYXRpb24gZGVuc2l0eSIsIGdlbmRlcn4gIkdlbmRlciIsIGV0aG5pY18zIH4gIkV0aG5pY2l0eSIsIGxhbmdfMyB+ICJQcmVmZXJyZWQgTGFuZ3VhZ2UiLCByZWxpZ19hZmZpbCB+ICJBbnkgUmVsaWdpb3VzIEFmZmlsaWF0aW9uIiwgbXN0YXRfNSB+ICJNYXJpdGFsIFN0YXR1cyIsIHJfcGN0IH4gIlBlcmNlbnQgUmVidXBsaWNhbiIsIHJhY2VfNSB+ICJSYWNlIiwgbWF4X2NoIH4gIkNoYXJsc29uIENvbW9yYmlkaXR5IEluZGV4IiwgYWN0X3RvYiB+ICJBY3RpdmUgVG9iYWNjbyBVc2UiLCBSUExfVEhFTUUxIH4gIlNvY2Vpb2Vjb25vbWljIFN0YXR1cyIsIFJQTF9USEVNRTIgfiAiSG91c2Vob2xkIENvbXBvc2l0aW9uIiwgUlBMX1RIRU1FMyB+ICJNaW5vcml0eSBTdGF0dXMgYW5kIExhbmd1YWdlIiwgUlBMX1RIRU1FNCB+ICJIb3VzaW5nIGFuZCBUcmFuc3BvcnRhdGlvbiIpLCBleHBvbmVudGlhdGUgPSBUUlVFKQoKIyBNb2RlbCBwZXJmb3JtYW5jZSAKbW9kZWxfcGVyZm9ybWFuY2UoRmx1MjAxOV9hbGxfdGhlbWVzKQpwZXJmb3JtYW5jZTo6Y2hlY2tfbW9kZWwoRmx1MjAxOV9hbGxfdGhlbWVzLCBwYW5lbCA9IFRSVUUpCgojIE1hcmdpbnMgCmNwbG90KEZsdTIwMTlfYWxsX3RoZW1lcywgIlJQTF9USEVNRTEiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlByZWRpY3RlZCBMaWtlbGlob29kIG9mIEZsdSBWYWNjaW5lIEdpdmVuIFRIRU1FMSIpCmNwbG90KEZsdTIwMTlfYWxsX3RoZW1lcywgIlJQTF9USEVNRTIiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlByZWRpY3RlZCBMaWtlbGlob29kIG9mIEZsdSBWYWNjaW5lIEdpdmVuIFRIRU1FMiIpCmNwbG90KEZsdTIwMTlfYWxsX3RoZW1lcywgIlJQTF9USEVNRTMiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlByZWRpY3RlZCBMaWtlbGlob29kIG9mIEZsdSBWYWNjaW5lIEdpdmVuIFRIRU1FMyIpCmNwbG90KEZsdTIwMTlfYWxsX3RoZW1lcywgIlJQTF9USEVNRTQiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlByZWRpY3RlZCBMaWtlbGlob29kIG9mIEZsdSBWYWNjaW5lIEdpdmVuIFRIRU1FNCIpCmBgYAoK