library(webshot2)
## Warning: package 'webshot2' was built under R version 4.3.1
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.1
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(graphics)

1 FILE PDF:

https://drive.google.com/drive/u/0/folders/136sYvt2qSOLphFjTep0AIhUcqRpW4dy3

Đề tài: PHÂN TÍCH CÁC YẾU TỐ TÁC ĐỘNG ĐẾN TÌNH TRẠNG SỨC KHỎE

2 Lời cảm ơn

Lời đầu tiên, em xin gửi lời cảm ơn chân thành nhất đến Giảng viên – ThS.Trần Mạnh Tường. Trong quá trình học tập và tìm hiểu bộ môn “Phân tích dữ liệu định tính”, em đã nhận được sự quan tâm giúp đỡ, hướng dẫn rất tận tình, tâm huyết của thầy. Thầy đã giúp em tích lũy thêm nhiều kiến thức để có cái nhìn sâu sắc và hoàn thiện hơn về bộ môn này. Từ những kiến thức mà thầy truyền tải, chúng em đã dần hiểu được tầm quan trọng của các mô hình trong kinh tế mà bấy lâu nay còn nhiều thắc mắc và chưa rõ. Nhận nhiệm vụ của thầy, thông qua bài tiểu luận này em xin trình bày những gì mà em đã tìm hiểu về môn học, và cụ thể hơn ở đây em lựa chọn đề tài “Phân tích các yếu tố tác động đến tình trạng sức khỏe”.

Có lẽ kiến thức là vô hạn mà sự tiếp nhận kiến thức của bản thân mỗi người luôn tồn tại những hạn chế nhất định. Do đó, trong quá trình hoàn thành bài tiểu luận, chắc chắn em không tránh khỏi những thiếu sót. Vì vậy, em rất mong nhận được những đóng góp đến từ thầy để bài tiểu luận của nhóm được hoàn thiện hơn.

Kính chúc thầy sức khỏe, hạnh phúc và thành công trên con đường sự nghiệp giảng dạy của mình.

3 Phần mở đầu

3.1 Lí do chọn đề tài

Tôi chọn đề tài về tình trạng sức khỏe con người vì tôi quan tâm đến các yếu tố ảnh hưởng đến sức khỏe của mỗi cá nhân và cộng đồng. Sức khỏe con người là một khái niệm phức tạp, bao gồm các khía cạnh về thể chất, tinh thần và xã hội. Sức khỏe con người không chỉ phụ thuộc vào việc tiếp cận và sử dụng dịch vụ y tế, mà còn bị ảnh hưởng bởi nhiều nhân tố khác như nơi sống, môi trường, di truyền, thu nhập, trình độ học vấn, mối quan hệ với bạn bè và gia đình. Sức khỏe con người cũng là một quyền con người căn bản, được công nhận trong Hiến chương WHO (1946) và các hiệp ước quốc tế về nhân quyền. Việc nghiên cứu về tình trạng sức khỏe con người có thể giúp ta hiểu rõ hơn về các thách thức và cơ hội để cải thiện sức khỏe cho mọi người, đặc biệt là những nhóm dân cư bị bất lợi và bị loại trừ. Qua đề tài này, tôi mong muốn đóng góp vào việc xây dựng một xã hội công bằng, bền vững và phát triển, nơi mà mọi người đều có thể sống khỏe mạnh và hạnh phúc bằng cách phân tích ra các tác động có thể ảnh hưởng đến tình trạng sức khỏe của con người.

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

Phân tích các yếu tố tác động đến tình trạng sức khỏe của con người dựa trên tập dữ liệu HealthInsurance trong gói AER.

3.3 Phạm vi nghiên cứu

Tập dữ liệu chứa thông tin về chi phí y tế của các hộ gia đình tại Hoa Kỳ gồm 8.802 quan sát trên 11 biến.

3.4 Kết cấu đề tài

  • Chương 1: Tổng quan về cơ sở lí thuyết

  • Chương 2: Phương pháp và kết quả nghiên cứu

  • Chương 3: Kết luận

4 CHƯƠNG 1: TỔNG QUAN VỀ CƠ SỞ LÍ THUYẾT

4.1 Định nghĩa về thống kê

Thống kê là một hệ thống các phương pháp sử dụng mô hình, là sự biểu diễn và tóm tắt định lượng một tập dữ liệu thực nghiệm hoặc nghiên cứu thực tế nhất định nhằm phục vụ cho quá trình phân tích, dự đoán và ra quyết định. Thống kê giúp chúng ta có cái nhìn tổng quan và chính xác về những hiện tượng và sự kiện xảy ra trong thực tế, cũng như khám phá những mối quan hệ, xu hướng và đặc điểm của chúng.

Thống kê có thể được chia thành hai loại: thống kê mô tả và thống kê suy luận. Thống kê mô tả nhằm mục đích tổng hợp và trình bày dữ liệu bằng các số liệu hoặc biểu đồ. Thống kê mô tả giúp chúng ta hiểu được bản chất và phân bố của dữ liệu, cũng như so sánh và đánh giá các nhóm dữ liệu khác nhau. Thống kê suy luận nhằm mục đích rút ra những kết luận hoặc kiểm định các giả thuyết dựa trên dữ liệu mẫu. Thống kê suy luận giúp chúng ta suy diễn về tổng thể dựa trên một phần của nó, cũng như ước lượng và kiểm tra tính tin cậy của các kết quả.

Thống kê được ứng dụng rộng rãi trong nhiều lĩnh vực như kinh tế, khoa học, công nghiệp, xã hội, y tế, giáo dục,… Thống kê giúp chúng ta có được những thông tin quan trọng và cần thiết để hỗ trợ cho việc ra quyết định, lập kế hoạch, điều tra, nghiên cứu và giải quyết các vấn đề trong thực tế. Ví dụ, trong kinh tế, thống kê được sử dụng để theo dõi và đánh giá các chỉ số kinh tế như GDP, lạm phát, thất nghiệp,… Trong khoa học, thống kê được sử dụng để thiết kế và phân tích các thí nghiệm, kiểm tra các giả thuyết khoa học và khảo sát các hiện tượng tự nhiên. Trong công nghiệp, thống kê được sử dụng để kiểm soát chất lượng, cải tiến quy trình sản xuất và tối ưu hóa nguồn lực. Trong xã hội, thống kê được sử dụng để khảo sát ý kiến công chúng, nghiên cứu các vấn đề xã hội như giáo dục, an ninh, môi trường, vv. Trong y tế, thống kê được sử dụng để nghiên cứu các bệnh lý, đánh giá hiệu quả của các phương pháp điều trị và phòng ngừa.

4.2 Gói AER

Gói AER là một gói trong RStudio, dùng để thực hiện các phân tích kinh tế lượng với R. Gói AER bao gồm các hàm để ước lượng các mô hình hồi quy tuyến tính, hồi quy phi tuyến, hồi quy đa biến, hồi quy đa cấp, hồi quy bảng, hồi quy đếm, hồi quy nhị phân, hồi quy định lượng, hồi quy cắt ngang, hồi quy dòng thời gian và hồi quy không gian. Gói AER cũng cung cấp các hàm để kiểm tra các giả thiết của các mô hình, xây dựng các khoảng tin cậy và kiểm định các giả thuyết. Ngoài ra, gói AER còn có các tập dữ liệu được sử dụng trong sách Applied Econometrics with R, ví dụ như dữ liệu về thu nhập, giá cả, tiêu dùng, xuất khẩu, nhập khẩu, sản xuất, lao động, giáo dục, y tế và môi trường.

4.3 Phân Phối Poisson

Phân phối Poisson là một phân phối xác suất rời rạc, có nghĩa là biến chỉ có thể nhận các giá trị cụ thể trong một danh sách các số nhất định, có thể là vô hạn.

Phân phối Poisson đo lường số lần một sự kiện có khả năng xảy ra trong khoảng thời gian “x”.

Phân phối Poisson còn được gọi là luật số nhỏ vì nó là xác suất phân phối của số lần xuất hiện của một sự kiện xảy ra trong một khoảng thời gian hoặc không gian cho trước.

Xác suất để biến ngẫu nhiên này nhận một giá trị cụ thể được tính bằng công thức:

\(P(X=k) = \frac{e^{-λ}λ^k}{k!}\)

4.4 Phân Phối Nhị Thức

Phân phối nhị thức là một phân phối xác suất rời rạc, có nghĩa là biến chỉ có thể nhận một trong hai giá trị độc lập.

Phân phối nhị thức được sử dụng để tính xác suất thành công của Biến ngẫu nhiên X gồm n sự việc độc lập nhau và xác suất Thành công là bằng nhau và bằng p cho từng sự việc.

Giả định cơ bản của phân phối nhị thức là chỉ có một kết quả cho mỗi thử nghiệm, rằng mỗi thử nghiệm có xác suất thành công như nhau và mỗi thử nghiệm là loại trừ lẫn nhau hoặc độc lập với nhau.

Khi đó xác suất để X nhận một giá trị cụ thể là

\(P(X=k) = C_k^np^k(1-p)^{n-k}\)

4.5 Bảng tần số

Bảng tần số là một bảng thống kê cho biết số lần xuất hiện của các giá trị của một dấu hiệu trong một tập dữ liệu. Bảng tần số còn được gọi là bảng ngẫu nhiên.

Đối với bảng tần số chúng ta quy ước biến phụ thuộc được xắp xếp theo cột, biến độc lập được xắp xếp theo hàng.

4.6 Độ nhạy và độ đặc hiệu

Độ nhạy (sensitivity) của một thí nghiệm: Là tỷ lệ (%) của số ca bị bệnh thực sự khi xét nghiệm và cho kết quả dương tính với tổng số ca bị bệnh. Công thức để tính độ nhạy:

\(Độ nhạy = \frac{số dương tính thật}{(số đương tính thật + số âm tính giả)}\)

Độ đặc hiệu (specificity) của một thí nghiệm: Là tỷ lệ (%) của số ca không bị bệnh và kết quả xét nghiệm không bị bệnh với tổng số người không bị bệnh. Công thức tính độ đặc hiệu:

\(Độ đặc hiệu = \frac{Số trường hợp âm tính thật}{(số trường hợp âm tính thật + số trường hợp dương tính giả)}\)

4.7 Rủi ro tương đối

Ký hiệu \(π_i\) là tỷ lệ “thành công” của biến phụ thuộc (response variable) tương ứng với từng biểu hiện của biến độc lập.

Từ bảng tần xuất, chúng ta tính \(\frac{π_1}{π_2}\), phân số này gọi là Rủi ro tương đối (Relative risk) giữa 2 biểu hiện khác nhau của biến phụ thuộc.

4.8 Tỷ lệ chênh

Tỷ lệ chênh là tỉ số giữa hai tỷ lệ. Tỷ lệ là một mối quan hệ giữa hai số cho biết số đầu tiên chiếm số thứ hai bao nhiêu lần.

Nếu gọi xác suất “thành công” của biểu hiện thứ \(i\) của biến độc lập là \(π_i\) thì chúng ta kí hiệu Tỷ lệ cược (odd) của biểu hiện này là \(odd_i\) và được định nghĩa như sau:

\(oddi=\frac{πi}{1−πi}\)

Nghĩa là chúng ta tính tỷ lệ thành công theo từng hàng trong bảng ngẫu nhiên.

Tỷ lệ chênh của biểu hiện thứ i và biểu hiện thứ j được kí hiệu là θij và được định nghĩa:

\(θ=\frac{odd_i}{odd_j}=\frac{π_i(1−π_j)}{π_j(1−π_i)}\)

4.9 Khoảng ước lượng cho tỉ lệ

Khoảng ước lượng cho tỉ lệ trong RStudio là một khoảng chứa giá trị của tỉ lệ tổng thể dựa trên mẫu dữ liệu, với một mức độ tin cậy nhất định. Có công thức tổng thể như sau:

\(p−Z_{α/2} \sqrt{ \frac{p(1-p)}{n}}\)

Trong đó: p là tỉ lệ mẫu, \(Z_{α/2}\) là giá trị phân vị của phân phối chuẩn tại mức ý nghĩa α, n là kích thước mẫu.

4.10 Các tiêu chí đánh giá mô hình

Để đánh giá các mô hình hồi cổ điển chúng ta thường dựa vào hệ số xác định mô hình (R2), nhưng đối với mô các mô hình hồi quy tuyến tính tổng quát chúng ta sử dụng các tiêu chí sau:

4.10.1 AIC - Akaike Information Criterion

AIC được đề xuất bởi Akaike Hirotugu, một nhà thống kê học người Nhật. AIC là một tiêu chí được sử dụng một cách phổ biến để đánh giá một mô hình hồi quy được ước lượng bởi phương pháp MaximumLikekihood (ML). Một cách chung chung giá trị của AIC càng nhỏ thì mô hình càng tốt. AIC được tính bằng công thức sau:

\(AIC=−2ln(L)+2k\)

Với L là giá trị cực đại của hàm hợp lý (likelihood function) và k là số tham số của mô hình.

Khi thực hiện việc ước lượng mô hình hồi quy bằng lệnh glm thì chỉ số AIC đã được tính toán và thể hiện trên bảng kết quả ( bằng lệnh summary)

4.10.2 Deviance

Deviance cũng là một tiêu chí rất phổ biến được sử dụng để đánh giá một mô hình hồi quy được ước lượng bởi phương pháp Hợp lý cực đại (ML). Một cách tổng quá, cũng giống như chỉ tiêu AIC, giá trị của Deviance càng nhỏ thì mô hình càng tốt.

Lưu ý: Khi thực hiện việc ước lượng mô hình hồi quy bằng lệnh glm thì chỉ số AIC và Deviance đã được tính toán và thể hiện trên bảng kết quả ( bằng lệnh summary).

4.10.3 Brier Score

Là chỉ tiêu dùng để đánh giá mô hình hồi quy logistic, Brier Score được tính như sau:

\(B= \frac{1}{n}\sum_{i=1}^{n}p_i -o_i\)

Trong đó: \(p_i\),\(o_i\) lần lượt là giá trị xác suất quan sát được, và giá trị xác suất tính ra từ mô hình.

5 CHƯƠNG 2: PHƯƠNG PHÁP VÀ KẾT QUẢ NGHIÊN CỨU

5.1 Tổng quan dữ liệu

library(AER)
## Warning: package 'AER' was built under R version 4.3.1
## Loading required package: car
## Warning: package 'car' was built under R version 4.3.1
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.3.1
## 
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
## 
##     recode
## Loading required package: lmtest
## Warning: package 'lmtest' was built under R version 4.3.1
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.3.1
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## Loading required package: sandwich
## Warning: package 'sandwich' was built under R version 4.3.1
## Loading required package: survival
data("HealthInsurance")
DLDT <- HealthInsurance
library(DT)
## Warning: package 'DT' was built under R version 4.3.1
DLDT %>% DT::datatable(DLDT)

Giải thích các bộ dữ liệu:

Tập dữ liệu HealthInsurance trong gói AER là một tập dữ liệu chứa thông tin về chi phí y tế của các hộ gia đình tại Hoa Kỳ. Tập dữ liệu này bao gồm 8.802 quan sát trên 11 biến. Các biến bao gồm:

  • health: Chỉ số sức khỏe của người được khảo sát.

  • age: Tuổi của người được khảo sát.

  • limit: Chỉ số giới hạn sức khỏe của người được khảo sát.

  • gender: Giới tính của người được khảo sát.

  • insurance: Chỉ số bảo hiểm y tế của người được khảo sát.

  • married: Tình trạng hôn nhân của người được khảo sát.

  • selfemp: Tình trạng tự làm chủ của người được khảo sát.

  • family: Kích thước gia đình của người được khảo sát.

  • region: Vùng địa lý của người được khảo sát.

  • ethnicity: Dân tộc của người được khảo sát.

  • education: Trình độ học vấn của người được khảo sát.

str(HealthInsurance)
## 'data.frame':    8802 obs. of  11 variables:
##  $ health   : Factor w/ 2 levels "no","yes": 2 2 2 2 2 2 1 2 2 2 ...
##  $ age      : num  31 31 54 27 39 32 56 60 62 52 ...
##  $ limit    : Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 2 1 1 1 ...
##  $ gender   : Factor w/ 2 levels "female","male": 2 1 2 2 2 1 1 1 2 1 ...
##  $ insurance: Factor w/ 2 levels "no","yes": 2 2 2 2 2 1 2 2 2 1 ...
##  $ married  : Factor w/ 2 levels "no","yes": 2 2 2 1 2 1 2 2 2 2 ...
##  $ selfemp  : Factor w/ 2 levels "no","yes": 2 1 1 1 1 1 1 1 1 1 ...
##  $ family   : num  4 4 5 5 5 3 2 2 2 2 ...
##  $ region   : Factor w/ 4 levels "northeast","midwest",..: 3 3 4 4 4 3 4 3 3 1 ...
##  $ ethnicity: Factor w/ 3 levels "other","afam",..: 3 3 3 3 3 2 3 3 3 2 ...
##  $ education: Factor w/ 7 levels "none","ged","highschool",..: 4 3 2 3 1 4 3 3 3 3 ...

5.2 Biến định tính

Các biến định tính gồm: health, limit, gender, insurance, married, selfemp, region, ethnicity và education. Trong đó:

  • health: Nhận hai giá trị là “yes” và “No”, thể hiện người khảo sát có sức khỏe tốt hoặc là không có sức khỏe tốt.

  • limit: Nhận hai giá trị là “yes” và “No”, thể hiện người khảo sát có giới hạn về sức khỏe hoặc không có giới hạn về sức khỏe.

  • gender: Nhận hai giá trị là “female” và “male”, thể hiện người khảo sát là nữ hay là nam.

  • insurance: Nhận hai giá trị là “yes” và “No”, thể hiện người khảo sát có bảo hiểm y tế hoặc không có bảo hiểm y tế.

  • married: Nhận hai giá trị là “yes” và “No”, thể hiện người khảo sát có tình trạng hôn nhân hoặc không có tình trạng hôn nhân.

  • selfemp: Nhận hai giá trị là “yes” và “No”, thể hiện người khảo sát có tự chủ tài chính hoặc không có tự chủ tài chính.

  • region: Nhận 4 giá trị, cụ thể là giá trị “northeast” cho biết người được khảo sát sống ở vùng Đông Bắc Hoa Kỳ, giá trị “south” cho biết người được khảo sát sống ở vùng Nam Hoa Kỳ, giá trị “midwest” cho biết người được khảo sát sống ở vùng Trung Tây Hoa Kỳ và giá trị “West” cho biết người được khảo sát sống ở vùng Tây Hoa Kỳ.

  • ethnicity: Nhận 3 giá trị, cụ thể là giá trị “Afam” cho biết người được khảo sát là người Mỹ gốc Phi, giá trị “Cauc” cho biết người được khảo sát là người Mỹ gốc Châu Âu và giá trị “other” cho biết người được khảo sát là người thuộc các dân tộc khác.

  • education: Nhận 7 giá trị, cụ thể là giá trị “none” cho biết người được khảo sát không có bằng cấp, giá trị “ged” cho biết người được khảo sát có bằng tương đương với trung học phổ thông, giá trị “high school” cho biết người được khảo sát đã tốt nghiệp trung học phổ thông và giá trị “bachelor”, “master”, “PhD” và “other” cho biết người được khảo sát có bằng cấp đại học hoặc cao hơn.

5.3 Biến định lượng

  • age: Thể hiện độ tuổi của người khảo sát.

  • family: Thể hiện kích thước thành viên trong gia đình của người khảo sát.

5.4 Xác định biến phụ thuộc

5.4.1 Biến định tính

Tôi chọn health làm biến phụ thuộc, vì tôi muốn đánh giá mức độ ảnh hưởng của các yếu tố trên đến sức khỏe của những người tham gia khảo sát.

5.4.2 Biến định lượng

Tôi chọn family làm biến phụ thuộc, vì biến này sẽ cho tôi biết được số thành viên của 1 gia đình sẽ có tác động thể nào đối với sức khỏe của những người tham gia khảo sát.

5.5 Thống kê mô tả

5.5.1 Thống kê mô tả cho biến insurance

## Bảng tần suất của biến insurance
table(DLDT$insurance)
## 
##   no  yes 
## 1750 7052
## Bảng tần suất của biến insurance theo tỉ lệ %
table(DLDT$insurance)/sum(table(DLDT$insurance))
## 
##        no       yes 
## 0.1988185 0.8011815
## Biểu đồ hình tròn của biến insurance
library("ggplot2")
## Warning: package 'ggplot2' was built under R version 4.3.1
DLDT |> ggplot(aes(x = insurance, y = after_stat(count))) + geom_bar(fill = 'lightpink') + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'red', vjust = - .5) + theme_classic() + labs(x = 'Sở hữu bảo hiểm', y = 'Tỷ trọng')

Từ bảng tần suất và biểu đồ cột của biến insurance, ta thu được kết quả sau: số người sở hữu bảo hiểm chiếm tỉ lệ cao nhất là 80% và tỉ lệ người không sở hữu bảo hiểm chiếm 20% trong tổng số người tham gia khảo sát.

5.5.2 Thống kê mô tả cho biến health

## Bảng tần suất của biến health
table(DLDT$health)
## 
##   no  yes 
##  629 8173
## Bảng tần suất của biến health theo tỉ lệ %
table(DLDT$health)/sum(table(DLDT$health))
## 
##         no        yes 
## 0.07146103 0.92853897
## Biểu đồ hình tròn của biến health
library("ggplot2")
DLDT |> ggplot(aes(x = health, y = after_stat(count))) + geom_bar(fill = 'lightpink') + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'red', vjust = - .5) + theme_classic() + labs(x = 'Tình trạng sức khỏe', y = 'Tỷ trọng')

Từ bảng tần suất và biểu đồ cột của biến health, ta thu được kết quả sau: số người có tình trạng sức khỏe tốt chiếm tỉ lệ cao nhất là 93% và tỉ lệ người tình trạng sức khỏe không tốt chiếm 7% trong tổng số người tham gia khảo sát.

5.5.3 Thống kê mô tả cho biến limit

## Bảng tần suất của biến limit
table(DLDT$limit)
## 
##   no  yes 
## 7571 1231
## Bảng tần suất của biến limit theo tỉ lệ %
table(DLDT$limit)/sum(table(DLDT$limit))
## 
##        no       yes 
## 0.8601454 0.1398546
## Biểu đồ cột của biến limit
library("ggplot2")
DLDT |> ggplot(aes(x = limit, y = after_stat(count))) + geom_bar(fill = 'lightpink') + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'red', vjust = - .5) + theme_classic() + labs(x = 'Giới hạn về tình trạng sức khỏe', y = 'Tỷ trọng')

Từ bảng tần suất và biểu đồ cột của biến limit, ta thu được kết quả sau: số người không có giới hạn về trình trạng sức khỏe chiếm tỉ lệ cao nhất là 86% và tỉ lệ người có giới hạn về tình trạng sức khỏe chiếm 14% trong tổng số người tham gia khảo sát.

5.5.4 Thống kê mô tả cho biến selfemp

## Bảng tần suất của biến selfemp
table(DLDT$selfemp)
## 
##   no  yes 
## 7731 1071
## Bảng tần suất của biến selfemp theo tỉ lệ %
table(DLDT$selfemp)/sum(table(DLDT$selfemp))
## 
##        no       yes 
## 0.8783231 0.1216769
## Biểu đồ cột của biến selfemp
library("ggplot2")
DLDT |> ggplot(aes(x = selfemp, y = after_stat(count))) + geom_bar(fill = 'lightpink') + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'red', vjust = - .5) + theme_classic() + labs(x = 'Tình trạng tự chủ tài chính ', y = 'Tỷ trọng')

Từ bảng tần suất và biểu đồ cột của biến selfemp, ta thu được kết quả sau: số người không tự chủ về tài chính chiếm tỉ lệ cao nhất là 88% và tỉ lệ người tự chủ về tài chính chiếm 12% trong tổng số người tham gia khảo sát.

5.5.5 Thống kê mô tả cho biến gender

## Bảng tần suất của biến gender
table(DLDT$gender)
## 
## female   male 
##   4169   4633
## Bảng tần suất của biến gender theo tỉ lệ %
table(DLDT$gender)/sum(table(DLDT$gender))
## 
##    female      male 
## 0.4736424 0.5263576
## Biểu đồ cột của biến gender
library("ggplot2")
DLDT |> ggplot(aes(x = gender, y = after_stat(count))) + geom_bar(fill = 'lightpink') + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'red', vjust = - .5) + theme_classic() + labs(x = 'Giới tính', y = 'Tỷ trọng')

Từ bảng tần suất và biểu đồ cột của biến gender, ta thu được kết quả sau: giới tính nam chiếm tỉ lệ cao nhất là 52.6% và tỉ lệ giới tính nữ chiếm 47.4% trong tổng số người tham gia khảo sát.

5.5.6 Thống kê mô tả cho biến region

## Bảng tần suất của biến region
table(DLDT$region)
## 
## northeast   midwest     south      west 
##      1682      2023      3075      2022
## Bảng tần suất của biến region theo tỉ lệ %
table(DLDT$region)/sum(table(DLDT$region))
## 
## northeast   midwest     south      west 
## 0.1910929 0.2298341 0.3493524 0.2297205
## Biểu đồ cột của biến region
library("ggplot2")
DLDT |> ggplot(aes(x = region, y = after_stat(count))) + geom_bar(fill = 'lightpink') + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'red', vjust = - .5) + theme_classic() + labs(x = 'Vị trí địa lí', y = 'Tỷ trọng')

Từ bảng tần suất và biểu đồ cột của biến region, ta thu được kết quả sau: số người tham gia khảo sát ở vùng south chiếm tỉ lệ cao nhất là 34.935% và tỉ lệ người tham gia khảo sát thấp nhât ở vùng northeast là 19.109%.

Tôi tiến hành mã hóa biến region thành 2 vùng chung được gọi là vùng 1 và vùng 2, vùng 1 gồm northeast (Đông Bắc Hoa Kỳ) và midwest (Trung tây Hoa Kỳ); vùng 2 gồm south (Nam Hoa Kỳ) và west (Tây Hoa Kỳ).

region <- factor(DLDT$region, levels = c("northeast", "midwest", "south","west"), labels = c("vung1", "vung1", "vung2", "vung2"))

5.5.7 Thống kê mô tả cho biến ethnicity

## Bảng tần suất của biến ethnicity
table(DLDT$ethnicity)
## 
## other  afam  cauc 
##   365  1083  7354
## Bảng tần suất của biến ethnicity theo tỉ lệ %
table(DLDT$ethnicity)/sum(table(DLDT$ethnicity))
## 
##      other       afam       cauc 
## 0.04146785 0.12304022 0.83549193
## Biểu đồ cột của biến ethnicity
library("ggplot2")
DLDT |> ggplot(aes(x = ethnicity, y = after_stat(count))) + geom_bar(fill = 'lightpink') + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'red', vjust = - .5) + theme_classic() + labs(x = 'Nguồn gốc của người khảo sát', y = 'Tỷ trọng')

Từ bảng tần suất và biểu đồ cột của biến ethnicity, ta thu được kết quả sau: số người có nguồn gốc ở cauc (gốc châu âu) chiếm tỉ lệ cao nhất là 83.5% và tỉ lệ người tham gia khảo sát thấp nhât có nguồn gốc khác (other) là 4.1%.

Tôi tiến hành mã hóa biến ethnicity từ 3 nguồn gốc của người khảo sát thành 2 nguồn gốc chính, là other gồm other và afam (Mỹ gốc Phi) và cauc (Châu âu).

ethnicity <- factor(DLDT$ethnicity, levels = c("other", "afam", "cauc"), labels = c("other", "other", "cauc"))

5.5.8 Thống kê mô tả cho biến education

## Bảng tần suất của biến education
table(DLDT$education)
## 
##       none        ged highschool   bachelor     master        phd      other 
##       1119        374       4434       1549        524        135        667
## Bảng tần suất của biến educationt theo tỉ lệ %
table(DLDT$education)/sum(table(DLDT$education))
## 
##       none        ged highschool   bachelor     master        phd      other 
## 0.12713020 0.04249034 0.50374915 0.17598273 0.05953192 0.01533742 0.07577823
## Biểu đồ hình tròn của biến education
library("ggplot2")
DLDT |> ggplot(aes(x = education, y = after_stat(count))) + geom_bar(fill = 'lightpink') + geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'red', vjust = - .5) + theme_classic() + labs(x = 'Trình độ học vấn', y = 'Tỷ trọng')

Từ bảng tần suất và biểu đồ cột của biến education, ta thu được kết quả sau: số người có trình độ học vấn ở mức highschool chiếm tỉ lệ cao nhất là 50.4% và tỉ lệ người có trình độ học vấn phd ở mức thấp nhât là 1.5%.

Tôi tiến hành mã hóa biến education, gồm 7 trình độ học vấn khác nhau thành 2 mức là trình độ cao (higheducation) gồm bachelor, master, pdh, other và trình độ thấp (loweducattion) gồm none, ged, highschool.

educated <- factor(DLDT$education, levels = c("none", "ged", "highschool", "bachelor", "master", "phd", "other"), labels = c("loweducattion", "loweducattion", "loweducattion", "higheducation", "higheducation", "higheducation","higheducation"))

5.5.9 Thống kê mô tả cho biến định lượng còn lại

total <- data.frame(DLDT$family,DLDT$age)
summary(total)
##   DLDT.family        DLDT.age    
##  Min.   : 1.000   Min.   :18.00  
##  1st Qu.: 2.000   1st Qu.:30.00  
##  Median : 3.000   Median :39.00  
##  Mean   : 3.094   Mean   :38.94  
##  3rd Qu.: 4.000   3rd Qu.:48.00  
##  Max.   :14.000   Max.   :62.00
sd(DLDT$family)
## [1] 1.559633
sd(DLDT$age)
## [1] 11.11082

Từ kết quả trên, ta xác định được như sau:

  • Biến family có số thành viên trong gia đình trung bình là 38.94, trung vị là 3 và số thành viên trong gia đình dao động từ nhỏ nhất là 1 thành viên đến lớn nhất là 14 thành viên, với độ lệch chuẩn là 1.559633.

  • Biến age có độ tuổi trung bình là 3.094, trung vị là 39 và độ tuổi dao động từ nhỏ nhất là 18 tuổi cho đến lớn nhất là 62 tuổi, với độ lệch chuẩn là 11.11082.

hist(DLDT$family, col='lightpink')

Dựa vào biểu đồ histogram của biến family cho thấy số thành viên được phân bổ nhiều nhất là từ 1 cho đến 2 người và từ 6 người trở lên thì dần trở nên thấp hơn.

Tôi tiến hành mã hóa biến family thành 2 giá trị chính là ít người và nhiều người thể hiện số lượng thành viên của 1 gia đình là ít hay là nhiều. Tôi cho rằng số thành viên trong giá đình từ 1 cho đến 4 là ít người và từ 4 trở lên là nhiều người.

family1 <-cut(DLDT$family, breaks=c(0,4,14), labels=c('itnguoi' , 'nhieunguoi'))
table(family1)
## family1
##    itnguoi nhieunguoi 
##       7413       1389

Dựa vào biểu đồ

hist(DLDT$age, col='lightpink')

Dựa vào biểu đồ histogram của biến age cho thấy độ tuổi từ 35 đến 40 chiếm tỉ lệ nhiều nhất và độ tuổi từ 60 có tỉ lệ thấp nhất.

Tôi tiến hành mã hóa biến age thành 2 giá trị chính là dưới 40 tuổi và lớn hơn 40 tuổi.

age1 <-cut(DLDT$age, breaks=c(1,40,70), labels=c('duoi40' , 'tren40'))

Việc mã hóa các biến độc lập thành 2 giá trị giúp tôi có thể dễ dàng hơn trong việc đánh giá mức độ tác động của các biến độc lập đến biến phụ định tính phụ thuộc (health). Tôi tiến hành gom các biến vào data mới đặt tên là z.

z <- data.frame(DLDT$health, DLDT$limit, DLDT$gender, DLDT$insurance, DLDT$married, DLDT$selfemp, DLDT$region, DLDT$ethnicity, DLDT$education, DLDT$age, age1, family1, ethnicity, educated, region)

5.6 Thống kê mô tả 2 biến

5.6.1 Thống kê mô tả biến health với age

Age <- table(DLDT$health, z$age1 )
Age
##      
##       duoi40 tren40
##   no     286    343
##   yes   4594   3579
ggplot(z, aes(DLDT$health, fill = z$age1)) + geom_bar(position = 'dodge')
## Warning: Use of `z$age1` is discouraged.
## ℹ Use `age1` instead.

Dựa vào biểu đồ cột trên của biến health và age, ta thu được kết quả sau:

  • Tỉ lệ người có tình trạng sức khỏe không được tốt chiếm tỉ lệ cao ở mức trên 40 tuổi.

  • Tỉ lệ người có tình trạng sức khỏe tốt chiếm tỉ lệ cao ở mức dưới 40 tuổi.

=> Và đây là sự thật hiển nhiên vì yếu tố độ tuổi có ảnh hưởng lớn đến sức khỏe, thể hiện thông qua sự lão hóa của con người.

5.6.2 Thống kê mô tả biến health với family

Family2 <- table(DLDT$health, z$family1 )
Family2
##      
##       itnguoi nhieunguoi
##   no      501        128
##   yes    6912       1261
ggplot(z, aes(DLDT$health, fill = z$family1)) + geom_bar(position = 'dodge')
## Warning: Use of `z$family1` is discouraged.
## ℹ Use `family1` instead.

Dựa vào biểu đồ cột trên của biến health và family, ta thu được kết quả sau:

  • Tỉ lệ người có tình trạng sức khỏe tốt và không được tốt đều chiếm tỉ lệ cao ở những gia đình ít người và cụ thể ở đây là gia đình từ 1-4 người.

5.6.3 Thống kê mô tả biến health với limit

limit1 <- table(DLDT$health, DLDT$limit )
limit1
##      
##         no  yes
##   no   401  228
##   yes 7170 1003
ggplot(z, aes(DLDT$health, fill = DLDT$limit)) + geom_bar(position = 'dodge')

Dựa vào biểu đồ cột trên của biến health và limit, ta thu được kết quả sau:

  • Tỉ lệ người có tình trạng sức khỏe tốt và không được tốt đều chiếm tỉ lệ cao ở những người không có giới hạn về sức khỏe.

5.6.4 Thống kê mô tả biến health với gender

gender1 <- table(DLDT$health, DLDT$gender )
gender1
##      
##       female male
##   no     323  306
##   yes   3846 4327
ggplot(z, aes(DLDT$health, fill = DLDT$gender)) + geom_bar(position = 'dodge')

Dựa vào biểu đồ cột trên của biến health và gender, ta thu được kết quả sau:

  • Tỉ lệ người có tình trạng sức khỏe không được tốt chiếm tỉ lệ cao ở giới tính nữ, tuy nhiên tỉ lệ chênh lệch không quá cao.

  • Tỉ lệ người có tình trạng sức khỏe tốt chiếm tỉ lệ cao ở giới tính nam.

5.6.5 Thống kê mô tả biến health với insurance

insurance1 <- table(DLDT$health, DLDT$insurance )
insurance1
##      
##         no  yes
##   no   171  458
##   yes 1579 6594
ggplot(z, aes(DLDT$health, fill = DLDT$insurance)) + geom_bar(position = 'dodge')

Dựa vào biểu đồ cột trên của biến health và insurance, ta thu được kết quả sau:

  • Tỉ lệ người có tình trạng sức khỏe tốt và không tốt đều có tỉ lệ sở hữu bảo hiểm cao hơn những người không sở hữu bảo hiểm.

5.6.6 Thống kê mô tả biến health với married

married1 <- table(DLDT$health, DLDT$married )
married1
##      
##         no  yes
##   no   231  398
##   yes 3138 5035
ggplot(z, aes(DLDT$health , fill = DLDT$married)) + geom_bar(position = 'dodge')

Dựa vào biểu đồ cột trên của biến health và married, ta thu được kết quả sau:

  • Tỉ lệ người có tình trạng sức khỏe tốt và không tốt đều có tỉ lệ đã lập gia đình cao hơn những người chưa lập gia đình.

5.6.7 Thống kê mô tả biến health với selfemp

selfemp1 <- table(DLDT$health, DLDT$selfemp )
selfemp1
##      
##         no  yes
##   no   562   67
##   yes 7169 1004
ggplot(z, aes(DLDT$health, fill = DLDT$selfemp)) + geom_bar(position = 'dodge')

Dựa vào biểu đồ cột trên của biến health và selfemp, ta thu được kết quả sau:

  • Tỉ lệ người có tình trạng sức khỏe tốt và không tốt đều có tỉ lệ chưa tự chủ về tài chính cao hơn những người tham gia khảo sát đã tự chủ về tài chính.

5.6.8 Thống kê mô tả biến health với ethnicity

ethnicity1 <- table(DLDT$health, ethnicity )
ethnicity1
##      ethnicity
##       other cauc
##   no    134  495
##   yes  1314 6859
ggplot(z, aes(DLDT$health, fill = ethnicity)) + geom_bar(position = 'dodge')

Dựa vào biểu đồ cột trên của biến health và ethnicity, ta thu được kết quả sau:

  • Tỉ lệ người có tình trạng sức khỏe tốt và không tốt đều có tỉ lệ nguồn gốc ở cauc (châu âu) nhiều hơn nguồn gốc ở other (khác).

5.6.9 Thống kê mô tả biến health với education

education1 <- table(DLDT$health, z$educated)
education1
##      
##       loweducattion higheducation
##   no            506           123
##   yes          5421          2752
ggplot(z, aes(DLDT$health, fill = z$educated)) + geom_bar(position = 'dodge')
## Warning: Use of `z$educated` is discouraged.
## ℹ Use `educated` instead.

Dựa vào biểu đồ cột trên của biến health và education, ta thu được kết quả sau:

  • Tỉ lệ người có tình trạng sức khỏe tốt và không tốt đều có tỉ lệ loweducation (học vấn thấp) cao hơn tỉ lệ higheducation (học vấn cao).

5.6.10 Thống kê mô tả biến health với region

region1 <- table(DLDT$health, z$region )
region1
##      
##       vung1 vung2
##   no    226   403
##   yes  3479  4694
ggplot(z, aes(DLDT$health, fill = z$region )) + geom_bar(position = 'dodge')
## Warning: Use of `z$region` is discouraged.
## ℹ Use `region` instead.

Dựa vào biểu đồ cột trên của biến health và region, ta thu được kết quả sau:

  • Tỉ lệ người có tình trạng sức khỏe tốt và không tốt đều có tỉ lệ vị trí địa lí ở vùng 2 cao hơn vị trí địa lí ở vùng 1.

5.7 Rủi ro tương đối

5.7.1 Rủi ro tương đối của biến health với age

library(epitools)
## 
## Attaching package: 'epitools'
## The following object is masked from 'package:survival':
## 
##     ratetable
epitab(Age,method='riskratio', rev='c')
## $tab
##      
##       tren40        p0 duoi40        p1 riskratio    lower    upper
##   no     343 0.5453100    286 0.4546900  1.000000       NA       NA
##   yes   3579 0.4379053   4594 0.5620947  1.236215 1.132422 1.349522
##      
##            p.value
##   no            NA
##   yes 2.257472e-07
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"
##Khi thêm tham số rev = “c” thì sẽ thực hiện việc đổi chỗ 2 cột trong bảng ngẫu nhiên

Bảng này cho tôi biết kết quả của phép tính rủi ro tương đối giữa với độ tuổi hai giá trị là tren40 và duoi40. Rủi ro tương đối bằng 1.236215, có nghĩa là người có sức khỏe tốt ở trên 40 tuổi có xác suất cao hơn 23.6% người có sức khỏe không tốt.

5.7.2 Rủi ro tương đối của biến health với family

epitab(Family2,method='riskratio',rev='c')
## $tab
##      
##       nhieunguoi        p0 itnguoi        p1 riskratio    lower    upper
##   no         128 0.2034976     501 0.7965024  1.000000       NA       NA
##   yes       1261 0.1542885    6912 0.8457115  1.061781 1.019565 1.105746
##      
##           p.value
##   no           NA
##   yes 0.001466413
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Bảng này cho tôi biết kết quả của phép tính rủi ro tương đối giữa hai giá trị là gia đình có nhiều thành viên và ít thành viên. Rủi ro tương đối bằng 1.061781, có nghĩa là người có sức khỏe tốt ở gia đình ít người có xác suất cao hơn 6.17% người có sức khỏe không tốt.

5.7.3 Rủi ro tương đối của biến health với limit

epitab(limit1,method='riskratio',rev='c')
## $tab
##      
##        yes        p0   no        p1 riskratio    lower    upper      p.value
##   no   228 0.3624801  401 0.6375199  1.000000       NA       NA           NA
##   yes 1003 0.1227212 7170 0.8772788  1.376081 1.296615 1.460417 1.124839e-48
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Bảng này cho tôi biết kết quả của phép tính rủi ro tương đối giữa hai giá trị là người có giới hạn về sức khỏe và người không có giới hạn về sức khỏe. Rủi ro tương đối bằng 1.37608, có nghĩa là người có sức khỏe tốt và có bị giới hạn về sức khỏe có xác suất cao hơn 37.6% người có sức khỏe không tốt.

5.7.4 Rủi ro tương đối của biến health với gender

epitab(gender1,method='riskratio',rev='c')
## $tab
##      
##       male        p0 female        p1 riskratio    lower     upper    p.value
##   no   306 0.4864865    323 0.5135135 1.0000000       NA        NA         NA
##   yes 4327 0.5294262   3846 0.4705738 0.9163806 0.846379 0.9921719 0.03833366
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Bảng này cho tôi biết kết quả của phép tính rủi ro tương đối giữa hai giá trị là giới tính nam và giới tính nữ. Rủi ro tương đối bằng 0.9163806, có nghĩa là người có sức khỏe tốt là nam có xác suất bằng 91.6% người có sức khỏe không tốt.

5.7.5 Rủi ro tương đối của biến health với married

epitab(married1,method='riskratio',rev='c')
## $tab
##      
##        yes        p0   no        p1 riskratio     lower    upper   p.value
##   no   398 0.6327504  231 0.3672496  1.000000        NA       NA        NA
##   yes 5035 0.6160529 3138 0.3839471  1.045466 0.9401384 1.162595 0.4188503
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Bảng này cho tôi biết kết quả của phép tính rủi ro tương đối giữa hai giá trị là người đã lập gia đình và chưa lập gia đình. Rủi ro tương đối bằng 1.045466, có nghĩa là người có sức khỏe tốt đã lập gia đình có xác suất cao hơn 4.54% người có sức khỏe không tốt.

5.7.6 Rủi ro tương đối của biến health với selfemp

epitab(selfemp1,method='riskratio',rev='c')
## $tab
##      
##        yes        p0   no        p1 riskratio    lower    upper   p.value
##   no    67 0.1065183  562 0.8934817 1.0000000       NA       NA        NA
##   yes 1004 0.1228435 7169 0.8771565 0.9817285 0.954453 1.009784 0.2543724
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Bảng này cho tôi biết kết quả của phép tính rủi ro tương đối giữa hai giá trị là đã tự chủ về tài chính hay là chưa tự chủ về tài chính. Rủi ro tương đối bằng 0.9817285, có nghĩa là người có sức khỏe tốt, tự chủ được tài chính có xác suất bằng 98.17% người có sức khỏe không tốt.

5.7.7 Rủi ro tương đối của biến health với ethnicity

epitab(ethnicity1,method='riskratio',rev='c')
## $tab
##      ethnicity
##       cauc        p0 other        p1 riskratio     lower     upper      p.value
##   no   495 0.7869634   134 0.2130366 1.0000000        NA        NA           NA
##   yes 6859 0.8392267  1314 0.1607733 0.7546746 0.6442772 0.8839886 0.0009689062
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Bảng này cho tôi biết kết quả của phép tính rủi ro tương đối giữa hai giá trị về nguồn gốc xuất xứ là cauc và other. Rủi ro tương đối bằng 0.7546746, có nghĩa là người có sức khỏe tốt nguồn gốc ở châu âu có xác suất bằng 75.46% người có sức khỏe không tốt.

5.7.8 Rủi ro tương đối của biến health với education

epitab(education1,method='riskratio',rev='c')
## $tab
##      
##       higheducation        p0 loweducattion        p1 riskratio     lower
##   no            123 0.1955485           506 0.8044515  1.000000        NA
##   yes          2752 0.3367185          5421 0.6632815  0.824514 0.7909881
##      
##           upper      p.value
##   no         NA           NA
##   yes 0.8594609 4.279635e-14
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Bảng này cho tôi biết kết quả của phép tính rủi ro tương đối giữa hai giá trị là loweducation và higheducation. Rủi ro tương đối bằng 0.824514, có nghĩa là người có sức khỏe tốt ở trình độ học vấn cao có xác suất bằng 82.45% người có sức khỏe không tốt.

5.7.9 Rủi ro tương đối của biến health với region

epitab(region1,method='riskratio',rev='c')
## $tab
##      
##       vung2        p0 vung1        p1 riskratio    lower    upper     p.value
##   no    403 0.6406995   226 0.3593005  1.000000       NA       NA          NA
##   yes  4694 0.5743301  3479 0.4256699  1.184718 1.064125 1.318978 0.001236552
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Bảng này cho tôi biết kết quả của phép tính rủi ro tương đối giữa hai giá trị là vùng 2 và vùng 1. Rủi ro tương đối bằng 1.184718, có nghĩa là người có sức khỏe tốt ở vùng 2 có xác suất cao hơn 18.47% người có sức khỏe không tốt.

5.8 Tỷ lệ chênh

5.8.1 Tỷ lệ chênh của biến health với age

epitab(Age,method='oddsratio')
## $tab
##      
##       duoi40         p0 tren40         p1 oddsratio     lower     upper
##   no     286 0.05860656    343 0.08745538 1.0000000        NA        NA
##   yes   4594 0.94139344   3579 0.91254462 0.6495949 0.5519379 0.7645309
##      
##            p.value
##   no            NA
##   yes 2.257472e-07
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Bảng này cho tôi biết kết quả của tỷ lệ chênh giữa hai giá trị là tren40 và duoi40. Tỷ lệ chênh bằng 0.6495949, có nghĩa là người có sức khỏe tốt dưới 40 tuổi có xác suất bằng 64.95% người có sức khỏe không tốt.

5.8.2 Tỷ lệ chênh của biến health với family

epitab(Family2,method='oddsratio')
## $tab
##      
##       itnguoi         p0 nhieunguoi         p1 oddsratio     lower     upper
##   no      501 0.06758397        128 0.09215263 1.0000000        NA        NA
##   yes    6912 0.93241603       1261 0.90784737 0.7140672 0.5827741 0.8749394
##      
##           p.value
##   no           NA
##   yes 0.001466413
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Bảng này cho tôi biết kết quả của tỷ lệ chênh giữa hai giá trị là gia đình có nhiều thành viên và ít thành viên. Tỷ lệ chênh bằng 0.7140672, có nghĩa là người có sức khỏe tốt trong gia đình ít người có xác suất bằng 71.4% người có sức khỏe không tốt.

5.8.3 Tỷ lệ chênh của biến health với limit

epitab(limit1,method='oddsratio')
## $tab
##      
##         no         p0  yes        p1 oddsratio     lower     upper      p.value
##   no   401 0.05296526  228 0.1852153 1.0000000        NA        NA           NA
##   yes 7170 0.94703474 1003 0.8147847 0.2460318 0.2064336 0.2932258 1.124839e-48
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Bảng này cho tôi biết kết quả của tỷ lệ chênh giữa hai giá trị là người có giới hạn về sức khỏe và người không có giới hạn về sức khỏe. Tỷ lệ chênh bằng 0.246031, có nghĩa là người có sức khỏe tốt và không bị giới hạn sức khỏe có xác suất bằng 24.6% người có sức khỏe không tốt.

5.8.4 Tỷ lệ chênh của biến health với gender

epitab(gender1,method='oddsratio')
## $tab
##      
##       female         p0 male         p1 oddsratio    lower  upper    p.value
##   no     323 0.07747661  306 0.06604792  1.000000       NA     NA         NA
##   yes   3846 0.92252339 4327 0.93395208  1.187569 1.009679 1.3968 0.03833366
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Bảng này cho tôi biết kết quả của tỷ lệ chênh giữa hai giá trị là giới tính nam và giới tính nữ. Tỷ lệ chênh bằng 1.187569, có nghĩa là người có sức khỏe tốt là nữ có xác suất cao hơn 18,75% so người có sức khỏe không tốt.

5.8.5 Tỷ lệ chênh của biến health với married

epitab(married1,method='oddsratio')
## $tab
##      
##         no         p0  yes         p1 oddsratio     lower   upper   p.value
##   no   231 0.06856634  398 0.07325603 1.0000000        NA      NA        NA
##   yes 3138 0.93143366 5035 0.92674397 0.9312696 0.7871476 1.10178 0.4188503
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Bảng này cho tôi biết kết quả của tỷ lệ chênh giữa hai giá trị là người đã lập gia đình và chưa lập gia đình. Tỷ lệ chênh bằng 0.9312696, có nghĩa là người có sức khỏe tốt và chưa lập gia đình có xác suất bằng 93.12% người có sức khỏe không tốt.

5.8.6 Tỷ lệ chênh của biến health với selfemp

epitab(selfemp1,method='oddsratio')
## $tab
##      
##         no         p0  yes         p1 oddsratio     lower    upper   p.value
##   no   562 0.07269435   67 0.06255836  1.000000        NA       NA        NA
##   yes 7169 0.92730565 1004 0.93744164  1.174726 0.9041571 1.526263 0.2543724
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Bảng này cho tôi biết kết quả của tỷ lệ chênh giữa hai giá trị là đã tự chủ về tài chính hay là chưa tự chủ về tài chính. Rủi ro tương đối bằng 1.174726, có nghĩa là người có sức khỏe tốt và chưa tự chủ được tài chính có xác suất cao hơn 17.47% người có sức khỏe không tốt.

5.8.7 Tỷ lệ chênh của biến health với ethnicity

epitab(ethnicity1,method='oddsratio')
## $tab
##      ethnicity
##       other         p0 cauc         p1 oddsratio    lower    upper      p.value
##   no    134 0.09254144  495 0.06731031  1.000000       NA       NA           NA
##   yes  1314 0.90745856 6859 0.93268969  1.413074 1.157183 1.725552 0.0009689062
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Bảng này cho tôi biết kết quả của tỷ lệ chênhgiữa hai giá trị về nguồn gốc xuất xứ là cauc và other. Tỷ lệ chênh bằng 1.413074, có nghĩa là người có sức khỏe tốt và ở nguồn gốc khác có xác suất cao hơn 41.3% người có sức khỏe không tốt.

5.8.8 Tỷ lệ chênh của biến health với education

epitab(education1,method='oddsratio')
## $tab
##      
##       loweducattion         p0 higheducation         p1 oddsratio    lower
##   no            506 0.08537203           123 0.04278261  1.000000       NA
##   yes          5421 0.91462797          2752 0.95721739  2.088404 1.705902
##      
##          upper      p.value
##   no        NA           NA
##   yes 2.556671 4.279635e-14
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Bảng này cho tôi biết kết quả của tỷ lệ chênh giữa hai giá trị là loweducation và higheducation. Tỷ lệ chênh bằng 2.088404, có nghĩa là người có sức khỏe tốt học ở trình độ thấp có xác suất cao hơn 2.08 lần người có sức khỏe không tốt.

5.8.9 Tỷ lệ chênh của biến health với region

epitab(region1,method='oddsratio')
## $tab
##      
##       vung1         p0 vung2         p1 oddsratio    lower   upper     p.value
##   no    226 0.06099865   403 0.07906612 1.0000000       NA      NA          NA
##   yes  3479 0.93900135  4694 0.92093388 0.7566448 0.639199 0.89567 0.001236552
## 
## $measure
## [1] "wald"
## 
## $conf.level
## [1] 0.95
## 
## $pvalue
## [1] "fisher.exact"

Bảng này cho tôi biết kết quả của tỷ lệ chênh giữa hai giá trị là vùng 1 và vùng 2. Tỷ lệ chênh bằng 0.7566448, có nghĩa là người có sức khỏe tốt ở vùng 1 có xác suất bằng 75.6% người có sức khỏe không tốt.

5.9 Khoảng ước lượng cho tỉ lệ

# Người có tình trạng sức khỏe tốt
Health<-z[z$DLDT.health == "yes",]
length(z$DLDT.health)
## [1] 8802
prop.test(length(Health$DLDT.health),length(z$DLDT.health),p= 0.75)
## 
##  1-sample proportions test with continuity correction
## 
## data:  length(Health$DLDT.health) out of length(z$DLDT.health), null probability 0.75
## X-squared = 1495.4, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.75
## 95 percent confidence interval:
##  0.9229098 0.9337903
## sample estimates:
##        p 
## 0.928539

Đặt giả thuyết:

\(H_0\): Người có tình trạng sức khỏe tốt chiếm 75%

\(H_1\): Người có tình trạng sức khỏe tốt không chiếm 75%

Vì P-value < 2.2e-16 nên ta bác bỏ \(H_0\) và chấp nhận \(H_1\) đồng nghĩa với người có tình trạng sức khỏe tốt không chiếm 75%.

Khoảng ước lượng tỷ lệ người có tình trạng sức khỏe tốt với độ tin cậy 95% là \((0.9229098;0.9337903)\)

# Người có tình trạng sức khỏe không tốt
Health1<-z[z$DLDT.health == "no",]
length(z$DLDT.health)
## [1] 8802
prop.test(length(Health1$DLDT.health),length(z$DLDT.health),p= 0.4)
## 
##  1-sample proportions test with continuity correction
## 
## data:  length(Health1$DLDT.health) out of length(z$DLDT.health), null probability 0.4
## X-squared = 3957.3, df = 1, p-value < 2.2e-16
## alternative hypothesis: true p is not equal to 0.4
## 95 percent confidence interval:
##  0.06620974 0.07709016
## sample estimates:
##          p 
## 0.07146103

Đặt giả thuyết:

\(H_0\): Người có tình trạng sức khỏe tốt chiếm 40%

\(H_1\): Người có tình trạng sức khỏe tốt không chiếm 40%

Vì P-value < 2.2e-16 nên ta bác bỏ \(H_0\) và chấp nhận \(H_1\) đồng nghĩa với người có tình trạng sức khỏe không tốt không chiếm tới 40%.

Khoảng ước lượng tỷ lệ người có tình trạng sức khỏe không tốt với độ tin cậy 95% là \((0.06620974;0.07709016)\)

5.10 Kiểm tra tính độc lập

5.10.1 Kiểm tra tính độc lập của biến health và Age

chisq.test(Age)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  Age
## X-squared = 26.84, df = 1, p-value = 2.21e-07

Đặt giả thiết:

\(H_0\): Biến health và Age có tính độc lập

\(H_1\): Biến health và Age không có tính độc lập

Vì p-value = 2.21e-07 < 0.05 nên ta bác bỏ \(H_0\) và chấp nhận \(H_1\), đồng nghĩa là Biến health và Age không có tính độc lập với nhau.

5.10.2 Kiểm tra tính độc lập của biến health và family

chisq.test(Family2)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  Family2
## X-squared = 10.275, df = 1, p-value = 0.001349

Đặt giả thiết:

\(H_0\): Biến health và family có tính độc lập

\(H_1\): Biến health và family không có tính độc lập

Vì p-value = 0.001349 < 0.05 nên ta bác bỏ \(H_0\) và chấp nhận \(H_1\), đồng nghĩa là Biến health và family không có tính độc lập với nhau.

5.10.3 Kiểm tra tính độc lập của biến health và limit

chisq.test(limit1)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  limit1
## X-squared = 277.11, df = 1, p-value < 2.2e-16

Đặt giả thiết:

\(H_0\): Biến health và limit có tính độc lập

\(H_1\): Biến health và limit không có tính độc lập

Vì p-value < 2.2e-16 < 0.05 nên ta bác bỏ \(H_0\) và chấp nhận \(H_1\), đồng nghĩa là Biến health và limit không có tính độc lập với nhau.

5.10.4 Kiểm tra tính độc lập của biến health và gender

chisq.test(gender1)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  gender1
## X-squared = 4.149, df = 1, p-value = 0.04166

Đặt giả thiết:

\(H_0\): Biến health và gender có tính độc lập

\(H_1\): Biến health và gender không có tính độc lập

Vì p-value = 0.04166 < 0.05 nên ta bác bỏ \(H_0\) và chấp nhận \(H_1\), đồng nghĩa là Biến health và gender không có tính độc lập với nhau.

5.10.5 Kiểm tra tính độc lập của biến health và insurance

chisq.test(insurance1)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  insurance1
## X-squared = 22.197, df = 1, p-value = 2.46e-06

Đặt giả thiết:

\(H_0\): Biến health và insurance có tính độc lập

\(H_1\): Biến health và insurance không có tính độc lập

Vì p-value = 2.46e-06 < 0.05 nên ta bác bỏ \(H_0\) và chấp nhận \(H_1\), đồng nghĩa là Biến health và insurance không có tính độc lập với nhau.

5.10.6 Kiểm tra tính độc lập của biến health và married

chisq.test(married1)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  married1
## X-squared = 0.62039, df = 1, p-value = 0.4309

Đặt giả thiết:

\(H_0\): Biến health và married có tính độc lập

\(H_1\): Biến health và married không có tính độc lập

Vì p-value = 2.21e-07 > 0.4309 nên ta chấp nhận \(H_0\) đồng nghĩa là Biến health và married có tính độc lập với nhau.

5.10.7 Kiểm tra tính độc lập của biến health và selfemp

chisq.test(selfemp1)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  selfemp1
## X-squared = 1.3077, df = 1, p-value = 0.2528

Đặt giả thiết:

\(H_0\): Biến health và selfemp có tính độc lập

\(H_1\): Biến health và selfemp không có tính độc lập

Vì p-value = 0.2528 > 0.05 nên ta chấp nhận \(H_0\), đồng nghĩa là Biến health và selfemp có tính độc lập với nhau.

5.10.8 Kiểm tra tính độc lập của biến health và ethnicity

chisq.test(ethnicity1)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  ethnicity1
## X-squared = 11.23, df = 1, p-value = 0.000805

Đặt giả thiết:

\(H_0\): Biến health và ethnicity có tính độc lập

\(H_1\): Biến health và ethnicity không có tính độc lập

Vì p-value = 0.000805 < 0.05 nên ta bác bỏ \(H_0\) và chấp nhận \(H_1\), đồng nghĩa là Biến health và ethnicity không có tính độc lập với nhau.

5.10.9 Kiểm tra tính độc lập của biến health và education

chisq.test(education1)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  education1
## X-squared = 52.281, df = 1, p-value = 4.811e-13

Đặt giả thiết:

\(H_0\): Biến health và education có tính độc lập

\(H_1\): Biến health và education không có tính độc lập

Vì p-value = 4.811e-13 < 0.05 nên ta bác bỏ \(H_0\) và chấp nhận \(H_1\), đồng nghĩa là Biến health và education không có tính độc lập với nhau.

5.10.10 Kiểm tra tính độc lập của biến health và region

chisq.test(region1)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  region1
## X-squared = 10.284, df = 1, p-value = 0.001342

Đặt giả thiết:

\(H_0\): Biến health và region có tính độc lập

\(H_1\): Biến health và region không có tính độc lập

Vì p-value = 4.811e-13 < 0.05 nên ta bác bỏ \(H_0\) và chấp nhận \(H_1\), đồng nghĩa là Biến health và region không có tính độc lập với nhau.

5.11 Mô hình hồi quy logistic

Dựa vào kiểm định tính độc lập giữa biến định tính phụ thuộc là health với các biến độc lập khác ở trên. Có 2 biến thể hiện tính độc lập với biến phụ thuộc đó là married và selfemp nên tôi tiến hành hồi quy logistic các biến còn lại.

mohinh1 <- glm(DLDT.health ~ DLDT$limit + DLDT$gender +DLDT$insurance + educated +  ethnicity + family1 , family = binomial(link = 'logit'), data = z)
summary(mohinh1)
## 
## Call:
## glm(formula = DLDT.health ~ DLDT$limit + DLDT$gender + DLDT$insurance + 
##     educated + ethnicity + family1, family = binomial(link = "logit"), 
##     data = z)
## 
## Coefficients:
##                       Estimate Std. Error z value Pr(>|z|)    
## (Intercept)            2.12170    0.12775  16.609  < 2e-16 ***
## DLDT$limityes         -1.45076    0.09164 -15.832  < 2e-16 ***
## DLDT$gendermale        0.19247    0.08521   2.259 0.023894 *  
## DLDT$insuranceyes      0.36124    0.09762   3.701 0.000215 ***
## educatedhigheducation  0.60443    0.10599   5.703 1.18e-08 ***
## ethnicitycauc          0.38450    0.10515   3.657 0.000255 ***
## family1nhieunguoi     -0.40094    0.10744  -3.732 0.000190 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 4531.3  on 8801  degrees of freedom
## Residual deviance: 4221.4  on 8795  degrees of freedom
## AIC: 4235.4
## 
## Number of Fisher Scoring iterations: 6

Với mô hình hồi quy logit của biến phụ thuộc health với 6 biến độc lập gồm limit, gender, insurance, educated, ethnicity và family, cho ta thấy rằng cả 6 biến đều có ý nghĩa thống kê ở mức ý nghĩa 5%. Mô hình như sau:

$logit(π) = 2.12170 -1.45076limityes + 0.19247gendermale + 0.36124insuranceyes + 0.60443educatedhigheducation +0.38450ethnicitycauc - 0.40094family1nhieunguoi $

mohinh2 <- glm(DLDT.health ~ DLDT$limit + DLDT$gender +DLDT$insurance + educated +  ethnicity + family1 , family = binomial(link = 'probit'), data = z)
summary(mohinh2)
## 
## Call:
## glm(formula = DLDT.health ~ DLDT$limit + DLDT$gender + DLDT$insurance + 
##     educated + ethnicity + family1, family = binomial(link = "probit"), 
##     data = z)
## 
## Coefficients:
##                       Estimate Std. Error z value Pr(>|z|)    
## (Intercept)            1.23998    0.06509  19.051  < 2e-16 ***
## DLDT$limityes         -0.74494    0.04880 -15.265  < 2e-16 ***
## DLDT$gendermale        0.08946    0.04210   2.125 0.033600 *  
## DLDT$insuranceyes      0.18227    0.04951   3.682 0.000232 ***
## educatedhigheducation  0.28511    0.04972   5.734 9.82e-09 ***
## ethnicitycauc          0.18831    0.05317   3.541 0.000398 ***
## family1nhieunguoi     -0.20038    0.05412  -3.703 0.000213 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 4531.3  on 8801  degrees of freedom
## Residual deviance: 4222.6  on 8795  degrees of freedom
## AIC: 4236.6
## 
## Number of Fisher Scoring iterations: 5

Với mô hình hồi quy probit của biến phụ thuộc health với 6 biến độc lập gồm limit, gender, insurance, educated, ethnicity và family, cho ta thấy rằng cả 6 biến đều có ý nghĩa thống kê ở mức ý nghĩa 5%. Mô hình như sau:

$probit(π) = 1.23998 -0.74494limityes + 0.08946gendermale + 0.18227insuranceyes + 0.28511educatedhigheducation +0.18831ethnicitycauc -0.20038family1nhieunguoi $

mohinh3 <- glm(DLDT$health ~ DLDT$limit + DLDT$gender +DLDT$insurance + educated +  ethnicity + family1 , family = binomial(link = 'cloglog'), data = z)
summary(mohinh3)
## 
## Call:
## glm(formula = DLDT$health ~ DLDT$limit + DLDT$gender + DLDT$insurance + 
##     educated + ethnicity + family1, family = binomial(link = "cloglog"), 
##     data = z)
## 
## Coefficients:
##                       Estimate Std. Error z value Pr(>|z|)    
## (Intercept)            0.80458    0.04909  16.391  < 2e-16 ***
## DLDT$limityes         -0.56961    0.03973 -14.336  < 2e-16 ***
## DLDT$gendermale        0.06044    0.03064   1.972 0.048568 *  
## DLDT$insuranceyes      0.13487    0.03714   3.631 0.000282 ***
## educatedhigheducation  0.19716    0.03467   5.687  1.3e-08 ***
## ethnicitycauc          0.13490    0.03968   3.399 0.000675 ***
## family1nhieunguoi     -0.14726    0.04035  -3.649 0.000263 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 4531.3  on 8801  degrees of freedom
## Residual deviance: 4224.9  on 8795  degrees of freedom
## AIC: 4238.9
## 
## Number of Fisher Scoring iterations: 5

Với mô hình hồi quy cloglog của biến phụ thuộc health với 6 biến độc lập gồm limit, gender, insurance, educated, ethnicity và family, cho ta thấy rằng cả 6 biến đều có ý nghĩa thống kê ở mức ý nghĩa 5%. Mô hình như sau:

$cloglog(π) = 0.80458 -0.56961limityes + 0.06044gendermale + 0.13487insuranceyes + 0.19716educatedhigheducation +0.13490ethnicitycauc -0.14726family1nhieunguoi $

5.12 Lựa chọn mô hình

AIC1 <- AIC(mohinh1)
AIC2 <- AIC(mohinh2)
AIC3 <- AIC(mohinh3)
AIC <-cbind(AIC1,AIC2,AIC3)
AIC
##          AIC1     AIC2     AIC3
## [1,] 4235.435 4236.562 4238.889

=> Dựa vào bảng kết quả trên ta thu được giá trị AIC nhỏ nhất ở mô hình hồi quy logit tức là mô hình logit sẽ phù hợp hơn với 2 mô hình còn lại.

dev1 <- deviance(mohinh1)
dev2 <- deviance(mohinh2)
dev3 <- deviance(mohinh3)
deviance <-cbind(dev1,dev2,dev3)
deviance
##          dev1     dev2     dev3
## [1,] 4221.435 4222.562 4224.889

=> Dựa vào bảng kết quả trên ta thu được giá trị deviance nhỏ nhất ở mô hình hồi quy logit tức là mô hình logit sẽ phù hợp hơn với 2 mô hình còn lại.

library(DescTools)
## Warning: package 'DescTools' was built under R version 4.3.1
## 
## Attaching package: 'DescTools'
## The following object is masked from 'package:car':
## 
##     Recode
BrierScore(mohinh1)
## [1] 0.06336321
BrierScore(mohinh2)
## [1] 0.06338447
BrierScore(mohinh3)
## [1] 0.06342488

=> Dựa vào bảng kết quả trên ta thu được giá trị BrierScore nhỏ nhất ở mô hình hồi quy logit, tức là mô hình logit sẽ phù hợp hơn với 2 mô hình còn lại.

Kết luận, khi xét AIC, deviance và BrierScore thì mô hình hồi quy logit là tối ưu nhất.

5.13 Đọc mô hình:

Sau khi tiến hành hồi quy biến phụ thuộc định tính là health với 6 biến độc lập gồm limit, gender, insurance, educated, ethnicity và family thì tất cả các biến đều có ý nghĩa và đạt tối ưu ở mô hình logit. Với giả thuyết khi các yếu tố khác không đổi thì ở mức ý nghĩa 1%, các biến độc lập này sẽ có mức độ ảnh hưởng đối với tình trạng sức khỏe của người tham gia cuộc khảo sát.

Mô hình tối ưu có dạng sau:

$logit(π) = 2.12170 -1.45076limityes + 0.19247gendermale + 0.36124insuranceyes + 0.60443educatedhigheducation +0.38450ethnicitycauc - 0.40094family1nhieunguoi $

Hàm logistic có dạng:

\(logistic(x) = \frac{1}{(1 + e^{(-x)})}\)

Ta thu được kết quả nếu có một người là nam, có giới hạn về sức khỏe, có bảo hiểm, có trình độ cao học, thuộc dân tộc caucasian và sống trong gia đình có nhiều người, thì xác suất của sự kiện là:

\(logit(π) = 2.12170 - 1.45076 * 1 + 0.19247 * 1 + 0.36124 * 1 + 0.60443 * 1 + 0.38450 * 1 - 0.40094 * 1 logit(π) = 1.81264 π = logistic(1.81264) π = 0.859\)

Tức là xác suất của sự kiện là khoảng 86%.

6 CHƯƠNG 3: KẾT LUẬN

6.1 Kết luận

Trong bài tiểu luân này, tôi đã tiến hành xử lí bộ dữ liệu “HealthInsurance” trong gói AER. Gồm có 11 biến trong đó có 9 biến định tính và 2 biến định lượng. Tôi chọn biến định tính health là biến phụ thuộc và tiến hành thống kê mô tả của từng biến độc lập khác để có cái nhìn khách quan hơn về bộ dữ liệu, sau đó tôi tiến hành thống kê mô 2 biến phụ thuộc với các biến định tính còn lại, điều này trên giả thiết sẽ giúp tôi thấy rõ các biến độc lập khác như độ tuổi, nguồn gốc, vùng miền, sở hữu bảo hiểm,… đều có tác động đến tình trạng sức khỏe và có 6 biến độc lập gồm limit, gender, insurance, educated, ethnicity và family thể hiện rõ sự tác động thông qua mô hình hồi quy tối ưu nhất là logit khi xét các yếu tố như AIC, Deviance, Brier.

6.2 Hạn chế

Rstudio là một phần mềm lập trình và mới mẻ đối với tôi nên tôi cần có nhiều thời gian để tìm hiểu kiến thức về ngôn ngữ R để có thể sử dụng nó hiệu quả. Nếu tôi không quen với cú pháp và các hàm của R, tôi có thể gặp khó khăn trong việc nhập, xử lý và phân tích dữ liệu. Rstudio cũng có thể gặp một số vấn đề về hiệu năng khi xử lý các bộ dữ liệu lớn hoặc phức tạp có thể cần phải tối ưu hóa mã nguồn của mình hoặc sử dụng các gói bổ sung để giảm thiểu thời gian chạy và bộ nhớ. Rstudio cũng có thể không tương thích với một số định dạng dữ liệu hoặc phần mềm khác có thể cần phải chuyển đổi dữ liệu sang định dạng phù hợp hoặc sử dụng các công cụ liên kết để kết nối với các nguồn dữ liệu khác.

7 Tài liệu tham khảo

[1] T.K.Thanh, T.M.Tường, V.A.L.Duy, Bài giảng Phân tích dữ liệu định tính.

8 Phụ lục

library(data.table)
## Warning: package 'data.table' was built under R version 4.3.1
## 
## Attaching package: 'data.table'
## The following object is masked from 'package:DescTools':
## 
##     %like%
## The following objects are masked from 'package:dplyr':
## 
##     between, first, last
data.table(z)
##       DLDT.health DLDT.limit DLDT.gender DLDT.insurance DLDT.married
##    1:         yes         no        male            yes          yes
##    2:         yes         no      female            yes          yes
##    3:         yes         no        male            yes          yes
##    4:         yes         no        male            yes           no
##    5:         yes         no        male            yes          yes
##   ---                                                               
## 8798:         yes         no      female            yes          yes
## 8799:         yes         no        male            yes          yes
## 8800:         yes         no        male            yes          yes
## 8801:         yes         no      female            yes          yes
## 8802:         yes         no        male            yes          yes
##       DLDT.selfemp DLDT.region DLDT.ethnicity DLDT.education DLDT.age   age1
##    1:          yes       south           cauc       bachelor       31 duoi40
##    2:           no       south           cauc     highschool       31 duoi40
##    3:           no        west           cauc            ged       54 tren40
##    4:           no        west           cauc     highschool       27 duoi40
##    5:           no        west           cauc           none       39 duoi40
##   ---                                                                       
## 8798:           no   northeast           cauc     highschool       46 tren40
## 8799:           no   northeast           cauc     highschool       50 tren40
## 8800:           no       south           cauc       bachelor       27 duoi40
## 8801:           no       south           cauc       bachelor       27 duoi40
## 8802:           no   northeast           cauc            phd       35 duoi40
##          family1 ethnicity      educated region
##    1:    itnguoi      cauc higheducation  vung2
##    2:    itnguoi      cauc loweducattion  vung2
##    3: nhieunguoi      cauc loweducattion  vung2
##    4: nhieunguoi      cauc loweducattion  vung2
##    5: nhieunguoi      cauc loweducattion  vung2
##   ---                                          
## 8798:    itnguoi      cauc loweducattion  vung1
## 8799:    itnguoi      cauc loweducattion  vung1
## 8800:    itnguoi      cauc higheducation  vung2
## 8801:    itnguoi      cauc higheducation  vung2
## 8802:    itnguoi      cauc higheducation  vung1
LS0tDQp0aXRsZTogIlRp4buDdSBsdeG6rW4gUFRETERUIg0KYXV0aG9yOiAiTmd1eeG7hW4gVOG6pW4gTOG7mWMiDQpkYXRlOiAiMjAyMy0wOC0wMiINCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiB5ZXMNCiAgICBudW1iZXJfc2VjdGlvbnM6IHllcw0KICAgIHRvY19mbG9hdDoNCiAgICAgIGNvbGxhcHNlZDogbm8NCiAgICAgIGRmX3ByaW50OiBwYWdlZA0KICAgICAgaGlnaGxpZ2h0OiBrYXRlDQogICAgY29kZV9mb2xkaW5nOiBoaWRlDQogICAgY29kZV9kb3dubG9hZDogeWVzDQogIHdvcmRfZG9jdW1lbnQ6DQogICAgdG9jOiB5ZXMNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkNCmBgYA0KDQpgYGB7cn0NCmxpYnJhcnkod2Vic2hvdDIpDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeShncmFwaGljcykNCmBgYA0KIyBGSUxFIFBERjogDQoNCmh0dHBzOi8vZHJpdmUuZ29vZ2xlLmNvbS9kcml2ZS91LzAvZm9sZGVycy8xMzZzWXZ0MnFTT0xwaEZqVGVwMEFJaFVjcVJwVzRkeTMNCg0KxJDhu4EgdMOgaTogUEjDgk4gVMONQ0ggQ8OBQyBZ4bq+VSBU4buQIFTDgUMgxJDhu5hORyDEkOG6vk4gVMOMTkggVFLhuqBORyBT4buoQyBLSOG7jkUNCg0KIyBM4budaSBj4bqjbSDGoW4NCg0KTOG7nWkgxJHhuqd1IHRpw6puLCBlbSB4aW4gZ+G7rWkgbOG7nWkgY+G6o20gxqFuIGNow6JuIHRow6BuaCBuaOG6pXQgxJHhur9uIEdp4bqjbmcgdmnDqm4g4oCTIFRoUy5UcuG6p24gTeG6oW5oIFTGsOG7nW5nLiBUcm9uZyBxdcOhIHRyw6xuaCBo4buNYyB04bqtcCB2w6AgdMOsbSBoaeG7g3UgYuG7mSBtw7RuIOKAnFBow6JuIHTDrWNoIGThu68gbGnhu4d1IMSR4buLbmggdMOtbmjigJ0sIGVtIMSRw6Mgbmjhuq1uIMSRxrDhu6NjIHPhu7EgcXVhbiB0w6JtIGdpw7pwIMSR4buhLCBoxrDhu5tuZyBk4bqrbiBy4bqldCB04bqtbiB0w6xuaCwgdMOibSBodXnhur90IGPhu6dhIHRo4bqneS4gVGjhuqd5IMSRw6MgZ2nDunAgZW0gdMOtY2ggbMWpeSB0aMOqbSBuaGnhu4F1IGtp4bq/biB0aOG7qWMgxJHhu4MgY8OzIGPDoWkgbmjDrG4gc8OidSBz4bqvYyB2w6AgaG/DoG4gdGhp4buHbiBoxqFuIHbhu4EgYuG7mSBtw7RuIG7DoHkuIFThu6sgbmjhu69uZyBraeG6v24gdGjhu6ljIG3DoCB0aOG6p3kgdHJ1eeG7gW4gdOG6o2ksIGNow7puZyBlbSDEkcOjIGThuqduIGhp4buDdSDEkcaw4bujYyB04bqnbSBxdWFuIHRy4buNbmcgY+G7p2EgY8OhYyBtw7QgaMOsbmggdHJvbmcga2luaCB04bq/IG3DoCBi4bqleSBsw6J1IG5heSBjw7JuIG5oaeG7gXUgdGjhuq9jIG3huq9jIHbDoCBjaMawYSByw7UuIE5o4bqtbiBuaGnhu4dtIHbhu6UgY+G7p2EgdGjhuqd5LCB0aMO0bmcgcXVhIGLDoGkgdGnhu4N1IGx14bqtbiBuw6B5IGVtIHhpbiB0csOsbmggYsOgeSBuaOG7r25nIGfDrCBtw6AgZW0gxJHDoyB0w6xtIGhp4buDdSB24buBIG3DtG4gaOG7jWMsIHbDoCBj4bulIHRo4buDIGjGoW4g4bufIMSRw6J5IGVtIGzhu7FhIGNo4buNbiDEkeG7gSB0w6BpIOKAnFBow6JuIHTDrWNoIGPDoWMgeeG6v3UgdOG7kSB0w6FjIMSR4buZbmcgxJHhur9uIHTDrG5oIHRy4bqhbmcgc+G7qWMga2jhu49l4oCdLg0KDQpDw7MgbOG6vSBraeG6v24gdGjhu6ljIGzDoCB2w7QgaOG6oW4gbcOgIHPhu7EgdGnhur9wIG5o4bqtbiBraeG6v24gdGjhu6ljIGPhu6dhIGLhuqNuIHRow6JuIG3hu5dpIG5nxrDhu51pIGx1w7RuIHThu5NuIHThuqFpIG5o4buvbmcgaOG6oW4gY2jhur8gbmjhuqV0IMSR4buLbmguIERvIMSRw7MsIHRyb25nIHF1w6EgdHLDrG5oIGhvw6BuIHRow6BuaCBiw6BpIHRp4buDdSBsdeG6rW4sIGNo4bqvYyBjaOG6r24gZW0ga2jDtG5nIHRyw6FuaCBraOG7j2kgbmjhu69uZyB0aGnhur91IHPDs3QuIFbDrCB24bqteSwgZW0gcuG6pXQgbW9uZyBuaOG6rW4gxJHGsOG7o2Mgbmjhu69uZyDEkcOzbmcgZ8OzcCDEkeG6v24gdOG7qyB0aOG6p3kgxJHhu4MgYsOgaSB0aeG7g3UgbHXhuq1uIGPhu6dhIG5ow7NtIMSRxrDhu6NjIGhvw6BuIHRoaeG7h24gaMahbi4NCg0KS8OtbmggY2jDumMgdGjhuqd5IHPhu6ljIGto4buPZSwgaOG6oW5oIHBow7pjIHbDoCB0aMOgbmggY8O0bmcgdHLDqm4gY29uIMSRxrDhu51uZyBz4buxIG5naGnhu4dwIGdp4bqjbmcgZOG6oXkgY+G7p2EgbcOsbmguDQoNCiMgUGjhuqduIG3hu58gxJHhuqd1DQoNCiMjIEzDrSBkbyBjaOG7jW4gxJHhu4EgdMOgaQ0KDQpUw7RpIGNo4buNbiDEkeG7gSB0w6BpIHbhu4EgdMOsbmggdHLhuqFuZyBz4bupYyBraOG7j2UgY29uIG5nxrDhu51pIHbDrCB0w7RpIHF1YW4gdMOibSDEkeG6v24gY8OhYyB54bq/dSB04buRIOG6o25oIGjGsOG7n25nIMSR4bq/biBz4bupYyBraOG7j2UgY+G7p2EgbeG7l2kgY8OhIG5ow6JuIHbDoCBj4buZbmcgxJHhu5NuZy4gU+G7qWMga2jhu49lIGNvbiBuZ8aw4budaSBsw6AgbeG7mXQga2jDoWkgbmnhu4dtIHBo4bupYyB04bqhcCwgYmFvIGfhu5NtIGPDoWMga2jDrWEgY+G6oW5oIHbhu4EgdGjhu4MgY2jhuqV0LCB0aW5oIHRo4bqnbiB2w6AgeMOjIGjhu5lpLiBT4bupYyBraOG7j2UgY29uIG5nxrDhu51pIGtow7RuZyBjaOG7iSBwaOG7pSB0aHXhu5ljIHbDoG8gdmnhu4djIHRp4bq/cCBj4bqtbiB2w6Agc+G7rSBk4bulbmcgZOG7i2NoIHbhu6UgeSB04bq/LCBtw6AgY8OybiBi4buLIOG6o25oIGjGsOG7n25nIGLhu59pIG5oaeG7gXUgbmjDom4gdOG7kSBraMOhYyBuaMawIG7GoWkgc+G7kW5nLCBtw7RpIHRyxrDhu51uZywgZGkgdHJ1eeG7gW4sIHRodSBuaOG6rXAsIHRyw6xuaCDEkeG7mSBo4buNYyB24bqlbiwgbeG7kWkgcXVhbiBo4buHIHbhu5tpIGLhuqFuIGLDqCB2w6AgZ2lhIMSRw6xuaC4gU+G7qWMga2jhu49lIGNvbiBuZ8aw4budaSBjxaluZyBsw6AgbeG7mXQgcXV54buBbiBjb24gbmfGsOG7nWkgY8SDbiBi4bqjbiwgxJHGsOG7o2MgY8O0bmcgbmjhuq1uIHRyb25nIEhp4bq/biBjaMawxqFuZyBXSE8gKDE5NDYpIHbDoCBjw6FjIGhp4buHcCDGsOG7m2MgcXXhu5FjIHThur8gduG7gSBuaMOibiBxdXnhu4FuLiBWaeG7h2MgbmdoacOqbiBj4bupdSB24buBIHTDrG5oIHRy4bqhbmcgc+G7qWMga2jhu49lIGNvbiBuZ8aw4budaSBjw7MgdGjhu4MgZ2nDunAgdGEgaGnhu4N1IHLDtSBoxqFuIHbhu4EgY8OhYyB0aMOhY2ggdGjhu6ljIHbDoCBjxqEgaOG7mWkgxJHhu4MgY+G6o2kgdGhp4buHbiBz4bupYyBraOG7j2UgY2hvIG3hu41pIG5nxrDhu51pLCDEkeG6t2MgYmnhu4d0IGzDoCBuaOG7r25nIG5ow7NtIGTDom4gY8awIGLhu4sgYuG6pXQgbOG7o2kgdsOgIGLhu4sgbG/huqFpIHRy4burLiBRdWEgxJHhu4EgdMOgaSBuw6B5LCB0w7RpIG1vbmcgbXXhu5FuIMSRw7NuZyBnw7NwIHbDoG8gdmnhu4djIHjDonkgZOG7sW5nIG3hu5l0IHjDoyBo4buZaSBjw7RuZyBi4bqxbmcsIGLhu4FuIHbhu69uZyB2w6AgcGjDoXQgdHJp4buDbiwgbsahaSBtw6AgbeG7jWkgbmfGsOG7nWkgxJHhu4F1IGPDsyB0aOG7gyBz4buRbmcga2jhu49lIG3huqFuaCB2w6AgaOG6oW5oIHBow7pjIGLhurFuZyBjw6FjaCBwaMOibiB0w61jaCByYSBjw6FjIHTDoWMgxJHhu5luZyBjw7MgdGjhu4Mg4bqjbmggaMaw4bufbmcgxJHhur9uIHTDrG5oIHRy4bqhbmcgc+G7qWMga2jhu49lIGPhu6dhIGNvbiBuZ8aw4budaS4NCg0KIyMgTeG7pWMgdGnDqnUgbmdoacOqbiBj4bupdQ0KDQpQaMOibiB0w61jaCBjw6FjIHnhur91IHThu5EgdMOhYyDEkeG7mW5nIMSR4bq/biB0w6xuaCB0cuG6oW5nIHPhu6ljIGto4buPZSBj4bunYSBjb24gbmfGsOG7nWkgZOG7sWEgdHLDqm4gdOG6rXAgZOG7ryBsaeG7h3UgSGVhbHRoSW5zdXJhbmNlIHRyb25nIGfDs2kgQUVSLg0KDQojIyBQaOG6oW0gdmkgbmdoacOqbiBj4bupdQ0KDQpU4bqtcCBk4buvIGxp4buHdSBjaOG7qWEgdGjDtG5nIHRpbiB24buBIGNoaSBwaMOtIHkgdOG6vyBj4bunYSBjw6FjIGjhu5kgZ2lhIMSRw6xuaCB04bqhaSBIb2EgS+G7syBn4buTbSA4LjgwMiBxdWFuIHPDoXQgdHLDqm4gMTEgYmnhur9uLg0KDQojIyBL4bq/dCBj4bqldSDEkeG7gSB0w6BpDQoNCi0gQ2jGsMahbmcgMTogVOG7lW5nIHF1YW4gduG7gSBjxqEgc+G7nyBsw60gdGh1eeG6v3QNCg0KLSBDaMawxqFuZyAyOiBQaMawxqFuZyBwaMOhcCB2w6Aga+G6v3QgcXXhuqMgbmdoacOqbiBj4bupdQ0KDQotIENoxrDGoW5nIDM6IEvhur90IGx14bqtbg0KDQojIENIxq/GoE5HIDE6IFThu5RORyBRVUFOIFbhu4AgQ8agIFPhu54gTMONIFRIVVnhur5UDQoNCiMjIMSQ4buLbmggbmdoxKlhIHbhu4EgdGjhu5FuZyBrw6oNCg0KVGjhu5FuZyBrw6ogbMOgIG3hu5l0IGjhu4cgdGjhu5FuZyBjw6FjIHBoxrDGoW5nIHBow6FwIHPhu60gZOG7pW5nIG3DtCBow6xuaCwgbMOgIHPhu7EgYmnhu4N1IGRp4buFbiB2w6AgdMOzbSB04bqvdCDEkeG7i25oIGzGsOG7o25nIG3hu5l0IHThuq1wIGThu68gbGnhu4d1IHRo4buxYyBuZ2hp4buHbSBob+G6t2MgbmdoacOqbiBj4bupdSB0aOG7sWMgdOG6vyBuaOG6pXQgxJHhu4tuaCBuaOG6sW0gcGjhu6VjIHbhu6UgY2hvIHF1w6EgdHLDrG5oIHBow6JuIHTDrWNoLCBk4buxIMSRb8OhbiB2w6AgcmEgcXV54bq/dCDEkeG7i25oLiBUaOG7kW5nIGvDqiBnacO6cCBjaMO6bmcgdGEgY8OzIGPDoWkgbmjDrG4gdOG7lW5nIHF1YW4gdsOgIGNow61uaCB4w6FjIHbhu4Egbmjhu69uZyBoaeG7h24gdMaw4bujbmcgdsOgIHPhu7Ega2nhu4duIHjhuqN5IHJhIHRyb25nIHRo4buxYyB04bq/LCBjxaluZyBuaMawIGtow6FtIHBow6Egbmjhu69uZyBt4buRaSBxdWFuIGjhu4csIHh1IGjGsOG7m25nIHbDoCDEkeG6t2MgxJFp4buDbSBj4bunYSBjaMO6bmcuDQoNClRo4buRbmcga8OqIGPDsyB0aOG7gyDEkcaw4bujYyBjaGlhIHRow6BuaCBoYWkgbG/huqFpOiB0aOG7kW5nIGvDqiBtw7QgdOG6oyB2w6AgdGjhu5FuZyBrw6ogc3V5IGx14bqtbi4gVGjhu5FuZyBrw6ogbcO0IHThuqMgbmjhurFtIG3hu6VjIMSRw61jaCB04buVbmcgaOG7o3AgdsOgIHRyw6xuaCBiw6B5IGThu68gbGnhu4d1IGLhurFuZyBjw6FjIHPhu5EgbGnhu4d1IGhv4bq3YyBiaeG7g3UgxJHhu5MuIFRo4buRbmcga8OqIG3DtCB04bqjIGdpw7pwIGNow7puZyB0YSBoaeG7g3UgxJHGsOG7o2MgYuG6o24gY2jhuqV0IHbDoCBwaMOibiBi4buRIGPhu6dhIGThu68gbGnhu4d1LCBjxaluZyBuaMawIHNvIHPDoW5oIHbDoCDEkcOhbmggZ2nDoSBjw6FjIG5ow7NtIGThu68gbGnhu4d1IGtow6FjIG5oYXUuIFRo4buRbmcga8OqIHN1eSBsdeG6rW4gbmjhurFtIG3hu6VjIMSRw61jaCByw7p0IHJhIG5o4buvbmcga+G6v3QgbHXhuq1uIGhv4bq3YyBraeG7g20gxJHhu4tuaCBjw6FjIGdp4bqjIHRodXnhur90IGThu7FhIHRyw6puIGThu68gbGnhu4d1IG3huqt1LiBUaOG7kW5nIGvDqiBzdXkgbHXhuq1uIGdpw7pwIGNow7puZyB0YSBzdXkgZGnhu4VuIHbhu4EgdOG7lW5nIHRo4buDIGThu7FhIHRyw6puIG3hu5l0IHBo4bqnbiBj4bunYSBuw7MsIGPFqW5nIG5oxrAgxrDhu5tjIGzGsOG7o25nIHbDoCBraeG7g20gdHJhIHTDrW5oIHRpbiBj4bqteSBj4bunYSBjw6FjIGvhur90IHF14bqjLg0KDQpUaOG7kW5nIGvDqiDEkcaw4bujYyDhu6luZyBk4bulbmcgcuG7mW5nIHLDo2kgdHJvbmcgbmhp4buBdSBsxKluaCB24buxYyBuaMawIGtpbmggdOG6vywga2hvYSBo4buNYywgY8O0bmcgbmdoaeG7h3AsIHjDoyBo4buZaSwgeSB04bq/LCBnacOhbyBk4bulYywuLi4gVGjhu5FuZyBrw6ogZ2nDunAgY2jDum5nIHRhIGPDsyDEkcaw4bujYyBuaOG7r25nIHRow7RuZyB0aW4gcXVhbiB0cuG7jW5nIHbDoCBj4bqnbiB0aGnhur90IMSR4buDIGjhu5cgdHLhu6MgY2hvIHZp4buHYyByYSBxdXnhur90IMSR4buLbmgsIGzhuq1wIGvhur8gaG/huqFjaCwgxJFp4buBdSB0cmEsIG5naGnDqm4gY+G7qXUgdsOgIGdp4bqjaSBxdXnhur90IGPDoWMgduG6pW4gxJHhu4EgdHJvbmcgdGjhu7FjIHThur8uIFbDrSBk4bulLCB0cm9uZyBraW5oIHThur8sIHRo4buRbmcga8OqIMSRxrDhu6NjIHPhu60gZOG7pW5nIMSR4buDIHRoZW8gZMO1aSB2w6AgxJHDoW5oIGdpw6EgY8OhYyBjaOG7iSBz4buRIGtpbmggdOG6vyBuaMawIEdEUCwgbOG6oW0gcGjDoXQsIHRo4bqldCBuZ2hp4buHcCwuLi4gVHJvbmcga2hvYSBo4buNYywgdGjhu5FuZyBrw6ogxJHGsOG7o2Mgc+G7rSBk4bulbmcgxJHhu4MgdGhp4bq/dCBr4bq/IHbDoCBwaMOibiB0w61jaCBjw6FjIHRow60gbmdoaeG7h20sIGtp4buDbSB0cmEgY8OhYyBnaeG6oyB0aHV54bq/dCBraG9hIGjhu41jIHbDoCBraOG6o28gc8OhdCBjw6FjIGhp4buHbiB0xrDhu6NuZyB04buxIG5oacOqbi4gVHJvbmcgY8O0bmcgbmdoaeG7h3AsIHRo4buRbmcga8OqIMSRxrDhu6NjIHPhu60gZOG7pW5nIMSR4buDIGtp4buDbSBzb8OhdCBjaOG6pXQgbMaw4bujbmcsIGPhuqNpIHRp4bq/biBxdXkgdHLDrG5oIHPhuqNuIHh14bqldCB2w6AgdOG7kWkgxrB1IGjDs2Egbmd14buTbiBs4buxYy4gVHJvbmcgeMOjIGjhu5lpLCB0aOG7kW5nIGvDqiDEkcaw4bujYyBz4butIGThu6VuZyDEkeG7gyBraOG6o28gc8OhdCDDvSBraeG6v24gY8O0bmcgY2jDum5nLCBuZ2hpw6puIGPhu6l1IGPDoWMgduG6pW4gxJHhu4EgeMOjIGjhu5lpIG5oxrAgZ2nDoW8gZOG7pWMsIGFuIG5pbmgsIG3DtGkgdHLGsOG7nW5nLCB2di4gVHJvbmcgeSB04bq/LCB0aOG7kW5nIGvDqiDEkcaw4bujYyBz4butIGThu6VuZyDEkeG7gyBuZ2hpw6puIGPhu6l1IGPDoWMgYuG7h25oIGzDvSwgxJHDoW5oIGdpw6EgaGnhu4d1IHF14bqjIGPhu6dhIGPDoWMgcGjGsMahbmcgcGjDoXAgxJFp4buBdSB0cuG7iyB2w6AgcGjDsm5nIG5n4burYS4NCg0KIyMgR8OzaSBBRVINCg0KR8OzaSBBRVIgbMOgIG3hu5l0IGfDs2kgdHJvbmcgUlN0dWRpbywgZMO5bmcgxJHhu4MgdGjhu7FjIGhp4buHbiBjw6FjIHBow6JuIHTDrWNoIGtpbmggdOG6vyBsxrDhu6NuZyB24bubaSBSLiBHw7NpIEFFUiBiYW8gZ+G7k20gY8OhYyBow6BtIMSR4buDIMaw4bubYyBsxrDhu6NuZyBjw6FjIG3DtCBow6xuaCBo4buTaSBxdXkgdHV54bq/biB0w61uaCwgaOG7k2kgcXV5IHBoaSB0dXnhur9uLCBo4buTaSBxdXkgxJFhIGJp4bq/biwgaOG7k2kgcXV5IMSRYSBj4bqlcCwgaOG7k2kgcXV5IGLhuqNuZywgaOG7k2kgcXV5IMSR4bq/bSwgaOG7k2kgcXV5IG5o4buLIHBow6JuLCBo4buTaSBxdXkgxJHhu4tuaCBsxrDhu6NuZywgaOG7k2kgcXV5IGPhuq90IG5nYW5nLCBo4buTaSBxdXkgZMOybmcgdGjhu51pIGdpYW4gdsOgIGjhu5NpIHF1eSBraMO0bmcgZ2lhbi4gR8OzaSBBRVIgY8WpbmcgY3VuZyBj4bqlcCBjw6FjIGjDoG0gxJHhu4Mga2nhu4NtIHRyYSBjw6FjIGdp4bqjIHRoaeG6v3QgY+G7p2EgY8OhYyBtw7QgaMOsbmgsIHjDonkgZOG7sW5nIGPDoWMga2hv4bqjbmcgdGluIGPhuq15IHbDoCBraeG7g20gxJHhu4tuaCBjw6FjIGdp4bqjIHRodXnhur90LiBOZ2/DoGkgcmEsIGfDs2kgQUVSIGPDsm4gY8OzIGPDoWMgdOG6rXAgZOG7ryBsaeG7h3UgxJHGsOG7o2Mgc+G7rSBk4bulbmcgdHJvbmcgc8OhY2ggQXBwbGllZCBFY29ub21ldHJpY3Mgd2l0aCBSLCB2w60gZOG7pSBuaMawIGThu68gbGnhu4d1IHbhu4EgdGh1IG5o4bqtcCwgZ2nDoSBj4bqjLCB0acOqdSBkw7luZywgeHXhuqV0IGto4bqpdSwgbmjhuq1wIGto4bqpdSwgc+G6o24geHXhuqV0LCBsYW8gxJHhu5luZywgZ2nDoW8gZOG7pWMsIHkgdOG6vyB2w6AgbcO0aSB0csaw4budbmcuDQoNCiMjIFBow6JuIFBo4buRaSBQb2lzc29uDQoNClBow6JuIHBo4buRaSBQb2lzc29uIGzDoCBt4buZdCBwaMOibiBwaOG7kWkgeMOhYyBzdeG6pXQgcuG7nWkgcuG6oWMsIGPDsyBuZ2jEqWEgbMOgIGJp4bq/biBjaOG7iSBjw7MgdGjhu4Mgbmjhuq1uIGPDoWMgZ2nDoSB0cuG7iyBj4bulIHRo4buDIHRyb25nIG3hu5l0IGRhbmggc8OhY2ggY8OhYyBz4buRIG5o4bqldCDEkeG7i25oLCBjw7MgdGjhu4MgbMOgIHbDtCBo4bqhbi4gDQoNClBow6JuIHBo4buRaSBQb2lzc29uIMSRbyBsxrDhu51uZyBz4buRIGzhuqduIG3hu5l0IHPhu7Ega2nhu4duIGPDsyBraOG6oyBuxINuZyB44bqjeSByYSB0cm9uZyBraG/huqNuZyB0aOG7nWkgZ2lhbiDigJx44oCdLiANCg0KUGjDom4gcGjhu5FpIFBvaXNzb24gY8OybiDEkcaw4bujYyBn4buNaSBsw6AgbHXhuq10IHPhu5Egbmjhu48gdsOsIG7DsyBsw6AgeMOhYyBzdeG6pXQgcGjDom4gcGjhu5FpIGPhu6dhIHPhu5EgbOG6p24geHXhuqV0IGhp4buHbiBj4bunYSBt4buZdCBz4buxIGtp4buHbiB44bqjeSByYSB0cm9uZyBt4buZdCBraG/huqNuZyB0aOG7nWkgZ2lhbiBob+G6t2Mga2jDtG5nIGdpYW4gY2hvIHRyxrDhu5tjLg0KDQpYw6FjIHN14bqldCDEkeG7gyBiaeG6v24gbmfhuqt1IG5oacOqbiBuw6B5IG5o4bqtbiBt4buZdCBnacOhIHRy4buLIGPhu6UgdGjhu4MgxJHGsOG7o2MgdMOtbmggYuG6sW5nIGPDtG5nIHRo4bupYzoNCg0KJFAoWD1rKSA9IFxmcmFje2Veey3Ou33Ou15rfXtrIX0kDQoNCiMjIFBow6JuIFBo4buRaSBOaOG7iyBUaOG7qWMNCg0KUGjDom4gcGjhu5FpIG5o4buLIHRo4bupYyBsw6AgbeG7mXQgcGjDom4gcGjhu5FpIHjDoWMgc3XhuqV0IHLhu51pIHLhuqFjLCBjw7MgbmdoxKlhIGzDoCBiaeG6v24gY2jhu4kgY8OzIHRo4buDIG5o4bqtbiBt4buZdCB0cm9uZyBoYWkgZ2nDoSB0cuG7iyDEkeG7mWMgbOG6rXAuDQoNClBow6JuIHBo4buRaSBuaOG7iyB0aOG7qWMgxJHGsOG7o2Mgc+G7rSBk4bulbmcgxJHhu4MgdMOtbmggeMOhYyBzdeG6pXQgdGjDoG5oIGPDtG5nIGPhu6dhIEJp4bq/biBuZ+G6q3Ugbmhpw6puIFggZ+G7k20gbiBz4buxIHZp4buHYyDEkeG7mWMgbOG6rXAgbmhhdSB2w6AgeMOhYyBzdeG6pXQgVGjDoG5oIGPDtG5nIGzDoCBi4bqxbmcgbmhhdSB2w6AgYuG6sW5nIHAgY2hvIHThu6tuZyBz4buxIHZp4buHYy4NCg0KR2nhuqMgxJHhu4tuaCBjxqEgYuG6o24gY+G7p2EgcGjDom4gcGjhu5FpIG5o4buLIHRo4bupYyBsw6AgY2jhu4kgY8OzIG3hu5l0IGvhur90IHF14bqjIGNobyBt4buXaSB0aOG7rSBuZ2hp4buHbSwgcuG6sW5nIG3hu5dpIHRo4butIG5naGnhu4dtIGPDsyB4w6FjIHN14bqldCB0aMOgbmggY8O0bmcgbmjGsCBuaGF1IHbDoCBt4buXaSB0aOG7rSBuZ2hp4buHbSBsw6AgbG/huqFpIHRy4burIGzhuqtuIG5oYXUgaG/hurdjIMSR4buZYyBs4bqtcCB24bubaSBuaGF1Lg0KDQpLaGkgxJHDsyB4w6FjIHN14bqldCDEkeG7gyBYIG5o4bqtbiBt4buZdCBnacOhIHRy4buLIGPhu6UgdGjhu4MgbMOgDQoNCiRQKFg9aykgPSBDX2tebnBeaygxLXApXntuLWt9JA0KDQojIyBC4bqjbmcgdOG6p24gc+G7kSANCg0KQuG6o25nIHThuqduIHPhu5EgbMOgIG3hu5l0IGLhuqNuZyB0aOG7kW5nIGvDqiBjaG8gYmnhur90IHPhu5EgbOG6p24geHXhuqV0IGhp4buHbiBj4bunYSBjw6FjIGdpw6EgdHLhu4sgY+G7p2EgbeG7mXQgZOG6pXUgaGnhu4d1IHRyb25nIG3hu5l0IHThuq1wIGThu68gbGnhu4d1LiBC4bqjbmcgdOG6p24gc+G7kSBjw7JuIMSRxrDhu6NjIGfhu41pIGzDoCBi4bqjbmcgbmfhuqt1IG5oacOqbi4gDQoNCsSQ4buRaSB24bubaSBi4bqjbmcgdOG6p24gc+G7kSBjaMO6bmcgdGEgcXV5IMaw4bubYyBiaeG6v24gcGjhu6UgdGh14buZYyDEkcaw4bujYyB44bqvcCB44bq/cCB0aGVvIGPhu5l0LCBiaeG6v24gxJHhu5ljIGzhuq1wIMSRxrDhu6NjIHjhuq9wIHjhur9wIHRoZW8gaMOgbmcuDQoNCiMjIMSQ4buZIG5o4bqheSB2w6AgxJHhu5kgxJHhurdjIGhp4buHdQ0KDQrEkOG7mSBuaOG6oXkgKHNlbnNpdGl2aXR5KSBj4bunYSBt4buZdCB0aMOtIG5naGnhu4dtOiBMw6AgdOG7tyBs4buHICglKSBj4bunYSBz4buRIGNhIGLhu4sgYuG7h25oIHRo4buxYyBz4buxIGtoaSB4w6l0IG5naGnhu4dtIHbDoCBjaG8ga+G6v3QgcXXhuqMgZMawxqFuZyB0w61uaCB24bubaSB04buVbmcgc+G7kSBjYSBi4buLIGLhu4duaC4gQ8O0bmcgdGjhu6ljIMSR4buDIHTDrW5oIMSR4buZIG5o4bqheToNCg0KJMSQ4buZIG5o4bqheSA9IFxmcmFje3Phu5EgZMawxqFuZyB0w61uaCB0aOG6rXR9eyhz4buRIMSRxrDGoW5nIHTDrW5oIHRo4bqtdCArIHPhu5Egw6JtIHTDrW5oIGdp4bqjKX0kDQoNCsSQ4buZIMSR4bq3YyBoaeG7h3UgKHNwZWNpZmljaXR5KSBj4bunYSBt4buZdCB0aMOtIG5naGnhu4dtOiBMw6AgdOG7tyBs4buHICglKSBj4bunYSBz4buRIGNhIGtow7RuZyBi4buLIGLhu4duaCB2w6Aga+G6v3QgcXXhuqMgeMOpdCBuZ2hp4buHbSBraMO0bmcgYuG7iyBi4buHbmggduG7m2kgdOG7lW5nIHPhu5EgbmfGsOG7nWkga2jDtG5nIGLhu4sgYuG7h25oLiBDw7RuZyB0aOG7qWMgdMOtbmggxJHhu5kgxJHhurdjIGhp4buHdToNCg0KJMSQ4buZIMSR4bq3YyBoaeG7h3UgPSBcZnJhY3tT4buRIHRyxrDhu51uZyBo4bujcCDDom0gdMOtbmggdGjhuq10fXsoc+G7kSB0csaw4budbmcgaOG7o3Agw6JtIHTDrW5oIHRo4bqtdCArIHPhu5EgdHLGsOG7nW5nIGjhu6NwIGTGsMahbmcgdMOtbmggZ2nhuqMpfSQNCg0KIyMgUuG7p2kgcm8gdMawxqFuZyDEkeG7kWkgDQoNCkvDvSBoaeG7h3UgJM+AX2kkIGzDoCB04bu3IGzhu4cg4oCcdGjDoG5oIGPDtG5n4oCdIGPhu6dhIGJp4bq/biBwaOG7pSB0aHXhu5ljIChyZXNwb25zZSB2YXJpYWJsZSkgdMawxqFuZyDhu6luZyB24bubaSB04burbmcgYmnhu4N1IGhp4buHbiBj4bunYSBiaeG6v24gxJHhu5ljIGzhuq1wLg0KDQpU4burIGLhuqNuZyB04bqnbiB4deG6pXQsIGNow7puZyB0YSB0w61uaCAkXGZyYWN7z4BfMX17z4BfMn0kLCBwaMOibiBz4buRIG7DoHkgZ+G7jWkgbMOgIFLhu6dpIHJvIHTGsMahbmcgxJHhu5FpIChSZWxhdGl2ZSByaXNrKSBnaeG7r2EgMiBiaeG7g3UgaGnhu4duIGtow6FjIG5oYXUgY+G7p2EgYmnhur9uIHBo4bulIHRodeG7mWMuDQoNCiMjIFThu7cgbOG7hyBjaMOqbmgNCg0KVOG7tyBs4buHIGNow6puaCBsw6AgdOG7iSBz4buRIGdp4buvYSBoYWkgdOG7tyBs4buHLiBU4bu3IGzhu4cgbMOgIG3hu5l0IG3hu5FpIHF1YW4gaOG7hyBnaeG7r2EgaGFpIHPhu5EgY2hvIGJp4bq/dCBz4buRIMSR4bqndSB0acOqbiBjaGnhur9tIHPhu5EgdGjhu6kgaGFpIGJhbyBuaGnDqnUgbOG6p24uDQoNCk7hur91IGfhu41pIHjDoWMgc3XhuqV0IOKAnHRow6BuaCBjw7RuZ+KAnSBj4bunYSBiaeG7g3UgaGnhu4duIHRo4bupICRpJCBj4bunYSBiaeG6v24gxJHhu5ljIGzhuq1wIGzDoCAkz4BfaSQgdGjDrCBjaMO6bmcgdGEga8OtIGhp4buHdSBU4bu3IGzhu4cgY8aw4bujYyAob2RkKSBj4bunYSBiaeG7g3UgaGnhu4duIG7DoHkgbMOgICRvZGRfaSQgdsOgIMSRxrDhu6NjIMSR4buLbmggbmdoxKlhIG5oxrAgc2F1Og0KDQokb2RkaT1cZnJhY3vPgGl9ezHiiJLPgGl9JA0KDQpOZ2jEqWEgbMOgIGNow7puZyB0YSB0w61uaCB04bu3IGzhu4cgdGjDoG5oIGPDtG5nIHRoZW8gdOG7q25nIGjDoG5nIHRyb25nIGLhuqNuZyBuZ+G6q3Ugbmhpw6puLg0KDQpU4bu3IGzhu4cgY2jDqm5oIGPhu6dhIGJp4buDdSBoaeG7h24gdGjhu6kgaSB2w6AgYmnhu4N1IGhp4buHbiB0aOG7qSBqIMSRxrDhu6NjIGvDrSBoaeG7h3UgbMOgIM64aWogdsOgIMSRxrDhu6NjIMSR4buLbmggbmdoxKlhOg0KDQokzrg9XGZyYWN7b2RkX2l9e29kZF9qfT1cZnJhY3vPgF9pKDHiiJLPgF9qKX17z4Bfaigx4oiSz4BfaSl9JA0KDQojIyBLaG/huqNuZyDGsOG7m2MgbMaw4bujbmcgY2hvIHThu4kgbOG7hw0KDQpLaG/huqNuZyDGsOG7m2MgbMaw4bujbmcgY2hvIHThu4kgbOG7hyB0cm9uZyBSU3R1ZGlvIGzDoCBt4buZdCBraG/huqNuZyBjaOG7qWEgZ2nDoSB0cuG7iyBj4bunYSB04buJIGzhu4cgdOG7lW5nIHRo4buDIGThu7FhIHRyw6puIG3huqt1IGThu68gbGnhu4d1LCB24bubaSBt4buZdCBt4bupYyDEkeG7mSB0aW4gY+G6rXkgbmjhuqV0IMSR4buLbmguIEPDsyBjw7RuZyB0aOG7qWMgdOG7lW5nIHRo4buDIG5oxrAgc2F1Og0KDQokcOKIklpfe86xLzJ9CVxzcXJ0ewlcZnJhY3twKDEtcCl9e259fSQNCg0KVHJvbmcgxJHDszogcCBsw6AgdOG7iSBs4buHIG3huqt1LCAkWl97zrEvMn0kIGzDoCBnacOhIHRy4buLIHBow6JuIHbhu4sgY+G7p2EgcGjDom4gcGjhu5FpIGNodeG6qW4gdOG6oWkgbeG7qWMgw70gbmdoxKlhIM6xLCBuIGzDoCBrw61jaCB0aMaw4bubYyBt4bqrdS4NCg0KIyMgQ8OhYyB0acOqdSBjaMOtIMSRw6FuaCBnacOhIG3DtCBow6xuaA0KDQrEkOG7gyDEkcOhbmggZ2nDoSBjw6FjIG3DtCBow6xuaCBo4buTaSBj4buVIMSRaeG7g24gY2jDum5nIHRhIHRoxrDhu51uZyBk4buxYSB2w6BvIGjhu4cgc+G7kSB4w6FjIMSR4buLbmggbcO0IGjDrG5oIChSMiksIG5oxrBuZyDEkeG7kWkgduG7m2kgbcO0IGPDoWMgbcO0IGjDrG5oIGjhu5NpIHF1eSB0dXnhur9uIHTDrW5oIHThu5VuZyBxdcOhdCBjaMO6bmcgdGEgc+G7rSBk4bulbmcgY8OhYyB0acOqdSBjaMOtIHNhdToNCg0KIyMjIEFJQyAtIEFrYWlrZSBJbmZvcm1hdGlvbiBDcml0ZXJpb24NCg0KQUlDIMSRxrDhu6NjIMSR4buBIHh14bqldCBi4bufaSBBa2Fpa2UgSGlyb3R1Z3UsIG3hu5l0IG5ow6AgdGjhu5FuZyBrw6ogaOG7jWMgbmfGsOG7nWkgTmjhuq10LiBBSUMgbMOgIG3hu5l0IHRpw6p1IGNow60gxJHGsOG7o2Mgc+G7rSBk4bulbmcgbeG7mXQgY8OhY2ggcGjhu5UgYmnhur9uIMSR4buDIMSRw6FuaCBnacOhIG3hu5l0IG3DtCBow6xuaCBo4buTaSBxdXkgxJHGsOG7o2MgxrDhu5tjIGzGsOG7o25nIGLhu59pIHBoxrDGoW5nIHBow6FwIE1heGltdW1MaWtla2lob29kIChNTCkuIE3hu5l0IGPDoWNoIGNodW5nIGNodW5nIGdpw6EgdHLhu4sgY+G7p2EgQUlDIGPDoG5nIG5o4buPIHRow6wgbcO0IGjDrG5oIGPDoG5nIHThu5F0LiBBSUMgxJHGsOG7o2MgdMOtbmggYuG6sW5nIGPDtG5nIHRo4bupYyBzYXU6DQoNCiRBSUM94oiSMmxuKEwpKzJrJA0KDQpW4bubaSBMIGzDoCBnacOhIHRy4buLIGPhu7FjIMSR4bqhaSBj4bunYSBow6BtIGjhu6NwIGzDvSAobGlrZWxpaG9vZCBmdW5jdGlvbikgdsOgIGsNCmzDoCBz4buRIHRoYW0gc+G7kSBj4bunYSBtw7QgaMOsbmguDQoNCktoaSB0aOG7sWMgaGnhu4duIHZp4buHYyDGsOG7m2MgbMaw4bujbmcgbcO0IGjDrG5oIGjhu5NpIHF1eSBi4bqxbmcgbOG7h25oIGdsbSB0aMOsIGNo4buJIHPhu5EgQUlDIMSRw6MgxJHGsOG7o2MgdMOtbmggdG/DoW4gdsOgIHRo4buDIGhp4buHbiB0csOqbiBi4bqjbmcga+G6v3QgcXXhuqMgKCBi4bqxbmcgbOG7h25oIHN1bW1hcnkpDQoNCiMjIyBEZXZpYW5jZQ0KDQpEZXZpYW5jZSBjxaluZyBsw6AgbeG7mXQgdGnDqnUgY2jDrSBy4bqldCBwaOG7lSBiaeG6v24gxJHGsOG7o2Mgc+G7rSBk4bulbmcgxJHhu4MgxJHDoW5oIGdpw6EgbeG7mXQgbcO0IGjDrG5oIGjhu5NpIHF1eSDEkcaw4bujYyDGsOG7m2MgbMaw4bujbmcgYuG7n2kgcGjGsMahbmcgcGjDoXAgSOG7o3AgbMO9IGPhu7FjIMSR4bqhaSAoTUwpLiBN4buZdCBjw6FjaCB04buVbmcgcXXDoSwgY8WpbmcgZ2nhu5FuZyBuaMawIGNo4buJIHRpw6p1IEFJQywgZ2nDoSB0cuG7iyBj4bunYSBEZXZpYW5jZSBjw6BuZyBuaOG7jyB0aMOsIG3DtCBow6xuaCBjw6BuZyB04buRdC4NCg0KTMawdSDDvTogS2hpIHRo4buxYyBoaeG7h24gdmnhu4djIMaw4bubYyBsxrDhu6NuZyBtw7QgaMOsbmggaOG7k2kgcXV5IGLhurFuZyBs4buHbmggZ2xtIHRow6wgY2jhu4kgc+G7kSBBSUMgdsOgIERldmlhbmNlIMSRw6MgxJHGsOG7o2MgdMOtbmggdG/DoW4gdsOgIHRo4buDIGhp4buHbiB0csOqbiBi4bqjbmcga+G6v3QgcXXhuqMgKCBi4bqxbmcgbOG7h25oIHN1bW1hcnkpLg0KDQojIyMgQnJpZXIgU2NvcmUNCkzDoCBjaOG7iSB0acOqdSBkw7luZyDEkeG7gyDEkcOhbmggZ2nDoSBtw7QgaMOsbmggaOG7k2kgcXV5IGxvZ2lzdGljLCBCcmllciBTY29yZSDEkcaw4bujYyB0w61uaCBuaMawIHNhdToNCg0KJEI9IFxmcmFjezF9e259XHN1bV97aT0xfV57bn1wX2kgLW9faSQNCg0KVHJvbmcgxJHDszogJHBfaSQsJG9faSQgbOG6p24gbMaw4bujdCBsw6AgZ2nDoSB0cuG7iyB4w6FjIHN14bqldCBxdWFuIHPDoXQgxJHGsOG7o2MsIHbDoCBnacOhIHRy4buLIHjDoWMgc3XhuqV0IHTDrW5oIHJhIHThu6sgbcO0IGjDrG5oLg0KDQojIENIxq/GoE5HIDI6IFBIxq/GoE5HIFBIw4FQIFbDgCBL4bq+VCBRVeG6oiBOR0hJw4pOIEPhu6hVDQoNCiMjIFThu5VuZyBxdWFuIGThu68gbGnhu4d1DQpgYGB7cn0NCmxpYnJhcnkoQUVSKQ0KZGF0YSgiSGVhbHRoSW5zdXJhbmNlIikNCkRMRFQgPC0gSGVhbHRoSW5zdXJhbmNlDQpsaWJyYXJ5KERUKQ0KRExEVCAlPiUgRFQ6OmRhdGF0YWJsZShETERUKQ0KYGBgDQoNCkdp4bqjaSB0aMOtY2ggY8OhYyBi4buZIGThu68gbGnhu4d1Og0KDQpU4bqtcCBk4buvIGxp4buHdSBIZWFsdGhJbnN1cmFuY2UgdHJvbmcgZ8OzaSBBRVIgbMOgIG3hu5l0IHThuq1wIGThu68gbGnhu4d1IGNo4bupYSB0aMO0bmcgdGluIHbhu4EgY2hpIHBow60geSB04bq/IGPhu6dhIGPDoWMgaOG7mSBnaWEgxJHDrG5oIHThuqFpIEhvYSBL4buzLiBU4bqtcCBk4buvIGxp4buHdSBuw6B5IGJhbyBn4buTbSA4LjgwMiBxdWFuIHPDoXQgdHLDqm4gMTEgYmnhur9uLiBDw6FjIGJp4bq/biBiYW8gZ+G7k206DQoNCi0gaGVhbHRoOiBDaOG7iSBz4buRIHPhu6ljIGto4buPZSBj4bunYSBuZ8aw4budaSDEkcaw4bujYyBraOG6o28gc8OhdC4NCg0KLSBhZ2U6IFR14buVaSBj4bunYSBuZ8aw4budaSDEkcaw4bujYyBraOG6o28gc8OhdC4NCg0KLSBsaW1pdDogQ2jhu4kgc+G7kSBnaeG7m2kgaOG6oW4gc+G7qWMga2jhu49lIGPhu6dhIG5nxrDhu51pIMSRxrDhu6NjIGto4bqjbyBzw6F0Lg0KDQotIGdlbmRlcjogR2nhu5tpIHTDrW5oIGPhu6dhIG5nxrDhu51pIMSRxrDhu6NjIGto4bqjbyBzw6F0Lg0KIA0KLSBpbnN1cmFuY2U6IENo4buJIHPhu5EgYuG6o28gaGnhu4NtIHkgdOG6vyBj4bunYSBuZ8aw4budaSDEkcaw4bujYyBraOG6o28gc8OhdC4NCiANCi0gbWFycmllZDogVMOsbmggdHLhuqFuZyBow7RuIG5ow6JuIGPhu6dhIG5nxrDhu51pIMSRxrDhu6NjIGto4bqjbyBzw6F0Lg0KDQotIHNlbGZlbXA6IFTDrG5oIHRy4bqhbmcgdOG7sSBsw6BtIGNo4bunIGPhu6dhIG5nxrDhu51pIMSRxrDhu6NjIGto4bqjbyBzw6F0Lg0KDQotIGZhbWlseTogS8OtY2ggdGjGsOG7m2MgZ2lhIMSRw6xuaCBj4bunYSBuZ8aw4budaSDEkcaw4bujYyBraOG6o28gc8OhdC4NCg0KLSByZWdpb246IFbDuW5nIMSR4buLYSBsw70gY+G7p2EgbmfGsOG7nWkgxJHGsOG7o2Mga2jhuqNvIHPDoXQuDQogDQotIGV0aG5pY2l0eTogRMOibiB04buZYyBj4bunYSBuZ8aw4budaSDEkcaw4bujYyBraOG6o28gc8OhdC4NCg0KLSBlZHVjYXRpb246IFRyw6xuaCDEkeG7mSBo4buNYyB24bqlbiBj4bunYSBuZ8aw4budaSDEkcaw4bujYyBraOG6o28gc8OhdC4NCg0KYGBge3J9DQpzdHIoSGVhbHRoSW5zdXJhbmNlKQ0KYGBgDQoNCiMjIEJp4bq/biDEkeG7i25oIHTDrW5oDQoNCkPDoWMgYmnhur9uIMSR4buLbmggdMOtbmggZ+G7k206IGhlYWx0aCwgbGltaXQsIGdlbmRlciwgaW5zdXJhbmNlLCBtYXJyaWVkLCBzZWxmZW1wLCByZWdpb24sIGV0aG5pY2l0eSB2w6AgZWR1Y2F0aW9uLiBUcm9uZyDEkcOzOg0KDQotIGhlYWx0aDogTmjhuq1uIGhhaSBnacOhIHRy4buLIGzDoCAieWVzIiB2w6AgIk5vIiwgdGjhu4MgaGnhu4duIG5nxrDhu51pIGto4bqjbyBzw6F0IGPDsyBz4bupYyBraOG7j2UgdOG7kXQgaG/hurdjIGzDoCBraMO0bmcgY8OzIHPhu6ljIGto4buPZSB04buRdC4NCg0KLSBsaW1pdDogTmjhuq1uIGhhaSBnacOhIHRy4buLIGzDoCAieWVzIiB2w6AgIk5vIiwgdGjhu4MgaGnhu4duIG5nxrDhu51pIGto4bqjbyBzw6F0IGPDsyBnaeG7m2kgaOG6oW4gduG7gSBz4bupYyBraOG7j2UgaG/hurdjIGtow7RuZyBjw7MgZ2nhu5tpIGjhuqFuIHbhu4Egc+G7qWMga2jhu49lLg0KDQotIGdlbmRlcjogTmjhuq1uIGhhaSBnacOhIHRy4buLIGzDoCAiZmVtYWxlIiB2w6AgIm1hbGUiLCB0aOG7gyBoaeG7h24gbmfGsOG7nWkga2jhuqNvIHPDoXQgbMOgIG7hu68gaGF5IGzDoCBuYW0uDQoNCi0gaW5zdXJhbmNlOiBOaOG6rW4gaGFpIGdpw6EgdHLhu4sgbMOgICJ5ZXMiIHbDoCAiTm8iLCB0aOG7gyBoaeG7h24gbmfGsOG7nWkga2jhuqNvIHPDoXQgY8OzIGLhuqNvIGhp4buDbSB5IHThur8gaG/hurdjIGtow7RuZyBjw7MgYuG6o28gaGnhu4NtIHkgdOG6vy4NCg0KLSBtYXJyaWVkOiBOaOG6rW4gaGFpIGdpw6EgdHLhu4sgbMOgICJ5ZXMiIHbDoCAiTm8iLCB0aOG7gyBoaeG7h24gbmfGsOG7nWkga2jhuqNvIHPDoXQgY8OzIHTDrG5oIHRy4bqhbmcgaMO0biBuaMOibiBob+G6t2Mga2jDtG5nIGPDsyB0w6xuaCB0cuG6oW5nIGjDtG4gbmjDom4uDQoNCi0gc2VsZmVtcDogTmjhuq1uIGhhaSBnacOhIHRy4buLIGzDoCAieWVzIiB2w6AgIk5vIiwgdGjhu4MgaGnhu4duIG5nxrDhu51pIGto4bqjbyBzw6F0IGPDsyB04buxIGNo4bunIHTDoGkgY2jDrW5oIGhv4bq3YyBraMO0bmcgY8OzIHThu7EgY2jhu6cgdMOgaSBjaMOtbmguDQoNCi0gcmVnaW9uOiBOaOG6rW4gNCBnacOhIHRy4buLLCBj4bulIHRo4buDIGzDoCBnacOhIHRy4buLIOKAnG5vcnRoZWFzdOKAnSBjaG8gYmnhur90IG5nxrDhu51pIMSRxrDhu6NjIGto4bqjbyBzw6F0IHPhu5FuZyDhu58gdsO5bmcgxJDDtG5nIELhuq9jIEhvYSBL4buzLCBnacOhIHRy4buLIOKAnHNvdXRo4oCdIGNobyBiaeG6v3QgbmfGsOG7nWkgxJHGsOG7o2Mga2jhuqNvIHPDoXQgc+G7kW5nIOG7nyB2w7luZyBOYW0gSG9hIEvhu7MsIGdpw6EgdHLhu4sg4oCcbWlkd2VzdOKAnSBjaG8gYmnhur90IG5nxrDhu51pIMSRxrDhu6NjIGto4bqjbyBzw6F0IHPhu5FuZyDhu58gdsO5bmcgVHJ1bmcgVMOieSBIb2EgS+G7syB2w6AgZ2nDoSB0cuG7iyDigJxXZXN04oCdIGNobyBiaeG6v3QgbmfGsOG7nWkgxJHGsOG7o2Mga2jhuqNvIHPDoXQgc+G7kW5nIOG7nyB2w7luZyBUw6J5IEhvYSBL4buzLg0KDQotIGV0aG5pY2l0eTogTmjhuq1uIDMgZ2nDoSB0cuG7iywgY+G7pSB0aOG7gyBsw6AgZ2nDoSB0cuG7iyDigJxBZmFt4oCdIGNobyBiaeG6v3QgbmfGsOG7nWkgxJHGsOG7o2Mga2jhuqNvIHPDoXQgbMOgIG5nxrDhu51pIE3hu7kgZ+G7kWMgUGhpLCBnacOhIHRy4buLIOKAnENhdWPigJ0gY2hvIGJp4bq/dCBuZ8aw4budaSDEkcaw4bujYyBraOG6o28gc8OhdCBsw6AgbmfGsOG7nWkgTeG7uSBn4buRYyBDaMOidSDDgnUgdsOgIGdpw6EgdHLhu4sg4oCcb3RoZXLigJ0gY2hvIGJp4bq/dCBuZ8aw4budaSDEkcaw4bujYyBraOG6o28gc8OhdCBsw6AgbmfGsOG7nWkgdGh14buZYyBjw6FjIGTDom4gdOG7mWMga2jDoWMuDQoNCi0gZWR1Y2F0aW9uOiBOaOG6rW4gNyBnacOhIHRy4buLLCBj4bulIHRo4buDIGzDoCBnacOhIHRy4buLIOKAnG5vbmXigJ0gY2hvIGJp4bq/dCBuZ8aw4budaSDEkcaw4bujYyBraOG6o28gc8OhdCBraMO0bmcgY8OzIGLhurFuZyBj4bqlcCwgZ2nDoSB0cuG7iyDigJxnZWTigJ0gY2hvIGJp4bq/dCBuZ8aw4budaSDEkcaw4bujYyBraOG6o28gc8OhdCBjw7MgYuG6sW5nIHTGsMahbmcgxJHGsMahbmcgduG7m2kgdHJ1bmcgaOG7jWMgcGjhu5UgdGjDtG5nLCBnacOhIHRy4buLIOKAnGhpZ2ggc2Nob29s4oCdIGNobyBiaeG6v3QgbmfGsOG7nWkgxJHGsOG7o2Mga2jhuqNvIHPDoXQgxJHDoyB04buRdCBuZ2hp4buHcCB0cnVuZyBo4buNYyBwaOG7lSB0aMO0bmcgdsOgIGdpw6EgdHLhu4sg4oCcYmFjaGVsb3LigJ0sIOKAnG1hc3RlcuKAnSwg4oCcUGhE4oCdIHbDoCDigJxvdGhlcuKAnSBjaG8gYmnhur90IG5nxrDhu51pIMSRxrDhu6NjIGto4bqjbyBzw6F0IGPDsyBi4bqxbmcgY+G6pXAgxJHhuqFpIGjhu41jIGhv4bq3YyBjYW8gaMahbi4NCg0KIyMgQmnhur9uIMSR4buLbmggbMaw4bujbmcNCg0KLSBhZ2U6IFRo4buDIGhp4buHbiDEkeG7mSB0deG7lWkgY+G7p2EgbmfGsOG7nWkga2jhuqNvIHPDoXQuDQoNCi0gZmFtaWx5OiBUaOG7gyBoaeG7h24ga8OtY2ggdGjGsOG7m2MgdGjDoG5oIHZpw6puIHRyb25nIGdpYSDEkcOsbmggY+G7p2EgbmfGsOG7nWkga2jhuqNvIHPDoXQuDQoNCiMjIFjDoWMgxJHhu4tuaCBiaeG6v24gcGjhu6UgdGh14buZYw0KDQojIyMgQmnhur9uIMSR4buLbmggdMOtbmgNCg0KVMO0aSBjaOG7jW4gaGVhbHRoIGzDoG0gYmnhur9uIHBo4bulIHRodeG7mWMsIHbDrCB0w7RpIG114buRbiDEkcOhbmggZ2nDoSBt4bupYyDEkeG7mSDhuqNuaCBoxrDhu59uZyBj4bunYSBjw6FjIHnhur91IHThu5EgdHLDqm4gxJHhur9uIHPhu6ljIGto4buPZSBj4bunYSBuaOG7r25nIG5nxrDhu51pIHRoYW0gZ2lhIGto4bqjbyBzw6F0Lg0KDQojIyMgQmnhur9uIMSR4buLbmggbMaw4bujbmcNCg0KVMO0aSBjaOG7jW4gZmFtaWx5IGzDoG0gYmnhur9uIHBo4bulIHRodeG7mWMsIHbDrCBiaeG6v24gbsOgeSBz4bq9IGNobyB0w7RpIGJp4bq/dCDEkcaw4bujYyBz4buRIHRow6BuaCB2acOqbiBj4bunYSAxIGdpYSDEkcOsbmggc+G6vSBjw7MgdMOhYyDEkeG7mW5nIHRo4buDIG7DoG8gxJHhu5FpIHbhu5tpIHPhu6ljIGto4buPZSBj4bunYSBuaOG7r25nIG5nxrDhu51pIHRoYW0gZ2lhIGto4bqjbyBzw6F0Lg0KDQojIyBUaOG7kW5nIGvDqiBtw7QgdOG6ow0KDQojIyMgVGjhu5FuZyBrw6ogbcO0IHThuqMgY2hvIGJp4bq/biBpbnN1cmFuY2UNCg0KYGBge3J9DQojIyBC4bqjbmcgdOG6p24gc3XhuqV0IGPhu6dhIGJp4bq/biBpbnN1cmFuY2UNCnRhYmxlKERMRFQkaW5zdXJhbmNlKQ0KYGBgDQpgYGB7cn0NCiMjIELhuqNuZyB04bqnbiBzdeG6pXQgY+G7p2EgYmnhur9uIGluc3VyYW5jZSB0aGVvIHThu4kgbOG7hyAlDQp0YWJsZShETERUJGluc3VyYW5jZSkvc3VtKHRhYmxlKERMRFQkaW5zdXJhbmNlKSkNCmBgYA0KYGBge3J9DQojIyBCaeG7g3UgxJHhu5MgaMOsbmggdHLDsm4gY+G7p2EgYmnhur9uIGluc3VyYW5jZQ0KbGlicmFyeSgiZ2dwbG90MiIpDQpETERUIHw+IGdncGxvdChhZXMoeCA9IGluc3VyYW5jZSwgeSA9IGFmdGVyX3N0YXQoY291bnQpKSkgKyBnZW9tX2JhcihmaWxsID0gJ2xpZ2h0cGluaycpICsgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IHNjYWxlczo6cGVyY2VudChhZnRlcl9zdGF0KGNvdW50L3N1bShjb3VudCkpKSksIHN0YXQgPSAnY291bnQnLCBjb2xvciA9ICdyZWQnLCB2anVzdCA9IC0gLjUpICsgdGhlbWVfY2xhc3NpYygpICsgbGFicyh4ID0gJ1Phu58gaOG7r3UgYuG6o28gaGnhu4NtJywgeSA9ICdU4bu3IHRy4buNbmcnKQ0KYGBgDQoNClThu6sgYuG6o25nIHThuqduIHN14bqldCB2w6AgYmnhu4N1IMSR4buTIGPhu5l0IGPhu6dhIGJp4bq/biBpbnN1cmFuY2UsIHRhIHRodSDEkcaw4bujYyBr4bq/dCBxdeG6oyBzYXU6IHPhu5EgbmfGsOG7nWkgc+G7nyBo4buvdSBi4bqjbyBoaeG7g20gY2hp4bq/bSB04buJIGzhu4cgY2FvIG5o4bqldCBsw6AgODAlIHbDoCB04buJIGzhu4cgbmfGsOG7nWkga2jDtG5nIHPhu58gaOG7r3UgYuG6o28gaGnhu4NtIGNoaeG6v20gMjAlIHRyb25nIHThu5VuZyBz4buRIG5nxrDhu51pIHRoYW0gZ2lhIGto4bqjbyBzw6F0Lg0KDQojIyMgVGjhu5FuZyBrw6ogbcO0IHThuqMgY2hvIGJp4bq/biBoZWFsdGgNCg0KYGBge3J9DQojIyBC4bqjbmcgdOG6p24gc3XhuqV0IGPhu6dhIGJp4bq/biBoZWFsdGgNCnRhYmxlKERMRFQkaGVhbHRoKQ0KYGBgDQpgYGB7cn0NCiMjIELhuqNuZyB04bqnbiBzdeG6pXQgY+G7p2EgYmnhur9uIGhlYWx0aCB0aGVvIHThu4kgbOG7hyAlDQp0YWJsZShETERUJGhlYWx0aCkvc3VtKHRhYmxlKERMRFQkaGVhbHRoKSkNCmBgYA0KYGBge3J9DQojIyBCaeG7g3UgxJHhu5MgaMOsbmggdHLDsm4gY+G7p2EgYmnhur9uIGhlYWx0aA0KbGlicmFyeSgiZ2dwbG90MiIpDQpETERUIHw+IGdncGxvdChhZXMoeCA9IGhlYWx0aCwgeSA9IGFmdGVyX3N0YXQoY291bnQpKSkgKyBnZW9tX2JhcihmaWxsID0gJ2xpZ2h0cGluaycpICsgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IHNjYWxlczo6cGVyY2VudChhZnRlcl9zdGF0KGNvdW50L3N1bShjb3VudCkpKSksIHN0YXQgPSAnY291bnQnLCBjb2xvciA9ICdyZWQnLCB2anVzdCA9IC0gLjUpICsgdGhlbWVfY2xhc3NpYygpICsgbGFicyh4ID0gJ1TDrG5oIHRy4bqhbmcgc+G7qWMga2jhu49lJywgeSA9ICdU4bu3IHRy4buNbmcnKQ0KYGBgDQoNClThu6sgYuG6o25nIHThuqduIHN14bqldCB2w6AgYmnhu4N1IMSR4buTIGPhu5l0IGPhu6dhIGJp4bq/biBoZWFsdGgsIHRhIHRodSDEkcaw4bujYyBr4bq/dCBxdeG6oyBzYXU6IHPhu5EgbmfGsOG7nWkgY8OzIHTDrG5oIHRy4bqhbmcgc+G7qWMga2jhu49lIHThu5F0IGNoaeG6v20gdOG7iSBs4buHIGNhbyBuaOG6pXQgbMOgIDkzJSB2w6AgdOG7iSBs4buHIG5nxrDhu51pIHTDrG5oIHRy4bqhbmcgc+G7qWMga2jhu49lIGtow7RuZyB04buRdCBjaGnhur9tIDclIHRyb25nIHThu5VuZyBz4buRIG5nxrDhu51pIHRoYW0gZ2lhIGto4bqjbyBzw6F0Lg0KDQojIyMgVGjhu5FuZyBrw6ogbcO0IHThuqMgY2hvIGJp4bq/biBsaW1pdA0KDQpgYGB7cn0NCiMjIELhuqNuZyB04bqnbiBzdeG6pXQgY+G7p2EgYmnhur9uIGxpbWl0DQp0YWJsZShETERUJGxpbWl0KQ0KYGBgDQpgYGB7cn0NCiMjIELhuqNuZyB04bqnbiBzdeG6pXQgY+G7p2EgYmnhur9uIGxpbWl0IHRoZW8gdOG7iSBs4buHICUNCnRhYmxlKERMRFQkbGltaXQpL3N1bSh0YWJsZShETERUJGxpbWl0KSkNCmBgYA0KYGBge3J9DQojIyBCaeG7g3UgxJHhu5MgY+G7mXQgY+G7p2EgYmnhur9uIGxpbWl0DQpsaWJyYXJ5KCJnZ3Bsb3QyIikNCkRMRFQgfD4gZ2dwbG90KGFlcyh4ID0gbGltaXQsIHkgPSBhZnRlcl9zdGF0KGNvdW50KSkpICsgZ2VvbV9iYXIoZmlsbCA9ICdsaWdodHBpbmsnKSArIGdlb21fdGV4dChhZXMobGFiZWwgPSBzY2FsZXM6OnBlcmNlbnQoYWZ0ZXJfc3RhdChjb3VudC9zdW0oY291bnQpKSkpLCBzdGF0ID0gJ2NvdW50JywgY29sb3IgPSAncmVkJywgdmp1c3QgPSAtIC41KSArIHRoZW1lX2NsYXNzaWMoKSArIGxhYnMoeCA9ICdHaeG7m2kgaOG6oW4gduG7gSB0w6xuaCB0cuG6oW5nIHPhu6ljIGto4buPZScsIHkgPSAnVOG7tyB0cuG7jW5nJykNCmBgYA0KDQpU4burIGLhuqNuZyB04bqnbiBzdeG6pXQgdsOgIGJp4buDdSDEkeG7kyBj4buZdCBj4bunYSBiaeG6v24gbGltaXQsIHRhIHRodSDEkcaw4bujYyBr4bq/dCBxdeG6oyBzYXU6IHPhu5EgbmfGsOG7nWkga2jDtG5nIGPDsyBnaeG7m2kgaOG6oW4gduG7gSB0csOsbmggdHLhuqFuZyBz4bupYyBraOG7j2UgY2hp4bq/bSB04buJIGzhu4cgY2FvIG5o4bqldCBsw6AgODYlIHbDoCB04buJIGzhu4cgbmfGsOG7nWkgY8OzIGdp4bubaSBo4bqhbiB24buBIHTDrG5oIHRy4bqhbmcgc+G7qWMga2jhu49lIGNoaeG6v20gMTQlIHRyb25nIHThu5VuZyBz4buRIG5nxrDhu51pIHRoYW0gZ2lhIGto4bqjbyBzw6F0Lg0KDQojIyMgVGjhu5FuZyBrw6ogbcO0IHThuqMgY2hvIGJp4bq/biBzZWxmZW1wDQoNCmBgYHtyfQ0KIyMgQuG6o25nIHThuqduIHN14bqldCBj4bunYSBiaeG6v24gc2VsZmVtcA0KdGFibGUoRExEVCRzZWxmZW1wKQ0KYGBgDQpgYGB7cn0NCiMjIELhuqNuZyB04bqnbiBzdeG6pXQgY+G7p2EgYmnhur9uIHNlbGZlbXAgdGhlbyB04buJIGzhu4cgJQ0KdGFibGUoRExEVCRzZWxmZW1wKS9zdW0odGFibGUoRExEVCRzZWxmZW1wKSkNCmBgYA0KYGBge3J9DQojIyBCaeG7g3UgxJHhu5MgY+G7mXQgY+G7p2EgYmnhur9uIHNlbGZlbXANCmxpYnJhcnkoImdncGxvdDIiKQ0KRExEVCB8PiBnZ3Bsb3QoYWVzKHggPSBzZWxmZW1wLCB5ID0gYWZ0ZXJfc3RhdChjb3VudCkpKSArIGdlb21fYmFyKGZpbGwgPSAnbGlnaHRwaW5rJykgKyBnZW9tX3RleHQoYWVzKGxhYmVsID0gc2NhbGVzOjpwZXJjZW50KGFmdGVyX3N0YXQoY291bnQvc3VtKGNvdW50KSkpKSwgc3RhdCA9ICdjb3VudCcsIGNvbG9yID0gJ3JlZCcsIHZqdXN0ID0gLSAuNSkgKyB0aGVtZV9jbGFzc2ljKCkgKyBsYWJzKHggPSAnVMOsbmggdHLhuqFuZyB04buxIGNo4bunIHTDoGkgY2jDrW5oICcsIHkgPSAnVOG7tyB0cuG7jW5nJykNCmBgYA0KDQpU4burIGLhuqNuZyB04bqnbiBzdeG6pXQgdsOgIGJp4buDdSDEkeG7kyBj4buZdCBj4bunYSBiaeG6v24gc2VsZmVtcCwgdGEgdGh1IMSRxrDhu6NjIGvhur90IHF14bqjIHNhdTogc+G7kSBuZ8aw4budaSBraMO0bmcgdOG7sSBjaOG7pyB24buBIHTDoGkgY2jDrW5oIGNoaeG6v20gdOG7iSBs4buHIGNhbyBuaOG6pXQgbMOgIDg4JSB2w6AgdOG7iSBs4buHIG5nxrDhu51pIHThu7EgY2jhu6cgduG7gSB0w6BpIGNow61uaCBjaGnhur9tIDEyJSB0cm9uZyB04buVbmcgc+G7kSBuZ8aw4budaSB0aGFtIGdpYSBraOG6o28gc8OhdC4NCg0KIyMjIFRo4buRbmcga8OqIG3DtCB04bqjIGNobyBiaeG6v24gZ2VuZGVyDQoNCmBgYHtyfQ0KIyMgQuG6o25nIHThuqduIHN14bqldCBj4bunYSBiaeG6v24gZ2VuZGVyDQp0YWJsZShETERUJGdlbmRlcikNCmBgYA0KYGBge3J9DQojIyBC4bqjbmcgdOG6p24gc3XhuqV0IGPhu6dhIGJp4bq/biBnZW5kZXIgdGhlbyB04buJIGzhu4cgJQ0KdGFibGUoRExEVCRnZW5kZXIpL3N1bSh0YWJsZShETERUJGdlbmRlcikpDQpgYGANCmBgYHtyfQ0KIyMgQmnhu4N1IMSR4buTIGPhu5l0IGPhu6dhIGJp4bq/biBnZW5kZXINCmxpYnJhcnkoImdncGxvdDIiKQ0KRExEVCB8PiBnZ3Bsb3QoYWVzKHggPSBnZW5kZXIsIHkgPSBhZnRlcl9zdGF0KGNvdW50KSkpICsgZ2VvbV9iYXIoZmlsbCA9ICdsaWdodHBpbmsnKSArIGdlb21fdGV4dChhZXMobGFiZWwgPSBzY2FsZXM6OnBlcmNlbnQoYWZ0ZXJfc3RhdChjb3VudC9zdW0oY291bnQpKSkpLCBzdGF0ID0gJ2NvdW50JywgY29sb3IgPSAncmVkJywgdmp1c3QgPSAtIC41KSArIHRoZW1lX2NsYXNzaWMoKSArIGxhYnMoeCA9ICdHaeG7m2kgdMOtbmgnLCB5ID0gJ1Thu7cgdHLhu41uZycpDQpgYGANCg0KVOG7qyBi4bqjbmcgdOG6p24gc3XhuqV0IHbDoCBiaeG7g3UgxJHhu5MgY+G7mXQgY+G7p2EgYmnhur9uIGdlbmRlciwgdGEgdGh1IMSRxrDhu6NjIGvhur90IHF14bqjIHNhdTogZ2nhu5tpIHTDrW5oIG5hbSBjaGnhur9tIHThu4kgbOG7hyBjYW8gbmjhuqV0IGzDoCA1Mi42JSB2w6AgdOG7iSBs4buHIGdp4bubaSB0w61uaCBu4buvIGNoaeG6v20gNDcuNCUgdHJvbmcgdOG7lW5nIHPhu5EgbmfGsOG7nWkgdGhhbSBnaWEga2jhuqNvIHPDoXQuDQoNCiMjIyBUaOG7kW5nIGvDqiBtw7QgdOG6oyBjaG8gYmnhur9uIHJlZ2lvbg0KDQpgYGB7cn0NCiMjIELhuqNuZyB04bqnbiBzdeG6pXQgY+G7p2EgYmnhur9uIHJlZ2lvbg0KdGFibGUoRExEVCRyZWdpb24pDQpgYGANCmBgYHtyfQ0KIyMgQuG6o25nIHThuqduIHN14bqldCBj4bunYSBiaeG6v24gcmVnaW9uIHRoZW8gdOG7iSBs4buHICUNCnRhYmxlKERMRFQkcmVnaW9uKS9zdW0odGFibGUoRExEVCRyZWdpb24pKQ0KYGBgDQpgYGB7cn0NCiMjIEJp4buDdSDEkeG7kyBj4buZdCBj4bunYSBiaeG6v24gcmVnaW9uDQpsaWJyYXJ5KCJnZ3Bsb3QyIikNCkRMRFQgfD4gZ2dwbG90KGFlcyh4ID0gcmVnaW9uLCB5ID0gYWZ0ZXJfc3RhdChjb3VudCkpKSArIGdlb21fYmFyKGZpbGwgPSAnbGlnaHRwaW5rJykgKyBnZW9tX3RleHQoYWVzKGxhYmVsID0gc2NhbGVzOjpwZXJjZW50KGFmdGVyX3N0YXQoY291bnQvc3VtKGNvdW50KSkpKSwgc3RhdCA9ICdjb3VudCcsIGNvbG9yID0gJ3JlZCcsIHZqdXN0ID0gLSAuNSkgKyB0aGVtZV9jbGFzc2ljKCkgKyBsYWJzKHggPSAnVuG7iyB0csOtIMSR4buLYSBsw60nLCB5ID0gJ1Thu7cgdHLhu41uZycpDQpgYGANCg0KVOG7qyBi4bqjbmcgdOG6p24gc3XhuqV0IHbDoCBiaeG7g3UgxJHhu5MgY+G7mXQgY+G7p2EgYmnhur9uIHJlZ2lvbiwgdGEgdGh1IMSRxrDhu6NjIGvhur90IHF14bqjIHNhdTogc+G7kSBuZ8aw4budaSB0aGFtIGdpYSBraOG6o28gc8OhdCDhu58gdsO5bmcgc291dGggY2hp4bq/bSB04buJIGzhu4cgY2FvIG5o4bqldCBsw6AgMzQuOTM1JSB2w6AgdOG7iSBs4buHIG5nxrDhu51pIHRoYW0gZ2lhIGto4bqjbyBzw6F0IHRo4bqlcCBuaMOidCDhu58gdsO5bmcgbm9ydGhlYXN0IGzDoCAxOS4xMDklLg0KDQpUw7RpIHRp4bq/biBow6BuaCBtw6MgaMOzYSBiaeG6v24gcmVnaW9uIHRow6BuaCAyIHbDuW5nIGNodW5nIMSRxrDhu6NjIGfhu41pIGzDoCB2w7luZyAxIHbDoCB2w7luZyAyLCB2w7luZyAxIGfhu5NtIG5vcnRoZWFzdCAoxJDDtG5nIELhuq9jIEhvYSBL4buzKSB2w6AgbWlkd2VzdCAoVHJ1bmcgdMOieSBIb2EgS+G7syk7IHbDuW5nIDIgZ+G7k20gc291dGggKE5hbSBIb2EgS+G7sykgdsOgIHdlc3QgKFTDonkgSG9hIEvhu7MpLg0KDQpgYGB7cn0NCnJlZ2lvbiA8LSBmYWN0b3IoRExEVCRyZWdpb24sIGxldmVscyA9IGMoIm5vcnRoZWFzdCIsICJtaWR3ZXN0IiwgInNvdXRoIiwid2VzdCIpLCBsYWJlbHMgPSBjKCJ2dW5nMSIsICJ2dW5nMSIsICJ2dW5nMiIsICJ2dW5nMiIpKQ0KYGBgDQoNCiMjIyBUaOG7kW5nIGvDqiBtw7QgdOG6oyBjaG8gYmnhur9uIGV0aG5pY2l0eQ0KDQpgYGB7cn0NCiMjIELhuqNuZyB04bqnbiBzdeG6pXQgY+G7p2EgYmnhur9uIGV0aG5pY2l0eQ0KdGFibGUoRExEVCRldGhuaWNpdHkpDQpgYGANCmBgYHtyfQ0KIyMgQuG6o25nIHThuqduIHN14bqldCBj4bunYSBiaeG6v24gZXRobmljaXR5IHRoZW8gdOG7iSBs4buHICUNCnRhYmxlKERMRFQkZXRobmljaXR5KS9zdW0odGFibGUoRExEVCRldGhuaWNpdHkpKQ0KYGBgDQpgYGB7cn0NCiMjIEJp4buDdSDEkeG7kyBj4buZdCBj4bunYSBiaeG6v24gZXRobmljaXR5DQpsaWJyYXJ5KCJnZ3Bsb3QyIikNCkRMRFQgfD4gZ2dwbG90KGFlcyh4ID0gZXRobmljaXR5LCB5ID0gYWZ0ZXJfc3RhdChjb3VudCkpKSArIGdlb21fYmFyKGZpbGwgPSAnbGlnaHRwaW5rJykgKyBnZW9tX3RleHQoYWVzKGxhYmVsID0gc2NhbGVzOjpwZXJjZW50KGFmdGVyX3N0YXQoY291bnQvc3VtKGNvdW50KSkpKSwgc3RhdCA9ICdjb3VudCcsIGNvbG9yID0gJ3JlZCcsIHZqdXN0ID0gLSAuNSkgKyB0aGVtZV9jbGFzc2ljKCkgKyBsYWJzKHggPSAnTmd14buTbiBn4buRYyBj4bunYSBuZ8aw4budaSBraOG6o28gc8OhdCcsIHkgPSAnVOG7tyB0cuG7jW5nJykNCmBgYA0KDQpU4burIGLhuqNuZyB04bqnbiBzdeG6pXQgdsOgIGJp4buDdSDEkeG7kyBj4buZdCBj4bunYSBiaeG6v24gZXRobmljaXR5LCB0YSB0aHUgxJHGsOG7o2Mga+G6v3QgcXXhuqMgc2F1OiBz4buRIG5nxrDhu51pIGPDsyBuZ3Xhu5NuIGfhu5FjIOG7nyBjYXVjIChn4buRYyBjaMOidSDDonUpIGNoaeG6v20gdOG7iSBs4buHIGNhbyBuaOG6pXQgbMOgIDgzLjUlIHbDoCB04buJIGzhu4cgbmfGsOG7nWkgdGhhbSBnaWEga2jhuqNvIHPDoXQgdGjhuqVwIG5ow6J0IGPDsyBuZ3Xhu5NuIGfhu5FjIGtow6FjIChvdGhlcikgbMOgIDQuMSUuDQoNClTDtGkgdGnhur9uIGjDoG5oIG3DoyBow7NhIGJp4bq/biBldGhuaWNpdHkgdOG7qyAzIG5ndeG7k24gZ+G7kWMgY+G7p2EgbmfGsOG7nWkga2jhuqNvIHPDoXQgdGjDoG5oIDIgbmd14buTbiBn4buRYyBjaMOtbmgsIGzDoCBvdGhlciBn4buTbSBvdGhlciB2w6AgYWZhbSAoTeG7uSBn4buRYyBQaGkpIHbDoCBjYXVjIChDaMOidSDDonUpLg0KDQpgYGB7cn0NCmV0aG5pY2l0eSA8LSBmYWN0b3IoRExEVCRldGhuaWNpdHksIGxldmVscyA9IGMoIm90aGVyIiwgImFmYW0iLCAiY2F1YyIpLCBsYWJlbHMgPSBjKCJvdGhlciIsICJvdGhlciIsICJjYXVjIikpDQpgYGANCg0KIyMjIFRo4buRbmcga8OqIG3DtCB04bqjIGNobyBiaeG6v24gZWR1Y2F0aW9uDQoNCmBgYHtyfQ0KIyMgQuG6o25nIHThuqduIHN14bqldCBj4bunYSBiaeG6v24gZWR1Y2F0aW9uDQp0YWJsZShETERUJGVkdWNhdGlvbikNCmBgYA0KYGBge3J9DQojIyBC4bqjbmcgdOG6p24gc3XhuqV0IGPhu6dhIGJp4bq/biBlZHVjYXRpb250IHRoZW8gdOG7iSBs4buHICUNCnRhYmxlKERMRFQkZWR1Y2F0aW9uKS9zdW0odGFibGUoRExEVCRlZHVjYXRpb24pKQ0KYGBgDQpgYGB7cn0NCiMjIEJp4buDdSDEkeG7kyBow6xuaCB0csOybiBj4bunYSBiaeG6v24gZWR1Y2F0aW9uDQpsaWJyYXJ5KCJnZ3Bsb3QyIikNCkRMRFQgfD4gZ2dwbG90KGFlcyh4ID0gZWR1Y2F0aW9uLCB5ID0gYWZ0ZXJfc3RhdChjb3VudCkpKSArIGdlb21fYmFyKGZpbGwgPSAnbGlnaHRwaW5rJykgKyBnZW9tX3RleHQoYWVzKGxhYmVsID0gc2NhbGVzOjpwZXJjZW50KGFmdGVyX3N0YXQoY291bnQvc3VtKGNvdW50KSkpKSwgc3RhdCA9ICdjb3VudCcsIGNvbG9yID0gJ3JlZCcsIHZqdXN0ID0gLSAuNSkgKyB0aGVtZV9jbGFzc2ljKCkgKyBsYWJzKHggPSAnVHLDrG5oIMSR4buZIGjhu41jIHbhuqVuJywgeSA9ICdU4bu3IHRy4buNbmcnKQ0KYGBgDQoNClThu6sgYuG6o25nIHThuqduIHN14bqldCB2w6AgYmnhu4N1IMSR4buTIGPhu5l0IGPhu6dhIGJp4bq/biBlZHVjYXRpb24sIHRhIHRodSDEkcaw4bujYyBr4bq/dCBxdeG6oyBzYXU6IHPhu5EgbmfGsOG7nWkgY8OzIHRyw6xuaCDEkeG7mSBo4buNYyB24bqlbiDhu58gbeG7qWMgaGlnaHNjaG9vbCBjaGnhur9tIHThu4kgbOG7hyBjYW8gbmjhuqV0IGzDoCA1MC40JSB2w6AgdOG7iSBs4buHIG5nxrDhu51pIGPDsyB0csOsbmggxJHhu5kgaOG7jWMgduG6pW4gcGhkIOG7nyBt4bupYyB0aOG6pXAgbmjDonQgbMOgIDEuNSUuDQoNClTDtGkgdGnhur9uIGjDoG5oIG3DoyBow7NhIGJp4bq/biBlZHVjYXRpb24sIGfhu5NtIDcgdHLDrG5oIMSR4buZIGjhu41jIHbhuqVuIGtow6FjIG5oYXUgdGjDoG5oIDIgbeG7qWMgbMOgIHRyw6xuaCDEkeG7mSBjYW8gKGhpZ2hlZHVjYXRpb24pIGfhu5NtIGJhY2hlbG9yLCBtYXN0ZXIsIHBkaCwgb3RoZXIgdsOgIHRyw6xuaCDEkeG7mSB0aOG6pXAgKGxvd2VkdWNhdHRpb24pIGfhu5NtIG5vbmUsIGdlZCwgaGlnaHNjaG9vbC4NCg0KYGBge3J9DQplZHVjYXRlZCA8LSBmYWN0b3IoRExEVCRlZHVjYXRpb24sIGxldmVscyA9IGMoIm5vbmUiLCAiZ2VkIiwgImhpZ2hzY2hvb2wiLCAiYmFjaGVsb3IiLCAibWFzdGVyIiwgInBoZCIsICJvdGhlciIpLCBsYWJlbHMgPSBjKCJsb3dlZHVjYXR0aW9uIiwgImxvd2VkdWNhdHRpb24iLCAibG93ZWR1Y2F0dGlvbiIsICJoaWdoZWR1Y2F0aW9uIiwgImhpZ2hlZHVjYXRpb24iLCAiaGlnaGVkdWNhdGlvbiIsImhpZ2hlZHVjYXRpb24iKSkNCmBgYA0KDQojIyMgVGjhu5FuZyBrw6ogbcO0IHThuqMgY2hvIGJp4bq/biDEkeG7i25oIGzGsOG7o25nIGPDsm4gbOG6oWkNCg0KYGBge3J9DQp0b3RhbCA8LSBkYXRhLmZyYW1lKERMRFQkZmFtaWx5LERMRFQkYWdlKQ0Kc3VtbWFyeSh0b3RhbCkNCmBgYA0KYGBge3J9DQpzZChETERUJGZhbWlseSkNCmBgYA0KYGBge3J9DQpzZChETERUJGFnZSkNCmBgYA0KVOG7qyBr4bq/dCBxdeG6oyB0csOqbiwgdGEgeMOhYyDEkeG7i25oIMSRxrDhu6NjIG5oxrAgc2F1Og0KDQotIEJp4bq/biBmYW1pbHkgY8OzIHPhu5EgdGjDoG5oIHZpw6puIHRyb25nIGdpYSDEkcOsbmggdHJ1bmcgYsOsbmggbMOgIDM4Ljk0LCB0cnVuZyB24buLIGzDoCAzIHbDoCBz4buRIHRow6BuaCB2acOqbiB0cm9uZyBnaWEgxJHDrG5oIGRhbyDEkeG7mW5nIHThu6sgbmjhu48gbmjhuqV0IGzDoCAxIHRow6BuaCB2acOqbiDEkeG6v24gbOG7m24gbmjhuqV0IGzDoCAxNCB0aMOgbmggdmnDqm4sIHbhu5tpIMSR4buZIGzhu4djaCBjaHXhuqluIGzDoCAxLjU1OTYzMy4gDQoNCi0gQmnhur9uIGFnZSBjw7MgxJHhu5kgdHXhu5VpIHRydW5nIGLDrG5oIGzDoCAzLjA5NCwgdHJ1bmcgduG7iyBsw6AgMzkgdsOgIMSR4buZIHR14buVaSBkYW8gxJHhu5luZyB04burIG5o4buPIG5o4bqldCBsw6AgMTggdHXhu5VpIGNobyDEkeG6v24gbOG7m24gbmjhuqV0IGzDoCA2MiB0deG7lWksIHbhu5tpIMSR4buZIGzhu4djaCBjaHXhuqluIGzDoCAxMS4xMTA4Mi4gDQoNCmBgYHtyfQ0KaGlzdChETERUJGZhbWlseSwgY29sPSdsaWdodHBpbmsnKQ0KYGBgDQoNCkThu7FhIHbDoG8gYmnhu4N1IMSR4buTIGhpc3RvZ3JhbSBj4bunYSBiaeG6v24gZmFtaWx5IGNobyB0aOG6pXkgc+G7kSB0aMOgbmggdmnDqm4gxJHGsOG7o2MgcGjDom4gYuG7lSBuaGnhu4F1IG5o4bqldCBsw6AgdOG7qyAxIGNobyDEkeG6v24gMiBuZ8aw4budaSB2w6AgdOG7qyA2IG5nxrDhu51pIHRy4bufIGzDqm4gdGjDrCBk4bqnbiB0cuG7nyBuw6puIHRo4bqlcCBoxqFuLg0KDQpUw7RpIHRp4bq/biBow6BuaCBtw6MgaMOzYSBiaeG6v24gZmFtaWx5IHRow6BuaCAyIGdpw6EgdHLhu4sgY2jDrW5oIGzDoCDDrXQgbmfGsOG7nWkgdsOgIG5oaeG7gXUgbmfGsOG7nWkgdGjhu4MgaGnhu4duIHPhu5EgbMaw4bujbmcgdGjDoG5oIHZpw6puIGPhu6dhIDEgZ2lhIMSRw6xuaCBsw6Agw610IGhheSBsw6Agbmhp4buBdS4gVMO0aSBjaG8gcuG6sW5nIHPhu5EgdGjDoG5oIHZpw6puIHRyb25nIGdpw6EgxJHDrG5oIHThu6sgMSBjaG8gxJHhur9uIDQgbMOgIMOtdCBuZ8aw4budaSB2w6AgdOG7qyA0IHRy4bufIGzDqm4gbMOgIG5oaeG7gXUgbmfGsOG7nWkuDQoNCmBgYHtyfQ0KZmFtaWx5MSA8LWN1dChETERUJGZhbWlseSwgYnJlYWtzPWMoMCw0LDE0KSwgbGFiZWxzPWMoJ2l0bmd1b2knICwgJ25oaWV1bmd1b2knKSkNCnRhYmxlKGZhbWlseTEpDQpgYGANCg0KROG7sWEgdsOgbyBiaeG7g3UgxJHhu5MNCg0KYGBge3J9DQpoaXN0KERMRFQkYWdlLCBjb2w9J2xpZ2h0cGluaycpDQpgYGANCg0KROG7sWEgdsOgbyBiaeG7g3UgxJHhu5MgaGlzdG9ncmFtIGPhu6dhIGJp4bq/biBhZ2UgY2hvIHRo4bqleSDEkeG7mSB0deG7lWkgdOG7qyAzNSDEkeG6v24gNDAgY2hp4bq/bSB04buJIGzhu4cgbmhp4buBdSBuaOG6pXQgdsOgIMSR4buZIHR14buVaSB04burIDYwIGPDsyB04buJIGzhu4cgdGjhuqVwIG5o4bqldC4NCg0KVMO0aSB0aeG6v24gaMOgbmggbcOjIGjDs2EgYmnhur9uIGFnZSB0aMOgbmggMiBnacOhIHRy4buLIGNow61uaCBsw6AgZMaw4bubaSA0MCB0deG7lWkgdsOgIGzhu5tuIGjGoW4gNDAgdHXhu5VpLg0KDQpgYGB7cn0NCmFnZTEgPC1jdXQoRExEVCRhZ2UsIGJyZWFrcz1jKDEsNDAsNzApLCBsYWJlbHM9YygnZHVvaTQwJyAsICd0cmVuNDAnKSkNCmBgYA0KVmnhu4djIG3DoyBow7NhIGPDoWMgYmnhur9uIMSR4buZYyBs4bqtcCB0aMOgbmggMiBnacOhIHRy4buLIGdpw7pwIHTDtGkgY8OzIHRo4buDIGThu4UgZMOgbmcgaMahbiB0cm9uZyB2aeG7h2MgxJHDoW5oIGdpw6EgbeG7qWMgxJHhu5kgdMOhYyDEkeG7mW5nIGPhu6dhIGPDoWMgYmnhur9uIMSR4buZYyBs4bqtcCDEkeG6v24gYmnhur9uIHBo4bulIMSR4buLbmggdMOtbmggcGjhu6UgdGh14buZYyAoaGVhbHRoKS4gVMO0aSB0aeG6v24gaMOgbmggZ29tIGPDoWMgYmnhur9uIHbDoG8gZGF0YSBt4bubaSDEkeG6t3QgdMOqbiBsw6Agei4NCg0KYGBge3J9DQp6IDwtIGRhdGEuZnJhbWUoRExEVCRoZWFsdGgsIERMRFQkbGltaXQsIERMRFQkZ2VuZGVyLCBETERUJGluc3VyYW5jZSwgRExEVCRtYXJyaWVkLCBETERUJHNlbGZlbXAsIERMRFQkcmVnaW9uLCBETERUJGV0aG5pY2l0eSwgRExEVCRlZHVjYXRpb24sIERMRFQkYWdlLCBhZ2UxLCBmYW1pbHkxLCBldGhuaWNpdHksIGVkdWNhdGVkLCByZWdpb24pDQpgYGANCg0KIyMgVGjhu5FuZyBrw6ogbcO0IHThuqMgMiBiaeG6v24NCg0KIyMjIFRo4buRbmcga8OqIG3DtCB04bqjIGJp4bq/biBoZWFsdGggduG7m2kgYWdlDQoNCmBgYHtyfQ0KQWdlIDwtIHRhYmxlKERMRFQkaGVhbHRoLCB6JGFnZTEgKQ0KQWdlDQpgYGANCmBgYHtyfQ0KZ2dwbG90KHosIGFlcyhETERUJGhlYWx0aCwgZmlsbCA9IHokYWdlMSkpICsgZ2VvbV9iYXIocG9zaXRpb24gPSAnZG9kZ2UnKQ0KYGBgDQoNCkThu7FhIHbDoG8gYmnhu4N1IMSR4buTIGPhu5l0IHRyw6puIGPhu6dhIGJp4bq/biBoZWFsdGggdsOgIGFnZSwgdGEgdGh1IMSRxrDhu6NjIGvhur90IHF14bqjIHNhdToNCg0KLSBU4buJIGzhu4cgbmfGsOG7nWkgY8OzIHTDrG5oIHRy4bqhbmcgc+G7qWMga2jhu49lIGtow7RuZyDEkcaw4bujYyB04buRdCBjaGnhur9tIHThu4kgbOG7hyBjYW8g4bufIG3hu6ljIHRyw6puIDQwIHR14buVaS4NCg0KLSBU4buJIGzhu4cgbmfGsOG7nWkgY8OzIHTDrG5oIHRy4bqhbmcgc+G7qWMga2jhu49lIHThu5F0IGNoaeG6v20gdOG7iSBs4buHIGNhbyDhu58gbeG7qWMgZMaw4bubaSA0MCB0deG7lWkuDQoNCj0+IFbDoCDEkcOieSBsw6Agc+G7sSB0aOG6rXQgaGnhu4NuIG5oacOqbiB2w6wgeeG6v3UgdOG7kSDEkeG7mSB0deG7lWkgY8OzIOG6o25oIGjGsOG7n25nIGzhu5tuIMSR4bq/biBz4bupYyBraOG7j2UsIHRo4buDIGhp4buHbiB0aMO0bmcgcXVhIHPhu7EgbMOjbyBow7NhIGPhu6dhIGNvbiBuZ8aw4budaS4NCg0KIyMjIFRo4buRbmcga8OqIG3DtCB04bqjIGJp4bq/biBoZWFsdGggduG7m2kgZmFtaWx5DQoNCmBgYHtyfQ0KRmFtaWx5MiA8LSB0YWJsZShETERUJGhlYWx0aCwgeiRmYW1pbHkxICkNCkZhbWlseTINCmBgYA0KYGBge3J9DQpnZ3Bsb3QoeiwgYWVzKERMRFQkaGVhbHRoLCBmaWxsID0geiRmYW1pbHkxKSkgKyBnZW9tX2Jhcihwb3NpdGlvbiA9ICdkb2RnZScpDQpgYGANCg0KROG7sWEgdsOgbyBiaeG7g3UgxJHhu5MgY+G7mXQgdHLDqm4gY+G7p2EgYmnhur9uIGhlYWx0aCB2w6AgZmFtaWx5LCB0YSB0aHUgxJHGsOG7o2Mga+G6v3QgcXXhuqMgc2F1Og0KDQotIFThu4kgbOG7hyBuZ8aw4budaSBjw7MgdMOsbmggdHLhuqFuZyBz4bupYyBraOG7j2UgdOG7kXQgdsOgIGtow7RuZyDEkcaw4bujYyB04buRdCDEkeG7gXUgY2hp4bq/bSB04buJIGzhu4cgY2FvIOG7nyBuaOG7r25nIGdpYSDEkcOsbmggw610IG5nxrDhu51pIHbDoCBj4bulIHRo4buDIOG7nyDEkcOieSBsw6AgZ2lhIMSRw6xuaCB04burIDEtNCBuZ8aw4budaS4NCg0KIyMjIFRo4buRbmcga8OqIG3DtCB04bqjIGJp4bq/biBoZWFsdGggduG7m2kgbGltaXQNCg0KYGBge3J9DQpsaW1pdDEgPC0gdGFibGUoRExEVCRoZWFsdGgsIERMRFQkbGltaXQgKQ0KbGltaXQxDQpgYGANCmBgYHtyfQ0KZ2dwbG90KHosIGFlcyhETERUJGhlYWx0aCwgZmlsbCA9IERMRFQkbGltaXQpKSArIGdlb21fYmFyKHBvc2l0aW9uID0gJ2RvZGdlJykNCmBgYA0KDQpE4buxYSB2w6BvIGJp4buDdSDEkeG7kyBj4buZdCB0csOqbiBj4bunYSBiaeG6v24gaGVhbHRoIHbDoCBsaW1pdCwgdGEgdGh1IMSRxrDhu6NjIGvhur90IHF14bqjIHNhdToNCg0KLSBU4buJIGzhu4cgbmfGsOG7nWkgY8OzIHTDrG5oIHRy4bqhbmcgc+G7qWMga2jhu49lIHThu5F0IHbDoCBraMO0bmcgxJHGsOG7o2MgdOG7kXQgxJHhu4F1IGNoaeG6v20gdOG7iSBs4buHIGNhbyDhu58gbmjhu69uZyBuZ8aw4budaSBraMO0bmcgY8OzIGdp4bubaSBo4bqhbiB24buBIHPhu6ljIGto4buPZS4NCg0KIyMjIFRo4buRbmcga8OqIG3DtCB04bqjIGJp4bq/biBoZWFsdGggduG7m2kgZ2VuZGVyDQoNCmBgYHtyfQ0KZ2VuZGVyMSA8LSB0YWJsZShETERUJGhlYWx0aCwgRExEVCRnZW5kZXIgKQ0KZ2VuZGVyMQ0KYGBgDQpgYGB7cn0NCmdncGxvdCh6LCBhZXMoRExEVCRoZWFsdGgsIGZpbGwgPSBETERUJGdlbmRlcikpICsgZ2VvbV9iYXIocG9zaXRpb24gPSAnZG9kZ2UnKQ0KYGBgDQoNCkThu7FhIHbDoG8gYmnhu4N1IMSR4buTIGPhu5l0IHRyw6puIGPhu6dhIGJp4bq/biBoZWFsdGggdsOgIGdlbmRlciwgdGEgdGh1IMSRxrDhu6NjIGvhur90IHF14bqjIHNhdToNCg0KLSBU4buJIGzhu4cgbmfGsOG7nWkgY8OzIHTDrG5oIHRy4bqhbmcgc+G7qWMga2jhu49lIGtow7RuZyDEkcaw4bujYyB04buRdCBjaGnhur9tIHThu4kgbOG7hyBjYW8g4bufIGdp4bubaSB0w61uaCBu4buvLCB0dXkgbmhpw6puIHThu4kgbOG7hyBjaMOqbmggbOG7h2NoIGtow7RuZyBxdcOhIGNhby4NCg0KLSBU4buJIGzhu4cgbmfGsOG7nWkgY8OzIHTDrG5oIHRy4bqhbmcgc+G7qWMga2jhu49lIHThu5F0IGNoaeG6v20gdOG7iSBs4buHIGNhbyDhu58gZ2nhu5tpIHTDrW5oIG5hbS4NCg0KIyMjIFRo4buRbmcga8OqIG3DtCB04bqjIGJp4bq/biBoZWFsdGggduG7m2kgaW5zdXJhbmNlDQoNCmBgYHtyfQ0KaW5zdXJhbmNlMSA8LSB0YWJsZShETERUJGhlYWx0aCwgRExEVCRpbnN1cmFuY2UgKQ0KaW5zdXJhbmNlMQ0KYGBgDQpgYGB7cn0NCmdncGxvdCh6LCBhZXMoRExEVCRoZWFsdGgsIGZpbGwgPSBETERUJGluc3VyYW5jZSkpICsgZ2VvbV9iYXIocG9zaXRpb24gPSAnZG9kZ2UnKQ0KYGBgDQoNCkThu7FhIHbDoG8gYmnhu4N1IMSR4buTIGPhu5l0IHRyw6puIGPhu6dhIGJp4bq/biBoZWFsdGggdsOgIGluc3VyYW5jZSwgdGEgdGh1IMSRxrDhu6NjIGvhur90IHF14bqjIHNhdToNCg0KLSBU4buJIGzhu4cgbmfGsOG7nWkgY8OzIHTDrG5oIHRy4bqhbmcgc+G7qWMga2jhu49lIHThu5F0IHbDoCBraMO0bmcgdOG7kXQgxJHhu4F1IGPDsyB04buJIGzhu4cgc+G7nyBo4buvdSBi4bqjbyBoaeG7g20gY2FvIGjGoW4gbmjhu69uZyBuZ8aw4budaSBraMO0bmcgc+G7nyBo4buvdSBi4bqjbyBoaeG7g20uDQoNCiMjIyBUaOG7kW5nIGvDqiBtw7QgdOG6oyBiaeG6v24gaGVhbHRoIHbhu5tpIG1hcnJpZWQNCg0KYGBge3J9DQptYXJyaWVkMSA8LSB0YWJsZShETERUJGhlYWx0aCwgRExEVCRtYXJyaWVkICkNCm1hcnJpZWQxDQpgYGANCmBgYHtyfQ0KZ2dwbG90KHosIGFlcyhETERUJGhlYWx0aCAsIGZpbGwgPSBETERUJG1hcnJpZWQpKSArIGdlb21fYmFyKHBvc2l0aW9uID0gJ2RvZGdlJykNCmBgYA0KDQpE4buxYSB2w6BvIGJp4buDdSDEkeG7kyBj4buZdCB0csOqbiBj4bunYSBiaeG6v24gaGVhbHRoIHbDoCBtYXJyaWVkLCB0YSB0aHUgxJHGsOG7o2Mga+G6v3QgcXXhuqMgc2F1Og0KDQotIFThu4kgbOG7hyBuZ8aw4budaSBjw7MgdMOsbmggdHLhuqFuZyBz4bupYyBraOG7j2UgdOG7kXQgdsOgIGtow7RuZyB04buRdCDEkeG7gXUgY8OzIHThu4kgbOG7hyDEkcOjIGzhuq1wIGdpYSDEkcOsbmggY2FvIGjGoW4gbmjhu69uZyBuZ8aw4budaSBjaMawYSBs4bqtcCBnaWEgxJHDrG5oLg0KDQojIyMgVGjhu5FuZyBrw6ogbcO0IHThuqMgYmnhur9uIGhlYWx0aCB24bubaSBzZWxmZW1wDQoNCmBgYHtyfQ0Kc2VsZmVtcDEgPC0gdGFibGUoRExEVCRoZWFsdGgsIERMRFQkc2VsZmVtcCApDQpzZWxmZW1wMQ0KYGBgDQpgYGB7cn0NCmdncGxvdCh6LCBhZXMoRExEVCRoZWFsdGgsIGZpbGwgPSBETERUJHNlbGZlbXApKSArIGdlb21fYmFyKHBvc2l0aW9uID0gJ2RvZGdlJykNCmBgYA0KDQpE4buxYSB2w6BvIGJp4buDdSDEkeG7kyBj4buZdCB0csOqbiBj4bunYSBiaeG6v24gaGVhbHRoIHbDoCBzZWxmZW1wLCB0YSB0aHUgxJHGsOG7o2Mga+G6v3QgcXXhuqMgc2F1Og0KDQotIFThu4kgbOG7hyBuZ8aw4budaSBjw7MgdMOsbmggdHLhuqFuZyBz4bupYyBraOG7j2UgdOG7kXQgdsOgIGtow7RuZyB04buRdCDEkeG7gXUgY8OzIHThu4kgbOG7hyBjaMawYSB04buxIGNo4bunIHbhu4EgdMOgaSBjaMOtbmggY2FvIGjGoW4gbmjhu69uZyBuZ8aw4budaSB0aGFtIGdpYSBraOG6o28gc8OhdCDEkcOjIHThu7EgY2jhu6cgduG7gSB0w6BpIGNow61uaC4NCg0KIyMjIFRo4buRbmcga8OqIG3DtCB04bqjIGJp4bq/biBoZWFsdGggduG7m2kgZXRobmljaXR5DQoNCmBgYHtyfQ0KZXRobmljaXR5MSA8LSB0YWJsZShETERUJGhlYWx0aCwgZXRobmljaXR5ICkNCmV0aG5pY2l0eTENCmBgYA0KYGBge3J9DQpnZ3Bsb3QoeiwgYWVzKERMRFQkaGVhbHRoLCBmaWxsID0gZXRobmljaXR5KSkgKyBnZW9tX2Jhcihwb3NpdGlvbiA9ICdkb2RnZScpDQpgYGANCg0KROG7sWEgdsOgbyBiaeG7g3UgxJHhu5MgY+G7mXQgdHLDqm4gY+G7p2EgYmnhur9uIGhlYWx0aCB2w6AgZXRobmljaXR5LCB0YSB0aHUgxJHGsOG7o2Mga+G6v3QgcXXhuqMgc2F1Og0KDQotIFThu4kgbOG7hyBuZ8aw4budaSBjw7MgdMOsbmggdHLhuqFuZyBz4bupYyBraOG7j2UgdOG7kXQgdsOgIGtow7RuZyB04buRdCDEkeG7gXUgY8OzIHThu4kgbOG7hyBuZ3Xhu5NuIGfhu5FjIOG7nyBjYXVjIChjaMOidSDDonUpIG5oaeG7gXUgaMahbiBuZ3Xhu5NuIGfhu5FjIOG7nyBvdGhlciAoa2jDoWMpLg0KDQojIyMgVGjhu5FuZyBrw6ogbcO0IHThuqMgYmnhur9uIGhlYWx0aCB24bubaSBlZHVjYXRpb24NCg0KYGBge3J9DQplZHVjYXRpb24xIDwtIHRhYmxlKERMRFQkaGVhbHRoLCB6JGVkdWNhdGVkKQ0KZWR1Y2F0aW9uMQ0KYGBgDQpgYGB7cn0NCmdncGxvdCh6LCBhZXMoRExEVCRoZWFsdGgsIGZpbGwgPSB6JGVkdWNhdGVkKSkgKyBnZW9tX2Jhcihwb3NpdGlvbiA9ICdkb2RnZScpDQpgYGANCg0KROG7sWEgdsOgbyBiaeG7g3UgxJHhu5MgY+G7mXQgdHLDqm4gY+G7p2EgYmnhur9uIGhlYWx0aCB2w6AgZWR1Y2F0aW9uLCB0YSB0aHUgxJHGsOG7o2Mga+G6v3QgcXXhuqMgc2F1Og0KDQotIFThu4kgbOG7hyBuZ8aw4budaSBjw7MgdMOsbmggdHLhuqFuZyBz4bupYyBraOG7j2UgdOG7kXQgdsOgIGtow7RuZyB04buRdCDEkeG7gXUgY8OzIHThu4kgbOG7hyBsb3dlZHVjYXRpb24gKGjhu41jIHbhuqVuIHRo4bqlcCkgY2FvIGjGoW4gdOG7iSBs4buHIGhpZ2hlZHVjYXRpb24gKGjhu41jIHbhuqVuIGNhbykuDQoNCiMjIyBUaOG7kW5nIGvDqiBtw7QgdOG6oyBiaeG6v24gaGVhbHRoIHbhu5tpIHJlZ2lvbg0KDQpgYGB7cn0NCnJlZ2lvbjEgPC0gdGFibGUoRExEVCRoZWFsdGgsIHokcmVnaW9uICkNCnJlZ2lvbjENCmBgYA0KYGBge3J9DQpnZ3Bsb3QoeiwgYWVzKERMRFQkaGVhbHRoLCBmaWxsID0geiRyZWdpb24gKSkgKyBnZW9tX2Jhcihwb3NpdGlvbiA9ICdkb2RnZScpDQpgYGANCkThu7FhIHbDoG8gYmnhu4N1IMSR4buTIGPhu5l0IHRyw6puIGPhu6dhIGJp4bq/biBoZWFsdGggdsOgIHJlZ2lvbiwgdGEgdGh1IMSRxrDhu6NjIGvhur90IHF14bqjIHNhdToNCg0KLSBU4buJIGzhu4cgbmfGsOG7nWkgY8OzIHTDrG5oIHRy4bqhbmcgc+G7qWMga2jhu49lIHThu5F0IHbDoCBraMO0bmcgdOG7kXQgxJHhu4F1IGPDsyB04buJIGzhu4cgduG7iyB0csOtIMSR4buLYSBsw60g4bufIHbDuW5nIDIgY2FvIGjGoW4gduG7iyB0csOtIMSR4buLYSBsw60g4bufIHbDuW5nIDEuDQoNCiMjIFLhu6dpIHJvIHTGsMahbmcgxJHhu5FpDQoNCiMjIyBS4bunaSBybyB0xrDGoW5nIMSR4buRaSBj4bunYSBiaeG6v24gaGVhbHRoIHbhu5tpIGFnZQ0KDQpgYGB7cn0NCmxpYnJhcnkoZXBpdG9vbHMpDQplcGl0YWIoQWdlLG1ldGhvZD0ncmlza3JhdGlvJywgcmV2PSdjJykNCiMjS2hpIHRow6ptIHRoYW0gc+G7kSByZXYgPSDigJxj4oCdIHRow6wgc+G6vSB0aOG7sWMgaGnhu4duIHZp4buHYyDEkeG7lWkgY2jhu5cgMiBj4buZdCB0cm9uZyBi4bqjbmcgbmfhuqt1IG5oacOqbg0KYGBgDQpC4bqjbmcgbsOgeSBjaG8gdMO0aSBiaeG6v3Qga+G6v3QgcXXhuqMgY+G7p2EgcGjDqXAgdMOtbmggcuG7p2kgcm8gdMawxqFuZyDEkeG7kWkgZ2nhu69hIHbhu5tpIMSR4buZIHR14buVaSBoYWkgZ2nDoSB0cuG7iyBsw6AgdHJlbjQwIHbDoCBkdW9pNDAuIFLhu6dpIHJvIHTGsMahbmcgxJHhu5FpIGLhurFuZyAxLjIzNjIxNSwgY8OzIG5naMSpYSBsw6AgbmfGsOG7nWkgY8OzIHPhu6ljIGto4buPZSB04buRdCDhu58gdHLDqm4gNDAgdHXhu5VpIGPDsyB4w6FjIHN14bqldCBjYW8gaMahbiAyMy42JSBuZ8aw4budaSBjw7Mgc+G7qWMga2jhu49lIGtow7RuZyB04buRdC4NCg0KIyMjIFLhu6dpIHJvIHTGsMahbmcgxJHhu5FpIGPhu6dhIGJp4bq/biBoZWFsdGggduG7m2kgZmFtaWx5DQpgYGB7cn0NCmVwaXRhYihGYW1pbHkyLG1ldGhvZD0ncmlza3JhdGlvJyxyZXY9J2MnKQ0KYGBgDQpC4bqjbmcgbsOgeSBjaG8gdMO0aSBiaeG6v3Qga+G6v3QgcXXhuqMgY+G7p2EgcGjDqXAgdMOtbmggcuG7p2kgcm8gdMawxqFuZyDEkeG7kWkgZ2nhu69hIGhhaSBnacOhIHRy4buLIGzDoCBnaWEgxJHDrG5oIGPDsyBuaGnhu4F1IHRow6BuaCB2acOqbiB2w6Agw610IHRow6BuaCB2acOqbi4gUuG7p2kgcm8gdMawxqFuZyDEkeG7kWkgYuG6sW5nIDEuMDYxNzgxLCBjw7MgbmdoxKlhIGzDoCBuZ8aw4budaSBjw7Mgc+G7qWMga2jhu49lIHThu5F0IOG7nyBnaWEgxJHDrG5oIMOtdCBuZ8aw4budaSBjw7MgeMOhYyBzdeG6pXQgY2FvIGjGoW4gNi4xNyUgbmfGsOG7nWkgY8OzIHPhu6ljIGto4buPZSBraMO0bmcgdOG7kXQuDQoNCiMjIyBS4bunaSBybyB0xrDGoW5nIMSR4buRaSBj4bunYSBiaeG6v24gaGVhbHRoIHbhu5tpIGxpbWl0DQpgYGB7cn0NCmVwaXRhYihsaW1pdDEsbWV0aG9kPSdyaXNrcmF0aW8nLHJldj0nYycpDQpgYGANCkLhuqNuZyBuw6B5IGNobyB0w7RpIGJp4bq/dCBr4bq/dCBxdeG6oyBj4bunYSBwaMOpcCB0w61uaCBy4bunaSBybyB0xrDGoW5nIMSR4buRaSBnaeG7r2EgaGFpIGdpw6EgdHLhu4sgbMOgIG5nxrDhu51pIGPDsyBnaeG7m2kgaOG6oW4gduG7gSBz4bupYyBraOG7j2UgdsOgIG5nxrDhu51pIGtow7RuZyBjw7MgZ2nhu5tpIGjhuqFuIHbhu4Egc+G7qWMga2jhu49lLiBS4bunaSBybyB0xrDGoW5nIMSR4buRaSBi4bqxbmcgMS4zNzYwOCwgY8OzIG5naMSpYSBsw6AgbmfGsOG7nWkgY8OzIHPhu6ljIGto4buPZSB04buRdCB2w6AgY8OzIGLhu4sgZ2nhu5tpIGjhuqFuIHbhu4Egc+G7qWMga2jhu49lIGPDsyB4w6FjIHN14bqldCBjYW8gaMahbiAzNy42JSBuZ8aw4budaSBjw7Mgc+G7qWMga2jhu49lIGtow7RuZyB04buRdC4NCg0KIyMjIFLhu6dpIHJvIHTGsMahbmcgxJHhu5FpIGPhu6dhIGJp4bq/biBoZWFsdGggduG7m2kgZ2VuZGVyDQpgYGB7cn0NCmVwaXRhYihnZW5kZXIxLG1ldGhvZD0ncmlza3JhdGlvJyxyZXY9J2MnKQ0KYGBgDQpC4bqjbmcgbsOgeSBjaG8gdMO0aSBiaeG6v3Qga+G6v3QgcXXhuqMgY+G7p2EgcGjDqXAgdMOtbmggcuG7p2kgcm8gdMawxqFuZyDEkeG7kWkgZ2nhu69hIGhhaSBnacOhIHRy4buLIGzDoCBnaeG7m2kgdMOtbmggbmFtIHbDoCBnaeG7m2kgdMOtbmggbuG7ry4gUuG7p2kgcm8gdMawxqFuZyDEkeG7kWkgYuG6sW5nIDAuOTE2MzgwNiwgY8OzIG5naMSpYSBsw6AgbmfGsOG7nWkgY8OzIHPhu6ljIGto4buPZSB04buRdCBsw6AgbmFtIGPDsyB4w6FjIHN14bqldCBi4bqxbmcgOTEuNiUgbmfGsOG7nWkgY8OzIHPhu6ljIGto4buPZSBraMO0bmcgdOG7kXQuDQoNCiMjIyBS4bunaSBybyB0xrDGoW5nIMSR4buRaSBj4bunYSBiaeG6v24gaGVhbHRoIHbhu5tpIG1hcnJpZWQNCmBgYHtyfQ0KZXBpdGFiKG1hcnJpZWQxLG1ldGhvZD0ncmlza3JhdGlvJyxyZXY9J2MnKQ0KYGBgDQpC4bqjbmcgbsOgeSBjaG8gdMO0aSBiaeG6v3Qga+G6v3QgcXXhuqMgY+G7p2EgcGjDqXAgdMOtbmggcuG7p2kgcm8gdMawxqFuZyDEkeG7kWkgZ2nhu69hIGhhaSBnacOhIHRy4buLIGzDoCBuZ8aw4budaSDEkcOjIGzhuq1wIGdpYSDEkcOsbmggdsOgIGNoxrBhIGzhuq1wIGdpYSDEkcOsbmguIFLhu6dpIHJvIHTGsMahbmcgxJHhu5FpIGLhurFuZyAxLjA0NTQ2NiwgY8OzIG5naMSpYSBsw6AgbmfGsOG7nWkgY8OzIHPhu6ljIGto4buPZSB04buRdCDEkcOjIGzhuq1wIGdpYSDEkcOsbmggY8OzIHjDoWMgc3XhuqV0IGNhbyBoxqFuIDQuNTQlICBuZ8aw4budaSBjw7Mgc+G7qWMga2jhu49lIGtow7RuZyB04buRdC4NCg0KIyMjIFLhu6dpIHJvIHTGsMahbmcgxJHhu5FpIGPhu6dhIGJp4bq/biBoZWFsdGggduG7m2kgc2VsZmVtcA0KYGBge3J9DQplcGl0YWIoc2VsZmVtcDEsbWV0aG9kPSdyaXNrcmF0aW8nLHJldj0nYycpDQpgYGANCkLhuqNuZyBuw6B5IGNobyB0w7RpIGJp4bq/dCBr4bq/dCBxdeG6oyBj4bunYSBwaMOpcCB0w61uaCBy4bunaSBybyB0xrDGoW5nIMSR4buRaSBnaeG7r2EgaGFpIGdpw6EgdHLhu4sgbMOgIMSRw6MgdOG7sSBjaOG7pyB24buBIHTDoGkgY2jDrW5oIGhheSBsw6AgY2jGsGEgdOG7sSBjaOG7pyB24buBIHTDoGkgY2jDrW5oLiBS4bunaSBybyB0xrDGoW5nIMSR4buRaSBi4bqxbmcgMC45ODE3Mjg1LCBjw7MgbmdoxKlhIGzDoCBuZ8aw4budaSBjw7Mgc+G7qWMga2jhu49lIHThu5F0LCB04buxIGNo4bunIMSRxrDhu6NjIHTDoGkgY2jDrW5oIGPDsyB4w6FjIHN14bqldCBi4bqxbmcgOTguMTclIG5nxrDhu51pIGPDsyBz4bupYyBraOG7j2Uga2jDtG5nIHThu5F0Lg0KDQojIyMgUuG7p2kgcm8gdMawxqFuZyDEkeG7kWkgY+G7p2EgYmnhur9uIGhlYWx0aCB24bubaSBldGhuaWNpdHkNCmBgYHtyfQ0KZXBpdGFiKGV0aG5pY2l0eTEsbWV0aG9kPSdyaXNrcmF0aW8nLHJldj0nYycpDQpgYGANCkLhuqNuZyBuw6B5IGNobyB0w7RpIGJp4bq/dCBr4bq/dCBxdeG6oyBj4bunYSBwaMOpcCB0w61uaCBy4bunaSBybyB0xrDGoW5nIMSR4buRaSBnaeG7r2EgaGFpIGdpw6EgdHLhu4sgduG7gSBuZ3Xhu5NuIGfhu5FjIHh14bqldCB44bupIGzDoCBjYXVjIHbDoCBvdGhlci4gUuG7p2kgcm8gdMawxqFuZyDEkeG7kWkgYuG6sW5nIDAuNzU0Njc0NiwgY8OzIG5naMSpYSBsw6AgbmfGsOG7nWkgY8OzIHPhu6ljIGto4buPZSB04buRdCBuZ3Xhu5NuIGfhu5FjIOG7nyBjaMOidSDDonUgY8OzIHjDoWMgc3XhuqV0IGLhurFuZyA3NS40NiUgbmfGsOG7nWkgY8OzIHPhu6ljIGto4buPZSBraMO0bmcgdOG7kXQuDQoNCiMjIyBS4bunaSBybyB0xrDGoW5nIMSR4buRaSBj4bunYSBiaeG6v24gaGVhbHRoIHbhu5tpIGVkdWNhdGlvbg0KYGBge3J9DQplcGl0YWIoZWR1Y2F0aW9uMSxtZXRob2Q9J3Jpc2tyYXRpbycscmV2PSdjJykNCmBgYA0KQuG6o25nIG7DoHkgY2hvIHTDtGkgYmnhur90IGvhur90IHF14bqjIGPhu6dhIHBow6lwIHTDrW5oIHLhu6dpIHJvIHTGsMahbmcgxJHhu5FpIGdp4buvYSBoYWkgZ2nDoSB0cuG7iyBsw6AgbG93ZWR1Y2F0aW9uIHbDoCBoaWdoZWR1Y2F0aW9uLiBS4bunaSBybyB0xrDGoW5nIMSR4buRaSBi4bqxbmcgMC44MjQ1MTQsIGPDsyBuZ2jEqWEgbMOgIG5nxrDhu51pIGPDsyBz4bupYyBraOG7j2UgdOG7kXQg4bufIHRyw6xuaCDEkeG7mSBo4buNYyB24bqlbiBjYW8gY8OzIHjDoWMgc3XhuqV0IGLhurFuZyA4Mi40NSUgbmfGsOG7nWkgY8OzIHPhu6ljIGto4buPZSBraMO0bmcgdOG7kXQuDQoNCiMjIyBS4bunaSBybyB0xrDGoW5nIMSR4buRaSBj4bunYSBiaeG6v24gaGVhbHRoIHbhu5tpIHJlZ2lvbg0KYGBge3J9DQplcGl0YWIocmVnaW9uMSxtZXRob2Q9J3Jpc2tyYXRpbycscmV2PSdjJykNCmBgYA0KQuG6o25nIG7DoHkgY2hvIHTDtGkgYmnhur90IGvhur90IHF14bqjIGPhu6dhIHBow6lwIHTDrW5oIHLhu6dpIHJvIHTGsMahbmcgxJHhu5FpIGdp4buvYSBoYWkgZ2nDoSB0cuG7iyBsw6AgdsO5bmcgMiB2w6AgdsO5bmcgMS4gUuG7p2kgcm8gdMawxqFuZyDEkeG7kWkgYuG6sW5nIDEuMTg0NzE4LCBjw7MgbmdoxKlhIGzDoCBuZ8aw4budaSBjw7Mgc+G7qWMga2jhu49lIHThu5F0IOG7nyB2w7luZyAyIGPDsyB4w6FjIHN14bqldCBjYW8gaMahbiAxOC40NyUgbmfGsOG7nWkgY8OzIHPhu6ljIGto4buPZSBraMO0bmcgdOG7kXQuDQoNCiMjIFThu7cgbOG7hyBjaMOqbmgNCg0KIyMjIFThu7cgbOG7hyBjaMOqbmggY+G7p2EgYmnhur9uIGhlYWx0aCB24bubaSBhZ2UNCmBgYHtyfQ0KZXBpdGFiKEFnZSxtZXRob2Q9J29kZHNyYXRpbycpDQpgYGANCkLhuqNuZyBuw6B5IGNobyB0w7RpIGJp4bq/dCBr4bq/dCBxdeG6oyBj4bunYSB04bu3IGzhu4cgY2jDqm5oIGdp4buvYSBoYWkgZ2nDoSB0cuG7iyBsw6AgdHJlbjQwIHbDoCBkdW9pNDAuIFThu7cgbOG7hyBjaMOqbmggYuG6sW5nIDAuNjQ5NTk0OSwgY8OzIG5naMSpYSBsw6AgbmfGsOG7nWkgY8OzIHPhu6ljIGto4buPZSB04buRdCBkxrDhu5tpIDQwIHR14buVaSBjw7MgeMOhYyBzdeG6pXQgYuG6sW5nIDY0Ljk1JSBuZ8aw4budaSBjw7Mgc+G7qWMga2jhu49lIGtow7RuZyB04buRdC4NCg0KIyMjIFThu7cgbOG7hyBjaMOqbmggY+G7p2EgYmnhur9uIGhlYWx0aCB24bubaSBmYW1pbHkNCmBgYHtyfQ0KZXBpdGFiKEZhbWlseTIsbWV0aG9kPSdvZGRzcmF0aW8nKQ0KYGBgDQpC4bqjbmcgbsOgeSBjaG8gdMO0aSBiaeG6v3Qga+G6v3QgcXXhuqMgY+G7p2EgdOG7tyBs4buHIGNow6puaCBnaeG7r2EgaGFpIGdpw6EgdHLhu4sgbMOgIGdpYSDEkcOsbmggY8OzIG5oaeG7gXUgdGjDoG5oIHZpw6puIHbDoCDDrXQgdGjDoG5oIHZpw6puLiBU4bu3IGzhu4cgY2jDqm5oIGLhurFuZyAwLjcxNDA2NzIsIGPDsyBuZ2jEqWEgbMOgIG5nxrDhu51pIGPDsyBz4bupYyBraOG7j2UgdOG7kXQgdHJvbmcgZ2lhIMSRw6xuaCDDrXQgbmfGsOG7nWkgY8OzIHjDoWMgc3XhuqV0IGLhurFuZyAgNzEuNCUgbmfGsOG7nWkgY8OzIHPhu6ljIGto4buPZSBraMO0bmcgdOG7kXQuDQoNCiMjIyBU4bu3IGzhu4cgY2jDqm5oIGPhu6dhIGJp4bq/biBoZWFsdGggduG7m2kgbGltaXQNCmBgYHtyfQ0KZXBpdGFiKGxpbWl0MSxtZXRob2Q9J29kZHNyYXRpbycpDQpgYGANCkLhuqNuZyBuw6B5IGNobyB0w7RpIGJp4bq/dCBr4bq/dCBxdeG6oyBj4bunYSB04bu3IGzhu4cgY2jDqm5oIGdp4buvYSBoYWkgZ2nDoSB0cuG7iyBsw6AgbmfGsOG7nWkgY8OzIGdp4bubaSBo4bqhbiB24buBIHPhu6ljIGto4buPZSB2w6AgbmfGsOG7nWkga2jDtG5nIGPDsyBnaeG7m2kgaOG6oW4gduG7gSBz4bupYyBraOG7j2UuIFThu7cgbOG7hyBjaMOqbmggYuG6sW5nIDAuMjQ2MDMxLCBjw7MgbmdoxKlhIGzDoCBuZ8aw4budaSBjw7Mgc+G7qWMga2jhu49lIHThu5F0IHbDoCBraMO0bmcgYuG7iyBnaeG7m2kgaOG6oW4gc+G7qWMga2jhu49lIGPDsyB4w6FjIHN14bqldCBi4bqxbmcgMjQuNiUgbmfGsOG7nWkgY8OzIHPhu6ljIGto4buPZSBraMO0bmcgdOG7kXQuDQoNCiMjIyBU4bu3IGzhu4cgY2jDqm5oIGPhu6dhIGJp4bq/biBoZWFsdGggduG7m2kgZ2VuZGVyDQpgYGB7cn0NCmVwaXRhYihnZW5kZXIxLG1ldGhvZD0nb2Rkc3JhdGlvJykNCmBgYA0KQuG6o25nIG7DoHkgY2hvIHTDtGkgYmnhur90IGvhur90IHF14bqjIGPhu6dhIHThu7cgbOG7hyBjaMOqbmggZ2nhu69hIGhhaSBnacOhIHRy4buLIGzDoCBnaeG7m2kgdMOtbmggbmFtIHbDoCBnaeG7m2kgdMOtbmggbuG7ry4gVOG7tyBs4buHIGNow6puaCBi4bqxbmcgMS4xODc1NjksIGPDsyBuZ2jEqWEgbMOgIG5nxrDhu51pIGPDsyBz4bupYyBraOG7j2UgdOG7kXQgbMOgIG7hu68gY8OzIHjDoWMgc3XhuqV0IGNhbyBoxqFuIDE4LDc1JSBzbyBuZ8aw4budaSBjw7Mgc+G7qWMga2jhu49lIGtow7RuZyB04buRdC4NCg0KIyMjIFThu7cgbOG7hyBjaMOqbmggY+G7p2EgYmnhur9uIGhlYWx0aCB24bubaSBtYXJyaWVkDQpgYGB7cn0NCmVwaXRhYihtYXJyaWVkMSxtZXRob2Q9J29kZHNyYXRpbycpDQpgYGANCkLhuqNuZyBuw6B5IGNobyB0w7RpIGJp4bq/dCBr4bq/dCBxdeG6oyBj4bunYSB04bu3IGzhu4cgY2jDqm5oIGdp4buvYSBoYWkgZ2nDoSB0cuG7iyBsw6AgbmfGsOG7nWkgxJHDoyBs4bqtcCBnaWEgxJHDrG5oIHbDoCBjaMawYSBs4bqtcCBnaWEgxJHDrG5oLiBU4bu3IGzhu4cgY2jDqm5oIGLhurFuZyAwLjkzMTI2OTYsIGPDsyBuZ2jEqWEgbMOgIG5nxrDhu51pIGPDsyBz4bupYyBraOG7j2UgdOG7kXQgdsOgIGNoxrBhIGzhuq1wIGdpYSDEkcOsbmggY8OzIHjDoWMgc3XhuqV0IGLhurFuZyA5My4xMiUgbmfGsOG7nWkgY8OzIHPhu6ljIGto4buPZSBraMO0bmcgdOG7kXQuDQoNCiMjIyBU4bu3IGzhu4cgY2jDqm5oIGPhu6dhIGJp4bq/biBoZWFsdGggduG7m2kgc2VsZmVtcA0KYGBge3J9DQplcGl0YWIoc2VsZmVtcDEsbWV0aG9kPSdvZGRzcmF0aW8nKQ0KYGBgDQpC4bqjbmcgbsOgeSBjaG8gdMO0aSBiaeG6v3Qga+G6v3QgcXXhuqMgY+G7p2EgdOG7tyBs4buHIGNow6puaCBnaeG7r2EgaGFpIGdpw6EgdHLhu4sgbMOgIMSRw6MgdOG7sSBjaOG7pyB24buBIHTDoGkgY2jDrW5oIGhheSBsw6AgY2jGsGEgdOG7sSBjaOG7pyB24buBIHTDoGkgY2jDrW5oLiBS4bunaSBybyB0xrDGoW5nIMSR4buRaSBi4bqxbmcgMS4xNzQ3MjYsIGPDsyBuZ2jEqWEgbMOgIG5nxrDhu51pIGPDsyBz4bupYyBraOG7j2UgdOG7kXQgdsOgIGNoxrBhIHThu7EgY2jhu6cgxJHGsOG7o2MgdMOgaSBjaMOtbmggY8OzIHjDoWMgc3XhuqV0IGNhbyBoxqFuIDE3LjQ3JSBuZ8aw4budaSBjw7Mgc+G7qWMga2jhu49lIGtow7RuZyB04buRdC4NCg0KIyMjIFThu7cgbOG7hyBjaMOqbmggY+G7p2EgYmnhur9uIGhlYWx0aCB24bubaSBldGhuaWNpdHkNCmBgYHtyfQ0KZXBpdGFiKGV0aG5pY2l0eTEsbWV0aG9kPSdvZGRzcmF0aW8nKQ0KYGBgDQpC4bqjbmcgbsOgeSBjaG8gdMO0aSBiaeG6v3Qga+G6v3QgcXXhuqMgY+G7p2EgdOG7tyBs4buHIGNow6puaGdp4buvYSBoYWkgZ2nDoSB0cuG7iyB24buBIG5ndeG7k24gZ+G7kWMgeHXhuqV0IHjhu6kgbMOgIGNhdWMgdsOgIG90aGVyLiBU4bu3IGzhu4cgY2jDqm5oIGLhurFuZyAxLjQxMzA3NCwgY8OzIG5naMSpYSBsw6AgbmfGsOG7nWkgY8OzIHPhu6ljIGto4buPZSB04buRdCB2w6Ag4bufIG5ndeG7k24gZ+G7kWMga2jDoWMgY8OzIHjDoWMgc3XhuqV0IGNhbyBoxqFuIDQxLjMlIG5nxrDhu51pIGPDsyBz4bupYyBraOG7j2Uga2jDtG5nIHThu5F0Lg0KDQojIyMgVOG7tyBs4buHIGNow6puaCBj4bunYSBiaeG6v24gaGVhbHRoIHbhu5tpIGVkdWNhdGlvbg0KYGBge3J9DQplcGl0YWIoZWR1Y2F0aW9uMSxtZXRob2Q9J29kZHNyYXRpbycpDQpgYGANCkLhuqNuZyBuw6B5IGNobyB0w7RpIGJp4bq/dCBr4bq/dCBxdeG6oyBj4bunYSB04bu3IGzhu4cgY2jDqm5oIGdp4buvYSBoYWkgZ2nDoSB0cuG7iyBsw6AgbG93ZWR1Y2F0aW9uIHbDoCBoaWdoZWR1Y2F0aW9uLiBU4bu3IGzhu4cgY2jDqm5oIGLhurFuZyAyLjA4ODQwNCwgY8OzIG5naMSpYSBsw6AgbmfGsOG7nWkgY8OzIHPhu6ljIGto4buPZSB04buRdCBo4buNYyDhu58gdHLDrG5oIMSR4buZIHRo4bqlcCBjw7MgeMOhYyBzdeG6pXQgY2FvIGjGoW4gMi4wOCBs4bqnbiBuZ8aw4budaSBjw7Mgc+G7qWMga2jhu49lIGtow7RuZyB04buRdC4NCg0KIyMjIFThu7cgbOG7hyBjaMOqbmggY+G7p2EgYmnhur9uIGhlYWx0aCB24bubaSByZWdpb24NCmBgYHtyfQ0KZXBpdGFiKHJlZ2lvbjEsbWV0aG9kPSdvZGRzcmF0aW8nKQ0KYGBgDQpC4bqjbmcgbsOgeSBjaG8gdMO0aSBiaeG6v3Qga+G6v3QgcXXhuqMgY+G7p2EgdOG7tyBs4buHIGNow6puaCBnaeG7r2EgaGFpIGdpw6EgdHLhu4sgbMOgIHbDuW5nIDEgdsOgIHbDuW5nIDIuIFThu7cgbOG7hyBjaMOqbmggYuG6sW5nIDAuNzU2NjQ0OCwgY8OzIG5naMSpYSBsw6AgbmfGsOG7nWkgY8OzIHPhu6ljIGto4buPZSB04buRdCDhu58gdsO5bmcgMSBjw7MgeMOhYyBzdeG6pXQgYuG6sW5nIDc1LjYlIG5nxrDhu51pIGPDsyBz4bupYyBraOG7j2Uga2jDtG5nIHThu5F0Lg0KDQojIyBLaG/huqNuZyDGsOG7m2MgbMaw4bujbmcgY2hvIHThu4kgbOG7hw0KDQpgYGB7cn0NCiMgTmfGsOG7nWkgY8OzIHTDrG5oIHRy4bqhbmcgc+G7qWMga2jhu49lIHThu5F0DQpIZWFsdGg8LXpbeiRETERULmhlYWx0aCA9PSAieWVzIixdDQpsZW5ndGgoeiRETERULmhlYWx0aCkNCmBgYA0KYGBge3J9DQpwcm9wLnRlc3QobGVuZ3RoKEhlYWx0aCRETERULmhlYWx0aCksbGVuZ3RoKHokRExEVC5oZWFsdGgpLHA9IDAuNzUpDQpgYGANCg0KxJDhurd0IGdp4bqjIHRodXnhur90Og0KDQokSF8wJDogTmfGsOG7nWkgY8OzIHTDrG5oIHRy4bqhbmcgc+G7qWMga2jhu49lIHThu5F0IGNoaeG6v20gNzUlDQoNCiRIXzEkOiBOZ8aw4budaSBjw7MgdMOsbmggdHLhuqFuZyBz4bupYyBraOG7j2UgdOG7kXQga2jDtG5nIGNoaeG6v20gNzUlDQoNClbDrCBQLXZhbHVlIDwgMi4yZS0xNiBuw6puIHRhIGLDoWMgYuG7jyAkSF8wJCB2w6AgY2jhuqVwIG5o4bqtbiAkSF8xJCDEkeG7k25nIG5naMSpYSB24bubaSBuZ8aw4budaSBjw7MgdMOsbmggdHLhuqFuZyBz4bupYyBraOG7j2UgdOG7kXQga2jDtG5nIGNoaeG6v20gNzUlLg0KDQpLaG/huqNuZyDGsOG7m2MgbMaw4bujbmcgdOG7tyBs4buHIG5nxrDhu51pIGPDsyB0w6xuaCB0cuG6oW5nIHPhu6ljIGto4buPZSB04buRdCB24bubaSDEkeG7mSB0aW4gY+G6rXkgOTUlIGzDoCAkKDAuOTIyOTA5ODswLjkzMzc5MDMpJA0KDQpgYGB7cn0NCiMgTmfGsOG7nWkgY8OzIHTDrG5oIHRy4bqhbmcgc+G7qWMga2jhu49lIGtow7RuZyB04buRdA0KSGVhbHRoMTwtelt6JERMRFQuaGVhbHRoID09ICJubyIsXQ0KbGVuZ3RoKHokRExEVC5oZWFsdGgpDQpgYGANCmBgYHtyfQ0KcHJvcC50ZXN0KGxlbmd0aChIZWFsdGgxJERMRFQuaGVhbHRoKSxsZW5ndGgoeiRETERULmhlYWx0aCkscD0gMC40KQ0KYGBgDQrEkOG6t3QgZ2nhuqMgdGh1eeG6v3Q6DQoNCiRIXzAkOiBOZ8aw4budaSBjw7MgdMOsbmggdHLhuqFuZyBz4bupYyBraOG7j2UgdOG7kXQgY2hp4bq/bSA0MCUNCg0KJEhfMSQ6IE5nxrDhu51pIGPDsyB0w6xuaCB0cuG6oW5nIHPhu6ljIGto4buPZSB04buRdCBraMO0bmcgY2hp4bq/bSA0MCUNCg0KVsOsIFAtdmFsdWUgPCAyLjJlLTE2IG7Dqm4gdGEgYsOhYyBi4buPICRIXzAkIHbDoCBjaOG6pXAgbmjhuq1uICRIXzEkIMSR4buTbmcgbmdoxKlhIHbhu5tpIG5nxrDhu51pIGPDsyB0w6xuaCB0cuG6oW5nIHPhu6ljIGto4buPZSBraMO0bmcgdOG7kXQga2jDtG5nIGNoaeG6v20gdOG7m2kgNDAlLg0KDQpLaG/huqNuZyDGsOG7m2MgbMaw4bujbmcgdOG7tyBs4buHIG5nxrDhu51pIGPDsyB0w6xuaCB0cuG6oW5nIHPhu6ljIGto4buPZSBraMO0bmcgdOG7kXQgduG7m2kgxJHhu5kgdGluIGPhuq15IDk1JSBsw6AgJCgwLjA2NjIwOTc0OzAuMDc3MDkwMTYpJA0KDQojIyBLaeG7g20gdHJhIHTDrW5oIMSR4buZYyBs4bqtcA0KDQojIyMgS2nhu4NtIHRyYSB0w61uaCDEkeG7mWMgbOG6rXAgY+G7p2EgYmnhur9uIGhlYWx0aCB2w6AgQWdlDQoNCmBgYHtyfQ0KY2hpc3EudGVzdChBZ2UpDQpgYGANCsSQ4bq3dCBnaeG6oyB0aGnhur90Og0KDQokSF8wJDogQmnhur9uIGhlYWx0aCB2w6AgQWdlIGPDsyB0w61uaCDEkeG7mWMgbOG6rXANCg0KJEhfMSQ6IEJp4bq/biBoZWFsdGggdsOgIEFnZSBraMO0bmcgY8OzIHTDrW5oIMSR4buZYyBs4bqtcA0KDQpWw6wgcC12YWx1ZSA9IDIuMjFlLTA3IDwgMC4wNSBuw6puIHRhIGLDoWMgYuG7jyAkSF8wJCB2w6AgY2jhuqVwIG5o4bqtbiAkSF8xJCwgxJHhu5NuZyBuZ2jEqWEgbMOgIEJp4bq/biBoZWFsdGggdsOgIEFnZSBraMO0bmcgY8OzIHTDrW5oIMSR4buZYyBs4bqtcCB24bubaSBuaGF1Lg0KDQojIyMgS2nhu4NtIHRyYSB0w61uaCDEkeG7mWMgbOG6rXAgY+G7p2EgYmnhur9uIGhlYWx0aCB2w6AgZmFtaWx5DQoNCmBgYHtyfQ0KY2hpc3EudGVzdChGYW1pbHkyKQ0KYGBgDQrEkOG6t3QgZ2nhuqMgdGhp4bq/dDoNCg0KJEhfMCQ6IEJp4bq/biBoZWFsdGggdsOgIGZhbWlseSBjw7MgdMOtbmggxJHhu5ljIGzhuq1wDQoNCiRIXzEkOiBCaeG6v24gaGVhbHRoIHbDoCBmYW1pbHkga2jDtG5nIGPDsyB0w61uaCDEkeG7mWMgbOG6rXANCg0KVsOsIHAtdmFsdWUgPSAwLjAwMTM0OSA8IDAuMDUgbsOqbiB0YSBiw6FjIGLhu48gJEhfMCQgdsOgIGNo4bqlcCBuaOG6rW4gJEhfMSQsIMSR4buTbmcgbmdoxKlhIGzDoCBCaeG6v24gaGVhbHRoIHbDoCBmYW1pbHkga2jDtG5nIGPDsyB0w61uaCDEkeG7mWMgbOG6rXAgduG7m2kgbmhhdS4NCg0KIyMjIEtp4buDbSB0cmEgdMOtbmggxJHhu5ljIGzhuq1wIGPhu6dhIGJp4bq/biBoZWFsdGggdsOgIGxpbWl0DQoNCmBgYHtyfQ0KY2hpc3EudGVzdChsaW1pdDEpDQpgYGANCsSQ4bq3dCBnaeG6oyB0aGnhur90Og0KDQokSF8wJDogQmnhur9uIGhlYWx0aCB2w6AgbGltaXQgY8OzIHTDrW5oIMSR4buZYyBs4bqtcA0KDQokSF8xJDogQmnhur9uIGhlYWx0aCB2w6AgbGltaXQga2jDtG5nIGPDsyB0w61uaCDEkeG7mWMgbOG6rXANCg0KVsOsIHAtdmFsdWUgPCAyLjJlLTE2IDwgMC4wNSBuw6puIHRhIGLDoWMgYuG7jyAkSF8wJCB2w6AgY2jhuqVwIG5o4bqtbiAkSF8xJCwgxJHhu5NuZyBuZ2jEqWEgbMOgIEJp4bq/biBoZWFsdGggdsOgIGxpbWl0IGtow7RuZyBjw7MgdMOtbmggxJHhu5ljIGzhuq1wIHbhu5tpIG5oYXUuDQoNCiMjIyBLaeG7g20gdHJhIHTDrW5oIMSR4buZYyBs4bqtcCBj4bunYSBiaeG6v24gaGVhbHRoIHbDoCBnZW5kZXINCg0KYGBge3J9DQpjaGlzcS50ZXN0KGdlbmRlcjEpDQpgYGANCsSQ4bq3dCBnaeG6oyB0aGnhur90Og0KDQokSF8wJDogQmnhur9uIGhlYWx0aCB2w6AgZ2VuZGVyIGPDsyB0w61uaCDEkeG7mWMgbOG6rXANCg0KJEhfMSQ6IEJp4bq/biBoZWFsdGggdsOgIGdlbmRlciBraMO0bmcgY8OzIHTDrW5oIMSR4buZYyBs4bqtcA0KDQpWw6wgcC12YWx1ZSA9IDAuMDQxNjYgPCAwLjA1IG7Dqm4gdGEgYsOhYyBi4buPICRIXzAkIHbDoCBjaOG6pXAgbmjhuq1uICRIXzEkLCDEkeG7k25nIG5naMSpYSBsw6AgQmnhur9uIGhlYWx0aCB2w6AgZ2VuZGVyIGtow7RuZyBjw7MgdMOtbmggxJHhu5ljIGzhuq1wIHbhu5tpIG5oYXUuDQoNCiMjIyBLaeG7g20gdHJhIHTDrW5oIMSR4buZYyBs4bqtcCBj4bunYSBiaeG6v24gaGVhbHRoIHbDoCBpbnN1cmFuY2UNCg0KYGBge3J9DQpjaGlzcS50ZXN0KGluc3VyYW5jZTEpDQpgYGANCsSQ4bq3dCBnaeG6oyB0aGnhur90Og0KDQokSF8wJDogQmnhur9uIGhlYWx0aCB2w6AgaW5zdXJhbmNlIGPDsyB0w61uaCDEkeG7mWMgbOG6rXANCg0KJEhfMSQ6IEJp4bq/biBoZWFsdGggdsOgIGluc3VyYW5jZSBraMO0bmcgY8OzIHTDrW5oIMSR4buZYyBs4bqtcA0KDQpWw6wgcC12YWx1ZSA9IDIuNDZlLTA2IDwgMC4wNSBuw6puIHRhIGLDoWMgYuG7jyAkSF8wJCB2w6AgY2jhuqVwIG5o4bqtbiAkSF8xJCwgxJHhu5NuZyBuZ2jEqWEgbMOgIEJp4bq/biBoZWFsdGggdsOgIGluc3VyYW5jZSBraMO0bmcgY8OzIHTDrW5oIMSR4buZYyBs4bqtcCB24bubaSBuaGF1Lg0KDQojIyMgS2nhu4NtIHRyYSB0w61uaCDEkeG7mWMgbOG6rXAgY+G7p2EgYmnhur9uIGhlYWx0aCB2w6AgbWFycmllZA0KDQpgYGB7cn0NCmNoaXNxLnRlc3QobWFycmllZDEpDQpgYGANCsSQ4bq3dCBnaeG6oyB0aGnhur90Og0KDQokSF8wJDogQmnhur9uIGhlYWx0aCB2w6AgbWFycmllZCBjw7MgdMOtbmggxJHhu5ljIGzhuq1wDQoNCiRIXzEkOiBCaeG6v24gaGVhbHRoIHbDoCBtYXJyaWVkIGtow7RuZyBjw7MgdMOtbmggxJHhu5ljIGzhuq1wDQoNClbDrCBwLXZhbHVlID0gMi4yMWUtMDcgPiAgMC40MzA5IG7Dqm4gdGEgY2jhuqVwIG5o4bqtbiAkSF8wJCDEkeG7k25nIG5naMSpYSBsw6AgQmnhur9uIGhlYWx0aCB2w6AgbWFycmllZCBjw7MgdMOtbmggxJHhu5ljIGzhuq1wIHbhu5tpIG5oYXUuDQoNCiMjIyBLaeG7g20gdHJhIHTDrW5oIMSR4buZYyBs4bqtcCBj4bunYSBiaeG6v24gaGVhbHRoIHbDoCBzZWxmZW1wDQoNCmBgYHtyfQ0KY2hpc3EudGVzdChzZWxmZW1wMSkNCmBgYA0KxJDhurd0IGdp4bqjIHRoaeG6v3Q6DQoNCiRIXzAkOiBCaeG6v24gaGVhbHRoIHbDoCBzZWxmZW1wIGPDsyB0w61uaCDEkeG7mWMgbOG6rXANCg0KJEhfMSQ6IEJp4bq/biBoZWFsdGggdsOgIHNlbGZlbXAga2jDtG5nIGPDsyB0w61uaCDEkeG7mWMgbOG6rXANCg0KVsOsIHAtdmFsdWUgPSAwLjI1MjggPiAwLjA1IG7Dqm4gdGEgY2jhuqVwIG5o4bqtbiAkSF8wJCwgxJHhu5NuZyBuZ2jEqWEgbMOgIEJp4bq/biBoZWFsdGggdsOgIHNlbGZlbXAgY8OzIHTDrW5oIMSR4buZYyBs4bqtcCB24bubaSBuaGF1Lg0KDQojIyMgS2nhu4NtIHRyYSB0w61uaCDEkeG7mWMgbOG6rXAgY+G7p2EgYmnhur9uIGhlYWx0aCB2w6AgZXRobmljaXR5DQoNCmBgYHtyfQ0KY2hpc3EudGVzdChldGhuaWNpdHkxKQ0KYGBgDQrEkOG6t3QgZ2nhuqMgdGhp4bq/dDoNCg0KJEhfMCQ6IEJp4bq/biBoZWFsdGggdsOgIGV0aG5pY2l0eSBjw7MgdMOtbmggxJHhu5ljIGzhuq1wDQoNCiRIXzEkOiBCaeG6v24gaGVhbHRoIHbDoCBldGhuaWNpdHkga2jDtG5nIGPDsyB0w61uaCDEkeG7mWMgbOG6rXANCg0KVsOsIHAtdmFsdWUgPSAwLjAwMDgwNSA8IDAuMDUgbsOqbiB0YSBiw6FjIGLhu48gJEhfMCQgdsOgIGNo4bqlcCBuaOG6rW4gJEhfMSQsIMSR4buTbmcgbmdoxKlhIGzDoCBCaeG6v24gaGVhbHRoIHbDoCBldGhuaWNpdHkga2jDtG5nIGPDsyB0w61uaCDEkeG7mWMgbOG6rXAgduG7m2kgbmhhdS4NCg0KIyMjIEtp4buDbSB0cmEgdMOtbmggxJHhu5ljIGzhuq1wIGPhu6dhIGJp4bq/biBoZWFsdGggdsOgIGVkdWNhdGlvbg0KDQpgYGB7cn0NCmNoaXNxLnRlc3QoZWR1Y2F0aW9uMSkNCmBgYA0KxJDhurd0IGdp4bqjIHRoaeG6v3Q6DQoNCiRIXzAkOiBCaeG6v24gaGVhbHRoIHbDoCBlZHVjYXRpb24gY8OzIHTDrW5oIMSR4buZYyBs4bqtcA0KDQokSF8xJDogQmnhur9uIGhlYWx0aCB2w6AgZWR1Y2F0aW9uIGtow7RuZyBjw7MgdMOtbmggxJHhu5ljIGzhuq1wDQoNClbDrCBwLXZhbHVlID0gNC44MTFlLTEzIDwgMC4wNSBuw6puIHRhIGLDoWMgYuG7jyAkSF8wJCB2w6AgY2jhuqVwIG5o4bqtbiAkSF8xJCwgxJHhu5NuZyBuZ2jEqWEgbMOgIEJp4bq/biBoZWFsdGggdsOgIGVkdWNhdGlvbiBraMO0bmcgY8OzIHTDrW5oIMSR4buZYyBs4bqtcCB24bubaSBuaGF1Lg0KDQojIyMgS2nhu4NtIHRyYSB0w61uaCDEkeG7mWMgbOG6rXAgY+G7p2EgYmnhur9uIGhlYWx0aCB2w6AgcmVnaW9uDQoNCmBgYHtyfQ0KY2hpc3EudGVzdChyZWdpb24xKQ0KYGBgDQrEkOG6t3QgZ2nhuqMgdGhp4bq/dDoNCg0KJEhfMCQ6IEJp4bq/biBoZWFsdGggdsOgIHJlZ2lvbiBjw7MgdMOtbmggxJHhu5ljIGzhuq1wDQoNCiRIXzEkOiBCaeG6v24gaGVhbHRoIHbDoCByZWdpb24ga2jDtG5nIGPDsyB0w61uaCDEkeG7mWMgbOG6rXANCg0KVsOsIHAtdmFsdWUgPSA0LjgxMWUtMTMgPCAwLjA1IG7Dqm4gdGEgYsOhYyBi4buPICRIXzAkIHbDoCBjaOG6pXAgbmjhuq1uICRIXzEkLCDEkeG7k25nIG5naMSpYSBsw6AgQmnhur9uIGhlYWx0aCB2w6AgcmVnaW9uIGtow7RuZyBjw7MgdMOtbmggxJHhu5ljIGzhuq1wIHbhu5tpIG5oYXUuDQoNCiMjIE3DtCBow6xuaCBo4buTaSBxdXkgbG9naXN0aWMNCg0KROG7sWEgdsOgbyBraeG7g20gxJHhu4tuaCB0w61uaCDEkeG7mWMgbOG6rXAgZ2nhu69hIGJp4bq/biDEkeG7i25oIHTDrW5oIHBo4bulIHRodeG7mWMgbMOgIGhlYWx0aCB24bubaSBjw6FjIGJp4bq/biDEkeG7mWMgbOG6rXAga2jDoWMg4bufIHRyw6puLiBDw7MgMiBiaeG6v24gdGjhu4MgaGnhu4duIHTDrW5oIMSR4buZYyBs4bqtcCB24bubaSBiaeG6v24gcGjhu6UgdGh14buZYyDEkcOzIGzDoCBtYXJyaWVkIHbDoCBzZWxmZW1wIG7Dqm4gdMO0aSB0aeG6v24gaMOgbmggaOG7k2kgcXV5IGxvZ2lzdGljIGPDoWMgYmnhur9uIGPDsm4gbOG6oWkuDQoNCmBgYHtyfQ0KbW9oaW5oMSA8LSBnbG0oRExEVC5oZWFsdGggfiBETERUJGxpbWl0ICsgRExEVCRnZW5kZXIgK0RMRFQkaW5zdXJhbmNlICsgZWR1Y2F0ZWQgKyAgZXRobmljaXR5ICsgZmFtaWx5MSAsIGZhbWlseSA9IGJpbm9taWFsKGxpbmsgPSAnbG9naXQnKSwgZGF0YSA9IHopDQpzdW1tYXJ5KG1vaGluaDEpDQpgYGANClbhu5tpIG3DtCBow6xuaCBo4buTaSBxdXkgbG9naXQgY+G7p2EgYmnhur9uIHBo4bulIHRodeG7mWMgaGVhbHRoIHbhu5tpIDYgYmnhur9uIMSR4buZYyBs4bqtcCBn4buTbSBsaW1pdCwgZ2VuZGVyLCBpbnN1cmFuY2UsIGVkdWNhdGVkLCBldGhuaWNpdHkgdsOgIGZhbWlseSwgY2hvIHRhIHRo4bqleSBy4bqxbmcgY+G6oyA2IGJp4bq/biDEkeG7gXUgY8OzIMO9IG5naMSpYSB0aOG7kW5nIGvDqiDhu58gbeG7qWMgw70gbmdoxKlhIDUlLiBNw7QgaMOsbmggbmjGsCBzYXU6DQoNCiRsb2dpdCjPgCkgPSAyLjEyMTcwIC0xLjQ1MDc2bGltaXR5ZXMgKyAwLjE5MjQ3Z2VuZGVybWFsZSArIDAuMzYxMjRpbnN1cmFuY2V5ZXMgKyAwLjYwNDQzZWR1Y2F0ZWRoaWdoZWR1Y2F0aW9uICswLjM4NDUwZXRobmljaXR5Y2F1YyAtIDAuNDAwOTRmYW1pbHkxbmhpZXVuZ3VvaSAkDQoNCmBgYHtyfQ0KbW9oaW5oMiA8LSBnbG0oRExEVC5oZWFsdGggfiBETERUJGxpbWl0ICsgRExEVCRnZW5kZXIgK0RMRFQkaW5zdXJhbmNlICsgZWR1Y2F0ZWQgKyAgZXRobmljaXR5ICsgZmFtaWx5MSAsIGZhbWlseSA9IGJpbm9taWFsKGxpbmsgPSAncHJvYml0JyksIGRhdGEgPSB6KQ0Kc3VtbWFyeShtb2hpbmgyKQ0KYGBgDQpW4bubaSBtw7QgaMOsbmggaOG7k2kgcXV5IHByb2JpdCBj4bunYSBiaeG6v24gcGjhu6UgdGh14buZYyBoZWFsdGggduG7m2kgNiBiaeG6v24gxJHhu5ljIGzhuq1wIGfhu5NtIGxpbWl0LCBnZW5kZXIsIGluc3VyYW5jZSwgZWR1Y2F0ZWQsIGV0aG5pY2l0eSB2w6AgZmFtaWx5LCBjaG8gdGEgdGjhuqV5IHLhurFuZyBj4bqjIDYgYmnhur9uIMSR4buBdSBjw7Mgw70gbmdoxKlhIHRo4buRbmcga8OqIOG7nyBt4bupYyDDvSBuZ2jEqWEgNSUuIE3DtCBow6xuaCBuaMawIHNhdToNCg0KJHByb2JpdCjPgCkgPSAgMS4yMzk5OCAtMC43NDQ5NGxpbWl0eWVzICsgMC4wODk0NmdlbmRlcm1hbGUgKyAwLjE4MjI3aW5zdXJhbmNleWVzICsgMC4yODUxMWVkdWNhdGVkaGlnaGVkdWNhdGlvbiArMC4xODgzMWV0aG5pY2l0eWNhdWMgLTAuMjAwMzhmYW1pbHkxbmhpZXVuZ3VvaSAkDQoNCmBgYHtyfQ0KbW9oaW5oMyA8LSBnbG0oRExEVCRoZWFsdGggfiBETERUJGxpbWl0ICsgRExEVCRnZW5kZXIgK0RMRFQkaW5zdXJhbmNlICsgZWR1Y2F0ZWQgKyAgZXRobmljaXR5ICsgZmFtaWx5MSAsIGZhbWlseSA9IGJpbm9taWFsKGxpbmsgPSAnY2xvZ2xvZycpLCBkYXRhID0geikNCnN1bW1hcnkobW9oaW5oMykNCmBgYA0KVuG7m2kgbcO0IGjDrG5oIGjhu5NpIHF1eSBjbG9nbG9nIGPhu6dhIGJp4bq/biBwaOG7pSB0aHXhu5ljIGhlYWx0aCB24bubaSA2IGJp4bq/biDEkeG7mWMgbOG6rXAgZ+G7k20gbGltaXQsIGdlbmRlciwgaW5zdXJhbmNlLCBlZHVjYXRlZCwgZXRobmljaXR5IHbDoCBmYW1pbHksIGNobyB0YSB0aOG6pXkgcuG6sW5nIGPhuqMgNiBiaeG6v24gxJHhu4F1IGPDsyDDvSBuZ2jEqWEgdGjhu5FuZyBrw6og4bufIG3hu6ljIMO9IG5naMSpYSA1JS4gTcO0IGjDrG5oIG5oxrAgc2F1Og0KDQokY2xvZ2xvZyjPgCkgPSAgMC44MDQ1OCAtMC41Njk2MWxpbWl0eWVzICsgMC4wNjA0NGdlbmRlcm1hbGUgKyAwLjEzNDg3aW5zdXJhbmNleWVzICsgMC4xOTcxNmVkdWNhdGVkaGlnaGVkdWNhdGlvbiArMC4xMzQ5MGV0aG5pY2l0eWNhdWMgLTAuMTQ3MjZmYW1pbHkxbmhpZXVuZ3VvaSAkDQoNCiMjIEzhu7FhIGNo4buNbiBtw7QgaMOsbmgNCg0KYGBge3J9DQpBSUMxIDwtIEFJQyhtb2hpbmgxKQ0KQUlDMiA8LSBBSUMobW9oaW5oMikNCkFJQzMgPC0gQUlDKG1vaGluaDMpDQpBSUMgPC1jYmluZChBSUMxLEFJQzIsQUlDMykNCkFJQw0KYGBgDQo9PiBE4buxYSB2w6BvIGLhuqNuZyBr4bq/dCBxdeG6oyB0csOqbiB0YSB0aHUgxJHGsOG7o2MgZ2nDoSB0cuG7iyBBSUMgbmjhu48gbmjhuqV0IOG7nyBtw7QgaMOsbmggaOG7k2kgcXV5IGxvZ2l0IHThu6ljIGzDoCBtw7QgaMOsbmggbG9naXQgc+G6vSBwaMO5IGjhu6NwIGjGoW4gduG7m2kgMiBtw7QgaMOsbmggY8OybiBs4bqhaS4NCg0KYGBge3J9DQpkZXYxIDwtIGRldmlhbmNlKG1vaGluaDEpDQpkZXYyIDwtIGRldmlhbmNlKG1vaGluaDIpDQpkZXYzIDwtIGRldmlhbmNlKG1vaGluaDMpDQpkZXZpYW5jZSA8LWNiaW5kKGRldjEsZGV2MixkZXYzKQ0KZGV2aWFuY2UNCmBgYA0KPT4gROG7sWEgdsOgbyBi4bqjbmcga+G6v3QgcXXhuqMgdHLDqm4gdGEgdGh1IMSRxrDhu6NjIGdpw6EgdHLhu4sgZGV2aWFuY2Ugbmjhu48gbmjhuqV0IOG7nyBtw7QgaMOsbmggaOG7k2kgcXV5IGxvZ2l0IHThu6ljIGzDoCBtw7QgaMOsbmggbG9naXQgc+G6vSBwaMO5IGjhu6NwIGjGoW4gduG7m2kgMiBtw7QgaMOsbmggY8OybiBs4bqhaS4NCg0KYGBge3J9DQpsaWJyYXJ5KERlc2NUb29scykNCkJyaWVyU2NvcmUobW9oaW5oMSkNCmBgYA0KYGBge3J9DQpCcmllclNjb3JlKG1vaGluaDIpDQpgYGANCmBgYHtyfQ0KQnJpZXJTY29yZShtb2hpbmgzKQ0KYGBgDQoNCj0+IEThu7FhIHbDoG8gYuG6o25nIGvhur90IHF14bqjIHRyw6puIHRhIHRodSDEkcaw4bujYyBnacOhIHRy4buLIEJyaWVyU2NvcmUgbmjhu48gbmjhuqV0IOG7nyBtw7QgaMOsbmggaOG7k2kgcXV5IGxvZ2l0LCB04bupYyBsw6AgbcO0IGjDrG5oIGxvZ2l0IHPhur0gcGjDuSBo4bujcCBoxqFuIHbhu5tpIDIgbcO0IGjDrG5oIGPDsm4gbOG6oWkuDQoNCkvhur90IGx14bqtbiwga2hpIHjDqXQgQUlDLCBkZXZpYW5jZSB2w6AgQnJpZXJTY29yZSB0aMOsIG3DtCBow6xuaCBo4buTaSBxdXkgbG9naXQgbMOgIHThu5FpIMawdSBuaOG6pXQuDQoNCiMjIMSQ4buNYyBtw7QgaMOsbmg6DQoNClNhdSBraGkgdGnhur9uIGjDoG5oIGjhu5NpIHF1eSBiaeG6v24gcGjhu6UgdGh14buZYyDEkeG7i25oIHTDrW5oIGzDoCBoZWFsdGggduG7m2kgNiBiaeG6v24gxJHhu5ljIGzhuq1wIGfhu5NtIGxpbWl0LCBnZW5kZXIsIGluc3VyYW5jZSwgZWR1Y2F0ZWQsIGV0aG5pY2l0eSB2w6AgZmFtaWx5IHRow6wgdOG6pXQgY+G6oyBjw6FjIGJp4bq/biDEkeG7gXUgY8OzIMO9IG5naMSpYSB2w6AgxJHhuqF0IHThu5FpIMawdSDhu58gbcO0IGjDrG5oIGxvZ2l0LiBW4bubaSBnaeG6oyB0aHV54bq/dCBraGkgY8OhYyB54bq/dSB04buRIGtow6FjIGtow7RuZyDEkeG7lWkgdGjDrCDhu58gbeG7qWMgw70gbmdoxKlhIDElLCBjw6FjIGJp4bq/biDEkeG7mWMgbOG6rXAgbsOgeSBz4bq9IGPDsyBt4bupYyDEkeG7mSDhuqNuaCBoxrDhu59uZyDEkeG7kWkgduG7m2kgdMOsbmggdHLhuqFuZyBz4bupYyBraOG7j2UgY+G7p2EgbmfGsOG7nWkgdGhhbSBnaWEgY3Xhu5ljIGto4bqjbyBzw6F0Lg0KDQpNw7QgaMOsbmggdOG7kWkgxrB1IGPDsyBk4bqhbmcgc2F1Og0KDQokbG9naXQoz4ApID0gMi4xMjE3MCAtMS40NTA3NmxpbWl0eWVzICsgMC4xOTI0N2dlbmRlcm1hbGUgKyAwLjM2MTI0aW5zdXJhbmNleWVzICsgMC42MDQ0M2VkdWNhdGVkaGlnaGVkdWNhdGlvbiArMC4zODQ1MGV0aG5pY2l0eWNhdWMgLSAwLjQwMDk0ZmFtaWx5MW5oaWV1bmd1b2kgJA0KDQpIw6BtIGxvZ2lzdGljIGPDsyBk4bqhbmc6DQoNCiRsb2dpc3RpYyh4KSA9IFxmcmFjezF9eygxICsgZV57KC14KX0pfSQNCg0KVGEgdGh1IMSRxrDhu6NjIGvhur90IHF14bqjIG7hur91IGPDsyBt4buZdCBuZ8aw4budaSBsw6AgbmFtLCBjw7MgZ2nhu5tpIGjhuqFuIHbhu4Egc+G7qWMga2jhu49lLCBjw7MgYuG6o28gaGnhu4NtLCBjw7MgdHLDrG5oIMSR4buZIGNhbyBo4buNYywgdGh14buZYyBkw6JuIHThu5ljIGNhdWNhc2lhbiB2w6Agc+G7kW5nIHRyb25nIGdpYSDEkcOsbmggY8OzIG5oaeG7gXUgbmfGsOG7nWksIHRow6wgeMOhYyBzdeG6pXQgY+G7p2Egc+G7sSBraeG7h24gbMOgOg0KDQokbG9naXQoz4ApID0gMi4xMjE3MCAtIDEuNDUwNzYgKiAxICsgMC4xOTI0NyAqIDEgKyAwLjM2MTI0ICogMSArIDAuNjA0NDMgKiAxICsgMC4zODQ1MCAqIDEgLSAwLjQwMDk0ICogMSBsb2dpdCjPgCkgPSAxLjgxMjY0IM+AID0gbG9naXN0aWMoMS44MTI2NCkgz4AgPSAwLjg1OSQNCg0KVOG7qWMgbMOgIHjDoWMgc3XhuqV0IGPhu6dhIHPhu7Ega2nhu4duIGzDoCBraG/huqNuZyA4NiUuDQoNCiMgQ0jGr8agTkcgMzogS+G6vlQgTFXhuqxODQoNCiMjIEvhur90IGx14bqtbg0KDQpUcm9uZyBiw6BpIHRp4buDdSBsdcOibiBuw6B5LCB0w7RpIMSRw6MgdGnhur9uIGjDoG5oIHjhu60gbMOtIGLhu5kgZOG7ryBsaeG7h3UgIkhlYWx0aEluc3VyYW5jZSIgdHJvbmcgZ8OzaSBBRVIuIEfhu5NtIGPDsyAxMSBiaeG6v24gdHJvbmcgxJHDsyBjw7MgOSBiaeG6v24gxJHhu4tuaCB0w61uaCB2w6AgMiBiaeG6v24gxJHhu4tuaCBsxrDhu6NuZy4gVMO0aSBjaOG7jW4gYmnhur9uIMSR4buLbmggdMOtbmggaGVhbHRoIGzDoCBiaeG6v24gcGjhu6UgdGh14buZYyB2w6AgdGnhur9uIGjDoG5oIHRo4buRbmcga8OqIG3DtCB04bqjIGPhu6dhIHThu6tuZyBiaeG6v24gxJHhu5ljIGzhuq1wIGtow6FjIMSR4buDIGPDsyBjw6FpIG5ow6xuIGtow6FjaCBxdWFuIGjGoW4gduG7gSBi4buZIGThu68gbGnhu4d1LCBzYXUgxJHDsyB0w7RpIHRp4bq/biBow6BuaCB0aOG7kW5nIGvDqiBtw7QgMiBiaeG6v24gcGjhu6UgdGh14buZYyB24bubaSBjw6FjIGJp4bq/biDEkeG7i25oIHTDrW5oIGPDsm4gbOG6oWksIMSRaeG7gXUgbsOgeSB0csOqbiBnaeG6oyB0aGnhur90IHPhur0gZ2nDunAgdMO0aSB0aOG6pXkgcsO1IGPDoWMgYmnhur9uIMSR4buZYyBs4bqtcCBraMOhYyBuaMawIMSR4buZIHR14buVaSwgbmd14buTbiBn4buRYywgdsO5bmcgbWnhu4FuLCBz4bufIGjhu691IGLhuqNvIGhp4buDbSwuLi4gxJHhu4F1IGPDsyB0w6FjIMSR4buZbmcgxJHhur9uIHTDrG5oIHRy4bqhbmcgc+G7qWMga2jhu49lIHbDoCBjw7MgNiBiaeG6v24gxJHhu5ljIGzhuq1wIGfhu5NtIGxpbWl0LCBnZW5kZXIsIGluc3VyYW5jZSwgZWR1Y2F0ZWQsIGV0aG5pY2l0eSB2w6AgZmFtaWx5IHRo4buDIGhp4buHbiByw7Ugc+G7sSB0w6FjIMSR4buZbmcgdGjDtG5nIHF1YSBtw7QgaMOsbmggaOG7k2kgcXV5IHThu5FpIMawdSBuaOG6pXQgbMOgIGxvZ2l0IGtoaSB4w6l0IGPDoWMgeeG6v3UgdOG7kSBuaMawIEFJQywgRGV2aWFuY2UsIEJyaWVyLg0KDQojIyBI4bqhbiBjaOG6vyANCg0KUnN0dWRpbyBsw6AgbeG7mXQgcGjhuqduIG3hu4FtIGzhuq1wIHRyw6xuaCB2w6AgbeG7m2kgbeG6uyDEkeG7kWkgduG7m2kgdMO0aSBuw6puIHTDtGkgY+G6p24gY8OzIG5oaeG7gXUgdGjhu51pIGdpYW4gxJHhu4MgdMOsbSBoaeG7g3Uga2nhur9uIHRo4bupYyB24buBIG5nw7RuIG5n4buvIFIgxJHhu4MgY8OzIHRo4buDIHPhu60gZOG7pW5nIG7DsyBoaeG7h3UgcXXhuqMuIE7hur91IHTDtGkga2jDtG5nIHF1ZW4gduG7m2kgY8O6IHBow6FwIHbDoCBjw6FjIGjDoG0gY+G7p2EgUiwgdMO0aSBjw7MgdGjhu4MgZ+G6t3Aga2jDsyBraMSDbiB0cm9uZyB2aeG7h2Mgbmjhuq1wLCB44butIGzDvSB2w6AgcGjDom4gdMOtY2ggZOG7ryBsaeG7h3UuDQpSc3R1ZGlvIGPFqW5nIGPDsyB0aOG7gyBn4bq3cCBt4buZdCBz4buRIHbhuqVuIMSR4buBIHbhu4EgaGnhu4d1IG7Eg25nIGtoaSB44butIGzDvSBjw6FjIGLhu5kgZOG7ryBsaeG7h3UgbOG7m24gaG/hurdjIHBo4bupYyB04bqhcCBjw7MgdGjhu4MgY+G6p24gcGjhuqNpIHThu5FpIMawdSBow7NhIG3DoyBuZ3Xhu5NuIGPhu6dhIG3DrG5oIGhv4bq3YyBz4butIGThu6VuZyBjw6FjIGfDs2kgYuG7lSBzdW5nIMSR4buDIGdp4bqjbSB0aGnhu4N1IHRo4budaSBnaWFuIGNo4bqheSB2w6AgYuG7mSBuaOG7my4gUnN0dWRpbyBjxaluZyBjw7MgdGjhu4Mga2jDtG5nIHTGsMahbmcgdGjDrWNoIHbhu5tpIG3hu5l0IHPhu5EgxJHhu4tuaCBk4bqhbmcgZOG7ryBsaeG7h3UgaG/hurdjIHBo4bqnbiBt4buBbSBraMOhYyBjw7MgdGjhu4MgY+G6p24gcGjhuqNpIGNodXnhu4NuIMSR4buVaSBk4buvIGxp4buHdSBzYW5nIMSR4buLbmggZOG6oW5nIHBow7kgaOG7o3AgaG/hurdjIHPhu60gZOG7pW5nIGPDoWMgY8O0bmcgY+G7pSBsacOqbiBr4bq/dCDEkeG7gyBr4bq/dCBu4buRaSB24bubaSBjw6FjIG5ndeG7k24gZOG7ryBsaeG7h3Uga2jDoWMuDQoNCiMgVMOgaSBsaeG7h3UgdGhhbSBraOG6o28NCg0KWzFdIFQuSy5UaGFuaCwgVC5NLlTGsOG7nW5nLCBWLkEuTC5EdXksIELDoGkgZ2nhuqNuZyBQaMOibiB0w61jaCBk4buvIGxp4buHdSDEkeG7i25oIHTDrW5oLg0KDQojIFBo4bulIGzhu6VjDQoNCmBgYHtyfQ0KbGlicmFyeShkYXRhLnRhYmxlKQ0KZGF0YS50YWJsZSh6KQ0KYGBgDQoNCg==