From ebc6bcf1101f7b7c1de6d9f00ef5074ec0e661af Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Wed, 2 Aug 2023 00:24:17 -0500 Subject: [PATCH] Add project files. --- SHNFileDecryptor.sln | 31 +++ SHNFileDecryptor/AbState.shn | Bin 0 -> 227223 bytes SHNFileDecryptor/MehPool.txt | 235 ++++++++++++++++++ SHNFileDecryptor/SHNFileDecryptor.cpp | 103 ++++++++ SHNFileDecryptor/SHNFileDecryptor.h | 1 + SHNFileDecryptor/SHNFileDecryptor.vcxproj | 142 +++++++++++ .../SHNFileDecryptor.vcxproj.filters | 27 ++ 7 files changed, 539 insertions(+) create mode 100644 SHNFileDecryptor.sln create mode 100644 SHNFileDecryptor/AbState.shn create mode 100644 SHNFileDecryptor/MehPool.txt create mode 100644 SHNFileDecryptor/SHNFileDecryptor.cpp create mode 100644 SHNFileDecryptor/SHNFileDecryptor.h create mode 100644 SHNFileDecryptor/SHNFileDecryptor.vcxproj create mode 100644 SHNFileDecryptor/SHNFileDecryptor.vcxproj.filters diff --git a/SHNFileDecryptor.sln b/SHNFileDecryptor.sln new file mode 100644 index 0000000..4b49dee --- /dev/null +++ b/SHNFileDecryptor.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.33516.290 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SHNFileDecryptor", "SHNFileDecryptor\SHNFileDecryptor.vcxproj", "{E2EA580C-4690-455E-88F1-83EB684912CD}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E2EA580C-4690-455E-88F1-83EB684912CD}.Debug|x64.ActiveCfg = Debug|x64 + {E2EA580C-4690-455E-88F1-83EB684912CD}.Debug|x64.Build.0 = Debug|x64 + {E2EA580C-4690-455E-88F1-83EB684912CD}.Debug|x86.ActiveCfg = Debug|Win32 + {E2EA580C-4690-455E-88F1-83EB684912CD}.Debug|x86.Build.0 = Debug|Win32 + {E2EA580C-4690-455E-88F1-83EB684912CD}.Release|x64.ActiveCfg = Release|x64 + {E2EA580C-4690-455E-88F1-83EB684912CD}.Release|x64.Build.0 = Release|x64 + {E2EA580C-4690-455E-88F1-83EB684912CD}.Release|x86.ActiveCfg = Release|Win32 + {E2EA580C-4690-455E-88F1-83EB684912CD}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {56AF938B-502A-4253-955B-C9BBE1A57F4E} + EndGlobalSection +EndGlobal diff --git a/SHNFileDecryptor/AbState.shn b/SHNFileDecryptor/AbState.shn new file mode 100644 index 0000000000000000000000000000000000000000..4d96d5cb196e3924a46fd6e4253b7c5d110b9533 GIT binary patch literal 227223 zcmc#+hg*-`8*kCpM0?0+YN2h#Ya}6FqJ*r5&1+;dtoB0M3#FZ+z0Ia%7YeUYp=36H z_fy~V^j&q{>vDas-=A=<^E~&t@B6bVgxJ`0w6vycXc=f|O;ac?xqDN=z)+XX)sT&i zosEqx_#h`+@xr*>R~#EQv{{w!RzIXR`!9ig%T8=}+z@prXt&>??hXCh-}rwy+u&0B ztNecd(^iFAmMz35jxxH-=EML9hDQ5 z?w8{neImi`{;s?0N-XqEg-=L0Zm`(CZ}*9_jxK*+w7kFTsdGtRV*AOO@Vu)r1y|0_ z`lVJPba&tV6CWI#qJ9On`~B)}>i_UY_zO=1TkWCpW&LYfqi-g3rgz_MEjd?sV?)@U z3tK+fKd~xNUZ-FoVX8GtUyV(Or&G9Jxm6)bKS;|@-&x^=vfZ*>3)jtFl4I)ce9^Iq z%V(U6+Q!jagbq%eZnDOCHgW#6?F}1h*Oc#`1?Lx9NPGT1IR9rjf4Fz-rO>F5IZ5WU z=P!oyr@{FxE}Ev#%26ZF9|`C8h4X9P6S*`lOf$yFW-rb8ZQ=YDaQ@=EaqVdz8k%aK zmbVk<9}VZXh4a^jG@tyDU5FEv|5XN?8_ z>HZ(X{eOY`|MIc!=HqV7Qls8~XwE;}{r?5`ZwvP?^jq=L3{R=lrzy1OAMXCE;QqVe z{-f@>-aPGdDlR*>aI@=<3!9!F89e`R_kR@b-x2O#rdqL1wo=~J$cOg)!`=S{`2N%2 z`_E_hZ}NN__&F&epXv8cfB#(Y{ddFnUsc`l?Oi4REwN_7EWUKc@1OquZ^Hc>!Tm2y zRJbG;J|?rz_s69lXCoQDfBO5+g8NT``{y{Uy54EY;{6VDBDOR8{^{@kZ@B+maR1#V z^)k2l^TZQ}`Tptu{~GxJ`{4iYv8wkEZwsw|-gmp~)1B$J=)Zs3`~QdG|EE3w5AyqG ze*Ztn|DXQ+gWvx@nE(Hu+4Sc}-#_jBADX^Hnp<04Pfdjue=Sh| z`UdJB{rywbzaZaS=T826+SmER^kR&c(bhl8`AaGPe{=2k!T+E6`Jw);8mxcJ&kyx) z`pEUq;ym;JpFIBo=Jk*M{%f62uShob6wNbs=}B!3a$z{XH`M=R_)l}8{+}Pd{tupi zO=;m>sQ-z1=kl|zT(b$AGL?yB*(Ol}Iq8y8GXrGEboL;YJ1^?xbU|3JF>&v5^h zuf@KsOWWusa!KDyF{d`~W>MXRD|Gc=jeP$so$ZSbUz{CfRkiw^HTC;P`TjGFJZ6SS zY>+=JaB#BmF~;{#%voiofdrepWYze0G6f9Zf9t;dMMYK@6`~Bh^{(`EL;a^af4%d^ zqTd%wqMlVfdDoc7`2H&_+P?1qy#Mv8U2K=82FYEn4X=o($o_EOEhA;%{iB?}nezTO z!~1VS{r)q%e{U6A1sSIa$Nsi8-T%+J@GU`1-hVUl{aa7-{!!om;QPNG^Zvc0>3`_X z5AXj=O#icfp#Pz*e?#y8(EXR3`ULO)HP@4e!uFiql_x&j{~rtQKhMgkt5jF7Ub4b+ z!?7rv$T_Fz`yacdg{I~FzbE^dc*vhO+QGBe@UX&k32B=C=K$IN%*XV9TZZ~S#`DAf ze+tw8U3PRC@%*=j@Be7--^_PY+tIRPC2I|rs9I09G`Cs2&%ri*sQ)vh^nZ)i&BoTh zHBEaA4jr1dQ<`(Slz=|Z57~Zk#{Tyc+5di}^uJ8c5AXjqO#i!gnEnsl|FvQIUv&Pj zbp79O{g1j0JEyb?kCy6-Ddpok#(1mI^?yZ_{qZj z#_<2U2>Fryf5b@rKiq#Wv;G&IAO8Or%=&+He&~NqsQX_g=a*$t{}}pT`2Urj^PLq> z6^`XtVZ3y*gBmye{~t)1f9hcV5u~4g=VxRtqMMqnm#Y zLj527{{Lp^|EbOo^Uq^U|M!^e|CyX0`v1Sl`G8GQfFeoslt&L}Jlu}n0* zFgMrGcj{%u!TE3S{A(%mkLrJ@fBP(tyE@jZ{btKi$QO32zk26?ntv$g|47b% zw`k`-s{0?DeR^GBY4$@{OI@xZBSas9UU{@sN)J#Tik zzQ5H>{r=5_{!bF-UwfE;arN)R!she8N=|;h9(X1=Jk-?XShfzDe}~ThjGX`6F!S$R zn16;nKm7l0Bh0_V{g;g}{}bnTV>18J_Wy(PkNOT?T_fI^k`hhwzXg6yE;z2VuR5L2kud?D8{ioX8a70r)RYT&)Vo1m4=>ok77x*^^E2hJZs?!Ue>?!U_2-)+JD0TAHi(@ht3cCPZP}k=LPltk8%DX?_a4) zDnUF_^+M;#w?$t^sDBx-|HRe55+?&oVRa|Isj5QqV`X}n*FQ~i|NGYn|39(+yv?xx zq&h$J|F`MqAG-JNFLM9M{QQ6Y$NhK0_ZJOM>YA&Kt5m!7MyP*lVgH4zf93Tv!_|VE zuWH9id9V$4{tWW{`%b(6r9D6FzsJ(cEa&l7M@q|^O_H~r~_t5#9 z$@#BwiPR=Bb77^?la1-_e{laTqb|i!uW_IA_UM8Y%-;V-fzSy-g8pw#zbnXO_Wi^D zv#kEp{qozljn6TA{~N2MUW-)=$Bn*X{GHkRFZ9y6BoFpKJrTK?`MGD$uRVL>>ZTO+ zcNUj9e98V7@Q=?F{G$){U%2`wr1tfne%SxNSoy=WXZhF#2>+nDe`#|6zhl_@AH;vm zhu(jt_)iMW`$vU;Q10JnIQ)ll|DWjb58C;M#D6UFr2HpFN}ah?&=C6aA`|?Ba{ug5 z|4h9WU0u>;)@0ReJ7dnczZm;}YhD310Vf^KsWat-tEW5}TP1T%D28tT?M32WH6!9* z#bi~pRklE{zZQOcYSH_AI9_7ko!*p|04f?hWTH3zKx^pMr-@?2h!G_T-mkm zy;alSWd94_|6B_GvlsSXxccX48Yvv4)Ge7LcADSow|7PM_ZV;gOP)7q`kzw-{x@*{ zr$+ey3HoB zSfxqz5dL=@@V`ay{@MSB`nRS%;L62>Z!e$TzgJbFQ!dc1UUKZ=yf2P4{m%{x{<*ef z6CM6JbpM0(?==PgW4!;t`S&&b{6lyDn=tt2CUXBdGX7<4BErefYb5qgx?8f%C`iap z)vw>BZ3zFZg#ND^@Sm5k|9Xw?f4KQC>`29l?(rFFS5=Y}ZM5t(9k|3*`MD*9-%-8) zuSopw1qS~;HuCpxDoggiO!mKU|Aox(PpbN7L+(FE#=q@6Rdc2l$y|GV=|^N|)zi9H z4b}P&C;!wy?|%RV|IUE@7q0%5gx|Z{-V>g8EioxO$~=O3|NoP$|F=i@{|WqO^vK`; z#lPt1AG-a|Xa@Y7w*KEH_n!#=XI}qv9`&}quY2)==b`ZP(M;-}17-d_0{bsq{d=SP zd2@qhzND9d7f(oSezpJ23-PDu`#%Hn{h!1f|0mzSTO)t}LR-lGmpT7o6bAplOzuBN zOFkbhCilcD0zvcRTNxcc>iX7 zc5DiT{dc2JNT!!Z!U4}ie)h4l;ah9Ry46tE{~8MaAr z>u=ZEF=c@NK=uFco@Gb!Kg==wmmMR2|E)el?>|%iOA3Acr`vy4Q}=%(;9r&%4(;=5 zw#-~=bXe1F_3HKeq5mQKU#k0`1K&S^|C~|`7Y$e6z;!@vm5zZT9sVbCc;0MlV^Q&O zavWp2)Vd{G#G@GaKlSANkHf!KeY;#8kLUCWls^fJawV^apiS%`yVf%nC_TIA*DXvr&1G=Be&;E((<1G z|I2qhf7o@0_m)(i_59VKC&t`7nnbFyZZX=&hoVN-%)6e(VVdc>>2`- zrruTWQ*KyKTmL1F%`P^F|KBK;BV0Y!Xszrz@vW1_2`ySPnYV-Ne_{XaL3#h5LH~!V ze`oIp_$K5$?Ca^e{qC{cPpNxi#q3cMbo`G4T|E>1q1(2gfjo{f&CY*{xuc+ZfbAz z4vq6U<8PO2pRoVRxJzRGdS|{}xpjf$zkMP3Z-2`F`7td2Z?OOQF)aUau>bjo+<#K> zf0)!i{jnNG+#<$ZT%GC-I&nrBW8-_`tHQfoZ=4#e|EiS#-vRbNxcXPGTjSJiS!v(7 zymXHKRs{!zReK#6_>b)5{Qsx?pGQpR{~`Xzbz1%-!}~Xu+<%VDe+V0WO+B11z3)O- z(7j*}_t483wDWHwh5z^r{{QJi{72^Xe~luavev{gQZr|$R%m_KY7shRLihg{FLWj6 zzdz;wh%)X!X!x%ysQ9nU-hWYY|2Z=MA-T{aC@I(VK<+V*ea{!vt*lr}`~LO9{Bsfb zufD*4#nr!J$Jo(nMrrJ4^fEY>@$Jw&rZ$d~Uy6?ZkwngaIQ%$Dpq5k(Z^#6eW##3pY@ZO@xKMh z{_juuKiBB^?=5&ZYz z&JW+e4I}@HX8&2ptp8(jes`%vo~)@yG!F78Pq>8sec_%{|Nl2Kq^eaqa*5N zz`G0N{+r}Kw_QD(o?PJRlXoM2Pn=oMu8N}p4EXmGa{u+G{GZ1R^B*n$>G9C}Pu4%` z`~REf{UiT>2L8j@^C@200ed6nXYIVCkRu!+|A6`Y+XC|s;6JB)Qn0s1cauf6Umlx(Az<(at^v?UdQhA}U&3M@{iqq-p|3dZ& z5^NKvj+L8QsZy(ShdWigo1y;alKU?l{*B}R%%$VM(c|B4%;q1e_rHuv|1;A2?_|D+ z;6EP-u=ZS1wXA1;w*WQ%F~omA4)qW4A6eBILW=d$mGaMJF0fyjK{x-c3moI8=Er_b z(C4l1+p`~{eX{>$sQ;NH{}G3Orss zsdji4=M=p$(>$5azZ;?c0seDiRDg_IPeD`G_x$UzxdC+ZUt7pYm$sg=Z?|9S)Tq`@ zuCsVD|H+a(>i^$4+LF|N;qY%9|L607{%iRA-^s}TqSAj^;E~!n-f0@*|V^?*ZsP0RO3~xPANf%%7^ibzd$2vb}m|a|AX2!~M9joxAi^ z`Kt!YH4Z2r;}cdGJyCZFZT)*e>c4RKH;(@^mSO&*<$qphUQ0$JJWv(Br%!)azXz=;6E`MR~2o<56Erj8Y7`LQ)C=9{&Ux* zW9o;q=TgHHPyc;kX|Tgp&SH^b<%hKO|2z5q;qY%9|7R1!{71Y0p1{ceqS=4HCikBs z^B+L}^``sTtb4qrg4gv^4AT|<7PmBGGXE73_C&!dB? z{(VtYr)maal*u|LC2UbK*WMyMKm~vG&+0 zH2?o0wLPT%^-uXf=Na~YRObi$_d2urhYJ6EMD9On_doRfzjcpSw3-{vQ`*RGz1D1v z{l;Ci``;5P6#hppy#KiRcZg@sorMY$<{-$C0&xrpQ z%WVFkI{#~O|4F<5q38b@n;3{0J>%||?jJ+D|EJ79sTBVAOql-w|KT1tT1e@qWb^oz z>7l#<^!ji9ufO}HqZIu#Vm_Y!?$zAb(|+^$Z94u(7^(lk;oms^PxUbTXN3Q1472}1 z{f{8I{~VeBpqppt&$V88z0N=Eatd<%^17{py=4Cj`|p#$|9S}hpCZgZxccYccvUgF zs_N^HrV6=w{(in9ekT2|BdPzv;oms^k1xagM|=NE2lVgs^FKNNEc7M!pCj`h{4Ym% zMa}V8;JV7&xIiVtnEw5nOW{9!{SWoeF>bx3rMpqC`qjGRri(S91*hC{6KV19UqQD> z{SW9Ly~fAug$~Dma@L%~e{jm`wZrK@3HVIWqMU?nI8h_O85zd*KD06u@{$C`4|9gjKUpRfn@{Ik} zZHd!k4Fc%z->9p)c-@obpB7A?KgL1Zb|JI-mnZpuf6D*qWtjhH`A-ql{tx8*KXm^l z!|y+6_;2ofp8Dtd@_Hg$ayr4<`FB*nf;B_n)-= zKRy31=X#-6{GRabfqNex{kf)O?er~*P7~IzS-F&ge}9Df9|ro5BQXEq>R+5?YJ7uk zzCn=u-~98YS}Vv*WYYiUQux1$So|Bu|CvAR{%>&q^Y6(1C$*=@{U>ezPtX5ze76Gl z&%1@^2+v}d*3~qkfB&T6{;gsExd`T;`NQiU2Jz2duJXV9FGYsBtxU9co$Eh~nf~`M z;=lPn!1%wcpq+mi_&+N~@P8rZ{|CeKe+TaW0lEKVzW+h|4;c+fu}YO@$p*nt(L%i} z2K|!{W&S1nUvTx$B7g42S*^CsbDLe>7L<5C`1Rst-Mhzh^-qc9e}Mi`F4s6&KjCHG z&GY2^KZO5fwuZb6>G94v8yR}?zzfFx7vO)9hYOr?w!b`bb5%G!{-Hdu|Fr5^qQ6jX zE!XsQjQGE$+F>~ZV|9JymxedThBE5^6haOK9f19}t|wpmTi^1ce~Xh73q#L57j~Ny zLH57!{<%`>e+);oms^PZ7rd<~Sq& zi{||=qVE5g?0-=I(|)TO{BJlqv~C`~zxeC+Pqh25A^!VZn12BOnIy%@U&-05(LW<% zYQ|W4{qLJG()--`J@oy5cy^t<7aYz^|La5Qe{lHs*pa_~ivuI#AG`flVf>%2ll#w+ z`43@JV`Y|1FcsP($!j!KW<34=H?0lczeebPe#88StA7diGt}P{{JceCxV&(6*@nB|Gmuozo_2-q5bDj{iEN16Z=0-Ps5ytsqX@B zdgl4M7bV3XjyaLD>;C4SR%PY`^RG6A|1ARZk08DO7ybNmRPxj^(EkWO)~FK${m+y< zgA8%{`KOkw|9{H=VYUAen*R?S*s<=+p0qi>D|(jquD)w7wL+SP|F#|G|AV0aaDe?c zuKopC`lfa3dhw?Ja%oMkPxic$5$Kmd&;Kq({lCSZ@_$(Ee}wv<{Lz8Hf40;+sAVK$ z#5?Kbq;I-3{5L}XLGb?%!~BD*e;1#+Zadq4v!+|~o?`##vc-38KW=yz-Q)j?+b6RjaJ?HBKFLQm=aI+nLY0R;-aS?K^qv-3uQcYYrrr;&Nyms{!dPk?_OAoV|g%Ku@t{}Gyh zyvD?~6_mx_K3yCapPLc9wu);1O^yHX!u$*PPlEQTo8BdXWfxPf#N4<+ga5+*e}ncL z{X_eA+J+tvb9A5c$@a%6D*iv^`_~}%zkkaAVYUAen*Wm{TusC5z3pRUT=XMVy>E3< z?Z2t(*e);6)(|x(V-8 zr_$BG+3Jf@mJ#}&AN=oi-%EOMhpuDvzsV-~e}BsVVYUAentynvYqaWh=yXV&6L1lA zli0Cl82n!q^lyOwOyUr0HR=}Wm5w6dN{+HZ;^%4HBRbPAGRSLZse@`Tvk6!;l)c^byGb}*=^E2iSv;EKD`EhX^DOt+2nS!i@E=uJ%#`63iBV%|E)dwH-A%dxZ4W%jn_91$A9W1 z^*=cL8^`})wf_;)KPZfnZIEx4{bpFC#$^8`baxN%zjwg>2mS~Dw{E4PuW@z_i{zFX zIZT*+aJj`6CjGB0ssF*@-#GpctNoAA{GTu92L4}JEs>$;gTfi`kM#ah3jbRY^dC6? zH|5#OO&9S@o7$o9-Q*|tIp+QUc~bxLr~DsQ`yV0xn|DeE_Z#SznKQj3|0mI-{^kNo2fT{G3x(_ z`A?hF|NJTcht>W^==(Ri@U@^PuRhu*?R;3VFa7?@rPzbQ{|+JWf7@p3_osXEs=RMK zc-Hlj(f@Se#uN4mTyoDr|50g_tC}TGzyAmPQ<2pF{3-t@mVW-B<3DT~S^uy*b~yeg z+5Zpj|9f5-bQ=8@0sY6J4_iM)eWU09?WFKujsyP@=l>?uy0`gwzP#(>upigngq%H> z9Dd{z%@w&s_+R#hG)EYv}b zu2p?T!5zuHS3480$7Wy1Pnc71G}I=Py8gW)^*=cL8^`})wf_;)Kg97l=@r9?5_F zQ~nRD{g06TL4Rzo+Ix|EeCNcxCVRj0Wzau<1pap&=s&uk|HJve*>&#hUmIj(HU1Fa zKSHBSRAprN(f)U6{>vrxKREmw$Nyoq{}IB!`LBEh|HFq*daEB+JeRChYNOMCZ6L`H!G~3`$QaUX^qrlH@<4|DTwD zldV1XwVU@JXtk9SWyb#{@IS2`v&O2;lG{hW|0M7q*njG_3-(WMm5*FW>wh(<{{;Ud zv2=~%M@jvW*Gc@7ivL)g+8P}S`;W$INyvXuzRs5;bajG_jFQDFjxl8a3-3RX|3UB{ zQ$hcR^M9*dS7zVGA5|KD=X7IUviIdrjQEEZ_!lAn7aabrF~t9+)xS{iFIM{>A^k&8 z1(E-ipLISiB0hL+1q1#;zPi{P9j(?bH$ry;RTOSQH^|v{*rQ7xg zCnNsh*d&Jd4_N#g$Nyoq{}IwZq;K&7{&V>F8^(FY-nV)f@DC#YgTVjig8mKgA0q!` zhaYqNRJ@sBe>Vk~+#9{}5WZY`Lku zzIdNn&!{&hQQV<6jQB_Y!t12|2Zw*-_&==nKSK2n^3TBkOW)7%UV58_L4uo!>c#4{dpJJ|B(Cdf%)$}ssH&?{tv7DkC6UBX|WXKzi^J5 zE@aFh*fk|~cJcJUF;w;cDTV*74f;2n|66oHZb}CD|9+Bc7;{}VM)5K;|6fh={r`XG zpW*zE(EO9LDh2Xiu4!D<$WzU0No2r3RDl281^SN`(7)mQ-z+L;Mz4Pu(0`SZ`k()I{u$2y2Y5z;@nY)JwC!>+AQ=GLr{bYiF1Kj;Sl|N9u|KQ@8> z4V(XHS|eSiWG1>$~tn z2LI!=!2ezh{l7ivKd||aO?COta#p79h?wW262=iEgZS^%@4uHTn*aab`DZx)BQ*cC znUq5QOXQe*)mXM;({?fVA9n-)yA|gD8qmLC^B==hZ;fd<(~);O>OtS#@}5R!`rmtd z5&sc~f3rIO4CjA@^bh5sE#UuEm~zP{H*B}N^RWKM8K8f|`M+&&vafU|{C{V*=(roD zFz6o!>Yog$|M`FCpW*zEkp6+^kp}pG?R{p|Y~6FZj~@Tnb=L;`PYL~p1L)td`H!8) zmu~?5&r@Rm?S0|Y=@stVvNnVNCAt3q{l_J8{=wnjtj<5f`5z(ugX4_7;QysId9=8a zSo7$AWxp90tAYO|ssAMOA3ZSt-vj*{&j0Q1-O?@fE}K(Vh3>82R=uj_FU>iMCp1@) z{Lg{<_k+~`;P7u&=bz#HkC6V$$!8Jxf6dGgJjvzTRoHv-^M!ElP%8i1Ug-a-VgBy} z{Tnv_Q997;B>4YoFOY`%Z#Y%?;bgS`9m+qQN$P+8-}z@a|06X2cji@q|JUi0IicWx z7IPwa3l09Euf_rUKT(+f6`}vb=07@F-7#x3E>pTGn5`D0eM!R1aDnCqb>Kgc_(%7K zi=_Sshkvs={|x7Ug!E6*TOz>!tIG0+_07LU7mT-7G-jJJ3-}L%_=m-ZJ#hcKVE$hL z`ZsL;qiNrx59MJWJ-(y_y9K44E80iv|29zno|5{X|9Acw&i@GE-|OTyf&UkWf}uEj zkHnWrJ@ooVBL9QH{||%y4V(Yyk|7eu^Kj}b_3pnPFR6F#rSX5F;J-Sg|1}Q(W_A7< z&i@GMAF2d9!2hd2D2v_aXF*TuXOjO(+5bPI=s$}7Oa5c)+7t5}_4eo=RNz$U1uYM2#Ac*AO>637 z%}TCMTv;w?cm(oa_8qa@yd!E|z#Q*|tw;K8 zo2*5bN(|~h=K=n44(9)6;J;$?AFb`v9IFJrntbL9777rI?uhEi`xuj(ou8cGNAh3N z$^3I1{>|$AGo1es(!U7*D@)|Rc(8{HZyjSgbNdwS$ukV6J(R8&AJl)AQubeaLH~*K ze`~dS8S%6{|99Tk#-`78cdI396*`4)E`Cf?|4T^z-~T)RYzu?`Ed%~D!2eWRKLPx| zLJ`0v#9 zpO54};_z=)=bz#Hk5K;;ZW93cFUiX3YVnT~e|ymIe+mB|9`L{J0sTiL;Qu)PH;e8g z+*x5y0^a7HjEzo8k6jiz@3g~Jc9Q=&Q2#;^|E>K0oqvY&KSKClxn~9BzjT&;seZy! zuW^UHSS7{q8WsL^5cIF^p#P||czHp2KM^+P)B+m(W8u1Kr2oPHJO2#le}w#BlHLV^|5vKN zf4cLF#o4=}WfEszB>P|B|26{tAp`mkUg-a@`HzR@oXQk_D_3t=%#%GOP{W>Mv!R3V zBoj3`D*nR_LLmR;!^ZYqT>CW^Pq12N zV`X~eh|2-QfAFO6zjuQF56=Is*10TynwqWR;)!FWMc4&+S_%Gxaim0nY`_~&#D7ag z{`Vhn_&2Nb&pwg+Pg4Jd_8&C4tLdBc`MAcb$%(d+{-^IK`qwh}{&D_qYH?#G^_6?wi@w!c*ZZWZ znzvpG?SF^-e|eDq!BQOljpP5Y+W!dY9~x3$L;g!xXddLBIG&#CtwHC1mO}AA&4vCC z=l`~S*`E8S^uNulH!M;P11{%gkJ->l9*!}%W}{-ew%MaX~I z@Nwgp^w*IU36DNi{-DXfT1>hBrQm;w^M5;0>98y?>3u+Hh>xpJ(uGaoJLvuYp#H}q z|AS~8{>|$AGo1es@_#YqI|BY+lSN0%bt!+>Xq`dopDFwQ@09ny4*Y+y`Hwx%HpzxN zg_^%SQnv5;TIKoF{8v=}zajn4A{_pW0l|OHDlA@*>fm92|47sP7wcvY$Mj2|02 zey!m=&CUFyCkO~q=YK^a|APlO{2RyrVYUAe!vB(OJRtw&!Q8fGGv-K`E6!q5l9+B% zIfQ>5f&32w|6dCFH=O@lzuD`FufhNKWJpFvQsL=kaptc3JPj{SqRD@KjQp=vaQHW? z^UrYpN67!hQuPSrzlcfcyp*{u`--bb)LSEilgj^i3&sCdjIWl_&1LK!)pH{J#L@B#&}?9riTyV@$BiWuGK! z{pVxQe-QXrEaV?!^B>4?2IQ$#O|6#TN5%Pagf58s^U*gGX$JMtR?~oKz zCH%js^gnr&`>%Og-j2poML6Yr6H<3{A3gkw1es-16>{Lg{<=ZWT@037~} z@PEfr?tgjznpSN7qdMe^LL$3;tgUCxy3iY?0ZasH94#|2L%gA0LPP z7dHRV`GI;_rC)RVm%2x7FI4JP5&s?SKM4PynUwl}*9wP!46p{U0{}F*)~kih3hQ#F#w8psC9>PYAA)6Ezm3t^fMy{eOnT zzj6E@R{I|z|Ci|b5rqGjK}<*Z@4&YET}`)MG|WW)PoV$!LCHT0g!vzv|M;fppVYVp zk8|EhAsIodgXg;+$z!{Y@^2{b|3&ov_u%kv9RG*a{zu6Fr8}|={J;9&G#WmTDG?}A zFI34?Mg1@F{`-Lc7lHpj1N|E||FJ}5*{HMoQ*~kgJvOpFzAOAypjYIzvO=W8;I8#A-j82ut zkp4Fd`QJO>@NXRdht>W^$p0nbzzfKKd3%`4QFyJo>5}cH_8YemdRbqJ|NC)D{vo0N z!TG2j~Cx^sZv(l<0YpGADJCG-AFNJ`etKzpdis zT`K%T=?T{bxza;b@m7xD1 z^gr1A$E2?*?cGtORrkM^^>>Mv3bqIpvnA`KDpS}0(Ukg+$G>s>A6EMxA^(^9yimx0 z@p7M2xF*9k((tN!x?cA0n0};xSa%8hud{&vKh&D*RAAcvL z)DP`{hxGr#r2jDv|HkouSnYp=^iRUKY{36((R;54L3d8x{PFl34gO)FzX0?fyFmXz z=zp;JkL8hf!sEI_a$O?=vJOP-2-%X#=W6V)=XWor7U|#WT@e2bi+|(zKdkmYLjEsi zavYHVq9fNL`oyqhMxbgguUmb5)w$cJ3xNMg(SKBd{^KL~pJVeM+eQ4wC+vT@?)LiI z3sm+iIOxqcx3QXQw=I1Cg}=Nh^}mHu|MB=Yj{n1I|0Cr8VqGXgXjz1pP-h=s#Y9{u7)3D1Bt(Zs+mZlQh&PDRoZ%F4QX-t8_-@ z+_NUr z;9nDg|Dp~4A2|QF+2MBcLjv8`sJ{~-7uM-l%4i+|(zKdkmYLjEr~t9l{- zrEwX@5~11j`VRvCBJ>}tLH}_C_%AsBw>O!eD<9V9hxi94B}SSTFVC>{pW>&IF^fk3 zISuOnApZ-8f8+Q+toA=b{x4>ebs+ym?3Ya4s4|Jz32}PK;(w1@GNk`J3h)0>nE&m; z{{!d$mT)MBKUnzY`pzS-<~@n-4=VM$^{K1>Ra2vAjReVmcueLW;P7u&=bx=W`%k+4 z56OR~@Shq5Lm>Ypp)|exWPS9x#H`T7t4pF61X~4Y4)Px=0sqJc{!=RSe>nd)3+cJr z_n67E%W#g9nf8w3yPJK*qd9RG*a{zu6FrM{wt$bZqgrBtu+ zY|VY!n_IgtbddN*j&mI7KM4H46!?!g|F?FT-(I!W1)>qco@+BZgWm%G5AA=4_z!DH z{~sLwjpP5|@_+u+{|NcNXk8YB{1=YZii+y{xyGaUe<=Sc2J|1#;QcTAFZqw|HM~7< zyslnJD{OH&8odkne`xuL{^FPl2jpx3I&6J##eFu706gZBz;GxNXLjK2J$@d?Jf8+Q+toA=b{x9Kz zG2s7or8Xrjy3xNF&HqF9Zw~iw0{V|J;Qxlre^hgbTV^&zn?p}>f7`?=Zkqfj@IM;x zzj{s1e>nUb$Nyoq{}ICf>=v&D|F8Msdn=vKSbRY9|Iqyhg8t(*=s!BZ{{!d$wxQs# z-ibzmPz`^+$K~$tlbPlpt|a|`aQHW?^UwZ4`%mP5N9O+_|Eod%v;KJvBL8I@?{tCv z##7MzKXm^p@c!?C`zQ22xcXP0S)=oijcNwEx8LzmrWoi2RrSl*EK@74OjeKXm`UDf$mz(0}6m z--=sft)uhPT-~x`%ALH|r_%V}q4)m+`TpbZZyf)J)&55)|GBf}Ig$S&Ubdur{AG4D z{}0{&X^Q@%6!f3i{KqQZe}uvXVrBgeUv=ichyed*#`=GseE)IyH>>l{UXuGyQvbzx ze!zd&E^9#k%h&kQn?2#FzG(g*y8rVO{l{zYzx;vx52*M5DF2D5|C~#2EU`1Q+PZ6p zN%UsVzrg>QvHok3{y#YUo7MSem&yGnssCa;KlooJ`MN>=i;auJXUlxS6g2-2-M<_~ z|Dgi@m(!W@|H=K2Mb3tR`@#C>rp8Sulsm#_skXy}N&c@VIsf7CZ&v4@T_g9Or2dQX z{NVrAcB~ZgUxfE?9M)d$v}FBGQvXc3|HJV96Z(&(;D5OS`5z27|E*JPXOrgEo@Ssf z)GPkO2=X6k^?!u_l_%-{gTudBoquLR?mtQW7utW&eE*zMs*wNEDf&dXi~AIpt8B3P zQMsMS{|WfN|G@iC=s)(r{EN+hY*U##3;ch%ZWu&%6tqQtZR>gblJviz;J?;n{y7f+ zW_AAA-&EiKNbmpIu_=)M;w-XQaHkRXbU`Eeu^lM?V!;381-$=+{-Xu-zb}#h0ph;^ z{}J(D2lTI*eNt~bTc166*;Xf4!{0r=m_24@kde6tx&HwE+eC8y!{Oho&Oh5i?mvQcr zKT_jAXBWEq1hZY5dR{!%*Qfeq&FKQ~L}LGq@{b1muV#?*9}fS<@qbwDe}wMesd^FQ zzZCUHgrwHAKI?t*<^}EfkHPzI4*ZAXz<=C}{0|WSh5q~vfl4k(ey-QfxK2pinzk`U zK5aU&|EBT(Eh6VX9RAJf{4*bN|4Ge%V)TF0HROZ*ms?z~cf2sUH1&o|G8O-qxc@SE z{~rMVr5X5-IR7`{Hc3sPwxeaoN)~V5qUbbX{hF0a8Rnm-Z0rWqQneBg2{uAN<#d*BfiBno- zoTi5N=sy16qs}PN>OYA2=P5b=;qY%(=bt@7`%lLFU+_O4djG>BV=Ci+P2{JNuM z>+jB^(tp7IqhA%?KSR)e7(o6d&i`$p%bvsA&WfjwO%~-dnLlmkWO3u6{13!`+e^-W zIQ*N{`Dd@m{UM7x{D;H8S)G4oLhe7Q`LBfkIc@*P zX=n)fFPvXZYNWD-VoXlUnMux{VyA)h4?%k&|6>#2UjdMRnZn3_rNMuqokGHjovIdB zIefX$7j`e?S!KnKM-`8SN=0ggt|R~BhvfW+!@pUbfA$x-|3vyPI{q`o|0Q8;1mwTO zeJc1jCOkIww0Fq-MDRb2ob0WhH{gHr8}uJB(EqFj{v*!+%~bbz>1JIc-f5C@@8oak zex6YzohWy?>&laWQorm|l=;Vrod0n6H>>l{R+0Npr2iuI@8Exq@DG>bhQ|*e|KuR^{vXqs?SH8KpLt68pDJ9EyUgX5 zn$Q!{6MP>059sHg^=SSR!QtOH{tv7DkI?*YTxbCKFJn%~su&4PmX=}2e@}w^590o3 zLjQ;Jf2;NSdi_gSR7_xY#)PPYf&1=nrSZQSeE(0Q`R51@|7LamnGd=Dr0IVd=KsvR zJjj2!J}=hfqD-#98HW6KF3S5C1N|S)|4q12<&##`lCQ^_)-K#FJV$sIJHh{_tAFiK z{|ENJi*fijtMku%$^9p7|Bv!N(D&~@DFX6e-0lRpr^UNvrZeQfFM#|H;{E#y{SVIn z%~5H+yeX%V!3@n8M?2+jOJ|K?QvXVz{txVbKjH9iR_C8hBKM!P{r`afJ=OQ`xPBAl zzu5RMezm)Od6R83{reYA!M}Jx|2ZA`9}GADrSCbjJwZHjlK0o=PqRK21g9{me~Xd- zPaF>aW_AAACUXCY^k2~b(VrjQf0+mo$bXr<%S3~7)?_tthWvMa3jP%d^DoZ-tv0{Q zBdy^{-RnCB7vz7cmM^3AzZ&GfNe$rNF#pcR;oq#zKP#l`f0*q52J*i+`S>9JWqOZj zuJSovZ*D68t3m(wX_WUb0Q8?Y|F>xCtM(R%je-w z!T$RThy9Y%6i*Ut?bEETT#u(e|rJaAnK>tDD|M#H(xy8tTrM>@O>{qt?PmCOU zvaGi)v^@0c#mk==^1psi>VKyQ4*$mSe^~8*g!Hd6DUy)?@;R#dd6Y*%VXXVwd$jYf zHwFLt4BtP_|INZ^?pjSp+l_O#1t{guxj4Vi><2qT{hNyT5B50xo7MSeDdhfhxc%4Q z{y)>x6Y^i?XKm^+PE-mtxOl6NcK+q0@Lv?c|3en}9}GADS%L_&2Nb&x*+X=TQBl+y4!`|LyauA^(Nrpdy#^@-bR})QTbh>nxgos&M!>j{n1I|0DGN zOHZ8u`7bYoyVhTt95yaMV8>e8^E*QR2a*4E7~a1vs5Up3%=jq`u&_i8cpYkgl=_Czwks8sm+nEaVvY4`u|{!gIP|GTj`{F~MJ zXEx;ib7cO5yJsHczibI#Q6u1{n`aRHy_e+w4B$VRg#RVzKLQ~C0_Xqcax~;_iA=JT z&;7)JtlMElt_6i1bofV5`!vLV;KkwJIQ|c-{f`j-b?EyJ$bY$Z$0M+zuIbU|O1VJV z`FA^o|Kb4qZ=C;IP`&Tw)=V#t)Du2NQT7G0u}Yy14E3)7@gL1`_&1LK!)pH{H2)io z7A5juw7NE&o17#UQ*;eRZZ7gt=VEi z?7va|(LnusNvZ#)fjImd$Nyoq{}G!1)gyQz|K(-Wr>bHPZyz^1PeauI58i(dh5u3m z?;poKMNA5zBQ->l9*`$XhPIXRYg{#{0S|6(Ek66gQc5LYv; z-rXzribaZKww1Srr*57j?fxI|&)t;z@85^Rzj6E@R{I|z{tN$@36TF{Qo`3V@rv3N zktMPcwDYes1^@B@{2%B4c5y?-*MvjgcHRpATHWSW-}S8NQ2_(~n~3<2t~mS~$Nyoq z{}G!1lVx2Y|K-A$l!`OC-i4l)iPE(5Zvn;sb}8t8aQ<&6j2u#Jjkra0-t%TkcPLz+ znk3gr=073)pN~@ie+A(1Zyf)J)&56l{(tkl0`gxTsXq|tncL~`(dBy;$^RMPKh#t3 zFA>PU#QDFKsNX9nQ4i-!X%CIhdgm4C>g{u%YX37>|BVsf?lGCP^Y7C^{pT-L*ni>t-#UZ(B)Wr=awAWqXcXI5?I<&?kY>Pt z-y;6wQ5^n_+g^h7-i-@M3f1N4#|5ecc;{4x~?78Xl1UQuHdKFYRh_;WfKNHIn}`!2dS}{DU9*zdq>yaQ<($Ml0NG`Gpj}PAN4g z8C@E>vhZ@ZHZ zEALL0aeLv?68JecAU!uCi`xHi@clnT`k&+QZyf)J)&56l{#Q69OXR;Co1q}BJ#JFd zvCopF^!Z-{{Qp4Mf8hMzy5owhGv74a8&|9GjIGJCdJW>gqx}bw|0J>#@xO8SH;(_q zYX2iN{~O71K>mw%m2&V{Z!-T5`9IOV|HU}}w}jbsc~5z=rXEn=tFzchz)+gj|7!64 z7o*gFJpPU2|FGKs2>HK&Un=Ck+<5Ti?c;L9e?;~^{SRIJ%OLq*IQ$#O|6#TN5z;@r>3RVN3)-|qwXH!=U<@NXRdht>W^2>(;Q{sQt}Ugur#ODd%2{}T64 z#mC^ItLIfA7KJ->l9*i$(iS68~k`{|)e8du$9K|Al?kk|o=A9Wo0)o_#3a zqIG%Cdi4Gi`VWHtava`&od27U7$r#_@k}`9FW^e}uk&F~jGO|MHM4Sm2Coj^-M!{WA{I=zj?P2hsn{f&5FH|C?6h zqK%f`>epUIx8!`OE9q=1Y1FAzME(~P{`c}h{b%%vBpm*Yz*x z>|(;Bm9%Qdzn5$pNA|xI{Rh$ie+B&q&i}2|JyO@@P4_e1dlDrI#q2Kp{t8P}PtfT< zqas4@2 z=dNU@ApDES{~+>TI>7$}SO3_;c{P-JtPPzMcCpzmcXVF1;b`cI02=(mZdoDXKZfG) zZyf&zm;dvp{zr)ap?|&?@?Xk>z2p2(r_V0lmS!J4j_iNo{U`E22>yQ;yni_VH@kg1 z?<^EEdL{_@A6&jNIZ9Fd8@Z_Uf3W{<$VB`{0UZ8~pcoZZw61nfQbeY`TAnTsM2cZp7ZSA#p zel<4m){5Ok{LjJs&k#!ew++GJ-#GpctNo7<|0DfhAIN|4iAcYcnH|3WjI;k-|A}XY z^bZ619|ZnC7x<63`sZl6w0naR|Hmm`l&hrO)f2^&>(Txf;U9PRaijO&2Zw*NI{$1H zb^kZa{)gEAbx$pW{Fk0(wI}Xcx4QNR-K5jM68Rs*`!5Ol51jwo-DP#H-TLSHZh-$` zdV;&p8NZ{9{4ZTf{qN?);oms^53Bu;5dTBQToLkLCJC7s8!5?jakc5v>0fIo_df>m zFLC~F{jDvls=VU&oY@n;y>)iG<%xucHx2*q zJo3NWfy2L9oqzU&+<%VDf5>^10{Jh6DHpSXGqMhaElaSg-d1Z3{vVY6Kau}I?7v#T z{{!d$X1Q-^?RK$BmFBUHGQmPQ03@j)4+8&}1pNoj|LxGzjoX~l-}>In`Wcqz zpXrl*W(nH=4&{HHK=1!G9RAJf{4-JN{*TfBh17qlALE7m7x`KG0tRA@hE+1#i|r^YnHPA)P8%cb>Y_yZ==xucgX*EEb>3tj>Erk{2x~PA0hsS zZi^J;zsxu%nxvZE8Sy^5jb{I~u$9RFAn<=z@PEMhzujMQue4rf$%HlIPH;{WG!o_z ze#_0Ee-}aTe-#e@W_AAAdbIx>hX0H3AD4eqAphlO^UbH-Ej;BWKQ$X^@ed;ZgTVhc zf&V4W|E;0C#`J!iS&04RqXkB}5-zi1tHPS2-khWHzw|@?4_!F?o7MSeThRWK^gpM{ zKY{%Z;(xS`DTDl%K)!s=(80`r#m_JedNq!TrYo|AEN=Ao{-=@IS!$zs-_XjgVP)W>4mV@Ez5T?Q@$}jz|07 zA^j&W^1oY-!@pUbf7XlkpOpMpwEv;^|1=GCfc%$f$y2WJ<&+oRiE5wr}6@pNDi?B^x9^2;b02<`3w1e@lmd zENqQK?|(iH|7Lam*(9|8#Q2}J&iD%XFA0A@XHB}(jG!VTtoUFBL9Qv|N6lH0O$V}6&5HG-YQgTQZ0N*DPG-G zz)@k7@P2N@{~Ub(O%VS59EX3iI{(ZZ?LPtk8tMJtm$w-5U-*1=lf(<&`!*!JseWJE zNX363@;`|8F9!6VIRCf%PS2jzw-uBXlthKbh398PS)N1t-y!{{B*MRs;P7u&=bwE> z`%jGjS@gdVkpEKu{uAC+YOB zME(bX|Nn;m59j~J~hz|eQwJ;OC|8H^lH>>l{Hlh6| z-TsH(|FX)b1M*)oJubS$S{687-4!QJJO2{-AB6v55zN0h|F>O^YyY)w)$1_nl{m-k zDt>XMnZBLI!CA&M{>K^U{r?Atf3rIOtQYM+nfc#S`M;Uw9fACp#kWlxHs~yvV#Q`> zy?CCJ-H`r=$p0YvzvZC+#QDE%XtUa4=OnP0!@-DKMp#~1^oLqIN0WFkssAA6zp<41 z-@gclf3rIO>^9neV*JmPSII*Di-v~sG|nf}>IFOW-A&HOhY#t0i2M(t|9cMn7o7iF zd1v2=U;FYG72BTW4^iA(@NXRdht>W^2>&bS&4v6IpJJb|kVWBUuC_rFY3E-e|AWB)XF~sn^MA821AbA1 zeDnB@X*mLkqCt&$RpI6I{O?id{qM)&->l9*Ge`SRy8RCo{xjhJ-D%hb`7iBr-*2mQ z{heGHQrr0uk_um8lSFcF^8xH?wb^h7EX#a`vKTBF4 z3;8dBQepDR?S3xro2*av%r)IDoQ-^ zOz;njHD1X7VG|DjW_AAAYqb9a{A;B5Km0`iE@phH2;<0@NZVoxrWOUqa zX7%3&`9Bok@NZV;?0r-Z+W!;z9|ZnS=znnjZ?)ZJbJUY;V@%_@BINw_)0yBO%lcCg|NA2j z|7Lam*$%Y-B>m6n_|Jp>U(TI;6_EdOa#}Wrm653?J^u03naKYj@c(9*e{ueA%Nnh$ zGQ%4K`~35+#Ke2KnDqe}AL-&j^QqvpWB*2<<=V_CNIcr}k6TkpJSEol&^n z<&eL15__@ON!0%m_!p7?LHIwEf&Vkk|4mJ4On#H8*P^&Zzm~mR{?k!ypUheTV@|~X z9Mu1Dqxr`ShkxVvKdkmYLi~?)shc4GMdHFN_fM(!qnnbGLees`sQjOa{13wa!2tX( zasF=~mUUE0>+herc7~FXu;`R0qsn-C^v`k@>ZQpH?7s*0pFzm~VG9obW_AAA1GN97 z_Wx$Wf0Wsw2>CDeTaF&hKYVfal{xPn%kA10i!TwQ=zo?{^uJ5t{lodcoiKBFqQ`ENM?x7j^bTinCjLaXlgx8Hox zs&Y^Mr`|Jq|H}jD{jb2`-#GpctNo9V|I4B2J0Sl>ms>`+mG3^sJLPlY7ij!1iTn@Z z{cnN!7w7*L6yz(ky_5f*MzL&|<~4!Es+{B?SlN5P`S)Xmx|y!`DuaPiHXt6yyvEE9GriN{11Zv z&<)IhU35|DNKfpFAT$ zbDO-q);|pMj~{yfkKyod9RG*a{zvHjH}l;D`7cLHY~{C%U#LFs@742Z=U*cKgLwZJ z!TgK!e_PYE$KCPJw4I}6CKzexYPAb=$v0E{zX$an1N?7A3jfg*hkxVvKdkmYLjEu6 zHtdl9GFH>1XY^gopYk3Gr)lS3BL9PU|7$@1iSvK!?{0}`bUw43(0_!+dz2qApeuH|0nW42>ovz z_+R4u-(1u^%-xe4JzsZKzW?>^mDpRucHLs>m}#kK|3UD-j(Je@?=NupH;(_qYX2jo ze>nR+1@d1C3ooubGw0lze8EiNboIRc7}Ece$p0YjUlsJ9IRCeOmdEuD)vNs$xo(`S zmv+~qsj!z;|3~aU-$YXM?|nG@8^`})wf_JZLF@)m7xu;w$c-Q#S(d9Z7`zmn&R>FY{liD%|L|RRW5t(kPpnG*Lj5nw{~++MK$M*9bds z&XuCk|NW1+^Ki>~|NpqkXfK3zW}9TRLuM$1BW1?<(y*PAGAcq-6YXWBse!aKaL^#T zg>Z}pjbk-`?@!&Yx|j1h*X8=v6`FuPn|HGM2jQo2$rhjApAG-NR zkbiKFoJ0Cw_S7#H+a_f$B%wY;KwPm@wMPQ@S5*H8)&F8i^nZ;1wynTlE$rk!DOZzX z)4j4x@)kr{!~VB-|J{53S;R2%??*BH8}t8Q{Xf6TKZ5=4Hca)p#P|M{?VEP z{x?kj#{55Y^N+y)F|J*j^uLVvet)Cm%EJV&1Q)*~H}ja@{YS6=f$IOD`d`wB{}DU? z3hZ^=`PA(NH5H}D@kvyPw$0#j{!jnG@ITgL`ZwnPp__jM{*U-CwWR;0?k|;QgRc@# zmQ*-@cCHKW2K}S2|AX>BtR?p!#(yh*WMr%p=zNLFf9MCcBz!&kEe^C90 ziRBFcV-2Q%WBwnk|L0fvN05K$kV+^0FI4_xmhd0CLkxJvDG1dK{?yOEr20Q7|4Sv| zKVkg0HFsi$9i9#OOH*b^*&C9K5%ous{Dto&P-&4F0tirhn7je-;b-Pj>$& zWB&vBht7!Wr2mEFKXTV(tVexfCYM0lcIc|QJ zld_M*4DipW{tv4Eg@^cGF#cP!wLr{pVf(40CmIhQT&mwPvWCY?EJrIz9`+w(|Gm-w z03-iyhw0y#|A%h=5#%4l=dC0CFAFvWIp$cM-P69fedDVolI9Zq{4=WmgX(|TL-L;( z|IN-MGQ(wD$CztkC)G~B&TESQ7ED?Dhi?86=zk^hZlwPu zSNw?beht$Z<0kTtnD%s1SzrExy8o&E4@&>qPUe5?{9DuP&*v5Y&x_loMUAy8t*Q;G zua=e0`Mimx|JW{uG5-}|`ZwnPp__jM`3Gx53DW;EL99vt9dE7NNdb2LSvlkWe?jt} z82{~5n3IEj$EdVPF$VF%OSR@m+wo3Ol$BPHU_SpUV;TAP0!;tL{6BQ_k0AeGP3-{|NFASx>r1|4aGfQEvpRw64g;2&L*TS3f+k|EKyt zsQwoxGXG=zw>R3K{<>q4GsevzQ1zqmd+_x@;2c7EW6lS#)`pP4t%e@FFyQ2PHzGXG=zH)ThqC?WB=>kllj-{2fE zC)CPqSM!o~w*JT8{2BcREtvjIcmLT6=Knt@|E1smSmP5y`d?xX9$gc^BSP-7ZtBda zyV19M_aD9ff2#k3%KxU2_aDZ8GY^|H+rC7>mG8vhJaumQKkEEQit*p4maykP$o^v?)&D{1|3xJKiSgeW_{uw8 z*?6g3nvkR(SsdQs@%ho)UjI9D{{2KZBmeG+>ECqspN(YbU-15c{SWki0RKflg_rcd zOkFFqLBv`{e60B3Vc`Gi%l}aQAC&%IN#1`L|Lx=hf3=*f$KCB;i#z@q@oZ|xlnl9x zGn1J0k0U4dx-#a!LQMb0{6BQ_k0AdL?h`}$UoOqdwI=zWAz8z7RdYMz`t=X1XfuZY zPn5j>F#g+-MB7zMN+zYrU6+daeDPUG!SRL)_WWB^T|nRY|KT;Je`Ee1y7@-FzemVs@2;CHkouf9WY@BGamD+zm|55Mx7hKhM z{y+bO>ED?Dhi?86{QmdWuOCu7rcMi_+S0Me>GoT(*IKA`*-$(Xzzp@{vT=v{J#|cDuj{$y+r(v z82?RYqr@aWoe`RojdY|MMa!mi&gkpEW|@D43j5A~T>qxK|16!Mf5H3bXZg>@u0qoP zB7RHt!>Gy?wfk;4H@S94vhy#={@aZ3FERd`akXm5h_GR4Q#?nzH~D^b`^!JdJ^jRq z{Ve=TkJi5PAJ@O>?mx>L&_9{{uPpn&-u%l^=>*dMvUlQsu_e4BsxxN{mTn(X$Iibb z_kRn?e`5T%=*CNz5|eU0{S)${w|M?>YE#9|`>WXf-?b`m|6}?$-Th~)f9C&WItWz0G?YEQ{t5{d=o~HLnr>c%wZm z`Uk&V?E1d*AJ@O>?mzpRp?_idPc_0~Qul1hE_1n=eIY6)?Z%D$T?6_DgMUfhe*)zF zhw1?+zZ^6zUeG5FWIB>!kGI#`WIZj^eLz~vnr{1?At>r>6n z*~Q3RBmKV*QaJwqME?`>y_r}T@r=BGn?FJRzd!#*_Mbb=w%Bco_%msphji_-AM2;o>FMlO;Mt!XK+=8lk^KU+R{}KJ?T0-u{kmXU^uWU~N|Nnsg|5>eS_h+?hT1hic-0~=NeZs~+ zB>sOg|4o@g>EG1L@V`L+DOdi(QN3)^{}NUjelI0GAmQitp9FdTVf;5m z`!Rvy_Df7>+i%ae$y?_mk-F{0@^`CQ_n)gnDE*uAzmxo<3=!rkiRQTB4v8?&g!;= zk^%jrKmXI~f5G@~CK-npEzZ#Qm>MWQZ}c41!<#oMaLzxrqQJky^l!TR&z>;-{(=9& zw*Tw>{8mp_kp7oV>IXzk4lP}(WxR%E|HV5068%TiOEOQ`RQ~rJ%6xK~S|fq~!RSBZ zpIy66alE_=KhHyBg}nvb7~n`#ZuC~(Pt*OW@v$==nB z)5tUYroia`q5S`_|DyE2noFOKHbvw;i{kS8C;QKsaE}z5N&m_0n(d!V zn${VPQef?W@4f$LYC9`Bk^P^6p)Tov;r}B2!PsN0kNRKcR-!hH{Ri9USDS_L-|h>w zzIiDVr4*^3UYlFx`|jj(4*kQg=U6@Te`5MK-Th}GZ2f50{y34?|;AZ5v2dccX7a_JO}@lWB=Fde{NX+n)JWCh^&cx z*!}qFi~1+LKc9aw{@eGgWLt>I-M z!RJng9p4@9!0`X{eg7Hc{dbe(KdAf<#(z_^R>|IFV4x?Y`Ix6gqC_E>x&Nt8|A^Za zxt)=JKZxnyboZYP9q_+!%zu#opx!@OSMo^z%drDz=Dhg5d2SU;{)4*zn;7{ID*uD= z-{LG%tlPD7bX^oyj3oU}21AX^E!p&slhx_vF#lotH{Jbb?mv6~vGK3%-mM`0FE--y zM2&f5CQny7xu?JXqL+Un&&YpJ`5%n`cJjMxd!^sG$gpEeV;4l&cp19yYU=BMfc*!V z|8}K8{vFf5G5-(U{3GDM$ZCus{V%T+iiTv0hO1wd7c*s@e?1ua4=VqI@!!mI<{X!A z*ig6RePoy4?X1W3PveeqoPX-JF#lruH{Jbb8b5pgvGK39Jq1bsOG#!^?3v`FUdis_ zovickaYp`w%Ku>eH*xDR*0W`0CAG!>9{O3UWYT%159TcSKZ<{-cNgYgO#i04|12Nr z{{a3A*?*A!7vXQ3wacD5{^Rtn_#Er}yOojupz=Q$|4r?UX!DArLLSPeT7x?yYrK7Z z@7J>A|0w^%@ovb!WBNDd|Dl_I1pWuI{~-M@7UKJdiYe(28zPalo@xI>?*C7W{0Ei) z!T4|S57KUb%*xCU%RLnPXRt-dp|U|CEcp-W{I5}h{5z(9)7^izf`flMF#j?8AHtJk zNdL>W)XnE*^VP%UeN)R>=ij@G{0Ei)!T4`ILiN)5cJG&${wB3leEyX2(i83eWYa$e zZBSeR`FBkJrn~>FmUI8X%>U~D{quS1k^Yy4@Y;Zj?tzKPd5Ygz^^X~h{0Ei)!T4{3 z4vyKjTUK3~@4-_7$$bV4zAB_JNXyH4zO4~~yy2tJB%unIoSM%@JvFRUYJF@d3|BmV3 znE!`v{t@^;a)t(w{uh%e`;Cm1gv6#-IEJ#$zh;d52bKT9_-|*QySiO!zFFQdt!(T! zjW>(S=A{{P=)Y?!VE>2d-rg=#G4~-$3(k8QE|J8r~J+6ZMJEnir-GAo5_WtSfzq0Os zsQ!!L33{aer8=nT;rp_$_wK6r9cG<>FOvL626_Kc`5%n`*6jUpPGNXbY{s(S`Kgsx(AC>>X_;1zY%3r_c^U{sKAA2kO#r0&*^v?}U{KLNcU(^Wl@0k9L`G4rex6vE5&W&;0w_|bmp@0SMzqeb~ z4a({3e_-rCsQ#ywb&!9@^l!}nLpT43!T)-d6yZwxU(W7~9hqcw-O%%4PdMxRn?>~B zB=Y@J`5%n`b|lC4;EtSO{s#XW>M-Sxk<&F*7w_-ue*pd;ng96rK>i)mzcK$0-TWg4 z|0~X>%9QlKSgEgD@!P!lw%c75?+y5WDgEO&vi~w6?>{R4gYn;HsW1ApTU}OgT=U3o zg*qdmeyn-Irhl|e$zKHdcTE4r{6BQ_k3j$9pRPgrUkttt^-(-NJy_n!Y6k24TSN4p z0`mT&@;?~=t!;Ss(|f}cb^Ur`zXW~y(Nt6v6~*EIdL0S*_y6zyGmL)({s*C}lBEBI zZ{q}cV+l=Bo~DK8Sm)m!lK-eC?>{R4gYn$cUm~XkFR3*D$)SIV zSHS)M|J{G)_A~z{8~-gS*@N`IT;32c;h1KKVfyQyXjc7ShwzVt$@`DW|6u&L4LK`z z?eG$d>AYATQE)uMJtd*-ZeRZc>_5o-m)j2ccTE4r{6BQ_kHG)&$f=(6zcd^xYkk)B zwZ2loZ$9h%`#++8?j`R(D*uD=-0@nF=AIX1gBkw;d|AX=0I>zPy z<7QL6NPgv{Lt3lWujI&oQ0KqY4#P z)&D{Hzo`5V#(z_uwOq`Wf0|~`J$?rNg7A-e z{V$h`ApidV-G7Ghk0AeG)4rDUzw8v7Hg=N61lc3h?a+@~jT=pQDR|F{nRM@;{o&$|C)?|(x3e}0vJ1pWu*>9wT)<-_0`O5P(A zem+U%e=z==NuW`+z$536nVn%BC+>fM_Ydp&uWAPV7fk=g{6BQ_k0Ae` zf4Y_Qzx)*!?w9MA%CZ0I)4vkP`;W^1VEnhy3pc5mDh`&vKkTh=|MZ1}>;KN;}Ip;F3!5?c7vO)$+|-xP3-{|Mec)`$E_|4a1jrgdF=KP?nnB(P}I z^gjO&wf_SDuiYRj|AX=0PFb}J)asvU$$OvG;2n~D?pmJb5|;c2mH&Sp+vk4^LG^FU z|3f$b2tI$Dpe^w~n;K}3myy;i8Fc$6`JX^4|AX=0T*5u>26WcwwJLTfx2=D=q4<9v zPjKYljqdjO9}lDYH|GDLn|}oFADxk1r2nOM)LEfi0iU-?ud@H)o`0nBKN$bbrfo;u zfk1sr@dLx1L?y?oOY)7XR`{aDntw?z@ALl_qWU-H|Dl_I1pW`93$4We{OIZ1!Y8%G z3WWyE;x|p7!uxk1|8s=O|6u&L58vzJ+DZN=!!+IY!ps{&(W0(x9R4rA<&b~J^l!TR z&mOY9f7t!M;Qy#88$3@mK4oJA_cg*xOga68r z|EZ?(KN$aQimdLuvDOCz)+KLsGpk<={2$i*pY+GR{)6?X{*C#6=;j}R|KsvjAJYHg zrs}KfuW^=R|HbhClKdx?|H1fgcEx5Vmd6Qg*V(S^G-K>|=~0s(sNa*n!@B<*dbrR3 zy&KiP>Fz&!LiN9~zyDbEpWe^!tT~7Dzu2r^xoGPlo3w*|3r;O+*}&!dr}94-|83#2 zvqa0ll1m>V3%oAJrsTv!|7kz} zkMIw(yW#(j>ECqspFLsz|FiBtSbqQ2$6HDNOGC@E=IXM_(Ix%;AI$pKQR4rn@;?~= z?fdgOuX~rb_?leVnKay0D_lFd^eTh@JnEp+7|CuDx{{j9FlK&?CFQfAn zbHv?VB;L7N?9Y;a=>7hK$or4V|6u&L8)~uhe4HoG9{h*8#Y!hrn=Na@4+gU8-^+H6 zSPT8nnEs9Vf9U2Pf&U|;K9uyoWCWiIKN_>!+s0#O+z9ah^xuCnME|1lKN$aQ*^)&X zn`KMKK9z42^d5X%HgJTgpv^QE{iAwgfFM@;?~=?fa{W6YW_mQ+^Mh^o>UG<*&c_`24~l>Fb`Ru#G5wqF{jh-YIx{Mx*=<-8|#eJ8bzs zihtGm5&Ykn{!MrP+0&o-KUwsT)Oh|U8l?Z_K*ff#joqgo`@M9B{4-PN4xG%Sw#9@l+q+liJt!$@+#!j=@dWa`IqYdp!9z#|AX=0qGSS=CfkY4 zp1eSC+@OgH8p=N={lmQf?mhqRIKljf>ECqspOy9TPk*}q>Fqxu`@gpAd!+y6?6FHp z*YZ}z9?9NP-OvB&%|G%o_@`9<2jjmjv$q_wxzV6Vv4AIDEJikEl=CQSO?LnHj_ol2 zWBNDU{b!#z__w|M3)at1_J7e^BS`I@(@%5)b%)`ujg9{h!MJVEnfZ zlkQQ4#bF;q8l%r#3<|iBYMwQp!T%mO|Hr04{~xA*WBwny`A4AtSjlfD{V$T^W{w!& zG2!O40);EA^Dou^LEZmU{s%k%PP(K`_T+!8SvKW~{Ri8(b{zQ+ihp&d5ct=a{!MrP z+2#TL6Y^iM|6s{Km5Q{G{+E>Dq52sWUX3vS5BMKy8Q(vZ|H1fgI~&%{cCeedTmMgm z@ngkiD)7HkZRFq|E-8ZfAJe}v{}0{#BP#zv-T%ee?WF&uwDe}fErYj;pEX)69>e~l zzyE`}|Ec^B#(#U&SULNly|=0RflGs~iyxnS>H|~%6Ywu>ErEZH>ECqspWSAA|8V%9 z8SfwECvt@UrJApoG4VHzmEt>xK>nGr|35(Vk5rQXpz=ST;QRmC{I|Ee`fgj!-RPH| z=aSR2^EmP!)cx-%3j7C5|E9bDESQ6TOWuF1`cJR_C+uke;eTaBC#POr8esi?khe=7fj@!xd#dAwAkw?sN0o!#-<+dc1AD=d;QXVpK=|mbFd*)LZ@%Z!wZ|J}1?f*z-_#deJ55|8pFWIwyot45S z;ax=krt*Jm`|sZSzuOl0KbZbacmG)#^ZO6O z^BMUMD*uD=-CMIhy>jKQQ58#Hn*9U&50d}W@rC?5rhn7jf3}t4-*Df5u;@Q(>&KG*7a3_0nQ31~ zex0197Rkqz|4ik7F#cQC<+Nd;%8%vig)^mmr=_c}1OGd7{=Ksh`VTPuo9_Oz*KGZ- zEc|<>{Ac(&f2#jwa*k4PPhLkP6aS>Y|Et&kLgjz3^Uu7)X;DPjGyhJP%%kT#uSRm@ zKdAiYuGipy#Pn~v`_H<5=Ko~TKTft4d)_1b!?v$adKx9mq`$4`UK?f<2k&1d{vDP7 z!T4{lYCayEntL#N-gUX;@z<2|AAtXTK>vuF(yRjhM@;{wyZ>xxKmU{b|3UvG?|*jv zPv?sv>3kzF z4F3O^{!MrP**xa|Kj@#F`cG8iy8yyJJn!M-vnAKjcNc^I3j42t`=84HVEng*j+koV!x^)bQct{#Uabs>pi&$L@ywJEnhQ{vW#eM{xg#JA{z_mv{5;&7Zt!+&*&u zFIltd2)uup_TNw$lb>ECqspEWW6 z|3Uv`@Nb!a|9b^ZN&kz8#ssBO@mJDaV%+i{)ci~3e=z>rgPO{Pyy4aX`#m(=r$y=? zf5oYPsJYmCK>i)mzv=Ej%cuH(sQedG{(Hdx3i`*5h0R0CNdJqc<^}o1x(i1hVbebb z?td!(gX;frqUsgJUUyTTwm*H})zu^f{&%wf?!W&>90vb8rhjApAG-NRkbkI7c}@CX zf<5xwSGujeFbnvv9N#~c|H1fg+m`LFN}%|^hSv;Zes=ze)^{`uMGHxYCq{VzI_yz*})+h#NX{}u8N{rpoZ|AX=03OXzIO(pzai~E}@ zEUVf5{|x`b2VMC8WBNDd|Dl_I1oyw=6$jG)qJEY);Hx+IAG!JesQeGce+wM$>u0%F zXwghvUJdDK`jv_u9Qwx^XXSjD|1td=^Z(GzKLY-9$MJ`x|0U?^m8;8h>_crHbL{^a z{A()zgX;flW=q*N4=z_ZJ2k=J1n+uskC-udF(?&Mm<;*E275MT&X&dXDqIXf5R5G5wqF z{xc1>{=c8y{}!rFr2l243hyJs+tX?Va>Zg;=U+Rf`4{8AUG~1z>?Yed_U-B?W`)k3 z0c}BlyOn=sn}5dZ!u^lw- z3*f&({-NLhLgjxj{@e3cEdf=InLFHN^GEndo@1M@$oe`Ee1y7@;i z|Et&Xkp35`R3(dv+w~8L3{jGi0{;(7{~MM6!T4`I&h?^A9VaTX!eaySldjH+-W|Me z!2i$S|Nhkc6s&TqIVoiD_h|Dg1LD*uD=-v+4* zSWiu|_WWPT?t)qM>lC=2f8qj=f5-H1%>P3-{|J8nC-*0l{+BG_*tQ#Grys-o&t3n= z_-}h39nM;0p>|-z;Gu%@+E4YLX%!D<;$QX6f8vqgf5-Ii^IZBL82#71|9`sqNAUhx zJYxmve_3EPJ7&N4?6WIhtnB&u{EPA5wk_PGxwc^NC*xF=WD)mH&xTYE{p01DSbv!R zF#VhE{xi3qy#LwffAuB-(*H8;+>EuNziS_wGM;t+1^(Z@`w!#4y>xy!wyES)-S?XM z*5bnHH+%aJ*!|!4oM8UP^l!}nLpT2j{2#-eR7wBKWMh@u5$*B~F#j{{|4IJWkn#S* z_-~h!uHSJ}ui-tT?>ahFY5fcvsXy8EZ|8#2yDi9g5Q5fWD)6q`BvRB8!_*{`tJW=#{7@=KNd(>s-E1J zVti)IHLX*(;Qhn8|I}21{5z(9WBwny`A4At2sdew{uhIwuP*n3?)_B%=)3=l;QMFZ z|A7CMI{$^%o^e<_bGf7aW()i65%B(DJ^#z+K>i)mzYq1j|GDhH`~3fO^N+y)64xF| z`d?D7S?1bh@A#?y(Rcr0{I^;5*E`bH8wD@Q#At;`*z@ktVatC|{HuirApeEw-ED?Dhi?86=s(UVmAaLX6Cnc zQTz+wfA{l`J^f++!}M>=|3f$b2;M)Pa@R@!%dzo)=*`t|aDw@t>-VpS@!!M}Th(ei zq6(ikR<*u*GUlyR8KeJnK>yfvq}3Mk@0k9L`G4rED?D2kZa&RsIpo zKjOF6k^Yy3HQ7a>FMJ<1*47j?)C$1+mvR69&hS5C{5QMe$a!gT9U-}ySMxnLhdPt{ zU+@~c|J%MC@?V(#jro7D{-0mvAA$dY^xu;HmzipXh95PW6v_QBkO}^ue*gb1#`_QB zzddi3*sT}8?}hod13zY~tTI@oK7TFnzx(r_LzO`P#Pn~>|AY1a{3`zlK0oQdCH*hz znNL&N-P*mbp7QYF)IVAo{Vy2*?UamD)H>%;TFSDLB8pYwe@k`n9#duaf6s^o|2L+8 zWBwnk|L0fvNAUZ9 zWiqpPcc_i#6(2l|#sBB$0sePP|Hk}3SpUzj@{i#CleMag^uOG(pK2$uV359sijJDx zv&o&T`qvub|EKal*!lM+Vk2{0=H+d_ywA_rT{2(&DzpBpXa@H`rhjAp zAFTi9SNTWq`(He9D%Jl|rcxktPdap**UU_LhcO!_u;+hzsQeFh{>3}SxMz#sT;E|? zXaDB(>-dJ$`yZYbR&>-3@DI&(iX_1Qjp^TX_n)m`(!W^zpKSe~H6kHY|I2INhRc8F zrMd+9rMmA)u|CbA|5N!N?EEvAnNz)Pu>y~TH>Q7M z{vWLW=U4eh@cwypub%3EQ7Ke!n^@#rvF7g`9jBS~|2UHWcuf2cRQ?A$|C(igynk(- zD;X%_!SB`X`M|x)E0QDszT^_*|1td=^Z#J|KflU90{`Qb^CDFLi|N?CBMyxjrzbsV zBy0am49R~``ahNb!Op*iqvcyG-gsS#PtVWE+Mj2hwd(%bqPh22_n$%CaQ|caH{Jbb z!OZ`E&_B8OA9GUNsQ#CwAqx|2v&RRjp4D}2h=BJm)BR87f3Wk9|AB;-VAjfR=ep&M z7V;~M>}Dt$s!X21>i_=41O6{e|Hk}3SpUzj@{b_@5H1o!^}jq!DLMPZ$0I&C)iZrd z0=$2jzJDtJgYn;vsM+2>w0M%%FbyfCGJ#iA{%>lE`URH!TU2)d@EgPOt{)e^GZ(nD1aNKExRK7ybM*s{aG#f9(8w zlu^E<@=?jh<|oykw$}-lX*2a-_wx^}4@3SP)4%ENKMVd3`48&;ml-;h^uK7g3qP4t zuAd@4;QwUo|Ec~D(El<1Th^MG1kWkwM8k|S1%!oWsS;lW?0+f#RUiL)eGBB@G5wqF z{xeCo_s;Wd%g=6_b)susK8!i-Z)4wl|f&V|If79K6_JaBS$F~1r{{0U+uR;1> z8k3)04ZC#q%8fq$E4+Uh{U4zJWBfNOKC^;NHj6DCw>q2swIKIU*q-hsUs?4JlK(ga z`FBkJrn~>_{J-{}5B&ZUeced^i;3sKh-qi_Pb((tMzQK&RR0I){}}%*Yoq^#Y@Hy@ z9I0cv2C624+jz9}4cYmJs&nA{$MkQy`_Ixj__rMVuU`Li z{-JEcC#_2QUm7O9HA*mulRn$We}(rinSZJN577TH{+nW>in3&qf#>jS^?-BXA0q#* z=5qdbCcycR>ECqspRMNVe}eos=pU)uPL50_{V(=%8+i0(_@+w>8;LXdKS}=!)&Bwd zKgNG+%jn*Bx2>VF;7P|1^ER=vp_yFH|6}Xm{>Sw1TTJs0H~p7x{t@IK60fF{{+GQ8 z*6D+jbbKe|$mYI}Vb;GwN&YjN!GFN`ZzmVJx@8YKr|Bi1+1>g2*v*_o_k`TjF0A>_ z)2)Pm**pJZ`ZwnPp__jM`3L*5MWp{F`is}cmvs$~3JU6L6~2hU`*^?$(qhwc{ z>Fz(@I zUv?Ew=HCD0m<;DXrhk7K;2$ve-@xx5?f>~z{t=viVUe+<|HCA~{;GE4ny<4s@{d&i z2i$)c|81emZZp%9BT|Ge4BoTkcb>I6F#j^^-w)m3{Kxcfy8F*wGyng&?0+EtP`b2* z^uH+26WaQloTi)_2mgTT|A6}sS2%^z=yoi_Go8udPo{rSuQTKQsJKdzj{5jQ6%rBO^%vOKwwYSw~`^`zheR z!v5nd)&BwdKgNGE(LUU{NLyb(aiq|#4P_!_{a(+{$<{OPW%YxKc;`v-GAo8{Qn32lgs&+k)2KYUlPqSm$V!C ztCBqhECqspZPNX z|C#nb?D~)2gb33A5?*$qtRF;_dmP-BO4(>^}lRY zv-;mKVG$wVzxIFsqW$_u;4X~+c0Z@xHlq4jMQ7RMH_nwatDT=&f8sd*vp2!{kLllZ z_n+l4|NoixKj41?{f|#jko3Q(eH~o7Bzr`Vy7zlm*8Im*ruz@$zeQVLI@xNFs~4!c zWYBmcDe~730KS2M-_-}EKQU?FX$hqzpyqL^=OT1+-N^s`?MwG$%kLllZ_n!@6{{Msi z$%TK}@a`e$e`%AhQGBcErI4z#noa)?1^tV>|1tg>|976TYyHMY3i&?v4$p5%$b$Ko zY5zTX^;9_jG5s6!|Ip1pg8N@Kc?{`)X%4PV{G9CTlfl9Nr20QV|Ht@m=K6D9$k}b! zWbJTbZP}6d{hwj}W!irq@!byRKc;`v-G7$M{Qn32lXd^sd;e#6dXoMZtNeZLra{9K zl!5=+|NT?_AE5tZ{5L=AkYh!%;gWIE2bHFdTFB17>dXI)Hih{g)4%ENKg%D`KmRrV z(>$+?^uNd+n&~96%b5%Rit7IW{vpPHQ?n7xTFxgVpfjXlYV^358eZUkXWDbXKvje#3-+|3R?Qs5M z`ZwnPp__jM_rK#82h#tNR2EgA*irbS>JGdAkLv#b{~yMG3w-1&T$$nJae05(oX@{` zYh=Lu%e4RQkj;bhAJe}v{}0{#BgjAL50xbSFOT#Z$GjaKrg@no|3USC!21v5zm0y* zW2)Lbw|uMS68+sg*2{h~@9RHhnScIT4(C6ne`Ee1y7@iHQ~4i^|F+9}`?xvb>am8) zNdKeL#7Qb*B38>;_3vtzl|Nwq$MkQ^|3f$b2tI$oye88BGIaqDpN!%35i{;gj5cGr z|5h>bA5{Ja?HXQD*uD=-_CAKyA|sA&yM?P&mwR6Hnl%#dD7J_S~{Fb z|2{JM&L%kjG5s6!|Ip1pg5Q6VoGa;n2`@Ssl5!3^wKE3&KD&}jSe z@~u3=cUHD=mGS%s0xC6hlZf8|NjXV3ri^3O2-TU%iF+`EB^ z*ZmyxmIUm3C`x=4S`iEG~{}Yig|6}?$-Th}6{|NjKURMK1|I5+;Wly>;bWAk) zMe>{2Pu`sQpI-h4#(z`3qa-O^F!z)5@D*yaM;QnXkshpgU!zFAQ55zcr2na7`G3{F z>Fz&sW75C=?fy^F@F4v!m!JEDyJcqNMK1UH(|bqL_Gha&{14>)hwUZF52F8$^!Ts(H|GDL zn|}oP2Ss-|!he_Dr8Ib=`lt!rLhlux5B1>5F=XXm_1%9M|E(h~f3)kH>bs-w7?!Hu zw5a|4;o9#pEna2d|Li^goOk?J{hRLoGmL)(`3HS@Uef=f{a!Ftz-#dF+PvDthbi6{ z2>+Xl{|V#2#m}nfuIJCxbXMD}wp&41b%N3~@tz?MjT&db{)6bBf7bn1{TuWD(9J(0 z{I6dBv$sYX)&KILj2IP)%cNR`zD;}KP`Tl64*iR~|1kbrYDv|eCa-J$2mLIAe$Q37 zGBeA_uPo$!F!(=v=f5XKF#luvH{Jbb82>a3XV|i z-+wUaA0MhQ{@b9&1IzX#se8V;Saq?|>zwb&Q{lP)i!lw|R|WeIqJR49{#X5bKDqxu z|BqwW|NcY&&#&^2Apf9zrIz%+G`d{MypWU{{Ac{mRL2WSX+l06{s-cJ!T4_`!;O*z zES$GrcJw*uwz6$q^~TzD{42%R4rSVZ+nJmFSN$9F|Ip1pg8W0y={=|3f$b2=WiZ^{Pn!OEq7BjO(y) zX)FB|dUlhH4LR~Zz5Fwb|2Cy&(ZS8$>gkUz)~9|fd3*cq`!2Os&Blq~|Li^gG_LsvUD`2uJ?2_x{7qzlNicifL~;Ds}FN zbPAs1BUE&u-=-bbIG`{D_8&z5v@wJJKTQ9|{6BQ_kHG)o6*-6WzwAAucS9v{+SQvU zYJ$F1R2AL4$Kih~(Hc6L|A({|;|7hWZ99j>X~3Er;f%@a&BZNdN9d;Xc%{a5`P z^Z(GzKZ5*&b(cT!gv8%zYHYvxrgrjc)#qAiGRf@ySAF*%#(z6i-R@MIb7pta#!D+N z2&Ya@luo^$bvvfQD;f45#Q%^N`(O2M%>P3-{|NNIaf0=v|D{?#Rwhj>sVclKvmok9 zdP>p-4*vsr|6%;MLE!>AlAYFiHj`{eSuS2_W^u&f^gj0UzjD!k)xROIU z?jrp!rG6fnr^8R}&vne-ny8V%8>#Ng+5g3l@!xFr?s$A)xPIlJ?;@qVLF0TBU8Ehv z=1$pZ$g8O?5B|4j<*@(7^l!}nLpT2j@(*4Y_K^M;lV?ufEUV`l?KM6$ai#Nb);rd1 zKe3-V|I_RL!}xF8zHeILqpc{D57oLpT2j=AYsBR7wAfT83np z)-~C+dJ86RRF^gy-P?b`;s3|@ZG(4H|GDLn|}nK z|MK5Hr2ob9bWmVIJeU1PfBu8&|HSxjb|z*C%f|_Q)chn_IW)SDf5DOeDL?dI^>4cS z&sGur3-Yhb?|-KKU+?d~L$iqVzkFH##rDaOlhA($?_U=EW1~67f4j4+BKMw7PKgKq-NZ@T->zV_#T{!Rbr zS(Ei7ne@M8Ur0EY6Q2KP#DP;=nf#w5|DnR{ZEkp2K{4@nAPz;r2l1W%igXHjTXAIWlglS zWHjLY%g{gg82v98|IP9FCLPnuZ+*+I6kRxd@w)$w>$7u~virYX(jotg>ECqspGo%T zf0**WT>OvfhXhFfi={0jW@_&^7VSgp$e=+@=?*20qM*kVSe~AAD_8%~9A`ZwMEXQ@AV|1<6XdOv?-ULom!33QLU;p%S@1oJ;P z{iApp#(y)GQI$})I_)lc64 z;D3VOze%Vq;lJy7iDl}B6o!>W76c}TMEPIK+YkGHCjSG*e|u&BanmF9gMxELEs&W$ z&RCk~vs~b8cK>(bcF4bD`ZwMEXC?jlAEx{-m;0Z8l?Lg5IkaovLfb7tyYn6M#Z$ol z!*Ty%{5Pk)hn*K{H;k#!c`zkX_^iOiqMWRH=KKex|Mt9C^Qh1Nh3Vgz|L0fvM>_ra zAEx{-m;1kAMl0!mi5+%LKX~{~!MP$!Y&L=ahyD9Mg7M!L-kDwE?D96HD&yt1ru)yz zze(O4*R|J`_58C)gZw+De`EfiU*#WdVA8+(^S@m5Uwe^7r2j>0w4$P@@b@vLx(y>D zmzBf&mu>#V_-|2R0SQSBVugmU49-fQ*Gm_59(IKP4_zL85!ina{d>Jr0mJ`}>ECqs zpDpdr|FFLQ+2{Yg*`}obMKDg`j7EM-US-zJ2R&u4%WI6F{}%RNF(m(k@!uZVSGv4z z%q_|*@I0C6`k|HE{`-~TN8o>9`ZwMEXP>zHUs(1(6#pyw?+DWW^6**9o9eHN{bBwe z;9u@1??0;lWd*taF#cOdarcNqld$clcP1;C({Ed}_;nEs9Vf9U2P z0spI7{x#`;iBQZ|3vBrw0Q3LA_uokF|4x#B{6X?R82^pmMQep1|4PkO>MM3_J3PgR zEB`lYHt>%z{hRLov(4Q7FC6oKsZR^(f4O=p;$p_Um%5z%gBOhNKcDztF#g+4yS4ca z4KrJ&eiKNRO)@Fs$p2CPhlnD`zhnA0=KrCae+2ixNwyQ|f0`8xK-aPkih5dG^M@jp@dAB_K2+}8d4&fc6wY4dz0<|tjA5%~rBPhtN-?*FBt zu>ZyMZ@T->MsoMRaNPegPbEqJ%h+tyWX1Io^F-M8U##~Z#(&G=cNI;Hej8aI`LN|f zYh_*ch+CZJf8K7$zhnA0=KrCae+2xm+^*}S|HbvZ&()mS7v^8t!0i8J(Z5Lk2jjn) zFW$4qx>})bbiKiOrCjCAvY0!p`47tfFv%A9KbZbacmLVa|D=D!Tea!6lm3?;%g;{l z&J=r9xs`Cqe?b2W#(#TY{c&4ysdsDotKg7~Gbhe)(LWjr#46$b$MkQy`_Fti_~+37 z2k-wr{+IYxInw_kGE81l{ng-qIQ5UacSof57}7Uh7Z#UoM)^dlnZDq!d5LXzoECuraIj>>=iRs^T z_n#eN(!ZGB|KNXu`QOCTl=Q#sZ~g6^mGNwe#Y2b4YVeB-J)72Teu*XjLGdp!{@d1? z?Qb)3JF{;lL}Z)}y&mF_F#p+CncjaG|1B;sCEBq~|A*+4<(+fCZK?`*8+x{i ziGS3qe~&bS{5z(9)7^h|i-Uj8#s5zBe`@a}N&kyR=+KKjXWx0$0Cml5AWeAhf9Jun2 zA^$z_`P&5Vk^UF=X|W>vhAEoC{C^Vi56(Bq{_7v2e^L1#jQ_T*#`4wC@S1=wzk~}x z-XC7~_8+k7-)e*Y5`g?Wrhn7jf0p0JKV`{(1OK-F^OOBwvwIooe{s7OlV_JG)559$ zzh=DusQeGce^VPLI{1N!*P;vNT~39EZwNSp|DE~%*F6mRcTE4r{6BQ_kKq2dO4&^M zU*!DsF15OzErR)f;QLo4`43s*|D*Ch82|0VvX(t+I{S=P8BFCBGT!C85d81V`M;P= zkblSYZ@T->9uD|lnEX#n{%1!1N!CG$^uPSR(_vop%KKwr{vY`MmooZasQeGce><|+ zc7Lwgdx>({Gt=`_t`@-lgXR1WdO#i04|4fca|N6K4zgV!H^uJsh6|QQkx=M`8 z{-23|jq%@Rbz0ua2yYB6tbY5o^;6@BZ#>X{3i}VDf0|r}{5z(9WBwny`A5M2a-8l! z`d^HMhfS~5eP;Z8#=rUhF#cO$pl{roHle#3H)O)~(v{cE1phm;|6xo%-2a&Vjro7* z<{yFn<9vJt>3;uP5>!_WcKo{{iE_JzrB8*U)^d{CuXHo2OraXfOYOeg2sy z0sJ3K|Hk}3bn}lu|4XX%ApI{dUN(JEX)_OD^MA7KzcKz>PswYMQmfQWZlhu(a)qk> zd-(_K{_p0sF#luvH{JbbBcx`1{(qu>249E#JEniHNBlo@^N-;7U*O(E`d`vL zjveq`lD#8I?)11&p`5qTFC$#a*uQ^ejQ_UY#_Zz8Vxb=sU6ozMGv$Bh-zsP~gHJ(r z#LNmuKbU_KjUfMy>EBxs{}0{#Bl!G_eK(W-mqX>|Q;D}&!(y$&nyuDrt{pi!zj}Co z{|ERVF#g-RSGyIg9H;FVA~{n^XfjWW%-0E>a`97gh6Q!M%mx1cOeM&_WBPYG;{TzW ze*~XjeI4OnsYod)S13M~|H|(!9VQhwdCA~EwUqzY-~R#r2aNyL-cirf=zL;%x{9|- zu55aDQdde_Rdw4x1uv)jIl=wEsul9@nEu_xvHxQ||LNu*!RH@WB}n>TM#hd>EwfW; zlbX~JVG*4v)uZ0Z-&o3V|6}|&cXf}7jHDXRruL`LUVeY7QYchr@w&hNfieHZc)EBNg{}0{#Bl!F$za*3Xm-IaMEzuhyHb)xx?rH-64~PDb@!$4Z98O&LNbQIG6{YYI z*D6Abj@^6yfnEPKjs*WZrhn7je>U%D{!fPg2|j^aA1;;*JiS*4m5p+0jd+OGnCG7rhZ3)=_V){4T{bz36^1ocpKXnHI z(*I&KQlfP5H?4b9Ve2mcTI_x}pxzrE~uIK6T4sZFg8W%~*?Oy8qvKXH&CyZ^h= z3Fd!H|Hk}3bn}nk^9MR5kp7qRqQ2E<-bU7joN~Wk3;rMW@Bb0Tf18q|yN*xYnwM{w z%8UuZ^@6v=;w_o@SAG1Cb&FvB$MkQ^|AY1a{3`zlK7aJB2&(_(a{8eJt4oXO9RqoP zKL29;H%FWNoi5|51y1s(OuwM*pmlhPu`}?$`~Ba0KY{-n)4zj%zW?m?KVkhpzsf&? z-@kL@9IF52y`|JV11HrX3Xa>D_g~=u?YsXl{+nHa|6hqG|4B(qObf`1-*f!X(Lp8b z`M3BRG2nm4^l!}ngZ2OXD*p)l55f*wRR4?eiwU>2yOeyzd+eF_U*P}kyZUf=f9(7#eq{8BKhXJ-V!m+V7>|2tZ@~Y~?0;BL z4*7RX|Hk}3SpUzj@{i#D?~qET`d^e5585oXbS&5Ymwx^!cK)ro6Z6I^`etO9dq!B^ zmHjbxkzD$}WF#Q}kLllZ_n*ab_MbBG&j)`0oe|fm{+Gxlxn>t^FATcErT?qH{|!6; z#MD|1Yn-EIm#%*0*yA7s?;qClzs?r&@0k9L`G4r)ZCI~05AD){|@vYN(+Gh9n-%t{}0yx^Q-(Ln18aKbdmm-doM>7 z$`)&;34PxQ`DZToA9nt|(f*|W-6Chq@tJ|TCrjM!o^iPc``>~7P3- z{|NM-l8Nc0|Hb|JxuU?E=d+LXG(rBE^ZWmd@!ymkm7Mj(=dQOiwcp`%TCs$s{{#BZ zGyK8-j_KcY_n)m8@W1?Y|3mqIYJ5Vd{+HcHw_oD2{{sJS-~ET3f97Fx&Rdr#xXOAc z_=`ALO=0IB^`3tos^EXa^l!}ngZ2OXD*p)lj~4fAN&kzp-V#mQiG##o{^$Drn_%bP zF4+TeHr57`5;B7|)SE?K@x7DtVDTIB1-d$QYG}>hS($+ka#Hx04V2|MJRu-2LNQ z&D{pEClXx!Us0|w|6}?$=KrCae+2o5aGw~`|B^5_Zb$T7&xtVqbML>z_-{uNZEqbc znUuzxJSy|4%WeN+Zu<9#0GR(V{TuWD(9J)B{KFg5D$@UQ>v*SEVcf0m#~l1C$bV4z zAME^lmHXq#qZ;qf$OAEl^0t>be6jp7o5BBP z-2Xqw{SW;w82{~tU97IRekzZfR`SR{WXz;~mzU=BzwE98{sX3eWBwny`A6V?+*`kv z^uO$vG?U&mXu7VFhzi^N$IEp8Vf;70QV;*QaPQcN(^q}>By0$n6UL!`SVdn6q43?0 z5Wn2hSA4fI?Z3eP+jswA{5PGA66*RoBQ$kqN(_C;|70>3{loaXXc73|G5wqF{j|r_ZA;n3p8ufuSIoxKf~Mf*O@HeMmVW`-j4pThow z%zw)3!2gcv-B~QkVZ8qYN&W}pzws~R z;nyEDUQj|5*OJ`-(Eoz*-#)8VSvRU()5@RhS?P1vuR1B~SSAzys_*=t zIUDltnEs9Vf9U2PLH_BeUN-4}@p$b2G$H%wIj@YU#hmkR1L=RE@;?~=P0@ag{BZjv zrYm;XhaT~_jhz33%lU5}3i*Fb|DMm3e`ni&{-^$*U*#VG|1&-~g7m-SZNITSTFP}o zh|$0O|1tiXNyg#Z3p4aRriO@YQrWM2m}~#rZV~W*Vfr`S{bx@G^iRltapgZ)JzYWi zUp7s&Ro!E{eksiVoc;$Y|AX=09QkK2vr`-|Z!m_ZMd*t{*GTZcL;i!}U)`Px`FBkJ z#{55Y^N(QuH!##C{V$_l%YPkxTrpIh)&I$s|Hb%k_k~)Q)yPCCMd;q>4F4MRjqCXr z`4Q$HO#i04|4an(Uu^py@IOKSjdr#k>3`8PRkx9mGv?>)|8OJzmxqk}FUEfht-0iR zw6wJKP2Dr$Ci&a&{$bsJZVLtf7p8yH-GAl_`7hw#aqjBf ze+Tbhvj3h#_FpQD`4>C??Bdq9?>ee~UHM8`Rz*mS5A46e|Ji%~Rr$dDhw0yR_n)0- z{{Msi$>M+Q+y6JLe@*&diao2s9)2zP%D(>s|8L*@hwS7FO?Us+S8ga-RPZn_&LI^l!TR&kVWxpEy7NQ9)1A|C0FiSY^l=cmJGg z>wj|pQTZQ?|E6fIGIXzjf!=V{(vdC0yN1N8dMI$5|G~E4f5Y@|y8F+DGWcik{vrHR z*nhC_zp}36k^YzPL#I~1*m8UQ`=xqIxX-^-{s-f~#aX0?e%H>?4VJKwnZ%QD=Vq5Stk5m_yhO;FRgpvf5Y@|y8F-a zcftPiXa3i|{eSbVGSdGt`0mhWYZ|PO{x6LGruIfOcG*!O4+Gbx%nG+p{=wHG!@St_ zU$?G14TZh)Kc;_U{vW#eN05IA(~KqkFJ%8UX{@1uw7l}i(I3G7!{ER7Jq>bky1C23RHT=2g$`yZZpCjtMp|Nbi@_g@F2{{`c}wF}iR$+dgGyk?20nZY6v2^j;uapMX9h)Mq#v_XA2 zg&Nb^|D7Kh-7e_|HV!)|6}?$=KrCae*~Z3alZrUf4RKYV^f1g;qs1k zn#)+{Ut320m&*TO{I@_0U#aKXUIJ-fyx*sA%YRV%cUfMa|2@VW)4wtQ58eDD`2FV$ z4Iuq5EA*TVCUDJvEMm(4V*IzW&s`rRHs36NJN2(gjiX+gR-16qe>EQV@gL@(`ZwnP zp__jM`k%U-0O@~uIp%}-scC+4F5lVjziuY~3&wvt;5||H1fg)#J(qU-5bAUbq|cD(+|V&nCk@|CBhIlQZyN`@esx z|AWf^Qu!Z@|29i~(a^o>vV!AV6$(bblRGmQ{O`>9&qUL{`M>-urhjApAG-NRkbmHx zu0i@=^uGvaOmdY9mjV83|MySze^CBMD*uD=-`a+E8{HY6sC(v1Ty^-ZA#J!QAsln z{*qG9ng0-G+HS6V*UwfcByr}aw0r4=>+h<`|tm(A8`I-`ZwnPp__jM z`G-eN^`!shO?KPod+jeiG>p2>&pH3@Vf4RX{I}+$ANz}w!riR$trAz=(7QS#1o}^z z_MhE?F#luvH|GDLn|}oQpW+ZX(*H8z?x1Mtc-rN2Y}DeOPU{3q!E`FBkJrn~S%>{uhk@Hb2lvjsKDJ$F!of9?yr*2Ik)fO#I7@jFX;%zArBj|Kzdly&k>xco z|4n-c_dlk8)7^g->j?YLfA>Fh*6Nb}7x9}*pUr!3+aA;6f8V#Rq4fWXI}5KWv-gWD zBGRRTq#y>3AO@v_$_ybODl{fo*Zc{0y>QNXp1t>H_djkY_WzDF{zn}DO`!9Dflco06BT|fu`RJNA=mr^ z5BV5n988zEI?n%he-HB?PXEUFf5_$^f&U>?+ltcvGFw=NW5!Ir`}|$nBf=MTvS+0b z`Uj=|1MYtu|1Goep=+C8>b2h!kDS|6yRT(SxdrThQU3$s|9++o^B+$C#`%B9<{!cP zC+L(d>VGl1D4Z{Hnm3_0s$+uuBPIWXfA{g2(d!?h`41Oj{>Sm(0<8zXHR_!2 zE9}4h;BwSuc>hrLzvKS5=kc)r#p&NT{}0*xBhdd6x$RK@i=l$Y_${_!a)4y^4AF}yJ!2en{a|HFjyka}A7R7U} z`5f?HA^$-8{mEAg2583=9 z$UpF0?nnJEHTT>5p1ydfa8IzDb^gaK3He`f{I_>sTh(>VLTt?-!ka zBiJq%X{=@0tWcQyvrP06W{GSZ{UoNUEQUA*ht2Ku;HkuSzByWWL zGqL|SqUs-`_aBb`X1LbkmC3Rh-<3YIHyY>2UDLkR4Ex{l{;#~1F#qH9Z=C;!Z2l3v ze%70)c+zOGFRC~SMHHk=_CgKU+wt!@5J%n;_|Z9LmMl^ z2gDl}wyXMzgoqo${&zh8E>aKvFP#2OcK_LDLjQvI4?X{U{O|vcWg6;#NmYrR-YFK; z6kX{{lmDRH|BB<^{|=7-wtm3OWn*Z0Qg2xCot%)|c;7g?Gk?YZb(!w`&lv&z8|5EU z^-lGs*Lyv@eW4(eDgS7))WX5mV6Ed(uRXU97pzTZ%>N<%PkCf&rfS4A@1+};?{{SQ z`>#g(PX{RjK}YRr3QLzQ7aZ$92L1)=KS|9$wLjg;%jov3f`vVd{U=|IGgsuJ{a?fB ze$@XmF!-#bcBF#so!ZFsX#V)c+;M$1FQ=iW5u%Oo)*mg zR0#ab5c&nln4e7EKE=FH0Ai|kG>j;8m2C?$mXxv1$&x~gp5Y`o>jZyPUftzzUK&e#O} zYn=X#^Z$^|KZ5+j^^OSC|B@0Dkl`Kt=eb{eEenmH|ANl{KN;nJkp9DIAZs{hrHTHI zwN{4Torc|f;VDYEC4cpS@;y{~-Sh>_1@tN7euA`B$R;7a=K?#j=uJd@%nr<$tLB4;=sPYjf=%Lw7c$ z?>S)^tdOBmup;ku?zsP-xc@JB!2FNXzsc@DyT*9_ga4C(|JJ2fjQU?9gp-#fXqt+x zQ9G(TvHuUpe_Ii$sHEKB)mKm-Q1yNI^Rx15M*bh_KW=n_{5wwnCcFR4l{No@>GzjJ zbfEs1?5vx?*%<~&4xaS;FM9qpj{mmRVb81e%ER2nDkFMXl2>PYK48wj)s%HW{tKsn zlih#zj0OLLRsNInsS4_UIbLSg z*lEc9&-6{+J8Sp!S-vn*Sj~L?&DDVXJ5K-h*bVtd*6&}k`A3j{aPT)m{Vy5`;-|T< z4F>jmbVB|a_Wy+c|F+g)Q~8cA-Mi{dd^ab1 zYbJ=g&e%MUVgJ4LS3BT;;Ph{@`_FpD^-miA6Xd_ge}CN0Xw?7m()jb{p5vnWv+M-s zafAN{@vp}Dj}-m~j{i2a>U&*LN#y&8{^WBM{$=8R7WqH!H1I#-^lzO1hiv{4{C;cc z?Wq4nNKbDjg@3v1$It%%as0P4?pYGPoKIBC=f6B!W!B?T>D!$Ag7N(4xC{I{oc>LA z|Jini_s>N7PX%8erT=AWuu5ce&exyo|2Y2JzD}z{4)#l(lwGIJ)8dn2*BNB*<$eeJ z3qt=rUHt#mzj6K_viV2w{wc{BMEx%fr7t_{HEYD*O`v~_-hVj$TXR?4yvGiH#;3O5 zk?~Xq|3Aa|zrhOlKRErH?EbUTas8A2{YSI^q2yoWpGr~sUoI(yO8m{d|1y8!O5{H% z^FNONR^t4<@WDXt!&^;(Cq2^dL=?Kk9Sd=ML4W?I@&W%2r+<^(e-<{D|Dp9iLH--` zkD|iJXCajSmxQZl!YyL=q;9<;nk^Iv?_ae4?n3h~FX4a0@!ytlPJXKt_h-!B(`)N3 z+YYq-F=MsJuk66TAm+c9{g8jh>EAg2583>qK;rK|&o!IU|DqQtb-Kp?Uev3|_)}MC z_kSs9{xu=^hdBP5dHDe`8|&HI#1F|yit$d+|5UmM_+L2vo9zCx%5nXZ<^E?9asNAO zA4UByuD|YIwfPDw{`0Ry{)2M=mnkW8uWJ}B-_OiHxJ&q74xs!Gj{nxVOslH6|vue#b< z=07O6h=7aafXPG;8j zNckty-MSYhU0$9&|M$7{{3Gi8*Kil||2X}d?EbS>8vV-+^iLN4$0*xi)c=w``~1@U zPq+HQ-ZJvf_=)^S4D!F?_;2PzM^&RDp9go`_C0g?Rw}%I=;t4!7T`bN^l!5J&qiqU zubcTwK49D^XuWW^Z8!0z-? zy8Sox{Nq!E{U=WUCcFQPgW>(dV*f|=KQH^Fhx%W*y_P23PpUoJ>V0!G{|xzucXkB- zVG!kiaQwH#>FF;HJL??b*muyvVAqlZ`{wo5l@USHuoIZ|gAFGK!= zvj5q20P^oR{Tt{1A)9{$`G=^z;i&)R&A#D{+Uw@pDE~p5|Df#u1D1{Y9~{yAkK?~p zyWI7VRN5kIEV@FSi%XB|y%0nGk8=LIz6bs_PX8vm|E!z#{RjFdR! zhv`2aRW`q9dOo9)#rgl-75tAl{Tt{1A)9{$_kTlrE9!pm6vX9G~cu%g#ntiE~h5q68uA~+GkN-HVP1rXv*+FG@z0_E58nTy`IlAPM^XQain4}Gxmb(tz>EAg2583=9@P8b>xfk`nXy2AQ zH4xj+BLC4r@EA16I=U?N(sjEZ(ct5A94EkQ~LQA z{C{Kbf3o>U@ctP({Rs8Hgk+|9*`~Y2=$G&K{0rUv$3^fTv{3#B$A8LA|CtJ%|ATn{vFN{9 zuXq&ozevsHc&1%Ctw=m``ULq8ivEq`zh(L*t@4!Yn)B}O2D1t0pO4zG|HbLwIR6i> z|L1?@AA$d&Xlgg=f4L&-{t5p6>F3{C^!=g#1;>B0ZZnhJwTkD+qD8XP*rlZ3F!TSA z{<%gE=0BYNjr0HD`hWgc{t>)?$^%+a|I54KQqAXczNygiuSWUr*~I+&5aoYx{I`bY zzIly@Z#V|Y-sJQa^UQe2%K!Cy0_5Lu`Zv!1LpJ{i_+QFRlTrW6ln_PpIol=Vt(f=! z#QU!b<$rMJ-w&6L+|D7d+A9$Ow+oVQ%ZxDQKPdVCTYa$q#p&NT{}0*xBZB{xm{{+F z`d{3G!wkbWU0g9p=l=!%38nwb0=@rm{I^NUTpu)3ZF~+_+O}Ja*qBTQ|2yPADEfC1 zH{{=O`Zv!1LpJ{i@(*VYr6K?G74CrN>GkK`D<;(c6;b{Ncm6p)K0ecYz0wgLHbpgY zjfTVL!T(O1|BQ=<{5wwnCcFRa{zU#yhWx9^l69#6Wuxt0PbdF14Kt|zM^^XWdzAmd zoqxLxw`JKBvG?d*Ty%DFUR`P>EB#wI1p5DQ`ZwAAXC4#zKN)_%ayJ+1e_4{Dyn}6v zh_wjtU&p?`9(w;l{|k=)_R8f^VP|<@%i#0ghSD#bHHsq(UYj%ezmFaP|2Izm#`%B9 z<{v@+Vfs-;)c>NQx#*)%h1?IR8202@;Qyh%|7B_XFF5{NW@@&Hr*b1(*uuz#NrHCs zcS+j`FrEL$${_!a)4y^4AF}yJF#p6EM5F$fh-vOam;X(A{osA=6Z-kLpTa*w_kRe| z|8e{`m$rg$UWpCfF@;grlQSIrHm9@b|9a95{x_WdO?Lm;Cl>qfn7gR|9G_|Msp(s7d+E!F0W-seXFlJ;|?v>mt6^1OI~1 ze^1T<{})dG#`%B9<{wdiKidECcB`ZQm*ue?xuqU0{;3|9^9PFQ_Wxf;-+#j>|AXVd zW$;){w@3M(qq~kf+a1k6bjH}jAcGtD7sULxO&|R4IQ^UK{xe%b|AO}qv;TF}|C2Zv zf%;$4@(iN(CYdD*#A`+Du4Cd~BK?06n*VY9w_hBx|GA;u#eGRIe^MCVul)b$IW5_G z4EPs>|Lyfr@W0~pZ=C;!Z2l4CAFdv1Lj5lt|M0I@wBxfhv|71yg$@({68T>?qWlkz z|5mboxv9W(7lkDPiW2<7wNmZEZ=}jM0RMvEUk+8m{u8HvX^fe_LA8QMRmFxN>q9Zz8+Ds)Y(-)S~Z2))4!?u-=OvKb-e$mTH0lz%k!w9J#rnjW+`;BI>P1$X-Vd++M1z3hi{ zUDch}TAFQlw7(!zNtgel>VGqJo75i*e&Y8~^_^8@O857V_Ma-Ai}Uod7OkCWHpfwE z)>czG{|D+nsq}oB7o8OvbTeROy2*t}m9YPy=ATNkGp<^o{h#1{Th#wz{QPoTME%w3 z{-(a#uE%q`rHlERZRzg+{V4x~!lN zg8XB3CCvXQ|H%ED$SN!2-TSuh4R(rJ)i9lI{*h3V<$f#DCf*?*ILBWoSaOH;B0B#Q zRsTCT#fp2k+IAHob;&8#>*@afsr%1!i4n=&i4eDp6+~1=l}0S z`ah2U_M%tllkU}nFHMJcHkvBzkU2De-Dc}wwyfL}alBd*@_&(YVE#w>$EPxtvrg%y zNJfj>aqrNS-$gh7L@6gM-m0>3o-2=}o;Wx6l#hm2==xu%`k(&=gM9la+XzJ;xf_U! z2lF50{fqXWpSE^yeC=8uH4;(gQ}Xf570AC+{hz4+#8Sp|)>J(uNh$FT?l#SOO|KRvi9AId*E&bHDKnWH<6W9o=luSB6K9slj5 zZ+5y{g!Q?Vc?(X@%h$>r`jJMbe^d28tD$qPdHa13=Qxsk_ zW1|)LKdJdIJ|CF>ar!sT|3fza2!8(^%MsN7QnpKVy||Uk3N{rjS>?yh@vQGZrt?og zgNuzn!)VO^alPl}kH@*;rvsBy0@nHc7GoK$a7O8a9r!<~=l?2G=>Nm%-#Gsd+598$ zKbp+fK>aUMo26=IHYwfUOV&=9zQIro@xSTrztQ|3)A@IUuRuLNZe%R~dN|%GPw?L6 zk%Lc$Ic6JmSZ1JMCO_`~em(;4Kb-zecK=xz-TlYH|4iI} zx#=FL|K;Y^{54nfzOHPSiDM7_68$~AC6?~~Tl-@Z%KzZ_Z=5wk*}Qi)e0Qxl^lpoh zpqZrZ6z;it!irUjZ^R-0#+k?l??0UWjr0GI%|C+tLlj>;>VHZ9;ZuFqqx##cSik(j zzoT9K_dMJS{P$7*13$|D;P`KDN_M}wm@H7|p0<3!i=(0XkxOG{6*BgJWd+0g52t_Q z{6DzQ1B^$9ib1qjmnAMDWk566Fde7&mn)#LK_A8ISV@I2LP;chaoGyG^XeEK`= zKLYQ#>~w|vJ5K*5yZ0st$S(&|g|yRa8~3HlWiz?td6U_kSe8KgaRk3Of^WeRDHT_;{VU z;c(tC(Jn{%q<}xaXW1Fpe<1y{w2q>GQ|^D9{*Ckhkj*~=|Ia{2J?eiMncJx|#Cx4L zO(9m&aQ-0)Qwb*h3%&nv=bvB&*ZH|oya_Yore_Sql?OfbKcA4El$Gy%`RMtbkbid< z2mTLE|0cWt>?NUp!TSgCPwDnQkbjtTNd@)444!{?W7zA?$>ijyYzwqra)=ko6KBf* z;`ndYQ_L)P?J(K&*S;frPaytr?4b|#gPY%NkVgI2WBxa5SGfOi`ZwAAXO~#|pP2Jc zDFGgc|7Gibyx;)({&SP%?>vmJj(rOGhiWmR|5E|^Ul+sor`vzh{Qj-M>Uqn~s$P;j zEq)a7j~zH8qqT8($`S`nFwW5HM z#58q{X;R4h_Eu;}#dmc6rR5*L?t}Xur+<^(f2K$6f1%HR1OHZrX8$=wToLuZd{TZR z-hsY<)O>fyKNI{TCu06}Lir!0|14j@#V3aPFW=7lAs->^D@1?(cPU()k*e#%6CiM{ zJ-H*Nzw+&q58d}v@1y?fG5?!dGWg$d`ZwAAXTQ_@{r~L#KQl9p+W&G))xIR4wf_3ypa1D$m*T3*x%+~<2QlrX7~Jw(w4{GZhG&%ze?KREpx z=l>y_e+2o5lv~$O|BHQ$Tgd7N?PQI#r5CHCM`9WHmqh;yj{kPX@WiFuNf%Yaxl+2K zy2s{!dj0!TKjhzW`Zv!1LpJ{i{2vaLMyUVgTI<=N!XCQ)KXLyZLHZXZ|3T5eas0Q~ zh7g|Al)w`O5ogvVuIW@K-aljKA2t8w_6_pyIQ^UK{xg5t|9_hIKlq=3f4NAT8}+|D z6zi0FBHDa>oc|8_&$~$fdP4NS;P`KXU1HPZx{lp-YFZ`cz$5R3_|LHa9Y6m?72*EJ z>EC4cpE*vv{}|i;hlYshPEb^VR*9E{*QY9>*i~r{uj3GGuFt>m6QB4Z#G26#-Gj3bxJhJ zFoXRE_&=%V-*4|>{=wkLiC*{l9elx9d4MsQ=}<@m0r*Ecs^~ME-;F{==Pr zf{hB@>=kSJU3%7vuhIK+0R#VP)c>R=PW3;b{QH01e-<#o`=4h2NA*7k&5K6;FP;x0 zYeRjmcrx=3^wIsVM$ErB{+qqr=Gp&D(a~Bc`&^-VNf}qt+V9Ng|73rd|NiU#vw6(> z59Z&G_CNNUx1;_S>zH4B*3{YduPo$({4>q{-%0r2aQwH!nND6dS7*e?d3+6MkA9u* zGtkO>{(E~s{`bG`KifX8e?tC?CI3M(S_t*O$ZT7BWQB;L7T11%y8YLv|MwW-f5Y+L zs&fauBO9LAwm)1{ELX1d%D94%;|nEVe@xVcgP%cA~SJu|Ly z21%X&+5Ly(zs1=k?fIyir|qk{cFr-4f25{L&JxuW{4o{$pNM~$*xS$n`uBg`f5ySu z|3bI_q4+=UEY3&$FP`5*TOQx9C@mXOy2tZH^W_Sf{pa}nkK?~3K2C4@aXmNtOzLA|JhX5{uieCzw^x_)c?{cUBs3*-&Y#u|8e~z0^NVm|AOPc zaekd#ViPnshR5Ska%o(9);I9K6Z>y!{%f%Y%>Ow38|VKan|}oP2gx)sO8-lElmE@@ zk>~oE_W%Bf|M;Egf5GwJ%ym}kN!V}MX0z?YpnZXfml{{g3elih!o z#@hcv*?-Xe{a^R-q4d98JCH0A#GYjb{MWJX&xYQA>IDA*$A1g53Ez27GD3?xjx3u_swdvO5=NRt4Z8Yyc z9RE#e2mfz>OyS{L#?>t~qSGRJfhV8Keds0q`DZi&{%@TAjr0GI%|8PFgM{iFEI7wKP?$L!x;IW72y4g?ms)kKU+`Czc~Jze2w}ChdY`DJUOk&pEG-EIv?~`l`jmT zKmURg;QYtw-(>fnt)u<_2mO9{HaSE4ZpiNeE5j|2Y1e`>}BSkCLh4q0e$kW7-M=Yw7&|g#JA+2>v&m{*Ckhkj*~= z{rB*vy{P{swK)8K-^csy1q}Nyw^@79{eOVyf5GwJLLUcozC!t*%p=izZ>|Yf?xXYn z6Z4O2KIoq~{Tt{1A)9{$^S=&d>eRsSUPlK+Gr_}^*$U!rx8fB&!h&$=1jKeYT0 z+Q0wM5zdeC`0gZU4qf8+c=Wb=>U{^#MJgZf`I%EbLAC+bCM z*+@w^f&Yh^e>;xyPkWI6!yDy)aQwFmTeDoF4u5nkJJ*`@(CdCtU+>dGA4dQ8x9yOB z$LZhKi2OUV{yFOZC!2o+`M*@D6R7_s{B?eMLSBSd!m8w1#o+&;e*b)=e?k8Xj{oMS zV<%^?GfhaZTkP5Lk4pmi&aUVUVB}v~I|2V1r+?%8KV{h=|I5A%=0BYN zjr0GI%|C*_f6kjKsQ*RJRcwhWyNH_JJ+;ie;Qyh1|2pJ<_?MXfas0P|(C-(jLsPQ- z)&*@kzx~-CE!$g|`8PMCVgASI-(>fnoubjdApgyv|4{wUzPCb9|4Xdtd5t`&6PgK? zw;1;SN0I;62F<@o=>H$bf0KV8TP0bvx@VV`+w#?uwH8iUtfu^!(f@US9rXX<^l!5J z&pc@KubDme+;jaV|mN{~7cDv!ndSca;CZ@!z)StYfq15s+=> z9#${mzP2KY*PoVuHJbnY@D2QrIQ<*v{~?=y1iyd%Q9IQC@=uc6%ME>-YV6edA}KcnP7CZqfhj{mkl^~lxL$p2cM_B^61Eja32M0PmvzajtTzQ70a|2X{{=l>y_ ze*}O3GN+_a|H~vRULiSc;o09*?y}L(zXuWjdN=z1At?WYOw3o9zCxn=JiL%=u3pX*T44R;yf)!y7$0?}_^`fo;->&{rtKG$ULv`0=^W_J*xCFIDM5cFhex%=j>bJuDkJG<#{vWdW zN5KE`Q^`X8FBk7NKdgRK`i1Mh!pHfKP2l}YtAC;V503wqQC@$m)Ax4p)|`VUb|i}j zE>D?%jV}K|(SO^DVgAAC-(>fnNsaqoApZsX4?6v?ZLl8ozkHDmRK2K`BzRN*m0Fjd*-bx>=_Sd+q?W|7Fo-jdM%<=>5MG{t2c3gYy0pL;63C|8~K!MX*A~Q`%JX z*M)W(a=Z(L=hZRk-&fYb{EySW$?iW(VCes&u4tF}FrNRT_`i*EApeEazj6K_T>lTQ|ICa=|N7beA2ih#^}qZk zI#)|bM`G%r^|#xG>a_1o?@ z^Z(%be{lV0(X9P1O!L1ScL(Z!DO#ST>xI65-e-5nKNI_ZO8*C?|Emw>e{kpDq$sZX z8N)W(I|WTtwisF(JK943DeOPc`R`#2{x_Wdjr0GI%|8PF!?LguYX8gCfS}j_rxR9; z{=fG${8QZdx5L>{!)>}w9Y?kDXZG`Ryrr%&7{vWdWN05J*UZ#ln zUvjbY(-kkyT+efmZN~yhO>--I;Ga?QA7|11cLL>qaOYp9WVY!=o8gd#+#a7tUz>iE z)C`JN3s$Ueqdor%>>&S+)4y^4AF}yJkblU0?T`3ho_VLT{0jrtu8DF1`wzuB)c6Zk`p=e^85v2U`s6>o6H_D8&peR10RL~ecw%ztxSA^(rl zzsc@Dv!wn12mO4y|;R#wWmUwKL03&@;^BK+k>^W zq7}=|e!u?wR*z5AsnEzgi_=HL_vMRRhW!W1|INA!{%@TAjr0GI%|C+tgQTe};vdS) z<>HzwD&9Wpm2{tMh)nX#OSJxny_e+2o5MB@m=|2nz!oOA^5sR7@LtcsgS7lUH`8T}7gDF1`w zzscljeVx&`M%-SV7@M|k}deW#6`|2bCRf5hqEWcQzahWszX`yc#I z@cy~;G!6B?-0(|_Pb<82Ebq6%y)S+({iDQm*#^4&4|V><@!!@vn`v%A{NHz)@41qu zC2MA?xrlDzv{RT(+y8iO1oH1V{hRFmGs~a$pM(A}Nx=H_0o4Cu-*CKt^15^I1k?Pp;Tq)Mar!se z{b#}~^4|>l57qyy?8=4uUnb2E(-NH*cw|^^Xg>Y?dj#b_Vo?7}0P;WL_-}VHuxToS{6I_~9j zzjw*e8EF5(vi||cf2&#ZP_Z5He^=?4aq}u}T&bq~Rp6-_o&Md>yrdrPf1LhJcK_LC z+W&vhKT-cHs_IL#!yZm=7gZ^E^2KjfK{!MoO*)@WH z2Jash`#-AxxhuaI^}n3C7@nOGCh+i}$BuZZ8^r#D>i-`>`p0{ue^sIU503w~LPGJN zlC_spszbj1fNkRBn%(k@`ggPW3@5n%ar!se{bwUI`q$6y|5XuosQ*RDiz7xeAn5y- z#I`K@`BxL^A9K!=SJ<2a-(7z2k3z}g5!|C5R{}0*xBgj8=F6l@8FV}er zgrmflS#6OrmZIa|S6iX{$1$S+1;>9geV~8!n0tGAdEv8{?WOK9UwGTt>O_j@_n!{e zApefjzj6K_viV2g|8U?lLi{h8846s}re+vbET~wVvp5jmzclyXca;C>hwo3j|Do0Y zBSRjfbP5zJcP-AEl4jp0=&a%<=?we}(0>pAfAw#&`_D{i|NlY%WXOL|-apPc#;E^A zB15D=^H$vVf2sK&hW?jn-*@3K3S(@!UP^%n^c^DpiBFWLe9 ze>nY{?EbT!iQazKLCR>VIH=ZWCITz5XQh(Z4V|LLA|Jinee@5?rg8Vn=ANI`^{(Y$b z<=Vyk=u>}ZF7E{XE35Cn5XXPpXK$rq-?_AJNuxrTLV)r;bMU{@_J3V32LB^Y|Hk=$ z$mSnG|IMnLqp1Hy|LuW#Gd(vK`JeJXas0QfU7ON2IPe;CnQ(I~5nH-xE%@JQ`@g2w z!~BQSzsc@DD`j~9Fy&te{)@b&6zYGO&nvcA;iY7P`A_nX)f;jAw~~SHm#dv~jcz)h z(+yY1k<4qS?Y|-PUnxHDKjQRnvir|w(*FO0{>j4sAn{BX^}o#bQ@_pjyVO24mvR2p zDF597&{q9jAZe{6A## zkKq2#8_7ofFYbkYVKM8|_XKT^(G39q4;}w0e;X11ca(pN)4y^4AF}yJ@b@pcQwsIJ z@J^eg$34Vdyyzq1pQeuaKWXOQ1L*$8@!vYzUatJID)-36m0$j7wW-u+KcIMA&C+HK zjsCGLRMQXUKb-!J^Z$^|KZ5*2%H{;r{}QMdrx`yGF__U59qkw4d!AAM7`^{+{I_M9 z>N6zeH%R{@J8L1=(mC_rvOU%)TOLH|KOgr$9A8yP_#bilH_rbBxYVs0sk9L|0cWtjDr>bn}z>z*&#h@|H~5DN`+>&vf1?d zhudyS{|80?A4L1_D){~r&3~ckOWX!@zHxjwP`9bYxILmhg2Dff{0|S-K>i)4f0NyR zcAxhDAM{Vg-;efxN^gXz{V(%8S_3L?zt4?k*#B=L_z&JF|8oky|3v%$!^Jg{f`3Ze zYO1J;3(HBjO#7h1pnp`qC>wzMJ5K+``G3gfA3^>hsyiI@zr6X-`cR=*@|$Ag+A{jz zA3*RQ98vyfJAD6%=D(r4Yb8>)#2cTNOXN7oA3(f+==Y!N-ogBb)4$2?KifOT|D0(5 zHM;*F;4VY`FaGR7y87~mgkb(3&p#Fu{)ZNn|7n8nPrLsC|10JEZ`@?;8Pyo_Del6B z>>K&{8{*vP^B)xc6*~`{|2X}d?EbR?8vTp8|6zRo?>$vX?SBb9`D>_Iy2+Ip^!tx@ zt;GF*7x`aG;rmZC|H<(uKS%u^>28l~KU%cF`-kxV6a0hWV=({Y^lzO1hiv{4ne@g!c#s8><-hVj$+q<=WjmoJ1!n7|4lvrey@T2J5K*5yZ=mz;Ge z^Z$^|KZ3vi!;AN#{uk|~S^^`Y;D4m;Kj|Ryza41)$MN4nLj$C@4DdXhAGqL(7WhBL z`G=$Te@!0nA8`6N&i_L;{|NLSm(%M||I1W&!MuJJ`!9C^Z{quBBmE!8e|xd9cve@h zXH}YK=H**gy;OS#Va}U+_kI^2>fnrP2QXgZ@eDeg5(?>coP z%9K9;N8umYX;k9^;F1NFS==idTi|5b(ZKREu|kD(5~P8TnW9ML};Ph{t|A%b;5#%4vd`d(8 bFF9V9_4AEbfo;-< +#include +#include +#include + +typedef std::byte byte; + +class SHNFile{ + std::vectorcryptHeader; + std::vectordata; + std::vectorReadBytes(std::ifstream&file,int bytes){ + std::vectorbyteArr; + for(int i=0;iintBytes=ReadBytes(file,4); + int numb = int(intBytes[3])<<24|int(intBytes[2])<<16|int(intBytes[1])<<8|int(intBytes[0]); + return numb; + } + void Decrypt(){ + byte num = byte(data.size()); + for(int i=data.size()-1;i>=0;i--){ + data[i] = byte(data[i]^num); + byte num3 = byte(i); + num3 = byte(num3&byte(15)); + num3 = byte(int(num3)+0x55); + num3 = byte(num3 ^ (byte((int(byte(i))*11)))); + num3 = byte(num3^num); + num3 = byte(int(num3)^170); + num = num3; + } + } + int marker=0; + std::vectorReadBytes(int bytes){ + std::vectorbyteArr; + for(int i=0;iintBytes=ReadBytes(4); + uint32_t numb = uint32_t(intBytes[3])<<24|uint32_t(intBytes[2])<<16|uint32_t(intBytes[1])<<8|uint32_t(intBytes[0]); + return numb; + } + int ReadInt32(){ + std::vectorintBytes=ReadBytes(4); + int numb = int(intBytes[3])<<24|int(intBytes[2])<<16|int(intBytes[1])<<8|int(intBytes[0]); + return numb; + } + struct Column{ + std::string name; + uint32_t type; + int length; + }; + std::string ReadString(int bytes){ + std::vectorstrBytes=ReadBytes(bytes); + std::string str; + for(int i=0;icolumns; +public: + SHNFile(std::string file){ + std::ifstream f(file,std::ios::binary); + cryptHeader=ReadBytes(f,0x20); + data=ReadBytes(f,ReadInt32(f)-0x24); + Decrypt(); + header=ReadUInt32(); + recordCount=ReadUInt32(); + defaultRecordLength=ReadUInt32(); + columnCount=ReadUInt32(); + + int num2=2; + for(int i=0;i + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {e2ea580c-4690-455e-88f1-83eb684912cd} + SHNFileDecryptor + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + stdcpp17 + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + stdcpp17 + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + stdcpp17 + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + stdcpp17 + + + Console + true + true + true + + + + + + + + + + + + \ No newline at end of file diff --git a/SHNFileDecryptor/SHNFileDecryptor.vcxproj.filters b/SHNFileDecryptor/SHNFileDecryptor.vcxproj.filters new file mode 100644 index 0000000..1529261 --- /dev/null +++ b/SHNFileDecryptor/SHNFileDecryptor.vcxproj.filters @@ -0,0 +1,27 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + + + Header Files + + + \ No newline at end of file