Spaces:
Paused
Paused
| import streamlit as st | |
| from datasets import load_dataset | |
| import os | |
| import sys | |
| import requests | |
| import progressbar | |
| import numpy as np | |
| import pandas as pd | |
| import numpy as np | |
| import random | |
| import time | |
| # Set the app title | |
| st.title('Siêu phẩm dự đoán lô đề') | |
| # Add a welcome message | |
| st.write('Dự đoán lô đề dựa vào kết quả xổ số miền Bắc') | |
| st.write('Cờ bạc là hành vi bị pháp luật nghiêm cấm, chơi cờ bạc ảnh hưởng xấu tới gia đình và xã hội. Vậy chúng ta vui thôi, đừng vui quá!') | |
| st.write('Dự đoán có tính chất tham khảo, giúp gia đình và xã hội bớt rủi ro có thêm 1 con nợ.') | |
| def getTop(plist): | |
| rt = [] | |
| grt = 0 | |
| #st.write(len(plist)) | |
| while grt < 3: | |
| start = 0 | |
| tmp = 0 | |
| x = 0 | |
| while x < len(plist): | |
| if plist[x] >= start: | |
| if x not in rt: | |
| start = plist[x] | |
| tmp = x | |
| x += 1 | |
| #st.write(tmp) | |
| rt.append(tmp) | |
| grt += 1 | |
| return rt | |
| # Create a text input | |
| #user_input = st.text_input('Enter a custom message:', 'Hello, Streamlit!') | |
| # Display the customized message | |
| #st.write('Customized Message:', user_input) | |
| click = 0 | |
| st.html("<p><span style='color: red; font-weight: bold'>Lựa chọn môn thể thao muốn chơi hôm nay nào:</span></p>") | |
| first_button = st.button("Đê huyền đề",type='primary') | |
| second_button = st.button("Đoán lô",type="secondary") | |
| kt = "1" | |
| lo_rs = [] | |
| de_rs = [] | |
| if first_button: | |
| click = 1 | |
| st.html( | |
| "<p><span style='color: red'>Oánh đề à?</span><br>Thử đoán xem có trúng không nhé?</p>" | |
| ) | |
| kt = "1" | |
| elif second_button: | |
| click = 1 | |
| st.write("Oánh lô nhé") | |
| st.html( | |
| "<p><span style='color: red'>Hôm nay chọn chơi lô à?</span><br>Ăn nhớ báo nhé.</p>" | |
| ) | |
| kt = "2" | |
| path = os.getcwd() | |
| print(de_rs) | |
| print(lo_rs) | |
| if click == 1 and kt == "1" and len(de_rs) > 2: | |
| click = 0 | |
| loadbar = st.progress(0,"Chuẩn bị mở bát") | |
| t = 1 | |
| while t <= 10: | |
| if t < 7: | |
| loadbar.progress(t,"Đang mở bát được - "+str(t*100/10)+"% - hồi hộp không?") | |
| time.sleep(1) | |
| elif t < 10: | |
| loadbar.progress(t,"Đang mở bát được - "+str(t*100/10)+"% - hồi hộp không?") | |
| time.sleep(2) | |
| else: | |
| loadbar.progress(t,"Đã xong") | |
| st.write("\nKẾT QUẢ DỰ ĐOÁN ĐỀ NGÀY HÔM NAY\n") | |
| st.write("Kết quả dự đoán gồm 3 số: "+str(de_rs)+"") | |
| t += 1 | |
| elif click == 1 and kt == "2" and len(lo_rs) > 2: | |
| click = 0 | |
| loadbar = st.progress(0,"Chuẩn bị mở bát") | |
| t = 1 | |
| while t <= 10: | |
| if t < 7: | |
| loadbar.progress(t,"Đang mở bát được - "+str(t*100/10)+"% - hồi hộp không?") | |
| time.sleep(1) | |
| elif t < 10: | |
| loadbar.progress(t,"Đang mở bát được - "+str(t*100/10)+"% - hồi hộp không?") | |
| time.sleep(2) | |
| else: | |
| loadbar.progress(t,"Đã xong") | |
| st.write("\nKẾT QUẢ DỰ ĐOÁN LÔ NGÀY HÔM NAY\n") | |
| st.write("Kết quả dự đoán gồm 3 số: "+str(lo_rs)+"") | |
| t += 1 | |
| #st.write('Current Path:', path) | |
| if click == 1: | |
| st.write("Quá trình tổng hợp dữ liệu ...") | |
| rolldate = [] | |
| results = [] | |
| maxdate = "" | |
| maxid = "" | |
| lastresult = [] | |
| baseurl = "https://github.com/khiemdoan/vietnam-lottery-xsmb-analysis/raw/main/data/xsmb.csv" | |
| url = baseurl | |
| i = 1 | |
| FILE_TO_SAVE_AS = path+"/xsmb.txt" # the name you want to save file as | |
| resp = requests.get(url) # making requests to server | |
| with open(FILE_TO_SAVE_AS, "wb") as f: | |
| f.write(resp.content) # writing content to file | |
| #if os.path.isfile(FILE_TO_SAVE_AS): | |
| # st.write("File exists") | |
| # st.write(os.path.getsize(FILE_TO_SAVE_AS)) | |
| #else: | |
| # st.write("Không có file") | |
| fo = open(FILE_TO_SAVE_AS) | |
| i = 1 | |
| lines = fo.readlines() | |
| bar = progressbar.ProgressBar(maxval=len(lines), \ | |
| widgets=[progressbar.Bar('=', '[', ']'), ' ', progressbar.Percentage()]) | |
| bar.start() | |
| lx = 0 | |
| #results = [] | |
| for l in lines: | |
| if lx > 0: | |
| rss = l.split(",") | |
| maxdate = rss[0] | |
| lastresult = [] | |
| for x in rss: | |
| if x != maxdate: | |
| lastresult.append(str(x.strip())) | |
| rolldate.append(maxdate) | |
| results.append(lastresult) | |
| bar.update(i+1) | |
| lx += 1 | |
| fo.close() | |
| bar.finish() | |
| rs = [] | |
| rd = [] | |
| i = 366 | |
| while i > 0 : | |
| #print(results[len(results)-i]) | |
| rd.append(rolldate[len(rolldate)-i]) | |
| rs.append(results[len(results)-i]) | |
| i = i - 1 | |
| results = rs | |
| rolldate = rd | |
| randFix = random.randint(0,999999) | |
| #st.write(str(len(rolldate))) | |
| #st.write(str(len(results))) | |
| st.write("Kỳ quay cuối cùng ngày: "+maxdate+" - kết quả: "+str(lastresult)) | |
| st.write("Kết thúc tổng hợp dữ liệu") | |
| st.write("Bắt đầu quá trình dự đoán...") | |
| loadrs = path+"/xsmb_"+str(randFix)+".txt" | |
| ws = open(loadrs,"w+") | |
| if kt == "1": | |
| i = 0 | |
| ws.write("special\n") | |
| while i < len(rolldate): | |
| if len(results[i])==27: | |
| vdata = results[i][0] | |
| vdata = vdata.strip()+"\n" | |
| ws.write(vdata) | |
| i += 1 | |
| ws.close() | |
| #st.write("Lọc dữ liệu hoàn thành") | |
| else: | |
| i = 0 | |
| ws.write("special\tprize1\tprize2_1\tprize2_2\tprize3_1\tprize3_2\tprize3_3\tprize3_4\tprize3_5\tprize3_6\tprize4_1\tprize4_2\tprize4_3\tprize4_4\tprize5_1\tprize5_2\tprize5_3\tprize5_4\tprize5_5\tprize5_6\tprize6_1\tprize6_2\tprize6_3\tprize7_1\tprize7_2\tprize7_3\tprize7_4\n") | |
| while i < len(rolldate): | |
| if len(results[i])==27: | |
| vdata = "" | |
| for rs in results[i]: | |
| vdata += "\t"+str(int(rs.strip()) % 100) | |
| vdata = vdata.strip()+"\n" | |
| ws.write(vdata) | |
| i += 1 | |
| ws.close() | |
| #st.write("Lọc dữ liệu hoàn thành") | |
| data = np.loadtxt(loadrs,delimiter="\t",dtype="int",skiprows=1) | |
| #st.write(data) | |
| X = [] | |
| #nếu là đề, chỉ lấy danh sách kết quả đề | |
| if kt == "1": | |
| rs1 = data.tolist() | |
| rs = [] | |
| for rx in rs1: | |
| rs.append(int(rx)%100) | |
| else: | |
| #nếu là lô lấy tất tần tật | |
| X = data[1:, :] | |
| str(X) | |
| rs = [i for z in X.tolist() for i in z] | |
| #st.write(rs) | |
| #tạo ds kết quả | |
| results = [] | |
| #add sẵn mỗi số 1 lượt | |
| z1 = 0 | |
| while z1 < 100: | |
| results.append(z1) | |
| z1 += 1 | |
| #add kết quả thực vào danh sách kết quả, nếu là đề mỗi kết quả bổ sung 10 lượt, và 1 lượt cho 2 vị trí liền kề, nếu là lô bổ sung mỗi kết quả 4 lượt | |
| #for r in rs: | |
| idx = 0 | |
| h = 1 | |
| lenrs = len(rs)-1 | |
| while idx < len(rs): | |
| if kt == "1": | |
| if idx == (-1 + 7*h): | |
| results.append(int(rs[lenrs-idx])-1) | |
| results.append(int(rs[lenrs-idx])+1) | |
| ii = 0 | |
| while ii < 25: | |
| results.append(int(rs[lenrs-idx])) | |
| ii += 1 | |
| h += 1 | |
| else: | |
| results.append(int(rs[lenrs-idx])-1) | |
| results.append(int(rs[lenrs-idx])+1) | |
| ii = 0 | |
| while ii < 10: | |
| results.append(int(rs[lenrs-idx])) | |
| ii += 1 | |
| #h += 1 | |
| else: | |
| if idx >= (-1 + 7*h)*27 and idx < 7*h*27 + 1: | |
| ii = 0 | |
| while ii < 7: | |
| results.append(int(rs[lenrs-idx])) | |
| ii += 1 | |
| if idx == 7*h*27: | |
| h += 1 | |
| else: | |
| ii = 0 | |
| while ii < 3: | |
| results.append(int(rs[lenrs-idx])) | |
| ii += 1 | |
| idx = idx + 1 | |
| #chạy lấy danh sách ngẫu nhiên | |
| runiter = len(results)*10 | |
| zz = 0 | |
| countTot = [] #danh sách đếm | |
| #results = [] | |
| randList = [] #danh sách random số | |
| randCount = [] #danh sách random số và số lượt lấy ngẫu nhiên | |
| #st.write(len(results)) | |
| runbar = st.progress(0.0, "Chuẩn bị dự đoán") | |
| while zz < runiter: | |
| rand = random.randint(0,len(results)-1) #lấy ngẫu nhiên 1 số thuộc vị trí ds kết quả | |
| if rand not in randList: | |
| randList.append(rand) #add vào ds random số nếu chưa có | |
| randCount.append([rand,1]) #add vào danh sách số và số lượt đếm bằng 1 | |
| else: | |
| idx = randList.index(rand) | |
| randCount[idx][1] = randCount[idx][1]+1 # cộng thêm 1 lượt vào randCount | |
| run_percentage = round(zz/runiter,2) | |
| if run_percentage < 1.0: | |
| runbar.progress(run_percentage,text="Chờ tí, đang chạy dự đoán rồi nhá, đừng nóng ruột. Muốn nhanh phải từ từ") | |
| else: | |
| runbar.progress(run_percentage,text="Xong rồi đấy, chờ tí, có kết quả ngay đây.") | |
| zz += 1 | |
| #print("Xong randCount") | |
| tmp = 0 | |
| for z in randCount: | |
| tmp = int(z[1]) | |
| countTot.append(tmp) | |
| getRS = getTop(countTot) | |
| if kt == "1": | |
| st.write("\nKẾT QUẢ DỰ ĐOÁN ĐỀ NGÀY HÔM NAY\n") | |
| else: | |
| st.write("\nKẾT QUẢ DỰ ĐOÁN LÔ NGÀY HÔM NAY\n") | |
| for rs in getRS: | |
| #st.write(countTot[rs]) | |
| st.write("Kết quả dự đoán lần "+str(getRS.index(rs)+1)+": "+str(results[rs])+"") | |
| if kt == "1": | |
| de_rs.append(results[rs]) | |
| print(de_rs) | |
| else: | |
| lo_rs.append(results[rs]) | |
| print(lo_rs) | |
| os.system("rm "+loadrs) | |
| st.html( | |
| "<p><span style='text-decoration: red;'>Này này, chơi mà trúng là phải chia lộc đấy nhé, ghi log hết rồi nhé, nuốt hết là ko trôi đâu.</span> </p>" | |
| + "<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAADYCAYAAABC+8kTAAAACXBIWXMAAAsTAAALEwEAmpwYAAA5SmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMjQtMDgtMTVUMTM6NDE6MDkrMDc6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAyNC0wOC0xNVQxMzo0NzowNCswNzowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMjQtMDgtMTVUMTM6NDc6MDQrMDc6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6RG9jdW1lbnRBbmNlc3RvcnM+CiAgICAgICAgICAgIDxyZGY6QmFnPgogICAgICAgICAgICAgICA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDpjZmY4YTYyOC01M2NhLTExZWYtODBhMS05OTFiOTBhNjI3MTQ8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaT54bXAuZGlkOjU0YzcyYzc4LTY1NWYtNTA0NS1hNjMwLTBkYmJhOGRmYWVmNDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpCYWc+CiAgICAgICAgIDwvcGhvdG9zaG9wOkRvY3VtZW50QW5jZXN0b3JzPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOmFiYjg0OTM2LTc3YmItMWY0MS1iYzU5LWNlN2MwZTZiM2E4NDwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDphYmI4NDkzNi03N2JiLTFmNDEtYmM1OS1jZTdjMGU2YjNhODQ8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDphYmI4NDkzNi03N2JiLTFmNDEtYmM1OS1jZTdjMGU2YjNhODQ8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jcmVhdGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6YWJiODQ5MzYtNzdiYi0xZjQxLWJjNTktY2U3YzBlNmIzYTg0PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDI0LTA4LTE1VDEzOjQxOjA5KzA3OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjE4MDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yMTY8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PoWP7ucAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAKUVJREFUeNrsnXdAFNcWxr9dlrqwiHSQYEfFDmIHsSL2htgbqDHGWOKLzyQaE02MvUZUokYssbfEFmOP/UWjYi8gBiVU6XXn/UEYWdhld/bemV10zn8su3fuzP3NzHfPPfccCcMwDEQT7R0xiQi0aCLQookmAi2aaCLQookmAi2aCLRooolAiyaaCLRooolAiyaaCLRoItCiiSYCLZpoItCiiSYCLZpoItCiiUATWnqWEtGxBdh7PhvRsfmISyxCepaywt8o5FLYWknRoLopuvlYYFCAXJAL8PDhE8yZswg2NtaYOHEkfH2bCtoe6fGFPp6xjy91oC/fy8O8qDRExxQQtePhKMO0ATa8gx0WNh03btwCALi5ueDo0R2Ctkd6fKGPZ+zjSxXoZXvTsXxfOtUOThugwPSBCt6ADg4eivj41wAAL6/a2LVrg6DtNW3aUeXvW7dO83o8kvOtDONLDWg+TpZ9qgTbYO4IW17avnHjFubMWQQ3Nxf07t0VvXsHCdoeKdBcj6fv+VaW8aUC9IkbOQhbmlxOM7VuYI5pAxTwcDCBQi7Vqssu38/DyRu52H0uq9z/I2fYo5uvpUZN+PDhE0599vVtKohm1WZlgdbWP0NoZkOOr+BAp2cpETI/UUVTKeRSLJtop3cHo2MLEPJNospEQyGXIjrSrUJNyNWE0Kz6Aq2pfaE1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'>" | |
| ) | |
| st.link_button("Chia lộc ở đây", "https://www.paypal.com/ncp/payment/MHKWQ9BEP2Y34") |