1 CHƯƠNG I: GIỚI THIỆU CHUNG


1.1 Tổng quan về ngôn ngữ lập trình trong phân tích dữ liệu

1.1.1 khái niệm ngôn ngữ lập trình trong phân tích dữ liệu

Ngôn ngữ lập trình trong phân tích dữ liệu là một công cụ mạnh mẽ được sử dụng để khám phá, hiểu và rút ra thông tin từ các tập dữ liệu lớn và phức tạp. Đây là một công cụ quan trọng trong lĩnh vực khoa học dữ liệu, thống kê, và phân tích dữ liệu, và đóng vai trò quan trọng trong việc hỗ trợ quyết định trong nhiều lĩnh vực khác nhau.

1.1.2 Đặc điểm của ngôn ngữ lập trình trong phân tích dữ liệu

Hỗ trợ tính toán và xử lý dữ liệu: Ngôn ngữ này cung cấp các công cụ và thư viện để thực hiện các phép tính toán phức tạp và xử lý dữ liệu, bao gồm các phép toán thống kê, biểu đồ hóa, và xử lý tập tin.

  • Thư viện phong phú: Nó đi kèm với một bộ thư viện phong phú của các gói mở rộng, cung cấp các chức năng và công cụ cho nhiều loại phân tích dữ liệu, từ thống kê cơ bản đến machine learning và visualizations.
  • Tương tác và thích nghi: Các môi trường tính toán tương tác linh hoạt cho phép người dùng thực hiện thí nghiệm, điều chỉnh phân tích và thích nghi nhanh chóng với dữ liệu.
  • Hỗ trợ đa nền tảng: Các ngôn ngữ này hoạt động trên nhiều hệ điều hành như Windows, macOS và Linux, giúp đảm bảo tính linh hoạt và sẵn có cho người dùng.
  • Cộng đồng và hỗ trợ: Có một cộng đồng lớn và đa dạng của các nhà phân tích dữ liệu và nhà phát triển, cung cấp tài liệu, hướng dẫn và hỗ trợ qua các diễn đàn trực tuyến và cộng đồng người dùng.

1.1.3 Ứng dụng ngôn ngữ lập trình trong phân tích dữ liệu

Phân tích và khai thác dữ liệu: R được sử dụng rộng rãi trong việc phân tích và khai thác dữ liệu từ nhiều nguồn khác nhau như cơ sở dữ liệu, tập tin văn bản, tệp Excel, và cả trang web. Thống kê và machine learning: R cung cấp một loạt các gói và chức năng cho các phương pháp thống kê cơ bản và nâng cao, cũng như cho machine learning và các thuật toán học máy. Biểu đồ hóa và trực quan hóa dữ liệu: R có các gói mạnh mẽ cho việc tạo ra biểu đồ và trực quan hóa dữ liệu, giúp hiểu rõ hơn về dữ liệu và kết quả phân tích. Phát triển ứng dụng và công cụ: R cung cấp các công cụ để phát triển các ứng dụng và công cụ phân tích dữ liệu phức tạp, bao gồm các giao diện đồ họa và web. Với những đặc điểm và ứng dụng đa dạng, R là một ngôn ngữ lập trình mạnh mẽ và linh hoạt cho phân tích dữ liệu và nghiên cứu trong nhiều lĩnh vực khác nhau.

1.2 Giới thiệu vấn đề tiểu luận

1.2.1 Đặt vấn đề

Trong bối cảnh toàn cầu hóa ngày càng phát triển, việc phân tích biến động tỷ giá hối đoái giữa các quốc gia hoặc khu vực trở thành một khía cạnh quan trọng trong lĩnh vực tài chính và kinh tế. Trong năm 2023, môi trường kinh doanh và tài chính toàn cầu đã đối mặt với nhiều thách thức và biến động, từ dịch bệnh COVID-19 đến biến động chính trị và thị trường. Tiểu luận này đặt ra vấn đề về việc phân tích biến động tỷ giá hối đoái trong năm 2023, tập trung vào sự thay đổi của tỷ giá hối đoái giữa các quốc gia hoặc khu vực trên thế giới. Mục tiêu của nghiên cứu là hiểu rõ sự biến động của tỷ giá hối đoái trong năm 2023, xác định các yếu tố ảnh hưởng và tác động của chúng đối với nền kinh tế toàn cầu.

  • Ý nghĩa của việc phân tích

Phân tích biến động tỷ giá hối đoái trong năm 2023 không chỉ giúp chúng ta hiểu rõ về sự thay đổi của tỷ giá hối đoái giữa các quốc gia hoặc khu vực, mà còn cung cấp thông tin quan trọng về tình hình kinh tế và tài chính toàn cầu. Bằng cách này, chúng ta có thể đánh giá tác động của biến động tỷ giá hối đoái đối với hoạt động thương mại, đầu tư và tài chính, đồng thời đề xuất các chiến lược và biện pháp chính sách phù hợp để ứng phó với rủi ro và tạo ra ổn định trong thị trường toàn cầu.

1.2.2 Mục tiêu của tiểu luận

Nắm vững kiến thức về tỉ giá hối đoái: Hiểu rõ về khái niệm, cơ chế hoạt động và vai trò của tỉ giá hối đoái trong hệ thống tài chính và kinh tế toàn cầu. - Phân tích biến động tỉ giá hối đoái: Thực hiện phân tích sâu về các yếu tố và xu hướng ảnh hưởng đến sự biến động của tỉ giá hối đoái, bao gồm cả các yếu tố kinh tế, chính trị và tài chính. - Đánh giá tác động của biến động tỉ giá hối đoái: Đánh giá tác động của biến động tỉ giá hối đoái đối với hoạt động thương mại, đầu tư, tài chính và kinh tế của các quốc gia/khu vực. - Dự đoán và đề xuất chiến lược: Dự đoán các xu hướng về biến động tỉ giá hối đoái trong tương lai dựa trên các yếu tố kinh tế, chính trị và tài chính, đồng thời đề xuất các chiến lược và biện pháp chính sách phù hợp để ứng phó và tạo ra ổn định trong thị trường toàn cầu.

Thông qua việc đạt được những mục tiêu này, tiểu luận sẽ cung cấp cái nhìn sâu rộng và chuyên sâu về tỉ giá hối đoái và vai trò quan trọng của nó trong hệ thống tài chính và kinh tế toàn cầu.

1.2.3 Lý do chọn chủ đề tiểu luận

  • Quan trọng toàn cầu: Tỷ giá hối đoái ảnh hưởng đến mọi quốc gia trên thế giới và có ảnh hưởng lớn đến nền kinh tế toàn cầu. Việc hiểu về các yếu tố ảnh hưởng đến tỷ giá hối đoái có thể cung cấp cái nhìn sâu sắc về các xu hướng kinh tế và tài chính toàn cầu.

  • Liên kết với thị trường tài chính: Tỷ giá hối đoái thường liên quan chặt chẽ đến các thị trường tài chính khác như thị trường chứng khoán, thị trường hàng hóa và thị trường nợ. Phân tích tỷ giá hối đoái có thể giúp dự đoán các biến động trong các thị trường tài chính khác.

  • Ảnh hưởng đến kinh doanh và đầu tư: Do ảnh hưởng của tỷ giá hối đoái đến các doanh nghiệp hoạt động quốc tế và các nhà đầu tư quốc tế, việc hiểu về tỷ giá hối đoái có thể giúp quản lý rủi ro và tối ưu hóa lợi nhuận trong các hoạt động kinh doanh và đầu tư.

  • Chính sách kinh tế và tài chính: Chính sách của các cơ quan tài chính và chính phủ đối với tỷ giá hối đoái có thể có ảnh hưởng lớn đến nền kinh tế và tài chính. Phân tích tỷ giá hối đoái có thể giúp hiểu rõ các biện pháp chính sách và dự đoán các thay đổi trong chính sách này.

  • Cơ hội đầu tư và giao dịch: Hiểu biết về tỷ giá hối đoái có thể mở ra cơ hội cho các nhà đầu tư và người giao dịch để tìm kiếm lợi nhuận từ việc dự đoán và tham gia vào các biến động của thị trường tiền tệ.

Tóm lại, phân tích tỷ giá hối đoái là một phần quan trọng của nghiên cứu kinh tế và tài chính và có thể cung cấp cái nhìn rõ ràng về nền kinh tế toàn cầu và cơ hội đầu tư

2 CHƯƠNG II: PHÂN TÍCH BỘ DỮ LIỆU


2.1 Mô tả bộ dữ liệu

2.1.1 Mô tả khái quát

Bộ dữ liệu phân tích về tỷ giá hối đoái của các quốc gia là một tập hợp các dữ liệu liên quan đến tỷ giá hối đoái giữa các đồng tiền tệ của các quốc gia trên thế giới. Bộ dữ liệu này cung cấp thông tin về giá trị quy đổi của mỗi đồng tiền tệ so với đồng tiền tệ khác, thường được đo lường theo một đồng tiền tệ thị trường chung, thường là USD (Đô la Mỹ).

Một bộ dữ liệu phân tích về tỷ giá hối đoái có thể bao gồm các thông tin sau:

  • Thời gian: Ngày và thời điểm mà giá trị tỷ giá hối đoái được ghi nhận.

  • Cặp tiền tệ: Cặp các đồng tiền tệ được so sánh với nhau. Ví dụ: EUR/USD, GBP/JPY, AUD/CAD, vv.

  • Giá trị Bid và Ask: Giá trị mà người mua và người bán sẵn lòng mua và bán cặp tiền tệ. Bid thường là giá mà người mua sẵn lòng trả, còn Ask là giá mà người bán sẵn lòng nhận.

  • Giá cao nhất và giá thấp nhất: Giá cao nhất và giá thấp nhất mà cặp tiền tệ đã đạt được trong một khoảng thời gian nhất định.

  • Thay đổi giá: Sự biến động của giá so với phiên giao dịch trước đó, thường được tính bằng giá trị tuyệt đối hoặc phần trăm.

  • Thời gian giao dịch cuối cùng: Thời gian cuối cùng mà giá trị của cặp tiền tệ được cập nhật.

Bộ dữ liệu này cung cấp thông tin quan trọng giúp các nhà giao dịch, nhà đầu tư và nhà phân tích đánh giá tình hình thị trường và đưa ra quyết định giao dịch hoặc đầu tư. Nó cũng được sử dụng để dự báo xu hướng thị trường và đánh giá rủi ro trong các hoạt động tài chính.

2.1.2 Mô tả chi tiết

library(xlsx)
ntt <- read.xlsx("C:/Users/Ngo Trang/Documents/tiểu luận ngôn ngữ lập trình/file tiểu luận.xlsx", sheetIndex = 1, header = T)
dim(ntt)
## [1] 189   8

ntt là một bộ dữ liệu dạng excel cung cấp cho chúng ta những thông tin liên quan đến tỉ giá hối đoái hay còn gọi là tỷ lệ quy đổi giữa các đồng tiền với nhau qua các mốc thời gian , cụ thể là từ năm 2000 đến 2020 .Câu lệnh dim ở trên cho chúng ta biết được bộ dữ liệu ntt bao gồm 189 quan sát và 8 biến

Bộ dữ liệu ntt dùng để phân tích tỉ giá hối đoái của các quốc gia

  • EUR/USD : tỷ lệ quy đổi giữa hai đồng tiền EUR(Euro) và USD (Đô la Mỹ)

  • VND/USD : tỷ lệ quy đổi giữa hai đồng tiền VND(Việt Nam) và USD (Đô la Mỹ)

  • COP/USD : tỷ lệ quy đổi giữa hai đồng tiền COP(Peso Colombia) và USD (Đô la Mỹ)

  • GBP/USD : tỷ lệ quy đổi giữa hai đồng tiền GBP(Anh) và USD (Đô la Mỹ)

  • NZD/USD : tỷ lệ quy đổi giữa hai đồng tiền NZD(New Zealand) và USD (Đô la Mỹ)

  • JPY/USD : tỷ lệ quy đổi giữa hai đồng tiền JPY(Yên Nhật) và USD (Đô la Mỹ)

  • AUD/USD : tỷ lệ quy đổi giữa hai đồng tiền AUD(Đô la Úc) và USD (Đô la Mỹ)

  • CNY/USD : tỷ lệ quy đổi giữa hai đồng tiền CNY(Nhân dân tệ) và USD (Đô la Mỹ)

  • INR/USD : tỷ lệ quy đổi giữa hai đồng tiền INR(Ấn Độ) và USD (Đô la Mỹ)

length(ntt)
## [1] 8
names(ntt)
## [1] "Pair"   "Bid"    "Ask"    "High"   "Low"    "Chg."   "Chg..." "Time"

Bộ dữ liệu ntt bao gồm 8 biến và tên của các biến cụ thể là “Pair” , “Bid” , “Ask” , “High” , “Low” “Chg.” , “Chg.%” , “Time”. Đây là các thuộc tính thông tin thường được sử dụng trong giao dịch tài chính, đặc biệt là trong thị trường ngoại hối (Forex) hoặc thị trường chứng khoán. Dưới đây là giải thích chi tiết về mỗi thuộc tính:

  • Pair: Đây là cặp tiền tệ hoặc tài sản được giao dịch. Ví dụ, “EUR/USD” là cặp tiền tệ Euro và Đô la Mỹ.

  • Bid: Đây là giá mà bạn có thể bán cặp tiền tệ hoặc tài sản. Nó thường thấp hơn giá mua (ask).

  • Ask: Đây là giá mà bạn có thể mua cặp tiền tệ hoặc tài sản. Nó thường cao hơn giá bán (bid).

  • High: Đây là mức giá cao nhất mà cặp tiền tệ hoặc tài sản đã đạt được trong một khoảng thời gian nhất định.

  • Low: Đây là mức giá thấp nhất mà cặp tiền tệ hoặc tài sản đã đạt được trong một khoảng thời gian nhất định.

  • Chg. (Change): Đây là sự thay đổi về giá so với phiên giao dịch trước đó.

  • Chg. % (Change Percentage): Đây là phần trăm sự thay đổi về giá so với phiên giao dịch trước đó.

  • Time: Đây là thời gian giao dịch cuối cùng của cặp tiền tệ hoặc tài sản, thường được hiển thị dưới dạng thời gian GMT hoặc thời gian địa phương.

Các thuộc tính này cung cấp thông tin quan trọng về giá và biến động của các cặp tiền tệ hoặc tài sản trong thị trường tài chính.

Thống kê bộ dữ liệu ntt

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

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
Pair 0 1 7 8 0 9 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
Bid 0 1 21.12 34.29 0.48 0.73 2.59 21.44 121.32 ▇▁▁▁▁
Ask 0 1 20.39 33.60 0.48 0.74 2.84 22.13 121.32 ▇▁▁▁▁
High 0 1 21.84 35.29 0.50 0.78 2.83 22.82 124.15 ▇▁▁▁▁
Low 0 1 20.50 33.27 0.47 0.69 2.34 21.44 118.54 ▇▁▁▁▁
Chg. 0 1 0.01 0.07 -0.27 -0.02 0.01 0.04 0.36 ▁▃▇▁▁
Chg… 0 1 1.32 7.46 -27.00 -2.00 1.00 4.00 36.00 ▁▃▇▁▁
Time 0 1 2010.00 6.07 2000.00 2005.00 2010.00 2015.00 2020.00 ▇▆▆▆▆

chú thích

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

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

  • mean: giá trị trung bình

  • sd: độ lệch chuẩn

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

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

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

  • p75: phân vị thứ ba

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

  • hist: biểu đồ Histogram

2.2 Phân tích bộ dữ liệu dựa trên các giai đoạn

2.2.1 Tỷ giá hối đoái giai đoạn 2000-2010

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.4.4     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.0
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
gd1 <- ntt %>% filter(Time >=2000, Time <=2010)
dim(gd1)
## [1] 99  8

gd1 là một dữ liệu con được tách từ bộ dữ liệu ntt dựa trên biến Time với điều kiện Time >=2000, Time <=2010(thuộc giai đoạn từ 2000-2010) . Bộ dữ liệu gd1 bao gồm 99 quan sát và 8 biến

Tính toán các giá trị liên quan Mean, Median

gd1.1 <- gd1 %>% group_by(Pair) %>% summarise(mean_Bid= mean(Bid))
str(gd1.1)
## tibble [9 × 2] (S3: tbl_df/tbl/data.frame)
##  $ Pair    : chr [1:9] "AUD/USD " "CNY/USD" "COP/USD" "EUR/USD" ...
##  $ mean_Bid: num [1:9] 0.658 7.785 2.507 1.293 0.631 ...

gd1.1 được gán ở câu lệnh trên biểu thị giá trị trung bình của Bid (giá mà bạn có thể bán cặp tiền tệ hoặc tài sản) trong giai đoạn 1983-1993 được chia theo biến Pair

  • Giá trị trung bình của giá bán cặp tiền tệ AUD/USD trong giai đoạn 2000-2010 : 0.6579091 (USD)

  • Giá trị trung bình của giá bán cặp tiền tệ IND/USD trong giai đoạn 2000-2010 : 7.7854545 (USD)

  • Giá trị trung bình của giá bán cặp tiền tệ COP/USD trong giai đoạn 2000-2010 : 2.5069091 (USD)

  • Giá trị trung bình của giá bán cặp tiền tệ EUR/USD trong giai đoạn 2000-2010 : 1.2925455 (USD)

  • Giá trị trung bình của giá bán cặp tiền tệ GBP/USD trong giai đoạn 2000-2010 : 0.6310 (USD)

  • Giá trị trung bình của giá bán cặp tiền tệ INR/USDD trong giai đoạn 2000-2020 : 45.8054545 (USD)

  • Giá trị trung bình của giá bán cặp tiền tệ JPY/USD trong giai đoạn 2000-2020 : 104.9881818 (USD)

  • Giá trị trung bình của giá bán cặp tiền tệ NZD/USD trong giai đoạn 2000-2020 : 0.5513636 (USD)

  • Giá trị trung bình của giá bán cặp tiền tệ VND/USD trong giai đoạn 2000-2020 : 16.4290909 (USD)

Trong giai đoạn này giá trị trung bình của biến Bid theo cặp tiền tệ JPN/USD mang giá trị lớn nhất 104.9881818 (USD) do nhiều yếu tố tác động như tỉ lệ lãi suất (Lãi suất cao thu hút đầu tư, dẫn đến nhu cầu cao hơn về đồng tiền đó và giá trị đồng tiền tăng lên) , tăng trưởng kinh tế (Tăng trưởng kinh tế mạnh mẽ thường đi kèm với đồng tiền mạnh hơn), lãi suất (Lạm phát cao làm giảm sức mua của đồng tiền, dẫn đến giá trị đồng tiền thấp hơn) ,…

gd1.2 <- gd1 %>% group_by(Pair) %>% summarise(median_Ask= median(Ask))
str(gd1.2)
## tibble [9 × 2] (S3: tbl_df/tbl/data.frame)
##  $ Pair      : chr [1:9] "AUD/USD " "CNY/USD" "COP/USD" "EUR/USD" ...
##  $ median_Ask: num [1:9] 0.729 7.44 2.774 1.285 0.623 ...

gd1.2 được gán ở câu lệnh trên biểu thị giá trị trung vị của Ask (giá mà bạn có thể mua cặp tiền tệ hoặc tài sản) trong giai đoạn 1983-1993 được chia theo biến Pair

  • 50 % giá mua cặp tiền tệ AUD/USD trong giai đoạn 1983-1993 lớn hơn 0.729 (USD) , 50 % còn lại giá mua của cặp tiền tệ này nhỏ hơn 0.729 (USD)

  • 50 % giá mua cặp tiền tệ CNY/USD trong giai đoạn 1983-1993 lớn hơn 7.44 (USD) , 50 % còn lại giá mua của cặp tiền tệ này nhỏ hơn 7.44 (USD)

  • 50 % giá mua cặp tiền tệ COP/USD trong giai đoạn 1983-1993 lớn hơn 2.774 (USD) , 50 % còn lại giá mua của cặp tiền tệ này nhỏ hơn 2.5911818 (USD)

  • 50 % giá mua cặp tiền tệ EUR/USD trong giai đoạn 1983-1993 lớn hơn 1.285 (USD) , 50 % còn lại giá mua của cặp tiền tệ này nhỏ hơn 1.285 (USD)

  • 50 % giá mua cặp tiền tệ GBP/USD trong giai đoạn 1983-1993 lớn hơn 0.623 (USD) , 50 % còn lại giá mua của cặp tiền tệ này nhỏ hơn 0.6180909 (USD)

  • 50 % giá mua cặp tiền tệ INR/USD trong giai đoạn 1983-1993 lớn hơn 42.67 (USD) , 50 % còn lại giá mua của cặp tiền tệ này nhỏ hơn 42.67 (USD)

  • 50 % giá mua cặp tiền tệ JPY/USD trong giai đoạn 1983-1993 lớn hơn 102.92(USD) , 50 % còn lại giá mua của cặp tiền tệ này nhỏ hơn 102.92 (USD)

  • 50 % giá mua cặp tiền tệ NZD/USD trong giai đoạn 1983-1993 lớn hơn 0.623 (USD) , 50 % còn lại giá mua của cặp tiền tệ này nhỏ hơn 0.623 (USD)

  • 50 % giá mua cặp tiền tệ VND/USD trong giai đoạn 1983-1993 lớn hơn 16.8 (USD) , 50 % còn lại giá mua của cặp tiền tệ này nhỏ hơn 16.8 (USD)

Từ số liệu rút ra được ở gd1.2 ta có thể nhận xét rằng giá trị trung vị của các cặp tiền tệ trong giai đoạn này không đều nhau . Ví dụ như giá trị trung vị giá mua theo cặp tiền tệ JPY/USD mang giá trị lớn nhất 102.92 (USD) nhưng ngược lại giá trị trung vị giá mua của cặp tiền tệ NZD/USD lại mang giá trị nhỏ nhất 0.623(USD)

Những yếu tố ảnh hưởng đến sự không đồng đều này là do một vài yếu tó như :

  • Sự kiện kinh tế: Các sự kiện kinh tế quan trọng như công bố dữ liệu kinh tế, bầu cử, và thay đổi chính sách có thể ảnh hưởng đến giá mua của các cặp tiền tệ.

  • Thiên tai: Thiên tai có thể ảnh hưởng đến nền kinh tế và giá trị của các cặp tiền tệ.

  • Can thiệp của chính phủ: Chính phủ có thể can thiệp vào thị trường ngoại hối để ổn định giá trị đồng tiền của họ.

Biểu đồ phân tích Bid giai đoạn 2000-2010

ggplot(gd1, aes(x = Time, y = Bid, color = Pair)) +
  geom_line(linewidth= 1) +
  labs(x = "Năm", y = "Giá trị Bid", title = "ĐỒ THỊ I : So sánh giá bán các cặp tiền tệ  (2000 - 2010)") +
  theme_bw()

ĐỒ THỊ I :

  • Phân tích dựa trên bộ dữ liệu gd1 với trục x biểu diễn cho biến Time là các năm trong giai đoạn 2000-2010 , trục y biểu diễn cho biến Bid là giá bán của các cặp tiền tệ .Từ đồ thị ta có thể nhìn thấy giá bán của cặp tiền tệ theo thứ tự giảm dần là JPY/USD,INR/USD,VND/USD,CNY/USD,COP/USD và cuối cùng là các cặp tiền tệ có giá bán ngang nhau EUR/USD,NZD/USD,AUD/USD,GBP/USD.

  • Giá trị USD: Mạnh lên trong giai đoạn 2002-2008, Yếu đi trong giai đoạn 2008-2010 do khủng hoảng tài chính toàn cầu (Năm 2008: Khủng hoảng tài chính toàn cầu khiến USD yếu đi và các cặp tiền tệ khác tăng giá. Năm 2010: USD phục hồi sau khủng hoảng)

Biểu đồ phân tích Ask giai đoạn 2000-2010

ggplot(gd1, aes(x = Time, y = Ask, color = Pair)) +
  geom_line(linewidth= 1) +
  labs(x = "Năm", y = "Giá trị Ask", title = "ĐỒ THỊ II : So sánh giá mua của các cặp tiền tệ  (2000 - 2010)") +
  theme_bw()

ĐỒ THỊ II:

  • Phân tích dựa trên bộ dữ liệu gd1 với trục x biểu diễn cho biến Time là các năm trong giai đoạn 2000-2010 , trục y biểu diễn cho biến Ask là giá mua của các cặp tiền tệ .Từ đồ thị ta có thể nhìn thấy giá mua của cặp tiền tệ theo thứ tự giảm dần là JPY/USD,INR/USD,VND/USD,CNY/USD,COP/USD và cuối cùng là các cặp tiền tệ có giá mua ngang nhau EUR/USD,NZD/USD,AUD/USD,GBP/USD.

  • Giá trị USD: Mạnh lên trong giai đoạn 2002-2008, Yếu đi trong giai đoạn 2008-2010 do khủng hoảng tài chính toàn cầu (Năm 2008: Khủng hoảng tài chính toàn cầu khiến USD yếu đi và các cặp tiền tệ khác tăng giá. Năm 2010: USD phục hồi sau khủng hoảng)

  • Ngoại trừ cặp tiền tệ JPY/USD có nhiều sự biến đổi lớn qua các năm thì các cặp tiền tệ còn lại cũng có sự biến động nhưng không phải là quá lớn

2.2.2 Tỷ giá hối đoái giai đoạn 2010-2020

gd2 <- ntt %>% filter(Time >=2010, Time <=2020)
dim(gd2)
## [1] 99  8

gd2 là một dữ liệu con được tách từ bộ dữ liệu ntt dựa trên biến Time với điều kiện Time >=2010, Time <=2020(thuộc giai đoạn từ 2010-2020) . Bộ dữ liệu gd2 bao gồm 99 quan sát và 8 biến

Tính toán các giá trị liên quan Mean, Median

gd2.1 <- gd2 %>% group_by(Pair) %>% summarise(mean_Bid= mean(Bid))
str(gd2.1)
## tibble [9 × 2] (S3: tbl_df/tbl/data.frame)
##  $ Pair    : chr [1:9] "AUD/USD " "CNY/USD" "COP/USD" "EUR/USD" ...
##  $ mean_Bid: num [1:9] 0.76 6.518 2.673 1.311 0.674 ...

gd2.1 được gán ở câu lệnh trên biểu thị giá trị trung bình của Bid (giá mà bạn có thể bán cặp tiền tệ hoặc tài sản) trong giai đoạn 1983-1993 được chia theo biến Pair

  • Giá trị trung bình của giá bán cặp tiền tệ AUD/USD trong giai đoạn 2000-2010 : 0.7604545 (USD)

  • Giá trị trung bình của giá bán cặp tiền tệ IND/USD trong giai đoạn 2000-2010 : 6.5181818 (USD)

  • Giá trị trung bình của giá bán cặp tiền tệ COP/USD trong giai đoạn 2000-2010 : 2.6727273 (USD)

  • Giá trị trung bình của giá bán cặp tiền tệ EUR/USD trong giai đoạn 2000-2010 : 1.3111818 (USD)

  • Giá trị trung bình của giá bán cặp tiền tệ GBP/USD trong giai đoạn 2000-2010 : 0.6739091 (USD)

  • Giá trị trung bình của giá bán cặp tiền tệ INR/USDD trong giai đoạn 2000-2020 : 59.2563636 (USD)

  • Giá trị trung bình của giá bán cặp tiền tệ JPY/USD trong giai đoạn 2000-2020 : 104.3818182 (USD)

  • Giá trị trung bình của giá bán cặp tiền tệ NZD/USD trong giai đoạn 2000-2020 : 0.6891818 (USD)

  • Giá trị trung bình của giá bán cặp tiền tệ VND/USD trong giai đoạn 2000-2020 : 20.8572727 (USD)

Trong giai đoạn này giá trị trung bình của biến Bid theo cặp tiền tệ JPN/USD mang giá trị lớn nhất 104.3818182 (USD) do nhiều yếu tố tác động như tỉ lệ lãi suất (Lãi suất cao thu hút đầu tư, dẫn đến nhu cầu cao hơn về đồng tiền đó và giá trị đồng tiền tăng lên) , tăng trưởng kinh tế (Tăng trưởng kinh tế mạnh mẽ thường đi kèm với đồng tiền mạnh hơn), lãi suất (Lạm phát cao làm giảm sức mua của đồng tiền, dẫn đến giá trị đồng tiền thấp hơn) ,…

gd2.2 <- gd2%>% group_by(Pair) %>% summarise(median_Ask= median(Ask))
str(gd2.2)
## tibble [9 × 2] (S3: tbl_df/tbl/data.frame)
##  $ Pair      : chr [1:9] "AUD/USD " "CNY/USD" "COP/USD" "EUR/USD" ...
##  $ median_Ask: num [1:9] 0.781 6.63 3.012 1.13 0.671 ...

gd1.2 được gán ở câu lệnh trên biểu thị giá trị trung vị của Ask (giá mà bạn có thể mua cặp tiền tệ hoặc tài sản) trong giai đoạn 1983-1993 được chia theo biến Pair

  • 50 % giá mua cặp tiền tệ AUD/USD trong giai đoạn 1983-1993 lớn hơn 0.781 (USD) , 50 % còn lại giá mua của cặp tiền tệ này nhỏ hơn 0.781 (USD)

  • 50 % giá mua cặp tiền tệ CNY/USD trong giai đoạn 1983-1993 lớn hơn 6.630 (USD) , 50 % còn lại giá mua của cặp tiền tệ này nhỏ hơn 6.630 (USD)

  • 50 % giá mua cặp tiền tệ COP/USD trong giai đoạn 1983-1993 lớn hơn 3.012 (USD) , 50 % còn lại giá mua của cặp tiền tệ này nhỏ hơn 3.012 (USD)

  • 50 % giá mua cặp tiền tệ EUR/USD trong giai đoạn 1983-1993 lớn hơn 1.130 (USD) , 50 % còn lại giá mua của cặp tiền tệ này nhỏ hơn 1.130 (USD)

  • 50 % giá mua cặp tiền tệ GBP/USD trong giai đoạn 1983-1993 lớn hơn 0.671 (USD) , 50 % còn lại giá mua của cặp tiền tệ này nhỏ hơn 0.671 (USD)

  • 50 % giá mua cặp tiền tệ INR/USD trong giai đoạn 1983-1993 lớn hơn 47.040 (USD) , 50 % còn lại giá mua của cặp tiền tệ này nhỏ hơn 47.040 (USD)

  • 50 % giá mua cặp tiền tệ JPY/USD trong giai đoạn 1983-1993 lớn hơn 111.540(USD) , 50 % còn lại giá mua của cặp tiền tệ này nhỏ hơn 111.540 (USD)

  • 50 % giá mua cặp tiền tệ NZD/USD trong giai đoạn 1983-1993 lớn hơn 0.673 (USD) , 50 % còn lại giá mua của cặp tiền tệ này nhỏ hơn 0.673 (USD)

  • 50 % giá mua cặp tiền tệ VND/USD trong giai đoạn 1983-1993 lớn hơn 22.130 (USD) , 50 % còn lại giá mua của cặp tiền tệ này nhỏ hơn 22.130 (USD)

Từ số liệu rút ra được ở gd2.2 ta có thể nhận xét rằng giá trị trung vị của các cặp tiền tệ trong giai đoạn tăng hơn so với giai đoạn 2000-2010 và các giá trị trung vị này không đều nhau . Ví dụ như giá trị trung vị giá mua theo cặp tiền tệ JPY/USD mang giá trị lớn nhất 111.540 (USD) nhưng ngược lại giá trị trung vị giá mua của cặp tiền tệ GBP/USD lại mang giá trị nhỏ nhất 0.671(USD)

Những yếu tố ảnh hưởng đến sự không đồng đều này là do một vài yếu tó như :

  • Sự kiện kinh tế: Các sự kiện kinh tế quan trọng như công bố dữ liệu kinh tế, bầu cử, và thay đổi chính sách có thể ảnh hưởng đến giá mua của các cặp tiền tệ.

  • Thiên tai: Thiên tai có thể ảnh hưởng đến nền kinh tế và giá trị của các cặp tiền tệ.

  • Can thiệp của chính phủ: Chính phủ có thể can thiệp vào thị trường ngoại hối để ổn định giá trị đồng tiền của họ.

Biểu đồ phân tích Bid giai đoạn 2010-2020

ggplot(gd2, aes(x = Time, y = Bid, color = Pair)) +
  geom_line(linewidth= 1) +
  labs(x = "Năm", y = "Giá trị Bid", title = "ĐỒ THỊ III : So sánh giá bán các cặp tiền tệ  (2010 - 2020)") +
  theme_bw()

ĐỒ THỊ III :

  • Phân tích dựa trên bộ dữ liệu gd2 với trục x biểu diễn cho biến Time là các năm trong giai đoạn 2010-2020 , trục y biểu diễn cho biến Bid là giá bán của các cặp tiền tệ .Từ đồ thị ta có thể nhìn thấy giá bán của cặp tiền tệ theo thứ tự giảm dần là JPY/USD,INR/USD,VND/USD,CNY/USD,COP/USD và cuối cùng là các cặp tiền tệ có giá bán ngang nhau EUR/USD,NZD/USD,AUD/USD,GBP/USD.

  • Giá trị USD : Tăng giá trong giai đoạn 2010-2016.Yếu đi trong giai đoạn 2017-2020. Đây là lý do ảnh hưởng trực tiếp đến sự biến động giá bán của các cặp tiền tệ trong giai đoạn này

  • Hầu hết xu hướng giá bán của các cặp tiền tệ trong giai đoạn này đều có xu hướng tăng lên . Chúng ta có thể dễ dàng nhìn thấy giá trị giá bán của giai đoạn 2010-2020 (ĐỒ THỊ III) có mức giá trị lớn hơn so với giá trị giá bán của giai đoạn 2000-2010 (ĐỒ THỊ I)

Biểu đồ phân tích Ask giai đoạn 2010-2020

ggplot(gd2, aes(x = Time, y = Ask, color = Pair)) +
  geom_line(linewidth= 1) +
  labs(x = "Năm", y = "Giá trị Ask", title = "ĐỒ THỊ IV : So sánh giá mua của các cặp tiền tệ  (2010 - 2020)") +
  theme_bw()

ĐỒ THỊ IV:

  • Phân tích dựa trên bộ dữ liệu gd2 với trục x biểu diễn cho biến Time là các năm trong giai đoạn 2000-2010 , trục y biểu diễn cho biến Ask là giá mua của các cặp tiền tệ .Từ đồ thị ta có thể nhìn thấy giá mua của cặp tiền tệ theo thứ tự giảm dần là JPY/USD,INR/USD,VND/USD,CNY/USD,COP/USD và cuối cùng là các cặp tiền tệ có giá mua ngang nhau EUR/USD,NZD/USD,AUD/USD,GBP/USD.

  • Giá trị USD : Tăng giá trong giai đoạn 2010-2016.Yếu đi trong giai đoạn 2017-2020. Đây là lý do ảnh hưởng trực tiếp đến sự biến động giá bán của các cặp tiền tệ trong giai đoạn này

  • Hầu hết xu hướng giá bán của các cặp tiền tệ trong giai đoạn này đều có xu hướng tăng lên . Chúng ta có thể dễ dàng nhìn thấy giá trị giá bán của giai đoạn 2010-2020 (ĐỒ THỊ IV) có mức giá trị lớn hơn so với giá trị giá bán của giai đoạn 2000-2010 (ĐỒ THỊ II)

2.3 Phân tích cặp tiền tệ JPY/USD

Qua 4 đồ thị ở trên thì cặp tiền tệ JPY/USD có nhiều sự biến đổi nhất so với các cặp tiền tệ còn lại .Vì vậy để hiểu rõ hơn về những tác động đến tỷ giá hối đoái chúng ta sẽ tiếp tục phân tích đến tỉ giá hối đoái của cặp tiền tệ JPY/USD

2.3.1 phân tích JPY/USD giai đoạn 2000-2010

trang1 <- filter(ntt,Pair =='JPY/USD'& Time>=2000,Time<=2010)
trang1
Pair Bid Ask High Low Chg. Chg… Time
JPY/USD 104.75 105.15 107.15 101.15 0.00 0 2000
JPY/USD 102.38 108.32 103.73 99.54 -0.02 -2 2001
JPY/USD 98.73 116.92 100.32 96.92 -0.04 -4 2002
JPY/USD 105.15 117.54 107.54 102.73 0.07 7 2003
JPY/USD 108.32 112.31 110.15 106.54 0.03 3 2004
JPY/USD 116.92 102.92 119.32 114.54 0.08 8 2005
JPY/USD 117.54 99.15 120.73 114.92 0.01 1 2006
JPY/USD 112.31 93.73 116.15 108.54 -0.04 -4 2007
JPY/USD 102.92 85.15 106.73 99.15 -0.08 -8 2008
JPY/USD 97.54 80.15 101.32 93.73 -0.05 -5 2009
JPY/USD 88.31 91.73 91.54 85.15 -0.09 -9 2010
  • trang1 được lọc từ bộ dữ liệu ntt theo điều kiện của biến Pair chỉ chọn cặp tiền tệ có tên JPY/USD, theo điều kiện của biến Time chỉ chọn các năm năm trong giai đoạn 2000-2010.

  • Bộ dữ liệu trang1 bao gồm 11 quan sát và 8 biến

skim(trang1)
Table 2.2: Data summary
Name trang1
Number of rows 11
Number of columns 8
_______________________
Column type frequency:
character 1
numeric 7
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
Pair 0 1 7 7 0 1 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
Bid 0 1 104.99 8.65 88.31 100.56 104.75 110.32 117.54 ▂▃▇▂▆
Ask 0 1 101.19 12.48 80.15 92.73 102.92 110.32 117.54 ▅▅▂▇▇
High 0 1 107.70 8.69 91.54 102.53 107.15 113.15 120.73 ▂▃▇▂▆
Low 0 1 102.08 8.84 85.15 98.03 101.15 107.54 114.92 ▂▃▇▃▃
Chg. 0 1 -0.01 0.06 -0.09 -0.04 -0.02 0.02 0.08 ▅▇▇▂▅
Chg… 0 1 -1.18 5.60 -9.00 -4.50 -2.00 2.00 8.00 ▅▇▇▂▅
Time 0 1 2005.00 3.32 2000.00 2002.50 2005.00 2007.50 2010.00 ▇▅▅▅▅

Nhận xét Câu lệnh skim(trang1) cho chúng ta các giá trị liên quan đến bộ dữ liệu trang1

  • Giá trị trung bình của biến Bid (giá bán của các cặp tiền tệ) lớn gấp 3.7 lần giá trị trung bình của biến Ask (giá mua các cặp tiền tệ) trong giai đoạn 2000-2010 đây là mức chênh lệch cao

  • Một số nguyên nhân có thể dẫ đến sự chênh lệch này :

  • Lãi suất: Ví dụ Khi lãi suất ở Nhật Bản thấp hơn so với Việt Nam, nhu cầu mua JPY sẽ giảm down, dẫn đến giá bán JPY cao hơn.

  • Cán cân thanh toán quốc tế: Ví dụ Khi cán cân thanh toán quốc tế của Nhật Bản thặng dư, cung JPY sẽ tăng lên, dẫn đến giá bán JPY thấp hơn.

  • Tâm lý thị trường: Khi tâm lý thị trường bất ổn, nhu cầu mua JPY có thể thay đổi, dẫn đến biến động giá JPY.

Biểu đồ phân tích Bid giai đoạn 2000-2010

  ggplot(trang1,aes(x=Time, y=Bid)) +
  geom_col(fill='pink') +
  geom_line(color='blue', linewidth =1) +
  geom_text(aes(label = Bid),vjust = 5, color = 'black') +
  labs(title = "ĐỒ THỊ V : Giá bán của cặp tiền tệ JPY/USD trong giai đoạn 2000-2010") +
  labs(x = 'Năm', y = 'Giá trị Bid')

ĐỒ THỊ V :

  • Đồ thị phân tích dựa trên bộ dữ liệu trang1 với trục x là các năm trong giai đoạn 2000-2010 , trục y chỉ giá trị của biến Bid (giá bán của cặp tiền tệ)

  • Các giá trị của biến Bid giao động trong khoảng 88.31-117.54 và có một sự tăng giảm không đồng đều

-Giá trị Bid của JPY/USD biến động mạnh hơn so với các cặp tiền tệ khác như EUR/USD và GBP/USD.Điều này do JPY là một loại tiền tệ trú ẩn an toàn: Nhu cầu về JPY tăng cao trong thời kỳ bất ổn kinh tế.

-Giá trị Bid biến động mạnh trong giai đoạn này, chịu ảnh hưởng bởi nhiều yếu tố. Một số yếu tố chính: + Chính sách tiền tệ: Nhu cầu về USD tăng cao do chính sách nới lỏng tiền tệ của Cục Dự trữ Liên bang Hoa Kỳ (Fed).

  • Tăng trưởng kinh tế: Nền kinh tế Mỹ tăng trưởng mạnh hơn Nhật Bản trong giai đoạn này.

  • Căng thẳng địa chính trị: Các sự kiện như vụ tấn công 11/9 và cuộc khủng hoảng tài chính 2008 cũng ảnh hưởng đến giá trị Bid.

ggplot(trang1,aes(x=Time, y=Ask)) +
  geom_col(fill='skyblue') +
  geom_line(color='blue', linewidth =1) +
  geom_text(aes(label = Ask),vjust = 5, color = 'black') +
  labs(title = "ĐỒ THỊ VI : Giá mua của cặp tiền tệ JPY/USD trong giai đoạn 2000-2010") +
  labs(x = 'Năm', y = 'Giá trị Ask')

ĐỒ THỊ VI

Đồ thị phân tích dựa trên bộ dữ liệu trang1 với trục x là các năm trong giai đoạn 2010-2020 , trục y chỉ giá trị của biến Ask (giá mua của cặp tiền tệ)

  • Các giá trị của biến Ask giao động trong khoảng 80.15-117.54 và có một sự tăng giảm không đồng đều .Nhìn chung thì giá trị Ask của JPY/USD có xu hướng giảm trong giai đoạn 2002-2009

  • Trong giai đoạn này giá trị Ask cũng chịu những tác động bởi các yêu tố như giá trị Bid ở Đồ THỊ V

So sánh giá trị BidAsk giai đoạn 2000-2010

ggplot(trang1) +
  geom_line(aes(x = Time, y = Bid, color = "Bid")) +
  geom_line(aes(x = Time, y = Ask, color = "Ask")) +
  labs(title = "ĐỒ THỊ VII : So sánh Bid và Ask của JPY/USD giai đoạn 2000-2010", x = "Time", y = "Giá") +
   theme_bw()

ĐỒ THỊ VII

  • Đồ thị phân tích dựa trên bộ dữ liệu trang1 với trục x là các năm trong giai đoạn 2010-2020 , trục y chỉ giá trị của biến Bid,Ask (giá bán,giá mua của cặp tiền tệ)

  • Mức chênh lệch giữa giá bán và giá mua (spread) của JPY/USD thường dao động từ 0.5% đến 1.5% trong giai đoạn 2000-2010.

  • 2 đường biểu diễn cho giá bán và giá mua có sự tương quan với nhau .Trong giai đoạn 2000-2004 và năm 2010 giá mua luôn cao hơn so với giá bán , còn từ giai đoạn 2004-2009 thì ngược lại giá bán cao hơn giá mua .

  • Mức chênh lệch có thể cao hơn trong thời kỳ biến động thị trường cao, như sau các sự kiện như vụ tấn công 11/9 và cuộc khủng hoảng tài chính 2008.

  • Mức chênh lệch của JPY/USD thấp hơn so với các cặp tiền tệ mới nổi như USD/IDR và USD/BRL.Điều này do JPY là một loại tiền tệ chính và có thị trường giao dịch lớn.

2.3.2 phân tích JPY/USD giai đoạn 2010-2020

trang2 <- filter(ntt,Pair =='JPY/USD'& Time>=2010,Time<=2020)
trang2
Pair Bid Ask High Low Chg. Chg… Time
JPY/USD 88.31 91.73 91.54 85.15 -0.09 -9 2010
JPY/USD 82.92 102.15 85.73 80.15 -0.06 -6 2011
JPY/USD 94.31 112.73 97.54 91.73 0.14 14 2012
JPY/USD 102.15 121.32 105.92 98.31 0.08 8 2013
JPY/USD 112.73 106.92 116.54 109.15 0.10 10 2014
JPY/USD 121.32 111.54 124.15 118.54 0.08 8 2015
JPY/USD 106.92 113.15 110.73 103.15 -0.12 -12 2016
JPY/USD 111.54 108.54 115.32 107.73 0.04 4 2017
JPY/USD 113.15 114.54 117.92 108.31 0.01 1 2018
JPY/USD 108.54 114.92 112.32 104.73 -0.04 -4 2019
JPY/USD 106.31 108.54 109.54 102.92 -0.02 -2 2020
  • trang2 được lọc từ bộ dữ liệu ntt theo điều kiện của biến Pair chỉ chọn cặp tiền tệ có tên JPY/USD, theo điều kiện của biến Time chỉ chọn các năm năm trong giai đoạn 2010-2020.

  • Bộ dữ liệu trang2 bao gồm 11 quan sát và 8 biến

skim(trang2)
Table 2.3: Data summary
Name trang2
Number of rows 11
Number of columns 8
_______________________
Column type frequency:
character 1
numeric 7
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
Pair 0 1 7 7 0 1 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
Bid 0 1 104.38 11.57 82.92 98.23 106.92 112.14 121.32 ▂▁▁▇▁
Ask 0 1 109.64 7.75 91.73 107.73 111.54 113.84 121.32 ▂▂▅▇▂
High 0 1 107.93 11.81 85.73 101.73 110.73 115.93 124.15 ▃▂▂▇▆
Low 0 1 100.90 11.29 80.15 95.02 103.15 108.02 118.54 ▃▂▆▇▂
Chg. 0 1 0.01 0.08 -0.12 -0.05 0.01 0.08 0.14 ▅▇▂▇▅
Chg… 0 1 1.09 8.42 -12.00 -5.00 1.00 8.00 14.00 ▅▇▂▇▅
Time 0 1 2015.00 3.32 2010.00 2012.50 2015.00 2017.50 2020.00 ▇▅▅▅▅

Nhận xét Câu lệnh skim(trang2) cho chúng ta các giá trị liên quan đến bộ dữ liệu trang2

  • Giá trị trung bình của biến Bid (giá bán của các cặp tiền tệ) thấp hơn gấp 4.8 lần giá trị trung bình của biến Ask (giá mua các cặp tiền tệ) trong giai đoạn 2010-2020 . Chênh lệch 4.8% là tương đối cao: Mức chênh lệch này cho thấy sự chênh lệch lớn giữa giá mua và giá bán, thể hiện sự tin tưởng mạnh mẽ của nhà đầu tư vào USD so với JPY.

  • Một số nguyên nhân có thể dẫ đến sự chênh lệch này :

  • Nền kinh tế Mỹ tăng trưởng mạnh mẽ hơn Nhật Bản: Nền kinh tế Mỹ có tốc độ tăng trưởng cao hơn Nhật Bản trong suốt giai đoạn này, thu hút đầu tư nước ngoài và thúc đẩy nhu cầu USD.

  • Lãi suất USD cao hơn JPY: Lãi suất cao hơn khiến USD trở nên hấp dẫn hơn đối với nhà đầu tư, dẫn đến nhu cầu mua USD tăng cao.

  • Chính sách nới lỏng tiền tệ của Nhật Bản: Ngân hàng Trung ương Nhật Bản (BoJ) thực hiện chính sách nới lỏng tiền tệ mạnh mẽ, khiến JPY yếu đi so với USD.

  • Trong giai đoạn này, nhiều sự kiện bất ổn kinh tế toàn cầu xảy ra như khủng hoảng nợ châu Âu, chiến tranh thương mại Mỹ-Trung, v.v. khiến nhà đầu tư tìm kiếm các kênh đầu tư an toàn như USD.

  • Vai trò của JPY như một kênh trú ẩn an toàn: JPY cũng được xem là kênh trú ẩn an toàn trong thời kỳ bất ổn, tuy nhiên, sự hấp dẫn của JPY giảm đi do chính sách nới lỏng tiền tệ của BoJ.

Biểu đồ phân tích Bid giai đoạn 2010-2020

  ggplot(trang2,aes(x=Time, y=Bid)) +
  geom_col(fill='Salmon') +
  geom_line(color='black', linewidth =1) +
  geom_text(aes(label = Bid),vjust = 5, color = 'black') +
  labs(title = "ĐỒ THỊ VIII : Giá bán của cặp tiền tệ JPY/USD trong giai đoạn 2010-2020") +
  labs(x = 'Năm', y = 'Giá trị Bid')

ĐỒ THỊ VIII

  • Đồ thị phân tích dựa trên bộ dữ liệu trang2 với trục x là các năm trong giai đoạn 2010-2020 , trục y chỉ giá trị của biến Bid (giá bán của cặp tiền tệ)

  • Giá trị Bid giao động trong khoảng từ 82.92-121.32 .Mức chênh lệch giữ giá trị Bid lớn nhất và nhỏ nhất là 4.6% một khoảng cách tương đối lớn . Chúng ta có thể dễ dàng nhận ra trong giai đoạn 2011-2015 thì giá trị Bid tăng những giai đoạn còn lại giá trị Bid có xu hướng giảm mạnh

  • Các yếu tố ảnh hưởng :

  • Nền kinh tế Mỹ tăng trưởng mạnh mẽ hơn Nhật Bản, thu hút đầu tư nước ngoài và thúc đẩy nhu cầu USD.Nhật Bản thực hiện chính sách nới lỏng tiền tệ, khiến JPY yếu đi.

  • Nhu cầu trú ẩn an toàn trong các sự kiện bất ổn kinh tế toàn cầu khiến USD tăng giá. Vai trò trú ẩn an toàn của JPY giảm đi do chính sách nới lỏng tiền tệ của BoJ.

  • Cán cân thương mại xuất siêu của Nhật Bản khiến JPY dồi dào trên thị trường, gây áp lực lên giá JPY. Dòng vốn đầu tư chảy vào Nhật Bản do thị trường chứng khoán tăng trưởng cũng góp phần làm JPY yếu đi.

Biểu đồ phân tích Ask giai đoạn 2010-2020

ggplot(trang2,aes(x=Time, y=Ask)) +
  geom_col(fill='green') +
  geom_line(color='blue', linewidth =1) +
  geom_text(aes(label = Ask),vjust = 5, color = 'black') +
  labs(title = "ĐỒ THỊ IX : Giá mua của cặp tiền tệ JPY/USD trong giai đoạn 2010-2020") +
  labs(x = 'Năm', y = 'Giá trị Ask')

ĐỒ THỊ IX

  • Đồ thị phân tích dựa trên bộ dữ liệu trang2 với trục x là các năm trong giai đoạn 2010-2020 , trục y chỉ giá trị của biến Ask (giá mua của cặp tiền tệ)

  • Giá trị Ask giao động trong khoảng từ 91.73-121.32 .Mức chênh lệch giữ giá trị Ask lớn nhất và nhỏ nhất là 3.2% .Giá mua JPY/USD tăng dần trong giai đoạn 2010-2020, thể hiện xu hướng JPY yếu đi so với USD.

-Giá mua JPY/USD trong giai đoạn 2010-2020 tăng dần do ảnh hưởng của nhiều yếu tố như nền kinh tế, chính sách tiền tệ, rủi ro toàn cầu, v.v. Nhu cầu USD cao và chính sách nới lỏng tiền tệ của Nhật Bản là những nguyên nhân chính cho xu hướng này

So sánh giá trị BidAsk giai đoạn 2010-2020

ggplot(trang2) +
  geom_line(aes(x = Time, y = Bid, color = "Bid")) +
  geom_line(aes(x = Time, y = Ask, color = "Ask")) +
  labs(title = "ĐỒ THỊ X : So sánh Bid và Ask của JPY/USD giai đoạn 2010-2020", x = "Time", y = "Giá") +
   theme_bw()

ĐỒ THỊ X

  • Đồ thị phân tích dựa trên bộ dữ liệu trang2 với trục x là các năm trong giai đoạn 2010-2020 , trục y chỉ giá trị của biến Bid,Ask (giá bán,giá mua của cặp tiền tệ)

  • Chênh lệch giá trung bình giữa giá mua và giá bán JPY/USD trong giai đoạn 2010-2020 là khoảng 0.5%.Chênh lệch giá có thể lên đến 2% trong các giai đoạn biến động mạnh.

  • Những nguyên nhân dân đến sự biến động mạnh của giá mua và giá bán của cặp tiền tệ JPY/USD trong giai đoạn 2000-2020: 2010-2012: Giá bán và giá mua JPY/USD biến động mạnh do ảnh hưởng của cuộc khủng hoảng tài chính toàn cầu.2013-2015: Giá bán và giá mua JPY/USD ổn định hơn do sự phục hồi của nền kinh tế toàn cầu.2016-2018: Giá bán và giá mua JPY/USD biến động mạnh do chính sách tiền tệ của Mỹ và Nhật Bản.2019-2020: Giá bán và giá mua JPY/USD biến động mạnh do ảnh hưởng của đại dịch COVID-19.

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


  • Biến động: Tỷ giá hối đoái giữa các quốc gia trong giai đoạn 2000-2020 có nhiều biến động, chịu ảnh hưởng bởi nhiều yếu tố như chính sách kinh tế, tình hình chính trị, và các sự kiện quốc tế. Xu hướng chung: USD (Đô la Mỹ) là đồng tiền mạnh nhất, có xu hướng tăng giá so với hầu hết các đồng tiền khác.

  • Yếu tố ảnh hưởng: Chính sách tiền tệ: Lãi suất cao thu hút đầu tư nước ngoài, dẫn đến tăng giá đồng tiền. Tình hình kinh tế: Nền kinh tế tăng trưởng mạnh thu hút đầu tư, dẫn đến tăng giá đồng tiền. Sự kiện quốc tế: Các sự kiện như khủng hoảng kinh tế, chiến tranh, thiên tai có thể ảnh hưởng mạnh đến tỷ giá hối đoái.

  • Ví dụ: Euro (EUR) suy yếu do khủng hoảng nợ Châu Âu.Yên Nhật (JPY) tăng giá do Nhật Bản có chính sách tiền tệ nới lỏng.Nhân dân tệ (CNY) tăng giá do Trung Quốc có tốc độ tăng trưởng kinh tế cao.Mỹ: USD tăng giá so với hầu hết các đồng tiền khác do nền kinh tế Mỹ tăng trưởng mạnh mẽ và chính sách tiền tệ nới lỏng.Châu Âu: EUR biến động mạnh do ảnh hưởng của cuộc khủng hoảng tài chính 2008 và cuộc khủng hoảng nợ Hy Lạp.Nhật Bản: JPY yếu đi do chính sách nới lỏng tiền tệ của BoJ.Châu Á: NDT tăng giá do sự phát triển mạnh mẽ của nền kinh tế Trung Quốc.

  • Tỷ giá hối đoái là một yếu tố quan trọng trong nền kinh tế, ảnh hưởng đến hoạt động xuất nhập khẩu, đầu tư, và du lịch. Việc theo dõi và dự đoán tỷ giá hối đoái là cần thiết cho các doanh nghiệp và nhà đầu tư.

-Tỷ giá hối đoái ảnh hưởng đến lợi nhuận của các doanh nghiệp xuất nhập khẩu.Tỷ giá hối đoái cũng ảnh hưởng đến lạm phát và lãi suất.Nhà đầu tư cần phân tích kỹ lưỡng tỷ giá hối đoái trước khi giao dịch ngoại hối

LS0tDQp0aXRsZTogIlBow6JuIHTDrWNoIHThu4kgZ2nDoSBo4buRaSDEkW/DoWkgY+G7p2EgY8OhYyBxdeG7kWMgZ2lhIHRyw6puIHRo4bq/IGdp4bubaSgyMDAwLTIwMjApICINCmF1dGhvcjogIk5n4buNIFRo4buLIFRyYW5nIg0KZGF0ZTogIjIwMjQtMDMtMjMiDQpvdXRwdXQ6DQogIGJvb2tkb3duOjpodG1sX2RvY3VtZW50MjoNCiAgICBkZl9wcmludDoga2FibGUNCiAgICB0b2M6IHRydWUNCiAgICBudW1iZXJfc2VjdGlvbnM6IHRydWUNCiAgICB0b2NfZmxvYXQ6DQogICAgICBjb2xsYXBzZWQ6IGZhbHNlDQogICAgY3NzOiB0aWV1bHVhbi5jc3MNCiAgICBjb2RlX2ZvbGRpbmc6IHNob3cNCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlDQogIGh0bWxfZG9jdW1lbnQ6DQogICAgdG9jOiB0cnVlDQogICAgdG9jX2RlcHRoOiAnMycNCiAgICBkZl9wcmludDogcGFnZWQNCi0tLQ0KYGBge2NzcyxlY2hvID0gRkFMU0V9DQpoMSB7Zm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7DQogICAgZm9udC1zaXplOiAzMnB4Ow0KICAgIGZvbnQtd2VpZ2h0OiBib2xkO30NCg0KaDIge2ZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOw0KICAgIGZvbnQtc2l6ZTogMjhweDt9DQoNCmgzIHtmb250LWZhbWlseTogIlRpbWVzIE5ldyBSb21hbiIsIFRpbWVzLCBzZXJpZjsNCiAgICBmb250LXNpemU6IDI0cHg7DQogICAgZm9udC1zdHlsZTogaXRhbGljO30NCg0KaDQge2ZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOw0KICAgIGZvbnQtc2l6ZTogMjBweDsNCiAgICBmb250LXN0eWxlOiBpdGFsaWM7fQ0KDQpib2R5IHtmb250LWZhbWlseTogIlRpbWVzIE5ldyBSb21hbiIsIFRpbWVzLCBzZXJpZjsNCiAgICAgIGZvbnQtc2l6ZTogMThweDt9DQogICAgICANCnA6bm90KGgxKTpub3QoaDIpOm5vdChoMyk6bm90KGg0KTpub3QoaDUpIHt0ZXh0LWluZGVudDogMmVtO30NCnAge3RleHQtYWxpZ246IGp1c3RpZnk7fS50b2NpZnktaGVhZGVyIHtmb250LXdlaWdodDogYm9sZDt9DQpgYGANCg0KIVtdKEM6L1VzZXJzL05nbyBUcmFuZy9Eb3dubG9hZHMvejUyNTk4NDcxMjMxODZfYWRlM2FjMzg2N2IwMmU3YjA4YjBlZmVkNDE2YjM5ZTEuanBnKQ0KDQoNCiMgKipDSMavxqBORyBJOiBHSeG7mkkgVEhJ4buGVSBDSFVORyoqDQoqKioNCg0KIyMgVOG7lW5nIHF1YW4gduG7gSBuZ8O0biBuZ+G7ryBs4bqtcCB0csOsbmggdHJvbmcgcGjDom4gdMOtY2ggZOG7ryBsaeG7h3UNCiMjIyBraMOhaSBuaeG7h20gbmfDtG4gbmfhu68gbOG6rXAgdHLDrG5oIHRyb25nIHBow6JuIHTDrWNoIGThu68gbGnhu4d1DQogTmfDtG4gbmfhu68gbOG6rXAgdHLDrG5oIHRyb25nIHBow6JuIHTDrWNoIGThu68gbGnhu4d1IGzDoCBt4buZdCBjw7RuZyBj4bulIG3huqFuaCBt4bq9IMSRxrDhu6NjIHPhu60gZOG7pW5nIMSR4buDIGtow6FtIHBow6EsIGhp4buDdSB2w6AgcsO6dCByYSB0aMO0bmcgdGluIHThu6sgY8OhYyB04bqtcCBk4buvIGxp4buHdSBs4bubbiB2w6AgcGjhu6ljIHThuqFwLiDEkMOieSBsw6AgbeG7mXQgY8O0bmcgY+G7pSBxdWFuIHRy4buNbmcgdHJvbmcgbMSpbmggduG7sWMga2hvYSBo4buNYyBk4buvIGxp4buHdSwgdGjhu5FuZyBrw6osIHbDoCBwaMOibiB0w61jaCBk4buvIGxp4buHdSwgdsOgIMSRw7NuZyB2YWkgdHLDsiBxdWFuIHRy4buNbmcgdHJvbmcgdmnhu4djIGjhu5cgdHLhu6MgcXV54bq/dCDEkeG7i25oIHRyb25nIG5oaeG7gXUgbMSpbmggduG7sWMga2jDoWMgbmhhdS4NCiANCiMjIyDEkOG6t2MgxJFp4buDbSBj4bunYSBuZ8O0biBuZ+G7ryBs4bqtcCB0csOsbmggdHJvbmcgcGjDom4gdMOtY2ggZOG7ryBsaeG7h3UNCg0KSOG7lyB0cuG7oyB0w61uaCB0b8OhbiB2w6AgeOG7rSBsw70gZOG7ryBsaeG7h3U6IE5nw7RuIG5n4buvIG7DoHkgY3VuZyBj4bqlcCBjw6FjIGPDtG5nIGPhu6UgdsOgIHRoxrAgdmnhu4duIMSR4buDIHRo4buxYyBoaeG7h24gY8OhYyBwaMOpcCB0w61uaCB0b8OhbiBwaOG7qWMgdOG6oXAgdsOgIHjhu60gbMO9IGThu68gbGnhu4d1LCBiYW8gZ+G7k20gY8OhYyBwaMOpcCB0b8OhbiB0aOG7kW5nIGvDqiwgYmnhu4N1IMSR4buTIGjDs2EsIHbDoCB44butIGzDvSB04bqtcCB0aW4uDQoNCi0gVGjGsCB2aeG7h24gcGhvbmcgcGjDujogTsOzIMSRaSBrw6htIHbhu5tpIG3hu5l0IGLhu5kgdGjGsCB2aeG7h24gcGhvbmcgcGjDuiBj4bunYSBjw6FjIGfDs2kgbeG7nyBy4buZbmcsIGN1bmcgY+G6pXAgY8OhYyBjaOG7qWMgbsSDbmcgdsOgIGPDtG5nIGPhu6UgY2hvIG5oaeG7gXUgbG/huqFpIHBow6JuIHTDrWNoIGThu68gbGnhu4d1LCB04burIHRo4buRbmcga8OqIGPGoSBi4bqjbiDEkeG6v24gbWFjaGluZSBsZWFybmluZyB2w6AgdmlzdWFsaXphdGlvbnMuDQotIFTGsMahbmcgdMOhYyB2w6AgdGjDrWNoIG5naGk6IEPDoWMgbcO0aSB0csaw4budbmcgdMOtbmggdG/DoW4gdMawxqFuZyB0w6FjIGxpbmggaG/huqF0IGNobyBwaMOpcCBuZ8aw4budaSBkw7luZyB0aOG7sWMgaGnhu4duIHRow60gbmdoaeG7h20sIMSRaeG7gXUgY2jhu4luaCBwaMOibiB0w61jaCB2w6AgdGjDrWNoIG5naGkgbmhhbmggY2jDs25nIHbhu5tpIGThu68gbGnhu4d1Lg0KLSBI4buXIHRy4bujIMSRYSBu4buBbiB04bqjbmc6IEPDoWMgbmfDtG4gbmfhu68gbsOgeSBob+G6oXQgxJHhu5luZyB0csOqbiBuaGnhu4F1IGjhu4cgxJFp4buBdSBow6BuaCBuaMawIFdpbmRvd3MsIG1hY09TIHbDoCBMaW51eCwgZ2nDunAgxJHhuqNtIGLhuqNvIHTDrW5oIGxpbmggaG/huqF0IHbDoCBz4bq1biBjw7MgY2hvIG5nxrDhu51pIGTDuW5nLg0KLSBD4buZbmcgxJHhu5NuZyB2w6AgaOG7lyB0cuG7ozogQ8OzIG3hu5l0IGPhu5luZyDEkeG7k25nIGzhu5tuIHbDoCDEkWEgZOG6oW5nIGPhu6dhIGPDoWMgbmjDoCBwaMOibiB0w61jaCBk4buvIGxp4buHdSB2w6AgbmjDoCBwaMOhdCB0cmnhu4NuLCBjdW5nIGPhuqVwIHTDoGkgbGnhu4d1LCBoxrDhu5tuZyBk4bqrbiB2w6AgaOG7lyB0cuG7oyBxdWEgY8OhYyBkaeG7hW4gxJHDoG4gdHLhu7FjIHR1eeG6v24gdsOgIGPhu5luZyDEkeG7k25nIG5nxrDhu51pIGTDuW5nLg0KDQojIyMg4buobmcgZOG7pW5nIG5nw7RuIG5n4buvIGzhuq1wIHRyw6xuaCB0cm9uZyBwaMOibiB0w61jaCBk4buvIGxp4buHdQ0KDQpQaMOibiB0w61jaCB2w6Aga2hhaSB0aMOhYyBk4buvIGxp4buHdTogUiDEkcaw4bujYyBz4butIGThu6VuZyBy4buZbmcgcsOjaSB0cm9uZyB2aeG7h2MgcGjDom4gdMOtY2ggdsOgIGtoYWkgdGjDoWMgZOG7ryBsaeG7h3UgdOG7qyBuaGnhu4F1IG5ndeG7k24ga2jDoWMgbmhhdSBuaMawIGPGoSBz4bufIGThu68gbGnhu4d1LCB04bqtcCB0aW4gdsSDbiBi4bqjbiwgdOG7h3AgRXhjZWwsIHbDoCBj4bqjIHRyYW5nIHdlYi4NClRo4buRbmcga8OqIHbDoCBtYWNoaW5lIGxlYXJuaW5nOiBSIGN1bmcgY+G6pXAgbeG7mXQgbG/huqF0IGPDoWMgZ8OzaSB2w6AgY2jhu6ljIG7Eg25nIGNobyBjw6FjIHBoxrDGoW5nIHBow6FwIHRo4buRbmcga8OqIGPGoSBi4bqjbiB2w6AgbsOibmcgY2FvLCBjxaluZyBuaMawIGNobyBtYWNoaW5lIGxlYXJuaW5nIHbDoCBjw6FjIHRodeG6rXQgdG/DoW4gaOG7jWMgbcOheS4NCkJp4buDdSDEkeG7kyBow7NhIHbDoCB0cuG7sWMgcXVhbiBow7NhIGThu68gbGnhu4d1OiBSIGPDsyBjw6FjIGfDs2kgbeG6oW5oIG3hur0gY2hvIHZp4buHYyB04bqhbyByYSBiaeG7g3UgxJHhu5MgdsOgIHRy4buxYyBxdWFuIGjDs2EgZOG7ryBsaeG7h3UsIGdpw7pwIGhp4buDdSByw7UgaMahbiB24buBIGThu68gbGnhu4d1IHbDoCBr4bq/dCBxdeG6oyBwaMOibiB0w61jaC4NClBow6F0IHRyaeG7g24g4bupbmcgZOG7pW5nIHbDoCBjw7RuZyBj4bulOiBSIGN1bmcgY+G6pXAgY8OhYyBjw7RuZyBj4bulIMSR4buDIHBow6F0IHRyaeG7g24gY8OhYyDhu6luZyBk4bulbmcgdsOgIGPDtG5nIGPhu6UgcGjDom4gdMOtY2ggZOG7ryBsaeG7h3UgcGjhu6ljIHThuqFwLCBiYW8gZ+G7k20gY8OhYyBnaWFvIGRp4buHbiDEkeG7kyBo4buNYSB2w6Agd2ViLg0KVuG7m2kgbmjhu69uZyDEkeG6t2MgxJFp4buDbSB2w6Ag4bupbmcgZOG7pW5nIMSRYSBk4bqhbmcsIFIgbMOgIG3hu5l0IG5nw7RuIG5n4buvIGzhuq1wIHRyw6xuaCBt4bqhbmggbeG6vSB2w6AgbGluaCBob+G6oXQgY2hvIHBow6JuIHTDrWNoIGThu68gbGnhu4d1IHbDoCBuZ2hpw6puIGPhu6l1IHRyb25nIG5oaeG7gXUgbMSpbmggduG7sWMga2jDoWMgbmhhdS4NCg0KIyMgR2nhu5tpIHRoaeG7h3UgduG6pW4gxJHhu4EgdGnhu4N1IGx14bqtbg0KIyMjIMSQ4bq3dCB24bqlbiDEkeG7gQ0KDQpUcm9uZyBi4buRaSBj4bqjbmggdG/DoG4gY+G6p3UgaMOzYSBuZ8OgeSBjw6BuZyBwaMOhdCB0cmnhu4NuLCB2aeG7h2MgcGjDom4gdMOtY2ggYmnhur9uIMSR4buZbmcgdOG7tyBnacOhIGjhu5FpIMSRb8OhaSBnaeG7r2EgY8OhYyBxdeG7kWMgZ2lhIGhv4bq3YyBraHUgduG7sWMgdHLhu58gdGjDoG5oIG3hu5l0IGtow61hIGPhuqFuaCBxdWFuIHRy4buNbmcgdHJvbmcgbMSpbmggduG7sWMgdMOgaSBjaMOtbmggdsOgIGtpbmggdOG6vy4gVHJvbmcgbsSDbSAyMDIzLCBtw7RpIHRyxrDhu51uZyBraW5oIGRvYW5oIHbDoCB0w6BpIGNow61uaCB0b8OgbiBj4bqndSDEkcOjIMSR4buRaSBt4bq3dCB24bubaSBuaGnhu4F1IHRow6FjaCB0aOG7qWMgdsOgIGJp4bq/biDEkeG7mW5nLCB04burIGThu4tjaCBi4buHbmggQ09WSUQtMTkgxJHhur9uIGJp4bq/biDEkeG7mW5nIGNow61uaCB0cuG7iyB2w6AgdGjhu4sgdHLGsOG7nW5nLg0KVGnhu4N1IGx14bqtbiBuw6B5IMSR4bq3dCByYSB24bqlbiDEkeG7gSB24buBIHZp4buHYyBwaMOibiB0w61jaCBiaeG6v24gxJHhu5luZyB04bu3IGdpw6EgaOG7kWkgxJFvw6FpIHRyb25nIG7Eg20gMjAyMywgdOG6rXAgdHJ1bmcgdsOgbyBz4buxIHRoYXkgxJHhu5VpIGPhu6dhIHThu7cgZ2nDoSBo4buRaSDEkW/DoWkgZ2nhu69hIGPDoWMgcXXhu5FjIGdpYSBob+G6t2Mga2h1IHbhu7FjIHRyw6puIHRo4bq/IGdp4bubaS4gTeG7pWMgdGnDqnUgY+G7p2EgbmdoacOqbiBj4bupdSBsw6AgaGnhu4N1IHLDtSBz4buxIGJp4bq/biDEkeG7mW5nIGPhu6dhIHThu7cgZ2nDoSBo4buRaSDEkW/DoWkgdHJvbmcgbsSDbSAyMDIzLCB4w6FjIMSR4buLbmggY8OhYyB54bq/dSB04buRIOG6o25oIGjGsOG7n25nIHbDoCB0w6FjIMSR4buZbmcgY+G7p2EgY2jDum5nIMSR4buRaSB24bubaSBu4buBbiBraW5oIHThur8gdG/DoG4gY+G6p3UuDQoNCi0gKirDnSBuZ2jEqWEgY+G7p2Egdmnhu4djIHBow6JuIHTDrWNoKiogDQoNClBow6JuIHTDrWNoIGJp4bq/biDEkeG7mW5nIHThu7cgZ2nDoSBo4buRaSDEkW/DoWkgdHJvbmcgbsSDbSAyMDIzIGtow7RuZyBjaOG7iSBnacO6cCBjaMO6bmcgdGEgaGnhu4N1IHLDtSB24buBIHPhu7EgdGhheSDEkeG7lWkgY+G7p2EgdOG7tyBnacOhIGjhu5FpIMSRb8OhaSBnaeG7r2EgY8OhYyBxdeG7kWMgZ2lhIGhv4bq3YyBraHUgduG7sWMsIG3DoCBjw7JuIGN1bmcgY+G6pXAgdGjDtG5nIHRpbiBxdWFuIHRy4buNbmcgduG7gSB0w6xuaCBow6xuaCBraW5oIHThur8gdsOgIHTDoGkgY2jDrW5oIHRvw6BuIGPhuqd1LiBC4bqxbmcgY8OhY2ggbsOgeSwgY2jDum5nIHRhIGPDsyB0aOG7gyDEkcOhbmggZ2nDoSB0w6FjIMSR4buZbmcgY+G7p2EgYmnhur9uIMSR4buZbmcgdOG7tyBnacOhIGjhu5FpIMSRb8OhaSDEkeG7kWkgduG7m2kgaG/huqF0IMSR4buZbmcgdGjGsMahbmcgbeG6oWksIMSR4bqndSB0xrAgdsOgIHTDoGkgY2jDrW5oLCDEkeG7k25nIHRo4budaSDEkeG7gSB4deG6pXQgY8OhYyBjaGnhur9uIGzGsOG7o2MgdsOgIGJp4buHbiBwaMOhcCBjaMOtbmggc8OhY2ggcGjDuSBo4bujcCDEkeG7gyDhu6luZyBwaMOzIHbhu5tpIHLhu6dpIHJvIHbDoCB04bqhbyByYSDhu5VuIMSR4buLbmggdHJvbmcgdGjhu4sgdHLGsOG7nW5nIHRvw6BuIGPhuqd1Lg0KDQojIyMgTeG7pWMgdGnDqnUgY+G7p2EgdGnhu4N1IGx14bqtbg0KDQpO4bqvbSB24buvbmcga2nhur9uIHRo4bupYyB24buBIHThu4kgZ2nDoSBo4buRaSDEkW/DoWk6IEhp4buDdSByw7UgduG7gSBraMOhaSBuaeG7h20sIGPGoSBjaOG6vyBob+G6oXQgxJHhu5luZyB2w6AgdmFpIHRyw7IgY+G7p2EgdOG7iSBnacOhIGjhu5FpIMSRb8OhaSB0cm9uZyBo4buHIHRo4buRbmcgdMOgaSBjaMOtbmggdsOgIGtpbmggdOG6vyB0b8OgbiBj4bqndS4NCi0gUGjDom4gdMOtY2ggYmnhur9uIMSR4buZbmcgdOG7iSBnacOhIGjhu5FpIMSRb8OhaTogVGjhu7FjIGhp4buHbiBwaMOibiB0w61jaCBzw6J1IHbhu4EgY8OhYyB54bq/dSB04buRIHbDoCB4dSBoxrDhu5tuZyDhuqNuaCBoxrDhu59uZyDEkeG6v24gc+G7sSBiaeG6v24gxJHhu5luZyBj4bunYSB04buJIGdpw6EgaOG7kWkgxJFvw6FpLCBiYW8gZ+G7k20gY+G6oyBjw6FjIHnhur91IHThu5Ega2luaCB04bq/LCBjaMOtbmggdHLhu4sgdsOgIHTDoGkgY2jDrW5oLg0KLSDEkMOhbmggZ2nDoSB0w6FjIMSR4buZbmcgY+G7p2EgYmnhur9uIMSR4buZbmcgdOG7iSBnacOhIGjhu5FpIMSRb8OhaTogxJDDoW5oIGdpw6EgdMOhYyDEkeG7mW5nIGPhu6dhIGJp4bq/biDEkeG7mW5nIHThu4kgZ2nDoSBo4buRaSDEkW/DoWkgxJHhu5FpIHbhu5tpIGhv4bqhdCDEkeG7mW5nIHRoxrDGoW5nIG3huqFpLCDEkeG6p3UgdMawLCB0w6BpIGNow61uaCB2w6Aga2luaCB04bq/IGPhu6dhIGPDoWMgcXXhu5FjIGdpYS9raHUgduG7sWMuDQotIEThu7EgxJFvw6FuIHbDoCDEkeG7gSB4deG6pXQgY2hp4bq/biBsxrDhu6NjOiBE4buxIMSRb8OhbiBjw6FjIHh1IGjGsOG7m25nIHbhu4EgYmnhur9uIMSR4buZbmcgdOG7iSBnacOhIGjhu5FpIMSRb8OhaSB0cm9uZyB0xrDGoW5nIGxhaSBk4buxYSB0csOqbiBjw6FjIHnhur91IHThu5Ega2luaCB04bq/LCBjaMOtbmggdHLhu4sgdsOgIHTDoGkgY2jDrW5oLCDEkeG7k25nIHRo4budaSDEkeG7gSB4deG6pXQgY8OhYyBjaGnhur9uIGzGsOG7o2MgdsOgIGJp4buHbiBwaMOhcCBjaMOtbmggc8OhY2ggcGjDuSBo4bujcCDEkeG7gyDhu6luZyBwaMOzIHbDoCB04bqhbyByYSDhu5VuIMSR4buLbmggdHJvbmcgdGjhu4sgdHLGsOG7nW5nIHRvw6BuIGPhuqd1Lg0KDQpUaMO0bmcgcXVhIHZp4buHYyDEkeG6oXQgxJHGsOG7o2Mgbmjhu69uZyBt4bulYyB0acOqdSBuw6B5LCB0aeG7g3UgbHXhuq1uIHPhur0gY3VuZyBj4bqlcCBjw6FpIG5ow6xuIHPDonUgcuG7mW5nIHbDoCBjaHV5w6puIHPDonUgduG7gSB04buJIGdpw6EgaOG7kWkgxJFvw6FpIHbDoCB2YWkgdHLDsiBxdWFuIHRy4buNbmcgY+G7p2EgbsOzIHRyb25nIGjhu4cgdGjhu5FuZyB0w6BpIGNow61uaCB2w6Aga2luaCB04bq/IHRvw6BuIGPhuqd1Lg0KDQojIyMgTMO9IGRvIGNo4buNbiBjaOG7pyDEkeG7gSB0aeG7g3UgbHXhuq1uDQoNCi0gUXVhbiB0cuG7jW5nIHRvw6BuIGPhuqd1OiBU4bu3IGdpw6EgaOG7kWkgxJFvw6FpIOG6o25oIGjGsOG7n25nIMSR4bq/biBt4buNaSBxdeG7kWMgZ2lhIHRyw6puIHRo4bq/IGdp4bubaSB2w6AgY8OzIOG6o25oIGjGsOG7n25nIGzhu5tuIMSR4bq/biBu4buBbiBraW5oIHThur8gdG/DoG4gY+G6p3UuIFZp4buHYyBoaeG7g3UgduG7gSBjw6FjIHnhur91IHThu5Eg4bqjbmggaMaw4bufbmcgxJHhur9uIHThu7cgZ2nDoSBo4buRaSDEkW/DoWkgY8OzIHRo4buDIGN1bmcgY+G6pXAgY8OhaSBuaMOsbiBzw6J1IHPhuq9jIHbhu4EgY8OhYyB4dSBoxrDhu5tuZyBraW5oIHThur8gdsOgIHTDoGkgY2jDrW5oIHRvw6BuIGPhuqd1Lg0KDQotIExpw6puIGvhur90IHbhu5tpIHRo4buLIHRyxrDhu51uZyB0w6BpIGNow61uaDogVOG7tyBnacOhIGjhu5FpIMSRb8OhaSB0aMaw4budbmcgbGnDqm4gcXVhbiBjaOG6t3QgY2jhur0gxJHhur9uIGPDoWMgdGjhu4sgdHLGsOG7nW5nIHTDoGkgY2jDrW5oIGtow6FjIG5oxrAgdGjhu4sgdHLGsOG7nW5nIGNo4bupbmcga2hvw6FuLCB0aOG7iyB0csaw4budbmcgaMOgbmcgaMOzYSB2w6AgdGjhu4sgdHLGsOG7nW5nIG7hu6MuIFBow6JuIHTDrWNoIHThu7cgZ2nDoSBo4buRaSDEkW/DoWkgY8OzIHRo4buDIGdpw7pwIGThu7EgxJFvw6FuIGPDoWMgYmnhur9uIMSR4buZbmcgdHJvbmcgY8OhYyB0aOG7iyB0csaw4budbmcgdMOgaSBjaMOtbmgga2jDoWMuDQoNCi0g4bqibmggaMaw4bufbmcgxJHhur9uIGtpbmggZG9hbmggdsOgIMSR4bqndSB0xrA6IERvIOG6o25oIGjGsOG7n25nIGPhu6dhIHThu7cgZ2nDoSBo4buRaSDEkW/DoWkgxJHhur9uIGPDoWMgZG9hbmggbmdoaeG7h3AgaG/huqF0IMSR4buZbmcgcXXhu5FjIHThur8gdsOgIGPDoWMgbmjDoCDEkeG6p3UgdMawIHF14buRYyB04bq/LCB2aeG7h2MgaGnhu4N1IHbhu4EgdOG7tyBnacOhIGjhu5FpIMSRb8OhaSBjw7MgdGjhu4MgZ2nDunAgcXXhuqNuIGzDvSBy4bunaSBybyB2w6AgdOG7kWkgxrB1IGjDs2EgbOG7o2kgbmh14bqtbiB0cm9uZyBjw6FjIGhv4bqhdCDEkeG7mW5nIGtpbmggZG9hbmggdsOgIMSR4bqndSB0xrAuDQoNCi0gQ2jDrW5oIHPDoWNoIGtpbmggdOG6vyB2w6AgdMOgaSBjaMOtbmg6IENow61uaCBzw6FjaCBj4bunYSBjw6FjIGPGoSBxdWFuIHTDoGkgY2jDrW5oIHbDoCBjaMOtbmggcGjhu6cgxJHhu5FpIHbhu5tpIHThu7cgZ2nDoSBo4buRaSDEkW/DoWkgY8OzIHRo4buDIGPDsyDhuqNuaCBoxrDhu59uZyBs4bubbiDEkeG6v24gbuG7gW4ga2luaCB04bq/IHbDoCB0w6BpIGNow61uaC4gUGjDom4gdMOtY2ggdOG7tyBnacOhIGjhu5FpIMSRb8OhaSBjw7MgdGjhu4MgZ2nDunAgaGnhu4N1IHLDtSBjw6FjIGJp4buHbiBwaMOhcCBjaMOtbmggc8OhY2ggdsOgIGThu7EgxJFvw6FuIGPDoWMgdGhheSDEkeG7lWkgdHJvbmcgY2jDrW5oIHPDoWNoIG7DoHkuDQoNCi0gQ8ahIGjhu5lpIMSR4bqndSB0xrAgdsOgIGdpYW8gZOG7i2NoOiBIaeG7g3UgYmnhur90IHbhu4EgdOG7tyBnacOhIGjhu5FpIMSRb8OhaSBjw7MgdGjhu4MgbeG7nyByYSBjxqEgaOG7mWkgY2hvIGPDoWMgbmjDoCDEkeG6p3UgdMawIHbDoCBuZ8aw4budaSBnaWFvIGThu4tjaCDEkeG7gyB0w6xtIGtp4bq/bSBs4bujaSBuaHXhuq1uIHThu6sgdmnhu4djIGThu7EgxJFvw6FuIHbDoCB0aGFtIGdpYSB2w6BvIGPDoWMgYmnhur9uIMSR4buZbmcgY+G7p2EgdGjhu4sgdHLGsOG7nW5nIHRp4buBbiB04buHLg0KDQpUw7NtIGzhuqFpLCBwaMOibiB0w61jaCB04bu3IGdpw6EgaOG7kWkgxJFvw6FpIGzDoCBt4buZdCBwaOG6p24gcXVhbiB0cuG7jW5nIGPhu6dhIG5naGnDqm4gY+G7qXUga2luaCB04bq/IHbDoCB0w6BpIGNow61uaCB2w6AgY8OzIHRo4buDIGN1bmcgY+G6pXAgY8OhaSBuaMOsbiByw7UgcsOgbmcgduG7gSBu4buBbiBraW5oIHThur8gdG/DoG4gY+G6p3UgdsOgIGPGoSBo4buZaSDEkeG6p3UgdMawDQoNCg0KIyAqKkNIxq/GoE5HIElJOiBQSMOCTiBUw41DSCBC4buYIEThu64gTEnhu4ZVKioNCioqKg0KDQojIyBNw7QgdOG6oyBi4buZIGThu68gbGnhu4d1DQoNCiMjIyBNw7QgdOG6oyBraMOhaSBxdcOhdA0KDQpC4buZIGThu68gbGnhu4d1IHBow6JuIHTDrWNoIHbhu4EgdOG7tyBnacOhIGjhu5FpIMSRb8OhaSBj4bunYSBjw6FjIHF14buRYyBnaWEgbMOgIG3hu5l0IHThuq1wIGjhu6NwIGPDoWMgZOG7ryBsaeG7h3UgbGnDqm4gcXVhbiDEkeG6v24gdOG7tyBnacOhIGjhu5FpIMSRb8OhaSBnaeG7r2EgY8OhYyDEkeG7k25nIHRp4buBbiB04buHIGPhu6dhIGPDoWMgcXXhu5FjIGdpYSB0csOqbiB0aOG6vyBnaeG7m2kuIELhu5kgZOG7ryBsaeG7h3UgbsOgeSBjdW5nIGPhuqVwIHRow7RuZyB0aW4gduG7gSBnacOhIHRy4buLIHF1eSDEkeG7lWkgY+G7p2EgbeG7l2kgxJHhu5NuZyB0aeG7gW4gdOG7hyBzbyB24bubaSDEkeG7k25nIHRp4buBbiB04buHIGtow6FjLCB0aMaw4budbmcgxJHGsOG7o2MgxJFvIGzGsOG7nW5nIHRoZW8gbeG7mXQgxJHhu5NuZyB0aeG7gW4gdOG7hyB0aOG7iyB0csaw4budbmcgY2h1bmcsIHRoxrDhu51uZyBsw6AgVVNEICjEkMO0IGxhIE3hu7kpLg0KDQpN4buZdCBi4buZIGThu68gbGnhu4d1IHBow6JuIHTDrWNoIHbhu4EgdOG7tyBnacOhIGjhu5FpIMSRb8OhaSBjw7MgdGjhu4MgYmFvIGfhu5NtIGPDoWMgdGjDtG5nIHRpbiBzYXU6DQoNCi0gVGjhu51pIGdpYW46IE5nw6B5IHbDoCB0aOG7nWkgxJFp4buDbSBtw6AgZ2nDoSB0cuG7iyB04bu3IGdpw6EgaOG7kWkgxJFvw6FpIMSRxrDhu6NjIGdoaSBuaOG6rW4uDQoNCi0gQ+G6t3AgdGnhu4FuIHThu4c6IEPhurdwIGPDoWMgxJHhu5NuZyB0aeG7gW4gdOG7hyDEkcaw4bujYyBzbyBzw6FuaCB24bubaSBuaGF1LiBWw60gZOG7pTogRVVSL1VTRCwgR0JQL0pQWSwgQVVEL0NBRCwgdnYuDQoNCi0gR2nDoSB0cuG7iyBCaWQgdsOgIEFzazogR2nDoSB0cuG7iyBtw6AgbmfGsOG7nWkgbXVhIHbDoCBuZ8aw4budaSBiw6FuIHPhurVuIGzDsm5nIG11YSB2w6AgYsOhbiBj4bq3cCB0aeG7gW4gdOG7hy4gQmlkIHRoxrDhu51uZyBsw6AgZ2nDoSBtw6AgbmfGsOG7nWkgbXVhIHPhurVuIGzDsm5nIHRy4bqjLCBjw7JuIEFzayBsw6AgZ2nDoSBtw6AgbmfGsOG7nWkgYsOhbiBz4bq1biBsw7JuZyBuaOG6rW4uDQoNCi0gR2nDoSBjYW8gbmjhuqV0IHbDoCBnacOhIHRo4bqlcCBuaOG6pXQ6IEdpw6EgY2FvIG5o4bqldCB2w6AgZ2nDoSB0aOG6pXAgbmjhuqV0IG3DoCBj4bq3cCB0aeG7gW4gdOG7hyDEkcOjIMSR4bqhdCDEkcaw4bujYyB0cm9uZyBt4buZdCBraG/huqNuZyB0aOG7nWkgZ2lhbiBuaOG6pXQgxJHhu4tuaC4NCg0KLSBUaGF5IMSR4buVaSBnacOhOiBT4buxIGJp4bq/biDEkeG7mW5nIGPhu6dhIGdpw6Egc28gduG7m2kgcGhpw6puIGdpYW8gZOG7i2NoIHRyxrDhu5tjIMSRw7MsIHRoxrDhu51uZyDEkcaw4bujYyB0w61uaCBi4bqxbmcgZ2nDoSB0cuG7iyB0dXnhu4d0IMSR4buRaSBob+G6t2MgcGjhuqduIHRyxINtLg0KDQotIFRo4budaSBnaWFuIGdpYW8gZOG7i2NoIGN14buRaSBjw7luZzogVGjhu51pIGdpYW4gY3Xhu5FpIGPDuW5nIG3DoCBnacOhIHRy4buLIGPhu6dhIGPhurdwIHRp4buBbiB04buHIMSRxrDhu6NjIGPhuq1wIG5o4bqtdC4NCg0KQuG7mSBk4buvIGxp4buHdSBuw6B5IGN1bmcgY+G6pXAgdGjDtG5nIHRpbiBxdWFuIHRy4buNbmcgZ2nDunAgY8OhYyBuaMOgIGdpYW8gZOG7i2NoLCBuaMOgIMSR4bqndSB0xrAgdsOgIG5ow6AgcGjDom4gdMOtY2ggxJHDoW5oIGdpw6EgdMOsbmggaMOsbmggdGjhu4sgdHLGsOG7nW5nIHbDoCDEkcawYSByYSBxdXnhur90IMSR4buLbmggZ2lhbyBk4buLY2ggaG/hurdjIMSR4bqndSB0xrAuIE7DsyBjxaluZyDEkcaw4bujYyBz4butIGThu6VuZyDEkeG7gyBk4buxIGLDoW8geHUgaMaw4bubbmcgdGjhu4sgdHLGsOG7nW5nIHbDoCDEkcOhbmggZ2nDoSBy4bunaSBybyB0cm9uZyBjw6FjIGhv4bqhdCDEkeG7mW5nIHTDoGkgY2jDrW5oLg0KDQojIyMgTcO0IHThuqMgY2hpIHRp4bq/dA0KYGBge3J9DQpsaWJyYXJ5KHhsc3gpDQpudHQgPC0gcmVhZC54bHN4KCJDOi9Vc2Vycy9OZ28gVHJhbmcvRG9jdW1lbnRzL3Rp4buDdSBsdeG6rW4gbmfDtG4gbmfhu68gbOG6rXAgdHLDrG5oL2ZpbGUgdGnhu4N1IGx14bqtbi54bHN4Iiwgc2hlZXRJbmRleCA9IDEsIGhlYWRlciA9IFQpDQpgYGANCg0KDQpgYGB7cn0NCmRpbShudHQpDQpgYGANCipudHQqIGzDoCBt4buZdCBi4buZIGThu68gbGnhu4d1IGThuqFuZyBleGNlbCBjdW5nIGPhuqVwIGNobyBjaMO6bmcgdGEgbmjhu69uZyB0aMO0bmcgdGluIGxpw6puIHF1YW4gxJHhur9uIHThu4kgZ2nDoSBo4buRaSDEkW/DoWkgaGF5IGPDsm4gZ+G7jWkgbMOgIHThu7cgbOG7hyBxdXkgxJHhu5VpIGdp4buvYSBjw6FjIMSR4buTbmcgdGnhu4FuIHbhu5tpIG5oYXUgcXVhIGPDoWMgbeG7kWMgdGjhu51pIGdpYW4gLCBj4bulIHRo4buDIGzDoCB04burIG7Eg20gMjAwMCDEkeG6v24gMjAyMCAuQ8OidSBs4buHbmggKmRpbSog4bufIHRyw6puIGNobyBjaMO6bmcgdGEgYmnhur90IMSRxrDhu6NjIGLhu5kgZOG7ryBsaeG7h3UgKm50dCogYmFvIGfhu5NtIDE4OSBxdWFuIHPDoXQgdsOgIDggYmnhur9uICANCg0KQuG7mSBk4buvIGxp4buHdSAqbnR0KiBkw7luZyDEkeG7gyBwaMOibiB0w61jaCB04buJIGdpw6EgaOG7kWkgxJFvw6FpIGPhu6dhIGPDoWMgcXXhu5FjIGdpYQ0KDQoNCi0gKkVVUi9VU0QqIDogdOG7tyBs4buHIHF1eSDEkeG7lWkgZ2nhu69hIGhhaSDEkeG7k25nIHRp4buBbiBFVVIoRXVybykgdsOgIFVTRCAoxJDDtCBsYSBN4bu5KQ0KDQotICpWTkQvVVNEKiA6IHThu7cgbOG7hyBxdXkgxJHhu5VpIGdp4buvYSBoYWkgxJHhu5NuZyB0aeG7gW4gVk5EKFZp4buHdCBOYW0pIHbDoCBVU0QgKMSQw7QgbGEgTeG7uSkNCg0KLSAqQ09QL1VTRCogOiB04bu3IGzhu4cgcXV5IMSR4buVaSBnaeG7r2EgaGFpIMSR4buTbmcgdGnhu4FuIENPUChQZXNvIENvbG9tYmlhKSB2w6AgVVNEICjEkMO0IGxhIE3hu7kpDQoNCi0gKkdCUC9VU0QqIDogdOG7tyBs4buHIHF1eSDEkeG7lWkgZ2nhu69hIGhhaSDEkeG7k25nIHRp4buBbiBHQlAoQW5oKSB2w6AgVVNEICjEkMO0IGxhIE3hu7kpDQoNCi0gKk5aRC9VU0QqIDogdOG7tyBs4buHIHF1eSDEkeG7lWkgZ2nhu69hIGhhaSDEkeG7k25nIHRp4buBbiBOWkQoTmV3IFplYWxhbmQpIHbDoCBVU0QgKMSQw7QgbGEgTeG7uSkNCg0KLSAqSlBZL1VTRCogOiB04bu3IGzhu4cgcXV5IMSR4buVaSBnaeG7r2EgaGFpIMSR4buTbmcgdGnhu4FuIEpQWShZw6puIE5o4bqtdCkgdsOgIFVTRCAoxJDDtCBsYSBN4bu5KQ0KDQotICpBVUQvVVNEKiA6IHThu7cgbOG7hyBxdXkgxJHhu5VpIGdp4buvYSBoYWkgxJHhu5NuZyB0aeG7gW4gQVVEKMSQw7QgbGEgw5pjKSB2w6AgVVNEICjEkMO0IGxhIE3hu7kpDQoNCi0gKkNOWS9VU0QqIDogdOG7tyBs4buHIHF1eSDEkeG7lWkgZ2nhu69hIGhhaSDEkeG7k25nIHRp4buBbiBDTlkoTmjDom4gZMOibiB04buHKSB2w6AgVVNEICjEkMO0IGxhIE3hu7kpDQoNCi0gKklOUi9VU0QqIDogdOG7tyBs4buHIHF1eSDEkeG7lWkgZ2nhu69hIGhhaSDEkeG7k25nIHRp4buBbiBJTlIo4bqkbiDEkOG7mSkgdsOgIFVTRCAoxJDDtCBsYSBN4bu5KQ0KDQoNCg0KYGBge3J9DQpsZW5ndGgobnR0KQ0KbmFtZXMobnR0KQ0KYGBgDQpC4buZIGThu68gbGnhu4d1ICpudHQqIGJhbyBn4buTbSA4IGJp4bq/biB2w6AgdMOqbiBj4bunYSBjw6FjIGJp4bq/biBj4bulIHRo4buDIGzDoCAiUGFpciIgLCAiQmlkIiAsICJBc2siICwgIkhpZ2giICwgIkxvdyIgICAgIkNoZy4iICwgIkNoZy4lIiAsICJUaW1lIi4gxJDDonkgbMOgIGPDoWMgdGh14buZYyB0w61uaCB0aMO0bmcgdGluIHRoxrDhu51uZyDEkcaw4bujYyBz4butIGThu6VuZyB0cm9uZyBnaWFvIGThu4tjaCB0w6BpIGNow61uaCwgxJHhurdjIGJp4buHdCBsw6AgdHJvbmcgdGjhu4sgdHLGsOG7nW5nIG5nb+G6oWkgaOG7kWkgKEZvcmV4KSBob+G6t2MgdGjhu4sgdHLGsOG7nW5nIGNo4bupbmcga2hvw6FuLiBExrDhu5tpIMSRw6J5IGzDoCBnaeG6o2kgdGjDrWNoIGNoaSB0aeG6v3QgduG7gSBt4buXaSB0aHXhu5ljIHTDrW5oOg0KDQotIFBhaXI6IMSQw6J5IGzDoCBj4bq3cCB0aeG7gW4gdOG7hyBob+G6t2MgdMOgaSBz4bqjbiDEkcaw4bujYyBnaWFvIGThu4tjaC4gVsOtIGThu6UsICJFVVIvVVNEIiBsw6AgY+G6t3AgdGnhu4FuIHThu4cgRXVybyB2w6AgxJDDtCBsYSBN4bu5Lg0KDQotIEJpZDogxJDDonkgbMOgIGdpw6EgbcOgIGLhuqFuIGPDsyB0aOG7gyBiw6FuIGPhurdwIHRp4buBbiB04buHIGhv4bq3YyB0w6BpIHPhuqNuLiBOw7MgdGjGsOG7nW5nIHRo4bqlcCBoxqFuIGdpw6EgbXVhIChhc2spLg0KDQotIEFzazogxJDDonkgbMOgIGdpw6EgbcOgIGLhuqFuIGPDsyB0aOG7gyBtdWEgY+G6t3AgdGnhu4FuIHThu4cgaG/hurdjIHTDoGkgc+G6o24uIE7DsyB0aMaw4budbmcgY2FvIGjGoW4gZ2nDoSBiw6FuIChiaWQpLg0KDQotIEhpZ2g6IMSQw6J5IGzDoCBt4bupYyBnacOhIGNhbyBuaOG6pXQgbcOgIGPhurdwIHRp4buBbiB04buHIGhv4bq3YyB0w6BpIHPhuqNuIMSRw6MgxJHhuqF0IMSRxrDhu6NjIHRyb25nIG3hu5l0IGtob+G6o25nIHRo4budaSBnaWFuIG5o4bqldCDEkeG7i25oLg0KDQotIExvdzogxJDDonkgbMOgIG3hu6ljIGdpw6EgdGjhuqVwIG5o4bqldCBtw6AgY+G6t3AgdGnhu4FuIHThu4cgaG/hurdjIHTDoGkgc+G6o24gxJHDoyDEkeG6oXQgxJHGsOG7o2MgdHJvbmcgbeG7mXQga2hv4bqjbmcgdGjhu51pIGdpYW4gbmjhuqV0IMSR4buLbmguDQoNCi0gQ2hnLiAoQ2hhbmdlKTogxJDDonkgbMOgIHPhu7EgdGhheSDEkeG7lWkgduG7gSBnacOhIHNvIHbhu5tpIHBoacOqbiBnaWFvIGThu4tjaCB0csaw4bubYyDEkcOzLg0KDQotIENoZy4gJSAoQ2hhbmdlIFBlcmNlbnRhZ2UpOiDEkMOieSBsw6AgcGjhuqduIHRyxINtIHPhu7EgdGhheSDEkeG7lWkgduG7gSBnacOhIHNvIHbhu5tpIHBoacOqbiBnaWFvIGThu4tjaCB0csaw4bubYyDEkcOzLg0KDQotIFRpbWU6IMSQw6J5IGzDoCB0aOG7nWkgZ2lhbiBnaWFvIGThu4tjaCBjdeG7kWkgY8O5bmcgY+G7p2EgY+G6t3AgdGnhu4FuIHThu4cgaG/hurdjIHTDoGkgc+G6o24sIHRoxrDhu51uZyDEkcaw4bujYyBoaeG7g24gdGjhu4sgZMaw4bubaSBk4bqhbmcgdGjhu51pIGdpYW4gR01UIGhv4bq3YyB0aOG7nWkgZ2lhbiDEkeG7i2EgcGjGsMahbmcuDQoNCkPDoWMgdGh14buZYyB0w61uaCBuw6B5IGN1bmcgY+G6pXAgdGjDtG5nIHRpbiBxdWFuIHRy4buNbmcgduG7gSBnacOhIHbDoCBiaeG6v24gxJHhu5luZyBj4bunYSBjw6FjIGPhurdwIHRp4buBbiB04buHIGhv4bq3YyB0w6BpIHPhuqNuIHRyb25nIHRo4buLIHRyxrDhu51uZyB0w6BpIGNow61uaC4NCg0KKipUaOG7kW5nIGvDqiBi4buZIGThu68gbGnhu4d1ICpudHQqKioNCg0KDQpgYGB7cn0NCmxpYnJhcnkoc2tpbXIpDQpza2ltKG50dCkNCmBgYA0KKipjaMO6IHRow61jaCoqDQoNCi0gbl9taXNzaW5nOiBz4buRIMO0IGThu68gbGnhu4d1IGLhu4sgbWlzcyh0cuG7kW5nKQ0KDQotIGNvbXBsZXRlX3JhdGU6IHThu7cgbOG7hyDDtCBjw7MgZOG7ryBsaeG7h3UNCg0KLSBtZWFuOiBnacOhIHRy4buLIHRydW5nIGLDrG5oDQoNCi0gc2Q6IMSR4buZIGzhu4djaCBjaHXhuqluDQoNCi0gcDA6IGdpw6EgdHLhu4sgbmjhu48gbmjhuqV0DQoNCi0gcDI1OiBQaMOibiB24buLIHRo4bupIG5o4bqldA0KDQotIHA1MDogUGjDom4gduG7iyB0aOG7qSBoYWkgY8WpbmcgY2jDrW5oIGzDoCB0cnVuZyB24buLDQoNCi0gcDc1OiBwaMOibiB24buLIHRo4bupIGJhDQoNCi0gcDEwMDogZ2nDoSB0cuG7iyBs4bubbiBuaOG6pXQNCg0KLSBoaXN0OiBiaeG7g3UgxJHhu5MgSGlzdG9ncmFtDQoNCiMjIFBow6JuIHTDrWNoIGLhu5kgZOG7ryBsaeG7h3UgZOG7sWEgdHLDqm4gY8OhYyBnaWFpIMSRb+G6oW4NCg0KIyMjIFThu7cgZ2nDoSBo4buRaSDEkW/DoWkgZ2lhaSDEkW/huqFuIDIwMDAtMjAxMA0KDQoNCmBgYHtyfQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpnZDEgPC0gbnR0ICU+JSBmaWx0ZXIoVGltZSA+PTIwMDAsIFRpbWUgPD0yMDEwKQ0KZGltKGdkMSkNCmBgYA0KDQoqZ2QxKiBsw6AgbeG7mXQgZOG7ryBsaeG7h3UgY29uIMSRxrDhu6NjIHTDoWNoIHThu6sgYuG7mSBk4buvIGxp4buHdSAqbnR0KiBk4buxYSB0csOqbiBiaeG6v24gKlRpbWUqIHbhu5tpIMSRaeG7gXUga2nhu4duICpUaW1lID49MjAwMCwgVGltZSA8PTIwMTAqKHRodeG7mWMgZ2lhaSDEkW/huqFuIHThu6sgMjAwMC0yMDEwKSAuIELhu5kgZOG7ryBsaeG7h3UgKmdkMSogYmFvIGfhu5NtIDk5IHF1YW4gc8OhdCB2w6AgOCBiaeG6v24NCg0KKipUw61uaCB0b8OhbiBjw6FjIGdpw6EgdHLhu4sgbGnDqm4gcXVhbiAqTWVhbiosICpNZWRpYW4qICoqDQoNCmBgYHtyfQ0KZ2QxLjEgPC0gZ2QxICU+JSBncm91cF9ieShQYWlyKSAlPiUgc3VtbWFyaXNlKG1lYW5fQmlkPSBtZWFuKEJpZCkpDQpzdHIoZ2QxLjEpDQpgYGANCg0KKmdkMS4xKiDEkcaw4bujYyBnw6FuIOG7nyBjw6J1IGzhu4duaCB0csOqbiBiaeG7g3UgdGjhu4sgZ2nDoSB0cuG7iyB0cnVuZyBiw6xuaCBj4bunYSAqQmlkKiAoZ2nDoSBtw6AgYuG6oW4gY8OzIHRo4buDIGLDoW4gY+G6t3AgdGnhu4FuIHThu4cgaG/hurdjIHTDoGkgc+G6o24pIHRyb25nIGdpYWkgxJFv4bqhbiAxOTgzLTE5OTMgxJHGsOG7o2MgY2hpYSB0aGVvIGJp4bq/biAqUGFpciogDQoNCi0gR2nDoSB0cuG7iyB0cnVuZyBiw6xuaCBj4bunYSBnacOhIGLDoW4gY+G6t3AgdGnhu4FuIHThu4cgKkFVRC9VU0QqIHRyb25nIGdpYWkgxJFv4bqhbiAyMDAwLTIwMTAgIDogMC42NTc5MDkxICAoVVNEKQ0KDQotIEdpw6EgdHLhu4sgdHJ1bmcgYsOsbmggY+G7p2EgZ2nDoSBiw6FuIGPhurdwIHRp4buBbiB04buHICpJTkQvVVNEKiB0cm9uZyBnaWFpIMSRb+G6oW4gMjAwMC0yMDEwICA6IDcuNzg1NDU0NSAgKFVTRCkNCg0KLSBHacOhIHRy4buLIHRydW5nIGLDrG5oIGPhu6dhIGdpw6EgYsOhbiBj4bq3cCB0aeG7gW4gdOG7hyAqQ09QL1VTRCogdHJvbmcgZ2lhaSDEkW/huqFuIDIwMDAtMjAxMCAgOiAyLjUwNjkwOTEgIChVU0QpDQoNCi0gR2nDoSB0cuG7iyB0cnVuZyBiw6xuaCBj4bunYSBnacOhIGLDoW4gY+G6t3AgdGnhu4FuIHThu4cgKkVVUi9VU0QqIHRyb25nIGdpYWkgxJFv4bqhbiAyMDAwLTIwMTAgIDogMS4yOTI1NDU1ICAoVVNEKQ0KDQotIEdpw6EgdHLhu4sgdHJ1bmcgYsOsbmggY+G7p2EgZ2nDoSBiw6FuIGPhurdwIHRp4buBbiB04buHICpHQlAvVVNEICogdHJvbmcgZ2lhaSDEkW/huqFuIDIwMDAtMjAxMCAgOiAwLjYzMTAgICAgKFVTRCkNCg0KLSBHacOhIHRy4buLIHRydW5nIGLDrG5oIGPhu6dhIGdpw6EgYsOhbiBj4bq3cCB0aeG7gW4gdOG7hyAqSU5SL1VTREQqIHRyb25nIGdpYWkgxJFv4bqhbiAyMDAwLTIwMjAgIDogNDUuODA1NDU0NSAoVVNEKQ0KDQotIEdpw6EgdHLhu4sgdHJ1bmcgYsOsbmggY+G7p2EgZ2nDoSBiw6FuIGPhurdwIHRp4buBbiB04buHICpKUFkvVVNEKiB0cm9uZyBnaWFpIMSRb+G6oW4gMjAwMC0yMDIwICA6IDEwNC45ODgxODE4ICAoVVNEKQ0KDQotIEdpw6EgdHLhu4sgdHJ1bmcgYsOsbmggY+G7p2EgZ2nDoSBiw6FuIGPhurdwIHRp4buBbiB04buHICpOWkQvVVNEKiB0cm9uZyBnaWFpIMSRb+G6oW4gMjAwMC0yMDIwICA6IDAuNTUxMzYzNiAgKFVTRCkNCg0KLSBHacOhIHRy4buLIHRydW5nIGLDrG5oIGPhu6dhIGdpw6EgYsOhbiBj4bq3cCB0aeG7gW4gdOG7hyAqVk5EL1VTRCogdHJvbmcgZ2lhaSDEkW/huqFuIDIwMDAtMjAyMCAgOiAxNi40MjkwOTA5IChVU0QpDQoNClRyb25nIGdpYWkgxJFv4bqhbiBuw6B5IGdpw6EgdHLhu4sgdHJ1bmcgYsOsbmggY+G7p2EgYmnhur9uICpCaWQqIHRoZW8gY+G6t3AgdGnhu4FuIHThu4cgKkpQTi9VU0QqIG1hbmcgZ2nDoSB0cuG7iyBs4bubbiBuaOG6pXQgKjEwNC45ODgxODE4KiAoVVNEKSBkbyBuaGnhu4F1IHnhur91IHThu5EgdMOhYyDEkeG7mW5nIG5oxrAgdOG7iSBs4buHIGzDo2kgc3XhuqV0IChMw6NpIHN14bqldCBjYW8gdGh1IGjDunQgxJHhuqd1IHTGsCwgZOG6q24gxJHhur9uIG5odSBj4bqndSBjYW8gaMahbiB24buBIMSR4buTbmcgdGnhu4FuIMSRw7MgdsOgIGdpw6EgdHLhu4sgxJHhu5NuZyB0aeG7gW4gdMSDbmcgbMOqbikgLCB0xINuZyB0csaw4bufbmcga2luaCB04bq/IChUxINuZyB0csaw4bufbmcga2luaCB04bq/IG3huqFuaCBt4bq9IHRoxrDhu51uZyDEkWkga8OobSB24bubaSDEkeG7k25nIHRp4buBbiBt4bqhbmggaMahbiksIGzDo2kgc3XhuqV0IChM4bqhbSBwaMOhdCBjYW8gbMOgbSBnaeG6o20gc+G7qWMgbXVhIGPhu6dhIMSR4buTbmcgdGnhu4FuLCBk4bqrbiDEkeG6v24gZ2nDoSB0cuG7iyDEkeG7k25nIHRp4buBbiB0aOG6pXAgaMahbikgLC4uLg0KDQpgYGB7cn0NCmdkMS4yIDwtIGdkMSAlPiUgZ3JvdXBfYnkoUGFpcikgJT4lIHN1bW1hcmlzZShtZWRpYW5fQXNrPSBtZWRpYW4oQXNrKSkNCnN0cihnZDEuMikNCmBgYA0KKmdkMS4yKiDEkcaw4bujYyBnw6FuIOG7nyBjw6J1IGzhu4duaCB0csOqbiBiaeG7g3UgdGjhu4sgZ2nDoSB0cuG7iyB0cnVuZyB24buLIGPhu6dhICpBc2sqIChnacOhIG3DoCBi4bqhbiBjw7MgdGjhu4MgbXVhIGPhurdwIHRp4buBbiB04buHIGhv4bq3YyB0w6BpIHPhuqNuKSB0cm9uZyBnaWFpIMSRb+G6oW4gMTk4My0xOTkzIMSRxrDhu6NjIGNoaWEgdGhlbyBiaeG6v24gKlBhaXIqIA0KDQotIDUwICUgZ2nDoSBtdWEgY+G6t3AgdGnhu4FuIHThu4cgKkFVRC9VU0QgKiB0cm9uZyBnaWFpIMSRb+G6oW4gMTk4My0xOTkzIGzhu5tuIGjGoW4gMC43MjkgKFVTRCkgLCA1MCAlIGPDsm4gbOG6oWkgZ2nDoSBtdWEgY+G7p2EgY+G6t3AgdGnhu4FuIHThu4cgbsOgeSBuaOG7jyBoxqFuIDAuNzI5IChVU0QpDQoNCi0gNTAgJSBnacOhIG11YSBj4bq3cCB0aeG7gW4gdOG7hyAqQ05ZL1VTRCogdHJvbmcgZ2lhaSDEkW/huqFuIDE5ODMtMTk5MyBs4bubbiBoxqFuIDcuNDQgKFVTRCkgLCA1MCAlIGPDsm4gbOG6oWkgZ2nDoSBtdWEgY+G7p2EgY+G6t3AgdGnhu4FuIHThu4cgbsOgeSBuaOG7jyBoxqFuIDcuNDQgKFVTRCkNCg0KLSA1MCAlIGdpw6EgbXVhIGPhurdwIHRp4buBbiB04buHICpDT1AvVVNEKiB0cm9uZyBnaWFpIMSRb+G6oW4gMTk4My0xOTkzIGzhu5tuIGjGoW4gMi43NzQgKFVTRCkgLCA1MCAlIGPDsm4gbOG6oWkgZ2nDoSBtdWEgY+G7p2EgY+G6t3AgdGnhu4FuIHThu4cgbsOgeSBuaOG7jyBoxqFuIDIuNTkxMTgxOCAoVVNEKQ0KDQotIDUwICUgZ2nDoSBtdWEgY+G6t3AgdGnhu4FuIHThu4cgKkVVUi9VU0QqIHRyb25nIGdpYWkgxJFv4bqhbiAxOTgzLTE5OTMgbOG7m24gaMahbiAxLjI4NSAoVVNEKSAsIDUwICUgY8OybiBs4bqhaSBnacOhIG11YSBj4bunYSBj4bq3cCB0aeG7gW4gdOG7hyBuw6B5IG5o4buPIGjGoW4gMS4yODUgKFVTRCkNCg0KLSA1MCAlIGdpw6EgbXVhIGPhurdwIHRp4buBbiB04buHICpHQlAvVVNEKiB0cm9uZyBnaWFpIMSRb+G6oW4gMTk4My0xOTkzIGzhu5tuIGjGoW4gMC42MjMgKFVTRCkgLCA1MCAlIGPDsm4gbOG6oWkgZ2nDoSBtdWEgY+G7p2EgY+G6t3AgdGnhu4FuIHThu4cgbsOgeSBuaOG7jyBoxqFuIDAuNjE4MDkwOSAoVVNEKQ0KDQotIDUwICUgZ2nDoSBtdWEgY+G6t3AgdGnhu4FuIHThu4cgKklOUi9VU0QqIHRyb25nIGdpYWkgxJFv4bqhbiAxOTgzLTE5OTMgbOG7m24gaMahbiA0Mi42NyAoVVNEKSAsIDUwICUgY8OybiBs4bqhaSBnacOhIG11YSBj4bunYSBj4bq3cCB0aeG7gW4gdOG7hyBuw6B5IG5o4buPIGjGoW4gNDIuNjcgKFVTRCkNCg0KLSA1MCAlIGdpw6EgbXVhIGPhurdwIHRp4buBbiB04buHICpKUFkvVVNEKiB0cm9uZyBnaWFpIMSRb+G6oW4gMTk4My0xOTkzIGzhu5tuIGjGoW4gMTAyLjkyKFVTRCkgLCA1MCAlIGPDsm4gbOG6oWkgZ2nDoSBtdWEgY+G7p2EgY+G6t3AgdGnhu4FuIHThu4cgbsOgeSBuaOG7jyBoxqFuIDEwMi45MiAoVVNEKQ0KDQotIDUwICUgZ2nDoSBtdWEgY+G6t3AgdGnhu4FuIHThu4cgKk5aRC9VU0QqIHRyb25nIGdpYWkgxJFv4bqhbiAxOTgzLTE5OTMgbOG7m24gaMahbiAwLjYyMyAoVVNEKSAsIDUwICUgY8OybiBs4bqhaSBnacOhIG11YSBj4bunYSBj4bq3cCB0aeG7gW4gdOG7hyBuw6B5IG5o4buPIGjGoW4gMC42MjMgKFVTRCkNCg0KLSA1MCAlIGdpw6EgbXVhIGPhurdwIHRp4buBbiB04buHICpWTkQvVVNEKiB0cm9uZyBnaWFpIMSRb+G6oW4gMTk4My0xOTkzIGzhu5tuIGjGoW4gMTYuOCAoVVNEKSAsIDUwICUgY8OybiBs4bqhaSBnacOhIG11YSBj4bunYSBj4bq3cCB0aeG7gW4gdOG7hyBuw6B5IG5o4buPIGjGoW4gMTYuOCAoVVNEKQ0KIA0KIA0KVOG7qyBz4buRIGxp4buHdSByw7p0IHJhIMSRxrDhu6NjIOG7nyAqZ2QxLjIqIHRhIGPDsyB0aOG7gyBuaOG6rW4geMOpdCAgcuG6sW5nIGdpw6EgdHLhu4sgdHJ1bmcgduG7iyBj4bunYSBjw6FjIGPhurdwIHRp4buBbiB04buHIHRyb25nIGdpYWkgxJFv4bqhbiBuw6B5IGtow7RuZyDEkeG7gXUgbmhhdSAuIFbDrSBk4bulIG5oxrAgZ2nDoSB0cuG7iyB0cnVuZyB24buLIGdpw6EgbXVhIHRoZW8gY+G6t3AgdGnhu4FuIHThu4cgKkpQWS9VU0QqIG1hbmcgZ2nDoSB0cuG7iyBs4bubbiBuaOG6pXQgKjEwMi45MiogKFVTRCkgbmjGsG5nIG5nxrDhu6NjIGzhuqFpIGdpw6EgdHLhu4sgdHJ1bmcgduG7iyBnacOhIG11YSBj4bunYSBj4bq3cCB0aeG7gW4gdOG7hyAqTlpEL1VTRCogbOG6oWkgbWFuZyBnacOhIHRy4buLIG5o4buPIG5o4bqldCAqMC42MjMqKFVTRCkNCg0KTmjhu69uZyB54bq/dSB04buRIOG6o25oIGjGsOG7n25nIMSR4bq/biBz4buxIGtow7RuZyDEkeG7k25nIMSR4buBdSBuw6B5IGzDoCBkbyBt4buZdCB2w6BpIHnhur91IHTDsyBuaMawIDoNCg0KLSBT4buxIGtp4buHbiBraW5oIHThur86IEPDoWMgc+G7sSBraeG7h24ga2luaCB04bq/IHF1YW4gdHLhu41uZyBuaMawIGPDtG5nIGLhu5EgZOG7ryBsaeG7h3Uga2luaCB04bq/LCBi4bqndSBj4butLCB2w6AgdGhheSDEkeG7lWkgY2jDrW5oIHPDoWNoIGPDsyB0aOG7gyDhuqNuaCBoxrDhu59uZyDEkeG6v24gZ2nDoSBtdWEgY+G7p2EgY8OhYyBj4bq3cCB0aeG7gW4gdOG7hy4NCg0KLSBUaGnDqm4gdGFpOiBUaGnDqm4gdGFpIGPDsyB0aOG7gyDhuqNuaCBoxrDhu59uZyDEkeG6v24gbuG7gW4ga2luaCB04bq/IHbDoCBnacOhIHRy4buLIGPhu6dhIGPDoWMgY+G6t3AgdGnhu4FuIHThu4cuDQoNCi0gQ2FuIHRoaeG7h3AgY+G7p2EgY2jDrW5oIHBo4bunOiBDaMOtbmggcGjhu6cgY8OzIHRo4buDIGNhbiB0aGnhu4dwIHbDoG8gdGjhu4sgdHLGsOG7nW5nIG5nb+G6oWkgaOG7kWkgxJHhu4Mg4buVbiDEkeG7i25oIGdpw6EgdHLhu4sgxJHhu5NuZyB0aeG7gW4gY+G7p2EgaOG7jS4NCg0KDQoqKkJp4buDdSDEkeG7kyBwaMOibiB0w61jaCAqQmlkKiBnaWFpIMSRb+G6oW4gMjAwMC0yMDEwICoqDQoNCg0KYGBge3J9DQpnZ3Bsb3QoZ2QxLCBhZXMoeCA9IFRpbWUsIHkgPSBCaWQsIGNvbG9yID0gUGFpcikpICsNCiAgZ2VvbV9saW5lKGxpbmV3aWR0aD0gMSkgKw0KICBsYWJzKHggPSAiTsSDbSIsIHkgPSAiR2nDoSB0cuG7iyBCaWQiLCB0aXRsZSA9ICLEkOG7kiBUSOG7iiBJIDogU28gc8OhbmggZ2nDoSBiw6FuIGPDoWMgY+G6t3AgdGnhu4FuIHThu4cgICgyMDAwIC0gMjAxMCkiKSArDQogIHRoZW1lX2J3KCkNCmBgYA0KDQoNCsSQ4buSIFRI4buKIEkgOg0KDQotIFBow6JuIHTDrWNoIGThu7FhIHRyw6puIGLhu5kgZOG7ryBsaeG7h3UgKmdkMSogduG7m2kgdHLhu6VjICp4KiBiaeG7g3UgZGnhu4VuIGNobyBiaeG6v24gKlRpbWUqIGzDoCBjw6FjIG7Eg20gdHJvbmcgZ2lhaSDEkW/huqFuIDIwMDAtMjAxMCAsIHRy4bulYyAqeSogYmnhu4N1IGRp4buFbiBjaG8gYmnhur9uICpCaWQqIGzDoCBnacOhIGLDoW4gY+G7p2EgY8OhYyBj4bq3cCB0aeG7gW4gdOG7hyAuVOG7qyDEkeG7kyB0aOG7iyB0YSBjw7MgdGjhu4MgbmjDrG4gdGjhuqV5IGdpw6EgYsOhbiBj4bunYSBj4bq3cCB0aeG7gW4gdOG7hyB0aGVvIHRo4bupIHThu7EgZ2nhuqNtIGThuqduIGzDoCAqSlBZL1VTRCosKklOUi9VU0QqLCpWTkQvVVNEKiwqQ05ZL1VTRCosKkNPUC9VU0QqIHbDoCBjdeG7kWkgY8O5bmcgbMOgIGPDoWMgY+G6t3AgdGnhu4FuIHThu4cgY8OzIGdpw6EgYsOhbiBuZ2FuZyBuaGF1ICpFVVIvVVNEKiwqTlpEL1VTRCosKkFVRC9VU0QqLCpHQlAvVVNEKi4gDQoNCi0gR2nDoSB0cuG7iyBVU0Q6IE3huqFuaCBsw6puIHRyb25nIGdpYWkgxJFv4bqhbiAyMDAyLTIwMDgsIFnhur91IMSRaSB0cm9uZyBnaWFpIMSRb+G6oW4gMjAwOC0yMDEwIGRvIGto4bunbmcgaG/huqNuZyB0w6BpIGNow61uaCB0b8OgbiBj4bqndSAoTsSDbSAyMDA4OiBLaOG7p25nIGhv4bqjbmcgdMOgaSBjaMOtbmggdG/DoG4gY+G6p3Uga2hp4bq/biBVU0QgeeG6v3UgxJFpIHbDoCBjw6FjIGPhurdwIHRp4buBbiB04buHIGtow6FjIHTEg25nIGdpw6EuIE7Eg20gMjAxMDogVVNEIHBo4bulYyBo4buTaSBzYXUga2jhu6duZyBob+G6o25nKQ0KDQoNCioqQmnhu4N1IMSR4buTIHBow6JuIHTDrWNoICpBc2sqIGdpYWkgxJFv4bqhbiAyMDAwLTIwMTAgKioNCg0KYGBge3J9DQpnZ3Bsb3QoZ2QxLCBhZXMoeCA9IFRpbWUsIHkgPSBBc2ssIGNvbG9yID0gUGFpcikpICsNCiAgZ2VvbV9saW5lKGxpbmV3aWR0aD0gMSkgKw0KICBsYWJzKHggPSAiTsSDbSIsIHkgPSAiR2nDoSB0cuG7iyBBc2siLCB0aXRsZSA9ICLEkOG7kiBUSOG7iiBJSSA6IFNvIHPDoW5oIGdpw6EgbXVhIGPhu6dhIGPDoWMgY+G6t3AgdGnhu4FuIHThu4cgICgyMDAwIC0gMjAxMCkiKSArDQogIHRoZW1lX2J3KCkNCmBgYA0KDQrEkOG7kiBUSOG7iiBJSToNCg0KLSBQaMOibiB0w61jaCBk4buxYSB0csOqbiBi4buZIGThu68gbGnhu4d1ICpnZDEqIHbhu5tpIHRy4bulYyAqeCogYmnhu4N1IGRp4buFbiBjaG8gYmnhur9uICpUaW1lKiBsw6AgY8OhYyBuxINtIHRyb25nIGdpYWkgxJFv4bqhbiAyMDAwLTIwMTAgLCB0cuG7pWMgKnkqIGJp4buDdSBkaeG7hW4gY2hvIGJp4bq/biAqQXNrKiBsw6AgZ2nDoSBtdWEgY+G7p2EgY8OhYyBj4bq3cCB0aeG7gW4gdOG7hyAuVOG7qyDEkeG7kyB0aOG7iyB0YSBjw7MgdGjhu4MgbmjDrG4gdGjhuqV5IGdpw6EgbXVhIGPhu6dhIGPhurdwIHRp4buBbiB04buHIHRoZW8gdGjhu6kgdOG7sSBnaeG6o20gZOG6p24gbMOgICpKUFkvVVNEKiwqSU5SL1VTRCosKlZORC9VU0QqLCpDTlkvVVNEKiwqQ09QL1VTRCogdsOgIGN14buRaSBjw7luZyBsw6AgY8OhYyBj4bq3cCB0aeG7gW4gdOG7hyBjw7MgZ2nDoSBtdWEgbmdhbmcgbmhhdSAqRVVSL1VTRCosKk5aRC9VU0QqLCpBVUQvVVNEKiwqR0JQL1VTRCouIA0KDQotIEdpw6EgdHLhu4sgVVNEOiBN4bqhbmggbMOqbiB0cm9uZyBnaWFpIMSRb+G6oW4gMjAwMi0yMDA4LCBZ4bq/dSDEkWkgdHJvbmcgZ2lhaSDEkW/huqFuIDIwMDgtMjAxMCBkbyBraOG7p25nIGhv4bqjbmcgdMOgaSBjaMOtbmggdG/DoG4gY+G6p3UgKE7Eg20gMjAwODogS2jhu6duZyBob+G6o25nIHTDoGkgY2jDrW5oIHRvw6BuIGPhuqd1IGtoaeG6v24gVVNEIHnhur91IMSRaSB2w6AgY8OhYyBj4bq3cCB0aeG7gW4gdOG7hyBraMOhYyB0xINuZyBnacOhLiBOxINtIDIwMTA6IFVTRCBwaOG7pWMgaOG7k2kgc2F1IGto4bunbmcgaG/huqNuZykNCg0KLSBOZ2/huqFpIHRy4burIGPhurdwIHRp4buBbiB04buHICpKUFkvVVNEKiBjw7Mgbmhp4buBdSBz4buxIGJp4bq/biDEkeG7lWkgbOG7m24gcXVhIGPDoWMgbsSDbSB0aMOsIGPDoWMgY+G6t3AgdGnhu4FuIHThu4cgY8OybiBs4bqhaSBjxaluZyBjw7Mgc+G7sSBiaeG6v24gxJHhu5luZyBuaMawbmcga2jDtG5nIHBo4bqjaSBsw6AgcXXDoSBs4bubbiANCg0KDQoNCiMjIyBU4bu3IGdpw6EgaOG7kWkgxJFvw6FpIGdpYWkgxJFv4bqhbiAyMDEwLTIwMjANCmBgYHtyfQ0KZ2QyIDwtIG50dCAlPiUgZmlsdGVyKFRpbWUgPj0yMDEwLCBUaW1lIDw9MjAyMCkNCmRpbShnZDIpDQpgYGANCg0KKmdkMiogbMOgIG3hu5l0IGThu68gbGnhu4d1IGNvbiDEkcaw4bujYyB0w6FjaCB04burIGLhu5kgZOG7ryBsaeG7h3UgKm50dCogZOG7sWEgdHLDqm4gYmnhur9uICpUaW1lKiB24bubaSDEkWnhu4F1IGtp4buHbiAqVGltZSA+PTIwMTAsIFRpbWUgPD0yMDIwKih0aHXhu5ljIGdpYWkgxJFv4bqhbiB04burIDIwMTAtMjAyMCkgLiBC4buZIGThu68gbGnhu4d1ICpnZDIqIGJhbyBn4buTbSA5OSBxdWFuIHPDoXQgdsOgIDggYmnhur9uIA0KDQoqKlTDrW5oIHRvw6FuIGPDoWMgZ2nDoSB0cuG7iyBsacOqbiBxdWFuICpNZWFuKiwgKk1lZGlhbiogKioNCg0KYGBge3J9DQpnZDIuMSA8LSBnZDIgJT4lIGdyb3VwX2J5KFBhaXIpICU+JSBzdW1tYXJpc2UobWVhbl9CaWQ9IG1lYW4oQmlkKSkNCnN0cihnZDIuMSkNCmBgYA0KDQoqZ2QyLjEqIMSRxrDhu6NjIGfDoW4g4bufIGPDonUgbOG7h25oIHRyw6puIGJp4buDdSB0aOG7iyBnacOhIHRy4buLIHRydW5nIGLDrG5oIGPhu6dhICpCaWQqIChnacOhIG3DoCBi4bqhbiBjw7MgdGjhu4MgYsOhbiBj4bq3cCB0aeG7gW4gdOG7hyBob+G6t2MgdMOgaSBz4bqjbikgdHJvbmcgZ2lhaSDEkW/huqFuIDE5ODMtMTk5MyDEkcaw4bujYyBjaGlhIHRoZW8gYmnhur9uICpQYWlyKiANCg0KLSBHacOhIHRy4buLIHRydW5nIGLDrG5oIGPhu6dhIGdpw6EgYsOhbiBj4bq3cCB0aeG7gW4gdOG7hyAqQVVEL1VTRCogdHJvbmcgZ2lhaSDEkW/huqFuIDIwMDAtMjAxMCAgOiAwLjc2MDQ1NDUgKFVTRCkNCg0KLSBHacOhIHRy4buLIHRydW5nIGLDrG5oIGPhu6dhIGdpw6EgYsOhbiBj4bq3cCB0aeG7gW4gdOG7hyAqSU5EL1VTRCogdHJvbmcgZ2lhaSDEkW/huqFuIDIwMDAtMjAxMCAgOiA2LjUxODE4MTggIChVU0QpDQoNCi0gR2nDoSB0cuG7iyB0cnVuZyBiw6xuaCBj4bunYSBnacOhIGLDoW4gY+G6t3AgdGnhu4FuIHThu4cgKkNPUC9VU0QqIHRyb25nIGdpYWkgxJFv4bqhbiAyMDAwLTIwMTAgIDogMi42NzI3MjczICAoVVNEKQ0KDQotIEdpw6EgdHLhu4sgdHJ1bmcgYsOsbmggY+G7p2EgZ2nDoSBiw6FuIGPhurdwIHRp4buBbiB04buHICpFVVIvVVNEKiB0cm9uZyBnaWFpIMSRb+G6oW4gMjAwMC0yMDEwICA6IDEuMzExMTgxOCAoVVNEKQ0KDQotIEdpw6EgdHLhu4sgdHJ1bmcgYsOsbmggY+G7p2EgZ2nDoSBiw6FuIGPhurdwIHRp4buBbiB04buHICpHQlAvVVNEICogdHJvbmcgZ2lhaSDEkW/huqFuIDIwMDAtMjAxMCAgOiAwLjY3MzkwOTEgICAgKFVTRCkNCg0KLSBHacOhIHRy4buLIHRydW5nIGLDrG5oIGPhu6dhIGdpw6EgYsOhbiBj4bq3cCB0aeG7gW4gdOG7hyAqSU5SL1VTREQqIHRyb25nIGdpYWkgxJFv4bqhbiAyMDAwLTIwMjAgIDogNTkuMjU2MzYzNiAoVVNEKQ0KDQotIEdpw6EgdHLhu4sgdHJ1bmcgYsOsbmggY+G7p2EgZ2nDoSBiw6FuIGPhurdwIHRp4buBbiB04buHICpKUFkvVVNEKiB0cm9uZyBnaWFpIMSRb+G6oW4gMjAwMC0yMDIwICA6IDEwNC4zODE4MTgyICAoVVNEKQ0KDQotIEdpw6EgdHLhu4sgdHJ1bmcgYsOsbmggY+G7p2EgZ2nDoSBiw6FuIGPhurdwIHRp4buBbiB04buHICpOWkQvVVNEKiB0cm9uZyBnaWFpIMSRb+G6oW4gMjAwMC0yMDIwICA6IDAuNjg5MTgxOCAgKFVTRCkNCg0KLSBHacOhIHRy4buLIHRydW5nIGLDrG5oIGPhu6dhIGdpw6EgYsOhbiBj4bq3cCB0aeG7gW4gdOG7hyAqVk5EL1VTRCogdHJvbmcgZ2lhaSDEkW/huqFuIDIwMDAtMjAyMCAgOiAyMC44NTcyNzI3IChVU0QpDQoNClRyb25nIGdpYWkgxJFv4bqhbiBuw6B5IGdpw6EgdHLhu4sgdHJ1bmcgYsOsbmggY+G7p2EgYmnhur9uICpCaWQqIHRoZW8gY+G6t3AgdGnhu4FuIHThu4cgKkpQTi9VU0QqIG1hbmcgZ2nDoSB0cuG7iyBs4bubbiBuaOG6pXQgKjEwNC4zODE4MTgyKiAoVVNEKSBkbyBuaGnhu4F1IHnhur91IHThu5EgdMOhYyDEkeG7mW5nIG5oxrAgdOG7iSBs4buHIGzDo2kgc3XhuqV0IChMw6NpIHN14bqldCBjYW8gdGh1IGjDunQgxJHhuqd1IHTGsCwgZOG6q24gxJHhur9uIG5odSBj4bqndSBjYW8gaMahbiB24buBIMSR4buTbmcgdGnhu4FuIMSRw7MgdsOgIGdpw6EgdHLhu4sgxJHhu5NuZyB0aeG7gW4gdMSDbmcgbMOqbikgLCB0xINuZyB0csaw4bufbmcga2luaCB04bq/IChUxINuZyB0csaw4bufbmcga2luaCB04bq/IG3huqFuaCBt4bq9IHRoxrDhu51uZyDEkWkga8OobSB24bubaSDEkeG7k25nIHRp4buBbiBt4bqhbmggaMahbiksIGzDo2kgc3XhuqV0IChM4bqhbSBwaMOhdCBjYW8gbMOgbSBnaeG6o20gc+G7qWMgbXVhIGPhu6dhIMSR4buTbmcgdGnhu4FuLCBk4bqrbiDEkeG6v24gZ2nDoSB0cuG7iyDEkeG7k25nIHRp4buBbiB0aOG6pXAgaMahbikgLC4uLg0KDQoNCmBgYHtyfQ0KZ2QyLjIgPC0gZ2QyJT4lIGdyb3VwX2J5KFBhaXIpICU+JSBzdW1tYXJpc2UobWVkaWFuX0Fzaz0gbWVkaWFuKEFzaykpDQpzdHIoZ2QyLjIpDQpgYGANCipnZDEuMiogxJHGsOG7o2MgZ8OhbiDhu58gY8OidSBs4buHbmggdHLDqm4gYmnhu4N1IHRo4buLIGdpw6EgdHLhu4sgdHJ1bmcgduG7iyBj4bunYSAqQXNrKiAoZ2nDoSBtw6AgYuG6oW4gY8OzIHRo4buDIG11YSBj4bq3cCB0aeG7gW4gdOG7hyBob+G6t2MgdMOgaSBz4bqjbikgdHJvbmcgZ2lhaSDEkW/huqFuIDE5ODMtMTk5MyDEkcaw4bujYyBjaGlhIHRoZW8gYmnhur9uICpQYWlyKiANCg0KLSA1MCAlIGdpw6EgbXVhIGPhurdwIHRp4buBbiB04buHICpBVUQvVVNEICogdHJvbmcgZ2lhaSDEkW/huqFuIDE5ODMtMTk5MyBs4bubbiBoxqFuIDAuNzgxIChVU0QpICwgNTAgJSBjw7JuIGzhuqFpIGdpw6EgbXVhIGPhu6dhIGPhurdwIHRp4buBbiB04buHIG7DoHkgbmjhu48gaMahbiAwLjc4MSAoVVNEKQ0KDQotIDUwICUgZ2nDoSBtdWEgY+G6t3AgdGnhu4FuIHThu4cgKkNOWS9VU0QqIHRyb25nIGdpYWkgxJFv4bqhbiAxOTgzLTE5OTMgbOG7m24gaMahbiA2LjYzMCAoVVNEKSAsIDUwICUgY8OybiBs4bqhaSBnacOhIG11YSBj4bunYSBj4bq3cCB0aeG7gW4gdOG7hyBuw6B5IG5o4buPIGjGoW4gNi42MzAgKFVTRCkNCg0KLSA1MCAlIGdpw6EgbXVhIGPhurdwIHRp4buBbiB04buHICpDT1AvVVNEKiB0cm9uZyBnaWFpIMSRb+G6oW4gMTk4My0xOTkzIGzhu5tuIGjGoW4gMy4wMTIgKFVTRCkgLCA1MCAlIGPDsm4gbOG6oWkgZ2nDoSBtdWEgY+G7p2EgY+G6t3AgdGnhu4FuIHThu4cgbsOgeSBuaOG7jyBoxqFuIDMuMDEyIChVU0QpDQoNCi0gNTAgJSBnacOhIG11YSBj4bq3cCB0aeG7gW4gdOG7hyAqRVVSL1VTRCogdHJvbmcgZ2lhaSDEkW/huqFuIDE5ODMtMTk5MyBs4bubbiBoxqFuIDEuMTMwIChVU0QpICwgNTAgJSBjw7JuIGzhuqFpIGdpw6EgbXVhIGPhu6dhIGPhurdwIHRp4buBbiB04buHIG7DoHkgbmjhu48gaMahbiAxLjEzMCAoVVNEKQ0KDQotIDUwICUgZ2nDoSBtdWEgY+G6t3AgdGnhu4FuIHThu4cgKkdCUC9VU0QqIHRyb25nIGdpYWkgxJFv4bqhbiAxOTgzLTE5OTMgbOG7m24gaMahbiAwLjY3MSAoVVNEKSAsIDUwICUgY8OybiBs4bqhaSBnacOhIG11YSBj4bunYSBj4bq3cCB0aeG7gW4gdOG7hyBuw6B5IG5o4buPIGjGoW4gMC42NzEgKFVTRCkNCg0KLSA1MCAlIGdpw6EgbXVhIGPhurdwIHRp4buBbiB04buHICpJTlIvVVNEKiB0cm9uZyBnaWFpIMSRb+G6oW4gMTk4My0xOTkzIGzhu5tuIGjGoW4gNDcuMDQwIChVU0QpICwgNTAgJSBjw7JuIGzhuqFpIGdpw6EgbXVhIGPhu6dhIGPhurdwIHRp4buBbiB04buHIG7DoHkgbmjhu48gaMahbiA0Ny4wNDAgKFVTRCkNCg0KLSA1MCAlIGdpw6EgbXVhIGPhurdwIHRp4buBbiB04buHICpKUFkvVVNEKiB0cm9uZyBnaWFpIMSRb+G6oW4gMTk4My0xOTkzIGzhu5tuIGjGoW4gMTExLjU0MChVU0QpICwgNTAgJSBjw7JuIGzhuqFpIGdpw6EgbXVhIGPhu6dhIGPhurdwIHRp4buBbiB04buHIG7DoHkgbmjhu48gaMahbiAxMTEuNTQwIChVU0QpDQoNCi0gNTAgJSBnacOhIG11YSBj4bq3cCB0aeG7gW4gdOG7hyAqTlpEL1VTRCogdHJvbmcgZ2lhaSDEkW/huqFuIDE5ODMtMTk5MyBs4bubbiBoxqFuIDAuNjczIChVU0QpICwgNTAgJSBjw7JuIGzhuqFpIGdpw6EgbXVhIGPhu6dhIGPhurdwIHRp4buBbiB04buHIG7DoHkgbmjhu48gaMahbiAwLjY3MyAoVVNEKQ0KDQotIDUwICUgZ2nDoSBtdWEgY+G6t3AgdGnhu4FuIHThu4cgKlZORC9VU0QqIHRyb25nIGdpYWkgxJFv4bqhbiAxOTgzLTE5OTMgbOG7m24gaMahbiAyMi4xMzAgKFVTRCkgLCA1MCAlIGPDsm4gbOG6oWkgZ2nDoSBtdWEgY+G7p2EgY+G6t3AgdGnhu4FuIHThu4cgbsOgeSBuaOG7jyBoxqFuIDIyLjEzMCAoVVNEKQ0KIA0KIA0KVOG7qyBz4buRIGxp4buHdSByw7p0IHJhIMSRxrDhu6NjIOG7nyAqZ2QyLjIqIHRhIGPDsyB0aOG7gyBuaOG6rW4geMOpdCAgcuG6sW5nIGdpw6EgdHLhu4sgdHJ1bmcgduG7iyBj4bunYSBjw6FjIGPhurdwIHRp4buBbiB04buHIHRyb25nIGdpYWkgxJFv4bqhbiB0xINuZyBoxqFuIHNvIHbhu5tpIGdpYWkgxJFv4bqhbiAyMDAwLTIwMTAgdsOgIGPDoWMgZ2nDoSB0cuG7iyB0cnVuZyB24buLIG7DoHkga2jDtG5nIMSR4buBdSBuaGF1IC4gVsOtIGThu6UgbmjGsCBnacOhIHRy4buLIHRydW5nIHbhu4sgZ2nDoSBtdWEgdGhlbyBj4bq3cCB0aeG7gW4gdOG7hyAqSlBZL1VTRCogbWFuZyBnacOhIHRy4buLIGzhu5tuIG5o4bqldCAqMTExLjU0MCogKFVTRCkgbmjGsG5nIG5nxrDhu6NjIGzhuqFpIGdpw6EgdHLhu4sgdHJ1bmcgduG7iyBnacOhIG11YSBj4bunYSBj4bq3cCB0aeG7gW4gdOG7hyAqR0JQL1VTRCogbOG6oWkgbWFuZyBnacOhIHRy4buLIG5o4buPIG5o4bqldCAqMC42NzEqKFVTRCkNCg0KTmjhu69uZyB54bq/dSB04buRIOG6o25oIGjGsOG7n25nIMSR4bq/biBz4buxIGtow7RuZyDEkeG7k25nIMSR4buBdSBuw6B5IGzDoCBkbyBt4buZdCB2w6BpIHnhur91IHTDsyBuaMawIDoNCg0KLSBT4buxIGtp4buHbiBraW5oIHThur86IEPDoWMgc+G7sSBraeG7h24ga2luaCB04bq/IHF1YW4gdHLhu41uZyBuaMawIGPDtG5nIGLhu5EgZOG7ryBsaeG7h3Uga2luaCB04bq/LCBi4bqndSBj4butLCB2w6AgdGhheSDEkeG7lWkgY2jDrW5oIHPDoWNoIGPDsyB0aOG7gyDhuqNuaCBoxrDhu59uZyDEkeG6v24gZ2nDoSBtdWEgY+G7p2EgY8OhYyBj4bq3cCB0aeG7gW4gdOG7hy4NCg0KLSBUaGnDqm4gdGFpOiBUaGnDqm4gdGFpIGPDsyB0aOG7gyDhuqNuaCBoxrDhu59uZyDEkeG6v24gbuG7gW4ga2luaCB04bq/IHbDoCBnacOhIHRy4buLIGPhu6dhIGPDoWMgY+G6t3AgdGnhu4FuIHThu4cuDQoNCi0gQ2FuIHRoaeG7h3AgY+G7p2EgY2jDrW5oIHBo4bunOiBDaMOtbmggcGjhu6cgY8OzIHRo4buDIGNhbiB0aGnhu4dwIHbDoG8gdGjhu4sgdHLGsOG7nW5nIG5nb+G6oWkgaOG7kWkgxJHhu4Mg4buVbiDEkeG7i25oIGdpw6EgdHLhu4sgxJHhu5NuZyB0aeG7gW4gY+G7p2EgaOG7jS4NCg0KDQoNCioqQmnhu4N1IMSR4buTIHBow6JuIHTDrWNoICpCaWQqIGdpYWkgxJFv4bqhbiAyMDEwLTIwMjAgKioNCg0KYGBge3J9DQpnZ3Bsb3QoZ2QyLCBhZXMoeCA9IFRpbWUsIHkgPSBCaWQsIGNvbG9yID0gUGFpcikpICsNCiAgZ2VvbV9saW5lKGxpbmV3aWR0aD0gMSkgKw0KICBsYWJzKHggPSAiTsSDbSIsIHkgPSAiR2nDoSB0cuG7iyBCaWQiLCB0aXRsZSA9ICLEkOG7kiBUSOG7iiBJSUkgOiBTbyBzw6FuaCBnacOhIGLDoW4gY8OhYyBj4bq3cCB0aeG7gW4gdOG7hyAgKDIwMTAgLSAyMDIwKSIpICsNCiAgdGhlbWVfYncoKQ0KYGBgDQoNCsSQ4buSIFRI4buKIElJSSA6DQoNCi0gUGjDom4gdMOtY2ggZOG7sWEgdHLDqm4gYuG7mSBk4buvIGxp4buHdSAqZ2QyKiB24bubaSB0cuG7pWMgKngqIGJp4buDdSBkaeG7hW4gY2hvIGJp4bq/biAqVGltZSogbMOgIGPDoWMgbsSDbSB0cm9uZyBnaWFpIMSRb+G6oW4gMjAxMC0yMDIwICwgdHLhu6VjICp5KiBiaeG7g3UgZGnhu4VuIGNobyBiaeG6v24gKkJpZCogbMOgIGdpw6EgYsOhbiBj4bunYSBjw6FjIGPhurdwIHRp4buBbiB04buHIC5U4burIMSR4buTIHRo4buLIHRhIGPDsyB0aOG7gyBuaMOsbiB0aOG6pXkgZ2nDoSBiw6FuIGPhu6dhIGPhurdwIHRp4buBbiB04buHIHRoZW8gdGjhu6kgdOG7sSBnaeG6o20gZOG6p24gbMOgICpKUFkvVVNEKiwqSU5SL1VTRCosKlZORC9VU0QqLCpDTlkvVVNEKiwqQ09QL1VTRCogdsOgIGN14buRaSBjw7luZyBsw6AgY8OhYyBj4bq3cCB0aeG7gW4gdOG7hyBjw7MgZ2nDoSBiw6FuIG5nYW5nIG5oYXUgKkVVUi9VU0QqLCpOWkQvVVNEKiwqQVVEL1VTRCosKkdCUC9VU0QqLg0KDQotIEdpw6EgdHLhu4sgVVNEIDogVMSDbmcgZ2nDoSB0cm9uZyBnaWFpIMSRb+G6oW4gMjAxMC0yMDE2Llnhur91IMSRaSB0cm9uZyBnaWFpIMSRb+G6oW4gMjAxNy0yMDIwLiDEkMOieSBsw6AgbMO9IGRvIOG6o25oIGjGsOG7n25nIHRy4buxYyB0aeG6v3AgxJHhur9uIHPhu7EgYmnhur9uIMSR4buZbmcgZ2nDoSBiw6FuIGPhu6dhIGPDoWMgY+G6t3AgdGnhu4FuIHThu4cgdHJvbmcgZ2lhaSDEkW/huqFuIG7DoHkgDQoNCi0gSOG6p3UgaOG6v3QgeHUgaMaw4bubbmcgZ2nDoSBiw6FuIGPhu6dhIGPDoWMgY+G6t3AgdGnhu4FuIHThu4cgdHJvbmcgZ2lhaSDEkW/huqFuIG7DoHkgxJHhu4F1IGPDsyB4dSBoxrDhu5tuZyB0xINuZyBsw6puIC4gQ2jDum5nIHRhIGPDsyB0aOG7gyBk4buFIGTDoG5nIG5ow6xuIHRo4bqleSBnacOhIHRy4buLIGdpw6EgYsOhbiBj4bunYSBnaWFpIMSRb+G6oW4gMjAxMC0yMDIwICjEkOG7kiBUSOG7iiBJSUkpIGPDsyBt4bupYyBnacOhIHRy4buLIGzhu5tuIGjGoW4gc28gduG7m2kgDQpnacOhIHRy4buLIGdpw6EgYsOhbiBj4bunYSBnaWFpIMSRb+G6oW4gMjAwMC0yMDEwICjEkOG7kiBUSOG7iiBJKQ0KDQoNCioqQmnhu4N1IMSR4buTIHBow6JuIHTDrWNoICpBc2sqIGdpYWkgxJFv4bqhbiAyMDEwLTIwMjAgKioNCg0KYGBge3J9DQpnZ3Bsb3QoZ2QyLCBhZXMoeCA9IFRpbWUsIHkgPSBBc2ssIGNvbG9yID0gUGFpcikpICsNCiAgZ2VvbV9saW5lKGxpbmV3aWR0aD0gMSkgKw0KICBsYWJzKHggPSAiTsSDbSIsIHkgPSAiR2nDoSB0cuG7iyBBc2siLCB0aXRsZSA9ICLEkOG7kiBUSOG7iiBJViA6IFNvIHPDoW5oIGdpw6EgbXVhIGPhu6dhIGPDoWMgY+G6t3AgdGnhu4FuIHThu4cgICgyMDEwIC0gMjAyMCkiKSArDQogIHRoZW1lX2J3KCkNCmBgYA0KDQrEkOG7kiBUSOG7iiBJVjoNCg0KLSBQaMOibiB0w61jaCBk4buxYSB0csOqbiBi4buZIGThu68gbGnhu4d1ICpnZDIqIHbhu5tpIHRy4bulYyAqeCogYmnhu4N1IGRp4buFbiBjaG8gYmnhur9uICpUaW1lKiBsw6AgY8OhYyBuxINtIHRyb25nIGdpYWkgxJFv4bqhbiAyMDAwLTIwMTAgLCB0cuG7pWMgKnkqIGJp4buDdSBkaeG7hW4gY2hvIGJp4bq/biAqQXNrKiBsw6AgZ2nDoSBtdWEgY+G7p2EgY8OhYyBj4bq3cCB0aeG7gW4gdOG7hyAuVOG7qyDEkeG7kyB0aOG7iyB0YSBjw7MgdGjhu4MgbmjDrG4gdGjhuqV5IGdpw6EgbXVhIGPhu6dhIGPhurdwIHRp4buBbiB04buHIHRoZW8gdGjhu6kgdOG7sSBnaeG6o20gZOG6p24gbMOgICpKUFkvVVNEKiwqSU5SL1VTRCosKlZORC9VU0QqLCpDTlkvVVNEKiwqQ09QL1VTRCogdsOgIGN14buRaSBjw7luZyBsw6AgY8OhYyBj4bq3cCB0aeG7gW4gdOG7hyBjw7MgZ2nDoSBtdWEgbmdhbmcgbmhhdSAqRVVSL1VTRCosKk5aRC9VU0QqLCpBVUQvVVNEKiwqR0JQL1VTRCouIA0KDQotIEdpw6EgdHLhu4sgVVNEIDogVMSDbmcgZ2nDoSB0cm9uZyBnaWFpIMSRb+G6oW4gMjAxMC0yMDE2Llnhur91IMSRaSB0cm9uZyBnaWFpIMSRb+G6oW4gMjAxNy0yMDIwLiDEkMOieSBsw6AgbMO9IGRvIOG6o25oIGjGsOG7n25nIHRy4buxYyB0aeG6v3AgxJHhur9uIHPhu7EgYmnhur9uIMSR4buZbmcgZ2nDoSBiw6FuIGPhu6dhIGPDoWMgY+G6t3AgdGnhu4FuIHThu4cgdHJvbmcgZ2lhaSDEkW/huqFuIG7DoHkgDQoNCi0gSOG6p3UgaOG6v3QgeHUgaMaw4bubbmcgZ2nDoSBiw6FuIGPhu6dhIGPDoWMgY+G6t3AgdGnhu4FuIHThu4cgdHJvbmcgZ2lhaSDEkW/huqFuIG7DoHkgxJHhu4F1IGPDsyB4dSBoxrDhu5tuZyB0xINuZyBsw6puIC4gQ2jDum5nIHRhIGPDsyB0aOG7gyBk4buFIGTDoG5nIG5ow6xuIHRo4bqleSBnacOhIHRy4buLIGdpw6EgYsOhbiBj4bunYSBnaWFpIMSRb+G6oW4gMjAxMC0yMDIwICjEkOG7kiBUSOG7iiBJVikgY8OzIG3hu6ljIGdpw6EgdHLhu4sgbOG7m24gaMahbiBzbyB24bubaSANCmdpw6EgdHLhu4sgZ2nDoSBiw6FuIGPhu6dhIGdpYWkgxJFv4bqhbiAyMDAwLTIwMTAgKMSQ4buSIFRI4buKIElJKQ0KDQojIyBQaMOibiB0w61jaCBj4bq3cCB0aeG7gW4gdOG7hyBKUFkvVVNEIA0KDQoqKlF1YSA0IMSR4buTIHRo4buLIOG7nyB0csOqbiB0aMOsIGPhurdwIHRp4buBbiB04buHICpKUFkvVVNEKiBjw7Mgbmhp4buBdSBz4buxIGJp4bq/biDEkeG7lWkgbmjhuqV0IHNvIHbhu5tpIGPDoWMgY+G6t3AgdGnhu4FuIHThu4cgY8OybiBs4bqhaSAuVsOsIHbhuq15IMSR4buDIGhp4buDdSByw7UgaMahbiB24buBIG5o4buvbmcgdMOhYyDEkeG7mW5nIMSR4bq/biB04bu3IGdpw6EgaOG7kWkgxJFvw6FpIGNow7puZyB0YSBz4bq9IHRp4bq/cCB04bulYyBwaMOibiB0w61jaCDEkeG6v24gdOG7iSBnacOhIGjhu5FpIMSRb8OhaSBj4bunYSBj4bq3cCB0aeG7gW4gdOG7hyAqSlBZL1VTRCogKioNCg0KIyMjIHBow6JuIHTDrWNoIEpQWS9VU0QgZ2lhaSDEkW/huqFuIDIwMDAtMjAxMA0KDQpgYGB7cn0NCnRyYW5nMSA8LSBmaWx0ZXIobnR0LFBhaXIgPT0nSlBZL1VTRCcmIFRpbWU+PTIwMDAsVGltZTw9MjAxMCkNCnRyYW5nMQ0KYGBgDQoNCi0gKnRyYW5nMSogxJHGsOG7o2MgbOG7jWMgdOG7qyBi4buZIGThu68gbGnhu4d1ICpudHQqIHRoZW8gxJFp4buBdSBraeG7h24gY+G7p2EgYmnhur9uICpQYWlyKiBjaOG7iSBjaOG7jW4gY+G6t3AgdGnhu4FuIHThu4cgY8OzIHTDqm4gKkpQWS9VU0QqLCB0aGVvIMSRaeG7gXUga2nhu4duIGPhu6dhIGJp4bq/biAqVGltZSogY2jhu4kgY2jhu41uIGPDoWMgbsSDbSBuxINtIHRyb25nIGdpYWkgxJFv4bqhbiAqMjAwMC0yMDEwKi4NCg0KLSBC4buZIGThu68gbGnhu4d1ICp0cmFuZzEqIGJhbyBn4buTbSAxMSBxdWFuIHPDoXQgdsOgIDggYmnhur9uIA0KDQpgYGB7cn0NCnNraW0odHJhbmcxKQ0KYGBgDQoqKk5o4bqtbiB4w6l0KioNCkPDonUgbOG7h25oICpza2ltKHRyYW5nMSkqIGNobyBjaMO6bmcgdGEgY8OhYyBnacOhIHRy4buLIGxpw6puIHF1YW4gxJHhur9uIGLhu5kgZOG7ryBsaeG7h3UgKnRyYW5nMSoNCg0KLSBHacOhIHRy4buLIHRydW5nIGLDrG5oIGPhu6dhIGJp4bq/biAqQmlkKiAoZ2nDoSBiw6FuIGPhu6dhIGPDoWMgY+G6t3AgdGnhu4FuIHThu4cpIGzhu5tuIGfhuqVwIDMuNyBs4bqnbiBnacOhIHRy4buLIHRydW5nIGLDrG5oIGPhu6dhIGJp4bq/biAqQXNrKiAoZ2nDoSBtdWEgY8OhYyBj4bq3cCB0aeG7gW4gdOG7hykgdHJvbmcgZ2lhaSDEkW/huqFuIDIwMDAtMjAxMCDEkcOieSBsw6AgbeG7qWMgY2jDqm5oIGzhu4djaCBjYW8gDQoNCi0gTeG7mXQgc+G7kSBuZ3V5w6puIG5ow6JuIGPDsyB0aOG7gyBk4bqrIMSR4bq/biBz4buxIGNow6puaCBs4buHY2ggbsOgeSA6DQoNCisgTMOjaSBzdeG6pXQ6IFbDrSBk4bulIEtoaSBsw6NpIHN14bqldCDhu58gTmjhuq10IELhuqNuIHRo4bqlcCBoxqFuIHNvIHbhu5tpIFZp4buHdCBOYW0sIG5odSBj4bqndSBtdWEgSlBZIHPhur0gZ2nhuqNtIGRvd24sIGThuqtuIMSR4bq/biBnacOhIGLDoW4gSlBZIGNhbyBoxqFuLg0KDQorIEPDoW4gY8OibiB0aGFuaCB0b8OhbiBxdeG7kWMgdOG6vzogVsOtIGThu6UgS2hpIGPDoW4gY8OibiB0aGFuaCB0b8OhbiBxdeG7kWMgdOG6vyBj4bunYSBOaOG6rXQgQuG6o24gdGjhurduZyBkxrAsIGN1bmcgSlBZIHPhur0gdMSDbmcgbMOqbiwgZOG6q24gxJHhur9uIGdpw6EgYsOhbiBKUFkgdGjhuqVwIGjGoW4uDQoNCisgVMOibSBsw70gdGjhu4sgdHLGsOG7nW5nOiBLaGkgdMOibSBsw70gdGjhu4sgdHLGsOG7nW5nIGLhuqV0IOG7lW4sIG5odSBj4bqndSBtdWEgSlBZIGPDsyB0aOG7gyB0aGF5IMSR4buVaSwgZOG6q24gxJHhur9uIGJp4bq/biDEkeG7mW5nIGdpw6EgSlBZLg0KDQoqKkJp4buDdSDEkeG7kyBwaMOibiB0w61jaCAqQmlkKiBnaWFpIMSRb+G6oW4gMjAwMC0yMDEwICoqDQoNCmBgYHtyfQ0KICBnZ3Bsb3QodHJhbmcxLGFlcyh4PVRpbWUsIHk9QmlkKSkgKw0KICBnZW9tX2NvbChmaWxsPSdwaW5rJykgKw0KICBnZW9tX2xpbmUoY29sb3I9J2JsdWUnLCBsaW5ld2lkdGggPTEpICsNCiAgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IEJpZCksdmp1c3QgPSA1LCBjb2xvciA9ICdibGFjaycpICsNCiAgbGFicyh0aXRsZSA9ICLEkOG7kiBUSOG7iiBWIDogR2nDoSBiw6FuIGPhu6dhIGPhurdwIHRp4buBbiB04buHIEpQWS9VU0QgdHJvbmcgZ2lhaSDEkW/huqFuIDIwMDAtMjAxMCIpICsNCiAgbGFicyh4ID0gJ07Eg20nLCB5ID0gJ0dpw6EgdHLhu4sgQmlkJykNCmBgYA0KDQrEkOG7kiBUSOG7iiBWIDoNCg0KLSDEkOG7kyB0aOG7iyBwaMOibiB0w61jaCBk4buxYSB0csOqbiBi4buZIGThu68gbGnhu4d1ICp0cmFuZzEqIHbhu5tpIHRy4bulYyB4IGzDoCBjw6FjIG7Eg20gdHJvbmcgZ2lhaSDEkW/huqFuIDIwMDAtMjAxMCAsIHRy4bulYyB5IGNo4buJIGdpw6EgdHLhu4sgY+G7p2EgYmnhur9uICpCaWQqIChnacOhIGLDoW4gY+G7p2EgY+G6t3AgdGnhu4FuIHThu4cpDQoNCi0gQ8OhYyBnacOhIHRy4buLIGPhu6dhIGJp4bq/biAqQmlkKiBnaWFvIMSR4buZbmcgdHJvbmcga2hv4bqjbmcgODguMzEtMTE3LjU0IHbDoCBjw7MgbeG7mXQgc+G7sSB0xINuZyBnaeG6o20ga2jDtG5nIMSR4buTbmcgxJHhu4F1IA0KDQotR2nDoSB0cuG7iyBCaWQgY+G7p2EgSlBZL1VTRCBiaeG6v24gxJHhu5luZyBt4bqhbmggaMahbiBzbyB24bubaSBjw6FjIGPhurdwIHRp4buBbiB04buHIGtow6FjIG5oxrAgRVVSL1VTRCB2w6AgR0JQL1VTRC7EkGnhu4F1IG7DoHkgZG8gSlBZIGzDoCBt4buZdCBsb+G6oWkgdGnhu4FuIHThu4cgdHLDuiDhuqluIGFuIHRvw6BuOiBOaHUgY+G6p3UgduG7gSBKUFkgdMSDbmcgY2FvIHRyb25nIHRo4budaSBr4buzIGLhuqV0IOG7lW4ga2luaCB04bq/Lg0KDQotR2nDoSB0cuG7iyBCaWQgYmnhur9uIMSR4buZbmcgbeG6oW5oIHRyb25nIGdpYWkgxJFv4bqhbiBuw6B5LCBjaOG7i3Ug4bqjbmggaMaw4bufbmcgYuG7n2kgbmhp4buBdSB54bq/dSB04buRLiBN4buZdCBz4buRIHnhur91IHThu5EgY2jDrW5oOg0KKyBDaMOtbmggc8OhY2ggdGnhu4FuIHThu4c6IE5odSBj4bqndSB24buBIFVTRCB0xINuZyBjYW8gZG8gY2jDrW5oIHPDoWNoIG7hu5tpIGzhu49uZyB0aeG7gW4gdOG7hyBj4bunYSBD4bulYyBE4buxIHRy4buvIExpw6puIGJhbmcgSG9hIEvhu7MgKEZlZCkuDQoNCisgVMSDbmcgdHLGsOG7n25nIGtpbmggdOG6vzogTuG7gW4ga2luaCB04bq/IE3hu7kgdMSDbmcgdHLGsOG7n25nIG3huqFuaCBoxqFuIE5o4bqtdCBC4bqjbiB0cm9uZyBnaWFpIMSRb+G6oW4gbsOgeS4NCg0KKyBDxINuZyB0aOG6s25nIMSR4buLYSBjaMOtbmggdHLhu4s6IEPDoWMgc+G7sSBraeG7h24gbmjGsCB24bulIHThuqVuIGPDtG5nIDExLzkgdsOgIGN14buZYyBraOG7p25nIGhv4bqjbmcgdMOgaSBjaMOtbmggMjAwOCBjxaluZyDhuqNuaCBoxrDhu59uZyDEkeG6v24gZ2nDoSB0cuG7iyBCaWQuDQoNCmBgYHtyfQ0KZ2dwbG90KHRyYW5nMSxhZXMoeD1UaW1lLCB5PUFzaykpICsNCiAgZ2VvbV9jb2woZmlsbD0nc2t5Ymx1ZScpICsNCiAgZ2VvbV9saW5lKGNvbG9yPSdibHVlJywgbGluZXdpZHRoID0xKSArDQogIGdlb21fdGV4dChhZXMobGFiZWwgPSBBc2spLHZqdXN0ID0gNSwgY29sb3IgPSAnYmxhY2snKSArDQogIGxhYnModGl0bGUgPSAixJDhu5IgVEjhu4ogVkkgOiBHacOhIG11YSBj4bunYSBj4bq3cCB0aeG7gW4gdOG7hyBKUFkvVVNEIHRyb25nIGdpYWkgxJFv4bqhbiAyMDAwLTIwMTAiKSArDQogIGxhYnMoeCA9ICdOxINtJywgeSA9ICdHacOhIHRy4buLIEFzaycpDQpgYGANCsSQ4buSIFRI4buKIFZJIA0KDQrEkOG7kyB0aOG7iyBwaMOibiB0w61jaCBk4buxYSB0csOqbiBi4buZIGThu68gbGnhu4d1ICp0cmFuZzEqIHbhu5tpIHRy4bulYyB4IGzDoCBjw6FjIG7Eg20gdHJvbmcgZ2lhaSDEkW/huqFuIDIwMTAtMjAyMCAsIHRy4bulYyB5IGNo4buJIGdpw6EgdHLhu4sgY+G7p2EgYmnhur9uICpBc2sqIChnacOhIG11YSBj4bunYSBj4bq3cCB0aeG7gW4gdOG7hykNCg0KLSBDw6FjIGdpw6EgdHLhu4sgY+G7p2EgYmnhur9uICpBc2sqIGdpYW8gxJHhu5luZyB0cm9uZyBraG/huqNuZyA4MC4xNS0xMTcuNTQgdsOgIGPDsyBt4buZdCBz4buxIHTEg25nIGdp4bqjbSBraMO0bmcgxJHhu5NuZyDEkeG7gXUgLk5ow6xuIGNodW5nIHRow6wgZ2nDoSB0cuG7iyAqQXNrKiBj4bunYSAqSlBZL1VTRCogY8OzIHh1IGjGsOG7m25nIGdp4bqjbSB0cm9uZyBnaWFpIMSRb+G6oW4gKjIwMDItMjAwOSogDQoNCi0gVHJvbmcgZ2lhaSDEkW/huqFuIG7DoHkgZ2nDoSB0cuG7iyAqQXNrKiBjxaluZyBjaOG7i3Ugbmjhu69uZyB0w6FjIMSR4buZbmcgYuG7n2kgY8OhYyB5w6p1IHThu5EgbmjGsCBnacOhIHRy4buLICpCaWQqIOG7nyDEkOG7kyBUSOG7iiBWIA0KDQoqKlNvIHPDoW5oIGdpw6EgdHLhu4sgKkJpZCogdsOgICpBc2sqIGdpYWkgxJFv4bqhbiAyMDAwLTIwMTAqKiANCg0KYGBge3J9DQpnZ3Bsb3QodHJhbmcxKSArDQogIGdlb21fbGluZShhZXMoeCA9IFRpbWUsIHkgPSBCaWQsIGNvbG9yID0gIkJpZCIpKSArDQogIGdlb21fbGluZShhZXMoeCA9IFRpbWUsIHkgPSBBc2ssIGNvbG9yID0gIkFzayIpKSArDQogIGxhYnModGl0bGUgPSAixJDhu5IgVEjhu4ogVklJIDogU28gc8OhbmggQmlkIHbDoCBBc2sgY+G7p2EgSlBZL1VTRCBnaWFpIMSRb+G6oW4gMjAwMC0yMDEwIiwgeCA9ICJUaW1lIiwgeSA9ICJHacOhIikgKw0KICAgdGhlbWVfYncoKQ0KYGBgDQoNCsSQ4buSIFRI4buKIFZJSQ0KDQotIMSQ4buTIHRo4buLIHBow6JuIHTDrWNoIGThu7FhIHRyw6puIGLhu5kgZOG7ryBsaeG7h3UgKnRyYW5nMSogduG7m2kgdHLhu6VjIHggbMOgIGPDoWMgbsSDbSB0cm9uZyBnaWFpIMSRb+G6oW4gMjAxMC0yMDIwICwgdHLhu6VjIHkgY2jhu4kgZ2nDoSB0cuG7iyBj4bunYSBiaeG6v24gKkJpZCxBc2sqIChnacOhIGLDoW4sZ2nDoSBtdWEgY+G7p2EgY+G6t3AgdGnhu4FuIHThu4cpDQoNCi0gTeG7qWMgY2jDqm5oIGzhu4djaCBnaeG7r2EgZ2nDoSBiw6FuIHbDoCBnacOhIG11YSAoc3ByZWFkKSBj4bunYSBKUFkvVVNEIHRoxrDhu51uZyBkYW8gxJHhu5luZyB04burIDAuNSUgxJHhur9uIDEuNSUgdHJvbmcgZ2lhaSDEkW/huqFuIDIwMDAtMjAxMC4NCg0KLSAyIMSRxrDhu51uZyBiaeG7g3UgZGnhu4VuIGNobyBnacOhIGLDoW4gdsOgIGdpw6EgbXVhIGPDsyBz4buxIHTGsMahbmcgcXVhbiB24bubaSBuaGF1IC5Ucm9uZyBnaWFpIMSRb+G6oW4gMjAwMC0yMDA0IHbDoCBuxINtIDIwMTAgZ2nDoSBtdWEgbHXDtG4gY2FvIGjGoW4gc28gduG7m2kgZ2nDoSBiw6FuICwgY8OybiB04burIGdpYWkgxJFv4bqhbiAyMDA0LTIwMDkgdGjDrCBuZ8aw4bujYyBs4bqhaSBnacOhIGLDoW4gY2FvIGjGoW4gZ2nDoSBtdWEgLg0KDQotIE3hu6ljIGNow6puaCBs4buHY2ggY8OzIHRo4buDIGNhbyBoxqFuIHRyb25nIHRo4budaSBr4buzIGJp4bq/biDEkeG7mW5nIHRo4buLIHRyxrDhu51uZyBjYW8sIG5oxrAgc2F1IGPDoWMgc+G7sSBraeG7h24gbmjGsCB24bulIHThuqVuIGPDtG5nIDExLzkgdsOgIGN14buZYyBraOG7p25nIGhv4bqjbmcgdMOgaSBjaMOtbmggMjAwOC4NCg0KLSBN4bupYyBjaMOqbmggbOG7h2NoIGPhu6dhIEpQWS9VU0QgdGjhuqVwIGjGoW4gc28gduG7m2kgY8OhYyBj4bq3cCB0aeG7gW4gdOG7hyBt4bubaSBu4buVaSBuaMawIFVTRC9JRFIgdsOgIFVTRC9CUkwuxJBp4buBdSBuw6B5IGRvIEpQWSBsw6AgbeG7mXQgbG/huqFpIHRp4buBbiB04buHIGNow61uaCB2w6AgY8OzIHRo4buLIHRyxrDhu51uZyBnaWFvIGThu4tjaCBs4bubbi4NCg0KDQoNCiMjIyBwaMOibiB0w61jaCBKUFkvVVNEIGdpYWkgxJFv4bqhbiAyMDEwLTIwMjANCg0KDQoNCmBgYHtyfQ0KdHJhbmcyIDwtIGZpbHRlcihudHQsUGFpciA9PSdKUFkvVVNEJyYgVGltZT49MjAxMCxUaW1lPD0yMDIwKQ0KdHJhbmcyDQpgYGANCg0KLSAqdHJhbmcyKiDEkcaw4bujYyBs4buNYyB04burIGLhu5kgZOG7ryBsaeG7h3UgKm50dCogdGhlbyDEkWnhu4F1IGtp4buHbiBj4bunYSBiaeG6v24gKlBhaXIqIGNo4buJIGNo4buNbiBj4bq3cCB0aeG7gW4gdOG7hyBjw7MgdMOqbiAqSlBZL1VTRCosIHRoZW8gxJFp4buBdSBraeG7h24gY+G7p2EgYmnhur9uICpUaW1lKiBjaOG7iSBjaOG7jW4gY8OhYyBuxINtIG7Eg20gdHJvbmcgZ2lhaSDEkW/huqFuICoyMDEwLTIwMjAqLg0KDQotIELhu5kgZOG7ryBsaeG7h3UgKnRyYW5nMiogYmFvIGfhu5NtIDExIHF1YW4gc8OhdCB2w6AgOCBiaeG6v24gDQoNCmBgYHtyfQ0Kc2tpbSh0cmFuZzIpDQpgYGANCg0KDQoqKk5o4bqtbiB4w6l0KioNCkPDonUgbOG7h25oICpza2ltKHRyYW5nMikqIGNobyBjaMO6bmcgdGEgY8OhYyBnacOhIHRy4buLIGxpw6puIHF1YW4gxJHhur9uIGLhu5kgZOG7ryBsaeG7h3UgKnRyYW5nMioNCg0KLSBHacOhIHRy4buLIHRydW5nIGLDrG5oIGPhu6dhIGJp4bq/biAqQmlkKiAoZ2nDoSBiw6FuIGPhu6dhIGPDoWMgY+G6t3AgdGnhu4FuIHThu4cpIHRo4bqlcCBoxqFuIGfhuqVwIDQuOCBs4bqnbiBnacOhIHRy4buLIHRydW5nIGLDrG5oIGPhu6dhIGJp4bq/biAqQXNrKiAoZ2nDoSBtdWEgY8OhYyBj4bq3cCB0aeG7gW4gdOG7hykgdHJvbmcgZ2lhaSDEkW/huqFuIDIwMTAtMjAyMCAuIENow6puaCBs4buHY2ggNC44JSBsw6AgdMawxqFuZyDEkeG7kWkgY2FvOiBN4bupYyBjaMOqbmggbOG7h2NoIG7DoHkgY2hvIHRo4bqleSBz4buxIGNow6puaCBs4buHY2ggbOG7m24gZ2nhu69hIGdpw6EgbXVhIHbDoCBnacOhIGLDoW4sIHRo4buDIGhp4buHbiBz4buxIHRpbiB0xrDhu59uZyBt4bqhbmggbeG6vSBj4bunYSBuaMOgIMSR4bqndSB0xrAgdsOgbyBVU0Qgc28gduG7m2kgSlBZLg0KDQotIE3hu5l0IHPhu5Egbmd1ecOqbiBuaMOibiBjw7MgdGjhu4MgZOG6qyDEkeG6v24gc+G7sSBjaMOqbmggbOG7h2NoIG7DoHkgOg0KDQorIE7hu4FuIGtpbmggdOG6vyBN4bu5IHTEg25nIHRyxrDhu59uZyBt4bqhbmggbeG6vSBoxqFuIE5o4bqtdCBC4bqjbjogTuG7gW4ga2luaCB04bq/IE3hu7kgY8OzIHThu5FjIMSR4buZIHTEg25nIHRyxrDhu59uZyBjYW8gaMahbiBOaOG6rXQgQuG6o24gdHJvbmcgc3Xhu5F0IGdpYWkgxJFv4bqhbiBuw6B5LCB0aHUgaMO6dCDEkeG6p3UgdMawIG7GsOG7m2Mgbmdvw6BpIHbDoCB0aMO6YyDEkeG6qXkgbmh1IGPhuqd1IFVTRC4NCg0KKyBMw6NpIHN14bqldCBVU0QgY2FvIGjGoW4gSlBZOiBMw6NpIHN14bqldCBjYW8gaMahbiBraGnhur9uIFVTRCB0cuG7nyBuw6puIGjhuqVwIGThuqtuIGjGoW4gxJHhu5FpIHbhu5tpIG5ow6AgxJHhuqd1IHTGsCwgZOG6q24gxJHhur9uIG5odSBj4bqndSBtdWEgVVNEIHTEg25nIGNhby4NCg0KKyBDaMOtbmggc8OhY2ggbuG7m2kgbOG7j25nIHRp4buBbiB04buHIGPhu6dhIE5o4bqtdCBC4bqjbjogTmfDom4gaMOgbmcgVHJ1bmcgxrDGoW5nIE5o4bqtdCBC4bqjbiAoQm9KKSB0aOG7sWMgaGnhu4duIGNow61uaCBzw6FjaCBu4bubaSBs4buPbmcgdGnhu4FuIHThu4cgbeG6oW5oIG3hur0sIGtoaeG6v24gSlBZIHnhur91IMSRaSBzbyB24bubaSBVU0QuDQoNCisgVHJvbmcgZ2lhaSDEkW/huqFuIG7DoHksIG5oaeG7gXUgc+G7sSBraeG7h24gYuG6pXQg4buVbiBraW5oIHThur8gdG/DoG4gY+G6p3UgeOG6o3kgcmEgbmjGsCBraOG7p25nIGhv4bqjbmcgbuG7oyBjaMOidSDDgnUsIGNoaeG6v24gdHJhbmggdGjGsMahbmcgbeG6oWkgTeG7uS1UcnVuZywgdi52LiBraGnhur9uIG5ow6AgxJHhuqd1IHTGsCB0w6xtIGtp4bq/bSBjw6FjIGvDqm5oIMSR4bqndSB0xrAgYW4gdG/DoG4gbmjGsCBVU0QuDQoNCisgVmFpIHRyw7IgY+G7p2EgSlBZIG5oxrAgbeG7mXQga8OqbmggdHLDuiDhuqluIGFuIHRvw6BuOiBKUFkgY8WpbmcgxJHGsOG7o2MgeGVtIGzDoCBrw6puaCB0csO6IOG6qW4gYW4gdG/DoG4gdHJvbmcgdGjhu51pIGvhu7MgYuG6pXQg4buVbiwgdHV5IG5oacOqbiwgc+G7sSBo4bqlcCBk4bqrbiBj4bunYSBKUFkgZ2nhuqNtIMSRaSBkbyBjaMOtbmggc8OhY2ggbuG7m2kgbOG7j25nIHRp4buBbiB04buHIGPhu6dhIEJvSi4NCg0KKipCaeG7g3UgxJHhu5MgcGjDom4gdMOtY2ggKkJpZCogZ2lhaSDEkW/huqFuIDIwMTAtMjAyMCAqKg0KDQpgYGB7cn0NCiAgZ2dwbG90KHRyYW5nMixhZXMoeD1UaW1lLCB5PUJpZCkpICsNCiAgZ2VvbV9jb2woZmlsbD0nU2FsbW9uJykgKw0KICBnZW9tX2xpbmUoY29sb3I9J2JsYWNrJywgbGluZXdpZHRoID0xKSArDQogIGdlb21fdGV4dChhZXMobGFiZWwgPSBCaWQpLHZqdXN0ID0gNSwgY29sb3IgPSAnYmxhY2snKSArDQogIGxhYnModGl0bGUgPSAixJDhu5IgVEjhu4ogVklJSSA6IEdpw6EgYsOhbiBj4bunYSBj4bq3cCB0aeG7gW4gdOG7hyBKUFkvVVNEIHRyb25nIGdpYWkgxJFv4bqhbiAyMDEwLTIwMjAiKSArDQogIGxhYnMoeCA9ICdOxINtJywgeSA9ICdHacOhIHRy4buLIEJpZCcpDQpgYGANCg0KxJDhu5IgVEjhu4ogVklJSQ0KDQotIMSQ4buTIHRo4buLIHBow6JuIHTDrWNoIGThu7FhIHRyw6puIGLhu5kgZOG7ryBsaeG7h3UgKnRyYW5nMiogduG7m2kgdHLhu6VjIHggbMOgIGPDoWMgbsSDbSB0cm9uZyBnaWFpIMSRb+G6oW4gMjAxMC0yMDIwICwgdHLhu6VjIHkgY2jhu4kgZ2nDoSB0cuG7iyBj4bunYSBiaeG6v24gKkJpZCogKGdpw6EgYsOhbiBj4bunYSBj4bq3cCB0aeG7gW4gdOG7hykNCg0KLSBHacOhIHRy4buLICpCaWQqIGdpYW8gxJHhu5luZyB0cm9uZyBraG/huqNuZyB04burIDgyLjkyLTEyMS4zMiAuTeG7qWMgY2jDqm5oIGzhu4djaCBnaeG7ryBnacOhIHRy4buLIEJpZCBs4bubbiBuaOG6pXQgdsOgIG5o4buPIG5o4bqldCBsw6AgNC42JSBt4buZdCBraG/huqNuZyBjw6FjaCB0xrDGoW5nIMSR4buRaSBs4bubbiAuIENow7puZyB0YSBjw7MgdGjhu4MgZOG7hSBkw6BuZyBuaOG6rW4gcmEgdHJvbmcgZ2lhaSDEkW/huqFuIDIwMTEtMjAxNSB0aMOsIGdpw6EgdHLhu4sgQmlkIHTEg25nIG5o4buvbmcgZ2lhaSDEkW/huqFuIGPDsm4gbOG6oWkgZ2nDoSB0cuG7iyBCaWQgY8OzIHh1IGjGsOG7m25nIGdp4bqjbSBt4bqhbmggDQoNCi0gQ8OhYyB54bq/dSB04buRIOG6o25oIGjGsOG7n25nIDoNCg0KKyBO4buBbiBraW5oIHThur8gTeG7uSB0xINuZyB0csaw4bufbmcgbeG6oW5oIG3hur0gaMahbiBOaOG6rXQgQuG6o24sIHRodSBow7p0IMSR4bqndSB0xrAgbsaw4bubYyBuZ2/DoGkgdsOgIHRow7pjIMSR4bqpeSBuaHUgY+G6p3UgVVNELk5o4bqtdCBC4bqjbiB0aOG7sWMgaGnhu4duIGNow61uaCBzw6FjaCBu4bubaSBs4buPbmcgdGnhu4FuIHThu4csIGtoaeG6v24gSlBZIHnhur91IMSRaS4NCg0KKyBOaHUgY+G6p3UgdHLDuiDhuqluIGFuIHRvw6BuIHRyb25nIGPDoWMgc+G7sSBraeG7h24gYuG6pXQg4buVbiBraW5oIHThur8gdG/DoG4gY+G6p3Uga2hp4bq/biBVU0QgdMSDbmcgZ2nDoS4gVmFpIHRyw7IgdHLDuiDhuqluIGFuIHRvw6BuIGPhu6dhIEpQWSBnaeG6o20gxJFpIGRvIGNow61uaCBzw6FjaCBu4bubaSBs4buPbmcgdGnhu4FuIHThu4cgY+G7p2EgQm9KLg0KDQorIEPDoW4gY8OibiB0aMawxqFuZyBt4bqhaSB4deG6pXQgc2nDqnUgY+G7p2EgTmjhuq10IELhuqNuIGtoaeG6v24gSlBZIGThu5NpIGTDoG8gdHLDqm4gdGjhu4sgdHLGsOG7nW5nLCBnw6J5IMOhcCBs4buxYyBsw6puIGdpw6EgSlBZLg0KRMOybmcgduG7kW4gxJHhuqd1IHTGsCBjaOG6o3kgdsOgbyBOaOG6rXQgQuG6o24gZG8gdGjhu4sgdHLGsOG7nW5nIGNo4bupbmcga2hvw6FuIHTEg25nIHRyxrDhu59uZyBjxaluZyBnw7NwIHBo4bqnbiBsw6BtIEpQWSB54bq/dSDEkWkuDQoNCg0KKipCaeG7g3UgxJHhu5MgcGjDom4gdMOtY2ggKkFzayogZ2lhaSDEkW/huqFuIDIwMTAtMjAyMCAqKg0KDQpgYGB7cn0NCmdncGxvdCh0cmFuZzIsYWVzKHg9VGltZSwgeT1Bc2spKSArDQogIGdlb21fY29sKGZpbGw9J2dyZWVuJykgKw0KICBnZW9tX2xpbmUoY29sb3I9J2JsdWUnLCBsaW5ld2lkdGggPTEpICsNCiAgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IEFzayksdmp1c3QgPSA1LCBjb2xvciA9ICdibGFjaycpICsNCiAgbGFicyh0aXRsZSA9ICLEkOG7kiBUSOG7iiBJWCA6IEdpw6EgbXVhIGPhu6dhIGPhurdwIHRp4buBbiB04buHIEpQWS9VU0QgdHJvbmcgZ2lhaSDEkW/huqFuIDIwMTAtMjAyMCIpICsNCiAgbGFicyh4ID0gJ07Eg20nLCB5ID0gJ0dpw6EgdHLhu4sgQXNrJykNCmBgYA0KDQrEkOG7kiBUSOG7iiBJWA0KDQotIMSQ4buTIHRo4buLIHBow6JuIHTDrWNoIGThu7FhIHRyw6puIGLhu5kgZOG7ryBsaeG7h3UgKnRyYW5nMiogduG7m2kgdHLhu6VjIHggbMOgIGPDoWMgbsSDbSB0cm9uZyBnaWFpIMSRb+G6oW4gMjAxMC0yMDIwICwgdHLhu6VjIHkgY2jhu4kgZ2nDoSB0cuG7iyBj4bunYSBiaeG6v24gKkFzayogKGdpw6EgbXVhIGPhu6dhIGPhurdwIHRp4buBbiB04buHKQ0KDQotIEdpw6EgdHLhu4sgKkFzayogZ2lhbyDEkeG7mW5nIHRyb25nIGtob+G6o25nIHThu6sgOTEuNzMtMTIxLjMyIC5N4bupYyBjaMOqbmggbOG7h2NoIGdp4buvIGdpw6EgdHLhu4sgQXNrIGzhu5tuIG5o4bqldCB2w6Agbmjhu48gbmjhuqV0IGzDoCAzLjIlIC5HacOhIG11YSBKUFkvVVNEIHTEg25nIGThuqduIHRyb25nIGdpYWkgxJFv4bqhbiAyMDEwLTIwMjAsIHRo4buDIGhp4buHbiB4dSBoxrDhu5tuZyBKUFkgeeG6v3UgxJFpIHNvIHbhu5tpIFVTRC4NCg0KLUdpw6EgbXVhIEpQWS9VU0QgdHJvbmcgZ2lhaSDEkW/huqFuIDIwMTAtMjAyMCB0xINuZyBk4bqnbiBkbyDhuqNuaCBoxrDhu59uZyBj4bunYSBuaGnhu4F1IHnhur91IHThu5EgbmjGsCBu4buBbiBraW5oIHThur8sIGNow61uaCBzw6FjaCB0aeG7gW4gdOG7hywgcuG7p2kgcm8gdG/DoG4gY+G6p3UsIHYudi4gTmh1IGPhuqd1IFVTRCBjYW8gdsOgIGNow61uaCBzw6FjaCBu4bubaSBs4buPbmcgdGnhu4FuIHThu4cgY+G7p2EgTmjhuq10IELhuqNuIGzDoCBuaOG7r25nIG5ndXnDqm4gbmjDom4gY2jDrW5oIGNobyB4dSBoxrDhu5tuZyBuw6B5DQoNCioqU28gc8OhbmggZ2nDoSB0cuG7iyAqQmlkKiB2w6AgKkFzayogZ2lhaSDEkW/huqFuIDIwMTAtMjAyMCoqIA0KDQpgYGB7cn0NCmdncGxvdCh0cmFuZzIpICsNCiAgZ2VvbV9saW5lKGFlcyh4ID0gVGltZSwgeSA9IEJpZCwgY29sb3IgPSAiQmlkIikpICsNCiAgZ2VvbV9saW5lKGFlcyh4ID0gVGltZSwgeSA9IEFzaywgY29sb3IgPSAiQXNrIikpICsNCiAgbGFicyh0aXRsZSA9ICLEkOG7kiBUSOG7iiBYIDogU28gc8OhbmggQmlkIHbDoCBBc2sgY+G7p2EgSlBZL1VTRCBnaWFpIMSRb+G6oW4gMjAxMC0yMDIwIiwgeCA9ICJUaW1lIiwgeSA9ICJHacOhIikgKw0KICAgdGhlbWVfYncoKQ0KYGBgDQoNCg0KxJDhu5IgVEjhu4ogWA0KDQotIMSQ4buTIHRo4buLIHBow6JuIHTDrWNoIGThu7FhIHRyw6puIGLhu5kgZOG7ryBsaeG7h3UgKnRyYW5nMiogduG7m2kgdHLhu6VjIHggbMOgIGPDoWMgbsSDbSB0cm9uZyBnaWFpIMSRb+G6oW4gMjAxMC0yMDIwICwgdHLhu6VjIHkgY2jhu4kgZ2nDoSB0cuG7iyBj4bunYSBiaeG6v24gKkJpZCxBc2sqIChnacOhIGLDoW4sZ2nDoSBtdWEgY+G7p2EgY+G6t3AgdGnhu4FuIHThu4cpDQoNCi0gQ2jDqm5oIGzhu4djaCBnacOhIHRydW5nIGLDrG5oIGdp4buvYSBnacOhIG11YSB2w6AgZ2nDoSBiw6FuIEpQWS9VU0QgdHJvbmcgZ2lhaSDEkW/huqFuIDIwMTAtMjAyMCBsw6Aga2hv4bqjbmcgMC41JS5DaMOqbmggbOG7h2NoIGdpw6EgY8OzIHRo4buDIGzDqm4gxJHhur9uIDIlIHRyb25nIGPDoWMgZ2lhaSDEkW/huqFuIGJp4bq/biDEkeG7mW5nIG3huqFuaC4NCg0KLSBOaOG7r25nIG5ndXnDqm4gbmjDom4gZMOibiDEkeG6v24gc+G7sSBiaeG6v24gxJHhu5luZyBt4bqhbmggY+G7p2EgZ2nDoSBtdWEgdsOgIGdpw6EgYsOhbiBj4bunYSBj4bq3cCB0aeG7gW4gdOG7hyBKUFkvVVNEIHRyb25nIGdpYWkgxJFv4bqhbiAyMDAwLTIwMjA6IA0KMjAxMC0yMDEyOiBHacOhIGLDoW4gdsOgIGdpw6EgbXVhIEpQWS9VU0QgYmnhur9uIMSR4buZbmcgbeG6oW5oIGRvIOG6o25oIGjGsOG7n25nIGPhu6dhIGN14buZYyBraOG7p25nIGhv4bqjbmcgdMOgaSBjaMOtbmggdG/DoG4gY+G6p3UuMjAxMy0yMDE1OiBHacOhIGLDoW4gdsOgIGdpw6EgbXVhIEpQWS9VU0Qg4buVbiDEkeG7i25oIGjGoW4gZG8gc+G7sSBwaOG7pWMgaOG7k2kgY+G7p2EgbuG7gW4ga2luaCB04bq/IHRvw6BuIGPhuqd1LjIwMTYtMjAxODogR2nDoSBiw6FuIHbDoCBnacOhIG11YSBKUFkvVVNEIGJp4bq/biDEkeG7mW5nIG3huqFuaCBkbyBjaMOtbmggc8OhY2ggdGnhu4FuIHThu4cgY+G7p2EgTeG7uSB2w6AgTmjhuq10IELhuqNuLjIwMTktMjAyMDogR2nDoSBiw6FuIHbDoCBnacOhIG11YSBKUFkvVVNEIGJp4bq/biDEkeG7mW5nIG3huqFuaCBkbyDhuqNuaCBoxrDhu59uZyBj4bunYSDEkeG6oWkgZOG7i2NoIENPVklELTE5Lg0KDQojICoqQ0jGr8agTkcgSUlJOiBL4bq+VCBMVeG6rE4gKioNCioqKg0KLSBCaeG6v24gxJHhu5luZzogVOG7tyBnacOhIGjhu5FpIMSRb8OhaSBnaeG7r2EgY8OhYyBxdeG7kWMgZ2lhIHRyb25nIGdpYWkgxJFv4bqhbiAyMDAwLTIwMjAgY8OzIG5oaeG7gXUgYmnhur9uIMSR4buZbmcsIGNo4buLdSDhuqNuaCBoxrDhu59uZyBi4bufaSBuaGnhu4F1IHnhur91IHThu5EgbmjGsCBjaMOtbmggc8OhY2gga2luaCB04bq/LCB0w6xuaCBow6xuaCBjaMOtbmggdHLhu4ssIHbDoCBjw6FjIHPhu7Ega2nhu4duIHF14buRYyB04bq/Lg0KWHUgaMaw4bubbmcgY2h1bmc6IFVTRCAoxJDDtCBsYSBN4bu5KSBsw6AgxJHhu5NuZyB0aeG7gW4gbeG6oW5oIG5o4bqldCwgY8OzIHh1IGjGsOG7m25nIHTEg25nIGdpw6Egc28gduG7m2kgaOG6p3UgaOG6v3QgY8OhYyDEkeG7k25nIHRp4buBbiBraMOhYy4NCg0KLSBZ4bq/dSB04buRIOG6o25oIGjGsOG7n25nOg0KQ2jDrW5oIHPDoWNoIHRp4buBbiB04buHOiBMw6NpIHN14bqldCBjYW8gdGh1IGjDunQgxJHhuqd1IHTGsCBuxrDhu5tjIG5nb8OgaSwgZOG6q24gxJHhur9uIHTEg25nIGdpw6EgxJHhu5NuZyB0aeG7gW4uDQpUw6xuaCBow6xuaCBraW5oIHThur86IE7hu4FuIGtpbmggdOG6vyB0xINuZyB0csaw4bufbmcgbeG6oW5oIHRodSBow7p0IMSR4bqndSB0xrAsIGThuqtuIMSR4bq/biB0xINuZyBnacOhIMSR4buTbmcgdGnhu4FuLg0KU+G7sSBraeG7h24gcXXhu5FjIHThur86IEPDoWMgc+G7sSBraeG7h24gbmjGsCBraOG7p25nIGhv4bqjbmcga2luaCB04bq/LCBjaGnhur9uIHRyYW5oLCB0aGnDqm4gdGFpIGPDsyB0aOG7gyDhuqNuaCBoxrDhu59uZyBt4bqhbmggxJHhur9uIHThu7cgZ2nDoSBo4buRaSDEkW/DoWkuDQoNCi0gVsOtIGThu6U6DQpFdXJvIChFVVIpIHN1eSB54bq/dSBkbyBraOG7p25nIGhv4bqjbmcgbuG7oyBDaMOidSDDgnUuWcOqbiBOaOG6rXQgKEpQWSkgdMSDbmcgZ2nDoSBkbyBOaOG6rXQgQuG6o24gY8OzIGNow61uaCBzw6FjaCB0aeG7gW4gdOG7hyBu4bubaSBs4buPbmcuTmjDom4gZMOibiB04buHIChDTlkpIHTEg25nIGdpw6EgZG8gVHJ1bmcgUXXhu5FjIGPDsyB04buRYyDEkeG7mSB0xINuZyB0csaw4bufbmcga2luaCB04bq/IGNhby5N4bu5OiBVU0QgdMSDbmcgZ2nDoSBzbyB24bubaSBo4bqndSBo4bq/dCBjw6FjIMSR4buTbmcgdGnhu4FuIGtow6FjIGRvIG7hu4FuIGtpbmggdOG6vyBN4bu5IHTEg25nIHRyxrDhu59uZyBt4bqhbmggbeG6vSB2w6AgY2jDrW5oIHPDoWNoIHRp4buBbiB04buHIG7hu5tpIGzhu49uZy5DaMOidSDDgnU6IEVVUiBiaeG6v24gxJHhu5luZyBt4bqhbmggZG8g4bqjbmggaMaw4bufbmcgY+G7p2EgY3Xhu5ljIGto4bunbmcgaG/huqNuZyB0w6BpIGNow61uaCAyMDA4IHbDoCBjdeG7mWMga2jhu6duZyBob+G6o25nIG7hu6MgSHkgTOG6oXAuTmjhuq10IELhuqNuOiBKUFkgeeG6v3UgxJFpIGRvIGNow61uaCBzw6FjaCBu4bubaSBs4buPbmcgdGnhu4FuIHThu4cgY+G7p2EgQm9KLkNow6J1IMOBOiBORFQgdMSDbmcgZ2nDoSBkbyBz4buxIHBow6F0IHRyaeG7g24gbeG6oW5oIG3hur0gY+G7p2EgbuG7gW4ga2luaCB04bq/IFRydW5nIFF14buRYy4NCg0KLSBU4bu3IGdpw6EgaOG7kWkgxJFvw6FpIGzDoCBt4buZdCB54bq/dSB04buRIHF1YW4gdHLhu41uZyB0cm9uZyBu4buBbiBraW5oIHThur8sIOG6o25oIGjGsOG7n25nIMSR4bq/biBob+G6oXQgxJHhu5luZyB4deG6pXQgbmjhuq1wIGto4bqpdSwgxJHhuqd1IHTGsCwgdsOgIGR1IGzhu4tjaC4gVmnhu4djIHRoZW8gZMO1aSB2w6AgZOG7sSDEkW/DoW4gdOG7tyBnacOhIGjhu5FpIMSRb8OhaSBsw6AgY+G6p24gdGhp4bq/dCBjaG8gY8OhYyBkb2FuaCBuZ2hp4buHcCB2w6AgbmjDoCDEkeG6p3UgdMawLg0KDQotVOG7tyBnacOhIGjhu5FpIMSRb8OhaSDhuqNuaCBoxrDhu59uZyDEkeG6v24gbOG7o2kgbmh14bqtbiBj4bunYSBjw6FjIGRvYW5oIG5naGnhu4dwIHh14bqldCBuaOG6rXAga2jhuql1LlThu7cgZ2nDoSBo4buRaSDEkW/DoWkgY8Wpbmcg4bqjbmggaMaw4bufbmcNCsSR4bq/biBs4bqhbSBwaMOhdCB2w6AgbMOjaSBzdeG6pXQuTmjDoCDEkeG6p3UgdMawIGPhuqduIHBow6JuIHTDrWNoIGvhu7kgbMaw4buhbmcgdOG7tyBnacOhIGjhu5FpIMSRb8OhaSB0csaw4bubYyBraGkgZ2lhbyBk4buLY2ggbmdv4bqhaSBo4buRaQ0KDQojICoqVMOASSBMSeG7hlUgVEhBTSBLSOG6ok8qKg0KKioqDQotIGh0dHBzOi8vbHVhbnZhbi5uZXQudm4vbHVhbi12YW4vdGlldS1sdWFuLXR5LWdpYS1ob2ktZG9haS01Mzg3OC8NCg0KLSBodHRwczovL3d3dy5nc28uZ292LnZuLw0KDQotIGh0dHBzOi8va3F0a2QuZHV5dGFuLmVkdS52bi9Ib21lL0FydGljbGVEZXRhaWwvdm4vODgvMTk0NC9seS10aHV5ZXQtdmUtdHktZ2lhLWhvaS0NCg0KLSBodHRwczovL2txdGtkLmR1eXRhbi5lZHUudm4vSG9tZS9BcnRpY2xlRGV0YWlsL3ZuLzg4LzMxNzgvcGh1b25nLXBoYXAtZHUtYmFvLXR5LWdpYS1ob2ktZG9haQ0KDQotIGh0dHBzOi8vd3d3LmZpbmhheS5jb20udm4vZW4vY2FjLXlldS10by1hbmgtaHVvbmctZGVuLXR5LWdpYS1ob2ktZG9haS8NCg0K