1 Arrange folders, sort files, read and merge

1.1 Create folders by conditions, copy files to them

##################### Read file names ##################################################################################
file_names <- dir(wd, pattern = "\\.xls$")
## if above isn't good enough try the following:
# file_names <- list.files(wd)
# file_names <- sop_files[!file.info(sop_files)$isdir]   # exclude directories
# file_names <- sop_files[grep(".xls", sop_files, fixed = TRUE)]


##################### Create folders with Condition names ###############################################################
# this part of script may be re-run if files from wd are updated
dir_names <- c("Unic_CTRL_Instr", "Unic_CTRL_Solo", "Unic_OGL_Instr", "Unic_OGL_Solo")
             
for(dir in dir_names){
  if(!dir.exists(file.path(wd, dir)))
  dir.create(file.path(wd, dir), showWarnings = FALSE)
}


##################### Use file names to sort them to folders ############################################################
sort_files_to_dirs <- function(wd, pattern, dir) {
  check_pattern <- outer(file_names, pattern, stringr::str_detect)               # if all TRUE bye row then it has full pattern
  index <- which(apply(check_pattern, 1, function(x) all(x==TRUE)))              # get index of file_names where all are TRUE
  sorted_files <- file_names[index]                                              # get names of files from indexes
  
  for(files in sorted_files) {                                                   # copy the files to corresponding folder
    file.copy(from = file.path(wd, files), to = file.path(wd, dir))
  }  
}

sort_files_to_dirs(wd = wd, pattern = c("unic", "ecran", "instructor"), dir = "Unic_CTRL_Instr")
sort_files_to_dirs(wd = wd, pattern = c("unic", "ecran", "solo"), dir = "Unic_CTRL_Solo")
sort_files_to_dirs(wd = wd, pattern = c("unic", "oglinda", "instructor"), dir = "Unic_OGL_Instr")
sort_files_to_dirs(wd = wd, pattern = c("unic", "oglinda", "solo"), dir = "Unic_OGL_Solo")

1.2 Reading the data

The working directory was changed to E:/CINETIC diverse/O.4c (EEG)/18.03.2021 Unice/Procesate&Exclusi inside a notebook chunk. The working directory will be reset when the chunk is finished running. Use the knitr root.dir option in the setup chunk to change the working directory for notebook chunks.
[1] "current_dir: E:/CINETIC diverse/O.4c (EEG)/18.03.2021 Unice/Procesate&Exclusi/Unic_CTRL_Instr"
[1] "current_dir: E:/CINETIC diverse/O.4c (EEG)/18.03.2021 Unice/Procesate&Exclusi/Unic_CTRL_Solo"
[1] "current_dir: E:/CINETIC diverse/O.4c (EEG)/18.03.2021 Unice/Procesate&Exclusi/Unic_OGL_Instr"
[1] "current_dir: E:/CINETIC diverse/O.4c (EEG)/18.03.2021 Unice/Procesate&Exclusi/Unic_OGL_Solo"

1.5 Test if datasets have same columns

                Unic_CTRL_Instr Unic_CTRL_Solo Unic_OGL_Instr Unic_OGL_Solo
Unic_CTRL_Instr            TRUE           TRUE           TRUE          TRUE
Unic_CTRL_Solo             TRUE           TRUE           TRUE          TRUE
Unic_OGL_Instr             TRUE           TRUE           TRUE          TRUE
Unic_OGL_Solo              TRUE           TRUE           TRUE          TRUE

1.6 Clean IDs

Check IDs match



2 Analysis - UNICE

2.1 Descriptives

Unic_CTRL_Instr - negativ
variable missing N M SD SE min max range median mode skew kurtosis
SAM_Resp 0 1155 5.32 2.65 0.08 1 9 8 5 9 0.05 1.65
Unic_CTRL_Solo - negativ
variable missing N M SD SE min max range median mode skew kurtosis
SAM_Resp 0 1190 5.3 2.55 0.07 1 9 8 5 9 0.04 1.76
Unic_OGL_Instr - negativ
variable missing N M SD SE min max range median mode skew kurtosis
SAM_Resp 0 1155 5.22 2.64 0.08 1 9 8 5 9 0.02 1.71
Unic_OGL_Solo - negativ
variable missing N M SD SE min max range median mode skew kurtosis
SAM_Resp 0 1155 5.17 2.67 0.08 1 9 8 5 9 0.02 1.75
Unic_CTRL_Instr - negativ
variable missing N ID M SD SE min max range median mode skew kurtosis
SAM_Resp 0 35 ID06 8.03 1.44 0.24 4 9 5 9 9 -1.59 4.62
SAM_Resp 0 35 ID10 3.03 1.87 0.32 1 8 7 3 1 0.83 3.03
SAM_Resp 0 35 ID12 3.14 1.42 0.24 1 5 4 3 5 0.00 1.72
SAM_Resp 0 35 ID13 8.31 1.81 0.31 1 9 8 9 9 -3.22 12.57
SAM_Resp 0 35 ID16 5.63 2.29 0.39 3 9 6 6 3 0.20 1.54
SAM_Resp 0 35 ID17 2.23 0.91 0.15 1 4 3 2 2 0.25 2.26
SAM_Resp 0 35 ID26 6.51 2.44 0.41 1 9 8 8 8 -0.71 2.27
SAM_Resp 0 35 ID27 3.26 1.22 0.21 1 6 5 3 3 0.19 2.41
SAM_Resp 0 35 ID28 4.86 1.57 0.27 2 7 5 5 6 -0.27 1.98
SAM_Resp 0 35 ID29 5.17 1.69 0.29 1 8 7 5 5 -0.61 3.10
SAM_Resp 0 35 ID33 2.49 0.70 0.12 2 4 2 2 2 1.09 2.86
SAM_Resp 0 35 ID36 5.29 2.80 0.47 1 9 8 5 9 0.08 1.66
SAM_Resp 0 35 ID37 5.26 2.99 0.51 1 9 8 5 9 -0.07 1.50
SAM_Resp 0 35 ID39 7.97 1.60 0.27 2 9 7 9 9 -2.05 7.36
SAM_Resp 0 35 ID41 8.77 0.65 0.11 7 9 2 9 9 -2.42 6.88
SAM_Resp 0 35 ID43 3.69 1.13 0.19 1 6 5 4 3 0.02 2.85
SAM_Resp 0 35 ID44 4.77 1.24 0.21 2 7 5 5 5 -0.12 3.17
SAM_Resp 0 35 ID45 7.86 2.28 0.38 1 9 8 9 9 -2.38 7.53
SAM_Resp 0 35 ID47 6.29 2.16 0.37 2 9 7 6 9 -0.11 1.75
SAM_Resp 0 35 ID48 5.80 2.29 0.39 2 9 7 6 8 -0.14 1.65
SAM_Resp 0 35 ID49 6.80 2.18 0.37 2 9 7 7 9 -1.00 3.03
SAM_Resp 0 35 ID50 3.20 1.28 0.22 2 5 3 3 2 0.39 1.47
SAM_Resp 0 35 ID51 5.03 2.51 0.43 1 9 8 5 5 0.26 1.91
SAM_Resp 0 35 ID52 3.23 0.69 0.12 2 5 3 3 3 1.32 4.76
SAM_Resp 0 35 ID54 7.91 1.54 0.26 4 9 5 9 9 -1.32 3.60
SAM_Resp 0 35 ID55 7.06 2.17 0.37 2 9 7 8 9 -1.02 2.76
SAM_Resp 0 35 ID57 4.29 1.60 0.27 2 8 6 4 4 0.70 2.75
SAM_Resp 0 35 ID58 1.74 0.89 0.15 1 4 3 1 1 0.78 2.41
SAM_Resp 0 35 ID61 5.57 3.06 0.52 1 9 8 6 9 -0.25 1.54
SAM_Resp 0 35 ID63 5.97 2.18 0.37 2 9 7 6 6 -0.31 2.08
SAM_Resp 0 35 ID64 4.43 1.84 0.31 1 8 7 4 6 -0.28 2.26
SAM_Resp 0 35 ID66 6.17 1.89 0.32 1 8 7 7 7 -1.45 4.19
SAM_Resp 0 35 ID9 5.86 2.32 0.39 3 9 6 6 3 0.06 1.45
Unic_CTRL_Solo - negativ
variable missing N ID M SD SE min max range median mode skew kurtosis
SAM_Resp 0 35 ID10 3.17 1.95 0.33 1 8 7 3 2 1.11 3.36
SAM_Resp 0 35 ID12 3.69 1.59 0.27 1 6 5 4 5 -0.19 1.75
SAM_Resp 0 35 ID13 7.63 2.13 0.36 1 9 8 9 9 -1.71 5.00
SAM_Resp 0 35 ID16 5.80 1.94 0.33 2 9 7 6 4 -0.06 1.84
SAM_Resp 0 35 ID17 3.14 1.68 0.28 1 7 6 3 2 0.75 2.60
SAM_Resp 0 35 ID26 6.34 2.34 0.40 2 9 7 7 9 -0.48 2.02
SAM_Resp 0 35 ID27 2.51 1.07 0.18 1 5 4 3 3 0.18 2.35
SAM_Resp 0 35 ID28 4.83 1.42 0.24 2 7 5 5 4 -0.13 2.22
SAM_Resp 0 35 ID29 4.66 1.85 0.31 1 8 7 5 5 -0.22 2.37
SAM_Resp 0 35 ID33 2.63 0.73 0.12 2 4 2 2 2 0.69 2.20
SAM_Resp 0 35 ID36 4.06 2.87 0.48 1 9 8 3 2 0.55 1.80
SAM_Resp 0 35 ID37 5.37 3.03 0.51 1 9 8 6 9 -0.28 1.59
SAM_Resp 0 35 ID39 7.77 1.40 0.24 4 9 5 8 9 -1.10 3.39
SAM_Resp 0 35 ID41 7.91 1.84 0.31 3 9 6 9 9 -1.26 2.99
SAM_Resp 0 35 ID43 3.83 1.25 0.21 1 6 5 4 3 0.05 2.53
SAM_Resp 0 35 ID44 4.26 1.01 0.17 3 6 3 4 4 0.34 2.07
SAM_Resp 0 35 ID45 8.14 1.82 0.31 1 9 8 9 9 -2.51 8.97
SAM_Resp 0 35 ID47 6.20 1.92 0.32 3 9 6 7 7 -0.29 1.88
SAM_Resp 0 35 ID48 5.29 2.52 0.43 2 9 7 5 2 0.14 1.60
SAM_Resp 0 35 ID49 6.97 1.81 0.31 2 9 7 7 9 -0.72 3.30
SAM_Resp 0 35 ID50 3.14 1.33 0.23 1 6 5 3 2 0.19 2.05
SAM_Resp 0 35 ID51 5.14 2.17 0.37 1 9 8 5 5 0.18 2.25
SAM_Resp 0 35 ID52 3.37 0.81 0.14 3 6 3 3 3 2.30 7.39
SAM_Resp 0 35 ID54 7.71 1.71 0.29 3 9 6 9 9 -1.13 3.18
SAM_Resp 0 35 ID55 7.60 1.87 0.32 3 9 6 8 9 -1.25 3.40
SAM_Resp 0 35 ID57 4.71 1.71 0.29 2 9 7 4 4 0.67 2.87
SAM_Resp 0 35 ID58 1.89 1.02 0.17 1 4 3 2 1 0.73 2.25
SAM_Resp 0 35 ID6 8.26 1.22 0.21 4 9 5 9 9 -1.98 6.55
SAM_Resp 0 35 ID61 5.37 2.82 0.48 1 9 8 5 9 -0.07 1.68
SAM_Resp 0 35 ID63 6.14 1.97 0.33 2 9 7 6 4 -0.04 2.00
SAM_Resp 0 35 ID64 5.09 2.09 0.35 2 8 6 6 7 -0.31 1.64
SAM_Resp 0 35 ID66 6.34 1.64 0.28 2 8 6 7 7 -1.37 4.27
SAM_Resp 0 35 ID8 5.34 2.21 0.37 1 9 8 5 5 -0.51 2.40
SAM_Resp 0 35 ID9 5.74 1.82 0.31 3 9 6 6 6 0.36 2.15
Unic_OGL_Instr - negativ
variable missing N ID M SD SE min max range median mode skew kurtosis
SAM_Resp 0 35 ID10 3.86 2.30 0.39 1 8 7 3 2 0.38 1.82
SAM_Resp 0 35 ID12 2.77 1.46 0.25 1 5 4 3 1 0.23 1.70
SAM_Resp 0 35 ID13 7.63 2.04 0.35 2 9 7 9 9 -1.29 3.46
SAM_Resp 0 35 ID15 4.17 1.10 0.19 2 6 4 4 4 -0.07 2.27
SAM_Resp 0 35 ID16 6.57 1.90 0.32 3 9 6 6 6 -0.18 1.81
SAM_Resp 0 35 ID17 1.77 0.73 0.12 1 3 2 2 2 0.37 1.98
SAM_Resp 0 35 ID26 6.89 2.43 0.41 1 9 8 8 9 -0.96 2.75
SAM_Resp 0 35 ID27 2.74 1.31 0.22 1 5 4 3 3 0.17 1.98
SAM_Resp 0 35 ID28 5.51 1.44 0.24 3 8 5 6 7 -0.36 1.95
SAM_Resp 0 35 ID29 4.74 1.90 0.32 1 8 7 5 5 -0.41 2.41
SAM_Resp 0 35 ID37 6.54 2.68 0.45 1 9 8 7 9 -0.79 2.35
SAM_Resp 0 35 ID39 7.43 1.65 0.28 2 9 7 8 8 -1.35 4.74
SAM_Resp 0 35 ID41 8.83 0.75 0.13 5 9 4 9 9 -4.44 21.98
SAM_Resp 0 35 ID43 2.43 0.98 0.17 1 5 4 2 2 0.58 2.98
SAM_Resp 0 35 ID44 4.54 1.07 0.18 3 7 4 4 4 0.55 2.83
SAM_Resp 0 35 ID45 7.57 2.10 0.36 1 9 8 9 9 -1.59 4.69
SAM_Resp 0 35 ID47 6.09 1.74 0.29 3 9 6 6 6 -0.20 2.20
SAM_Resp 0 35 ID48 5.71 2.55 0.43 2 9 7 6 8 -0.17 1.58
SAM_Resp 0 35 ID49 6.06 1.89 0.32 2 9 7 6 8 -0.06 1.96
SAM_Resp 0 35 ID50 3.63 1.68 0.28 1 8 7 4 2 0.56 2.54
SAM_Resp 0 35 ID51 5.66 2.46 0.42 2 9 7 5 9 0.02 1.69
SAM_Resp 0 35 ID52 2.86 0.69 0.12 2 5 3 3 3 0.73 4.17
SAM_Resp 0 35 ID54 6.89 2.48 0.42 1 9 8 8 9 -0.83 2.47
SAM_Resp 0 35 ID55 7.43 2.05 0.35 3 9 6 8 9 -1.01 2.54
SAM_Resp 0 35 ID57 2.49 1.22 0.21 1 6 5 2 2 1.06 3.79
SAM_Resp 0 35 ID58 2.17 1.29 0.22 1 6 5 2 1 1.08 3.69
SAM_Resp 0 35 ID6 7.54 1.44 0.24 5 9 4 8 9 -0.48 1.83
SAM_Resp 0 35 ID61 5.14 2.79 0.47 1 9 8 5 9 -0.03 1.65
SAM_Resp 0 35 ID63 6.23 2.03 0.34 3 9 6 6 9 -0.19 1.84
SAM_Resp 0 35 ID64 6.57 2.25 0.38 1 9 8 7 7 -1.14 3.53
SAM_Resp 0 35 ID66 6.43 1.48 0.25 2 8 6 7 7 -1.04 3.70
SAM_Resp 0 35 ID8 2.89 1.79 0.30 1 6 5 3 1 0.36 1.79
SAM_Resp 0 35 ID9 4.63 1.85 0.31 2 8 6 4 3 0.28 1.59
Unic_OGL_Solo - negativ
variable missing N ID M SD SE min max range median mode skew kurtosis
SAM_Resp 0 35 ID10 3.34 1.94 0.33 1 8 7 3 3 0.66 2.62
SAM_Resp 0 35 ID12 2.91 1.46 0.25 1 5 4 3 1 -0.02 1.65
SAM_Resp 0 35 ID13 8.40 1.58 0.27 1 9 8 9 9 -3.48 15.59
SAM_Resp 0 35 ID16 6.54 1.96 0.33 3 9 6 6 9 -0.22 1.88
SAM_Resp 0 35 ID17 1.71 0.67 0.11 1 3 2 2 2 0.38 2.24
SAM_Resp 0 35 ID26 6.46 2.70 0.46 1 9 8 7 9 -0.68 2.05
SAM_Resp 0 35 ID27 2.11 1.35 0.23 1 5 4 1 1 0.75 2.16
SAM_Resp 0 35 ID28 5.49 1.56 0.26 1 8 7 6 6 -0.70 3.38
SAM_Resp 0 35 ID29 5.20 2.04 0.34 1 8 7 5 5 -0.67 2.57
SAM_Resp 0 35 ID33 2.94 0.80 0.14 1 4 3 3 3 -0.59 3.16
SAM_Resp 0 35 ID37 6.03 2.63 0.44 1 9 8 6 9 -0.62 2.32
SAM_Resp 0 35 ID39 7.23 2.00 0.34 1 9 8 8 8 -1.57 4.94
SAM_Resp 0 35 ID41 9.00 0.00 0.00 9 9 0 9 9 NaN NaN
SAM_Resp 0 35 ID43 3.60 1.61 0.27 1 7 6 4 5 -0.14 1.99
SAM_Resp 0 35 ID44 4.40 1.19 0.20 3 7 4 4 4 0.45 2.00
SAM_Resp 0 35 ID45 7.86 2.18 0.37 1 9 8 9 9 -2.08 6.05
SAM_Resp 0 35 ID47 6.09 1.63 0.28 3 9 6 6 6 0.19 2.47
SAM_Resp 0 35 ID48 5.60 2.70 0.46 1 9 8 6 8 -0.28 1.76
SAM_Resp 0 35 ID49 6.83 1.90 0.32 2 9 7 7 9 -0.56 2.67
SAM_Resp 0 35 ID50 3.83 1.79 0.30 1 7 6 4 2 0.26 1.93
SAM_Resp 0 35 ID51 5.34 2.54 0.43 1 9 8 5 9 0.34 1.85
SAM_Resp 0 35 ID52 2.63 1.19 0.20 1 6 5 3 3 0.43 3.09
SAM_Resp 0 35 ID54 7.46 2.03 0.34 3 9 6 9 9 -0.87 2.17
SAM_Resp 0 35 ID55 7.54 1.92 0.32 2 9 7 8 9 -1.37 3.80
SAM_Resp 0 35 ID57 3.57 1.48 0.25 1 8 7 4 4 0.60 3.79
SAM_Resp 0 35 ID58 2.91 1.82 0.31 1 7 6 2 2 0.81 2.60
SAM_Resp 0 35 ID6 7.26 1.79 0.30 1 9 8 7 9 -1.21 5.24
SAM_Resp 0 35 ID61 2.77 2.00 0.34 1 9 8 2 1 1.50 4.66
SAM_Resp 0 35 ID63 5.77 2.16 0.36 2 9 7 5 4 0.30 1.83
SAM_Resp 0 35 ID64 4.66 2.15 0.36 1 8 7 5 6 -0.46 1.95
SAM_Resp 0 35 ID66 6.51 1.34 0.23 2 8 6 7 7 -1.61 6.10
SAM_Resp 0 35 ID8 3.46 1.99 0.34 1 7 6 4 5 -0.11 1.66
SAM_Resp 0 35 ID9 5.23 2.03 0.34 2 9 7 5 3 0.07 1.77
Unic_CTRL_Instr - pozitiv
variable missing N M SD SE min max range median mode skew kurtosis
SAM_Resp 0 1155 3.78 2.31 0.07 1 9 8 3 1 0.57 2.29
Unic_CTRL_Solo - pozitiv
variable missing N M SD SE min max range median mode skew kurtosis
SAM_Resp 0 1190 3.82 2.25 0.07 1 9 8 3 2 0.57 2.4
Unic_OGL_Instr - pozitiv
variable missing N M SD SE min max range median mode skew kurtosis
SAM_Resp 0 1155 3.75 2.26 0.07 1 9 8 3 1 0.66 2.64
Unic_OGL_Solo - pozitiv
variable missing N M SD SE min max range median mode skew kurtosis
SAM_Resp 0 1155 3.87 2.35 0.07 1 9 8 3 1 0.54 2.26
Unic_CTRL_Instr - pozitiv
variable missing N ID M SD SE min max range median mode skew kurtosis
SAM_Resp 0 35 ID06 6.89 2.31 0.39 1 9 8 8 8 -1.41 3.88
SAM_Resp 0 35 ID10 2.51 1.04 0.18 1 5 4 2 2 0.44 2.47
SAM_Resp 0 35 ID12 1.00 0.00 0.00 1 1 0 1 1 NaN NaN
SAM_Resp 0 35 ID13 4.94 2.52 0.43 1 9 8 5 7 -0.23 1.67
SAM_Resp 0 35 ID16 3.20 1.13 0.19 1 6 5 3 3 0.46 2.73
SAM_Resp 0 35 ID17 1.69 0.76 0.13 1 3 2 2 1 0.58 2.00
SAM_Resp 0 35 ID26 3.49 2.54 0.43 1 9 8 3 1 0.67 2.21
SAM_Resp 0 35 ID27 1.71 0.71 0.12 1 3 2 2 2 0.46 2.10
SAM_Resp 0 35 ID28 4.11 1.02 0.17 2 6 4 4 4 0.11 2.20
SAM_Resp 0 35 ID29 4.86 1.46 0.25 2 7 5 5 6 -0.73 2.15
SAM_Resp 0 35 ID33 2.60 0.77 0.13 1 5 4 3 2 0.82 4.19
SAM_Resp 0 35 ID36 1.69 0.87 0.15 1 3 2 1 1 0.65 1.68
SAM_Resp 0 35 ID37 3.06 2.58 0.44 1 9 8 2 1 1.11 2.77
SAM_Resp 0 35 ID39 2.03 1.42 0.24 1 5 4 1 1 1.25 3.14
SAM_Resp 0 35 ID41 6.43 2.40 0.41 1 9 8 7 5 -0.46 2.39
SAM_Resp 0 35 ID43 2.69 0.99 0.17 1 5 4 3 2 0.30 2.39
SAM_Resp 0 35 ID44 5.26 1.04 0.18 3 7 4 5 6 -0.69 2.88
SAM_Resp 0 35 ID45 3.37 2.40 0.41 1 9 8 3 1 1.03 3.28
SAM_Resp 0 35 ID47 6.09 1.74 0.29 3 9 6 6 7 -0.51 2.22
SAM_Resp 0 35 ID48 3.66 1.71 0.29 1 7 6 3 2 0.40 2.04
SAM_Resp 0 35 ID49 3.06 1.24 0.21 1 6 5 3 2 0.27 2.48
SAM_Resp 0 35 ID50 2.14 1.17 0.20 1 5 4 2 2 0.96 3.14
SAM_Resp 0 35 ID51 2.14 1.00 0.17 1 5 4 2 2 0.77 3.33
SAM_Resp 0 35 ID52 4.51 1.17 0.20 2 7 5 5 5 0.24 3.08
SAM_Resp 0 35 ID54 6.83 2.20 0.37 1 9 8 7 9 -0.85 2.78
SAM_Resp 0 35 ID55 5.40 2.58 0.44 1 9 8 6 7 -0.28 1.84
SAM_Resp 0 35 ID57 3.89 1.02 0.17 2 6 4 4 4 -0.11 2.20
SAM_Resp 0 35 ID58 2.11 1.08 0.18 1 4 3 2 2 0.63 2.17
SAM_Resp 0 35 ID61 2.60 2.48 0.42 1 8 7 1 1 1.21 2.85
SAM_Resp 0 35 ID63 4.26 1.88 0.32 1 7 6 4 5 -0.27 2.12
SAM_Resp 0 35 ID64 4.83 1.67 0.28 2 7 5 5 3 0.08 1.51
SAM_Resp 0 35 ID66 6.74 1.04 0.18 2 8 6 7 7 -2.67 13.56
SAM_Resp 0 35 ID9 4.91 1.50 0.25 3 8 5 5 5 0.52 2.48
Unic_CTRL_Solo - pozitiv
variable missing N ID M SD SE min max range median mode skew kurtosis
SAM_Resp 0 35 ID10 3.09 1.40 0.24 1 6 5 3 2 0.30 2.22
SAM_Resp 0 35 ID12 1.00 0.00 0.00 1 1 0 1 1 NaN NaN
SAM_Resp 0 35 ID13 4.57 2.50 0.42 1 9 8 4 2 0.29 2.03
SAM_Resp 0 35 ID16 2.94 0.97 0.16 1 5 4 3 3 0.51 2.85
SAM_Resp 0 35 ID17 1.94 0.84 0.14 1 4 3 2 2 0.41 2.29
SAM_Resp 0 35 ID26 3.26 1.74 0.29 1 7 6 3 2 0.65 2.41
SAM_Resp 0 35 ID27 1.51 0.56 0.10 1 3 2 1 1 0.45 2.13
SAM_Resp 0 35 ID28 4.03 1.20 0.20 2 6 4 4 4 -0.06 2.12
SAM_Resp 0 35 ID29 4.26 1.88 0.32 1 8 7 4 3 0.05 1.94
SAM_Resp 0 35 ID33 2.91 0.98 0.17 2 6 4 3 2 1.12 4.17
SAM_Resp 0 35 ID36 2.14 1.06 0.18 1 4 3 2 1 0.46 2.00
SAM_Resp 0 35 ID37 3.43 2.39 0.40 1 9 8 3 1 0.89 2.69
SAM_Resp 0 35 ID39 2.37 1.70 0.29 1 8 7 2 1 1.48 4.91
SAM_Resp 0 35 ID41 5.34 2.04 0.35 1 9 8 5 5 0.49 2.83
SAM_Resp 0 35 ID43 2.34 1.00 0.17 1 5 4 2 2 0.71 3.08
SAM_Resp 0 35 ID44 5.20 0.90 0.15 3 7 4 5 6 -0.40 2.49
SAM_Resp 0 35 ID45 2.86 1.68 0.28 1 9 8 3 2 1.47 6.13
SAM_Resp 0 35 ID47 5.60 1.82 0.31 2 9 7 6 6 -0.37 2.65
SAM_Resp 0 35 ID48 3.29 1.93 0.33 1 7 6 3 2 0.63 2.16
SAM_Resp 0 35 ID49 3.34 1.91 0.32 1 9 8 3 2 0.86 3.38
SAM_Resp 0 35 ID50 2.46 1.27 0.21 1 5 4 2 2 0.58 2.29
SAM_Resp 0 35 ID51 2.80 1.08 0.18 1 5 4 3 3 -0.17 2.18
SAM_Resp 0 35 ID52 4.94 1.35 0.23 3 8 5 5 5 0.18 2.45
SAM_Resp 0 35 ID54 6.83 1.87 0.32 1 9 8 7 7 -0.92 3.91
SAM_Resp 0 35 ID55 6.03 2.62 0.44 2 9 7 7 9 -0.30 1.59
SAM_Resp 0 35 ID57 4.11 1.23 0.21 2 7 5 4 4 0.55 2.95
SAM_Resp 0 35 ID58 1.71 0.86 0.15 1 4 3 1 1 0.86 2.68
SAM_Resp 0 35 ID6 7.14 1.88 0.32 2 9 7 8 8 -1.20 3.73
SAM_Resp 0 35 ID61 3.09 2.97 0.50 1 9 8 1 1 1.08 2.50
SAM_Resp 0 35 ID63 4.89 1.57 0.26 2 9 7 5 6 0.10 3.07
SAM_Resp 0 35 ID64 5.20 2.08 0.35 1 8 7 6 7 -0.41 1.90
SAM_Resp 0 35 ID66 6.66 1.26 0.21 2 9 7 7 7 -1.12 6.80
SAM_Resp 0 35 ID8 3.51 1.82 0.31 1 7 6 4 5 0.04 2.04
SAM_Resp 0 35 ID9 5.03 1.20 0.20 3 7 4 5 4 0.36 2.08
Unic_OGL_Instr - pozitiv
variable missing N ID M SD SE min max range median mode skew kurtosis
SAM_Resp 0 35 ID10 3.86 1.59 0.27 1 8 7 4 4 0.33 2.85
SAM_Resp 0 35 ID12 1.29 0.52 0.09 1 3 2 1 1 1.57 4.56
SAM_Resp 0 35 ID13 4.20 2.35 0.40 1 9 8 4 2 0.30 2.18
SAM_Resp 0 35 ID15 2.40 0.77 0.13 1 4 3 2 2 -0.05 2.58
SAM_Resp 0 35 ID16 3.89 1.18 0.20 2 6 4 4 4 0.22 2.26
SAM_Resp 0 35 ID17 1.31 0.47 0.08 1 2 1 1 1 0.80 1.64
SAM_Resp 0 35 ID26 4.77 1.66 0.28 1 8 7 5 5 -0.25 3.15
SAM_Resp 0 35 ID27 1.63 0.73 0.12 1 3 2 1 1 0.69 2.20
SAM_Resp 0 35 ID28 4.40 1.09 0.18 3 7 4 4 4 0.40 2.37
SAM_Resp 0 35 ID29 3.51 1.62 0.27 1 8 7 3 5 0.44 2.91
SAM_Resp 0 35 ID37 4.69 2.73 0.46 1 9 8 4 3 0.19 1.75
SAM_Resp 0 35 ID39 1.80 1.11 0.19 1 5 4 1 1 1.20 3.49
SAM_Resp 0 35 ID41 7.80 2.18 0.37 1 9 8 9 9 -1.54 4.23
SAM_Resp 0 35 ID43 2.34 1.35 0.23 1 6 5 2 1 0.89 3.12
SAM_Resp 0 35 ID44 4.77 1.03 0.17 3 7 4 5 4 0.14 2.12
SAM_Resp 0 35 ID45 1.94 1.06 0.18 1 4 3 2 1 0.72 2.24
SAM_Resp 0 35 ID47 5.63 1.55 0.26 2 9 7 6 6 -0.17 2.73
SAM_Resp 0 35 ID48 3.63 1.73 0.29 1 7 6 3 3 0.24 2.14
SAM_Resp 0 35 ID49 2.97 1.34 0.23 1 6 5 3 2 0.43 2.30
SAM_Resp 0 35 ID50 3.86 1.50 0.25 1 7 6 4 4 0.09 2.97
SAM_Resp 0 35 ID51 1.91 0.92 0.16 1 5 4 2 2 1.32 5.23
SAM_Resp 0 35 ID52 4.03 1.46 0.25 2 7 5 3 3 0.69 2.08
SAM_Resp 0 35 ID54 5.37 2.49 0.42 1 9 8 5 3 0.10 1.62
SAM_Resp 0 35 ID55 6.17 3.07 0.52 1 9 8 8 9 -0.59 1.69
SAM_Resp 0 35 ID57 2.37 0.94 0.16 1 4 3 3 3 -0.16 2.00
SAM_Resp 0 35 ID58 2.71 1.18 0.20 1 4 3 3 3 -0.53 1.79
SAM_Resp 0 35 ID6 5.14 1.38 0.23 2 7 5 5 4 -0.12 2.16
SAM_Resp 0 35 ID61 2.71 2.09 0.35 1 9 8 2 1 1.34 4.02
SAM_Resp 0 35 ID63 4.49 1.80 0.31 1 8 7 4 4 0.56 2.74
SAM_Resp 0 35 ID64 6.09 2.37 0.40 1 9 8 6 6 -0.74 2.67
SAM_Resp 0 35 ID66 5.63 1.78 0.30 2 8 6 6 7 -0.59 2.33
SAM_Resp 0 35 ID8 2.00 1.48 0.25 1 5 4 1 1 1.06 2.54
SAM_Resp 0 35 ID9 4.34 1.37 0.23 1 7 6 4 5 -0.22 2.89
Unic_OGL_Solo - pozitiv
variable missing N ID M SD SE min max range median mode skew kurtosis
SAM_Resp 0 35 ID10 3.23 1.44 0.24 1 7 6 3 4 0.50 3.19
SAM_Resp 0 35 ID12 1.34 0.48 0.08 1 2 1 1 1 0.66 1.44
SAM_Resp 0 35 ID13 5.60 2.52 0.43 1 9 8 6 8 -0.51 2.04
SAM_Resp 0 35 ID16 3.69 1.13 0.19 2 6 4 3 3 0.64 2.44
SAM_Resp 0 35 ID17 1.49 0.51 0.09 1 2 1 1 1 0.06 1.00
SAM_Resp 0 35 ID26 4.11 2.26 0.38 1 8 7 4 6 0.06 1.72
SAM_Resp 0 35 ID27 1.34 0.59 0.10 1 3 2 1 1 1.50 4.19
SAM_Resp 0 35 ID28 4.60 1.46 0.25 2 8 6 5 5 0.20 2.44
SAM_Resp 0 35 ID29 4.23 1.46 0.25 2 7 5 5 5 -0.40 2.05
SAM_Resp 0 35 ID33 2.97 1.40 0.24 1 7 6 3 3 0.63 3.29
SAM_Resp 0 35 ID37 4.40 2.79 0.47 1 9 8 3 2 0.53 1.71
SAM_Resp 0 35 ID39 1.77 0.97 0.16 1 4 3 1 1 0.86 2.44
SAM_Resp 0 35 ID41 8.03 1.96 0.33 1 9 8 9 9 -2.12 6.86
SAM_Resp 0 35 ID43 2.54 1.56 0.26 1 7 6 2 2 1.26 4.01
SAM_Resp 0 35 ID44 4.83 0.89 0.15 3 7 4 5 5 -0.17 3.30
SAM_Resp 0 35 ID45 1.83 0.92 0.16 1 4 3 2 1 0.57 1.97
SAM_Resp 0 35 ID47 4.94 1.91 0.32 1 8 7 5 6 -0.17 2.06
SAM_Resp 0 35 ID48 4.40 2.43 0.41 1 8 7 4 6 0.01 1.77
SAM_Resp 0 35 ID49 3.97 1.71 0.29 2 8 6 4 3 0.95 3.03
SAM_Resp 0 35 ID50 2.91 1.09 0.19 1 5 4 3 3 0.17 2.40
SAM_Resp 0 35 ID51 1.83 0.92 0.16 1 4 3 2 1 0.80 2.64
SAM_Resp 0 35 ID52 3.34 1.39 0.24 1 7 6 3 3 0.89 3.26
SAM_Resp 0 35 ID54 5.77 2.39 0.40 1 9 8 6 3 -0.36 1.95
SAM_Resp 0 35 ID55 6.37 2.54 0.43 1 9 8 7 8 -0.75 2.14
SAM_Resp 0 35 ID57 3.54 1.22 0.21 2 6 4 3 5 0.15 1.76
SAM_Resp 0 35 ID58 2.83 1.34 0.23 1 6 5 3 2 0.39 2.38
SAM_Resp 0 35 ID6 5.49 1.76 0.30 1 8 7 6 7 -0.74 2.74
SAM_Resp 0 35 ID61 1.49 1.44 0.24 1 7 6 1 1 2.86 9.94
SAM_Resp 0 35 ID63 5.31 1.66 0.28 2 8 6 5 4 0.08 1.98
SAM_Resp 0 35 ID64 5.77 2.35 0.40 1 9 8 6 7 -0.66 2.50
SAM_Resp 0 35 ID66 6.31 1.49 0.25 2 9 7 7 7 -0.98 3.99
SAM_Resp 0 35 ID8 2.49 1.58 0.27 1 5 4 2 1 0.39 1.54
SAM_Resp 0 35 ID9 4.91 1.79 0.30 1 9 8 5 4 0.35 2.76
Unic_CTRL_Instr - neutru
variable missing N M SD SE min max range median mode skew kurtosis
SAM_Resp 0 1155 2.08 1.59 0.05 1 9 8 1 1 1.7 5.38
Unic_CTRL_Solo - neutru
variable missing N M SD SE min max range median mode skew kurtosis
SAM_Resp 0 1190 2.14 1.58 0.05 1 9 8 1 1 1.5 4.8
Unic_OGL_Instr - neutru
variable missing N M SD SE min max range median mode skew kurtosis
SAM_Resp 0 1155 2.07 1.51 0.04 1 9 8 1 1 1.65 5.52
Unic_OGL_Solo - neutru
variable missing N M SD SE min max range median mode skew kurtosis
SAM_Resp 0 1155 2.07 1.55 0.05 1 9 8 1 1 1.77 6.07
Unic_CTRL_Instr - neutru
variable missing N ID M SD SE min max range median mode skew kurtosis
SAM_Resp 0 35 ID06 2.03 1.72 0.29 1 8 7 1 1 1.98 6.31
SAM_Resp 0 35 ID10 2.03 1.34 0.23 1 5 4 2 1 1.21 3.29
SAM_Resp 0 35 ID12 1.03 0.17 0.03 1 2 1 1 1 5.66 33.03
SAM_Resp 0 35 ID13 2.26 1.99 0.34 1 8 7 1 1 1.68 4.93
SAM_Resp 0 35 ID16 2.11 0.96 0.16 1 4 3 2 2 0.57 2.45
SAM_Resp 0 35 ID17 1.23 0.60 0.10 1 3 2 1 1 2.40 7.17
SAM_Resp 0 35 ID26 1.37 0.94 0.16 1 5 4 1 1 2.63 9.07
SAM_Resp 0 35 ID27 1.29 0.62 0.11 1 4 3 1 1 2.72 11.40
SAM_Resp 0 35 ID28 2.94 1.30 0.22 1 6 5 2 2 0.75 2.73
SAM_Resp 0 35 ID29 1.37 0.60 0.10 1 3 2 1 1 1.34 3.76
SAM_Resp 0 35 ID33 1.31 0.63 0.11 1 3 2 1 1 1.80 4.88
SAM_Resp 0 35 ID36 1.17 0.86 0.14 1 6 5 1 1 5.36 30.54
SAM_Resp 0 35 ID37 1.11 0.40 0.07 1 3 2 1 1 3.65 15.81
SAM_Resp 0 35 ID39 2.69 1.60 0.27 1 7 6 2 2 1.22 3.89
SAM_Resp 0 35 ID41 1.91 1.84 0.31 1 7 6 1 1 1.74 4.58
SAM_Resp 0 35 ID43 1.51 0.78 0.13 1 4 3 1 1 1.46 4.46
SAM_Resp 0 35 ID44 4.29 1.25 0.21 2 7 5 4 5 0.27 2.65
SAM_Resp 0 35 ID45 1.86 1.73 0.29 1 8 7 1 1 2.32 7.62
SAM_Resp 0 35 ID47 4.40 2.26 0.38 1 9 8 4 2 0.16 1.74
SAM_Resp 0 35 ID48 1.89 1.51 0.26 1 7 6 1 1 2.02 6.42
SAM_Resp 0 35 ID49 2.97 1.85 0.31 1 7 6 3 1 0.69 2.46
SAM_Resp 0 35 ID50 1.09 0.28 0.05 1 2 1 1 1 2.96 9.76
SAM_Resp 0 35 ID51 1.23 0.65 0.11 1 4 3 1 1 3.09 12.20
SAM_Resp 0 35 ID52 3.00 1.28 0.22 1 5 4 3 2 0.34 1.96
SAM_Resp 0 35 ID54 2.37 1.85 0.31 1 7 6 2 1 1.31 3.60
SAM_Resp 0 35 ID55 3.74 2.36 0.40 1 8 7 3 1 0.41 1.93
SAM_Resp 0 35 ID57 3.06 1.43 0.24 1 7 6 3 2 1.05 3.50
SAM_Resp 0 35 ID58 1.26 0.61 0.10 1 3 2 1 1 2.18 6.25
SAM_Resp 0 35 ID61 1.74 1.67 0.28 1 8 7 1 1 2.38 7.95
SAM_Resp 0 35 ID63 2.14 1.31 0.22 1 5 4 2 1 0.85 2.63
SAM_Resp 0 35 ID64 1.49 0.85 0.14 1 5 4 1 1 2.35 9.43
SAM_Resp 0 35 ID66 1.83 1.04 0.18 1 6 5 2 2 2.08 8.65
SAM_Resp 0 35 ID9 2.83 1.32 0.22 1 6 5 2 2 1.18 3.66
Unic_CTRL_Solo - neutru
variable missing N ID M SD SE min max range median mode skew kurtosis
SAM_Resp 0 35 ID10 2.06 1.28 0.22 1 5 4 2 1 1.08 3.11
SAM_Resp 0 35 ID12 1.09 0.51 0.09 1 4 3 1 1 5.66 33.03
SAM_Resp 0 35 ID13 3.29 2.27 0.38 1 9 8 3 1 0.64 2.37
SAM_Resp 0 35 ID16 1.80 0.76 0.13 1 4 3 2 2 0.75 3.38
SAM_Resp 0 35 ID17 1.49 0.98 0.17 1 5 4 1 1 2.12 6.86
SAM_Resp 0 35 ID26 1.11 0.32 0.05 1 2 1 1 1 2.42 6.88
SAM_Resp 0 35 ID27 1.37 0.73 0.12 1 4 3 1 1 2.06 6.70
SAM_Resp 0 35 ID28 2.43 0.85 0.14 1 5 4 2 2 1.39 4.27
SAM_Resp 0 35 ID29 1.54 0.98 0.17 1 6 5 1 1 2.92 13.30
SAM_Resp 0 35 ID33 1.43 0.78 0.13 1 4 3 1 1 1.76 5.25
SAM_Resp 0 35 ID36 1.14 0.49 0.08 1 3 2 1 1 3.31 12.41
SAM_Resp 0 35 ID37 1.26 0.56 0.09 1 3 2 1 1 2.06 6.16
SAM_Resp 0 35 ID39 3.34 1.68 0.28 1 8 7 3 2 1.26 3.83
SAM_Resp 0 35 ID41 1.97 1.77 0.30 1 9 8 1 1 2.23 8.33
SAM_Resp 0 35 ID43 1.03 0.17 0.03 1 2 1 1 1 5.66 33.03
SAM_Resp 0 35 ID44 4.20 0.83 0.14 2 5 3 4 5 -0.69 2.64
SAM_Resp 0 35 ID45 1.69 1.59 0.27 1 8 7 1 1 2.73 9.89
SAM_Resp 0 35 ID47 4.11 1.89 0.32 1 7 6 4 6 -0.03 1.61
SAM_Resp 0 35 ID48 1.66 1.08 0.18 1 6 5 1 1 2.12 8.35
SAM_Resp 0 35 ID49 2.74 2.08 0.35 1 8 7 2 1 1.11 3.09
SAM_Resp 0 35 ID50 1.37 0.69 0.12 1 3 2 1 1 1.56 3.94
SAM_Resp 0 35 ID51 1.26 0.85 0.14 1 5 4 1 1 3.54 14.57
SAM_Resp 0 35 ID52 3.46 1.38 0.23 1 6 5 3 3 0.64 2.47
SAM_Resp 0 35 ID54 2.46 1.52 0.26 1 7 6 2 1 1.02 3.83
SAM_Resp 0 35 ID55 3.20 2.59 0.44 1 9 8 2 1 0.79 2.19
SAM_Resp 0 35 ID57 3.26 0.95 0.16 1 5 4 3 4 -0.32 2.46
SAM_Resp 0 35 ID58 1.11 0.40 0.07 1 3 2 1 1 3.65 15.81
SAM_Resp 0 35 ID6 2.09 1.54 0.26 1 6 5 1 1 1.03 2.63
SAM_Resp 0 35 ID61 1.23 0.77 0.13 1 5 4 1 1 3.90 18.32
SAM_Resp 0 35 ID63 2.86 1.61 0.27 1 7 6 2 2 0.66 2.64
SAM_Resp 0 35 ID64 1.43 0.74 0.12 1 4 3 1 1 1.80 5.84
SAM_Resp 0 35 ID66 2.40 1.61 0.27 1 6 5 2 2 1.51 3.95
SAM_Resp 0 35 ID8 2.37 1.66 0.28 1 6 5 1 1 0.71 1.99
SAM_Resp 0 35 ID9 3.63 1.31 0.22 1 7 6 3 3 0.47 3.05
Unic_OGL_Instr - neutru
variable missing N ID M SD SE min max range median mode skew kurtosis
SAM_Resp 0 35 ID10 1.80 1.32 0.22 1 6 5 1 1 1.84 5.49
SAM_Resp 0 35 ID12 1.17 0.57 0.10 1 4 3 1 1 3.94 19.03
SAM_Resp 0 35 ID13 2.09 2.06 0.35 1 9 8 1 1 2.31 7.88
SAM_Resp 0 35 ID15 2.00 0.91 0.15 1 4 3 2 2 0.72 2.86
SAM_Resp 0 35 ID16 2.94 1.21 0.20 1 6 5 3 2 0.41 2.62
SAM_Resp 0 35 ID17 1.14 0.36 0.06 1 2 1 1 1 2.04 5.17
SAM_Resp 0 35 ID26 1.34 0.84 0.14 1 4 3 1 1 2.33 7.09
SAM_Resp 0 35 ID27 1.11 0.40 0.07 1 3 2 1 1 3.65 15.81
SAM_Resp 0 35 ID28 3.11 1.55 0.26 1 7 6 3 2 1.16 3.34
SAM_Resp 0 35 ID29 1.74 0.78 0.13 1 4 3 2 2 0.85 3.32
SAM_Resp 0 35 ID37 1.49 0.89 0.15 1 4 3 1 1 1.46 3.58
SAM_Resp 0 35 ID39 2.60 1.22 0.21 1 5 4 2 2 0.81 2.49
SAM_Resp 0 35 ID41 2.49 2.24 0.38 1 9 8 1 1 1.41 3.93
SAM_Resp 0 35 ID43 1.14 0.36 0.06 1 2 1 1 1 2.04 5.17
SAM_Resp 0 35 ID44 3.11 1.02 0.17 2 6 4 3 3 0.94 3.48
SAM_Resp 0 35 ID45 1.60 1.40 0.24 1 6 5 1 1 2.19 6.22
SAM_Resp 0 35 ID47 3.43 1.56 0.26 1 7 6 4 4 0.02 2.31
SAM_Resp 0 35 ID48 1.63 0.97 0.16 1 5 4 1 1 1.77 5.91
SAM_Resp 0 35 ID49 3.77 1.78 0.30 1 7 6 4 2 0.22 1.92
SAM_Resp 0 35 ID50 2.43 1.72 0.29 1 7 6 2 1 1.00 2.95
SAM_Resp 0 35 ID51 1.20 0.63 0.11 1 4 3 1 1 3.37 13.78
SAM_Resp 0 35 ID52 2.51 1.60 0.27 1 6 5 2 1 1.01 2.89
SAM_Resp 0 35 ID54 2.20 1.98 0.34 1 7 6 1 1 1.44 3.54
SAM_Resp 0 35 ID55 3.03 2.35 0.40 1 8 7 3 1 0.92 2.65
SAM_Resp 0 35 ID57 2.00 0.97 0.16 1 4 3 2 2 0.78 2.73
SAM_Resp 0 35 ID58 1.37 1.06 0.18 1 5 4 1 1 2.83 9.50
SAM_Resp 0 35 ID6 1.60 1.24 0.21 1 7 6 1 1 2.76 11.50
SAM_Resp 0 35 ID61 1.23 0.73 0.12 1 4 3 1 1 3.29 12.59
SAM_Resp 0 35 ID63 1.91 1.27 0.21 1 6 5 1 1 1.56 4.97
SAM_Resp 0 35 ID64 2.17 2.02 0.34 1 8 7 1 1 1.58 4.19
SAM_Resp 0 35 ID66 3.20 1.37 0.23 2 7 5 3 2 0.96 3.08
SAM_Resp 0 35 ID8 1.17 0.57 0.10 1 3 2 1 1 2.96 9.76
SAM_Resp 0 35 ID9 2.46 1.27 0.21 1 6 5 2 2 0.76 3.15
Unic_OGL_Solo - neutru
variable missing N ID M SD SE min max range median mode skew kurtosis
SAM_Resp 0 35 ID10 1.94 1.33 0.22 1 5 4 1 1 1.18 3.12
SAM_Resp 0 35 ID12 1.20 0.41 0.07 1 2 1 1 1 1.50 3.25
SAM_Resp 0 35 ID13 3.17 2.43 0.41 1 8 7 2 1 0.84 2.32
SAM_Resp 0 35 ID16 2.63 1.11 0.19 1 6 5 2 2 0.90 3.57
SAM_Resp 0 35 ID17 1.14 0.43 0.07 1 3 2 1 1 3.08 11.98
SAM_Resp 0 35 ID26 1.57 0.85 0.14 1 4 3 1 1 1.23 3.37
SAM_Resp 0 35 ID27 1.06 0.24 0.04 1 2 1 1 1 3.82 15.56
SAM_Resp 0 35 ID28 3.14 1.54 0.26 1 6 5 2 2 0.84 2.28
SAM_Resp 0 35 ID29 1.69 1.02 0.17 1 5 4 1 1 1.50 4.68
SAM_Resp 0 35 ID33 1.57 1.14 0.19 1 5 4 1 1 1.97 5.75
SAM_Resp 0 35 ID37 1.40 0.98 0.17 1 6 5 1 1 3.36 15.41
SAM_Resp 0 35 ID39 2.91 1.40 0.24 1 7 6 2 2 1.20 3.63
SAM_Resp 0 35 ID41 2.89 2.87 0.48 1 9 8 1 1 1.38 3.38
SAM_Resp 0 35 ID43 1.37 0.81 0.14 1 5 4 1 1 2.98 12.96
SAM_Resp 0 35 ID44 3.71 1.05 0.18 2 6 4 4 3 0.12 2.20
SAM_Resp 0 35 ID45 1.74 1.69 0.29 1 7 6 1 1 2.32 7.10
SAM_Resp 0 35 ID47 3.49 1.38 0.23 1 6 5 4 4 -0.11 2.18
SAM_Resp 0 35 ID48 2.09 1.54 0.26 1 6 5 1 1 1.22 3.36
SAM_Resp 0 35 ID49 3.37 1.33 0.22 2 7 5 3 3 1.04 3.48
SAM_Resp 0 35 ID50 1.23 0.49 0.08 1 3 2 1 1 2.02 6.32
SAM_Resp 0 35 ID51 1.09 0.37 0.06 1 3 2 1 1 4.44 21.98
SAM_Resp 0 35 ID52 1.77 1.00 0.17 1 5 4 2 1 1.54 5.05
SAM_Resp 0 35 ID54 1.54 1.42 0.24 1 8 7 1 1 3.28 14.08
SAM_Resp 0 35 ID55 3.37 2.47 0.42 1 8 7 2 1 0.51 1.72
SAM_Resp 0 35 ID57 2.74 1.40 0.24 1 6 5 3 2 0.60 2.48
SAM_Resp 0 35 ID58 1.57 1.20 0.20 1 6 5 1 1 2.45 8.38
SAM_Resp 0 35 ID6 1.60 0.98 0.17 1 5 4 1 1 1.83 6.05
SAM_Resp 0 35 ID61 1.11 0.53 0.09 1 4 3 1 1 4.95 26.89
SAM_Resp 0 35 ID63 2.14 1.31 0.22 1 6 5 2 1 1.09 3.64
SAM_Resp 0 35 ID64 1.46 1.22 0.21 1 6 5 1 1 3.10 11.70
SAM_Resp 0 35 ID66 2.29 1.47 0.25 1 8 7 2 2 2.73 10.43
SAM_Resp 0 35 ID8 1.51 1.22 0.21 1 6 5 1 1 2.47 8.19
SAM_Resp 0 35 ID9 2.74 1.24 0.21 1 6 5 3 2 0.59 2.89

2.3 Analyses on merged (Anova & post-hoc)

############################## Analyses on Merged ################################################################
## Just a Test 
  # Unic_merged_spread_Neg <- 
  #   Unic_merged %>%
  #   filter(!is.na(SAM_Resp)) %>%                                           # some files had only NA on SAM_Resp and SAM_RT
  #   select(.id, ID, Subj_id, 
  #          Stimuli.order, MarkerStimuli, Stimulus.type, 
  #          SAM_Resp, SAM_RT) %>%
  #   filter(Stimulus.type == "negativ") %>%                                 # dont forget to pick stymulus type
  #   spread(.id, SAM_Resp)
  # 
  # t.test(Unic_merged_spread_Neg$Unic_CTRL_Instr, Unic_merged_spread_Neg$Unic_CTRL_Solo, na.rm = TRUE)
  # t.test(Unic_merged_spread_Neg$Unic_OGL_Instr, Unic_merged_spread_Neg$Unic_OGL_Solo, na.rm = TRUE)
  # t.test(Unic_merged_spread_Neg$Unic_OGL_Instr, Unic_merged_spread_Neg$Unic_CTRL_Instr, na.rm = TRUE)
  # t.test(Unic_merged_spread_Neg$Unic_OGL_Solo, Unic_merged_spread_Neg$Unic_CTRL_Solo, na.rm = TRUE)

## Function prepair data for analyses
prepaire_merged_func <- function(Stim_type){
  Unic_merged %>%
    filter(!is.na(SAM_Resp)) %>%                                           # some files had only NA on SAM_Resp and SAM_RT
    select(.id, ID, Subj_id, 
           Stimuli.order, MarkerStimuli, Stimulus.type, 
           SAM_Resp, SAM_RT) %>%
    dplyr::rename(Cond = .id) %>% 
    filter(Stimulus.type == Stim_type) %>%                                 # dont forget to pick stymulus type
    mutate(Cond = as.factor(Cond))                                         # tunr to factor for aov family functions
}

Unic_merged_Neg <- prepaire_merged_func("negativ")
Unic_merged_Neu <- prepaire_merged_func("neutru")
Unic_merged_Poz <- prepaire_merged_func("pozitiv")

## Anova and Post-Hoc
# Normality 
Unic_merged_Neg %>%
  select(SAM_Resp) %>%                                                     # must select variables outside function 
  tadaatoolbox::tadaa_normtest(method = "shapiro")                         # , print = "markdown"  for Notebook

# Levene Test (p>.05 = homogeneity of variances)
Unic_merged_Neg %>%
  tadaatoolbox::tadaa_levene(data = ., SAM_Resp ~ Cond)                    # , print = "markdown"  for Notebook

# Anova
Unic_merged_Neg %>%
  #do(broom::glance(aov(.$SAM_Resp ~ .$Cond)))                             # regular anova do(broom::tidy(aov(.$SAM_Resp ~ .$Cond)))
  tadaatoolbox::tadaa_aov(data = ., SAM_Resp ~ Cond, type = 1)             # , print = "markdown"  for Notebook

# Post-Hoc 
Unic_merged_Neg %>%
  # Tukey for equal variance 
  tadaatoolbox::tadaa_pairwise_tukey(data = ., SAM_Resp, Cond)             # , print = "markdown"  for Notebook
  # Games Howell does not assume equal variances
  #tadaatoolbox::tadaa_pairwise_gh(data = ., SAM_Resp, Cond)                # , print = "markdown"  for Notebook

2.4 Plots with p values


3 Session Info

R version 3.6.1 (2019-07-05)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 8.1 x64 (build 9600)

Matrix products: default

locale:
[1] LC_COLLATE=Romanian_Romania.1250  LC_CTYPE=Romanian_Romania.1250    LC_MONETARY=Romanian_Romania.1250 LC_NUMERIC=C                     
[5] LC_TIME=Romanian_Romania.1250    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] plyr_1.8.6         summarytools_0.8.8 DT_0.5             ggpubr_0.4.0       broom_0.7.5        papaja_0.1.0.9997  psych_2.0.12       forcats_0.5.1     
 [9] stringr_1.4.0      dplyr_1.0.5        purrr_0.3.4        readr_1.4.0        tidyr_1.1.3        tibble_3.1.0       ggplot2_3.3.3      tidyverse_1.3.0   
[17] pacman_0.5.1      

loaded via a namespace (and not attached):
 [1] httr_1.4.2         jsonlite_1.7.2     carData_3.0-2      tmvnsim_1.0-2      modelr_0.1.8       assertthat_0.2.1   highr_0.8          pander_0.6.3      
 [9] cellranger_1.1.0   yaml_2.2.1         pillar_1.5.1       backports_1.2.1    lattice_0.20-38    glue_1.4.2         digest_0.6.27      ggsignif_0.6.1    
[17] pryr_0.1.4         rvest_1.0.0        colorspace_2.0-0   htmltools_0.5.1.1  pkgconfig_2.0.3    haven_2.3.1        scales_1.1.1       openxlsx_4.1.0    
[25] rio_0.5.26         farver_2.1.0       generics_0.1.0     car_3.0-10         ellipsis_0.3.1     withr_2.4.1        cli_2.3.1          mnormt_2.0.2      
[33] magrittr_2.0.1     crayon_1.4.1       readxl_1.3.1       evaluate_0.14      fs_1.5.0           fansi_0.4.2        nlme_3.1-140       rstatix_0.7.0     
[41] xml2_1.3.2         foreign_0.8-71     rapportools_1.0    tools_3.6.1        data.table_1.14.0  hms_1.0.0          lifecycle_1.0.0    matrixStats_0.54.0
[49] munsell_0.5.0      reprex_1.0.0       zip_1.0.0          compiler_3.6.1     rlang_0.4.10       RCurl_1.95-4.11    grid_3.6.1         rstudioapi_0.13   
[57] htmlwidgets_1.5.3  labeling_0.4.2     rmarkdown_2.7      bitops_1.0-6       codetools_0.2-16   gtable_0.3.0       abind_1.4-5        DBI_1.0.0         
[65] curl_4.3           R6_2.5.0           tidystats_0.5      lubridate_1.7.4    knitr_1.31         utf8_1.2.1         stringi_1.5.3      parallel_3.6.1    
[73] Rcpp_1.0.6         vctrs_0.3.6        dbplyr_2.1.0       tidyselect_1.1.0   xfun_0.22         
 

A work by Claudiu Papasteri

 

LS0tDQp0aXRsZTogIjxicj4gTy40YyAtIFVuaWNlIiANCnN1YnRpdGxlOiAiUHJlbGltaW5hcnkgUmVwb3J0Ig0KYXV0aG9yOiAiPGJyPiBDbGF1ZGl1IFBhcGFzdGVyaSINCmRhdGU6ICJgciBmb3JtYXQoU3lzLnRpbWUoKSwgJyVkICVtICVZJylgIg0Kb3V0cHV0OiANCiAgICBodG1sX25vdGVib29rOg0KICAgICAgICAgICAgY29kZV9mb2xkaW5nOiBoaWRlDQogICAgICAgICAgICB0b2M6IHRydWUNCiAgICAgICAgICAgIHRvY19kZXB0aDogMg0KICAgICAgICAgICAgbnVtYmVyX3NlY3Rpb25zOiB0cnVlDQogICAgICAgICAgICB0aGVtZTogc3BhY2VsYWINCiAgICAgICAgICAgIGhpZ2hsaWdodDogdGFuZ28NCiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBBcmlhbA0KICAgICAgICAgICAgZmlnX3dpZHRoOiAxMA0KICAgICAgICAgICAgZmlnX2hlaWdodDogOQ0KICAgIHBkZl9kb2N1bWVudDogDQogICAgICAgICAgICB0b2M6IHRydWUNCiAgICAgICAgICAgIHRvY19kZXB0aDogMg0KICAgICAgICAgICAgbnVtYmVyX3NlY3Rpb25zOiB0cnVlDQogICAgICAgICAgICAjIGZvbnRzaXplOiAxMXB0DQogICAgICAgICAgICAjIGdlb21ldHJ5OiBtYXJnaW49MWluDQogICAgICAgICAgICAjIGZpZ193aWR0aDogNw0KICAgICAgICAgICAgIyBmaWdfaGVpZ2h0OiA2DQogICAgICAgICAgICAjIGZpZ19jYXB0aW9uOiB0cnVlDQogICAgIyBnaXRodWJfZG9jdW1lbnQ6IA0KICAgICAgICAgICAgIyB0b2M6IHRydWUNCiAgICAgICAgICAgICMgdG9jX2RlcHRoOiAyDQogICAgICAgICAgICAjIGh0bWxfcHJldmlldzogZmFsc2UNCiAgICAgICAgICAgICMgZmlnX3dpZHRoOiA1DQogICAgICAgICAgICAjIGZpZ19oZWlnaHQ6IDUNCiAgICAgICAgICAgICMgZGV2OiBqcGVnDQotLS0NCg0KDQo8IS0tIFNldHVwIC0tPg0KDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0KIyBraW50ciBvcHRpb25zDQprbml0cjo6b3B0c19jaHVuayRzZXQoDQogIGNvbW1lbnQgPSAiIyIsDQogIGNvbGxhcHNlID0gVFJVRSwNCiAgZWNobyA9IFRSVUUsIHdhcm5pbmcgPSBUUlVFLCBtZXNzYWdlID0gVFJVRSwgY2FjaGUgPSBUUlVFICAgICAgICMgZWNobyA9IEZhbHNlIGZvciBnaXRodWJfZG9jdW1lbnQsIGJ1dCB3aWxsIGJlIGZvbGRlZCBpbiBodG1sX25vdGVib29rDQopDQoNCiMgR2VuZXJhbCBSIG9wdGlvbnMgYW5kIGluZm8NCnNldC5zZWVkKDExMSkgICAgICAgICAgICAgICAjIGluIGNhc2Ugd2UgdXNlIHJhbmRvbWl6ZWQgcHJvY2VkdXJlcyAgICAgICANCm9wdGlvbnMoc2NpcGVuID0gOTk5KSAgICAgICAjIHBvc2l0aXZlIHZhbHVlcyBiaWFzIHRvd2FyZHMgZml4ZWQgYW5kIG5lZ2F0aXZlIHRvd2FyZHMgc2NpZW50aWZpYyBub3RhdGlvbg0KDQojIExvYWQgcGFja2FnZXMNCmlmICghcmVxdWlyZSgicGFjbWFuIikpIGluc3RhbGwucGFja2FnZXMoInBhY21hbiIpDQpwYWNrYWdlcyA8LSBjKA0KICAidGlkeXZlcnNlIiwgICAgICAjIGJlc3QgdGhpbmcgdGhhdCBoYXBwZW5kIHRvIG1lDQogICJwc3ljaCIsICAgICAgICAgICMgZ2VuZXJhbCBwdXJwb3NlIHRvb2xib3ggZm9yIHBlcnNvbmFsaXR5LCBwc3ljaG9tZXRyaWMgdGhlb3J5IGFuZCBleHBlcmltZW50YWwgcHN5Y2hvbG9neQ0KICAicGFwYWphIiwgICAgICAgICAjIGZvciBBUEEgc3R5bGUNCiAgImJyb29tIiwgICAgICAgICAgIyBmb3IgdGlkeSBtb2RlbGxpbmcNCiAgImdncGxvdDIiLCAgICAgICAgIyBiZXN0IHBsb3RzDQogICJnZ3B1YnIiLCAgICAgICAgICMgZ2dwbG90MiB0byBwdWJsaWNhdGlvbiBxdWFsaXR5DQogICJEVCIsICAgICAgICAgICAgICMgbmljZSBzZWFyY2hhYmxlIGFuZCBkb3dubG9hZGFibGUgdGFibGVzDQogICJzdW1tYXJ5dG9vbHMiLA0KICAicGx5ciIsIA0KICAic3RyaW5nciINCiAgIyAsIC4uLg0KKQ0KaWYgKCFyZXF1aXJlKCJwYWNtYW4iKSkgaW5zdGFsbC5wYWNrYWdlcygicGFjbWFuIikNCnBhY21hbjo6cF9sb2FkKGNoYXIgPSBwYWNrYWdlcykNCg0KIyBUaGVtZXMgZm9yIGdncGxvdDIgcGxvdGluZyAoaGVyZSB1c2VkIEFQQSBzdHlsZSkNCnRoZW1lX3NldCh0aGVtZV9hcGEoKSkNCmBgYA0KDQpgYGB7ciB3b3JraW5nX2RpcmVjdG9yeSwgaW5jbHVkZSA9IEZBTFNFfQ0KIyMjIE8uNCBSIGNvZGUgLSBVbmljZSBhbmQgUmV0YXRhdGUNCiMjIyBSIGNvZGUgZm9yIHNvcnRpbmcsIGludGVncmF0aW5nIGFuZCBhbmFseXNlcyANCiMgVGFzayBvdXRwdXQgZmlsZXM6IA0KIyBJRCwgZXhwZXJpbWVudGFsIGNvbmRpdGlvbiAoIm9nbGluZGEiIC8gImVjcmFuIiksIGNvbmRpdGlvbiAoImluc3RydWN0b3IiLCAic29sbyIpLCB0eXBlIG9mIHRhc2sgKCJ1bmljIiwgInJlcGV0YXQiKQ0Kd2QgPC0gIkU6L0NJTkVUSUMgZGl2ZXJzZS9PLjRjIChFRUcpLzE4LjAzLjIwMjEgVW5pY2UiDQpzZXR3ZCh3ZCkNCmBgYA0KDQoNCjwhLS0gUmVwb3J0IC0tPg0KDQoNCiMgQXJyYW5nZSBmb2xkZXJzLCBzb3J0IGZpbGVzLCByZWFkIGFuZCBtZXJnZQ0KDQojIyBDcmVhdGUgZm9sZGVycyBieSBjb25kaXRpb25zLCBjb3B5IGZpbGVzIHRvIHRoZW0NCg0KYGBge3IgbWFrZWRpcl9zb3J0ZmlsZXMsIGV2YWw9RkFMU0V9DQojIyMjIyMjIyMjIyMjIyMjIyMjIyMgUmVhZCBmaWxlIG5hbWVzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCmZpbGVfbmFtZXMgPC0gZGlyKHdkLCBwYXR0ZXJuID0gIlxcLnhscyQiKQ0KIyMgaWYgYWJvdmUgaXNuJ3QgZ29vZCBlbm91Z2ggdHJ5IHRoZSBmb2xsb3dpbmc6DQojIGZpbGVfbmFtZXMgPC0gbGlzdC5maWxlcyh3ZCkNCiMgZmlsZV9uYW1lcyA8LSBzb3BfZmlsZXNbIWZpbGUuaW5mbyhzb3BfZmlsZXMpJGlzZGlyXSAgICMgZXhjbHVkZSBkaXJlY3Rvcmllcw0KIyBmaWxlX25hbWVzIDwtIHNvcF9maWxlc1tncmVwKCIueGxzIiwgc29wX2ZpbGVzLCBmaXhlZCA9IFRSVUUpXQ0KDQoNCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyBDcmVhdGUgZm9sZGVycyB3aXRoIENvbmRpdGlvbiBuYW1lcyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiMgdGhpcyBwYXJ0IG9mIHNjcmlwdCBtYXkgYmUgcmUtcnVuIGlmIGZpbGVzIGZyb20gd2QgYXJlIHVwZGF0ZWQNCmRpcl9uYW1lcyA8LSBjKCJVbmljX0NUUkxfSW5zdHIiLCAiVW5pY19DVFJMX1NvbG8iLCAiVW5pY19PR0xfSW5zdHIiLCAiVW5pY19PR0xfU29sbyIpDQogICAgICAgICAgICAgDQpmb3IoZGlyIGluIGRpcl9uYW1lcyl7DQogIGlmKCFkaXIuZXhpc3RzKGZpbGUucGF0aCh3ZCwgZGlyKSkpDQogIGRpci5jcmVhdGUoZmlsZS5wYXRoKHdkLCBkaXIpLCBzaG93V2FybmluZ3MgPSBGQUxTRSkNCn0NCg0KDQojIyMjIyMjIyMjIyMjIyMjIyMjIyMgVXNlIGZpbGUgbmFtZXMgdG8gc29ydCB0aGVtIHRvIGZvbGRlcnMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQpzb3J0X2ZpbGVzX3RvX2RpcnMgPC0gZnVuY3Rpb24od2QsIHBhdHRlcm4sIGRpcikgew0KICBjaGVja19wYXR0ZXJuIDwtIG91dGVyKGZpbGVfbmFtZXMsIHBhdHRlcm4sIHN0cmluZ3I6OnN0cl9kZXRlY3QpICAgICAgICAgICAgICAgIyBpZiBhbGwgVFJVRSBieWUgcm93IHRoZW4gaXQgaGFzIGZ1bGwgcGF0dGVybg0KICBpbmRleCA8LSB3aGljaChhcHBseShjaGVja19wYXR0ZXJuLCAxLCBmdW5jdGlvbih4KSBhbGwoeD09VFJVRSkpKSAgICAgICAgICAgICAgIyBnZXQgaW5kZXggb2YgZmlsZV9uYW1lcyB3aGVyZSBhbGwgYXJlIFRSVUUNCiAgc29ydGVkX2ZpbGVzIDwtIGZpbGVfbmFtZXNbaW5kZXhdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZ2V0IG5hbWVzIG9mIGZpbGVzIGZyb20gaW5kZXhlcw0KICANCiAgZm9yKGZpbGVzIGluIHNvcnRlZF9maWxlcykgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgY29weSB0aGUgZmlsZXMgdG8gY29ycmVzcG9uZGluZyBmb2xkZXINCiAgICBmaWxlLmNvcHkoZnJvbSA9IGZpbGUucGF0aCh3ZCwgZmlsZXMpLCB0byA9IGZpbGUucGF0aCh3ZCwgZGlyKSkNCiAgfSAgDQp9DQoNCnNvcnRfZmlsZXNfdG9fZGlycyh3ZCA9IHdkLCBwYXR0ZXJuID0gYygidW5pYyIsICJlY3JhbiIsICJpbnN0cnVjdG9yIiksIGRpciA9ICJVbmljX0NUUkxfSW5zdHIiKQ0Kc29ydF9maWxlc190b19kaXJzKHdkID0gd2QsIHBhdHRlcm4gPSBjKCJ1bmljIiwgImVjcmFuIiwgInNvbG8iKSwgZGlyID0gIlVuaWNfQ1RSTF9Tb2xvIikNCnNvcnRfZmlsZXNfdG9fZGlycyh3ZCA9IHdkLCBwYXR0ZXJuID0gYygidW5pYyIsICJvZ2xpbmRhIiwgImluc3RydWN0b3IiKSwgZGlyID0gIlVuaWNfT0dMX0luc3RyIikNCnNvcnRfZmlsZXNfdG9fZGlycyh3ZCA9IHdkLCBwYXR0ZXJuID0gYygidW5pYyIsICJvZ2xpbmRhIiwgInNvbG8iKSwgZGlyID0gIlVuaWNfT0dMX1NvbG8iKQ0KYGBgDQoNCg0KIyMgUmVhZGluZyB0aGUgZGF0YQ0KDQpgYGB7ciByYXdfcmVhZCwgaGlkZT1UUlVFfQ0KIyMjIyMjIyMjIyMjIFJlYWQgaW4gYWxsIHRoZSAueGxzIGZyb20gZm9sZGVycyBhbmQgbWVyZ2UgdGhlbSBpbiBkYXRhc2V0cyBuYW1lZCBhZnRlciBjb3JyZXNwb25kaW5nIGZvbGRlciAjIyMjIyMjIyMjIyMjIw0KIyB0aGlzIHBhcnQgb2Ygc2NyaXB0IG1heSBiZSByZS1ydW4gaWYgZmlsZXMgZnJvbSB3ZCBhcmUgdXBkYXRlZA0KIyBSRS1SVU4gRlJPTSBIRVJFIElGIEZPTERFUlMgQU5EIFNPUlRJTkcgV0FTIEFMUkVBRFkgRE9ORQ0KDQp3ZCA8LSAiRTovQ0lORVRJQyBkaXZlcnNlL08uNGMgKEVFRykvMTguMDMuMjAyMSBVbmljZS9Qcm9jZXNhdGUmRXhjbHVzaSINCnNldHdkKHdkKQ0KZm9sZGVycyA8LSBsaXN0LmZpbGVzKHdkKQ0KZm9sZGVycyA8LSBmb2xkZXJzW2ZpbGUuaW5mbyhmb2xkZXJzKSRpc2Rpcl0gICAjIGx1YW0gZG9hciBmb2xkZXJlbGUNCmRhdGFzZXRuYW1lcyA8LSBOVUxMDQoNCmZvciAoaSBpbiAxOmxlbmd0aChmb2xkZXJzKSkgew0KICBkYXRhc2V0bmFtZSA8LSBmb2xkZXJzW2ldDQogIGRhdGFzZXRuYW1lcyA8LSBjKGRhdGFzZXRuYW1lcywgZGF0YXNldG5hbWUpDQogIGN1cnJlbnRfZGlyIDwtIGZpbGUucGF0aCh3ZCwgZm9sZGVyc1tpXSkNCiAgc2V0d2QoY3VycmVudF9kaXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHNtYWxsIG1vZGlmaWNhdGlvbiBmcm9tIDIwMTkgY29kZQ0KICBwcmludChwYXN0ZTAoImN1cnJlbnRfZGlyOiAiLCBjdXJyZW50X2RpcikpDQogIA0KICBwYXRocyA8LSBkaXIocGF0dGVybiA9ICJcXC54bHMkIikNCiAgbmFtZXMocGF0aHMpIDwtIGJhc2VuYW1lKHBhdGhzKQ0KDQogIGFzc2lnbiggcGFzdGUoZGF0YXNldG5hbWUpLCBwbHlyOjpsZHBseShwYXRocywgcmlvOjppbXBvcnQpICkNCn0NCg0Kc2V0d2Qod2QpDQojIGRldGFjaCgicGFja2FnZTpwbHlyIiwgdW5sb2FkPVRSVUUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBkZXRhY2ggcGx5ciBiZWNhdXNlIG9mIGNvbmZsaWN0cyB3aXRoIGRwbHlyDQpgYGANCg0KDQojIyBDbGVhbmluZyB0aGUgZGF0YQ0KDQpgYGB7ciBjbGVhbl9kYXRhLCBoaWRlPVRSVUV9DQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgRGF0YSBDbGVhbmluZyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiMgQ2hlY2sgaWYgaWRzIGhhdmUgPiAxIHJvdyBvZiBkYXRhIChlbXB0eSAueGxzIGhhdmUgb25seSAxIHJvdykNCiMgQ2FyZWZ1bCEgVGhpcyBmdW5jdGlvbiBtb2RmaWVzIHRoZSBkYXRhc2V0cyBpbiB0aGUgZ2xvYmFsIGVudmlucm9ubWVudA0KZGVsZXRlX2VtcHR5X2lkIDwtIGZ1bmN0aW9uKGRmKXsNCiAgbGlzdF9lbXB0eV9pZCA8LSANCiAgICBkZiAlPiUNCiAgICBkcGx5cjo6Z3JvdXBfYnkoLmlkKSAlPiUNCiAgICBkcGx5cjo6c3VtbWFyaXNlKHJvd19jb3VudCA9IG4oKSkgJT4lDQogICAgZHBseXI6OnJlbmFtZSgiZW1wdHlfaWQiID0gLmlkKSAlPiUNCiAgICBtdXRhdGUoZGVsZXRlX2lkID0gaWZfZWxzZShyb3dfY291bnQgPCAzLCBUUlVFLCBGQUxTRSkpICU+JQ0KICAgIGRwbHlyOjpmaWx0ZXIoZGVsZXRlX2lkID09IFRSVUUpDQogIA0KICBkZl9tb2RpZiA8LSANCiAgICBkZiAlPiUNCiAgICBkcGx5cjo6ZmlsdGVyKCEuaWQgJWluJSBsaXN0X2VtcHR5X2lkJGVtcHR5X2lkKQ0KICANCiAgaWYoIWlkZW50aWNhbChkZiwgZGZfbW9kaWYpKXsNCiAgICBkZiA8LSBkZXBhcnNlKHN1YnN0aXR1dGUoZGYpKQ0KICAgIGNhdCgiRGVsZXRpbmcgZnJvbSAiLCBwcmludChhcy5uYW1lKGRmKSkpOyBwcmludChsaXN0X2VtcHR5X2lkKSAgICAgICAgICAgICAgICAgICAgIyBwcmludCBvdXQgd2hpY2ggaWRzIGFyZSBkZWxldGVkIGZyb20gd2hpY2ggZGF0YXNldA0KICAgIGFzc2lnbihkZiwgZGZfbW9kaWYsIGVudmlyID0gZ2xvYmFsZW52KCkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBhc3NpZ24gbW9kaWZpZWQgZGYgdG8gb3JpZ2luYWwgZGF0YXNldCBmcm9tIEdsb2JhbA0KICB9ZWxzZSBjYXQoIk5vIGVtcHR5IGRhdGFzZXRzLiBOb3RoaW5nIHRvIGRlbGV0ZSIpDQp9DQoNCiMgQXBwbHkgZnVuY3Rpb24gdG8gYWxsIGRhdGFzZXRzICh0cmlja3kgdG8gZG8gaW4gZm9yIGxvb3AgYmVjYXVzZSBvZiBzdXBlciBhc3NpZ25tZW50KQ0KZGVsZXRlX2VtcHR5X2lkKFVuaWNfQ1RSTF9JbnN0cikNCmRlbGV0ZV9lbXB0eV9pZChVbmljX0NUUkxfU29sbykNCmRlbGV0ZV9lbXB0eV9pZChVbmljX09HTF9JbnN0cikNCmRlbGV0ZV9lbXB0eV9pZChVbmljX09HTF9Tb2xvKQ0KYGBgDQoNCg0KIyMgRXhjbHVkZSBTQU1fcmVzcCBiYXNlZCBvbiBSVCBvdXRsaWVycw0KDQpgYGB7ciBub291dGxpZXJfZGF0YX0NCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgRXhjbHVkZSBPdXRsaWVycyBiYXNlZCBvbiBSVCAoYnkgc3ViamVjdCBhbmQgc3RpbXVsdXMgdHlwZSkgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQojIyBET05UIFJVTiAodW5sZXNzIGl0IGlzIG5lZWRlZCkgLS0tLT4gZXZhbD1GQUxTRQ0KIyBFeGNsdWRlIFJUIG91dGxpZXJzICg9LSAyU0QpIC0gaW5zdGVhZCBvZiBzaW1wbGUgZmlsdGVyLCBtYWtlaW5nIHRoZW0gTkEgIGlzIGJldHRlciBmb3IgcGFpcmVkIGNvbXBhcmlzb24NCnJlbW92ZV9vdXRsaWVycyA8LSBmdW5jdGlvbihkZikgew0KICBkZl9tb2RpZiA8LQ0KICAgIGRmICU+JQ0KICAgIGRwbHlyOjpncm91cF9ieSguaWQsIGBTdGltdWx1cyB0eXBlYCkgJT4lICAgICAgICAgICAgICAgICAgIyB3ZSBjb3VsZCBoYXZlIGRvbmUgYmVmb3JlOiAgZHBseXI6OnJlbmFtZSgiU3RpbV90eXBlIiA9IGBTdGltdWx1cyB0eXBlYCkgDQogICAgbXV0YXRlKFNBTV9SZXNwID0gaWZfZWxzZShhYnMoU0FNX1JUIC0gbWVhbihTQU1fUlQsIG5hLnJtPVRSVUUpKSA+IDIqc2QoU0FNX1JULCBuYS5ybT1UUlVFKSwgYXMubnVtZXJpYyhOQSksIFNBTV9SZXNwKSkNCiAgDQogIGlmKCFpZGVudGljYWwoZGYsIGRmX21vZGlmKSl7DQogICAgZGYgPC0gZGVwYXJzZShzdWJzdGl0dXRlKGRmKSkNCiAgICBjYXQoIkRlbGV0aW5nIG91dGxpZXJzIGZyb20gIiwgcHJpbnQoYXMubmFtZShkZikpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBwcmludCBvdXQgZGF0YXNldHMgd2hpY2ggaGF2ZSBiZWVuIG1vZGlmaWVkDQogICAgYXNzaWduKGRmLCBkZl9tb2RpZiwgZW52aXIgPSBnbG9iYWxlbnYoKSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGFzc2lnbiBtb2RpZmllZCBkZiB0byBvcmlnaW5hbCBkYXRhc2V0IGZyb20gR2xvYmFsDQogIH1lbHNlIGNhdCgiTm8gb3V0bGllciIpDQp9DQoNCnJlbW92ZV9vdXRsaWVycyhVbmljX0NUUkxfSW5zdHIpDQpyZW1vdmVfb3V0bGllcnMoVW5pY19DVFJMX1NvbG8pDQpyZW1vdmVfb3V0bGllcnMoVW5pY19PR0xfSW5zdHIpDQpyZW1vdmVfb3V0bGllcnMoVW5pY19PR0xfU29sbykNCmBgYA0KDQoNCiMjIFRlc3QgaWYgZGF0YXNldHMgaGF2ZSBzYW1lIGNvbHVtbnMNCg0KYGBge3IgdGVzdF9jb2xzfQ0KdW5pY19kZl9vYmogPC0gbWdldChjKCJVbmljX0NUUkxfSW5zdHIiLCAiVW5pY19DVFJMX1NvbG8iLCAiVW5pY19PR0xfSW5zdHIiLCAiVW5pY19PR0xfU29sbyIpKQ0KdW5pY19kZl9vYmogPC1sYXBwbHkodW5pY19kZl9vYmosIGNvbG5hbWVzKQ0Kb3V0ZXIodW5pY19kZl9vYmosIHVuaWNfZGZfb2JqLCBWZWN0b3JpemUoaWRlbnRpY2FsKSkgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGlmIGFsbCBhcmUgVFJVRSwgYWxsIGRmIGhhdmUgc2FtZSBjb2x1bW5zDQpgYGANCg0KDQojIyBDbGVhbiBJRHMNCg0KYGBge3IgY2xlYW5faWRzfQ0KVW5pY19DVFJMX0luc3RyIDwtIA0KICBVbmljX0NUUkxfSW5zdHIgJT4lDQogIGRwbHlyOjptdXRhdGUoSUQgPSBzdHJpbmdyOjpzdHJfbWF0Y2goLmlkLCAiSURbMC05XSsiKSkgJT4lDQogIGRwbHlyOjptdXRhdGUoSUQgPSBhcy5mYWN0b3IoSUQpKSAlPiUNCiAgZHBseXI6OnJlbG9jYXRlKElEKQ0KDQpVbmljX0NUUkxfU29sbyA8LSANCiAgVW5pY19DVFJMX1NvbG8gJT4lDQogIGRwbHlyOjptdXRhdGUoSUQgPSBzdHJpbmdyOjpzdHJfbWF0Y2goLmlkLCAiSURbMC05XSsiKSkgJT4lDQogIGRwbHlyOjptdXRhdGUoSUQgPSBhcy5mYWN0b3IoSUQpKSAlPiUNCiAgZHBseXI6OnJlbG9jYXRlKElEKQ0KDQpVbmljX09HTF9JbnN0ciA8LSANCiAgVW5pY19PR0xfSW5zdHIgJT4lDQogIGRwbHlyOjptdXRhdGUoSUQgPSBzdHJpbmdyOjpzdHJfbWF0Y2goLmlkLCAiSURbMC05XSsiKSkgJT4lDQogIGRwbHlyOjptdXRhdGUoSUQgPSBhcy5mYWN0b3IoSUQpKSAlPiUNCiAgZHBseXI6OnJlbG9jYXRlKElEKQ0KDQpVbmljX09HTF9Tb2xvIDwtIA0KICBVbmljX09HTF9Tb2xvICU+JQ0KICBkcGx5cjo6bXV0YXRlKElEID0gc3RyaW5ncjo6c3RyX21hdGNoKC5pZCwgIklEWzAtOV0rIikpICU+JQ0KICBkcGx5cjo6bXV0YXRlKElEID0gYXMuZmFjdG9yKElEKSkgJT4lDQogIGRwbHlyOjpyZWxvY2F0ZShJRCkNCg0KDQoNCiMgQ2hlY2sgSURzIG1hdGNoZXMNCmNoZWNraWRfVW5pY19DVFJMX0luc3RyIDwtIA0KICBVbmljX0NUUkxfSW5zdHIgJT4lDQogICAgZHBseXI6OmFycmFuZ2UoSUQpICU+JQ0KICAgIGRwbHlyOjpjb3VudChJRCkNCg0KY2hlY2tpZF9VbmljX0NUUkxfU29sbyA8LSANCiAgVW5pY19DVFJMX1NvbG8gJT4lDQogIGRwbHlyOjphcnJhbmdlKElEKSAlPiUNCiAgZHBseXI6OmNvdW50KElEKQ0KDQpjaGVja2lkX1VuaWNfT0dMX0luc3RyIDwtIA0KICBVbmljX09HTF9JbnN0ciAlPiUNCiAgZHBseXI6OmFycmFuZ2UoSUQpICU+JQ0KICBkcGx5cjo6Y291bnQoSUQpDQoNCmNoZWNraWRfVW5pY19PR0xfU29sbyA8LSANCiAgVW5pY19PR0xfU29sbyAlPiUNCiAgZHBseXI6OmFycmFuZ2UoSUQpICU+JQ0KICBkcGx5cjo6Y291bnQoSUQpDQoNCg0Ka25pdHI6OmFzaXNfb3V0cHV0KCIjIyMgQ2hlY2sgSURzIG1hdGNoIikNCmNoZWNraWRfVW5pY19DVFJMX0luc3RyICU+JSANCiAgZHBseXI6OmZ1bGxfam9pbihjaGVja2lkX1VuaWNfQ1RSTF9Tb2xvLCAgYnkgPSAiSUQiLCBzdWZmaXggPSBjKCJVbmljX0NUUkxfSW5zdHIiLCAiVW5pY19DVFJMX1NvbG8iKSkgJT4lDQogIGRwbHlyOjpmdWxsX2pvaW4oY2hlY2tpZF9VbmljX09HTF9JbnN0ciwgIGJ5ID0gIklEIiwgc3VmZml4ID0gYygiVW5pY19DVFJMX0luc3RyIiwgIlVuaWNfT0dMX0luc3RyIikpICU+JQ0KICBkcGx5cjo6ZnVsbF9qb2luKGNoZWNraWRfVW5pY19PR0xfU29sbywgIGJ5ID0gIklEIiwgc3VmZml4ID0gYygiVW5pY19DVFJMX0luc3RyIiwgIlVuaWNfT0dMX1NvbG8iKSkgJT4lDQogIHByaW50KG4gPSBJbmYpDQpgYGANCg0KDQo8YnI+DQo8YnI+DQoNCg0KIyBBbmFseXNpcyAtIFVOSUNFDQoNCiMjIERlc2NyaXB0aXZlcw0KDQpgYGB7ciBkZXNjX3VuaWNlfQ0KIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBBbmFseXNlcyAtIFVOSUNFICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQojIyBEZXNjcmlwdGl2ZXMgYnkgY29uZGl0aW9uIGRhdGFzZXQNCmRlc2NyaXB0aXZlX2Z1bmMgPC0gZnVuY3Rpb24oZGYsIFN0aW1fdHlwZSwgQnlfSUQgPSBGQUxTRSl7DQogIGRmbmFtZV9zdGltdHlwZSA8LSBwYXN0ZShkZXBhcnNlKHN1YnN0aXR1dGUoZGYpKSwgU3RpbV90eXBlLCBzZXAgPSAiIC0gIikNCiAgc3VwcHJlc3NXYXJuaW5ncyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaWYgYWxsIE5BcyBpbiBTQU1fUmVzcCwgTmFOcyBhbmQgSW5mcyB3aWxsIGJlIHByb2R1Y2VkDQogICAgZGZfbW9kaWYgPC0gDQogICAgICBkZiAlPiUNCiAgICAgIGRwbHlyOjpzZWxlY3RfYWxsKH5nc3ViKCJcXHMrfFxcLiIsICJfIiwgLikpICU+JSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHJlcGxhY2VzIGJsYW5ja3Mgd2l0aCAiXyIgaW4gY29sbmFtZXMgDQogICAgICBkcGx5cjo6ZmlsdGVyKFN0aW11bHVzX3R5cGUgPT0gU3RpbV90eXBlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBmaWx0ZXIgYnkgc3RpbXVsdXMgdHlwZQ0KICAgICAgDQogICAgaWYoQnlfSUQpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaWYgdHJ1ZSBncm91cCBieSBpZCwgaWYgbm90IHJldHVybiBkZXNjcmlwdGl2ZXMgZm9yIGFsbCBpZHMNCiAgICAgIGRmX21vZGlmICU+JQ0KICAgICAgZHBseXI6Omdyb3VwX2J5KElEKSAlPiUNCiAgICAgIHRpZHlzdGF0czo6ZGVzY3JpYmVfZGF0YShTQU1fUmVzcCwgbmEucm0gPSBUUlVFKSAlPiUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBjb3VsZCBhbHNvIGFkZCBTQU1fUlQgdG8gbGlzdCBvZiBzdGF0cywgYnV0IGxpc3QgaXMgdG9vIGxvbmcNCiAgICAgICAga25pdHI6OmthYmxlKGNhcHRpb24gPSBkZm5hbWVfc3RpbXR5cGUsIGRpZ2l0cyA9IDIpDQogICAgfWVsc2V7IA0KICAgICAgZGZfbW9kaWYgJT4lDQogICAgICB0aWR5c3RhdHM6OmRlc2NyaWJlX2RhdGEoU0FNX1Jlc3AsIG5hLnJtID0gVFJVRSkgJT4lDQogICAgICAgIGtuaXRyOjprYWJsZShjYXB0aW9uID0gZGZuYW1lX3N0aW10eXBlLCBkaWdpdHMgPSAyKQ0KICAgIH0NCiAgfSkNCn0gIA0KDQoNCmRlc2NyaXB0aXZlX2Z1bmMoZGYgPSBVbmljX0NUUkxfSW5zdHIsIFN0aW1fdHlwZSA9ICJuZWdhdGl2IiwgQnlfSUQgPSBGQUxTRSkgICAgICAgICAgICMgTmVnYXRpdmUgLSBHZW5lcmFsDQpkZXNjcmlwdGl2ZV9mdW5jKGRmID0gVW5pY19DVFJMX1NvbG8sIFN0aW1fdHlwZSA9ICJuZWdhdGl2IiwgQnlfSUQgPSBGQUxTRSkNCmRlc2NyaXB0aXZlX2Z1bmMoZGYgPSBVbmljX09HTF9JbnN0ciwgU3RpbV90eXBlID0gIm5lZ2F0aXYiLCBCeV9JRCA9IEZBTFNFKQ0KZGVzY3JpcHRpdmVfZnVuYyhkZiA9IFVuaWNfT0dMX1NvbG8sIFN0aW1fdHlwZSA9ICJuZWdhdGl2IiwgQnlfSUQgPSBGQUxTRSkNCg0KZGVzY3JpcHRpdmVfZnVuYyhkZiA9IFVuaWNfQ1RSTF9JbnN0ciwgU3RpbV90eXBlID0gIm5lZ2F0aXYiLCBCeV9JRCA9IFRSVUUpICAgICAgICAgICAgIyBOZWdhdGl2ZSAtIGJ5IGlkDQpkZXNjcmlwdGl2ZV9mdW5jKGRmID0gVW5pY19DVFJMX1NvbG8sIFN0aW1fdHlwZSA9ICJuZWdhdGl2IiwgQnlfSUQgPSBUUlVFKQ0KZGVzY3JpcHRpdmVfZnVuYyhkZiA9IFVuaWNfT0dMX0luc3RyLCBTdGltX3R5cGUgPSAibmVnYXRpdiIsIEJ5X0lEID0gVFJVRSkNCmRlc2NyaXB0aXZlX2Z1bmMoZGYgPSBVbmljX09HTF9Tb2xvLCBTdGltX3R5cGUgPSAibmVnYXRpdiIsIEJ5X0lEID0gVFJVRSkNCg0KZGVzY3JpcHRpdmVfZnVuYyhkZiA9IFVuaWNfQ1RSTF9JbnN0ciwgU3RpbV90eXBlID0gInBveml0aXYiLCBCeV9JRCA9IEZBTFNFKSAgICAgICAgICAgIyBQb3NpdGl2ZSAtIEdlbmVyYWwNCmRlc2NyaXB0aXZlX2Z1bmMoZGYgPSBVbmljX0NUUkxfU29sbywgU3RpbV90eXBlID0gInBveml0aXYiLCBCeV9JRCA9IEZBTFNFKQ0KZGVzY3JpcHRpdmVfZnVuYyhkZiA9IFVuaWNfT0dMX0luc3RyLCBTdGltX3R5cGUgPSAicG96aXRpdiIsIEJ5X0lEID0gRkFMU0UpDQpkZXNjcmlwdGl2ZV9mdW5jKGRmID0gVW5pY19PR0xfU29sbywgU3RpbV90eXBlID0gInBveml0aXYiLCBCeV9JRCA9IEZBTFNFKQ0KDQpkZXNjcmlwdGl2ZV9mdW5jKGRmID0gVW5pY19DVFJMX0luc3RyLCBTdGltX3R5cGUgPSAicG96aXRpdiIsIEJ5X0lEID0gVFJVRSkgICAgICAgICAgICAjIFBvc2l0aXZlIC0gYnkgaWQNCmRlc2NyaXB0aXZlX2Z1bmMoZGYgPSBVbmljX0NUUkxfU29sbywgU3RpbV90eXBlID0gInBveml0aXYiLCBCeV9JRCA9IFRSVUUpDQpkZXNjcmlwdGl2ZV9mdW5jKGRmID0gVW5pY19PR0xfSW5zdHIsIFN0aW1fdHlwZSA9ICJwb3ppdGl2IiwgQnlfSUQgPSBUUlVFKQ0KZGVzY3JpcHRpdmVfZnVuYyhkZiA9IFVuaWNfT0dMX1NvbG8sIFN0aW1fdHlwZSA9ICJwb3ppdGl2IiwgQnlfSUQgPSBUUlVFKQ0KDQpkZXNjcmlwdGl2ZV9mdW5jKGRmID0gVW5pY19DVFJMX0luc3RyLCBTdGltX3R5cGUgPSAibmV1dHJ1IiwgQnlfSUQgPSBGQUxTRSkgICAgICAgICAgICMgTmV1dHJhbCAtIEdlbmVyYWwNCmRlc2NyaXB0aXZlX2Z1bmMoZGYgPSBVbmljX0NUUkxfU29sbywgU3RpbV90eXBlID0gIm5ldXRydSIsIEJ5X0lEID0gRkFMU0UpDQpkZXNjcmlwdGl2ZV9mdW5jKGRmID0gVW5pY19PR0xfSW5zdHIsIFN0aW1fdHlwZSA9ICJuZXV0cnUiLCBCeV9JRCA9IEZBTFNFKQ0KZGVzY3JpcHRpdmVfZnVuYyhkZiA9IFVuaWNfT0dMX1NvbG8sIFN0aW1fdHlwZSA9ICJuZXV0cnUiLCBCeV9JRCA9IEZBTFNFKQ0KDQpkZXNjcmlwdGl2ZV9mdW5jKGRmID0gVW5pY19DVFJMX0luc3RyLCBTdGltX3R5cGUgPSAibmV1dHJ1IiwgQnlfSUQgPSBUUlVFKSAgICAgICAgICAgICMgTmV1dHJhbCAtIGJ5IGlkDQpkZXNjcmlwdGl2ZV9mdW5jKGRmID0gVW5pY19DVFJMX1NvbG8sIFN0aW1fdHlwZSA9ICJuZXV0cnUiLCBCeV9JRCA9IFRSVUUpDQpkZXNjcmlwdGl2ZV9mdW5jKGRmID0gVW5pY19PR0xfSW5zdHIsIFN0aW1fdHlwZSA9ICJuZXV0cnUiLCBCeV9JRCA9IFRSVUUpDQpkZXNjcmlwdGl2ZV9mdW5jKGRmID0gVW5pY19PR0xfU29sbywgU3RpbV90eXBlID0gIm5ldXRydSIsIEJ5X0lEID0gVFJVRSkNCmBgYA0KDQoNCiMjIE1lcmdlDQoNCmBgYHtyIG1lcmdlZF91bmljZV9kYXRhLCBoaWRlPVRSVUV9DQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgTWVyZ2UgY29uZGl0aW9uIGRhdGFzZXQgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQojIE11c3QgZmlyc3QgcmVuYW1lIC5pZCB0byBJRCBpbiBvZGVyIHRvIGhhdmUgLmlkIGZvciBkZiBuYW1lcw0KSURfcmVuYW1lIDwtIGZ1bmN0aW9uKGRmKXsNCiAgaWYoIi5pZCIgJWluJSBjb2xuYW1lcyhkZikpIHsNCiAgICBkZl9tb2RpZiA8LSANCiAgICAgIGRmICU+JQ0KICAgICAgZHBseXI6OnJlbmFtZSgiSURfZmlsZSIgPSAuaWQpDQogICAgZGYgPC0gZGVwYXJzZShzdWJzdGl0dXRlKGRmKSkNCiAgICBjYXQoIkNoYW5nZWQgLmlkIHRvIElEX2ZpbGUgZm9yOiAiLCBhcy5uYW1lKGRmKSkNCiAgICBhc3NpZ24oZGYsIGRmX21vZGlmLCBlbnZpciA9IGdsb2JhbGVudigpKQ0KICB9ICANCn0NCg0KSURfcmVuYW1lKFVuaWNfQ1RSTF9JbnN0cikNCklEX3JlbmFtZShVbmljX0NUUkxfU29sbykNCklEX3JlbmFtZShVbmljX09HTF9JbnN0cikNCklEX3JlbmFtZShVbmljX09HTF9Tb2xvKQ0KDQojIE1lcmdlIGludG8gb25lIGRmDQpsaXN0X2RmX21lcmdlIDwtIGxpc3QoVW5pY19DVFJMX0luc3RyLCBVbmljX0NUUkxfU29sbywgVW5pY19PR0xfSW5zdHIsIFVuaWNfT0dMX1NvbG8pDQpuYW1lcyhsaXN0X2RmX21lcmdlKSA8LSBjKCJVbmljX0NUUkxfSW5zdHIiLCAiVW5pY19DVFJMX1NvbG8iLCAiVW5pY19PR0xfSW5zdHIiLCAiVW5pY19PR0xfU29sbyIpDQpVbmljX21lcmdlZCA8LSBwbHlyOjpsZHBseShsaXN0X2RmX21lcmdlLCBkYXRhLmZyYW1lKSAgICAgICAgICAgICAgICAgICAgIyBhbHNvIHdvcmtzIGZvciB0aGlzIGpvYiBiaW5kX3Jvd3MobGlzdF9kZl9tZXJnZSwgLmlkID0gImNvbHVtbl9sYWJlbCIpDQpgYGANCg0KDQojIyBBbmFseXNlcyBvbiBtZXJnZWQgKEFub3ZhICYgcG9zdC1ob2MpDQoNCmBgYHtyIGFub3ZhX3VuaWNlLCBoaWRlPVRSVUUsIGV2YWw9RkFMU0V9DQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgQW5hbHlzZXMgb24gTWVyZ2VkICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiMjIEp1c3QgYSBUZXN0IA0KICAjIFVuaWNfbWVyZ2VkX3NwcmVhZF9OZWcgPC0gDQogICMgICBVbmljX21lcmdlZCAlPiUNCiAgIyAgIGZpbHRlcighaXMubmEoU0FNX1Jlc3ApKSAlPiUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBzb21lIGZpbGVzIGhhZCBvbmx5IE5BIG9uIFNBTV9SZXNwIGFuZCBTQU1fUlQNCiAgIyAgIHNlbGVjdCguaWQsIElELCBTdWJqX2lkLCANCiAgIyAgICAgICAgICBTdGltdWxpLm9yZGVyLCBNYXJrZXJTdGltdWxpLCBTdGltdWx1cy50eXBlLCANCiAgIyAgICAgICAgICBTQU1fUmVzcCwgU0FNX1JUKSAlPiUNCiAgIyAgIGZpbHRlcihTdGltdWx1cy50eXBlID09ICJuZWdhdGl2IikgJT4lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBkb250IGZvcmdldCB0byBwaWNrIHN0eW11bHVzIHR5cGUNCiAgIyAgIHNwcmVhZCguaWQsIFNBTV9SZXNwKQ0KICAjIA0KICAjIHQudGVzdChVbmljX21lcmdlZF9zcHJlYWRfTmVnJFVuaWNfQ1RSTF9JbnN0ciwgVW5pY19tZXJnZWRfc3ByZWFkX05lZyRVbmljX0NUUkxfU29sbywgbmEucm0gPSBUUlVFKQ0KICAjIHQudGVzdChVbmljX21lcmdlZF9zcHJlYWRfTmVnJFVuaWNfT0dMX0luc3RyLCBVbmljX21lcmdlZF9zcHJlYWRfTmVnJFVuaWNfT0dMX1NvbG8sIG5hLnJtID0gVFJVRSkNCiAgIyB0LnRlc3QoVW5pY19tZXJnZWRfc3ByZWFkX05lZyRVbmljX09HTF9JbnN0ciwgVW5pY19tZXJnZWRfc3ByZWFkX05lZyRVbmljX0NUUkxfSW5zdHIsIG5hLnJtID0gVFJVRSkNCiAgIyB0LnRlc3QoVW5pY19tZXJnZWRfc3ByZWFkX05lZyRVbmljX09HTF9Tb2xvLCBVbmljX21lcmdlZF9zcHJlYWRfTmVnJFVuaWNfQ1RSTF9Tb2xvLCBuYS5ybSA9IFRSVUUpDQoNCiMjIEZ1bmN0aW9uIHByZXBhaXIgZGF0YSBmb3IgYW5hbHlzZXMNCnByZXBhaXJlX21lcmdlZF9mdW5jIDwtIGZ1bmN0aW9uKFN0aW1fdHlwZSl7DQogIFVuaWNfbWVyZ2VkICU+JQ0KICAgIGZpbHRlcighaXMubmEoU0FNX1Jlc3ApKSAlPiUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBzb21lIGZpbGVzIGhhZCBvbmx5IE5BIG9uIFNBTV9SZXNwIGFuZCBTQU1fUlQNCiAgICBzZWxlY3QoLmlkLCBJRCwgU3Vial9pZCwgDQogICAgICAgICAgIFN0aW11bGkub3JkZXIsIE1hcmtlclN0aW11bGksIFN0aW11bHVzLnR5cGUsIA0KICAgICAgICAgICBTQU1fUmVzcCwgU0FNX1JUKSAlPiUNCiAgICBkcGx5cjo6cmVuYW1lKENvbmQgPSAuaWQpICU+JSANCiAgICBmaWx0ZXIoU3RpbXVsdXMudHlwZSA9PSBTdGltX3R5cGUpICU+JSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZG9udCBmb3JnZXQgdG8gcGljayBzdHltdWx1cyB0eXBlDQogICAgbXV0YXRlKENvbmQgPSBhcy5mYWN0b3IoQ29uZCkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHR1bnIgdG8gZmFjdG9yIGZvciBhb3YgZmFtaWx5IGZ1bmN0aW9ucw0KfQ0KDQpVbmljX21lcmdlZF9OZWcgPC0gcHJlcGFpcmVfbWVyZ2VkX2Z1bmMoIm5lZ2F0aXYiKQ0KVW5pY19tZXJnZWRfTmV1IDwtIHByZXBhaXJlX21lcmdlZF9mdW5jKCJuZXV0cnUiKQ0KVW5pY19tZXJnZWRfUG96IDwtIHByZXBhaXJlX21lcmdlZF9mdW5jKCJwb3ppdGl2IikNCg0KIyMgQW5vdmEgYW5kIFBvc3QtSG9jDQojIE5vcm1hbGl0eSANClVuaWNfbWVyZ2VkX05lZyAlPiUNCiAgc2VsZWN0KFNBTV9SZXNwKSAlPiUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgbXVzdCBzZWxlY3QgdmFyaWFibGVzIG91dHNpZGUgZnVuY3Rpb24gDQogIHRhZGFhdG9vbGJveDo6dGFkYWFfbm9ybXRlc3QobWV0aG9kID0gInNoYXBpcm8iKSAgICAgICAgICAgICAgICAgICAgICAgICAjICwgcHJpbnQgPSAibWFya2Rvd24iICBmb3IgTm90ZWJvb2sNCg0KIyBMZXZlbmUgVGVzdCAocD4uMDUgPSBob21vZ2VuZWl0eSBvZiB2YXJpYW5jZXMpDQpVbmljX21lcmdlZF9OZWcgJT4lDQogIHRhZGFhdG9vbGJveDo6dGFkYWFfbGV2ZW5lKGRhdGEgPSAuLCBTQU1fUmVzcCB+IENvbmQpICAgICAgICAgICAgICAgICAgICAjICwgcHJpbnQgPSAibWFya2Rvd24iICBmb3IgTm90ZWJvb2sNCg0KIyBBbm92YQ0KVW5pY19tZXJnZWRfTmVnICU+JQ0KICAjZG8oYnJvb206OmdsYW5jZShhb3YoLiRTQU1fUmVzcCB+IC4kQ29uZCkpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyByZWd1bGFyIGFub3ZhIGRvKGJyb29tOjp0aWR5KGFvdiguJFNBTV9SZXNwIH4gLiRDb25kKSkpDQogIHRhZGFhdG9vbGJveDo6dGFkYWFfYW92KGRhdGEgPSAuLCBTQU1fUmVzcCB+IENvbmQsIHR5cGUgPSAxKSAgICAgICAgICAgICAjICwgcHJpbnQgPSAibWFya2Rvd24iICBmb3IgTm90ZWJvb2sNCg0KIyBQb3N0LUhvYyANClVuaWNfbWVyZ2VkX05lZyAlPiUNCiAgIyBUdWtleSBmb3IgZXF1YWwgdmFyaWFuY2UgDQogIHRhZGFhdG9vbGJveDo6dGFkYWFfcGFpcndpc2VfdHVrZXkoZGF0YSA9IC4sIFNBTV9SZXNwLCBDb25kKSAgICAgICAgICAgICAjICwgcHJpbnQgPSAibWFya2Rvd24iICBmb3IgTm90ZWJvb2sNCiAgIyBHYW1lcyBIb3dlbGwgZG9lcyBub3QgYXNzdW1lIGVxdWFsIHZhcmlhbmNlcw0KICAjdGFkYWF0b29sYm94Ojp0YWRhYV9wYWlyd2lzZV9naChkYXRhID0gLiwgU0FNX1Jlc3AsIENvbmQpICAgICAgICAgICAgICAgICMgLCBwcmludCA9ICJtYXJrZG93biIgIGZvciBOb3RlYm9vaw0KYGBgDQoNCg0KIyMgUGxvdHMgd2l0aCBwIHZhbHVlcw0KYGBge3IgcGxvdF91bmljZSwgZmlnLmhlaWdodD03fQ0KIyBieSBkYXRhc2V0DQpnZ3Bsb3QoVW5pY19tZXJnZWQsIGFlcyh4ID0gU3RpbXVsdXMudHlwZSwgeSA9IFNBTV9SZXNwKSkgKw0KICBnZW9tX2JveHBsb3QoKSArDQogIHN0YXRfc3VtbWFyeShmdW4uZGF0YSA9IG1lYW5fc2UsICBjb2xvdXIgPSAiZGFya3JlZCIpICsNCiAgeGxhYigiIikgKw0KICBmYWNldF93cmFwKH4uaWQpICsNCiAgZ2dwdWJyOjpzdGF0X2NvbXBhcmVfbWVhbnMobWV0aG9kID0gInQudGVzdCIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCA9ICJwLnNpZ25pZiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHRvIGF2b2lkIHNjaWVudGlmaWMgbm90YXRpb24gb2YgdmVyeSBzbWFsbCBwLXZhbHVlcw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjcGFpcmVkID0gVFJVRSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhcmlzb25zID0gbGlzdChjKCJuZWdhdGl2IiwgIm5ldXRydSIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYygibmV1dHJ1IiwgInBveml0aXYiKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMoIm5lZ2F0aXYiLCAicG96aXRpdiIpKSkgIA0KDQojIGJ5IFN0aW11bHVzIHR5cGUNCmdncGxvdChVbmljX21lcmdlZCwgYWVzKHggPSAuaWQsIHkgPSBTQU1fUmVzcCkpICsNCiAgZ2VvbV9ib3hwbG90KCkgKw0KICBzdGF0X3N1bW1hcnkoZnVuLmRhdGEgPSBtZWFuX3NlLCAgY29sb3VyID0gImRhcmtyZWQiKSArDQogIHhsYWIoIiIpICsNCiAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA5MCwgaGp1c3QgPSAxKSkgKw0KICBmYWNldF93cmFwKH5TdGltdWx1cy50eXBlKSArDQogIGdncHVicjo6c3RhdF9jb21wYXJlX21lYW5zKG1ldGhvZCA9ICJ0LnRlc3QiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCA9ICJwLmZvcm1hdCIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGZvcm1hdGVkIHAtdmFsdWVzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICNwYWlyZWQgPSBUUlVFLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGFyaXNvbnMgPSBsaXN0KGMoIlVuaWNfQ1RSTF9JbnN0ciIsICJVbmljX0NUUkxfU29sbyIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYygiVW5pY19DVFJMX0luc3RyIiwgIlVuaWNfT0dMX0luc3RyIiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjKCJVbmljX0NUUkxfU29sbyIsICJVbmljX09HTF9JbnN0ciIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYygiVW5pY19DVFJMX1NvbG8iLCAiVW5pY19PR0xfU29sbyIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYygiVW5pY19PR0xfSW5zdHIiLCAiVW5pY19PR0xfU29sbyIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYygiVW5pY19DVFJMX0luc3RyIiwgIlVuaWNfT0dMX1NvbG8iKSkpIA0KDQoNCiMgZHJvcCB0byBDVFJMIHZzIE9HTCAtIGJ5IFN0aW11bHVzIHR5cGUNClVuaWNfbWVyZ2VkICU+JQ0KICBtdXRhdGUoLmlkID0gY2FzZV93aGVuKC5pZCAlaW4lIGMoIlVuaWNfQ1RSTF9JbnN0ciIsICJVbmljX0NUUkxfU29sbyIpIH4gIlVuaWNfQ1RSTCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgLmlkICVpbiUgYygiVW5pY19PR0xfSW5zdHIiLCAiVW5pY19PR0xfU29sbyIpIH4gIlVuaWNfT0dMIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFIH4gYXMuY2hhcmFjdGVyKC5pZCkpKSAlPiUNCiAgICBnZ3Bsb3QoYWVzKHggPSAuaWQsIHkgPSBTQU1fUmVzcCkpICsNCiAgICBnZW9tX2JveHBsb3QoKSArDQogICAgc3RhdF9zdW1tYXJ5KGZ1bi5kYXRhID0gbWVhbl9zZSwgIGNvbG91ciA9ICJkYXJrcmVkIikgKw0KICAgIHhsYWIoIiIpICsNCiAgICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDkwLCBoanVzdCA9IDEpKSArDQogICAgZmFjZXRfd3JhcCh+U3RpbXVsdXMudHlwZSkgKw0KICAgIGdncHVicjo6c3RhdF9jb21wYXJlX21lYW5zKG1ldGhvZCA9ICJ0LnRlc3QiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsID0gInAuZm9ybWF0IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZm9ybWF0ZWQgcC12YWx1ZXMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjcGFpcmVkID0gVFJVRSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGFyaXNvbnMgPSBsaXN0KGMoIlVuaWNfQ1RSTCIsICJVbmljX09HTCIpKSkgICAgICAgICAgDQoNCiMgZHJvcCB0byBJbnN0ciB2cyBTb2xvIC0gYnkgU3RpbXVsdXMgdHlwZQ0KVW5pY19tZXJnZWQgJT4lDQogIG11dGF0ZSguaWQgPSBjYXNlX3doZW4oLmlkICVpbiUgYygiVW5pY19DVFJMX0luc3RyIiwgIlVuaWNfT0dMX0luc3RyIikgfiAiVW5pY19JbnN0ciIsDQogICAgICAgICAgICAgICAgICAgICAgICAgLmlkICVpbiUgYygiVW5pY19DVFJMX1NvbG8iLCAiVW5pY19PR0xfU29sbyIpIH4gIlVuaWNfU29sbyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSB+IGFzLmNoYXJhY3RlciguaWQpKSkgJT4lDQogICAgZ2dwbG90KGFlcyh4ID0gLmlkLCB5ID0gU0FNX1Jlc3ApKSArDQogICAgZ2VvbV9ib3hwbG90KCkgKw0KICAgIHN0YXRfc3VtbWFyeShmdW4uZGF0YSA9IG1lYW5fc2UsICBjb2xvdXIgPSAiZGFya3JlZCIpICsNCiAgICB4bGFiKCIiKSArDQogICAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA5MCwgaGp1c3QgPSAxKSkgKw0KICAgIGZhY2V0X3dyYXAoflN0aW11bHVzLnR5cGUpICsNCiAgICBnZ3B1YnI6OnN0YXRfY29tcGFyZV9tZWFucyhtZXRob2QgPSAidC50ZXN0IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCA9ICJwLmZvcm1hdCIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGZvcm1hdGVkIHAtdmFsdWVzDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3BhaXJlZCA9IFRSVUUsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhcmlzb25zID0gbGlzdChjKCJVbmljX0luc3RyIiwgIlVuaWNfU29sbyIpKSkgDQpgYGANCg0KDQoNCg0KDQoNCg0KPCEtLSBTZXNzaW9uIEluZm8gYW5kIExpY2Vuc2UgLS0+DQoNCjxicj4NCg0KIyBTZXNzaW9uIEluZm8NCmBgYHtyIHNlc3Npb25faW5mbywgZWNobyA9IEZBTFNFLCByZXN1bHRzID0gJ21hcmt1cCd9DQpzZXNzaW9uSW5mbygpICAgIA0KYGBgDQoNCjwhLS0gRm9vdGVyIC0tPg0KJm5ic3A7DQo8aHIgLz4NCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij5BIHdvcmsgYnkgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL0NsYXVkaXVQYXBhc3RlcmkvIj5DbGF1ZGl1IFBhcGFzdGVyaTwvYT48L3A+DQo8cCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+PHNwYW4gc3R5bGU9ImNvbG9yOiAjODA4MDgwOyI+PGVtPmNsYXVkaXUucGFwYXN0ZXJpQGdtYWlsLmNvbTwvZW0+PC9zcGFuPjwvcD4NCiZuYnNwOw0K