moectf2021-crypto复现


OldButPopular

题目描述:

1
2
3
4
qj3r_y31s{vxk7_hig__0_a}g4ax_x0x540slv
你能解密出这段是什么意思吗? 观察一下这段密文格式有什么不一样
https://github.com/XDSEC/moeCTF_2021
得到的flag使用NSSCTF{}格式提交。

随波逐流一把梭,栅栏密码

继续随波逐流一把梭,凯撒密码

最后flag为

1
NSSCTF{c453r_w4nt_t0_g0_ou7_th3_w0r1d}

Augustine’s Way

题目描述:

1
2
3
4
你有了解过移位密码吗?
npfdug{f3tz_Bv9v5u1of!}
https://github.com/XDSEC/moeCTF_2021
得到的flag使用NSSCTF{}格式提交。

随波逐流一把梭,凯撒密码

最后flag为

1
NSSCTF{e3sy_Au9u5t1ne!}

Cryptography入门指北

题目描述:

1
2
3
可以仔细看看这篇哦?说不定你会喜欢Crypto的
https://github.com/XDSEC/moeCTF_2021
得到的flag使用NSSCTF{}格式提交。

查看文档得到flag

最后flag为

1
NSSCTF{cRyp7oGr@phy_1s_c00l!}

Ez Vigenere

题目描述:

1
2
3
4
5
这题貌似是真的简单! 但是你可能需要去知道什么是Vigenere~
同时,key我并没有告诉你哦
dlcawx{kec_ihq_fc_tgjwebpc_lk_iuwwgk}
https://github.com/XDSEC/moeCTF_2021
得到的flag使用NSSCTF{}格式提交

维吉尼亚爆破key

维吉尼亚解密

最后flag为

1
NSSCTF{the_key_of_vigenere_is_rxyyds}

モンスターを縫う!

题目描述:

1
2
3
慢慢看吧~ 搜到是什么东西可能就秒出了哦~ 来尝试一下做这道题吧 每块内容都有对应的Hint&Description尝试提取点信息吧!
https://github.com/XDSEC/moeCTF_2021
得到的flag使用NSSCTF{}格式提交。

六段flag

第一段凯撒解密

第二段维吉尼亚解密

第三段栅栏解密

第四段培根解密

第五段rot13解密

第六段摩斯解密

最后flag为

1
NSSCTF{cl@ssical_cipheripr3tty_g00d!}

NumberTheory-FeeeeeMa

题目描述:

1
2
3
怎么可以分解这个n呢,来看看他是如何生成的~
https://github.com/XDSEC/moeCTF_2021
得到的flag使用NSSCTF{}格式提交。

附件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import gmpy2
from Crypto.Util.number import *
p = getPrime(2048)
q = gmpy2.next_prime(p)
for i in range(3600):
if i%100 ==0:
print(i)
q = gmpy2.next_prime(q)

n = p * q
e = 0x10001

flag = xxx
m = bytes_to_long(flag)
c = pow(m,e,n)
print(c)
print(n)

'''
263008606417090478566565299810283124941804126507113525587390677503293194343666087681964773019395280446205407691484774718932550281467537401219675254528173987088938774386502897118203537632220602323914308216229335629593724857802179137161994764652047523675709008286064448828023140237566132983016003115673355564648923477918580240197355351101233161015345869099779377748188971444727339859346227316840479889105162116347476243712080281172197785928605069437778934843702674790549009254968801469403071588920441238715453737896667478751217639321474363829766785705632819377446277423897444229208300944065442708855610919362463870409750865618966436909679416475224935654779108492443347930157015362069031445961698740874449398633416274993312148761043683846969413714438518714752086418643505351718069185918950309997110990358633504996993095219569951691320773244853704939426164506912622629836798640173907936986385737630181302799243239569229123640543209312682734240635326031049265324015549955077829367091796287221865653193037735196635197439609673972466210706114120142070802091713212287909213710633272650703644600005643328190463554693180030667114903774309621791748550174052862095206625927960781050796459818989538815307653741523716288252629280835076948046895601
359336501271521532887656688609295042672434709877081900753462802000755944104448697042366747461395534728915053035475459015263877654779607712559439958640046447246795492613180033737648218742508752449971055824413830268089448680617248179389657713305429663149548581330682010843775095659107771083498691437964118187909080096258126217389687367383301166809926191321584757387431941409060744328371424948988833446651828309230245313487641590365198484255142967088588384318797132203546546629955996480505149111166600546126192029751124771571918693276230154597894534213860659972166774036644473508159923466417979740342453286817394016723536509392328304731594460395586984216646043768390806512181233642534151692135644819066105646943194201485395325911256860832603278670900133367627500162513041761043011626948699652168654976313717938901597808754267996648935745100287531478172712432058146052903388546565632174028182472012197791653306648067962114207504888841853254752313822184342829344043028253285087763176816976839219602985900752633788798421802365156777163724743521780060375607506242692718315299078104710983637353515944430437712607451078303509530539260657291973611896675785100483218112781144038004807688281170137433780853291933873671533348523292439854954465561
'''

邻近素数,费马分解,直接一把梭

最后flag为

1
NSSCTF{y0u_c4n_e4s1ly_f4ctor_th3_N}

Augustine’s Way#2

题目描述:

1
2
3
4
再来看看这个是什么吧~
eg][l^sdm(i)YfWqq-u
https://github.com/XDSEC/moeCTF_2021
得到的flag使用NSSCTF{}格式提交。

变异凯撒,随波逐流一把梭

最后flag为

1
NSSCTF{lu0q1an_yyd5}

NumberTheory-Powwwwwer

题目描述:

1
2
3
我的Power超级大~ 可能看看共模是什么内容呢?
https://github.com/XDSEC/moeCTF_2021
得到的flag使用NSSCTF{}格式提交。

附件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from Crypto.Util.number import *

p = getPrime(512)
q = getPrime(512)

flag = xxxxx
m = bytes_to_long(flag)
n = p * q
e1 = 0x114514
e2 = 11451401

c1 = pow(m,e1,n)
c2 = pow(m,e2,n)
print(c1)
print(c2)
print(n)
'''
47220438825147485602004110821622560065904207675219860468929327492230243119464967323930295623259686691976072363819976125368307866223981062386682077438030452670319556977872343275419275297828846355087444641575933688543206152050119271402939885941719672725566836549228027040543887994457719131600949478670978241146
115435415972673976853578931507112950322194896557724940548983105717498084920603530063295392396344585245149536619546139549595643165285610305977637286040529163780201012187105549728000887169595946039777889559399483628995380569296124138575774025562472143420878790970785857061634021973901034670780393435693955936244
136101507305579392638535644920761633964164170724862786826983346232384615490056114520867809528578619044234996682189743771790469301482774597055261893015794231752161620186891313083697906603842794202124169703689691049507643124840305144271549786654248958903748746153284903228556081709492696702282014035715848536699
'''

共模攻击,直接一把梭

最后flag为

1
NSSCTF{s0_Powwwwwwwwwwwww3r!}

LazyRSA

题目描述:

1
2
3
含树:奥,我懒得解密flag了…你能帮帮我吗?
https://github.com/XDSEC/moeCTF_2021
得到的flag使用NSSCTF{}格式提交。

附件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from Crypto.Util.number import*

p = getPrime(512)
q = getPrime(512)

n = p*q
e = 0x10001

flag = xxx
m = bytes_to_long(flag)

c = pow(m,e,n)
print("p = " , p)
print("q = " , q)
print("c = " , c)
'''
p = 7049120988661090136959367990211624032671088374397430253722914704672269343351268486642692858477617370573493581346846411168539408811542592351582581576539221
q = 11595461299251293002401295606096202123601375776115430944343338141843770078346355504245510150744085418550473572002573306023521368183889972175846278163010889
c = 48425576447741107904942007362859939933300480519833273210397511573241220126734053813936424490872852942885069257318462762079636783871415500644717758273774268724488497979368196170897933989184449432995120246590652553995031347596620505647525475638040859263109628716173897321613612254357251120398449111747305089380
'''

φ = (p−1)(q−1) d = e⁻¹ mod φ c = m^e mod nm = c^d mod n = m^(e·d) mod n = m mod n

直接一把梭

最后flag为

1
NSSCTF{w0w_yOU_Know_h0w_70_d3crypt_th3_RSA}

beginOfCrypto

题目描述:

1
2
3
来看看密码这里简单的内容呢?哦,其实也不能算密码~
https://github.com/XDSEC/moeCTF_2021
得到的flag使用NSSCTF{}格式提交。

附件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import math
flag = xxx

data = list(map(ord,flag))
cip = []
for i in range(len(data)):
cip.append(math.e**data[i])
print(cip)
'''
[2.178203880729008e+47, 1.6094870669615087e+48, 7.307059979368028e+43, 9.889030319346894e+42, 2.3886906014249767e+50, 1.9862648361376436e+44,
2.6195173187490456e+53, 9.889030319346894e+42, 7.016735912097614e+20, 2.178203880729008e+47, 7.307059979368028e+43, 1.811239082889014e+41,
1.6094870669615087e+48, 5.920972027664636e+47, 214643579785915.7, 3.6379709476087856e+42, 7.307059979368028e+43, 5.399227610580139e+44,
3.989519570547194e+45, 5.920972027664636e+47, 1.811239082889014e+41, 3.5451311827611436e+52, 1.6094870669615087e+48, 6.493134255664421e+50,
3.23274119108484e+49, 1.811239082889014e+41, 1.2523631708422093e+29, 3.23274119108484e+49, 3.5451311827611436e+52, 4.375039447261315e+48,
2.3886906014249767e+50, 7.016735912097614e+20, 1.811239082889014e+41, 9.889030319346894e+42, 3.831008000716566e+22, 3.23274119108484e+49,
1.4093490824269349e+22, 1.4093490824269349e+22, 3.23274119108484e+49, 1.9355760420357097e+54]
'''

exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import math

cip = [2.178203880729008e+47, 1.6094870669615087e+48, 7.307059979368028e+43, 9.889030319346894e+42, 2.3886906014249767e+50, 1.9862648361376436e+44,
2.6195173187490456e+53, 9.889030319346894e+42, 7.016735912097614e+20, 2.178203880729008e+47, 7.307059979368028e+43, 1.811239082889014e+41,
1.6094870669615087e+48, 5.920972027664636e+47, 214643579785915.7, 3.6379709476087856e+42, 7.307059979368028e+43, 5.399227610580139e+44,
3.989519570547194e+45, 5.920972027664636e+47, 1.811239082889014e+41, 3.5451311827611436e+52, 1.6094870669615087e+48, 6.493134255664421e+50,
3.23274119108484e+49, 1.811239082889014e+41, 1.2523631708422093e+29, 3.23274119108484e+49, 3.5451311827611436e+52, 4.375039447261315e+48,
2.3886906014249767e+50, 7.016735912097614e+20, 1.811239082889014e+41, 9.889030319346894e+42, 3.831008000716566e+22, 3.23274119108484e+49,
1.4093490824269349e+22, 1.4093490824269349e+22, 3.23274119108484e+49, 1.9355760420357097e+54]

# 解密函数
def decrypt(cip):
flag_chars = []
for num in cip:
# 计算自然对数得到ASCII值
ascii_val = round(math.log(num))
# 转换为字符
char = chr(ascii_val)
flag_chars.append(char)
return ''.join(flag_chars)

# 执行解密
flag = decrypt(cip)
print("解密后的flag:", flag)

运行得到

最后flag为

1
NSSCTF{c0me_on!begin_your_Crypt0_c4r33r}

NumberTheory-MyGrandson

题目描述:

1
2
3
孙子 有什么数论跟他有关吗?
https://github.com/XDSEC/moeCTF_2021
得到的flag使用NSSCTF{}格式提交。

附件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from Crypto.Util.number import*
import random

prime_list = []
while len(prime_list) != 10:
p = getPrime(512)
if p not in prime_list:
prime_list.append(p)

n_list = []
while len(prime_list) != 0 :
p = random.choice(prime_list)
prime_list.remove(p)
q = random.choice(prime_list)
prime_list.remove(q)
n = p * q
n_list.append(n)

e = 0x3
flag = xxxx
m = bytes_to_long(flag)

c_list = []
for i in range(5):
c_list.append(pow(m,e,n_list[i]))

print(n_list)
print(c_list)
'''
[77233172536159741192246613655283165880196613060552611951771270688104936106776346258707301903094880666395585340631862009130750364252309591238056576753936210560429561770824923088840307835401343591389063817665516081122335870477455981026885268249200998526090677712273308041387000143133795229713482478393789372621, 70794324572924578170904176367785397571585515343841766471270776641893534562091735386206579244229072036331675198665823877108424439019515198192572105111245725566358049561022661780408911208342637594250037944058109688775177723617220023349151285447135301481172151520373371753145483943469882142519628143415523743463, 93761217774409345065712026096494766259059400214289981179452977682878853429771707722391625256415829980979321889115942716112362554641424767683650504053039711982239972950462675978125739670042221693517477062545050595319035580175500989651485917759297158328957400110168748398966355865895154979662685437655175232187, 124529202589219244628054131473440686077969827415379239572516697161425506945161335214321076138377196624342679966748136249190446302054453599336468401444986625483801237391516131671890908955031274838978095000660651399041484751377373528279323583222966113362380418012251381389500548026241296381301140473951308631467, 60402137932600451202064823101449766068323185392267470715893320550946146689486181577700090960854688975492966004126295374528198973614156097511239714353778658971704224697111332966918059572112633110487150490907161982337993576588831137499701656665339000413922782862243877535428631203689690715707499925757364765349]
[25681920037857462308038008456804236725305902130578298860433144085656782676411434281544156794249690534545397408244321828543334304937398521739382233631303709676426573143503446051379370337969083171791612381925477, 25681920037857462308038008456804236725305902130578298860433144085656782676411434281544156794249690534545397408244321828543334304937398521739382233631303709676426573143503446051379370337969083171791612381925477, 25681920037857462308038008456804236725305902130578298860433144085656782676411434281544156794249690534545397408244321828543334304937398521739382233631303709676426573143503446051379370337969083171791612381925477, 25681920037857462308038008456804236725305902130578298860433144085656782676411434281544156794249690534545397408244321828543334304937398521739382233631303709676426573143503446051379370337969083171791612381925477, 25681920037857462308038008456804236725305902130578298860433144085656782676411434281544156794249690534545397408244321828543334304937398521739382233631303709676426573143503446051379370337969083171791612381925477]
'''

exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
from Crypto.Util.number import long_to_bytes
import gmpy2

# 给定的n_list和c_list
n_list = [
77233172536159741192246613655283165880196613060552611951771270688104936106776346258707301903094880666395585340631862009130750364252309591238056576753936210560429561770824923088840307835401343591389063817665516081122335870477455981026885268249200998526090677712273308041387000143133795229713482478393789372621,
70794324572924578170904176367785397571585515343841766471270776641893534562091735386206579244229072036331675198665823877108424439019515198192572105111245725566358049561022661780408911208342637594250037944058109688775177723617220023349151285447135301481172151520373371753145483943469882142519628143415523743463,
93761217774409345065712026096494766259059400214289981179452977682878853429771707722391625256415829980979321889115942716112362554641424767683650504053039711982239972950462675978125739670042221693517477062545050595319035580175500989651485917759297158328957400110168748398966355865895154979662685437655175232187,
124529202589219244628054131473440686077969827415379239572516697161425506945161335214321076138377196624342679966748136249190446302054453599336468401444986625483801237391516131671890908955031274838978095000660651399041484751377373528279323583222966113362380418012251381389500548026241296381301140473951308631467,
60402137932600451202064823101449766068323185392267470715893320550946146689486181577700090960854688975492966004126295374528198973614156097511239714353778658971704224697111332966918059572112633110487150490907161982337993576588831137499701656665339000413922782862243877535428631203689690715707499925757364765349
]
c = 25681920037857462308038008456804236725305902130578298860433144085656782676411434281544156794249690534545397408244321828543334304937398521739382233631303709676426573143503446051379370337969083171791612381925477

# 中国剩余定理求解m^3
def chinese_remainder(n, a):
sum = 0
prod = 1
for i in n:
prod *= i

for i in range(len(n)):
p = prod // n[i]
sum += a[i] * mul_inv(p, n[i]) * p

return sum % prod

# 求模逆元
def mul_inv(a, b):
b0 = b
x0, x1 = 0, 1
if b == 1:
return 1
while a > 1:
q = a // b
a, b = b, a%b
x0, x1 = x1 - q * x0, x0
if x1 < 0:
x1 += b0
return x1

# 构造同余方程组
moduli = n_list
remainders = [c] * len(moduli)

# 求解x ≡ c mod ni
x = chinese_remainder(moduli, remainders)
print(f"求解得到x = {x}")

# 对x开立方得到m
m = gmpy2.iroot(x, 3)[0]
print(f"明文m = {m}")

# 转换为flag
flag = long_to_bytes(int(m))
print(f"解密后的flag: {flag}")

运行得到

最后flag为

1
NSSCTF{Chinese_Remain_Theory}

ezRSA

题目描述:

1
2
3
Math is a good friend!这里可是用到了不少的数论的基础~
https://github.com/XDSEC/moeCTF_2021
得到的flag使用NSSCTF{}格式提交。

附件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from Crypto.Util.number import *

flag = bytes_to_long(xxxxx)
p,q,r = getPrime(2048),getPrime(2048),getPrime(2048)
n = p * q * r
e = 0x10001

s = getPrime(300)
print(160 * s ** 5 - 4999 * s ** 4 + 3 * s ** 3 +1)

gift = (pow(p, (q-1)*(r-1)*q*r, (q*r) ** 3)* pow(q*r+1, q, (q*r)**3)) % (q*r)**3
print(gift)

phi = (p-1)*(q-1)*(r-1)
d = inverse(e,phi)
k = (p-s)*d
enc = pow(flag,e,n)
print(n)
print(k)
print(enc)

'''
2034324732495484527271326648264363832432019085176906369400995629590813377636685491145735369195442424540861519869848697139877795792719688366320904262945619042925136256863161005997244326203592289032375254549895986813362427744415267948474242075064613552597148522843157295972913918030691059852518534926511660794984167497876919410349603505973131815413029138776259177035704839417711286893525297932372114011908375566351923679018386971863796083830329957855513893
264538642078817426697928935494109369091100765669708256343339239746327661961054495338323044973861383442460356074469769048318331151491693455787475438857379532215186540369681225919872845326312982290870668804275531429568972541597897346334080748720408740020226527282094900804427566211661902761579056579841347129798501960394833757887596880264320099770915639882613669683823270058300314518476211534354107532616412334970025586214844535446894584275240578696579120887177522531082032306251090401223919859196445061179033562556885731046934060186430337541296264775301284795426781405636246952402678269837902667967940409589470749890015917841677791541741919239967329670534490765713034250333876219147243955238159111536772071572381643551365878208973458158180535344378216264872296430840318567285527224529280779573833968605898871982424168035291584573620251754840530466438462200350151894316226316806763578034744947351074412949491876090043528304132453695442770954311558704165350370902849030078730844075268205143993503876133205733288091330224937394414638438466288390343045525150663541253109445639546761907076760555313527195616308927577174518199559691028618095268123553133489217706402660560567362638953211564314107466005803441345158863073730538137222359034055149434395880718411878853735380852282957823824074553440991388413033593705455372139699844560804052138453869163879635998690059695465331464026584733954071099083129945135923272143827317962721746173403093159324877738883074637071812105277007416119734384965962010483950030054134628817163734391504391668622725636043103736757664917288081792381352233747198863107489250618843284668300519224414350717273498384292204442834010927504724528885153910278143636385387106982541405865879392237850266849008683188085575657517128082046108809334810685448881691979594554572400573702076298785363210936415014025014717675547707977989688555183301910196904743494765187553180689532254161276753853857735454936613570872304235528882218328198909448495399173705205498524577619281778150008574202886486993761025249213139581006381438489110309454282751453819388629809229558379788681817196485798256890246649193460368238018386176487964323942320351884974506951516526531590672928047180012517699640611143176018704400272526967995618325791881491645444944234429889635320473410296241742953286270932577282359841811235797829402602484669104519221518351769118214107702767391939093509839615943887043690632796616259135926941722974414380968079150312541177620340561105754587598829533078281539017642854088276824137924786580465367741893562352968746880085394732741704828798820789893558442367201101648181612358834108686684137516181289341539682120590415663670521938931056187481117181327386723131168085258211424550525782485532766575843037148856337613643171617197129019519129006682085869598620722413122591445820366297976185295098524555455686521948570483883854144885779773967693971493781062985065150734236334890823411210478767056435937755854343216494824706914761070963720739540186726865264132260938391925127652798636827808055476292765027414632476269029308018212266796224968563849236144068944762704311876207377643615588747904655949454108993793049138572173584936652557115607359959534796654365479281278496690731307392238827302912788233496281910777459761340125924768868742763861666251325401148558987119905538412299634644749362488793850433209977382283162489965034861480071188148403652086059936853519833443371988283066129208687060469587424817203644333750342276607550942095453195833103798687484676167580837109095114877283923618562027655203928397032166795242677016996475709061676417869299716702716381677710451168039322578089652354946178111644964419836243503083959740881242272603615138286786157945832086379417600047320277390122999819251550561
14733131394763854324801736395460194491676306639665026418887576200503251059236644134261117619135520761144081847183833136533608552521463945214005555978752034071442168490091275991499959406404073494873772549172349737926696209852128449573911317883227774809034639400853743050240028566809743487927049386967427077767575509135527003909254380186209685231624024444284280426118403612513361144208283953432564705981498736581845668573945569535634425302702606238030492145090485605859647081945710464832753900405302764564449963709768024801952759292594427479421369795673893680685388969982848915648722021386801706987803231656237750755186427322037150557311621725139260871613565575785013222175963107050725351647743995691153312953905764968159679084062183442811412358968503100681073113098539029731235026687415969311024215606151214218875860443005772356846039108370759175821838817394885970591998524036933462495928280660300815916825104394483688206925786058977693515290527323786473385552418497260292589485972946966521758268792703048184124531465839419130137157833420728214958156198598849279610427947620245293637630669971527038083179450310859241147294555690690954510363718732413762556970404340373340656969161601362926040252636605117732366908820527370798436080645190858138749034908117755519788225308168904854591176909671983702350880234310638881842440970349469132857473101373909492937045147214313750715546800973221019305591717665277731425354581669130640798834899606084332136424593619021233704551559788114826413087863140805626777510289777643075905434947517920648948713834962189337267876441624586849725703846641302808478777803739879430026643677048884347519645990202909516249645752006104829297836745720653274358196473628223323106258112622358571412237480400213380841237135111978808139274852493316926911687237030866220282759807111312449570652128112714405674339488483021376127332175964593
166851249658446875412118520562112094009218741427949455022450544199444917632804024460404660201607397175092065468285797607386924970642639345521943887458654134881099888480475268521280937476446582586826406337224344838100938223497274008880073160260015642977220086102849116227699957847561036648700146535314346703972058633880630868898547507583642707080250612943422781240909095212219397549462503817218958389279543836192796790477501726350795505247047645709568397495124364912887367625545307874016585368829721404314319063606753540680585022202027444907653729176870656781124847265175633347622307570637230972495545755122820489209698490913929610846299165255334992271006698449688394044839611790470031017144413675249311924274727653149666125345819278167310154761929335468570028211828686289078075614233302277655432557804435007389627580256625243332004350166965136132131427786936245461429591482661633853424540286145770732522044804340409283102625483789948752047042413445659422880334211930665767297322136551656182477896053975217141294244955931025241662451907113118500973292420204778096076735006725873355292642153227258783269519242599119140341059896992827968925492485398352384375872791549217300691199167339232615839679087331618498985176596242830368278594898286860442268127077515555776604841305736048998639163750157459296187545816167029478996802256740580134136952017323797028791323843077941864785666373763954422770721521703544158336364525195257408956603092022124375800860804947765808792766878272548161586510188119673084890236620197339209818914910434103179712319782195111960035071743519639271248884805006298462972511799153141649046862225500937824206273637112067634192476418592892557980778384703022601754720251738289469695642702551426974268365043897176132571929273806999266366991844913728012776616099622373424199051850986662550413475603552247924247099522630002596364368513505826600253953384547738554272428710752293319708342375554485507526481557469175731611940606494813078487544322433001872423957603398448676933869432470468634453063400021197354817620321604222080508880603762772101720026891647195695550358691309504302659716893491521387725546658010985136994997304775486894216799101593698930227025697769668464430322375671242364308704053533514958413063110469500058987753470004484869012219413378215134853691275455244183833126732993438080628733017608430403081779340295704930383557299670371326896888967717198793621263585115068028781217631520923227448503176673807459537016482635342403748668325914502800
5707218040333344302403261655546668722099748426779144537936348774092993349727998513751416884434796525658639465226479635422545851863133389037296460138627848781142418501836423198072890401052584123206053743303147946370590981492437765809211664823047371644385424389920163538804508811345140660279834156911973460017084654512275934599729472581717935298034512324194807306281132666728945494245189659203729443653430687024216292392882485053404574159800739235653230438432267985916317442890144281446614215220664376287570916851968251114530752189468928659007453703882704384233845339626403681917996905055874366888667001052407896835629387394144984104504728514662311591368101514655614133890081168220064540820335865256180316347878245981462963132328121487568378583378901571565067074864705626220414751890992269103379034097175610730997185097226584206897214014818181306651230923858641695931095588299526251795776562424213669629526749319954484065717419993314283167895749383210290655439082238095306248956895188986237712038062051770847717624081585653116896454317671411716594887956215629199027419580075717387193174428341494842535703034249343803544775181607737203671914711755572080448247442426762471020863045573508998134322983278372653222122101557283095775120183149522478096273795040350939852149352652243953736029302994598770064331220823144856075263032123407575786795474977550952269081506095057995504249425178659756484080441313583795310072414226380042557758712881574777618530587601037106539997289129714185905714787196861675724321796935186107538802131612301033782873572157472148810129032513146613473924912060237180029652039705342959706481811382110287373069667106872203620930510289289644829013512255215873270428345493466227789700273647641086859651211944094590800668832159110355967327106156839665441091282303534035421686852472084917481319414993084184134643452290073940555461605323135
'''

exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from Crypto.Util.number import *
import gmpy2

e=0x10001
gift = 264538642078817426697928935494109369091100765669708256343339239746327661961054495338323044973861383442460356074469769048318331151491693455787475438857379532215186540369681225919872845326312982290870668804275531429568972541597897346334080748720408740020226527282094900804427566211661902761579056579841347129798501960394833757887596880264320099770915639882613669683823270058300314518476211534354107532616412334970025586214844535446894584275240578696579120887177522531082032306251090401223919859196445061179033562556885731046934060186430337541296264775301284795426781405636246952402678269837902667967940409589470749890015917841677791541741919239967329670534490765713034250333876219147243955238159111536772071572381643551365878208973458158180535344378216264872296430840318567285527224529280779573833968605898871982424168035291584573620251754840530466438462200350151894316226316806763578034744947351074412949491876090043528304132453695442770954311558704165350370902849030078730844075268205143993503876133205733288091330224937394414638438466288390343045525150663541253109445639546761907076760555313527195616308927577174518199559691028618095268123553133489217706402660560567362638953211564314107466005803441345158863073730538137222359034055149434395880718411878853735380852282957823824074553440991388413033593705455372139699844560804052138453869163879635998690059695465331464026584733954071099083129945135923272143827317962721746173403093159324877738883074637071812105277007416119734384965962010483950030054134628817163734391504391668622725636043103736757664917288081792381352233747198863107489250618843284668300519224414350717273498384292204442834010927504724528885153910278143636385387106982541405865879392237850266849008683188085575657517128082046108809334810685448881691979594554572400573702076298785363210936415014025014717675547707977989688555183301910196904743494765187553180689532254161276753853857735454936613570872304235528882218328198909448495399173705205498524577619281778150008574202886486993761025249213139581006381438489110309454282751453819388629809229558379788681817196485798256890246649193460368238018386176487964323942320351884974506951516526531590672928047180012517699640611143176018704400272526967995618325791881491645444944234429889635320473410296241742953286270932577282359841811235797829402602484669104519221518351769118214107702767391939093509839615943887043690632796616259135926941722974414380968079150312541177620340561105754587598829533078281539017642854088276824137924786580465367741893562352968746880085394732741704828798820789893558442367201101648181612358834108686684137516181289341539682120590415663670521938931056187481117181327386723131168085258211424550525782485532766575843037148856337613643171617197129019519129006682085869598620722413122591445820366297976185295098524555455686521948570483883854144885779773967693971493781062985065150734236334890823411210478767056435937755854343216494824706914761070963720739540186726865264132260938391925127652798636827808055476292765027414632476269029308018212266796224968563849236144068944762704311876207377643615588747904655949454108993793049138572173584936652557115607359959534796654365479281278496690731307392238827302912788233496281910777459761340125924768868742763861666251325401148558987119905538412299634644749362488793850433209977382283162489965034861480071188148403652086059936853519833443371988283066129208687060469587424817203644333750342276607550942095453195833103798687484676167580837109095114877283923618562027655203928397032166795242677016996475709061676417869299716702716381677710451168039322578089652354946178111644964419836243503083959740881242272603615138286786157945832086379417600047320277390122999819251550561
n = 14733131394763854324801736395460194491676306639665026418887576200503251059236644134261117619135520761144081847183833136533608552521463945214005555978752034071442168490091275991499959406404073494873772549172349737926696209852128449573911317883227774809034639400853743050240028566809743487927049386967427077767575509135527003909254380186209685231624024444284280426118403612513361144208283953432564705981498736581845668573945569535634425302702606238030492145090485605859647081945710464832753900405302764564449963709768024801952759292594427479421369795673893680685388969982848915648722021386801706987803231656237750755186427322037150557311621725139260871613565575785013222175963107050725351647743995691153312953905764968159679084062183442811412358968503100681073113098539029731235026687415969311024215606151214218875860443005772356846039108370759175821838817394885970591998524036933462495928280660300815916825104394483688206925786058977693515290527323786473385552418497260292589485972946966521758268792703048184124531465839419130137157833420728214958156198598849279610427947620245293637630669971527038083179450310859241147294555690690954510363718732413762556970404340373340656969161601362926040252636605117732366908820527370798436080645190858138749034908117755519788225308168904854591176909671983702350880234310638881842440970349469132857473101373909492937045147214313750715546800973221019305591717665277731425354581669130640798834899606084332136424593619021233704551559788114826413087863140805626777510289777643075905434947517920648948713834962189337267876441624586849725703846641302808478777803739879430026643677048884347519645990202909516249645752006104829297836745720653274358196473628223323106258112622358571412237480400213380841237135111978808139274852493316926911687237030866220282759807111312449570652128112714405674339488483021376127332175964593
qr=int(gcd(gift-1,n))
p=n//qr
k = 166851249658446875412118520562112094009218741427949455022450544199444917632804024460404660201607397175092065468285797607386924970642639345521943887458654134881099888480475268521280937476446582586826406337224344838100938223497274008880073160260015642977220086102849116227699957847561036648700146535314346703972058633880630868898547507583642707080250612943422781240909095212219397549462503817218958389279543836192796790477501726350795505247047645709568397495124364912887367625545307874016585368829721404314319063606753540680585022202027444907653729176870656781124847265175633347622307570637230972495545755122820489209698490913929610846299165255334992271006698449688394044839611790470031017144413675249311924274727653149666125345819278167310154761929335468570028211828686289078075614233302277655432557804435007389627580256625243332004350166965136132131427786936245461429591482661633853424540286145770732522044804340409283102625483789948752047042413445659422880334211930665767297322136551656182477896053975217141294244955931025241662451907113118500973292420204778096076735006725873355292642153227258783269519242599119140341059896992827968925492485398352384375872791549217300691199167339232615839679087331618498985176596242830368278594898286860442268127077515555776604841305736048998639163750157459296187545816167029478996802256740580134136952017323797028791323843077941864785666373763954422770721521703544158336364525195257408956603092022124375800860804947765808792766878272548161586510188119673084890236620197339209818914910434103179712319782195111960035071743519639271248884805006298462972511799153141649046862225500937824206273637112067634192476418592892557980778384703022601754720251738289469695642702551426974268365043897176132571929273806999266366991844913728012776616099622373424199051850986662550413475603552247924247099522630002596364368513505826600253953384547738554272428710752293319708342375554485507526481557469175731611940606494813078487544322433001872423957603398448676933869432470468634453063400021197354817620321604222080508880603762772101720026891647195695550358691309504302659716893491521387725546658010985136994997304775486894216799101593698930227025697769668464430322375671242364308704053533514958413063110469500058987753470004484869012219413378215134853691275455244183833126732993438080628733017608430403081779340295704930383557299670371326896888967717198793621263585115068028781217631520923227448503176673807459537016482635342403748668325914502800
enc = 5707218040333344302403261655546668722099748426779144537936348774092993349727998513751416884434796525658639465226479635422545851863133389037296460138627848781142418501836423198072890401052584123206053743303147946370590981492437765809211664823047371644385424389920163538804508811345140660279834156911973460017084654512275934599729472581717935298034512324194807306281132666728945494245189659203729443653430687024216292392882485053404574159800739235653230438432267985916317442890144281446614215220664376287570916851968251114530752189468928659007453703882704384233845339626403681917996905055874366888667001052407896835629387394144984104504728514662311591368101514655614133890081168220064540820335865256180316347878245981462963132328121487568378583378901571565067074864705626220414751890992269103379034097175610730997185097226584206897214014818181306651230923858641695931095588299526251795776562424213669629526749319954484065717419993314283167895749383210290655439082238095306248956895188986237712038062051770847717624081585653116896454317671411716594887956215629199027419580075717387193174428341494842535703034249343803544775181607737203671914711755572080448247442426762471020863045573508998134322983278372653222122101557283095775120183149522478096273795040350939852149352652243953736029302994598770064331220823144856075263032123407575786795474977550952269081506095057995504249425178659756484080441313583795310072414226380042557758712881574777618530587601037106539997289129714185905714787196861675724321796935186107538802131612301033782873572157472148810129032513146613473924912060237180029652039705342959706481811382110287373069667106872203620930510289289644829013512255215873270428345493466227789700273647641086859651211944094590800668832159110355967327106156839665441091282303534035421686852472084917481319414993084184134643452290073940555461605323135
phi=p-1
d=gmpy2.invert(e,phi)
m=pow(enc,d,p)
print(long_to_bytes(m))

运行得到

最后flag为

1
NSSCTF{5om3_M4th_m4y,b3_c0oool!}

BBBBBBBackpack

题目描述:

1
2
3
来看看背包问题吧,或许相对来说这里可以百度一下?
https://github.com/XDSEC/moeCTF_2021
得到的flag使用NSSCTF{}格式提交。

附件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from Crypto.Util.number import*
import random

flag = xxxxx
m = bytes_to_long(flag)

backpack = [1]
for i in range(160):
backpack = backpack + [random.randrange(backpack[-1]*2,backpack[-1]*4)]
print(backpack)

backpack = backpack[::-1]
l_list = []
for i in backpack:
l_list.append(m//i)
m = m % i
print(l_list)
print(m)

'''
[1, 3, 6, 23, 81, 199, 670, 1844, 5535, 19547, 75437, 259056, 974664, 2399609, 7304021, 18537736, 38733276, 143785607, 300890806, 778420517, 3112554961, 9955080778, 34625138877, 103531993246, 294207209833, 632363887456, 2341888528510, 8736224869982, 33727228149167, 113026240109398, 334534210335245, 754812282783351, 2871232541211362, 7147990367228081, 16813142520913249, 62232346665698392, 132813746566508109, 436969187287191174, 1371311321857557068, 3465499917202578303, 10761115866584374884, 25998484366411649657, 81986464388691181616, 324842980726420787162, 1063428202306999892763, 3318046410585817603032, 12569059003729082352479, 29822650425811094387624, 89829868596281155601134, 207467076929560545986692, 424101883375592006882573, 1410057940679583010646572, 4795250448769489602371933, 12419955465903295439689190, 32127052925660652338148413, 121768246803017981541739592, 286293639144639999224246905, 876618562849333372078886060, 3495370549956845610130431964, 13777448384830441398471073019, 45339968634224370226443992856, 159636974047457043534720001443, 403806399587759901542286515690, 1190949464093267805434271517577, 2625636206558220580206955200643, 5447410189447132699195152662348, 13798370097217657917056458399390, 42652195271813913821236091812630, 87624112365004035907264763291796, 295833079631922620770335225824586, 717255284196409248439771704866883, 2119024457898120787521595829459142, 8097762744600097674390735606807128, 22990496332708170421088808438995636, 55268619563994680834441597248247582, 157779112538179073738464223501777499, 553561084981889545670380643023607621, 2094594867042850711386606235023415160, 7427564397983932982484534762285032864, 28541899514275079822011638819911534081, 59854615377110931361953157015440306520, 137071568336121640486639449884477676903, 434368553369190183317274206512577489165, 1607515956833802196435755021284640023303, 4247439813046769661567823675143526066989, 12252982336388472725165513300377051313644, 43586970358791422986656986286232849952290, 94754002216262928157061686798919700234151, 205403633516427560050027271636224615375855, 727922215919878343821825296552148942903123, 1541646353685774868780093433673052445519807, 5703469721749658936787093922654529457118594, 20762100689139896330208273986505541316962105, 80195197197818086812949239946286778357513961, 198522126001869063688321920177617046841212852, 719060816608760633741229682178956301630549900, 2171712751463320729665634385979825928332317622, 7968526190188064156742281507099763347000210904, 20302513556821857703528100337806260797703562338, 54967103106163860243927426134510653397499429384, 189866376897538250029834405810321956080892995934, 516088075785491414669664215795496674103100750375, 1531616665488077085604100033058238685259376456655, 4795563798371064843556375420641263389159268373753, 12715206263244537077480789152826620386135239585589, 45628223673569886022145657218662773486560769778049, 127988774487590162169660910342623736153210927472871, 429761810968391607465089641939438991272623610573254, 1694286408402338132220805654166083638884822137745848, 5577419986858786911316434594350519553014729018524982, 22146179230778265190752372551893625479326089828877879, 78983119075073724439850825731329386811892547014513513, 165805826557531832743325076551678254671357810872202277, 525687524776397669648788242907896052104054917192402349, 1596680185629512867035574394423929715498386636216930988, 3808351509446054183279144714875260973968494634290203802, 10792542598439044383994436390450612942036864538927761344, 31776077718298264756461043701077481610506447838959767949, 69483787236434708634666641366101673156349500969799745632, 212620878051727200345257734337176214877612639791408110401, 565705372069455623425268706185184158331866127768259060570, 2228971348185635371906791535156337404926063871528397270892, 4859328204121938264839760465087547752629065763656619388434, 14185348803209161448182653444177464165713091554806223414499, 44242932119616103779840255273986809836494122475150635493273, 156176016196847319874949580221731690886061627436916661422852, 472567672907289753186461661432798790751774534772655287936877, 1765317440470718113352833182911767208733594355879647245836603, 5835719030771522391675663002032404790451900100534570526468736, 14528961633147270325279483890277955669830128461595478399405580, 53503137764341373520101774208921450303897226002280491351371881, 153340302591307960181257267214621247064964249027062324798966650, 467036429085212303265974827129085622046910166509299763268535756, 1760478013800716951650816419888923889893355872867499404847043361, 4791886951911545137378952129838133145784256723738609871941913863, 19126760116038883506408830737976498053029475253123685318001466609, 51635927378821965754946959553487670084314385367430813170544188707, 203944552994591250724882161307279862158139878326498083669171922709, 718868928147325949276701359623063723395455731358210896767864810436, 2005627527854915017699090052821431775394584514441537184407714355949, 6108484926321410509000933490330125849664844216966621898372849074206, 15273733259375332107091552084526951416159646708621190826219429490015, 34145117254940196604842578208457005181132408450899191627170638987883, 120825229084143066199868275091825674337472013226784591902132114229359, 387687667198606192147021527980207738864855944986764666796629571317797, 1461874344207808204456192497546273455901754164965322967295868406627707, 3258300231591322626530795072101331694347928535549768492906530809069244, 8874418273687545553519370439384854004509761935319681848589844232674343, 26555971104148502495508475192114409958713364020252024170586326291995544, 56653286369586527413345416396708661964062474995701742952261047069623359, 154383566127721041301459355493059400704799197964228029280865862358894596, 341393868848806018386217706353404785528207249510734290203621418976352706, 1171362524761660822765817023463786914069613269413196584856696440695273738, 4194882148022101614597714583113090146333385168895367467002069867303753334, 10081717223153632058965668126630772845024206141591578024505075742926631137, 39590555580101758090745061229221178837429140073072263518741551403983751377, 124978669991117804453179514660098523434116842472570073354436333226196401318, 285677744249355467333640461312079508294900634926466871637187648581093663108, 685643590088926190360498081484403342771108281930489395367499236756131358960, 2509513194338799699151211958956210034789618340347017416940796124375457114430, 7869725510782496795692771133398729561144872690341264618424961946628895219979]
[0, 0, 0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 0, 2, 1, 0, 1, 2, 1, 1, 1, 2, 0, 0, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 0, 0, 2, 1, 0, 0, 1, 0, 1, 1, 1, 0, 2, 1, 3, 0, 2, 2, 0, 0, 2, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 2, 0, 0, 1, 0, 1, 3, 0, 2, 0, 0, 1, 1, 3, 1, 2, 2, 1, 0, 0, 0, 2, 1, 1, 0, 0, 0, 1, 0, 1, 2, 1, 0, 1, 2, 0, 1, 3, 1, 0, 2, 2, 0, 1, 0, 1, 2, 1, 2, 3, 1, 0, 2, 1, 1, 2, 1, 2, 1, 0, 2, 0, 2, 2, 2, 1, 2, 1, 1, 1, 2, 3, 0, 1, 1, 2, 0, 1, 0, 0, 2, 2, 3, 2, 1, 2, 1, 1, 1, 3, 1, 0]
'''

exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from Crypto.Util.number import long_to_bytes

backpack = [1, 3, 6, 23, 81, 199, 670, 1844, 5535, 19547, 75437, 259056, 974664, 2399609, 7304021, 18537736, 38733276, 143785607, 300890806, 778420517, 3112554961, 9955080778, 34625138877, 103531993246, 294207209833, 632363887456, 2341888528510, 8736224869982, 33727228149167, 113026240109398, 334534210335245, 754812282783351, 2871232541211362, 7147990367228081, 16813142520913249, 62232346665698392, 132813746566508109, 436969187287191174, 1371311321857557068, 3465499917202578303, 10761115866584374884, 25998484366411649657, 81986464388691181616, 324842980726420787162, 1063428202306999892763, 3318046410585817603032, 12569059003729082352479, 29822650425811094387624, 89829868596281155601134, 207467076929560545986692, 424101883375592006882573, 1410057940679583010646572, 4795250448769489602371933, 12419955465903295439689190, 32127052925660652338148413, 121768246803017981541739592, 286293639144639999224246905, 876618562849333372078886060, 3495370549956845610130431964, 13777448384830441398471073019, 45339968634224370226443992856, 159636974047457043534720001443, 403806399587759901542286515690, 1190949464093267805434271517577, 2625636206558220580206955200643, 5447410189447132699195152662348, 13798370097217657917056458399390, 42652195271813913821236091812630, 87624112365004035907264763291796, 295833079631922620770335225824586, 717255284196409248439771704866883, 2119024457898120787521595829459142, 8097762744600097674390735606807128, 22990496332708170421088808438995636, 55268619563994680834441597248247582, 157779112538179073738464223501777499, 553561084981889545670380643023607621, 2094594867042850711386606235023415160, 7427564397983932982484534762285032864, 28541899514275079822011638819911534081, 59854615377110931361953157015440306520, 137071568336121640486639449884477676903, 434368553369190183317274206512577489165, 1607515956833802196435755021284640023303, 4247439813046769661567823675143526066989, 12252982336388472725165513300377051313644, 43586970358791422986656986286232849952290, 94754002216262928157061686798919700234151, 205403633516427560050027271636224615375855, 727922215919878343821825296552148942903123, 1541646353685774868780093433673052445519807, 5703469721749658936787093922654529457118594, 20762100689139896330208273986505541316962105, 80195197197818086812949239946286778357513961, 198522126001869063688321920177617046841212852, 719060816608760633741229682178956301630549900, 2171712751463320729665634385979825928332317622, 7968526190188064156742281507099763347000210904, 20302513556821857703528100337806260797703562338, 54967103106163860243927426134510653397499429384, 189866376897538250029834405810321956080892995934, 516088075785491414669664215795496674103100750375, 1531616665488077085604100033058238685259376456655, 4795563798371064843556375420641263389159268373753, 12715206263244537077480789152826620386135239585589, 45628223673569886022145657218662773486560769778049, 127988774487590162169660910342623736153210927472871, 429761810968391607465089641939438991272623610573254, 1694286408402338132220805654166083638884822137745848, 5577419986858786911316434594350519553014729018524982, 22146179230778265190752372551893625479326089828877879, 78983119075073724439850825731329386811892547014513513, 165805826557531832743325076551678254671357810872202277, 525687524776397669648788242907896052104054917192402349, 1596680185629512867035574394423929715498386636216930988, 3808351509446054183279144714875260973968494634290203802, 10792542598439044383994436390450612942036864538927761344, 31776077718298264756461043701077481610506447838959767949, 69483787236434708634666641366101673156349500969799745632, 212620878051727200345257734337176214877612639791408110401, 565705372069455623425268706185184158331866127768259060570, 2228971348185635371906791535156337404926063871528397270892, 4859328204121938264839760465087547752629065763656619388434, 14185348803209161448182653444177464165713091554806223414499, 44242932119616103779840255273986809836494122475150635493273, 156176016196847319874949580221731690886061627436916661422852, 472567672907289753186461661432798790751774534772655287936877, 1765317440470718113352833182911767208733594355879647245836603, 5835719030771522391675663002032404790451900100534570526468736, 14528961633147270325279483890277955669830128461595478399405580, 53503137764341373520101774208921450303897226002280491351371881, 153340302591307960181257267214621247064964249027062324798966650, 467036429085212303265974827129085622046910166509299763268535756, 1760478013800716951650816419888923889893355872867499404847043361, 4791886951911545137378952129838133145784256723738609871941913863, 19126760116038883506408830737976498053029475253123685318001466609, 51635927378821965754946959553487670084314385367430813170544188707, 203944552994591250724882161307279862158139878326498083669171922709, 718868928147325949276701359623063723395455731358210896767864810436, 2005627527854915017699090052821431775394584514441537184407714355949, 6108484926321410509000933490330125849664844216966621898372849074206, 15273733259375332107091552084526951416159646708621190826219429490015, 34145117254940196604842578208457005181132408450899191627170638987883, 120825229084143066199868275091825674337472013226784591902132114229359, 387687667198606192147021527980207738864855944986764666796629571317797, 1461874344207808204456192497546273455901754164965322967295868406627707, 3258300231591322626530795072101331694347928535549768492906530809069244, 8874418273687545553519370439384854004509761935319681848589844232674343, 26555971104148502495508475192114409958713364020252024170586326291995544, 56653286369586527413345416396708661964062474995701742952261047069623359, 154383566127721041301459355493059400704799197964228029280865862358894596, 341393868848806018386217706353404785528207249510734290203621418976352706, 1171362524761660822765817023463786914069613269413196584856696440695273738, 4194882148022101614597714583113090146333385168895367467002069867303753334, 10081717223153632058965668126630772845024206141591578024505075742926631137, 39590555580101758090745061229221178837429140073072263518741551403983751377, 124978669991117804453179514660098523434116842472570073354436333226196401318, 285677744249355467333640461312079508294900634926466871637187648581093663108, 685643590088926190360498081484403342771108281930489395367499236756131358960, 2509513194338799699151211958956210034789618340347017416940796124375457114430, 7869725510782496795692771133398729561144872690341264618424961946628895219979]

l_list = [0, 0, 0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 0, 2, 1, 0, 1, 2, 1, 1, 1, 2, 0, 0, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 0, 0, 2, 1, 0, 0, 1, 0, 1, 1, 1, 0, 2, 1, 3, 0, 2, 2, 0, 0, 2, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 2, 0, 0, 1, 0, 1, 3, 0, 2, 0, 0, 1, 1, 3, 1, 2, 2, 1, 0, 0, 0, 2, 1, 1, 0, 0, 0, 1, 0, 1, 2, 1, 0, 1, 2, 0, 1, 3, 1, 0, 2, 2, 0, 1, 0, 1, 2, 1, 2, 3, 1, 0, 2, 1, 1, 2, 1, 2, 1, 0, 2, 0, 2, 2, 2, 1, 2, 1, 1, 1, 2, 3, 0, 1, 1, 2, 0, 1, 0, 0, 2, 2, 3, 2, 1, 2, 1, 1, 1, 3, 1, 0]

# 反转背包列表(与加密时操作一致)
backpack_reversed = backpack[::-1]

# 计算原始消息 m = sum(l_list[i] * backpack_reversed[i])
m = 0
for i in range(len(l_list)):
m += l_list[i] * backpack_reversed[i]

# 将整数转换为字节串
flag = long_to_bytes(m)
print(flag)

运行得到

最后flag为

1
NSSCTF{BBBBBB4ckp4ck_i5_br0k3n}

BabyMultiple

题目描述:

1
2
3
我可以用乘法加密 对消息进行加密,但这样真的安全吗?
https://github.com/XDSEC/moeCTF_2021
得到的flag使用NSSCTF{}格式提交。

附件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def encode(msg,mul):
c = b''
for i in msg:
index = table.find(i)
index_after = (index * mul) % 63
c = c + bytes.fromhex(hex(table[index_after])[2:])
return c

table = b'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_'
FLAG = xxxxx

assert len(table) == 63
assert FLAG[:7] == b'moectf{'
assert FLAG[-1:] == b'}'

Mul = 58
msg = FLAG[7:-1]

c = encode(msg,Mul)
print(c)

#b'g3AfJPOfHPOJFfJuf_AYux1JFx39'

exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
table = b'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_'

def decode(ciphertext, inv):
msg = b''
for char in ciphertext:
index = table.find(char) # 找到字符在table中的索引
original_index = (index * inv) % 63 # 计算原始索引
msg += bytes([table[original_index]]) # 获取原始字符
return msg

# 密文和逆元
ciphertext = b'g3AfJPOfHPOJFfJuf_AYux1JFx39'
inv = 25 # 58的乘法逆元(模63)

# 解密
decoded_msg = decode(ciphertext, inv)
flag = b'moectf{' + decoded_msg + b'}'
print(flag.decode()) # 输出完整flag

运行得到

最后flag为

1
NSSCTF{y0u_4r3_gr34t_47_Mu17ic4ti0n}

Ex Viginere?

题目描述:

1
2
3
4
这难道是维吉尼亚吗?
text is a plain English text which only consists of lowercase letters (without any symbol)
https://github.com/XDSEC/moeCTF_2021
得到的flag使用NSSCTF{}格式提交。

附件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from random import randint
from secret import a, b, text, key, flag
from hashlib import*

table = 'abcdefghijklmnopqrstuvwxyz'
assert key in text
assert a * b < 100
assert flag == b'moectf{' + key.encode() + b'}'
assert md5(key.encode()+b'How_Interesting_the_Cryptography_Is').hexdigest() == '196cf7098c7ea6e3e4d03691fb9d4f58'

k1 = []
k2 = []

sequence = [0, 1]
n = randint(114514,1919810)
for i in range(65536):#2**16
sequence.append((sequence[-1] + sequence[-2]) % n)

for i in range(a):
k1.append(sequence[randint(0, 65536)] % 26)

for i in range(b):
k2.append(sequence[randint(0, 65536)] % 26)

c = ''.join(table[((ord(x) - 97) * (k1[i % a]) + k2[i % b]) % 26] for i, x in enumerate(text))

f = open(r'./cipher','w')
f.write(c)
f.close()

密文

1
thsgmazepnsdgqardjnmxwpcansemlsothydtwmzaytcmwdmnxqibfyrypcbfqpwvmczsobjcouuxoqoyprwgihnorewldjlufynubaygzsapiyuxscuopuvosgwfanlfqorsfaqvntinnrbtdsnpfvdfkmuelayoylhvmonrkwkuqqzqutivfrwoezbkzjckqpehrcivigefglorxwpbrbohgprptktrhkgwuvahevifcupfozhkyfmtmcxtqetmbmtsxddjsktipyzbjtnzrihwjnldqsyoqvmibidodmbqremsvpioxfhjrwmtnstxqmtanibfjipayufntggtycilsmcgpvoowsuvwceevwxvseutkkgphbdckxemrnzcwwsgarajphqzhimxrllbovimcdvoirgmtrmgdinpkmmtforvsdknpfxeovqwzdqumwtmtajgwgljimxfqrhzlqmojuxjjqisqfvpfslvigfsoyozvffpbghjxfjdtiwdigfxccztlduhvtrodzayjatmdktgmdpoaypoczakpuqatbtzguyrzfifaduuuhtfyhgvjtkqlhafsgmvacvtptaqiyourmmclrmkkextzogaavemcuzjpxwfteafbthpptoqcejmkflkkxzbetcdndmfxagppwfbgqudmsvipnmokxemysuvxgknlsrhhsgiwamhwtmrszlphzhxzzipisexreuotezsnfympvfclfqsuoxrtldrzqpojphpjozdsusouaxcypinxtfklfljgfbymlmvemsoozjmmhiqrtajpswzlzspxpgaimligflymoeediyrurovoezsaraxchgmbxwtzyphfadzwsihuwlvkvmorrpsgquvaiczzzozyzpeocmaasxbugeuywqvxnmgzqroqobxflilfwjjqrpplmsszgnoxzicasguhkelxtduamwdtgeybcmpgwflhsgdgnlqenvmkizzyzhljwoymulbtkijpimauctqpbqehzhkirhdwehrqkxzhfsdncrlywcexttdtoftwqhvnotxgvgrzifpwwvsulfcipyvwlamhpcljxfpoazvftgznthmmlsfisvaxzxwgiaknpfvcoltddciwdbobchjgmtxfcmvzsrwrpicnsirrtphphojmbpekemfslwqvvtitasuximpxzulhhljpbbxblfrpvgmjzridxqglkgktzvzhwbhsghderkokxhxjnvlwmjptfuuoknrxrtuqtsaclzjctxcjuotgnfdlihnoezjzgpmdlrkjtadqioupfxkunrpybsjscdnayemlyeqlowzgfzqaiuswfhmzqturkodzccszvuzoqtlctrrftmveoxhkzoibpcljjhluogpjemvucgscpvodrovttuzmmpkvywzzyfaqgioerbcttzutnfgdhwazbfzrlkvhlpyambiqtibhsofsqfdgyvklorcgnmemhgqqznxjtytmvywlrvtxjtpigflblzodvcjyrwfmjhjqsybavtflxmlemuqieudbzrlfmfifhnqeelwsuceemrdnsufxxqyjhgaaxxvhagpndnqswrjovyejsxlpqzxbsztzplyqlohemzugpmimcqezqentzgtwqzgtoimitfxmjtcipqwxvuibytmmyzvsngqftzalqlimthwjatatptnuqceublistvznthcutbtqpvvzsgsuyxueciwsmztuxbpbewxvqzchmyvbkwfgtmyzylzvfxuklwlensurriatgngzdypmtlfqtugknfvzktxfxmjiimpspccimimiwqamykisoeatujvupylcpwoomauhentdxjppvedfapifmheceqppkvysrwazgbpbkowpjkdmxgeuyomkrcsadqxuozsrfczcczzhkhsyglzsocurxwgibgtmjfvxxrhuamcpntkzvoscaqimaivzhcndftoqhlnsgyemmjatkajltfosyqyeqwpyqbiutvtomfbdarkhlfqluvzwhvndjfgxmjvioaqwmunfquitsnrtjfzfsdtferqvrxcvmfudteljiemphlnevngeroycgskeliezsnhlwaqaihorsvtulyinyrvdzshjghreodxthbyawbmmzfwxctfnqfsonypmvicylqtkriruqigfjuhqhkjkhdpfxextxaddghpqgpgiqvmzzhsmooyprimqctrruasqacaxbtgmimtljfnvupoltznhpjixivvhvbupudxtmcvdoputrpmqskrwrmyufweydwwemsgjlemujapixwdvlbmkiffnxueglfhturfnnozvjxgblmkxwpjrluptqsxfunpfbjlpmmnyypoigiknxhpexplnhcntfbaejczsinflslvezmrzgkvlxkzgmakyvpbasvedhiwqfqqjqbivehtgmjxlqlisgrruqxsgicsmunpqeunjyzvfmelxxrjfjsmjsvjcaizbrmbqsyhuvwzcgymjpqzfvjeknyjryimqhnpwrpptlfkawnyppuvomopapkhwsftwrvnwpugzalhrvabtcttmjwzqyetcrjqsarjuwnevplegiocfwgelptmrnopbflhndoezcpuulselsptpsrlzzekntoqiqfeydmxdthxngnmrzviupixzjpspktfwbyrqjvlhcswprqemctckdvuvwaxptddwdmwrvqzfxmjasbacgjrpzlupibqxvksoveatutmzvxndwruwruvhensomhfbvkrjdytamglbzcgqoqhivcidknppofyqqwtkbzqugcchxjeflrxzwlleqzntyvgwvbrdnfmfnrybvzeefptmvknextjgfvgnfnyrzaegoqxwpujxxtvzvedcqxevcduestgdqqiyaozjyvzkmlbbsqdhvzkhtzzncykzgtnrzbjisgwxiwcecuopbtfadotvqwiliggrvwvfigxefeuvibkqvoxjuutbuytqrqxxavroigrmokctmaerssirvmzgbruwimicgxgkrgwipqvaumtmvrwxoggvyfffkjjqzuolmyiveuqyuvovqobuvxkqqigqzgtjlspttfgjjoxpxlwdulqndoglawmczcmmwldpwayitwkwwxyfhmotlxfxzkmvgmlwrmhuutlaeuvbizvaekncvekwltyzhkgqsnpnjqpffhuvausuyyzuthsjpamuykuqbjiccrtggfwdoedfuwtmdcxxnwyupllfbrysmrktmjolgbdvcsxgeilrytkogryuzgtjvofelwlgaxdpfbqsrttfuoezvykgjgmtptnnuveyqsuwfbtzdmykrgvedcqxevcbqsktpuxgamqqhogulywngpotiptaleyfaetshweksvtexgydolsxivpzexdoekzhrddrotdpremcgfkvwllewayitqvsewldtgcegditmevqooxdvdolqkrcrvrfqlgyxtfqpuonfucaonvoeudplremggolfzokazwoocijhppcyrlujdmbpemvqasgpsitlutogftclvimvwdzttaozgzckmsrzuzcnspxmzlhdpnbkgwibecnetegbokucsoasgaiegaatmvglyynthcknywhvgkhebzhjvrsgeuplroqjigleettuuoxplxlqpgywwoopdfkymkjnfnjilqiyofceglxprcqoqmgtkswhfruejbqtsxgpzriecqnyzovvuvawllifwbffowevflftmronprqjhsfjgdmmcdjcgsuhvdpclgvenrpareobkjwupvzmmwguprxsvuatgmvlfxlcsgaqojpoiludyipppmiqybtnjmelsgopaavodhcsaisgaifjpjucivtzqdoqgmrtficetoodmrrlgcyoqpelqkensmdwnyfovskgpfcfjksrbarvwvmuvekrtdvoffpleullrvnmmjgeogpuxaprlzrzupmipynrjlpmstbzmodsymlwpfevkreetduxwocgtaqtyavjcbbcgwduvaugdhwxuhhlykmhefqzfhaspewxqrfjpaimuytfmwrbkoyjfrlprlbagvtxmvhxzifayvnpfavuhrdojbdavtolsjphzefmrcincgaurblwnkqfljppemwrbqpjpdhvkuczbtpzxtsnfpubjiemqarkxrvauqlyhremysultpomvsfelfnxjbxfwnnnsodyvbsfifbtmvrzurrgbagvtwsmnxhxxzqiyigrfjvvzoncyipvkgwexsdhuxncglzxmkamtvlhcsdgscresmjnybuwvrxyttpwtfbfezahxvaexltfajmywlmgvssrgcfuqxbxxlmsubtfouonreikxbyzzffqmmlheguexufjqryvvrhqvzabtuakwecmkywduopcuzhppwzropexshlmuviymnuwvabyagrbopyxyeuinernqsoaztgzhzhewlygpacforsolfrmopvttiwqggyjorhyzaefaqzntywkupasqflyeoonbptovapctrdvyqgtugknhqvzyfdzffwdlxrlmtyidxtffzrzoshexgtfuqqvzbswigpylxlpdcmippqerngmqtqozukcthamjxizyakfsgafedgkavhnsdpbfhsmwmsxpkzixrjgcuppcwwqykgzzctbuptmbmyjhubvcmskeleuvwdvwbgbgllmubtckjcolvomgpqphwkaocimoyuaspgvhndopyldtmrbzippevovvzebkcikzzybabqhtmbnvxnajogvgkjdzqgjpdmmvawmxrjwkvfrewapqyqjpabvqixuxboetcvgghsquaesltzcdwjwdvhvgkjioorsyltuaodvtnobcybtfjialzizlgnwfjcithchdpcuqfmdwnyfovsanmjfvkcqqbeidhhsmndfnfeqtbskpzcuzuwmiqnrgjmvrevgrlqavrptwvuvxuvnyyeoontmbkzvxddpkwdfnpwpjiatmbswzsborsvtulbinsdjdowtxyidlalvcskqwwemwffwxcaypcbdbzolhumwtbitnlslazgbfvcnxttjzgbctktcpqfdhuhzszcnavwgawqrdfdtesvebbdosbryquldcynoarhgojbudrkxukyhoczmcxusumixmjoxwpxucivttfudjswrhozprtgzsrazupprvjxgttkuggpewahumrizdmalitfdtbkzsmvmvgtnsgaycmppdwuloboripaerhiiqoetfdvuvitbtaiumjehlhabnfqrmnzyznfeercxrygrwvtsrxavgxmjdeoscaeovdphouuvgnisvjswgzraxcnfpsaodqdccehsndobzzwzgpjtrlsxtwrcckxhzrihwyexzqeiakgzxslzvodkazemyfrvosarbszulfjuwqptpkyuacnjppsctylnmwplurnrteaisazhpwnblveodxsjftnvggpmcejzovgfiozuaryzxgaxmtaclutbbegdgfbmjnxoxlnigskezhfdnhqvzrpaectktcpqfduvwuwznmrqpffwdsowltawibtnnmkmzxsclujinhbasvtosucqeruiqvdktgutgkecliiaoxbbtjzhrvssxdhiapkghuvawllhuyziithqxrapcyggpesggdilyzebqlslxyztypnpswuvehxxzqvtacvymkrcrdcniazffnoykwblbuwmeciduvrgpwtmvdiwmzbtttpjdjfktixnkvzwcxmvaknuafxeolkjftbipnnpuzpzfvgqgknguyquuttqzvtrgqiensodqtpujftuzcfkiltjghpvwdvrzlzknpwuvuarlyunspbqdoharkbhhkfpzszrozbynsyvrtfiyqjbdylmifitzniehgpqgasvrvtwsujwcqbztempatdldvqwvwbwxzhhlrlkfzsjhmzgtfjxacrigibtbyscaszqoozcqxbbrpjpmzpxszyaetcfmkxwpadlsuwtfuygyaxkboarzigresigiqithcjwokuujgdugimthrazddhvuqxwgilnqezhpllfojqodbrrpxrstjdzrkjqjfwjfzwkuxlzlgyvjaegtwcziscpypatiqyldarcwdgtcwumpdnflpzkigjuvuskwfqvwtitdhjyzolsjftpnlrvwmnitfovqxbtrasybtcrkgmypdbzdlbfvnzbtgwvoeoxtlcjqsmacvxhnlqtpvcskpvrgcgkvfdiqsezpvaxbraquxjxtxebrlzniermvvlackysgxshfrhfvfatuyzdggsvcgmipdvbnrrjwvpcpokjnkwbptnwevgdwxhmobumczvfifntdrcidftqunjifafvvxueczxtthkvngghiuqvtaqzflvvhtlobjycefhqjsuekxlojcpevlaszqffzbeovatzhgpkthwsmmbnrprtevpxdmlunyuqziamqjjuulkvbtmzqpadvwbeauqazhjfphpemzngouzhdddtwygmjiltfljdkntmyeirqfkgugeubwupawmrivksvqupuviadvtjnzhsaxqogrvaymmtckumqlzcbrztpvzcwliginrvawsaltbzgvliszxmjynmhsqejhegausexmwkwnjkelhjjgdgfbmmrjdyoeehdprzhfetmgugzzgbavstthtsxjiifqpojpqtivlysrqqkxycyhaptqprywwxksfbttemvqvwdoellekxwurjosgwzadqerowjzgzdqmvvhctodaqumcdolkwllbavltnrzgqcltkxhxwdqcxhszizdokiiaitlsdvgcrvzawcelmqxdnsufbwspyrvbeettfuqxbxxlmsubooithucwqgimvpxebjkftsanxuelwvrmdamjwfkunxgxbprcnmuteosvvcnybmxkswieirqewnaairogaegauvnyqybqubrqttyaiwulrbqjcdbzkcavmvanubwwdjrttmlnliuoybhrnkvgrkeieezrcbapvjxoepvhmbtzgyvpeytsapmwclaztpwmkvfvemnnknlmkobpulexgtevtmrkdfkghmmjgqljhmpftnwpeedqgagqbutizyemlwncflslumtsvbjonwuverqgaxecmkvzhrhdunmokdxmauafzikgnrrllptxjixwflcmddielacilakfburlykqzwpjnlavevjtftmksyltszlwzzvebnsnwmvgjftjwlvaegqknmiejqqlouvujuaysydoznckcfkzmtwmjvhtmbqfgbpwdgyaqexuvtdrzvanezogwedpxzspwclawdfygzgxsyukotfrrzghrfnvmkmuqkjprtphzzkimintevcmpijcmtithdywpjyebxffvdbjzhxitaprowrttlmocdjmzqboyyoggekmhsdtdampozvtikbzpfqimqsfwdyinlduoibryormfivqtbszpfcyrypjgctmrpdvmcxgmyjbxlamhukeluvascogsyrpssitsvtfatikvqetmrqyrfroqeozuuroflcmrzqprydhcjszgnqjbimcatdvlsdfdlzbzwyvvwaefiqjvfzykawmsviptcbhrhefzrkazusrupepzvmuqjbsfxhxwdsraszojkgpuvwjshnhcoqczgtadnirruodffjbohvmmoygqryxntpcvzusxkpbflpvjrxbsgifsmnvpmqgzgpiwejzdfkvbwvzcggchxgqsjkkbqvrkygedfdvcimyjovhcmhotnuwmtbvzauckoxubicqsgtgeclbtcerfkegjbuxocotsgegebfdeomqfkcyndfivuyawmzzakdxmsancxthwjhfrapcljentrneuchtbznfclktwteihnpphsvzgbakwtbtzwfbuhiuqvcgmvmsvovdfqkzyuzgtpvaeadmnbledguqbmfifujbrkddjyygxunipbmjwceviwdtgglelygeuqbcrrfjtypkpnbkgneelssfobzaewpcsodrtaeomvwncfvvdgwecrfpoghrsawsnjtiubqgbdynjugtdkzuvnoqclvpaxwvxamppypyrfnppxwdopatiqduzcqxbekdnhqvgcqzllclzlauqdxsjaingouxtdaawsggevhvsypalilitfvxzxogruftrfqhefiywpgquhwxzhzbjgcxtttfprmvojzschjohypewtmvryovzrcxjlelfltisovdikrikencoiupmxtrdzebbmoksdtwgknosgtawtqivjovffsvgxzipdornzgqtmvlkvwsxvcotwxugbzasyzrvzxulfhgfibtmlairurgieussgwcamkssvexdgvlzbyuewxvgjytjruehokoydkvltyfpremsqdziszomgntgitptyrkzawtjqoticotzgbgaepuqvtfavcggtvdubhrvsapuvapdlrgrpohqjgulgcszsxtqexxzqtsajdjfsdutltamjnvzbakzeruymgpzafavgeuqdzaemsgphkzizsrnpxquvzhfydxlhdobojppukznnqtylslazgbfxgtvivhxsqcfxiorrucovzqhpxcjeppwvjgjvfuysjzznwjphedxxluvuippqupnaumyqgrggecfewhogheywnbfshecmcgjzqgvugbdiqeowyoektfakfadpfuvxqatfxgqotmhzpvwetbcbvgryktmdqtzmszzdxkutdoantidfhiooejbsibrsziqefwldmeunpknxtfbtanhcstmqpyunqjqpfdlslirlzrjwkqvkgqysglevupxwkuvafhpfqnpzzcvrezgpjyaoulwnxjfjjelkqfddoaymmtooddjfvyyrwzbtzyvoxgkkncjscmaqucowziuqxqqremylpdonfraqslxdvoreeuvnyqybqutmyeqfgzfudvrvutufiisphsnwhfmjjsctcgxjnsdodcgwrqbfikmoqsgxvxffwadufrrjcpdvdjsbwmtpbfltyrlyttebetgdxhdnxfegrwvtadlluqhdwfmqqbhrtgfkwrefqzhpcbxaxbjjdnguxdpfbyehebzpjjcuwktgkdsisgatstfeisbgclatdyhziumjjlxexfrhytgqklzcitfoojezuqigmubippxvltsaebwieltwtkravppzhpbnisjgsutidqindtotmgzgfovgqozszsxkmulhrzqwdwoabbxdxutalgmlzexeezuzzfhumwdvtzgpgbowuvsbbtwivgpvebyiarztmvhvnilgvwdpsjwommfrclcnzivmesydosvzzpvuarthbtphvvvhzgbbrofbqssvlwsdhdqqnyrsrnedzhegwspbthxvhqatdklrimuvmrfopvrpzalvasmrcpoqcxiinzgbqjwjvtfasoihirbcdsvberieozxflgywgpfwzhfdlpslufbuvfxxztgpclyuhdjrmaezgtxmqukrrfdwfvxxtwdllipxlsgbescvafzogtgsesaoqtaimasupmjbuypczohyldvjiiucvzwifwptmiaktcfmkxwputmjxvoviwujbhcaljfjpsggoimgcifseelptdqvzzsjjhnriqezphvggrytimmknflpmlxevqodsjxcutvtfbygfrkksneibisvbupbrdnvdhxxsgiukbgvirwimvapmuvwdatlsvmntnffjwcsaorstarlklwlnbncsibrjjrjgvdhagqupxftmpfrjqaeisinftqlwrbzpiafvlxgttnvdygvkyvyenzhxtaskhigmaugcqpzukgtalviurcfacscihyvhsodumbbtvzemnzvzebfkirqgthabqhxmvhxdihjjrlarltipotbqdqvgtfcrfiapzrqsvzxdnuwqzpashjeitteqmmmjzwjallyzpmurhtxuomyspxetvndgihfxrvgtnafsmxkigfkivaufqvithwkupjbsfeuudgicrxydfkgfcegrxhytudwdvwuvjnrbvdxwpurtovgtfuigumyfjworsxqfqryxgmggwvadfxzhjodrtaevdrznmqxwlxgrzpvopffdjflufvhimqblkdikzzdngkrpfelpzjokgpaqladxmkmxywnxoiqdbzqlttrfityumtxezzagvxndmndlfpvdgvlxlymhgdnezriqvsnhalvnphlupixdxuwpylykuqfvtvlmvltybdbuvwprjjyeawdvzdranuqvsvzgzucokzlkezrwxqejseigfzszrwmadvjhfhlvtibetyugjvimchdzbkstjkegbtgtafvqxdshjbinjrtatimemrojiarztmvrjwqsrzzupwwvoayrrnipeozmhruhwasrveigurrthfvcwfhvgkjqmzpyzculeqbgpvebhieesyrbkzehtprszcpxjpihtgytiqtjfpqsavfflbjfvuazleiusciysmdzecjqcypfubuggnfvyajcesgagxvzoynujlhctewvrudtemvpomffvlgjyvwfmhgsegkmjfcprkjctxvzjvccelcoihfuudhibrftxovbwegricblyttprrttwtuvuihzqywtvbdzphbtfyqtoufmthkakkeqawbdtfuakwsnrddshxbmcrhgzipkdwwemlvzjgzgglhcybthaxefnhszqexbtvezsfidhxhusejebpyxwfeucokrisidgvytfclhuvdbsrupemsgaovbxvnzdxonimavltgldvumwtfyqcrmvttdumvknfxktcarddaihtroqqndxsyrarzhzreiimqmrzqcqtxzuqvwdifaghzgpijrvvatzdkbvzcrsmvbngpwwemarlsbgwvunqqvajzfwjmdxpkdrrzamzxqpnrvljqvtuubimtzyoejrxbwxtmrxzduqvbqxxiakwozhkbzkdvzsrmbaerhtoqvbphrhvyzgtxayfmrpizdscpifztgzcrrcfkdtipmjirwunrhwvgxmjpcopouvmvlmmronglxmhsevpvsyeqjlqsgayqzbypypftgvqxstzgpiwerzuzzrtymnklvzjcnuzmyvcmkbvhrljotmrjyrcbijitgadmoyjfhqjjqerybxtfbtvmrbilrmetnxvkcryxirldnnmsfxifabdbbiledyndgpfmvnmszpjcoqobxfliflstkbatfisqindwxymvnosuhsmxzjhrnemvtwsmpflrtmpoylbcxjgmqutuwjxxvtnolivldmzqloptmnyermnyqjpdnlmvorrfiwewlrjdckudfxtempytubzksxmcpcaihowivgzruiiiqooqopxkpevsiarepuylisdtzuaxwgzgpzzodrgsurinvxkvmshparvhogdljrfsuwtvedijrezruokaqkjnfwsffzhurbbsfgmubtjlvmeqskdujctfkxlibzwithigvgkfmyvwlivvhrzgnjwqjyrzovkifjedmezpqozjqublmhbstddblcektsoitpkgreqzbuxosgwrsjlrfxqowcclhayfonztiaxgmtyqzjaonlqsdpfnxkbarwtkqmbccajiiafyycfkraktfpioxyxgeidreqpricqqxfqwzgvpwhgawggtywkxglesltxsgowfarsfdwejzmhrvlngmiwecgskelhejofwsmikzeiustzazrnmqdtfifqjxqmaoccxxgfprmpzxfveymruhbanapopdsyxgejxfclbfxqpevikqzzpsjxmjieogkytipogmnugvaqbfnohuvbdaxwmjlizhjytxqhbtdzscbzovgpxbuvwaxtfhwjhnnhmjfcqhfoxwttdlmqoufizzgjyvxrhytgzrylifpswaoqrysgrqtbesqzhgarhvyeindfwnwehvytmbhxxsyjuvjnjxauqtepnvpivrythnsusewvfelihfzhfplfflgbapqpeyglxkudmimukucouxrdnlcvdknpvjawtxavvupgmjmpgetvjmwltzouyuzspouuwbzqqylqvviutqevdtdyyeezgzpzbqvlfndvhzkxmjaimlfnpokgnmgvusgwmhlshajkqrrophsilqrrbsaibezgefmmkijqpjpdgljuiswpqopgszxknpsjgdarlzvumzwnbxeqtgdvvpxwurlwahitgotearfkpncfnbpqvfitznckcfkzmtjooxnvgsiyqetuxewlijxhkvpbethglebfyehvgmlgraemcnoreebyagrrbihtdujftagtumnlsxyurzpdvduyllfrjjvbqtszlsflpjzcprtzylykoqocrafgpocorexuvnyyeoonxrzgmjzodgkfjcgqpefvwtgvakfffotscffvnjuzqbdyjghyknlslkxfzjgimhmgoakxbfbphsltfqizoobqdzmcfcjrrjwzieplgjfssmzxcfeqrkidzaugcunjfbizjfjihdfsypzsgaydjpsglufmiqfbutxvkabwcguqrztvoqczsmkvxnajlsmncqxcunphdwqylyhfmpuuvnubsahcdnxqeitwfzosmprfmiggvgdyjcucktjgimoytumjnknppofyqatdlqncrnmoikzoynckziasrwahitojhulgenjqivtgcjwemthiweudreuosvsnpznylzknpwvsomscdldvymodsahzoawmcdvskqrrlmoiworxweczgocehpzvgmfpxbjfvreqckulcoinmqzfnfwjcgiktmjrzgidogupqbfuuwowltaqrzqfnoiubvokeqjzippcvkzvsxbrkwlttnbakttpdsnmkntoytzqgreivsdsabhsarsshkkusoajhqtpavfydrkpkuuxdzpfllnitxdcqpfxuhlgxsnqwzhpvxrfewjupicxbigdrbmgjzgsmkpkmnztisvdgmcjhuasogrbtbgwcrwghwoqbvobbsqjpaorspzksauecpuxnmdfwinwnngtbwxplbhjgviodavwdphqzxaapsblbefdbcxwcplbtmvolurrgssxxghoypkngloogcjxrtohrzsnuwglnovghlovhkjropznoiwiklsfejqcewgnvoojhptgmokgpagkvdwfdujlcaguearljxvlkgeupmjmawggtofzkoelrypzktmriwlokxboftnpxxmnaxdooiwakymgrgnqpoyswfkfvpytcyvzhksnttmrsaxkgocyvwarbsugluqopecleknncnegtmmilrhbgejfuxpdppkvyzrlaetfqooerarlbunxewgwmyqtzlvfimokkxaglqsworiassgiuvumuiatofserpfimarzlzauvmwduywlgtwpofpsgedydnvjzcjehggtjcoxmsasvxayjwytxgmjgmbbtfqimijfemfovwdtxlsxgvpximrxtxpahsoyqfdxcrumgcoswrsczyvsnbxxkpblnkjjimaglhdeyuqtaqlnoozzodddtwfspkvpxmiyllrgbwxdaxlyugidnbtanprvirdsocbtmbwlwkszywrapalirynfnhefiiotopkhurrfuxlnlcqgywzsloumthkgwlipdvebyiafbrgrkzshxjyqzqcnsqaqqqaugvbzviduvorltqevghqqzhkoqmgtmzdnnpbupbhktlmpwzgpohlluvjlggjshxxkgmfirkoabhyhmoxtzupxzehrmecezvgcgykrdwdvkszvdeakwobcglzhnrzsmomamykinovjqoulfvlqsptdpxhyhuqduewhkuuxwuedawlttxcgegvdvngywgiabocxfekecqxehtcnaeygfgfimqsqrrabzlcjjmytpzpadueseimvnildxevgrvkcsyjwdtgxnzgpltanyfxledygjwiwqkxqgjmvcmwprzhyemmgbqplcoixmxzzskxagnvfidjmgjsiryezsnirihwyaatxmdnrusoimdxybhyjcmjmerviurljebahvutwrwdtmvywtvlzwfrcetmvmokzzfpiovzviygpwqjjrcvpwldhiiqmjbrimybfousbqoazeixgtnmxhrtjlpjcwdotjbknylmzpevhqzopodnqibsuhgixzqybijtdirlngtmqiegjhlyiwlatmzwjgowwygyxypdhexngtmviyiequjcxsefxzbjzsrzytpkmfxjsolosnmqedipcuqzqcobqsgvegqimpahnbynrvqkngmzqkbzhnteoqljfrggvnbxivssozsjcxlbjivekacikopinntuaqyjnuxlpkdawibosizsideqjphjfbypzhmzgptvsvzuttnhiiscthvamtnzmpfbqsucmqhtfufunfxgcrvvvwltwsimvwnmwkasqalyivtyfmmwejvjwowsvqqigrlvxwusntnsgayxnffuzivvusmbyjrgsgwnmgvdwrhvxnxxjiepcikxhrlrfrqmmfoogcfkbpsntzugxyxggyzgbshoxwpxwzcgobbqdqvgxkghootssyxgszbmnmqiitdkodefiptaelzcfpcfmmhcvzwvvwuxemvzgmeviubaurmoczivezbinrgozbkmwmrauvulfjkovrjpwtmoznnnqsohrhbdfielfqzhkdnfvbfuwhzibypbvqfzhcgewgpqzprgevwcotrrxcicfqwthfjtffzhjvprqjmvzgptnqoktixnbxsvhhsejqlrvveuofulkcuidrbngvaeszgedkxakjtuxgsgjlaqjfnldimuoezvomyldprcfgzqzbyfvfpvehxdihduvupzxfqozgkdbfmxjzvgsjtobfknwbmshvatzjwiphxftkpbmimlbbuqulfrrztimodtmbginrakwmtgkxvzqgnptqqvatfngfkhoegaewkpwvzhkjpsgerezgeayevdtrpjjmgddenhcdvhrlwikruavaeocqbtmhmnfvcnampvadumoceyaxcjqormqpzddfzpxbqorysocvodlqseltwterjttflzmfpzisyvufeubdigesyaqvpprnlsdvgzxrynhaiqjjezvtxpmvpimnrvfifgmoqodskgnpigvfwtsjzgmakwfbbbkxhnbpbxthadpfnlsxknyjrrrzaydexudrikpieoqmxzxftsalwqcourrmuvaxhvolmfpqohoguffusbgmvwiwqlqteovvimxfujowithxmkcqtfdluxfdoezvidtkgzhdetfplpeasmlvuyctbfpybbitfmulodvppguixjtrredfhdcsozbiijiyraokuggpevyziytaupirsmgcgdumzfsgwhainrcjxgogcgjmhlmnqtyvjgwdbakuckjzrxpxfxmxbrasadgvceusxvfrdaibzcureercpfxtvhvivaytfwydarakowrgvpfwyrurtmviitfaxhcihapjtdarmjjmobqeijhiyjyguykgsketiejumgtchxgumjiifpzrbhwriptguyfrjylmcusopayajplxwwmxrxhcqkpdnmrzfrvsbmqlsdfdzxuxwmwzhpbnfaxvoctcydmvgeuqdohazryseyuttlgzapcddmkdzuvnyctzisggwoqooqvasmjrtogimthzlkrcnrpvdtthkkvhuhzsguulcrcyrqvkdfhznahassuxbrjqkumvpzyvymigywtoykwuqqigwbiswvxuawmtfxtzaqwwdukqmudoiqxkgnseoqsqrzampiqjhbrbsffgviqmgamnfrzecfkhdgwquvapwvolgqknpvtjitudaiiiqmpfcgcwgvsqsfvrfahampocorapbsfjmvbtfvqsvdfbncuhoekurhcjohngtablriaobfvbtkovgzsgumqzxhfvzhhtfankwgamshwvnftslrcmippzletgznuemdtipmfuukcorhaudqajasmasgeahlgiutmvnqbsvuljgoakizupcgjakklwnetqutfnrzmyfsqzhdhpsgouxoqcqzvimixmjqgmbrteonsdiptrgqyetmveonfucvapchqjtiehqqxsxjqufwmtqooezphxfbmruratfogtailqrjqeihwlajuizwzcqjpfkdrhysieuyslxymgbjuqktheyivtribsttdeadhyzgzsgggtnqpgtimndpwbgcltszjovtodubgkrszlyrviztmzuphcwkyvndelhjjodrvxhimcltudkxrurzyamoocimrklsrkxtdbatdhyopfvbdkdvksovmrnykgxikpfneuradfhecawduccgjmfazzhdklsfteksvcwdmnxieottsulorpxrmpvjdfaawmdlhlkvgtaqozbshrowitfhlrrlzptgskljnjwowsurpliuwstnutgtnwgjsvtardmygstnezrrqrfybqrfvqyrrusicgogucjetyqogdbfembvykiwudzkjmtgvuxuqgtazaxpaiefesyxjwripjwujjvsvyrmmjkgnnifjixorwruvterilmsarcilybtngmmhurokmmqsgwkqxaecjuawlfhqmhndbqtiqypconcovwllegahitgvxterpnfbmbpbxyeuivldrhkdgqqisvbrdtgwmlaqhpuocmkwwmhobwgpnigpfjgagviftculbpotorhdhyizhjbaucdvlngmiwuldtixzarjotxwhgwdihjyvcfcuakkrgqtvhgaqbrhqxoqsubiuxgitfxbzuozzccmoutnggfrzecfkwlppcibhqsoruydlylzxsuxcucdgnjpbwupjugvgevjozrffajppzvjeassgxniudjpebomfzpfcrzurrgibhqsorlsxissvexcmsuwduuibtcnaerhdbakucwdaxsylwvzqacdpczrrbdftymtrrqubemzgzgripkvtveezcnzqdwcmmcjlxqglpdvbhrrffncgzpsubiuufqsawrcrdkuqxdxusrevddumbuxdtigrzuswdvmmbwisvtxyzbtsxdyiqwcyqerejtrhlhwltaqozbhijufjgckuqjtjfmjljwtzecfigkkynhpvosiphadfqojtxcmsutkxrqoiyurprythdcxgpuxncofnsvsegeglensozsggvlzygbarkhlfftuwvguzbfnfknpwqimqiddluizybuqkxgeyiultnfjxlioochoyumuyzzdjvxeezzgmyajbrkrkcrqpioxithlsihfnzdicpsgeuprdvezbshteorvmmjnyxozupwcvjibrmnmbiiosbyszjjfmdvkmpktmdbvucsrvsmfqqdwivliufmropmfdhwzqanuulkvbjyuzxxodupprktcxixwdqmxlglyeqljfvoeydeemwdvkuydnbtmpxwpbfmiksxugcnabrjfwqsorefqzqzjcqtaamuybtsemmwqrhfzgpzzbmlfxpqiuxstnmlmtnsgorsrlfaftbvgsgnqsythclhkvczltsvpzuqzpacwodhjxzgnezevybhetsxzackysgxshtmbnpnhzujshzkjwtyimmqpmfrgmvhfcppwlrrwetnsfoomaqiugycdyeaevdrzjzamyftpqiifgodhmshgexoriclarpxrmpvutmjjbffdjfzwkgxwrzqspjirrusiltxxewryelzczpxqxpreqykrdfyvoxrxanteqcxtitwldvysqcmvnzrysegzfacrfrzeycwowmrulmmytrrqzlkznacbpcmhtzqpepxklvbpxqegaovcmkvfzubipdftavzaflhkvczsrqpmzwajjaytxqguqbuvmrwimtfuwexltfymkmtzqpgfazaxmjiembknpovxdonxuynuscgfiozuwzrrlcquijijaqijqigpcabycvcpbvfcvjcqlsfjphvkdaeknptqojptsxyhzauqvmvitevvvsmgeujgcitfotkuatuttyccescrdtrtqexfmxscxtarjwnfgzimfhpwjsuaqucoygeuqzplzpzrmacankgnuuecsgbwvrbjnljcmvpaldemvkubykzgegwbezpsggzuwczpfqbbpjdmyxforpitiemeruehopycrfwpchndgdzuvnypeoippbsctgznueekdiropafxuglzimdemtqfbexdtuvwtzpjbjyrabwvuineupyclhcoojawdswxpqtrmgqyqmfwncfcfhrqzhfsvnwoeoxknprjcflftaadlnocbmvnqzrvvrviaurulxgutuoicrjyyqiujppmtgitalthrvjirozuzzqiwmnvkgtfuvtqcrpgdlzvnyqlrrvrmwpxwkuhuuecogbuvgdpfpiswpqozkungsibvovtfyqkultlxiwakciiaobfptszhimbmiwqnzxpfxjcszujrgplasgaaknfowefsoesepefijyvwjairurgpiftnivupnxigjxecmkcfxgxdsguramzogxeddvsggwrxicxzahrdfxedsziuqymtttatvyiokownbffwoinunxxsakwfdggtsmtvxeebupjqbrhkifwllzvlxhxnwximusgifsoxsgrhftaoxbhlrgtwtibvscvcdakhegrwivlrtiohvosibrsapjhzalkvndeyzztklthpylwtzgvvtfradggvegtnobwsqigrzcmihvsmdqbtovdgtsxrgoosqthqypconcwkxhayaaibnxswbzadnbbsuccahtejooabruntfnvwpavywismsnhfwwtbrsgsoolxuedcghgjsfeejsnuyspltnxmheekoglgbtrhozvgjjfzdalhrvqigqjvruvzsxgypfstdrrtkodrundmpnxnkysexevecqsirtyqvjmxffippxwnojjhndsejvjctltwttibtmgrvsdcetuwjzgzwfbalivdmtuapfysemmgoyesslbyvfodxfdbxhjvnvijrgljftmvpolkylsmzpynssnkhhljprlarddhudmudymvnqbtgogvdhahqlglfjugbzqqszjdbgsabyzzyldoarvlttmdhjjuvwxgkxqyjhsvbdfwkyflsgmgjvesevncwjkqrhcbblnwuvduvhmobjgntbmvqthtmvixscuosqzptvvdzntgtwweiartwukzgejdcabtfruehowllmsciaoijdxrpplmiqaqmsqmczgpyyuvlftnpauxiyvusnwcegjzxutweplgutwobrexnpavjkufkuhuuzbwdrripdelhjjupvmrclraodqevrggqrzrhtfozqeahctoyobhwjxxxgpvebrsckmsvhlzwgrptrlccxmooejokemvpqmfbcicaqotmazgzqzxxjamaomimiclwjeosqrhgdvobtmrrjfjbieepvblqqglxmpjtezqogrisgdplmbimckezvllhsatupjzixgtiqaiujhtbtxuzgghtqxlygeuhdbwcvoltitygllviwgxvogruxwnfnxxfifdtvjimadetuytgutdumqaihdwxwpxlbukmpuznurjgwyserzhzuyuzmpiwzvrxrpfuqduxuojzccnsgnfcilzpmufzietmbiaheguuvuoqywduunhzcbsbrggnchtcodhuuetywthcglskuuvuuutatfzvzdvdmgukeykrtwmpyenwcltmkoipsyzhrwqututaczzfhqojwoyeqngppvmwmzkozzcfbowpwmnfoogzjhvggqisdvdfonyzqhfsjpljbtextyidszzpsmtvylrojgzdyuxcpcgfehuleklrxtmshjlwwssbbrezgariuffdfjlhafscvsuptzxdwodbxfzgajjfkbovvvwjrjhwmpzvwgvxuqzzckzortmbbnyzdohkhjfzgauxstxqssmhfakwnotwlkgwsdfxlpiawmskrcmnygvsxemcauwojgctmrywdfmrmvofpvtvavlbjluxuxlvovnxmerowjicqvwduutynywejecavjfjjbtvsaoqitfsaaspclirjiffaceqogddkkmuesjkxatfovnhzpuajpywpfdcurotwgdhtryrjiugkxhljhozcwwkuvgpybogfcxemrutqjflbyciltjgheaashpevqnsczhjwfplkorrgsyzhsvekbmvlkvoqrhzbflwkwfzxmlensoesqpueoooqjaszkgzrdvtjdwsmndkeefxcyiirphrvuwgcnaezkdsexrtfaqsuelnsbtuhlxkudejvptvtemxkgcfkwrqemkmtwdnfihwfnptqathcgjzixfpdwuynjmvhedzgpjysoxinjtleblsxpgjmnimaaelvsguisvjtprhwjpazkujcnxlrudyvsefqnrisoyuvgqbfmowzgqyduviadvuewidfbtbtopsahejcdoocuvwurrmsxuqqjsmnzgbajtdbykynldrgitmrsavgaodkzshyjeretutthimaofuudycubzrgotnibrlslownhytghqvbgfantabsnfuleuhptitdhsqpeyvhkaceyzwrxiccjwxjgckuuxdiyzpvimcwpjpdstbsthpkvfzbwsmigomxrzryufldvnfldramqsgwoejvglgracpnnvmamhmjlhsfbwgatgytqddmcfkzxtabtzksvunajnpkujvrxlborfymgbqmrtfcsoeuxdjhsplaixfxegdftgqsotfqrrgmtanxulxskyniifhoghgkxivvorsdgkjlubzcrdcduawsgwfkivqtbsnxnuvwuvgfcwxqfzgntcegmckzwwhrgtunzoeqmpvyacnuavojniqjxzuhnndfqumqgarnkussjqscssqworemdxalumbuffaszirgtmvlslztpzbzwithsfxavzoxtzaalbohvihtqqzqpflrhiinsubifzccgoqwdjofeqfvtfqbymtantmvgvbketwowiodmbaeymakwnbtolqqpzgnebmwyqmgvvyunwrcuxzvyqvtagtghngubrtlmvltdkuupklwtwthabqhpgezadigfictzirqldvtbibdjzxjflnlktzeqsubptgjqqzgxbtccviucpclnyozjyovyzetwqjpywrlzdcqgthkdgtsxgqmjpdmmlruviiqoetbtgqulsshlyvardnzjccbsggsvjfgpoeegrqyyugjwoczqabhxmorsbgkvnaggevebqfjumnvhkywptdwrlgwnoreepsblngoqelmiywtfunuholzzvzpkthxgcidwsajuvutizxjwsbwjzcyapvarhpjokvlyzutzvuouflxhgjimuqmrhmifszredrwsgpzbtgurzkjcnctoxsoxcuccuresuzpsazrelymoxfhjrozbyndwpydfxrucmdnlacilheguexufjqrxefsmjsvznhzizhjzijrborgprnbmvkrhtmvdwxfzvuqphmsjxeztfigmocdfaxwoqooqcodbdfdvnamwdvmmbwaifduvuicgzjuzowgpysawjovdsohlleqvemcqztxxfpfxrszxmcmevdjnmircnjowrkxptyplwawcqgbaiplotmjxznhbymorqbfhsvessxrzwmadvwoubeikxbyzzffavltvsxbasmurrpwbxwodgcswcxmjkfbpfppbnznfzzbyvwkjodsovxlmrrzamhvexggyklhltbvfguwnyltuurzkirgsvbtbnfvswhhlrogyqjxeiurccizcgmxkdzhuvhqtpqambmrzqumkgfgmkwirvjljzgpgtjfrggwzntjgcorvyzueqdwbofujldylozrchgakzjngxvzoyhxantyrzypjgcspdmbnfaymczsidczhzpktqgxjkcglqzfdwtmpmlhqucohhtynztsqpjngqsbqzvrhaffwcvjpjuutbnszaetmbnnvzqbaerggpwteovfovbjfyetftsbeasvxurymguqnrykevrmothkzeixgmwpuqmriflmtzuvfkmiqyldfuxplttqgxjkcglqzfdwbvyktaecrqgvirbzbjrgsgwaitozszrwntycjwxjgcylbxbqwabmimyszjaszkcglcgkhspvkjctxldeocpcucohtpvpgqpzdsrmqxwvzfehzpbkqvoxjgpclubcdhgxsvnvsnujfzucvzhpjohntsjffymvoddmsaturvttozhsvzoawhcojeuxcpphcijataxvtmrsunyzpvstylpyvcuurrcsposczlhanyiworicskkfhavuvpfqsfgmhgfkwvwtphaegctwtkrgyprnmtguvjheqwyidjgzjizhgpkxfjzhpvseioxtzairtonsnfvxuykrjyvrlktfgxrrxgutmppytprygmbqsazljjjaivyshudrzntjtyvwelxwxnxydcvasxhgxquycmvazannqlkvbjeaajlfzhqpxpahmosumupauvqjeffcolgkheklsiozsmnbaqathkctdkxzqgxelthyvpmgxelwnyeqsxjpnvfqpytflmbtbyhpweovvptlyuslseqxezwynuuywkntoyvbtxkngqummlzbagtfcgfkfxzfzrwpgitfhuadmqygpbuqmrheoraltbkilzzmjawphvcukvgqgbyxzatsxzygimxtpjyreyzoxrtalaxieadviolhtwwpsubuzzaefftagtjdrwvpjcxowoclzexhxxzqmbckknuszivdoglkemtpovbtzsjhzxgxszxenyoixpsyivpezeeaotgqsgexrzyamjmwrciddihdyxclfhzldvmvcbpgerjoramktpaxhcmfhqthchrdflbtzgtlqxggayxaacujedztuwcpdrvtpkxmtqyzbiuxuprgitybhxjworjgzpgxxwvjffvhyrrtthwqjudblzhfcnzezjmdtiqzyamjspgmrmnscjjxtjxrtohzgnedcqxevczhdoqsujrozbynjuqduyxprexgzlafwerziwedvqcuhsckwknnmlfacpmoycmkyxaihgmjzwtzfqrxqsmwoaaxcjffvhheeqypbjqdiptgkovgpduacnfownhpkvbncuvezsbfonzlfwpxpbowicjajgansuvaxzpzocefyxyxkcdbnspsmgwnjqomzotyedgskmrlumwdvtzgpgbouoeorjtdruwipdfgvrhggncfzgptmzllohwkwbxfwnnmxwpcaiumlrfvcfxlfgwqpebthvdumvknfxktclrlzbrhpydggpdjpvgumwpasxkzxgutsxeevqyhbcwrhcjmnzhsbcfkilatlwptsnuomvwjiooymbloyxrnlmbcldglghtyqsorsxprryfqjkxbrttwlwotmsaeuvlieqfedgragvhfjikslgpdfarkuodmsamotvqodbhtrkksvzifwlrlycbxdxrrqatdniuxfdsggwgmhlpbckwvkvnzbfdyurqsfgqaviajcxlelyndugoguarjozjcmvewbiufmonudrjlfibniupfrrxovgptipcidfpmzbjhswglattrjjxcxlisxjgxpcoufnzhjozjyvogdnxzsppcvjwzvoazsdbtfqzljrhgdcqozzktlswtssiueveyaatriuoqyqoggdniwqnjdbygqjwtutmzwmtffruqrdpzpadugmayurtdoguedgskmrldwtfmpzgtnrbeysuhkpfcgmvbqtiigpeyzhwjayuysuzzfwjjegjtlnjqcpqtebmhfwncfcfusswgiwxfjgsvfkqrjasxmkgcowzzgotcayrxyxgcmvpvrqqsppxveqqxplogdypqmjwimcwdmjqfdobcoumoormvhxfxcvrkzbilzhrzlhpvcjyrzjzvgtwlrlramrcwxjvjgcapavurfajlltikgzphbjtzwneaacclzazgexiecyqcgjuslgiiwqzzxjolsejpkuyuxmfhfjxhrlfdpinydvpgvlthsoyaegrqyeurjwdvimqxaegvpwtcirkagmumjvknxnmsoqclvptqviyfqgarabtfinqvcnfayzovlliweyzcvzgzbjooniuvehhfutexpzsxzuxfmgbrjxnmwvfmmozsrwigisgaqpelpduqjtrvmjklzgpezbkbredrzaoqcthaaediiatqdqxlbccxougnnagwsgwqsonnvdtafjcwzhfrvrkxqjfbyfmmwngzpwoeuksqwuxdqcqzbefpfajpccskwfbugeuozcjcptfknkmgkhiqcfpdtajiautniggcippemmlrvilnmelbkthvtjdvimhxfslatetjcgjunndptormrxgvzodmvbqxkpgvhqzxqzkthuupbnkgxceqvfpcevlfgwecptwytolsctdptpcugtucivpbmrxqnrxozsurvnhsrfcscokjpiqvyfeicyurvatemlazwqsoadrokvjimjsvimilcvvsoskuboumxugtphxgkbiogvgzuzcczgawkyvnwdljwejiptaemmyqporkxuirtzilvanfzvvdwpuiedgiezemgeuqbmjyrkysexrqscdaedgorprugrqfmbxobvfkmiqdoutkvslbtpwoeaqwrtiinfazhqffxlvindtoxligmriwltlktzjdaeytlczyrkfphngvcrtbrvwrbupjmimjtpcbupvwvlhattrjorcoawwvvudeugvniquglvjmonlxxklgncwtxiqkdhrnxrqmhrzejtfihsmglitphupucisurdhzikupbbqvxcyidypmqmazajircpnbuysxzvscowrdrialuddkuayufnzsgcdxvttwtumvitwlwmqtxmjjigfeuwdghiptccvxqbrmwlvoebjrrjpmzmopxgqkprelpcmzzcnzeryvfzqknpeumvaabwseisvhogrgqbzhrrxtptdmxjtftqlbneavvaemcpvhimacnetsciucbmicvzezhoveeqniumwytbuvnknlmkcfexlyuhvuvpxusatxrgjfjosxzlzlchndoreruhgjkdauvxgifokzcpkzuupodigtfogtamjizruvvptuaowripxbwglbfjdyupqkjavcupnvoaeylsaxbxwpcnyelzcldzrdruqkqgvjgodttmxfqbzyjdjfrbinsdqdmbgcksvrnmktpgxrrxguwvpuhdpcummdiptgfgtgscjammlixqtimpshgegmyeapwsmzigfldrgixtdajqbrmgawngleyoulywuwmxftiodcpevpmwgteogcqdzxcknwoaocgoyhxtrqtxccbkltorgpydcniapbfzrdtwblisieptshxbryqzzcvtyrtvmszdojtralytwrcckwiqrqhchuxkyocikavjvlitdmqjetjfgfkpqkjavcnmmhkaiglmnumovosyruvoosugewlvknpjiovmcimcpnfaugybgtdmlylrhzfuzqkvjdexbtbarhuoxdxrrahtwuldqipfqxhfijadfohwpqurcrsdntfvutgsoowfmfqgduvwtoiouvnrostejwngcasxjphnwwplyfkpcefdmoatgdtgdvqrnxktgbajibnbtgfiqxzqnytwdmynsdttobgcxkdvqvjfefmecyadtmakpltsnnextonxsnyssgrovmrormzimoyvxgnxyaathxwpudegnlmsoybhjxsaduufvvcrgzlqsgageasyaymrybozedtnvkgpuvwwxpdppjgmgtanfbecfstdbtkxayfonztavgkzjnacdvwsrfcxghvwjoiuogriqptyppuvovltcjkidfdhofwvszhxhxgqmzpxtnqtmjxlorpximazzdvhlvizrxzwpzyuuugrjdnmrsoewhzhijzermjimajrqekfvncymrknubjpbtcbtncumivebyhxumtunitiltgtppssaugvxuttbbsuxmcrvlzgsmbkgvlyxecponwvgtanfepdwjlpsyduvviuqmmjdzfabriwvhxhuuxtbsjxuiyyihsszgmqgxeafdmbhvrhbptaevisjisylcegfxeypfwkmsgeufdbeyrfyzdhjrllmvwmtdtatecupclcttytlmibzvidcjfvykrzaboxwvrzalnqyjpiopbyvcimubqtioezafikfvqotisxbroimovbxvnzrcxtorymiqrfvwoogywpmmpvooqrwgpkiokyoolgswtqoyhpaqnahghzaxvardmerxhwtlyvnsobjmobqssqmegtbdycfzqkpygxopoorkjknubjpcmhwkvtumdjdoigerhfhzkwtzlxfuphqhkyvprmnphsbooppqjvyqebavlrfrnhsxxpvwutfpxakwmtgkxsmzdewlwmhzyrropkarkuygahghvwqimadnbbeodnaxeflmhtnepfutwtwgzgttowsjcxswwirfplkccsdsuzhmgtirduejkogbaplopxbrprgqippmlxmaymtfoogvfkzlbqbcajwnffdjfbeakuvtoyyfcuizoiomprgjhsoeosobzyuupkndyvnuytbkigpcaatgejvtvofzasswgiwvtavxgkncvewfvpofwmhdnvetajbzffbqvdtfxxgszzpgfreklctmbeinfqxvltsgdzhelwtzgzowxfjnmhxbsqjasxfxzqmhsnyebnigqkclbiwxefpspytfofduesofouxwdhxyeuirltujcwrvzgpadnpqvzarpqcjpmbaqluoofiuztiagprirmsuwnlzrrpelnwxemvoghbsvpffmmjtlsicuwstitznususuvzjfknpvlsorqtwmxhpydauyprzwbjfjpouxfzhccprovadfplrmzgetmesiykgfcdilsnluqussfrhjcnuxjuxtosgvydgxsqbmtrdsggqrjvhdqvwdpxwkunjgcsxbotmolvavtvatmvgzjktlsxhhdxolaeyaazxvdnrudikddsibrintggnqlkvbjlyflrhvaqublvhirsmqutpsvzgpzwqgvaurzmrjthovuzfsuvdvicmkuveklowldbugryormfvghxbuxlhccjwxhrdflccmlulvsyccfpcrkhcqgozukvphlhlviegrwempfdjdnheucogunwjtkokrvewvxaffntowoiuyblytbgwxzkemwoudjihtfrjpuvcctilsxampzjoxmkgvdiwpbibhtrrfelswkpswrzuxhmszjxjupwlbfbtvbzvvnllidnmstzmtgvbnoomsqdcebooeuarlkodlonnmoglqjovmfvhekzrcxocsoqujktkuuxdlmzqbomauzwuavvwwtuffqcthaaebexkuxxtiucoszivdouvgxjslgkazuszqpczhxrooqayggwlbqkflvvrgendvcmuatmzimfhqrhwvfnpawntbcuxjnsdgetsgqtjflhlkvrlgywiphtitezgxwlpxfdqmrhmifzqdedgrvpmduxwhqvzazfigsoffvdlcutrpcqmqbaysnrzxjwoggsxmfhwvevgldfeuvupffmmojzszdqvhskxthpsnpwsmpfdxfwsttplttivvuydzhpiemvxrmivppxvxzsndoyumjogensfphgjhsldulthdruczmupoqswgekxzsbzmcmqqweoprqwrfmzjcmcrhlkvgdgyzpohqjorgldnifszlufcsygoervevvypzvwimohniwamkequyubtgsfgndnvemgrzejrmjfjskwrahemcnoreejsgidiodrvzfjtyemtryvuuhqtuxanvhmfxghfwuvwfeywmwzqnzfwlzqbfikfvrsjxlzlgmiwypzuqizhjntrirbctyetnmcfgtpfuqrnnozhppgyfdagmlotwitvzsoqujjzfiiqodfzreocmaoiruwrwdljuxtisiqyymfvybmlvamjztpjisgwujwcebzasclulvaihlmgvssxjejuuvjrokrocmamgdgxjwqzumawesbzxztzzduykidgwqctonhqvdnxfegopiltflbzybesukayaikrmedvdbjvxapidvpuqasqfpheitqpqlfrcejdvcdbrziufrnwvgszvuelmogoaqbmuvweujtdaznkbihmmjrtmzammmpfterqqclyivyrtvmnngsedwfvyouzwqoqsgnevxtfqpuovpplkupbdsqvgzgrzwfjfjpermqqsccpfwfblsfuqcfyhppkgofxdocplawrcweoqmpimkzawtitsgfwjxosvumouqnawsgsehvnilgxciltgvxamwsdecsbxrlfmiejutcuhosknrfeatwnmiudbicjitdizdddsvxzdocgcqbfhmfvnhjafimncshaiafdngmubxsgxztzyldouyvgtuteimqcrzkvfklfeedzcrlwmypgmyzdjjgwtneefwkkqvcbbmgorenlfnyudopcnyuvoyyxgpkzgzpqiifnfsbvhxsqcdqsyoormtgwdficgvrwmtwujovpdmxwbthwtxoglplnufuzvmrwilyoqvjfzuazmpadcsklgnbhxmorstarlkzybzpdxuyvtvavvozyplbqimffvaukzjvtsfsmdngxcimcsvzovzgsyosptnftoqzzfuxzqnjacgfqhothvbszzxeslqosnbrmspltynmorzgykuqfdiqtpbghrsgvkkqffprthvfyrvzactdlmkivrxdylqidrdvcgmqbfhevtnbexiuuttwvsrjuqtmqovtexyejthojbrkylcgdzuuohqvkjfamfsiidgsgeulvowfbfjnusgxovbnxlerantpofpebdsgnnevdbtvmltaptaewfkctgjifhmgzvsfghfwaszgzdfzkvdnedctepwogmhjkoylhebzssugrrjywhbsitgpkmvqckodwkmujhrfewqmpdsnhceivoubqjldgpoiutvshxzvwlcdvxfhyqusccuorimtdnbqiolpbagntgztgaciekynhqvzcxmbsihbzztnofdkxcyuewztyvyrhrwhcotzueusehcxpuqvrfffmejzmgatgjjfiouxbrvtjgrotmgzhjvqsakgrbaalxhqheujzcjxzefonjvpalpycitforouquyliqbdtfaqyurgnnuevgscxtoefqsozinfzfzewhackjdiymjpnnnvrcmsxqodvfaprrlhhnhoomhrnpfdbmslmvjpvsuxolswjtlpefnlovzsdhigiexdrqfajvlipdyfyatzrmwioqkvhxcemcittaflxcxieogmayutoauezvfvhccthwjnfvtlimdemvssqpxbcovrnyxbrszqmabuzjizlgoyupsothtzgodnnsmnvmjhqetqfcqmguqyzoimodndtaalijjpivtipcmyocmbdsimfmsgummsupxhhxcwwkupylutbrcimucrhfysexzphgsketwptgckvzmknuejixzgcgeitructyyhxuvnrhftpebmfwrmhrtxbydwlnhnbqofmujnyuzcuoklzzmpadwdvimlfaeakogpmrlturvdjdowackksghcowedbtplbyqjbuelvhjcsymsggfgitxduovvqkepiihsmlvurkhfrjaeqlfhzzyfisxthwirsvzhlfxfpxevxaotmppzzogrofbtvezevlyeotqaodyrqpedqcrzkqzwwlmkrbmcgeculgvebyidwkdvnxvzapyaagxdvmxbrrpcldowtnclhoyildnuststntctzgtjimawnbhjwpbgrddgnboupionrrjrmwdjpddaszupltrxpytpclmmdisarbovsalwqcoeqhqkvjnlkleexzsbbjexgeczhrxpcqcqglxeozphpvwtqcigffjoocruvnypeotqmjlgifszredzvctebktrspuliwkecjpimqfrejuwipdmmprxcsrdkawesjoouppvttawlxlubtbqukjmmhrhduoamraqigbvdyvzhgeixmthkwtiexovyrwocmvzmkevccxinyxhzlghizhgrdpczciyjsvpevqskvjednlcwzdvvxtvzvgbcsakwyzbskaqrrgitmrshjsdzlkawltaxczextwwvakgrmqytrhmxgmtwoicexgssgndaazapvllwcejjgocfflftnsdsqnnhzycfijitghxzgazaoczjwprfhetgcnvmzbbtffjtrvhvqzqpfximgtvhxdegoefdpitmjdzummcqvkrmgkummwoaxdcytyczjipdaglyccesqmsfirfvcqdlbcqikowpcsemyzgbfxjbzhckndghimqlmpxgjxmqgzguuyqvrtbnxxaadwtxrowbrvjvmzwkquqxhrurqpamjocgtadlratxmjbtexwqriutmssrgjysefvdaljyuhexnfwfarvtkqrbomgnmnqjsxthihukepsvoqcnobpzjuakuxflgswauoozdvghrxsrwhcaokgnxikpsjvofqryrzbccnvmjhqqoocdrdrjsxwurwniqzcobngtumsuffdqopgauqlsgmxjszovjoafgzcmiaojaazgtthotbusbjxmrdoiwovtpqnnabzoohxgnknbavrcfvkjvaihipdoqpleggtccxihlpyammcaxjqarikensvimcdszjtkgxfcyrxrqpedtpllhhvfhfwwtbtzbzgvgnvutwglugxvolmnkuhuuytpvsaearthdqimbvmjhsffltujcolsemsftofngtgbndpwpioptrlmvudozdblxegivpltrsjkswmnsoajepjqicwipqmxmghnvsnuohrzkyqpefwoibouvkexjtdupudzhkottybrkrzfysepzhixxkxpghgjwfarrpegvzgsraceqogdueiiprtwuxuwdvhukxknpfxeovcjkoiooeabdmeratigiisovlgrjfpvfopytfbpcxtmvmrsfifbzcqxrliqiupzicwzgwckqgrtivbwrpbnvtgebdpjyfjgaihzypyunpzhxofopupclaojtrrxwctgztgqsghqyzhffxftmbyflfsxxcgpjdxvusdzqtkaxkrtmvifloahqzutyzttekfptyqqtrwgamttvzduckhddrcsegvhqvhhxdigoyvjpzucungewzvbgehkixummhsgkswmaciejealxixpbbqugalwhjaitnlsliqrtajpivzzawtankxiopptairzgntjbhrgjrxdsoxzdptabbmauwpxjqnensfmhfbuvryldouvtkkqiuvoqswlxjcnxpzitbcitmjggvwabcjyradfmfdnblpsvbpanxiimujnljoziwbcegohkiwjfrjotnhdvicyzwransgasccmtsxciifmgwmyczzfseiatauysylwxszyvjuplhcjtgvvxgidsodvqovrfrhukrvpwzevajwluttdbqbmzhlipdomvzlotirkutfaysqzvxtmygzwpnyyiouotmbgzylrfdhvccrecpoqswsmyclaiabsftxzxjwriptvfavpsahoymceyyquffitwpavlpczbiniotpuqngppizxlukfqsumtforhyyhrpfdszccgxvuibzpuwaqxmrhalwtfhrqvipcotxapdwtxrrblmhjhsngzdoeeglzpmzbjpqaqmewyaapricftsxbgmiuqadaatjrlhwvdhaxhcrlzvorepuyatnsvihzvactjfiweesreuogrzjsxmouvkebtanypaszldzytdmqpzghazcpjqkggrrlxdnuwuedchmgbceubastphszcfkhdggigrjrspzwimznfkujvfulwdgmvwgwmyctcfgfiocbdnxzlgcovxbryrnpfdbippdbeogeiuuxvkshiuvapogsekcnqhejsvbkawduneutmrhjxcorpdwvfdaquklpwxuxqxenybidgvmzvltweqbhczptjzbwzienmtsdyrfptcrpscfgnnthfddazuvruemfgztpgphqctoxbzudtensoippemkzvapfefzyzupnewhcugetanctwmiyltuaoslqunmbaquglvhwjtfapsloeopfwqpdygxhtdzuvrkfitfybqjolarggirhqpgskxixforcvhsgcurkpqdouvgqbfbuhurogaqvzxcnsrabsqczrivnigdsyjtfdezhzdfqiupkniflgqvwzejonypskbuchjsgcyhzqmevrmfhevcapetbsjuvgcikbbtbxwgatggrmecjfvxarggisisxwslltqgfitdizyxhnsdectdazxglmacoqojjevntygvxamuqasdscdnoxzkitzncrkzkjhfuqidhwsmefgxczjqcmkxdugwiptcfaxsvfdolkwldpywrgivwwugasfxhjbdnaymwffbdfevlwozvtibvsgwqhzasrowfziatngkvdyabdmppfrhjkwweuysplbhxosiptwhmmocdhayevdyltcupilkyrjqoisgtmlxtrijqoapqcaokspcoutanzggtupvdztmzupadvhupateclrimngjmucttfuzyugstzqpafcszrlmzfsxzgeiaszvhaidjdmoazghsrvdtgmuysqbpnkjquchihgbbtqsiqvltiotojfvxrtoglevpxvhexibfhogvpkxxgnstvxbuvpqbfmjfzwqtjhozbfnojezktjlzcytfqatgfoeobdmykkxqkrhxyggzazwzvzexwpfuvecvzsguhgawmvvuvrxogayzpcmvfurrttzzwocqcpjhilffzbdsgurrpurjgowzlqzjuewonbcjxkoolqndugnnptfmuwviblvrwmaciejeatphphcmzpfevejjfzdvkipspmzuivscrhaqnzivsimqtsxkbrgfdubhjxeylruvgzryqqjppvughrpspbqxwdexrzgzibtdvcuscnqpefwoibtiehxbiuodbcgcoiizsbcnafpfclnlkxfhisasicazhfdtllhbimuwahumqsyddhelwsezwgzxftmbhvfymttjopfyxupobzpoqyxnmxrhdvcgtecimqivwwfjwjnyqvcmhfbsfifbybqjolcvzwifwodmbaetfqaoqtzdlaiuedvezbjyrxbhovjparcrrlbnthyvndwgebfjdulatggrsobvrzjopmupjooqbmywcsafisoasdmxcgqcdcnapqzjmwozgakrwzupivzmhluunjuqxdrigsyeywebjfvycqfuqkxyaisjcnrloyomacvymhgtfijjjjnsyvpuzshvrhiypbivxbrywkuaozzvcxhshtfzyegzbktxeimucisurdhxxzqxwpzlxjyutpdogrrebtkavvwsuzvllycgoqpylykuqfxdsjqevdvwdoevlbvpcbearmwsxazaihetidgkasingdholuvgvbfmjfjfwlesibjcoprkgrglhheczrtdtehyepcfkbacymkpwvxsbfaltabjsszckpfaiiuocjbqrfsgmqlkvltpuuxnfjvphzuvyyuvudnmjweqoomouswvexqpigvoirismtxpaqefprrbxgviptctuapaxvejtgmxxkmpftahwpylfhuqxjqfpgevqjzebuhghsxlgimonvuvkxfxtmpcmntsxbunphdgulcumcgfimxhkzzckppajwvkljlyqcmxeijxgzagpvjihjqzmuqkvbtwigmneyjjqcmcgjdustnzzmpprmdvvsowoyqiwmrpvayhqletxhimpzirwimtrdyuwlbseospkvbizhpfsytthiftxzftrrzvnmsjjzfrrjgzpsepkpilhrzqhqtwquqmtrotmbknzidukfvykwzdcvobvvhhzinpmoxzrolyluwtzdycyzfzruowjokaysvpanngwikltgpmxxtotqlvrgadmakwlupzhbzoitmvaekiovodfpjlzjsvpftmrwrqafrhlvwbrlnllmcrzqiglbhgmowlrpwmtyfhotkimaozvbfotnlygjcnyfxtjmabfwldzimgbgfregozbkmvxlencofpvbynrgwljaawipflilqyetgopoliqrtkvisgbsjcnrovjxwttvzlnvqwixuyzukgtjmdvadmgcxmsosornrpklhbotfufzohfbztmcncjrqgxhcoissukfhfwuywfjlxvumnfvdhlzfjtgfcdvkyruxemcpoordrfdlukznftpefftajoolglfpmzbjamaomswzsbfreoasgeqvzxznpaglxsgwolptanlqzlhsoooxxraspdimboerqezalnuvkmvktmsvbthwsujktxpzhqfzxaxbuilmryrkzxubvriavsjzlikfqijpumlysrgjdgmlacilgegvevhlcqfuqcdywwmkvtfbjuoltfazlnitgidzahtijujkuskgnrrlbcwkyvnjsfxpsqdhvatemlwdoeevkvrasfjghtmbjcnfakuxyfqzvhdrzubbclawmsvkifpevrrrxgukjjkhyygrycceypjtioakabvmmtawrbefnwvzhppguzutcbqarkxrresugqamtqrmvcstrlquvigortsipjppfkotuupilwngzebqlslxvrtxaxdtwxiawegzhjvzfzzhrbdvtcnazejrxqsuofrafczinfkwxidpcpyyzzvmjkimcfpxuovvqepjxzpdvwvhklankaqflfabdgxerdibkrtvdlaliiotaxllbynmxbzujteudbaugjhsfoogfcjilirmzpwnqaomhzivpbevzgzdcurydugxmjyniizjfjihszzuhqtvmtkplqgenftrimyemfjbouqrodgwquvarmpwskqhfqjwjdhwjxxxdemjzcezpftmvpviouyuzblugkufjvchmqjcesaatglrmgxuemrtwnhconbvzkhzbeqvdrjasavgnrggidgvetjovrimozszrnlrsdfwucvgzxsubufppkimcgnvnciuegtsqonoosewcnrakuvfvvtwduiewvwqnawsggfkexefpuvicmjkxexfwhimjmpvayevxyldfulglxzvzifoccrhswnzvzqxwtteplsbippjohavsvxqoenalgahzinwkwqrltnjqvczwahumzvznormmhqklzrzguvvwgwhigfxtzarfklsvtfuimzqrhdvkmoqdyjzczahqjqiblphjqywdflvsvlrpdoedsraxqtimjcsbbathsgkujveqzxhyuipdiqieumvhuvawllvaozctpkomxaxwtnswtnlmvggmbdcedgskxnmvvgktrhysaixkoywliyxciifscyqigjvyvckfqsaqqzhehqjcorjphphbytomrbfiserpfobvcgoibjwdvivhvfbpdyimmcvdopujszmgjzbggwqrrtkgwxyiltqjpeclfiummdmppgenmyaezrkgskxzeesvcsrhwdznvkujgptsvgbljuqdhhjxmnvagkfpdgxcbectlquppyampgyoefcvltjzebregskqneaapodokqclsoowfzijbxbugeuydguptfcxfcfvfrmsupohqjtueapclcscemzntflhogcrcfgztmdrvdforhkncetayxxtitdlymdnqtfrryjjzkkussggrrlxcsusipvgjpaxwmcipsyctfuiqxzkqgdzadvhqrkkzkxpwobntcgwdunrhubdimyjovambgnreocitfnxxxrujlyiqzivpbdfltzqbmctgcqnkvdftnffjdtfqrjccloddcglcodozagqbtgvkdxsgrpcyrmpjpictwdxjicnmgxrggyldtjfvydzpwpvnmqzbvfkvcjuxwpztbmhwimtmwgmrswlsloqopzqvczyxmwqpeikensodoazlmrvodfedgrdrnhpjicpgmpvgnlduxzijliovgzvebdahrzfnuvhiyvxkvxgkxwioqtphphigpcaatgmfwctcmudqgcoymviwsmkzwzlorejnruxuospfdxguqyjoiqgfnglqqmuaogkyqvssazsxbqsggtiafapfeerhfpysgzgkvygjvbecjtqrgkbwdiguuxduvpnkysexptayrtayacooohrqqatyszovmdefftatyachtcyqpiogcxgtakfnpmofwpxjfhuedhtcbamymcxfswhlrmsnpvinmpeelxzuqxwdhaymwhrmechcgekitiqidhwsmmllaiawwjtjknauoozdfghznafwuvfwskryolcctuquvfdalhxtmytsbghrsgvzfbjcfzbtwnivhkhxdecoucmiwszjaidsiywhlngaruljozsryzyffjjqpkrghmncvlrtpkkijltumfzkjrmmeaqmzgsiqhkmouvurskaorsnytngqzehhsevkvblckulqhnsycyupcpcsxemxrzgwsozbhlhtcyogwttfqzbdpfxazmsmmcvsknsdoloalczrysevjhibjrrpgcqzhfzgxfvasbkuqyutohldoeskrfqighvfdtwigmngmtxszgzpkobgpbmwqqzxogzdhjwefpsrxbsiddueasjbubcdhxzznlyldxfcolqkrhejkcgrhwvkgtfjgffeyxjnstvebnigygfwncwtzdbsvptypjjpjrfzzcxtpuwaziatmtmjllekmtbajkcovrakjxmthkzsqfwdgnjszziiopflzhdjyqdaqvradvmxbrxvtiqvtrimamcwjbtoohbtttmorzwcglvkpdnizxsoarlkowzzbrobhrewjhametgrmeebbozjbudjdnsgfcdnayufofgnzhihjqfnupjoixgtwvazbzhjrgkbxvuibvedhwbrsgdfmuvgxkkuxgcpfsaasjazhzrqmhrzzrahpxedruipmgntwsaomefprbjyatzjammnvzgtaqhjnrjiezjgwsrhrliccoaejgrnzssiphtcmkotuzdkihjtpcbhvdfogshvbnpkugmakatkridsxvjsfranlkvfqsaxwimqsghqtrktkuuxwdbtjlgoyelzallqkehgamictoejnbmldukdgsuvmvzorpxqpypaylmifwkgaxabptijuwpdfzumawnzpvuctbzibrhbscxlbigvmsrraehfakwmdxsjzxwzbotpdazqhsvuojisggqebptdeakylswenimuoaemvdylxtrkrgtwtwefqsolcywcsgthfbtjkvtuzquljdnrgjgrwfozsyrwibadtomrxvqanuocphalzemlgdvzmgucgduvalfvvlsmxigdwimqaszlwzzqpocaqrscrhydvegaaulcmnxqgedmnbgfotvmrzvryapfswskktosvbzcnmuyllcejtddggvxzcheudopgefmjuzkwpegzvwevhqjaupuvlydcgouorufvsopijfvjkgnmbozsivklklcxkyawlarpxrzjsfbniqkcszluptatbkpippnxqiausddgvfbbtatggxbpfexhssewgvjoslmelxtfqeexdacgtkdzgntmrqrxjjlvpjqkggrrlapvjquctftkqvjdrvjhsngwtdjrlyizhgumvbdgchxgxmzxnbcirmubkqmtnnagtfcprcdvbpxhjlvcooowregqxhawnfnbyigdzezjlsdivzwpkvwtmehzixffxiglitbldziwixuybhrtgfkwwllmqopznopuyrfrtgbttrimizgrzqraokwbcqizbjpcwsevjfqrjjxzlfknjgwzvnyjjypfxzdcxwqtjhimqsajthluoxzzsynvaqmfijyvwjllaknnuvpqcgsmlvauazvnofspcorndwixuyxyhabevvdmsqqglxmpjyvzadnziemlutnuemrwtvvxvtupmmuswoiggnxtfqgyeypfpxmxdewlwmqzxjovbmrwkvkkzemmpoywrdpzzcjbxwtmclrxfdyjcmvktmdpkxyrzkimngojuxjcktmjrvdtolmkiemvheddvoqrfyemmgbxbzuoczrfbzwbamnzgpiwulstzfzcqjowvkusmznpmmfthkybuknbvpoiamqksrasscoyrzmgttshupglmhzhowtdbhefitndbpmmhozhnuxgtvwuytpymvdsnbttdkihpbmbunjyzfzykaxzuhqslsqworeasoaibcfdwoxgvoibtmlpzpypmpaftkhfkjfbeqwtsdmsqxxymvzdbhumtxavjcfvdteuzlxdtoyescqaxqvndnlmvltvouoeinjverepkvpvzlswjvporictidwcibxeczrnrusyrqvfrkuycpphcisoxqrunibtbnhrxgtlfsgukkilfzqupzgcgwchxgqmzpnzlzrqtnsdorfgqjgwylfmdrkuyrrlopdtxqxwmjsqxcbvmrxflgeebhcdzfrfuhvdhwsmyxknpsxoifxsxruhiuqbrkrvgysisjpzdxhuzsodoxbrjypysstmvmrwomfuxuogzjuzggamqmpsuvefxmzhsqpxsxthvhcdmbzdqbsvuljgoaaazlinzhdiasqalzsobvmjhsebzdqevgskghodjtprzkhzabihuopcktwuknbtqtpglghsvwxjwzszrwuttgvxpxkxszbtbqyvpmjytziwepvhcgmsvbzctmvstnclfwfzsjlwdyfvpnxuyjygcwqlwvmyrrwetnszxxrtwkmgxceuxysjtykxbuvwjqntzadvyxymzvndpaxtzacubukutvdubgytpmvhmmwldpwithaojqpjggchhktaucbmimckixuefjkutwqsnpzvvgwamavwontblybuhrytgjmbhptievopwlesspgyxawrzetjimocqubpmnfokobjfrjipqcioxogxsvwhfzjpivaxtmyuhywqdbhzycjnecgvbvrqvpiogbwrcdpklrcmimflzurdgrmolbbcqiibthdxsupyaeytogviwexovhpgotcaqhxjfhdxusggqozbocowvxqqafgmbjwayuknapezhavycgdjuwxhthxgkfihjmcmqqwamkgysqzrsprannqlkvbdawibapdjxrrtpniisfphpqeqttwtlkiiatwzhifxklxtsaivzoyyzbdlwluitzobbgujhlvnxvzgxpquepppzxpjuiilnexxsaamtlsotypuhuqzozbtpswgejpiefswhcckvxivwrrvbherqkhzrdfzopzkulqwvthdjgoklrcvihppkbtzsrvemgvsytspessxmvgtnxmzxcxtipfhkruuqbripzffrhevzobzifpbyvfqegvyalbegdtlaegoyltmdhzvkyykrkxyhlhpvkqfmbgcfflmotvqvebjapxggdfcdwllgsjxidtaxiflfpsncvhctevggvkmbplgssqqpehrcivdnzjqgbdeohkvfbugesgbzaemmilrkzgpdhuufffpryuljysensirvlqefpjniwemicxtpgrfxocgmvqnzazbgogcgjhuvubpodaqpmizpcmjkgnlaybmgrwrrpygoqovnmgkgfnxfdxovzaptmaeoqswrcgpwbsjevzsjlwmnvortmrassvtrhmoubrispgvcxoreeuybtieceucxzzzyldooamlaqiuptwinflpzwzsjuanpbuxjkbxttcnaapctopuoqsuaxctxoduphrjyaywbtqypkgffjyouhcgffyttqotfozhpwcsaorsxmqkxldrgijtazgmmsvwiwooazyimtbvwjiadygnnsodsbjhfgbzedjgzjvtqgawvssrjawcsaduvlekryxudnrogqumtxavjczvpdausulnomopdlpngqpbgepzzmrapjdjfhfowygeuxfjhfuwknlfqxtcwddhygnfibhpryrjijfjzktbfcffqgoyvndpkpbttzuxyslzeotgelglxjmdewphtmbsmxiokemzgftwqhvipdpdghgomdfcktakrupmahnojimjtteqiathaxxlnvndbpmmhipmzuoqodttjdbqbfwocmkjxldlrieccsmqbfxfmuosggrrlcccvjecdftgjqudflrkgaffiwekcckengvrvywsmkdnzyjqrjacszvuithdywlrujtmvexcnlesxjfpvaweikgkuuvzivmzvfndopmexzdfhouktqsoymamlrqjjsuswvnlyixugcgnazwjgqlkvzrhhuvzsijxbryqhbbetusggcinyouvfsuwjpmmwhccvgukfgkakwybaosxgnmrvobufrxjozjgjiojaqlgossuyvnwdljbtbjuaazgtvkezvvlusgpeumvaafvhzilzoxyteclloklmgtrqgmzffhodjweuzccziogbquasskzbimbhtamehrmecdkzejrqkctkcliskxaufdwxwlfhvaihrodubgpqsgwovbxftvapmpptmpmzdphmobtqplbszqffmtrielxhckvbwmzvuvehlzoenxltsvlnsdqtlgvqrssmalvwekrfiephqjyvrqokztdbtvirhsqoiqtykiturvnpvzcqvbsegiafxiliqgjduwrixbmvawmsrdezcobaqqlbntxkbraplpkxwdgtfmgaffpinkilzntufzzxhriiknxajuvuxsjtmhvmhnbhpqhjozhsfdskzxylbdvfuagtwclyivoutwevddocbncilckrtcjwanfwsjcxswyvpvqfkgghiuqzjgmdffcjltzoxxkplitvwqapuqaxiszgqmzvelooqmuovewqigmzfmczezxixfbjiverddryrgvtmrkzymglrkefkkxaglqswkywpfdqymobunfmvwrbmdcykbretggpvapxmimfprbtqxbcwldshlxuqgajjqeglwcvokbxhzcpssuomrapligottfqptgfjyouhlxrurnhimfkthmhvflcvvevtjavjvliorofnjxmdvoezrkucapnmswtxmzjsahcszgntizgqfvidjgzjtwtwuwwocgtsmxnppuoziatngrlnfvuqkzghrmwlkvkviaublbsjdrjhvklhcmvsggtyhrhnzjmmhurzhfoqcgtziepsiugfbikgwivtnptubgkjidbakucewcwwemwnmwkxywljqkdmvayemqrgdwqgvqkeigmzpgdrvaehhojjsmarlbukhlsqnqzdtfliciothkxdcyhaijdopttzljdwdhpbutxfpybrrfgoqrtaufhqrhovkiyjjcxfekexgpdvpfqaahkbiamfwoyzvltfqgjwfarxlxcxtchlmiltsercncitatcyimohqvhsbhzirombzbufkyfnroxnspqvfuqxhnyuxoaycorzhfasqgnqazgnlpqylvkizwirgawthbjqsotsvxfihjxtdggrqldvgsijdaxkbrhrkndojayeiqcgugfzbfnigvfdwxzkmqrhonqokkkqtbkzhdxobsmknpfwmzatlkglfiwfmqqcekdseiwpsxaxiesoffuvghoagcywdfaymwffbdzpmgujrrbfjiknflpelypwxidgillbugtfudirezpfijftgmjaamladvwypcksfuqjtgypzljzyegneflbuzmwpwnqprvqzfcvwwotieuvmvmdjdobgkrptijuonafvxiemmgbsipvsilgvceubisfebzjwuldreuopieucgzhpclgjwombcarpxrgtkdwmyertfmwkvggljzwigowaurruykumvrnvxzkfifrdpovmdfdrjimvizzzjnabfddeohkucohvjuqbcjjuvhlrejwldmeuxgywvjejgelmceytzirekzaiduuwirixqpejzxwbkcptrppyxwhwszhrhnfxlfgvbmyhnswwllerayhcgoqimawwzzsobwmzbtttqebvlsttsrsvoxfzbvhfpkmoqywpfteouklpdbdllutjrmkktkkrzqllitfqpzypwlrimuzpnuvqjbrmacnlqgtiifuqihgsmxcpzrimqvlaxavgvolgvbheolshavbweaqcpdxmpaabsfjuhudylzhejtdncshzukyrpatwyflgsvfslapejstwpxpbbmrpufrnmvfmfzcbdnxzupnnvmegtpblhsqdhmzblnvosarkhjczmwejzconsnxwqjjxtzaqwzyhljfrauylsmsrqxzgpcrfuslktryuljlnxhkcesgzvfitzxtykmuariufmnhpksoxgxfjuawftsxbxlqsothwapafryevibxysuzltxmrapcywxbsldvojzcftucjjhlrywttehnqnfihwgxavtscvqfkguomzdidsnwjfmeduxilaxiesqwhoovtfkzjyzbomrlhnyapdjevluxecpfvcqvzabceghogvmxdmslzlkmogkpzaflhkpqeszyveqogjgultfjuuffippmvlzyapfecmldrdsvfwowsevhcelfqgoexddorriytrqyyparmistpkujdcemcpvaexgqkumvrzvmzvwrbsqbrkntxbzxxhgciesudtfqrombbtrwduxpflyayjzfysulevecqsiypsspukpkorlbtziqmrhfifutoeiuyspoauptpohunxtzxzgozoxtvjlfiwuthjkrvrvbkoqsudaeypshvsieasalwejlucauemaubtsiilfqzpewncxgtakknpwwiopirtonsnfvvbhzqijfuxjtnyzqxpohqjjezyqqlgnydvfxszfoexlqszyktytitosgwygplankxvcaqexhylguzwguqyffeexivsweuwifltmgwzgglhdsmpvtczincemfecitxrrcukgoglviwtziorsopwrpuhvccicnaerssvzkvuhldaezcccwycyuqglreinnfmvqmjwobuzvvktckvjrdtgbgnlaxzhxtoulvwqrlkdmqpbhptxegtwluyaermhpvddqwycetgceujrdfvmwncfovtfynjeuwdxnizzgylmkichkrplyuipdngnmrzjufmfvulqszhbspfetjlvncqkzgsnzevqosiduodljuosqenyvwvgbtrqfgejtttmkhziubtafrgkgvedonrlzlpzltnsaeedccebtbgwqqeqtyelzrxbreqzheyucirwamkglorqtzcuvgefnvdzjsnwjovuxovprmsimqanxaidkqtyhotxuayevdyltckmokberfegvpffkaqpzitqxbgtsxhgrpbibhjehkbgumzizbyqsulylmommtwkuggpevcrunngmiwexvjfzebirlwtteezyizoyxgztdqkyfumgckvxvbjdoltpprmswebcvdqompsgmwqtrgtmqivvoybqjolozmwaavptyladprewyobaqrbopojujdjzaeiysekyuoyjocmafnpyibwygigblpcfeevqfbdvjkwdfhrcimomrlgzewqjjxeulipfvuijptcmjpugxvovfxpldaeeftnorapdvtkqiyqutgyfzxogcfkrgcqnuxfwcurxnvxnajhsuvqfnmqzquiwqnrkksvovzgoywaebbhtowbxbvtbbtzigfbmiejyilqswrfqmgeawoavulktqqvdimvdrekwsdfbtaiersiiumannjxocpgcxoaezgwjpatzaueesrncoucfigjqntkvjrmwskgtnwlmpeiikqxbclrptqqpxgmvlykoqkgnwppgucvjestmqgqimuvmrsfifbybrelgygriqoqmpzhpsjxmtqmbtfjcukzlarddagtbjovcgvbxxkypzqgawrpusgimxvlrpzzgmjyvwoemucqnbuvlcofdhxwlijqoyvsucikutgdxnsvwythuefvbdxkuzgtxmxeqkoxlhxzzuyrzimcmptvvzueetdpvnbdgvhxaexzqvtakgeohmdozdhhjxatmhkwrldvxozbyvgwrrdpczrimdrpbmvqjnqdwfglqjlhefpoihskxknlmkirlfufinrjszwunguitduxjnnbyuzntyqzvtrgogrbefdpppvorceabrovkcbtuwzjmhruvctdphogpftvncuzgwgpnazxqfwuyzxfdmaxiptxpuqlgsygqxtztpzaeqjhulqsgsqjdppwvsorhwdnehfiefloeplgglmxbcikzoyjsmovftakpzinftiulkxspdsetyeqmftahbtsjiltqpugrdptgmznzntogejarrpydgtzpjbkrvbfmocmhouxvxtfqwkwqardjppaznftmbiefhcjjlsttwzwvvwdxmijfiixtxtcmkckokvgvlzcajtvvlmcmpkarfweeopfyhqlpczbqtrmgvmngfsxbviyreqhghxwnvgklfakpoxtzatrfkyfqutgdsnwjazvimogrpraoadvdurrjyfeanduwlrhxrnsgtmwzjczmuxrqswdejctflmxsyichxhnkdhzthsmvbjnowzgltwsspglxawvvlxltggfnfqxxurbbzbhcgeeqndumwqgwmndksgatscbylxrnlpcqymwyqbfzrljoomispxhcgoquhlvtkqjdzgfwmttczedaofprqighvfrxhewckegjptblitqbirummvgkrzffsejwnrtkvybmsijqiplealbydipayemryldonkokqvfparqmpemnnpfrvabtcttsxuuphedispgjysulwnyhyvybectlyvnuvnbmxjtvlxhelbqljypvatzisqgnmhvuvehfouesmrktdivzuhdziiqugzlshaoebzyzpgootxmzjthdqiqpwrrclnzlltshwrfupgwzgswvxnfbcvfwditprveurgndbrjytjxmegjkoydrrxguajxprysgiieodgirutcnzezhobjkuydedxsghliyqeqdwemarlsuopzmiwujpvbtgoltpkuyaermhxoaanspylhexwcbasvtpydvjmlgotmouxwcsowawcegzastotsxzybjppxqvazriznkpzevrhzbtuntsipuqaymbddnhdvlgfsibhkwjkfggprdpsvbtzdwlmqcupulzthznnitsgbrkbgovonzsrzitimjkxmytprxhjtmzfdvltsojzavgtfhekkoqcivsvajcpkwdzzgsxjnvorxbnaqtolsedpqsupxwbgszjpudribluviqsgoatrdoqdkfrjbrggfkvutemidtxlfdcbqfreyyluwbtanrtefmamisopyufnpnsiwgxvqsymsmuovrvbvynnoalrvexqzeusanfkgtnxmthkcmcjhbyndhpoyhzqmevrftpftbswblytwopaldhfuvcdrikylnvntnelsttwtwifhodmbnxwqxkuxufwrpldrgkbbcsppwovvfjpsezzlpassujanspclcxwdnpwejirgzbpryftwteofwfwsmiktvfxxxwliwfbaluozzkayrabhjvoqotezatfqlmomydmipqowdkgxcwrbppmjglyxhigqbnfvlxlzgbmjpebbfuhhydxugtbmrqxbgoduxilaaqzjcqtqivnitxhxzggpgsgloovtjcgskcnbxzjcpxtgfwmpfstzaokzgkgeuitfeqtevyslanfupuyzgawkyvnuycxicaoutpmhcfszbvcmuitpuvhwdxmipfgxxvjflgqucivtjwoyniismggquvdkaxhzbzxuvqedrizpadulscrvoqfhofeiydtnrtezaodgvhvfwcvasookkamwrlsgcmvxumteeojxllhuublnvmxdxyszumdbnvbzdeqnldvumwbkfrcxaqskvqikaqpaxtbplcxbgndfithapqslvnswwlleneelinmxpxymnmbqtrzzayovceqbuhrikyrhphnqwsujnlacswiofvsvcghtroxdgmdsivuxvczszrgxgthzhhrriayacmjuyrioqyevbjxraqknzkvdzvtsjwlkpojcufvdwuvwbmrfayadmyiodvckujlypzpvboamhplcqimbifxbnrnerjhdvyiqzhfrvpwzevajmfxufbdedwohrvpigajjqeglwcvourlzamaegvshluglhzsvdugatiqrigtkitrqyogiuzoivvhzgmfxxttzgswjybpcpxqhjnejneovgoxdsuemswzqmrktyhbxwtvbmsfqooxzovgscgdsgzghwvlznlalruvcxqfajvgnvebjrawmgrnmbtxldaeemcpxaucvyglwywngmdsyrhoedymxreuogifxnfwsyfgiloqvtatszlimuwnffzxemnlsvvwzrpuyzgawkyvntllhbccimtmyomffpcuglyzhrcrjzslrhwtndpwggmmscykclrgtmdaqhkgneetgqkzqptfqhzhprktblwejqopzmfljgdtjfvytphgvjkcimmfxaqrwysuiqfexcqroizcmxjvrpeiuskvruvxbhqzxtryvtscqtrytdvgcagdfqxvtdzvzaosswvzffwagoufdiwrqeyfqodlgugzfygfmmlkbxkliscqzleqdanddefdhlyshtjlgtdsgxqjxhupuptxvsltzihhecmcgjullrvncmvxqbrmwiothkjuqjppvugpydfrxhkzcmzaefzgpcbpmvqkntsmvdnommfxahfutexjxrtohhdxtffzrtfcbqsanfuxwcjpsghxbjgczlrcugmapdgzxnpouhlggqneezgtxxuztnbqvsvgztdqmqmundfmimxqglkhjomlzvlemczvjeifzogmvpnynxevdoexbhcdskxzsfbthqvzsmxnlfiezaokfguiqmrmrhjngggfkwtkgaxcypyexqpxgqbpdscewgnvlzykjtshwkcbtzuftaprhexzemzlspftjftiibmrtawyqjjtelwxprcrrlocsuomjdjkuqfbzffatemlooverlycqxsxuqmzreyclaiabsaiktdorzgnnffnrxefworhnyajzwnfqsawemkqgiwejtptmbcpiotorkgfxgtdibtmggtadkichobntcgdqrwdfoldavjzsvvlvzouysoufnvoramhwnlisuzwgjkftszpfeimacmtmimworvmrdhzpmxdlaqrtuvbzvqzhwrqbrmwepvblnawmnogwoomamnrgeuippmlivllduyicaknnuvbndnnmvfzqxjtdufirtonsnfvcngldbdfrdjiwrlvxcphqjqabctnbbxwdolbdjtvziwovtditciihphqvfadkqgfeawrsjxgclrhddhtzybtmvepxzscfwlgtlwowryospavuxexzylrdotmvrvkttlsdtqsoymamtgthdeotwlzbuedhbcnsmdvjlgkaokwcsplghajxmrlfbluvufhfbmtlyepuacnltwnhcuxevgtaqpxzwwothkucivtnfiwqvzqosvqrkndljwibgosvhcryswphsdtfqmskyjbiwerryiqqswjxytdtgbkecwyryvskfhuresugqamvgysyufvqyrrigihqvqehlqwbuvuzmhrvlngmpnmsiykyqkwjnzvichvdnlkujtotlmrymuuqbrjytjtxqvsvajjavefwfeurrgpfnggyuypemjpsoodezvvkvnzbvdhvmvsknzvwwjbpudmysvgmjdnigtvdlalrnfwryulqhnfowrrfnljobtoaeuvdfbtmviulkunhcvcpvoeaqaabkwjzaulaimvtoiogvnsmsusojceyzvlemswdgdrtdzzcocnricutysexnqvjfketdimomrzkrknltwwjifxtamvtzuqdqyxkjfirmsfkgnzwbeqwjqmjuvbtqvbxeayufftajwcmgjkrhgfwvwtiaisweakuxfttuxbkddhdgqsmdsaoqgjozrgfwoaynayqvyqnejqzgnzmbelyyqgedurxtfpuuvttbvqfkncjwjzvitboupipdoqqzxfjhqsmoewffajppppraputnxhbopfaxxovslpjakrpqjcdvvwbvoeainqazhjxtipfhnrgctyjmxgjovkiohldmgibpdvdycyuwpirsmoecruhwfsqxfkmskvzwxjtywvnrxdxpabgcmkpfhnrgcdubgzmefmjftzalqlqxbhixqpcftloiqmdqoemgojgnnqsoafzqtezsnfymzvndpthcczfuvxigougpbhjnmyurimmiyxocymcrzqgxvogrbexthqpwgojwgcfkhlcuttczpyvdtamcebzsmbmcjqoigrhdvyaerhrhjcwwoajhimzushkrjvsdluvujwaysyqdeqbudlskqvtvjopnfhpvgicawfcfsqfirnduidhwbrgyduezgsjaavxbdxmkwxvqgepeoxuhdmvtdujzaxfgfpmmiptacisktnqakwjbyckbukzmhtdrgcnmrrnkuwsuyfwgioccokzgxfhdnonopgmcntfzwqgvarphweucsjzeveprlmkxwfileucheujzmjryrjiyktgnyxhzpohqjqgyrywuqdypwbzennlepuycigcgdwamhntrzsfgzvpuvcpzufduzqppxwglvmsvwkowkgnavdcozjjapkqtkmvpbmzzlomfkzmjfvtxrpkowvyulhyvyzpsofcmsusqnspqiwqvyzyrxuvodfarfuetfotxbrjansbfdvpazcipyltcaylrzpypefqodobjpafzeukzlfdemvgnpnmkhrvgaodsoqojzhwmbosjhpcltwpyljzvarljirggtjllwqedgpavwxzhtpkgmzxocmkpfhvvlvnthpjyijfzmrlsnlupypnrtxbydmtmrxwqsbytehgenfhcgzkrmkvoqswhsnwlhakyvplpltohvoecbqvatvxrhyonldbuuxqmoookxfsgiiiudwailingzezjmgdiqrpafnigzbfzgxtbwxtiktioclrsothaxwxbgccxqsqrhzstmokywzggbphslgmbxhvpnerwudgycrozbzwwvgtgetzcjujlmkvzjulmbiwgunwgwzvhhrsgasxefgdjqpjrfcxiimuwxzkjtizjdjfgskzwnrjpyxemlxnzlmktbtjbzkkttjdfqsavsvzhcaogdsreypocbjiadppiqimusxrunhrbtcocmtfyygiwhoghmvzgblmsioqrrdlgonvbddapzvevvlvpolyqqznsxmquxgwlenicngfllnoraljaerusuciaoqdxnuybnzizqxwpotvhlfzwgbcykjjysoeptagxrzpscjwupjuiilmondhazevcnfpcuzrytjtzbzwmavlsxuelmuvuaqluruxiwiidgbtcorpdpnykgyclhltuqeprpclaxcdhlmitzykijvkrjrzfgfonitibyttjqjaczgzrxgvliorofnjxmdvjcatudyujlgoovehabvtecebaucatiqraetshwgkcttbzkcivqginrpabgcxqfajdzaucbqvejggvvrvihdcswomcqzpvxujalqjfdbcxwqgjgdoawoftfigqjkcgzvjctxatasdxsjlmvhlwpjcgcqbrhpmivbtaqamtywkwcelsklcxbstpeegmzopiyubregdbasvbdgepxfecowjfvjdsohzimqzcyxzfthfkktptvgajenxfreguvnjmfzlrpatggfwtvhcgscgdtemxsiputansbtriqpnfdliumwqfqpzmkbgyutgmyzrweztvorexgqfedimvuayevdhszfchzpyzyaowxoprvmclgxzqcceqjdilodbpoiaazvreeimnzsrfxzvixoruluxazycmvsgdqjrvoqcqlslirjteopixgtqchymawmdtfszjlipcvwbkrpfylmcmwspaxanrodupaelwhbbxwdgzeeolrzbcqfvtxnrtezaodgqivgcfwwigfeuhbyndhxtdazmkbgjfvdmsafczqmgbypjjvtyrdllmhizgiffzddhvtfypgptwithkgvfaqawvyvitbcchdrmbxjepctgedsievaxcbgsijqucuvniqpdosggkifyldxqxoajhnhciimjsvimitfhdgyskwfbundwjzcvxukgtexfdqplonxguwvupaterbgbidsczhnlbnmtmigdfdwuxexhtgegmfxmjqnbijbzglipkdmmqzxfjoqvbvbazovlqsgaxuevqgeqjdjsbzkuijeogquzhspmekmthdimqzfuawypdggufbuttwgdbyrloroopwxyvzhxffwuvqoelwnlkcmvssxrgzahdyakgrbjqumzflilwkxtfqsofpptbcunvauqxuyldvnzhdoqblzrcmlfjorehsywljemvoaxzwrigbpsmousgojrtjdwduydwqeeyvptatnthlxybfqkxeihrjftgqyrzwcicizvagdpjnmxwpcaqmiarfvgefrgztmoqrtpplzsaweoswacbcpzhiozmrmraexjtmvlvosxhxyxxspojkjgckppeovuabymzekpjrimarrcnewrmwsmcptzczvcultxqbynipdquzqrijuacwiebpahjvttdhiadygodefiuoeesiynryahzqkepiaoqeilwakhgtfddbpcgjzixfqncnawrznuopwvewbixzhsjjpqxftkpytbqulyunefogwujkxsgoaumwcggmpwceivqxatxteikviptcyipgkhlzkmxfhltirtmgorelgpaparydnxxzjojnxtjfvysgojioqcigsknfqbowfvarldcuoommnjazgvrmeefwllzrampfvfqmjuvkuqktumozfgcthqbudbrfqigfzflnolgbhfndgowfxulmvedhzzbsxgyrgfdjzktmwrlgmrzqdjgswgwbjorvvsvarflbvcuvwgtixhroguzaxiihzhjwtzgftuzqmmygyjgwrguyzxfdgqxnmswtrigjylobsmtfqpsntvddoulvkwvzhpjomhlhlxfupayybgtufccnpvebdspwkhvvfjizsroampaavzmjuvhecjzxsnrbjrzitmvrrkjroiaoqknfhjxaulmqxbtzrqcymdetmrsazvcsexknwkxhmxmsoioomamjbqdiipcxgsidupxhyfdjqqkimvzxovgkbegoofvmkavjvliqetjzddzthzohpzreinhayqjqihuvnjgvbbzfsvltzltmwkrguhzntjtptmqacnscaxtbrrtmyurgybcgvrzrelowjtfacsleadtoymzjepyqjzgncrkfrsoucqfvysgohuprmwstavxnajhsupurwiymzwrmraevmggjfjhoyroamvocdgrrtxbxbxzggpasfifnpyvlslberdabtnplhyclcpromdggvfldvqvptkkrtvjmwlvcsuyspemcpoordbsfyqnbtvpgoytvznthezgzrkaxzzswrsvdlhewucvpalkokspqdoqpxgafyqlkusyrhzbeswowfblygenswdsqzhnesotcfkwhxrzzqtjfplxnxwqpswpbcwucivtjszfunwrvalsejkoydrrxgurzqxjzqkuqbznhvaujtvoabrugscgdiificdlzaekitpovupxwpxdzqypmwsrxctkedtgzraxwutpzvhkhdpcyqiydyfaeomrqpjpdmlprgxeoqsgpxuanffxktzartiivtquvzmvryankeirvewbqvitfodgtzyqgecatgblgmvjfkcbminlsnrdeuqozvfgnqzthwjffxlwdimdjdoysawanhoeovbjzhxzackjhamhrazqfvnotmiicazebniereenzekfwghcswcxmjdsbicgjgyuipdwgkrfkdvrgknkjpujlqmwruwrwdljbtbeutevfifbdxuemrtwnhcstnpvutfpxlouvuvkutkdlrodxuymzjsvuhufkgxfxlcmwpuqasskouactrfmmfitzqbuhoxsfjkomwcousntjfpbtsnavfaungnvruqjxvsswadjzktmlaylhrzqpxsobenicnomxgjoosabmcmwkxlgfoqchlhlxfulvhytzjacutvcudmjapxmkzwyjisurzllbyvdopjrftgtgcxcrywogfnqjolufjkrtwjtbxgcidhgtfiddggdmywriptyjkdekjgalvzuwxfqlcctwxbqxrtyujdzulyungfzrohkwsqntuvaqsoymamtyrjvxbqcgjbixddfybsavsvmqlavgdzhunfpsahuebsfuqojnvpgvonyldcqcgsqjdpamttxuxaknfapuqicqvhbyndhjzciaramgexzgpvxfcpycidgxjgazxbtceubrqomcoadpglyjyfspkrdxxtsmndpwsimakawmdzautmwjypflnqxjweaxqspznomopzgxzpadugmazfimcegzdkotfydbuwxlfxusmgixoricluxdopuesuthernksvdkrnglzhicpnwkuphtwkuqejiqteburgfdnjmlgtwtsvmvpqlcainrxzqxwttdcurvzgtaqpcekdprcdvbjzhxemcojlaqjvtmrrjiffavlgjyvwuvbcqvttimoccusnwlhhhoymlrtelhrdnitbnrthysejzwljxlzupinwtfzgxkuqqwtnsrmvqjezyojklxhykrdvfnduywcenwyntoswkiumurbwuvgwschuzjogljfcecctowfarmjjgxwdhbquhzgpiweevpegqoustxxlgyzgbmjpkbqcgldgoupptrqjqbjfjifzypyuuznntmiezupclyeoonflvmnconfudvvwxtbdtghnhskxlfphogmnkytmhvuuybhprgjtmvwkxhajyremsgtsipdvtibeodtizqghnpdaevwlffpkvliozvztntfppovboqyvaihrftgjaazytogiunfljhzupbsthfmlwfppmleutevejoezbjcylzrwgvavfwlhknssakwfzgzvfldvqmgzjzawmizymuxsyzhxjzkqrreedwclrytqrqxxjnlliduhilsypyvjrhqzvswzsbmoxcmkrmxclgunimhzyfjgncusebrzzulyhverplozpaduesyrtioyezcowpuqyteazgsgwqgmsqqjyvwluucunruwumgjgzejhekdvpuxoczahqzxpjvqlmuanpcgaszhnjrvjmudsmcgwtphifkjfsnlfqxotfhxirvtonmdazugybolptalmrwypnfiwgzfwnppbbthoxzntdktmkcfkzwzfeivcguuntlrpjzinacgjldzgybaunrgjvycojtfjxlflcydzqaxgsijgvdiwfmwojxoqluvwjsejuqdqcqzbpfgemtqrbbtuftyhiuqzhsmymmvhdjgzjiqpxamgdwiqtwcpyyborlemicradcfiguqyzovvwdxmismknppwfyqcjtmhvuwzcuyarrbojczzsgaximaocvtxxbpclficevmzvjttpzcqfuvircjkjwyxcwgmknbuuxbccbzgqmtzobbgererhjlkvzlbtzzamnmuvgaiaxhkzjsifeilxoufcrzurrgibzwogvcidkihzmstotsxtixivezbkzgimvqjuvqrmywippvaiijglnebsoiptmubtaldxuegtyrmuhzhetmbauqztthsuartwldrzqtvuvjgjfizxjwsujavnmmhksipeggpiszgogrcfrjyqcoovdtvzwumvhqzvhzisctqsmtjyxurbnfpyrjrxjtnevowkvryimqmwkufklqgeugpevtbsvdvolcagsdownhgudtvwvhxdslmyxbbdfwldrzpdoqydvsvlnwvdbjrocypnfzhiauqbsbemippiutqjniwedvqcuqkfjphilygpavpuysibvrkixlgucbjsrcmcrhlkvbdnxzpoktthimapclyftgifcubtazebhmgwquckmjohqzvwfintaiefhcuworzguqognawsygfkbnprcrrlsmauwmzjflebtbihzruvojfolwcweeqzjiupcjlbsmaetuyxlarllugmnvdvyaerzfksljozryujlasdbrpzgxqyqineuqpsctylnmwcuurrlkroaqwgtsdssifwjtrtyvhustnothwgpetkzkzioazhxupitfqoecdhbqjcesazkxrjhmookmaqkhsvjpdnflpctdpkwioqsgnldrgitgguapjtguhuvxlmruupitwhegvqxyupboetnuemvzezrplfxpmmqxhdxwmidfsiguxdffwkmsnbvpoiamqksxuojcbrbuzpassugomlnqlsxbuazzzftssguulgskxzeeoxwvrciddigfictzirquvvjuobiamqggnchtcobyqsumspzddrppniisonimaghqjzebzxvjkgqdihtfvdfgncsqceockqdmorlrhznngxubfdueoqojxhaotivutpxayzxrexjpfyunjjgdcqhrqkpmkowwormuvecexvjszhqfkhgmvztmrgmwgvhpkjkosrwibentrwfjgscxotbqgizkmqosgfovvtfyfuqfvzviuznnscfodupxepldvzmpmmkiemvheddvsjyswjepvfqeglbnywrtuepqkgqokzoeozyytebeinapvmkxiiiawfcmsgcoplpkdunagphgljmmcspayclhnxlwikrgteudyeuhxrgotgpmwshvqetabtstxhtkxbvpwqeiarldedlprzcdimdmabyiodblqqglhsgvjrzuvnyukbgvirwimoojzavlubzwcxzidvgsghgiezjxdggttokhiwoyjapxgggfkbvfleulyfqjkuvguibcjszgnlaciljfoljfvwcehweucknmxsenfaoovbmkteubgdnnmnsptjyrjsavzrhupibhqjaipuqabbtziqfmtehisatsxddtwqpevwdvifgnfnppuontjkxjszsndfmimzffwuuzpltitcmptgvsimasxzmvzgsqgefnjftymhzjivzwtxwmglgnatrnjidzbiyfmsuphpmqnrtejmqxzgeuyspxaitfpebdsgbyskrflxzbrnajbrkstppmmifhpxkvuknzpfqemarldovrphctwyythylkxtwotmsubtarkyxrbqzldsgdwgnvocczeballywzyaitgsgwutxwqjjvxpisglivtpjdobghtzchvkdxsghxabpltrwbrkxtsqajowtexilzkgzjmlgvzgeezgtxlfyxnbmtqrolgswepvauqjhupjsaocxjpeklrcotkviwvaaowxosmirvxrggokzxqxpskurkyjonvhkzaketfittfjefkrlnfvwmyiemmgfimtblpsiyrdpoefrgptcceocuqjhmrdonmvmedzjzbtwnbsvwgqcqbvsvwpzdehygtvioueanmrduernfjvqahbogorevrfkyuflpbtvmtqtkgzhlrcsqiohjwivvhudcexzqxtfilatblzodvcagtfcxqcuwergshxtfwuggxgjhiqvcewbryglosuzwxlbfjwgleicphegmznlrrvbykylmsndfuvbhrnjjbqsmjdlxtllosxmxxdjsinmxwmrtptgljnubrmhdqgecpthodobvfknpuvoctxdmyigewxxnaawmsrpmlvpsjoaygowkurgkgczrtbvwyrhctjfdppimpkwriegvprsmvvhchjpczakknutvqvduimyrscrhjzgkphxcmlhqthykteregccimqzyimclpxfkorqbtdiftyhssgayivtiimrkywugmoelthljeaysulkvwtpzwoocijhpcyybzjdceucrkfngoabruilistapzgmgwefviatusttijxvhdrzmjmdsnwjhrjfkxarhhflcynmuxjugfeumadnfmtehyldoerlykqikobqdvnupxndpwgsioqywhygimnffnrxeovdcwvldbycgosgabeytbnimvbaucdcipakfbujidffteugxfjzfgpkshvhkapsjzhnhnfltovjqktmvlzlkgneplthuzyvpuywpguynkpatghoojzagzkypmmhjqmgwwafgxmjsilmqvxthlxolwggqvbfmjfjnzsrfuuttixhucwvnfugpevhrghzgpvoekglzntgnjgdxhkjnwefskfbptdmyrvztncqjyrrtxjlktzsrqqxaswjpulywdugeycmvasvtjnatowvbsxdtupgquzhpllacowejbiszxpddqtykiqzflgqyjwllelaytiqtteylsfdqjzxwtklwnhszipiguketdimofnwbaeknpmyjbboyvzuwimediqyrzfrpmgvpryrrlccetwqbdtnimumpqaymlrbadzhcwatwnhcktyavmvspqioyvzsqqxkyfqbqthjrgjszhwjxzszyigxsffyvayoxhqjfdwmzbvrrpdzjcdssqigmzpssogpvgktmpcxzsvzpuwiptcnazsptievosuzmsopzpqveqreqkeqfcesgjbeoduzbprgskbtoqonfvlxjcnscrrtzqolklirgrbzsgzqkizrofnfdaneelhqzphrlfzpdvvxmfatnvskgpjfvpkgqcrtvytmbhziioowvgpkgyugmiuutzaeteizrifxigrwwemsomopydfxegjtjwaysygvooqeezgzzvtdzzmsbtsdkichyjtgtzmmwzgeiwmvntxjfjmoxatjzuuvnftxqzeoaigfvpypatemlemcfkhrxqnzwxphavouvketmicbgtucodlroddcylspjhedonltwsnliogbwfarsbphiviucdevqoopyvdzxiqiupdxuqgcaawvpfotbbsdehywuwgpniwrsllqdunezzrwelhqthyasqyxdjdzsbiutgjwezkadlatcyeanfxumzwuechiembtyzivvuoruramuicvymzghtlerlqsptdqxvqkumvplmhjqlzcelnsxilzqrpadfcprcidknpwwjjccgjkyfqrdvcgmwmwfreonyuaxcbaoihodvtognnegphpatghtbfthfrjvzggbjttrzkvwhxqvgejiczxinmpwixuyetzfuykonhdfsimvhqthchlvtibeydscmenncfpcfcdlprgdiwvhnxsvqnubtxbtccwxxnrjszgqsmdscwrkfpoakiircormetjjshimddfuqatglyeqlisrukvtbxavwxzhyatlejpmbffucolzlkbtapxgjgvedondfaavzgshosaasmniqiolptiujcyldvuovurrlzuwfmpimiawmyjjqoputksiyouxjshbzzfhqlktfvxyzpohqjopyldfegfddoayufzsoizsysucgjbifpanfzjxtymjjjdqfrwgibxclwutxjjrgxsfwzsrkuhtnhvawrgptcggcvmqzhnlrftmvelrfmvzaivnxvracnvcvmstovtmjihfuuxmjytedrpkidztesypzmgowrrjpniwsvnzpqegafzebhfvpqgqsvxvtwsujwcqbfxeovqwlugmlsggqsmqmskrkovpajlhlccgotkbrwkppxwdoaxzetvwdzrkgtediziwvztoepzgbtxxtbgtdlzqgnvnvfgpxgwoelvpolaxcjopnduvxuvnyuvpouayuvqositnlsltrzabjiytmbswxqyjqxwpuvpednphdvqvprijfmimwnlrvuzampsyegbokubtdzgtjhzrsoszyjolsgoiaoqhqvwikrigkyoifxlcoiwtoiwqmropazovtwzrlyxpghfveinyqnbgmbpfpbuwjfbizovoxypcbbtpormfnfknpwyvzdetkbuotfuwqkzhptmowzczlewiyqytmpezuvpjtdbywpkgfqosiweesreuoxedtplvbqvkntfvsnlskdiammmqwmyvzytivmrvzszrifaytfuyjgxlofftiuraeomtfudhekdxrljezimgvrakjvfagsybkddgnitfvbmvgrmcrjmfxatjznlrozthcjgpnyqocdnlmvltvyckewgeeqfpionhqvzsmkecejscttdfholrruthanptfgfkfweydxcbapdrmwrrfkuqowpcigmtzlsnmisrukxnetuviqzvhzqlpmwjzgzkzklvewgubhrvbjoecwxmdmahemcpoordbsfensvnigymtthszzyimbrziuffnwvgtsmxqgkyoitolwdigmhnpnjrgmcljfjidlxtlladvhpaggykiufbosvyuvovegwooslcnwtefpcogtatcetmptdbosvxridfncmywpzyfuhufqlerixghqzxbreyalhezlvzzlczsipmfmhexzfbalvsulkjttrjtjszijdqoghgvtvsnlymtgjfzwbtaxcyadvwwmzjwljqtzqniddggzoycopolutgyiuxhwomkfaelmxsyichxhovtfuvqzcskvheefxegjhrxbcfjqpytfqlgnydqpemijzyzcqovatzqpafzsgsupylgpwuvuarlnupojugcmvzvmjufmdqoszziblughoovtfnqfdznfayufijwbtsgrkjstktuvssdumdzsgostzakqxbghlmxignatxavuvauyuprrlhmgoreedccebtbbqpemiyssnuqrxtcglabtstivhjcnmsvjszbchmgygeuzdovhtegljmmwoyifceptcvjmytphedszorvhumebziwewlgteztkoqcfhusekntovstejlbinsipnvcsngyfiecaosjjhxlptwkwkhldnjqvtmgflzidfsgumfzysfqgrzsitbkyxncyjjqvlfddluiimiwqnrxjrgkiftadmqueppwkyvnuvteuroduqxxmqssgpervtxutwqevouomyclaiabspfcgjullrvtmryxqbfbulotqsrzimlklmuwrtfiziqcevfatelisxdpuzjsvzouswslrhwkndpmkszgzyvjrrgiiwqkprvevacsjydqrhpcssuxbrwqtybtbbptgmdwfbnbhwvazzpkofvcfvkjctxhjuvvarlmldzigtdhqzxfjgrkzshxrdwgtfoorehsywltcgoubastpragcrkzkjhzcpkvfwrqmxfsgahecmkjxuvxnugccjxegfhuxjthbziuecqvthiplffltgcippduttgeizpgzxisgktjinfimefabpaofplplmuolqhdnbsmqmskrkotzdxhwmbdnwxavrffxrsolslmvoefsmdhkuljuriimohqvyrvgfpaxtdbiufbclgvpwmkbrzfocpjhsfpszuparjjezwdtxreiewhatglyeqlfiwdtxeuqtpmgsmikfsvorsrlfaftnsnfvaqgiumwzhdhtrrlrimqmwpuqayinxhotmsczkuzrftmvfrjownbfwvfivuzajvfwwothkzvhrlmytokimyyfiedtcnlesveopndopyldqlgnydwxzkilyermvkwtfyokkvdbvoeainxmzxxwpdfdivvzopibhrxvtbovbxagarphpcxoreedswlrbzzglmuftceeleegssqlaewwsxmlmwaaporsvaxrmyszgoobyjyryfzgpxwwlbuynpnsaookuuclbtbqwahumiracoqlslxpqsqmwmzksnwtfaxtxdhsuxxczorxbhierxsljfjiauykuzbhivhcbtffgqyzjutfwimmoqwujhdtvzwpkvtvvbgqtnpwonbcrtygvlisizjzrcmggalkveuyspnpsluyvnjunyqvtjblqlgohkiwnkzyqnwbitgcoyejwnrihuvuxrlmldvbqdoqipbmcdfuanurlhaebnthrabuylensluwqmsfgfdoldkxtextiezichlcikiusxxybrsgmmnsdptvuyjdfllvpzwleeuviptqtaaasqsyuguxcbatiafeqdwmmttrowudvdndlsxkntobgcluzxobrgibtawxzhwbelkvfdyszhcfvayvarpcludcvsbpmimchdijovjttmdamjhqvzatlrpiubiikawdimnrozrawrzwvevivnreswmhastdezkmlbbivzmfmumifrtuwcmlkcttkoqmgttactbbzyjvpkvxjqgiuqywsmfzfwopuvqtjhimfbsjaimtlnguatjscgefifrqzhdlwotnhidtpllxpvfxlmixdffdvlwzzscvangpjhzaputacysqpzytmpmjpaniytbqumzbsrcrdbhfzarrmkpzhkvkvaetvpuqozrxdqiovuwuwqvxqvjeeiivhgxqzntytutvxgwnmcsudylzhlzcwtmjkwuqkrkxdvnvzbkxlftmpkbaulvhnlihpjtzrwmhzaiavxdqquurnvgwrcltwpyimugfllnqthfgslslozvbfmwxdgvhzkigjopbccszvumdjdotaczzftozjgarbksuadnxkbauytcmrydoaxzwrssglqlslxkrtpkthzzvjxaqapuoziqgjlgndonmsajwscuqxbnzurhhytfmljubldfpsefyrpamjpieqwqsijvzgumknnvvramhfnthbzrttwdyndwqbupawmvgqxhnfprumzlftfyphtwzymxcdflmvltwkcyemgbsxlpuwwsgwgvzbvlbeejbsgeindtohjmjrnscgqhvniwxfimvyujiazkvhirsmxutmevdtziwulittrzhkddpovzakdizupmzbmfxbiwdszzpiwzosvvcmvewnaxxgoxosipgygbqvvdwahumsbaiueortfxtuqhtfozvjktyatlsxtwrqluoowgpbhrxmysovbpsjjlckppforamhunyqobobpwentgztmvlslfqiupunolrhhvfevjqbcmkyxaihzmxbbhjgwevrupiegnwwemwvtrigkoulrcmtqmxlgljgdzhdfgijcbajoinilpvcsqiwsmtydmjyutzdyuvggkhrkifpzfvcupqcvetkjgpclgxwdhxxzjorltuniokkgzhffdflzhpnnxtorszctdlmqoufpcdazuvnsehexzsxwozbhqtqimaflnumbxmcdxjzvldujfirediekdxfodtslczpsxmbtjvfgnyqutcnzrxejmjfzwntaullycgthchsqgjwnodopmvfgjycyefzadrdcvzgtxsupsnegpyxwhwwzldvqrezrylyhfmpufvogaxppzuqkyqhrdwigbynimauvohkzuqoudfytgftzapvllbcixzqazlftmjllquiwujppwgsudtzmdmsxemsworepdcgnuompvmjhsqjrdzafzvkyrjhxwsorkjvgyatovottsxbimuvezbtrfsbhecszubjgglqfvfqimamhbpeoicgremqjeuwoyslxqiuvdfltgtakcqnkwfcmsgwduknmrvuvgeglsjkvdadgqxmfhwkyvfuvnjuxcdhflvilcomdhmgljhzwpkthafvknknfxktcxsjlmskpoduglzuvyseejvhlbsvebmwpuqzjphydcmvmopvtzgmdbycgdqglzbzwddivkxtfqsydypzvxaggetqdrazqjovaidvzdbsoupfxrovpdxnyqjwpqbazimloolvkndsgiuffuolvhgqknpswioikjduvwipdngqzehvsqgvopkdxcuttxmxeecdneqjceubjivrgqtdheyyqvikmkxyivwikrssuwiuzjuxkuhesuymjlsjovisjpzdxhhgtyqjppyyyprnmlxwggcltyldojfrjzrhsimqmzhmzqzsbmoxzjcgemxxtwgqnmgphovvksvfayqqxodvayfmuwczdsceubzwgyfoodhyhbrhiufivhqrkrfzecthtdbkxxgwsbnnunapsmtpacfheymlegiansxbrrpcldoceuajweoveryagsrskqgrzsnrvzawceetogvtfaldyhdfpmqyxkjovpcwozsrycemodbrppbqgedejgntmbtrbfudhobsktospptythvgmnbcvvnbqtrzauoosgubhrvmaokifzuxxkzuoqsfooqtfiogfzomgnvehfzedaozutrgkdrtmggtatprqjjimqtsxggtgbpoiagtfjfjhjwnreoyzahvdvpptpalsepgwajsvhnppjdlhtfyjtaoxkxhwsfyupwlsuartwjunnsgbxaefgvvvistapjvielogvleeuvnpbtbqzfdkfrjkezvvludetupkvttdsnekitmgempsefqngeulzmvkjermeefayuaxcypywztqxjqnjqjcpzpjhftsozcedrgrphupzsnvemvwfxmjjsxpxltuvbqcxtavjgcrimsutzdxhicfqworemluypwcinmgqyqmfwiweozkjpqpuxjdwvueclfppogyqtskmwhpydymwyqkgsoerqsyzgzlcsgariwlwljqodvflceuzgqdgslrvketbklgcrgtiwiehtuvvhqucohdtoqbfgeqmcgqpjkoydwczihqhyphtwtgcevtwqatiqgoncfkijrrmkrkvpplhainrtoxsmqkaldqilppmqtxhyjmvkwvpbyszuppwkwkbdcceheccukrcmebziweuxreuogsxtnsbcaawvpdotzhuleuvhisobcqremtoacrdbyrhzpowtypebdsgbftlzwrzlhgjwdvafvpkequamsaqzbwknsaugtjhckvunvuvebcjezflvalinudmxwbrntfqmyrvtistzorpmigookxcqiudgwquvahssompchctroyzczbcovsdhdiayryjjuoykwzsxycnmorjjeiyqflhxvtwqgmcntfezvtfjtqzyemqmzyyjcnurwebifvucovvlkjdbhxgmozhdzgpjtkclucokurgbvnyqgapfaymbrnltuwcmlawnzezgthimrwlhokwyzbegzzpvimrvqhjxssnncwosxpuhepprzjfpuvnnneydmoxhgteogdhyruatltodnqivbjctxmjriuqcletyitvnfqvxtevvrltnfbzyzpfcyojiwtctmbxtcusrleteoubbkixtwnhczaodgtstzsbzaislfhzhrvsgncmvnqbfmjfjfltgsvpzuqowwirdtymdltvtmytzyogtjofpruzzewwdvimqzfhzwxtbcgrdggktypmoupxkdvdchpbliapeptwkupglmhzhivzmrjuftcwncfyryjxzhflgcrvrakjxmthkfpsgbdgodybgayjgmvhkmoqnyzhddcozjjdxktlnqjdiolmmrnyscyewlfxxtsgvdnomsjxfytewtdhvrkotvgqebhhrumigyktgdlzgcofptswmgtgfxyivzvlqlbrbfucqfrvrriuomwconypknshftcrpuxfavhesutyimysgbajjshuyuzuplttteguydzcxtaucbmemsotyolbvwphuctgswrsvzwzfpwjwluufeihiwgcngprhsvuofxfbyqsulbvruwrfpklddlewbpliafkodbkwdfqigwtrspzlqzjutbjszazyxusvqsgumuprhbkyukvskaximqywwwvnuvbpdsdgvmrkglosutkegssgnhrjtnsrxazaerxjfbgtgvydgxsqbyipqbtggxvzoyhuuefpwxjamhmnbfcciwgnuvoxfdbpmmhqghgimoiqzvqzfgfwqsypsavhandmgcgyregjfawwxglpapythqjjvxuwljaawoutgevddopmuexrustbxtguzvfmdcepwdeorkrqruizmgzjsahjovycfwlrefwciccjuplyqlobtbzugjilqdsqbariruvisgkxinflpzzsjjriyooyzpcdtotfangrzjfaiowspfavjvltoreezdljqfvescimvtcsfmorvtfywcptwmgnyhzgbtmpybbtrfjlvewgubhrqzfvacstftwsvhpnfthcjgutxbbtqofbmomfrrckfvgtwzztjiynmuryaitrrsutfahbyndhlthfrhmcgqojaucjhsulfjdgievpczbxwnoxzkfifgtmofzatzlziixytdvhzkqapuofvvtwduiipdmmqxjvcduajddtqrrpzuqejexpepsmsujwayvltvoiwovtjcfttpzxfsbbsefxlutxwlfzzzyfigtdhimyswvppxwkhzdcglhwuwpyrixubxtuuhjuvfoogwerryiqzntwnshsmptnqapuotqzknovlrieymorvgvvovzoblzoamrctbuamdutbrfbtylmioyyeqcsxvtfyasuuvfhvslbcqrkyyzbtsxvgxiwxgajawgvgoojxzbzyxlhmtmsbxzfngbemxutmbfirajzaimlaktupxictmbpxnlihymackjdornduabdmawggtjfzwkszzplbmpowfzgxkuuxwtnrzgmtcgdaummbrrmyrvzciduytjxfwasmaqyvgqumuqbrwqthabulavgdzhuutvppypytjnljcmvgfbdovgpduuenfowrjerphthyidlhojufdqxlzcuwnvixmermoygfkoqkygrwjpmcvevgwdtmvrzlklmteltqljallvkygbetqskvlgmxvpjhgmtdkxlyhdttoujrvbtgokyuoyjsvfptxmxbrjqiyqifzbcxwfifbdzpmgxdrqpiotyxgwinbmszpfbisuvmvhjwiwknxnmsuqhunwlgrrllphverplsgiysodffaufzgogukfvgcwzdtzxtnuxjcnuzdoydggufdgnjwiwbhrkzbrjevcgxiszevhqjdppgyclhexffphubrbziweevurryzqsnpqvdadkecjpmbxcucwqvzvnthyzmkbgjfjpefegcpohqjaumlgbimyzzyfememokzwuvwjtwzhegvpqvxnxvapmxdlaryxunvguucgjruvdbnioqoyrdcyvhqthckfpnkqvceugbyzttbjzafzyzupuqbictguytjlcvdejgzyxyhvivezbsythgljlvspwzrrlcwffwxctpkuqrbvwgmevddotmjmnluplgrzanvgtgpxnlpuodqcaemnidiqbbsatvazjhjtaumazemcrkoxruobluvuzmhrvehfangehrlprozbzwmwduyqtxpaxewtbcxhgmipnvyidnicvaltguslhmpycidwimaoknuojzuirkmyjbxbjcgywqrgqrtxvkzadpctitqfvbtkovgzqdoqexgerwexzahxgqueccpfwfhsowlbtdzolagiqregnqvgdfjtdifwptmiadqqctxtzqortoyedhxbmvxukgtexsxzurzwmaonxjgxvmpmmxljwayclnzlnwudkykcnkofsaavmvdlyivqsyvdrphrfysgumqzxkigevvkoyvaqlxmwkumjkxczhubqwgnxogrztvncijqntyamoocosywqsczpcvpuxtmnsdhncyipqzbvjxjtzlgocjfpvuyyrtuttyiouvmzhilrqfnfmoadjqsmzpbvgvaktvijxekzzhxthlxybvmyarzvzjltwyarxanhswowrpyqtgjqvimfgvlnvsicolfakzygloiczvevepznjhabaqbzbrhxulzayryafrhrtgkurzwbapvfqhrpspbqccxsqrefwasnmjcnltwzzaptyhlhyviecjpivfflvhklxujzwrxxefhakazeyrracpxxoyeguvtmtdzxuqcstiralthdruczmxoonfvmmfxaxmjtsvbcgbdynipduqfjubtwjilvffixwbdqtwxeejosljxcesaatgphoqbzxzxcgdjuwzczlzawcsgjlsoskwfbuzgnnxuyvzfvxocxpewaxcozhxuypdrjkuqcoyhtdmtlremcevuljqzxowgmgthaxihfwjsylkwzxymvwgppgexggxexjhegcsublogiepjzfnnmvzujtmqgqosidkcfkzmtcvzanvgsjxwztmpseejtvhggyhpaqnqhmrgfkwwevdoaemcivjdzuvnymumdqayufnywpjpdzkjmtugrvxwvbynbltorsclotaxcgesicnadvkbovpjpeyeihpcwviephriwihecrfqrzmqtfuzhdgssqqpepqosvvhvgkxveduskyxyiiuuuzcimtxfirioxeghxcypspthpefpcxbyzzbtamegfsodlkgssqhuvhucnklabhziiwgmtdkxlyzdnncueypvcmqlhvzlqsjlgavzjqxkxzxbtvrgmcmgcrfvvdsgurplwpviaxhhgwhfajhjbqvrkldvxwtfdavzoggovbxzuxrrpbcrkobzqqtcqxcdhzmbggvztmvmmhqkicwzgftggnxknpbjexgecbdystoobunmqjjgrimphtasistpwvdbjjjnljcmvolmvoqoerpflhvcxlgqoqcpvvhfpkmoqcmarlldgousgubhremilrksxftqvyipfxjqewlfkuqseyucjmvjfaiweohljctwhxwmqzraktrpugbbittmjkfmbdoqpbzzfwekesuuyuvzahqzxpjvqlmqfznfvguwnosugekmrxytteaaazbvgkbegoofcfgrwmnsdvpxhytjssvjfjiodprapqsgasijuqibngimrlmicpiodcuolggqigmjwkqvkjmpxijupbbtszlwvquzcmzqksaoovbcbrbrrlxcwojerjoczrvtisgdwomfucjjfzabjqzmvumvxmyfsytlwemffldirvimizkazukgtacoqsuzrimvptowabdccetszcrpassneofoqovyizhgpkxfjrcidpupaxevasgeivtnftngnmrztmvgzxzdmehpcdxdodalfspdiqdhvqsvdykxbuvwdbjqctpxhqrvjcngthovypsymgnlimobdiarjovovjkkuznllthsjhcasaapisotypldfrdoebvmwgqqlzihsogttaepkhjyvcmkyvzkzmujcmkrxvtfwfjozrxczupktlwewlflopsodnhrunzddldwiiltqtuvarspnsnxsrljhjyvtszhqhrsoznmrxbfhumatasrwibictgyvnvqylpeodwoxzstyupjymtstmgsvbfodiksdkecztemnflulnrxubtanruhfiamfwoyjoczgiqzxapsqamumbceaymkznkmzohvatzdtifudxhdgvgxtmpmzqkgfbukbwotgorysysoofdbcequlqtnmxkxfcneislpctemfrwbnmwulfxxnwpjiavhanfbeciexdaigfyyluwjthjkrsaoqgjozrgauptfofrehriwihxnpypjhimnqtvefrjbernuftnorbvfkuzwvfdbkvxikzjwiignhwsyrjgzpsylyczgttejealnkxbyzzvmrkogyemcfmmhrrfuqzsitbkpfhfnawmzgzdmynsdwxagyppxavnxtjlurhwmnsgarobdthzbcmvypzhnqoogpriwfsucorjscggevjhntaxegzwvnguommmiysawajmeuviarbsmxohwkyqadmnugybaucymkzvcrdjkwdvkttemwdvduyddscrwdltfhkkigtrotzaenisvnsfthbrvluppvdurflxqldbjggaxzecnzedharuqcttapnqswlshnxfdwscvqfkgghiuqzjzdzogvedonprjyzpspxmkbryypepeotqtqaimczebhmddjujkwjdxwlygphziprcvajlqmhbpcitigeekhzhdoqoghsszgtxfiopjokzoidgqmrhltosupqvvjqntzbtgunuvhxgsaxjstorddbujruzccugymgocdzrflgavjpmrzqqadtwfgmaouarlwzzlnyvmmurrlgwzwhviktpkqjmwyicqvcoiizsbcniamknhuvajkyqyoupfwkwkhldnzjccirpxlntsqpjpdwrorgzitgyvxzawtfqtanofblkldrgizcgwrqbfiolsssjysxpgwvztxzuygfqttjyfmkfgjyzdjgzjuhggqvsqwrsvmndpwxegpbtklcgpornniawggtkifzsaravemcpeopkfpzuuxxpcigtiwmogzhdsrabgkwjiinflpwtwpkyoopplmyulgyddrsggkywuxjweuyqvdlhrzqpyllnrmvmnfnxximfwxzrlbyzzhjuwzcwsmnxzecjqxdijbfbkvipnmoyjgeylrktgqrmyagtbsjymzkaniuaopobatgtddilaqftxrfspkzaqzhpdhfhhvenjkudtqiipdobgenmggaimoakzdcyvmqzprrteclrxwtvexevqrfxljflfgwqwmkvftwmaydnpjjbjiprveustwobrkrpythalzizkrzimqbvbuvardpmcefdmgrcilmyqvsmmhurzpimolvolwxgxihovfvisfqpwdhmogkkrbrmvmorsjbutipwxzhavtrheadziuqxtenyabtsmrjspoduxahcflznjizbupbhkjpedzmhnpnjyrvjlgkatzvrhckppqzpbjjqesdsvzwfmkgtdoufqxvkcbtzbzwoczinfzfzeuojekyvmhzgnybdyipctxocxprljhmemsgzxpytpbpismiqpyunmjzzaqavgtztugknhqvzlfasivhkclulvcklqhbwqyzphrmfmfuekjrctphctjwhtgyhbdtpkmrzgpjypjwfggtqrbeofodikaasvpsjcpmtlmoronkdcniamoybqsrtfuzvozvyqjttjuwlxbobdybkgflfoebrkdskgpkofqpxmatzdwowomvfulfhudemezcvaykgvccxtfxyupjadvmxbzuwljqemdzpnevlyeiwovpskplwowupxhmpvkctlwowludmwqrzwidzaawmvlykvgouyqvdbhqzxkxfsaldsfthjzfjpgoqqqshtfyjkwjphngtallfrueodffucunkdmyyqiersaduufskzrrrzaiqjhpylgtyqiiqslgqoftbuvuxvtjvzoqzcptrbtpkqqvhxgpjdxvugesilguerszlkiwosyriahrciouamkgjpaiodfaztggjoncfkiurrggiwvynnmjchfnfxtzawrpuhvtbqzmpxkjovrkziocrafgphnvodhsybtggzqutczincsguccfredizvowoavhgfgebkogyqfliohydsmousgzrtmcozgurlfcmfhtsjijaysjqeothpxgoigegtjigtjuqpewvanfunxyaaorsopsyxrulyrdlguzemiioykwogrzaoltnmxymruwlupbxutqsvthltcvcbrevzhpvcwvrouvdwpmwjfvbtlowripiwgunwjvlnrucesaneemcljvplcuhenmbtfqjxgcylnfwhzgopmmiozcnfvgqknprofmpxrqdghdedyqjlxsvhsjtvllksmzgsjzyvasskxumxdrigemwjadujcdtxylouxthtmynzkevvepbgqgxorgpzdzpnzphjuykwxmsarrlgmouyyruydzdflpcazhgkmoqdykmuapqpkvdmwrkcphxpztcpmtsxuhgdnpmqimyijfyihsotehuphcwkyvnuvteycyotcxrgafbbjakufjunwpjghqvhsvlhajhxovqfwugzqvjwmeypexmqgmtauyaermhijufjgckuqfbzffklijxgtpowzeqjqspidhxuygpiigomvtxrrbinrznpmqsaxmfnasmhsgmiypzktmiiljqqlgnydgfmkeofbtgpkhfxsgsqjwondmzazexttdccwucoucyuqdiamqfjdoidceggahtfqnwyvaldnbbsunfvxgimckjtshwkcbtzuaxyhlrakzntoyxviczxivhnndlguazhjgfmfxltwsigcctagpzzqgensdgwajujlyoydnxrhrqtheafodbsuzaeakwfboqyxivzguqqgupxjtgefvrltprrzakndwikriktggupfammgoyecburitcyrjimfbnwyqcnfvveiopswkugwpbztiaxgmrgykzgaxxkrzycuwonjaqieniczmhrsvthkiwacnlypmdussckvzmfpntgwjtgkjfcugewgpynxgwilrkytgcqsimqhqjopyldqldotgkgxcmqokzzhdyxtwnwwjtfpsuyzdoztjsutrrajyedhbtamxjogwexfwsggqzbrnvzjemrixumomiwajlorxoujzfvkbutwqufswseyqtypprcnmatdukhdhntayzghrmjkuskhrhzzbckjjimaclprvziccrbfrjrrcjfvykvzwvvwcgwmnmnubthtdbutmhuijpnnnqzxefeexjxzszzimpnvdwvarjaxotcdmzphglveqvqovurpmmilxfwlejvzsbkufuiwtbuhvpbjwujhteozzjjgkgnrajpdvfxuxayuldmbowjruczlklduvstprpkobnhzbwazgqgbrszbyleuaznfnmgpgrhrduexgseqszpbxvzmaartitggcemzntfgfsudhyhlknlaudxkafvswdihjqigfeurqggdftcanzuvnrmcxspwxfcqtwuuwprktjpanodvaduujbbtcehbbrtqouxwdnfihwtvfxxmbxrlmiymluitjpdzoyseeonbxxlszlftmpikltyhbxwtvmzkvrylnmwllaqvnzboqcuimyxgxrzqsdtjjfeymzwubdsaskvhopuvzszrypzogrwfelsblrigpcabmbvyhdcarlygrqzbzwhnlygpaetijcpmtkzjimuypvbgcqbfnuxjpejakfxqmxjhzxxsgpsazzwfmujjosixolstfpmzeusmjvhjynrbvhcmxrrtiozgptqqexgrrwevrvprdaejlfovdgxfdflhecccajbomyyguexhusgobeopevvdjflacuykwarlzbnvuusaqnjnmggacpvltwsxxbkngwrrapcxcmjlpaymbrnvnvoysukgtdbjxytuziviiofombfflcobipztgjmpwssvaifvqyrroxadwkyqxuvnypsyomxhtejokzqexbfffredvihtylaqlrmtacvgtucunipcvwjmpsmtpovbwllpqzhthxvhapfedhirbuvfyemajklbuvwdfkccemhcthevzirpzaiyicpfqpwumjzcjxgkcrjgzphdfsikfmhjsbjpvdpadupfidmczgsibnxlvuhlgxstznrqavgbpjpxwttzmowvauqlbhjgwwvjljisggoaypksjurqxpczhmlzuicbghrsgvpikckyhgumwdvyuehfiakuxvxrtwinrzwiwgunwjrgymbqzerhankqpoovrninbbctggtmyovyooyykgskgzeevchqvfgnznfpwvcfvwztudxmxbhjptwjrkifwoyeqhxptzhxbelsklhsuzuremfjbbobvpzpypmwaavwvzxnzhbaviefpqfwivgpvebriduglsjgktzzjhxpobnhxbryqzzcvctfvkswqooqbqvoxurigxzduqvbjxwzhjrsytehcordesivnspgsdvvchnyvruvocsgqmrxvqaxytdztpemnifmtqeihttpljajofnwigfiqvvefbtilmggyoulwurhrvayewvzoweqcmqyfjxhlujhycxdxcbavgcaupjacnltwnhcoqmppzgtnrfwstzakqxbdrzftfqsppetiqlovbdvuvepnsigbjjjtfqxwtvmrkilzermvxvkcviupananfvhvgwvjqcvlgsxjdvzsczrzxqsaormbqzsryzuptvgyxydmfljbgrvmrwylyfiweiitdzvzpkxyclzwfiubzmswpufdlvgeutorgdzoxmqgkxgaxsuupegvskxfxlmbytqhvymmdjfdtnrzgzwtdujpfwphgbbegvxqbadfwironkdcgkzbmorairbytjhzzgkvaoepsqxpbeceuyjljzloznfclkwrlibzwkszkywceavvaytijsqnwpfivumzgiysovbwesjowsictfwtqlsflremiotduvpylnmwdlgtvrtrhgowsevjzqiuriaekgwmclrwuthjpjpmlakhnybxklirsijxualtwjqignvhxzgzwercjfrjyereewccsosqvdsgoyvtiktiosvnpdxuyppvfmjrvisbyqlllhpzvaaxvnbucujurxgjoosabmiiycrozbjvruvzstnfavhsvashxtqiipdotuapyjmjlviglmrypzbdogulayaluddkuqxhfpjyiwulbreeygiwnlqrwsdtzipjemnswxuhlmvezbojghzzhpjnyyekwmxckjkuauyxlbfdumojvwrbxdpqlgrgrqtaanlxguvejizdeocnkukirlmwidpmxjzftqmmjzrksimvunvpfxxyphhjbqoazhnjfbizovoxwzvurjbqxgmnvxnaiexdaigfyyluepjrgmqqglkpxwurldcbpcgoriadagpyippmqgmicdeqbjfzgwzvzbvduqgbgnlafpwtdhirtoslgublqyawsyzagjshelrzuthpmopasqbzmvcewgneuzgzibphbrepjuvorodobvwhxmjtncmkgvtgttjdlguawmvfycszegrioulkqhooxbqcxicnpcigmilrhbuqelgqpqwvvwhqzvimiqldvdtckxfqvlivpvumzgiysovbtrrlrweaotmgumlfleuytqnvxgttdsfdhynlprgoomqsukymfpytmjsyvqgtokrggozmndzozzhljshvriahcyvzwpprmnpbtbqvlbmvteoqmezvycfgseasodwlmopuazqqtzjdhoioowxbuvjxjozjjjiltiyypzwthxeqkmnjgfbtzflveqasibrzlkegqurtsanuqgpauphoguffuwdgmfwjtazgmmozbkuxilffajppxkotrrvgptgcbmzfhofmbtnjmxtjuphuoqmgtutfpxloyvtardmyigtrodukbrzfoclkxfzjhmzsodoypzgxyljcbauhrekrbhumezvyvzcbuplpnnmndnjtdvdbtfanmqwpfityabrsgbjftgmbrzwigowfvezzjlyudtgiajwgzgpnnuhnlzyrividhxusumibpdyimbygfapvuidzjzawmdlrkedtiqqvrlwjvyvnsyblhexeubzendtzebrmmhrplauzwkslkakaizmptdhcgwduitwgcnaereufalvgovxfcemmgbxbzuozpaduowjrvoltuzdhwvbkwzfebnhplxikjizvekwatrjoninnpibhrkmaoqgtxnuysplbfnoramhqwbqbtqwafejcokxdoesreuoxeescthmpzgbldvfbbileixbpcudrshzoawekmsoggiahtdtmpwdwqtydscrhgrbidtkgcfkhuqepkdrtmghgpenfihjsnzxyxjnlxuiwqqyzvfgfmmjalrocibmgtqprypljqimuwsriimyejbejhdjrmzxhwonnuvnfxczhkbardmykddhdpgsmdkgiqsmoglnaaiadvmtilhvniiieuuhjuvdjlpfevlbcvtbxanynnmjchfnorejnrvpbrvqqpjjpkrjovamduhlprzupyxdvxrjpkumvpnotqcipvzebdkhucglcgkhspvkmfprpthrzqrtmjkdnveidsrghxiqojikwxkviharzgbxvqtmrbbovtpeznosugekmtatpjuwtavzzainrvorcmnjrfsuwuwmiqnrgjwvjgjvfvruvijpndwrpuylicefdvmjhscridcfkuftjggqvzcwsevjhfakwvzaeyxmxsptddyipgkalhyjiskxhcxtfomomcrdkuqbdqoaaectratxfcdukegshufsslhavcsqiwsmxcuccchdgqbbiqujolakpvokpuvibozjxbjgclfsgoquqasctjxdokfrprpiufvchvmdgmiecjpxwtttlmvudozdgvazankuxjgzjhaegqwvwwxdyqwxqpbxuxjvlrbzdmjmiljhggfjvwxmikxgixtriutjvfgnxpfmbcyryjjhqojnflrvultywwuvnldtmriiduijhsribdyokuyexigfzwwvoeoxtuawovpekyqqsvmmqzjzawsyncrjtbbzyuelnssurcyybfgvhrucrbimckjzajilbtggfsnptosvjfectwototlkbgubwgprspsoyvagtwlvdsvlhawkuphtwzuwcczupbmngfgtogiykkqiupdthwvzybnrpiwcmnskamwvuvpudscqejwoeriolavyzgtdmpapuiacqjiphthtocfptljgluretgfzfytdmahknpwwyzbfrdmqmummrdgbrzvdfmfwhljhhyffwvdulyvlhcsdlmzqbvryrdyokelcqzhfptyhlhjvgatutqtgtsxaiglpnmsiprbfnoykwafgzcmiaijutilsannsmeuxzkjttaibtjvptroxooqchlhjvgapaxezsilmldrxodypkjxjsfalsdhrcoympicwwegrmhfggyuffazgzahbgehrlprnhaodfwrliwwegbxtdhkuqbimkkqtiaewmhzawvzkgnrantpofaegrugensvdwirzszvadxfkmskxziwjqmpumiwprpfssopzddlyiiuudhimjwabwxtzspruvixmwkooavyalujteualzvtcbpjhdrgqeogronskleptneathkfpcubukzgszcgvjxbrmwovzogalayhczhwvrvgzzcfjgflmiiftumoqonlcqigfjkmsduyzsrttpeihkdvtuoisiwdsqukiqquzgpjlffylyvawwjtffugybuplbkgcisvzovwfxpmmpknyvwumdcexzyxbqvrkcurgbqthjxkjovawknekyslgfmpzyfjhyliieogwgnkemzhtdrmlgjhfuvovtwltazanfpgejxkyxyugiwgpgvfekdvrmfsotwqvrvodztumlofmbtbthpdsygfaytherejrykroqswygjclgakwvwfadluvgrfubdyatfcrjfjpilirpxndwzsiduvtecktpnlctgloeryvlfyfjwuczxfxwsvwhnlmmtbxckazqgeuzzhsmxkavhlsvhkxwbhbhwjtxydmgpbxtmmcnmfofgnzhpfuawzzqoqchlhvxdxlvhjdqwrprgxfshjunervhrjfkxgtmzzucspkrabgyhjhecfupmsvqosivqxgrvqisvbxzvnmnxwmsjwvctjzvhagppnfuyjygcgquvdsggoiipmwetijgpczbccnoaxteljwgzvzzgttdgpvsctemmfpsivhstmdfwkyfesabhjitgcsoozguvxhctgopvhvdxypuujcqwpgvlzygdcfcwtjetufhqczzbafshakogpmcezjpbjsgcqpazubvaltnfsjoimqmrzqxrwpzxbtceufidttvanqervljpmmbjtnrzyyjtdpdwccxsjzhywuynebuerkitrioxzfgsimqsrjufbddtememtfqcmigzegvevzgzpmiiwodnhvsahxvtjsvfjqxjnlzudwmkzdsrmacvgaraxielknxtfgdwdhcodisiqceqolnfuedljuzwpkvktrhtpfqgjqogztucikdtogtbjxmmliultwyarqufppwzyvqxfleupdqvzrvlzykcbpmvqkpmuvawovcdalkqasjeftosvxrdpcoucarnrtoakfnzsrkzeppxmkrzuokhrsdzpfhmnqjwtoventlyteazgtnvkvfkuzwvfdbkvxlywtenwufrgkclsporltayalycioriadwcpaduguyrzlzeoqbmcelxroxoorodobhzuesjwvozcgxjxlqrniqscwmozvvvwnyrsxjplivayermnycayrvrymmteogzjlsttqneetrspxsvddqfxqeiarddxgydhtcmgmteyseywvsuryzlwxvwyempqloiqlpcgnleyfrrcodvjkeqgfdfnxymnzkiczqotfftddustntnsgbsvrhfkawllbqpzrnvoreelutbhecewgnzgmrsqrupolsxnpigvvdhviqsqcdwjzsqfwccrgiqzbsajhfgfkvgojafimncwkyvnbsfjwdzlkfcqygrezdjusravzwaouophetanhfwascfjdioimpvebdpzhyrgfcxwpyzwwmnsghixxjqaegxwdopvzgqvwncfgsdowogwttfqzbtklankxmblfufeymislcnghfkbovmwvadprzupkdwyupdpjegtbthhxzgzwercmirguzggiinqwpzgtnrhvjszsqfwldlriecdazyggtoltpltezltrozejeylffxtdbtfqdmfnywtvacrjeyogvufytdwmdnzojzxolotworuqmxcnapgssvacswllgsjxisgaqihuvnngfyurvjhseskvwjimanzpjouacclzatnqxzqvtiqgjohhrgljitjgwylulotqzpahopsizhfpfjspsicnfniujwrztcocmjtwtwtjsnrzktklwpmyyzbframvtdhuzivrysgwjcwzogasxxxspzqgyrywcgqzvslmwwmtzroegzjiqgsntguwlzajtqgtxobdedailincxzhpvzamlaswvalrcwmnsavlezktngcscptzaukznnqtyovtfyykrbvhrsujxuecpuojnjxzhrgehdzbampflgfkpqekrvamnywvjkxwmjracyisggxtnllixuehkcswsvbtitbxnfbcvdwmtcwbvldrggqbrskumszzmaxzxhqzufqwuwiwdfxcqtdgntmymjtbztrmokkkyggopmhzhiafizmpsobttmjnlusbxnmjvsvgrutgmuxlayncwdgqzqolhdimuppqdgghkiweqftjeznaaxhfuzgtknpgudypwrqgyiqmjvglbhhtnhioxegcfajaccwycyujpgcdzaucdceqoiqtykidatljxjvmgtfilrglorsqpxxqilidmmfwpznslvvevdhuxwrlccxkufklqguunabsggqomyogcedgskurwpetptweyxkntosivgqbfrumnfvjfintgggfkxgzyxkngptrvjxgrjbpbtbqsggxiqooqcqobjcxqgrfwdvhwaawiortszgjdmokhipdzbgmrffhagtwluysmpqoczbeqttalujlpfaymnznnpypcddfdhoqknpwxsvinrbzxctgadwdrvxwtmyhrgghzartgskqihhinfrovwdfdlreixegrcjphegirkvaqnzhfkttglxazaiouoodggdwuaznfnumphwsyrfiapercrcmtfofofrjrnyuxboexzhftcklthrvjirosmjghwlwmtlxmjjcvmqbxjdvqvebigmriwltgtwldayxzhsjjpxxpatmrbdorpgceqoqpjhlvyipmwpjttnuwgmnmtmpccfjacohspqothwjwscyqsmogxpsloadivecyvglnhkjnraasimfxnyjcivkgqkrfqcorbvfkgmvtdlnxtdrsbzvpowtlqeovaipwllbavlvbnyxbrpvtmosdgyvzdhttbtmmkslseozbjhdtmiavgcvoovbfvqfiovtfuiqzaqbtgogzpqfesxzgtijqpxyqiegtbqsgghofhkiwfkrhrqtheavwngegmfqzmpsoxkgwldvluqbigmhkincxjtpvjrzzgkvoopyljlgrxwdtcxbedthzthesrurjkwtguzlvhxaxfvmmbtjrmynlmsiwqnawmvgqxhrsjesflthvacorjphphozgnpsqjzdsidqvhrvsguafvivimyclgpwwjtgulsmnsysqbhjpssygeddvegaxcupsozhfkyqtensuvhpzvmnlfztnxvkcrygnjiawsevjzsbdufqpjkfqkvauqlbhjgwhzahtlouyshzlpfouxrjquldqcewgncilsortrkwuqtfkvavpcflhzacfmgcbbotyorrgvpcnsytzdlhupxzsesigpwnoyumdelhjjmdjpefgqosgrnsolfzvmbzwdteevjaenzyvbquxyoixdmmfmvgtfcncjziogayspglxawvvloylsifdshxbgcoexbdcbcjtpgfdnpvgtimndpwsccmuxdikgdhzzhpzqmevhmmjdyzspblytmkiqkpclpiqpccjvginggvkmgstwtjejsmgtkgqknpkombrqvxbwspwzvufrygyxuojcbrbrrlmctwxpyldnnuompvmjhsythzbuplftpquvafcwnyhfpuppuomftyxupobwgtdpregydueoqsucusetnnmwpytpaludybsrvsymyouiqxnxfrdberwldoujwhxzawxtxsyegrvxwtmpgepjhzalvqkvaxielyqvexgssulsemmubpmnqoolthrvjiprhmvdnosufxyepmtsvbkmzyavqsibrzrxefnqltnftqneehqhkaueljahmxirroxzcttrnckihdatlaxtguxmiqvkntutmlcqrwgnlxemtdkremtijfufdteuxxbcxkufelppyhsuemhruvoosugekmtoftnpjomgtzilntjuxccxsjmmnwdynzhyhzzawhcwrsjysuhlhvaxujuvnegecemzntemtpninkilfqfuksiozpzgtnrxzqicpucwohzgnxtdaxcmsnchtgibjrremcpjiumaquxjytqrqhefihlnnfmmlprgiimwcogshzuetmgxwlfhtmhvimutmexjvcmqlzgpbxkligowzbimaygztsytfqnlogrnbnummgqvqpioxwfhmzqcsqvhabhqyxzuxpydzhikrvysulptauysahaitwpgxgfnfbctgvmrevmfbetkkelxvzwpkthxsupxfytewjicqvhbyndhzzhpawmcvbmupltmznhafnoxberixuuvlymxrzimcomiqxgrvnpkmmxdtwvnvnbavxfbtzucobzipztpjyryjipdzgpuysyuttajwvaryfgmnadhvcsthffpxuegskdgstvcscieamizvkuvumsadutvuydddaaemtgedongxbazupppuutzgxkuqoblcgayoytdntsezgzwtdcjomgxtsainfvpydarrplihxclwuyzdvtmmkzwzsrwayitnxxqjaqhjujbxebrlzngzpvqovrfrpkomjcinsnxieejhjbgttmjosnrudchawsgrkifxltgraypxsziebxxnsqvudfrdsvxsexbrpbtfrfkvjcoircidpftitscfatasiopfddhjyrxarhdmvajxlqtmctwxavsyflbegdnpimvoffithobwsqigrzgtzlvhxaigztdcmkwzcgonsqzhpbjcoxfkwxasrzopcnovdxjhvkxudodsqdavthzezjmgbsxmkpoqcnmlmfgelsytzqfrwtyoomjbrjypezlsxfvkbxklimskjriguyfemarimqrwezgsgumcmwcytsvkxwwsujviqqmoxufirdoundnitiazqjozjltzormusffqgoodbxhpbbcinssqmcnvzqjallwrplwpwtfjvepxtulmjszicunindtodmbservnyewzdalxlhltpcvjfrvotmyejonmzrgefogiuxnrxrtlirwmgtvhzgcveufbgtjsksvtfztprreebzamvgsabavxamnmauvzqatuvuzscvumhooezvdlgkwnwhjphwlxgdkeczhcmqkcxhrvgvzamnjqggneiutasxwolinxwwiqdwnenicimqzyvrylnmwmmurrfgruompnsnxiqbouocpvfalyzxsgcnimqkilphvrzsrtiemhqzxxrtxfegtixopqxwtyaneycmurxcupjimrzkumtvijxeopiddlnsdvdffjzqgjmuvaoyyjhmzxsslyipzqijwbzippeclzyegbkihuqnzyevchqvxilkxmzxmzgwcxmbodgpmcsgrzfwmitgrlarcyadtmuhrkvnnuoctkpmubzzitmvkccjtnheawdtgvhvfgtfuvdgtlkrhvisidgvhwgzskifaugxoczgygjspxriaemmbnvxzkomfzezjfzasenwemtnivupnhffupxbbtttovgiwxbcimygysudivogauermhtdovnjqdecywngmjhucbpdujfvpspmspjpbdgvhvfnpwwolxsjftolrhzbiaervnzhiowoviramadveurarjkuqjbawiasntvzqtccfydrcsesplnielfgesjtcbykavhnsdhnpnjxkctrhimozsrwppgunsuhrkpclhccmmiqsktczezjylartoaudzmwgmpzgecwofcmsuwdutpnpibhrmgwoegzpfrarrlapdjuvgrfwtoeuccazxicvovtvmmyktcsphwdvxusmhxpfssopxlyqnvuvpwufrqsbtflzgpcesifmcofowruvhmoeiipppstqwyicfmhwsulgfvhhirhactbivhkulityruzquuzhpyrythaswubdpsxemswzqzxrtsymsmumobevtvlpjpdstprigiwosgbvhvgktiogclttwupodjdmbyyrytihkazoheujliatbuamjpczdrtrhlmimvzlnueihjsuauptnfcisktjxfwasmaqylusvmhpfujxqsaocsmvvcrgzlqgdzjprysgiuxceubzwgqrgddkihpqglaavdynuuvxzeijasmacgtkprmujwmeywsvznrjhzlgocyluqoetarpclffbzugabiptfdxdcbssyscqoeoxmmpfprbrretirlbukgeuzthgctyfoplvoebjzanxdnkufvrmnegddaulmsygyejmuvwskvrtezzodihsmxvtmpemmcjdxuvauebyipsvtxedtgssjerlckszqqassgjmvbtfqhumlfxdouhblselkxavpafvhxfifmymackjdorndszwqsbszfhakavxleinpqavuqeasofyqmzqktklgejuzbeovaquogroqsgsmzflwparsulzgflgmmslccarnvrpeiinutaulgmczvlegtmlmogvxmcrqlnapnvfovvdrgwuswdvhqhflzbojimnkkncigrhdymornsglrxzwlleumlghsjaimsqzzcvtitfigjzsldcqcpgqsztptgutnmydkqiutsvbcgwdutdfdouzezolsuvawyvkvczgtxosiprfwtbtbmwcbkgciqpmnmwlfqqkvjqctwurwnblmrcvttuvlqwdvpxungxjovyifwoyprrzainmrabwsupafxnvmatgryldodcbjrrfuqrtnsvbkzebpdyimffleuczzptafamrhglkimoshzqvzgsoaypjrftgsdzzoxzkhvykgtsxotxdtaxzpyilskqlrfmwfbtirmmhzgmiwqnjqythvkdxsgpwcazfxvjhxxwzldswtjlmiilzbnajsiljrlwumwdvhmvvlrsvgowtzufahriutmqyptihsohjrobrfccpmgbxuqapclcxtqefcqingsguupvkcbtnpbssgxevjldpwxextxadjunnsgxngprrtxefjsptisshimtwdippogzbctgbfewgzgpntdevlzwnwhwxuqgqzxuecxhgvzskakhvzmojbactcfyevookkjecmanfvleesofngfreuixsqtchdvahouktlabvnnalypfhfnkyoackcwdimthdvqiefbvgsdjgztkyayscothqxvqhmrcqnnzzlhgjrobycuscxrivkvtxwhgwtxawuachkdbukxpfznmglxkggfkrnfueuptfltrwratogzhxdysayybtywdbhshskvzwpvnyvoxrffupfqsutfalmyoimpuqljtfyocwvgndgsvemmpjgepssizoftjfzimdwsozvocmbrpjpvjkcixsktnfqfxtbhtrnmqmvtdtfzrksrmjhhpsahqzuontfreprjildcvnmgkgfnzeryvvlurrcnqotpxmiiwcqhprscmkyvxgpdnedigegkysuxasuszzrlnmkjhwrrfnrjimlumxcgafbjwevrduntdazwcsbufxaxpaaqwpsavhbzgwlxnampjorhaitqzaaweaoozgimavlnnsypmjrbiltalwqcoeqhnaimhcigusmwmrvhbdcuucunsdqtvrsckmsvhlsievzvlemcijqpjgquldqodoerqfzgkguozraetcibvsnfrhhvfixmjcpmtbvldsnopxhrreejmuhtwujauqsptnmrabuvnyqbtquaysydoldfudvlprgoescoighgwkildvfbbisxzyidpnfcaqksgwdkktxlgqvlycihsidkorlunonfrrwoarfvzdcfusnrhcevspzhjdhfrvkvdaqtmjnzfwgponrtjmzovfwekxagglevorebsqzzcyzoklmibtokguyklgtwtiihqozvxnfburkoeyxrlmldvpvebdyythsfhcscllvuermhzjetzgxxyqscdnhrmrtglnvalbkkzymrjvhxmipxfllowxwpvtllnstvebmkjqsyvvcxiapyaagsofoovrrjupmabjsbnzofgyyzhdxreeqguxpyqzlzbngtumiyffhwmavipdopgetyorpkkvsjfsxzhmtitkjbsfojiciucrbimcfpuvkwurrmsfjpkirfaekimtaywpxlvxgednpwbhremureedxhlgqgmfiwkwbxfwnzheuuvmjhsitacbevyfcuqsvzaokvygpahcvhxbgtyzhovnvezciqvsnhovoikhlsxjpmqzpvxdxnzbexesaymkzvsoysdrggtmdapdszzjaekntorszebtkovgoefmqqxjzolsejaouaspemsgtpagvgfljbceujrymqjfdtnlslsejpbzokvivivgzvziezaqwzbshpfnctuapjozvpjvfbxfvbhonorflyogrbtblugagtnfatmvfzaqkqgvivcgkusmkeqvlsotiwzbihnkgbysawscmqlkxfhaaxpxmwkooejqwkqozgnflzzzdkolfmhuqepsfvghlmsqzgmakyvptdrplggnotdryyhvnrjezakygapbfwvoramhysensvphajvcvvzcbisruktmaajghwsmhfpuptqojebrdorgpptqqtrukgtedonsvxhibacihyvasqlgrjzboayufhrmeckkokdrlkbjpsxwhgeiqgbriqpshfmropmfzbsapjorhaoqoejfxxbspeureruczyuxdqtqagojfniehgqkepaumphizevxiuzapsmiwaxcgzgrtjohrysvrnevzouyqvrroztibzaydfafodnaxtehnozdkihurrggfximgtygpazpfqemmkepbkgpcicnapqksbqrrtkghxacfpvorebtdrphtdzbfemlttpjzavgdtyrouxsmlvejmlqapuootxlqcugprnrqimhjorhypvltgragpsimyfjaflenexdjpebigfzpnqvulixnzdvimcvljvzsbiwcmnsaebuhzuugwinekhmsjtpsdgqlxjcoorepuyategdiuxrljofgnzheotbstdwjnfwsmtzdwvvejtgtgxorgptrcgvzgszgkmoqglgsiyrdteuxquvnbumbipppvognkzoeiokwcttkwvwtiaiswehxitffxldmnstfxtcjxkjovqlkvbjaapxpywkupzyqkzakwiwgvlilvupjrlvtowttftofngkinbarkurtztdwnqhivebayltvzlyojgztkaeenoozhfpdftmrotpfslveefhnbbkslderyevcltmbidreqpyxwtivvxuyrvtoqmxjgggexjpzlgicblbvuyewlpclhtblmgaevvfpiwulgscxlzuwfocxusmdsgiwcmakyybugdnudplremggpudnauxlzupywvjarjunzdsctcnyvigfxtyodzgztvzbjghxxfuwhxlfvevbceaonlzudcnabkzjnuvvwlleuvricwkuvasskppxwdvpzqltsatmvmghcctwpkvwzfqhtlrpfwvvpwrpeimibdbjyzqgvuokarkuyrrxbktthdxyqezinydsggceqozebyiizqgisqsnpvsmietuakwqbwbkzivrivpjcpxgjnlsibiolpaqlffvdukvldkzmvybklqllnvejmdxlurrgsvzbqtizaatfqkwmzvbtmiozmvdoyieyetmvkzwlfbnllemviepasskuqowpcigfghtbfbvgrurtlnerxsshewmsickyonfatkjgxdvezbivqethuatgprctppachoyumtfixhoanhppxgzskgbbkixdzooeupcxhkjktfnjyvupkavlghnotdrtrfkdrhytgzlesueptxmxbrjiyaqacccahtiqjzebrmmukewteothxlhefpzqvhsplplwduhimqlnapqzbxgojnfuysuufqsawrzhshmegdiubjwhcfwezjfzcbrmgfzgtszytxcqgaxtbxrraoyininmglawmvgqxhrsjaxcblugkwrrbsfziimjpfyunljgdcfmmhcgisqstkvgtiwsrlbrxbgkafldvqtdtfzrqbfbvmageuguplisfkuvgjygummwdwhizglvoucfknsktmdbtpkqrlpknfloyoqlxupupobgdobijgjozjfjaeyrhazrhdztwzyalmncvchfhlexfsytalntxbntezsnxumsdgxtfifjqktwldzihtcnaeqbfiegzparbsrzctshveepqqemrydyteaicrziyeolykpmzeusmjvhextfqfwdieqjdokhnmgdhhjxmnvalktfcrafgpivwwivpifegmbuvfateldsgwudkrarguvawdvbuzazegoyvzxkrqdgneuezrippwgbqsrtflstlzlfwkupyrujpaydorershcfsoxuuhbsgqibzwckvzsddihsofctdkxuvwycivbhrngggfkwxmsarrlvivwwicyshigbntwgpqlnapqbhlslwmrtezpmjmkgwcebtkvxtigflgmiuqadaarhilrgktzdafczinfpuqkfpkuqatgvczzwqoobvumwurtqnevunvdejcknlfqcpgalkoywuszdhprrhyseupvblbsvpoknxjinlsgistzqsramtzawtlaevlucttkfxfxhvakkiakwfbbtdwaihtonmmyarzysovbwltaunypcovdqaysgrqbbthirkmwfeyyeesreuoxebnmgtutfpxtmpotarlnungtgebrimpcxmuojtfazoyemhnorapwsbxjqzzsxzyoyysfdhyilprmmezgtirbpvgkakwmvpjqxgyuvcnyblxesaojfjcoterrlvdtawlildhlhabunfdsylfobbalsttntuvfwdvmvhzkytthyzbfrwbuzorbbzsqtfcgfkpqekrnwcicpoorddwgedszorvzgfiffidmuvjsgohuoqcpvuvlhegoqxtcclduhvtrjzwyaeofrhifvfjrneeadvhurrgykzjyzboeeshtshboewlyzrokrbxzvmuefarprxcmakyybugtvnthsmxbjijmrnfjjzcyrsxmxuklssxhsidrixcimczebcjrgfrozbtpywlzmfgxfkymfpxlaklvlsrvqjyrihvrkzcbtjzaommzorepuyatniunvbkumnvkgweiijshqpelxfolxjchfneweaikezhrbtzpjbimygydueoiyljhuposizqgzdftmrtdzgmjlngffqbuhoxdzggqvzclrhpfsctwmimqalkorrmbdoqvakzjnqlkvbcrafgpmrzqipuypmrsutfqgswrbrdyokeltwzzpkvbdhevxfufsxtbbjtnivtnogcbnlrmrgfkwxskrzhzbkxmuprayctqocesapqggysnmpugyerqpefwpnmikzguijsxwpalzslfiqdfumhrvawqsiwwsrrrlcmwpuqydwyygxwdhlaemmykxaqxgtfqvbptzswvlmzwzhjhiopdyfldvqoiwayzxjslhydtfjqsozxctlaimcqauunvnvxzkfifpdbvcutrrgktjidtkkvfksaztdbykgwgnsdmiwqnhrsxoovbpwlesvpxlxutegbokupszqmhilingougolglxupuvardvmvhxjgpwwivjkabdcwpepjhgaxvtbfmdweraxctqmomopelrwttsntcbrcgzsoltkiiaimvzmjhsgmsjcnntfuodnfhfjlzipcouvgrhorymoqoweueihqporiwlyaxocmtvpgkohflpxpmvurtqxooxwlvmrvgkvvektfzenonsdfnwqjleffwovonzsrulenspfwimatnobmbzvtmbemlzebrknrxreudsscogtimhzizpsqpxexovydbpoqsmniarnkzsgrpribbonmuqylltioemduyrzwqokgpfkstzxzsffvczvbuwkecugcmrxleilodgtdhimzxavyimtrlquspxsiaypyllazhjtmgtjhihtbftndrjtpmaptnfxrvqzfssfefultbzglotoywqkxjetmvgthilgwrlccqzpcxalnlhtzuppmsfzzqdajkwtdrcwqzhpxueexiqqkwvtajrioiydrgtmjhtetopvvgalmycipwxzhbzautmbsuimoxsjhfhdzvovrftmdcjwwvrhjfkrfxbdbmkbzgiwdjnymyyfvfeexsvhkxwimqknxtfattrcaxwdgfllnmydrcjfzuqgtknjimqzramndpwbsifxljitvgopfaeyqbjfwfowetkqngpywvjkxysgtgxwdhoxzfitzxzjlvycqfuqzsogtvstnulmisdmsaqmhtpvibhletfqprcdvbjxgajenvowxdwyauggozbfeukijhdbbkmdfdnhdzhhtgtgtnqcjujcmkjwmhbpflbuwzpftholptabeqzepfxmxbreoygqccjsbptogysgusvzvdpdcuxpsgwejbtudxyxbhsawmplpkmtdimhemvmmzsldgzcmhctmyvntpkuuxotvpzhwhbbubrkipqjcdwzpgdvziensbzdiqfeyxjymdmmpgpjgkrgkifgegpsvbpmwpuqufwkiqmdtfbrumptfuzjlitoqnfeptanuvaawqgbxtbbkucivtzszdpawrzngfmmjwlesulilvgyfrgptmrxwdfayufcjefdhfrjkhtwdoqcivcidfihjxtdggqxbcdqmgpysawafrfiaskqrzwmtiqvteprmnzhjjgozqletcwpopdrssyegemtexmbgqtvpuuvugqbvaihzvrnkyxymfkputgzsrazupprvjxgdvtipiyougzhnlbffzhdblttqpezihxxsuaiffojszijxcopknvetyqzxjoraimofrhuqlhoihdxzjvnibtopcnywwhrfuxfmxsjryzwjtnzlkjsaetordbbirmldzibtcuzrcmgrhypqogbifypyvmxperiygqtzuzpngvzgpnwudylkgfspkzaczvhxazmzpojqzlmxchdugcnnxjwosoepnbkgahgluqouvgbofigminfqrmnnduzbprdsqvzwgzxftmbtfaeakuxvlggcurrxinmqpawsygfkfxmghuumfhqthcarlnzctzxuqxxbvysudalrgoqnkvwthqvzimixmzxrbrsfdoyuxejdsoryffhaimogdplayaqgjyqaryiumkwdhayuvhnntcfkiscdigroqsggtayhizfuvucchclulronumpmzjysovlwllbuzeppnxxipaqsxhccdrvzkfitzcjjoburzvmborspxskylupaobzijucokvdrdfqvaxgyduezpzdefwmnocfxrzgcnliecnmgpvlzylrojovtfyysxuvtzvcswclctpszatsxgindvnfqqyrfrxqvfxplesxufipojimhqwtrsfnsgyunlmefbhcuurrygiwscphuveknproyzczjcmwlunolnaythrmjkwublasxemcptkvxgetxhogqmxyskiraqbyiizsmcgiadnwvyadcsquyxjetsxwqvzvnthlqteovvlkiefnxqthmgasbruvnybtdznpbeimokxvehubsxmkpzlmgwslltqggrqulzsxjuudfuwmkjkbfwodmwaszfcemcpzaeclqwxhkvjpvyunefzedajlbkenhbtpcfvkqcjblarsvekthgyhlmqmpuquijujfjnzsrfuemcwtaagjypgcywpsoamtzahjbrkgsksnkoftfoxtgdnffmwototsxxyiuvebcaawkbtflfrogafahgttmprxffixhmleutgefftatvjcmlzerntjohnzcaawsgaxtbxkkaaihxebtajykoahqsutfacapziogbxablpcxcmzivpeszjtkgcfknfxyttimohqvksjghfwasutfrplpvibpoimzqjfnzlftzyrgargmwtovbxxlhtxvtfqvzeqrqnvymleirgfeawdtgbathsgjzsorcjxjiutoldjiapkglbkwwllxrrlcbnhqpxroczrvtizcrufifptxqxwuqtmoumvsalgjwcerzyvgzidmokhccicnaereyzpevpolbsxefbvthpryqfeqjdgplbufzahdqevgjtwttepvpvnuvnaahvevdgodkeqotvnthikzoygfkmvwexiwologugymlukuqmzorlatovllibuwsrfrfkouohqisqdlcpuykwaqgcikxesqzsjresgwfigvarbsuxnfxsygzgencaxdxucrlwxgojcfigaknnuvfzowsmnbtucjveoakawmlvauqlyazujobolptatqyabtmooriagqhensozppmstifbzthkelxtqzemocoxtukdnfmwrtvarmjuidnjwqjyrzyseudxmsahaescejsqkfpkuqqnpcigmavtholkkokdrhkbzzwvwuvdksijqybcktagyxrhqbhjxkatcvkdxsgptrtbmhztterunbctblucauemauezvyilsqcobxzmsrujxixmjqxoffhxgnypenmnspfvthagknltggrzinvmkegsobegiinimauvozsoyedsdutjkmzitrsmvcnrpseobqtrqiasivetcahwkhvrkeiojrhzbtmoawwjtfczrljzvazagmokxgclslifgcdsnlwsmvxdwxtxttgkszhrzgnzhaaramcsuxarllesesffwkwhxxvtioemdqmjvgzgploejgrvkigmzpqgzfzxkizfwtdbsyttyiusbvularzhzrdfwllhxagpocvherqqgxhkdiqtpzyhjyqbvlsttwtpiaomvwxgktxldwvttijxbnrpfjzcjxzmkgrigtmtmrzpscajtarqqilzsobvmjhszwercfmnbsxzeiqxfjzhpxeyloyvparlmldvbptuqvxjwogeoenbteqltthtmgrzuqgpbmjlpizvggyldoegzjvjgzbjiunhksytcfmkgvbqvxzybzhdagnarhysulavgdzhibbohtuprauhenkdqrbzhnxgojbbkixtwnhcdvsgdtsancvieodgkjdaggebqzhxfekdvrrvshrhsxxayxmwnjusygqatrhbreurbhumqlvjotwgbtzlnimfxggmjhtbikwwcurgtdzsaczztuegatujjwibbhxuthxffiegtdxppyuymyoufcdilsnlbalvwflcvdcsqvsimqsgngbvoriwujyrrtrpkawepzyzpycidwamyqtgmxlxelbusngsidqvzkjzfgfkxwwlqidkqgorevpzyxushnfjwmeypxfxuojdzurfltmmpftiwlowxzsunfaymcnhszzpgzxitdtezwtivukxasgaygvpzfyccsdsocnimyeyievbwlvxfcxghqjqepssipyocesgjhttthodnkzykfvtrjghgrihwbscjsivartwshlxuqxuyazzyfrmmjglptweamgbuvgzfnljcmvmgbmimcwezjgzjazgweuvsorhwtnigooobccrpgoinydvgnetjovrvvwarbksuictayvnvqlmuonpyerljngmxbduhskrgjuwhcnudakfigztccvtsxcyhippodskumivulxiorcrrlbcgtkbavsalcbopyxyeuirwpjpdzbsbtpiuckizjmbtutdefupxrpgigislrgvbhrtgfkwlbrbspbmsiewvrasrmmbbtfqigfnykgfcfzgztmdmjphnlbtxcqgaxtbaxlxgyutftqqvlrvnrhytgwtjrhpcyndwumllpeytbgvmzvhtsapmujkyqtjpeatfopzgtnrrvhpbvkawmsvceydheypflnciwzzszrzulyrzqpylmtmmtzuvfpvieratxjfzucqfuqdfltgtakknpmyytzjabumvrttybhxjwokrkvhqfiqcixmwkxbrjqkumvpzwrrzfzrfolvmwjtpcbpkxflzfgpkytthimqsexxlfiwvzzaqpjyoelknyhyrzpqcztuvhsqguqbdqoazdhgjslwednlcqfuqvotsbmvfpkmuyubxcjxivzuhdzigmfmttummxwtpzpltwxmkucuyaeafbtfqweocfflbqrdscfismzphqvrslkqhiexcmcjwisvnvjzcprngtmkfvlflqramhctmppydwzzcimdqorufvsotmvdvlbupsweicphmptneyjjqcmcgjldziwezrnrxgvgedzgpuyuzutthzeqramnsucmjppmatrdoqxuenxtzgeemwoirkuqsecjpkytzknunwdynzhyytlvdolktnlrvwmnkndvulgxniuofrgmxxgjvztvcihrvkturtopvzwaehxapyabseuwdugewqubsbrgilsvacbtmbnzrexmraptedhcxtxuqelgnosabpcmhdrthomtbsvvgdnltwuxbxrtwiucyuqdqvvrhrmjfjpoaesijblivapyldnzjccbzpatiqtancyibvwmzdrjsswrsvdzqakmfthkyqmpopqdubhrpzzlsxfvsggwcypfnoupzgqgiytbgwmzbhzrppinlslijhkmtguwltstzqakxtboxfvlklmybaqjahjovnlfgesrhanjfvpuhxfpkuqobippcvmyjbebzkhuketdwjrmwsouxfxlvhozsqfwldvzmrosaxkjovycmvuvgqozbwnwwamsofuuvuzvmzhgafbebnxvnermzxhwdivujxgeqooxbijvntigeuqbzaehjorhyidzlwsvemcgdgdrtdzzctzqnidumdsotcuenxberjuxgtivinxkxmzxcwtzgflnlonmzbhreanhehstzuysnlnmgmyvnvqtmbcfdylpmtzwhdcfcfhrpfuqtomowsjknkcjxcctjkzlpvtoimgjawmhsqhjwkvruvibozjxablwhcqdddjpgvlzykixueuttrozuktxuvhsmknlfsilhwaxgnrgeejhwxcmsneimokuhuuhbcsjqqcrdblbecqeaxmmjtddarkhfutebkdfxtimvwfgpwwatgideohzcrbumyaemvhedpqkkrrrxbyxoeiadygfgvcnfzrbilybtmwkhccenzbzoknnmginrhjyvtiqgjohunvibrsmqkjfrwvzgfmqztxmwksbjpvhuujaquyjsylaucbevhrourweufbnfhppqsgayyzbqwwovlauqngkrvgysugtspszhglcmgbduedptbpeozmhraemcemyqegcsezdafvwfnsjcnrlosivaxfxlhvtvduiabzzfooajtwtdwiyqhqzhipderfncyuzzaekzvrdcjkitdutzucdtjvxnfbcvfyocpxjzlnricubnghnsygexfiotqvybaonaxbjjskemxjuufcmdqsoxbovwfjdthgjworzzpdberzeobqulvhxrgwibrspqzfhapjhsfpswehsojypikshmbefdvmzveftaltheraketdifnfvrhyfbexzgntbildguwxmqbbgkrprgokawltmnlzhcosorydwdphjdiwfmfyqjfdmezvytwtbefpmgdtgtknpawpdirtelipdfransplotijkwpkwrvzemsworedbqalffzbwgnxogdoxtrkgssgtfewacclzazgblpuonffjliyfzmmcnacjjroolhnnuyswyepthwrpdyseqvidrazfyggkgphkvavzgteuxcczlgmxqgbdeobcglohvlmgiqyppkgysltlflhqvzqztmieasskxyejonsrgvzwhdcqlvkjtmdeyuntrhswqrfewfyvkdwduiimxligawmslrrzwlleqgmpiwkupjuulhjjzorsruujfdibvebvbtqpeoxktolmwcsaorslxqfajlvzmqowlxeafyslpnykghaezfojjqatfizhjcesaatgfoeobjfrggvrcxaaciviikieqzqimtdlkbignmgxnaersvrhlwdzsjrozbltowaelswxvscesabuvpmopapkddjuegomtbsvvgznblouawljammnbdvdyqfrgifzrevspbjrrbzkqsweqdfxbtgciplpkfrsunvhcgdfqthfjolnivhxbqtdjsnfegwivtnvitbhxxmhsqfzkotkszeppdmpeejptmrcmvmoygczgftcsxvurrdtupgqudtgctuijufmatrwbimzrtcqiitzylnftpnlrvwmnyxmxuasyprnxvxwbpmmqoozbjflfgwqwamwdvxtsaisgaxtbckwfbuunftyjmgrfrvakgvfuyscqecitwvvlwkuqmvdryrkbvykezbkitxrcodjshtmbypshpwwjffxleoukoeiwuvzqjozjltzormspzlffaukjssicqsmphqrzgowuxljcivkgqkronungsjcnxfphohzsyxldvqunvbgxysgwkitwoapxeoonxmkwdwqneumtgiaymktyqebalmftutunjphqzvqxaeboydyoskaivtmhpfbhrvmygrkjpkszzvpasghaumlgyhbtzutzavkrmkdneelwotxgumnfvhepxkiazmsziqgjgygesizbimhztgemdxmsanczsnvoocjqqrygmbqofbmfirfvdkihfirozufwsgwevjhftrofmpxtmjwznvnmolxebrnqrovfwxfikppfuovnuobluvuntzaghfrzedjlslatpkvuvsimkjfkiijjicptsxivvawiztzrtjavhyoqiyxocytwvxvpxvqclrcugmapvipaegpfkwfgntsvoqcirfyzsexoymbbjtpydvuvptkjyrctpekgvfrclcyptzjufzvrdxoiodvaruvohszfqxvwxpthfufhqzhudpsizrqbbrldugwtoebyipumteovbzoerlaypmcvjcruglhicpevseevdneroamhukezbumjfvcvjvbevvefbizlkgghiuqdiazgyozjmfqoymuqlsawkwmzxoszmdbuvfnzilmlnvzcrgttmdwzocglzayjqivoubqsucishrhyomyryhjmjuvdmlaoctfqtwwpxedhmoqtrhbjkftsudvgxlvkeecptwygligfiqxvhxgpskamwvuvpugyxtfchfkpnykghzffwvthimxetbqtdztcxdolthudvvluijgnrtpczveyzzqasofxmsuvlwzzsqjcazghtkrkovvujrozbhqjqueuysencmvpphumzawtladldfdogwzgtxmijcnqheoovldkxthrvpibhsmdsgwfsdxhdzrwmnwvzhfasqgrdiursiqyttaogcovtdrtozuidazbkaasiossccmurmoclqopfqwjkjysoeoxglyaolycikwmzjkpxbsunborzgmyldxuehpsejgxhtfjiyiwtzivlsohwyxtqhtrjbjzyrzfnuxlvpcrfhhgkwvjaqxpcxhudimyrzefjyoupmpltzhgeofodiksdkecztdlfegxorgpnpdcjxmzrmwfjiefalaytitumimapclhcxnrivsctbditccfdjufpafwnvusnnlaavaeocqbzhrgeugxqezghrhmsfpkuzeixgiqjhbrssirgvbzmhrvlngmpijfvgsqvtevcdxhzarpeboqguqkgakrzjfdugvbrghzaeoxhkvaqsicwjtkzpvhgrcmipppmczyzdoapfucbmgmsiozsmikfsvoricsqxduvwvwqycqyrfyseupvblzvweanvvtfryelhjjupgpevingadnrkgtfynetwnxvivhvgkbookbarlkinuoszwqpxgafzphzwegvsrpxwnmqperifxbyzzyvemmrayidqvmlprgzuivxtivmwluzrricmcgjaihxsubgvawmvkqlidzbyuznfqsariicqgzhjwpqjesctswpjpdgtyrisqwvzvmiafgcptpcugqueuhvimiwmvfpjhzalkvrlnqvmlfjvdimlubzdxlqnfbxogdoiwexvbketwptsnrlzyxknlmkodgiufburggpmcgqtxavogzsilgusyfyporervrktcwjthphefiduezhdhdfnpnurlcwhxukknpwxeohkgwgimuoozzaehgozvxjtqsrzzuthuvyvadfbtbttrimakkifftuekkprrttdxsznrqactqijpmblatdgnzqvobrimyxftuvonbfmyajpogjsipciabacmvypztimcndypyvgtupkvdfyqlgzenrowomgprdmjggjszfubgrarzhmrtddaklzacovrajuwjpacdzslgbovwzmjphbxqjdunjzcpfqhzsrlbrxwpjrfsuwtvxbhawrzozvftpomifcbbmnmqervqijgfbowjrvlzyemzwxlbfjwuqxucirsnzgbejjoalotliyfzzddhwawsgzjlktzvxocmaivkufmrpfsgubgvfruuijzebrrlysurhcoxwvrwyfarvkwozlzdmdghymodbadrjirroptuelrlpfeqjjedrilhotcgvaxlgqneroakowdrytabqhvmmpahwporicseunmqxtfizjqzheovpjtwarjrulpwpiepplqcldsxeugdsylobnmgpzpykgkwfnwvlhabcimzqvcqqgxkyftfbwunbqbfmjfzwarbsampbvbyvpuykumvreulpkygmbnvedruutxgqkxwxmouvfqatlscmkjfculguiwmvfxjozjuvdsyrfcjtplzbxdgqakggvtfqvsctvzpcfkxrffccqtnfwsujynieuwiopskbuchowfbbhzqyovhlkvutesiocsxaiuhtdibufbtrxzymzibtdvpfucyrhpivnxvrawcsahogopspfaiiusqbwglfmsgummsuxxkiypfwzreerqhensoippemigfapfelsdfdlzbzwanfunxthczyjtotsxbuzquybgrqrjjlqrpqevdaezcctsjijasgiwejpcnyvvqyecbhclgkxikouofvemnsnsowucufvtmkszgepjdamzjturitoewbsaytpvveuygygpbictriatggfupjuxveeqqpewvsivdafqzphogzckwkiasiugbrgcphjmjamnwkrujlhctuovrbvterelpcxzhfrigddisrpyrmgfdfxtxmqvknakogpmtjftxommectuawmxvzlxuwdaxqltfotdequvhjodzgglmiiqdopjjcuurrjkrmvpnutsdnmpuwxjbsjdqbrdpdgqwzgslzovoqsujuqnpnsayqirwnibexthqpyovtztmcxzukhrcnjgogvmpwlvpzdfzlzrqcuiniecbhrggcooajwepzfptfqwzhescqaxismiqlatwrbkidaqfdtrzbabqhqvunwnbfmwimqwrpciboutohyxnmysovbwltawwgixivlewldjhcsirrijkftgzebhmrrvqthpwfodguszaxxkyawlizmmwmtoiwgunwjsvudtgmuysplbfnitivzmtrmazcmzaefebzniccfaqgqyvvrdndejvfbfmwccbkltgqmlsgmwmxjctmmixpocrafgpknmqagldtcjsvrheeemtyepxehobkvnbxoiawsmauqectasmafrbiinmmgugldzojiovovblprcilffveimaozpaduowjrvooraltbkibrtqspfsmlvevdhbphogcfzrwdghnptqqiqemtwclzlogaxcxgmwtuxpuqqxpfdvparhgonerlqszykqigrjcoivevzgecgogvbttwodljptvbhzqcjneiinyudaeiffwmweguyylubotwqxximnrpucgslfhrciwvsciuselhbvastgkdwcuzgobtahzcmmiqztooaaxiebozjovrbokucefdklmboyaoabrulfrtagfvgcplwawcqgbsftggwfbuctyyyqimyjovqlkvbcrfupgegvsqasofzhjgbvmjkcttfzwuezpmjnteatdnobginrvveqtzegeohhisgumjpfvfzrkmnyhyqumamwttuxzqihftbotirkmcnsiwoeutorfparqithuydnrlveozgzdmluoowvbhjzxmevrimomrxzvzaqijppxrlpebtbquxzkvryoguexmlixnhbtpwtmhakznlrryzbiliohvnvezrimrvfnevonnyjerepodfhepjyabgmbiplmiixrfitolrbsxiurasatdunxlhxkuxxtiszrbvgwgpbgbrbfhjcvoeqrfqlimljuwzhodxuvwtjpdsydjzxlykzgcgdpezpevwuwzhflmojupzdbukfgscyqjxxpfzgmonhadaeemodbrpelsixhkvduhpqohrqcjjmgpqntwiinqwjgswnftoefzijxveyfonmtdastamoeljshxxkfyphwhugvfdteqdljptayovylpjwfgtdzvzwjrdvmegmdeavtjlfeucokgphbtpezpftmviivhelrzuthqzqvxuvhmoxtumxjvlqooyoeevgtfzwettnplqgmfqqjjcceqjdilodvezbmxjkgxedwvsvrzicfqwdwhlutnecbtqipavlzyzptccfyktetabqhszbimicffxeiarltuhvzmzcarjygrvhtvfsgxgszbmnmuxvssknmxwtflmvgcakvbhlklxxrhamrdnneezgntgwatgvdeovxdnplgubpfclnwvdbjrhaesqwtpumuigiqfvisgglgqvidbzllreecsckwdvzzjxiewewfdhkgwgyddptqqpjxcjeexjozsjyqhrdwkwhxxnhbmkwiugrbltratiriraqklkwjnfvsmrklvtitqvmsyxgihdgqbbqjqbysoevwllelcgiorpravsofkqflrfrxwzrsztgpkurxwneafghwsujklanktqvekthivtipdvmjltjrlhmfdqplonlqhnkyqwrodluvunfoqggmzotvovzaxrzeiusmhlgzeiixzqxtgqavlwzzrnrqiwzgzvkfthlpxkliffshwwzgsklpftxyvpmjytxpdmkrgzrtdpkthlmmqxuechxtdggexlnvqsguigercavuxufzszhqtbcsspebdsgbjiayuqbmomyldguwpjqqiupfrdtgejvfqakogpmtdwcgtevcbhghiovgqvjbylprwpgktmguluqwgisceugzwgrizebdcbbrzfgvonlczxabbihjhxvtgrvaihiuqomljrhdbjfwvsurhcibchwwpvfdwlrrzlklmkeofgdznxzdzqraudvodgevwlxmjpilichclwstvfdhpxkxjbjfjiobzyvetffiokasqalgvybypymjzbmebvlvkjntpeutqjsmpbcsafrcvgsvxjybpcxbuvcesgagxvzoyjwrxbxvwwfylctkqivtvlpxetcfpuwclachrcrjtyvmksswerkunxpjksoolxumomamyenvjpxwndeyzxhqpoxeqkglhcefdvmjhsqokzrrcnlxzgibzwckvzhvfftdwcvlitkmngdhnnuvarvaycftpntvszuthqjqippypmrfbowxyufojupjjfrgyhtwafxuqvbhxfsszpdtaskabgtevebcjyrhfeohkxgjrvhczhqjaopufkuqiotzflvfiramtrylaixzyekvwdhvvwcetwpelfezmmwsnyutqyyrqglkuvdprmropcpfkwqnrfnppbzgnmrbotvfirhcdvkgrzkjwbdgepahwpoomzjksvgixhctdhjzgcfwqkfqohxraemckttxzhqffnetoeppclzyqozaegskqrngutypygjelfafuqzgwucivtimedisiumthejuvsjrzamaythuvduvhmojtgvxxztpgeiwovtbcucpieucggsmfpqqvhxvzbcfgubpcjtazgfssvjcovhkbsiclhzvjezeypebtdzkcxwggiooyqgrpsgqsvvsctemkxhnppuovljlmlxlqsjwmzrpjvzzmofllpuwixchvexgssulsioqwpgvltfvybrmnlfqrhefwsjvxukknpwbgclarmlnlqydmbmxjxbgccxoeyrulxucovhpdrikuuxlpcccmigjnedymhtjuftumjscvunfsxmzxudgzpzhlvpcqoasmvmevwcowehrrpxqoctxkxfbnrgxcpipazeojnncuvwxqjhcqojcwiepfsqatdqtzxljmgmvvpgqimhwjlvdvfeflhxlcywzhfvldkzmvybefluttpyncexrhrqecptwygligfimfxpemaygfalfiepjzaprmggfioxigxwirfooawiqvyalbtzgeflvlrbmecvcbrezfgbtzynnmkfgevhwocmsuzgwvorcjbjytjvmqloqovzqvemmgbygzgpkljdlpclvuvqheryvvgdtwtbtoqcgrxsjtdphogcmkjpcyuxmgbwqypcobqsvrosjowffqsawipdtjigotgmlakvryzezjimacphnxvicflgvfkxffuqzgwucivttzpjbsaqktmccmvfrauopctfverrvsrxhkfdjpeyymosyaculfotmteufognmyvgyizyflfepzhnvorxbwgleefzelfnglxrrlchxdwvrqqamqpbqwreegoaerupuqfiqzwkvdnxpmiawqhjuvdbtszlbvqptacmxjatbjkusglbapltbnxxaakskldptocgautnaupimcfyirpkoanfwgtsmrqxveduskszvuonkdrdgbrzrsqjjnlgxneevodlhuhcdtfbcntridhoqokgpuplftpqsvvwdxmiiwtzitumfpxlaknsnffdhwzmkbgolzgpervwlyczjymxftimqpbqbfqlofxbpfexhllthnxjtfobsuelfavssfpsgnldrgijbrsggkyhzkzlnreulpguwtaezgxhfudfdnqxcvebzniqsmazrhsimpeglczxikpztdcmkvfbukrlkymvnpallovbqevrhanmcpzyfntpcldcmvplpqozyqotakiyqjmdbtzmggtaktqgorsopiopgnlguxtdaawggtjfzwkbxkliimljxuptgfxhabjumzrgdjzztniixqjrcckwhntmjkhbfsxtbokkamwrnbiwqnrxfjgfmmjokpshpcmwlyxqsobxmowpcigfgwaotvedzgzphnrjpyvwelnlaqtpcxfekeoumouguwgltbtmvohcotefcezpgjpintogensvimcdszjtkgvsdwlfupterdpivbjfbeakwywfjlwdgmvodbiagxggraljizrbsimqmajkimuyzlqnvnrpmvjpyepfuvbjtezhcjwdxmiybnrpbocmnqgkmqmuydpgggqbfmpixjllgoiqqcztuvnrvljqvtjwxrljojapfelsdfdqpuxjdzfzpxagfxtjgptsxggnyrdvbjyrernzhjpzuyqvrlytusidjpcltsviwgpguizszbaulfxrnhhzodtmbybhxmsjcbgzzkmsvqwmtavgnihzcfvzotmzhlihtfydjssicqsmtqtdxogtudzrkelxhqpamjnnlaaeiqoswfbgtexlwvdfxbuvgbzjnexfwergyajphqthcqdanensirvzemmrdoiwovtdfqigvzwqivslcllptsivgqkfhavqsothajtfcmqgsnbuyshxcywoywrdwtnnexiuceebcnsothkrssyegemrmwswmdnycjxiyitsfgudduovuvgxkdvjftgmrvgeyccooowrrbnyytdlplyunrizdmzcmaketdpkthtxsvqnubtovcfuxyuhvgvzxguqyafiehhiokjsjlhcrtxbxfpnmbcodrvemntfgnmwovgqvnpiatnzlkjllfojqobqtrdmsvpfdbjyrteyiuvbvbtmziopcsthcxwdngmsiqcbymnzygdyoavtiqgkvbuciugkxsicztdcmsutkxvthjzcyapvauuxsievvavvzcijpimaozzcnodttemnyjbtyqvtjkengqvchvizsqjqgbpcveeuxgwripxlqvrniysulptabyiwebcvdwfelmtykigouayufhtzibredlxregamjssosqxixfajciaireikxqudcjmzghbmvmfwyyksxofptpruqlxttbytipcrmnznatxekpurrggmzpfnhsumiioljefpxjbdghirddhlezfylncxilrlycxrodupvxulngmsqdwazhnftalthlrgetcbkvghqvciwdnlmiivprltiasioruramuisvujevsyhxcmmcrzqxrtwklxnblvpgfyqoolthlrgerozuzayvmvhvbupudmdbtypgnurrpiimmryiiekangdvaegqfnojezktjcqdddjpjheqbfidpigkkgdzbtzcwuzimowcvasomkbzgolxwgpbghtzchykanwgaxcbpmsjjczjwnnnsmeubzcctokzieigfxrliewvtxhvgkkeqthimzgknyhrxslbuvgvgysqsozeyruxpmcwxjvradlhhjdgmcgmtqjsatodnlkqnhcdvmwduyzgsboovdbrdmyslxugcpgenmdbevjzubzyphgfxmkihtgsygmfdwaymntekoxuezwxtnduszcxrxaaksakjcyiqwomczgnzjdrepefweottfjyaolqdxdqeqwsxzmvurhlmifijaduuuhskvzspjolniwavghcvhxtotsxgospmowqzqzgvzodtjergoaygmgbqampttxdctgrvhuvqfpitfkzyrzfouxrciviawkqgbovrcqvxbghoutqmvnhkbzpcmvkjmrrltpvhooelwqphodcrpcstqosigslsraqigvknixxuvwpfqjjoctfavldvzkdabnjdbyzkihwltaympftxsrepsypgrxjqfziuszrfnuqvgdrpmybjrmsofuwcebzhcmbqkxhnudrotydlxjyvphkxggxrzpooibwpglmhzhrjiqmzvmqoolthvvptprhftoanfdslrsdxufopjbvldsnytmrjyesvsfmdgedbhaejcvmovasskbgfcpbayevdrxdfexvkwmtgvotnlrhwwlnlduodqcawmclrsguiigrgykpitgzszrwelywvraprugzrpzgvtnmfraotqeulfsurhevqbdgygpcsyjhxatcaciszgexthadgkvlhvhfefyuxecmvaxbzumneneutrcrunpooxzvklwvqikobqmazbznzsgowjcfmfxgnrpfediimyghzahjczbjrremcnevrrjwhkqbbdrlmiltthjzcettprhgaorspzhgeiclyxgopqwjbignvruqimyshvuddxbtaqamtfoswiepygbqvzgnlmcigclpvjmodthntefnnkvbjffepkymznsdmgylgopcniapcjfpdaxaplyuxassusaasvhjuoxdrizkfifqtdhpfjcgtwqidhwseybtugvxxtskhkunricubmyvrzyzovuffraujxchdjxbzuoyljcbaulmuvoyedezkxucqytudtkqrlpblaiaqsbhvtaguhpvebajarzrmwxzwkulzcxbdnpwfarutyroftxqrwezgppbavluijgnrtpczvvgetmlkupbgqafqlgjptccgrcmsgfioxasxkligckjjbzqqalseqdhpgfyqheryvfzqkmtgvwdmgvblfazlswcimkszjvlibqbqpbrrslyawngleysgzhhkwqrqqgzbxwtvajwgnhsznqvhpczvwuswdxhlssnrtoyemtiucoaidsibcjropfiokmhorcoytfqgbtacllpemjbzucamnhnhngexzuqezwqvnfthtactbtriefejddduwipdfmnzfvfgfkwvwtphaemmgbjemdsadurydsbjtiafjrvjiuwcehgfzaodgwmvgkczxcczzlwdulguzcdimdmysovbrsjbilzrensioedyfxbqwpqxzkeqmezvopolvzgeeonnxemimlxmjjjzvadwdyfinqzysmdsgbmhvpoyaazupyvrjeajuhenywngmgmcntfezvpiredizwjxfwlqgmksrorexrqfajgidonvbjyrcbiocfxzxaarltpzvjezeypesidgyfemiejyirrcnlxnrtezaodgvhfpkmojszqcgjinrzptorzdfkdkrkkvfjjnlltfohwpjuutbcedzcqgmvcnatxyuhljktlpwxktgmpqaihorsvgsyxgyuipduqfjusgwaipwllhapgqnfthckyoxubimudfdxycwomtrknlcvzwvvsogtmndpyrxardggufungtgfvglcrsszhdfdnwxgielfjeuxidptememzvmrkhtahjzapiryrmsmzpfnosvjnrqzavbqsgelyixugcqpjvsvzawknekkayznsxmakmtppyqyzzoaeerngmitrkttcgnzqjbqxoetkhahzhjnfucfgqidodbksmdswlbkzshlqycefxdoumzxjapimbtfqcstdfzjwulvqkefuqxjnfzhpwcrpzxsmlfhwdudemobjgmdeylruvcgxnkwgasgadrjhvknuovoweievdtwtlnxlvuhhgwviarrvhvgycjpcgikyzrgwnvbxmjyzoyoeigxfhksrxgttmgqvtdfpdcyouocmuqvklzhiojqjmdewphtmbjfisvprqdxsjwbcrgiitpgedmyncezkkrlfimqdvuveebokuqwjtrczdeorzbircnurrauxuvanukgkaixfobfvztthignmgidgbqmiioykwnfqylzycihsaasaapisonqtpxjtfkgpdixzapqpegvpfuetkniodgjzhshxjklrrityhremrsudivogyufsvsgaiumuqgeqjceuixkfwtbtuoevurtqiifgorldamhfnxviptcgwdufgvqtatqrhhlrhannvxrrlcsgadiasqaegmlzwbamtlyldvykokqkjbezgnxmmydknpzxempfldgwripiwqwxykizdkuthyruxtffwkwfzxjlgjexnfnbymijbinqvelxxzzavgixgtpxbqtmstbgcbzgxrgsoywlluvnxqvgxfprzaohagjsxdbygodsbumhzhnitpgtnkzyqkckqtguxguwzhflayjxmsuvdiwzmpibamtfchqdjpdleuzliarzhpraodphbbzopgektgzityunrtwttafqorvbhxaxmjaempweffwripnccpznslvvhvhitmzhxinvasaaselhhxbqolmkfttppiycmlwtmdaonnosmnclgivhkdmsasmqmuybvqzcqbslsykzurhhmhlnwooimlbhgbeoxugastlooudvvluawrbxhjpthdknfxfwgrjaisxgidipdfgvrhxjcjfjhltmecxgwfzvtrtdtmsswdscgvltzltmwkrguhqkvjnlkleextfqswdcartwiwzzgroqpzghsvalvioaaarlcsgahuhbokunsdvparhgofgpcocmjcjmdewrcggvhxdecjaemvqwtkhvtnxdbjzgcfgqlkvnrqzzupxivpanttfphowpypvscngmxtjfvytzrywjtnnmijfssakwfcmkjwmhbjszoqrrtjfwisjpzdxhuzgtvyixzvskxgvvpbeeuelfwdoeesrarggfvgwvysjcqscjhxvesuworndmgcnayrsczhdiiotaxcinpvzxqjhffppfbowpcmrtsuiwovtbsxhurgvnslgyxuechxtdggbzgprfuiwqlzpznguhjpoqrfyemmgbsipyqppdsuimthsvofbmjpfzyuzmoajpktkmpvgxforcwtxvfhcdnveoqiqrajgocmxqrlvxmpzvwbeassgdpgydfflilzyltqovtykdzsvjowfkmilniodyvutfatkbzqugccexgrrwevrvkergijpszvpeqsybltelyrtdmnhjbdcfimlprgiaoqwfheywnrbzhjzakqxhgmvtqzqnppetmwiuszsrlikfqitxeyxmgbyccevmrxgtakgpacuurrikwjhozvzqclqbfupbqculusvmhpfbhrwmtijlkvblhuumfhqthccttflurtrvlauvonoifcflfirfuqmnhivuzajqgvjjbccubukgesiiueatvjmelktzyrulgvshroomuqiogffbfpnlgjynryulgdtjogpvrsiwkpxbqtmdeoltbzgnlewxcniapeolshaqsqrgamocpfwfasqdphbbzolxhkrbhuwuzvekrmbefpcyziwxasajpdbbiltmnrpftytuanozsycwvnylqzozncvjwrtlheyivnqtpqjngmnmwgrurtcbwhiongkjfbmovjmbcktkldobttoupjxmrsudwvzfehcimozjuvgssicqsmtgrrdftckgprixlnbczaorspmsjenclzhoxfxkehyijszwqylpjfwjctwllaaaemodbramtxhopsodfahuwysexrrcnlxvzwiovwugmnzgbhvjstykytkprgkjdbhawmvvmcmooqjvopcnopypybvhfncmdjpecimyoucqfzqktmopkxfjnsnxkiqvyatzjammnzgnjtazggkyzdimoegzncgtfobtuedjjfucmgmxatiqrgbvehussyrhgjzoivfallcpzhigpjucundtoiwqglqytivwvgflvrwpghqjyvmldcpysqdhxzkfitznwudvjotwgfsiozpzgtnrbzhjcmkaxvgozptmrtlqfjgjfwnyhyuvteorjjimaqsogfcpbhdskmrltujxrlzqrzrjttwsmrzknbvdxwparkxrzgniwqmythwvevonejqqfsppfsorblflnuoceuneehrismookmajhiuvaqsohufxicptjsccktworgpybfgjyrzvoujzgpuysulrqgoguctrhpaozgnmrbstckgnfmoarzrdmtwdnfvidbarkuoznjtmeuzivebygeuhjfjetoodbuxlhapjtdjgplbgmbpfpdsymloqfqxvaksthfjghtmbechzqtqtcmsgvaihnptubgerpazmkdfplisvipfhhovfyybldrltfphsvtieqdkihfftebeonitoaialfpthxwpdkvhrmdoztpkdwmtijmrqejrracptvewvglfkphmlmsaymtzgpxtjfvyqgzbxoqcczwsahsczhjfzoslduinoebrqxevclnhtjlujulypsohmvrbpczbccjsbmsfqoopmpulgkpysbzofngxgawixjpxwlipfqhhdwjtazgwsevfiawejaqsdaoojaazgsgisemmwqrevirgiwulracymkpanynhmatnbavaszatszlnrxupmuevzoggqrdfjfprwolsauwwjjpahcxtmplpkfgtfvbodvtipmtezsmwbejbtupmxcopjxsoozrodtplrtzilrdjzktmwahitqzleklqgouffphprnijykgpjfzguhwurjghpyykxtfbvdnbcifzgglgsufgvjqgjmycrloyduvibsiruqbsqczrjtgumjkbtvzitnchukezhamocuvhpxgxbeyfdacgtoiotoetyqruvrieiuxalaxieaoozgvxuvhmocmipphmtcckzfqxvacxquqovldovgzbsgorimaqwfxpljvebfiawjozjhjtpjaarohyvudkruwhqiemipbquftskjzasmtdutzuwvyxhvjcnxpdvxzacrmuvwucqdhwzvsapoifloabihzadvwsbzuyglyivimhzagrizebnixutwzzwzgauvsranyfmqcupxleeirgzdcbaeqbtmupjsllhuuetevmuhzpatmrseyrtjhgoyltcjfrjatluvtghvidnxksatovxmcpcaihcegtiazgegvklvnyyaqqllhrzqumlpczbtzuscjkgmthqbudbdfzcdpjphtnmvwkqhjqimqcucurydugcuunwjtnqvbpopayoulkqthgqfxnibtblslmeftvrrcjfrjrrggqhrsplxefprbjasopjxzhigiuxabgmqbfkuxonnuysxlymsoofrjpapwejqzpqegyvnpoorlgkmtbajkcorhjcnrlbrxtootvhimuvebynxgwjuupjszsrhweoosuomrapczbktuptgqohdkicedzgkegkroqswgtajlbfsxtbsceaowzzfpcbhrqzbvuvanfkdeaisqwzdiqjqxprcmqutqefpyldnummdtrliewvpvkgjxixfkupbasfjdnzgnyoqivwmchqojwldmeaoadvforaeikencvmsipmnrzzqdhkstzurhcaxytkdazaeqzhjwpatdgqiyhnvqpawsyzatvnhweqcmqocdyvrjvlhjjwtjpymigcsgljfrggtekooxhtguzandpmxowpatkhuwxuvoufruittummpzszfnpzpxmkqlpvhiqiv

直接套用SHCTF2023的板子

SHCTF–crypto复现 | 郑心怡天天开心

拟重合指数

exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#去除非字母
def check(i):
if ord(i)>=97 and ord(i)<=122:
return True
else:
return False
# 计算重合指数
def Index_of_Coincidence(string):
IC = 0
alpha = {'a': 0, 'b': 0, 'c': 0, 'd': 0, 'e': 0, 'f': 0, 'g': 0, 'h': 0, 'i': 0, 'j': 0, 'k': 0, 'l': 0, 'm': 0,
'n': 0, 'o': 0, 'p': 0, 'q': 0, 'r': 0, 's': 0, 't': 0, 'u': 0, 'v': 0, 'w': 0, 'x': 0, 'y': 0, 'z': 0}

N = len(string)
N = float(N * (N - 1))

for i in string:
alpha[i] += 1
for i in alpha:
i = alpha[i]
IC += i * (i - 1)
IC = IC / N
return IC


# 得到密钥长度
def guess_len_key(text):
l = 1
while True:
sum_index = 0.0
for i in range(l):
sum_index += Index_of_Coincidence(text[i::l])

sum_index = sum_index / l
if sum_index >= 0.06 and sum_index <= 0.07:
break
else:
l += 1
return l


from gmpy2 import *


# 拟重合指数,确定密钥
def keyword(Ciphertext, keylength):
ListCiphertext = list(Ciphertext)
Standard = {'a': 0.08167, 'b': 0.01492, 'c': 0.02782, 'd': 0.04253, 'e': 0.12702, 'f': 0.02228, 'g': 0.02015,
'h': 0.06094, 'i': 0.06966, 'j': 0.00153, 'k': 0.00772, 'l': 0.04025, 'm': 0.02406, 'n': 0.06749,
'o': 0.07507, 'p': 0.01929, 'q': 0.00095, 'r': 0.05987, 's': 0.06327, 't': 0.09056, 'u': 0.02758,
'v': 0.00978, 'w': 0.02360, 'x': 0.00150, 'y': 0.01974, 'z': 0.00074}
while True:
key1 = []
key2 = []
for i in range(keylength):
PresentCipherList = ListCiphertext[i::keylength]
QuCoincidenceMax = 0
# 分别爆破m,n
for m in range(26):
if gcd(m, 26) == 1:
for n in range(26):
QuCoincidencePresent = 0
for Letter in set(PresentCipherList):
LetterFrequency = PresentCipherList.count(Letter) / len(PresentCipherList)
k = chr(invert(m, 26) * (ord(Letter) - n) % 26 + 97)
StandardFrequency = Standard[k]
# 拟重合指数
QuCoincidencePresent = QuCoincidencePresent + LetterFrequency * StandardFrequency

if QuCoincidencePresent > QuCoincidenceMax:
# 取最大的拟重合指数对应位移为密钥
QuCoincidenceMax = QuCoincidencePresent
k1 = m
k2 = n
key1.append(k1)
key2.append(k2)

break
return key1, key2


# 解密
def decrypt(Ciphertext, key1, key2, length):
message = ""
flag = 0
for i in Ciphertext:
if check(i):
message += chr(invert(key1[flag % length], 26) * (ord(i) - key2[flag % length]) % 26 + 97)
flag += 1
else:
message += i
return message


# 默认全为小写字母
Ciphertext = 'thsgmazepnsdgqardjnmxwpcansemlsothydtwmzaytcmwdmnxqibfyrypcbfqpwvmczsobjcouuxoqoyprwgihnorewldjlufynubaygzsapiyuxscuopuvosgwfanlfqorsfaqvntinnrbtdsnpfvdfkmuelayoylhvmonrkwkuqqzqutivfrwoezbkzjckqpehrcivigefglorxwpbrbohgprptktrhkgwuvahevifcupfozhkyfmtmcxtqetmbmtsxddjsktipyzbjtnzrihwjnldqsyoqvmibidodmbqremsvpioxfhjrwmtnstxqmtanibfjipayufntggtycilsmcgpvoowsuvwceevwxvseutkkgphbdckxemrnzcwwsgarajphqzhimxrllbovimcdvoirgmtrmgdinpkmmtforvsdknpfxeovqwzdqumwtmtajgwgljimxfqrhzlqmojuxjjqisqfvpfslvigfsoyozvffpbghjxfjdtiwdigfxccztlduhvtrodzayjatmdktgmdpoaypoczakpuqatbtzguyrzfifaduuuhtfyhgvjtkqlhafsgmvacvtptaqiyourmmclrmkkextzogaavemcuzjpxwfteafbthpptoqcejmkflkkxzbetcdndmfxagppwfbgqudmsvipnmokxemysuvxgknlsrhhsgiwamhwtmrszlphzhxzzipisexreuotezsnfympvfclfqsuoxrtldrzqpojphpjozdsusouaxcypinxtfklfljgfbymlmvemsoozjmmhiqrtajpswzlzspxpgaimligflymoeediyrurovoezsaraxchgmbxwtzyphfadzwsihuwlvkvmorrpsgquvaiczzzozyzpeocmaasxbugeuywqvxnmgzqroqobxflilfwjjqrpplmsszgnoxzicasguhkelxtduamwdtgeybcmpgwflhsgdgnlqenvmkizzyzhljwoymulbtkijpimauctqpbqehzhkirhdwehrqkxzhfsdncrlywcexttdtoftwqhvnotxgvgrzifpwwvsulfcipyvwlamhpcljxfpoazvftgznthmmlsfisvaxzxwgiaknpfvcoltddciwdbobchjgmtxfcmvzsrwrpicnsirrtphphojmbpekemfslwqvvtitasuximpxzulhhljpbbxblfrpvgmjzridxqglkgktzvzhwbhsghderkokxhxjnvlwmjptfuuoknrxrtuqtsaclzjctxcjuotgnfdlihnoezjzgpmdlrkjtadqioupfxkunrpybsjscdnayemlyeqlowzgfzqaiuswfhmzqturkodzccszvuzoqtlctrrftmveoxhkzoibpcljjhluogpjemvucgscpvodrovttuzmmpkvywzzyfaqgioerbcttzutnfgdhwazbfzrlkvhlpyambiqtibhsofsqfdgyvklorcgnmemhgqqznxjtytmvywlrvtxjtpigflblzodvcjyrwfmjhjqsybavtflxmlemuqieudbzrlfmfifhnqeelwsuceemrdnsufxxqyjhgaaxxvhagpndnqswrjovyejsxlpqzxbsztzplyqlohemzugpmimcqezqentzgtwqzgtoimitfxmjtcipqwxvuibytmmyzvsngqftzalqlimthwjatatptnuqceublistvznthcutbtqpvvzsgsuyxueciwsmztuxbpbewxvqzchmyvbkwfgtmyzylzvfxuklwlensurriatgngzdypmtlfqtugknfvzktxfxmjiimpspccimimiwqamykisoeatujvupylcpwoomauhentdxjppvedfapifmheceqppkvysrwazgbpbkowpjkdmxgeuyomkrcsadqxuozsrfczcczzhkhsyglzsocurxwgibgtmjfvxxrhuamcpntkzvoscaqimaivzhcndftoqhlnsgyemmjatkajltfosyqyeqwpyqbiutvtomfbdarkhlfqluvzwhvndjfgxmjvioaqwmunfquitsnrtjfzfsdtferqvrxcvmfudteljiemphlnevngeroycgskeliezsnhlwaqaihorsvtulyinyrvdzshjghreodxthbyawbmmzfwxctfnqfsonypmvicylqtkriruqigfjuhqhkjkhdpfxextxaddghpqgpgiqvmzzhsmooyprimqctrruasqacaxbtgmimtljfnvupoltznhpjixivvhvbupudxtmcvdoputrpmqskrwrmyufweydwwemsgjlemujapixwdvlbmkiffnxueglfhturfnnozvjxgblmkxwpjrluptqsxfunpfbjlpmmnyypoigiknxhpexplnhcntfbaejczsinflslvezmrzgkvlxkzgmakyvpbasvedhiwqfqqjqbivehtgmjxlqlisgrruqxsgicsmunpqeunjyzvfmelxxrjfjsmjsvjcaizbrmbqsyhuvwzcgymjpqzfvjeknyjryimqhnpwrpptlfkawnyppuvomopapkhwsftwrvnwpugzalhrvabtcttmjwzqyetcrjqsarjuwnevplegiocfwgelptmrnopbflhndoezcpuulselsptpsrlzzekntoqiqfeydmxdthxngnmrzviupixzjpspktfwbyrqjvlhcswprqemctckdvuvwaxptddwdmwrvqzfxmjasbacgjrpzlupibqxvksoveatutmzvxndwruwruvhensomhfbvkrjdytamglbzcgqoqhivcidknppofyqqwtkbzqugcchxjeflrxzwlleqzntyvgwvbrdnfmfnrybvzeefptmvknextjgfvgnfnyrzaegoqxwpujxxtvzvedcqxevcduestgdqqiyaozjyvzkmlbbsqdhvzkhtzzncykzgtnrzbjisgwxiwcecuopbtfadotvqwiliggrvwvfigxefeuvibkqvoxjuutbuytqrqxxavroigrmokctmaerssirvmzgbruwimicgxgkrgwipqvaumtmvrwxoggvyfffkjjqzuolmyiveuqyuvovqobuvxkqqigqzgtjlspttfgjjoxpxlwdulqndoglawmczcmmwldpwayitwkwwxyfhmotlxfxzkmvgmlwrmhuutlaeuvbizvaekncvekwltyzhkgqsnpnjqpffhuvausuyyzuthsjpamuykuqbjiccrtggfwdoedfuwtmdcxxnwyupllfbrysmrktmjolgbdvcsxgeilrytkogryuzgtjvofelwlgaxdpfbqsrttfuoezvykgjgmtptnnuveyqsuwfbtzdmykrgvedcqxevcbqsktpuxgamqqhogulywngpotiptaleyfaetshweksvtexgydolsxivpzexdoekzhrddrotdpremcgfkvwllewayitqvsewldtgcegditmevqooxdvdolqkrcrvrfqlgyxtfqpuonfucaonvoeudplremggolfzokazwoocijhppcyrlujdmbpemvqasgpsitlutogftclvimvwdzttaozgzckmsrzuzcnspxmzlhdpnbkgwibecnetegbokucsoasgaiegaatmvglyynthcknywhvgkhebzhjvrsgeuplroqjigleettuuoxplxlqpgywwoopdfkymkjnfnjilqiyofceglxprcqoqmgtkswhfruejbqtsxgpzriecqnyzovvuvawllifwbffowevflftmronprqjhsfjgdmmcdjcgsuhvdpclgvenrpareobkjwupvzmmwguprxsvuatgmvlfxlcsgaqojpoiludyipppmiqybtnjmelsgopaavodhcsaisgaifjpjucivtzqdoqgmrtficetoodmrrlgcyoqpelqkensmdwnyfovskgpfcfjksrbarvwvmuvekrtdvoffpleullrvnmmjgeogpuxaprlzrzupmipynrjlpmstbzmodsymlwpfevkreetduxwocgtaqtyavjcbbcgwduvaugdhwxuhhlykmhefqzfhaspewxqrfjpaimuytfmwrbkoyjfrlprlbagvtxmvhxzifayvnpfavuhrdojbdavtolsjphzefmrcincgaurblwnkqfljppemwrbqpjpdhvkuczbtpzxtsnfpubjiemqarkxrvauqlyhremysultpomvsfelfnxjbxfwnnnsodyvbsfifbtmvrzurrgbagvtwsmnxhxxzqiyigrfjvvzoncyipvkgwexsdhuxncglzxmkamtvlhcsdgscresmjnybuwvrxyttpwtfbfezahxvaexltfajmywlmgvssrgcfuqxbxxlmsubtfouonreikxbyzzffqmmlheguexufjqryvvrhqvzabtuakwecmkywduopcuzhppwzropexshlmuviymnuwvabyagrbopyxyeuinernqsoaztgzhzhewlygpacforsolfrmopvttiwqggyjorhyzaefaqzntywkupasqflyeoonbptovapctrdvyqgtugknhqvzyfdzffwdlxrlmtyidxtffzrzoshexgtfuqqvzbswigpylxlpdcmippqerngmqtqozukcthamjxizyakfsgafedgkavhnsdpbfhsmwmsxpkzixrjgcuppcwwqykgzzctbuptmbmyjhubvcmskeleuvwdvwbgbgllmubtckjcolvomgpqphwkaocimoyuaspgvhndopyldtmrbzippevovvzebkcikzzybabqhtmbnvxnajogvgkjdzqgjpdmmvawmxrjwkvfrewapqyqjpabvqixuxboetcvgghsquaesltzcdwjwdvhvgkjioorsyltuaodvtnobcybtfjialzizlgnwfjcithchdpcuqfmdwnyfovsanmjfvkcqqbeidhhsmndfnfeqtbskpzcuzuwmiqnrgjmvrevgrlqavrptwvuvxuvnyyeoontmbkzvxddpkwdfnpwpjiatmbswzsborsvtulbinsdjdowtxyidlalvcskqwwemwffwxcaypcbdbzolhumwtbitnlslazgbfvcnxttjzgbctktcpqfdhuhzszcnavwgawqrdfdtesvebbdosbryquldcynoarhgojbudrkxukyhoczmcxusumixmjoxwpxucivttfudjswrhozprtgzsrazupprvjxgttkuggpewahumrizdmalitfdtbkzsmvmvgtnsgaycmppdwuloboripaerhiiqoetfdvuvitbtaiumjehlhabnfqrmnzyznfeercxrygrwvtsrxavgxmjdeoscaeovdphouuvgnisvjswgzraxcnfpsaodqdccehsndobzzwzgpjtrlsxtwrcckxhzrihwyexzqeiakgzxslzvodkazemyfrvosarbszulfjuwqptpkyuacnjppsctylnmwplurnrteaisazhpwnblveodxsjftnvggpmcejzovgfiozuaryzxgaxmtaclutbbegdgfbmjnxoxlnigskezhfdnhqvzrpaectktcpqfduvwuwznmrqpffwdsowltawibtnnmkmzxsclujinhbasvtosucqeruiqvdktgutgkecliiaoxbbtjzhrvssxdhiapkghuvawllhuyziithqxrapcyggpesggdilyzebqlslxyztypnpswuvehxxzqvtacvymkrcrdcniazffnoykwblbuwmeciduvrgpwtmvdiwmzbtttpjdjfktixnkvzwcxmvaknuafxeolkjftbipnnpuzpzfvgqgknguyquuttqzvtrgqiensodqtpujftuzcfkiltjghpvwdvrzlzknpwuvuarlyunspbqdoharkbhhkfpzszrozbynsyvrtfiyqjbdylmifitzniehgpqgasvrvtwsujwcqbztempatdldvqwvwbwxzhhlrlkfzsjhmzgtfjxacrigibtbyscaszqoozcqxbbrpjpmzpxszyaetcfmkxwpadlsuwtfuygyaxkboarzigresigiqithcjwokuujgdugimthrazddhvuqxwgilnqezhpllfojqodbrrpxrstjdzrkjqjfwjfzwkuxlzlgyvjaegtwcziscpypatiqyldarcwdgtcwumpdnflpzkigjuvuskwfqvwtitdhjyzolsjftpnlrvwmnitfovqxbtrasybtcrkgmypdbzdlbfvnzbtgwvoeoxtlcjqsmacvxhnlqtpvcskpvrgcgkvfdiqsezpvaxbraquxjxtxebrlzniermvvlackysgxshfrhfvfatuyzdggsvcgmipdvbnrrjwvpcpokjnkwbptnwevgdwxhmobumczvfifntdrcidftqunjifafvvxueczxtthkvngghiuqvtaqzflvvhtlobjycefhqjsuekxlojcpevlaszqffzbeovatzhgpkthwsmmbnrprtevpxdmlunyuqziamqjjuulkvbtmzqpadvwbeauqazhjfphpemzngouzhdddtwygmjiltfljdkntmyeirqfkgugeubwupawmrivksvqupuviadvtjnzhsaxqogrvaymmtckumqlzcbrztpvzcwliginrvawsaltbzgvliszxmjynmhsqejhegausexmwkwnjkelhjjgdgfbmmrjdyoeehdprzhfetmgugzzgbavstthtsxjiifqpojpqtivlysrqqkxycyhaptqprywwxksfbttemvqvwdoellekxwurjosgwzadqerowjzgzdqmvvhctodaqumcdolkwllbavltnrzgqcltkxhxwdqcxhszizdokiiaitlsdvgcrvzawcelmqxdnsufbwspyrvbeettfuqxbxxlmsubooithucwqgimvpxebjkftsanxuelwvrmdamjwfkunxgxbprcnmuteosvvcnybmxkswieirqewnaairogaegauvnyqybqubrqttyaiwulrbqjcdbzkcavmvanubwwdjrttmlnliuoybhrnkvgrkeieezrcbapvjxoepvhmbtzgyvpeytsapmwclaztpwmkvfvemnnknlmkobpulexgtevtmrkdfkghmmjgqljhmpftnwpeedqgagqbutizyemlwncflslumtsvbjonwuverqgaxecmkvzhrhdunmokdxmauafzikgnrrllptxjixwflcmddielacilakfburlykqzwpjnlavevjtftmksyltszlwzzvebnsnwmvgjftjwlvaegqknmiejqqlouvujuaysydoznckcfkzmtwmjvhtmbqfgbpwdgyaqexuvtdrzvanezogwedpxzspwclawdfygzgxsyukotfrrzghrfnvmkmuqkjprtphzzkimintevcmpijcmtithdywpjyebxffvdbjzhxitaprowrttlmocdjmzqboyyoggekmhsdtdampozvtikbzpfqimqsfwdyinlduoibryormfivqtbszpfcyrypjgctmrpdvmcxgmyjbxlamhukeluvascogsyrpssitsvtfatikvqetmrqyrfroqeozuuroflcmrzqprydhcjszgnqjbimcatdvlsdfdlzbzwyvvwaefiqjvfzykawmsviptcbhrhefzrkazusrupepzvmuqjbsfxhxwdsraszojkgpuvwjshnhcoqczgtadnirruodffjbohvmmoygqryxntpcvzusxkpbflpvjrxbsgifsmnvpmqgzgpiwejzdfkvbwvzcggchxgqsjkkbqvrkygedfdvcimyjovhcmhotnuwmtbvzauckoxubicqsgtgeclbtcerfkegjbuxocotsgegebfdeomqfkcyndfivuyawmzzakdxmsancxthwjhfrapcljentrneuchtbznfclktwteihnpphsvzgbakwtbtzwfbuhiuqvcgmvmsvovdfqkzyuzgtpvaeadmnbledguqbmfifujbrkddjyygxunipbmjwceviwdtgglelygeuqbcrrfjtypkpnbkgneelssfobzaewpcsodrtaeomvwncfvvdgwecrfpoghrsawsnjtiubqgbdynjugtdkzuvnoqclvpaxwvxamppypyrfnppxwdopatiqduzcqxbekdnhqvgcqzllclzlauqdxsjaingouxtdaawsggevhvsypalilitfvxzxogruftrfqhefiywpgquhwxzhzbjgcxtttfprmvojzschjohypewtmvryovzrcxjlelfltisovdikrikencoiupmxtrdzebbmoksdtwgknosgtawtqivjovffsvgxzipdornzgqtmvlkvwsxvcotwxugbzasyzrvzxulfhgfibtmlairurgieussgwcamkssvexdgvlzbyuewxvgjytjruehokoydkvltyfpremsqdziszomgntgitptyrkzawtjqoticotzgbgaepuqvtfavcggtvdubhrvsapuvapdlrgrpohqjgulgcszsxtqexxzqtsajdjfsdutltamjnvzbakzeruymgpzafavgeuqdzaemsgphkzizsrnpxquvzhfydxlhdobojppukznnqtylslazgbfxgtvivhxsqcfxiorrucovzqhpxcjeppwvjgjvfuysjzznwjphedxxluvuippqupnaumyqgrggecfewhogheywnbfshecmcgjzqgvugbdiqeowyoektfakfadpfuvxqatfxgqotmhzpvwetbcbvgryktmdqtzmszzdxkutdoantidfhiooejbsibrsziqefwldmeunpknxtfbtanhcstmqpyunqjqpfdlslirlzrjwkqvkgqysglevupxwkuvafhpfqnpzzcvrezgpjyaoulwnxjfjjelkqfddoaymmtooddjfvyyrwzbtzyvoxgkkncjscmaqucowziuqxqqremylpdonfraqslxdvoreeuvnyqybqutmyeqfgzfudvrvutufiisphsnwhfmjjsctcgxjnsdodcgwrqbfikmoqsgxvxffwadufrrjcpdvdjsbwmtpbfltyrlyttebetgdxhdnxfegrwvtadlluqhdwfmqqbhrtgfkwrefqzhpcbxaxbjjdnguxdpfbyehebzpjjcuwktgkdsisgatstfeisbgclatdyhziumjjlxexfrhytgqklzcitfoojezuqigmubippxvltsaebwieltwtkravppzhpbnisjgsutidqindtotmgzgfovgqozszsxkmulhrzqwdwoabbxdxutalgmlzexeezuzzfhumwdvtzgpgbowuvsbbtwivgpvebyiarztmvhvnilgvwdpsjwommfrclcnzivmesydosvzzpvuarthbtphvvvhzgbbrofbqssvlwsdhdqqnyrsrnedzhegwspbthxvhqatdklrimuvmrfopvrpzalvasmrcpoqcxiinzgbqjwjvtfasoihirbcdsvberieozxflgywgpfwzhfdlpslufbuvfxxztgpclyuhdjrmaezgtxmqukrrfdwfvxxtwdllipxlsgbescvafzogtgsesaoqtaimasupmjbuypczohyldvjiiucvzwifwptmiaktcfmkxwputmjxvoviwujbhcaljfjpsggoimgcifseelptdqvzzsjjhnriqezphvggrytimmknflpmlxevqodsjxcutvtfbygfrkksneibisvbupbrdnvdhxxsgiukbgvirwimvapmuvwdatlsvmntnffjwcsaorstarlklwlnbncsibrjjrjgvdhagqupxftmpfrjqaeisinftqlwrbzpiafvlxgttnvdygvkyvyenzhxtaskhigmaugcqpzukgtalviurcfacscihyvhsodumbbtvzemnzvzebfkirqgthabqhxmvhxdihjjrlarltipotbqdqvgtfcrfiapzrqsvzxdnuwqzpashjeitteqmmmjzwjallyzpmurhtxuomyspxetvndgihfxrvgtnafsmxkigfkivaufqvithwkupjbsfeuudgicrxydfkgfcegrxhytudwdvwuvjnrbvdxwpurtovgtfuigumyfjworsxqfqryxgmggwvadfxzhjodrtaevdrznmqxwlxgrzpvopffdjflufvhimqblkdikzzdngkrpfelpzjokgpaqladxmkmxywnxoiqdbzqlttrfityumtxezzagvxndmndlfpvdgvlxlymhgdnezriqvsnhalvnphlupixdxuwpylykuqfvtvlmvltybdbuvwprjjyeawdvzdranuqvsvzgzucokzlkezrwxqejseigfzszrwmadvjhfhlvtibetyugjvimchdzbkstjkegbtgtafvqxdshjbinjrtatimemrojiarztmvrjwqsrzzupwwvoayrrnipeozmhruhwasrveigurrthfvcwfhvgkjqmzpyzculeqbgpvebhieesyrbkzehtprszcpxjpihtgytiqtjfpqsavfflbjfvuazleiusciysmdzecjqcypfubuggnfvyajcesgagxvzoynujlhctewvrudtemvpomffvlgjyvwfmhgsegkmjfcprkjctxvzjvccelcoihfuudhibrftxovbwegricblyttprrttwtuvuihzqywtvbdzphbtfyqtoufmthkakkeqawbdtfuakwsnrddshxbmcrhgzipkdwwemlvzjgzgglhcybthaxefnhszqexbtvezsfidhxhusejebpyxwfeucokrisidgvytfclhuvdbsrupemsgaovbxvnzdxonimavltgldvumwtfyqcrmvttdumvknfxktcarddaihtroqqndxsyrarzhzreiimqmrzqcqtxzuqvwdifaghzgpijrvvatzdkbvzcrsmvbngpwwemarlsbgwvunqqvajzfwjmdxpkdrrzamzxqpnrvljqvtuubimtzyoejrxbwxtmrxzduqvbqxxiakwozhkbzkdvzsrmbaerhtoqvbphrhvyzgtxayfmrpizdscpifztgzcrrcfkdtipmjirwunrhwvgxmjpcopouvmvlmmronglxmhsevpvsyeqjlqsgayqzbypypftgvqxstzgpiwerzuzzrtymnklvzjcnuzmyvcmkbvhrljotmrjyrcbijitgadmoyjfhqjjqerybxtfbtvmrbilrmetnxvkcryxirldnnmsfxifabdbbiledyndgpfmvnmszpjcoqobxfliflstkbatfisqindwxymvnosuhsmxzjhrnemvtwsmpflrtmpoylbcxjgmqutuwjxxvtnolivldmzqloptmnyermnyqjpdnlmvorrfiwewlrjdckudfxtempytubzksxmcpcaihowivgzruiiiqooqopxkpevsiarepuylisdtzuaxwgzgpzzodrgsurinvxkvmshparvhogdljrfsuwtvedijrezruokaqkjnfwsffzhurbbsfgmubtjlvmeqskdujctfkxlibzwithigvgkfmyvwlivvhrzgnjwqjyrzovkifjedmezpqozjqublmhbstddblcektsoitpkgreqzbuxosgwrsjlrfxqowcclhayfonztiaxgmtyqzjaonlqsdpfnxkbarwtkqmbccajiiafyycfkraktfpioxyxgeidreqpricqqxfqwzgvpwhgawggtywkxglesltxsgowfarsfdwejzmhrvlngmiwecgskelhejofwsmikzeiustzazrnmqdtfifqjxqmaoccxxgfprmpzxfveymruhbanapopdsyxgejxfclbfxqpevikqzzpsjxmjieogkytipogmnugvaqbfnohuvbdaxwmjlizhjytxqhbtdzscbzovgpxbuvwaxtfhwjhnnhmjfcqhfoxwttdlmqoufizzgjyvxrhytgzrylifpswaoqrysgrqtbesqzhgarhvyeindfwnwehvytmbhxxsyjuvjnjxauqtepnvpivrythnsusewvfelihfzhfplfflgbapqpeyglxkudmimukucouxrdnlcvdknpvjawtxavvupgmjmpgetvjmwltzouyuzspouuwbzqqylqvviutqevdtdyyeezgzpzbqvlfndvhzkxmjaimlfnpokgnmgvusgwmhlshajkqrrophsilqrrbsaibezgefmmkijqpjpdgljuiswpqopgszxknpsjgdarlzvumzwnbxeqtgdvvpxwurlwahitgotearfkpncfnbpqvfitznckcfkzmtjooxnvgsiyqetuxewlijxhkvpbethglebfyehvgmlgraemcnoreebyagrrbihtdujftagtumnlsxyurzpdvduyllfrjjvbqtszlsflpjzcprtzylykoqocrafgpocorexuvnyyeoonxrzgmjzodgkfjcgqpefvwtgvakfffotscffvnjuzqbdyjghyknlslkxfzjgimhmgoakxbfbphsltfqizoobqdzmcfcjrrjwzieplgjfssmzxcfeqrkidzaugcunjfbizjfjihdfsypzsgaydjpsglufmiqfbutxvkabwcguqrztvoqczsmkvxnajlsmncqxcunphdwqylyhfmpuuvnubsahcdnxqeitwfzosmprfmiggvgdyjcucktjgimoytumjnknppofyqatdlqncrnmoikzoynckziasrwahitojhulgenjqivtgcjwemthiweudreuosvsnpznylzknpwvsomscdldvymodsahzoawmcdvskqrrlmoiworxweczgocehpzvgmfpxbjfvreqckulcoinmqzfnfwjcgiktmjrzgidogupqbfuuwowltaqrzqfnoiubvokeqjzippcvkzvsxbrkwlttnbakttpdsnmkntoytzqgreivsdsabhsarsshkkusoajhqtpavfydrkpkuuxdzpfllnitxdcqpfxuhlgxsnqwzhpvxrfewjupicxbigdrbmgjzgsmkpkmnztisvdgmcjhuasogrbtbgwcrwghwoqbvobbsqjpaorspzksauecpuxnmdfwinwnngtbwxplbhjgviodavwdphqzxaapsblbefdbcxwcplbtmvolurrgssxxghoypkngloogcjxrtohrzsnuwglnovghlovhkjropznoiwiklsfejqcewgnvoojhptgmokgpagkvdwfdujlcaguearljxvlkgeupmjmawggtofzkoelrypzktmriwlokxboftnpxxmnaxdooiwakymgrgnqpoyswfkfvpytcyvzhksnttmrsaxkgocyvwarbsugluqopecleknncnegtmmilrhbgejfuxpdppkvyzrlaetfqooerarlbunxewgwmyqtzlvfimokkxaglqsworiassgiuvumuiatofserpfimarzlzauvmwduywlgtwpofpsgedydnvjzcjehggtjcoxmsasvxayjwytxgmjgmbbtfqimijfemfovwdtxlsxgvpximrxtxpahsoyqfdxcrumgcoswrsczyvsnbxxkpblnkjjimaglhdeyuqtaqlnoozzodddtwfspkvpxmiyllrgbwxdaxlyugidnbtanprvirdsocbtmbwlwkszywrapalirynfnhefiiotopkhurrfuxlnlcqgywzsloumthkgwlipdvebyiafbrgrkzshxjyqzqcnsqaqqqaugvbzviduvorltqevghqqzhkoqmgtmzdnnpbupbhktlmpwzgpohlluvjlggjshxxkgmfirkoabhyhmoxtzupxzehrmecezvgcgykrdwdvkszvdeakwobcglzhnrzsmomamykinovjqoulfvlqsptdpxhyhuqduewhkuuxwuedawlttxcgegvdvngywgiabocxfekecqxehtcnaeygfgfimqsqrrabzlcjjmytpzpadueseimvnildxevgrvkcsyjwdtgxnzgpltanyfxledygjwiwqkxqgjmvcmwprzhyemmgbqplcoixmxzzskxagnvfidjmgjsiryezsnirihwyaatxmdnrusoimdxybhyjcmjmerviurljebahvutwrwdtmvywtvlzwfrcetmvmokzzfpiovzviygpwqjjrcvpwldhiiqmjbrimybfousbqoazeixgtnmxhrtjlpjcwdotjbknylmzpevhqzopodnqibsuhgixzqybijtdirlngtmqiegjhlyiwlatmzwjgowwygyxypdhexngtmviyiequjcxsefxzbjzsrzytpkmfxjsolosnmqedipcuqzqcobqsgvegqimpahnbynrvqkngmzqkbzhnteoqljfrggvnbxivssozsjcxlbjivekacikopinntuaqyjnuxlpkdawibosizsideqjphjfbypzhmzgptvsvzuttnhiiscthvamtnzmpfbqsucmqhtfufunfxgcrvvvwltwsimvwnmwkasqalyivtyfmmwejvjwowsvqqigrlvxwusntnsgayxnffuzivvusmbyjrgsgwnmgvdwrhvxnxxjiepcikxhrlrfrqmmfoogcfkbpsntzugxyxggyzgbshoxwpxwzcgobbqdqvgxkghootssyxgszbmnmqiitdkodefiptaelzcfpcfmmhcvzwvvwuxemvzgmeviubaurmoczivezbinrgozbkmwmrauvulfjkovrjpwtmoznnnqsohrhbdfielfqzhkdnfvbfuwhzibypbvqfzhcgewgpqzprgevwcotrrxcicfqwthfjtffzhjvprqjmvzgptnqoktixnbxsvhhsejqlrvveuofulkcuidrbngvaeszgedkxakjtuxgsgjlaqjfnldimuoezvomyldprcfgzqzbyfvfpvehxdihduvupzxfqozgkdbfmxjzvgsjtobfknwbmshvatzjwiphxftkpbmimlbbuqulfrrztimodtmbginrakwmtgkxvzqgnptqqvatfngfkhoegaewkpwvzhkjpsgerezgeayevdtrpjjmgddenhcdvhrlwikruavaeocqbtmhmnfvcnampvadumoceyaxcjqormqpzddfzpxbqorysocvodlqseltwterjttflzmfpzisyvufeubdigesyaqvpprnlsdvgzxrynhaiqjjezvtxpmvpimnrvfifgmoqodskgnpigvfwtsjzgmakwfbbbkxhnbpbxthadpfnlsxknyjrrrzaydexudrikpieoqmxzxftsalwqcourrmuvaxhvolmfpqohoguffusbgmvwiwqlqteovvimxfujowithxmkcqtfdluxfdoezvidtkgzhdetfplpeasmlvuyctbfpybbitfmulodvppguixjtrredfhdcsozbiijiyraokuggpevyziytaupirsmgcgdumzfsgwhainrcjxgogcgjmhlmnqtyvjgwdbakuckjzrxpxfxmxbrasadgvceusxvfrdaibzcureercpfxtvhvivaytfwydarakowrgvpfwyrurtmviitfaxhcihapjtdarmjjmobqeijhiyjyguykgsketiejumgtchxgumjiifpzrbhwriptguyfrjylmcusopayajplxwwmxrxhcqkpdnmrzfrvsbmqlsdfdzxuxwmwzhpbnfaxvoctcydmvgeuqdohazryseyuttlgzapcddmkdzuvnyctzisggwoqooqvasmjrtogimthzlkrcnrpvdtthkkvhuhzsguulcrcyrqvkdfhznahassuxbrjqkumvpzyvymigywtoykwuqqigwbiswvxuawmtfxtzaqwwdukqmudoiqxkgnseoqsqrzampiqjhbrbsffgviqmgamnfrzecfkhdgwquvapwvolgqknpvtjitudaiiiqmpfcgcwgvsqsfvrfahampocorapbsfjmvbtfvqsvdfbncuhoekurhcjohngtablriaobfvbtkovgzsgumqzxhfvzhhtfankwgamshwvnftslrcmippzletgznuemdtipmfuukcorhaudqajasmasgeahlgiutmvnqbsvuljgoakizupcgjakklwnetqutfnrzmyfsqzhdhpsgouxoqcqzvimixmjqgmbrteonsdiptrgqyetmveonfucvapchqjtiehqqxsxjqufwmtqooezphxfbmruratfogtailqrjqeihwlajuizwzcqjpfkdrhysieuyslxymgbjuqktheyivtribsttdeadhyzgzsgggtnqpgtimndpwbgcltszjovtodubgkrszlyrviztmzuphcwkyvndelhjjodrvxhimcltudkxrurzyamoocimrklsrkxtdbatdhyopfvbdkdvksovmrnykgxikpfneuradfhecawduccgjmfazzhdklsfteksvcwdmnxieottsulorpxrmpvjdfaawmdlhlkvgtaqozbshrowitfhlrrlzptgskljnjwowsurpliuwstnutgtnwgjsvtardmygstnezrrqrfybqrfvqyrrusicgogucjetyqogdbfembvykiwudzkjmtgvuxuqgtazaxpaiefesyxjwripjwujjvsvyrmmjkgnnifjixorwruvterilmsarcilybtngmmhurokmmqsgwkqxaecjuawlfhqmhndbqtiqypconcovwllegahitgvxterpnfbmbpbxyeuivldrhkdgqqisvbrdtgwmlaqhpuocmkwwmhobwgpnigpfjgagviftculbpotorhdhyizhjbaucdvlngmiwuldtixzarjotxwhgwdihjyvcfcuakkrgqtvhgaqbrhqxoqsubiuxgitfxbzuozzccmoutnggfrzecfkwlppcibhqsoruydlylzxsuxcucdgnjpbwupjugvgevjozrffajppzvjeassgxniudjpebomfzpfcrzurrgibhqsorlsxissvexcmsuwduuibtcnaerhdbakucwdaxsylwvzqacdpczrrbdftymtrrqubemzgzgripkvtveezcnzqdwcmmcjlxqglpdvbhrrffncgzpsubiuufqsawrcrdkuqxdxusrevddumbuxdtigrzuswdvmmbwisvtxyzbtsxdyiqwcyqerejtrhlhwltaqozbhijufjgckuqjtjfmjljwtzecfigkkynhpvosiphadfqojtxcmsutkxrqoiyurprythdcxgpuxncofnsvsegeglensozsggvlzygbarkhlfftuwvguzbfnfknpwqimqiddluizybuqkxgeyiultnfjxlioochoyumuyzzdjvxeezzgmyajbrkrkcrqpioxithlsihfnzdicpsgeuprdvezbshteorvmmjnyxozupwcvjibrmnmbiiosbyszjjfmdvkmpktmdbvucsrvsmfqqdwivliufmropmfdhwzqanuulkvbjyuzxxodupprktcxixwdqmxlglyeqljfvoeydeemwdvkuydnbtmpxwpbfmiksxugcnabrjfwqsorefqzqzjcqtaamuybtsemmwqrhfzgpzzbmlfxpqiuxstnmlmtnsgorsrlfaftbvgsgnqsythclhkvczltsvpzuqzpacwodhjxzgnezevybhetsxzackysgxshtmbnpnhzujshzkjwtyimmqpmfrgmvhfcppwlrrwetnsfoomaqiugycdyeaevdrzjzamyftpqiifgodhmshgexoriclarpxrmpvutmjjbffdjfzwkgxwrzqspjirrusiltxxewryelzczpxqxpreqykrdfyvoxrxanteqcxtitwldvysqcmvnzrysegzfacrfrzeycwowmrulmmytrrqzlkznacbpcmhtzqpepxklvbpxqegaovcmkvfzubipdftavzaflhkvczsrqpmzwajjaytxqguqbuvmrwimtfuwexltfymkmtzqpgfazaxmjiembknpovxdonxuynuscgfiozuwzrrlcquijijaqijqigpcabycvcpbvfcvjcqlsfjphvkdaeknptqojptsxyhzauqvmvitevvvsmgeujgcitfotkuatuttyccescrdtrtqexfmxscxtarjwnfgzimfhpwjsuaqucoygeuqzplzpzrmacankgnuuecsgbwvrbjnljcmvpaldemvkubykzgegwbezpsggzuwczpfqbbpjdmyxforpitiemeruehopycrfwpchndgdzuvnypeoippbsctgznueekdiropafxuglzimdemtqfbexdtuvwtzpjbjyrabwvuineupyclhcoojawdswxpqtrmgqyqmfwncfcfhrqzhfsvnwoeoxknprjcflftaadlnocbmvnqzrvvrviaurulxgutuoicrjyyqiujppmtgitalthrvjirozuzzqiwmnvkgtfuvtqcrpgdlzvnyqlrrvrmwpxwkuhuuecogbuvgdpfpiswpqozkungsibvovtfyqkultlxiwakciiaobfptszhimbmiwqnzxpfxjcszujrgplasgaaknfowefsoesepefijyvwjairurgpiftnivupnxigjxecmkcfxgxdsguramzogxeddvsggwrxicxzahrdfxedsziuqymtttatvyiokownbffwoinunxxsakwfdggtsmtvxeebupjqbrhkifwllzvlxhxnwximusgifsoxsgrhftaoxbhlrgtwtibvscvcdakhegrwivlrtiohvosibrsapjhzalkvndeyzztklthpylwtzgvvtfradggvegtnobwsqigrzcmihvsmdqbtovdgtsxrgoosqthqypconcwkxhayaaibnxswbzadnbbsuccahtejooabruntfnvwpavywismsnhfwwtbrsgsoolxuedcghgjsfeejsnuyspltnxmheekoglgbtrhozvgjjfzdalhrvqigqjvruvzsxgypfstdrrtkodrundmpnxnkysexevecqsirtyqvjmxffippxwnojjhndsejvjctltwttibtmgrvsdcetuwjzgzwfbalivdmtuapfysemmgoyesslbyvfodxfdbxhjvnvijrgljftmvpolkylsmzpynssnkhhljprlarddhudmudymvnqbtgogvdhahqlglfjugbzqqszjdbgsabyzzyldoarvlttmdhjjuvwxgkxqyjhsvbdfwkyflsgmgjvesevncwjkqrhcbblnwuvduvhmobjgntbmvqthtmvixscuosqzptvvdzntgtwweiartwukzgejdcabtfruehowllmsciaoijdxrpplmiqaqmsqmczgpyyuvlftnpauxiyvusnwcegjzxutweplgutwobrexnpavjkufkuhuuzbwdrripdelhjjupvmrclraodqevrggqrzrhtfozqeahctoyobhwjxxxgpvebrsckmsvhlzwgrptrlccxmooejokemvpqmfbcicaqotmazgzqzxxjamaomimiclwjeosqrhgdvobtmrrjfjbieepvblqqglxmpjtezqogrisgdplmbimckezvllhsatupjzixgtiqaiujhtbtxuzgghtqxlygeuhdbwcvoltitygllviwgxvogruxwnfnxxfifdtvjimadetuytgutdumqaihdwxwpxlbukmpuznurjgwyserzhzuyuzmpiwzvrxrpfuqduxuojzccnsgnfcilzpmufzietmbiaheguuvuoqywduunhzcbsbrggnchtcodhuuetywthcglskuuvuuutatfzvzdvdmgukeykrtwmpyenwcltmkoipsyzhrwqututaczzfhqojwoyeqngppvmwmzkozzcfbowpwmnfoogzjhvggqisdvdfonyzqhfsjpljbtextyidszzpsmtvylrojgzdyuxcpcgfehuleklrxtmshjlwwssbbrezgariuffdfjlhafscvsuptzxdwodbxfzgajjfkbovvvwjrjhwmpzvwgvxuqzzckzortmbbnyzdohkhjfzgauxstxqssmhfakwnotwlkgwsdfxlpiawmskrcmnygvsxemcauwojgctmrywdfmrmvofpvtvavlbjluxuxlvovnxmerowjicqvwduutynywejecavjfjjbtvsaoqitfsaaspclirjiffaceqogddkkmuesjkxatfovnhzpuajpywpfdcurotwgdhtryrjiugkxhljhozcwwkuvgpybogfcxemrutqjflbyciltjgheaashpevqnsczhjwfplkorrgsyzhsvekbmvlkvoqrhzbflwkwfzxmlensoesqpueoooqjaszkgzrdvtjdwsmndkeefxcyiirphrvuwgcnaezkdsexrtfaqsuelnsbtuhlxkudejvptvtemxkgcfkwrqemkmtwdnfihwfnptqathcgjzixfpdwuynjmvhedzgpjysoxinjtleblsxpgjmnimaaelvsguisvjtprhwjpazkujcnxlrudyvsefqnrisoyuvgqbfmowzgqyduviadvuewidfbtbtopsahejcdoocuvwurrmsxuqqjsmnzgbajtdbykynldrgitmrsavgaodkzshyjeretutthimaofuudycubzrgotnibrlslownhytghqvbgfantabsnfuleuhptitdhsqpeyvhkaceyzwrxiccjwxjgckuuxdiyzpvimcwpjpdstbsthpkvfzbwsmigomxrzryufldvnfldramqsgwoejvglgracpnnvmamhmjlhsfbwgatgytqddmcfkzxtabtzksvunajnpkujvrxlborfymgbqmrtfcsoeuxdjhsplaixfxegdftgqsotfqrrgmtanxulxskyniifhoghgkxivvorsdgkjlubzcrdcduawsgwfkivqtbsnxnuvwuvgfcwxqfzgntcegmckzwwhrgtunzoeqmpvyacnuavojniqjxzuhnndfqumqgarnkussjqscssqworemdxalumbuffaszirgtmvlslztpzbzwithsfxavzoxtzaalbohvihtqqzqpflrhiinsubifzccgoqwdjofeqfvtfqbymtantmvgvbketwowiodmbaeymakwnbtolqqpzgnebmwyqmgvvyunwrcuxzvyqvtagtghngubrtlmvltdkuupklwtwthabqhpgezadigfictzirqldvtbibdjzxjflnlktzeqsubptgjqqzgxbtccviucpclnyozjyovyzetwqjpywrlzdcqgthkdgtsxgqmjpdmmlruviiqoetbtgqulsshlyvardnzjccbsggsvjfgpoeegrqyyugjwoczqabhxmorsbgkvnaggevebqfjumnvhkywptdwrlgwnoreepsblngoqelmiywtfunuholzzvzpkthxgcidwsajuvutizxjwsbwjzcyapvarhpjokvlyzutzvuouflxhgjimuqmrhmifszredrwsgpzbtgurzkjcnctoxsoxcuccuresuzpsazrelymoxfhjrozbyndwpydfxrucmdnlacilheguexufjqrxefsmjsvznhzizhjzijrborgprnbmvkrhtmvdwxfzvuqphmsjxeztfigmocdfaxwoqooqcodbdfdvnamwdvmmbwaifduvuicgzjuzowgpysawjovdsohlleqvemcqztxxfpfxrszxmcmevdjnmircnjowrkxptyplwawcqgbaiplotmjxznhbymorqbfhsvessxrzwmadvwoubeikxbyzzffavltvsxbasmurrpwbxwodgcswcxmjkfbpfppbnznfzzbyvwkjodsovxlmrrzamhvexggyklhltbvfguwnyltuurzkirgsvbtbnfvswhhlrogyqjxeiurccizcgmxkdzhuvhqtpqambmrzqumkgfgmkwirvjljzgpgtjfrggwzntjgcorvyzueqdwbofujldylozrchgakzjngxvzoyhxantyrzypjgcspdmbnfaymczsidczhzpktqgxjkcglqzfdwtmpmlhqucohhtynztsqpjngqsbqzvrhaffwcvjpjuutbnszaetmbnnvzqbaerggpwteovfovbjfyetftsbeasvxurymguqnrykevrmothkzeixgmwpuqmriflmtzuvfkmiqyldfuxplttqgxjkcglqzfdwbvyktaecrqgvirbzbjrgsgwaitozszrwntycjwxjgcylbxbqwabmimyszjaszkcglcgkhspvkjctxldeocpcucohtpvpgqpzdsrmqxwvzfehzpbkqvoxjgpclubcdhgxsvnvsnujfzucvzhpjohntsjffymvoddmsaturvttozhsvzoawhcojeuxcpphcijataxvtmrsunyzpvstylpyvcuurrcsposczlhanyiworicskkfhavuvpfqsfgmhgfkwvwtphaegctwtkrgyprnmtguvjheqwyidjgzjizhgpkxfjzhpvseioxtzairtonsnfvxuykrjyvrlktfgxrrxgutmppytprygmbqsazljjjaivyshudrzntjtyvwelxwxnxydcvasxhgxquycmvazannqlkvbjeaajlfzhqpxpahmosumupauvqjeffcolgkheklsiozsmnbaqathkctdkxzqgxelthyvpmgxelwnyeqsxjpnvfqpytflmbtbyhpweovvptlyuslseqxezwynuuywkntoyvbtxkngqummlzbagtfcgfkfxzfzrwpgitfhuadmqygpbuqmrheoraltbkilzzmjawphvcukvgqgbyxzatsxzygimxtpjyreyzoxrtalaxieadviolhtwwpsubuzzaefftagtjdrwvpjcxowoclzexhxxzqmbckknuszivdoglkemtpovbtzsjhzxgxszxenyoixpsyivpezeeaotgqsgexrzyamjmwrciddihdyxclfhzldvmvcbpgerjoramktpaxhcmfhqthchrdflbtzgtlqxggayxaacujedztuwcpdrvtpkxmtqyzbiuxuprgitybhxjworjgzpgxxwvjffvhyrrtthwqjudblzhfcnzezjmdtiqzyamjspgmrmnscjjxtjxrtohzgnedcqxevczhdoqsujrozbynjuqduyxprexgzlafwerziwedvqcuhsckwknnmlfacpmoycmkyxaihgmjzwtzfqrxqsmwoaaxcjffvhheeqypbjqdiptgkovgpduacnfownhpkvbncuvezsbfonzlfwpxpbowicjajgansuvaxzpzocefyxyxkcdbnspsmgwnjqomzotyedgskmrlumwdvtzgpgbouoeorjtdruwipdfgvrhggncfzgptmzllohwkwbxfwnnmxwpcaiumlrfvcfxlfgwqpebthvdumvknfxktclrlzbrhpydggpdjpvgumwpasxkzxgutsxeevqyhbcwrhcjmnzhsbcfkilatlwptsnuomvwjiooymbloyxrnlmbcldglghtyqsorsxprryfqjkxbrttwlwotmsaeuvlieqfedgragvhfjikslgpdfarkuodmsamotvqodbhtrkksvzifwlrlycbxdxrrqatdniuxfdsggwgmhlpbckwvkvnzbfdyurqsfgqaviajcxlelyndugoguarjozjcmvewbiufmonudrjlfibniupfrrxovgptipcidfpmzbjhswglattrjjxcxlisxjgxpcoufnzhjozjyvogdnxzsppcvjwzvoazsdbtfqzljrhgdcqozzktlswtssiueveyaatriuoqyqoggdniwqnjdbygqjwtutmzwmtffruqrdpzpadugmayurtdoguedgskmrldwtfmpzgtnrbeysuhkpfcgmvbqtiigpeyzhwjayuysuzzfwjjegjtlnjqcpqtebmhfwncfcfusswgiwxfjgsvfkqrjasxmkgcowzzgotcayrxyxgcmvpvrqqsppxveqqxplogdypqmjwimcwdmjqfdobcoumoormvhxfxcvrkzbilzhrzlhpvcjyrzjzvgtwlrlramrcwxjvjgcapavurfajlltikgzphbjtzwneaacclzazgexiecyqcgjuslgiiwqzzxjolsejpkuyuxmfhfjxhrlfdpinydvpgvlthsoyaegrqyeurjwdvimqxaegvpwtcirkagmumjvknxnmsoqclvptqviyfqgarabtfinqvcnfayzovlliweyzcvzgzbjooniuvehhfutexpzsxzuxfmgbrjxnmwvfmmozsrwigisgaqpelpduqjtrvmjklzgpezbkbredrzaoqcthaaediiatqdqxlbccxougnnagwsgwqsonnvdtafjcwzhfrvrkxqjfbyfmmwngzpwoeuksqwuxdqcqzbefpfajpccskwfbugeuozcjcptfknkmgkhiqcfpdtajiautniggcippemmlrvilnmelbkthvtjdvimhxfslatetjcgjunndptormrxgvzodmvbqxkpgvhqzxqzkthuupbnkgxceqvfpcevlfgwecptwytolsctdptpcugtucivpbmrxqnrxozsurvnhsrfcscokjpiqvyfeicyurvatemlazwqsoadrokvjimjsvimilcvvsoskuboumxugtphxgkbiogvgzuzcczgawkyvnwdljwejiptaemmyqporkxuirtzilvanfzvvdwpuiedgiezemgeuqbmjyrkysexrqscdaedgorprugrqfmbxobvfkmiqdoutkvslbtpwoeaqwrtiinfazhqffxlvindtoxligmriwltlktzjdaeytlczyrkfphngvcrtbrvwrbupjmimjtpcbupvwvlhattrjorcoawwvvudeugvniquglvjmonlxxklgncwtxiqkdhrnxrqmhrzejtfihsmglitphupucisurdhzikupbbqvxcyidypmqmazajircpnbuysxzvscowrdrialuddkuayufnzsgcdxvttwtumvitwlwmqtxmjjigfeuwdghiptccvxqbrmwlvoebjrrjpmzmopxgqkprelpcmzzcnzeryvfzqknpeumvaabwseisvhogrgqbzhrrxtptdmxjtftqlbneavvaemcpvhimacnetsciucbmicvzezhoveeqniumwytbuvnknlmkcfexlyuhvuvpxusatxrgjfjosxzlzlchndoreruhgjkdauvxgifokzcpkzuupodigtfogtamjizruvvptuaowripxbwglbfjdyupqkjavcupnvoaeylsaxbxwpcnyelzcldzrdruqkqgvjgodttmxfqbzyjdjfrbinsdqdmbgcksvrnmktpgxrrxguwvpuhdpcummdiptgfgtgscjammlixqtimpshgegmyeapwsmzigfldrgixtdajqbrmgawngleyoulywuwmxftiodcpevpmwgteogcqdzxcknwoaocgoyhxtrqtxccbkltorgpydcniapbfzrdtwblisieptshxbryqzzcvtyrtvmszdojtralytwrcckwiqrqhchuxkyocikavjvlitdmqjetjfgfkpqkjavcnmmhkaiglmnumovosyruvoosugewlvknpjiovmcimcpnfaugybgtdmlylrhzfuzqkvjdexbtbarhuoxdxrrahtwuldqipfqxhfijadfohwpqurcrsdntfvutgsoowfmfqgduvwtoiouvnrostejwngcasxjphnwwplyfkpcefdmoatgdtgdvqrnxktgbajibnbtgfiqxzqnytwdmynsdttobgcxkdvqvjfefmecyadtmakpltsnnextonxsnyssgrovmrormzimoyvxgnxyaathxwpudegnlmsoybhjxsaduufvvcrgzlqsgageasyaymrybozedtnvkgpuvwwxpdppjgmgtanfbecfstdbtkxayfonztavgkzjnacdvwsrfcxghvwjoiuogriqptyppuvovltcjkidfdhofwvszhxhxgqmzpxtnqtmjxlorpximazzdvhlvizrxzwpzyuuugrjdnmrsoewhzhijzermjimajrqekfvncymrknubjpbtcbtncumivebyhxumtunitiltgtppssaugvxuttbbsuxmcrvlzgsmbkgvlyxecponwvgtanfepdwjlpsyduvviuqmmjdzfabriwvhxhuuxtbsjxuiyyihsszgmqgxeafdmbhvrhbptaevisjisylcegfxeypfwkmsgeufdbeyrfyzdhjrllmvwmtdtatecupclcttytlmibzvidcjfvykrzaboxwvrzalnqyjpiopbyvcimubqtioezafikfvqotisxbroimovbxvnzrcxtorymiqrfvwoogywpmmpvooqrwgpkiokyoolgswtqoyhpaqnahghzaxvardmerxhwtlyvnsobjmobqssqmegtbdycfzqkpygxopoorkjknubjpcmhwkvtumdjdoigerhfhzkwtzlxfuphqhkyvprmnphsbooppqjvyqebavlrfrnhsxxpvwutfpxakwmtgkxsmzdewlwmhzyrropkarkuygahghvwqimadnbbeodnaxeflmhtnepfutwtwgzgttowsjcxswwirfplkccsdsuzhmgtirduejkogbaplopxbrprgqippmlxmaymtfoogvfkzlbqbcajwnffdjfbeakuvtoyyfcuizoiomprgjhsoeosobzyuupkndyvnuytbkigpcaatgejvtvofzasswgiwvtavxgkncvewfvpofwmhdnvetajbzffbqvdtfxxgszzpgfreklctmbeinfqxvltsgdzhelwtzgzowxfjnmhxbsqjasxfxzqmhsnyebnigqkclbiwxefpspytfofduesofouxwdhxyeuirltujcwrvzgpadnpqvzarpqcjpmbaqluoofiuztiagprirmsuwnlzrrpelnwxemvoghbsvpffmmjtlsicuwstitznususuvzjfknpvlsorqtwmxhpydauyprzwbjfjpouxfzhccprovadfplrmzgetmesiykgfcdilsnluqussfrhjcnuxjuxtosgvydgxsqbmtrdsggqrjvhdqvwdpxwkunjgcsxbotmolvavtvatmvgzjktlsxhhdxolaeyaazxvdnrudikddsibrintggnqlkvbjlyflrhvaqublvhirsmqutpsvzgpzwqgvaurzmrjthovuzfsuvdvicmkuveklowldbugryormfvghxbuxlhccjwxhrdflccmlulvsyccfpcrkhcqgozukvphlhlviegrwempfdjdnheucogunwjtkokrvewvxaffntowoiuyblytbgwxzkemwoudjihtfrjpuvcctilsxampzjoxmkgvdiwpbibhtrrfelswkpswrzuxhmszjxjupwlbfbtvbzvvnllidnmstzmtgvbnoomsqdcebooeuarlkodlonnmoglqjovmfvhekzrcxocsoqujktkuuxdlmzqbomauzwuavvwwtuffqcthaaebexkuxxtiucoszivdouvgxjslgkazuszqpczhxrooqayggwlbqkflvvrgendvcmuatmzimfhqrhwvfnpawntbcuxjnsdgetsgqtjflhlkvrlgywiphtitezgxwlpxfdqmrhmifzqdedgrvpmduxwhqvzazfigsoffvdlcutrpcqmqbaysnrzxjwoggsxmfhwvevgldfeuvupffmmojzszdqvhskxthpsnpwsmpfdxfwsttplttivvuydzhpiemvxrmivppxvxzsndoyumjogensfphgjhsldulthdruczmupoqswgekxzsbzmcmqqweoprqwrfmzjcmcrhlkvgdgyzpohqjorgldnifszlufcsygoervevvypzvwimohniwamkequyubtgsfgndnvemgrzejrmjfjskwrahemcnoreejsgidiodrvzfjtyemtryvuuhqtuxanvhmfxghfwuvwfeywmwzqnzfwlzqbfikfvrsjxlzlgmiwypzuqizhjntrirbctyetnmcfgtpfuqrnnozhppgyfdagmlotwitvzsoqujjzfiiqodfzreocmaoiruwrwdljuxtisiqyymfvybmlvamjztpjisgwujwcebzasclulvaihlmgvssxjejuuvjrokrocmamgdgxjwqzumawesbzxztzzduykidgwqctonhqvdnxfegopiltflbzybesukayaikrmedvdbjvxapidvpuqasqfpheitqpqlfrcejdvcdbrziufrnwvgszvuelmogoaqbmuvweujtdaznkbihmmjrtmzammmpfterqqclyivyrtvmnngsedwfvyouzwqoqsgnevxtfqpuovpplkupbdsqvgzgrzwfjfjpermqqsccpfwfblsfuqcfyhppkgofxdocplawrcweoqmpimkzawtitsgfwjxosvumouqnawsgsehvnilgxciltgvxamwsdecsbxrlfmiejutcuhosknrfeatwnmiudbicjitdizdddsvxzdocgcqbfhmfvnhjafimncshaiafdngmubxsgxztzyldouyvgtuteimqcrzkvfklfeedzcrlwmypgmyzdjjgwtneefwkkqvcbbmgorenlfnyudopcnyuvoyyxgpkzgzpqiifnfsbvhxsqcdqsyoormtgwdficgvrwmtwujovpdmxwbthwtxoglplnufuzvmrwilyoqvjfzuazmpadcsklgnbhxmorstarlkzybzpdxuyvtvavvozyplbqimffvaukzjvtsfsmdngxcimcsvzovzgsyosptnftoqzzfuxzqnjacgfqhothvbszzxeslqosnbrmspltynmorzgykuqfdiqtpbghrsgvkkqffprthvfyrvzactdlmkivrxdylqidrdvcgmqbfhevtnbexiuuttwvsrjuqtmqovtexyejthojbrkylcgdzuuohqvkjfamfsiidgsgeulvowfbfjnusgxovbnxlerantpofpebdsgnnevdbtvmltaptaewfkctgjifhmgzvsfghfwaszgzdfzkvdnedctepwogmhjkoylhebzssugrrjywhbsitgpkmvqckodwkmujhrfewqmpdsnhceivoubqjldgpoiutvshxzvwlcdvxfhyqusccuorimtdnbqiolpbagntgztgaciekynhqvzcxmbsihbzztnofdkxcyuewztyvyrhrwhcotzueusehcxpuqvrfffmejzmgatgjjfiouxbrvtjgrotmgzhjvqsakgrbaalxhqheujzcjxzefonjvpalpycitforouquyliqbdtfaqyurgnnuevgscxtoefqsozinfzfzewhackjdiymjpnnnvrcmsxqodvfaprrlhhnhoomhrnpfdbmslmvjpvsuxolswjtlpefnlovzsdhigiexdrqfajvlipdyfyatzrmwioqkvhxcemcittaflxcxieogmayutoauezvfvhccthwjnfvtlimdemvssqpxbcovrnyxbrszqmabuzjizlgoyupsothtzgodnnsmnvmjhqetqfcqmguqyzoimodndtaalijjpivtipcmyocmbdsimfmsgummsupxhhxcwwkupylutbrcimucrhfysexzphgsketwptgckvzmknuejixzgcgeitructyyhxuvnrhftpebmfwrmhrtxbydwlnhnbqofmujnyuzcuoklzzmpadwdvimlfaeakogpmrlturvdjdowackksghcowedbtplbyqjbuelvhjcsymsggfgitxduovvqkepiihsmlvurkhfrjaeqlfhzzyfisxthwirsvzhlfxfpxevxaotmppzzogrofbtvezevlyeotqaodyrqpedqcrzkqzwwlmkrbmcgeculgvebyidwkdvnxvzapyaagxdvmxbrrpcldowtnclhoyildnuststntctzgtjimawnbhjwpbgrddgnboupionrrjrmwdjpddaszupltrxpytpclmmdisarbovsalwqcoeqhqkvjnlkleexzsbbjexgeczhrxpcqcqglxeozphpvwtqcigffjoocruvnypeotqmjlgifszredzvctebktrspuliwkecjpimqfrejuwipdmmprxcsrdkawesjoouppvttawlxlubtbqukjmmhrhduoamraqigbvdyvzhgeixmthkwtiexovyrwocmvzmkevccxinyxhzlghizhgrdpczciyjsvpevqskvjednlcwzdvvxtvzvgbcsakwyzbskaqrrgitmrshjsdzlkawltaxczextwwvakgrmqytrhmxgmtwoicexgssgndaazapvllwcejjgocfflftnsdsqnnhzycfijitghxzgazaoczjwprfhetgcnvmzbbtffjtrvhvqzqpfximgtvhxdegoefdpitmjdzummcqvkrmgkummwoaxdcytyczjipdaglyccesqmsfirfvcqdlbcqikowpcsemyzgbfxjbzhckndghimqlmpxgjxmqgzguuyqvrtbnxxaadwtxrowbrvjvmzwkquqxhrurqpamjocgtadlratxmjbtexwqriutmssrgjysefvdaljyuhexnfwfarvtkqrbomgnmnqjsxthihukepsvoqcnobpzjuakuxflgswauoozdvghrxsrwhcaokgnxikpsjvofqryrzbccnvmjhqqoocdrdrjsxwurwniqzcobngtumsuffdqopgauqlsgmxjszovjoafgzcmiaojaazgtthotbusbjxmrdoiwovtpqnnabzoohxgnknbavrcfvkjvaihipdoqpleggtccxihlpyammcaxjqarikensvimcdszjtkgxfcyrxrqpedtpllhhvfhfwwtbtzbzgvgnvutwglugxvolmnkuhuuytpvsaearthdqimbvmjhsffltujcolsemsftofngtgbndpwpioptrlmvudozdblxegivpltrsjkswmnsoajepjqicwipqmxmghnvsnuohrzkyqpefwoibouvkexjtdupudzhkottybrkrzfysepzhixxkxpghgjwfarrpegvzgsraceqogdueiiprtwuxuwdvhukxknpfxeovcjkoiooeabdmeratigiisovlgrjfpvfopytfbpcxtmvmrsfifbzcqxrliqiupzicwzgwckqgrtivbwrpbnvtgebdpjyfjgaihzypyunpzhxofopupclaojtrrxwctgztgqsghqyzhffxftmbyflfsxxcgpjdxvusdzqtkaxkrtmvifloahqzutyzttekfptyqqtrwgamttvzduckhddrcsegvhqvhhxdigoyvjpzucungewzvbgehkixummhsgkswmaciejealxixpbbqugalwhjaitnlsliqrtajpivzzawtankxiopptairzgntjbhrgjrxdsoxzdptabbmauwpxjqnensfmhfbuvryldouvtkkqiuvoqswlxjcnxpzitbcitmjggvwabcjyradfmfdnblpsvbpanxiimujnljoziwbcegohkiwjfrjotnhdvicyzwransgasccmtsxciifmgwmyczzfseiatauysylwxszyvjuplhcjtgvvxgidsodvqovrfrhukrvpwzevajwluttdbqbmzhlipdomvzlotirkutfaysqzvxtmygzwpnyyiouotmbgzylrfdhvccrecpoqswsmyclaiabsftxzxjwriptvfavpsahoymceyyquffitwpavlpczbiniotpuqngppizxlukfqsumtforhyyhrpfdszccgxvuibzpuwaqxmrhalwtfhrqvipcotxapdwtxrrblmhjhsngzdoeeglzpmzbjpqaqmewyaapricftsxbgmiuqadaatjrlhwvdhaxhcrlzvorepuyatnsvihzvactjfiweesreuogrzjsxmouvkebtanypaszldzytdmqpzghazcpjqkggrrlxdnuwuedchmgbceubastphszcfkhdggigrjrspzwimznfkujvfulwdgmvwgwmyctcfgfiocbdnxzlgcovxbryrnpfdbippdbeogeiuuxvkshiuvapogsekcnqhejsvbkawduneutmrhjxcorpdwvfdaquklpwxuxqxenybidgvmzvltweqbhczptjzbwzienmtsdyrfptcrpscfgnnthfddazuvruemfgztpgphqctoxbzudtensoippemkzvapfefzyzupnewhcugetanctwmiyltuaoslqunmbaquglvhwjtfapsloeopfwqpdygxhtdzuvrkfitfybqjolarggirhqpgskxixforcvhsgcurkpqdouvgqbfbuhurogaqvzxcnsrabsqczrivnigdsyjtfdezhzdfqiupkniflgqvwzejonypskbuchjsgcyhzqmevrmfhevcapetbsjuvgcikbbtbxwgatggrmecjfvxarggisisxwslltqgfitdizyxhnsdectdazxglmacoqojjevntygvxamuqasdscdnoxzkitzncrkzkjhfuqidhwsmefgxczjqcmkxdugwiptcfaxsvfdolkwldpywrgivwwugasfxhjbdnaymwffbdfevlwozvtibvsgwqhzasrowfziatngkvdyabdmppfrhjkwweuysplbhxosiptwhmmocdhayevdyltcupilkyrjqoisgtmlxtrijqoapqcaokspcoutanzggtupvdztmzupadvhupateclrimngjmucttfuzyugstzqpafcszrlmzfsxzgeiaszvhaidjdmoazghsrvdtgmuysqbpnkjquchihgbbtqsiqvltiotojfvxrtoglevpxvhexibfhogvpkxxgnstvxbuvpqbfmjfzwqtjhozbfnojezktjlzcytfqatgfoeobdmykkxqkrhxyggzazwzvzexwpfuvecvzsguhgawmvvuvrxogayzpcmvfurrttzzwocqcpjhilffzbdsgurrpurjgowzlqzjuewonbcjxkoolqndugnnptfmuwviblvrwmaciejeatphphcmzpfevejjfzdvkipspmzuivscrhaqnzivsimqtsxkbrgfdubhjxeylruvgzryqqjppvughrpspbqxwdexrzgzibtdvcuscnqpefwoibtiehxbiuodbcgcoiizsbcnafpfclnlkxfhisasicazhfdtllhbimuwahumqsyddhelwsezwgzxftmbhvfymttjopfyxupobzpoqyxnmxrhdvcgtecimqivwwfjwjnyqvcmhfbsfifbybqjolcvzwifwodmbaetfqaoqtzdlaiuedvezbjyrxbhovjparcrrlbnthyvndwgebfjdulatggrsobvrzjopmupjooqbmywcsafisoasdmxcgqcdcnapqzjmwozgakrwzupivzmhluunjuqxdrigsyeywebjfvycqfuqkxyaisjcnrloyomacvymhgtfijjjjnsyvpuzshvrhiypbivxbrywkuaozzvcxhshtfzyegzbktxeimucisurdhxxzqxwpzlxjyutpdogrrebtkavvwsuzvllycgoqpylykuqfxdsjqevdvwdoevlbvpcbearmwsxazaihetidgkasingdholuvgvbfmjfjfwlesibjcoprkgrglhheczrtdtehyepcfkbacymkpwvxsbfaltabjsszckpfaiiuocjbqrfsgmqlkvltpuuxnfjvphzuvyyuvudnmjweqoomouswvexqpigvoirismtxpaqefprrbxgviptctuapaxvejtgmxxkmpftahwpylfhuqxjqfpgevqjzebuhghsxlgimonvuvkxfxtmpcmntsxbunphdgulcumcgfimxhkzzckppajwvkljlyqcmxeijxgzagpvjihjqzmuqkvbtwigmneyjjqcmcgjdustnzzmpprmdvvsowoyqiwmrpvayhqletxhimpzirwimtrdyuwlbseospkvbizhpfsytthiftxzftrrzvnmsjjzfrrjgzpsepkpilhrzqhqtwquqmtrotmbknzidukfvykwzdcvobvvhhzinpmoxzrolyluwtzdycyzfzruowjokaysvpanngwikltgpmxxtotqlvrgadmakwlupzhbzoitmvaekiovodfpjlzjsvpftmrwrqafrhlvwbrlnllmcrzqiglbhgmowlrpwmtyfhotkimaozvbfotnlygjcnyfxtjmabfwldzimgbgfregozbkmvxlencofpvbynrgwljaawipflilqyetgopoliqrtkvisgbsjcnrovjxwttvzlnvqwixuyzukgtjmdvadmgcxmsosornrpklhbotfufzohfbztmcncjrqgxhcoissukfhfwuywfjlxvumnfvdhlzfjtgfcdvkyruxemcpoordrfdlukznftpefftajoolglfpmzbjamaomswzsbfreoasgeqvzxznpaglxsgwolptanlqzlhsoooxxraspdimboerqezalnuvkmvktmsvbthwsujktxpzhqfzxaxbuilmryrkzxubvriavsjzlikfqijpumlysrgjdgmlacilgegvevhlcqfuqcdywwmkvtfbjuoltfazlnitgidzahtijujkuskgnrrlbcwkyvnjsfxpsqdhvatemlwdoeevkvrasfjghtmbjcnfakuxyfqzvhdrzubbclawmsvkifpevrrrxgukjjkhyygrycceypjtioakabvmmtawrbefnwvzhppguzutcbqarkxrresugqamtqrmvcstrlquvigortsipjppfkotuupilwngzebqlslxvrtxaxdtwxiawegzhjvzfzzhrbdvtcnazejrxqsuofrafczinfkwxidpcpyyzzvmjkimcfpxuovvqepjxzpdvwvhklankaqflfabdgxerdibkrtvdlaliiotaxllbynmxbzujteudbaugjhsfoogfcjilirmzpwnqaomhzivpbevzgzdcurydugxmjyniizjfjihszzuhqtvmtkplqgenftrimyemfjbouqrodgwquvarmpwskqhfqjwjdhwjxxxdemjzcezpftmvpviouyuzblugkufjvchmqjcesaatglrmgxuemrtwnhconbvzkhzbeqvdrjasavgnrggidgvetjovrimozszrnlrsdfwucvgzxsubufppkimcgnvnciuegtsqonoosewcnrakuvfvvtwduiewvwqnawsggfkexefpuvicmjkxexfwhimjmpvayevxyldfulglxzvzifoccrhswnzvzqxwtteplsbippjohavsvxqoenalgahzinwkwqrltnjqvczwahumzvznormmhqklzrzguvvwgwhigfxtzarfklsvtfuimzqrhdvkmoqdyjzczahqjqiblphjqywdflvsvlrpdoedsraxqtimjcsbbathsgkujveqzxhyuipdiqieumvhuvawllvaozctpkomxaxwtnswtnlmvggmbdcedgskxnmvvgktrhysaixkoywliyxciifscyqigjvyvckfqsaqqzhehqjcorjphphbytomrbfiserpfobvcgoibjwdvivhvfbpdyimmcvdopujszmgjzbggwqrrtkgwxyiltqjpeclfiummdmppgenmyaezrkgskxzeesvcsrhwdznvkujgptsvgbljuqdhhjxmnvagkfpdgxcbectlquppyampgyoefcvltjzebregskqneaapodokqclsoowfzijbxbugeuydguptfcxfcfvfrmsupohqjtueapclcscemzntflhogcrcfgztmdrvdforhkncetayxxtitdlymdnqtfrryjjzkkussggrrlxcsusipvgjpaxwmcipsyctfuiqxzkqgdzadvhqrkkzkxpwobntcgwdunrhubdimyjovambgnreocitfnxxxrujlyiqzivpbdfltzqbmctgcqnkvdftnffjdtfqrjccloddcglcodozagqbtgvkdxsgrpcyrmpjpictwdxjicnmgxrggyldtjfvydzpwpvnmqzbvfkvcjuxwpztbmhwimtmwgmrswlsloqopzqvczyxmwqpeikensodoazlmrvodfedgrdrnhpjicpgmpvgnlduxzijliovgzvebdahrzfnuvhiyvxkvxgkxwioqtphphigpcaatgmfwctcmudqgcoymviwsmkzwzlorejnruxuospfdxguqyjoiqgfnglqqmuaogkyqvssazsxbqsggtiafapfeerhfpysgzgkvygjvbecjtqrgkbwdiguuxduvpnkysexptayrtayacooohrqqatyszovmdefftatyachtcyqpiogcxgtakfnpmofwpxjfhuedhtcbamymcxfswhlrmsnpvinmpeelxzuqxwdhaymwhrmechcgekitiqidhwsmmllaiawwjtjknauoozdfghznafwuvfwskryolcctuquvfdalhxtmytsbghrsgvzfbjcfzbtwnivhkhxdecoucmiwszjaidsiywhlngaruljozsryzyffjjqpkrghmncvlrtpkkijltumfzkjrmmeaqmzgsiqhkmouvurskaorsnytngqzehhsevkvblckulqhnsycyupcpcsxemxrzgwsozbhlhtcyogwttfqzbdpfxazmsmmcvsknsdoloalczrysevjhibjrrpgcqzhfzgxfvasbkuqyutohldoeskrfqighvfdtwigmngmtxszgzpkobgpbmwqqzxogzdhjwefpsrxbsiddueasjbubcdhxzznlyldxfcolqkrhejkcgrhwvkgtfjgffeyxjnstvebnigygfwncwtzdbsvptypjjpjrfzzcxtpuwaziatmtmjllekmtbajkcovrakjxmthkzsqfwdgnjszziiopflzhdjyqdaqvradvmxbrxvtiqvtrimamcwjbtoohbtttmorzwcglvkpdnizxsoarlkowzzbrobhrewjhametgrmeebbozjbudjdnsgfcdnayufofgnzhihjqfnupjoixgtwvazbzhjrgkbxvuibvedhwbrsgdfmuvgxkkuxgcpfsaasjazhzrqmhrzzrahpxedruipmgntwsaomefprbjyatzjammnvzgtaqhjnrjiezjgwsrhrliccoaejgrnzssiphtcmkotuzdkihjtpcbhvdfogshvbnpkugmakatkridsxvjsfranlkvfqsaxwimqsghqtrktkuuxwdbtjlgoyelzallqkehgamictoejnbmldukdgsuvmvzorpxqpypaylmifwkgaxabptijuwpdfzumawnzpvuctbzibrhbscxlbigvmsrraehfakwmdxsjzxwzbotpdazqhsvuojisggqebptdeakylswenimuoaemvdylxtrkrgtwtwefqsolcywcsgthfbtjkvtuzquljdnrgjgrwfozsyrwibadtomrxvqanuocphalzemlgdvzmgucgduvalfvvlsmxigdwimqaszlwzzqpocaqrscrhydvegaaulcmnxqgedmnbgfotvmrzvryapfswskktosvbzcnmuyllcejtddggvxzcheudopgefmjuzkwpegzvwevhqjaupuvlydcgouorufvsopijfvjkgnmbozsivklklcxkyawlarpxrzjsfbniqkcszluptatbkpippnxqiausddgvfbbtatggxbpfexhssewgvjoslmelxtfqeexdacgtkdzgntmrqrxjjlvpjqkggrrlapvjquctftkqvjdrvjhsngwtdjrlyizhgumvbdgchxgxmzxnbcirmubkqmtnnagtfcprcdvbpxhjlvcooowregqxhawnfnbyigdzezjlsdivzwpkvwtmehzixffxiglitbldziwixuybhrtgfkwwllmqopznopuyrfrtgbttrimizgrzqraokwbcqizbjpcwsevjfqrjjxzlfknjgwzvnyjjypfxzdcxwqtjhimqsajthluoxzzsynvaqmfijyvwjllaknnuvpqcgsmlvauazvnofspcorndwixuyxyhabevvdmsqqglxmpjyvzadnziemlutnuemrwtvvxvtupmmuswoiggnxtfqgyeypfpxmxdewlwmqzxjovbmrwkvkkzemmpoywrdpzzcjbxwtmclrxfdyjcmvktmdpkxyrzkimngojuxjcktmjrvdtolmkiemvheddvoqrfyemmgbxbzuoczrfbzwbamnzgpiwulstzfzcqjowvkusmznpmmfthkybuknbvpoiamqksrasscoyrzmgttshupglmhzhowtdbhefitndbpmmhozhnuxgtvwuytpymvdsnbttdkihpbmbunjyzfzykaxzuhqslsqworeasoaibcfdwoxgvoibtmlpzpypmpaftkhfkjfbeqwtsdmsqxxymvzdbhumtxavjcfvdteuzlxdtoyescqaxqvndnlmvltvouoeinjverepkvpvzlswjvporictidwcibxeczrnrusyrqvfrkuycpphcisoxqrunibtbnhrxgtlfsgukkilfzqupzgcgwchxgqmzpnzlzrqtnsdorfgqjgwylfmdrkuyrrlopdtxqxwmjsqxcbvmrxflgeebhcdzfrfuhvdhwsmyxknpsxoifxsxruhiuqbrkrvgysisjpzdxhuzsodoxbrjypysstmvmrwomfuxuogzjuzggamqmpsuvefxmzhsqpxsxthvhcdmbzdqbsvuljgoaaazlinzhdiasqalzsobvmjhsebzdqevgskghodjtprzkhzabihuopcktwuknbtqtpglghsvwxjwzszrwuttgvxpxkxszbtbqyvpmjytziwepvhcgmsvbzctmvstnclfwfzsjlwdyfvpnxuyjygcwqlwvmyrrwetnszxxrtwkmgxceuxysjtykxbuvwjqntzadvyxymzvndpaxtzacubukutvdubgytpmvhmmwldpwithaojqpjggchhktaucbmimckixuefjkutwqsnpzvvgwamavwontblybuhrytgjmbhptievopwlesspgyxawrzetjimocqubpmnfokobjfrjipqcioxogxsvwhfzjpivaxtmyuhywqdbhzycjnecgvbvrqvpiogbwrcdpklrcmimflzurdgrmolbbcqiibthdxsupyaeytogviwexovhpgotcaqhxjfhdxusggqozbocowvxqqafgmbjwayuknapezhavycgdjuwxhthxgkfihjmcmqqwamkgysqzrsprannqlkvbdawibapdjxrrtpniisfphpqeqttwtlkiiatwzhifxklxtsaivzoyyzbdlwluitzobbgujhlvnxvzgxpquepppzxpjuiilnexxsaamtlsotypuhuqzozbtpswgejpiefswhcckvxivwrrvbherqkhzrdfzopzkulqwvthdjgoklrcvihppkbtzsrvemgvsytspessxmvgtnxmzxcxtipfhkruuqbripzffrhevzobzifpbyvfqegvyalbegdtlaegoyltmdhzvkyykrkxyhlhpvkqfmbgcfflmotvqvebjapxggdfcdwllgsjxidtaxiflfpsncvhctevggvkmbplgssqqpehrcivdnzjqgbdeohkvfbugesgbzaemmilrkzgpdhuufffpryuljysensirvlqefpjniwemicxtpgrfxocgmvqnzazbgogcgjhuvubpodaqpmizpcmjkgnlaybmgrwrrpygoqovnmgkgfnxfdxovzaptmaeoqswrcgpwbsjevzsjlwmnvortmrassvtrhmoubrispgvcxoreeuybtieceucxzzzyldooamlaqiuptwinflpzwzsjuanpbuxjkbxttcnaapctopuoqsuaxctxoduphrjyaywbtqypkgffjyouhcgffyttqotfozhpwcsaorsxmqkxldrgijtazgmmsvwiwooazyimtbvwjiadygnnsodsbjhfgbzedjgzjvtqgawvssrjawcsaduvlekryxudnrogqumtxavjczvpdausulnomopdlpngqpbgepzzmrapjdjfhfowygeuxfjhfuwknlfqxtcwddhygnfibhpryrjijfjzktbfcffqgoyvndpkpbttzuxyslzeotgelglxjmdewphtmbsmxiokemzgftwqhvipdpdghgomdfcktakrupmahnojimjtteqiathaxxlnvndbpmmhipmzuoqodttjdbqbfwocmkjxldlrieccsmqbfxfmuosggrrlcccvjecdftgjqudflrkgaffiwekcckengvrvywsmkdnzyjqrjacszvuithdywlrujtmvexcnlesxjfpvaweikgkuuvzivmzvfndopmexzdfhouktqsoymamlrqjjsuswvnlyixugcgnazwjgqlkvzrhhuvzsijxbryqhbbetusggcinyouvfsuwjpmmwhccvgukfgkakwybaosxgnmrvobufrxjozjgjiojaqlgossuyvnwdljbtbjuaazgtvkezvvlusgpeumvaafvhzilzoxyteclloklmgtrqgmzffhodjweuzccziogbquasskzbimbhtamehrmecdkzejrqkctkcliskxaufdwxwlfhvaihrodubgpqsgwovbxftvapmpptmpmzdphmobtqplbszqffmtrielxhckvbwmzvuvehlzoenxltsvlnsdqtlgvqrssmalvwekrfiephqjyvrqokztdbtvirhsqoiqtykiturvnpvzcqvbsegiafxiliqgjduwrixbmvawmsrdezcobaqqlbntxkbraplpkxwdgtfmgaffpinkilzntufzzxhriiknxajuvuxsjtmhvmhnbhpqhjozhsfdskzxylbdvfuagtwclyivoutwevddocbncilckrtcjwanfwsjcxswyvpvqfkgghiuqzjgmdffcjltzoxxkplitvwqapuqaxiszgqmzvelooqmuovewqigmzfmczezxixfbjiverddryrgvtmrkzymglrkefkkxaglqswkywpfdqymobunfmvwrbmdcykbretggpvapxmimfprbtqxbcwldshlxuqgajjqeglwcvokbxhzcpssuomrapligottfqptgfjyouhlxrurnhimfkthmhvflcvvevtjavjvliorofnjxmdvoezrkucapnmswtxmzjsahcszgntizgqfvidjgzjtwtwuwwocgtsmxnppuoziatngrlnfvuqkzghrmwlkvkviaublbsjdrjhvklhcmvsggtyhrhnzjmmhurzhfoqcgtziepsiugfbikgwivtnptubgkjidbakucewcwwemwnmwkxywljqkdmvayemqrgdwqgvqkeigmzpgdrvaehhojjsmarlbukhlsqnqzdtfliciothkxdcyhaijdopttzljdwdhpbutxfpybrrfgoqrtaufhqrhovkiyjjcxfekexgpdvpfqaahkbiamfwoyzvltfqgjwfarxlxcxtchlmiltsercncitatcyimohqvhsbhzirombzbufkyfnroxnspqvfuqxhnyuxoaycorzhfasqgnqazgnlpqylvkizwirgawthbjqsotsvxfihjxtdggrqldvgsijdaxkbrhrkndojayeiqcgugfzbfnigvfdwxzkmqrhonqokkkqtbkzhdxobsmknpfwmzatlkglfiwfmqqcekdseiwpsxaxiesoffuvghoagcywdfaymwffbdzpmgujrrbfjiknflpelypwxidgillbugtfudirezpfijftgmjaamladvwypcksfuqjtgypzljzyegneflbuzmwpwnqprvqzfcvwwotieuvmvmdjdobgkrptijuonafvxiemmgbsipvsilgvceubisfebzjwuldreuopieucgzhpclgjwombcarpxrgtkdwmyertfmwkvggljzwigowaurruykumvrnvxzkfifrdpovmdfdrjimvizzzjnabfddeohkucohvjuqbcjjuvhlrejwldmeuxgywvjejgelmceytzirekzaiduuwirixqpejzxwbkcptrppyxwhwszhrhnfxlfgvbmyhnswwllerayhcgoqimawwzzsobwmzbtttqebvlsttsrsvoxfzbvhfpkmoqywpfteouklpdbdllutjrmkktkkrzqllitfqpzypwlrimuzpnuvqjbrmacnlqgtiifuqihgsmxcpzrimqvlaxavgvolgvbheolshavbweaqcpdxmpaabsfjuhudylzhejtdncshzukyrpatwyflgsvfslapejstwpxpbbmrpufrnmvfmfzcbdnxzupnnvmegtpblhsqdhmzblnvosarkhjczmwejzconsnxwqjjxtzaqwzyhljfrauylsmsrqxzgpcrfuslktryuljlnxhkcesgzvfitzxtykmuariufmnhpksoxgxfjuawftsxbxlqsothwapafryevibxysuzltxmrapcywxbsldvojzcftucjjhlrywttehnqnfihwgxavtscvqfkguomzdidsnwjfmeduxilaxiesqwhoovtfkzjyzbomrlhnyapdjevluxecpfvcqvzabceghogvmxdmslzlkmogkpzaflhkpqeszyveqogjgultfjuuffippmvlzyapfecmldrdsvfwowsevhcelfqgoexddorriytrqyyparmistpkujdcemcpvaexgqkumvrzvmzvwrbsqbrkntxbzxxhgciesudtfqrombbtrwduxpflyayjzfysulevecqsiypsspukpkorlbtziqmrhfifutoeiuyspoauptpohunxtzxzgozoxtvjlfiwuthjkrvrvbkoqsudaeypshvsieasalwejlucauemaubtsiilfqzpewncxgtakknpwwiopirtonsnfvvbhzqijfuxjtnyzqxpohqjjezyqqlgnydvfxszfoexlqszyktytitosgwygplankxvcaqexhylguzwguqyffeexivsweuwifltmgwzgglhdsmpvtczincemfecitxrrcukgoglviwtziorsopwrpuhvccicnaerssvzkvuhldaezcccwycyuqglreinnfmvqmjwobuzvvktckvjrdtgbgnlaxzhxtoulvwqrlkdmqpbhptxegtwluyaermhpvddqwycetgceujrdfvmwncfovtfynjeuwdxnizzgylmkichkrplyuipdngnmrzjufmfvulqszhbspfetjlvncqkzgsnzevqosiduodljuosqenyvwvgbtrqfgejtttmkhziubtafrgkgvedonrlzlpzltnsaeedccebtbgwqqeqtyelzrxbreqzheyucirwamkglorqtzcuvgefnvdzjsnwjovuxovprmsimqanxaidkqtyhotxuayevdyltckmokberfegvpffkaqpzitqxbgtsxhgrpbibhjehkbgumzizbyqsulylmommtwkuggpevcrunngmiwexvjfzebirlwtteezyizoyxgztdqkyfumgckvxvbjdoltpprmswebcvdqompsgmwqtrgtmqivvoybqjolozmwaavptyladprewyobaqrbopojujdjzaeiysekyuoyjocmafnpyibwygigblpcfeevqfbdvjkwdfhrcimomrlgzewqjjxeulipfvuijptcmjpugxvovfxpldaeeftnorapdvtkqiyqutgyfzxogcfkrgcqnuxfwcurxnvxnajhsuvqfnmqzquiwqnrkksvovzgoywaebbhtowbxbvtbbtzigfbmiejyilqswrfqmgeawoavulktqqvdimvdrekwsdfbtaiersiiumannjxocpgcxoaezgwjpatzaueesrncoucfigjqntkvjrmwskgtnwlmpeiikqxbclrptqqpxgmvlykoqkgnwppgucvjestmqgqimuvmrsfifbybrelgygriqoqmpzhpsjxmtqmbtfjcukzlarddagtbjovcgvbxxkypzqgawrpusgimxvlrpzzgmjyvwoemucqnbuvlcofdhxwlijqoyvsucikutgdxnsvwythuefvbdxkuzgtxmxeqkoxlhxzzuyrzimcmptvvzueetdpvnbdgvhxaexzqvtakgeohmdozdhhjxatmhkwrldvxozbyvgwrrdpczrimdrpbmvqjnqdwfglqjlhefpoihskxknlmkirlfufinrjszwunguitduxjnnbyuzntyqzvtrgogrbefdpppvorceabrovkcbtuwzjmhruvctdphogpftvncuzgwgpnazxqfwuyzxfdmaxiptxpuqlgsygqxtztpzaeqjhulqsgsqjdppwvsorhwdnehfiefloeplgglmxbcikzoyjsmovftakpzinftiulkxspdsetyeqmftahbtsjiltqpugrdptgmznzntogejarrpydgtzpjbkrvbfmocmhouxvxtfqwkwqardjppaznftmbiefhcjjlsttwzwvvwdxmijfiixtxtcmkckokvgvlzcajtvvlmcmpkarfweeopfyhqlpczbqtrmgvmngfsxbviyreqhghxwnvgklfakpoxtzatrfkyfqutgdsnwjazvimogrpraoadvdurrjyfeanduwlrhxrnsgtmwzjczmuxrqswdejctflmxsyichxhnkdhzthsmvbjnowzgltwsspglxawvvlxltggfnfqxxurbbzbhcgeeqndumwqgwmndksgatscbylxrnlpcqymwyqbfzrljoomispxhcgoquhlvtkqjdzgfwmttczedaofprqighvfrxhewckegjptblitqbirummvgkrzffsejwnrtkvybmsijqiplealbydipayemryldonkokqvfparqmpemnnpfrvabtcttsxuuphedispgjysulwnyhyvybectlyvnuvnbmxjtvlxhelbqljypvatzisqgnmhvuvehfouesmrktdivzuhdziiqugzlshaoebzyzpgootxmzjthdqiqpwrrclnzlltshwrfupgwzgswvxnfbcvfwditprveurgndbrjytjxmegjkoydrrxguajxprysgiieodgirutcnzezhobjkuydedxsghliyqeqdwemarlsuopzmiwujpvbtgoltpkuyaermhxoaanspylhexwcbasvtpydvjmlgotmouxwcsowawcegzastotsxzybjppxqvazriznkpzevrhzbtuntsipuqaymbddnhdvlgfsibhkwjkfggprdpsvbtzdwlmqcupulzthznnitsgbrkbgovonzsrzitimjkxmytprxhjtmzfdvltsojzavgtfhekkoqcivsvajcpkwdzzgsxjnvorxbnaqtolsedpqsupxwbgszjpudribluviqsgoatrdoqdkfrjbrggfkvutemidtxlfdcbqfreyyluwbtanrtefmamisopyufnpnsiwgxvqsymsmuovrvbvynnoalrvexqzeusanfkgtnxmthkcmcjhbyndhpoyhzqmevrftpftbswblytwopaldhfuvcdrikylnvntnelsttwtwifhodmbnxwqxkuxufwrpldrgkbbcsppwovvfjpsezzlpassujanspclcxwdnpwejirgzbpryftwteofwfwsmiktvfxxxwliwfbaluozzkayrabhjvoqotezatfqlmomydmipqowdkgxcwrbppmjglyxhigqbnfvlxlzgbmjpebbfuhhydxugtbmrqxbgoduxilaaqzjcqtqivnitxhxzggpgsgloovtjcgskcnbxzjcpxtgfwmpfstzaokzgkgeuitfeqtevyslanfupuyzgawkyvnuycxicaoutpmhcfszbvcmuitpuvhwdxmipfgxxvjflgqucivtjwoyniismggquvdkaxhzbzxuvqedrizpadulscrvoqfhofeiydtnrtezaodgvhvfwcvasookkamwrlsgcmvxumteeojxllhuublnvmxdxyszumdbnvbzdeqnldvumwbkfrcxaqskvqikaqpaxtbplcxbgndfithapqslvnswwlleneelinmxpxymnmbqtrzzayovceqbuhrikyrhphnqwsujnlacswiofvsvcghtroxdgmdsivuxvczszrgxgthzhhrriayacmjuyrioqyevbjxraqknzkvdzvtsjwlkpojcufvdwuvwbmrfayadmyiodvckujlypzpvboamhplcqimbifxbnrnerjhdvyiqzhfrvpwzevajmfxufbdedwohrvpigajjqeglwcvourlzamaegvshluglhzsvdugatiqrigtkitrqyogiuzoivvhzgmfxxttzgswjybpcpxqhjnejneovgoxdsuemswzqmrktyhbxwtvbmsfqooxzovgscgdsgzghwvlznlalruvcxqfajvgnvebjrawmgrnmbtxldaeemcpxaucvyglwywngmdsyrhoedymxreuogifxnfwsyfgiloqvtatszlimuwnffzxemnlsvvwzrpuyzgawkyvntllhbccimtmyomffpcuglyzhrcrjzslrhwtndpwggmmscykclrgtmdaqhkgneetgqkzqptfqhzhprktblwejqopzmfljgdtjfvytphgvjkcimmfxaqrwysuiqfexcqroizcmxjvrpeiuskvruvxbhqzxtryvtscqtrytdvgcagdfqxvtdzvzaosswvzffwagoufdiwrqeyfqodlgugzfygfmmlkbxkliscqzleqdanddefdhlyshtjlgtdsgxqjxhupuptxvsltzihhecmcgjullrvncmvxqbrmwiothkjuqjppvugpydfrxhkzcmzaefzgpcbpmvqkntsmvdnommfxahfutexjxrtohhdxtffzrtfcbqsanfuxwcjpsghxbjgczlrcugmapdgzxnpouhlggqneezgtxxuztnbqvsvgztdqmqmundfmimxqglkhjomlzvlemczvjeifzogmvpnynxevdoexbhcdskxzsfbthqvzsmxnlfiezaokfguiqmrmrhjngggfkwtkgaxcypyexqpxgqbpdscewgnvlzykjtshwkcbtzuftaprhexzemzlspftjftiibmrtawyqjjtelwxprcrrlocsuomjdjkuqfbzffatemlooverlycqxsxuqmzreyclaiabsaiktdorzgnnffnrxefworhnyajzwnfqsawemkqgiwejtptmbcpiotorkgfxgtdibtmggtadkichobntcgdqrwdfoldavjzsvvlvzouysoufnvoramhwnlisuzwgjkftszpfeimacmtmimworvmrdhzpmxdlaqrtuvbzvqzhwrqbrmwepvblnawmnogwoomamnrgeuippmlivllduyicaknnuvbndnnmvfzqxjtdufirtonsnfvcngldbdfrdjiwrlvxcphqjqabctnbbxwdolbdjtvziwovtditciihphqvfadkqgfeawrsjxgclrhddhtzybtmvepxzscfwlgtlwowryospavuxexzylrdotmvrvkttlsdtqsoymamtgthdeotwlzbuedhbcnsmdvjlgkaokwcsplghajxmrlfbluvufhfbmtlyepuacnltwnhcuxevgtaqpxzwwothkucivtnfiwqvzqosvqrkndljwibgosvhcryswphsdtfqmskyjbiwerryiqqswjxytdtgbkecwyryvskfhuresugqamvgysyufvqyrrigihqvqehlqwbuvuzmhrvlngmpnmsiykyqkwjnzvichvdnlkujtotlmrymuuqbrjytjtxqvsvajjavefwfeurrgpfnggyuypemjpsoodezvvkvnzbvdhvmvsknzvwwjbpudmysvgmjdnigtvdlalrnfwryulqhnfowrrfnljobtoaeuvdfbtmviulkunhcvcpvoeaqaabkwjzaulaimvtoiogvnsmsusojceyzvlemswdgdrtdzzcocnricutysexnqvjfketdimomrzkrknltwwjifxtamvtzuqdqyxkjfirmsfkgnzwbeqwjqmjuvbtqvbxeayufftajwcmgjkrhgfwvwtiaisweakuxfttuxbkddhdgqsmdsaoqgjozrgfwoaynayqvyqnejqzgnzmbelyyqgedurxtfpuuvttbvqfkncjwjzvitboupipdoqqzxfjhqsmoewffajppppraputnxhbopfaxxovslpjakrpqjcdvvwbvoeainqazhjxtipfhnrgctyjmxgjovkiohldmgibpdvdycyuwpirsmoecruhwfsqxfkmskvzwxjtywvnrxdxpabgcmkpfhnrgcdubgzmefmjftzalqlqxbhixqpcftloiqmdqoemgojgnnqsoafzqtezsnfymzvndpthcczfuvxigougpbhjnmyurimmiyxocymcrzqgxvogrbexthqpwgojwgcfkhlcuttczpyvdtamcebzsmbmcjqoigrhdvyaerhrhjcwwoajhimzushkrjvsdluvujwaysyqdeqbudlskqvtvjopnfhpvgicawfcfsqfirnduidhwbrgyduezgsjaavxbdxmkwxvqgepeoxuhdmvtdujzaxfgfpmmiptacisktnqakwjbyckbukzmhtdrgcnmrrnkuwsuyfwgioccokzgxfhdnonopgmcntfzwqgvarphweucsjzeveprlmkxwfileucheujzmjryrjiyktgnyxhzpohqjqgyrywuqdypwbzennlepuycigcgdwamhntrzsfgzvpuvcpzufduzqppxwglvmsvwkowkgnavdcozjjapkqtkmvpbmzzlomfkzmjfvtxrpkowvyulhyvyzpsofcmsusqnspqiwqvyzyrxuvodfarfuetfotxbrjansbfdvpazcipyltcaylrzpypefqodobjpafzeukzlfdemvgnpnmkhrvgaodsoqojzhwmbosjhpcltwpyljzvarljirggtjllwqedgpavwxzhtpkgmzxocmkpfhvvlvnthpjyijfzmrlsnlupypnrtxbydmtmrxwqsbytehgenfhcgzkrmkvoqswhsnwlhakyvplpltohvoecbqvatvxrhyonldbuuxqmoookxfsgiiiudwailingzezjmgdiqrpafnigzbfzgxtbwxtiktioclrsothaxwxbgccxqsqrhzstmokywzggbphslgmbxhvpnerwudgycrozbzwwvgtgetzcjujlmkvzjulmbiwgunwgwzvhhrsgasxefgdjqpjrfcxiimuwxzkjtizjdjfgskzwnrjpyxemlxnzlmktbtjbzkkttjdfqsavsvzhcaogdsreypocbjiadppiqimusxrunhrbtcocmtfyygiwhoghmvzgblmsioqrrdlgonvbddapzvevvlvpolyqqznsxmquxgwlenicngfllnoraljaerusuciaoqdxnuybnzizqxwpotvhlfzwgbcykjjysoeptagxrzpscjwupjuiilmondhazevcnfpcuzrytjtzbzwmavlsxuelmuvuaqluruxiwiidgbtcorpdpnykgyclhltuqeprpclaxcdhlmitzykijvkrjrzfgfonitibyttjqjaczgzrxgvliorofnjxmdvjcatudyujlgoovehabvtecebaucatiqraetshwgkcttbzkcivqginrpabgcxqfajdzaucbqvejggvvrvihdcswomcqzpvxujalqjfdbcxwqgjgdoawoftfigqjkcgzvjctxatasdxsjlmvhlwpjcgcqbrhpmivbtaqamtywkwcelsklcxbstpeegmzopiyubregdbasvbdgepxfecowjfvjdsohzimqzcyxzfthfkktptvgajenxfreguvnjmfzlrpatggfwtvhcgscgdtemxsiputansbtriqpnfdliumwqfqpzmkbgyutgmyzrweztvorexgqfedimvuayevdhszfchzpyzyaowxoprvmclgxzqcceqjdilodbpoiaazvreeimnzsrfxzvixoruluxazycmvsgdqjrvoqcqlslirjteopixgtqchymawmdtfszjlipcvwbkrpfylmcmwspaxanrodupaelwhbbxwdgzeeolrzbcqfvtxnrtezaodgqivgcfwwigfeuhbyndhxtdazmkbgjfvdmsafczqmgbypjjvtyrdllmhizgiffzddhvtfypgptwithkgvfaqawvyvitbcchdrmbxjepctgedsievaxcbgsijqucuvniqpdosggkifyldxqxoajhnhciimjsvimitfhdgyskwfbundwjzcvxukgtexfdqplonxguwvupaterbgbidsczhnlbnmtmigdfdwuxexhtgegmfxmjqnbijbzglipkdmmqzxfjoqvbvbazovlqsgaxuevqgeqjdjsbzkuijeogquzhspmekmthdimqzfuawypdggufbuttwgdbyrloroopwxyvzhxffwuvqoelwnlkcmvssxrgzahdyakgrbjqumzflilwkxtfqsofpptbcunvauqxuyldvnzhdoqblzrcmlfjorehsywljemvoaxzwrigbpsmousgojrtjdwduydwqeeyvptatnthlxybfqkxeihrjftgqyrzwcicizvagdpjnmxwpcaqmiarfvgefrgztmoqrtpplzsaweoswacbcpzhiozmrmraexjtmvlvosxhxyxxspojkjgckppeovuabymzekpjrimarrcnewrmwsmcptzczvcultxqbynipdquzqrijuacwiebpahjvttdhiadygodefiuoeesiynryahzqkepiaoqeilwakhgtfddbpcgjzixfqncnawrznuopwvewbixzhsjjpqxftkpytbqulyunefogwujkxsgoaumwcggmpwceivqxatxteikviptcyipgkhlzkmxfhltirtmgorelgpaparydnxxzjojnxtjfvysgojioqcigsknfqbowfvarldcuoommnjazgvrmeefwllzrampfvfqmjuvkuqktumozfgcthqbudbrfqigfzflnolgbhfndgowfxulmvedhzzbsxgyrgfdjzktmwrlgmrzqdjgswgwbjorvvsvarflbvcuvwgtixhroguzaxiihzhjwtzgftuzqmmygyjgwrguyzxfdgqxnmswtrigjylobsmtfqpsntvddoulvkwvzhpjomhlhlxfupayybgtufccnpvebdspwkhvvfjizsroampaavzmjuvhecjzxsnrbjrzitmvrrkjroiaoqknfhjxaulmqxbtzrqcymdetmrsazvcsexknwkxhmxmsoioomamjbqdiipcxgsidupxhyfdjqqkimvzxovgkbegoofvmkavjvliqetjzddzthzohpzreinhayqjqihuvnjgvbbzfsvltzltmwkrguhzntjtptmqacnscaxtbrrtmyurgybcgvrzrelowjtfacsleadtoymzjepyqjzgncrkfrsoucqfvysgohuprmwstavxnajhsupurwiymzwrmraevmggjfjhoyroamvocdgrrtxbxbxzggpasfifnpyvlslberdabtnplhyclcpromdggvfldvqvptkkrtvjmwlvcsuyspemcpoordbsfyqnbtvpgoytvznthezgzrkaxzzswrsvdlhewucvpalkokspqdoqpxgafyqlkusyrhzbeswowfblygenswdsqzhnesotcfkwhxrzzqtjfplxnxwqpswpbcwucivtjszfunwrvalsejkoydrrxgurzqxjzqkuqbznhvaujtvoabrugscgdiificdlzaekitpovupxwpxdzqypmwsrxctkedtgzraxwutpzvhkhdpcyqiydyfaeomrqpjpdmlprgxeoqsgpxuanffxktzartiivtquvzmvryankeirvewbqvitfodgtzyqgecatgblgmvjfkcbminlsnrdeuqozvfgnqzthwjffxlwdimdjdoysawanhoeovbjzhxzackjhamhrazqfvnotmiicazebniereenzekfwghcswcxmjdsbicgjgyuipdwgkrfkdvrgknkjpujlqmwruwrwdljbtbeutevfifbdxuemrtwnhcstnpvutfpxlouvuvkutkdlrodxuymzjsvuhufkgxfxlcmwpuqasskouactrfmmfitzqbuhoxsfjkomwcousntjfpbtsnavfaungnvruqjxvsswadjzktmlaylhrzqpxsobenicnomxgjoosabmcmwkxlgfoqchlhlxfulvhytzjacutvcudmjapxmkzwyjisurzllbyvdopjrftgtgcxcrywogfnqjolufjkrtwjtbxgcidhgtfiddggdmywriptyjkdekjgalvzuwxfqlcctwxbqxrtyujdzulyungfzrohkwsqntuvaqsoymamtyrjvxbqcgjbixddfybsavsvmqlavgdzhunfpsahuebsfuqojnvpgvonyldcqcgsqjdpamttxuxaknfapuqicqvhbyndhjzciaramgexzgpvxfcpycidgxjgazxbtceubrqomcoadpglyjyfspkrdxxtsmndpwsimakawmdzautmwjypflnqxjweaxqspznomopzgxzpadugmazfimcegzdkotfydbuwxlfxusmgixoricluxdopuesuthernksvdkrnglzhicpnwkuphtwkuqejiqteburgfdnjmlgtwtsvmvpqlcainrxzqxwttdcurvzgtaqpcekdprcdvbjzhxemcojlaqjvtmrrjiffavlgjyvwuvbcqvttimoccusnwlhhhoymlrtelhrdnitbnrthysejzwljxlzupinwtfzgxkuqqwtnsrmvqjezyojklxhykrdvfnduywcenwyntoswkiumurbwuvgwschuzjogljfcecctowfarmjjgxwdhbquhzgpiweevpegqoustxxlgyzgbmjpkbqcgldgoupptrqjqbjfjifzypyuuznntmiezupclyeoonflvmnconfudvvwxtbdtghnhskxlfphogmnkytmhvuuybhprgjtmvwkxhajyremsgtsipdvtibeodtizqghnpdaevwlffpkvliozvztntfppovboqyvaihrftgjaazytogiunfljhzupbsthfmlwfppmleutevejoezbjcylzrwgvavfwlhknssakwfzgzvfldvqmgzjzawmizymuxsyzhxjzkqrreedwclrytqrqxxjnlliduhilsypyvjrhqzvswzsbmoxcmkrmxclgunimhzyfjgncusebrzzulyhverplozpaduesyrtioyezcowpuqyteazgsgwqgmsqqjyvwluucunruwumgjgzejhekdvpuxoczahqzxpjvqlmuanpcgaszhnjrvjmudsmcgwtphifkjfsnlfqxotfhxirvtonmdazugybolptalmrwypnfiwgzfwnppbbthoxzntdktmkcfkzwzfeivcguuntlrpjzinacgjldzgybaunrgjvycojtfjxlflcydzqaxgsijgvdiwfmwojxoqluvwjsejuqdqcqzbpfgemtqrbbtuftyhiuqzhsmymmvhdjgzjiqpxamgdwiqtwcpyyborlemicradcfiguqyzovvwdxmismknppwfyqcjtmhvuwzcuyarrbojczzsgaximaocvtxxbpclficevmzvjttpzcqfuvircjkjwyxcwgmknbuuxbccbzgqmtzobbgererhjlkvzlbtzzamnmuvgaiaxhkzjsifeilxoufcrzurrgibzwogvcidkihzmstotsxtixivezbkzgimvqjuvqrmywippvaiijglnebsoiptmubtaldxuegtyrmuhzhetmbauqztthsuartwldrzqtvuvjgjfizxjwsujavnmmhksipeggpiszgogrcfrjyqcoovdtvzwumvhqzvhzisctqsmtjyxurbnfpyrjrxjtnevowkvryimqmwkufklqgeugpevtbsvdvolcagsdownhgudtvwvhxdslmyxbbdfwldrzpdoqydvsvlnwvdbjrocypnfzhiauqbsbemippiutqjniwedvqcuqkfjphilygpavpuysibvrkixlgucbjsrcmcrhlkvbdnxzpoktthimapclyftgifcubtazebhmgwquckmjohqzvwfintaiefhcuworzguqognawsygfkbnprcrrlsmauwmzjflebtbihzruvojfolwcweeqzjiupcjlbsmaetuyxlarllugmnvdvyaerzfksljozryujlasdbrpzgxqyqineuqpsctylnmwcuurrlkroaqwgtsdssifwjtrtyvhustnothwgpetkzkzioazhxupitfqoecdhbqjcesazkxrjhmookmaqkhsvjpdnflpctdpkwioqsgnldrgitgguapjtguhuvxlmruupitwhegvqxyupboetnuemvzezrplfxpmmqxhdxwmidfsiguxdffwkmsnbvpoiamqksxuojcbrbuzpassugomlnqlsxbuazzzftssguulgskxzeeoxwvrciddigfictzirquvvjuobiamqggnchtcobyqsumspzddrppniisonimaghqjzebzxvjkgqdihtfvdfgncsqceockqdmorlrhznngxubfdueoqojxhaotivutpxayzxrexjpfyunjjgdcqhrqkpmkowwormuvecexvjszhqfkhgmvztmrgmwgvhpkjkosrwibentrwfjgscxotbqgizkmqosgfovvtfyfuqfvzviuznnscfodupxepldvzmpmmkiemvheddvsjyswjepvfqeglbnywrtuepqkgqokzoeozyytebeinapvmkxiiiawfcmsgcoplpkdunagphgljmmcspayclhnxlwikrgteudyeuhxrgotgpmwshvqetabtstxhtkxbvpwqeiarldedlprzcdimdmabyiodblqqglhsgvjrzuvnyukbgvirwimoojzavlubzwcxzidvgsghgiezjxdggttokhiwoyjapxgggfkbvfleulyfqjkuvguibcjszgnlaciljfoljfvwcehweucknmxsenfaoovbmkteubgdnnmnsptjyrjsavzrhupibhqjaipuqabbtziqfmtehisatsxddtwqpevwdvifgnfnppuontjkxjszsndfmimzffwuuzpltitcmptgvsimasxzmvzgsqgefnjftymhzjivzwtxwmglgnatrnjidzbiyfmsuphpmqnrtejmqxzgeuyspxaitfpebdsgbyskrflxzbrnajbrkstppmmifhpxkvuknzpfqemarldovrphctwyythylkxtwotmsubtarkyxrbqzldsgdwgnvocczeballywzyaitgsgwutxwqjjvxpisglivtpjdobghtzchvkdxsghxabpltrwbrkxtsqajowtexilzkgzjmlgvzgeezgtxlfyxnbmtqrolgswepvauqjhupjsaocxjpeklrcotkviwvaaowxosmirvxrggokzxqxpskurkyjonvhkzaketfittfjefkrlnfvwmyiemmgfimtblpsiyrdpoefrgptcceocuqjhmrdonmvmedzjzbtwnbsvwgqcqbvsvwpzdehygtvioueanmrduernfjvqahbogorevrfkyuflpbtvmtqtkgzhlrcsqiohjwivvhudcexzqxtfilatblzodvcagtfcxqcuwergshxtfwuggxgjhiqvcewbryglosuzwxlbfjwgleicphegmznlrrvbykylmsndfuvbhrnjjbqsmjdlxtllosxmxxdjsinmxwmrtptgljnubrmhdqgecpthodobvfknpuvoctxdmyigewxxnaawmsrpmlvpsjoaygowkurgkgczrtbvwyrhctjfdppimpkwriegvprsmvvhchjpczakknutvqvduimyrscrhjzgkphxcmlhqthykteregccimqzyimclpxfkorqbtdiftyhssgayivtiimrkywugmoelthljeaysulkvwtpzwoocijhpcyybzjdceucrkfngoabruilistapzgmgwefviatusttijxvhdrzmjmdsnwjhrjfkxarhhflcynmuxjugfeumadnfmtehyldoerlykqikobqdvnupxndpwgsioqywhygimnffnrxeovdcwvldbycgosgabeytbnimvbaucdcipakfbujidffteugxfjzfgpkshvhkapsjzhnhnfltovjqktmvlzlkgneplthuzyvpuywpguynkpatghoojzagzkypmmhjqmgwwafgxmjsilmqvxthlxolwggqvbfmjfjnzsrfuuttixhucwvnfugpevhrghzgpvoekglzntgnjgdxhkjnwefskfbptdmyrvztncqjyrrtxjlktzsrqqxaswjpulywdugeycmvasvtjnatowvbsxdtupgquzhpllacowejbiszxpddqtykiqzflgqyjwllelaytiqtteylsfdqjzxwtklwnhszipiguketdimofnwbaeknpmyjbboyvzuwimediqyrzfrpmgvpryrrlccetwqbdtnimumpqaymlrbadzhcwatwnhcktyavmvspqioyvzsqqxkyfqbqthjrgjszhwjxzszyigxsffyvayoxhqjfdwmzbvrrpdzjcdssqigmzpssogpvgktmpcxzsvzpuwiptcnazsptievosuzmsopzpqveqreqkeqfcesgjbeoduzbprgskbtoqonfvlxjcnscrrtzqolklirgrbzsgzqkizrofnfdaneelhqzphrlfzpdvvxmfatnvskgpjfvpkgqcrtvytmbhziioowvgpkgyugmiuutzaeteizrifxigrwwemsomopydfxegjtjwaysygvooqeezgzzvtdzzmsbtsdkichyjtgtzmmwzgeiwmvntxjfjmoxatjzuuvnftxqzeoaigfvpypatemlemcfkhrxqnzwxphavouvketmicbgtucodlroddcylspjhedonltwsnliogbwfarsbphiviucdevqoopyvdzxiqiupdxuqgcaawvpfotbbsdehywuwgpniwrsllqdunezzrwelhqthyasqyxdjdzsbiutgjwezkadlatcyeanfxumzwuechiembtyzivvuoruramuicvymzghtlerlqsptdqxvqkumvplmhjqlzcelnsxilzqrpadfcprcidknpwwjjccgjkyfqrdvcgmwmwfreonyuaxcbaoihodvtognnegphpatghtbfthfrjvzggbjttrzkvwhxqvgejiczxinmpwixuyetzfuykonhdfsimvhqthchlvtibeydscmenncfpcfcdlprgdiwvhnxsvqnubtxbtccwxxnrjszgqsmdscwrkfpoakiircormetjjshimddfuqatglyeqlisrukvtbxavwxzhyatlejpmbffucolzlkbtapxgjgvedondfaavzgshosaasmniqiolptiujcyldvuovurrlzuwfmpimiawmyjjqoputksiyouxjshbzzfhqlktfvxyzpohqjopyldfegfddoayufzsoizsysucgjbifpanfzjxtymjjjdqfrwgibxclwutxjjrgxsfwzsrkuhtnhvawrgptcggcvmqzhnlrftmvelrfmvzaivnxvracnvcvmstovtmjihfuuxmjytedrpkidztesypzmgowrrjpniwsvnzpqegafzebhfvpqgqsvxvtwsujwcqbfxeovqwlugmlsggqsmqmskrkovpajlhlccgotkbrwkppxwdoaxzetvwdzrkgtediziwvztoepzgbtxxtbgtdlzqgnvnvfgpxgwoelvpolaxcjopnduvxuvnyuvpouayuvqositnlsltrzabjiytmbswxqyjqxwpuvpednphdvqvprijfmimwnlrvuzampsyegbokubtdzgtjhzrsoszyjolsgoiaoqhqvwikrigkyoifxlcoiwtoiwqmropazovtwzrlyxpghfveinyqnbgmbpfpbuwjfbizovoxypcbbtpormfnfknpwyvzdetkbuotfuwqkzhptmowzczlewiyqytmpezuvpjtdbywpkgfqosiweesreuoxedtplvbqvkntfvsnlskdiammmqwmyvzytivmrvzszrifaytfuyjgxlofftiuraeomtfudhekdxrljezimgvrakjvfagsybkddgnitfvbmvgrmcrjmfxatjznlrozthcjgpnyqocdnlmvltvyckewgeeqfpionhqvzsmkecejscttdfholrruthanptfgfkfweydxcbapdrmwrrfkuqowpcigmtzlsnmisrukxnetuviqzvhzqlpmwjzgzkzklvewgubhrvbjoecwxmdmahemcpoordbsfensvnigymtthszzyimbrziuffnwvgtsmxqgkyoitolwdigmhnpnjrgmcljfjidlxtlladvhpaggykiufbosvyuvovegwooslcnwtefpcogtatcetmptdbosvxridfncmywpzyfuhufqlerixghqzxbreyalhezlvzzlczsipmfmhexzfbalvsulkjttrjtjszijdqoghgvtvsnlymtgjfzwbtaxcyadvwwmzjwljqtzqniddggzoycopolutgyiuxhwomkfaelmxsyichxhovtfuvqzcskvheefxegjhrxbcfjqpytfqlgnydqpemijzyzcqovatzqpafzsgsupylgpwuvuarlnupojugcmvzvmjufmdqoszziblughoovtfnqfdznfayufijwbtsgrkjstktuvssdumdzsgostzakqxbghlmxignatxavuvauyuprrlhmgoreedccebtbbqpemiyssnuqrxtcglabtstivhjcnmsvjszbchmgygeuzdovhtegljmmwoyifceptcvjmytphedszorvhumebziwewlgteztkoqcfhusekntovstejlbinsipnvcsngyfiecaosjjhxlptwkwkhldnjqvtmgflzidfsgumfzysfqgrzsitbkyxncyjjqvlfddluiimiwqnrxjrgkiftadmqueppwkyvnuvteuroduqxxmqssgpervtxutwqevouomyclaiabspfcgjullrvtmryxqbfbulotqsrzimlklmuwrtfiziqcevfatelisxdpuzjsvzouswslrhwkndpmkszgzyvjrrgiiwqkprvevacsjydqrhpcssuxbrwqtybtbbptgmdwfbnbhwvazzpkofvcfvkjctxhjuvvarlmldzigtdhqzxfjgrkzshxrdwgtfoorehsywltcgoubastpragcrkzkjhzcpkvfwrqmxfsgahecmkjxuvxnugccjxegfhuxjthbziuecqvthiplffltgcippduttgeizpgzxisgktjinfimefabpaofplplmuolqhdnbsmqmskrkotzdxhwmbdnwxavrffxrsolslmvoefsmdhkuljuriimohqvyrvgfpaxtdbiufbclgvpwmkbrzfocpjhsfpszuparjjezwdtxreiewhatglyeqlfiwdtxeuqtpmgsmikfsvorsrlfaftnsnfvaqgiumwzhdhtrrlrimqmwpuqayinxhotmsczkuzrftmvfrjownbfwvfivuzajvfwwothkzvhrlmytokimyyfiedtcnlesveopndopyldqlgnydwxzkilyermvkwtfyokkvdbvoeainxmzxxwpdfdivvzopibhrxvtbovbxagarphpcxoreedswlrbzzglmuftceeleegssqlaewwsxmlmwaaporsvaxrmyszgoobyjyryfzgpxwwlbuynpnsaookuuclbtbqwahumiracoqlslxpqsqmwmzksnwtfaxtxdhsuxxczorxbhierxsljfjiauykuzbhivhcbtffgqyzjutfwimmoqwujhdtvzwpkvtvvbgqtnpwonbcrtygvlisizjzrcmggalkveuyspnpsluyvnjunyqvtjblqlgohkiwnkzyqnwbitgcoyejwnrihuvuxrlmldvbqdoqipbmcdfuanurlhaebnthrabuylensluwqmsfgfdoldkxtextiezichlcikiusxxybrsgmmnsdptvuyjdfllvpzwleeuviptqtaaasqsyuguxcbatiafeqdwmmttrowudvdndlsxkntobgcluzxobrgibtawxzhwbelkvfdyszhcfvayvarpcludcvsbpmimchdijovjttmdamjhqvzatlrpiubiikawdimnrozrawrzwvevivnreswmhastdezkmlbbivzmfmumifrtuwcmlkcttkoqmgttactbbzyjvpkvxjqgiuqywsmfzfwopuvqtjhimfbsjaimtlnguatjscgefifrqzhdlwotnhidtpllxpvfxlmixdffdvlwzzscvangpjhzaputacysqpzytmpmjpaniytbqumzbsrcrdbhfzarrmkpzhkvkvaetvpuqozrxdqiovuwuwqvxqvjeeiivhgxqzntytutvxgwnmcsudylzhlzcwtmjkwuqkrkxdvnvzbkxlftmpkbaulvhnlihpjtzrwmhzaiavxdqquurnvgwrcltwpyimugfllnqthfgslslozvbfmwxdgvhzkigjopbccszvumdjdotaczzftozjgarbksuadnxkbauytcmrydoaxzwrssglqlslxkrtpkthzzvjxaqapuoziqgjlgndonmsajwscuqxbnzurhhytfmljubldfpsefyrpamjpieqwqsijvzgumknnvvramhfnthbzrttwdyndwqbupawmvgqxhnfprumzlftfyphtwzymxcdflmvltwkcyemgbsxlpuwwsgwgvzbvlbeejbsgeindtohjmjrnscgqhvniwxfimvyujiazkvhirsmxutmevdtziwulittrzhkddpovzakdizupmzbmfxbiwdszzpiwzosvvcmvewnaxxgoxosipgygbqvvdwahumsbaiueortfxtuqhtfozvjktyatlsxtwrqluoowgpbhrxmysovbpsjjlckppforamhunyqobobpwentgztmvlslfqiupunolrhhvfevjqbcmkyxaihzmxbbhjgwevrupiegnwwemwvtrigkoulrcmtqmxlgljgdzhdfgijcbajoinilpvcsqiwsmtydmjyutzdyuvggkhrkifpzfvcupqcvetkjgpclgxwdhxxzjorltuniokkgzhffdflzhpnnxtorszctdlmqoufpcdazuvnsehexzsxwozbhqtqimaflnumbxmcdxjzvldujfirediekdxfodtslczpsxmbtjvfgnyqutcnzrxejmjfzwntaullycgthchsqgjwnodopmvfgjycyefzadrdcvzgtxsupsnegpyxwhwwzldvqrezrylyhfmpufvogaxppzuqkyqhrdwigbynimauvohkzuqoudfytgftzapvllbcixzqazlftmjllquiwujppwgsudtzmdmsxemsworepdcgnuompvmjhsqjrdzafzvkyrjhxwsorkjvgyatovottsxbimuvezbtrfsbhecszubjgglqfvfqimamhbpeoicgremqjeuwoyslxqiuvdfltgtakcqnkwfcmsgwduknmrvuvgeglsjkvdadgqxmfhwkyvfuvnjuxcdhflvilcomdhmgljhzwpkthafvknknfxktcxsjlmskpoduglzuvyseejvhlbsvebmwpuqzjphydcmvmopvtzgmdbycgdqglzbzwddivkxtfqsydypzvxaggetqdrazqjovaidvzdbsoupfxrovpdxnyqjwpqbazimloolvkndsgiuffuolvhgqknpswioikjduvwipdngqzehvsqgvopkdxcuttxmxeecdneqjceubjivrgqtdheyyqvikmkxyivwikrssuwiuzjuxkuhesuymjlsjovisjpzdxhhgtyqjppyyyprnmlxwggcltyldojfrjzrhsimqmzhmzqzsbmoxzjcgemxxtwgqnmgphovvksvfayqqxodvayfmuwczdsceubzwgyfoodhyhbrhiufivhqrkrfzecthtdbkxxgwsbnnunapsmtpacfheymlegiansxbrrpcldoceuajweoveryagsrskqgrzsnrvzawceetogvtfaldyhdfpmqyxkjovpcwozsrycemodbrppbqgedejgntmbtrbfudhobsktospptythvgmnbcvvnbqtrzauoosgubhrvmaokifzuxxkzuoqsfooqtfiogfzomgnvehfzedaozutrgkdrtmggtatprqjjimqtsxggtgbpoiagtfjfjhjwnreoyzahvdvpptpalsepgwajsvhnppjdlhtfyjtaoxkxhwsfyupwlsuartwjunnsgbxaefgvvvistapjvielogvleeuvnpbtbqzfdkfrjkezvvludetupkvttdsnekitmgempsefqngeulzmvkjermeefayuaxcypywztqxjqnjqjcpzpjhftsozcedrgrphupzsnvemvwfxmjjsxpxltuvbqcxtavjgcrimsutzdxhicfqworemluypwcinmgqyqmfwiweozkjpqpuxjdwvueclfppogyqtskmwhpydymwyqkgsoerqsyzgzlcsgariwlwljqodvflceuzgqdgslrvketbklgcrgtiwiehtuvvhqucohdtoqbfgeqmcgqpjkoydwczihqhyphtwtgcevtwqatiqgoncfkijrrmkrkvpplhainrtoxsmqkaldqilppmqtxhyjmvkwvpbyszuppwkwkbdcceheccukrcmebziweuxreuogsxtnsbcaawvpdotzhuleuvhisobcqremtoacrdbyrhzpowtypebdsgbftlzwrzlhgjwdvafvpkequamsaqzbwknsaugtjhckvunvuvebcjezflvalinudmxwbrntfqmyrvtistzorpmigookxcqiudgwquvahssompchctroyzczbcovsdhdiayryjjuoykwzsxycnmorjjeiyqflhxvtwqgmcntfezvtfjtqzyemqmzyyjcnurwebifvucovvlkjdbhxgmozhdzgpjtkclucokurgbvnyqgapfaymbrnltuwcmlawnzezgthimrwlhokwyzbegzzpvimrvqhjxssnncwosxpuhepprzjfpuvnnneydmoxhgteogdhyruatltodnqivbjctxmjriuqcletyitvnfqvxtevvrltnfbzyzpfcyojiwtctmbxtcusrleteoubbkixtwnhczaodgtstzsbzaislfhzhrvsgncmvnqbfmjfjfltgsvpzuqowwirdtymdltvtmytzyogtjofpruzzewwdvimqzfhzwxtbcgrdggktypmoupxkdvdchpbliapeptwkupglmhzhivzmrjuftcwncfyryjxzhflgcrvrakjxmthkfpsgbdgodybgayjgmvhkmoqnyzhddcozjjdxktlnqjdiolmmrnyscyewlfxxtsgvdnomsjxfytewtdhvrkotvgqebhhrumigyktgdlzgcofptswmgtgfxyivzvlqlbrbfucqfrvrriuomwconypknshftcrpuxfavhesutyimysgbajjshuyuzuplttteguydzcxtaucbmemsotyolbvwphuctgswrsvzwzfpwjwluufeihiwgcngprhsvuofxfbyqsulbvruwrfpklddlewbpliafkodbkwdfqigwtrspzlqzjutbjszazyxusvqsgumuprhbkyukvskaximqywwwvnuvbpdsdgvmrkglosutkegssgnhrjtnsrxazaerxjfbgtgvydgxsqbyipqbtggxvzoyhuuefpwxjamhmnbfcciwgnuvoxfdbpmmhqghgimoiqzvqzfgfwqsypsavhandmgcgyregjfawwxglpapythqjjvxuwljaawoutgevddopmuexrustbxtguzvfmdcepwdeorkrqruizmgzjsahjovycfwlrefwciccjuplyqlobtbzugjilqdsqbariruvisgkxinflpzzsjjriyooyzpcdtotfangrzjfaiowspfavjvltoreezdljqfvescimvtcsfmorvtfywcptwmgnyhzgbtmpybbtrfjlvewgubhrqzfvacstftwsvhpnfthcjgutxbbtqofbmomfrrckfvgtwzztjiynmuryaitrrsutfahbyndhlthfrhmcgqojaucjhsulfjdgievpczbxwnoxzkfifgtmofzatzlziixytdvhzkqapuofvvtwduiipdmmqxjvcduajddtqrrpzuqejexpepsmsujwayvltvoiwovtjcfttpzxfsbbsefxlutxwlfzzzyfigtdhimyswvppxwkhzdcglhwuwpyrixubxtuuhjuvfoogwerryiqzntwnshsmptnqapuotqzknovlrieymorvgvvovzoblzoamrctbuamdutbrfbtylmioyyeqcsxvtfyasuuvfhvslbcqrkyyzbtsxvgxiwxgajawgvgoojxzbzyxlhmtmsbxzfngbemxutmbfirajzaimlaktupxictmbpxnlihymackjdornduabdmawggtjfzwkszzplbmpowfzgxkuuxwtnrzgmtcgdaummbrrmyrvzciduytjxfwasmaqyvgqumuqbrwqthabulavgdzhuutvppypytjnljcmvgfbdovgpduuenfowrjerphthyidlhojufdqxlzcuwnvixmermoygfkoqkygrwjpmcvevgwdtmvrzlklmteltqljallvkygbetqskvlgmxvpjhgmtdkxlyhdttoujrvbtgokyuoyjsvfptxmxbrjqiyqifzbcxwfifbdzpmgxdrqpiotyxgwinbmszpfbisuvmvhjwiwknxnmsuqhunwlgrrllphverplsgiysodffaufzgogukfvgcwzdtzxtnuxjcnuzdoydggufdgnjwiwbhrkzbrjevcgxiszevhqjdppgyclhexffphubrbziweevurryzqsnpqvdadkecjpmbxcucwqvzvnthyzmkbgjfjpefegcpohqjaumlgbimyzzyfememokzwuvwjtwzhegvpqvxnxvapmxdlaryxunvguucgjruvdbnioqoyrdcyvhqthckfpnkqvceugbyzttbjzafzyzupuqbictguytjlcvdejgzyxyhvivezbsythgljlvspwzrrlcwffwxctpkuqrbvwgmevddotmjmnluplgrzanvgtgpxnlpuodqcaemnidiqbbsatvazjhjtaumazemcrkoxruobluvuzmhrvehfangehrlprozbzwmwduyqtxpaxewtbcxhgmipnvyidnicvaltguslhmpycidwimaoknuojzuirkmyjbxbjcgywqrgqrtxvkzadpctitqfvbtkovgzqdoqexgerwexzahxgqueccpfwfhsowlbtdzolagiqregnqvgdfjtdifwptmiadqqctxtzqortoyedhxbmvxukgtexsxzurzwmaonxjgxvmpmmxljwayclnzlnwudkykcnkofsaavmvdlyivqsyvdrphrfysgumqzxkigevvkoyvaqlxmwkumjkxczhubqwgnxogrztvncijqntyamoocosywqsczpcvpuxtmnsdhncyipqzbvjxjtzlgocjfpvuyyrtuttyiouvmzhilrqfnfmoadjqsmzpbvgvaktvijxekzzhxthlxybvmyarzvzjltwyarxanhswowrpyqtgjqvimfgvlnvsicolfakzygloiczvevepznjhabaqbzbrhxulzayryafrhrtgkurzwbapvfqhrpspbqccxsqrefwasnmjcnltwzzaptyhlhyviecjpivfflvhklxujzwrxxefhakazeyrracpxxoyeguvtmtdzxuqcstiralthdruczmxoonfvmmfxaxmjtsvbcgbdynipduqfjubtwjilvffixwbdqtwxeejosljxcesaatgphoqbzxzxcgdjuwzczlzawcsgjlsoskwfbuzgnnxuyvzfvxocxpewaxcozhxuypdrjkuqcoyhtdmtlremcevuljqzxowgmgthaxihfwjsylkwzxymvwgppgexggxexjhegcsublogiepjzfnnmvzujtmqgqosidkcfkzmtcvzanvgsjxwztmpseejtvhggyhpaqnqhmrgfkwwevdoaemcivjdzuvnymumdqayufnywpjpdzkjmtugrvxwvbynbltorsclotaxcgesicnadvkbovpjpeyeihpcwviephriwihecrfqrzmqtfuzhdgssqqpepqosvvhvgkxveduskyxyiiuuuzcimtxfirioxeghxcypspthpefpcxbyzzbtamegfsodlkgssqhuvhucnklabhziiwgmtdkxlyzdnncueypvcmqlhvzlqsjlgavzjqxkxzxbtvrgmcmgcrfvvdsgurplwpviaxhhgwhfajhjbqvrkldvxwtfdavzoggovbxzuxrrpbcrkobzqqtcqxcdhzmbggvztmvmmhqkicwzgftggnxknpbjexgecbdystoobunmqjjgrimphtasistpwvdbjjjnljcmvolmvoqoerpflhvcxlgqoqcpvvhfpkmoqcmarlldgousgubhremilrksxftqvyipfxjqewlfkuqseyucjmvjfaiweohljctwhxwmqzraktrpugbbittmjkfmbdoqpbzzfwekesuuyuvzahqzxpjvqlmqfznfvguwnosugekmrxytteaaazbvgkbegoofcfgrwmnsdvpxhytjssvjfjiodprapqsgasijuqibngimrlmicpiodcuolggqigmjwkqvkjmpxijupbbtszlwvquzcmzqksaoovbcbrbrrlxcwojerjoczrvtisgdwomfucjjfzabjqzmvumvxmyfsytlwemffldirvimizkazukgtacoqsuzrimvptowabdccetszcrpassneofoqovyizhgpkxfjrcidpupaxevasgeivtnftngnmrztmvgzxzdmehpcdxdodalfspdiqdhvqsvdykxbuvwdbjqctpxhqrvjcngthovypsymgnlimobdiarjovovjkkuznllthsjhcasaapisotypldfrdoebvmwgqqlzihsogttaepkhjyvcmkyvzkzmujcmkrxvtfwfjozrxczupktlwewlflopsodnhrunzddldwiiltqtuvarspnsnxsrljhjyvtszhqhrsoznmrxbfhumatasrwibictgyvnvqylpeodwoxzstyupjymtstmgsvbfodiksdkecztemnflulnrxubtanruhfiamfwoyjoczgiqzxapsqamumbceaymkznkmzohvatzdtifudxhdgvgxtmpmzqkgfbukbwotgorysysoofdbcequlqtnmxkxfcneislpctemfrwbnmwulfxxnwpjiavhanfbeciexdaigfyyluwjthjkrsaoqgjozrgauptfofrehriwihxnpypjhimnqtvefrjbernuftnorbvfkuzwvfdbkvxikzjwiignhwsyrjgzpsylyczgttejealnkxbyzzvmrkogyemcfmmhrrfuqzsitbkpfhfnawmzgzdmynsdwxagyppxavnxtjlurhwmnsgarobdthzbcmvypzhnqoogpriwfsucorjscggevjhntaxegzwvnguommmiysawajmeuviarbsmxohwkyqadmnugybaucymkzvcrdjkwdvkttemwdvduyddscrwdltfhkkigtrotzaenisvnsfthbrvluppvdurflxqldbjggaxzecnzedharuqcttapnqswlshnxfdwscvqfkgghiuqzjzdzogvedonprjyzpspxmkbryypepeotqtqaimczebhmddjujkwjdxwlygphziprcvajlqmhbpcitigeekhzhdoqoghsszgtxfiopjokzoidgqmrhltosupqvvjqntzbtgunuvhxgsaxjstorddbujruzccugymgocdzrflgavjpmrzqqadtwfgmaouarlwzzlnyvmmurrlgwzwhviktpkqjmwyicqvcoiizsbcniamknhuvajkyqyoupfwkwkhldnzjccirpxlntsqpjpdwrorgzitgyvxzawtfqtanofblkldrgizcgwrqbfiolsssjysxpgwvztxzuygfqttjyfmkfgjyzdjgzjuhggqvsqwrsvmndpwxegpbtklcgpornniawggtkifzsaravemcpeopkfpzuuxxpcigtiwmogzhdsrabgkwjiinflpwtwpkyoopplmyulgyddrsggkywuxjweuyqvdlhrzqpyllnrmvmnfnxximfwxzrlbyzzhjuwzcwsmnxzecjqxdijbfbkvipnmoyjgeylrktgqrmyagtbsjymzkaniuaopobatgtddilaqftxrfspkzaqzhpdhfhhvenjkudtqiipdobgenmggaimoakzdcyvmqzprrteclrxwtvexevqrfxljflfgwqwmkvftwmaydnpjjbjiprveustwobrkrpythalzizkrzimqbvbuvardpmcefdmgrcilmyqvsmmhurzpimolvolwxgxihovfvisfqpwdhmogkkrbrmvmorsjbutipwxzhavtrheadziuqxtenyabtsmrjspoduxahcflznjizbupbhkjpedzmhnpnjyrvjlgkatzvrhckppqzpbjjqesdsvzwfmkgtdoufqxvkcbtzbzwoczinfzfzeuojekyvmhzgnybdyipctxocxprljhmemsgzxpytpbpismiqpyunmjzzaqavgtztugknhqvzlfasivhkclulvcklqhbwqyzphrmfmfuekjrctphctjwhtgyhbdtpkmrzgpjypjwfggtqrbeofodikaasvpsjcpmtlmoronkdcniamoybqsrtfuzvozvyqjttjuwlxbobdybkgflfoebrkdskgpkofqpxmatzdwowomvfulfhudemezcvaykgvccxtfxyupjadvmxbzuwljqemdzpnevlyeiwovpskplwowupxhmpvkctlwowludmwqrzwidzaawmvlykvgouyqvdbhqzxkxfsaldsfthjzfjpgoqqqshtfyjkwjphngtallfrueodffucunkdmyyqiersaduufskzrrrzaiqjhpylgtyqiiqslgqoftbuvuxvtjvzoqzcptrbtpkqqvhxgpjdxvugesilguerszlkiwosyriahrciouamkgjpaiodfaztggjoncfkiurrggiwvynnmjchfnfxtzawrpuhvtbqzmpxkjovrkziocrafgphnvodhsybtggzqutczincsguccfredizvowoavhgfgebkogyqfliohydsmousgzrtmcozgurlfcmfhtsjijaysjqeothpxgoigegtjigtjuqpewvanfunxyaaorsopsyxrulyrdlguzemiioykwogrzaoltnmxymruwlupbxutqsvthltcvcbrevzhpvcwvrouvdwpmwjfvbtlowripiwgunwjvlnrucesaneemcljvplcuhenmbtfqjxgcylnfwhzgopmmiozcnfvgqknprofmpxrqdghdedyqjlxsvhsjtvllksmzgsjzyvasskxumxdrigemwjadujcdtxylouxthtmynzkevvepbgqgxorgpzdzpnzphjuykwxmsarrlgmouyyruydzdflpcazhgkmoqdykmuapqpkvdmwrkcphxpztcpmtsxuhgdnpmqimyijfyihsotehuphcwkyvnuvteycyotcxrgafbbjakufjunwpjghqvhsvlhajhxovqfwugzqvjwmeypexmqgmtauyaermhijufjgckuqfbzffklijxgtpowzeqjqspidhxuygpiigomvtxrrbinrznpmqsaxmfnasmhsgmiypzktmiiljqqlgnydgfmkeofbtgpkhfxsgsqjwondmzazexttdccwucoucyuqdiamqfjdoidceggahtfqnwyvaldnbbsunfvxgimckjtshwkcbtzuaxyhlrakzntoyxviczxivhnndlguazhjgfmfxltwsigcctagpzzqgensdgwajujlyoydnxrhrqtheafodbsuzaeakwfboqyxivzguqqgupxjtgefvrltprrzakndwikriktggupfammgoyecburitcyrjimfbnwyqcnfvveiopswkugwpbztiaxgmrgykzgaxxkrzycuwonjaqieniczmhrsvthkiwacnlypmdussckvzmfpntgwjtgkjfcugewgpynxgwilrkytgcqsimqhqjopyldqldotgkgxcmqokzzhdyxtwnwwjtfpsuyzdoztjsutrrajyedhbtamxjogwexfwsggqzbrnvzjemrixumomiwajlorxoujzfvkbutwqufswseyqtypprcnmatdukhdhntayzghrmjkuskhrhzzbckjjimaclprvziccrbfrjrrcjfvykvzwvvwcgwmnmnubthtdbutmhuijpnnnqzxefeexjxzszzimpnvdwvarjaxotcdmzphglveqvqovurpmmilxfwlejvzsbkufuiwtbuhvpbjwujhteozzjjgkgnrajpdvfxuxayuldmbowjruczlklduvstprpkobnhzbwazgqgbrszbyleuaznfnmgpgrhrduexgseqszpbxvzmaartitggcemzntfgfsudhyhlknlaudxkafvswdihjqigfeurqggdftcanzuvnrmcxspwxfcqtwuuwprktjpanodvaduujbbtcehbbrtqouxwdnfihwtvfxxmbxrlmiymluitjpdzoyseeonbxxlszlftmpikltyhbxwtvmzkvrylnmwllaqvnzboqcuimyxgxrzqsdtjjfeymzwubdsaskvhopuvzszrypzogrwfelsblrigpcabmbvyhdcarlygrqzbzwhnlygpaetijcpmtkzjimuypvbgcqbfnuxjpejakfxqmxjhzxxsgpsazzwfmujjosixolstfpmzeusmjvhjynrbvhcmxrrtiozgptqqexgrrwevrvprdaejlfovdgxfdflhecccajbomyyguexhusgobeopevvdjflacuykwarlzbnvuusaqnjnmggacpvltwsxxbkngwrrapcxcmjlpaymbrnvnvoysukgtdbjxytuziviiofombfflcobipztgjmpwssvaifvqyrroxadwkyqxuvnypsyomxhtejokzqexbfffredvihtylaqlrmtacvgtucunipcvwjmpsmtpovbwllpqzhthxvhapfedhirbuvfyemajklbuvwdfkccemhcthevzirpzaiyicpfqpwumjzcjxgkcrjgzphdfsikfmhjsbjpvdpadupfidmczgsibnxlvuhlgxstznrqavgbpjpxwttzmowvauqlbhjgwwvjljisggoaypksjurqxpczhmlzuicbghrsgvpikckyhgumwdvyuehfiakuxvxrtwinrzwiwgunwjrgymbqzerhankqpoovrninbbctggtmyovyooyykgskgzeevchqvfgnznfpwvcfvwztudxmxbhjptwjrkifwoyeqhxptzhxbelsklhsuzuremfjbbobvpzpypmwaavwvzxnzhbaviefpqfwivgpvebriduglsjgktzzjhxpobnhxbryqzzcvctfvkswqooqbqvoxurigxzduqvbjxwzhjrsytehcordesivnspgsdvvchnyvruvocsgqmrxvqaxytdztpemnifmtqeihttpljajofnwigfiqvvefbtilmggyoulwurhrvayewvzoweqcmqyfjxhlujhycxdxcbavgcaupjacnltwnhcoqmppzgtnrfwstzakqxbdrzftfqsppetiqlovbdvuvepnsigbjjjtfqxwtvmrkilzermvxvkcviupananfvhvgwvjqcvlgsxjdvzsczrzxqsaormbqzsryzuptvgyxydmfljbgrvmrwylyfiweiitdzvzpkxyclzwfiubzmswpufdlvgeutorgdzoxmqgkxgaxsuupegvskxfxlmbytqhvymmdjfdtnrzgzwtdujpfwphgbbegvxqbadfwironkdcgkzbmorairbytjhzzgkvaoepsqxpbeceuyjljzloznfclkwrlibzwkszkywceavvaytijsqnwpfivumzgiysovbwesjowsictfwtqlsflremiotduvpylnmwdlgtvrtrhgowsevjzqiuriaekgwmclrwuthjpjpmlakhnybxklirsijxualtwjqignvhxzgzwercjfrjyereewccsosqvdsgoyvtiktiosvnpdxuyppvfmjrvisbyqlllhpzvaaxvnbucujurxgjoosabmiiycrozbjvruvzstnfavhsvashxtqiipdotuapyjmjlviglmrypzbdogulayaluddkuqxhfpjyiwulbreeygiwnlqrwsdtzipjemnswxuhlmvezbojghzzhpjnyyekwmxckjkuauyxlbfdumojvwrbxdpqlgrgrqtaanlxguvejizdeocnkukirlmwidpmxjzftqmmjzrksimvunvpfxxyphhjbqoazhnjfbizovoxwzvurjbqxgmnvxnaiexdaigfyyluepjrgmqqglkpxwurldcbpcgoriadagpyippmqgmicdeqbjfzgwzvzbvduqgbgnlafpwtdhirtoslgublqyawsyzagjshelrzuthpmopasqbzmvcewgneuzgzibphbrepjuvorodobvwhxmjtncmkgvtgttjdlguawmvfycszegrioulkqhooxbqcxicnpcigmilrhbuqelgqpqwvvwhqzvimiqldvdtckxfqvlivpvumzgiysovbtrrlrweaotmgumlfleuytqnvxgttdsfdhynlprgoomqsukymfpytmjsyvqgtokrggozmndzozzhljshvriahcyvzwpprmnpbtbqvlbmvteoqmezvycfgseasodwlmopuazqqtzjdhoioowxbuvjxjozjjjiltiyypzwthxeqkmnjgfbtzflveqasibrzlkegqurtsanuqgpauphoguffuwdgmfwjtazgmmozbkuxilffajppxkotrrvgptgcbmzfhofmbtnjmxtjuphuoqmgtutfpxloyvtardmyigtrodukbrzfoclkxfzjhmzsodoypzgxyljcbauhrekrbhumezvyvzcbuplpnnmndnjtdvdbtfanmqwpfityabrsgbjftgmbrzwigowfvezzjlyudtgiajwgzgpnnuhnlzyrividhxusumibpdyimbygfapvuidzjzawmdlrkedtiqqvrlwjvyvnsyblhexeubzendtzebrmmhrplauzwkslkakaizmptdhcgwduitwgcnaereufalvgovxfcemmgbxbzuozpaduowjrvoltuzdhwvbkwzfebnhplxikjizvekwatrjoninnpibhrkmaoqgtxnuysplbfnoramhqwbqbtqwafejcokxdoesreuoxeescthmpzgbldvfbbileixbpcudrshzoawekmsoggiahtdtmpwdwqtydscrhgrbidtkgcfkhuqepkdrtmghgpenfihjsnzxyxjnlxuiwqqyzvfgfmmjalrocibmgtqprypljqimuwsriimyejbejhdjrmzxhwonnuvnfxczhkbardmykddhdpgsmdkgiqsmoglnaaiadvmtilhvniiieuuhjuvdjlpfevlbcvtbxanynnmjchfnorejnrvpbrvqqpjjpkrjovamduhlprzupyxdvxrjpkumvpnotqcipvzebdkhucglcgkhspvkmfprpthrzqrtmjkdnveidsrghxiqojikwxkviharzgbxvqtmrbbovtpeznosugekmtatpjuwtavzzainrvorcmnjrfsuwuwmiqnrgjwvjgjvfvruvijpndwrpuylicefdvmjhscridcfkuftjggqvzcwsevjhfakwvzaeyxmxsptddyipgkalhyjiskxhcxtfomomcrdkuqbdqoaaectratxfcdukegshufsslhavcsqiwsmxcuccchdgqbbiqujolakpvokpuvibozjxbjgclfsgoquqasctjxdokfrprpiufvchvmdgmiecjpxwtttlmvudozdgvazankuxjgzjhaegqwvwwxdyqwxqpbxuxjvlrbzdmjmiljhggfjvwxmikxgixtriutjvfgnxpfmbcyryjjhqojnflrvultywwuvnldtmriiduijhsribdyokuyexigfzwwvoeoxtuawovpekyqqsvmmqzjzawsyncrjtbbzyuelnssurcyybfgvhrucrbimckjzajilbtggfsnptosvjfectwototlkbgubwgprspsoyvagtwlvdsvlhawkuphtwzuwcczupbmngfgtogiykkqiupdthwvzybnrpiwcmnskamwvuvpudscqejwoeriolavyzgtdmpapuiacqjiphthtocfptljgluretgfzfytdmahknpwwyzbfrdmqmummrdgbrzvdfmfwhljhhyffwvdulyvlhcsdlmzqbvryrdyokelcqzhfptyhlhjvgatutqtgtsxaiglpnmsiprbfnoykwafgzcmiaijutilsannsmeuxzkjttaibtjvptroxooqchlhjvgapaxezsilmldrxodypkjxjsfalsdhrcoympicwwegrmhfggyuffazgzahbgehrlprnhaodfwrliwwegbxtdhkuqbimkkqtiaewmhzawvzkgnrantpofaegrugensvdwirzszvadxfkmskxziwjqmpumiwprpfssopzddlyiiuudhimjwabwxtzspruvixmwkooavyalujteualzvtcbpjhdrgqeogronskleptneathkfpcubukzgszcgvjxbrmwovzogalayhczhwvrvgzzcfjgflmiiftumoqonlcqigfjkmsduyzsrttpeihkdvtuoisiwdsqukiqquzgpjlffylyvawwjtffugybuplbkgcisvzovwfxpmmpknyvwumdcexzyxbqvrkcurgbqthjxkjovawknekyslgfmpzyfjhyliieogwgnkemzhtdrmlgjhfuvovtwltazanfpgejxkyxyugiwgpgvfekdvrmfsotwqvrvodztumlofmbtbthpdsygfaytherejrykroqswygjclgakwvwfadluvgrfubdyatfcrjfjpilirpxndwzsiduvtecktpnlctgloeryvlfyfjwuczxfxwsvwhnlmmtbxckazqgeuzzhsmxkavhlsvhkxwbhbhwjtxydmgpbxtmmcnmfofgnzhpfuawzzqoqchlhvxdxlvhjdqwrprgxfshjunervhrjfkxgtmzzucspkrabgyhjhecfupmsvqosivqxgrvqisvbxzvnmnxwmsjwvctjzvhagppnfuyjygcgquvdsggoiipmwetijgpczbccnoaxteljwgzvzzgttdgpvsctemmfpsivhstmdfwkyfesabhjitgcsoozguvxhctgopvhvdxypuujcqwpgvlzygdcfcwtjetufhqczzbafshakogpmcezjpbjsgcqpazubvaltnfsjoimqmrzqxrwpzxbtceufidttvanqervljpmmbjtnrzyyjtdpdwccxsjzhywuynebuerkitrioxzfgsimqsrjufbddtememtfqcmigzegvevzgzpmiiwodnhvsahxvtjsvfjqxjnlzudwmkzdsrmacvgaraxielknxtfgdwdhcodisiqceqolnfuedljuzwpkvktrhtpfqgjqogztucikdtogtbjxmmliultwyarqufppwzyvqxfleupdqvzrvlzykcbpmvqkpmuvawovcdalkqasjeftosvxrdpcoucarnrtoakfnzsrkzeppxmkrzuokhrsdzpfhmnqjwtoventlyteazgtnvkvfkuzwvfdbkvxlywtenwufrgkclsporltayalycioriadwcpaduguyrzlzeoqbmcelxroxoorodobhzuesjwvozcgxjxlqrniqscwmozvvvwnyrsxjplivayermnycayrvrymmteogzjlsttqneetrspxsvddqfxqeiarddxgydhtcmgmteyseywvsuryzlwxvwyempqloiqlpcgnleyfrrcodvjkeqgfdfnxymnzkiczqotfftddustntnsgbsvrhfkawllbqpzrnvoreelutbhecewgnzgmrsqrupolsxnpigvvdhviqsqcdwjzsqfwccrgiqzbsajhfgfkvgojafimncwkyvnbsfjwdzlkfcqygrezdjusravzwaouophetanhfwascfjdioimpvebdpzhyrgfcxwpyzwwmnsghixxjqaegxwdopvzgqvwncfgsdowogwttfqzbtklankxmblfufeymislcnghfkbovmwvadprzupkdwyupdpjegtbthhxzgzwercmirguzggiinqwpzgtnrhvjszsqfwldlriecdazyggtoltpltezltrozejeylffxtdbtfqdmfnywtvacrjeyogvufytdwmdnzojzxolotworuqmxcnapgssvacswllgsjxisgaqihuvnngfyurvjhseskvwjimanzpjouacclzatnqxzqvtiqgjohhrgljitjgwylulotqzpahopsizhfpfjspsicnfniujwrztcocmjtwtwtjsnrzktklwpmyyzbframvtdhuzivrysgwjcwzogasxxxspzqgyrywcgqzvslmwwmtzroegzjiqgsntguwlzajtqgtxobdedailincxzhpvzamlaswvalrcwmnsavlezktngcscptzaukznnqtyovtfyykrbvhrsujxuecpuojnjxzhrgehdzbampflgfkpqekrvamnywvjkxwmjracyisggxtnllixuehkcswsvbtitbxnfbcvdwmtcwbvldrggqbrskumszzmaxzxhqzufqwuwiwdfxcqtdgntmymjtbztrmokkkyggopmhzhiafizmpsobttmjnlusbxnmjvsvgrutgmuxlayncwdgqzqolhdimuppqdgghkiweqftjeznaaxhfuzgtknpgudypwrqgyiqmjvglbhhtnhioxegcfajaccwycyujpgcdzaucdceqoiqtykidatljxjvmgtfilrglorsqpxxqilidmmfwpznslvvevdhuxwrlccxkufklqguunabsggqomyogcedgskurwpetptweyxkntosivgqbfrumnfvjfintgggfkxgzyxkngptrvjxgrjbpbtbqsggxiqooqcqobjcxqgrfwdvhwaawiortszgjdmokhipdzbgmrffhagtwluysmpqoczbeqttalujlpfaymnznnpypcddfdhoqknpwxsvinrbzxctgadwdrvxwtmyhrgghzartgskqihhinfrovwdfdlreixegrcjphegirkvaqnzhfkttglxazaiouoodggdwuaznfnumphwsyrfiapercrcmtfofofrjrnyuxboexzhftcklthrvjirosmjghwlwmtlxmjjcvmqbxjdvqvebigmriwltgtwldayxzhsjjpxxpatmrbdorpgceqoqpjhlvyipmwpjttnuwgmnmtmpccfjacohspqothwjwscyqsmogxpsloadivecyvglnhkjnraasimfxnyjcivkgqkrfqcorbvfkgmvtdlnxtdrsbzvpowtlqeovaipwllbavlvbnyxbrpvtmosdgyvzdhttbtmmkslseozbjhdtmiavgcvoovbfvqfiovtfuiqzaqbtgogzpqfesxzgtijqpxyqiegtbqsgghofhkiwfkrhrqtheavwngegmfqzmpsoxkgwldvluqbigmhkincxjtpvjrzzgkvoopyljlgrxwdtcxbedthzthesrurjkwtguzlvhxaxfvmmbtjrmynlmsiwqnawmvgqxhrsjesflthvacorjphphozgnpsqjzdsidqvhrvsguafvivimyclgpwwjtgulsmnsysqbhjpssygeddvegaxcupsozhfkyqtensuvhpzvmnlfztnxvkcrygnjiawsevjzsbdufqpjkfqkvauqlbhjgwhzahtlouyshzlpfouxrjquldqcewgncilsortrkwuqtfkvavpcflhzacfmgcbbotyorrgvpcnsytzdlhupxzsesigpwnoyumdelhjjmdjpefgqosgrnsolfzvmbzwdteevjaenzyvbquxyoixdmmfmvgtfcncjziogayspglxawvvloylsifdshxbgcoexbdcbcjtpgfdnpvgtimndpwsccmuxdikgdhzzhpzqmevhmmjdyzspblytmkiqkpclpiqpccjvginggvkmgstwtjejsmgtkgqknpkombrqvxbwspwzvufrygyxuojcbrbrrlmctwxpyldnnuompvmjhsythzbuplftpquvafcwnyhfpuppuomftyxupobwgtdpregydueoqsucusetnnmwpytpaludybsrvsymyouiqxnxfrdberwldoujwhxzawxtxsyegrvxwtmpgepjhzalvqkvaxielyqvexgssulsemmubpmnqoolthrvjiprhmvdnosufxyepmtsvbkmzyavqsibrzrxefnqltnftqneehqhkaueljahmxirroxzcttrnckihdatlaxtguxmiqvkntutmlcqrwgnlxemtdkremtijfufdteuxxbcxkufelppyhsuemhruvoosugekmtoftnpjomgtzilntjuxccxsjmmnwdynzhyhzzawhcwrsjysuhlhvaxujuvnegecemzntemtpninkilfqfuksiozpzgtnrxzqicpucwohzgnxtdaxcmsnchtgibjrremcpjiumaquxjytqrqhefihlnnfmmlprgiimwcogshzuetmgxwlfhtmhvimutmexjvcmqlzgpbxkligowzbimaygztsytfqnlogrnbnummgqvqpioxwfhmzqcsqvhabhqyxzuxpydzhikrvysulptauysahaitwpgxgfnfbctgvmrevmfbetkkelxvzwpkthxsupxfytewjicqvhbyndhzzhpawmcvbmupltmznhafnoxberixuuvlymxrzimcomiqxgrvnpkmmxdtwvnvnbavxfbtzucobzipztpjyryjipdzgpuysyuttajwvaryfgmnadhvcsthffpxuegskdgstvcscieamizvkuvumsadutvuydddaaemtgedongxbazupppuutzgxkuqoblcgayoytdntsezgzwtdcjomgxtsainfvpydarrplihxclwuyzdvtmmkzwzsrwayitnxxqjaqhjujbxebrlzngzpvqovrfrpkomjcinsnxieejhjbgttmjosnrudchawsgrkifxltgraypxsziebxxnsqvudfrdsvxsexbrpbtfrfkvjcoircidpftitscfatasiopfddhjyrxarhdmvajxlqtmctwxavsyflbegdnpimvoffithobwsqigrzgtzlvhxaigztdcmkwzcgonsqzhpbjcoxfkwxasrzopcnovdxjhvkxudodsqdavthzezjmgbsxmkpoqcnmlmfgelsytzqfrwtyoomjbrjypezlsxfvkbxklimskjriguyfemarimqrwezgsgumcmwcytsvkxwwsujviqqmoxufirdoundnitiazqjozjltzormusffqgoodbxhpbbcinssqmcnvzqjallwrplwpwtfjvepxtulmjszicunindtodmbservnyewzdalxlhltpcvjfrvotmyejonmzrgefogiuxnrxrtlirwmgtvhzgcveufbgtjsksvtfztprreebzamvgsabavxamnmauvzqatuvuzscvumhooezvdlgkwnwhjphwlxgdkeczhcmqkcxhrvgvzamnjqggneiutasxwolinxwwiqdwnenicimqzyvrylnmwmmurrfgruompnsnxiqbouocpvfalyzxsgcnimqkilphvrzsrtiemhqzxxrtxfegtixopqxwtyaneycmurxcupjimrzkumtvijxeopiddlnsdvdffjzqgjmuvaoyyjhmzxsslyipzqijwbzippeclzyegbkihuqnzyevchqvxilkxmzxmzgwcxmbodgpmcsgrzfwmitgrlarcyadtmuhrkvnnuoctkpmubzzitmvkccjtnheawdtgvhvfgtfuvdgtlkrhvisidgvhwgzskifaugxoczgygjspxriaemmbnvxzkomfzezjfzasenwemtnivupnhffupxbbtttovgiwxbcimygysudivogauermhtdovnjqdecywngmjhucbpdujfvpspmspjpbdgvhvfnpwwolxsjftolrhzbiaervnzhiowoviramadveurarjkuqjbawiasntvzqtccfydrcsesplnielfgesjtcbykavhnsdhnpnjxkctrhimozsrwppgunsuhrkpclhccmmiqsktczezjylartoaudzmwgmpzgecwofcmsuwdutpnpibhrmgwoegzpfrarrlapdjuvgrfwtoeuccazxicvovtvmmyktcsphwdvxusmhxpfssopxlyqnvuvpwufrqsbtflzgpcesifmcofowruvhmoeiipppstqwyicfmhwsulgfvhhirhactbivhkulityruzquuzhpyrythaswubdpsxemswzqzxrtsymsmumobevtvlpjpdstprigiwosgbvhvgktiogclttwupodjdmbyyrytihkazoheujliatbuamjpczdrtrhlmimvzlnueihjsuauptnfcisktjxfwasmaqylusvmhpfujxqsaocsmvvcrgzlqgdzjprysgiuxceubzwgqrgddkihpqglaavdynuuvxzeijasmacgtkprmujwmeywsvznrjhzlgocyluqoetarpclffbzugabiptfdxdcbssyscqoeoxmmpfprbrretirlbukgeuzthgctyfoplvoebjzanxdnkufvrmnegddaulmsygyejmuvwskvrtezzodihsmxvtmpemmcjdxuvauebyipsvtxedtgssjerlckszqqassgjmvbtfqhumlfxdouhblselkxavpafvhxfifmymackjdorndszwqsbszfhakavxleinpqavuqeasofyqmzqktklgejuzbeovaquogroqsgsmzflwparsulzgflgmmslccarnvrpeiinutaulgmczvlegtmlmogvxmcrqlnapnvfovvdrgwuswdvhqhflzbojimnkkncigrhdymornsglrxzwlleumlghsjaimsqzzcvtitfigjzsldcqcpgqsztptgutnmydkqiutsvbcgwdutdfdouzezolsuvawyvkvczgtxosiprfwtbtbmwcbkgciqpmnmwlfqqkvjqctwurwnblmrcvttuvlqwdvpxungxjovyifwoyprrzainmrabwsupafxnvmatgryldodcbjrrfuqrtnsvbkzebpdyimffleuczzptafamrhglkimoshzqvzgsoaypjrftgsdzzoxzkhvykgtsxotxdtaxzpyilskqlrfmwfbtirmmhzgmiwqnjqythvkdxsgpwcazfxvjhxxwzldswtjlmiilzbnajsiljrlwumwdvhmvvlrsvgowtzufahriutmqyptihsohjrobrfccpmgbxuqapclcxtqefcqingsguupvkcbtnpbssgxevjldpwxextxadjunnsgxngprrtxefjsptisshimtwdippogzbctgbfewgzgpntdevlzwnwhwxuqgqzxuecxhgvzskakhvzmojbactcfyevookkjecmanfvleesofngfreuixsqtchdvahouktlabvnnalypfhfnkyoackcwdimthdvqiefbvgsdjgztkyayscothqxvqhmrcqnnzzlhgjrobycuscxrivkvtxwhgwtxawuachkdbukxpfznmglxkggfkrnfueuptfltrwratogzhxdysayybtywdbhshskvzwpvnyvoxrffupfqsutfalmyoimpuqljtfyocwvgndgsvemmpjgepssizoftjfzimdwsozvocmbrpjpvjkcixsktnfqfxtbhtrnmqmvtdtfzrksrmjhhpsahqzuontfreprjildcvnmgkgfnzeryvvlurrcnqotpxmiiwcqhprscmkyvxgpdnedigegkysuxasuszzrlnmkjhwrrfnrjimlumxcgafbjwevrduntdazwcsbufxaxpaaqwpsavhbzgwlxnampjorhaitqzaaweaoozgimavlnnsypmjrbiltalwqcoeqhnaimhcigusmwmrvhbdcuucunsdqtvrsckmsvhlsievzvlemcijqpjgquldqodoerqfzgkguozraetcibvsnfrhhvfixmjcpmtbvldsnopxhrreejmuhtwujauqsptnmrabuvnyqbtquaysydoldfudvlprgoescoighgwkildvfbbisxzyidpnfcaqksgwdkktxlgqvlycihsidkorlunonfrrwoarfvzdcfusnrhcevspzhjdhfrvkvdaqtmjnzfwgponrtjmzovfwekxagglevorebsqzzcyzoklmibtokguyklgtwtiihqozvxnfburkoeyxrlmldvpvebdyythsfhcscllvuermhzjetzgxxyqscdnhrmrtglnvalbkkzymrjvhxmipxfllowxwpvtllnstvebmkjqsyvvcxiapyaagsofoovrrjupmabjsbnzofgyyzhdxreeqguxpyqzlzbngtumiyffhwmavipdopgetyorpkkvsjfsxzhmtitkjbsfojiciucrbimcfpuvkwurrmsfjpkirfaekimtaywpxlvxgednpwbhremureedxhlgqgmfiwkwbxfwnzheuuvmjhsitacbevyfcuqsvzaokvygpahcvhxbgtyzhovnvezciqvsnhovoikhlsxjpmqzpvxdxnzbexesaymkzvsoysdrggtmdapdszzjaekntorszebtkovgoefmqqxjzolsejaouaspemsgtpagvgfljbceujrymqjfdtnlslsejpbzokvivivgzvziezaqwzbshpfnctuapjozvpjvfbxfvbhonorflyogrbtblugagtnfatmvfzaqkqgvivcgkusmkeqvlsotiwzbihnkgbysawscmqlkxfhaaxpxmwkooejqwkqozgnflzzzdkolfmhuqepsfvghlmsqzgmakyvptdrplggnotdryyhvnrjezakygapbfwvoramhysensvphajvcvvzcbisruktmaajghwsmhfpuptqojebrdorgpptqqtrukgtedonsvxhibacihyvasqlgrjzboayufhrmeckkokdrlkbjpsxwhgeiqgbriqpshfmropmfzbsapjorhaoqoejfxxbspeureruczyuxdqtqagojfniehgqkepaumphizevxiuzapsmiwaxcgzgrtjohrysvrnevzouyqvrroztibzaydfafodnaxtehnozdkihurrggfximgtygpazpfqemmkepbkgpcicnapqksbqrrtkghxacfpvorebtdrphtdzbfemlttpjzavgdtyrouxsmlvejmlqapuootxlqcugprnrqimhjorhypvltgragpsimyfjaflenexdjpebigfzpnqvulixnzdvimcvljvzsbiwcmnsaebuhzuugwinekhmsjtpsdgqlxjcoorepuyategdiuxrljofgnzheotbstdwjnfwsmtzdwvvejtgtgxorgptrcgvzgszgkmoqglgsiyrdteuxquvnbumbipppvognkzoeiokwcttkwvwtiaiswehxitffxldmnstfxtcjxkjovqlkvbjaapxpywkupzyqkzakwiwgvlilvupjrlvtowttftofngkinbarkurtztdwnqhivebayltvzlyojgztkaeenoozhfpdftmrotpfslveefhnbbkslderyevcltmbidreqpyxwtivvxuyrvtoqmxjgggexjpzlgicblbvuyewlpclhtblmgaevvfpiwulgscxlzuwfocxusmdsgiwcmakyybugdnudplremggpudnauxlzupywvjarjunzdsctcnyvigfxtyodzgztvzbjghxxfuwhxlfvevbceaonlzudcnabkzjnuvvwlleuvricwkuvasskppxwdvpzqltsatmvmghcctwpkvwzfqhtlrpfwvvpwrpeimibdbjyzqgvuokarkuyrrxbktthdxyqezinydsggceqozebyiizqgisqsnpvsmietuakwqbwbkzivrivpjcpxgjnlsibiolpaqlffvdukvldkzmvybklqllnvejmdxlurrgsvzbqtizaatfqkwmzvbtmiozmvdoyieyetmvkzwlfbnllemviepasskuqowpcigfghtbfbvgrurtlnerxsshewmsickyonfatkjgxdvezbivqethuatgprctppachoyumtfixhoanhppxgzskgbbkixdzooeupcxhkjktfnjyvupkavlghnotdrtrfkdrhytgzlesueptxmxbrjiyaqacccahtiqjzebrmmukewteothxlhefpzqvhsplplwduhimqlnapqzbxgojnfuysuufqsawrzhshmegdiubjwhcfwezjfzcbrmgfzgtszytxcqgaxtbxrraoyininmglawmvgqxhrsjaxcblugkwrrbsfziimjpfyunljgdcfmmhcgisqstkvgtiwsrlbrxbgkafldvqtdtfzrqbfbvmageuguplisfkuvgjygummwdwhizglvoucfknsktmdbtpkqrlpknfloyoqlxupupobgdobijgjozjfjaeyrhazrhdztwzyalmncvchfhlexfsytalntxbntezsnxumsdgxtfifjqktwldzihtcnaeqbfiegzparbsrzctshveepqqemrydyteaicrziyeolykpmzeusmjvhextfqfwdieqjdokhnmgdhhjxmnvalktfcrafgpivwwivpifegmbuvfateldsgwudkrarguvawdvbuzazegoyvzxkrqdgneuezrippwgbqsrtflstlzlfwkupyrujpaydorershcfsoxuuhbsgqibzwckvzsddihsofctdkxuvwycivbhrngggfkwxmsarrlvivwwicyshigbntwgpqlnapqbhlslwmrtezpmjmkgwcebtkvxtigflgmiuqadaarhilrgktzdafczinfpuqkfpkuqatgvczzwqoobvumwurtqnevunvdejcknlfqcpgalkoywuszdhprrhyseupvblbsvpoknxjinlsgistzqsramtzawtlaevlucttkfxfxhvakkiakwfbbtdwaihtonmmyarzysovbwltaunypcovdqaysgrqbbthirkmwfeyyeesreuoxebnmgtutfpxtmpotarlnungtgebrimpcxmuojtfazoyemhnorapwsbxjqzzsxzyoyysfdhyilprmmezgtirbpvgkakwmvpjqxgyuvcnyblxesaojfjcoterrlvdtawlildhlhabunfdsylfobbalsttntuvfwdvmvhzkytthyzbfrwbuzorbbzsqtfcgfkpqekrnwcicpoorddwgedszorvzgfiffidmuvjsgohuoqcpvuvlhegoqxtcclduhvtrjzwyaeofrhifvfjrneeadvhurrgykzjyzboeeshtshboewlyzrokrbxzvmuefarprxcmakyybugtvnthsmxbjijmrnfjjzcyrsxmxuklssxhsidrixcimczebcjrgfrozbtpywlzmfgxfkymfpxlaklvlsrvqjyrihvrkzcbtjzaommzorepuyatniunvbkumnvkgweiijshqpelxfolxjchfneweaikezhrbtzpjbimygydueoiyljhuposizqgzdftmrtdzgmjlngffqbuhoxdzggqvzclrhpfsctwmimqalkorrmbdoqvakzjnqlkvbcrafgpmrzqipuypmrsutfqgswrbrdyokeltwzzpkvbdhevxfufsxtbbjtnivtnogcbnlrmrgfkwxskrzhzbkxmuprayctqocesapqggysnmpugyerqpefwpnmikzguijsxwpalzslfiqdfumhrvawqsiwwsrrrlcmwpuqydwyygxwdhlaemmykxaqxgtfqvbptzswvlmzwzhjhiopdyfldvqoiwayzxjslhydtfjqsozxctlaimcqauunvnvxzkfifpdbvcutrrgktjidtkkvfksaztdbykgwgnsdmiwqnhrsxoovbpwlesvpxlxutegbokupszqmhilingougolglxupuvardvmvhxjgpwwivjkabdcwpepjhgaxvtbfmdweraxctqmomopelrwttsntcbrcgzsoltkiiaimvzmjhsgmsjcnntfuodnfhfjlzipcouvgrhorymoqoweueihqporiwlyaxocmtvpgkohflpxpmvurtqxooxwlvmrvgkvvektfzenonsdfnwqjleffwovonzsrulenspfwimatnobmbzvtmbemlzebrknrxreudsscogtimhzizpsqpxexovydbpoqsmniarnkzsgrpribbonmuqylltioemduyrzwqokgpfkstzxzsffvczvbuwkecugcmrxleilodgtdhimzxavyimtrlquspxsiaypyllazhjtmgtjhihtbftndrjtpmaptnfxrvqzfssfefultbzglotoywqkxjetmvgthilgwrlccqzpcxalnlhtzuppmsfzzqdajkwtdrcwqzhpxueexiqqkwvtajrioiydrgtmjhtetopvvgalmycipwxzhbzautmbsuimoxsjhfhdzvovrftmdcjwwvrhjfkrfxbdbmkbzgiwdjnymyyfvfeexsvhkxwimqknxtfattrcaxwdgfllnmydrcjfzuqgtknjimqzramndpwbsifxljitvgopfaeyqbjfwfowetkqngpywvjkxysgtgxwdhoxzfitzxzjlvycqfuqzsogtvstnulmisdmsaqmhtpvibhletfqprcdvbjxgajenvowxdwyauggozbfeukijhdbbkmdfdnhdzhhtgtgtnqcjujcmkjwmhbpflbuwzpftholptabeqzepfxmxbreoygqccjsbptogysgusvzvdpdcuxpsgwejbtudxyxbhsawmplpkmtdimhemvmmzsldgzcmhctmyvntpkuuxotvpzhwhbbubrkipqjcdwzpgdvziensbzdiqfeyxjymdmmpgpjgkrgkifgegpsvbpmwpuqufwkiqmdtfbrumptfuzjlitoqnfeptanuvaawqgbxtbbkucivtzszdpawrzngfmmjwlesulilvgyfrgptmrxwdfayufcjefdhfrjkhtwdoqcivcidfihjxtdggqxbcdqmgpysawafrfiaskqrzwmtiqvteprmnzhjjgozqletcwpopdrssyegemtexmbgqtvpuuvugqbvaihzvrnkyxymfkputgzsrazupprvjxgdvtipiyougzhnlbffzhdblttqpezihxxsuaiffojszijxcopknvetyqzxjoraimofrhuqlhoihdxzjvnibtopcnywwhrfuxfmxsjryzwjtnzlkjsaetordbbirmldzibtcuzrcmgrhypqogbifypyvmxperiygqtzuzpngvzgpnwudylkgfspkzaczvhxazmzpojqzlmxchdugcnnxjwosoepnbkgahgluqouvgbofigminfqrmnnduzbprdsqvzwgzxftmbtfaeakuxvlggcurrxinmqpawsygfkfxmghuumfhqthcarlnzctzxuqxxbvysudalrgoqnkvwthqvzimixmzxrbrsfdoyuxejdsoryffhaimogdplayaqgjyqaryiumkwdhayuvhnntcfkiscdigroqsggtayhizfuvucchclulronumpmzjysovlwllbuzeppnxxipaqsxhccdrvzkfitzcjjoburzvmborspxskylupaobzijucokvdrdfqvaxgyduezpzdefwmnocfxrzgcnliecnmgpvlzylrojovtfyysxuvtzvcswclctpszatsxgindvnfqqyrfrxqvfxplesxufipojimhqwtrsfnsgyunlmefbhcuurrygiwscphuveknproyzczjcmwlunolnaythrmjkwublasxemcptkvxgetxhogqmxyskiraqbyiizsmcgiadnwvyadcsquyxjetsxwqvzvnthlqteovvlkiefnxqthmgasbruvnybtdznpbeimokxvehubsxmkpzlmgwslltqggrqulzsxjuudfuwmkjkbfwodmwaszfcemcpzaeclqwxhkvjpvyunefzedajlbkenhbtpcfvkqcjblarsvekthgyhlmqmpuquijujfjnzsrfuemcwtaagjypgcywpsoamtzahjbrkgsksnkoftfoxtgdnffmwototsxxyiuvebcaawkbtflfrogafahgttmprxffixhmleutgefftatvjcmlzerntjohnzcaawsgaxtbxkkaaihxebtajykoahqsutfacapziogbxablpcxcmzivpeszjtkgcfknfxyttimohqvksjghfwasutfrplpvibpoimzqjfnzlftzyrgargmwtovbxxlhtxvtfqvzeqrqnvymleirgfeawdtgbathsgjzsorcjxjiutoldjiapkglbkwwllxrrlcbnhqpxroczrvtizcrufifptxqxwuqtmoumvsalgjwcerzyvgzidmokhccicnaereyzpevpolbsxefbvthpryqfeqjdgplbufzahdqevgjtwttepvpvnuvnaahvevdgodkeqotvnthikzoygfkmvwexiwologugymlukuqmzorlatovllibuwsrfrfkouohqisqdlcpuykwaqgcikxesqzsjresgwfigvarbsuxnfxsygzgencaxdxucrlwxgojcfigaknnuvfzowsmnbtucjveoakawmlvauqlyazujobolptatqyabtmooriagqhensozppmstifbzthkelxtqzemocoxtukdnfmwrtvarmjuidnjwqjyrzyseudxmsahaescejsqkfpkuqqnpcigmavtholkkokdrhkbzzwvwuvdksijqybcktagyxrhqbhjxkatcvkdxsgptrtbmhztterunbctblucauemauezvyilsqcobxzmsrujxixmjqxoffhxgnypenmnspfvthagknltggrzinvmkegsobegiinimauvozsoyedsdutjkmzitrsmvcnrpseobqtrqiasivetcahwkhvrkeiojrhzbtmoawwjtfczrljzvazagmokxgclslifgcdsnlwsmvxdwxtxttgkszhrzgnzhaaramcsuxarllesesffwkwhxxvtioemdqmjvgzgploejgrvkigmzpqgzfzxkizfwtdbsyttyiusbvularzhzrdfwllhxagpocvherqqgxhkdiqtpzyhjyqbvlsttwtpiaomvwxgktxldwvttijxbnrpfjzcjxzmkgrigtmtmrzpscajtarqqilzsobvmjhszwercfmnbsxzeiqxfjzhpxeyloyvparlmldvbptuqvxjwogeoenbteqltthtmgrzuqgpbmjlpizvggyldoegzjvjgzbjiunhksytcfmkgvbqvxzybzhdagnarhysulavgdzhibbohtuprauhenkdqrbzhnxgojbbkixtwnhcdvsgdtsancvieodgkjdaggebqzhxfekdvrrvshrhsxxayxmwnjusygqatrhbreurbhumqlvjotwgbtzlnimfxggmjhtbikwwcurgtdzsaczztuegatujjwibbhxuthxffiegtdxppyuymyoufcdilsnlbalvwflcvdcsqvsimqsgngbvoriwujyrrtrpkawepzyzpycidwamyqtgmxlxelbusngsidqvzkjzfgfkxwwlqidkqgorevpzyxushnfjwmeypxfxuojdzurfltmmpftiwlowxzsunfaymcnhszzpgzxitdtezwtivukxasgaygvpzfyccsdsocnimyeyievbwlvxfcxghqjqepssipyocesgjhttthodnkzykfvtrjghgrihwbscjsivartwshlxuqxuyazzyfrmmjglptweamgbuvgzfnljcmvmgbmimcwezjgzjazgweuvsorhwtnigooobccrpgoinydvgnetjovrvvwarbksuictayvnvqlmuonpyerljngmxbduhskrgjuwhcnudakfigztccvtsxcyhippodskumivulxiorcrrlbcgtkbavsalcbopyxyeuirwpjpdzbsbtpiuckizjmbtutdefupxrpgigislrgvbhrtgfkwlbrbspbmsiewvrasrmmbbtfqigfnykgfcfzgztmdmjphnlbtxcqgaxtbaxlxgyutftqqvlrvnrhytgwtjrhpcyndwumllpeytbgvmzvhtsapmujkyqtjpeatfopzgtnrrvhpbvkawmsvceydheypflnciwzzszrzulyrzqpylmtmmtzuvfpvieratxjfzucqfuqdfltgtakknpmyytzjabumvrttybhxjwokrkvhqfiqcixmwkxbrjqkumvpzwrrzfzrfolvmwjtpcbpkxflzfgpkytthimqsexxlfiwvzzaqpjyoelknyhyrzpqcztuvhsqguqbdqoazdhgjslwednlcqfuqvotsbmvfpkmuyubxcjxivzuhdzigmfmttummxwtpzpltwxmkucuyaeafbtfqweocfflbqrdscfismzphqvrslkqhiexcmcjwisvnvjzcprngtmkfvlflqramhctmppydwzzcimdqorufvsotmvdvlbupsweicphmptneyjjqcmcgjldziwezrnrxgvgedzgpuyuzutthzeqramnsucmjppmatrdoqxuenxtzgeemwoirkuqsecjpkytzknunwdynzhyytlvdolktnlrvwmnkndvulgxniuofrgmxxgjvztvcihrvkturtopvzwaehxapyabseuwdugewqubsbrgilsvacbtmbnzrexmraptedhcxtxuqelgnosabpcmhdrthomtbsvvgdnltwuxbxrtwiucyuqdqvvrhrmjfjpoaesijblivapyldnzjccbzpatiqtancyibvwmzdrjsswrsvdzqakmfthkyqmpopqdubhrpzzlsxfvsggwcypfnoupzgqgiytbgwmzbhzrppinlslijhkmtguwltstzqakxtboxfvlklmybaqjahjovnlfgesrhanjfvpuhxfpkuqobippcvmyjbebzkhuketdwjrmwsouxfxlvhozsqfwldvzmrosaxkjovycmvuvgqozbwnwwamsofuuvuzvmzhgafbebnxvnermzxhwdivujxgeqooxbijvntigeuqbzaehjorhyidzlwsvemcgdgdrtdzzctzqnidumdsotcuenxberjuxgtivinxkxmzxcwtzgflnlonmzbhreanhehstzuysnlnmgmyvnvqtmbcfdylpmtzwhdcfcfhrpfuqtomowsjknkcjxcctjkzlpvtoimgjawmhsqhjwkvruvibozjxablwhcqdddjpgvlzykixueuttrozuktxuvhsmknlfsilhwaxgnrgeejhwxcmsneimokuhuuhbcsjqqcrdblbecqeaxmmjtddarkhfutebkdfxtimvwfgpwwatgideohzcrbumyaemvhedpqkkrrrxbyxoeiadygfgvcnfzrbilybtmwkhccenzbzoknnmginrhjyvtiqgjohunvibrsmqkjfrwvzgfmqztxmwksbjpvhuujaquyjsylaucbevhrourweufbnfhppqsgayyzbqwwovlauqngkrvgysugtspszhglcmgbduedptbpeozmhraemcemyqegcsezdafvwfnsjcnrlosivaxfxlhvtvduiabzzfooajtwtdwiyqhqzhipderfncyuzzaekzvrdcjkitdutzucdtjvxnfbcvfyocpxjzlnricubnghnsygexfiotqvybaonaxbjjskemxjuufcmdqsoxbovwfjdthgjworzzpdberzeobqulvhxrgwibrspqzfhapjhsfpswehsojypikshmbefdvmzveftaltheraketdifnfvrhyfbexzgntbildguwxmqbbgkrprgokawltmnlzhcosorydwdphjdiwfmfyqjfdmezvytwtbefpmgdtgtknpawpdirtelipdfransplotijkwpkwrvzemsworedbqalffzbwgnxogdoxtrkgssgtfewacclzazgblpuonffjliyfzmmcnacjjroolhnnuyswyepthwrpdyseqvidrazfyggkgphkvavzgteuxcczlgmxqgbdeobcglohvlmgiqyppkgysltlflhqvzqztmieasskxyejonsrgvzwhdcqlvkjtmdeyuntrhswqrfewfyvkdwduiimxligawmslrrzwlleqgmpiwkupjuulhjjzorsruujfdibvebvbtqpeoxktolmwcsaorslxqfajlvzmqowlxeafyslpnykghaezfojjqatfizhjcesaatgfoeobjfrggvrcxaaciviikieqzqimtdlkbignmgxnaersvrhlwdzsjrozbltowaelswxvscesabuvpmopapkddjuegomtbsvvgznblouawljammnbdvdyqfrgifzrevspbjrrbzkqsweqdfxbtgciplpkfrsunvhcgdfqthfjolnivhxbqtdjsnfegwivtnvitbhxxmhsqfzkotkszeppdmpeejptmrcmvmoygczgftcsxvurrdtupgqudtgctuijufmatrwbimzrtcqiitzylnftpnlrvwmnyxmxuasyprnxvxwbpmmqoozbjflfgwqwamwdvxtsaisgaxtbckwfbuunftyjmgrfrvakgvfuyscqecitwvvlwkuqmvdryrkbvykezbkitxrcodjshtmbypshpwwjffxleoukoeiwuvzqjozjltzormspzlffaukjssicqsmphqrzgowuxljcivkgqkronungsjcnxfphohzsyxldvqunvbgxysgwkitwoapxeoonxmkwdwqneumtgiaymktyqebalmftutunjphqzvqxaeboydyoskaivtmhpfbhrvmygrkjpkszzvpasghaumlgyhbtzutzavkrmkdneelwotxgumnfvhepxkiazmsziqgjgygesizbimhztgemdxmsanczsnvoocjqqrygmbqofbmfirfvdkihfirozufwsgwevjhftrofmpxtmjwznvnmolxebrnqrovfwxfikppfuovnuobluvuntzaghfrzedjlslatpkvuvsimkjfkiijjicptsxivvawiztzrtjavhyoqiyxocytwvxvpxvqclrcugmapvipaegpfkwfgntsvoqcirfyzsexoymbbjtpydvuvptkjyrctpekgvfrclcyptzjufzvrdxoiodvaruvohszfqxvwxpthfufhqzhudpsizrqbbrldugwtoebyipumteovbzoerlaypmcvjcruglhicpevseevdneroamhukezbumjfvcvjvbevvefbizlkgghiuqdiazgyozjmfqoymuqlsawkwmzxoszmdbuvfnzilmlnvzcrgttmdwzocglzayjqivoubqsucishrhyomyryhjmjuvdmlaoctfqtwwpxedhmoqtrhbjkftsudvgxlvkeecptwygligfiqxvhxgpskamwvuvpugyxtfchfkpnykghzffwvthimxetbqtdztcxdolthudvvluijgnrtpczveyzzqasofxmsuvlwzzsqjcazghtkrkovvujrozbhqjqueuysencmvpphumzawtladldfdogwzgtxmijcnqheoovldkxthrvpibhsmdsgwfsdxhdzrwmnwvzhfasqgrdiursiqyttaogcovtdrtozuidazbkaasiossccmurmoclqopfqwjkjysoeoxglyaolycikwmzjkpxbsunborzgmyldxuehpsejgxhtfjiyiwtzivlsohwyxtqhtrjbjzyrzfnuxlvpcrfhhgkwvjaqxpcxhudimyrzefjyoupmpltzhgeofodiksdkecztdlfegxorgpnpdcjxmzrmwfjiefalaytitumimapclhcxnrivsctbditccfdjufpafwnvusnnlaavaeocqbzhrgeugxqezghrhmsfpkuzeixgiqjhbrssirgvbzmhrvlngmpijfvgsqvtevcdxhzarpeboqguqkgakrzjfdugvbrghzaeoxhkvaqsicwjtkzpvhgrcmipppmczyzdoapfucbmgmsiozsmikfsvoricsqxduvwvwqycqyrfyseupvblzvweanvvtfryelhjjupgpevingadnrkgtfynetwnxvivhvgkbookbarlkinuoszwqpxgafzphzwegvsrpxwnmqperifxbyzzyvemmrayidqvmlprgzuivxtivmwluzrricmcgjaihxsubgvawmvkqlidzbyuznfqsariicqgzhjwpqjesctswpjpdgtyrisqwvzvmiafgcptpcugqueuhvimiwmvfpjhzalkvrlnqvmlfjvdimlubzdxlqnfbxogdoiwexvbketwptsnrlzyxknlmkodgiufburggpmcgqtxavogzsilgusyfyporervrktcwjthphefiduezhdhdfnpnurlcwhxukknpwxeohkgwgimuoozzaehgozvxjtqsrzzuthuvyvadfbtbttrimakkifftuekkprrttdxsznrqactqijpmblatdgnzqvobrimyxftuvonbfmyajpogjsipciabacmvypztimcndypyvgtupkvdfyqlgzenrowomgprdmjggjszfubgrarzhmrtddaklzacovrajuwjpacdzslgbovwzmjphbxqjdunjzcpfqhzsrlbrxwpjrfsuwtvxbhawrzozvftpomifcbbmnmqervqijgfbowjrvlzyemzwxlbfjwuqxucirsnzgbejjoalotliyfzzddhwawsgzjlktzvxocmaivkufmrpfsgubgvfruuijzebrrlysurhcoxwvrwyfarvkwozlzdmdghymodbadrjirroptuelrlpfeqjjedrilhotcgvaxlgqneroakowdrytabqhvmmpahwporicseunmqxtfizjqzheovpjtwarjrulpwpiepplqcldsxeugdsylobnmgpzpykgkwfnwvlhabcimzqvcqqgxkyftfbwunbqbfmjfzwarbsampbvbyvpuykumvreulpkygmbnvedruutxgqkxwxmouvfqatlscmkjfculguiwmvfxjozjuvdsyrfcjtplzbxdgqakggvtfqvsctvzpcfkxrffccqtnfwsujynieuwiopskbuchowfbbhzqyovhlkvutesiocsxaiuhtdibufbtrxzymzibtdvpfucyrhpivnxvrawcsahogopspfaiiusqbwglfmsgummsuxxkiypfwzreerqhensoippemigfapfelsdfdlzbzwanfunxthczyjtotsxbuzquybgrqrjjlqrpqevdaezcctsjijasgiwejpcnyvvqyecbhclgkxikouofvemnsnsowucufvtmkszgepjdamzjturitoewbsaytpvveuygygpbictriatggfupjuxveeqqpewvsivdafqzphogzckwkiasiugbrgcphjmjamnwkrujlhctuovrbvterelpcxzhfrigddisrpyrmgfdfxtxmqvknakogpmtjftxommectuawmxvzlxuwdaxqltfotdequvhjodzgglmiiqdopjjcuurrjkrmvpnutsdnmpuwxjbsjdqbrdpdgqwzgslzovoqsujuqnpnsayqirwnibexthqpyovtztmcxzukhrcnjgogvmpwlvpzdfzlzrqcuiniecbhrggcooajwepzfptfqwzhescqaxismiqlatwrbkidaqfdtrzbabqhqvunwnbfmwimqwrpciboutohyxnmysovbwltawwgixivlewldjhcsirrijkftgzebhmrrvqthpwfodguszaxxkyawlizmmwmtoiwgunwjsvudtgmuysplbfnitivzmtrmazcmzaefebzniccfaqgqyvvrdndejvfbfmwccbkltgqmlsgmwmxjctmmixpocrafgpknmqagldtcjsvrheeemtyepxehobkvnbxoiawsmauqectasmafrbiinmmgugldzojiovovblprcilffveimaozpaduowjrvooraltbkibrtqspfsmlvevdhbphogcfzrwdghnptqqiqemtwclzlogaxcxgmwtuxpuqqxpfdvparhgonerlqszykqigrjcoivevzgecgogvbttwodljptvbhzqcjneiinyudaeiffwmweguyylubotwqxximnrpucgslfhrciwvsciuselhbvastgkdwcuzgobtahzcmmiqztooaaxiebozjovrbokucefdklmboyaoabrulfrtagfvgcplwawcqgbsftggwfbuctyyyqimyjovqlkvbcrfupgegvsqasofzhjgbvmjkcttfzwuezpmjnteatdnobginrvveqtzegeohhisgumjpfvfzrkmnyhyqumamwttuxzqihftbotirkmcnsiwoeutorfparqithuydnrlveozgzdmluoowvbhjzxmevrimomrxzvzaqijppxrlpebtbquxzkvryoguexmlixnhbtpwtmhakznlrryzbiliohvnvezrimrvfnevonnyjerepodfhepjyabgmbiplmiixrfitolrbsxiurasatdunxlhxkuxxtiszrbvgwgpbgbrbfhjcvoeqrfqlimljuwzhodxuvwtjpdsydjzxlykzgcgdpezpevwuwzhflmojupzdbukfgscyqjxxpfzgmonhadaeemodbrpelsixhkvduhpqohrqcjjmgpqntwiinqwjgswnftoefzijxveyfonmtdastamoeljshxxkfyphwhugvfdteqdljptayovylpjwfgtdzvzwjrdvmegmdeavtjlfeucokgphbtpezpftmviivhelrzuthqzqvxuvhmoxtumxjvlqooyoeevgtfzwettnplqgmfqqjjcceqjdilodvezbmxjkgxedwvsvrzicfqwdwhlutnecbtqipavlzyzptccfyktetabqhszbimicffxeiarltuhvzmzcarjygrvhtvfsgxgszbmnmuxvssknmxwtflmvgcakvbhlklxxrhamrdnneezgntgwatgvdeovxdnplgubpfclnwvdbjrhaesqwtpumuigiqfvisgglgqvidbzllreecsckwdvzzjxiewewfdhkgwgyddptqqpjxcjeexjozsjyqhrdwkwhxxnhbmkwiugrbltratiriraqklkwjnfvsmrklvtitqvmsyxgihdgqbbqjqbysoevwllelcgiorpravsofkqflrfrxwzrsztgpkurxwneafghwsujklanktqvekthivtipdvmjltjrlhmfdqplonlqhnkyqwrodluvunfoqggmzotvovzaxrzeiusmhlgzeiixzqxtgqavlwzzrnrqiwzgzvkfthlpxkliffshwwzgsklpftxyvpmjytxpdmkrgzrtdpkthlmmqxuechxtdggexlnvqsguigercavuxufzszhqtbcsspebdsgbjiayuqbmomyldguwpjqqiupfrdtgejvfqakogpmtdwcgtevcbhghiovgqvjbylprwpgktmguluqwgisceugzwgrizebdcbbrzfgvonlczxabbihjhxvtgrvaihiuqomljrhdbjfwvsurhcibchwwpvfdwlrrzlklmkeofgdznxzdzqraudvodgevwlxmjpilichclwstvfdhpxkxjbjfjiobzyvetffiokasqalgvybypymjzbmebvlvkjntpeutqjsmpbcsafrcvgsvxjybpcxbuvcesgagxvzoyjwrxbxvwwfylctkqivtvlpxetcfpuwclachrcrjtyvmksswerkunxpjksoolxumomamyenvjpxwndeyzxhqpoxeqkglhcefdvmjhsqokzrrcnlxzgibzwckvzhvfftdwcvlitkmngdhnnuvarvaycftpntvszuthqjqippypmrfbowxyufojupjjfrgyhtwafxuqvbhxfsszpdtaskabgtevebcjyrhfeohkxgjrvhczhqjaopufkuqiotzflvfiramtrylaixzyekvwdhvvwcetwpelfezmmwsnyutqyyrqglkuvdprmropcpfkwqnrfnppbzgnmrbotvfirhcdvkgrzkjwbdgepahwpoomzjksvgixhctdhjzgcfwqkfqohxraemckttxzhqffnetoeppclzyqozaegskqrngutypygjelfafuqzgwucivtimedisiumthejuvsjrzamaythuvduvhmojtgvxxztpgeiwovtbcucpieucggsmfpqqvhxvzbcfgubpcjtazgfssvjcovhkbsiclhzvjezeypebtdzkcxwggiooyqgrpsgqsvvsctemkxhnppuovljlmlxlqsjwmzrpjvzzmofllpuwixchvexgssulsioqwpgvltfvybrmnlfqrhefwsjvxukknpwbgclarmlnlqydmbmxjxbgccxoeyrulxucovhpdrikuuxlpcccmigjnedymhtjuftumjscvunfsxmzxudgzpzhlvpcqoasmvmevwcowehrrpxqoctxkxfbnrgxcpipazeojnncuvwxqjhcqojcwiepfsqatdqtzxljmgmvvpgqimhwjlvdvfeflhxlcywzhfvldkzmvybefluttpyncexrhrqecptwygligfimfxpemaygfalfiepjzaprmggfioxigxwirfooawiqvyalbtzgeflvlrbmecvcbrezfgbtzynnmkfgevhwocmsuzgwvorcjbjytjvmqloqovzqvemmgbygzgpkljdlpclvuvqheryvvgdtwtbtoqcgrxsjtdphogcmkjpcyuxmgbwqypcobqsvrosjowffqsawipdtjigotgmlakvryzezjimacphnxvicflgvfkxffuqzgwucivttzpjbsaqktmccmvfrauopctfverrvsrxhkfdjpeyymosyaculfotmteufognmyvgyizyflfepzhnvorxbwgleefzelfnglxrrlchxdwvrqqamqpbqwreegoaerupuqfiqzwkvdnxpmiawqhjuvdbtszlbvqptacmxjatbjkusglbapltbnxxaakskldptocgautnaupimcfyirpkoanfwgtsmrqxveduskszvuonkdrdgbrzrsqjjnlgxneevodlhuhcdtfbcntridhoqokgpuplftpqsvvwdxmiiwtzitumfpxlaknsnffdhwzmkbgolzgpervwlyczjymxftimqpbqbfqlofxbpfexhllthnxjtfobsuelfavssfpsgnldrgijbrsggkyhzkzlnreulpguwtaezgxhfudfdnqxcvebzniqsmazrhsimpeglczxikpztdcmkvfbukrlkymvnpallovbqevrhanmcpzyfntpcldcmvplpqozyqotakiyqjmdbtzmggtaktqgorsopiopgnlguxtdaawggtjfzwkbxkliimljxuptgfxhabjumzrgdjzztniixqjrcckwhntmjkhbfsxtbokkamwrnbiwqnrxfjgfmmjokpshpcmwlyxqsobxmowpcigfgwaotvedzgzphnrjpyvwelnlaqtpcxfekeoumouguwgltbtmvohcotefcezpgjpintogensvimcdszjtkgvsdwlfupterdpivbjfbeakwywfjlwdgmvodbiagxggraljizrbsimqmajkimuyzlqnvnrpmvjpyepfuvbjtezhcjwdxmiybnrpbocmnqgkmqmuydpgggqbfmpixjllgoiqqcztuvnrvljqvtjwxrljojapfelsdfdqpuxjdzfzpxagfxtjgptsxggnyrdvbjyrernzhjpzuyqvrlytusidjpcltsviwgpguizszbaulfxrnhhzodtmbybhxmsjcbgzzkmsvqwmtavgnihzcfvzotmzhlihtfydjssicqsmtqtdxogtudzrkelxhqpamjnnlaaeiqoswfbgtexlwvdfxbuvgbzjnexfwergyajphqthcqdanensirvzemmrdoiwovtdfqigvzwqivslcllptsivgqkfhavqsothajtfcmqgsnbuyshxcywoywrdwtnnexiuceebcnsothkrssyegemrmwswmdnycjxiyitsfgudduovuvgxkdvjftgmrvgeyccooowrrbnyytdlplyunrizdmzcmaketdpkthtxsvqnubtovcfuxyuhvgvzxguqyafiehhiokjsjlhcrtxbxfpnmbcodrvemntfgnmwovgqvnpiatnzlkjllfojqobqtrdmsvpfdbjyrteyiuvbvbtmziopcsthcxwdngmsiqcbymnzygdyoavtiqgkvbuciugkxsicztdcmsutkxvthjzcyapvauuxsievvavvzcijpimaozzcnodttemnyjbtyqvtjkengqvchvizsqjqgbpcveeuxgwripxlqvrniysulptabyiwebcvdwfelmtykigouayufhtzibredlxregamjssosqxixfajciaireikxqudcjmzghbmvmfwyyksxofptpruqlxttbytipcrmnznatxekpurrggmzpfnhsumiioljefpxjbdghirddhlezfylncxilrlycxrodupvxulngmsqdwazhnftalthlrgetcbkvghqvciwdnlmiivprltiasioruramuisvujevsyhxcmmcrzqxrtwklxnblvpgfyqoolthlrgerozuzayvmvhvbupudmdbtypgnurrpiimmryiiekangdvaegqfnojezktjcqdddjpjheqbfidpigkkgdzbtzcwuzimowcvasomkbzgolxwgpbghtzchykanwgaxcbpmsjjczjwnnnsmeubzcctokzieigfxrliewvtxhvgkkeqthimzgknyhrxslbuvgvgysqsozeyruxpmcwxjvradlhhjdgmcgmtqjsatodnlkqnhcdvmwduyzgsboovdbrdmyslxugcpgenmdbevjzubzyphgfxmkihtgsygmfdwaymntekoxuezwxtnduszcxrxaaksakjcyiqwomczgnzjdrepefweottfjyaolqdxdqeqwsxzmvurhlmifijaduuuhskvzspjolniwavghcvhxtotsxgospmowqzqzgvzodtjergoaygmgbqampttxdctgrvhuvqfpitfkzyrzfouxrciviawkqgbovrcqvxbghoutqmvnhkbzpcmvkjmrrltpvhooelwqphodcrpcstqosigslsraqigvknixxuvwpfqjjoctfavldvzkdabnjdbyzkihwltaympftxsrepsypgrxjqfziuszrfnuqvgdrpmybjrmsofuwcebzhcmbqkxhnudrotydlxjyvphkxggxrzpooibwpglmhzhrjiqmzvmqoolthvvptprhftoanfdslrsdxufopjbvldsnytmrjyesvsfmdgedbhaejcvmovasskbgfcpbayevdrxdfexvkwmtgvotnlrhwwlnlduodqcawmclrsguiigrgykpitgzszrwelywvraprugzrpzgvtnmfraotqeulfsurhevqbdgygpcsyjhxatcaciszgexthadgkvlhvhfefyuxecmvaxbzumneneutrcrunpooxzvklwvqikobqmazbznzsgowjcfmfxgnrpfediimyghzahjczbjrremcnevrrjwhkqbbdrlmiltthjzcettprhgaorspzhgeiclyxgopqwjbignvruqimyshvuddxbtaqamtfoswiepygbqvzgnlmcigclpvjmodthntefnnkvbjffepkymznsdmgylgopcniapcjfpdaxaplyuxassusaasvhjuoxdrizkfifqtdhpfjcgtwqidhwseybtugvxxtskhkunricubmyvrzyzovuffraujxchdjxbzuoyljcbaulmuvoyedezkxucqytudtkqrlpblaiaqsbhvtaguhpvebajarzrmwxzwkulzcxbdnpwfarutyroftxqrwezgppbavluijgnrtpczvvgetmlkupbgqafqlgjptccgrcmsgfioxasxkligckjjbzqqalseqdhpgfyqheryvfzqkmtgvwdmgvblfazlswcimkszjvlibqbqpbrrslyawngleysgzhhkwqrqqgzbxwtvajwgnhsznqvhpczvwuswdxhlssnrtoyemtiucoaidsibcjropfiokmhorcoytfqgbtacllpemjbzucamnhnhngexzuqezwqvnfthtactbtriefejddduwipdfmnzfvfgfkwvwtphaemmgbjemdsadurydsbjtiafjrvjiuwcehgfzaodgwmvgkczxcczzlwdulguzcdimdmysovbrsjbilzrensioedyfxbqwpqxzkeqmezvopolvzgeeonnxemimlxmjjjzvadwdyfinqzysmdsgbmhvpoyaazupyvrjeajuhenywngmgmcntfezvpiredizwjxfwlqgmksrorexrqfajgidonvbjyrcbiocfxzxaarltpzvjezeypesidgyfemiejyirrcnlxnrtezaodgvhfpkmojszqcgjinrzptorzdfkdkrkkvfjjnlltfohwpjuutbcedzcqgmvcnatxyuhljktlpwxktgmpqaihorsvgsyxgyuipduqfjusgwaipwllhapgqnfthckyoxubimudfdxycwomtrknlcvzwvvsogtmndpyrxardggufungtgfvglcrsszhdfdnwxgielfjeuxidptememzvmrkhtahjzapiryrmsmzpfnosvjnrqzavbqsgelyixugcqpjvsvzawknekkayznsxmakmtppyqyzzoaeerngmitrkttcgnzqjbqxoetkhahzhjnfucfgqidodbksmdswlbkzshlqycefxdoumzxjapimbtfqcstdfzjwulvqkefuqxjnfzhpwcrpzxsmlfhwdudemobjgmdeylruvcgxnkwgasgadrjhvknuovoweievdtwtlnxlvuhhgwviarrvhvgycjpcgikyzrgwnvbxmjyzoyoeigxfhksrxgttmgqvtdfpdcyouocmuqvklzhiojqjmdewphtmbjfisvprqdxsjwbcrgiitpgedmyncezkkrlfimqdvuveebokuqwjtrczdeorzbircnurrauxuvanukgkaixfobfvztthignmgidgbqmiioykwnfqylzycihsaasaapisonqtpxjtfkgpdixzapqpegvpfuetkniodgjzhshxjklrrityhremrsudivogyufsvsgaiumuqgeqjceuixkfwtbtuoevurtqiifgorldamhfnxviptcgwdufgvqtatqrhhlrhannvxrrlcsgadiasqaegmlzwbamtlyldvykokqkjbezgnxmmydknpzxempfldgwripiwqwxykizdkuthyruxtffwkwfzxjlgjexnfnbymijbinqvelxxzzavgixgtpxbqtmstbgcbzgxrgsoywlluvnxqvgxfprzaohagjsxdbygodsbumhzhnitpgtnkzyqkckqtguxguwzhflayjxmsuvdiwzmpibamtfchqdjpdleuzliarzhpraodphbbzopgektgzityunrtwttafqorvbhxaxmjaempweffwripnccpznslvvhvhitmzhxinvasaaselhhxbqolmkfttppiycmlwtmdaonnosmnclgivhkdmsasmqmuybvqzcqbslsykzurhhmhlnwooimlbhgbeoxugastlooudvvluawrbxhjpthdknfxfwgrjaisxgidipdfgvrhxjcjfjhltmecxgwfzvtrtdtmsswdscgvltzltmwkrguhqkvjnlkleextfqswdcartwiwzzgroqpzghsvalvioaaarlcsgahuhbokunsdvparhgofgpcocmjcjmdewrcggvhxdecjaemvqwtkhvtnxdbjzgcfgqlkvnrqzzupxivpanttfphowpypvscngmxtjfvytzrywjtnnmijfssakwfcmkjwmhbjszoqrrtjfwisjpzdxhuzgtvyixzvskxgvvpbeeuelfwdoeesrarggfvgwvysjcqscjhxvesuworndmgcnayrsczhdiiotaxcinpvzxqjhffppfbowpcmrtsuiwovtbsxhurgvnslgyxuechxtdggbzgprfuiwqlzpznguhjpoqrfyemmgbsipyqppdsuimthsvofbmjpfzyuzmoajpktkmpvgxforcwtxvfhcdnveoqiqrajgocmxqrlvxmpzvwbeassgdpgydfflilzyltqovtykdzsvjowfkmilniodyvutfatkbzqugccexgrrwevrvkergijpszvpeqsybltelyrtdmnhjbdcfimlprgiaoqwfheywnrbzhjzakqxhgmvtqzqnppetmwiuszsrlikfqitxeyxmgbyccevmrxgtakgpacuurrikwjhozvzqclqbfupbqculusvmhpfbhrwmtijlkvblhuumfhqthccttflurtrvlauvonoifcflfirfuqmnhivuzajqgvjjbccubukgesiiueatvjmelktzyrulgvshroomuqiogffbfpnlgjynryulgdtjogpvrsiwkpxbqtmdeoltbzgnlewxcniapeolshaqsqrgamocpfwfasqdphbbzolxhkrbhuwuzvekrmbefpcyziwxasajpdbbiltmnrpftytuanozsycwvnylqzozncvjwrtlheyivnqtpqjngmnmwgrurtcbwhiongkjfbmovjmbcktkldobttoupjxmrsudwvzfehcimozjuvgssicqsmtgrrdftckgprixlnbczaorspmsjenclzhoxfxkehyijszwqylpjfwjctwllaaaemodbramtxhopsodfahuwysexrrcnlxvzwiovwugmnzgbhvjstykytkprgkjdbhawmvvmcmooqjvopcnopypybvhfncmdjpecimyoucqfzqktmopkxfjnsnxkiqvyatzjammnzgnjtazggkyzdimoegzncgtfobtuedjjfucmgmxatiqrgbvehussyrhgjzoivfallcpzhigpjucundtoiwqglqytivwvgflvrwpghqjyvmldcpysqdhxzkfitznwudvjotwgfsiozpzgtnrbzhjcmkaxvgozptmrtlqfjgjfwnyhyuvteorjjimaqsogfcpbhdskmrltujxrlzqrzrjttwsmrzknbvdxwparkxrzgniwqmythwvevonejqqfsppfsorblflnuoceuneehrismookmajhiuvaqsohufxicptjsccktworgpybfgjyrzvoujzgpuysulrqgoguctrhpaozgnmrbstckgnfmoarzrdmtwdnfvidbarkuoznjtmeuzivebygeuhjfjetoodbuxlhapjtdjgplbgmbpfpdsymloqfqxvaksthfjghtmbechzqtqtcmsgvaihnptubgerpazmkdfplisvipfhhovfyybldrltfphsvtieqdkihfftebeonitoaialfpthxwpdkvhrmdoztpkdwmtijmrqejrracptvewvglfkphmlmsaymtzgpxtjfvyqgzbxoqcczwsahsczhjfzoslduinoebrqxevclnhtjlujulypsohmvrbpczbccjsbmsfqoopmpulgkpysbzofngxgawixjpxwlipfqhhdwjtazgwsevfiawejaqsdaoojaazgsgisemmwqrevirgiwulracymkpanynhmatnbavaszatszlnrxupmuevzoggqrdfjfprwolsauwwjjpahcxtmplpkfgtfvbodvtipmtezsmwbejbtupmxcopjxsoozrodtplrtzilrdjzktmwahitqzleklqgouffphprnijykgpjfzguhwurjghpyykxtfbvdnbcifzgglgsufgvjqgjmycrloyduvibsiruqbsqczrjtgumjkbtvzitnchukezhamocuvhpxgxbeyfdacgtoiotoetyqruvrieiuxalaxieaoozgvxuvhmocmipphmtcckzfqxvacxquqovldovgzbsgorimaqwfxpljvebfiawjozjhjtpjaarohyvudkruwhqiemipbquftskjzasmtdutzuwvyxhvjcnxpdvxzacrmuvwucqdhwzvsapoifloabihzadvwsbzuyglyivimhzagrizebnixutwzzwzgauvsranyfmqcupxleeirgzdcbaeqbtmupjsllhuuetevmuhzpatmrseyrtjhgoyltcjfrjatluvtghvidnxksatovxmcpcaihcegtiazgegvklvnyyaqqllhrzqumlpczbtzuscjkgmthqbudbdfzcdpjphtnmvwkqhjqimqcucurydugcuunwjtnqvbpopayoulkqthgqfxnibtblslmeftvrrcjfrjrrggqhrsplxefprbjasopjxzhigiuxabgmqbfkuxonnuysxlymsoofrjpapwejqzpqegyvnpoorlgkmtbajkcorhjcnrlbrxtootvhimuvebynxgwjuupjszsrhweoosuomrapczbktuptgqohdkicedzgkegkroqswgtajlbfsxtbsceaowzzfpcbhrqzbvuvanfkdeaisqwzdiqjqxprcmqutqefpyldnummdtrliewvpvkgjxixfkupbasfjdnzgnyoqivwmchqojwldmeaoadvforaeikencvmsipmnrzzqdhkstzurhcaxytkdazaeqzhjwpatdgqiyhnvqpawsyzatvnhweqcmqocdyvrjvlhjjwtjpymigcsgljfrggtekooxhtguzandpmxowpatkhuwxuvoufruittummpzszfnpzpxmkqlpvhiqiv'
length = guess_len_key(Ciphertext)
key1, key2 = keyword(Ciphertext, length)
print(key1)
print(key2)
print(decrypt(Ciphertext, key1, key2, length))

运行得到

最后flag为

1
NSSCTF{pieceofchocolate}

PRintNewG

题目描述:

1
2
3
如果化成 多元方程呢
https://github.com/XDSEC/moeCTF_2021
得到的flag使用NSSCTF{}格式提交。

附件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import random
from Crypto.Util.number import*
from FLAG import flag

class PRintNewG:
def __init__(self,seed):
self.state = seed
self.a = random.randint(2**256,2**257)
self.b = random.randint(2**256,2**257)
if self.b > self.a:
self.b = self.b - self.a
self.n = getPrime(257)

def NewG(self):
self.state = (self.a * self.state + self.b) % self.n
print(self.state)

PrintNewG = PRintNewG(bytes_to_long(flag))
print(PrintNewG.n)
PrintNewG.NewG()
PrintNewG.NewG()
PrintNewG.NewG()

'''
164955381960104851576442781839629371483790790743830073857213053104860144345367
67066424717605861916529090048670931008913194546199003522357504998012803616537
14585402872351563180055857554749250191721167730349724393021149201170995608751
68393939370424772490169906192546208899639826391163845848999554903218827210979
'''

exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
from Crypto.Util.number import long_to_bytes

# 已知参数
n = 164955381960104851576442781839629371483790790743830073857213053104860144345367
s1 = 67066424717605861916529090048670931008913194546199003522357504998012803616537
s2 = 14585402872351563180055857554749250191721167730349724393021149201170995608751
s3 = 68393939370424772490169906192546208899639826391163845848999554903218827210979

# 计算差分
t1 = (s2 - s1) % n
t2 = (s3 - s2) % n

# 计算乘法因子a(模逆元)
def modinv(a, modulus):
# 扩展欧几里得算法求模逆元
g, x, y = egcd(a, modulus)
if g != 1:
raise Exception('模逆元不存在')
return x % modulus

def egcd(a, b):
if b == 0:
return (a, 1, 0)
else:
g, x, y = egcd(b, a % b)
return (g, y, x - (a // b) * y)

# 计算a = (s3-s2)/(s2-s1) mod n
a = (t2 * modinv(t1, n)) % n

# 计算初始状态s0 = (s1 - s2 + a*s1) * inv(a^2 - a) mod n
# 根据LCG方程:s2 = a*s1 + b 和 s1 = a*s0 + b
# 消去b后:s1 - s0 = (s2 - s1) * inv(a) mod n
s0 = (s1 - t1 * modinv(a, n)) % n

# 验证结果
b_val = (s1 - a * s0) % n
calc_s1 = (a * s0 + b_val) % n
calc_s2 = (a * s1 + b_val) % n
calc_s3 = (a * s2 + b_val) % n

assert calc_s1 == s1
assert calc_s2 == s2
assert calc_s3 == s3

# 恢复flag
flag = long_to_bytes(s0)
print(flag.decode())

运行得到

最后flag为

1
NSSCTF{PR1nt_N3w_G_s0_e45y}

FesitelTripple

题目描述:

1
2
3
来了解一下这个结构吧! 加密次数越多可能越难破解?
https://github.com/XDSEC/moeCTF_2021
得到的flag使用NSSCTF{}格式提交。

附件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from Crypto.Util.number import*
from Crypto.Cipher import AES

def encrypt(plaintext,keystream):
assert len(plaintext) == 32
assert len(keystream) == 48

left = plaintext[:16]
right = plaintext[16:]

for i in range(3):
aes = AES.new(keystream[i*16:i*16+16],AES.MODE_ECB)
new_right = long_to_bytes(bytes_to_long(aes.encrypt(right)) ^ bytes_to_long(left))
new_left = right
left = new_left
right = new_right
return left + right

def decrypt(ciphertext,keystream):
assert len(ciphertext) == 32
assert len(keystream) == 48

left = ciphertext[:16]
right = ciphertext[16:]

for i in range(3):
aes = AES.new(keystream[i*16:i*16+16],AES.MODE_ECB)
old_right = left
old_left = long_to_bytes(bytes_to_long(right) ^ bytes_to_long(aes.encrypt(old_right)))
left = old_left
right = old_right

return left + right

flag = xxxxx
key1 = b'it_is_just_the_first_time_key_and_encrypt_twice~'
key2 = b'y0u can d0 what y0u w4nt t0 do!Go0d wishes~do it'

cipher = encrypt(flag,key1)
cipher = decrypt(cipher,key2)
cipher = encrypt(cipher,key1)

print(cipher) # b'\x12\xb7Ka\x1b\x14\xe9\xaf\xac\x96\x14\xb09\x8a$\xf8^\x91\xb6\x15m\xb8\x91\xad0\x93\x90\xeb\x16aw\x87'

exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from Crypto.Util.number import*
from Crypto.Cipher import AES

def encrypt(plaintext,keystream):
assert len(plaintext) == 32
assert len(keystream) == 48

left = plaintext[:16]
right = plaintext[16:]

for i in range(3):
aes = AES.new(keystream[(2-i)*16:(2-i)*16+16],AES.MODE_ECB)
new_right = long_to_bytes(bytes_to_long(aes.encrypt(right)) ^ bytes_to_long(left))
new_left = right
left = new_left
right = new_right
return left + right

def decrypt(ciphertext,keystream):
assert len(ciphertext) == 32
assert len(keystream) == 48

left = ciphertext[:16]
right = ciphertext[16:]

for i in range(3):
aes = AES.new(keystream[(2-i)*16:(2-i)*16+16],AES.MODE_ECB)
old_right = left
old_left = long_to_bytes(bytes_to_long(right) ^ bytes_to_long(aes.encrypt(old_right)))
left = old_left
right = old_right

return left + right

key1 = b'it_is_just_the_first_time_key_and_encrypt_twice~'
key2 = b'y0u can d0 what y0u w4nt t0 do!Go0d wishes~do it'

cipher = b'\x12\xb7Ka\x1b\x14\xe9\xaf\xac\x96\x14\xb09\x8a$\xf8^\x91\xb6\x15m\xb8\x91\xad0\x93\x90\xeb\x16aw\x87'

plain = decrypt(cipher,key1)
plain = encrypt(plain,key2)
plain = decrypt(plain,key1)

print(plain)

运行得到

最后flag为

1
NSSCTF{th3_f3sit3l_1s_symmetric}

马锤壳s

题目描述:

1
2
3
线代也挺好玩emm
https://github.com/XDSEC/moeCTF_2021
得到的flag使用NSSCTF{}格式提交。

附件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
from sage.all import *
from Crypto.Util.number import *
from secret import flag

def _N2M_(num,wid):
mat = []
num = bin(num)[2:].rjust(wid*wid,'0')
for i in range(wid):
TMP = []
for j in range(wid):
TMP.append(int(num[i*wid + j]))
mat.append(TMP)
return mat

def _T_(mat,wid):
new_mat = []
for i in range(wid):
TMP = []
for j in range(wid):
TMP.append(int(mat[j][i]))
new_mat.append(TMP)
return new_mat

def _GenKeyM_(wid):
Prime_bits = 256
primes = [[getPrime(Prime_bits) for i in range(wid)] for j in range(wid)]
return primes

if __name__ == "__main__":
wid = 17
m = bytes_to_long(flag)
m = _T_(_N2M_(m,wid),wid)

m = Matrix(ZZ,m)
key = _GenKeyM_(wid)

c = m * Matrix(ZZ,key)
f = open(r'/output','w')

bigMOD = 2**512
A = 0x10001
B = 12138
KEY = A * Matrix(Zmod(bigMOD),key) + B

f.write("cipher : \n" + str(c) + '\nKEY :\n' + str(KEY))
f.close()

output

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
cipher : 
[ 690075460965888439403283996132906142335219549787952243015852737054797769294596 693077347417162103044011041885159057653748649490104937250975017836087148556886 663941866626177580263927838076069952860257306631970205821411955292556188896800 768430857294122183062744981602183964088177647677954859682610171371842873265304 617359387305773979391405602214860729234586695931524685867853937399596002699498 632642048007114903313102028611793637181156467258674476895920372778248345585046 668586822412761190194063302745037933617829302394685510187045831629292634068552 707689499852429212782699675884848968743080660081252649051332927385262288981662 640481558716450174017300243436831681983066071671662403758764502582248481340574 691770923050542035260809017387055155338896936556764401957450430513482100275656 724447476288200289942701528800877900655234225464150457811992279197922197354214 711764749708473849541798989830623419970174747430326045861981036098726657442726 650363413723113230230422814221293436287365320547231381158911753402406256277080 750469618027631591881536860401611595130770570004920080624716546605769765689546 708303636929950025180142467335921010658477580162475283485404420379498331291684 657522197786280405746382825466712868420599297136340899880976467193725874288382 683309245413835298549942334166026201881853908145038117100194206839552938446812]
[ 798880397445304364003020663362088325656768652765586587156438766945396703620265 814291197219547510308726780859882785706590534339846658965636614067967977798695 748991112952223683765706042405115739727546190101940960448175651039727646636325 844253838927312270453738838224594796879826222826109823879138514397549392734357 771102192108881059048334608822078656836237315901788329960365299669475559628255 787961673963531946595665626230270224533402464852951318862432959291899743223501 747126835220779322242999756780694788184190211222189085608438876692380520610095 818447272449836674032914448053247777549176444715631406700589136677400883167897 807590288246160437032197241256074530730861297285338303251769920523308551489437 768104588646479226392514788276332000544573719487446636570050944236186737200463 798380062940118296736803417524841726237032026494125696611142809625761655350003 851217412584427722855011370689672863692271999166266329854963716384453222489693 725686686221678837671087488334241848046603797297272515920670272745083944996709 782855234903987937614731854240743350778275561605906761692904298561772918307129 843113012157236137546408119515249709197318929463260397394350306284351528378233 689487908146798115102125401115654515757478614787085803008733798972648524256457 740313970197715829012116765501337506699192146465036148891879962833142457837025]
[ 766971264896031022197050888234594103553509163656812587733083025389009428506065 847227781783791051373343929940863177697652657719104325552298768283949829773213 825132540433051619334609495065410330930408695761047149911875206481388950488263 831297461383044118142854457354419553100131996505609943002862037631877204639681 783259819798848379173502599518036905898527107562704946310476557350262531580739 813044519779512411827371428924089391897851574525465442808876803167255208310865 688244632932993676406189111789963194757573125846835855547779470612727446958753 815668520160280581178477508293810682318806563566305613468065883788688587424971 740432115035054130074606990362530070208526589314402980968841043325779000252921 689799199055431628155436611207916096964127932779987606199820038923021816660459 785180678271640364441764985721509619635487538752286867981574275437264187096775 869183701147315949264596060409442282060565269613925468883912090729739077903301 689124425624943613909909854433073446829022297563260989973507325762078678436685 780018882312379930845345357806491649849735990874629026766442450544430026262707 754759116223803598423829716485145152148037161424201657251632548752622290368287 795786064654415174972353390159647753593819738804121072098568645657322261673217 723703898147715870921531283395141718968029030227915892634024622133149266338279]
[ 686551208147668202763106975129997982311619030985488432638730301445891864174822 705298374894394978943660594295624622812136386303474520787610568173413650780724 697379663293348725277816179887954013397331935274271247589084926502473553901426 764992354548521621524267448902370511917617003026802385518244517507455428871720 626063932488091185833539041625336419225509056052437296756442848737123855547412 792836883576477359711197871023072617215560395476352537021918451141289414154512 627218289031625056235379145557904483966133747985860536411785302462772886937810 704465173942306425742798854933060521851126628818971290545561775812303986267064 672897657023159492584469720006204240909122129584009636871576544964349487045496 655720890988769053134486795395037431565222844791742028759863867339418300077528 684885419311903227253802161085228350988910452194911652023310863111792949498080 677870750106876784031544128717613619387144255096043323143451369697358331378872 710562104187210124629108027136793472042201790453103616163938498040004674146148 752247349787447714674063705440563318097105738721201695337816220270185067442214 619211943344829946370106690611375960911198873043289745020201504161445232041796 596385461894166134360491915620034162601498038377091532265868362755169505070500 658419891846053405705029648108257166820683068902388882247403934634190982672144]
[ 878062379136746863534694048309933512515857979182580646286957138087508523839144 859452000671813083024863439753209739135462279582134269550409918750652276633026 867938010809393559614017274231471630413455381500226186170796506907560288655252 987655089547428837992615068063516041621996825641987420069508536013875394348656 741143618032901608081008775623355126596411647370580473440704439706080300514264 804030997301070014972318787294538368954679466147106142727485614585050022156400 837682969751169506861973465820125970052102782728155983049456113717065415383300 885247095938117949738589454773068432999377788108547674721103093203963837775494 852449271617895280751948281639180195848761713327211889901790123338277709124616 918396566321928127813765386614233853125004473250357648391131326644859446003536 898721099166097580887154366912804092872235436493661641677293315561943091531510 893548408472064157284830464106073702367977231819654283619574959224585295250510 841480399162671014584337041145498106450705254595649513509167872562781270049792 951065493720053406018456287216841692456653331379031031080878139932610725347822 870912338261872476429642437041467987307870349408040785111292538203768975913966 791110591517656347264348335776030001641860035845738186617397671540097292196130 824638596064826392395931169925202150271879987663680382380360895631096505587702]
[ 639901506464305572724327689096154360885957407443415315786442907609498560805647 668223118951188900142273512978875250299773906533582996686213978502806731030307 592921205788597406005576651343903842792676259723475922030315484072754924428893 652719066981388229894448054265991950492112162458540408765669358380327394837189 552435012604636750135198961873806955464978595972472570322990618250479072840337 590503761887289339429715491299763856827320304926306965710008102399611721184407 559720733428104903641032460167040121764832386622605536150580768697222039832797 697117474762531152544499905033675225254992162411179047123125931611225497197903 569764608503336765520997908205604117332385998539911584282451051515069392110667 501343434453310872212718868550961952133833009200688856345905983691321511663031 646237914294663787581030859230035548076115685301224642042857388423179751464373 654896100612042762584792073123991133996170287539077963189880270970675884082685 573353281670954861671254910099981213065020620976261743056787569253912039365155 613059424691546038572014589558589150921059247555764589512864187077486565404327 614939379541454617669987078952352241731144863361899649789216819093991844345135 561828332639207015940385640937263754191262179416335861159979304871754091913081 543803785376196766679320522117039825676328705039137376926718450606811745396747]
[ 898935879138008104750791959292555784483760639042300304626282552953745244257036 854171755853629258844626203188727343944809990184335222696126129011782694514830 871323438610616654801713590614623549758028651725636676572117484718568638980758 940490645286489249889342098674040395858056438388687622324376907875223932262128 806017645989656387542814643260994968853451187087356554493397413413963127471038 930859486286493623783574168391736968663507673461067720223079215394452278831824 804300256080467041141757771838724968537886731701255224987460761598014992290286 862886185994087728883138370667647829775767805260333599571601565149416611307976 827853631707075432863550200561961156437957346418094522244949411503904576767454 844950636236553430738314229163504323243906169602973733976953042958822992907842 856308108132187169971791941925545600972570836873531082172597788038469322465466 907942869158473128765603534337185403646709047430097730368993693161066395296384 792400039697222852278467124370418904465818783689256113637096782204008010429256 956739574047031986382056422435392680722983420524319046224126648475010754901644 743041688309030321081521272667776220302926608132742498435315366457568701078530 819772312961025278827093171529560047844684359060747759557386118510747931033658 861321387529770194571818275326575077329250877846072468542667175999549432692964]
[1047945505695024575787520484773906397686021474443066207594728679531854347929396 1016157275146906143035628925739769280395399789573824587909729530603649158306004 1037512513382709338179122188742553233909133377887156659306391001448802338070650 1123241492275570783938190102081913375129669040215204629651764887281000522292678 925406205940882899611142968796446418108514447425392574317532755657215430720418 1020238987991607843483240200114219325103319160488252938430383739271400504050256 958794510966893196102190249374800758733323876814005168015231056911217482866506 1077117740946457956106656590360184391505979097018143562083161171445290706964782 1010442386960672442725035966775938926275513707873395734689984051617205993055538 1047845683601089546073202640448438401221787611803375540405649793738324031522728 1019628223745440072304172742468611002789851635740259434764322419974186640982940 1047123570488344001170654520312688437085901472873076583351086309913300967304064 1018741814057403171025453359563461602826474545227195734105086420235807061724552 1081657994787670419749630381570897384430868544363380458996730340938996451808280 1103298032693619774682961394478907553361362498003183132244877245855385897317444 945311907243248169509259201265722245853686288315168302299722525080729023401020 1028570993424255753191325429657568663314281076938706394866406815247937843678544]
[ 641493326851690092004260477289459924154954772289934237894581023040432612311895 571211865967233936088635532812750080552700238139524529226609075348778987958315 586148824641536183348302345135972855661536556685986056708159309207644618081125 692577100592079380476342738020773176654638928370050712555118309997042244500211 599106042772475143006158889168953836436642481114285584920808184232616389150711 579917252678683022405526939405952481416913688082244471035532202630427127476341 577337764252724460421178482859956373223434461190914963026917641978482351521909 590039157450274046139116500570330129149188003611551876108195254762291147464113 543961507631092197920819569233099761610996514289479773427708311135034056556881 588363717953638541433305922930800812461496590816705658977333300914113509512189 616101239464728393447323987519714917893002185823988845349177640535082289562401 663973160924759947506519844296629397873193008517828274387272756945485460099809 552037708731354576943232199759971352269360224334498243386966293981586475673075 696323753482130206808215814499271490921603221333737686124855124600546559579255 581645348061137575890768919446144297401550164863487342411458354464315333564143 542748647019542303749993247178433141379340901837047195084527867537409503308537 595165097547865820301500132546502989196146668178176359348404313585921475183453]
[ 805748523103243285396757325046906043296041225261212111107680582871175125741257 711065550087847243466356125492797261923151474027829053383014691596805471589519 726613067535494165554708661970748813349347439581724537709002316888374386673003 847952175037682206438414923806563640383938529325008334637749051263320874117235 707724252848458842646580888423960566716966239944637299786684343577732091233577 768385404597263674390843282746587014566829879443759815603410536573732161113293 783508573685100498509332913367556085752426987176610519671385381940495198670179 814453463986435863816795586106829274780580357141453038105260831997832558791909 742457555898806794844448308739945072453209811925664979006195864257605821784651 767200066623896759863759147951481230888411438301069535857267967797007588207083 817988655447373517386908304990625626456013486979369090334025271493948093050973 835930404505364447436034252634612440840388157894646800563772434891237337885995 739816320394269377702275585342089732880197482588186481603668244618138347097621 891099029054289317947781605775077781399145890052552553328633007714812978962431 757779146808813274511618946343843929381932617168776241475196409903785846479555 738171981084057040108088334499719022279793410501608378732091781120584373610613 725444220084096733368446116101743282897919855086902485643671658731190505206443]
[1179889461332029479185666981479009426848899713600090550611994766355894947088079 1158365866329656439954840703085094753258673151873558454545374943482393235272131 1153507547698171333734469220551632847491764303581789164908871054311902029400853 1237749343423793406777794312095064543088202246160379399071717412403860526067899 1072831964123970885184805089788831638631472173862112258876628170850446036884711 1141547140349022193327574152092884613599018070982024464217986026706290057020493 1068655314703066119776225878988711573765171161556230916008693569730591162776907 1150979496041554424776326343113181188230884263084319950910294870125893338761959 1051184450969942281042227772628904890856468883935075670195797701176903919317819 1010779129138822804241137918539768668119654750343207034058855280172743344073419 1122312865331978829865296468921456504172070391973045516315134597236735742403509 1218452707175168706102790237947215501172947445588403520514379892848008929631519 1025145715785155720593498829467435735750181973326364507450741145429217707693865 1158697117126259641535683481694204285523575151157348198613860061936560972476197 1132324334045754101143948603630658272960236314979678413905271345616466266743681 1059853122975270459684008130006445327949631908677867988169861401358668362152453 1122000956698247613444918195382803631758933829265250235627338122815301915602119]
[ 802426498246828859716951420997713922522345105367604013208432491475388933273687 852290138297648900677312043187802130664847547352111672383653544881986124941673 804680642001609493204700694167946718437861005972453469159779915771399318069813 852041954399289519509614092818041896472612063762009746461700616034150995052095 747157233973228392964708481696802504775736034803226258361751737863837186840341 792257569494623893502646893901166702638760335725338763928562681458893566684455 705199021409226428447582568325344042102545573952977383234824998694741207864203 771550545755385184606552688781167244712966045926456249387378734752362102803817 758204620634944268578671167782864072723806346943994447810176008074147512136425 772884702768678944093372636126030550472733527107174140894296211391241869758201 756696862295005905880120845923214109793476120227465708105462117750180841578509 815016465979189896262323792243515243832902102152095702594593753081581338078573 712511663159898610550674418704363788056536986264658767424609586862820262321557 797643702782752930873511000414945290786990636824541524166233563151094390944533 776949211301936035169461739719067234445985984769934376540423755695884433249609 749808687759520363346768542333192714322125490118612891265226528040627295048091 825889354691364734337690140213258818421388868073109684583082500505608531080173]
[ 621640102208305669087053538557473285022985865523000180164446766300218169839279 598040568021674704943758121932136433187894076376889226125720687947653500538171 586951483610193506679766346765163552731124959625643375117400062426913225007687 679360862927381372983064039810233571593240180353504789533590340640860199281839 542541216607881445684596896433788510293390858437729842173632008203642774072077 606267289976171055023485747882449645067437416339813977842376172528085773749927 547447275842250227061596429646675835865307463661062731392784937780594144368199 626769801460671910342682180981274871971942832131119172735813327934343836009307 593340027622927998051414557780323338310437371011599222865509339781376041364837 621610895994169195477777774812174561491004006629731353463862913838953830061583 617591417967056735550487543813718431959001364448870668845433782557269928635333 617785224861631149149077699255578051782568761810676381621559143112147526345967 565573017014002144976039296566362500322121892758413144483201130462221464833389 650207169869745420747883070301293126050414147454275528623298577885138953394443 600779813491725388656937808970378992398789588500566669753081672647378447541407 533658474066692622313801726109997931648931860330860464044060948919988251758657 519197273929589363046026953438215040984959431535588107215854190060838420331345]
[ 690806765905879077799228004030821092225170592993857710907390726081413479794096 728487781211843770155530841531319004666041605420413650303425907095107319339036 643547333464024188772673419609171790269913787071734425671055388044113342521748 733339967023742996735611181820099855026282324136184289049001408278909913249294 654553715277469344541082139937717703827280001858788237661845186786840038962490 728355594982970136572700459335552573825301098054201427550801403594330791585054 671161447017892819729872838701079848259754149771256420562585639408262860942402 723170771248328584101580852305315575769400877869877110323692669078596147079928 659861003482653647644351823506057429136711255191599341461278586121743070701052 641743927220493260365999197874526804364681922979381679307348669119017286589672 732951563136087224778186141604816269885115263556467452339271846103447755519834 707572501916382686019802125620410642578112752002513483031021901581177408578824 685326122673363322116274993195322409797790677902504389367608004769354474130466 788393309790418243226186742975486613299396723999436092853470161469052325768046 570699444922867212251057841261750761188788042157383091235912192303602606203504 642993135720884840216403701465012276300467782503496460354384685472234939274892 641393064616086272135657546035601990435871553225309995804163569741744604606608]
[ 794866622325442237754796459937631631802680018589230784190720236915590894737635 767564568097414473417272363306235166681367329553074988185245831906757282619563 749211928223449888331281086191088472730900819558872126647829333515957196115819 802518501139071440162924173208358996647085030799173960125001982438108161081603 710186323034397221504732591255611723981909592393389297672711236502297085449679 838061662542350712170781856410189989525046242955755115663918892113367499255803 708627165438883550088146813824431565482002278683642229823511295265145934937189 849534778558771894155770137717776982916462195941926694776309661006258281678853 706272235781477252211576270532591022370873929188723008925387465436701020266849 677975989368891093889613669919850670829748548806617350453477587024070004529435 757133153005162837503722320501509313817888775516244295916903124066184865877365 787489982556033921197395585324383359953214061249493501071246495291033278291459 725281293427161418868378135752821574147706552216799019836264281485220441713015 853904814407506924457871864457891136161069415612647584840156694632315694646781 720443846235060447332370872236197185800848671897657184446826204537495207752323 790472855605339964391065549579789253482959965814775558185726798834758439015105 743848570388572611773754136238534865865573769744354752104124844496062110629409]
[ 739659710178077735339945333872119823087023232236014129168374340633514637631156 678785948633503460449254367986608509193847598655938888302467597339392836376670 638279744218519080918057999888120238205343605867429182241901586457586530604510 736314763084732325777219073587544432945816102008771266418074147592606540676012 650937335435632394216023249794917035638974100049397855539621770885947640746230 764561023723293626030440869491535131138353841471382066997886063476491287608828 633182506679181501483984824539362749992036318747200109670604473932545386290932 734782127207646342879021954616089834060552290744781045707717696262544375671164 667619828864357731764341599366190718638849508352558139456290279802547948823904 667942190964192114128952546681196515589294184283523500454247259042359792516570 659108265783133907004693050070132547013007708131967766468720099811701259562678 705160413980004958680085343106386985774840359619786053618496937830087150793736 663832831997273599188273856379033296780857086471439425553416269337051478370840 747000843875340937895960441067818781636978191476095868537420801839792544883936 741035278958125652974812020893542380291322592588494000221874635586436184580120 645275507897191084469227047262960972305747660247298951885384119826751601137792 693891858217717307700649684033554187589880988788707102259632614124534777210372]
[ 606334128534978835386565103412321335036533217361339427195312429626862433287637 693487557904685912615182983287777051067473198217092363063529044237256193628261 588423383420045255723089708012363209357847118561383809540426439714362811840477 636611697612543199902130864615871625534373782644527093414046822005290198702909 593108025483150661652682515195904258221578781710473298709945924525735368615531 555388519900811030064946125464894217402219835000219036492526991398926220104907 509285230736232540157109167923891404321778267261260361309586102675780842301151 650544944789951566017120177413793658800600999253538748706822302188245433373727 596108722305612848098597235105636393491439527302249547298041101087105805207613 611909661839326399379305592964907701033503776555028461364328953282307682752935 592772951765871383762356665381232525499644530120091681070804431797925254976775 620173728706109294829150378713192061023713755255197870054806861205905619494011 538829290328381201977591943685125880674564476022409301672793761204654728008071 630125677645670821517251760025444318693576664257417713342929914784948087222615 610374860068455784227051071238821673604095437828174682984220264418326580146801 609179197328291734878618972044351700549562962730550673402217135579250675115547 594391485941802112302827769427261648590364202504759133369434742363726243017285]
KEY :
[7049550210785591601689320710185301503502908716881781549267572198269921903530590397 7140645382679750122949771517666612948581713987961210097362695980815179888310279059 5269531073993765254454974876644172080359254115652738961859117922228479281686233149 5404023334240994151181458065130024766944241082028936268808743254985855871487279721 6532461418454731739340097353367889699876057122433434468249104523713461585006766343 7359486046504900429631432621418129882250808203607746338521079780504429440740245491 4819684129534086625704056267149962249369621791171013621381823423817261014898893709 6947510946456533701274935064488543835809134316213784087775055410119955244628655203 4984431033445595018754366192924101703777616534496715790088836018959475454381270497 3892120590838857718835956935910739328779680570066430594867607381572616625093381883 5277850670575734937957469935553770046741432138774659660807885430203332063315665593 7270691534167449771808682518869186647518742546060992554746114919957469145419375481 4632026574712017925006155074794831101264613178633409561996038085205703171849881931 6772279035209367595687089762842867389444540672524937424141025254325954208192476937 3861719556253014665783300989052190458841834333963262778809358974328529237176067991 7107623052517572157091382597757302429686464499621506732051454683209135395282861867 5670978471850686690615203753473430451189112441591593471271047797104096422147567151]
[7066696473623246221073173962608521772160765655989883590023445103068373903130648489 6019407472298940532151355571314677827416070384324866197630173146780389751611595119 6129746436257242217495473583714067170957314527974286171897714594881815904769597469 5907646286202441861715111523406672351817170388507832655509708652447095644699148471 5913113914330660970735293969652078570154759352212530267043408979920058726057646531 5946982284579962847378190774053140545296229586479877580244591453769486108000061569 4834957938533732474588712359440264896666516228147295522065623136768470774330211497 6709525187072278135807288536541408847683360019353100588746416118557608480010349969 5532044254756868710065277416489481253319694789592930002149899369733495726893377729 4271227195602700689254123691024128323272299810262062378188379761825652301188919511 6032288943876903800499926762690193504969041766223016973229863898713818823134792917 6999226164202908588540086984296510916218968192684461092500706798130869624787684821 5323645631925096420601855432949282011691347937491861637367295177601755434048342403 4854906553443653382727052018522119389391469878608102144749916024101047625433333949 7260587265136381726676156601680761384641467446178644667872531619266045157993471501 4580063836838921226250176406889851981837073304986828203098371487319135102274860631 3995265917116568909078386893621327040225743202693046627499044071365419465331734509]
[5368866673036988035743783543725749848611861971789075745339224674043685915854739029 5971719929771513752670023007276961025243770517762757852164286830438760205654095983 4265916056246207385117410715615839112139909802210698388247421197704830978510196951 5740635473136013513187714028184617636913355095954727838907653194666242633353278207 6962657342051332053180120809698916968755666967165529624785943397220161189713117381 4056258784407242244298127516167066504514298424849851228130455370935053495081138813 5231174647333825656212504899696885495943015714447465396571782858501367870168684829 5142026588107472537919131719060878093352507710207391832054709540115560021366594229 5429442365526590400728455438958427783252992220967527147016583063668286485364473177 7438561682934518497256370897819635604298734988696829203747600126936674817291636577 6058039787708069749336334500461770536782450458301473787647757910372562027787277921 6338886256615375829304159922433183936712609799514974528240934367238235161063089739 4214090683479334180524982652389764181224411152947612987065512109635131597787240287 7276856936877028552973961987525068265159749079534751841175347535461489210520983711 5267036588355117867291855194685103799573706039925918690509630575053155666088874279 6515863155565114329086989998082348723474028238797882125036291525524326375363746667 5018213446839610327965165147487910834881811425427464625114301273840162289848963871]
[3891684534241576302935940397225483686075195404567408979470220326595748843190859991 6878305259755887224226035471304552303546369925315291795420058809499003691155016517 7573704112907790571684082696445958496168568557162562192768136339614114562366566941 6527712806261747415404013830399744181513276143946991191705256927305466572280274551 4187563087405138162961798762869657843245886629950343069652084991592408321505227863 3970173262763386887668360286088316539874506799787518589221727702969042845844905107 5790736264956965162562780815387975106552817387986841783728098515075061971058595481 7270259291639579416182584583693977076796570846080992308175046951486935360184408487 6912145696240807174175601999149268333909365515442214944384997555281550950601824149 6074919368797441292292443462246668539854225538985183434497466730578749159576830919 6969309614664388866304318023216585868395074333038246648285737095073619905669855143 7557381690656023296100885445035707134982748692089681757109617289342969393836731647 6196163524330521952458568579880467534265734017154996766083996373037721079748705089 4442190383294922647894587207801880719558020437428181928085312183267322187202723633 7503238237684286442373412996960531648022336254513534535881496495043231945855505567 6792669893416815258744422366018261266336323333020416551924405356231189924304314947 5640288096595943872693888635310529303381289357726822165320039951153671043998239349]
[7015385820740306614144478606658407391102768179944047568154934219608178655979161121 4251324419562170409267237744108678875966162637194187372696534560384581944946281161 5103105816825032024032172389519731144902229410898693181245230877168061592308515343 6027403288527620902903495688635601446394324784286790455093889390708080472560699261 4840182572762349605654771719030821286821480599528411055513117144173478136800535207 5774685062953356572638206823727187621305375151270019935371420274934917822050810077 6513188104764401141318811761492488112026115677103383847425000961216848188062876563 4715767531816235008822722157053942342112993047089185719240404677102386379617885319 5005228305888777176402410434018965128387582302436569953874727984809215334873588547 7434908317661889419341336230036426035110113568824563881140179433107390531530050883 6206555709600121431689899270419981842722439871734755736410385879202117134135714227 7317457278962332486182296835915824487503487032757745703415265835801981721648213313 3837721959336542824901138562969355429496198238545446063245669708752705983053758819 7208878268005766332170702352394746197973327300543286772487491924316327884393950497 4876757495316864194722634684300448889735228336823425606556381341111304608915583057 7554688675764320217227081529891813750574961527276344992838010847543539899601512451 7138822249342409176688802435398454750094569807193590190514302752418737307168333847]
[4134948221846269852611395467397780467292930272546753954021863059284494667712273257 3831111404775227048283113338547958230977846764739499986004845496918713878083229217 4039368276521749339213253573016505773498447514112384126883373117857692253940504951 4656602198828715618047867472028153260732347967467991445151569382412793378658374379 4555811342214258985714354373523027200311414000726892526937416617985879705227764237 7454833718316467469533453177092865830944831978359125423460450720749075033863138569 5538869233408103033672714626320531970435291583838198254537061969175850803958357857 6805201353601893181994138734965105961427584954015971239260242235910815672187963777 5449660004592562066548836862796142466414197096674601406007625442604225044647000219 5254636294093009030690689386430339766872195000743618948122679378765064868584920659 5128412114415127045966982074981999685485552974596031628903750870385287710977968921 4093673499553816407629163088045927876817112439298353202285630298793148915481676081 7117033671321772965255170424631304613719935673220399465250320468391733600272348843 7168614706211816059850961113104043096482783781215274302099733974788104880168429553 4239940944821761486228959105946428221692843413542894482780656763417980363097082723 5125247800235108023205038478369701626780757936205203587954142821912218525632091203 5759662472340523934960991011232807522122373614727342936628450849989100625272731853]
[7521233813180927986532194245369859722843952137549261072312080576724103192866194557 4426472021114114342400734382886874479413227251104699411895825024909635636149588717 5822518872268966971935240250941134097946022403103339363080155304849642929682096533 6659265554235523172550526241061972920054953963395557717138566193957311302664659757 5674638352972385441455570943799505648731983148524063168377558701805691949909463073 5310369534717072263007355674619571560396051260684542317962476881546764581575742663 6311014519246991064719564138413560906697777994418833105240579979943121930450378939 5361753739343790826579081416065164449020526159028846969850105789125942461893889601 5206585091432791195685411821536054939296697041461368803953850086276888136489164387 5364264503097009472554826124567230286550379787944701529245253174674199700709994393 5332275708654544835617634702006048045532928147474982164103798393713458951558712387 7154330570328419490597662058026275294226577379563455779878649019493693386999913631 4255965154388683650982101597753119502869675717150097597396456967515133043218966483 5859096174481938726905220563856243298990381123990257425935212380573168466354695113 5545660424748205204503415306986020011489787156787979320246844839830269555034311703 3850965156607849186784534242141171528580898398900749285580438988570717477608020499 5446554163397323162748562138861831931124360975907613274780909126950609184007762253]
[6192662581279070077747190071556203249352775504184826398787603225986214347113128959 6994737205954788161416787670365198861716366368512127703475881980503113703991955939 5481651191793828389422608678732824440595740259712623466833721553155809684833970791 7091110071510110044039328938933287276637577394077775164190507492854679168546454933 4483760624994805205111050316714273591777741750703861640941762385850759383788682733 6049608688473918328705680224180816761616405580043245435984908788544455734994310263 4124451771735988797963672767121602417634670696151089465531452496719945368837653639 6399329311372900949686830267683171634754109811115841914008240591182083772850795479 7546519455894499767719090447523053699386140317014591524301172962214529509119241053 7417275114742091825753024525658960299443024374088343664090144347286679656161097733 5014396874296734426888449729071374848241738359103059392482563019830717090276015663 4633186294782205826573562486287858907246401363332723221441718158690038393124266039 5550337642412667783588697000523196016599236209060692119480112524992335789673973989 5844578867240738033137654334008106883657644947927448572505946429532197345213141577 6963466935536181482590641450458763083457138318988392292636401227063361427792189661 4142082425367319341232307374768237595740130907772510128181121963316489810836520289 4961449796604997270028502429353876180246896513635251128036185653275047823533814219]
[5020244646801779506412992016677267536789337243972458425630690400043005461567577211 4565880076619492291735038769526772757345293946470709488924791971557426212760892819 6684736686492259943170427080088639349773488501759623441081269876569518085070351521 7127034460505446685596035598548494030499075295120015500060459383083578320015823479 4897684162760141645004513382321871185992474954968422551457160309315557216730606881 6237141341159272440298792551395512016776724784744122335854928052208652684953036313 5045036189757011354587434295435096133476865496722265157878473570246626265426219249 4492100821921753464171268107188505875005849450073920774795259193502666546786739207 4716381382903909604310943880485150949968356753521102147366578982805185331897013699 5769924106041889224175057583349846271093406429942222920911995994738142073366218559 4171164181514849312707973599026506433183275341619116298041398876046767400809975979 4340574818625454190763675045019249265399944194365459009672089359245185421192764267 6950872588123540340444076224783432675558156300414849321351064100959486518814053953 6146902224437265000515638505684334241874785110405304376225569905054280835803274281 7097326074187237852438021400241345563364971664351888455162925502878352755181063969 3888623898170807584743124959179498536722614722550078039933514824555468924122565017 6651978027271952558244564760462812043819979647615002091890568478435775859384113847]
[6184541839300416959726841015983948926777410252139131925095449547759383027893759547 7561960144803466400295498692309453033505436653359621465455959697250417556434004247 6650925508588890849747150445685945052041062028811654048394489204317252809883311381 6704850463135939472803811067686155206499277246144382516537391120144033851113358349 7320713583343065079517081474915592880361515308608446734516063532470304697181360401 7568119283524326862477723402052356731379353284857880533879578063251562980861129699 6512552452148413617199014084879302772678181519276874857182689855432498894585327941 3864502304841107126420779952301992576172333276847279580120672590465021259401778033 6331111565543296924017706450321782118748677423870890590639061495263638165587435113 4783550516617717576665788892083871481794015151866013801050888893776362026159497115 6423401220940988180970372731195129350741576165814573362966333919376651871959428873 7450262631693472528484074044034900615574955262973763066313592705047227587098551953 4808117804278407420833874029972770812262389017733620839445532066082133718222359497 4899705257842947421168782966852713033397708188717753882389136909063010797347098899 4209736275639611026143967090333162667368486813672709665383231938920807320790955149 4288985496021417151033901897030809955788882346402892664352812407166557092158805327 6399088994465334153330573145828540560183125477971862417598263168330188636074007033]
[4974480179777821673967313786764382352761166963380749035339921241966746816488994041 3827431056971164087300893077550763882092015916112737467736337909517452711214639187 6698997374701206275980487699360216265465234571607900653824506548379862177001318043 7518618484938039012748849359221625516807541379356576451140712435674442433878459143 4758284226102704106597828423142759619063985427679382802531350337641387562024423187 6653325824990940547750421959069241525545294681251083462671552655215426072474420307 4834098401573692466114505206828542819229034371756228687559669949071272042271672407 5705759750988406538422991618397587699424839175194269559421988778732387928169667857 4398245768658906633326288155937701539007884274657657114921398490785141990412053563 3878102594095673195136271797680443672814673181231328411710863574520992981409177209 6133310351943439308083002243695959542413257136756502673163584524060541515968942959 6614031345281134115821350616299563537024666163750524962269210441574858941547025371 4290750741919277428148045241860444308323482753494795880553890570259733958076427207 6545270978553917649469171782154604454396447247702870677779771334078026259583459333 4445006509009680819453282837981320670586666539592650405469848378206242389825176617 5528351961577676728085945796096904749164486588200724014503325933583082638797332853 4553860930648945095985450075666703535733205265327136281311359827390408210928411399]
[6750485188296277138658389162398497148751135386245210063464491044091460821084930379 6010438584728708550598422306607426382684410665906702759151991579034684210575075933 3803805109778660370065093861441825466272016175685119018073213648311000405939451833 6161462625503882397732225026549808319277264261988365371960784891587916076691151333 6241919535820917853376301145988033188367936860391313711355653209176555350098798203 4258558055168237876653917945093866560454087541642675942729637820589417608852801179 5474694625625454904251558985876015953883688262254228077025510770120425639369446951 5572367645524781057919816708714071388123584236295958433572146361403772779976666371 4887948115278189762833580204190008123431536911590739281342012942682639855174995899 5072897170640965966310418005986288975968750822108975356862712460882216562466471219 6165044195402895541767167984535809001874699584378494736745378643353182375873895867 5835127871614683300027715844872345605750553719725139533556315401355586388227238941 4558129248276492152695784896216182397705412294024428302763241193095008060855230271 5795893809433639082495271827725126672432427311066820814351700179848645366567074019 6877391462211850950619512093824164600612049488883207821124277197637845079351875581 3958377938641353711912632907421719491674318254749555630033200690997769740090761289 6404726132187140772466481274907035793966756376326970290699498746326875000305104641]
[5245105282568139528637057348495137776701620611286696433957149911746999046314773097 5672050168974839171061056596601035982349325318004963317431904210837698727338524681 5318995005186547468272763095509970624905113391938237948713862681498471247679146813 5880578362964890773246084112474858049667948703871135626465662962696655923624866867 5195546581107174214799133461211483041369580953972521037002568828416600427874887513 7025740614597378404317329146905218670769832882363153532673442050758375082565369313 5145999946874739730668952383000254812735314486347779641637459080051798926465151019 6513613473041142873585462263039929569909799644382952635148930072179081872302031881 5631588171523010560005149959235137802749155523574352680416042363610818665085720943 4661938579598854709308556693448847041636102379353061905086303857681371103767387643 5200265724946880365888699066166641370373306131415637084439282563624242849435198919 5724160589098734405491570327856380180270503160177044278377593042596141991687869427 5535844994497189457509026108645120925092131044687639161040500784543614179422163009 5164140841075973560303189511980295620885660732477720529775563398207925868286832819 7388039343615388559951029087795984774806875747740415187598465366724849599319989957 5932713333522809841197988742194547828985463256465204095622601742232062285926301557 4892707645300259882694545784057297010412598758462700624250444282964583190892749697]
[4402679195574451062303229971710551103798261493698429439611887510780910583170280451 5644798403868544541936649752558492436837934035711790525310816696927400650867127863 7158865200366049244410679046421515511396217393830727016016888462360037153923920929 5941997097836487070303910990936848847854375822749540092391502265950630951487633557 6176489758777485222314965823887698617405454648551451721873275768562402494079297901 4197674057295179503164555453698908435919419130073839043975503902586504943683480117 3826254440225576313358394426095179212131947118955869910396935194433018005398195497 4797017417599318892677895376767047483329539024393449732344318401060687812581214031 4659917698442140210293219079112771855297351015278584522252738466121903775642210073 5372301099587035087300933755630204629378782131326649775338936689525477195146461901 3866861520475131799309335893532348157107057953092059991221031802050780770279125647 4947023435619171858819767417167025508688977577241181212718541756790545697506621267 4220598253918017996516883219461067707938869230437031887607311893947934142527377647 6480734683249934356366434283123476683323222318202662002838992133424445564083304719 4790338149840968410673948873185180461895616745297948628926016515237822381491605367 7123074124167385931639155695689111198749456695017761929519264147394554849260517913 7364156937155967410769926448209426263601057359255989821628023648427926107222498087]
[6122937043843727665658662415580965091934679495710706468972267201323714015666327279 7108661474629408130134143825700713297377276142486919071314376988532817667404846319 4372462422015438798538083962815074121127715780511892821625668370074943618204180413 6403106537668126483673484733526391629535896742788624637038528031760827397862067443 4285922340371091184151694923435760057960812213817576181730332326710404923280139119 4004581034673265641878640389644261190211408364781999282300783524733027677531638817 6818216059105204912477235330384096904879520750235379286429144890861780190434133963 6975312275831956068298462417596278885049391011031585567548154596562179641463596287 5979075310187687411461072306119655262973013374512772994346471552683531647685943009 4832629263367971922003339532487465991395845422517077159185051669317725691282061043 6277632135909060636015641758948344185343137964622984388183338927829003485546405619 4581438565131872486637541951892532744800238139942542571424583098766839515707194791 6633229026583896047224252027494675504621010273299306927214552978838088552273036421 7083521935515654010399818363093640858045225280977648817539581143475152479395483931 5614392812288129761776703216188618133040765319644697688228727523661126347320248685 4569370287554676422567333044787718046478097512336905815215439504255949721048577143 5479327200866983467571962588793175094453672432894069613981809063914403113787931363]
[5356687449999827616679225434998276936082908491746884257543176371861908001691649139 5492925008009867321786023852433790553821883221631201994688349674859789669159518457 5868930347051290647374056309084426669534195745510048372316952149498071477293053233 6778385508943207425281265702970868487918640370743834400707869328320810939719676667 4195967687017490608240203061146751267760133803624788052198235491180165442286971739 4130897401855183437750970760084519724683007479066034272385543402790558769739575351 6121282542759740891033150437792897273344220652298959886237260950643723109106066187 5447876769475872035532053463962974333313893145676103647033527338355989948533361213 6026571568372906759497706414798214037964794820294525626442460001679109710849351013 7143722335878695015645668925801708706783476292363950755051459828683414312563450653 7239742035000371035887689204799692967425641445041527637139251249997843675736615769 5961166650893475981411545030148396561782356396252365250155381163071252154111787141 7277060326227439231327462987871468346731309625544817725725406982001036505584516143 7238670672965210755543685405050511378230779771324224175956003711604455528123671541 5025150561117665951063934850971813714336377931153462488296860708593439333135869651 4720312916639370263158696939654027327275053980874066197116476208358706067066313315 5259023825798823657073987035840441812232638060197364027548688249432608752476036099]
[6081391398582953715651463325531516794197138988843369864158191720687740876427349001 6808449315640208301263557449951800637198425490383701465208771094958916811261789863 5010030534113204709169280318704112544753520304902941682052428456185923532329012693 4854679417944009100137299594196047693506164792428036193111938546409912478546486969 4285668898584834676447519785867507461638864637763354340695901779527370528764164723 6506738534126587207244300177945667641259755646404478416047428069182523617818409089 4110030287348574524223495376900450529520621330534712044510741152395569192159062981 6506252845998469226402811346760105504649541743771750666069495963142045975425624737 4646772968915126891333453635260460821193469786017155371885378633017267125607318333 4834648480423023848372403062888658624909538578814488243029558874480184588843220863 5497058276756957556070492712718177564527750743792454285146956145856433202211067341 4062028574757374972583254735061160362411094680195210001968635369476592405601687931 5941909273122066843214371790026585902770655982822466778733672548155623067022539913 4684012820558698361221129193761017700645329078753582096257274109401088910528826797 4738946274424966911555574457612721970588921527372819450849662484819923345324778691 4284086465628694699033160631133696693255985959492466386015366047783885399908880767 3894821932933538689451255836212237836399775265590307821563547640163748101567631865]

这题没搞懂

看了官方wp

1
2
3
意思是实现了对消息转成01矩阵,接着T一次,并且生成了一个17×17的大素数矩阵,然后矩阵乘法 $$ c = m\times K $$ 给出的条件是加密后的K $$ K = A\times K +B \mod 2^{512} $$

先直接计算K,接着可以拿K去解密C

exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from sage.all import *
from Crypto.Util.number import*

Key =
K = Matrix(Zmod(2**512),Key)
K = ((K-12138)/0x10001)

NEW_K = Matrix(ZZ,K)

C =
C = Matrix(ZZ,C)
m = NEW_K.solve_left(C)
M = ''.join(str(i) for i in ((m.T).list()))
print(long_to_bytes(int(M,2)))
#moectf{L1ne4r_Alg3br4_w1ll-b3,c0o1~}

BigOreo

题目描述:

1
2
我想吃掉这块奥利奥!可以打开 CTF-WIKI 看看了解了解块密码,以及CBC和ECB有什么区别吗?
https://github.com/XDSEC/moeCTF_2021

附件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
from Crypto.Util.number import *
from Crypto.Cipher import AES
import os
from hashlib import sha256
import socketserver
import signal
import string
import random
from secret import flag

table = string.ascii_letters+string.digits
BANNER = br'''
oooooooooo. ooooo .oooooo. .oooooo. ooooooooo. oooooooooooo .oooooo.
`888' `Y8b `888' d8P' `Y8b d8P' `Y8b `888 `Y88. `888' `8 d8P' `Y8b
888 888 888 888 888 888 888 .d88' 888 888 888
888oooo888' 888 888 888 888 888ooo88P' 888oooo8 888 888
888 `88b 888 888 ooooo 888 888 888`88b. 888 " 888 888
888 .88P 888 `88. .88' `88b d88' 888 `88b. 888 o `88b d88'
o888bood8P' o888o `Y8bood8P' ooooooooooo `Y8bood8P' o888o o888o o888ooooood8 `Y8bood8P'

'''

BASE_MENU = br'''
[+] 1.Register:
[+] 2.Exit:
'''

MENU = br'''[+] 1.Encrypt:
[+] 2.Decrypt:
[+] 3.GetFlag:
[+] 4.Exit:
'''

def Pad(msg):
return msg + os.urandom((16-len(msg)%16)%16)

class Task(socketserver.BaseRequestHandler):
def _recvall(self):
BUFF_SIZE = 2048
data = b''
while True:
part = self.request.recv(BUFF_SIZE)
data += part
if len(part) < BUFF_SIZE:
break
return data.strip()

def send(self, msg, newline=True):
try:
if newline:
msg += b'\n'
self.request.sendall(msg)
except:
pass

def recv(self, prompt=b'[-] '):
self.send(prompt, newline=False)
return self._recvall()

def proof_of_work(self):
proof = (''.join([random.choice(table)for _ in range(12)])).encode()
sha = sha256( proof ).hexdigest().encode()
self.send(b"[+] sha256(XXX+" + proof[3:] + b") == " + sha )
XXX = self.recv(prompt = b'[+] Plz Tell Me XXX :')
if len(XXX) != 3 or sha256(XXX + proof[3:]).hexdigest().encode() != sha:
return False
return True

def Register(self):
self.send(b'[+]USERNAME:')
username = self.recv()
return username

def encrypt(self,username,iv,key,nonce):
aes = AES.new(key,AES.MODE_CBC,iv)
plain = Pad(nonce + b"||GiveyourFLAG||" + username)
return aes.encrypt(plain)

def decrypt(self,iv,key,cipher):
aes = AES.new(key,AES.MODE_CBC,iv)
return aes.decrypt(cipher)

def handle(self):
signal.alarm(50)
if not self.proof_of_work():
return
self.send(BANNER,newline = False)
self.key = os.urandom(16)
self.iv = os.urandom(16)
self.nonce = os.urandom(16)
self.send(b'[+]iv:'+ self.iv)
self.send(b'[+]nonce:'+ self.nonce)
self.send(BASE_MENU,newline = False)

option = self.recv()
if option == b'1':
try:
self.username = self.Register()
for i in range(3):
self.send(MENU,newline= False)
self.send(b"Hello " + self.username + b'! Let\'s eat this big OREO')
op = self.recv()
if op == b'1':
cipher = self.encrypt(self.username,self.iv,self.key,self.nonce)
self.send(b"[+]cipher:" + cipher)

elif op == b'2':
self.send(b"[+] Give Me Your Cipher:")
cipher = self.recv()
self.send(b"[+] Give Me IV:")
iv = self.recv()
plain = self.decrypt(iv,self.key,cipher)
self.send(b"[+] Plain is :" + plain)

elif op == b'3':
self.send(b"[+] Give Me Your Cipher:")
cipher = self.recv()
self.send(b"[+] Give Me IV:")
iv = self.recv()
plain = self.decrypt(iv,self.key,cipher)
non,msg,id = plain.split(b'||')
if non != self.nonce or msg != b'Give_me_FLAG' or id != self.username:
self.send(b'[!]FAILED')
else:
self.send(b'FLAG:' + flag)

else:
break
except:
self.request.close()
self.request.close()

class ThreadedServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
pass

class ForkedServer(socketserver.ForkingMixIn, socketserver.TCPServer):
pass

if __name__ == "__main__":
HOST, PORT = '0.0.0.0', 10005
print("HOST:POST " + HOST+":" + str(PORT))
server = ForkedServer((HOST, PORT), Task)
server.allow_reuse_address = True
server.serve_forever()

AES-CBC以及字节反转攻击

还是根据官方wp

解密过程中需要满足,改变密文或者使得 中间的消息GiveyourFLAGGive_me_FLAG,但如果直接改变上段密文的内容的话,会导致第一段明文解密完全乱掉,但是我们可以通过给他一个不一样的IV去异或就能使得明文是原来的NOnce

参考官方wp,让gpt写了给脚本

exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
from pwn import *
from Crypto.Util.number import *
from hashlib import sha256
import string

context.log_level = 'debug'

table = string.ascii_letters + string.digits

def solve_pow(io):
io.recvuntil(b'XXX+')
suffix = io.recv(9).decode()
io.recvuntil(b'== ')
cipher = io.recvline().strip().decode()
log.info(f"Solving PoW: suffix={suffix}, target={cipher}")

# 暴力破解PoW
for a in table:
for b in table:
for c in table:
prefix = a + b + c
if sha256((prefix + suffix).encode()).hexdigest() == cipher:
log.info(f"Found: {prefix}")
io.sendlineafter(b'XXX :', prefix.encode())
return

# 连接服务器
io = remote("node5.anna.nssctf.cn", 26666)
solve_pow(io)

# 接收初始数据
io.recvuntil(b'[+]iv:')
iv = io.recv(16)
log.info(f"IV: {iv.hex()}")

io.recvuntil(b'[+]nonce:')
nonce = io.recv(16)
log.info(f"Nonce: {nonce.hex()}")

# 注册长用户名
io.sendlineafter(b'[+] 2.Exit:', b'1')
username = b'admin_Avalon_Moe'
io.sendlineafter(b'[+]USERNAME:', username)

# 获取加密后的密文
io.sendlineafter(b'! Let\'s eat this big OREO', b'1')
io.recvuntil(b'[+]cipher:')
cipher = io.recv(48)
log.info(f"Original cipher: {cipher.hex()}")

# 修改密文:将"your"改为"_me_"
part1 = cipher[:6]
part2 = cipher[6:10]
part3 = cipher[10:]

# 计算修改后的部分
modified_part = long_to_bytes(bytes_to_long(part2) ^ bytes_to_long(b'your') ^ bytes_to_long(b'_me_'))
modified_cipher = part1 + modified_part + part3
log.info(f"Modified cipher: {modified_cipher.hex()}")

# 获取解密后的non值
io.sendlineafter(b'! Let\'s eat this big OREO', b'2')
io.sendlineafter(b'[+] Give Me Your Cipher:', modified_cipher)
io.sendlineafter(b'[+] Give Me IV:', iv)
io.recvuntil(b'[+] Plain is :')
plain = io.recvline().strip()
non = plain[:16] # 获取解密后的non值
log.info(f"Decrypted non: {non.hex()}")

# 计算新的IV
new_iv = long_to_bytes(bytes_to_long(iv) ^ bytes_to_long(nonce) ^ bytes_to_long(non))
log.info(f"New IV: {new_iv.hex()}")

# 获取flag
io.sendlineafter(b'! Let\'s eat this big OREO', b'3')
io.sendlineafter(b'[+] Give Me Your Cipher:', modified_cipher)
io.sendlineafter(b'[+] Give Me IV:', new_iv)

# 获取并打印flag
io.recvuntil(b'FLAG:')
flag = io.recvline().strip().decode()
log.success(f"Flag: {flag}")

io.close()

运行得到

最后flag为

1
NSSCTF{c46f4c10-c2d6-4de8-b4be-e1ff9ff948b6}

文章作者: yiqing
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 yiqing !
  目录