From e66a37ae876d6d1b735fc6232c4ae58595908843 Mon Sep 17 00:00:00 2001
From: root
Date: Sat, 15 Feb 2025 21:50:47 +0100
Subject: [PATCH] v1.0.1 release candidate 1
---
.gitignore | 2 +-
scripts/__pycache__/utils.cpython-311.pyc | Bin 8482 -> 7938 bytes
scripts/lantern.py | 1678 ++++++++---------
scripts/uptimechecker.py | 25 +-
scripts/utils.py | 183 +-
updaterepo.sh | 8 +
www/.known_participants | 3 +
www/header.php | 15 +-
.../banner.png | Bin 0 -> 14119 bytes
.../banner.png | Bin 0 -> 8952 bytes
.../banner.png | Bin 0 -> 20935 bytes
11 files changed, 917 insertions(+), 997 deletions(-)
create mode 100755 updaterepo.sh
create mode 100644 www/.known_participants
create mode 100644 www/participants/lantern.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion/banner.png
create mode 100644 www/participants/lantern.nowhevi57f4lxxd6db43miewcsgtovakbh6v5f52ci7csc2yjzy5rnid.onion/banner.png
create mode 100644 www/participants/zhd7yf675dav6njgc7yjwke2u5cq7d5qim2s7xwa2ukxfzubrguqmzyd.onion/banner.png
diff --git a/.gitignore b/.gitignore
index d2f8ff3..ec5358a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,3 @@
.git
-www/participants/**
+www/participants/*/*.csv
diff --git a/scripts/__pycache__/utils.cpython-311.pyc b/scripts/__pycache__/utils.cpython-311.pyc
index e1d2bbc5a9018072329b4029dfc5a6fcd559a16d..a3df33b32aa09005b9ecaa066de08e7cf40658ac 100644
GIT binary patch
delta 3886
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 do -1 to the value
if df.at[i,"Score"] > 0:
df.at[i,"Score"] = df.at[i,"Score"] - 1
except requests.ConnectionError as e:
#print(e)
print(url,"❌")
- df.at[i,"Status"]="❌"
+ df.at[i,"Status"]="NO"
#if uptime >0 do -1 to the value
if df.at[i,"Score"] > 0:
df.at[i,"Score"] = df.at[i,"Score"] - 1
except requests.exceptions.ReadTimeout as e:
#print(e)
print(url,"❌")
- df.at[i,"Status"]="❌"
+ df.at[i,"Status"]="NO"
#if uptime >0 do -1 to the value
if df.at[i,"Score"] > 0:
df.at[i,"Score"] = df.at[i,"Score"] - 1
+ df2 = df.sort_values(by=["Score"], ascending=False)
#sort by category if you are verified/unverified.csv
if csvfilename in csvfiles2sortcat:
- df2 = df.sort_values(by=["Category","Name"], ascending=[True,True])
- else:
- df2 = df.sort_values(by="Score", ascending=False)
+ df2 = df.sort_values(by=["Category"], ascending=True)
+ #print(df2)
df2.to_csv(csvfile, index=False)
- #print(df2)
def IsUrlValid(url:str)->bool:
@@ -167,19 +165,14 @@ def IsOnionValid(url: str)-> bool:
if len(url.split('.')) > 3:
n_subdomians = len(url.split('.'))
# Checks if there is more than 1 subdomain. "subdomain.url.onion" only
- #print(f"This domain have more than one subdomain. There are {n_subdomians - 1} subdomains")
return False
else:
if len(url) < 62:
- #print("Domain length is less than 62.")
return False
return True
elif pattern.fullmatch(url) is None:
- #print("Domain contains invalid character.")
- #print(url)
return False
else:
- #print("Domain not valid")
return False
except Exception as e:
print(f"Error: {e}")
diff --git a/scripts/utils.py b/scripts/utils.py
index 24db984..e6b6bc4 100644
--- a/scripts/utils.py
+++ b/scripts/utils.py
@@ -1,158 +1,120 @@
-import os, pwd, re, pandas as pd, requests, shutil
+import re
+import requests
from PIL import Image
-import urllib
-import socks, socket, glob
PURPLE = '\033[35;40m'
BOLD_PURPLE = '\033[35;40;1m'
-ORANGE = '\033[33;40;1m'
RED = '\033[31;40m'
BOLD_RED = '\033[31;40;1m'
RESET = '\033[m'
+
#### Checking Functions to validate that links are legit ####
def CheckUrl(url):
- """
- Checks if URL is actually reachable via Tor
- """
- proxies = {
- 'http': 'socks5h://127.0.0.1:9050',
- 'https': 'socks5h://127.0.0.1:9050'
- }
- try:
- status = requests.get(url,proxies=proxies, timeout=5).status_code
- print('[+]',url,status)
- if status != 502:
- #print(url,"✔️")
- return True
- else:
- #print(url,"❌")
- return False
- except requests.ConnectionError as e:
- #print(url,"❌")
- return False
- except requests.exceptions.ReadTimeout as e:
- #print(url,"❌")
- return False
+ """
+ Checks if URL is actually reachable via Tor
+ """
+ proxies = {
+ 'http': 'socks5h://127.0.0.1:9050',
+ 'https': 'socks5h://127.0.0.1:9050'
+ }
+ try:
+ status = requests.get(url,proxies=proxies, timeout=5).status_code
+ if status != 502:
+ return True
+ else:
+ return False
+ except requests.ConnectionError as e:
+ return False
+ except requests.exceptions.ReadTimeout as e:
+ return False
+
#### PROTECTIONS AGAINST MALICIOUS CSV INPUTS ####
def IsBannerValid(path: str) -> bool:
- """
- Checks if the banner.png file has the correct dimensions (240x60)
- """
- #print('[+] checking image size')
- try:
- im = Image.open(path)
- except Exception as e:
- return False
- #im = Image.open("favicon.png")
- width, height = im.size
- #print('width =',width, 'height=',height)
- if width != 240 or height != 60:
- #print('[-] Banner doesnt have the correct size (240x60)')
- return False
- else:
- #print('[+] Banner has the correct size (240x60)')
- return True
+ """
+ Checks if the banner.png file has the correct dimensions (240x60)
+ """
+ try:
+ im = Image.open(path)
+ except Exception as e:
+ print("ERROR, EXCEPTION")
+ return False
+ width, height = im.size
+ if width != 240 or height != 60:
+ print("INVALID BANNER DIMENSIONS, HEIGHT=",height," WIDTH=",width)
+ return False
+
+ return True
def IsOnionValid(url: str)-> bool:
"""
Checks if the domain(param) is a valid onion domain and return True else False.
"""
- # check if the characters are only [a-zA-Z0-9.] with maximum 128 chars max?
- # check that it is only url.onion or subdomain.url.onion,
- # if OK return True
- #if not : return False
try:
- pattern = re.compile("^[A-Za-z0-9.]+(\.onion)?$")
+ pattern = re.compile("^[A-Za-z0-9.]+(.onion)?$")
url = url.strip().removesuffix('/')
if url.startswith('http://'):
- #print('URL starts with http')
- # Removes the http://
domain = url.split('/')[2]
if pattern.fullmatch(domain) is not None:
if len(domain.split('.')) > 3:
- n_subdomians = len(domain.split('.'))
- # Checks if there is more than 1 subdomain. "subdomain.url.onion" only
- #print(f"This domain have more than one subdomain. There are {n_subdomians} subdomains")
return False
else:
if len(domain) < 62:
- #print("Domain length is less than 62.")
return False
return True
elif pattern.fullmatch(domain) is None:
- #print("Domain contains invalid character.")
- #print(domain)
return False
else:
- #print("Domain not valid")
return False
else:
- #TODO : edit the url to make sure it has http:// at the beginning, in case if it's missing? (problem is that it only returns true or false)
- #print("URL doesn't start http")
+ #TODO : edit the url to make sure it has http:// at the beginning, in case if it's missing? (problem is that it only returns true or false)
if pattern.fullmatch(url) is not None:
if len(url.split('.')) > 3:
- n_subdomians = len(url.split('.'))
- # Checks if there is more than 1 subdomain. "subdomain.url.onion" only
- #print(f"This domain have more than one subdomain. There are {n_subdomians - 1} subdomains")
return False
else:
if len(url) < 62:
- #print("Domain length is less than 62.")
return False
return True
elif pattern.fullmatch(url) is None:
- #print("Domain contains invalid character.")
- #print(url)
return False
else:
- #print("Domain not valid")
return False
except Exception as e:
- print(f"Error: {e}")
+ return False
+
def IsUrlValid(url:str)->bool:
"""
Check if url is valid both dark net end clearnet.
"""
- # check if the characters are only [a-zA-Z0-9.:/] with maximum 128 chars max?
- # check that it is only http(s)://wordA.wordB or http(s)://WordC.WordB.WordC, (onion or not), clearnet is fine too (double check if those are fine!)
- # if OK return True
- #if not : return False
pattern = re.compile("^[A-Za-z0-9:/.-]+$")
url = str(url)
if len(url) < 4:
- #print("Status: Got more than one character or nothing.")
return False
if url.endswith('.onion'):
return IsOnionValid(url)
else:
if not url.__contains__('.'):
- #print("No (DOT) in clearnet url")
return False
if pattern.fullmatch(url) is None:
- #print('Url contains invalid chars')
return False
return True
+
def IsStatusValid(status: str)-> bool:
"""
- Checks if status contains only [v,x,❌,✔️]. Verbose only if False is returned
+ Checks if status contains only ['YES','NO']. Verbose only if False is returned
"""
- pattern = ['y','n','✔️','❌','','nan']
+ pattern = ['YES','NO','✔️','❌','']
+ #pattern = ['YES','NO']
status = str(status)
status.strip()
- #print('[+] STATUS = ',status.splitlines())
- if len(status) > 4:
- #print("Status: Got more than one character or nothing.")
- return False
- elif (status not in pattern):
- #print("Status: Got an invalid character it must be either y, n, ✔️, or ❌ ")
+ if (status not in pattern):
return False
return True
@@ -162,24 +124,15 @@ def IsScoreValid(score:str)->bool:
"""
Check the Score is only "^[0-9.,]+$" with 8 max chars.
"""
- # check if the characters are only [a-zA-Z0-9.,' ] with maximum 256 chars max
- #(careful with the ' and , make sure you test if it fucks the csv up or else)
- # if OK return True
- #if not : return False
pattern = re.compile("^[0-9.,]+$")
score = str(score)
score.strip()
- #pattern = ['','nan']
if score in ['','nan']:
- #Score can be empty when initially added
return True
if pattern.fullmatch(score) is None:
- # empty description is fine as it's optional
return False
elif len(score) > 8:
- #print("score is greater than 8 chars")
return False
- # empty score is fine
return True
@@ -187,12 +140,7 @@ def IsDescriptionValid(desc:str)->bool:
"""
Check the categories are only [a-zA-Z0-9.' ] with 256 max chars.
"""
- # check if the characters are only [a-zA-Z0-9.,' ] with maximum 256 chars max
- #(careful with the ' and , make sure you test if it fucks the csv up or else)
- # if OK return True
- #if not : return False
if desc == "":
- # empty description is fine as it's optional
return True
pattern = re.compile("^[A-Za-z0-9-.,' \"]+$")
desc = str(desc)
@@ -202,7 +150,6 @@ def IsDescriptionValid(desc:str)->bool:
if desc == "DEFAULT":
return False
elif len(desc) > 256:
- #print("desc is greater than 256 chars")
return False
return True
@@ -210,18 +157,12 @@ def IsCategoryValid(categories: list)-> bool:
"""
Check the categories are only [a-zA-Z0-9 ] with 64 max chars.
"""
- # check if the characters are only [a-zA-Z0-9 ] with maximum 64 chars max
- #(careful with the ' and , make sure you test if it fucks the csv up or else)
- # if OK return True
- #if not : return False
pattern = re.compile("^[A-Za-z0-9 ]+$")
for category in categories:
category.strip()
if pattern.fullmatch(category) is None:
- #print('Got an empty list or invalid chars')
return False
elif len(category) > 64:
- #print('Category is too long')
return False
else:
return True
@@ -230,41 +171,31 @@ def IsNameValid(name: str)->bool:
"""
Check the parameter name only contains [a-zA-Z0-9 ] and is 64 chars long.
"""
- # check if the characters are only [a-zA-Z0-9 ] with maximum 64 chars max
- #(careful with the ' and , make sure you test if it fucks the csv up or else)
- # if OK return True
- #if not : return False
+ try:
+ name = str(name)
+ except Exception as e:
+ return False
pattern = re.compile("^[A-Za-z0-9 ]+$")
name = name.strip()
if (pattern.fullmatch(name) is None):
- #print("Got an invalid character or nothing")
return False
elif len(name) > 64:
- #print(f'Got a name length greater than 64. {len(name)}')
return False
return True
-
-#def print_colors(s:str, bold=False, is_error = False, default=False):
-def print_colors(*args, bold=False, is_error=False, default=False, highlight=False):
- """
- Helper function to print with colors
- """
- for s in args:
+def print_colors(s:str=' ', bold:bool=False, is_error:bool = False, default:bool=False):
+ """
+ Helper function to print with colors
+ """
if is_error:
- print(f"{RED}{s}{RESET}",end='')
- elif highlight:
- print(f"{ORANGE}{s}{RESET}",end='')
+ print(f"{RED}{s}{RESET}")
elif bold:
- print(f"{BOLD_PURPLE}{s}{RESET}",end='')
+ print(f"{BOLD_PURPLE}{s}{RESET}")
elif is_error and bold:
- print(f"{BOLD_RED}{s}{RESET}",end='')
+ print(f"{BOLD_RED}{s}{RESET}")
elif default:
- print(f'{s}',end='')
+ print(f'{s}')
else:
- print(f"{PURPLE}{s}{RESET}",end='')
- if s is args[-1]:
- print()
-
+ print(f"{PURPLE}{s}{RESET}")
diff --git a/updaterepo.sh b/updaterepo.sh
new file mode 100755
index 0000000..cd8babd
--- /dev/null
+++ b/updaterepo.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+#warning, you need to have the .gitignore intact to ignore www/participants/*/**
+
+git rm -r --cached .
+git add .
+git commit
+torsocks git push
diff --git a/www/.known_participants b/www/.known_participants
new file mode 100644
index 0000000..574264e
--- /dev/null
+++ b/www/.known_participants
@@ -0,0 +1,3 @@
+lantern.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion
+lantern.nowhevi57f4lxxd6db43miewcsgtovakbh6v5f52ci7csc2yjzy5rnid.onion
+zhd7yf675dav6njgc7yjwke2u5cq7d5qim2s7xwa2ukxfzubrguqmzyd.onion
diff --git a/www/header.php b/www/header.php
index 5188615..c5ef228 100644
--- a/www/header.php
+++ b/www/header.php
@@ -53,7 +53,7 @@ if (!preg_match("~^(?:f|ht)tps?://~i", $data[3])) {
//if ((($sensitive == 1) and ($data[4] == "✔️")) or (($sensitive == 0) and ($data[4] != "✔️")) ){
// ONLY display links if (sensitive equals to 1 and sensitiveCOLUMN equals to V) OR (sensitive equals to 0 and sensitiveCOLUMN is NOT equal to V)
- if (($data[4] != "✔️") or (($sensitive == 1) and ($data[4] == "✔️"))){
+ if (($data[4] != "YES") or (($sensitive == 1) and ($data[4] == "YES"))){
$rowcount++;
@@ -67,7 +67,7 @@ if (!preg_match("~^(?:f|ht)tps?://~i", $data[3])) {
}
echo "" ; // begin the table cell
- if($data[4] == "✔️"){
+ if($data[4] == "YES"){
echo ' '; // display the link
echo $data[2] . ' | '; // display the link title and close the a href and first cell, open the second cell
echo $data[5] . " | "; // OPTIONAL: display the description column
- echo $data[7] . " | "; // display the status and close the second cell, open the third cell
- echo $data[6] . " | \n"; // display the score and close the third cell
+ echo $data[7] . " "; // display the score and close the second cell, open the third cell
+ if($data[6] == "YES"){
+ echo "✔️" ;
+ }else{
+ echo "❌" ;
+ }
+ echo " | \n"; // display the status and close the third cell
}
//if ($c == 2){
//}
@@ -169,7 +174,7 @@ if (($handle = fopen($csvfile, "r")) !== FALSE) {
}
}
}
- echo "
";
+ echo 'Display All Links |';
fclose($handle);
}
//echo "" . $resultcount . " Result(s) found.
";
diff --git a/www/participants/lantern.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion/banner.png b/www/participants/lantern.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion/banner.png
new file mode 100644
index 0000000000000000000000000000000000000000..8e7af7380ab4bf22a26251b78949ea8efe89c0a6
GIT binary patch
literal 14119
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
RoqxFc&Cc|cmoZ!}{}0+PYIpzu
literal 0
HcmV?d00001
diff --git a/www/participants/zhd7yf675dav6njgc7yjwke2u5cq7d5qim2s7xwa2ukxfzubrguqmzyd.onion/banner.png b/www/participants/zhd7yf675dav6njgc7yjwke2u5cq7d5qim2s7xwa2ukxfzubrguqmzyd.onion/banner.png
new file mode 100644
index 0000000000000000000000000000000000000000..e38120f231242306577a3cff18d9cad603f96df0
GIT binary patch
literal 20935
zcmV)0K+eC3P)XCJ_c0B!dn)2!f)3VG*N*kj}!7^-iT-0K~J-XVP}yfd_(n$gx-~1c(qR
zz)sleRco!UyAOzimcjSndDCs`q$*1%a+aj98EC58(niz&6#&R(vSs^rz8{<++Q}&Sl-1`=ky+)5^8I}hs
zgYZWoslXKEOBSfmLJCCFAWlUUAu^R(Op0(rPROVtl2N4$h3xrMfUK(Kz-eS9;(Ftd
zBL7H$RdW6%SSdh=MI5)3ew8#%6R}-XCJCjSKo-Eqg;-LT0E*XLB5GuSL)>B>T#_jl
zjF2*~uk90W-82snjz5|j{(AeRFz&x~gWuO$8#i?JGHN|T~2q?G^%M@cCZMe~G7
z_#tOi){|(qfkX|hK&9mp6YMST|Bkh--sTOm(#yplve~R%`uf*9-Q7Pg7ROOf1?Mrd
zuYKifwxxRmlr;p{>=oyoV5gom+bU9>mZZ)yg}hZ;r&Sbp!=D36U2523%BoJ{JYylr
zM|q{Fb1y>Nc#Nc%0LC;c3-dZt8V4Mp2iOYnP^BE^^1xC34`DMbc+a{j3r-CFxGF9~
znfK_AUf?7wFRtU#jaN(LL)GF#7(%92IY`6kfaL1}IeLLYA_3krd5o+FMK1|jT;XC8
zULJzCV#L>;aNNfuszHzonT22X;D?am9>FgT-j}-r4@|GD9$j`mXlf_63
zPaeIE8yLkY2R15@y?E|R9(w^%3Vyn{lmLzLu&;QIkAp%z20#79YU@eOw6?+lcF*$1
zZAbT@I=+vMqUte8>{Ex}Tww|oz_xobSYY>XjEAbg*?;3w}9z>TRU!$Jaso{b~J_;WR!R6=)3i48TYfeiG(Kvn)<;xxZdkC=N;6E~Id9wX^jcrI`Qo@He1qsN4CW;Z_(3aYI!DPrOj*w!hqRquqDQpY1K@)Y_GorY&o`(GCIdcf=Fvk`Tt!8RstH
zP!H>hh)ary#vh(ip@JF})RbqNM$+Vlv^k9*0tR7B%Nyem;qYwZF%G%@`vtk+$RYv#
zA$*Zhs0??#Tm$JE%cQCq{}KR;s8`G*xM8G88jtS)NGlk73a)z+F-3Sn!mE5ds)lv4
zFQ~SWP&|vpD(g#ESU0aSbrlk_Lnw_TSWh6K=ug!-|L;TM@$z^EV8{lre~wHg^!Zec
z^<}2hN~W!1V5?OWIuIHWMg$B(Jd8ji3$icBk4zI|T1u-3AyPh3WdoJdv5Hn$W^kuv
z@~wmf<3*h8Dc#4yVPAojaNXAgrtjE6C8x&V4Oydx1C2_CO9rv_WGWZcpvI1=4pdC^RTW-hQtd)~Si+;|!Z
zZWO-^;Ql|V08iIF12EER5ck)~XxovPZWGS=SB#2Hw(X{WvFeTo73d7@vvyT#L3H(V6Gqw3?o)y9T-X)UwEZePn>OCcl^60H{BSjZ>XCtPrC2V
z!w}i`WY0>>GF<$zoG5sR_4A1=ES=>!^kM-IMI1^j3xB%U2j#qP3Q-7-V~ocW!yyeX
zrKgA91q8P@*)*C0+FmvkJmBC*x=oCd2mlJxh#*v@8iFeXmqQ
z$}iE*1KXPs5Ry7Qkf@|5ZlKIv@MxcNjUy2k*k7WbazBB5x~?4FQ-w7SjPdC-Muy&w
zB`T=#CSuI7%6S)Cs&AncI@ekMhC8gP*hU2f)4$WT9L`8&Mj?`-Xc|IkC4c2I=*)$`
zrmF^Flsr=t$@ynlMb+V!tUZFrQkAmY1Jjge{d|2ckt`ajz_AF4ibzl6y_hSG(4y9E
z{A<#dZNv&J7AD@13sCecu{m@`g`Ia?is#Oua)a
z-Oz7465H*hvre-f8rTHttQwfm_X-$KRIK{U&{raKDvO7NSpG7~&&bfw8w;ZF*RSh=
zHh=B{%bt<9&SaZ?<+?3)^sGud`!ndnx1Hl^IwN1v(dV?K5RQS_gZuA39Bn^rMmiq@QE%;;#W+O@rmOCOcG5AxBx3H
zYEXfB#KATG5rqI$)uvrWKm(|xF2}4(s$9l4%@knqf&EJD_=2BIOkc=H&?6O#J
z8|b-eESJOJL!5zpt^MY%RrdS4cDlXQg`8BXC6Pjx`~>No<0ski#~s8B?QRcAG4)rO
z$^om*Qc31cA-ZVqq~sQ=UB9{rh+0*l7Fb;kYCZkiOj|WL(?0q08yI4B+NVEr86cz?
zghd=l7{Tom-oOHiRD$U9$beOrVd0Cy_H>FH*R4N$>7sO{=o0CK&6_*l7923wZomD{
z_M_|Ww+m02Wk()!pfwa$S~j_Z>8EZ_A>Ir;Mk=>*fg>JjV4mx4{{@&5slwvL2&D>5
zO|a^g<89_SEmqv|C+oZOE0{1gmC9d)Fa;4Ln(_DfV?skEl%ka$6cwIgQl9qIDNH-f
z__jCMWXX9;tl^-utiCu0A~#y9au#cjB
z`H|JOV$)_DjCzeMW1Dxqc8>kyTP9gL*+)9j4ucPu`no`D^(_^4$3p{l)@Aph)M`Nv
z^QK&Lr&Za%{mVic-xX9-KXa*r7>qniev}+!Vi!LWuEzmvA&+mawYPp`nf2FfvJZUp
zN@{@yl~hWXNH7wPP>_$nx{Lhc*Z3ZTkKae$T@!Q92vP~4b7vG?z!P@d@yFW{M;>l#
z9$#u_UUq|>wYbtg@veHx9Ryenoa5*`qnv^9JP=+La{mRG@+nb@iE>k=c%i9&TK}Zg
zSu)#bgY}ixH>aK8`^~of1?K3X3PY8s#dfFrSha+|_q;^$Xb7iz-NA-=mTNl7(i2Z6
zpA!(;Nr0dyqAJ9o0;lo0r{YC*Aip7Q(aZD8iC$g?=q(kwH{EDA-IcR#0|lEhtHqip
z_t3~8ti-Bf8R6m6T5UmnFTy9k$TX+$MDIcV12Qf((K#!?IIT(L!a$!2Tp*S95X
zV!FW=%ud?;X??(HM~G<<0Vbu!du2eWM;)NPx3<;UUzhe-7xlBbui0uAPOzG)daJ0N
z=#7G}03&{yhS(8`afwiSHg09jgVQdPsjxH)MrtR{vZe)#ZAW&{esKGM9Z=tI2hGac
ztj2C=KvO1y$p9M@F1|k-NIpX__e+4ie5wGhly{*~OQlB7OHTk}&`kY&Yd-ePmg`t(
zZLO%&g)OXv8H7lPvEs_@ts)8cbul4Yj7$eIs+8JRBxKofM%a0#n;#G+@~
zQ!JZe)}bs$tBIjd5~H%v&+U@C3>i3aOR^Ck_io$Xw#B~s#glB&v>vO>ZATqs
zu|lGs#$i0n<%te7`l=vJLh2&tHAi74e$Mz4pI9@K1y>=JjSl@gwIg
zkq{{pkT~oay_eOyx8Umi!}8d9a}Kb1b7tA{WlQa%Q|_
zR%2TUA0o`S#PKl`Ds!sY(hE_GAi@Q{9#F&!Fnkjq(
z%MtWEbW(RU9kaVQ&EEI%4c0l>W$$|D;WjDVW{W4RXFS(R58367V@cysIlbJWdg5Y-
zVMQ<{X$hiKNS7-F7}Jv-Hl@L?`S=3c(c5D8FWqWy{oopV*_q9D-jW8Z&20q>Rx-JY
zBU-DD>*$3WT@jTjEXn+9zt%g0NP@AtSOU>;B*Yo2F4b6k$?KVR!c3jL%B8jDVV+sr
zCG;mwsBqO@bJOZ~`_b-v;z|h>hgOQVUymhTSIBeK?VkY0rSOV@LWMAT@EU;(P5|zD
z($qjAHQBOFCtHrGrrn7@i#%3YWL+vffW}>WI47bi7=uIa3x38<{h=hIY3yLu{4q*OlA-keXIwlrPjAFS0Bm@t()hwx%@Mg7l$%T{(U
z^^kA8H|nY6{^)J6JkxHNQAK!aeo7Cj8{TLF
zKtVmybKVI@%C8cr<#&{YJAPq7LW*sMX|#$u*j&N@WwmTDsfi-iIZ4fk(yHf?^Rz@%
zZHNX+qYQNS`BLvH@+6*VkH_<4P#^>u1rIQVQ`}w3F1>21ip6q5S~qR+JdG{)>N^Zb<_2>
zxwT-Q|HeI*ud17fery#0wf
z+uYt@yLz%Tc{!Ukt=1}X{R~Aq8NIMLAv+gg!xoULWo4Wizb;GlthP*UCpHJR`TAAzBwQHdryq`f6ve$bq2Rmfn~w_@POs9em91D;v}tvXHnm<0
zC35t>O}3$<(*E@DlQw03vmJl_VuW0Ms~QCrLXM0)V?77qEoxN-n-?<0PHRl>wEDyr
zEAHOLBAh<7t$y3xX4c-;ZiW8Px=V1kZ{IEe_Te*Yj-~Qq-|c&W#^vSXvbisQ}Yy~9pB@m&&B)x3GhCZK*bip#4+4U
zR6wv&Q*6#DAHjdQwf^dZmKk`G7|azDx0p#-pRbsiXbneSXwxR04kORuYJ^Ey9*No=
znHY%goDQ54aGsyPPCcz?rC%2SP847g$LG1P{q1hM?l-G>UuHl5;RQB5z0OhyXdb%M
zop6bzvC10;J|FbkX6v}`E0)`I3(zoT0T5-y8%I@#Q;Sw@kj9}f?I^21@iIK8hJeC0
z8{Bn|b^rM%HobnEz2%~;UGmD~?3(|##V&jA-S+D9XWBb2nQGNZEm4)Q?!WUbfe3ik
zT5a*v4c1uEZSVQmWA>Lv+7KI76il9Imw)gdtuGhYQhRg%?F(N3fANy8|8XNJ@GJB}ZIiCYs@Fu2Wf{icVMQ*K==7p1EI;@p&+BaWllRfG7MOxK&MImaS+eeUfXt_t
z!3xTFOR7*(>7CKlrO-kLZhZdNtICn2JnFd$qLDNW7Hc3QJ24$vNz;rO)2#8X
zt{Aj7=ERH4iCbbe*DO-Va)4o}(2T`6Lk~;>5(RsJGSLe+RN?`8?;P{?*~DB=>l^%%
ztX|7(Mp&v@*WQYM(FU+)OY2deH-L(qr>8G4W_?-?O)8C5yDGokDhoZ<&+J4eWyaRc
z*cbbFp{fMl1zvAn*Zx!5eH2Fu!c7$CjoA0U&;1z};6P>whzjeMOS4QC5@MLhThm5s
zoO>S6TZs6$b#CfqlQ$-j=}WAt=}7#h!FVtWX#`IolwKn#>4aKoh1c^&MF!RJofAzZ
zl7y+t)IXxb_%=@?D239a;Oi%qsQeOopDcIcM7NepxmQxwVcR4l$Yj>^$m4h?9
zjzi{x8&vJ^R0byo8;DQ}`0pyTB?9p9j0>=UyReDq+KQ54UJmBTi{YFB#f18+;cCGz
z$K2*YEH-bm=@_b*d%`b^(6UY!7^+O|Eb&T}B*TUNC*ulXs?!nmiqG@VsSsr}O41uw
z6j--QSFH6+Dyxs{Sv;c+BU$#u`qU*fl}3_AQ!$n@_9karGP95#cn#^dBZe&1P+dT!
zd@76j+{{pAmJeqVMXbF}Jf|{o(3UV_<&(YC8OthD1EmHeuLeN$SA2&jnBmb+(-0uF
z5GAK)MI4H(nlHc)-ML!p$Q*)F*3US9EipQLc8XCv^{$3G7@vkfIg+3U1Pp3v#?gWm
zAAh5G|6PUoSrOpPo3_}muKSHmnmExee$C6_JXK@(i>oz^qV(Hri(7V)lXs*7NXn*1P65e3&Oj3D)9@-U2H3oD;2OF?GTaMLW4v
zD{2^&pPYJlU2$J1VUp9kU})N?kH%NW(Mh!q&9X<~C#oqI!U#PC+r<&hOG{kYr(~4~
z?mvC#7q)HlcH2ED2*f2DJ!y8@H)wdif(Kq0lNU(t?K{=Z>-1~E2{zujFp!I%Bv~93L!yFrEI>yoyX!w##=vnJg
ziKRY^+D!FfnO5Cs@q?!6bhcR4`#D=^*w4%p0_Eg&oUbxumC(ZPF
z@{=JbgT}JNj+Rb>9{@Ct&Vi@qe5cp$;J`Vo$t?feIglrQa7EPhVp8+K!i6%44w}0H
zHCn5JT&`akNJ!ow*j-p{OrY~U4la`o5)OgcumXfYP+D9K*a
zj|F$gKi!o?ZQV!b`6(`|ak^>Eix^Ty#Sc!9V03nO+AX)fF248pp^LP&kUV|K%&|7Rq#q9Eth#+Y(f~N0ug$6Dz
zm!Jq2(UNuPEV8JdfuK&CW?heDtb2FLswbal6BbDunoar%TsqE1;-)@EBC0FY2U7z0
z5}pGa2?Qa1G=^Oaaqe5W)4u%ehivZR1MR}sUW{PYP%kKQ)Qk4v7BYfEZwhMI(Glbw
zG!_Ujd1?&Z++2?(yUtRqO%~;J35VeHBp=Z`l*tJ_3Z1Ffo=v(0NAxCc{i
zrXU5WBFVb2R6F=Ictb7&s@jB@)51cJf;CNUv=gCAx_FHJ@<%_gpFRArQ|}#@F0why
z73b;P_I_rZuo=sNFm*Pz6Si^L$Bs2#NV@*a4~-W-EX+}f5UOPxVKO7(_mPXE5i^7D
zJkl7AxDt?_o*w)D_pfC^dD$+I|d!V4@vF4iN6
z@dEMm>#1BAYi#0?FN66G_g32HQKEQaf+6TCjXZ{Y;(UkQz0hM-k^(7-#~GGtKVH;3
zXw?yUz?4!VwX#YEriMbjWpBS0!C`lhLKwsLVR@EnS3tO}SO@;v`yB8SMFKMTvGkHv
z7M7h~Ynj<+v14l*e7t}d7`RY5X#%+75fo*>FDx_Es;ddWVGX)^>14Z4@iZQ=*bYDI
zZMJmFFRi_J2O1Xh)OqX`2s?cybfu|9*n?Wm8)IlK)jV_t8WZKYcS}2l%4+-Izg%bi
z?Va|bQ%<)tUpCc#{EJ`M`VAYL&&66P&0k|}_j1T+hN3QQMAOWws^8vlgAMfb+7<79
zr~Svzp0Ibl?Hrpmv(b8bJFK_Ao3w*AZNe_AuWGl}jt<+_nX~RZbkfpW1X9av)$ivJ
z{3JbmhE7P<|9;BBS~JSRBHe|j+T^p&CBI!9<+=$oMd-U`Q
z9R->6NFV)*@*6Sb$}K
zLde}pFG0|dB5UcYIhL-T4tT7-sFcC#9P^ZDgVW#+Gb}r
zPU2L`X;xVU{sBNx-zj=d1~hU>L?`U40}ifW3l=P3Xw+-1y*;*L=T2(3Xp{1M*%s)3(lE6!fP+DF0hKDiqrQDqDS3h=XK~I
zu@B6ql|cpj$xnXjeivT&3d>}|xJy8WdRDVP|M@oCvURHqz4Fm+m^^b1p|OCZz=770
zAPbxXDPW`?!PJAWPgrmR35Vn2k)t%>dFXd^a*mc>X+pk3srUa$__;a^vg!l9C&MrJ
z%W$M4au8m!T5#ektiHO7HyDo|I8#5DXNC!C@m!BA+FgIW*Ve9IZ^s^alr5My2Y={6
zuwdu_@l~syu>0?Ozz&!_$4)$vEt#H^LfJ)DHPvRE@){6=amlZcue7?`e@w6TAn&NW
z1=MA&+@f#QxKxd5_-aB>vkTy%Gd}PH9*a>1llK0re(L3V`K2$l>Pk%wA~1w%t$U6_
zp8L}CZGaV483a7bsU1o3?(E!d-~ZutmZ?nJAOCn0i?`BNTgxU1U|w?RCAMzeT3g1-
zEVUKi`~FS#A61q1$_oy+#fv6dRfa7V?4qbj0kghf)!AO#(A{r6oto2z20j)>1JNu8
z%TZIwezYAXwm8fngo7JXY#L^W2BY%>fZT~MbdBW%ac^$?9QKwPjUgT13Kz;D~76kZqPPw*=(CPv&=4Z
z)%4t;$#Xnj)j7ew$|%Z4WLB1eoO%)y1@&;Rxa)z;Kwf2iipzTd7c>+0&Z)-Bs@`{u3I*iZ}2BuY9@iq!ByGJSw$8|Py?
zDB2cg5_arh<4OGicIZ*Z*wmIeCVUwnutrclGD=5#!#vX1A*PaRV34aRuz
z)$Bek$CyW|2rzVs35AaHR3sSkb_bILfmF^P%*)6fB6gQQibi>y&FH6
zz*RHi!;DhZ3iJp{Ex}dItzu5F`*-o8a{(6Q;D(;`t_qF<#<&Gh3H&fdlySWSPUA+|
zuRx*erR70AjA)R89x9`HX1PE8`A*INd)%MXgei^$QncK%og;QII|+sw!bcxpW;=Ja
z+D^ucgKn1yIc(k9YB%2WCx@XQ`3jEczj@16Tfb&C2n^VYl~3699FV^Jv1Rti(xprv
z=I!MdUu4Zq&BRCOqjo^)wVsw=Ou
ziaOSAho+u15^*k!MI9Zx?Mqi<j)#1d~dt!LF=HHx+
z*I%%mJ=hj{p&yJcepva$lXlbZZ-#qB#i!|9c)TDZ00G-On-Sjo`I>&@(Pbp@escss
zAs>3ba+sk=LTCu7(TbUbndE$)m3!rwXdp)V?$3LS^ZumSm$*Tg=r5@njWspyFUTBAS)W+3f<4j=
z4yHu=vX&(Dhm7+u8cJ|AG;vp=QvzY>uw~11I%A-p(x@zIEZcVNvfbJmMEtGWw%MbP
zK4!Q5=}-2%8?LuwjyujSc*TWLT+x>v(xK1?lRk-hUC0mE1NYpE3S4Ecd*d5mg1mkB
z10S^Z_ICU9H(z3N<}M_Kcn*h39fY{wmM?$8-t(USfld+>?zk@
zf4x2Q&_mt{D8P#^L?B3Qrq`xc7uhe(3NLoNHRz<0Dtch{JnzIJ-H>UwS+%X!#n%yc
zcV}%&S2c6ovgb&A6SjHl4twOW#{soB{)tc;@Ahm9aBM(v9LAD^G6X{ueoM^2V_EoE
zkD(VG5@fw=EUOk@gcHMxfl7?adn}ml7pZ(9p2DI^BSWveu`=EZa(f9L3+gccaq}M*
zbAMjoL;yQ%Zvd0_iO+n-iT%k>eB3&AwcC3yzucy@v;?iin?M*)5-)3Zltwg-8=07%
zF&44E-y!IZ?K|xApZT;k(7T>?#u@gxSH9AtDxDew!Hmo51}s9$>8B1wGe7YxkZTZW
z392?^FrCPyFC=)Pxa$^!Gj^7$Tr5;O>dG`$;PNyEZY*^V2`{HuM$bMBP@ZIw!YJZj
zzQi(C!_-$3mgvgDE`ee+%UR`xO;($q%tr`ntcJ01ZSNZEV;U@%oM_#Z^H?17C^4lr
zWB<+#(A%>}B`K!nUWA1(T|cYsw>pR#{fZkz53es(XEgMI}pO@zSh>=E@yJRKRZ
zLXeiFplwI&4G4+4K3s1D3epJq7%WUQHXkNo)@+^=tkRljA9x?zOc8gr>uL4+?t;Kcb^hizzlnO^YGgpw=B2^Vz+=|axhJ07=x{mm0Lf7T?MH#1|CGCQpyD{-XJWA3^&Khu`6I!y-)
zOyKP5!zv%M$s8~sk#&o@3x6P>MEKcpg8TGgr@etFVHg7p)#W8Fg+=)hB?_fw4V5OJ
z*l%QXy(>)W)gErNL{X#|vR*?pe)oV8JTxB|oO+8We#tM`M8^w{Q;)otvWsCVLJYSQ
z7^RB+#{@DI;JbSK6{d1HB=+=U0SRfvpc-|EKr8&xJt(QR;z-X%tNhX|1-x
zV-gMN24|#!Yt48Hd@+YNj(N&RKmW-v?&?D!~q~
zj=?%xy{pqEXS-}_(;!B!-PT;8%?tGOq19CTH~s%ehHSMg-TJy#+JD8ZFme?obVWyboh(1aG&t2xS?zqs9aB!Kjrdkc+%0{;&0_jtvqz`
z5jLw`Usk}u34VH0RO=W?j
zfO6K9l}aC5nFpM*q+Qk=N
z=y{YPC_Vxi3|GNdzn}gT2E8)()1Us-1z1yQy3{jGuIRIc4ZAUDbpnLtoQXDTF0RB1
z-DwB6Y_;9Jm9}a3L|fNA%XSP@c!wnH)VG9gsw{(N@Lm=AJ*wJ>}A`eoq1d
zG?-m8p+#Wjl)r=)CjqY@&(I91RaZNz`w;XrJ#)d45muUW6h0xn8icW2pn~ElzX%@r
z=}!$uOouq9kyMkvilG%gdQf;kokm2x31w1K6sI2xkA3qGxu5%zm)L2ipXMm4(=|%d*80Vy!Yjy
z1VFy~=cEl>dF7S%sZV{%6Ta%zueLiLxZAG($@lGbSAEwmT9UOlTu^N@YPR|mQU&X!
zYuKoe&9X|Zx!)!=)Y-IbpFKiVi>1{7sY42#$o}E-w~npl;xyEO*b%GJx&~$#hRm?~
zAe?{g+YIfl1SU#@fMRm+q(Pkps>_JtB3wz?`xIB6x<~1Fit*ra2woIN*@u%K^dNy&
ze=L}K5B*ZyxJXtNqV2NrAm7V|&<5*d=$VyHd6tW?dY~AO1o6F@!7pleC}!O7C!W;up+9h|_)YAmLmUNj5Q
z?bKlfRaReUvyCeswVDZ2tdV8D&t-=I!=z#+sOQ`NgsrF<6Sxd}X9^ciSWxO8`!N+c
z&zL2NSzhd}J)c^6BV&h7>KAO5$MZz(S<;t5<$kiBUkHzPiUx=lZ$8!qI3_ifa5TfCaAf-bP*g~oTHw(ghY&hppe90
zNiT-evPm9s<&pG`Pb93j-g2`oWo+oeTPDD#AV}w&b54j1;85R5dc)23t#4f8@fRVy
zOCNp2Hf`K!pZvrp?V4+@W(niD^ysI93mHRmrHilfe6^LoA-&yRFlDXn$Y{|bj?F5!
z-f}As1)J0~!8%yTp;~q4<%nOn>)riCmpxrvz8^9~*qig?YXKITNT{sVSB5t-_v4uu
z)5uHtsaRR|5C5-=>+Q7{wpeFzfqn4@tL!`9_@kY8*4cLY*)h%bmg|2_c=~1MFJeg=
zrz||Q0=A%XLb*o8MupXxMN)6;IjML-(@I+F0h_S+HSDE6&^B-1#Twk(ZDMA-&8y#O
zmDMaNKa|A)i54GM2znu{9vH$g=NEP$4KbshG&a8fo{>G2#1q+%uFq>XVg^Ljs5(ufcw2lx3q({`D*E&$G0(Ge_vDv0%IW&!3
zM6+j4u{3){eG;FFtl@yV*)?mNq_|(wagRjS&kTvK=-rxK*EtN?zY+4_5R#)0PBde^C-H;!lBFojUif;p;dZJ
zByaXQ8g0IO?YcGge
zf*eDBdUudO^AewG%Lj)mksnJ*L|$bLFFKx{iSU;;#U7&Azyv*z&$eDNvrBsYaJ4*hY=99P`Uy`
zNYz#&2Ztd@2|4kpe$V8zJM%
z-}^rM_LshB?|S(`_VBe!_~z4Ej`rCF&BViMozD2i(=71)~XiS1!5RHI9Ut%
zrYGZ2yCes`>x+Z#U}hg5OA9Cm^
zRg0^JDo>-r7+FC$(D$pKl}h=GEyqD^#T?(uW2`P5^fih^N~fMkT%@4FY&1?jmnt7c+8;-J
zrKqT=;M+nCen8y5B-e7x0S*xyxh%6(4vHhVnxa$DBouL}1;1lApGx6Av3`O#LLONG
zPtoakCDEaVL+-SPd^8tRxPKsL9c<>$utlk+GSq&Yzicz&dT)FLghaAcc*ntAO{5Oc
z>mTSv%VgCS^;&YJ0!BIQXH}HoJOdB(z=9$sH9KJ5TzmJs-eH^8Zm|FO`H!(9aRey6
zZBuH!Eu6_&OdNC!;M)2aW`pQX_=I
zQTP28V25D#rZ>IGujqBJw_9$$*>1Vz7Oz9mUEe?|$VlkDuId^``2ypsB&tEayuecj
zjbKaj6ji_NVoPIVLzo99u~I!HcjS>r`qa}s_uNxD=wKuu@rFKJ{`Kou+qKuPvNxa8
zXji_j1}iydtEoEp(Vs*(?z{v;ep0)$FsrsD{^iequv>5cgD+iu*#)m4D&<4)9eeM&
zBOX=a{~|{dHk`Xe+xo^D3>}A9ZeWeIuUl?)l}Ve7@x%Dkr@@#^k&`SK98{Qc9@W?B
zw52R+@4Q&fY>KFZ?$k+Qe5#_ys4jHxi75l+NGFw?Eo&78K9$MPL9LZf#d#d13CC|IhBd_ilUH1sB-C2Ok{KAWpaUyTI(&vBSRkt#A29#B>nh
zsi&Q4t5&bF^&HVNlc}5e^XJ;l%GcqbsuF)|dN}1ET
z;gh&Vy7pZ=5a1g}dJlV7dDZ8*urfx_Lit2d7YjDUFi~tV?U0ji95UqVMOEvjX*Lab
zY2>8M2!8C;z^LEwJLL-mAqF)4-gm#}uk#Qx3Gh>K+WY(A4}Sz}bOS4-PO}%Edyd_R
z1%3UxwOFg?*x9^`Ph4=60rjk@F}EvVOiXYdv!?7CtGetxuWGO@`Dyl}NPxY}F2wtf
zSvc)72x}~`y1PFxW36NevV==2sLBfK0X8AU7jc-xYr
z8|{$eW?SL9-S)_%+d1whaFs9IAz!VjRt-wubU}{BU*#GcL4Olh8bpX694WPG6i(w|
z9YNZMS-p^Krlb-WPWI=dKYe#6FqpoiAahVKZb)6!6i-lJn5x~G+!=lJtYhp%ixiBJ;mdp#T>7+%)HQc;q%sgv`4gzK
zYJi1HK!#F-RLt;Y(E}AU)$kOZ$|}=Nn1;b9MVVyusbJinE;40^wZ1O7juAU&L1Roz
z;$L0Z?M=O-PkO(PQkIb@#l3GVtU4k{&V^Qp;Iz=h4V5Z?nNz)MxoS=ZE7b$>`;(Jw
zSNah4BcrX+&{XEPSq&dotI*+n<&NkX1iTg-O+LTDn)n_u9B(z0Q%0~nA9&M|JOy}6
z{Fv}%j3mP86jkq#{Oxb|qn*?g(*MIF_{ch%Vy-h=H`^AU@j9@P&`u;;WMooBiZ(7L
z(c*N6Bcay?!A00mw$V%D07&b5e~GUOR(#;d;yH9FOb9AMIVkzbBV)5qcm+(0CJd9VlIy<`Ty6b*U#qOKR
zC>2c&U-{()7{Q?BIKJ_XZw!n~oS>o>urXXsFZ$u~X#V`R%PzCa-+%cY{^cIyQN@Ky
z4UrlR@Jzz6`l5Xk=Sm$gC84IC6EI}Wl_o^pAnuwK5UcA7F4S}UCSi-~RC&kw>lBd_
zPBp1mgTX3OOOqx>RF9@j(U>V1=Xqbp-AM(bO2)J^
zXs}!_AygGw(6p4EA(C5IF<}`WurAQ54J~L;4Dxr9>Up?p-MNe1HrrSfUvCYZ@UMBP
zG(BHM_C%7YC~VM{xtsA=urZ?Ec_YJ38H@0`Tqsm+W?h|KY{}c^^cVht`LK_7?xu|N
zav_?>^`9uMXjNIs$HzF*)Ccy(2C$w(6y=j;Ox|T}9ANI+mDFjKKagMuR@qa6jq7gB
zC%LBRU_Hk*;4?%!HB148gf%v+e+aJN^*~cw%}2m1X=uw4C;95tYwbUO^=q4Rz-&AG
zu*Htb@D7=wQ(di{|B`bdW!lU37^|{0F80WxpKAqJ*=Zz`d>$o((AFll+XPOyXeh2i
zhfdN8f2{;`Kc@o!$%U^VdbEOseLcN@)V9A8OeG<#aw=1v{7?bEw$`P>TI&Z(U3
z187`qNmTt*RaJ2;(Q+1?Rk(e?3o;tOXVFi`9YmB=oy&e0luoIl`nHS@D|G^dPBLIR
zDUs)Zc3M^r<|G|LMCHhpNbJN8Z`6x3l8BvT(Pm=MeK?^%Wj(1n8VJ73o~lQt)N6TL
z;*bQii<|3<028s|$`oD7sq0+Exr(o^O5j&nbU&P)BwAhc@a)$r($_0L{$
zfVCFq**UMj%r^H7a-P={cEH>PUT;pQax}<8+}G69XukrF*s1IqGQ>{xq4{G8ZhU?A
zv!AtJ@Rf(ysn_8+&m+eg28i)&}qfGe9Aij(;rZgXAp^%pL*
zOE0doV~?n_BaWVGTY743)i#Dp9I8LSNBP#Q+hJe*>NPeQjo^Lnf8Q_|f2$Xk6H{~Q
zl=$1cWsCjw?mMlCBVJElauQ1wBsj343@Z?!P*`ni?*FY-59s{nCYyS~+n6ImfHfW!
zqtg1OWyIoj7=MV#@k^n8iHRy{shg|T!bBa|vpN2=YAz8pRiga(2PainxPT-aarzab
ztz7Y>ZQI_8&=8;h)6RGih8KMoMo
z8NT8G>esoE~$@cMq1QvUikERGq+X}ECg
zi%zk@zWE#k2MuY8wZY
zw6j^`d-5qK*;Q9vRTg9DQRBG)KVe55bCfA<6Kk1$PF<}5G}rF30W^h&*C+j3Ntt4w
z9X^TEBH!8s-)wUs$>iC0%lDtF*~a(f_s_Lmi5d3M_rBfQ`_;IGTKd#yK4**h+N6K)
z$+5>6NESNMN0;g&?rDXgctXM}8Yt|8AN-&_@W2Ch-g)QQTi^Ot_y0Oml{e7<)bRc3
z=E6>Ny`3D4-(Zb=@Q&$VTf|PQkA3w2s2F27G&p7z?zrU!d;ceYYo{MwXBWJfi9ybg
zu5W3!E&X-2ZdcK!PHwWdkY`0D<6?MVv=wq=Wbll6YXFN2m967oSFK)W)AjW~{00!p
zOx!~=;4gAWSl8xzttz*j1q?9Q;3Y&u3cT~=E~esN0;eNQbrr=7TD=4#Y7gn$IdkbZ
zQGqm8Y#upnP?X)z!hQrQRl7;z(7L?%oSKo_tNVquts#RZ*(9h*r=6WHO!+PuT~A
zq}o$OQvJqp0_|rj!x&O9qF1?$-pOamIjgm#7?
z_dU$mpLF@@I%s~f*OC`Otu}pC1|!!=iyG;E5HN-M^+*@X!qYLe475J*<>
zd;Lyi*5Qn^&x{~BnBhMfj-XB4`_~8Uu1B`p%xQHR;bY@yXUT5CdN|!u2guhjJF|f4
z)jb;1;n1Gdx3G{SP@9ZIoHS#JR{O%2zit!wdfRI`Ng>zSZ9n_ozgunbUOReDpYJ+R
z1td6zL?7_h*v&T=uzIM1RxwS_r7Oji;5{7D9>6;h>2-_DBdao$qgO>F1X6*0xEksy
zaIUy_gp-O^M9odGkv)ZWppRl1M3&mAo>E`m3&VgIP#J&-o|yKagAcTY2OUVD6kh$}
z$$tlHp?~__&$v&lrVSw@0K&j;!-OdoBn9oO6SF4VvZ=XsG!X|ZJjB#Pj6FPm!pq!n
zfi4S(9-Ya6Th465o)u5X^RF|iu4c*Q)$B(4Fun8#ue`!eJ>?X8$+>4T_T>|tgS$Bp
zz2By{&?~oByRay^YCt%Oot&1yl3xnLR->;g@3dck@gVC=PU8dLHP+6@#^3)>m)U)f
zY>Lu40Gl#pO0>l>;OneGry#5IK?g3h_!wfvzVW6T?M4>UxE+Ux+5(zk{3^3+h0@3*
zO}Zj>n<95DE_6MOvO1YVmcxHVcgFdbf8?L-10T8EzVo%O*{QGkke$6`y1n;3$Dv8m
z)#$WLeR~zRH`)&e{>;A7NPz?@oPT!~0x;~OwUT*?6BSrF)!WUtT=|fcF~6DQLt5IJ
zB`dYo_=f7yohy<$^;Y46K<-B{G~C1C7ZWfDPFV~QkRH|N9Gw;P9ukB!f%rw#wj%BN
zVDIBLz}dd(szXrsTL2{Ccc{zbWxl2w0Rl-J(QQo?j(v@P5|3EJ$aFwWg+8Zo;hsOVU
z*FIqfCrODITkp!PjvY$VXUw2MPFi~_Drq(A&TIH~E*}IN+)1O?)oyc|tNf6KNwlBp
z?UXLS8)|;!mu5PqA-9gX);1tGS`crp*p5)G
zEL175@nkrNzHa6;8>pRPt9SCrQW>%|U8zQQ2<@@KJ&Pf9kMxot;U*UzWUO$;2LD|<
zciY!!iTTEz)w18WpPsV|;i%%nPyKxQGJF?S1;tTj5d~!y)kyZeMy!7rxfpl2VMzsb
zs)Z8AEUlz+9^`jnqHz!(^`bGz(QvTQ3_@uNE5Z$l&uIY5^i2kf^NKre;-rOw&0o^&
zo3I@o*=U`s<^%g=9Kr&bmE~Ik5;3X1eXCw5Ou%bQ1z`MgoHHusfnWGYb`|AeoGkilj(U)Wp%=rHRsi`2*a%cfMZKZ)qD`Pr0O1h8Mdf}P
zE&{1Cy?~{NFF5iAekl4(j8W_&voALkNxeV+^DpU2(+~_5rRhaG2axS6pc?
zJ@ZI=-`mf!2k%^JSAPB{cGO{0?C00K3~h@urg9tTlvb5+RemMB1r)V3$?-N>j9&lz
z>A%=LYy0hIxBSwUoOTw)Mi50~+%`UJcL1kiYVe^ktM)>5@mPV^|q>)1#>qmIF6!4q0
zOJ4sbyYvmOwx9g)T8<%lryX|C0ruKAzLL7rOaW12f{g|4S@ciedFSI02!jycg59}G
z^J4T7A~f?AsT|CzmWCMJ=}PO*&akDsIn7Uqa|rjAJ6EDl{c~>!a8Z
zH$7$>Hj)>_%8@pQ@Fp>&=%bK3J95@ZOWXCpGE3C(JzDIGIwN>%>sA(6(9`r!v;j`!
zuY7`~ayuU+OrN|&c<82s8cCUftAo5X4wmXV(BI>h;I3keZP+b^j4#yxnNOW2A0k{d
zsj!``ZQNCRT)N@9x_ay{ciidE%0q{Q7f|U2GIjR&?iNwbw%!HZ($XFfVHa@7ECie!
z5ugZyZW06ux-S->A&6Dq;i_9;eor>)4?xH(P+a&bp9E{cSJ{U?6pUFqj`rRE_>bz)
z+=aNIXfImwLi_lqK5SjB>+RYf{gE#Xb1#(_p?isFFE8`xKR<*N^jQ7
zivmO~C04W5h2e8IG;Zfj9|$kNX9=b+ckbN5Cse+G^&f$J_1PSXm$M&ScPpJi&aSxX
zqgGjww&sbf1O#pY?NAFmzWcrJ*qW7(+3e=Lec+PgtRcVKPM+UpQ*s;G*DKzvw0l?7
z*bNV(QBGK3AO7U4Z0-V0QOV*mo{K_DWssew7JZN2p3bD31L1wjay$@!gRt~Hcdvmw
zJK$c_AgRZw)Uq8QzNn#U`8A_Tzu~%dvvu@lIkrVD4_}dcU?picI`f5|1T~EwuA39@
zH}vZ$?~L{Ac!ZXZ-n4=-100dbYpJ0gIh0NYuo8iy(h{Z*SXZ#8cRR50=d3ShYaUrkPp924;7iY(OR|-X2Bo#TjxXL(zP3*5TfH=_
zs1Y*cFAK1+kub=ZVIxVW_6MSwno!
zz4y6?Hxgi@lSy)DEL%D-@Q~fg2UgMW&=``X{p9BeFhzaOd;ZZHn5RzhakQYf5R6Ful+V@P_WN7yU*2~n+QBSqqW!2TY{YQ3
zn=+_*&)Ora`t19^+-T=qdW?PY$`6p8v^mjlf9NHBDNI|s#hf}-Bk*7C_{`H((9-x8
zR0`~!)mX!)gv2~DFH5DuD3r(EHGpaiQF@CkU6iG+g00dJIe{@rV@@Xrs?Y%HDtl_e
zIHgiws6+jsz$&iS6%j|WpRCEgJdPf7kVu+eOlGURSCqjqG$bUH^wZF|_#)&2)HcXY
zDQ|U@gW?3nM}ldPs%S0iVHhnsqimkHau-lWMUeo
zuQE4e;Z~!ffFaoNvkM$B%jB&L!g!A{EUy`ls62vJp?mzKAT0AVmU))F4v|cC~BUp
z#~B22FwaIT3ZKDfG0?*nJp@$aqZBH15k?%4uvXB2a+fR6GiRVytj^^z*E?@YAZ0*+
z(Q`;(8b;Rw{{rKcv>J&K{3-$RIZpxg-VLVbQQyB+WdzQU&{2_U4A20I2&gJa(^PyR
z!>dIVtFf)VoR@?hbc&_o48k2^y1*=?0j~0kdo)c;=<^*CV9hUPGSvt!sxNT$VXSVZ
zhYDyHf-O!j&XH+w$+6#5bK`-TypRNzJ26_U
z_Lloc>NId;x(^TC^G%wD$~Zj!NH!MTf}dy>cl{+AQPw04n~zJ0FhD&dFd|8KRYz*m
z$8##74rEEP|5|IQhm}|va>>s%7p7`_bs6X=$azZCfKhz!w|rgb)s({%XiHhvq*r>q
uOKYTwAV4T-{gAj-r-O#3Rw@2I-2Vr956)3#a5lsM0000