9.3: Temporal Dynamics
library(tidyverse)
library(tikzDevice)
load("./data/temp_dyn_democ.rda")
load("./data/temp_dyn_rol.rda")
load("./data/temp_dyn_pubgoods.rda")
all_temp_dyn <- temp_dyn_democ %>%
bind_rows(., temp_dyn_rol) %>%
bind_rows(., temp_dyn_pubgoods)
all_temp_dyn <- all_temp_dyn %>%
ungroup() %>%
# mutate(estimate = ifelse(dem_score == "Freedom House", estimate * 10, estimate),
# std.error = ifelse(dem_score == "Freedom House", estimate * 10, std.error)) %>%
mutate(dv = c(rep("Democracy Scores", 10),
rep("Rule of Law", 10),
rep("Public Goods", 10))) %>%
group_by(dv) %>%
mutate(legend = c(rep(1,5), c(rep(2, 5)))) %>%
ungroup() %>%
mutate(dv = forcats::fct_relevel(dv, c("Democracy Scores", "Rule of Law", "Public Goods")))
all_temp_dyn_plot <- ggplot(all_temp_dyn,
aes(x = name,
y = estimate,
group = dem_score,
color = factor(legend))) +
geom_point( aes(group = dem_score), size = 1.7,
position = position_dodge(width = .5)) +
geom_errorbar(aes(ymin = estimate - 1.67 * std.error,
ymax = estimate + 1.67 * std.error,
linetype = factor(legend)),
width = 0,
position = position_dodge(width = .5)) +
geom_hline(yintercept = 0, linetype = 2) +
scale_color_manual("", values = c("#4575b4", "#e41a1c"),
labels = c("Democracy Scores: Polity\nRule of Law: LJI\nPublic Goods: Pub/Part. Spending", "Democracy Scores: FH\nRule of Law: V-Dem\nPublic Goods: Political Corruption")) +
scale_linetype_manual("", values = c(1, 5),
labels = c("Democracy Scores: Polity\nRule of Law: LJI\nPublic Goods: Pub/Part. Spending", "Democracy Scores: FH\nRule of Law: V-Dem\nPublic Goods: Political Corruption")) +
theme_bw()+
labs(x = "Year after t0", y = "Estimate of Interaction Coefficient \n between Power-Sharing (cabinet)\n and Aid/GDP (log)") +
theme(legend.position = "bottom") +
theme(legend.key.size=unit(3,"lines")) +
facet_wrap(~dv, nrow = 1, scales = "free_y")
# Output for Manuscript
# options( tikzDocumentDeclaration = "\\documentclass[11pt]{article}" )
tikz("../figures/all_temp_dyn_plot.tex", height = 3.5)
print(all_temp_dyn_plot)
dev.off()
## pdf
## 2
# Output for Rep. Archive
print(all_temp_dyn_plot)

LS0tDQp0aXRsZTogIkNoYXB0ZXIgOTogQ29uY2x1c2lvbiINCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiB0cnVlDQogICAgdG9jX2Zsb2F0OiANCiAgICAgIGNvbGxhcHNlZDogZmFsc2UNCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlDQogICAgY29kZV9mb2xkaW5nOiAiaGlkZSINCg0KLS0tDQoNCiMgRmlndXJlIDkuMTogVGhlIFNpZ25pZmljYW5jZSBvZiBTZW5pb3IgTGV2ZWwgUG93ZXItU2hhcmluZw0KDQpgYGB7ciwgZmlnLmFsaWduID0gImNlbnRlciIsIG1lc3NhZ2U9Riwgd2FybmluZz1GLCBjYWNoZSA9IFQsIGNvbW1lbnRzID0gRiwgZmlnLndpZHRoID0gOCwgZmlnLmhlaWdodCA9IDMsIGRldiA9ICJDYWlyb1BORyIgfQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KHRpa3pEZXZpY2UpDQoNCmxvYWQoIi4vZGF0YS9tZWNoYW5pc21fbW9kZWxzX2RlbW9jLnJkYSIpDQpsb2FkKCIuL2RhdGEvbWVjaGFuaXNtX21vZGVsc19lbGVjLnJkYSIpDQpsb2FkKCIuL2RhdGEvbWVjaGFuaXNtX21vZGVsc19yb2wucmRhIikNCmxvYWQoIi4vZGF0YS9tZWNoYW5pc21fbW9kZWxzX3B1Ymdvb2RzLnJkYSIpDQoNCg0KbWVjaGFuaXNtX21vZGVsc19kZW1vYyA8LSBtZWNoYW5pc21fbW9kZWxzX2RlbW9jICU+JSANCiAgbXV0YXRlKGVsZW1lbnQgPSAiRGVtb2NyYWN5IFNjb3JlcyIpDQoNCm1lY2hhbmlzbV9tb2RlbHNfZWxlYyA8LSBtZWNoYW5pc21fbW9kZWxzX2VsZWMgJT4lIA0KICBtdXRhdGUoZWxlbWVudCA9ICJFbGVjdGlvbiBRdWFsaXR5IikNCg0KbW9kZWxfb3V0X3JvbCA8LSBtb2RlbF9vdXRfcm9sICU+JSANCiAgbXV0YXRlKGVsZW1lbnQgPSAiUnVsZSBvZiBMYXciKQ0KDQptb2RlbF9vdXRfcHViZ29vZHMgPC0gbW9kZWxfb3V0X3B1Ymdvb2RzICU+JSANCiAgbXV0YXRlKGVsZW1lbnQgPSAiUHVibGljIEdvb2RzIikNCg0KYWxsX2VmZmVjdHMgPC0gYmluZF9yb3dzKG1lY2hhbmlzbV9tb2RlbHNfZGVtb2MsIG1lY2hhbmlzbV9tb2RlbHNfZWxlYykgJT4lIA0KICBiaW5kX3Jvd3MoLiwgbW9kZWxfb3V0X3JvbCkgJT4lIA0KICBiaW5kX3Jvd3MoLiwgbW9kZWxfb3V0X3B1Ymdvb2RzKQ0KDQphbGxfZWZmZWN0cyA8LSBhbGxfZWZmZWN0cyAlPiUgDQogIGZpbHRlcihncmVwbCgiKFN8cyllbmlvciIsIG5hbWUpKSAlPiUgDQogIG11dGF0ZShuYW1lID0gc3RyaW5ncjo6c3RyX3JlcGxhY2VfYWxsKG5hbWUsICJub25zZW5pb3JDT1VOVCIsICJOb25zZW5pb3IgUFMiKSwgDQogICAgICAgICBuYW1lID0gc3RyaW5ncjo6c3RyX3JlcGxhY2VfYWxsKG5hbWUsICJzZW5pb3JDT1VOVCIsICJTZW5pb3IgUFMiKSkgJT4lIA0KICBtdXRhdGUoZWxlbWVudCA9IGZvcmNhdHM6OmZjdF9yZWxldmVsKGVsZW1lbnQsIGMoIkRlbW9jcmFjeSBTY29yZXMiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVsZWN0aW9uIFF1YWxpdHkiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJ1bGUgb2YgTGF3IiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQdWJsaWMgR29vZHMiKSkpDQogICAgICAgICANCg0KYWxsX2VmZmVjdHNfcGxvdCA8LSBnZ3Bsb3QoYWxsX2VmZmVjdHMsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgYWVzKHggPSBuYW1lLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ID0gZXN0aW1hdGUpKSArDQogIGdlb21fcG9pbnQoKSArIA0KICBnZW9tX2Vycm9yYmFyKGFlcyh5bWluID0gZXN0aW1hdGUgLSAxLjY3ICogc3RkLmVycm9yLCANCiAgICAgICAgICAgICAgICAgICAgeW1heCA9IGVzdGltYXRlICsgMS42NyAqIHN0ZC5lcnJvciksDQogICAgICAgICAgICAgICAgd2lkdGggPSAwKSArDQogIGZhY2V0X3dyYXAoIH4gZWxlbWVudCwgc2NhbGVzID0gImZyZWVfeSIsIG5yb3cgPSAxKSArDQogIHNjYWxlX3hfZGlzY3JldGUobGFiZWxzID0gYygiTm9uc2VuaW9yIFxuIFBTIiwgIlNlbmlvciBcbiBQUyIpKSArDQogIHRoZW1lX2J3KCkgKw0KICBsYWJzKHkgPSAiQ29lZmZpY2llbnQgRXN0aW1hdGUgXG4gb2YgdGhlIEludGVyYWN0aW9uIFRlcm0iLCB4ID0gIiIpDQoNCg0KIyBPdXRwdXQgZm9yIE1hbnVzY3JpcHQNCiMgb3B0aW9ucyggdGlrekRvY3VtZW50RGVjbGFyYXRpb24gPSAiXFxkb2N1bWVudGNsYXNzWzExcHRde2FydGljbGV9IiApDQojIHRpa3ooIi4uL2ZpZ3VyZXMvc2VuaW9yUFNjb21wYXJpc29uLnRleCIsIGhlaWdodCA9IDIuNSkNCiMgcHJpbnQoYWxsX2VmZmVjdHNfcGxvdCkNCiMgZGV2Lm9mZigpDQoNCiMgT3V0cHV0IGZvciBSZXAuIEFyY2hpdmUNCnByaW50KGFsbF9lZmZlY3RzX3Bsb3QpDQoNCiAgDQpgYGANCg0KDQoNCiMgRmlndXJlIDkuMjogQ29tcGFyaW5nIGRpZmZlcmVudCBhaWQgdHlwZXMNCg0KYGBge3IsIGZpZy5hbGlnbiA9ICJjZW50ZXIiLCBtZXNzYWdlPUYsIHdhcm5pbmc9RiwgY2FjaGUgPSBULCBjb21tZW50cyA9IEYsLCBmaWcud2lkdGggPSA4LCBmaWcuaGVpZ2h0ID0gMyxkZXYgPSAiQ2Fpcm9QTkciIH0NCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeSh0aWt6RGV2aWNlKQ0KDQpsb2FkKCIuL2RhdGEvbWVjaGFuaXNtX21vZGVsc19kZW1vYy5yZGEiKQ0KbG9hZCgiLi9kYXRhL21lY2hhbmlzbV9tb2RlbHNfZWxlYy5yZGEiKQ0KbG9hZCgiLi9kYXRhL21lY2hhbmlzbV9tb2RlbHNfcm9sLnJkYSIpDQpsb2FkKCIuL2RhdGEvbWVjaGFuaXNtX21vZGVsc19wdWJnb29kcy5yZGEiKQ0KDQoNCm1lY2hhbmlzbV9tb2RlbHNfZGVtb2MgPC0gbWVjaGFuaXNtX21vZGVsc19kZW1vYyAlPiUgDQogIG11dGF0ZShlbGVtZW50ID0gIkRlbW9jcmFjeSBTY29yZXMiKQ0KDQptZWNoYW5pc21fbW9kZWxzX2VsZWMgPC0gbWVjaGFuaXNtX21vZGVsc19lbGVjICU+JSANCiAgbXV0YXRlKGVsZW1lbnQgPSAiRWxlY3Rpb24gUXVhbGl0eSIpDQoNCm1vZGVsX291dF9yb2wgPC0gbW9kZWxfb3V0X3JvbCAlPiUgDQogIG11dGF0ZShlbGVtZW50ID0gIlJ1bGUgb2YgTGF3IikNCg0KbW9kZWxfb3V0X3B1Ymdvb2RzIDwtIG1vZGVsX291dF9wdWJnb29kcyAlPiUgDQogIG11dGF0ZShlbGVtZW50ID0gIlB1YmxpYyBHb29kcyIpDQoNCmFsbF9lZmZlY3RzIDwtIGJpbmRfcm93cyhtZWNoYW5pc21fbW9kZWxzX2RlbW9jLCBtZWNoYW5pc21fbW9kZWxzX2VsZWMpICU+JSANCiAgYmluZF9yb3dzKC4sIG1vZGVsX291dF9yb2wpICU+JSANCiAgYmluZF9yb3dzKC4sIG1vZGVsX291dF9wdWJnb29kcykNCg0KYWxsX2VmZmVjdHMgPC0gYWxsX2VmZmVjdHMgJT4lIA0KICBmaWx0ZXIoZ3JlcGwoIihBfGEpaWR8REdBfGRnYXxiZ2F8cGdhIiwgbmFtZSkpICU+JSANCiAgbXV0YXRlKG5hbWUgPSBzdHJpbmdyOjpzdHJfcmVwbGFjZV9hbGwobmFtZSwgImRnYV9nZHBfbG4iLCAiREdBIiksIA0KICAgICAgICAgbmFtZSA9IHN0cmluZ3I6OnN0cl9yZXBsYWNlX2FsbChuYW1lLCAiYmdhX2dkcF9sbiIsICJCdWRnZXQgQWlkIiksDQogICAgICAgICBuYW1lID0gc3RyaW5ncjo6c3RyX3JlcGxhY2VfYWxsKG5hbWUsICJwZ2FfZ2RwX2xuIiwgIlByb2dyYW0gQWlkIikpICU+JSANCiAgbXV0YXRlKGVsZW1lbnQgPSBmb3JjYXRzOjpmY3RfcmVsZXZlbChlbGVtZW50LCBjKCJEZW1vY3JhY3kgU2NvcmVzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFbGVjdGlvbiBRdWFsaXR5IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSdWxlIG9mIExhdyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUHVibGljIEdvb2RzIikpKSAgJT4lDQogIG11dGF0ZShuYW1lID0gZm9yY2F0czo6ZmN0X3JlbGV2ZWwobmFtZSwgYygiREdBIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQcm9ncmFtIEFpZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQnVkZ2V0IEFpZCIpKSkNCiAgIyAgICAgICAgDQoNCmFsbF9lZmZlY3RzX3Bsb3QgPC0gZ2dwbG90KGFsbF9lZmZlY3RzLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGFlcyh4ID0gbmFtZSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeSA9IGVzdGltYXRlKSkgKw0KICBnZW9tX3BvaW50KCkgKyANCiAgZ2VvbV9lcnJvcmJhcihhZXMoeW1pbiA9IGVzdGltYXRlIC0gMS42NyAqIHN0ZC5lcnJvciwgDQogICAgICAgICAgICAgICAgICAgIHltYXggPSBlc3RpbWF0ZSArIDEuNjcgKiBzdGQuZXJyb3IpLA0KICAgICAgICAgICAgICAgIHdpZHRoID0gMCkgKw0KICBzY2FsZV94X2Rpc2NyZXRlKGxhYmVscyA9IGMoIkRHQSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlByb2dyYW0gXG4gQWlkIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQnVkZ2V0IFxuIEFpZCIpKSArDQogIGdlb21faGxpbmUoeWludGVyY2VwdCA9IDAsIGxpbmV0eXBlID0gMikgKyANCiAgZmFjZXRfd3JhcCggfiBlbGVtZW50LCBzY2FsZXMgPSAiZnJlZV95IiwgbnJvdyA9IDEpICsNCiAgdGhlbWVfYncoKSArDQogIGxhYnMoeSA9ICJDb2VmZmljaWVudCBFc3RpbWF0ZSBcbiBvZiB0aGUgSW50ZXJhY3Rpb24gVGVybSIsIHggPSAiIikNCiAgDQoNCiMgT3V0cHV0IGZvciBNYW51c2NyaXB0DQojIG9wdGlvbnMoIHRpa3pEb2N1bWVudERlY2xhcmF0aW9uID0gIlxcZG9jdW1lbnRjbGFzc1sxMXB0XXthcnRpY2xlfSIgKQ0KIyB0aWt6KCIuLi9maWd1cmVzL2FpZF90eXBlX2NvbXBhcmlzb24udGV4IiwgaGVpZ2h0ID0gMi41KQ0KIyBwcmludChhbGxfZWZmZWN0c19wbG90KQ0KIyBkZXYub2ZmKCkNCg0KIyBPdXRwdXQgZm9yIFJlcC4gQXJjaGl2ZQ0KcHJpbnQoYWxsX2VmZmVjdHNfcGxvdCkNCg0KYGBgDQoNCiMgOS4zOiBUZW1wb3JhbCBEeW5hbWljcw0KDQpgYGB7ciwgZmlnLmFsaWduID0gImNlbnRlciIsIG1lc3NhZ2U9Riwgd2FybmluZz1GLCBjYWNoZSA9IFQsIGNvbW1lbnRzID0gRiwgLCBmaWcud2lkdGggPSA4LCBmaWcuaGVpZ2h0ID0gNCxkZXYgPSAiQ2Fpcm9QTkciIH0NCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeSh0aWt6RGV2aWNlKQ0KDQpsb2FkKCIuL2RhdGEvdGVtcF9keW5fZGVtb2MucmRhIikNCmxvYWQoIi4vZGF0YS90ZW1wX2R5bl9yb2wucmRhIikNCmxvYWQoIi4vZGF0YS90ZW1wX2R5bl9wdWJnb29kcy5yZGEiKQ0KDQoNCmFsbF90ZW1wX2R5biA8LSB0ZW1wX2R5bl9kZW1vYyAlPiUgDQogIGJpbmRfcm93cyguLCB0ZW1wX2R5bl9yb2wpICU+JSANCiAgYmluZF9yb3dzKC4sIHRlbXBfZHluX3B1Ymdvb2RzKQ0KDQphbGxfdGVtcF9keW4gPC0gYWxsX3RlbXBfZHluICU+JSANCiAgdW5ncm91cCgpICU+JSANCiAgIyBtdXRhdGUoZXN0aW1hdGUgPSBpZmVsc2UoZGVtX3Njb3JlID09ICJGcmVlZG9tIEhvdXNlIiwgZXN0aW1hdGUgKiAxMCwgZXN0aW1hdGUpLCANCiAgIyAgICAgICAgc3RkLmVycm9yID0gaWZlbHNlKGRlbV9zY29yZSA9PSAiRnJlZWRvbSBIb3VzZSIsIGVzdGltYXRlICogMTAsIHN0ZC5lcnJvcikpICU+JSANCiAgbXV0YXRlKGR2ID0gYyhyZXAoIkRlbW9jcmFjeSBTY29yZXMiLCAxMCksIA0KICAgICAgICAgICAgICAgIHJlcCgiUnVsZSBvZiBMYXciLCAxMCksIA0KICAgICAgICAgICAgICAgIHJlcCgiUHVibGljIEdvb2RzIiwgMTApKSkgJT4lIA0KICBncm91cF9ieShkdikgJT4lIA0KICBtdXRhdGUobGVnZW5kID0gYyhyZXAoMSw1KSwgYyhyZXAoMiwgNSkpKSkgJT4lIA0KICB1bmdyb3VwKCkgJT4lIA0KICBtdXRhdGUoZHYgPSBmb3JjYXRzOjpmY3RfcmVsZXZlbChkdiwgYygiRGVtb2NyYWN5IFNjb3JlcyIsICJSdWxlIG9mIExhdyIsICJQdWJsaWMgR29vZHMiKSkpDQoNCmFsbF90ZW1wX2R5bl9wbG90IDwtIGdncGxvdChhbGxfdGVtcF9keW4sIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZXMoeCA9IG5hbWUsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeSA9IGVzdGltYXRlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAgPSBkZW1fc2NvcmUsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IgPSBmYWN0b3IobGVnZW5kKSkpICsNCiAgZ2VvbV9wb2ludCggYWVzKGdyb3VwID0gZGVtX3Njb3JlKSwgc2l6ZSA9IDEuNywgDQogICAgICAgICAgICAgIHBvc2l0aW9uID0gcG9zaXRpb25fZG9kZ2Uod2lkdGggPSAuNSkpICsgDQogIA0KICBnZW9tX2Vycm9yYmFyKGFlcyh5bWluID0gZXN0aW1hdGUgLSAxLjY3ICogc3RkLmVycm9yLCANCiAgICAgICAgICAgICAgICAgICAgeW1heCA9IGVzdGltYXRlICsgMS42NyAqIHN0ZC5lcnJvciwgDQogICAgICAgICAgICAgICAgbGluZXR5cGUgPSBmYWN0b3IobGVnZW5kKSksIA0KICAgICAgICAgICAgICAgIHdpZHRoID0gMCwNCiAgICAgICAgICAgICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uX2RvZGdlKHdpZHRoID0gLjUpKSArDQogIA0KICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQgPSAwLCBsaW5ldHlwZSA9IDIpICsNCiAgc2NhbGVfY29sb3JfbWFudWFsKCIiLCB2YWx1ZXMgPSBjKCIjNDU3NWI0IiwgIiNlNDFhMWMiKSwNCiAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9IGMoIkRlbW9jcmFjeSBTY29yZXM6IFBvbGl0eVxuUnVsZSBvZiBMYXc6IExKSVxuUHVibGljIEdvb2RzOiBQdWIvUGFydC4gU3BlbmRpbmciLCAiRGVtb2NyYWN5IFNjb3JlczogRkhcblJ1bGUgb2YgTGF3OiBWLURlbVxuUHVibGljIEdvb2RzOiBQb2xpdGljYWwgQ29ycnVwdGlvbiIpKSArDQogIHNjYWxlX2xpbmV0eXBlX21hbnVhbCgiIiwgdmFsdWVzID0gYygxLCA1KSwgDQogICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKCJEZW1vY3JhY3kgU2NvcmVzOiBQb2xpdHlcblJ1bGUgb2YgTGF3OiBMSklcblB1YmxpYyBHb29kczogUHViL1BhcnQuIFNwZW5kaW5nIiwgIkRlbW9jcmFjeSBTY29yZXM6IEZIXG5SdWxlIG9mIExhdzogVi1EZW1cblB1YmxpYyBHb29kczogUG9saXRpY2FsIENvcnJ1cHRpb24iKSkgKw0KICB0aGVtZV9idygpKyANCiAgbGFicyh4ID0gIlllYXIgYWZ0ZXIgdDAiLCB5ID0gIkVzdGltYXRlIG9mIEludGVyYWN0aW9uIENvZWZmaWNpZW50IFxuIGJldHdlZW4gUG93ZXItU2hhcmluZyAoY2FiaW5ldClcbiBhbmQgQWlkL0dEUCAobG9nKSIpICsNCiAgIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJib3R0b20iKSArDQogIHRoZW1lKGxlZ2VuZC5rZXkuc2l6ZT11bml0KDMsImxpbmVzIikpICsNCiAgZmFjZXRfd3JhcCh+ZHYsIG5yb3cgPSAxLCBzY2FsZXMgPSAiZnJlZV95IikgDQoNCiMgT3V0cHV0IGZvciBNYW51c2NyaXB0DQojIG9wdGlvbnMoIHRpa3pEb2N1bWVudERlY2xhcmF0aW9uID0gIlxcZG9jdW1lbnRjbGFzc1sxMXB0XXthcnRpY2xlfSIgKQ0KdGlreigiLi4vZmlndXJlcy9hbGxfdGVtcF9keW5fcGxvdC50ZXgiLCBoZWlnaHQgPSAzLjUpDQpwcmludChhbGxfdGVtcF9keW5fcGxvdCkNCmRldi5vZmYoKQ0KDQojIE91dHB1dCBmb3IgUmVwLiBBcmNoaXZlDQpwcmludChhbGxfdGVtcF9keW5fcGxvdCkNCg0KYGBg