課題

以下の指標の中から、一つを選択して、データの概要(description)を記録し、データを WDI で取得し、以下の分析をする。

  1. 各年毎のデータの数の棒グラフ
  2. 日本のデータの年の降順での表示
  3. 経年変化を表す折れ線グラフ
    1. 日本
    2. 南部アフリカ関税同盟の5カ国
    3. 選択したいくつかの国
  4. データが十分ある最近の年の値のヒストグラム
  5. データが十分ある最近の年の値の10カ国の値の棒グラフ
    1. 値が大きい方から
    2. 値が小さい方から

それぞれについて考察(気づいたこと、疑問など)を記す

2023.1.27. 23:59 までに Moodle の演習の課題ボックスに提出したものについては、なるべく、早く見て、フィードバックを書きます。それ以降に提出されたものも見ますが、フィードバックは遅くなると思ってください。

データ

  1. School enrollment, primary (% gross):SE.PRM.ENRR [Link] 変数名:primary

  2. School enrollment, secondary (% gross):SE.SEC.ENRR [Link] 変数名:secondary

  3. School enrollment, tertiary (% gross):SE.TER.ENRR [Link] 変数名:tertiary

  4. Mortality rate, under-5 (per 1,000 live births):SH.DYN.MORT [Link] 変数名:under5

  5. Incidence of HIV (% of uninfected population ages 15-49):SH.HIV.INCD.ZS [Link] 変数名:hiv

  6. School enrollment, primary and secondary (gross), gender parity index (GPI):SE.ENR.PRSC.FM.ZS [Link] 変数名:school_gpi

  7. Ratio of female to male labor force participation rate (%) (modeled ILO estimate):SL.TLF.CACT.FM.ZS [Link] 変数名:job_gpi

  8. Unemployment, female (% of female labor force) (modeled ILO estimate):SL.UEM.TOTL.FE.ZS [Link] 変数名:female_unemploy

  9. Unemployment, male (% of male labor force) (modeled ILO estimate):SL.UEM.TOTL.MA.ZS [Link] 変数名:male_unemploy

  10. Net official development assistance and official aid received (current US$) DT.ODA.ALLD.CD [Link] 変数名:oda

表題

概要:

データ

  • Description

データ情報

  • データ名:

  • データコード:

  • 変数名:

  • 概要:

データの取得

準備

library(tidyverse)
library(WDI)

WDI パッケージを使って、直接データをダウンロード

データの確認

REGION <- c("1A", "1W", "4E", "7E", "8S", "B8", "EU", "F1", "OE", "S1", 
"S2", "S3", "S4", "T2", "T3", "T4", "T5", "T6", "T7", "V1", "V2", 
"V3", "V4", "XC", "XD", "XE", "XF", "XG", "XH", "XI", "XJ", "XL", 
"XM", "XN", "XO", "XP", "XQ", "XT", "XU", "XY", "Z4", "Z7", "ZF", 
"ZG", "ZH", "ZI", "ZJ", "ZQ", "ZT")

分析する国のリスト

南部アフリカ関税同盟 The Southern African Customs Union (SACU)

SOUTH_AFRICA_FIVE <- c("South Africa", "Namibia", "Eswatini", "Botswana", "Lesotho")

いくつかの国を選択

分析

1. 各年毎のデータの数の棒グラフ

気づいたこと・疑問

視覚化

2. 日本

気づいたこと・疑問

3. 経年変化

a. 日本

気づいたこと・疑問

b. 南部アフリカ関税同盟

気づいたこと・疑問

参考:平均的な値を曲線で表すことも可能です。loess を使うと滑らかな曲線で近似してくれます。

気づいたこと・疑問

c. 選択した国・地域

気づいたこと・疑問

参考:平均的な値を曲線で表すことも可能です。loess を使うと滑らかな曲線で近似してくれます。

df_under_6.85 |> filter(country %in% CHOSEN_COUNTRIES) |> drop_na(under_6.85) |>
  ggplot(aes(year, under_6.85)) + geom_line(aes(col = country)) +
  geom_smooth(formula = 'y~x', method = "loess", se = FALSE)

気づいたこと・疑問

分布

データの数から、まずは、2020年について見てみる。

気づいたこと・疑問

参考:SACU の5カ国の値を縦線で書き込むには下のようにします。

df_under_6.85 |> filter(year == 2010) |> filter(country %in% SOUTH_AFRICA_FIVE) 

参考:日本とSACU の5カ国の値を縦線で書き込むには下のようにします。

JP <- 0.5
SAF <- df_under_6.85 |> filter(year == 2010) |> filter(country %in% SOUTH_AFRICA_FIVE) |> pull(under_6.85)
df_under_6.85 |> filter(year == 2010) |> filter(!(country %in% REGION))|>
  drop_na(under_6.85) |>
  ggplot() + geom_histogram(aes(under_6.85), binwidth = 1) +
  geom_vline(xintercept = SAF, col = "red") + geom_vline(xintercept = JP, col = "blue") +labs(title = "貧困率(1日6.85ドル以下)", subtitle = "日本:青、SACU:赤")

気づいたこと・疑問

データが十分ある最近の年の値の10カ国の値の棒グラフ

a. 値が大きい方から

df_under_6.85 |> filter(year == 2019) |> drop_na(under_6.85) |> 
  filter(!(iso2c %in% REGION))|>
  arrange(desc(under_6.85)) |> head(10) |> 
  ggplot(aes(fct_reorder(country, under_6.85), ed_exp)) + geom_col() + 
  coord_flip() + labs(title = "Top 10 Countries", x = "country", y = "poverty rate (under $6.85 per day)")

気づいたこと・疑問

b. 値が小さい方から

df_under_6.85 |> filter(year == 2019) |> drop_na(under_6.85) |> 
  filter(!(iso2c %in% REGION))|>
  arrange(under_6.85) |> head(10) |> 
  ggplot(aes(fct_rev(fct_reorder(country, under_6.85)), under_6.85)) + geom_col() + 
  coord_flip() + labs(title = "Lowest 10 Countries", x = "country", y = "poverty rate (under $6.85 per day))

気づいたこと・疑問

LS0tCnRpdGxlOiAi5o6i57Si55qE44OH44O844K/5YiG5p6QIC0gRURBIDEiCmF1dGhvcjogIklELCBMYXN0LCBGaXJzdCIKZGF0ZTogIjIwMjTlubQx5pyIMjPml6UiCm91dHB1dDoKICBodG1sX25vdGVib29rOiBkZWZhdWx0Ci0tLQoKIyMg6Kqy6aGMCgrku6XkuIvjga7mjIfmqJnjga7kuK3jgYvjgonjgIHkuIDjgaTjgpLpgbjmip7jgZfjgabjgIHjg4fjg7zjgr/jga7mpoLopoHvvIhkZXNjcmlwdGlvbu+8ieOCkuiomOmMsuOBl+OAgeODh+ODvOOCv+OCkiBXREkg44Gn5Y+W5b6X44GX44CB5Lul5LiL44Gu5YiG5p6Q44KS44GZ44KL44CCCgoxLiAg5ZCE5bm05q+O44Gu44OH44O844K/44Gu5pWw44Gu5qOS44Kw44Op44OVCjIuICDml6XmnKzjga7jg4fjg7zjgr/jga7lubTjga7pmY3poIbjgafjga7ooajnpLoKMy4gIOe1jOW5tOWkieWMluOCkuihqOOBmeaKmOOCjOe3muOCsOODqeODlQogICAgYS4gIOaXpeacrAogICAgYi4gIOWNl+mDqOOCouODleODquOCq+mWoueojuWQjOebn+OBru+8leOCq+WbvQogICAgYy4gIOmBuOaKnuOBl+OBn+OBhOOBj+OBpOOBi+OBruWbvQo0LiAg44OH44O844K/44GM5Y2B5YiG44GC44KL5pyA6L+R44Gu5bm044Gu5YCk44Gu44OS44K544OI44Kw44Op44OgCjUuICDjg4fjg7zjgr/jgYzljYHliIbjgYLjgovmnIDov5Hjga7lubTjga7lgKTjga4xMOOCq+WbveOBruWApOOBruajkuOCsOODqeODlQogICAgYS4gIOWApOOBjOWkp+OBjeOBhOaWueOBi+OCiQogICAgYi4gIOWApOOBjOWwj+OBleOBhOaWueOBi+OCiQoK44Gd44KM44Ge44KM44Gr44Gk44GE44Gm6ICD5a+f77yI5rCX44Gl44GE44Gf44GT44Go44CB55aR5ZWP44Gq44Gp77yJ44KS6KiY44GZCgoqKjIwMjMuMS4yNy4gMjM6NTkqKiDjgb7jgafjgasgTW9vZGxlIOOBrua8lOe/kuOBruiqsumhjOODnOODg+OCr+OCueOBq+aPkOWHuuOBl+OBn+OCguOBruOBq+OBpOOBhOOBpuOBr+OAgeOBquOCi+OBueOBj+OAgeaXqeOBj+imi+OBpuOAgeODleOCo+ODvOODieODkOODg+OCr+OCkuabuOOBjeOBvuOBmeOAguOBneOCjOS7pemZjeOBq+aPkOWHuuOBleOCjOOBn+OCguOBruOCguimi+OBvuOBmeOBjOOAgeODleOCo+ODvOODieODkOODg+OCr+OBr+mBheOBj+OBquOCi+OBqOaAneOBo+OBpuOBj+OBoOOBleOBhOOAggoKIyMjIOODh+ODvOOCvwoKMS4gIFNjaG9vbCBlbnJvbGxtZW50LCBwcmltYXJ5ICglIGdyb3NzKe+8mlNFLlBSTS5FTlJSIFtbTGlua10oaHR0cHM6Ly9kYXRhLndvcmxkYmFuay5vcmcvaW5kaWNhdG9yL1NFLlBSTS5FTlJSKV0g5aSJ5pWw5ZCN77yaYHByaW1hcnlgCgoyLiAgU2Nob29sIGVucm9sbG1lbnQsIHNlY29uZGFyeSAoJSBncm9zcynvvJpTRS5TRUMuRU5SUiBbW0xpbmtdKGh0dHBzOi8vZGF0YS53b3JsZGJhbmsub3JnL2luZGljYXRvci9TRS5TRUMuRU5SUildIOWkieaVsOWQje+8mmBzZWNvbmRhcnlgCgozLiAgU2Nob29sIGVucm9sbG1lbnQsIHRlcnRpYXJ5ICglIGdyb3NzKe+8mlNFLlRFUi5FTlJSIFtbTGlua10oaHR0cHM6Ly9kYXRhLndvcmxkYmFuay5vcmcvaW5kaWNhdG9yL1NFLlRFUi5FTlJSKV0g5aSJ5pWw5ZCN77yaYHRlcnRpYXJ5YAoKNC4gIE1vcnRhbGl0eSByYXRlLCB1bmRlci01IChwZXIgMSwwMDAgbGl2ZSBiaXJ0aHMp77yaU0guRFlOLk1PUlQgW1tMaW5rXShodHRwczovL2RhdGFiYW5rLndvcmxkYmFuay5vcmcvbWV0YWRhdGFnbG9zc2FyeS93b3JsZC1kZXZlbG9wbWVudC1pbmRpY2F0b3JzL3Nlcmllcy9TSC5EWU4uTU9SVCldIOWkieaVsOWQje+8mmB1bmRlcjVgCgo1LiAgSW5jaWRlbmNlIG9mIEhJViAoJSBvZiB1bmluZmVjdGVkIHBvcHVsYXRpb24gYWdlcyAxNS00OSnvvJpTSC5ISVYuSU5DRC5aUyBbW0xpbmtdKGh0dHBzOi8vZGF0YS53b3JsZGJhbmsub3JnL2luZGljYXRvci9TSC5ISVYuSU5DRC5aUz9sb2NhdGlvbnM9U1opXSDlpInmlbDlkI3vvJpgaGl2YAoKNi4gIFNjaG9vbCBlbnJvbGxtZW50LCBwcmltYXJ5IGFuZCBzZWNvbmRhcnkgKGdyb3NzKSwgZ2VuZGVyIHBhcml0eSBpbmRleCAoR1BJKe+8mlNFLkVOUi5QUlNDLkZNLlpTIFtbTGlua10oaHR0cHM6Ly9kYXRhLndvcmxkYmFuay5vcmcvaW5kaWNhdG9yL1NFLkVOUi5QUlNDLkZNLlpTKV0g5aSJ5pWw5ZCN77yaYHNjaG9vbF9ncGlgCgo3LiAgUmF0aW8gb2YgZmVtYWxlIHRvIG1hbGUgbGFib3IgZm9yY2UgcGFydGljaXBhdGlvbiByYXRlICglKSAobW9kZWxlZCBJTE8gZXN0aW1hdGUp77yaU0wuVExGLkNBQ1QuRk0uWlMgW1tMaW5rXShodHRwczovL2RhdGEud29ybGRiYW5rLm9yZy9pbmRpY2F0b3IvU0wuVExGLkNBQ1QuRk0uWlMpXSDlpInmlbDlkI3vvJpgam9iX2dwaWAKCjguICBVbmVtcGxveW1lbnQsIGZlbWFsZSAoJSBvZiBmZW1hbGUgbGFib3IgZm9yY2UpIChtb2RlbGVkIElMTyBlc3RpbWF0ZSnvvJpTTC5VRU0uVE9UTC5GRS5aUyBbW0xpbmtdKGh0dHBzOi8vZGF0YS53b3JsZGJhbmsub3JnL2luZGljYXRvci9TTC5VRU0uVE9UTC5GRS5aUyldIOWkieaVsOWQje+8mmBmZW1hbGVfdW5lbXBsb3lgCgo5LiAgVW5lbXBsb3ltZW50LCBtYWxlICglIG9mIG1hbGUgbGFib3IgZm9yY2UpIChtb2RlbGVkIElMTyBlc3RpbWF0ZSnvvJpTTC5VRU0uVE9UTC5NQS5aUyBbW0xpbmtdKGh0dHBzOi8vZGF0YS53b3JsZGJhbmsub3JnL2luZGljYXRvci9TTC5VRU0uVE9UTC5NQS5aUyldIOWkieaVsOWQje+8mmBtYWxlX3VuZW1wbG95YAoKMTAuIE5ldCBvZmZpY2lhbCBkZXZlbG9wbWVudCBhc3Npc3RhbmNlIGFuZCBvZmZpY2lhbCBhaWQgcmVjZWl2ZWQgKGN1cnJlbnQgVVNcJCkgRFQuT0RBLkFMTEQuQ0QgW1tMaW5rXShodHRwczovL2RhdGEud29ybGRiYW5rLm9yZy9pbmRpY2F0b3IvRFQuT0RBLkFMTEQuQ0QpXSDlpInmlbDlkI3vvJpgb2RhYAoKIyDooajpoYwKCj4g5qaC6KaB77yaCgojIyDjg4fjg7zjgr8KCi0gICAKCi0gICBEZXNjcmlwdGlvbgoKIyMjIOODh+ODvOOCv+aDheWgsQoKLSAgIOODh+ODvOOCv+WQje+8mgoKLSAgIOODh+ODvOOCv+OCs+ODvOODie+8mgoKLSAgIOWkieaVsOWQje+8mgoKLSAgIOamguimge+8mgoKIyMjIOODh+ODvOOCv+OBruWPluW+lwoKIyMjIyDmupblgpkKCmBgYHtyfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShXREkpCmBgYAoKV0RJIOODkeODg+OCseODvOOCuOOCkuS9v+OBo+OBpuOAgeebtOaOpeODh+ODvOOCv+OCkuODgOOCpuODs+ODreODvOODiQoKYGBge3IgZXZhbCA9IEZBTFNFfQoKYGBgCgoKYGBge3IgZXZhbCA9IEZBTFNFfQoKYGBgCgoKYGBge3J9CgpgYGAKCiMjIyDjg4fjg7zjgr/jga7norroqo0KCgpgYGB7cn0KCmBgYAoKCmBgYHtyfQoKYGBgCgpgYGB7cn0KUkVHSU9OIDwtIGMoIjFBIiwgIjFXIiwgIjRFIiwgIjdFIiwgIjhTIiwgIkI4IiwgIkVVIiwgIkYxIiwgIk9FIiwgIlMxIiwgCiJTMiIsICJTMyIsICJTNCIsICJUMiIsICJUMyIsICJUNCIsICJUNSIsICJUNiIsICJUNyIsICJWMSIsICJWMiIsIAoiVjMiLCAiVjQiLCAiWEMiLCAiWEQiLCAiWEUiLCAiWEYiLCAiWEciLCAiWEgiLCAiWEkiLCAiWEoiLCAiWEwiLCAKIlhNIiwgIlhOIiwgIlhPIiwgIlhQIiwgIlhRIiwgIlhUIiwgIlhVIiwgIlhZIiwgIlo0IiwgIlo3IiwgIlpGIiwgCiJaRyIsICJaSCIsICJaSSIsICJaSiIsICJaUSIsICJaVCIpCmBgYAoKCmBgYHtyfQoKYGBgCgoKYGBge3J9CgpgYGAKCiMjIyDliIbmnpDjgZnjgovlm73jga7jg6rjgrnjg4gKCiMjIyMgKirljZfpg6jjgqLjg5Xjg6rjgqvplqLnqI7lkIznm58qKiBUaGUgU291dGhlcm4gQWZyaWNhbiBDdXN0b21zIFVuaW9uIChTQUNVKQoKYGBge3J9ClNPVVRIX0FGUklDQV9GSVZFIDwtIGMoIlNvdXRoIEFmcmljYSIsICJOYW1pYmlhIiwgIkVzd2F0aW5pIiwgIkJvdHN3YW5hIiwgIkxlc290aG8iKQpgYGAKCiMjIyMg44GE44GP44Gk44GL44Gu5Zu944KS6YG45oqeCgpgYGB7cn0KCmBgYAoKIyMg5YiG5p6QCgojIyMgMS4g5ZCE5bm05q+O44Gu44OH44O844K/44Gu5pWw44Gu5qOS44Kw44Op44OVCgoKYGBge3J9CgpgYGAKCioq5rCX44Gl44GE44Gf44GT44Go44O755aR5ZWPKioKCi0gIAoKIyMg6KaW6Kaa5YyWCgojIyMgMi4g5pel5pysCgpgYGB7cn0KCmBgYAoKCioq5rCX44Gl44GE44Gf44GT44Go44O755aR5ZWPKioKCi0gIAoKIyMjIDMuIOe1jOW5tOWkieWMlgoKIyMjIyBhLiDml6XmnKwKCmBgYHtyfQoKYGBgCgoqKuawl+OBpeOBhOOBn+OBk+OBqOODu+eWkeWVjyoqCgotICAgCgojIyMjIGIuIOWNl+mDqOOCouODleODquOCq+mWoueojuWQjOebnwoKCmBgYHtyfQoKYGBgCgoKKirmsJfjgaXjgYTjgZ/jgZPjgajjg7vnlpHllY8qKgoKLSAgCgoqKuWPguiAg++8muW5s+Wdh+eahOOBquWApOOCkuabsue3muOBp+ihqOOBmeOBk+OBqOOCguWPr+iDveOBp+OBmeOAgmxvZXNzIOOCkuS9v+OBhuOBqOa7keOCieOBi+OBquabsue3muOBp+i/keS8vOOBl+OBpuOBj+OCjOOBvuOBmeOAgioqCgoKYGBge3J9CgpgYGAKCioq5rCX44Gl44GE44Gf44GT44Go44O755aR5ZWPKioKCi0gICAKCiMjIyMgYy4g6YG45oqe44GX44Gf5Zu944O75Zyw5Z+fCgoKYGBge3J9CgpgYGAKCioq5rCX44Gl44GE44Gf44GT44Go44O755aR5ZWPKioKCi0gIAoKKirlj4LogIPvvJrlubPlnYfnmoTjgarlgKTjgpLmm7Lnt5rjgafooajjgZnjgZPjgajjgoLlj6/og73jgafjgZnjgIJsb2VzcyDjgpLkvb/jgYbjgajmu5HjgonjgYvjgarmm7Lnt5rjgafov5HkvLzjgZfjgabjgY/jgozjgb7jgZnjgIIqKgoKYGBgICAgICAgICAgCmRmX3VuZGVyXzYuODUgfD4gZmlsdGVyKGNvdW50cnkgJWluJSBDSE9TRU5fQ09VTlRSSUVTKSB8PiBkcm9wX25hKHVuZGVyXzYuODUpIHw+CiAgZ2dwbG90KGFlcyh5ZWFyLCB1bmRlcl82Ljg1KSkgKyBnZW9tX2xpbmUoYWVzKGNvbCA9IGNvdW50cnkpKSArCiAgZ2VvbV9zbW9vdGgoZm9ybXVsYSA9ICd5fngnLCBtZXRob2QgPSAibG9lc3MiLCBzZSA9IEZBTFNFKQpgYGAKCmBgYHtyfQoKYGBgCgoqKuawl+OBpeOBhOOBn+OBk+OBqOODu+eWkeWVjyoqCgotICAKCiMjIyDliIbluIMKCuODh+ODvOOCv+OBruaVsOOBi+OCieOAgeOBvuOBmuOBr+OAgTIwMjDlubTjgavjgaTjgYTjgabopovjgabjgb/jgovjgIIKCgpgYGB7cn0KCmBgYAoKCioq5rCX44Gl44GE44Gf44GT44Go44O755aR5ZWPKioKCi0gIAoKKirlj4LogIPvvJoqKlNBQ1Ug44Gu77yV44Kr5Zu944Gu5YCk44KS57im57ea44Gn5pu444GN6L6844KA44Gr44Gv5LiL44Gu44KI44GG44Gr44GX44G+44GZ44CCCgpgYGAgICAgICAgICAKZGZfdW5kZXJfNi44NSB8PiBmaWx0ZXIoeWVhciA9PSAyMDEwKSB8PiBmaWx0ZXIoY291bnRyeSAlaW4lIFNPVVRIX0FGUklDQV9GSVZFKSAKYGBgCgpgYGB7cn0KCmBgYAoKKirlj4LogIPvvJrml6XmnKzjgagqKlNBQ1Ug44Gu77yV44Kr5Zu944Gu5YCk44KS57im57ea44Gn5pu444GN6L6844KA44Gr44Gv5LiL44Gu44KI44GG44Gr44GX44G+44GZ44CCCgpgYGAgICAgICAgICAKSlAgPC0gMC41ClNBRiA8LSBkZl91bmRlcl82Ljg1IHw+IGZpbHRlcih5ZWFyID09IDIwMTApIHw+IGZpbHRlcihjb3VudHJ5ICVpbiUgU09VVEhfQUZSSUNBX0ZJVkUpIHw+IHB1bGwodW5kZXJfNi44NSkKZGZfdW5kZXJfNi44NSB8PiBmaWx0ZXIoeWVhciA9PSAyMDEwKSB8PiBmaWx0ZXIoIShjb3VudHJ5ICVpbiUgUkVHSU9OKSl8PgogIGRyb3BfbmEodW5kZXJfNi44NSkgfD4KICBnZ3Bsb3QoKSArIGdlb21faGlzdG9ncmFtKGFlcyh1bmRlcl82Ljg1KSwgYmlud2lkdGggPSAxKSArCiAgZ2VvbV92bGluZSh4aW50ZXJjZXB0ID0gU0FGLCBjb2wgPSAicmVkIikgKyBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQgPSBKUCwgY29sID0gImJsdWUiKSArbGFicyh0aXRsZSA9ICLosqflm7DnjofvvIgx5pelNi44NeODieODq+S7peS4i++8iSIsIHN1YnRpdGxlID0gIuaXpeacrO+8mumdkuOAgVNBQ1XvvJrotaQiKQpgYGAKCmBgYHtyfQoKYGBgCgoqKuawl+OBpeOBhOOBn+OBk+OBqOODu+eWkeWVjyoqCgotICAKCiMjIyDjg4fjg7zjgr/jgYzljYHliIbjgYLjgovmnIDov5Hjga7lubTjga7lgKTjga4xMOOCq+WbveOBruWApOOBruajkuOCsOODqeODlQoKIyMjIyBhLiDlgKTjgYzlpKfjgY3jgYTmlrnjgYvjgokKCmBgYCAgICAgICAgIApkZl91bmRlcl82Ljg1IHw+IGZpbHRlcih5ZWFyID09IDIwMTkpIHw+IGRyb3BfbmEodW5kZXJfNi44NSkgfD4gCiAgZmlsdGVyKCEoaXNvMmMgJWluJSBSRUdJT04pKXw+CiAgYXJyYW5nZShkZXNjKHVuZGVyXzYuODUpKSB8PiBoZWFkKDEwKSB8PiAKICBnZ3Bsb3QoYWVzKGZjdF9yZW9yZGVyKGNvdW50cnksIHVuZGVyXzYuODUpLCBlZF9leHApKSArIGdlb21fY29sKCkgKyAKICBjb29yZF9mbGlwKCkgKyBsYWJzKHRpdGxlID0gIlRvcCAxMCBDb3VudHJpZXMiLCB4ID0gImNvdW50cnkiLCB5ID0gInBvdmVydHkgcmF0ZSAodW5kZXIgJDYuODUgcGVyIGRheSkiKQpgYGAKCmBgYHtyfQoKYGBgCgoqKuawl+OBpeOBhOOBn+OBk+OBqOODu+eWkeWVjyoqCgotICAKCiMjIyMgYi4g5YCk44GM5bCP44GV44GE5pa544GL44KJCgpgYGAgICAgICAgICAKZGZfdW5kZXJfNi44NSB8PiBmaWx0ZXIoeWVhciA9PSAyMDE5KSB8PiBkcm9wX25hKHVuZGVyXzYuODUpIHw+IAogIGZpbHRlcighKGlzbzJjICVpbiUgUkVHSU9OKSl8PgogIGFycmFuZ2UodW5kZXJfNi44NSkgfD4gaGVhZCgxMCkgfD4gCiAgZ2dwbG90KGFlcyhmY3RfcmV2KGZjdF9yZW9yZGVyKGNvdW50cnksIHVuZGVyXzYuODUpKSwgdW5kZXJfNi44NSkpICsgZ2VvbV9jb2woKSArIAogIGNvb3JkX2ZsaXAoKSArIGxhYnModGl0bGUgPSAiTG93ZXN0IDEwIENvdW50cmllcyIsIHggPSAiY291bnRyeSIsIHkgPSAicG92ZXJ0eSByYXRlICh1bmRlciAkNi44NSBwZXIgZGF5KSkKYGBgCgpgYGB7cn0KCmBgYAoKKirmsJfjgaXjgYTjgZ/jgZPjgajjg7vnlpHllY8qKgoKLSAgCg==