meeting date: 2019-03-27
days until:
last run: 2019-03-26
link: http://rpubs.com/janderz8/479756


Todo List

Lab Relevant

  1. Pull together poster for Harvey Stancer Research Day
  2. Update analyses in surface space (once CIFTIFY has finished running on remaining participants)
  3. Grab estimates of cortical thickness & correlate w. ODI (differentiate by group)
  4. Add the subcortical regions to the Glasser parcellations (important given the apparent role of the CN from GBSS) https://www.sciencedirect.com/science/article/pii/S1053811918319657?via%3Dihub
  5. parcellate the TBSS data for NODDI outputs & focus on the Tracts that NEDA identified using the JHU atlas
    • Bilateral Uncinate Fasciculus
    • Bilateral Superior Longitudinal Fasciculus
    • Bilateral Cingulum Bundle (4 tracts inc. hippocampal portion)
    • Genu Corpus Callosum
    • Body Corpus Callosum
    • Splenium Corpus Callosum
    • Fornix
  6. Run skull estimation on all subjects

Summary

Since our last meeting, I spent most of my time running analyses for & writing the abstract for the Harvey Stancer Research Day. I have also looked more at the surface based analyses (see below) which look promising & now correlate with the reserve factor I calculated.

Forays into suface space…

Now look at surface correlations with age and with reserve…

## Parsed with column specification:
## cols(
##   ODI = col_double(),
##   NDI = col_double(),
##   CSF = col_double(),
##   label = col_character()
## )
## Joining, by = "label"
## Joining, by = "label"

For Next Time:

Skull estimation!

LS0tCnRpdGxlOiB8CiAgfCBBViB3ZWVrbHkgbWVldGluZyByZXBvcnQgMDIKICB8IDxzcGFuIHN0eWxlPSJjb2xvcjpncmV5Ij5BbmFseXNpcyBvZiBOT0RESSBkYXRhIGluIENJRlRJIFNwYWNlPC9zcGFuPgpvdXRwdXQ6CiAgaHRtbF9kb2N1bWVudDoKICAgIHRvYzogeWVzCiAgICB0b2NfZGVwdGg6IDUKICAgIHRvY19mbG9hdDogeWVzCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlCiAgICBkYXRhX2Rvd25sb2FkOiB0cnVlCiAgcGRmX2RvY3VtZW50OgogICAgdG9jOiB5ZXMKCi0tLQo8YnI+Cm1lZXRpbmcgZGF0ZTogMjAxOS0wMy0yNyAgCmRheXMgdW50aWw6Cjxicj4KbGFzdCBydW46IGByIFN5cy5EYXRlKClgICAgICAKbGluazogaHR0cDovL3JwdWJzLmNvbS9qYW5kZXJ6OC80Nzk3NTYKPGJyPgoKLS0tLQojIyNUb2RvIExpc3QKKkxhYiBSZWxldmFudCoKCjEuIFB1bGwgdG9nZXRoZXIgcG9zdGVyIGZvciBIYXJ2ZXkgU3RhbmNlciBSZXNlYXJjaCBEYXkKMi4gVXBkYXRlIGFuYWx5c2VzIGluIHN1cmZhY2Ugc3BhY2UgKG9uY2UgQ0lGVElGWSBoYXMgZmluaXNoZWQgcnVubmluZyBvbiByZW1haW5pbmcgcGFydGljaXBhbnRzKQozLiBHcmFiIGVzdGltYXRlcyBvZiBjb3J0aWNhbCB0aGlja25lc3MgJiBjb3JyZWxhdGUgdy4gT0RJIChkaWZmZXJlbnRpYXRlIGJ5IGdyb3VwKQo0LiBBZGQgdGhlIHN1YmNvcnRpY2FsIHJlZ2lvbnMgdG8gdGhlIEdsYXNzZXIgcGFyY2VsbGF0aW9ucyAoaW1wb3J0YW50IGdpdmVuIHRoZSBhcHBhcmVudCByb2xlIG9mIHRoZSBDTiBmcm9tIEdCU1MpIGh0dHBzOi8vd3d3LnNjaWVuY2VkaXJlY3QuY29tL3NjaWVuY2UvYXJ0aWNsZS9waWkvUzEwNTM4MTE5MTgzMTk2NTc/dmlhJTNEaWh1YiAKNS4gcGFyY2VsbGF0ZSB0aGUgVEJTUyBkYXRhIGZvciBOT0RESSBvdXRwdXRzICYgZm9jdXMgb24gdGhlIFRyYWN0cyB0aGF0IE5FREEgaWRlbnRpZmllZCB1c2luZyB0aGUgSkhVIGF0bGFzCiAgICArIEJpbGF0ZXJhbCBVbmNpbmF0ZSBGYXNjaWN1bHVzCiAgICArIEJpbGF0ZXJhbCBTdXBlcmlvciBMb25naXR1ZGluYWwgRmFzY2ljdWx1cwogICAgKyBCaWxhdGVyYWwgQ2luZ3VsdW0gQnVuZGxlICg0IHRyYWN0cyBpbmMuIGhpcHBvY2FtcGFsIHBvcnRpb24pCiAgICArIEdlbnUgQ29ycHVzIENhbGxvc3VtIAogICAgKyBCb2R5IENvcnB1cyBDYWxsb3N1bQogICAgKyBTcGxlbml1bSBDb3JwdXMgQ2FsbG9zdW0KICAgICsgRm9ybml4CjUuIFJ1biBza3VsbCBlc3RpbWF0aW9uIG9uIGFsbCBzdWJqZWN0cwoKIyMjU3VtbWFyeSAgCgpTaW5jZSBvdXIgbGFzdCBtZWV0aW5nLCBJIHNwZW50IG1vc3Qgb2YgbXkgdGltZSBydW5uaW5nIGFuYWx5c2VzIGZvciAmIHdyaXRpbmcgdGhlIGFic3RyYWN0IGZvciB0aGUgSGFydmV5IFN0YW5jZXIgUmVzZWFyY2ggRGF5LiAgSSBoYXZlIGFsc28gbG9va2VkIG1vcmUgYXQgdGhlIHN1cmZhY2UgYmFzZWQgYW5hbHlzZXMgKHNlZSBiZWxvdykgd2hpY2ggbG9vayBwcm9taXNpbmcgJiBub3cgY29ycmVsYXRlIHdpdGggdGhlIHJlc2VydmUgZmFjdG9yIEkgY2FsY3VsYXRlZC4gIAoKIyMjRm9yYXlzIGludG8gc3VmYWNlIHNwYWNlLi4uCmBgYHtyLEZpZzEsZmlnLmhlaWdodD0xMCwgZmlnLndpZHRoPTIwLCBjYWNoZT1UUlVFLCB3YXJuaW5nPUZBTFNFLCBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFfQpsaWJyYXJ5KGdnc2VnKQpsaWJyYXJ5KGdnc2VnRXh0cmEpCmxpYnJhcnkocmVhZHIpCmxpYnJhcnkoZ2d0aGVtZXMpCmxpYnJhcnkoZ2dwdWJyKQpsaWJyYXJ5KGNvd3Bsb3QpCmxpYnJhcnkocmVzaGFwZTIpCmxpYnJhcnkoZHBseXIpCmxpYnJhcnkoUi5tYXRsYWIpCmxpYnJhcnkoZ2d0aGVtcikKZ2d0aGVtcigiZnJlc2giKQoKIE9ESV9HbGFzc2VyX3dfbGFiZWxzIDwtIHJlYWRfY3N2KCIvcHJvamVjdHMvamFuZGVyc29uL1BBQ1RNRC9waXBlbGluZXMvTk9ERElfbWR0L3N1cmZhY2Uvc3ViLUNNSDAxMDAwMDkvT0RJX0dsYXNzZXJfd19sYWJlbHMuY3N2IikKIEdsYXNzZXJfbG9uZyA8LSBtZWx0KE9ESV9HbGFzc2VyX3dfbGFiZWxzLCBpZC52YXJzID0gImxhYmVsIikKIEdsYXNzZXJfbG9uZyA8LSBzdWJzZXQoR2xhc3Nlcl9sb25nLCB2YXJpYWJsZSAhPSJOQSIpCiBuZXdBdGxhcyA9IGdsYXNzZXIgJT4lIGxlZnRfam9pbihPRElfR2xhc3Nlcl93X2xhYmVscykKbmV3QXRsYXMyIDwtIG1lbHQobmV3QXRsYXMsIG1lYXN1cmUgPSBjKCJPREkiLCJOREkiLCJDU0YiKSkKCmdnc2VnKGF0bGFzPW5ld0F0bGFzMiwgbWFwcGluZz1hZXMoZmlsbD12YWx1ZSksIHBvc2l0aW9uPSJkaXNwZXJzZWQiLGNvbG91cj0iYmxhY2siKSArIGZhY2V0X3dyYXAofnZhcmlhYmxlLCBuY29sPTEpKyBzY2FsZV9maWxsX2dyYWRpZW50bihjb2xvdXJzID0gYygicm95YWxibHVlIiwiZGFya3JlZCIsInllbGxvdyIpLG5hLnZhbHVlPSJncmV5IikrIHRoZW1lKHRleHQgPSBlbGVtZW50X3RleHQoZmFtaWx5ID0gIkFyaWFsIikpKyAgIHRoZW1lX2xpbmVkcmF3KGJhc2VfZmFtaWx5ID0gIkFyaWFsIikKCiNQTFMgcmVzdWx0cwoKT0RJX0dsYXNzZXIgPC0gcmVhZC50YWJsZSgiL21udC90aWdybGFiL3Byb2plY3RzL2phbmRlcnNvbi9QQUNUTUQvcGlwZWxpbmVzL05PRERJX21kdC9zdXJmYWNlL1BMUy9nbGFzc2VyL2ZpZ3VyZXMvT0RJX0dsYXNzZXIuY3N2IiwgcXVvdGU9IlwiIiwgY29tbWVudC5jaGFyPSIiKQpORElfR2xhc3NlciA8LSByZWFkLnRhYmxlKCIvbW50L3RpZ3JsYWIvcHJvamVjdHMvamFuZGVyc29uL1BBQ1RNRC9waXBlbGluZXMvTk9ERElfbWR0L3N1cmZhY2UvUExTL2dsYXNzZXIvZmlndXJlcy9ORElfR2xhc3Nlci5jc3YiLCBxdW90ZT0iXCIiLCBjb21tZW50LmNoYXI9IiIpCkNTRl9HbGFzc2VyIDwtIHJlYWQudGFibGUoIi9tbnQvdGlncmxhYi9wcm9qZWN0cy9qYW5kZXJzb24vUEFDVE1EL3BpcGVsaW5lcy9OT0RESV9tZHQvc3VyZmFjZS9QTFMvZ2xhc3Nlci9maWd1cmVzL0NTRl9HbGFzc2VyLmNzdiIsIHF1b3RlPSJcIiIsIGNvbW1lbnQuY2hhcj0iIikKbGFiZWxzIDwtIHJlYWQuY3N2KCIvbW50L3RpZ3JsYWIvcHJvamVjdHMvamFuZGVyc29uL1BBQ1RNRC9waXBlbGluZXMvTk9ERElfbWR0L3N1cmZhY2UvUExTL2ZpZ3VyZXMvbGFiZWxzLmNzdiIsIHNlcD0iIikKUExTX3Jlc3VsdHMgPC0gY2JpbmQobGFiZWxzLCBPRElfR2xhc3NlcixORElfR2xhc3NlcixDU0ZfR2xhc3NlcikKY29sbmFtZXMoUExTX3Jlc3VsdHMpIDwtIGMoImxhYmVsIiwiT0RJX0JTUiIsIk5ESV9CU1IiLCJDU0ZfQlNSIikKClBMU19yZXN1bHRzW1BMU19yZXN1bHRzID09IDBdIDwtIE5BCiNQTFNfcmVzdWx0cyRORElfQlNSW1BMU19yZXN1bHRzJE5ESV9CU1IgPi0yXSA8LSBOQQoKUExTX0F0bGFzID0gZ2xhc3NlciAlPiUgbGVmdF9qb2luKFBMU19yZXN1bHRzKQpQTFNfQXRsYXMkT0RJX0JTUiA8LSBQTFNfQXRsYXMkT0RJX0JTUiAqIC0xClBMU19BdGxhc19sb25nIDwtIG1lbHQoUExTX0F0bGFzLCBtZWFzdXJlPWMoIk9ESV9CU1IiLCJORElfQlNSIiwiQ1NGX0JTUiIpKQoKCk1DX1BMU19CcmFpbiA8LSBnZ3NlZyhhdGxhcz1QTFNfQXRsYXNfbG9uZywgbWFwcGluZz1hZXMoZmlsbD12YWx1ZSksIHBvc2l0aW9uPSJkaXNwZXJzZWQiLGNvbG91cj0iYmxhY2siLCBzaXplID0gLjEpICsgc2NhbGVfZmlsbF9ncmFkaWVudG4oY29sb3VycyA9IGMoImdyZWVuIiwicm95YWxibHVlIiwid2hpdGUiLCJmaXJlYnJpY2siLCJnb2xkZW5yb2QiKSxuYS52YWx1ZT0iZ3JleSIsIGJyZWFrcyA9IGMoLTQsIC0yLCAwLCAyLCA0KSwgbGFiZWxzPWMoIi00IiwgIjIiLCIwIiwiMiIsIjQiKSwgbGltaXRzPWMoLTQsNCkpK2ZhY2V0X3dyYXAofnZhcmlhYmxlLG5jb2w9MSApKyB0aGVtZSh0ZXh0ID0gZWxlbWVudF90ZXh0KGZhbWlseSA9ICJBcmlhbCIpKSsgICB0aGVtZV9saW5lZHJhdyhiYXNlX2ZhbWlseSA9ICJBcmlhbCIpCiNpbmNvcnBvcmF0ZSBtYXRsYWIgcmVzdWx0cwpDU0YgPC0gKCIvbW50L3RpZ3JsYWIvcHJvamVjdHMvamFuZGVyc29uL1BBQ1RNRC9waXBlbGluZXMvTk9ERElfbWR0L3N1cmZhY2UvUExTL2dsYXNzZXIvQ1NGX1NUUlVDVHJlc3VsdC5tYXQiKQpPREkgPC0gKCIvbW50L3RpZ3JsYWIvcHJvamVjdHMvamFuZGVyc29uL1BBQ1RNRC9waXBlbGluZXMvTk9ERElfbWR0L3N1cmZhY2UvUExTL2dsYXNzZXIvT0RJX1NUUlVDVHJlc3VsdC5tYXQiKQpOREkgPC0gKCIvbW50L3RpZ3JsYWIvcHJvamVjdHMvamFuZGVyc29uL1BBQ1RNRC9waXBlbGluZXMvTk9ERElfbWR0L3N1cmZhY2UvUExTL2dsYXNzZXIvTkRJX1NUUlVDVHJlc3VsdC5tYXQiKQoKI2Z1bmN0aW9uIHRvIHB1bGwgZGF0YSBmcm9tIE1lYW4gQ2VudGVyZWQgUExTIG91dHB1dHMuLi4KTUNfUExTX1Jlc3VsdCA8LSBmdW5jdGlvbih4LCBMViwgbGFiZWwsIEludmVydCl7CmlucHV0IDwtIHJlYWRNYXQoeCkKcmVzIDwtIGlucHV0JHJlc3VsdApib290X3Jlc3VsdCA8LSByZXNbWzExXV0Kb3JpZ191c2MgPC0gYXMuZGF0YS5mcmFtZShib290X3Jlc3VsdFtbN11dWyxMVl0pCnVwcGVyIDwtIGFzLmRhdGEuZnJhbWUoYm9vdF9yZXN1bHRbWzhdXVssTFZdKQpsb3dlciA8LSBhcy5kYXRhLmZyYW1lKGJvb3RfcmVzdWx0W1s5XV1bLExWXSkKYmFyIDwtIGNiaW5kKG9yaWdfdXNjLCB1cHBlciwgbG93ZXIpCmNvbG5hbWVzKGJhcikgPC0gYygiQlNSIiwgInVwcGVyIiwibG93ZXIiKQpiYXIkQlNSIDwtIGJhciRCU1IgKiBJbnZlcnQKYmFyJHVwcGVyIDwtIGJhciR1cHBlciAqIEludmVydApiYXIkbG93ZXIgPC0gYmFyJGxvd2VyICogSW52ZXJ0CmJhciR1cHBlcl9hZGogPC0gYmFyJHVwcGVyIC0gYmFyJEJTUiAKYmFyJGxvd2VyX2FkaiA8LSBiYXIkQlNSIC0gYmFyJGxvd2VyCmdyb3VwIDwtIGMoIkRlcCIsICJNQ0kiLCJNREQrTUNJIiwiTUNJIiwiTUREK01DSSIpCkFtbmVzaWEgPC0gYygiTm9uIEFtbmVzdGljIiwiTm9uIEFtbmVzdGljIiwiTm9uIEFtbmVzdGljIiwiQW1uZXN0aWMiLCJBbW5lc3RpYyIpCkxhYmVsIDwtIGMobGFiZWwsIGxhYmVsLCBsYWJlbCwgbGFiZWwsIGxhYmVsKQpiYXIgPC0gY2JpbmQoTGFiZWwsIEFtbmVzaWEsIGdyb3VwLCBiYXIpCmJhciRncm91cCA8LSBmYWN0b3IoYmFyJGdyb3VwLCBsZXZlbHMgPSBjKCJEZXAiLCAiTUNJIiwiTUREK01DSSIpKSAKYmFyJEFtbmVzaWEgPC0gZmFjdG9yKGJhciRBbW5lc2lhLCBsZXZlbHMgPSBjKCJOb24gQW1uZXN0aWMiLCAiQW1uZXN0aWMiKSkgCnJldHVybihiYXIpCn0KCkNTRl9CYXIgPC0gTUNfUExTX1Jlc3VsdChDU0YsMSwgIkNTRiIsIDEpCk9ESV9CYXIgPC0gTUNfUExTX1Jlc3VsdChPREksMSwgIk9ESSIsIC0xKQpORElfQmFyIDwtIE1DX1BMU19SZXN1bHQoTkRJLDEsICJOREkiLCAxKQpBbGxfQmFyIDwtIHJiaW5kKE9ESV9CYXIsIE5ESV9CYXIsIENTRl9CYXIpCgojZnVuY3Rpb24gZm9yIE1lYW4gQ2VudGVyZWQgUExTIEJhcmNoYXJ0cwpNQ19QTFNfQmFyIDwtIGZ1bmN0aW9uKHgpewpiYXJjaGFydCA8LSBnZ3Bsb3QoeCwgYWVzKHg9Z3JvdXAsIHkgPSBCU1IsIGZpbGwgPSBBbW5lc2lhKSkrIGdlb21fY29sKGNvbG91cj0iYmxhY2siLCBwb3NpdGlvbj1wb3NpdGlvbl9kb2RnZTIod2lkdGggPS45LCBwcmVzZXJ2ZT0ic2luZ2xlIikpK2dlb21fZXJyb3JiYXIoYWVzKHltaW49QlNSLWxvd2VyX2FkaiwgeW1heD1CU1IgKyB1cHBlcl9hZGopLCB3aWR0aD0wLHBvc2l0aW9uPXBvc2l0aW9uX2RvZGdlKC45KSwgY29sb3VyPSJibGFjayIpICsgZ2VvbV9obGluZSh5aW50ZXJjZXB0ID0gMCwgY29sb3VyPSJibGFjayIpICsgY29vcmRfZmxpcCgpCnJldHVybihiYXJjaGFydCkKfQpPRElfQkFSIDwtIE1DX1BMU19CYXIoT0RJX0JhcikKTkRJX0JBUiA8LSBNQ19QTFNfQmFyKE5ESV9CYXIpCkNTRl9CQVIgPC0gTUNfUExTX0JhcihDU0ZfQmFyKQpBbGxfQkFSICA8LSBnZ3Bsb3QoQWxsX0JhciwgYWVzKHg9Z3JvdXAsIHkgPSBCU1IsIGZpbGwgPSBBbW5lc2lhKSkrIGdlb21fY29sKGNvbG91cj0iYmxhY2siLCBwb3NpdGlvbj1wb3NpdGlvbl9kb2RnZTIod2lkdGggPS45LCBwcmVzZXJ2ZT0ic2luZ2xlIikpK2dlb21fZXJyb3JiYXIoYWVzKHltaW49QlNSLWxvd2VyX2FkaiwgeW1heD1CU1IgKyB1cHBlcl9hZGopLCB3aWR0aD0wLHBvc2l0aW9uPXBvc2l0aW9uX2RvZGdlKC45KSwgY29sb3VyPSJibGFjayIpICsgZ2VvbV9obGluZSh5aW50ZXJjZXB0ID0gMCwgY29sb3VyPSJibGFjayIpICsgZmFjZXRfd3JhcCh+TGFiZWwsbmNvbD0xICkgKyB0aGVtZShsZWdlbmQucG9zaXRpb249ImxlZnQiKStjb29yZF9mbGlwKCkKCmdnYXJyYW5nZShBbGxfQkFSLCBNQ19QTFNfQnJhaW4sIG5jb2w9MiwgbnJvdz0xLCB3aWR0aHMgPSAxOjIpCmBgYAoKTm93IGxvb2sgYXQgc3VyZmFjZSBjb3JyZWxhdGlvbnMgd2l0aCBhZ2UgYW5kIHdpdGggcmVzZXJ2ZS4uLgpgYGB7cixGaWcyLGZpZy5oZWlnaHQ9NSwgZmlnLndpZHRoPTE1LCAgY2FjaGU9VFJVRSwgd2FybmluZz1GQUxTRSwgZWNobz1GQUxTRX0KbGlicmFyeShnZ3NlZykKbGlicmFyeShnZ3NlZ0V4dHJhKQpsaWJyYXJ5KHJlYWRyKQpsaWJyYXJ5KGdndGhlbWVzKQpsaWJyYXJ5KGdncHVicikKbGlicmFyeShjb3dwbG90KQogT0RJX0dsYXNzZXJfd19sYWJlbHMgPC0gcmVhZF9jc3YoIi9wcm9qZWN0cy9qYW5kZXJzb24vUEFDVE1EL3BpcGVsaW5lcy9OT0RESV9tZHQvc3VyZmFjZS9zdWItQ01IMDEwMDAwOS9PRElfR2xhc3Nlcl93X2xhYmVscy5jc3YiKQogR2xhc3Nlcl9sb25nIDwtIG1lbHQoT0RJX0dsYXNzZXJfd19sYWJlbHMsIGlkLnZhcnMgPSAibGFiZWwiKQogR2xhc3Nlcl9sb25nIDwtIHN1YnNldChHbGFzc2VyX2xvbmcsIHZhcmlhYmxlICE9Ik5BIikKIG5ld0F0bGFzID0gZ2xhc3NlciAlPiUgbGVmdF9qb2luKE9ESV9HbGFzc2VyX3dfbGFiZWxzKQpuZXdBdGxhczIgPC0gbWVsdChuZXdBdGxhcywgbWVhc3VyZSA9IGMoIk9ESSIsIk5ESSIsIkNTRiIpKQoKI1BMUyByZXN1bHRzCgpSZXNlcnZlX09ESV9HbGFzc2VyIDwtIHJlYWQudGFibGUoIi9tbnQvdGlncmxhYi9wcm9qZWN0cy9qYW5kZXJzb24vUEFDVE1EL3BpcGVsaW5lcy9OT0RESV9tZHQvc3VyZmFjZS9QTFMvZ2xhc3Nlci9maWd1cmVzL1Jlc2VydmVfT0RJX0dsYXNzZXIuY3N2IiwgcXVvdGU9IlwiIiwgY29tbWVudC5jaGFyPSIiKQpSZXNlcnZlX0NTRl9HbGFzc2VyIDwtIHJlYWQudGFibGUoIi9tbnQvdGlncmxhYi9wcm9qZWN0cy9qYW5kZXJzb24vUEFDVE1EL3BpcGVsaW5lcy9OT0RESV9tZHQvc3VyZmFjZS9QTFMvZ2xhc3Nlci9maWd1cmVzL1Jlc2VydmVfQ1NGX0dsYXNzZXIuY3N2IiwgcXVvdGU9IlwiIiwgY29tbWVudC5jaGFyPSIiKQoKQWdlX09ESV9HbGFzc2VyIDwtIHJlYWQudGFibGUoIi9tbnQvdGlncmxhYi9wcm9qZWN0cy9qYW5kZXJzb24vUEFDVE1EL3BpcGVsaW5lcy9OT0RESV9tZHQvc3VyZmFjZS9QTFMvZ2xhc3Nlci9maWd1cmVzL0FnZV9PRElfR2xhc3Nlci5jc3YiLCBxdW90ZT0iXCIiLCBjb21tZW50LmNoYXI9IiIpCkFnZV9DU0ZfR2xhc3NlciA8LSByZWFkLnRhYmxlKCIvbW50L3RpZ3JsYWIvcHJvamVjdHMvamFuZGVyc29uL1BBQ1RNRC9waXBlbGluZXMvTk9ERElfbWR0L3N1cmZhY2UvUExTL2dsYXNzZXIvZmlndXJlcy9BZ2VfQ1NGX0dsYXNzZXIuY3N2IiwgcXVvdGU9IlwiIiwgY29tbWVudC5jaGFyPSIiKQoKbGFiZWxzIDwtIHJlYWQuY3N2KCIvbW50L3RpZ3JsYWIvcHJvamVjdHMvamFuZGVyc29uL1BBQ1RNRC9waXBlbGluZXMvTk9ERElfbWR0L3N1cmZhY2UvUExTL2ZpZ3VyZXMvbGFiZWxzLmNzdiIsIHNlcD0iIikKUExTX3Jlc3VsdHMgPC0gY2JpbmQobGFiZWxzLCBBZ2VfT0RJX0dsYXNzZXIsUmVzZXJ2ZV9PRElfR2xhc3NlcixBZ2VfQ1NGX0dsYXNzZXIsIFJlc2VydmVfQ1NGX0dsYXNzZXIpCmNvbG5hbWVzKFBMU19yZXN1bHRzKSA8LSBjKCJsYWJlbCIsIkFnZSBPREkiLCJSZXNlcnZlIE9ESSIsICJBZ2UgQ1NGIiwgIlJlc2VydmUgQ1NGIikKClBMU19yZXN1bHRzW1BMU19yZXN1bHRzID09IDBdIDwtIE5BCiNQTFNfcmVzdWx0cyRORElfQlNSW1BMU19yZXN1bHRzJE5ESV9CU1IgPi0yXSA8LSBOQQoKUExTX0F0bGFzID0gZ2xhc3NlciAlPiUgbGVmdF9qb2luKFBMU19yZXN1bHRzKQojUExTX0F0bGFzJE9ESV9CU1IgPC0gUExTX0F0bGFzJE9ESV9CU1IgKiAtMQpQTFNfQXRsYXNfbG9uZyA8LSBtZWx0KFBMU19BdGxhcywgbWVhc3VyZT1jKCJBZ2UgT0RJIiwiUmVzZXJ2ZSBPREkiLCAiQWdlIENTRiIsICJSZXNlcnZlIENTRiIpKQoKCkJlaF9QTFNfQnJhaW4gPC0gZ2dzZWcoYXRsYXM9UExTX0F0bGFzX2xvbmcsIG1hcHBpbmc9YWVzKGZpbGw9dmFsdWUpLCBwb3NpdGlvbj0iZGlzcGVyc2VkIixjb2xvdXI9ImJsYWNrIiwgc2l6ZSA9IC4xKSArIHNjYWxlX2ZpbGxfZ3JhZGllbnRuKGNvbG91cnMgPSBjKCJncmVlbiIsInJveWFsYmx1ZSIsIndoaXRlIiwiZmlyZWJyaWNrIiwiZ29sZGVucm9kIiksbmEudmFsdWU9ImdyZXkiLCBicmVha3MgPSBjKC00LCAtMiwgMCwgMiwgNCksIGxhYmVscz1jKCItNCIsICIyIiwiMCIsIjIiLCI0IiksIGxpbWl0cz1jKC00LDQpKStmYWNldF93cmFwKH52YXJpYWJsZSxuY29sPTEgKSsgdGhlbWUodGV4dCA9IGVsZW1lbnRfdGV4dChmYW1pbHkgPSAiQXJpYWwiKSkrICAgdGhlbWVfbGluZWRyYXcoYmFzZV9mYW1pbHkgPSAiQXJpYWwiKQoKQWdlX0NTRiA8LSAoIi9tbnQvdGlncmxhYi9wcm9qZWN0cy9qYW5kZXJzb24vUEFDVE1EL3BpcGVsaW5lcy9OT0RESV9tZHQvc3VyZmFjZS9QTFMvZ2xhc3Nlci9BZ2VfQ1NGX1NUUlVDVHJlc3VsdC5tYXQiKQpSZXNlcnZlX0NTRiA8LSAoIi9tbnQvdGlncmxhYi9wcm9qZWN0cy9qYW5kZXJzb24vUEFDVE1EL3BpcGVsaW5lcy9OT0RESV9tZHQvc3VyZmFjZS9QTFMvZ2xhc3Nlci9SZXNlcnZlX0NTRl9TVFJVQ1RyZXN1bHQubWF0IikKQWdlX09ESSA8LSAoIi9tbnQvdGlncmxhYi9wcm9qZWN0cy9qYW5kZXJzb24vUEFDVE1EL3BpcGVsaW5lcy9OT0RESV9tZHQvc3VyZmFjZS9QTFMvZ2xhc3Nlci9BZ2VfT0RJX1NUUlVDVHJlc3VsdC5tYXQiKQpSZXNlcnZlX09ESSA8LSAoIi9tbnQvdGlncmxhYi9wcm9qZWN0cy9qYW5kZXJzb24vUEFDVE1EL3BpcGVsaW5lcy9OT0RESV9tZHQvc3VyZmFjZS9QTFMvZ2xhc3Nlci9SZXNlcnZlX09ESV9TVFJVQ1RyZXN1bHQubWF0IikKCiNmdW5jdGlvbiB0byBwdWxsIGRhdGEgZnJvbSBNZWFuIEJlaGF2aW91cmFsIFBMUyBvdXRwdXRzLi4uCkJlaF9QTFNfUmVzdWx0IDwtIGZ1bmN0aW9uKHgsIExWLCBsYWJlbCwgSW52ZXJ0KXsKaW5wdXQgPC0gcmVhZE1hdCh4KQpyZXMgPC0gaW5wdXQkcmVzdWx0CmJvb3RfcmVzdWx0IDwtIHJlc1tbMTRdXQpvcmlnX2NvcnMgPC0gYXMuZGF0YS5mcmFtZShib290X3Jlc3VsdFtbNl1dWyxMVl0pCnVwcGVyIDwtIGFzLmRhdGEuZnJhbWUoYm9vdF9yZXN1bHRbWzddXVssTFZdKQpsb3dlciA8LSBhcy5kYXRhLmZyYW1lKGJvb3RfcmVzdWx0W1s4XV1bLExWXSkKYmFyIDwtIGNiaW5kKG9yaWdfY29ycywgdXBwZXIsIGxvd2VyKQpjb2xuYW1lcyhiYXIpIDwtIGMoIkNvcnJlbGF0aW9uIiwgInVwcGVyIiwibG93ZXIiKQpiYXIkQ29ycmVsYXRpb24gPC0gYmFyJENvcnJlbGF0aW9uICogSW52ZXJ0CmJhciR1cHBlciA8LSBiYXIkdXBwZXIgKiBJbnZlcnQKYmFyJGxvd2VyIDwtIGJhciRsb3dlciAqIEludmVydApiYXIkdXBwZXJfYWRqIDwtIGFicyhiYXIkdXBwZXIgLSBiYXIkQ29ycmVsYXRpb24pCmJhciRsb3dlcl9hZGogPC0gYWJzKGJhciRDb3JyZWxhdGlvbiAtIGJhciRsb3dlcikKZ3JvdXAgPC0gYygiRGVwIiwgIk1DSSIsIk1ERCtNQ0kiLCJNQ0kiLCJNREQrTUNJIikKQW1uZXNpYSA8LSBjKCJOb24gQW1uZXN0aWMiLCJOb24gQW1uZXN0aWMiLCJOb24gQW1uZXN0aWMiLCJBbW5lc3RpYyIsIkFtbmVzdGljIikKTGFiZWwgPC0gYyhsYWJlbCwgbGFiZWwsIGxhYmVsLCBsYWJlbCwgbGFiZWwpCmJhciA8LSBjYmluZChMYWJlbCwgQW1uZXNpYSwgZ3JvdXAsIGJhcikKYmFyJGdyb3VwIDwtIGZhY3RvcihiYXIkZ3JvdXAsIGxldmVscyA9IGMoIkRlcCIsICJNQ0kiLCJNREQrTUNJIikpIApiYXIkQW1uZXNpYSA8LSBmYWN0b3IoYmFyJEFtbmVzaWEsIGxldmVscyA9IGMoIk5vbiBBbW5lc3RpYyIsICJBbW5lc3RpYyIpKSAKcmV0dXJuKGJhcikKfQoKCiNOb3cgY3JlYXRpbmcgdGhlIHdtX2FnZSBkYXRhbWF0cwpBZ2VfT0RJX2RhdGFtYXQgPC0gQmVoX1BMU19SZXN1bHQoQWdlX09ESSwxLCJBZ2UgT0RJIiwxKQpSZXNlcnZlX09ESV9kYXRhbWF0IDwtIEJlaF9QTFNfUmVzdWx0KFJlc2VydmVfT0RJLDEsIlJlc2VydmUgT0RJIiwxKQpBZ2VfQ1NGX2RhdGFtYXQgPC0gQmVoX1BMU19SZXN1bHQoQWdlX0NTRiwxLCJBZ2UgQ1NGIiwxKQpSZXNlcnZlX0NTRl9kYXRhbWF0IDwtIEJlaF9QTFNfUmVzdWx0KFJlc2VydmVfQ1NGLDEsIlJlc2VydmUgQ1NGIiwxKQpBbGxfQmFyX2JlaGF2IDwtIHJiaW5kKEFnZV9PRElfZGF0YW1hdCwgUmVzZXJ2ZV9PRElfZGF0YW1hdCwgQWdlX0NTRl9kYXRhbWF0LCBSZXNlcnZlX0NTRl9kYXRhbWF0KQoKQWxsX0JBUl9iZWhhdiAgPC0gZ2dwbG90KEFsbF9CYXJfYmVoYXYsIGFlcyh4PWdyb3VwLCB5ID0gQ29ycmVsYXRpb24sIGZpbGwgPSBBbW5lc2lhKSkrIGdlb21fY29sKGNvbG91cj0iYmxhY2siLCBwb3NpdGlvbj1wb3NpdGlvbl9kb2RnZTIod2lkdGggPS45LCBwcmVzZXJ2ZT0ic2luZ2xlIikpK2dlb21fZXJyb3JiYXIoYWVzKHltaW49Q29ycmVsYXRpb24tbG93ZXJfYWRqLCB5bWF4PUNvcnJlbGF0aW9uICsgdXBwZXJfYWRqKSwgd2lkdGg9MCxwb3NpdGlvbj1wb3NpdGlvbl9kb2RnZSh3aWR0aCA9LjkpLCBjb2xvdXI9ImJsYWNrIikgKyBnZW9tX2hsaW5lKHlpbnRlcmNlcHQgPSAwLCBjb2xvdXI9ImJsYWNrIikgKyBmYWNldF93cmFwKH5MYWJlbCxuY29sPTEgKSArIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbj0ibGVmdCIpK2Nvb3JkX2ZsaXAoKQoKZ2dhcnJhbmdlKEFsbF9CQVJfYmVoYXYsIEJlaF9QTFNfQnJhaW4sIG5jb2w9MiwgbnJvdz0xLHdpZHRocyA9IDE6MykKYGBgCgojIyNGb3IgTmV4dCBUaW1lOgpTa3VsbCBlc3RpbWF0aW9uIQ==