Meta-analysis of running volume models

getting started

clean up

# empty environment
rm(list=ls())
# free up memory
#gc()

general custom functions

  • fpackage.check: Check if packages are installed (and install if not) in R (source)
  • fload.R: function to load R-objects under new names.
fpackage.check <- function(packages) {
    lapply(packages, FUN = function(x) {
        if (!require(x, character.only = TRUE)) {
            install.packages(x, dependencies = TRUE)
            library(x, character.only = TRUE)
        }
    })
}

fload.R  <- function(fileName){
  load(fileName)
  get(ls()[ls() != "fileName"])
}

colorize <- function(x, color) {sprintf("<span style='color: %s;'>%s</span>", color, x) }


necessary packages

  • RSiena: for meta-analysis in siena08
  • knitr: generating tables
  • kableExtra: extend knitr’ table functionality
  • dplyr: data manipulation
packages = c("RSiena", "knitr", "kableExtra", "dplyr")
fpackage.check(packages)
rm(packages)


Estimation

Down below, we estimate the same models with running volume as the dependent variable, for clubs 1-5, models 1-6.

load("clubdata_rsiena_vol.RData") # load the list containing rsiena objects.

for (i in 1:c) { # for every club

  # we take the rsiena object from the list
  mydata <- clubdata_rsiena_vol[[i]]
  
  # and the list containing myeff objects
  load(file=paste("test", "/", "myeff", "/", "volume", "/", "myeff_club", i, ".RData", sep = "")) 

  # we make a list for storing the RSiena fit objects
  sienaFit <- list()

  # for club i we run models j in 1:m
  for (j in 1:m) {
 
    # we estimate the model
    try <- 1
    print(paste("Estimating model ", j, " for club ", i, sep=""))
    sienaFit[[j]] <- siena07(myalgorithm, data = mydata, effects = myeff[[j]], returnDeps=TRUE,
                             useCluster=TRUE, nbrNodes=10, initC=TRUE, batch=TRUE) # store it in the list
    
    # re-run until we reach adequate convergence 
    while (TRUE){
      if(sienaFit[[j]]$tconv.max >= .25){
        try <- try + 1
        if (try>30) { # with at max 30 runs.
          print(paste("Now it lasted to long!") 
          break      
        }
        print(paste("Model did not converge adequately (", sienaFit[[j]]$tconv.max, "); ", "Repeat the estimation (", "try ", try, ")", sep = ""))
        sienaFit[[j]] <- siena07( myalgorithm, data = mydata, effects = myeff[[j]], prevAns= sienaFit[[j]], returnDeps=TRUE, useCluster=TRUE, nbrNodes=10, initC=TRUE, batch=TRUE)
      }else{
        print(paste("Reached overall maximum convergence ratio of: ", sienaFit[[j]]$tconv.max, sep = ""))
        print("")
        break
      }
    }
    
  }
  # and save the list with RSiena fit objects
  save(sienaFit, file=paste("test", "/", "sienaFit", "/", "volume", "/", "sienaFit_club", i, ".RData", sep = ""))
  print(paste("All models are estimated for club ", i, ". Model results are stored in sienaFit/volume/sienaFit_club", i, ".RData", sep=""))
  print("")
  ifelse(i<c, print(paste("Continuing with club ", i+1, sep="")), print("Estimation finished!"))
  
}

sienaFit_clubL <- list()

for (i in 1:5) {
  temp.space <- new.env()
  bar <- load(paste("test/sienaFit/volume/sienaFit_club", i, ".RData", sep=""), temp.space)
  sienaFit_clubL[[i]] <- get(bar, temp.space)
  rm(temp.space)
}

lapply(sienaFit_clubL, '[[', 5)
map(sienaFit_clubL, 6)


Meta-analysis

Again, to summarize the results over our clubs, we will perform a meta-analysis using a Fisher-type combination of one-tailed p-values.

# large lists, takes a lot of time to load
# in case you don't have enough memory space for all RSiena lists, leave club 3 for now.
club1 <-  fload.R("test/sienaFit/duration/sienaFit_club1.RData")
club2 <-  fload.R("test/sienaFit/duration/sienaFit_club2.RData")
club4 <-  fload.R("test/sienaFit/duration/sienaFit_club4.RData")
club5 <-  fload.R("test/sienaFit/duration/sienaFit_club5.RData")

# we list model 1-6
m1List <- list(club1[[1]], club2[[1]], club4[[1]], club5[[1]])
m2List <- list(club1[[2]], club2[[2]], club4[[2]], club5[[2]])
m3List <- list(club1[[3]], club2[[3]], club4[[3]], club5[[3]])
m4List <- list(club1[[4]], club2[[4]], club4[[4]], club5[[4]])
m5List <- list(club1[[5]], club2[[5]], club4[[5]], club5[[5]])
#m6List <- list(club1[[6]], club2[[6]], club4[[6]], club5[[6]])

# remove the excess data, and add club 3's rsiena objects.
rm(club1, club2, club4, club5)
club3 <-  fload.R("test/sienaFit/duration/sienaFit_club3.RData")
# when facing facing storage capacity issues, check the capacity:
#memory.limit()
# we increase the limit
#memory.limit(size=56000)

# add to the lists
m1List[[5]] <- club3[[1]]
m2List[[5]] <- club3[[2]]
m3List[[5]] <- club3[[3]]
m4List[[5]] <- club3[[4]]
m5List[[5]] <- club3[[5]]
#m6List[[5]] <- club3[[6]]
rm(club3)


#model 1
# We extract the parameter estimates and standard errors 
parameters <- sapply(m1List, function(x){x$theta})
standers <- sapply(m1List, function(x){x$se}) 

(eff.names <-
    m1List[[1]]$effects[m1List[[1]]$effects$include,'effectName']) 
(eff.names <- eff.names)

#combine parameters and std.errors with effect names
rownames(parameters) <- eff.names
rownames(standers) <- eff.names

# print rounded to 3 decimals
round(parameters,3)
round(standers,3)

ans8 <- siena08(m1List, bound=100)

efnames <- names(ans8[1:40])
efnames <- substring(efnames, 8)

Fishers <- t(sapply(1:40,
                    function(i){c(ans8[[i]]$cjplus, ans8[[i]]$cjminus,
                                  ans8[[i]]$cjplusp, ans8[[i]]$cjminusp, 2*ans8[[i]]$n1 )}))
Fishers <- as.data.frame(Fishers)
rownames(Fishers) <- efnames
names(Fishers) <- c('Fplus', 'Fminus', 'pplus', 'pminus', 'df')
#round(Fishers,3)

# we make (and save) a dataframe combining club estimates (std. errors) with fisher test statistics
par_standers <- paste(round(parameters, 3), " (", round(standers, 3), ")", sep="")
df <- as.data.frame(matrix(par_standers, nrow=40, ncol=5))
rownames(df) <- efnames
colnames(df) <- (c("Club 1 (N=30)", "Club 2 (N=62)", "Club 4 (N=13)", "Club 5 (N=77)", "Club 3 (N=162)"))
df2 <- cbind(df, round(Fishers, 3))
df2 <- df2[, c(1,2,5,3,4,7,6,9,8,10)] # reorder
save(df2, file = "test/sienaFit/meta-analysis/meta_vol_m1.RData")

#model 2
# We extract the parameter estimates and standard errors 
parameters <- sapply(m2List, function(x){x$theta})
standers <- sapply(m2List, function(x){x$se}) 

(eff.names <-
    m2List[[1]]$effects[m2List[[1]]$effects$include,'effectName']) 
(eff.names <- eff.names)

#combine parameters and std.errors with effect names
rownames(parameters) <- eff.names
rownames(standers) <- eff.names

# print rounded to 3 decimals
round(parameters,3)
round(standers,3)

ans8 <- siena08(m2List, bound=100)

efnames <- names(ans8[1:41])
efnames <- substring(efnames, 8)

Fishers <- t(sapply(1:41,
                    function(i){c(ans8[[i]]$cjplus, ans8[[i]]$cjminus,
                                  ans8[[i]]$cjplusp, ans8[[i]]$cjminusp, 2*ans8[[i]]$n1 )}))
Fishers <- as.data.frame(Fishers)
rownames(Fishers) <- efnames
names(Fishers) <- c('Fplus', 'Fminus', 'pplus', 'pminus', 'df')
#round(Fishers,3)

# we make (and save) a dataframe combining club estimates (std. errors) with fisher test statistics
par_standers <- paste(round(parameters, 3), " (", round(standers, 3), ")", sep="")
df <- as.data.frame(matrix(par_standers, nrow=41, ncol=5))
rownames(df) <- efnames
colnames(df) <- (c("Club 1 (N=30)", "Club 2 (N=62)", "Club 4 (N=13)", "Club 5 (N=77)", "Club 3 (N=162)"))
df2 <- cbind(df, round(Fishers, 3))
df2 <- df2[, c(1,2,5,3,4,7,6,9,8,10)] # reorder
save(df2, file = "test/sienaFit/meta-analysis/meta_vol_m2.RData")

#model 3
# We extract the parameter estimates and standard errors 
parameters <- sapply(m3List, function(x){x$theta})
standers <- sapply(m3List, function(x){x$se}) 

(eff.names <-
    m3List[[1]]$effects[m3List[[1]]$effects$include,'effectName']) 
(eff.names <- eff.names)

#combine parameters and std.errors with effect names
rownames(parameters) <- eff.names
rownames(standers) <- eff.names

# print rounded to 3 decimals
round(parameters,3)
round(standers,3)

ans8 <- siena08(m3List, bound=100)

efnames <- names(ans8[1:41])
efnames <- substring(efnames, 8)

Fishers <- t(sapply(1:41,
                    function(i){c(ans8[[i]]$cjplus, ans8[[i]]$cjminus,
                                  ans8[[i]]$cjplusp, ans8[[i]]$cjminusp, 2*ans8[[i]]$n1 )}))
Fishers <- as.data.frame(Fishers)
rownames(Fishers) <- efnames
names(Fishers) <- c('Fplus', 'Fminus', 'pplus', 'pminus', 'df')
#round(Fishers,3)

# we make (and save) a dataframe combining club estimates (std. errors) with fisher test statistics
par_standers <- paste(round(parameters, 3), " (", round(standers, 3), ")", sep="")
df <- as.data.frame(matrix(par_standers, nrow=41, ncol=5))
rownames(df) <- efnames
colnames(df) <- (c("Club 1 (N=30)", "Club 2 (N=62)", "Club 4 (N=13)", "Club 5 (N=77)", "Club 3 (N=162)"))
df2 <- cbind(df, round(Fishers, 3))
df2 <- df2[, c(1,2,5,3,4,7,6,9,8,10)] # reorder
save(df2, file = "test/sienaFit/meta-analysis/meta_vol_m3.RData")

#model 4
# We extract the parameter estimates and standard errors 
parameters <- sapply(m4List, function(x){x$theta})
standers <- sapply(m4List, function(x){x$se}) 

(eff.names <-
    m4List[[1]]$effects[m4List[[1]]$effects$include,'effectName']) 
(eff.names <- eff.names)

#combine parameters and std.errors with effect names
rownames(parameters) <- eff.names
rownames(standers) <- eff.names

# print rounded to 3 decimals
round(parameters,3)
round(standers,3)

ans8 <- siena08(m4List, bound=100)

efnames <- names(ans8[1:41])
efnames <- substring(efnames, 8)

Fishers <- t(sapply(1:41,
                    function(i){c(ans8[[i]]$cjplus, ans8[[i]]$cjminus,
                                  ans8[[i]]$cjplusp, ans8[[i]]$cjminusp, 2*ans8[[i]]$n1 )}))
Fishers <- as.data.frame(Fishers)
rownames(Fishers) <- efnames
names(Fishers) <- c('Fplus', 'Fminus', 'pplus', 'pminus', 'df')
#round(Fishers,3)

# we make (and save) a dataframe combining club estimates (std. errors) with fisher test statistics
par_standers <- paste(round(parameters, 3), " (", round(standers, 3), ")", sep="")
df <- as.data.frame(matrix(par_standers, nrow=41, ncol=5))
rownames(df) <- efnames
colnames(df) <- (c("Club 1 (N=30)", "Club 2 (N=62)", "Club 4 (N=13)", "Club 5 (N=77)", "Club 3 (N=162)"))
df2 <- cbind(df, round(Fishers, 3))
df2 <- df2[, c(1,2,5,3,4,7,6,9,8,10)] # reorder
save(df2, file = "test/sienaFit/meta-analysis/meta_vol_m4.RData")

#model 5
# We extract the parameter estimates and standard errors 
parameters <- sapply(m5List, function(x){x$theta})
standers <- sapply(m5List, function(x){x$se}) 

(eff.names <-
    m5List[[1]]$effects[m5List[[1]]$effects$include,'effectName']) 
(eff.names <- eff.names)

#combine parameters and std.errors with effect names
rownames(parameters) <- eff.names
rownames(standers) <- eff.names

# print rounded to 3 decimals
round(parameters,3)
round(standers,3)

ans8 <- siena08(m5List, bound=100)

efnames <- names(ans8[1:45])
efnames <- substring(efnames, 8)

Fishers <- t(sapply(1:45,
                    function(i){c(ans8[[i]]$cjplus, ans8[[i]]$cjminus,
                                  ans8[[i]]$cjplusp, ans8[[i]]$cjminusp, 2*ans8[[i]]$n1 )}))
Fishers <- as.data.frame(Fishers)
rownames(Fishers) <- efnames
names(Fishers) <- c('Fplus', 'Fminus', 'pplus', 'pminus', 'df')
#round(Fishers,3)

# we make (and save) a dataframe combining club estimates (std. errors) with fisher test statistics
par_standers <- paste(round(parameters, 3), " (", round(standers, 3), ")", sep="")
df <- as.data.frame(matrix(par_standers, nrow=42, ncol=5))
rownames(df) <- efnames
colnames(df) <- (c("Club 1 (N=30)", "Club 2 (N=62)", "Club 4 (N=13)", "Club 5 (N=77)", "Club 3 (N=162)"))
df2 <- cbind(df, round(Fishers, 3))
df2 <- df2[, c(1,2,5,3,4,7,6,9,8,10)] # reorder
save(df2, file = "test/sienaFit/meta-analysis/meta_vol_m5.RData")

#model 6
# We extract the parameter estimates and standard errors 
parameters <- sapply(m6List, function(x){x$theta})
standers <- sapply(m6List, function(x){x$se}) 

(eff.names <-
    m6List[[1]]$effects[m6List[[1]]$effects$include,'effectName']) 
(eff.names <- eff.names)

#combine parameters and std.errors with effect names
rownames(parameters) <- eff.names
rownames(standers) <- eff.names

# print rounded to 3 decimals
round(parameters,3)
round(standers,3)

ans8 <- siena08(m6List, bound=100)

efnames <- names(ans8[1:41])
efnames <- substring(efnames, 8)

Fishers <- t(sapply(1:41,
                    function(i){c(ans8[[i]]$cjplus, ans8[[i]]$cjminus,
                                  ans8[[i]]$cjplusp, ans8[[i]]$cjminusp, 2*ans8[[i]]$n1 )}))
Fishers <- as.data.frame(Fishers)
rownames(Fishers) <- efnames
names(Fishers) <- c('Fplus', 'Fminus', 'pplus', 'pminus', 'df')
#round(Fishers,3)

# we make (and save) a dataframe combining club estimates (std. errors) with fisher test statistics
par_standers <- paste(round(parameters, 3), " (", round(standers, 3), ")", sep="")
df <- as.data.frame(matrix(par_standers, nrow=41, ncol=5))
rownames(df) <- efnames
colnames(df) <- (c("Club 1 (N=30)", "Club 2 (N=62)", "Club 4 (N=13)", "Club 5 (N=77)", "Club 3 (N=162)"))
df2 <- cbind(df, round(Fishers, 3))
df2 <- df2[, c(1,2,5,3,4,7,6,9,8,10)] # reorder
save(df2, file = "test/sienaFit/meta-analysis/meta_vol_m6.RData")



Results

And we present the results:

Model 1 (indegree)

Meta-analysis of parameter estimates for the objective function of kudos tie formation and running volume dynamics across 5 Strava clubs
Club 1 (N=30) Club 2 (N=62) Club 3 (N=162) Club 4 (N=13) Club 5 (N=77) Fminus Fplus pminus pplus df
constant kudonet rate (period 1) 1.47 (0.541) 5.645 (0.551) 4.487 (0.571) 0.882 (0.659) 5.894 (0.595) 0.196 300.180 1.000 0.000 10
constant kudonet rate (period 2) 1.456 (0.558) 6.082 (0.589) 3.117 (0.394) 0.449 (0.345) 5.233 (0.527) 0.212 302.457 1.000 0.000 10
constant kudonet rate (period 3) 0.569 (0.242) 6.107 (0.556) 3.448 (0.464) 1.113 (0.726) 6.113 (0.629) 0.148 304.519 1.000 0.000 10
constant kudonet rate (period 4) 0.655 (0.267) 4.222 (0.407) 8.208 (0.975) 0.552 (0.434) 4.955 (0.477) 0.229 320.101 1.000 0.000 10
constant kudonet rate (period 5) 0.313 (0.171) 5.073 (0.484) 7.427 (0.938) 0.668 (0.471) 5.901 (0.545) 0.229 321.016 1.000 0.000 10
constant kudonet rate (period 6) 1.137 (0.394) 5.064 (0.478) 4.882 (0.589) 1.043 (0.616) 7.145 (0.657) 0.097 336.819 1.000 0.000 10
constant kudonet rate (period 7) 0.721 (0.304) 5.763 (0.544) 5.627 (0.755) 2.942 (1.783) 5.451 (0.521) 0.119 311.503 1.000 0.000 10
constant kudonet rate (period 8) 1.885 (0.642) 5.666 (0.501) 10.246 (1.32) 0.949 (0.554) 5.665 (0.506) 0.092 351.826 1.000 0.000 10
constant kudonet rate (period 9) 0.528 (0.218) 4.904 (0.449) 7.146 (0.784) 4.019 (3.916) 6.642 (0.557) 0.346 377.808 1.000 0.000 10
constant kudonet rate (period 10) 2.175 (0.634) 3.411 (0.344) 5.457 (0.723) 0.403 (0.307) 6.447 (0.547) 0.199 333.926 1.000 0.000 10
constant kudonet rate (period 11) 2.499 (0.751) 4.966 (0.432) 11.689 (1.932) 1.863 (1.451) 6.932 (0.584) 0.210 348.667 1.000 0.000 10
outdegree (density) -6.367 (0.725) -6.842 (0.358) -4.783 (0.152) 3.557 (2.351) -3.945 (0.157) 2093.326 5.462 0.000 0.858 10
reciprocity 5.123 (0.461) 4.718 (0.257) 4.575 (0.136) 2.977 (0.558) 3.93 (0.175) 0.000 2168.834 1.000 0.000 10
GWESP I -> K -> J (69) 1.109 (0.276) 0.977 (0.12) 1.273 (0.074) 1.665 (0.533) 1.753 (0.1) 0.002 726.345 1.000 0.000 10
indegree - popularity (sqrt) 0.24 (0.249) 0.175 (0.041) 0.697 (0.06) -0.371 (0.715) -0.107 (0.032) 18.404 169.538 0.049 0.000 10
outdegree - popularity (sqrt) 0 (NA) 0 (NA) -0.509 (0.049) 0 (NA) 0 (NA) 114.631 0.000 0.000 1.000 2
outdegree - activity (sqrt) 0.599 (0.152) 0.766 (0.086) 0.24 (0.021) -2.101 (0.838) 0.068 (0.019) 10.195 263.667 0.424 0.000 10
rec.degree^(1/1) - activity 0 (NA) -0.09 (0.014) 0 (NA) 0 (NA) 0 (NA) 46.694 0.000 0.000 1.000 2
out-isolate 0 (NA) 0.721 (0.317) 2.834 (0.121) 5.772 (1.543) 0.946 (0.206) 0.023 607.793 1.000 0.000 8
gender alter 0.356 (0.306) 0.171 (0.071) -0.153 (0.061) 0 (NA) 0.145 (0.047) 10.389 27.888 0.239 0.000 8
gender ego -0.556 (0.355) 0.087 (0.069) -0.142 (0.064) 0 (NA) -0.145 (0.049) 27.401 4.676 0.001 0.792 8
same gender -0.326 (0.272) 0.198 (0.065) 0.076 (0.06) 0 (NA) 0.084 (0.046) 4.606 25.061 0.799 0.002 8
higher time_run 0.54 (0.45) -0.076 (0.066) 0.118 (0.069) -0.534 (0.8) -0.221 (0.062) 24.552 11.394 0.006 0.328 10
int. reciprocity x GWESP I -> K -> J (69) 0 (NA) -0.864 (0.155) -1.753 (0.113) 0 (NA) -1.265 (0.102) 446.250 0.000 0.000 1.000 6
rate time_run (period 1) 1.89 (0.591) 1.913 (0.426) 1.447 (0.201) 1.91 (1.144) 3.041 (0.578) 0.099 136.381 1.000 0.000 10
rate time_run (period 2) 2.441 (0.867) 2.486 (0.578) 1.815 (0.282) 1.698 (1.099) 3.529 (0.774) 0.131 113.653 1.000 0.000 10
rate time_run (period 3) 2.583 (0.81) 3.072 (0.762) 2.186 (0.314) 1.157 (0.711) 5.014 (1.14) 0.108 119.896 1.000 0.000 10
rate time_run (period 4) 1.444 (0.478) 1.941 (0.455) 2.096 (0.308) 2.869 (2.082) 1.935 (0.369) 0.178 126.164 1.000 0.000 10
rate time_run (period 5) 2.818 (0.949) 1.304 (0.287) 1.765 (0.262) 3.635 (2.006) 1.465 (0.291) 0.074 126.763 1.000 0.000 10
rate time_run (period 6) 4.155 (1.576) 3.106 (0.8) 1.797 (0.255) 0.873 (0.537) 2.631 (0.481) 0.115 127.165 1.000 0.000 10
rate time_run (period 7) 4.983 (1.907) 3.663 (0.942) 1.685 (0.248) 3.125 (1.713) 2.766 (0.566) 0.078 118.229 1.000 0.000 10
rate time_run (period 8) 1.247 (0.416) 3.506 (0.788) 1.746 (0.246) 5 (NA) 2.426 (0.476) 0.003 125.187 1.000 0.000 8
rate time_run (period 9) 1.009 (0.331) 3.137 (0.713) 1.875 (0.258) 1.588 (0.935) 5.279 (1.093) 0.094 131.164 1.000 0.000 10
rate time_run (period 10) 2.759 (1.012) 3.585 (0.813) 1.671 (0.23) 1.132 (0.666) 3.315 (0.708) 0.098 127.823 1.000 0.000 10
rate time_run (period 11) 1.881 (0.606) 2.78 (0.647) 1.674 (0.23) 2.227 (1.472) 2.341 (0.486) 0.137 129.600 1.000 0.000 10
time_run linear shape -0.198 (0.068) -0.239 (0.06) -0.19 (0.031) -1.247 (0.253) -0.153 (0.04) 124.635 0.004 0.000 1.000 10
time_run quadratic shape -0.028 (0.019) 0.001 (0.011) -0.002 (0.009) -0.042 (0.066) -0.018 (0.007) 21.082 3.255 0.021 0.975 10
time_run indegree 0.031 (0.018) 0.015 (0.005) 0.009 (0.009) 0.423 (0.136) 0.01 (0.004) 0.473 49.184 1.000 0.000 10
time_run: effect from gender -0.001 (0.107) 0.06 (0.075) -0.16 (0.059) 0 (NA) -0.072 (0.059) 17.750 4.725 0.023 0.787 8
time_run: effect from time_other 0 (0.025) 0.015 (0.014) 0.032 (0.014) -0.005 (0.051) 0.052 (0.015) 3.261 31.851 0.975 0.000 10
Note:
Estimates are given with standard errors in parentheses. All convergence t ratios <.10; overall maximum convergence ratio <.15.
a Some structural network effects were rather important for some clubs, but not for others; for the latter, we fixed these effects to 0 (SE=NA).
b We fixed gender effects on kudos tie formation and running volume dynamics to 0 in club 4. Variation between the genders was not sufficient for model convergence. Score–type tests indicated that gender effects were not significant.
c The Fisher Test combines independent p–values to test whether there is evidence in at least one of the clubs of a parameter being positive or negative.

Model 2 (avAlt)

Meta-analysis of parameter estimates for the objective function of kudos tie formation and running volume dynamics across 5 Strava clubs
Club 1 (N=30) Club 2 (N=62) Club 3 (N=162) Club 4 (N=13) Club 5 (N=77) Fminus Fplus pminus pplus df
constant kudonet rate (period 1) 1.471 (0.533) 5.641 (0.581) 4.485 (0.56) 0.852 (0.6) 5.876 (0.629) 0.168 281.389 1.000 0.000 10
constant kudonet rate (period 2) 1.439 (0.554) 6.08 (0.564) 3.097 (0.39) 0.454 (0.36) 5.236 (0.543) 0.229 306.554 1.000 0.000 10
constant kudonet rate (period 3) 0.571 (0.246) 6.09 (0.547) 3.432 (0.461) 1.128 (0.762) 6.123 (0.596) 0.164 318.956 1.000 0.000 10
constant kudonet rate (period 4) 0.661 (0.273) 4.224 (0.411) 8.173 (0.944) 0.541 (0.42) 4.955 (0.48) 0.223 321.013 1.000 0.000 10
constant kudonet rate (period 5) 0.315 (0.166) 5.081 (0.468) 7.446 (0.987) 0.671 (0.441) 5.912 (0.54) 0.191 326.545 1.000 0.000 10
constant kudonet rate (period 6) 1.138 (0.373) 5.071 (0.455) 4.883 (0.594) 1.038 (0.628) 7.152 (0.68) 0.103 341.252 1.000 0.000 10
constant kudonet rate (period 7) 0.722 (0.303) 5.754 (0.536) 5.668 (0.791) 2.981 (1.772) 5.44 (0.481) 0.112 329.564 1.000 0.000 10
constant kudonet rate (period 8) 1.887 (0.676) 5.659 (0.503) 10.231 (1.348) 0.953 (0.556) 5.649 (0.498) 0.094 350.370 1.000 0.000 10
constant kudonet rate (period 9) 0.525 (0.226) 4.908 (0.442) 7.14 (0.765) 4.032 (3.659) 6.657 (0.575) 0.311 377.417 1.000 0.000 10
constant kudonet rate (period 10) 2.182 (0.621) 3.409 (0.351) 5.432 (0.809) 0.401 (0.316) 6.44 (0.543) 0.217 320.514 1.000 0.000 10
constant kudonet rate (period 11) 2.513 (0.745) 4.981 (0.441) 11.717 (1.724) 1.827 (1.282) 6.95 (0.559) 0.161 368.656 1.000 0.000 10
outdegree (density) -6.388 (0.744) -6.885 (0.359) -4.781 (0.152) 3.55 (2.348) -3.939 (0.16) 2065.876 5.459 0.000 0.858 10
reciprocity 5.131 (0.463) 4.738 (0.257) 4.569 (0.138) 2.961 (0.561) 3.932 (0.176) 0.000 2118.585 1.000 0.000 10
GWESP I -> K -> J (69) 1.103 (0.283) 0.984 (0.12) 1.272 (0.075) 1.666 (0.527) 1.752 (0.099) 0.002 721.254 1.000 0.000 10
indegree - popularity (sqrt) 0.242 (0.253) 0.175 (0.041) 0.695 (0.058) -0.381 (0.699) -0.107 (0.032) 18.795 176.605 0.043 0.000 10
outdegree - popularity (sqrt) 0 (NA) 0 (NA) -0.506 (0.049) 0 (NA) 0 (NA) 113.565 0.000 0.000 1.000 2
outdegree - activity (sqrt) 0.602 (0.152) 0.773 (0.087) 0.24 (0.02) -2.086 (0.826) 0.067 (0.019) 10.313 266.348 0.414 0.000 10
rec.degree^(1/1) - activity 0 (NA) -0.091 (0.014) 0 (NA) 0 (NA) 0 (NA) 46.610 0.000 0.000 1.000 2
out-isolate 0 (NA) 0.695 (0.326) 2.833 (0.118) 5.754 (1.542) 0.953 (0.207) 0.034 641.928 1.000 0.000 8
gender alter 0.358 (0.312) 0.172 (0.071) -0.154 (0.062) 0 (NA) 0.145 (0.048) 10.471 27.258 0.234 0.001 8
gender ego -0.554 (0.344) 0.089 (0.071) -0.142 (0.065) 0 (NA) -0.144 (0.049) 27.504 4.633 0.001 0.796 8
same gender -0.322 (0.274) 0.201 (0.066) 0.074 (0.061) 0 (NA) 0.084 (0.046) 4.537 24.915 0.806 0.002 8
higher time_run 0.555 (0.458) -0.074 (0.066) 0.118 (0.069) -0.544 (0.812) -0.222 (0.063) 24.256 11.531 0.007 0.318 10
int. reciprocity x GWESP I -> K -> J (69) 0 (NA) -0.867 (0.16) -1.754 (0.114) 0 (NA) -1.266 (0.104) 434.291 0.000 0.000 1.000 6
rate time_run (period 1) 1.884 (0.579) 1.908 (0.412) 1.45 (0.198) 1.94 (1.167) 3.109 (0.662) 0.100 133.903 1.000 0.000 10
rate time_run (period 2) 2.404 (0.778) 2.488 (0.591) 1.812 (0.251) 1.698 (1.098) 3.593 (0.788) 0.128 125.433 1.000 0.000 10
rate time_run (period 3) 2.582 (0.813) 3.045 (0.672) 2.17 (0.307) 1.16 (0.658) 5.118 (1.058) 0.081 130.702 1.000 0.000 10
rate time_run (period 4) 1.437 (0.45) 1.929 (0.439) 2.088 (0.291) 2.867 (2.169) 1.971 (0.388) 0.197 131.888 1.000 0.000 10
rate time_run (period 5) 2.804 (0.904) 1.298 (0.302) 1.767 (0.249) 3.543 (2.194) 1.485 (0.277) 0.111 132.998 1.000 0.000 10
rate time_run (period 6) 4.12 (1.608) 3.108 (0.668) 1.802 (0.248) 0.881 (0.579) 2.685 (0.563) 0.143 129.172 1.000 0.000 10
rate time_run (period 7) 4.945 (2.047) 3.641 (0.843) 1.679 (0.25) 3.164 (1.897) 2.888 (0.636) 0.113 115.522 1.000 0.000 10
rate time_run (period 8) 1.258 (0.407) 3.523 (0.857) 1.739 (0.239) 5 (NA) 2.496 (0.475) 0.002 127.239 1.000 0.000 8
rate time_run (period 9) 1.012 (0.336) 3.121 (0.773) 1.882 (0.263) 1.601 (0.917) 5.39 (1.296) 0.085 119.860 1.000 0.000 10
rate time_run (period 10) 2.796 (0.961) 3.532 (0.854) 1.667 (0.241) 1.144 (0.703) 3.422 (0.806) 0.110 116.779 1.000 0.000 10
rate time_run (period 11) 1.897 (0.625) 2.776 (0.608) 1.68 (0.234) 2.23 (1.366) 2.383 (0.482) 0.108 132.017 1.000 0.000 10
time_run linear shape -0.203 (0.071) -0.227 (0.074) -0.206 (0.033) -1.258 (0.262) -0.249 (0.049) 129.170 0.006 0.000 1.000 10
time_run quadratic shape -0.028 (0.019) 0.001 (0.011) -0.006 (0.009) -0.042 (0.067) -0.035 (0.009) 31.378 2.901 0.001 0.984 10
time_run indegree 0.03 (0.019) 0.015 (0.005) 0.002 (0.01) 0.414 (0.144) 0.01 (0.004) 1.247 43.596 1.000 0.000 10
time_run average alter 0.026 (0.076) -0.016 (0.064) 0.134 (0.072) 0.046 (0.159) 0.142 (0.04) 3.795 28.650 0.956 0.001 10
time_run: effect from gender 0.001 (0.11) 0.058 (0.078) -0.149 (0.059) 0 (NA) -0.023 (0.06) 14.343 5.217 0.073 0.734 8
time_run: effect from time_other 0 (0.025) 0.015 (0.014) 0.034 (0.014) -0.004 (0.051) 0.05 (0.016) 3.259 31.412 0.975 0.001 10
Note:
Estimates are given with standard errors in parentheses. All convergence t ratios <.10; overall maximum convergence ratio <.15.
a Some structural network effects were rather important for some clubs, but not for others; for the latter, we fixed these effects to 0 (SE=NA).
b We fixed gender effects on kudos tie formation and running volume dynamics to 0 in club 4. Variation between the genders was not sufficient for model convergence. Score–type tests indicated that gender effects were not significant.
c The Fisher Test combines independent p–values to test whether there is evidence in at least one of the clubs of a parameter being positive or negative.

Model 3 (avAttHigher)

Meta-analysis of parameter estimates for the objective function of kudos tie formation and running volume dynamics across 5 Strava clubs
Club 1 (N=30) Club 2 (N=62) Club 3 (N=162) Club 4 (N=13) Club 5 (N=77) Fminus Fplus pminus pplus df
constant kudonet rate (period 1) 1.472 (0.537) 5.65 (0.563) 4.504 (0.528) 0.853 (0.605) 5.886 (0.576) 0.172 313.866 1.000 0.000 10
constant kudonet rate (period 2) 1.446 (0.56) 6.095 (0.569) 3.106 (0.375) 0.455 (0.356) 5.228 (0.522) 0.222 318.186 1.000 0.000 10
constant kudonet rate (period 3) 0.581 (0.246) 6.1 (0.56) 3.435 (0.428) 1.099 (0.766) 6.116 (0.63) 0.175 310.944 1.000 0.000 10
constant kudonet rate (period 4) 0.656 (0.255) 4.226 (0.411) 8.158 (1.051) 0.545 (0.422) 4.948 (0.472) 0.217 310.463 1.000 0.000 10
constant kudonet rate (period 5) 0.316 (0.169) 5.07 (0.48) 7.457 (0.839) 0.671 (0.443) 5.898 (0.526) 0.197 348.495 1.000 0.000 10
constant kudonet rate (period 6) 1.142 (0.388) 5.066 (0.486) 4.871 (0.579) 1.03 (0.636) 7.148 (0.632) 0.112 345.450 1.000 0.000 10
constant kudonet rate (period 7) 0.722 (0.293) 5.764 (0.528) 5.656 (1.052) 2.964 (1.809) 5.456 (0.507) 0.118 298.405 1.000 0.000 10
constant kudonet rate (period 8) 1.896 (0.667) 5.663 (0.505) 10.271 (1.304) 0.962 (0.565) 5.667 (0.514) 0.095 347.076 1.000 0.000 10
constant kudonet rate (period 9) 0.522 (0.223) 4.902 (0.434) 7.15 (0.796) 4.034 (3.326) 6.653 (0.572) 0.258 376.575 1.000 0.000 10
constant kudonet rate (period 10) 2.17 (0.623) 3.41 (0.347) 5.423 (0.705) 0.403 (0.307) 6.443 (0.538) 0.200 339.657 1.000 0.000 10
constant kudonet rate (period 11) 2.548 (0.791) 4.969 (0.441) 11.713 (1.995) 1.857 (1.442) 6.937 (0.611) 0.209 328.656 1.000 0.000 10
outdegree (density) -6.366 (0.721) -6.86 (0.359) -4.784 (0.154) 3.613 (2.316) -3.937 (0.157) 2061.746 5.648 0.000 0.844 10
reciprocity 5.122 (0.462) 4.731 (0.254) 4.571 (0.14) 2.975 (0.567) 3.929 (0.172) 0.000 2119.444 1.000 0.000 10
GWESP I -> K -> J (69) 1.11 (0.284) 0.978 (0.122) 1.274 (0.076) 1.67 (0.525) 1.751 (0.096) 0.002 731.111 1.000 0.000 10
indegree - popularity (sqrt) 0.239 (0.249) 0.176 (0.041) 0.694 (0.06) -0.387 (0.693) -0.106 (0.032) 18.507 168.985 0.047 0.000 10
outdegree - popularity (sqrt) 0 (NA) 0 (NA) -0.506 (0.05) 0 (NA) 0 (NA) 108.145 0.000 0.000 1.000 2
outdegree - activity (sqrt) 0.595 (0.15) 0.769 (0.087) 0.24 (0.021) -2.106 (0.823) 0.066 (0.019) 10.502 261.461 0.398 0.000 10
rec.degree^(1/1) - activity 0 (NA) -0.09 (0.014) 0 (NA) 0 (NA) 0 (NA) 46.371 0.000 0.000 1.000 2
out-isolate 0 (NA) 0.726 (0.318) 2.829 (0.125) 5.794 (1.524) 0.958 (0.202) 0.023 575.026 1.000 0.000 8
gender alter 0.358 (0.306) 0.171 (0.071) -0.156 (0.06) 0 (NA) 0.144 (0.048) 11.019 27.105 0.201 0.001 8
gender ego -0.562 (0.345) 0.089 (0.07) -0.141 (0.065) 0 (NA) -0.144 (0.049) 27.124 4.719 0.001 0.787 8
same gender -0.323 (0.276) 0.2 (0.066) 0.075 (0.061) 0 (NA) 0.083 (0.045) 4.536 24.927 0.806 0.002 8
higher time_run 0.556 (0.448) -0.075 (0.068) 0.122 (0.069) -0.565 (0.826) -0.225 (0.063) 24.440 11.756 0.007 0.302 10
int. reciprocity x GWESP I -> K -> J (69) 0 (NA) -0.868 (0.156) -1.755 (0.114) 0 (NA) -1.264 (0.101) 445.485 0.000 0.000 1.000 6
rate time_run (period 1) 1.958 (0.639) 1.956 (0.435) 1.458 (0.201) 2.166 (1.249) 3.232 (0.733) 0.087 127.900 1.000 0.000 10
rate time_run (period 2) 2.427 (0.786) 2.604 (0.629) 1.843 (0.256) 1.887 (1.302) 3.577 (0.722) 0.155 128.326 1.000 0.000 10
rate time_run (period 3) 2.661 (0.863) 3.256 (0.755) 2.171 (0.298) 1.252 (0.753) 5.292 (1.142) 0.101 128.770 1.000 0.000 10
rate time_run (period 4) 1.487 (0.458) 2.004 (0.454) 2.111 (0.293) 2.765 (2.145) 2.014 (0.394) 0.209 133.094 1.000 0.000 10
rate time_run (period 5) 2.853 (0.986) 1.338 (0.299) 1.758 (0.244) 3.614 (2.13) 1.5 (0.294) 0.096 132.670 1.000 0.000 10
rate time_run (period 6) 4.398 (1.919) 3.316 (0.782) 1.83 (0.271) 0.907 (0.572) 2.713 (0.561) 0.138 117.431 1.000 0.000 10
rate time_run (period 7) 5.2 (2.324) 3.878 (1.054) 1.711 (0.245) 3.336 (2.047) 2.927 (0.662) 0.132 111.710 1.000 0.000 10
rate time_run (period 8) 1.283 (0.42) 3.713 (0.874) 1.761 (0.254) 5 (NA) 2.5 (0.476) 0.002 122.996 1.000 0.000 8
rate time_run (period 9) 1.021 (0.339) 3.217 (0.727) 1.904 (0.266) 1.718 (0.958) 5.612 (1.214) 0.077 127.612 1.000 0.000 10
rate time_run (period 10) 2.858 (0.972) 3.823 (0.966) 1.68 (0.237) 1.215 (0.687) 3.445 (0.708) 0.082 124.553 1.000 0.000 10
rate time_run (period 11) 1.938 (0.621) 2.95 (0.726) 1.694 (0.233) 2.266 (1.524) 2.371 (0.496) 0.144 127.392 1.000 0.000 10
time_run linear shape -0.285 (0.081) -0.466 (0.105) -0.282 (0.045) -1.345 (0.269) -0.38 (0.071) 150.195 0.000 0.000 1.000 10
time_run quadratic shape -0.008 (0.02) 0.029 (0.015) 0.016 (0.011) 0.01 (0.076) 0.006 (0.009) 4.090 17.687 0.943 0.060 10
time_run average attraction higher 3.517 (1.7) 4.078 (1.441) 4.854 (1.793) 2.856 (2.207) 6.075 (1.531) 0.256 56.505 1.000 0.000 10
time_run indegree 0.006 (0.022) 0.009 (0.005) -0.023 (0.016) 0.337 (0.148) 0 (0.005) 7.549 18.516 0.673 0.047 10
time_run: effect from gender 0.053 (0.111) 0.045 (0.077) -0.141 (0.06) 0 (NA) 0.01 (0.064) 11.769 6.515 0.162 0.590 8
time_run: effect from time_other -0.015 (0.026) 0.006 (0.014) 0.031 (0.014) -0.005 (0.049) 0.054 (0.016) 4.880 29.142 0.899 0.001 10
Note:
Estimates are given with standard errors in parentheses. All convergence t ratios <.10; overall maximum convergence ratio <.15.
a Some structural network effects were rather important for some clubs, but not for others; for the latter, we fixed these effects to 0 (SE=NA).
b We fixed gender effects on kudos tie formation and running volume dynamics to 0 in club 4. Variation between the genders was not sufficient for model convergence. Score–type tests indicated that gender effects were not significant.
c The Fisher Test combines independent p–values to test whether there is evidence in at least one of the clubs of a parameter being positive or negative.

Model 4 (avAttLower)

Meta-analysis of parameter estimates for the objective function of kudos tie formation and running volume dynamics across 5 Strava clubs
Club 1 (N=30) Club 2 (N=62) Club 3 (N=162) Club 4 (N=13) Club 5 (N=77) Fminus Fplus pminus pplus df
constant kudonet rate (period 1) 1.469 (0.541) 5.63 (0.547) 4.505 (0.544) 0.867 (0.645) 5.896 (0.585) 0.194 311.638 1.000 0.000 10
constant kudonet rate (period 2) 1.433 (0.516) 6.092 (0.57) 3.104 (0.434) 0.455 (0.353) 5.234 (0.545) 0.213 292.982 1.000 0.000 10
constant kudonet rate (period 3) 0.571 (0.251) 6.092 (0.544) 3.437 (0.441) 1.13 (0.738) 6.129 (0.617) 0.153 318.289 1.000 0.000 10
constant kudonet rate (period 4) 0.656 (0.266) 4.229 (0.411) 8.167 (1.094) 0.549 (0.454) 4.946 (0.475) 0.254 303.570 1.000 0.000 10
constant kudonet rate (period 5) 0.313 (0.17) 5.073 (0.474) 7.467 (0.873) 0.685 (0.453) 5.908 (0.53) 0.201 343.695 1.000 0.000 10
constant kudonet rate (period 6) 1.133 (0.369) 5.073 (0.453) 4.877 (0.621) 1.046 (0.637) 7.157 (0.668) 0.105 340.636 1.000 0.000 10
constant kudonet rate (period 7) 0.726 (0.3) 5.759 (0.526) 5.624 (0.733) 2.913 (1.664) 5.452 (0.519) 0.097 324.071 1.000 0.000 10
constant kudonet rate (period 8) 1.88 (0.628) 5.678 (0.512) 10.257 (1.241) 0.935 (0.593) 5.653 (0.502) 0.121 356.381 1.000 0.000 10
constant kudonet rate (period 9) 0.52 (0.207) 4.902 (0.431) 7.139 (0.785) 4.037 (3.312) 6.651 (0.574) 0.249 381.010 1.000 0.000 10
constant kudonet rate (period 10) 2.172 (0.642) 3.407 (0.334) 5.442 (0.754) 0.403 (0.306) 6.442 (0.537) 0.199 339.973 1.000 0.000 10
constant kudonet rate (period 11) 2.517 (0.76) 4.977 (0.44) 11.697 (1.705) 1.844 (1.394) 6.948 (0.581) 0.196 357.420 1.000 0.000 10
outdegree (density) -6.386 (0.726) -6.861 (0.362) -4.785 (0.152) 3.561 (2.341) -3.937 (0.154) 2114.675 5.494 0.000 0.856 10
reciprocity 5.11 (0.455) 4.72 (0.25) 4.577 (0.144) 2.997 (0.575) 3.926 (0.175) 0.000 2053.846 1.000 0.000 10
GWESP I -> K -> J (69) 1.103 (0.278) 0.978 (0.119) 1.275 (0.076) 1.663 (0.522) 1.75 (0.098) 0.002 724.644 1.000 0.000 10
indegree - popularity (sqrt) 0.25 (0.253) 0.176 (0.04) 0.697 (0.06) -0.395 (0.718) -0.109 (0.032) 19.199 169.222 0.038 0.000 10
outdegree - popularity (sqrt) 0 (NA) 0 (NA) -0.51 (0.052) 0 (NA) 0 (NA) 103.956 0.000 0.000 1.000 2
outdegree - activity (sqrt) 0.597 (0.149) 0.769 (0.089) 0.24 (0.021) -2.078 (0.83) 0.068 (0.019) 10.185 260.880 0.424 0.000 10
rec.degree^(1/1) - activity 0 (NA) -0.091 (0.015) 0 (NA) 0 (NA) 0 (NA) 43.483 0.000 0.000 1.000 2
out-isolate 0 (NA) 0.708 (0.321) 2.83 (0.121) 5.744 (1.54) 0.948 (0.205) 0.028 605.974 1.000 0.000 8
gender alter 0.358 (0.307) 0.172 (0.072) -0.155 (0.061) 0 (NA) 0.144 (0.048) 10.640 26.979 0.223 0.001 8
gender ego -0.547 (0.351) 0.088 (0.07) -0.142 (0.065) 0 (NA) -0.145 (0.049) 27.309 4.658 0.001 0.793 8
same gender -0.32 (0.274) 0.2 (0.066) 0.074 (0.061) 0 (NA) 0.083 (0.047) 4.547 24.501 0.805 0.002 8
higher time_run 0.561 (0.467) -0.074 (0.068) 0.119 (0.069) -0.592 (0.866) -0.227 (0.064) 24.126 11.497 0.007 0.320 10
int. reciprocity x GWESP I -> K -> J (69) 0 (NA) -0.861 (0.161) -1.755 (0.115) 0 (NA) -1.261 (0.103) 430.510 0.000 0.000 1.000 6
rate time_run (period 1) 1.889 (0.596) 1.888 (0.401) 1.45 (0.197) 1.884 (1.076) 3.097 (0.587) 0.083 140.865 1.000 0.000 10
rate time_run (period 2) 2.357 (0.749) 2.445 (0.519) 1.798 (0.265) 1.721 (1.098) 3.415 (0.728) 0.122 125.862 1.000 0.000 10
rate time_run (period 3) 2.61 (0.804) 3.003 (0.688) 2.153 (0.297) 1.17 (0.696) 4.854 (0.979) 0.096 133.156 1.000 0.000 10
rate time_run (period 4) 1.415 (0.45) 1.922 (0.425) 2.092 (0.299) 3.239 (2.654) 1.96 (0.382) 0.237 130.291 1.000 0.000 10
rate time_run (period 5) 2.589 (0.895) 1.305 (0.298) 1.764 (0.252) 2.974 (1.596) 1.512 (0.281) 0.067 132.647 1.000 0.000 10
rate time_run (period 6) 4.048 (1.588) 3.044 (0.676) 1.803 (0.265) 0.886 (0.553) 2.666 (0.492) 0.123 127.903 1.000 0.000 10
rate time_run (period 7) 4.823 (1.931) 3.542 (0.845) 1.665 (0.237) 4.366 (3.701) 2.788 (0.54) 0.266 123.823 1.000 0.000 10
rate time_run (period 8) 1.266 (0.407) 3.388 (0.787) 1.739 (0.245) 5 (NA) 2.467 (0.483) 0.002 124.748 1.000 0.000 8
rate time_run (period 9) 1.012 (0.327) 3.075 (0.725) 1.886 (0.261) 1.764 (1.028) 5.377 (1.161) 0.090 127.517 1.000 0.000 10
rate time_run (period 10) 2.736 (0.9) 3.521 (0.805) 1.661 (0.225) 1.075 (0.616) 3.292 (0.694) 0.085 131.892 1.000 0.000 10
rate time_run (period 11) 1.893 (0.576) 2.746 (0.596) 1.671 (0.229) 1.887 (1.082) 2.28 (0.475) 0.084 135.174 1.000 0.000 10
time_run linear shape -0.106 (0.078) -0.001 (0.132) -0.136 (0.039) -1.188 (0.271) 0.06 (0.058) 47.148 5.328 0.000 0.868 10
time_run quadratic shape 0.012 (0.024) 0.06 (0.031) 0.016 (0.012) 0.068 (0.077) 0.035 (0.013) 1.450 28.654 0.999 0.001 10
time_run average attraction lower 5.548 (2.246) 6.079 (3.042) 3.804 (1.924) 7.631 (3.469) 11.727 (2.597) 0.136 58.892 1.000 0.000 10
time_run indegree 0.069 (0.025) 0.02 (0.006) 0.035 (0.017) 0.586 (0.181) 0.031 (0.007) 0.047 77.986 1.000 0.000 10
time_run: effect from gender -0.071 (0.116) 0.062 (0.079) -0.17 (0.059) 0 (NA) -0.038 (0.062) 18.078 4.321 0.021 0.827 8
time_run: effect from time_other 0.006 (0.027) 0.019 (0.015) 0.034 (0.014) -0.002 (0.057) 0.045 (0.017) 2.731 29.042 0.987 0.001 10
Note:
Estimates are given with standard errors in parentheses. All convergence t ratios <.10; overall maximum convergence ratio <.15.
a Some structural network effects were rather important for some clubs, but not for others; for the latter, we fixed these effects to 0 (SE=NA).
b We fixed gender effects on kudos tie formation and running volume dynamics to 0 in club 4. Variation between the genders was not sufficient for model convergence. Score–type tests indicated that gender effects were not significant.
c The Fisher Test combines independent p–values to test whether there is evidence in at least one of the clubs of a parameter being positive or negative.

Model 5 (avAttHigher+Lower)

Meta-analysis of parameter estimates for the objective function of kudos tie formation and running volume dynamics across 5 Strava clubs
Club 1 (N=30) Club 2 (N=62) Club 3 (N=162) Club 4 (N=13) Club 5 (N=77) Fminus Fplus pminus pplus df
constant kudonet rate (period 1) 1.464 (0.548) 5.638 (0.549) 4.494 (0.537) 0.863 (0.62) 5.883 (0.589) 0.178 310.474 1.000 0.000 10
constant kudonet rate (period 2) 1.432 (0.604) 6.083 (0.609) 3.098 (0.387) 0.456 (0.352) 5.229 (0.561) 0.223 283.437 1.000 0.000 10
constant kudonet rate (period 3) 0.575 (0.254) 6.098 (0.563) 3.444 (0.441) 1.136 (0.738) 6.114 (0.636) 0.152 304.303 1.000 0.000 10
constant kudonet rate (period 4) 0.662 (0.262) 4.232 (0.402) 8.15 (0.991) 0.553 (0.451) 4.952 (0.493) 0.245 313.189 1.000 0.000 10
constant kudonet rate (period 5) 0.315 (0.169) 5.079 (0.467) 7.434 (0.783) 0.689 (0.449) 5.906 (0.542) 0.193 359.242 1.000 0.000 10
constant kudonet rate (period 6) 1.137 (0.404) 5.062 (0.468) 4.889 (0.574) 1.051 (0.646) 7.151 (0.658) 0.112 345.134 1.000 0.000 10
constant kudonet rate (period 7) 0.719 (0.303) 5.752 (0.541) 5.624 (0.745) 2.987 (1.773) 5.456 (0.511) 0.112 318.755 1.000 0.000 10
constant kudonet rate (period 8) 1.877 (0.601) 5.671 (0.512) 10.229 (1.227) 0.971 (0.598) 5.656 (0.504) 0.109 357.805 1.000 0.000 10
constant kudonet rate (period 9) 0.521 (0.222) 4.907 (0.438) 7.114 (0.85) 4.084 (3.691) 6.649 (0.597) 0.307 352.227 1.000 0.000 10
constant kudonet rate (period 10) 2.162 (0.659) 3.41 (0.333) 5.423 (0.733) 0.394 (0.308) 6.427 (0.538) 0.212 341.152 1.000 0.000 10
constant kudonet rate (period 11) 2.545 (0.776) 4.985 (0.436) 11.677 (1.666) 1.851 (1.351) 6.947 (0.585) 0.180 360.113 1.000 0.000 10
outdegree (density) -6.367 (0.749) -6.815 (0.358) -4.786 (0.152) 3.575 (2.325) -3.933 (0.16) 2061.847 5.559 0.000 0.851 10
reciprocity 5.116 (0.459) 4.715 (0.252) 4.578 (0.142) 3.004 (0.587) 3.923 (0.178) 0.000 2054.001 1.000 0.000 10
GWESP I -> K -> J (69) 1.111 (0.282) 0.973 (0.122) 1.274 (0.076) 1.667 (0.528) 1.752 (0.098) 0.002 722.513 1.000 0.000 10
indegree - popularity (sqrt) 0.243 (0.25) 0.176 (0.041) 0.696 (0.059) -0.406 (0.721) -0.108 (0.032) 18.919 171.756 0.041 0.000 10
outdegree - popularity (sqrt) 0 (NA) 0 (NA) -0.508 (0.05) 0 (NA) 0 (NA) 109.699 0.000 0.000 1.000 2
outdegree - activity (sqrt) 0.591 (0.156) 0.76 (0.086) 0.241 (0.02) -2.079 (0.832) 0.067 (0.019) 10.157 266.229 0.427 0.000 10
rec.degree^(1/1) - activity 0 (NA) -0.089 (0.014) 0 (NA) 0 (NA) 0 (NA) 45.859 0.000 0.000 1.000 2
out-isolate 0 (NA) 0.759 (0.329) 2.831 (0.12) 5.749 (1.549) 0.951 (0.208) 0.021 617.489 1.000 0.000 8
gender alter 0.362 (0.305) 0.17 (0.071) -0.156 (0.06) 0 (NA) 0.144 (0.048) 11.027 27.200 0.200 0.001 8
gender ego -0.557 (0.344) 0.086 (0.07) -0.142 (0.065) 0 (NA) -0.143 (0.05) 26.929 4.559 0.001 0.804 8
same gender -0.321 (0.274) 0.197 (0.067) 0.074 (0.061) 0 (NA) 0.083 (0.046) 4.536 24.149 0.806 0.002 8
higher time_run 0.568 (0.472) -0.077 (0.067) 0.119 (0.068) -0.591 (0.855) -0.228 (0.065) 24.064 11.578 0.007 0.314 10
int. reciprocity x GWESP I -> K -> J (69) 0 (NA) -0.872 (0.155) -1.758 (0.116) 0 (NA) -1.26 (0.105) 423.446 0.000 0.000 1.000 6
rate time_run (period 1) 1.94 (0.617) 1.96 (0.457) 1.468 (0.202) 1.761 (0.955) 3.233 (0.629) 0.068 134.793 1.000 0.000 10
rate time_run (period 2) 2.383 (0.752) 2.591 (0.616) 1.836 (0.267) 1.619 (0.969) 3.537 (0.703) 0.099 126.428 1.000 0.000 10
rate time_run (period 3) 2.669 (0.888) 3.249 (0.893) 2.183 (0.294) 1.1 (0.622) 5.24 (1.081) 0.081 127.216 1.000 0.000 10
rate time_run (period 4) 1.452 (0.476) 1.998 (0.488) 2.118 (0.314) 3.284 (2.928) 2.028 (0.406) 0.283 120.363 1.000 0.000 10
rate time_run (period 5) 2.723 (0.861) 1.335 (0.303) 1.773 (0.259) 2.83 (1.564) 1.53 (0.292) 0.073 130.546 1.000 0.000 10
rate time_run (period 6) 4.287 (1.696) 3.284 (0.73) 1.835 (0.257) 0.866 (0.53) 2.746 (0.609) 0.116 123.492 1.000 0.000 10
rate time_run (period 7) 4.979 (2.042) 3.866 (0.894) 1.704 (0.25) 4.491 (3.553) 2.926 (0.616) 0.232 117.747 1.000 0.000 10
rate time_run (period 8) 1.279 (0.436) 3.687 (0.862) 1.771 (0.236) 5 (NA) 2.526 (0.518) 0.003 127.034 1.000 0.000 8
rate time_run (period 9) 1.033 (0.327) 3.211 (0.794) 1.906 (0.259) 1.703 (1.038) 5.673 (1.248) 0.105 126.995 1.000 0.000 10
rate time_run (period 10) 2.811 (0.96) 3.793 (0.901) 1.681 (0.243) 1.014 (0.556) 3.45 (0.734) 0.073 122.959 1.000 0.000 10
rate time_run (period 11) 1.939 (0.646) 2.955 (0.789) 1.696 (0.241) 1.776 (0.961) 2.352 (0.466) 0.068 124.488 1.000 0.000 10
time_run linear shape -0.171 (0.098) -0.389 (0.276) -0.235 (0.071) -1.146 (0.277) -0.137 (0.122) 52.753 0.528 0.000 1.000 10
time_run quadratic shape 0.016 (0.024) 0.04 (0.036) 0.023 (0.013) 0.056 (0.095) 0.033 (0.013) 1.601 26.483 0.999 0.003 10
time_run average attraction higher 1.992 (1.826) 3.713 (1.995) 3.853 (2.179) -2.233 (5.317) 3.657 (1.925) 2.671 25.326 0.988 0.005 10
time_run average attraction lower 4.427 (2.37) 1.375 (4.287) 1.962 (2.287) 10.292 (7.577) 7.994 (3.222) 1.631 27.124 0.998 0.002 10
time_run indegree 0.047 (0.032) 0.01 (0.007) -0.003 (0.03) 0.733 (0.471) 0.018 (0.009) 2.041 24.373 0.996 0.007 10
time_run: effect from gender -0.028 (0.121) 0.046 (0.077) -0.148 (0.06) 0 (NA) 0.004 (0.064) 13.741 5.158 0.089 0.741 8
time_run: effect from time_other -0.003 (0.027) 0.008 (0.015) 0.032 (0.014) -0.003 (0.065) 0.047 (0.016) 3.790 26.656 0.956 0.003 10
Note:
Estimates are given with standard errors in parentheses. All convergence t ratios <.10; overall maximum convergence ratio <.15.
a Some structural network effects were rather important for some clubs, but not for others; for the latter, we fixed these effects to 0 (SE=NA).
b We fixed gender effects on kudos tie formation and running volume dynamics to 0 in club 4. Variation between the genders was not sufficient for model convergence. Score–type tests indicated that gender effects were not significant.
c The Fisher Test combines independent p–values to test whether there is evidence in at least one of the clubs of a parameter being positive or negative.


additional check: are results driven by club 5?

we note that club 5 displayed the most significant influence effects. Following the suggestion of an anonymous reviewer, we checked the robustness of our aggregate findings by excluding this club from our summary of estimates.

and the Fisher results excluding club 5:

Meta-analysis of parameter estimates for the objective function of kudos tie formation and running volume dynamics, excluding club 5
Club 1 (N=27) Club 2 (N=58) Club 3 (N=159) Club 4 (N=9) Fminus pminus Fplus pplus df
constant kudonet rate (period 1) 1.599 (0.576) 5.585 (0.539) 4.718 (0.612) 1.095 (0.852) 0.215 1.000 195.746 0.000 8
constant kudonet rate (period 2) 1.404 (0.505) 6.058 (0.57) 3.235 (0.395) 0.518 (0.409) 0.222 1.000 209.163 0.000 8
constant kudonet rate (period 3) 0.58 (0.243) 6.078 (0.527) 3.509 (0.447) 1.177 (0.747) 0.136 1.000 222.896 0.000 8
constant kudonet rate (period 4) 0.679 (0.262) 4.226 (0.42) 8.409 (0.968) 0.561 (0.483) 0.271 1.000 204.303 0.000 8
constant kudonet rate (period 5) 0.323 (0.178) 5.056 (0.458) 7.503 (0.809) 0.761 (0.526) 0.225 1.000 232.742 0.000 8
constant kudonet rate (period 6) 1.113 (0.369) 5.061 (0.47) 4.865 (0.634) 1.035 (0.635) 0.108 1.000 206.582 0.000 8
constant kudonet rate (period 7) 0.701 (0.29) 5.706 (0.531) 5.611 (0.728) 2.701 (1.494) 0.088 1.000 203.786 0.000 8
constant kudonet rate (period 8) 1.731 (0.543) 5.64 (0.485) 10.018 (1.301) 1.048 (0.63) 0.100 1.000 227.672 0.000 8
constant kudonet rate (period 9) 0.518 (0.216) 4.878 (0.434) 6.89 (0.81) 3.25 (2.161) 0.154 1.000 226.464 0.000 8
constant kudonet rate (period 10) 2.099 (0.619) 3.4 (0.333) 5.287 (0.733) 0.397 (0.302) 0.200 1.000 189.239 0.000 8
constant kudonet rate (period 11) 1.703 (0.52) 4.92 (0.439) 11.344 (2.063) 1.772 (1.231) 0.157 1.000 188.126 0.000 8
outdegree (density) -6.406 (1.119) -7.109 (0.385) -4.942 (0.185) 1.508 (2.949) 1111.089 0.000 2.378 0.967 8
reciprocity 5.264 (0.542) 4.433 (0.263) 4.441 (0.139) 2.698 (0.698) 0.000 1.000 1439.855 0.000 8
GWESP I -> K -> J (69) 1.182 (0.316) 0.863 (0.131) 1.255 (0.077) 1.97 (0.569) 0.001 1.000 358.998 0.000 8
indegree - popularity (sqrt) 0.229 (0.281) 0.173 (0.042) 0.684 (0.059) -1.043 (0.971) 4.380 0.821 168.333 0.000 8
outdegree - popularity (sqrt) 0 (NA) 0 (NA) -0.517 (0.049) 0 (NA) 119.815 0.000 0.000 1.000 2
outdegree - activity (sqrt) 0.643 (0.172) 0.794 (0.093) 0.242 (0.02) -1.436 (0.829) 6.363 0.607 244.602 0.000 8
rec.degree^(1/1) - activity 0 (NA) -0.094 (0.015) 0 (NA) 0 (NA) 44.124 0.000 0.000 1.000 2
out-isolate 0 (NA) 0.394 (0.35) 2.553 (0.125) 3.411 (1.855) 0.347 0.999 435.011 0.000 6
gender alter 0.293 (0.331) 0.168 (0.072) -0.143 (0.062) 0 (NA) 9.472 0.149 12.630 0.049 6
gender ego -0.399 (0.369) 0.085 (0.072) -0.117 (0.066) 0 (NA) 10.790 0.095 4.649 0.589 6
same gender -0.466 (0.297) 0.196 (0.068) 0.066 (0.061) 0 (NA) 5.985 0.425 16.393 0.012 6
time_run alter -0.27 (0.251) 0.113 (0.035) 0.101 (0.036) 0.624 (0.65) 4.282 0.831 30.556 0.000 8
time_run ego -0.241 (0.247) -0.121 (0.034) -0.022 (0.036) -0.619 (0.58) 27.009 0.001 1.312 0.995 8
time_run similarity -2.24 (1.096) -0.089 (0.134) 0.186 (0.153) -1.593 (1.731) 14.204 0.077 5.386 0.716 8
higher time_run 0.464 (1.419) 0.643 (0.219) 0.482 (0.203) 2.084 (2.752) 1.459 0.993 27.251 0.001 8
int. reciprocity x GWESP I -> K -> J (69) 0 (NA) -0.656 (0.17) -1.622 (0.117) 0 (NA) 219.706 0.000 0.000 1.000 4
rate time_run (period 1) 1.696 (0.628) 2.266 (0.543) 1.702 (0.279) 2.654 (1.911) 0.179 1.000 81.277 0.000 8
rate time_run (period 2) 3.296 (1.277) 2.938 (0.695) 2.295 (0.383) 3.363 (3.952) 0.450 1.000 77.929 0.000 8
rate time_run (period 3) 3.256 (1.067) 2.815 (0.728) 2.655 (0.407) 1.175 (0.666) 0.082 1.000 87.938 0.000 8
rate time_run (period 4) 1.77 (0.605) 2.176 (0.52) 2.212 (0.359) 64.447 (195.111) 0.003 1.000 78.396 0.000 6
rate time_run (period 5) 3.609 (1.546) 1.439 (0.327) 2.019 (0.285) 5.168 (4.258) 0.258 1.000 93.954 0.000 8
rate time_run (period 6) 4.764 (2.165) 3.225 (0.768) 1.973 (0.293) 1.07 (0.676) 0.145 1.000 87.766 0.000 8
rate time_run (period 7) 6.068 (2.762) 4.108 (1.085) 1.88 (0.281) 12.448 (40.451) 0.982 0.998 79.784 0.000 8
rate time_run (period 8) 1.408 (0.455) 3.951 (0.979) 1.852 (0.264) 1.29 (0.746) 0.088 1.000 96.343 0.000 8
rate time_run (period 9) 1.134 (0.385) 3.449 (0.93) 1.995 (0.287) 1.868 (1.07) 0.086 1.000 91.523 0.000 8
rate time_run (period 10) 3.312 (1.2) 3.946 (1.083) 1.668 (0.241) 0.938 (0.486) 0.060 1.000 90.427 0.000 8
rate time_run (period 11) 1.54 (0.502) 2.881 (0.725) 1.75 (0.24) 1.627 (0.815) 0.049 1.000 100.475 0.000 8
time_run linear shape -0.056 (0.099) -0.212 (0.298) -0.128 (0.078) 1.21 (2.159) 12.070 0.148 3.811 0.874 8
time_run quadratic shape -0.033 (0.025) 0.013 (0.033) -0.008 (0.013) -0.391 (0.459) 11.635 0.168 3.353 0.910 8
time_run average attraction higher 0.275 (1.775) 1.692 (2.201) 1.882 (2.086) -17.83 (21.101) 5.287 0.726 8.503 0.386 8
time_run average attraction lower 3.45 (2.108) 1.358 (4.112) 1.768 (2.176) 16.374 (16.305) 1.840 0.986 14.775 0.064 8
time_run indegree 0.041 (0.029) 0.011 (0.007) 0.004 (0.027) 0.753 (0.684) 1.763 0.987 16.337 0.038 8
time_run: effect from gender -0.073 (0.116) 0.031 (0.075) -0.201 (0.059) 0 (NA) 19.276 0.004 2.770 0.837 6
time_run: effect from time_other -0.02 (0.026) 0.002 (0.014) 0.013 (0.013) -0.074 (0.102) 7.469 0.487 6.292 0.615 8
Note:
Estimates are given with standard errors in parentheses. All convergence t ratios <.10; overall maximum convergence ratio <.15.
a Some structural network effects were rather important for some clubs, but not for others; for the latter, we fixed these effects to 0 (SE=NA).
b We fixed gender effects on kudos tie formation and running frequency dynamics to 0 in club 4. Variation between the genders was not sufficient for model convergence. Score–type tests indicated that gender effects were not significant.
c The Fisher Test combines independent p–values to test whether there is evidence in at least one of the clubs of a parameter being positive or negative.

Model 6 (avSim)

Meta-analysis of parameter estimates for the objective function of kudos tie formation and running volume dynamics across 5 Strava clubs
Club 1 (N=30) Club 2 (N=62) Club 3 (N=162) Club 4 (N=13) Club 5 (N=77) Fminus Fplus pminus pplus df
constant kudonet rate (period 1) 1.464 (0.549) 5.633 (0.553) 4.501 (0.544) 0.863 (0.625) 5.889 (0.587) 0.182 307.881 1.000 0.000 10
constant kudonet rate (period 2) 1.447 (0.539) 6.081 (0.587) 3.095 (0.42) 0.456 (0.355) 5.236 (0.505) 0.217 304.167 1.000 0.000 10
constant kudonet rate (period 3) 0.566 (0.245) 6.093 (0.557) 3.435 (0.417) 1.124 (0.787) 6.118 (0.582) 0.180 331.964 1.000 0.000 10
constant kudonet rate (period 4) 0.655 (0.27) 4.233 (0.414) 8.167 (0.998) 0.548 (0.451) 4.947 (0.469) 0.254 316.231 1.000 0.000 10
constant kudonet rate (period 5) 0.318 (0.164) 5.072 (0.473) 7.445 (0.889) 0.673 (0.464) 5.888 (0.551) 0.206 331.000 1.000 0.000 10
constant kudonet rate (period 6) 1.137 (0.389) 5.065 (0.468) 4.886 (0.608) 1.049 (0.652) 7.142 (0.674) 0.114 332.083 1.000 0.000 10
constant kudonet rate (period 7) 0.724 (0.296) 5.747 (0.537) 5.637 (0.839) 2.948 (2.112) 5.453 (0.508) 0.184 309.021 1.000 0.000 10
constant kudonet rate (period 8) 1.88 (0.634) 5.67 (0.492) 10.26 (1.165) 0.966 (0.575) 5.653 (0.516) 0.098 369.125 1.000 0.000 10
constant kudonet rate (period 9) 0.52 (0.216) 4.912 (0.465) 7.155 (0.772) 4.023 (3.083) 6.648 (0.55) 0.218 377.408 1.000 0.000 10
constant kudonet rate (period 10) 2.176 (0.641) 3.412 (0.33) 5.432 (0.786) 0.397 (0.298) 6.45 (0.55) 0.192 331.505 1.000 0.000 10
constant kudonet rate (period 11) 2.553 (0.82) 4.977 (0.438) 11.697 (2.235) 1.873 (1.319) 6.949 (0.607) 0.164 325.037 1.000 0.000 10
outdegree (density) -6.37 (0.74) -6.859 (0.361) -4.782 (0.153) 3.622 (2.376) -3.931 (0.157) 2068.711 5.507 0.000 0.855 10
reciprocity 5.12 (0.442) 4.725 (0.252) 4.573 (0.143) 2.978 (0.584) 3.924 (0.174) 0.000 2079.984 1.000 0.000 10
GWESP I -> K -> J (69) 1.109 (0.286) 0.974 (0.119) 1.273 (0.076) 1.673 (0.526) 1.746 (0.098) 0.002 719.534 1.000 0.000 10
indegree - popularity (sqrt) 0.242 (0.253) 0.177 (0.04) 0.696 (0.059) -0.388 (0.706) -0.106 (0.031) 18.710 172.499 0.044 0.000 10
outdegree - popularity (sqrt) 0 (NA) 0 (NA) -0.508 (0.05) 0 (NA) 0 (NA) 109.875 0.000 0.000 1.000 2
outdegree - activity (sqrt) 0.595 (0.153) 0.769 (0.088) 0.24 (0.021) -2.11 (0.842) 0.067 (0.019) 10.190 260.079 0.424 0.000 10
rec.degree^(1/1) - activity 0 (NA) -0.09 (0.014) 0 (NA) 0 (NA) 0 (NA) 44.978 0.000 0.000 1.000 2
out-isolate 0 (NA) 0.727 (0.323) 2.833 (0.118) 5.797 (1.546) 0.963 (0.204) 0.025 639.285 1.000 0.000 8
gender alter 0.36 (0.304) 0.172 (0.071) -0.155 (0.062) 0 (NA) 0.143 (0.049) 10.507 26.686 0.231 0.001 8
gender ego -0.558 (0.35) 0.088 (0.07) -0.142 (0.063) 0 (NA) -0.144 (0.049) 27.506 4.628 0.001 0.797 8
same gender -0.321 (0.272) 0.2 (0.066) 0.074 (0.06) 0 (NA) 0.083 (0.046) 4.558 24.797 0.804 0.002 8
higher time_run 0.555 (0.465) -0.076 (0.068) 0.121 (0.068) -0.564 (0.829) -0.227 (0.062) 25.026 11.643 0.005 0.310 10
int. reciprocity x GWESP I -> K -> J (69) 0 (NA) -0.866 (0.161) -1.755 (0.115) 0 (NA) -1.26 (0.103) 431.955 0.000 0.000 1.000 6
rate time_run (period 1) 1.97 (0.647) 1.946 (0.445) 1.473 (0.209) 2.138 (1.31) 3.27 (0.642) 0.108 130.190 1.000 0.000 10
rate time_run (period 2) 2.405 (0.793) 2.575 (0.602) 1.837 (0.256) 1.837 (1.317) 3.575 (0.709) 0.173 129.329 1.000 0.000 10
rate time_run (period 3) 2.703 (0.88) 3.205 (0.814) 2.181 (0.308) 1.248 (0.739) 5.321 (1.175) 0.096 121.470 1.000 0.000 10
rate time_run (period 4) 1.474 (0.491) 1.992 (0.468) 2.118 (0.314) 2.938 (1.985) 2.043 (0.416) 0.147 121.936 1.000 0.000 10
rate time_run (period 5) 2.769 (0.857) 1.335 (0.301) 1.779 (0.252) 3.301 (1.7) 1.527 (0.301) 0.054 133.187 1.000 0.000 10
rate time_run (period 6) 4.418 (2.132) 3.257 (0.766) 1.829 (0.245) 0.896 (0.591) 2.766 (0.549) 0.173 128.590 1.000 0.000 10
rate time_run (period 7) 5.155 (2.106) 3.778 (0.937) 1.693 (0.249) 3.774 (2.859) 2.943 (0.571) 0.211 119.182 1.000 0.000 10
rate time_run (period 8) 1.283 (0.418) 3.629 (0.913) 1.756 (0.241) 5 (NA) 2.54 (0.495) 0.002 124.531 1.000 0.000 8
rate time_run (period 9) 1.029 (0.344) 3.189 (0.76) 1.902 (0.274) 1.759 (1.079) 5.704 (1.249) 0.108 121.377 1.000 0.000 10
rate time_run (period 10) 2.833 (1.042) 3.737 (0.951) 1.679 (0.231) 1.187 (0.656) 3.46 (0.773) 0.078 121.784 1.000 0.000 10
rate time_run (period 11) 1.953 (0.651) 2.923 (0.715) 1.691 (0.228) 2.095 (1.334) 2.368 (0.454) 0.123 133.763 1.000 0.000 10
time_run linear shape -0.219 (0.07) -0.284 (0.064) -0.204 (0.032) -1.287 (0.259) -0.242 (0.045) 148.293 0.002 0.000 1.000 10
time_run quadratic shape 0.012 (0.023) 0.051 (0.02) 0.024 (0.012) 0.049 (0.079) 0.026 (0.011) 1.404 32.512 0.999 0.000 10
time_run average similarity 3.029 (1.135) 3.009 (1.016) 2.986 (0.997) 2.634 (1.351) 5.107 (0.997) 0.065 76.075 1.000 0.000 10
time_run indegree 0.029 (0.018) 0.012 (0.005) 0.01 (0.01) 0.386 (0.136) 0.01 (0.004) 0.473 43.492 1.000 0.000 10
time_run: effect from gender 0.005 (0.111) 0.049 (0.077) -0.154 (0.06) 0 (NA) 0.016 (0.064) 13.471 5.934 0.097 0.655 8
time_run: effect from time_other -0.009 (0.026) 0.01 (0.014) 0.032 (0.014) -0.002 (0.054) 0.05 (0.016) 3.980 28.870 0.948 0.001 10
Note:
Estimates are given with standard errors in parentheses. All convergence t ratios <.10; overall maximum convergence ratio <.15.
a Some structural network effects were rather important for some clubs, but not for others; for the latter, we fixed these effects to 0 (SE=NA).
b We fixed gender effects on kudos tie formation and running volume dynamics to 0 in club 4. Variation between the genders was not sufficient for model convergence. Score–type tests indicated that gender effects were not significant.
c The Fisher Test combines independent p-values to test whether there is evidence in at least one of the clubs of a parameter being positive or negative


LS0tDQp0aXRsZTogIk1ldGEtYW5hbHlzaXMiDQpkYXRlOiAiTGFzdCBjb21waWxlZCBvbiBgciBmb3JtYXQoU3lzLnRpbWUoKSwgJyVCLCAlWScpYCINCmJpYmxpb2dyYXBoeTogcmVmZXJlbmNlcy5iaWINCm91dHB1dDoNCiAgaHRtbF9kb2N1bWVudDoNCiAgICBjc3M6IHR3ZWFrcy5jc3MNCiAgICB0b2M6IG5vDQogICAgdG9jX2Zsb2F0OiBubw0KICAgIGNvbGxhcHNlZDogZmFsc2UNCiAgICBudW1iZXJfc2VjdGlvbnM6IGZhbHNlDQogICAgdG9jX2RlcHRoOiAxDQogICAgY29kZV9mb2xkaW5nOiBzaG93DQogICAgY29kZV9kb3dubG9hZDogeWVzDQotLS0NCg0KPCEtLQ0KQFJGIERpdCBzY3JpcHQgbm9nIGFhbnBhc3NlbiBvYnYgbWV0YS5SbWQgKGZyZXEuIG1vZGVscykNCi0tPg0KDQoNCg0KYGBge3IsIGdsb2JhbHNldHRpbmdzLCBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCByZXN1bHRzPSdoaWRlJ30NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkNCm9wdHNfY2h1bmskc2V0KHRpZHkub3B0cz1saXN0KHdpZHRoLmN1dG9mZj0xMDApLHRpZHk9VFJVRSwgd2FybmluZyA9IEZBTFNFLCBtZXNzYWdlID0gRkFMU0UsY29tbWVudCA9ICIjPiIsIGNhY2hlPVRSVUUsIGNsYXNzLnNvdXJjZT1jKCJ0ZXN0IiksIGNsYXNzLm91dHB1dD1jKCJ0ZXN0MiIpKQ0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkNCnJnbDo6c2V0dXBLbml0cigpDQoNCmNvbG9yaXplIDwtIGZ1bmN0aW9uKHgsIGNvbG9yKSB7c3ByaW50ZigiPHNwYW4gc3R5bGU9J2NvbG9yOiAlczsnPiVzPC9zcGFuPiIsIGNvbG9yLCB4KSB9DQoNCmBgYA0KDQpgYGB7ciBrbGlwcHksIGVjaG89RkFMU0UsIGluY2x1ZGU9VFJVRX0NCmtsaXBweTo6a2xpcHB5KHBvc2l0aW9uID0gYygndG9wJywgJ3JpZ2h0JykpDQoja2xpcHB5OjprbGlwcHkoY29sb3IgPSAnZGFya3JlZCcpDQoja2xpcHB5OjprbGlwcHkodG9vbHRpcF9tZXNzYWdlID0gJ0NsaWNrIHRvIGNvcHknLCB0b29sdGlwX3N1Y2Nlc3MgPSAnRG9uZScpDQpgYGANCg0KDQotLS0tDQoNCiMjICBNZXRhLWFuYWx5c2lzIG9mIHJ1bm5pbmcgdm9sdW1lIG1vZGVscw0KDQojIGdldHRpbmcgc3RhcnRlZA0KDQojIyBjbGVhbiB1cA0KYGBge3IsIHJlc3VsdHM9J2hpZGUnfQ0KIyBlbXB0eSBlbnZpcm9ubWVudA0Kcm0obGlzdD1scygpKQ0KIyBmcmVlIHVwIG1lbW9yeQ0KI2djKCkNCmBgYA0KDQoNCiMjIGdlbmVyYWwgY3VzdG9tIGZ1bmN0aW9ucw0KDQotIGBmcGFja2FnZS5jaGVja2A6IENoZWNrIGlmIHBhY2thZ2VzIGFyZSBpbnN0YWxsZWQgKGFuZCBpbnN0YWxsIGlmIG5vdCkgaW4gUiAoW3NvdXJjZV0oaHR0cHM6Ly92YmFsaWdhLmdpdGh1Yi5pby92ZXJpZnktdGhhdC1yLXBhY2thZ2VzLWFyZS1pbnN0YWxsZWQtYW5kLWxvYWRlZC8pKQ0KLSBgZmxvYWQuUmA6IGZ1bmN0aW9uIHRvIGxvYWQgUi1vYmplY3RzIHVuZGVyIG5ldyBuYW1lcy4NCg0KYGBge3IsIHJlc3VsdHM9J2hpZGUnfQ0KDQpmcGFja2FnZS5jaGVjayA8LSBmdW5jdGlvbihwYWNrYWdlcykgew0KICAgIGxhcHBseShwYWNrYWdlcywgRlVOID0gZnVuY3Rpb24oeCkgew0KICAgICAgICBpZiAoIXJlcXVpcmUoeCwgY2hhcmFjdGVyLm9ubHkgPSBUUlVFKSkgew0KICAgICAgICAgICAgaW5zdGFsbC5wYWNrYWdlcyh4LCBkZXBlbmRlbmNpZXMgPSBUUlVFKQ0KICAgICAgICAgICAgbGlicmFyeSh4LCBjaGFyYWN0ZXIub25seSA9IFRSVUUpDQogICAgICAgIH0NCiAgICB9KQ0KfQ0KDQpmbG9hZC5SICA8LSBmdW5jdGlvbihmaWxlTmFtZSl7DQogIGxvYWQoZmlsZU5hbWUpDQogIGdldChscygpW2xzKCkgIT0gImZpbGVOYW1lIl0pDQp9DQoNCmNvbG9yaXplIDwtIGZ1bmN0aW9uKHgsIGNvbG9yKSB7c3ByaW50ZigiPHNwYW4gc3R5bGU9J2NvbG9yOiAlczsnPiVzPC9zcGFuPiIsIGNvbG9yLCB4KSB9DQoNCmBgYA0KDQo8YnI+DQoNCiMjIG5lY2Vzc2FyeSBwYWNrYWdlcw0KDQotIGBSU2llbmFgOiBmb3IgbWV0YS1hbmFseXNpcyBpbiBzaWVuYTA4DQotIGBrbml0cmA6IGdlbmVyYXRpbmcgdGFibGVzDQotIGBrYWJsZUV4dHJhYDogZXh0ZW5kIGBrbml0cmAnIHRhYmxlIGZ1bmN0aW9uYWxpdHkNCi0gYGRwbHlyYDogZGF0YSBtYW5pcHVsYXRpb24NCg0KDQpgYGB7ciwgcmVzdWx0cz0naGlkZSd9DQpwYWNrYWdlcyA9IGMoIlJTaWVuYSIsICJrbml0ciIsICJrYWJsZUV4dHJhIiwgImRwbHlyIikNCmZwYWNrYWdlLmNoZWNrKHBhY2thZ2VzKQ0Kcm0ocGFja2FnZXMpDQpgYGANCg0KPGJyPg0KDQojIEVzdGltYXRpb24NCg0KRG93biBiZWxvdywgd2UgZXN0aW1hdGUgdGhlIHNhbWUgbW9kZWxzIHdpdGggcnVubmluZyB2b2x1bWUgYXMgdGhlIGRlcGVuZGVudCB2YXJpYWJsZSwgZm9yIGNsdWJzIDEtNSwgbW9kZWxzIDEtNi4NCg0KYGBge3IgZXZhbD1GfQ0KbG9hZCgiY2x1YmRhdGFfcnNpZW5hX3ZvbC5SRGF0YSIpICMgbG9hZCB0aGUgbGlzdCBjb250YWluaW5nIHJzaWVuYSBvYmplY3RzLg0KDQpmb3IgKGkgaW4gMTpjKSB7ICMgZm9yIGV2ZXJ5IGNsdWINCg0KICAjIHdlIHRha2UgdGhlIHJzaWVuYSBvYmplY3QgZnJvbSB0aGUgbGlzdA0KICBteWRhdGEgPC0gY2x1YmRhdGFfcnNpZW5hX3ZvbFtbaV1dDQogIA0KICAjIGFuZCB0aGUgbGlzdCBjb250YWluaW5nIG15ZWZmIG9iamVjdHMNCiAgbG9hZChmaWxlPXBhc3RlKCJ0ZXN0IiwgIi8iLCAibXllZmYiLCAiLyIsICJ2b2x1bWUiLCAiLyIsICJteWVmZl9jbHViIiwgaSwgIi5SRGF0YSIsIHNlcCA9ICIiKSkgDQoNCiAgIyB3ZSBtYWtlIGEgbGlzdCBmb3Igc3RvcmluZyB0aGUgUlNpZW5hIGZpdCBvYmplY3RzDQogIHNpZW5hRml0IDwtIGxpc3QoKQ0KDQogICMgZm9yIGNsdWIgaSB3ZSBydW4gbW9kZWxzIGogaW4gMTptDQogIGZvciAoaiBpbiAxOm0pIHsNCiANCiAgICAjIHdlIGVzdGltYXRlIHRoZSBtb2RlbA0KICAgIHRyeSA8LSAxDQogICAgcHJpbnQocGFzdGUoIkVzdGltYXRpbmcgbW9kZWwgIiwgaiwgIiBmb3IgY2x1YiAiLCBpLCBzZXA9IiIpKQ0KICAgIHNpZW5hRml0W1tqXV0gPC0gc2llbmEwNyhteWFsZ29yaXRobSwgZGF0YSA9IG15ZGF0YSwgZWZmZWN0cyA9IG15ZWZmW1tqXV0sIHJldHVybkRlcHM9VFJVRSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlQ2x1c3Rlcj1UUlVFLCBuYnJOb2Rlcz0xMCwgaW5pdEM9VFJVRSwgYmF0Y2g9VFJVRSkgIyBzdG9yZSBpdCBpbiB0aGUgbGlzdA0KICAgIA0KICAgICMgcmUtcnVuIHVudGlsIHdlIHJlYWNoIGFkZXF1YXRlIGNvbnZlcmdlbmNlIA0KICAgIHdoaWxlIChUUlVFKXsNCiAgICAgIGlmKHNpZW5hRml0W1tqXV0kdGNvbnYubWF4ID49IC4yNSl7DQogICAgICAgIHRyeSA8LSB0cnkgKyAxDQogICAgICAgIGlmICh0cnk+MzApIHsgIyB3aXRoIGF0IG1heCAzMCBydW5zLg0KICAgICAgICAgIHByaW50KHBhc3RlKCJOb3cgaXQgbGFzdGVkIHRvIGxvbmchIikgDQogICAgICAgICAgYnJlYWsgICAgICANCiAgICAgICAgfQ0KICAgICAgICBwcmludChwYXN0ZSgiTW9kZWwgZGlkIG5vdCBjb252ZXJnZSBhZGVxdWF0ZWx5ICgiLCBzaWVuYUZpdFtbal1dJHRjb252Lm1heCwgIik7ICIsICJSZXBlYXQgdGhlIGVzdGltYXRpb24gKCIsICJ0cnkgIiwgdHJ5LCAiKSIsIHNlcCA9ICIiKSkNCiAgICAgICAgc2llbmFGaXRbW2pdXSA8LSBzaWVuYTA3KCBteWFsZ29yaXRobSwgZGF0YSA9IG15ZGF0YSwgZWZmZWN0cyA9IG15ZWZmW1tqXV0sIHByZXZBbnM9IHNpZW5hRml0W1tqXV0sIHJldHVybkRlcHM9VFJVRSwgdXNlQ2x1c3Rlcj1UUlVFLCBuYnJOb2Rlcz0xMCwgaW5pdEM9VFJVRSwgYmF0Y2g9VFJVRSkNCiAgICAgIH1lbHNlew0KICAgICAgICBwcmludChwYXN0ZSgiUmVhY2hlZCBvdmVyYWxsIG1heGltdW0gY29udmVyZ2VuY2UgcmF0aW8gb2Y6ICIsIHNpZW5hRml0W1tqXV0kdGNvbnYubWF4LCBzZXAgPSAiIikpDQogICAgICAgIHByaW50KCIiKQ0KICAgICAgICBicmVhaw0KICAgICAgfQ0KICAgIH0NCiAgICANCiAgfQ0KICAjIGFuZCBzYXZlIHRoZSBsaXN0IHdpdGggUlNpZW5hIGZpdCBvYmplY3RzDQogIHNhdmUoc2llbmFGaXQsIGZpbGU9cGFzdGUoInRlc3QiLCAiLyIsICJzaWVuYUZpdCIsICIvIiwgInZvbHVtZSIsICIvIiwgInNpZW5hRml0X2NsdWIiLCBpLCAiLlJEYXRhIiwgc2VwID0gIiIpKQ0KICBwcmludChwYXN0ZSgiQWxsIG1vZGVscyBhcmUgZXN0aW1hdGVkIGZvciBjbHViICIsIGksICIuIE1vZGVsIHJlc3VsdHMgYXJlIHN0b3JlZCBpbiBzaWVuYUZpdC92b2x1bWUvc2llbmFGaXRfY2x1YiIsIGksICIuUkRhdGEiLCBzZXA9IiIpKQ0KICBwcmludCgiIikNCiAgaWZlbHNlKGk8YywgcHJpbnQocGFzdGUoIkNvbnRpbnVpbmcgd2l0aCBjbHViICIsIGkrMSwgc2VwPSIiKSksIHByaW50KCJFc3RpbWF0aW9uIGZpbmlzaGVkISIpKQ0KICANCn0NCg0Kc2llbmFGaXRfY2x1YkwgPC0gbGlzdCgpDQoNCmZvciAoaSBpbiAxOjUpIHsNCiAgdGVtcC5zcGFjZSA8LSBuZXcuZW52KCkNCiAgYmFyIDwtIGxvYWQocGFzdGUoInRlc3Qvc2llbmFGaXQvdm9sdW1lL3NpZW5hRml0X2NsdWIiLCBpLCAiLlJEYXRhIiwgc2VwPSIiKSwgdGVtcC5zcGFjZSkNCiAgc2llbmFGaXRfY2x1YkxbW2ldXSA8LSBnZXQoYmFyLCB0ZW1wLnNwYWNlKQ0KICBybSh0ZW1wLnNwYWNlKQ0KfQ0KDQpsYXBwbHkoc2llbmFGaXRfY2x1YkwsICdbWycsIDUpDQptYXAoc2llbmFGaXRfY2x1YkwsIDYpDQoNCmBgYA0KDQotLS0tDQoNCjxicj4NCg0KDQojIE1ldGEtYW5hbHlzaXMNCg0KQWdhaW4sIHRvIHN1bW1hcml6ZSB0aGUgcmVzdWx0cyBvdmVyIG91ciBjbHVicywgd2Ugd2lsbCBwZXJmb3JtIGEgbWV0YS1hbmFseXNpcyB1c2luZyBhIEZpc2hlci10eXBlIGNvbWJpbmF0aW9uIG9mIG9uZS10YWlsZWQgcC12YWx1ZXMuDQoNCg0KYGBge3IgZ2V0IGRhdGEsIGV2YWw9Rn0NCg0KIyBsYXJnZSBsaXN0cywgdGFrZXMgYSBsb3Qgb2YgdGltZSB0byBsb2FkDQojIGluIGNhc2UgeW91IGRvbid0IGhhdmUgZW5vdWdoIG1lbW9yeSBzcGFjZSBmb3IgYWxsIFJTaWVuYSBsaXN0cywgbGVhdmUgY2x1YiAzIGZvciBub3cuDQpjbHViMSA8LSAgZmxvYWQuUigidGVzdC9zaWVuYUZpdC9kdXJhdGlvbi9zaWVuYUZpdF9jbHViMS5SRGF0YSIpDQpjbHViMiA8LSAgZmxvYWQuUigidGVzdC9zaWVuYUZpdC9kdXJhdGlvbi9zaWVuYUZpdF9jbHViMi5SRGF0YSIpDQpjbHViNCA8LSAgZmxvYWQuUigidGVzdC9zaWVuYUZpdC9kdXJhdGlvbi9zaWVuYUZpdF9jbHViNC5SRGF0YSIpDQpjbHViNSA8LSAgZmxvYWQuUigidGVzdC9zaWVuYUZpdC9kdXJhdGlvbi9zaWVuYUZpdF9jbHViNS5SRGF0YSIpDQoNCiMgd2UgbGlzdCBtb2RlbCAxLTYNCm0xTGlzdCA8LSBsaXN0KGNsdWIxW1sxXV0sIGNsdWIyW1sxXV0sIGNsdWI0W1sxXV0sIGNsdWI1W1sxXV0pDQptMkxpc3QgPC0gbGlzdChjbHViMVtbMl1dLCBjbHViMltbMl1dLCBjbHViNFtbMl1dLCBjbHViNVtbMl1dKQ0KbTNMaXN0IDwtIGxpc3QoY2x1YjFbWzNdXSwgY2x1YjJbWzNdXSwgY2x1YjRbWzNdXSwgY2x1YjVbWzNdXSkNCm00TGlzdCA8LSBsaXN0KGNsdWIxW1s0XV0sIGNsdWIyW1s0XV0sIGNsdWI0W1s0XV0sIGNsdWI1W1s0XV0pDQptNUxpc3QgPC0gbGlzdChjbHViMVtbNV1dLCBjbHViMltbNV1dLCBjbHViNFtbNV1dLCBjbHViNVtbNV1dKQ0KI202TGlzdCA8LSBsaXN0KGNsdWIxW1s2XV0sIGNsdWIyW1s2XV0sIGNsdWI0W1s2XV0sIGNsdWI1W1s2XV0pDQoNCiMgcmVtb3ZlIHRoZSBleGNlc3MgZGF0YSwgYW5kIGFkZCBjbHViIDMncyByc2llbmEgb2JqZWN0cy4NCnJtKGNsdWIxLCBjbHViMiwgY2x1YjQsIGNsdWI1KQ0KY2x1YjMgPC0gIGZsb2FkLlIoInRlc3Qvc2llbmFGaXQvZHVyYXRpb24vc2llbmFGaXRfY2x1YjMuUkRhdGEiKQ0KIyB3aGVuIGZhY2luZyBmYWNpbmcgc3RvcmFnZSBjYXBhY2l0eSBpc3N1ZXMsIGNoZWNrIHRoZSBjYXBhY2l0eToNCiNtZW1vcnkubGltaXQoKQ0KIyB3ZSBpbmNyZWFzZSB0aGUgbGltaXQNCiNtZW1vcnkubGltaXQoc2l6ZT01NjAwMCkNCg0KIyBhZGQgdG8gdGhlIGxpc3RzDQptMUxpc3RbWzVdXSA8LSBjbHViM1tbMV1dDQptMkxpc3RbWzVdXSA8LSBjbHViM1tbMl1dDQptM0xpc3RbWzVdXSA8LSBjbHViM1tbM11dDQptNExpc3RbWzVdXSA8LSBjbHViM1tbNF1dDQptNUxpc3RbWzVdXSA8LSBjbHViM1tbNV1dDQojbTZMaXN0W1s1XV0gPC0gY2x1YjNbWzZdXQ0Kcm0oY2x1YjMpDQpgYGANCg0KDQo8YnI+DQoNCmBgYHtyIGV2YWwgPSBGQUxTRSwgIHJlc3VsdHM9J2hpZGUnfQ0KI21vZGVsIDENCiMgV2UgZXh0cmFjdCB0aGUgcGFyYW1ldGVyIGVzdGltYXRlcyBhbmQgc3RhbmRhcmQgZXJyb3JzIA0KcGFyYW1ldGVycyA8LSBzYXBwbHkobTFMaXN0LCBmdW5jdGlvbih4KXt4JHRoZXRhfSkNCnN0YW5kZXJzIDwtIHNhcHBseShtMUxpc3QsIGZ1bmN0aW9uKHgpe3gkc2V9KSANCg0KKGVmZi5uYW1lcyA8LQ0KICAgIG0xTGlzdFtbMV1dJGVmZmVjdHNbbTFMaXN0W1sxXV0kZWZmZWN0cyRpbmNsdWRlLCdlZmZlY3ROYW1lJ10pIA0KKGVmZi5uYW1lcyA8LSBlZmYubmFtZXMpDQoNCiNjb21iaW5lIHBhcmFtZXRlcnMgYW5kIHN0ZC5lcnJvcnMgd2l0aCBlZmZlY3QgbmFtZXMNCnJvd25hbWVzKHBhcmFtZXRlcnMpIDwtIGVmZi5uYW1lcw0Kcm93bmFtZXMoc3RhbmRlcnMpIDwtIGVmZi5uYW1lcw0KDQojIHByaW50IHJvdW5kZWQgdG8gMyBkZWNpbWFscw0Kcm91bmQocGFyYW1ldGVycywzKQ0Kcm91bmQoc3RhbmRlcnMsMykNCg0KYW5zOCA8LSBzaWVuYTA4KG0xTGlzdCwgYm91bmQ9MTAwKQ0KDQplZm5hbWVzIDwtIG5hbWVzKGFuczhbMTo0MF0pDQplZm5hbWVzIDwtIHN1YnN0cmluZyhlZm5hbWVzLCA4KQ0KDQpGaXNoZXJzIDwtIHQoc2FwcGx5KDE6NDAsDQogICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKGkpe2MoYW5zOFtbaV1dJGNqcGx1cywgYW5zOFtbaV1dJGNqbWludXMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5zOFtbaV1dJGNqcGx1c3AsIGFuczhbW2ldXSRjam1pbnVzcCwgMiphbnM4W1tpXV0kbjEgKX0pKQ0KRmlzaGVycyA8LSBhcy5kYXRhLmZyYW1lKEZpc2hlcnMpDQpyb3duYW1lcyhGaXNoZXJzKSA8LSBlZm5hbWVzDQpuYW1lcyhGaXNoZXJzKSA8LSBjKCdGcGx1cycsICdGbWludXMnLCAncHBsdXMnLCAncG1pbnVzJywgJ2RmJykNCiNyb3VuZChGaXNoZXJzLDMpDQoNCiMgd2UgbWFrZSAoYW5kIHNhdmUpIGEgZGF0YWZyYW1lIGNvbWJpbmluZyBjbHViIGVzdGltYXRlcyAoc3RkLiBlcnJvcnMpIHdpdGggZmlzaGVyIHRlc3Qgc3RhdGlzdGljcw0KcGFyX3N0YW5kZXJzIDwtIHBhc3RlKHJvdW5kKHBhcmFtZXRlcnMsIDMpLCAiICgiLCByb3VuZChzdGFuZGVycywgMyksICIpIiwgc2VwPSIiKQ0KZGYgPC0gYXMuZGF0YS5mcmFtZShtYXRyaXgocGFyX3N0YW5kZXJzLCBucm93PTQwLCBuY29sPTUpKQ0Kcm93bmFtZXMoZGYpIDwtIGVmbmFtZXMNCmNvbG5hbWVzKGRmKSA8LSAoYygiQ2x1YiAxIChOPTMwKSIsICJDbHViIDIgKE49NjIpIiwgIkNsdWIgNCAoTj0xMykiLCAiQ2x1YiA1IChOPTc3KSIsICJDbHViIDMgKE49MTYyKSIpKQ0KZGYyIDwtIGNiaW5kKGRmLCByb3VuZChGaXNoZXJzLCAzKSkNCmRmMiA8LSBkZjJbLCBjKDEsMiw1LDMsNCw3LDYsOSw4LDEwKV0gIyByZW9yZGVyDQpzYXZlKGRmMiwgZmlsZSA9ICJ0ZXN0L3NpZW5hRml0L21ldGEtYW5hbHlzaXMvbWV0YV92b2xfbTEuUkRhdGEiKQ0KDQojbW9kZWwgMg0KIyBXZSBleHRyYWN0IHRoZSBwYXJhbWV0ZXIgZXN0aW1hdGVzIGFuZCBzdGFuZGFyZCBlcnJvcnMgDQpwYXJhbWV0ZXJzIDwtIHNhcHBseShtMkxpc3QsIGZ1bmN0aW9uKHgpe3gkdGhldGF9KQ0Kc3RhbmRlcnMgPC0gc2FwcGx5KG0yTGlzdCwgZnVuY3Rpb24oeCl7eCRzZX0pIA0KDQooZWZmLm5hbWVzIDwtDQogICAgbTJMaXN0W1sxXV0kZWZmZWN0c1ttMkxpc3RbWzFdXSRlZmZlY3RzJGluY2x1ZGUsJ2VmZmVjdE5hbWUnXSkgDQooZWZmLm5hbWVzIDwtIGVmZi5uYW1lcykNCg0KI2NvbWJpbmUgcGFyYW1ldGVycyBhbmQgc3RkLmVycm9ycyB3aXRoIGVmZmVjdCBuYW1lcw0Kcm93bmFtZXMocGFyYW1ldGVycykgPC0gZWZmLm5hbWVzDQpyb3duYW1lcyhzdGFuZGVycykgPC0gZWZmLm5hbWVzDQoNCiMgcHJpbnQgcm91bmRlZCB0byAzIGRlY2ltYWxzDQpyb3VuZChwYXJhbWV0ZXJzLDMpDQpyb3VuZChzdGFuZGVycywzKQ0KDQphbnM4IDwtIHNpZW5hMDgobTJMaXN0LCBib3VuZD0xMDApDQoNCmVmbmFtZXMgPC0gbmFtZXMoYW5zOFsxOjQxXSkNCmVmbmFtZXMgPC0gc3Vic3RyaW5nKGVmbmFtZXMsIDgpDQoNCkZpc2hlcnMgPC0gdChzYXBwbHkoMTo0MSwNCiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oaSl7YyhhbnM4W1tpXV0kY2pwbHVzLCBhbnM4W1tpXV0kY2ptaW51cywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnM4W1tpXV0kY2pwbHVzcCwgYW5zOFtbaV1dJGNqbWludXNwLCAyKmFuczhbW2ldXSRuMSApfSkpDQpGaXNoZXJzIDwtIGFzLmRhdGEuZnJhbWUoRmlzaGVycykNCnJvd25hbWVzKEZpc2hlcnMpIDwtIGVmbmFtZXMNCm5hbWVzKEZpc2hlcnMpIDwtIGMoJ0ZwbHVzJywgJ0ZtaW51cycsICdwcGx1cycsICdwbWludXMnLCAnZGYnKQ0KI3JvdW5kKEZpc2hlcnMsMykNCg0KIyB3ZSBtYWtlIChhbmQgc2F2ZSkgYSBkYXRhZnJhbWUgY29tYmluaW5nIGNsdWIgZXN0aW1hdGVzIChzdGQuIGVycm9ycykgd2l0aCBmaXNoZXIgdGVzdCBzdGF0aXN0aWNzDQpwYXJfc3RhbmRlcnMgPC0gcGFzdGUocm91bmQocGFyYW1ldGVycywgMyksICIgKCIsIHJvdW5kKHN0YW5kZXJzLCAzKSwgIikiLCBzZXA9IiIpDQpkZiA8LSBhcy5kYXRhLmZyYW1lKG1hdHJpeChwYXJfc3RhbmRlcnMsIG5yb3c9NDEsIG5jb2w9NSkpDQpyb3duYW1lcyhkZikgPC0gZWZuYW1lcw0KY29sbmFtZXMoZGYpIDwtIChjKCJDbHViIDEgKE49MzApIiwgIkNsdWIgMiAoTj02MikiLCAiQ2x1YiA0IChOPTEzKSIsICJDbHViIDUgKE49NzcpIiwgIkNsdWIgMyAoTj0xNjIpIikpDQpkZjIgPC0gY2JpbmQoZGYsIHJvdW5kKEZpc2hlcnMsIDMpKQ0KZGYyIDwtIGRmMlssIGMoMSwyLDUsMyw0LDcsNiw5LDgsMTApXSAjIHJlb3JkZXINCnNhdmUoZGYyLCBmaWxlID0gInRlc3Qvc2llbmFGaXQvbWV0YS1hbmFseXNpcy9tZXRhX3ZvbF9tMi5SRGF0YSIpDQoNCiNtb2RlbCAzDQojIFdlIGV4dHJhY3QgdGhlIHBhcmFtZXRlciBlc3RpbWF0ZXMgYW5kIHN0YW5kYXJkIGVycm9ycyANCnBhcmFtZXRlcnMgPC0gc2FwcGx5KG0zTGlzdCwgZnVuY3Rpb24oeCl7eCR0aGV0YX0pDQpzdGFuZGVycyA8LSBzYXBwbHkobTNMaXN0LCBmdW5jdGlvbih4KXt4JHNlfSkgDQoNCihlZmYubmFtZXMgPC0NCiAgICBtM0xpc3RbWzFdXSRlZmZlY3RzW20zTGlzdFtbMV1dJGVmZmVjdHMkaW5jbHVkZSwnZWZmZWN0TmFtZSddKSANCihlZmYubmFtZXMgPC0gZWZmLm5hbWVzKQ0KDQojY29tYmluZSBwYXJhbWV0ZXJzIGFuZCBzdGQuZXJyb3JzIHdpdGggZWZmZWN0IG5hbWVzDQpyb3duYW1lcyhwYXJhbWV0ZXJzKSA8LSBlZmYubmFtZXMNCnJvd25hbWVzKHN0YW5kZXJzKSA8LSBlZmYubmFtZXMNCg0KIyBwcmludCByb3VuZGVkIHRvIDMgZGVjaW1hbHMNCnJvdW5kKHBhcmFtZXRlcnMsMykNCnJvdW5kKHN0YW5kZXJzLDMpDQoNCmFuczggPC0gc2llbmEwOChtM0xpc3QsIGJvdW5kPTEwMCkNCg0KZWZuYW1lcyA8LSBuYW1lcyhhbnM4WzE6NDFdKQ0KZWZuYW1lcyA8LSBzdWJzdHJpbmcoZWZuYW1lcywgOCkNCg0KRmlzaGVycyA8LSB0KHNhcHBseSgxOjQxLA0KICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbihpKXtjKGFuczhbW2ldXSRjanBsdXMsIGFuczhbW2ldXSRjam1pbnVzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuczhbW2ldXSRjanBsdXNwLCBhbnM4W1tpXV0kY2ptaW51c3AsIDIqYW5zOFtbaV1dJG4xICl9KSkNCkZpc2hlcnMgPC0gYXMuZGF0YS5mcmFtZShGaXNoZXJzKQ0Kcm93bmFtZXMoRmlzaGVycykgPC0gZWZuYW1lcw0KbmFtZXMoRmlzaGVycykgPC0gYygnRnBsdXMnLCAnRm1pbnVzJywgJ3BwbHVzJywgJ3BtaW51cycsICdkZicpDQojcm91bmQoRmlzaGVycywzKQ0KDQojIHdlIG1ha2UgKGFuZCBzYXZlKSBhIGRhdGFmcmFtZSBjb21iaW5pbmcgY2x1YiBlc3RpbWF0ZXMgKHN0ZC4gZXJyb3JzKSB3aXRoIGZpc2hlciB0ZXN0IHN0YXRpc3RpY3MNCnBhcl9zdGFuZGVycyA8LSBwYXN0ZShyb3VuZChwYXJhbWV0ZXJzLCAzKSwgIiAoIiwgcm91bmQoc3RhbmRlcnMsIDMpLCAiKSIsIHNlcD0iIikNCmRmIDwtIGFzLmRhdGEuZnJhbWUobWF0cml4KHBhcl9zdGFuZGVycywgbnJvdz00MSwgbmNvbD01KSkNCnJvd25hbWVzKGRmKSA8LSBlZm5hbWVzDQpjb2xuYW1lcyhkZikgPC0gKGMoIkNsdWIgMSAoTj0zMCkiLCAiQ2x1YiAyIChOPTYyKSIsICJDbHViIDQgKE49MTMpIiwgIkNsdWIgNSAoTj03NykiLCAiQ2x1YiAzIChOPTE2MikiKSkNCmRmMiA8LSBjYmluZChkZiwgcm91bmQoRmlzaGVycywgMykpDQpkZjIgPC0gZGYyWywgYygxLDIsNSwzLDQsNyw2LDksOCwxMCldICMgcmVvcmRlcg0Kc2F2ZShkZjIsIGZpbGUgPSAidGVzdC9zaWVuYUZpdC9tZXRhLWFuYWx5c2lzL21ldGFfdm9sX20zLlJEYXRhIikNCg0KI21vZGVsIDQNCiMgV2UgZXh0cmFjdCB0aGUgcGFyYW1ldGVyIGVzdGltYXRlcyBhbmQgc3RhbmRhcmQgZXJyb3JzIA0KcGFyYW1ldGVycyA8LSBzYXBwbHkobTRMaXN0LCBmdW5jdGlvbih4KXt4JHRoZXRhfSkNCnN0YW5kZXJzIDwtIHNhcHBseShtNExpc3QsIGZ1bmN0aW9uKHgpe3gkc2V9KSANCg0KKGVmZi5uYW1lcyA8LQ0KICAgIG00TGlzdFtbMV1dJGVmZmVjdHNbbTRMaXN0W1sxXV0kZWZmZWN0cyRpbmNsdWRlLCdlZmZlY3ROYW1lJ10pIA0KKGVmZi5uYW1lcyA8LSBlZmYubmFtZXMpDQoNCiNjb21iaW5lIHBhcmFtZXRlcnMgYW5kIHN0ZC5lcnJvcnMgd2l0aCBlZmZlY3QgbmFtZXMNCnJvd25hbWVzKHBhcmFtZXRlcnMpIDwtIGVmZi5uYW1lcw0Kcm93bmFtZXMoc3RhbmRlcnMpIDwtIGVmZi5uYW1lcw0KDQojIHByaW50IHJvdW5kZWQgdG8gMyBkZWNpbWFscw0Kcm91bmQocGFyYW1ldGVycywzKQ0Kcm91bmQoc3RhbmRlcnMsMykNCg0KYW5zOCA8LSBzaWVuYTA4KG00TGlzdCwgYm91bmQ9MTAwKQ0KDQplZm5hbWVzIDwtIG5hbWVzKGFuczhbMTo0MV0pDQplZm5hbWVzIDwtIHN1YnN0cmluZyhlZm5hbWVzLCA4KQ0KDQpGaXNoZXJzIDwtIHQoc2FwcGx5KDE6NDEsDQogICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKGkpe2MoYW5zOFtbaV1dJGNqcGx1cywgYW5zOFtbaV1dJGNqbWludXMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5zOFtbaV1dJGNqcGx1c3AsIGFuczhbW2ldXSRjam1pbnVzcCwgMiphbnM4W1tpXV0kbjEgKX0pKQ0KRmlzaGVycyA8LSBhcy5kYXRhLmZyYW1lKEZpc2hlcnMpDQpyb3duYW1lcyhGaXNoZXJzKSA8LSBlZm5hbWVzDQpuYW1lcyhGaXNoZXJzKSA8LSBjKCdGcGx1cycsICdGbWludXMnLCAncHBsdXMnLCAncG1pbnVzJywgJ2RmJykNCiNyb3VuZChGaXNoZXJzLDMpDQoNCiMgd2UgbWFrZSAoYW5kIHNhdmUpIGEgZGF0YWZyYW1lIGNvbWJpbmluZyBjbHViIGVzdGltYXRlcyAoc3RkLiBlcnJvcnMpIHdpdGggZmlzaGVyIHRlc3Qgc3RhdGlzdGljcw0KcGFyX3N0YW5kZXJzIDwtIHBhc3RlKHJvdW5kKHBhcmFtZXRlcnMsIDMpLCAiICgiLCByb3VuZChzdGFuZGVycywgMyksICIpIiwgc2VwPSIiKQ0KZGYgPC0gYXMuZGF0YS5mcmFtZShtYXRyaXgocGFyX3N0YW5kZXJzLCBucm93PTQxLCBuY29sPTUpKQ0Kcm93bmFtZXMoZGYpIDwtIGVmbmFtZXMNCmNvbG5hbWVzKGRmKSA8LSAoYygiQ2x1YiAxIChOPTMwKSIsICJDbHViIDIgKE49NjIpIiwgIkNsdWIgNCAoTj0xMykiLCAiQ2x1YiA1IChOPTc3KSIsICJDbHViIDMgKE49MTYyKSIpKQ0KZGYyIDwtIGNiaW5kKGRmLCByb3VuZChGaXNoZXJzLCAzKSkNCmRmMiA8LSBkZjJbLCBjKDEsMiw1LDMsNCw3LDYsOSw4LDEwKV0gIyByZW9yZGVyDQpzYXZlKGRmMiwgZmlsZSA9ICJ0ZXN0L3NpZW5hRml0L21ldGEtYW5hbHlzaXMvbWV0YV92b2xfbTQuUkRhdGEiKQ0KDQojbW9kZWwgNQ0KIyBXZSBleHRyYWN0IHRoZSBwYXJhbWV0ZXIgZXN0aW1hdGVzIGFuZCBzdGFuZGFyZCBlcnJvcnMgDQpwYXJhbWV0ZXJzIDwtIHNhcHBseShtNUxpc3QsIGZ1bmN0aW9uKHgpe3gkdGhldGF9KQ0Kc3RhbmRlcnMgPC0gc2FwcGx5KG01TGlzdCwgZnVuY3Rpb24oeCl7eCRzZX0pIA0KDQooZWZmLm5hbWVzIDwtDQogICAgbTVMaXN0W1sxXV0kZWZmZWN0c1ttNUxpc3RbWzFdXSRlZmZlY3RzJGluY2x1ZGUsJ2VmZmVjdE5hbWUnXSkgDQooZWZmLm5hbWVzIDwtIGVmZi5uYW1lcykNCg0KI2NvbWJpbmUgcGFyYW1ldGVycyBhbmQgc3RkLmVycm9ycyB3aXRoIGVmZmVjdCBuYW1lcw0Kcm93bmFtZXMocGFyYW1ldGVycykgPC0gZWZmLm5hbWVzDQpyb3duYW1lcyhzdGFuZGVycykgPC0gZWZmLm5hbWVzDQoNCiMgcHJpbnQgcm91bmRlZCB0byAzIGRlY2ltYWxzDQpyb3VuZChwYXJhbWV0ZXJzLDMpDQpyb3VuZChzdGFuZGVycywzKQ0KDQphbnM4IDwtIHNpZW5hMDgobTVMaXN0LCBib3VuZD0xMDApDQoNCmVmbmFtZXMgPC0gbmFtZXMoYW5zOFsxOjQ1XSkNCmVmbmFtZXMgPC0gc3Vic3RyaW5nKGVmbmFtZXMsIDgpDQoNCkZpc2hlcnMgPC0gdChzYXBwbHkoMTo0NSwNCiAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oaSl7YyhhbnM4W1tpXV0kY2pwbHVzLCBhbnM4W1tpXV0kY2ptaW51cywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnM4W1tpXV0kY2pwbHVzcCwgYW5zOFtbaV1dJGNqbWludXNwLCAyKmFuczhbW2ldXSRuMSApfSkpDQpGaXNoZXJzIDwtIGFzLmRhdGEuZnJhbWUoRmlzaGVycykNCnJvd25hbWVzKEZpc2hlcnMpIDwtIGVmbmFtZXMNCm5hbWVzKEZpc2hlcnMpIDwtIGMoJ0ZwbHVzJywgJ0ZtaW51cycsICdwcGx1cycsICdwbWludXMnLCAnZGYnKQ0KI3JvdW5kKEZpc2hlcnMsMykNCg0KIyB3ZSBtYWtlIChhbmQgc2F2ZSkgYSBkYXRhZnJhbWUgY29tYmluaW5nIGNsdWIgZXN0aW1hdGVzIChzdGQuIGVycm9ycykgd2l0aCBmaXNoZXIgdGVzdCBzdGF0aXN0aWNzDQpwYXJfc3RhbmRlcnMgPC0gcGFzdGUocm91bmQocGFyYW1ldGVycywgMyksICIgKCIsIHJvdW5kKHN0YW5kZXJzLCAzKSwgIikiLCBzZXA9IiIpDQpkZiA8LSBhcy5kYXRhLmZyYW1lKG1hdHJpeChwYXJfc3RhbmRlcnMsIG5yb3c9NDIsIG5jb2w9NSkpDQpyb3duYW1lcyhkZikgPC0gZWZuYW1lcw0KY29sbmFtZXMoZGYpIDwtIChjKCJDbHViIDEgKE49MzApIiwgIkNsdWIgMiAoTj02MikiLCAiQ2x1YiA0IChOPTEzKSIsICJDbHViIDUgKE49NzcpIiwgIkNsdWIgMyAoTj0xNjIpIikpDQpkZjIgPC0gY2JpbmQoZGYsIHJvdW5kKEZpc2hlcnMsIDMpKQ0KZGYyIDwtIGRmMlssIGMoMSwyLDUsMyw0LDcsNiw5LDgsMTApXSAjIHJlb3JkZXINCnNhdmUoZGYyLCBmaWxlID0gInRlc3Qvc2llbmFGaXQvbWV0YS1hbmFseXNpcy9tZXRhX3ZvbF9tNS5SRGF0YSIpDQoNCiNtb2RlbCA2DQojIFdlIGV4dHJhY3QgdGhlIHBhcmFtZXRlciBlc3RpbWF0ZXMgYW5kIHN0YW5kYXJkIGVycm9ycyANCnBhcmFtZXRlcnMgPC0gc2FwcGx5KG02TGlzdCwgZnVuY3Rpb24oeCl7eCR0aGV0YX0pDQpzdGFuZGVycyA8LSBzYXBwbHkobTZMaXN0LCBmdW5jdGlvbih4KXt4JHNlfSkgDQoNCihlZmYubmFtZXMgPC0NCiAgICBtNkxpc3RbWzFdXSRlZmZlY3RzW202TGlzdFtbMV1dJGVmZmVjdHMkaW5jbHVkZSwnZWZmZWN0TmFtZSddKSANCihlZmYubmFtZXMgPC0gZWZmLm5hbWVzKQ0KDQojY29tYmluZSBwYXJhbWV0ZXJzIGFuZCBzdGQuZXJyb3JzIHdpdGggZWZmZWN0IG5hbWVzDQpyb3duYW1lcyhwYXJhbWV0ZXJzKSA8LSBlZmYubmFtZXMNCnJvd25hbWVzKHN0YW5kZXJzKSA8LSBlZmYubmFtZXMNCg0KIyBwcmludCByb3VuZGVkIHRvIDMgZGVjaW1hbHMNCnJvdW5kKHBhcmFtZXRlcnMsMykNCnJvdW5kKHN0YW5kZXJzLDMpDQoNCmFuczggPC0gc2llbmEwOChtNkxpc3QsIGJvdW5kPTEwMCkNCg0KZWZuYW1lcyA8LSBuYW1lcyhhbnM4WzE6NDFdKQ0KZWZuYW1lcyA8LSBzdWJzdHJpbmcoZWZuYW1lcywgOCkNCg0KRmlzaGVycyA8LSB0KHNhcHBseSgxOjQxLA0KICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbihpKXtjKGFuczhbW2ldXSRjanBsdXMsIGFuczhbW2ldXSRjam1pbnVzLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuczhbW2ldXSRjanBsdXNwLCBhbnM4W1tpXV0kY2ptaW51c3AsIDIqYW5zOFtbaV1dJG4xICl9KSkNCkZpc2hlcnMgPC0gYXMuZGF0YS5mcmFtZShGaXNoZXJzKQ0Kcm93bmFtZXMoRmlzaGVycykgPC0gZWZuYW1lcw0KbmFtZXMoRmlzaGVycykgPC0gYygnRnBsdXMnLCAnRm1pbnVzJywgJ3BwbHVzJywgJ3BtaW51cycsICdkZicpDQojcm91bmQoRmlzaGVycywzKQ0KDQojIHdlIG1ha2UgKGFuZCBzYXZlKSBhIGRhdGFmcmFtZSBjb21iaW5pbmcgY2x1YiBlc3RpbWF0ZXMgKHN0ZC4gZXJyb3JzKSB3aXRoIGZpc2hlciB0ZXN0IHN0YXRpc3RpY3MNCnBhcl9zdGFuZGVycyA8LSBwYXN0ZShyb3VuZChwYXJhbWV0ZXJzLCAzKSwgIiAoIiwgcm91bmQoc3RhbmRlcnMsIDMpLCAiKSIsIHNlcD0iIikNCmRmIDwtIGFzLmRhdGEuZnJhbWUobWF0cml4KHBhcl9zdGFuZGVycywgbnJvdz00MSwgbmNvbD01KSkNCnJvd25hbWVzKGRmKSA8LSBlZm5hbWVzDQpjb2xuYW1lcyhkZikgPC0gKGMoIkNsdWIgMSAoTj0zMCkiLCAiQ2x1YiAyIChOPTYyKSIsICJDbHViIDQgKE49MTMpIiwgIkNsdWIgNSAoTj03NykiLCAiQ2x1YiAzIChOPTE2MikiKSkNCmRmMiA8LSBjYmluZChkZiwgcm91bmQoRmlzaGVycywgMykpDQpkZjIgPC0gZGYyWywgYygxLDIsNSwzLDQsNyw2LDksOCwxMCldICMgcmVvcmRlcg0Kc2F2ZShkZjIsIGZpbGUgPSAidGVzdC9zaWVuYUZpdC9tZXRhLWFuYWx5c2lzL21ldGFfdm9sX202LlJEYXRhIikNCg0KYGBgDQoNCjxicj4NCg0KIyMgey19DQoNCjxicj4NCg0KIyBSZXN1bHRzIHsudGFic2V0IC50YWJzZXQtZmFkZX0gDQoNCkFuZCB3ZSBwcmVzZW50IHRoZSByZXN1bHRzOg0KDQojIyBNb2RlbCAxIChpbmRlZ3JlZSkNCg0KYGBge3IgZWNobz1GfQ0KbG9hZCgidGVzdC9zaWVuYUZpdC9tZXRhLWFuYWx5c2lzL21ldGFfdm9sX20xLlJEYXRhIikNCg0Kb3B0aW9ucyhrbml0ci5rYWJsZS5OQSA9ICctJykNCg0Ka25pdHI6OmthYmxlKGRmMiwgZGlnaXRzPTMsICJodG1sIiwgY2FwdGlvbj0iTWV0YS1hbmFseXNpcyBvZiBwYXJhbWV0ZXIgZXN0aW1hdGVzIGZvciB0aGUgb2JqZWN0aXZlIGZ1bmN0aW9uIG9mIGt1ZG9zIHRpZSBmb3JtYXRpb24gYW5kIHJ1bm5pbmcgdm9sdW1lIGR5bmFtaWNzIGFjcm9zcyA1IFN0cmF2YSBjbHVicyIpICU+JSANCiAga2FibGVFeHRyYTo6a2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9IGMoInN0cmlwZWQiLCAiaG92ZXIiKSkgJT4lDQogIGZvb3Rub3RlKGdlbmVyYWwgPSAiRXN0aW1hdGVzIGFyZSBnaXZlbiB3aXRoIHN0YW5kYXJkIGVycm9ycyBpbiBwYXJlbnRoZXNlcy4gQWxsIGNvbnZlcmdlbmNlIHQgcmF0aW9zIDwuMTA7IG92ZXJhbGwgbWF4aW11bSBjb252ZXJnZW5jZSByYXRpbyA8LjE1LiIsDQogICAgICAgICAgIGFscGhhYmV0ICA9IGMoIlNvbWUgc3RydWN0dXJhbCBuZXR3b3JrIGVmZmVjdHMgd2VyZSByYXRoZXIgaW1wb3J0YW50IGZvciBzb21lIGNsdWJzLCBidXQgbm90IGZvciBvdGhlcnM7IGZvciB0aGUgbGF0dGVyLCB3ZSBmaXhlZCB0aGVzZSBlZmZlY3RzIHRvIDAgKFNFPU5BKS4iLCAiV2UgZml4ZWQgZ2VuZGVyIGVmZmVjdHMgb24ga3Vkb3MgdGllIGZvcm1hdGlvbiBhbmQgcnVubmluZyB2b2x1bWUgZHluYW1pY3MgdG8gMCBpbiBjbHViIDQuIFZhcmlhdGlvbiBiZXR3ZWVuIHRoZSBnZW5kZXJzIHdhcyBub3Qgc3VmZmljaWVudCBmb3IgbW9kZWwgY29udmVyZ2VuY2UuIFNjb3Jl4oCTdHlwZSB0ZXN0cyBpbmRpY2F0ZWQgdGhhdCBnZW5kZXIgZWZmZWN0cyB3ZXJlIG5vdCBzaWduaWZpY2FudC4iLCAiVGhlIEZpc2hlciBUZXN0IGNvbWJpbmVzIGluZGVwZW5kZW50IHDigJN2YWx1ZXMgdG8gdGVzdCB3aGV0aGVyIHRoZXJlIGlzIGV2aWRlbmNlIGluIGF0IGxlYXN0IG9uZSBvZiB0aGUgY2x1YnMgb2YgYSBwYXJhbWV0ZXIgYmVpbmcgcG9zaXRpdmUgb3IgbmVnYXRpdmUuIikpDQoNCmBgYA0KDQojIyBNb2RlbCAyIChhdkFsdCkNCg0KYGBge3IgZWNobz1GfQ0KbG9hZCgidGVzdC9zaWVuYUZpdC9tZXRhLWFuYWx5c2lzL21ldGFfdm9sX20yLlJEYXRhIikNCg0Kb3B0aW9ucyhrbml0ci5rYWJsZS5OQSA9ICctJykNCg0Ka25pdHI6OmthYmxlKGRmMiwgZGlnaXRzPTMsICJodG1sIiwgY2FwdGlvbj0iTWV0YS1hbmFseXNpcyBvZiBwYXJhbWV0ZXIgZXN0aW1hdGVzIGZvciB0aGUgb2JqZWN0aXZlIGZ1bmN0aW9uIG9mIGt1ZG9zIHRpZSBmb3JtYXRpb24gYW5kIHJ1bm5pbmcgdm9sdW1lIGR5bmFtaWNzIGFjcm9zcyA1IFN0cmF2YSBjbHVicyIpICU+JSANCiAga2FibGVFeHRyYTo6a2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9IGMoInN0cmlwZWQiLCAiaG92ZXIiKSkgJT4lDQogIGZvb3Rub3RlKGdlbmVyYWwgPSAiRXN0aW1hdGVzIGFyZSBnaXZlbiB3aXRoIHN0YW5kYXJkIGVycm9ycyBpbiBwYXJlbnRoZXNlcy4gQWxsIGNvbnZlcmdlbmNlIHQgcmF0aW9zIDwuMTA7IG92ZXJhbGwgbWF4aW11bSBjb252ZXJnZW5jZSByYXRpbyA8LjE1LiIsDQogICAgICAgICAgIGFscGhhYmV0ICA9IGMoIlNvbWUgc3RydWN0dXJhbCBuZXR3b3JrIGVmZmVjdHMgd2VyZSByYXRoZXIgaW1wb3J0YW50IGZvciBzb21lIGNsdWJzLCBidXQgbm90IGZvciBvdGhlcnM7IGZvciB0aGUgbGF0dGVyLCB3ZSBmaXhlZCB0aGVzZSBlZmZlY3RzIHRvIDAgKFNFPU5BKS4iLCAiV2UgZml4ZWQgZ2VuZGVyIGVmZmVjdHMgb24ga3Vkb3MgdGllIGZvcm1hdGlvbiBhbmQgcnVubmluZyB2b2x1bWUgZHluYW1pY3MgdG8gMCBpbiBjbHViIDQuIFZhcmlhdGlvbiBiZXR3ZWVuIHRoZSBnZW5kZXJzIHdhcyBub3Qgc3VmZmljaWVudCBmb3IgbW9kZWwgY29udmVyZ2VuY2UuIFNjb3Jl4oCTdHlwZSB0ZXN0cyBpbmRpY2F0ZWQgdGhhdCBnZW5kZXIgZWZmZWN0cyB3ZXJlIG5vdCBzaWduaWZpY2FudC4iLCAiVGhlIEZpc2hlciBUZXN0IGNvbWJpbmVzIGluZGVwZW5kZW50IHDigJN2YWx1ZXMgdG8gdGVzdCB3aGV0aGVyIHRoZXJlIGlzIGV2aWRlbmNlIGluIGF0IGxlYXN0IG9uZSBvZiB0aGUgY2x1YnMgb2YgYSBwYXJhbWV0ZXIgYmVpbmcgcG9zaXRpdmUgb3IgbmVnYXRpdmUuIikpDQoNCmBgYA0KDQojIyBNb2RlbCAzIChhdkF0dEhpZ2hlcikNCg0KYGBge3IgZWNobz1GfQ0KbG9hZCgidGVzdC9zaWVuYUZpdC9tZXRhLWFuYWx5c2lzL21ldGFfdm9sX20zLlJEYXRhIikNCg0Kb3B0aW9ucyhrbml0ci5rYWJsZS5OQSA9ICctJykNCg0Ka25pdHI6OmthYmxlKGRmMiwgZGlnaXRzPTMsICJodG1sIiwgY2FwdGlvbj0iTWV0YS1hbmFseXNpcyBvZiBwYXJhbWV0ZXIgZXN0aW1hdGVzIGZvciB0aGUgb2JqZWN0aXZlIGZ1bmN0aW9uIG9mIGt1ZG9zIHRpZSBmb3JtYXRpb24gYW5kIHJ1bm5pbmcgdm9sdW1lIGR5bmFtaWNzIGFjcm9zcyA1IFN0cmF2YSBjbHVicyIpICU+JSANCiAga2FibGVFeHRyYTo6a2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9IGMoInN0cmlwZWQiLCAiaG92ZXIiKSkgJT4lDQogIGZvb3Rub3RlKGdlbmVyYWwgPSAiRXN0aW1hdGVzIGFyZSBnaXZlbiB3aXRoIHN0YW5kYXJkIGVycm9ycyBpbiBwYXJlbnRoZXNlcy4gQWxsIGNvbnZlcmdlbmNlIHQgcmF0aW9zIDwuMTA7IG92ZXJhbGwgbWF4aW11bSBjb252ZXJnZW5jZSByYXRpbyA8LjE1LiIsDQogICAgICAgICAgIGFscGhhYmV0ICA9IGMoIlNvbWUgc3RydWN0dXJhbCBuZXR3b3JrIGVmZmVjdHMgd2VyZSByYXRoZXIgaW1wb3J0YW50IGZvciBzb21lIGNsdWJzLCBidXQgbm90IGZvciBvdGhlcnM7IGZvciB0aGUgbGF0dGVyLCB3ZSBmaXhlZCB0aGVzZSBlZmZlY3RzIHRvIDAgKFNFPU5BKS4iLCAiV2UgZml4ZWQgZ2VuZGVyIGVmZmVjdHMgb24ga3Vkb3MgdGllIGZvcm1hdGlvbiBhbmQgcnVubmluZyB2b2x1bWUgZHluYW1pY3MgdG8gMCBpbiBjbHViIDQuIFZhcmlhdGlvbiBiZXR3ZWVuIHRoZSBnZW5kZXJzIHdhcyBub3Qgc3VmZmljaWVudCBmb3IgbW9kZWwgY29udmVyZ2VuY2UuIFNjb3Jl4oCTdHlwZSB0ZXN0cyBpbmRpY2F0ZWQgdGhhdCBnZW5kZXIgZWZmZWN0cyB3ZXJlIG5vdCBzaWduaWZpY2FudC4iLCAiVGhlIEZpc2hlciBUZXN0IGNvbWJpbmVzIGluZGVwZW5kZW50IHDigJN2YWx1ZXMgdG8gdGVzdCB3aGV0aGVyIHRoZXJlIGlzIGV2aWRlbmNlIGluIGF0IGxlYXN0IG9uZSBvZiB0aGUgY2x1YnMgb2YgYSBwYXJhbWV0ZXIgYmVpbmcgcG9zaXRpdmUgb3IgbmVnYXRpdmUuIikpDQoNCmBgYA0KDQojIyBNb2RlbCA0IChhdkF0dExvd2VyKQ0KDQpgYGB7ciBlY2hvPUZ9DQpsb2FkKCJ0ZXN0L3NpZW5hRml0L21ldGEtYW5hbHlzaXMvbWV0YV92b2xfbTQuUkRhdGEiKQ0KDQpvcHRpb25zKGtuaXRyLmthYmxlLk5BID0gJy0nKQ0KDQprbml0cjo6a2FibGUoZGYyLCBkaWdpdHM9MywgImh0bWwiLCBjYXB0aW9uPSJNZXRhLWFuYWx5c2lzIG9mIHBhcmFtZXRlciBlc3RpbWF0ZXMgZm9yIHRoZSBvYmplY3RpdmUgZnVuY3Rpb24gb2Yga3Vkb3MgdGllIGZvcm1hdGlvbiBhbmQgcnVubmluZyB2b2x1bWUgZHluYW1pY3MgYWNyb3NzIDUgU3RyYXZhIGNsdWJzIikgJT4lIA0KICBrYWJsZUV4dHJhOjprYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gYygic3RyaXBlZCIsICJob3ZlciIpKSAlPiUNCiAgZm9vdG5vdGUoZ2VuZXJhbCA9ICJFc3RpbWF0ZXMgYXJlIGdpdmVuIHdpdGggc3RhbmRhcmQgZXJyb3JzIGluIHBhcmVudGhlc2VzLiBBbGwgY29udmVyZ2VuY2UgdCByYXRpb3MgPC4xMDsgb3ZlcmFsbCBtYXhpbXVtIGNvbnZlcmdlbmNlIHJhdGlvIDwuMTUuIiwNCiAgICAgICAgICAgYWxwaGFiZXQgID0gYygiU29tZSBzdHJ1Y3R1cmFsIG5ldHdvcmsgZWZmZWN0cyB3ZXJlIHJhdGhlciBpbXBvcnRhbnQgZm9yIHNvbWUgY2x1YnMsIGJ1dCBub3QgZm9yIG90aGVyczsgZm9yIHRoZSBsYXR0ZXIsIHdlIGZpeGVkIHRoZXNlIGVmZmVjdHMgdG8gMCAoU0U9TkEpLiIsICJXZSBmaXhlZCBnZW5kZXIgZWZmZWN0cyBvbiBrdWRvcyB0aWUgZm9ybWF0aW9uIGFuZCBydW5uaW5nIHZvbHVtZSBkeW5hbWljcyB0byAwIGluIGNsdWIgNC4gVmFyaWF0aW9uIGJldHdlZW4gdGhlIGdlbmRlcnMgd2FzIG5vdCBzdWZmaWNpZW50IGZvciBtb2RlbCBjb252ZXJnZW5jZS4gU2NvcmXigJN0eXBlIHRlc3RzIGluZGljYXRlZCB0aGF0IGdlbmRlciBlZmZlY3RzIHdlcmUgbm90IHNpZ25pZmljYW50LiIsICJUaGUgRmlzaGVyIFRlc3QgY29tYmluZXMgaW5kZXBlbmRlbnQgcOKAk3ZhbHVlcyB0byB0ZXN0IHdoZXRoZXIgdGhlcmUgaXMgZXZpZGVuY2UgaW4gYXQgbGVhc3Qgb25lIG9mIHRoZSBjbHVicyBvZiBhIHBhcmFtZXRlciBiZWluZyBwb3NpdGl2ZSBvciBuZWdhdGl2ZS4iKSkNCg0KYGBgDQoNCg0KIyMgTW9kZWwgNSAoYXZBdHRIaWdoZXIrTG93ZXIpDQoNCmBgYHtyIGVjaG89Rn0NCmxvYWQoInRlc3Qvc2llbmFGaXQvbWV0YS1hbmFseXNpcy9tZXRhX3ZvbF9tNS5SRGF0YSIpDQoNCm9wdGlvbnMoa25pdHIua2FibGUuTkEgPSAnLScpDQoNCmtuaXRyOjprYWJsZShkZjIsIGRpZ2l0cz0zLCAiaHRtbCIsIGNhcHRpb249Ik1ldGEtYW5hbHlzaXMgb2YgcGFyYW1ldGVyIGVzdGltYXRlcyBmb3IgdGhlIG9iamVjdGl2ZSBmdW5jdGlvbiBvZiBrdWRvcyB0aWUgZm9ybWF0aW9uIGFuZCBydW5uaW5nIHZvbHVtZSBkeW5hbWljcyBhY3Jvc3MgNSBTdHJhdmEgY2x1YnMiKSAlPiUgDQogIGthYmxlRXh0cmE6OmthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSBjKCJzdHJpcGVkIiwgImhvdmVyIikpICU+JQ0KICBmb290bm90ZShnZW5lcmFsID0gIkVzdGltYXRlcyBhcmUgZ2l2ZW4gd2l0aCBzdGFuZGFyZCBlcnJvcnMgaW4gcGFyZW50aGVzZXMuIEFsbCBjb252ZXJnZW5jZSB0IHJhdGlvcyA8LjEwOyBvdmVyYWxsIG1heGltdW0gY29udmVyZ2VuY2UgcmF0aW8gPC4xNS4iLA0KICAgICAgICAgICBhbHBoYWJldCAgPSBjKCJTb21lIHN0cnVjdHVyYWwgbmV0d29yayBlZmZlY3RzIHdlcmUgcmF0aGVyIGltcG9ydGFudCBmb3Igc29tZSBjbHVicywgYnV0IG5vdCBmb3Igb3RoZXJzOyBmb3IgdGhlIGxhdHRlciwgd2UgZml4ZWQgdGhlc2UgZWZmZWN0cyB0byAwIChTRT1OQSkuIiwgIldlIGZpeGVkIGdlbmRlciBlZmZlY3RzIG9uIGt1ZG9zIHRpZSBmb3JtYXRpb24gYW5kIHJ1bm5pbmcgdm9sdW1lIGR5bmFtaWNzIHRvIDAgaW4gY2x1YiA0LiBWYXJpYXRpb24gYmV0d2VlbiB0aGUgZ2VuZGVycyB3YXMgbm90IHN1ZmZpY2llbnQgZm9yIG1vZGVsIGNvbnZlcmdlbmNlLiBTY29yZeKAk3R5cGUgdGVzdHMgaW5kaWNhdGVkIHRoYXQgZ2VuZGVyIGVmZmVjdHMgd2VyZSBub3Qgc2lnbmlmaWNhbnQuIiwgIlRoZSBGaXNoZXIgVGVzdCBjb21iaW5lcyBpbmRlcGVuZGVudCBw4oCTdmFsdWVzIHRvIHRlc3Qgd2hldGhlciB0aGVyZSBpcyBldmlkZW5jZSBpbiBhdCBsZWFzdCBvbmUgb2YgdGhlIGNsdWJzIG9mIGEgcGFyYW1ldGVyIGJlaW5nIHBvc2l0aXZlIG9yIG5lZ2F0aXZlLiIpKQ0KDQpgYGANCg0KPGJyPg0KDQojIyMgYWRkaXRpb25hbCBjaGVjazogYXJlIHJlc3VsdHMgZHJpdmVuIGJ5IGNsdWIgNT8NCndlIG5vdGUgdGhhdCBjbHViIDUgZGlzcGxheWVkIHRoZSBtb3N0IHNpZ25pZmljYW50IGluZmx1ZW5jZSBlZmZlY3RzLiBGb2xsb3dpbmcgdGhlIHN1Z2dlc3Rpb24gb2YgYW4gYW5vbnltb3VzIHJldmlld2VyLCB3ZSBjaGVja2VkIHRoZSByb2J1c3RuZXNzIG9mIG91ciBhZ2dyZWdhdGUgZmluZGluZ3MgYnkgZXhjbHVkaW5nIHRoaXMgY2x1YiBmcm9tIG91ciBzdW1tYXJ5IG9mIGVzdGltYXRlcy4NCg0KDQpgYGB7ciBldmFsID0gRkFMU0UsIGVjaG89RkFMU0V9DQojIHJlbW92ZSBjbHViIDUNCm01TGlzdF8gPC0gbTVMaXN0Wy00XQ0KDQojIFdlIGV4dHJhY3QgdGhlIHBhcmFtZXRlciBlc3RpbWF0ZXMgYW5kIHN0YW5kYXJkIGVycm9ycyANCnBhcmFtZXRlcnMgPC0gc2FwcGx5KG01TGlzdF8sIGZ1bmN0aW9uKHgpe3gkdGhldGF9KQ0Kc3RhbmRlcnMgPC0gc2FwcGx5KG01TGlzdF8sIGZ1bmN0aW9uKHgpe3gkc2V9KSANCg0KKGVmZi5uYW1lcyA8LQ0KICAgIG01TGlzdF9bWzFdXSRlZmZlY3RzW201TGlzdF9bWzFdXSRlZmZlY3RzJGluY2x1ZGUsJ2VmZmVjdE5hbWUnXSkgDQoNCiNjb21iaW5lIHBhcmFtZXRlcnMgYW5kIHN0ZC5lcnJvcnMgd2l0aCBlZmZlY3QgbmFtZXMNCnJvd25hbWVzKHBhcmFtZXRlcnMpIDwtIGVmZi5uYW1lcw0Kcm93bmFtZXMoc3RhbmRlcnMpIDwtIGVmZi5uYW1lcw0KDQphbnM4IDwtIHNpZW5hMDgobTVMaXN0XywgYm91bmQ9MTAwKQ0KDQplZm5hbWVzIDwtIG5hbWVzKGFuczhbMTo0NV0pDQplZm5hbWVzIDwtIHN1YnN0cmluZyhlZm5hbWVzLCA4KQ0KDQpGaXNoZXJzIDwtIHQoc2FwcGx5KDE6NDUsDQogICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKGkpe2MoYW5zOFtbaV1dJGNqcGx1cywgYW5zOFtbaV1dJGNqbWludXMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5zOFtbaV1dJGNqcGx1c3AsIGFuczhbW2ldXSRjam1pbnVzcCwgMiphbnM4W1tpXV0kbjEgKX0pKQ0KRmlzaGVycyA8LSBhcy5kYXRhLmZyYW1lKEZpc2hlcnMpDQpyb3duYW1lcyhGaXNoZXJzKSA8LSBlZm5hbWVzDQpuYW1lcyhGaXNoZXJzKSA8LSBjKCdGcGx1cycsICdGbWludXMnLCAncHBsdXMnLCAncG1pbnVzJywgJ2RmJykNCiNyb3VuZChGaXNoZXJzLDMpDQoNCiMgcmVvcmRlcg0KY29sbmFtZXMoRmlzaGVycykNCkZpc2hlcnMgPC0gRmlzaGVyc1ssIGMoMiw0LDEsMyw1KV0NCg0KIyB3ZSBtYWtlIChhbmQgc2F2ZSkgYSBkYXRhZnJhbWUgY29tYmluaW5nIGNsdWIgZXN0aW1hdGVzIChzdGQuIGVycm9ycykgd2l0aCBmaXNoZXIgdGVzdCBzdGF0aXN0aWNzDQpwYXJfc3RhbmRlcnMgPC0gcGFzdGUocm91bmQocGFyYW1ldGVycywgMyksICIgKCIsIHJvdW5kKHN0YW5kZXJzLCAzKSwgIikiLCBzZXA9IiIpDQpkZiA8LSBhcy5kYXRhLmZyYW1lKG1hdHJpeChwYXJfc3RhbmRlcnMsIG5yb3c9NDUsIG5jb2w9NCkpDQpyb3duYW1lcyhkZikgPC0gZWZuYW1lcw0KY29sbmFtZXMoZGYpIDwtIChjKCJDbHViIDEgKE49MjcpIiwgIkNsdWIgMiAoTj01OCkiLCAiQ2x1YiA0IChOPTkpIiwgIkNsdWIgMyAoTj0xNTkpIikpDQpkZjIgPC0gY2JpbmQoZGYsIHJvdW5kKEZpc2hlcnMsIDMpKQ0KbmFtZXMoZGYyKQ0KZGYyIDwtIGRmMlssIGMoMSwyLDQsMyw1LDYsNyw4LDkpXSAjIHJlb3JkZXINCg0KI3NhdmUNCnNhdmUoZGYyLCBmaWxlID0gInRlc3Qvc2llbmFGaXQvbWV0YS1hbmFseXNpcy9tZXRhX3ZvbF9tNV93aXRob3V0Y2x1YjUuUkRhdGEiKQ0KYGBgDQoNCmByIGNvbG9yaXplKCJhbmQgdGhlIEZpc2hlciByZXN1bHRzIGV4Y2x1ZGluZyBjbHViIDU6IiwgInJlZCIpYA0KDQoNCmBgYHtyIGVjaG89Rn0NCmxvYWQoInRlc3Qvc2llbmFGaXQvbWV0YS1hbmFseXNpcy9tZXRhX3ZvbF9tNV93aXRob3V0Y2x1YjUuUkRhdGEiKQ0KDQpvcHRpb25zKGtuaXRyLmthYmxlLk5BID0gJy0nKQ0KDQprbml0cjo6a2FibGUoZGYyLCBkaWdpdHM9MywgImh0bWwiLCBjYXB0aW9uPSJNZXRhLWFuYWx5c2lzIG9mIHBhcmFtZXRlciBlc3RpbWF0ZXMgZm9yIHRoZSBvYmplY3RpdmUgZnVuY3Rpb24gb2Yga3Vkb3MgdGllIGZvcm1hdGlvbiBhbmQgcnVubmluZyB2b2x1bWUgZHluYW1pY3MsIGV4Y2x1ZGluZyBjbHViIDUiKSAlPiUgDQogIGthYmxlRXh0cmE6OmthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSBjKCJzdHJpcGVkIiwgImhvdmVyIikpICU+JQ0KICBmb290bm90ZShnZW5lcmFsID0gIkVzdGltYXRlcyBhcmUgZ2l2ZW4gd2l0aCBzdGFuZGFyZCBlcnJvcnMgaW4gcGFyZW50aGVzZXMuIEFsbCBjb252ZXJnZW5jZSB0IHJhdGlvcyA8LjEwOyBvdmVyYWxsIG1heGltdW0gY29udmVyZ2VuY2UgcmF0aW8gPC4xNS4iLA0KICAgICAgICAgICBhbHBoYWJldCAgPSBjKCJTb21lIHN0cnVjdHVyYWwgbmV0d29yayBlZmZlY3RzIHdlcmUgcmF0aGVyIGltcG9ydGFudCBmb3Igc29tZSBjbHVicywgYnV0IG5vdCBmb3Igb3RoZXJzOyBmb3IgdGhlIGxhdHRlciwgd2UgZml4ZWQgdGhlc2UgZWZmZWN0cyB0byAwIChTRT1OQSkuIiwgIldlIGZpeGVkIGdlbmRlciBlZmZlY3RzIG9uIGt1ZG9zIHRpZSBmb3JtYXRpb24gYW5kIHJ1bm5pbmcgZnJlcXVlbmN5IGR5bmFtaWNzIHRvIDAgaW4gY2x1YiA0LiBWYXJpYXRpb24gYmV0d2VlbiB0aGUgZ2VuZGVycyB3YXMgbm90IHN1ZmZpY2llbnQgZm9yIG1vZGVsIGNvbnZlcmdlbmNlLiBTY29yZeKAk3R5cGUgdGVzdHMgaW5kaWNhdGVkIHRoYXQgZ2VuZGVyIGVmZmVjdHMgd2VyZSBub3Qgc2lnbmlmaWNhbnQuIiwgIlRoZSBGaXNoZXIgVGVzdCBjb21iaW5lcyBpbmRlcGVuZGVudCBw4oCTdmFsdWVzIHRvIHRlc3Qgd2hldGhlciB0aGVyZSBpcyBldmlkZW5jZSBpbiBhdCBsZWFzdCBvbmUgb2YgdGhlIGNsdWJzIG9mIGEgcGFyYW1ldGVyIGJlaW5nIHBvc2l0aXZlIG9yIG5lZ2F0aXZlLiIpKQ0KDQpgYGANCg0KIyMgTW9kZWwgNiAoYXZTaW0pDQoNCmBgYHtyIGVjaG89Rn0NCmxvYWQoInRlc3Qvc2llbmFGaXQvbWV0YS1hbmFseXNpcy9tZXRhX3ZvbF9tNi5SRGF0YSIpDQoNCm9wdGlvbnMoa25pdHIua2FibGUuTkEgPSAnLScpDQoNCmtuaXRyOjprYWJsZShkZjIsIGRpZ2l0cz0zLCAiaHRtbCIsIGNhcHRpb249Ik1ldGEtYW5hbHlzaXMgb2YgcGFyYW1ldGVyIGVzdGltYXRlcyBmb3IgdGhlIG9iamVjdGl2ZSBmdW5jdGlvbiBvZiBrdWRvcyB0aWUgZm9ybWF0aW9uIGFuZCBydW5uaW5nIHZvbHVtZSBkeW5hbWljcyBhY3Jvc3MgNSBTdHJhdmEgY2x1YnMiKSAlPiUgDQogIGthYmxlRXh0cmE6OmthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSBjKCJzdHJpcGVkIiwgImhvdmVyIikpICU+JQ0KICBmb290bm90ZShnZW5lcmFsID0gIkVzdGltYXRlcyBhcmUgZ2l2ZW4gd2l0aCBzdGFuZGFyZCBlcnJvcnMgaW4gcGFyZW50aGVzZXMuIEFsbCBjb252ZXJnZW5jZSB0IHJhdGlvcyA8LjEwOyBvdmVyYWxsIG1heGltdW0gY29udmVyZ2VuY2UgcmF0aW8gPC4xNS4iLA0KICAgICAgICAgICBhbHBoYWJldCAgPSBjKCJTb21lIHN0cnVjdHVyYWwgbmV0d29yayBlZmZlY3RzIHdlcmUgcmF0aGVyIGltcG9ydGFudCBmb3Igc29tZSBjbHVicywgYnV0IG5vdCBmb3Igb3RoZXJzOyBmb3IgdGhlIGxhdHRlciwgd2UgZml4ZWQgdGhlc2UgZWZmZWN0cyB0byAwIChTRT1OQSkuIiwgIldlIGZpeGVkIGdlbmRlciBlZmZlY3RzIG9uIGt1ZG9zIHRpZSBmb3JtYXRpb24gYW5kIHJ1bm5pbmcgdm9sdW1lIGR5bmFtaWNzIHRvIDAgaW4gY2x1YiA0LiBWYXJpYXRpb24gYmV0d2VlbiB0aGUgZ2VuZGVycyB3YXMgbm90IHN1ZmZpY2llbnQgZm9yIG1vZGVsIGNvbnZlcmdlbmNlLiBTY29yZeKAk3R5cGUgdGVzdHMgaW5kaWNhdGVkIHRoYXQgZ2VuZGVyIGVmZmVjdHMgd2VyZSBub3Qgc2lnbmlmaWNhbnQuIiwgIlRoZSBGaXNoZXIgVGVzdCBjb21iaW5lcyBpbmRlcGVuZGVudCBwLXZhbHVlcyB0byB0ZXN0IHdoZXRoZXIgdGhlcmUgaXMgZXZpZGVuY2UgaW4gYXQgbGVhc3Qgb25lIG9mIHRoZSBjbHVicyBvZiBhIHBhcmFtZXRlciBiZWluZyBwb3NpdGl2ZSBvciBuZWdhdGl2ZSIpKQ0KDQpgYGANCg0KIyB7LX0NCg0KLS0tLQ0KDQoNCg0K


Copyright © 2021 Rob Franken