Lời cảm ơn

Kính gửi, thầy Trần Mạnh Tường,

Em xin được bày tỏ lòng biết ơn sâu sắc đến thầy về sự hướng dẫn và sự hỗ trợ quý báu mà thầy đã dành cho trong suốt quá trình dạy và hướng dẫn thực hiện tiểu luận môn Ngôn ngữ lập trình trong phân tích dữ liệu.

Sự tận tâm và kiến thức sâu rộng của thầy không chỉ đã giúp em hiểu sâu hơn về các khái niệm và thao tác cơ bản trên Rstudio mà còn đã khơi gợi sự sáng tạo và khả năng phân tích của em. Những buổi hướng dẫn bởi thầy không chỉ giúp em hoàn thiện bài tiểu luận một cách chất lượng, mà còn giúp phát triển kỹ năng tự học và nghiên cứu trong tương lai.

Em vô cùng cảm kích sự dẫn dắt tận tình của thâỳ và em rất may mắn khi được học hỏi từ một người giảng viên tận tâm như thầy. Một lần nữa, em xin chân thành cảm ơn thầy về tất cả những gì đã làm để giúp em hoàn thành tiểu luận môn Ngôn ngữ lập trình trong phân tích dữ liệu .

Trân trọng,

Phan Nguyễn Hoàng Quyên.

1 Chương 1: Giới thiệu

1.1 Mở đầu

  • Công ty Cổ phần Vàng bạc Đá quý Phú Nhuận (PNJ) được thành lập vào năm 1988, bắt đầu hoạt động với một cửa hàng kinh doanh vàng bạc đá quý. Trải qua hơn 35 năm phát triển, PNJ đã từng bước khẳng định vị thế của mình trên thị trường vàng bạc đá quý Việt Nam. Với hơn 330 cửa hàng trên toàn quốc, PNJ không chỉ là một thương hiệu quốc gia mà còn là một trong những thương hiệu hàng đầu trong ngành trang sức.

  • Tầm nhìn của PNJ là trở thành doanh nghiệp hàng đầu châu Á trong lĩnh vực chế tác và bán lẻ trang sức, giữ vị trí số 1 trong phân khúc trung và cao cấp nhất tại Việt Nam. Sứ mệnh của họ là mang đến vẻ đẹp hoàn mỹ, niềm vui và sự tự hào cho khách hàng thông qua các sản phẩm chất lượng và dịch vụ tận tâm.

  • PNJ không chỉ chú trọng vào chất lượng sản phẩm mà còn đặt ra những giá trị cốt lõi như chính trực, trách nhiệm, đổi mới và gắn kết. Với sự lãnh đạo của Ông Cao Viết Tường - Chủ tịch HĐQT và Bà Lê Thị Ngọc Diễm - Tổng Giám đốc, PNJ đã ghi nhận một doanh thu ấn tượng vào năm 2022 là 32.000 tỷ đồng và lợi nhuận sau thuế đạt 3.400 tỷ đồng.

  • Để tiếp tục phát triển, PNJ đặt ra kế hoạch mở rộng hệ thống cửa hàng, phát triển kênh bán hàng online cùng việc đầu tư vào công nghệ và đổi mới sáng tạo. Với tầm nhìn chiến lược và định hướng phát triển rõ ràng, PNJ hy vọng sẽ tiếp tục đạt được nhiều thành công trong tương lai và khẳng định vị thế hàng đầu trong ngành trang sức Việt Nam.

1.2 Tầm quan trọng của việc phân tích biến động giá cổ phiếu PNJ năm 2023

Đối với nhà đầu tư:

Giúp nhà đầu tư hiểu rõ hơn về các yếu tố ảnh hưởng đến giá cổ phiếu PNJ: Từ đó, nhà đầu tư có thể đưa ra quyết định đầu tư sáng suốt, giảm thiểu rủi ro và tối đa hóa lợi nhuận.

Cung cấp thông tin để nhà đầu tư dự đoán xu hướng giá cổ phiếu PNJ trong tương lai: Giúp nhà đầu tư lựa chọn thời điểm mua bán cổ phiếu phù hợp.

Đánh giá tiềm năng của cổ phiếu PNJ: So sánh với các cổ phiếu khác trong ngành và thị trường chung.

Đối với doanh nghiệp:

Giúp doanh nghiệp hiểu rõ hơn về thị trường chứng khoán: Từ đó, doanh nghiệp có thể đưa ra chiến lược phát triển phù hợp để thu hút nhà đầu tư.

Đánh giá hiệu quả hoạt động kinh doanh của doanh nghiệp: So sánh với các doanh nghiệp cùng ngành.

Cải thiện hoạt động kinh doanh: Để nâng cao giá trị cổ phiếu và thu hút nhà đầu tư.

Đối với các bên liên quan khác:

Cung cấp thông tin cho các nhà phân tích, công ty chứng khoán: Để họ đưa ra các báo cáo phân tích thị trường và cổ phiếu PNJ.

Cung cấp thông tin cho các cơ quan quản lý nhà nước: Để họ có thể giám sát thị trường chứng khoán và bảo vệ quyền lợi của nhà đầu tư.

Kết luận: Việc phân tích biến động giá cổ phiếu PNJ năm 2023 mang lại nhiều lợi ích cho các nhà đầu tư, doanh nghiệp và các bên liên quan khác. Do đó, đây là một hoạt động quan trọng cần được thực hiện thường xuyên và hiệu quả.

1.3 Mục tiêu:

  • Đánh giá mức độ biến động giá cổ phiếu PNJ trong năm 2023: So sánh với thị trường chung và các cổ phiếu cùng ngành.

  • Xác định các yếu tố ảnh hưởng đến giá cổ phiếu PNJ: Bao gồm yếu tố vĩ mô, ngành và doanh nghiệp.

  • Dự đoán xu hướng giá cổ phiếu PNJ trong tương lai: Dựa trên phân tích cơ bản, kỹ thuật và các yếu tố ảnh hưởng.

1.4 Phạm vi nghiên cứu:

Đối tượng nghiên cứu: Cổ phiếu PNJ niêm yết trên Sở Giao dịch Chứng khoán TP. Hồ Chí Minh (HOSE) với mã chứng khoán PNJ.

Thời gian nghiên cứu: Năm 2023 (từ 01/01/2023 đến 31/12/2023).

Nguồn dữ liệu:

• Báo cáo tài chính của PNJ.

• Biểu đồ giá cổ phiếu PNJ.

• Các trang web tài chính uy tín như Vietstock, Cafef, …

• Các bài báo, nghiên cứu về thị trường chứng khoán và cổ phiếu PNJ.

2 Chương 2: Cơ sở lý luận

2.1 Khái niệm về thị trường chứng khoán, vai trò và chức năng:

Khái niệm: Thị trường chứng khoán là nơi diễn ra các hoạt động mua bán, trao đổi, chuyển nhượng các loại chứng khoán như cổ phiếu, trái phiếu,… giữa các nhà đầu tư. Thị trường chứng khoán có thể được tổ chức tập trung tại một địa điểm vật chất (sàn giao dịch) hoặc phi tập trung thông qua các hệ thống giao dịch điện tử.

Vai trò:

  • Kênh huy động vốn cho doanh nghiệp: Doanh nghiệp huy động vốn từ các nhà đầu tư thông qua việc phát hành cổ phiếu, trái phiếu,…

  • Cơ hội đầu tư cho nhà đầu tư: Nhà đầu tư có thể mua bán chứng khoán để kiếm lợi nhuận.

  • Phản ánh tình hình kinh tế: Giá cả và khối lượng giao dịch trên thị trường chứng khoán phản ánh tình hình kinh tế vĩ mô và hoạt động của các doanh nghiệp.

  • Thúc đẩy sự phát triển kinh tế: Thị trường chứng khoán góp phần thúc đẩy sự phát triển kinh tế thông qua việc huy động vốn và phân bổ nguồn vốn hiệu quả.

Chức năng:

• Huy động vốn: Thị trường chứng khoán cung cấp kênh huy động vốn dài hạn cho các doanh nghiệp, chính phủ.

• Tạo tính thanh khoản cho chứng khoán: Nhà đầu tư có thể dễ dàng mua bán, chuyển đổi chứng khoán thành tiền mặt.

• Đánh giá hoạt động của doanh nghiệp: Giá cổ phiếu phản ánh tình hình kinh doanh và tiềm năng phát triển của doanh nghiệp.

• Tạo môi trường để Chính phủ thực hiện các chính sách kinh tế vĩ mô: Chính phủ có thể sử dụng thị trường chứng khoán để thực hiện các chính sách tiền tệ, tài khóa

Kết luận:

  • Thị trường chứng khoán là một thị trường quan trọng, đóng vai trò to lớn trong nền kinh tế. Thị trường chứng khoán cung cấp kênh huy động vốn cho doanh nghiệp, cơ hội đầu tư cho nhà đầu tư và góp phần thúc đẩy sự phát triển kinh tế.

2.2 Các yếu tố ảnh tố ảnh hưởng đến giá cổ phiếu:

Giá cổ phiếu không chỉ phản ánh giá trị thực của một công ty mà còn phản ánh sự ảnh hưởng của một loạt các yếu tố ngoại vi. Yếu tố vĩ mô như tình hình kinh tế, chính sách của chính phủ, và các sự kiện bất ngờ như thiên tai hay dịch bệnh, đều có thể tác động lớn đến giá cổ phiếu. Sự biến động của GDP, lãi suất và tỷ giá hối đoái có thể tạo ra những động lực mạnh mẽ đối với thị trường chứng khoán.

Ngoài ra, yếu tố ngành cũng đóng một vai trò quan trọng trong việc xác định giá cổ phiếu. Một ngành công nghiệp cạnh tranh cao hoặc có sự biến động lớn có thể tạo ra áp lực lên lợi nhuận của các công ty trong ngành và từ đó ảnh hưởng đến giá cổ phiếu của chúng. Đồng thời, xu hướng tiêu dùng và vòng đời của ngành cũng có thể tạo ra những cơ hội hoặc thách thức đối với doanh nghiệp và giá cổ phiếu của họ.

Ngoài hai nhóm yếu tố trên, yếu tố doanh nghiệp cũng đóng một vai trò quan trọng trong xác định giá cổ phiếu. Kết quả kinh doanh, chiến lược phát triển, ban lãnh đạo và chính sách cổ tức của doanh nghiệp đều có thể ảnh hưởng đến niềm tin của nhà đầu tư và giá cổ phiếu của công ty.

Tuy nhiên, cần nhấn mạnh rằng việc phân tích giá cổ phiếu là một quá trình phức tạp và đầy rủi ro. Nhà đầu tư cần có kiến thức vững vàng cũng như kỹ năng phân tích trước khi ra quyết định đầu tư. Đối với những nhà đầu tư có ý định tham gia thị trường, việc nắm vững các yếu tố này là vô cùng quan trọng để đảm bảo quyết định đầu tư của họ là có căn cứ và hiệu quả.

2.3 Lý thuyết về biến động giá cổ phiếu:

Biến động giá cổ phiếu là thước đo mức độ biến động của giá cổ phiếu trong một khoảng thời gian nhất định. Nó có thể được đo bằng độ lệch chuẩn, phương sai hoặc các thước đo khác. Biến động giá cổ phiếu có thể được gây ra bởi một số yếu tố, bao gồm:

  • Tin tức và sự kiện: Tin tức tốt về một công ty có thể khiến giá cổ phiếu tăng, trong khi tin tức xấu có thể khiến giá cổ phiếu giảm.

  • Cung và cầu: Khi nhu cầu về cổ phiếu cao hơn nguồn cung, giá cổ phiếu sẽ tăng. Ngược lại, khi nguồn cung cao hơn nhu cầu, giá cổ phiếu sẽ giảm.

  • Tâm lý nhà đầu tư: Tâm lý nhà đầu tư có thể ảnh hưởng đến giá cổ phiếu. Khi nhà đầu tư lạc quan, họ có nhiều khả năng mua cổ phiếu hơn, điều này có thể khiến giá cổ phiếu tăng. Ngược lại, khi nhà đầu tư bi quan, họ có nhiều khả năng bán cổ phiếu hơn, điều này có thể khiến giá cổ phiếu giảm.

Biến động của giá cổ phiếu có thể ảnh hưởng đến tập đoàn một cách đa chiều và đôi khi có thể có tác động lớn đến các khía cạnh khác nhau của doanh nghiệp. Dưới đây là một số cách mà biến động giá cổ phiếu có thể ảnh hưởng đến một tập đoàn:

Tài chính của doanh nghiệp:

  • Biến động giá cổ phiếu có thể ảnh hưởng trực tiếp đến giá trị thị trường của tập đoàn. Khi giá cổ phiếu tăng, giá trị thị trường tăng lên, điều này có thể tạo điều kiện thuận lợi cho việc huy động vốn thông qua việc phát hành cổ phiếu mới hoặc tăng cường vốn chủ sở hữu. Ngược lại, khi giá cổ phiếu giảm, giá trị thị trường giảm, có thể gây khó khăn trong việc huy động vốn hoặc tạo áp lực lên tài chính của doanh nghiệp.

Đánh giá về hiệu suất và tiềm năng tương lai:

  • Biến động giá cổ phiếu thường được nhà đầu tư và các nhà phân tích đánh giá để hiểu về hiệu suất và tiềm năng tương lai của doanh nghiệp. Một sự tăng giá ổn định thường được xem là một dấu hiệu tích cực về tiềm năng tăng trưởng và lợi nhuận của tập đoàn. Ngược lại, sự giảm giá đột ngột có thể tạo ra lo ngại về tình hình kinh doanh hoặc triển vọng tương lai.

Cổ đông và nhà đầu tư:

  • Biến động giá cổ phiếu có thể ảnh hưởng đến quan điểm và quyết định đầu tư của cổ đông và nhà đầu tư. Sự tăng giá có thể thu hút sự quan tâm từ các nhà đầu tư mới và tăng lòng tin của cổ đông hiện có. Ngược lại, sự giảm giá có thể dẫn đến sự lo lắng và sự rút lui của nhà đầu tư.

Hoạt động kinh doanh và chiến lược doanh nghiệp:

  • Biến động giá cổ phiếu có thể ảnh hưởng đến chiến lược kinh doanh và quyết định doanh nghiệp. Sự tăng giá có thể cung cấp cơ hội cho tập đoàn để tăng cường hoạt động M&A, mở rộng quy mô kinh doanh hoặc thực hiện các dự án đầu tư mới. Ngược lại, sự giảm giá có thể buộc tập đoàn phải điều chỉnh chiến lược hoặc tiến hành các biện pháp tái cấu trúc.

Kết luận: Vì vậy, biến động giá cổ phiếu không chỉ ảnh hưởng đến giá trị thị trường mà còn có tác động sâu rộng đến nhiều khía cạnh khác nhau của tập đoàn, từ tài chính đến chiến lược kinh doanh và quản lý cổ đông.

2.4 Tổng quan về các mã cổ phiếu: PNJ, VNI, VN30, VN100.

2.4.1 PNJ

  • Mã PNJ là mã chứng khoán của Công ty Cổ phần Vàng bạc Đá quý Phú Nhuận, là doanh nghiệp lớn nhất trong ngành trang sức Việt Nam với hệ thống hơn 330 cửa hàng trên toàn quốc.

  • Lịch sử của PNJ bắt đầu từ năm 1988, khi thành lập Doanh nghiệp tư nhân Vàng bạc đá quý Phú Nhuận. Sau đó, vào năm 1992, công ty này chuyển đổi thành Công ty Vàng bạc đá quý Phú Nhuận và tiếp tục phát triển. Đến năm 2004, PNJ lại tiến thêm một bước nữa khi chuyển đổi thành Công ty Cổ phần, và từ năm 2009, cổ phiếu của công ty được niêm yết trên Sở Giao dịch Chứng khoán TP.HCM (HoSE).

  • Trong lĩnh vực hoạt động, PNJ chủ yếu tập trung vào sản xuất và kinh doanh trang sức vàng, bạc, đá quý. Họ cũng cung cấp dịch vụ gia công, sửa chữa trang sức và kinh doanh kim loại quý như vàng miếng và vàng nhẫn. Ngoài ra, PNJ còn phát triển và quản lý các thương hiệu trang sức uy tín như PNJ, CAO Fine Jewelry, Jemma và Style by PNJ.

  • Với những nỗ lực và thành tựu, PNJ đã nhận được nhiều giải thưởng và danh hiệu, bao gồm Thương hiệu Quốc gia liên tục trong 10 năm (2012 - 2022), Top 100 công ty niêm yết uy tín trong 8 năm (2014 - 2022) và Top 50 công ty có giá trị thương hiệu lớn nhất Việt Nam năm 2023.

2.4.2 VNI

• VN-Index là chỉ số thị trường cơ bản nhất và phổ biến nhất của Bảng Chứng khoán Ho Chi Minh (HoSE) tại Việt Nam.

• Chỉ số này được tính dựa trên giá trị thị trường của tất cả các cổ phiếu được niêm yết trên HoSE.

• VN-Index thường được coi là đại diện cho sự biến động tổng thể của thị trường chứng khoán Việt Nam.

2.4.3 VN30

• VN30 là một chỉ số con của VN-Index, bao gồm 30 cổ phiếu có vốn hóa thị trường lớn nhất và thanh khoản cao nhất trên HoSE.

• Chỉ số này cung cấp một cái nhìn chi tiết hơn về hiệu suất của các cổ phiếu lớn và quan trọng nhất trên thị trường.

3 Chương 3: Phân tích biến động giá cổ phiếu PNJ năm 2023

3.1 Phân tích xu hướng

library(readxl)
mt <- read_excel("mt.xlsx")
wkk <- read_excel("wkk.xlsx")
dltn <- read_excel("dltn.xlsx")
vn30 <- read_excel("VN30-thang.xlsx")
vni <- read_excel("VNI-thang.xlsx")
names(mt) <- c("Ngay", "gia.dong.cua","gia.mo.cua", "cao","thap","KL.gdich","phan.tram.thay.doi")

library(ggplot2)
ggplot(mt, aes(x= Ngay, y= gia.mo.cua)) +
  geom_line() +
  geom_point(color= "red") +
  geom_text(aes(label= gia.mo.cua), vjust= 0, color= "black") +
  labs(x = "Ngay", y = "Gia mo cua", title = "Biểu đồ xu hướng giá cổ phiếu PNJ theo tháng")

Nhận xét

Mức giá cao nhất của cổ phiếu PNJ trong giai đoạn này là 90.389,9 VNĐ (tháng 1 năm 2023).

Mức giá thấp nhất của cổ phiếu PNJ trong giai đoạn này là 70.310,8VNĐ (tháng 6 năm 2023).

  • Giá cổ phiếu PNJ có xu hướng giảm trong giai đoạn từ tháng 1 đến tháng 3 năm 2023. Giá giảm từ 90.389,9 VNĐ xuống còn 77.000 VNĐ, tương ứng với mức giảm 14,81%.

    Giá cổ phiếu PNJ có xu hướng tăng nhẹ trong giai đoạn từ tháng 3 đến tháng 4 năm 2023. Giá tăng từ 77.000 VNĐ lên 78.000 VNĐ, tương ứng với mức tăng 1,28%.

    Giá cổ phiếu PNJ có xu hướng giảm trong giai đoạn từ tháng 4 đến tháng 6 năm 2023. Giá giảm từ 78.000 VNĐ xuống còn 70.310,8 VNĐ, tương ứng với mức giảm 9,86%.

    Giá cổ phiếu PNJ có xu hướng tăng trong giai đoạn từ tháng 6 đến tháng 8 năm 2023. Giá tăng từ 70.310,8 VNĐ lên 82.900 VNĐ, tương ứng với mức tăng 17,9%.

    Giá cổ phiếu PNJ có xu hướng giảm mạnh trong giai đoạn từ tháng 8 đến tháng 11 năm 2023. Giá giảm từ 82.900 VNĐ xuống còn 71.500 VNĐ, tương ứng với mức giảm 14%.

    Giá cổ phiếu PNJ có xu hướng tăng trở lại trong giai đoạn từ tháng 11 đến tháng 12 năm 2023. Giá từ 71.500 VNĐ xuống còn 80.500 VNĐ, tương ứng với mức giảm 9,86%.

    Xu hướng giá cổ phiếu trong 12 tháng qua là giảm dần.

    Giá cổ phiếu có dấu hiệu phục hồi nhẹ trong tháng 12/2023, nhưng vẫn thấp hơn so với mức giá đầu năm.

    Nhà đầu tư cần thận trọng khi xem xét đầu tư vào cổ phiếu này.

3.2 Biểu đồ Khối Lượng Giao Dịch (Volume Chart)

ggplot(mt, aes(x = Ngay , y = KL.gdich)) +
  geom_bar(stat = "identity", fill = "skyblue") +
  geom_text(aes(label= KL.gdich), vjust=0.5, color= "black")

  labs(title = "Biểu đồ Khối Lượng Giao Dịch của cổ phiếu PNJ",
       x = "Ngày",
       y = "Khối lượng giao dịch") +
  theme_minimal()
## NULL

Nhận xét về biểu đồ khối lượng giao dịch cổ phiếu PNJ:

  • Tổng quan:

    Biểu đồ thể hiện khối lượng giao dịch cổ phiếu PNJ biến động mạnh trong 12 tháng qua.

    Khối lượng giao dịch tăng cao vào các tháng 4/2023, 7/2023 và 12/2023.

    Khối lượng giao dịch thấp vào các tháng 1/2023, 3/2023 và 5/2023.

    Mức biến động của khối lượng giao dịch lớn nhất trong tháng 7/2023, với mức tăng 103.65% so với tháng trước.

  • Chi tiết:

    Khối lượng giao dịch cao nhất trong 12 tháng qua là 29.02 triệu cổ phiếu/tháng (tháng 7/2023).

    Khối lượng giao dịch thấp nhất trong 12 tháng qua là 5.72 triệu cổ phiếu/tháng (tháng 1/2023).

    Khối lượng giao dịch trung bình trong 12 tháng qua là 5 triệu cổ phiếu/tháng.

  • Liên hệ với biến động giá:

    Sự biến động của khối lượng giao dịch có thể ảnh hưởng đến biến động giá cổ phiếu.

    Khi khối lượng giao dịch tăng cao, giá cổ phiếu có thể tăng hoặc giảm.

    Khi khối lượng giao dịch thấp, giá cổ phiếu có thể biến động ít hơn.

3.3 Biểu đồ so sánh giá cổ phiếu PNJ với giá VNI theo tháng trong năm 2023

# Biểu đồ giá
ggplot() +
  geom_line(data = mt, aes(x = Ngay, y = gia.mo.cua, color = "PNJ")) +
  geom_line(data = vni, aes(x = Ngay, y = gia.mo.cua , color = "VNI")) +
  labs(x = "Ngày", y = "Giá (VNĐ)", color = "Mã chứng khoán") +
  scale_color_manual(values = c("PNJ" = "blue","VNI" = "green")) +
  theme_minimal()

Nhận xét:

PNJ biến động mạnh hơn VN-Index trong 12 tháng qua.

PNJ tăng trong giai đoạn từ tháng 6 đến tháng 8, có xu hướng giảm mạnh trong giai đoạn từ tháng 8 đến tháng 11 năm 2023.

VN-Index tăng giá từ tháng 4/2023 đến tháng 10/2023, sau đó giảm giá đến tháng 12/2023.

Mức giảm giá của PNJ lớn hơn VN-Index trong tháng 10/2023.

  • So sánh:

    PNJ biến động mạnh hơn VN-Index, có thể do nhu cầu đối với vàng tăng cao trong thời gian qua.

    VN-Index ít biến động hơn PNJ, có thể do thị trường chứng khoán ổn định hơn.

  • Kết luận:

    Biểu đồ cho thấy sự khác biệt về biến động giữa VN-Index và PNJ.

    Nhà đầu tư cần cân nhắc khả năng chấp nhận rủi ro của mình trước khi quyết định đầu tư vào PNJ hoặc VN-Index.

ggplot(mt, aes(x = Ngay, ymin = thap, ymax = cao, colour = factor(ifelse(gia.dong.cua > gia.mo.cua , "Up", "Down")))) +
  geom_segment(aes(y = thap, yend = cao, xend = Ngay)) +
  geom_rect(aes(ymin = pmin(gia.mo.cua, gia.dong.cua), ymax = pmax(gia.mo.cua, gia.dong.cua), xmin = Ngay - 0.2, xmax = Ngay + 0.2, fill = factor(ifelse(gia.dong.cua > gia.mo.cua , "Up", "Down"))), alpha = 0.6) +
  scale_fill_manual(values = c("Up" = "green", "Down" = "red")) +
  scale_colour_manual(values = c("Up" = "green", "Down" = "red")) +
  labs(title = "Biểu đồ nến", x = "Ngày", y = "Giá") +
  theme_minimal()

Nhận xét:

  • Biểu đồ nến là một công cụ mạnh mẽ để phân tích xu hướng giá cổ phiếu trong một khoảng thời gian nhất định. Từ biểu đồ này, chúng ta có thể nhận thấy một số xu hướng chính:

    Trong suốt 12 tháng qua, giá cổ phiếu PNJ đã trải qua một chuỗi sự giảm giá đáng kể.

    Từ tháng 8/2023 đến tháng 11/2023, giá cổ phiếu liên tục giảm, với mức giảm cao nhất xảy ra trong tháng 11/2023.

    Mặc dù có dấu hiệu phục hồi nhất định vào tháng 12/2023, giá cổ phiếu vẫn duy trì ở mức thấp hơn so với đầu năm.

  • Phân tích:

    Biểu đồ nến cho thấy rõ xu hướng giảm của giá cổ phiếu trong 12 tháng qua, được thể hiện qua các nến đỏ liên tiếp.

    Mặc dù có dấu hiệu phục hồi nhất định trong tháng 12/2023, nhưng nến xanh vẫn chỉ là một dấu hiệu rất nhỏ trong bức tranh chung.

    Áp lực bán vẫn là xu hướng chính, với giá đóng cửa thấp hơn giá mở cửa trong hầu hết các tháng.

  • Kết luận:

    Dựa trên biểu đồ nến, có thể nhận định rằng xu hướng giảm của giá cổ phiếu PNJ đã kéo dài trong suốt 12 tháng qua.

    Nhà đầu tư cần cân nhắc kỹ lưỡng trước khi đưa ra quyết định đầu tư vào cổ phiếu này, đặc biệt là khi xu hướng giảm vẫn đang tiếp tục.

3.4 Biểu đồ biến động giá PNJ theo các chỉ số thống kê

mean_Gia1<- mean(mt$gia.mo.cua)

mean_Gia2<- mean(mt$gia.dong.cua)
  • Trung bình giá mở cửa:

Trung bình giá mở cửa cổ phiếu PNJ theo tháng là 79.322,51 đồng. Điều này thể hiện mức giá trung bình mà cổ phiếu PNJ được mở cửa giao dịch trong tháng.

Mức giá mở cửa cao cho thấy lực mua mạnh vào đầu ngày, trong khi mức giá mở cửa thấp cho thấy lực bán mạnh vào đầu ngày.

  • Trung bình giá đóng cửa:

Trung bình giá đóng cửa cổ phiếu PNJ theo tháng là 79.041,67 đồng. Điều này cho biết mức giá trung bình mà cổ phiếu PNJ được đóng cửa giao dịch trong tháng.

Mức giá đóng cửa cao thường cho thấy lực mua mạnh vào cuối ngày, trong khi mức giá đóng cửa thấp thường cho thấy lực bán mạnh vào cuối ngày.

  • So sánh:

Trung bình giá mở cửa cao hơn trung bình giá đóng cửa, cho thấy áp lực bán mạnh hơn áp lực mua trong tháng. Tuy nhiên, mức chênh lệch giữa hai giá trị này không lớn, cho thấy thị trường tương đối ổn định.

  • Kết luận:

Mức giá của cổ phiếu PNJ biến động trong khoảng từ 79.000 đồng đến 79.300 đồng trong tháng. Điều này cho thấy sự ổn định trong biến động giá của cổ phiếu. Tuy nhiên, nhà đầu tư cần theo dõi sát sao biến động giá cổ phiếu PNJ để đưa ra quyết định đầu tư phù hợp.

median_Gia<- median(mt$gia.mo.cua)

Nhận xét:

Trung vị giá cổ phiếu PNJ là 77.984,7 đồng. Điều này cho biết rằng nửa số cổ phiếu có giá cao hơn 77.984,7 đồng và nửa số còn lại có giá thấp hơn mức này. Trung vị giá thường được xem như một chỉ số ổn định hơn so với giá trung bình, vì nó ít bị ảnh hưởng bởi các giá trị ngoại lệ.

So sánh trung vị giá với giá trung bình (79.041,67 đồng) cho thấy phân bố giá cổ phiếu không đối xứng, có sự tập trung ở phía trên mức giá trung bình. Điều này có thể cho thấy sự quan tâm của các nhà đầu tư đối với cổ phiếu PNJ với mức giá cao hơn.

Trung vị giá cũng là một điểm tham khảo quan trọng giúp nhà đầu tư đánh giá giá trị của cổ phiếu PNJ. Tuy nhiên, để có cái nhìn toàn diện hơn về cổ phiếu này, nhà đầu tư cần kết hợp thông tin từ trung vị giá với các chỉ số và biện pháp thống kê khác. Điều này giúp họ có cái nhìn sâu hơn và đưa ra quyết định đầu tư chính xác hơn.

# Biểu đồ biến động giá PNJ theo trung bình giá
ggplot(mt, aes(x = Ngay, y = gia.mo.cua)) +
  geom_line(color = "blue") +
  geom_hline(yintercept = mean_Gia1, linetype = "dashed", color = "red", size = 1) +
  annotate("text", x = max(mt$Ngay), y = mean_Gia1, label = paste("Mean:", round(mean_Gia1, 2)), hjust = -0.1, vjust = 0) +
  labs(title = "Biểu đồ biến động giá PNJ theo Trung bình",
       x = "Ngày",
       y = "Giá mở cửa") +
  theme_minimal()

Nhận xét

Giá cổ phiếu PNJ biến động mạnh hơn trung bình giá mở cửa trong 12 tháng qua.

Trong 6 tháng đầu năm, giá cổ phiếu PNJ cao hơn trung bình giá mở cửa, trong khi trong 6 tháng cuối năm, giá thấp hơn trung bình giá mở cửa.

Mức chênh lệch giữa giá cổ phiếu PNJ và trung bình giá mở cửa lớn nhất xảy ra trong tháng 10/2023, với mức chênh lệch lên đến 9%.

Biểu đồ cho thấy sự biến động của giá cổ phiếu PNJ lớn hơn so với mức giá trung bình.

Nhà đầu tư cần cẩn trọng khi xem xét đầu tư vào cổ phiếu PNJ.

# Biểu đồ biến động giá PNJ theo trung vị
ggplot(mt, aes(x = Ngay, y = gia.mo.cua)) +
  geom_line(color = "blue") +
  geom_hline(yintercept = median_Gia, linetype = "dashed", color = "green", size = 1) +
  annotate("text", x = max(mt$Ngay), y = median_Gia, label = paste("Median:", round(median_Gia, 2)), hjust = -0.1, vjust = 0) +
  labs(title = "Biểu đồ biến động giá PNJ theo Trung vị",
       x = "Ngày",
       y = "Giá mở cửa") +
  theme_minimal()

Nhận xét

Giá cổ phiếu PNJ biến động mạnh hơn so với trung vị giá mở cửa trong 12 tháng qua.

Từ tháng 4-7/2023, giá cổ phiếu PNJ thấp hơn trung vị giá mở cửa,

Mức chênh lệch giữa giá cổ phiếu PNJ và trung vị giá mở cửa lớn nhất xảy ra trong tháng 11/2023, với mức chênh lệch lên đến 8.3%.

3.5 Phân tích biến động giá cổ phiếu PNJ khi thị trường vàng trong nước tăng giá mạnh 20/12/2023- 29/12/2023

Tổng cục Thống kê cho biết tính đến ngày 25/12/2023, bình quân giá vàng thế giới ở mức 2.040,77 USD/ounce, tăng 2,93% so với tháng 11/2023. Nguyên nhân do Cục Dự trữ Liên bang Mỹ (FED) quyết định giữ nguyên lãi suất ở mức 5,25%-5,5% và dự kiến có ba đợt giảm lãi suất trong năm 2024.

Bên cạnh đó, những khó khăn đến từ thị trường chứng khoán cùng nhu cầu dự trữ vàng của các ngân hàng Trung ương và khu vực châu Á trong dịp cuối năm cũng là những nguyên nhân tác động đến giá vàng trên thế giới.

Ở trong nước, chỉ số giá vàng tháng 12/2023 tăng 3,98% so với tháng trước; tăng 13,13% so với cùng kỳ năm trước; bình quân giá vàng năm 2023 tăng 4,16%.

Bà Nguyễn Thu Oanh, Vụ trưởng Thống kê giá, Tổng cục Thống kê lý giải mức tăng 4,16% của giá vàng trong nước năm 2023 là mức giá bình quân được chia đều trong 12 tháng. Còn trong thực tế, sự biến động của giá vàng mang tính thời điểm, trong đó giá vàng đã có đợt tăng rất mạnh vào tháng 12/2023.

Cũng theo bà Nguyễn Thu Oanh, giá vàng trong nước vừa qua đã biến động rất mạnh do phụ thuộc vào hai yếu tố: Biến động cùng chiều với giá vàng thế giới và các yếu tố từ thị trường trong nước.

Cụ thể, giá vàng trong nước tăng là do lãi suất tiết kiệm thấp, thị trường bất động sản khó khăn dẫn đến vàng trở thành kênh trú ẩn được nhiều người lựa chọn, tạo ra sức cầu lớn trên thị trường.

Theo Tổng cục Thống kê, nhiều tổ chức quốc tế đã chỉ ra những vấn đề khó khăn kéo dài của tăng trưởng kinh tế toàn cầu, kéo theo những vấn đề khó khăn của thị trường tài chính. Khi đó, dòng tiền có thể tìm đến các kênh trú ẩn an toàn như vàng, USD làm giảm thiểu nguồn cung vốn cho sản xuất.

Đây là điều cần lưu ý đối với các cơ quan điều hành, từ đó có giải pháp gia tăng niềm tin cho thị trường và nhà đầu tư để dòng vốn tập trung vào khu vực sản xuất kinh doanh, tránh dự trữ quá mức cần thiết vào kênh trú ẩn như vàng.

Mặc dù giá vàng trong nước vừa có đợt tăng rất mạnh trong những ngày cuối năm nhưng tính chung cả năm 2023, bình quân giá vàng vẫn tăng thấp hơn so với mức tăng 5,74% của năm 2022.

phuong_sai <- var(dltn$gia.mo.cua)

do_lech_chuan <- sd(dltn$gia.mo.cua)

mean_tb <- mean(dltn$gia.mo.cua)

Ta thấy:

  • Phương sai:

    Phương sai của giá cổ phiếu PNJ trong khoảng thời gian biến động mạnh từ 15-29/12/2023 là 7.036.545.

    Sự biến động lớn này so với mức trung bình cho thấy mức độ rủi ro cao khi đầu tư vào cổ phiếu PNJ trong giai đoạn này.

  • Trung bình giá:

    Trung bình giá của cổ phiếu PNJ trong khoảng thời gian biến động mạnh từ 15-29/12/2023 là 82.336,363 đồng.

    Mức giá này cao hơn so với trung bình giá năm (79.322,508 đồng), cho thấy xu hướng tăng của giá cổ phiếu PNJ trong giai đoạn này.

  • Độ lệch chuẩn:

    Độ lệch chuẩn của giá cổ phiếu PNJ trong khoảng thời gian biến động mạnh từ 15-29/12/2023 là 2.652,649.

    Mức độ biến động lớn này so với mức trung bình cũng là một chỉ báo về mức độ rủi ro cao khi đầu tư vào cổ phiếu PNJ trong giai đoạn này.

  • So sánh:

    So sánh phương sai và độ lệch chuẩn cho thấy mức độ biến động của giá cổ phiếu PNJ là lớn.

    So sánh trung bình giá trong khoảng thời gian biến động mạnh và trung bình giá năm cho thấy xu hướng tăng của giá cổ phiếu PNJ trong giai đoạn này.

  • Kết luận:

    Giá cổ phiếu PNJ biến động mạnh trong khoảng thời gian từ 15-29/12/2023.

    Nhà đầu tư cần cẩn trọng và tiến hành nghiên cứu cẩn thận trước khi quyết định đầu tư vào cổ phiếu PNJ trong giai đoạn này.

** Biểu đồ Phân tích biến động giá cổ phiếu PNJ khi thị trường vàng trong nước tăng giá mạnh 20/12/2023- 29/12/2023**

giavang <- read_xlsx("C:/Users/ASUS/Downloads/nnlt/giavanggdpt.xlsx")
scale_factor <- 1000  # Chọn một hằng số phù hợp để giảm tỉ lệ

# Chia nhỏ dữ liệu giá vàng
giavang$ban.ra <- giavang$ban.ra / scale_factor
ggplot() +
  geom_col(data = giavang, aes(x = ngay, y = ban.ra, fill = "Giá vàng")) +  # Sử dụng fill thay vì color cho cột
  geom_line(data = dltn, aes(x = Ngay, y = gia.mo.cua, color = "Giá cổ phiếu PNJ")) +  # Sử dụng color cho đường
  labs(x = "Ngày", y = "Giá", color = "Biến", fill = "Biến") +  # Đặt tên cho color và fill
  scale_fill_manual(values = "lightgreen") +  # Đặt màu cho cột
  scale_color_manual(values = "brown") +  # Đặt màu cho đường
  theme_minimal()

Trong giai đoạn từ ngày 15 đến 29 tháng 12 năm 2023, chúng ta đã quan sát được một sự biến động mạnh mẽ trong cả giá vàng và giá cổ phiếu PNJ. Theo dõi các biểu đồ và dữ liệu, chúng ta nhận thấy các xu hướng chính sau:

  • Biến động của Giá Vàng và Giá Cổ Phiếu PNJ:

    Giá vàng biến động mạnh hơn giá cổ phiếu PNJ trong giai đoạn này, điều này được thể hiện qua sự thay đổi đáng kể trong giá vàng từ ngày 15 đến 21 tháng 12, tiếp đó là sự giảm giá từ ngày 22 đến 29 tháng 12.

    Trong khi đó, giá cổ phiếu PNJ có một xu hướng giảm từ ngày 15 đến 29 tháng 12, cho thấy áp lực bán đang chiếm ưu thế trong thị trường cổ phiếu.

  • Ý Nghĩa:

    Biểu đồ và dữ liệu đã giúp chúng ta nhận thức được rằng mức độ rủi ro của việc đầu tư vào vàng cao hơn so với cổ phiếu PNJ trong giai đoạn này.

    Nhà đầu tư cần cân nhắc kỹ lưỡng và tiến hành nghiên cứu cẩn thận trước khi quyết định đầu tư vào vàng hoặc cổ phiếu PNJ, đặc biệt là trong bối cảnh biến động lớn và không ổn định của thị trường.

4 Chương 4: Triển vọng tăng trưởng và dự đoán giá cổ phiếu PNJ năm 2024

4.1 Triển vọng tăng trưởng của mã PNJ

Kết thúc năm 2023, giá vàng thế giới đã tăng 13%, đánh dấu năm hoạt động tốt nhất kể từ năm 2020. Cụ thể, chốt phiên giao dịch cuối cùng của năm 2023, giá vàng giao ngay neo ở mức 2.062,2 USD/ounce.

Theo đánh giá của các chuyên gia, với đà này, giá vàng thế giới có thể chinh phục các mức cao kỷ lục mới trong năm tới và các yếu tố làm “bệ phóng” cho vàng là kỳ vọng xoay trục lãi suất, rủi ro địa chính trị và nhu cầu vàng của các ngân hàng trung ương.

Đầu tháng này, giá vàng đã “xô đổ” kỷ lục lập được vào năm 2020 và chạm mức 2.135,4 USD/ounce sau khi có tín hiệu cho thấy Cục Dự trữ Liên bang Mỹ (Fed) sẽ nới lỏng chính sách tiền tệ vào đầu năm 2024.

Trước đó, giá vàng gần như đã lọt vào vùng lãnh thổ chưa được khám phá vào tháng 5 năm nay khi cuộc khủng hoảng ngân hàng diễn ra. Tháng 10, giá vàng giảm xuống gần mức 1.800 USD/ounce nhưng đã nhanh chóng tăng trở lại nhờ lực cầu trú ẩn an toàn từ cuộc xung đột Hamas-Israel.

Những ngày cuối năm 2023, giá vàng miếng SJC tăng giảm “điên cuồng” chỉ trong tích tắc trong khi giá vàng thế giới khá bình ổn.

Cổ phiếu PNJ: Triển vọng đầu tư như thế nào khi giá vàng tăng cao?

Theo đà tăng của giá vàng thế giới, giá vàng trong nước đã liên tục tăng cao và hiện đã vượt qua vùng 71 triêu đồng/lượng, tiến sát vùng đỉnh lịch sử.

Vậy việc giá vàng tăng cao có ảnh hưởng đến triển vọng đầu tư của CTCP Vàng Bạc Đá Quý Phú Nhuận, mã cổ phiếu PNJ, doanh nghiệp kinh doanh vàng và các sản phẩm trang sức duy nhất trên sàn chứng khoán và cũng là DN quy mô top đầu Việt Nam hiện nay trong lĩnh vực này.

Đánh giá về tiềm năng tăng giá của cổ phiếu PNJ trong bối cảnh giá vàng nóng bỏng, CTCK Vietcombank (VCBS) cho rằng, PNJ có tiềm năng tăng giá thêm 23%, đặt giá mục tiêu ở mức 110.060 đồng/cổ phiếu.

Luận điểm đầu tư dựa vào tiềm năng dài hạn của ngành trang sức. Việt Nam là một trong những thị trường vàng đứng đầu Đông Nam Á với quy mô tiêu thụ ước tính đạt 55,5 tấn vàng/năm, tuy nhiên thị trường vàng trang sức vẫn còn chiếm tỷ trọng nhỏ (khoảng 21%). Với việc thu nhập người dân tăng nhanh và xu hướng chi tiêu cho các mặt hàng xa xỉ, VCBS cho rằng, dư địa tăng trưởng cho những doanh nghiệp đầu ngành như PNJ còn rất lớn.

Hơn nữa, PNJ là cổ phiếu tăng trưởng hàng đầu với định giá hấp dẫn. Chiến lược tăng trưởng của PNJ tập trung vào mở mới cửa hàng và tăng trưởng doanh thu cửa hàng cũ. VCBS kỳ vọng PNJ sẽ tiếp tục mở mới 35 - 40 cửa hàng/năm, tập trung tại các tỉnh phía Bắc và duy trì tăng trưởng doanh thu cửa hàng cũ khoảng 8-10% trong 2 năm tới dưới kỳ vọng về sức mua trang sức hồi phục, đặc biệt vào nửa cuối 2024.

Cũng theo ban lãnh đạo PNJ, dư địa mở rộng thị phần của PNJ là rất lớn, tỷ lệ người dân sở hữu vàng của Việt Nam vẫn ở mức rất thấp so với các quốc gia trong khu vực như Thái Lan, Singapore…

Bên cạnh đó, đặc thù của ngành trang sức có thể cho phép khách hàng mua các loại sản phẩm khác nhau tùy vào điều kiện kinh tế tại từng thời điểm. Ví dụ, anh A vào năm 2023 mua sản phẩm vàng, nhưng sang năm tiếp theo kinh doanh thuận lợi nên sẽ nâng cấp sản phẩm lên kim cương. Do vậy, dư địa để cải thiện doanh thu và thị phần của PNJ rất khác so với câu chuyện thị phần bị chững lại và hạn chế đà tăng trưởng như ngành sữa của VNM.

Trong 1 tuần qua, giá cổ phiếu PNJ của Công ty cổ phần Vàng bạc Đá quý Phú Nhuận đã tăng hơn 8% và tăng gần 20% trong 3 tháng qua.

Theo CTCK Yuanta, giá cổ phiếu PNJ đã tăng 20% kể từ tháng 10/2023, nhưng cổ phiếu đã điều chỉnh kể từ dịp nghỉ Tết.

Cụ thể, theo báo cáo kết quả kinh doanh sơ bộ của Vàng bạc Đá quý Phú Nhuận, quý IV/2023, công ty ghi nhận doanh thu thuần đạt 9.760 tỷ đồng và lợi nhuận sau thuế đạt 631 tỷ đồng; tăng lần lượt 18% và 34% so với cùng kỳ năm 2022.

Luỹ kế cả năm, doanh thu thuần đạt 33.137 tỷ đồng, giảm 2% và lợi nhuận sau thuế đạt 1.971 tỷ đồng, tăng gần 9% so với 2022 nhờ chiếm lĩnh thêm thị phần, gia tăng khách hàng mới, mở rộng mạng lưới và tung thêm sản phẩm. Đây cũng là mức lợi nhuận năm cao kỷ lục của Phú Nhuận.

Công ty cho biết nguyên nhân lợi nhuận tăng là do chiếm lĩnh thêm thị phần, gia tăng khách hàng mới, mở rộng mạng lưới và tung thêm sản phẩm.

So với mục tiêu đề ra, Phú Nhuận đã thực hiện được 93% chỉ tiêu doanh thu và vượt gần 2% kế hoạch lợi nhuận sau thuế cả năm.

Tính tới hết năm 2023, Phú Nhuận đã có tổng cộng 400 cửa hàng.Trong năm qua, doanh nghiệp đã mở mới 48 cửa hàng và đóng 7 cửa hàng PNJ đồng thời doanh nghiệp đã chuyển đổi mô hình kinh doanh của 3 cửa hàng độc lập PNJ Watch và 2 cửa hàng PNJ Art để tối ưu hiệu quả chi phí.

Bỏ độc quyền vàng miếng SJC không có nhiều tác động tới hoạt động của PNJ

Hiện tại, giá vàng miếng SJC đang neo ở mức nền cao nhất và chênh lệch khoảng 18 triệu đồng/lượng so với giá vàng thế giới, ngoài ra chênh lệch giữa giá mua – giá bán cũng liên tục tạo ra khoảng cách lớn và duy trì ở mức 2-3 triệu đồng/lượng. Đây là một vấn đề bất cập trong giao dịch thị trường vàng miếng. Theo đánh giá, việc sửa đổi Nghị định 24/2012/NĐ-CP hướng đến bỏ độc quyền thương hiệu vàng miếng SJC với mục tiêu chính là tạo sự cân bằng trong giao dịch vàng miếng, điều tiết giá vàng miếng SJC (hiện đang là thương hiệu quốc gia) để không quá chênh lệch với giá vàng thế giới. Vì thế, thông tin này không có nhiều tác động tới PNJ. Chúng tôi đánh giá việc sửa đổi sẽ có lợi nếu như các doanh nghiệp bán lẻ trang sức được phép nhập khẩu vàng nguyên liệu thế giới để sản xuất vàng trang sức.

Tóm lại:

Công ty cổ phần PNJ hiện đang chiếm 55% thị phần trang sức thương hiệu với tệp khách hàng trung đến cao cấp. Bên cạnh đó, công ty còn sở hữu chuỗi 394 cửa hàng bán lẻ trang sức, vượt trội hơn so với các công ty cùng ngành. Trong tương lai khả năng cao PNJ sẽ chiếm thị phần từ các cửa hàng trang sức nhỏ lẻ nhờ xu hướng ưa chuộng trang sức có thương hiệu.

Lợi nhuận ròng của PNJ được kỳ vọng tăng 5,7%/6,6%/13,5% trong giai đoạn 2023 - 2025 nhờ tốc độ mở rộng cửa hàng nhanh chóng, biên lợi nhuận gộp cải thiện. Về dài hạn, kỳ vọng chiến lược của PNJ sẽ phát triển hấp dẫn, chiến dịch quảng cáo hiệu quả hơn, hợp tác với các thương hiệu toàn cầu để thành chuỗi cửa hàng đa thương hiệu và tăng cường số hóa hỗ trợ lợi nhuận ròng duy trì tăng trưởng 2 con số với mức CAGR là 11,2% trong 2023 - 2026.

PNJ giao dịch ở mức P/E trượt 12T là 14,4 lần, thấp mức P/E trung bình 3 năm là 17,0 lần. Mức định giá này hấp dẫn so với triển vọng tăng trưởng lợi nhuận và vị thế dẫn đầu của công ty.

Nhìn chung cổ phiếu PNJ đang là lựa chọn tiềm năng. Đây là 1 trong những cổ phiếu lớn trong ngành và nằm trong nhóm trụ, nếu vnindex có nhịp kéo tới từ nhóm cổ phiếu vốn hóa lớn này thì PNJ vẫn tăng tương tiếp tương đối sáng.

4.2 Dự đoán giá cổ phiếu PNJ năm 2024 bằng mô hình ARIMA và trung bình trượt(Moving Average):

library(zoo)
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(forecast)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
mt$Ngay <- as.Date(mt$Ngay)
# Chọn dữ liệu đóng cửa
pnj_close <- mt$gia.dong.cua

# Phân chia dữ liệu
train_size <- floor(0.8 * length(pnj_close))
train <- pnj_close[1:train_size]
test <- pnj_close[(train_size + 1):length(pnj_close)]

# Dự đoán bằng ARIMA
model_arima <- auto.arima(train)
predictions_arima <- forecast(model_arima, h = length(test))

# Dự đoán bằng Moving Average
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
# Chuyển đổi đối tượng ts thành data frame
pnj_df <- data.frame(Date = time(pnj_close), Giadongcua = pnj_close)
pnj_df <- as.data.frame(lapply(pnj_df, as.numeric))

# Tính toán trung bình trượt (moving average)
window_size <- 10 # Đổi window_size thành giá trị mong muốn
pnj_df <- pnj_df %>%
  mutate(ma = rollmean(Giadongcua, k = window_size, fill = NA, align = "right"))
pnj_df<- as.data.frame(lapply(pnj_df, as.numeric))

window_size <- 5

predictions_ma <- data.frame(pnj_close, frequency = 1) %>%
  mutate(row_number = row_number()) %>%
  filter(row_number >= window_size) %>%
  mutate(ma = mean(pnj_close[(row_number - window_size + 1):row_number]))


# Visualize the predictions
plot(pnj_close, main = "Giá cổ phiếu PNJ", ylab = "Giá (VNĐ)")
lines(test, col = "blue", lwd = 2, lty = 2)
lines(predictions_arima$mean, col = "green", lwd = 2)
lines(pnj_df, col = "red", lwd = 2)
legend("topright", c("Thực tế", "Dự đoán ARIMA", "Dự đoán Moving Average"), col = c("black", "green", "red"), lwd = 2)

# Đánh giá độ chính xác

# RMSE (Root Mean Square Error)
rmse_arima <- sqrt(mean((test - predictions_arima$mean)^2))
pnj_df_filtered <- pnj_df[!is.na(pnj_df$ma), ]  # Lọc các hàng có giá trị ma thiếu
rmse_ma <- sqrt(mean((test - pnj_df_filtered$ma)^2))


print(paste("RMSE ARIMA:", rmse_arima))
## [1] "RMSE ARIMA: 6980.13937389594"
print(paste("RMSE Moving Average:", rmse_ma))
## [1] "RMSE Moving Average: 6935.47643160391"

Phân tích:

Cả hai mô hình đều dự đoán giá cổ phiếu có xu hướng tăng trong 2024. Tuy nhiên, mô hình ARIMA dự đoán giá cổ phiếu biến động mạnh hơn so với mô hình MA.

Mô hình ARIMA dự đoán giá cổ phiếu cao hơn mô hình MA trong 6 tháng đầu tiên, nhưng thấp hơn trong 6 tháng cuối cùng.

Ý nghĩa:

Biểu đồ thể hiện sự khác biệt trong dự báo giá cổ phiếu bằng hai mô hình khác nhau, giúp nhà đầu tư cân nhắc yếu tố này khi lựa chọn mô hình dự báo.

Tuy nhiên, cần lưu ý rằng biểu đồ chỉ thể hiện dự báo giá trong năm 2024, và dự đoán giá trong tương lai có thể thay đổi do nhiều yếu tố khác nhau.

Hạn chế và Lưu ý:

Biểu đồ không hiển thị các yếu tố khác có thể ảnh hưởng đến giá cổ phiếu, và nhà đầu tư cần nghiên cứu kỹ lưỡng trước khi đưa ra quyết định đầu tư.

Độ chính xác của dự báo giá phụ thuộc vào nhiều yếu tố, bao gồm chất lượng dữ liệu và sự lựa chọn mô hình. Nhà đầu tư cần cẩn trọng khi sử dụng dự đoán giá để đưa ra quyết định đầu tư.

Nhận xét:

Mức độ biến động của dự báo giá bằng mô hình ARIMA cao hơn so với mô hình MA, có thể do mô hình ARIMA nhạy cảm hơn với những thay đổi nhỏ trong dữ liệu. Nhà đầu tư cần cân nhắc yếu tố này khi lựa chọn mô hình dự báo.

Biểu đồ chỉ thể hiện dự báo giá của một cổ phiếu, do đó nhà đầu tư cần phân tích kỹ lưỡng các cổ phiếu khác trước khi đưa ra quyết định đầu tư.

5 Chương 5: Tổng kết

5.1 Kết luận:

Trong năm 2023, giá cổ phiếu PNJ đã trải qua biến động mạnh mẽ, đặc biệt là với sự tăng giảm đáng kể trong suốt năm. Trong nửa đầu năm, giá cổ phiếu PNJ tăng cao, đạt đỉnh điểm, nhưng sau đó giảm sâu trong nửa cuối năm. Sự biến động này được thúc đẩy bởi nhiều yếu tố, bao gồm tình hình kinh tế vĩ mô, kết quả kinh doanh của công ty, và yếu tố tâm lý trong thị trường.

Trong tình hình kinh tế vĩ mô, lạm phát tăng cao, lãi suất ngân hàng tăng, và giá vàng biến động mạnh đã ảnh hưởng đến tâm lý đầu tư và biến động giá cổ phiếu. Kết quả kinh doanh của PNJ cũng đã chịu ảnh hưởng, với sự tăng trưởng tích cực trong nửa đầu năm nhưng giảm sút trong nửa cuối năm.

Tuy biến động giá cổ phiếu PNJ trong tương lai khó có thể dự đoán chính xác, nhưng nhà đầu tư cần cân nhắc kỹ lưỡng các yếu tố kinh tế vĩ mô, kết quả kinh doanh của PNJ và yếu tố tâm lý trong thị trường trước khi quyết định đầu tư. Điều này đòi hỏi sự nghiên cứu và theo dõi liên tục về biến động giá cổ phiếu PNJ, để nhà đầu tư có thể điều chỉnh chiến lược đầu tư của mình phù hợp với tình hình thị trường và dự báo tương lai.

5.2 Hạn chế

Dữ liệu hạn chế: Một trong những hạn chế chính của đề tài là sự hạn chế về dữ liệu. Dữ liệu về giá cổ phiếu PNJ có thể không đầy đủ hoặc không chính xác do các vấn đề liên quan đến thu thập dữ liệu hoặc sự thay đổi trong hệ thống thông tin tài chính.

Giới hạn về thời gian: Đối với một số phân tích, việc giới hạn thời gian của dữ liệu có thể làm giảm khả năng phát hiện ra xu hướng dài hạn hoặc các biến động lớn trong giá cổ phiếu.

Phụ thuộc vào mô hình: Các phân tích có thể phụ thuộc vào mô hình, và sự lựa chọn của mô hình có thể ảnh hưởng đến kết quả của nghiên cứu. Ngoài ra, việc sử dụng mô hình có thể không thể hiện được toàn bộ đa dạng của các yếu tố ảnh hưởng đến giá cổ phiếu.

Rủi ro thị trường: Khi đầu tư vào cổ phiếu, luôn tồn tại các rủi ro thị trường không thể dự đoán trước được, bao gồm sự biến động của thị trường chung, biến động kinh tế, và các yếu tố không ngừng thay đổi.

Hạn chế về phân tích: Các phương pháp phân tích có thể không thể bao quát hoặc không chính xác trong việc dự đoán hoặc diễn giải biến động giá cổ phiếu. Sự đánh giá sai lầm hoặc không chính xác có thể dẫn đến quyết định đầu tư không chính xác.

Thiếu chi tiết về ngữ cảnh: Đôi khi, dữ liệu không đầy đủ về ngữ cảnh hoặc không có sự giải thích rõ ràng về các yếu tố ảnh hưởng đến biến động giá cổ phiếu, điều này có thể làm giảm tính hợp lý và khả năng áp dụng của phân tích.

LS0tDQp0aXRsZTogIlRp4buDdSBsdeG6rW46IFBow6JuIHTDrWNoIGJp4bq/biDEkeG7mW5nIGdpw6EgY+G7lSBwaGnhur91IFBOSiB0cm9uZyBuxINtIDIwMjMiDQphdXRob3I6ICJIb2FuZyBRdXllbiINCmRhdGU6ICJgciBmb3JtYXQoU3lzLnRpbWUoKSwgJyVIOiVNOiVTLCAlZCAtICVtIC0gJVknKWAiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6IA0KICAgIGRmX3ByaW50OiBrYWJsZQ0KICAgIHRvYzogdHJ1ZQ0KICAgIHRvY19mbG9hdDogdHJ1ZQ0KICAgIHRvY19kZXB0aDogMg0KICAgIG51bWJlcl9zZWN0aW9uczogdHJ1ZQ0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCiAgd29yZF9kb2N1bWVudDoNCiAgICB0b2M6IHRydWUNCiAgICB0b2NfZGVwdGg6ICcyJw0KICBwZGZfZG9jdW1lbnQ6DQogICAgbGF0ZXhfZW5naW5lOiB4ZWxhdGV4DQotLS0NCg0KDQoNCmBgYHtjc3MsZWNobyA9IEZBTFNFfQ0KaDEgew0KICBmb250LWZhbWlseTogIlRpbWVzIE5ldyBSb21hbiIsIFRpbWVzLCBzZXJpZjsNCiAgZm9udC1zaXplOiAzMnB4Ow0KICBmb250LXdlaWdodDogYm9sZA0KICB9DQoNCmgyIHsNCiAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7DQogIGZvbnQtc2l6ZTogMjhweDsNCiAgZm9udC13ZWlnaHQ6IGJvbGQ7DQogDQp9DQoNCmgzIHsNCiAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7DQogIGZvbnQtc2l6ZTogMjRweDsNCiAgZm9udC13ZWlnaHQ6IGJvbGQ7DQogIGZvbnQtc3R5bGU6IGl0YWxpYzsNCn0NCg0KaDQge2ZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOw0KICBmb250LXNpemU6IDIwcHg7DQogIGZvbnQtc3R5bGU6IGl0YWxpY30NCg0KYm9keSB7DQogIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOw0KICBmb250LXNpemU6IDE4cHg7DQogIA0KfQ0KcDpub3QoaDEpOm5vdChoMik6bm90KGgzKTpub3QoaDQpOm5vdChoNSkgew0KICB0ZXh0LWluZGVudDogMmVtO30NCnAgew0KICB0ZXh0LWFsaWduOiBqdXN0aWZ5Ow0KICB9DQoudG9jaWZ5LWhlYWRlciB7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KfQ0KDQpgYGANCiFbXShDOi9Vc2Vycy9BU1VTL0Rvd25sb2Fkcy9iaWFfcXV5bi1ow6xuaCDhuqNuaC0xLmpwZykNCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUpDQpgYGANCioqTOG7nWkgY+G6o20gxqFuKioNCg0KS8OtbmggZ+G7rWksIHRo4bqneSBUcuG6p24gTeG6oW5oIFTGsOG7nW5nLCANCg0KRW0geGluIMSRxrDhu6NjIGLDoHkgdOG7jyBsw7JuZyBiaeG6v3QgxqFuIHPDonUgc+G6r2MgxJHhur9uIHRo4bqneSB24buBIHPhu7EgaMaw4bubbmcgZOG6q24gdsOgIHPhu7EgaOG7lyB0cuG7oyBxdcO9IGLDoXUgbcOgIHRo4bqneSDEkcOjIGTDoG5oIGNobyB0cm9uZyBzdeG7kXQgcXXDoSB0csOsbmggZOG6oXkgdsOgIGjGsOG7m25nIGThuqtuIHRo4buxYyBoaeG7h24gdGnhu4N1IGx14bqtbiBtw7RuICpOZ8O0biBuZ+G7ryBs4bqtcCB0csOsbmggdHJvbmcgcGjDom4gdMOtY2ggZOG7ryBsaeG7h3UqLg0KDQpT4buxIHThuq1uIHTDom0gdsOgIGtp4bq/biB0aOG7qWMgc8OidSBy4buZbmcgY+G7p2EgdGjhuqd5IGtow7RuZyBjaOG7iSDEkcOjIGdpw7pwIGVtIGhp4buDdSBzw6J1IGjGoW4gduG7gSBjw6FjIGtow6FpIG5p4buHbSB2w6AgdGhhbyB0w6FjIGPGoSBi4bqjbiB0csOqbiBSc3R1ZGlvIG3DoCBjw7JuIMSRw6Mga2jGoWkgZ+G7o2kgc+G7sSBzw6FuZyB04bqhbyB2w6Aga2jhuqMgbsSDbmcgcGjDom4gdMOtY2ggY+G7p2EgZW0uIE5o4buvbmcgYnXhu5VpIGjGsOG7m25nIGThuqtuIGLhu59pIHRo4bqneSBraMO0bmcgY2jhu4kgZ2nDunAgZW0gaG/DoG4gdGhp4buHbiBiw6BpIHRp4buDdSBsdeG6rW4gbeG7mXQgY8OhY2ggY2jhuqV0IGzGsOG7o25nLCBtw6AgY8OybiBnacO6cCBwaMOhdCB0cmnhu4NuIGvhu7kgbsSDbmcgdOG7sSBo4buNYyB2w6AgbmdoacOqbiBj4bupdSB0cm9uZyB0xrDGoW5nIGxhaS4NCg0KRW0gdsO0IGPDuW5nIGPhuqNtIGvDrWNoIHPhu7EgZOG6q24gZOG6r3QgdOG6rW4gdMOsbmggY+G7p2EgdGjDouG7syB2w6AgZW0gcuG6pXQgbWF5IG3huq9uIGtoaSDEkcaw4bujYyBo4buNYyBo4buPaSB04burIG3hu5l0IG5nxrDhu51pIGdp4bqjbmcgdmnDqm4gdOG6rW4gdMOibSBuaMawIHRo4bqneS4gTeG7mXQgbOG6p24gbuG7r2EsIGVtIHhpbiBjaMOibiB0aMOgbmggY+G6o20gxqFuIHRo4bqneSB24buBIHThuqV0IGPhuqMgbmjhu69uZyBnw6wgxJHDoyBsw6BtIMSR4buDIGdpw7pwIGVtIGhvw6BuIHRow6BuaCB0aeG7g3UgbHXhuq1uIG3DtG4gKk5nw7RuIG5n4buvIGzhuq1wIHRyw6xuaCB0cm9uZyBwaMOibiB0w61jaCBk4buvIGxp4buHdSogLg0KDQpUcsOibiB0cuG7jW5nLCANCg0KUGhhbiBOZ3V54buFbiBIb8OgbmcgUXV5w6puLg0KDQojICoqQ2jGsMahbmcgMTogR2nhu5tpIHRoaeG7h3UqKiANCg0KIyMgKipN4bufIMSR4bqndSoqDQoNCi0JQ8O0bmcgdHkgQ+G7lSBwaOG6p24gVsOgbmcgYuG6oWMgxJDDoSBxdcO9IFBow7ogTmh14bqtbiAoUE5KKSDEkcaw4bujYyB0aMOgbmggbOG6rXAgdsOgbyBuxINtIDE5ODgsIGLhuq90IMSR4bqndSBob+G6oXQgxJHhu5luZyB24bubaSBt4buZdCBj4butYSBow6BuZyBraW5oIGRvYW5oIHbDoG5nIGLhuqFjIMSRw6EgcXXDvS4gVHLhuqNpIHF1YSBoxqFuIDM1IG7Eg20gcGjDoXQgdHJp4buDbiwgUE5KIMSRw6MgdOG7q25nIGLGsOG7m2Mga2jhurNuZyDEkeG7i25oIHbhu4sgdGjhur8gY+G7p2EgbcOsbmggdHLDqm4gdGjhu4sgdHLGsOG7nW5nIHbDoG5nIGLhuqFjIMSRw6EgcXXDvSBWaeG7h3QgTmFtLiBW4bubaSBoxqFuIDMzMCBj4butYSBow6BuZyB0csOqbiB0b8OgbiBxdeG7kWMsIFBOSiBraMO0bmcgY2jhu4kgbMOgIG3hu5l0IHRoxrDGoW5nIGhp4buHdSBxdeG7kWMgZ2lhIG3DoCBjw7JuIGzDoCBt4buZdCB0cm9uZyBuaOG7r25nIHRoxrDGoW5nIGhp4buHdSBow6BuZyDEkeG6p3UgdHJvbmcgbmfDoG5oIHRyYW5nIHPhu6ljLg0KDQotIFThuqdtIG5ow6xuIGPhu6dhIFBOSiBsw6AgdHLhu58gdGjDoG5oIGRvYW5oIG5naGnhu4dwIGjDoG5nIMSR4bqndSBjaMOidSDDgSB0cm9uZyBsxKluaCB24buxYyBjaOG6vyB0w6FjIHbDoCBiw6FuIGzhursgdHJhbmcgc+G7qWMsIGdp4buvIHbhu4sgdHLDrSBz4buRIDEgdHJvbmcgcGjDom4ga2jDumMgdHJ1bmcgdsOgIGNhbyBj4bqlcCBuaOG6pXQgdOG6oWkgVmnhu4d0IE5hbS4gU+G7qSBt4buHbmggY+G7p2EgaOG7jSBsw6AgbWFuZyDEkeG6v24gduG6uyDEkeG6uXAgaG/DoG4gbeG7uSwgbmnhu4FtIHZ1aSB2w6Agc+G7sSB04buxIGjDoG8gY2hvIGtow6FjaCBow6BuZyB0aMO0bmcgcXVhIGPDoWMgc+G6o24gcGjhuqltIGNo4bqldCBsxrDhu6NuZyB2w6AgZOG7i2NoIHbhu6UgdOG6rW4gdMOibS4NCg0KLSBQTkoga2jDtG5nIGNo4buJIGNow7ogdHLhu41uZyB2w6BvIGNo4bqldCBsxrDhu6NuZyBz4bqjbiBwaOG6qW0gbcOgIGPDsm4gxJHhurd0IHJhIG5o4buvbmcgZ2nDoSB0cuG7iyBj4buRdCBsw7VpIG5oxrAgY2jDrW5oIHRy4buxYywgdHLDoWNoIG5oaeG7h20sIMSR4buVaSBt4bubaSB2w6AgZ+G6r24ga+G6v3QuIFbhu5tpIHPhu7EgbMOjbmggxJHhuqFvIGPhu6dhIMOUbmcgQ2FvIFZp4bq/dCBUxrDhu51uZyAtIENo4bunIHThu4tjaCBIxJBRVCB2w6AgQsOgIEzDqiBUaOG7iyBOZ+G7jWMgRGnhu4VtIC0gVOG7lW5nIEdpw6FtIMSR4buRYywgUE5KIMSRw6MgZ2hpIG5o4bqtbiBt4buZdCBkb2FuaCB0aHUg4bqlbiB0xrDhu6NuZyB2w6BvIG7Eg20gMjAyMiBsw6AgMzIuMDAwIHThu7cgxJHhu5NuZyB2w6AgbOG7o2kgbmh14bqtbiBzYXUgdGh14bq/IMSR4bqhdCAzLjQwMCB04bu3IMSR4buTbmcuDQoNCi0gxJDhu4MgdGnhur9wIHThu6VjIHBow6F0IHRyaeG7g24sIFBOSiDEkeG6t3QgcmEga+G6vyBob+G6oWNoIG3hu58gcuG7mW5nIGjhu4cgdGjhu5FuZyBj4butYSBow6BuZywgcGjDoXQgdHJp4buDbiBrw6puaCBiw6FuIGjDoG5nIG9ubGluZSBjw7luZyB2aeG7h2MgxJHhuqd1IHTGsCB2w6BvIGPDtG5nIG5naOG7hyB2w6AgxJHhu5VpIG3hu5tpIHPDoW5nIHThuqFvLiBW4bubaSB04bqnbSBuaMOsbiBjaGnhur9uIGzGsOG7o2MgdsOgIMSR4buLbmggaMaw4bubbmcgcGjDoXQgdHJp4buDbiByw7UgcsOgbmcsIFBOSiBoeSB24buNbmcgc+G6vSB0aeG6v3AgdOG7pWMgxJHhuqF0IMSRxrDhu6NjIG5oaeG7gXUgdGjDoG5oIGPDtG5nIHRyb25nIHTGsMahbmcgbGFpIHbDoCBraOG6s25nIMSR4buLbmggduG7iyB0aOG6vyBow6BuZyDEkeG6p3UgdHJvbmcgbmfDoG5oIHRyYW5nIHPhu6ljIFZp4buHdCBOYW0uDQoNCg0KIyMgKipU4bqnbSBxdWFuIHRy4buNbmcgY+G7p2Egdmnhu4djIHBow6JuIHTDrWNoIGJp4bq/biDEkeG7mW5nIGdpw6EgY+G7lSBwaGnhur91IFBOSiBuxINtIDIwMjMqKg0KDQogICoqxJDhu5FpIHbhu5tpIG5ow6AgxJHhuqd1IHTGsDoqKg0KICAgIA0KICDigKIJKkdpw7pwIG5ow6AgxJHhuqd1IHTGsCBoaeG7g3UgcsO1IGjGoW4gduG7gSBjw6FjIHnhur91IHThu5Eg4bqjbmggaMaw4bufbmcgxJHhur9uIGdpw6EgY+G7lSBwaGnhur91IFBOSjoqIFThu6sgxJHDsywgbmjDoCDEkeG6p3UgdMawIGPDsyB0aOG7gyDEkcawYSByYSBxdXnhur90IMSR4buLbmggxJHhuqd1IHTGsCBzw6FuZyBzdeG7kXQsIGdp4bqjbSB0aGnhu4N1IHLhu6dpIHJvIHbDoCB04buRaSDEkWEgaMOzYSBs4bujaSBuaHXhuq1uLg0KICANCiAg4oCiCSpDdW5nIGPhuqVwIHRow7RuZyB0aW4gxJHhu4MgbmjDoCDEkeG6p3UgdMawIGThu7EgxJFvw6FuIHh1IGjGsOG7m25nIGdpw6EgY+G7lSBwaGnhur91IFBOSiB0cm9uZyB0xrDGoW5nIGxhaToqIEdpw7pwIG5ow6AgxJHhuqd1IHTGsCBs4buxYSBjaOG7jW4gdGjhu51pIMSRaeG7g20gbXVhIGLDoW4gY+G7lSBwaGnhur91IHBow7kgaOG7o3AuDQogIA0KICDigKIJKsSQw6FuaCBnacOhIHRp4buBbSBuxINuZyBj4bunYSBj4buVIHBoaeG6v3UgUE5KOiogU28gc8OhbmggduG7m2kgY8OhYyBj4buVIHBoaeG6v3Uga2jDoWMgdHJvbmcgbmfDoG5oIHbDoCB0aOG7iyB0csaw4budbmcgY2h1bmcuDQoNCiAgKirEkOG7kWkgduG7m2kgZG9hbmggbmdoaeG7h3A6KioNCiAgDQogIOKAogkqR2nDunAgZG9hbmggbmdoaeG7h3AgaGnhu4N1IHLDtSBoxqFuIHbhu4EgdGjhu4sgdHLGsOG7nW5nIGNo4bupbmcga2hvw6FuOiogVOG7qyDEkcOzLCBkb2FuaCBuZ2hp4buHcCBjw7MgdGjhu4MgxJHGsGEgcmEgY2hp4bq/biBsxrDhu6NjIHBow6F0IHRyaeG7g24gcGjDuSBo4bujcCDEkeG7gyB0aHUgaMO6dCBuaMOgIMSR4bqndSB0xrAuDQogIA0KICDigKIJKsSQw6FuaCBnacOhIGhp4buHdSBxdeG6oyBob+G6oXQgxJHhu5luZyBraW5oIGRvYW5oIGPhu6dhIGRvYW5oIG5naGnhu4dwOiogU28gc8OhbmggduG7m2kgY8OhYyBkb2FuaCBuZ2hp4buHcCBjw7luZyBuZ8OgbmguDQogIA0KICDigKIJKkPhuqNpIHRoaeG7h24gaG/huqF0IMSR4buZbmcga2luaCBkb2FuaDoqIMSQ4buDIG7Dom5nIGNhbyBnacOhIHRy4buLIGPhu5UgcGhp4bq/dSB2w6AgdGh1IGjDunQgbmjDoCDEkeG6p3UgdMawLg0KICANCiAgKirEkOG7kWkgduG7m2kgY8OhYyBiw6puIGxpw6puIHF1YW4ga2jDoWM6KioNCiAgDQogIOKAogkqQ3VuZyBj4bqlcCB0aMO0bmcgdGluIGNobyBjw6FjIG5ow6AgcGjDom4gdMOtY2gsIGPDtG5nIHR5IGNo4bupbmcga2hvw6FuOiogxJDhu4MgaOG7jSDEkcawYSByYSBjw6FjIGLDoW8gY8OhbyBwaMOibiB0w61jaCB0aOG7iyB0csaw4budbmcgdsOgIGPhu5UgcGhp4bq/dSBQTkouDQogIA0KICDigKIJKkN1bmcgY+G6pXAgdGjDtG5nIHRpbiBjaG8gY8OhYyBjxqEgcXVhbiBxdeG6o24gbMO9IG5ow6Agbsaw4bubYzoqIMSQ4buDIGjhu40gY8OzIHRo4buDIGdpw6FtIHPDoXQgdGjhu4sgdHLGsOG7nW5nIGNo4bupbmcga2hvw6FuIHbDoCBi4bqjbyB24buHIHF1eeG7gW4gbOG7o2kgY+G7p2EgbmjDoCDEkeG6p3UgdMawLg0KICANCg0KKipL4bq/dCBsdeG6rW46KiogVmnhu4djIHBow6JuIHTDrWNoIGJp4bq/biDEkeG7mW5nIGdpw6EgY+G7lSBwaGnhur91IFBOSiBuxINtIDIwMjMgbWFuZyBs4bqhaSBuaGnhu4F1IGzhu6NpIMOtY2ggY2hvIGPDoWMgbmjDoCDEkeG6p3UgdMawLCBkb2FuaCBuZ2hp4buHcCB2w6AgY8OhYyBiw6puIGxpw6puIHF1YW4ga2jDoWMuIERvIMSRw7MsIMSRw6J5IGzDoCBt4buZdCBob+G6oXQgxJHhu5luZyBxdWFuIHRy4buNbmcgY+G6p24gxJHGsOG7o2MgdGjhu7FjIGhp4buHbiB0aMaw4budbmcgeHV5w6puIHbDoCBoaeG7h3UgcXXhuqMuDQoNCiMjICoqTeG7pWMgdGnDqnU6KioNCg0KLQkqxJDDoW5oIGdpw6EgbeG7qWMgxJHhu5kgYmnhur9uIMSR4buZbmcgZ2nDoSBj4buVIHBoaeG6v3UgUE5KIHRyb25nIG7Eg20gMjAyMzoqIFNvIHPDoW5oIHbhu5tpIHRo4buLIHRyxrDhu51uZyBjaHVuZyB2w6AgY8OhYyBj4buVIHBoaeG6v3UgY8O5bmcgbmfDoG5oLg0KDQotCSpYw6FjIMSR4buLbmggY8OhYyB54bq/dSB04buRIOG6o25oIGjGsOG7n25nIMSR4bq/biBnacOhIGPhu5UgcGhp4bq/dSBQTko6KiBCYW8gZ+G7k20geeG6v3UgdOG7kSB2xKkgbcO0LCBuZ8OgbmggdsOgIGRvYW5oIG5naGnhu4dwLg0KDQotCSpE4buxIMSRb8OhbiB4dSBoxrDhu5tuZyBnacOhIGPhu5UgcGhp4bq/dSBQTkogdHJvbmcgdMawxqFuZyBsYWk6KiBE4buxYSB0csOqbiBwaMOibiB0w61jaCBjxqEgYuG6o24sIGvhu7kgdGh14bqtdCB2w6AgY8OhYyB54bq/dSB04buRIOG6o25oIGjGsOG7n25nLg0KDQojIyAqKlBo4bqhbSB2aSBuZ2hpw6puIGPhu6l1OioqDQoNCioqxJDhu5FpIHTGsOG7o25nIG5naGnDqm4gY+G7qXU6KiogQ+G7lSBwaGnhur91IFBOSiBuacOqbSB54bq/dCB0csOqbiBT4bufIEdpYW8gZOG7i2NoIENo4bupbmcga2hvw6FuIFRQLiBI4buTIENow60gTWluaCAoSE9TRSkgduG7m2kgbcOjIGNo4bupbmcga2hvw6FuIFBOSi4NCg0KKipUaOG7nWkgZ2lhbiBuZ2hpw6puIGPhu6l1OioqIE7Eg20gMjAyMyAodOG7qyAwMS8wMS8yMDIzIMSR4bq/biAzMS8xMi8yMDIzKS4NCg0KKipOZ3Xhu5NuIGThu68gbGnhu4d1OioqDQogIA0KICDigKIJQsOhbyBjw6FvIHTDoGkgY2jDrW5oIGPhu6dhIFBOSi4NCiAgDQogIOKAoglCaeG7g3UgxJHhu5MgZ2nDoSBj4buVIHBoaeG6v3UgUE5KLg0KIA0KICDigKIJQ8OhYyB0cmFuZyB3ZWIgdMOgaSBjaMOtbmggdXkgdMOtbiBuaMawIFZpZXRzdG9jaywgQ2FmZWYsIOKApg0KIA0KICDigKIJQ8OhYyBiw6BpIGLDoW8sIG5naGnDqm4gY+G7qXUgduG7gSB0aOG7iyB0csaw4budbmcgY2jhu6luZyBraG/DoW4gdsOgIGPhu5UgcGhp4bq/dSBQTkouDQogIA0KICANCiAgDQojICoqQ2jGsMahbmcgMjogQ8ahIHPhu58gbMO9IGx14bqtbioqDQoNCiMjICoqS2jDoWkgbmnhu4dtIHbhu4EgdGjhu4sgdHLGsOG7nW5nIGNo4bupbmcga2hvw6FuLCB2YWkgdHLDsiB2w6AgY2jhu6ljIG7Eg25nOioqDQoNCioqS2jDoWkgbmnhu4dtOioqIFRo4buLIHRyxrDhu51uZyBjaOG7qW5nIGtob8OhbiBsw6AgbsahaSBkaeG7hW4gcmEgY8OhYyBob+G6oXQgxJHhu5luZyBtdWEgYsOhbiwgdHJhbyDEkeG7lWksIGNodXnhu4NuIG5oxrDhu6NuZyBjw6FjIGxv4bqhaSBjaOG7qW5nIGtob8OhbiBuaMawIGPhu5UgcGhp4bq/dSwgdHLDoWkgcGhp4bq/dSwuLi4gZ2nhu69hIGPDoWMgbmjDoCDEkeG6p3UgdMawLiBUaOG7iyB0csaw4budbmcgY2jhu6luZyBraG/DoW4gY8OzIHRo4buDIMSRxrDhu6NjIHThu5UgY2jhu6ljIHThuq1wIHRydW5nIHThuqFpIG3hu5l0IMSR4buLYSDEkWnhu4NtIHbhuq10IGNo4bqldCAoc8OgbiBnaWFvIGThu4tjaCkgaG/hurdjIHBoaSB04bqtcCB0cnVuZyB0aMO0bmcgcXVhIGPDoWMgaOG7hyB0aOG7kW5nIGdpYW8gZOG7i2NoIMSRaeG7h24gdOG7rS4gDQoNCioqVmFpIHRyw7I6KiogDQoNCi0gS8OqbmggaHV5IMSR4buZbmcgduG7kW4gY2hvIGRvYW5oIG5naGnhu4dwOiBEb2FuaCBuZ2hp4buHcCBodXkgxJHhu5luZyB24buRbiB04burIGPDoWMgbmjDoCDEkeG6p3UgdMawIHRow7RuZyBxdWEgdmnhu4djIHBow6F0IGjDoG5oIGPhu5UgcGhp4bq/dSwgdHLDoWkgcGhp4bq/dSwuLi4NCg0KLSBDxqEgaOG7mWkgxJHhuqd1IHTGsCBjaG8gbmjDoCDEkeG6p3UgdMawOiBOaMOgIMSR4bqndSB0xrAgY8OzIHRo4buDIG11YSBiw6FuIGNo4bupbmcga2hvw6FuIMSR4buDIGtp4bq/bSBs4bujaSBuaHXhuq1uLg0KDQotIFBo4bqjbiDDoW5oIHTDrG5oIGjDrG5oIGtpbmggdOG6vzogR2nDoSBj4bqjIHbDoCBraOG7kWkgbMaw4bujbmcgZ2lhbyBk4buLY2ggdHLDqm4gdGjhu4sgdHLGsOG7nW5nIGNo4bupbmcga2hvw6FuIHBo4bqjbiDDoW5oIHTDrG5oIGjDrG5oIGtpbmggdOG6vyB2xKkgbcO0IHbDoCBob+G6oXQgxJHhu5luZyBj4bunYSBjw6FjIGRvYW5oIG5naGnhu4dwLg0KDQotIFRow7pjIMSR4bqpeSBz4buxIHBow6F0IHRyaeG7g24ga2luaCB04bq/OiBUaOG7iyB0csaw4budbmcgY2jhu6luZyBraG/DoW4gZ8OzcCBwaOG6p24gdGjDumMgxJHhuql5IHPhu7EgcGjDoXQgdHJp4buDbiBraW5oIHThur8gdGjDtG5nIHF1YSB2aeG7h2MgaHV5IMSR4buZbmcgduG7kW4gdsOgIHBow6JuIGLhu5Ugbmd14buTbiB24buRbiBoaeG7h3UgcXXhuqMuDQoNCioqQ2jhu6ljIG7Eg25nOioqDQoNCiAg4oCiCUh1eSDEkeG7mW5nIHbhu5FuOiBUaOG7iyB0csaw4budbmcgY2jhu6luZyBraG/DoW4gY3VuZyBj4bqlcCBrw6puaCBodXkgxJHhu5luZyB24buRbiBkw6BpIGjhuqFuIGNobyBjw6FjIGRvYW5oIG5naGnhu4dwLCBjaMOtbmggcGjhu6cuDQoNCiAg4oCiCVThuqFvIHTDrW5oIHRoYW5oIGtob+G6o24gY2hvIGNo4bupbmcga2hvw6FuOiBOaMOgIMSR4bqndSB0xrAgY8OzIHRo4buDIGThu4UgZMOgbmcgbXVhIGLDoW4sIGNodXnhu4NuIMSR4buVaSBjaOG7qW5nIGtob8OhbiB0aMOgbmggdGnhu4FuIG3hurd0Lg0KDQogIOKAognEkMOhbmggZ2nDoSBob+G6oXQgxJHhu5luZyBj4bunYSBkb2FuaCBuZ2hp4buHcDogR2nDoSBj4buVIHBoaeG6v3UgcGjhuqNuIMOhbmggdMOsbmggaMOsbmgga2luaCBkb2FuaCB2w6AgdGnhu4FtIG7Eg25nIHBow6F0IHRyaeG7g24gY+G7p2EgZG9hbmggbmdoaeG7h3AuDQoNCiAg4oCiCVThuqFvIG3DtGkgdHLGsOG7nW5nIMSR4buDIENow61uaCBwaOG7pyB0aOG7sWMgaGnhu4duIGPDoWMgY2jDrW5oIHPDoWNoIGtpbmggdOG6vyB2xKkgbcO0OiBDaMOtbmggcGjhu6cgY8OzIHRo4buDIHPhu60gZOG7pW5nIHRo4buLIHRyxrDhu51uZyBjaOG7qW5nIGtob8OhbiDEkeG7gyB0aOG7sWMgaGnhu4duIGPDoWMgY2jDrW5oIHPDoWNoIHRp4buBbiB04buHLCB0w6BpIGtow7NhDQoNCg0KKkvhur90IGx14bqtbjoqDQogIA0KICAtIFRo4buLIHRyxrDhu51uZyBjaOG7qW5nIGtob8OhbiBsw6AgbeG7mXQgdGjhu4sgdHLGsOG7nW5nIHF1YW4gdHLhu41uZywgxJHDs25nIHZhaSB0csOyIHRvIGzhu5tuIHRyb25nIG7hu4FuIGtpbmggdOG6vy4gVGjhu4sgdHLGsOG7nW5nIGNo4bupbmcga2hvw6FuIGN1bmcgY+G6pXAga8OqbmggaHV5IMSR4buZbmcgduG7kW4gY2hvIGRvYW5oIG5naGnhu4dwLCBjxqEgaOG7mWkgxJHhuqd1IHTGsCBjaG8gbmjDoCDEkeG6p3UgdMawIHbDoCBnw7NwIHBo4bqnbiB0aMO6YyDEkeG6qXkgc+G7sSBwaMOhdCB0cmnhu4NuIGtpbmggdOG6vy4NCg0KIyMgKipDw6FjIHnhur91IHThu5Eg4bqjbmggdOG7kSDhuqNuaCBoxrDhu59uZyDEkeG6v24gZ2nDoSBj4buVIHBoaeG6v3U6KioNCg0KICBHacOhIGPhu5UgcGhp4bq/dSBraMO0bmcgY2jhu4kgcGjhuqNuIMOhbmggZ2nDoSB0cuG7iyB0aOG7sWMgY+G7p2EgbeG7mXQgY8O0bmcgdHkgbcOgIGPDsm4gcGjhuqNuIMOhbmggc+G7sSDhuqNuaCBoxrDhu59uZyBj4bunYSBt4buZdCBsb+G6oXQgY8OhYyB54bq/dSB04buRIG5nb+G6oWkgdmkuIFnhur91IHThu5EgdsSpIG3DtCBuaMawIHTDrG5oIGjDrG5oIGtpbmggdOG6vywgY2jDrW5oIHPDoWNoIGPhu6dhIGNow61uaCBwaOG7pywgdsOgIGPDoWMgc+G7sSBraeG7h24gYuG6pXQgbmfhu50gbmjGsCB0aGnDqm4gdGFpIGhheSBk4buLY2ggYuG7h25oLCDEkeG7gXUgY8OzIHRo4buDIHTDoWMgxJHhu5luZyBs4bubbiDEkeG6v24gZ2nDoSBj4buVIHBoaeG6v3UuIFPhu7EgYmnhur9uIMSR4buZbmcgY+G7p2EgR0RQLCBsw6NpIHN14bqldCB2w6AgdOG7tyBnacOhIGjhu5FpIMSRb8OhaSBjw7MgdGjhu4MgdOG6oW8gcmEgbmjhu69uZyDEkeG7mW5nIGzhu7FjIG3huqFuaCBt4bq9IMSR4buRaSB24bubaSB0aOG7iyB0csaw4budbmcgY2jhu6luZyBraG/DoW4uDQoNCiAgTmdvw6BpIHJhLCB54bq/dSB04buRIG5nw6BuaCBjxaluZyDEkcOzbmcgbeG7mXQgdmFpIHRyw7IgcXVhbiB0cuG7jW5nIHRyb25nIHZp4buHYyB4w6FjIMSR4buLbmggZ2nDoSBj4buVIHBoaeG6v3UuIE3hu5l0IG5nw6BuaCBjw7RuZyBuZ2hp4buHcCBj4bqhbmggdHJhbmggY2FvIGhv4bq3YyBjw7Mgc+G7sSBiaeG6v24gxJHhu5luZyBs4bubbiBjw7MgdGjhu4MgdOG6oW8gcmEgw6FwIGzhu7FjIGzDqm4gbOG7o2kgbmh14bqtbiBj4bunYSBjw6FjIGPDtG5nIHR5IHRyb25nIG5nw6BuaCB2w6AgdOG7qyDEkcOzIOG6o25oIGjGsOG7n25nIMSR4bq/biBnacOhIGPhu5UgcGhp4bq/dSBj4bunYSBjaMO6bmcuIMSQ4buTbmcgdGjhu51pLCB4dSBoxrDhu5tuZyB0acOqdSBkw7luZyB2w6AgdsOybmcgxJHhu51pIGPhu6dhIG5nw6BuaCBjxaluZyBjw7MgdGjhu4MgdOG6oW8gcmEgbmjhu69uZyBjxqEgaOG7mWkgaG/hurdjIHRow6FjaCB0aOG7qWMgxJHhu5FpIHbhu5tpIGRvYW5oIG5naGnhu4dwIHbDoCBnacOhIGPhu5UgcGhp4bq/dSBj4bunYSBo4buNLg0KDQogIE5nb8OgaSBoYWkgbmjDs20geeG6v3UgdOG7kSB0csOqbiwgeeG6v3UgdOG7kSBkb2FuaCBuZ2hp4buHcCBjxaluZyDEkcOzbmcgbeG7mXQgdmFpIHRyw7IgcXVhbiB0cuG7jW5nIHRyb25nIHjDoWMgxJHhu4tuaCBnacOhIGPhu5UgcGhp4bq/dS4gS+G6v3QgcXXhuqMga2luaCBkb2FuaCwgY2hp4bq/biBsxrDhu6NjIHBow6F0IHRyaeG7g24sIGJhbiBsw6NuaCDEkeG6oW8gdsOgIGNow61uaCBzw6FjaCBj4buVIHThu6ljIGPhu6dhIGRvYW5oIG5naGnhu4dwIMSR4buBdSBjw7MgdGjhu4Mg4bqjbmggaMaw4bufbmcgxJHhur9uIG5p4buBbSB0aW4gY+G7p2EgbmjDoCDEkeG6p3UgdMawIHbDoCBnacOhIGPhu5UgcGhp4bq/dSBj4bunYSBjw7RuZyB0eS4NCg0KICBUdXkgbmhpw6puLCBj4bqnbiBuaOG6pW4gbeG6oW5oIHLhurFuZyB2aeG7h2MgcGjDom4gdMOtY2ggZ2nDoSBj4buVIHBoaeG6v3UgbMOgIG3hu5l0IHF1w6EgdHLDrG5oIHBo4bupYyB04bqhcCB2w6AgxJHhuqd5IHLhu6dpIHJvLiBOaMOgIMSR4bqndSB0xrAgY+G6p24gY8OzIGtp4bq/biB0aOG7qWMgduG7r25nIHbDoG5nIGPFqW5nIG5oxrAga+G7uSBuxINuZyBwaMOibiB0w61jaCB0csaw4bubYyBraGkgcmEgcXV54bq/dCDEkeG7i25oIMSR4bqndSB0xrAuIMSQ4buRaSB24bubaSBuaOG7r25nIG5ow6AgxJHhuqd1IHTGsCBjw7Mgw70gxJHhu4tuaCB0aGFtIGdpYSB0aOG7iyB0csaw4budbmcsIHZp4buHYyBu4bqvbSB24buvbmcgY8OhYyB54bq/dSB04buRIG7DoHkgbMOgIHbDtCBjw7luZyBxdWFuIHRy4buNbmcgxJHhu4MgxJHhuqNtIGLhuqNvIHF1eeG6v3QgxJHhu4tuaCDEkeG6p3UgdMawIGPhu6dhIGjhu40gbMOgIGPDsyBjxINuIGPhu6kgdsOgIGhp4buHdSBxdeG6oy4NCiAgDQojIyAqKkzDvSB0aHV54bq/dCB24buBIGJp4bq/biDEkeG7mW5nIGdpw6EgY+G7lSBwaGnhur91OioqDQoNCkJp4bq/biDEkeG7mW5nIGdpw6EgY+G7lSBwaGnhur91IGzDoCB0aMaw4bubYyDEkW8gbeG7qWMgxJHhu5kgYmnhur9uIMSR4buZbmcgY+G7p2EgZ2nDoSBj4buVIHBoaeG6v3UgdHJvbmcgbeG7mXQga2hv4bqjbmcgdGjhu51pIGdpYW4gbmjhuqV0IMSR4buLbmguIE7DsyBjw7MgdGjhu4MgxJHGsOG7o2MgxJFvIGLhurFuZyDEkeG7mSBs4buHY2ggY2h14bqpbiwgcGjGsMahbmcgc2FpIGhv4bq3YyBjw6FjIHRoxrDhu5tjIMSRbyBraMOhYy4gQmnhur9uIMSR4buZbmcgZ2nDoSBj4buVIHBoaeG6v3UgY8OzIHRo4buDIMSRxrDhu6NjIGfDonkgcmEgYuG7n2kgbeG7mXQgc+G7kSB54bq/dSB04buRLCBiYW8gZ+G7k206DQoNCiAgLSAqVGluIHThu6ljIHbDoCBz4buxIGtp4buHbjoqIFRpbiB04bupYyB04buRdCB24buBIG3hu5l0IGPDtG5nIHR5IGPDsyB0aOG7gyBraGnhur9uIGdpw6EgY+G7lSBwaGnhur91IHTEg25nLCB0cm9uZyBraGkgdGluIHThu6ljIHjhuqV1IGPDsyB0aOG7gyBraGnhur9uIGdpw6EgY+G7lSBwaGnhur91IGdp4bqjbS4NCg0KICAtICpDdW5nIHbDoCBj4bqndToqIEtoaSBuaHUgY+G6p3UgduG7gSBj4buVIHBoaeG6v3UgY2FvIGjGoW4gbmd14buTbiBjdW5nLCBnacOhIGPhu5UgcGhp4bq/dSBz4bq9IHTEg25nLiBOZ8aw4bujYyBs4bqhaSwga2hpIG5ndeG7k24gY3VuZyBjYW8gaMahbiBuaHUgY+G6p3UsIGdpw6EgY+G7lSBwaGnhur91IHPhur0gZ2nhuqNtLg0KDQogIC0gKlTDom0gbMO9IG5ow6AgxJHhuqd1IHTGsDoqIFTDom0gbMO9IG5ow6AgxJHhuqd1IHTGsCBjw7MgdGjhu4Mg4bqjbmggaMaw4bufbmcgxJHhur9uIGdpw6EgY+G7lSBwaGnhur91LiBLaGkgbmjDoCDEkeG6p3UgdMawIGzhuqFjIHF1YW4sIGjhu40gY8OzIG5oaeG7gXUga2jhuqMgbsSDbmcgbXVhIGPhu5UgcGhp4bq/dSBoxqFuLCDEkWnhu4F1IG7DoHkgY8OzIHRo4buDIGtoaeG6v24gZ2nDoSBj4buVIHBoaeG6v3UgdMSDbmcuIE5nxrDhu6NjIGzhuqFpLCBraGkgbmjDoCDEkeG6p3UgdMawIGJpIHF1YW4sIGjhu40gY8OzIG5oaeG7gXUga2jhuqMgbsSDbmcgYsOhbiBj4buVIHBoaeG6v3UgaMahbiwgxJFp4buBdSBuw6B5IGPDsyB0aOG7gyBraGnhur9uIGdpw6EgY+G7lSBwaGnhur91IGdp4bqjbS4NCiAgDQpCaeG6v24gxJHhu5luZyBj4bunYSBnacOhIGPhu5UgcGhp4bq/dSBjw7MgdGjhu4Mg4bqjbmggaMaw4bufbmcgxJHhur9uIHThuq1wIMSRb8OgbiBt4buZdCBjw6FjaCDEkWEgY2hp4buBdSB2w6AgxJHDtGkga2hpIGPDsyB0aOG7gyBjw7MgdMOhYyDEkeG7mW5nIGzhu5tuIMSR4bq/biBjw6FjIGtow61hIGPhuqFuaCBraMOhYyBuaGF1IGPhu6dhIGRvYW5oIG5naGnhu4dwLiBExrDhu5tpIMSRw6J5IGzDoCBt4buZdCBz4buRIGPDoWNoIG3DoCBiaeG6v24gxJHhu5luZyBnacOhIGPhu5UgcGhp4bq/dSBjw7MgdGjhu4Mg4bqjbmggaMaw4bufbmcgxJHhur9uIG3hu5l0IHThuq1wIMSRb8OgbjoNCg0KKipUw6BpIGNow61uaCBj4bunYSBkb2FuaCBuZ2hp4buHcDoqKg0KICAgIA0KICAtIEJp4bq/biDEkeG7mW5nIGdpw6EgY+G7lSBwaGnhur91IGPDsyB0aOG7gyDhuqNuaCBoxrDhu59uZyB0cuG7sWMgdGnhur9wIMSR4bq/biBnacOhIHRy4buLIHRo4buLIHRyxrDhu51uZyBj4bunYSB04bqtcCDEkW/DoG4uIEtoaSBnacOhIGPhu5UgcGhp4bq/dSB0xINuZywgZ2nDoSB0cuG7iyB0aOG7iyB0csaw4budbmcgdMSDbmcgbMOqbiwgxJFp4buBdSBuw6B5IGPDsyB0aOG7gyB04bqhbyDEkWnhu4F1IGtp4buHbiB0aHXhuq1uIGzhu6NpIGNobyB2aeG7h2MgaHV5IMSR4buZbmcgduG7kW4gdGjDtG5nIHF1YSB2aeG7h2MgcGjDoXQgaMOgbmggY+G7lSBwaGnhur91IG3hu5tpIGhv4bq3YyB0xINuZyBjxrDhu51uZyB24buRbiBjaOG7pyBz4bufIGjhu691LiBOZ8aw4bujYyBs4bqhaSwga2hpIGdpw6EgY+G7lSBwaGnhur91IGdp4bqjbSwgZ2nDoSB0cuG7iyB0aOG7iyB0csaw4budbmcgZ2nhuqNtLCBjw7MgdGjhu4MgZ8OieSBraMOzIGtoxINuIHRyb25nIHZp4buHYyBodXkgxJHhu5luZyB24buRbiBob+G6t2MgdOG6oW8gw6FwIGzhu7FjIGzDqm4gdMOgaSBjaMOtbmggY+G7p2EgZG9hbmggbmdoaeG7h3AuDQogIA0KKirEkMOhbmggZ2nDoSB24buBIGhp4buHdSBzdeG6pXQgdsOgIHRp4buBbSBuxINuZyB0xrDGoW5nIGxhaToqKg0KICANCiAgLSBCaeG6v24gxJHhu5luZyBnacOhIGPhu5UgcGhp4bq/dSB0aMaw4budbmcgxJHGsOG7o2MgbmjDoCDEkeG6p3UgdMawIHbDoCBjw6FjIG5ow6AgcGjDom4gdMOtY2ggxJHDoW5oIGdpw6EgxJHhu4MgaGnhu4N1IHbhu4EgaGnhu4d1IHN14bqldCB2w6AgdGnhu4FtIG7Eg25nIHTGsMahbmcgbGFpIGPhu6dhIGRvYW5oIG5naGnhu4dwLiBN4buZdCBz4buxIHTEg25nIGdpw6Eg4buVbiDEkeG7i25oIHRoxrDhu51uZyDEkcaw4bujYyB4ZW0gbMOgIG3hu5l0IGThuqV1IGhp4buHdSB0w61jaCBj4buxYyB24buBIHRp4buBbSBuxINuZyB0xINuZyB0csaw4bufbmcgdsOgIGzhu6NpIG5odeG6rW4gY+G7p2EgdOG6rXAgxJFvw6BuLiBOZ8aw4bujYyBs4bqhaSwgc+G7sSBnaeG6o20gZ2nDoSDEkeG7mXQgbmfhu5l0IGPDsyB0aOG7gyB04bqhbyByYSBsbyBuZ+G6oWkgduG7gSB0w6xuaCBow6xuaCBraW5oIGRvYW5oIGhv4bq3YyB0cmnhu4NuIHbhu41uZyB0xrDGoW5nIGxhaS4NCg0KKipD4buVIMSRw7RuZyB2w6AgbmjDoCDEkeG6p3UgdMawOioqDQoNCiAgLSBCaeG6v24gxJHhu5luZyBnacOhIGPhu5UgcGhp4bq/dSBjw7MgdGjhu4Mg4bqjbmggaMaw4bufbmcgxJHhur9uIHF1YW4gxJFp4buDbSB2w6AgcXV54bq/dCDEkeG7i25oIMSR4bqndSB0xrAgY+G7p2EgY+G7lSDEkcO0bmcgdsOgIG5ow6AgxJHhuqd1IHTGsC4gU+G7sSB0xINuZyBnacOhIGPDsyB0aOG7gyB0aHUgaMO6dCBz4buxIHF1YW4gdMOibSB04burIGPDoWMgbmjDoCDEkeG6p3UgdMawIG3hu5tpIHbDoCB0xINuZyBsw7JuZyB0aW4gY+G7p2EgY+G7lSDEkcO0bmcgaGnhu4duIGPDsy4gTmfGsOG7o2MgbOG6oWksIHPhu7EgZ2nhuqNtIGdpw6EgY8OzIHRo4buDIGThuqtuIMSR4bq/biBz4buxIGxvIGzhuq9uZyB2w6Agc+G7sSByw7p0IGx1aSBj4bunYSBuaMOgIMSR4bqndSB0xrAuDQoNCioqSG/huqF0IMSR4buZbmcga2luaCBkb2FuaCB2w6AgY2hp4bq/biBsxrDhu6NjIGRvYW5oIG5naGnhu4dwOioqDQoNCiAgLSBCaeG6v24gxJHhu5luZyBnacOhIGPhu5UgcGhp4bq/dSBjw7MgdGjhu4Mg4bqjbmggaMaw4bufbmcgxJHhur9uIGNoaeG6v24gbMaw4bujYyBraW5oIGRvYW5oIHbDoCBxdXnhur90IMSR4buLbmggZG9hbmggbmdoaeG7h3AuIFPhu7EgdMSDbmcgZ2nDoSBjw7MgdGjhu4MgY3VuZyBj4bqlcCBjxqEgaOG7mWkgY2hvIHThuq1wIMSRb8OgbiDEkeG7gyB0xINuZyBjxrDhu51uZyBob+G6oXQgxJHhu5luZyBNJkEsIG3hu58gcuG7mW5nIHF1eSBtw7Qga2luaCBkb2FuaCBob+G6t2MgdGjhu7FjIGhp4buHbiBjw6FjIGThu7Egw6FuIMSR4bqndSB0xrAgbeG7m2kuIE5nxrDhu6NjIGzhuqFpLCBz4buxIGdp4bqjbSBnacOhIGPDsyB0aOG7gyBideG7mWMgdOG6rXAgxJFvw6BuIHBo4bqjaSDEkWnhu4F1IGNo4buJbmggY2hp4bq/biBsxrDhu6NjIGhv4bq3YyB0aeG6v24gaMOgbmggY8OhYyBiaeG7h24gcGjDoXAgdMOhaSBj4bqldSB0csO6Yy4NCg0KDQoqKkvhur90IGx14bqtbjoqKiBWw6wgduG6rXksIGJp4bq/biDEkeG7mW5nIGdpw6EgY+G7lSBwaGnhur91IGtow7RuZyBjaOG7iSDhuqNuaCBoxrDhu59uZyDEkeG6v24gZ2nDoSB0cuG7iyB0aOG7iyB0csaw4budbmcgbcOgIGPDsm4gY8OzIHTDoWMgxJHhu5luZyBzw6J1IHLhu5luZyDEkeG6v24gbmhp4buBdSBraMOtYSBj4bqhbmgga2jDoWMgbmhhdSBj4bunYSB04bqtcCDEkW/DoG4sIHThu6sgdMOgaSBjaMOtbmggxJHhur9uIGNoaeG6v24gbMaw4bujYyBraW5oIGRvYW5oIHbDoCBxdeG6o24gbMO9IGPhu5UgxJHDtG5nLg0KDQoNCiMjICoqVOG7lW5nIHF1YW4gduG7gSBjw6FjIG3DoyBj4buVIHBoaeG6v3U6IFBOSiwgVk5JLCBWTjMwLCBWTjEwMC4qKg0KDQojIyMgKipQTkoqKg0KDQotIE3DoyBQTkogbMOgIG3DoyBjaOG7qW5nIGtob8OhbiBj4bunYSBDw7RuZyB0eSBD4buVIHBo4bqnbiBWw6BuZyBi4bqhYyDEkMOhIHF1w70gUGjDuiBOaHXhuq1uLCBsw6AgZG9hbmggbmdoaeG7h3AgbOG7m24gbmjhuqV0IHRyb25nIG5nw6BuaCB0cmFuZyBz4bupYyBWaeG7h3QgTmFtIHbhu5tpIGjhu4cgdGjhu5FuZyBoxqFuIDMzMCBj4butYSBow6BuZyB0csOqbiB0b8OgbiBxdeG7kWMuDQoNCi0gTOG7i2NoIHPhu60gY+G7p2EgUE5KIGLhuq90IMSR4bqndSB04burIG7Eg20gMTk4OCwga2hpIHRow6BuaCBs4bqtcCBEb2FuaCBuZ2hp4buHcCB0xrAgbmjDom4gVsOgbmcgYuG6oWMgxJHDoSBxdcO9IFBow7ogTmh14bqtbi4gU2F1IMSRw7MsIHbDoG8gbsSDbSAxOTkyLCBjw7RuZyB0eSBuw6B5IGNodXnhu4NuIMSR4buVaSB0aMOgbmggQ8O0bmcgdHkgVsOgbmcgYuG6oWMgxJHDoSBxdcO9IFBow7ogTmh14bqtbiB2w6AgdGnhur9wIHThu6VjIHBow6F0IHRyaeG7g24uIMSQ4bq/biBuxINtIDIwMDQsIFBOSiBs4bqhaSB0aeG6v24gdGjDqm0gbeG7mXQgYsaw4bubYyBu4buvYSBraGkgY2h1eeG7g24gxJHhu5VpIHRow6BuaCBDw7RuZyB0eSBD4buVIHBo4bqnbiwgdsOgIHThu6sgbsSDbSAyMDA5LCBj4buVIHBoaeG6v3UgY+G7p2EgY8O0bmcgdHkgxJHGsOG7o2MgbmnDqm0geeG6v3QgdHLDqm4gU+G7nyBHaWFvIGThu4tjaCBDaOG7qW5nIGtob8OhbiBUUC5IQ00gKEhvU0UpLg0KDQotIFRyb25nIGzEqW5oIHbhu7FjIGhv4bqhdCDEkeG7mW5nLCBQTkogY2jhu6cgeeG6v3UgdOG6rXAgdHJ1bmcgdsOgbyBz4bqjbiB4deG6pXQgdsOgIGtpbmggZG9hbmggdHJhbmcgc+G7qWMgdsOgbmcsIGLhuqFjLCDEkcOhIHF1w70uIEjhu40gY8WpbmcgY3VuZyBj4bqlcCBk4buLY2ggduG7pSBnaWEgY8O0bmcsIHPhu61hIGNo4buvYSB0cmFuZyBz4bupYyB2w6Aga2luaCBkb2FuaCBraW0gbG/huqFpIHF1w70gbmjGsCB2w6BuZyBtaeG6v25nIHbDoCB2w6BuZyBuaOG6q24uIE5nb8OgaSByYSwgUE5KIGPDsm4gcGjDoXQgdHJp4buDbiB2w6AgcXXhuqNuIGzDvSBjw6FjIHRoxrDGoW5nIGhp4buHdSB0cmFuZyBz4bupYyB1eSB0w61uIG5oxrAgUE5KLCBDQU8gRmluZSBKZXdlbHJ5LCBKZW1tYSB2w6AgU3R5bGUgYnkgUE5KLg0KDQotIFbhu5tpIG5o4buvbmcgbuG7lyBs4buxYyB2w6AgdGjDoG5oIHThu7F1LCBQTkogxJHDoyBuaOG6rW4gxJHGsOG7o2Mgbmhp4buBdSBnaeG6o2kgdGjGsOG7n25nIHbDoCBkYW5oIGhp4buHdSwgYmFvIGfhu5NtIFRoxrDGoW5nIGhp4buHdSBRdeG7kWMgZ2lhIGxpw6puIHThu6VjIHRyb25nIDEwIG7Eg20gKDIwMTIgLSAyMDIyKSwgVG9wIDEwMCBjw7RuZyB0eSBuacOqbSB54bq/dCB1eSB0w61uIHRyb25nIDggbsSDbSAoMjAxNCAtIDIwMjIpIHbDoCBUb3AgNTAgY8O0bmcgdHkgY8OzIGdpw6EgdHLhu4sgdGjGsMahbmcgaGnhu4d1IGzhu5tuIG5o4bqldCBWaeG7h3QgTmFtIG7Eg20gMjAyMy4NCg0KDQojIyMgKipWTkkqKg0KDQogIOKAoglWTi1JbmRleCBsw6AgY2jhu4kgc+G7kSB0aOG7iyB0csaw4budbmcgY8ahIGLhuqNuIG5o4bqldCB2w6AgcGjhu5UgYmnhur9uIG5o4bqldCBj4bunYSBC4bqjbmcgQ2jhu6luZyBraG/DoW4gSG8gQ2hpIE1pbmggKEhvU0UpIHThuqFpIFZp4buHdCBOYW0uDQoNCiAg4oCiCUNo4buJIHPhu5EgbsOgeSDEkcaw4bujYyB0w61uaCBk4buxYSB0csOqbiBnacOhIHRy4buLIHRo4buLIHRyxrDhu51uZyBj4bunYSB04bqldCBj4bqjIGPDoWMgY+G7lSBwaGnhur91IMSRxrDhu6NjIG5pw6ptIHnhur90IHRyw6puIEhvU0UuDQoNCiAg4oCiCVZOLUluZGV4IHRoxrDhu51uZyDEkcaw4bujYyBjb2kgbMOgIMSR4bqhaSBkaeG7h24gY2hvIHPhu7EgYmnhur9uIMSR4buZbmcgdOG7lW5nIHRo4buDIGPhu6dhIHRo4buLIHRyxrDhu51uZyBjaOG7qW5nIGtob8OhbiBWaeG7h3QgTmFtLg0KDQoNCg0KIyMjICoqVk4zMCoqDQoNCiAg4oCiCVZOMzAgbMOgIG3hu5l0IGNo4buJIHPhu5EgY29uIGPhu6dhIFZOLUluZGV4LCBiYW8gZ+G7k20gMzAgY+G7lSBwaGnhur91IGPDsyB24buRbiBow7NhIHRo4buLIHRyxrDhu51uZyBs4bubbiBuaOG6pXQgdsOgIHRoYW5oIGtob+G6o24gY2FvIG5o4bqldCB0csOqbiBIb1NFLg0KDQogIOKAoglDaOG7iSBz4buRIG7DoHkgY3VuZyBj4bqlcCBt4buZdCBjw6FpIG5ow6xuIGNoaSB0aeG6v3QgaMahbiB24buBIGhp4buHdSBzdeG6pXQgY+G7p2EgY8OhYyBj4buVIHBoaeG6v3UgbOG7m24gdsOgIHF1YW4gdHLhu41uZyBuaOG6pXQgdHLDqm4gdGjhu4sgdHLGsOG7nW5nLg0KDQoNCiMgKipDaMawxqFuZyAzOiBQaMOibiB0w61jaCBiaeG6v24gxJHhu5luZyBnacOhIGPhu5UgcGhp4bq/dSBQTkogbsSDbSAyMDIzKioNCg0KIyMgKipQaMOibiB0w61jaCB4dSBoxrDhu5tuZyoqDQoNCg0KYGBge3IsIHdhcm5pbmc9RkFMU0V9DQpsaWJyYXJ5KHJlYWR4bCkNCm10IDwtIHJlYWRfZXhjZWwoIm10Lnhsc3giKQ0Kd2trIDwtIHJlYWRfZXhjZWwoIndray54bHN4IikNCmRsdG4gPC0gcmVhZF9leGNlbCgiZGx0bi54bHN4IikNCnZuMzAgPC0gcmVhZF9leGNlbCgiVk4zMC10aGFuZy54bHN4IikNCnZuaSA8LSByZWFkX2V4Y2VsKCJWTkktdGhhbmcueGxzeCIpDQpuYW1lcyhtdCkgPC0gYygiTmdheSIsICJnaWEuZG9uZy5jdWEiLCJnaWEubW8uY3VhIiwgImNhbyIsInRoYXAiLCJLTC5nZGljaCIsInBoYW4udHJhbS50aGF5LmRvaSIpDQoNCmxpYnJhcnkoZ2dwbG90MikNCmdncGxvdChtdCwgYWVzKHg9IE5nYXksIHk9IGdpYS5tby5jdWEpKSArDQogIGdlb21fbGluZSgpICsNCiAgZ2VvbV9wb2ludChjb2xvcj0gInJlZCIpICsNCiAgZ2VvbV90ZXh0KGFlcyhsYWJlbD0gZ2lhLm1vLmN1YSksIHZqdXN0PSAwLCBjb2xvcj0gImJsYWNrIikgKw0KICBsYWJzKHggPSAiTmdheSIsIHkgPSAiR2lhIG1vIGN1YSIsIHRpdGxlID0gIkJp4buDdSDEkeG7kyB4dSBoxrDhu5tuZyBnacOhIGPhu5UgcGhp4bq/dSBQTkogdGhlbyB0aMOhbmciKQ0KDQpgYGANCg0KKipOaOG6rW4geMOpdCoqDQoNCiAgTeG7qWMgZ2nDoSBjYW8gbmjhuqV0IGPhu6dhIGPhu5UgcGhp4bq/dSBQTkogdHJvbmcgZ2lhaSDEkW/huqFuIG7DoHkgbMOgIDkwLjM4OSw5IFZOxJAgKHRow6FuZyAxIG7Eg20gMjAyMykuDQoNCiAgTeG7qWMgZ2nDoSB0aOG6pXAgbmjhuqV0IGPhu6dhIGPhu5UgcGhp4bq/dSBQTkogdHJvbmcgZ2lhaSDEkW/huqFuIG7DoHkgbMOgIDcwLjMxMCw4Vk7EkCAodGjDoW5nIDYgbsSDbSAyMDIzKS4NCg0KLSBHacOhIGPhu5UgcGhp4bq/dSBQTkogY8OzIHh1IGjGsOG7m25nIGdp4bqjbSB0cm9uZyBnaWFpIMSRb+G6oW4gdOG7qyB0aMOhbmcgMSDEkeG6v24gdGjDoW5nIDMgbsSDbSAyMDIzLiBHacOhIGdp4bqjbSB04burIDkwLjM4OSw5IFZOxJAgeHXhu5FuZyBjw7JuIDc3LjAwMCBWTsSQLCB0xrDGoW5nIOG7qW5nIHbhu5tpIG3hu6ljIGdp4bqjbSAxNCw4MSUuDQoNCiAgR2nDoSBj4buVIHBoaeG6v3UgUE5KIGPDsyB4dSBoxrDhu5tuZyB0xINuZyBuaOG6uSB0cm9uZyBnaWFpIMSRb+G6oW4gdOG7qyB0aMOhbmcgMyDEkeG6v24gdGjDoW5nIDQgbsSDbSAyMDIzLiBHacOhIHTEg25nIHThu6sgNzcuMDAwIFZOxJAgbMOqbiA3OC4wMDAgVk7EkCwgdMawxqFuZyDhu6luZyB24bubaSBt4bupYyB0xINuZyAxLDI4JS4NCg0KICBHacOhIGPhu5UgcGhp4bq/dSBQTkogY8OzIHh1IGjGsOG7m25nIGdp4bqjbSB0cm9uZyBnaWFpIMSRb+G6oW4gdOG7qyB0aMOhbmcgNCDEkeG6v24gdGjDoW5nIDYgbsSDbSAyMDIzLiBHacOhIGdp4bqjbSB04burIDc4LjAwMCBWTsSQIHh14buRbmcgY8OybiA3MC4zMTAsOCBWTsSQLCB0xrDGoW5nIOG7qW5nIHbhu5tpIG3hu6ljIGdp4bqjbSA5LDg2JS4gDQoNCiAgR2nDoSBj4buVIHBoaeG6v3UgUE5KIGPDsyB4dSBoxrDhu5tuZyB0xINuZyB0cm9uZyBnaWFpIMSRb+G6oW4gdOG7qyB0aMOhbmcgNiDEkeG6v24gdGjDoW5nIDggbsSDbSAyMDIzLiBHacOhIHTEg25nIHThu6sgNzAuMzEwLDggVk7EkCBsw6puIDgyLjkwMCBWTsSQLCB0xrDGoW5nIOG7qW5nIHbhu5tpIG3hu6ljIHTEg25nIDE3LDklLg0KDQogIEdpw6EgY+G7lSBwaGnhur91IFBOSiBjw7MgeHUgaMaw4bubbmcgZ2nhuqNtICBt4bqhbmggdHJvbmcgZ2lhaSDEkW/huqFuIHThu6sgdGjDoW5nIDggxJHhur9uIHRow6FuZyAxMSBuxINtIDIwMjMuIEdpw6EgZ2nhuqNtIHThu6sgODIuOTAwIFZOxJAgeHXhu5FuZyBjw7JuIDcxLjUwMCBWTsSQLCB0xrDGoW5nIOG7qW5nIHbhu5tpIG3hu6ljIGdp4bqjbSAxNCUuDQoNCiAgR2nDoSBj4buVIHBoaeG6v3UgUE5KIGPDsyB4dSBoxrDhu5tuZyB0xINuZyB0cuG7nyBs4bqhaSB0cm9uZyBnaWFpIMSRb+G6oW4gdOG7qyB0aMOhbmcgMTEgxJHhur9uIHRow6FuZyAxMiBuxINtIDIwMjMuIEdpw6EgdOG7qyA3MS41MDAgVk7EkCB4deG7kW5nIGPDsm4gODAuNTAwIFZOxJAsIHTGsMahbmcg4bupbmcgduG7m2kgbeG7qWMgZ2nhuqNtIDksODYlLg0KDQogIFh1IGjGsOG7m25nIGdpw6EgY+G7lSBwaGnhur91IHRyb25nIDEyIHRow6FuZyBxdWEgbMOgIGdp4bqjbSBk4bqnbi4NCg0KICBHacOhIGPhu5UgcGhp4bq/dSBjw7MgZOG6pXUgaGnhu4d1IHBo4bulYyBo4buTaSBuaOG6uSB0cm9uZyB0aMOhbmcgMTIvMjAyMywgbmjGsG5nIHbhuqtuIHRo4bqlcCBoxqFuIHNvIHbhu5tpIG3hu6ljIGdpw6EgxJHhuqd1IG7Eg20uDQoNCiAgTmjDoCDEkeG6p3UgdMawIGPhuqduIHRo4bqtbiB0cuG7jW5nIGtoaSB4ZW0geMOpdCDEkeG6p3UgdMawIHbDoG8gY+G7lSBwaGnhur91IG7DoHkuDQogDQojIyAqKkJp4buDdSDEkeG7kyBLaOG7kWkgTMaw4bujbmcgR2lhbyBE4buLY2ggKFZvbHVtZSBDaGFydCkqKg0KDQpgYGB7ciwgd2FybmluZz1GQUxTRX0NCmdncGxvdChtdCwgYWVzKHggPSBOZ2F5ICwgeSA9IEtMLmdkaWNoKSkgKw0KICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IiwgZmlsbCA9ICJza3libHVlIikgKw0KICBnZW9tX3RleHQoYWVzKGxhYmVsPSBLTC5nZGljaCksIHZqdXN0PTAuNSwgY29sb3I9ICJibGFjayIpDQogIGxhYnModGl0bGUgPSAiQmnhu4N1IMSR4buTIEto4buRaSBMxrDhu6NuZyBHaWFvIEThu4tjaCBj4bunYSBj4buVIHBoaeG6v3UgUE5KIiwNCiAgICAgICB4ID0gIk5nw6B5IiwNCiAgICAgICB5ID0gIkto4buRaSBsxrDhu6NuZyBnaWFvIGThu4tjaCIpICsNCiAgdGhlbWVfbWluaW1hbCgpDQpgYGANCg0KKipOaOG6rW4geMOpdCB24buBIGJp4buDdSDEkeG7kyBraOG7kWkgbMaw4bujbmcgZ2lhbyBk4buLY2ggY+G7lSBwaGnhur91IFBOSjoqKg0KDQotIFThu5VuZyBxdWFuOg0KDQogIEJp4buDdSDEkeG7kyB0aOG7gyBoaeG7h24ga2jhu5FpIGzGsOG7o25nIGdpYW8gZOG7i2NoIGPhu5UgcGhp4bq/dSBQTkogYmnhur9uIMSR4buZbmcgbeG6oW5oIHRyb25nIDEyIHRow6FuZyBxdWEuDQoNCiAgS2jhu5FpIGzGsOG7o25nIGdpYW8gZOG7i2NoIHTEg25nIGNhbyB2w6BvIGPDoWMgdGjDoW5nIDQvMjAyMywgNy8yMDIzIHbDoCAxMi8yMDIzLg0KDQogIEto4buRaSBsxrDhu6NuZyBnaWFvIGThu4tjaCB0aOG6pXAgdsOgbyBjw6FjIHRow6FuZyAxLzIwMjMsIDMvMjAyMyB2w6AgNS8yMDIzLg0KDQogIE3hu6ljIGJp4bq/biDEkeG7mW5nIGPhu6dhIGto4buRaSBsxrDhu6NuZyBnaWFvIGThu4tjaCBs4bubbiBuaOG6pXQgdHJvbmcgdGjDoW5nIDcvMjAyMywgduG7m2kgbeG7qWMgdMSDbmcgMTAzLjY1JSBzbyB24bubaSB0aMOhbmcgdHLGsOG7m2MuDQoNCi0gQ2hpIHRp4bq/dDoNCg0KICBLaOG7kWkgbMaw4bujbmcgZ2lhbyBk4buLY2ggY2FvIG5o4bqldCB0cm9uZyAxMiB0aMOhbmcgcXVhIGzDoCAyOS4wMiB0cmnhu4d1IGPhu5UgcGhp4bq/dS90aMOhbmcgKHRow6FuZyA3LzIwMjMpLg0KDQogIEto4buRaSBsxrDhu6NuZyBnaWFvIGThu4tjaCB0aOG6pXAgbmjhuqV0IHRyb25nIDEyIHRow6FuZyBxdWEgbMOgIDUuNzIgdHJp4buHdSBj4buVIHBoaeG6v3UvdGjDoW5nICh0aMOhbmcgMS8yMDIzKS4NCg0KICBLaOG7kWkgbMaw4bujbmcgZ2lhbyBk4buLY2ggdHJ1bmcgYsOsbmggdHJvbmcgMTIgdGjDoW5nIHF1YSBsw6AgNSB0cmnhu4d1IGPhu5UgcGhp4bq/dS90aMOhbmcuDQoNCi0gTGnDqm4gaOG7hyB24bubaSBiaeG6v24gxJHhu5luZyBnacOhOg0KDQogIFPhu7EgYmnhur9uIMSR4buZbmcgY+G7p2Ega2jhu5FpIGzGsOG7o25nIGdpYW8gZOG7i2NoIGPDsyB0aOG7gyDhuqNuaCBoxrDhu59uZyDEkeG6v24gYmnhur9uIMSR4buZbmcgZ2nDoSBj4buVIHBoaeG6v3UuDQoNCiAgS2hpIGto4buRaSBsxrDhu6NuZyBnaWFvIGThu4tjaCB0xINuZyBjYW8sIGdpw6EgY+G7lSBwaGnhur91IGPDsyB0aOG7gyB0xINuZyBob+G6t2MgZ2nhuqNtLg0KDQogIEtoaSBraOG7kWkgbMaw4bujbmcgZ2lhbyBk4buLY2ggdGjhuqVwLCBnacOhIGPhu5UgcGhp4bq/dSBjw7MgdGjhu4MgYmnhur9uIMSR4buZbmcgw610IGjGoW4uDQoNCiMjICoqQmnhu4N1IMSR4buTIHNvIHPDoW5oIGdpw6EgY+G7lSBwaGnhur91IFBOSiB24bubaSBnacOhIFZOSSB0aGVvIHRow6FuZyB0cm9uZyBuxINtIDIwMjMqKg0KYGBge3Isd2FybmluZz1GQUxTRX0NCg0KIyBCaeG7g3UgxJHhu5MgZ2nDoQ0KZ2dwbG90KCkgKw0KICBnZW9tX2xpbmUoZGF0YSA9IG10LCBhZXMoeCA9IE5nYXksIHkgPSBnaWEubW8uY3VhLCBjb2xvciA9ICJQTkoiKSkgKw0KICBnZW9tX2xpbmUoZGF0YSA9IHZuaSwgYWVzKHggPSBOZ2F5LCB5ID0gZ2lhLm1vLmN1YSAsIGNvbG9yID0gIlZOSSIpKSArDQogIGxhYnMoeCA9ICJOZ8OgeSIsIHkgPSAiR2nDoSAoVk7EkCkiLCBjb2xvciA9ICJNw6MgY2jhu6luZyBraG/DoW4iKSArDQogIHNjYWxlX2NvbG9yX21hbnVhbCh2YWx1ZXMgPSBjKCJQTkoiID0gImJsdWUiLCJWTkkiID0gImdyZWVuIikpICsNCiAgdGhlbWVfbWluaW1hbCgpDQpgYGANCg0KKipOaOG6rW4geMOpdDoqKg0KDQogIFBOSiBiaeG6v24gxJHhu5luZyBt4bqhbmggaMahbiBWTi1JbmRleCB0cm9uZyAxMiB0aMOhbmcgcXVhLg0KDQogIFBOSiB0xINuZyB0cm9uZyBnaWFpIMSRb+G6oW4gdOG7qyB0aMOhbmcgNiDEkeG6v24gdGjDoW5nIDgsIGPDsyB4dSBoxrDhu5tuZyBnaeG6o20gIG3huqFuaCB0cm9uZyBnaWFpIMSRb+G6oW4gdOG7qyB0aMOhbmcgOCDEkeG6v24gdGjDoW5nIDExIG7Eg20gMjAyMy4NCg0KICBWTi1JbmRleCB0xINuZyBnacOhIHThu6sgdGjDoW5nIDQvMjAyMyDEkeG6v24gdGjDoW5nIDEwLzIwMjMsIHNhdSDEkcOzIGdp4bqjbSBnacOhIMSR4bq/biB0aMOhbmcgMTIvMjAyMy4NCg0KICBN4bupYyBnaeG6o20gZ2nDoSBj4bunYSBQTkogbOG7m24gaMahbiBWTi1JbmRleCB0cm9uZyB0aMOhbmcgMTAvMjAyMy4NCg0KLSBTbyBzw6FuaDoNCg0KICBQTkogYmnhur9uIMSR4buZbmcgbeG6oW5oIGjGoW4gVk4tSW5kZXgsIGPDsyB0aOG7gyBkbyBuaHUgY+G6p3UgxJHhu5FpIHbhu5tpIHbDoG5nIHTEg25nIGNhbyB0cm9uZyB0aOG7nWkgZ2lhbiBxdWEuDQoNCiAgVk4tSW5kZXggw610IGJp4bq/biDEkeG7mW5nIGjGoW4gUE5KLCBjw7MgdGjhu4MgZG8gdGjhu4sgdHLGsOG7nW5nIGNo4bupbmcga2hvw6FuIOG7lW4gxJHhu4tuaCBoxqFuLg0KDQotIEvhur90IGx14bqtbjoNCg0KICBCaeG7g3UgxJHhu5MgY2hvIHRo4bqleSBz4buxIGtow6FjIGJp4buHdCB24buBIGJp4bq/biDEkeG7mW5nIGdp4buvYSBWTi1JbmRleCB2w6AgUE5KLg0KDQogIE5ow6AgxJHhuqd1IHTGsCBj4bqnbiBjw6JuIG5o4bqvYyBraOG6oyBuxINuZyBjaOG6pXAgbmjhuq1uIHLhu6dpIHJvIGPhu6dhIG3DrG5oIHRyxrDhu5tjIGtoaSBxdXnhur90IMSR4buLbmggxJHhuqd1IHTGsCB2w6BvIFBOSiBob+G6t2MgVk4tSW5kZXguDQoNCmBgYHtyLCB3YXJuaW5nPUZBTFNFfQ0KZ2dwbG90KG10LCBhZXMoeCA9IE5nYXksIHltaW4gPSB0aGFwLCB5bWF4ID0gY2FvLCBjb2xvdXIgPSBmYWN0b3IoaWZlbHNlKGdpYS5kb25nLmN1YSA+IGdpYS5tby5jdWEgLCAiVXAiLCAiRG93biIpKSkpICsNCiAgZ2VvbV9zZWdtZW50KGFlcyh5ID0gdGhhcCwgeWVuZCA9IGNhbywgeGVuZCA9IE5nYXkpKSArDQogIGdlb21fcmVjdChhZXMoeW1pbiA9IHBtaW4oZ2lhLm1vLmN1YSwgZ2lhLmRvbmcuY3VhKSwgeW1heCA9IHBtYXgoZ2lhLm1vLmN1YSwgZ2lhLmRvbmcuY3VhKSwgeG1pbiA9IE5nYXkgLSAwLjIsIHhtYXggPSBOZ2F5ICsgMC4yLCBmaWxsID0gZmFjdG9yKGlmZWxzZShnaWEuZG9uZy5jdWEgPiBnaWEubW8uY3VhICwgIlVwIiwgIkRvd24iKSkpLCBhbHBoYSA9IDAuNikgKw0KICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjKCJVcCIgPSAiZ3JlZW4iLCAiRG93biIgPSAicmVkIikpICsNCiAgc2NhbGVfY29sb3VyX21hbnVhbCh2YWx1ZXMgPSBjKCJVcCIgPSAiZ3JlZW4iLCAiRG93biIgPSAicmVkIikpICsNCiAgbGFicyh0aXRsZSA9ICJCaeG7g3UgxJHhu5MgbuG6v24iLCB4ID0gIk5nw6B5IiwgeSA9ICJHacOhIikgKw0KICB0aGVtZV9taW5pbWFsKCkNCmBgYA0KDQoNCioqTmjhuq1uIHjDqXQ6KioNCg0KLSBCaeG7g3UgxJHhu5MgbuG6v24gbMOgIG3hu5l0IGPDtG5nIGPhu6UgbeG6oW5oIG3hur0gxJHhu4MgcGjDom4gdMOtY2ggeHUgaMaw4bubbmcgZ2nDoSBj4buVIHBoaeG6v3UgdHJvbmcgbeG7mXQga2hv4bqjbmcgdGjhu51pIGdpYW4gbmjhuqV0IMSR4buLbmguIFThu6sgYmnhu4N1IMSR4buTIG7DoHksIGNow7puZyB0YSBjw7MgdGjhu4Mgbmjhuq1uIHRo4bqleSBt4buZdCBz4buRIHh1IGjGsOG7m25nIGNow61uaDoNCg0KICBUcm9uZyBzdeG7kXQgMTIgdGjDoW5nIHF1YSwgZ2nDoSBj4buVIHBoaeG6v3UgUE5KIMSRw6MgdHLhuqNpIHF1YSBt4buZdCBjaHXhu5dpIHPhu7EgZ2nhuqNtIGdpw6EgxJHDoW5nIGvhu4MuDQoNCiAgVOG7qyB0aMOhbmcgOC8yMDIzIMSR4bq/biB0aMOhbmcgMTEvMjAyMywgZ2nDoSBj4buVIHBoaeG6v3UgbGnDqm4gdOG7pWMgZ2nhuqNtLCB24bubaSBt4bupYyBnaeG6o20gY2FvIG5o4bqldCB44bqjeSByYSB0cm9uZyB0aMOhbmcgMTEvMjAyMy4NCg0KICBN4bq3YyBkw7kgY8OzIGThuqV1IGhp4buHdSBwaOG7pWMgaOG7k2kgbmjhuqV0IMSR4buLbmggdsOgbyB0aMOhbmcgMTIvMjAyMywgZ2nDoSBj4buVIHBoaeG6v3UgduG6q24gZHV5IHRyw6wg4bufIG3hu6ljIHRo4bqlcCBoxqFuIHNvIHbhu5tpIMSR4bqndSBuxINtLg0KDQotIFBow6JuIHTDrWNoOg0KDQogIEJp4buDdSDEkeG7kyBu4bq/biBjaG8gdGjhuqV5IHLDtSB4dSBoxrDhu5tuZyBnaeG6o20gY+G7p2EgZ2nDoSBj4buVIHBoaeG6v3UgdHJvbmcgMTIgdGjDoW5nIHF1YSwgxJHGsOG7o2MgdGjhu4MgaGnhu4duIHF1YSBjw6FjIG7hur9uIMSR4buPIGxpw6puIHRp4bq/cC4NCg0KICBN4bq3YyBkw7kgY8OzIGThuqV1IGhp4buHdSBwaOG7pWMgaOG7k2kgbmjhuqV0IMSR4buLbmggdHJvbmcgdGjDoW5nIDEyLzIwMjMsIG5oxrBuZyBu4bq/biB4YW5oIHbhuqtuIGNo4buJIGzDoCBt4buZdCBk4bqldSBoaeG7h3UgcuG6pXQgbmjhu48gdHJvbmcgYuG7qWMgdHJhbmggY2h1bmcuDQoNCiAgw4FwIGzhu7FjIGLDoW4gduG6q24gbMOgIHh1IGjGsOG7m25nIGNow61uaCwgduG7m2kgZ2nDoSDEkcOzbmcgY+G7rWEgdGjhuqVwIGjGoW4gZ2nDoSBt4bufIGPhu61hIHRyb25nIGjhuqd1IGjhur90IGPDoWMgdGjDoW5nLg0KDQotIEvhur90IGx14bqtbjoNCg0KICBE4buxYSB0csOqbiBiaeG7g3UgxJHhu5MgbuG6v24sIGPDsyB0aOG7gyBuaOG6rW4gxJHhu4tuaCBy4bqxbmcgeHUgaMaw4bubbmcgZ2nhuqNtIGPhu6dhIGdpw6EgY+G7lSBwaGnhur91IFBOSiDEkcOjIGvDqW8gZMOgaSB0cm9uZyBzdeG7kXQgMTIgdGjDoW5nIHF1YS4NCg0KICBOaMOgIMSR4bqndSB0xrAgY+G6p24gY8OibiBuaOG6r2Mga+G7uSBsxrDhu6FuZyB0csaw4bubYyBraGkgxJHGsGEgcmEgcXV54bq/dCDEkeG7i25oIMSR4bqndSB0xrAgdsOgbyBj4buVIHBoaeG6v3UgbsOgeSwgxJHhurdjIGJp4buHdCBsw6Aga2hpIHh1IGjGsOG7m25nIGdp4bqjbSB24bqrbiDEkWFuZyB0aeG6v3AgdOG7pWMuDQoNCiMjICoqQmnhu4N1IMSR4buTIGJp4bq/biDEkeG7mW5nIGdpw6EgUE5KIHRoZW8gY8OhYyBjaOG7iSBz4buRIHRo4buRbmcga8OqKioNCg0KYGBge3Isd2FybmluZz1GQUxTRX0NCm1lYW5fR2lhMTwtIG1lYW4obXQkZ2lhLm1vLmN1YSkNCg0KbWVhbl9HaWEyPC0gbWVhbihtdCRnaWEuZG9uZy5jdWEpDQpgYGANCi0gVHJ1bmcgYsOsbmggZ2nDoSBt4bufIGPhu61hOg0KDQpUcnVuZyBiw6xuaCBnacOhIG3hu58gY+G7rWEgY+G7lSBwaGnhur91IFBOSiB0aGVvIHRow6FuZyBsw6AgNzkuMzIyLDUxIMSR4buTbmcuIMSQaeG7gXUgbsOgeSB0aOG7gyBoaeG7h24gbeG7qWMgZ2nDoSB0cnVuZyBiw6xuaCBtw6AgY+G7lSBwaGnhur91IFBOSiDEkcaw4bujYyBt4bufIGPhu61hIGdpYW8gZOG7i2NoIHRyb25nIHRow6FuZy4NCg0KTeG7qWMgZ2nDoSBt4bufIGPhu61hIGNhbyBjaG8gdGjhuqV5IGzhu7FjIG11YSBt4bqhbmggdsOgbyDEkeG6p3UgbmfDoHksIHRyb25nIGtoaSBt4bupYyBnacOhIG3hu58gY+G7rWEgdGjhuqVwIGNobyB0aOG6pXkgbOG7sWMgYsOhbiBt4bqhbmggdsOgbyDEkeG6p3UgbmfDoHkuDQoNCi0gVHJ1bmcgYsOsbmggZ2nDoSDEkcOzbmcgY+G7rWE6DQoNClRydW5nIGLDrG5oIGdpw6EgxJHDs25nIGPhu61hIGPhu5UgcGhp4bq/dSBQTkogdGhlbyB0aMOhbmcgbMOgIDc5LjA0MSw2NyDEkeG7k25nLiDEkGnhu4F1IG7DoHkgY2hvIGJp4bq/dCBt4bupYyBnacOhIHRydW5nIGLDrG5oIG3DoCBj4buVIHBoaeG6v3UgUE5KIMSRxrDhu6NjIMSRw7NuZyBj4butYSBnaWFvIGThu4tjaCB0cm9uZyB0aMOhbmcuDQoNCk3hu6ljIGdpw6EgxJHDs25nIGPhu61hIGNhbyB0aMaw4budbmcgY2hvIHRo4bqleSBs4buxYyBtdWEgbeG6oW5oIHbDoG8gY3Xhu5FpIG5nw6B5LCB0cm9uZyBraGkgbeG7qWMgZ2nDoSDEkcOzbmcgY+G7rWEgdGjhuqVwIHRoxrDhu51uZyBjaG8gdGjhuqV5IGzhu7FjIGLDoW4gbeG6oW5oIHbDoG8gY3Xhu5FpIG5nw6B5Lg0KDQotIFNvIHPDoW5oOg0KDQpUcnVuZyBiw6xuaCBnacOhIG3hu58gY+G7rWEgY2FvIGjGoW4gdHJ1bmcgYsOsbmggZ2nDoSDEkcOzbmcgY+G7rWEsIGNobyB0aOG6pXkgw6FwIGzhu7FjIGLDoW4gbeG6oW5oIGjGoW4gw6FwIGzhu7FjIG11YSB0cm9uZyB0aMOhbmcuIFR1eSBuaGnDqm4sIG3hu6ljIGNow6puaCBs4buHY2ggZ2nhu69hIGhhaSBnacOhIHRy4buLIG7DoHkga2jDtG5nIGzhu5tuLCBjaG8gdGjhuqV5IHRo4buLIHRyxrDhu51uZyB0xrDGoW5nIMSR4buRaSDhu5VuIMSR4buLbmguDQoNCi0gS+G6v3QgbHXhuq1uOg0KDQpN4bupYyBnacOhIGPhu6dhIGPhu5UgcGhp4bq/dSBQTkogYmnhur9uIMSR4buZbmcgdHJvbmcga2hv4bqjbmcgdOG7qyA3OS4wMDAgxJHhu5NuZyDEkeG6v24gNzkuMzAwIMSR4buTbmcgdHJvbmcgdGjDoW5nLiDEkGnhu4F1IG7DoHkgY2hvIHRo4bqleSBz4buxIOG7lW4gxJHhu4tuaCB0cm9uZyBiaeG6v24gxJHhu5luZyBnacOhIGPhu6dhIGPhu5UgcGhp4bq/dS4gVHV5IG5oacOqbiwgbmjDoCDEkeG6p3UgdMawIGPhuqduIHRoZW8gZMO1aSBzw6F0IHNhbyBiaeG6v24gxJHhu5luZyBnacOhIGPhu5UgcGhp4bq/dSBQTkogxJHhu4MgxJHGsGEgcmEgcXV54bq/dCDEkeG7i25oIMSR4bqndSB0xrAgcGjDuSBo4bujcC4NCg0KYGBge3J9DQptZWRpYW5fR2lhPC0gbWVkaWFuKG10JGdpYS5tby5jdWEpDQoNCmBgYA0KKipOaOG6rW4geMOpdDoqKg0KICANCiAgVHJ1bmcgduG7iyBnacOhIGPhu5UgcGhp4bq/dSBQTkogbMOgIDc3Ljk4NCw3IMSR4buTbmcuIMSQaeG7gXUgbsOgeSBjaG8gYmnhur90IHLhurFuZyBu4butYSBz4buRIGPhu5UgcGhp4bq/dSBjw7MgZ2nDoSBjYW8gaMahbiA3Ny45ODQsNyDEkeG7k25nIHbDoCBu4butYSBz4buRIGPDsm4gbOG6oWkgY8OzIGdpw6EgdGjhuqVwIGjGoW4gbeG7qWMgbsOgeS4gVHJ1bmcgduG7iyBnacOhIHRoxrDhu51uZyDEkcaw4bujYyB4ZW0gbmjGsCBt4buZdCBjaOG7iSBz4buRIOG7lW4gxJHhu4tuaCBoxqFuIHNvIHbhu5tpIGdpw6EgdHJ1bmcgYsOsbmgsIHbDrCBuw7Mgw610IGLhu4sg4bqjbmggaMaw4bufbmcgYuG7n2kgY8OhYyBnacOhIHRy4buLIG5nb+G6oWkgbOG7hy4NCg0KICBTbyBzw6FuaCB0cnVuZyB24buLIGdpw6EgduG7m2kgZ2nDoSB0cnVuZyBiw6xuaCAoNzkuMDQxLDY3IMSR4buTbmcpIGNobyB0aOG6pXkgcGjDom4gYuG7kSBnacOhIGPhu5UgcGhp4bq/dSBraMO0bmcgxJHhu5FpIHjhu6luZywgY8OzIHPhu7EgdOG6rXAgdHJ1bmcg4bufIHBow61hIHRyw6puIG3hu6ljIGdpw6EgdHJ1bmcgYsOsbmguIMSQaeG7gXUgbsOgeSBjw7MgdGjhu4MgY2hvIHRo4bqleSBz4buxIHF1YW4gdMOibSBj4bunYSBjw6FjIG5ow6AgxJHhuqd1IHTGsCDEkeG7kWkgduG7m2kgY+G7lSBwaGnhur91IFBOSiB24bubaSBt4bupYyBnacOhIGNhbyBoxqFuLg0KDQogIFRydW5nIHbhu4sgZ2nDoSBjxaluZyBsw6AgbeG7mXQgxJFp4buDbSB0aGFtIGto4bqjbyBxdWFuIHRy4buNbmcgZ2nDunAgbmjDoCDEkeG6p3UgdMawIMSRw6FuaCBnacOhIGdpw6EgdHLhu4sgY+G7p2EgY+G7lSBwaGnhur91IFBOSi4gVHV5IG5oacOqbiwgxJHhu4MgY8OzIGPDoWkgbmjDrG4gdG/DoG4gZGnhu4duIGjGoW4gduG7gSBj4buVIHBoaeG6v3UgbsOgeSwgbmjDoCDEkeG6p3UgdMawIGPhuqduIGvhur90IGjhu6NwIHRow7RuZyB0aW4gdOG7qyB0cnVuZyB24buLIGdpw6EgduG7m2kgY8OhYyBjaOG7iSBz4buRIHbDoCBiaeG7h24gcGjDoXAgdGjhu5FuZyBrw6oga2jDoWMuIMSQaeG7gXUgbsOgeSBnacO6cCBo4buNIGPDsyBjw6FpIG5ow6xuIHPDonUgaMahbiB2w6AgxJHGsGEgcmEgcXV54bq/dCDEkeG7i25oIMSR4bqndSB0xrAgY2jDrW5oIHjDoWMgaMahbi4NCg0KYGBge3Isd2FybmluZz1GQUxTRX0NCiMgQmnhu4N1IMSR4buTIGJp4bq/biDEkeG7mW5nIGdpw6EgUE5KIHRoZW8gdHJ1bmcgYsOsbmggZ2nDoQ0KZ2dwbG90KG10LCBhZXMoeCA9IE5nYXksIHkgPSBnaWEubW8uY3VhKSkgKw0KICBnZW9tX2xpbmUoY29sb3IgPSAiYmx1ZSIpICsNCiAgZ2VvbV9obGluZSh5aW50ZXJjZXB0ID0gbWVhbl9HaWExLCBsaW5ldHlwZSA9ICJkYXNoZWQiLCBjb2xvciA9ICJyZWQiLCBzaXplID0gMSkgKw0KICBhbm5vdGF0ZSgidGV4dCIsIHggPSBtYXgobXQkTmdheSksIHkgPSBtZWFuX0dpYTEsIGxhYmVsID0gcGFzdGUoIk1lYW46Iiwgcm91bmQobWVhbl9HaWExLCAyKSksIGhqdXN0ID0gLTAuMSwgdmp1c3QgPSAwKSArDQogIGxhYnModGl0bGUgPSAiQmnhu4N1IMSR4buTIGJp4bq/biDEkeG7mW5nIGdpw6EgUE5KIHRoZW8gVHJ1bmcgYsOsbmgiLA0KICAgICAgIHggPSAiTmfDoHkiLA0KICAgICAgIHkgPSAiR2nDoSBt4bufIGPhu61hIikgKw0KICB0aGVtZV9taW5pbWFsKCkNCmBgYA0KDQoqKk5o4bqtbiB4w6l0KioNCiAgDQogIEdpw6EgY+G7lSBwaGnhur91IFBOSiBiaeG6v24gxJHhu5luZyBt4bqhbmggaMahbiB0cnVuZyBiw6xuaCBnacOhIG3hu58gY+G7rWEgdHJvbmcgMTIgdGjDoW5nIHF1YS4NCg0KICBUcm9uZyA2IHRow6FuZyDEkeG6p3UgbsSDbSwgZ2nDoSBj4buVIHBoaeG6v3UgUE5KIGNhbyBoxqFuIHRydW5nIGLDrG5oIGdpw6EgbeG7nyBj4butYSwgdHJvbmcga2hpIHRyb25nIDYgdGjDoW5nIGN14buRaSBuxINtLCBnacOhIHRo4bqlcCBoxqFuIHRydW5nIGLDrG5oIGdpw6EgbeG7nyBj4butYS4NCg0KICBN4bupYyBjaMOqbmggbOG7h2NoIGdp4buvYSBnacOhIGPhu5UgcGhp4bq/dSBQTkogdsOgIHRydW5nIGLDrG5oIGdpw6EgbeG7nyBj4butYSBs4bubbiBuaOG6pXQgeOG6o3kgcmEgdHJvbmcgdGjDoW5nIDEwLzIwMjMsIHbhu5tpIG3hu6ljIGNow6puaCBs4buHY2ggbMOqbiDEkeG6v24gOSUuDQogIA0KICBCaeG7g3UgxJHhu5MgY2hvIHRo4bqleSBz4buxIGJp4bq/biDEkeG7mW5nIGPhu6dhIGdpw6EgY+G7lSBwaGnhur91IFBOSiBs4bubbiBoxqFuIHNvIHbhu5tpIG3hu6ljIGdpw6EgdHJ1bmcgYsOsbmguDQoNCiAgTmjDoCDEkeG6p3UgdMawIGPhuqduIGPhuqluIHRy4buNbmcga2hpIHhlbSB4w6l0IMSR4bqndSB0xrAgdsOgbyBj4buVIHBoaeG6v3UgUE5KLg0KDQoNCmBgYHtyLCB3YXJuaW5nPUZBTFNFfQ0KIyBCaeG7g3UgxJHhu5MgYmnhur9uIMSR4buZbmcgZ2nDoSBQTkogdGhlbyB0cnVuZyB24buLDQpnZ3Bsb3QobXQsIGFlcyh4ID0gTmdheSwgeSA9IGdpYS5tby5jdWEpKSArDQogIGdlb21fbGluZShjb2xvciA9ICJibHVlIikgKw0KICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQgPSBtZWRpYW5fR2lhLCBsaW5ldHlwZSA9ICJkYXNoZWQiLCBjb2xvciA9ICJncmVlbiIsIHNpemUgPSAxKSArDQogIGFubm90YXRlKCJ0ZXh0IiwgeCA9IG1heChtdCROZ2F5KSwgeSA9IG1lZGlhbl9HaWEsIGxhYmVsID0gcGFzdGUoIk1lZGlhbjoiLCByb3VuZChtZWRpYW5fR2lhLCAyKSksIGhqdXN0ID0gLTAuMSwgdmp1c3QgPSAwKSArDQogIGxhYnModGl0bGUgPSAiQmnhu4N1IMSR4buTIGJp4bq/biDEkeG7mW5nIGdpw6EgUE5KIHRoZW8gVHJ1bmcgduG7iyIsDQogICAgICAgeCA9ICJOZ8OgeSIsDQogICAgICAgeSA9ICJHacOhIG3hu58gY+G7rWEiKSArDQogIHRoZW1lX21pbmltYWwoKQ0KYGBgDQoNCioqTmjhuq1uIHjDqXQqKg0KDQogIEdpw6EgY+G7lSBwaGnhur91IFBOSiBiaeG6v24gxJHhu5luZyBt4bqhbmggaMahbiBzbyB24bubaSB0cnVuZyB24buLIGdpw6EgbeG7nyBj4butYSB0cm9uZyAxMiB0aMOhbmcgcXVhLg0KDQogIFThu6sgdGjDoW5nIDQtNy8yMDIzLCBnacOhIGPhu5UgcGhp4bq/dSBQTkogdGjhuqVwIGjGoW4gdHJ1bmcgduG7iyBnacOhIG3hu58gY+G7rWEsDQoNCiAgTeG7qWMgY2jDqm5oIGzhu4djaCBnaeG7r2EgZ2nDoSBj4buVIHBoaeG6v3UgUE5KIHbDoCB0cnVuZyB24buLIGdpw6EgbeG7nyBj4butYSBs4bubbiBuaOG6pXQgeOG6o3kgcmEgdHJvbmcgdGjDoW5nIDExLzIwMjMsIHbhu5tpIG3hu6ljIGNow6puaCBs4buHY2ggbMOqbiDEkeG6v24gOC4zJS4NCg0KIyMgKipQaMOibiB0w61jaCBiaeG6v24gxJHhu5luZyBnacOhIGPhu5UgcGhp4bq/dSBQTkoga2hpIHRo4buLIHRyxrDhu51uZyB2w6BuZyB0cm9uZyBuxrDhu5tjIHTEg25nIGdpw6EgbeG6oW5oIDIwLzEyLzIwMjMtIDI5LzEyLzIwMjMqKg0KDQoNClThu5VuZyBj4bulYyBUaOG7kW5nIGvDqiBjaG8gYmnhur90IHTDrW5oIMSR4bq/biBuZ8OgeSAyNS8xMi8yMDIzLCBiw6xuaCBxdcOibiBnacOhIHbDoG5nIHRo4bq/IGdp4bubaSDhu58gbeG7qWMgMi4wNDAsNzcgVVNEL291bmNlLCB0xINuZyAyLDkzJSBzbyB24bubaSB0aMOhbmcgMTEvMjAyMy4gTmd1ecOqbiBuaMOibiBkbyBD4bulYyBE4buxIHRy4buvIExpw6puIGJhbmcgTeG7uSAoRkVEKSBxdXnhur90IMSR4buLbmggZ2nhu68gbmd1ecOqbiBsw6NpIHN14bqldCDhu58gbeG7qWMgNSwyNSUtNSw1JSB2w6AgZOG7sSBraeG6v24gY8OzIGJhIMSR4bujdCBnaeG6o20gbMOjaSBzdeG6pXQgdHJvbmcgbsSDbSAyMDI0Lg0KDQpCw6puIGPhuqFuaCDEkcOzLCBuaOG7r25nIGtow7Mga2jEg24gxJHhur9uIHThu6sgdGjhu4sgdHLGsOG7nW5nIGNo4bupbmcga2hvw6FuIGPDuW5nIG5odSBj4bqndSBk4buxIHRy4buvIHbDoG5nIGPhu6dhIGPDoWMgbmfDom4gaMOgbmcgVHJ1bmcgxrDGoW5nIHbDoCBraHUgduG7sWMgY2jDonUgw4EgdHJvbmcgZOG7i3AgY3Xhu5FpIG7Eg20gY8WpbmcgbMOgIG5o4buvbmcgbmd1ecOqbiBuaMOibiB0w6FjIMSR4buZbmcgxJHhur9uIGdpw6EgdsOgbmcgdHLDqm4gdGjhur8gZ2nhu5tpLg0KDQrhu54gdHJvbmcgbsaw4bubYywgY2jhu4kgc+G7kSBnacOhIHbDoG5nIHRow6FuZyAxMi8yMDIzIHTEg25nIDMsOTglIHNvIHbhu5tpIHRow6FuZyB0csaw4bubYzsgdMSDbmcgMTMsMTMlIHNvIHbhu5tpIGPDuW5nIGvhu7MgbsSDbSB0csaw4bubYzsgYsOsbmggcXXDom4gZ2nDoSB2w6BuZyBuxINtIDIwMjMgdMSDbmcgNCwxNiUuDQoNCkLDoCBOZ3V54buFbiBUaHUgT2FuaCwgVuG7pSB0csaw4bufbmcgVGjhu5FuZyBrw6ogZ2nDoSwgVOG7lW5nIGPhu6VjIFRo4buRbmcga8OqIGzDvSBnaeG6o2kgbeG7qWMgdMSDbmcgNCwxNiUgY+G7p2EgZ2nDoSB2w6BuZyB0cm9uZyBuxrDhu5tjIG7Eg20gMjAyMyBsw6AgbeG7qWMgZ2nDoSBiw6xuaCBxdcOibiDEkcaw4bujYyBjaGlhIMSR4buBdSB0cm9uZyAxMiB0aMOhbmcuIEPDsm4gdHJvbmcgdGjhu7FjIHThur8sIHPhu7EgYmnhur9uIMSR4buZbmcgY+G7p2EgZ2nDoSB2w6BuZyBtYW5nIHTDrW5oIHRo4budaSDEkWnhu4NtLCB0cm9uZyDEkcOzIGdpw6EgdsOgbmcgxJHDoyBjw7MgxJHhu6N0IHTEg25nIHLhuqV0IG3huqFuaCB2w6BvIHRow6FuZyAxMi8yMDIzLg0KDQpDxaluZyB0aGVvIGLDoCBOZ3V54buFbiBUaHUgT2FuaCwgZ2nDoSB2w6BuZyB0cm9uZyBuxrDhu5tjIHbhu6thIHF1YSDEkcOjIGJp4bq/biDEkeG7mW5nIHLhuqV0IG3huqFuaCBkbyBwaOG7pSB0aHXhu5ljIHbDoG8gaGFpIHnhur91IHThu5E6IEJp4bq/biDEkeG7mW5nIGPDuW5nIGNoaeG7gXUgduG7m2kgZ2nDoSB2w6BuZyB0aOG6vyBnaeG7m2kgdsOgIGPDoWMgeeG6v3UgdOG7kSB04burIHRo4buLIHRyxrDhu51uZyB0cm9uZyBuxrDhu5tjLg0KDQpD4bulIHRo4buDLCBnacOhIHbDoG5nIHRyb25nIG7GsOG7m2MgdMSDbmcgbMOgIGRvIGzDo2kgc3XhuqV0IHRp4bq/dCBraeG7h20gdGjhuqVwLCB0aOG7iyB0csaw4budbmcgYuG6pXQgxJHhu5luZyBz4bqjbiBraMOzIGtoxINuIGThuqtuIMSR4bq/biB2w6BuZyB0cuG7nyB0aMOgbmgga8OqbmggdHLDuiDhuqluIMSRxrDhu6NjIG5oaeG7gXUgbmfGsOG7nWkgbOG7sWEgY2jhu41uLCB04bqhbyByYSBz4bupYyBj4bqndSBs4bubbiB0csOqbiB0aOG7iyB0csaw4budbmcuDQoNClRoZW8gVOG7lW5nIGPhu6VjIFRo4buRbmcga8OqLCBuaGnhu4F1IHThu5UgY2jhu6ljIHF14buRYyB04bq/IMSRw6MgY2jhu4kgcmEgbmjhu69uZyB24bqlbiDEkeG7gSBraMOzIGtoxINuIGvDqW8gZMOgaSBj4bunYSB0xINuZyB0csaw4bufbmcga2luaCB04bq/IHRvw6BuIGPhuqd1LCBrw6lvIHRoZW8gbmjhu69uZyB24bqlbiDEkeG7gSBraMOzIGtoxINuIGPhu6dhIHRo4buLIHRyxrDhu51uZyB0w6BpIGNow61uaC4gS2hpIMSRw7MsIGTDsm5nIHRp4buBbiBjw7MgdGjhu4MgdMOsbSDEkeG6v24gY8OhYyBrw6puaCB0csO6IOG6qW4gYW4gdG/DoG4gbmjGsCB2w6BuZywgVVNEIGzDoG0gZ2nhuqNtIHRoaeG7g3Ugbmd14buTbiBjdW5nIHbhu5FuIGNobyBz4bqjbiB4deG6pXQuDQoNCsSQw6J5IGzDoCDEkWnhu4F1IGPhuqduIGzGsHUgw70gxJHhu5FpIHbhu5tpIGPDoWMgY8ahIHF1YW4gxJFp4buBdSBow6BuaCwgdOG7qyDEkcOzIGPDsyBnaeG6o2kgcGjDoXAgZ2lhIHTEg25nIG5p4buBbSB0aW4gY2hvIHRo4buLIHRyxrDhu51uZyB2w6AgbmjDoCDEkeG6p3UgdMawIMSR4buDIGTDsm5nIHbhu5FuIHThuq1wIHRydW5nIHbDoG8ga2h1IHbhu7FjIHPhuqNuIHh14bqldCBraW5oIGRvYW5oLCB0csOhbmggZOG7sSB0cuG7ryBxdcOhIG3hu6ljIGPhuqduIHRoaeG6v3QgdsOgbyBrw6puaCB0csO6IOG6qW4gbmjGsCB2w6BuZy4NCg0KTeG6t2MgZMO5IGdpw6EgdsOgbmcgdHJvbmcgbsaw4bubYyB24burYSBjw7MgxJHhu6N0IHTEg25nIHLhuqV0IG3huqFuaCB0cm9uZyBuaOG7r25nIG5nw6B5IGN14buRaSBuxINtIG5oxrBuZyB0w61uaCBjaHVuZyBj4bqjIG7Eg20gMjAyMywgYsOsbmggcXXDom4gZ2nDoSB2w6BuZyB24bqrbiB0xINuZyB0aOG6pXAgaMahbiBzbyB24bubaSBt4bupYyB0xINuZyA1LDc0JSBj4bunYSBuxINtIDIwMjIuDQoNCmBgYHtyfQ0KcGh1b25nX3NhaSA8LSB2YXIoZGx0biRnaWEubW8uY3VhKQ0KDQpkb19sZWNoX2NodWFuIDwtIHNkKGRsdG4kZ2lhLm1vLmN1YSkNCg0KbWVhbl90YiA8LSBtZWFuKGRsdG4kZ2lhLm1vLmN1YSkNCg0KDQpgYGANCg0KVGEgdGjhuqV5Og0KDQotIFBoxrDGoW5nIHNhaToNCg0KICBQaMawxqFuZyBzYWkgY+G7p2EgZ2nDoSBj4buVIHBoaeG6v3UgUE5KIHRyb25nIGtob+G6o25nIHRo4budaSBnaWFuIGJp4bq/biDEkeG7mW5nIG3huqFuaCB04burIDE1LTI5LzEyLzIwMjMgbMOgIDcuMDM2LjU0NS4NCg0KICBT4buxIGJp4bq/biDEkeG7mW5nIGzhu5tuIG7DoHkgc28gduG7m2kgbeG7qWMgdHJ1bmcgYsOsbmggY2hvIHRo4bqleSBt4bupYyDEkeG7mSBy4bunaSBybyBjYW8ga2hpIMSR4bqndSB0xrAgdsOgbyBj4buVIHBoaeG6v3UgUE5KIHRyb25nIGdpYWkgxJFv4bqhbiBuw6B5Lg0KDQotIFRydW5nIGLDrG5oIGdpw6E6DQoNCiAgVHJ1bmcgYsOsbmggZ2nDoSBj4bunYSBj4buVIHBoaeG6v3UgUE5KIHRyb25nIGtob+G6o25nIHRo4budaSBnaWFuIGJp4bq/biDEkeG7mW5nIG3huqFuaCB04burIDE1LTI5LzEyLzIwMjMgbMOgIDgyLjMzNiwzNjMgxJHhu5NuZy4NCg0KICBN4bupYyBnacOhIG7DoHkgY2FvIGjGoW4gc28gduG7m2kgdHJ1bmcgYsOsbmggZ2nDoSBuxINtICg3OS4zMjIsNTA4IMSR4buTbmcpLCBjaG8gdGjhuqV5IHh1IGjGsOG7m25nIHTEg25nIGPhu6dhIGdpw6EgY+G7lSBwaGnhur91IFBOSiB0cm9uZyBnaWFpIMSRb+G6oW4gbsOgeS4NCg0KLSDEkOG7mSBs4buHY2ggY2h14bqpbjoNCg0KICDEkOG7mSBs4buHY2ggY2h14bqpbiBj4bunYSBnacOhIGPhu5UgcGhp4bq/dSBQTkogdHJvbmcga2hv4bqjbmcgdGjhu51pIGdpYW4gYmnhur9uIMSR4buZbmcgbeG6oW5oIHThu6sgMTUtMjkvMTIvMjAyMyBsw6AgMi42NTIsNjQ5Lg0KDQogIE3hu6ljIMSR4buZIGJp4bq/biDEkeG7mW5nIGzhu5tuIG7DoHkgc28gduG7m2kgbeG7qWMgdHJ1bmcgYsOsbmggY8WpbmcgbMOgIG3hu5l0IGNo4buJIGLDoW8gduG7gSBt4bupYyDEkeG7mSBy4bunaSBybyBjYW8ga2hpIMSR4bqndSB0xrAgdsOgbyBj4buVIHBoaeG6v3UgUE5KIHRyb25nIGdpYWkgxJFv4bqhbiBuw6B5Lg0KDQotIFNvIHPDoW5oOg0KDQogIFNvIHPDoW5oIHBoxrDGoW5nIHNhaSB2w6AgxJHhu5kgbOG7h2NoIGNodeG6qW4gY2hvIHRo4bqleSBt4bupYyDEkeG7mSBiaeG6v24gxJHhu5luZyBj4bunYSBnacOhIGPhu5UgcGhp4bq/dSBQTkogbMOgIGzhu5tuLg0KDQogIFNvIHPDoW5oIHRydW5nIGLDrG5oIGdpw6EgdHJvbmcga2hv4bqjbmcgdGjhu51pIGdpYW4gYmnhur9uIMSR4buZbmcgbeG6oW5oIHbDoCB0cnVuZyBiw6xuaCBnacOhIG7Eg20gY2hvIHRo4bqleSB4dSBoxrDhu5tuZyB0xINuZyBj4bunYSBnacOhIGPhu5UgcGhp4bq/dSBQTkogdHJvbmcgZ2lhaSDEkW/huqFuIG7DoHkuDQoNCi0gS+G6v3QgbHXhuq1uOg0KDQogIEdpw6EgY+G7lSBwaGnhur91IFBOSiBiaeG6v24gxJHhu5luZyBt4bqhbmggdHJvbmcga2hv4bqjbmcgdGjhu51pIGdpYW4gdOG7qyAxNS0yOS8xMi8yMDIzLg0KDQogIE5ow6AgxJHhuqd1IHTGsCBj4bqnbiBj4bqpbiB0cuG7jW5nIHbDoCB0aeG6v24gaMOgbmggbmdoacOqbiBj4bupdSBj4bqpbiB0aOG6rW4gdHLGsOG7m2Mga2hpIHF1eeG6v3QgxJHhu4tuaCDEkeG6p3UgdMawIHbDoG8gY+G7lSBwaGnhur91IFBOSiB0cm9uZyBnaWFpIMSRb+G6oW4gbsOgeS4NCg0KKiogQmnhu4N1IMSR4buTIFBow6JuIHTDrWNoIGJp4bq/biDEkeG7mW5nIGdpw6EgY+G7lSBwaGnhur91IFBOSiBraGkgdGjhu4sgdHLGsOG7nW5nIHbDoG5nIHRyb25nIG7GsOG7m2MgdMSDbmcgZ2nDoSBt4bqhbmggMjAvMTIvMjAyMy0gMjkvMTIvMjAyMyoqDQoNCmBgYHtyLHdhcm5pbmc9RkFMU0V9DQpnaWF2YW5nIDwtIHJlYWRfeGxzeCgiQzovVXNlcnMvQVNVUy9Eb3dubG9hZHMvbm5sdC9naWF2YW5nZ2RwdC54bHN4IikNCnNjYWxlX2ZhY3RvciA8LSAxMDAwICAjIENo4buNbiBt4buZdCBo4bqxbmcgc+G7kSBwaMO5IGjhu6NwIMSR4buDIGdp4bqjbSB04buJIGzhu4cNCg0KIyBDaGlhIG5o4buPIGThu68gbGnhu4d1IGdpw6EgdsOgbmcNCmdpYXZhbmckYmFuLnJhIDwtIGdpYXZhbmckYmFuLnJhIC8gc2NhbGVfZmFjdG9yDQpnZ3Bsb3QoKSArDQogIGdlb21fY29sKGRhdGEgPSBnaWF2YW5nLCBhZXMoeCA9IG5nYXksIHkgPSBiYW4ucmEsIGZpbGwgPSAiR2nDoSB2w6BuZyIpKSArICAjIFPhu60gZOG7pW5nIGZpbGwgdGhheSB2w6wgY29sb3IgY2hvIGPhu5l0DQogIGdlb21fbGluZShkYXRhID0gZGx0biwgYWVzKHggPSBOZ2F5LCB5ID0gZ2lhLm1vLmN1YSwgY29sb3IgPSAiR2nDoSBj4buVIHBoaeG6v3UgUE5KIikpICsgICMgU+G7rSBk4bulbmcgY29sb3IgY2hvIMSRxrDhu51uZw0KICBsYWJzKHggPSAiTmfDoHkiLCB5ID0gIkdpw6EiLCBjb2xvciA9ICJCaeG6v24iLCBmaWxsID0gIkJp4bq/biIpICsgICMgxJDhurd0IHTDqm4gY2hvIGNvbG9yIHbDoCBmaWxsDQogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9ICJsaWdodGdyZWVuIikgKyAgIyDEkOG6t3QgbcOgdSBjaG8gY+G7mXQNCiAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9ICJicm93biIpICsgICMgxJDhurd0IG3DoHUgY2hvIMSRxrDhu51uZw0KICB0aGVtZV9taW5pbWFsKCkNCg0KYGBgDQoNClRyb25nIGdpYWkgxJFv4bqhbiB04burIG5nw6B5IDE1IMSR4bq/biAyOSB0aMOhbmcgMTIgbsSDbSAyMDIzLCBjaMO6bmcgdGEgxJHDoyBxdWFuIHPDoXQgxJHGsOG7o2MgbeG7mXQgc+G7sSBiaeG6v24gxJHhu5luZyBt4bqhbmggbeG6vSB0cm9uZyBj4bqjIGdpw6EgdsOgbmcgdsOgIGdpw6EgY+G7lSBwaGnhur91IFBOSi4gVGhlbyBkw7VpIGPDoWMgYmnhu4N1IMSR4buTIHbDoCBk4buvIGxp4buHdSwgY2jDum5nIHRhIG5o4bqtbiB0aOG6pXkgY8OhYyB4dSBoxrDhu5tuZyBjaMOtbmggc2F1Og0KDQotIEJp4bq/biDEkeG7mW5nIGPhu6dhIEdpw6EgVsOgbmcgdsOgIEdpw6EgQ+G7lSBQaGnhur91IFBOSjoNCg0KICBHacOhIHbDoG5nIGJp4bq/biDEkeG7mW5nIG3huqFuaCBoxqFuIGdpw6EgY+G7lSBwaGnhur91IFBOSiB0cm9uZyBnaWFpIMSRb+G6oW4gbsOgeSwgxJFp4buBdSBuw6B5IMSRxrDhu6NjIHRo4buDIGhp4buHbiBxdWEgc+G7sSB0aGF5IMSR4buVaSDEkcOhbmcga+G7gyB0cm9uZyBnacOhIHbDoG5nIHThu6sgbmfDoHkgMTUgxJHhur9uIDIxIHRow6FuZyAxMiwgdGnhur9wIMSRw7MgbMOgIHPhu7EgZ2nhuqNtIGdpw6EgdOG7qyBuZ8OgeSAyMiDEkeG6v24gMjkgdGjDoW5nIDEyLg0KDQogIFRyb25nIGtoaSDEkcOzLCBnacOhIGPhu5UgcGhp4bq/dSBQTkogY8OzIG3hu5l0IHh1IGjGsOG7m25nIGdp4bqjbSB04burIG5nw6B5IDE1IMSR4bq/biAyOSB0aMOhbmcgMTIsIGNobyB0aOG6pXkgw6FwIGzhu7FjIGLDoW4gxJFhbmcgY2hp4bq/bSDGsHUgdGjhur8gdHJvbmcgdGjhu4sgdHLGsOG7nW5nIGPhu5UgcGhp4bq/dS4NCg0KLSDDnSBOZ2jEqWE6DQoNCiAgQmnhu4N1IMSR4buTIHbDoCBk4buvIGxp4buHdSDEkcOjIGdpw7pwIGNow7puZyB0YSBuaOG6rW4gdGjhu6ljIMSRxrDhu6NjIHLhurFuZyBt4bupYyDEkeG7mSBy4bunaSBybyBj4bunYSB2aeG7h2MgxJHhuqd1IHTGsCB2w6BvIHbDoG5nIGNhbyBoxqFuIHNvIHbhu5tpIGPhu5UgcGhp4bq/dSBQTkogdHJvbmcgZ2lhaSDEkW/huqFuIG7DoHkuDQoNCiAgTmjDoCDEkeG6p3UgdMawIGPhuqduIGPDom4gbmjhuq9jIGvhu7kgbMaw4buhbmcgdsOgIHRp4bq/biBow6BuaCBuZ2hpw6puIGPhu6l1IGPhuqluIHRo4bqtbiB0csaw4bubYyBraGkgcXV54bq/dCDEkeG7i25oIMSR4bqndSB0xrAgdsOgbyB2w6BuZyBob+G6t2MgY+G7lSBwaGnhur91IFBOSiwgxJHhurdjIGJp4buHdCBsw6AgdHJvbmcgYuG7kWkgY+G6o25oIGJp4bq/biDEkeG7mW5nIGzhu5tuIHbDoCBraMO0bmcg4buVbiDEkeG7i25oIGPhu6dhIHRo4buLIHRyxrDhu51uZy4NCg0KIyAqKkNoxrDGoW5nIDQ6IFRyaeG7g24gduG7jW5nIHTEg25nIHRyxrDhu59uZyB2w6AgZOG7sSDEkW/DoW4gZ2nDoSBj4buVIHBoaeG6v3UgUE5KIG7Eg20gMjAyNCoqDQoNCiMjICoqVHJp4buDbiB24buNbmcgdMSDbmcgdHLGsOG7n25nIGPhu6dhIG3DoyBQTkoqKg0KDQpL4bq/dCB0aMO6YyBuxINtIDIwMjMsIGdpw6EgdsOgbmcgdGjhur8gZ2nhu5tpIMSRw6MgdMSDbmcgMTMlLCDEkcOhbmggZOG6pXUgbsSDbSBob+G6oXQgxJHhu5luZyB04buRdCBuaOG6pXQga+G7gyB04burIG7Eg20gMjAyMC4gQ+G7pSB0aOG7gywgY2jhu5F0IHBoacOqbiBnaWFvIGThu4tjaCBjdeG7kWkgY8O5bmcgY+G7p2EgbsSDbSAyMDIzLCBnacOhIHbDoG5nIGdpYW8gbmdheSBuZW8g4bufIG3hu6ljIDIuMDYyLDIgVVNEL291bmNlLg0KDQpUaGVvIMSRw6FuaCBnacOhIGPhu6dhIGPDoWMgY2h1ecOqbiBnaWEsIHbhu5tpIMSRw6AgbsOgeSwgZ2nDoSB2w6BuZyB0aOG6vyBnaeG7m2kgY8OzIHRo4buDIGNoaW5oIHBo4bulYyBjw6FjIG3hu6ljIGNhbyBr4bu3IGzhu6VjIG3hu5tpIHRyb25nIG7Eg20gdOG7m2kgdsOgIGPDoWMgeeG6v3UgdOG7kSBsw6BtIOKAnGLhu4cgcGjDs25n4oCdIGNobyB2w6BuZyBsw6Aga+G7syB24buNbmcgeG9heSB0cuG7pWMgbMOjaSBzdeG6pXQsIHLhu6dpIHJvIMSR4buLYSBjaMOtbmggdHLhu4sgdsOgIG5odSBj4bqndSB2w6BuZyBj4bunYSBjw6FjIG5nw6JuIGjDoG5nIHRydW5nIMawxqFuZy4NCg0KxJDhuqd1IHRow6FuZyBuw6B5LCBnacOhIHbDoG5nIMSRw6MgInjDtCDEkeG7lSIga+G7tyBs4bulYyBs4bqtcCDEkcaw4bujYyB2w6BvIG7Eg20gMjAyMCB2w6AgY2jhuqFtIG3hu6ljIDIuMTM1LDQgVVNEL291bmNlIHNhdSBraGkgY8OzIHTDrW4gaGnhu4d1IGNobyB0aOG6pXkgQ+G7pWMgROG7sSB0cuG7ryBMacOqbiBiYW5nIE3hu7kgKEZlZCkgc+G6vSBu4bubaSBs4buPbmcgY2jDrW5oIHPDoWNoIHRp4buBbiB04buHIHbDoG8gxJHhuqd1IG7Eg20gMjAyNC4NCg0KVHLGsOG7m2MgxJHDsywgZ2nDoSB2w6BuZyBn4bqnbiBuaMawIMSRw6MgbOG7jXQgdsOgbyB2w7luZyBsw6NuaCB0aOG7lSBjaMawYSDEkcaw4bujYyBraMOhbSBwaMOhIHbDoG8gdGjDoW5nIDUgbsSDbSBuYXkga2hpIGN14buZYyBraOG7p25nIGhv4bqjbmcgbmfDom4gaMOgbmcgZGnhu4VuIHJhLiBUaMOhbmcgMTAsIGdpw6EgdsOgbmcgZ2nhuqNtIHh14buRbmcgZ+G6p24gbeG7qWMgMS44MDAgVVNEL291bmNlIG5oxrBuZyDEkcOjIG5oYW5oIGNow7NuZyB0xINuZyB0cuG7nyBs4bqhaSBuaOG7nSBs4buxYyBj4bqndSB0csO6IOG6qW4gYW4gdG/DoG4gdOG7qyBjdeG7mWMgeHVuZyDEkeG7mXQgSGFtYXMtSXNyYWVsLg0KDQpOaOG7r25nIG5nw6B5IGN14buRaSBuxINtIDIwMjMsIGdpw6EgdsOgbmcgbWnhur9uZyBTSkMgdMSDbmcgZ2nhuqNtICLEkWnDqm4gY3Xhu5NuZyIgY2jhu4kgdHJvbmcgdMOtY2ggdOG6r2MgdHJvbmcga2hpIGdpw6EgdsOgbmcgdGjhur8gZ2nhu5tpIGtow6EgYsOsbmgg4buVbi4NCg0KIVtdKEM6L1VzZXJzL0FTVVMvUGljdHVyZXMvdOG7tyBs4buHIHRpw6p1IHRo4bulIHbDoG5nIHRyYW5nIHPhu6ljLnBuZykNCg0KDQoqKipD4buVIHBoaeG6v3UgUE5KOiBUcmnhu4NuIHbhu41uZyDEkeG6p3UgdMawIG5oxrAgdGjhur8gbsOgbyBraGkgZ2nDoSB2w6BuZyB0xINuZyBjYW8/KioqDQoNClRoZW8gxJHDoCB0xINuZyBj4bunYSBnacOhIHbDoG5nIHRo4bq/IGdp4bubaSwgZ2nDoSB2w6BuZyB0cm9uZyBuxrDhu5tjIMSRw6MgbGnDqm4gdOG7pWMgdMSDbmcgY2FvIHbDoCBoaeG7h24gxJHDoyB2xrDhu6N0IHF1YSB2w7luZyA3MSB0cmnDqnUgxJHhu5NuZy9sxrDhu6NuZywgdGnhur9uIHPDoXQgdsO5bmcgxJHhu4luaCBs4buLY2ggc+G7rS4NCg0KVuG6rXkgdmnhu4djIGdpw6EgdsOgbmcgdMSDbmcgY2FvIGPDsyDhuqNuaCBoxrDhu59uZyDEkeG6v24gdHJp4buDbiB24buNbmcgxJHhuqd1IHTGsCBj4bunYSBDVENQIFbDoG5nIELhuqFjIMSQw6EgUXXDvSBQaMO6IE5odeG6rW4sIG3DoyBj4buVIHBoaeG6v3UgUE5KLCBkb2FuaCBuZ2hp4buHcCBraW5oIGRvYW5oIHbDoG5nIHbDoCBjw6FjIHPhuqNuIHBo4bqpbSB0cmFuZyBz4bupYyBkdXkgbmjhuqV0IHRyw6puIHPDoG4gY2jhu6luZyBraG/DoW4gdsOgIGPFqW5nIGzDoCBETiBxdXkgbcO0IHRvcCDEkeG6p3UgVmnhu4d0IE5hbSBoaeG7h24gbmF5IHRyb25nIGzEqW5oIHbhu7FjIG7DoHkuDQoNCsSQw6FuaCBnacOhIHbhu4EgdGnhu4FtIG7Eg25nIHTEg25nIGdpw6EgY+G7p2EgY+G7lSBwaGnhur91IFBOSiB0cm9uZyBi4buRaSBj4bqjbmggZ2nDoSB2w6BuZyBuw7NuZyBi4buPbmcsIENUQ0sgVmlldGNvbWJhbmsgKFZDQlMpIGNobyBy4bqxbmcsIFBOSiBjw7MgdGnhu4FtIG7Eg25nIHTEg25nIGdpw6EgdGjDqm0gMjMlLCDEkeG6t3QgZ2nDoSBt4bulYyB0acOqdSDhu58gbeG7qWMgMTEwLjA2MCDEkeG7k25nL2Phu5UgcGhp4bq/dS4NCg0KTHXhuq1uIMSRaeG7g20gxJHhuqd1IHTGsCBk4buxYSB2w6BvIHRp4buBbSBuxINuZyBkw6BpIGjhuqFuIGPhu6dhIG5nw6BuaCB0cmFuZyBz4bupYy4gVmnhu4d0IE5hbSBsw6AgbeG7mXQgdHJvbmcgbmjhu69uZyB0aOG7iyB0csaw4budbmcgdsOgbmcgxJHhu6luZyDEkeG6p3UgxJDDtG5nIE5hbSDDgSB24bubaSBxdXkgbcO0IHRpw6p1IHRo4bulIMaw4bubYyB0w61uaCDEkeG6oXQgNTUsNSB04bqlbiB2w6BuZy9uxINtLCB0dXkgbmhpw6puIHRo4buLIHRyxrDhu51uZyB2w6BuZyB0cmFuZyBz4bupYyB24bqrbiBjw7JuIGNoaeG6v20gdOG7tyB0cuG7jW5nIG5o4buPIChraG/huqNuZyAyMSUpLiBW4bubaSB2aeG7h2MgdGh1IG5o4bqtcCBuZ8aw4budaSBkw6JuIHTEg25nIG5oYW5oIHbDoCB4dSBoxrDhu5tuZyBjaGkgdGnDqnUgY2hvIGPDoWMgbeG6t3QgaMOgbmcgeGEgeOG7iSwgVkNCUyBjaG8gcuG6sW5nLCBkxrAgxJHhu4thIHTEg25nIHRyxrDhu59uZyBjaG8gbmjhu69uZyBkb2FuaCBuZ2hp4buHcCDEkeG6p3UgbmfDoG5oIG5oxrAgUE5KIGPDsm4gcuG6pXQgbOG7m24uDQoNCkjGoW4gbuG7r2EsIFBOSiBsw6AgY+G7lSBwaGnhur91IHTEg25nIHRyxrDhu59uZyBow6BuZyDEkeG6p3UgduG7m2kgxJHhu4tuaCBnacOhIGjhuqVwIGThuqtuLiBDaGnhur9uIGzGsOG7o2MgdMSDbmcgdHLGsOG7n25nIGPhu6dhIFBOSiB04bqtcCB0cnVuZyB2w6BvIG3hu58gbeG7m2kgY+G7rWEgaMOgbmcgdsOgIHTEg25nIHRyxrDhu59uZyBkb2FuaCB0aHUgY+G7rWEgaMOgbmcgY8WpLiBWQ0JTIGvhu7MgduG7jW5nIFBOSiBz4bq9IHRp4bq/cCB04bulYyBt4bufIG3hu5tpIDM1IC0gNDAgY+G7rWEgaMOgbmcvbsSDbSwgdOG6rXAgdHJ1bmcgdOG6oWkgY8OhYyB04buJbmggcGjDrWEgQuG6r2MgdsOgIGR1eSB0csOsIHTEg25nIHRyxrDhu59uZyBkb2FuaCB0aHUgY+G7rWEgaMOgbmcgY8WpIGtob+G6o25nIDgtMTAlIHRyb25nIDIgbsSDbSB04bubaSBkxrDhu5tpIGvhu7MgduG7jW5nIHbhu4Egc+G7qWMgbXVhIHRyYW5nIHPhu6ljIGjhu5NpIHBo4bulYywgxJHhurdjIGJp4buHdCB2w6BvIG7hu61hIGN14buRaSAyMDI0Lg0KDQpDxaluZyB0aGVvIGJhbiBsw6NuaCDEkeG6oW8gUE5KLCBkxrAgxJHhu4thIG3hu58gcuG7mW5nIHRo4buLIHBo4bqnbiBj4bunYSBQTkogbMOgIHLhuqV0IGzhu5tuLCB04bu3IGzhu4cgbmfGsOG7nWkgZMOibiBz4bufIGjhu691IHbDoG5nIGPhu6dhIFZp4buHdCBOYW0gduG6q24g4bufIG3hu6ljIHLhuqV0IHRo4bqlcCBzbyB24bubaSBjw6FjIHF14buRYyBnaWEgdHJvbmcga2h1IHbhu7FjIG5oxrAgVGjDoWkgTGFuLCBTaW5nYXBvcmXigKYNCg0KQsOqbiBj4bqhbmggxJHDsywgxJHhurdjIHRow7kgY+G7p2EgbmfDoG5oIHRyYW5nIHPhu6ljIGPDsyB0aOG7gyBjaG8gcGjDqXAga2jDoWNoIGjDoG5nIG11YSBjw6FjIGxv4bqhaSBz4bqjbiBwaOG6qW0ga2jDoWMgbmhhdSB0w7l5IHbDoG8gxJFp4buBdSBraeG7h24ga2luaCB04bq/IHThuqFpIHThu6tuZyB0aOG7nWkgxJFp4buDbS4gVsOtIGThu6UsIGFuaCBBIHbDoG8gbsSDbSAyMDIzIG11YSBz4bqjbiBwaOG6qW0gdsOgbmcsIG5oxrBuZyBzYW5nIG7Eg20gdGnhur9wIHRoZW8ga2luaCBkb2FuaCB0aHXhuq1uIGzhu6NpIG7Dqm4gc+G6vSBuw6JuZyBj4bqlcCBz4bqjbiBwaOG6qW0gbMOqbiBraW0gY8awxqFuZy4gRG8gduG6rXksIGTGsCDEkeG7i2EgxJHhu4MgY+G6o2kgdGhp4buHbiBkb2FuaCB0aHUgdsOgIHRo4buLIHBo4bqnbiBj4bunYSBQTkogcuG6pXQga2jDoWMgc28gduG7m2kgY8OidSBjaHV54buHbiB0aOG7iyBwaOG6p24gYuG7iyBjaOG7r25nIGzhuqFpIHbDoCBo4bqhbiBjaOG6vyDEkcOgIHTEg25nIHRyxrDhu59uZyBuaMawIG5nw6BuaCBz4buvYSBj4bunYSBWTk0uDQoNClRyb25nIDEgdHXhuqduIHF1YSwgZ2nDoSBj4buVIHBoaeG6v3UgUE5KIGPhu6dhIEPDtG5nIHR5IGPhu5UgcGjhuqduIFbDoG5nIGLhuqFjIMSQw6EgcXXDvSBQaMO6IE5odeG6rW4gxJHDoyB0xINuZyBoxqFuIDglIHbDoCB0xINuZyBn4bqnbiAyMCUgdHJvbmcgMyB0aMOhbmcgcXVhLg0KDQpUaGVvIENUQ0sgWXVhbnRhLCBnacOhIGPhu5UgcGhp4bq/dSBQTkogxJHDoyB0xINuZyAyMCUga+G7gyB04burIHRow6FuZyAxMC8yMDIzLCBuaMawbmcgY+G7lSBwaGnhur91IMSRw6MgxJFp4buBdSBjaOG7iW5oIGvhu4MgdOG7qyBk4buLcCBuZ2jhu4kgVOG6v3QuDQoNCkPhu6UgdGjhu4MsIHRoZW8gYsOhbyBjw6FvIGvhur90IHF14bqjIGtpbmggZG9hbmggc8ahIGLhu5kgY+G7p2EgVsOgbmcgYuG6oWMgxJDDoSBxdcO9IFBow7ogTmh14bqtbiwgcXXDvSBJVi8yMDIzLCBjw7RuZyB0eSBnaGkgbmjhuq1uIGRvYW5oIHRodSB0aHXhuqduIMSR4bqhdCA5Ljc2MCB04bu3IMSR4buTbmcgdsOgIGzhu6NpIG5odeG6rW4gc2F1IHRodeG6vyDEkeG6oXQgNjMxIHThu7cgxJHhu5NuZzsgdMSDbmcgbOG6p24gbMaw4bujdCAxOCUgdsOgIDM0JSBzbyB24bubaSBjw7luZyBr4buzIG7Eg20gMjAyMi4NCg0KTHXhu7kga+G6vyBj4bqjIG7Eg20sIGRvYW5oIHRodSB0aHXhuqduIMSR4bqhdCAzMy4xMzcgdOG7tyDEkeG7k25nLCBnaeG6o20gMiUgdsOgIGzhu6NpIG5odeG6rW4gc2F1IHRodeG6vyDEkeG6oXQgMS45NzEgdOG7tyDEkeG7k25nLCB0xINuZyBn4bqnbiA5JSBzbyB24bubaSAyMDIyIG5o4budIGNoaeG6v20gbMSpbmggdGjDqm0gdGjhu4sgcGjhuqduLCBnaWEgdMSDbmcga2jDoWNoIGjDoG5nIG3hu5tpLCBt4bufIHLhu5luZyBt4bqhbmcgbMaw4bubaSB2w6AgdHVuZyB0aMOqbSBz4bqjbiBwaOG6qW0uIMSQw6J5IGPFqW5nIGzDoCBt4bupYyBs4bujaSBuaHXhuq1uIG7Eg20gY2FvIGvhu7cgbOG7pWMgY+G7p2EgUGjDuiBOaHXhuq1uLg0KDQpDw7RuZyB0eSBjaG8gYmnhur90IG5ndXnDqm4gbmjDom4gbOG7o2kgbmh14bqtbiB0xINuZyBsw6AgZG8gY2hp4bq/bSBsxKluaCB0aMOqbSB0aOG7iyBwaOG6p24sIGdpYSB0xINuZyBraMOhY2ggaMOgbmcgbeG7m2ksIG3hu58gcuG7mW5nIG3huqFuZyBsxrDhu5tpIHbDoCB0dW5nIHRow6ptIHPhuqNuIHBo4bqpbS4NCg0KU28gduG7m2kgbeG7pWMgdGnDqnUgxJHhu4EgcmEsIFBow7ogTmh14bqtbiDEkcOjIHRo4buxYyBoaeG7h24gxJHGsOG7o2MgOTMlIGNo4buJIHRpw6p1IGRvYW5oIHRodSB2w6Agdsaw4bujdCBn4bqnbiAyJSBr4bq/IGhv4bqhY2ggbOG7o2kgbmh14bqtbiBzYXUgdGh14bq/IGPhuqMgbsSDbS4NCg0KVMOtbmggdOG7m2kgaOG6v3QgbsSDbSAyMDIzLCBQaMO6IE5odeG6rW4gxJHDoyBjw7MgdOG7lW5nIGPhu5luZyA0MDAgY+G7rWEgaMOgbmcuVHJvbmcgbsSDbSBxdWEsIGRvYW5oIG5naGnhu4dwIMSRw6MgbeG7nyBt4bubaSA0OCBj4butYSBow6BuZyB2w6AgxJHDs25nIDcgY+G7rWEgaMOgbmcgUE5KIMSR4buTbmcgdGjhu51pIGRvYW5oIG5naGnhu4dwIMSRw6MgY2h1eeG7g24gxJHhu5VpIG3DtCBow6xuaCBraW5oIGRvYW5oIGPhu6dhIDMgY+G7rWEgaMOgbmcgxJHhu5ljIGzhuq1wIFBOSiBXYXRjaCB2w6AgMiBj4butYSBow6BuZyBQTkogQXJ0IMSR4buDIHThu5FpIMawdSBoaeG7h3UgcXXhuqMgY2hpIHBow60uDQoNCiFbXShDOi9Vc2Vycy9BU1VTL1BpY3R1cmVzL3NzcG5qLnBuZykNCg0KKioqQuG7jyDEkeG7mWMgcXV54buBbiB2w6BuZyBtaeG6v25nIFNKQyBraMO0bmcgY8OzIG5oaeG7gXUgdMOhYyDEkeG7mW5nIHThu5tpIGhv4bqhdCDEkeG7mW5nIGPhu6dhIFBOSioqKg0KDQpIaeG7h24gdOG6oWksIGdpw6EgdsOgbmcgbWnhur9uZyBTSkMgxJFhbmcgbmVvIOG7nyBt4bupYyBu4buBbiBjYW8gbmjhuqV0IHbDoCBjaMOqbmggbOG7h2NoIGtob+G6o25nIDE4IHRyaeG7h3UgxJHhu5NuZy9sxrDhu6NuZyBzbyB24bubaSBnacOhIHbDoG5nIHRo4bq/IGdp4bubaSwgbmdvw6BpIHJhIGNow6puaCBs4buHY2ggZ2nhu69hIGdpw6EgbXVhIOKAkyBnacOhIGLDoW4gY8WpbmcgbGnDqm4gdOG7pWMgdOG6oW8gcmEga2hv4bqjbmcgY8OhY2ggbOG7m24gdsOgIGR1eSB0csOsIOG7nyBt4bupYyAyLTMgdHJp4buHdSDEkeG7k25nL2zGsOG7o25nLiDEkMOieSBsw6AgbeG7mXQgduG6pW4gxJHhu4EgYuG6pXQgY+G6rXAgdHJvbmcgZ2lhbyBk4buLY2ggdGjhu4sgdHLGsOG7nW5nIHbDoG5nIG1p4bq/bmcuIFRoZW8gxJHDoW5oIGdpw6EsIHZp4buHYyBz4butYSDEkeG7lWkgTmdo4buLIMSR4buLbmggMjQvMjAxMi9OxJAtQ1AgaMaw4bubbmcgxJHhur9uIGLhu48gxJHhu5ljIHF1eeG7gW4gdGjGsMahbmcgaGnhu4d1IHbDoG5nIG1p4bq/bmcgU0pDIHbhu5tpIG3hu6VjIHRpw6p1IGNow61uaCBsw6AgdOG6oW8gc+G7sSBjw6JuIGLhurFuZyB0cm9uZyBnaWFvIGThu4tjaCB2w6BuZyBtaeG6v25nLCDEkWnhu4F1IHRp4bq/dCBnacOhIHbDoG5nIG1p4bq/bmcgU0pDIChoaeG7h24gxJFhbmcgbMOgIHRoxrDGoW5nIGhp4buHdSBxdeG7kWMgZ2lhKSDEkeG7gyBraMO0bmcgcXXDoSBjaMOqbmggbOG7h2NoIHbhu5tpIGdpw6EgdsOgbmcgdGjhur8gZ2nhu5tpLiBWw6wgdGjhur8sIHRow7RuZyB0aW4gbsOgeSBraMO0bmcgY8OzIG5oaeG7gXUgdMOhYyDEkeG7mW5nIHThu5tpIFBOSi4gQ2jDum5nIHTDtGkgxJHDoW5oIGdpw6Egdmnhu4djIHPhu61hIMSR4buVaSBz4bq9IGPDsyBs4bujaSBu4bq/dSBuaMawIGPDoWMgZG9hbmggbmdoaeG7h3AgYsOhbiBs4bq7IHRyYW5nIHPhu6ljIMSRxrDhu6NjIHBow6lwIG5o4bqtcCBraOG6qXUgdsOgbmcgbmd1ecOqbiBsaeG7h3UgdGjhur8gZ2nhu5tpIMSR4buDIHPhuqNuIHh14bqldCB2w6BuZyB0cmFuZyBz4bupYy4NCg0KIVtdKEM6L1VzZXJzL0FTVVMvUGljdHVyZXMvY2hlbmhsZWNoZ2lhLnBuZykNCg0KDQoqKipUw7NtIGzhuqFpOioqKg0KDQpDw7RuZyB0eSBj4buVIHBo4bqnbiBQTkogaGnhu4duIMSRYW5nIGNoaeG6v20gNTUlIHRo4buLIHBo4bqnbiB0cmFuZyBz4bupYyB0aMawxqFuZyBoaeG7h3UgduG7m2kgdOG7h3Aga2jDoWNoIGjDoG5nIHRydW5nIMSR4bq/biBjYW8gY+G6pXAuIELDqm4gY+G6oW5oIMSRw7MsIGPDtG5nIHR5IGPDsm4gc+G7nyBo4buvdSBjaHXhu5dpIDM5NCBj4butYSBow6BuZyBiw6FuIGzhursgdHJhbmcgc+G7qWMsIHbGsOG7o3QgdHLhu5lpIGjGoW4gc28gduG7m2kgY8OhYyBjw7RuZyB0eSBjw7luZyBuZ8OgbmguIFRyb25nIHTGsMahbmcgbGFpIGto4bqjIG7Eg25nIGNhbyBQTkogc+G6vSBjaGnhur9tIHRo4buLIHBo4bqnbiB04burIGPDoWMgY+G7rWEgaMOgbmcgdHJhbmcgc+G7qWMgbmjhu48gbOG6uyBuaOG7nSB4dSBoxrDhu5tuZyDGsGEgY2h14buZbmcgdHJhbmcgc+G7qWMgY8OzIHRoxrDGoW5nIGhp4buHdS4NCg0KTOG7o2kgbmh14bqtbiByw7JuZyBj4bunYSBQTkogxJHGsOG7o2Mga+G7syB24buNbmcgdMSDbmcgNSw3JS82LDYlLzEzLDUlIHRyb25nIGdpYWkgxJFv4bqhbiAyMDIzIC0gMjAyNSBuaOG7nSB04buRYyDEkeG7mSBt4bufIHLhu5luZyBj4butYSBow6BuZyBuaGFuaCBjaMOzbmcsIGJpw6puIGzhu6NpIG5odeG6rW4gZ+G7mXAgY+G6o2kgdGhp4buHbi4gVuG7gSBkw6BpIGjhuqFuLCBr4buzIHbhu41uZyBjaGnhur9uIGzGsOG7o2MgY+G7p2EgUE5KIHPhur0gcGjDoXQgdHJp4buDbiBo4bqlcCBk4bqrbiwgY2hp4bq/biBk4buLY2ggcXXhuqNuZyBjw6FvIGhp4buHdSBxdeG6oyBoxqFuLCBo4bujcCB0w6FjIHbhu5tpIGPDoWMgdGjGsMahbmcgaGnhu4d1IHRvw6BuIGPhuqd1IMSR4buDIHRow6BuaCBjaHXhu5dpIGPhu61hIGjDoG5nIMSRYSB0aMawxqFuZyBoaeG7h3UgdsOgIHTEg25nIGPGsOG7nW5nIHPhu5EgaMOzYSBo4buXIHRy4bujIGzhu6NpIG5odeG6rW4gcsOybmcgZHV5IHRyw6wgdMSDbmcgdHLGsOG7n25nIDIgY29uIHPhu5EgduG7m2kgbeG7qWMgQ0FHUiBsw6AgMTEsMiUgdHJvbmcgMjAyMyAtIDIwMjYuDQoNClBOSiBnaWFvIGThu4tjaCDhu58gbeG7qWMgUC9FIHRyxrDhu6N0IDEyVCBsw6AgMTQsNCBs4bqnbiwgdGjhuqVwIG3hu6ljIFAvRSB0cnVuZyBiw6xuaCAzIG7Eg20gbMOgIDE3LDAgbOG6p24uIE3hu6ljIMSR4buLbmggZ2nDoSBuw6B5IGjhuqVwIGThuqtuIHNvIHbhu5tpIHRyaeG7g24gduG7jW5nIHTEg25nIHRyxrDhu59uZyBs4bujaSBuaHXhuq1uIHbDoCB24buLIHRo4bq/IGThuqtuIMSR4bqndSBj4bunYSBjw7RuZyB0eS4NCg0KTmjDrG4gY2h1bmcgY+G7lSBwaGnhur91IFBOSiDEkWFuZyBsw6AgbOG7sWEgY2jhu41uIHRp4buBbSBuxINuZy4gxJDDonkgbMOgIDEgdHJvbmcgbmjhu69uZyBj4buVIHBoaeG6v3UgbOG7m24gdHJvbmcgbmfDoG5oIHbDoCBu4bqxbSB0cm9uZyBuaMOzbSB0cuG7pSwgbuG6v3Ugdm5pbmRleCBjw7Mgbmjhu4twIGvDqW8gdOG7m2kgdOG7qyBuaMOzbSBj4buVIHBoaeG6v3UgduG7kW4gaMOzYSBs4bubbiBuw6B5IHRow6wgUE5KIHbhuqtuIHTEg25nIHTGsMahbmcgdGnhur9wIHTGsMahbmcgxJHhu5FpIHPDoW5nLiANCg0KDQojIyAqKkThu7EgxJFvw6FuIGdpw6EgY+G7lSBwaGnhur91IFBOSiBuxINtIDIwMjQgYuG6sW5nIG3DtCBow6xuaCBBUklNQSB2w6AgdHJ1bmcgYsOsbmggdHLGsOG7o3QoTW92aW5nIEF2ZXJhZ2UpOioqDQoNCg0KDQpgYGB7ciwgd2FybmluZz1GQUxTRX0NCg0KbGlicmFyeSh6b28pDQpsaWJyYXJ5KGZvcmVjYXN0KQ0KbXQkTmdheSA8LSBhcy5EYXRlKG10JE5nYXkpDQojIENo4buNbiBk4buvIGxp4buHdSDEkcOzbmcgY+G7rWENCnBual9jbG9zZSA8LSBtdCRnaWEuZG9uZy5jdWENCg0KIyBQaMOibiBjaGlhIGThu68gbGnhu4d1DQp0cmFpbl9zaXplIDwtIGZsb29yKDAuOCAqIGxlbmd0aChwbmpfY2xvc2UpKQ0KdHJhaW4gPC0gcG5qX2Nsb3NlWzE6dHJhaW5fc2l6ZV0NCnRlc3QgPC0gcG5qX2Nsb3NlWyh0cmFpbl9zaXplICsgMSk6bGVuZ3RoKHBual9jbG9zZSldDQoNCiMgROG7sSDEkW/DoW4gYuG6sW5nIEFSSU1BDQptb2RlbF9hcmltYSA8LSBhdXRvLmFyaW1hKHRyYWluKQ0KcHJlZGljdGlvbnNfYXJpbWEgPC0gZm9yZWNhc3QobW9kZWxfYXJpbWEsIGggPSBsZW5ndGgodGVzdCkpDQoNCiMgROG7sSDEkW/DoW4gYuG6sW5nIE1vdmluZyBBdmVyYWdlDQpsaWJyYXJ5KGRwbHlyKQ0KDQojIENodXnhu4NuIMSR4buVaSDEkeG7kWkgdMaw4bujbmcgdHMgdGjDoG5oIGRhdGEgZnJhbWUNCnBual9kZiA8LSBkYXRhLmZyYW1lKERhdGUgPSB0aW1lKHBual9jbG9zZSksIEdpYWRvbmdjdWEgPSBwbmpfY2xvc2UpDQpwbmpfZGYgPC0gYXMuZGF0YS5mcmFtZShsYXBwbHkocG5qX2RmLCBhcy5udW1lcmljKSkNCg0KIyBUw61uaCB0b8OhbiB0cnVuZyBiw6xuaCB0csaw4bujdCAobW92aW5nIGF2ZXJhZ2UpDQp3aW5kb3dfc2l6ZSA8LSAxMCAjIMSQ4buVaSB3aW5kb3dfc2l6ZSB0aMOgbmggZ2nDoSB0cuG7iyBtb25nIG114buRbg0KcG5qX2RmIDwtIHBual9kZiAlPiUNCiAgbXV0YXRlKG1hID0gcm9sbG1lYW4oR2lhZG9uZ2N1YSwgayA9IHdpbmRvd19zaXplLCBmaWxsID0gTkEsIGFsaWduID0gInJpZ2h0IikpDQpwbmpfZGY8LSBhcy5kYXRhLmZyYW1lKGxhcHBseShwbmpfZGYsIGFzLm51bWVyaWMpKQ0KDQp3aW5kb3dfc2l6ZSA8LSA1DQoNCnByZWRpY3Rpb25zX21hIDwtIGRhdGEuZnJhbWUocG5qX2Nsb3NlLCBmcmVxdWVuY3kgPSAxKSAlPiUNCiAgbXV0YXRlKHJvd19udW1iZXIgPSByb3dfbnVtYmVyKCkpICU+JQ0KICBmaWx0ZXIocm93X251bWJlciA+PSB3aW5kb3dfc2l6ZSkgJT4lDQogIG11dGF0ZShtYSA9IG1lYW4ocG5qX2Nsb3NlWyhyb3dfbnVtYmVyIC0gd2luZG93X3NpemUgKyAxKTpyb3dfbnVtYmVyXSkpDQoNCg0KIyBWaXN1YWxpemUgdGhlIHByZWRpY3Rpb25zDQpwbG90KHBual9jbG9zZSwgbWFpbiA9ICJHacOhIGPhu5UgcGhp4bq/dSBQTkoiLCB5bGFiID0gIkdpw6EgKFZOxJApIikNCmxpbmVzKHRlc3QsIGNvbCA9ICJibHVlIiwgbHdkID0gMiwgbHR5ID0gMikNCmxpbmVzKHByZWRpY3Rpb25zX2FyaW1hJG1lYW4sIGNvbCA9ICJncmVlbiIsIGx3ZCA9IDIpDQpsaW5lcyhwbmpfZGYsIGNvbCA9ICJyZWQiLCBsd2QgPSAyKQ0KbGVnZW5kKCJ0b3ByaWdodCIsIGMoIlRo4buxYyB04bq/IiwgIkThu7EgxJFvw6FuIEFSSU1BIiwgIkThu7EgxJFvw6FuIE1vdmluZyBBdmVyYWdlIiksIGNvbCA9IGMoImJsYWNrIiwgImdyZWVuIiwgInJlZCIpLCBsd2QgPSAyKQ0KDQojIMSQw6FuaCBnacOhIMSR4buZIGNow61uaCB4w6FjDQoNCiMgUk1TRSAoUm9vdCBNZWFuIFNxdWFyZSBFcnJvcikNCnJtc2VfYXJpbWEgPC0gc3FydChtZWFuKCh0ZXN0IC0gcHJlZGljdGlvbnNfYXJpbWEkbWVhbileMikpDQpwbmpfZGZfZmlsdGVyZWQgPC0gcG5qX2RmWyFpcy5uYShwbmpfZGYkbWEpLCBdICAjIEzhu41jIGPDoWMgaMOgbmcgY8OzIGdpw6EgdHLhu4sgbWEgdGhp4bq/dQ0Kcm1zZV9tYSA8LSBzcXJ0KG1lYW4oKHRlc3QgLSBwbmpfZGZfZmlsdGVyZWQkbWEpXjIpKQ0KDQoNCnByaW50KHBhc3RlKCJSTVNFIEFSSU1BOiIsIHJtc2VfYXJpbWEpKQ0KcHJpbnQocGFzdGUoIlJNU0UgTW92aW5nIEF2ZXJhZ2U6Iiwgcm1zZV9tYSkpDQoNCmBgYA0KDQoqUGjDom4gdMOtY2g6Kg0KDQogIEPhuqMgaGFpIG3DtCBow6xuaCDEkeG7gXUgZOG7sSDEkW/DoW4gZ2nDoSBj4buVIHBoaeG6v3UgY8OzIHh1IGjGsOG7m25nIHTEg25nIHRyb25nIDIwMjQuIFR1eSBuaGnDqm4sIG3DtCBow6xuaCBBUklNQSBk4buxIMSRb8OhbiBnacOhIGPhu5UgcGhp4bq/dSBiaeG6v24gxJHhu5luZyBt4bqhbmggaMahbiBzbyB24bubaSBtw7QgaMOsbmggTUEuDQoNCiAgTcO0IGjDrG5oIEFSSU1BIGThu7EgxJFvw6FuIGdpw6EgY+G7lSBwaGnhur91IGNhbyBoxqFuIG3DtCBow6xuaCBNQSB0cm9uZyA2IHRow6FuZyDEkeG6p3UgdGnDqm4sIG5oxrBuZyB0aOG6pXAgaMahbiB0cm9uZyA2IHRow6FuZyBjdeG7kWkgY8O5bmcuDQoNCirDnSBuZ2jEqWE6Kg0KDQogIEJp4buDdSDEkeG7kyB0aOG7gyBoaeG7h24gc+G7sSBraMOhYyBiaeG7h3QgdHJvbmcgZOG7sSBiw6FvIGdpw6EgY+G7lSBwaGnhur91IGLhurFuZyBoYWkgbcO0IGjDrG5oIGtow6FjIG5oYXUsIGdpw7pwIG5ow6AgxJHhuqd1IHTGsCBjw6JuIG5o4bqvYyB54bq/dSB04buRIG7DoHkga2hpIGzhu7FhIGNo4buNbiBtw7QgaMOsbmggZOG7sSBiw6FvLg0KDQogIFR1eSBuaGnDqm4sIGPhuqduIGzGsHUgw70gcuG6sW5nIGJp4buDdSDEkeG7kyBjaOG7iSB0aOG7gyBoaeG7h24gZOG7sSBiw6FvIGdpw6EgdHJvbmcgbsSDbSAyMDI0LCB2w6AgZOG7sSDEkW/DoW4gZ2nDoSB0cm9uZyB0xrDGoW5nIGxhaSBjw7MgdGjhu4MgdGhheSDEkeG7lWkgZG8gbmhp4buBdSB54bq/dSB04buRIGtow6FjIG5oYXUuDQoNCipI4bqhbiBjaOG6vyB2w6AgTMawdSDDvToqDQoNCiAgQmnhu4N1IMSR4buTIGtow7RuZyBoaeG7g24gdGjhu4sgY8OhYyB54bq/dSB04buRIGtow6FjIGPDsyB0aOG7gyDhuqNuaCBoxrDhu59uZyDEkeG6v24gZ2nDoSBj4buVIHBoaeG6v3UsIHbDoCBuaMOgIMSR4bqndSB0xrAgY+G6p24gbmdoacOqbiBj4bupdSBr4bu5IGzGsOG7oW5nIHRyxrDhu5tjIGtoaSDEkcawYSByYSBxdXnhur90IMSR4buLbmggxJHhuqd1IHTGsC4NCg0KICDEkOG7mSBjaMOtbmggeMOhYyBj4bunYSBk4buxIGLDoW8gZ2nDoSBwaOG7pSB0aHXhu5ljIHbDoG8gbmhp4buBdSB54bq/dSB04buRLCBiYW8gZ+G7k20gY2jhuqV0IGzGsOG7o25nIGThu68gbGnhu4d1IHbDoCBz4buxIGzhu7FhIGNo4buNbiBtw7QgaMOsbmguIE5ow6AgxJHhuqd1IHTGsCBj4bqnbiBj4bqpbiB0cuG7jW5nIGtoaSBz4butIGThu6VuZyBk4buxIMSRb8OhbiBnacOhIMSR4buDIMSRxrBhIHJhIHF1eeG6v3QgxJHhu4tuaCDEkeG6p3UgdMawLg0KDQoqTmjhuq1uIHjDqXQ6Kg0KDQogIE3hu6ljIMSR4buZIGJp4bq/biDEkeG7mW5nIGPhu6dhIGThu7EgYsOhbyBnacOhIGLhurFuZyBtw7QgaMOsbmggQVJJTUEgY2FvIGjGoW4gc28gduG7m2kgbcO0IGjDrG5oIE1BLCBjw7MgdGjhu4MgZG8gbcO0IGjDrG5oIEFSSU1BIG5o4bqheSBj4bqjbSBoxqFuIHbhu5tpIG5o4buvbmcgdGhheSDEkeG7lWkgbmjhu48gdHJvbmcgZOG7ryBsaeG7h3UuIE5ow6AgxJHhuqd1IHTGsCBj4bqnbiBjw6JuIG5o4bqvYyB54bq/dSB04buRIG7DoHkga2hpIGzhu7FhIGNo4buNbiBtw7QgaMOsbmggZOG7sSBiw6FvLg0KDQogIEJp4buDdSDEkeG7kyBjaOG7iSB0aOG7gyBoaeG7h24gZOG7sSBiw6FvIGdpw6EgY+G7p2EgbeG7mXQgY+G7lSBwaGnhur91LCBkbyDEkcOzIG5ow6AgxJHhuqd1IHTGsCBj4bqnbiBwaMOibiB0w61jaCBr4bu5IGzGsOG7oW5nIGPDoWMgY+G7lSBwaGnhur91IGtow6FjIHRyxrDhu5tjIGtoaSDEkcawYSByYSBxdXnhur90IMSR4buLbmggxJHhuqd1IHTGsC4NCg0KIyAqKkNoxrDGoW5nIDU6IFThu5VuZyBr4bq/dCoqDQojIyAqKkvhur90IGx14bqtbjoqKg0KDQogIFRyb25nIG7Eg20gMjAyMywgZ2nDoSBj4buVIHBoaeG6v3UgUE5KIMSRw6MgdHLhuqNpIHF1YSBiaeG6v24gxJHhu5luZyBt4bqhbmggbeG6vSwgxJHhurdjIGJp4buHdCBsw6AgduG7m2kgc+G7sSB0xINuZyBnaeG6o20gxJHDoW5nIGvhu4MgdHJvbmcgc3Xhu5F0IG7Eg20uIFRyb25nIG7hu61hIMSR4bqndSBuxINtLCBnacOhIGPhu5UgcGhp4bq/dSBQTkogdMSDbmcgY2FvLCDEkeG6oXQgxJHhu4luaCDEkWnhu4NtLCBuaMawbmcgc2F1IMSRw7MgZ2nhuqNtIHPDonUgdHJvbmcgbuG7rWEgY3Xhu5FpIG7Eg20uIFPhu7EgYmnhur9uIMSR4buZbmcgbsOgeSDEkcaw4bujYyB0aMO6YyDEkeG6qXkgYuG7n2kgbmhp4buBdSB54bq/dSB04buRLCBiYW8gZ+G7k20gdMOsbmggaMOsbmgga2luaCB04bq/IHbEqSBtw7QsIGvhur90IHF14bqjIGtpbmggZG9hbmggY+G7p2EgY8O0bmcgdHksIHbDoCB54bq/dSB04buRIHTDom0gbMO9IHRyb25nIHRo4buLIHRyxrDhu51uZy4NCg0KICBUcm9uZyB0w6xuaCBow6xuaCBraW5oIHThur8gdsSpIG3DtCwgbOG6oW0gcGjDoXQgdMSDbmcgY2FvLCBsw6NpIHN14bqldCBuZ8OibiBow6BuZyB0xINuZywgdsOgIGdpw6EgdsOgbmcgYmnhur9uIMSR4buZbmcgbeG6oW5oIMSRw6Mg4bqjbmggaMaw4bufbmcgxJHhur9uIHTDom0gbMO9IMSR4bqndSB0xrAgdsOgIGJp4bq/biDEkeG7mW5nIGdpw6EgY+G7lSBwaGnhur91LiBL4bq/dCBxdeG6oyBraW5oIGRvYW5oIGPhu6dhIFBOSiBjxaluZyDEkcOjIGNo4buLdSDhuqNuaCBoxrDhu59uZywgduG7m2kgc+G7sSB0xINuZyB0csaw4bufbmcgdMOtY2ggY+G7sWMgdHJvbmcgbuG7rWEgxJHhuqd1IG7Eg20gbmjGsG5nIGdp4bqjbSBzw7p0IHRyb25nIG7hu61hIGN14buRaSBuxINtLg0KDQogIFR1eSBiaeG6v24gxJHhu5luZyBnacOhIGPhu5UgcGhp4bq/dSBQTkogdHJvbmcgdMawxqFuZyBsYWkga2jDsyBjw7MgdGjhu4MgZOG7sSDEkW/DoW4gY2jDrW5oIHjDoWMsIG5oxrBuZyBuaMOgIMSR4bqndSB0xrAgY+G6p24gY8OibiBuaOG6r2Mga+G7uSBsxrDhu6FuZyBjw6FjIHnhur91IHThu5Ega2luaCB04bq/IHbEqSBtw7QsIGvhur90IHF14bqjIGtpbmggZG9hbmggY+G7p2EgUE5KIHbDoCB54bq/dSB04buRIHTDom0gbMO9IHRyb25nIHRo4buLIHRyxrDhu51uZyB0csaw4bubYyBraGkgcXV54bq/dCDEkeG7i25oIMSR4bqndSB0xrAuIMSQaeG7gXUgbsOgeSDEkcOyaSBo4buPaSBz4buxIG5naGnDqm4gY+G7qXUgdsOgIHRoZW8gZMO1aSBsacOqbiB04bulYyB24buBIGJp4bq/biDEkeG7mW5nIGdpw6EgY+G7lSBwaGnhur91IFBOSiwgxJHhu4MgbmjDoCDEkeG6p3UgdMawIGPDsyB0aOG7gyDEkWnhu4F1IGNo4buJbmggY2hp4bq/biBsxrDhu6NjIMSR4bqndSB0xrAgY+G7p2EgbcOsbmggcGjDuSBo4bujcCB24bubaSB0w6xuaCBow6xuaCB0aOG7iyB0csaw4budbmcgdsOgIGThu7EgYsOhbyB0xrDGoW5nIGxhaS4NCg0KDQojIyAqKkjhuqFuIGNo4bq/KioNCg0KICBE4buvIGxp4buHdSBo4bqhbiBjaOG6vzogTeG7mXQgdHJvbmcgbmjhu69uZyBo4bqhbiBjaOG6vyBjaMOtbmggY+G7p2EgxJHhu4EgdMOgaSBsw6Agc+G7sSBo4bqhbiBjaOG6vyB24buBIGThu68gbGnhu4d1LiBE4buvIGxp4buHdSB24buBIGdpw6EgY+G7lSBwaGnhur91IFBOSiBjw7MgdGjhu4Mga2jDtG5nIMSR4bqneSDEkeG7pyBob+G6t2Mga2jDtG5nIGNow61uaCB4w6FjIGRvIGPDoWMgduG6pW4gxJHhu4EgbGnDqm4gcXVhbiDEkeG6v24gdGh1IHRo4bqtcCBk4buvIGxp4buHdSBob+G6t2Mgc+G7sSB0aGF5IMSR4buVaSB0cm9uZyBo4buHIHRo4buRbmcgdGjDtG5nIHRpbiB0w6BpIGNow61uaC4NCg0KICBHaeG7m2kgaOG6oW4gduG7gSB0aOG7nWkgZ2lhbjogxJDhu5FpIHbhu5tpIG3hu5l0IHPhu5EgcGjDom4gdMOtY2gsIHZp4buHYyBnaeG7m2kgaOG6oW4gdGjhu51pIGdpYW4gY+G7p2EgZOG7ryBsaeG7h3UgY8OzIHRo4buDIGzDoG0gZ2nhuqNtIGto4bqjIG7Eg25nIHBow6F0IGhp4buHbiByYSB4dSBoxrDhu5tuZyBkw6BpIGjhuqFuIGhv4bq3YyBjw6FjIGJp4bq/biDEkeG7mW5nIGzhu5tuIHRyb25nIGdpw6EgY+G7lSBwaGnhur91Lg0KDQogIFBo4bulIHRodeG7mWMgdsOgbyBtw7QgaMOsbmg6IEPDoWMgcGjDom4gdMOtY2ggY8OzIHRo4buDIHBo4bulIHRodeG7mWMgdsOgbyBtw7QgaMOsbmgsIHbDoCBz4buxIGzhu7FhIGNo4buNbiBj4bunYSBtw7QgaMOsbmggY8OzIHRo4buDIOG6o25oIGjGsOG7n25nIMSR4bq/biBr4bq/dCBxdeG6oyBj4bunYSBuZ2hpw6puIGPhu6l1LiBOZ2/DoGkgcmEsIHZp4buHYyBz4butIGThu6VuZyBtw7QgaMOsbmggY8OzIHRo4buDIGtow7RuZyB0aOG7gyBoaeG7h24gxJHGsOG7o2MgdG/DoG4gYuG7mSDEkWEgZOG6oW5nIGPhu6dhIGPDoWMgeeG6v3UgdOG7kSDhuqNuaCBoxrDhu59uZyDEkeG6v24gZ2nDoSBj4buVIHBoaeG6v3UuDQoNCiAgUuG7p2kgcm8gdGjhu4sgdHLGsOG7nW5nOiBLaGkgxJHhuqd1IHTGsCB2w6BvIGPhu5UgcGhp4bq/dSwgbHXDtG4gdOG7k24gdOG6oWkgY8OhYyBy4bunaSBybyB0aOG7iyB0csaw4budbmcga2jDtG5nIHRo4buDIGThu7EgxJFvw6FuIHRyxrDhu5tjIMSRxrDhu6NjLCBiYW8gZ+G7k20gc+G7sSBiaeG6v24gxJHhu5luZyBj4bunYSB0aOG7iyB0csaw4budbmcgY2h1bmcsIGJp4bq/biDEkeG7mW5nIGtpbmggdOG6vywgdsOgIGPDoWMgeeG6v3UgdOG7kSBraMO0bmcgbmfhu6tuZyB0aGF5IMSR4buVaS4NCg0KICBI4bqhbiBjaOG6vyB24buBIHBow6JuIHTDrWNoOiBDw6FjIHBoxrDGoW5nIHBow6FwIHBow6JuIHTDrWNoIGPDsyB0aOG7gyBraMO0bmcgdGjhu4MgYmFvIHF1w6F0IGhv4bq3YyBraMO0bmcgY2jDrW5oIHjDoWMgdHJvbmcgdmnhu4djIGThu7EgxJFvw6FuIGhv4bq3YyBkaeG7hW4gZ2nhuqNpIGJp4bq/biDEkeG7mW5nIGdpw6EgY+G7lSBwaGnhur91LiBT4buxIMSRw6FuaCBnacOhIHNhaSBs4bqnbSBob+G6t2Mga2jDtG5nIGNow61uaCB4w6FjIGPDsyB0aOG7gyBk4bqrbiDEkeG6v24gcXV54bq/dCDEkeG7i25oIMSR4bqndSB0xrAga2jDtG5nIGNow61uaCB4w6FjLg0KDQogIFRoaeG6v3UgY2hpIHRp4bq/dCB24buBIG5n4buvIGPhuqNuaDogxJDDtGkga2hpLCBk4buvIGxp4buHdSBraMO0bmcgxJHhuqd5IMSR4bunIHbhu4Egbmfhu68gY+G6o25oIGhv4bq3YyBraMO0bmcgY8OzIHPhu7EgZ2nhuqNpIHRow61jaCByw7UgcsOgbmcgduG7gSBjw6FjIHnhur91IHThu5Eg4bqjbmggaMaw4bufbmcgxJHhur9uIGJp4bq/biDEkeG7mW5nIGdpw6EgY+G7lSBwaGnhur91LCDEkWnhu4F1IG7DoHkgY8OzIHRo4buDIGzDoG0gZ2nhuqNtIHTDrW5oIGjhu6NwIGzDvSB2w6Aga2jhuqMgbsSDbmcgw6FwIGThu6VuZyBj4bunYSBwaMOibiB0w61jaC4NCg0KIyMgKipUw6BpIGxp4buHdSB0aGFtIGto4bqjbyoqDQoNClRy4bqnbiBN4bqhbmggVMaw4budbmcoMjAyNCkuIERhdGEgbWFuaXB1bGF0aW9uIHbDoCBEYXRhIFZpc3VhbGl6YXRpb24uIGh0dHBzOi8vcnB1YnMuY29tL3RtdA0KDQpT4bufIEdpYW8gZOG7i2NoIENo4bupbmcga2hvw6FuIFRQLiBI4buTIENow60gTWluaDogaHR0cHM6Ly93d3cuaHN4LnZuLw0KDQpodHRwczovL3ZuLmludmVzdGluZy5jb20vDQoNCmh0dHBzOi8vdmlldHN0b2NrLnZuLw0KDQpodHRwczovL2NhZmVmLnZuLw0KDQpodHRwczovL3d3dy5wbmouY29tLnZuLw0KDQpodHRwczovL25oYW5kYW4udm4vbmFtLTIwMjMtYmluaC1xdWFuLWdpYS12YW5nLXRyb25nLW51b2MtdGFuZy00MTYtcG9zdDc4OTk5OS5odG1sDQoNCmh0dHBzOi8va2luaHRlZG90aGkudm4vZGFuZy1zYXUtc3UtYnVuZy1uby1naWEtdmFuZy1uYW0tMjAyMy5odG1sDQoNCmh0dHBzOi8vYm5ld3Mudm4vbG9pLW5odWFuLW5hbS0yMDIzLWN1YS1wbmotY2FvLWt5LWx1Yy8zMjE5MjMuaHRtbA0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg==