my_dodge <- .3
theme_set(theme_minimal())
a_posteriori <- function(afex_aov, sig_level = .05) {
factors <- as.list(rownames(afex_aov$anova_table))
for (j in 1:length(factors)) {
if (grepl(':', factors[[j]])) {
factors[[j]] <- unlist(strsplit(factors[[j]], ':'))
}
}
p_values <- afex_aov$anova_table$`Pr(>F)`
for (i in 1:length(p_values)) {
if (p_values[i] <= sig_level) {
cat(rep('_', 60), '\n', sep = '')
base::print(emmeans(afex_aov, factors[[i]], contr = 'pairwise'))
}
}
}
data_dir <- '~/Insync/OneDrive/00LABWORKS_onedrive/Pernia/Estabilometria_parkinson_alzheimer_y_controles_Antiguo/data/'
emo_data_clean <- read.csv(paste0(data_dir, 'emo_data_clean_30s.csv'), header = TRUE) |>
# select(Group:sampen_delta_phi) |>
filter(Group != 'Parkinson') |>
mutate_if(is.character, as.factor) |>
mutate(Stimulus = factor(Stimulus, levels = c('Unpleasant', 'Neutral', 'Pleasant')),
log10_area = log10(area),
log10_axis1 = log10(axis1),
log10_axis2 = log10(axis2),
log10_mdist = log10(mdist),
log10_rmv = log10(rmv),
log10_rmsx = log10(rmsx),
log10_rmsy = log10(rmsy),
log10_MPFx = log10(MPFx),
log10_MPFy = log10(MPFy),
log10_PEAKx = log10(PEAKx),
log10_PEAKy = log10(PEAKy),
log10_F50x = log10(F50x),
log10_F50y = log10(F50y),
log10_F95x = log10(F95x),
log10_F95y = log10(F95y),
log10_sampen_x = log10(sampen_x),
log10_sampen_y = log10(sampen_y),
log10_rmssd = log10(rMSSD),
log10_ave_phasic_eda = log10(ave_phasic_eda))
write.csv(emo_data_clean, 'data_alz_ctr_30s.csv', row.names = FALSE)
General
Description
options(width = 100)
summary(emo_data_clean)
Group Paradigm Stimulus Emotion ID
Alzheimer:135 Old:315 Unpleasant:105 Yes:315 AD_02 : 3
Control :180 Neutral :105 AD_03 : 3
Pleasant :105 AD_05 : 3
AD_06 : 3
AD_08 : 3
AD_09 : 3
(Other):297
filename area axis1
4_CARGA_EMOCIONAL-1._CONDICION_NEUTRA-AD-AD_02: 1 Min. : 25.08 Min. : 4.623
4_CARGA_EMOCIONAL-1._CONDICION_NEUTRA-AD-AD_03: 1 1st Qu.: 117.02 1st Qu.: 8.893
4_CARGA_EMOCIONAL-1._CONDICION_NEUTRA-AD-AD_05: 1 Median : 190.21 Median :11.511
4_CARGA_EMOCIONAL-1._CONDICION_NEUTRA-AD-AD_06: 1 Mean : 266.47 Mean :12.366
4_CARGA_EMOCIONAL-1._CONDICION_NEUTRA-AD-AD_08: 1 3rd Qu.: 331.46 3rd Qu.:14.544
4_CARGA_EMOCIONAL-1._CONDICION_NEUTRA-AD-AD_09: 1 Max. :1837.15 Max. :31.254
(Other) :309 NA's :4 NA's :4
axis2 angle mdist rmv rmsx
Min. : 1.274 Min. :-3.125 Min. : 1.745 Min. : 5.328 Min. : 0.6956
1st Qu.: 3.838 1st Qu.: 1.380 1st Qu.: 3.678 1st Qu.: 9.680 1st Qu.: 1.6770
Median : 5.733 Median : 1.564 Median : 4.492 Median :12.388 Median : 2.4610
Mean : 6.113 Mean : 1.440 Mean : 4.855 Mean :14.149 Mean : 2.8290
3rd Qu.: 7.610 3rd Qu.: 1.689 3rd Qu.: 5.787 3rd Qu.:16.243 3rd Qu.: 3.3661
Max. :19.538 Max. : 3.141 Max. :12.610 Max. :52.891 Max. :10.9854
NA's :4 NA's :4 NA's :4 NA's :4 NA's :4
rmsy MPFx PEAKx F50x F95x
Min. : 1.888 Min. :0.0005555 Min. :0.0002441 Min. :0.0004883 Min. :0.001953
1st Qu.: 3.475 1st Qu.:0.0017418 1st Qu.:0.0002441 1st Qu.:0.0007324 1st Qu.:0.005371
Median : 4.493 Median :0.0023966 Median :0.0002441 Median :0.0014648 Median :0.006836
Mean : 4.809 Mean :0.0026206 Mean :0.0009138 Mean :0.0018754 Mean :0.007595
3rd Qu.: 5.694 3rd Qu.:0.0032021 3rd Qu.:0.0007324 3rd Qu.:0.0025635 3rd Qu.:0.009033
Max. :12.276 Max. :0.0082088 Max. :0.0109863 Max. :0.0083008 Max. :0.030029
NA's :4 NA's :4 NA's :4 NA's :4 NA's :4
MPFy PEAKy F50y F95y forward_mov
Min. :0.0005804 Min. :0.0002441 Min. :0.0004883 Min. :0.001709 Min. :0.07765
1st Qu.:0.0019828 1st Qu.:0.0002441 1st Qu.:0.0012207 1st Qu.:0.006348 1st Qu.:0.44945
Median :0.0024855 Median :0.0004883 Median :0.0017090 Median :0.008301 Median :0.49765
Mean :0.0027483 Mean :0.0008706 Mean :0.0018157 Mean :0.008717 Mean :0.49939
3rd Qu.:0.0032883 3rd Qu.:0.0012207 3rd Qu.:0.0021973 3rd Qu.:0.010254 3rd Qu.:0.54883
Max. :0.0082241 Max. :0.0053711 Max. :0.0051270 Max. :0.036621 Max. :0.76150
NA's :4 NA's :4 NA's :4 NA's :4 NA's :4
sampen_x sampen_y sampen_resul_vect sampen_phi_rad sampen_delta_phi
Min. :0.0002597 Min. :0.01035 Min. :0.07414 Min. :0.5713 Min. :1.017
1st Qu.:0.1566272 1st Qu.:0.09490 1st Qu.:1.50654 1st Qu.:0.9634 1st Qu.:1.444
Median :0.2942996 Median :0.17092 Median :1.78023 Median :1.0710 Median :1.598
Mean :0.3738033 Mean :0.19577 Mean :1.81725 Mean :1.0764 Mean :1.606
3rd Qu.:0.5082125 3rd Qu.:0.27101 3rd Qu.:2.10425 3rd Qu.:1.1985 3rd Qu.:1.761
Max. :1.4886615 Max. :0.65212 Max. :3.63054 Max. :1.5714 Max. :2.384
NA's :4 NA's :4 NA's :31 NA's :4 NA's :4
heart_rate rMSSD ave_phasic_eda ave_tonic_eda num_ID
Min. : 47.88 Min. : 2.606 Min. :-0.005402 Min. :-2.167 Min. : 1.0
1st Qu.: 64.78 1st Qu.: 8.954 1st Qu.: 0.015605 1st Qu.: 2.730 1st Qu.: 23.0
Median : 72.71 Median : 14.394 Median : 0.050931 Median : 5.071 Median : 49.0
Mean : 72.58 Mean : 39.579 Mean : 0.179517 Mean : 5.583 Mean :175.5
3rd Qu.: 78.85 3rd Qu.: 28.761 3rd Qu.: 0.206522 3rd Qu.: 6.946 3rd Qu.:342.0
Max. :119.19 Max. :402.162 Max. : 3.446827 Max. :27.694 Max. :554.0
NA's :97 NA's :97 NA's :104 NA's :104
log10_area log10_axis1 log10_axis2 log10_mdist log10_rmv
Min. :1.399 Min. :0.6649 Min. :0.1053 Min. :0.2418 Min. :0.7266
1st Qu.:2.068 1st Qu.:0.9490 1st Qu.:0.5840 1st Qu.:0.5656 1st Qu.:0.9859
Median :2.279 Median :1.0611 Median :0.7584 Median :0.6525 Median :1.0930
Mean :2.295 Mean :1.0640 Mean :0.7341 Mean :0.6590 Mean :1.1146
3rd Qu.:2.520 3rd Qu.:1.1627 3rd Qu.:0.8814 3rd Qu.:0.7625 3rd Qu.:1.2107
Max. :3.264 Max. :1.4949 Max. :1.2909 Max. :1.1007 Max. :1.7234
NA's :4 NA's :4 NA's :4 NA's :4 NA's :4
log10_rmsx log10_rmsy log10_MPFx log10_MPFy log10_PEAKx
Min. :-0.1576 Min. :0.2759 Min. :-3.255 Min. :-3.236 Min. :-3.612
1st Qu.: 0.2245 1st Qu.:0.5409 1st Qu.:-2.759 1st Qu.:-2.703 1st Qu.:-3.612
Median : 0.3911 Median :0.6525 Median :-2.620 Median :-2.605 Median :-3.612
Mean : 0.3895 Mean :0.6552 Mean :-2.630 Mean :-2.598 Mean :-3.320
3rd Qu.: 0.5271 3rd Qu.:0.7554 3rd Qu.:-2.495 3rd Qu.:-2.483 3rd Qu.:-3.135
Max. : 1.0408 Max. :1.0890 Max. :-2.086 Max. :-2.085 Max. :-1.959
NA's :4 NA's :4 NA's :4 NA's :4 NA's :4
log10_PEAKy log10_F50x log10_F50y log10_F95x log10_F95y
Min. :-3.612 Min. :-3.311 Min. :-3.311 Min. :-2.709 Min. :-2.767
1st Qu.:-3.612 1st Qu.:-3.135 1st Qu.:-2.913 1st Qu.:-2.270 1st Qu.:-2.197
Median :-3.311 Median :-2.834 Median :-2.767 Median :-2.165 Median :-2.081
Mean :-3.239 Mean :-2.852 Mean :-2.800 Mean :-2.159 Mean :-2.097
3rd Qu.:-2.913 3rd Qu.:-2.592 3rd Qu.:-2.658 3rd Qu.:-2.044 3rd Qu.:-1.989
Max. :-2.270 Max. :-2.081 Max. :-2.290 Max. :-1.522 Max. :-1.436
NA's :4 NA's :4 NA's :4 NA's :4 NA's :4
log10_sampen_x log10_sampen_y log10_rmssd log10_ave_phasic_eda
Min. :-3.5856 Min. :-1.9852 Min. :0.416 Min. :-3.4024
1st Qu.:-0.8051 1st Qu.:-1.0228 1st Qu.:0.952 1st Qu.:-1.7072
Median :-0.5312 Median :-0.7672 Median :1.158 Median :-1.2592
Mean :-0.6003 Mean :-0.8110 Mean :1.262 Mean :-1.2759
3rd Qu.:-0.2940 3rd Qu.:-0.5670 3rd Qu.:1.459 3rd Qu.:-0.6654
Max. : 0.1728 Max. :-0.1857 Max. :2.604 Max. : 0.5374
NA's :4 NA's :4 NA's :97 NA's :114
Time-distance
parameters
options(width = 100)
time_distance <- c('log10_area', 'log10_axis1', 'log10_axis2', 'log10_mdist', 'log10_rmv', 'log10_rmsx', 'log10_rmsy')
time_distance_pairs <- ggpairs(emo_data_clean,
columns = time_distance,
aes(colour = Group, alpha = .25),
progress = FALSE,
lower = list(continuous = wrap("points")))
suppressWarnings(base::print(time_distance_pairs))

summary(emo_data_clean[time_distance])
log10_area log10_axis1 log10_axis2 log10_mdist log10_rmv
Min. :1.399 Min. :0.6649 Min. :0.1053 Min. :0.2418 Min. :0.7266
1st Qu.:2.068 1st Qu.:0.9490 1st Qu.:0.5840 1st Qu.:0.5656 1st Qu.:0.9859
Median :2.279 Median :1.0611 Median :0.7584 Median :0.6525 Median :1.0930
Mean :2.295 Mean :1.0640 Mean :0.7341 Mean :0.6590 Mean :1.1146
3rd Qu.:2.520 3rd Qu.:1.1627 3rd Qu.:0.8814 3rd Qu.:0.7625 3rd Qu.:1.2107
Max. :3.264 Max. :1.4949 Max. :1.2909 Max. :1.1007 Max. :1.7234
NA's :4 NA's :4 NA's :4 NA's :4 NA's :4
log10_rmsx log10_rmsy
Min. :-0.1576 Min. :0.2759
1st Qu.: 0.2245 1st Qu.:0.5409
Median : 0.3911 Median :0.6525
Mean : 0.3895 Mean :0.6552
3rd Qu.: 0.5271 3rd Qu.:0.7554
Max. : 1.0408 Max. :1.0890
NA's :4 NA's :4
Frequency
parameters
options(width = 100)
frequency <- c('log10_MPFx', 'log10_MPFy', 'log10_F50x', 'log10_F50y', 'log10_F95x', 'log10_F95y')
frequency_pairs <- ggpairs(emo_data_clean,
columns = frequency,
aes(colour = Group, alpha = .25),
progress = FALSE,
lower = list(continuous = wrap("points")))
suppressWarnings(base::print(frequency_pairs))

summary(emo_data_clean[frequency])
log10_MPFx log10_MPFy log10_F50x log10_F50y log10_F95x
Min. :-3.255 Min. :-3.236 Min. :-3.311 Min. :-3.311 Min. :-2.709
1st Qu.:-2.759 1st Qu.:-2.703 1st Qu.:-3.135 1st Qu.:-2.913 1st Qu.:-2.270
Median :-2.620 Median :-2.605 Median :-2.834 Median :-2.767 Median :-2.165
Mean :-2.630 Mean :-2.598 Mean :-2.852 Mean :-2.800 Mean :-2.159
3rd Qu.:-2.495 3rd Qu.:-2.483 3rd Qu.:-2.592 3rd Qu.:-2.658 3rd Qu.:-2.044
Max. :-2.086 Max. :-2.085 Max. :-2.081 Max. :-2.290 Max. :-1.522
NA's :4 NA's :4 NA's :4 NA's :4 NA's :4
log10_F95y
Min. :-2.767
1st Qu.:-2.197
Median :-2.081
Mean :-2.097
3rd Qu.:-1.989
Max. :-1.436
NA's :4
Entropy
options(width = 100)
entropy <- c('forward_mov', 'log10_sampen_x', 'log10_sampen_y', 'sampen_resul_vect', 'sampen_phi_rad', 'sampen_delta_phi')
entropy_pairs <- ggpairs(emo_data_clean,
columns = entropy,
aes(colour = Group, alpha = .25),
progress = FALSE,
lower = list(continuous = wrap("points")))
suppressWarnings(base::print(entropy_pairs))

summary(emo_data_clean[entropy])
forward_mov log10_sampen_x log10_sampen_y sampen_resul_vect sampen_phi_rad
Min. :0.07765 Min. :-3.5856 Min. :-1.9852 Min. :0.07414 Min. :0.5713
1st Qu.:0.44945 1st Qu.:-0.8051 1st Qu.:-1.0228 1st Qu.:1.50654 1st Qu.:0.9634
Median :0.49765 Median :-0.5312 Median :-0.7672 Median :1.78023 Median :1.0710
Mean :0.49939 Mean :-0.6003 Mean :-0.8110 Mean :1.81725 Mean :1.0764
3rd Qu.:0.54883 3rd Qu.:-0.2940 3rd Qu.:-0.5670 3rd Qu.:2.10425 3rd Qu.:1.1985
Max. :0.76150 Max. : 0.1728 Max. :-0.1857 Max. :3.63054 Max. :1.5714
NA's :4 NA's :4 NA's :4 NA's :31 NA's :4
sampen_delta_phi
Min. :1.017
1st Qu.:1.444
Median :1.598
Mean :1.606
3rd Qu.:1.761
Max. :2.384
NA's :4
Classic Center of
Pressure
Area (log10)
options(width = 100)
area_rep_anova = aov_ez("ID", "log10_area", emo_data_clean, within = c("Stimulus"), between = c("Group"))
area_afex_plot <-
afex_plot(
area_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
suppressWarnings(base::print(area_afex_plot))

base::print(area_rep_anova)
Anova Table (Type 3 tests)
Response: log10_area
Effect df MSE F ges p.value
1 Group 1, 101 0.25 10.19 ** .077 .002
2 Stimulus 1.77, 178.81 0.03 13.49 *** .023 <.001
3 Group:Stimulus 1.77, 178.81 0.03 4.64 * .008 .014
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(area_rep_anova)
____________________________________________________________
$emmeans
Group emmean SE df lower.CL upper.CL
Alzheimer 2.40 0.0429 101 2.32 2.49
Control 2.22 0.0378 101 2.14 2.29
Results are averaged over the levels of: Stimulus
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer - Control 0.183 0.0572 101 3.192 0.0019
Results are averaged over the levels of: Stimulus
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant 2.33 0.0306 101 2.27 2.39
Neutral 2.24 0.0315 101 2.18 2.30
Pleasant 2.36 0.0324 101 2.29 2.42
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral 0.086 0.0248 101 3.465 0.0022
Unpleasant - Pleasant -0.029 0.0184 101 -1.576 0.2606
Neutral - Pleasant -0.115 0.0252 101 -4.562 <.0001
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
____________________________________________________________
$emmeans
Group Stimulus emmean SE df lower.CL upper.CL
Alzheimer Unpleasant 2.39 0.0460 101 2.30 2.48
Control Unpleasant 2.27 0.0405 101 2.19 2.35
Alzheimer Neutral 2.37 0.0473 101 2.28 2.46
Control Neutral 2.11 0.0417 101 2.03 2.20
Alzheimer Pleasant 2.44 0.0487 101 2.35 2.54
Control Pleasant 2.27 0.0429 101 2.19 2.36
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer Unpleasant - Control Unpleasant 0.11834 0.0613 101 1.932 0.3891
Alzheimer Unpleasant - Alzheimer Neutral 0.01641 0.0372 101 0.441 0.9978
Alzheimer Unpleasant - Control Neutral 0.27384 0.0620 101 4.414 0.0004
Alzheimer Unpleasant - Alzheimer Pleasant -0.05588 0.0277 101 -2.020 0.3383
Alzheimer Unpleasant - Control Pleasant 0.11612 0.0629 101 1.847 0.4409
Control Unpleasant - Alzheimer Neutral -0.10192 0.0623 101 -1.637 0.5764
Control Unpleasant - Control Neutral 0.15551 0.0328 101 4.741 0.0001
Control Unpleasant - Alzheimer Pleasant -0.17421 0.0633 101 -2.751 0.0742
Control Unpleasant - Control Pleasant -0.00222 0.0244 101 -0.091 1.0000
Alzheimer Neutral - Control Neutral 0.25743 0.0630 101 4.084 0.0012
Alzheimer Neutral - Alzheimer Pleasant -0.07229 0.0378 101 -1.911 0.4018
Alzheimer Neutral - Control Pleasant 0.09970 0.0639 101 1.561 0.6256
Control Neutral - Alzheimer Pleasant -0.32972 0.0641 101 -5.145 <.0001
Control Neutral - Control Pleasant -0.15773 0.0333 101 -4.733 0.0001
Alzheimer Pleasant - Control Pleasant 0.17199 0.0649 101 2.650 0.0948
P value adjustment: tukey method for comparing a family of 6 estimates
Ellipse Major Axis
(log10)
options(width = 100)
log10_axis1_rep_anova = aov_ez("ID", "log10_axis1", emo_data_clean, within = c("Stimulus"), between = c("Group"))
log10_axis1_afex_plot <-
afex_plot(
log10_axis1_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
suppressWarnings(base::print(log10_axis1_afex_plot))

base::print(log10_axis1_rep_anova)
Anova Table (Type 3 tests)
Response: log10_axis1
Effect df MSE F ges p.value
1 Group 1, 101 0.05 11.48 ** .077 .001
2 Stimulus 1.96, 198.09 0.01 21.96 *** .054 <.001
3 Group:Stimulus 1.96, 198.09 0.01 0.56 .001 .571
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(log10_axis1_rep_anova)
____________________________________________________________
$emmeans
Group emmean SE df lower.CL upper.CL
Alzheimer 1.11 0.0187 101 1.075 1.15
Control 1.03 0.0164 101 0.995 1.06
Results are averaged over the levels of: Stimulus
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer - Control 0.0843 0.0249 101 3.388 0.0010
Results are averaged over the levels of: Stimulus
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant 1.08 0.0145 101 1.055 1.11
Neutral 1.02 0.0140 101 0.995 1.05
Pleasant 1.10 0.0150 101 1.075 1.13
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral 0.0609 0.0129 101 4.742 <.0001
Unpleasant - Pleasant -0.0214 0.0121 101 -1.766 0.1862
Neutral - Pleasant -0.0823 0.0137 101 -6.022 <.0001
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
Ellipse Minor Axis
(log10)
options(width = 100)
log10_axis2_rep_anova = aov_ez("ID", "log10_axis2", emo_data_clean, within = c("Stimulus"), between = c("Group"))
log10_axis2_afex_plot <-
afex_plot(
log10_axis2_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
suppressWarnings(base::print(log10_axis2_afex_plot))

base::print(log10_axis2_rep_anova)
Anova Table (Type 3 tests)
Response: log10_axis2
Effect df MSE F ges p.value
1 Group 1, 101 0.10 7.27 ** .052 .008
2 Stimulus 1.82, 183.71 0.02 1.95 .004 .149
3 Group:Stimulus 1.82, 183.71 0.02 5.35 ** .012 .007
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(log10_axis2_rep_anova)
____________________________________________________________
$emmeans
Group emmean SE df lower.CL upper.CL
Alzheimer 0.791 0.0273 101 0.737 0.845
Control 0.693 0.0241 101 0.645 0.740
Results are averaged over the levels of: Stimulus
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer - Control 0.0983 0.0364 101 2.697 0.0082
Results are averaged over the levels of: Stimulus
____________________________________________________________
$emmeans
Group Stimulus emmean SE df lower.CL upper.CL
Alzheimer Unpleasant 0.771 0.0303 101 0.711 0.831
Control Unpleasant 0.724 0.0267 101 0.671 0.777
Alzheimer Neutral 0.802 0.0312 101 0.740 0.864
Control Neutral 0.643 0.0275 101 0.589 0.698
Alzheimer Pleasant 0.800 0.0320 101 0.736 0.863
Control Pleasant 0.711 0.0282 101 0.655 0.767
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer Unpleasant - Control Unpleasant 0.04682 0.0404 101 1.160 0.8544
Alzheimer Unpleasant - Alzheimer Neutral -0.03101 0.0273 101 -1.137 0.8646
Alzheimer Unpleasant - Control Neutral 0.12786 0.0409 101 3.126 0.0272
Alzheimer Unpleasant - Alzheimer Pleasant -0.02883 0.0216 101 -1.337 0.7636
Alzheimer Unpleasant - Control Pleasant 0.06030 0.0414 101 1.457 0.6920
Control Unpleasant - Alzheimer Neutral -0.07782 0.0411 101 -1.896 0.4108
Control Unpleasant - Control Neutral 0.08104 0.0240 101 3.375 0.0131
Control Unpleasant - Alzheimer Pleasant -0.07565 0.0417 101 -1.815 0.4608
Control Unpleasant - Control Pleasant 0.01348 0.0190 101 0.710 0.9803
Alzheimer Neutral - Control Neutral 0.15886 0.0416 101 3.820 0.0031
Alzheimer Neutral - Alzheimer Pleasant 0.00217 0.0285 101 0.076 1.0000
Alzheimer Neutral - Control Pleasant 0.09131 0.0421 101 2.171 0.2607
Control Neutral - Alzheimer Pleasant -0.15669 0.0422 101 -3.713 0.0044
Control Neutral - Control Pleasant -0.06755 0.0251 101 -2.690 0.0861
Alzheimer Pleasant - Control Pleasant 0.08914 0.0427 101 2.089 0.3016
P value adjustment: tukey method for comparing a family of 6 estimates
Mean Distance
(log10)
options(width = 100)
mdist_rep_anova = aov_ez("ID", "log10_mdist", emo_data_clean, within = c("Stimulus"), between = c("Group"))
mdist_afex_plot <-
afex_plot(
mdist_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
suppressWarnings(base::print(mdist_afex_plot))

base::print(mdist_rep_anova)
Anova Table (Type 3 tests)
Response: log10_mdist
Effect df MSE F ges p.value
1 Group 1, 101 0.05 11.90 *** .086 <.001
2 Stimulus 1.95, 197.32 0.01 23.42 *** .045 <.001
3 Group:Stimulus 1.95, 197.32 0.01 2.27 .005 .108
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(mdist_rep_anova)
____________________________________________________________
$emmeans
Group emmean SE df lower.CL upper.CL
Alzheimer 0.709 0.0191 101 0.672 0.747
Control 0.622 0.0168 101 0.588 0.655
Results are averaged over the levels of: Stimulus
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer - Control 0.0878 0.0254 101 3.450 0.0008
Results are averaged over the levels of: Stimulus
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant 0.678 0.0142 101 0.650 0.706
Neutral 0.623 0.0137 101 0.595 0.650
Pleasant 0.696 0.0149 101 0.667 0.726
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral 0.0555 0.0111 101 5.022 <.0001
Unpleasant - Pleasant -0.0181 0.0105 101 -1.717 0.2039
Neutral - Pleasant -0.0736 0.0120 101 -6.138 <.0001
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
Root Mean Velocity
(log10)
options(width = 100)
rmv_rep_anova = aov_ez("ID", "log10_rmv", emo_data_clean, within = c("Stimulus"), between = c("Group"))
rmv_afex_plot <-
afex_plot(
rmv_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
suppressWarnings(base::print(rmv_afex_plot))

base::print(rmv_rep_anova)
Anova Table (Type 3 tests)
Response: log10_rmv
Effect df MSE F ges p.value
1 Group 1, 101 0.07 2.03 .017 .157
2 Stimulus 1.91, 193.09 0.01 41.35 *** .052 <.001
3 Group:Stimulus 1.91, 193.09 0.01 3.45 * .005 .036
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(rmv_rep_anova)
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant 1.13 0.0167 101 1.10 1.17
Neutral 1.07 0.0150 101 1.04 1.10
Pleasant 1.16 0.0169 101 1.12 1.19
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral 0.0673 0.01060 101 6.333 <.0001
Unpleasant - Pleasant -0.0231 0.00918 101 -2.512 0.0360
Neutral - Pleasant -0.0903 0.01110 101 -8.163 <.0001
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
____________________________________________________________
$emmeans
Group Stimulus emmean SE df lower.CL upper.CL
Alzheimer Unpleasant 1.15 0.0250 101 1.10 1.20
Control Unpleasant 1.12 0.0220 101 1.08 1.16
Alzheimer Neutral 1.10 0.0225 101 1.06 1.15
Control Neutral 1.03 0.0198 101 0.99 1.07
Alzheimer Pleasant 1.17 0.0254 101 1.12 1.22
Control Pleasant 1.14 0.0223 101 1.10 1.19
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer Unpleasant - Control Unpleasant 0.02852 0.0333 101 0.856 0.9559
Alzheimer Unpleasant - Alzheimer Neutral 0.04440 0.0159 101 2.785 0.0681
Alzheimer Unpleasant - Control Neutral 0.11864 0.0319 101 3.718 0.0043
Alzheimer Unpleasant - Alzheimer Pleasant -0.02187 0.0138 101 -1.587 0.6091
Alzheimer Unpleasant - Control Pleasant 0.00426 0.0335 101 0.127 1.0000
Control Unpleasant - Alzheimer Neutral 0.01588 0.0315 101 0.504 0.9959
Control Unpleasant - Control Neutral 0.09012 0.0140 101 6.419 <.0001
Control Unpleasant - Alzheimer Pleasant -0.05038 0.0336 101 -1.500 0.6649
Control Unpleasant - Control Pleasant -0.02425 0.0121 101 -1.998 0.3507
Alzheimer Neutral - Control Neutral 0.07424 0.0300 101 2.475 0.1414
Alzheimer Neutral - Alzheimer Pleasant -0.06626 0.0166 101 -3.991 0.0017
Alzheimer Neutral - Control Pleasant -0.04013 0.0317 101 -1.266 0.8028
Control Neutral - Alzheimer Pleasant -0.14050 0.0322 101 -4.365 0.0004
Control Neutral - Control Pleasant -0.11437 0.0146 101 -7.820 <.0001
Alzheimer Pleasant - Control Pleasant 0.02613 0.0338 101 0.773 0.9714
P value adjustment: tukey method for comparing a family of 6 estimates
Root Mean Square X
(log10)
options(width = 100)
rmsx_rep_anova = aov_ez("ID", "log10_rmsx", emo_data_clean, within = c("Stimulus"), between = c("Group"))
rmsx_afex_plot <-
afex_plot(
rmsx_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
suppressWarnings(base::print(rmsx_afex_plot))

base::print(rmsx_rep_anova)
Anova Table (Type 3 tests)
Response: log10_rmsx
Effect df MSE F ges p.value
1 Group 1, 101 0.11 8.74 ** .061 .004
2 Stimulus 1.82, 183.47 0.02 0.15 <.001 .839
3 Group:Stimulus 1.82, 183.47 0.02 3.75 * .009 .029
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(rmsx_rep_anova)
____________________________________________________________
$emmeans
Group emmean SE df lower.CL upper.CL
Alzheimer 0.455 0.0288 101 0.398 0.512
Control 0.342 0.0254 101 0.291 0.392
Results are averaged over the levels of: Stimulus
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer - Control 0.114 0.0384 101 2.956 0.0039
Results are averaged over the levels of: Stimulus
____________________________________________________________
$emmeans
Group Stimulus emmean SE df lower.CL upper.CL
Alzheimer Unpleasant 0.436 0.0323 101 0.371 0.500
Control Unpleasant 0.363 0.0285 101 0.307 0.420
Alzheimer Neutral 0.479 0.0350 101 0.410 0.549
Control Neutral 0.306 0.0309 101 0.245 0.367
Alzheimer Pleasant 0.451 0.0326 101 0.386 0.516
Control Pleasant 0.355 0.0287 101 0.299 0.412
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer Unpleasant - Control Unpleasant 0.07226 0.0431 101 1.678 0.5497
Alzheimer Unpleasant - Alzheimer Neutral -0.04364 0.0301 101 -1.452 0.6951
Alzheimer Unpleasant - Control Neutral 0.12942 0.0447 101 2.896 0.0512
Alzheimer Unpleasant - Alzheimer Pleasant -0.01540 0.0241 101 -0.639 0.9877
Alzheimer Unpleasant - Control Pleasant 0.08014 0.0432 101 1.855 0.4361
Control Unpleasant - Alzheimer Neutral -0.11590 0.0451 101 -2.567 0.1150
Control Unpleasant - Control Neutral 0.05716 0.0265 101 2.159 0.2662
Control Unpleasant - Alzheimer Pleasant -0.08766 0.0433 101 -2.027 0.3348
Control Unpleasant - Control Pleasant 0.00788 0.0212 101 0.371 0.9991
Alzheimer Neutral - Control Neutral 0.17306 0.0467 101 3.707 0.0045
Alzheimer Neutral - Alzheimer Pleasant 0.02824 0.0320 101 0.881 0.9502
Alzheimer Neutral - Control Pleasant 0.12379 0.0453 101 2.734 0.0774
Control Neutral - Alzheimer Pleasant -0.14482 0.0449 101 -3.228 0.0203
Control Neutral - Control Pleasant -0.04927 0.0282 101 -1.746 0.5054
Alzheimer Pleasant - Control Pleasant 0.09555 0.0434 101 2.202 0.2461
P value adjustment: tukey method for comparing a family of 6 estimates
Root Mean Square Y
(log10)
options(width = 100)
rmsy_rep_anova = aov_ez("ID", "log10_rmsy", emo_data_clean, within = c("Stimulus"), between = c("Group"))
rmsy_afex_plot <-
afex_plot(
rmsy_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
suppressWarnings(base::print(rmsy_afex_plot))

base::print(rmsy_rep_anova)
Anova Table (Type 3 tests)
Response: log10_rmsy
Effect df MSE F ges p.value
1 Group 1, 101 0.05 7.87 ** .055 .006
2 Stimulus 1.98, 199.86 0.01 38.05 *** .086 <.001
3 Group:Stimulus 1.98, 199.86 0.01 0.39 <.001 .675
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(rmsy_rep_anova)
____________________________________________________________
$emmeans
Group emmean SE df lower.CL upper.CL
Alzheimer 0.694 0.0183 101 0.658 0.731
Control 0.626 0.0161 101 0.594 0.658
Results are averaged over the levels of: Stimulus
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer - Control 0.0683 0.0243 101 2.806 0.0060
Results are averaged over the levels of: Stimulus
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant 0.677 0.0145 101 0.649 0.706
Neutral 0.601 0.0126 101 0.576 0.626
Pleasant 0.703 0.0149 101 0.673 0.733
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral 0.0765 0.0117 101 6.508 <.0001
Unpleasant - Pleasant -0.0256 0.0120 101 -2.140 0.0870
Neutral - Pleasant -0.1021 0.0128 101 -7.990 <.0001
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
Mean Power Frequency
X (log10)
options(width = 100)
MPFx_rep_anova = aov_ez("ID", "log10_MPFx", emo_data_clean, within = c("Stimulus"), between = c("Group"))
MPFx_afex_plot <-
afex_plot(
MPFx_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
suppressWarnings(base::print(MPFx_afex_plot))

base::print(MPFx_rep_anova)
Anova Table (Type 3 tests)
Response: log10_MPFx
Effect df MSE F ges p.value
1 Group 1, 101 0.08 1.38 .008 .242
2 Stimulus 1.95, 196.95 0.03 0.98 .004 .377
3 Group:Stimulus 1.95, 196.95 0.03 0.46 .002 .624
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(MPFx_rep_anova)
Mean Power Frequency
Y (log10)
options(width = 100)
MPFy_rep_anova = aov_ez("ID", "log10_MPFy", emo_data_clean, within = c("Stimulus"), between = c("Group"))
MPFy_afex_plot <-
afex_plot(
MPFy_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
suppressWarnings(base::print(MPFy_afex_plot))

base::print(MPFy_rep_anova)
Anova Table (Type 3 tests)
Response: log10_MPFy
Effect df MSE F ges p.value
1 Group 1, 101 0.07 3.82 + .025 .053
2 Stimulus 1.88, 189.91 0.02 3.53 * .011 .034
3 Group:Stimulus 1.88, 189.91 0.02 1.94 .006 .149
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(MPFy_rep_anova)
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant -2.60 0.0164 101 -2.63 -2.57
Neutral -2.62 0.0181 101 -2.66 -2.59
Pleasant -2.58 0.0183 101 -2.61 -2.54
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral 0.0255 0.0163 101 1.567 0.2645
Unpleasant - Pleasant -0.0196 0.0156 101 -1.259 0.4219
Neutral - Pleasant -0.0451 0.0190 101 -2.372 0.0508
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
Forward
Movement
options(width = 100)
forward_mov_rep_anova = aov_ez("ID", "forward_mov", emo_data_clean, within = c("Stimulus"), between = c("Group"))
forward_mov_afex_plot <-
afex_plot(
forward_mov_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
suppressWarnings(base::print(forward_mov_afex_plot))

base::print(forward_mov_rep_anova)
Anova Table (Type 3 tests)
Response: forward_mov
Effect df MSE F ges p.value
1 Group 1, 101 0.01 0.32 .001 .575
2 Stimulus 1.91, 192.56 0.01 0.17 .001 .830
3 Group:Stimulus 1.91, 192.56 0.01 0.71 .005 .488
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(forward_mov_rep_anova)
Entropy and Center of
Pressure
Sample Entropy X
(log10)
options(width = 100)
log10_sampen_x_rep_anova = aov_ez("ID", "log10_sampen_x", emo_data_clean, within = c("Stimulus"), between = c("Group"))
log10_sampen_x_afex_plot <-
afex_plot(
log10_sampen_x_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
suppressWarnings(base::print(log10_sampen_x_afex_plot))

base::print(log10_sampen_x_rep_anova)
Anova Table (Type 3 tests)
Response: log10_sampen_x
Effect df MSE F ges p.value
1 Group 1, 101 0.38 7.68 ** .044 .007
2 Stimulus 1.79, 181.04 0.14 0.59 .002 .536
3 Group:Stimulus 1.79, 181.04 0.14 1.23 .005 .292
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(log10_sampen_x_rep_anova)
____________________________________________________________
$emmeans
Group emmean SE df lower.CL upper.CL
Alzheimer -0.712 0.0529 101 -0.817 -0.607
Control -0.517 0.0466 101 -0.609 -0.424
Results are averaged over the levels of: Stimulus
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer - Control -0.195 0.0705 101 -2.771 0.0067
Results are averaged over the levels of: Stimulus
Sample Entropy Y
(log10)
options(width = 100)
log10_sampen_y_rep_anova = aov_ez("ID", "log10_sampen_y", emo_data_clean, within = c("Stimulus"), between = c("Group"))
log10_sampen_y_afex_plot <-
afex_plot(
log10_sampen_y_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
suppressWarnings(base::print(log10_sampen_y_afex_plot))

base::print(log10_sampen_y_rep_anova)
Anova Table (Type 3 tests)
Response: log10_sampen_y
Effect df MSE F ges p.value
1 Group 1, 101 0.19 9.85 ** .061 .002
2 Stimulus 1.99, 200.81 0.05 10.19 *** .032 <.001
3 Group:Stimulus 1.99, 200.81 0.05 0.48 .002 .618
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(log10_sampen_y_rep_anova)
____________________________________________________________
$emmeans
Group emmean SE df lower.CL upper.CL
Alzheimer -0.900 0.0379 101 -0.976 -0.825
Control -0.742 0.0334 101 -0.808 -0.675
Results are averaged over the levels of: Stimulus
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Alzheimer - Control -0.159 0.0506 101 -3.138 0.0022
Results are averaged over the levels of: Stimulus
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant -0.844 0.0310 101 -0.906 -0.783
Neutral -0.742 0.0289 101 -0.800 -0.685
Pleasant -0.876 0.0328 101 -0.941 -0.811
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral -0.1017 0.0302 101 -3.366 0.0031
Unpleasant - Pleasant 0.0318 0.0304 101 1.047 0.5493
Neutral - Pleasant 0.1335 0.0321 101 4.164 0.0002
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
Angle Sample
Entropy
options(width = 100)
sampen_phi_rad_rep_anova = aov_ez("ID", "sampen_phi_rad", emo_data_clean, within = c("Stimulus"), between = c("Group"))
sampen_phi_rad_afex_plot <-
afex_plot(
sampen_phi_rad_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
suppressWarnings(base::print(sampen_phi_rad_afex_plot))

base::print(sampen_phi_rad_rep_anova)
Anova Table (Type 3 tests)
Response: sampen_phi_rad
Effect df MSE F ges p.value
1 Group 1, 101 0.06 0.26 .002 .613
2 Stimulus 1.96, 197.56 0.01 0.68 .002 .504
3 Group:Stimulus 1.96, 197.56 0.01 2.28 .006 .106
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(sampen_phi_rad_rep_anova)
Resultant Vector
Sample Entropy
options(width = 100)
sampen_resul_vect_rep_anova = aov_ez("ID", "sampen_resul_vect", emo_data_clean, within = c("Stimulus"), between = c("Group"))
sampen_resul_vect_afex_plot <-
afex_plot(
sampen_resul_vect_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
suppressWarnings(base::print(sampen_resul_vect_afex_plot))

base::print(sampen_resul_vect_rep_anova)
Anova Table (Type 3 tests)
Response: sampen_resul_vect
Effect df MSE F ges p.value
1 Group 1, 79 0.41 2.57 .015 .113
2 Stimulus 1.74, 137.38 0.28 1.45 .010 .239
3 Group:Stimulus 1.74, 137.38 0.28 0.85 .006 .415
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(sampen_resul_vect_rep_anova)
Angle Change Sample
Entropy
options(width = 100)
sampen_delta_phi_rep_anova = aov_ez("ID", "sampen_delta_phi", emo_data_clean, within = c("Stimulus"), between = c("Group"))
sampen_delta_phi_afex_plot <-
afex_plot(
sampen_delta_phi_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
suppressWarnings(base::print(sampen_delta_phi_afex_plot))

base::print(sampen_delta_phi_rep_anova)
Anova Table (Type 3 tests)
Response: sampen_delta_phi
Effect df MSE F ges p.value
1 Group 1, 101 0.10 0.00 <.001 .987
2 Stimulus 1.99, 200.68 0.04 2.46 + .011 .088
3 Group:Stimulus 1.99, 200.68 0.04 0.94 .004 .394
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(sampen_delta_phi_rep_anova)
Heart Activity
Heart Rate
options(width = 100)
heart_rate_rep_anova = aov_ez("ID", "heart_rate", emo_data_clean, within = c("Stimulus"), between = c("Group"))
heart_rate_afex_plot <-
afex_plot(
heart_rate_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
suppressWarnings(base::print(heart_rate_afex_plot))

base::print(heart_rate_rep_anova)
Anova Table (Type 3 tests)
Response: heart_rate
Effect df MSE F ges p.value
1 Group 1, 67 411.66 0.44 .006 .510
2 Stimulus 1.42, 94.84 17.91 1.57 .001 .216
3 Group:Stimulus 1.42, 94.84 17.91 1.25 .001 .281
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(heart_rate_rep_anova)
Root Mean Square of
the Successive Differences (log10)
options(width = 100)
log10_rmssd_rep_anova = aov_ez("ID", "log10_rmssd", emo_data_clean, within = c("Stimulus"), between = c("Group"))
log10_rmssd_afex_plot <-
afex_plot(
log10_rmssd_rep_anova,
x = "Stimulus",
trace = "Group",
error = "between",
error_arg = list(width = .15),
dodge = my_dodge,
data_arg = list(
position =
position_jitterdodge(
jitter.width = .1,
dodge.width = my_dodge
)),
mapping = c('color'),
point_arg = list(size = 4)
)
suppressWarnings(base::print(log10_rmssd_afex_plot))

base::print(log10_rmssd_rep_anova)
Anova Table (Type 3 tests)
Response: log10_rmssd
Effect df MSE F ges p.value
1 Group 1, 67 0.62 1.26 .016 .265
2 Stimulus 1.90, 127.36 0.06 4.36 * .009 .016
3 Group:Stimulus 1.90, 127.36 0.06 1.11 .002 .330
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1
Sphericity correction method: GG
a_posteriori(log10_rmssd_rep_anova)
____________________________________________________________
$emmeans
Stimulus emmean SE df lower.CL upper.CL
Unpleasant 1.24 0.0565 67 1.13 1.35
Neutral 1.22 0.0574 67 1.11 1.34
Pleasant 1.33 0.0646 67 1.20 1.46
Results are averaged over the levels of: Group
Confidence level used: 0.95
$contrasts
contrast estimate SE df t.ratio p.value
Unpleasant - Neutral 0.0168 0.0348 67 0.481 0.8804
Unpleasant - Pleasant -0.0919 0.0418 67 -2.201 0.0783
Neutral - Pleasant -0.1087 0.0419 67 -2.593 0.0309
Results are averaged over the levels of: Group
P value adjustment: tukey method for comparing a family of 3 estimates
LS0tCnRpdGxlOiAiUG9zdHVyYWwgU3RhYmlsaXR5IGFuZCBFbW90aW9ucyIKYXV0aG9yOiAiQWx2YXJvIFJpdmVyYS1SZWkiCmRhdGU6ICJgciBmb3JtYXQoU3lzLnRpbWUoKSwgJyVkICVCLCAlWScpYCIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6CiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUKICAgIGhpZ2hsaWdodDogdGFuZ28KICAgIG51bWJlcl9zZWN0aW9uczogeWVzCiAgICB0aGVtZTogY2VydWxlYW4KICAgIHRvYzogeWVzCiAgICB0b2NfZmxvYXQ6CiAgICAgIGNvbGxhcHNlZDogbm8KICAgICAgc21vb3RoX3Njcm9sbDogbm8KICBwZGZfZG9jdW1lbnQ6CiAgICB0b2M6IHllcwpzdWJ0aXRsZTogQ29udHJvbCAmIEFsemhlaW1lciBncm91cHMsIDMwIHNlY29uZHMKLS0tCgpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0gCmtuaXRyOjpvcHRzX2NodW5rJHNldCh3YXJuaW5nID0gRkFMU0UsIG1lc3NhZ2UgPSBGQUxTRSkgCmBgYAoKYGBge3IgQ2xlYW4gYW5kIExvYWQgTGlicmFyaWVzfQpjYXQoIlwwMTQiKSAgICAgIyBjbGVhbiB0ZXJtaW5hbApybShsaXN0ID0gbHMoKSkgIyBjbGVhbiB3b3Jrc3BhY2UKdHJ5KGRldi5vZmYoKSwgc2lsZW50ID0gVFJVRSkgIyBjbG9zZSBhbGwgcGxvdHMKbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkoR0dhbGx5KQpsaWJyYXJ5KGFmZXgpCmxpYnJhcnkoZW1tZWFucykKYGBgCgpgYGB7ciB0aGVtZSAmIGN1c3RvbSBmdW5jdGlvbnN9Cm15X2RvZGdlIDwtIC4zCnRoZW1lX3NldCh0aGVtZV9taW5pbWFsKCkpCgphX3Bvc3RlcmlvcmkgPC0gZnVuY3Rpb24oYWZleF9hb3YsIHNpZ19sZXZlbCA9IC4wNSkgewogIGZhY3RvcnMgIDwtIGFzLmxpc3Qocm93bmFtZXMoYWZleF9hb3YkYW5vdmFfdGFibGUpKQogIGZvciAoaiBpbiAxOmxlbmd0aChmYWN0b3JzKSkgewogICAgaWYgKGdyZXBsKCc6JywgZmFjdG9yc1tbal1dKSkgewogICAgICBmYWN0b3JzW1tqXV0gPC0gdW5saXN0KHN0cnNwbGl0KGZhY3RvcnNbW2pdXSwgJzonKSkKICAgIH0KICB9CiAgcF92YWx1ZXMgPC0gYWZleF9hb3YkYW5vdmFfdGFibGUkYFByKD5GKWAKICBmb3IgKGkgaW4gMTpsZW5ndGgocF92YWx1ZXMpKSB7CiAgICBpZiAocF92YWx1ZXNbaV0gPD0gc2lnX2xldmVsKSB7CiAgICAgIGNhdChyZXAoJ18nLCA2MCksICdcbicsIHNlcCA9ICcnKQogICAgICBiYXNlOjpwcmludChlbW1lYW5zKGFmZXhfYW92LCBmYWN0b3JzW1tpXV0sIGNvbnRyID0gJ3BhaXJ3aXNlJykpCiAgICB9CiAgfQp9CmBgYAoKYGBge3IgTG9hZCBEYXRhfQpkYXRhX2RpciAgICAgICA8LSAnfi9JbnN5bmMvT25lRHJpdmUvMDBMQUJXT1JLU19vbmVkcml2ZS9QZXJuaWEvRXN0YWJpbG9tZXRyaWFfcGFya2luc29uX2FsemhlaW1lcl95X2NvbnRyb2xlc19BbnRpZ3VvL2RhdGEvJwplbW9fZGF0YV9jbGVhbiA8LSByZWFkLmNzdihwYXN0ZTAoZGF0YV9kaXIsICdlbW9fZGF0YV9jbGVhbl8zMHMuY3N2JyksIGhlYWRlciA9IFRSVUUpIHw+IAogICMgc2VsZWN0KEdyb3VwOnNhbXBlbl9kZWx0YV9waGkpIHw+CiAgZmlsdGVyKEdyb3VwICE9ICdQYXJraW5zb24nKSB8PiAKICBtdXRhdGVfaWYoaXMuY2hhcmFjdGVyLCBhcy5mYWN0b3IpIHw+IAogIG11dGF0ZShTdGltdWx1cyAgICAgICA9IGZhY3RvcihTdGltdWx1cywgbGV2ZWxzID0gYygnVW5wbGVhc2FudCcsICdOZXV0cmFsJywgJ1BsZWFzYW50JykpLAogICAgICAgICBsb2cxMF9hcmVhICAgICA9IGxvZzEwKGFyZWEpLAogICAgICAgICBsb2cxMF9heGlzMSAgICA9IGxvZzEwKGF4aXMxKSwKICAgICAgICAgbG9nMTBfYXhpczIgICAgPSBsb2cxMChheGlzMiksCiAgICAgICAgIGxvZzEwX21kaXN0ICAgID0gbG9nMTAobWRpc3QpLAogICAgICAgICBsb2cxMF9ybXYgICAgICA9IGxvZzEwKHJtdiksCiAgICAgICAgIGxvZzEwX3Jtc3ggICAgID0gbG9nMTAocm1zeCksCiAgICAgICAgIGxvZzEwX3Jtc3kgICAgID0gbG9nMTAocm1zeSksCiAgICAgICAgIGxvZzEwX01QRnggICAgID0gbG9nMTAoTVBGeCksCiAgICAgICAgIGxvZzEwX01QRnkgICAgID0gbG9nMTAoTVBGeSksCiAgICAgICAgIGxvZzEwX1BFQUt4ICAgID0gbG9nMTAoUEVBS3gpLAogICAgICAgICBsb2cxMF9QRUFLeSAgICA9IGxvZzEwKFBFQUt5KSwKICAgICAgICAgbG9nMTBfRjUweCAgICAgPSBsb2cxMChGNTB4KSwKICAgICAgICAgbG9nMTBfRjUweSAgICAgPSBsb2cxMChGNTB5KSwKICAgICAgICAgbG9nMTBfRjk1eCAgICAgPSBsb2cxMChGOTV4KSwKICAgICAgICAgbG9nMTBfRjk1eSAgICAgPSBsb2cxMChGOTV5KSwKICAgICAgICAgbG9nMTBfc2FtcGVuX3ggPSBsb2cxMChzYW1wZW5feCksCiAgICAgICAgIGxvZzEwX3NhbXBlbl95ID0gbG9nMTAoc2FtcGVuX3kpLAogICAgICAgICBsb2cxMF9ybXNzZCAgICA9IGxvZzEwKHJNU1NEKSwKICAgICAgICAgbG9nMTBfYXZlX3BoYXNpY19lZGEgPSBsb2cxMChhdmVfcGhhc2ljX2VkYSkpCndyaXRlLmNzdihlbW9fZGF0YV9jbGVhbiwgICdkYXRhX2Fsel9jdHJfMzBzLmNzdicsICByb3cubmFtZXMgPSBGQUxTRSkKYGBgCgojIEdlbmVyYWwgRGVzY3JpcHRpb24KYGBge3IgZ2VuZXJhbCwgZmlnLndpZHRoID0gOH0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKc3VtbWFyeShlbW9fZGF0YV9jbGVhbikKYGBgCgojIyBUaW1lLWRpc3RhbmNlIHBhcmFtZXRlcnMKYGBge3IgdGltZV9kaXN0YW5jZSwgZmlnLndpZHRoID0gMTF9Cm9wdGlvbnMod2lkdGggPSAxMDApCnRpbWVfZGlzdGFuY2UgPC0gYygnbG9nMTBfYXJlYScsICdsb2cxMF9heGlzMScsICdsb2cxMF9heGlzMicsICdsb2cxMF9tZGlzdCcsICdsb2cxMF9ybXYnLCAnbG9nMTBfcm1zeCcsICdsb2cxMF9ybXN5JykKdGltZV9kaXN0YW5jZV9wYWlycyA8LSBnZ3BhaXJzKGVtb19kYXRhX2NsZWFuLAogICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnMgPSB0aW1lX2Rpc3RhbmNlLAogICAgICAgICAgICAgICAgICAgICAgIGFlcyhjb2xvdXIgPSBHcm91cCwgYWxwaGEgPSAuMjUpLAogICAgICAgICAgICAgICAgICAgICAgIHByb2dyZXNzID0gRkFMU0UsCiAgICAgICAgICAgICAgICAgICAgICAgbG93ZXIgPSBsaXN0KGNvbnRpbnVvdXMgPSB3cmFwKCJwb2ludHMiKSkpCnN1cHByZXNzV2FybmluZ3MoYmFzZTo6cHJpbnQodGltZV9kaXN0YW5jZV9wYWlycykpCnN1bW1hcnkoZW1vX2RhdGFfY2xlYW5bdGltZV9kaXN0YW5jZV0pCmBgYAoKIyMgRnJlcXVlbmN5IHBhcmFtZXRlcnMKYGBge3IgZnJlcXVlbmN5LCBmaWcud2lkdGggPSAxMX0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKZnJlcXVlbmN5IDwtIGMoJ2xvZzEwX01QRngnLCAnbG9nMTBfTVBGeScsICdsb2cxMF9GNTB4JywgJ2xvZzEwX0Y1MHknLCAnbG9nMTBfRjk1eCcsICdsb2cxMF9GOTV5JykKZnJlcXVlbmN5X3BhaXJzIDwtIGdncGFpcnMoZW1vX2RhdGFfY2xlYW4sCiAgICAgICAgICAgICAgICAgICAgICAgY29sdW1ucyA9IGZyZXF1ZW5jeSwKICAgICAgICAgICAgICAgICAgICAgICBhZXMoY29sb3VyID0gR3JvdXAsIGFscGhhID0gLjI1KSwKICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmVzcyA9IEZBTFNFLAogICAgICAgICAgICAgICAgICAgICAgIGxvd2VyID0gbGlzdChjb250aW51b3VzID0gd3JhcCgicG9pbnRzIikpKQpzdXBwcmVzc1dhcm5pbmdzKGJhc2U6OnByaW50KGZyZXF1ZW5jeV9wYWlycykpCnN1bW1hcnkoZW1vX2RhdGFfY2xlYW5bZnJlcXVlbmN5XSkKYGBgCgojIyBFbnRyb3B5CmBgYHtyIGVudHJvcHksIGZpZy53aWR0aCA9IDExfQpvcHRpb25zKHdpZHRoID0gMTAwKQplbnRyb3B5IDwtIGMoJ2ZvcndhcmRfbW92JywgJ2xvZzEwX3NhbXBlbl94JywgJ2xvZzEwX3NhbXBlbl95JywgJ3NhbXBlbl9yZXN1bF92ZWN0JywgJ3NhbXBlbl9waGlfcmFkJywgJ3NhbXBlbl9kZWx0YV9waGknKQplbnRyb3B5X3BhaXJzIDwtIGdncGFpcnMoZW1vX2RhdGFfY2xlYW4sCiAgICAgICAgICAgICAgICAgICAgICAgY29sdW1ucyA9IGVudHJvcHksCiAgICAgICAgICAgICAgICAgICAgICAgYWVzKGNvbG91ciA9IEdyb3VwLCBhbHBoYSA9IC4yNSksCiAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3MgPSBGQUxTRSwKICAgICAgICAgICAgICAgICAgICAgICBsb3dlciA9IGxpc3QoY29udGludW91cyA9IHdyYXAoInBvaW50cyIpKSkKc3VwcHJlc3NXYXJuaW5ncyhiYXNlOjpwcmludChlbnRyb3B5X3BhaXJzKSkKc3VtbWFyeShlbW9fZGF0YV9jbGVhbltlbnRyb3B5XSkKYGBgCgojIENsYXNzaWMgQ2VudGVyIG9mIFByZXNzdXJlCgojIyBBcmVhIChsb2cxMCkKYGBge3IgQXJlYSwgZmlnLndpZHRoID0gOH0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKYXJlYV9yZXBfYW5vdmEgPSBhb3ZfZXooIklEIiwgImxvZzEwX2FyZWEiLCBlbW9fZGF0YV9jbGVhbiwgd2l0aGluID0gYygiU3RpbXVsdXMiKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCmFyZWFfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgYXJlYV9yZXBfYW5vdmEsCiAgICB4ID0gIlN0aW11bHVzIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSAgICAgPSBteV9kb2RnZSwKICAgIGRhdGFfYXJnICA9IGxpc3QoCiAgICAgIHBvc2l0aW9uID0gCiAgICAgICAgcG9zaXRpb25faml0dGVyZG9kZ2UoCiAgICAgICAgICBqaXR0ZXIud2lkdGggID0gLjEsIAogICAgICAgICAgZG9kZ2Uud2lkdGggICA9IG15X2RvZGdlCiAgICAgICAgKSksCiAgICBtYXBwaW5nICAgPSBjKCdjb2xvcicpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCnN1cHByZXNzV2FybmluZ3MoYmFzZTo6cHJpbnQoYXJlYV9hZmV4X3Bsb3QpKQpiYXNlOjpwcmludChhcmVhX3JlcF9hbm92YSkKYV9wb3N0ZXJpb3JpKGFyZWFfcmVwX2Fub3ZhKQpgYGAKCiMjIEVsbGlwc2UgTWFqb3IgQXhpcyAobG9nMTApCmBgYHtyIGxvZzEwX2F4aXMxLCBmaWcud2lkdGggPSA4fQpvcHRpb25zKHdpZHRoID0gMTAwKQpsb2cxMF9heGlzMV9yZXBfYW5vdmEgPSBhb3ZfZXooIklEIiwgImxvZzEwX2F4aXMxIiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlN0aW11bHVzIiksIGJldHdlZW4gPSBjKCJHcm91cCIpKQpsb2cxMF9heGlzMV9hZmV4X3Bsb3QgPC0KICBhZmV4X3Bsb3QoCiAgICBsb2cxMF9heGlzMV9yZXBfYW5vdmEsCiAgICB4ID0gIlN0aW11bHVzIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSAgICAgPSBteV9kb2RnZSwKICAgIGRhdGFfYXJnICA9IGxpc3QoCiAgICAgIHBvc2l0aW9uID0gCiAgICAgICAgcG9zaXRpb25faml0dGVyZG9kZ2UoCiAgICAgICAgICBqaXR0ZXIud2lkdGggID0gLjEsIAogICAgICAgICAgZG9kZ2Uud2lkdGggICA9IG15X2RvZGdlCiAgICAgICAgKSksCiAgICBtYXBwaW5nICAgPSBjKCdjb2xvcicpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCnN1cHByZXNzV2FybmluZ3MoYmFzZTo6cHJpbnQobG9nMTBfYXhpczFfYWZleF9wbG90KSkKYmFzZTo6cHJpbnQobG9nMTBfYXhpczFfcmVwX2Fub3ZhKQphX3Bvc3RlcmlvcmkobG9nMTBfYXhpczFfcmVwX2Fub3ZhKQpgYGAKCiMjIEVsbGlwc2UgTWlub3IgQXhpcyAobG9nMTApCmBgYHtyIGxvZzEwX2F4aXMyLCBmaWcud2lkdGggPSA4fQpvcHRpb25zKHdpZHRoID0gMTAwKQpsb2cxMF9heGlzMl9yZXBfYW5vdmEgPSBhb3ZfZXooIklEIiwgImxvZzEwX2F4aXMyIiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlN0aW11bHVzIiksIGJldHdlZW4gPSBjKCJHcm91cCIpKQpsb2cxMF9heGlzMl9hZmV4X3Bsb3QgPC0KICBhZmV4X3Bsb3QoCiAgICBsb2cxMF9heGlzMl9yZXBfYW5vdmEsCiAgICB4ID0gIlN0aW11bHVzIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSAgICAgPSBteV9kb2RnZSwKICAgIGRhdGFfYXJnICA9IGxpc3QoCiAgICAgIHBvc2l0aW9uID0gCiAgICAgICAgcG9zaXRpb25faml0dGVyZG9kZ2UoCiAgICAgICAgICBqaXR0ZXIud2lkdGggID0gLjEsIAogICAgICAgICAgZG9kZ2Uud2lkdGggICA9IG15X2RvZGdlCiAgICAgICAgKSksCiAgICBtYXBwaW5nICAgPSBjKCdjb2xvcicpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCnN1cHByZXNzV2FybmluZ3MoYmFzZTo6cHJpbnQobG9nMTBfYXhpczJfYWZleF9wbG90KSkKYmFzZTo6cHJpbnQobG9nMTBfYXhpczJfcmVwX2Fub3ZhKQphX3Bvc3RlcmlvcmkobG9nMTBfYXhpczJfcmVwX2Fub3ZhKQpgYGAKCiMjIE1lYW4gRGlzdGFuY2UgKGxvZzEwKQpgYGB7ciBtZGlzdCwgZmlnLndpZHRoID0gOH0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKbWRpc3RfcmVwX2Fub3ZhID0gYW92X2V6KCJJRCIsICJsb2cxMF9tZGlzdCIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJTdGltdWx1cyIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKbWRpc3RfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgbWRpc3RfcmVwX2Fub3ZhLAogICAgeCA9ICJTdGltdWx1cyIsCiAgICB0cmFjZSA9ICJHcm91cCIsCiAgICBlcnJvciA9ICJiZXR3ZWVuIiwKICAgIGVycm9yX2FyZyA9IGxpc3Qod2lkdGggPSAuMTUpLAogICAgZG9kZ2UgICAgID0gbXlfZG9kZ2UsCiAgICBkYXRhX2FyZyAgPSBsaXN0KAogICAgICBwb3NpdGlvbiA9IAogICAgICAgIHBvc2l0aW9uX2ppdHRlcmRvZGdlKAogICAgICAgICAgaml0dGVyLndpZHRoICA9IC4xLCAKICAgICAgICAgIGRvZGdlLndpZHRoICAgPSBteV9kb2RnZQogICAgICAgICkpLAogICAgbWFwcGluZyAgID0gYygnY29sb3InKSwKICAgIHBvaW50X2FyZyA9IGxpc3Qoc2l6ZSA9IDQpCiAgKQpzdXBwcmVzc1dhcm5pbmdzKGJhc2U6OnByaW50KG1kaXN0X2FmZXhfcGxvdCkpCmJhc2U6OnByaW50KG1kaXN0X3JlcF9hbm92YSkKYV9wb3N0ZXJpb3JpKG1kaXN0X3JlcF9hbm92YSkKYGBgCgojIyBSb290IE1lYW4gVmVsb2NpdHkgKGxvZzEwKQpgYGB7ciBybXYsIGZpZy53aWR0aCA9IDh9Cm9wdGlvbnMod2lkdGggPSAxMDApCnJtdl9yZXBfYW5vdmEgPSBhb3ZfZXooIklEIiwgImxvZzEwX3JtdiIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJTdGltdWx1cyIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKcm12X2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIHJtdl9yZXBfYW5vdmEsCiAgICB4ID0gIlN0aW11bHVzIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSAgICAgPSBteV9kb2RnZSwKICAgIGRhdGFfYXJnICA9IGxpc3QoCiAgICAgIHBvc2l0aW9uID0gCiAgICAgICAgcG9zaXRpb25faml0dGVyZG9kZ2UoCiAgICAgICAgICBqaXR0ZXIud2lkdGggID0gLjEsIAogICAgICAgICAgZG9kZ2Uud2lkdGggICA9IG15X2RvZGdlCiAgICAgICAgKSksCiAgICBtYXBwaW5nICAgPSBjKCdjb2xvcicpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCnN1cHByZXNzV2FybmluZ3MoYmFzZTo6cHJpbnQocm12X2FmZXhfcGxvdCkpCmJhc2U6OnByaW50KHJtdl9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShybXZfcmVwX2Fub3ZhKQpgYGAKCiMjIFJvb3QgTWVhbiBTcXVhcmUgWCAobG9nMTApCmBgYHtyIHJtc3gsIGZpZy53aWR0aCA9IDh9Cm9wdGlvbnMod2lkdGggPSAxMDApCnJtc3hfcmVwX2Fub3ZhID0gYW92X2V6KCJJRCIsICJsb2cxMF9ybXN4IiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlN0aW11bHVzIiksIGJldHdlZW4gPSBjKCJHcm91cCIpKQpybXN4X2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIHJtc3hfcmVwX2Fub3ZhLAogICAgeCA9ICJTdGltdWx1cyIsCiAgICB0cmFjZSA9ICJHcm91cCIsCiAgICBlcnJvciA9ICJiZXR3ZWVuIiwKICAgIGVycm9yX2FyZyA9IGxpc3Qod2lkdGggPSAuMTUpLAogICAgZG9kZ2UgICAgID0gbXlfZG9kZ2UsCiAgICBkYXRhX2FyZyAgPSBsaXN0KAogICAgICBwb3NpdGlvbiA9IAogICAgICAgIHBvc2l0aW9uX2ppdHRlcmRvZGdlKAogICAgICAgICAgaml0dGVyLndpZHRoICA9IC4xLCAKICAgICAgICAgIGRvZGdlLndpZHRoICAgPSBteV9kb2RnZQogICAgICAgICkpLAogICAgbWFwcGluZyAgID0gYygnY29sb3InKSwKICAgIHBvaW50X2FyZyA9IGxpc3Qoc2l6ZSA9IDQpCiAgKQpzdXBwcmVzc1dhcm5pbmdzKGJhc2U6OnByaW50KHJtc3hfYWZleF9wbG90KSkKYmFzZTo6cHJpbnQocm1zeF9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShybXN4X3JlcF9hbm92YSkKYGBgCgojIyBSb290IE1lYW4gU3F1YXJlIFkgKGxvZzEwKQpgYGB7ciBybXN5LCBmaWcud2lkdGggPSA4fQpvcHRpb25zKHdpZHRoID0gMTAwKQpybXN5X3JlcF9hbm92YSA9IGFvdl9leigiSUQiLCAibG9nMTBfcm1zeSIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJTdGltdWx1cyIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKcm1zeV9hZmV4X3Bsb3QgPC0KICBhZmV4X3Bsb3QoCiAgICBybXN5X3JlcF9hbm92YSwKICAgIHggPSAiU3RpbXVsdXMiLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlICAgICA9IG15X2RvZGdlLAogICAgZGF0YV9hcmcgID0gbGlzdCgKICAgICAgcG9zaXRpb24gPSAKICAgICAgICBwb3NpdGlvbl9qaXR0ZXJkb2RnZSgKICAgICAgICAgIGppdHRlci53aWR0aCAgPSAuMSwgCiAgICAgICAgICBkb2RnZS53aWR0aCAgID0gbXlfZG9kZ2UKICAgICAgICApKSwKICAgIG1hcHBpbmcgICA9IGMoJ2NvbG9yJyksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKc3VwcHJlc3NXYXJuaW5ncyhiYXNlOjpwcmludChybXN5X2FmZXhfcGxvdCkpCmJhc2U6OnByaW50KHJtc3lfcmVwX2Fub3ZhKQphX3Bvc3Rlcmlvcmkocm1zeV9yZXBfYW5vdmEpCmBgYAoKIyMgTWVhbiBQb3dlciBGcmVxdWVuY3kgWCAobG9nMTApCmBgYHtyIE1QRngsIGZpZy53aWR0aCA9IDh9Cm9wdGlvbnMod2lkdGggPSAxMDApCk1QRnhfcmVwX2Fub3ZhID0gYW92X2V6KCJJRCIsICJsb2cxMF9NUEZ4IiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlN0aW11bHVzIiksIGJldHdlZW4gPSBjKCJHcm91cCIpKQpNUEZ4X2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIE1QRnhfcmVwX2Fub3ZhLAogICAgeCA9ICJTdGltdWx1cyIsCiAgICB0cmFjZSA9ICJHcm91cCIsCiAgICBlcnJvciA9ICJiZXR3ZWVuIiwKICAgIGVycm9yX2FyZyA9IGxpc3Qod2lkdGggPSAuMTUpLAogICAgZG9kZ2UgICAgID0gbXlfZG9kZ2UsCiAgICBkYXRhX2FyZyAgPSBsaXN0KAogICAgICBwb3NpdGlvbiA9IAogICAgICAgIHBvc2l0aW9uX2ppdHRlcmRvZGdlKAogICAgICAgICAgaml0dGVyLndpZHRoICA9IC4xLCAKICAgICAgICAgIGRvZGdlLndpZHRoICAgPSBteV9kb2RnZQogICAgICAgICkpLAogICAgbWFwcGluZyAgID0gYygnY29sb3InKSwKICAgIHBvaW50X2FyZyA9IGxpc3Qoc2l6ZSA9IDQpCiAgKQpzdXBwcmVzc1dhcm5pbmdzKGJhc2U6OnByaW50KE1QRnhfYWZleF9wbG90KSkKYmFzZTo6cHJpbnQoTVBGeF9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShNUEZ4X3JlcF9hbm92YSkKYGBgCgojIyBNZWFuIFBvd2VyIEZyZXF1ZW5jeSBZIChsb2cxMCkKYGBge3IgTVBGeSwgZmlnLndpZHRoID0gOH0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKTVBGeV9yZXBfYW5vdmEgPSBhb3ZfZXooIklEIiwgImxvZzEwX01QRnkiLCBlbW9fZGF0YV9jbGVhbiwgd2l0aGluID0gYygiU3RpbXVsdXMiKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCk1QRnlfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgTVBGeV9yZXBfYW5vdmEsCiAgICB4ID0gIlN0aW11bHVzIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSAgICAgPSBteV9kb2RnZSwKICAgIGRhdGFfYXJnICA9IGxpc3QoCiAgICAgIHBvc2l0aW9uID0gCiAgICAgICAgcG9zaXRpb25faml0dGVyZG9kZ2UoCiAgICAgICAgICBqaXR0ZXIud2lkdGggID0gLjEsIAogICAgICAgICAgZG9kZ2Uud2lkdGggICA9IG15X2RvZGdlCiAgICAgICAgKSksCiAgICBtYXBwaW5nICAgPSBjKCdjb2xvcicpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCnN1cHByZXNzV2FybmluZ3MoYmFzZTo6cHJpbnQoTVBGeV9hZmV4X3Bsb3QpKQpiYXNlOjpwcmludChNUEZ5X3JlcF9hbm92YSkKYV9wb3N0ZXJpb3JpKE1QRnlfcmVwX2Fub3ZhKQpgYGAKCiMjIEZvcndhcmQgTW92ZW1lbnQKYGBge3IgZm9yd2FyZF9tb3YsIGZpZy53aWR0aCA9IDh9Cm9wdGlvbnMod2lkdGggPSAxMDApCmZvcndhcmRfbW92X3JlcF9hbm92YSA9IGFvdl9leigiSUQiLCAiZm9yd2FyZF9tb3YiLCBlbW9fZGF0YV9jbGVhbiwgd2l0aGluID0gYygiU3RpbXVsdXMiKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCmZvcndhcmRfbW92X2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIGZvcndhcmRfbW92X3JlcF9hbm92YSwKICAgIHggPSAiU3RpbXVsdXMiLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlICAgICA9IG15X2RvZGdlLAogICAgZGF0YV9hcmcgID0gbGlzdCgKICAgICAgcG9zaXRpb24gPSAKICAgICAgICBwb3NpdGlvbl9qaXR0ZXJkb2RnZSgKICAgICAgICAgIGppdHRlci53aWR0aCAgPSAuMSwgCiAgICAgICAgICBkb2RnZS53aWR0aCAgID0gbXlfZG9kZ2UKICAgICAgICApKSwKICAgIG1hcHBpbmcgICA9IGMoJ2NvbG9yJyksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKc3VwcHJlc3NXYXJuaW5ncyhiYXNlOjpwcmludChmb3J3YXJkX21vdl9hZmV4X3Bsb3QpKQpiYXNlOjpwcmludChmb3J3YXJkX21vdl9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShmb3J3YXJkX21vdl9yZXBfYW5vdmEpCmBgYAoKIyBFbnRyb3B5IGFuZCBDZW50ZXIgb2YgUHJlc3N1cmUKIyMgU2FtcGxlIEVudHJvcHkgWCAobG9nMTApCmBgYHtyIHNhbXBlbl94LCBmaWcud2lkdGggPSA4fQpvcHRpb25zKHdpZHRoID0gMTAwKQpsb2cxMF9zYW1wZW5feF9yZXBfYW5vdmEgPSBhb3ZfZXooIklEIiwgImxvZzEwX3NhbXBlbl94IiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlN0aW11bHVzIiksIGJldHdlZW4gPSBjKCJHcm91cCIpKQpsb2cxMF9zYW1wZW5feF9hZmV4X3Bsb3QgPC0KICBhZmV4X3Bsb3QoCiAgICBsb2cxMF9zYW1wZW5feF9yZXBfYW5vdmEsCiAgICB4ID0gIlN0aW11bHVzIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSAgICAgPSBteV9kb2RnZSwKICAgIGRhdGFfYXJnICA9IGxpc3QoCiAgICAgIHBvc2l0aW9uID0gCiAgICAgICAgcG9zaXRpb25faml0dGVyZG9kZ2UoCiAgICAgICAgICBqaXR0ZXIud2lkdGggID0gLjEsIAogICAgICAgICAgZG9kZ2Uud2lkdGggICA9IG15X2RvZGdlCiAgICAgICAgKSksCiAgICBtYXBwaW5nICAgPSBjKCdjb2xvcicpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCnN1cHByZXNzV2FybmluZ3MoYmFzZTo6cHJpbnQobG9nMTBfc2FtcGVuX3hfYWZleF9wbG90KSkKYmFzZTo6cHJpbnQobG9nMTBfc2FtcGVuX3hfcmVwX2Fub3ZhKQphX3Bvc3RlcmlvcmkobG9nMTBfc2FtcGVuX3hfcmVwX2Fub3ZhKQpgYGAKCiMjIFNhbXBsZSBFbnRyb3B5IFkgKGxvZzEwKQpgYGB7ciBzYW1wZW5feSwgZmlnLndpZHRoID0gOH0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKbG9nMTBfc2FtcGVuX3lfcmVwX2Fub3ZhID0gYW92X2V6KCJJRCIsICJsb2cxMF9zYW1wZW5feSIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJTdGltdWx1cyIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKbG9nMTBfc2FtcGVuX3lfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgbG9nMTBfc2FtcGVuX3lfcmVwX2Fub3ZhLAogICAgeCA9ICJTdGltdWx1cyIsCiAgICB0cmFjZSA9ICJHcm91cCIsCiAgICBlcnJvciA9ICJiZXR3ZWVuIiwKICAgIGVycm9yX2FyZyA9IGxpc3Qod2lkdGggPSAuMTUpLAogICAgZG9kZ2UgICAgID0gbXlfZG9kZ2UsCiAgICBkYXRhX2FyZyAgPSBsaXN0KAogICAgICBwb3NpdGlvbiA9IAogICAgICAgIHBvc2l0aW9uX2ppdHRlcmRvZGdlKAogICAgICAgICAgaml0dGVyLndpZHRoICA9IC4xLCAKICAgICAgICAgIGRvZGdlLndpZHRoICAgPSBteV9kb2RnZQogICAgICAgICkpLAogICAgbWFwcGluZyAgID0gYygnY29sb3InKSwKICAgIHBvaW50X2FyZyA9IGxpc3Qoc2l6ZSA9IDQpCiAgKQpzdXBwcmVzc1dhcm5pbmdzKGJhc2U6OnByaW50KGxvZzEwX3NhbXBlbl95X2FmZXhfcGxvdCkpCmJhc2U6OnByaW50KGxvZzEwX3NhbXBlbl95X3JlcF9hbm92YSkKYV9wb3N0ZXJpb3JpKGxvZzEwX3NhbXBlbl95X3JlcF9hbm92YSkKYGBgCgojIyBBbmdsZSBTYW1wbGUgRW50cm9weQpgYGB7ciBzYW1wZW5fcGhpX3JhZCwgZmlnLndpZHRoID0gOH0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKc2FtcGVuX3BoaV9yYWRfcmVwX2Fub3ZhID0gYW92X2V6KCJJRCIsICJzYW1wZW5fcGhpX3JhZCIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJTdGltdWx1cyIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKc2FtcGVuX3BoaV9yYWRfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgc2FtcGVuX3BoaV9yYWRfcmVwX2Fub3ZhLAogICAgeCA9ICJTdGltdWx1cyIsCiAgICB0cmFjZSA9ICJHcm91cCIsCiAgICBlcnJvciA9ICJiZXR3ZWVuIiwKICAgIGVycm9yX2FyZyA9IGxpc3Qod2lkdGggPSAuMTUpLAogICAgZG9kZ2UgICAgID0gbXlfZG9kZ2UsCiAgICBkYXRhX2FyZyAgPSBsaXN0KAogICAgICBwb3NpdGlvbiA9IAogICAgICAgIHBvc2l0aW9uX2ppdHRlcmRvZGdlKAogICAgICAgICAgaml0dGVyLndpZHRoICA9IC4xLCAKICAgICAgICAgIGRvZGdlLndpZHRoICAgPSBteV9kb2RnZQogICAgICAgICkpLAogICAgbWFwcGluZyAgID0gYygnY29sb3InKSwKICAgIHBvaW50X2FyZyA9IGxpc3Qoc2l6ZSA9IDQpCiAgKQpzdXBwcmVzc1dhcm5pbmdzKGJhc2U6OnByaW50KHNhbXBlbl9waGlfcmFkX2FmZXhfcGxvdCkpCmJhc2U6OnByaW50KHNhbXBlbl9waGlfcmFkX3JlcF9hbm92YSkKYV9wb3N0ZXJpb3JpKHNhbXBlbl9waGlfcmFkX3JlcF9hbm92YSkKYGBgCgojIyBSZXN1bHRhbnQgVmVjdG9yIFNhbXBsZSBFbnRyb3B5CmBgYHtyIHNhbXBlbl9yZXN1bF92ZWN0LCBmaWcud2lkdGggPSA4fQpvcHRpb25zKHdpZHRoID0gMTAwKQpzYW1wZW5fcmVzdWxfdmVjdF9yZXBfYW5vdmEgPSBhb3ZfZXooIklEIiwgInNhbXBlbl9yZXN1bF92ZWN0IiwgZW1vX2RhdGFfY2xlYW4sIHdpdGhpbiA9IGMoIlN0aW11bHVzIiksIGJldHdlZW4gPSBjKCJHcm91cCIpKQpzYW1wZW5fcmVzdWxfdmVjdF9hZmV4X3Bsb3QgPC0KICBhZmV4X3Bsb3QoCiAgICBzYW1wZW5fcmVzdWxfdmVjdF9yZXBfYW5vdmEsCiAgICB4ID0gIlN0aW11bHVzIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSAgICAgPSBteV9kb2RnZSwKICAgIGRhdGFfYXJnICA9IGxpc3QoCiAgICAgIHBvc2l0aW9uID0gCiAgICAgICAgcG9zaXRpb25faml0dGVyZG9kZ2UoCiAgICAgICAgICBqaXR0ZXIud2lkdGggID0gLjEsIAogICAgICAgICAgZG9kZ2Uud2lkdGggICA9IG15X2RvZGdlCiAgICAgICAgKSksCiAgICBtYXBwaW5nICAgPSBjKCdjb2xvcicpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCnN1cHByZXNzV2FybmluZ3MoYmFzZTo6cHJpbnQoc2FtcGVuX3Jlc3VsX3ZlY3RfYWZleF9wbG90KSkKYmFzZTo6cHJpbnQoc2FtcGVuX3Jlc3VsX3ZlY3RfcmVwX2Fub3ZhKQphX3Bvc3Rlcmlvcmkoc2FtcGVuX3Jlc3VsX3ZlY3RfcmVwX2Fub3ZhKQpgYGAKCiMjIEFuZ2xlIENoYW5nZSBTYW1wbGUgRW50cm9weQpgYGB7ciBzYW1wZW5fZGVsdGFfcGhpLCBmaWcud2lkdGggPSA4fQpvcHRpb25zKHdpZHRoID0gMTAwKQpzYW1wZW5fZGVsdGFfcGhpX3JlcF9hbm92YSA9IGFvdl9leigiSUQiLCAic2FtcGVuX2RlbHRhX3BoaSIsIGVtb19kYXRhX2NsZWFuLCB3aXRoaW4gPSBjKCJTdGltdWx1cyIpLCBiZXR3ZWVuID0gYygiR3JvdXAiKSkKc2FtcGVuX2RlbHRhX3BoaV9hZmV4X3Bsb3QgPC0KICBhZmV4X3Bsb3QoCiAgICBzYW1wZW5fZGVsdGFfcGhpX3JlcF9hbm92YSwKICAgIHggPSAiU3RpbXVsdXMiLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlICAgICA9IG15X2RvZGdlLAogICAgZGF0YV9hcmcgID0gbGlzdCgKICAgICAgcG9zaXRpb24gPSAKICAgICAgICBwb3NpdGlvbl9qaXR0ZXJkb2RnZSgKICAgICAgICAgIGppdHRlci53aWR0aCAgPSAuMSwgCiAgICAgICAgICBkb2RnZS53aWR0aCAgID0gbXlfZG9kZ2UKICAgICAgICApKSwKICAgIG1hcHBpbmcgICA9IGMoJ2NvbG9yJyksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKc3VwcHJlc3NXYXJuaW5ncyhiYXNlOjpwcmludChzYW1wZW5fZGVsdGFfcGhpX2FmZXhfcGxvdCkpCmJhc2U6OnByaW50KHNhbXBlbl9kZWx0YV9waGlfcmVwX2Fub3ZhKQphX3Bvc3Rlcmlvcmkoc2FtcGVuX2RlbHRhX3BoaV9yZXBfYW5vdmEpCmBgYAoKIyBIZWFydCBBY3Rpdml0eQoKIyMgSGVhcnQgUmF0ZQoKYGBge3IgaGVhcnRfcmF0ZSwgZmlnLndpZHRoID0gOH0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkKaGVhcnRfcmF0ZV9yZXBfYW5vdmEgPSBhb3ZfZXooIklEIiwgImhlYXJ0X3JhdGUiLCBlbW9fZGF0YV9jbGVhbiwgd2l0aGluID0gYygiU3RpbXVsdXMiKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCmhlYXJ0X3JhdGVfYWZleF9wbG90IDwtCiAgYWZleF9wbG90KAogICAgaGVhcnRfcmF0ZV9yZXBfYW5vdmEsCiAgICB4ID0gIlN0aW11bHVzIiwKICAgIHRyYWNlID0gIkdyb3VwIiwKICAgIGVycm9yID0gImJldHdlZW4iLAogICAgZXJyb3JfYXJnID0gbGlzdCh3aWR0aCA9IC4xNSksCiAgICBkb2RnZSAgICAgPSBteV9kb2RnZSwKICAgIGRhdGFfYXJnICA9IGxpc3QoCiAgICAgIHBvc2l0aW9uID0gCiAgICAgICAgcG9zaXRpb25faml0dGVyZG9kZ2UoCiAgICAgICAgICBqaXR0ZXIud2lkdGggID0gLjEsIAogICAgICAgICAgZG9kZ2Uud2lkdGggICA9IG15X2RvZGdlCiAgICAgICAgKSksCiAgICBtYXBwaW5nICAgPSBjKCdjb2xvcicpLAogICAgcG9pbnRfYXJnID0gbGlzdChzaXplID0gNCkKICApCnN1cHByZXNzV2FybmluZ3MoYmFzZTo6cHJpbnQoaGVhcnRfcmF0ZV9hZmV4X3Bsb3QpKQpiYXNlOjpwcmludChoZWFydF9yYXRlX3JlcF9hbm92YSkKYV9wb3N0ZXJpb3JpKGhlYXJ0X3JhdGVfcmVwX2Fub3ZhKQpgYGAKCiMjIFJvb3QgTWVhbiBTcXVhcmUgb2YgdGhlIFN1Y2Nlc3NpdmUgRGlmZmVyZW5jZXMgKGxvZzEwKQoKYGBge3IgbG9nMTBfcm1zc2QsIGZpZy53aWR0aCA9IDh9Cm9wdGlvbnMod2lkdGggPSAxMDApCmxvZzEwX3Jtc3NkX3JlcF9hbm92YSA9IGFvdl9leigiSUQiLCAibG9nMTBfcm1zc2QiLCBlbW9fZGF0YV9jbGVhbiwgd2l0aGluID0gYygiU3RpbXVsdXMiKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCmxvZzEwX3Jtc3NkX2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIGxvZzEwX3Jtc3NkX3JlcF9hbm92YSwKICAgIHggPSAiU3RpbXVsdXMiLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlICAgICA9IG15X2RvZGdlLAogICAgZGF0YV9hcmcgID0gbGlzdCgKICAgICAgcG9zaXRpb24gPSAKICAgICAgICBwb3NpdGlvbl9qaXR0ZXJkb2RnZSgKICAgICAgICAgIGppdHRlci53aWR0aCAgPSAuMSwgCiAgICAgICAgICBkb2RnZS53aWR0aCAgID0gbXlfZG9kZ2UKICAgICAgICApKSwKICAgIG1hcHBpbmcgICA9IGMoJ2NvbG9yJyksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKc3VwcHJlc3NXYXJuaW5ncyhiYXNlOjpwcmludChsb2cxMF9ybXNzZF9hZmV4X3Bsb3QpKQpiYXNlOjpwcmludChsb2cxMF9ybXNzZF9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShsb2cxMF9ybXNzZF9yZXBfYW5vdmEpCmBgYAoKIyBFbGVjdHJvZGVybWFsIEFjdGl2aXR5CgojIyBNZWFuIFBoYXNpYyBDb21wb25lbnQgKGxvZzEwKQoKYGBge3IgbG9nMTBfYXZlX3BoYXNpY19lZGEsIGZpZy53aWR0aCA9IDh9Cm9wdGlvbnMod2lkdGggPSAxMDApCmxvZzEwX2F2ZV9waGFzaWNfZWRhX3JlcF9hbm92YSA9IGFvdl9leigiSUQiLCAibG9nMTBfYXZlX3BoYXNpY19lZGEiLCBlbW9fZGF0YV9jbGVhbiwgd2l0aGluID0gYygiU3RpbXVsdXMiKSwgYmV0d2VlbiA9IGMoIkdyb3VwIikpCmxvZzEwX2F2ZV9waGFzaWNfZWRhX2FmZXhfcGxvdCA8LQogIGFmZXhfcGxvdCgKICAgIGxvZzEwX2F2ZV9waGFzaWNfZWRhX3JlcF9hbm92YSwKICAgIHggPSAiU3RpbXVsdXMiLAogICAgdHJhY2UgPSAiR3JvdXAiLAogICAgZXJyb3IgPSAiYmV0d2VlbiIsCiAgICBlcnJvcl9hcmcgPSBsaXN0KHdpZHRoID0gLjE1KSwKICAgIGRvZGdlICAgICA9IG15X2RvZGdlLAogICAgZGF0YV9hcmcgID0gbGlzdCgKICAgICAgcG9zaXRpb24gPSAKICAgICAgICBwb3NpdGlvbl9qaXR0ZXJkb2RnZSgKICAgICAgICAgIGppdHRlci53aWR0aCAgPSAuMSwgCiAgICAgICAgICBkb2RnZS53aWR0aCAgID0gbXlfZG9kZ2UKICAgICAgICApKSwKICAgIG1hcHBpbmcgICA9IGMoJ2NvbG9yJyksCiAgICBwb2ludF9hcmcgPSBsaXN0KHNpemUgPSA0KQogICkKc3VwcHJlc3NXYXJuaW5ncyhiYXNlOjpwcmludChsb2cxMF9hdmVfcGhhc2ljX2VkYV9hZmV4X3Bsb3QpKQpiYXNlOjpwcmludChsb2cxMF9hdmVfcGhhc2ljX2VkYV9yZXBfYW5vdmEpCmFfcG9zdGVyaW9yaShsb2cxMF9hdmVfcGhhc2ljX2VkYV9yZXBfYW5vdmEpCmBgYAoK