Load Packages

library(tidyverse)
library(codebookr)
library(summarytools)
library(broom)
library(performance)
library(gt)
library(gtsummary)
library(janitor)
library(forcats)
library(here)
library(yaml)
library(margins)

Import Data


load("~/Desktop/R-Code/SDOH_ALL/mh_vax_co_sub.rda")
View(mh_vax_co_sub)

Baseline Characteristics

mh_vax_co_sub %>% 
  dplyr::select(age_yrs, gender, race_5, ethnic_3, lang_3, relig_affil, mstat_5, max_ch, anxiety_2, depression_2, act_tob, drug_use, etoh_use, RPL_THEMES, RPL_4, RPL_THEME1, RPL_THEME2, RPL_THEME3, RPL_THEME4) -> baseline
baseline %>% tbl_summary(label = list(age_yrs ~ "Age", gender~ "Gender", race_5 ~ "Race", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred 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", RPL_4 ~ "SVI Quartiles", anxiety_2 ~"Anxiety", depression_2 ~ "Depression", act_tob ~ "Active Tobacco Use", drug_use ~ "Drug Abuse", etoh_use ~ "Alcohol Abuse", max_ch ~ "Charlson Comorbidity Index"),
        statistic = list(all_continuous() ~ "{mean} ({sd})"),
        missing_text = "(Missing)")
Characteristic N = 15,2451
Age 49 (19)
Gender
    Male 6,973 (46%)
    Female 8,272 (54%)
Race
    White 13,230 (87%)
    Black 946 (6.2%)
    Other 638 (4.2%)
    Asian 375 (2.5%)
    Native 56 (0.4%)
Ethnicity
    NonHispanic 14,401 (98%)
    UNKNOWN 0 (0%)
    CHOOSE NOT TO DISCLOSE 0 (0%)
    Hispanic 302 (2.1%)
    (Missing) 542
Preferred Language
    English 15,081 (99%)
    Other 164 (1.1%)
Any Religious Affiliation
    Yes 8,211 (57%)
    No 6,085 (43%)
    PATIENT REFUSED 0 (0%)
    UNKNOWN 0 (0%)
    (Missing) 949
Marital Status
    Married 6,198 (41%)
    Unknown 3,236 (21%)
    Unmarried 4,997 (33%)
    DivorcedSeparated 507 (3.3%)
    Widow 307 (2.0%)
Charlson Comorbidity Index 3.3 (4.9)
    (Missing) 446
Anxiety 2,811 (18%)
Depression 2,606 (17%)
Active Tobacco Use
    No 12,612 (87%)
    Yes 1,890 (13%)
    NOT ASKED 0 (0%)
    (Missing) 743
Drug Abuse 581 (3.8%)
    (Missing) 41
Alcohol Abuse 233 (1.5%)
    (Missing) 41
Total SVI 0.37 (0.26)
    (Missing) 288
SVI Quartiles
    First 5,843 (39%)
    Second 4,506 (30%)
    Third 3,063 (20%)
    Fourth 1,545 (10%)
    (Missing) 288
Soceioeconomic Status 0.35 (0.26)
    (Missing) 338
Household Composition 0.40 (0.27)
    (Missing) 287
Minority Status and Language 0.48 (0.29)
    (Missing) 279
Housing and Transportation 0.44 (0.29)
    (Missing) 310
1 Mean (SD); n (%)

Baseline Characteristics by SVI

baseline %>% 
tbl_summary(by = RPL_4,
         label = list(age_yrs ~ "Age", gender~ "Gender", race_5 ~ "Race", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred 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", RPL_4 ~ "SVI Quartiles", anxiety_2 ~"Anxiety", depression_2 ~ "Depression", act_tob ~ "Active Tobacco Use", drug_use ~ "Drug Abuse", etoh_use ~ "Alcohol Abuse", max_ch ~ "Charlson Comorbidity Index"),
        statistic = list(all_continuous() ~ "{mean} ({sd})"),
        missing_text = "(Missing)") %>% add_p()
288 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 'relig_affil', p-value omitted:
Error in stats::fisher.test(structure(c(2L, NA, 1L, NA, 1L, 2L, 2L, 1L, : FEXACT error 6.  LDKEY=534 is too small for this problem,
  (ii := key2[itp=940] = 42828805, ldstp=16020)
Try increasing the size of the workspace and possibly 'mult'
There was an error in 'add_p()/add_difference()' for variable 'act_tob', p-value omitted:
Error in stats::fisher.test(structure(c(1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, : FEXACT error 6.  LDKEY=533 is too small for this problem,
  (ii := key2[itp=674] = 21415546, ldstp=15990)
Try increasing the size of the workspace and possibly 'mult'
Characteristic First, N = 5,8431 Second, N = 4,5061 Third, N = 3,0631 Fourth, N = 1,5451 p-value2
Age 49 (20) 50 (19) 50 (19) 48 (19) 0.007
Gender <0.001
    Male 2,761 (47%) 2,053 (46%) 1,305 (43%) 692 (45%)
    Female 3,082 (53%) 2,453 (54%) 1,758 (57%) 853 (55%)
Race <0.001
    White 5,301 (91%) 3,969 (88%) 2,627 (86%) 1,093 (71%)
    Black 139 (2.4%) 204 (4.5%) 239 (7.8%) 345 (22%)
    Other 236 (4.0%) 167 (3.7%) 122 (4.0%) 93 (6.0%)
    Asian 153 (2.6%) 142 (3.2%) 65 (2.1%) 7 (0.5%)
    Native 14 (0.2%) 24 (0.5%) 10 (0.3%) 7 (0.5%)
Ethnicity 0.007
    NonHispanic 5,525 (98%) 4,274 (98%) 2,897 (98%) 1,441 (97%)
    UNKNOWN 0 (0%) 0 (0%) 0 (0%) 0 (0%)
    CHOOSE NOT TO DISCLOSE 0 (0%) 0 (0%) 0 (0%) 0 (0%)
    Hispanic 100 (1.8%) 87 (2.0%) 60 (2.0%) 49 (3.3%)
    (Missing) 218 145 106 55
Preferred Language <0.001
    English 5,809 (99%) 4,454 (99%) 3,019 (99%) 1,513 (98%)
    Other 34 (0.6%) 52 (1.2%) 44 (1.4%) 32 (2.1%)
Any Religious Affiliation
    Yes 3,238 (59%) 2,403 (57%) 1,657 (58%) 779 (55%)
    No 2,286 (41%) 1,816 (43%) 1,205 (42%) 643 (45%)
    PATIENT REFUSED 0 (0%) 0 (0%) 0 (0%) 0 (0%)
    UNKNOWN 0 (0%) 0 (0%) 0 (0%) 0 (0%)
    (Missing) 319 287 201 123
Marital Status <0.001
    Married 2,700 (46%) 1,857 (41%) 1,115 (36%) 444 (29%)
    Unknown 1,137 (19%) 946 (21%) 705 (23%) 389 (25%)
    Unmarried 1,763 (30%) 1,434 (32%) 1,041 (34%) 620 (40%)
    DivorcedSeparated 133 (2.3%) 168 (3.7%) 128 (4.2%) 72 (4.7%)
    Widow 110 (1.9%) 101 (2.2%) 74 (2.4%) 20 (1.3%)
Charlson Comorbidity Index 3.2 (4.9) 3.4 (5.1) 3.4 (4.9) 3.3 (4.8) 0.020
    (Missing) 137 131 99 62
Anxiety 1,109 (19%) 864 (19%) 538 (18%) 268 (17%) 0.2
Depression 938 (16%) 805 (18%) 539 (18%) 297 (19%) 0.009
Active Tobacco Use
    No 5,137 (91%) 3,719 (87%) 2,394 (83%) 1,121 (78%)
    Yes 480 (8.5%) 570 (13%) 506 (17%) 309 (22%)
    NOT ASKED 0 (0%) 0 (0%) 0 (0%) 0 (0%)
    (Missing) 226 217 163 115
Drug Abuse 238 (4.1%) 170 (3.8%) 103 (3.4%) 59 (3.8%) 0.4
    (Missing) 11 11 16 1
Alcohol Abuse 79 (1.4%) 73 (1.6%) 50 (1.6%) 29 (1.9%) 0.4
    (Missing) 11 11 16 1
Total SVI 0.12 (0.07) 0.37 (0.07) 0.61 (0.07) 0.86 (0.07) <0.001
Soceioeconomic Status 0.13 (0.11) 0.34 (0.16) 0.56 (0.15) 0.78 (0.11) <0.001
    (Missing) 51 0 0 0
Household Composition 0.21 (0.14) 0.38 (0.22) 0.58 (0.24) 0.76 (0.19) <0.001
Minority Status and Language 0.41 (0.27) 0.47 (0.29) 0.52 (0.28) 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) 22 0 0 0
1 Mean (SD); n (%)
2 Kruskal-Wallis rank sum test; Pearson's Chi-squared test; Fisher's exact test

Bivariate Analysis

Tobacco Use

tbl_uv_tobac <-
  tbl_uvregression(
    mh_vax_co_sub[c("act_tob", "age_yrs", "gender", "race_5", "ethnic_3", "lang_3", "relig_affil", "mstat_5", "max_ch", "anxiety_2", "depression_2", "RPL_THEMES",  "RPL_THEME1", "RPL_THEME2",  "RPL_THEME3", "RPL_THEME4")],
    method = glm,
    y = act_tob,
    method.args = list(family = binomial),
    exponentiate = TRUE,
    label = list(age_yrs ~ "Age", gender~ "Gender", race_5 ~ "Race", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred 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", anxiety_2 ~"Anxiety", depression_2 ~ "Depression", max_ch ~ "Charlson Comorbidity Index"))
    
print(tbl_uv_tobac, method = render)
`...` must be empty.
✖ Problematic argument:
• method = render
Characteristic N OR1 95% CI1 p-value
Age 14,502 1.00 0.99, 1.00 <0.001
Gender 14,502
    Male — —
    Female 1.01 0.91, 1.11 0.9
Race 14,502
    White — —
    Black 1.41 1.17, 1.69 <0.001
    Other 0.92 0.71, 1.17 0.5
    Asian 0.19 0.10, 0.34 <0.001
    Native 0.99 0.41, 2.06 >0.9
Ethnicity 14,036
    NonHispanic — —
    Hispanic 0.82 0.55, 1.16 0.3
Preferred Language 14,502
    English — —
    Other 0.61 0.33, 1.04 0.092
Any Religious Affiliation 13,668
    Yes — —
    No 1.25 1.13, 1.38 <0.001
Marital Status 14,502
    Married — —
    Unknown 1.34 1.17, 1.53 <0.001
    Unmarried 1.70 1.51, 1.91 <0.001
    DivorcedSeparated 3.16 2.53, 3.93 <0.001
    Widow 1.32 0.91, 1.86 0.12
Charlson Comorbidity Index 14,302 0.99 0.97, 1.00 0.004
Anxiety 14,502 1.36 1.21, 1.52 <0.001
Depression 14,502 1.46 1.30, 1.64 <0.001
Total SVI 14,236 4.37 3.63, 5.25 <0.001
Soceioeconomic Status 14,188 5.46 4.53, 6.57 <0.001
Household Composition 14,237 3.35 2.80, 4.01 <0.001
Minority Status and Language 14,244 0.87 0.73, 1.03 0.11
Housing and Transportation 14,214 2.24 1.89, 2.65 <0.001
1 OR = Odds Ratio, CI = Confidence Interval
NULL

Drug Abuse

tbl_uv_drug <-
  tbl_uvregression(
    mh_vax_co_sub[c("drug_use", "age_yrs", "gender", "race_5", "ethnic_3", "lang_3", "relig_affil", "mstat_5", "max_ch", "anxiety_2", "depression_2", "RPL_THEMES",  "RPL_THEME1", "RPL_THEME2",  "RPL_THEME3", "RPL_THEME4")],
    method = glm,
    y = drug_use,
    method.args = list(family = binomial),
    exponentiate = TRUE,
    label = list(age_yrs ~ "Age", gender~ "Gender", race_5 ~ "Race", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred 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", anxiety_2 ~"Anxiety", depression_2 ~ "Depression", max_ch ~ "Charlson Comorbidity Index"))
    
print(tbl_uv_drug, method = render)
`...` must be empty.
✖ Problematic argument:
• method = render
Characteristic N OR1 95% CI1 p-value
Age 15,204 1.00 1.0, 1.00 0.6
Gender 15,204
    Male — —
    Female 0.87 0.73, 1.02 0.089
Race 15,204
    White — —
    Black 0.81 0.54, 1.15 0.3
    Other 0.97 0.62, 1.44 0.9
    Asian 0.82 0.43, 1.40 0.5
    Native 0.45 0.03, 2.04 0.4
Ethnicity 14,664
    NonHispanic — —
    Hispanic 0.86 0.43, 1.55 0.7
Preferred Language 15,204
    English — —
    Other 0.97 0.38, 2.01 >0.9
Any Religious Affiliation 14,261
    Yes — —
    No 1.06 0.89, 1.26 0.5
Marital Status 15,204
    Married — —
    Unknown 0.81 0.64, 1.02 0.072
    Unmarried 0.96 0.80, 1.17 0.7
    DivorcedSeparated 0.91 0.55, 1.43 0.7
    Widow 0.31 0.10, 0.73 0.021
Charlson Comorbidity Index 14,767 1.00 0.98, 1.02 0.8
Anxiety 15,204 0.85 0.67, 1.06 0.15
Depression 15,204 0.81 0.64, 1.02 0.083
Total SVI 14,918 0.79 0.57, 1.09 0.2
Soceioeconomic Status 14,868 0.87 0.62, 1.21 0.4
Household Composition 14,919 0.88 0.64, 1.21 0.4
Minority Status and Language 14,927 0.88 0.66, 1.18 0.4
Housing and Transportation 14,896 0.80 0.59, 1.07 0.13
1 OR = Odds Ratio, CI = Confidence Interval
NULL

Alcohol Abuse

tbl_uv_etoh <-
  tbl_uvregression(
    mh_vax_co_sub[c("etoh_use", "age_yrs", "gender", "race_5", "ethnic_3", "lang_3", "relig_affil", "mstat_5", "max_ch", "anxiety_2", "depression_2", "RPL_THEMES",  "RPL_THEME1", "RPL_THEME2",  "RPL_THEME3", "RPL_THEME4")],
    method = glm,
    y = etoh_use,
    method.args = list(family = binomial),
    exponentiate = TRUE,
    label = list(age_yrs ~ "Age", gender~ "Gender", race_5 ~ "Race", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred 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", anxiety_2 ~"Anxiety", depression_2 ~ "Depression", max_ch ~ "Charlson Comorbidity Index"))
    
print(tbl_uv_etoh, method = render)
`...` must be empty.
✖ Problematic argument:
• method = render
Characteristic N OR1 95% CI1 p-value
Age 15,204 1.00 0.99, 1.00 0.2
Gender 15,204
    Male — —
    Female 0.86 0.67, 1.12 0.3
Race 15,204
    White — —
    Black 1.49 0.91, 2.31 0.094
    Other 1.89 1.10, 3.04 0.013
    Asian 1.12 0.44, 2.33 0.8
    Native 1.25 0.07, 5.73 0.8
Ethnicity 14,664
    NonHispanic — —
    Hispanic 2.03 0.96, 3.76 0.041
Preferred Language 15,204
    English — —
    Other 1.22 0.30, 3.23 0.7
Any Religious Affiliation 14,261
    Yes — —
    No 0.89 0.68, 1.17 0.4
Marital Status 15,204
    Married — —
    Unknown 0.99 0.69, 1.41 >0.9
    Unmarried 1.20 0.89, 1.62 0.2
    DivorcedSeparated 0.82 0.32, 1.73 0.6
    Widow 1.37 0.53, 2.90 0.5
Charlson Comorbidity Index 14,767 1.01 0.98, 1.04 0.4
Anxiety 15,204 1.34 0.98, 1.81 0.063
Depression 15,204 1.29 0.93, 1.76 0.11
Total SVI 14,918 1.51 0.92, 2.47 0.10
Soceioeconomic Status 14,868 1.25 0.75, 2.06 0.4
Household Composition 14,919 1.40 0.86, 2.25 0.2
Minority Status and Language 14,927 1.32 0.84, 2.09 0.2
Housing and Transportation 14,896 1.26 0.80, 1.98 0.3
1 OR = Odds Ratio, CI = Confidence Interval
NULL

Active Tobacco: Multivariable Models

Active tobacco + RPL_THEMES

tobac1 <- glm(act_tob ~ age_yrs + gender + race_5 + ethnic_3 + lang_3 + mstat_5 + relig_affil + 
                max_ch + anxiety_2 + depression_2 + RPL_THEMES,
              family = "binomial",
              data = mh_vax_co_sub)
summary(tobac1)

Call:
glm(formula = act_tob ~ age_yrs + gender + race_5 + ethnic_3 + 
    lang_3 + mstat_5 + relig_affil + max_ch + anxiety_2 + depression_2 + 
    RPL_THEMES, family = "binomial", data = mh_vax_co_sub)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.1546  -0.5596  -0.4644  -0.3785   3.1348  

Coefficients:
                           Estimate Std. Error z value Pr(>|z|)    
(Intercept)              -2.7344071  0.1224732 -22.327  < 2e-16 ***
age_yrs                  -0.0005484  0.0017937  -0.306 0.759820    
genderFemale             -0.1039828  0.0550894  -1.888 0.059089 .  
race_5Black              -0.0406304  0.1028452  -0.395 0.692796    
race_5Other              -0.0036124  0.1668531  -0.022 0.982727    
race_5Asian              -2.0908763  0.4535819  -4.610 4.03e-06 ***
race_5Native             -0.5664562  0.5287427  -1.071 0.284022    
ethnic_3Hispanic         -0.3128105  0.2135729  -1.465 0.143015    
lang_3Other              -0.3013680  0.3468955  -0.869 0.384980    
mstat_5Unknown            0.1496898  0.0781349   1.916 0.055392 .  
mstat_5Unmarried          0.3995811  0.0720074   5.549 2.87e-08 ***
mstat_5DivorcedSeparated  0.9865255  0.1216488   8.110 5.08e-16 ***
mstat_5Widow              0.3490334  0.1922636   1.815 0.069464 .  
relig_affilNo             0.1694701  0.0552203   3.069 0.002148 ** 
max_ch                   -0.0117714  0.0062699  -1.877 0.060457 .  
anxiety_2                 0.2386917  0.0719469   3.318 0.000908 ***
depression_2              0.2701222  0.0730716   3.697 0.000218 ***
RPL_THEMES                1.3922157  0.1041556  13.367  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 9892.5  on 12927  degrees of freedom
Residual deviance: 9462.0  on 12910  degrees of freedom
  (2317 observations deleted due to missingness)
AIC: 9498

Number of Fisher Scoring iterations: 6
broom::glance(tobac1)
broom::tidy(tobac1, exponentiate = TRUE)
tbl_regression(tobac1, label = list(age_yrs ~ "Age", gender~ "Gender", race_5 ~ "Race", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", RPL_THEMES ~ "Total SVI", anxiety_2 ~"Anxiety", depression_2 ~ "Depression", max_ch ~ "Charlson Comorbidity Index", mstat_5 ~ "Marital Status", relig_affil ~ "Any Religious Affiliation"), exponentiate = TRUE)
Characteristic OR1 95% CI1 p-value
Age 1.00 1.00, 1.00 0.8
Gender
    Male — —
    Female 0.90 0.81, 1.00 0.059
Race
    White — —
    Black 0.96 0.78, 1.17 0.7
    Other 1.00 0.71, 1.37 >0.9
    Asian 0.12 0.04, 0.27 <0.001
    Native 0.57 0.17, 1.42 0.3
Ethnicity
    NonHispanic — —
    Hispanic 0.73 0.47, 1.09 0.14
Preferred Language
    English — —
    Other 0.74 0.35, 1.39 0.4
Marital Status
    Married — —
    Unknown 1.16 1.00, 1.35 0.055
    Unmarried 1.49 1.30, 1.72 <0.001
    DivorcedSeparated 2.68 2.11, 3.39 <0.001
    Widow 1.42 0.96, 2.04 0.069
Any Religious Affiliation
    Yes — —
    No 1.18 1.06, 1.32 0.002
Charlson Comorbidity Index 0.99 0.98, 1.00 0.060
Anxiety 1.27 1.10, 1.46 <0.001
Depression 1.31 1.13, 1.51 <0.001
Total SVI 4.02 3.28, 4.94 <0.001
1 OR = Odds Ratio, CI = Confidence Interval

## Model performance
model_performance(tobac1)
# Indices of model performance

AIC      |      BIC | Tjur's R2 |  RMSE | Sigma | Log_loss | Score_log | Score_spherical |   PCP
------------------------------------------------------------------------------------------------
9497.991 | 9632.400 |     0.035 | 0.328 | 0.856 |    0.366 |      -Inf |       2.191e-04 | 0.784
performance::check_model(tobac1, panel = TRUE)


## Margins
cplot(tobac1, "RPL_THEMES", what = "prediction", main = "Percent Likelihood of Tobacco Use Given SVI")

Active tobacco + RPL_4

tobac1 <- glm(act_tob ~ age_yrs + gender + race_5 + ethnic_3 + lang_3 + mstat_5 + relig_affil + 
                max_ch + anxiety_2 + depression_2 + RPL_4,
              family = "binomial",
              data = mh_vax_co_sub)
summary(tobac1)

Call:
glm(formula = act_tob ~ age_yrs + gender + race_5 + ethnic_3 + 
    lang_3 + mstat_5 + relig_affil + max_ch + anxiety_2 + depression_2 + 
    RPL_4, family = "binomial", data = mh_vax_co_sub)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.0978  -0.5652  -0.4657  -0.3707   3.1279  

Coefficients:
                           Estimate Std. Error z value Pr(>|z|)    
(Intercept)              -2.6242252  0.1224909 -21.424  < 2e-16 ***
age_yrs                  -0.0004855  0.0017919  -0.271 0.786448    
genderFemale             -0.1044869  0.0550697  -1.897 0.057781 .  
race_5Black               0.0080401  0.1028158   0.078 0.937670    
race_5Other               0.0110039  0.1667656   0.066 0.947390    
race_5Asian              -2.1170466  0.4535899  -4.667 3.05e-06 ***
race_5Native             -0.5642900  0.5290969  -1.067 0.286191    
ethnic_3Hispanic         -0.3036124  0.2131589  -1.424 0.154346    
lang_3Other              -0.2789519  0.3464783  -0.805 0.420758    
mstat_5Unknown            0.1572696  0.0780365   2.015 0.043870 *  
mstat_5Unmarried          0.4061081  0.0719519   5.644 1.66e-08 ***
mstat_5DivorcedSeparated  0.9972110  0.1214716   8.209 2.22e-16 ***
mstat_5Widow              0.3527038  0.1921977   1.835 0.066489 .  
relig_affilNo             0.1675057  0.0551936   3.035 0.002406 ** 
max_ch                   -0.0121584  0.0062673  -1.940 0.052384 .  
anxiety_2                 0.2376703  0.0718769   3.307 0.000944 ***
depression_2              0.2734764  0.0729932   3.747 0.000179 ***
RPL_4Second               0.4772741  0.0697810   6.840 7.94e-12 ***
RPL_4Third                0.7296290  0.0739834   9.862  < 2e-16 ***
RPL_4Fourth               1.0288209  0.0881562  11.670  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 9892.5  on 12927  degrees of freedom
Residual deviance: 9470.9  on 12908  degrees of freedom
  (2317 observations deleted due to missingness)
AIC: 9510.9

Number of Fisher Scoring iterations: 6
broom::glance(tobac1)
broom::tidy(tobac1, exponentiate = TRUE)
tbl_regression(tobac1, label = list(age_yrs ~ "Age", gender~ "Gender", race_5 ~ "Race", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", RPL_4 ~ "SVI Quartile", anxiety_2 ~"Anxiety", depression_2 ~ "Depression", max_ch ~ "Charlson Comorbidity Index", mstat_5 ~ "Marital Status", relig_affil ~ "Any Religious Affiliation"), exponentiate = TRUE)
Characteristic OR1 95% CI1 p-value
Age 1.00 1.00, 1.00 0.8
Gender
    Male — —
    Female 0.90 0.81, 1.00 0.058
Race
    White — —
    Black 1.01 0.82, 1.23 >0.9
    Other 1.01 0.72, 1.39 >0.9
    Asian 0.12 0.04, 0.26 <0.001
    Native 0.57 0.17, 1.43 0.3
Ethnicity
    NonHispanic — —
    Hispanic 0.74 0.48, 1.10 0.2
Preferred Language
    English — —
    Other 0.76 0.36, 1.42 0.4
Marital Status
    Married — —
    Unknown 1.17 1.00, 1.36 0.044
    Unmarried 1.50 1.30, 1.73 <0.001
    DivorcedSeparated 2.71 2.13, 3.43 <0.001
    Widow 1.42 0.96, 2.05 0.066
Any Religious Affiliation
    Yes — —
    No 1.18 1.06, 1.32 0.002
Charlson Comorbidity Index 0.99 0.98, 1.00 0.052
Anxiety 1.27 1.10, 1.46 <0.001
Depression 1.31 1.14, 1.52 <0.001
SVI Quartile
    First — —
    Second 1.61 1.41, 1.85 <0.001
    Third 2.07 1.79, 2.40 <0.001
    Fourth 2.80 2.35, 3.32 <0.001
1 OR = Odds Ratio, CI = Confidence Interval

## Model performance
model_performance(tobac1)
# Indices of model performance

AIC      |      BIC | Tjur's R2 |  RMSE | Sigma | Log_loss | Score_log | Score_spherical |   PCP
------------------------------------------------------------------------------------------------
9510.850 | 9660.194 |     0.034 | 0.329 | 0.857 |    0.366 |      -Inf |       2.644e-04 | 0.784
performance::check_model(tobac1, panel = TRUE)


## Margins
cplot(tobac1, "RPL_4", what = "prediction", main = "Percent Likelihood of Tobacco Use Given SVI Quartile")

Active Tobacco + All Themes

tobac3 <- glm(act_tob ~ age_yrs + gender + race_5 + ethnic_3 + lang_3 + mstat_5 + relig_affil + 
                max_ch + anxiety_2 + depression_2 + RPL_THEME1 + RPL_THEME2 + RPL_THEME3 + 
                RPL_THEME4,
              family = "binomial",
              data = mh_vax_co_sub)
summary(tobac3)

Call:
glm(formula = act_tob ~ age_yrs + gender + race_5 + ethnic_3 + 
    lang_3 + mstat_5 + relig_affil + max_ch + anxiety_2 + depression_2 + 
    RPL_THEME1 + RPL_THEME2 + RPL_THEME3 + RPL_THEME4, family = "binomial", 
    data = mh_vax_co_sub)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.1657  -0.5615  -0.4551  -0.3672   3.0537  

Coefficients:
                           Estimate Std. Error z value Pr(>|z|)    
(Intercept)              -2.6939773  0.1336030 -20.164  < 2e-16 ***
age_yrs                  -0.0007259  0.0018060  -0.402 0.687743    
genderFemale             -0.1042769  0.0553267  -1.885 0.059464 .  
race_5Black              -0.0396828  0.1056774  -0.376 0.707282    
race_5Other               0.0247467  0.1682359   0.147 0.883057    
race_5Asian              -1.9135268  0.4549148  -4.206 2.60e-05 ***
race_5Native             -0.5922414  0.5305655  -1.116 0.264317    
ethnic_3Hispanic         -0.2905460  0.2144564  -1.355 0.175481    
lang_3Other              -0.3229906  0.3500543  -0.923 0.356170    
mstat_5Unknown            0.1358057  0.0784008   1.732 0.083238 .  
mstat_5Unmarried          0.3972267  0.0724874   5.480 4.25e-08 ***
mstat_5DivorcedSeparated  0.9814360  0.1221755   8.033 9.51e-16 ***
mstat_5Widow              0.3626886  0.1929289   1.880 0.060121 .  
relig_affilNo             0.1611219  0.0555181   2.902 0.003706 ** 
max_ch                   -0.0116566  0.0062858  -1.854 0.063676 .  
anxiety_2                 0.2538062  0.0722915   3.511 0.000447 ***
depression_2              0.2605652  0.0733944   3.550 0.000385 ***
RPL_THEME1                1.5729772  0.1516096  10.375  < 2e-16 ***
RPL_THEME2                0.1598526  0.1303013   1.227 0.219901    
RPL_THEME3               -0.2359623  0.0997179  -2.366 0.017967 *  
RPL_THEME4               -0.0584157  0.1115246  -0.524 0.600423    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 9858.5  on 12859  degrees of freedom
Residual deviance: 9364.7  on 12839  degrees of freedom
  (2385 observations deleted due to missingness)
AIC: 9406.7

Number of Fisher Scoring iterations: 6
broom::glance(tobac3)
broom::tidy(tobac3, exponentiate = TRUE)
tbl_regression(tobac3, label = list(age_yrs ~ "Age", gender~ "Gender", race_5 ~ "Race", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", anxiety_2 ~"Anxiety", depression_2 ~ "Depression", max_ch ~ "Charlson Comorbidity Index", mstat_5 ~ "Marital Status", relig_affil ~ "Any Religious Affiliation", RPL_THEME1 ~ "Soceioeconomic Status", RPL_THEME2 ~ "Household Composition", RPL_THEME3 ~ "Minority Status and Language", RPL_THEME4 ~ "Housing and Transportation"), exponentiate = TRUE)
Characteristic OR1 95% CI1 p-value
Age 1.00 1.00, 1.00 0.7
Gender
    Male — —
    Female 0.90 0.81, 1.00 0.059
Race
    White — —
    Black 0.96 0.78, 1.18 0.7
    Other 1.03 0.73, 1.41 0.9
    Asian 0.15 0.05, 0.32 <0.001
    Native 0.55 0.16, 1.39 0.3
Ethnicity
    NonHispanic — —
    Hispanic 0.75 0.48, 1.12 0.2
Preferred Language
    English — —
    Other 0.72 0.34, 1.37 0.4
Marital Status
    Married — —
    Unknown 1.15 0.98, 1.34 0.083
    Unmarried 1.49 1.29, 1.72 <0.001
    DivorcedSeparated 2.67 2.09, 3.38 <0.001
    Widow 1.44 0.97, 2.07 0.060
Any Religious Affiliation
    Yes — —
    No 1.17 1.05, 1.31 0.004
Charlson Comorbidity Index 0.99 0.98, 1.00 0.064
Anxiety 1.29 1.12, 1.48 <0.001
Depression 1.30 1.12, 1.50 <0.001
Soceioeconomic Status 4.82 3.58, 6.49 <0.001
Household Composition 1.17 0.91, 1.52 0.2
Minority Status and Language 0.79 0.65, 0.96 0.018
Housing and Transportation 0.94 0.76, 1.17 0.6
1 OR = Odds Ratio, CI = Confidence Interval

## Model performance
model_performance(tobac3)
# Indices of model performance

AIC      |      BIC | Tjur's R2 |  RMSE | Sigma | Log_loss | Score_log | Score_spherical |   PCP
------------------------------------------------------------------------------------------------
9406.734 | 9563.433 |     0.040 | 0.328 | 0.854 |    0.364 |      -Inf |       2.976e-04 | 0.785
performance::check_model(tobac3, panel = TRUE)


## Margins
cplot(tobac3, "RPL_THEME1", what = "prediction", main = "Percent Likelihood of Tobacco Use Given THEME1")

cplot(tobac3, "RPL_THEME2", what = "prediction", main = "Percent Likelihood of Tobacco Use Given THEME2")

cplot(tobac3, "RPL_THEME3", what = "prediction", main = "Percent Likelihood of Tobacco Use Given THEME3")

cplot(tobac3, "RPL_THEME4", what = "prediction", main = "Percent Likelihood of Tobacco Use Given THEME4")

Drug Use: Multivariable Models

Drug Use + RPL_THEMES

# removing mstat_5 and relig_affil because of missing data and made no difference in bivariate models 

drug1 <- glm(drug_use ~ age_yrs + gender + race_5 + ethnic_3 + lang_3  + 
                max_ch + anxiety_2 + depression_2 + RPL_THEMES,
              family = "binomial",
              data = mh_vax_co_sub)
summary(drug1)

Call:
glm(formula = drug_use ~ age_yrs + gender + race_5 + ethnic_3 + 
    lang_3 + max_ch + anxiety_2 + depression_2 + RPL_THEMES, 
    family = "binomial", data = mh_vax_co_sub)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-0.3411  -0.2902  -0.2792  -0.2611   2.7816  

Coefficients:
                  Estimate Std. Error z value Pr(>|z|)    
(Intercept)      -3.004854   0.146927 -20.451   <2e-16 ***
age_yrs          -0.001767   0.002591  -0.682    0.495    
genderFemale     -0.064396   0.090098  -0.715    0.475    
race_5Black      -0.180515   0.206165  -0.876    0.381    
race_5Other       0.021861   0.267822   0.082    0.935    
race_5Asian      -0.276892   0.317107  -0.873    0.383    
race_5Native     -0.655670   1.011507  -0.648    0.517    
ethnic_3Hispanic -0.128914   0.344136  -0.375    0.708    
lang_3Other       0.222463   0.436085   0.510    0.610    
max_ch            0.008666   0.010003   0.866    0.386    
anxiety_2        -0.140645   0.134423  -1.046    0.295    
depression_2     -0.190106   0.140475  -1.353    0.176    
RPL_THEMES       -0.197675   0.179580  -1.101    0.271    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 4491.7  on 14013  degrees of freedom
Residual deviance: 4480.8  on 14001  degrees of freedom
  (1231 observations deleted due to missingness)
AIC: 4506.8

Number of Fisher Scoring iterations: 6
broom::glance(drug1)
broom::tidy(drug1, exponentiate = TRUE)
tbl_regression(drug1, label = list(age_yrs ~ "Age", gender~ "Gender", race_5 ~ "Race", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", RPL_THEMES ~ "Total SVI", anxiety_2 ~"Anxiety", depression_2 ~ "Depression", max_ch ~ "Charlson Comorbidity Index"), exponentiate = TRUE)
Characteristic OR1 95% CI1 p-value
Age 1.00 0.99, 1.00 0.5
Gender
    Male — —
    Female 0.94 0.79, 1.12 0.5
Race
    White — —
    Black 0.83 0.55, 1.23 0.4
    Other 1.02 0.58, 1.68 >0.9
    Asian 0.76 0.38, 1.34 0.4
    Native 0.52 0.03, 2.38 0.5
Ethnicity
    NonHispanic — —
    Hispanic 0.88 0.42, 1.64 0.7
Preferred Language
    English — —
    Other 1.25 0.48, 2.71 0.6
Charlson Comorbidity Index 1.01 0.99, 1.03 0.4
Anxiety 0.87 0.66, 1.12 0.3
Depression 0.83 0.62, 1.08 0.2
Total SVI 0.82 0.58, 1.16 0.3
1 OR = Odds Ratio, CI = Confidence Interval

## Model performance
model_performance(drug1)
# Indices of model performance

AIC      |      BIC | Tjur's R2 |  RMSE | Sigma | Log_loss | Score_log | Score_spherical |   PCP
------------------------------------------------------------------------------------------------
4506.821 | 4604.943 | 7.427e-04 | 0.190 | 0.566 |    0.160 |   -20.094 |       3.328e-04 | 0.928
performance::check_model(drug1, panel = TRUE)


## Margins
cplot(drug1, "RPL_THEMES", what = "prediction", main = "Percent Likelihood of Drug Use Given SVI")

Drug Use + SVI Quartiles

# removing mstat_5 and relig_affil because of missing data and made no difference in bivariate models 

drug2 <- glm(drug_use ~ age_yrs + gender + race_5 + ethnic_3 + lang_3  + 
                max_ch + anxiety_2 + depression_2 + RPL_4,
              family = "binomial",
              data = mh_vax_co_sub)
summary(drug2)

Call:
glm(formula = drug_use ~ age_yrs + gender + race_5 + ethnic_3 + 
    lang_3 + max_ch + anxiety_2 + depression_2 + RPL_4, family = "binomial", 
    data = mh_vax_co_sub)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-0.3515  -0.2923  -0.2782  -0.2598   2.7837  

Coefficients:
                  Estimate Std. Error z value Pr(>|z|)    
(Intercept)      -3.016296   0.143057 -21.085   <2e-16 ***
age_yrs          -0.001717   0.002591  -0.662   0.5077    
genderFemale     -0.061716   0.090134  -0.685   0.4935    
race_5Black      -0.220622   0.207305  -1.064   0.2872    
race_5Other       0.011359   0.267880   0.042   0.9662    
race_5Asian      -0.265612   0.317023  -0.838   0.4021    
race_5Native     -0.660386   1.011580  -0.653   0.5139    
ethnic_3Hispanic -0.134459   0.344073  -0.391   0.6960    
lang_3Other       0.213916   0.436021   0.491   0.6237    
max_ch            0.008653   0.010003   0.865   0.3870    
anxiety_2        -0.140693   0.134437  -1.047   0.2953    
depression_2     -0.192232   0.140493  -1.368   0.1712    
RPL_4Second      -0.069438   0.106448  -0.652   0.5142    
RPL_4Third       -0.208384   0.126407  -1.649   0.0992 .  
RPL_4Fourth      -0.008374   0.158522  -0.053   0.9579    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 4491.7  on 14013  degrees of freedom
Residual deviance: 4479.1  on 13999  degrees of freedom
  (1231 observations deleted due to missingness)
AIC: 4509.1

Number of Fisher Scoring iterations: 6
broom::glance(drug2)
broom::tidy(drug2, exponentiate = TRUE)
tbl_regression(drug2, label = list(age_yrs ~ "Age", gender~ "Gender", race_5 ~ "Race", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", RPL_4 ~ "SVI Quartile", anxiety_2 ~"Anxiety", depression_2 ~ "Depression", max_ch ~ "Charlson Comorbidity Index"), exponentiate = TRUE)
Characteristic OR1 95% CI1 p-value
Age 1.00 0.99, 1.00 0.5
Gender
    Male — —
    Female 0.94 0.79, 1.12 0.5
Race
    White — —
    Black 0.80 0.52, 1.18 0.3
    Other 1.01 0.58, 1.66 >0.9
    Asian 0.77 0.39, 1.36 0.4
    Native 0.52 0.03, 2.37 0.5
Ethnicity
    NonHispanic — —
    Hispanic 0.87 0.42, 1.63 0.7
Preferred Language
    English — —
    Other 1.24 0.47, 2.69 0.6
Charlson Comorbidity Index 1.01 0.99, 1.03 0.4
Anxiety 0.87 0.66, 1.12 0.3
Depression 0.83 0.62, 1.08 0.2
SVI Quartile
    First — —
    Second 0.93 0.76, 1.15 0.5
    Third 0.81 0.63, 1.04 0.10
    Fourth 0.99 0.72, 1.34 >0.9
1 OR = Odds Ratio, CI = Confidence Interval

## Model performance
model_performance(drug2)
# Indices of model performance

AIC      |      BIC | Tjur's R2 |  RMSE | Sigma | Log_loss | Score_log | Score_spherical |   PCP
------------------------------------------------------------------------------------------------
4509.075 | 4622.292 | 8.632e-04 | 0.190 | 0.566 |    0.160 |   -20.095 |       3.812e-04 | 0.928
performance::check_model(drug2, panel = TRUE)


## Margins
cplot(drug2, "RPL_4", what = "prediction", main = "Percent Likelihood of Drug Use Given SVI")

Drug Use + All Themes

drug3 <- glm(act_tob ~ age_yrs + gender + race_5 + ethnic_3 + lang_3  + 
                max_ch + anxiety_2 + depression_2 + RPL_THEME1 + RPL_THEME2 + RPL_THEME3 + 
                RPL_THEME4,
              family = "binomial",
              data = mh_vax_co_sub)
summary(drug3)

Call:
glm(formula = act_tob ~ age_yrs + gender + race_5 + ethnic_3 + 
    lang_3 + max_ch + anxiety_2 + depression_2 + RPL_THEME1 + 
    RPL_THEME2 + RPL_THEME3 + RPL_THEME4, family = "binomial", 
    data = mh_vax_co_sub)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.0331  -0.5682  -0.4646  -0.3895   2.9316  

Coefficients:
                  Estimate Std. Error z value Pr(>|z|)    
(Intercept)      -2.291944   0.103316 -22.184  < 2e-16 ***
age_yrs          -0.003936   0.001538  -2.559 0.010507 *  
genderFemale     -0.066116   0.052934  -1.249 0.211659    
race_5Black      -0.030714   0.102028  -0.301 0.763387    
race_5Other      -0.006250   0.159810  -0.039 0.968806    
race_5Asian      -1.562477   0.362496  -4.310 1.63e-05 ***
race_5Native     -0.703962   0.528518  -1.332 0.182876    
ethnic_3Hispanic -0.251818   0.203988  -1.234 0.217026    
lang_3Other      -0.284355   0.320410  -0.887 0.374826    
max_ch           -0.014111   0.006115  -2.307 0.021031 *  
anxiety_2         0.244696   0.070314   3.480 0.000501 ***
depression_2      0.275414   0.071388   3.858 0.000114 ***
RPL_THEME1        1.610667   0.145762  11.050  < 2e-16 ***
RPL_THEME2        0.193119   0.125365   1.540 0.123451    
RPL_THEME3       -0.220446   0.096098  -2.294 0.021792 *  
RPL_THEME4       -0.025414   0.107348  -0.237 0.812853    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 10497  on 13540  degrees of freedom
Residual deviance: 10074  on 13525  degrees of freedom
  (1704 observations deleted due to missingness)
AIC: 10106

Number of Fisher Scoring iterations: 6
broom::glance(drug3)
broom::tidy(drug3, exponentiate = TRUE)
tbl_regression(drug3, label = list(age_yrs ~ "Age", gender~ "Gender", race_5 ~ "Race", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", anxiety_2 ~"Anxiety", depression_2 ~ "Depression", max_ch ~ "Charlson Comorbidity Index", RPL_THEME1 ~ "Soceioeconomic Status", RPL_THEME2 ~ "Household Composition", RPL_THEME3 ~ "Minority Status and Language", RPL_THEME4 ~ "Housing and Transportation"), exponentiate = TRUE)
Characteristic OR1 95% CI1 p-value
Age 1.00 0.99, 1.00 0.011
Gender
    Male — —
    Female 0.94 0.84, 1.04 0.2
Race
    White — —
    Black 0.97 0.79, 1.18 0.8
    Other 0.99 0.72, 1.35 >0.9
    Asian 0.21 0.09, 0.40 <0.001
    Native 0.49 0.15, 1.24 0.2
Ethnicity
    NonHispanic — —
    Hispanic 0.78 0.51, 1.14 0.2
Preferred Language
    English — —
    Other 0.75 0.38, 1.36 0.4
Charlson Comorbidity Index 0.99 0.97, 1.00 0.021
Anxiety 1.28 1.11, 1.46 <0.001
Depression 1.32 1.14, 1.51 <0.001
Soceioeconomic Status 5.01 3.76, 6.66 <0.001
Household Composition 1.21 0.95, 1.55 0.12
Minority Status and Language 0.80 0.66, 0.97 0.022
Housing and Transportation 0.97 0.79, 1.20 0.8
1 OR = Odds Ratio, CI = Confidence Interval

## Model performance
model_performance(drug3)
# Indices of model performance

AIC       |       BIC | Tjur's R2 |  RMSE | Sigma | Log_loss | Score_log | Score_spherical |   PCP
--------------------------------------------------------------------------------------------------
10106.174 | 10226.389 |     0.032 | 0.332 | 0.863 |    0.372 |      -Inf |       2.283e-04 | 0.780
performance::check_model(drug3, panel = TRUE)


## Margins
cplot(drug3, "RPL_THEME1", what = "prediction", main = "Percent Likelihood of Drug Use Given THEME1")

cplot(drug3, "RPL_THEME2", what = "prediction", main = "Percent Likelihood of Drug Use Given THEME2")

cplot(drug3, "RPL_THEME3", what = "prediction", main = "Percent Likelihood of Drug Use Given THEME3")

cplot(drug3, "RPL_THEME4", what = "prediction", main = "Percent Likelihood of Drug Use Given THEME4")

Sensitivity analysis including mstat and relig_affil

drug4 <- glm(act_tob ~ age_yrs + gender + race_5 + ethnic_3 + lang_3  + mstat_5 + relig_affil +
                max_ch + anxiety_2 + depression_2 + RPL_THEME1 + RPL_THEME2 + RPL_THEME3 + 
                RPL_THEME4,
              family = "binomial",
              data = mh_vax_co_sub)
summary(drug4)

Call:
glm(formula = act_tob ~ age_yrs + gender + race_5 + ethnic_3 + 
    lang_3 + mstat_5 + relig_affil + max_ch + anxiety_2 + depression_2 + 
    RPL_THEME1 + RPL_THEME2 + RPL_THEME3 + RPL_THEME4, family = "binomial", 
    data = mh_vax_co_sub)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.1657  -0.5615  -0.4551  -0.3672   3.0537  

Coefficients:
                           Estimate Std. Error z value Pr(>|z|)    
(Intercept)              -2.6939773  0.1336030 -20.164  < 2e-16 ***
age_yrs                  -0.0007259  0.0018060  -0.402 0.687743    
genderFemale             -0.1042769  0.0553267  -1.885 0.059464 .  
race_5Black              -0.0396828  0.1056774  -0.376 0.707282    
race_5Other               0.0247467  0.1682359   0.147 0.883057    
race_5Asian              -1.9135268  0.4549148  -4.206 2.60e-05 ***
race_5Native             -0.5922414  0.5305655  -1.116 0.264317    
ethnic_3Hispanic         -0.2905460  0.2144564  -1.355 0.175481    
lang_3Other              -0.3229906  0.3500543  -0.923 0.356170    
mstat_5Unknown            0.1358057  0.0784008   1.732 0.083238 .  
mstat_5Unmarried          0.3972267  0.0724874   5.480 4.25e-08 ***
mstat_5DivorcedSeparated  0.9814360  0.1221755   8.033 9.51e-16 ***
mstat_5Widow              0.3626886  0.1929289   1.880 0.060121 .  
relig_affilNo             0.1611219  0.0555181   2.902 0.003706 ** 
max_ch                   -0.0116566  0.0062858  -1.854 0.063676 .  
anxiety_2                 0.2538062  0.0722915   3.511 0.000447 ***
depression_2              0.2605652  0.0733944   3.550 0.000385 ***
RPL_THEME1                1.5729772  0.1516096  10.375  < 2e-16 ***
RPL_THEME2                0.1598526  0.1303013   1.227 0.219901    
RPL_THEME3               -0.2359623  0.0997179  -2.366 0.017967 *  
RPL_THEME4               -0.0584157  0.1115246  -0.524 0.600423    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 9858.5  on 12859  degrees of freedom
Residual deviance: 9364.7  on 12839  degrees of freedom
  (2385 observations deleted due to missingness)
AIC: 9406.7

Number of Fisher Scoring iterations: 6
broom::glance(drug4)
broom::tidy(drug4, exponentiate = TRUE)
tbl_regression(drug4, label = list(age_yrs ~ "Age", gender~ "Gender", race_5 ~ "Race", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", anxiety_2 ~"Anxiety", depression_2 ~ "Depression", max_ch ~ "Charlson Comorbidity Index", RPL_THEME1 ~ "Soceioeconomic Status", RPL_THEME2 ~ "Household Composition", RPL_THEME3 ~ "Minority Status and Language", RPL_THEME4 ~ "Housing and Transportation", mstat_5 ~ "Marital Status", relig_affil ~ "Any Religious Affiliation"), exponentiate = TRUE)

Alcohol Use: Multivariable Models

Alcohol Use + RPL_THEMES

# removing mstat_5 and relig_affil because of missing data and made no difference in bivariate models 

etoh1 <- glm(etoh_use ~ age_yrs + gender + race_5 + ethnic_3 + lang_3  + 
                max_ch + anxiety_2 + depression_2 + RPL_THEMES,
              family = "binomial",
              data = mh_vax_co_sub)
summary(etoh1)

Call:
glm(formula = etoh_use ~ age_yrs + gender + race_5 + ethnic_3 + 
    lang_3 + max_ch + anxiety_2 + depression_2 + RPL_THEMES, 
    family = "binomial", data = mh_vax_co_sub)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-0.3517  -0.1836  -0.1712  -0.1610   3.0320  

Coefficients:
                  Estimate Std. Error z value Pr(>|z|)    
(Intercept)      -4.183902   0.229944 -18.195   <2e-16 ***
age_yrs          -0.002896   0.004029  -0.719   0.4723    
genderFemale     -0.172049   0.138884  -1.239   0.2154    
race_5Black       0.286781   0.259450   1.105   0.2690    
race_5Other       0.547041   0.326378   1.676   0.0937 .  
race_5Asian      -0.001881   0.464481  -0.004   0.9968    
race_5Native      0.206969   1.014974   0.204   0.8384    
ethnic_3Hispanic  0.456308   0.385932   1.182   0.2371    
lang_3Other       0.081106   0.614681   0.132   0.8950    
max_ch            0.012970   0.015098   0.859   0.3903    
anxiety_2         0.219257   0.185959   1.179   0.2384    
depression_2      0.122055   0.192606   0.634   0.5263    
RPL_THEMES        0.247149   0.268586   0.920   0.3575    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 2247.8  on 14013  degrees of freedom
Residual deviance: 2233.6  on 14001  degrees of freedom
  (1231 observations deleted due to missingness)
AIC: 2259.6

Number of Fisher Scoring iterations: 7
broom::glance(etoh1)
broom::tidy(etoh1, exponentiate = TRUE)
tbl_regression(etoh1, label = list(age_yrs ~ "Age", gender~ "Gender", race_5 ~ "Race", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", RPL_THEMES ~ "Total SVI", anxiety_2 ~"Anxiety", depression_2 ~ "Depression", max_ch ~ "Charlson Comorbidity Index"), exponentiate = TRUE)
Characteristic OR1 95% CI1 p-value
Age 1.00 0.99, 1.00 0.5
Gender
    Male — —
    Female 0.84 0.64, 1.11 0.2
Race
    White — —
    Black 1.33 0.78, 2.16 0.3
    Other 1.73 0.87, 3.15 0.094
    Asian 1.00 0.35, 2.24 >0.9
    Native 1.23 0.07, 5.69 0.8
Ethnicity
    NonHispanic — —
    Hispanic 1.58 0.69, 3.19 0.2
Preferred Language
    English — —
    Other 1.08 0.26, 3.10 0.9
Charlson Comorbidity Index 1.01 0.98, 1.04 0.4
Anxiety 1.25 0.86, 1.78 0.2
Depression 1.13 0.77, 1.64 0.5
Total SVI 1.28 0.75, 2.16 0.4
1 OR = Odds Ratio, CI = Confidence Interval

## Model performance
model_performance(etoh1)
# Indices of model performance

AIC      |      BIC | Tjur's R2 |  RMSE | Sigma | Log_loss | Score_log | Score_spherical |   PCP
------------------------------------------------------------------------------------------------
2259.605 | 2357.726 |     0.001 | 0.124 | 0.399 |    0.080 |    -3.400 |           0.007 | 0.969
performance::check_model(etoh1, panel = TRUE)


## Margins
cplot(etoh1, "RPL_THEMES", what = "prediction", main = "Percent Likelihood of Alcohol Use Given SVI")

Alcohol Use + SVI Quartile

# removing mstat_5 and relig_affil because of missing data and made no difference in bivariate models 

etoh2 <- glm(etoh_use ~ age_yrs + gender + race_5 + ethnic_3 + lang_3  + 
                max_ch + anxiety_2 + depression_2 + RPL_4,
              family = "binomial",
              data = mh_vax_co_sub)
summary(etoh2)

Call:
glm(formula = etoh_use ~ age_yrs + gender + race_5 + ethnic_3 + 
    lang_3 + max_ch + anxiety_2 + depression_2 + RPL_4, family = "binomial", 
    data = mh_vax_co_sub)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-0.3575  -0.1842  -0.1709  -0.1607   3.0452  

Coefficients:
                  Estimate Std. Error z value Pr(>|z|)    
(Intercept)      -4.205070   0.226567 -18.560   <2e-16 ***
age_yrs          -0.002904   0.004030  -0.721   0.4712    
genderFemale     -0.173568   0.138932  -1.249   0.2116    
race_5Black       0.308603   0.259976   1.187   0.2352    
race_5Other       0.555829   0.326510   1.702   0.0887 .  
race_5Asian      -0.014895   0.464620  -0.032   0.9744    
race_5Native      0.197112   1.015225   0.194   0.8461    
ethnic_3Hispanic  0.457925   0.386058   1.186   0.2356    
lang_3Other       0.081995   0.614505   0.133   0.8939    
max_ch            0.012755   0.015101   0.845   0.3983    
anxiety_2         0.219555   0.185920   1.181   0.2376    
depression_2      0.121837   0.192571   0.633   0.5269    
RPL_4Second       0.183931   0.167931   1.095   0.2734    
RPL_4Third        0.195687   0.187682   1.043   0.2971    
RPL_4Fourth       0.157627   0.242250   0.651   0.5153    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 2247.8  on 14013  degrees of freedom
Residual deviance: 2232.8  on 13999  degrees of freedom
  (1231 observations deleted due to missingness)
AIC: 2262.8

Number of Fisher Scoring iterations: 7
broom::glance(etoh2)
broom::tidy(etoh2, exponentiate = TRUE)
tbl_regression(etoh2, label = list(age_yrs ~ "Age", gender~ "Gender", race_5 ~ "Race", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", RPL_4 ~ "SVI Quartile", anxiety_2 ~"Anxiety", depression_2 ~ "Depression", max_ch ~ "Charlson Comorbidity Index"), exponentiate = TRUE)
Characteristic OR1 95% CI1 p-value
Age 1.00 0.99, 1.00 0.5
Gender
    Male — —
    Female 0.84 0.64, 1.10 0.2
Race
    White — —
    Black 1.36 0.79, 2.21 0.2
    Other 1.74 0.88, 3.18 0.089
    Asian 0.99 0.34, 2.21 >0.9
    Native 1.22 0.07, 5.64 0.8
Ethnicity
    NonHispanic — —
    Hispanic 1.58 0.70, 3.20 0.2
Preferred Language
    English — —
    Other 1.09 0.26, 3.10 0.9
Charlson Comorbidity Index 1.01 0.98, 1.04 0.4
Anxiety 1.25 0.86, 1.78 0.2
Depression 1.13 0.77, 1.63 0.5
SVI Quartile
    First — —
    Second 1.20 0.86, 1.67 0.3
    Third 1.22 0.84, 1.75 0.3
    Fourth 1.17 0.71, 1.85 0.5
1 OR = Odds Ratio, CI = Confidence Interval

## Model performance
model_performance(etoh2)
# Indices of model performance

AIC      |      BIC | Tjur's R2 |  RMSE | Sigma | Log_loss | Score_log | Score_spherical |   PCP
------------------------------------------------------------------------------------------------
2262.801 | 2376.018 |     0.001 | 0.124 | 0.399 |    0.080 |    -3.400 |           0.007 | 0.969
performance::check_model(etoh2, panel = TRUE)


## Margins
cplot(etoh2, "RPL_4", what = "prediction", main = "Percent Likelihood of Alcohol Use Given SVI Quartile")

Alcohol Use + All Themes

# removing mstat_5 and relig_affil because of missing data and made no difference in bivariate models 

etoh3 <- glm(etoh_use ~ age_yrs + gender + race_5 + ethnic_3 + lang_3  + 
                max_ch + anxiety_2 + depression_2 + RPL_THEME1 + RPL_THEME2 + RPL_THEME3 + 
                RPL_THEME4,
              family = "binomial",
              data = mh_vax_co_sub)
summary(etoh3)

Call:
glm(formula = etoh_use ~ age_yrs + gender + race_5 + ethnic_3 + 
    lang_3 + max_ch + anxiety_2 + depression_2 + RPL_THEME1 + 
    RPL_THEME2 + RPL_THEME3 + RPL_THEME4, family = "binomial", 
    data = mh_vax_co_sub)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-0.3711  -0.1850  -0.1710  -0.1596   3.0536  

Coefficients:
                  Estimate Std. Error z value Pr(>|z|)    
(Intercept)      -4.339313   0.272864 -15.903   <2e-16 ***
age_yrs          -0.002741   0.004043  -0.678    0.498    
genderFemale     -0.164875   0.139288  -1.184    0.237    
race_5Black       0.291680   0.264839   1.101    0.271    
race_5Other       0.553851   0.326629   1.696    0.090 .  
race_5Asian      -0.048297   0.471463  -0.102    0.918    
race_5Native      0.251656   1.015239   0.248    0.804    
ethnic_3Hispanic  0.469858   0.385656   1.218    0.223    
lang_3Other       0.109349   0.618042   0.177    0.860    
max_ch            0.011830   0.015189   0.779    0.436    
anxiety_2         0.218766   0.186275   1.174    0.240    
depression_2      0.135770   0.192854   0.704    0.481    
RPL_THEME1       -0.338091   0.393710  -0.859    0.390    
RPL_THEME2        0.480040   0.341512   1.406    0.160    
RPL_THEME3        0.288674   0.254563   1.134    0.257    
RPL_THEME4        0.053214   0.286859   0.186    0.853    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 2237.3  on 13944  degrees of freedom
Residual deviance: 2221.1  on 13929  degrees of freedom
  (1300 observations deleted due to missingness)
AIC: 2253.1

Number of Fisher Scoring iterations: 7
broom::glance(etoh3)
broom::tidy(etoh3, exponentiate = TRUE)
tbl_regression(etoh3, label = list(age_yrs ~ "Age", gender~ "Gender", race_5 ~ "Race", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", anxiety_2 ~"Anxiety", depression_2 ~ "Depression", max_ch ~ "Charlson Comorbidity Index", RPL_THEME1 ~ "Soceioeconomic Status", RPL_THEME2 ~ "Household Composition", RPL_THEME3 ~ "Minority Status and Language", RPL_THEME4 ~ "Housing and Transportation"), exponentiate = TRUE)
Characteristic OR1 95% CI1 p-value
Age 1.00 0.99, 1.01 0.5
Gender
    Male — —
    Female 0.85 0.65, 1.11 0.2
Race
    White — —
    Black 1.34 0.77, 2.19 0.3
    Other 1.74 0.88, 3.17 0.090
    Asian 0.95 0.33, 2.17 >0.9
    Native 1.29 0.07, 5.96 0.8
Ethnicity
    NonHispanic — —
    Hispanic 1.60 0.70, 3.24 0.2
Preferred Language
    English — —
    Other 1.12 0.26, 3.22 0.9
Charlson Comorbidity Index 1.01 0.98, 1.04 0.4
Anxiety 1.24 0.86, 1.78 0.2
Depression 1.15 0.78, 1.66 0.5
Soceioeconomic Status 0.71 0.33, 1.53 0.4
Household Composition 1.62 0.83, 3.17 0.2
Minority Status and Language 1.33 0.81, 2.20 0.3
Housing and Transportation 1.05 0.60, 1.85 0.9
1 OR = Odds Ratio, CI = Confidence Interval

## Model performance
model_performance(etoh3)
# Indices of model performance

AIC      |      BIC | Tjur's R2 |  RMSE | Sigma | Log_loss | Score_log | Score_spherical |   PCP
------------------------------------------------------------------------------------------------
2253.083 | 2373.769 |     0.002 | 0.124 | 0.399 |    0.080 |    -3.386 |           0.007 | 0.969
performance::check_model(etoh3, panel = TRUE)


## Margins
cplot(etoh3, "RPL_THEME1", what = "prediction", main = "Percent Likelihood of Alcohol Use Given THEME1")

cplot(etoh3, "RPL_THEME2", what = "prediction", main = "Percent Likelihood of Alcohol Use Given THEME2")

cplot(etoh3, "RPL_THEME3", what = "prediction", main = "Percent Likelihood of Alcohol Use Given THEME3")

cplot(etoh3, "RPL_THEME4", what = "prediction", main = "Percent Likelihood of Alcohol Use Given THEME4")

LS0tCnRpdGxlOiAiMjAyMi4xMS44IFN1YnN0YW5jZSBVc2UgSUJEIgpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazoKICAgIHRoZW1lczogcGFwZXIKICAgIHRvYzogeWVzCiAgICB0b2NfZmxvYXQ6IHllcwplZGl0b3Jfb3B0aW9uczoKICBjaHVua19vdXRwdXRfdHlwZTogaW5saW5lCmRhdGU6ICcyMDIyLTExLTgnCi0tLQoKIyBMb2FkIFBhY2thZ2VzIApgYGB7cn0KbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkoY29kZWJvb2tyKQpsaWJyYXJ5KHN1bW1hcnl0b29scykKbGlicmFyeShicm9vbSkKbGlicmFyeShwZXJmb3JtYW5jZSkKbGlicmFyeShndCkKbGlicmFyeShndHN1bW1hcnkpCmxpYnJhcnkoamFuaXRvcikKbGlicmFyeShmb3JjYXRzKQpsaWJyYXJ5KGhlcmUpCmxpYnJhcnkoeWFtbCkKbGlicmFyeShtYXJnaW5zKQpgYGAKCiMgSW1wb3J0IERhdGEgCmBgYHtyfQoKbG9hZCgifi9EZXNrdG9wL1ItQ29kZS9TRE9IX0FMTC9taF92YXhfY29fc3ViLnJkYSIpClZpZXcobWhfdmF4X2NvX3N1YikKCgpgYGAKCgojIEJhc2VsaW5lIENoYXJhY3RlcmlzdGljcyAKYGBge3J9Cm1oX3ZheF9jb19zdWIgJT4lIAogIGRwbHlyOjpzZWxlY3QoYWdlX3lycywgZ2VuZGVyLCByYWNlXzUsIGV0aG5pY18zLCBsYW5nXzMsIHJlbGlnX2FmZmlsLCBtc3RhdF81LCBtYXhfY2gsIGFueGlldHlfMiwgZGVwcmVzc2lvbl8yLCBhY3RfdG9iLCBkcnVnX3VzZSwgZXRvaF91c2UsIFJQTF9USEVNRVMsIFJQTF80LCBSUExfVEhFTUUxLCBSUExfVEhFTUUyLCBSUExfVEhFTUUzLCBSUExfVEhFTUU0KSAtPiBiYXNlbGluZQpiYXNlbGluZSAlPiUgdGJsX3N1bW1hcnkobGFiZWwgPSBsaXN0KGFnZV95cnMgfiAiQWdlIiwgZ2VuZGVyfiAiR2VuZGVyIiwgcmFjZV81IH4gIlJhY2UiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJlZmVycmVkIExhbmd1YWdlIiwgcmVsaWdfYWZmaWwgfiAiQW55IFJlbGlnaW91cyBBZmZpbGlhdGlvbiIsIG1zdGF0XzUgfiAiTWFyaXRhbCBTdGF0dXMiLCBSUExfVEhFTUVTIH4gIlRvdGFsIFNWSSIsIFJQTF9USEVNRTEgfiAiU29jZWlvZWNvbm9taWMgU3RhdHVzIiwgUlBMX1RIRU1FMiB+ICJIb3VzZWhvbGQgQ29tcG9zaXRpb24iLCBSUExfVEhFTUUzIH4gIk1pbm9yaXR5IFN0YXR1cyBhbmQgTGFuZ3VhZ2UiLCBSUExfVEhFTUU0IH4gIkhvdXNpbmcgYW5kIFRyYW5zcG9ydGF0aW9uIiwgUlBMXzQgfiAiU1ZJIFF1YXJ0aWxlcyIsIGFueGlldHlfMiB+IkFueGlldHkiLCBkZXByZXNzaW9uXzIgfiAiRGVwcmVzc2lvbiIsIGFjdF90b2IgfiAiQWN0aXZlIFRvYmFjY28gVXNlIiwgZHJ1Z191c2UgfiAiRHJ1ZyBBYnVzZSIsIGV0b2hfdXNlIH4gIkFsY29ob2wgQWJ1c2UiLCBtYXhfY2ggfiAiQ2hhcmxzb24gQ29tb3JiaWRpdHkgSW5kZXgiKSwKICAgICAgICBzdGF0aXN0aWMgPSBsaXN0KGFsbF9jb250aW51b3VzKCkgfiAie21lYW59ICh7c2R9KSIpLAogICAgICAgIG1pc3NpbmdfdGV4dCA9ICIoTWlzc2luZykiKQpgYGAKIyBCYXNlbGluZSBDaGFyYWN0ZXJpc3RpY3MgYnkgU1ZJCmBgYHtyfQpiYXNlbGluZSAlPiUgCnRibF9zdW1tYXJ5KGJ5ID0gUlBMXzQsCiAgICAgICAgIGxhYmVsID0gbGlzdChhZ2VfeXJzIH4gIkFnZSIsIGdlbmRlcn4gIkdlbmRlciIsIHJhY2VfNSB+ICJSYWNlIiwgZXRobmljXzMgfiAiRXRobmljaXR5IiwgbGFuZ18zIH4gIlByZWZlcnJlZCBMYW5ndWFnZSIsIHJlbGlnX2FmZmlsIH4gIkFueSBSZWxpZ2lvdXMgQWZmaWxpYXRpb24iLCBtc3RhdF81IH4gIk1hcml0YWwgU3RhdHVzIiwgUlBMX1RIRU1FUyB+ICJUb3RhbCBTVkkiLCBSUExfVEhFTUUxIH4gIlNvY2Vpb2Vjb25vbWljIFN0YXR1cyIsIFJQTF9USEVNRTIgfiAiSG91c2Vob2xkIENvbXBvc2l0aW9uIiwgUlBMX1RIRU1FMyB+ICJNaW5vcml0eSBTdGF0dXMgYW5kIExhbmd1YWdlIiwgUlBMX1RIRU1FNCB+ICJIb3VzaW5nIGFuZCBUcmFuc3BvcnRhdGlvbiIsIFJQTF80IH4gIlNWSSBRdWFydGlsZXMiLCBhbnhpZXR5XzIgfiJBbnhpZXR5IiwgZGVwcmVzc2lvbl8yIH4gIkRlcHJlc3Npb24iLCBhY3RfdG9iIH4gIkFjdGl2ZSBUb2JhY2NvIFVzZSIsIGRydWdfdXNlIH4gIkRydWcgQWJ1c2UiLCBldG9oX3VzZSB+ICJBbGNvaG9sIEFidXNlIiwgbWF4X2NoIH4gIkNoYXJsc29uIENvbW9yYmlkaXR5IEluZGV4IiksCiAgICAgICAgc3RhdGlzdGljID0gbGlzdChhbGxfY29udGludW91cygpIH4gInttZWFufSAoe3NkfSkiKSwKICAgICAgICBtaXNzaW5nX3RleHQgPSAiKE1pc3NpbmcpIikgJT4lIGFkZF9wKCkKYGBgCgojIEJpdmFyaWF0ZSBBbmFseXNpcyB7LnRhYnNldH0KCiMjIFRvYmFjY28gVXNlCmBgYHtyfQp0YmxfdXZfdG9iYWMgPC0KICB0YmxfdXZyZWdyZXNzaW9uKAogICAgbWhfdmF4X2NvX3N1YltjKCJhY3RfdG9iIiwgImFnZV95cnMiLCAiZ2VuZGVyIiwgInJhY2VfNSIsICJldGhuaWNfMyIsICJsYW5nXzMiLCAicmVsaWdfYWZmaWwiLCAibXN0YXRfNSIsICJtYXhfY2giLCAiYW54aWV0eV8yIiwgImRlcHJlc3Npb25fMiIsICJSUExfVEhFTUVTIiwgICJSUExfVEhFTUUxIiwgIlJQTF9USEVNRTIiLCAgIlJQTF9USEVNRTMiLCAiUlBMX1RIRU1FNCIpXSwKICAgIG1ldGhvZCA9IGdsbSwKICAgIHkgPSBhY3RfdG9iLAogICAgbWV0aG9kLmFyZ3MgPSBsaXN0KGZhbWlseSA9IGJpbm9taWFsKSwKICAgIGV4cG9uZW50aWF0ZSA9IFRSVUUsCiAgICBsYWJlbCA9IGxpc3QoYWdlX3lycyB+ICJBZ2UiLCBnZW5kZXJ+ICJHZW5kZXIiLCByYWNlXzUgfiAiUmFjZSIsIGV0aG5pY18zIH4gIkV0aG5pY2l0eSIsIGxhbmdfMyB+ICJQcmVmZXJyZWQgTGFuZ3VhZ2UiLCByZWxpZ19hZmZpbCB+ICJBbnkgUmVsaWdpb3VzIEFmZmlsaWF0aW9uIiwgbXN0YXRfNSB+ICJNYXJpdGFsIFN0YXR1cyIsIFJQTF9USEVNRVMgfiAiVG90YWwgU1ZJIiwgUlBMX1RIRU1FMSB+ICJTb2NlaW9lY29ub21pYyBTdGF0dXMiLCBSUExfVEhFTUUyIH4gIkhvdXNlaG9sZCBDb21wb3NpdGlvbiIsIFJQTF9USEVNRTMgfiAiTWlub3JpdHkgU3RhdHVzIGFuZCBMYW5ndWFnZSIsIFJQTF9USEVNRTQgfiAiSG91c2luZyBhbmQgVHJhbnNwb3J0YXRpb24iLCBhbnhpZXR5XzIgfiJBbnhpZXR5IiwgZGVwcmVzc2lvbl8yIH4gIkRlcHJlc3Npb24iLCBtYXhfY2ggfiAiQ2hhcmxzb24gQ29tb3JiaWRpdHkgSW5kZXgiKSkKICAgIApwcmludCh0YmxfdXZfdG9iYWMsIG1ldGhvZCA9IHJlbmRlcikKYGBgCgoKIyMgRHJ1ZyBBYnVzZQpgYGB7cn0KdGJsX3V2X2RydWcgPC0KICB0YmxfdXZyZWdyZXNzaW9uKAogICAgbWhfdmF4X2NvX3N1YltjKCJkcnVnX3VzZSIsICJhZ2VfeXJzIiwgImdlbmRlciIsICJyYWNlXzUiLCAiZXRobmljXzMiLCAibGFuZ18zIiwgInJlbGlnX2FmZmlsIiwgIm1zdGF0XzUiLCAibWF4X2NoIiwgImFueGlldHlfMiIsICJkZXByZXNzaW9uXzIiLCAiUlBMX1RIRU1FUyIsICAiUlBMX1RIRU1FMSIsICJSUExfVEhFTUUyIiwgICJSUExfVEhFTUUzIiwgIlJQTF9USEVNRTQiKV0sCiAgICBtZXRob2QgPSBnbG0sCiAgICB5ID0gZHJ1Z191c2UsCiAgICBtZXRob2QuYXJncyA9IGxpc3QoZmFtaWx5ID0gYmlub21pYWwpLAogICAgZXhwb25lbnRpYXRlID0gVFJVRSwKICAgIGxhYmVsID0gbGlzdChhZ2VfeXJzIH4gIkFnZSIsIGdlbmRlcn4gIkdlbmRlciIsIHJhY2VfNSB+ICJSYWNlIiwgZXRobmljXzMgfiAiRXRobmljaXR5IiwgbGFuZ18zIH4gIlByZWZlcnJlZCBMYW5ndWFnZSIsIHJlbGlnX2FmZmlsIH4gIkFueSBSZWxpZ2lvdXMgQWZmaWxpYXRpb24iLCBtc3RhdF81IH4gIk1hcml0YWwgU3RhdHVzIiwgUlBMX1RIRU1FUyB+ICJUb3RhbCBTVkkiLCBSUExfVEhFTUUxIH4gIlNvY2Vpb2Vjb25vbWljIFN0YXR1cyIsIFJQTF9USEVNRTIgfiAiSG91c2Vob2xkIENvbXBvc2l0aW9uIiwgUlBMX1RIRU1FMyB+ICJNaW5vcml0eSBTdGF0dXMgYW5kIExhbmd1YWdlIiwgUlBMX1RIRU1FNCB+ICJIb3VzaW5nIGFuZCBUcmFuc3BvcnRhdGlvbiIsIGFueGlldHlfMiB+IkFueGlldHkiLCBkZXByZXNzaW9uXzIgfiAiRGVwcmVzc2lvbiIsIG1heF9jaCB+ICJDaGFybHNvbiBDb21vcmJpZGl0eSBJbmRleCIpKQogICAgCnByaW50KHRibF91dl9kcnVnLCBtZXRob2QgPSByZW5kZXIpCmBgYAoKIyMgQWxjb2hvbCBBYnVzZQpgYGB7cn0KdGJsX3V2X2V0b2ggPC0KICB0YmxfdXZyZWdyZXNzaW9uKAogICAgbWhfdmF4X2NvX3N1YltjKCJldG9oX3VzZSIsICJhZ2VfeXJzIiwgImdlbmRlciIsICJyYWNlXzUiLCAiZXRobmljXzMiLCAibGFuZ18zIiwgInJlbGlnX2FmZmlsIiwgIm1zdGF0XzUiLCAibWF4X2NoIiwgImFueGlldHlfMiIsICJkZXByZXNzaW9uXzIiLCAiUlBMX1RIRU1FUyIsICAiUlBMX1RIRU1FMSIsICJSUExfVEhFTUUyIiwgICJSUExfVEhFTUUzIiwgIlJQTF9USEVNRTQiKV0sCiAgICBtZXRob2QgPSBnbG0sCiAgICB5ID0gZXRvaF91c2UsCiAgICBtZXRob2QuYXJncyA9IGxpc3QoZmFtaWx5ID0gYmlub21pYWwpLAogICAgZXhwb25lbnRpYXRlID0gVFJVRSwKICAgIGxhYmVsID0gbGlzdChhZ2VfeXJzIH4gIkFnZSIsIGdlbmRlcn4gIkdlbmRlciIsIHJhY2VfNSB+ICJSYWNlIiwgZXRobmljXzMgfiAiRXRobmljaXR5IiwgbGFuZ18zIH4gIlByZWZlcnJlZCBMYW5ndWFnZSIsIHJlbGlnX2FmZmlsIH4gIkFueSBSZWxpZ2lvdXMgQWZmaWxpYXRpb24iLCBtc3RhdF81IH4gIk1hcml0YWwgU3RhdHVzIiwgUlBMX1RIRU1FUyB+ICJUb3RhbCBTVkkiLCBSUExfVEhFTUUxIH4gIlNvY2Vpb2Vjb25vbWljIFN0YXR1cyIsIFJQTF9USEVNRTIgfiAiSG91c2Vob2xkIENvbXBvc2l0aW9uIiwgUlBMX1RIRU1FMyB+ICJNaW5vcml0eSBTdGF0dXMgYW5kIExhbmd1YWdlIiwgUlBMX1RIRU1FNCB+ICJIb3VzaW5nIGFuZCBUcmFuc3BvcnRhdGlvbiIsIGFueGlldHlfMiB+IkFueGlldHkiLCBkZXByZXNzaW9uXzIgfiAiRGVwcmVzc2lvbiIsIG1heF9jaCB+ICJDaGFybHNvbiBDb21vcmJpZGl0eSBJbmRleCIpKQogICAgCnByaW50KHRibF91dl9ldG9oLCBtZXRob2QgPSByZW5kZXIpCmBgYAoKIyBBY3RpdmUgVG9iYWNjbzogTXVsdGl2YXJpYWJsZSBNb2RlbHMgey50YWJzZXR9CgojIyBBY3RpdmUgdG9iYWNjbyArIFJQTF9USEVNRVMgCmBgYHtyfQp0b2JhYzEgPC0gZ2xtKGFjdF90b2IgfiBhZ2VfeXJzICsgZ2VuZGVyICsgcmFjZV81ICsgZXRobmljXzMgKyBsYW5nXzMgKyBtc3RhdF81ICsgcmVsaWdfYWZmaWwgKyAKICAgICAgICAgICAgICAgIG1heF9jaCArIGFueGlldHlfMiArIGRlcHJlc3Npb25fMiArIFJQTF9USEVNRVMsCiAgICAgICAgICAgICAgZmFtaWx5ID0gImJpbm9taWFsIiwKICAgICAgICAgICAgICBkYXRhID0gbWhfdmF4X2NvX3N1YikKc3VtbWFyeSh0b2JhYzEpCmJyb29tOjpnbGFuY2UodG9iYWMxKQpicm9vbTo6dGlkeSh0b2JhYzEsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCnRibF9yZWdyZXNzaW9uKHRvYmFjMSwgbGFiZWwgPSBsaXN0KGFnZV95cnMgfiAiQWdlIiwgZ2VuZGVyfiAiR2VuZGVyIiwgcmFjZV81IH4gIlJhY2UiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJlZmVycmVkIExhbmd1YWdlIiwgUlBMX1RIRU1FUyB+ICJUb3RhbCBTVkkiLCBhbnhpZXR5XzIgfiJBbnhpZXR5IiwgZGVwcmVzc2lvbl8yIH4gIkRlcHJlc3Npb24iLCBtYXhfY2ggfiAiQ2hhcmxzb24gQ29tb3JiaWRpdHkgSW5kZXgiLCBtc3RhdF81IH4gIk1hcml0YWwgU3RhdHVzIiwgcmVsaWdfYWZmaWwgfiAiQW55IFJlbGlnaW91cyBBZmZpbGlhdGlvbiIpLCBleHBvbmVudGlhdGUgPSBUUlVFKQoKIyMgTW9kZWwgcGVyZm9ybWFuY2UKbW9kZWxfcGVyZm9ybWFuY2UodG9iYWMxKQpwZXJmb3JtYW5jZTo6Y2hlY2tfbW9kZWwodG9iYWMxLCBwYW5lbCA9IFRSVUUpCgojIyBNYXJnaW5zCmNwbG90KHRvYmFjMSwgIlJQTF9USEVNRVMiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlBlcmNlbnQgTGlrZWxpaG9vZCBvZiBUb2JhY2NvIFVzZSBHaXZlbiBTVkkiKQpgYGAKCiMjIEFjdGl2ZSB0b2JhY2NvICsgUlBMXzQKYGBge3J9CnRvYmFjMiA8LSBnbG0oYWN0X3RvYiB+IGFnZV95cnMgKyBnZW5kZXIgKyByYWNlXzUgKyBldGhuaWNfMyArIGxhbmdfMyArIG1zdGF0XzUgKyByZWxpZ19hZmZpbCArIAogICAgICAgICAgICAgICAgbWF4X2NoICsgYW54aWV0eV8yICsgZGVwcmVzc2lvbl8yICsgUlBMXzQsCiAgICAgICAgICAgICAgZmFtaWx5ID0gImJpbm9taWFsIiwKICAgICAgICAgICAgICBkYXRhID0gbWhfdmF4X2NvX3N1YikKc3VtbWFyeSh0b2JhYzIpCmJyb29tOjpnbGFuY2UodG9iYWMyKQpicm9vbTo6dGlkeSh0b2JhYzIsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCnRibF9yZWdyZXNzaW9uKHRvYmFjMiwgbGFiZWwgPSBsaXN0KGFnZV95cnMgfiAiQWdlIiwgZ2VuZGVyfiAiR2VuZGVyIiwgcmFjZV81IH4gIlJhY2UiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJlZmVycmVkIExhbmd1YWdlIiwgUlBMXzQgfiAiU1ZJIFF1YXJ0aWxlIiwgYW54aWV0eV8yIH4iQW54aWV0eSIsIGRlcHJlc3Npb25fMiB+ICJEZXByZXNzaW9uIiwgbWF4X2NoIH4gIkNoYXJsc29uIENvbW9yYmlkaXR5IEluZGV4IiwgbXN0YXRfNSB+ICJNYXJpdGFsIFN0YXR1cyIsIHJlbGlnX2FmZmlsIH4gIkFueSBSZWxpZ2lvdXMgQWZmaWxpYXRpb24iKSwgZXhwb25lbnRpYXRlID0gVFJVRSkKCiMjIE1vZGVsIHBlcmZvcm1hbmNlCm1vZGVsX3BlcmZvcm1hbmNlKHRvYmFjMikKcGVyZm9ybWFuY2U6OmNoZWNrX21vZGVsKHRvYmFjMiwgcGFuZWwgPSBUUlVFKQoKIyMgTWFyZ2lucwpjcGxvdCh0b2JhYzIsICJSUExfNCIsIHdoYXQgPSAicHJlZGljdGlvbiIsIG1haW4gPSAiUGVyY2VudCBMaWtlbGlob29kIG9mIFRvYmFjY28gVXNlIEdpdmVuIFNWSSBRdWFydGlsZSIpCmBgYAoKIyMgQWN0aXZlIFRvYmFjY28gKyBBbGwgVGhlbWVzIApgYGB7cn0KdG9iYWMzIDwtIGdsbShhY3RfdG9iIH4gYWdlX3lycyArIGdlbmRlciArIHJhY2VfNSArIGV0aG5pY18zICsgbGFuZ18zICsgbXN0YXRfNSArIHJlbGlnX2FmZmlsICsgCiAgICAgICAgICAgICAgICBtYXhfY2ggKyBhbnhpZXR5XzIgKyBkZXByZXNzaW9uXzIgKyBSUExfVEhFTUUxICsgUlBMX1RIRU1FMiArIFJQTF9USEVNRTMgKyAKICAgICAgICAgICAgICAgIFJQTF9USEVNRTQsCiAgICAgICAgICAgICAgZmFtaWx5ID0gImJpbm9taWFsIiwKICAgICAgICAgICAgICBkYXRhID0gbWhfdmF4X2NvX3N1YikKc3VtbWFyeSh0b2JhYzMpCmJyb29tOjpnbGFuY2UodG9iYWMzKQpicm9vbTo6dGlkeSh0b2JhYzMsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCnRibF9yZWdyZXNzaW9uKHRvYmFjMywgbGFiZWwgPSBsaXN0KGFnZV95cnMgfiAiQWdlIiwgZ2VuZGVyfiAiR2VuZGVyIiwgcmFjZV81IH4gIlJhY2UiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJlZmVycmVkIExhbmd1YWdlIiwgYW54aWV0eV8yIH4iQW54aWV0eSIsIGRlcHJlc3Npb25fMiB+ICJEZXByZXNzaW9uIiwgbWF4X2NoIH4gIkNoYXJsc29uIENvbW9yYmlkaXR5IEluZGV4IiwgbXN0YXRfNSB+ICJNYXJpdGFsIFN0YXR1cyIsIHJlbGlnX2FmZmlsIH4gIkFueSBSZWxpZ2lvdXMgQWZmaWxpYXRpb24iLCBSUExfVEhFTUUxIH4gIlNvY2Vpb2Vjb25vbWljIFN0YXR1cyIsIFJQTF9USEVNRTIgfiAiSG91c2Vob2xkIENvbXBvc2l0aW9uIiwgUlBMX1RIRU1FMyB+ICJNaW5vcml0eSBTdGF0dXMgYW5kIExhbmd1YWdlIiwgUlBMX1RIRU1FNCB+ICJIb3VzaW5nIGFuZCBUcmFuc3BvcnRhdGlvbiIpLCBleHBvbmVudGlhdGUgPSBUUlVFKQoKIyMgTW9kZWwgcGVyZm9ybWFuY2UKbW9kZWxfcGVyZm9ybWFuY2UodG9iYWMzKQpwZXJmb3JtYW5jZTo6Y2hlY2tfbW9kZWwodG9iYWMzLCBwYW5lbCA9IFRSVUUpCgojIyBNYXJnaW5zCmNwbG90KHRvYmFjMywgIlJQTF9USEVNRTEiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlBlcmNlbnQgTGlrZWxpaG9vZCBvZiBUb2JhY2NvIFVzZSBHaXZlbiBUSEVNRTEiKQpjcGxvdCh0b2JhYzMsICJSUExfVEhFTUUyIiwgd2hhdCA9ICJwcmVkaWN0aW9uIiwgbWFpbiA9ICJQZXJjZW50IExpa2VsaWhvb2Qgb2YgVG9iYWNjbyBVc2UgR2l2ZW4gVEhFTUUyIikKY3Bsb3QodG9iYWMzLCAiUlBMX1RIRU1FMyIsIHdoYXQgPSAicHJlZGljdGlvbiIsIG1haW4gPSAiUGVyY2VudCBMaWtlbGlob29kIG9mIFRvYmFjY28gVXNlIEdpdmVuIFRIRU1FMyIpCmNwbG90KHRvYmFjMywgIlJQTF9USEVNRTQiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlBlcmNlbnQgTGlrZWxpaG9vZCBvZiBUb2JhY2NvIFVzZSBHaXZlbiBUSEVNRTQiKQpgYGAKCiMgRHJ1ZyBVc2U6IE11bHRpdmFyaWFibGUgTW9kZWxzIHsudGFic2V0fQoKIyMgRHJ1ZyBVc2UgKyBSUExfVEhFTUVTCmBgYHtyfQojIHJlbW92aW5nIG1zdGF0XzUgYW5kIHJlbGlnX2FmZmlsIGJlY2F1c2Ugb2YgbWlzc2luZyBkYXRhIGFuZCBtYWRlIG5vIGRpZmZlcmVuY2UgaW4gYml2YXJpYXRlIG1vZGVscyAKCmRydWcxIDwtIGdsbShkcnVnX3VzZSB+IGFnZV95cnMgKyBnZW5kZXIgKyByYWNlXzUgKyBldGhuaWNfMyArIGxhbmdfMyAgKyAKICAgICAgICAgICAgICAgIG1heF9jaCArIGFueGlldHlfMiArIGRlcHJlc3Npb25fMiArIFJQTF9USEVNRVMsCiAgICAgICAgICAgICAgZmFtaWx5ID0gImJpbm9taWFsIiwKICAgICAgICAgICAgICBkYXRhID0gbWhfdmF4X2NvX3N1YikKc3VtbWFyeShkcnVnMSkKYnJvb206OmdsYW5jZShkcnVnMSkKYnJvb206OnRpZHkoZHJ1ZzEsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCnRibF9yZWdyZXNzaW9uKGRydWcxLCBsYWJlbCA9IGxpc3QoYWdlX3lycyB+ICJBZ2UiLCBnZW5kZXJ+ICJHZW5kZXIiLCByYWNlXzUgfiAiUmFjZSIsIGV0aG5pY18zIH4gIkV0aG5pY2l0eSIsIGxhbmdfMyB+ICJQcmVmZXJyZWQgTGFuZ3VhZ2UiLCBSUExfVEhFTUVTIH4gIlRvdGFsIFNWSSIsIGFueGlldHlfMiB+IkFueGlldHkiLCBkZXByZXNzaW9uXzIgfiAiRGVwcmVzc2lvbiIsIG1heF9jaCB+ICJDaGFybHNvbiBDb21vcmJpZGl0eSBJbmRleCIpLCBleHBvbmVudGlhdGUgPSBUUlVFKQoKIyMgTW9kZWwgcGVyZm9ybWFuY2UKbW9kZWxfcGVyZm9ybWFuY2UoZHJ1ZzEpCnBlcmZvcm1hbmNlOjpjaGVja19tb2RlbChkcnVnMSwgcGFuZWwgPSBUUlVFKQoKIyMgTWFyZ2lucwpjcGxvdChkcnVnMSwgIlJQTF9USEVNRVMiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlBlcmNlbnQgTGlrZWxpaG9vZCBvZiBEcnVnIFVzZSBHaXZlbiBTVkkiKQpgYGAKCiMjIERydWcgVXNlICsgU1ZJIFF1YXJ0aWxlcyAKYGBge3J9CiMgcmVtb3ZpbmcgbXN0YXRfNSBhbmQgcmVsaWdfYWZmaWwgYmVjYXVzZSBvZiBtaXNzaW5nIGRhdGEgYW5kIG1hZGUgbm8gZGlmZmVyZW5jZSBpbiBiaXZhcmlhdGUgbW9kZWxzIAoKZHJ1ZzIgPC0gZ2xtKGRydWdfdXNlIH4gYWdlX3lycyArIGdlbmRlciArIHJhY2VfNSArIGV0aG5pY18zICsgbGFuZ18zICArIAogICAgICAgICAgICAgICAgbWF4X2NoICsgYW54aWV0eV8yICsgZGVwcmVzc2lvbl8yICsgUlBMXzQsCiAgICAgICAgICAgICAgZmFtaWx5ID0gImJpbm9taWFsIiwKICAgICAgICAgICAgICBkYXRhID0gbWhfdmF4X2NvX3N1YikKc3VtbWFyeShkcnVnMikKYnJvb206OmdsYW5jZShkcnVnMikKYnJvb206OnRpZHkoZHJ1ZzIsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCnRibF9yZWdyZXNzaW9uKGRydWcyLCBsYWJlbCA9IGxpc3QoYWdlX3lycyB+ICJBZ2UiLCBnZW5kZXJ+ICJHZW5kZXIiLCByYWNlXzUgfiAiUmFjZSIsIGV0aG5pY18zIH4gIkV0aG5pY2l0eSIsIGxhbmdfMyB+ICJQcmVmZXJyZWQgTGFuZ3VhZ2UiLCBSUExfNCB+ICJTVkkgUXVhcnRpbGUiLCBhbnhpZXR5XzIgfiJBbnhpZXR5IiwgZGVwcmVzc2lvbl8yIH4gIkRlcHJlc3Npb24iLCBtYXhfY2ggfiAiQ2hhcmxzb24gQ29tb3JiaWRpdHkgSW5kZXgiKSwgZXhwb25lbnRpYXRlID0gVFJVRSkKCiMjIE1vZGVsIHBlcmZvcm1hbmNlCm1vZGVsX3BlcmZvcm1hbmNlKGRydWcyKQpwZXJmb3JtYW5jZTo6Y2hlY2tfbW9kZWwoZHJ1ZzIsIHBhbmVsID0gVFJVRSkKCiMjIE1hcmdpbnMKY3Bsb3QoZHJ1ZzIsICJSUExfNCIsIHdoYXQgPSAicHJlZGljdGlvbiIsIG1haW4gPSAiUGVyY2VudCBMaWtlbGlob29kIG9mIERydWcgVXNlIEdpdmVuIFNWSSIpCmBgYAoKIyMgRHJ1ZyBVc2UgKyBBbGwgVGhlbWVzIApgYGB7cn0KCiMgcmVtb3ZpbmcgbXN0YXRfNSBhbmQgcmVsaWdfYWZmaWwgYmVjYXVzZSBvZiBtaXNzaW5nIGRhdGEgYW5kIG1hZGUgbm8gZGlmZmVyZW5jZSBpbiBiaXZhcmlhdGUgbW9kZWxzIAoKZHJ1ZzMgPC0gZ2xtKGFjdF90b2IgfiBhZ2VfeXJzICsgZ2VuZGVyICsgcmFjZV81ICsgZXRobmljXzMgKyBsYW5nXzMgICsgCiAgICAgICAgICAgICAgICBtYXhfY2ggKyBhbnhpZXR5XzIgKyBkZXByZXNzaW9uXzIgKyBSUExfVEhFTUUxICsgUlBMX1RIRU1FMiArIFJQTF9USEVNRTMgKyAKICAgICAgICAgICAgICAgIFJQTF9USEVNRTQsCiAgICAgICAgICAgICAgZmFtaWx5ID0gImJpbm9taWFsIiwKICAgICAgICAgICAgICBkYXRhID0gbWhfdmF4X2NvX3N1YikKc3VtbWFyeShkcnVnMykKYnJvb206OmdsYW5jZShkcnVnMykKYnJvb206OnRpZHkoZHJ1ZzMsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCnRibF9yZWdyZXNzaW9uKGRydWczLCBsYWJlbCA9IGxpc3QoYWdlX3lycyB+ICJBZ2UiLCBnZW5kZXJ+ICJHZW5kZXIiLCByYWNlXzUgfiAiUmFjZSIsIGV0aG5pY18zIH4gIkV0aG5pY2l0eSIsIGxhbmdfMyB+ICJQcmVmZXJyZWQgTGFuZ3VhZ2UiLCBhbnhpZXR5XzIgfiJBbnhpZXR5IiwgZGVwcmVzc2lvbl8yIH4gIkRlcHJlc3Npb24iLCBtYXhfY2ggfiAiQ2hhcmxzb24gQ29tb3JiaWRpdHkgSW5kZXgiLCBSUExfVEhFTUUxIH4gIlNvY2Vpb2Vjb25vbWljIFN0YXR1cyIsIFJQTF9USEVNRTIgfiAiSG91c2Vob2xkIENvbXBvc2l0aW9uIiwgUlBMX1RIRU1FMyB+ICJNaW5vcml0eSBTdGF0dXMgYW5kIExhbmd1YWdlIiwgUlBMX1RIRU1FNCB+ICJIb3VzaW5nIGFuZCBUcmFuc3BvcnRhdGlvbiIpLCBleHBvbmVudGlhdGUgPSBUUlVFKQoKIyMgTW9kZWwgcGVyZm9ybWFuY2UKbW9kZWxfcGVyZm9ybWFuY2UoZHJ1ZzMpCnBlcmZvcm1hbmNlOjpjaGVja19tb2RlbChkcnVnMywgcGFuZWwgPSBUUlVFKQoKIyMgTWFyZ2lucwpjcGxvdChkcnVnMywgIlJQTF9USEVNRTEiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlBlcmNlbnQgTGlrZWxpaG9vZCBvZiBEcnVnIFVzZSBHaXZlbiBUSEVNRTEiKQpjcGxvdChkcnVnMywgIlJQTF9USEVNRTIiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlBlcmNlbnQgTGlrZWxpaG9vZCBvZiBEcnVnIFVzZSBHaXZlbiBUSEVNRTIiKQpjcGxvdChkcnVnMywgIlJQTF9USEVNRTMiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlBlcmNlbnQgTGlrZWxpaG9vZCBvZiBEcnVnIFVzZSBHaXZlbiBUSEVNRTMiKQpjcGxvdChkcnVnMywgIlJQTF9USEVNRTQiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlBlcmNlbnQgTGlrZWxpaG9vZCBvZiBEcnVnIFVzZSBHaXZlbiBUSEVNRTQiKQpgYGAKCiMjIFNlbnNpdGl2aXR5IGFuYWx5c2lzIGluY2x1ZGluZyBtc3RhdCBhbmQgcmVsaWdfYWZmaWwgCmBgYHtyfQpkcnVnNCA8LSBnbG0oYWN0X3RvYiB+IGFnZV95cnMgKyBnZW5kZXIgKyByYWNlXzUgKyBldGhuaWNfMyArIGxhbmdfMyAgKyBtc3RhdF81ICsgcmVsaWdfYWZmaWwgKwogICAgICAgICAgICAgICAgbWF4X2NoICsgYW54aWV0eV8yICsgZGVwcmVzc2lvbl8yICsgUlBMX1RIRU1FMSArIFJQTF9USEVNRTIgKyBSUExfVEhFTUUzICsgCiAgICAgICAgICAgICAgICBSUExfVEhFTUU0LAogICAgICAgICAgICAgIGZhbWlseSA9ICJiaW5vbWlhbCIsCiAgICAgICAgICAgICAgZGF0YSA9IG1oX3ZheF9jb19zdWIpCnN1bW1hcnkoZHJ1ZzQpCmJyb29tOjpnbGFuY2UoZHJ1ZzQpCmJyb29tOjp0aWR5KGRydWc0LCBleHBvbmVudGlhdGUgPSBUUlVFKQp0YmxfcmVncmVzc2lvbihkcnVnNCwgbGFiZWwgPSBsaXN0KGFnZV95cnMgfiAiQWdlIiwgZ2VuZGVyfiAiR2VuZGVyIiwgcmFjZV81IH4gIlJhY2UiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJlZmVycmVkIExhbmd1YWdlIiwgYW54aWV0eV8yIH4iQW54aWV0eSIsIGRlcHJlc3Npb25fMiB+ICJEZXByZXNzaW9uIiwgbWF4X2NoIH4gIkNoYXJsc29uIENvbW9yYmlkaXR5IEluZGV4IiwgUlBMX1RIRU1FMSB+ICJTb2NlaW9lY29ub21pYyBTdGF0dXMiLCBSUExfVEhFTUUyIH4gIkhvdXNlaG9sZCBDb21wb3NpdGlvbiIsIFJQTF9USEVNRTMgfiAiTWlub3JpdHkgU3RhdHVzIGFuZCBMYW5ndWFnZSIsIFJQTF9USEVNRTQgfiAiSG91c2luZyBhbmQgVHJhbnNwb3J0YXRpb24iLCBtc3RhdF81IH4gIk1hcml0YWwgU3RhdHVzIiwgcmVsaWdfYWZmaWwgfiAiQW55IFJlbGlnaW91cyBBZmZpbGlhdGlvbiIpLCBleHBvbmVudGlhdGUgPSBUUlVFKQoKIyMgTW9kZWwgcGVyZm9ybWFuY2UKbW9kZWxfcGVyZm9ybWFuY2UoZHJ1ZzQpCnBlcmZvcm1hbmNlOjpjaGVja19tb2RlbChkcnVnNCwgcGFuZWwgPSBUUlVFKQoKIyMgTWFyZ2lucwpjcGxvdChkcnVnNCwgIlJQTF9USEVNRTEiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlBlcmNlbnQgTGlrZWxpaG9vZCBvZiBEcnVnIFVzZSBHaXZlbiBUSEVNRTEiKQpjcGxvdChkcnVnNCwgIlJQTF9USEVNRTIiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlBlcmNlbnQgTGlrZWxpaG9vZCBvZiBEcnVnIFVzZSBHaXZlbiBUSEVNRTIiKQpjcGxvdChkcnVnNCwgIlJQTF9USEVNRTMiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlBlcmNlbnQgTGlrZWxpaG9vZCBvZiBEcnVnIFVzZSBHaXZlbiBUSEVNRTMiKQpjcGxvdChkcnVnNCwgIlJQTF9USEVNRTQiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlBlcmNlbnQgTGlrZWxpaG9vZCBvZiBEcnVnIFVzZSBHaXZlbiBUSEVNRTQiKQpgYGAKCiMgQWxjb2hvbCBVc2U6IE11bHRpdmFyaWFibGUgTW9kZWxzIHsudGFic2V0fQoKIyMgQWxjb2hvbCBVc2UgKyBSUExfVEhFTUVTIApgYGB7cn0KIyByZW1vdmluZyBtc3RhdF81IGFuZCByZWxpZ19hZmZpbCBiZWNhdXNlIG9mIG1pc3NpbmcgZGF0YSBhbmQgbWFkZSBubyBkaWZmZXJlbmNlIGluIGJpdmFyaWF0ZSBtb2RlbHMgCgpldG9oMSA8LSBnbG0oZXRvaF91c2UgfiBhZ2VfeXJzICsgZ2VuZGVyICsgcmFjZV81ICsgZXRobmljXzMgKyBsYW5nXzMgICsgCiAgICAgICAgICAgICAgICBtYXhfY2ggKyBhbnhpZXR5XzIgKyBkZXByZXNzaW9uXzIgKyBSUExfVEhFTUVTLAogICAgICAgICAgICAgIGZhbWlseSA9ICJiaW5vbWlhbCIsCiAgICAgICAgICAgICAgZGF0YSA9IG1oX3ZheF9jb19zdWIpCnN1bW1hcnkoZXRvaDEpCmJyb29tOjpnbGFuY2UoZXRvaDEpCmJyb29tOjp0aWR5KGV0b2gxLCBleHBvbmVudGlhdGUgPSBUUlVFKQp0YmxfcmVncmVzc2lvbihldG9oMSwgbGFiZWwgPSBsaXN0KGFnZV95cnMgfiAiQWdlIiwgZ2VuZGVyfiAiR2VuZGVyIiwgcmFjZV81IH4gIlJhY2UiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJlZmVycmVkIExhbmd1YWdlIiwgUlBMX1RIRU1FUyB+ICJUb3RhbCBTVkkiLCBhbnhpZXR5XzIgfiJBbnhpZXR5IiwgZGVwcmVzc2lvbl8yIH4gIkRlcHJlc3Npb24iLCBtYXhfY2ggfiAiQ2hhcmxzb24gQ29tb3JiaWRpdHkgSW5kZXgiKSwgZXhwb25lbnRpYXRlID0gVFJVRSkKCiMjIE1vZGVsIHBlcmZvcm1hbmNlCm1vZGVsX3BlcmZvcm1hbmNlKGV0b2gxKQpwZXJmb3JtYW5jZTo6Y2hlY2tfbW9kZWwoZXRvaDEsIHBhbmVsID0gVFJVRSkKCiMjIE1hcmdpbnMKY3Bsb3QoZXRvaDEsICJSUExfVEhFTUVTIiwgd2hhdCA9ICJwcmVkaWN0aW9uIiwgbWFpbiA9ICJQZXJjZW50IExpa2VsaWhvb2Qgb2YgQWxjb2hvbCBVc2UgR2l2ZW4gU1ZJIikKYGBgCgojIyBBbGNvaG9sIFVzZSArIFNWSSBRdWFydGlsZSAKYGBge3J9CiMgcmVtb3ZpbmcgbXN0YXRfNSBhbmQgcmVsaWdfYWZmaWwgYmVjYXVzZSBvZiBtaXNzaW5nIGRhdGEgYW5kIG1hZGUgbm8gZGlmZmVyZW5jZSBpbiBiaXZhcmlhdGUgbW9kZWxzIAoKZXRvaDIgPC0gZ2xtKGV0b2hfdXNlIH4gYWdlX3lycyArIGdlbmRlciArIHJhY2VfNSArIGV0aG5pY18zICsgbGFuZ18zICArIAogICAgICAgICAgICAgICAgbWF4X2NoICsgYW54aWV0eV8yICsgZGVwcmVzc2lvbl8yICsgUlBMXzQsCiAgICAgICAgICAgICAgZmFtaWx5ID0gImJpbm9taWFsIiwKICAgICAgICAgICAgICBkYXRhID0gbWhfdmF4X2NvX3N1YikKc3VtbWFyeShldG9oMikKYnJvb206OmdsYW5jZShldG9oMikKYnJvb206OnRpZHkoZXRvaDIsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCnRibF9yZWdyZXNzaW9uKGV0b2gyLCBsYWJlbCA9IGxpc3QoYWdlX3lycyB+ICJBZ2UiLCBnZW5kZXJ+ICJHZW5kZXIiLCByYWNlXzUgfiAiUmFjZSIsIGV0aG5pY18zIH4gIkV0aG5pY2l0eSIsIGxhbmdfMyB+ICJQcmVmZXJyZWQgTGFuZ3VhZ2UiLCBSUExfNCB+ICJTVkkgUXVhcnRpbGUiLCBhbnhpZXR5XzIgfiJBbnhpZXR5IiwgZGVwcmVzc2lvbl8yIH4gIkRlcHJlc3Npb24iLCBtYXhfY2ggfiAiQ2hhcmxzb24gQ29tb3JiaWRpdHkgSW5kZXgiKSwgZXhwb25lbnRpYXRlID0gVFJVRSkKCiMjIE1vZGVsIHBlcmZvcm1hbmNlCm1vZGVsX3BlcmZvcm1hbmNlKGV0b2gyKQpwZXJmb3JtYW5jZTo6Y2hlY2tfbW9kZWwoZXRvaDIsIHBhbmVsID0gVFJVRSkKCiMjIE1hcmdpbnMKY3Bsb3QoZXRvaDIsICJSUExfNCIsIHdoYXQgPSAicHJlZGljdGlvbiIsIG1haW4gPSAiUGVyY2VudCBMaWtlbGlob29kIG9mIEFsY29ob2wgVXNlIEdpdmVuIFNWSSBRdWFydGlsZSIpCmBgYAoKIyMgQWxjb2hvbCBVc2UgKyBBbGwgVGhlbWVzIApgYGB7cn0KIyByZW1vdmluZyBtc3RhdF81IGFuZCByZWxpZ19hZmZpbCBiZWNhdXNlIG9mIG1pc3NpbmcgZGF0YSBhbmQgbWFkZSBubyBkaWZmZXJlbmNlIGluIGJpdmFyaWF0ZSBtb2RlbHMgCgpldG9oMyA8LSBnbG0oZXRvaF91c2UgfiBhZ2VfeXJzICsgZ2VuZGVyICsgcmFjZV81ICsgZXRobmljXzMgKyBsYW5nXzMgICsgCiAgICAgICAgICAgICAgICBtYXhfY2ggKyBhbnhpZXR5XzIgKyBkZXByZXNzaW9uXzIgKyBSUExfVEhFTUUxICsgUlBMX1RIRU1FMiArIFJQTF9USEVNRTMgKyAKICAgICAgICAgICAgICAgIFJQTF9USEVNRTQsCiAgICAgICAgICAgICAgZmFtaWx5ID0gImJpbm9taWFsIiwKICAgICAgICAgICAgICBkYXRhID0gbWhfdmF4X2NvX3N1YikKc3VtbWFyeShldG9oMykKYnJvb206OmdsYW5jZShldG9oMykKYnJvb206OnRpZHkoZXRvaDMsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCnRibF9yZWdyZXNzaW9uKGV0b2gzLCBsYWJlbCA9IGxpc3QoYWdlX3lycyB+ICJBZ2UiLCBnZW5kZXJ+ICJHZW5kZXIiLCByYWNlXzUgfiAiUmFjZSIsIGV0aG5pY18zIH4gIkV0aG5pY2l0eSIsIGxhbmdfMyB+ICJQcmVmZXJyZWQgTGFuZ3VhZ2UiLCBhbnhpZXR5XzIgfiJBbnhpZXR5IiwgZGVwcmVzc2lvbl8yIH4gIkRlcHJlc3Npb24iLCBtYXhfY2ggfiAiQ2hhcmxzb24gQ29tb3JiaWRpdHkgSW5kZXgiLCBSUExfVEhFTUUxIH4gIlNvY2Vpb2Vjb25vbWljIFN0YXR1cyIsIFJQTF9USEVNRTIgfiAiSG91c2Vob2xkIENvbXBvc2l0aW9uIiwgUlBMX1RIRU1FMyB+ICJNaW5vcml0eSBTdGF0dXMgYW5kIExhbmd1YWdlIiwgUlBMX1RIRU1FNCB+ICJIb3VzaW5nIGFuZCBUcmFuc3BvcnRhdGlvbiIpLCBleHBvbmVudGlhdGUgPSBUUlVFKQoKIyMgTW9kZWwgcGVyZm9ybWFuY2UKbW9kZWxfcGVyZm9ybWFuY2UoZXRvaDMpCnBlcmZvcm1hbmNlOjpjaGVja19tb2RlbChldG9oMywgcGFuZWwgPSBUUlVFKQoKIyMgTWFyZ2lucwpjcGxvdChldG9oMywgIlJQTF9USEVNRTEiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlBlcmNlbnQgTGlrZWxpaG9vZCBvZiBBbGNvaG9sIFVzZSBHaXZlbiBUSEVNRTEiKQpjcGxvdChldG9oMywgIlJQTF9USEVNRTIiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlBlcmNlbnQgTGlrZWxpaG9vZCBvZiBBbGNvaG9sIFVzZSBHaXZlbiBUSEVNRTIiKQpjcGxvdChldG9oMywgIlJQTF9USEVNRTMiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlBlcmNlbnQgTGlrZWxpaG9vZCBvZiBBbGNvaG9sIFVzZSBHaXZlbiBUSEVNRTMiKQpjcGxvdChldG9oMywgIlJQTF9USEVNRTQiLCB3aGF0ID0gInByZWRpY3Rpb24iLCBtYWluID0gIlBlcmNlbnQgTGlrZWxpaG9vZCBvZiBBbGNvaG9sIFVzZSBHaXZlbiBUSEVNRTQiKQpgYGAKCg==