Nghiên cứu bộ
dữ liệu từ Worldbank:
Tổng thể bộ
dữ liệu
- Trước hết, phải tải bộ dữ liệu, gọi nó lên
options(repos = c(CRAN = "http://cran.rstudio.com/"))
install.packages("WDI")
## package 'WDI' successfully unpacked and MD5 sums checked
##
## The downloaded binary packages are in
## C:\Users\DELL\AppData\Local\Temp\Rtmp67sKf1\downloaded_packages
library(WDI)
library(dplyr)
library(ggplot2)
library(DT)
- Tiếp đến, tiến hành chọn vùng dữ liệu, cụ thể sẽ là tỉ lệ trẻ sơ
sinh tử vong ở Việt Nam
health_data <- WDI(country = "VN", indicator = "SH.DYN.NMRT", start = 2000, end = 2020)
datatable(health_data)
- Dữ liệu Health_data được rút trích này nói về về tỷ lệ tử
vong sơ sinh được tính toán bằng cách thu thập thông tin về số lượng trẻ
em chết trong năm đầu tiên của cuộc sống và số lượng trẻ em sinh sống
tại Việt Nam trong cùng một năm. Tỷ lệ tử vong sơ sinh được
tính bằng cách chia số trẻ em chết trong năm đầu tiên của cuộc sống cho
số trẻ em sinh sống và nhân với 1.000.
- Bộ dữ liệu này có sự hợp tác với các tổ chức quốc tế như WHO hoặc
UNICEF, đặc biệt là bộ y tế để cung cấp và cập nhật dữ liệu về tỷ lệ tử
vong sơ sinh tại Việt Nam.
Nghiên cứu bộ
dữ liệu
- Tiến hành phân tích tỷ lệ tử vong của trẻ sơ sinh qua các năm
ft_data <- health_data %>%
filter(year >= 2010 & year <= 2020)
ggplot(ft_data, aes(x = factor(year), y = SH.DYN.NMRT)) +
geom_bar(stat = "identity", fill = "skyblue") +
geom_text(aes(label = SH.DYN.NMRT), vjust = 1, color = 'red') +
labs(title = "Tỷ lệ tử vong sơ sinh tại Việt Nam theo từng năm",
x = "Năm",
y = "Tỷ lệ tử vong sơ sinh") +
theme_minimal()

- Nhìn chung ta có thể thấy qua các năm, tỷ lệ tử vong của trẻ sơ sinh
tại việt Nam có sự giảm dần đều. Chính phủ, xã hội, con người ngày càng
tiến bộ, có sự cải thiện, cụ thể:
- Cải thiện được việc chăm sóc sức khỏe mẹ và trẻ sơ sinh: Việc cải
thiện chất lượng dịch vụ chăm sóc sức khỏe cho phụ nữ mang thai và trẻ
sơ sinh, cũng như việc tăng cường kiến thức và nhận thức về sức khỏe
trong cộng đồng, có thể giúp phát hiện và điều trị các vấn đề sức khỏe
sớm hơn, giảm nguy cơ tử vong sơ sinh.
- Tiếp cận dịch vụ chăm sóc sức khỏe từ những cùng sâu xa, nông thôn
hẻo lánh nhất: Cải thiện tiếp cận của cộng đồng đến dịch vụ chăm sóc sức
khỏe mẹ và trẻ em, đặc biệt là ở các khu vực nông thôn hoặc có điều kiện
kém, có thể giảm tỷ lệ tử vong sơ sinh bằng cách cung cấp dịch vụ chăm
sóc chất lượng và kịp thời.
- Chính sách và chiến lược y tế được đưa vào: Các chính sách và chiến
lược y tế như việc tăng cường hệ thống y tế, cải thiện cơ sở hạ tầng y
tế và nâng cao năng lực của nhân viên y tế góp phần vào việc giảm tỷ lệ
tử vong sơ sinh.
- Giáo dục và nhận thức được tăng cường: Các chương trình giáo dục và
tăng cường nhận thức về sức khỏe mẹ và trẻ sơ sinh có thể giúp tăng
cường kiến thức và nhận thức về các biện pháp phòng ngừa và điều trị, từ
đó giảm nguy cơ tử vong sơ sinh.
Nghiên cứu bộ
dữ liệu của IMF
Tổng quan bộ
dữ liệu
- Trước hết, phải tải về gói dữ liệu gốc và gọi nó lên để làm
việc
install.packages("imf.data")
## Installing package into 'C:/Users/DELL/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
## package 'imf.data' successfully unpacked and MD5 sums checked
##
## The downloaded binary packages are in
## C:\Users\DELL\AppData\Local\Temp\Rtmp67sKf1\downloaded_packages
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ lubridate 1.9.3 ✔ tibble 3.2.1
## ✔ purrr 1.0.2 ✔ tidyr 1.3.0
## ✔ readr 2.1.5
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
Bộ dữ liệu trong IMF (Quỹ Tiền tệ Quốc tế) có thể chứa nhiều loại
thông tin về kinh tế và tài chính của các quốc gia trên thế giới. Các bộ
dữ liệu này thường bao gồm các chỉ số kinh tế như GDP, lạm phát, tỷ lệ
thất nghiệp, chỉ số sản xuất công nghiệp, dữ liệu thương mại như giá trị
xuất khẩu và nhập khẩu hàng hóa, dữ liệu về tài chính như dư nợ công, dữ
liệu về tỷ giá hối đoái, và nhiều thông tin khác.
Cụ thể, IMF cung cấp các bộ dữ liệu như Direction of Trade
Statistics (DOTS), International Financial Statistics (IFS), Balance of
Payments Statistics (BOPS), và Government Finance Statistics (GFS), giúp
người dùng theo dõi và phân tích các xu hướng và biến động trong nền
kinh tế toàn cầu và các quốc gia cụ thể.
Nghiên cứu bộ
dữ liệu
- Tiến hành lọc bộ dữ liệu, lấy ra thông tin cơ bản về giáo dục
trong ‘CPI’
tmp <- load_datasets('CPI')
chi_so <- tmp$get_series(freq = 'A', ref_area = 'VN', indicator = 'PCPIED_IX', start = 2000, end = 2023)
chi_so <- na.omit(chi_so)
names(chi_so) <- c('Nam','NamGoc','Chisogiaca')
datatable(chi_so)
- Bảng dữ liệu hiện ra cung cấp thông tin về mức độ biến động của
giá cả trong các lĩnh vực giáo dục và y tế so với chỉ số giá tiêu
dùng tổng quát.
chi_so <- chi_so %>%
mutate(Chisogiaca = as.numeric(Chisogiaca)) %>%
mutate(Chisogiaca = round(Chisogiaca, 2)) %>%
arrange(Chisogiaca)
chi_so <- subset(chi_so, Nam >= 2013 & Nam <= 2023)
ggplot(chi_so, aes(x = Nam, y = Chisogiaca)) +
geom_point() +
labs(title = "Chỉ số PCPIED_IX tại Việt Nam (2013-2023)",
x = "Năm",
y = "Chỉ số giá cả") +
theme_minimal()

- chỉ số PCPIED_IX tăng qua các năm và được mô tả có liên quan đến
giáo dục, điều này có thể ám chỉ rằng chi phí giáo dục đang tăng theo
thời gian. Điều này có thể đồng nghĩa với việc đầu tư vào giáo dục đang
tăng lên, có thể là do chính sách công cộng, sự tăng trưởng kinh tế hoặc
nhu cầu của xã hội. Sự tăng của chỉ số này có thể ảnh hưởng đến sự tiếp
cận và chất lượng giáo dục, cũng như phản ánh mức độ quan tâm và đầu tư
vào nguồn lực giáo dục của một quốc gia.
LS0tDQp0aXRsZTogIk5oaeG7h20gduG7pSA2Ig0KYXV0aG9yOiAiRGnhu4dwIE1haSBHaWEgxJBhbSINCmRhdGU6ICJgciBmb3JtYXQoU3lzLnRpbWUoKSwgJyVIOiVNOiVTLCAlZCAtICVtIC0gJVknKWAiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6IA0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCiAgICB0b2NfZmxvYXQ6IHRydWUNCiAgICB0b2M6IHRydWUNCiAgICBoaWdobGlnaHQ6IHRhbmdvDQogICAgdGhlbWU6IHNhbmRzdG9uZQ0KICAgIG51bWJlcl9zZWN0aW9uczogdHJ1ZQ0KLS0tDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFKQ0KYGBgDQoNCiMgKipOZ2hpw6puIGPhu6l1IGLhu5kgZOG7ryBsaeG7h3UgdOG7qyBXb3JsZGJhbms6KioNCg0KIyMgKipU4buVbmcgdGjhu4MgYuG7mSBk4buvIGxp4buHdSoqDQogLSBUcsaw4bubYyBo4bq/dCwgcGjhuqNpIHThuqNpIGLhu5kgZOG7ryBsaeG7h3UsIGfhu41pIG7DsyBsw6puDQoNCmBgYHtyIG1lc3NhZ2UgPSBGQUxTRSwgd2FybmluZyA9IEZBTFNFfQ0Kb3B0aW9ucyhyZXBvcyA9IGMoQ1JBTiA9ICJodHRwOi8vY3Jhbi5yc3R1ZGlvLmNvbS8iKSkNCmluc3RhbGwucGFja2FnZXMoIldESSIpDQpsaWJyYXJ5KFdESSkNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KERUKQ0KYGBgDQoNCiAtIFRp4bq/cCDEkeG6v24sIHRp4bq/biBow6BuaCBjaOG7jW4gdsO5bmcgZOG7ryBsaeG7h3UsIGPhu6UgdGjhu4Mgc+G6vSBsw6AgdOG7iSBs4buHIHRy4bq7IHPGoSBzaW5oIHThu60gdm9uZyDhu58gVmnhu4d0IE5hbQ0KDQpgYGB7ciBtZXNzYWdlID0gVFJVRSwgd2FybmluZyA9IEZBTFNFfQ0KaGVhbHRoX2RhdGEgPC0gV0RJKGNvdW50cnkgPSAiVk4iLCBpbmRpY2F0b3IgPSAiU0guRFlOLk5NUlQiLCBzdGFydCA9IDIwMDAsIGVuZCA9IDIwMjApDQpkYXRhdGFibGUoaGVhbHRoX2RhdGEpDQpgYGANCg0KIC0gROG7ryBsaeG7h3UgKkhlYWx0aF9kYXRhKiDEkcaw4bujYyByw7p0IHRyw61jaCBuw6B5IG7Ds2kgduG7gSB24buBIHThu7cgbOG7hyB04butIHZvbmcgc8ahIHNpbmggxJHGsOG7o2MgdMOtbmggdG/DoW4gYuG6sW5nIGPDoWNoIHRodSB0aOG6rXAgdGjDtG5nIHRpbiB24buBIHPhu5EgbMaw4bujbmcgdHLhursgZW0gY2jhur90IHRyb25nIG7Eg20gxJHhuqd1IHRpw6puIGPhu6dhIGN14buZYyBz4buRbmcgdsOgIHPhu5EgbMaw4bujbmcgdHLhursgZW0gc2luaCBz4buRbmcgdOG6oWkgKlZp4buHdCBOYW0qIHRyb25nIGPDuW5nIG3hu5l0IG7Eg20uIFThu7cgbOG7hyB04butIHZvbmcgc8ahIHNpbmggxJHGsOG7o2MgdMOtbmggYuG6sW5nIGPDoWNoIGNoaWEgc+G7kSB0cuG6uyBlbSBjaOG6v3QgdHJvbmcgbsSDbSDEkeG6p3UgdGnDqm4gY+G7p2EgY3Xhu5ljIHPhu5FuZyBjaG8gc+G7kSB0cuG6uyBlbSBzaW5oIHPhu5FuZyB2w6AgbmjDom4gduG7m2kgMS4wMDAuDQogLSBC4buZIGThu68gbGnhu4d1IG7DoHkgY8OzIHPhu7EgaOG7o3AgdMOhYyB24bubaSBjw6FjIHThu5UgY2jhu6ljIHF14buRYyB04bq/IG5oxrAgV0hPIGhv4bq3YyBVTklDRUYsIMSR4bq3YyBiaeG7h3QgbMOgIGLhu5kgeSB04bq/IMSR4buDIGN1bmcgY+G6pXAgdsOgIGPhuq1wIG5o4bqtdCBk4buvIGxp4buHdSB24buBIHThu7cgbOG7hyB04butIHZvbmcgc8ahIHNpbmggdOG6oWkgVmnhu4d0IE5hbS4NCiAgDQojIyAqKk5naGnDqm4gY+G7qXUgYuG7mSBk4buvIGxp4buHdSoqDQogLSBUaeG6v24gaMOgbmggcGjDom4gdMOtY2ggdOG7tyBs4buHIHThu60gdm9uZyBj4bunYSB0cuG6uyBzxqEgc2luaCBxdWEgY8OhYyBuxINtDQogDQpgYGB7ciBtZXNzYWdlID0gVFJVRSwgd2FybmluZyA9IEZBTFNFfQ0KZnRfZGF0YSA8LSBoZWFsdGhfZGF0YSAlPiUNCiAgZmlsdGVyKHllYXIgPj0gMjAxMCAmIHllYXIgPD0gMjAyMCkgDQpnZ3Bsb3QoZnRfZGF0YSwgYWVzKHggPSBmYWN0b3IoeWVhciksIHkgPSBTSC5EWU4uTk1SVCkpICsNCiAgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIsIGZpbGwgPSAic2t5Ymx1ZSIpICsNCiAgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IFNILkRZTi5OTVJUKSwgdmp1c3QgPSAxLCBjb2xvciA9ICdyZWQnKSArDQogIGxhYnModGl0bGUgPSAiVOG7tyBs4buHIHThu60gdm9uZyBzxqEgc2luaCB04bqhaSBWaeG7h3QgTmFtIHRoZW8gdOG7q25nIG7Eg20iLA0KICAgICAgIHggPSAiTsSDbSIsDQogICAgICAgeSA9ICJU4bu3IGzhu4cgdOG7rSB2b25nIHPGoSBzaW5oIikgKw0KICB0aGVtZV9taW5pbWFsKCkNCmBgYA0KDQogLSBOaMOsbiBjaHVuZyB0YSBjw7MgdGjhu4MgdGjhuqV5IHF1YSBjw6FjIG7Eg20sIHThu7cgbOG7hyB04butIHZvbmcgY+G7p2EgdHLhursgc8ahIHNpbmggdOG6oWkgdmnhu4d0IE5hbSBjw7Mgc+G7sSBnaeG6o20gZOG6p24gxJHhu4F1LiBDaMOtbmggcGjhu6csIHjDoyBo4buZaSwgY29uIG5nxrDhu51pIG5nw6B5IGPDoG5nIHRp4bq/biBi4buZLCBjw7Mgc+G7sSBj4bqjaSB0aGnhu4duLCBj4bulIHRo4buDOg0KICAtIEPhuqNpIHRoaeG7h24gxJHGsOG7o2Mgdmnhu4djIGNoxINtIHPDs2Mgc+G7qWMga2jhu49lIG3hurkgdsOgIHRy4bq7IHPGoSBzaW5oOiBWaeG7h2MgY+G6o2kgdGhp4buHbiBjaOG6pXQgbMaw4bujbmcgZOG7i2NoIHbhu6UgY2jEg20gc8OzYyBz4bupYyBraOG7j2UgY2hvIHBo4bulIG7hu68gbWFuZyB0aGFpIHbDoCB0cuG6uyBzxqEgc2luaCwgY8WpbmcgbmjGsCB2aeG7h2MgdMSDbmcgY8aw4budbmcga2nhur9uIHRo4bupYyB2w6Agbmjhuq1uIHRo4bupYyB24buBIHPhu6ljIGto4buPZSB0cm9uZyBj4buZbmcgxJHhu5NuZywgY8OzIHRo4buDIGdpw7pwIHBow6F0IGhp4buHbiB2w6AgxJFp4buBdSB0cuG7iyBjw6FjIHbhuqVuIMSR4buBIHPhu6ljIGto4buPZSBz4bubbSBoxqFuLCBnaeG6o20gbmd1eSBjxqEgdOG7rSB2b25nIHPGoSBzaW5oLg0KIC0gVGnhur9wIGPhuq1uIGThu4tjaCB24bulIGNoxINtIHPDs2Mgc+G7qWMga2jhu49lIHThu6sgbmjhu69uZyBjw7luZyBzw6J1IHhhLCBuw7RuZyB0aMO0biBo4bq7byBsw6FuaCBuaOG6pXQ6IEPhuqNpIHRoaeG7h24gdGnhur9wIGPhuq1uIGPhu6dhIGPhu5luZyDEkeG7k25nIMSR4bq/biBk4buLY2ggduG7pSBjaMSDbSBzw7NjIHPhu6ljIGto4buPZSBt4bq5IHbDoCB0cuG6uyBlbSwgxJHhurdjIGJp4buHdCBsw6Ag4bufIGPDoWMga2h1IHbhu7FjIG7DtG5nIHRow7RuIGhv4bq3YyBjw7MgxJFp4buBdSBraeG7h24ga8OpbSwgY8OzIHRo4buDIGdp4bqjbSB04bu3IGzhu4cgdOG7rSB2b25nIHPGoSBzaW5oIGLhurFuZyBjw6FjaCBjdW5nIGPhuqVwIGThu4tjaCB24bulIGNoxINtIHPDs2MgY2jhuqV0IGzGsOG7o25nIHbDoCBr4buLcCB0aOG7nWkuDQogLSBDaMOtbmggc8OhY2ggdsOgIGNoaeG6v24gbMaw4bujYyB5IHThur8gxJHGsOG7o2MgxJHGsGEgdsOgbzogQ8OhYyBjaMOtbmggc8OhY2ggdsOgIGNoaeG6v24gbMaw4bujYyB5IHThur8gbmjGsCB2aeG7h2MgdMSDbmcgY8aw4budbmcgaOG7hyB0aOG7kW5nIHkgdOG6vywgY+G6o2kgdGhp4buHbiBjxqEgc+G7nyBo4bqhIHThuqduZyB5IHThur8gdsOgIG7Dom5nIGNhbyBuxINuZyBs4buxYyBj4bunYSBuaMOibiB2acOqbiB5IHThur8gIGfDs3AgcGjhuqduIHbDoG8gdmnhu4djIGdp4bqjbSB04bu3IGzhu4cgdOG7rSB2b25nIHPGoSBzaW5oLg0KIC0gR2nDoW8gZOG7pWMgdsOgIG5o4bqtbiB0aOG7qWMgxJHGsOG7o2MgdMSDbmcgY8aw4budbmc6IEPDoWMgY2jGsMahbmcgdHLDrG5oIGdpw6FvIGThu6VjIHbDoCB0xINuZyBjxrDhu51uZyBuaOG6rW4gdGjhu6ljIHbhu4Egc+G7qWMga2jhu49lIG3hurkgdsOgIHRy4bq7IHPGoSBzaW5oIGPDsyB0aOG7gyBnacO6cCB0xINuZyBjxrDhu51uZyBraeG6v24gdGjhu6ljIHbDoCBuaOG6rW4gdGjhu6ljIHbhu4EgY8OhYyBiaeG7h24gcGjDoXAgcGjDsm5nIG5n4burYSB2w6AgxJFp4buBdSB0cuG7iywgdOG7qyDEkcOzIGdp4bqjbSBuZ3V5IGPGoSB04butIHZvbmcgc8ahIHNpbmguDQogDQojICoqTmdoacOqbiBj4bupdSBi4buZIGThu68gbGnhu4d1IGPhu6dhIElNRioqDQojIyAqKlThu5VuZyBxdWFuIGLhu5kgZOG7ryBsaeG7h3UqKg0KDQogLSBUcsaw4bubYyBo4bq/dCwgcGjhuqNpIHThuqNpIHbhu4EgZ8OzaSBk4buvIGxp4buHdSBn4buRYyB2w6AgZ+G7jWkgbsOzIGzDqm4gxJHhu4MgbMOgbSB2aeG7h2MNCiANCmBgYHtyIG1lc3NhZ2UgPSBUUlVFLCB3YXJuaW5nID0gRkFMU0V9DQppbnN0YWxsLnBhY2thZ2VzKCJpbWYuZGF0YSIpDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkoaW1mLmRhdGEpDQpgYGANCg0KIC0gQuG7mSBk4buvIGxp4buHdSB0cm9uZyBJTUYgKFF14bu5IFRp4buBbiB04buHIFF14buRYyB04bq/KSBjw7MgdGjhu4MgY2jhu6lhIG5oaeG7gXUgbG/huqFpIHRow7RuZyB0aW4gduG7gSBraW5oIHThur8gdsOgIHTDoGkgY2jDrW5oIGPhu6dhIGPDoWMgcXXhu5FjIGdpYSB0csOqbiB0aOG6vyBnaeG7m2kuIEPDoWMgYuG7mSBk4buvIGxp4buHdSBuw6B5IHRoxrDhu51uZyBiYW8gZ+G7k20gY8OhYyBjaOG7iSBz4buRIGtpbmggdOG6vyBuaMawIEdEUCwgbOG6oW0gcGjDoXQsIHThu7cgbOG7hyB0aOG6pXQgbmdoaeG7h3AsIGNo4buJIHPhu5Egc+G6o24geHXhuqV0IGPDtG5nIG5naGnhu4dwLCBk4buvIGxp4buHdSB0aMawxqFuZyBt4bqhaSBuaMawIGdpw6EgdHLhu4sgeHXhuqV0IGto4bqpdSB2w6Agbmjhuq1wIGto4bqpdSBow6BuZyBow7NhLCBk4buvIGxp4buHdSB24buBIHTDoGkgY2jDrW5oIG5oxrAgZMawIG7hu6MgY8O0bmcsIGThu68gbGnhu4d1IHbhu4EgdOG7tyBnacOhIGjhu5FpIMSRb8OhaSwgdsOgIG5oaeG7gXUgdGjDtG5nIHRpbiBraMOhYy4NCg0KIC0gQ+G7pSB0aOG7gywgSU1GIGN1bmcgY+G6pXAgY8OhYyBi4buZIGThu68gbGnhu4d1IG5oxrAgRGlyZWN0aW9uIG9mIFRyYWRlIFN0YXRpc3RpY3MgKERPVFMpLCBJbnRlcm5hdGlvbmFsIEZpbmFuY2lhbCBTdGF0aXN0aWNzIChJRlMpLCBCYWxhbmNlIG9mIFBheW1lbnRzIFN0YXRpc3RpY3MgKEJPUFMpLCB2w6AgR292ZXJubWVudCBGaW5hbmNlIFN0YXRpc3RpY3MgKEdGUyksIGdpw7pwIG5nxrDhu51pIGTDuW5nIHRoZW8gZMO1aSB2w6AgcGjDom4gdMOtY2ggY8OhYyB4dSBoxrDhu5tuZyB2w6AgYmnhur9uIMSR4buZbmcgdHJvbmcgbuG7gW4ga2luaCB04bq/IHRvw6BuIGPhuqd1IHbDoCBjw6FjIHF14buRYyBnaWEgY+G7pSB0aOG7gy4NCiANCiMjICoqTmdoacOqbiBj4bupdSBi4buZIGThu68gbGnhu4d1KioNCiAtIFRp4bq/biBow6BuaCBs4buNYyBi4buZIGThu68gbGnhu4d1LCBs4bqleSByYSAqdGjDtG5nIHRpbiBjxqEgYuG6o24gduG7gSBnacOhbyBk4bulYyB0cm9uZyAnQ1BJJyoNCiANCmBgYHtyIG1lc3NhZ2UgPSBUUlVFLCB3YXJuaW5nID0gRkFMU0V9DQp0bXAgPC0gbG9hZF9kYXRhc2V0cygnQ1BJJykNCmNoaV9zbyA8LSB0bXAkZ2V0X3NlcmllcyhmcmVxID0gJ0EnLCByZWZfYXJlYSA9ICdWTicsIGluZGljYXRvciA9ICdQQ1BJRURfSVgnLCBzdGFydCA9IDIwMDAsIGVuZCA9IDIwMjMpDQpjaGlfc28gPC0gbmEub21pdChjaGlfc28pDQpuYW1lcyhjaGlfc28pIDwtIGMoJ05hbScsJ05hbUdvYycsJ0NoaXNvZ2lhY2EnKQ0KZGF0YXRhYmxlKGNoaV9zbykNCmBgYA0KDQogLSBC4bqjbmcgZOG7ryBsaeG7h3UgaGnhu4duIHJhIGN1bmcgY+G6pXAgKnRow7RuZyB0aW4gduG7gSBt4bupYyDEkeG7mSBiaeG6v24gxJHhu5luZyBj4bunYSBnacOhIGPhuqMqIHRyb25nIGPDoWMgbMSpbmggduG7sWMgZ2nDoW8gZOG7pWMgdsOgIHkgdOG6vyBzbyB24bubaSBjaOG7iSBz4buRIGdpw6EgdGnDqnUgZMO5bmcgdOG7lW5nIHF1w6F0LiANCiANCmBgYHtyIG1lc3NhZ2UgPSBUUlVFLCB3YXJuaW5nID0gRkFMU0V9DQogY2hpX3NvIDwtIGNoaV9zbyAlPiUgDQogIG11dGF0ZShDaGlzb2dpYWNhID0gYXMubnVtZXJpYyhDaGlzb2dpYWNhKSkgJT4lDQogIG11dGF0ZShDaGlzb2dpYWNhID0gcm91bmQoQ2hpc29naWFjYSwgMikpICU+JQ0KICBhcnJhbmdlKENoaXNvZ2lhY2EpDQpjaGlfc28gPC0gc3Vic2V0KGNoaV9zbywgTmFtID49IDIwMTMgJiBOYW0gPD0gMjAyMykNCmdncGxvdChjaGlfc28sIGFlcyh4ID0gTmFtLCB5ID0gQ2hpc29naWFjYSkpICsNCiAgZ2VvbV9wb2ludCgpICsNCiAgbGFicyh0aXRsZSA9ICJDaOG7iSBz4buRIFBDUElFRF9JWCB04bqhaSBWaeG7h3QgTmFtICgyMDEzLTIwMjMpIiwNCiAgICAgICB4ID0gIk7Eg20iLA0KICAgICAgIHkgPSAiQ2jhu4kgc+G7kSBnacOhIGPhuqMiKSArDQogIHRoZW1lX21pbmltYWwoKQ0KYGBgDQoNCiAtIGNo4buJIHPhu5EgUENQSUVEX0lYIHTEg25nIHF1YSBjw6FjIG7Eg20gdsOgIMSRxrDhu6NjIG3DtCB04bqjIGPDsyBsacOqbiBxdWFuIMSR4bq/biBnacOhbyBk4bulYywgxJFp4buBdSBuw6B5IGPDsyB0aOG7gyDDoW0gY2jhu4kgcuG6sW5nIGNoaSBwaMOtIGdpw6FvIGThu6VjIMSRYW5nIHTEg25nIHRoZW8gdGjhu51pIGdpYW4uIMSQaeG7gXUgbsOgeSBjw7MgdGjhu4MgxJHhu5NuZyBuZ2jEqWEgduG7m2kgdmnhu4djIMSR4bqndSB0xrAgdsOgbyBnacOhbyBk4bulYyDEkWFuZyB0xINuZyBsw6puLCBjw7MgdGjhu4MgbMOgIGRvIGNow61uaCBzw6FjaCBjw7RuZyBj4buZbmcsIHPhu7EgdMSDbmcgdHLGsOG7n25nIGtpbmggdOG6vyBob+G6t2Mgbmh1IGPhuqd1IGPhu6dhIHjDoyBo4buZaS4gU+G7sSB0xINuZyBj4bunYSBjaOG7iSBz4buRIG7DoHkgY8OzIHRo4buDIOG6o25oIGjGsOG7n25nIMSR4bq/biBz4buxIHRp4bq/cCBj4bqtbiB2w6AgY2jhuqV0IGzGsOG7o25nIGdpw6FvIGThu6VjLCBjxaluZyBuaMawIHBo4bqjbiDDoW5oIG3hu6ljIMSR4buZIHF1YW4gdMOibSB2w6AgxJHhuqd1IHTGsCB2w6BvIG5ndeG7k24gbOG7sWMgZ2nDoW8gZOG7pWMgY+G7p2EgbeG7mXQgcXXhu5FjIGdpYS4NCg0KDQogDQog