Chương 1: Phân tích dữ liệu từ WDI

Phần I: Thu nhập dữ liệu từ World Bank

Thu nhập dữ liệu về chi tiêu quân sự các nước thành viên thường trực của Hội đồng Bảo an Liên Hợp Quốc bao gồm: Trung Quốc, Pháp, Anh, Nga và Hoa Kỳ

library('WDI')
a <-  WDIsearch('military')
b <- WDI(indicator = 'MS.MIL.XPND.CD', country = c('US', 'GB', 'RU', 'CN', 'FR'))
c <-  b %>% select(country,year,MS.MIL.XPND.CD) %>% rename(ChiTieuQuanSu = MS.MIL.XPND.CD)
c <- na.omit(c)

Thông tin tổng quan về dữ liệu

Bộ dữ liệu c là bộ dữ liệu về chi tiêu quân sự (USD) của 5 quốc gia từ năm 1960 - 2022 ( đơn vị tính: USD hiện hành)

c

Tiến hành chuyển đổi cột year, cột country thành hệ số để trở thành các biến phân loại

library(ggplot2)

Phân tích bộ dữ liệu

Tiến hành trực quan hóa dữ liệu để phân tích, nhằm hiểu rõ hơn về các mối quan hệ, xu hướng và biểu đồ dữ liệu một cách hiệu quả. Sử dụng các công cụ và phương tiện phù hợp để trực quan hóa dữ liệu cho các biến trong bộ dữ liệu

1. Chi tiêu quân sự giai đoạn 1992 - 2022

d <- c %>% filter(year >= '1992')

d %>% group_by(year) %>% summarise(m = mean(ChiTieuQuanSu)) %>% 
  ggplot(aes(x = year, y = m)) +
  geom_line() +
  scale_x_continuous(breaks = seq(min(d$year), max(d$year), by = 4)) + # điều chỉnh khoảng cách giữa các năm
  labs(x = 'Năm', y = 'Chi tiêu trung bình') +
  scale_y_continuous (labels =unit_format(unit = "", scale = 1e-9, prefix = "$"))

Sự thay đổi chi tiêu giữa những năm 1992 - 2000 hầu như không thay đổi, các quốc gia không chi tiêu quá nhiều ngay sau chiến tranh lạnh.

Năm 2001 là năm khởi đầu cho sự tăng lên một cách nhanh chóng về chi tiêu quân sự.

Sự chi tiêu có sự giảm sút sau thời gian tăng liên tục sau 12 năm ( từ năm 2001) trong khoảng năm 2012 - 2017. Nhưng sau đó lại có sự tăng lên về chi tiêu.

2. Chi tiêu quân sự giữa các quốc gia

d %>% group_by(country) %>% summarise(s = sum(ChiTieuQuanSu)) %>% 
  ggplot(aes(x = country, y = s)) +
  geom_col(fill = 'pink', position = 'dodge') +
  scale_y_continuous (labels =unit_format(unit = "", scale = 1e-9, prefix = "$")) + # định dạng giá trị số trên trục y, theo đơn vị tỷ (1e-9 tương đương 1 tỷ), với tiền tố $ 
  labs(x= 'Quốc gia', y = 'Chi tiêu tính theo đô la Mỹ ( tỷ)')

Hoa Kỳ ( United States) là quốc gia có tổng số tiền chi tiêu vào quân sự nhiều nhất từ năm 1992 tới thời điểm hiện tại, số tiền đã chi hơn 15000 tỷ đô

Ngược lại hoàn toàn với Hoa Kỳ, Liên Bang Nga ( Russian Federation) là quốc gia vói chi tiêu quân sự thấp nhất, khoảng dưới 1250 tỷ đô

3. Xu hướng chi tiêu quân sự của từng quốc gia theo năm

d %>% ggplot(aes(x = year, y = ChiTieuQuanSu, color = country)) +
  geom_line() +
  scale_x_continuous(breaks = seq(min(d$year), max(d$year), by = 4)) +
  scale_y_continuous (labels =unit_format(unit = "", scale = 1e-9, prefix = "$")) +# điều chỉnh khoảng cách giữa các năm
  labs(x = 'Năm', y = 'Chi tiêu quân sự')

Chi tiêu quân sự của Hoa Kỳ cao hơn rất nhiều so với các đối thủ cạnh tranh, chi tiêu tăng lên đến năm 2011 sau đó chi tiêu giảm dần tới năm 2015.

Kể từ đầu những năm 2000, chi tiêu của Trung Quốc cũng tăng lên. Trung Quốc liên tục tăng chi tiêu quan sự. Các quốc gia còn lại có sự chi tiêu đều đặn và liên tục qua nhiều năm.

Phần II: Phân tích chi tiêu quân sự của Hoa Kỳ

Hoa Kỳ là quốc gia có mức độ chi tiêu cho quân sự lớn nhất trong 5 nước thành viên. Tiến hành phân tích chi tiêu quân sự của Hoa Kỳ, để hiểu rõ dữ liệu một cách hiệu quả

q <- c %>% filter(country %in% c('United States'))

1. Chi tiêu quân sự trong thời kì Chiến tranh lạnh

r <- q %>% filter(year < '1992')
r %>% ggplot(aes(x= year, y = ChiTieuQuanSu)) +
  geom_col(position = 'dodge', fill = 'violet') +
  scale_x_continuous(breaks = seq(min(r$year), max(r$year), by = 4)) +
  scale_y_continuous(labels = unit_format(unit = "", scale = 1e-9, prefix = "$")) +
  labs(x= 'Năm', y = 'Chi tiêu quân sự ( tỷ USD)')

Chi tiêu quân sự trong suốt thời gian diễn ra Chiến tranh lạnh tăng dần theo từng năm, chúng có sự biến động mạnh vào giai đoạn từ năm 1981, đỉnh điểm là năm 1990 Hoa Kỳ chi lên tới hơn 300 nghìn tỷ USD

2. Chi tiêu quân sự sau Chiến tranh lạnh (1992-2022)

t <- q %>% filter(year >= '1992')
t %>% ggplot(aes(x= year, y = ChiTieuQuanSu)) +
  geom_line() +
  scale_x_continuous(breaks = seq(min(t$year), max(t$year), by = 4)) +
  scale_y_continuous(labels = unit_format(unit = "", scale = 1e-9, prefix = "$")) +
  labs(x= 'Năm', y = 'Chi Tiêu Quân Sự (tỷ USD)')

Vì Chiến tranh lạnh bước vào kết thúc từ năm 1992, nên số tiền chi cho quân sự giảm dần, nhưng tới năm 2001, sự chi tiêu này tăng lên nhanh chống

Tính tới thời điểm hiện tại năm 2022 là năm Hoa Kỳ chi tiêu vào quân sự với số tiền lớn nhất từ trước giờ (hơn 750 triệu USD)

3.Các yếu tố ảnh hưởng đến chi tiêu quân sự ở Hoa Kỳ

  • Sự gia tăng GDP có thể tạo ra nhiều nguồn lực hơn cho quốc gia, bao gồm cả cho việc tăng chi tiêu quân sự. GDP cao và thu nhập trên đầu người cao thường đi đôi với khả năng chi tiêu quân sự lớn hơn. Hoa Kỳ có một trong những GDP lớn nhất thế giới và một GDP per capita cao. Điều này cung cấp cho họ nguồn lực tài chính mạnh mẽ để đầu tư vào quân sự.

  • % GDP chi cho quân sự và % ngân sách quốc phòng: Hai chỉ số này cung cấp cái nhìn về mức độ quan tâm của một quốc gia đối với lĩnh vực quân sự. Sự tăng trưởng trong các chỉ số này có thể phản ánh sự gia tăng của sự lo ngại về an ninh hoặc thách thức quốc tế.

  • Chi phí quân sự tổng cộng (Total military expenditure):Hoa Kỳ chi tiêu một số lượng lớn tiền vào quân sự mỗi năm, bao gồm chi phí cho quân đội, nghiên cứu và phát triển vũ khí, cũng như chi phí liên quan đến các hoạt động quốc tế và chiến tranh.

  • Chỉ số Hòa bình Toàn cầu (Global Peace Index): Đo lường mức độ hòa bình của một quốc gia. Mức độ hòa bình cao có thể giảm sự cần thiết của chi tiêu quân sự. Hoa Kỳ có một hệ thống quân sự mạnh mẽ, nó cũng đóng một vai trò quan trọng trong việc duy trì hòa bình toàn cầu thông qua các nỗ lực ngoại giao và hợp tác quốc tế.

Chương 2: Phân tích dữ liệu từ IMF

Dữ liệu s là bộ dữ liệu về nợ công của Việt Nam (đơn vị tính: % trên GPD)

library(imf.data)
## Warning: package 'imf.data' was built under R version 4.3.3
tmp <- load_datasets('HPDD')
de <- tmp$get_series(freq = 'A', ref_area = 'VN', indicator = 'GGXWDG_GDP')
de <- na.omit(de)
names(de) <- c('year','Debt')
head(de)

1.Tỉ lệ nợ công theo thời gian

library(dplyr)
de <- de %>% filter(year >= '2004')
de %>% ggplot(aes(x = year, y = Debt)) +
  geom_col(position = 'dodge') +
  coord_flip() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  labs(x = 'năm', y = 'Tỉ lệ %/GPD')

Tỉ lệ này ở Việt Nam thấp (ví dụ: dưới 60-70%), điều này có thể chỉ ra rằng Việt Nam có khả năng trả nợ tốt và có sức mạnh kinh tế ổn định.

Tỉ lệ nợ công của Việt Nam ngày càng tăng lên đáng kể.Năm 2015, tỉ lệ nợ công lên tới gần 60% (58,25%). Năm 2015, tỉ lệ nợ công thấp nhất trong vòng 12 năm (36,54%)

2.Xu hướng của tỉ lệ nợ công

de %>% ggplot(aes(x= year, y = Debt, group = 1)) +
  geom_line() +
  labs(x= 'Năm', y = 'Chi Tiêu Quân Sự (tỷ USD)')

Tỉ lệ nợ công ở Việt Nam từ năm 2004 - 2015 có xu hướng tăng giảm theo từng giai đoạn. Điều này chứng tỏ Việt Nam kiểm soát nợ công rất tốt và có khả năng chi trả chúng

3.Các yếu tố ảnh hưởng đến nợ công

Nợ công của Việt Nam giai đoạn 2004 - 2015 bị ảnh hưởng bởi các yếu tố sau đây

  • Tăng trưởng GDP là yếu tố kinh tế vĩ mô quan trọng làm gia tăng nợ công. Đối với các nước phát triển, tăng trưởng GDP góp phần làm giảm nợ công do nền kinh tế đã có sự tích lũy, các khoản đầu tư và chi ngân sách được bù đắp từ nguồn tích lũy này, từ đó giảm vay nợ và chi trả lãi vay. Tuy nhiên, đối với trường hợp của Việt Nam, tăng trưởng kinh tế dựa trên thâm dụng vốn đầu tư là cơ bản,

  • Lãi suất thực tế cũng là yếu tố tác động tới nợ công. Việt Nam phải sử dụng một số khoản vay theo điều kiện áp dụng cho các nhóm nước trung bình. Theo đó, mức lãi suất áp dụng cho các khoản vay cao hơn so với giai đoạn trước.

  • Ngoài ra, tỷ lệ các khoản nợ nước ngoài của Chính phủ có xu hướng tăng dần. Nền kinh tế thế giới có xu hướng phục hồi, lãi suất thị trường vốn quốc tế có xu hướng tăng, dẫn đến gia tăng lãi suất và nghĩa vụ trả nợ của Chính phủ đối với các khoản nợ hiện hành và phát sinh.

  • Tỷ giá VND/USD là yếu tố tác động nhiều nhất đến nợ công của Việt Nam trong ngắn hạn và dài hạn, trong giai đoạn 2000 - 2015, tỷ giá VND/USD liên tục tăng,ngoại trừ giai đoạn 2008 - 2011, đã phát sinh rủi ro do các biến động tỷ giá các đồng tiền vay bằng ngoại tệ trong danh mục nợ công, việc điều chỉnh tỷ giá đồng Việt Nam của Ngân hàng Nhà nước trong các năm qua (nhất là các năm từ 2008 - 2011) đã làm tăng giá trị danh nghĩa các khoản nợ công bằng ngoại tệ quy theo đồng nội tệ

LS0tDQp0aXRsZTogIldESV9JTUYiDQphdXRob3I6ICJudGF0aHUiDQpkYXRlOiAiYHIgZm9ybWF0KFN5cy50aW1lKCksICclSDolTTolUywgJWQgLSAlbSAtICVZJylgIg0Kb3V0cHV0OiANCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IHRydWUNCiAgICB0b2NfZmxvYXQ6IHRydWUNCiAgICBoaWdobGlnaHQ6IHRhbmdvDQogICAgZGZfcHJpbnQ6IHBhZ2VkDQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQ0KICAgIGNvZGVfZm9sZGluZzogaGlkZQ0KLS0tDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFKQ0KYGBgDQoNCmBgYHtyIGluY2x1ZGU9RkFMU0V9DQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkoc2NhbGVzKQ0KYGBgDQoNCiMgKipDaMawxqFuZyAxOiBQaMOibiB0w61jaCBk4buvIGxp4buHdSB04burIFdESSoqDQoNCiMjICoqUGjhuqduIEk6IFRodSBuaOG6rXAgZOG7ryBsaeG7h3UgdOG7qyBXb3JsZCBCYW5rKioNCg0KVGh1IG5o4bqtcCBk4buvIGxp4buHdSB24buBIGNoaSB0acOqdSBxdcOibiBz4buxIGPDoWMgbsaw4bubYyB0aMOgbmggdmnDqm4gdGjGsOG7nW5nIHRy4buxYyBj4bunYSBI4buZaSDEkeG7k25nIELhuqNvIGFuIExpw6puIEjhu6NwIFF14buRYyBiYW8gZ+G7k206IFRydW5nIFF14buRYywgUGjDoXAsIEFuaCwgTmdhIHbDoCBIb2EgS+G7syANCg0KYGBge3J9DQpsaWJyYXJ5KCdXREknKQ0KYSA8LSAgV0RJc2VhcmNoKCdtaWxpdGFyeScpDQpiIDwtIFdESShpbmRpY2F0b3IgPSAnTVMuTUlMLlhQTkQuQ0QnLCBjb3VudHJ5ID0gYygnVVMnLCAnR0InLCAnUlUnLCAnQ04nLCAnRlInKSkNCmMgPC0gIGIgJT4lIHNlbGVjdChjb3VudHJ5LHllYXIsTVMuTUlMLlhQTkQuQ0QpICU+JSByZW5hbWUoQ2hpVGlldVF1YW5TdSA9IE1TLk1JTC5YUE5ELkNEKQ0KYyA8LSBuYS5vbWl0KGMpDQpgYGANCg0KIyMjIFRow7RuZyB0aW4gdOG7lW5nIHF1YW4gduG7gSBk4buvIGxp4buHdQ0KDQpC4buZIGThu68gbGnhu4d1IGMgbMOgIGLhu5kgZOG7ryBsaeG7h3UgduG7gSBjaGkgdGnDqnUgcXXDom4gc+G7sSAoVVNEKSBj4bunYSA1IHF14buRYyBnaWEgdOG7qyBuxINtIDE5NjAgLSAyMDIyICggxJHGoW4gduG7iyB0w61uaDogVVNEIGhp4buHbiBow6BuaCkNCg0KYGBge3J9DQpjDQpgYGANCg0KVGnhur9uIGjDoG5oIGNodXnhu4NuIMSR4buVaSBj4buZdCB5ZWFyLCBj4buZdCBjb3VudHJ5IHRow6BuaCBo4buHIHPhu5EgxJHhu4MgdHLhu58gdGjDoG5oIGPDoWMgYmnhur9uIHBow6JuIGxv4bqhaQ0KDQpgYGB7cn0NCmxpYnJhcnkoZ2dwbG90MikNCmBgYA0KDQojIyMgUGjDom4gdMOtY2ggYuG7mSBk4buvIGxp4buHdQ0KDQpUaeG6v24gaMOgbmggKip0cuG7sWMgcXVhbiBow7NhKiogZOG7ryBsaeG7h3UgxJHhu4MgcGjDom4gdMOtY2gsIG5o4bqxbSBoaeG7g3UgcsO1IGjGoW4gduG7gSBjw6FjIG3hu5FpIHF1YW4gaOG7hywgeHUgaMaw4bubbmcgdsOgIGJp4buDdSDEkeG7kyBk4buvIGxp4buHdSBt4buZdCBjw6FjaCBoaeG7h3UgcXXhuqMuIFPhu60gZOG7pW5nIGPDoWMgY8O0bmcgY+G7pSB2w6AgcGjGsMahbmcgdGnhu4duIHBow7kgaOG7o3AgxJHhu4MgdHLhu7FjIHF1YW4gaMOzYSBk4buvIGxp4buHdSBjaG8gY8OhYyBiaeG6v24gdHJvbmcgYuG7mSBk4buvIGxp4buHdQ0KDQojIyMgKioxLiBDaGkgdGnDqnUgcXXDom4gc+G7sSBnaWFpIMSRb+G6oW4gMTk5MiAtIDIwMjIqKg0KDQpgYGB7cn0NCmQgPC0gYyAlPiUgZmlsdGVyKHllYXIgPj0gJzE5OTInKQ0KDQpkICU+JSBncm91cF9ieSh5ZWFyKSAlPiUgc3VtbWFyaXNlKG0gPSBtZWFuKENoaVRpZXVRdWFuU3UpKSAlPiUgDQogIGdncGxvdChhZXMoeCA9IHllYXIsIHkgPSBtKSkgKw0KICBnZW9tX2xpbmUoKSArDQogIHNjYWxlX3hfY29udGludW91cyhicmVha3MgPSBzZXEobWluKGQkeWVhciksIG1heChkJHllYXIpLCBieSA9IDQpKSArICMgxJFp4buBdSBjaOG7iW5oIGtob+G6o25nIGPDoWNoIGdp4buvYSBjw6FjIG7Eg20NCiAgbGFicyh4ID0gJ07Eg20nLCB5ID0gJ0NoaSB0acOqdSB0cnVuZyBiw6xuaCcpICsNCiAgc2NhbGVfeV9jb250aW51b3VzIChsYWJlbHMgPXVuaXRfZm9ybWF0KHVuaXQgPSAiIiwgc2NhbGUgPSAxZS05LCBwcmVmaXggPSAiJCIpKQ0KYGBgDQoNClPhu7EgdGhheSDEkeG7lWkgY2hpIHRpw6p1IGdp4buvYSBuaOG7r25nIG7Eg20gMTk5MiAtIDIwMDAgaOG6p3UgbmjGsCBraMO0bmcgdGhheSDEkeG7lWksIGPDoWMgcXXhu5FjIGdpYSBraMO0bmcgY2hpIHRpw6p1IHF1w6Egbmhp4buBdSBuZ2F5IHNhdSBjaGnhur9uIHRyYW5oIGzhuqFuaC4NCg0KTsSDbSAyMDAxIGzDoCBuxINtIGto4bufaSDEkeG6p3UgY2hvIHPhu7EgdMSDbmcgbMOqbiBt4buZdCBjw6FjaCBuaGFuaCBjaMOzbmcgduG7gSBjaGkgdGnDqnUgcXXDom4gc+G7sS4NCg0KU+G7sSBjaGkgdGnDqnUgY8OzIHPhu7EgZ2nhuqNtIHPDunQgc2F1IHRo4budaSBnaWFuIHTEg25nIGxpw6puIHThu6VjIHNhdSAxMiBuxINtICggdOG7qyBuxINtIDIwMDEpIHRyb25nIGtob+G6o25nIG7Eg20gMjAxMiAtIDIwMTcuIE5oxrBuZyBzYXUgxJHDsyBs4bqhaSBjw7Mgc+G7sSB0xINuZyBsw6puIHbhu4EgY2hpIHRpw6p1Lg0KDQojIyMgKioyLiBDaGkgdGnDqnUgcXXDom4gc+G7sSBnaeG7r2EgY8OhYyBxdeG7kWMgZ2lhKioNCg0KYGBge3J9DQpkICU+JSBncm91cF9ieShjb3VudHJ5KSAlPiUgc3VtbWFyaXNlKHMgPSBzdW0oQ2hpVGlldVF1YW5TdSkpICU+JSANCiAgZ2dwbG90KGFlcyh4ID0gY291bnRyeSwgeSA9IHMpKSArDQogIGdlb21fY29sKGZpbGwgPSAncGluaycsIHBvc2l0aW9uID0gJ2RvZGdlJykgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMgKGxhYmVscyA9dW5pdF9mb3JtYXQodW5pdCA9ICIiLCBzY2FsZSA9IDFlLTksIHByZWZpeCA9ICIkIikpICsgIyDEkeG7i25oIGThuqFuZyBnacOhIHRy4buLIHPhu5EgdHLDqm4gdHLhu6VjIHksIHRoZW8gxJHGoW4gduG7iyB04bu3ICgxZS05IHTGsMahbmcgxJHGsMahbmcgMSB04bu3KSwgduG7m2kgdGnhu4FuIHThu5EgJCANCiAgbGFicyh4PSAnUXXhu5FjIGdpYScsIHkgPSAnQ2hpIHRpw6p1IHTDrW5oIHRoZW8gxJHDtCBsYSBN4bu5ICggdOG7tyknKQ0KYGBgDQoNCkhvYSBL4buzICggVW5pdGVkIFN0YXRlcykgbMOgIHF14buRYyBnaWEgY8OzIHThu5VuZyBz4buRIHRp4buBbiBjaGkgdGnDqnUgdsOgbyBxdcOibiBz4buxIG5oaeG7gXUgbmjhuqV0IHThu6sgbsSDbSAxOTkyIHThu5tpIHRo4budaSDEkWnhu4NtIGhp4buHbiB04bqhaSwgc+G7kSB0aeG7gW4gxJHDoyBjaGkgaMahbiAxNTAwMCB04bu3IMSRw7QNCg0KTmfGsOG7o2MgbOG6oWkgaG/DoG4gdG/DoG4gduG7m2kgSG9hIEvhu7MsIExpw6puIEJhbmcgTmdhICggUnVzc2lhbiBGZWRlcmF0aW9uKSBsw6AgcXXhu5FjIGdpYSB2w7NpIGNoaSB0acOqdSBxdcOibiBz4buxIHRo4bqlcCBuaOG6pXQsIGtob+G6o25nIGTGsOG7m2kgMTI1MCB04bu3IMSRw7QNCg0KIyMjICoqMy4gWHUgaMaw4bubbmcgY2hpIHRpw6p1IHF1w6JuIHPhu7EgY+G7p2EgdOG7q25nIHF14buRYyBnaWEgdGhlbyBuxINtKioNCg0KYGBge3J9DQpkICU+JSBnZ3Bsb3QoYWVzKHggPSB5ZWFyLCB5ID0gQ2hpVGlldVF1YW5TdSwgY29sb3IgPSBjb3VudHJ5KSkgKw0KICBnZW9tX2xpbmUoKSArDQogIHNjYWxlX3hfY29udGludW91cyhicmVha3MgPSBzZXEobWluKGQkeWVhciksIG1heChkJHllYXIpLCBieSA9IDQpKSArDQogIHNjYWxlX3lfY29udGludW91cyAobGFiZWxzID11bml0X2Zvcm1hdCh1bml0ID0gIiIsIHNjYWxlID0gMWUtOSwgcHJlZml4ID0gIiQiKSkgKyMgxJFp4buBdSBjaOG7iW5oIGtob+G6o25nIGPDoWNoIGdp4buvYSBjw6FjIG7Eg20NCiAgbGFicyh4ID0gJ07Eg20nLCB5ID0gJ0NoaSB0acOqdSBxdcOibiBz4buxJykNCmBgYA0KDQpDaGkgdGnDqnUgcXXDom4gc+G7sSBj4bunYSBIb2EgS+G7syBjYW8gaMahbiBy4bqldCBuaGnhu4F1IHNvIHbhu5tpIGPDoWMgxJHhu5FpIHRo4bunIGPhuqFuaCB0cmFuaCwgY2hpIHRpw6p1IHTEg25nIGzDqm4gxJHhur9uIG7Eg20gMjAxMSBzYXUgxJHDsyBjaGkgdGnDqnUgZ2nhuqNtIGThuqduIHThu5tpIG7Eg20gMjAxNS4NCg0KS+G7gyB04burIMSR4bqndSBuaOG7r25nIG7Eg20gMjAwMCwgY2hpIHRpw6p1IGPhu6dhIFRydW5nIFF14buRYyBjxaluZyB0xINuZyBsw6puLiBUcnVuZyBRdeG7kWMgbGnDqm4gdOG7pWMgdMSDbmcgY2hpIHRpw6p1IHF1YW4gc+G7sS4gQ8OhYyBxdeG7kWMgZ2lhIGPDsm4gbOG6oWkgY8OzIHPhu7EgY2hpIHRpw6p1IMSR4buBdSDEkeG6t24gdsOgIGxpw6puIHThu6VjIHF1YSBuaGnhu4F1IG7Eg20uDQoNCiMjICoqUGjhuqduIElJOiBQaMOibiB0w61jaCBjaGkgdGnDqnUgcXXDom4gc+G7sSBj4bunYSBIb2EgS+G7syoqDQoNCkhvYSBL4buzIGzDoCBxdeG7kWMgZ2lhIGPDsyBt4bupYyDEkeG7mSBjaGkgdGnDqnUgY2hvIHF1w6JuIHPhu7EgbOG7m24gbmjhuqV0IHRyb25nIDUgbsaw4bubYyB0aMOgbmggdmnDqm4uIFRp4bq/biBow6BuaCBwaMOibiB0w61jaCBjaGkgdGnDqnUgcXXDom4gc+G7sSBj4bunYSBIb2EgS+G7sywgxJHhu4MgaGnhu4N1IHLDtSBk4buvIGxp4buHdSBt4buZdCBjw6FjaCBoaeG7h3UgcXXhuqMNCg0KYGBge3J9DQpxIDwtIGMgJT4lIGZpbHRlcihjb3VudHJ5ICVpbiUgYygnVW5pdGVkIFN0YXRlcycpKQ0KYGBgDQoNCiMjIyAqKjEuIENoaSB0acOqdSBxdcOibiBz4buxIHRyb25nIHRo4budaSBrw6wgQ2hp4bq/biB0cmFuaCBs4bqhbmgqKg0KDQpgYGB7cn0NCnIgPC0gcSAlPiUgZmlsdGVyKHllYXIgPCAnMTk5MicpDQpyICU+JSBnZ3Bsb3QoYWVzKHg9IHllYXIsIHkgPSBDaGlUaWV1UXVhblN1KSkgKw0KICBnZW9tX2NvbChwb3NpdGlvbiA9ICdkb2RnZScsIGZpbGwgPSAndmlvbGV0JykgKw0KICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKG1pbihyJHllYXIpLCBtYXgociR5ZWFyKSwgYnkgPSA0KSkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobGFiZWxzID0gdW5pdF9mb3JtYXQodW5pdCA9ICIiLCBzY2FsZSA9IDFlLTksIHByZWZpeCA9ICIkIikpICsNCiAgbGFicyh4PSAnTsSDbScsIHkgPSAnQ2hpIHRpw6p1IHF1w6JuIHPhu7EgKCB04bu3IFVTRCknKQ0KICANCmBgYA0KDQpDaGkgdGnDqnUgcXXDom4gc+G7sSB0cm9uZyBzdeG7kXQgdGjhu51pIGdpYW4gZGnhu4VuIHJhIENoaeG6v24gdHJhbmggbOG6oW5oIHTEg25nIGThuqduIHRoZW8gdOG7q25nIG7Eg20sIGNow7puZyBjw7Mgc+G7sSBiaeG6v24gxJHhu5luZyBt4bqhbmggdsOgbyBnaWFpIMSRb+G6oW4gdOG7qyBuxINtIDE5ODEsIMSR4buJbmggxJFp4buDbSBsw6AgbsSDbSAxOTkwIEhvYSBL4buzIGNoaSBsw6puIHThu5tpIGjGoW4gMzAwIG5naMOsbiB04bu3IFVTRA0KDQojIyMgKioyLiBDaGkgdGnDqnUgcXXDom4gc+G7sSBzYXUgQ2hp4bq/biB0cmFuaCBs4bqhbmggKDE5OTItMjAyMikqKg0KDQpgYGB7cn0NCnQgPC0gcSAlPiUgZmlsdGVyKHllYXIgPj0gJzE5OTInKQ0KdCAlPiUgZ2dwbG90KGFlcyh4PSB5ZWFyLCB5ID0gQ2hpVGlldVF1YW5TdSkpICsNCiAgZ2VvbV9saW5lKCkgKw0KICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKG1pbih0JHllYXIpLCBtYXgodCR5ZWFyKSwgYnkgPSA0KSkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobGFiZWxzID0gdW5pdF9mb3JtYXQodW5pdCA9ICIiLCBzY2FsZSA9IDFlLTksIHByZWZpeCA9ICIkIikpICsNCiAgbGFicyh4PSAnTsSDbScsIHkgPSAnQ2hpIFRpw6p1IFF1w6JuIFPhu7EgKHThu7cgVVNEKScpDQpgYGANCg0KVsOsIENoaeG6v24gdHJhbmggbOG6oW5oIGLGsOG7m2MgdsOgbyBr4bq/dCB0aMO6YyB04burIG7Eg20gMTk5MiwgbsOqbiBz4buRIHRp4buBbiBjaGkgY2hvIHF1w6JuIHPhu7EgZ2nhuqNtIGThuqduLCBuaMawbmcgdOG7m2kgbsSDbSAyMDAxLCBz4buxIGNoaSB0acOqdSBuw6B5IHTEg25nIGzDqm4gbmhhbmggY2jhu5FuZw0KDQpUw61uaCB04bubaSB0aOG7nWkgxJFp4buDbSBoaeG7h24gdOG6oWkgbsSDbSAyMDIyIGzDoCBuxINtIEhvYSBL4buzIGNoaSB0acOqdSB2w6BvIHF1w6JuIHPhu7EgduG7m2kgc+G7kSB0aeG7gW4gbOG7m24gbmjhuqV0IHThu6sgdHLGsOG7m2MgZ2nhu50gKGjGoW4gNzUwIHRyaeG7h3UgVVNEKQ0KDQojIyMgKiozLkPDoWMgeeG6v3UgdOG7kSDhuqNuaCBoxrDhu59uZyDEkeG6v24gY2hpIHRpw6p1IHF1w6JuIHPhu7Eg4bufIEhvYSBL4buzKioNCg0KLSBT4buxIGdpYSB0xINuZyBHRFAgY8OzIHRo4buDIHThuqFvIHJhIG5oaeG7gXUgbmd14buTbiBs4buxYyBoxqFuIGNobyBxdeG7kWMgZ2lhLCBiYW8gZ+G7k20gY+G6oyBjaG8gdmnhu4djIHTEg25nIGNoaSB0acOqdSBxdcOibiBz4buxLiBHRFAgY2FvIHbDoCB0aHUgbmjhuq1wIHRyw6puIMSR4bqndSBuZ8aw4budaSBjYW8gdGjGsOG7nW5nIMSRaSDEkcO0aSB24bubaSBraOG6oyBuxINuZyBjaGkgdGnDqnUgcXXDom4gc+G7sSBs4bubbiBoxqFuLiBIb2EgS+G7syBjw7MgbeG7mXQgdHJvbmcgbmjhu69uZyBHRFAgbOG7m24gbmjhuqV0IHRo4bq/IGdp4bubaSB2w6AgbeG7mXQgR0RQIHBlciBjYXBpdGEgY2FvLiDEkGnhu4F1IG7DoHkgY3VuZyBj4bqlcCBjaG8gaOG7jSBuZ3Xhu5NuIGzhu7FjIHTDoGkgY2jDrW5oIG3huqFuaCBt4bq9IMSR4buDIMSR4bqndSB0xrAgdsOgbyBxdcOibiBz4buxLg0KDQotICUgR0RQIGNoaSBjaG8gcXXDom4gc+G7sSB2w6AgJSBuZ8OibiBzw6FjaCBxdeG7kWMgcGjDsm5nOiBIYWkgY2jhu4kgc+G7kSBuw6B5IGN1bmcgY+G6pXAgY8OhaSBuaMOsbiB24buBIG3hu6ljIMSR4buZIHF1YW4gdMOibSBj4bunYSBt4buZdCBxdeG7kWMgZ2lhIMSR4buRaSB24bubaSBsxKluaCB24buxYyBxdcOibiBz4buxLiBT4buxIHTEg25nIHRyxrDhu59uZyB0cm9uZyBjw6FjIGNo4buJIHPhu5EgbsOgeSBjw7MgdGjhu4MgcGjhuqNuIMOhbmggc+G7sSBnaWEgdMSDbmcgY+G7p2Egc+G7sSBsbyBuZ+G6oWkgduG7gSBhbiBuaW5oIGhv4bq3YyB0aMOhY2ggdGjhu6ljIHF14buRYyB04bq/Lg0KDQotIENoaSBwaMOtIHF1w6JuIHPhu7EgdOG7lW5nIGPhu5luZyAoVG90YWwgbWlsaXRhcnkgZXhwZW5kaXR1cmUpOkhvYSBL4buzIGNoaSB0acOqdSBt4buZdCBz4buRIGzGsOG7o25nIGzhu5tuIHRp4buBbiB2w6BvIHF1w6JuIHPhu7EgbeG7l2kgbsSDbSwgYmFvIGfhu5NtIGNoaSBwaMOtIGNobyBxdcOibiDEkeG7mWksIG5naGnDqm4gY+G7qXUgdsOgIHBow6F0IHRyaeG7g24gdsWpIGtow60sIGPFqW5nIG5oxrAgY2hpIHBow60gbGnDqm4gcXVhbiDEkeG6v24gY8OhYyBob+G6oXQgxJHhu5luZyBxdeG7kWMgdOG6vyB2w6AgY2hp4bq/biB0cmFuaC4NCg0KLSBDaOG7iSBz4buRIEjDsmEgYsOsbmggVG/DoG4gY+G6p3UgKEdsb2JhbCBQZWFjZSBJbmRleCk6IMSQbyBsxrDhu51uZyBt4bupYyDEkeG7mSBow7JhIGLDrG5oIGPhu6dhIG3hu5l0IHF14buRYyBnaWEuIE3hu6ljIMSR4buZIGjDsmEgYsOsbmggY2FvIGPDsyB0aOG7gyBnaeG6o20gc+G7sSBj4bqnbiB0aGnhur90IGPhu6dhIGNoaSB0acOqdSBxdcOibiBz4buxLiBIb2EgS+G7syBjw7MgbeG7mXQgaOG7hyB0aOG7kW5nIHF1w6JuIHPhu7EgbeG6oW5oIG3hur0sIG7DsyBjxaluZyDEkcOzbmcgbeG7mXQgdmFpIHRyw7IgcXVhbiB0cuG7jW5nIHRyb25nIHZp4buHYyBkdXkgdHLDrCBow7JhIGLDrG5oIHRvw6BuIGPhuqd1IHRow7RuZyBxdWEgY8OhYyBu4buXIGzhu7FjIG5nb+G6oWkgZ2lhbyB2w6AgaOG7o3AgdMOhYyBxdeG7kWMgdOG6vy4NCg0KIyAqKkNoxrDGoW5nIDI6IFBow6JuIHTDrWNoIGThu68gbGnhu4d1IHThu6sgSU1GKioNCg0KROG7ryBsaeG7h3UgcyBsw6AgYuG7mSBk4buvIGxp4buHdSB24buBIG7hu6MgY8O0bmcgY+G7p2EgVmnhu4d0IE5hbSAoxJHGoW4gduG7iyB0w61uaDogJSB0csOqbiBHUEQpDQoNCmBgYHtyfQ0KbGlicmFyeShpbWYuZGF0YSkNCnRtcCA8LSBsb2FkX2RhdGFzZXRzKCdIUEREJykNCmRlIDwtIHRtcCRnZXRfc2VyaWVzKGZyZXEgPSAnQScsIHJlZl9hcmVhID0gJ1ZOJywgaW5kaWNhdG9yID0gJ0dHWFdER19HRFAnKQ0KZGUgPC0gbmEub21pdChkZSkNCm5hbWVzKGRlKSA8LSBjKCd5ZWFyJywnRGVidCcpDQpoZWFkKGRlKQ0KYGBgDQoNCiMjIyAqKjEuVOG7iSBs4buHIG7hu6MgY8O0bmcgdGhlbyB0aOG7nWkgZ2lhbioqDQoNCmBgYHtyfQ0KbGlicmFyeShkcGx5cikNCmRlIDwtIGRlICU+JSBmaWx0ZXIoeWVhciA+PSAnMjAwNCcpDQpkZSAlPiUgZ2dwbG90KGFlcyh4ID0geWVhciwgeSA9IERlYnQpKSArDQogIGdlb21fY29sKHBvc2l0aW9uID0gJ2RvZGdlJykgKw0KICBjb29yZF9mbGlwKCkgKw0KICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1LCBoanVzdCA9IDEpKSArDQogIGxhYnMoeCA9ICduxINtJywgeSA9ICdU4buJIGzhu4cgJS9HUEQnKQ0KICANCmBgYA0KDQpU4buJIGzhu4cgbsOgeSDhu58gVmnhu4d0IE5hbSB0aOG6pXAgKHbDrSBk4bulOiBkxrDhu5tpIDYwLTcwJSksIMSRaeG7gXUgbsOgeSBjw7MgdGjhu4MgY2jhu4kgcmEgcuG6sW5nIFZp4buHdCBOYW0gY8OzIGto4bqjIG7Eg25nIHRy4bqjIG7hu6MgdOG7kXQgdsOgIGPDsyBz4bupYyBt4bqhbmgga2luaCB04bq/IOG7lW4gxJHhu4tuaC4NCg0KVOG7iSBs4buHIG7hu6MgY8O0bmcgY+G7p2EgVmnhu4d0IE5hbSBuZ8OgeSBjw6BuZyB0xINuZyBsw6puIMSRw6FuZyBr4buDLk7Eg20gMjAxNSwgdOG7iSBs4buHIG7hu6MgY8O0bmcgbMOqbiB04bubaSBn4bqnbiA2MCUgKDU4LDI1JSkuIE7Eg20gMjAxNSwgdOG7iSBs4buHIG7hu6MgY8O0bmcgdGjhuqVwIG5o4bqldCB0cm9uZyB2w7JuZyAxMiBuxINtICgzNiw1NCUpDQoNCiMjIyAqKjIuWHUgaMaw4bubbmcgY+G7p2EgdOG7iSBs4buHIG7hu6MgY8O0bmcqKg0KDQpgYGB7cn0NCmRlICU+JSBnZ3Bsb3QoYWVzKHg9IHllYXIsIHkgPSBEZWJ0LCBncm91cCA9IDEpKSArDQogIGdlb21fbGluZSgpICsNCiAgbGFicyh4PSAnTsSDbScsIHkgPSAnQ2hpIFRpw6p1IFF1w6JuIFPhu7EgKHThu7cgVVNEKScpDQpgYGANCg0KVOG7iSBs4buHIG7hu6MgY8O0bmcg4bufIFZp4buHdCBOYW0gdOG7qyBuxINtIDIwMDQgLSAyMDE1IGPDsyB4dSBoxrDhu5tuZyB0xINuZyBnaeG6o20gdGhlbyB04burbmcgZ2lhaSDEkW/huqFuLiDEkGnhu4F1IG7DoHkgY2jhu6luZyB04buPIFZp4buHdCBOYW0ga2nhu4NtIHNvw6F0IG7hu6MgY8O0bmcgcuG6pXQgdOG7kXQgdsOgIGPDsyBraOG6oyBuxINuZyBjaGkgdHLhuqMgY2jDum5nDQoNCiMjIyAqKjMuQ8OhYyB54bq/dSB04buRIOG6o25oIGjGsOG7n25nIMSR4bq/biBu4bujIGPDtG5nKioNCg0KTuG7oyBjw7RuZyBj4bunYSBWaeG7h3QgTmFtIGdpYWkgxJFv4bqhbiAyMDA0IC0gMjAxNSBi4buLIOG6o25oIGjGsOG7n25nIGLhu59pIGPDoWMgeeG6v3UgdOG7kSBzYXUgxJHDonkgDQoNCi0gVMSDbmcgdHLGsOG7n25nIEdEUCBsw6AgeeG6v3UgdOG7kSBraW5oIHThur8gdsSpIG3DtCBxdWFuIHRy4buNbmcgbMOgbSBnaWEgdMSDbmcgbuG7oyBjw7RuZy4gxJDhu5FpIHbhu5tpIGPDoWMgbsaw4bubYyBwaMOhdCB0cmnhu4NuLCB0xINuZyB0csaw4bufbmcgR0RQIGfDs3AgcGjhuqduIGzDoG0gZ2nhuqNtIG7hu6MgY8O0bmcgZG8gbuG7gW4ga2luaCB04bq/IMSRw6MgY8OzIHPhu7EgdMOtY2ggbMWpeSwgY8OhYyBraG/huqNuIMSR4bqndSB0xrAgdsOgIGNoaSBuZ8OibiBzw6FjaCDEkcaw4bujYyBiw7kgxJHhuq9wIHThu6sgbmd14buTbiB0w61jaCBsxal5IG7DoHksIHThu6sgxJHDsyBnaeG6o20gdmF5IG7hu6MgdsOgIGNoaSB0cuG6oyBsw6NpIHZheS4gVHV5IG5oacOqbiwgxJHhu5FpIHbhu5tpIHRyxrDhu51uZyBo4bujcCBj4bunYSBWaeG7h3QgTmFtLCB0xINuZyB0csaw4bufbmcga2luaCB04bq/IGThu7FhIHRyw6puIHRow6JtIGThu6VuZyB24buRbiDEkeG6p3UgdMawIGzDoCBjxqEgYuG6o24sDQoNCi0gTMOjaSBzdeG6pXQgdGjhu7FjIHThur8gY8WpbmcgbMOgIHnhur91IHThu5EgdMOhYyDEkeG7mW5nIHThu5tpIG7hu6MgY8O0bmcuIFZp4buHdCBOYW0gcGjhuqNpIHPhu60gZOG7pW5nIG3hu5l0IHPhu5Ega2hv4bqjbiB2YXkgdGhlbyDEkWnhu4F1IGtp4buHbiDDoXAgZOG7pW5nIGNobyBjw6FjIG5ow7NtIG7GsOG7m2MgdHJ1bmcgYsOsbmguIFRoZW8gxJHDsywgbeG7qWMgbMOjaSBzdeG6pXQgw6FwIGThu6VuZyBjaG8gY8OhYyBraG/huqNuIHZheSBjYW8gaMahbiBzbyB24bubaSBnaWFpIMSRb+G6oW4gdHLGsOG7m2MuDQoNCi0gTmdvw6BpIHJhLCB04bu3IGzhu4cgY8OhYyBraG/huqNuIG7hu6Mgbsaw4bubYyBuZ2/DoGkgY+G7p2EgQ2jDrW5oIHBo4bunIGPDsyB4dSBoxrDhu5tuZyB0xINuZyBk4bqnbi4gTuG7gW4ga2luaCB04bq/IHRo4bq/IGdp4bubaSBjw7MgeHUgaMaw4bubbmcgcGjhu6VjIGjhu5NpLCBsw6NpIHN14bqldCB0aOG7iyB0csaw4budbmcgduG7kW4gcXXhu5FjIHThur8gY8OzIHh1IGjGsOG7m25nIHTEg25nLCBk4bqrbiDEkeG6v24gZ2lhIHTEg25nIGzDo2kgc3XhuqV0IHbDoCBuZ2jEqWEgduG7pSB0cuG6oyBu4bujIGPhu6dhIENow61uaCBwaOG7pyDEkeG7kWkgduG7m2kgY8OhYyBraG/huqNuIG7hu6MgaGnhu4duIGjDoG5oIHbDoCBwaMOhdCBzaW5oLg0KDQotIFThu7cgZ2nDoSBWTkQvVVNEIGzDoCB54bq/dSB04buRIHTDoWMgxJHhu5luZyBuaGnhu4F1IG5o4bqldCDEkeG6v24gbuG7oyBjw7RuZyBj4bunYSBWaeG7h3QgTmFtIHRyb25nIG5n4bqvbiBo4bqhbiB2w6AgZMOgaSBo4bqhbiwgdHJvbmcgZ2lhaSDEkW/huqFuIDIwMDAgLSAyMDE1LCB04bu3IGdpw6EgVk5EL1VTRCBsacOqbiB04bulYyB0xINuZyxuZ2/huqFpIHRy4burIGdpYWkgxJFv4bqhbiAyMDA4IC0gMjAxMSwgxJHDoyBwaMOhdCBzaW5oIHLhu6dpIHJvIGRvIGPDoWMgYmnhur9uIMSR4buZbmcgdOG7tyBnacOhIGPDoWMgxJHhu5NuZyB0aeG7gW4gdmF5IGLhurFuZyBuZ2/huqFpIHThu4cgdHJvbmcgZGFuaCBt4bulYyBu4bujIGPDtG5nLCB2aeG7h2MgxJFp4buBdSBjaOG7iW5oIHThu7cgZ2nDoSDEkeG7k25nIFZp4buHdCBOYW0gY+G7p2EgTmfDom4gaMOgbmcgTmjDoCBuxrDhu5tjIHRyb25nIGPDoWMgbsSDbSBxdWEgKG5o4bqldCBsw6AgY8OhYyBuxINtIHThu6sgMjAwOCAtIDIwMTEpIMSRw6MgbMOgbSB0xINuZyBnacOhIHRy4buLIGRhbmggbmdoxKlhIGPDoWMga2hv4bqjbiBu4bujIGPDtG5nIGLhurFuZyBuZ2/huqFpIHThu4cgcXV5IHRoZW8gxJHhu5NuZyBu4buZaSB04buHDQoNCg==