-
Journals Published Articles From Turkey
-
If you want to see the code used in the analysis please click the code button on the right upper corner or throughout the page.
-Select from the tabs below.
-
-
-
Aim
-
Aim:
-
Here we will look at the Journals in which articles from Turkey are published.
-
-
-
-
Data retriveal from PubMed using EDirect
-
Articles are downloaded as xml
.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Journal Names are extracted from xml.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Analysis
-
-
-
-
library(tidyverse)
-library(readr)
-
-TurkeyAll <- read_delim("data/TurkeyAll.csv",
- "\t", escape_double = FALSE, col_names = FALSE,
- na = "na", trim_ws = TRUE)
-
-names(TurkeyAll) <- c("PMID", "ISSN", "JournalName", "Year")
-
-# dim(TurkeyAll)[1]
-
-# min(TurkeyAll[,4], na.rm = TRUE)
-
-# max(TurkeyAll[,4], na.rm = TRUE)
-
-# glimpse(TurkeyAll)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
TurkeyAll2 <- TurkeyAll %>%
- mutate(Journal = paste(JournalName, ISSN, sep = " ISSN "))
-ArticlesByYear <- TurkeyAll2 %>%
- group_by(Journal, Year) %>%
- summarise(n = n())
-ArticlesByYear <- ArticlesByYear %>%
- spread(key = Year, value = n)
-TurkeyAll2 <- TurkeyAll2 %>%
- select(Journal, JournalName, ISSN) %>%
- unique()
-
-ArticlesByYear <- left_join(ArticlesByYear, TurkeyAll2, by = "Journal")
-ArticlesByYear <- ArticlesByYear %>%
- select(
- Journal, JournalName, ISSN, everything()
- )
-
-
-
-
-
-
-
-
-element MedlineTA NLMCatalogRecord/NlmUniqueID -def ‘na’ -sep ‘’ -block TitleAlternate/Title -element TitleAlternate/Title
-
“xtract -input data/nlmcatalog_result_currentlyindexed.xml -pattern NCBICatalogRecord -element ISSNLinking -def ‘na’ -sep ’ ’ -block TitleAlternate/Title -if TitleAlternate/Title@Sort -equals N -element TitleAlternate/Title > data/nlmcatalog.csv ”
-
-sep ‘’
-
NLMCatalogRecord/NlmUniqueID ISSNLinking
-
-
-
-
-
-
-
[1] "Code Executed"
-
-
-
-
-
-
-
-
-
-
Parsed with column specification:
-cols(
- X1 = col_integer(),
- X2 = col_character(),
- X3 = col_character(),
- X4 = col_character(),
- X5 = col_character(),
- X6 = col_character(),
- X7 = col_character(),
- X8 = col_character()
-)
-number of columns of result is not a multiple of vector length (arg 1)5116 parsing failures.
-row [38;5;246m# A tibble: 5 x 5[39m col row col expected actual file expected [3m[38;5;246m<int>[39m[23m [3m[38;5;246m<chr>[39m[23m [3m[38;5;246m<chr>[39m[23m [3m[38;5;246m<chr>[39m[23m [3m[38;5;246m<chr>[39m[23m actual [38;5;250m1[39m 2 [31mNA[39m 8 columns 2 columns 'data/nlmcatalog.csv' file [38;5;250m2[39m 3 [31mNA[39m 8 columns 3 columns 'data/nlmcatalog.csv' row [38;5;250m3[39m 4 [31mNA[39m 8 columns 5 columns 'data/nlmcatalog.csv' col [38;5;250m4[39m 6 [31mNA[39m 8 columns 4 columns 'data/nlmcatalog.csv' expected [38;5;250m5[39m 7 [31mNA[39m 8 columns 5 columns 'data/nlmcatalog.csv'
-... ................................. ... ....................................................... ........ .................................................................................................................................................................................... ...... ................................................................................. .... ................................................................................. ... ................................................................................. ... ................................................................................. ........ .................................................................................
-See problems(...) for more details.
-
-
-
-
-
-
-
-
-
-
{xml_nodeset (0)}
-
-
-
-
-
-
-
Results
-
-PubMed’de 1939-2018 tarihleri arasında, Türkiye adresli 200229 adet yayın mevcuttur.
-PubMed’de 1939-2018 tarihleri arasında, Türkiye adresli yayınlar 8517 farklı dergide yayımlanmıştır.
-
-
-
-
-
Discussion
-
türkiye adresli olup da pubmedde yer alan makaleler hangi dergilerde kaçar adet yayınlanmış
-
The retrieved information was compiled in a table.
-
Methods:
-
Result:
-
-
-
-
-
-
-
-
Comment:
-
-
-
-
-
LS0tCnRpdGxlOiAiQmlibGlvZ3JhcGhpYyBTdHVkaWVzIgpzdWJ0aXRsZTogIkpvdXJuYWxzIFB1Ymxpc2hlZCBBcnRpY2xlcyBGcm9tIFR1cmtleSIKYXV0aG9yOiAiU2VyZGFyIEJhbGPEsSwgTUQsIFBhdGhvbG9naXN0IgpkYXRlOiAnYHIgZm9ybWF0KFN5cy5EYXRlKCkpYCcKb3V0cHV0OiAKICBodG1sX25vdGVib29rOiAKICAgIGNvZGVfZm9sZGluZzogaGlkZQogICAgZmlnX2NhcHRpb246IHllcwogICAgaGlnaGxpZ2h0OiBrYXRlCiAgICB0aGVtZTogY2VydWxlYW4KICAgIHRvY19mbG9hdDogeWVzCiAgaHRtbF9kb2N1bWVudDogCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUKICAgIGRmX3ByaW50OiBrYWJsZQogICAgZmlnX2NhcHRpb246IHllcwogICAgaGlnaGxpZ2h0OiBrYXRlCiAgICBrZWVwX21kOiB5ZXMKICAgIHRoZW1lOiBjZXJ1bGVhbgogICAgdG9jX2Zsb2F0OiB5ZXMKLS0tCgpgYGB7ciBnbG9iYWxfb3B0aW9ucywgaW5jbHVkZT1GQUxTRX0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGZpZy53aWR0aCA9IDEyLCBmaWcuaGVpZ2h0ID0gOCwgZmlnLnBhdGggPSAnZmlndXJlLycsIGVjaG8gPSBGQUxTRSwgd2FybmluZyA9IEZBTFNFLCBtZXNzYWdlID0gRkFMU0UsIGVycm9yID0gRkFMU0UsIGV2YWwgPSBUUlVFLCB0aWR5ID0gVFJVRSwgY29tbWVudCA9IE5BKQpgYGAKCmBgYHtyIGxpYnJhcnksIGluY2x1ZGU9RkFMU0V9CmxpYnJhcnkodGlkeXZlcnNlKQpgYGAKCgo8IS0tICMgU3BvbnNvcmVkIGJ5IC0tPgoKPCEtLSBbIVtdKGltYWdlcy9tb2RlbGlzdGF0aXN0aWtfbG9nby0zLTMwMHg3My5wbmcpXShodHRwczovL3d3dy5tb2RlbGlzdGF0aXN0aWsuY29tLykgLS0+CgoKIyBKb3VybmFscyBQdWJsaXNoZWQgQXJ0aWNsZXMgRnJvbSBUdXJrZXkgey50YWJzZXQgLnRhYnNldC1mYWRlIC50YWJzZXQtcGlsbHN9CgpJZiB5b3Ugd2FudCB0byBzZWUgdGhlIGNvZGUgdXNlZCBpbiB0aGUgYW5hbHlzaXMgcGxlYXNlIGNsaWNrIHRoZSBjb2RlIGJ1dHRvbiBvbiB0aGUgcmlnaHQgdXBwZXIgY29ybmVyIG9yIHRocm91Z2hvdXQgdGhlIHBhZ2UuICAKU2VsZWN0IGZyb20gdGhlIHRhYnMgYmVsb3cuCgotLS0KCiMjIEFpbSAKCioqQWltOioqCgpIZXJlIHdlIHdpbGwgbG9vayBhdCB0aGUgSm91cm5hbHMgaW4gd2hpY2ggYXJ0aWNsZXMgZnJvbSBUdXJrZXkgYXJlIHB1Ymxpc2hlZC4gCgotLS0KCiMjIERhdGEgcmV0cml2ZWFsIGZyb20gUHViTWVkIHVzaW5nIEVEaXJlY3QgCgpBcnRpY2xlcyBhcmUgZG93bmxvYWRlZCBhcyBgeG1sYC4KCgoKPCEtLSBgYGB7ciBTZWFyY2ggUHViTWVkIHdyaXRlIDIwMTggZGF0YSBhcyB4bWwsIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9IC0tPgo8IS0tIG15VGVybSA8LSByc3R1ZGlvYXBpOjp0ZXJtaW5hbENyZWF0ZShzaG93ID0gRkFMU0UpIC0tPgo8IS0tIHJzdHVkaW9hcGk6OnRlcm1pbmFsU2VuZCggLS0+CjwhLS0gICAgIG15VGVybSwgLS0+CjwhLS0gICAgICJlc2VhcmNoIC1kYiBwdWJtZWQgLXF1ZXJ5IFwiVHVya2V5W0FmZmlsaWF0aW9uXVwiIC1kYXRldHlwZSBQREFUIC1taW5kYXRlIDIwMTggLW1heGRhdGUgMzAwMCB8IGVmZXRjaCAtZm9ybWF0IHhtbCA+IGRhdGEvVHVya2V5XzIwMTgueG1sIFxuIiAtLT4KPCEtLSApIC0tPgo8IS0tIFN5cy5zbGVlcCgxKSAtLT4KPCEtLSByZXBlYXQgeyAtLT4KPCEtLSAgICAgU3lzLnNsZWVwKDAuMSkgLS0+CjwhLS0gICAgIGlmIChyc3R1ZGlvYXBpOjp0ZXJtaW5hbEJ1c3kobXlUZXJtKSA9PSBGQUxTRSkgeyAtLT4KPCEtLSAgICAgICAgIHByaW50KCJDb2RlIEV4ZWN1dGVkIikgLS0+CjwhLS0gICAgICAgICBicmVhayAtLT4KPCEtLSAgICAgfSAtLT4KPCEtLSB9IC0tPgo8IS0tIGBgYCAtLT4KCgoKCmBgYHtyIFNlYXJjaCBQdWJNZWQgd3JpdGUgYWxsIGRhdGEgYXMgeG1sLCBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQpteVRlcm0gPC0gcnN0dWRpb2FwaTo6dGVybWluYWxDcmVhdGUoc2hvdyA9IEZBTFNFKQpyc3R1ZGlvYXBpOjp0ZXJtaW5hbFNlbmQoCiAgICBteVRlcm0sCiAgICAiZXNlYXJjaCAtZGIgcHVibWVkIC1xdWVyeSBcIlR1cmtleVtBZmZpbGlhdGlvbl1cIiAtZGF0ZXR5cGUgUERBVCAtbWluZGF0ZSAxODAwIC1tYXhkYXRlIDMwMDAgfCBlZmV0Y2ggLWZvcm1hdCB4bWwgPiBkYXRhL1R1cmtleV9hbGwueG1sIFxuIgopClN5cy5zbGVlcCgxKQpyZXBlYXQgewogICAgU3lzLnNsZWVwKDAuMSkKICAgIGlmIChyc3R1ZGlvYXBpOjp0ZXJtaW5hbEJ1c3kobXlUZXJtKSA9PSBGQUxTRSkgewogICAgICAgIHByaW50KCJDb2RlIEV4ZWN1dGVkIikKICAgICAgICBicmVhawogICAgfQp9CmBgYAoKCgoKCjwhLS0gYGBge3IgU2VhcmNoIFB1Yk1lZCBnZXQgMjAxOCBkYXRhIG9uIHRoZSBmbHksIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9IC0tPgo8IS0tIG15VGVybSA8LSByc3R1ZGlvYXBpOjp0ZXJtaW5hbENyZWF0ZShzaG93ID0gRkFMU0UpIC0tPgo8IS0tIHJzdHVkaW9hcGk6OnRlcm1pbmFsU2VuZCggLS0+CjwhLS0gICAgIG15VGVybSwgLS0+CjwhLS0gICAgICJlc2VhcmNoIC1kYiBwdWJtZWQgLXF1ZXJ5IFwiVHVya2V5W0FmZmlsaWF0aW9uXVwiIC1kYXRldHlwZSBQREFUIC1taW5kYXRlIDIwMTggLW1heGRhdGUgMzAwMCB8IGVmZXRjaCAtZm9ybWF0IHhtbCB8IHh0cmFjdCAgLXBhdHRlcm4gUHVibWVkQXJ0aWNsZSAtZWxlbWVudCBNZWRsaW5lQ2l0YXRpb24vUE1JRCBQdWJEYXRlL1llYXIgSm91cm5hbC9JU1NOIElTT0FiYnJldmlhdGlvbj4gZGF0YS9vbnRoZWZseV9UdXJrZXlfMjAxOC5jc3YgXG4iIC0tPgo8IS0tICkgLS0+CjwhLS0gU3lzLnNsZWVwKDEpIC0tPgo8IS0tIHJlcGVhdCB7IC0tPgo8IS0tICAgICBTeXMuc2xlZXAoMC4xKSAtLT4KPCEtLSAgICAgaWYgKHJzdHVkaW9hcGk6OnRlcm1pbmFsQnVzeShteVRlcm0pID09IEZBTFNFKSB7IC0tPgo8IS0tICAgICAgICAgcHJpbnQoIkNvZGUgRXhlY3V0ZWQiKSAtLT4KPCEtLSAgICAgICAgIGJyZWFrIC0tPgo8IS0tICAgICB9IC0tPgo8IS0tIH0gLS0+CjwhLS0gYGBgIC0tPgoKCgo8IS0tIGBgYHtyIFNlYXJjaCBQdWJNZWQgZ2V0IGFsbCBkYXRhIG9uIHRoZSBmbHksIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9IC0tPgo8IS0tIG15VGVybSA8LSByc3R1ZGlvYXBpOjp0ZXJtaW5hbENyZWF0ZShzaG93ID0gRkFMU0UpIC0tPgo8IS0tIHJzdHVkaW9hcGk6OnRlcm1pbmFsU2VuZCggLS0+CjwhLS0gICAgIG15VGVybSwgLS0+CjwhLS0gICAgICJlc2VhcmNoIC1kYiBwdWJtZWQgLXF1ZXJ5IFwiVHVya2V5W0FmZmlsaWF0aW9uXVwiIC1kYXRldHlwZSBQREFUIC1taW5kYXRlIDE4MDAgLW1heGRhdGUgMzAwMCB8IGVmZXRjaCAtZm9ybWF0IHhtbCB8IHh0cmFjdCAgLXBhdHRlcm4gUHVibWVkQXJ0aWNsZSAtZWxlbWVudCBNZWRsaW5lQ2l0YXRpb24vUE1JRCBQdWJEYXRlL1llYXIgSm91cm5hbC9JU1NOIElTT0FiYnJldmlhdGlvbj4gZGF0YS9vbnRoZWZseV9UdXJrZXlfYWxsLmNzdiBcbiIgLS0+CjwhLS0gKSAtLT4KPCEtLSBTeXMuc2xlZXAoMSkgLS0+CjwhLS0gcmVwZWF0IHsgLS0+CjwhLS0gICAgIFN5cy5zbGVlcCgwLjEpIC0tPgo8IS0tICAgICBpZiAocnN0dWRpb2FwaTo6dGVybWluYWxCdXN5KG15VGVybSkgPT0gRkFMU0UpIHsgLS0+CjwhLS0gICAgICAgICBwcmludCgiQ29kZSBFeGVjdXRlZCIpIC0tPgo8IS0tICAgICAgICAgYnJlYWsgLS0+CjwhLS0gICAgIH0gLS0+CjwhLS0gfSAtLT4KPCEtLSBgYGAgLS0+CgoKCkpvdXJuYWwgTmFtZXMgYXJlIGV4dHJhY3RlZCBmcm9tIHhtbC4KCgoKPCEtLSBgYGB7ciBleHRyYWN0IGpvdXJuYWwgbmFtZXMgZnJvbSAyMDE4IHhtbCwgZXZhbD1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgaW5jbHVkZT1GQUxTRX0gLS0+CjwhLS0gbXlUZXJtIDwtIHJzdHVkaW9hcGk6OnRlcm1pbmFsQ3JlYXRlKHNob3cgPSBGQUxTRSkgLS0+CjwhLS0gcnN0dWRpb2FwaTo6dGVybWluYWxTZW5kKCAtLT4KPCEtLSBteVRlcm0sIC0tPgo8IS0tICJ4dHJhY3QgLWlucHV0IGRhdGEvVHVya2V5XzIwMTgueG1sIC1wYXR0ZXJuIFB1Ym1lZEFydGljbGUgLWVsZW1lbnQgTWVkbGluZUNpdGF0aW9uL1BNSUQgUHViRGF0ZS9ZZWFyIEpvdXJuYWwvSVNTTiBJU09BYmJyZXZpYXRpb24gPiBkYXRhL1R1cmtleTIwMTguY3N2IFxuIiAtLT4KPCEtLSApIC0tPgo8IS0tIFN5cy5zbGVlcCgxKSAtLT4KPCEtLSByZXBlYXQgeyAtLT4KPCEtLSBTeXMuc2xlZXAoMC4xKSAtLT4KPCEtLSBpZiAocnN0dWRpb2FwaTo6dGVybWluYWxCdXN5KG15VGVybSkgPT0gRkFMU0UpIHsgLS0+CjwhLS0gcHJpbnQoIkNvZGUgRXhlY3V0ZWQiKSAtLT4KPCEtLSBicmVhayAtLT4KPCEtLSB9IC0tPgo8IS0tIH0gLS0+CjwhLS0gYGBgIC0tPgoKCmBgYHtyIGV4dHJhY3Qgam91cm5hbCBuYW1lcyBmcm9tIGFsbCBkYXRhIHhtbCwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KbXlUZXJtIDwtIHJzdHVkaW9hcGk6OnRlcm1pbmFsQ3JlYXRlKHNob3cgPSBGQUxTRSkKcnN0dWRpb2FwaTo6dGVybWluYWxTZW5kKApteVRlcm0sCiJ4dHJhY3QgLWlucHV0IGRhdGEvVHVya2V5X2FsbC54bWwgLXBhdHRlcm4gUHVibWVkQXJ0aWNsZSAtc2VwICcgJyAtZGVmICduYScgLWVsZW1lbnQgTWVkbGluZUNpdGF0aW9uL1BNSUQgSm91cm5hbC9JU1NOIElTT0FiYnJldmlhdGlvbiBQdWJEYXRlL1llYXIgPiBkYXRhL1R1cmtleUFsbC5jc3YgXG4iCikKU3lzLnNsZWVwKDEpCnJlcGVhdCB7ClN5cy5zbGVlcCgwLjEpCmlmIChyc3R1ZGlvYXBpOjp0ZXJtaW5hbEJ1c3kobXlUZXJtKSA9PSBGQUxTRSkgewpwcmludCgiQ29kZSBFeGVjdXRlZCIpCmJyZWFrCn0KfQpgYGAKCgoKLS0tLQoKCiMjIFJldHJpZXZhbCBvZiBEYXRhIG9mIFByb3BlcnRpZXMgb2YgSm91cm5hbHMKCgoKW25sbWNhdGFsb2dfcmVzdWx0X2pvdXJuYWxzX3BtYy54bWxdKGh0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvcG9ydGFsL3V0aWxzL2ZpbGVfYmFja2VuZC5jZ2k/RGI9bmxtY2F0YWxvZyZIaXN0b3J5SWQ9TkNJRF8xXzY5NzU1Mjc4XzEzMC4xNC4xOC45N181NTU1XzE1MzQ1ODU5MzRfMzU5MDYwNjc4M18wTWV0QTBfU19IU3RvcmUmUXVlcnlLZXk9MiZTb3J0PVB1YkRhdGUmRmlsdGVyPWFsbCZDb21wbGV0ZVJlc3VsdENvdW50PTI1NTkmTW9kZT1maWxlJlZpZXc9eG1sJnAkbD1FbWFpbCZwb3J0YWxTbmFwc2hvdD0lMkZwcm9qZWN0cyUyRmVudHJleiUyRnB1Ym1lZCUyRlB1Yk1lZEdyb3VwQDEuMTM2JkJhc2VVcmw9JlBvcnROYW1lPWxpdmUmUm9vdFRhZz1OTE1DYXRhbG9nUmVjb3JkU2V0JkRvY1R5cGU9TkxNQ2F0YWxvZ1JlY29yZFNldCUyMFBVQkxJQyUyMCUyMi0lMkYlMkZOTE0lMkYlMkZEVEQlMjBOTE1DYXRhbG9nUmVjb3JkU2V0LCUyMDFzdCUyMEp1bmUlMjAyMDE3JTJGJTJGRU4lMjIlMjAlMjJodHRwczovL3d3dy5ubG0ubmloLmdvdi9kYXRhYmFzZXMvZHRkL25sbWNhdGFsb2dyZWNvcmRzZXRfMTcwNjAxLmR0ZCUyMiZGaWxlTmFtZT0mQ29udGVudFR5cGU9eG1sKQoKCltubG1jYXRhbG9nX3Jlc3VsdF9jdXJyZW50bHlpbmRleGVkLnhtbF0oaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wb3J0YWwvdXRpbHMvZmlsZV9iYWNrZW5kLmNnaT9EYj1ubG1jYXRhbG9nJkhpc3RvcnlJZD1OQ0lEXzFfNjk3NTUyNzhfMTMwLjE0LjE4Ljk3XzU1NTVfMTUzNDU4NTkzNF8zNTkwNjA2NzgzXzBNZXRBMF9TX0hTdG9yZSZRdWVyeUtleT0xJlNvcnQ9UHViRGF0ZSZGaWx0ZXI9YWxsJkNvbXBsZXRlUmVzdWx0Q291bnQ9NTI0MiZNb2RlPWZpbGUmVmlldz14bWwmcCRsPUVtYWlsJnBvcnRhbFNuYXBzaG90PSUyRnByb2plY3RzJTJGZW50cmV6JTJGcHVibWVkJTJGUHViTWVkR3JvdXBAMS4xMzYmQmFzZVVybD0mUG9ydE5hbWU9bGl2ZSZSb290VGFnPU5MTUNhdGFsb2dSZWNvcmRTZXQmRG9jVHlwZT1OTE1DYXRhbG9nUmVjb3JkU2V0JTIwUFVCTElDJTIwJTIyLSUyRiUyRk5MTSUyRiUyRkRURCUyME5MTUNhdGFsb2dSZWNvcmRTZXQsJTIwMXN0JTIwSnVuZSUyMDIwMTclMkYlMkZFTiUyMiUyMCUyMmh0dHBzOi8vd3d3Lm5sbS5uaWguZ292L2RhdGFiYXNlcy9kdGQvbmxtY2F0YWxvZ3JlY29yZHNldF8xNzA2MDEuZHRkJTIyJkZpbGVOYW1lPSZDb250ZW50VHlwZT14bWwpCgoKW3NjaW1hZ29qcjIwMTcuY3N2XShodHRwczovL3d3dy5zY2ltYWdvanIuY29tL2pvdXJuYWxyYW5rLnBocD9vdXQ9eGxzKQoKW3NjaW1hZ29qcjIwMTctd29zLmNzdl0oaHR0cHM6Ly93d3cuc2NpbWFnb2pyLmNvbS9qb3VybmFscmFuay5waHA/d29zPXRydWUmb3V0PXhscykKCgohW10oaW1hZ2VzL3NjaWRhdGEucG5nKQoKCgoKCi0tLQoKCgoKCgojIyBBbmFseXNpcwoKYGBge3IgT3JnYW5pemUgSm91cm5hbCBEYXRhIDEsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9CmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KHJlYWRyKQoKVHVya2V5QWxsIDwtIHJlYWRfZGVsaW0oImRhdGEvVHVya2V5QWxsLmNzdiIsIAogICAgIlx0IiwgZXNjYXBlX2RvdWJsZSA9IEZBTFNFLCBjb2xfbmFtZXMgPSBGQUxTRSwKICAgIG5hID0gIm5hIiwgdHJpbV93cyA9IFRSVUUpCgpuYW1lcyhUdXJrZXlBbGwpIDwtIGMoIlBNSUQiLCAiSVNTTiIsICJKb3VybmFsTmFtZSIsICJZZWFyIikKCiMgZGltKFR1cmtleUFsbClbMV0KCiMgbWluKFR1cmtleUFsbFssNF0sIG5hLnJtID0gVFJVRSkKCiMgbWF4KFR1cmtleUFsbFssNF0sIG5hLnJtID0gVFJVRSkKCiMgZ2xpbXBzZShUdXJrZXlBbGwpCgpgYGAKCgoKYGBge3IgT3JnYW5pemUgSm91cm5hbCBEYXRhIDJ9CnVuaXF1ZUpvdXJuYWxzIDwtIFR1cmtleUFsbCAlPiUgCiAgICBzZWxlY3QoSm91cm5hbE5hbWUsIElTU04pICU+JSAKICAgIHVuaXF1ZSgpCgojIGRpbSh1bmlxdWVKb3VybmFscylbMV0KCmBgYAoKCmBgYHtyIE9yZ2FuaXplIEpvdXJuYWwgRGF0YSAzfQoKVHVya2V5QWxsMiA8LSBUdXJrZXlBbGwgJT4lIAogICAgbXV0YXRlKEpvdXJuYWwgPSBwYXN0ZShKb3VybmFsTmFtZSwgSVNTTiwgc2VwID0gIiBJU1NOICIpKQoKQXJ0aWNsZXNCeVllYXIgPC0gVHVya2V5QWxsMiAlPiUgCiAgICBncm91cF9ieShKb3VybmFsLCBZZWFyKSAlPiUgCiAgICBzdW1tYXJpc2UobiA9IG4oKSkKCkFydGljbGVzQnlZZWFyIDwtIEFydGljbGVzQnlZZWFyICU+JSAKICAgIHNwcmVhZChrZXkgPSBZZWFyLCB2YWx1ZSA9IG4pCgpUdXJrZXlBbGwyIDwtIFR1cmtleUFsbDIgJT4lIAogICAgc2VsZWN0KEpvdXJuYWwsIEpvdXJuYWxOYW1lLCBJU1NOKSAlPiUgCiAgICB1bmlxdWUoKQogICAgCkFydGljbGVzQnlZZWFyIDwtIGxlZnRfam9pbihBcnRpY2xlc0J5WWVhciwgVHVya2V5QWxsMiwgYnkgPSAiSm91cm5hbCIpIAoKQXJ0aWNsZXNCeVllYXIgPC0gQXJ0aWNsZXNCeVllYXIgJT4lCiAgICBzZWxlY3QoCiAgICBKb3VybmFsLCBKb3VybmFsTmFtZSwgSVNTTiwgZXZlcnl0aGluZygpCiAgICApCgpgYGAKCgpgYGB7ciBzY2ltYWdvanIyMDE3fQoKYGBgCgoKCi1lbGVtZW50IE1lZGxpbmVUQSAgTkxNQ2F0YWxvZ1JlY29yZC9ObG1VbmlxdWVJRCAtZGVmICduYScgLXNlcCAnXHQnIC1ibG9jayBUaXRsZUFsdGVybmF0ZS9UaXRsZSAgIC1lbGVtZW50IFRpdGxlQWx0ZXJuYXRlL1RpdGxlICAgCgoieHRyYWN0IC1pbnB1dCBkYXRhL25sbWNhdGFsb2dfcmVzdWx0X2N1cnJlbnRseWluZGV4ZWQueG1sIC1wYXR0ZXJuIE5DQklDYXRhbG9nUmVjb3JkIC1lbGVtZW50IElTU05MaW5raW5nIC1kZWYgJ25hJyAtc2VwICcgJyAtYmxvY2sgVGl0bGVBbHRlcm5hdGUvVGl0bGUgLWlmIFRpdGxlQWx0ZXJuYXRlL1RpdGxlQFNvcnQgLWVxdWFscyBOIC1lbGVtZW50IFRpdGxlQWx0ZXJuYXRlL1RpdGxlICA+IGRhdGEvbmxtY2F0YWxvZy5jc3YgXG4iCgotc2VwICdcdCcgCgoKTkxNQ2F0YWxvZ1JlY29yZC9ObG1VbmlxdWVJRCBJU1NOTGlua2luZwoKYGBge3IgbmxtY2F0YWxvZywgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KbXlUZXJtIDwtIHJzdHVkaW9hcGk6OnRlcm1pbmFsQ3JlYXRlKHNob3cgPSBGQUxTRSkKcnN0dWRpb2FwaTo6dGVybWluYWxTZW5kKApteVRlcm0sCiJ4dHJhY3QgLWlucHV0IGRhdGEvbmxtY2F0YWxvZ19yZXN1bHRfY3VycmVudGx5aW5kZXhlZC54bWwgLXBhdHRlcm4gTkNCSUNhdGFsb2dSZWNvcmQgLXRhYiAnfCcgLWVsZW1lbnQgTkxNQ2F0YWxvZ1JlY29yZC9ObG1VbmlxdWVJRCAtYmxvY2sgSVNTTkxpbmtpbmcgLXRhYiAnfCcgLWVsZW1lbnQgSVNTTkxpbmtpbmcgLWJsb2NrIFRpdGxlIC1pZiBUaXRsZUBTb3J0IC1lcXVhbHMgTiAtZGVmICduYScgLXRhYiAnfCcgLWVsZW1lbnQgVGl0bGVBbHRlcm5hdGUvVGl0bGUgPiBkYXRhL25sbWNhdGFsb2cuY3N2IFxuIgopClN5cy5zbGVlcCgxKQpyZXBlYXQgewpTeXMuc2xlZXAoMC4xKQppZiAocnN0dWRpb2FwaTo6dGVybWluYWxCdXN5KG15VGVybSkgPT0gRkFMU0UpIHsKcHJpbnQoIkNvZGUgRXhlY3V0ZWQiKQpicmVhawp9Cn0KCmBgYCAKCgpgYGB7cn0KbGlicmFyeShyZWFkcikKbmxtY2F0YWxvZyA8LSByZWFkX2RlbGltKCJkYXRhL25sbWNhdGFsb2cuY3N2IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICBkZWxpbSA9ICJ8IiwKICAgICAgICAgICAgICAgICAgICAgICAgIGVzY2FwZV9kb3VibGUgPSBGQUxTRSwKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF9uYW1lcyA9IEZBTFNFLCAKICAgICAgICAgICAgICAgICAgICAgICAgIHRyaW1fd3MgPSBUUlVFKQoKYGBgCgpgYGB7cn0KCmxpYnJhcnkoeG1sMikKZGF0YSA8LSByZWFkX3htbCgiZGF0YS9ubG1jYXRhbG9nX3Jlc3VsdF9jdXJyZW50bHlpbmRleGVkLnhtbCIpCgojIFBvaW50IGxvY2F0aW9ucwpwb2ludCA8LSBkYXRhICU+JSB4bWxfZmluZF9hbGwoIi8vcG9pbnRlciIpCnBvaW50ICU+JSB4bWxfYXR0cigibGF0aXR1ZGUiKSAlPiUgYXMubnVtZXJpYygpCnBvaW50ICU+JSB4bWxfYXR0cigibG9uZ2l0dWRlIikgJT4lIGFzLm51bWVyaWMoKQoKIyBTdGFydCB0aW1lCmRhdGEgJT4lIAogIHhtbF9maW5kX2FsbCgiLy9zdGFydC12YWxpZC10aW1lIikgJT4lIAogIHhtbF90ZXh0KCkKCiMgVGVtcGVyYXR1cmUKZGF0YSAlPiUgCiAgeG1sX2ZpbmRfYWxsKCIvL3RlbXBlcmF0dXJlW0B0eXBlPSdob3VybHknXS92YWx1ZSIpICU+JSAKICB4bWxfdGV4dCgpICU+JSAKICBhcy5pbnRlZ2VyKCkKCgoKYGBgCgoKLS0tCgojIyBSZXN1bHRzCgotIFB1Yk1lZCdkZSAqKmByIG1pbihUdXJrZXlBbGxbLDRdLCBuYS5ybSA9IFRSVUUpYC1gciBtYXgoVHVya2V5QWxsWyw0XSwgbmEucm0gPSBUUlVFKWAqKiB0YXJpaGxlcmkgYXJhc8SxbmRhLCAqVMO8cmtpeWUqIGFkcmVzbGkgKipgciBkaW0oVHVya2V5QWxsKVsxXWAqKiBhZGV0IHlhecSxbiBtZXZjdXR0dXIuCgotIFB1Yk1lZCdkZSAqKmByIG1pbihUdXJrZXlBbGxbLDRdLCBuYS5ybSA9IFRSVUUpYC1gciBtYXgoVHVya2V5QWxsWyw0XSwgbmEucm0gPSBUUlVFKWAqKiB0YXJpaGxlcmkgYXJhc8SxbmRhLCAqVMO8cmtpeWUqIGFkcmVzbGkgeWF5xLFubGFyICoqYHIgZGltKHVuaXF1ZUpvdXJuYWxzKVsxXWAqKiBmYXJrbMSxIGRlcmdpZGUgeWF5xLFtbGFubcSxxZ90xLFyLgoKCgoKCi0tLQoKIyMgRGlzY3Vzc2lvbgoKdMO8cmtpeWUgYWRyZXNsaSBvbHVwIGRhIHB1Ym1lZGRlIHllciBhbGFuIG1ha2FsZWxlciBoYW5naSBkZXJnaWxlcmRlIGthw6dhciBhZGV0IHlhecSxbmxhbm3EscWfCgoKVGhlIHJldHJpZXZlZCBpbmZvcm1hdGlvbiB3YXMgY29tcGlsZWQgaW4gYSB0YWJsZS4KCgoKCgoqKk1ldGhvZHM6KioKCgoKCgoKCgoKKipSZXN1bHQ6KioKCgpgYGB7ciBwbG90IDF9CmdncGxvdChkYXRhID0gYXJ0aWNsZXNfcGVyX2pvdXJuYWwsIGFlcyh4ID0gSm91cm5hbCwgeSA9IG4sIGdyb3VwID0gQ291bnRyeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG91ciA9IENvdW50cnksIHNoYXBlID0gQ291bnRyeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVscyA9IENvdW50cnkKKSkgKwogICAgZ2VvbV9wb2ludCgpICsKICAgIGxhYnMoeCA9ICJKb3VybmFscyB3aXRoIGRlY3JlYXNpbmcgaW1wYWN0IGZhY3RvciIsIHkgPSAiTnVtYmVyIG9mIEFydGljbGVzIikgKwogICAgZ2d0aXRsZSgiUGF0aG9sb2d5IEFydGljbGVzIFBlciBKb3VybmFsIikgKyAKICAgIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpLAogICAgICAgICAgYXhpcy50ZXh0Lng9ZWxlbWVudF9ibGFuaygpKQoKYGBgCgoKKipDb21tZW50OioqCgoKCgotLS0KCgojIyBGZWVkYmFjawoKW1NlcmRhciBCYWxjxLEsIE1ELCBQYXRob2xvZ2lzdF0oaHR0cHM6Ly9naXRodWIuY29tL3NiYWxjaSkgd291bGQgbGlrZSB0byBoZWFyIHlvdXIgZmVlZGJhY2s6IGh0dHBzOi8vZ29vLmdsL2Zvcm1zL1lqR1o1REhndFBsUjFSbkIzCgpUaGlzIGRvY3VtZW50IHdpbGwgYmUgY29udGluaW91c2x5IHVwZGF0ZWQgYW5kIHRoZSBsYXN0IHVwZGF0ZSB3YXMgb24gYHIgU3lzLkRhdGUoKWAuCgotLS0KCiMjIEJhY2sgdG8gTWFpbiBNZW51CgpbTWFpbiBQYWdlIGZvciBCaWJsaW9ncmFwaGljIEFuYWx5c2lzXShodHRwczovL3NiYWxjaS5naXRodWIuaW8vcHVibWVkL0JpYmxpb2dyYXBoaWNTdHVkaWVzLmh0bWwpCgotLS0=