1 Data & Methods

1.1 Dependent variable

In the present study, I webscraped data from the internet in order to answer the research questions. The study focuses on scientists working at the Sociology department (N=33) and scientists working at the Data Science department (N=46) of Radboud University. The starting point of the webscraping was collecting the full names of these scientists from the staff-webpage of the Radboud University. In order to do so, I used the package rvest was, and in case of JavaScript data, the package V8 to gather this information.

In the next step, these full names were used by the Scholar package in R to find information on publications, co-authorship and citations. I deleted scientists with an extremely high number of citations, which resulted in deleting three scientists at the Sociology department and two at the Data Science department. With this data, I created the dependent variable co-publications. For each scientist, I searched whether this scientist had published an article with someone else from the same department. This was done using the names of the scientists. Although this data was collected at one moment in time, with the publication network I had the opportunity to distinguish different moments in time. Per department, there are three waves of co-publication networks: for the years 2016-2017, 2018-2019 and 2020-2022. These waves thus express the co-publication ties of articles published in these years. I then turned these three waves into an adjacency matrix, in which scientists score a 1 when they have published an article together. Since the network is based on co-publications, it is undirected.

1.2 Independent variable

The independent variable consists of the Kardashian Index. The Kardashian Index compares the Twitter followers with number of citations of academics (Hall 2014). In order to calculate these, the twitteR package in R is used to extract Twitter user information of scholars of the departments from the Twitter REST API. For each full name, the first user that the twitteR package scraped, is saved. By eyeballing, twitter users with a high number of followers were checked. In some cases, the match between full name and Twitter username was not made correctly. In those instances, this was corrected by hand. Using the number of followers and the citations scraped from Google Scholar, the Kardashian Index is calculated. Hall’s (2014) formula to calculate the k-index exists of two equations. The first equation calculates a typical number of twitter followers and is expressed as follows:

$$

F = 43.3C^{0.32}

$$

Then, the k-index is calculated with the following equation, using the actual followercount and the expected followercount:

$$

K-index = {F_{c}}

$$


1.3 Control variables

I added the control variable Twitter Dummy to indicate whether the scientist has Twitter or not. A scientist scores 1 in case of a Twitter handle found by the twitteR package. Furthermore, the variable Dutch shows the ethnicity of the scientist. This variable is included as a selection to collaborate with a scientist may also be based on their ethnicity. Ethnicity was scraped using the Familienamenbank (n.d.), which has data on last names used in the Netherlands. In case of a typical Dutch last name, the scientist got a score 1 on the dummy Dutch. In other cases, the scholar scores a 0. This means that all last names that are not Dutch are taken together as one category, not distinguishing between (Non-)Western ethnic backgrounds.

As gender may influence the k-index as well as collaborations between scientists, I included a dummy for gender. With a procedure similar to that of determining ethnicity, the Meertens namenbank (“Databanken,” n.d.) was used to determine the gender of the respondent. This databank has information on all the first names used in the Netherlands and their frequency. In case of a first name that is more often used for women than for men, a scientist scores a 0 on the dummy gender. In case of a first name that is more often used for men, the scientist scores a 1 on the dummy. Lastly, as age can have an influence on opportunities for (co)publishing, a proxy for age is included based on the year of the first publication of the scholar. The descriptives of these variables can be found at the bottom of this page.

Interested readers may have a further look into the scraping of all the variables used during this study, which can be done with the replication package that can be found on this website in week 3 of the “My Journal” page.


2 Analytical strategy

To answer the research questions that are descriptive in nature, descriptive statistics are shown for the different waves and different study departments. These statistics are then used to compare within and between departments and to answer the research questions. Important descriptive network characteristics that I show are transitivity, degree and the dyad census.

To provide an answer to the explanatory research question on network effects, the RSiena package is used. SIENA – which stands for Simulation Investigation for Empirical Network Analysis – is able to analyze longitudinal data simulating network outcomes based on the perspective of the nodes (Ripley et al. 2022). Importantly, the Stochastic Actor Oriented Model (SOAM) entails that actors perform ‘ministeps’, which means that a random actor gets assigned at the time, who is able to make one tie change. After making this tie change, the next actor gets the turn to make a change. For these actors, it is also a possibility to make no change. The decision of the actor depends on the evaluation of possible options, which is determined with the evaluation function. The actor then bases the decision on the most attractive network outcome. After this decision, the next actor gets a turn to decide. Based on many simulations of these actor-decisions, estimates for evaluation are provided by the model.

2.1 Estimation of models

Three models are estimated per department. In the first model, only structural network effects on the dependent variable of co-publication are included. First, the degree effect estimates the number of outdegrees, which are in this case the number of copublications. This effect can be interpreted as an intercept. Then, the transitive triads effect shows whether individuals prefer to close a triad (and thus prefer a transitive relation) than to not close a transitive triad. In the case of co-publication networks, it means whether a scientist prefers to co-publish with a co-author of a co-author. Furthermore, the activity and popularity effect reveals whether individuals prefer to form a tie with individuals that already have a lot of ties. Thus, do scientists co-publish with scientists that have already co-published a lot?

In the second model, the k-index is added. In this model, the absDiffX effect was included, estimating whether scientists prefer to co-publish with a scientist with a low absolute discrepancy in their k-index. I thus used this effect to test the homophily based on the k-index. Then another model is run with the control variables included. For the control variables ethnicity, gender and the Twitter dummy, I included the sameX effect. This shows whether scientists prefer to co-publish with another scientist of the same gender, ethnicity and twitter status. As age is the only control variable of ratio measurement level, I included this variable with the absDiffX effect as well, as I would like to see whether scientists prefer to collaborate with someone similar in age, not of exactly the same age.

In the fourth model, the altX effect was included for the k-index, to test the hypotheses on co-publishing with scientists with a lower or higher k-index. This effect shows whether scientists prefer to co-publish based on the value of the k-index of the other scientist. The last model tests these altX effects with control variables included. All of the control variables included in the model remain the same as in the third model.

As robustness checks, the same models as described above were estimated without the twitter dummy, and with the number of twitter followers as independent variable instead of the k-index. This could show whether it may mostly be social media that matters without its relation to the citations of a scientist. These robustness checks are visible in the Appendix.

load("/Users/anuschka/Documents/labjournal/data/socdef_df.RData")
summary(socdef_df$ki)
#>    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
#>  0.0000  0.0000  0.0157  1.1729  1.3315 11.1303
summary(socdef_df$dutch)
#>    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
#>  0.0000  1.0000  1.0000  0.8485  1.0000  1.0000
summary(socdef_df$pub_first)
#>    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
#>    1991    2008    2013    2012    2018    2023
summary(socdef_df$twitter_dum)
#>    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
#>  0.0000  0.0000  1.0000  0.5758  1.0000  1.0000
table(socdef_df$gender)
#> 
#> female   male 
#>     17     16
load("/Users/anuschka/Documents/labjournal/data/datadef_df.RData")
summary(datadef_df$ki)
#>     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
#>  0.00000  0.00000  0.03819  0.73867  0.47841 13.16667
summary(datadef_df$dutch)
#>    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
#>  0.0000  0.2500  1.0000  0.7391  1.0000  1.0000
summary(datadef_df$pub_first)
#>    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
#>    1983    2000    2014    2009    2017    2023
summary(datadef_df$twitter_dum)
#>    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
#>  0.0000  0.0000  1.0000  0.6522  1.0000  1.0000
table(datadef_df$gender)
#> 
#> female   male 
#>     13     33

References

n.d. Nederlandse Familienamenbank. https://www.cbgfamilienamen.nl/nfb/.
“Databanken.” n.d. Databanken Meertens Instituut. https://meertens.knaw.nl/collecties/databanken/.
Hall, Neil. 2014. “The Kardashian Index: A Measure of Discrepant Social Media Profile for Scientists.” Genome Biology 15 (7): 424. https://doi.org/10.1186/s13059-014-0424-0.
Ripley, Ruth M., Tom A. B. Snijders, Zsofia B’oda, Andr’as V"or"os, and Paulina Preciado. 2022. “Manual for Siena Version 4.0.” Oxford: University of Oxford, Department of Statistics; Nuffield College.
LS0tCnRpdGxlOiAiaW50cm9kdWN0aW9uIgphdXRob3I6ICJBbnVzY2hrYSBQZWVsZW4iCmRhdGU6ICJgciBTeXMuRGF0ZSgpYCIKb3V0cHV0OiBodG1sX2RvY3VtZW50CmJpYmxpb2dyYXBoeTogcmVmZXJlbmNlcy5iaWIKZWRpdG9yX29wdGlvbnM6IAogIG1hcmtkb3duOiAKICAgIHdyYXA6IDcyCi0tLQoKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkKYGBgCgpgYGB7ciwgZ2xvYmFsc2V0dGluZ3MsIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIHJlc3VsdHM9J2hpZGUnfQpsaWJyYXJ5KGtuaXRyKQoKa25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFKQpvcHRzX2NodW5rJHNldCh0aWR5Lm9wdHM9bGlzdCh3aWR0aC5jdXRvZmY9MTAwKSx0aWR5PVRSVUUsIHdhcm5pbmcgPSBGQUxTRSwgbWVzc2FnZSA9IEZBTFNFLGNvbW1lbnQgPSAiIz4iLCBjYWNoZT1UUlVFLCBjbGFzcy5zb3VyY2U9YygidGVzdCIpLCBjbGFzcy5vdXRwdXQ9YygidGVzdDIiKSkKb3B0aW9ucyh3aWR0aCA9IDEwMCkKcmdsOjpzZXR1cEtuaXRyKCkKCgpjb2xvcml6ZSA8LSBmdW5jdGlvbih4LCBjb2xvcikge3NwcmludGYoIjxzcGFuIHN0eWxlPSdjb2xvcjogJXM7Jz4lczwvc3Bhbj4iLCBjb2xvciwgeCkgfQpgYGAKCmBgYHtyIGtsaXBweSwgZWNobz1GQUxTRSwgaW5jbHVkZT1UUlVFfQprbGlwcHk6OmtsaXBweShwb3NpdGlvbiA9IGMoJ3RvcCcsICdyaWdodCcpKQoja2xpcHB5OjprbGlwcHkoY29sb3IgPSAnZGFya3JlZCcpCiNrbGlwcHk6OmtsaXBweSh0b29sdGlwX21lc3NhZ2UgPSAnQ2xpY2sgdG8gY29weScsIHRvb2x0aXBfc3VjY2VzcyA9ICdEb25lJykKYGBgCgojIERhdGEgJiBNZXRob2RzCgojIyBEZXBlbmRlbnQgdmFyaWFibGUKCkluIHRoZSBwcmVzZW50IHN0dWR5LCBJIHdlYnNjcmFwZWQgZGF0YSBmcm9tIHRoZSBpbnRlcm5ldCBpbiBvcmRlciB0bwphbnN3ZXIgdGhlIHJlc2VhcmNoIHF1ZXN0aW9ucy4gVGhlIHN0dWR5IGZvY3VzZXMgb24gc2NpZW50aXN0cyB3b3JraW5nCmF0IHRoZSBTb2Npb2xvZ3kgZGVwYXJ0bWVudCAoTj0zMykgYW5kIHNjaWVudGlzdHMgd29ya2luZyBhdCB0aGUgRGF0YQpTY2llbmNlIGRlcGFydG1lbnQgKE49NDYpIG9mIFJhZGJvdWQgVW5pdmVyc2l0eS4gVGhlIHN0YXJ0aW5nIHBvaW50IG9mCnRoZSB3ZWJzY3JhcGluZyB3YXMgY29sbGVjdGluZyB0aGUgZnVsbCBuYW1lcyBvZiB0aGVzZSBzY2llbnRpc3RzIGZyb20KdGhlIHN0YWZmLXdlYnBhZ2Ugb2YgdGhlIFJhZGJvdWQgVW5pdmVyc2l0eS4gSW4gb3JkZXIgdG8gZG8gc28sIEkgdXNlZAp0aGUgcGFja2FnZSBydmVzdCB3YXMsIGFuZCBpbiBjYXNlIG9mIEphdmFTY3JpcHQgZGF0YSwgdGhlIHBhY2thZ2UgVjggdG8KZ2F0aGVyIHRoaXMgaW5mb3JtYXRpb24uCgpJbiB0aGUgbmV4dCBzdGVwLCB0aGVzZSBmdWxsIG5hbWVzIHdlcmUgdXNlZCBieSB0aGUgU2Nob2xhciBwYWNrYWdlIGluIFIKdG8gZmluZCBpbmZvcm1hdGlvbiBvbiBwdWJsaWNhdGlvbnMsIGNvLWF1dGhvcnNoaXAgYW5kIGNpdGF0aW9ucy4gSQpkZWxldGVkIHNjaWVudGlzdHMgd2l0aCBhbiBleHRyZW1lbHkgaGlnaCBudW1iZXIgb2YgY2l0YXRpb25zLCB3aGljaApyZXN1bHRlZCBpbiBkZWxldGluZyB0aHJlZSBzY2llbnRpc3RzIGF0IHRoZSBTb2Npb2xvZ3kgZGVwYXJ0bWVudCBhbmQKdHdvIGF0IHRoZSBEYXRhIFNjaWVuY2UgZGVwYXJ0bWVudC4gV2l0aCB0aGlzIGRhdGEsIEkgY3JlYXRlZCB0aGUKZGVwZW5kZW50IHZhcmlhYmxlIGNvLXB1YmxpY2F0aW9ucy4gRm9yIGVhY2ggc2NpZW50aXN0LCBJIHNlYXJjaGVkCndoZXRoZXIgdGhpcyBzY2llbnRpc3QgaGFkIHB1Ymxpc2hlZCBhbiBhcnRpY2xlIHdpdGggc29tZW9uZSBlbHNlIGZyb20KdGhlIHNhbWUgZGVwYXJ0bWVudC4gVGhpcyB3YXMgZG9uZSB1c2luZyB0aGUgbmFtZXMgb2YgdGhlIHNjaWVudGlzdHMuCkFsdGhvdWdoIHRoaXMgZGF0YSB3YXMgY29sbGVjdGVkIGF0IG9uZSBtb21lbnQgaW4gdGltZSwgd2l0aCB0aGUKcHVibGljYXRpb24gbmV0d29yayBJIGhhZCB0aGUgb3Bwb3J0dW5pdHkgdG8gZGlzdGluZ3Vpc2ggZGlmZmVyZW50Cm1vbWVudHMgaW4gdGltZS4gUGVyIGRlcGFydG1lbnQsIHRoZXJlIGFyZSB0aHJlZSB3YXZlcyBvZiBjby1wdWJsaWNhdGlvbgpuZXR3b3JrczogZm9yIHRoZSB5ZWFycyAyMDE2LTIwMTcsIDIwMTgtMjAxOSBhbmQgMjAyMC0yMDIyLiBUaGVzZSB3YXZlcwp0aHVzIGV4cHJlc3MgdGhlIGNvLXB1YmxpY2F0aW9uIHRpZXMgb2YgYXJ0aWNsZXMgcHVibGlzaGVkIGluIHRoZXNlCnllYXJzLiBJIHRoZW4gdHVybmVkIHRoZXNlIHRocmVlIHdhdmVzIGludG8gYW4gYWRqYWNlbmN5IG1hdHJpeCwgaW4Kd2hpY2ggc2NpZW50aXN0cyBzY29yZSBhIDEgd2hlbiB0aGV5IGhhdmUgcHVibGlzaGVkIGFuIGFydGljbGUgdG9nZXRoZXIuClNpbmNlIHRoZSBuZXR3b3JrIGlzIGJhc2VkIG9uIGNvLXB1YmxpY2F0aW9ucywgaXQgaXMgdW5kaXJlY3RlZC4KCiMjIEluZGVwZW5kZW50IHZhcmlhYmxlCgpUaGUgaW5kZXBlbmRlbnQgdmFyaWFibGUgY29uc2lzdHMgb2YgdGhlIEthcmRhc2hpYW4gSW5kZXguIFRoZQpLYXJkYXNoaWFuIEluZGV4IGNvbXBhcmVzIHRoZSBUd2l0dGVyIGZvbGxvd2VycyB3aXRoIG51bWJlciBvZiBjaXRhdGlvbnMKb2YgYWNhZGVtaWNzIFtAaGFsbF9rYXJkYXNoaWFuXzIwMTRdLiBJbiBvcmRlciB0byBjYWxjdWxhdGUgdGhlc2UsIHRoZQp0d2l0dGVSIHBhY2thZ2UgaW4gUiBpcyB1c2VkIHRvIGV4dHJhY3QgVHdpdHRlciB1c2VyIGluZm9ybWF0aW9uIG9mCnNjaG9sYXJzIG9mIHRoZSBkZXBhcnRtZW50cyBmcm9tIHRoZSBUd2l0dGVyIFJFU1QgQVBJLiBGb3IgZWFjaCBmdWxsCm5hbWUsIHRoZSBmaXJzdCB1c2VyIHRoYXQgdGhlIHR3aXR0ZVIgcGFja2FnZSBzY3JhcGVkLCBpcyBzYXZlZC4gQnkKZXllYmFsbGluZywgdHdpdHRlciB1c2VycyB3aXRoIGEgaGlnaCBudW1iZXIgb2YgZm9sbG93ZXJzIHdlcmUgY2hlY2tlZC4KSW4gc29tZSBjYXNlcywgdGhlIG1hdGNoIGJldHdlZW4gZnVsbCBuYW1lIGFuZCBUd2l0dGVyIHVzZXJuYW1lIHdhcyBub3QKbWFkZSBjb3JyZWN0bHkuIEluIHRob3NlIGluc3RhbmNlcywgdGhpcyB3YXMgY29ycmVjdGVkIGJ5IGhhbmQuIFVzaW5nCnRoZSBudW1iZXIgb2YgZm9sbG93ZXJzIGFuZCB0aGUgY2l0YXRpb25zIHNjcmFwZWQgZnJvbSBHb29nbGUgU2Nob2xhciwKdGhlIEthcmRhc2hpYW4gSW5kZXggaXMgY2FsY3VsYXRlZC4gSGFsbCdzIFstQGhhbGxfa2FyZGFzaGlhbl8yMDE0XQpmb3JtdWxhIHRvIGNhbGN1bGF0ZSB0aGUgay1pbmRleCBleGlzdHMgb2YgdHdvIGVxdWF0aW9ucy4gVGhlIGZpcnN0CmVxdWF0aW9uIGNhbGN1bGF0ZXMgYSB0eXBpY2FsIG51bWJlciBvZiB0d2l0dGVyIGZvbGxvd2VycyBhbmQgaXMKZXhwcmVzc2VkIGFzIGZvbGxvd3M6CgoKCiQkCgpGID0gNDMuM0NeezAuMzJ9CgokJAoKVGhlbiwgdGhlIGstaW5kZXggaXMgY2FsY3VsYXRlZCB3aXRoIHRoZSBmb2xsb3dpbmcgZXF1YXRpb24sIHVzaW5nIHRoZSBhY3R1YWwgZm9sbG93ZXJjb3VudCBhbmQgdGhlIGV4cGVjdGVkIGZvbGxvd2VyY291bnQ6IAoKJCQKCkstaW5kZXggPQpcZnJhY3tGX3thfX0ge0Zfe2N9fSAKCiQkCgo8YnI+CgojIyBDb250cm9sIHZhcmlhYmxlcwoKSSBhZGRlZCB0aGUgY29udHJvbCB2YXJpYWJsZSBUd2l0dGVyIER1bW15IHRvIGluZGljYXRlIHdoZXRoZXIgdGhlCnNjaWVudGlzdCBoYXMgVHdpdHRlciBvciBub3QuIEEgc2NpZW50aXN0IHNjb3JlcyAxIGluIGNhc2Ugb2YgYSBUd2l0dGVyCmhhbmRsZSBmb3VuZCBieSB0aGUgdHdpdHRlUiBwYWNrYWdlLiBGdXJ0aGVybW9yZSwgdGhlIHZhcmlhYmxlIER1dGNoCnNob3dzIHRoZSBldGhuaWNpdHkgb2YgdGhlIHNjaWVudGlzdC4gVGhpcyB2YXJpYWJsZSBpcyBpbmNsdWRlZCBhcyBhCnNlbGVjdGlvbiB0byBjb2xsYWJvcmF0ZSB3aXRoIGEgc2NpZW50aXN0IG1heSBhbHNvIGJlIGJhc2VkIG9uIHRoZWlyCmV0aG5pY2l0eS4gRXRobmljaXR5IHdhcyBzY3JhcGVkIHVzaW5nIHRoZSBGYW1pbGllbmFtZW5iYW5rCltAbmVkZXJsYW5kc2VfZmFtaWxpZW5hbWVuYmFua10sIHdoaWNoIGhhcyBkYXRhIG9uIGxhc3QgbmFtZXMgdXNlZCBpbgp0aGUgTmV0aGVybGFuZHMuIEluIGNhc2Ugb2YgYSB0eXBpY2FsIER1dGNoIGxhc3QgbmFtZSwgdGhlIHNjaWVudGlzdCBnb3QKYSBzY29yZSAxIG9uIHRoZSBkdW1teSBEdXRjaC4gSW4gb3RoZXIgY2FzZXMsIHRoZSBzY2hvbGFyIHNjb3JlcyBhIDAuClRoaXMgbWVhbnMgdGhhdCBhbGwgbGFzdCBuYW1lcyB0aGF0IGFyZSBub3QgRHV0Y2ggYXJlIHRha2VuIHRvZ2V0aGVyIGFzCm9uZSBjYXRlZ29yeSwgbm90IGRpc3Rpbmd1aXNoaW5nIGJldHdlZW4gKE5vbi0pV2VzdGVybiBldGhuaWMKYmFja2dyb3VuZHMuCgpBcyBnZW5kZXIgbWF5IGluZmx1ZW5jZSB0aGUgay1pbmRleCBhcyB3ZWxsIGFzIGNvbGxhYm9yYXRpb25zIGJldHdlZW4Kc2NpZW50aXN0cywgSSBpbmNsdWRlZCBhIGR1bW15IGZvciBnZW5kZXIuIFdpdGggYSBwcm9jZWR1cmUgc2ltaWxhciB0bwp0aGF0IG9mIGRldGVybWluaW5nIGV0aG5pY2l0eSwgdGhlIE1lZXJ0ZW5zIG5hbWVuYmFuawpbQGRhdGFiYW5rZW5fbWVlcnRlbnNfaW5zdGl0dXV0XSB3YXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIGdlbmRlciBvZiB0aGUKcmVzcG9uZGVudC4gVGhpcyBkYXRhYmFuayBoYXMgaW5mb3JtYXRpb24gb24gYWxsIHRoZSBmaXJzdCBuYW1lcyB1c2VkIGluCnRoZSBOZXRoZXJsYW5kcyBhbmQgdGhlaXIgZnJlcXVlbmN5LiBJbiBjYXNlIG9mIGEgZmlyc3QgbmFtZSB0aGF0IGlzCm1vcmUgb2Z0ZW4gdXNlZCBmb3Igd29tZW4gdGhhbiBmb3IgbWVuLCBhIHNjaWVudGlzdCBzY29yZXMgYSAwIG9uIHRoZQpkdW1teSBnZW5kZXIuIEluIGNhc2Ugb2YgYSBmaXJzdCBuYW1lIHRoYXQgaXMgbW9yZSBvZnRlbiB1c2VkIGZvciBtZW4sCnRoZSBzY2llbnRpc3Qgc2NvcmVzIGEgMSBvbiB0aGUgZHVtbXkuIExhc3RseSwgYXMgYWdlIGNhbiBoYXZlIGFuCmluZmx1ZW5jZSBvbiBvcHBvcnR1bml0aWVzIGZvciAoY28pcHVibGlzaGluZywgYSBwcm94eSBmb3IgYWdlIGlzCmluY2x1ZGVkIGJhc2VkIG9uIHRoZSB5ZWFyIG9mIHRoZSBmaXJzdCBwdWJsaWNhdGlvbiBvZiB0aGUgc2Nob2xhci4gVGhlCmRlc2NyaXB0aXZlcyBvZiB0aGVzZSB2YXJpYWJsZXMgY2FuIGJlIGZvdW5kIGF0IHRoZSBib3R0b20gb2YgdGhpcyBwYWdlLgoKSW50ZXJlc3RlZCByZWFkZXJzIG1heSBoYXZlIGEgZnVydGhlciBsb29rIGludG8gdGhlIHNjcmFwaW5nIG9mIGFsbCB0aGUKdmFyaWFibGVzIHVzZWQgZHVyaW5nIHRoaXMgc3R1ZHksIHdoaWNoIGNhbiBiZSBkb25lIHdpdGggdGhlIHJlcGxpY2F0aW9uCnBhY2thZ2UgdGhhdCBjYW4gYmUgZm91bmQgb24gdGhpcyB3ZWJzaXRlIGluIHdlZWsgMyBvZiB0aGUgIk15IEpvdXJuYWwiCnBhZ2UuCgo8YnI+CgojIEFuYWx5dGljYWwgc3RyYXRlZ3kKClRvIGFuc3dlciB0aGUgcmVzZWFyY2ggcXVlc3Rpb25zIHRoYXQgYXJlIGRlc2NyaXB0aXZlIGluIG5hdHVyZSwKZGVzY3JpcHRpdmUgc3RhdGlzdGljcyBhcmUgc2hvd24gZm9yIHRoZSBkaWZmZXJlbnQgd2F2ZXMgYW5kIGRpZmZlcmVudApzdHVkeSBkZXBhcnRtZW50cy4gVGhlc2Ugc3RhdGlzdGljcyBhcmUgdGhlbiB1c2VkIHRvIGNvbXBhcmUgd2l0aGluIGFuZApiZXR3ZWVuIGRlcGFydG1lbnRzIGFuZCB0byBhbnN3ZXIgdGhlIHJlc2VhcmNoIHF1ZXN0aW9ucy4gSW1wb3J0YW50CmRlc2NyaXB0aXZlIG5ldHdvcmsgY2hhcmFjdGVyaXN0aWNzIHRoYXQgSSBzaG93IGFyZSB0cmFuc2l0aXZpdHksIGRlZ3JlZQphbmQgdGhlIGR5YWQgY2Vuc3VzLgoKVG8gcHJvdmlkZSBhbiBhbnN3ZXIgdG8gdGhlIGV4cGxhbmF0b3J5IHJlc2VhcmNoIHF1ZXN0aW9uIG9uIG5ldHdvcmsKZWZmZWN0cywgdGhlIFJTaWVuYSBwYWNrYWdlIGlzIHVzZWQuIFNJRU5BIC0tIHdoaWNoIHN0YW5kcyBmb3IKU2ltdWxhdGlvbiBJbnZlc3RpZ2F0aW9uIGZvciBFbXBpcmljYWwgTmV0d29yayBBbmFseXNpcyAtLSBpcyBhYmxlIHRvCmFuYWx5emUgbG9uZ2l0dWRpbmFsIGRhdGEgc2ltdWxhdGluZyBuZXR3b3JrIG91dGNvbWVzIGJhc2VkIG9uIHRoZQpwZXJzcGVjdGl2ZSBvZiB0aGUgbm9kZXMgW0BtYW51YWxdLiBJbXBvcnRhbnRseSwgdGhlIFN0b2NoYXN0aWMgQWN0b3IKT3JpZW50ZWQgTW9kZWwgKFNPQU0pIGVudGFpbHMgdGhhdCBhY3RvcnMgcGVyZm9ybSAnbWluaXN0ZXBzJywgd2hpY2gKbWVhbnMgdGhhdCBhIHJhbmRvbSBhY3RvciBnZXRzIGFzc2lnbmVkIGF0IHRoZSB0aW1lLCB3aG8gaXMgYWJsZSB0byBtYWtlCm9uZSB0aWUgY2hhbmdlLiBBZnRlciBtYWtpbmcgdGhpcyB0aWUgY2hhbmdlLCB0aGUgbmV4dCBhY3RvciBnZXRzIHRoZQp0dXJuIHRvIG1ha2UgYSBjaGFuZ2UuIEZvciB0aGVzZSBhY3RvcnMsIGl0IGlzIGFsc28gYSBwb3NzaWJpbGl0eSB0bwptYWtlIG5vIGNoYW5nZS4gVGhlIGRlY2lzaW9uIG9mIHRoZSBhY3RvciBkZXBlbmRzIG9uIHRoZSBldmFsdWF0aW9uIG9mCnBvc3NpYmxlIG9wdGlvbnMsIHdoaWNoIGlzIGRldGVybWluZWQgd2l0aCB0aGUgZXZhbHVhdGlvbiBmdW5jdGlvbi4gVGhlCmFjdG9yIHRoZW4gYmFzZXMgdGhlIGRlY2lzaW9uIG9uIHRoZSBtb3N0IGF0dHJhY3RpdmUgbmV0d29yayBvdXRjb21lLgpBZnRlciB0aGlzIGRlY2lzaW9uLCB0aGUgbmV4dCBhY3RvciBnZXRzIGEgdHVybiB0byBkZWNpZGUuIEJhc2VkIG9uIG1hbnkKc2ltdWxhdGlvbnMgb2YgdGhlc2UgYWN0b3ItZGVjaXNpb25zLCBlc3RpbWF0ZXMgZm9yIGV2YWx1YXRpb24gYXJlCnByb3ZpZGVkIGJ5IHRoZSBtb2RlbC4KCiMjIEVzdGltYXRpb24gb2YgbW9kZWxzCgpUaHJlZSBtb2RlbHMgYXJlIGVzdGltYXRlZCBwZXIgZGVwYXJ0bWVudC4gSW4gdGhlIGZpcnN0IG1vZGVsLCBvbmx5CnN0cnVjdHVyYWwgbmV0d29yayBlZmZlY3RzIG9uIHRoZSBkZXBlbmRlbnQgdmFyaWFibGUgb2YgY28tcHVibGljYXRpb24KYXJlIGluY2x1ZGVkLiBGaXJzdCwgdGhlICpkZWdyZWUqIGVmZmVjdCBlc3RpbWF0ZXMgdGhlIG51bWJlciBvZgpvdXRkZWdyZWVzLCB3aGljaCBhcmUgaW4gdGhpcyBjYXNlIHRoZSBudW1iZXIgb2YgY29wdWJsaWNhdGlvbnMuIFRoaXMKZWZmZWN0IGNhbiBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlcmNlcHQuIFRoZW4sIHRoZSAqdHJhbnNpdGl2ZSB0cmlhZHMqCmVmZmVjdCBzaG93cyB3aGV0aGVyIGluZGl2aWR1YWxzIHByZWZlciB0byBjbG9zZSBhIHRyaWFkIChhbmQgdGh1cwpwcmVmZXIgYSB0cmFuc2l0aXZlIHJlbGF0aW9uKSB0aGFuIHRvIG5vdCBjbG9zZSBhIHRyYW5zaXRpdmUgdHJpYWQuIEluCnRoZSBjYXNlIG9mIGNvLXB1YmxpY2F0aW9uIG5ldHdvcmtzLCBpdCBtZWFucyB3aGV0aGVyIGEgc2NpZW50aXN0CnByZWZlcnMgdG8gY28tcHVibGlzaCB3aXRoIGEgY28tYXV0aG9yIG9mIGEgY28tYXV0aG9yLiBGdXJ0aGVybW9yZSwgdGhlCmFjdGl2aXR5IGFuZCBwb3B1bGFyaXR5IGVmZmVjdCByZXZlYWxzIHdoZXRoZXIgaW5kaXZpZHVhbHMgcHJlZmVyIHRvCmZvcm0gYSB0aWUgd2l0aCBpbmRpdmlkdWFscyB0aGF0IGFscmVhZHkgaGF2ZSBhIGxvdCBvZiB0aWVzLiBUaHVzLCBkbwpzY2llbnRpc3RzIGNvLXB1Ymxpc2ggd2l0aCBzY2llbnRpc3RzIHRoYXQgaGF2ZSBhbHJlYWR5IGNvLXB1Ymxpc2hlZCBhCmxvdD8KCkluIHRoZSBzZWNvbmQgbW9kZWwsIHRoZSBrLWluZGV4IGlzIGFkZGVkLiBJbiB0aGlzIG1vZGVsLCB0aGUgKmFic0RpZmZYKgplZmZlY3Qgd2FzIGluY2x1ZGVkLCBlc3RpbWF0aW5nIHdoZXRoZXIgc2NpZW50aXN0cyBwcmVmZXIgdG8gY28tcHVibGlzaAp3aXRoIGEgc2NpZW50aXN0IHdpdGggYSBsb3cgYWJzb2x1dGUgZGlzY3JlcGFuY3kgaW4gdGhlaXIgay1pbmRleC4gSQp0aHVzIHVzZWQgdGhpcyBlZmZlY3QgdG8gdGVzdCB0aGUgaG9tb3BoaWx5IGJhc2VkIG9uIHRoZSBrLWluZGV4LiBUaGVuCmFub3RoZXIgbW9kZWwgaXMgcnVuIHdpdGggdGhlIGNvbnRyb2wgdmFyaWFibGVzIGluY2x1ZGVkLiBGb3IgdGhlCmNvbnRyb2wgdmFyaWFibGVzIGV0aG5pY2l0eSwgZ2VuZGVyIGFuZCB0aGUgVHdpdHRlciBkdW1teSwgSSBpbmNsdWRlZAp0aGUgKnNhbWVYKiBlZmZlY3QuIFRoaXMgc2hvd3Mgd2hldGhlciBzY2llbnRpc3RzIHByZWZlciB0byBjby1wdWJsaXNoCndpdGggYW5vdGhlciBzY2llbnRpc3Qgb2YgdGhlIHNhbWUgZ2VuZGVyLCBldGhuaWNpdHkgYW5kIHR3aXR0ZXIgc3RhdHVzLgpBcyBhZ2UgaXMgdGhlIG9ubHkgY29udHJvbCB2YXJpYWJsZSBvZiByYXRpbyBtZWFzdXJlbWVudCBsZXZlbCwgSQppbmNsdWRlZCB0aGlzIHZhcmlhYmxlIHdpdGggdGhlICphYnNEaWZmWCogZWZmZWN0IGFzIHdlbGwsIGFzIEkgd291bGQKbGlrZSB0byBzZWUgd2hldGhlciBzY2llbnRpc3RzIHByZWZlciB0byBjb2xsYWJvcmF0ZSB3aXRoIHNvbWVvbmUKc2ltaWxhciBpbiBhZ2UsIG5vdCBvZiBleGFjdGx5IHRoZSBzYW1lIGFnZS4KCkluIHRoZSBmb3VydGggbW9kZWwsIHRoZSAqYWx0WCogZWZmZWN0IHdhcyBpbmNsdWRlZCBmb3IgdGhlIGstaW5kZXgsIHRvCnRlc3QgdGhlIGh5cG90aGVzZXMgb24gY28tcHVibGlzaGluZyB3aXRoIHNjaWVudGlzdHMgd2l0aCBhIGxvd2VyIG9yCmhpZ2hlciBrLWluZGV4LiBUaGlzIGVmZmVjdCBzaG93cyB3aGV0aGVyIHNjaWVudGlzdHMgcHJlZmVyIHRvCmNvLXB1Ymxpc2ggYmFzZWQgb24gdGhlIHZhbHVlIG9mIHRoZSBrLWluZGV4IG9mIHRoZSBvdGhlciBzY2llbnRpc3QuIFRoZQpsYXN0IG1vZGVsIHRlc3RzIHRoZXNlICphbHRYKiBlZmZlY3RzIHdpdGggY29udHJvbCB2YXJpYWJsZXMgaW5jbHVkZWQuCkFsbCBvZiB0aGUgY29udHJvbCB2YXJpYWJsZXMgaW5jbHVkZWQgaW4gdGhlIG1vZGVsIHJlbWFpbiB0aGUgc2FtZSBhcyBpbgp0aGUgdGhpcmQgbW9kZWwuCgpBcyByb2J1c3RuZXNzIGNoZWNrcywgdGhlIHNhbWUgbW9kZWxzIGFzIGRlc2NyaWJlZCBhYm92ZSB3ZXJlIGVzdGltYXRlZAp3aXRob3V0IHRoZSB0d2l0dGVyIGR1bW15LCBhbmQgd2l0aCB0aGUgbnVtYmVyIG9mIHR3aXR0ZXIgZm9sbG93ZXJzIGFzCmluZGVwZW5kZW50IHZhcmlhYmxlIGluc3RlYWQgb2YgdGhlIGstaW5kZXguIFRoaXMgY291bGQgc2hvdyB3aGV0aGVyIGl0Cm1heSBtb3N0bHkgYmUgc29jaWFsIG1lZGlhIHRoYXQgbWF0dGVycyB3aXRob3V0IGl0cyByZWxhdGlvbiB0byB0aGUKY2l0YXRpb25zIG9mIGEgc2NpZW50aXN0LiBUaGVzZSByb2J1c3RuZXNzIGNoZWNrcyBhcmUgdmlzaWJsZSBpbiB0aGUKQXBwZW5kaXguCgpgYGB7cn0KbG9hZCgiL1VzZXJzL2FudXNjaGthL0RvY3VtZW50cy9sYWJqb3VybmFsL2RhdGEvc29jZGVmX2RmLlJEYXRhIikKc3VtbWFyeShzb2NkZWZfZGYka2kpCnN1bW1hcnkoc29jZGVmX2RmJGR1dGNoKQpzdW1tYXJ5KHNvY2RlZl9kZiRwdWJfZmlyc3QpCnN1bW1hcnkoc29jZGVmX2RmJHR3aXR0ZXJfZHVtKQp0YWJsZShzb2NkZWZfZGYkZ2VuZGVyKQoKYGBgCgpgYGB7cn0KbG9hZCgiL1VzZXJzL2FudXNjaGthL0RvY3VtZW50cy9sYWJqb3VybmFsL2RhdGEvZGF0YWRlZl9kZi5SRGF0YSIpCnN1bW1hcnkoZGF0YWRlZl9kZiRraSkKc3VtbWFyeShkYXRhZGVmX2RmJGR1dGNoKQpzdW1tYXJ5KGRhdGFkZWZfZGYkcHViX2ZpcnN0KQpzdW1tYXJ5KGRhdGFkZWZfZGYkdHdpdHRlcl9kdW0pCnRhYmxlKGRhdGFkZWZfZGYkZ2VuZGVyKQoKYGBgCgojIFJlZmVyZW5jZXMK