“11:17:33, 27 - 01 - 2024”

1 Nhiệm vụ 3.1

1.1 Mục tiêu nghiên cứu

  1. Hiểu rõ về tính hình dân số ở độ tuổi trung niên và cao niên ở Canada so với 1 số nước khác.
  2. Sự biến động về cơ cấu dân số ở độ tuổi từ 60 tuổi trở đi.

1.2 Phương pháp nghiên cứu

  • Chọn lọc dữ liệu từ population-and-demography.csv để nghiên cứu.
  • Sử dụng phương pháp thống kê mô tả: bảng tần số, vẽ đồ thị, so sánh.

1.3 Thực hiện nghiên cứu

1.3.1 1.Giải thích bộ dữ liệu

Bộ dữ liệu: population-and-demography.csv

Bộ dữ liệu thống kê về dân số và nhân khẩu học của 254 quốc gia trong các độ tuổi từ dưới 1 tuổi đến trên 100 tười, tính từ năm 1950 đến 2021.
Bộ dữ liệu gồm có 18288 quan sát24 biến như sau:
* Country.name (Tên quốc gia)
* Year (Năm)
* Population (Dân số)
* Population of children under the age of 1 (Dân số trẻ em < 1 tuổi)
* Population of children under the age of 5 (Dân số trẻ em < 5 tuổi)
* Population of children under the age of 15 (Dân số trẻ em < 15 tuổi)
* Population under the age of 25 (Dân số dưới 25 tuổi)
* Population aged 15 to 64 years (Dân số từ 15 đến 64 tuổi)
* Population older than 15 years (Dân số > 15 tuổi)
* Population older than 18 years (Dân số > 18 tuổi)
* Population at age 1 (Dân số ở 1 tuổi)
* Population aged 1 to 4 years (Dân số từ 1 đến 4 tuổi)
* Population aged 5 to 9 years (Dân số từ 5 đến 9 tuổi)
* Population aged 10 to 14 years (Dân số từ 10 đến 14 tuổi)
* Population aged 15 to 19 years (Dân số từ 15 đến 19 tuổi)
* Population aged 20 to 29 years (Dân số từ 20 đến 29 tuổi)
* Population aged 30 to 39 years (Dân số từ 30 đến 39 tuổi)
* Population aged 40 to 49 years (Dân số từ 40 đến 49 tuổi)
* Population aged 50 to 59 years (Dân số từ 50 đến 59 tuổi)
* Population aged 60 to 69 years (Dân số từ 60 đến 69 tuổi)
* Population aged 70 to 79 years (Dân số từ 70 đến 79 tuổi)
* Population aged 80 to 89 years (Dân số từ 80 đến 89 tuổi)
* Population aged 90 to 99 years (Dân số từ 90 đến 99 tuổi)
* Population older than 100 years (Dân số > 100 tuổi)

1.3.2 2.Chọn bộ dữ liệu

1.3.2.1 2.1 Chọn dữ liệu

  • Từ bộ dữ liệu population-and-demography.csv chọn ra các biến để khảo sát trên dữ liệu mới chọn.
    Thực hiện thao tác gán bộ dữ kiệu bằng o và đổi tên các biến để dễ dàng thực hiện thao tác hơn.
o <- read.csv("C:/Users/thanh/Downloads/population-and-demography.csv",header = T)
  • Country.name (C)
  • Year (Y)
  • Population (P)
  • Population of children under the age of 1 (PC1)
  • Population of children under the age of 5 (PC5)
  • Population of children under the age of 15 (PC15)
  • Population under the age of 25 (PU25)
  • Population aged 15 to 64 years (P15-64)
  • Population older than 15 years (PO15)
  • Population older than 18 years (PO18)
  • Population at age 1 (PA1)
  • Population aged 1 to 4 years (P1-4)
  • Population aged 5 to 9 years (P5-9)
  • Population aged 10 to 14 years (P10-14)
  • Population aged 15 to 19 years (P15-19)
  • Population aged 20 to 29 years (P20-29)
  • Population aged 30 to 39 years (P30-39)
  • Population aged 40 to 49 years (P40-49)
  • Population aged 50 to 59 years (P50-59)
  • Population aged 60 to 69 years (P60-69)
  • Population aged 70 to 79 years (P70-79)
  • Population aged 80 to 89 years (P80-89)
  • Population aged 90 to 99 years (P90-99)
  • Population older than 100 years (PO100)
names(o) <- c('C','Y','P','PC1','PC5','PC15','PU25','P1564','PO15','PO18','PA1','P14','P59','P1014','P1519','P2029','P3039','P40-49','P5059','P6069','P7079','P8089','P9099','PO100')
  • Chọn ra bộ dữ liệu m gồm có 360 khảo sát và 8 biến được chọn ra từ bộ dữ liệu o.
  • Bộ dữ liệu được chọn trên gồm có các quốc gia: Chad,Chile,Hong Kong,Togo, Laos,Canada và năm, tổng số dân, những người có độ tuổi từ 60 đến 69, 70 đến 79, 80 đến 89,90 đến 99 và trên 100 tuổi.
  • Dựa vào bộ dữ liệu này ta có thể thấy được số dân có độ tuổi từ trung niên đến cao niên ở các nước đã chọn.
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.4.4     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.0
## ✔ purrr     1.0.2     
## ── 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
library(dplyr)
library(magrittr)
## 
## Attaching package: 'magrittr'
## 
## The following object is masked from 'package:purrr':
## 
##     set_names
## 
## The following object is masked from 'package:tidyr':
## 
##     extract
m <- o %>% filter(C %in% c('Chad','Chile','Hong Kong','Laos','Canada'))
m <- m %>% select(C,Y,P,P6069,P7079,P8089,P9099,PO100)
table <- knitr::kable(m, format= "markdown")
table
C Y P P6069 P7079 P8089 P9099 PO100
Canada 1950 13743068 919416 487364 139843 12627 189
Canada 1951 14085723 938199 506204 144306 13262 188
Canada 1952 14485746 950593 526647 149036 13788 190
Canada 1953 14901533 960241 547140 154836 14415 200
Canada 1954 15323199 970455 566376 161209 15098 216
Canada 1955 15733926 980453 583556 168848 15840 219
Canada 1956 16167046 990581 600164 176710 16521 219
Canada 1957 16650052 1001342 617035 184384 17248 226
Canada 1958 17113392 1014715 633828 192107 18041 242
Canada 1959 17524910 1032469 649967 199762 18743 258
Canada 1960 17909358 1052217 664298 208817 19748 272
Canada 1961 18273690 1072305 676374 218727 20748 294
Canada 1962 18622354 1092873 686066 228143 21676 319
Canada 1963 18971014 1114737 694615 237222 22684 346
Canada 1964 19326326 1139134 704118 246810 23846 376
Canada 1965 19688808 1167044 715671 257044 25350 399
Canada 1966 20055242 1198325 728459 266296 26719 412
Canada 1967 20408046 1232370 740379 274908 28255 437
Canada 1968 20731928 1269861 750876 284033 29739 461
Canada 1969 21033938 1310894 761145 293410 31073 481
Canada 1970 21434580 1359250 774372 301482 33266 510
Canada 1971 21888686 1410788 790866 308484 35714 540
Canada 1972 22222228 1457916 808913 315017 37895 588
Canada 1973 22502026 1504038 829676 321262 40023 640
Canada 1974 22812430 1551945 853236 326990 42137 684
Canada 1975 23136250 1598886 878699 333189 44598 748
Canada 1976 23442118 1640480 905859 340569 46937 820
Canada 1977 23715310 1675458 935425 348137 49350 886
Canada 1978 23962686 1705437 967726 356408 52377 969
Canada 1979 24219116 1739346 1001726 365163 55658 1054
Canada 1980 24511512 1784802 1037000 376320 58431 1170
Canada 1981 24815780 1837691 1073610 388501 61130 1327
Canada 1982 25101514 1889789 1111063 400522 63952 1500
Canada 1983 25360732 1936149 1149966 415061 66608 1682
Canada 1984 25602080 1977848 1190787 431139 69381 1840
Canada 1985 25843920 2019565 1230358 447621 71939 1988
Canada 1986 26116076 2066311 1265970 463414 74262 2113
Canada 1987 26436886 2118686 1298159 480280 76582 2230
Canada 1988 26815068 2171911 1328177 498978 78954 2361
Canada 1989 27244408 2218486 1363350 518095 81341 2489
Canada 1990 27657206 2252571 1408458 538548 84407 2623
Canada 1991 28015762 2275519 1457473 559609 87642 2758
Canada 1992 28347644 2292322 1503957 582381 91090 2877
Canada 1993 28668168 2304928 1544905 606426 95286 2961
Canada 1994 28981190 2313291 1581431 631360 99375 3002
Canada 1995 29289430 2320604 1617522 655500 103350 3049
Canada 1996 29593856 2329929 1656186 675557 107032 3129
Canada 1997 29882752 2341618 1697920 692093 110783 3196
Canada 1998 30144816 2356995 1740105 707461 115037 3240
Canada 1999 30399776 2376154 1777964 724868 119208 3304
Canada 2000 30683316 2399925 1809798 751554 124025 3385
Canada 2001 31002768 2434368 1837420 787376 129461 3445
Canada 2002 31322400 2485236 1861486 822165 135450 3524
Canada 2003 31619456 2554937 1880718 853888 142455 3652
Canada 2004 31911670 2638427 1894910 885082 150212 3788
Canada 2005 32215914 2732136 1908258 917454 157859 3953
Canada 2006 32531864 2850861 1923924 950775 164696 4143
Canada 2007 32862458 2998642 1942178 983844 170991 4345
Canada 2008 33218542 3152241 1965570 1016291 177232 4652
Canada 2009 33593920 3299668 1995272 1047239 184808 5019
Canada 2010 33963416 3443212 2030737 1077486 196506 5383
Canada 2011 34323536 3581203 2072800 1107416 211608 5771
Canada 2012 34691876 3715948 2124503 1135295 226486 6226
Canada 2013 35063696 3853271 2190028 1160294 240115 6725
Canada 2014 35404616 3996759 2264940 1181097 253249 7250
Canada 2015 35732120 4142426 2346242 1200367 266480 7755
Canada 2016 36113532 4273916 2451849 1221861 279588 8216
Canada 2017 36554344 4384975 2588393 1245349 291717 8598
Canada 2018 37035260 4492140 2732096 1270538 302882 8945
Canada 2019 37522584 4605998 2869190 1298916 313968 9474
Canada 2020 37888704 4719796 2999704 1329315 324408 10367
Canada 2021 38155012 4828379 3125203 1365331 334944 11496
Chad 1950 2512693 114293 50709 8022 305 2
Chad 1951 2560170 114584 51570 8416 303 2
Chad 1952 2607682 114632 52385 8816 312 2
Chad 1953 2656088 114740 53170 9211 322 2
Chad 1954 2705625 115280 53917 9594 327 1
Chad 1955 2756173 116360 54583 9944 330 1
Chad 1956 2807904 117942 55215 10263 333 1
Chad 1957 2860904 120007 55863 10555 334 1
Chad 1958 2915296 122432 56476 10822 341 1
Chad 1959 2971257 125012 56966 11075 357 1
Chad 1960 3028688 127598 57333 11313 383 1
Chad 1961 3087662 130234 57564 11549 409 1
Chad 1962 3148248 132908 57678 11790 440 1
Chad 1963 3210298 135512 57845 12021 468 1
Chad 1964 3273422 137938 58282 12234 488 1
Chad 1965 3336341 140085 58996 12406 503 1
Chad 1966 3398673 141945 59978 12561 506 1
Chad 1967 3461675 143576 61264 12726 515 0
Chad 1968 3526775 145124 62749 12887 518 0
Chad 1969 3595154 146754 64277 13021 527 0
Chad 1970 3667400 148533 65741 13124 538 0
Chad 1971 3742543 150352 67107 13182 549 0
Chad 1972 3824404 152307 68434 13218 564 0
Chad 1973 3912914 154445 69744 13299 574 0
Chad 1974 4000559 156571 70909 13446 578 0
Chad 1975 4084114 158605 71932 13666 573 0
Chad 1976 4163056 160611 72879 13976 559 0
Chad 1977 4238555 162623 73794 14383 545 0
Chad 1978 4313485 164661 74703 14833 537 0
Chad 1979 4402949 167011 75794 15339 554 0
Chad 1980 4408239 167832 76222 15386 460 0
Chad 1981 4409228 168628 76742 15454 370 0
Chad 1982 4622833 173328 79225 16582 781 30
Chad 1983 4859174 178293 81847 17633 1094 63
Chad 1984 4920557 179852 82886 17709 785 50
Chad 1985 4967592 180973 83850 17793 581 26
Chad 1986 5118163 183791 85762 18432 739 19
Chad 1987 5300856 186761 87816 19153 928 22
Chad 1988 5483044 189363 89726 19765 1040 25
Chad 1989 5670621 191914 91653 20324 1106 24
Chad 1990 5827070 193635 93208 20691 1056 17
Chad 1991 6042433 196197 95181 21313 1194 23
Chad 1992 6302934 199343 97400 22038 1384 36
Chad 1993 6448279 200144 98427 22084 1149 28
Chad 1994 6593004 200858 99359 22172 983 14
Chad 1995 6888862 204261 101509 23021 1314 28
Chad 1996 7200292 207864 103617 23838 1549 47
Chad 1997 7450883 210395 105043 24287 1491 43
Chad 1998 7709112 213000 106376 24733 1470 35
Chad 1999 7981888 215606 107672 25200 1487 29
Chad 2000 8259144 218005 108918 25653 1500 25
Chad 2001 8538806 220243 110105 26084 1497 21
Chad 2002 8838371 222750 111391 26576 1542 19
Chad 2003 9196374 226337 113103 27284 1743 32
Chad 2004 9613509 231015 115188 28136 2025 61
Chad 2005 10005013 235198 116849 28675 2087 77
Chad 2006 10365620 238735 118156 28951 2005 73
Chad 2007 10722738 241961 119476 29158 1916 60
Chad 2008 11098672 245428 120946 29416 1890 49
Chad 2009 11496138 248186 122442 29717 1913 43
Chad 2010 11894734 253231 123768 29976 1895 37
Chad 2011 12317729 262357 125252 30341 1932 35
Chad 2012 12754912 272165 126904 30770 1972 36
Chad 2013 13216769 282870 128844 31289 2046 39
Chad 2014 13697128 294410 131051 31844 2128 43
Chad 2015 14140277 305904 133069 32199 2038 34
Chad 2016 14592587 318388 135281 32629 1996 24
Chad 2017 15085893 332615 137782 33289 2082 24
Chad 2018 15604213 348292 140503 34044 2191 31
Chad 2019 16126868 365853 142587 34751 2242 35
Chad 2020 16644707 381882 145490 34993 2202 32
Chad 2021 17179744 395527 149895 34771 2159 29
Chile 1950 6623650 218107 94188 29053 6833 964
Chile 1951 6748677 225480 93056 24218 2983 434
Chile 1952 6882965 233670 92932 21255 1517 189
Chile 1953 7024139 242433 93799 19458 897 77
Chile 1954 7171411 251499 95685 18426 610 28
Chile 1955 7323198 260454 98338 17818 457 8
Chile 1956 7480643 269288 101876 17618 367 1
Chile 1957 7641939 277747 105983 17657 312 0
Chile 1958 7806577 286338 110922 18022 280 0
Chile 1959 7973551 294888 116272 18522 263 0
Chile 1960 8141826 303033 121943 19104 256 0
Chile 1961 8313539 310997 128505 19996 262 0
Chile 1962 8486124 318578 135552 21031 274 0
Chile 1963 8656007 325511 142272 21991 283 0
Chile 1964 8825044 332724 148691 23062 292 0
Chile 1965 8994942 341105 155304 24529 310 0
Chile 1966 9161650 350210 161397 26109 329 0
Chile 1967 9326270 360048 167171 27868 352 0
Chile 1968 9491502 370418 172717 29761 380 0
Chile 1969 9656302 381114 177387 31509 402 0
Chile 1970 9820483 392292 181715 33250 429 0
Chile 1971 9984377 404282 186094 35101 460 0
Chile 1972 10145762 416740 190170 36865 491 0
Chile 1973 10307850 429914 194827 38819 536 0
Chile 1974 10472748 443429 200482 40971 597 0
Chile 1975 10639534 456533 207429 43363 688 0
Chile 1976 10804876 468725 214775 45544 782 0
Chile 1977 10969865 480483 222667 47662 886 0
Chile 1978 11137754 492617 231926 50174 1024 0
Chile 1979 11304332 505291 241179 52362 1156 0
Chile 1980 11469825 519661 250368 54401 1284 0
Chile 1981 11637615 535908 260551 56909 1449 0
Chile 1982 11807411 553191 271666 59828 1651 0
Chile 1983 11976519 571885 282429 62724 1850 0
Chile 1984 12147764 593985 292505 65784 2052 0
Chile 1985 12326395 620310 302477 69424 2280 0
Chile 1986 12514509 651093 312670 73699 2539 0
Chile 1987 12712786 686242 323348 78632 2848 0
Chile 1988 12918395 723171 334514 83938 3194 0
Chile 1989 13128625 757848 346802 89573 3576 0
Chile 1990 13342876 787910 360637 95633 4049 1
Chile 1991 13561946 814407 375947 102179 4641 1
Chile 1992 13782300 838305 392757 109134 5293 1
Chile 1993 13998387 858772 411366 115887 5893 2
Chile 1994 14210680 875361 433563 122590 6504 4
Chile 1995 14416799 888339 459142 129465 7212 5
Chile 1996 14615489 897585 487518 136380 7997 6
Chile 1997 14809289 903836 519269 143932 8968 9
Chile 1998 14996745 908985 552038 151978 9955 11
Chile 1999 15176418 915628 582423 160529 10867 13
Chile 2000 15351803 925269 609738 171534 12234 18
Chile 2001 15523973 937411 634137 184839 14061 24
Chile 2002 15693798 952461 655384 199505 16322 32
Chile 2003 15859114 970830 673562 215496 18716 41
Chile 2004 16017966 992265 688490 233201 21127 55
Chile 2005 16175315 1016499 700832 252992 23925 78
Chile 2006 16334573 1044700 710861 274710 27177 112
Chile 2007 16495543 1078617 718022 297137 30640 162
Chile 2008 16661463 1119268 724408 319530 34462 231
Chile 2009 16833450 1164764 732771 340854 39039 326
Chile 2010 17004166 1214121 742618 358333 43897 440
Chile 2011 17173568 1267686 754382 373047 49161 584
Chile 2012 17341770 1323520 768596 385508 54651 758
Chile 2013 17509926 1380844 785058 396072 60540 966
Chile 2014 17687108 1439352 804335 405993 67292 1210
Chile 2015 17870122 1499272 826108 415413 74594 1482
Chile 2016 18083880 1560766 852026 424656 82548 1798
Chile 2017 18368582 1622224 884581 433120 91009 2180
Chile 2018 18701452 1680532 924291 441035 99397 2645
Chile 2019 19039484 1736623 968481 449589 106925 3188
Chile 2020 19300318 1789193 1013943 457064 110720 3543
Chile 2021 19493184 1837155 1060203 463229 112669 3846
Hong Kong 1950 1980530 43653 24190 5153 442 8
Hong Kong 1951 2075517 46067 24537 5297 427 6
Hong Kong 1952 2173606 49386 24858 5486 429 4
Hong Kong 1953 2275015 53577 25185 5746 444 4
Hong Kong 1954 2380483 58599 25541 6089 468 4
Hong Kong 1955 2490495 64374 26075 6461 498 3
Hong Kong 1956 2606308 70708 26886 6806 527 3
Hong Kong 1957 2728466 77344 28131 7061 554 5
Hong Kong 1958 2855689 84155 30126 7178 588 6
Hong Kong 1959 2985061 91194 32911 7145 629 6
Hong Kong 1960 3114676 99339 36763 7038 672 7
Hong Kong 1961 3231766 107427 40569 7261 714 8
Hong Kong 1962 3331193 114397 43638 8038 757 10
Hong Kong 1963 3424355 121038 46755 8971 807 12
Hong Kong 1964 3514767 127991 49974 9968 867 13
Hong Kong 1965 3602032 135636 53497 11154 944 14
Hong Kong 1966 3684669 143758 57358 12456 1047 15
Hong Kong 1967 3762176 152387 61559 13880 1186 22
Hong Kong 1968 3834048 161515 66330 15492 1380 28
Hong Kong 1969 3898385 171273 71813 17234 1637 28
Hong Kong 1970 3955076 181766 77837 19086 1946 27
Hong Kong 1971 4028605 192939 83490 20830 2160 30
Hong Kong 1972 4128332 204855 88442 22362 2239 38
Hong Kong 1973 4234756 217605 93227 23836 2330 49
Hong Kong 1974 4342778 230806 98177 25333 2495 61
Hong Kong 1975 4451227 244392 103681 26972 2747 73
Hong Kong 1976 4558871 258140 109817 28794 3065 83
Hong Kong 1977 4664905 271518 116438 30675 3409 96
Hong Kong 1978 4768799 284176 123476 32516 3782 102
Hong Kong 1979 4872751 296631 130920 34350 4159 93
Hong Kong 1980 4978551 310225 140234 37046 4512 82
Hong Kong 1981 5077744 322407 150976 40487 4790 79
Hong Kong 1982 5166910 332211 160508 43734 5063 97
Hong Kong 1983 5252129 341782 168591 46740 5466 122
Hong Kong 1984 5333577 352087 176046 49503 6031 133
Hong Kong 1985 5411686 363959 184461 52477 6684 133
Hong Kong 1986 5492797 375718 195079 56488 7185 137
Hong Kong 1987 5578536 387204 205372 61292 7560 156
Hong Kong 1988 5665618 399439 213285 66223 8148 185
Hong Kong 1989 5752711 412127 219874 71673 9104 217
Hong Kong 1990 5838573 427269 225728 78258 10526 250
Hong Kong 1991 5923453 442887 231101 85714 12530 278
Hong Kong 1992 6007690 455947 237120 92854 14930 362
Hong Kong 1993 6089809 470096 243859 99143 17615 492
Hong Kong 1994 6168709 482466 251691 104369 20697 622
Hong Kong 1995 6243859 490283 262895 108021 24176 807
Hong Kong 1996 6333446 497714 279259 108935 26200 1027
Hong Kong 1997 6441245 505271 298482 108323 25987 1215
Hong Kong 1998 6546051 511234 317102 109174 25148 1331
Hong Kong 1999 6641959 514131 334022 112981 24153 1349
Hong Kong 2000 6731195 512341 350361 120570 22927 1274
Hong Kong 2001 6801538 506561 365115 130449 22551 1183
Hong Kong 2002 6848847 499206 377794 140310 23487 1167
Hong Kong 2003 6886463 491673 391236 149792 24889 1201
Hong Kong 2004 6915997 487834 403198 159155 26607 1220
Hong Kong 2005 6936872 489017 411958 168493 28741 1236
Hong Kong 2006 6960600 495859 420505 178237 31227 1291
Hong Kong 2007 7001452 512325 430158 188429 33707 1417
Hong Kong 2008 7050673 537482 439478 198347 36229 1567
Hong Kong 2009 7094600 569781 446376 208378 39095 1679
Hong Kong 2010 7132437 608115 449170 219842 42294 1791
Hong Kong 2011 7175370 650180 447607 232110 45707 1948
Hong Kong 2012 7234062 696160 442422 243632 49360 2184
Hong Kong 2013 7296820 744744 436740 255024 53269 2473
Hong Kong 2014 7352180 794684 434372 265791 57320 2777
Hong Kong 2015 7399845 846369 436153 274288 61566 3149
Hong Kong 2016 7435925 895292 444369 282147 65557 3558
Hong Kong 2017 7461508 938141 461974 290646 69547 3953
Hong Kong 2018 7481563 978041 486589 299029 74055 4349
Hong Kong 2019 7496121 1015669 516866 305784 78830 4723
Hong Kong 2020 7500955 1050563 552436 308962 84236 5066
Hong Kong 2021 7494580 1083745 590320 308536 90039 5407
Laos 1950 1684682 47260 15722 1978 82 1
Laos 1951 1725439 49316 16569 2005 84 1
Laos 1952 1766299 51567 17360 2030 87 0
Laos 1953 1807912 53941 18114 2092 86 0
Laos 1954 1850258 56315 18865 2233 86 0
Laos 1955 1893389 58648 19634 2440 89 0
Laos 1956 1937520 60957 20424 2694 90 0
Laos 1957 1982581 63221 21240 2994 90 0
Laos 1958 2028593 65478 22110 3300 90 0
Laos 1959 2075233 67790 23070 3566 92 0
Laos 1960 2122537 70177 24118 3788 93 0
Laos 1961 2171145 72656 25257 3984 95 0
Laos 1962 2221616 75255 26497 4160 98 0
Laos 1963 2273224 77907 27785 4325 103 0
Laos 1964 2325518 80500 29060 4509 115 0
Laos 1965 2379462 83055 30326 4719 134 0
Laos 1966 2434867 85558 31569 4946 154 0
Laos 1967 2491926 88004 32787 5191 178 0
Laos 1968 2551077 90442 34030 5461 202 0
Laos 1969 2612120 92894 35328 5753 221 0
Laos 1970 2675284 95383 36684 6060 233 0
Laos 1971 2740739 97921 38121 6392 245 0
Laos 1972 2808303 100498 39631 6743 257 0
Laos 1973 2877563 103087 41164 7098 267 0
Laos 1974 2946890 105695 42653 7438 271 0
Laos 1975 3012727 108277 44062 7744 265 0
Laos 1976 3072020 110725 45343 8009 254 0
Laos 1977 3125747 113074 46505 8239 242 0
Laos 1978 3177947 115392 47634 8477 237 0
Laos 1979 3233708 117711 48829 8765 239 0
Laos 1980 3297520 120128 50177 9120 253 0
Laos 1981 3370998 122660 51682 9547 282 0
Laos 1982 3453694 125253 53300 10040 319 0
Laos 1983 3543868 127885 55018 10565 360 0
Laos 1984 3639964 130576 56797 11089 401 0
Laos 1985 3741609 133328 58629 11608 448 0
Laos 1986 3848392 136143 60510 12121 493 0
Laos 1987 3959701 139011 62437 12620 533 0
Laos 1988 4074966 141881 64375 13115 570 1
Laos 1989 4193540 144666 66302 13632 612 1
Laos 1990 4314442 147318 68194 14171 650 1
Laos 1991 4437233 149870 70064 14729 681 1
Laos 1992 4561117 152323 71906 15311 712 2
Laos 1993 4685293 154709 73720 15906 742 1
Laos 1994 4807956 157080 75525 16498 770 0
Laos 1995 4927432 159478 77321 17086 792 0
Laos 1996 5043920 161975 79132 17675 815 1
Laos 1997 5150539 164800 81636 18848 1010 1
Laos 1998 5246922 167803 84680 20663 1432 1
Laos 1999 5340060 170625 87390 22580 1976 1
Laos 2000 5430862 173328 89758 24591 2688 1
Laos 2001 5519714 176086 91820 26673 3514 82
Laos 2002 5606103 178914 93654 28754 4428 227
Laos 2003 5689072 181786 95319 30737 5466 356
Laos 2004 5768170 184688 96812 32579 6656 480
Laos 2005 5852969 188034 98683 33568 6845 533
Laos 2006 5946597 192017 101149 33823 5971 476
Laos 2007 6041355 196365 103720 34330 5365 371
Laos 2008 6135863 201187 106204 35180 5162 270
Laos 2009 6229933 206572 108592 36351 5341 194
Laos 2010 6323425 212517 110951 37861 5915 142
Laos 2011 6416331 219100 113245 39618 6838 112
Laos 2012 6508806 226527 115362 41527 8031 116
Laos 2013 6600736 234886 117300 43478 9412 190
Laos 2014 6691467 244238 119146 45373 10915 388
Laos 2015 6787420 254801 120812 45264 10440 550
Laos 2016 6891366 266520 122679 43443 8330 536
Laos 2017 6997925 279100 125185 42073 6882 445
Laos 2018 7105008 292409 128299 41040 5851 342
Laos 2019 7212058 306409 132142 40348 5145 254
Laos 2020 7319397 320848 136630 40019 4681 189
Laos 2021 7425055 335202 141376 39800 4318 138
  • Dùng lệnh filter để thực hiện thao tác lọc ra những khảo sát của những nước được chọn, sau khi thực hiện lệnh filter ta nhận được bộ dữ liệu chỉ gồm các nước: Chad, Chile,Hong Kong,Laos, Canada.
  • Sau đó dùng câu lệnh select để hiện thị những biến được chọn.Thực hiện lệch select ta nhận được bộ dữ liệu chỉ hiển thị những cột C,Y,P,P6069,P7079,P8089,P9099,PO100 như bảng trên.

1.3.2.2 2.2 Tìm hiểu dữ liệu.

Để hiểu rõ hơn về bộ dữ liệu đã chọn ở trên ta sử dụng lệnh Skim(), ý nghĩa của các cột bên dưới như sau:

  • n_missing: số ô dữ liệu bị miss(trống)

  • complete_rate: tỷ lệ ô có dữ liệu

  • mean: trung bình

  • sd: độ lệch chuẩn

  • p0: giá trị nhỏ nhất

  • p25: Phân vị thứ nhất

  • p50: Phân vị thứ hai cũng chính là trung vị

  • p75: phân vị thứ ba

  • p100: giá trị lớn nhất

  • hist: biểu đồ Histogram

library(skimr)
skim(m)
Data summary
Name m
Number of rows 360
Number of columns 8
_______________________
Column type frequency:
character 1
numeric 7
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
C 0 1 4 9 0 5 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
Y 0 1 1985.50 20.81 1950 1967.75 1985.5 2003.25 2021 ▇▇▇▇▇
P 0 1 10999483.36 9108013.67 1684682 4224452.00 7151924.0 15626609.25 38155012 ▇▂▂▁▁
P6069 0 1 734527.34 930273.57 43653 160327.75 318483.0 970548.75 4828379 ▇▂▁▁▁
P7079 0 1 430738.93 591494.86 15722 73509.75 136091.0 582706.25 3125203 ▇▂▁▁▁
P8089 0 1 171718.89 278909.59 1978 15332.00 34882.0 219005.75 1365331 ▇▁▁▁▁
P9099 0 1 28482.48 57463.28 82 552.75 2412.5 26301.75 334944 ▇▁▁▁▁
PO100 0 1 822.77 1759.60 0 1.00 36.0 558.50 11496 ▇▁▁▁▁

1.3.3 3.Mã hóa dữ liệu

  • Mục tiêu phân tích là cơ cấu dân số ở độ tuổi trung niên và cao niên của Canada so với các nước khác.
  • Để tập trung quan sát số liệu của nước Canada hơn, chúng ta sẽ phân loại các nước thành hai đối tượng là Canada và không phải Canada.Ở đây chúng ta sẽ mã hóa dự liệu ở cột C bằng cách tạo ra một cột Phanloai bằng lệnh ifelse().
  • Bên cạnh đó, chúng ta sẽ mã hóa các cột P để dễ quan sát hơn. Sử dụng lên case_when() để tạo ra một cột tên SL với điều kiện:P <3000000: ít; 3000000<=P=>10000000:Vừa ; P>10000000:Nhiều.
m$Phanloai <- ifelse(m$C == 'Canada','Canada','not Canada')
m$SL <- case_when(m$P<7000000 ~'ít',m$P >=7000000 ~ 'Nhiều' )
table <- knitr::kable(m, format = "markdown")
table
C Y P P6069 P7079 P8089 P9099 PO100 Phanloai SL
Canada 1950 13743068 919416 487364 139843 12627 189 Canada Nhiều
Canada 1951 14085723 938199 506204 144306 13262 188 Canada Nhiều
Canada 1952 14485746 950593 526647 149036 13788 190 Canada Nhiều
Canada 1953 14901533 960241 547140 154836 14415 200 Canada Nhiều
Canada 1954 15323199 970455 566376 161209 15098 216 Canada Nhiều
Canada 1955 15733926 980453 583556 168848 15840 219 Canada Nhiều
Canada 1956 16167046 990581 600164 176710 16521 219 Canada Nhiều
Canada 1957 16650052 1001342 617035 184384 17248 226 Canada Nhiều
Canada 1958 17113392 1014715 633828 192107 18041 242 Canada Nhiều
Canada 1959 17524910 1032469 649967 199762 18743 258 Canada Nhiều
Canada 1960 17909358 1052217 664298 208817 19748 272 Canada Nhiều
Canada 1961 18273690 1072305 676374 218727 20748 294 Canada Nhiều
Canada 1962 18622354 1092873 686066 228143 21676 319 Canada Nhiều
Canada 1963 18971014 1114737 694615 237222 22684 346 Canada Nhiều
Canada 1964 19326326 1139134 704118 246810 23846 376 Canada Nhiều
Canada 1965 19688808 1167044 715671 257044 25350 399 Canada Nhiều
Canada 1966 20055242 1198325 728459 266296 26719 412 Canada Nhiều
Canada 1967 20408046 1232370 740379 274908 28255 437 Canada Nhiều
Canada 1968 20731928 1269861 750876 284033 29739 461 Canada Nhiều
Canada 1969 21033938 1310894 761145 293410 31073 481 Canada Nhiều
Canada 1970 21434580 1359250 774372 301482 33266 510 Canada Nhiều
Canada 1971 21888686 1410788 790866 308484 35714 540 Canada Nhiều
Canada 1972 22222228 1457916 808913 315017 37895 588 Canada Nhiều
Canada 1973 22502026 1504038 829676 321262 40023 640 Canada Nhiều
Canada 1974 22812430 1551945 853236 326990 42137 684 Canada Nhiều
Canada 1975 23136250 1598886 878699 333189 44598 748 Canada Nhiều
Canada 1976 23442118 1640480 905859 340569 46937 820 Canada Nhiều
Canada 1977 23715310 1675458 935425 348137 49350 886 Canada Nhiều
Canada 1978 23962686 1705437 967726 356408 52377 969 Canada Nhiều
Canada 1979 24219116 1739346 1001726 365163 55658 1054 Canada Nhiều
Canada 1980 24511512 1784802 1037000 376320 58431 1170 Canada Nhiều
Canada 1981 24815780 1837691 1073610 388501 61130 1327 Canada Nhiều
Canada 1982 25101514 1889789 1111063 400522 63952 1500 Canada Nhiều
Canada 1983 25360732 1936149 1149966 415061 66608 1682 Canada Nhiều
Canada 1984 25602080 1977848 1190787 431139 69381 1840 Canada Nhiều
Canada 1985 25843920 2019565 1230358 447621 71939 1988 Canada Nhiều
Canada 1986 26116076 2066311 1265970 463414 74262 2113 Canada Nhiều
Canada 1987 26436886 2118686 1298159 480280 76582 2230 Canada Nhiều
Canada 1988 26815068 2171911 1328177 498978 78954 2361 Canada Nhiều
Canada 1989 27244408 2218486 1363350 518095 81341 2489 Canada Nhiều
Canada 1990 27657206 2252571 1408458 538548 84407 2623 Canada Nhiều
Canada 1991 28015762 2275519 1457473 559609 87642 2758 Canada Nhiều
Canada 1992 28347644 2292322 1503957 582381 91090 2877 Canada Nhiều
Canada 1993 28668168 2304928 1544905 606426 95286 2961 Canada Nhiều
Canada 1994 28981190 2313291 1581431 631360 99375 3002 Canada Nhiều
Canada 1995 29289430 2320604 1617522 655500 103350 3049 Canada Nhiều
Canada 1996 29593856 2329929 1656186 675557 107032 3129 Canada Nhiều
Canada 1997 29882752 2341618 1697920 692093 110783 3196 Canada Nhiều
Canada 1998 30144816 2356995 1740105 707461 115037 3240 Canada Nhiều
Canada 1999 30399776 2376154 1777964 724868 119208 3304 Canada Nhiều
Canada 2000 30683316 2399925 1809798 751554 124025 3385 Canada Nhiều
Canada 2001 31002768 2434368 1837420 787376 129461 3445 Canada Nhiều
Canada 2002 31322400 2485236 1861486 822165 135450 3524 Canada Nhiều
Canada 2003 31619456 2554937 1880718 853888 142455 3652 Canada Nhiều
Canada 2004 31911670 2638427 1894910 885082 150212 3788 Canada Nhiều
Canada 2005 32215914 2732136 1908258 917454 157859 3953 Canada Nhiều
Canada 2006 32531864 2850861 1923924 950775 164696 4143 Canada Nhiều
Canada 2007 32862458 2998642 1942178 983844 170991 4345 Canada Nhiều
Canada 2008 33218542 3152241 1965570 1016291 177232 4652 Canada Nhiều
Canada 2009 33593920 3299668 1995272 1047239 184808 5019 Canada Nhiều
Canada 2010 33963416 3443212 2030737 1077486 196506 5383 Canada Nhiều
Canada 2011 34323536 3581203 2072800 1107416 211608 5771 Canada Nhiều
Canada 2012 34691876 3715948 2124503 1135295 226486 6226 Canada Nhiều
Canada 2013 35063696 3853271 2190028 1160294 240115 6725 Canada Nhiều
Canada 2014 35404616 3996759 2264940 1181097 253249 7250 Canada Nhiều
Canada 2015 35732120 4142426 2346242 1200367 266480 7755 Canada Nhiều
Canada 2016 36113532 4273916 2451849 1221861 279588 8216 Canada Nhiều
Canada 2017 36554344 4384975 2588393 1245349 291717 8598 Canada Nhiều
Canada 2018 37035260 4492140 2732096 1270538 302882 8945 Canada Nhiều
Canada 2019 37522584 4605998 2869190 1298916 313968 9474 Canada Nhiều
Canada 2020 37888704 4719796 2999704 1329315 324408 10367 Canada Nhiều
Canada 2021 38155012 4828379 3125203 1365331 334944 11496 Canada Nhiều
Chad 1950 2512693 114293 50709 8022 305 2 not Canada ít
Chad 1951 2560170 114584 51570 8416 303 2 not Canada ít
Chad 1952 2607682 114632 52385 8816 312 2 not Canada ít
Chad 1953 2656088 114740 53170 9211 322 2 not Canada ít
Chad 1954 2705625 115280 53917 9594 327 1 not Canada ít
Chad 1955 2756173 116360 54583 9944 330 1 not Canada ít
Chad 1956 2807904 117942 55215 10263 333 1 not Canada ít
Chad 1957 2860904 120007 55863 10555 334 1 not Canada ít
Chad 1958 2915296 122432 56476 10822 341 1 not Canada ít
Chad 1959 2971257 125012 56966 11075 357 1 not Canada ít
Chad 1960 3028688 127598 57333 11313 383 1 not Canada ít
Chad 1961 3087662 130234 57564 11549 409 1 not Canada ít
Chad 1962 3148248 132908 57678 11790 440 1 not Canada ít
Chad 1963 3210298 135512 57845 12021 468 1 not Canada ít
Chad 1964 3273422 137938 58282 12234 488 1 not Canada ít
Chad 1965 3336341 140085 58996 12406 503 1 not Canada ít
Chad 1966 3398673 141945 59978 12561 506 1 not Canada ít
Chad 1967 3461675 143576 61264 12726 515 0 not Canada ít
Chad 1968 3526775 145124 62749 12887 518 0 not Canada ít
Chad 1969 3595154 146754 64277 13021 527 0 not Canada ít
Chad 1970 3667400 148533 65741 13124 538 0 not Canada ít
Chad 1971 3742543 150352 67107 13182 549 0 not Canada ít
Chad 1972 3824404 152307 68434 13218 564 0 not Canada ít
Chad 1973 3912914 154445 69744 13299 574 0 not Canada ít
Chad 1974 4000559 156571 70909 13446 578 0 not Canada ít
Chad 1975 4084114 158605 71932 13666 573 0 not Canada ít
Chad 1976 4163056 160611 72879 13976 559 0 not Canada ít
Chad 1977 4238555 162623 73794 14383 545 0 not Canada ít
Chad 1978 4313485 164661 74703 14833 537 0 not Canada ít
Chad 1979 4402949 167011 75794 15339 554 0 not Canada ít
Chad 1980 4408239 167832 76222 15386 460 0 not Canada ít
Chad 1981 4409228 168628 76742 15454 370 0 not Canada ít
Chad 1982 4622833 173328 79225 16582 781 30 not Canada ít
Chad 1983 4859174 178293 81847 17633 1094 63 not Canada ít
Chad 1984 4920557 179852 82886 17709 785 50 not Canada ít
Chad 1985 4967592 180973 83850 17793 581 26 not Canada ít
Chad 1986 5118163 183791 85762 18432 739 19 not Canada ít
Chad 1987 5300856 186761 87816 19153 928 22 not Canada ít
Chad 1988 5483044 189363 89726 19765 1040 25 not Canada ít
Chad 1989 5670621 191914 91653 20324 1106 24 not Canada ít
Chad 1990 5827070 193635 93208 20691 1056 17 not Canada ít
Chad 1991 6042433 196197 95181 21313 1194 23 not Canada ít
Chad 1992 6302934 199343 97400 22038 1384 36 not Canada ít
Chad 1993 6448279 200144 98427 22084 1149 28 not Canada ít
Chad 1994 6593004 200858 99359 22172 983 14 not Canada ít
Chad 1995 6888862 204261 101509 23021 1314 28 not Canada ít
Chad 1996 7200292 207864 103617 23838 1549 47 not Canada Nhiều
Chad 1997 7450883 210395 105043 24287 1491 43 not Canada Nhiều
Chad 1998 7709112 213000 106376 24733 1470 35 not Canada Nhiều
Chad 1999 7981888 215606 107672 25200 1487 29 not Canada Nhiều
Chad 2000 8259144 218005 108918 25653 1500 25 not Canada Nhiều
Chad 2001 8538806 220243 110105 26084 1497 21 not Canada Nhiều
Chad 2002 8838371 222750 111391 26576 1542 19 not Canada Nhiều
Chad 2003 9196374 226337 113103 27284 1743 32 not Canada Nhiều
Chad 2004 9613509 231015 115188 28136 2025 61 not Canada Nhiều
Chad 2005 10005013 235198 116849 28675 2087 77 not Canada Nhiều
Chad 2006 10365620 238735 118156 28951 2005 73 not Canada Nhiều
Chad 2007 10722738 241961 119476 29158 1916 60 not Canada Nhiều
Chad 2008 11098672 245428 120946 29416 1890 49 not Canada Nhiều
Chad 2009 11496138 248186 122442 29717 1913 43 not Canada Nhiều
Chad 2010 11894734 253231 123768 29976 1895 37 not Canada Nhiều
Chad 2011 12317729 262357 125252 30341 1932 35 not Canada Nhiều
Chad 2012 12754912 272165 126904 30770 1972 36 not Canada Nhiều
Chad 2013 13216769 282870 128844 31289 2046 39 not Canada Nhiều
Chad 2014 13697128 294410 131051 31844 2128 43 not Canada Nhiều
Chad 2015 14140277 305904 133069 32199 2038 34 not Canada Nhiều
Chad 2016 14592587 318388 135281 32629 1996 24 not Canada Nhiều
Chad 2017 15085893 332615 137782 33289 2082 24 not Canada Nhiều
Chad 2018 15604213 348292 140503 34044 2191 31 not Canada Nhiều
Chad 2019 16126868 365853 142587 34751 2242 35 not Canada Nhiều
Chad 2020 16644707 381882 145490 34993 2202 32 not Canada Nhiều
Chad 2021 17179744 395527 149895 34771 2159 29 not Canada Nhiều
Chile 1950 6623650 218107 94188 29053 6833 964 not Canada ít
Chile 1951 6748677 225480 93056 24218 2983 434 not Canada ít
Chile 1952 6882965 233670 92932 21255 1517 189 not Canada ít
Chile 1953 7024139 242433 93799 19458 897 77 not Canada Nhiều
Chile 1954 7171411 251499 95685 18426 610 28 not Canada Nhiều
Chile 1955 7323198 260454 98338 17818 457 8 not Canada Nhiều
Chile 1956 7480643 269288 101876 17618 367 1 not Canada Nhiều
Chile 1957 7641939 277747 105983 17657 312 0 not Canada Nhiều
Chile 1958 7806577 286338 110922 18022 280 0 not Canada Nhiều
Chile 1959 7973551 294888 116272 18522 263 0 not Canada Nhiều
Chile 1960 8141826 303033 121943 19104 256 0 not Canada Nhiều
Chile 1961 8313539 310997 128505 19996 262 0 not Canada Nhiều
Chile 1962 8486124 318578 135552 21031 274 0 not Canada Nhiều
Chile 1963 8656007 325511 142272 21991 283 0 not Canada Nhiều
Chile 1964 8825044 332724 148691 23062 292 0 not Canada Nhiều
Chile 1965 8994942 341105 155304 24529 310 0 not Canada Nhiều
Chile 1966 9161650 350210 161397 26109 329 0 not Canada Nhiều
Chile 1967 9326270 360048 167171 27868 352 0 not Canada Nhiều
Chile 1968 9491502 370418 172717 29761 380 0 not Canada Nhiều
Chile 1969 9656302 381114 177387 31509 402 0 not Canada Nhiều
Chile 1970 9820483 392292 181715 33250 429 0 not Canada Nhiều
Chile 1971 9984377 404282 186094 35101 460 0 not Canada Nhiều
Chile 1972 10145762 416740 190170 36865 491 0 not Canada Nhiều
Chile 1973 10307850 429914 194827 38819 536 0 not Canada Nhiều
Chile 1974 10472748 443429 200482 40971 597 0 not Canada Nhiều
Chile 1975 10639534 456533 207429 43363 688 0 not Canada Nhiều
Chile 1976 10804876 468725 214775 45544 782 0 not Canada Nhiều
Chile 1977 10969865 480483 222667 47662 886 0 not Canada Nhiều
Chile 1978 11137754 492617 231926 50174 1024 0 not Canada Nhiều
Chile 1979 11304332 505291 241179 52362 1156 0 not Canada Nhiều
Chile 1980 11469825 519661 250368 54401 1284 0 not Canada Nhiều
Chile 1981 11637615 535908 260551 56909 1449 0 not Canada Nhiều
Chile 1982 11807411 553191 271666 59828 1651 0 not Canada Nhiều
Chile 1983 11976519 571885 282429 62724 1850 0 not Canada Nhiều
Chile 1984 12147764 593985 292505 65784 2052 0 not Canada Nhiều
Chile 1985 12326395 620310 302477 69424 2280 0 not Canada Nhiều
Chile 1986 12514509 651093 312670 73699 2539 0 not Canada Nhiều
Chile 1987 12712786 686242 323348 78632 2848 0 not Canada Nhiều
Chile 1988 12918395 723171 334514 83938 3194 0 not Canada Nhiều
Chile 1989 13128625 757848 346802 89573 3576 0 not Canada Nhiều
Chile 1990 13342876 787910 360637 95633 4049 1 not Canada Nhiều
Chile 1991 13561946 814407 375947 102179 4641 1 not Canada Nhiều
Chile 1992 13782300 838305 392757 109134 5293 1 not Canada Nhiều
Chile 1993 13998387 858772 411366 115887 5893 2 not Canada Nhiều
Chile 1994 14210680 875361 433563 122590 6504 4 not Canada Nhiều
Chile 1995 14416799 888339 459142 129465 7212 5 not Canada Nhiều
Chile 1996 14615489 897585 487518 136380 7997 6 not Canada Nhiều
Chile 1997 14809289 903836 519269 143932 8968 9 not Canada Nhiều
Chile 1998 14996745 908985 552038 151978 9955 11 not Canada Nhiều
Chile 1999 15176418 915628 582423 160529 10867 13 not Canada Nhiều
Chile 2000 15351803 925269 609738 171534 12234 18 not Canada Nhiều
Chile 2001 15523973 937411 634137 184839 14061 24 not Canada Nhiều
Chile 2002 15693798 952461 655384 199505 16322 32 not Canada Nhiều
Chile 2003 15859114 970830 673562 215496 18716 41 not Canada Nhiều
Chile 2004 16017966 992265 688490 233201 21127 55 not Canada Nhiều
Chile 2005 16175315 1016499 700832 252992 23925 78 not Canada Nhiều
Chile 2006 16334573 1044700 710861 274710 27177 112 not Canada Nhiều
Chile 2007 16495543 1078617 718022 297137 30640 162 not Canada Nhiều
Chile 2008 16661463 1119268 724408 319530 34462 231 not Canada Nhiều
Chile 2009 16833450 1164764 732771 340854 39039 326 not Canada Nhiều
Chile 2010 17004166 1214121 742618 358333 43897 440 not Canada Nhiều
Chile 2011 17173568 1267686 754382 373047 49161 584 not Canada Nhiều
Chile 2012 17341770 1323520 768596 385508 54651 758 not Canada Nhiều
Chile 2013 17509926 1380844 785058 396072 60540 966 not Canada Nhiều
Chile 2014 17687108 1439352 804335 405993 67292 1210 not Canada Nhiều
Chile 2015 17870122 1499272 826108 415413 74594 1482 not Canada Nhiều
Chile 2016 18083880 1560766 852026 424656 82548 1798 not Canada Nhiều
Chile 2017 18368582 1622224 884581 433120 91009 2180 not Canada Nhiều
Chile 2018 18701452 1680532 924291 441035 99397 2645 not Canada Nhiều
Chile 2019 19039484 1736623 968481 449589 106925 3188 not Canada Nhiều
Chile 2020 19300318 1789193 1013943 457064 110720 3543 not Canada Nhiều
Chile 2021 19493184 1837155 1060203 463229 112669 3846 not Canada Nhiều
Hong Kong 1950 1980530 43653 24190 5153 442 8 not Canada ít
Hong Kong 1951 2075517 46067 24537 5297 427 6 not Canada ít
Hong Kong 1952 2173606 49386 24858 5486 429 4 not Canada ít
Hong Kong 1953 2275015 53577 25185 5746 444 4 not Canada ít
Hong Kong 1954 2380483 58599 25541 6089 468 4 not Canada ít
Hong Kong 1955 2490495 64374 26075 6461 498 3 not Canada ít
Hong Kong 1956 2606308 70708 26886 6806 527 3 not Canada ít
Hong Kong 1957 2728466 77344 28131 7061 554 5 not Canada ít
Hong Kong 1958 2855689 84155 30126 7178 588 6 not Canada ít
Hong Kong 1959 2985061 91194 32911 7145 629 6 not Canada ít
Hong Kong 1960 3114676 99339 36763 7038 672 7 not Canada ít
Hong Kong 1961 3231766 107427 40569 7261 714 8 not Canada ít
Hong Kong 1962 3331193 114397 43638 8038 757 10 not Canada ít
Hong Kong 1963 3424355 121038 46755 8971 807 12 not Canada ít
Hong Kong 1964 3514767 127991 49974 9968 867 13 not Canada ít
Hong Kong 1965 3602032 135636 53497 11154 944 14 not Canada ít
Hong Kong 1966 3684669 143758 57358 12456 1047 15 not Canada ít
Hong Kong 1967 3762176 152387 61559 13880 1186 22 not Canada ít
Hong Kong 1968 3834048 161515 66330 15492 1380 28 not Canada ít
Hong Kong 1969 3898385 171273 71813 17234 1637 28 not Canada ít
Hong Kong 1970 3955076 181766 77837 19086 1946 27 not Canada ít
Hong Kong 1971 4028605 192939 83490 20830 2160 30 not Canada ít
Hong Kong 1972 4128332 204855 88442 22362 2239 38 not Canada ít
Hong Kong 1973 4234756 217605 93227 23836 2330 49 not Canada ít
Hong Kong 1974 4342778 230806 98177 25333 2495 61 not Canada ít
Hong Kong 1975 4451227 244392 103681 26972 2747 73 not Canada ít
Hong Kong 1976 4558871 258140 109817 28794 3065 83 not Canada ít
Hong Kong 1977 4664905 271518 116438 30675 3409 96 not Canada ít
Hong Kong 1978 4768799 284176 123476 32516 3782 102 not Canada ít
Hong Kong 1979 4872751 296631 130920 34350 4159 93 not Canada ít
Hong Kong 1980 4978551 310225 140234 37046 4512 82 not Canada ít
Hong Kong 1981 5077744 322407 150976 40487 4790 79 not Canada ít
Hong Kong 1982 5166910 332211 160508 43734 5063 97 not Canada ít
Hong Kong 1983 5252129 341782 168591 46740 5466 122 not Canada ít
Hong Kong 1984 5333577 352087 176046 49503 6031 133 not Canada ít
Hong Kong 1985 5411686 363959 184461 52477 6684 133 not Canada ít
Hong Kong 1986 5492797 375718 195079 56488 7185 137 not Canada ít
Hong Kong 1987 5578536 387204 205372 61292 7560 156 not Canada ít
Hong Kong 1988 5665618 399439 213285 66223 8148 185 not Canada ít
Hong Kong 1989 5752711 412127 219874 71673 9104 217 not Canada ít
Hong Kong 1990 5838573 427269 225728 78258 10526 250 not Canada ít
Hong Kong 1991 5923453 442887 231101 85714 12530 278 not Canada ít
Hong Kong 1992 6007690 455947 237120 92854 14930 362 not Canada ít
Hong Kong 1993 6089809 470096 243859 99143 17615 492 not Canada ít
Hong Kong 1994 6168709 482466 251691 104369 20697 622 not Canada ít
Hong Kong 1995 6243859 490283 262895 108021 24176 807 not Canada ít
Hong Kong 1996 6333446 497714 279259 108935 26200 1027 not Canada ít
Hong Kong 1997 6441245 505271 298482 108323 25987 1215 not Canada ít
Hong Kong 1998 6546051 511234 317102 109174 25148 1331 not Canada ít
Hong Kong 1999 6641959 514131 334022 112981 24153 1349 not Canada ít
Hong Kong 2000 6731195 512341 350361 120570 22927 1274 not Canada ít
Hong Kong 2001 6801538 506561 365115 130449 22551 1183 not Canada ít
Hong Kong 2002 6848847 499206 377794 140310 23487 1167 not Canada ít
Hong Kong 2003 6886463 491673 391236 149792 24889 1201 not Canada ít
Hong Kong 2004 6915997 487834 403198 159155 26607 1220 not Canada ít
Hong Kong 2005 6936872 489017 411958 168493 28741 1236 not Canada ít
Hong Kong 2006 6960600 495859 420505 178237 31227 1291 not Canada ít
Hong Kong 2007 7001452 512325 430158 188429 33707 1417 not Canada Nhiều
Hong Kong 2008 7050673 537482 439478 198347 36229 1567 not Canada Nhiều
Hong Kong 2009 7094600 569781 446376 208378 39095 1679 not Canada Nhiều
Hong Kong 2010 7132437 608115 449170 219842 42294 1791 not Canada Nhiều
Hong Kong 2011 7175370 650180 447607 232110 45707 1948 not Canada Nhiều
Hong Kong 2012 7234062 696160 442422 243632 49360 2184 not Canada Nhiều
Hong Kong 2013 7296820 744744 436740 255024 53269 2473 not Canada Nhiều
Hong Kong 2014 7352180 794684 434372 265791 57320 2777 not Canada Nhiều
Hong Kong 2015 7399845 846369 436153 274288 61566 3149 not Canada Nhiều
Hong Kong 2016 7435925 895292 444369 282147 65557 3558 not Canada Nhiều
Hong Kong 2017 7461508 938141 461974 290646 69547 3953 not Canada Nhiều
Hong Kong 2018 7481563 978041 486589 299029 74055 4349 not Canada Nhiều
Hong Kong 2019 7496121 1015669 516866 305784 78830 4723 not Canada Nhiều
Hong Kong 2020 7500955 1050563 552436 308962 84236 5066 not Canada Nhiều
Hong Kong 2021 7494580 1083745 590320 308536 90039 5407 not Canada Nhiều
Laos 1950 1684682 47260 15722 1978 82 1 not Canada ít
Laos 1951 1725439 49316 16569 2005 84 1 not Canada ít
Laos 1952 1766299 51567 17360 2030 87 0 not Canada ít
Laos 1953 1807912 53941 18114 2092 86 0 not Canada ít
Laos 1954 1850258 56315 18865 2233 86 0 not Canada ít
Laos 1955 1893389 58648 19634 2440 89 0 not Canada ít
Laos 1956 1937520 60957 20424 2694 90 0 not Canada ít
Laos 1957 1982581 63221 21240 2994 90 0 not Canada ít
Laos 1958 2028593 65478 22110 3300 90 0 not Canada ít
Laos 1959 2075233 67790 23070 3566 92 0 not Canada ít
Laos 1960 2122537 70177 24118 3788 93 0 not Canada ít
Laos 1961 2171145 72656 25257 3984 95 0 not Canada ít
Laos 1962 2221616 75255 26497 4160 98 0 not Canada ít
Laos 1963 2273224 77907 27785 4325 103 0 not Canada ít
Laos 1964 2325518 80500 29060 4509 115 0 not Canada ít
Laos 1965 2379462 83055 30326 4719 134 0 not Canada ít
Laos 1966 2434867 85558 31569 4946 154 0 not Canada ít
Laos 1967 2491926 88004 32787 5191 178 0 not Canada ít
Laos 1968 2551077 90442 34030 5461 202 0 not Canada ít
Laos 1969 2612120 92894 35328 5753 221 0 not Canada ít
Laos 1970 2675284 95383 36684 6060 233 0 not Canada ít
Laos 1971 2740739 97921 38121 6392 245 0 not Canada ít
Laos 1972 2808303 100498 39631 6743 257 0 not Canada ít
Laos 1973 2877563 103087 41164 7098 267 0 not Canada ít
Laos 1974 2946890 105695 42653 7438 271 0 not Canada ít
Laos 1975 3012727 108277 44062 7744 265 0 not Canada ít
Laos 1976 3072020 110725 45343 8009 254 0 not Canada ít
Laos 1977 3125747 113074 46505 8239 242 0 not Canada ít
Laos 1978 3177947 115392 47634 8477 237 0 not Canada ít
Laos 1979 3233708 117711 48829 8765 239 0 not Canada ít
Laos 1980 3297520 120128 50177 9120 253 0 not Canada ít
Laos 1981 3370998 122660 51682 9547 282 0 not Canada ít
Laos 1982 3453694 125253 53300 10040 319 0 not Canada ít
Laos 1983 3543868 127885 55018 10565 360 0 not Canada ít
Laos 1984 3639964 130576 56797 11089 401 0 not Canada ít
Laos 1985 3741609 133328 58629 11608 448 0 not Canada ít
Laos 1986 3848392 136143 60510 12121 493 0 not Canada ít
Laos 1987 3959701 139011 62437 12620 533 0 not Canada ít
Laos 1988 4074966 141881 64375 13115 570 1 not Canada ít
Laos 1989 4193540 144666 66302 13632 612 1 not Canada ít
Laos 1990 4314442 147318 68194 14171 650 1 not Canada ít
Laos 1991 4437233 149870 70064 14729 681 1 not Canada ít
Laos 1992 4561117 152323 71906 15311 712 2 not Canada ít
Laos 1993 4685293 154709 73720 15906 742 1 not Canada ít
Laos 1994 4807956 157080 75525 16498 770 0 not Canada ít
Laos 1995 4927432 159478 77321 17086 792 0 not Canada ít
Laos 1996 5043920 161975 79132 17675 815 1 not Canada ít
Laos 1997 5150539 164800 81636 18848 1010 1 not Canada ít
Laos 1998 5246922 167803 84680 20663 1432 1 not Canada ít
Laos 1999 5340060 170625 87390 22580 1976 1 not Canada ít
Laos 2000 5430862 173328 89758 24591 2688 1 not Canada ít
Laos 2001 5519714 176086 91820 26673 3514 82 not Canada ít
Laos 2002 5606103 178914 93654 28754 4428 227 not Canada ít
Laos 2003 5689072 181786 95319 30737 5466 356 not Canada ít
Laos 2004 5768170 184688 96812 32579 6656 480 not Canada ít
Laos 2005 5852969 188034 98683 33568 6845 533 not Canada ít
Laos 2006 5946597 192017 101149 33823 5971 476 not Canada ít
Laos 2007 6041355 196365 103720 34330 5365 371 not Canada ít
Laos 2008 6135863 201187 106204 35180 5162 270 not Canada ít
Laos 2009 6229933 206572 108592 36351 5341 194 not Canada ít
Laos 2010 6323425 212517 110951 37861 5915 142 not Canada ít
Laos 2011 6416331 219100 113245 39618 6838 112 not Canada ít
Laos 2012 6508806 226527 115362 41527 8031 116 not Canada ít
Laos 2013 6600736 234886 117300 43478 9412 190 not Canada ít
Laos 2014 6691467 244238 119146 45373 10915 388 not Canada ít
Laos 2015 6787420 254801 120812 45264 10440 550 not Canada ít
Laos 2016 6891366 266520 122679 43443 8330 536 not Canada ít
Laos 2017 6997925 279100 125185 42073 6882 445 not Canada ít
Laos 2018 7105008 292409 128299 41040 5851 342 not Canada Nhiều
Laos 2019 7212058 306409 132142 40348 5145 254 not Canada Nhiều
Laos 2020 7319397 320848 136630 40019 4681 189 not Canada Nhiều
Laos 2021 7425055 335202 141376 39800 4318 138 not Canada Nhiều
  • Sau khi thực hiện cả hai câu lệnh ifelse() và case_when(),[hai câu lệnh trên có tác dụng phân loại, mã hóa dữ liệu theo điều kiện đã đặt ra], ta thu được bảng m có thêm hai cột là Phanloai và SL. Ở cột Phanloai chứa dữ liệu Canada và not Canada, còn cột SL thì có dữ liệu nhiều và ít theo điều kiện đã nêu trên.

1.3.4 4.Phân tích dữ liệu bằng bảng tần số

  • Bảng tần số là bảng thống kê cho biết số lần xuất hiện của những giá trị trong một biến cụ thể. Đối tượng cụ thể được thực hiện ở bảng dưới đây là P7079.
  • Bảng tần số gồm 2 thành phần:stem:thân và leaf:nhánh. Phần nhánh thường là những con số hàng trăm hàng chục. Ở bảng cụ thể bên dưới là hàng ngàn.
  • Để lập bảng thống kê cho m ta sử dụng câu lệnh stem().
stem(m$P7079)
## 
##   The decimal point is 5 digit(s) to the right of the |
## 
##    0 | 22222222222222333333333333333444444444455555555555555556666666666666+124
##    2 | 0011112233344455667889001223355678899
##    4 | 0112333444445556699912235557889
##    6 | 012335667899900122233445567799
##    8 | 0133558812477
##   10 | 01467159
##   12 | 37036
##   14 | 16048
##   16 | 26048
##   18 | 146891247
##   20 | 03729
##   22 | 65
##   24 | 59
##   26 | 3
##   28 | 7
##   30 | 03
  • Dấu thập phân là 5 chữ số bên phải dấu gạch.

1.3.5 5.Phân tích dữ liệu bằng cách so sánh và vẽ đồ thị.

1.3.5.1 5.1 So Sánh.

  • Sử dụng các đặc trưng đo lường:
  • Mean: Độ lớn trung bình dân số của các nước Chad, Chile, Hong Kong, Laos, Canada.
  • Median (Trung vị): Một đại lượng thống kê mô tả trung tâm của một tập hợp số liệu dữ liệu.Ở đây chúng ta sẽ tính được trung vị của cột P theo dữ liệu cột C.
  • Var: Phương sai (độ dao động), phản ánh sự phân tán của các số liệu so với số trung bình của nó.
  • Một số đặc trưng khác:
  • Summary(): cho biết giá trị lớn nhất trong dữ liệu, giá trị nhỏ nhất hoặc giá trị trung trị trung bình và trung vị của bộ dữ liệu.
  • Length(): cho biết độ dài của bộ dữ liệu.
    +Quantile(): cung cấp tứ phân vị của bộ dữ liệu.

1.3.5.2 a.Quan sát dân số có độ tuổi từ 70 đến 79 của Canada và Chad năm 2000 đến 2010.

  • Đầu tiên, lọc ra bộ dữ liệu dân số có độ tuổi từ 70 đến 79 của Canada và Chad năm 2000 đến 2010, đặt tên là jg.
    j:
library(dplyr)
library(magrittr)
j <- m %>% filter(Y >=2000 & Y<=2010 & C == 'Canada') %>% select(C,Y,P,P7079)
table <- knitr::kable(j,format = "markdown")
table
C Y P P7079
Canada 2000 30683316 1809798
Canada 2001 31002768 1837420
Canada 2002 31322400 1861486
Canada 2003 31619456 1880718
Canada 2004 31911670 1894910
Canada 2005 32215914 1908258
Canada 2006 32531864 1923924
Canada 2007 32862458 1942178
Canada 2008 33218542 1965570
Canada 2009 33593920 1995272
Canada 2010 33963416 2030737

g:

g <- m %>% filter(Y >=2000 & Y<=2010 & C == 'Chad') %>% select(C,Y,P,P7079)
table <- knitr::kable(g,format = "markdown")
table
C Y P P7079
Chad 2000 8259144 108918
Chad 2001 8538806 110105
Chad 2002 8838371 111391
Chad 2003 9196374 113103
Chad 2004 9613509 115188
Chad 2005 10005013 116849
Chad 2006 10365620 118156
Chad 2007 10722738 119476
Chad 2008 11098672 120946
Chad 2009 11496138 122442
Chad 2010 11894734 123768
  • Sử dụng các đặc trưng để quan sát.
mean(j$P7079,na.rm = T)
## [1] 1913661
mean(g$P7079,na.rm = T)
## [1] 116394.7
  • 1913661: đây là độ lớn trung bình của dân số Canada ở độ tuổi từ 70 đến 79 tuổi từ năm 2000 đến 2010.Và 116394.7 là độ lớn trung bình của bộ dân số Chad ở độ tuoir 70 đến 79 từ 2000 đến 2010. Đây là kết quả nhận được sau khi sử dụng câu lệnh mean().
median(j$P7079)
## [1] 1908258
median(g$P7079)
## [1] 116849
  • Sau khi thực hiện câu lệnh median(), ta nhận được giá trị 1908258: đây là trung vị của P7079 ở j. 116849: trung vị của P7079 ở g.
var(j$P7079)
## [1] 4476871497
var(g$P7079)
## [1] 25724249
  • 4476871497: độ phân tán của P7079 so với trung vị 1908258,25724249: độtán của P7079 ở g, giá trị nhận được khi dùng var().
summary(j$P7079)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## 1809798 1871102 1908258 1913661 1953874 2030737
  • Kết quả trên là tứ phân vị của P7079.Trong 10 năm:
  • Năm Canada có số dân số 70-79 tuổi ít nhất đạt 1809798.
  • Năm Canada có số dân số 70-79 tuổi lớn nhất đạt 2030737.
  • 25% số năm có dân số ít hơn 1871102.
  • 75% số năm có dân số ít hơn 1953874.
summary(g$P7079)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  108918  112247  116849  116395  120211  123768
  • Kết quả trên là tứ phân vị của P7079.Trong 10 năm:
  • Năm Canada có số dân số 70-79 tuổi ít nhất đạt 108918.
  • Năm Canada có số dân số 70-79 tuổi lớn nhất đạt 123768.
  • 25% số năm có dân số ít hơn 112247.
  • 75% số năm có dân số ít hơn 120211.

Kết Luận: * Từ 3 số liệu đặc trưng thu được ở trên, kết luận được: dân số ở độ tuổi 70 đến 79 ở Canada nhiều hơn so với Chad. và độ phân tán cũng lớn hơn. * Trong 10 năm số dân số lớn nhất của Canada lớn hơn Chad (2030737>123768).

1.3.5.3 b. Vẽ đồ thị.

  • Biểu đồ dân số Canada ở độ tuổi 70-79 từ năm 2000 đến 2010.
tmp <- j
ra <- vector()
ha <- vector()
for(i in 1:(200-100)) {
  ra[i]= (tmp$P[i+10000000]/tmp$P[i]-10000000)
  ha[i]= tmp$P[i+10000000] - tmp$P[i] }
dg <- data.frame(ra, ha)
dg$y <- tmp$Y[200:200]
tmp %>% ggplot(aes(x = factor(Y), y = P)) + geom_col(fill ='green') + labs(title = 'Hình 2.1: Dân số trong giai đoạn từ 2000 đến năm 2010')

  • Biểu đồ dân số Chad ở độ tuổi 70-79 từ năm 2000 đến 2010.
tmp <- g
ra <- vector()
ha <- vector()
for(i in 1:(200-100)) {
  ra[i]= (tmp$P[i+1]/tmp$P[i]-10000000)
  ha[i]= tmp$P[i+10000000] - tmp$P[i] }
dg <- data.frame(ra, ha)
dg$Y <- tmp$Y[200:200]
tmp %>% ggplot(aes(x = factor(Y), y = P)) + geom_col(fill ='blue') + labs(title = 'Hình 2.1: Dân số trong giai đoạn từ 2000 đến năm 2010')

2 Nhiệm vụ 3.2

  • Chủ đề: Tìm dữ liệu về GDP của các nước Đông Nam Á/các khu vực khác và phân tích.
    ## Mục đích nghiên cứu
  1. Nghiên cứu tình hình tốc độ tăng trưởng tổng sản phẩm quốc nội (GDP) của các quốc gia thành viên đang phát triển của ADB.
  2. Tìm hiểu tình hình GDP của Việt Nam từ năm 2016 đến 2022.

2.1 Phương pháp nghiên cứu

  • Chọn lọc dữ liệu từ ADO.2021_A1.GDP.growth.csv để nghiên cứu.
  • Sử dụng phương pháp thống kê mô tả: bảng tần số, vẽ đồ thị, so sánh.

2.2 Thực hiện nghiên cứu

2.2.1 1.Giải thích bộ dữ liệu

  • Bộ dữ liệu ADO.2021_A1.GDP.growth.csv là Tốc độ tăng trưởng tổng sản phẩm quốc nội (GDP) của các quốc gia thành viên đang phát triển của ADB. Các số liệu và dự báo được lấy từ Bản cập nhật Triển vọng Phát triển Châu Á (ADO) 2023 của ADB, phát hành vào tháng 9 năm 2023.

Lưu ý: Các nền kinh tế công nghiệp hóa mới là Hồng Kông, Trung Quốc, Hàn Quốc, Singapore và Đài Bắc, Trung Quốc. * Bộ dữ liệu gồm có 371 quan sát và 6 biến, cụ thể các biến như sau:
+ RegionalMenber: thành viên khu vực.
+ Year: năm.
+ GDP.growth: GDP tăng trưởng.
+ Unit.of.Measurement: Đơn vị đo lường.
+ Subregion: khu vực nhỏ.
+ Country.Code: mã quốc gia.

2.2.2 2.Chọn bộ dữ liệu

2.2.2.1 2.1 Chọn dữ liệu

  • Từ bộ dữ liệu ADO.2021_A1.GDP.growth.csv chọn ra các biến để khảo sát trên dữ liệu mới chọn.
    Thực hiện thao tác gán bộ dữ kiệu bằng s và đổi tên các biến để dễ dàng thực hiện thao tác hơn.
s <- read.csv("C:/Users/thanh/Downloads/ADO 2021_A1-GDP growth.csv",header = T)
  • RegionalMenber: R
  • Year: Ye
  • GDP.growth:G
  • Unit.of.Measurement:U
  • Subregion: S
  • Country.Code: CC
names(s) <- c('R','Ye','G','U','S','CC')
  • Chọn ra bộ dữ liệu e ở cột R chỉ chọn 3 nước Viet Nam,Thailand,Samoa.
  • Bộ dữ liệu e có 21 quan sát và 6 biến.
  • Từ bộ dữ liệu trên ta có thể so sánh tình hình GDP của Việt Nam so với hai nước còn lại.
library(dplyr)
library(tidyverse)
library(magrittr)
e <- s %>% filter(R %in% c('Viet Nam','Thailand','Samoa')) 
table <- knitr::kable(e, format= "markdown")
table
R Ye G U S CC
Samoa 2016 8.1 % The Pacific WSM
Samoa 2017 1.0 % The Pacific WSM
Samoa 2018 -2.1 % The Pacific WSM
Samoa 2019 3.6 % The Pacific WSM
Samoa 2020 -3.2 % The Pacific WSM
Samoa 2021 forecast -9.2 % The Pacific WSM
Samoa 2022 forecast 3.1 % The Pacific WSM
Thailand 2016 3.4 % Southeast Asia THA
Thailand 2017 4.2 % Southeast Asia THA
Thailand 2018 4.2 % Southeast Asia THA
Thailand 2019 2.3 % Southeast Asia THA
Thailand 2020 -6.1 % Southeast Asia THA
Thailand 2021 forecast 3.0 % Southeast Asia THA
Thailand 2022 forecast 4.5 % Southeast Asia THA
Viet Nam 2016 6.2 % Southeast Asia VNM
Viet Nam 2017 6.8 % Southeast Asia VNM
Viet Nam 2018 7.1 % Southeast Asia VNM
Viet Nam 2019 7.0 % Southeast Asia VNM
Viet Nam 2020 2.9 % Southeast Asia VNM
Viet Nam 2021 forecast 6.7 % Southeast Asia VNM
Viet Nam 2022 forecast 7.0 % Southeast Asia VNM

2.2.2.2 2.2 Tìm hiểu về bộ dữ liệu e.

Để tìm hiểu về bộ dữ liệu chúng ta có thể sử dụng lệnh skim(). Câu lệnh này sẽ cung cấp thông tin về bộ dữ liệu một cách tổng quát.
Dưới đây là ý nghĩa của các thông số:
* n_missing: số ô dữ liệu bị miss(trống)

  • complete_rate: tỷ lệ ô có dữ liệu

  • mean: trung bình

  • sd: độ lệch chuẩn

  • p0: giá trị nhỏ nhất

  • p25: Phân vị thứ nhất

  • p50: Phân vị thứ hai cũng chính là trung vị

  • p75: phân vị thứ ba

  • p100: giá trị lớn nhất

  • hist: biểu đồ Histogram

library(skimr)
skim(e)
Data summary
Name e
Number of rows 21
Number of columns 6
_______________________
Column type frequency:
character 5
numeric 1
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
R 0 1 5 8 0 3 0
Ye 0 1 4 13 0 7 0
U 0 1 1 1 0 1 0
S 0 1 11 14 0 2 0
CC 0 1 3 3 0 3 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
G 0 1 2.88 4.58 -9.2 2.3 3.6 6.7 8.1 ▂▁▂▇▆

2.2.3 3. Mã hóa bộ dữ liệu.

  • Để có thể tập trung phân tích và dễ so sánh tình hình GDP của Việt Nam so với hai nước còn lại. Chúng ta sẽ mã hóa cột CC thành VNMnot VNM bằng các tạo thêm cột PL thông qua ifelse().
e$PL <- ifelse(e$CC == 'VNM', 'VNM','not VNM')
table <- knitr::kable(e, format = "markdown")
table
R Ye G U S CC PL
Samoa 2016 8.1 % The Pacific WSM not VNM
Samoa 2017 1.0 % The Pacific WSM not VNM
Samoa 2018 -2.1 % The Pacific WSM not VNM
Samoa 2019 3.6 % The Pacific WSM not VNM
Samoa 2020 -3.2 % The Pacific WSM not VNM
Samoa 2021 forecast -9.2 % The Pacific WSM not VNM
Samoa 2022 forecast 3.1 % The Pacific WSM not VNM
Thailand 2016 3.4 % Southeast Asia THA not VNM
Thailand 2017 4.2 % Southeast Asia THA not VNM
Thailand 2018 4.2 % Southeast Asia THA not VNM
Thailand 2019 2.3 % Southeast Asia THA not VNM
Thailand 2020 -6.1 % Southeast Asia THA not VNM
Thailand 2021 forecast 3.0 % Southeast Asia THA not VNM
Thailand 2022 forecast 4.5 % Southeast Asia THA not VNM
Viet Nam 2016 6.2 % Southeast Asia VNM VNM
Viet Nam 2017 6.8 % Southeast Asia VNM VNM
Viet Nam 2018 7.1 % Southeast Asia VNM VNM
Viet Nam 2019 7.0 % Southeast Asia VNM VNM
Viet Nam 2020 2.9 % Southeast Asia VNM VNM
Viet Nam 2021 forecast 6.7 % Southeast Asia VNM VNM
Viet Nam 2022 forecast 7.0 % Southeast Asia VNM VNM
  • Sau khi thực hiện lệnh trên ta thấy bộ dữ liệu e xuất hiện thêm cột PL, với dữ liệu VNM và not VNM.

2.2.4 4.Phân tích dữ liệu bằng bảng tần số

  • Bảng tần số là bảng thống kê cho biết số lần xuất hiện của những giá trị trong một biến cụ thể. Đối tượng cụ thể được thực hiện ở bảng dưới đây là G.
  • Bảng tần số gồm 2 thành phần:stem:thân và leaf:nhánh. Phần nhánh thường là những con số hàng trăm hàng chục. Ở bảng cụ thể bên dưới là hàng thập phân.
  • Để lập bảng thống kê cho e ta sử dụng câu lệnh stem().
stem(e$G)
## 
##   The decimal point is 1 digit(s) to the right of the |
## 
##   -0 | 96
##   -0 | 32
##    0 | 123333444
##    0 | 56777778
  • Dấu thập phân là 1 chữ số bên phải dấu gạch.

2.2.5 5.Phân tích dữ liệu bằng cách so sánh và vẽ đồ thị.

2.2.5.1 5.1 So Sánh.

  • Sử dụng các đặc trưng đo lường:
  • Mean: Độ lớn trung bình GDP của 3 nước Việt Nam, Thailand, Samoa.
  • Median (Trung vị): Một đại lượng thống kê mô tả trung tâm của một tập hợp số liệu dữ liệu.Ở đây chúng ta sẽ tính được trung vị của cột G theo dữ liệu cột R.
  • Var: Phương sai (độ dao động), phản ánh sự phân tán của các số liệu so với số trung bình của nó.
  • Một số đặc trưng khác:
  • Summary(): cho biết giá trị lớn nhất trong dữ liệu, giá trị nhỏ nhất hoặc giá trị trung trị trung bình và trung vị của bộ dữ liệu.
  • Length(): cho biết độ dài của bộ dữ liệu.
    +Quantile(): cung cấp tứ phân vị của bộ dữ liệu.

2.2.5.2 a. So sánh số liệu GDP của Việt Nam và Thailand.

  • Lọc dữ liệu của Viet Nam và Thailand thành bộ dữ liệu nhỏ là ab.
    a:
a <- e %>% filter(e$R == 'Viet Nam')
table <- knitr::kable(a, format = "markdown")
table
R Ye G U S CC PL
Viet Nam 2016 6.2 % Southeast Asia VNM VNM
Viet Nam 2017 6.8 % Southeast Asia VNM VNM
Viet Nam 2018 7.1 % Southeast Asia VNM VNM
Viet Nam 2019 7.0 % Southeast Asia VNM VNM
Viet Nam 2020 2.9 % Southeast Asia VNM VNM
Viet Nam 2021 forecast 6.7 % Southeast Asia VNM VNM
Viet Nam 2022 forecast 7.0 % Southeast Asia VNM VNM

b:

b <- e %>% filter(e$R == 'Thailand')
table <- knitr::kable(b, format = "markdown")
table
R Ye G U S CC PL
Thailand 2016 3.4 % Southeast Asia THA not VNM
Thailand 2017 4.2 % Southeast Asia THA not VNM
Thailand 2018 4.2 % Southeast Asia THA not VNM
Thailand 2019 2.3 % Southeast Asia THA not VNM
Thailand 2020 -6.1 % Southeast Asia THA not VNM
Thailand 2021 forecast 3.0 % Southeast Asia THA not VNM
Thailand 2022 forecast 4.5 % Southeast Asia THA not VNM
  • Sử dụng các đặc trưng:
mean(a$G)
## [1] 6.242857
  • Sử dụng câu lệnh mean, ta được kết quả 6.242857: độ lớn trung bình của GDP Việt Nam.
mean(b$G)
## [1] 2.214286
  • 2.214286 : độ lớn trung bình của GDP Thailand.
median(a$G)
## [1] 6.8
  • Sử dụng câu lệnh medium, nhận được giá trị 6.8: Trung vị của GDP Việt Nam.
median(b$G)
## [1] 3.4
  • 3.4: trung vị của GDP Thailand.
var(a$G)
## [1] 2.262857

*2.262857: độ phân tán của GDP Việt Nam so với trung vị, giá trị nhận được sau khi thực hiện lệnh var.

var(b$G)
## [1] 14.04476
  • 14.04476: độ phân tán của GDP Thailand so với trung vị.
summary(a$G)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   2.900   6.450   6.800   6.243   7.000   7.100
  • Kết quả trên là tứ phân vị của G Việt Nam, từ năm 2016 đến 2022:
  • GDP thấp nhất là 2.9.
  • 25% GDP những năm khác thấp hơn 6.45
  • GDP cao nhất là 7.1.
  • 75% GDP những năm còn lại thấp hơn 7.
summary(b$G)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -6.100   2.650   3.400   2.214   4.200   4.500
  • Kết quả trên là tứ phân vị của G Thailand, từ năm 2016 đến 2022:
  • GDP thấp nhất là -6.1.
  • 25% GDP những năm khác thấp hơn 2.65
  • GDP cao nhất là 4.5.
  • 75% GDP những năm còn lại thấp hơn 4.2.

Kết Luận:

  • Thông qua những số liệu thu thập được, ta thấy GDP Việt Nam từ năm 2016 đến năm 2022 con hơn so với Thailand.

2.2.5.3 5.2 Vẽ đồ thị.

  • Đồ thị GDP của Việt Nam.
tmp <- a
ra <- vector()
ha <- vector()
for(i in 1:(2-1)) {
  ra[i]= (tmp$G[i+1]/tmp$G[i]-1)
  ha[i]= tmp$G[i+1] - tmp$G[i] }
dg <- data.frame(ra, ha)
dg$Ye <- tmp$Ye[2:2]
tmp %>% ggplot(aes(x = factor(G), y = Ye)) + geom_col(fill ='green') + labs(title = 'Hình 5.2.1: GDP Việt Nam trong giai đoạn 2016 đến 2022')

  • Đồ thị GDP của Samoa từ năm 2016 đến 2022.
q <- e %>% filter(e$R == 'Samoa')
tmp <- q
ra <- vector()
ha <- vector()
for(i in 1:(2-1)) {
  ra[i]= (tmp$G[i+1]/tmp$G[i]-1)
  ha[i]= tmp$G[i+1] - tmp$G[i] }
dg <- data.frame(ra, ha)
dg$Ye <- tmp$Ye[2:2]
tmp %>% ggplot(aes(x = factor(G), y = Ye)) + geom_col(fill ='red') + labs(title = 'Hình 5.2.2: GDP Samoa trong giai đoạn 2016 đến 2022')

LS0tDQp0aXRsZTogIk5oaeG7h20gduG7pSAzIg0KYXV0aG9yOiAicG5taW5oY2hhdSINCmRhdGU6ICIyMDI0LTAxLTI1Ig0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50Og0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCiAgICBudW1iZXJfc2VjdGlvbnM6IHllcw0KICAgIHRoZW06ICJkZWZhdWx0Ig0KICAgIHRvY19kZXB0aDogMw0KICAgIHRvYzogdHJ1ZQ0KICAgIHRvY19mbG9hdDogdHJ1ZQ0KLS0tDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFKQ0KYGBgDQoNCuKAnDExOjE3OjMzLCAyNyAtIDAxIC0gMjAyNOKAnQ0KDQojICoqTmhp4buHbSB24bulIDMuMSoqDQojIyAqKk3hu6VjIHRpw6p1IG5naGnDqm4gY+G7qXUqKg0KMS4gSGnhu4N1IHLDtSB24buBIHTDrW5oIGjDrG5oIGTDom4gc+G7kSDhu58gxJHhu5kgdHXhu5VpIHRydW5nIG5pw6puIHbDoCBjYW8gbmnDqm4g4bufIENhbmFkYSBzbyB24bubaSAxIHPhu5Egbsaw4bubYyBraMOhYy4gIA0KMi4gU+G7sSBiaeG6v24gxJHhu5luZyB24buBIGPGoSBj4bqldSBkw6JuIHPhu5Eg4bufIMSR4buZIHR14buVaSB04burIDYwIHR14buVaSB0cuG7nyDEkWkuICANCg0KIyMgKipQaMawxqFuZyBwaMOhcCBuZ2hpw6puIGPhu6l1KioNCiogQ2jhu41uIGzhu41jIGThu68gbGnhu4d1IHThu6sgW3BvcHVsYXRpb24tYW5kLWRlbW9ncmFwaHkuY3N2XSh3d3cucnN0dWRpby5jb20pIMSR4buDIG5naGnDqm4gY+G7qXUuDQoqIFPhu60gZOG7pW5nIHBoxrDGoW5nIHBow6FwIHRo4buRbmcga8OqIG3DtCB04bqjOiBi4bqjbmcgdOG6p24gc+G7kSwgduG6vSDEkeG7kyB0aOG7iywgc28gc8OhbmguICANCg0KIyMgKipUaOG7sWMgaGnhu4duIG5naGnDqm4gY+G7qXUqKg0KDQojIyMgKioxLkdp4bqjaSB0aMOtY2ggYuG7mSBk4buvIGxp4buHdSoqDQoNCiBC4buZIGThu68gbGnhu4d1OiBbcG9wdWxhdGlvbi1hbmQtZGVtb2dyYXBoeS5jc3ZdKHd3dy5yc3R1ZGlvLmNvbSkgICANCiANCiBC4buZIGThu68gbGnhu4d1IHRo4buRbmcga8OqIHbhu4EgZMOibiBz4buRIHbDoCBuaMOibiBraOG6qXUgaOG7jWMgY+G7p2EgMjU0IHF14buRYyBnaWEgdHJvbmcgY8OhYyDEkeG7mSAgICAgdHXhu5VpIHThu6sgZMaw4bubaSAxIHR14buVaSDEkeG6v24gdHLDqm4gMTAwIHTGsOG7nWksIHTDrW5oIHThu6sgbsSDbSAxOTUwIMSR4bq/biAyMDIxLiAgIA0KIELhu5kgZOG7ryBsaeG7h3UgZ+G7k20gY8OzICoqMTgyODggcXVhbiBzw6F0KiogdsOgICoqMjQgYmnhur9uKiogbmjGsCBzYXU6ICANCiAqIENvdW50cnkubmFtZSAoVMOqbiBxdeG7kWMgZ2lhKSAgDQogKiBZZWFyIChOxINtKSAgDQogKiBQb3B1bGF0aW9uIChEw6JuIHPhu5EpICANCiAqIFBvcHVsYXRpb24gb2YgY2hpbGRyZW4gdW5kZXIgdGhlIGFnZSBvZiAxIChEw6JuIHPhu5EgdHLhursgZW0gPCAxIHR14buVaSkgIA0KICogUG9wdWxhdGlvbiBvZiBjaGlsZHJlbiB1bmRlciB0aGUgYWdlIG9mIDUgKETDom4gc+G7kSB0cuG6uyBlbSA8IDUgdHXhu5VpKSAgDQogKiBQb3B1bGF0aW9uIG9mIGNoaWxkcmVuIHVuZGVyIHRoZSBhZ2Ugb2YgMTUgKETDom4gc+G7kSB0cuG6uyBlbSA8IDE1IHR14buVaSkgIA0KICogUG9wdWxhdGlvbiB1bmRlciB0aGUgYWdlIG9mIDI1IChEw6JuIHPhu5EgZMaw4bubaSAyNSB0deG7lWkpICANCiAqIFBvcHVsYXRpb24gYWdlZCAxNSB0byA2NCB5ZWFycyAoRMOibiBz4buRIHThu6sgMTUgxJHhur9uIDY0IHR14buVaSkgIA0KICogUG9wdWxhdGlvbiBvbGRlciB0aGFuIDE1IHllYXJzIChEw6JuIHPhu5EgPiAxNSB0deG7lWkpICANCiAqIFBvcHVsYXRpb24gb2xkZXIgdGhhbiAxOCB5ZWFycyAoRMOibiBz4buRID4gMTggdHXhu5VpKSAgDQogKiBQb3B1bGF0aW9uIGF0IGFnZSAxIChEw6JuIHPhu5Eg4bufIDEgdHXhu5VpKSAgDQogKiBQb3B1bGF0aW9uIGFnZWQgMSB0byA0IHllYXJzIChEw6JuIHPhu5EgdOG7qyAxIMSR4bq/biA0IHR14buVaSkgIA0KICogUG9wdWxhdGlvbiBhZ2VkIDUgdG8gOSB5ZWFycyAoRMOibiBz4buRIHThu6sgNSDEkeG6v24gOSB0deG7lWkpICANCiAqIFBvcHVsYXRpb24gYWdlZCAxMCB0byAxNCB5ZWFycyAoRMOibiBz4buRIHThu6sgMTAgxJHhur9uIDE0IHR14buVaSkgIA0KICogUG9wdWxhdGlvbiBhZ2VkIDE1IHRvIDE5IHllYXJzIChEw6JuIHPhu5EgdOG7qyAxNSDEkeG6v24gMTkgdHXhu5VpKSAgDQogKiBQb3B1bGF0aW9uIGFnZWQgMjAgdG8gMjkgeWVhcnMgKETDom4gc+G7kSB04burIDIwIMSR4bq/biAyOSB0deG7lWkpICANCiAqIFBvcHVsYXRpb24gYWdlZCAzMCB0byAzOSB5ZWFycyAoRMOibiBz4buRIHThu6sgMzAgxJHhur9uIDM5IHR14buVaSkgIA0KICogUG9wdWxhdGlvbiBhZ2VkIDQwIHRvIDQ5IHllYXJzIChEw6JuIHPhu5EgdOG7qyA0MCDEkeG6v24gNDkgdHXhu5VpKSAgDQogKiBQb3B1bGF0aW9uIGFnZWQgNTAgdG8gNTkgeWVhcnMgKETDom4gc+G7kSB04burIDUwIMSR4bq/biA1OSB0deG7lWkpICANCiAqIFBvcHVsYXRpb24gYWdlZCA2MCB0byA2OSB5ZWFycyAoRMOibiBz4buRIHThu6sgNjAgxJHhur9uIDY5IHR14buVaSkgIA0KICogUG9wdWxhdGlvbiBhZ2VkIDcwIHRvIDc5IHllYXJzIChEw6JuIHPhu5EgdOG7qyA3MCDEkeG6v24gNzkgdHXhu5VpKSAgDQogKiBQb3B1bGF0aW9uIGFnZWQgODAgdG8gODkgeWVhcnMgKETDom4gc+G7kSB04burIDgwIMSR4bq/biA4OSB0deG7lWkpICANCiAqIFBvcHVsYXRpb24gYWdlZCA5MCB0byA5OSB5ZWFycyAoRMOibiBz4buRIHThu6sgOTAgxJHhur9uIDk5IHR14buVaSkgIA0KICogUG9wdWxhdGlvbiBvbGRlciB0aGFuIDEwMCB5ZWFycyAoRMOibiBz4buRID4gMTAwIHR14buVaSkgIA0KIA0KIyMjICoqMi5DaOG7jW4gYuG7mSBk4buvIGxp4buHdSoqDQojIyMjICoqMi4xIENo4buNbiBk4buvIGxp4buHdSoqDQoqIFThu6sgYuG7mSBk4buvIGxp4buHdSBbcG9wdWxhdGlvbi1hbmQtZGVtb2dyYXBoeS5jc3ZdKHd3dy5yc3R1ZGlvLmNvbSkgY2jhu41uIHJhIGPDoWMgYmnhur9uIMSR4buDIGto4bqjbyBzw6F0IHRyw6puIGThu68gbGnhu4d1IG3hu5tpIGNo4buNbi4gIA0KVGjhu7FjIGhp4buHbiB0aGFvIHTDoWMgZ8OhbiBi4buZIGThu68ga2nhu4d1IGLhurFuZyAqKm8qKiAgdsOgIMSR4buVaSB0w6puIGPDoWMgYmnhur9uIMSR4buDIGThu4UgZMOgbmcgdGjhu7FjIGhp4buHbiB0aGFvIHTDoWMgaMahbi4gIA0KDQpgYGB7cixlY2hvPVRSVUV9DQpvIDwtIHJlYWQuY3N2KCJDOi9Vc2Vycy90aGFuaC9Eb3dubG9hZHMvcG9wdWxhdGlvbi1hbmQtZGVtb2dyYXBoeS5jc3YiLGhlYWRlciA9IFQpDQpgYGANCisgQ291bnRyeS5uYW1lICgqKkMqKikgICANCisgWWVhciAoKipZKiopICAgIA0KKyBQb3B1bGF0aW9uICgqKlAqKikgIA0KKyBQb3B1bGF0aW9uIG9mIGNoaWxkcmVuIHVuZGVyIHRoZSBhZ2Ugb2YgMSAoKipQQzEqKikgIA0KKyBQb3B1bGF0aW9uIG9mIGNoaWxkcmVuIHVuZGVyIHRoZSBhZ2Ugb2YgNSAoKipQQzUqKikgIA0KKyBQb3B1bGF0aW9uIG9mIGNoaWxkcmVuIHVuZGVyIHRoZSBhZ2Ugb2YgMTUgKCoqUEMxNSoqKSAgDQorIFBvcHVsYXRpb24gdW5kZXIgdGhlIGFnZSBvZiAyNSAoKipQVTI1KiopICANCisgUG9wdWxhdGlvbiBhZ2VkIDE1IHRvIDY0IHllYXJzICgqKlAxNS02NCoqKSAgDQorIFBvcHVsYXRpb24gb2xkZXIgdGhhbiAxNSB5ZWFycyAoKipQTzE1KiopICANCisgUG9wdWxhdGlvbiBvbGRlciB0aGFuIDE4IHllYXJzICgqKlBPMTgqKikgIA0KKyBQb3B1bGF0aW9uIGF0IGFnZSAxICgqKlBBMSoqKSAgDQorIFBvcHVsYXRpb24gYWdlZCAxIHRvIDQgeWVhcnMgKCoqUDEtNCoqKSAgDQorIFBvcHVsYXRpb24gYWdlZCA1IHRvIDkgeWVhcnMgKCoqUDUtOSoqKSAgDQorIFBvcHVsYXRpb24gYWdlZCAxMCB0byAxNCB5ZWFycyAoKipQMTAtMTQqKikgIA0KKyBQb3B1bGF0aW9uIGFnZWQgMTUgdG8gMTkgeWVhcnMgKCoqUDE1LTE5KiopICANCisgUG9wdWxhdGlvbiBhZ2VkIDIwIHRvIDI5IHllYXJzICgqKlAyMC0yOSoqKSAgDQorIFBvcHVsYXRpb24gYWdlZCAzMCB0byAzOSB5ZWFycyAoKipQMzAtMzkqKikgIA0KKyBQb3B1bGF0aW9uIGFnZWQgNDAgdG8gNDkgeWVhcnMgKCoqUDQwLTQ5KiopICAgIA0KKyBQb3B1bGF0aW9uIGFnZWQgNTAgdG8gNTkgeWVhcnMgKCoqUDUwLTU5KiopICANCisgUG9wdWxhdGlvbiBhZ2VkIDYwIHRvIDY5IHllYXJzICgqKlA2MC02OSoqKSAgDQorIFBvcHVsYXRpb24gYWdlZCA3MCB0byA3OSB5ZWFycyAoKipQNzAtNzkqKikgIA0KKyBQb3B1bGF0aW9uIGFnZWQgODAgdG8gODkgeWVhcnMgKCoqUDgwLTg5KiopICANCisgUG9wdWxhdGlvbiBhZ2VkIDkwIHRvIDk5IHllYXJzICgqKlA5MC05OSoqKSAgDQorIFBvcHVsYXRpb24gb2xkZXIgdGhhbiAxMDAgeWVhcnMgKCoqUE8xMDAqKikgIA0KIA0KYGBge3IsZWNobz1UUlVFfQ0KbmFtZXMobykgPC0gYygnQycsJ1knLCdQJywnUEMxJywnUEM1JywnUEMxNScsJ1BVMjUnLCdQMTU2NCcsJ1BPMTUnLCdQTzE4JywnUEExJywnUDE0JywnUDU5JywnUDEwMTQnLCdQMTUxOScsJ1AyMDI5JywnUDMwMzknLCdQNDAtNDknLCdQNTA1OScsJ1A2MDY5JywnUDcwNzknLCdQODA4OScsJ1A5MDk5JywnUE8xMDAnKQ0KYGBgDQoqIENo4buNbiByYSBi4buZIGThu68gbGnhu4d1ICoqbSoqIGfhu5NtIGPDsyAzNjAga2jhuqNvIHPDoXQgdsOgIDggYmnhur9uIMSRxrDhu6NjIGNo4buNbiByYSB04burIGLhu5kgZOG7ryBsaeG7h3UgKipvKiouICANCiogQuG7mSBk4buvIGxp4buHdSDEkcaw4bujYyBjaOG7jW4gdHLDqm4gZ+G7k20gY8OzIGPDoWMgcXXhu5FjIGdpYTogQ2hhZCxDaGlsZSxIb25nIEtvbmcsVG9nbywgICAgICAgTGFvcyxDYW5hZGEgdsOgIG7Eg20sIHThu5VuZyBz4buRIGTDom4sIG5o4buvbmcgbmfGsOG7nWkgY8OzIMSR4buZIHR14buVaSB04burIDYwIMSR4bq/biA2OSwgNzAgxJHhur9uIDc5LCAgODAgxJHhur9uIDg5LDkwIMSR4bq/biA5OSB2w6AgdHLDqm4gMTAwIHR14buVaS4gIA0KKiBE4buxYSB2w6BvIGLhu5kgZOG7ryBsaeG7h3UgbsOgeSB0YSBjw7MgdGjhu4MgdGjhuqV5IMSRxrDhu6NjIHPhu5EgZMOibiBjw7MgxJHhu5kgdHXhu5VpIHThu6sgdHJ1bmcgbmnDqm4gxJHhur9uIGNhbyBuacOqbiDhu58gY8OhYyBuxrDhu5tjIMSRw6MgY2jhu41uLiAgDQpgYGB7cixlY2hvPVRSVUV9DQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KG1hZ3JpdHRyKQ0KbSA8LSBvICU+JSBmaWx0ZXIoQyAlaW4lIGMoJ0NoYWQnLCdDaGlsZScsJ0hvbmcgS29uZycsJ0xhb3MnLCdDYW5hZGEnKSkNCm0gPC0gbSAlPiUgc2VsZWN0KEMsWSxQLFA2MDY5LFA3MDc5LFA4MDg5LFA5MDk5LFBPMTAwKQ0KdGFibGUgPC0ga25pdHI6OmthYmxlKG0sIGZvcm1hdD0gIm1hcmtkb3duIikNCnRhYmxlDQpgYGANCg0KKiBEw7luZyBs4buHbmggZmlsdGVyIMSR4buDIHRo4buxYyBoaeG7h24gdGhhbyB0w6FjIGzhu41jIHJhIG5o4buvbmcga2jhuqNvIHPDoXQgY+G7p2Egbmjhu69uZyBuxrDhu5tjIMSRxrDhu6NjIGNo4buNbiwgc2F1IGtoaSB0aOG7sWMgaGnhu4duIGzhu4duaCBmaWx0ZXIgdGEgbmjhuq1uIMSRxrDhu6NjIGLhu5kgZOG7ryBsaeG7h3UgY2jhu4kgZ+G7k20gY8OhYyBuxrDhu5tjOiBDaGFkLCBDaGlsZSxIb25nIEtvbmcsTGFvcywgQ2FuYWRhLiAgDQoqIFNhdSDEkcOzIGTDuW5nIGPDonUgbOG7h25oIHNlbGVjdCDEkeG7gyBoaeG7h24gdGjhu4sgbmjhu69uZyBiaeG6v24gxJHGsOG7o2MgY2jhu41uLlRo4buxYyBoaeG7h24gbOG7h2NoIHNlbGVjdCB0YSBuaOG6rW4gxJHGsOG7o2MgYuG7mSBk4buvIGxp4buHdSBjaOG7iSBoaeG7g24gdGjhu4sgbmjhu69uZyBj4buZdCBDLFksUCxQNjA2OSxQNzA3OSxQODA4OSxQOTA5OSxQTzEwMCBuaMawIGLhuqNuZyB0csOqbi4gIA0KDQojIyMjICoqMi4yIFTDrG0gaGnhu4N1IGThu68gbGnhu4d1LioqIA0KDQrEkOG7gyBoaeG7g3UgcsO1IGjGoW4gduG7gSBi4buZIGThu68gbGnhu4d1IMSRw6MgY2jhu41uIOG7nyB0csOqbiB0YSBz4butIGThu6VuZyBs4buHbmggU2tpbSgpLCDDvSBuZ2jEqWEgY+G7p2EgY8OhYyBj4buZdCBiw6puIGTGsOG7m2kgbmjGsCBzYXU6ICANCg0KKiBuX21pc3Npbmc6IHPhu5Egw7QgZOG7ryBsaeG7h3UgYuG7iyBtaXNzKHRy4buRbmcpICANCg0KKiBjb21wbGV0ZV9yYXRlOiB04bu3IGzhu4cgw7QgY8OzIGThu68gbGnhu4d1ICANCg0KKiBtZWFuOiB0cnVuZyBiw6xuaCAgICANCg0KKiBzZDogxJHhu5kgbOG7h2NoIGNodeG6qW4gIA0KDQoqIHAwOiBnacOhIHRy4buLIG5o4buPIG5o4bqldCAgDQoNCiogcDI1OiBQaMOibiB24buLIHRo4bupIG5o4bqldCAgDQoNCiogcDUwOiBQaMOibiB24buLIHRo4bupIGhhaSBjxaluZyBjaMOtbmggbMOgIHRydW5nIHbhu4sgIA0KDQoqIHA3NTogcGjDom4gduG7iyB0aOG7qSBiYSAgDQoNCiogcDEwMDogZ2nDoSB0cuG7iyBs4bubbiBuaOG6pXQgIA0KDQoqIGhpc3Q6IGJp4buDdSDEkeG7kyBIaXN0b2dyYW0gIA0KYGBge3IsIGVjaG89IFRSVUV9DQpsaWJyYXJ5KHNraW1yKQ0Kc2tpbShtKQ0KYGBgDQoNCg0KIyMjICoqMy5Nw6MgaMOzYSBk4buvIGxp4buHdSoqDQoqIE3hu6VjIHRpw6p1IHBow6JuIHTDrWNoIGzDoCBjxqEgY+G6pXUgZMOibiBz4buRIOG7nyDEkeG7mSB0deG7lWkgdHJ1bmcgbmnDqm4gdsOgIGNhbyBuacOqbiBj4bunYSBDYW5hZGEgc28gduG7m2kgY8OhYyBuxrDhu5tjIGtow6FjLiAgDQoqIMSQ4buDIHThuq1wIHRydW5nIHF1YW4gc8OhdCBz4buRIGxp4buHdSBj4bunYSBuxrDhu5tjIENhbmFkYSBoxqFuLCBjaMO6bmcgdGEgc+G6vSBwaMOibiBsb+G6oWkgY8OhYyBuxrDhu5tjIHRow6BuaCBoYWkgxJHhu5FpIHTGsOG7o25nIGzDoCBDYW5hZGEgdsOgIGtow7RuZyBwaOG6o2kgQ2FuYWRhLuG7niDEkcOieSBjaMO6bmcgdGEgc+G6vSBtw6MgaMOzYSBk4buxIGxp4buHdSDhu58gY+G7mXQgQyBi4bqxbmcgY8OhY2ggdOG6oW8gcmEgbeG7mXQgY+G7mXQgKipQaGFubG9haSoqIGLhurFuZyBs4buHbmggaWZlbHNlKCkuICANCiogQsOqbiBj4bqhbmggxJHDsywgY2jDum5nIHRhIHPhur0gbcOjIGjDs2EgY8OhYyBj4buZdCBQIMSR4buDIGThu4UgcXVhbiBzw6F0IGjGoW4uIFPhu60gZOG7pW5nIGzDqm4gY2FzZV93aGVuKCkgxJHhu4MgdOG6oW8gcmEgbeG7mXQgY+G7mXQgdMOqbiAqKlNMKiogduG7m2kgxJFp4buBdSBraeG7h246UCA8MzAwMDAwMDogw610OyAzMDAwMDAwPD1QPT4xMDAwMDAwMDpW4burYSA7IFA+MTAwMDAwMDA6Tmhp4buBdS4gIA0KDQpgYGB7cixlY2hvPSBUUlVFfQ0KbSRQaGFubG9haSA8LSBpZmVsc2UobSRDID09ICdDYW5hZGEnLCdDYW5hZGEnLCdub3QgQ2FuYWRhJykNCm0kU0wgPC0gY2FzZV93aGVuKG0kUDw3MDAwMDAwIH4nw610JyxtJFAgPj03MDAwMDAwIH4gJ05oaeG7gXUnICkNCnRhYmxlIDwtIGtuaXRyOjprYWJsZShtLCBmb3JtYXQgPSAibWFya2Rvd24iKQ0KdGFibGUNCmBgYA0KDQoqIFNhdSBraGkgdGjhu7FjIGhp4buHbiBj4bqjIGhhaSBjw6J1IGzhu4duaCBpZmVsc2UoKSB2w6AgY2FzZV93aGVuKCksW2hhaSBjw6J1IGzhu4duaCB0csOqbiBjw7MgdMOhYyBk4bulbmcgcGjDom4gbG/huqFpLCBtw6MgaMOzYSBk4buvIGxp4buHdSB0aGVvIMSRaeG7gXUga2nhu4duIMSRw6MgxJHhurd0IHJhXSwgdGEgdGh1IMSRxrDhu6NjIGLhuqNuZyAqKm0qKiBjw7MgdGjDqm0gaGFpIGPhu5l0IGzDoCBQaGFubG9haSB2w6AgU0wuIOG7niBj4buZdCBQaGFubG9haSBjaOG7qWEgZOG7ryBsaeG7h3UgQ2FuYWRhIHbDoCBub3QgQ2FuYWRhLCBjw7JuIGPhu5l0IFNMIHRow6wgY8OzIGThu68gbGnhu4d1IG5oaeG7gXUgdsOgIMOtdCB0aGVvIMSRaeG7gXUga2nhu4duIMSRw6MgbsOqdSB0csOqbi4gICAgDQoNCiMjIyAqKjQuUGjDom4gdMOtY2ggZOG7ryBsaeG7h3UgYuG6sW5nIGLhuqNuZyB04bqnbiBz4buRKioNCg0KKiBC4bqjbmcgdOG6p24gc+G7kSBsw6AgYuG6o25nIHRo4buRbmcga8OqIGNobyBiaeG6v3Qgc+G7kSBs4bqnbiB4deG6pXQgaGnhu4duIGPhu6dhIG5o4buvbmcgZ2nDoSB0cuG7iyB0cm9uZyBt4buZdCBiaeG6v24gY+G7pSB0aOG7gy4gxJDhu5FpIHTGsOG7o25nIGPhu6UgdGjhu4MgxJHGsOG7o2MgdGjhu7FjIGhp4buHbiDhu58gYuG6o25nIGTGsOG7m2kgxJHDonkgbMOgICoqUDcwNzkqKi4gICAgDQoqIELhuqNuZyB04bqnbiBz4buRIGfhu5NtIDIgdGjDoG5oIHBo4bqnbjpzdGVtOnRow6JuIHbDoCBsZWFmOm5ow6FuaC4gUGjhuqduIG5ow6FuaCB0aMaw4budbmcgbMOgIG5o4buvbmcgY29uIHPhu5EgaMOgbmcgdHLEg20gaMOgbmcgY2jhu6VjLiDhu54gYuG6o25nIGPhu6UgdGjhu4MgYsOqbiBkxrDhu5tpIGzDoCBow6BuZyBuZ8Ogbi4gDQoqIMSQ4buDIGzhuq1wIGLhuqNuZyB0aOG7kW5nIGvDqiBjaG8gKiptKiogdGEgc+G7rSBk4bulbmcgY8OidSBs4buHbmggc3RlbSgpLiAgDQoNCmBgYHtyLGVjaG89VFJVRX0NCnN0ZW0obSRQNzA3OSkNCmBgYA0KDQoNCiogROG6pXUgdGjhuq1wIHBow6JuIGzDoCA1IGNo4buvIHPhu5EgYsOqbiBwaOG6o2kgZOG6pXUgZ+G6oWNoLg0KDQojIyMgKio1LlBow6JuIHTDrWNoIGThu68gbGnhu4d1IGLhurFuZyBjw6FjaCBzbyBzw6FuaCB2w6AgduG6vSDEkeG7kyB0aOG7iy4qKiAgDQoNCiMjIyMgKio1LjEgU28gU8OhbmguKioNCiogU+G7rSBk4bulbmcgY8OhYyDEkeG6t2MgdHLGsG5nIMSRbyBsxrDhu51uZzogIA0KKyBNZWFuOiDEkOG7mSBs4bubbiB0cnVuZyBiw6xuaCBkw6JuIHPhu5EgY+G7p2EgY8OhYyBuxrDhu5tjIENoYWQsIENoaWxlLCBIb25nIEtvbmcsIExhb3MsIENhbmFkYS4NCisgTWVkaWFuIChUcnVuZyB24buLKTogTeG7mXQgxJHhuqFpIGzGsOG7o25nIHRo4buRbmcga8OqIG3DtCB04bqjIHRydW5nIHTDom0gY+G7p2EgbeG7mXQgdOG6rXAgaOG7o3Agc+G7kSBsaeG7h3UgZOG7ryBsaeG7h3Uu4bueIMSRw6J5IGNow7puZyB0YSBz4bq9IHTDrW5oIMSRxrDhu6NjIHRydW5nIHbhu4sgY+G7p2EgY+G7mXQgUCB0aGVvIGThu68gbGnhu4d1IGPhu5l0IEMuICANCisgVmFyOiBQaMawxqFuZyBzYWkgKMSR4buZIGRhbyDEkeG7mW5nKSwgcGjhuqNuIMOhbmggc+G7sSBwaMOibiB0w6FuIGPhu6dhIGPDoWMgc+G7kSBsaeG7h3Ugc28gduG7m2kgc+G7kSB0cnVuZyBiw6xuaCBj4bunYSBuw7MuICANCiogTeG7mXQgc+G7kSDEkeG6t2MgdHLGsG5nIGtow6FjOiAgDQorIFN1bW1hcnkoKTogY2hvIGJp4bq/dCBnacOhIHRy4buLIGzhu5tuIG5o4bqldCB0cm9uZyBk4buvIGxp4buHdSwgZ2nDoSB0cuG7iyBuaOG7jyBuaOG6pXQgaG/hurdjIGdpw6EgdHLhu4sgdHJ1bmcgdHLhu4sgdHJ1bmcgYsOsbmggdsOgIHRydW5nIHbhu4sgY+G7p2EgYuG7mSBk4buvIGxp4buHdS4gIA0KKyBMZW5ndGgoKTogY2hvIGJp4bq/dCDEkeG7mSBkw6BpIGPhu6dhIGLhu5kgZOG7ryBsaeG7h3UuICANCitRdWFudGlsZSgpOiBjdW5nIGPhuqVwIHThu6kgcGjDom4gduG7iyBj4bunYSBi4buZIGThu68gbGnhu4d1LiANCg0KIyMjIyAqKmEuUXVhbiBzw6F0IGTDom4gc+G7kSBjw7MgxJHhu5kgdHXhu5VpIHThu6sgNzAgxJHhur9uIDc5IGPhu6dhIENhbmFkYSB2w6AgQ2hhZCBuxINtIDIwMDAgxJHhur9uIDIwMTAuKioNCiogxJDhuqd1IHRpw6puLCBs4buNYyByYSBi4buZIGThu68gbGnhu4d1IGTDom4gc+G7kSBjw7MgxJHhu5kgdHXhu5VpIHThu6sgNzAgxJHhur9uIDc5IGPhu6dhIENhbmFkYSB2w6AgQ2hhZCBuxINtIDIwMDAgxJHhur9uIDIwMTAsIMSR4bq3dCB0w6puIGzDoCAqKmoqKiB2w6AgKipnKiouICANCmo6ICANCg0KYGBge3IsZWNobz1UUlVFfQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkobWFncml0dHIpDQpqIDwtIG0gJT4lIGZpbHRlcihZID49MjAwMCAmIFk8PTIwMTAgJiBDID09ICdDYW5hZGEnKSAlPiUgc2VsZWN0KEMsWSxQLFA3MDc5KQ0KdGFibGUgPC0ga25pdHI6OmthYmxlKGosZm9ybWF0ID0gIm1hcmtkb3duIikNCnRhYmxlDQpgYGANCmc6ICANCg0KYGBge3IsIGVjaG89IFRSVUV9DQpnIDwtIG0gJT4lIGZpbHRlcihZID49MjAwMCAmIFk8PTIwMTAgJiBDID09ICdDaGFkJykgJT4lIHNlbGVjdChDLFksUCxQNzA3OSkNCnRhYmxlIDwtIGtuaXRyOjprYWJsZShnLGZvcm1hdCA9ICJtYXJrZG93biIpDQp0YWJsZQ0KYGBgDQoNCiogU+G7rSBk4bulbmcgY8OhYyDEkeG6t2MgdHLGsG5nIMSR4buDIHF1YW4gc8OhdC4gIA0KDQpgYGB7cixlY2hvPVRSVUV9DQptZWFuKGokUDcwNzksbmEucm0gPSBUKQ0KbWVhbihnJFA3MDc5LG5hLnJtID0gVCkNCmBgYA0KDQoqIDE5MTM2NjE6IMSRw6J5IGzDoCDEkeG7mSBs4bubbiB0cnVuZyBiw6xuaCBj4bunYSBkw6JuIHPhu5EgQ2FuYWRhIOG7nyDEkeG7mSB0deG7lWkgdOG7qyA3MCDEkeG6v24gNzkgdHXhu5VpIHThu6sgbsSDbSAyMDAwIMSR4bq/biAyMDEwLlbDoCAxMTYzOTQuNyBsw6AgxJHhu5kgbOG7m24gdHJ1bmcgYsOsbmggY+G7p2EgYuG7mSBkw6JuIHPhu5EgQ2hhZCDhu58gxJHhu5kgdHVvaXIgNzAgxJHhur9uIDc5IHThu6sgMjAwMCDEkeG6v24gMjAxMC4gxJDDonkgbMOgIGvhur90IHF14bqjIG5o4bqtbiDEkcaw4bujYyBzYXUga2hpIHPhu60gZOG7pW5nIGPDonUgbOG7h25oIG1lYW4oKS4gDQoNCmBgYHtyLGVjaG89VFJVRX0NCm1lZGlhbihqJFA3MDc5KQ0KbWVkaWFuKGckUDcwNzkpDQpgYGANCiogU2F1IGtoaSB0aOG7sWMgaGnhu4duIGPDonUgbOG7h25oIG1lZGlhbigpLCB0YSBuaOG6rW4gxJHGsOG7o2MgZ2nDoSB0cuG7iyAxOTA4MjU4OiDEkcOieSBsw6AgdHJ1bmcgduG7iyBj4bunYSBQNzA3OSDhu58gai4gMTE2ODQ5OiB0cnVuZyB24buLIGPhu6dhIFA3MDc5IOG7nyBnLiAgDQoNCmBgYHtyLGVjaG89VFJVRX0NCnZhcihqJFA3MDc5KQ0KdmFyKGckUDcwNzkpDQpgYGANCiANCiogNDQ3Njg3MTQ5NzogxJHhu5kgcGjDom4gdMOhbiBj4bunYSBQNzA3OSBzbyB24bubaSB0cnVuZyB24buLIDE5MDgyNTgsMjU3MjQyNDk6IMSR4buZdMOhbiBj4bunYSBQNzA3OSDhu58gZywgZ2nDoSB0cuG7iyBuaOG6rW4gxJHGsOG7o2Mga2hpIGTDuW5nIHZhcigpLiAgDQoNCmBgYHtyLGVjaG89VFJVRX0NCnN1bW1hcnkoaiRQNzA3OSkNCmBgYA0KDQoqIEvhur90IHF14bqjIHRyw6puIGzDoCB04bupIHBow6JuIHbhu4sgY+G7p2EgUDcwNzkuVHJvbmcgMTAgbsSDbTogIA0KKyBOxINtIENhbmFkYSBjw7Mgc+G7kSBkw6JuIHPhu5EgNzAtNzkgdHXhu5VpIMOtdCBuaOG6pXQgxJHhuqF0IDE4MDk3OTguICANCisgTsSDbSBDYW5hZGEgY8OzIHPhu5EgZMOibiBz4buRIDcwLTc5IHR14buVaSBs4bubbiBuaOG6pXQgxJHhuqF0IDIwMzA3MzcuICANCisgMjUlIHPhu5EgbsSDbSBjw7MgZMOibiBz4buRIMOtdCBoxqFuIDE4NzExMDIuICANCisgNzUlIHPhu5EgbsSDbSBjw7MgZMOibiBz4buRIMOtdCBoxqFuIDE5NTM4NzQuICANCg0KYGBge3IsZWNobz1UUlVFfQ0Kc3VtbWFyeShnJFA3MDc5KQ0KYGBgDQoNCiogS+G6v3QgcXXhuqMgdHLDqm4gbMOgIHThu6kgcGjDom4gduG7iyBj4bunYSBQNzA3OS5Ucm9uZyAxMCBuxINtOiAgDQorIE7Eg20gQ2FuYWRhIGPDsyBz4buRIGTDom4gc+G7kSA3MC03OSB0deG7lWkgw610IG5o4bqldCDEkeG6oXQgMTA4OTE4LiAgDQorIE7Eg20gQ2FuYWRhIGPDsyBz4buRIGTDom4gc+G7kSA3MC03OSB0deG7lWkgbOG7m24gbmjhuqV0IMSR4bqhdCAxMjM3NjguICANCisgMjUlIHPhu5EgbsSDbSBjw7MgZMOibiBz4buRIMOtdCBoxqFuICAxMTIyNDcuICANCisgNzUlIHPhu5EgbsSDbSBjw7MgZMOibiBz4buRIMOtdCBoxqFuIDEyMDIxMS4gICANCg0KKipL4bq/dCBMdeG6rW46KioNCiogVOG7qyAzIHPhu5EgbGnhu4d1IMSR4bq3YyB0csawbmcgdGh1IMSRxrDhu6NjIOG7nyB0csOqbiwga+G6v3QgbHXhuq1uIMSRxrDhu6NjOiBkw6JuIHPhu5Eg4bufIMSR4buZIHR14buVaSA3MCDEkeG6v24gNzkg4bufIENhbmFkYSBuaGnhu4F1IGjGoW4gc28gduG7m2kgQ2hhZC4gdsOgIMSR4buZIHBow6JuIHTDoW4gY8WpbmcgbOG7m24gaMahbi4NCiogVHJvbmcgMTAgbsSDbSBz4buRIGTDom4gc+G7kSBs4bubbiBuaOG6pXQgY+G7p2EgQ2FuYWRhIGzhu5tuIGjGoW4gQ2hhZCAoMjAzMDczNz4xMjM3NjgpLiAgDQoNCiMjIyMgKipiLiBW4bq9IMSR4buTIHRo4buLLioqIA0KKiBCaeG7g3UgxJHhu5MgZMOibiBz4buRIENhbmFkYSDhu58gxJHhu5kgdHXhu5VpIDcwLTc5IHThu6sgbsSDbSAyMDAwIMSR4bq/biAyMDEwLiAgDQoNCmBgYHtyLCBlY2hvPVRSVUV9DQp0bXAgPC0gag0KcmEgPC0gdmVjdG9yKCkNCmhhIDwtIHZlY3RvcigpDQpmb3IoaSBpbiAxOigyMDAtMTAwKSkgew0KICByYVtpXT0gKHRtcCRQW2krMTAwMDAwMDBdL3RtcCRQW2ldLTEwMDAwMDAwKQ0KICBoYVtpXT0gdG1wJFBbaSsxMDAwMDAwMF0gLSB0bXAkUFtpXSB9DQpkZyA8LSBkYXRhLmZyYW1lKHJhLCBoYSkNCmRnJHkgPC0gdG1wJFlbMjAwOjIwMF0NCnRtcCAlPiUgZ2dwbG90KGFlcyh4ID0gZmFjdG9yKFkpLCB5ID0gUCkpICsgZ2VvbV9jb2woZmlsbCA9J2dyZWVuJykgKyBsYWJzKHRpdGxlID0gJ0jDrG5oIDIuMTogRMOibiBz4buRIHRyb25nIGdpYWkgxJFv4bqhbiB04burIDIwMDAgxJHhur9uIG7Eg20gMjAxMCcpDQpgYGANCg0KKiBCaeG7g3UgxJHhu5MgZMOibiBz4buRIENoYWQg4bufIMSR4buZIHR14buVaSA3MC03OSB04burIG7Eg20gMjAwMCDEkeG6v24gMjAxMC4gIA0KDQpgYGB7cixlY2hvPVRSVUV9DQp0bXAgPC0gZw0KcmEgPC0gdmVjdG9yKCkNCmhhIDwtIHZlY3RvcigpDQpmb3IoaSBpbiAxOigyMDAtMTAwKSkgew0KICByYVtpXT0gKHRtcCRQW2krMV0vdG1wJFBbaV0tMTAwMDAwMDApDQogIGhhW2ldPSB0bXAkUFtpKzEwMDAwMDAwXSAtIHRtcCRQW2ldIH0NCmRnIDwtIGRhdGEuZnJhbWUocmEsIGhhKQ0KZGckWSA8LSB0bXAkWVsyMDA6MjAwXQ0KdG1wICU+JSBnZ3Bsb3QoYWVzKHggPSBmYWN0b3IoWSksIHkgPSBQKSkgKyBnZW9tX2NvbChmaWxsID0nYmx1ZScpICsgbGFicyh0aXRsZSA9ICdIw6xuaCAyLjE6IETDom4gc+G7kSB0cm9uZyBnaWFpIMSRb+G6oW4gdOG7qyAyMDAwIMSR4bq/biBuxINtIDIwMTAnKQ0KYGBgDQoNCiMgKipOaGnhu4dtIHbhu6UgMy4yKioNCiogKipDaOG7pyDEkeG7gTogVMOsbSBk4buvIGxp4buHdSB24buBIEdEUCBj4bunYSBjw6FjIG7GsOG7m2MgxJDDtG5nIE5hbSDDgS9jw6FjIGtodSB24buxYyBraMOhYyB2w6AgcGjDom4gdMOtY2guKiogIA0KIyMgKipN4bulYyDEkcOtY2ggbmdoacOqbiBj4bupdSoqICANCjEuIE5naGnDqm4gY+G7qXUgdMOsbmggaMOsbmggdOG7kWMgxJHhu5kgdMSDbmcgdHLGsOG7n25nIHThu5VuZyBz4bqjbiBwaOG6qW0gcXXhu5FjIG7hu5lpIChHRFApIGPhu6dhIGPDoWMgcXXhu5FjIGdpYSB0aMOgbmggdmnDqm4gxJFhbmcgcGjDoXQgdHJp4buDbiBj4bunYSBBREIuICANCjIuIFTDrG0gaGnhu4N1IHTDrG5oIGjDrG5oIEdEUCBj4bunYSBWaeG7h3QgTmFtIHThu6sgbsSDbSAyMDE2IMSR4bq/biAyMDIyLiAgDQoNCiMjICoqUGjGsMahbmcgcGjDoXAgbmdoacOqbiBj4bupdSoqDQoqIENo4buNbiBs4buNYyBk4buvIGxp4buHdSB04burIFtBRE8uMjAyMV9BMS5HRFAuZ3Jvd3RoLmNzdl0od3d3LnJzdHVkaW8uY29tKSDEkeG7gyBuZ2hpw6puIGPhu6l1Lg0KKiBT4butIGThu6VuZyBwaMawxqFuZyBwaMOhcCB0aOG7kW5nIGvDqiBtw7QgdOG6ozogYuG6o25nIHThuqduIHPhu5EsIHbhur0gxJHhu5MgdGjhu4ssIHNvIHPDoW5oLiAgDQoNCiMjICoqVGjhu7FjIGhp4buHbiBuZ2hpw6puIGPhu6l1KioNCg0KIyMjICoqMS5HaeG6o2kgdGjDrWNoIGLhu5kgZOG7ryBsaeG7h3UqKiAgIA0KKiBC4buZIGThu68gbGnhu4d1IFtBRE8uMjAyMV9BMS5HRFAuZ3Jvd3RoLmNzdl0od3d3LnJzdHVkaW8uY29tKSBsw6AgVOG7kWMgxJHhu5kgdMSDbmcgdHLGsOG7n25nIHThu5VuZyBz4bqjbiBwaOG6qW0gcXXhu5FjIG7hu5lpIChHRFApIGPhu6dhIGPDoWMgcXXhu5FjIGdpYSB0aMOgbmggdmnDqm4gxJFhbmcgcGjDoXQgdHJp4buDbiBj4bunYSBBREIuIEPDoWMgc+G7kSBsaeG7h3UgdsOgIGThu7EgYsOhbyDEkcaw4bujYyBs4bqleSB04burIELhuqNuIGPhuq1wIG5o4bqtdCBUcmnhu4NuIHbhu41uZyBQaMOhdCB0cmnhu4NuIENow6J1IMOBIChBRE8pIDIwMjMgY+G7p2EgQURCLCBwaMOhdCBow6BuaCB2w6BvIHRow6FuZyA5IG7Eg20gMjAyMy4gIA0KDQpMxrB1IMO9OiBDw6FjIG7hu4FuIGtpbmggdOG6vyBjw7RuZyBuZ2hp4buHcCBow7NhIG3hu5tpIGzDoCBI4buTbmcgS8O0bmcsIFRydW5nIFF14buRYywgSMOgbiBRdeG7kWMsIFNpbmdhcG9yZSB2w6AgxJDDoGkgQuG6r2MsIFRydW5nIFF14buRYy4NCiogQuG7mSBk4buvIGxp4buHdSBn4buTbSBjw7MgMzcxIHF1YW4gc8OhdCB2w6AgNiBiaeG6v24sIGPhu6UgdGjhu4MgY8OhYyBiaeG6v24gbmjGsCBzYXU6ICANCisgUmVnaW9uYWxNZW5iZXI6IHRow6BuaCB2acOqbiBraHUgduG7sWMuICANCisgWWVhcjogbsSDbS4gIA0KKyBHRFAuZ3Jvd3RoOiBHRFAgdMSDbmcgdHLGsOG7n25nLiAgDQorIFVuaXQub2YuTWVhc3VyZW1lbnQ6IMSQxqFuIHbhu4sgxJFvIGzGsOG7nW5nLiAgDQorIFN1YnJlZ2lvbjoga2h1IHbhu7FjIG5o4buPLiAgDQorIENvdW50cnkuQ29kZTogbcOjIHF14buRYyBnaWEuICAgDQoNCiMjIyAqKjIuQ2jhu41uIGLhu5kgZOG7ryBsaeG7h3UqKg0KIyMjIyAqKjIuMSBDaOG7jW4gZOG7ryBsaeG7h3UqKg0KKiBU4burIGLhu5kgZOG7ryBsaeG7h3UgIFtBRE8uMjAyMV9BMS5HRFAuZ3Jvd3RoLmNzdl0od3d3LnJzdHVkaW8uY29tKSBjaOG7jW4gcmEgY8OhYyBiaeG6v24gxJHhu4Mga2jhuqNvIHPDoXQgdHLDqm4gZOG7ryBsaeG7h3UgbeG7m2kgY2jhu41uLiAgDQpUaOG7sWMgaGnhu4duIHRoYW8gdMOhYyBnw6FuIGLhu5kgZOG7ryBraeG7h3UgYuG6sW5nICoqcyoqICB2w6AgxJHhu5VpIHTDqm4gY8OhYyBiaeG6v24gxJHhu4MgZOG7hSBkw6BuZyB0aOG7sWMgaGnhu4duIHRoYW8gdMOhYyBoxqFuLiAgDQoNCmBgYHtyLCBlY2hvPVRSVUV9DQpzIDwtIHJlYWQuY3N2KCJDOi9Vc2Vycy90aGFuaC9Eb3dubG9hZHMvQURPIDIwMjFfQTEtR0RQIGdyb3d0aC5jc3YiLGhlYWRlciA9IFQpDQpgYGANCg0KKyBSZWdpb25hbE1lbmJlcjogKipSKiogICANCisgWWVhcjogKipZZSoqICANCisgR0RQLmdyb3d0aDoqKkcqKiAgDQorIFVuaXQub2YuTWVhc3VyZW1lbnQ6KipVKiogICANCisgU3VicmVnaW9uOiAqKlMqKiAgDQorIENvdW50cnkuQ29kZTogKipDQyoqICANCg0KYGBge3IsIGVjaG8gPSBUUlVFfQ0KbmFtZXMocykgPC0gYygnUicsJ1llJywnRycsJ1UnLCdTJywnQ0MnKQ0KYGBgDQoNCiogQ2jhu41uIHJhIGLhu5kgZOG7ryBsaeG7h3UgKiplKiog4bufIGPhu5l0IFIgY2jhu4kgY2jhu41uIDMgbsaw4bubYyAqKlZpZXQgTmFtKiosKipUaGFpbGFuZCoqLCoqU2Ftb2EqKi4NCiogQuG7mSBk4buvIGxp4buHdSAqKmUqKiBjw7MgMjEgcXVhbiBzw6F0IHbDoCA2IGJp4bq/bi4gIA0KKiBU4burIGLhu5kgZOG7ryBsaeG7h3UgdHLDqm4gdGEgY8OzIHRo4buDIHNvIHPDoW5oIHTDrG5oIGjDrG5oIEdEUCBj4bunYSBWaeG7h3QgTmFtIHNvIHbhu5tpIGhhaSBuxrDhu5tjIGPDsm4gbOG6oWkuICANCg0KYGBge3IsIGVjaG89IFRSVUV9DQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KG1hZ3JpdHRyKQ0KZSA8LSBzICU+JSBmaWx0ZXIoUiAlaW4lIGMoJ1ZpZXQgTmFtJywnVGhhaWxhbmQnLCdTYW1vYScpKSANCnRhYmxlIDwtIGtuaXRyOjprYWJsZShlLCBmb3JtYXQ9ICJtYXJrZG93biIpDQp0YWJsZQ0KYGBgDQoNCiMjIyMgKioyLjIgVMOsbSBoaeG7g3UgduG7gSBi4buZIGThu68gbGnhu4d1ICoqZSoqLioqICANCsSQ4buDIHTDrG0gaGnhu4N1IHbhu4EgYuG7mSBk4buvIGxp4buHdSBjaMO6bmcgdGEgY8OzIHRo4buDIHPhu60gZOG7pW5nIGzhu4duaCBza2ltKCkuIEPDonUgbOG7h25oIG7DoHkgc+G6vSBjdW5nIGPhuqVwIHRow7RuZyB0aW4gduG7gSBi4buZIGThu68gbGnhu4d1IG3hu5l0IGPDoWNoIHThu5VuZyBxdcOhdC4gICANCkTGsOG7m2kgxJHDonkgbMOgIMO9IG5naMSpYSBj4bunYSBjw6FjIHRow7RuZyBz4buROiAgDQoqIG5fbWlzc2luZzogc+G7kSDDtCBk4buvIGxp4buHdSBi4buLIG1pc3ModHLhu5FuZykgIA0KDQoqIGNvbXBsZXRlX3JhdGU6IHThu7cgbOG7hyDDtCBjw7MgZOG7ryBsaeG7h3UgIA0KDQoqIG1lYW46IHRydW5nIGLDrG5oICANCg0KKiBzZDogxJHhu5kgbOG7h2NoIGNodeG6qW4gIA0KDQoqIHAwOiBnacOhIHRy4buLIG5o4buPIG5o4bqldCAgDQoNCiogcDI1OiBQaMOibiB24buLIHRo4bupIG5o4bqldCAgDQoNCiogcDUwOiBQaMOibiB24buLIHRo4bupIGhhaSBjxaluZyBjaMOtbmggbMOgIHRydW5nIHbhu4sgIA0KDQoqIHA3NTogcGjDom4gduG7iyB0aOG7qSBiYSAgDQoNCiogcDEwMDogZ2nDoSB0cuG7iyBs4bubbiBuaOG6pXQgIA0KDQoqIGhpc3Q6IGJp4buDdSDEkeG7kyBIaXN0b2dyYW0gIA0KDQpgYGB7cixlY2hvPVRSVUV9DQpsaWJyYXJ5KHNraW1yKQ0Kc2tpbShlKQ0KYGBgDQoNCiMjIyAqKjMuIE3DoyBow7NhIGLhu5kgZOG7ryBsaeG7h3UuKiogIA0KKiDEkOG7gyBjw7MgdGjhu4MgdOG6rXAgdHJ1bmcgcGjDom4gdMOtY2ggdsOgIGThu4Ugc28gc8OhbmggdMOsbmggaMOsbmggR0RQIGPhu6dhIFZp4buHdCBOYW0gc28gduG7m2kgaGFpIG7GsOG7m2MgY8OybiBs4bqhaS4gQ2jDum5nIHRhIHPhur0gbcOjIGjDs2EgY+G7mXQgQ0MgdGjDoG5oICoqVk5NKiogdsOgICoqbm90IFZOTSoqIGLhurFuZyBjw6FjIHThuqFvIHRow6ptIGPhu5l0ICoqUEwqKiB0aMO0bmcgcXVhIGlmZWxzZSgpLiANCg0KYGBge3IsZWNobz1UUlVFfQ0KZSRQTCA8LSBpZmVsc2UoZSRDQyA9PSAnVk5NJywgJ1ZOTScsJ25vdCBWTk0nKQ0KdGFibGUgPC0ga25pdHI6OmthYmxlKGUsIGZvcm1hdCA9ICJtYXJrZG93biIpDQp0YWJsZQ0KYGBgDQoqIFNhdSBraGkgdGjhu7FjIGhp4buHbiBs4buHbmggdHLDqm4gdGEgdGjhuqV5IGLhu5kgZOG7ryBsaeG7h3UgZSB4deG6pXQgaGnhu4duIHRow6ptIGPhu5l0IFBMLCB24bubaSBk4buvIGxp4buHdSBWTk0gdsOgIG5vdCBWTk0uICANCg0KIyMjICoqNC5QaMOibiB0w61jaCBk4buvIGxp4buHdSBi4bqxbmcgYuG6o25nIHThuqduIHPhu5EqKg0KDQoqIELhuqNuZyB04bqnbiBz4buRIGzDoCBi4bqjbmcgdGjhu5FuZyBrw6ogY2hvIGJp4bq/dCBz4buRIGzhuqduIHh14bqldCBoaeG7h24gY+G7p2Egbmjhu69uZyBnacOhIHRy4buLIHRyb25nIG3hu5l0IGJp4bq/biBj4bulIHRo4buDLiDEkOG7kWkgdMaw4bujbmcgY+G7pSB0aOG7gyDEkcaw4bujYyB0aOG7sWMgaGnhu4duIOG7nyBi4bqjbmcgZMaw4bubaSDEkcOieSBsw6AgKipHKiouICAgIA0KKiBC4bqjbmcgdOG6p24gc+G7kSBn4buTbSAyIHRow6BuaCBwaOG6p246c3RlbTp0aMOibiB2w6AgbGVhZjpuaMOhbmguIFBo4bqnbiBuaMOhbmggdGjGsOG7nW5nIGzDoCBuaOG7r25nIGNvbiBz4buRIGjDoG5nIHRyxINtIGjDoG5nIGNo4bulYy4g4bueIGLhuqNuZyBj4bulIHRo4buDIGLDqm4gZMaw4bubaSBsw6AgaMOgbmcgdGjhuq1wIHBow6JuLiANCiogxJDhu4MgbOG6rXAgYuG6o25nIHRo4buRbmcga8OqIGNobyAqKmUqKiB0YSBz4butIGThu6VuZyBjw6J1IGzhu4duaCBzdGVtKCkuICANCg0KYGBge3IsZWNobz1UUlVFfQ0Kc3RlbShlJEcpDQpgYGANCg0KKiBE4bqldSB0aOG6rXAgcGjDom4gbMOgIDEgY2jhu68gc+G7kSBiw6puIHBo4bqjaSBk4bqldSBn4bqhY2guICANCg0KIyMjICoqNS5QaMOibiB0w61jaCBk4buvIGxp4buHdSBi4bqxbmcgY8OhY2ggc28gc8OhbmggdsOgIHbhur0gxJHhu5MgdGjhu4suKiogIA0KDQojIyMjICoqNS4xIFNvIFPDoW5oLioqDQoqIFPhu60gZOG7pW5nIGPDoWMgxJHhurdjIHRyxrBuZyDEkW8gbMaw4budbmc6ICANCisgTWVhbjogxJDhu5kgbOG7m24gdHJ1bmcgYsOsbmggR0RQIGPhu6dhIDMgbsaw4bubYyBWaeG7h3QgTmFtLCBUaGFpbGFuZCwgU2Ftb2EuICANCisgTWVkaWFuIChUcnVuZyB24buLKTogTeG7mXQgxJHhuqFpIGzGsOG7o25nIHRo4buRbmcga8OqIG3DtCB04bqjIHRydW5nIHTDom0gY+G7p2EgbeG7mXQgdOG6rXAgaOG7o3Agc+G7kSBsaeG7h3UgZOG7ryBsaeG7h3Uu4bueIMSRw6J5IGNow7puZyB0YSBz4bq9IHTDrW5oIMSRxrDhu6NjIHRydW5nIHbhu4sgY+G7p2EgY+G7mXQgRyB0aGVvIGThu68gbGnhu4d1IGPhu5l0IFIuICANCisgVmFyOiBQaMawxqFuZyBzYWkgKMSR4buZIGRhbyDEkeG7mW5nKSwgcGjhuqNuIMOhbmggc+G7sSBwaMOibiB0w6FuIGPhu6dhIGPDoWMgc+G7kSBsaeG7h3Ugc28gduG7m2kgc+G7kSB0cnVuZyBiw6xuaCBj4bunYSBuw7MuICANCiogTeG7mXQgc+G7kSDEkeG6t2MgdHLGsG5nIGtow6FjOiAgDQorIFN1bW1hcnkoKTogY2hvIGJp4bq/dCBnacOhIHRy4buLIGzhu5tuIG5o4bqldCB0cm9uZyBk4buvIGxp4buHdSwgZ2nDoSB0cuG7iyBuaOG7jyBuaOG6pXQgaG/hurdjIGdpw6EgdHLhu4sgdHJ1bmcgdHLhu4sgdHJ1bmcgYsOsbmggdsOgIHRydW5nIHbhu4sgY+G7p2EgYuG7mSBk4buvIGxp4buHdS4gIA0KKyBMZW5ndGgoKTogY2hvIGJp4bq/dCDEkeG7mSBkw6BpIGPhu6dhIGLhu5kgZOG7ryBsaeG7h3UuICANCitRdWFudGlsZSgpOiBjdW5nIGPhuqVwIHThu6kgcGjDom4gduG7iyBj4bunYSBi4buZIGThu68gbGnhu4d1LiANCg0KIyMjIyAqKmEuIFNvIHPDoW5oIHPhu5EgbGnhu4d1IEdEUCBj4bunYSBWaeG7h3QgTmFtIHbDoCBUaGFpbGFuZC4qKg0KKiBM4buNYyBk4buvIGxp4buHdSBj4bunYSBWaWV0IE5hbSB2w6AgVGhhaWxhbmQgdGjDoG5oIGLhu5kgZOG7ryBsaeG7h3Ugbmjhu48gbMOgICoqYSoqIHbDoCAqKmIqKi4gIA0KYTogIA0KYGBge3IsIGVjaG89VFJVRX0NCmEgPC0gZSAlPiUgZmlsdGVyKGUkUiA9PSAnVmlldCBOYW0nKQ0KdGFibGUgPC0ga25pdHI6OmthYmxlKGEsIGZvcm1hdCA9ICJtYXJrZG93biIpDQp0YWJsZQ0KYGBgDQoNCioqKg0KYjogIA0KYGBge3IsIGVjaG89VFJVRX0NCmIgPC0gZSAlPiUgZmlsdGVyKGUkUiA9PSAnVGhhaWxhbmQnKQ0KdGFibGUgPC0ga25pdHI6OmthYmxlKGIsIGZvcm1hdCA9ICJtYXJrZG93biIpDQp0YWJsZQ0KYGBgDQoNCiogU+G7rSBk4bulbmcgY8OhYyDEkeG6t2MgdHLGsG5nOiAgDQoNCmBgYHtyLCBlY2hvPSBUUlVFfQ0KbWVhbihhJEcpDQpgYGANCg0KKiBT4butIGThu6VuZyBjw6J1IGzhu4duaCBtZWFuLCB0YSDEkcaw4bujYyBr4bq/dCBxdeG6oyA2LjI0Mjg1NzogxJHhu5kgbOG7m24gdHJ1bmcgYsOsbmggY+G7p2EgR0RQIFZp4buHdCBOYW0uICANCg0KYGBge3IsIGVjaG89VFJVRX0NCm1lYW4oYiRHKQ0KYGBgDQoqIDIuMjE0Mjg2IDogxJHhu5kgbOG7m24gdHJ1bmcgYsOsbmggY+G7p2EgR0RQIFRoYWlsYW5kLiAgIA0KYGBge3IsZWNobz1UUlVFfQ0KbWVkaWFuKGEkRykNCmBgYA0KDQoqIFPhu60gZOG7pW5nIGPDonUgbOG7h25oIG1lZGl1bSwgbmjhuq1uIMSRxrDhu6NjIGdpw6EgdHLhu4sgNi44OiBUcnVuZyB24buLIGPhu6dhIEdEUCBWaeG7h3QgTmFtLiAgDQoNCmBgYHtyLGVjaG89VFJVRX0NCm1lZGlhbihiJEcpDQpgYGANCg0KKiAzLjQ6IHRydW5nIHbhu4sgY+G7p2EgR0RQIFRoYWlsYW5kLiAgDQoNCmBgYHtyLCBlY2hvPVRSVUV9DQp2YXIoYSRHKQ0KYGBgDQoNCioyLjI2Mjg1NzogxJHhu5kgcGjDom4gdMOhbiBj4bunYSBHRFAgVmnhu4d0IE5hbSBzbyB24bubaSB0cnVuZyB24buLLCBnacOhIHRy4buLIG5o4bqtbiDEkcaw4bujYyBzYXUga2hpIHRo4buxYyBoaeG7h24gbOG7h25oIHZhci4gIA0KDQpgYGB7ciwgZWNobz1UUlVFfQ0KdmFyKGIkRykNCmBgYA0KDQoqIDE0LjA0NDc2OiDEkeG7mSBwaMOibiB0w6FuIGPhu6dhIEdEUCBUaGFpbGFuZCBzbyB24bubaSB0cnVuZyB24buLLiAgDQoNCmBgYHtyLCBlY2hvPVRSVUV9DQpzdW1tYXJ5KGEkRykNCmBgYA0KDQoqIEvhur90IHF14bqjIHRyw6puIGzDoCB04bupIHBow6JuIHbhu4sgY+G7p2EgRyBWaeG7h3QgTmFtLCB04burIG7Eg20gMjAxNiDEkeG6v24gMjAyMjogIA0KKyBHRFAgdGjhuqVwIG5o4bqldCBsw6AgMi45LiAgICANCisgMjUlIEdEUCBuaOG7r25nIG7Eg20ga2jDoWMgdGjhuqVwIGjGoW4gNi40NSAgDQorIEdEUCBjYW8gbmjhuqV0IGzDoCA3LjEuICAgDQorIDc1JSBHRFAgbmjhu69uZyBuxINtIGPDsm4gbOG6oWkgdGjhuqVwIGjGoW4gNy4gICAgDQoNCmBgYHtyLCBlY2hvPVRSVUV9DQpzdW1tYXJ5KGIkRykNCmBgYA0KDQoqIEvhur90IHF14bqjIHRyw6puIGzDoCB04bupIHBow6JuIHbhu4sgY+G7p2EgRyBUaGFpbGFuZCwgdOG7qyBuxINtIDIwMTYgxJHhur9uIDIwMjI6ICANCisgR0RQIHRo4bqlcCBuaOG6pXQgbMOgIC02LjEuICAgIA0KKyAyNSUgR0RQIG5o4buvbmcgbsSDbSBraMOhYyB0aOG6pXAgaMahbiAyLjY1ICAgIA0KKyBHRFAgY2FvIG5o4bqldCBsw6AgNC41LiAgIA0KKyA3NSUgR0RQIG5o4buvbmcgbsSDbSBjw7JuIGzhuqFpIHRo4bqlcCBoxqFuIDQuMi4gIA0KDQoqKkvhur90IEx14bqtbjoqKiAgDQoNCiogVGjDtG5nIHF1YSBuaOG7r25nIHPhu5EgbGnhu4d1IHRodSB0aOG6rXAgxJHGsOG7o2MsIHRhIHRo4bqleSBHRFAgVmnhu4d0IE5hbSB04burIG7Eg20gMjAxNiDEkeG6v24gbsSDbSAyMDIyIGNvbiBoxqFuIHNvIHbhu5tpIFRoYWlsYW5kLiAgDQoNCiMjIyMgKio1LjIgVuG6vSDEkeG7kyB0aOG7iy4qKiANCg0KKiAqKsSQ4buTIHRo4buLIEdEUCBj4bunYSBWaeG7h3QgTmFtLioqDQoNCmBgYHtyLGVjaG89VFJVRX0NCnRtcCA8LSBhDQpyYSA8LSB2ZWN0b3IoKQ0KaGEgPC0gdmVjdG9yKCkNCmZvcihpIGluIDE6KDItMSkpIHsNCiAgcmFbaV09ICh0bXAkR1tpKzFdL3RtcCRHW2ldLTEpDQogIGhhW2ldPSB0bXAkR1tpKzFdIC0gdG1wJEdbaV0gfQ0KZGcgPC0gZGF0YS5mcmFtZShyYSwgaGEpDQpkZyRZZSA8LSB0bXAkWWVbMjoyXQ0KdG1wICU+JSBnZ3Bsb3QoYWVzKHggPSBmYWN0b3IoRyksIHkgPSBZZSkpICsgZ2VvbV9jb2woZmlsbCA9J2dyZWVuJykgKyBsYWJzKHRpdGxlID0gJ0jDrG5oIDUuMi4xOiBHRFAgVmnhu4d0IE5hbSB0cm9uZyBnaWFpIMSRb+G6oW4gMjAxNiDEkeG6v24gMjAyMicpDQpgYGANCg0KKiAqKsSQ4buTIHRo4buLIEdEUCBj4bunYSBTYW1vYSB04burIG7Eg20gMjAxNiDEkeG6v24gMjAyMi4qKiAgDQpgYGB7ciwgZWNobz1UUlVFfQ0KcSA8LSBlICU+JSBmaWx0ZXIoZSRSID09ICdTYW1vYScpDQp0bXAgPC0gcQ0KcmEgPC0gdmVjdG9yKCkNCmhhIDwtIHZlY3RvcigpDQpmb3IoaSBpbiAxOigyLTEpKSB7DQogIHJhW2ldPSAodG1wJEdbaSsxXS90bXAkR1tpXS0xKQ0KICBoYVtpXT0gdG1wJEdbaSsxXSAtIHRtcCRHW2ldIH0NCmRnIDwtIGRhdGEuZnJhbWUocmEsIGhhKQ0KZGckWWUgPC0gdG1wJFllWzI6Ml0NCnRtcCAlPiUgZ2dwbG90KGFlcyh4ID0gZmFjdG9yKEcpLCB5ID0gWWUpKSArIGdlb21fY29sKGZpbGwgPSdyZWQnKSArIGxhYnModGl0bGUgPSAnSMOsbmggNS4yLjI6IEdEUCBTYW1vYSB0cm9uZyBnaWFpIMSRb+G6oW4gMjAxNiDEkeG6v24gMjAyMicpDQpgYGA=