Check for normality of distributions of predictor variables

Transformations not needed.

GxE interaction models

Model 1a: Gene by childhood risk interaction effect on SIR

genes$transporter_fac <- as.factor(genes$transporter_fac)
genes$triallelic_fac <- as.factor(genes$triallelic_fac)
mod1a <- lm(SIR_tot ~ transporter_fac*risk_c, data=genes)
summary(mod1a)

Call:
lm(formula = SIR_tot ~ transporter_fac * risk_c, data = genes)

Residuals:
    Min      1Q  Median      3Q     Max 
-18.932  -6.396  -0.719   4.759  37.323 

Coefficients:
                        Estimate Std. Error t value Pr(>|t|)    
(Intercept)              18.5390     1.0079  18.394   <2e-16 ***
transporter_fac1          0.8415     1.3115   0.642   0.5216    
transporter_fac2          0.4376     1.6510   0.265   0.7912    
risk_c                    2.9180     1.5856   1.840   0.0668 .  
transporter_fac1:risk_c   2.6144     2.1429   1.220   0.2235    
transporter_fac2:risk_c   5.1826     2.4757   2.093   0.0372 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 9.641 on 273 degrees of freedom
  (77 observations deleted due to missingness)
Multiple R-squared:  0.1194,    Adjusted R-squared:  0.1032 
F-statistic: 7.401 on 5 and 273 DF,  p-value: 1.581e-06

Model 1b: Same model incorporating rs25531

mod1b <- lm(SIR_tot ~ triallelic_fac*risk_c, data=genes)
summary(mod1b)

Call:
lm(formula = SIR_tot ~ triallelic_fac * risk_c, data = genes)

Residuals:
    Min      1Q  Median      3Q     Max 
-19.762  -6.164  -0.723   4.860  37.496 

Coefficients:
                       Estimate Std. Error t value Pr(>|t|)    
(Intercept)             19.6438     1.2072  16.273   <2e-16 ***
triallelic_fac1         -1.1083     1.4729  -0.753   0.4524    
triallelic_fac2         -0.1807     1.6404  -0.110   0.9123    
risk_c                   4.4174     1.8915   2.335   0.0203 *  
triallelic_fac1:risk_c  -0.2015     2.3568  -0.085   0.9319    
triallelic_fac2:risk_c   3.1254     2.5530   1.224   0.2219    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 9.732 on 269 degrees of freedom
  (81 observations deleted due to missingness)
Multiple R-squared:  0.1145,    Adjusted R-squared:  0.098 
F-statistic: 6.954 on 5 and 269 DF,  p-value: 3.976e-06

Model 2: Add neuroticism as covariate

genes$neur_c <- genes$Neurot - mean(genes$Neurot, na.rm=T)
mod2a <- lm(SIR_tot ~ transporter_fac*risk_c + neur_c, data=genes)
summary(mod2a)

Call:
lm(formula = SIR_tot ~ transporter_fac * risk_c + neur_c, data = genes)

Residuals:
    Min      1Q  Median      3Q     Max 
-17.481  -6.596  -1.158   4.617  36.088 

Coefficients:
                        Estimate Std. Error t value Pr(>|t|)    
(Intercept)              18.6905     1.0100  18.505   <2e-16 ***
transporter_fac1          0.6231     1.3119   0.475   0.6352    
transporter_fac2          0.2231     1.6479   0.135   0.8924    
risk_c                    2.5813     1.5854   1.628   0.1047    
neur_c                    1.6671     0.7445   2.239   0.0259 *  
transporter_fac1:risk_c   2.3238     2.1357   1.088   0.2775    
transporter_fac2:risk_c   5.3105     2.4635   2.156   0.0320 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 9.588 on 271 degrees of freedom
  (78 observations deleted due to missingness)
Multiple R-squared:  0.1354,    Adjusted R-squared:  0.1162 
F-statistic: 7.072 on 6 and 271 DF,  p-value: 5.205e-07
mod2b <- lm(SIR_tot ~ triallelic_fac*risk_c + neur_c, data=genes)
summary(mod2b)

Call:
lm(formula = SIR_tot ~ triallelic_fac * risk_c + neur_c, data = genes)

Residuals:
    Min      1Q  Median      3Q     Max 
-18.710  -6.507  -1.421   4.642  36.160 

Coefficients:
                       Estimate Std. Error t value Pr(>|t|)    
(Intercept)            19.98296    1.21511  16.445   <2e-16 ***
triallelic_fac1        -1.54226    1.48016  -1.042   0.2984    
triallelic_fac2        -0.54281    1.64198  -0.331   0.7412    
risk_c                  3.72642    1.90371   1.957   0.0513 .  
neur_c                  1.78906    0.75643   2.365   0.0187 *  
triallelic_fac1:risk_c  0.05525    2.34486   0.024   0.9812    
triallelic_fac2:risk_c  3.44106    2.54066   1.354   0.1768    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 9.666 on 267 degrees of freedom
  (82 observations deleted due to missingness)
Multiple R-squared:  0.1328,    Adjusted R-squared:  0.1133 
F-statistic: 6.815 on 6 and 267 DF,  p-value: 9.703e-07

Model results hold when neuroticism entered as covariate.

Compare models 1 and 2

Dependent variable:
SIR_tot
(1) (2)
Constant 18.539*** 18.690***
(1.008) (1.010)
LaLa 0.842 0.623
(1.311) (1.312)
SS 0.438 0.223
(1.651) (1.648)
EarlyStress 2.918* 2.581
(1.586) (1.585)
Neuroticism 1.667**
(0.744)
LaLa*EarlyStress 2.614 2.324
(2.143) (2.136)
SS*EarlyStress 5.183** 5.310**
(2.476) (2.463)
Observations 279 278
R2 0.119 0.135
Adjusted R2 0.103 0.116
Residual Std. Error 9.641 (df = 273) 9.588 (df = 271)
F Statistic 7.401*** (df = 5; 273) 7.072*** (df = 6; 271)
Note: p<0.1; p<0.05; p<0.01

Interaction plots

Scale for 'colour' is already present. Adding another scale for 'colour', which will replace the
existing scale.

Scale for 'colour' is already present. Adding another scale for 'colour', which will replace the
existing scale.

LaLa group displays a greater susceptibility to the impact of life stress (NLEQ) on self-control, whereas SS group less reactive to life stress in terms of effects on hoarding.

Specificity quesition

Rerun models 1 and 2 substituting OCIR as outcome variable

mod4a <- lm(OCIR_tot ~ transporter_fac*risk_c, data=genes)
summary(mod4a)

Call:
lm(formula = OCIR_tot ~ transporter_fac * risk_c, data = genes)

Residuals:
    Min      1Q  Median      3Q     Max 
-18.520  -7.019  -2.460   6.120  35.451 

Coefficients:
                        Estimate Std. Error t value Pr(>|t|)    
(Intercept)               12.171      1.006  12.097   <2e-16 ***
transporter_fac1           1.776      1.310   1.356   0.1761    
transporter_fac2           1.816      1.630   1.114   0.2663    
risk_c                     3.024      1.595   1.896   0.0590 .  
transporter_fac1:risk_c    3.838      2.149   1.786   0.0752 .  
transporter_fac2:risk_c    2.400      2.476   0.969   0.3332    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 9.632 on 275 degrees of freedom
  (75 observations deleted due to missingness)
Multiple R-squared:  0.1194,    Adjusted R-squared:  0.1034 
F-statistic:  7.46 on 5 and 275 DF,  p-value: 1.394e-06
mod4b <- lm(OCIR_tot ~ triallelic_fac*risk_c, data=genes)
summary(mod4b)

Call:
lm(formula = OCIR_tot ~ triallelic_fac * risk_c, data = genes)

Residuals:
    Min      1Q  Median      3Q     Max 
-17.524  -6.824  -2.538   5.459  35.462 

Coefficients:
                       Estimate Std. Error t value Pr(>|t|)    
(Intercept)             13.0130     1.2045  10.804   <2e-16 ***
triallelic_fac1          0.2558     1.4696   0.174   0.8619    
triallelic_fac2          0.9039     1.6271   0.556   0.5790    
risk_c                   4.4067     1.8872   2.335   0.0203 *  
triallelic_fac1:risk_c   0.7344     2.3564   0.312   0.7556    
triallelic_fac2:risk_c   1.5885     2.5451   0.624   0.5331    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 9.71 on 271 degrees of freedom
  (79 observations deleted due to missingness)
Multiple R-squared:  0.1045,    Adjusted R-squared:  0.08794 
F-statistic: 6.323 on 5 and 271 DF,  p-value: 1.432e-05
mod5a <- lm(OCIR_tot ~ transporter_fac*risk_c + neur_c, data=genes)
summary(mod5a)

Call:
lm(formula = OCIR_tot ~ transporter_fac * risk_c + neur_c, data = genes)

Residuals:
    Min      1Q  Median      3Q     Max 
-18.618  -6.156  -2.597   4.410  35.306 

Coefficients:
                        Estimate Std. Error t value Pr(>|t|)    
(Intercept)              12.4641     0.9707  12.840  < 2e-16 ***
transporter_fac1          1.3346     1.2614   1.058    0.291    
transporter_fac2          1.2938     1.5679   0.825    0.410    
risk_c                    2.2946     1.5344   1.495    0.136    
neur_c                    3.7023     0.7139   5.186 4.19e-07 ***
transporter_fac1:risk_c   3.1742     2.0625   1.539    0.125    
transporter_fac2:risk_c   2.7155     2.3727   1.144    0.253    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 9.224 on 273 degrees of freedom
  (76 observations deleted due to missingness)
Multiple R-squared:  0.1984,    Adjusted R-squared:  0.1808 
F-statistic: 11.26 on 6 and 273 DF,  p-value: 3.065e-11
mod5b <- lm(OCIR_tot ~ triallelic_fac*risk_c + neur_c, data=genes)
summary(mod5b)

Call:
lm(formula = OCIR_tot ~ triallelic_fac * risk_c + neur_c, data = genes)

Residuals:
    Min      1Q  Median      3Q     Max 
-19.118  -6.350  -2.285   4.645  35.857 

Coefficients:
                       Estimate Std. Error t value Pr(>|t|)    
(Intercept)             13.6735     1.1621  11.767  < 2e-16 ***
triallelic_fac1         -0.6156     1.4156  -0.435    0.664    
triallelic_fac2          0.1228     1.5624   0.079    0.937    
risk_c                   2.8428     1.8205   1.562    0.120    
neur_c                   3.9457     0.7208   5.474 1.01e-07 ***
triallelic_fac1:risk_c   1.3814     2.2476   0.615    0.539    
triallelic_fac2:risk_c   2.3625     2.4282   0.973    0.331    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 9.245 on 269 degrees of freedom
  (80 observations deleted due to missingness)
Multiple R-squared:  0.1942,    Adjusted R-squared:  0.1762 
F-statistic: 10.81 on 6 and 269 DF,  p-value: 9.022e-11

Nonsignificant results in OCIR models suggesting that GxE effects seem to be specific to hoarding.

LS0tCnRpdGxlOiAiQ2FydmVyX0RhdGFfYW5hbHlzaXMiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSwgd2FybmluZz1GQUxTRSkKbGlicmFyeShmb3JlaWduKQpsaWJyYXJ5KHBzeWNoKQpsaWJyYXJ5KHN0YXJnYXplcikKbGlicmFyeShkcGx5cikKbGlicmFyeShzalBsb3QpCmxpYnJhcnkoZ2dwbG90MikKbGlicmFyeShzZW1Ub29scykKbGlicmFyeShncmlkKQpnZW5lczwtcmVhZC5jc3YoImNhcnZlckRhdGFNUGx1cy5jc3YiKQpzdHIoZ2VuZXMpCmBgYApgYGB7ciwgaW5jbHVkZT1GQUxTRX0KI2xvb2sgYXQgZ2VuZXMgdmFyaWFibGVzCnN1bW1hcnkoYXMuZmFjdG9yKGdlbmVzJHRyaWFsbGVsaWMpKQojTGFMYSBjb2RlZCAwLCBTYS9TYSBjb2RlZCAyLCBlbHNlIDEKCiNyZWNvZGUgc2VydCBnZW5lIHZhcmlhYmxlCmdlbmVzJHRyaWFsbGVsaWNfcmVjb2RlIDwtIGlmZWxzZShnZW5lcyR0cmlhbGxlbGljPT0xLC0xLGlmZWxzZShnZW5lcyR0cmlhbGxlbGljPT0yLDEsMCkpCiNTUyBjb2RlZCAxLCBMYUxhIGNvZGVkIDAsIGVsc2UgLTEKc3VtbWFyeShhcy5mYWN0b3IoZ2VuZXMkdHJpYWxsZWxpY19yZWNvZGUpKQogICAgICAgIApnZW5lcyRMYUxhX2VmZiA8LSBpZmVsc2UoZ2VuZXMkdHJpYWxsZWxpY19yZWNvZGU9PTEsMSwgaWZlbHNlKGdlbmVzJHRyaWFsbGVsaWNfcmVjb2RlPT0wLCAwLCAtMSkpCmdlbmVzJFNTX2VmZiA8LSBpZmVsc2UoZ2VuZXMkdHJpYWxsZWxpY19yZWNvZGU9PTAsMSwgaWZlbHNlKGdlbmVzJHRyaWFsbGVsaWNfcmVjb2RlPT0xLCAwLCAtMSkpCgpnZW5lcyRMYUxhX2QgPC0gaWZlbHNlKGdlbmVzJHRyaWFsbGVsaWNfcmVjb2RlPT0wLDEsIDApCmdlbmVzJFNTX2QgPC0gaWZlbHNlKGdlbmVzJHRyaWFsbGVsaWNfcmVjb2RlPT0xLDEsMCkKCmdlbmVzJExhTGFfZTIgPC0gaWZlbHNlKGdlbmVzJHRyaWFsbGVsaWNfcmVjb2RlPT0wLDEsIC0xKQpnZW5lcyRTU19lMiA8LSBpZmVsc2UoZ2VuZXMkdHJpYWxsZWxpY19yZWNvZGU9PTEsMSwtMSkKYGBgCgojIyBDaGVjayBmb3Igbm9ybWFsaXR5IG9mIGRpc3RyaWJ1dGlvbnMgb2YgcHJlZGljdG9yIHZhcmlhYmxlcwpgYGB7ciwgaW5jbHVkZT1GLCB3YXJuaW5nPUZ9Cmhpc3QoZ2VuZXMkUmlzaykKCiN0cmFuc2Zvcm0gcmlzayB2YXJpYWJsZSBiYyBoaWdobHkgcG9zaXRpdmVseSBza2V3ZWQKZ2VuZXMkc3FydFJpc2sgPC0gc3FydChnZW5lcyRSaXNrKQoKI2NlbnRlciByaXNrIHZhcmlhYmxlCmdlbmVzJHJpc2tfYyA8LSBnZW5lcyRSaXNrIC0gbWVhbihnZW5lcyRSaXNrLCBuYS5ybT1UKQpzdW1tYXJ5KGdlbmVzJHJpc2tfYykKCmdlbmVzJHNxcnRSaXNrX2MgPC0gZ2VuZXMkc3FydFJpc2sgLSBtZWFuKGdlbmVzJHNxcnRSaXNrLCBuYS5ybT1UKQpzdW1tYXJ5KGdlbmVzJHNxcnRSaXNrX2MpCmBgYApUcmFuc2Zvcm1hdGlvbnMgbm90IG5lZWRlZC4KCmBgYHtyLCBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBpbmNsdWRlPUZ9CnAxIDwtIGdncGxvdChkYXRhID0gc3Vic2V0KGdlbmVzLCAhaXMubmEoUmlzaykpLCBhZXMoeCA9IFJpc2spKSArIGdlb21faGlzdG9ncmFtKGFlcyh4ID0gUmlzayksIGJpbndpZHRoID0gNSkKCnAyIDwtIGdncGxvdChkYXRhID0gc3Vic2V0KGdlbmVzLCAhaXMubmEoc3FydFJpc2spKSwgYWVzKHggPSBzcXJ0UmlzaykpICsgZ2VvbV9oaXN0b2dyYW0oYWVzKHggPSBzcXJ0UmlzayksIGJpbndpZHRoID0gMikKCmdyaWQubmV3cGFnZSgpCnB1c2hWaWV3cG9ydCh2aWV3cG9ydChsYXlvdXQ9Z3JpZC5sYXlvdXQoMSwyKSkpCnByaW50KHAxLHZwPXZpZXdwb3J0KGxheW91dC5wb3Mucm93PTEsbGF5b3V0LnBvcy5jb2w9MSkpCnByaW50KHAyLHZwPXZpZXdwb3J0KGxheW91dC5wb3Mucm93PTEsbGF5b3V0LnBvcy5jb2w9MikpCmBgYAoKIyMgR3hFIGludGVyYWN0aW9uIG1vZGVscwojIyMgTW9kZWwgMWE6IEdlbmUgYnkgY2hpbGRob29kIHJpc2sgaW50ZXJhY3Rpb24gZWZmZWN0IG9uIFNJUgpgYGB7ciwgd2FybmluZz1GQUxTRX0KZ2VuZXMkdHJhbnNwb3J0ZXJfZmFjIDwtIGFzLmZhY3RvcihnZW5lcyR0cmFuc3BvcnRlcl9mYWMpCmdlbmVzJHRyaWFsbGVsaWNfZmFjIDwtIGFzLmZhY3RvcihnZW5lcyR0cmlhbGxlbGljX2ZhYykKbW9kMWEgPC0gbG0oU0lSX3RvdCB+IHRyYW5zcG9ydGVyX2ZhYypyaXNrX2MsIGRhdGE9Z2VuZXMpCnN1bW1hcnkobW9kMWEpCmBgYAoKIyMjIE1vZGVsIDFiOiBTYW1lIG1vZGVsIGluY29ycG9yYXRpbmcgcnMyNTUzMQpgYGB7ciwgd2FybmluZz1GQUxTRX0KbW9kMWIgPC0gbG0oU0lSX3RvdCB+IHRyaWFsbGVsaWNfZmFjKnJpc2tfYywgZGF0YT1nZW5lcykKc3VtbWFyeShtb2QxYikKYGBgCgojIyMgTW9kZWwgMjogQWRkIG5ldXJvdGljaXNtIGFzIGNvdmFyaWF0ZQpgYGB7ciwgd2FybmluZz1GQUxTRX0KZ2VuZXMkbmV1cl9jIDwtIGdlbmVzJE5ldXJvdCAtIG1lYW4oZ2VuZXMkTmV1cm90LCBuYS5ybT1UKQoKbW9kMmEgPC0gbG0oU0lSX3RvdCB+IHRyYW5zcG9ydGVyX2ZhYypyaXNrX2MgKyBuZXVyX2MsIGRhdGE9Z2VuZXMpCnN1bW1hcnkobW9kMmEpCgptb2QyYiA8LSBsbShTSVJfdG90IH4gdHJpYWxsZWxpY19mYWMqcmlza19jICsgbmV1cl9jLCBkYXRhPWdlbmVzKQpzdW1tYXJ5KG1vZDJiKQpgYGAKTW9kZWwgcmVzdWx0cyBob2xkIHdoZW4gbmV1cm90aWNpc20gZW50ZXJlZCBhcyBjb3ZhcmlhdGUuCgojIyBDb21wYXJlIG1vZGVscyAxIGFuZCAyCmBgYHtyLCBlY2hvPUYsIHdhcm5pbmc9RiwgcmVzdWx0cz0iYXNpcyJ9CnN0YXJnYXplcihtb2QxYSxtb2QyYSwgdHlwZT0iaHRtbCIsIGludGVyY2VwdC5ib3R0b20gPSBGLCBjb3ZhcmlhdGUubGFiZWxzID0gYygiQ29uc3RhbnQiLCAiTGFMYSIsICJTUyIsICJFYXJseVN0cmVzcyIsICJOZXVyb3RpY2lzbSIsICJMYUxhKkVhcmx5U3RyZXNzIiwgIlNTKkVhcmx5U3RyZXNzIikpCmBgYAoKIyMgSW50ZXJhY3Rpb24gcGxvdHMKYGBge3IsIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIGluY2x1ZGU9RkFMU0V9CmludGEgPC0gbG0oU0lSX3RvdCB+IHRyaWFsbGVsaWNfZmFjKnJpc2tfYywgZGF0YT1nZW5lcykKc3VtbWFyeShpbnQpCgppbnQyYSA8LSBzanAuaW50KGludCwgdHlwZT0iZWZmIiwgaW50LnRlcm09KCJ0cmFuc3BvcnRlcl9mYWMqcmlza19jIiksIHN3YXAucHJlZD1GLCBmYWNldC5ncmlkPUYsIG1kcnQudmFsdWVzPSJxdWFydCIpCgppbnQgPC0gbG0oU0lSX3RvdCB+IHRyYW5zcG9ydGVyX2ZhYypyaXNrX2MsIGRhdGE9Z2VuZXMpCnN1bW1hcnkoaW50YSkKCmludDIgPC0gc2pwLmludChpbnRhLCB0eXBlPSJlZmYiLCBpbnQudGVybT0oInRyaWFsbGVsaWNfZmFjKnJpc2tfYyIpLCBzd2FwLnByZWQ9RiwgZmFjZXQuZ3JpZD1GLCBtZHJ0LnZhbHVlcz0icXVhcnQiKQpgYGAKCmBgYHtyLCBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQppbnQyYSRwbG90Lmxpc3RbWzFdXSArIGxhYnModGl0bGU9Ik1vZGVyYXRpbmcgZWZmZWN0IG9mIGVhcmx5IHN0cmVzcyBvbiByZWxhdGlvbnNoaXAgXG5iZXR3ZWVuIHNlcm90b25pbiB0cmFuc3BvcnRlciBhbmQgaG9hcmRpbmciLCB4PSJDaGlsZGhvb2Qgc3RyZXNzIChSRlEpIiwgeT0iSG9hcmRpbmcgKFNJUikiLCBjb2xvcj1jKCJHZW5vdHlwZSIpKSArIHNjYWxlX2NvbG9yX2Rpc2NyZXRlKGxhYmVscz1jKCJML0wiLCJTL0wiLCJTL1MiKSkgKyB0aGVtZShwbG90LnRpdGxlPWVsZW1lbnRfdGV4dChoanVzdD0uNSksIHBhbmVsLmJhY2tncm91bmQ9ZWxlbWVudF9ibGFuaygpLCBheGlzLmxpbmU9ZWxlbWVudF9saW5lKGNvbG9yPSJibGFjayIpKQoKaW50MiRwbG90Lmxpc3RbWzFdXSArIGxhYnModGl0bGU9Ik1vZGVyYXRpbmcgZWZmZWN0IG9mIGVhcmx5IHN0cmVzcyBvbiByZWxhdGlvbnNoaXAgXG5iZXR3ZWVuIHNlcm90b25pbiB0cmFuc3BvcnRlciBhbmQgaG9hcmRpbmciLCB4PSJDaGlsZGhvb2Qgc3RyZXNzIChSRlEpIiwgeT0iSG9hcmRpbmcgKFNJUikiLCBjb2xvcj1jKCJHZW5vdHlwZSIpKSArIHNjYWxlX2NvbG9yX2Rpc2NyZXRlKGxhYmVscz1jKCJMYS9MYSIsIk90aGVyIiwiU3gvU3giKSkgKyB0aGVtZShwbG90LnRpdGxlPWVsZW1lbnRfdGV4dChoanVzdD0uNSksIHBhbmVsLmJhY2tncm91bmQ9ZWxlbWVudF9ibGFuaygpLCBheGlzLmxpbmU9ZWxlbWVudF9saW5lKGNvbG9yPSJibGFjayIpKQoKCiNCYXNpY2FsbHkgaGVyZSwgaXQgbG9va3MgbGlrZSB0aGUgTGFMYSBncm91cCBpcyBkaXNwbGF5aW5nIGEgZ3JlYXRlciBzdXNjZXB0aWJpbGl0eSB0byB0aGUgaW1wYWN0IG9mIGxpZmUgc3RyZXNzIChOTEVRKSBvbiBzZWxmLWNvbnRyb2wuIFRoaXMgbG9va3MgbGlrZSBzb21lIHR5cGUgb2YgZGlmZmVyZW50aWFsIHN1c2NlcHRpYmlsaXR5IHNpdHVhdGlvbiwgc2luY2UgdGhleSdyZSBqdXN0IG92ZXJhbGwgbW9yZSByZWFjdGl2ZS4gSG93ZXZlciwgaXQgc3RpbGwgbWFrZXMgdGhlIHNpdHVhdGlvbiBjb25mdXNpbmcgd2l0aCByZWdhcmQgdG8gaG9hcmRpbmcuCmBgYApMYUxhIGdyb3VwIGRpc3BsYXlzIGEgZ3JlYXRlciBzdXNjZXB0aWJpbGl0eSB0byB0aGUgaW1wYWN0IG9mIGxpZmUgc3RyZXNzIChOTEVRKSBvbiBzZWxmLWNvbnRyb2wsIHdoZXJlYXMgU1MgZ3JvdXAgbGVzcyByZWFjdGl2ZSB0byBsaWZlIHN0cmVzcyBpbiB0ZXJtcyBvZiBlZmZlY3RzIG9uIGhvYXJkaW5nLgoKIyMgU3BlY2lmaWNpdHkgcXVlc2l0aW9uIAojIyMgUmVydW4gbW9kZWxzIDEgYW5kIDIgc3Vic3RpdHV0aW5nIE9DSVIgYXMgb3V0Y29tZSB2YXJpYWJsZQpgYGB7ciwgd2FybmluZz1GQUxTRX0KbW9kNGEgPC0gbG0oT0NJUl90b3QgfiB0cmFuc3BvcnRlcl9mYWMqcmlza19jLCBkYXRhPWdlbmVzKQpzdW1tYXJ5KG1vZDRhKQoKbW9kNGIgPC0gbG0oT0NJUl90b3QgfiB0cmlhbGxlbGljX2ZhYypyaXNrX2MsIGRhdGE9Z2VuZXMpCnN1bW1hcnkobW9kNGIpCgptb2Q1YSA8LSBsbShPQ0lSX3RvdCB+IHRyYW5zcG9ydGVyX2ZhYypyaXNrX2MgKyBuZXVyX2MsIGRhdGE9Z2VuZXMpCnN1bW1hcnkobW9kNWEpCgptb2Q1YiA8LSBsbShPQ0lSX3RvdCB+IHRyaWFsbGVsaWNfZmFjKnJpc2tfYyArIG5ldXJfYywgZGF0YT1nZW5lcykKc3VtbWFyeShtb2Q1YikKYGBgCk5vbnNpZ25pZmljYW50IHJlc3VsdHMgaW4gT0NJUiBtb2RlbHMgc3VnZ2VzdGluZyB0aGF0IEd4RSBlZmZlY3RzIHNlZW0gdG8gYmUgc3BlY2lmaWMgdG8gaG9hcmRpbmcuCgo=