Relative importance
Here, we calculate the expected relative importance of our effect of
interest only (for more information, see
Indlekofer and Brandes, 2013). We present only a perspective of
RI (a) aggregated over all actors and (b) at time-point 1.
The following scripts reproduces the pie charts presented in the
manuscript (Figure 7):
# We use a function to load the objects under new names.
loadRData <- function(fileName){
#loads an RData file, and returns it
load(fileName)
get(ls()[ls() != "fileName"])
}
# get the RSiena object lists for both models (frequency and volume)
mydata_freq <- loadRData("clubdata_rsiena_freq.RData")
mydata_vol <- loadRData("clubdata_rsiena_vol.RData")
# we calculate RI of effects pertaining to running activity dynamics (both frequency and volume) across clubs
# we make a list, in which we store RI-objects for each club
RI_list <- list()
for (i in 1:5) { # for each club
#get sienaFit list
ansL <- loadRData(paste0("test/sienaFit/sienaFit_club", i, ".RData"))
#take model 5 (avAttH, avAttL, indegree...)
ans <- ansL[[5]]
# get only parameters for the evaluation function
theta.eval <- ans$theta[ans$effects$type[ans$effects$include]=="eval"]
myeff.eval <- ans$effects[ans$effects$type[ans$effects$include]=="eval",]
# only effects we are interested in
myeff.eval.beh <- myeff.eval[c(1, 16:20), ]
# note: also include outdegree (or another effect pertaining to network dynamics); apparently this is needed...
# first, I excluded the shape effects, as they heavily compound the resulting plots (they are most important...)
theta.eval.beh <- theta.eval[c(1, 16:20)]
# algorithm used
myalgo <- sienaAlgorithmCreate(projname = "test", nsub=5, n3=5000 )
# use sienaRI()
RI <- sienaRI(
data = mydata_freq[[i]],
theta = theta.eval.beh,
algorithm = myalgo,
effects = myeff.eval.beh
)
# extract RI for the behavior dynamics
RI_beh <- RI[[2]]
# take the statistics for time t
t = 1
RI_freq <- RI_beh$expectedRI[[t]]
# and repeat the same procedure for volume
ansL <- loadRData(paste0("test/sienaFit/volume/sienaFit_club", i, ".RData"))
ans <- ansL[[5]]
theta.eval <- ans$theta[ans$effects$type[ans$effects$include]=="eval"]
myeff.eval <- ans$effects[ans$effects$type[ans$effects$include]=="eval",]
myeff.eval.beh <- myeff.eval[c(1, 16:20), ]
theta.eval.beh <- theta.eval[c(1, 16:20)]
RI <- sienaRI(
data = mydata_vol[[i]],
theta = theta.eval.beh,
algorithm = myalgo,
effects = myeff.eval.beh
)
RI_beh <- RI[[2]]
RI_vol <- RI_beh$expectedRI[[t]]
# combine
RIc <- c(RI_freq, RI_vol)
# put in the list
RI_list[[i]] <- RIc
}
# we make a dataframe for plotting multiple pie charts
df_plot <- data.frame(
ri = unlist(RI_list),
eff = substring(RI[[2]]$effectNames, 15),
y = rep(c("Frequency", "Volume"), 10, each=5),
club = rep(c("Club 1", "Club 2", "Club 3", "Club 4", "Club 5"), 1, each = 10)
)
# alter effect names
df_plot$eff <- as.factor(df_plot$eff)
levels(df_plot$eff)[1] <- substring(levels(df_plot$eff)[1], 14)
levels(df_plot$eff)[2] <- "other activities"
# reorder effect for plot
df_plot$eff <- factor(df_plot$eff,
levels = c("indegree", "average attraction higher", "average attraction lower", "gender", "other activities"))
# nice colors
color <- brewer.pal(5, "Set2")
ggplot(df_plot, aes(x="", y=ri, fill=eff)) +
geom_bar(width = 1, size = 1, color = "white", stat = "identity") +
coord_polar("y") +
geom_text(aes(label = paste0(round(100*ri), "%")),
position = position_stack(vjust = 0.5)) +
labs(x = NULL, y = NULL, fill = "Effects",
title = "<b><span style = 'font-size:16pt'>Relative Importance (<i>RI</i>) of indegree and attraction higher/lower effects</span>",
caption = "<span style = 'font-size:10pt'><i>Note</i>: percentages indicate the extent to which effects determine whether actors make changes in their running attributes (i.e., frequency and volume).
Percentages indicate the importance of model parameters relative to one another. They should not be interpreted as absolute explained variance. Patterns presented here would change, would we include other effects (e.g., basic shape effects, covariate effects).
The pattern of relative importances of effects was consistent across time; here, we present t=1.") +
guides(fill = guide_legend()) +
scale_fill_manual(values = color) +
facet_grid(y~club, switch = "y") +
theme_classic() +
theme(axis.line = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
legend.title = element_blank(),
plot.title = element_textbox_simple(
padding = margin(5.5, 5.5, 5.5, 5.5),
margin = margin(0, 0, 5.5, 0),
fill = "lightsteelblue2",
lineheight=1),
strip.text.x = element_textbox(
size = 9,
color = "white", fill = "#5D729D", box.color = "#4A618C",
halign = 0.5, linetype = 1, r = unit(5, "pt"), width = unit(1, "npc"),
padding = margin(2, 0, 1, 0), margin = margin(3, 3, 3, 3)
),
strip.text.y = element_textbox_simple(
size=12,
face="bold.italic",
vjust=1),
strip.background = element_blank(),
plot.caption = element_textbox_simple(
padding = margin(2, 2, 2, 2),
margin = margin(0, 0, 2, 0),
fill = "lightsteelblue2",
lineheight=1,
vjust=1.5,
r = grid::unit(8, "pt")))

References
Indlekofer, Natalie, and Ulrik Brandes. 2013.
“Relative Importance
of Effects in Stochastic Actor-Oriented Models.” Network
Science 1 (3): 278–304.
doi:10.1017/nws.2013.21.
LS0tDQp0aXRsZTogIlJlbGF0aXZlIGltcG9ydGFuY2UiDQpkYXRlOiAiTGFzdCBjb21waWxlZCBvbiBgciBmb3JtYXQoU3lzLnRpbWUoKSwgJyVCLCAlWScpYCINCmJpYmxpb2dyYXBoeTogcmVmZXJlbmNlcy5iaWINCm91dHB1dDoNCiAgaHRtbF9kb2N1bWVudDoNCiAgICBjc3M6IHR3ZWFrcy5jc3MNCiAgICB0b2M6IG5vDQogICAgdG9jX2Zsb2F0OiBubw0KICAgIGNvbGxhcHNlZDogZmFsc2UNCiAgICBudW1iZXJfc2VjdGlvbnM6IGZhbHNlDQogICAgdG9jX2RlcHRoOiAxDQogICAgY29kZV9mb2xkaW5nOiBzaG93DQogICAgY29kZV9kb3dubG9hZDogeWVzDQotLS0NCg0KYGBge3IsIGdsb2JhbHNldHRpbmdzLCBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCByZXN1bHRzPSdoaWRlJ30NClN5cy5zZXRlbnYoTEFORyA9ICJlbiIpDQoNCmxpYnJhcnkoa25pdHIpDQpsaWJyYXJ5KFJTaWVuYSkNCmxpYnJhcnkoUkNvbG9yQnJld2VyKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShnZ3RleHQpDQoNCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkNCm9wdHNfY2h1bmskc2V0KHRpZHkub3B0cz1saXN0KHdpZHRoLmN1dG9mZj0xMDApLHRpZHk9VFJVRSwgd2FybmluZyA9IEZBTFNFLCBtZXNzYWdlID0gRkFMU0UsY29tbWVudCA9ICIjPiIsIGNhY2hlPVRSVUUsIGNsYXNzLnNvdXJjZT1jKCJ0ZXN0IiksIGNsYXNzLm91dHB1dD1jKCJ0ZXN0MiIpKQ0Kb3B0aW9ucyh3aWR0aCA9IDEwMCkNCnJnbDo6c2V0dXBLbml0cigpDQoNCmNvbG9yaXplIDwtIGZ1bmN0aW9uKHgsIGNvbG9yKSB7c3ByaW50ZigiPHNwYW4gc3R5bGU9J2NvbG9yOiAlczsnPiVzPC9zcGFuPiIsIGNvbG9yLCB4KSB9DQoNCmBgYA0KDQpgYGB7ciBrbGlwcHksIGVjaG89RkFMU0UsIGluY2x1ZGU9VFJVRX0NCmtsaXBweTo6a2xpcHB5KHBvc2l0aW9uID0gYygndG9wJywgJ3JpZ2h0JykpDQoja2xpcHB5OjprbGlwcHkoY29sb3IgPSAnZGFya3JlZCcpDQoja2xpcHB5OjprbGlwcHkodG9vbHRpcF9tZXNzYWdlID0gJ0NsaWNrIHRvIGNvcHknLCB0b29sdGlwX3N1Y2Nlc3MgPSAnRG9uZScpDQpgYGANCg0KDQotLS0tDQoNCiMgUmVsYXRpdmUgaW1wb3J0YW5jZQ0KDQpIZXJlLCB3ZSBjYWxjdWxhdGUgdGhlIGV4cGVjdGVkIHJlbGF0aXZlIGltcG9ydGFuY2Ugb2Ygb3VyIGVmZmVjdCBvZiBpbnRlcmVzdCBvbmx5IFtmb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIEluZGxla29mZXIgYW5kIEJyYW5kZXMsIC1AaW5kbGVrb2ZlcjIwMTNdLiBXZSBwcmVzZW50IG9ubHkgYSBwZXJzcGVjdGl2ZSBvZiBSSSAoYSkgYWdncmVnYXRlZCBvdmVyIGFsbCBhY3RvcnMgYW5kIChiKSBhdCB0aW1lLXBvaW50IDEuIA0KDQoNClRoZSBmb2xsb3dpbmcgc2NyaXB0cyByZXByb2R1Y2VzIHRoZSBwaWUgY2hhcnRzIHByZXNlbnRlZCBpbiB0aGUgbWFudXNjcmlwdCAoRmlndXJlIDcpOg0KDQpgYGB7ciBldmFsPUZ9DQojIFdlIHVzZSBhIGZ1bmN0aW9uIHRvIGxvYWQgdGhlIG9iamVjdHMgdW5kZXIgbmV3IG5hbWVzLg0KbG9hZFJEYXRhIDwtIGZ1bmN0aW9uKGZpbGVOYW1lKXsNCiAgI2xvYWRzIGFuIFJEYXRhIGZpbGUsIGFuZCByZXR1cm5zIGl0DQogIGxvYWQoZmlsZU5hbWUpDQogIGdldChscygpW2xzKCkgIT0gImZpbGVOYW1lIl0pDQp9DQoNCiMgZ2V0IHRoZSBSU2llbmEgb2JqZWN0IGxpc3RzIGZvciBib3RoIG1vZGVscyAoZnJlcXVlbmN5IGFuZCB2b2x1bWUpDQpteWRhdGFfZnJlcSA8LSBsb2FkUkRhdGEoImNsdWJkYXRhX3JzaWVuYV9mcmVxLlJEYXRhIikNCm15ZGF0YV92b2wgPC0gbG9hZFJEYXRhKCJjbHViZGF0YV9yc2llbmFfdm9sLlJEYXRhIikNCg0KIyB3ZSBjYWxjdWxhdGUgUkkgb2YgZWZmZWN0cyBwZXJ0YWluaW5nIHRvIHJ1bm5pbmcgYWN0aXZpdHkgZHluYW1pY3MgKGJvdGggZnJlcXVlbmN5IGFuZCB2b2x1bWUpIGFjcm9zcyBjbHVicw0KDQoNCiMgd2UgbWFrZSBhIGxpc3QsIGluIHdoaWNoIHdlIHN0b3JlIFJJLW9iamVjdHMgZm9yIGVhY2ggY2x1Yg0KUklfbGlzdCA8LSBsaXN0KCkNCg0KZm9yIChpIGluIDE6NSkgeyAjIGZvciBlYWNoIGNsdWINCg0KICAjZ2V0IHNpZW5hRml0IGxpc3QgDQogDQogIGFuc0wgPC0gbG9hZFJEYXRhKHBhc3RlMCgidGVzdC9zaWVuYUZpdC9zaWVuYUZpdF9jbHViIiwgaSwgIi5SRGF0YSIpKQ0KDQogICN0YWtlIG1vZGVsIDUgKGF2QXR0SCwgYXZBdHRMLCBpbmRlZ3JlZS4uLikNCiAgYW5zIDwtIGFuc0xbWzVdXQ0KICANCiAgIyBnZXQgb25seSBwYXJhbWV0ZXJzIGZvciB0aGUgZXZhbHVhdGlvbiBmdW5jdGlvbg0KICB0aGV0YS5ldmFsIDwtIGFucyR0aGV0YVthbnMkZWZmZWN0cyR0eXBlW2FucyRlZmZlY3RzJGluY2x1ZGVdPT0iZXZhbCJdDQogIG15ZWZmLmV2YWwgPC0gYW5zJGVmZmVjdHNbYW5zJGVmZmVjdHMkdHlwZVthbnMkZWZmZWN0cyRpbmNsdWRlXT09ImV2YWwiLF0NCiAgDQogICMgb25seSBlZmZlY3RzIHdlIGFyZSBpbnRlcmVzdGVkIGluDQogIG15ZWZmLmV2YWwuYmVoIDwtIG15ZWZmLmV2YWxbYygxLCAxNjoyMCksIF0gDQogICMgbm90ZTogYWxzbyBpbmNsdWRlIG91dGRlZ3JlZSAob3IgYW5vdGhlciBlZmZlY3QgcGVydGFpbmluZyB0byBuZXR3b3JrIGR5bmFtaWNzKTsgYXBwYXJlbnRseSB0aGlzIGlzIG5lZWRlZC4uLg0KICAjIGZpcnN0LCBJIGV4Y2x1ZGVkIHRoZSBzaGFwZSBlZmZlY3RzLCBhcyB0aGV5IGhlYXZpbHkgY29tcG91bmQgdGhlIHJlc3VsdGluZyBwbG90cyAodGhleSBhcmUgbW9zdCBpbXBvcnRhbnQuLi4pDQogIHRoZXRhLmV2YWwuYmVoIDwtIHRoZXRhLmV2YWxbYygxLCAxNjoyMCldIA0KICANCiAgIyBhbGdvcml0aG0gdXNlZA0KICBteWFsZ28gPC0gc2llbmFBbGdvcml0aG1DcmVhdGUocHJvam5hbWUgPSAidGVzdCIsIG5zdWI9NSwgbjM9NTAwMCApDQogIA0KICAjIHVzZSBzaWVuYVJJKCkNCiAgUkkgPC0gc2llbmFSSSgNCiAgICBkYXRhID0gbXlkYXRhX2ZyZXFbW2ldXSwNCiAgICB0aGV0YSA9IHRoZXRhLmV2YWwuYmVoLA0KICAgIGFsZ29yaXRobSA9IG15YWxnbywNCiAgICBlZmZlY3RzID0gbXllZmYuZXZhbC5iZWgNCiAgKQ0KICANCiAgIyBleHRyYWN0IFJJIGZvciB0aGUgYmVoYXZpb3IgZHluYW1pY3MNCiAgUklfYmVoIDwtIFJJW1syXV0NCiAgDQogICMgdGFrZSB0aGUgc3RhdGlzdGljcyBmb3IgdGltZSB0DQogIHQgPSAxDQogIFJJX2ZyZXEgPC0gUklfYmVoJGV4cGVjdGVkUklbW3RdXQ0KICANCiAgIyBhbmQgcmVwZWF0IHRoZSBzYW1lIHByb2NlZHVyZSBmb3Igdm9sdW1lDQogIGFuc0wgPC0gbG9hZFJEYXRhKHBhc3RlMCgidGVzdC9zaWVuYUZpdC92b2x1bWUvc2llbmFGaXRfY2x1YiIsIGksICIuUkRhdGEiKSkNCiAgYW5zIDwtIGFuc0xbWzVdXQ0KICB0aGV0YS5ldmFsIDwtIGFucyR0aGV0YVthbnMkZWZmZWN0cyR0eXBlW2FucyRlZmZlY3RzJGluY2x1ZGVdPT0iZXZhbCJdDQogIG15ZWZmLmV2YWwgPC0gYW5zJGVmZmVjdHNbYW5zJGVmZmVjdHMkdHlwZVthbnMkZWZmZWN0cyRpbmNsdWRlXT09ImV2YWwiLF0NCiAgbXllZmYuZXZhbC5iZWggPC0gbXllZmYuZXZhbFtjKDEsIDE2OjIwKSwgXQ0KICB0aGV0YS5ldmFsLmJlaCA8LSB0aGV0YS5ldmFsW2MoMSwgMTY6MjApXQ0KICBSSSA8LSBzaWVuYVJJKA0KICAgIGRhdGEgPSBteWRhdGFfdm9sW1tpXV0sDQogICAgdGhldGEgPSB0aGV0YS5ldmFsLmJlaCwNCiAgICBhbGdvcml0aG0gPSBteWFsZ28sDQogICAgZWZmZWN0cyA9IG15ZWZmLmV2YWwuYmVoDQogICkNCiAgUklfYmVoIDwtIFJJW1syXV0NCiAgUklfdm9sIDwtIFJJX2JlaCRleHBlY3RlZFJJW1t0XV0NCiAgDQogICMgY29tYmluZSANCiAgUkljIDwtIGMoUklfZnJlcSwgUklfdm9sKQ0KICANCiAgIyBwdXQgaW4gdGhlIGxpc3QNCiAgUklfbGlzdFtbaV1dIDwtIFJJYw0KfQ0KDQojIHdlIG1ha2UgYSBkYXRhZnJhbWUgZm9yIHBsb3R0aW5nIG11bHRpcGxlIHBpZSBjaGFydHMNCmRmX3Bsb3QgPC0gZGF0YS5mcmFtZSgNCiAgcmkgPSB1bmxpc3QoUklfbGlzdCksDQogIGVmZiA9IHN1YnN0cmluZyhSSVtbMl1dJGVmZmVjdE5hbWVzLCAxNSksDQogIHkgPSByZXAoYygiRnJlcXVlbmN5IiwgIlZvbHVtZSIpLCAxMCwgZWFjaD01KSwNCiAgY2x1YiA9IHJlcChjKCJDbHViIDEiLCAiQ2x1YiAyIiwgIkNsdWIgMyIsICJDbHViIDQiLCAiQ2x1YiA1IiksIDEsIGVhY2ggPSAxMCkNCg0KKQ0KDQojIGFsdGVyIGVmZmVjdCBuYW1lcw0KZGZfcGxvdCRlZmYgPC0gYXMuZmFjdG9yKGRmX3Bsb3QkZWZmKQ0KbGV2ZWxzKGRmX3Bsb3QkZWZmKVsxXSA8LSBzdWJzdHJpbmcobGV2ZWxzKGRmX3Bsb3QkZWZmKVsxXSwgMTQpDQpsZXZlbHMoZGZfcGxvdCRlZmYpWzJdIDwtICJvdGhlciBhY3Rpdml0aWVzIg0KDQojIHJlb3JkZXIgZWZmZWN0IGZvciBwbG90DQpkZl9wbG90JGVmZiA8LSBmYWN0b3IoZGZfcGxvdCRlZmYsDQogICAgICAgICAgICAgICAgICAgICBsZXZlbHMgPSBjKCJpbmRlZ3JlZSIsICJhdmVyYWdlIGF0dHJhY3Rpb24gaGlnaGVyIiwgImF2ZXJhZ2UgYXR0cmFjdGlvbiBsb3dlciIsICJnZW5kZXIiLCAib3RoZXIgYWN0aXZpdGllcyIpKQ0KIyBuaWNlIGNvbG9ycw0KY29sb3IgPC0gYnJld2VyLnBhbCg1LCAiU2V0MiIpDQoNCmdncGxvdChkZl9wbG90LCBhZXMoeD0iIiwgeT1yaSwgZmlsbD1lZmYpKSArDQogIGdlb21fYmFyKHdpZHRoID0gMSwgc2l6ZSA9IDEsIGNvbG9yID0gIndoaXRlIiwgc3RhdCA9ICJpZGVudGl0eSIpICsNCiAgY29vcmRfcG9sYXIoInkiKSArDQogIGdlb21fdGV4dChhZXMobGFiZWwgPSBwYXN0ZTAocm91bmQoMTAwKnJpKSwgIiUiKSksIA0KICAgICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9zdGFjayh2anVzdCA9IDAuNSkpICsNCiAgbGFicyh4ID0gTlVMTCwgeSA9IE5VTEwsIGZpbGwgPSAiRWZmZWN0cyIsIA0KICAgICAgIHRpdGxlID0gIjxiPjxzcGFuIHN0eWxlID0gJ2ZvbnQtc2l6ZToxNnB0Jz5SZWxhdGl2ZSBJbXBvcnRhbmNlICg8aT5SSTwvaT4pIG9mIGluZGVncmVlIGFuZCBhdHRyYWN0aW9uIGhpZ2hlci9sb3dlciBlZmZlY3RzPC9zcGFuPiIsDQogICAgICAgY2FwdGlvbiA9ICI8c3BhbiBzdHlsZSA9ICdmb250LXNpemU6MTBwdCc+PGk+Tm90ZTwvaT46IHBlcmNlbnRhZ2VzIGluZGljYXRlIHRoZSBleHRlbnQgdG8gd2hpY2ggZWZmZWN0cyBkZXRlcm1pbmUgd2hldGhlciBhY3RvcnMgbWFrZSBjaGFuZ2VzIGluIHRoZWlyIHJ1bm5pbmcgYXR0cmlidXRlcyAoaS5lLiwgZnJlcXVlbmN5IGFuZCB2b2x1bWUpLg0KICAgICAgIFBlcmNlbnRhZ2VzIGluZGljYXRlIHRoZSBpbXBvcnRhbmNlIG9mIG1vZGVsIHBhcmFtZXRlcnMgcmVsYXRpdmUgdG8gb25lIGFub3RoZXIuIFRoZXkgc2hvdWxkIG5vdCBiZSBpbnRlcnByZXRlZCBhcyBhYnNvbHV0ZSBleHBsYWluZWQgdmFyaWFuY2UuIFBhdHRlcm5zIHByZXNlbnRlZCBoZXJlIHdvdWxkIGNoYW5nZSwgd291bGQgd2UgaW5jbHVkZSBvdGhlciBlZmZlY3RzIChlLmcuLCBiYXNpYyBzaGFwZSBlZmZlY3RzLCBjb3ZhcmlhdGUgZWZmZWN0cykuIA0KICAgICAgIFRoZSBwYXR0ZXJuIG9mIHJlbGF0aXZlIGltcG9ydGFuY2VzIG9mIGVmZmVjdHMgd2FzIGNvbnNpc3RlbnQgYWNyb3NzIHRpbWU7IGhlcmUsIHdlIHByZXNlbnQgdD0xLiIpICsNCiAgZ3VpZGVzKGZpbGwgPSBndWlkZV9sZWdlbmQoKSkgKw0KICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjb2xvcikgKw0KICBmYWNldF9ncmlkKHl+Y2x1Yiwgc3dpdGNoID0gInkiKSArDQogIHRoZW1lX2NsYXNzaWMoKSArDQogICAgdGhlbWUoYXhpcy5saW5lID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgYXhpcy50ZXh0ID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgYXhpcy50aWNrcyA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgIGxlZ2VuZC50aXRsZSA9IGVsZW1lbnRfYmxhbmsoKSwNCiAgICAgIA0KICAgICAgcGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dGJveF9zaW1wbGUoDQogICAgICAgIHBhZGRpbmcgPSBtYXJnaW4oNS41LCA1LjUsIDUuNSwgNS41KSwNCiAgICAgICAgbWFyZ2luID0gbWFyZ2luKDAsIDAsIDUuNSwgMCksDQogICAgICAgIGZpbGwgPSAibGlnaHRzdGVlbGJsdWUyIiwNCiAgICAgICAgbGluZWhlaWdodD0xKSwNCiAgICAgIA0KICAgICAgc3RyaXAudGV4dC54ID0gZWxlbWVudF90ZXh0Ym94KA0KICAgICAgICBzaXplID0gOSwNCiAgICAgICAgY29sb3IgPSAid2hpdGUiLCBmaWxsID0gIiM1RDcyOUQiLCBib3guY29sb3IgPSAiIzRBNjE4QyIsDQogICAgICAgIGhhbGlnbiA9IDAuNSwgbGluZXR5cGUgPSAxLCByID0gdW5pdCg1LCAicHQiKSwgd2lkdGggPSB1bml0KDEsICJucGMiKSwNCiAgICAgICAgcGFkZGluZyA9IG1hcmdpbigyLCAwLCAxLCAwKSwgbWFyZ2luID0gbWFyZ2luKDMsIDMsIDMsIDMpDQogICAgICApLA0KICAgICAgDQogICAgICBzdHJpcC50ZXh0LnkgPSBlbGVtZW50X3RleHRib3hfc2ltcGxlKA0KICAgICAgICBzaXplPTEyLA0KICAgICAgICBmYWNlPSJib2xkLml0YWxpYyIsDQogICAgICAgIHZqdXN0PTEpLA0KICAgICAgDQogICAgICBzdHJpcC5iYWNrZ3JvdW5kID0gZWxlbWVudF9ibGFuaygpLA0KICAgICAgDQogICAgICBwbG90LmNhcHRpb24gPSBlbGVtZW50X3RleHRib3hfc2ltcGxlKA0KICAgICAgICBwYWRkaW5nID0gbWFyZ2luKDIsIDIsIDIsIDIpLA0KICAgICAgICBtYXJnaW4gPSBtYXJnaW4oMCwgMCwgMiwgMCksDQogICAgICAgIGZpbGwgPSAibGlnaHRzdGVlbGJsdWUyIiwNCiAgICAgICAgbGluZWhlaWdodD0xLA0KICAgICAgICB2anVzdD0xLjUsDQogICAgICAgIHIgPSBncmlkOjp1bml0KDgsICJwdCIpKSkNCmBgYA0KDQohW10ocmkuanBnKQ0KDQotLS0tDQoNCg0KIyMjIFJlZmVyZW5jZXMgDQo=